@mui-toolpad-extended-tuni/courses 3.0.1 → 3.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -6
- package/dist/hooks/useVisitedCourses.d.ts +18 -0
- package/dist/index.cjs +32 -264
- package/dist/index.d.ts +5 -2
- package/dist/index.es.js +10946 -16260
- package/dist/utils/__tests__/courseFilters.test.d.ts +2 -0
- package/package.json +1 -1
- package/dist/mocks/commented.d.ts +0 -0
- package/dist/mocks/constants.d.ts +0 -9
- package/dist/mocks/endpoints.d.ts +0 -8
- package/dist/mocks/generators.d.ts +0 -19
- package/dist/mocks/types.d.ts +0 -109
package/dist/index.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var oa=Object.defineProperty;var aa=(t,e,r)=>e in t?oa(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r;var Qn=(t,e,r)=>aa(t,typeof e!="symbol"?e+"":e,r);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const $=require("mui-toolpad-extended-tuni"),B=require("react"),S=require("@mui/material"),la=require("@emotion/styled"),ua=require("@emotion/react"),gt=require("@mui/x-date-pickers");function ca(t){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const r in t)if(r!=="default"){const n=Object.getOwnPropertyDescriptor(t,r);Object.defineProperty(e,r,n.get?n:{enumerable:!0,get:()=>t[r]})}}return e.default=t,Object.freeze(e)}const be=ca(B);function wi(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var Xt={exports:{}},$t={};/**
|
|
2
2
|
* @license React
|
|
3
3
|
* react-jsx-runtime.production.js
|
|
4
4
|
*
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*
|
|
7
7
|
* This source code is licensed under the MIT license found in the
|
|
8
8
|
* LICENSE file in the root directory of this source tree.
|
|
9
|
-
*/var
|
|
9
|
+
*/var Xn;function da(){if(Xn)return $t;Xn=1;var t=Symbol.for("react.transitional.element"),e=Symbol.for("react.fragment");function r(n,s,i){var o=null;if(i!==void 0&&(o=""+i),s.key!==void 0&&(o=""+s.key),"key"in s){i={};for(var a in s)a!=="key"&&(i[a]=s[a])}else i=s;return s=i.ref,{$$typeof:t,type:n,key:o,ref:s!==void 0?s:null,props:i}}return $t.Fragment=e,$t.jsx=r,$t.jsxs=r,$t}var Nt={};/**
|
|
10
10
|
* @license React
|
|
11
11
|
* react-jsx-runtime.development.js
|
|
12
12
|
*
|
|
@@ -14,12 +14,12 @@
|
|
|
14
14
|
*
|
|
15
15
|
* This source code is licensed under the MIT license found in the
|
|
16
16
|
* LICENSE file in the root directory of this source tree.
|
|
17
|
-
*/var
|
|
17
|
+
*/var es;function fa(){return es||(es=1,process.env.NODE_ENV!=="production"&&function(){function t(b){if(b==null)return null;if(typeof b=="function")return b.$$typeof===Z?null:b.displayName||b.name||null;if(typeof b=="string")return b;switch(b){case T:return"Fragment";case j:return"Profiler";case O:return"StrictMode";case C:return"Suspense";case V:return"SuspenseList";case pe:return"Activity"}if(typeof b=="object")switch(typeof b.tag=="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),b.$$typeof){case d:return"Portal";case E:return b.displayName||"Context";case I:return(b._context.displayName||"Context")+".Consumer";case w:var N=b.render;return b=b.displayName,b||(b=N.displayName||N.name||"",b=b!==""?"ForwardRef("+b+")":"ForwardRef"),b;case q:return N=b.displayName||null,N!==null?N:t(b.type)||"Memo";case G:N=b._payload,b=b._init;try{return t(b(N))}catch{}}return null}function e(b){return""+b}function r(b){try{e(b);var N=!1}catch{N=!0}if(N){N=console;var P=N.error,A=typeof Symbol=="function"&&Symbol.toStringTag&&b[Symbol.toStringTag]||b.constructor.name||"Object";return P.call(N,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",A),e(b)}}function n(b){if(b===T)return"<>";if(typeof b=="object"&&b!==null&&b.$$typeof===G)return"<...>";try{var N=t(b);return N?"<"+N+">":"<...>"}catch{return"<...>"}}function s(){var b=f.A;return b===null?null:b.getOwner()}function i(){return Error("react-stack-top-frame")}function o(b){if(D.call(b,"key")){var N=Object.getOwnPropertyDescriptor(b,"key").get;if(N&&N.isReactWarning)return!1}return b.key!==void 0}function a(b,N){function P(){U||(U=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",N))}P.isReactWarning=!0,Object.defineProperty(b,"key",{get:P,configurable:!0})}function l(){var b=t(this.type);return le[b]||(le[b]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),b=this.props.ref,b!==void 0?b:null}function u(b,N,P,A,J,Y){var L=P.ref;return b={$$typeof:g,type:b,key:N,props:P,_owner:A},(L!==void 0?L:null)!==null?Object.defineProperty(b,"ref",{enumerable:!1,get:l}):Object.defineProperty(b,"ref",{enumerable:!1,value:null}),b._store={},Object.defineProperty(b._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(b,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(b,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:J}),Object.defineProperty(b,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:Y}),Object.freeze&&(Object.freeze(b.props),Object.freeze(b)),b}function h(b,N,P,A,J,Y){var L=N.children;if(L!==void 0)if(A)if(M(L)){for(A=0;A<L.length;A++)m(L[A]);Object.freeze&&Object.freeze(L)}else console.error("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else m(L);if(D.call(N,"key")){L=t(b);var H=Object.keys(N).filter(function(K){return K!=="key"});A=0<H.length?"{key: someKey, "+H.join(": ..., ")+": ...}":"{key: someKey}",k[L+A]||(H=0<H.length?"{"+H.join(": ..., ")+": ...}":"{}",console.error(`A props object containing a "key" prop is being spread into JSX:
|
|
18
18
|
let props = %s;
|
|
19
19
|
<%s {...props} />
|
|
20
20
|
React keys must be passed directly to JSX without using spread:
|
|
21
21
|
let props = %s;
|
|
22
|
-
<%s key={someKey} {...props} />`,
|
|
22
|
+
<%s key={someKey} {...props} />`,A,L,H,L),k[L+A]=!0)}if(L=null,P!==void 0&&(r(P),L=""+P),o(N)&&(r(N.key),L=""+N.key),"key"in N){P={};for(var Q in N)Q!=="key"&&(P[Q]=N[Q])}else P=N;return L&&a(P,typeof b=="function"?b.displayName||b.name||"Unknown":b),u(b,L,P,s(),J,Y)}function m(b){p(b)?b._store&&(b._store.validated=1):typeof b=="object"&&b!==null&&b.$$typeof===G&&(b._payload.status==="fulfilled"?p(b._payload.value)&&b._payload.value._store&&(b._payload.value._store.validated=1):b._store&&(b._store.validated=1))}function p(b){return typeof b=="object"&&b!==null&&b.$$typeof===g}var y=B,g=Symbol.for("react.transitional.element"),d=Symbol.for("react.portal"),T=Symbol.for("react.fragment"),O=Symbol.for("react.strict_mode"),j=Symbol.for("react.profiler"),I=Symbol.for("react.consumer"),E=Symbol.for("react.context"),w=Symbol.for("react.forward_ref"),C=Symbol.for("react.suspense"),V=Symbol.for("react.suspense_list"),q=Symbol.for("react.memo"),G=Symbol.for("react.lazy"),pe=Symbol.for("react.activity"),Z=Symbol.for("react.client.reference"),f=y.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,D=Object.prototype.hasOwnProperty,M=Array.isArray,F=console.createTask?console.createTask:function(){return null};y={react_stack_bottom_frame:function(b){return b()}};var U,le={},ge=y.react_stack_bottom_frame.bind(y,i)(),Ee=F(n(i)),k={};Nt.Fragment=T,Nt.jsx=function(b,N,P){var A=1e4>f.recentlyCreatedOwnerStacks++;return h(b,N,P,!1,A?Error("react-stack-top-frame"):ge,A?F(n(b)):Ee)},Nt.jsxs=function(b,N,P){var A=1e4>f.recentlyCreatedOwnerStacks++;return h(b,N,P,!0,A?Error("react-stack-top-frame"):ge,A?F(n(b)):Ee)}}()),Nt}var ts;function ha(){return ts||(ts=1,process.env.NODE_ENV==="production"?Xt.exports=da():Xt.exports=fa()),Xt.exports}var c=ha(),er={exports:{}},qr={},tr={exports:{}},Gr={};/**
|
|
23
23
|
* @license React
|
|
24
24
|
* use-sync-external-store-shim.production.js
|
|
25
25
|
*
|
|
@@ -27,7 +27,7 @@ React keys must be passed directly to JSX without using spread:
|
|
|
27
27
|
*
|
|
28
28
|
* This source code is licensed under the MIT license found in the
|
|
29
29
|
* LICENSE file in the root directory of this source tree.
|
|
30
|
-
*/var
|
|
30
|
+
*/var rs;function ma(){if(rs)return Gr;rs=1;var t=B;function e(m,p){return m===p&&(m!==0||1/m===1/p)||m!==m&&p!==p}var r=typeof Object.is=="function"?Object.is:e,n=t.useState,s=t.useEffect,i=t.useLayoutEffect,o=t.useDebugValue;function a(m,p){var y=p(),g=n({inst:{value:y,getSnapshot:p}}),d=g[0].inst,T=g[1];return i(function(){d.value=y,d.getSnapshot=p,l(d)&&T({inst:d})},[m,y,p]),s(function(){return l(d)&&T({inst:d}),m(function(){l(d)&&T({inst:d})})},[m]),o(y),y}function l(m){var p=m.getSnapshot;m=m.value;try{var y=p();return!r(m,y)}catch{return!0}}function u(m,p){return p()}var h=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?u:a;return Gr.useSyncExternalStore=t.useSyncExternalStore!==void 0?t.useSyncExternalStore:h,Gr}var Hr={};/**
|
|
31
31
|
* @license React
|
|
32
32
|
* use-sync-external-store-shim.development.js
|
|
33
33
|
*
|
|
@@ -35,7 +35,7 @@ React keys must be passed directly to JSX without using spread:
|
|
|
35
35
|
*
|
|
36
36
|
* This source code is licensed under the MIT license found in the
|
|
37
37
|
* LICENSE file in the root directory of this source tree.
|
|
38
|
-
*/var
|
|
38
|
+
*/var ns;function pa(){return ns||(ns=1,process.env.NODE_ENV!=="production"&&function(){function t(y,g){return y===g&&(y!==0||1/y===1/g)||y!==y&&g!==g}function e(y,g){h||s.startTransition===void 0||(h=!0,console.error("You are using an outdated, pre-release alpha of React 18 that does not support useSyncExternalStore. The use-sync-external-store shim will not work correctly. Upgrade to a newer pre-release."));var d=g();if(!m){var T=g();i(d,T)||(console.error("The result of getSnapshot should be cached to avoid an infinite loop"),m=!0)}T=o({inst:{value:d,getSnapshot:g}});var O=T[0].inst,j=T[1];return l(function(){O.value=d,O.getSnapshot=g,r(O)&&j({inst:O})},[y,d,g]),a(function(){return r(O)&&j({inst:O}),y(function(){r(O)&&j({inst:O})})},[y]),u(d),d}function r(y){var g=y.getSnapshot;y=y.value;try{var d=g();return!i(y,d)}catch{return!0}}function n(y,g){return g()}typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());var s=B,i=typeof Object.is=="function"?Object.is:t,o=s.useState,a=s.useEffect,l=s.useLayoutEffect,u=s.useDebugValue,h=!1,m=!1,p=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?n:e;Hr.useSyncExternalStore=s.useSyncExternalStore!==void 0?s.useSyncExternalStore:p,typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error())}()),Hr}var ss;function Ci(){return ss||(ss=1,process.env.NODE_ENV==="production"?tr.exports=ma():tr.exports=pa()),tr.exports}/**
|
|
39
39
|
* @license React
|
|
40
40
|
* use-sync-external-store-shim/with-selector.production.js
|
|
41
41
|
*
|
|
@@ -43,7 +43,7 @@ React keys must be passed directly to JSX without using spread:
|
|
|
43
43
|
*
|
|
44
44
|
* This source code is licensed under the MIT license found in the
|
|
45
45
|
* LICENSE file in the root directory of this source tree.
|
|
46
|
-
*/var
|
|
46
|
+
*/var is;function ya(){if(is)return qr;is=1;var t=B,e=Ci();function r(u,h){return u===h&&(u!==0||1/u===1/h)||u!==u&&h!==h}var n=typeof Object.is=="function"?Object.is:r,s=e.useSyncExternalStore,i=t.useRef,o=t.useEffect,a=t.useMemo,l=t.useDebugValue;return qr.useSyncExternalStoreWithSelector=function(u,h,m,p,y){var g=i(null);if(g.current===null){var d={hasValue:!1,value:null};g.current=d}else d=g.current;g=a(function(){function O(C){if(!j){if(j=!0,I=C,C=p(C),y!==void 0&&d.hasValue){var V=d.value;if(y(V,C))return E=V}return E=C}if(V=E,n(I,C))return V;var q=p(C);return y!==void 0&&y(V,q)?(I=C,V):(I=C,E=q)}var j=!1,I,E,w=m===void 0?null:m;return[function(){return O(h())},w===null?void 0:function(){return O(w())}]},[h,m,p,y]);var T=s(u,g[0],g[1]);return o(function(){d.hasValue=!0,d.value=T},[T]),l(T),T},qr}var Zr={};/**
|
|
47
47
|
* @license React
|
|
48
48
|
* use-sync-external-store-shim/with-selector.development.js
|
|
49
49
|
*
|
|
@@ -51,26 +51,26 @@ React keys must be passed directly to JSX without using spread:
|
|
|
51
51
|
*
|
|
52
52
|
* This source code is licensed under the MIT license found in the
|
|
53
53
|
* LICENSE file in the root directory of this source tree.
|
|
54
|
-
*/var
|
|
54
|
+
*/var os;function ga(){return os||(os=1,process.env.NODE_ENV!=="production"&&function(){function t(u,h){return u===h&&(u!==0||1/u===1/h)||u!==u&&h!==h}typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());var e=B,r=Ci(),n=typeof Object.is=="function"?Object.is:t,s=r.useSyncExternalStore,i=e.useRef,o=e.useEffect,a=e.useMemo,l=e.useDebugValue;Zr.useSyncExternalStoreWithSelector=function(u,h,m,p,y){var g=i(null);if(g.current===null){var d={hasValue:!1,value:null};g.current=d}else d=g.current;g=a(function(){function O(C){if(!j){if(j=!0,I=C,C=p(C),y!==void 0&&d.hasValue){var V=d.value;if(y(V,C))return E=V}return E=C}if(V=E,n(I,C))return V;var q=p(C);return y!==void 0&&y(V,q)?(I=C,V):(I=C,E=q)}var j=!1,I,E,w=m===void 0?null:m;return[function(){return O(h())},w===null?void 0:function(){return O(w())}]},[h,m,p,y]);var T=s(u,g[0],g[1]);return o(function(){d.hasValue=!0,d.value=T},[T]),l(T),T},typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error())}()),Zr}var as;function ba(){return as||(as=1,process.env.NODE_ENV==="production"?er.exports=ya():er.exports=ga()),er.exports}var va=ba();const Sa=wi(va),Ta={},ls=t=>{let e;const r=new Set,n=(h,m)=>{const p=typeof h=="function"?h(e):h;if(!Object.is(p,e)){const y=e;e=m??(typeof p!="object"||p===null)?p:Object.assign({},e,p),r.forEach(g=>g(e,y))}},s=()=>e,l={setState:n,getState:s,getInitialState:()=>u,subscribe:h=>(r.add(h),()=>r.delete(h)),destroy:()=>{(Ta?"production":void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),r.clear()}},u=e=t(n,s,l);return l},xa=t=>t?ls(t):ls,{useDebugValue:wa}=B,{useSyncExternalStoreWithSelector:Ca}=Sa,Oa=t=>t;function Ea(t,e=Oa,r){const n=Ca(t.subscribe,t.getState,t.getServerState||t.getInitialState,e,r);return wa(n),n}const us=(t,e)=>{const r=xa(t),n=(s,i=e)=>Ea(r,s,i);return Object.assign(n,r),n},ka=(t,e)=>t?us(t,e):us,cs=new Map,Ia=3e5;async function Oi(t,e){const r=cs.get(t);if(r&&Date.now()-r.timestamp<Ia)return r.data;const n=await e();return cs.set(t,{timestamp:Date.now(),data:n}),n}async function Ma(){return Oi("getCourses",async()=>{try{const t=await $.axios.get("api/courses/");return Array.isArray(t.data)?$.convertObjectKeysToCamelCase(t.data):(console.error("Expected array but got:",t.data),[])}catch(t){throw new Error("Failed to retrieve courses: "+t)}})}async function $a(t){const e=btoa(t),r=`getCourseByUrl_${e}`;return Oi(r,async()=>{try{const n=await $.axios.get(`api/courses/?encoded_url=${e}`);if(!Array.isArray(n.data)||n.data.length===0)throw new Error("Course not found");return $.convertObjectKeysToCamelCase(n.data[0])}catch(n){throw new Error("Failed to retrieve course by URL: "+n)}})}const Na=async t=>{const e={...t,dataProcessing:t.dataProcessing||{purposes:["course_delivery","assessment"],retention:365,thirdPartyProcessors:[],specialCategories:!1,legalBasis:"consent"}};try{const r=await $.axios.put(`api/courses/${e.id}/`,$.convertObjectKeysToUnderscore(e));return $.convertObjectKeysToCamelCase(r.data)}catch(r){throw new Error(`Failed to update the course: ${r}`)}},_a=t=>{const e=new Map;return t.forEach(r=>{const n=`${r.code}-${r.instance}`,s=e.get(n)||[];e.set(n,[...s,r])}),Array.from(e.values()).map(r=>r.reduce((n,s)=>{const i=new Date(n.updatedAt);return new Date(s.updatedAt)>i?s:n}))},Ei=t=>{const e=new Date;return t.reduce((r,n)=>{var u,h,m,p;const s=n.endDate?new Date(n.endDate)<e:!1,i=(h=(u=n.data)==null?void 0:u.myData)==null?void 0:h.role,o=(p=(m=n.data)==null?void 0:m.myData)==null?void 0:p.status,a=o==="enrolled";let l=!1;return i==="student"&&a&&(s?r.isStudentOld.push(n):r.isStudent.push(n),l=!0),i==="teacher"&&a&&(s?r.isTeacherOld.push(n):r.isTeacher.push(n),l=!0),!l&&!s&&(n.visibility.mode==="public"||i==="student"&&(o==="pending"||o==="rejected"))&&r.available.push(n),r},{isStudent:[],isStudentOld:[],isTeacher:[],isTeacherOld:[],available:[]})},ds={code:"",instance:"",title:"",description:"",image:{large:"",medium:"",thumbnail:""},startDate:null,endDate:null,visibility:{mode:"private",startDate:null,endDate:null},events:{lecture:[],exercise:[],exam:[],deadline:[],other:[]},tags:[],language:"",dataProcessing:{purposes:["course_delivery","assessment"],retention:365,thirdPartyProcessors:[],specialCategories:!1,legalBasis:"consent"},enrollment:{startDate:null,endDate:null,status:{open:!1,maxStudents:void 0}},relationships:{prerequisites:[],continuations:[],alternatives:[],related:[]},studyModule:{name:"",credits:5,level:"basic"}},Oe=ka((t,e)=>({fetchState:"loading",currentCourseUrl:"",currentCourse:null,courses:[],currentCourseCode:null,courseToUpdate:null,learningCourses:[],learningCoursesOld:[],teachingCourses:[],teachingCoursesOld:[],availableCourses:[],getCourseByUrl:async r=>{try{const n=await $a(r);t({currentCourse:n})}catch(n){console.error("Failed to fetch course by URL:",n)}},setCourseToUpdate:r=>t({courseToUpdate:r}),setCurrentCourseUrl:r=>t({currentCourseUrl:r}),setCurrentCourse:r=>t({currentCourse:r}),setCurrentCourseCode:r=>t({currentCourseCode:r}),updateStateCourse:async r=>{try{const n=await Na(r),{currentCourse:s}=e();return n&&n.id===(s==null?void 0:s.id)&&t({currentCourse:n}),t(i=>({courses:i.courses.map(o=>o.id===n.id?n:o)})),n}catch(n){throw console.error("Failed to update the course:",n),n}},getCourses:async()=>{try{t({fetchState:"loading"});const r=await Ma(),{isStudent:n,isStudentOld:s,isTeacher:i,isTeacherOld:o,available:a}=Ei(r);t({fetchState:"idle",learningCourses:n,learningCoursesOld:s,teachingCourses:i,teachingCoursesOld:o,availableCourses:a,courses:r})}catch(r){t({fetchState:"error"}),console.error("Failed to fetch courses:",r)}}}));function ki({formData:t,setFormData:e}){var r,n,s,i;return c.jsxs(S.Box,{sx:{minHeight:0,display:"flex",flexDirection:"column"},children:[c.jsx(S.Stack,{spacing:2,sx:{minHeight:0},children:c.jsxs(S.Stack,{direction:"row",spacing:2,alignItems:"flex-start",children:[c.jsx($.EditableImage,{value:(r=t.image)==null?void 0:r.large,onChange:o=>e({...t,image:{large:o,medium:"",thumbnail:""}})}),c.jsxs(S.Stack,{spacing:2,sx:{flex:1},children:[c.jsx($.EditableText,{label:"Course Code",value:t.code,onChange:o=>e({...t,code:o})}),c.jsx($.EditableText,{label:"Instance",value:t.instance,onChange:o=>e({...t,instance:o})}),c.jsx($.EditableText,{label:"Title",value:t.title,onChange:o=>e({...t,title:o})}),c.jsx($.EditableText,{label:"Description",value:t.description,onChange:o=>e({...t,description:o}),multiline:!0}),c.jsx($.EditableAutocomplete,{label:"Tags",value:t.tags||[],onChange:o=>e({...t,tags:o})}),c.jsx($.EditableText,{label:"Language",value:t.language||"",onChange:o=>e({...t,language:o}),helperText:"Use ISO 639-1 code (e.g., 'en', 'fi')"})]})]})}),c.jsx(S.Divider,{sx:{my:2}}),c.jsx(S.Typography,{variant:"h6",sx:{mb:2},children:"Study Module Information"}),c.jsxs(S.Stack,{spacing:2,children:[c.jsx($.EditableText,{label:"Module Name",value:((n=t.studyModule)==null?void 0:n.name)||"",onChange:o=>{var a,l;return e({...t,studyModule:{...t.studyModule,name:o,credits:((a=t.studyModule)==null?void 0:a.credits)||5,level:((l=t.studyModule)==null?void 0:l.level)||"basic"}})},helperText:"Name of the study module this course belongs to"}),c.jsx($.EditableNumber,{label:"Credits",value:((s=t.studyModule)==null?void 0:s.credits)||5,onChange:o=>{var a,l;return e({...t,studyModule:{...t.studyModule,credits:o,name:((a=t.studyModule)==null?void 0:a.name)||"",level:((l=t.studyModule)==null?void 0:l.level)||"basic"}})},helperText:"Number of credits awarded for completing this course"}),c.jsx($.EditableSelect,{label:"Course Level",value:((i=t.studyModule)==null?void 0:i.level)||"basic",onChange:o=>{var a,l;return e({...t,studyModule:{...t.studyModule,level:o,credits:((a=t.studyModule)==null?void 0:a.credits)||5,name:((l=t.studyModule)==null?void 0:l.name)||""}})},options:[{value:"basic",label:"Basic"},{value:"intermediate",label:"Intermediate"},{value:"advanced",label:"Advanced"}],helperText:"The difficulty level of this course"})]})]})}const fs=t=>t,ja=()=>{let t=fs;return{configure(e){t=e},generate(e){return t(e)},reset(){t=fs}}},Da=ja();function zt(t,...e){const r=new URL(`https://mui.com/production-error/?code=${t}`);return e.forEach(n=>r.searchParams.append("args[]",n)),`Minified MUI error #${t}; visit ${r} for the full message.`}function pr(t){if(typeof t!="string")throw new Error(process.env.NODE_ENV!=="production"?"MUI: `capitalize(string)` expects a string argument.":zt(7));return t.charAt(0).toUpperCase()+t.slice(1)}var rr={exports:{}},nr={exports:{}},te={};/** @license React v16.13.1
|
|
55
55
|
* react-is.production.min.js
|
|
56
56
|
*
|
|
57
57
|
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
58
58
|
*
|
|
59
59
|
* This source code is licensed under the MIT license found in the
|
|
60
60
|
* LICENSE file in the root directory of this source tree.
|
|
61
|
-
*/var
|
|
61
|
+
*/var hs;function Ra(){if(hs)return te;hs=1;var t=typeof Symbol=="function"&&Symbol.for,e=t?Symbol.for("react.element"):60103,r=t?Symbol.for("react.portal"):60106,n=t?Symbol.for("react.fragment"):60107,s=t?Symbol.for("react.strict_mode"):60108,i=t?Symbol.for("react.profiler"):60114,o=t?Symbol.for("react.provider"):60109,a=t?Symbol.for("react.context"):60110,l=t?Symbol.for("react.async_mode"):60111,u=t?Symbol.for("react.concurrent_mode"):60111,h=t?Symbol.for("react.forward_ref"):60112,m=t?Symbol.for("react.suspense"):60113,p=t?Symbol.for("react.suspense_list"):60120,y=t?Symbol.for("react.memo"):60115,g=t?Symbol.for("react.lazy"):60116,d=t?Symbol.for("react.block"):60121,T=t?Symbol.for("react.fundamental"):60117,O=t?Symbol.for("react.responder"):60118,j=t?Symbol.for("react.scope"):60119;function I(w){if(typeof w=="object"&&w!==null){var C=w.$$typeof;switch(C){case e:switch(w=w.type,w){case l:case u:case n:case i:case s:case m:return w;default:switch(w=w&&w.$$typeof,w){case a:case h:case g:case y:case o:return w;default:return C}}case r:return C}}}function E(w){return I(w)===u}return te.AsyncMode=l,te.ConcurrentMode=u,te.ContextConsumer=a,te.ContextProvider=o,te.Element=e,te.ForwardRef=h,te.Fragment=n,te.Lazy=g,te.Memo=y,te.Portal=r,te.Profiler=i,te.StrictMode=s,te.Suspense=m,te.isAsyncMode=function(w){return E(w)||I(w)===l},te.isConcurrentMode=E,te.isContextConsumer=function(w){return I(w)===a},te.isContextProvider=function(w){return I(w)===o},te.isElement=function(w){return typeof w=="object"&&w!==null&&w.$$typeof===e},te.isForwardRef=function(w){return I(w)===h},te.isFragment=function(w){return I(w)===n},te.isLazy=function(w){return I(w)===g},te.isMemo=function(w){return I(w)===y},te.isPortal=function(w){return I(w)===r},te.isProfiler=function(w){return I(w)===i},te.isStrictMode=function(w){return I(w)===s},te.isSuspense=function(w){return I(w)===m},te.isValidElementType=function(w){return typeof w=="string"||typeof w=="function"||w===n||w===u||w===i||w===s||w===m||w===p||typeof w=="object"&&w!==null&&(w.$$typeof===g||w.$$typeof===y||w.$$typeof===o||w.$$typeof===a||w.$$typeof===h||w.$$typeof===T||w.$$typeof===O||w.$$typeof===j||w.$$typeof===d)},te.typeOf=I,te}var re={};/** @license React v16.13.1
|
|
62
62
|
* react-is.development.js
|
|
63
63
|
*
|
|
64
64
|
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
65
65
|
*
|
|
66
66
|
* This source code is licensed under the MIT license found in the
|
|
67
67
|
* LICENSE file in the root directory of this source tree.
|
|
68
|
-
*/var
|
|
68
|
+
*/var ms;function Aa(){return ms||(ms=1,process.env.NODE_ENV!=="production"&&function(){var t=typeof Symbol=="function"&&Symbol.for,e=t?Symbol.for("react.element"):60103,r=t?Symbol.for("react.portal"):60106,n=t?Symbol.for("react.fragment"):60107,s=t?Symbol.for("react.strict_mode"):60108,i=t?Symbol.for("react.profiler"):60114,o=t?Symbol.for("react.provider"):60109,a=t?Symbol.for("react.context"):60110,l=t?Symbol.for("react.async_mode"):60111,u=t?Symbol.for("react.concurrent_mode"):60111,h=t?Symbol.for("react.forward_ref"):60112,m=t?Symbol.for("react.suspense"):60113,p=t?Symbol.for("react.suspense_list"):60120,y=t?Symbol.for("react.memo"):60115,g=t?Symbol.for("react.lazy"):60116,d=t?Symbol.for("react.block"):60121,T=t?Symbol.for("react.fundamental"):60117,O=t?Symbol.for("react.responder"):60118,j=t?Symbol.for("react.scope"):60119;function I(R){return typeof R=="string"||typeof R=="function"||R===n||R===u||R===i||R===s||R===m||R===p||typeof R=="object"&&R!==null&&(R.$$typeof===g||R.$$typeof===y||R.$$typeof===o||R.$$typeof===a||R.$$typeof===h||R.$$typeof===T||R.$$typeof===O||R.$$typeof===j||R.$$typeof===d)}function E(R){if(typeof R=="object"&&R!==null){var Pe=R.$$typeof;switch(Pe){case e:var Qt=R.type;switch(Qt){case l:case u:case n:case i:case s:case m:return Qt;default:var Kn=Qt&&Qt.$$typeof;switch(Kn){case a:case h:case g:case y:case o:return Kn;default:return Pe}}case r:return Pe}}}var w=l,C=u,V=a,q=o,G=e,pe=h,Z=n,f=g,D=y,M=r,F=i,U=s,le=m,ge=!1;function Ee(R){return ge||(ge=!0,console.warn("The ReactIs.isAsyncMode() alias has been deprecated, and will be removed in React 17+. Update your code to use ReactIs.isConcurrentMode() instead. It has the exact same API.")),k(R)||E(R)===l}function k(R){return E(R)===u}function b(R){return E(R)===a}function N(R){return E(R)===o}function P(R){return typeof R=="object"&&R!==null&&R.$$typeof===e}function A(R){return E(R)===h}function J(R){return E(R)===n}function Y(R){return E(R)===g}function L(R){return E(R)===y}function H(R){return E(R)===r}function Q(R){return E(R)===i}function K(R){return E(R)===s}function xe(R){return E(R)===m}re.AsyncMode=w,re.ConcurrentMode=C,re.ContextConsumer=V,re.ContextProvider=q,re.Element=G,re.ForwardRef=pe,re.Fragment=Z,re.Lazy=f,re.Memo=D,re.Portal=M,re.Profiler=F,re.StrictMode=U,re.Suspense=le,re.isAsyncMode=Ee,re.isConcurrentMode=k,re.isContextConsumer=b,re.isContextProvider=N,re.isElement=P,re.isForwardRef=A,re.isFragment=J,re.isLazy=Y,re.isMemo=L,re.isPortal=H,re.isProfiler=Q,re.isStrictMode=K,re.isSuspense=xe,re.isValidElementType=I,re.typeOf=E}()),re}var ps;function Ii(){return ps||(ps=1,process.env.NODE_ENV==="production"?nr.exports=Ra():nr.exports=Aa()),nr.exports}/*
|
|
69
69
|
object-assign
|
|
70
70
|
(c) Sindre Sorhus
|
|
71
71
|
@license MIT
|
|
72
|
-
*/var
|
|
73
|
-
Valid keys: `+JSON.stringify(Object.keys(
|
|
72
|
+
*/var Jr,ys;function Pa(){if(ys)return Jr;ys=1;var t=Object.getOwnPropertySymbols,e=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;function n(i){if(i==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(i)}function s(){try{if(!Object.assign)return!1;var i=new String("abc");if(i[5]="de",Object.getOwnPropertyNames(i)[0]==="5")return!1;for(var o={},a=0;a<10;a++)o["_"+String.fromCharCode(a)]=a;var l=Object.getOwnPropertyNames(o).map(function(h){return o[h]});if(l.join("")!=="0123456789")return!1;var u={};return"abcdefghijklmnopqrst".split("").forEach(function(h){u[h]=h}),Object.keys(Object.assign({},u)).join("")==="abcdefghijklmnopqrst"}catch{return!1}}return Jr=s()?Object.assign:function(i,o){for(var a,l=n(i),u,h=1;h<arguments.length;h++){a=Object(arguments[h]);for(var m in a)e.call(a,m)&&(l[m]=a[m]);if(t){u=t(a);for(var p=0;p<u.length;p++)r.call(a,u[p])&&(l[u[p]]=a[u[p]])}}return l},Jr}var Kr,gs;function jn(){if(gs)return Kr;gs=1;var t="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";return Kr=t,Kr}var Qr,bs;function Mi(){return bs||(bs=1,Qr=Function.call.bind(Object.prototype.hasOwnProperty)),Qr}var Xr,vs;function La(){if(vs)return Xr;vs=1;var t=function(){};if(process.env.NODE_ENV!=="production"){var e=jn(),r={},n=Mi();t=function(i){var o="Warning: "+i;typeof console<"u"&&console.error(o);try{throw new Error(o)}catch{}}}function s(i,o,a,l,u){if(process.env.NODE_ENV!=="production"){for(var h in i)if(n(i,h)){var m;try{if(typeof i[h]!="function"){var p=Error((l||"React class")+": "+a+" type `"+h+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof i[h]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw p.name="Invariant Violation",p}m=i[h](o,h,l,a,null,e)}catch(g){m=g}if(m&&!(m instanceof Error)&&t((l||"React class")+": type specification of "+a+" `"+h+"` is invalid; the type checker function must return `null` or an `Error` but returned a "+typeof m+". You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument)."),m instanceof Error&&!(m.message in r)){r[m.message]=!0;var y=u?u():"";t("Failed "+a+" type: "+m.message+(y??""))}}}}return s.resetWarningCache=function(){process.env.NODE_ENV!=="production"&&(r={})},Xr=s,Xr}var en,Ss;function Va(){if(Ss)return en;Ss=1;var t=Ii(),e=Pa(),r=jn(),n=Mi(),s=La(),i=function(){};process.env.NODE_ENV!=="production"&&(i=function(a){var l="Warning: "+a;typeof console<"u"&&console.error(l);try{throw new Error(l)}catch{}});function o(){return null}return en=function(a,l){var u=typeof Symbol=="function"&&Symbol.iterator,h="@@iterator";function m(k){var b=k&&(u&&k[u]||k[h]);if(typeof b=="function")return b}var p="<<anonymous>>",y={array:O("array"),bigint:O("bigint"),bool:O("boolean"),func:O("function"),number:O("number"),object:O("object"),string:O("string"),symbol:O("symbol"),any:j(),arrayOf:I,element:E(),elementType:w(),instanceOf:C,node:pe(),objectOf:q,oneOf:V,oneOfType:G,shape:f,exact:D};function g(k,b){return k===b?k!==0||1/k===1/b:k!==k&&b!==b}function d(k,b){this.message=k,this.data=b&&typeof b=="object"?b:{},this.stack=""}d.prototype=Error.prototype;function T(k){if(process.env.NODE_ENV!=="production")var b={},N=0;function P(J,Y,L,H,Q,K,xe){if(H=H||p,K=K||L,xe!==r){if(l){var R=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types");throw R.name="Invariant Violation",R}else if(process.env.NODE_ENV!=="production"&&typeof console<"u"){var Pe=H+":"+L;!b[Pe]&&N<3&&(i("You are manually calling a React.PropTypes validation function for the `"+K+"` prop on `"+H+"`. This is deprecated and will throw in the standalone `prop-types` package. You may be seeing this warning due to a third-party PropTypes library. See https://fb.me/react-warning-dont-call-proptypes for details."),b[Pe]=!0,N++)}}return Y[L]==null?J?Y[L]===null?new d("The "+Q+" `"+K+"` is marked as required "+("in `"+H+"`, but its value is `null`.")):new d("The "+Q+" `"+K+"` is marked as required in "+("`"+H+"`, but its value is `undefined`.")):null:k(Y,L,H,Q,K)}var A=P.bind(null,!1);return A.isRequired=P.bind(null,!0),A}function O(k){function b(N,P,A,J,Y,L){var H=N[P],Q=U(H);if(Q!==k){var K=le(H);return new d("Invalid "+J+" `"+Y+"` of type "+("`"+K+"` supplied to `"+A+"`, expected ")+("`"+k+"`."),{expectedType:k})}return null}return T(b)}function j(){return T(o)}function I(k){function b(N,P,A,J,Y){if(typeof k!="function")return new d("Property `"+Y+"` of component `"+A+"` has invalid PropType notation inside arrayOf.");var L=N[P];if(!Array.isArray(L)){var H=U(L);return new d("Invalid "+J+" `"+Y+"` of type "+("`"+H+"` supplied to `"+A+"`, expected an array."))}for(var Q=0;Q<L.length;Q++){var K=k(L,Q,A,J,Y+"["+Q+"]",r);if(K instanceof Error)return K}return null}return T(b)}function E(){function k(b,N,P,A,J){var Y=b[N];if(!a(Y)){var L=U(Y);return new d("Invalid "+A+" `"+J+"` of type "+("`"+L+"` supplied to `"+P+"`, expected a single ReactElement."))}return null}return T(k)}function w(){function k(b,N,P,A,J){var Y=b[N];if(!t.isValidElementType(Y)){var L=U(Y);return new d("Invalid "+A+" `"+J+"` of type "+("`"+L+"` supplied to `"+P+"`, expected a single ReactElement type."))}return null}return T(k)}function C(k){function b(N,P,A,J,Y){if(!(N[P]instanceof k)){var L=k.name||p,H=Ee(N[P]);return new d("Invalid "+J+" `"+Y+"` of type "+("`"+H+"` supplied to `"+A+"`, expected ")+("instance of `"+L+"`."))}return null}return T(b)}function V(k){if(!Array.isArray(k))return process.env.NODE_ENV!=="production"&&(arguments.length>1?i("Invalid arguments supplied to oneOf, expected an array, got "+arguments.length+" arguments. A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z])."):i("Invalid argument supplied to oneOf, expected an array.")),o;function b(N,P,A,J,Y){for(var L=N[P],H=0;H<k.length;H++)if(g(L,k[H]))return null;var Q=JSON.stringify(k,function(xe,R){var Pe=le(R);return Pe==="symbol"?String(R):R});return new d("Invalid "+J+" `"+Y+"` of value `"+String(L)+"` "+("supplied to `"+A+"`, expected one of "+Q+"."))}return T(b)}function q(k){function b(N,P,A,J,Y){if(typeof k!="function")return new d("Property `"+Y+"` of component `"+A+"` has invalid PropType notation inside objectOf.");var L=N[P],H=U(L);if(H!=="object")return new d("Invalid "+J+" `"+Y+"` of type "+("`"+H+"` supplied to `"+A+"`, expected an object."));for(var Q in L)if(n(L,Q)){var K=k(L,Q,A,J,Y+"."+Q,r);if(K instanceof Error)return K}return null}return T(b)}function G(k){if(!Array.isArray(k))return process.env.NODE_ENV!=="production"&&i("Invalid argument supplied to oneOfType, expected an instance of array."),o;for(var b=0;b<k.length;b++){var N=k[b];if(typeof N!="function")return i("Invalid argument supplied to oneOfType. Expected an array of check functions, but received "+ge(N)+" at index "+b+"."),o}function P(A,J,Y,L,H){for(var Q=[],K=0;K<k.length;K++){var xe=k[K],R=xe(A,J,Y,L,H,r);if(R==null)return null;R.data&&n(R.data,"expectedType")&&Q.push(R.data.expectedType)}var Pe=Q.length>0?", expected one of type ["+Q.join(", ")+"]":"";return new d("Invalid "+L+" `"+H+"` supplied to "+("`"+Y+"`"+Pe+"."))}return T(P)}function pe(){function k(b,N,P,A,J){return M(b[N])?null:new d("Invalid "+A+" `"+J+"` supplied to "+("`"+P+"`, expected a ReactNode."))}return T(k)}function Z(k,b,N,P,A){return new d((k||"React class")+": "+b+" type `"+N+"."+P+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+A+"`.")}function f(k){function b(N,P,A,J,Y){var L=N[P],H=U(L);if(H!=="object")return new d("Invalid "+J+" `"+Y+"` of type `"+H+"` "+("supplied to `"+A+"`, expected `object`."));for(var Q in k){var K=k[Q];if(typeof K!="function")return Z(A,J,Y,Q,le(K));var xe=K(L,Q,A,J,Y+"."+Q,r);if(xe)return xe}return null}return T(b)}function D(k){function b(N,P,A,J,Y){var L=N[P],H=U(L);if(H!=="object")return new d("Invalid "+J+" `"+Y+"` of type `"+H+"` "+("supplied to `"+A+"`, expected `object`."));var Q=e({},N[P],k);for(var K in Q){var xe=k[K];if(n(k,K)&&typeof xe!="function")return Z(A,J,Y,K,le(xe));if(!xe)return new d("Invalid "+J+" `"+Y+"` key `"+K+"` supplied to `"+A+"`.\nBad object: "+JSON.stringify(N[P],null," ")+`
|
|
73
|
+
Valid keys: `+JSON.stringify(Object.keys(k),null," "));var R=xe(L,K,A,J,Y+"."+K,r);if(R)return R}return null}return T(b)}function M(k){switch(typeof k){case"number":case"string":case"undefined":return!0;case"boolean":return!k;case"object":if(Array.isArray(k))return k.every(M);if(k===null||a(k))return!0;var b=m(k);if(b){var N=b.call(k),P;if(b!==k.entries){for(;!(P=N.next()).done;)if(!M(P.value))return!1}else for(;!(P=N.next()).done;){var A=P.value;if(A&&!M(A[1]))return!1}}else return!1;return!0;default:return!1}}function F(k,b){return k==="symbol"?!0:b?b["@@toStringTag"]==="Symbol"||typeof Symbol=="function"&&b instanceof Symbol:!1}function U(k){var b=typeof k;return Array.isArray(k)?"array":k instanceof RegExp?"object":F(b,k)?"symbol":b}function le(k){if(typeof k>"u"||k===null)return""+k;var b=U(k);if(b==="object"){if(k instanceof Date)return"date";if(k instanceof RegExp)return"regexp"}return b}function ge(k){var b=le(k);switch(b){case"array":case"object":return"an "+b;case"boolean":case"date":case"regexp":return"a "+b;default:return b}}function Ee(k){return!k.constructor||!k.constructor.name?p:k.constructor.name}return y.checkPropTypes=s,y.resetWarningCache=s.resetWarningCache,y.PropTypes=y,y},en}var tn,Ts;function Fa(){if(Ts)return tn;Ts=1;var t=jn();function e(){}function r(){}return r.resetWarningCache=e,tn=function(){function n(o,a,l,u,h,m){if(m!==t){var p=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw p.name="Invariant Violation",p}}n.isRequired=n;function s(){return n}var i={array:n,bigint:n,bool:n,func:n,number:n,object:n,string:n,symbol:n,any:n,arrayOf:s,element:n,elementType:n,instanceOf:s,node:n,objectOf:s,oneOf:s,oneOfType:s,shape:s,exact:s,checkPropTypes:r,resetWarningCache:e};return i.PropTypes=i,i},tn}var xs;function Wa(){if(xs)return rr.exports;if(xs=1,process.env.NODE_ENV!=="production"){var t=Ii(),e=!0;rr.exports=Va()(t.isElement,e)}else rr.exports=Fa()();return rr.exports}var za=Wa();const v=wi(za);function $i(t){var e,r,n="";if(typeof t=="string"||typeof t=="number")n+=t;else if(typeof t=="object")if(Array.isArray(t)){var s=t.length;for(e=0;e<s;e++)t[e]&&(r=$i(t[e]))&&(n&&(n+=" "),n+=r)}else for(r in t)t[r]&&(n&&(n+=" "),n+=r);return n}function Dn(){for(var t,e,r=0,n="",s=arguments.length;r<s;r++)(t=arguments[r])&&(e=$i(t))&&(n&&(n+=" "),n+=e);return n}function Ua(t,e,r=void 0){const n={};for(const s in t){const i=t[s];let o="",a=!0;for(let l=0;l<i.length;l+=1){const u=i[l];u&&(o+=(a===!0?"":" ")+e(u),a=!1,r&&r[u]&&(o+=" "+r[u]))}n[s]=o}return n}function yr(t,...e){const r=new URL(`https://mui.com/production-error/?code=${t}`);return e.forEach(n=>r.searchParams.append("args[]",n)),`Minified MUI error #${t}; visit ${r} for the full message.`}function Rn(t){if(typeof t!="string")throw new Error(process.env.NODE_ENV!=="production"?"MUI: `capitalize(string)` expects a string argument.":yr(7));return t.charAt(0).toUpperCase()+t.slice(1)}var sr={exports:{}},oe={};/**
|
|
74
74
|
* @license React
|
|
75
75
|
* react-is.production.js
|
|
76
76
|
*
|
|
@@ -78,7 +78,7 @@ Valid keys: `+JSON.stringify(Object.keys(R),null," "));var j=ge(W,ee,V,X,J+"."+
|
|
|
78
78
|
*
|
|
79
79
|
* This source code is licensed under the MIT license found in the
|
|
80
80
|
* LICENSE file in the root directory of this source tree.
|
|
81
|
-
*/var
|
|
81
|
+
*/var ws;function Ba(){if(ws)return oe;ws=1;var t=Symbol.for("react.transitional.element"),e=Symbol.for("react.portal"),r=Symbol.for("react.fragment"),n=Symbol.for("react.strict_mode"),s=Symbol.for("react.profiler"),i=Symbol.for("react.consumer"),o=Symbol.for("react.context"),a=Symbol.for("react.forward_ref"),l=Symbol.for("react.suspense"),u=Symbol.for("react.suspense_list"),h=Symbol.for("react.memo"),m=Symbol.for("react.lazy"),p=Symbol.for("react.view_transition"),y=Symbol.for("react.client.reference");function g(d){if(typeof d=="object"&&d!==null){var T=d.$$typeof;switch(T){case t:switch(d=d.type,d){case r:case s:case n:case l:case u:case p:return d;default:switch(d=d&&d.$$typeof,d){case o:case a:case m:case h:return d;case i:return d;default:return T}}case e:return T}}}return oe.ContextConsumer=i,oe.ContextProvider=o,oe.Element=t,oe.ForwardRef=a,oe.Fragment=r,oe.Lazy=m,oe.Memo=h,oe.Portal=e,oe.Profiler=s,oe.StrictMode=n,oe.Suspense=l,oe.SuspenseList=u,oe.isContextConsumer=function(d){return g(d)===i},oe.isContextProvider=function(d){return g(d)===o},oe.isElement=function(d){return typeof d=="object"&&d!==null&&d.$$typeof===t},oe.isForwardRef=function(d){return g(d)===a},oe.isFragment=function(d){return g(d)===r},oe.isLazy=function(d){return g(d)===m},oe.isMemo=function(d){return g(d)===h},oe.isPortal=function(d){return g(d)===e},oe.isProfiler=function(d){return g(d)===s},oe.isStrictMode=function(d){return g(d)===n},oe.isSuspense=function(d){return g(d)===l},oe.isSuspenseList=function(d){return g(d)===u},oe.isValidElementType=function(d){return typeof d=="string"||typeof d=="function"||d===r||d===s||d===n||d===l||d===u||typeof d=="object"&&d!==null&&(d.$$typeof===m||d.$$typeof===h||d.$$typeof===o||d.$$typeof===i||d.$$typeof===a||d.$$typeof===y||d.getModuleId!==void 0)},oe.typeOf=g,oe}var ae={};/**
|
|
82
82
|
* @license React
|
|
83
83
|
* react-is.development.js
|
|
84
84
|
*
|
|
@@ -86,23 +86,24 @@ Valid keys: `+JSON.stringify(Object.keys(R),null," "));var j=ge(W,ee,V,X,J+"."+
|
|
|
86
86
|
*
|
|
87
87
|
* This source code is licensed under the MIT license found in the
|
|
88
88
|
* LICENSE file in the root directory of this source tree.
|
|
89
|
-
*/var
|
|
90
|
-
For example, \`@sm\` or \`@600\` or \`@40rem/sidebar\`.`:
|
|
91
|
-
`)):console.error([`MUI: The \`theme.${
|
|
92
|
-
`)));const s
|
|
93
|
-
`)),()=>{})}function Oo(e){return va(e,"spacing",8,"spacing")}function wa(e,a){return typeof a=="string"||a==null?a:e(a)}function Nr(e,a){return o=>e.reduce((t,n)=>(t[n]=wa(a,o),t),{})}function Lr(e,a,o,t){if(!a.includes(o))return null;const n=Dr(o),r=Nr(n,t),i=e[o];return Pe(e,i,r)}function Gt(e,a){const o=Oo(e.theme);return Object.keys(e).map(t=>Lr(e,a,t,o)).reduce(ka,{})}function ke(e){return Gt(e,qa)}ke.propTypes=process.env.NODE_ENV!=="production"?qa.reduce((e,a)=>(e[a]=qe,e),{}):{};ke.filterProps=qa;function ye(e){return Gt(e,Va)}ye.propTypes=process.env.NODE_ENV!=="production"?Va.reduce((e,a)=>(e[a]=qe,e),{}):{};ye.filterProps=Va;process.env.NODE_ENV!=="production"&&Fr.reduce((e,a)=>(e[a]=qe,e),{});function Wa(...e){const a=e.reduce((t,n)=>(n.filterProps.forEach(r=>{t[r]=n}),t),{}),o=t=>Object.keys(t).reduce((n,r)=>a[r]?ka(n,a[r](t)):n,{});return o.propTypes=process.env.NODE_ENV!=="production"?e.reduce((t,n)=>Object.assign(t,n.propTypes),{}):{},o.filterProps=e.reduce((t,n)=>t.concat(n.filterProps),[]),o}function ze(e){return typeof e!="number"?e:`${e}px solid`}function Oe(e,a){return je({prop:e,themeKey:"borders",transform:a})}const Mr=Oe("border",ze),Br=Oe("borderTop",ze),Ur=Oe("borderRight",ze),qr=Oe("borderBottom",ze),Vr=Oe("borderLeft",ze),Wr=Oe("borderColor"),Hr=Oe("borderTopColor"),Gr=Oe("borderRightColor"),Yr=Oe("borderBottomColor"),Kr=Oe("borderLeftColor"),Jr=Oe("outline",ze),Xr=Oe("outlineColor"),Ha=e=>{if(e.borderRadius!==void 0&&e.borderRadius!==null){const a=va(e.theme,"shape.borderRadius",4,"borderRadius"),o=t=>({borderRadius:wa(a,t)});return Pe(e,e.borderRadius,o)}return null};Ha.propTypes=process.env.NODE_ENV!=="production"?{borderRadius:qe}:{};Ha.filterProps=["borderRadius"];Wa(Mr,Br,Ur,qr,Vr,Wr,Hr,Gr,Yr,Kr,Ha,Jr,Xr);const Ga=e=>{if(e.gap!==void 0&&e.gap!==null){const a=va(e.theme,"spacing",8,"gap"),o=t=>({gap:wa(a,t)});return Pe(e,e.gap,o)}return null};Ga.propTypes=process.env.NODE_ENV!=="production"?{gap:qe}:{};Ga.filterProps=["gap"];const Ya=e=>{if(e.columnGap!==void 0&&e.columnGap!==null){const a=va(e.theme,"spacing",8,"columnGap"),o=t=>({columnGap:wa(a,t)});return Pe(e,e.columnGap,o)}return null};Ya.propTypes=process.env.NODE_ENV!=="production"?{columnGap:qe}:{};Ya.filterProps=["columnGap"];const Ka=e=>{if(e.rowGap!==void 0&&e.rowGap!==null){const a=va(e.theme,"spacing",8,"rowGap"),o=t=>({rowGap:wa(a,t)});return Pe(e,e.rowGap,o)}return null};Ka.propTypes=process.env.NODE_ENV!=="production"?{rowGap:qe}:{};Ka.filterProps=["rowGap"];const Qr=je({prop:"gridColumn"}),Zr=je({prop:"gridRow"}),ei=je({prop:"gridAutoFlow"}),ai=je({prop:"gridAutoColumns"}),oi=je({prop:"gridAutoRows"}),ti=je({prop:"gridTemplateColumns"}),ni=je({prop:"gridTemplateRows"}),ri=je({prop:"gridTemplateAreas"}),ii=je({prop:"gridArea"});Wa(Ga,Ya,Ka,Qr,Zr,ei,ai,oi,ti,ni,ri,ii);function ia(e,a){return a==="grey"?a:e}const si=je({prop:"color",themeKey:"palette",transform:ia}),ui=je({prop:"bgcolor",cssProperty:"backgroundColor",themeKey:"palette",transform:ia}),ci=je({prop:"backgroundColor",themeKey:"palette",transform:ia});Wa(si,ui,ci);function Ee(e){return e<=1&&e!==0?`${e*100}%`:e}const li=je({prop:"width",transform:Ee}),_o=e=>{if(e.maxWidth!==void 0&&e.maxWidth!==null){const a=o=>{var n,r,i,s,u;const t=((i=(r=(n=e.theme)==null?void 0:n.breakpoints)==null?void 0:r.values)==null?void 0:i[o])||Ba[o];return t?((u=(s=e.theme)==null?void 0:s.breakpoints)==null?void 0:u.unit)!=="px"?{maxWidth:`${t}${e.theme.breakpoints.unit}`}:{maxWidth:t}:{maxWidth:Ee(o)}};return Pe(e,e.maxWidth,a)}return null};_o.filterProps=["maxWidth"];const mi=je({prop:"minWidth",transform:Ee}),pi=je({prop:"height",transform:Ee}),di=je({prop:"maxHeight",transform:Ee}),hi=je({prop:"minHeight",transform:Ee});je({prop:"size",cssProperty:"width",transform:Ee});je({prop:"size",cssProperty:"height",transform:Ee});const fi=je({prop:"boxSizing"});Wa(li,_o,mi,pi,di,hi,fi);const Ja={border:{themeKey:"borders",transform:ze},borderTop:{themeKey:"borders",transform:ze},borderRight:{themeKey:"borders",transform:ze},borderBottom:{themeKey:"borders",transform:ze},borderLeft:{themeKey:"borders",transform:ze},borderColor:{themeKey:"palette"},borderTopColor:{themeKey:"palette"},borderRightColor:{themeKey:"palette"},borderBottomColor:{themeKey:"palette"},borderLeftColor:{themeKey:"palette"},outline:{themeKey:"borders",transform:ze},outlineColor:{themeKey:"palette"},borderRadius:{themeKey:"shape.borderRadius",style:Ha},color:{themeKey:"palette",transform:ia},bgcolor:{themeKey:"palette",cssProperty:"backgroundColor",transform:ia},backgroundColor:{themeKey:"palette",transform:ia},p:{style:ye},pt:{style:ye},pr:{style:ye},pb:{style:ye},pl:{style:ye},px:{style:ye},py:{style:ye},padding:{style:ye},paddingTop:{style:ye},paddingRight:{style:ye},paddingBottom:{style:ye},paddingLeft:{style:ye},paddingX:{style:ye},paddingY:{style:ye},paddingInline:{style:ye},paddingInlineStart:{style:ye},paddingInlineEnd:{style:ye},paddingBlock:{style:ye},paddingBlockStart:{style:ye},paddingBlockEnd:{style:ye},m:{style:ke},mt:{style:ke},mr:{style:ke},mb:{style:ke},ml:{style:ke},mx:{style:ke},my:{style:ke},margin:{style:ke},marginTop:{style:ke},marginRight:{style:ke},marginBottom:{style:ke},marginLeft:{style:ke},marginX:{style:ke},marginY:{style:ke},marginInline:{style:ke},marginInlineStart:{style:ke},marginInlineEnd:{style:ke},marginBlock:{style:ke},marginBlockStart:{style:ke},marginBlockEnd:{style:ke},displayPrint:{cssProperty:!1,transform:e=>({"@media print":{display:e}})},display:{},overflow:{},textOverflow:{},visibility:{},whiteSpace:{},flexBasis:{},flexDirection:{},flexWrap:{},justifyContent:{},alignItems:{},alignContent:{},order:{},flex:{},flexGrow:{},flexShrink:{},alignSelf:{},justifyItems:{},justifySelf:{},gap:{style:Ga},rowGap:{style:Ka},columnGap:{style:Ya},gridColumn:{},gridRow:{},gridAutoFlow:{},gridAutoColumns:{},gridAutoRows:{},gridTemplateColumns:{},gridTemplateRows:{},gridTemplateAreas:{},gridArea:{},position:{},zIndex:{themeKey:"zIndex"},top:{},right:{},bottom:{},left:{},boxShadow:{themeKey:"shadows"},width:{transform:Ee},maxWidth:{style:_o},minWidth:{transform:Ee},height:{transform:Ee},maxHeight:{transform:Ee},minHeight:{transform:Ee},boxSizing:{},font:{themeKey:"font"},fontFamily:{themeKey:"typography"},fontSize:{themeKey:"typography"},fontStyle:{themeKey:"typography"},fontWeight:{themeKey:"typography"},letterSpacing:{},textTransform:{},lineHeight:{},textAlign:{},typography:{cssProperty:!1,themeKey:"typography"}};function gi(...e){const a=e.reduce((t,n)=>t.concat(Object.keys(n)),[]),o=new Set(a);return e.every(t=>o.size===Object.keys(t).length)}function ki(e,a){return typeof e=="function"?e(a):e}function yi(){function e(o,t,n,r){const i={[o]:t,theme:n},s=r[o];if(!s)return{[o]:t};const{cssProperty:u=o,themeKey:p,transform:d,style:m}=s;if(t==null)return null;if(p==="typography"&&t==="inherit")return{[o]:t};const h=Ua(n,p)||{};return m?m(i):Pe(i,t,f=>{let c=Na(h,d,f);return f===c&&typeof f=="string"&&(c=Na(h,d,`${o}${f==="default"?"":To(f)}`,f)),u===!1?c:{[u]:c}})}function a(o){const{sx:t,theme:n={},nested:r}=o||{};if(!t)return null;const i=n.unstable_sxConfig??Ja;function s(u){let p=u;if(typeof u=="function")p=u(n);else if(typeof u!="object")return u;if(!p)return null;const d=Rr(n.breakpoints),m=Object.keys(d);let h=d;return Object.keys(p).forEach(g=>{const f=ki(p[g],n);if(f!=null)if(typeof f=="object")if(i[g])h=ka(h,e(g,f,n,i));else{const c=Pe({theme:n},f,v=>({[g]:v}));gi(c,f)?h[g]=a({sx:f,theme:n,nested:!0}):h=ka(h,c)}else h=ka(h,e(g,f,n,i))}),!r&&n.modularCssLayers?{"@layer sx":lt(n,pt(m,h))}:lt(n,pt(m,h))}return Array.isArray(t)?t.map(s):s(t)}return a}const ua=yi();ua.filterProps=["sx"];function bi(e){for(var a=0,o,t=0,n=e.length;n>=4;++t,n-=4)o=e.charCodeAt(t)&255|(e.charCodeAt(++t)&255)<<8|(e.charCodeAt(++t)&255)<<16|(e.charCodeAt(++t)&255)<<24,o=(o&65535)*1540483477+((o>>>16)*59797<<16),o^=o>>>24,a=(o&65535)*1540483477+((o>>>16)*59797<<16)^(a&65535)*1540483477+((a>>>16)*59797<<16);switch(n){case 3:a^=(e.charCodeAt(t+2)&255)<<16;case 2:a^=(e.charCodeAt(t+1)&255)<<8;case 1:a^=e.charCodeAt(t)&255,a=(a&65535)*1540483477+((a>>>16)*59797<<16)}return a^=a>>>13,a=(a&65535)*1540483477+((a>>>16)*59797<<16),((a^a>>>15)>>>0).toString(36)}var ji={animationIterationCount:1,aspectRatio:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,scale:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1};function vi(e){var a=Object.create(null);return function(o){return a[o]===void 0&&(a[o]=e(o)),a[o]}}var wi=/[A-Z]|^ms/g,xi=/_EMO_([^_]+?)_([^]*?)_EMO_/g,Yt=function(a){return a.charCodeAt(1)===45},ht=function(a){return a!=null&&typeof a!="boolean"},mo=vi(function(e){return Yt(e)?e:e.replace(wi,"-$&").toLowerCase()}),ft=function(a,o){switch(a){case"animation":case"animationName":if(typeof o=="string")return o.replace(xi,function(t,n,r){return Be={name:n,styles:r,next:Be},n})}return ji[a]!==1&&!Yt(a)&&typeof o=="number"&&o!==0?o+"px":o};function La(e,a,o){if(o==null)return"";var t=o;if(t.__emotion_styles!==void 0)return t;switch(typeof o){case"boolean":return"";case"object":{var n=o;if(n.anim===1)return Be={name:n.name,styles:n.styles,next:Be},n.name;var r=o;if(r.styles!==void 0){var i=r.next;if(i!==void 0)for(;i!==void 0;)Be={name:i.name,styles:i.styles,next:Be},i=i.next;var s=r.styles+";";return s}return Ci(e,a,o)}}var u=o;return u}function Ci(e,a,o){var t="";if(Array.isArray(o))for(var n=0;n<o.length;n++)t+=La(e,a,o[n])+";";else for(var r in o){var i=o[r];if(typeof i!="object"){var s=i;ht(s)&&(t+=mo(r)+":"+ft(r,s)+";")}else if(Array.isArray(i)&&typeof i[0]=="string"&&a==null)for(var u=0;u<i.length;u++)ht(i[u])&&(t+=mo(r)+":"+ft(r,i[u])+";");else{var p=La(e,a,i);switch(r){case"animation":case"animationName":{t+=mo(r)+":"+p+";";break}default:t+=r+"{"+p+"}"}}}return t}var gt=/label:\s*([^\s;{]+)\s*(;|$)/g,Be;function Ei(e,a,o){if(e.length===1&&typeof e[0]=="object"&&e[0]!==null&&e[0].styles!==void 0)return e[0];var t=!0,n="";Be=void 0;var r=e[0];if(r==null||r.raw===void 0)t=!1,n+=La(o,a,r);else{var i=r;n+=i[0]}for(var s=1;s<e.length;s++)if(n+=La(o,a,e[s]),t){var u=r;n+=u[s]}gt.lastIndex=0;for(var p="",d;(d=gt.exec(n))!==null;)p+="-"+d[1];var m=bi(n)+p;return{name:m,styles:n,next:Be}}/**
|
|
89
|
+
*/var Cs;function Ya(){return Cs||(Cs=1,process.env.NODE_ENV!=="production"&&function(){function t(d){if(typeof d=="object"&&d!==null){var T=d.$$typeof;switch(T){case e:switch(d=d.type,d){case n:case i:case s:case u:case h:case y:return d;default:switch(d=d&&d.$$typeof,d){case a:case l:case p:case m:return d;case o:return d;default:return T}}case r:return T}}}var e=Symbol.for("react.transitional.element"),r=Symbol.for("react.portal"),n=Symbol.for("react.fragment"),s=Symbol.for("react.strict_mode"),i=Symbol.for("react.profiler"),o=Symbol.for("react.consumer"),a=Symbol.for("react.context"),l=Symbol.for("react.forward_ref"),u=Symbol.for("react.suspense"),h=Symbol.for("react.suspense_list"),m=Symbol.for("react.memo"),p=Symbol.for("react.lazy"),y=Symbol.for("react.view_transition"),g=Symbol.for("react.client.reference");ae.ContextConsumer=o,ae.ContextProvider=a,ae.Element=e,ae.ForwardRef=l,ae.Fragment=n,ae.Lazy=p,ae.Memo=m,ae.Portal=r,ae.Profiler=i,ae.StrictMode=s,ae.Suspense=u,ae.SuspenseList=h,ae.isContextConsumer=function(d){return t(d)===o},ae.isContextProvider=function(d){return t(d)===a},ae.isElement=function(d){return typeof d=="object"&&d!==null&&d.$$typeof===e},ae.isForwardRef=function(d){return t(d)===l},ae.isFragment=function(d){return t(d)===n},ae.isLazy=function(d){return t(d)===p},ae.isMemo=function(d){return t(d)===m},ae.isPortal=function(d){return t(d)===r},ae.isProfiler=function(d){return t(d)===i},ae.isStrictMode=function(d){return t(d)===s},ae.isSuspense=function(d){return t(d)===u},ae.isSuspenseList=function(d){return t(d)===h},ae.isValidElementType=function(d){return typeof d=="string"||typeof d=="function"||d===n||d===i||d===s||d===u||d===h||typeof d=="object"&&d!==null&&(d.$$typeof===p||d.$$typeof===m||d.$$typeof===a||d.$$typeof===o||d.$$typeof===l||d.$$typeof===g||d.getModuleId!==void 0)},ae.typeOf=t}()),ae}var Os;function qa(){return Os||(Os=1,process.env.NODE_ENV==="production"?sr.exports=Ba():sr.exports=Ya()),sr.exports}var xt=qa();function Ye(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)}function Ni(t){if(be.isValidElement(t)||xt.isValidElementType(t)||!Ye(t))return t;const e={};return Object.keys(t).forEach(r=>{e[r]=Ni(t[r])}),e}function st(t,e,r={clone:!0}){const n=r.clone?{...t}:t;return Ye(t)&&Ye(e)&&Object.keys(e).forEach(s=>{be.isValidElement(e[s])||xt.isValidElementType(e[s])?n[s]=e[s]:Ye(e[s])&&Object.prototype.hasOwnProperty.call(t,s)&&Ye(t[s])?n[s]=st(t[s],e[s],r):r.clone?n[s]=Ye(e[s])?Ni(e[s]):e[s]:n[s]=e[s]}),n}function Ft(t,e){return e?st(t,e,{clone:!1}):t}const Ke=process.env.NODE_ENV!=="production"?v.oneOfType([v.number,v.string,v.object,v.array]):{};function Es(t,e){if(!t.containerQueries)return e;const r=Object.keys(e).filter(n=>n.startsWith("@container")).sort((n,s)=>{var o,a;const i=/min-width:\s*([0-9.]+)/;return+(((o=n.match(i))==null?void 0:o[1])||0)-+(((a=s.match(i))==null?void 0:a[1])||0)});return r.length?r.reduce((n,s)=>{const i=e[s];return delete n[s],n[s]=i,n},{...e}):e}function Ga(t,e){return e==="@"||e.startsWith("@")&&(t.some(r=>e.startsWith(`@${r}`))||!!e.match(/^@\d/))}function Ha(t,e){const r=e.match(/^@([^/]+)?\/?(.+)?$/);if(!r){if(process.env.NODE_ENV!=="production")throw new Error(process.env.NODE_ENV!=="production"?`MUI: The provided shorthand ${`(${e})`} is invalid. The format should be \`@<breakpoint | number>\` or \`@<breakpoint | number>/<container>\`.
|
|
90
|
+
For example, \`@sm\` or \`@600\` or \`@40rem/sidebar\`.`:yr(18,`(${e})`));return null}const[,n,s]=r,i=Number.isNaN(+n)?n||0:+n;return t.containerQueries(s).up(i)}function Za(t){const e=(i,o)=>i.replace("@media",o?`@container ${o}`:"@container");function r(i,o){i.up=(...a)=>e(t.breakpoints.up(...a),o),i.down=(...a)=>e(t.breakpoints.down(...a),o),i.between=(...a)=>e(t.breakpoints.between(...a),o),i.only=(...a)=>e(t.breakpoints.only(...a),o),i.not=(...a)=>{const l=e(t.breakpoints.not(...a),o);return l.includes("not all and")?l.replace("not all and ","").replace("min-width:","width<").replace("max-width:","width>").replace("and","or"):l}}const n={},s=i=>(r(n,i),n);return r(s),{...t,containerQueries:s}}const kr={xs:0,sm:600,md:900,lg:1200,xl:1536},ks={keys:["xs","sm","md","lg","xl"],up:t=>`@media (min-width:${kr[t]}px)`},Ja={containerQueries:t=>({up:e=>{let r=typeof e=="number"?e:kr[e]||e;return typeof r=="number"&&(r=`${r}px`),t?`@container ${t} (min-width:${r})`:`@container (min-width:${r})`}})};function We(t,e,r){const n=t.theme||{};if(Array.isArray(e)){const i=n.breakpoints||ks;return e.reduce((o,a,l)=>(o[i.up(i.keys[l])]=r(e[l]),o),{})}if(typeof e=="object"){const i=n.breakpoints||ks;return Object.keys(e).reduce((o,a)=>{if(Ga(i.keys,a)){const l=Ha(n.containerQueries?n:Ja,a);l&&(o[l]=r(e[a],a))}else if(Object.keys(i.values||kr).includes(a)){const l=i.up(a);o[l]=r(e[a],a)}else{const l=a;o[l]=e[l]}return o},{})}return r(e)}function Ka(t={}){var r;return((r=t.keys)==null?void 0:r.reduce((n,s)=>{const i=t.up(s);return n[i]={},n},{}))||{}}function Is(t,e){return t.reduce((r,n)=>{const s=r[n];return(!s||Object.keys(s).length===0)&&delete r[n],r},e)}function Ir(t,e,r=!0){if(!e||typeof e!="string")return null;if(t&&t.vars&&r){const n=`vars.${e}`.split(".").reduce((s,i)=>s&&s[i]?s[i]:null,t);if(n!=null)return n}return e.split(".").reduce((n,s)=>n&&n[s]!=null?n[s]:null,t)}function gr(t,e,r,n=r){let s;return typeof t=="function"?s=t(r):Array.isArray(t)?s=t[r]||n:s=Ir(t,r)||n,e&&(s=e(s,n,t)),s}function me(t){const{prop:e,cssProperty:r=t.prop,themeKey:n,transform:s}=t,i=o=>{if(o[e]==null)return null;const a=o[e],l=o.theme,u=Ir(l,n)||{};return We(o,a,m=>{let p=gr(u,s,m);return m===p&&typeof m=="string"&&(p=gr(u,s,`${e}${m==="default"?"":Rn(m)}`,m)),r===!1?p:{[r]:p}})};return i.propTypes=process.env.NODE_ENV!=="production"?{[e]:Ke}:{},i.filterProps=[e],i}function Qa(t){const e={};return r=>(e[r]===void 0&&(e[r]=t(r)),e[r])}const Xa={m:"margin",p:"padding"},el={t:"Top",r:"Right",b:"Bottom",l:"Left",x:["Left","Right"],y:["Top","Bottom"]},Ms={marginX:"mx",marginY:"my",paddingX:"px",paddingY:"py"},tl=Qa(t=>{if(t.length>2)if(Ms[t])t=Ms[t];else return[t];const[e,r]=t.split(""),n=Xa[e],s=el[r]||"";return Array.isArray(s)?s.map(i=>n+i):[n+s]}),Mr=["m","mt","mr","mb","ml","mx","my","margin","marginTop","marginRight","marginBottom","marginLeft","marginX","marginY","marginInline","marginInlineStart","marginInlineEnd","marginBlock","marginBlockStart","marginBlockEnd"],$r=["p","pt","pr","pb","pl","px","py","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","paddingX","paddingY","paddingInline","paddingInlineStart","paddingInlineEnd","paddingBlock","paddingBlockStart","paddingBlockEnd"],rl=[...Mr,...$r];function Yt(t,e,r,n){const s=Ir(t,e,!0)??r;return typeof s=="number"||typeof s=="string"?i=>typeof i=="string"?i:(process.env.NODE_ENV!=="production"&&typeof i!="number"&&console.error(`MUI: Expected ${n} argument to be a number or a string, got ${i}.`),typeof s=="string"?s.startsWith("var(")&&i===0?0:s.startsWith("var(")&&i===1?s:`calc(${i} * ${s})`:s*i):Array.isArray(s)?i=>{if(typeof i=="string")return i;const o=Math.abs(i);process.env.NODE_ENV!=="production"&&(Number.isInteger(o)?o>s.length-1&&console.error([`MUI: The value provided (${o}) overflows.`,`The supported values are: ${JSON.stringify(s)}.`,`${o} > ${s.length-1}, you need to add the missing values.`].join(`
|
|
91
|
+
`)):console.error([`MUI: The \`theme.${e}\` array type cannot be combined with non integer values.You should either use an integer value that can be used as index, or define the \`theme.${e}\` as a number.`].join(`
|
|
92
|
+
`)));const a=s[o];return i>=0?a:typeof a=="number"?-a:typeof a=="string"&&a.startsWith("var(")?`calc(-1 * ${a})`:`-${a}`}:typeof s=="function"?s:(process.env.NODE_ENV!=="production"&&console.error([`MUI: The \`theme.${e}\` value (${s}) is invalid.`,"It should be a number, an array or a function."].join(`
|
|
93
|
+
`)),()=>{})}function An(t){return Yt(t,"spacing",8,"spacing")}function qt(t,e){return typeof e=="string"||e==null?e:t(e)}function nl(t,e){return r=>t.reduce((n,s)=>(n[s]=qt(e,r),n),{})}function sl(t,e,r,n){if(!e.includes(r))return null;const s=tl(r),i=nl(s,n),o=t[r];return We(t,o,i)}function _i(t,e){const r=An(t.theme);return Object.keys(t).map(n=>sl(t,e,n,r)).reduce(Ft,{})}function ce(t){return _i(t,Mr)}ce.propTypes=process.env.NODE_ENV!=="production"?Mr.reduce((t,e)=>(t[e]=Ke,t),{}):{};ce.filterProps=Mr;function de(t){return _i(t,$r)}de.propTypes=process.env.NODE_ENV!=="production"?$r.reduce((t,e)=>(t[e]=Ke,t),{}):{};de.filterProps=$r;process.env.NODE_ENV!=="production"&&rl.reduce((t,e)=>(t[e]=Ke,t),{});function Nr(...t){const e=t.reduce((n,s)=>(s.filterProps.forEach(i=>{n[i]=s}),n),{}),r=n=>Object.keys(n).reduce((s,i)=>e[i]?Ft(s,e[i](n)):s,{});return r.propTypes=process.env.NODE_ENV!=="production"?t.reduce((n,s)=>Object.assign(n,s.propTypes),{}):{},r.filterProps=t.reduce((n,s)=>n.concat(s.filterProps),[]),r}function Ie(t){return typeof t!="number"?t:`${t}px solid`}function Ne(t,e){return me({prop:t,themeKey:"borders",transform:e})}const il=Ne("border",Ie),ol=Ne("borderTop",Ie),al=Ne("borderRight",Ie),ll=Ne("borderBottom",Ie),ul=Ne("borderLeft",Ie),cl=Ne("borderColor"),dl=Ne("borderTopColor"),fl=Ne("borderRightColor"),hl=Ne("borderBottomColor"),ml=Ne("borderLeftColor"),pl=Ne("outline",Ie),yl=Ne("outlineColor"),_r=t=>{if(t.borderRadius!==void 0&&t.borderRadius!==null){const e=Yt(t.theme,"shape.borderRadius",4,"borderRadius"),r=n=>({borderRadius:qt(e,n)});return We(t,t.borderRadius,r)}return null};_r.propTypes=process.env.NODE_ENV!=="production"?{borderRadius:Ke}:{};_r.filterProps=["borderRadius"];Nr(il,ol,al,ll,ul,cl,dl,fl,hl,ml,_r,pl,yl);const jr=t=>{if(t.gap!==void 0&&t.gap!==null){const e=Yt(t.theme,"spacing",8,"gap"),r=n=>({gap:qt(e,n)});return We(t,t.gap,r)}return null};jr.propTypes=process.env.NODE_ENV!=="production"?{gap:Ke}:{};jr.filterProps=["gap"];const Dr=t=>{if(t.columnGap!==void 0&&t.columnGap!==null){const e=Yt(t.theme,"spacing",8,"columnGap"),r=n=>({columnGap:qt(e,n)});return We(t,t.columnGap,r)}return null};Dr.propTypes=process.env.NODE_ENV!=="production"?{columnGap:Ke}:{};Dr.filterProps=["columnGap"];const Rr=t=>{if(t.rowGap!==void 0&&t.rowGap!==null){const e=Yt(t.theme,"spacing",8,"rowGap"),r=n=>({rowGap:qt(e,n)});return We(t,t.rowGap,r)}return null};Rr.propTypes=process.env.NODE_ENV!=="production"?{rowGap:Ke}:{};Rr.filterProps=["rowGap"];const gl=me({prop:"gridColumn"}),bl=me({prop:"gridRow"}),vl=me({prop:"gridAutoFlow"}),Sl=me({prop:"gridAutoColumns"}),Tl=me({prop:"gridAutoRows"}),xl=me({prop:"gridTemplateColumns"}),wl=me({prop:"gridTemplateRows"}),Cl=me({prop:"gridTemplateAreas"}),Ol=me({prop:"gridArea"});Nr(jr,Dr,Rr,gl,bl,vl,Sl,Tl,xl,wl,Cl,Ol);function bt(t,e){return e==="grey"?e:t}const El=me({prop:"color",themeKey:"palette",transform:bt}),kl=me({prop:"bgcolor",cssProperty:"backgroundColor",themeKey:"palette",transform:bt}),Il=me({prop:"backgroundColor",themeKey:"palette",transform:bt});Nr(El,kl,Il);function we(t){return t<=1&&t!==0?`${t*100}%`:t}const Ml=me({prop:"width",transform:we}),Pn=t=>{if(t.maxWidth!==void 0&&t.maxWidth!==null){const e=r=>{var s,i,o,a,l;const n=((o=(i=(s=t.theme)==null?void 0:s.breakpoints)==null?void 0:i.values)==null?void 0:o[r])||kr[r];return n?((l=(a=t.theme)==null?void 0:a.breakpoints)==null?void 0:l.unit)!=="px"?{maxWidth:`${n}${t.theme.breakpoints.unit}`}:{maxWidth:n}:{maxWidth:we(r)}};return We(t,t.maxWidth,e)}return null};Pn.filterProps=["maxWidth"];const $l=me({prop:"minWidth",transform:we}),Nl=me({prop:"height",transform:we}),_l=me({prop:"maxHeight",transform:we}),jl=me({prop:"minHeight",transform:we});me({prop:"size",cssProperty:"width",transform:we});me({prop:"size",cssProperty:"height",transform:we});const Dl=me({prop:"boxSizing"});Nr(Ml,Pn,$l,Nl,_l,jl,Dl);const Gt={border:{themeKey:"borders",transform:Ie},borderTop:{themeKey:"borders",transform:Ie},borderRight:{themeKey:"borders",transform:Ie},borderBottom:{themeKey:"borders",transform:Ie},borderLeft:{themeKey:"borders",transform:Ie},borderColor:{themeKey:"palette"},borderTopColor:{themeKey:"palette"},borderRightColor:{themeKey:"palette"},borderBottomColor:{themeKey:"palette"},borderLeftColor:{themeKey:"palette"},outline:{themeKey:"borders",transform:Ie},outlineColor:{themeKey:"palette"},borderRadius:{themeKey:"shape.borderRadius",style:_r},color:{themeKey:"palette",transform:bt},bgcolor:{themeKey:"palette",cssProperty:"backgroundColor",transform:bt},backgroundColor:{themeKey:"palette",transform:bt},p:{style:de},pt:{style:de},pr:{style:de},pb:{style:de},pl:{style:de},px:{style:de},py:{style:de},padding:{style:de},paddingTop:{style:de},paddingRight:{style:de},paddingBottom:{style:de},paddingLeft:{style:de},paddingX:{style:de},paddingY:{style:de},paddingInline:{style:de},paddingInlineStart:{style:de},paddingInlineEnd:{style:de},paddingBlock:{style:de},paddingBlockStart:{style:de},paddingBlockEnd:{style:de},m:{style:ce},mt:{style:ce},mr:{style:ce},mb:{style:ce},ml:{style:ce},mx:{style:ce},my:{style:ce},margin:{style:ce},marginTop:{style:ce},marginRight:{style:ce},marginBottom:{style:ce},marginLeft:{style:ce},marginX:{style:ce},marginY:{style:ce},marginInline:{style:ce},marginInlineStart:{style:ce},marginInlineEnd:{style:ce},marginBlock:{style:ce},marginBlockStart:{style:ce},marginBlockEnd:{style:ce},displayPrint:{cssProperty:!1,transform:t=>({"@media print":{display:t}})},display:{},overflow:{},textOverflow:{},visibility:{},whiteSpace:{},flexBasis:{},flexDirection:{},flexWrap:{},justifyContent:{},alignItems:{},alignContent:{},order:{},flex:{},flexGrow:{},flexShrink:{},alignSelf:{},justifyItems:{},justifySelf:{},gap:{style:jr},rowGap:{style:Rr},columnGap:{style:Dr},gridColumn:{},gridRow:{},gridAutoFlow:{},gridAutoColumns:{},gridAutoRows:{},gridTemplateColumns:{},gridTemplateRows:{},gridTemplateAreas:{},gridArea:{},position:{},zIndex:{themeKey:"zIndex"},top:{},right:{},bottom:{},left:{},boxShadow:{themeKey:"shadows"},width:{transform:we},maxWidth:{style:Pn},minWidth:{transform:we},height:{transform:we},maxHeight:{transform:we},minHeight:{transform:we},boxSizing:{},font:{themeKey:"font"},fontFamily:{themeKey:"typography"},fontSize:{themeKey:"typography"},fontStyle:{themeKey:"typography"},fontWeight:{themeKey:"typography"},letterSpacing:{},textTransform:{},lineHeight:{},textAlign:{},typography:{cssProperty:!1,themeKey:"typography"}};function Rl(...t){const e=t.reduce((n,s)=>n.concat(Object.keys(s)),[]),r=new Set(e);return t.every(n=>r.size===Object.keys(n).length)}function Al(t,e){return typeof t=="function"?t(e):t}function Pl(){function t(r,n,s,i){const o={[r]:n,theme:s},a=i[r];if(!a)return{[r]:n};const{cssProperty:l=r,themeKey:u,transform:h,style:m}=a;if(n==null)return null;if(u==="typography"&&n==="inherit")return{[r]:n};const p=Ir(s,u)||{};return m?m(o):We(o,n,g=>{let d=gr(p,h,g);return g===d&&typeof g=="string"&&(d=gr(p,h,`${r}${g==="default"?"":Rn(g)}`,g)),l===!1?d:{[l]:d}})}function e(r){const{sx:n,theme:s={},nested:i}=r||{};if(!n)return null;const o=s.unstable_sxConfig??Gt;function a(l){let u=l;if(typeof l=="function")u=l(s);else if(typeof l!="object")return l;if(!u)return null;const h=Ka(s.breakpoints),m=Object.keys(h);let p=h;return Object.keys(u).forEach(y=>{const g=Al(u[y],s);if(g!=null)if(typeof g=="object")if(o[y])p=Ft(p,t(y,g,s,o));else{const d=We({theme:s},g,T=>({[y]:T}));Rl(d,g)?p[y]=e({sx:g,theme:s,nested:!0}):p=Ft(p,d)}else p=Ft(p,t(y,g,s,o))}),!i&&s.modularCssLayers?{"@layer sx":Es(s,Is(m,p))}:Es(s,Is(m,p))}return Array.isArray(n)?n.map(a):a(n)}return e}const wt=Pl();wt.filterProps=["sx"];const Ll=t=>{var n;const e={systemProps:{},otherProps:{}},r=((n=t==null?void 0:t.theme)==null?void 0:n.unstable_sxConfig)??Gt;return Object.keys(t).forEach(s=>{r[s]?e.systemProps[s]=t[s]:e.otherProps[s]=t[s]}),e};function Vl(t){const{sx:e,...r}=t,{systemProps:n,otherProps:s}=Ll(r);let i;return Array.isArray(e)?i=[n,...e]:typeof e=="function"?i=(...o)=>{const a=e(...o);return Ye(a)?{...n,...a}:n}:i={...n,...e},{...s,sx:i}}function Fl(t){for(var e=0,r,n=0,s=t.length;s>=4;++n,s-=4)r=t.charCodeAt(n)&255|(t.charCodeAt(++n)&255)<<8|(t.charCodeAt(++n)&255)<<16|(t.charCodeAt(++n)&255)<<24,r=(r&65535)*1540483477+((r>>>16)*59797<<16),r^=r>>>24,e=(r&65535)*1540483477+((r>>>16)*59797<<16)^(e&65535)*1540483477+((e>>>16)*59797<<16);switch(s){case 3:e^=(t.charCodeAt(n+2)&255)<<16;case 2:e^=(t.charCodeAt(n+1)&255)<<8;case 1:e^=t.charCodeAt(n)&255,e=(e&65535)*1540483477+((e>>>16)*59797<<16)}return e^=e>>>13,e=(e&65535)*1540483477+((e>>>16)*59797<<16),((e^e>>>15)>>>0).toString(36)}var Wl={animationIterationCount:1,aspectRatio:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,scale:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1};function zl(t){var e=Object.create(null);return function(r){return e[r]===void 0&&(e[r]=t(r)),e[r]}}var Ul=/[A-Z]|^ms/g,Bl=/_EMO_([^_]+?)_([^]*?)_EMO_/g,ji=function(e){return e.charCodeAt(1)===45},$s=function(e){return e!=null&&typeof e!="boolean"},rn=zl(function(t){return ji(t)?t:t.replace(Ul,"-$&").toLowerCase()}),Ns=function(e,r){switch(e){case"animation":case"animationName":if(typeof r=="string")return r.replace(Bl,function(n,s,i){return He={name:s,styles:i,next:He},s})}return Wl[e]!==1&&!ji(e)&&typeof r=="number"&&r!==0?r+"px":r};function br(t,e,r){if(r==null)return"";var n=r;if(n.__emotion_styles!==void 0)return n;switch(typeof r){case"boolean":return"";case"object":{var s=r;if(s.anim===1)return He={name:s.name,styles:s.styles,next:He},s.name;var i=r;if(i.styles!==void 0){var o=i.next;if(o!==void 0)for(;o!==void 0;)He={name:o.name,styles:o.styles,next:He},o=o.next;var a=i.styles+";";return a}return Yl(t,e,r)}}var l=r;return l}function Yl(t,e,r){var n="";if(Array.isArray(r))for(var s=0;s<r.length;s++)n+=br(t,e,r[s])+";";else for(var i in r){var o=r[i];if(typeof o!="object"){var a=o;$s(a)&&(n+=rn(i)+":"+Ns(i,a)+";")}else if(Array.isArray(o)&&typeof o[0]=="string"&&e==null)for(var l=0;l<o.length;l++)$s(o[l])&&(n+=rn(i)+":"+Ns(i,o[l])+";");else{var u=br(t,e,o);switch(i){case"animation":case"animationName":{n+=rn(i)+":"+u+";";break}default:n+=i+"{"+u+"}"}}}return n}var _s=/label:\s*([^\s;{]+)\s*(;|$)/g,He;function ql(t,e,r){if(t.length===1&&typeof t[0]=="object"&&t[0]!==null&&t[0].styles!==void 0)return t[0];var n=!0,s="";He=void 0;var i=t[0];if(i==null||i.raw===void 0)n=!1,s+=br(r,e,i);else{var o=i;s+=o[0]}for(var a=1;a<t.length;a++)if(s+=br(r,e,t[a]),n){var l=i;s+=l[a]}_s.lastIndex=0;for(var u="",h;(h=_s.exec(s))!==null;)u+="-"+h[1];var m=Fl(s)+u;return{name:m,styles:s,next:He}}/**
|
|
94
94
|
* @mui/styled-engine v7.3.3
|
|
95
95
|
*
|
|
96
96
|
* @license MIT
|
|
97
97
|
* This source code is licensed under the MIT license found in the
|
|
98
98
|
* LICENSE file in the root directory of this source tree.
|
|
99
|
-
*/function
|
|
100
|
-
`)):
|
|
101
|
-
The following formats are supported: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color().`:
|
|
102
|
-
The following color spaces are supported: srgb, display-p3, a98-rgb, prophoto-rgb, rec-2020.`:Fa(10,n))}else t=t.split(",");return t=t.map(r=>parseFloat(r)),{type:o,values:t,colorSpace:n}}const qi=e=>{const a=Ue(e);return a.values.slice(0,3).map((o,t)=>a.type.includes("hsl")&&t!==0?`${o}%`:o).join(" ")},fa=(e,a)=>{try{return qi(e)}catch{return a&&process.env.NODE_ENV!=="production"&&console.warn(a),e}};function Xa(e){const{type:a,colorSpace:o}=e;let{values:t}=e;return a.includes("rgb")?t=t.map((n,r)=>r<3?parseInt(n,10):n):a.includes("hsl")&&(t[1]=`${t[1]}%`,t[2]=`${t[2]}%`),a.includes("color")?t=`${o} ${t.join(" ")}`:t=`${t.join(", ")}`,`${a}(${t})`}function an(e){e=Ue(e);const{values:a}=e,o=a[0],t=a[1]/100,n=a[2]/100,r=t*Math.min(n,1-n),i=(p,d=(p+o/30)%12)=>n-r*Math.max(Math.min(d-3,9-d,1),-1);let s="rgb";const u=[Math.round(i(0)*255),Math.round(i(8)*255),Math.round(i(4)*255)];return e.type==="hsla"&&(s+="a",u.push(a[3])),Xa({type:s,values:u})}function vo(e){e=Ue(e);let a=e.type==="hsl"||e.type==="hsla"?Ue(an(e)).values:e.values;return a=a.map(o=>(e.type!=="color"&&(o/=255),o<=.03928?o/12.92:((o+.055)/1.055)**2.4)),Number((.2126*a[0]+.7152*a[1]+.0722*a[2]).toFixed(3))}function bt(e,a){const o=vo(e),t=vo(a);return(Math.max(o,t)+.05)/(Math.min(o,t)+.05)}function on(e,a){return e=Ue(e),a=Ao(a),(e.type==="rgb"||e.type==="hsl")&&(e.type+="a"),e.type==="color"?e.values[3]=`/${a}`:e.values[3]=a,Xa(e)}function Ve(e,a,o){try{return on(e,a)}catch{return o&&process.env.NODE_ENV!=="production"&&console.warn(o),e}}function Qa(e,a){if(e=Ue(e),a=Ao(a),e.type.includes("hsl"))e.values[2]*=1-a;else if(e.type.includes("rgb")||e.type.includes("color"))for(let o=0;o<3;o+=1)e.values[o]*=1-a;return Xa(e)}function le(e,a,o){try{return Qa(e,a)}catch{return o&&process.env.NODE_ENV!=="production"&&console.warn(o),e}}function Za(e,a){if(e=Ue(e),a=Ao(a),e.type.includes("hsl"))e.values[2]+=(100-e.values[2])*a;else if(e.type.includes("rgb"))for(let o=0;o<3;o+=1)e.values[o]+=(255-e.values[o])*a;else if(e.type.includes("color"))for(let o=0;o<3;o+=1)e.values[o]+=(1-e.values[o])*a;return Xa(e)}function me(e,a,o){try{return Za(e,a)}catch{return o&&process.env.NODE_ENV!=="production"&&console.warn(o),e}}function Vi(e,a=.15){return vo(e)>.5?Qa(e,a):Za(e,a)}function Aa(e,a,o){try{return Vi(e,a)}catch{return e}}const Wi=Re.createContext(void 0);process.env.NODE_ENV!=="production"&&(ie.node,ie.object);function Hi(e){const{theme:a,name:o,props:t}=e;if(!a||!a.components||!a.components[o])return t;const n=a.components[o];return n.defaultProps?jo(n.defaultProps,t,a.components.mergeClassNameAndStyle):!n.styleOverrides&&!n.variants?jo(n,t,a.components.mergeClassNameAndStyle):t}function Gi({props:e,name:a}){const o=Re.useContext(Wi);return Hi({props:e,name:a,theme:{components:o}})}const jt={theme:void 0};function Yi(e){let a,o;return function(n){let r=a;return(r===void 0||n.theme!==o)&&(jt.theme=n.theme,r=Qt(e(jt)),a=r,o=n.theme),r}}function Ki(e=""){function a(...t){if(!t.length)return"";const n=t[0];return typeof n=="string"&&!n.match(/(#|\(|\)|(-?(\d*\.)?\d+)(px|em|%|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc))|^(-?(\d*\.)?\d+)$|(\d+ \d+ \d+)/)?`, var(--${e?`${e}-`:""}${n}${a(...t.slice(1))})`:`, ${n}`}return(t,...n)=>`var(--${e?`${e}-`:""}${t}${a(...n)})`}const vt=(e,a,o,t=[])=>{let n=e;a.forEach((r,i)=>{i===a.length-1?Array.isArray(n)?n[Number(r)]=o:n&&typeof n=="object"&&(n[r]=o):n&&typeof n=="object"&&(n[r]||(n[r]=t.includes(r)?[]:{}),n=n[r])})},Ji=(e,a,o)=>{function t(n,r=[],i=[]){Object.entries(n).forEach(([s,u])=>{(!o||o&&!o([...r,s]))&&u!=null&&(typeof u=="object"&&Object.keys(u).length>0?t(u,[...r,s],Array.isArray(u)?[...i,s]:i):a([...r,s],u,i))})}t(e)},Xi=(e,a)=>typeof a=="number"?["lineHeight","fontWeight","opacity","zIndex"].some(t=>e.includes(t))||e[e.length-1].toLowerCase().includes("opacity")?a:`${a}px`:a;function ho(e,a){const{prefix:o,shouldSkipGeneratingVar:t}=a||{},n={},r={},i={};return Ji(e,(s,u,p)=>{if((typeof u=="string"||typeof u=="number")&&(!t||!t(s,u))){const d=`--${o?`${o}-`:""}${s.join("-")}`,m=Xi(s,u);Object.assign(n,{[d]:m}),vt(r,s,`var(${d})`,p),vt(i,s,`var(${d}, ${m})`,p)}},s=>s[0]==="vars"),{css:n,vars:r,varsWithDefaults:i}}function Qi(e,a={}){const{getSelector:o=T,disableCssColorScheme:t,colorSchemeSelector:n,enableContrastVars:r}=a,{colorSchemes:i={},components:s,defaultColorScheme:u="light",...p}=e,{vars:d,css:m,varsWithDefaults:h}=ho(p,a);let g=h;const f={},{[u]:c,...v}=i;if(Object.entries(v||{}).forEach(([b,y])=>{const{vars:w,css:z,varsWithDefaults:L}=ho(y,a);g=Ye(g,L),f[b]={css:z,vars:w}}),c){const{css:b,vars:y,varsWithDefaults:w}=ho(c,a);g=Ye(g,w),f[u]={css:b,vars:y}}function T(b,y){var z,L;let w=n;if(n==="class"&&(w=".%s"),n==="data"&&(w="[data-%s]"),n!=null&&n.startsWith("data-")&&!n.includes("%s")&&(w=`[${n}="%s"]`),b){if(w==="media")return e.defaultColorScheme===b?":root":{[`@media (prefers-color-scheme: ${((L=(z=i[b])==null?void 0:z.palette)==null?void 0:L.mode)||b})`]:{":root":y}};if(w)return e.defaultColorScheme===b?`:root, ${w.replace("%s",String(b))}`:w.replace("%s",String(b))}return":root"}return{vars:g,generateThemeVars:()=>{let b={...d};return Object.entries(f).forEach(([,{vars:y}])=>{b=Ye(b,y)}),b},generateStyleSheets:()=>{var $,H;const b=[],y=e.defaultColorScheme||"light";function w(U,l){Object.keys(l).length&&b.push(typeof U=="string"?{[U]:{...l}}:U)}w(o(void 0,{...m}),m);const{[y]:z,...L}=f;if(z){const{css:U}=z,l=(H=($=i[y])==null?void 0:$.palette)==null?void 0:H.mode,M=!t&&l?{colorScheme:l,...U}:{...U};w(o(y,{...M}),M)}return Object.entries(L).forEach(([U,{css:l}])=>{var C,N;const M=(N=(C=i[U])==null?void 0:C.palette)==null?void 0:N.mode,D=!t&&M?{colorScheme:M,...l}:{...l};w(o(U,{...D}),D)}),r&&b.push({":root":{"--__l-threshold":"0.7","--__l":"clamp(0, (l / var(--__l-threshold) - 1) * -infinity, 1)","--__a":"clamp(0.87, (l / var(--__l-threshold) - 1) * -infinity, 1)"}}),b}}}function Zi(e){return function(o){return e==="media"?(process.env.NODE_ENV!=="production"&&o!=="light"&&o!=="dark"&&console.error(`MUI: @media (prefers-color-scheme) supports only 'light' or 'dark', but receive '${o}'.`),`@media (prefers-color-scheme: ${o})`):e?e.startsWith("data-")&&!e.includes("%s")?`[${e}="${o}"] &`:e==="class"?`.${o} &`:e==="data"?`[data-${o}] &`:`${e.replace("%s",o)} &`:"&"}}function Le(e){if(typeof e!="object"||e===null)return!1;const a=Object.getPrototypeOf(e);return(a===null||a===Object.prototype||Object.getPrototypeOf(a)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)}function tn(e){if(Re.isValidElement(e)||sa.isValidElementType(e)||!Le(e))return e;const a={};return Object.keys(e).forEach(o=>{a[o]=tn(e[o])}),a}function Je(e,a,o={clone:!0}){const t=o.clone?{...e}:e;return Le(e)&&Le(a)&&Object.keys(a).forEach(n=>{Re.isValidElement(a[n])||sa.isValidElementType(a[n])?t[n]=a[n]:Le(a[n])&&Object.prototype.hasOwnProperty.call(e,n)&&Le(e[n])?t[n]=Je(e[n],a[n],o):o.clone?t[n]=Le(a[n])?tn(a[n]):a[n]:t[n]=a[n]}),t}const ja={black:"#000",white:"#fff"},es={50:"#fafafa",100:"#f5f5f5",200:"#eeeeee",300:"#e0e0e0",400:"#bdbdbd",500:"#9e9e9e",600:"#757575",700:"#616161",800:"#424242",900:"#212121",A100:"#f5f5f5",A200:"#eeeeee",A400:"#bdbdbd",A700:"#616161"},Qe={50:"#f3e5f5",200:"#ce93d8",300:"#ba68c8",400:"#ab47bc",500:"#9c27b0",700:"#7b1fa2"},Ze={300:"#e57373",400:"#ef5350",500:"#f44336",700:"#d32f2f",800:"#c62828"},ma={300:"#ffb74d",400:"#ffa726",500:"#ff9800",700:"#f57c00",900:"#e65100"},ea={50:"#e3f2fd",200:"#90caf9",400:"#42a5f5",700:"#1976d2",800:"#1565c0"},aa={300:"#4fc3f7",400:"#29b6f6",500:"#03a9f4",700:"#0288d1",900:"#01579b"},oa={300:"#81c784",400:"#66bb6a",500:"#4caf50",700:"#388e3c",800:"#2e7d32",900:"#1b5e20"};function nn(){return{text:{primary:"rgba(0, 0, 0, 0.87)",secondary:"rgba(0, 0, 0, 0.6)",disabled:"rgba(0, 0, 0, 0.38)"},divider:"rgba(0, 0, 0, 0.12)",background:{paper:ja.white,default:ja.white},action:{active:"rgba(0, 0, 0, 0.54)",hover:"rgba(0, 0, 0, 0.04)",hoverOpacity:.04,selected:"rgba(0, 0, 0, 0.08)",selectedOpacity:.08,disabled:"rgba(0, 0, 0, 0.26)",disabledBackground:"rgba(0, 0, 0, 0.12)",disabledOpacity:.38,focus:"rgba(0, 0, 0, 0.12)",focusOpacity:.12,activatedOpacity:.12}}}const rn=nn();function sn(){return{text:{primary:ja.white,secondary:"rgba(255, 255, 255, 0.7)",disabled:"rgba(255, 255, 255, 0.5)",icon:"rgba(255, 255, 255, 0.5)"},divider:"rgba(255, 255, 255, 0.12)",background:{paper:"#121212",default:"#121212"},action:{active:ja.white,hover:"rgba(255, 255, 255, 0.08)",hoverOpacity:.08,selected:"rgba(255, 255, 255, 0.16)",selectedOpacity:.16,disabled:"rgba(255, 255, 255, 0.3)",disabledBackground:"rgba(255, 255, 255, 0.12)",disabledOpacity:.38,focus:"rgba(255, 255, 255, 0.12)",focusOpacity:.12,activatedOpacity:.24}}}const wo=sn();function wt(e,a,o,t){const n=t.light||t,r=t.dark||t*1.5;e[a]||(e.hasOwnProperty(o)?e[a]=e[o]:a==="light"?e.light=Za(e.main,n):a==="dark"&&(e.dark=Qa(e.main,r)))}function xt(e,a,o,t,n){const r=n.light||n,i=n.dark||n*1.5;a[o]||(a.hasOwnProperty(t)?a[o]=a[t]:o==="light"?a.light=`color-mix(in ${e}, ${a.main}, #fff ${(r*100).toFixed(0)}%)`:o==="dark"&&(a.dark=`color-mix(in ${e}, ${a.main}, #000 ${(i*100).toFixed(0)}%)`))}function as(e="light"){return e==="dark"?{main:ea[200],light:ea[50],dark:ea[400]}:{main:ea[700],light:ea[400],dark:ea[800]}}function os(e="light"){return e==="dark"?{main:Qe[200],light:Qe[50],dark:Qe[400]}:{main:Qe[500],light:Qe[300],dark:Qe[700]}}function ts(e="light"){return e==="dark"?{main:Ze[500],light:Ze[300],dark:Ze[700]}:{main:Ze[700],light:Ze[400],dark:Ze[800]}}function ns(e="light"){return e==="dark"?{main:aa[400],light:aa[300],dark:aa[700]}:{main:aa[700],light:aa[500],dark:aa[900]}}function rs(e="light"){return e==="dark"?{main:oa[400],light:oa[300],dark:oa[700]}:{main:oa[800],light:oa[500],dark:oa[900]}}function is(e="light"){return e==="dark"?{main:ma[400],light:ma[300],dark:ma[700]}:{main:"#ed6c02",light:ma[500],dark:ma[900]}}function ss(e){return`oklch(from ${e} var(--__l) 0 h / var(--__a))`}function Ro(e){const{mode:a="light",contrastThreshold:o=3,tonalOffset:t=.2,colorSpace:n,...r}=e,i=e.primary||as(a),s=e.secondary||os(a),u=e.error||ts(a),p=e.info||ns(a),d=e.success||rs(a),m=e.warning||is(a);function h(v){if(n)return ss(v);const T=bt(v,wo.text.primary)>=o?wo.text.primary:rn.text.primary;if(process.env.NODE_ENV!=="production"){const P=bt(v,T);P<3&&console.error([`MUI: The contrast ratio of ${P}:1 for ${T} on ${v}`,"falls below the WCAG recommended absolute minimum contrast ratio of 3:1.","https://www.w3.org/TR/2008/REC-WCAG20-20081211/#visual-audio-contrast-contrast"].join(`
|
|
103
|
-
`))}return T}const g=({
|
|
104
|
-
|
|
105
|
-
\`
|
|
99
|
+
*/function Gl(t,e){const r=la(t,e);return process.env.NODE_ENV!=="production"?(...n)=>{const s=typeof t=="string"?`"${t}"`:"component";return n.length===0?console.error([`MUI: Seems like you called \`styled(${s})()\` without a \`style\` argument.`,'You must provide a `styles` argument: `styled("div")(styleYouForgotToPass)`.'].join(`
|
|
100
|
+
`)):n.some(i=>i===void 0)&&console.error(`MUI: the styled(${s})(...args) API requires all its args to be defined.`),r(...n)}:r}function Hl(t,e){Array.isArray(t.__emotion_styles)&&(t.__emotion_styles=e(t.__emotion_styles))}const js=[];function it(t){return js[0]=t,ql(js)}const Zl=t=>{const e=Object.keys(t).map(r=>({key:r,val:t[r]}))||[];return e.sort((r,n)=>r.val-n.val),e.reduce((r,n)=>({...r,[n.key]:n.val}),{})};function Jl(t){const{values:e={xs:0,sm:600,md:900,lg:1200,xl:1536},unit:r="px",step:n=5,...s}=t,i=Zl(e),o=Object.keys(i);function a(p){return`@media (min-width:${typeof e[p]=="number"?e[p]:p}${r})`}function l(p){return`@media (max-width:${(typeof e[p]=="number"?e[p]:p)-n/100}${r})`}function u(p,y){const g=o.indexOf(y);return`@media (min-width:${typeof e[p]=="number"?e[p]:p}${r}) and (max-width:${(g!==-1&&typeof e[o[g]]=="number"?e[o[g]]:y)-n/100}${r})`}function h(p){return o.indexOf(p)+1<o.length?u(p,o[o.indexOf(p)+1]):a(p)}function m(p){const y=o.indexOf(p);return y===0?a(o[1]):y===o.length-1?l(o[y]):u(p,o[o.indexOf(p)+1]).replace("@media","@media not all and")}return{keys:o,values:i,up:a,down:l,between:u,only:h,not:m,unit:r,...s}}const Kl={borderRadius:4};function Di(t=8,e=An({spacing:t})){if(t.mui)return t;const r=(...n)=>(process.env.NODE_ENV!=="production"&&(n.length<=4||console.error(`MUI: Too many arguments provided, expected between 0 and 4, got ${n.length}`)),(n.length===0?[1]:n).map(i=>{const o=e(i);return typeof o=="number"?`${o}px`:o}).join(" "));return r.mui=!0,r}function Ql(t,e){var n;const r=this;if(r.vars){if(!((n=r.colorSchemes)!=null&&n[t])||typeof r.getColorSchemeSelector!="function")return{};let s=r.getColorSchemeSelector(t);return s==="&"?e:((s.includes("data-")||s.includes("."))&&(s=`*:where(${s.replace(/\s*&$/,"")}) &`),{[s]:e})}return r.palette.mode===t?e:{}}function Ar(t={},...e){const{breakpoints:r={},palette:n={},spacing:s,shape:i={},...o}=t,a=Jl(r),l=Di(s);let u=st({breakpoints:a,direction:"ltr",components:{},palette:{mode:"light",...n},spacing:l,shape:{...Kl,...i}},o);return u=Za(u),u.applyStyles=Ql,u=e.reduce((h,m)=>st(h,m),u),u.unstable_sxConfig={...Gt,...o==null?void 0:o.unstable_sxConfig},u.unstable_sx=function(m){return wt({sx:m,theme:this})},u}function Xl(t){return Object.keys(t).length===0}function eu(t=null){const e=be.useContext(ua.ThemeContext);return!e||Xl(e)?t:e}const tu=Ar();function Ln(t=tu){return eu(t)}const Ds=t=>t,ru=()=>{let t=Ds;return{configure(e){t=e},generate(e){return t(e)},reset(){t=Ds}}},nu=ru(),su={active:"active",checked:"checked",completed:"completed",disabled:"disabled",error:"error",expanded:"expanded",focused:"focused",focusVisible:"focusVisible",open:"open",readOnly:"readOnly",required:"required",selected:"selected"};function iu(t,e,r="Mui"){const n=su[e];return n?`${r}-${n}`:`${nu.generate(t)}-${e}`}function Ri(t,e=""){return t.displayName||t.name||e}function Rs(t,e,r){const n=Ri(e);return t.displayName||(n!==""?`${r}(${n})`:r)}function ou(t){if(t!=null){if(typeof t=="string")return t;if(typeof t=="function")return Ri(t,"Component");if(typeof t=="object")switch(t.$$typeof){case xt.ForwardRef:return Rs(t,t.render,"ForwardRef");case xt.Memo:return Rs(t,t.type,"memo");default:return}}}function Ai(t){const{variants:e,...r}=t,n={variants:e,style:it(r),isProcessed:!0};return n.style===r||e&&e.forEach(s=>{typeof s.style!="function"&&(s.style=it(s.style))}),n}const au=Ar();function nn(t){return t!=="ownerState"&&t!=="theme"&&t!=="sx"&&t!=="as"}function rt(t,e){return e&&t&&typeof t=="object"&&t.styles&&!t.styles.startsWith("@layer")&&(t.styles=`@layer ${e}{${String(t.styles)}}`),t}function lu(t){return t?(e,r)=>r[t]:null}function uu(t,e,r){t.theme=fu(t.theme)?r:t.theme[e]||t.theme}function dr(t,e,r){const n=typeof e=="function"?e(t):e;if(Array.isArray(n))return n.flatMap(s=>dr(t,s,r));if(Array.isArray(n==null?void 0:n.variants)){let s;if(n.isProcessed)s=r?rt(n.style,r):n.style;else{const{variants:i,...o}=n;s=r?rt(it(o),r):o}return Pi(t,n.variants,[s],r)}return n!=null&&n.isProcessed?r?rt(it(n.style),r):n.style:r?rt(it(n),r):n}function Pi(t,e,r=[],n=void 0){var i;let s;e:for(let o=0;o<e.length;o+=1){const a=e[o];if(typeof a.props=="function"){if(s??(s={...t,...t.ownerState,ownerState:t.ownerState}),!a.props(s))continue}else for(const l in a.props)if(t[l]!==a.props[l]&&((i=t.ownerState)==null?void 0:i[l])!==a.props[l])continue e;typeof a.style=="function"?(s??(s={...t,...t.ownerState,ownerState:t.ownerState}),r.push(n?rt(it(a.style(s)),n):a.style(s))):r.push(n?rt(it(a.style),n):a.style)}return r}function Li(t={}){const{themeId:e,defaultTheme:r=au,rootShouldForwardProp:n=nn,slotShouldForwardProp:s=nn}=t;function i(a){uu(a,e,r)}return(a,l={})=>{Hl(a,C=>C.filter(V=>V!==wt));const{name:u,slot:h,skipVariantsResolver:m,skipSx:p,overridesResolver:y=lu(Vi(h)),...g}=l,d=u&&u.startsWith("Mui")||h?"components":"custom",T=m!==void 0?m:h&&h!=="Root"&&h!=="root"||!1,O=p||!1;let j=nn;h==="Root"||h==="root"?j=n:h?j=s:hu(a)&&(j=void 0);const I=Gl(a,{shouldForwardProp:j,label:du(u,h),...g}),E=C=>{if(C.__emotion_real===C)return C;if(typeof C=="function")return function(q){return dr(q,C,q.theme.modularCssLayers?d:void 0)};if(Ye(C)){const V=Ai(C);return function(G){return V.variants?dr(G,V,G.theme.modularCssLayers?d:void 0):G.theme.modularCssLayers?rt(V.style,d):V.style}}return C},w=(...C)=>{const V=[],q=C.map(E),G=[];if(V.push(i),u&&y&&G.push(function(D){var le,ge;const F=(ge=(le=D.theme.components)==null?void 0:le[u])==null?void 0:ge.styleOverrides;if(!F)return null;const U={};for(const Ee in F)U[Ee]=dr(D,F[Ee],D.theme.modularCssLayers?"theme":void 0);return y(D,U)}),u&&!T&&G.push(function(D){var U,le;const M=D.theme,F=(le=(U=M==null?void 0:M.components)==null?void 0:U[u])==null?void 0:le.variants;return F?Pi(D,F,[],D.theme.modularCssLayers?"theme":void 0):null}),O||G.push(wt),Array.isArray(q[0])){const f=q.shift(),D=new Array(V.length).fill(""),M=new Array(G.length).fill("");let F;F=[...D,...f,...M],F.raw=[...D,...f.raw,...M],V.unshift(F)}const pe=[...V,...q,...G],Z=I(...pe);return a.muiName&&(Z.muiName=a.muiName),process.env.NODE_ENV!=="production"&&(Z.displayName=cu(u,h,a)),Z};return I.withConfig&&(w.withConfig=I.withConfig),w}}function cu(t,e,r){return t?`${t}${Rn(e||"")}`:`Styled(${ou(r)})`}function du(t,e){let r;return process.env.NODE_ENV!=="production"&&t&&(r=`${t}-${Vi(e||"Root")}`),r}function fu(t){for(const e in t)return!1;return!0}function hu(t){return typeof t=="string"&&t.charCodeAt(0)>96}function Vi(t){return t&&t.charAt(0).toLowerCase()+t.slice(1)}const mu=Li();function vr(t,e,r=!1){const n={...e};for(const s in t)if(Object.prototype.hasOwnProperty.call(t,s)){const i=s;if(i==="components"||i==="slots")n[i]={...t[i],...n[i]};else if(i==="componentsProps"||i==="slotProps"){const o=t[i],a=e[i];if(!a)n[i]=o||{};else if(!o)n[i]=a;else{n[i]={...a};for(const l in o)if(Object.prototype.hasOwnProperty.call(o,l)){const u=l;n[i][u]=vr(o[u],a[u],r)}}}else i==="className"&&r&&e.className?n.className=Dn(t==null?void 0:t.className,e==null?void 0:e.className):i==="style"&&r&&e.style?n.style={...t==null?void 0:t.style,...e==null?void 0:e.style}:n[i]===void 0&&(n[i]=t[i])}return n}function pu(t){const{theme:e,name:r,props:n}=t;return!e||!e.components||!e.components[r]||!e.components[r].defaultProps?n:vr(e.components[r].defaultProps,n)}function yu({props:t,name:e,defaultTheme:r,themeId:n}){let s=Ln(r);return n&&(s=s[n]||s),pu({theme:s,name:e,props:t})}function gu(t,e=Number.MIN_SAFE_INTEGER,r=Number.MAX_SAFE_INTEGER){return Math.max(e,Math.min(t,r))}function Vn(t,e=0,r=1){return process.env.NODE_ENV!=="production"&&(t<e||t>r)&&console.error(`MUI: The value provided ${t} is out of range [${e}, ${r}].`),gu(t,e,r)}function bu(t){t=t.slice(1);const e=new RegExp(`.{1,${t.length>=6?2:1}}`,"g");let r=t.match(e);return r&&r[0].length===1&&(r=r.map(n=>n+n)),process.env.NODE_ENV!=="production"&&t.length!==t.trim().length&&console.error(`MUI: The color: "${t}" is invalid. Make sure the color input doesn't contain leading/trailing space.`),r?`rgb${r.length===4?"a":""}(${r.map((n,s)=>s<3?parseInt(n,16):Math.round(parseInt(n,16)/255*1e3)/1e3).join(", ")})`:""}function Je(t){if(t.type)return t;if(t.charAt(0)==="#")return Je(bu(t));const e=t.indexOf("("),r=t.substring(0,e);if(!["rgb","rgba","hsl","hsla","color"].includes(r))throw new Error(process.env.NODE_ENV!=="production"?`MUI: Unsupported \`${t}\` color.
|
|
101
|
+
The following formats are supported: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color().`:yr(9,t));let n=t.substring(e+1,t.length-1),s;if(r==="color"){if(n=n.split(" "),s=n.shift(),n.length===4&&n[3].charAt(0)==="/"&&(n[3]=n[3].slice(1)),!["srgb","display-p3","a98-rgb","prophoto-rgb","rec-2020"].includes(s))throw new Error(process.env.NODE_ENV!=="production"?`MUI: unsupported \`${s}\` color space.
|
|
102
|
+
The following color spaces are supported: srgb, display-p3, a98-rgb, prophoto-rgb, rec-2020.`:yr(10,s))}else n=n.split(",");return n=n.map(i=>parseFloat(i)),{type:r,values:n,colorSpace:s}}const vu=t=>{const e=Je(t);return e.values.slice(0,3).map((r,n)=>e.type.includes("hsl")&&n!==0?`${r}%`:r).join(" ")},Dt=(t,e)=>{try{return vu(t)}catch{return e&&process.env.NODE_ENV!=="production"&&console.warn(e),t}};function Pr(t){const{type:e,colorSpace:r}=t;let{values:n}=t;return e.includes("rgb")?n=n.map((s,i)=>i<3?parseInt(s,10):s):e.includes("hsl")&&(n[1]=`${n[1]}%`,n[2]=`${n[2]}%`),e.includes("color")?n=`${r} ${n.join(" ")}`:n=`${n.join(", ")}`,`${e}(${n})`}function Fi(t){t=Je(t);const{values:e}=t,r=e[0],n=e[1]/100,s=e[2]/100,i=n*Math.min(s,1-s),o=(u,h=(u+r/30)%12)=>s-i*Math.max(Math.min(h-3,9-h,1),-1);let a="rgb";const l=[Math.round(o(0)*255),Math.round(o(8)*255),Math.round(o(4)*255)];return t.type==="hsla"&&(a+="a",l.push(e[3])),Pr({type:a,values:l})}function bn(t){t=Je(t);let e=t.type==="hsl"||t.type==="hsla"?Je(Fi(t)).values:t.values;return e=e.map(r=>(t.type!=="color"&&(r/=255),r<=.03928?r/12.92:((r+.055)/1.055)**2.4)),Number((.2126*e[0]+.7152*e[1]+.0722*e[2]).toFixed(3))}function As(t,e){const r=bn(t),n=bn(e);return(Math.max(r,n)+.05)/(Math.min(r,n)+.05)}function Wi(t,e){return t=Je(t),e=Vn(e),(t.type==="rgb"||t.type==="hsl")&&(t.type+="a"),t.type==="color"?t.values[3]=`/${e}`:t.values[3]=e,Pr(t)}function Qe(t,e,r){try{return Wi(t,e)}catch{return r&&process.env.NODE_ENV!=="production"&&console.warn(r),t}}function Lr(t,e){if(t=Je(t),e=Vn(e),t.type.includes("hsl"))t.values[2]*=1-e;else if(t.type.includes("rgb")||t.type.includes("color"))for(let r=0;r<3;r+=1)t.values[r]*=1-e;return Pr(t)}function se(t,e,r){try{return Lr(t,e)}catch{return r&&process.env.NODE_ENV!=="production"&&console.warn(r),t}}function Vr(t,e){if(t=Je(t),e=Vn(e),t.type.includes("hsl"))t.values[2]+=(100-t.values[2])*e;else if(t.type.includes("rgb"))for(let r=0;r<3;r+=1)t.values[r]+=(255-t.values[r])*e;else if(t.type.includes("color"))for(let r=0;r<3;r+=1)t.values[r]+=(1-t.values[r])*e;return Pr(t)}function ie(t,e,r){try{return Vr(t,e)}catch{return r&&process.env.NODE_ENV!=="production"&&console.warn(r),t}}function Su(t,e=.15){return bn(t)>.5?Lr(t,e):Vr(t,e)}function ir(t,e,r){try{return Su(t,e)}catch{return t}}const Tu=be.createContext(void 0);process.env.NODE_ENV!=="production"&&(v.node,v.object);function xu(t){const{theme:e,name:r,props:n}=t;if(!e||!e.components||!e.components[r])return n;const s=e.components[r];return s.defaultProps?vr(s.defaultProps,n,e.components.mergeClassNameAndStyle):!s.styleOverrides&&!s.variants?vr(s,n,e.components.mergeClassNameAndStyle):n}function wu({props:t,name:e}){const r=be.useContext(Tu);return xu({props:t,name:e,theme:{components:r}})}const Ps={theme:void 0};function Cu(t){let e,r;return function(s){let i=e;return(i===void 0||s.theme!==r)&&(Ps.theme=s.theme,i=Ai(t(Ps)),e=i,r=s.theme),i}}function Ou(t=""){function e(...n){if(!n.length)return"";const s=n[0];return typeof s=="string"&&!s.match(/(#|\(|\)|(-?(\d*\.)?\d+)(px|em|%|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc))|^(-?(\d*\.)?\d+)$|(\d+ \d+ \d+)/)?`, var(--${t?`${t}-`:""}${s}${e(...n.slice(1))})`:`, ${s}`}return(n,...s)=>`var(--${t?`${t}-`:""}${n}${e(...s)})`}const Ls=(t,e,r,n=[])=>{let s=t;e.forEach((i,o)=>{o===e.length-1?Array.isArray(s)?s[Number(i)]=r:s&&typeof s=="object"&&(s[i]=r):s&&typeof s=="object"&&(s[i]||(s[i]=n.includes(i)?[]:{}),s=s[i])})},Eu=(t,e,r)=>{function n(s,i=[],o=[]){Object.entries(s).forEach(([a,l])=>{(!r||r&&!r([...i,a]))&&l!=null&&(typeof l=="object"&&Object.keys(l).length>0?n(l,[...i,a],Array.isArray(l)?[...o,a]:o):e([...i,a],l,o))})}n(t)},ku=(t,e)=>typeof e=="number"?["lineHeight","fontWeight","opacity","zIndex"].some(n=>t.includes(n))||t[t.length-1].toLowerCase().includes("opacity")?e:`${e}px`:e;function sn(t,e){const{prefix:r,shouldSkipGeneratingVar:n}=e||{},s={},i={},o={};return Eu(t,(a,l,u)=>{if((typeof l=="string"||typeof l=="number")&&(!n||!n(a,l))){const h=`--${r?`${r}-`:""}${a.join("-")}`,m=ku(a,l);Object.assign(s,{[h]:m}),Ls(i,a,`var(${h})`,u),Ls(o,a,`var(${h}, ${m})`,u)}},a=>a[0]==="vars"),{css:s,vars:i,varsWithDefaults:o}}function Iu(t,e={}){const{getSelector:r=O,disableCssColorScheme:n,colorSchemeSelector:s,enableContrastVars:i}=e,{colorSchemes:o={},components:a,defaultColorScheme:l="light",...u}=t,{vars:h,css:m,varsWithDefaults:p}=sn(u,e);let y=p;const g={},{[l]:d,...T}=o;if(Object.entries(T||{}).forEach(([E,w])=>{const{vars:C,css:V,varsWithDefaults:q}=sn(w,e);y=st(y,q),g[E]={css:V,vars:C}}),d){const{css:E,vars:w,varsWithDefaults:C}=sn(d,e);y=st(y,C),g[l]={css:E,vars:w}}function O(E,w){var V,q;let C=s;if(s==="class"&&(C=".%s"),s==="data"&&(C="[data-%s]"),s!=null&&s.startsWith("data-")&&!s.includes("%s")&&(C=`[${s}="%s"]`),E){if(C==="media")return t.defaultColorScheme===E?":root":{[`@media (prefers-color-scheme: ${((q=(V=o[E])==null?void 0:V.palette)==null?void 0:q.mode)||E})`]:{":root":w}};if(C)return t.defaultColorScheme===E?`:root, ${C.replace("%s",String(E))}`:C.replace("%s",String(E))}return":root"}return{vars:y,generateThemeVars:()=>{let E={...h};return Object.entries(g).forEach(([,{vars:w}])=>{E=st(E,w)}),E},generateStyleSheets:()=>{var G,pe;const E=[],w=t.defaultColorScheme||"light";function C(Z,f){Object.keys(f).length&&E.push(typeof Z=="string"?{[Z]:{...f}}:Z)}C(r(void 0,{...m}),m);const{[w]:V,...q}=g;if(V){const{css:Z}=V,f=(pe=(G=o[w])==null?void 0:G.palette)==null?void 0:pe.mode,D=!n&&f?{colorScheme:f,...Z}:{...Z};C(r(w,{...D}),D)}return Object.entries(q).forEach(([Z,{css:f}])=>{var F,U;const D=(U=(F=o[Z])==null?void 0:F.palette)==null?void 0:U.mode,M=!n&&D?{colorScheme:D,...f}:{...f};C(r(Z,{...M}),M)}),i&&E.push({":root":{"--__l-threshold":"0.7","--__l":"clamp(0, (l / var(--__l-threshold) - 1) * -infinity, 1)","--__a":"clamp(0.87, (l / var(--__l-threshold) - 1) * -infinity, 1)"}}),E}}}function Mu(t){return function(r){return t==="media"?(process.env.NODE_ENV!=="production"&&r!=="light"&&r!=="dark"&&console.error(`MUI: @media (prefers-color-scheme) supports only 'light' or 'dark', but receive '${r}'.`),`@media (prefers-color-scheme: ${r})`):t?t.startsWith("data-")&&!t.includes("%s")?`[${t}="${r}"] &`:t==="class"?`.${r} &`:t==="data"?`[data-${r}] &`:`${t.replace("%s",r)} &`:"&"}}function $u(t,e,r=void 0){const n={};for(const s in t){const i=t[s];let o="",a=!0;for(let l=0;l<i.length;l+=1){const u=i[l];u&&(o+=(a===!0?"":" ")+e(u),a=!1,r&&r[u]&&(o+=" "+r[u]))}n[s]=o}return n}function Nu(t,e){var r,n,s;return be.isValidElement(t)&&e.indexOf(t.type.muiName??((s=(n=(r=t.type)==null?void 0:r._payload)==null?void 0:n.value)==null?void 0:s.muiName))!==-1}const _u=(t,e)=>t.filter(r=>e.includes(r)),Ot=(t,e,r)=>{const n=t.keys[0];Array.isArray(e)?e.forEach((s,i)=>{r((o,a)=>{i<=t.keys.length-1&&(i===0?Object.assign(o,a):o[t.up(t.keys[i])]=a)},s)}):e&&typeof e=="object"?(Object.keys(e).length>t.keys.length?t.keys:_u(t.keys,Object.keys(e))).forEach(i=>{if(t.keys.includes(i)){const o=e[i];o!==void 0&&r((a,l)=>{n===i?Object.assign(a,l):a[t.up(i)]=l},o)}}):(typeof e=="number"||typeof e=="string")&&r((s,i)=>{Object.assign(s,i)},e)};function Sr(t){return`--Grid-${t}Spacing`}function Fr(t){return`--Grid-parent-${t}Spacing`}const Vs="--Grid-columns",vt="--Grid-parent-columns",ju=({theme:t,ownerState:e})=>{const r={};return Ot(t.breakpoints,e.size,(n,s)=>{let i={};s==="grow"&&(i={flexBasis:0,flexGrow:1,maxWidth:"100%"}),s==="auto"&&(i={flexBasis:"auto",flexGrow:0,flexShrink:0,maxWidth:"none",width:"auto"}),typeof s=="number"&&(i={flexGrow:0,flexBasis:"auto",width:`calc(100% * ${s} / var(${vt}) - (var(${vt}) - ${s}) * (var(${Fr("column")}) / var(${vt})))`}),n(r,i)}),r},Du=({theme:t,ownerState:e})=>{const r={};return Ot(t.breakpoints,e.offset,(n,s)=>{let i={};s==="auto"&&(i={marginLeft:"auto"}),typeof s=="number"&&(i={marginLeft:s===0?"0px":`calc(100% * ${s} / var(${vt}) + var(${Fr("column")}) * ${s} / var(${vt}))`}),n(r,i)}),r},Ru=({theme:t,ownerState:e})=>{if(!e.container)return{};const r={[Vs]:12};return Ot(t.breakpoints,e.columns,(n,s)=>{const i=s??12;n(r,{[Vs]:i,"> *":{[vt]:i}})}),r},Au=({theme:t,ownerState:e})=>{if(!e.container)return{};const r={};return Ot(t.breakpoints,e.rowSpacing,(n,s)=>{var o;const i=typeof s=="string"?s:(o=t.spacing)==null?void 0:o.call(t,s);n(r,{[Sr("row")]:i,"> *":{[Fr("row")]:i}})}),r},Pu=({theme:t,ownerState:e})=>{if(!e.container)return{};const r={};return Ot(t.breakpoints,e.columnSpacing,(n,s)=>{var o;const i=typeof s=="string"?s:(o=t.spacing)==null?void 0:o.call(t,s);n(r,{[Sr("column")]:i,"> *":{[Fr("column")]:i}})}),r},Lu=({theme:t,ownerState:e})=>{if(!e.container)return{};const r={};return Ot(t.breakpoints,e.direction,(n,s)=>{n(r,{flexDirection:s})}),r},Vu=({ownerState:t})=>({minWidth:0,boxSizing:"border-box",...t.container&&{display:"flex",flexWrap:"wrap",...t.wrap&&t.wrap!=="wrap"&&{flexWrap:t.wrap},gap:`var(${Sr("row")}) var(${Sr("column")})`}}),Fu=t=>{const e=[];return Object.entries(t).forEach(([r,n])=>{n!==!1&&n!==void 0&&e.push(`grid-${r}-${String(n)}`)}),e},Wu=(t,e="xs")=>{function r(n){return n===void 0?!1:typeof n=="string"&&!Number.isNaN(Number(n))||typeof n=="number"&&n>0}if(r(t))return[`spacing-${e}-${String(t)}`];if(typeof t=="object"&&!Array.isArray(t)){const n=[];return Object.entries(t).forEach(([s,i])=>{r(i)&&n.push(`spacing-${s}-${String(i)}`)}),n}return[]},zu=t=>t===void 0?[]:typeof t=="object"?Object.entries(t).map(([e,r])=>`direction-${e}-${r}`):[`direction-xs-${String(t)}`],Uu=t=>["item","zeroMinWidth"].includes(t)?`The \`${t}\` prop has been removed and is no longer necessary. You can safely remove it.`:`The \`${t}\` prop has been removed. See https://mui.com/material-ui/migration/upgrade-to-grid-v2/ for migration instructions.`,Fs=[];function Bu(t,e){const r=[];t.item!==void 0&&(delete t.item,r.push("item")),t.zeroMinWidth!==void 0&&(delete t.zeroMinWidth,r.push("zeroMinWidth")),e.keys.forEach(n=>{t[n]!==void 0&&(r.push(n),delete t[n])}),process.env.NODE_ENV!=="production"&&r.forEach(n=>{Fs.includes(n)||(Fs.push(n),console.warn(`MUI Grid: ${Uu(n)}
|
|
103
|
+
`))})}const Yu=Ar(),qu=mu("div",{name:"MuiGrid",slot:"Root"});function Gu(t){return yu({props:t,name:"MuiGrid",defaultTheme:Yu})}function Hu(t={}){const{createStyledComponent:e=qu,useThemeProps:r=Gu,useTheme:n=Ln,componentName:s="MuiGrid"}=t,i=(u,h)=>{const{container:m,direction:p,spacing:y,wrap:g,size:d}=u,T={root:["root",m&&"container",g!=="wrap"&&`wrap-xs-${String(g)}`,...zu(p),...Fu(d),...m?Wu(y,h.breakpoints.keys[0]):[]]};return $u(T,O=>iu(s,O),{})};function o(u,h,m=()=>!0){const p={};return u===null||(Array.isArray(u)?u.forEach((y,g)=>{y!==null&&m(y)&&h.keys[g]&&(p[h.keys[g]]=y)}):typeof u=="object"?Object.keys(u).forEach(y=>{const g=u[y];g!=null&&m(g)&&(p[y]=g)}):p[h.keys[0]]=u),p}const a=e(Ru,Pu,Au,ju,Lu,Vu,Du),l=be.forwardRef(function(h,m){const p=n(),y=r(h),g=Vl(y);Bu(g,p.breakpoints);const{className:d,children:T,columns:O=12,container:j=!1,component:I="div",direction:E="row",wrap:w="wrap",size:C={},offset:V={},spacing:q=0,rowSpacing:G=q,columnSpacing:pe=q,unstable_level:Z=0,...f}=g,D=o(C,p.breakpoints,b=>b!==!1),M=o(V,p.breakpoints),F=h.columns??(Z?void 0:O),U=h.spacing??(Z?void 0:q),le=h.rowSpacing??h.spacing??(Z?void 0:G),ge=h.columnSpacing??h.spacing??(Z?void 0:pe),Ee={...g,level:Z,columns:F,container:j,direction:E,wrap:w,spacing:U,rowSpacing:le,columnSpacing:ge,size:D,offset:M},k=i(Ee,p);return c.jsx(a,{ref:m,as:I,ownerState:Ee,className:Dn(k.root,d),...f,children:be.Children.map(T,b=>{var N;return be.isValidElement(b)&&Nu(b,["Grid"])&&j&&b.props.container?be.cloneElement(b,{unstable_level:((N=b.props)==null?void 0:N.unstable_level)??Z+1}):b})})});return process.env.NODE_ENV!=="production"&&(l.propTypes={children:v.node,className:v.string,columns:v.oneOfType([v.arrayOf(v.number),v.number,v.object]),columnSpacing:v.oneOfType([v.arrayOf(v.oneOfType([v.number,v.string])),v.number,v.object,v.string]),component:v.elementType,container:v.bool,direction:v.oneOfType([v.oneOf(["column-reverse","column","row-reverse","row"]),v.arrayOf(v.oneOf(["column-reverse","column","row-reverse","row"])),v.object]),offset:v.oneOfType([v.string,v.number,v.arrayOf(v.oneOfType([v.string,v.number])),v.object]),rowSpacing:v.oneOfType([v.arrayOf(v.oneOfType([v.number,v.string])),v.number,v.object,v.string]),size:v.oneOfType([v.string,v.bool,v.number,v.arrayOf(v.oneOfType([v.string,v.bool,v.number])),v.object]),spacing:v.oneOfType([v.arrayOf(v.oneOfType([v.number,v.string])),v.number,v.object,v.string]),sx:v.oneOfType([v.arrayOf(v.oneOfType([v.func,v.object,v.bool])),v.func,v.object]),wrap:v.oneOf(["nowrap","wrap-reverse","wrap"])}),l.muiName="Grid",l}function qe(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)}function zi(t){if(be.isValidElement(t)||xt.isValidElementType(t)||!qe(t))return t;const e={};return Object.keys(t).forEach(r=>{e[r]=zi(t[r])}),e}function ot(t,e,r={clone:!0}){const n=r.clone?{...t}:t;return qe(t)&&qe(e)&&Object.keys(e).forEach(s=>{be.isValidElement(e[s])||xt.isValidElementType(e[s])?n[s]=e[s]:qe(e[s])&&Object.prototype.hasOwnProperty.call(t,s)&&qe(t[s])?n[s]=ot(t[s],e[s],r):r.clone?n[s]=qe(e[s])?zi(e[s]):e[s]:n[s]=e[s]}),n}const Ut={black:"#000",white:"#fff"},Zu={50:"#fafafa",100:"#f5f5f5",200:"#eeeeee",300:"#e0e0e0",400:"#bdbdbd",500:"#9e9e9e",600:"#757575",700:"#616161",800:"#424242",900:"#212121",A100:"#f5f5f5",A200:"#eeeeee",A400:"#bdbdbd",A700:"#616161"},lt={50:"#f3e5f5",200:"#ce93d8",300:"#ba68c8",400:"#ab47bc",500:"#9c27b0",700:"#7b1fa2"},ut={300:"#e57373",400:"#ef5350",500:"#f44336",700:"#d32f2f",800:"#c62828"},_t={300:"#ffb74d",400:"#ffa726",500:"#ff9800",700:"#f57c00",900:"#e65100"},ct={50:"#e3f2fd",200:"#90caf9",400:"#42a5f5",700:"#1976d2",800:"#1565c0"},dt={300:"#4fc3f7",400:"#29b6f6",500:"#03a9f4",700:"#0288d1",900:"#01579b"},ft={300:"#81c784",400:"#66bb6a",500:"#4caf50",700:"#388e3c",800:"#2e7d32",900:"#1b5e20"};function Ui(){return{text:{primary:"rgba(0, 0, 0, 0.87)",secondary:"rgba(0, 0, 0, 0.6)",disabled:"rgba(0, 0, 0, 0.38)"},divider:"rgba(0, 0, 0, 0.12)",background:{paper:Ut.white,default:Ut.white},action:{active:"rgba(0, 0, 0, 0.54)",hover:"rgba(0, 0, 0, 0.04)",hoverOpacity:.04,selected:"rgba(0, 0, 0, 0.08)",selectedOpacity:.08,disabled:"rgba(0, 0, 0, 0.26)",disabledBackground:"rgba(0, 0, 0, 0.12)",disabledOpacity:.38,focus:"rgba(0, 0, 0, 0.12)",focusOpacity:.12,activatedOpacity:.12}}}const Bi=Ui();function Yi(){return{text:{primary:Ut.white,secondary:"rgba(255, 255, 255, 0.7)",disabled:"rgba(255, 255, 255, 0.5)",icon:"rgba(255, 255, 255, 0.5)"},divider:"rgba(255, 255, 255, 0.12)",background:{paper:"#121212",default:"#121212"},action:{active:Ut.white,hover:"rgba(255, 255, 255, 0.08)",hoverOpacity:.08,selected:"rgba(255, 255, 255, 0.16)",selectedOpacity:.16,disabled:"rgba(255, 255, 255, 0.3)",disabledBackground:"rgba(255, 255, 255, 0.12)",disabledOpacity:.38,focus:"rgba(255, 255, 255, 0.12)",focusOpacity:.12,activatedOpacity:.24}}}const vn=Yi();function Ws(t,e,r,n){const s=n.light||n,i=n.dark||n*1.5;t[e]||(t.hasOwnProperty(r)?t[e]=t[r]:e==="light"?t.light=Vr(t.main,s):e==="dark"&&(t.dark=Lr(t.main,i)))}function zs(t,e,r,n,s){const i=s.light||s,o=s.dark||s*1.5;e[r]||(e.hasOwnProperty(n)?e[r]=e[n]:r==="light"?e.light=`color-mix(in ${t}, ${e.main}, #fff ${(i*100).toFixed(0)}%)`:r==="dark"&&(e.dark=`color-mix(in ${t}, ${e.main}, #000 ${(o*100).toFixed(0)}%)`))}function Ju(t="light"){return t==="dark"?{main:ct[200],light:ct[50],dark:ct[400]}:{main:ct[700],light:ct[400],dark:ct[800]}}function Ku(t="light"){return t==="dark"?{main:lt[200],light:lt[50],dark:lt[400]}:{main:lt[500],light:lt[300],dark:lt[700]}}function Qu(t="light"){return t==="dark"?{main:ut[500],light:ut[300],dark:ut[700]}:{main:ut[700],light:ut[400],dark:ut[800]}}function Xu(t="light"){return t==="dark"?{main:dt[400],light:dt[300],dark:dt[700]}:{main:dt[700],light:dt[500],dark:dt[900]}}function ec(t="light"){return t==="dark"?{main:ft[400],light:ft[300],dark:ft[700]}:{main:ft[800],light:ft[500],dark:ft[900]}}function tc(t="light"){return t==="dark"?{main:_t[400],light:_t[300],dark:_t[700]}:{main:"#ed6c02",light:_t[500],dark:_t[900]}}function rc(t){return`oklch(from ${t} var(--__l) 0 h / var(--__a))`}function Fn(t){const{mode:e="light",contrastThreshold:r=3,tonalOffset:n=.2,colorSpace:s,...i}=t,o=t.primary||Ju(e),a=t.secondary||Ku(e),l=t.error||Qu(e),u=t.info||Xu(e),h=t.success||ec(e),m=t.warning||tc(e);function p(T){if(s)return rc(T);const O=As(T,vn.text.primary)>=r?vn.text.primary:Bi.text.primary;if(process.env.NODE_ENV!=="production"){const j=As(T,O);j<3&&console.error([`MUI: The contrast ratio of ${j}:1 for ${O} on ${T}`,"falls below the WCAG recommended absolute minimum contrast ratio of 3:1.","https://www.w3.org/TR/2008/REC-WCAG20-20081211/#visual-audio-contrast-contrast"].join(`
|
|
104
|
+
`))}return O}const y=({color:T,name:O,mainShade:j=500,lightShade:I=300,darkShade:E=700})=>{if(T={...T},!T.main&&T[j]&&(T.main=T[j]),!T.hasOwnProperty("main"))throw new Error(process.env.NODE_ENV!=="production"?`MUI: The color${O?` (${O})`:""} provided to augmentColor(color) is invalid.
|
|
105
|
+
The color object needs to have a \`main\` property or a \`${j}\` property.`:zt(11,O?` (${O})`:"",j));if(typeof T.main!="string")throw new Error(process.env.NODE_ENV!=="production"?`MUI: The color${O?` (${O})`:""} provided to augmentColor(color) is invalid.
|
|
106
|
+
\`color.main\` should be a string, but \`${JSON.stringify(T.main)}\` was provided instead.
|
|
106
107
|
|
|
107
108
|
Did you intend to use one of the following approaches?
|
|
108
109
|
|
|
@@ -114,247 +115,14 @@ const theme1 = createTheme({ palette: {
|
|
|
114
115
|
|
|
115
116
|
const theme2 = createTheme({ palette: {
|
|
116
117
|
primary: { main: green[500] },
|
|
117
|
-
} });`:
|
|
118
|
-
`)),Object.keys(
|
|
118
|
+
} });`:zt(12,O?` (${O})`:"",JSON.stringify(T.main)));return s?(zs(s,T,"light",I,n),zs(s,T,"dark",E,n)):(Ws(T,"light",I,n),Ws(T,"dark",E,n)),T.contrastText||(T.contrastText=p(T.main)),T};let g;return e==="light"?g=Ui():e==="dark"&&(g=Yi()),process.env.NODE_ENV!=="production"&&(g||console.error(`MUI: The palette mode \`${e}\` is not supported.`)),ot({common:{...Ut},mode:e,primary:y({color:o,name:"primary"}),secondary:y({color:a,name:"secondary",mainShade:"A400",lightShade:"A200",darkShade:"A700"}),error:y({color:l,name:"error"}),warning:y({color:m,name:"warning"}),info:y({color:u,name:"info"}),success:y({color:h,name:"success"}),grey:Zu,contrastThreshold:r,getContrastText:p,augmentColor:y,tonalOffset:n,...g},i)}function nc(t){const e={};return Object.entries(t).forEach(n=>{const[s,i]=n;typeof i=="object"&&(e[s]=`${i.fontStyle?`${i.fontStyle} `:""}${i.fontVariant?`${i.fontVariant} `:""}${i.fontWeight?`${i.fontWeight} `:""}${i.fontStretch?`${i.fontStretch} `:""}${i.fontSize||""}${i.lineHeight?`/${i.lineHeight} `:""}${i.fontFamily||""}`)}),e}const sc={active:"active",checked:"checked",completed:"completed",disabled:"disabled",error:"error",expanded:"expanded",focused:"focused",focusVisible:"focusVisible",open:"open",readOnly:"readOnly",required:"required",selected:"selected"};function Wn(t,e,r="Mui"){const n=sc[e];return n?`${r}-${n}`:`${Da.generate(t)}-${e}`}function ic(t,e){return{toolbar:{minHeight:56,[t.up("xs")]:{"@media (orientation: landscape)":{minHeight:48}},[t.up("sm")]:{minHeight:64}},...e}}function oc(t){return Math.round(t*1e5)/1e5}const Us={textTransform:"uppercase"},Bs='"Roboto", "Helvetica", "Arial", sans-serif';function ac(t,e){const{fontFamily:r=Bs,fontSize:n=14,fontWeightLight:s=300,fontWeightRegular:i=400,fontWeightMedium:o=500,fontWeightBold:a=700,htmlFontSize:l=16,allVariants:u,pxToRem:h,...m}=typeof e=="function"?e(t):e;process.env.NODE_ENV!=="production"&&(typeof n!="number"&&console.error("MUI: `fontSize` is required to be a number."),typeof l!="number"&&console.error("MUI: `htmlFontSize` is required to be a number."));const p=n/14,y=h||(T=>`${T/l*p}rem`),g=(T,O,j,I,E)=>({fontFamily:r,fontWeight:T,fontSize:y(O),lineHeight:j,...r===Bs?{letterSpacing:`${oc(I/O)}em`}:{},...E,...u}),d={h1:g(s,96,1.167,-1.5),h2:g(s,60,1.2,-.5),h3:g(i,48,1.167,0),h4:g(i,34,1.235,.25),h5:g(i,24,1.334,0),h6:g(o,20,1.6,.15),subtitle1:g(i,16,1.75,.15),subtitle2:g(o,14,1.57,.1),body1:g(i,16,1.5,.15),body2:g(i,14,1.43,.15),button:g(o,14,1.75,.4,Us),caption:g(i,12,1.66,.4),overline:g(i,12,2.66,1,Us),inherit:{fontFamily:"inherit",fontWeight:"inherit",fontSize:"inherit",lineHeight:"inherit",letterSpacing:"inherit"}};return ot({htmlFontSize:l,pxToRem:y,fontFamily:r,fontSize:n,fontWeightLight:s,fontWeightRegular:i,fontWeightMedium:o,fontWeightBold:a,...d},m,{clone:!1})}const lc=.2,uc=.14,cc=.12;function ue(...t){return[`${t[0]}px ${t[1]}px ${t[2]}px ${t[3]}px rgba(0,0,0,${lc})`,`${t[4]}px ${t[5]}px ${t[6]}px ${t[7]}px rgba(0,0,0,${uc})`,`${t[8]}px ${t[9]}px ${t[10]}px ${t[11]}px rgba(0,0,0,${cc})`].join(",")}const dc=["none",ue(0,2,1,-1,0,1,1,0,0,1,3,0),ue(0,3,1,-2,0,2,2,0,0,1,5,0),ue(0,3,3,-2,0,3,4,0,0,1,8,0),ue(0,2,4,-1,0,4,5,0,0,1,10,0),ue(0,3,5,-1,0,5,8,0,0,1,14,0),ue(0,3,5,-1,0,6,10,0,0,1,18,0),ue(0,4,5,-2,0,7,10,1,0,2,16,1),ue(0,5,5,-3,0,8,10,1,0,3,14,2),ue(0,5,6,-3,0,9,12,1,0,3,16,2),ue(0,6,6,-3,0,10,14,1,0,4,18,3),ue(0,6,7,-4,0,11,15,1,0,4,20,3),ue(0,7,8,-4,0,12,17,2,0,5,22,4),ue(0,7,8,-4,0,13,19,2,0,5,24,4),ue(0,7,9,-4,0,14,21,2,0,5,26,4),ue(0,8,9,-5,0,15,22,2,0,6,28,5),ue(0,8,10,-5,0,16,24,2,0,6,30,5),ue(0,8,11,-5,0,17,26,2,0,6,32,5),ue(0,9,11,-5,0,18,28,2,0,7,34,6),ue(0,9,12,-6,0,19,29,2,0,7,36,6),ue(0,10,13,-6,0,20,31,3,0,8,38,7),ue(0,10,13,-6,0,21,33,3,0,8,40,7),ue(0,10,14,-6,0,22,35,3,0,8,42,7),ue(0,11,14,-7,0,23,36,3,0,9,44,8),ue(0,11,15,-7,0,24,38,3,0,9,46,8)],fc={easeInOut:"cubic-bezier(0.4, 0, 0.2, 1)",easeOut:"cubic-bezier(0.0, 0, 0.2, 1)",easeIn:"cubic-bezier(0.4, 0, 1, 1)",sharp:"cubic-bezier(0.4, 0, 0.6, 1)"},hc={shortest:150,shorter:200,short:250,standard:300,complex:375,enteringScreen:225,leavingScreen:195};function Ys(t){return`${Math.round(t)}ms`}function mc(t){if(!t)return 0;const e=t/36;return Math.min(Math.round((4+15*e**.25+e/5)*10),3e3)}function pc(t){const e={...fc,...t.easing},r={...hc,...t.duration};return{getAutoHeightDuration:mc,create:(s=["all"],i={})=>{const{duration:o=r.standard,easing:a=e.easeInOut,delay:l=0,...u}=i;if(process.env.NODE_ENV!=="production"){const h=p=>typeof p=="string",m=p=>!Number.isNaN(parseFloat(p));!h(s)&&!Array.isArray(s)&&console.error('MUI: Argument "props" must be a string or Array.'),!m(o)&&!h(o)&&console.error(`MUI: Argument "duration" must be a number or a string but found ${o}.`),h(a)||console.error('MUI: Argument "easing" must be a string.'),!m(l)&&!h(l)&&console.error('MUI: Argument "delay" must be a number or a string.'),typeof i!="object"&&console.error(["MUI: Secong argument of transition.create must be an object.","Arguments should be either `create('prop1', options)` or `create(['prop1', 'prop2'], options)`"].join(`
|
|
119
|
+
`)),Object.keys(u).length!==0&&console.error(`MUI: Unrecognized argument(s) [${Object.keys(u).join(",")}].`)}return(Array.isArray(s)?s:[s]).map(h=>`${h} ${typeof o=="string"?o:Ys(o)} ${a} ${typeof l=="string"?l:Ys(l)}`).join(",")},...t,easing:e,duration:r}}const yc={mobileStepper:1e3,fab:1050,speedDial:1050,appBar:1100,drawer:1200,modal:1300,snackbar:1400,tooltip:1500};function gc(t){return qe(t)||typeof t>"u"||typeof t=="string"||typeof t=="boolean"||typeof t=="number"||Array.isArray(t)}function qi(t={}){const e={...t};function r(n){const s=Object.entries(n);for(let i=0;i<s.length;i++){const[o,a]=s[i];!gc(a)||o.startsWith("unstable_")?delete n[o]:qe(a)&&(n[o]={...a},r(n[o]))}}return r(e),`import { unstable_createBreakpoints as createBreakpoints, createTransitions } from '@mui/material/styles';
|
|
119
120
|
|
|
120
|
-
const theme = ${JSON.stringify(
|
|
121
|
+
const theme = ${JSON.stringify(e,null,2)};
|
|
121
122
|
|
|
122
123
|
theme.breakpoints = createBreakpoints(theme.breakpoints || {});
|
|
123
124
|
theme.transitions = createTransitions(theme.transitions || {});
|
|
124
125
|
|
|
125
|
-
export default theme;`}function
|
|
126
|
-
`))}
|
|
127
|
-
To suppress this warning, you need to explicitly provide the \`palette.${a}Channel\` as a string (in rgb format, for example "12 12 12") or undefined if you want to remove the channel token.`))}function Rs(e){return typeof e=="number"?`${e}px`:typeof e=="string"||typeof e=="function"||Array.isArray(e)?e:"8px"}const Ae=e=>{try{return e()}catch{}},Is=(e="mui")=>Ki(e);function fo(e,a,o,t,n){if(!o)return;o=o===!0?{}:o;const r=n==="dark"?"dark":"light";if(!t){a[n]=zs({...o,palette:{mode:r,...o==null?void 0:o.palette},colorSpace:e});return}const{palette:i,...s}=xo({...t,palette:{mode:r,...o==null?void 0:o.palette},colorSpace:e});return a[n]={...o,palette:i,opacity:{...cn(r),...o==null?void 0:o.opacity},overlays:(o==null?void 0:o.overlays)||ln(r)},s}function Ps(e={},...a){const{colorSchemes:o={light:!0},defaultColorScheme:t,disableCssColorScheme:n=!1,cssVarPrefix:r="mui",nativeColor:i=!1,shouldSkipGeneratingVar:s=Ts,colorSchemeSelector:u=o.light&&o.dark?"media":void 0,rootSelector:p=":root",...d}=e,m=Object.keys(o)[0],h=t||(o.light&&m!=="light"?"light":m),g=Is(r),{[h]:f,light:c,dark:v,...T}=o,P={...T};let _=f;if((h==="dark"&&!("dark"in o)||h==="light"&&!("light"in o))&&(_=!0),!_)throw new Error(process.env.NODE_ENV!=="production"?`MUI: The \`colorSchemes.${h}\` option is either missing or invalid.`:ba(21,h));let b;i&&(b="oklch");const y=fo(b,P,_,d,h);c&&!P.light&&fo(b,P,c,void 0,"light"),v&&!P.dark&&fo(b,P,v,void 0,"dark");let w={defaultColorScheme:h,...y,cssVarPrefix:r,colorSchemeSelector:u,rootSelector:p,getCssVar:g,colorSchemes:P,font:{...us(y.typography),...y.font},spacing:Rs(d.spacing)};Object.keys(w.colorSchemes).forEach(U=>{const l=w.colorSchemes[U].palette,M=C=>{const N=C.split("-"),Z=N[1],Q=N[2];return g(C,l[Z][Q])};l.mode==="light"&&(O(l.common,"background","#fff"),O(l.common,"onBackground","#000")),l.mode==="dark"&&(O(l.common,"background","#000"),O(l.common,"onBackground","#fff"));function D(C,N,Z){if(b){let Q;return C===Ve&&(Q=`transparent ${((1-Z)*100).toFixed(0)}%`),C===le&&(Q=`#000 ${(Z*100).toFixed(0)}%`),C===me&&(Q=`#fff ${(Z*100).toFixed(0)}%`),`color-mix(in ${b}, ${N}, ${Q})`}return C(N,Z)}if(As(l,["Alert","AppBar","Avatar","Button","Chip","FilledInput","LinearProgress","Skeleton","Slider","SnackbarContent","SpeedDialAction","StepConnector","StepContent","Switch","TableCell","Tooltip"]),l.mode==="light"){O(l.Alert,"errorColor",D(le,l.error.light,.6)),O(l.Alert,"infoColor",D(le,l.info.light,.6)),O(l.Alert,"successColor",D(le,l.success.light,.6)),O(l.Alert,"warningColor",D(le,l.warning.light,.6)),O(l.Alert,"errorFilledBg",M("palette-error-main")),O(l.Alert,"infoFilledBg",M("palette-info-main")),O(l.Alert,"successFilledBg",M("palette-success-main")),O(l.Alert,"warningFilledBg",M("palette-warning-main")),O(l.Alert,"errorFilledColor",Ae(()=>l.getContrastText(l.error.main))),O(l.Alert,"infoFilledColor",Ae(()=>l.getContrastText(l.info.main))),O(l.Alert,"successFilledColor",Ae(()=>l.getContrastText(l.success.main))),O(l.Alert,"warningFilledColor",Ae(()=>l.getContrastText(l.warning.main))),O(l.Alert,"errorStandardBg",D(me,l.error.light,.9)),O(l.Alert,"infoStandardBg",D(me,l.info.light,.9)),O(l.Alert,"successStandardBg",D(me,l.success.light,.9)),O(l.Alert,"warningStandardBg",D(me,l.warning.light,.9)),O(l.Alert,"errorIconColor",M("palette-error-main")),O(l.Alert,"infoIconColor",M("palette-info-main")),O(l.Alert,"successIconColor",M("palette-success-main")),O(l.Alert,"warningIconColor",M("palette-warning-main")),O(l.AppBar,"defaultBg",M("palette-grey-100")),O(l.Avatar,"defaultBg",M("palette-grey-400")),O(l.Button,"inheritContainedBg",M("palette-grey-300")),O(l.Button,"inheritContainedHoverBg",M("palette-grey-A100")),O(l.Chip,"defaultBorder",M("palette-grey-400")),O(l.Chip,"defaultAvatarColor",M("palette-grey-700")),O(l.Chip,"defaultIconColor",M("palette-grey-700")),O(l.FilledInput,"bg","rgba(0, 0, 0, 0.06)"),O(l.FilledInput,"hoverBg","rgba(0, 0, 0, 0.09)"),O(l.FilledInput,"disabledBg","rgba(0, 0, 0, 0.12)"),O(l.LinearProgress,"primaryBg",D(me,l.primary.main,.62)),O(l.LinearProgress,"secondaryBg",D(me,l.secondary.main,.62)),O(l.LinearProgress,"errorBg",D(me,l.error.main,.62)),O(l.LinearProgress,"infoBg",D(me,l.info.main,.62)),O(l.LinearProgress,"successBg",D(me,l.success.main,.62)),O(l.LinearProgress,"warningBg",D(me,l.warning.main,.62)),O(l.Skeleton,"bg",b?D(Ve,l.text.primary,.11):`rgba(${M("palette-text-primaryChannel")} / 0.11)`),O(l.Slider,"primaryTrack",D(me,l.primary.main,.62)),O(l.Slider,"secondaryTrack",D(me,l.secondary.main,.62)),O(l.Slider,"errorTrack",D(me,l.error.main,.62)),O(l.Slider,"infoTrack",D(me,l.info.main,.62)),O(l.Slider,"successTrack",D(me,l.success.main,.62)),O(l.Slider,"warningTrack",D(me,l.warning.main,.62));const C=b?D(le,l.background.default,.6825):Aa(l.background.default,.8);O(l.SnackbarContent,"bg",C),O(l.SnackbarContent,"color",Ae(()=>b?wo.text.primary:l.getContrastText(C))),O(l.SpeedDialAction,"fabHoverBg",Aa(l.background.paper,.15)),O(l.StepConnector,"border",M("palette-grey-400")),O(l.StepContent,"border",M("palette-grey-400")),O(l.Switch,"defaultColor",M("palette-common-white")),O(l.Switch,"defaultDisabledColor",M("palette-grey-100")),O(l.Switch,"primaryDisabledColor",D(me,l.primary.main,.62)),O(l.Switch,"secondaryDisabledColor",D(me,l.secondary.main,.62)),O(l.Switch,"errorDisabledColor",D(me,l.error.main,.62)),O(l.Switch,"infoDisabledColor",D(me,l.info.main,.62)),O(l.Switch,"successDisabledColor",D(me,l.success.main,.62)),O(l.Switch,"warningDisabledColor",D(me,l.warning.main,.62)),O(l.TableCell,"border",D(me,D(Ve,l.divider,1),.88)),O(l.Tooltip,"bg",D(Ve,l.grey[700],.92))}if(l.mode==="dark"){O(l.Alert,"errorColor",D(me,l.error.light,.6)),O(l.Alert,"infoColor",D(me,l.info.light,.6)),O(l.Alert,"successColor",D(me,l.success.light,.6)),O(l.Alert,"warningColor",D(me,l.warning.light,.6)),O(l.Alert,"errorFilledBg",M("palette-error-dark")),O(l.Alert,"infoFilledBg",M("palette-info-dark")),O(l.Alert,"successFilledBg",M("palette-success-dark")),O(l.Alert,"warningFilledBg",M("palette-warning-dark")),O(l.Alert,"errorFilledColor",Ae(()=>l.getContrastText(l.error.dark))),O(l.Alert,"infoFilledColor",Ae(()=>l.getContrastText(l.info.dark))),O(l.Alert,"successFilledColor",Ae(()=>l.getContrastText(l.success.dark))),O(l.Alert,"warningFilledColor",Ae(()=>l.getContrastText(l.warning.dark))),O(l.Alert,"errorStandardBg",D(le,l.error.light,.9)),O(l.Alert,"infoStandardBg",D(le,l.info.light,.9)),O(l.Alert,"successStandardBg",D(le,l.success.light,.9)),O(l.Alert,"warningStandardBg",D(le,l.warning.light,.9)),O(l.Alert,"errorIconColor",M("palette-error-main")),O(l.Alert,"infoIconColor",M("palette-info-main")),O(l.Alert,"successIconColor",M("palette-success-main")),O(l.Alert,"warningIconColor",M("palette-warning-main")),O(l.AppBar,"defaultBg",M("palette-grey-900")),O(l.AppBar,"darkBg",M("palette-background-paper")),O(l.AppBar,"darkColor",M("palette-text-primary")),O(l.Avatar,"defaultBg",M("palette-grey-600")),O(l.Button,"inheritContainedBg",M("palette-grey-800")),O(l.Button,"inheritContainedHoverBg",M("palette-grey-700")),O(l.Chip,"defaultBorder",M("palette-grey-700")),O(l.Chip,"defaultAvatarColor",M("palette-grey-300")),O(l.Chip,"defaultIconColor",M("palette-grey-300")),O(l.FilledInput,"bg","rgba(255, 255, 255, 0.09)"),O(l.FilledInput,"hoverBg","rgba(255, 255, 255, 0.13)"),O(l.FilledInput,"disabledBg","rgba(255, 255, 255, 0.12)"),O(l.LinearProgress,"primaryBg",D(le,l.primary.main,.5)),O(l.LinearProgress,"secondaryBg",D(le,l.secondary.main,.5)),O(l.LinearProgress,"errorBg",D(le,l.error.main,.5)),O(l.LinearProgress,"infoBg",D(le,l.info.main,.5)),O(l.LinearProgress,"successBg",D(le,l.success.main,.5)),O(l.LinearProgress,"warningBg",D(le,l.warning.main,.5)),O(l.Skeleton,"bg",b?D(Ve,l.text.primary,.13):`rgba(${M("palette-text-primaryChannel")} / 0.13)`),O(l.Slider,"primaryTrack",D(le,l.primary.main,.5)),O(l.Slider,"secondaryTrack",D(le,l.secondary.main,.5)),O(l.Slider,"errorTrack",D(le,l.error.main,.5)),O(l.Slider,"infoTrack",D(le,l.info.main,.5)),O(l.Slider,"successTrack",D(le,l.success.main,.5)),O(l.Slider,"warningTrack",D(le,l.warning.main,.5));const C=b?D(me,l.background.default,.985):Aa(l.background.default,.98);O(l.SnackbarContent,"bg",C),O(l.SnackbarContent,"color",Ae(()=>b?rn.text.primary:l.getContrastText(C))),O(l.SpeedDialAction,"fabHoverBg",Aa(l.background.paper,.15)),O(l.StepConnector,"border",M("palette-grey-600")),O(l.StepContent,"border",M("palette-grey-600")),O(l.Switch,"defaultColor",M("palette-grey-300")),O(l.Switch,"defaultDisabledColor",M("palette-grey-600")),O(l.Switch,"primaryDisabledColor",D(le,l.primary.main,.55)),O(l.Switch,"secondaryDisabledColor",D(le,l.secondary.main,.55)),O(l.Switch,"errorDisabledColor",D(le,l.error.main,.55)),O(l.Switch,"infoDisabledColor",D(le,l.info.main,.55)),O(l.Switch,"successDisabledColor",D(le,l.success.main,.55)),O(l.Switch,"warningDisabledColor",D(le,l.warning.main,.55)),O(l.TableCell,"border",D(le,D(Ve,l.divider,1),.68)),O(l.Tooltip,"bg",D(Ve,l.grey[700],.92))}Ie(l.background,"default"),Ie(l.background,"paper"),Ie(l.common,"background"),Ie(l.common,"onBackground"),Ie(l,"divider"),Object.keys(l).forEach(C=>{const N=l[C];C!=="tonalOffset"&&N&&typeof N=="object"&&(N.main&&O(l[C],"mainChannel",fa(ga(N.main))),N.light&&O(l[C],"lightChannel",fa(ga(N.light))),N.dark&&O(l[C],"darkChannel",fa(ga(N.dark))),N.contrastText&&O(l[C],"contrastTextChannel",fa(ga(N.contrastText))),C==="text"&&(Ie(l[C],"primary"),Ie(l[C],"secondary")),C==="action"&&(N.active&&Ie(l[C],"active"),N.selected&&Ie(l[C],"selected")))})}),w=a.reduce((U,l)=>Je(U,l),w);const z={prefix:r,disableCssColorScheme:n,shouldSkipGeneratingVar:s,getSelector:_s(w),enableContrastVars:i},{vars:L,generateThemeVars:$,generateStyleSheets:H}=Qi(w,z);return w.vars=L,Object.entries(w.colorSchemes[w.defaultColorScheme]).forEach(([U,l])=>{w[U]=l}),w.generateThemeVars=$,w.generateStyleSheets=H,w.generateSpacing=function(){return Kt(d.spacing,Oo(this))},w.getColorSchemeSelector=Zi(u),w.spacing=w.generateSpacing(),w.shouldSkipGeneratingVar=s,w.unstable_sxConfig={...Ja,...d==null?void 0:d.unstable_sxConfig},w.unstable_sx=function(l){return ua({sx:l,theme:this})},w.toRuntimeSource=un,w}function Tt(e,a,o){e.colorSchemes&&o&&(e.colorSchemes[a]={...o!==!0&&o,palette:Ro({...o===!0?{}:o.palette,mode:a})})}function $s(e={},...a){const{palette:o,cssVariables:t=!1,colorSchemes:n=o?void 0:{light:!0},defaultColorScheme:r=o==null?void 0:o.mode,...i}=e,s=r||"light",u=n==null?void 0:n[s],p={...n,...o?{[s]:{...typeof u!="boolean"&&u,palette:o}}:void 0};if(t===!1){if(!("colorSchemes"in e))return xo(e,...a);let d=o;"palette"in e||p[s]&&(p[s]!==!0?d=p[s].palette:s==="dark"&&(d={mode:"dark"}));const m=xo({...e,palette:d},...a);return m.defaultColorScheme=s,m.colorSchemes=p,m.palette.mode==="light"&&(m.colorSchemes.light={...p.light!==!0&&p.light,palette:m.palette},Tt(m,"dark",p.dark)),m.palette.mode==="dark"&&(m.colorSchemes.dark={...p.dark!==!0&&p.dark,palette:m.palette},Tt(m,"light",p.light)),m}return!o&&!("light"in p)&&s==="light"&&(p.light=!0),Ps({...i,colorSchemes:p,defaultColorScheme:s,...typeof t!="boolean"&&t},...a)}const Ds=$s(),Fs="$$material";function Ns(e){return e!=="ownerState"&&e!=="theme"&&e!=="sx"&&e!=="as"}const Ls=e=>Ns(e)&&e!=="classes",Ms=Di({themeId:Fs,defaultTheme:Ds,rootShouldForwardProp:Ls}),Bs=Yi;process.env.NODE_ENV!=="production"&&(ie.node,ie.object.isRequired);function Us(e){return Gi(e)}function qs(e,a,o="Mui"){const t={};return a.forEach(n=>{t[n]=Io(e,n,o)}),t}function Vs(e){return Io("MuiSvgIcon",e)}qs("MuiSvgIcon",["root","colorPrimary","colorSecondary","colorAction","colorError","colorDisabled","fontSizeInherit","fontSizeSmall","fontSizeMedium","fontSizeLarge"]);const Ws=e=>{const{color:a,fontSize:o,classes:t}=e,n={root:["root",a!=="inherit"&&`color${Da(a)}`,`fontSize${Da(o)}`]};return Cr(n,Vs,t)},Hs=Ms("svg",{name:"MuiSvgIcon",slot:"Root",overridesResolver:(e,a)=>{const{ownerState:o}=e;return[a.root,o.color!=="inherit"&&a[`color${Da(o.color)}`],a[`fontSize${Da(o.fontSize)}`]]}})(Bs(({theme:e})=>{var a,o,t,n,r,i,s,u,p,d,m,h,g,f;return{userSelect:"none",width:"1em",height:"1em",display:"inline-block",flexShrink:0,transition:(n=(a=e.transitions)==null?void 0:a.create)==null?void 0:n.call(a,"fill",{duration:(t=(o=(e.vars??e).transitions)==null?void 0:o.duration)==null?void 0:t.shorter}),variants:[{props:c=>!c.hasSvgAsChild,style:{fill:"currentColor"}},{props:{fontSize:"inherit"},style:{fontSize:"inherit"}},{props:{fontSize:"small"},style:{fontSize:((i=(r=e.typography)==null?void 0:r.pxToRem)==null?void 0:i.call(r,20))||"1.25rem"}},{props:{fontSize:"medium"},style:{fontSize:((u=(s=e.typography)==null?void 0:s.pxToRem)==null?void 0:u.call(s,24))||"1.5rem"}},{props:{fontSize:"large"},style:{fontSize:((d=(p=e.typography)==null?void 0:p.pxToRem)==null?void 0:d.call(p,35))||"2.1875rem"}},...Object.entries((e.vars??e).palette).filter(([,c])=>c&&c.main).map(([c])=>{var v,T;return{props:{color:c},style:{color:(T=(v=(e.vars??e).palette)==null?void 0:v[c])==null?void 0:T.main}}}),{props:{color:"action"},style:{color:(h=(m=(e.vars??e).palette)==null?void 0:m.action)==null?void 0:h.active}},{props:{color:"disabled"},style:{color:(f=(g=(e.vars??e).palette)==null?void 0:g.action)==null?void 0:f.disabled}},{props:{color:"inherit"},style:{color:void 0}}]}})),Ma=Re.forwardRef(function(a,o){const t=Us({props:a,name:"MuiSvgIcon"}),{children:n,className:r,color:i="inherit",component:s="svg",fontSize:u="medium",htmlColor:p,inheritViewBox:d=!1,titleAccess:m,viewBox:h="0 0 24 24",...g}=t,f=Re.isValidElement(n)&&n.type==="svg",c={...t,color:i,component:s,fontSize:u,instanceFontSize:a.fontSize,inheritViewBox:d,viewBox:h,hasSvgAsChild:f},v={};d||(v.viewBox=h);const T=Ws(c);return S.jsxs(Hs,{as:s,className:Wt(T.root,r),focusable:"false",color:p,"aria-hidden":m?void 0:!0,role:m?"img":void 0,ref:o,...v,...g,...f&&n.props,ownerState:c,children:[f?n.props.children:n,m?S.jsx("title",{children:m}):null]})});process.env.NODE_ENV!=="production"&&(Ma.propTypes={children:ie.node,classes:ie.object,className:ie.string,color:ie.oneOfType([ie.oneOf(["inherit","action","disabled","primary","secondary","error","info","success","warning"]),ie.string]),component:ie.elementType,fontSize:ie.oneOfType([ie.oneOf(["inherit","large","medium","small"]),ie.string]),htmlColor:ie.string,inheritViewBox:ie.bool,shapeRendering:ie.string,sx:ie.oneOfType([ie.arrayOf(ie.oneOfType([ie.func,ie.object,ie.bool])),ie.func,ie.object]),titleAccess:ie.string,viewBox:ie.string});Ma.muiName="SvgIcon";function $e(e,a){function o(t,n){return S.jsx(Ma,{"data-testid":process.env.NODE_ENV!=="production"?`${a}Icon`:void 0,ref:n,...t,children:e})}return process.env.NODE_ENV!=="production"&&(o.displayName=`${a}Icon`),o.muiName=Ma.muiName,Re.memo(Re.forwardRef(o))}const Gs=$e(S.jsx("path",{d:"M17 12h-5v5h5zM16 1v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2h-1V1zm3 18H5V8h14z"}),"Event"),Ys=({course:e,displayMode:a,hasUpcomingEvents:o})=>S.jsxs(Y.Box,{sx:{display:"flex",flexDirection:"row",alignItems:"center",mb:"auto",width:"100%"},children:[a!=="course"&&S.jsx(Y.Typography,{variant:"caption",sx:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",mr:1},children:e.instance}),o&&S.jsx(Y.Tooltip,{title:"Upcoming Events",children:S.jsx(Y.IconButton,{size:"small",color:"info",sx:{width:28,height:28,padding:0},children:S.jsx(Gs,{sx:{fontSize:18}})})})]}),Ks=$e(S.jsx("path",{d:"M19.14 12.94c.04-.3.06-.61.06-.94 0-.32-.02-.64-.07-.94l2.03-1.58c.18-.14.23-.41.12-.61l-1.92-3.32c-.12-.22-.37-.29-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54c-.04-.24-.24-.41-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.74 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.05.3-.09.63-.09.94s.02.64.07.94l-2.03 1.58c-.18.14-.23.41-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .44-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.47-.12-.61zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6 3.6 1.62 3.6 3.6-1.62 3.6-3.6 3.6"}),"Settings"),Js=$e(S.jsx("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m1 15h-2v-6h2zm0-8h-2V7h2z"}),"Info"),Xs=$e(S.jsx("path",{d:"M15 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4m-9-2V7H4v3H1v2h3v3h2v-3h3v-2zm9 4c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4"}),"PersonAdd"),Qs=$e(S.jsx("path",{d:"M5 13.18v4L12 21l7-3.82v-4L12 17zM12 3 1 9l11 6 9-4.91V17h2V9z"}),"School"),Zs=$e(S.jsx("path",{d:"m12.87 15.07-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2zm-2.62 7 1.62-4.33L19.12 17z"}),"Translate"),eu=$e(S.jsx("path",{d:"M16 11c1.66 0 2.99-1.34 2.99-3S17.66 5 16 5s-3 1.34-3 3 1.34 3 3 3m-8 0c1.66 0 2.99-1.34 2.99-3S9.66 5 8 5 5 6.34 5 8s1.34 3 3 3m0 2c-2.33 0-7 1.17-7 3.5V19h14v-2.5c0-2.33-4.67-3.5-7-3.5m8 0c-.29 0-.62.02-.97.05 1.16.84 1.97 1.97 1.97 3.45V19h6v-2.5c0-2.33-4.67-3.5-7-3.5"}),"Group"),au=$e(S.jsx("path",{d:"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2m4.24 16L12 15.45 7.77 18l1.12-4.81-3.73-3.23 4.92-.42L12 5l1.92 4.53 4.92.42-3.73 3.23z"}),"Stars"),ou=$e(S.jsx("path",{d:"M22 9V7h-2v2h-2v2h2v2h2v-2h2V9zM8 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4m0 1c-2.67 0-8 1.34-8 4v3h16v-3c0-2.66-5.33-4-8-4m4.51-8.95C13.43 5.11 14 6.49 14 8s-.57 2.89-1.49 3.95C14.47 11.7 16 10.04 16 8s-1.53-3.7-3.49-3.95m4.02 9.78C17.42 14.66 18 15.7 18 17v3h2v-3c0-1.45-1.59-2.51-3.47-3.17"}),"GroupAdd"),tu=({course:e,courseColor:a,isTeacher:o,showEnrollmentOpen:t,onSettingsClick:n,onEnroll:r,onTeacherEnroll:i})=>{var h,g,f,c,v;const[s,u]=ne.useState(null),[p,d]=ne.useState(null),m=T=>{T.stopPropagation(),d(null),o?i==null||i(T):r==null||r(T)};return S.jsxs(Y.Box,{sx:{display:"flex",gap:1},children:[t&&S.jsxs(S.Fragment,{children:[S.jsx(Y.Tooltip,{title:o?"Manage enrollments":"Enroll in course",children:S.jsx(Y.IconButton,{size:"small",color:"success",onClick:T=>{T.stopPropagation(),d(T.currentTarget)},sx:{width:28,height:28,padding:0},children:o?S.jsx(ou,{sx:{fontSize:18}}):S.jsx(Xs,{sx:{fontSize:18}})})}),S.jsxs(Y.Menu,{anchorEl:p,open:!!p,onClose:T=>{T.stopPropagation(),d(null)},anchorOrigin:{vertical:"top",horizontal:"center"},transformOrigin:{vertical:"bottom",horizontal:"center"},children:[S.jsxs(Y.MenuItem,{dense:!0,disabled:!0,children:[S.jsx(Y.ListItemIcon,{children:S.jsx(eu,{fontSize:"small"})}),S.jsx(Y.ListItemText,{primary:`${((g=(h=e.data)==null?void 0:h.enrollmentData)==null?void 0:g.length)||0}/${(f=e.enrollment)==null?void 0:f.status.maxStudents} enrolled`,primaryTypographyProps:{variant:"body2"}})]}),S.jsx(Y.Divider,{}),S.jsx(Y.MenuItem,{dense:!0,onClick:m,children:o?"Manage Student Enrollments":"Enroll Now"})]})]}),o&&S.jsx(Y.Tooltip,{title:"Course settings",children:S.jsx(Y.IconButton,{size:"small",onClick:n,sx:{color:a,width:28,height:28,padding:0},children:S.jsx(Ks,{sx:{fontSize:18}})})}),S.jsxs(S.Fragment,{children:[S.jsx(Y.Tooltip,{title:"Course details",children:S.jsx(Y.IconButton,{size:"small",onClick:T=>{T.stopPropagation(),u(T.currentTarget)},sx:{color:a,width:28,height:28,padding:0},children:S.jsx(Js,{sx:{fontSize:18}})})}),S.jsxs(Y.Menu,{anchorEl:s,open:!!s,onClose:T=>{T.stopPropagation(),u(null)},anchorOrigin:{vertical:"top",horizontal:"center"},transformOrigin:{vertical:"bottom",horizontal:"center"},children:[S.jsxs(Y.MenuItem,{dense:!0,disabled:!0,children:[S.jsx(Y.ListItemIcon,{children:S.jsx(Qs,{fontSize:"small"})}),S.jsx(Y.ListItemText,{primary:(c=e.studyModule)==null?void 0:c.level,primaryTypographyProps:{variant:"body2"}})]}),S.jsxs(Y.MenuItem,{dense:!0,disabled:!0,children:[S.jsx(Y.ListItemIcon,{children:S.jsx(au,{fontSize:"small"})}),S.jsx(Y.ListItemText,{primary:`${(v=e.studyModule)==null?void 0:v.credits} credits`,primaryTypographyProps:{variant:"body2"}})]}),S.jsxs(Y.MenuItem,{dense:!0,disabled:!0,children:[S.jsx(Y.ListItemIcon,{children:S.jsx(Zs,{fontSize:"small"})}),S.jsx(Y.ListItemText,{primary:e.language,primaryTypographyProps:{variant:"body2"}})]})]})]})]})},mn=({course:e,displayMode:a="course",onClick:o})=>{var _,b,y,w,z,L;const{setOpenDialog:t}=B.useDialogStore(),{setCourseToUpdate:n,setCurrentCourse:r}=Te(),i=e.code.split(".")[0],s=$a[i]||$a["COMP.CS"],u=((_=e.studyModule)==null?void 0:_.level)||"basic",p=s.levelShades[u],d=((y=(b=e.data)==null?void 0:b.myData)==null?void 0:y.role)==="teacher",h=!!(!(((z=(w=e.data)==null?void 0:w.myData)==null?void 0:z.status)==="enrolled")&&((L=e.enrollment)!=null&&L.status.open)),g=!!e.events.lecture.some($=>new Date($.startTime)>new Date),[f,c]=ne.useState(!1),v=$=>{$.stopPropagation(),n(e),t("CourseSettings")},T=$=>{$.stopPropagation(),t("ManageEnrollments")},P=()=>{r(e),o(e)};return S.jsxs(Y.Card,{elevation:0,sx:{marginLeft:2,marginRight:2,boxSizing:"border-box",position:"relative",cursor:"pointer",flex:"1",backgroundColor:`${p}08`,borderLeft:`4px solid ${p}`,transition:"all 0.3s cubic-bezier(0.4, 0, 0.2, 1)",overflow:"hidden",height:"100%","&:hover":{backgroundColor:`${p}15`,"& .subject-icon":{opacity:.15,transform:"scale(1.1)"}}},onClick:P,children:[!f&&S.jsx(Y.Skeleton,{variant:"rectangular",sx:{position:"absolute",right:-10,bottom:-10,width:"80px",height:"80px",opacity:.08,transition:"all 0.3s ease-in-out"},animation:"wave"}),S.jsx(Y.Box,{component:"img",className:"subject-icon",src:s.icon,alt:i,loading:"lazy",onLoad:()=>c(!0),sx:{position:"absolute",right:-10,bottom:-10,width:"80px",height:"80px",transition:"opacity 0.3s ease-in-out",filter:`drop-shadow(0 0 1px ${p})`,opacity:.08}}),S.jsx(Y.Box,{sx:{p:1,height:"100%",display:"flex",flexDirection:"column"},children:S.jsxs(Y.Box,{sx:{display:"flex",flexDirection:"column",justifyContent:"space-between",height:"100%"},children:[S.jsx(dr,{course:e}),S.jsxs(Y.Box,{sx:{width:"100%",display:"flex",justifyContent:"space-between",alignItems:"center",mt:"auto"},children:[S.jsx(Ys,{course:e,displayMode:a,hasUpcomingEvents:g}),S.jsx(tu,{course:e,courseColor:p,isTeacher:d,showEnrollmentOpen:h,onSettingsClick:v,onEnroll:$=>{$.stopPropagation(),t("EnrollInCourse")},onTeacherEnroll:T})]})]})})]})},nu=()=>{const{code:e}=B.useParams(),a=B.useNavigate(),{courses:o,currentCourse:t}=Te(),n=o.filter(i=>i.code===e),r=i=>{a(`${i.instance}`)};return S.jsxs(Y.Box,{sx:{p:3,display:"flex",flexDirection:"column",gap:2},children:[S.jsx(B.CenteredHeading,{heading:"Course Instances",subheading:"Below are all the instances of the selected course. Select an instance to view its content."}),n.map(i=>S.jsx(mn,{course:i,isSelected:(t==null?void 0:t.id)===i.id,displayMode:"course",onClick:r},i.id))," "]})},ru=()=>{const{instance:e,code:a}=B.useParams(),{fetchState:o,courses:t,setCurrentCourse:n}=Te(),{addNotificationData:r}=B.useNotificationStore(),i=B.useNavigate();return ne.useEffect(()=>{if(o==="loading"||!t.length)return;const s=t.find(u=>u.code===a&&u.instance===e);s?n(s):(r({type:"error",message:"Course Instance not found"}),i("/"+a))},[e,a,t,o,n,r,i]),o==="loading"?S.jsx(B.LoadingScreen,{}):S.jsx(B.Outlet,{})},iu=({item:e,onToggleService:a,isUsed:o})=>{var s;const t=Y.useTheme(),n=B.useNavigate(),r=e.iconFC,i=e.icon?e.icon:r?S.jsx(r,{fontSize:"large"}):null;return S.jsxs(Y.Card,{"data-testid":"tool-card",sx:{position:"relative",height:"auto",cursor:"pointer",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"stretch",transition:"all 0.2s ease-in-out",transform:"scale(1)",bgcolor:"background.paper","&:hover":{transform:"scale(1.02)",boxShadow:t.shadows[8],bgcolor:u=>u.palette.primary.main+"20",color:"primary.main"},"&:hover .toggle-button":{display:"inline-flex"}},children:[S.jsx(Y.CardActionArea,{sx:{height:"100%",display:"flex",flexDirection:"column",justifyContent:"top"},onClick:()=>n(e.segment),children:S.jsxs(Y.CardContent,{sx:{display:"flex",flexDirection:"column",alignItems:"center",gap:2,p:3,maxWidth:300,flex:1},children:[S.jsx(Y.Box,{sx:{color:"inherit"},children:i}),S.jsx(Y.Typography,{variant:"h6",children:e.title}),S.jsx(Y.Typography,{variant:"body2",color:"text.secondary",align:"center",children:(s=e.metadata)==null?void 0:s.description})]})}),a&&S.jsx(Y.Tooltip,{title:o?"Remove":"Add",arrow:!0,children:S.jsx(Y.Button,{className:"toggle-button",sx:{display:"none",position:"absolute",top:8,right:8,minWidth:32,padding:0,fontSize:"1.25rem"},onClick:()=>a(e.segment),children:o?"-":"+"})})]})},go=({show:e,onToggleService:a,navItems:o,roleCheck:t,isUsed:n})=>{var i,s;const{currentCourse:r}=Te();return S.jsx(Y.Box,{sx:{p:3},"data-testid":"tool-selector",children:S.jsx(Y.Fade,{in:e,timeout:500,children:S.jsx(Y.Box,{children:S.jsxs(Y.Box,{sx:{display:"flex",flexDirection:"row",flexWrap:"wrap",alignItems:"stretch",justifyContent:"center",height:"fit-content",width:"100%",gap:4},children:[o.length===0&&S.jsxs(Y.Box,{sx:{display:"flex",justifyContent:"center",alignItems:"center",flexDirection:"column",width:"100%",height:"100%",color:"text.secondary"},children:[S.jsxs(Y.Typography,{variant:"h5",sx:{mb:4},children:["No tools available ",t?"for your role":""]}),t&&((s=(i=r==null?void 0:r.data)==null?void 0:i.myData)==null?void 0:s.role)==="student"&&S.jsx(Y.Typography,{variant:"body1",sx:{mb:4},children:"Please let your teacher know if you need access to any tools."})]}),o.map(u=>{var p,d,m,h;return!t||t&&((h=(p=u.metadata)==null?void 0:p.forRoles)!=null&&h.includes(((m=(d=r==null?void 0:r.data)==null?void 0:d.myData)==null?void 0:m.role)||""))?S.jsx(iu,{item:u,onToggleService:a,isUsed:n},u.segment):null})]})})})})},su=()=>{const{currentCourse:e,updateStateCourse:a}=Te(),{addNotificationData:o}=B.useNotificationStore(),[t,n]=ne.useState((e==null?void 0:e.ltiLoginUrl)||""),[r,i]=ne.useState(!1),s=async u=>{if(u.preventDefault(),!e)return;const p=t.trim();if(!p){o({type:"error",message:"Please provide a valid URL"});return}i(!0);try{if((await a({...e,ltiLoginUrl:p})).ltiLoginUrl===p)o({type:"success",message:"LTI Login URL updated successfully."});else throw new Error("Failed to verify update")}catch(d){console.error("Failed to update LTI Login URL:",d),o({type:"error",message:"Failed to update LTI Login URL. Please try again."})}finally{i(!1)}};return S.jsxs(Y.Paper,{elevation:3,sx:{p:3,mt:4,mx:"auto",maxWidth:600,borderRadius:2,backgroundColor:"background.paper"},children:[S.jsx(Y.Typography,{variant:"h6",color:"primary",gutterBottom:!0,sx:{mb:2},children:"Update LTI Login URL"}),S.jsx(Y.Typography,{variant:"body2",color:"text.secondary",sx:{mb:3},children:"Please provide the LTI Login URL for this course. Students will be redirected to this URL when they need to authenticate."}),S.jsxs("form",{onSubmit:s,children:[S.jsx(Y.TextField,{label:"LTI Login URL",variant:"outlined",fullWidth:!0,required:!0,value:t,onChange:u=>n(u.target.value),sx:{mb:3,"& .MuiOutlinedInput-root":{"&:hover fieldset":{borderColor:"primary.main"}}},helperText:"The URL where students will be redirected for LTI authentication"}),S.jsx(Y.Box,{sx:{display:"flex",justifyContent:"flex-end"},children:S.jsx(Y.Button,{type:"submit",variant:"contained",color:"primary",disabled:r,sx:{px:4,py:1,textTransform:"none",fontWeight:500},children:r?"Updating...":"Update URL"})})]})]})},uu=({microservices:e})=>{var T,P;const{instance:a,code:o}=B.useParams(),{updateStateCourse:t,currentCourse:n}=Te(),{addNotificationData:r}=B.useNotificationStore(),[i,s]=ne.useState(!0),{allCourseMicroserviceNavigation:u}=So(),[p,d]=ne.useState(e);ne.useEffect(()=>{!e&&o&&u?d(u):e&&d(e)},[e,o,a,u]);const[m,h]=ne.useState([]),[g,f]=ne.useState([]);ne.useEffect(()=>{if(o&&a&&p){const _=p.filter(y=>{var w;return(w=n==null?void 0:n.services)==null?void 0:w.includes(y.segment)});h(_);const b=p.filter(y=>{var w;return!((w=n==null?void 0:n.services)!=null&&w.includes(y.segment))});f(b)}},[o,a,p,n]),ne.useEffect(()=>{s(!1);const _=setTimeout(()=>s(!0),300);return()=>clearTimeout(_)},[n]);const c=((P=(T=n==null?void 0:n.data)==null?void 0:T.myData)==null?void 0:P.role)==="teacher";ne.useEffect(()=>{n&&c&&!n.ltiLoginUrl&&r({type:"info",message:"The LTI Login URL is missing for this course."})},[n,c,r]);const v=async(_,b)=>{var z;if(!n)return;const y=b?((z=n.services)==null?void 0:z.filter(L=>L!==_))||[]:[...n.services||[],_],w={...n,services:y};await t(w)};return o?S.jsxs(S.Fragment,{children:[c&&!(n!=null&&n.ltiLoginUrl)&&S.jsx(su,{}),c?S.jsxs(S.Fragment,{children:[S.jsx(B.CenteredHeading,{heading:"Enabled Tools",subheading:"These tools are currently enabled for this course. Click on a tool to visit its page."}),S.jsx(go,{show:i,title:"Enabled Tools",navItems:m,roleCheck:!0,onToggleService:_=>v(_,!0),isUsed:!0}),S.jsx(B.CenteredHeading,{heading:"Available Tools",subheading:"These tools are available for this course. Click on a tool to enable it."}),S.jsx(go,{show:i,title:"Available Tools",navItems:g,roleCheck:!0,onToggleService:_=>v(_,!1),isUsed:!1})]}):S.jsxs(S.Fragment,{children:[S.jsx(B.CenteredHeading,{heading:"Course Tools",subheading:"These tools are available for this course. Click on a tool to visit its page."}),S.jsx(go,{show:i,title:n!=null&&n.title?`${n.title} - Tools`:"Course Tools",navItems:m,roleCheck:!0})]})]}):S.jsx("h1",{children:"No course selected!"})},ko=({children:e})=>S.jsx(S.Fragment,{children:e}),cu=()=>{const{allCourseMicroserviceNavigation:e}=So();return fetch("http://127.0.0.1:7244/ingest/c66c732d-3054-49ac-a9c8-4251e2d751a6",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({location:"useCourseRoutes.tsx:29",message:"useCourseRoutes called",data:{navCount:e.length,navSegments:e.map(a=>a.segment)},timestamp:Date.now(),sessionId:"debug-session",runId:"run1",hypothesisId:"A"})}).catch(()=>{}),ne.useMemo(()=>{var o,t;const a=[];return fetch("http://127.0.0.1:7244/ingest/c66c732d-3054-49ac-a9c8-4251e2d751a6",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({location:"useCourseRoutes.tsx:33",message:"Building routes",data:{navCount:e.length,hasChildren:e.some(n=>{var r;return(r=n.children)==null?void 0:r.length})},timestamp:Date.now(),sessionId:"debug-session",runId:"run1",hypothesisId:"B"})}).catch(()=>{}),a.push(S.jsxs(B.Route,{path:":code",element:S.jsx(pr,{}),children:[S.jsx(B.Route,{index:!0,element:S.jsx(nu,{})}),S.jsxs(B.Route,{path:":instance",element:S.jsx(ru,{}),children:[S.jsx(B.Route,{index:!0,element:S.jsx(uu,{microservices:e})}),e.map(n=>{var r,i,s;return fetch("http://127.0.0.1:7244/ingest/c66c732d-3054-49ac-a9c8-4251e2d751a6",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({location:"useCourseRoutes.tsx:45",message:"Mapping nav route",data:{segment:n.segment,hasChildren:!!n.children,childrenCount:(r=n.children)==null?void 0:r.length,childSegments:(i=n.children)==null?void 0:i.map(u=>u.segment)},timestamp:Date.now(),sessionId:"debug-session",runId:"run1",hypothesisId:"C"})}).catch(()=>{}),S.jsxs(B.Route,{path:n.segment,children:[S.jsx(B.Route,{index:!0,element:S.jsxs(ko,{title:n.title,showTitle:n.showTitle,children:[n.children&&n.children.length>0&&S.jsx(B.MicroserviceSubsections,{children:n.children}),n.view&&S.jsx(n.view,{})]})}),(s=n.children)==null?void 0:s.map(u=>{var p,d,m;return fetch("http://127.0.0.1:7244/ingest/c66c732d-3054-49ac-a9c8-4251e2d751a6",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({location:"useCourseRoutes.tsx:60",message:"Mapping child route",data:{parentSegment:n.segment,childSegment:u.segment,hasSubChildren:!!u.children,subChildrenCount:(p=u.children)==null?void 0:p.length,subChildSegments:(d=u.children)==null?void 0:d.map(h=>h.segment)},timestamp:Date.now(),sessionId:"debug-session",runId:"run1",hypothesisId:"D"})}).catch(()=>{}),S.jsxs(B.Route,{path:u.segment,children:[S.jsx(B.Route,{index:!0,element:S.jsxs(ko,{title:u.title,showTitle:u.showTitle,children:[u.children&&u.children.length>0&&S.jsx(B.MicroserviceSubsections,{children:u.children}),u.view&&S.jsx(u.view,{})]})}),(m=u.children)==null?void 0:m.map(h=>S.jsx(B.Route,{path:h.segment,element:S.jsx(ko,{title:h.title,showTitle:h.showTitle,children:h.view?S.jsx(h.view,{}):null})},h.segment))]},u.segment)})]},n.segment)})]})]},"course-routes")),fetch("http://127.0.0.1:7244/ingest/c66c732d-3054-49ac-a9c8-4251e2d751a6",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({location:"useCourseRoutes.tsx:102",message:"Routes built",data:{routeCount:a.length,firstRoutePath:(t=(o=a[0])==null?void 0:o.props)==null?void 0:t.path},timestamp:Date.now(),sessionId:"debug-session",runId:"run1",hypothesisId:"E"})}).catch(()=>{}),a},[e])},lu=()=>{const e=cu();return fetch("http://127.0.0.1:7244/ingest/c66c732d-3054-49ac-a9c8-4251e2d751a6",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({location:"CourseRoutesProvider.tsx:17",message:"CourseRoutesProvider render",data:{routeCount:e.length},timestamp:Date.now(),sessionId:"debug-session",runId:"run1",hypothesisId:"F"})}).catch(()=>{}),ne.useEffect(()=>(fetch("http://127.0.0.1:7244/ingest/c66c732d-3054-49ac-a9c8-4251e2d751a6",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({location:"CourseRoutesProvider.tsx:20",message:"Registering route provider",data:{routeCount:e.length},timestamp:Date.now(),sessionId:"debug-session",runId:"run1",hypothesisId:"G"})}).catch(()=>{}),B.registerRouteProvider("course-routes",()=>e),()=>{B.unregisterRouteProvider("course-routes")}),[e]),null},mu=(e,a)=>{const o=t=>S.jsx(Y.SvgIcon,{...t,sx:{backgroundColor:e,borderRadius:"50%",display:"flex",alignItems:"center",justifyContent:"center","& image":{transform:"scale(1)"}},viewBox:"0 0 24 24",children:S.jsx("image",{href:a.icon,width:"20",height:"20",x:"2",y:"2",preserveAspectRatio:"xMidYMid meet"})});return o.muiName="SvgIcon",o},pu=e=>{var i;const a=e.code.split(".")[0],o=$a[a]||$a["COMP.CS"],t=((i=e.studyModule)==null?void 0:i.level)||"basic",n=o.levelShades[t],r=mu(n,o);return{segment:e.code,title:e.code.toUpperCase(),Icon:r,instances:[e.instance],description:e.description,microservices:e.services}},du=()=>{const{learningCourses:e,learningCoursesOld:a,teachingCourses:o,teachingCoursesOld:t,availableCourses:n}=Te(),r=ne.useMemo(()=>[{courses:e,header:"Courses"},{courses:a,header:"Courses (Old)"},{courses:o,header:"Teaching Courses"},{courses:t,header:"Teaching Courses (Old)"},{courses:n,header:"Available Courses"}].filter(({courses:s})=>s&&s.length>0).map(({courses:s,header:u})=>({underHeader:u,pages:s.map(pu)})),[e,a,o,t,n]);return S.jsx(B.NavigationSectionBuilder,{sections:r})},hu=()=>{const{learningCourses:e}=Te();return ne.useEffect(()=>{if(e&&e.length>0){const a=[];e.forEach(o=>{Object.entries(o.events||{}).forEach(([t,n])=>{n.forEach(r=>{var i,s;a.push({id:r.id||`${o.code}-${t}-${Math.random()}`,title:r.title||`${o.title} - ${t}`,start:r.startTime,end:r.endTime||r.startTime,metadata:{source:"courses",courseCode:o.code,courseTitle:o.title,subject:((i=o.code)==null?void 0:i.split(".")[0])||"UNKNOWN",courseLevel:((s=o.studyModule)==null?void 0:s.level)||"basic",type:t,description:r.description,location:r.location}})})})}),B.eventBus.publish("courses",a)}else B.eventBus.removeSource("courses")},[e]),null},fu=({displayMode:e="instance",containerHeight:a="100%"})=>{const{currentCourse:o,learningCourses:t,learningCoursesOld:n,teachingCourses:r,teachingCoursesOld:i,availableCourses:s}=Te(),u=B.useNavigate(),{visibleSections:p}=B.useNavigationStore(),d=200,m=300,h=p.Courses===!0,g=p["Courses (Old)"]===!0,f=p["Teaching Courses"]===!0,c=p["Teaching Courses (Old)"]===!0,v=p["Available Courses"]===!0,T=_=>{u(`/${_.code}/${_.instance}`)},P=(_,b,y)=>S.jsx(B.Scroller,{direction:"horizontal",itemSize:m,containerSize:d,title:_,priority:y,children:b.map(w=>S.jsx(mn,{onClick:T,course:w,isSelected:(o==null?void 0:o.id)===w.id,displayMode:e},w.id))});return S.jsx(Y.Box,{sx:{width:"100%",height:a},children:S.jsxs(B.Scroller,{direction:"vertical",itemSize:d,containerSize:a,children:[h&&t.length>0&&P("My Enrolled Courses",t,"high"),g&&n.length>0&&P("My Completed Courses",n,"low"),f&&r.length>0&&P("My Teaching Courses",r,"low"),c&&i.length>0&&P("My Past Teaching",i,"low"),v&&s.length>0&&P("Available Courses",s,"low")]})})},gu=()=>{fetch("http://127.0.0.1:7244/ingest/c66c732d-3054-49ac-a9c8-4251e2d751a6",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({location:"CourseManager.tsx:11",message:"CourseManager render - about to call useLocation",data:{timestamp:Date.now()},timestamp:Date.now(),sessionId:"debug-session",runId:"run1",hypothesisId:"M"})}).catch(()=>{});let e;try{e=B.useLocation(),fetch("http://127.0.0.1:7244/ingest/c66c732d-3054-49ac-a9c8-4251e2d751a6",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({location:"CourseManager.tsx:15",message:"useLocation succeeded",data:{pathname:e==null?void 0:e.pathname},timestamp:Date.now(),sessionId:"debug-session",runId:"run1",hypothesisId:"N"})}).catch(()=>{})}catch(h){fetch("http://127.0.0.1:7244/ingest/c66c732d-3054-49ac-a9c8-4251e2d751a6",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({location:"CourseManager.tsx:18",message:"useLocation failed",data:{error:h instanceof Error?h.message:String(h),errorName:h instanceof Error?h.name:"Unknown"},timestamp:Date.now(),sessionId:"debug-session",runId:"run1",hypothesisId:"O"})}).catch(()=>{}),e={pathname:typeof window<"u"?window.location.pathname:"/",search:"",hash:"",state:null,key:"default"}}const{getCourses:a,setCurrentCourseUrl:o,getCourseByUrl:t,courses:n,currentCourse:r,currentCourseCode:i,setCurrentCourse:s,setCurrentCourseCode:u,setCurrentCourseUrl:p}=Te(),{registerGridItem:d,unregisterGridItem:m}=B.useGridItemContext();return B.useRetry({action:a,condition:n.length<1,successMessage:"Courses fetched successfully",errorMessage:"Failed to fetch courses, retrying..."}),ne.useEffect(()=>{const h=async g=>{const{url:f}=g.data;if(f){o(f);try{await t(f)}catch(c){console.error("Failed to fetch course by URL:",c)}}};return window.addEventListener("message",h),()=>window.removeEventListener("message",h)},[t,o]),ne.useEffect(()=>{e.pathname==="/"&&(r||i)&&(s(null),u(null),p(""))},[e.pathname,r,i,s,u,p]),ne.useEffect(()=>{const h=B.createGridItem({id:"course-list",x:0,y:0,w:15,h:1,minW:1,minH:1,maxW:15,maxH:15});return d("course-list",S.jsx(fu,{displayMode:"instance",containerHeight:"100%"}),h),()=>{m("course-list")}},[d,m]),S.jsxs(S.Fragment,{children:[S.jsx(du,{}),S.jsx(hu,{})]})},ku=({children:e})=>S.jsxs(Hn,{children:[S.jsx(gu,{}),e,S.jsx(lu,{})]});var yu=/(%?)(%([sdijo]))/g;function bu(e,a){switch(a){case"s":return e;case"d":case"i":return Number(e);case"j":return JSON.stringify(e);case"o":{if(typeof e=="string")return e;const o=JSON.stringify(e);return o==="{}"||o==="[]"||/^\[object .+?\]$/.test(o)?e:o}}}function Po(e,...a){if(a.length===0)return e;let o=0,t=e.replace(yu,(n,r,i,s)=>{const u=a[o],p=bu(u,s);return r?n:(o++,p)});return o<a.length&&(t+=` ${a.slice(o).join(" ")}`),t=t.replace(/%{2,2}/g,"%"),t}var ju=2;function vu(e){if(!e.stack)return;const a=e.stack.split(`
|
|
128
|
-
`);a.splice(1,ju),e.stack=a.join(`
|
|
129
|
-
`)}var wu=class extends Error{constructor(e,...a){super(e),this.message=e,this.name="Invariant Violation",this.message=Po(e,...a),vu(this)}},$o=(e,a,...o)=>{if(!e)throw new wu(a,...o)};$o.as=(e,a,o,...t)=>{if(!a){const n=t.length===0?o:Po(o,...t);let r;try{r=Reflect.construct(e,[n])}catch{r=e(n)}throw r}};const xu="[MSW]";function Do(e,...a){const o=Po(e,...a);return`${xu} ${o}`}function Cu(e,...a){console.warn(Do(e,...a))}function Eu(e,...a){console.error(Do(e,...a))}const Co={formatMessage:Do,warn:Cu,error:Eu};function Su(){$o(typeof URL<"u",Co.formatMessage(`Global "URL" class is not defined. This likely means that you're running MSW in an environment that doesn't support all Node.js standard API (e.g. React Native). If that's the case, please use an appropriate polyfill for the "URL" class, like "react-native-url-polyfill".`))}const zu=/[\/\\]msw[\/\\]src[\/\\](.+)/,Tu=/(node_modules)?[\/\\]lib[\/\\](core|browser|node|native|iife)[\/\\]|^[^\/\\]*$/;function Ou(e){const a=e.stack;if(!a)return;const t=a.split(`
|
|
130
|
-
`).slice(1).find(r=>!(zu.test(r)||Tu.test(r)));return t?t.replace(/\s*at [^()]*\(([^)]+)\)/,"$1").replace(/^@/,""):void 0}function _u(e){return e?Reflect.has(e,Symbol.iterator)||Reflect.has(e,Symbol.asyncIterator):!1}const ya=class ya{constructor(a){Se(this,"__kind");Se(this,"info");Se(this,"isUsed");Se(this,"resolver");Se(this,"resolverIterator");Se(this,"resolverIteratorResult");Se(this,"options");this.resolver=a.resolver,this.options=a.options;const o=Ou(new Error);this.info={...a.info,callFrame:o},this.isUsed=!1,this.__kind="RequestHandler"}async parse(a){return{}}async test(a){const o=await this.parse({request:a.request,resolutionContext:a.resolutionContext});return this.predicate({request:a.request,parsedResult:o,resolutionContext:a.resolutionContext})}extendResolverArgs(a){return{}}cloneRequestOrGetFromCache(a){const o=ya.cache.get(a);if(typeof o<"u")return o;const t=a.clone();return ya.cache.set(a,t),t}async run(a){var d,m;if(this.isUsed&&((d=this.options)!=null&&d.once))return null;const o=this.cloneRequestOrGetFromCache(a.request),t=await this.parse({request:a.request,resolutionContext:a.resolutionContext});if(!this.predicate({request:a.request,parsedResult:t,resolutionContext:a.resolutionContext})||this.isUsed&&((m=this.options)!=null&&m.once))return null;this.isUsed=!0;const r=this.wrapResolver(this.resolver),i=this.extendResolverArgs({request:a.request,parsedResult:t}),u=await r({...i,requestId:a.requestId,request:a.request}).catch(h=>{if(h instanceof Response)return h;throw h});return this.createExecutionResult({request:o,requestId:a.requestId,response:u,parsedResult:t})}wrapResolver(a){return async o=>{var i;if(!this.resolverIterator){const s=await a(o);if(!_u(s))return s;this.resolverIterator=Symbol.iterator in s?s[Symbol.iterator]():s[Symbol.asyncIterator]()}this.isUsed=!1;const{done:t,value:n}=await this.resolverIterator.next(),r=await n;return r&&(this.resolverIteratorResult=r.clone()),t?(this.isUsed=!0,(i=this.resolverIteratorResult)==null?void 0:i.clone()):r}}createExecutionResult(a){return{handler:this,request:a.request,requestId:a.requestId,response:a.response,parsedResult:a.parsedResult}}};Se(ya,"cache",new WeakMap);let Eo=ya;function Au(e,a){return e.toLowerCase()===a.toLowerCase()}function Ru(e){return e<300?"#69AB32":e<400?"#F0BB4B":"#E95F5D"}function Iu(e){const a=new Date;return`${a.getHours().toString().padStart(2,"0")}:${a.getMinutes().toString().padStart(2,"0")}:${a.getSeconds().toString().padStart(2,"0")}`}async function Pu(e){const o=await e.clone().text();return{url:new URL(e.url),method:e.method,headers:Object.fromEntries(e.headers.entries()),body:o}}var $u=Object.create,pn=Object.defineProperty,Du=Object.getOwnPropertyDescriptor,dn=Object.getOwnPropertyNames,Fu=Object.getPrototypeOf,Nu=Object.prototype.hasOwnProperty,hn=(e,a)=>function(){return a||(0,e[dn(e)[0]])((a={exports:{}}).exports,a),a.exports},Lu=(e,a,o,t)=>{if(a&&typeof a=="object"||typeof a=="function")for(let n of dn(a))!Nu.call(e,n)&&n!==o&&pn(e,n,{get:()=>a[n],enumerable:!(t=Du(a,n))||t.enumerable});return e},Mu=(e,a,o)=>(o=e!=null?$u(Fu(e)):{},Lu(pn(o,"default",{value:e,enumerable:!0}),e)),Bu=hn({"node_modules/statuses/codes.json"(e,a){a.exports={100:"Continue",101:"Switching Protocols",102:"Processing",103:"Early Hints",200:"OK",201:"Created",202:"Accepted",203:"Non-Authoritative Information",204:"No Content",205:"Reset Content",206:"Partial Content",207:"Multi-Status",208:"Already Reported",226:"IM Used",300:"Multiple Choices",301:"Moved Permanently",302:"Found",303:"See Other",304:"Not Modified",305:"Use Proxy",307:"Temporary Redirect",308:"Permanent Redirect",400:"Bad Request",401:"Unauthorized",402:"Payment Required",403:"Forbidden",404:"Not Found",405:"Method Not Allowed",406:"Not Acceptable",407:"Proxy Authentication Required",408:"Request Timeout",409:"Conflict",410:"Gone",411:"Length Required",412:"Precondition Failed",413:"Payload Too Large",414:"URI Too Long",415:"Unsupported Media Type",416:"Range Not Satisfiable",417:"Expectation Failed",418:"I'm a Teapot",421:"Misdirected Request",422:"Unprocessable Entity",423:"Locked",424:"Failed Dependency",425:"Too Early",426:"Upgrade Required",428:"Precondition Required",429:"Too Many Requests",431:"Request Header Fields Too Large",451:"Unavailable For Legal Reasons",500:"Internal Server Error",501:"Not Implemented",502:"Bad Gateway",503:"Service Unavailable",504:"Gateway Timeout",505:"HTTP Version Not Supported",506:"Variant Also Negotiates",507:"Insufficient Storage",508:"Loop Detected",509:"Bandwidth Limit Exceeded",510:"Not Extended",511:"Network Authentication Required"}}}),Uu=hn({"node_modules/statuses/index.js"(e,a){var o=Bu();a.exports=s,s.message=o,s.code=t(o),s.codes=n(o),s.redirect={300:!0,301:!0,302:!0,303:!0,305:!0,307:!0,308:!0},s.empty={204:!0,205:!0,304:!0},s.retry={502:!0,503:!0,504:!0};function t(u){var p={};return Object.keys(u).forEach(function(m){var h=u[m],g=Number(m);p[h.toLowerCase()]=g}),p}function n(u){return Object.keys(u).map(function(d){return Number(d)})}function r(u){var p=u.toLowerCase();if(!Object.prototype.hasOwnProperty.call(s.code,p))throw new Error('invalid status message: "'+u+'"');return s.code[p]}function i(u){if(!Object.prototype.hasOwnProperty.call(s.message,u))throw new Error("invalid status code: "+u);return s.message[u]}function s(u){if(typeof u=="number")return i(u);if(typeof u!="string")throw new TypeError("code must be a number or string");var p=parseInt(u,10);return isNaN(p)?r(u):i(p)}}}),qu=Mu(Uu()),fn=qu.default;/*! Bundled license information:
|
|
131
|
-
|
|
132
|
-
statuses/index.js:
|
|
133
|
-
(*!
|
|
134
|
-
* statuses
|
|
135
|
-
* Copyright(c) 2014 Jonathan Ong
|
|
136
|
-
* Copyright(c) 2016 Douglas Christopher Wilson
|
|
137
|
-
* MIT Licensed
|
|
138
|
-
*)
|
|
139
|
-
*/const{message:Vu}=fn;async function Wu(e){const a=e.clone(),o=await a.text(),t=a.status||200,n=a.statusText||Vu[t]||"OK";return{status:t,statusText:n,headers:Object.fromEntries(a.headers.entries()),body:o}}function Hu(e){for(var a=[],o=0;o<e.length;){var t=e[o];if(t==="*"||t==="+"||t==="?"){a.push({type:"MODIFIER",index:o,value:e[o++]});continue}if(t==="\\"){a.push({type:"ESCAPED_CHAR",index:o++,value:e[o++]});continue}if(t==="{"){a.push({type:"OPEN",index:o,value:e[o++]});continue}if(t==="}"){a.push({type:"CLOSE",index:o,value:e[o++]});continue}if(t===":"){for(var n="",r=o+1;r<e.length;){var i=e.charCodeAt(r);if(i>=48&&i<=57||i>=65&&i<=90||i>=97&&i<=122||i===95){n+=e[r++];continue}break}if(!n)throw new TypeError("Missing parameter name at ".concat(o));a.push({type:"NAME",index:o,value:n}),o=r;continue}if(t==="("){var s=1,u="",r=o+1;if(e[r]==="?")throw new TypeError('Pattern cannot start with "?" at '.concat(r));for(;r<e.length;){if(e[r]==="\\"){u+=e[r++]+e[r++];continue}if(e[r]===")"){if(s--,s===0){r++;break}}else if(e[r]==="("&&(s++,e[r+1]!=="?"))throw new TypeError("Capturing groups are not allowed at ".concat(r));u+=e[r++]}if(s)throw new TypeError("Unbalanced pattern at ".concat(o));if(!u)throw new TypeError("Missing pattern at ".concat(o));a.push({type:"PATTERN",index:o,value:u}),o=r;continue}a.push({type:"CHAR",index:o,value:e[o++]})}return a.push({type:"END",index:o,value:""}),a}function Gu(e,a){a===void 0&&(a={});for(var o=Hu(e),t=a.prefixes,n=t===void 0?"./":t,r=a.delimiter,i=r===void 0?"/#?":r,s=[],u=0,p=0,d="",m=function($){if(p<o.length&&o[p].type===$)return o[p++].value},h=function($){var H=m($);if(H!==void 0)return H;var U=o[p],l=U.type,M=U.index;throw new TypeError("Unexpected ".concat(l," at ").concat(M,", expected ").concat($))},g=function(){for(var $="",H;H=m("CHAR")||m("ESCAPED_CHAR");)$+=H;return $},f=function($){for(var H=0,U=i;H<U.length;H++){var l=U[H];if($.indexOf(l)>-1)return!0}return!1},c=function($){var H=s[s.length-1],U=$||(H&&typeof H=="string"?H:"");if(H&&!U)throw new TypeError('Must have text between two parameters, missing text after "'.concat(H.name,'"'));return!U||f(U)?"[^".concat(Me(i),"]+?"):"(?:(?!".concat(Me(U),")[^").concat(Me(i),"])+?")};p<o.length;){var v=m("CHAR"),T=m("NAME"),P=m("PATTERN");if(T||P){var _=v||"";n.indexOf(_)===-1&&(d+=_,_=""),d&&(s.push(d),d=""),s.push({name:T||u++,prefix:_,suffix:"",pattern:P||c(_),modifier:m("MODIFIER")||""});continue}var b=v||m("ESCAPED_CHAR");if(b){d+=b;continue}d&&(s.push(d),d="");var y=m("OPEN");if(y){var _=g(),w=m("NAME")||"",z=m("PATTERN")||"",L=g();h("CLOSE"),s.push({name:w||(z?u++:""),pattern:w&&!z?c(_):z,prefix:_,suffix:L,modifier:m("MODIFIER")||""});continue}h("END")}return s}function Yu(e,a){var o=[],t=kn(e,o,a);return Ku(t,o,a)}function Ku(e,a,o){o===void 0&&(o={});var t=o.decode,n=t===void 0?function(r){return r}:t;return function(r){var i=e.exec(r);if(!i)return!1;for(var s=i[0],u=i.index,p=Object.create(null),d=function(h){if(i[h]===void 0)return"continue";var g=a[h-1];g.modifier==="*"||g.modifier==="+"?p[g.name]=i[h].split(g.prefix+g.suffix).map(function(f){return n(f,g)}):p[g.name]=n(i[h],g)},m=1;m<i.length;m++)d(m);return{path:s,index:u,params:p}}}function Me(e){return e.replace(/([.+*?=^!:${}()[\]|/\\])/g,"\\$1")}function gn(e){return e&&e.sensitive?"":"i"}function Ju(e,a){if(!a)return e;for(var o=/\((?:\?<(.*?)>)?(?!\?)/g,t=0,n=o.exec(e.source);n;)a.push({name:n[1]||t++,prefix:"",suffix:"",modifier:"",pattern:""}),n=o.exec(e.source);return e}function Xu(e,a,o){var t=e.map(function(n){return kn(n,a,o).source});return new RegExp("(?:".concat(t.join("|"),")"),gn(o))}function Qu(e,a,o){return Zu(Gu(e,o),a,o)}function Zu(e,a,o){o===void 0&&(o={});for(var t=o.strict,n=t===void 0?!1:t,r=o.start,i=r===void 0?!0:r,s=o.end,u=s===void 0?!0:s,p=o.encode,d=p===void 0?function(H){return H}:p,m=o.delimiter,h=m===void 0?"/#?":m,g=o.endsWith,f=g===void 0?"":g,c="[".concat(Me(f),"]|$"),v="[".concat(Me(h),"]"),T=i?"^":"",P=0,_=e;P<_.length;P++){var b=_[P];if(typeof b=="string")T+=Me(d(b));else{var y=Me(d(b.prefix)),w=Me(d(b.suffix));if(b.pattern)if(a&&a.push(b),y||w)if(b.modifier==="+"||b.modifier==="*"){var z=b.modifier==="*"?"?":"";T+="(?:".concat(y,"((?:").concat(b.pattern,")(?:").concat(w).concat(y,"(?:").concat(b.pattern,"))*)").concat(w,")").concat(z)}else T+="(?:".concat(y,"(").concat(b.pattern,")").concat(w,")").concat(b.modifier);else{if(b.modifier==="+"||b.modifier==="*")throw new TypeError('Can not repeat "'.concat(b.name,'" without a prefix and suffix'));T+="(".concat(b.pattern,")").concat(b.modifier)}else T+="(?:".concat(y).concat(w,")").concat(b.modifier)}}if(u)n||(T+="".concat(v,"?")),T+=o.endsWith?"(?=".concat(c,")"):"$";else{var L=e[e.length-1],$=typeof L=="string"?v.indexOf(L[L.length-1])>-1:L===void 0;n||(T+="(?:".concat(v,"(?=").concat(c,"))?")),$||(T+="(?=".concat(v,"|").concat(c,")"))}return new RegExp(T,gn(o))}function kn(e,a,o){return e instanceof RegExp?Ju(e,a):Array.isArray(e)?Xu(e,a,o):Qu(e,a,o)}new TextEncoder;var ra=class extends Response{static isConfigurableStatusCode(e){return e>=200&&e<=599}static isRedirectResponse(e){return ra.STATUS_CODES_WITH_REDIRECT.includes(e)}static isResponseWithBody(e){return!ra.STATUS_CODES_WITHOUT_BODY.includes(e)}static setUrl(e,a){e&&a.url==""&&Object.defineProperty(a,"url",{value:e,enumerable:!0,configurable:!0,writable:!1})}static parseRawHeaders(e){const a=new Headers;for(let o=0;o<e.length;o+=2)a.append(e[o],e[o+1]);return a}constructor(e,a={}){var o;const t=(o=a.status)!=null?o:200,n=ra.isConfigurableStatusCode(t)?t:200,r=ra.isResponseWithBody(t)?e:null;if(super(r,{...a,status:n}),t!==n){const i=Object.getOwnPropertySymbols(this).find(s=>s.description==="state");if(i){const s=Reflect.get(this,i);Reflect.set(s,"status",t)}else Object.defineProperty(this,"status",{value:t,enumerable:!0,configurable:!0,writable:!1})}ra.setUrl(a.url,this)}},Fo=ra;Fo.STATUS_CODES_WITHOUT_BODY=[101,103,204,205,304];Fo.STATUS_CODES_WITH_REDIRECT=[301,302,303,307,308];function yn(){if(typeof navigator<"u"&&navigator.product==="ReactNative")return!0;if(typeof process<"u"){const e=process.type;return e==="renderer"||e==="worker"?!1:!!(process.versions&&process.versions.node)}return!1}var ec=Object.defineProperty,ac=(e,a)=>{for(var o in a)ec(e,o,{get:a[o],enumerable:!0})},oc={};ac(oc,{blue:()=>nc,gray:()=>rc,green:()=>sc,red:()=>ic,yellow:()=>tc});function tc(e){return`\x1B[33m${e}\x1B[0m`}function nc(e){return`\x1B[34m${e}\x1B[0m`}function rc(e){return`\x1B[90m${e}\x1B[0m`}function ic(e){return`\x1B[31m${e}\x1B[0m`}function sc(e){return`\x1B[32m${e}\x1B[0m`}yn();function uc(e,a=!0){return[a&&e.origin,e.pathname].filter(Boolean).join("")}const cc=/[\?|#].*$/g;function lc(e){return new URL(`/${e}`,"http://localhost").searchParams}function bn(e){return e.endsWith("?")?e:e.replace(cc,"")}function mc(e){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(e)}function pc(e,a){if(mc(e)||e.startsWith("*"))return e;const o=a||typeof document<"u"&&document.baseURI;return o?decodeURI(new URL(encodeURI(e),o).href):e}function dc(e,a){if(e instanceof RegExp)return e;const o=pc(e,a);return bn(o)}function hc(e){return e.replace(/([:a-zA-Z_-]*)(\*{1,2})+/g,(a,o,t)=>{const n="(.*)";return o?o.startsWith(":")?`${o}${t}`:`${o}${n}`:n}).replace(/([^\/])(:)(?=\d+)/,"$1\\$2").replace(/^([^\/]+)(:)(?=\/\/)/,"$1\\$2")}function fc(e,a,o){const t=dc(a,o),n=typeof t=="string"?hc(t):t,r=uc(e),i=Yu(n,{decode:decodeURIComponent})(r),s=i&&i.params||{};return{matches:i!==!1,params:s}}function gc(e){if(typeof location>"u")return e.toString();const a=e instanceof URL?e:new URL(e);return a.origin===location.origin?a.pathname:a.origin+a.pathname}var kc=Object.create,jn=Object.defineProperty,yc=Object.getOwnPropertyDescriptor,vn=Object.getOwnPropertyNames,bc=Object.getPrototypeOf,jc=Object.prototype.hasOwnProperty,vc=(e,a)=>function(){return a||(0,e[vn(e)[0]])((a={exports:{}}).exports,a),a.exports},wc=(e,a,o,t)=>{if(a&&typeof a=="object"||typeof a=="function")for(let n of vn(a))!jc.call(e,n)&&n!==o&&jn(e,n,{get:()=>a[n],enumerable:!(t=yc(a,n))||t.enumerable});return e},xc=(e,a,o)=>(o=e!=null?kc(bc(e)):{},wc(jn(o,"default",{value:e,enumerable:!0}),e)),Cc=vc({"node_modules/cookie/index.js"(e){e.parse=s,e.serialize=d;var a=Object.prototype.toString,o=Object.prototype.hasOwnProperty,t=/^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/,n=/^("?)[\u0021\u0023-\u002B\u002D-\u003A\u003C-\u005B\u005D-\u007E]*\1$/,r=/^([.]?[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)([.][a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)*$/i,i=/^[\u0020-\u003A\u003D-\u007E]*$/;function s(f,c){if(typeof f!="string")throw new TypeError("argument str must be a string");var v={},T=f.length;if(T<2)return v;var P=c&&c.decode||m,_=0,b=0,y=0;do{if(b=f.indexOf("=",_),b===-1)break;if(y=f.indexOf(";",_),y===-1)y=T;else if(b>y){_=f.lastIndexOf(";",b-1)+1;continue}var w=u(f,_,b),z=p(f,b,w),L=f.slice(w,z);if(!o.call(v,L)){var $=u(f,b+1,y),H=p(f,y,$);f.charCodeAt($)===34&&f.charCodeAt(H-1)===34&&($++,H--);var U=f.slice($,H);v[L]=g(U,P)}_=y+1}while(_<T);return v}function u(f,c,v){do{var T=f.charCodeAt(c);if(T!==32&&T!==9)return c}while(++c<v);return v}function p(f,c,v){for(;c>v;){var T=f.charCodeAt(--c);if(T!==32&&T!==9)return c+1}return v}function d(f,c,v){var T=v&&v.encode||encodeURIComponent;if(typeof T!="function")throw new TypeError("option encode is invalid");if(!t.test(f))throw new TypeError("argument name is invalid");var P=T(c);if(!n.test(P))throw new TypeError("argument val is invalid");var _=f+"="+P;if(!v)return _;if(v.maxAge!=null){var b=Math.floor(v.maxAge);if(!isFinite(b))throw new TypeError("option maxAge is invalid");_+="; Max-Age="+b}if(v.domain){if(!r.test(v.domain))throw new TypeError("option domain is invalid");_+="; Domain="+v.domain}if(v.path){if(!i.test(v.path))throw new TypeError("option path is invalid");_+="; Path="+v.path}if(v.expires){var y=v.expires;if(!h(y)||isNaN(y.valueOf()))throw new TypeError("option expires is invalid");_+="; Expires="+y.toUTCString()}if(v.httpOnly&&(_+="; HttpOnly"),v.secure&&(_+="; Secure"),v.partitioned&&(_+="; Partitioned"),v.priority){var w=typeof v.priority=="string"?v.priority.toLowerCase():v.priority;switch(w){case"low":_+="; Priority=Low";break;case"medium":_+="; Priority=Medium";break;case"high":_+="; Priority=High";break;default:throw new TypeError("option priority is invalid")}}if(v.sameSite){var z=typeof v.sameSite=="string"?v.sameSite.toLowerCase():v.sameSite;switch(z){case!0:_+="; SameSite=Strict";break;case"lax":_+="; SameSite=Lax";break;case"strict":_+="; SameSite=Strict";break;case"none":_+="; SameSite=None";break;default:throw new TypeError("option sameSite is invalid")}}return _}function m(f){return f.indexOf("%")!==-1?decodeURIComponent(f):f}function h(f){return a.call(f)==="[object Date]"}function g(f,c){try{return c(f)}catch{return f}}}}),Ec=xc(Cc()),wn=Ec.default;/*! Bundled license information:
|
|
140
|
-
|
|
141
|
-
cookie/index.js:
|
|
142
|
-
(*!
|
|
143
|
-
* cookie
|
|
144
|
-
* Copyright(c) 2012-2014 Roman Shtylman
|
|
145
|
-
* Copyright(c) 2015 Douglas Christopher Wilson
|
|
146
|
-
* MIT Licensed
|
|
147
|
-
*)
|
|
148
|
-
*/function ta(e){throw new Error('Could not dynamically require "'+e+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var Sc=Object.create,xn=Object.defineProperty,zc=Object.getOwnPropertyDescriptor,Cn=Object.getOwnPropertyNames,Tc=Object.getPrototypeOf,Oc=Object.prototype.hasOwnProperty,_c=(e=>typeof ta<"u"?ta:typeof Proxy<"u"?new Proxy(e,{get:(a,o)=>(typeof ta<"u"?ta:a)[o]}):e)(function(e){if(typeof ta<"u")return ta.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')}),Ce=(e,a)=>function(){return a||(0,e[Cn(e)[0]])((a={exports:{}}).exports,a),a.exports},Ac=(e,a,o,t)=>{if(a&&typeof a=="object"||typeof a=="function")for(let n of Cn(a))!Oc.call(e,n)&&n!==o&&xn(e,n,{get:()=>a[n],enumerable:!(t=zc(a,n))||t.enumerable});return e},Rc=(e,a,o)=>(o=e!=null?Sc(Tc(e)):{},Ac(xn(o,"default",{value:e,enumerable:!0}),e)),En=Ce({"node_modules/punycode/punycode.js"(e,a){var o=2147483647,t=36,n=1,r=26,i=38,s=700,u=72,p=128,d="-",m=/^xn--/,h=/[^\0-\x7F]/,g=/[\x2E\u3002\uFF0E\uFF61]/g,f={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},c=t-n,v=Math.floor,T=String.fromCharCode;function P(C){throw new RangeError(f[C])}function _(C,N){const Z=[];let Q=C.length;for(;Q--;)Z[Q]=N(C[Q]);return Z}function b(C,N){const Z=C.split("@");let Q="";Z.length>1&&(Q=Z[0]+"@",C=Z[1]),C=C.replace(g,".");const re=C.split("."),R=_(re,N).join(".");return Q+R}function y(C){const N=[];let Z=0;const Q=C.length;for(;Z<Q;){const re=C.charCodeAt(Z++);if(re>=55296&&re<=56319&&Z<Q){const R=C.charCodeAt(Z++);(R&64512)==56320?N.push(((re&1023)<<10)+(R&1023)+65536):(N.push(re),Z--)}else N.push(re)}return N}var w=C=>String.fromCodePoint(...C),z=function(C){return C>=48&&C<58?26+(C-48):C>=65&&C<91?C-65:C>=97&&C<123?C-97:t},L=function(C,N){return C+22+75*(C<26)-((N!=0)<<5)},$=function(C,N,Z){let Q=0;for(C=Z?v(C/s):C>>1,C+=v(C/N);C>c*r>>1;Q+=t)C=v(C/c);return v(Q+(c+1)*C/(C+i))},H=function(C){const N=[],Z=C.length;let Q=0,re=p,R=u,x=C.lastIndexOf(d);x<0&&(x=0);for(let F=0;F<x;++F)C.charCodeAt(F)>=128&&P("not-basic"),N.push(C.charCodeAt(F));for(let F=x>0?x+1:0;F<Z;){const q=Q;for(let X=1,J=t;;J+=t){F>=Z&&P("invalid-input");const W=z(C.charCodeAt(F++));W>=t&&P("invalid-input"),W>v((o-Q)/X)&&P("overflow"),Q+=W*X;const G=J<=R?n:J>=R+r?r:J-R;if(W<G)break;const ae=t-G;X>v(o/ae)&&P("overflow"),X*=ae}const V=N.length+1;R=$(Q-q,V,q==0),v(Q/V)>o-re&&P("overflow"),re+=v(Q/V),Q%=V,N.splice(Q++,0,re)}return String.fromCodePoint(...N)},U=function(C){const N=[];C=y(C);const Z=C.length;let Q=p,re=0,R=u;for(const q of C)q<128&&N.push(T(q));const x=N.length;let F=x;for(x&&N.push(d);F<Z;){let q=o;for(const X of C)X>=Q&&X<q&&(q=X);const V=F+1;q-Q>v((o-re)/V)&&P("overflow"),re+=(q-Q)*V,Q=q;for(const X of C)if(X<Q&&++re>o&&P("overflow"),X===Q){let J=re;for(let W=t;;W+=t){const G=W<=R?n:W>=R+r?r:W-R;if(J<G)break;const ae=J-G,ee=t-G;N.push(T(L(G+ae%ee,0))),J=v(ae/ee)}N.push(T(L(J,0))),R=$(re,V,F===x),re=0,++F}++re,++Q}return N.join("")},l=function(C){return b(C,function(N){return m.test(N)?H(N.slice(4).toLowerCase()):N})},M=function(C){return b(C,function(N){return h.test(N)?"xn--"+U(N):N})},D={version:"2.3.1",ucs2:{decode:y,encode:w},decode:H,encode:U,toASCII:M,toUnicode:l};a.exports=D}}),Ic=Ce({"node_modules/requires-port/index.js"(e,a){a.exports=function(t,n){if(n=n.split(":")[0],t=+t,!t)return!1;switch(n){case"http":case"ws":return t!==80;case"https":case"wss":return t!==443;case"ftp":return t!==21;case"gopher":return t!==70;case"file":return!1}return t!==0}}}),Pc=Ce({"node_modules/querystringify/index.js"(e){var a=Object.prototype.hasOwnProperty,o;function t(s){try{return decodeURIComponent(s.replace(/\+/g," "))}catch{return null}}function n(s){try{return encodeURIComponent(s)}catch{return null}}function r(s){for(var u=/([^=?#&]+)=?([^&]*)/g,p={},d;d=u.exec(s);){var m=t(d[1]),h=t(d[2]);m===null||h===null||m in p||(p[m]=h)}return p}function i(s,u){u=u||"";var p=[],d,m;typeof u!="string"&&(u="?");for(m in s)if(a.call(s,m)){if(d=s[m],!d&&(d===null||d===o||isNaN(d))&&(d=""),m=n(m),d=n(d),m===null||d===null)continue;p.push(m+"="+d)}return p.length?u+p.join("&"):""}e.stringify=i,e.parse=r}}),$c=Ce({"node_modules/url-parse/index.js"(e,a){var o=Ic(),t=Pc(),n=/^[\x00-\x20\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]+/,r=/[\n\r\t]/g,i=/^[A-Za-z][A-Za-z0-9+-.]*:\/\//,s=/:\d+$/,u=/^([a-z][a-z0-9.+-]*:)?(\/\/)?([\\/]+)?([\S\s]*)/i,p=/^[a-zA-Z]:/;function d(b){return(b||"").toString().replace(n,"")}var m=[["#","hash"],["?","query"],function(y,w){return f(w.protocol)?y.replace(/\\/g,"/"):y},["/","pathname"],["@","auth",1],[NaN,"host",void 0,1,1],[/:(\d*)$/,"port",void 0,1],[NaN,"hostname",void 0,1,1]],h={hash:1,query:1};function g(b){var y;typeof window<"u"?y=window:typeof global<"u"?y=global:typeof self<"u"?y=self:y={};var w=y.location||{};b=b||w;var z={},L=typeof b,$;if(b.protocol==="blob:")z=new T(unescape(b.pathname),{});else if(L==="string"){z=new T(b,{});for($ in h)delete z[$]}else if(L==="object"){for($ in b)$ in h||(z[$]=b[$]);z.slashes===void 0&&(z.slashes=i.test(b.href))}return z}function f(b){return b==="file:"||b==="ftp:"||b==="http:"||b==="https:"||b==="ws:"||b==="wss:"}function c(b,y){b=d(b),b=b.replace(r,""),y=y||{};var w=u.exec(b),z=w[1]?w[1].toLowerCase():"",L=!!w[2],$=!!w[3],H=0,U;return L?$?(U=w[2]+w[3]+w[4],H=w[2].length+w[3].length):(U=w[2]+w[4],H=w[2].length):$?(U=w[3]+w[4],H=w[3].length):U=w[4],z==="file:"?H>=2&&(U=U.slice(2)):f(z)?U=w[4]:z?L&&(U=U.slice(2)):H>=2&&f(y.protocol)&&(U=w[4]),{protocol:z,slashes:L||f(z),slashesCount:H,rest:U}}function v(b,y){if(b==="")return y;for(var w=(y||"/").split("/").slice(0,-1).concat(b.split("/")),z=w.length,L=w[z-1],$=!1,H=0;z--;)w[z]==="."?w.splice(z,1):w[z]===".."?(w.splice(z,1),H++):H&&(z===0&&($=!0),w.splice(z,1),H--);return $&&w.unshift(""),(L==="."||L==="..")&&w.push(""),w.join("/")}function T(b,y,w){if(b=d(b),b=b.replace(r,""),!(this instanceof T))return new T(b,y,w);var z,L,$,H,U,l,M=m.slice(),D=typeof y,C=this,N=0;for(D!=="object"&&D!=="string"&&(w=y,y=null),w&&typeof w!="function"&&(w=t.parse),y=g(y),L=c(b||"",y),z=!L.protocol&&!L.slashes,C.slashes=L.slashes||z&&y.slashes,C.protocol=L.protocol||y.protocol||"",b=L.rest,(L.protocol==="file:"&&(L.slashesCount!==2||p.test(b))||!L.slashes&&(L.protocol||L.slashesCount<2||!f(C.protocol)))&&(M[3]=[/(.*)/,"pathname"]);N<M.length;N++){if(H=M[N],typeof H=="function"){b=H(b,C);continue}$=H[0],l=H[1],$!==$?C[l]=b:typeof $=="string"?(U=$==="@"?b.lastIndexOf($):b.indexOf($),~U&&(typeof H[2]=="number"?(C[l]=b.slice(0,U),b=b.slice(U+H[2])):(C[l]=b.slice(U),b=b.slice(0,U)))):(U=$.exec(b))&&(C[l]=U[1],b=b.slice(0,U.index)),C[l]=C[l]||z&&H[3]&&y[l]||"",H[4]&&(C[l]=C[l].toLowerCase())}w&&(C.query=w(C.query)),z&&y.slashes&&C.pathname.charAt(0)!=="/"&&(C.pathname!==""||y.pathname!=="")&&(C.pathname=v(C.pathname,y.pathname)),C.pathname.charAt(0)!=="/"&&f(C.protocol)&&(C.pathname="/"+C.pathname),o(C.port,C.protocol)||(C.host=C.hostname,C.port=""),C.username=C.password="",C.auth&&(U=C.auth.indexOf(":"),~U?(C.username=C.auth.slice(0,U),C.username=encodeURIComponent(decodeURIComponent(C.username)),C.password=C.auth.slice(U+1),C.password=encodeURIComponent(decodeURIComponent(C.password))):C.username=encodeURIComponent(decodeURIComponent(C.auth)),C.auth=C.password?C.username+":"+C.password:C.username),C.origin=C.protocol!=="file:"&&f(C.protocol)&&C.host?C.protocol+"//"+C.host:"null",C.href=C.toString()}function P(b,y,w){var z=this;switch(b){case"query":typeof y=="string"&&y.length&&(y=(w||t.parse)(y)),z[b]=y;break;case"port":z[b]=y,o(y,z.protocol)?y&&(z.host=z.hostname+":"+y):(z.host=z.hostname,z[b]="");break;case"hostname":z[b]=y,z.port&&(y+=":"+z.port),z.host=y;break;case"host":z[b]=y,s.test(y)?(y=y.split(":"),z.port=y.pop(),z.hostname=y.join(":")):(z.hostname=y,z.port="");break;case"protocol":z.protocol=y.toLowerCase(),z.slashes=!w;break;case"pathname":case"hash":if(y){var L=b==="pathname"?"/":"#";z[b]=y.charAt(0)!==L?L+y:y}else z[b]=y;break;case"username":case"password":z[b]=encodeURIComponent(y);break;case"auth":var $=y.indexOf(":");~$?(z.username=y.slice(0,$),z.username=encodeURIComponent(decodeURIComponent(z.username)),z.password=y.slice($+1),z.password=encodeURIComponent(decodeURIComponent(z.password))):z.username=encodeURIComponent(decodeURIComponent(y))}for(var H=0;H<m.length;H++){var U=m[H];U[4]&&(z[U[1]]=z[U[1]].toLowerCase())}return z.auth=z.password?z.username+":"+z.password:z.username,z.origin=z.protocol!=="file:"&&f(z.protocol)&&z.host?z.protocol+"//"+z.host:"null",z.href=z.toString(),z}function _(b){(!b||typeof b!="function")&&(b=t.stringify);var y,w=this,z=w.host,L=w.protocol;L&&L.charAt(L.length-1)!==":"&&(L+=":");var $=L+(w.protocol&&w.slashes||f(w.protocol)?"//":"");return w.username?($+=w.username,w.password&&($+=":"+w.password),$+="@"):w.password?($+=":"+w.password,$+="@"):w.protocol!=="file:"&&f(w.protocol)&&!z&&w.pathname!=="/"&&($+="@"),(z[z.length-1]===":"||s.test(w.hostname)&&!w.port)&&(z+=":"),$+=z+w.pathname,y=typeof w.query=="object"?b(w.query):w.query,y&&($+=y.charAt(0)!=="?"?"?"+y:y),w.hash&&($+=w.hash),$}T.prototype={set:P,toString:_},T.extractProtocol=c,T.location=g,T.trimLeft=d,T.qs=t,a.exports=T}}),Dc=Ce({"node_modules/psl/data/rules.json"(e,a){a.exports=["ac","com.ac","edu.ac","gov.ac","net.ac","mil.ac","org.ac","ad","nom.ad","ae","co.ae","net.ae","org.ae","sch.ae","ac.ae","gov.ae","mil.ae","aero","accident-investigation.aero","accident-prevention.aero","aerobatic.aero","aeroclub.aero","aerodrome.aero","agents.aero","aircraft.aero","airline.aero","airport.aero","air-surveillance.aero","airtraffic.aero","air-traffic-control.aero","ambulance.aero","amusement.aero","association.aero","author.aero","ballooning.aero","broker.aero","caa.aero","cargo.aero","catering.aero","certification.aero","championship.aero","charter.aero","civilaviation.aero","club.aero","conference.aero","consultant.aero","consulting.aero","control.aero","council.aero","crew.aero","design.aero","dgca.aero","educator.aero","emergency.aero","engine.aero","engineer.aero","entertainment.aero","equipment.aero","exchange.aero","express.aero","federation.aero","flight.aero","fuel.aero","gliding.aero","government.aero","groundhandling.aero","group.aero","hanggliding.aero","homebuilt.aero","insurance.aero","journal.aero","journalist.aero","leasing.aero","logistics.aero","magazine.aero","maintenance.aero","media.aero","microlight.aero","modelling.aero","navigation.aero","parachuting.aero","paragliding.aero","passenger-association.aero","pilot.aero","press.aero","production.aero","recreation.aero","repbody.aero","res.aero","research.aero","rotorcraft.aero","safety.aero","scientist.aero","services.aero","show.aero","skydiving.aero","software.aero","student.aero","trader.aero","trading.aero","trainer.aero","union.aero","workinggroup.aero","works.aero","af","gov.af","com.af","org.af","net.af","edu.af","ag","com.ag","org.ag","net.ag","co.ag","nom.ag","ai","off.ai","com.ai","net.ai","org.ai","al","com.al","edu.al","gov.al","mil.al","net.al","org.al","am","co.am","com.am","commune.am","net.am","org.am","ao","ed.ao","gv.ao","og.ao","co.ao","pb.ao","it.ao","aq","ar","bet.ar","com.ar","coop.ar","edu.ar","gob.ar","gov.ar","int.ar","mil.ar","musica.ar","mutual.ar","net.ar","org.ar","senasa.ar","tur.ar","arpa","e164.arpa","in-addr.arpa","ip6.arpa","iris.arpa","uri.arpa","urn.arpa","as","gov.as","asia","at","ac.at","co.at","gv.at","or.at","sth.ac.at","au","com.au","net.au","org.au","edu.au","gov.au","asn.au","id.au","info.au","conf.au","oz.au","act.au","nsw.au","nt.au","qld.au","sa.au","tas.au","vic.au","wa.au","act.edu.au","catholic.edu.au","nsw.edu.au","nt.edu.au","qld.edu.au","sa.edu.au","tas.edu.au","vic.edu.au","wa.edu.au","qld.gov.au","sa.gov.au","tas.gov.au","vic.gov.au","wa.gov.au","schools.nsw.edu.au","aw","com.aw","ax","az","com.az","net.az","int.az","gov.az","org.az","edu.az","info.az","pp.az","mil.az","name.az","pro.az","biz.az","ba","com.ba","edu.ba","gov.ba","mil.ba","net.ba","org.ba","bb","biz.bb","co.bb","com.bb","edu.bb","gov.bb","info.bb","net.bb","org.bb","store.bb","tv.bb","*.bd","be","ac.be","bf","gov.bf","bg","a.bg","b.bg","c.bg","d.bg","e.bg","f.bg","g.bg","h.bg","i.bg","j.bg","k.bg","l.bg","m.bg","n.bg","o.bg","p.bg","q.bg","r.bg","s.bg","t.bg","u.bg","v.bg","w.bg","x.bg","y.bg","z.bg","0.bg","1.bg","2.bg","3.bg","4.bg","5.bg","6.bg","7.bg","8.bg","9.bg","bh","com.bh","edu.bh","net.bh","org.bh","gov.bh","bi","co.bi","com.bi","edu.bi","or.bi","org.bi","biz","bj","asso.bj","barreau.bj","gouv.bj","bm","com.bm","edu.bm","gov.bm","net.bm","org.bm","bn","com.bn","edu.bn","gov.bn","net.bn","org.bn","bo","com.bo","edu.bo","gob.bo","int.bo","org.bo","net.bo","mil.bo","tv.bo","web.bo","academia.bo","agro.bo","arte.bo","blog.bo","bolivia.bo","ciencia.bo","cooperativa.bo","democracia.bo","deporte.bo","ecologia.bo","economia.bo","empresa.bo","indigena.bo","industria.bo","info.bo","medicina.bo","movimiento.bo","musica.bo","natural.bo","nombre.bo","noticias.bo","patria.bo","politica.bo","profesional.bo","plurinacional.bo","pueblo.bo","revista.bo","salud.bo","tecnologia.bo","tksat.bo","transporte.bo","wiki.bo","br","9guacu.br","abc.br","adm.br","adv.br","agr.br","aju.br","am.br","anani.br","aparecida.br","app.br","arq.br","art.br","ato.br","b.br","barueri.br","belem.br","bhz.br","bib.br","bio.br","blog.br","bmd.br","boavista.br","bsb.br","campinagrande.br","campinas.br","caxias.br","cim.br","cng.br","cnt.br","com.br","contagem.br","coop.br","coz.br","cri.br","cuiaba.br","curitiba.br","def.br","des.br","det.br","dev.br","ecn.br","eco.br","edu.br","emp.br","enf.br","eng.br","esp.br","etc.br","eti.br","far.br","feira.br","flog.br","floripa.br","fm.br","fnd.br","fortal.br","fot.br","foz.br","fst.br","g12.br","geo.br","ggf.br","goiania.br","gov.br","ac.gov.br","al.gov.br","am.gov.br","ap.gov.br","ba.gov.br","ce.gov.br","df.gov.br","es.gov.br","go.gov.br","ma.gov.br","mg.gov.br","ms.gov.br","mt.gov.br","pa.gov.br","pb.gov.br","pe.gov.br","pi.gov.br","pr.gov.br","rj.gov.br","rn.gov.br","ro.gov.br","rr.gov.br","rs.gov.br","sc.gov.br","se.gov.br","sp.gov.br","to.gov.br","gru.br","imb.br","ind.br","inf.br","jab.br","jampa.br","jdf.br","joinville.br","jor.br","jus.br","leg.br","lel.br","log.br","londrina.br","macapa.br","maceio.br","manaus.br","maringa.br","mat.br","med.br","mil.br","morena.br","mp.br","mus.br","natal.br","net.br","niteroi.br","*.nom.br","not.br","ntr.br","odo.br","ong.br","org.br","osasco.br","palmas.br","poa.br","ppg.br","pro.br","psc.br","psi.br","pvh.br","qsl.br","radio.br","rec.br","recife.br","rep.br","ribeirao.br","rio.br","riobranco.br","riopreto.br","salvador.br","sampa.br","santamaria.br","santoandre.br","saobernardo.br","saogonca.br","seg.br","sjc.br","slg.br","slz.br","sorocaba.br","srv.br","taxi.br","tc.br","tec.br","teo.br","the.br","tmp.br","trd.br","tur.br","tv.br","udi.br","vet.br","vix.br","vlog.br","wiki.br","zlg.br","bs","com.bs","net.bs","org.bs","edu.bs","gov.bs","bt","com.bt","edu.bt","gov.bt","net.bt","org.bt","bv","bw","co.bw","org.bw","by","gov.by","mil.by","com.by","of.by","bz","com.bz","net.bz","org.bz","edu.bz","gov.bz","ca","ab.ca","bc.ca","mb.ca","nb.ca","nf.ca","nl.ca","ns.ca","nt.ca","nu.ca","on.ca","pe.ca","qc.ca","sk.ca","yk.ca","gc.ca","cat","cc","cd","gov.cd","cf","cg","ch","ci","org.ci","or.ci","com.ci","co.ci","edu.ci","ed.ci","ac.ci","net.ci","go.ci","asso.ci","aéroport.ci","int.ci","presse.ci","md.ci","gouv.ci","*.ck","!www.ck","cl","co.cl","gob.cl","gov.cl","mil.cl","cm","co.cm","com.cm","gov.cm","net.cm","cn","ac.cn","com.cn","edu.cn","gov.cn","net.cn","org.cn","mil.cn","公司.cn","网络.cn","網絡.cn","ah.cn","bj.cn","cq.cn","fj.cn","gd.cn","gs.cn","gz.cn","gx.cn","ha.cn","hb.cn","he.cn","hi.cn","hl.cn","hn.cn","jl.cn","js.cn","jx.cn","ln.cn","nm.cn","nx.cn","qh.cn","sc.cn","sd.cn","sh.cn","sn.cn","sx.cn","tj.cn","xj.cn","xz.cn","yn.cn","zj.cn","hk.cn","mo.cn","tw.cn","co","arts.co","com.co","edu.co","firm.co","gov.co","info.co","int.co","mil.co","net.co","nom.co","org.co","rec.co","web.co","com","coop","cr","ac.cr","co.cr","ed.cr","fi.cr","go.cr","or.cr","sa.cr","cu","com.cu","edu.cu","org.cu","net.cu","gov.cu","inf.cu","cv","com.cv","edu.cv","int.cv","nome.cv","org.cv","cw","com.cw","edu.cw","net.cw","org.cw","cx","gov.cx","cy","ac.cy","biz.cy","com.cy","ekloges.cy","gov.cy","ltd.cy","mil.cy","net.cy","org.cy","press.cy","pro.cy","tm.cy","cz","de","dj","dk","dm","com.dm","net.dm","org.dm","edu.dm","gov.dm","do","art.do","com.do","edu.do","gob.do","gov.do","mil.do","net.do","org.do","sld.do","web.do","dz","art.dz","asso.dz","com.dz","edu.dz","gov.dz","org.dz","net.dz","pol.dz","soc.dz","tm.dz","ec","com.ec","info.ec","net.ec","fin.ec","k12.ec","med.ec","pro.ec","org.ec","edu.ec","gov.ec","gob.ec","mil.ec","edu","ee","edu.ee","gov.ee","riik.ee","lib.ee","med.ee","com.ee","pri.ee","aip.ee","org.ee","fie.ee","eg","com.eg","edu.eg","eun.eg","gov.eg","mil.eg","name.eg","net.eg","org.eg","sci.eg","*.er","es","com.es","nom.es","org.es","gob.es","edu.es","et","com.et","gov.et","org.et","edu.et","biz.et","name.et","info.et","net.et","eu","fi","aland.fi","fj","ac.fj","biz.fj","com.fj","gov.fj","info.fj","mil.fj","name.fj","net.fj","org.fj","pro.fj","*.fk","com.fm","edu.fm","net.fm","org.fm","fm","fo","fr","asso.fr","com.fr","gouv.fr","nom.fr","prd.fr","tm.fr","aeroport.fr","avocat.fr","avoues.fr","cci.fr","chambagri.fr","chirurgiens-dentistes.fr","experts-comptables.fr","geometre-expert.fr","greta.fr","huissier-justice.fr","medecin.fr","notaires.fr","pharmacien.fr","port.fr","veterinaire.fr","ga","gb","edu.gd","gov.gd","gd","ge","com.ge","edu.ge","gov.ge","org.ge","mil.ge","net.ge","pvt.ge","gf","gg","co.gg","net.gg","org.gg","gh","com.gh","edu.gh","gov.gh","org.gh","mil.gh","gi","com.gi","ltd.gi","gov.gi","mod.gi","edu.gi","org.gi","gl","co.gl","com.gl","edu.gl","net.gl","org.gl","gm","gn","ac.gn","com.gn","edu.gn","gov.gn","org.gn","net.gn","gov","gp","com.gp","net.gp","mobi.gp","edu.gp","org.gp","asso.gp","gq","gr","com.gr","edu.gr","net.gr","org.gr","gov.gr","gs","gt","com.gt","edu.gt","gob.gt","ind.gt","mil.gt","net.gt","org.gt","gu","com.gu","edu.gu","gov.gu","guam.gu","info.gu","net.gu","org.gu","web.gu","gw","gy","co.gy","com.gy","edu.gy","gov.gy","net.gy","org.gy","hk","com.hk","edu.hk","gov.hk","idv.hk","net.hk","org.hk","公司.hk","教育.hk","敎育.hk","政府.hk","個人.hk","个��.hk","箇人.hk","網络.hk","网络.hk","组織.hk","網絡.hk","网絡.hk","组织.hk","組織.hk","組织.hk","hm","hn","com.hn","edu.hn","org.hn","net.hn","mil.hn","gob.hn","hr","iz.hr","from.hr","name.hr","com.hr","ht","com.ht","shop.ht","firm.ht","info.ht","adult.ht","net.ht","pro.ht","org.ht","med.ht","art.ht","coop.ht","pol.ht","asso.ht","edu.ht","rel.ht","gouv.ht","perso.ht","hu","co.hu","info.hu","org.hu","priv.hu","sport.hu","tm.hu","2000.hu","agrar.hu","bolt.hu","casino.hu","city.hu","erotica.hu","erotika.hu","film.hu","forum.hu","games.hu","hotel.hu","ingatlan.hu","jogasz.hu","konyvelo.hu","lakas.hu","media.hu","news.hu","reklam.hu","sex.hu","shop.hu","suli.hu","szex.hu","tozsde.hu","utazas.hu","video.hu","id","ac.id","biz.id","co.id","desa.id","go.id","mil.id","my.id","net.id","or.id","ponpes.id","sch.id","web.id","ie","gov.ie","il","ac.il","co.il","gov.il","idf.il","k12.il","muni.il","net.il","org.il","im","ac.im","co.im","com.im","ltd.co.im","net.im","org.im","plc.co.im","tt.im","tv.im","in","co.in","firm.in","net.in","org.in","gen.in","ind.in","nic.in","ac.in","edu.in","res.in","gov.in","mil.in","info","int","eu.int","io","com.io","iq","gov.iq","edu.iq","mil.iq","com.iq","org.iq","net.iq","ir","ac.ir","co.ir","gov.ir","id.ir","net.ir","org.ir","sch.ir","ایران.ir","ايران.ir","is","net.is","com.is","edu.is","gov.is","org.is","int.is","it","gov.it","edu.it","abr.it","abruzzo.it","aosta-valley.it","aostavalley.it","bas.it","basilicata.it","cal.it","calabria.it","cam.it","campania.it","emilia-romagna.it","emiliaromagna.it","emr.it","friuli-v-giulia.it","friuli-ve-giulia.it","friuli-vegiulia.it","friuli-venezia-giulia.it","friuli-veneziagiulia.it","friuli-vgiulia.it","friuliv-giulia.it","friulive-giulia.it","friulivegiulia.it","friulivenezia-giulia.it","friuliveneziagiulia.it","friulivgiulia.it","fvg.it","laz.it","lazio.it","lig.it","liguria.it","lom.it","lombardia.it","lombardy.it","lucania.it","mar.it","marche.it","mol.it","molise.it","piedmont.it","piemonte.it","pmn.it","pug.it","puglia.it","sar.it","sardegna.it","sardinia.it","sic.it","sicilia.it","sicily.it","taa.it","tos.it","toscana.it","trentin-sud-tirol.it","trentin-süd-tirol.it","trentin-sudtirol.it","trentin-südtirol.it","trentin-sued-tirol.it","trentin-suedtirol.it","trentino-a-adige.it","trentino-aadige.it","trentino-alto-adige.it","trentino-altoadige.it","trentino-s-tirol.it","trentino-stirol.it","trentino-sud-tirol.it","trentino-süd-tirol.it","trentino-sudtirol.it","trentino-südtirol.it","trentino-sued-tirol.it","trentino-suedtirol.it","trentino.it","trentinoa-adige.it","trentinoaadige.it","trentinoalto-adige.it","trentinoaltoadige.it","trentinos-tirol.it","trentinostirol.it","trentinosud-tirol.it","trentinosüd-tirol.it","trentinosudtirol.it","trentinosüdtirol.it","trentinosued-tirol.it","trentinosuedtirol.it","trentinsud-tirol.it","trentinsüd-tirol.it","trentinsudtirol.it","trentinsüdtirol.it","trentinsued-tirol.it","trentinsuedtirol.it","tuscany.it","umb.it","umbria.it","val-d-aosta.it","val-daosta.it","vald-aosta.it","valdaosta.it","valle-aosta.it","valle-d-aosta.it","valle-daosta.it","valleaosta.it","valled-aosta.it","valledaosta.it","vallee-aoste.it","vallée-aoste.it","vallee-d-aoste.it","vallée-d-aoste.it","valleeaoste.it","valléeaoste.it","valleedaoste.it","valléedaoste.it","vao.it","vda.it","ven.it","veneto.it","ag.it","agrigento.it","al.it","alessandria.it","alto-adige.it","altoadige.it","an.it","ancona.it","andria-barletta-trani.it","andria-trani-barletta.it","andriabarlettatrani.it","andriatranibarletta.it","ao.it","aosta.it","aoste.it","ap.it","aq.it","aquila.it","ar.it","arezzo.it","ascoli-piceno.it","ascolipiceno.it","asti.it","at.it","av.it","avellino.it","ba.it","balsan-sudtirol.it","balsan-südtirol.it","balsan-suedtirol.it","balsan.it","bari.it","barletta-trani-andria.it","barlettatraniandria.it","belluno.it","benevento.it","bergamo.it","bg.it","bi.it","biella.it","bl.it","bn.it","bo.it","bologna.it","bolzano-altoadige.it","bolzano.it","bozen-sudtirol.it","bozen-südtirol.it","bozen-suedtirol.it","bozen.it","br.it","brescia.it","brindisi.it","bs.it","bt.it","bulsan-sudtirol.it","bulsan-südtirol.it","bulsan-suedtirol.it","bulsan.it","bz.it","ca.it","cagliari.it","caltanissetta.it","campidano-medio.it","campidanomedio.it","campobasso.it","carbonia-iglesias.it","carboniaiglesias.it","carrara-massa.it","carraramassa.it","caserta.it","catania.it","catanzaro.it","cb.it","ce.it","cesena-forli.it","cesena-forlì.it","cesenaforli.it","cesenaforlì.it","ch.it","chieti.it","ci.it","cl.it","cn.it","co.it","como.it","cosenza.it","cr.it","cremona.it","crotone.it","cs.it","ct.it","cuneo.it","cz.it","dell-ogliastra.it","dellogliastra.it","en.it","enna.it","fc.it","fe.it","fermo.it","ferrara.it","fg.it","fi.it","firenze.it","florence.it","fm.it","foggia.it","forli-cesena.it","forlì-cesena.it","forlicesena.it","forlìcesena.it","fr.it","frosinone.it","ge.it","genoa.it","genova.it","go.it","gorizia.it","gr.it","grosseto.it","iglesias-carbonia.it","iglesiascarbonia.it","im.it","imperia.it","is.it","isernia.it","kr.it","la-spezia.it","laquila.it","laspezia.it","latina.it","lc.it","le.it","lecce.it","lecco.it","li.it","livorno.it","lo.it","lodi.it","lt.it","lu.it","lucca.it","macerata.it","mantova.it","massa-carrara.it","massacarrara.it","matera.it","mb.it","mc.it","me.it","medio-campidano.it","mediocampidano.it","messina.it","mi.it","milan.it","milano.it","mn.it","mo.it","modena.it","monza-brianza.it","monza-e-della-brianza.it","monza.it","monzabrianza.it","monzaebrianza.it","monzaedellabrianza.it","ms.it","mt.it","na.it","naples.it","napoli.it","no.it","novara.it","nu.it","nuoro.it","og.it","ogliastra.it","olbia-tempio.it","olbiatempio.it","or.it","oristano.it","ot.it","pa.it","padova.it","padua.it","palermo.it","parma.it","pavia.it","pc.it","pd.it","pe.it","perugia.it","pesaro-urbino.it","pesarourbino.it","pescara.it","pg.it","pi.it","piacenza.it","pisa.it","pistoia.it","pn.it","po.it","pordenone.it","potenza.it","pr.it","prato.it","pt.it","pu.it","pv.it","pz.it","ra.it","ragusa.it","ravenna.it","rc.it","re.it","reggio-calabria.it","reggio-emilia.it","reggiocalabria.it","reggioemilia.it","rg.it","ri.it","rieti.it","rimini.it","rm.it","rn.it","ro.it","roma.it","rome.it","rovigo.it","sa.it","salerno.it","sassari.it","savona.it","si.it","siena.it","siracusa.it","so.it","sondrio.it","sp.it","sr.it","ss.it","suedtirol.it","südtirol.it","sv.it","ta.it","taranto.it","te.it","tempio-olbia.it","tempioolbia.it","teramo.it","terni.it","tn.it","to.it","torino.it","tp.it","tr.it","trani-andria-barletta.it","trani-barletta-andria.it","traniandriabarletta.it","tranibarlettaandria.it","trapani.it","trento.it","treviso.it","trieste.it","ts.it","turin.it","tv.it","ud.it","udine.it","urbino-pesaro.it","urbinopesaro.it","va.it","varese.it","vb.it","vc.it","ve.it","venezia.it","venice.it","verbania.it","vercelli.it","verona.it","vi.it","vibo-valentia.it","vibovalentia.it","vicenza.it","viterbo.it","vr.it","vs.it","vt.it","vv.it","je","co.je","net.je","org.je","*.jm","jo","com.jo","org.jo","net.jo","edu.jo","sch.jo","gov.jo","mil.jo","name.jo","jobs","jp","ac.jp","ad.jp","co.jp","ed.jp","go.jp","gr.jp","lg.jp","ne.jp","or.jp","aichi.jp","akita.jp","aomori.jp","chiba.jp","ehime.jp","fukui.jp","fukuoka.jp","fukushima.jp","gifu.jp","gunma.jp","hiroshima.jp","hokkaido.jp","hyogo.jp","ibaraki.jp","ishikawa.jp","iwate.jp","kagawa.jp","kagoshima.jp","kanagawa.jp","kochi.jp","kumamoto.jp","kyoto.jp","mie.jp","miyagi.jp","miyazaki.jp","nagano.jp","nagasaki.jp","nara.jp","niigata.jp","oita.jp","okayama.jp","okinawa.jp","osaka.jp","saga.jp","saitama.jp","shiga.jp","shimane.jp","shizuoka.jp","tochigi.jp","tokushima.jp","tokyo.jp","tottori.jp","toyama.jp","wakayama.jp","yamagata.jp","yamaguchi.jp","yamanashi.jp","栃木.jp","愛知.jp","愛媛.jp","兵庫.jp","熊本.jp","茨城.jp","北海道.jp","千葉.jp","和歌山.jp","長崎.jp","長野.jp","新潟.jp","青森.jp","静岡.jp","東京.jp","石川.jp","埼玉.jp","三重.jp","京都.jp","佐賀.jp","大分.jp","大阪.jp","奈良.jp","宮城.jp","宮崎.jp","富山.jp","山口.jp","山形.jp","山梨.jp","岩手.jp","岐阜.jp","岡山.jp","島根.jp","広島.jp","徳島.jp","沖縄.jp","滋賀.jp","神奈川.jp","福井.jp","福岡.jp","福島.jp","秋田.jp","群馬.jp","香川.jp","高知.jp","鳥取.jp","鹿児島.jp","*.kawasaki.jp","*.kitakyushu.jp","*.kobe.jp","*.nagoya.jp","*.sapporo.jp","*.sendai.jp","*.yokohama.jp","!city.kawasaki.jp","!city.kitakyushu.jp","!city.kobe.jp","!city.nagoya.jp","!city.sapporo.jp","!city.sendai.jp","!city.yokohama.jp","aisai.aichi.jp","ama.aichi.jp","anjo.aichi.jp","asuke.aichi.jp","chiryu.aichi.jp","chita.aichi.jp","fuso.aichi.jp","gamagori.aichi.jp","handa.aichi.jp","hazu.aichi.jp","hekinan.aichi.jp","higashiura.aichi.jp","ichinomiya.aichi.jp","inazawa.aichi.jp","inuyama.aichi.jp","isshiki.aichi.jp","iwakura.aichi.jp","kanie.aichi.jp","kariya.aichi.jp","kasugai.aichi.jp","kira.aichi.jp","kiyosu.aichi.jp","komaki.aichi.jp","konan.aichi.jp","kota.aichi.jp","mihama.aichi.jp","miyoshi.aichi.jp","nishio.aichi.jp","nisshin.aichi.jp","obu.aichi.jp","oguchi.aichi.jp","oharu.aichi.jp","okazaki.aichi.jp","owariasahi.aichi.jp","seto.aichi.jp","shikatsu.aichi.jp","shinshiro.aichi.jp","shitara.aichi.jp","tahara.aichi.jp","takahama.aichi.jp","tobishima.aichi.jp","toei.aichi.jp","togo.aichi.jp","tokai.aichi.jp","tokoname.aichi.jp","toyoake.aichi.jp","toyohashi.aichi.jp","toyokawa.aichi.jp","toyone.aichi.jp","toyota.aichi.jp","tsushima.aichi.jp","yatomi.aichi.jp","akita.akita.jp","daisen.akita.jp","fujisato.akita.jp","gojome.akita.jp","hachirogata.akita.jp","happou.akita.jp","higashinaruse.akita.jp","honjo.akita.jp","honjyo.akita.jp","ikawa.akita.jp","kamikoani.akita.jp","kamioka.akita.jp","katagami.akita.jp","kazuno.akita.jp","kitaakita.akita.jp","kosaka.akita.jp","kyowa.akita.jp","misato.akita.jp","mitane.akita.jp","moriyoshi.akita.jp","nikaho.akita.jp","noshiro.akita.jp","odate.akita.jp","oga.akita.jp","ogata.akita.jp","semboku.akita.jp","yokote.akita.jp","yurihonjo.akita.jp","aomori.aomori.jp","gonohe.aomori.jp","hachinohe.aomori.jp","hashikami.aomori.jp","hiranai.aomori.jp","hirosaki.aomori.jp","itayanagi.aomori.jp","kuroishi.aomori.jp","misawa.aomori.jp","mutsu.aomori.jp","nakadomari.aomori.jp","noheji.aomori.jp","oirase.aomori.jp","owani.aomori.jp","rokunohe.aomori.jp","sannohe.aomori.jp","shichinohe.aomori.jp","shingo.aomori.jp","takko.aomori.jp","towada.aomori.jp","tsugaru.aomori.jp","tsuruta.aomori.jp","abiko.chiba.jp","asahi.chiba.jp","chonan.chiba.jp","chosei.chiba.jp","choshi.chiba.jp","chuo.chiba.jp","funabashi.chiba.jp","futtsu.chiba.jp","hanamigawa.chiba.jp","ichihara.chiba.jp","ichikawa.chiba.jp","ichinomiya.chiba.jp","inzai.chiba.jp","isumi.chiba.jp","kamagaya.chiba.jp","kamogawa.chiba.jp","kashiwa.chiba.jp","katori.chiba.jp","katsuura.chiba.jp","kimitsu.chiba.jp","kisarazu.chiba.jp","kozaki.chiba.jp","kujukuri.chiba.jp","kyonan.chiba.jp","matsudo.chiba.jp","midori.chiba.jp","mihama.chiba.jp","minamiboso.chiba.jp","mobara.chiba.jp","mutsuzawa.chiba.jp","nagara.chiba.jp","nagareyama.chiba.jp","narashino.chiba.jp","narita.chiba.jp","noda.chiba.jp","oamishirasato.chiba.jp","omigawa.chiba.jp","onjuku.chiba.jp","otaki.chiba.jp","sakae.chiba.jp","sakura.chiba.jp","shimofusa.chiba.jp","shirako.chiba.jp","shiroi.chiba.jp","shisui.chiba.jp","sodegaura.chiba.jp","sosa.chiba.jp","tako.chiba.jp","tateyama.chiba.jp","togane.chiba.jp","tohnosho.chiba.jp","tomisato.chiba.jp","urayasu.chiba.jp","yachimata.chiba.jp","yachiyo.chiba.jp","yokaichiba.chiba.jp","yokoshibahikari.chiba.jp","yotsukaido.chiba.jp","ainan.ehime.jp","honai.ehime.jp","ikata.ehime.jp","imabari.ehime.jp","iyo.ehime.jp","kamijima.ehime.jp","kihoku.ehime.jp","kumakogen.ehime.jp","masaki.ehime.jp","matsuno.ehime.jp","matsuyama.ehime.jp","namikata.ehime.jp","niihama.ehime.jp","ozu.ehime.jp","saijo.ehime.jp","seiyo.ehime.jp","shikokuchuo.ehime.jp","tobe.ehime.jp","toon.ehime.jp","uchiko.ehime.jp","uwajima.ehime.jp","yawatahama.ehime.jp","echizen.fukui.jp","eiheiji.fukui.jp","fukui.fukui.jp","ikeda.fukui.jp","katsuyama.fukui.jp","mihama.fukui.jp","minamiechizen.fukui.jp","obama.fukui.jp","ohi.fukui.jp","ono.fukui.jp","sabae.fukui.jp","sakai.fukui.jp","takahama.fukui.jp","tsuruga.fukui.jp","wakasa.fukui.jp","ashiya.fukuoka.jp","buzen.fukuoka.jp","chikugo.fukuoka.jp","chikuho.fukuoka.jp","chikujo.fukuoka.jp","chikushino.fukuoka.jp","chikuzen.fukuoka.jp","chuo.fukuoka.jp","dazaifu.fukuoka.jp","fukuchi.fukuoka.jp","hakata.fukuoka.jp","higashi.fukuoka.jp","hirokawa.fukuoka.jp","hisayama.fukuoka.jp","iizuka.fukuoka.jp","inatsuki.fukuoka.jp","kaho.fukuoka.jp","kasuga.fukuoka.jp","kasuya.fukuoka.jp","kawara.fukuoka.jp","keisen.fukuoka.jp","koga.fukuoka.jp","kurate.fukuoka.jp","kurogi.fukuoka.jp","kurume.fukuoka.jp","minami.fukuoka.jp","miyako.fukuoka.jp","miyama.fukuoka.jp","miyawaka.fukuoka.jp","mizumaki.fukuoka.jp","munakata.fukuoka.jp","nakagawa.fukuoka.jp","nakama.fukuoka.jp","nishi.fukuoka.jp","nogata.fukuoka.jp","ogori.fukuoka.jp","okagaki.fukuoka.jp","okawa.fukuoka.jp","oki.fukuoka.jp","omuta.fukuoka.jp","onga.fukuoka.jp","onojo.fukuoka.jp","oto.fukuoka.jp","saigawa.fukuoka.jp","sasaguri.fukuoka.jp","shingu.fukuoka.jp","shinyoshitomi.fukuoka.jp","shonai.fukuoka.jp","soeda.fukuoka.jp","sue.fukuoka.jp","tachiarai.fukuoka.jp","tagawa.fukuoka.jp","takata.fukuoka.jp","toho.fukuoka.jp","toyotsu.fukuoka.jp","tsuiki.fukuoka.jp","ukiha.fukuoka.jp","umi.fukuoka.jp","usui.fukuoka.jp","yamada.fukuoka.jp","yame.fukuoka.jp","yanagawa.fukuoka.jp","yukuhashi.fukuoka.jp","aizubange.fukushima.jp","aizumisato.fukushima.jp","aizuwakamatsu.fukushima.jp","asakawa.fukushima.jp","bandai.fukushima.jp","date.fukushima.jp","fukushima.fukushima.jp","furudono.fukushima.jp","futaba.fukushima.jp","hanawa.fukushima.jp","higashi.fukushima.jp","hirata.fukushima.jp","hirono.fukushima.jp","iitate.fukushima.jp","inawashiro.fukushima.jp","ishikawa.fukushima.jp","iwaki.fukushima.jp","izumizaki.fukushima.jp","kagamiishi.fukushima.jp","kaneyama.fukushima.jp","kawamata.fukushima.jp","kitakata.fukushima.jp","kitashiobara.fukushima.jp","koori.fukushima.jp","koriyama.fukushima.jp","kunimi.fukushima.jp","miharu.fukushima.jp","mishima.fukushima.jp","namie.fukushima.jp","nango.fukushima.jp","nishiaizu.fukushima.jp","nishigo.fukushima.jp","okuma.fukushima.jp","omotego.fukushima.jp","ono.fukushima.jp","otama.fukushima.jp","samegawa.fukushima.jp","shimogo.fukushima.jp","shirakawa.fukushima.jp","showa.fukushima.jp","soma.fukushima.jp","sukagawa.fukushima.jp","taishin.fukushima.jp","tamakawa.fukushima.jp","tanagura.fukushima.jp","tenei.fukushima.jp","yabuki.fukushima.jp","yamato.fukushima.jp","yamatsuri.fukushima.jp","yanaizu.fukushima.jp","yugawa.fukushima.jp","anpachi.gifu.jp","ena.gifu.jp","gifu.gifu.jp","ginan.gifu.jp","godo.gifu.jp","gujo.gifu.jp","hashima.gifu.jp","hichiso.gifu.jp","hida.gifu.jp","higashishirakawa.gifu.jp","ibigawa.gifu.jp","ikeda.gifu.jp","kakamigahara.gifu.jp","kani.gifu.jp","kasahara.gifu.jp","kasamatsu.gifu.jp","kawaue.gifu.jp","kitagata.gifu.jp","mino.gifu.jp","minokamo.gifu.jp","mitake.gifu.jp","mizunami.gifu.jp","motosu.gifu.jp","nakatsugawa.gifu.jp","ogaki.gifu.jp","sakahogi.gifu.jp","seki.gifu.jp","sekigahara.gifu.jp","shirakawa.gifu.jp","tajimi.gifu.jp","takayama.gifu.jp","tarui.gifu.jp","toki.gifu.jp","tomika.gifu.jp","wanouchi.gifu.jp","yamagata.gifu.jp","yaotsu.gifu.jp","yoro.gifu.jp","annaka.gunma.jp","chiyoda.gunma.jp","fujioka.gunma.jp","higashiagatsuma.gunma.jp","isesaki.gunma.jp","itakura.gunma.jp","kanna.gunma.jp","kanra.gunma.jp","katashina.gunma.jp","kawaba.gunma.jp","kiryu.gunma.jp","kusatsu.gunma.jp","maebashi.gunma.jp","meiwa.gunma.jp","midori.gunma.jp","minakami.gunma.jp","naganohara.gunma.jp","nakanojo.gunma.jp","nanmoku.gunma.jp","numata.gunma.jp","oizumi.gunma.jp","ora.gunma.jp","ota.gunma.jp","shibukawa.gunma.jp","shimonita.gunma.jp","shinto.gunma.jp","showa.gunma.jp","takasaki.gunma.jp","takayama.gunma.jp","tamamura.gunma.jp","tatebayashi.gunma.jp","tomioka.gunma.jp","tsukiyono.gunma.jp","tsumagoi.gunma.jp","ueno.gunma.jp","yoshioka.gunma.jp","asaminami.hiroshima.jp","daiwa.hiroshima.jp","etajima.hiroshima.jp","fuchu.hiroshima.jp","fukuyama.hiroshima.jp","hatsukaichi.hiroshima.jp","higashihiroshima.hiroshima.jp","hongo.hiroshima.jp","jinsekikogen.hiroshima.jp","kaita.hiroshima.jp","kui.hiroshima.jp","kumano.hiroshima.jp","kure.hiroshima.jp","mihara.hiroshima.jp","miyoshi.hiroshima.jp","naka.hiroshima.jp","onomichi.hiroshima.jp","osakikamijima.hiroshima.jp","otake.hiroshima.jp","saka.hiroshima.jp","sera.hiroshima.jp","seranishi.hiroshima.jp","shinichi.hiroshima.jp","shobara.hiroshima.jp","takehara.hiroshima.jp","abashiri.hokkaido.jp","abira.hokkaido.jp","aibetsu.hokkaido.jp","akabira.hokkaido.jp","akkeshi.hokkaido.jp","asahikawa.hokkaido.jp","ashibetsu.hokkaido.jp","ashoro.hokkaido.jp","assabu.hokkaido.jp","atsuma.hokkaido.jp","bibai.hokkaido.jp","biei.hokkaido.jp","bifuka.hokkaido.jp","bihoro.hokkaido.jp","biratori.hokkaido.jp","chippubetsu.hokkaido.jp","chitose.hokkaido.jp","date.hokkaido.jp","ebetsu.hokkaido.jp","embetsu.hokkaido.jp","eniwa.hokkaido.jp","erimo.hokkaido.jp","esan.hokkaido.jp","esashi.hokkaido.jp","fukagawa.hokkaido.jp","fukushima.hokkaido.jp","furano.hokkaido.jp","furubira.hokkaido.jp","haboro.hokkaido.jp","hakodate.hokkaido.jp","hamatonbetsu.hokkaido.jp","hidaka.hokkaido.jp","higashikagura.hokkaido.jp","higashikawa.hokkaido.jp","hiroo.hokkaido.jp","hokuryu.hokkaido.jp","hokuto.hokkaido.jp","honbetsu.hokkaido.jp","horokanai.hokkaido.jp","horonobe.hokkaido.jp","ikeda.hokkaido.jp","imakane.hokkaido.jp","ishikari.hokkaido.jp","iwamizawa.hokkaido.jp","iwanai.hokkaido.jp","kamifurano.hokkaido.jp","kamikawa.hokkaido.jp","kamishihoro.hokkaido.jp","kamisunagawa.hokkaido.jp","kamoenai.hokkaido.jp","kayabe.hokkaido.jp","kembuchi.hokkaido.jp","kikonai.hokkaido.jp","kimobetsu.hokkaido.jp","kitahiroshima.hokkaido.jp","kitami.hokkaido.jp","kiyosato.hokkaido.jp","koshimizu.hokkaido.jp","kunneppu.hokkaido.jp","kuriyama.hokkaido.jp","kuromatsunai.hokkaido.jp","kushiro.hokkaido.jp","kutchan.hokkaido.jp","kyowa.hokkaido.jp","mashike.hokkaido.jp","matsumae.hokkaido.jp","mikasa.hokkaido.jp","minamifurano.hokkaido.jp","mombetsu.hokkaido.jp","moseushi.hokkaido.jp","mukawa.hokkaido.jp","muroran.hokkaido.jp","naie.hokkaido.jp","nakagawa.hokkaido.jp","nakasatsunai.hokkaido.jp","nakatombetsu.hokkaido.jp","nanae.hokkaido.jp","nanporo.hokkaido.jp","nayoro.hokkaido.jp","nemuro.hokkaido.jp","niikappu.hokkaido.jp","niki.hokkaido.jp","nishiokoppe.hokkaido.jp","noboribetsu.hokkaido.jp","numata.hokkaido.jp","obihiro.hokkaido.jp","obira.hokkaido.jp","oketo.hokkaido.jp","okoppe.hokkaido.jp","otaru.hokkaido.jp","otobe.hokkaido.jp","otofuke.hokkaido.jp","otoineppu.hokkaido.jp","oumu.hokkaido.jp","ozora.hokkaido.jp","pippu.hokkaido.jp","rankoshi.hokkaido.jp","rebun.hokkaido.jp","rikubetsu.hokkaido.jp","rishiri.hokkaido.jp","rishirifuji.hokkaido.jp","saroma.hokkaido.jp","sarufutsu.hokkaido.jp","shakotan.hokkaido.jp","shari.hokkaido.jp","shibecha.hokkaido.jp","shibetsu.hokkaido.jp","shikabe.hokkaido.jp","shikaoi.hokkaido.jp","shimamaki.hokkaido.jp","shimizu.hokkaido.jp","shimokawa.hokkaido.jp","shinshinotsu.hokkaido.jp","shintoku.hokkaido.jp","shiranuka.hokkaido.jp","shiraoi.hokkaido.jp","shiriuchi.hokkaido.jp","sobetsu.hokkaido.jp","sunagawa.hokkaido.jp","taiki.hokkaido.jp","takasu.hokkaido.jp","takikawa.hokkaido.jp","takinoue.hokkaido.jp","teshikaga.hokkaido.jp","tobetsu.hokkaido.jp","tohma.hokkaido.jp","tomakomai.hokkaido.jp","tomari.hokkaido.jp","toya.hokkaido.jp","toyako.hokkaido.jp","toyotomi.hokkaido.jp","toyoura.hokkaido.jp","tsubetsu.hokkaido.jp","tsukigata.hokkaido.jp","urakawa.hokkaido.jp","urausu.hokkaido.jp","uryu.hokkaido.jp","utashinai.hokkaido.jp","wakkanai.hokkaido.jp","wassamu.hokkaido.jp","yakumo.hokkaido.jp","yoichi.hokkaido.jp","aioi.hyogo.jp","akashi.hyogo.jp","ako.hyogo.jp","amagasaki.hyogo.jp","aogaki.hyogo.jp","asago.hyogo.jp","ashiya.hyogo.jp","awaji.hyogo.jp","fukusaki.hyogo.jp","goshiki.hyogo.jp","harima.hyogo.jp","himeji.hyogo.jp","ichikawa.hyogo.jp","inagawa.hyogo.jp","itami.hyogo.jp","kakogawa.hyogo.jp","kamigori.hyogo.jp","kamikawa.hyogo.jp","kasai.hyogo.jp","kasuga.hyogo.jp","kawanishi.hyogo.jp","miki.hyogo.jp","minamiawaji.hyogo.jp","nishinomiya.hyogo.jp","nishiwaki.hyogo.jp","ono.hyogo.jp","sanda.hyogo.jp","sannan.hyogo.jp","sasayama.hyogo.jp","sayo.hyogo.jp","shingu.hyogo.jp","shinonsen.hyogo.jp","shiso.hyogo.jp","sumoto.hyogo.jp","taishi.hyogo.jp","taka.hyogo.jp","takarazuka.hyogo.jp","takasago.hyogo.jp","takino.hyogo.jp","tamba.hyogo.jp","tatsuno.hyogo.jp","toyooka.hyogo.jp","yabu.hyogo.jp","yashiro.hyogo.jp","yoka.hyogo.jp","yokawa.hyogo.jp","ami.ibaraki.jp","asahi.ibaraki.jp","bando.ibaraki.jp","chikusei.ibaraki.jp","daigo.ibaraki.jp","fujishiro.ibaraki.jp","hitachi.ibaraki.jp","hitachinaka.ibaraki.jp","hitachiomiya.ibaraki.jp","hitachiota.ibaraki.jp","ibaraki.ibaraki.jp","ina.ibaraki.jp","inashiki.ibaraki.jp","itako.ibaraki.jp","iwama.ibaraki.jp","joso.ibaraki.jp","kamisu.ibaraki.jp","kasama.ibaraki.jp","kashima.ibaraki.jp","kasumigaura.ibaraki.jp","koga.ibaraki.jp","miho.ibaraki.jp","mito.ibaraki.jp","moriya.ibaraki.jp","naka.ibaraki.jp","namegata.ibaraki.jp","oarai.ibaraki.jp","ogawa.ibaraki.jp","omitama.ibaraki.jp","ryugasaki.ibaraki.jp","sakai.ibaraki.jp","sakuragawa.ibaraki.jp","shimodate.ibaraki.jp","shimotsuma.ibaraki.jp","shirosato.ibaraki.jp","sowa.ibaraki.jp","suifu.ibaraki.jp","takahagi.ibaraki.jp","tamatsukuri.ibaraki.jp","tokai.ibaraki.jp","tomobe.ibaraki.jp","tone.ibaraki.jp","toride.ibaraki.jp","tsuchiura.ibaraki.jp","tsukuba.ibaraki.jp","uchihara.ibaraki.jp","ushiku.ibaraki.jp","yachiyo.ibaraki.jp","yamagata.ibaraki.jp","yawara.ibaraki.jp","yuki.ibaraki.jp","anamizu.ishikawa.jp","hakui.ishikawa.jp","hakusan.ishikawa.jp","kaga.ishikawa.jp","kahoku.ishikawa.jp","kanazawa.ishikawa.jp","kawakita.ishikawa.jp","komatsu.ishikawa.jp","nakanoto.ishikawa.jp","nanao.ishikawa.jp","nomi.ishikawa.jp","nonoichi.ishikawa.jp","noto.ishikawa.jp","shika.ishikawa.jp","suzu.ishikawa.jp","tsubata.ishikawa.jp","tsurugi.ishikawa.jp","uchinada.ishikawa.jp","wajima.ishikawa.jp","fudai.iwate.jp","fujisawa.iwate.jp","hanamaki.iwate.jp","hiraizumi.iwate.jp","hirono.iwate.jp","ichinohe.iwate.jp","ichinoseki.iwate.jp","iwaizumi.iwate.jp","iwate.iwate.jp","joboji.iwate.jp","kamaishi.iwate.jp","kanegasaki.iwate.jp","karumai.iwate.jp","kawai.iwate.jp","kitakami.iwate.jp","kuji.iwate.jp","kunohe.iwate.jp","kuzumaki.iwate.jp","miyako.iwate.jp","mizusawa.iwate.jp","morioka.iwate.jp","ninohe.iwate.jp","noda.iwate.jp","ofunato.iwate.jp","oshu.iwate.jp","otsuchi.iwate.jp","rikuzentakata.iwate.jp","shiwa.iwate.jp","shizukuishi.iwate.jp","sumita.iwate.jp","tanohata.iwate.jp","tono.iwate.jp","yahaba.iwate.jp","yamada.iwate.jp","ayagawa.kagawa.jp","higashikagawa.kagawa.jp","kanonji.kagawa.jp","kotohira.kagawa.jp","manno.kagawa.jp","marugame.kagawa.jp","mitoyo.kagawa.jp","naoshima.kagawa.jp","sanuki.kagawa.jp","tadotsu.kagawa.jp","takamatsu.kagawa.jp","tonosho.kagawa.jp","uchinomi.kagawa.jp","utazu.kagawa.jp","zentsuji.kagawa.jp","akune.kagoshima.jp","amami.kagoshima.jp","hioki.kagoshima.jp","isa.kagoshima.jp","isen.kagoshima.jp","izumi.kagoshima.jp","kagoshima.kagoshima.jp","kanoya.kagoshima.jp","kawanabe.kagoshima.jp","kinko.kagoshima.jp","kouyama.kagoshima.jp","makurazaki.kagoshima.jp","matsumoto.kagoshima.jp","minamitane.kagoshima.jp","nakatane.kagoshima.jp","nishinoomote.kagoshima.jp","satsumasendai.kagoshima.jp","soo.kagoshima.jp","tarumizu.kagoshima.jp","yusui.kagoshima.jp","aikawa.kanagawa.jp","atsugi.kanagawa.jp","ayase.kanagawa.jp","chigasaki.kanagawa.jp","ebina.kanagawa.jp","fujisawa.kanagawa.jp","hadano.kanagawa.jp","hakone.kanagawa.jp","hiratsuka.kanagawa.jp","isehara.kanagawa.jp","kaisei.kanagawa.jp","kamakura.kanagawa.jp","kiyokawa.kanagawa.jp","matsuda.kanagawa.jp","minamiashigara.kanagawa.jp","miura.kanagawa.jp","nakai.kanagawa.jp","ninomiya.kanagawa.jp","odawara.kanagawa.jp","oi.kanagawa.jp","oiso.kanagawa.jp","sagamihara.kanagawa.jp","samukawa.kanagawa.jp","tsukui.kanagawa.jp","yamakita.kanagawa.jp","yamato.kanagawa.jp","yokosuka.kanagawa.jp","yugawara.kanagawa.jp","zama.kanagawa.jp","zushi.kanagawa.jp","aki.kochi.jp","geisei.kochi.jp","hidaka.kochi.jp","higashitsuno.kochi.jp","ino.kochi.jp","kagami.kochi.jp","kami.kochi.jp","kitagawa.kochi.jp","kochi.kochi.jp","mihara.kochi.jp","motoyama.kochi.jp","muroto.kochi.jp","nahari.kochi.jp","nakamura.kochi.jp","nankoku.kochi.jp","nishitosa.kochi.jp","niyodogawa.kochi.jp","ochi.kochi.jp","okawa.kochi.jp","otoyo.kochi.jp","otsuki.kochi.jp","sakawa.kochi.jp","sukumo.kochi.jp","susaki.kochi.jp","tosa.kochi.jp","tosashimizu.kochi.jp","toyo.kochi.jp","tsuno.kochi.jp","umaji.kochi.jp","yasuda.kochi.jp","yusuhara.kochi.jp","amakusa.kumamoto.jp","arao.kumamoto.jp","aso.kumamoto.jp","choyo.kumamoto.jp","gyokuto.kumamoto.jp","kamiamakusa.kumamoto.jp","kikuchi.kumamoto.jp","kumamoto.kumamoto.jp","mashiki.kumamoto.jp","mifune.kumamoto.jp","minamata.kumamoto.jp","minamioguni.kumamoto.jp","nagasu.kumamoto.jp","nishihara.kumamoto.jp","oguni.kumamoto.jp","ozu.kumamoto.jp","sumoto.kumamoto.jp","takamori.kumamoto.jp","uki.kumamoto.jp","uto.kumamoto.jp","yamaga.kumamoto.jp","yamato.kumamoto.jp","yatsushiro.kumamoto.jp","ayabe.kyoto.jp","fukuchiyama.kyoto.jp","higashiyama.kyoto.jp","ide.kyoto.jp","ine.kyoto.jp","joyo.kyoto.jp","kameoka.kyoto.jp","kamo.kyoto.jp","kita.kyoto.jp","kizu.kyoto.jp","kumiyama.kyoto.jp","kyotamba.kyoto.jp","kyotanabe.kyoto.jp","kyotango.kyoto.jp","maizuru.kyoto.jp","minami.kyoto.jp","minamiyamashiro.kyoto.jp","miyazu.kyoto.jp","muko.kyoto.jp","nagaokakyo.kyoto.jp","nakagyo.kyoto.jp","nantan.kyoto.jp","oyamazaki.kyoto.jp","sakyo.kyoto.jp","seika.kyoto.jp","tanabe.kyoto.jp","uji.kyoto.jp","ujitawara.kyoto.jp","wazuka.kyoto.jp","yamashina.kyoto.jp","yawata.kyoto.jp","asahi.mie.jp","inabe.mie.jp","ise.mie.jp","kameyama.mie.jp","kawagoe.mie.jp","kiho.mie.jp","kisosaki.mie.jp","kiwa.mie.jp","komono.mie.jp","kumano.mie.jp","kuwana.mie.jp","matsusaka.mie.jp","meiwa.mie.jp","mihama.mie.jp","minamiise.mie.jp","misugi.mie.jp","miyama.mie.jp","nabari.mie.jp","shima.mie.jp","suzuka.mie.jp","tado.mie.jp","taiki.mie.jp","taki.mie.jp","tamaki.mie.jp","toba.mie.jp","tsu.mie.jp","udono.mie.jp","ureshino.mie.jp","watarai.mie.jp","yokkaichi.mie.jp","furukawa.miyagi.jp","higashimatsushima.miyagi.jp","ishinomaki.miyagi.jp","iwanuma.miyagi.jp","kakuda.miyagi.jp","kami.miyagi.jp","kawasaki.miyagi.jp","marumori.miyagi.jp","matsushima.miyagi.jp","minamisanriku.miyagi.jp","misato.miyagi.jp","murata.miyagi.jp","natori.miyagi.jp","ogawara.miyagi.jp","ohira.miyagi.jp","onagawa.miyagi.jp","osaki.miyagi.jp","rifu.miyagi.jp","semine.miyagi.jp","shibata.miyagi.jp","shichikashuku.miyagi.jp","shikama.miyagi.jp","shiogama.miyagi.jp","shiroishi.miyagi.jp","tagajo.miyagi.jp","taiwa.miyagi.jp","tome.miyagi.jp","tomiya.miyagi.jp","wakuya.miyagi.jp","watari.miyagi.jp","yamamoto.miyagi.jp","zao.miyagi.jp","aya.miyazaki.jp","ebino.miyazaki.jp","gokase.miyazaki.jp","hyuga.miyazaki.jp","kadogawa.miyazaki.jp","kawaminami.miyazaki.jp","kijo.miyazaki.jp","kitagawa.miyazaki.jp","kitakata.miyazaki.jp","kitaura.miyazaki.jp","kobayashi.miyazaki.jp","kunitomi.miyazaki.jp","kushima.miyazaki.jp","mimata.miyazaki.jp","miyakonojo.miyazaki.jp","miyazaki.miyazaki.jp","morotsuka.miyazaki.jp","nichinan.miyazaki.jp","nishimera.miyazaki.jp","nobeoka.miyazaki.jp","saito.miyazaki.jp","shiiba.miyazaki.jp","shintomi.miyazaki.jp","takaharu.miyazaki.jp","takanabe.miyazaki.jp","takazaki.miyazaki.jp","tsuno.miyazaki.jp","achi.nagano.jp","agematsu.nagano.jp","anan.nagano.jp","aoki.nagano.jp","asahi.nagano.jp","azumino.nagano.jp","chikuhoku.nagano.jp","chikuma.nagano.jp","chino.nagano.jp","fujimi.nagano.jp","hakuba.nagano.jp","hara.nagano.jp","hiraya.nagano.jp","iida.nagano.jp","iijima.nagano.jp","iiyama.nagano.jp","iizuna.nagano.jp","ikeda.nagano.jp","ikusaka.nagano.jp","ina.nagano.jp","karuizawa.nagano.jp","kawakami.nagano.jp","kiso.nagano.jp","kisofukushima.nagano.jp","kitaaiki.nagano.jp","komagane.nagano.jp","komoro.nagano.jp","matsukawa.nagano.jp","matsumoto.nagano.jp","miasa.nagano.jp","minamiaiki.nagano.jp","minamimaki.nagano.jp","minamiminowa.nagano.jp","minowa.nagano.jp","miyada.nagano.jp","miyota.nagano.jp","mochizuki.nagano.jp","nagano.nagano.jp","nagawa.nagano.jp","nagiso.nagano.jp","nakagawa.nagano.jp","nakano.nagano.jp","nozawaonsen.nagano.jp","obuse.nagano.jp","ogawa.nagano.jp","okaya.nagano.jp","omachi.nagano.jp","omi.nagano.jp","ookuwa.nagano.jp","ooshika.nagano.jp","otaki.nagano.jp","otari.nagano.jp","sakae.nagano.jp","sakaki.nagano.jp","saku.nagano.jp","sakuho.nagano.jp","shimosuwa.nagano.jp","shinanomachi.nagano.jp","shiojiri.nagano.jp","suwa.nagano.jp","suzaka.nagano.jp","takagi.nagano.jp","takamori.nagano.jp","takayama.nagano.jp","tateshina.nagano.jp","tatsuno.nagano.jp","togakushi.nagano.jp","togura.nagano.jp","tomi.nagano.jp","ueda.nagano.jp","wada.nagano.jp","yamagata.nagano.jp","yamanouchi.nagano.jp","yasaka.nagano.jp","yasuoka.nagano.jp","chijiwa.nagasaki.jp","futsu.nagasaki.jp","goto.nagasaki.jp","hasami.nagasaki.jp","hirado.nagasaki.jp","iki.nagasaki.jp","isahaya.nagasaki.jp","kawatana.nagasaki.jp","kuchinotsu.nagasaki.jp","matsuura.nagasaki.jp","nagasaki.nagasaki.jp","obama.nagasaki.jp","omura.nagasaki.jp","oseto.nagasaki.jp","saikai.nagasaki.jp","sasebo.nagasaki.jp","seihi.nagasaki.jp","shimabara.nagasaki.jp","shinkamigoto.nagasaki.jp","togitsu.nagasaki.jp","tsushima.nagasaki.jp","unzen.nagasaki.jp","ando.nara.jp","gose.nara.jp","heguri.nara.jp","higashiyoshino.nara.jp","ikaruga.nara.jp","ikoma.nara.jp","kamikitayama.nara.jp","kanmaki.nara.jp","kashiba.nara.jp","kashihara.nara.jp","katsuragi.nara.jp","kawai.nara.jp","kawakami.nara.jp","kawanishi.nara.jp","koryo.nara.jp","kurotaki.nara.jp","mitsue.nara.jp","miyake.nara.jp","nara.nara.jp","nosegawa.nara.jp","oji.nara.jp","ouda.nara.jp","oyodo.nara.jp","sakurai.nara.jp","sango.nara.jp","shimoichi.nara.jp","shimokitayama.nara.jp","shinjo.nara.jp","soni.nara.jp","takatori.nara.jp","tawaramoto.nara.jp","tenkawa.nara.jp","tenri.nara.jp","uda.nara.jp","yamatokoriyama.nara.jp","yamatotakada.nara.jp","yamazoe.nara.jp","yoshino.nara.jp","aga.niigata.jp","agano.niigata.jp","gosen.niigata.jp","itoigawa.niigata.jp","izumozaki.niigata.jp","joetsu.niigata.jp","kamo.niigata.jp","kariwa.niigata.jp","kashiwazaki.niigata.jp","minamiuonuma.niigata.jp","mitsuke.niigata.jp","muika.niigata.jp","murakami.niigata.jp","myoko.niigata.jp","nagaoka.niigata.jp","niigata.niigata.jp","ojiya.niigata.jp","omi.niigata.jp","sado.niigata.jp","sanjo.niigata.jp","seiro.niigata.jp","seirou.niigata.jp","sekikawa.niigata.jp","shibata.niigata.jp","tagami.niigata.jp","tainai.niigata.jp","tochio.niigata.jp","tokamachi.niigata.jp","tsubame.niigata.jp","tsunan.niigata.jp","uonuma.niigata.jp","yahiko.niigata.jp","yoita.niigata.jp","yuzawa.niigata.jp","beppu.oita.jp","bungoono.oita.jp","bungotakada.oita.jp","hasama.oita.jp","hiji.oita.jp","himeshima.oita.jp","hita.oita.jp","kamitsue.oita.jp","kokonoe.oita.jp","kuju.oita.jp","kunisaki.oita.jp","kusu.oita.jp","oita.oita.jp","saiki.oita.jp","taketa.oita.jp","tsukumi.oita.jp","usa.oita.jp","usuki.oita.jp","yufu.oita.jp","akaiwa.okayama.jp","asakuchi.okayama.jp","bizen.okayama.jp","hayashima.okayama.jp","ibara.okayama.jp","kagamino.okayama.jp","kasaoka.okayama.jp","kibichuo.okayama.jp","kumenan.okayama.jp","kurashiki.okayama.jp","maniwa.okayama.jp","misaki.okayama.jp","nagi.okayama.jp","niimi.okayama.jp","nishiawakura.okayama.jp","okayama.okayama.jp","satosho.okayama.jp","setouchi.okayama.jp","shinjo.okayama.jp","shoo.okayama.jp","soja.okayama.jp","takahashi.okayama.jp","tamano.okayama.jp","tsuyama.okayama.jp","wake.okayama.jp","yakage.okayama.jp","aguni.okinawa.jp","ginowan.okinawa.jp","ginoza.okinawa.jp","gushikami.okinawa.jp","haebaru.okinawa.jp","higashi.okinawa.jp","hirara.okinawa.jp","iheya.okinawa.jp","ishigaki.okinawa.jp","ishikawa.okinawa.jp","itoman.okinawa.jp","izena.okinawa.jp","kadena.okinawa.jp","kin.okinawa.jp","kitadaito.okinawa.jp","kitanakagusuku.okinawa.jp","kumejima.okinawa.jp","kunigami.okinawa.jp","minamidaito.okinawa.jp","motobu.okinawa.jp","nago.okinawa.jp","naha.okinawa.jp","nakagusuku.okinawa.jp","nakijin.okinawa.jp","nanjo.okinawa.jp","nishihara.okinawa.jp","ogimi.okinawa.jp","okinawa.okinawa.jp","onna.okinawa.jp","shimoji.okinawa.jp","taketomi.okinawa.jp","tarama.okinawa.jp","tokashiki.okinawa.jp","tomigusuku.okinawa.jp","tonaki.okinawa.jp","urasoe.okinawa.jp","uruma.okinawa.jp","yaese.okinawa.jp","yomitan.okinawa.jp","yonabaru.okinawa.jp","yonaguni.okinawa.jp","zamami.okinawa.jp","abeno.osaka.jp","chihayaakasaka.osaka.jp","chuo.osaka.jp","daito.osaka.jp","fujiidera.osaka.jp","habikino.osaka.jp","hannan.osaka.jp","higashiosaka.osaka.jp","higashisumiyoshi.osaka.jp","higashiyodogawa.osaka.jp","hirakata.osaka.jp","ibaraki.osaka.jp","ikeda.osaka.jp","izumi.osaka.jp","izumiotsu.osaka.jp","izumisano.osaka.jp","kadoma.osaka.jp","kaizuka.osaka.jp","kanan.osaka.jp","kashiwara.osaka.jp","katano.osaka.jp","kawachinagano.osaka.jp","kishiwada.osaka.jp","kita.osaka.jp","kumatori.osaka.jp","matsubara.osaka.jp","minato.osaka.jp","minoh.osaka.jp","misaki.osaka.jp","moriguchi.osaka.jp","neyagawa.osaka.jp","nishi.osaka.jp","nose.osaka.jp","osakasayama.osaka.jp","sakai.osaka.jp","sayama.osaka.jp","sennan.osaka.jp","settsu.osaka.jp","shijonawate.osaka.jp","shimamoto.osaka.jp","suita.osaka.jp","tadaoka.osaka.jp","taishi.osaka.jp","tajiri.osaka.jp","takaishi.osaka.jp","takatsuki.osaka.jp","tondabayashi.osaka.jp","toyonaka.osaka.jp","toyono.osaka.jp","yao.osaka.jp","ariake.saga.jp","arita.saga.jp","fukudomi.saga.jp","genkai.saga.jp","hamatama.saga.jp","hizen.saga.jp","imari.saga.jp","kamimine.saga.jp","kanzaki.saga.jp","karatsu.saga.jp","kashima.saga.jp","kitagata.saga.jp","kitahata.saga.jp","kiyama.saga.jp","kouhoku.saga.jp","kyuragi.saga.jp","nishiarita.saga.jp","ogi.saga.jp","omachi.saga.jp","ouchi.saga.jp","saga.saga.jp","shiroishi.saga.jp","taku.saga.jp","tara.saga.jp","tosu.saga.jp","yoshinogari.saga.jp","arakawa.saitama.jp","asaka.saitama.jp","chichibu.saitama.jp","fujimi.saitama.jp","fujimino.saitama.jp","fukaya.saitama.jp","hanno.saitama.jp","hanyu.saitama.jp","hasuda.saitama.jp","hatogaya.saitama.jp","hatoyama.saitama.jp","hidaka.saitama.jp","higashichichibu.saitama.jp","higashimatsuyama.saitama.jp","honjo.saitama.jp","ina.saitama.jp","iruma.saitama.jp","iwatsuki.saitama.jp","kamiizumi.saitama.jp","kamikawa.saitama.jp","kamisato.saitama.jp","kasukabe.saitama.jp","kawagoe.saitama.jp","kawaguchi.saitama.jp","kawajima.saitama.jp","kazo.saitama.jp","kitamoto.saitama.jp","koshigaya.saitama.jp","kounosu.saitama.jp","kuki.saitama.jp","kumagaya.saitama.jp","matsubushi.saitama.jp","minano.saitama.jp","misato.saitama.jp","miyashiro.saitama.jp","miyoshi.saitama.jp","moroyama.saitama.jp","nagatoro.saitama.jp","namegawa.saitama.jp","niiza.saitama.jp","ogano.saitama.jp","ogawa.saitama.jp","ogose.saitama.jp","okegawa.saitama.jp","omiya.saitama.jp","otaki.saitama.jp","ranzan.saitama.jp","ryokami.saitama.jp","saitama.saitama.jp","sakado.saitama.jp","satte.saitama.jp","sayama.saitama.jp","shiki.saitama.jp","shiraoka.saitama.jp","soka.saitama.jp","sugito.saitama.jp","toda.saitama.jp","tokigawa.saitama.jp","tokorozawa.saitama.jp","tsurugashima.saitama.jp","urawa.saitama.jp","warabi.saitama.jp","yashio.saitama.jp","yokoze.saitama.jp","yono.saitama.jp","yorii.saitama.jp","yoshida.saitama.jp","yoshikawa.saitama.jp","yoshimi.saitama.jp","aisho.shiga.jp","gamo.shiga.jp","higashiomi.shiga.jp","hikone.shiga.jp","koka.shiga.jp","konan.shiga.jp","kosei.shiga.jp","koto.shiga.jp","kusatsu.shiga.jp","maibara.shiga.jp","moriyama.shiga.jp","nagahama.shiga.jp","nishiazai.shiga.jp","notogawa.shiga.jp","omihachiman.shiga.jp","otsu.shiga.jp","ritto.shiga.jp","ryuoh.shiga.jp","takashima.shiga.jp","takatsuki.shiga.jp","torahime.shiga.jp","toyosato.shiga.jp","yasu.shiga.jp","akagi.shimane.jp","ama.shimane.jp","gotsu.shimane.jp","hamada.shimane.jp","higashiizumo.shimane.jp","hikawa.shimane.jp","hikimi.shimane.jp","izumo.shimane.jp","kakinoki.shimane.jp","masuda.shimane.jp","matsue.shimane.jp","misato.shimane.jp","nishinoshima.shimane.jp","ohda.shimane.jp","okinoshima.shimane.jp","okuizumo.shimane.jp","shimane.shimane.jp","tamayu.shimane.jp","tsuwano.shimane.jp","unnan.shimane.jp","yakumo.shimane.jp","yasugi.shimane.jp","yatsuka.shimane.jp","arai.shizuoka.jp","atami.shizuoka.jp","fuji.shizuoka.jp","fujieda.shizuoka.jp","fujikawa.shizuoka.jp","fujinomiya.shizuoka.jp","fukuroi.shizuoka.jp","gotemba.shizuoka.jp","haibara.shizuoka.jp","hamamatsu.shizuoka.jp","higashiizu.shizuoka.jp","ito.shizuoka.jp","iwata.shizuoka.jp","izu.shizuoka.jp","izunokuni.shizuoka.jp","kakegawa.shizuoka.jp","kannami.shizuoka.jp","kawanehon.shizuoka.jp","kawazu.shizuoka.jp","kikugawa.shizuoka.jp","kosai.shizuoka.jp","makinohara.shizuoka.jp","matsuzaki.shizuoka.jp","minamiizu.shizuoka.jp","mishima.shizuoka.jp","morimachi.shizuoka.jp","nishiizu.shizuoka.jp","numazu.shizuoka.jp","omaezaki.shizuoka.jp","shimada.shizuoka.jp","shimizu.shizuoka.jp","shimoda.shizuoka.jp","shizuoka.shizuoka.jp","susono.shizuoka.jp","yaizu.shizuoka.jp","yoshida.shizuoka.jp","ashikaga.tochigi.jp","bato.tochigi.jp","haga.tochigi.jp","ichikai.tochigi.jp","iwafune.tochigi.jp","kaminokawa.tochigi.jp","kanuma.tochigi.jp","karasuyama.tochigi.jp","kuroiso.tochigi.jp","mashiko.tochigi.jp","mibu.tochigi.jp","moka.tochigi.jp","motegi.tochigi.jp","nasu.tochigi.jp","nasushiobara.tochigi.jp","nikko.tochigi.jp","nishikata.tochigi.jp","nogi.tochigi.jp","ohira.tochigi.jp","ohtawara.tochigi.jp","oyama.tochigi.jp","sakura.tochigi.jp","sano.tochigi.jp","shimotsuke.tochigi.jp","shioya.tochigi.jp","takanezawa.tochigi.jp","tochigi.tochigi.jp","tsuga.tochigi.jp","ujiie.tochigi.jp","utsunomiya.tochigi.jp","yaita.tochigi.jp","aizumi.tokushima.jp","anan.tokushima.jp","ichiba.tokushima.jp","itano.tokushima.jp","kainan.tokushima.jp","komatsushima.tokushima.jp","matsushige.tokushima.jp","mima.tokushima.jp","minami.tokushima.jp","miyoshi.tokushima.jp","mugi.tokushima.jp","nakagawa.tokushima.jp","naruto.tokushima.jp","sanagochi.tokushima.jp","shishikui.tokushima.jp","tokushima.tokushima.jp","wajiki.tokushima.jp","adachi.tokyo.jp","akiruno.tokyo.jp","akishima.tokyo.jp","aogashima.tokyo.jp","arakawa.tokyo.jp","bunkyo.tokyo.jp","chiyoda.tokyo.jp","chofu.tokyo.jp","chuo.tokyo.jp","edogawa.tokyo.jp","fuchu.tokyo.jp","fussa.tokyo.jp","hachijo.tokyo.jp","hachioji.tokyo.jp","hamura.tokyo.jp","higashikurume.tokyo.jp","higashimurayama.tokyo.jp","higashiyamato.tokyo.jp","hino.tokyo.jp","hinode.tokyo.jp","hinohara.tokyo.jp","inagi.tokyo.jp","itabashi.tokyo.jp","katsushika.tokyo.jp","kita.tokyo.jp","kiyose.tokyo.jp","kodaira.tokyo.jp","koganei.tokyo.jp","kokubunji.tokyo.jp","komae.tokyo.jp","koto.tokyo.jp","kouzushima.tokyo.jp","kunitachi.tokyo.jp","machida.tokyo.jp","meguro.tokyo.jp","minato.tokyo.jp","mitaka.tokyo.jp","mizuho.tokyo.jp","musashimurayama.tokyo.jp","musashino.tokyo.jp","nakano.tokyo.jp","nerima.tokyo.jp","ogasawara.tokyo.jp","okutama.tokyo.jp","ome.tokyo.jp","oshima.tokyo.jp","ota.tokyo.jp","setagaya.tokyo.jp","shibuya.tokyo.jp","shinagawa.tokyo.jp","shinjuku.tokyo.jp","suginami.tokyo.jp","sumida.tokyo.jp","tachikawa.tokyo.jp","taito.tokyo.jp","tama.tokyo.jp","toshima.tokyo.jp","chizu.tottori.jp","hino.tottori.jp","kawahara.tottori.jp","koge.tottori.jp","kotoura.tottori.jp","misasa.tottori.jp","nanbu.tottori.jp","nichinan.tottori.jp","sakaiminato.tottori.jp","tottori.tottori.jp","wakasa.tottori.jp","yazu.tottori.jp","yonago.tottori.jp","asahi.toyama.jp","fuchu.toyama.jp","fukumitsu.toyama.jp","funahashi.toyama.jp","himi.toyama.jp","imizu.toyama.jp","inami.toyama.jp","johana.toyama.jp","kamiichi.toyama.jp","kurobe.toyama.jp","nakaniikawa.toyama.jp","namerikawa.toyama.jp","nanto.toyama.jp","nyuzen.toyama.jp","oyabe.toyama.jp","taira.toyama.jp","takaoka.toyama.jp","tateyama.toyama.jp","toga.toyama.jp","tonami.toyama.jp","toyama.toyama.jp","unazuki.toyama.jp","uozu.toyama.jp","yamada.toyama.jp","arida.wakayama.jp","aridagawa.wakayama.jp","gobo.wakayama.jp","hashimoto.wakayama.jp","hidaka.wakayama.jp","hirogawa.wakayama.jp","inami.wakayama.jp","iwade.wakayama.jp","kainan.wakayama.jp","kamitonda.wakayama.jp","katsuragi.wakayama.jp","kimino.wakayama.jp","kinokawa.wakayama.jp","kitayama.wakayama.jp","koya.wakayama.jp","koza.wakayama.jp","kozagawa.wakayama.jp","kudoyama.wakayama.jp","kushimoto.wakayama.jp","mihama.wakayama.jp","misato.wakayama.jp","nachikatsuura.wakayama.jp","shingu.wakayama.jp","shirahama.wakayama.jp","taiji.wakayama.jp","tanabe.wakayama.jp","wakayama.wakayama.jp","yuasa.wakayama.jp","yura.wakayama.jp","asahi.yamagata.jp","funagata.yamagata.jp","higashine.yamagata.jp","iide.yamagata.jp","kahoku.yamagata.jp","kaminoyama.yamagata.jp","kaneyama.yamagata.jp","kawanishi.yamagata.jp","mamurogawa.yamagata.jp","mikawa.yamagata.jp","murayama.yamagata.jp","nagai.yamagata.jp","nakayama.yamagata.jp","nanyo.yamagata.jp","nishikawa.yamagata.jp","obanazawa.yamagata.jp","oe.yamagata.jp","oguni.yamagata.jp","ohkura.yamagata.jp","oishida.yamagata.jp","sagae.yamagata.jp","sakata.yamagata.jp","sakegawa.yamagata.jp","shinjo.yamagata.jp","shirataka.yamagata.jp","shonai.yamagata.jp","takahata.yamagata.jp","tendo.yamagata.jp","tozawa.yamagata.jp","tsuruoka.yamagata.jp","yamagata.yamagata.jp","yamanobe.yamagata.jp","yonezawa.yamagata.jp","yuza.yamagata.jp","abu.yamaguchi.jp","hagi.yamaguchi.jp","hikari.yamaguchi.jp","hofu.yamaguchi.jp","iwakuni.yamaguchi.jp","kudamatsu.yamaguchi.jp","mitou.yamaguchi.jp","nagato.yamaguchi.jp","oshima.yamaguchi.jp","shimonoseki.yamaguchi.jp","shunan.yamaguchi.jp","tabuse.yamaguchi.jp","tokuyama.yamaguchi.jp","toyota.yamaguchi.jp","ube.yamaguchi.jp","yuu.yamaguchi.jp","chuo.yamanashi.jp","doshi.yamanashi.jp","fuefuki.yamanashi.jp","fujikawa.yamanashi.jp","fujikawaguchiko.yamanashi.jp","fujiyoshida.yamanashi.jp","hayakawa.yamanashi.jp","hokuto.yamanashi.jp","ichikawamisato.yamanashi.jp","kai.yamanashi.jp","kofu.yamanashi.jp","koshu.yamanashi.jp","kosuge.yamanashi.jp","minami-alps.yamanashi.jp","minobu.yamanashi.jp","nakamichi.yamanashi.jp","nanbu.yamanashi.jp","narusawa.yamanashi.jp","nirasaki.yamanashi.jp","nishikatsura.yamanashi.jp","oshino.yamanashi.jp","otsuki.yamanashi.jp","showa.yamanashi.jp","tabayama.yamanashi.jp","tsuru.yamanashi.jp","uenohara.yamanashi.jp","yamanakako.yamanashi.jp","yamanashi.yamanashi.jp","ke","ac.ke","co.ke","go.ke","info.ke","me.ke","mobi.ke","ne.ke","or.ke","sc.ke","kg","org.kg","net.kg","com.kg","edu.kg","gov.kg","mil.kg","*.kh","ki","edu.ki","biz.ki","net.ki","org.ki","gov.ki","info.ki","com.ki","km","org.km","nom.km","gov.km","prd.km","tm.km","edu.km","mil.km","ass.km","com.km","coop.km","asso.km","presse.km","medecin.km","notaires.km","pharmaciens.km","veterinaire.km","gouv.km","kn","net.kn","org.kn","edu.kn","gov.kn","kp","com.kp","edu.kp","gov.kp","org.kp","rep.kp","tra.kp","kr","ac.kr","co.kr","es.kr","go.kr","hs.kr","kg.kr","mil.kr","ms.kr","ne.kr","or.kr","pe.kr","re.kr","sc.kr","busan.kr","chungbuk.kr","chungnam.kr","daegu.kr","daejeon.kr","gangwon.kr","gwangju.kr","gyeongbuk.kr","gyeonggi.kr","gyeongnam.kr","incheon.kr","jeju.kr","jeonbuk.kr","jeonnam.kr","seoul.kr","ulsan.kr","kw","com.kw","edu.kw","emb.kw","gov.kw","ind.kw","net.kw","org.kw","ky","com.ky","edu.ky","net.ky","org.ky","kz","org.kz","edu.kz","net.kz","gov.kz","mil.kz","com.kz","la","int.la","net.la","info.la","edu.la","gov.la","per.la","com.la","org.la","lb","com.lb","edu.lb","gov.lb","net.lb","org.lb","lc","com.lc","net.lc","co.lc","org.lc","edu.lc","gov.lc","li","lk","gov.lk","sch.lk","net.lk","int.lk","com.lk","org.lk","edu.lk","ngo.lk","soc.lk","web.lk","ltd.lk","assn.lk","grp.lk","hotel.lk","ac.lk","lr","com.lr","edu.lr","gov.lr","org.lr","net.lr","ls","ac.ls","biz.ls","co.ls","edu.ls","gov.ls","info.ls","net.ls","org.ls","sc.ls","lt","gov.lt","lu","lv","com.lv","edu.lv","gov.lv","org.lv","mil.lv","id.lv","net.lv","asn.lv","conf.lv","ly","com.ly","net.ly","gov.ly","plc.ly","edu.ly","sch.ly","med.ly","org.ly","id.ly","ma","co.ma","net.ma","gov.ma","org.ma","ac.ma","press.ma","mc","tm.mc","asso.mc","md","me","co.me","net.me","org.me","edu.me","ac.me","gov.me","its.me","priv.me","mg","org.mg","nom.mg","gov.mg","prd.mg","tm.mg","edu.mg","mil.mg","com.mg","co.mg","mh","mil","mk","com.mk","org.mk","net.mk","edu.mk","gov.mk","inf.mk","name.mk","ml","com.ml","edu.ml","gouv.ml","gov.ml","net.ml","org.ml","presse.ml","*.mm","mn","gov.mn","edu.mn","org.mn","mo","com.mo","net.mo","org.mo","edu.mo","gov.mo","mobi","mp","mq","mr","gov.mr","ms","com.ms","edu.ms","gov.ms","net.ms","org.ms","mt","com.mt","edu.mt","net.mt","org.mt","mu","com.mu","net.mu","org.mu","gov.mu","ac.mu","co.mu","or.mu","museum","academy.museum","agriculture.museum","air.museum","airguard.museum","alabama.museum","alaska.museum","amber.museum","ambulance.museum","american.museum","americana.museum","americanantiques.museum","americanart.museum","amsterdam.museum","and.museum","annefrank.museum","anthro.museum","anthropology.museum","antiques.museum","aquarium.museum","arboretum.museum","archaeological.museum","archaeology.museum","architecture.museum","art.museum","artanddesign.museum","artcenter.museum","artdeco.museum","arteducation.museum","artgallery.museum","arts.museum","artsandcrafts.museum","asmatart.museum","assassination.museum","assisi.museum","association.museum","astronomy.museum","atlanta.museum","austin.museum","australia.museum","automotive.museum","aviation.museum","axis.museum","badajoz.museum","baghdad.museum","bahn.museum","bale.museum","baltimore.museum","barcelona.museum","baseball.museum","basel.museum","baths.museum","bauern.museum","beauxarts.museum","beeldengeluid.museum","bellevue.museum","bergbau.museum","berkeley.museum","berlin.museum","bern.museum","bible.museum","bilbao.museum","bill.museum","birdart.museum","birthplace.museum","bonn.museum","boston.museum","botanical.museum","botanicalgarden.museum","botanicgarden.museum","botany.museum","brandywinevalley.museum","brasil.museum","bristol.museum","british.museum","britishcolumbia.museum","broadcast.museum","brunel.museum","brussel.museum","brussels.museum","bruxelles.museum","building.museum","burghof.museum","bus.museum","bushey.museum","cadaques.museum","california.museum","cambridge.museum","can.museum","canada.museum","capebreton.museum","carrier.museum","cartoonart.museum","casadelamoneda.museum","castle.museum","castres.museum","celtic.museum","center.museum","chattanooga.museum","cheltenham.museum","chesapeakebay.museum","chicago.museum","children.museum","childrens.museum","childrensgarden.museum","chiropractic.museum","chocolate.museum","christiansburg.museum","cincinnati.museum","cinema.museum","circus.museum","civilisation.museum","civilization.museum","civilwar.museum","clinton.museum","clock.museum","coal.museum","coastaldefence.museum","cody.museum","coldwar.museum","collection.museum","colonialwilliamsburg.museum","coloradoplateau.museum","columbia.museum","columbus.museum","communication.museum","communications.museum","community.museum","computer.museum","computerhistory.museum","comunicações.museum","contemporary.museum","contemporaryart.museum","convent.museum","copenhagen.museum","corporation.museum","correios-e-telecomunicações.museum","corvette.museum","costume.museum","countryestate.museum","county.museum","crafts.museum","cranbrook.museum","creation.museum","cultural.museum","culturalcenter.museum","culture.museum","cyber.museum","cymru.museum","dali.museum","dallas.museum","database.museum","ddr.museum","decorativearts.museum","delaware.museum","delmenhorst.museum","denmark.museum","depot.museum","design.museum","detroit.museum","dinosaur.museum","discovery.museum","dolls.museum","donostia.museum","durham.museum","eastafrica.museum","eastcoast.museum","education.museum","educational.museum","egyptian.museum","eisenbahn.museum","elburg.museum","elvendrell.museum","embroidery.museum","encyclopedic.museum","england.museum","entomology.museum","environment.museum","environmentalconservation.museum","epilepsy.museum","essex.museum","estate.museum","ethnology.museum","exeter.museum","exhibition.museum","family.museum","farm.museum","farmequipment.museum","farmers.museum","farmstead.museum","field.museum","figueres.museum","filatelia.museum","film.museum","fineart.museum","finearts.museum","finland.museum","flanders.museum","florida.museum","force.museum","fortmissoula.museum","fortworth.museum","foundation.museum","francaise.museum","frankfurt.museum","franziskaner.museum","freemasonry.museum","freiburg.museum","fribourg.museum","frog.museum","fundacio.museum","furniture.museum","gallery.museum","garden.museum","gateway.museum","geelvinck.museum","gemological.museum","geology.museum","georgia.museum","giessen.museum","glas.museum","glass.museum","gorge.museum","grandrapids.museum","graz.museum","guernsey.museum","halloffame.museum","hamburg.museum","handson.museum","harvestcelebration.museum","hawaii.museum","health.museum","heimatunduhren.museum","hellas.museum","helsinki.museum","hembygdsforbund.museum","heritage.museum","histoire.museum","historical.museum","historicalsociety.museum","historichouses.museum","historisch.museum","historisches.museum","history.museum","historyofscience.museum","horology.museum","house.museum","humanities.museum","illustration.museum","imageandsound.museum","indian.museum","indiana.museum","indianapolis.museum","indianmarket.museum","intelligence.museum","interactive.museum","iraq.museum","iron.museum","isleofman.museum","jamison.museum","jefferson.museum","jerusalem.museum","jewelry.museum","jewish.museum","jewishart.museum","jfk.museum","journalism.museum","judaica.museum","judygarland.museum","juedisches.museum","juif.museum","karate.museum","karikatur.museum","kids.museum","koebenhavn.museum","koeln.museum","kunst.museum","kunstsammlung.museum","kunstunddesign.museum","labor.museum","labour.museum","lajolla.museum","lancashire.museum","landes.museum","lans.museum","läns.museum","larsson.museum","lewismiller.museum","lincoln.museum","linz.museum","living.museum","livinghistory.museum","localhistory.museum","london.museum","losangeles.museum","louvre.museum","loyalist.museum","lucerne.museum","luxembourg.museum","luzern.museum","mad.museum","madrid.museum","mallorca.museum","manchester.museum","mansion.museum","mansions.museum","manx.museum","marburg.museum","maritime.museum","maritimo.museum","maryland.museum","marylhurst.museum","media.museum","medical.museum","medizinhistorisches.museum","meeres.museum","memorial.museum","mesaverde.museum","michigan.museum","midatlantic.museum","military.museum","mill.museum","miners.museum","mining.museum","minnesota.museum","missile.museum","missoula.museum","modern.museum","moma.museum","money.museum","monmouth.museum","monticello.museum","montreal.museum","moscow.museum","motorcycle.museum","muenchen.museum","muenster.museum","mulhouse.museum","muncie.museum","museet.museum","museumcenter.museum","museumvereniging.museum","music.museum","national.museum","nationalfirearms.museum","nationalheritage.museum","nativeamerican.museum","naturalhistory.museum","naturalhistorymuseum.museum","naturalsciences.museum","nature.museum","naturhistorisches.museum","natuurwetenschappen.museum","naumburg.museum","naval.museum","nebraska.museum","neues.museum","newhampshire.museum","newjersey.museum","newmexico.museum","newport.museum","newspaper.museum","newyork.museum","niepce.museum","norfolk.museum","north.museum","nrw.museum","nyc.museum","nyny.museum","oceanographic.museum","oceanographique.museum","omaha.museum","online.museum","ontario.museum","openair.museum","oregon.museum","oregontrail.museum","otago.museum","oxford.museum","pacific.museum","paderborn.museum","palace.museum","paleo.museum","palmsprings.museum","panama.museum","paris.museum","pasadena.museum","pharmacy.museum","philadelphia.museum","philadelphiaarea.museum","philately.museum","phoenix.museum","photography.museum","pilots.museum","pittsburgh.museum","planetarium.museum","plantation.museum","plants.museum","plaza.museum","portal.museum","portland.museum","portlligat.museum","posts-and-telecommunications.museum","preservation.museum","presidio.museum","press.museum","project.museum","public.museum","pubol.museum","quebec.museum","railroad.museum","railway.museum","research.museum","resistance.museum","riodejaneiro.museum","rochester.museum","rockart.museum","roma.museum","russia.museum","saintlouis.museum","salem.museum","salvadordali.museum","salzburg.museum","sandiego.museum","sanfrancisco.museum","santabarbara.museum","santacruz.museum","santafe.museum","saskatchewan.museum","satx.museum","savannahga.museum","schlesisches.museum","schoenbrunn.museum","schokoladen.museum","school.museum","schweiz.museum","science.museum","scienceandhistory.museum","scienceandindustry.museum","sciencecenter.museum","sciencecenters.museum","science-fiction.museum","sciencehistory.museum","sciences.museum","sciencesnaturelles.museum","scotland.museum","seaport.museum","settlement.museum","settlers.museum","shell.museum","sherbrooke.museum","sibenik.museum","silk.museum","ski.museum","skole.museum","society.museum","sologne.museum","soundandvision.museum","southcarolina.museum","southwest.museum","space.museum","spy.museum","square.museum","stadt.museum","stalbans.museum","starnberg.museum","state.museum","stateofdelaware.museum","station.museum","steam.museum","steiermark.museum","stjohn.museum","stockholm.museum","stpetersburg.museum","stuttgart.museum","suisse.museum","surgeonshall.museum","surrey.museum","svizzera.museum","sweden.museum","sydney.museum","tank.museum","tcm.museum","technology.museum","telekommunikation.museum","television.museum","texas.museum","textile.museum","theater.museum","time.museum","timekeeping.museum","topology.museum","torino.museum","touch.museum","town.museum","transport.museum","tree.museum","trolley.museum","trust.museum","trustee.museum","uhren.museum","ulm.museum","undersea.museum","university.museum","usa.museum","usantiques.museum","usarts.museum","uscountryestate.museum","usculture.museum","usdecorativearts.museum","usgarden.museum","ushistory.museum","ushuaia.museum","uslivinghistory.museum","utah.museum","uvic.museum","valley.museum","vantaa.museum","versailles.museum","viking.museum","village.museum","virginia.museum","virtual.museum","virtuel.museum","vlaanderen.museum","volkenkunde.museum","wales.museum","wallonie.museum","war.museum","washingtondc.museum","watchandclock.museum","watch-and-clock.museum","western.museum","westfalen.museum","whaling.museum","wildlife.museum","williamsburg.museum","windmill.museum","workshop.museum","york.museum","yorkshire.museum","yosemite.museum","youth.museum","zoological.museum","zoology.museum","ירושלים.museum","иком.museum","mv","aero.mv","biz.mv","com.mv","coop.mv","edu.mv","gov.mv","info.mv","int.mv","mil.mv","museum.mv","name.mv","net.mv","org.mv","pro.mv","mw","ac.mw","biz.mw","co.mw","com.mw","coop.mw","edu.mw","gov.mw","int.mw","museum.mw","net.mw","org.mw","mx","com.mx","org.mx","gob.mx","edu.mx","net.mx","my","biz.my","com.my","edu.my","gov.my","mil.my","name.my","net.my","org.my","mz","ac.mz","adv.mz","co.mz","edu.mz","gov.mz","mil.mz","net.mz","org.mz","na","info.na","pro.na","name.na","school.na","or.na","dr.na","us.na","mx.na","ca.na","in.na","cc.na","tv.na","ws.na","mobi.na","co.na","com.na","org.na","name","nc","asso.nc","nom.nc","ne","net","nf","com.nf","net.nf","per.nf","rec.nf","web.nf","arts.nf","firm.nf","info.nf","other.nf","store.nf","ng","com.ng","edu.ng","gov.ng","i.ng","mil.ng","mobi.ng","name.ng","net.ng","org.ng","sch.ng","ni","ac.ni","biz.ni","co.ni","com.ni","edu.ni","gob.ni","in.ni","info.ni","int.ni","mil.ni","net.ni","nom.ni","org.ni","web.ni","nl","no","fhs.no","vgs.no","fylkesbibl.no","folkebibl.no","museum.no","idrett.no","priv.no","mil.no","stat.no","dep.no","kommune.no","herad.no","aa.no","ah.no","bu.no","fm.no","hl.no","hm.no","jan-mayen.no","mr.no","nl.no","nt.no","of.no","ol.no","oslo.no","rl.no","sf.no","st.no","svalbard.no","tm.no","tr.no","va.no","vf.no","gs.aa.no","gs.ah.no","gs.bu.no","gs.fm.no","gs.hl.no","gs.hm.no","gs.jan-mayen.no","gs.mr.no","gs.nl.no","gs.nt.no","gs.of.no","gs.ol.no","gs.oslo.no","gs.rl.no","gs.sf.no","gs.st.no","gs.svalbard.no","gs.tm.no","gs.tr.no","gs.va.no","gs.vf.no","akrehamn.no","åkrehamn.no","algard.no","ålgård.no","arna.no","brumunddal.no","bryne.no","bronnoysund.no","brønnøysund.no","drobak.no","drøbak.no","egersund.no","fetsund.no","floro.no","florø.no","fredrikstad.no","hokksund.no","honefoss.no","hønefoss.no","jessheim.no","jorpeland.no","jørpeland.no","kirkenes.no","kopervik.no","krokstadelva.no","langevag.no","langevåg.no","leirvik.no","mjondalen.no","mjøndalen.no","mo-i-rana.no","mosjoen.no","mosjøen.no","nesoddtangen.no","orkanger.no","osoyro.no","osøyro.no","raholt.no","råholt.no","sandnessjoen.no","sandnessjøen.no","skedsmokorset.no","slattum.no","spjelkavik.no","stathelle.no","stavern.no","stjordalshalsen.no","stjørdalshalsen.no","tananger.no","tranby.no","vossevangen.no","afjord.no","åfjord.no","agdenes.no","al.no","ål.no","alesund.no","ålesund.no","alstahaug.no","alta.no","áltá.no","alaheadju.no","álaheadju.no","alvdal.no","amli.no","åmli.no","amot.no","åmot.no","andebu.no","andoy.no","andøy.no","andasuolo.no","ardal.no","årdal.no","aremark.no","arendal.no","ås.no","aseral.no","åseral.no","asker.no","askim.no","askvoll.no","askoy.no","askøy.no","asnes.no","åsnes.no","audnedaln.no","aukra.no","aure.no","aurland.no","aurskog-holand.no","aurskog-høland.no","austevoll.no","austrheim.no","averoy.no","averøy.no","balestrand.no","ballangen.no","balat.no","bálát.no","balsfjord.no","bahccavuotna.no","báhccavuotna.no","bamble.no","bardu.no","beardu.no","beiarn.no","bajddar.no","bájddar.no","baidar.no","báidár.no","berg.no","bergen.no","berlevag.no","berlevåg.no","bearalvahki.no","bearalváhki.no","bindal.no","birkenes.no","bjarkoy.no","bjarkøy.no","bjerkreim.no","bjugn.no","bodo.no","bodø.no","badaddja.no","bådåddjå.no","budejju.no","bokn.no","bremanger.no","bronnoy.no","brønnøy.no","bygland.no","bykle.no","barum.no","bærum.no","bo.telemark.no","bø.telemark.no","bo.nordland.no","bø.nordland.no","bievat.no","bievát.no","bomlo.no","bømlo.no","batsfjord.no","båtsfjord.no","bahcavuotna.no","báhcavuotna.no","dovre.no","drammen.no","drangedal.no","dyroy.no","dyrøy.no","donna.no","dønna.no","eid.no","eidfjord.no","eidsberg.no","eidskog.no","eidsvoll.no","eigersund.no","elverum.no","enebakk.no","engerdal.no","etne.no","etnedal.no","evenes.no","evenassi.no","evenášši.no","evje-og-hornnes.no","farsund.no","fauske.no","fuossko.no","fuoisku.no","fedje.no","fet.no","finnoy.no","finnøy.no","fitjar.no","fjaler.no","fjell.no","flakstad.no","flatanger.no","flekkefjord.no","flesberg.no","flora.no","fla.no","flå.no","folldal.no","forsand.no","fosnes.no","frei.no","frogn.no","froland.no","frosta.no","frana.no","fræna.no","froya.no","frøya.no","fusa.no","fyresdal.no","forde.no","førde.no","gamvik.no","gangaviika.no","gáŋgaviika.no","gaular.no","gausdal.no","gildeskal.no","gildeskål.no","giske.no","gjemnes.no","gjerdrum.no","gjerstad.no","gjesdal.no","gjovik.no","gjøvik.no","gloppen.no","gol.no","gran.no","grane.no","granvin.no","gratangen.no","grimstad.no","grong.no","kraanghke.no","kråanghke.no","grue.no","gulen.no","hadsel.no","halden.no","halsa.no","hamar.no","hamaroy.no","habmer.no","hábmer.no","hapmir.no","hápmir.no","hammerfest.no","hammarfeasta.no","hámmárfeasta.no","haram.no","hareid.no","harstad.no","hasvik.no","aknoluokta.no","ákŋoluokta.no","hattfjelldal.no","aarborte.no","haugesund.no","hemne.no","hemnes.no","hemsedal.no","heroy.more-og-romsdal.no","herøy.møre-og-romsdal.no","heroy.nordland.no","herøy.nordland.no","hitra.no","hjartdal.no","hjelmeland.no","hobol.no","hobøl.no","hof.no","hol.no","hole.no","holmestrand.no","holtalen.no","holtålen.no","hornindal.no","horten.no","hurdal.no","hurum.no","hvaler.no","hyllestad.no","hagebostad.no","hægebostad.no","hoyanger.no","høyanger.no","hoylandet.no","høylandet.no","ha.no","hå.no","ibestad.no","inderoy.no","inderøy.no","iveland.no","jevnaker.no","jondal.no","jolster.no","jølster.no","karasjok.no","karasjohka.no","kárášjohka.no","karlsoy.no","galsa.no","gálsá.no","karmoy.no","karmøy.no","kautokeino.no","guovdageaidnu.no","klepp.no","klabu.no","klæbu.no","kongsberg.no","kongsvinger.no","kragero.no","kragerø.no","kristiansand.no","kristiansund.no","krodsherad.no","krødsherad.no","kvalsund.no","rahkkeravju.no","ráhkkerávju.no","kvam.no","kvinesdal.no","kvinnherad.no","kviteseid.no","kvitsoy.no","kvitsøy.no","kvafjord.no","kvæfjord.no","giehtavuoatna.no","kvanangen.no","kvænangen.no","navuotna.no","návuotna.no","kafjord.no","kåfjord.no","gaivuotna.no","gáivuotna.no","larvik.no","lavangen.no","lavagis.no","loabat.no","loabát.no","lebesby.no","davvesiida.no","leikanger.no","leirfjord.no","leka.no","leksvik.no","lenvik.no","leangaviika.no","leaŋgaviika.no","lesja.no","levanger.no","lier.no","lierne.no","lillehammer.no","lillesand.no","lindesnes.no","lindas.no","lindås.no","lom.no","loppa.no","lahppi.no","láhppi.no","lund.no","lunner.no","luroy.no","lurøy.no","luster.no","lyngdal.no","lyngen.no","ivgu.no","lardal.no","lerdal.no","lærdal.no","lodingen.no","lødingen.no","lorenskog.no","lørenskog.no","loten.no","løten.no","malvik.no","masoy.no","måsøy.no","muosat.no","muosát.no","mandal.no","marker.no","marnardal.no","masfjorden.no","meland.no","meldal.no","melhus.no","meloy.no","meløy.no","meraker.no","meråker.no","moareke.no","moåreke.no","midsund.no","midtre-gauldal.no","modalen.no","modum.no","molde.no","moskenes.no","moss.no","mosvik.no","malselv.no","målselv.no","malatvuopmi.no","málatvuopmi.no","namdalseid.no","aejrie.no","namsos.no","namsskogan.no","naamesjevuemie.no","nååmesjevuemie.no","laakesvuemie.no","nannestad.no","narvik.no","narviika.no","naustdal.no","nedre-eiker.no","nes.akershus.no","nes.buskerud.no","nesna.no","nesodden.no","nesseby.no","unjarga.no","unjárga.no","nesset.no","nissedal.no","nittedal.no","nord-aurdal.no","nord-fron.no","nord-odal.no","norddal.no","nordkapp.no","davvenjarga.no","davvenjárga.no","nordre-land.no","nordreisa.no","raisa.no","ráisa.no","nore-og-uvdal.no","notodden.no","naroy.no","nærøy.no","notteroy.no","nøtterøy.no","odda.no","oksnes.no","øksnes.no","oppdal.no","oppegard.no","oppegård.no","orkdal.no","orland.no","ørland.no","orskog.no","ørskog.no","orsta.no","ørsta.no","os.hedmark.no","os.hordaland.no","osen.no","osteroy.no","osterøy.no","ostre-toten.no","østre-toten.no","overhalla.no","ovre-eiker.no","øvre-eiker.no","oyer.no","øyer.no","oygarden.no","øygarden.no","oystre-slidre.no","øystre-slidre.no","porsanger.no","porsangu.no","porsáŋgu.no","porsgrunn.no","radoy.no","radøy.no","rakkestad.no","rana.no","ruovat.no","randaberg.no","rauma.no","rendalen.no","rennebu.no","rennesoy.no","rennesøy.no","rindal.no","ringebu.no","ringerike.no","ringsaker.no","rissa.no","risor.no","risør.no","roan.no","rollag.no","rygge.no","ralingen.no","rælingen.no","rodoy.no","rødøy.no","romskog.no","rømskog.no","roros.no","røros.no","rost.no","røst.no","royken.no","røyken.no","royrvik.no","røyrvik.no","rade.no","råde.no","salangen.no","siellak.no","saltdal.no","salat.no","sálát.no","sálat.no","samnanger.no","sande.more-og-romsdal.no","sande.møre-og-romsdal.no","sande.vestfold.no","sandefjord.no","sandnes.no","sandoy.no","sandøy.no","sarpsborg.no","sauda.no","sauherad.no","sel.no","selbu.no","selje.no","seljord.no","sigdal.no","siljan.no","sirdal.no","skaun.no","skedsmo.no","ski.no","skien.no","skiptvet.no","skjervoy.no","skjervøy.no","skierva.no","skiervá.no","skjak.no","skjåk.no","skodje.no","skanland.no","skånland.no","skanit.no","skánit.no","smola.no","smøla.no","snillfjord.no","snasa.no","snåsa.no","snoasa.no","snaase.no","snåase.no","sogndal.no","sokndal.no","sola.no","solund.no","songdalen.no","sortland.no","spydeberg.no","stange.no","stavanger.no","steigen.no","steinkjer.no","stjordal.no","stjørdal.no","stokke.no","stor-elvdal.no","stord.no","stordal.no","storfjord.no","omasvuotna.no","strand.no","stranda.no","stryn.no","sula.no","suldal.no","sund.no","sunndal.no","surnadal.no","sveio.no","svelvik.no","sykkylven.no","sogne.no","søgne.no","somna.no","sømna.no","sondre-land.no","søndre-land.no","sor-aurdal.no","sør-aurdal.no","sor-fron.no","sør-fron.no","sor-odal.no","sør-odal.no","sor-varanger.no","sør-varanger.no","matta-varjjat.no","mátta-várjjat.no","sorfold.no","sørfold.no","sorreisa.no","sørreisa.no","sorum.no","sørum.no","tana.no","deatnu.no","time.no","tingvoll.no","tinn.no","tjeldsund.no","dielddanuorri.no","tjome.no","tjøme.no","tokke.no","tolga.no","torsken.no","tranoy.no","tranøy.no","tromso.no","tromsø.no","tromsa.no","romsa.no","trondheim.no","troandin.no","trysil.no","trana.no","træna.no","trogstad.no","trøgstad.no","tvedestrand.no","tydal.no","tynset.no","tysfjord.no","divtasvuodna.no","divttasvuotna.no","tysnes.no","tysvar.no","tysvær.no","tonsberg.no","tønsberg.no","ullensaker.no","ullensvang.no","ulvik.no","utsira.no","vadso.no","vadsø.no","cahcesuolo.no","čáhcesuolo.no","vaksdal.no","valle.no","vang.no","vanylven.no","vardo.no","vardø.no","varggat.no","várggát.no","vefsn.no","vaapste.no","vega.no","vegarshei.no","vegårshei.no","vennesla.no","verdal.no","verran.no","vestby.no","vestnes.no","vestre-slidre.no","vestre-toten.no","vestvagoy.no","vestvågøy.no","vevelstad.no","vik.no","vikna.no","vindafjord.no","volda.no","voss.no","varoy.no","værøy.no","vagan.no","vågan.no","voagat.no","vagsoy.no","vågsøy.no","vaga.no","vågå.no","valer.ostfold.no","våler.østfold.no","valer.hedmark.no","våler.hedmark.no","*.np","nr","biz.nr","info.nr","gov.nr","edu.nr","org.nr","net.nr","com.nr","nu","nz","ac.nz","co.nz","cri.nz","geek.nz","gen.nz","govt.nz","health.nz","iwi.nz","kiwi.nz","maori.nz","mil.nz","māori.nz","net.nz","org.nz","parliament.nz","school.nz","om","co.om","com.om","edu.om","gov.om","med.om","museum.om","net.om","org.om","pro.om","onion","org","pa","ac.pa","gob.pa","com.pa","org.pa","sld.pa","edu.pa","net.pa","ing.pa","abo.pa","med.pa","nom.pa","pe","edu.pe","gob.pe","nom.pe","mil.pe","org.pe","com.pe","net.pe","pf","com.pf","org.pf","edu.pf","*.pg","ph","com.ph","net.ph","org.ph","gov.ph","edu.ph","ngo.ph","mil.ph","i.ph","pk","com.pk","net.pk","edu.pk","org.pk","fam.pk","biz.pk","web.pk","gov.pk","gob.pk","gok.pk","gon.pk","gop.pk","gos.pk","info.pk","pl","com.pl","net.pl","org.pl","aid.pl","agro.pl","atm.pl","auto.pl","biz.pl","edu.pl","gmina.pl","gsm.pl","info.pl","mail.pl","miasta.pl","media.pl","mil.pl","nieruchomosci.pl","nom.pl","pc.pl","powiat.pl","priv.pl","realestate.pl","rel.pl","sex.pl","shop.pl","sklep.pl","sos.pl","szkola.pl","targi.pl","tm.pl","tourism.pl","travel.pl","turystyka.pl","gov.pl","ap.gov.pl","ic.gov.pl","is.gov.pl","us.gov.pl","kmpsp.gov.pl","kppsp.gov.pl","kwpsp.gov.pl","psp.gov.pl","wskr.gov.pl","kwp.gov.pl","mw.gov.pl","ug.gov.pl","um.gov.pl","umig.gov.pl","ugim.gov.pl","upow.gov.pl","uw.gov.pl","starostwo.gov.pl","pa.gov.pl","po.gov.pl","psse.gov.pl","pup.gov.pl","rzgw.gov.pl","sa.gov.pl","so.gov.pl","sr.gov.pl","wsa.gov.pl","sko.gov.pl","uzs.gov.pl","wiih.gov.pl","winb.gov.pl","pinb.gov.pl","wios.gov.pl","witd.gov.pl","wzmiuw.gov.pl","piw.gov.pl","wiw.gov.pl","griw.gov.pl","wif.gov.pl","oum.gov.pl","sdn.gov.pl","zp.gov.pl","uppo.gov.pl","mup.gov.pl","wuoz.gov.pl","konsulat.gov.pl","oirm.gov.pl","augustow.pl","babia-gora.pl","bedzin.pl","beskidy.pl","bialowieza.pl","bialystok.pl","bielawa.pl","bieszczady.pl","boleslawiec.pl","bydgoszcz.pl","bytom.pl","cieszyn.pl","czeladz.pl","czest.pl","dlugoleka.pl","elblag.pl","elk.pl","glogow.pl","gniezno.pl","gorlice.pl","grajewo.pl","ilawa.pl","jaworzno.pl","jelenia-gora.pl","jgora.pl","kalisz.pl","kazimierz-dolny.pl","karpacz.pl","kartuzy.pl","kaszuby.pl","katowice.pl","kepno.pl","ketrzyn.pl","klodzko.pl","kobierzyce.pl","kolobrzeg.pl","konin.pl","konskowola.pl","kutno.pl","lapy.pl","lebork.pl","legnica.pl","lezajsk.pl","limanowa.pl","lomza.pl","lowicz.pl","lubin.pl","lukow.pl","malbork.pl","malopolska.pl","mazowsze.pl","mazury.pl","mielec.pl","mielno.pl","mragowo.pl","naklo.pl","nowaruda.pl","nysa.pl","olawa.pl","olecko.pl","olkusz.pl","olsztyn.pl","opoczno.pl","opole.pl","ostroda.pl","ostroleka.pl","ostrowiec.pl","ostrowwlkp.pl","pila.pl","pisz.pl","podhale.pl","podlasie.pl","polkowice.pl","pomorze.pl","pomorskie.pl","prochowice.pl","pruszkow.pl","przeworsk.pl","pulawy.pl","radom.pl","rawa-maz.pl","rybnik.pl","rzeszow.pl","sanok.pl","sejny.pl","slask.pl","slupsk.pl","sosnowiec.pl","stalowa-wola.pl","skoczow.pl","starachowice.pl","stargard.pl","suwalki.pl","swidnica.pl","swiebodzin.pl","swinoujscie.pl","szczecin.pl","szczytno.pl","tarnobrzeg.pl","tgory.pl","turek.pl","tychy.pl","ustka.pl","walbrzych.pl","warmia.pl","warszawa.pl","waw.pl","wegrow.pl","wielun.pl","wlocl.pl","wloclawek.pl","wodzislaw.pl","wolomin.pl","wroclaw.pl","zachpomor.pl","zagan.pl","zarow.pl","zgora.pl","zgorzelec.pl","pm","pn","gov.pn","co.pn","org.pn","edu.pn","net.pn","post","pr","com.pr","net.pr","org.pr","gov.pr","edu.pr","isla.pr","pro.pr","biz.pr","info.pr","name.pr","est.pr","prof.pr","ac.pr","pro","aaa.pro","aca.pro","acct.pro","avocat.pro","bar.pro","cpa.pro","eng.pro","jur.pro","law.pro","med.pro","recht.pro","ps","edu.ps","gov.ps","sec.ps","plo.ps","com.ps","org.ps","net.ps","pt","net.pt","gov.pt","org.pt","edu.pt","int.pt","publ.pt","com.pt","nome.pt","pw","co.pw","ne.pw","or.pw","ed.pw","go.pw","belau.pw","py","com.py","coop.py","edu.py","gov.py","mil.py","net.py","org.py","qa","com.qa","edu.qa","gov.qa","mil.qa","name.qa","net.qa","org.qa","sch.qa","re","asso.re","com.re","nom.re","ro","arts.ro","com.ro","firm.ro","info.ro","nom.ro","nt.ro","org.ro","rec.ro","store.ro","tm.ro","www.ro","rs","ac.rs","co.rs","edu.rs","gov.rs","in.rs","org.rs","ru","rw","ac.rw","co.rw","coop.rw","gov.rw","mil.rw","net.rw","org.rw","sa","com.sa","net.sa","org.sa","gov.sa","med.sa","pub.sa","edu.sa","sch.sa","sb","com.sb","edu.sb","gov.sb","net.sb","org.sb","sc","com.sc","gov.sc","net.sc","org.sc","edu.sc","sd","com.sd","net.sd","org.sd","edu.sd","med.sd","tv.sd","gov.sd","info.sd","se","a.se","ac.se","b.se","bd.se","brand.se","c.se","d.se","e.se","f.se","fh.se","fhsk.se","fhv.se","g.se","h.se","i.se","k.se","komforb.se","kommunalforbund.se","komvux.se","l.se","lanbib.se","m.se","n.se","naturbruksgymn.se","o.se","org.se","p.se","parti.se","pp.se","press.se","r.se","s.se","t.se","tm.se","u.se","w.se","x.se","y.se","z.se","sg","com.sg","net.sg","org.sg","gov.sg","edu.sg","per.sg","sh","com.sh","net.sh","gov.sh","org.sh","mil.sh","si","sj","sk","sl","com.sl","net.sl","edu.sl","gov.sl","org.sl","sm","sn","art.sn","com.sn","edu.sn","gouv.sn","org.sn","perso.sn","univ.sn","so","com.so","edu.so","gov.so","me.so","net.so","org.so","sr","ss","biz.ss","com.ss","edu.ss","gov.ss","me.ss","net.ss","org.ss","sch.ss","st","co.st","com.st","consulado.st","edu.st","embaixada.st","mil.st","net.st","org.st","principe.st","saotome.st","store.st","su","sv","com.sv","edu.sv","gob.sv","org.sv","red.sv","sx","gov.sx","sy","edu.sy","gov.sy","net.sy","mil.sy","com.sy","org.sy","sz","co.sz","ac.sz","org.sz","tc","td","tel","tf","tg","th","ac.th","co.th","go.th","in.th","mi.th","net.th","or.th","tj","ac.tj","biz.tj","co.tj","com.tj","edu.tj","go.tj","gov.tj","int.tj","mil.tj","name.tj","net.tj","nic.tj","org.tj","test.tj","web.tj","tk","tl","gov.tl","tm","com.tm","co.tm","org.tm","net.tm","nom.tm","gov.tm","mil.tm","edu.tm","tn","com.tn","ens.tn","fin.tn","gov.tn","ind.tn","info.tn","intl.tn","mincom.tn","nat.tn","net.tn","org.tn","perso.tn","tourism.tn","to","com.to","gov.to","net.to","org.to","edu.to","mil.to","tr","av.tr","bbs.tr","bel.tr","biz.tr","com.tr","dr.tr","edu.tr","gen.tr","gov.tr","info.tr","mil.tr","k12.tr","kep.tr","name.tr","net.tr","org.tr","pol.tr","tel.tr","tsk.tr","tv.tr","web.tr","nc.tr","gov.nc.tr","tt","co.tt","com.tt","org.tt","net.tt","biz.tt","info.tt","pro.tt","int.tt","coop.tt","jobs.tt","mobi.tt","travel.tt","museum.tt","aero.tt","name.tt","gov.tt","edu.tt","tv","tw","edu.tw","gov.tw","mil.tw","com.tw","net.tw","org.tw","idv.tw","game.tw","ebiz.tw","club.tw","網路.tw","組織.tw","商業.tw","tz","ac.tz","co.tz","go.tz","hotel.tz","info.tz","me.tz","mil.tz","mobi.tz","ne.tz","or.tz","sc.tz","tv.tz","ua","com.ua","edu.ua","gov.ua","in.ua","net.ua","org.ua","cherkassy.ua","cherkasy.ua","chernigov.ua","chernihiv.ua","chernivtsi.ua","chernovtsy.ua","ck.ua","cn.ua","cr.ua","crimea.ua","cv.ua","dn.ua","dnepropetrovsk.ua","dnipropetrovsk.ua","donetsk.ua","dp.ua","if.ua","ivano-frankivsk.ua","kh.ua","kharkiv.ua","kharkov.ua","kherson.ua","khmelnitskiy.ua","khmelnytskyi.ua","kiev.ua","kirovograd.ua","km.ua","kr.ua","krym.ua","ks.ua","kv.ua","kyiv.ua","lg.ua","lt.ua","lugansk.ua","lutsk.ua","lv.ua","lviv.ua","mk.ua","mykolaiv.ua","nikolaev.ua","od.ua","odesa.ua","odessa.ua","pl.ua","poltava.ua","rivne.ua","rovno.ua","rv.ua","sb.ua","sebastopol.ua","sevastopol.ua","sm.ua","sumy.ua","te.ua","ternopil.ua","uz.ua","uzhgorod.ua","vinnica.ua","vinnytsia.ua","vn.ua","volyn.ua","yalta.ua","zaporizhzhe.ua","zaporizhzhia.ua","zhitomir.ua","zhytomyr.ua","zp.ua","zt.ua","ug","co.ug","or.ug","ac.ug","sc.ug","go.ug","ne.ug","com.ug","org.ug","uk","ac.uk","co.uk","gov.uk","ltd.uk","me.uk","net.uk","nhs.uk","org.uk","plc.uk","police.uk","*.sch.uk","us","dni.us","fed.us","isa.us","kids.us","nsn.us","ak.us","al.us","ar.us","as.us","az.us","ca.us","co.us","ct.us","dc.us","de.us","fl.us","ga.us","gu.us","hi.us","ia.us","id.us","il.us","in.us","ks.us","ky.us","la.us","ma.us","md.us","me.us","mi.us","mn.us","mo.us","ms.us","mt.us","nc.us","nd.us","ne.us","nh.us","nj.us","nm.us","nv.us","ny.us","oh.us","ok.us","or.us","pa.us","pr.us","ri.us","sc.us","sd.us","tn.us","tx.us","ut.us","vi.us","vt.us","va.us","wa.us","wi.us","wv.us","wy.us","k12.ak.us","k12.al.us","k12.ar.us","k12.as.us","k12.az.us","k12.ca.us","k12.co.us","k12.ct.us","k12.dc.us","k12.de.us","k12.fl.us","k12.ga.us","k12.gu.us","k12.ia.us","k12.id.us","k12.il.us","k12.in.us","k12.ks.us","k12.ky.us","k12.la.us","k12.ma.us","k12.md.us","k12.me.us","k12.mi.us","k12.mn.us","k12.mo.us","k12.ms.us","k12.mt.us","k12.nc.us","k12.ne.us","k12.nh.us","k12.nj.us","k12.nm.us","k12.nv.us","k12.ny.us","k12.oh.us","k12.ok.us","k12.or.us","k12.pa.us","k12.pr.us","k12.sc.us","k12.tn.us","k12.tx.us","k12.ut.us","k12.vi.us","k12.vt.us","k12.va.us","k12.wa.us","k12.wi.us","k12.wy.us","cc.ak.us","cc.al.us","cc.ar.us","cc.as.us","cc.az.us","cc.ca.us","cc.co.us","cc.ct.us","cc.dc.us","cc.de.us","cc.fl.us","cc.ga.us","cc.gu.us","cc.hi.us","cc.ia.us","cc.id.us","cc.il.us","cc.in.us","cc.ks.us","cc.ky.us","cc.la.us","cc.ma.us","cc.md.us","cc.me.us","cc.mi.us","cc.mn.us","cc.mo.us","cc.ms.us","cc.mt.us","cc.nc.us","cc.nd.us","cc.ne.us","cc.nh.us","cc.nj.us","cc.nm.us","cc.nv.us","cc.ny.us","cc.oh.us","cc.ok.us","cc.or.us","cc.pa.us","cc.pr.us","cc.ri.us","cc.sc.us","cc.sd.us","cc.tn.us","cc.tx.us","cc.ut.us","cc.vi.us","cc.vt.us","cc.va.us","cc.wa.us","cc.wi.us","cc.wv.us","cc.wy.us","lib.ak.us","lib.al.us","lib.ar.us","lib.as.us","lib.az.us","lib.ca.us","lib.co.us","lib.ct.us","lib.dc.us","lib.fl.us","lib.ga.us","lib.gu.us","lib.hi.us","lib.ia.us","lib.id.us","lib.il.us","lib.in.us","lib.ks.us","lib.ky.us","lib.la.us","lib.ma.us","lib.md.us","lib.me.us","lib.mi.us","lib.mn.us","lib.mo.us","lib.ms.us","lib.mt.us","lib.nc.us","lib.nd.us","lib.ne.us","lib.nh.us","lib.nj.us","lib.nm.us","lib.nv.us","lib.ny.us","lib.oh.us","lib.ok.us","lib.or.us","lib.pa.us","lib.pr.us","lib.ri.us","lib.sc.us","lib.sd.us","lib.tn.us","lib.tx.us","lib.ut.us","lib.vi.us","lib.vt.us","lib.va.us","lib.wa.us","lib.wi.us","lib.wy.us","pvt.k12.ma.us","chtr.k12.ma.us","paroch.k12.ma.us","ann-arbor.mi.us","cog.mi.us","dst.mi.us","eaton.mi.us","gen.mi.us","mus.mi.us","tec.mi.us","washtenaw.mi.us","uy","com.uy","edu.uy","gub.uy","mil.uy","net.uy","org.uy","uz","co.uz","com.uz","net.uz","org.uz","va","vc","com.vc","net.vc","org.vc","gov.vc","mil.vc","edu.vc","ve","arts.ve","bib.ve","co.ve","com.ve","e12.ve","edu.ve","firm.ve","gob.ve","gov.ve","info.ve","int.ve","mil.ve","net.ve","nom.ve","org.ve","rar.ve","rec.ve","store.ve","tec.ve","web.ve","vg","vi","co.vi","com.vi","k12.vi","net.vi","org.vi","vn","com.vn","net.vn","org.vn","edu.vn","gov.vn","int.vn","ac.vn","biz.vn","info.vn","name.vn","pro.vn","health.vn","vu","com.vu","edu.vu","net.vu","org.vu","wf","ws","com.ws","net.ws","org.ws","gov.ws","edu.ws","yt","امارات","հայ","বাংলা","бг","البحرين","бел","中国","中國","الجزائر","مصر","ею","ευ","موريتانيا","გე","ελ","香港","公司.香港","教育.香港","政府.香港","個人.香港","網絡.香港","組織.香港","ಭಾರತ","ଭାରତ","ভাৰত","भारतम्","भारोत","ڀارت","ഭാരതം","भारत","بارت","بھارت","భారత్","ભારત","ਭਾਰਤ","ভারত","இந்தியா","ایران","ايران","عراق","الاردن","한국","қаз","ລາວ","ලංකා","இலங்கை","المغرب","мкд","мон","澳門","澳门","مليسيا","عمان","پاکستان","پاكستان","فلسطين","срб","пр.срб","орг.срб","обр.срб","од.срб","упр.срб","ак.срб","рф","قطر","السعودية","السعودیة","السعودیۃ","السعوديه","سودان","新加坡","சிங்கப்பூர்","سورية","سوريا","ไทย","ศึกษา.ไทย","ธุรกิจ.ไทย","รัฐบาล.ไทย","ทหาร.ไทย","เน็ต.ไทย","องค์กร.ไทย","تونس","台灣","台湾","臺灣","укр","اليمن","xxx","ye","com.ye","edu.ye","gov.ye","net.ye","mil.ye","org.ye","ac.za","agric.za","alt.za","co.za","edu.za","gov.za","grondar.za","law.za","mil.za","net.za","ngo.za","nic.za","nis.za","nom.za","org.za","school.za","tm.za","web.za","zm","ac.zm","biz.zm","co.zm","com.zm","edu.zm","gov.zm","info.zm","mil.zm","net.zm","org.zm","sch.zm","zw","ac.zw","co.zw","gov.zw","mil.zw","org.zw","aaa","aarp","abarth","abb","abbott","abbvie","abc","able","abogado","abudhabi","academy","accenture","accountant","accountants","aco","actor","adac","ads","adult","aeg","aetna","afl","africa","agakhan","agency","aig","airbus","airforce","airtel","akdn","alfaromeo","alibaba","alipay","allfinanz","allstate","ally","alsace","alstom","amazon","americanexpress","americanfamily","amex","amfam","amica","amsterdam","analytics","android","anquan","anz","aol","apartments","app","apple","aquarelle","arab","aramco","archi","army","art","arte","asda","associates","athleta","attorney","auction","audi","audible","audio","auspost","author","auto","autos","avianca","aws","axa","azure","baby","baidu","banamex","bananarepublic","band","bank","bar","barcelona","barclaycard","barclays","barefoot","bargains","baseball","basketball","bauhaus","bayern","bbc","bbt","bbva","bcg","bcn","beats","beauty","beer","bentley","berlin","best","bestbuy","bet","bharti","bible","bid","bike","bing","bingo","bio","black","blackfriday","blockbuster","blog","bloomberg","blue","bms","bmw","bnpparibas","boats","boehringer","bofa","bom","bond","boo","book","booking","bosch","bostik","boston","bot","boutique","box","bradesco","bridgestone","broadway","broker","brother","brussels","bugatti","build","builders","business","buy","buzz","bzh","cab","cafe","cal","call","calvinklein","cam","camera","camp","cancerresearch","canon","capetown","capital","capitalone","car","caravan","cards","care","career","careers","cars","casa","case","cash","casino","catering","catholic","cba","cbn","cbre","cbs","center","ceo","cern","cfa","cfd","chanel","channel","charity","chase","chat","cheap","chintai","christmas","chrome","church","cipriani","circle","cisco","citadel","citi","citic","city","cityeats","claims","cleaning","click","clinic","clinique","clothing","cloud","club","clubmed","coach","codes","coffee","college","cologne","comcast","commbank","community","company","compare","computer","comsec","condos","construction","consulting","contact","contractors","cooking","cookingchannel","cool","corsica","country","coupon","coupons","courses","cpa","credit","creditcard","creditunion","cricket","crown","crs","cruise","cruises","cuisinella","cymru","cyou","dabur","dad","dance","data","date","dating","datsun","day","dclk","dds","deal","dealer","deals","degree","delivery","dell","deloitte","delta","democrat","dental","dentist","desi","design","dev","dhl","diamonds","diet","digital","direct","directory","discount","discover","dish","diy","dnp","docs","doctor","dog","domains","dot","download","drive","dtv","dubai","dunlop","dupont","durban","dvag","dvr","earth","eat","eco","edeka","education","email","emerck","energy","engineer","engineering","enterprises","epson","equipment","ericsson","erni","esq","estate","etisalat","eurovision","eus","events","exchange","expert","exposed","express","extraspace","fage","fail","fairwinds","faith","family","fan","fans","farm","farmers","fashion","fast","fedex","feedback","ferrari","ferrero","fiat","fidelity","fido","film","final","finance","financial","fire","firestone","firmdale","fish","fishing","fit","fitness","flickr","flights","flir","florist","flowers","fly","foo","food","foodnetwork","football","ford","forex","forsale","forum","foundation","fox","free","fresenius","frl","frogans","frontdoor","frontier","ftr","fujitsu","fun","fund","furniture","futbol","fyi","gal","gallery","gallo","gallup","game","games","gap","garden","gay","gbiz","gdn","gea","gent","genting","george","ggee","gift","gifts","gives","giving","glass","gle","global","globo","gmail","gmbh","gmo","gmx","godaddy","gold","goldpoint","golf","goo","goodyear","goog","google","gop","got","grainger","graphics","gratis","green","gripe","grocery","group","guardian","gucci","guge","guide","guitars","guru","hair","hamburg","hangout","haus","hbo","hdfc","hdfcbank","health","healthcare","help","helsinki","here","hermes","hgtv","hiphop","hisamitsu","hitachi","hiv","hkt","hockey","holdings","holiday","homedepot","homegoods","homes","homesense","honda","horse","hospital","host","hosting","hot","hoteles","hotels","hotmail","house","how","hsbc","hughes","hyatt","hyundai","ibm","icbc","ice","icu","ieee","ifm","ikano","imamat","imdb","immo","immobilien","inc","industries","infiniti","ing","ink","institute","insurance","insure","international","intuit","investments","ipiranga","irish","ismaili","ist","istanbul","itau","itv","jaguar","java","jcb","jeep","jetzt","jewelry","jio","jll","jmp","jnj","joburg","jot","joy","jpmorgan","jprs","juegos","juniper","kaufen","kddi","kerryhotels","kerrylogistics","kerryproperties","kfh","kia","kids","kim","kinder","kindle","kitchen","kiwi","koeln","komatsu","kosher","kpmg","kpn","krd","kred","kuokgroup","kyoto","lacaixa","lamborghini","lamer","lancaster","lancia","land","landrover","lanxess","lasalle","lat","latino","latrobe","law","lawyer","lds","lease","leclerc","lefrak","legal","lego","lexus","lgbt","lidl","life","lifeinsurance","lifestyle","lighting","like","lilly","limited","limo","lincoln","linde","link","lipsy","live","living","llc","llp","loan","loans","locker","locus","loft","lol","london","lotte","lotto","love","lpl","lplfinancial","ltd","ltda","lundbeck","luxe","luxury","macys","madrid","maif","maison","makeup","man","management","mango","map","market","marketing","markets","marriott","marshalls","maserati","mattel","mba","mckinsey","med","media","meet","melbourne","meme","memorial","men","menu","merckmsd","miami","microsoft","mini","mint","mit","mitsubishi","mlb","mls","mma","mobile","moda","moe","moi","mom","monash","money","monster","mormon","mortgage","moscow","moto","motorcycles","mov","movie","msd","mtn","mtr","music","mutual","nab","nagoya","natura","navy","nba","nec","netbank","netflix","network","neustar","new","news","next","nextdirect","nexus","nfl","ngo","nhk","nico","nike","nikon","ninja","nissan","nissay","nokia","northwesternmutual","norton","now","nowruz","nowtv","nra","nrw","ntt","nyc","obi","observer","office","okinawa","olayan","olayangroup","oldnavy","ollo","omega","one","ong","onl","online","ooo","open","oracle","orange","organic","origins","osaka","otsuka","ott","ovh","page","panasonic","paris","pars","partners","parts","party","passagens","pay","pccw","pet","pfizer","pharmacy","phd","philips","phone","photo","photography","photos","physio","pics","pictet","pictures","pid","pin","ping","pink","pioneer","pizza","place","play","playstation","plumbing","plus","pnc","pohl","poker","politie","porn","pramerica","praxi","press","prime","prod","productions","prof","progressive","promo","properties","property","protection","pru","prudential","pub","pwc","qpon","quebec","quest","racing","radio","read","realestate","realtor","realty","recipes","red","redstone","redumbrella","rehab","reise","reisen","reit","reliance","ren","rent","rentals","repair","report","republican","rest","restaurant","review","reviews","rexroth","rich","richardli","ricoh","ril","rio","rip","rocher","rocks","rodeo","rogers","room","rsvp","rugby","ruhr","run","rwe","ryukyu","saarland","safe","safety","sakura","sale","salon","samsclub","samsung","sandvik","sandvikcoromant","sanofi","sap","sarl","sas","save","saxo","sbi","sbs","sca","scb","schaeffler","schmidt","scholarships","school","schule","schwarz","science","scot","search","seat","secure","security","seek","select","sener","services","ses","seven","sew","sex","sexy","sfr","shangrila","sharp","shaw","shell","shia","shiksha","shoes","shop","shopping","shouji","show","showtime","silk","sina","singles","site","ski","skin","sky","skype","sling","smart","smile","sncf","soccer","social","softbank","software","sohu","solar","solutions","song","sony","soy","spa","space","sport","spot","srl","stada","staples","star","statebank","statefarm","stc","stcgroup","stockholm","storage","store","stream","studio","study","style","sucks","supplies","supply","support","surf","surgery","suzuki","swatch","swiss","sydney","systems","tab","taipei","talk","taobao","target","tatamotors","tatar","tattoo","tax","taxi","tci","tdk","team","tech","technology","temasek","tennis","teva","thd","theater","theatre","tiaa","tickets","tienda","tiffany","tips","tires","tirol","tjmaxx","tjx","tkmaxx","tmall","today","tokyo","tools","top","toray","toshiba","total","tours","town","toyota","toys","trade","trading","training","travel","travelchannel","travelers","travelersinsurance","trust","trv","tube","tui","tunes","tushu","tvs","ubank","ubs","unicom","university","uno","uol","ups","vacations","vana","vanguard","vegas","ventures","verisign","versicherung","vet","viajes","video","vig","viking","villas","vin","vip","virgin","visa","vision","viva","vivo","vlaanderen","vodka","volkswagen","volvo","vote","voting","voto","voyage","vuelos","wales","walmart","walter","wang","wanggou","watch","watches","weather","weatherchannel","webcam","weber","website","wedding","weibo","weir","whoswho","wien","wiki","williamhill","win","windows","wine","winners","wme","wolterskluwer","woodside","work","works","world","wow","wtc","wtf","xbox","xerox","xfinity","xihuan","xin","कॉम","セール","佛山","慈善","集团","在线","点看","คอม","八卦","موقع","公益","公司","香格里拉","网站","移动","我爱你","москва","католик","онлайн","сайт","联通","קום","时尚","微博","淡马锡","ファッション","орг","नेट","ストア","アマゾン","삼성","商标","商店","商城","дети","ポイント","新闻","家電","كوم","中文网","中信","娱乐","谷歌","電訊盈科","购物","クラウド","通販","网店","संगठन","餐厅","网络","ком","亚马逊","诺基亚","食品","飞利浦","手机","ارامكو","العليان","اتصالات","بازار","ابوظبي","كاثوليك","همراه","닷컴","政府","شبكة","بيتك","عرب","机构","组织机构","健康","招聘","рус","大拿","みんな","グーグル","世界","書籍","网址","닷넷","コム","天主教","游戏","vermögensberater","vermögensberatung","企业","信息","嘉里大酒店","嘉里","广东","政务","xyz","yachts","yahoo","yamaxun","yandex","yodobashi","yoga","yokohama","you","youtube","yun","zappos","zara","zero","zip","zone","zuerich","cc.ua","inf.ua","ltd.ua","611.to","graphox.us","*.devcdnaccesso.com","adobeaemcloud.com","*.dev.adobeaemcloud.com","hlx.live","adobeaemcloud.net","hlx.page","hlx3.page","beep.pl","airkitapps.com","airkitapps-au.com","airkitapps.eu","aivencloud.com","barsy.ca","*.compute.estate","*.alces.network","kasserver.com","altervista.org","alwaysdata.net","cloudfront.net","*.compute.amazonaws.com","*.compute-1.amazonaws.com","*.compute.amazonaws.com.cn","us-east-1.amazonaws.com","cn-north-1.eb.amazonaws.com.cn","cn-northwest-1.eb.amazonaws.com.cn","elasticbeanstalk.com","ap-northeast-1.elasticbeanstalk.com","ap-northeast-2.elasticbeanstalk.com","ap-northeast-3.elasticbeanstalk.com","ap-south-1.elasticbeanstalk.com","ap-southeast-1.elasticbeanstalk.com","ap-southeast-2.elasticbeanstalk.com","ca-central-1.elasticbeanstalk.com","eu-central-1.elasticbeanstalk.com","eu-west-1.elasticbeanstalk.com","eu-west-2.elasticbeanstalk.com","eu-west-3.elasticbeanstalk.com","sa-east-1.elasticbeanstalk.com","us-east-1.elasticbeanstalk.com","us-east-2.elasticbeanstalk.com","us-gov-west-1.elasticbeanstalk.com","us-west-1.elasticbeanstalk.com","us-west-2.elasticbeanstalk.com","*.elb.amazonaws.com","*.elb.amazonaws.com.cn","awsglobalaccelerator.com","s3.amazonaws.com","s3-ap-northeast-1.amazonaws.com","s3-ap-northeast-2.amazonaws.com","s3-ap-south-1.amazonaws.com","s3-ap-southeast-1.amazonaws.com","s3-ap-southeast-2.amazonaws.com","s3-ca-central-1.amazonaws.com","s3-eu-central-1.amazonaws.com","s3-eu-west-1.amazonaws.com","s3-eu-west-2.amazonaws.com","s3-eu-west-3.amazonaws.com","s3-external-1.amazonaws.com","s3-fips-us-gov-west-1.amazonaws.com","s3-sa-east-1.amazonaws.com","s3-us-gov-west-1.amazonaws.com","s3-us-east-2.amazonaws.com","s3-us-west-1.amazonaws.com","s3-us-west-2.amazonaws.com","s3.ap-northeast-2.amazonaws.com","s3.ap-south-1.amazonaws.com","s3.cn-north-1.amazonaws.com.cn","s3.ca-central-1.amazonaws.com","s3.eu-central-1.amazonaws.com","s3.eu-west-2.amazonaws.com","s3.eu-west-3.amazonaws.com","s3.us-east-2.amazonaws.com","s3.dualstack.ap-northeast-1.amazonaws.com","s3.dualstack.ap-northeast-2.amazonaws.com","s3.dualstack.ap-south-1.amazonaws.com","s3.dualstack.ap-southeast-1.amazonaws.com","s3.dualstack.ap-southeast-2.amazonaws.com","s3.dualstack.ca-central-1.amazonaws.com","s3.dualstack.eu-central-1.amazonaws.com","s3.dualstack.eu-west-1.amazonaws.com","s3.dualstack.eu-west-2.amazonaws.com","s3.dualstack.eu-west-3.amazonaws.com","s3.dualstack.sa-east-1.amazonaws.com","s3.dualstack.us-east-1.amazonaws.com","s3.dualstack.us-east-2.amazonaws.com","s3-website-us-east-1.amazonaws.com","s3-website-us-west-1.amazonaws.com","s3-website-us-west-2.amazonaws.com","s3-website-ap-northeast-1.amazonaws.com","s3-website-ap-southeast-1.amazonaws.com","s3-website-ap-southeast-2.amazonaws.com","s3-website-eu-west-1.amazonaws.com","s3-website-sa-east-1.amazonaws.com","s3-website.ap-northeast-2.amazonaws.com","s3-website.ap-south-1.amazonaws.com","s3-website.ca-central-1.amazonaws.com","s3-website.eu-central-1.amazonaws.com","s3-website.eu-west-2.amazonaws.com","s3-website.eu-west-3.amazonaws.com","s3-website.us-east-2.amazonaws.com","t3l3p0rt.net","tele.amune.org","apigee.io","siiites.com","appspacehosted.com","appspaceusercontent.com","appudo.net","on-aptible.com","user.aseinet.ne.jp","gv.vc","d.gv.vc","user.party.eus","pimienta.org","poivron.org","potager.org","sweetpepper.org","myasustor.com","cdn.prod.atlassian-dev.net","translated.page","myfritz.net","onavstack.net","*.awdev.ca","*.advisor.ws","ecommerce-shop.pl","b-data.io","backplaneapp.io","balena-devices.com","rs.ba","*.banzai.cloud","app.banzaicloud.io","*.backyards.banzaicloud.io","base.ec","official.ec","buyshop.jp","fashionstore.jp","handcrafted.jp","kawaiishop.jp","supersale.jp","theshop.jp","shopselect.net","base.shop","*.beget.app","betainabox.com","bnr.la","bitbucket.io","blackbaudcdn.net","of.je","bluebite.io","boomla.net","boutir.com","boxfuse.io","square7.ch","bplaced.com","bplaced.de","square7.de","bplaced.net","square7.net","shop.brendly.rs","browsersafetymark.io","uk0.bigv.io","dh.bytemark.co.uk","vm.bytemark.co.uk","cafjs.com","mycd.eu","drr.ac","uwu.ai","carrd.co","crd.co","ju.mp","ae.org","br.com","cn.com","com.de","com.se","de.com","eu.com","gb.net","hu.net","jp.net","jpn.com","mex.com","ru.com","sa.com","se.net","uk.com","uk.net","us.com","za.bz","za.com","ar.com","hu.com","kr.com","no.com","qc.com","uy.com","africa.com","gr.com","in.net","web.in","us.org","co.com","aus.basketball","nz.basketball","radio.am","radio.fm","c.la","certmgr.org","cx.ua","discourse.group","discourse.team","cleverapps.io","clerk.app","clerkstage.app","*.lcl.dev","*.lclstage.dev","*.stg.dev","*.stgstage.dev","clickrising.net","c66.me","cloud66.ws","cloud66.zone","jdevcloud.com","wpdevcloud.com","cloudaccess.host","freesite.host","cloudaccess.net","cloudcontrolled.com","cloudcontrolapp.com","*.cloudera.site","pages.dev","trycloudflare.com","workers.dev","wnext.app","co.ca","*.otap.co","co.cz","c.cdn77.org","cdn77-ssl.net","r.cdn77.net","rsc.cdn77.org","ssl.origin.cdn77-secure.org","cloudns.asia","cloudns.biz","cloudns.club","cloudns.cc","cloudns.eu","cloudns.in","cloudns.info","cloudns.org","cloudns.pro","cloudns.pw","cloudns.us","cnpy.gdn","codeberg.page","co.nl","co.no","webhosting.be","hosting-cluster.nl","ac.ru","edu.ru","gov.ru","int.ru","mil.ru","test.ru","dyn.cosidns.de","dynamisches-dns.de","dnsupdater.de","internet-dns.de","l-o-g-i-n.de","dynamic-dns.info","feste-ip.net","knx-server.net","static-access.net","realm.cz","*.cryptonomic.net","cupcake.is","curv.dev","*.customer-oci.com","*.oci.customer-oci.com","*.ocp.customer-oci.com","*.ocs.customer-oci.com","cyon.link","cyon.site","fnwk.site","folionetwork.site","platform0.app","daplie.me","localhost.daplie.me","dattolocal.com","dattorelay.com","dattoweb.com","mydatto.com","dattolocal.net","mydatto.net","biz.dk","co.dk","firm.dk","reg.dk","store.dk","dyndns.dappnode.io","*.dapps.earth","*.bzz.dapps.earth","builtwithdark.com","demo.datadetect.com","instance.datadetect.com","edgestack.me","ddns5.com","debian.net","deno.dev","deno-staging.dev","dedyn.io","deta.app","deta.dev","*.rss.my.id","*.diher.solutions","discordsays.com","discordsez.com","jozi.biz","dnshome.de","online.th","shop.th","drayddns.com","shoparena.pl","dreamhosters.com","mydrobo.com","drud.io","drud.us","duckdns.org","bip.sh","bitbridge.net","dy.fi","tunk.org","dyndns-at-home.com","dyndns-at-work.com","dyndns-blog.com","dyndns-free.com","dyndns-home.com","dyndns-ip.com","dyndns-mail.com","dyndns-office.com","dyndns-pics.com","dyndns-remote.com","dyndns-server.com","dyndns-web.com","dyndns-wiki.com","dyndns-work.com","dyndns.biz","dyndns.info","dyndns.org","dyndns.tv","at-band-camp.net","ath.cx","barrel-of-knowledge.info","barrell-of-knowledge.info","better-than.tv","blogdns.com","blogdns.net","blogdns.org","blogsite.org","boldlygoingnowhere.org","broke-it.net","buyshouses.net","cechire.com","dnsalias.com","dnsalias.net","dnsalias.org","dnsdojo.com","dnsdojo.net","dnsdojo.org","does-it.net","doesntexist.com","doesntexist.org","dontexist.com","dontexist.net","dontexist.org","doomdns.com","doomdns.org","dvrdns.org","dyn-o-saur.com","dynalias.com","dynalias.net","dynalias.org","dynathome.net","dyndns.ws","endofinternet.net","endofinternet.org","endoftheinternet.org","est-a-la-maison.com","est-a-la-masion.com","est-le-patron.com","est-mon-blogueur.com","for-better.biz","for-more.biz","for-our.info","for-some.biz","for-the.biz","forgot.her.name","forgot.his.name","from-ak.com","from-al.com","from-ar.com","from-az.net","from-ca.com","from-co.net","from-ct.com","from-dc.com","from-de.com","from-fl.com","from-ga.com","from-hi.com","from-ia.com","from-id.com","from-il.com","from-in.com","from-ks.com","from-ky.com","from-la.net","from-ma.com","from-md.com","from-me.org","from-mi.com","from-mn.com","from-mo.com","from-ms.com","from-mt.com","from-nc.com","from-nd.com","from-ne.com","from-nh.com","from-nj.com","from-nm.com","from-nv.com","from-ny.net","from-oh.com","from-ok.com","from-or.com","from-pa.com","from-pr.com","from-ri.com","from-sc.com","from-sd.com","from-tn.com","from-tx.com","from-ut.com","from-va.com","from-vt.com","from-wa.com","from-wi.com","from-wv.com","from-wy.com","ftpaccess.cc","fuettertdasnetz.de","game-host.org","game-server.cc","getmyip.com","gets-it.net","go.dyndns.org","gotdns.com","gotdns.org","groks-the.info","groks-this.info","ham-radio-op.net","here-for-more.info","hobby-site.com","hobby-site.org","home.dyndns.org","homedns.org","homeftp.net","homeftp.org","homeip.net","homelinux.com","homelinux.net","homelinux.org","homeunix.com","homeunix.net","homeunix.org","iamallama.com","in-the-band.net","is-a-anarchist.com","is-a-blogger.com","is-a-bookkeeper.com","is-a-bruinsfan.org","is-a-bulls-fan.com","is-a-candidate.org","is-a-caterer.com","is-a-celticsfan.org","is-a-chef.com","is-a-chef.net","is-a-chef.org","is-a-conservative.com","is-a-cpa.com","is-a-cubicle-slave.com","is-a-democrat.com","is-a-designer.com","is-a-doctor.com","is-a-financialadvisor.com","is-a-geek.com","is-a-geek.net","is-a-geek.org","is-a-green.com","is-a-guru.com","is-a-hard-worker.com","is-a-hunter.com","is-a-knight.org","is-a-landscaper.com","is-a-lawyer.com","is-a-liberal.com","is-a-libertarian.com","is-a-linux-user.org","is-a-llama.com","is-a-musician.com","is-a-nascarfan.com","is-a-nurse.com","is-a-painter.com","is-a-patsfan.org","is-a-personaltrainer.com","is-a-photographer.com","is-a-player.com","is-a-republican.com","is-a-rockstar.com","is-a-socialist.com","is-a-soxfan.org","is-a-student.com","is-a-teacher.com","is-a-techie.com","is-a-therapist.com","is-an-accountant.com","is-an-actor.com","is-an-actress.com","is-an-anarchist.com","is-an-artist.com","is-an-engineer.com","is-an-entertainer.com","is-by.us","is-certified.com","is-found.org","is-gone.com","is-into-anime.com","is-into-cars.com","is-into-cartoons.com","is-into-games.com","is-leet.com","is-lost.org","is-not-certified.com","is-saved.org","is-slick.com","is-uberleet.com","is-very-bad.org","is-very-evil.org","is-very-good.org","is-very-nice.org","is-very-sweet.org","is-with-theband.com","isa-geek.com","isa-geek.net","isa-geek.org","isa-hockeynut.com","issmarterthanyou.com","isteingeek.de","istmein.de","kicks-ass.net","kicks-ass.org","knowsitall.info","land-4-sale.us","lebtimnetz.de","leitungsen.de","likes-pie.com","likescandy.com","merseine.nu","mine.nu","misconfused.org","mypets.ws","myphotos.cc","neat-url.com","office-on-the.net","on-the-web.tv","podzone.net","podzone.org","readmyblog.org","saves-the-whales.com","scrapper-site.net","scrapping.cc","selfip.biz","selfip.com","selfip.info","selfip.net","selfip.org","sells-for-less.com","sells-for-u.com","sells-it.net","sellsyourhome.org","servebbs.com","servebbs.net","servebbs.org","serveftp.net","serveftp.org","servegame.org","shacknet.nu","simple-url.com","space-to-rent.com","stuff-4-sale.org","stuff-4-sale.us","teaches-yoga.com","thruhere.net","traeumtgerade.de","webhop.biz","webhop.info","webhop.net","webhop.org","worse-than.tv","writesthisblog.com","ddnss.de","dyn.ddnss.de","dyndns.ddnss.de","dyndns1.de","dyn-ip24.de","home-webserver.de","dyn.home-webserver.de","myhome-server.de","ddnss.org","definima.net","definima.io","ondigitalocean.app","*.digitaloceanspaces.com","bci.dnstrace.pro","ddnsfree.com","ddnsgeek.com","giize.com","gleeze.com","kozow.com","loseyourip.com","ooguy.com","theworkpc.com","casacam.net","dynu.net","accesscam.org","camdvr.org","freeddns.org","mywire.org","webredirect.org","myddns.rocks","blogsite.xyz","dynv6.net","e4.cz","eero.online","eero-stage.online","elementor.cloud","elementor.cool","en-root.fr","mytuleap.com","tuleap-partners.com","encr.app","encoreapi.com","onred.one","staging.onred.one","eu.encoway.cloud","eu.org","al.eu.org","asso.eu.org","at.eu.org","au.eu.org","be.eu.org","bg.eu.org","ca.eu.org","cd.eu.org","ch.eu.org","cn.eu.org","cy.eu.org","cz.eu.org","de.eu.org","dk.eu.org","edu.eu.org","ee.eu.org","es.eu.org","fi.eu.org","fr.eu.org","gr.eu.org","hr.eu.org","hu.eu.org","ie.eu.org","il.eu.org","in.eu.org","int.eu.org","is.eu.org","it.eu.org","jp.eu.org","kr.eu.org","lt.eu.org","lu.eu.org","lv.eu.org","mc.eu.org","me.eu.org","mk.eu.org","mt.eu.org","my.eu.org","net.eu.org","ng.eu.org","nl.eu.org","no.eu.org","nz.eu.org","paris.eu.org","pl.eu.org","pt.eu.org","q-a.eu.org","ro.eu.org","ru.eu.org","se.eu.org","si.eu.org","sk.eu.org","tr.eu.org","uk.eu.org","us.eu.org","eurodir.ru","eu-1.evennode.com","eu-2.evennode.com","eu-3.evennode.com","eu-4.evennode.com","us-1.evennode.com","us-2.evennode.com","us-3.evennode.com","us-4.evennode.com","twmail.cc","twmail.net","twmail.org","mymailer.com.tw","url.tw","onfabrica.com","apps.fbsbx.com","ru.net","adygeya.ru","bashkiria.ru","bir.ru","cbg.ru","com.ru","dagestan.ru","grozny.ru","kalmykia.ru","kustanai.ru","marine.ru","mordovia.ru","msk.ru","mytis.ru","nalchik.ru","nov.ru","pyatigorsk.ru","spb.ru","vladikavkaz.ru","vladimir.ru","abkhazia.su","adygeya.su","aktyubinsk.su","arkhangelsk.su","armenia.su","ashgabad.su","azerbaijan.su","balashov.su","bashkiria.su","bryansk.su","bukhara.su","chimkent.su","dagestan.su","east-kazakhstan.su","exnet.su","georgia.su","grozny.su","ivanovo.su","jambyl.su","kalmykia.su","kaluga.su","karacol.su","karaganda.su","karelia.su","khakassia.su","krasnodar.su","kurgan.su","kustanai.su","lenug.su","mangyshlak.su","mordovia.su","msk.su","murmansk.su","nalchik.su","navoi.su","north-kazakhstan.su","nov.su","obninsk.su","penza.su","pokrovsk.su","sochi.su","spb.su","tashkent.su","termez.su","togliatti.su","troitsk.su","tselinograd.su","tula.su","tuva.su","vladikavkaz.su","vladimir.su","vologda.su","channelsdvr.net","u.channelsdvr.net","edgecompute.app","fastly-terrarium.com","fastlylb.net","map.fastlylb.net","freetls.fastly.net","map.fastly.net","a.prod.fastly.net","global.prod.fastly.net","a.ssl.fastly.net","b.ssl.fastly.net","global.ssl.fastly.net","fastvps-server.com","fastvps.host","myfast.host","fastvps.site","myfast.space","fedorainfracloud.org","fedorapeople.org","cloud.fedoraproject.org","app.os.fedoraproject.org","app.os.stg.fedoraproject.org","conn.uk","copro.uk","hosp.uk","mydobiss.com","fh-muenster.io","filegear.me","filegear-au.me","filegear-de.me","filegear-gb.me","filegear-ie.me","filegear-jp.me","filegear-sg.me","firebaseapp.com","fireweb.app","flap.id","onflashdrive.app","fldrv.com","fly.dev","edgeapp.net","shw.io","flynnhosting.net","forgeblocks.com","id.forgerock.io","framer.app","framercanvas.com","*.frusky.de","ravpage.co.il","0e.vc","freebox-os.com","freeboxos.com","fbx-os.fr","fbxos.fr","freebox-os.fr","freeboxos.fr","freedesktop.org","freemyip.com","wien.funkfeuer.at","*.futurecms.at","*.ex.futurecms.at","*.in.futurecms.at","futurehosting.at","futuremailing.at","*.ex.ortsinfo.at","*.kunden.ortsinfo.at","*.statics.cloud","independent-commission.uk","independent-inquest.uk","independent-inquiry.uk","independent-panel.uk","independent-review.uk","public-inquiry.uk","royal-commission.uk","campaign.gov.uk","service.gov.uk","api.gov.uk","gehirn.ne.jp","usercontent.jp","gentapps.com","gentlentapis.com","lab.ms","cdn-edges.net","ghost.io","gsj.bz","githubusercontent.com","githubpreview.dev","github.io","gitlab.io","gitapp.si","gitpage.si","glitch.me","nog.community","co.ro","shop.ro","lolipop.io","angry.jp","babyblue.jp","babymilk.jp","backdrop.jp","bambina.jp","bitter.jp","blush.jp","boo.jp","boy.jp","boyfriend.jp","but.jp","candypop.jp","capoo.jp","catfood.jp","cheap.jp","chicappa.jp","chillout.jp","chips.jp","chowder.jp","chu.jp","ciao.jp","cocotte.jp","coolblog.jp","cranky.jp","cutegirl.jp","daa.jp","deca.jp","deci.jp","digick.jp","egoism.jp","fakefur.jp","fem.jp","flier.jp","floppy.jp","fool.jp","frenchkiss.jp","girlfriend.jp","girly.jp","gloomy.jp","gonna.jp","greater.jp","hacca.jp","heavy.jp","her.jp","hiho.jp","hippy.jp","holy.jp","hungry.jp","icurus.jp","itigo.jp","jellybean.jp","kikirara.jp","kill.jp","kilo.jp","kuron.jp","littlestar.jp","lolipopmc.jp","lolitapunk.jp","lomo.jp","lovepop.jp","lovesick.jp","main.jp","mods.jp","mond.jp","mongolian.jp","moo.jp","namaste.jp","nikita.jp","nobushi.jp","noor.jp","oops.jp","parallel.jp","parasite.jp","pecori.jp","peewee.jp","penne.jp","pepper.jp","perma.jp","pigboat.jp","pinoko.jp","punyu.jp","pupu.jp","pussycat.jp","pya.jp","raindrop.jp","readymade.jp","sadist.jp","schoolbus.jp","secret.jp","staba.jp","stripper.jp","sub.jp","sunnyday.jp","thick.jp","tonkotsu.jp","under.jp","upper.jp","velvet.jp","verse.jp","versus.jp","vivian.jp","watson.jp","weblike.jp","whitesnow.jp","zombie.jp","heteml.net","cloudapps.digital","london.cloudapps.digital","pymnt.uk","homeoffice.gov.uk","ro.im","goip.de","run.app","a.run.app","web.app","*.0emm.com","appspot.com","*.r.appspot.com","codespot.com","googleapis.com","googlecode.com","pagespeedmobilizer.com","publishproxy.com","withgoogle.com","withyoutube.com","*.gateway.dev","cloud.goog","translate.goog","*.usercontent.goog","cloudfunctions.net","blogspot.ae","blogspot.al","blogspot.am","blogspot.ba","blogspot.be","blogspot.bg","blogspot.bj","blogspot.ca","blogspot.cf","blogspot.ch","blogspot.cl","blogspot.co.at","blogspot.co.id","blogspot.co.il","blogspot.co.ke","blogspot.co.nz","blogspot.co.uk","blogspot.co.za","blogspot.com","blogspot.com.ar","blogspot.com.au","blogspot.com.br","blogspot.com.by","blogspot.com.co","blogspot.com.cy","blogspot.com.ee","blogspot.com.eg","blogspot.com.es","blogspot.com.mt","blogspot.com.ng","blogspot.com.tr","blogspot.com.uy","blogspot.cv","blogspot.cz","blogspot.de","blogspot.dk","blogspot.fi","blogspot.fr","blogspot.gr","blogspot.hk","blogspot.hr","blogspot.hu","blogspot.ie","blogspot.in","blogspot.is","blogspot.it","blogspot.jp","blogspot.kr","blogspot.li","blogspot.lt","blogspot.lu","blogspot.md","blogspot.mk","blogspot.mr","blogspot.mx","blogspot.my","blogspot.nl","blogspot.no","blogspot.pe","blogspot.pt","blogspot.qa","blogspot.re","blogspot.ro","blogspot.rs","blogspot.ru","blogspot.se","blogspot.sg","blogspot.si","blogspot.sk","blogspot.sn","blogspot.td","blogspot.tw","blogspot.ug","blogspot.vn","goupile.fr","gov.nl","awsmppl.com","günstigbestellen.de","günstigliefern.de","fin.ci","free.hr","caa.li","ua.rs","conf.se","hs.zone","hs.run","hashbang.sh","hasura.app","hasura-app.io","pages.it.hs-heilbronn.de","hepforge.org","herokuapp.com","herokussl.com","ravendb.cloud","myravendb.com","ravendb.community","ravendb.me","development.run","ravendb.run","homesklep.pl","secaas.hk","hoplix.shop","orx.biz","biz.gl","col.ng","firm.ng","gen.ng","ltd.ng","ngo.ng","edu.scot","sch.so","hostyhosting.io","häkkinen.fi","*.moonscale.io","moonscale.net","iki.fi","ibxos.it","iliadboxos.it","impertrixcdn.com","impertrix.com","smushcdn.com","wphostedmail.com","wpmucdn.com","tempurl.host","wpmudev.host","dyn-berlin.de","in-berlin.de","in-brb.de","in-butter.de","in-dsl.de","in-dsl.net","in-dsl.org","in-vpn.de","in-vpn.net","in-vpn.org","biz.at","info.at","info.cx","ac.leg.br","al.leg.br","am.leg.br","ap.leg.br","ba.leg.br","ce.leg.br","df.leg.br","es.leg.br","go.leg.br","ma.leg.br","mg.leg.br","ms.leg.br","mt.leg.br","pa.leg.br","pb.leg.br","pe.leg.br","pi.leg.br","pr.leg.br","rj.leg.br","rn.leg.br","ro.leg.br","rr.leg.br","rs.leg.br","sc.leg.br","se.leg.br","sp.leg.br","to.leg.br","pixolino.com","na4u.ru","iopsys.se","ipifony.net","iservschule.de","mein-iserv.de","schulplattform.de","schulserver.de","test-iserv.de","iserv.dev","iobb.net","mel.cloudlets.com.au","cloud.interhostsolutions.be","users.scale.virtualcloud.com.br","mycloud.by","alp1.ae.flow.ch","appengine.flow.ch","es-1.axarnet.cloud","diadem.cloud","vip.jelastic.cloud","jele.cloud","it1.eur.aruba.jenv-aruba.cloud","it1.jenv-aruba.cloud","keliweb.cloud","cs.keliweb.cloud","oxa.cloud","tn.oxa.cloud","uk.oxa.cloud","primetel.cloud","uk.primetel.cloud","ca.reclaim.cloud","uk.reclaim.cloud","us.reclaim.cloud","ch.trendhosting.cloud","de.trendhosting.cloud","jele.club","amscompute.com","clicketcloud.com","dopaas.com","hidora.com","paas.hosted-by-previder.com","rag-cloud.hosteur.com","rag-cloud-ch.hosteur.com","jcloud.ik-server.com","jcloud-ver-jpc.ik-server.com","demo.jelastic.com","kilatiron.com","paas.massivegrid.com","jed.wafaicloud.com","lon.wafaicloud.com","ryd.wafaicloud.com","j.scaleforce.com.cy","jelastic.dogado.eu","fi.cloudplatform.fi","demo.datacenter.fi","paas.datacenter.fi","jele.host","mircloud.host","paas.beebyte.io","sekd1.beebyteapp.io","jele.io","cloud-fr1.unispace.io","jc.neen.it","cloud.jelastic.open.tim.it","jcloud.kz","upaas.kazteleport.kz","cloudjiffy.net","fra1-de.cloudjiffy.net","west1-us.cloudjiffy.net","jls-sto1.elastx.net","jls-sto2.elastx.net","jls-sto3.elastx.net","faststacks.net","fr-1.paas.massivegrid.net","lon-1.paas.massivegrid.net","lon-2.paas.massivegrid.net","ny-1.paas.massivegrid.net","ny-2.paas.massivegrid.net","sg-1.paas.massivegrid.net","jelastic.saveincloud.net","nordeste-idc.saveincloud.net","j.scaleforce.net","jelastic.tsukaeru.net","sdscloud.pl","unicloud.pl","mircloud.ru","jelastic.regruhosting.ru","enscaled.sg","jele.site","jelastic.team","orangecloud.tn","j.layershift.co.uk","phx.enscaled.us","mircloud.us","myjino.ru","*.hosting.myjino.ru","*.landing.myjino.ru","*.spectrum.myjino.ru","*.vps.myjino.ru","jotelulu.cloud","*.triton.zone","*.cns.joyent.com","js.org","kaas.gg","khplay.nl","ktistory.com","kapsi.fi","keymachine.de","kinghost.net","uni5.net","knightpoint.systems","koobin.events","oya.to","kuleuven.cloud","ezproxy.kuleuven.be","co.krd","edu.krd","krellian.net","webthings.io","git-repos.de","lcube-server.de","svn-repos.de","leadpages.co","lpages.co","lpusercontent.com","lelux.site","co.business","co.education","co.events","co.financial","co.network","co.place","co.technology","app.lmpm.com","linkyard.cloud","linkyard-cloud.ch","members.linode.com","*.nodebalancer.linode.com","*.linodeobjects.com","ip.linodeusercontent.com","we.bs","*.user.localcert.dev","localzone.xyz","loginline.app","loginline.dev","loginline.io","loginline.services","loginline.site","servers.run","lohmus.me","krasnik.pl","leczna.pl","lubartow.pl","lublin.pl","poniatowa.pl","swidnik.pl","glug.org.uk","lug.org.uk","lugs.org.uk","barsy.bg","barsy.co.uk","barsyonline.co.uk","barsycenter.com","barsyonline.com","barsy.club","barsy.de","barsy.eu","barsy.in","barsy.info","barsy.io","barsy.me","barsy.menu","barsy.mobi","barsy.net","barsy.online","barsy.org","barsy.pro","barsy.pub","barsy.ro","barsy.shop","barsy.site","barsy.support","barsy.uk","*.magentosite.cloud","mayfirst.info","mayfirst.org","hb.cldmail.ru","cn.vu","mazeplay.com","mcpe.me","mcdir.me","mcdir.ru","mcpre.ru","vps.mcdir.ru","mediatech.by","mediatech.dev","hra.health","miniserver.com","memset.net","messerli.app","*.cloud.metacentrum.cz","custom.metacentrum.cz","flt.cloud.muni.cz","usr.cloud.muni.cz","meteorapp.com","eu.meteorapp.com","co.pl","*.azurecontainer.io","azurewebsites.net","azure-mobile.net","cloudapp.net","azurestaticapps.net","1.azurestaticapps.net","centralus.azurestaticapps.net","eastasia.azurestaticapps.net","eastus2.azurestaticapps.net","westeurope.azurestaticapps.net","westus2.azurestaticapps.net","csx.cc","mintere.site","forte.id","mozilla-iot.org","bmoattachments.org","net.ru","org.ru","pp.ru","hostedpi.com","customer.mythic-beasts.com","caracal.mythic-beasts.com","fentiger.mythic-beasts.com","lynx.mythic-beasts.com","ocelot.mythic-beasts.com","oncilla.mythic-beasts.com","onza.mythic-beasts.com","sphinx.mythic-beasts.com","vs.mythic-beasts.com","x.mythic-beasts.com","yali.mythic-beasts.com","cust.retrosnub.co.uk","ui.nabu.casa","pony.club","of.fashion","in.london","of.london","from.marketing","with.marketing","for.men","repair.men","and.mom","for.mom","for.one","under.one","for.sale","that.win","from.work","to.work","cloud.nospamproxy.com","netlify.app","4u.com","ngrok.io","nh-serv.co.uk","nfshost.com","*.developer.app","noop.app","*.northflank.app","*.build.run","*.code.run","*.database.run","*.migration.run","noticeable.news","dnsking.ch","mypi.co","n4t.co","001www.com","ddnslive.com","myiphost.com","forumz.info","16-b.it","32-b.it","64-b.it","soundcast.me","tcp4.me","dnsup.net","hicam.net","now-dns.net","ownip.net","vpndns.net","dynserv.org","now-dns.org","x443.pw","now-dns.top","ntdll.top","freeddns.us","crafting.xyz","zapto.xyz","nsupdate.info","nerdpol.ovh","blogsyte.com","brasilia.me","cable-modem.org","ciscofreak.com","collegefan.org","couchpotatofries.org","damnserver.com","ddns.me","ditchyourip.com","dnsfor.me","dnsiskinky.com","dvrcam.info","dynns.com","eating-organic.net","fantasyleague.cc","geekgalaxy.com","golffan.us","health-carereform.com","homesecuritymac.com","homesecuritypc.com","hopto.me","ilovecollege.info","loginto.me","mlbfan.org","mmafan.biz","myactivedirectory.com","mydissent.net","myeffect.net","mymediapc.net","mypsx.net","mysecuritycamera.com","mysecuritycamera.net","mysecuritycamera.org","net-freaks.com","nflfan.org","nhlfan.net","no-ip.ca","no-ip.co.uk","no-ip.net","noip.us","onthewifi.com","pgafan.net","point2this.com","pointto.us","privatizehealthinsurance.net","quicksytes.com","read-books.org","securitytactics.com","serveexchange.com","servehumour.com","servep2p.com","servesarcasm.com","stufftoread.com","ufcfan.org","unusualperson.com","workisboring.com","3utilities.com","bounceme.net","ddns.net","ddnsking.com","gotdns.ch","hopto.org","myftp.biz","myftp.org","myvnc.com","no-ip.biz","no-ip.info","no-ip.org","noip.me","redirectme.net","servebeer.com","serveblog.net","servecounterstrike.com","serveftp.com","servegame.com","servehalflife.com","servehttp.com","serveirc.com","serveminecraft.net","servemp3.com","servepics.com","servequake.com","sytes.net","webhop.me","zapto.org","stage.nodeart.io","pcloud.host","nyc.mn","static.observableusercontent.com","cya.gg","omg.lol","cloudycluster.net","omniwe.site","service.one","nid.io","opensocial.site","opencraft.hosting","orsites.com","operaunite.com","tech.orange","authgear-staging.com","authgearapps.com","skygearapp.com","outsystemscloud.com","*.webpaas.ovh.net","*.hosting.ovh.net","ownprovider.com","own.pm","*.owo.codes","ox.rs","oy.lc","pgfog.com","pagefrontapp.com","pagexl.com","*.paywhirl.com","bar0.net","bar1.net","bar2.net","rdv.to","art.pl","gliwice.pl","krakow.pl","poznan.pl","wroc.pl","zakopane.pl","pantheonsite.io","gotpantheon.com","mypep.link","perspecta.cloud","lk3.ru","on-web.fr","bc.platform.sh","ent.platform.sh","eu.platform.sh","us.platform.sh","*.platformsh.site","*.tst.site","platter-app.com","platter-app.dev","platterp.us","pdns.page","plesk.page","pleskns.com","dyn53.io","onporter.run","co.bn","postman-echo.com","pstmn.io","mock.pstmn.io","httpbin.org","prequalifyme.today","xen.prgmr.com","priv.at","prvcy.page","*.dweb.link","protonet.io","chirurgiens-dentistes-en-france.fr","byen.site","pubtls.org","pythonanywhere.com","eu.pythonanywhere.com","qoto.io","qualifioapp.com","qbuser.com","cloudsite.builders","instances.spawn.cc","instantcloud.cn","ras.ru","qa2.com","qcx.io","*.sys.qcx.io","dev-myqnapcloud.com","alpha-myqnapcloud.com","myqnapcloud.com","*.quipelements.com","vapor.cloud","vaporcloud.io","rackmaze.com","rackmaze.net","g.vbrplsbx.io","*.on-k3s.io","*.on-rancher.cloud","*.on-rio.io","readthedocs.io","rhcloud.com","app.render.com","onrender.com","repl.co","id.repl.co","repl.run","resindevice.io","devices.resinstaging.io","hzc.io","wellbeingzone.eu","wellbeingzone.co.uk","adimo.co.uk","itcouldbewor.se","git-pages.rit.edu","rocky.page","биз.рус","ком.рус","крым.рус","мир.рус","мск.рус","орг.рус","самара.рус","сочи.рус","спб.рус","я.рус","*.builder.code.com","*.dev-builder.code.com","*.stg-builder.code.com","sandcats.io","logoip.de","logoip.com","fr-par-1.baremetal.scw.cloud","fr-par-2.baremetal.scw.cloud","nl-ams-1.baremetal.scw.cloud","fnc.fr-par.scw.cloud","functions.fnc.fr-par.scw.cloud","k8s.fr-par.scw.cloud","nodes.k8s.fr-par.scw.cloud","s3.fr-par.scw.cloud","s3-website.fr-par.scw.cloud","whm.fr-par.scw.cloud","priv.instances.scw.cloud","pub.instances.scw.cloud","k8s.scw.cloud","k8s.nl-ams.scw.cloud","nodes.k8s.nl-ams.scw.cloud","s3.nl-ams.scw.cloud","s3-website.nl-ams.scw.cloud","whm.nl-ams.scw.cloud","k8s.pl-waw.scw.cloud","nodes.k8s.pl-waw.scw.cloud","s3.pl-waw.scw.cloud","s3-website.pl-waw.scw.cloud","scalebook.scw.cloud","smartlabeling.scw.cloud","dedibox.fr","schokokeks.net","gov.scot","service.gov.scot","scrysec.com","firewall-gateway.com","firewall-gateway.de","my-gateway.de","my-router.de","spdns.de","spdns.eu","firewall-gateway.net","my-firewall.org","myfirewall.org","spdns.org","seidat.net","sellfy.store","senseering.net","minisite.ms","magnet.page","biz.ua","co.ua","pp.ua","shiftcrypto.dev","shiftcrypto.io","shiftedit.io","myshopblocks.com","myshopify.com","shopitsite.com","shopware.store","mo-siemens.io","1kapp.com","appchizi.com","applinzi.com","sinaapp.com","vipsinaapp.com","siteleaf.net","bounty-full.com","alpha.bounty-full.com","beta.bounty-full.com","small-web.org","vp4.me","try-snowplow.com","srht.site","stackhero-network.com","musician.io","novecore.site","static.land","dev.static.land","sites.static.land","storebase.store","vps-host.net","atl.jelastic.vps-host.net","njs.jelastic.vps-host.net","ric.jelastic.vps-host.net","playstation-cloud.com","apps.lair.io","*.stolos.io","spacekit.io","customer.speedpartner.de","myspreadshop.at","myspreadshop.com.au","myspreadshop.be","myspreadshop.ca","myspreadshop.ch","myspreadshop.com","myspreadshop.de","myspreadshop.dk","myspreadshop.es","myspreadshop.fi","myspreadshop.fr","myspreadshop.ie","myspreadshop.it","myspreadshop.net","myspreadshop.nl","myspreadshop.no","myspreadshop.pl","myspreadshop.se","myspreadshop.co.uk","api.stdlib.com","storj.farm","utwente.io","soc.srcf.net","user.srcf.net","temp-dns.com","supabase.co","supabase.in","supabase.net","su.paba.se","*.s5y.io","*.sensiosite.cloud","syncloud.it","dscloud.biz","direct.quickconnect.cn","dsmynas.com","familyds.com","diskstation.me","dscloud.me","i234.me","myds.me","synology.me","dscloud.mobi","dsmynas.net","familyds.net","dsmynas.org","familyds.org","vpnplus.to","direct.quickconnect.to","tabitorder.co.il","taifun-dns.de","beta.tailscale.net","ts.net","gda.pl","gdansk.pl","gdynia.pl","med.pl","sopot.pl","site.tb-hosting.com","edugit.io","s3.teckids.org","telebit.app","telebit.io","*.telebit.xyz","gwiddle.co.uk","*.firenet.ch","*.svc.firenet.ch","reservd.com","thingdustdata.com","cust.dev.thingdust.io","cust.disrec.thingdust.io","cust.prod.thingdust.io","cust.testing.thingdust.io","reservd.dev.thingdust.io","reservd.disrec.thingdust.io","reservd.testing.thingdust.io","tickets.io","arvo.network","azimuth.network","tlon.network","torproject.net","pages.torproject.net","bloxcms.com","townnews-staging.com","tbits.me","12hp.at","2ix.at","4lima.at","lima-city.at","12hp.ch","2ix.ch","4lima.ch","lima-city.ch","trafficplex.cloud","de.cool","12hp.de","2ix.de","4lima.de","lima-city.de","1337.pictures","clan.rip","lima-city.rocks","webspace.rocks","lima.zone","*.transurl.be","*.transurl.eu","*.transurl.nl","site.transip.me","tuxfamily.org","dd-dns.de","diskstation.eu","diskstation.org","dray-dns.de","draydns.de","dyn-vpn.de","dynvpn.de","mein-vigor.de","my-vigor.de","my-wan.de","syno-ds.de","synology-diskstation.de","synology-ds.de","typedream.app","pro.typeform.com","uber.space","*.uberspace.de","hk.com","hk.org","ltd.hk","inc.hk","name.pm","sch.tf","biz.wf","sch.wf","org.yt","virtualuser.de","virtual-user.de","upli.io","urown.cloud","dnsupdate.info","lib.de.us","2038.io","vercel.app","vercel.dev","now.sh","router.management","v-info.info","voorloper.cloud","neko.am","nyaa.am","be.ax","cat.ax","es.ax","eu.ax","gg.ax","mc.ax","us.ax","xy.ax","nl.ci","xx.gl","app.gp","blog.gt","de.gt","to.gt","be.gy","cc.hn","blog.kg","io.kg","jp.kg","tv.kg","uk.kg","us.kg","de.ls","at.md","de.md","jp.md","to.md","indie.porn","vxl.sh","ch.tc","me.tc","we.tc","nyan.to","at.vg","blog.vu","dev.vu","me.vu","v.ua","*.vultrobjects.com","wafflecell.com","*.webhare.dev","reserve-online.net","reserve-online.com","bookonline.app","hotelwithflight.com","wedeploy.io","wedeploy.me","wedeploy.sh","remotewd.com","pages.wiardweb.com","wmflabs.org","toolforge.org","wmcloud.org","panel.gg","daemon.panel.gg","messwithdns.com","woltlab-demo.com","myforum.community","community-pro.de","diskussionsbereich.de","community-pro.net","meinforum.net","affinitylottery.org.uk","raffleentry.org.uk","weeklylottery.org.uk","wpenginepowered.com","js.wpenginepowered.com","wixsite.com","editorx.io","half.host","xnbay.com","u2.xnbay.com","u2-local.xnbay.com","cistron.nl","demon.nl","xs4all.space","yandexcloud.net","storage.yandexcloud.net","website.yandexcloud.net","official.academy","yolasite.com","ybo.faith","yombo.me","homelink.one","ybo.party","ybo.review","ybo.science","ybo.trade","ynh.fr","nohost.me","noho.st","za.net","za.org","bss.design","basicserver.io","virtualserver.io","enterprisecloud.nu"]}}),Fc=Ce({"node_modules/psl/index.js"(e){var a=En(),o={};o.rules=Dc().map(function(t){return{rule:t,suffix:t.replace(/^(\*\.|\!)/,""),punySuffix:-1,wildcard:t.charAt(0)==="*",exception:t.charAt(0)==="!"}}),o.endsWith=function(t,n){return t.indexOf(n,t.length-n.length)!==-1},o.findRule=function(t){var n=a.toASCII(t);return o.rules.reduce(function(r,i){return i.punySuffix===-1&&(i.punySuffix=a.toASCII(i.suffix)),!o.endsWith(n,"."+i.punySuffix)&&n!==i.punySuffix?r:i},null)},e.errorCodes={DOMAIN_TOO_SHORT:"Domain name too short.",DOMAIN_TOO_LONG:"Domain name too long. It should be no more than 255 chars.",LABEL_STARTS_WITH_DASH:"Domain name label can not start with a dash.",LABEL_ENDS_WITH_DASH:"Domain name label can not end with a dash.",LABEL_TOO_LONG:"Domain name label should be at most 63 chars long.",LABEL_TOO_SHORT:"Domain name label should be at least 1 character long.",LABEL_INVALID_CHARS:"Domain name label can only contain alphanumeric characters or dashes."},o.validate=function(t){var n=a.toASCII(t);if(n.length<1)return"DOMAIN_TOO_SHORT";if(n.length>255)return"DOMAIN_TOO_LONG";for(var r=n.split("."),i,s=0;s<r.length;++s){if(i=r[s],!i.length)return"LABEL_TOO_SHORT";if(i.length>63)return"LABEL_TOO_LONG";if(i.charAt(0)==="-")return"LABEL_STARTS_WITH_DASH";if(i.charAt(i.length-1)==="-")return"LABEL_ENDS_WITH_DASH";if(!/^[a-z0-9\-]+$/.test(i))return"LABEL_INVALID_CHARS"}},e.parse=function(t){if(typeof t!="string")throw new TypeError("Domain name must be a string.");var n=t.slice(0).toLowerCase();n.charAt(n.length-1)==="."&&(n=n.slice(0,n.length-1));var r=o.validate(n);if(r)return{input:t,error:{message:e.errorCodes[r],code:r}};var i={input:t,tld:null,sld:null,domain:null,subdomain:null,listed:!1},s=n.split(".");if(s[s.length-1]==="local")return i;var u=function(){return/xn--/.test(n)&&(i.domain&&(i.domain=a.toASCII(i.domain)),i.subdomain&&(i.subdomain=a.toASCII(i.subdomain))),i},p=o.findRule(n);if(!p)return s.length<2?i:(i.tld=s.pop(),i.sld=s.pop(),i.domain=[i.sld,i.tld].join("."),s.length&&(i.subdomain=s.pop()),u());i.listed=!0;var d=p.suffix.split("."),m=s.slice(0,s.length-d.length);return p.exception&&m.push(d.shift()),i.tld=d.join("."),!m.length||(p.wildcard&&(d.unshift(m.pop()),i.tld=d.join(".")),!m.length)||(i.sld=m.pop(),i.domain=[i.sld,i.tld].join("."),m.length&&(i.subdomain=m.join("."))),u()},e.get=function(t){return t&&e.parse(t).domain||null},e.isValid=function(t){var n=e.parse(t);return!!(n.domain&&n.listed)}}}),Sn=Ce({"node_modules/tough-cookie/lib/pubsuffix-psl.js"(e){var a=Fc(),o=["local","example","invalid","localhost","test"],t=["localhost","invalid"];function n(r,i={}){const s=r.split("."),u=s[s.length-1],p=!!i.allowSpecialUseDomain,d=!!i.ignoreError;if(p&&o.includes(u)){if(s.length>1)return`${s[s.length-2]}.${u}`;if(t.includes(u))return`${u}`}if(!d&&o.includes(u))throw new Error(`Cookie has domain set to the public suffix "${u}" which is a special use domain. To allow this, configure your CookieJar with {allowSpecialUseDomain:true, rejectPublicSuffixes: false}.`);return a.get(r)}e.getPublicSuffix=n}}),zn=Ce({"node_modules/tough-cookie/lib/store.js"(e){var a=class{constructor(){this.synchronous=!1}findCookie(o,t,n,r){throw new Error("findCookie is not implemented")}findCookies(o,t,n,r){throw new Error("findCookies is not implemented")}putCookie(o,t){throw new Error("putCookie is not implemented")}updateCookie(o,t,n){throw new Error("updateCookie is not implemented")}removeCookie(o,t,n,r){throw new Error("removeCookie is not implemented")}removeCookies(o,t,n){throw new Error("removeCookies is not implemented")}removeAllCookies(o){throw new Error("removeAllCookies is not implemented")}getAllCookies(o){throw new Error("getAllCookies is not implemented (therefore jar cannot be serialized)")}};e.Store=a}}),Tn=Ce({"node_modules/universalify/index.js"(e){e.fromCallback=function(a){return Object.defineProperty(function(){if(typeof arguments[arguments.length-1]=="function")a.apply(this,arguments);else return new Promise((o,t)=>{arguments[arguments.length]=(n,r)=>{if(n)return t(n);o(r)},arguments.length++,a.apply(this,arguments)})},"name",{value:a.name})},e.fromPromise=function(a){return Object.defineProperty(function(){const o=arguments[arguments.length-1];if(typeof o!="function")return a.apply(this,arguments);delete arguments[arguments.length-1],arguments.length--,a.apply(this,arguments).then(t=>o(null,t),o)},"name",{value:a.name})}}}),On=Ce({"node_modules/tough-cookie/lib/permuteDomain.js"(e){var a=Sn();function o(t,n){const r=a.getPublicSuffix(t,{allowSpecialUseDomain:n});if(!r)return null;if(r==t)return[t];t.slice(-1)=="."&&(t=t.slice(0,-1));const s=t.slice(0,-(r.length+1)).split(".").reverse();let u=r;const p=[u];for(;s.length;)u=`${s.shift()}.${u}`,p.push(u);return p}e.permuteDomain=o}}),_n=Ce({"node_modules/tough-cookie/lib/pathMatch.js"(e){function a(o,t){return t===o||o.indexOf(t)===0&&(t.substr(-1)==="/"||o.substr(t.length,1)==="/")}e.pathMatch=a}}),An=Ce({"node_modules/tough-cookie/lib/utilHelper.js"(e){function a(){try{return _c("util")}catch{return null}}function o(){return Symbol.for("nodejs.util.inspect.custom")}function t(n){const i=(n.requireUtil||a)();return i?i.inspect.custom:null}e.getUtilInspect=function(r,i={}){const u=(i.requireUtil||a)();return function(d,m,h){return u?u.inspect(d,m,h):r(d)}},e.getCustomInspectSymbol=function(r={}){return(r.lookupCustomInspectSymbol||o)()||t(r)}}}),Nc=Ce({"node_modules/tough-cookie/lib/memstore.js"(e){var{fromCallback:a}=Tn(),o=zn().Store,t=On().permuteDomain,n=_n().pathMatch,{getCustomInspectSymbol:r,getUtilInspect:i}=An(),s=class extends o{constructor(){super(),this.synchronous=!0,this.idx=Object.create(null);const m=r();m&&(this[m]=this.inspect)}inspect(){return`{ idx: ${{inspect:i(u)}.inspect(this.idx,!1,2)} }`}findCookie(m,h,g,f){return!this.idx[m]||!this.idx[m][h]?f(null,void 0):f(null,this.idx[m][h][g]||null)}findCookies(m,h,g,f){const c=[];if(typeof g=="function"&&(f=g,g=!0),!m)return f(null,[]);let v;h?v=function(b){Object.keys(b).forEach(y=>{if(n(h,y)){const w=b[y];for(const z in w)c.push(w[z])}})}:v=function(b){for(const y in b){const w=b[y];for(const z in w)c.push(w[z])}};const T=t(m,g)||[m],P=this.idx;T.forEach(_=>{const b=P[_];b&&v(b)}),f(null,c)}putCookie(m,h){this.idx[m.domain]||(this.idx[m.domain]=Object.create(null)),this.idx[m.domain][m.path]||(this.idx[m.domain][m.path]=Object.create(null)),this.idx[m.domain][m.path][m.key]=m,h(null)}updateCookie(m,h,g){this.putCookie(h,g)}removeCookie(m,h,g,f){this.idx[m]&&this.idx[m][h]&&this.idx[m][h][g]&&delete this.idx[m][h][g],f(null)}removeCookies(m,h,g){return this.idx[m]&&(h?delete this.idx[m][h]:delete this.idx[m]),g(null)}removeAllCookies(m){return this.idx=Object.create(null),m(null)}getAllCookies(m){const h=[],g=this.idx;Object.keys(g).forEach(c=>{Object.keys(g[c]).forEach(T=>{Object.keys(g[c][T]).forEach(_=>{_!==null&&h.push(g[c][T][_])})})}),h.sort((c,v)=>(c.creationIndex||0)-(v.creationIndex||0)),m(null,h)}};["findCookie","findCookies","putCookie","updateCookie","removeCookie","removeCookies","removeAllCookies","getAllCookies"].forEach(m=>{s.prototype[m]=a(s.prototype[m])}),e.MemoryCookieStore=s;function u(m){const h=Object.keys(m);if(h.length===0)return"[Object: null prototype] {}";let g=`[Object: null prototype] {
|
|
149
|
-
`;return Object.keys(m).forEach((f,c)=>{g+=p(f,m[f]),c<h.length-1&&(g+=","),g+=`
|
|
150
|
-
`}),g+="}",g}function p(m,h){const g=" ";let f=`${g}'${m}': [Object: null prototype] {
|
|
151
|
-
`;return Object.keys(h).forEach((c,v,T)=>{f+=d(c,h[c]),v<T.length-1&&(f+=","),f+=`
|
|
152
|
-
`}),f+=`${g}}`,f}function d(m,h){const g=" ";let f=`${g}'${m}': [Object: null prototype] {
|
|
153
|
-
`;return Object.keys(h).forEach((c,v,T)=>{const P=h[c];f+=` ${c}: ${P.inspect()}`,v<T.length-1&&(f+=","),f+=`
|
|
154
|
-
`}),f+=`${g}}`,f}e.inspectFallback=u}}),Lc=Ce({"node_modules/tough-cookie/lib/validators.js"(e){var a=Object.prototype.toString;function o(g){return typeof g=="function"}function t(g){return i(g)&&g!==""}function n(g){return u(g,Date)&&d(g.getTime())}function r(g){return g===""||g instanceof String&&g.toString()===""}function i(g){return typeof g=="string"||g instanceof String}function s(g){return a.call(g)==="[object Object]"}function u(g,f){try{return g instanceof f}catch{return!1}}function p(g){return t(g)||s(g)&&"hostname"in g&&"pathname"in g&&"protocol"in g||u(g,URL)}function d(g){return typeof g=="number"&&g%1===0}function m(g,f,c){if(o(f)||(c=f,f=null),s(c)||(c={Error:"Failed Check"}),!g)if(f)f(new h(c));else throw new h(c)}var h=class extends Error{constructor(...g){super(...g)}};e.ParameterError=h,e.isFunction=o,e.isNonEmptyString=t,e.isDate=n,e.isEmptyString=r,e.isString=i,e.isObject=s,e.isUrlStringOrObject=p,e.validate=m}}),Mc=Ce({"node_modules/tough-cookie/lib/version.js"(e,a){a.exports="4.1.4"}}),Bc=Ce({"node_modules/tough-cookie/lib/cookie.js"(e){var a=En(),o=$c(),t=Sn(),n=zn().Store,r=Nc().MemoryCookieStore,i=_n().pathMatch,s=Lc(),u=Mc(),{fromCallback:p}=Tn(),{getCustomInspectSymbol:d}=An(),m=/^[\x21\x23-\x2B\x2D-\x3A\x3C-\x5B\x5D-\x7E]+$/,h=/[\x00-\x1F]/,g=[`
|
|
155
|
-
`,"\r","\0"],f=/[\x20-\x3A\x3C-\x7E]+/,c=/[\x09\x20-\x2F\x3B-\x40\x5B-\x60\x7B-\x7E]/,v={jan:0,feb:1,mar:2,apr:3,may:4,jun:5,jul:6,aug:7,sep:8,oct:9,nov:10,dec:11},T=2147483647e3,P=0,_='Invalid sameSiteContext option for getCookies(); expected one of "strict", "lax", or "none"';function b(j){s.validate(s.isNonEmptyString(j),j);const k=String(j).toLowerCase();return k==="none"||k==="lax"||k==="strict"?k:null}var y=Object.freeze({SILENT:"silent",STRICT:"strict",DISABLED:"unsafe-disabled"}),w=/(?:^(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}$)|(?:^(?:(?:[a-f\d]{1,4}:){7}(?:[a-f\d]{1,4}|:)|(?:[a-f\d]{1,4}:){6}(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|:[a-f\d]{1,4}|:)|(?:[a-f\d]{1,4}:){5}(?::(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-f\d]{1,4}){1,2}|:)|(?:[a-f\d]{1,4}:){4}(?:(?::[a-f\d]{1,4}){0,1}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-f\d]{1,4}){1,3}|:)|(?:[a-f\d]{1,4}:){3}(?:(?::[a-f\d]{1,4}){0,2}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-f\d]{1,4}){1,4}|:)|(?:[a-f\d]{1,4}:){2}(?:(?::[a-f\d]{1,4}){0,3}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-f\d]{1,4}){1,5}|:)|(?:[a-f\d]{1,4}:){1}(?:(?::[a-f\d]{1,4}){0,4}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-f\d]{1,4}){1,6}|:)|(?::(?:(?::[a-f\d]{1,4}){0,5}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-f\d]{1,4}){1,7}|:)))$)/,z=`
|
|
156
|
-
\\[?(?:
|
|
157
|
-
(?:[a-fA-F\\d]{1,4}:){7}(?:[a-fA-F\\d]{1,4}|:)|
|
|
158
|
-
(?:[a-fA-F\\d]{1,4}:){6}(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|:[a-fA-F\\d]{1,4}|:)|
|
|
159
|
-
(?:[a-fA-F\\d]{1,4}:){5}(?::(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-fA-F\\d]{1,4}){1,2}|:)|
|
|
160
|
-
(?:[a-fA-F\\d]{1,4}:){4}(?:(?::[a-fA-F\\d]{1,4}){0,1}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-fA-F\\d]{1,4}){1,3}|:)|
|
|
161
|
-
(?:[a-fA-F\\d]{1,4}:){3}(?:(?::[a-fA-F\\d]{1,4}){0,2}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-fA-F\\d]{1,4}){1,4}|:)|
|
|
162
|
-
(?:[a-fA-F\\d]{1,4}:){2}(?:(?::[a-fA-F\\d]{1,4}){0,3}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-fA-F\\d]{1,4}){1,5}|:)|
|
|
163
|
-
(?:[a-fA-F\\d]{1,4}:){1}(?:(?::[a-fA-F\\d]{1,4}){0,4}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-fA-F\\d]{1,4}){1,6}|:)|
|
|
164
|
-
(?::(?:(?::[a-fA-F\\d]{1,4}){0,5}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-fA-F\\d]{1,4}){1,7}|:))
|
|
165
|
-
)(?:%[0-9a-zA-Z]{1,})?\\]?
|
|
166
|
-
`.replace(/\s*\/\/.*$/gm,"").replace(/\n/g,"").trim(),L=new RegExp(`^${z}$`);function $(j,k,E,I){let A=0;for(;A<j.length;){const K=j.charCodeAt(A);if(K<=47||K>=58)break;A++}return A<k||A>E||!I&&A!=j.length?null:parseInt(j.substr(0,A),10)}function H(j){const k=j.split(":"),E=[0,0,0];if(k.length!==3)return null;for(let I=0;I<3;I++){const A=I==2,K=$(k[I],1,2,A);if(K===null)return null;E[I]=K}return E}function U(j){j=String(j).substr(0,3).toLowerCase();const k=v[j];return k>=0?k:null}function l(j){if(!j)return;const k=j.split(c);if(!k)return;let E=null,I=null,A=null,K=null,oe=null,se=null;for(let be=0;be<k.length;be++){const ve=k[be].trim();if(!ve.length)continue;let te;if(A===null&&(te=H(ve),te)){E=te[0],I=te[1],A=te[2];continue}if(K===null&&(te=$(ve,1,2,!0),te!==null)){K=te;continue}if(oe===null&&(te=U(ve),te!==null)){oe=te;continue}se===null&&(te=$(ve,2,4,!0),te!==null&&(se=te,se>=70&&se<=99?se+=1900:se>=0&&se<=69&&(se+=2e3)))}if(!(K===null||oe===null||se===null||A===null||K<1||K>31||se<1601||E>23||I>59||A>59))return new Date(Date.UTC(se,oe,K,E,I,A))}function M(j){return s.validate(s.isDate(j),j),j.toUTCString()}function D(j){return j==null?null:(j=j.trim().replace(/^\./,""),L.test(j)&&(j=j.replace("[","").replace("]","")),a&&/[^\u0001-\u007f]/.test(j)&&(j=a.toASCII(j)),j.toLowerCase())}function C(j,k,E){if(j==null||k==null)return null;if(E!==!1&&(j=D(j),k=D(k)),j==k)return!0;const I=j.lastIndexOf(k);return!(I<=0||j.length!==k.length+I||j.substr(I-1,1)!=="."||w.test(j))}function N(j){if(!j||j.substr(0,1)!=="/")return"/";if(j==="/")return j;const k=j.lastIndexOf("/");return k===0?"/":j.slice(0,k)}function Z(j){if(s.isEmptyString(j))return j;for(let k=0;k<g.length;k++){const E=j.indexOf(g[k]);E!==-1&&(j=j.substr(0,E))}return j}function Q(j,k){j=Z(j),s.validate(s.isString(j),j);let E=j.indexOf("=");if(k)E===0&&(j=j.substr(1),E=j.indexOf("="));else if(E<=0)return;let I,A;if(E<=0?(I="",A=j.trim()):(I=j.substr(0,E).trim(),A=j.substr(E+1).trim()),h.test(I)||h.test(A))return;const K=new G;return K.key=I,K.value=A,K}function re(j,k){if((!k||typeof k!="object")&&(k={}),s.isEmptyString(j)||!s.isString(j))return null;j=j.trim();const E=j.indexOf(";"),I=E===-1?j:j.substr(0,E),A=Q(I,!!k.loose);if(!A)return;if(E===-1)return A;const K=j.slice(E+1).trim();if(K.length===0)return A;const oe=K.split(";");for(;oe.length;){const se=oe.shift().trim();if(se.length===0)continue;const be=se.indexOf("=");let ve,te;switch(be===-1?(ve=se,te=null):(ve=se.substr(0,be),te=se.substr(be+1)),ve=ve.trim().toLowerCase(),te&&(te=te.trim()),ve){case"expires":if(te){const _e=l(te);_e&&(A.expires=_e)}break;case"max-age":if(te&&/^-?[0-9]+$/.test(te)){const _e=parseInt(te,10);A.setMaxAge(_e)}break;case"domain":if(te){const _e=te.trim().replace(/^\./,"");_e&&(A.domain=_e.toLowerCase())}break;case"path":A.path=te&&te[0]==="/"?te:null;break;case"secure":A.secure=!0;break;case"httponly":A.httpOnly=!0;break;case"samesite":switch(te?te.toLowerCase():""){case"strict":A.sameSite="strict";break;case"lax":A.sameSite="lax";break;case"none":A.sameSite="none";break;default:A.sameSite=void 0;break}break;default:A.extensions=A.extensions||[],A.extensions.push(se);break}}return A}function R(j){return s.validate(s.isObject(j),j),!j.key.startsWith("__Secure-")||j.secure}function x(j){return s.validate(s.isObject(j)),!j.key.startsWith("__Host-")||j.secure&&j.hostOnly&&j.path!=null&&j.path==="/"}function F(j){let k;try{k=JSON.parse(j)}catch(E){return E}return k}function q(j){if(!j||s.isEmptyString(j))return null;let k;if(typeof j=="string"){if(k=F(j),k instanceof Error)return null}else k=j;const E=new G;for(let I=0;I<G.serializableProperties.length;I++){const A=G.serializableProperties[I];k[A]===void 0||k[A]===W[A]||(A==="expires"||A==="creation"||A==="lastAccessed"?k[A]===null?E[A]=null:E[A]=k[A]=="Infinity"?"Infinity":new Date(k[A]):E[A]=k[A])}return E}function V(j,k){s.validate(s.isObject(j),j),s.validate(s.isObject(k),k);let E=0;const I=j.path?j.path.length:0;if(E=(k.path?k.path.length:0)-I,E!==0)return E;const K=j.creation?j.creation.getTime():T,oe=k.creation?k.creation.getTime():T;return E=K-oe,E!==0||(E=j.creationIndex-k.creationIndex),E}function X(j){if(s.validate(s.isString(j)),j==="/")return["/"];const k=[j];for(;j.length>1;){const E=j.lastIndexOf("/");if(E===0)break;j=j.substr(0,E),k.push(j)}return k.push("/"),k}function J(j){if(j instanceof Object)return j;try{j=decodeURI(j)}catch{}return o(j)}var W={key:"",value:"",expires:"Infinity",maxAge:null,domain:null,path:null,secure:!1,httpOnly:!1,extensions:null,hostOnly:null,pathIsDefault:null,creation:null,lastAccessed:null,sameSite:void 0},G=class Ia{constructor(k={}){const E=d();E&&(this[E]=this.inspect),Object.assign(this,W,k),this.creation=this.creation||new Date,Object.defineProperty(this,"creationIndex",{configurable:!1,enumerable:!1,writable:!0,value:++Ia.cookiesCreated})}inspect(){const k=Date.now(),E=this.hostOnly!=null?this.hostOnly:"?",I=this.creation?`${k-this.creation.getTime()}ms`:"?",A=this.lastAccessed?`${k-this.lastAccessed.getTime()}ms`:"?";return`Cookie="${this.toString()}; hostOnly=${E}; aAge=${A}; cAge=${I}"`}toJSON(){const k={};for(const E of Ia.serializableProperties)this[E]!==W[E]&&(E==="expires"||E==="creation"||E==="lastAccessed"?this[E]===null?k[E]=null:k[E]=this[E]=="Infinity"?"Infinity":this[E].toISOString():E==="maxAge"?this[E]!==null&&(k[E]=this[E]==1/0||this[E]==-1/0?this[E].toString():this[E]):this[E]!==W[E]&&(k[E]=this[E]));return k}clone(){return q(this.toJSON())}validate(){if(!m.test(this.value)||this.expires!=1/0&&!(this.expires instanceof Date)&&!l(this.expires)||this.maxAge!=null&&this.maxAge<=0||this.path!=null&&!f.test(this.path))return!1;const k=this.cdomain();return!(k&&(k.match(/\.$/)||t.getPublicSuffix(k)==null))}setExpires(k){k instanceof Date?this.expires=k:this.expires=l(k)||"Infinity"}setMaxAge(k){k===1/0||k===-1/0?this.maxAge=k.toString():this.maxAge=k}cookieString(){let k=this.value;return k==null&&(k=""),this.key===""?k:`${this.key}=${k}`}toString(){let k=this.cookieString();if(this.expires!=1/0&&(this.expires instanceof Date?k+=`; Expires=${M(this.expires)}`:k+=`; Expires=${this.expires}`),this.maxAge!=null&&this.maxAge!=1/0&&(k+=`; Max-Age=${this.maxAge}`),this.domain&&!this.hostOnly&&(k+=`; Domain=${this.domain}`),this.path&&(k+=`; Path=${this.path}`),this.secure&&(k+="; Secure"),this.httpOnly&&(k+="; HttpOnly"),this.sameSite&&this.sameSite!=="none"){const E=Ia.sameSiteCanonical[this.sameSite.toLowerCase()];k+=`; SameSite=${E||this.sameSite}`}return this.extensions&&this.extensions.forEach(E=>{k+=`; ${E}`}),k}TTL(k){if(this.maxAge!=null)return this.maxAge<=0?0:this.maxAge*1e3;let E=this.expires;return E!=1/0?(E instanceof Date||(E=l(E)||1/0),E==1/0?1/0:E.getTime()-(k||Date.now())):1/0}expiryTime(k){if(this.maxAge!=null){const E=k||this.creation||new Date,I=this.maxAge<=0?-1/0:this.maxAge*1e3;return E.getTime()+I}return this.expires==1/0?1/0:this.expires.getTime()}expiryDate(k){const E=this.expiryTime(k);return E==1/0?new Date(T):E==-1/0?new Date(P):new Date(E)}isPersistent(){return this.maxAge!=null||this.expires!=1/0}canonicalizedDomain(){return this.domain==null?null:D(this.domain)}cdomain(){return this.canonicalizedDomain()}};G.cookiesCreated=0,G.parse=re,G.fromJSON=q,G.serializableProperties=Object.keys(W),G.sameSiteLevel={strict:3,lax:2,none:1},G.sameSiteCanonical={strict:"Strict",lax:"Lax"};function ae(j){if(j!=null){const k=j.toLowerCase();switch(k){case y.STRICT:case y.SILENT:case y.DISABLED:return k}}return y.SILENT}var ee=class Pa{constructor(k,E={rejectPublicSuffixes:!0}){typeof E=="boolean"&&(E={rejectPublicSuffixes:E}),s.validate(s.isObject(E),E),this.rejectPublicSuffixes=E.rejectPublicSuffixes,this.enableLooseMode=!!E.looseMode,this.allowSpecialUseDomain=typeof E.allowSpecialUseDomain=="boolean"?E.allowSpecialUseDomain:!0,this.store=k||new r,this.prefixSecurity=ae(E.prefixSecurity),this._cloneSync=ge("clone"),this._importCookiesSync=ge("_importCookies"),this.getCookiesSync=ge("getCookies"),this.getCookieStringSync=ge("getCookieString"),this.getSetCookieStringsSync=ge("getSetCookieStrings"),this.removeAllCookiesSync=ge("removeAllCookies"),this.setCookieSync=ge("setCookie"),this.serializeSync=ge("serialize")}setCookie(k,E,I,A){s.validate(s.isUrlStringOrObject(E),A,I);let K;if(s.isFunction(E))return A=E,A(new Error("No URL was specified"));const oe=J(E);if(s.isFunction(I)&&(A=I,I={}),s.validate(s.isFunction(A),A),!s.isNonEmptyString(k)&&!s.isObject(k)&&k instanceof String&&k.length==0)return A(null);const se=D(oe.hostname),be=I.loose||this.enableLooseMode;let ve=null;if(I.sameSiteContext&&(ve=b(I.sameSiteContext),!ve))return A(new Error(_));if(typeof k=="string"||k instanceof String){if(k=G.parse(k,{loose:be}),!k)return K=new Error("Cookie failed to parse"),A(I.ignoreError?null:K)}else if(!(k instanceof G))return K=new Error("First argument to setCookie must be a Cookie object or string"),A(I.ignoreError?null:K);const te=I.now||new Date;if(this.rejectPublicSuffixes&&k.domain&&t.getPublicSuffix(k.cdomain(),{allowSpecialUseDomain:this.allowSpecialUseDomain,ignoreError:I.ignoreError})==null&&!L.test(k.domain))return K=new Error("Cookie has domain set to a public suffix"),A(I.ignoreError?null:K);if(k.domain){if(!C(se,k.cdomain(),!1))return K=new Error(`Cookie not in this host's domain. Cookie:${k.cdomain()} Request:${se}`),A(I.ignoreError?null:K);k.hostOnly==null&&(k.hostOnly=!1)}else k.hostOnly=!0,k.domain=se;if((!k.path||k.path[0]!=="/")&&(k.path=N(oe.pathname),k.pathIsDefault=!0),I.http===!1&&k.httpOnly)return K=new Error("Cookie is HttpOnly and this isn't an HTTP API"),A(I.ignoreError?null:K);if(k.sameSite!=="none"&&k.sameSite!==void 0&&ve&&ve==="none")return K=new Error("Cookie is SameSite but this is a cross-origin request"),A(I.ignoreError?null:K);const xa=this.prefixSecurity===y.SILENT;if(!(this.prefixSecurity===y.DISABLED)){let he=!1,we;if(R(k)?x(k)||(he=!0,we="Cookie has __Host prefix but either Secure or HostOnly attribute is not set or Path is not '/'"):(he=!0,we="Cookie has __Secure prefix but Secure attribute is not set"),he)return A(I.ignoreError||xa?null:new Error(we))}const De=this.store;De.updateCookie||(De.updateCookie=function(he,we,Xe){this.putCookie(we,Xe)});function eo(he,we){if(he)return A(he);const Xe=function(Ca){if(Ca)return A(Ca);A(null,k)};if(we){if(I.http===!1&&we.httpOnly)return he=new Error("old Cookie is HttpOnly and this isn't an HTTP API"),A(I.ignoreError?null:he);k.creation=we.creation,k.creationIndex=we.creationIndex,k.lastAccessed=te,De.updateCookie(we,k,Xe)}else k.creation=k.lastAccessed=te,De.putCookie(k,Xe)}De.findCookie(k.domain,k.path,k.key,eo)}getCookies(k,E,I){s.validate(s.isUrlStringOrObject(k),I,k);const A=J(k);s.isFunction(E)&&(I=E,E={}),s.validate(s.isObject(E),I,E),s.validate(s.isFunction(I),I);const K=D(A.hostname),oe=A.pathname||"/";let se=E.secure;se==null&&A.protocol&&(A.protocol=="https:"||A.protocol=="wss:")&&(se=!0);let be=0;if(E.sameSiteContext){const he=b(E.sameSiteContext);if(be=G.sameSiteLevel[he],!be)return I(new Error(_))}let ve=E.http;ve==null&&(ve=!0);const te=E.now||Date.now(),xa=E.expire!==!1,_e=!!E.allPaths,De=this.store;function eo(he){if(he.hostOnly){if(he.domain!=K)return!1}else if(!C(K,he.domain,!1))return!1;return!_e&&!i(oe,he.path)||he.secure&&!se||he.httpOnly&&!ve||be&&G.sameSiteLevel[he.sameSite||"none"]>be?!1:xa&&he.expiryTime()<=te?(De.removeCookie(he.domain,he.path,he.key,()=>{}),!1):!0}De.findCookies(K,_e?null:oe,this.allowSpecialUseDomain,(he,we)=>{if(he)return I(he);we=we.filter(eo),E.sort!==!1&&(we=we.sort(V));const Xe=new Date;for(const Ca of we)Ca.lastAccessed=Xe;I(null,we)})}getCookieString(...k){const E=k.pop();s.validate(s.isFunction(E),E);const I=function(A,K){A?E(A):E(null,K.sort(V).map(oe=>oe.cookieString()).join("; "))};k.push(I),this.getCookies.apply(this,k)}getSetCookieStrings(...k){const E=k.pop();s.validate(s.isFunction(E),E);const I=function(A,K){A?E(A):E(null,K.map(oe=>oe.toString()))};k.push(I),this.getCookies.apply(this,k)}serialize(k){s.validate(s.isFunction(k),k);let E=this.store.constructor.name;s.isObject(E)&&(E=null);const I={version:`tough-cookie@${u}`,storeType:E,rejectPublicSuffixes:!!this.rejectPublicSuffixes,enableLooseMode:!!this.enableLooseMode,allowSpecialUseDomain:!!this.allowSpecialUseDomain,prefixSecurity:ae(this.prefixSecurity),cookies:[]};if(!(this.store.getAllCookies&&typeof this.store.getAllCookies=="function"))return k(new Error("store does not support getAllCookies and cannot be serialized"));this.store.getAllCookies((A,K)=>A?k(A):(I.cookies=K.map(oe=>(oe=oe instanceof G?oe.toJSON():oe,delete oe.creationIndex,oe)),k(null,I)))}toJSON(){return this.serializeSync()}_importCookies(k,E){let I=k.cookies;if(!I||!Array.isArray(I))return E(new Error("serialized jar has no cookies array"));I=I.slice();const A=K=>{if(K)return E(K);if(!I.length)return E(K,this);let oe;try{oe=q(I.shift())}catch(se){return E(se)}if(oe===null)return A(null);this.store.putCookie(oe,A)};A()}clone(k,E){arguments.length===1&&(E=k,k=null),this.serialize((I,A)=>{if(I)return E(I);Pa.deserialize(A,k,E)})}cloneSync(k){if(arguments.length===0)return this._cloneSync();if(!k.synchronous)throw new Error("CookieJar clone destination store is not synchronous; use async API instead.");return this._cloneSync(k)}removeAllCookies(k){s.validate(s.isFunction(k),k);const E=this.store;if(typeof E.removeAllCookies=="function"&&E.removeAllCookies!==n.prototype.removeAllCookies)return E.removeAllCookies(k);E.getAllCookies((I,A)=>{if(I)return k(I);if(A.length===0)return k(null);let K=0;const oe=[];function se(be){if(be&&oe.push(be),K++,K===A.length)return k(oe.length?oe[0]:null)}A.forEach(be=>{E.removeCookie(be.domain,be.path,be.key,se)})})}static deserialize(k,E,I){arguments.length!==3&&(I=E,E=null),s.validate(s.isFunction(I),I);let A;if(typeof k=="string"){if(A=F(k),A instanceof Error)return I(A)}else A=k;const K=new Pa(E,{rejectPublicSuffixes:A.rejectPublicSuffixes,looseMode:A.enableLooseMode,allowSpecialUseDomain:A.allowSpecialUseDomain,prefixSecurity:A.prefixSecurity});K._importCookies(A,oe=>{if(oe)return I(oe);I(null,K)})}static deserializeSync(k,E){const I=typeof k=="string"?JSON.parse(k):k,A=new Pa(E,{rejectPublicSuffixes:I.rejectPublicSuffixes,looseMode:I.enableLooseMode});if(!A.store.synchronous)throw new Error("CookieJar store is not synchronous; use async API instead.");return A._importCookiesSync(I),A}};ee.fromJSON=ee.deserializeSync,["_importCookies","clone","getCookies","getCookieString","getSetCookieStrings","removeAllCookies","serialize","setCookie"].forEach(j=>{ee.prototype[j]=p(ee.prototype[j])}),ee.deserialize=p(ee.deserialize);function ge(j){return function(...k){if(!this.store.synchronous)throw new Error("CookieJar store is not synchronous; use async API instead.");let E,I;if(this[j](...k,(A,K)=>{E=A,I=K}),E)throw E;return I}}e.version=u,e.CookieJar=ee,e.Cookie=G,e.Store=n,e.MemoryCookieStore=r,e.parseDate=l,e.formatDate=M,e.parse=re,e.fromJSON=q,e.domainMatch=C,e.defaultPath=N,e.pathMatch=i,e.getPublicSuffix=t.getPublicSuffix,e.cookieCompare=V,e.permuteDomain=On().permuteDomain,e.permutePath=X,e.canonicalDomain=D,e.PrefixSecurityEnum=y,e.ParameterError=s.ParameterError}}),Uc=Rc(Bc()),qc=Uc.default;/*! Bundled license information:
|
|
167
|
-
|
|
168
|
-
tough-cookie/lib/pubsuffix-psl.js:
|
|
169
|
-
(*!
|
|
170
|
-
* Copyright (c) 2018, Salesforce.com, Inc.
|
|
171
|
-
* All rights reserved.
|
|
172
|
-
*
|
|
173
|
-
* Redistribution and use in source and binary forms, with or without
|
|
174
|
-
* modification, are permitted provided that the following conditions are met:
|
|
175
|
-
*
|
|
176
|
-
* 1. Redistributions of source code must retain the above copyright notice,
|
|
177
|
-
* this list of conditions and the following disclaimer.
|
|
178
|
-
*
|
|
179
|
-
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
|
180
|
-
* this list of conditions and the following disclaimer in the documentation
|
|
181
|
-
* and/or other materials provided with the distribution.
|
|
182
|
-
*
|
|
183
|
-
* 3. Neither the name of Salesforce.com nor the names of its contributors may
|
|
184
|
-
* be used to endorse or promote products derived from this software without
|
|
185
|
-
* specific prior written permission.
|
|
186
|
-
*
|
|
187
|
-
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
188
|
-
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
189
|
-
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
190
|
-
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
|
191
|
-
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
192
|
-
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
193
|
-
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
194
|
-
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
195
|
-
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
196
|
-
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
197
|
-
* POSSIBILITY OF SUCH DAMAGE.
|
|
198
|
-
*)
|
|
199
|
-
|
|
200
|
-
tough-cookie/lib/store.js:
|
|
201
|
-
(*!
|
|
202
|
-
* Copyright (c) 2015, Salesforce.com, Inc.
|
|
203
|
-
* All rights reserved.
|
|
204
|
-
*
|
|
205
|
-
* Redistribution and use in source and binary forms, with or without
|
|
206
|
-
* modification, are permitted provided that the following conditions are met:
|
|
207
|
-
*
|
|
208
|
-
* 1. Redistributions of source code must retain the above copyright notice,
|
|
209
|
-
* this list of conditions and the following disclaimer.
|
|
210
|
-
*
|
|
211
|
-
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
|
212
|
-
* this list of conditions and the following disclaimer in the documentation
|
|
213
|
-
* and/or other materials provided with the distribution.
|
|
214
|
-
*
|
|
215
|
-
* 3. Neither the name of Salesforce.com nor the names of its contributors may
|
|
216
|
-
* be used to endorse or promote products derived from this software without
|
|
217
|
-
* specific prior written permission.
|
|
218
|
-
*
|
|
219
|
-
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
220
|
-
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
221
|
-
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
222
|
-
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
|
223
|
-
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
224
|
-
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
225
|
-
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
226
|
-
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
227
|
-
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
228
|
-
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
229
|
-
* POSSIBILITY OF SUCH DAMAGE.
|
|
230
|
-
*)
|
|
231
|
-
|
|
232
|
-
tough-cookie/lib/permuteDomain.js:
|
|
233
|
-
(*!
|
|
234
|
-
* Copyright (c) 2015, Salesforce.com, Inc.
|
|
235
|
-
* All rights reserved.
|
|
236
|
-
*
|
|
237
|
-
* Redistribution and use in source and binary forms, with or without
|
|
238
|
-
* modification, are permitted provided that the following conditions are met:
|
|
239
|
-
*
|
|
240
|
-
* 1. Redistributions of source code must retain the above copyright notice,
|
|
241
|
-
* this list of conditions and the following disclaimer.
|
|
242
|
-
*
|
|
243
|
-
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
|
244
|
-
* this list of conditions and the following disclaimer in the documentation
|
|
245
|
-
* and/or other materials provided with the distribution.
|
|
246
|
-
*
|
|
247
|
-
* 3. Neither the name of Salesforce.com nor the names of its contributors may
|
|
248
|
-
* be used to endorse or promote products derived from this software without
|
|
249
|
-
* specific prior written permission.
|
|
250
|
-
*
|
|
251
|
-
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
252
|
-
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
253
|
-
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
254
|
-
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
|
255
|
-
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
256
|
-
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
257
|
-
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
258
|
-
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
259
|
-
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
260
|
-
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
261
|
-
* POSSIBILITY OF SUCH DAMAGE.
|
|
262
|
-
*)
|
|
263
|
-
|
|
264
|
-
tough-cookie/lib/pathMatch.js:
|
|
265
|
-
(*!
|
|
266
|
-
* Copyright (c) 2015, Salesforce.com, Inc.
|
|
267
|
-
* All rights reserved.
|
|
268
|
-
*
|
|
269
|
-
* Redistribution and use in source and binary forms, with or without
|
|
270
|
-
* modification, are permitted provided that the following conditions are met:
|
|
271
|
-
*
|
|
272
|
-
* 1. Redistributions of source code must retain the above copyright notice,
|
|
273
|
-
* this list of conditions and the following disclaimer.
|
|
274
|
-
*
|
|
275
|
-
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
|
276
|
-
* this list of conditions and the following disclaimer in the documentation
|
|
277
|
-
* and/or other materials provided with the distribution.
|
|
278
|
-
*
|
|
279
|
-
* 3. Neither the name of Salesforce.com nor the names of its contributors may
|
|
280
|
-
* be used to endorse or promote products derived from this software without
|
|
281
|
-
* specific prior written permission.
|
|
282
|
-
*
|
|
283
|
-
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
284
|
-
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
285
|
-
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
286
|
-
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
|
287
|
-
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
288
|
-
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
289
|
-
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
290
|
-
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
291
|
-
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
292
|
-
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
293
|
-
* POSSIBILITY OF SUCH DAMAGE.
|
|
294
|
-
*)
|
|
295
|
-
|
|
296
|
-
tough-cookie/lib/memstore.js:
|
|
297
|
-
(*!
|
|
298
|
-
* Copyright (c) 2015, Salesforce.com, Inc.
|
|
299
|
-
* All rights reserved.
|
|
300
|
-
*
|
|
301
|
-
* Redistribution and use in source and binary forms, with or without
|
|
302
|
-
* modification, are permitted provided that the following conditions are met:
|
|
303
|
-
*
|
|
304
|
-
* 1. Redistributions of source code must retain the above copyright notice,
|
|
305
|
-
* this list of conditions and the following disclaimer.
|
|
306
|
-
*
|
|
307
|
-
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
|
308
|
-
* this list of conditions and the following disclaimer in the documentation
|
|
309
|
-
* and/or other materials provided with the distribution.
|
|
310
|
-
*
|
|
311
|
-
* 3. Neither the name of Salesforce.com nor the names of its contributors may
|
|
312
|
-
* be used to endorse or promote products derived from this software without
|
|
313
|
-
* specific prior written permission.
|
|
314
|
-
*
|
|
315
|
-
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
316
|
-
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
317
|
-
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
318
|
-
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
|
319
|
-
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
320
|
-
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
321
|
-
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
322
|
-
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
323
|
-
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
324
|
-
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
325
|
-
* POSSIBILITY OF SUCH DAMAGE.
|
|
326
|
-
*)
|
|
327
|
-
|
|
328
|
-
tough-cookie/lib/cookie.js:
|
|
329
|
-
(*!
|
|
330
|
-
* Copyright (c) 2015-2020, Salesforce.com, Inc.
|
|
331
|
-
* All rights reserved.
|
|
332
|
-
*
|
|
333
|
-
* Redistribution and use in source and binary forms, with or without
|
|
334
|
-
* modification, are permitted provided that the following conditions are met:
|
|
335
|
-
*
|
|
336
|
-
* 1. Redistributions of source code must retain the above copyright notice,
|
|
337
|
-
* this list of conditions and the following disclaimer.
|
|
338
|
-
*
|
|
339
|
-
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
|
340
|
-
* this list of conditions and the following disclaimer in the documentation
|
|
341
|
-
* and/or other materials provided with the distribution.
|
|
342
|
-
*
|
|
343
|
-
* 3. Neither the name of Salesforce.com nor the names of its contributors may
|
|
344
|
-
* be used to endorse or promote products derived from this software without
|
|
345
|
-
* specific prior written permission.
|
|
346
|
-
*
|
|
347
|
-
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
348
|
-
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
349
|
-
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
350
|
-
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
|
351
|
-
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
352
|
-
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
353
|
-
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
354
|
-
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
355
|
-
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
356
|
-
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
357
|
-
* POSSIBILITY OF SUCH DAMAGE.
|
|
358
|
-
*)
|
|
359
|
-
*/const{Cookie:Vc,CookieJar:Wc,Store:Hc,MemoryCookieStore:Gc,domainMatch:Yc,pathMatch:Kc}=qc;class Jc extends Hc{constructor(){super();Se(this,"storage");Se(this,"storageKey");$o(typeof localStorage<"u","Failed to create a WebStorageCookieStore: `localStorage` is not available in this environment. This is likely an issue with MSW. Please report it on GitHub: https://github.com/mswjs/msw/issues"),this.synchronous=!0,this.storage=localStorage,this.storageKey="__msw-cookie-store__"}findCookie(o,t,n,r){try{const i=this.getStore(),s=this.filterCookiesFromList(i,{domain:o,path:t,key:n});r(null,s[0]||null)}catch(i){i instanceof Error&&r(i,null)}}findCookies(o,t,n,r){if(!o){r(null,[]);return}try{const i=this.getStore(),s=this.filterCookiesFromList(i,{domain:o,path:t});r(null,s)}catch(i){i instanceof Error&&r(i,[])}}putCookie(o,t){try{if(o.maxAge===0)return;const n=this.getStore();n.push(o),this.updateStore(n)}catch(n){n instanceof Error&&t(n)}}updateCookie(o,t,n){if(t.maxAge===0){this.removeCookie(t.domain||"",t.path||"",t.key,n);return}this.putCookie(t,n)}removeCookie(o,t,n,r){try{const i=this.getStore(),s=this.deleteCookiesFromList(i,{domain:o,path:t,key:n});this.updateStore(s),r(null)}catch(i){i instanceof Error&&r(i)}}removeCookies(o,t,n){try{const r=this.getStore(),i=this.deleteCookiesFromList(r,{domain:o,path:t});this.updateStore(i),n(null)}catch(r){r instanceof Error&&n(r)}}getAllCookies(o){try{o(null,this.getStore())}catch(t){t instanceof Error&&o(t,[])}}getStore(){try{const o=this.storage.getItem(this.storageKey);if(o==null)return[];const t=JSON.parse(o),n=[];for(const r of t){const i=Vc.fromJSON(r);i!=null&&n.push(i)}return n}catch{return[]}}updateStore(o){this.storage.setItem(this.storageKey,JSON.stringify(o.map(t=>t.toJSON())))}filterCookiesFromList(o,t){const n=[];for(const r of o)t.domain&&!Yc(t.domain,r.domain||"")||t.path&&!Kc(t.path,r.path||"")||t.key&&r.key!==t.key||n.push(r);return n}deleteCookiesFromList(o,t){const n=this.filterCookiesFromList(o,t);return o.filter(r=>!n.includes(r))}}const Xc=yn()?new Gc:new Jc,Qc=new Wc(Xc);function Rn(e){const a=wn.parse(e),o={};for(const t in a)typeof a[t]<"u"&&(o[t]=a[t]);return o}function Ot(){return Rn(document.cookie)}function Zc(e){if(typeof document>"u"||typeof location>"u")return{};switch(e.credentials){case"same-origin":{const a=new URL(e.url);return location.origin===a.origin?Ot():{}}case"include":return Ot();default:return{}}}function el(e){const a=e.headers.get("cookie"),o=a?Rn(a):{},t=Zc(e);for(const i in t)e.headers.append("cookie",wn.serialize(i,t[i]));const n=Qc.getCookiesSync(e.url),r=Object.fromEntries(n.map(i=>[i.key,i.value]));for(const i of n)e.headers.append("cookie",i.toString());return{...t,...r,...o}}var Ne=(e=>(e.HEAD="HEAD",e.GET="GET",e.POST="POST",e.PUT="PUT",e.PATCH="PATCH",e.OPTIONS="OPTIONS",e.DELETE="DELETE",e))(Ne||{});class al extends Eo{constructor(a,o,t,n){super({info:{header:`${a} ${o}`,path:o,method:a},resolver:t,options:n}),this.checkRedundantQueryParameters()}checkRedundantQueryParameters(){const{method:a,path:o}=this.info;if(o instanceof RegExp||bn(o)===o)return;lc(o).forEach((r,i)=>{}),Co.warn(`Found a redundant usage of query parameters in the request handler URL for "${a} ${o}". Please match against a path instead and access query parameters using "new URL(request.url).searchParams" instead. Learn more: https://mswjs.io/docs/recipes/query-parameters`)}async parse(a){var r;const o=new URL(a.request.url),t=fc(o,this.info.path,(r=a.resolutionContext)==null?void 0:r.baseUrl),n=el(a.request);return{match:t,cookies:n}}predicate(a){const o=this.matchMethod(a.request.method),t=a.parsedResult.match.matches;return o&&t}matchMethod(a){return this.info.method instanceof RegExp?this.info.method.test(a):Au(this.info.method,a)}extendResolverArgs(a){var o;return{params:((o=a.parsedResult.match)==null?void 0:o.params)||{},cookies:a.parsedResult.cookies}}async log(a){const o=gc(a.request.url),t=await Pu(a.request),n=await Wu(a.response),r=Ru(n.status);console.groupCollapsed(Co.formatMessage(`${Iu()} ${a.request.method} ${o} (%c${n.status} ${n.statusText}%c)`),`color:${r}`,"color:inherit"),console.log("Request",t),console.log("Handler:",this),console.log("Response",n),console.groupEnd()}}function Fe(e){return(a,o,t={})=>new al(e,a,o,t)}const pa={all:Fe(/.+/),head:Fe(Ne.HEAD),get:Fe(Ne.GET),post:Fe(Ne.POST),put:Fe(Ne.PUT),delete:Fe(Ne.DELETE),patch:Fe(Ne.PATCH),options:Fe(Ne.OPTIONS)};var ol=Object.create,In=Object.defineProperty,tl=Object.getOwnPropertyDescriptor,Pn=Object.getOwnPropertyNames,nl=Object.getPrototypeOf,rl=Object.prototype.hasOwnProperty,il=(e,a)=>function(){return a||(0,e[Pn(e)[0]])((a={exports:{}}).exports,a),a.exports},sl=(e,a,o,t)=>{if(a&&typeof a=="object"||typeof a=="function")for(let n of Pn(a))!rl.call(e,n)&&n!==o&&In(e,n,{get:()=>a[n],enumerable:!(t=tl(a,n))||t.enumerable});return e},ul=(e,a,o)=>(o=e!=null?ol(nl(e)):{},sl(!e||!e.__esModule?In(o,"default",{value:e,enumerable:!0}):o,e)),cl=il({"node_modules/set-cookie-parser/lib/set-cookie.js"(e,a){var o={decodeValues:!0,map:!1,silent:!1};function t(u){return typeof u=="string"&&!!u.trim()}function n(u,p){var d=u.split(";").filter(t),m=d.shift(),h=r(m),g=h.name,f=h.value;p=p?Object.assign({},o,p):o;try{f=p.decodeValues?decodeURIComponent(f):f}catch(v){console.error("set-cookie-parser encountered an error while decoding a cookie with value '"+f+"'. Set options.decodeValues to false to disable this feature.",v)}var c={name:g,value:f};return d.forEach(function(v){var T=v.split("="),P=T.shift().trimLeft().toLowerCase(),_=T.join("=");P==="expires"?c.expires=new Date(_):P==="max-age"?c.maxAge=parseInt(_,10):P==="secure"?c.secure=!0:P==="httponly"?c.httpOnly=!0:P==="samesite"?c.sameSite=_:c[P]=_}),c}function r(u){var p="",d="",m=u.split("=");return m.length>1?(p=m.shift(),d=m.join("=")):d=u,{name:p,value:d}}function i(u,p){if(p=p?Object.assign({},o,p):o,!u)return p.map?{}:[];if(u.headers)if(typeof u.headers.getSetCookie=="function")u=u.headers.getSetCookie();else if(u.headers["set-cookie"])u=u.headers["set-cookie"];else{var d=u.headers[Object.keys(u.headers).find(function(h){return h.toLowerCase()==="set-cookie"})];!d&&u.headers.cookie&&!p.silent&&console.warn("Warning: set-cookie-parser appears to have been called on a request object. It is designed to parse Set-Cookie headers from responses, not Cookie headers from requests. Set the option {silent: true} to suppress this warning."),u=d}if(Array.isArray(u)||(u=[u]),p=p?Object.assign({},o,p):o,p.map){var m={};return u.filter(t).reduce(function(h,g){var f=n(g,p);return h[f.name]=f,h},m)}else return u.filter(t).map(function(h){return n(h,p)})}function s(u){if(Array.isArray(u))return u;if(typeof u!="string")return[];var p=[],d=0,m,h,g,f,c;function v(){for(;d<u.length&&/\s/.test(u.charAt(d));)d+=1;return d<u.length}function T(){return h=u.charAt(d),h!=="="&&h!==";"&&h!==","}for(;d<u.length;){for(m=d,c=!1;v();)if(h=u.charAt(d),h===","){for(g=d,d+=1,v(),f=d;d<u.length&&T();)d+=1;d<u.length&&u.charAt(d)==="="?(c=!0,d=f,p.push(u.substring(m,g)),m=d):d=g+1}else d+=1;(!c||d>=u.length)&&p.push(u.substring(m,u.length))}return p}a.exports=i,a.exports.parse=i,a.exports.parseString=n,a.exports.splitCookiesString=s}}),ll=ul(cl()),ml=/[^a-z0-9\-#$%&'*+.^_`|~]/i;function da(e){if(ml.test(e)||e.trim()==="")throw new TypeError("Invalid character in header field name");return e.trim().toLowerCase()}var _t=[`
|
|
360
|
-
`,"\r"," "," "],pl=new RegExp(`(^[${_t.join("")}]|$[${_t.join("")}])`,"g");function yo(e){return e.replace(pl,"")}function ha(e){if(typeof e!="string"||e.length===0)return!1;for(let a=0;a<e.length;a++){const o=e.charCodeAt(a);if(o>127||!dl(o))return!1}return!0}function dl(e){return![127,32,"(",")","<",">","@",",",";",":","\\",'"',"/","[","]","?","=","{","}"].includes(e)}function At(e){if(typeof e!="string"||e.trim()!==e)return!1;for(let a=0;a<e.length;a++){const o=e.charCodeAt(a);if(o===0||o===10||o===13)return!1}return!0}var na=Symbol("normalizedHeaders"),bo=Symbol("rawHeaderNames"),Rt=", ",It,Pt,$t,hl=class $n{constructor(a){this[It]={},this[Pt]=new Map,this[$t]="Headers",["Headers","HeadersPolyfill"].includes(a==null?void 0:a.constructor.name)||a instanceof $n||typeof globalThis.Headers<"u"&&a instanceof globalThis.Headers?a.forEach((t,n)=>{this.append(n,t)},this):Array.isArray(a)?a.forEach(([o,t])=>{this.append(o,Array.isArray(t)?t.join(Rt):t)}):a&&Object.getOwnPropertyNames(a).forEach(o=>{const t=a[o];this.append(o,Array.isArray(t)?t.join(Rt):t)})}[(It=na,Pt=bo,$t=Symbol.toStringTag,Symbol.iterator)](){return this.entries()}*keys(){for(const[a]of this.entries())yield a}*values(){for(const[,a]of this.entries())yield a}*entries(){let a=Object.keys(this[na]).sort((o,t)=>o.localeCompare(t));for(const o of a)if(o==="set-cookie")for(const t of this.getSetCookie())yield[o,t];else yield[o,this.get(o)]}has(a){if(!ha(a))throw new TypeError(`Invalid header name "${a}"`);return this[na].hasOwnProperty(da(a))}get(a){if(!ha(a))throw TypeError(`Invalid header name "${a}"`);return this[na][da(a)]??null}set(a,o){if(!ha(a)||!At(o))return;const t=da(a),n=yo(o);this[na][t]=yo(n),this[bo].set(t,a)}append(a,o){if(!ha(a)||!At(o))return;const t=da(a),n=yo(o);let r=this.has(t)?`${this.get(t)}, ${n}`:n;this.set(a,r)}delete(a){if(!ha(a)||!this.has(a))return;const o=da(a);delete this[na][o],this[bo].delete(o)}forEach(a,o){for(const[t,n]of this.entries())a.call(o,n,t,this)}getSetCookie(){const a=this.get("set-cookie");return a===null?[]:a===""?[""]:(0,ll.splitCookiesString)(a)}};const{message:fl}=fn,gl=Symbol("kSetCookie");function We(e={}){const a=(e==null?void 0:e.status)||200,o=(e==null?void 0:e.statusText)||fl[a]||"",t=new Headers(e==null?void 0:e.headers);return{...e,headers:t,status:a,statusText:o}}function kl(e,a){a.type&&Object.defineProperty(e,"type",{value:a.type,enumerable:!0,writable:!1});const o=a.headers.get("set-cookie");if(o&&(Object.defineProperty(e,gl,{value:o,enumerable:!1,writable:!1}),typeof document<"u")){const t=hl.prototype.getSetCookie.call(a.headers);for(const n of t)document.cookie=n}return e}const yl=Symbol("bodyType");var Dt,Ft;class xe extends(Ft=Fo,Dt=yl,Ft){constructor(o,t){const n=We(t);super(o,n);Se(this,Dt);kl(this,n)}static text(o,t){const n=We(t);return n.headers.has("Content-Type")||n.headers.set("Content-Type","text/plain"),n.headers.has("Content-Length")||n.headers.set("Content-Length",o?new Blob([o]).size.toString():"0"),new xe(o,n)}static json(o,t){const n=We(t);n.headers.has("Content-Type")||n.headers.set("Content-Type","application/json");const r=JSON.stringify(o);return n.headers.has("Content-Length")||n.headers.set("Content-Length",r?new Blob([r]).size.toString():"0"),new xe(r,n)}static xml(o,t){const n=We(t);return n.headers.has("Content-Type")||n.headers.set("Content-Type","text/xml"),new xe(o,n)}static html(o,t){const n=We(t);return n.headers.has("Content-Type")||n.headers.set("Content-Type","text/html"),new xe(o,n)}static arrayBuffer(o,t){const n=We(t);return n.headers.has("Content-Type")||n.headers.set("Content-Type","application/octet-stream"),o&&!n.headers.has("Content-Length")&&n.headers.set("Content-Length",o.byteLength.toString()),new xe(o,n)}static formData(o,t){return new xe(o,We(t))}}Su();const Dn=(e,a)=>{if(!a)return e.visibility.mode==="public";if(e.visibility.mode==="public")return!0;const t=(B.dataStore.enrollmentsByCourse[e.id]||[]).find(n=>n.user_id===a);return t?e.visibility.mode==="enrolled"?!0:e.visibility.mode==="private"?t.role==="teacher":!1:!1},Fn=(e,a)=>{const o=B.dataStore.enrollmentsByCourse[e.id]||[],t=a?o.find(n=>n.user_id===a):void 0;return{...e,data:{my_data:t?{role:t.role,status:t.status}:void 0,enrollment_data:o}}},bl=e=>{const a=B.dataStore.courses.find(t=>t.id===e),o=B.dataStore.users[0];return a?Dn(a,o==null?void 0:o.id)?xe.json(Fn(a,o==null?void 0:o.id)):xe.json({error:"Access denied"},{status:403}):xe.json({error:"Course not found"},{status:404})},jl=()=>{const e=B.dataStore.users[0],a=B.dataStore.courses.filter(o=>Dn(o,e==null?void 0:e.id)).map(o=>Fn(o,e==null?void 0:e.id));return xe.json(a)},vl=e=>{B.dataStore.lastCourseId+=1;const a={id:B.dataStore.lastCourseId.toString(),created_at:new Date().toISOString(),updated_at:new Date().toISOString(),...e};return B.dataStore.courses.push(a),B.saveDataStore(B.dataStore),xe.json(a)},wl=e=>{const a=B.dataStore.courses.findIndex(o=>o.id===e.id);return a!==-1?(e.updated_at=new Date().toISOString(),B.dataStore.courses[a]=e,B.saveDataStore(B.dataStore),xe.json(e)):xe.json({error:"Course not found"},{status:404})},xl=e=>{const a=B.dataStore.courses.findIndex(o=>o.id===e);if(a!==-1){const o=B.dataStore.courses.splice(a,1)[0];return B.saveDataStore(B.dataStore),xe.json(o)}else return xe.json({error:"Course not found"},{status:404})},Cl=[pa.get(B.baseUrl+"api/courses",async()=>jl()),pa.get(B.baseUrl+"api/courses/:courseId",async({params:e})=>bl(e.courseId)),pa.post(B.baseUrl+"api/courses",async({request:e})=>vl(await e.json())),pa.put(B.baseUrl+"api/courses/:courseId",async({request:e})=>wl(await e.json())),pa.delete(B.baseUrl+"api/courses/:courseId",async({params:e})=>xl(e.courseId))];exports.CourseMicroservice=ku;exports.courseHandlers=Cl;exports.useCourseMicroserviceRegistration=So;exports.useCourseStore=Te;
|
|
126
|
+
export default theme;`}function qs(t){return typeof t=="number"?`${(t*100).toFixed(0)}%`:`calc((${t}) * 100%)`}const bc=t=>{if(!Number.isNaN(+t))return+t;const e=t.match(/\d*\.?\d+/g);if(!e)return 0;let r=0;for(let n=0;n<e.length;n+=1)r+=+e[n];return r};function vc(t){Object.assign(t,{alpha(e,r){const n=this||t;return n.colorSpace?`oklch(from ${e} l c h / ${typeof r=="string"?`calc(${r})`:r})`:n.vars?`rgba(${e.replace(/var\(--([^,\s)]+)(?:,[^)]+)?\)+/g,"var(--$1Channel)")} / ${typeof r=="string"?`calc(${r})`:r})`:Wi(e,bc(r))},lighten(e,r){const n=this||t;return n.colorSpace?`color-mix(in ${n.colorSpace}, ${e}, #fff ${qs(r)})`:Vr(e,r)},darken(e,r){const n=this||t;return n.colorSpace?`color-mix(in ${n.colorSpace}, ${e}, #000 ${qs(r)})`:Lr(e,r)}})}function Sn(t={},...e){const{breakpoints:r,mixins:n={},spacing:s,palette:i={},transitions:o={},typography:a={},shape:l,colorSpace:u,...h}=t;if(t.vars&&t.generateThemeVars===void 0)throw new Error(process.env.NODE_ENV!=="production"?"MUI: `vars` is a private field used for CSS variables support.\nPlease use another name or follow the [docs](https://mui.com/material-ui/customization/css-theme-variables/usage/) to enable the feature.":zt(20));const m=Fn({...i,colorSpace:u}),p=Ar(t);let y=ot(p,{mixins:ic(p.breakpoints,n),palette:m,shadows:dc.slice(),typography:ac(m,a),transitions:pc(o),zIndex:{...yc}});if(y=ot(y,h),y=e.reduce((g,d)=>ot(g,d),y),process.env.NODE_ENV!=="production"){const g=["active","checked","completed","disabled","error","expanded","focused","focusVisible","required","selected"],d=(T,O)=>{let j;for(j in T){const I=T[j];if(g.includes(j)&&Object.keys(I).length>0){if(process.env.NODE_ENV!=="production"){const E=Wn("",j);console.error([`MUI: The \`${O}\` component increases the CSS specificity of the \`${j}\` internal state.`,"You can not override it like this: ",JSON.stringify(T,null,2),"",`Instead, you need to use the '&.${E}' syntax:`,JSON.stringify({root:{[`&.${E}`]:I}},null,2),"","https://mui.com/r/state-classes-guide"].join(`
|
|
127
|
+
`))}T[j]={}}}};Object.keys(y.components).forEach(T=>{const O=y.components[T].styleOverrides;O&&T.startsWith("Mui")&&d(O,T)})}return y.unstable_sxConfig={...Gt,...h==null?void 0:h.unstable_sxConfig},y.unstable_sx=function(d){return wt({sx:d,theme:this})},y.toRuntimeSource=qi,vc(y),y}function Sc(t){let e;return t<1?e=5.11916*t**2:e=4.5*Math.log(t+1)+2,Math.round(e*10)/1e3}const Tc=[...Array(25)].map((t,e)=>{if(e===0)return"none";const r=Sc(e);return`linear-gradient(rgba(255 255 255 / ${r}), rgba(255 255 255 / ${r}))`});function Gi(t){return{inputPlaceholder:t==="dark"?.5:.42,inputUnderline:t==="dark"?.7:.42,switchTrackDisabled:t==="dark"?.2:.12,switchTrack:t==="dark"?.3:.38}}function Hi(t){return t==="dark"?Tc:[]}function xc(t){const{palette:e={mode:"light"},opacity:r,overlays:n,colorSpace:s,...i}=t,o=Fn({...e,colorSpace:s});return{palette:o,opacity:{...Gi(o.mode),...r},overlays:n||Hi(o.mode),...i}}function wc(t){var e;return!!t[0].match(/(cssVarPrefix|colorSchemeSelector|modularCssLayers|rootSelector|typography|mixins|breakpoints|direction|transitions)/)||!!t[0].match(/sxConfig$/)||t[0]==="palette"&&!!((e=t[1])!=null&&e.match(/(mode|contrastThreshold|tonalOffset)/))}const Cc=t=>[...[...Array(25)].map((e,r)=>`--${t?`${t}-`:""}overlays-${r}`),`--${t?`${t}-`:""}palette-AppBar-darkBg`,`--${t?`${t}-`:""}palette-AppBar-darkColor`],Oc=t=>(e,r)=>{const n=t.rootSelector||":root",s=t.colorSchemeSelector;let i=s;if(s==="class"&&(i=".%s"),s==="data"&&(i="[data-%s]"),s!=null&&s.startsWith("data-")&&!s.includes("%s")&&(i=`[${s}="%s"]`),t.defaultColorScheme===e){if(e==="dark"){const o={};return Cc(t.cssVarPrefix).forEach(a=>{o[a]=r[a],delete r[a]}),i==="media"?{[n]:r,"@media (prefers-color-scheme: dark)":{[n]:o}}:i?{[i.replace("%s",e)]:o,[`${n}, ${i.replace("%s",e)}`]:r}:{[n]:{...r,...o}}}if(i&&i!=="media")return`${n}, ${i.replace("%s",String(e))}`}else if(e){if(i==="media")return{[`@media (prefers-color-scheme: ${String(e)})`]:{[n]:r}};if(i)return i.replace("%s",String(e))}return n};function Ec(t,e){e.forEach(r=>{t[r]||(t[r]={})})}function x(t,e,r){!t[e]&&r&&(t[e]=r)}function Rt(t){return typeof t!="string"||!t.startsWith("hsl")?t:Fi(t)}function Ve(t,e){`${e}Channel`in t||(t[`${e}Channel`]=Dt(Rt(t[e]),`MUI: Can't create \`palette.${e}Channel\` because \`palette.${e}\` is not one of these formats: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color().
|
|
128
|
+
To suppress this warning, you need to explicitly provide the \`palette.${e}Channel\` as a string (in rgb format, for example "12 12 12") or undefined if you want to remove the channel token.`))}function kc(t){return typeof t=="number"?`${t}px`:typeof t=="string"||typeof t=="function"||Array.isArray(t)?t:"8px"}const Le=t=>{try{return t()}catch{}},Ic=(t="mui")=>Ou(t);function on(t,e,r,n,s){if(!r)return;r=r===!0?{}:r;const i=s==="dark"?"dark":"light";if(!n){e[s]=xc({...r,palette:{mode:i,...r==null?void 0:r.palette},colorSpace:t});return}const{palette:o,...a}=Sn({...n,palette:{mode:i,...r==null?void 0:r.palette},colorSpace:t});return e[s]={...r,palette:o,opacity:{...Gi(i),...r==null?void 0:r.opacity},overlays:(r==null?void 0:r.overlays)||Hi(i)},a}function Mc(t={},...e){const{colorSchemes:r={light:!0},defaultColorScheme:n,disableCssColorScheme:s=!1,cssVarPrefix:i="mui",nativeColor:o=!1,shouldSkipGeneratingVar:a=wc,colorSchemeSelector:l=r.light&&r.dark?"media":void 0,rootSelector:u=":root",...h}=t,m=Object.keys(r)[0],p=n||(r.light&&m!=="light"?"light":m),y=Ic(i),{[p]:g,light:d,dark:T,...O}=r,j={...O};let I=g;if((p==="dark"&&!("dark"in r)||p==="light"&&!("light"in r))&&(I=!0),!I)throw new Error(process.env.NODE_ENV!=="production"?`MUI: The \`colorSchemes.${p}\` option is either missing or invalid.`:zt(21,p));let E;o&&(E="oklch");const w=on(E,j,I,h,p);d&&!j.light&&on(E,j,d,void 0,"light"),T&&!j.dark&&on(E,j,T,void 0,"dark");let C={defaultColorScheme:p,...w,cssVarPrefix:i,colorSchemeSelector:l,rootSelector:u,getCssVar:y,colorSchemes:j,font:{...nc(w.typography),...w.font},spacing:kc(h.spacing)};Object.keys(C.colorSchemes).forEach(Z=>{const f=C.colorSchemes[Z].palette,D=F=>{const U=F.split("-"),le=U[1],ge=U[2];return y(F,f[le][ge])};f.mode==="light"&&(x(f.common,"background","#fff"),x(f.common,"onBackground","#000")),f.mode==="dark"&&(x(f.common,"background","#000"),x(f.common,"onBackground","#fff"));function M(F,U,le){if(E){let ge;return F===Qe&&(ge=`transparent ${((1-le)*100).toFixed(0)}%`),F===se&&(ge=`#000 ${(le*100).toFixed(0)}%`),F===ie&&(ge=`#fff ${(le*100).toFixed(0)}%`),`color-mix(in ${E}, ${U}, ${ge})`}return F(U,le)}if(Ec(f,["Alert","AppBar","Avatar","Button","Chip","FilledInput","LinearProgress","Skeleton","Slider","SnackbarContent","SpeedDialAction","StepConnector","StepContent","Switch","TableCell","Tooltip"]),f.mode==="light"){x(f.Alert,"errorColor",M(se,f.error.light,.6)),x(f.Alert,"infoColor",M(se,f.info.light,.6)),x(f.Alert,"successColor",M(se,f.success.light,.6)),x(f.Alert,"warningColor",M(se,f.warning.light,.6)),x(f.Alert,"errorFilledBg",D("palette-error-main")),x(f.Alert,"infoFilledBg",D("palette-info-main")),x(f.Alert,"successFilledBg",D("palette-success-main")),x(f.Alert,"warningFilledBg",D("palette-warning-main")),x(f.Alert,"errorFilledColor",Le(()=>f.getContrastText(f.error.main))),x(f.Alert,"infoFilledColor",Le(()=>f.getContrastText(f.info.main))),x(f.Alert,"successFilledColor",Le(()=>f.getContrastText(f.success.main))),x(f.Alert,"warningFilledColor",Le(()=>f.getContrastText(f.warning.main))),x(f.Alert,"errorStandardBg",M(ie,f.error.light,.9)),x(f.Alert,"infoStandardBg",M(ie,f.info.light,.9)),x(f.Alert,"successStandardBg",M(ie,f.success.light,.9)),x(f.Alert,"warningStandardBg",M(ie,f.warning.light,.9)),x(f.Alert,"errorIconColor",D("palette-error-main")),x(f.Alert,"infoIconColor",D("palette-info-main")),x(f.Alert,"successIconColor",D("palette-success-main")),x(f.Alert,"warningIconColor",D("palette-warning-main")),x(f.AppBar,"defaultBg",D("palette-grey-100")),x(f.Avatar,"defaultBg",D("palette-grey-400")),x(f.Button,"inheritContainedBg",D("palette-grey-300")),x(f.Button,"inheritContainedHoverBg",D("palette-grey-A100")),x(f.Chip,"defaultBorder",D("palette-grey-400")),x(f.Chip,"defaultAvatarColor",D("palette-grey-700")),x(f.Chip,"defaultIconColor",D("palette-grey-700")),x(f.FilledInput,"bg","rgba(0, 0, 0, 0.06)"),x(f.FilledInput,"hoverBg","rgba(0, 0, 0, 0.09)"),x(f.FilledInput,"disabledBg","rgba(0, 0, 0, 0.12)"),x(f.LinearProgress,"primaryBg",M(ie,f.primary.main,.62)),x(f.LinearProgress,"secondaryBg",M(ie,f.secondary.main,.62)),x(f.LinearProgress,"errorBg",M(ie,f.error.main,.62)),x(f.LinearProgress,"infoBg",M(ie,f.info.main,.62)),x(f.LinearProgress,"successBg",M(ie,f.success.main,.62)),x(f.LinearProgress,"warningBg",M(ie,f.warning.main,.62)),x(f.Skeleton,"bg",E?M(Qe,f.text.primary,.11):`rgba(${D("palette-text-primaryChannel")} / 0.11)`),x(f.Slider,"primaryTrack",M(ie,f.primary.main,.62)),x(f.Slider,"secondaryTrack",M(ie,f.secondary.main,.62)),x(f.Slider,"errorTrack",M(ie,f.error.main,.62)),x(f.Slider,"infoTrack",M(ie,f.info.main,.62)),x(f.Slider,"successTrack",M(ie,f.success.main,.62)),x(f.Slider,"warningTrack",M(ie,f.warning.main,.62));const F=E?M(se,f.background.default,.6825):ir(f.background.default,.8);x(f.SnackbarContent,"bg",F),x(f.SnackbarContent,"color",Le(()=>E?vn.text.primary:f.getContrastText(F))),x(f.SpeedDialAction,"fabHoverBg",ir(f.background.paper,.15)),x(f.StepConnector,"border",D("palette-grey-400")),x(f.StepContent,"border",D("palette-grey-400")),x(f.Switch,"defaultColor",D("palette-common-white")),x(f.Switch,"defaultDisabledColor",D("palette-grey-100")),x(f.Switch,"primaryDisabledColor",M(ie,f.primary.main,.62)),x(f.Switch,"secondaryDisabledColor",M(ie,f.secondary.main,.62)),x(f.Switch,"errorDisabledColor",M(ie,f.error.main,.62)),x(f.Switch,"infoDisabledColor",M(ie,f.info.main,.62)),x(f.Switch,"successDisabledColor",M(ie,f.success.main,.62)),x(f.Switch,"warningDisabledColor",M(ie,f.warning.main,.62)),x(f.TableCell,"border",M(ie,M(Qe,f.divider,1),.88)),x(f.Tooltip,"bg",M(Qe,f.grey[700],.92))}if(f.mode==="dark"){x(f.Alert,"errorColor",M(ie,f.error.light,.6)),x(f.Alert,"infoColor",M(ie,f.info.light,.6)),x(f.Alert,"successColor",M(ie,f.success.light,.6)),x(f.Alert,"warningColor",M(ie,f.warning.light,.6)),x(f.Alert,"errorFilledBg",D("palette-error-dark")),x(f.Alert,"infoFilledBg",D("palette-info-dark")),x(f.Alert,"successFilledBg",D("palette-success-dark")),x(f.Alert,"warningFilledBg",D("palette-warning-dark")),x(f.Alert,"errorFilledColor",Le(()=>f.getContrastText(f.error.dark))),x(f.Alert,"infoFilledColor",Le(()=>f.getContrastText(f.info.dark))),x(f.Alert,"successFilledColor",Le(()=>f.getContrastText(f.success.dark))),x(f.Alert,"warningFilledColor",Le(()=>f.getContrastText(f.warning.dark))),x(f.Alert,"errorStandardBg",M(se,f.error.light,.9)),x(f.Alert,"infoStandardBg",M(se,f.info.light,.9)),x(f.Alert,"successStandardBg",M(se,f.success.light,.9)),x(f.Alert,"warningStandardBg",M(se,f.warning.light,.9)),x(f.Alert,"errorIconColor",D("palette-error-main")),x(f.Alert,"infoIconColor",D("palette-info-main")),x(f.Alert,"successIconColor",D("palette-success-main")),x(f.Alert,"warningIconColor",D("palette-warning-main")),x(f.AppBar,"defaultBg",D("palette-grey-900")),x(f.AppBar,"darkBg",D("palette-background-paper")),x(f.AppBar,"darkColor",D("palette-text-primary")),x(f.Avatar,"defaultBg",D("palette-grey-600")),x(f.Button,"inheritContainedBg",D("palette-grey-800")),x(f.Button,"inheritContainedHoverBg",D("palette-grey-700")),x(f.Chip,"defaultBorder",D("palette-grey-700")),x(f.Chip,"defaultAvatarColor",D("palette-grey-300")),x(f.Chip,"defaultIconColor",D("palette-grey-300")),x(f.FilledInput,"bg","rgba(255, 255, 255, 0.09)"),x(f.FilledInput,"hoverBg","rgba(255, 255, 255, 0.13)"),x(f.FilledInput,"disabledBg","rgba(255, 255, 255, 0.12)"),x(f.LinearProgress,"primaryBg",M(se,f.primary.main,.5)),x(f.LinearProgress,"secondaryBg",M(se,f.secondary.main,.5)),x(f.LinearProgress,"errorBg",M(se,f.error.main,.5)),x(f.LinearProgress,"infoBg",M(se,f.info.main,.5)),x(f.LinearProgress,"successBg",M(se,f.success.main,.5)),x(f.LinearProgress,"warningBg",M(se,f.warning.main,.5)),x(f.Skeleton,"bg",E?M(Qe,f.text.primary,.13):`rgba(${D("palette-text-primaryChannel")} / 0.13)`),x(f.Slider,"primaryTrack",M(se,f.primary.main,.5)),x(f.Slider,"secondaryTrack",M(se,f.secondary.main,.5)),x(f.Slider,"errorTrack",M(se,f.error.main,.5)),x(f.Slider,"infoTrack",M(se,f.info.main,.5)),x(f.Slider,"successTrack",M(se,f.success.main,.5)),x(f.Slider,"warningTrack",M(se,f.warning.main,.5));const F=E?M(ie,f.background.default,.985):ir(f.background.default,.98);x(f.SnackbarContent,"bg",F),x(f.SnackbarContent,"color",Le(()=>E?Bi.text.primary:f.getContrastText(F))),x(f.SpeedDialAction,"fabHoverBg",ir(f.background.paper,.15)),x(f.StepConnector,"border",D("palette-grey-600")),x(f.StepContent,"border",D("palette-grey-600")),x(f.Switch,"defaultColor",D("palette-grey-300")),x(f.Switch,"defaultDisabledColor",D("palette-grey-600")),x(f.Switch,"primaryDisabledColor",M(se,f.primary.main,.55)),x(f.Switch,"secondaryDisabledColor",M(se,f.secondary.main,.55)),x(f.Switch,"errorDisabledColor",M(se,f.error.main,.55)),x(f.Switch,"infoDisabledColor",M(se,f.info.main,.55)),x(f.Switch,"successDisabledColor",M(se,f.success.main,.55)),x(f.Switch,"warningDisabledColor",M(se,f.warning.main,.55)),x(f.TableCell,"border",M(se,M(Qe,f.divider,1),.68)),x(f.Tooltip,"bg",M(Qe,f.grey[700],.92))}Ve(f.background,"default"),Ve(f.background,"paper"),Ve(f.common,"background"),Ve(f.common,"onBackground"),Ve(f,"divider"),Object.keys(f).forEach(F=>{const U=f[F];F!=="tonalOffset"&&U&&typeof U=="object"&&(U.main&&x(f[F],"mainChannel",Dt(Rt(U.main))),U.light&&x(f[F],"lightChannel",Dt(Rt(U.light))),U.dark&&x(f[F],"darkChannel",Dt(Rt(U.dark))),U.contrastText&&x(f[F],"contrastTextChannel",Dt(Rt(U.contrastText))),F==="text"&&(Ve(f[F],"primary"),Ve(f[F],"secondary")),F==="action"&&(U.active&&Ve(f[F],"active"),U.selected&&Ve(f[F],"selected")))})}),C=e.reduce((Z,f)=>ot(Z,f),C);const V={prefix:i,disableCssColorScheme:s,shouldSkipGeneratingVar:a,getSelector:Oc(C),enableContrastVars:o},{vars:q,generateThemeVars:G,generateStyleSheets:pe}=Iu(C,V);return C.vars=q,Object.entries(C.colorSchemes[C.defaultColorScheme]).forEach(([Z,f])=>{C[Z]=f}),C.generateThemeVars=G,C.generateStyleSheets=pe,C.generateSpacing=function(){return Di(h.spacing,An(this))},C.getColorSchemeSelector=Mu(l),C.spacing=C.generateSpacing(),C.shouldSkipGeneratingVar=a,C.unstable_sxConfig={...Gt,...h==null?void 0:h.unstable_sxConfig},C.unstable_sx=function(f){return wt({sx:f,theme:this})},C.toRuntimeSource=qi,C}function Gs(t,e,r){t.colorSchemes&&r&&(t.colorSchemes[e]={...r!==!0&&r,palette:Fn({...r===!0?{}:r.palette,mode:e})})}function $c(t={},...e){const{palette:r,cssVariables:n=!1,colorSchemes:s=r?void 0:{light:!0},defaultColorScheme:i=r==null?void 0:r.mode,...o}=t,a=i||"light",l=s==null?void 0:s[a],u={...s,...r?{[a]:{...typeof l!="boolean"&&l,palette:r}}:void 0};if(n===!1){if(!("colorSchemes"in t))return Sn(t,...e);let h=r;"palette"in t||u[a]&&(u[a]!==!0?h=u[a].palette:a==="dark"&&(h={mode:"dark"}));const m=Sn({...t,palette:h},...e);return m.defaultColorScheme=a,m.colorSchemes=u,m.palette.mode==="light"&&(m.colorSchemes.light={...u.light!==!0&&u.light,palette:m.palette},Gs(m,"dark",u.dark)),m.palette.mode==="dark"&&(m.colorSchemes.dark={...u.dark!==!0&&u.dark,palette:m.palette},Gs(m,"light",u.light)),m}return!r&&!("light"in u)&&a==="light"&&(u.light=!0),Mc({...o,colorSchemes:u,defaultColorScheme:a,...typeof n!="boolean"&&n},...e)}const Zi=$c(),Ji="$$material";function Nc(){const t=Ln(Zi);return process.env.NODE_ENV!=="production"&&be.useDebugValue(t),t[Ji]||t}function _c(t){return t!=="ownerState"&&t!=="theme"&&t!=="sx"&&t!=="as"}const jc=t=>_c(t)&&t!=="classes",Ki=Li({themeId:Ji,defaultTheme:Zi,rootShouldForwardProp:jc}),Dc=Cu;process.env.NODE_ENV!=="production"&&(v.node,v.object.isRequired);function Qi(t){return wu(t)}function Rc(t,e,r="Mui"){const n={};return e.forEach(s=>{n[s]=Wn(t,s,r)}),n}function Ac(t){return Wn("MuiSvgIcon",t)}Rc("MuiSvgIcon",["root","colorPrimary","colorSecondary","colorAction","colorError","colorDisabled","fontSizeInherit","fontSizeSmall","fontSizeMedium","fontSizeLarge"]);const Pc=t=>{const{color:e,fontSize:r,classes:n}=t,s={root:["root",e!=="inherit"&&`color${pr(e)}`,`fontSize${pr(r)}`]};return Ua(s,Ac,n)},Lc=Ki("svg",{name:"MuiSvgIcon",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:r}=t;return[e.root,r.color!=="inherit"&&e[`color${pr(r.color)}`],e[`fontSize${pr(r.fontSize)}`]]}})(Dc(({theme:t})=>{var e,r,n,s,i,o,a,l,u,h,m,p,y,g;return{userSelect:"none",width:"1em",height:"1em",display:"inline-block",flexShrink:0,transition:(s=(e=t.transitions)==null?void 0:e.create)==null?void 0:s.call(e,"fill",{duration:(n=(r=(t.vars??t).transitions)==null?void 0:r.duration)==null?void 0:n.shorter}),variants:[{props:d=>!d.hasSvgAsChild,style:{fill:"currentColor"}},{props:{fontSize:"inherit"},style:{fontSize:"inherit"}},{props:{fontSize:"small"},style:{fontSize:((o=(i=t.typography)==null?void 0:i.pxToRem)==null?void 0:o.call(i,20))||"1.25rem"}},{props:{fontSize:"medium"},style:{fontSize:((l=(a=t.typography)==null?void 0:a.pxToRem)==null?void 0:l.call(a,24))||"1.5rem"}},{props:{fontSize:"large"},style:{fontSize:((h=(u=t.typography)==null?void 0:u.pxToRem)==null?void 0:h.call(u,35))||"2.1875rem"}},...Object.entries((t.vars??t).palette).filter(([,d])=>d&&d.main).map(([d])=>{var T,O;return{props:{color:d},style:{color:(O=(T=(t.vars??t).palette)==null?void 0:T[d])==null?void 0:O.main}}}),{props:{color:"action"},style:{color:(p=(m=(t.vars??t).palette)==null?void 0:m.action)==null?void 0:p.active}},{props:{color:"disabled"},style:{color:(g=(y=(t.vars??t).palette)==null?void 0:y.action)==null?void 0:g.disabled}},{props:{color:"inherit"},style:{color:void 0}}]}})),Tr=be.forwardRef(function(e,r){const n=Qi({props:e,name:"MuiSvgIcon"}),{children:s,className:i,color:o="inherit",component:a="svg",fontSize:l="medium",htmlColor:u,inheritViewBox:h=!1,titleAccess:m,viewBox:p="0 0 24 24",...y}=n,g=be.isValidElement(s)&&s.type==="svg",d={...n,color:o,component:a,fontSize:l,instanceFontSize:e.fontSize,inheritViewBox:h,viewBox:p,hasSvgAsChild:g},T={};h||(T.viewBox=p);const O=Pc(d);return c.jsxs(Lc,{as:a,className:Dn(O.root,i),focusable:"false",color:u,"aria-hidden":m?void 0:!0,role:m?"img":void 0,ref:r,...T,...y,...g&&s.props,ownerState:d,children:[g?s.props.children:s,m?c.jsx("title",{children:m}):null]})});process.env.NODE_ENV!=="production"&&(Tr.propTypes={children:v.node,classes:v.object,className:v.string,color:v.oneOfType([v.oneOf(["inherit","action","disabled","primary","secondary","error","info","success","warning"]),v.string]),component:v.elementType,fontSize:v.oneOfType([v.oneOf(["inherit","large","medium","small"]),v.string]),htmlColor:v.string,inheritViewBox:v.bool,shapeRendering:v.string,sx:v.oneOfType([v.arrayOf(v.oneOfType([v.func,v.object,v.bool])),v.func,v.object]),titleAccess:v.string,viewBox:v.string});Tr.muiName="SvgIcon";function _e(t,e){function r(n,s){return c.jsx(Tr,{"data-testid":process.env.NODE_ENV!=="production"?`${e}Icon`:void 0,ref:s,...n,children:t})}return process.env.NODE_ENV!=="production"&&(r.displayName=`${e}Icon`),r.muiName=Tr.muiName,be.memo(be.forwardRef(r))}function Vc(t,e){if(process.env.NODE_ENV==="production")return()=>()=>null;const r=e?{...e.propTypes}:null;return s=>(i,o,a,l,u,...h)=>{const m=u||o,p=r==null?void 0:r[m];if(p){const y=p(i,o,a,l,u,...h);if(y)return y}return typeof i[o]<"u"&&!i[s]?new Error(`The prop \`${m}\` of \`${t}\` can only be used together with the \`${s}\` prop.`):null}}const Fc=_e(c.jsx("path",{d:"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6zM19 4h-3.5l-1-1h-5l-1 1H5v2h14z"}),"Delete");function Wc({formData:t,setFormData:e}){var s,i;const r=((i=(s=t.data)==null?void 0:s.enrollmentData)==null?void 0:i.filter(o=>o.role==="teacher"))||[],n=o=>{var a,l;e({...t,data:{...t.data,enrollmentData:(l=(a=t.data)==null?void 0:a.enrollmentData)==null?void 0:l.filter(u=>u.userId!==o)}})};return c.jsxs(S.Stack,{spacing:2,children:[c.jsxs(S.Typography,{variant:"subtitle1",children:["Staff Members (",r.length,")"]}),c.jsx(S.List,{children:r.map(o=>c.jsxs(S.ListItem,{secondaryAction:c.jsx(S.IconButton,{edge:"end","aria-label":"delete",onClick:()=>n(o.userId),children:c.jsx(Fc,{})}),children:[c.jsx(S.Avatar,{sx:{mr:2},children:o.name[0]}),c.jsx(S.ListItemText,{primary:o.name,secondary:o.email})]},o.userId))})]})}function Tn(){return Tn=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)({}).hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},Tn.apply(null,arguments)}class at extends Error{}class zc extends at{constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}}class Uc extends at{constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}}class Bc extends at{constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}}class yt extends at{}class Xi extends at{constructor(e){super(`Invalid unit ${e}`)}}class ve extends at{}class Ue extends at{constructor(){super("Zone is an abstract class")}}const _="numeric",Ae="short",Ce="long",xr={year:_,month:_,day:_},eo={year:_,month:Ae,day:_},Yc={year:_,month:Ae,day:_,weekday:Ae},to={year:_,month:Ce,day:_},ro={year:_,month:Ce,day:_,weekday:Ce},no={hour:_,minute:_},so={hour:_,minute:_,second:_},io={hour:_,minute:_,second:_,timeZoneName:Ae},oo={hour:_,minute:_,second:_,timeZoneName:Ce},ao={hour:_,minute:_,hourCycle:"h23"},lo={hour:_,minute:_,second:_,hourCycle:"h23"},uo={hour:_,minute:_,second:_,hourCycle:"h23",timeZoneName:Ae},co={hour:_,minute:_,second:_,hourCycle:"h23",timeZoneName:Ce},fo={year:_,month:_,day:_,hour:_,minute:_},ho={year:_,month:_,day:_,hour:_,minute:_,second:_},mo={year:_,month:Ae,day:_,hour:_,minute:_},po={year:_,month:Ae,day:_,hour:_,minute:_,second:_},qc={year:_,month:Ae,day:_,weekday:Ae,hour:_,minute:_},yo={year:_,month:Ce,day:_,hour:_,minute:_,timeZoneName:Ae},go={year:_,month:Ce,day:_,hour:_,minute:_,second:_,timeZoneName:Ae},bo={year:_,month:Ce,day:_,weekday:Ce,hour:_,minute:_,timeZoneName:Ce},vo={year:_,month:Ce,day:_,weekday:Ce,hour:_,minute:_,second:_,timeZoneName:Ce};class Ht{get type(){throw new Ue}get name(){throw new Ue}get ianaName(){return this.name}get isUniversal(){throw new Ue}offsetName(e,r){throw new Ue}formatOffset(e,r){throw new Ue}offset(e){throw new Ue}equals(e){throw new Ue}get isValid(){throw new Ue}}let an=null;class Wr extends Ht{static get instance(){return an===null&&(an=new Wr),an}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(e,{format:r,locale:n}){return $o(e,r,n)}formatOffset(e,r){return Wt(this.offset(e),r)}offset(e){return-new Date(e).getTimezoneOffset()}equals(e){return e.type==="system"}get isValid(){return!0}}const xn=new Map;function Gc(t){let e=xn.get(t);return e===void 0&&(e=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:t,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",era:"short"}),xn.set(t,e)),e}const Hc={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function Zc(t,e){const r=t.format(e).replace(/\u200E/g,""),n=/(\d+)\/(\d+)\/(\d+) (AD|BC),? (\d+):(\d+):(\d+)/.exec(r),[,s,i,o,a,l,u,h]=n;return[o,s,i,a,l,u,h]}function Jc(t,e){const r=t.formatToParts(e),n=[];for(let s=0;s<r.length;s++){const{type:i,value:o}=r[s],a=Hc[i];i==="era"?n[a]=o:z(a)||(n[a]=parseInt(o,10))}return n}const ln=new Map;class ze extends Ht{static create(e){let r=ln.get(e);return r===void 0&&ln.set(e,r=new ze(e)),r}static resetCache(){ln.clear(),xn.clear()}static isValidSpecifier(e){return this.isValidZone(e)}static isValidZone(e){if(!e)return!1;try{return new Intl.DateTimeFormat("en-US",{timeZone:e}).format(),!0}catch{return!1}}constructor(e){super(),this.zoneName=e,this.valid=ze.isValidZone(e)}get type(){return"iana"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(e,{format:r,locale:n}){return $o(e,r,n,this.name)}formatOffset(e,r){return Wt(this.offset(e),r)}offset(e){if(!this.valid)return NaN;const r=new Date(e);if(isNaN(r))return NaN;const n=Gc(this.name);let[s,i,o,a,l,u,h]=n.formatToParts?Jc(n,r):Zc(n,r);a==="BC"&&(s=-Math.abs(s)+1);const p=Ur({year:s,month:i,day:o,hour:l===24?0:l,minute:u,second:h,millisecond:0});let y=+r;const g=y%1e3;return y-=g>=0?g:1e3+g,(p-y)/(60*1e3)}equals(e){return e.type==="iana"&&e.name===this.name}get isValid(){return this.valid}}let Hs={};function Kc(t,e={}){const r=JSON.stringify([t,e]);let n=Hs[r];return n||(n=new Intl.ListFormat(t,e),Hs[r]=n),n}const wn=new Map;function Cn(t,e={}){const r=JSON.stringify([t,e]);let n=wn.get(r);return n===void 0&&(n=new Intl.DateTimeFormat(t,e),wn.set(r,n)),n}const On=new Map;function Qc(t,e={}){const r=JSON.stringify([t,e]);let n=On.get(r);return n===void 0&&(n=new Intl.NumberFormat(t,e),On.set(r,n)),n}const En=new Map;function Xc(t,e={}){const{base:r,...n}=e,s=JSON.stringify([t,n]);let i=En.get(s);return i===void 0&&(i=new Intl.RelativeTimeFormat(t,e),En.set(s,i)),i}let At=null;function ed(){return At||(At=new Intl.DateTimeFormat().resolvedOptions().locale,At)}const kn=new Map;function So(t){let e=kn.get(t);return e===void 0&&(e=new Intl.DateTimeFormat(t).resolvedOptions(),kn.set(t,e)),e}const In=new Map;function td(t){let e=In.get(t);if(!e){const r=new Intl.Locale(t);e="getWeekInfo"in r?r.getWeekInfo():r.weekInfo,"minimalDays"in e||(e={...To,...e}),In.set(t,e)}return e}function rd(t){const e=t.indexOf("-x-");e!==-1&&(t=t.substring(0,e));const r=t.indexOf("-u-");if(r===-1)return[t];{let n,s;try{n=Cn(t).resolvedOptions(),s=t}catch{const l=t.substring(0,r);n=Cn(l).resolvedOptions(),s=l}const{numberingSystem:i,calendar:o}=n;return[s,i,o]}}function nd(t,e,r){return(r||e)&&(t.includes("-u-")||(t+="-u"),r&&(t+=`-ca-${r}`),e&&(t+=`-nu-${e}`)),t}function sd(t){const e=[];for(let r=1;r<=12;r++){const n=W.utc(2009,r,1);e.push(t(n))}return e}function id(t){const e=[];for(let r=1;r<=7;r++){const n=W.utc(2016,11,13+r);e.push(t(n))}return e}function or(t,e,r,n){const s=t.listingMode();return s==="error"?null:s==="en"?r(e):n(e)}function od(t){return t.numberingSystem&&t.numberingSystem!=="latn"?!1:t.numberingSystem==="latn"||!t.locale||t.locale.startsWith("en")||So(t.locale).numberingSystem==="latn"}class ad{constructor(e,r,n){this.padTo=n.padTo||0,this.floor=n.floor||!1;const{padTo:s,floor:i,...o}=n;if(!r||Object.keys(o).length>0){const a={useGrouping:!1,...n};n.padTo>0&&(a.minimumIntegerDigits=n.padTo),this.inf=Qc(e,a)}}format(e){if(this.inf){const r=this.floor?Math.floor(e):e;return this.inf.format(r)}else{const r=this.floor?Math.floor(e):qn(e,3);return ye(r,this.padTo)}}}class ld{constructor(e,r,n){this.opts=n,this.originalZone=void 0;let s;if(this.opts.timeZone)this.dt=e;else if(e.zone.type==="fixed"){const o=-1*(e.offset/60),a=o>=0?`Etc/GMT+${o}`:`Etc/GMT${o}`;e.offset!==0&&ze.create(a).valid?(s=a,this.dt=e):(s="UTC",this.dt=e.offset===0?e:e.setZone("UTC").plus({minutes:e.offset}),this.originalZone=e.zone)}else e.zone.type==="system"?this.dt=e:e.zone.type==="iana"?(this.dt=e,s=e.zone.name):(s="UTC",this.dt=e.setZone("UTC").plus({minutes:e.offset}),this.originalZone=e.zone);const i={...this.opts};i.timeZone=i.timeZone||s,this.dtf=Cn(r,i)}format(){return this.originalZone?this.formatToParts().map(({value:e})=>e).join(""):this.dtf.format(this.dt.toJSDate())}formatToParts(){const e=this.dtf.formatToParts(this.dt.toJSDate());return this.originalZone?e.map(r=>{if(r.type==="timeZoneName"){const n=this.originalZone.offsetName(this.dt.ts,{locale:this.dt.locale,format:this.opts.timeZoneName});return{...r,value:n}}else return r}):e}resolvedOptions(){return this.dtf.resolvedOptions()}}class ud{constructor(e,r,n){this.opts={style:"long",...n},!r&&Io()&&(this.rtf=Xc(e,n))}format(e,r){return this.rtf?this.rtf.format(e,r):Nd(r,e,this.opts.numeric,this.opts.style!=="long")}formatToParts(e,r){return this.rtf?this.rtf.formatToParts(e,r):[]}}const To={firstDay:1,minimalDays:4,weekend:[6,7]};class ne{static fromOpts(e){return ne.create(e.locale,e.numberingSystem,e.outputCalendar,e.weekSettings,e.defaultToEN)}static create(e,r,n,s,i=!1){const o=e||he.defaultLocale,a=o||(i?"en-US":ed()),l=r||he.defaultNumberingSystem,u=n||he.defaultOutputCalendar,h=$n(s)||he.defaultWeekSettings;return new ne(a,l,u,h,o)}static resetCache(){At=null,wn.clear(),On.clear(),En.clear(),kn.clear(),In.clear()}static fromObject({locale:e,numberingSystem:r,outputCalendar:n,weekSettings:s}={}){return ne.create(e,r,n,s)}constructor(e,r,n,s,i){const[o,a,l]=rd(e);this.locale=o,this.numberingSystem=r||a||null,this.outputCalendar=n||l||null,this.weekSettings=s,this.intl=nd(this.locale,this.numberingSystem,this.outputCalendar),this.weekdaysCache={format:{},standalone:{}},this.monthsCache={format:{},standalone:{}},this.meridiemCache=null,this.eraCache={},this.specifiedLocale=i,this.fastNumbersCached=null}get fastNumbers(){return this.fastNumbersCached==null&&(this.fastNumbersCached=od(this)),this.fastNumbersCached}listingMode(){const e=this.isEnglish(),r=(this.numberingSystem===null||this.numberingSystem==="latn")&&(this.outputCalendar===null||this.outputCalendar==="gregory");return e&&r?"en":"intl"}clone(e){return!e||Object.getOwnPropertyNames(e).length===0?this:ne.create(e.locale||this.specifiedLocale,e.numberingSystem||this.numberingSystem,e.outputCalendar||this.outputCalendar,$n(e.weekSettings)||this.weekSettings,e.defaultToEN||!1)}redefaultToEN(e={}){return this.clone({...e,defaultToEN:!0})}redefaultToSystem(e={}){return this.clone({...e,defaultToEN:!1})}months(e,r=!1){return or(this,e,jo,()=>{const n=this.intl==="ja"||this.intl.startsWith("ja-");r&=!n;const s=r?{month:e,day:"numeric"}:{month:e},i=r?"format":"standalone";if(!this.monthsCache[i][e]){const o=n?a=>this.dtFormatter(a,s).format():a=>this.extract(a,s,"month");this.monthsCache[i][e]=sd(o)}return this.monthsCache[i][e]})}weekdays(e,r=!1){return or(this,e,Ao,()=>{const n=r?{weekday:e,year:"numeric",month:"long",day:"numeric"}:{weekday:e},s=r?"format":"standalone";return this.weekdaysCache[s][e]||(this.weekdaysCache[s][e]=id(i=>this.extract(i,n,"weekday"))),this.weekdaysCache[s][e]})}meridiems(){return or(this,void 0,()=>Po,()=>{if(!this.meridiemCache){const e={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[W.utc(2016,11,13,9),W.utc(2016,11,13,19)].map(r=>this.extract(r,e,"dayperiod"))}return this.meridiemCache})}eras(e){return or(this,e,Lo,()=>{const r={era:e};return this.eraCache[e]||(this.eraCache[e]=[W.utc(-40,1,1),W.utc(2017,1,1)].map(n=>this.extract(n,r,"era"))),this.eraCache[e]})}extract(e,r,n){const s=this.dtFormatter(e,r),i=s.formatToParts(),o=i.find(a=>a.type.toLowerCase()===n);return o?o.value:null}numberFormatter(e={}){return new ad(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e,r={}){return new ld(e,this.intl,r)}relFormatter(e={}){return new ud(this.intl,this.isEnglish(),e)}listFormatter(e={}){return Kc(this.intl,e)}isEnglish(){return this.locale==="en"||this.locale.toLowerCase()==="en-us"||So(this.intl).locale.startsWith("en-us")}getWeekSettings(){return this.weekSettings?this.weekSettings:Mo()?td(this.locale):To}getStartOfWeek(){return this.getWeekSettings().firstDay}getMinDaysInFirstWeek(){return this.getWeekSettings().minimalDays}getWeekendDays(){return this.getWeekSettings().weekend}equals(e){return this.locale===e.locale&&this.numberingSystem===e.numberingSystem&&this.outputCalendar===e.outputCalendar}toString(){return`Locale(${this.locale}, ${this.numberingSystem}, ${this.outputCalendar})`}}let un=null;class Te extends Ht{static get utcInstance(){return un===null&&(un=new Te(0)),un}static instance(e){return e===0?Te.utcInstance:new Te(e)}static parseSpecifier(e){if(e){const r=e.match(/^utc(?:([+-]\d{1,2})(?::(\d{2}))?)?$/i);if(r)return new Te(Br(r[1],r[2]))}return null}constructor(e){super(),this.fixed=e}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${Wt(this.fixed,"narrow")}`}get ianaName(){return this.fixed===0?"Etc/UTC":`Etc/GMT${Wt(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(e,r){return Wt(this.fixed,r)}get isUniversal(){return!0}offset(){return this.fixed}equals(e){return e.type==="fixed"&&e.fixed===this.fixed}get isValid(){return!0}}class cd extends Ht{constructor(e){super(),this.zoneName=e}get type(){return"invalid"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(){return null}formatOffset(){return""}offset(){return NaN}equals(){return!1}get isValid(){return!1}}function Ge(t,e){if(z(t)||t===null)return e;if(t instanceof Ht)return t;if(yd(t)){const r=t.toLowerCase();return r==="default"?e:r==="local"||r==="system"?Wr.instance:r==="utc"||r==="gmt"?Te.utcInstance:Te.parseSpecifier(r)||ze.create(t)}else return Ze(t)?Te.instance(t):typeof t=="object"&&"offset"in t&&typeof t.offset=="function"?t:new cd(t)}const zn={arab:"[٠-٩]",arabext:"[۰-۹]",bali:"[᭐-᭙]",beng:"[০-৯]",deva:"[०-९]",fullwide:"[0-9]",gujr:"[૦-૯]",hanidec:"[〇|一|二|三|四|五|六|七|八|九]",khmr:"[០-៩]",knda:"[೦-೯]",laoo:"[໐-໙]",limb:"[᥆-᥏]",mlym:"[൦-൯]",mong:"[᠐-᠙]",mymr:"[၀-၉]",orya:"[୦-୯]",tamldec:"[௦-௯]",telu:"[౦-౯]",thai:"[๐-๙]",tibt:"[༠-༩]",latn:"\\d"},Zs={arab:[1632,1641],arabext:[1776,1785],bali:[6992,7001],beng:[2534,2543],deva:[2406,2415],fullwide:[65296,65303],gujr:[2790,2799],khmr:[6112,6121],knda:[3302,3311],laoo:[3792,3801],limb:[6470,6479],mlym:[3430,3439],mong:[6160,6169],mymr:[4160,4169],orya:[2918,2927],tamldec:[3046,3055],telu:[3174,3183],thai:[3664,3673],tibt:[3872,3881]},dd=zn.hanidec.replace(/[\[|\]]/g,"").split("");function fd(t){let e=parseInt(t,10);if(isNaN(e)){e="";for(let r=0;r<t.length;r++){const n=t.charCodeAt(r);if(t[r].search(zn.hanidec)!==-1)e+=dd.indexOf(t[r]);else for(const s in Zs){const[i,o]=Zs[s];n>=i&&n<=o&&(e+=n-i)}}return parseInt(e,10)}else return e}const Mn=new Map;function hd(){Mn.clear()}function je({numberingSystem:t},e=""){const r=t||"latn";let n=Mn.get(r);n===void 0&&(n=new Map,Mn.set(r,n));let s=n.get(e);return s===void 0&&(s=new RegExp(`${zn[r]}${e}`),n.set(e,s)),s}let Js=()=>Date.now(),Ks="system",Qs=null,Xs=null,ei=null,ti=60,ri,ni=null;class he{static get now(){return Js}static set now(e){Js=e}static set defaultZone(e){Ks=e}static get defaultZone(){return Ge(Ks,Wr.instance)}static get defaultLocale(){return Qs}static set defaultLocale(e){Qs=e}static get defaultNumberingSystem(){return Xs}static set defaultNumberingSystem(e){Xs=e}static get defaultOutputCalendar(){return ei}static set defaultOutputCalendar(e){ei=e}static get defaultWeekSettings(){return ni}static set defaultWeekSettings(e){ni=$n(e)}static get twoDigitCutoffYear(){return ti}static set twoDigitCutoffYear(e){ti=e%100}static get throwOnInvalid(){return ri}static set throwOnInvalid(e){ri=e}static resetCaches(){ne.resetCache(),ze.resetCache(),W.resetCache(),hd()}}class Re{constructor(e,r){this.reason=e,this.explanation=r}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}}const xo=[0,31,59,90,120,151,181,212,243,273,304,334],wo=[0,31,60,91,121,152,182,213,244,274,305,335];function Me(t,e){return new Re("unit out of range",`you specified ${e} (of type ${typeof e}) as a ${t}, which is invalid`)}function Un(t,e,r){const n=new Date(Date.UTC(t,e-1,r));t<100&&t>=0&&n.setUTCFullYear(n.getUTCFullYear()-1900);const s=n.getUTCDay();return s===0?7:s}function Co(t,e,r){return r+(Zt(t)?wo:xo)[e-1]}function Oo(t,e){const r=Zt(t)?wo:xo,n=r.findIndex(i=>i<e),s=e-r[n];return{month:n+1,day:s}}function Bn(t,e){return(t-e+7)%7+1}function wr(t,e=4,r=1){const{year:n,month:s,day:i}=t,o=Co(n,s,i),a=Bn(Un(n,s,i),r);let l=Math.floor((o-a+14-e)/7),u;return l<1?(u=n-1,l=Bt(u,e,r)):l>Bt(n,e,r)?(u=n+1,l=1):u=n,{weekYear:u,weekNumber:l,weekday:a,...Yr(t)}}function si(t,e=4,r=1){const{weekYear:n,weekNumber:s,weekday:i}=t,o=Bn(Un(n,1,e),r),a=St(n);let l=s*7+i-o-7+e,u;l<1?(u=n-1,l+=St(u)):l>a?(u=n+1,l-=St(n)):u=n;const{month:h,day:m}=Oo(u,l);return{year:u,month:h,day:m,...Yr(t)}}function cn(t){const{year:e,month:r,day:n}=t,s=Co(e,r,n);return{year:e,ordinal:s,...Yr(t)}}function ii(t){const{year:e,ordinal:r}=t,{month:n,day:s}=Oo(e,r);return{year:e,month:n,day:s,...Yr(t)}}function oi(t,e){if(!z(t.localWeekday)||!z(t.localWeekNumber)||!z(t.localWeekYear)){if(!z(t.weekday)||!z(t.weekNumber)||!z(t.weekYear))throw new yt("Cannot mix locale-based week fields with ISO-based week fields");return z(t.localWeekday)||(t.weekday=t.localWeekday),z(t.localWeekNumber)||(t.weekNumber=t.localWeekNumber),z(t.localWeekYear)||(t.weekYear=t.localWeekYear),delete t.localWeekday,delete t.localWeekNumber,delete t.localWeekYear,{minDaysInFirstWeek:e.getMinDaysInFirstWeek(),startOfWeek:e.getStartOfWeek()}}else return{minDaysInFirstWeek:4,startOfWeek:1}}function md(t,e=4,r=1){const n=zr(t.weekYear),s=$e(t.weekNumber,1,Bt(t.weekYear,e,r)),i=$e(t.weekday,1,7);return n?s?i?!1:Me("weekday",t.weekday):Me("week",t.weekNumber):Me("weekYear",t.weekYear)}function pd(t){const e=zr(t.year),r=$e(t.ordinal,1,St(t.year));return e?r?!1:Me("ordinal",t.ordinal):Me("year",t.year)}function Eo(t){const e=zr(t.year),r=$e(t.month,1,12),n=$e(t.day,1,Cr(t.year,t.month));return e?r?n?!1:Me("day",t.day):Me("month",t.month):Me("year",t.year)}function ko(t){const{hour:e,minute:r,second:n,millisecond:s}=t,i=$e(e,0,23)||e===24&&r===0&&n===0&&s===0,o=$e(r,0,59),a=$e(n,0,59),l=$e(s,0,999);return i?o?a?l?!1:Me("millisecond",s):Me("second",n):Me("minute",r):Me("hour",e)}function z(t){return typeof t>"u"}function Ze(t){return typeof t=="number"}function zr(t){return typeof t=="number"&&t%1===0}function yd(t){return typeof t=="string"}function gd(t){return Object.prototype.toString.call(t)==="[object Date]"}function Io(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch{return!1}}function Mo(){try{return typeof Intl<"u"&&!!Intl.Locale&&("weekInfo"in Intl.Locale.prototype||"getWeekInfo"in Intl.Locale.prototype)}catch{return!1}}function bd(t){return Array.isArray(t)?t:[t]}function ai(t,e,r){if(t.length!==0)return t.reduce((n,s)=>{const i=[e(s),s];return n&&r(n[0],i[0])===n[0]?n:i},null)[1]}function vd(t,e){return e.reduce((r,n)=>(r[n]=t[n],r),{})}function Ct(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function $n(t){if(t==null)return null;if(typeof t!="object")throw new ve("Week settings must be an object");if(!$e(t.firstDay,1,7)||!$e(t.minimalDays,1,7)||!Array.isArray(t.weekend)||t.weekend.some(e=>!$e(e,1,7)))throw new ve("Invalid week settings");return{firstDay:t.firstDay,minimalDays:t.minimalDays,weekend:Array.from(t.weekend)}}function $e(t,e,r){return zr(t)&&t>=e&&t<=r}function Sd(t,e){return t-e*Math.floor(t/e)}function ye(t,e=2){const r=t<0;let n;return r?n="-"+(""+-t).padStart(e,"0"):n=(""+t).padStart(e,"0"),n}function Be(t){if(!(z(t)||t===null||t===""))return parseInt(t,10)}function Xe(t){if(!(z(t)||t===null||t===""))return parseFloat(t)}function Yn(t){if(!(z(t)||t===null||t==="")){const e=parseFloat("0."+t)*1e3;return Math.floor(e)}}function qn(t,e,r="round"){const n=10**e;switch(r){case"expand":return t>0?Math.ceil(t*n)/n:Math.floor(t*n)/n;case"trunc":return Math.trunc(t*n)/n;case"round":return Math.round(t*n)/n;case"floor":return Math.floor(t*n)/n;case"ceil":return Math.ceil(t*n)/n;default:throw new RangeError(`Value rounding ${r} is out of range`)}}function Zt(t){return t%4===0&&(t%100!==0||t%400===0)}function St(t){return Zt(t)?366:365}function Cr(t,e){const r=Sd(e-1,12)+1,n=t+(e-r)/12;return r===2?Zt(n)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][r-1]}function Ur(t){let e=Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,t.second,t.millisecond);return t.year<100&&t.year>=0&&(e=new Date(e),e.setUTCFullYear(t.year,t.month-1,t.day)),+e}function li(t,e,r){return-Bn(Un(t,1,e),r)+e-1}function Bt(t,e=4,r=1){const n=li(t,e,r),s=li(t+1,e,r);return(St(t)-n+s)/7}function Nn(t){return t>99?t:t>he.twoDigitCutoffYear?1900+t:2e3+t}function $o(t,e,r,n=null){const s=new Date(t),i={hourCycle:"h23",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"};n&&(i.timeZone=n);const o={timeZoneName:e,...i},a=new Intl.DateTimeFormat(r,o).formatToParts(s).find(l=>l.type.toLowerCase()==="timezonename");return a?a.value:null}function Br(t,e){let r=parseInt(t,10);Number.isNaN(r)&&(r=0);const n=parseInt(e,10)||0,s=r<0||Object.is(r,-0)?-n:n;return r*60+s}function No(t){const e=Number(t);if(typeof t=="boolean"||t===""||!Number.isFinite(e))throw new ve(`Invalid unit value ${t}`);return e}function Or(t,e){const r={};for(const n in t)if(Ct(t,n)){const s=t[n];if(s==null)continue;r[e(n)]=No(s)}return r}function Wt(t,e){const r=Math.trunc(Math.abs(t/60)),n=Math.trunc(Math.abs(t%60)),s=t>=0?"+":"-";switch(e){case"short":return`${s}${ye(r,2)}:${ye(n,2)}`;case"narrow":return`${s}${r}${n>0?`:${n}`:""}`;case"techie":return`${s}${ye(r,2)}${ye(n,2)}`;default:throw new RangeError(`Value format ${e} is out of range for property format`)}}function Yr(t){return vd(t,["hour","minute","second","millisecond"])}const Td=["January","February","March","April","May","June","July","August","September","October","November","December"],_o=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],xd=["J","F","M","A","M","J","J","A","S","O","N","D"];function jo(t){switch(t){case"narrow":return[...xd];case"short":return[..._o];case"long":return[...Td];case"numeric":return["1","2","3","4","5","6","7","8","9","10","11","12"];case"2-digit":return["01","02","03","04","05","06","07","08","09","10","11","12"];default:return null}}const Do=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],Ro=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],wd=["M","T","W","T","F","S","S"];function Ao(t){switch(t){case"narrow":return[...wd];case"short":return[...Ro];case"long":return[...Do];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}const Po=["AM","PM"],Cd=["Before Christ","Anno Domini"],Od=["BC","AD"],Ed=["B","A"];function Lo(t){switch(t){case"narrow":return[...Ed];case"short":return[...Od];case"long":return[...Cd];default:return null}}function kd(t){return Po[t.hour<12?0:1]}function Id(t,e){return Ao(e)[t.weekday-1]}function Md(t,e){return jo(e)[t.month-1]}function $d(t,e){return Lo(e)[t.year<0?0:1]}function Nd(t,e,r="always",n=!1){const s={years:["year","yr."],quarters:["quarter","qtr."],months:["month","mo."],weeks:["week","wk."],days:["day","day","days"],hours:["hour","hr."],minutes:["minute","min."],seconds:["second","sec."]},i=["hours","minutes","seconds"].indexOf(t)===-1;if(r==="auto"&&i){const m=t==="days";switch(e){case 1:return m?"tomorrow":`next ${s[t][0]}`;case-1:return m?"yesterday":`last ${s[t][0]}`;case 0:return m?"today":`this ${s[t][0]}`}}const o=Object.is(e,-0)||e<0,a=Math.abs(e),l=a===1,u=s[t],h=n?l?u[1]:u[2]||u[1]:l?s[t][0]:t;return o?`${a} ${h} ago`:`in ${a} ${h}`}function ui(t,e){let r="";for(const n of t)n.literal?r+=n.val:r+=e(n.val);return r}const _d={D:xr,DD:eo,DDD:to,DDDD:ro,t:no,tt:so,ttt:io,tttt:oo,T:ao,TT:lo,TTT:uo,TTTT:co,f:fo,ff:mo,fff:yo,ffff:bo,F:ho,FF:po,FFF:go,FFFF:vo};class Se{static create(e,r={}){return new Se(e,r)}static parseFormat(e){let r=null,n="",s=!1;const i=[];for(let o=0;o<e.length;o++){const a=e.charAt(o);a==="'"?((n.length>0||s)&&i.push({literal:s||/^\s+$/.test(n),val:n===""?"'":n}),r=null,n="",s=!s):s||a===r?n+=a:(n.length>0&&i.push({literal:/^\s+$/.test(n),val:n}),n=a,r=a)}return n.length>0&&i.push({literal:s||/^\s+$/.test(n),val:n}),i}static macroTokenToFormatOpts(e){return _d[e]}constructor(e,r){this.opts=r,this.loc=e,this.systemLoc=null}formatWithSystemDefault(e,r){return this.systemLoc===null&&(this.systemLoc=this.loc.redefaultToSystem()),this.systemLoc.dtFormatter(e,{...this.opts,...r}).format()}dtFormatter(e,r={}){return this.loc.dtFormatter(e,{...this.opts,...r})}formatDateTime(e,r){return this.dtFormatter(e,r).format()}formatDateTimeParts(e,r){return this.dtFormatter(e,r).formatToParts()}formatInterval(e,r){return this.dtFormatter(e.start,r).dtf.formatRange(e.start.toJSDate(),e.end.toJSDate())}resolvedOptions(e,r){return this.dtFormatter(e,r).resolvedOptions()}num(e,r=0,n=void 0){if(this.opts.forceSimple)return ye(e,r);const s={...this.opts};return r>0&&(s.padTo=r),n&&(s.signDisplay=n),this.loc.numberFormatter(s).format(e)}formatDateTimeFromString(e,r){const n=this.loc.listingMode()==="en",s=this.loc.outputCalendar&&this.loc.outputCalendar!=="gregory",i=(y,g)=>this.loc.extract(e,y,g),o=y=>e.isOffsetFixed&&e.offset===0&&y.allowZ?"Z":e.isValid?e.zone.formatOffset(e.ts,y.format):"",a=()=>n?kd(e):i({hour:"numeric",hourCycle:"h12"},"dayperiod"),l=(y,g)=>n?Md(e,y):i(g?{month:y}:{month:y,day:"numeric"},"month"),u=(y,g)=>n?Id(e,y):i(g?{weekday:y}:{weekday:y,month:"long",day:"numeric"},"weekday"),h=y=>{const g=Se.macroTokenToFormatOpts(y);return g?this.formatWithSystemDefault(e,g):y},m=y=>n?$d(e,y):i({era:y},"era"),p=y=>{switch(y){case"S":return this.num(e.millisecond);case"u":case"SSS":return this.num(e.millisecond,3);case"s":return this.num(e.second);case"ss":return this.num(e.second,2);case"uu":return this.num(Math.floor(e.millisecond/10),2);case"uuu":return this.num(Math.floor(e.millisecond/100));case"m":return this.num(e.minute);case"mm":return this.num(e.minute,2);case"h":return this.num(e.hour%12===0?12:e.hour%12);case"hh":return this.num(e.hour%12===0?12:e.hour%12,2);case"H":return this.num(e.hour);case"HH":return this.num(e.hour,2);case"Z":return o({format:"narrow",allowZ:this.opts.allowZ});case"ZZ":return o({format:"short",allowZ:this.opts.allowZ});case"ZZZ":return o({format:"techie",allowZ:this.opts.allowZ});case"ZZZZ":return e.zone.offsetName(e.ts,{format:"short",locale:this.loc.locale});case"ZZZZZ":return e.zone.offsetName(e.ts,{format:"long",locale:this.loc.locale});case"z":return e.zoneName;case"a":return a();case"d":return s?i({day:"numeric"},"day"):this.num(e.day);case"dd":return s?i({day:"2-digit"},"day"):this.num(e.day,2);case"c":return this.num(e.weekday);case"ccc":return u("short",!0);case"cccc":return u("long",!0);case"ccccc":return u("narrow",!0);case"E":return this.num(e.weekday);case"EEE":return u("short",!1);case"EEEE":return u("long",!1);case"EEEEE":return u("narrow",!1);case"L":return s?i({month:"numeric",day:"numeric"},"month"):this.num(e.month);case"LL":return s?i({month:"2-digit",day:"numeric"},"month"):this.num(e.month,2);case"LLL":return l("short",!0);case"LLLL":return l("long",!0);case"LLLLL":return l("narrow",!0);case"M":return s?i({month:"numeric"},"month"):this.num(e.month);case"MM":return s?i({month:"2-digit"},"month"):this.num(e.month,2);case"MMM":return l("short",!1);case"MMMM":return l("long",!1);case"MMMMM":return l("narrow",!1);case"y":return s?i({year:"numeric"},"year"):this.num(e.year);case"yy":return s?i({year:"2-digit"},"year"):this.num(e.year.toString().slice(-2),2);case"yyyy":return s?i({year:"numeric"},"year"):this.num(e.year,4);case"yyyyyy":return s?i({year:"numeric"},"year"):this.num(e.year,6);case"G":return m("short");case"GG":return m("long");case"GGGGG":return m("narrow");case"kk":return this.num(e.weekYear.toString().slice(-2),2);case"kkkk":return this.num(e.weekYear,4);case"W":return this.num(e.weekNumber);case"WW":return this.num(e.weekNumber,2);case"n":return this.num(e.localWeekNumber);case"nn":return this.num(e.localWeekNumber,2);case"ii":return this.num(e.localWeekYear.toString().slice(-2),2);case"iiii":return this.num(e.localWeekYear,4);case"o":return this.num(e.ordinal);case"ooo":return this.num(e.ordinal,3);case"q":return this.num(e.quarter);case"qq":return this.num(e.quarter,2);case"X":return this.num(Math.floor(e.ts/1e3));case"x":return this.num(e.ts);default:return h(y)}};return ui(Se.parseFormat(r),p)}formatDurationFromString(e,r){const n=this.opts.signMode==="negativeLargestOnly"?-1:1,s=h=>{switch(h[0]){case"S":return"milliseconds";case"s":return"seconds";case"m":return"minutes";case"h":return"hours";case"d":return"days";case"w":return"weeks";case"M":return"months";case"y":return"years";default:return null}},i=(h,m)=>p=>{const y=s(p);if(y){const g=m.isNegativeDuration&&y!==m.largestUnit?n:1;let d;return this.opts.signMode==="negativeLargestOnly"&&y!==m.largestUnit?d="never":this.opts.signMode==="all"?d="always":d="auto",this.num(h.get(y)*g,p.length,d)}else return p},o=Se.parseFormat(r),a=o.reduce((h,{literal:m,val:p})=>m?h:h.concat(p),[]),l=e.shiftTo(...a.map(s).filter(h=>h)),u={isNegativeDuration:l<0,largestUnit:Object.keys(l.values)[0]};return ui(o,i(l,u))}}const Vo=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function Et(...t){const e=t.reduce((r,n)=>r+n.source,"");return RegExp(`^${e}$`)}function kt(...t){return e=>t.reduce(([r,n,s],i)=>{const[o,a,l]=i(e,s);return[{...r,...o},a||n,l]},[{},null,1]).slice(0,2)}function It(t,...e){if(t==null)return[null,null];for(const[r,n]of e){const s=r.exec(t);if(s)return n(s)}return[null,null]}function Fo(...t){return(e,r)=>{const n={};let s;for(s=0;s<t.length;s++)n[t[s]]=Be(e[r+s]);return[n,null,r+s]}}const Wo=/(?:([Zz])|([+-]\d\d)(?::?(\d\d))?)/,jd=`(?:${Wo.source}?(?:\\[(${Vo.source})\\])?)?`,Gn=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,zo=RegExp(`${Gn.source}${jd}`),Hn=RegExp(`(?:[Tt]${zo.source})?`),Dd=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,Rd=/(\d{4})-?W(\d\d)(?:-?(\d))?/,Ad=/(\d{4})-?(\d{3})/,Pd=Fo("weekYear","weekNumber","weekDay"),Ld=Fo("year","ordinal"),Vd=/(\d{4})-(\d\d)-(\d\d)/,Uo=RegExp(`${Gn.source} ?(?:${Wo.source}|(${Vo.source}))?`),Fd=RegExp(`(?: ${Uo.source})?`);function Tt(t,e,r){const n=t[e];return z(n)?r:Be(n)}function Wd(t,e){return[{year:Tt(t,e),month:Tt(t,e+1,1),day:Tt(t,e+2,1)},null,e+3]}function Mt(t,e){return[{hours:Tt(t,e,0),minutes:Tt(t,e+1,0),seconds:Tt(t,e+2,0),milliseconds:Yn(t[e+3])},null,e+4]}function Jt(t,e){const r=!t[e]&&!t[e+1],n=Br(t[e+1],t[e+2]),s=r?null:Te.instance(n);return[{},s,e+3]}function Kt(t,e){const r=t[e]?ze.create(t[e]):null;return[{},r,e+1]}const zd=RegExp(`^T?${Gn.source}$`),Ud=/^-?P(?:(?:(-?\d{1,20}(?:\.\d{1,20})?)Y)?(?:(-?\d{1,20}(?:\.\d{1,20})?)M)?(?:(-?\d{1,20}(?:\.\d{1,20})?)W)?(?:(-?\d{1,20}(?:\.\d{1,20})?)D)?(?:T(?:(-?\d{1,20}(?:\.\d{1,20})?)H)?(?:(-?\d{1,20}(?:\.\d{1,20})?)M)?(?:(-?\d{1,20})(?:[.,](-?\d{1,20}))?S)?)?)$/;function Bd(t){const[e,r,n,s,i,o,a,l,u]=t,h=e[0]==="-",m=l&&l[0]==="-",p=(y,g=!1)=>y!==void 0&&(g||y&&h)?-y:y;return[{years:p(Xe(r)),months:p(Xe(n)),weeks:p(Xe(s)),days:p(Xe(i)),hours:p(Xe(o)),minutes:p(Xe(a)),seconds:p(Xe(l),l==="-0"),milliseconds:p(Yn(u),m)}]}const Yd={GMT:0,EDT:-4*60,EST:-5*60,CDT:-5*60,CST:-6*60,MDT:-6*60,MST:-7*60,PDT:-7*60,PST:-8*60};function Zn(t,e,r,n,s,i,o){const a={year:e.length===2?Nn(Be(e)):Be(e),month:_o.indexOf(r)+1,day:Be(n),hour:Be(s),minute:Be(i)};return o&&(a.second=Be(o)),t&&(a.weekday=t.length>3?Do.indexOf(t)+1:Ro.indexOf(t)+1),a}const qd=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|(?:([+-]\d\d)(\d\d)))$/;function Gd(t){const[,e,r,n,s,i,o,a,l,u,h,m]=t,p=Zn(e,s,n,r,i,o,a);let y;return l?y=Yd[l]:u?y=0:y=Br(h,m),[p,new Te(y)]}function Hd(t){return t.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}const Zd=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\d\d) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\d{4}) (\d\d):(\d\d):(\d\d) GMT$/,Jd=/^(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\d\d)-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d\d) (\d\d):(\d\d):(\d\d) GMT$/,Kd=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( \d|\d\d) (\d\d):(\d\d):(\d\d) (\d{4})$/;function ci(t){const[,e,r,n,s,i,o,a]=t;return[Zn(e,s,n,r,i,o,a),Te.utcInstance]}function Qd(t){const[,e,r,n,s,i,o,a]=t;return[Zn(e,a,r,n,s,i,o),Te.utcInstance]}const Xd=Et(Dd,Hn),ef=Et(Rd,Hn),tf=Et(Ad,Hn),rf=Et(zo),Bo=kt(Wd,Mt,Jt,Kt),nf=kt(Pd,Mt,Jt,Kt),sf=kt(Ld,Mt,Jt,Kt),of=kt(Mt,Jt,Kt);function af(t){return It(t,[Xd,Bo],[ef,nf],[tf,sf],[rf,of])}function lf(t){return It(Hd(t),[qd,Gd])}function uf(t){return It(t,[Zd,ci],[Jd,ci],[Kd,Qd])}function cf(t){return It(t,[Ud,Bd])}const df=kt(Mt);function ff(t){return It(t,[zd,df])}const hf=Et(Vd,Fd),mf=Et(Uo),pf=kt(Mt,Jt,Kt);function yf(t){return It(t,[hf,Bo],[mf,pf])}const di="Invalid Duration",Yo={weeks:{days:7,hours:7*24,minutes:7*24*60,seconds:7*24*60*60,milliseconds:7*24*60*60*1e3},days:{hours:24,minutes:24*60,seconds:24*60*60,milliseconds:24*60*60*1e3},hours:{minutes:60,seconds:60*60,milliseconds:60*60*1e3},minutes:{seconds:60,milliseconds:60*1e3},seconds:{milliseconds:1e3}},gf={years:{quarters:4,months:12,weeks:52,days:365,hours:365*24,minutes:365*24*60,seconds:365*24*60*60,milliseconds:365*24*60*60*1e3},quarters:{months:3,weeks:13,days:91,hours:91*24,minutes:91*24*60,seconds:91*24*60*60,milliseconds:91*24*60*60*1e3},months:{weeks:4,days:30,hours:30*24,minutes:30*24*60,seconds:30*24*60*60,milliseconds:30*24*60*60*1e3},...Yo},ke=146097/400,ht=146097/4800,bf={years:{quarters:4,months:12,weeks:ke/7,days:ke,hours:ke*24,minutes:ke*24*60,seconds:ke*24*60*60,milliseconds:ke*24*60*60*1e3},quarters:{months:3,weeks:ke/28,days:ke/4,hours:ke*24/4,minutes:ke*24*60/4,seconds:ke*24*60*60/4,milliseconds:ke*24*60*60*1e3/4},months:{weeks:ht/7,days:ht,hours:ht*24,minutes:ht*24*60,seconds:ht*24*60*60,milliseconds:ht*24*60*60*1e3},...Yo},nt=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],vf=nt.slice(0).reverse();function Fe(t,e,r=!1){const n={values:r?e.values:{...t.values,...e.values||{}},loc:t.loc.clone(e.loc),conversionAccuracy:e.conversionAccuracy||t.conversionAccuracy,matrix:e.matrix||t.matrix};return new X(n)}function qo(t,e){let r=e.milliseconds??0;for(const n of vf.slice(1))e[n]&&(r+=e[n]*t[n].milliseconds);return r}function fi(t,e){const r=qo(t,e)<0?-1:1;nt.reduceRight((n,s)=>{if(z(e[s]))return n;if(n){const i=e[n]*r,o=t[s][n],a=Math.floor(i/o);e[s]+=a*r,e[n]-=a*o*r}return s},null),nt.reduce((n,s)=>{if(z(e[s]))return n;if(n){const i=e[n]%1;e[n]-=i,e[s]+=i*t[n][s]}return s},null)}function hi(t){const e={};for(const[r,n]of Object.entries(t))n!==0&&(e[r]=n);return e}class X{constructor(e){const r=e.conversionAccuracy==="longterm"||!1;let n=r?bf:gf;e.matrix&&(n=e.matrix),this.values=e.values,this.loc=e.loc||ne.create(),this.conversionAccuracy=r?"longterm":"casual",this.invalid=e.invalid||null,this.matrix=n,this.isLuxonDuration=!0}static fromMillis(e,r){return X.fromObject({milliseconds:e},r)}static fromObject(e,r={}){if(e==null||typeof e!="object")throw new ve(`Duration.fromObject: argument expected to be an object, got ${e===null?"null":typeof e}`);return new X({values:Or(e,X.normalizeUnit),loc:ne.fromObject(r),conversionAccuracy:r.conversionAccuracy,matrix:r.matrix})}static fromDurationLike(e){if(Ze(e))return X.fromMillis(e);if(X.isDuration(e))return e;if(typeof e=="object")return X.fromObject(e);throw new ve(`Unknown duration argument ${e} of type ${typeof e}`)}static fromISO(e,r){const[n]=cf(e);return n?X.fromObject(n,r):X.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static fromISOTime(e,r){const[n]=ff(e);return n?X.fromObject(n,r):X.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static invalid(e,r=null){if(!e)throw new ve("need to specify a reason the Duration is invalid");const n=e instanceof Re?e:new Re(e,r);if(he.throwOnInvalid)throw new Bc(n);return new X({invalid:n})}static normalizeUnit(e){const r={year:"years",years:"years",quarter:"quarters",quarters:"quarters",month:"months",months:"months",week:"weeks",weeks:"weeks",day:"days",days:"days",hour:"hours",hours:"hours",minute:"minutes",minutes:"minutes",second:"seconds",seconds:"seconds",millisecond:"milliseconds",milliseconds:"milliseconds"}[e&&e.toLowerCase()];if(!r)throw new Xi(e);return r}static isDuration(e){return e&&e.isLuxonDuration||!1}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}toFormat(e,r={}){const n={...r,floor:r.round!==!1&&r.floor!==!1};return this.isValid?Se.create(this.loc,n).formatDurationFromString(this,e):di}toHuman(e={}){if(!this.isValid)return di;const r=e.showZeros!==!1,n=nt.map(s=>{const i=this.values[s];return z(i)||i===0&&!r?null:this.loc.numberFormatter({style:"unit",unitDisplay:"long",...e,unit:s.slice(0,-1)}).format(i)}).filter(s=>s);return this.loc.listFormatter({type:"conjunction",style:e.listStyle||"narrow",...e}).format(n)}toObject(){return this.isValid?{...this.values}:{}}toISO(){if(!this.isValid)return null;let e="P";return this.years!==0&&(e+=this.years+"Y"),(this.months!==0||this.quarters!==0)&&(e+=this.months+this.quarters*3+"M"),this.weeks!==0&&(e+=this.weeks+"W"),this.days!==0&&(e+=this.days+"D"),(this.hours!==0||this.minutes!==0||this.seconds!==0||this.milliseconds!==0)&&(e+="T"),this.hours!==0&&(e+=this.hours+"H"),this.minutes!==0&&(e+=this.minutes+"M"),(this.seconds!==0||this.milliseconds!==0)&&(e+=qn(this.seconds+this.milliseconds/1e3,3)+"S"),e==="P"&&(e+="T0S"),e}toISOTime(e={}){if(!this.isValid)return null;const r=this.toMillis();return r<0||r>=864e5?null:(e={suppressMilliseconds:!1,suppressSeconds:!1,includePrefix:!1,format:"extended",...e,includeOffset:!1},W.fromMillis(r,{zone:"UTC"}).toISOTime(e))}toJSON(){return this.toISO()}toString(){return this.toISO()}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`Duration { values: ${JSON.stringify(this.values)} }`:`Duration { Invalid, reason: ${this.invalidReason} }`}toMillis(){return this.isValid?qo(this.matrix,this.values):NaN}valueOf(){return this.toMillis()}plus(e){if(!this.isValid)return this;const r=X.fromDurationLike(e),n={};for(const s of nt)(Ct(r.values,s)||Ct(this.values,s))&&(n[s]=r.get(s)+this.get(s));return Fe(this,{values:n},!0)}minus(e){if(!this.isValid)return this;const r=X.fromDurationLike(e);return this.plus(r.negate())}mapUnits(e){if(!this.isValid)return this;const r={};for(const n of Object.keys(this.values))r[n]=No(e(this.values[n],n));return Fe(this,{values:r},!0)}get(e){return this[X.normalizeUnit(e)]}set(e){if(!this.isValid)return this;const r={...this.values,...Or(e,X.normalizeUnit)};return Fe(this,{values:r})}reconfigure({locale:e,numberingSystem:r,conversionAccuracy:n,matrix:s}={}){const o={loc:this.loc.clone({locale:e,numberingSystem:r}),matrix:s,conversionAccuracy:n};return Fe(this,o)}as(e){return this.isValid?this.shiftTo(e).get(e):NaN}normalize(){if(!this.isValid)return this;const e=this.toObject();return fi(this.matrix,e),Fe(this,{values:e},!0)}rescale(){if(!this.isValid)return this;const e=hi(this.normalize().shiftToAll().toObject());return Fe(this,{values:e},!0)}shiftTo(...e){if(!this.isValid)return this;if(e.length===0)return this;e=e.map(o=>X.normalizeUnit(o));const r={},n={},s=this.toObject();let i;for(const o of nt)if(e.indexOf(o)>=0){i=o;let a=0;for(const u in n)a+=this.matrix[u][o]*n[u],n[u]=0;Ze(s[o])&&(a+=s[o]);const l=Math.trunc(a);r[o]=l,n[o]=(a*1e3-l*1e3)/1e3}else Ze(s[o])&&(n[o]=s[o]);for(const o in n)n[o]!==0&&(r[i]+=o===i?n[o]:n[o]/this.matrix[i][o]);return fi(this.matrix,r),Fe(this,{values:r},!0)}shiftToAll(){return this.isValid?this.shiftTo("years","months","weeks","days","hours","minutes","seconds","milliseconds"):this}negate(){if(!this.isValid)return this;const e={};for(const r of Object.keys(this.values))e[r]=this.values[r]===0?0:-this.values[r];return Fe(this,{values:e},!0)}removeZeros(){if(!this.isValid)return this;const e=hi(this.values);return Fe(this,{values:e},!0)}get years(){return this.isValid?this.values.years||0:NaN}get quarters(){return this.isValid?this.values.quarters||0:NaN}get months(){return this.isValid?this.values.months||0:NaN}get weeks(){return this.isValid?this.values.weeks||0:NaN}get days(){return this.isValid?this.values.days||0:NaN}get hours(){return this.isValid?this.values.hours||0:NaN}get minutes(){return this.isValid?this.values.minutes||0:NaN}get seconds(){return this.isValid?this.values.seconds||0:NaN}get milliseconds(){return this.isValid?this.values.milliseconds||0:NaN}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}equals(e){if(!this.isValid||!e.isValid||!this.loc.equals(e.loc))return!1;function r(n,s){return n===void 0||n===0?s===void 0||s===0:n===s}for(const n of nt)if(!r(this.values[n],e.values[n]))return!1;return!0}}const mt="Invalid Interval";function Sf(t,e){return!t||!t.isValid?fe.invalid("missing or invalid start"):!e||!e.isValid?fe.invalid("missing or invalid end"):e<t?fe.invalid("end before start",`The end of an interval must be after its start, but you had start=${t.toISO()} and end=${e.toISO()}`):null}class fe{constructor(e){this.s=e.start,this.e=e.end,this.invalid=e.invalid||null,this.isLuxonInterval=!0}static invalid(e,r=null){if(!e)throw new ve("need to specify a reason the Interval is invalid");const n=e instanceof Re?e:new Re(e,r);if(he.throwOnInvalid)throw new Uc(n);return new fe({invalid:n})}static fromDateTimes(e,r){const n=jt(e),s=jt(r),i=Sf(n,s);return i??new fe({start:n,end:s})}static after(e,r){const n=X.fromDurationLike(r),s=jt(e);return fe.fromDateTimes(s,s.plus(n))}static before(e,r){const n=X.fromDurationLike(r),s=jt(e);return fe.fromDateTimes(s.minus(n),s)}static fromISO(e,r){const[n,s]=(e||"").split("/",2);if(n&&s){let i,o;try{i=W.fromISO(n,r),o=i.isValid}catch{o=!1}let a,l;try{a=W.fromISO(s,r),l=a.isValid}catch{l=!1}if(o&&l)return fe.fromDateTimes(i,a);if(o){const u=X.fromISO(s,r);if(u.isValid)return fe.after(i,u)}else if(l){const u=X.fromISO(n,r);if(u.isValid)return fe.before(a,u)}}return fe.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static isInterval(e){return e&&e.isLuxonInterval||!1}get start(){return this.isValid?this.s:null}get end(){return this.isValid?this.e:null}get lastDateTime(){return this.isValid&&this.e?this.e.minus(1):null}get isValid(){return this.invalidReason===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}length(e="milliseconds"){return this.isValid?this.toDuration(e).get(e):NaN}count(e="milliseconds",r){if(!this.isValid)return NaN;const n=this.start.startOf(e,r);let s;return r!=null&&r.useLocaleWeeks?s=this.end.reconfigure({locale:n.locale}):s=this.end,s=s.startOf(e,r),Math.floor(s.diff(n,e).get(e))+(s.valueOf()!==this.end.valueOf())}hasSame(e){return this.isValid?this.isEmpty()||this.e.minus(1).hasSame(this.s,e):!1}isEmpty(){return this.s.valueOf()===this.e.valueOf()}isAfter(e){return this.isValid?this.s>e:!1}isBefore(e){return this.isValid?this.e<=e:!1}contains(e){return this.isValid?this.s<=e&&this.e>e:!1}set({start:e,end:r}={}){return this.isValid?fe.fromDateTimes(e||this.s,r||this.e):this}splitAt(...e){if(!this.isValid)return[];const r=e.map(jt).filter(o=>this.contains(o)).sort((o,a)=>o.toMillis()-a.toMillis()),n=[];let{s}=this,i=0;for(;s<this.e;){const o=r[i]||this.e,a=+o>+this.e?this.e:o;n.push(fe.fromDateTimes(s,a)),s=a,i+=1}return n}splitBy(e){const r=X.fromDurationLike(e);if(!this.isValid||!r.isValid||r.as("milliseconds")===0)return[];let{s:n}=this,s=1,i;const o=[];for(;n<this.e;){const a=this.start.plus(r.mapUnits(l=>l*s));i=+a>+this.e?this.e:a,o.push(fe.fromDateTimes(n,i)),n=i,s+=1}return o}divideEqually(e){return this.isValid?this.splitBy(this.length()/e).slice(0,e):[]}overlaps(e){return this.e>e.s&&this.s<e.e}abutsStart(e){return this.isValid?+this.e==+e.s:!1}abutsEnd(e){return this.isValid?+e.e==+this.s:!1}engulfs(e){return this.isValid?this.s<=e.s&&this.e>=e.e:!1}equals(e){return!this.isValid||!e.isValid?!1:this.s.equals(e.s)&&this.e.equals(e.e)}intersection(e){if(!this.isValid)return this;const r=this.s>e.s?this.s:e.s,n=this.e<e.e?this.e:e.e;return r>=n?null:fe.fromDateTimes(r,n)}union(e){if(!this.isValid)return this;const r=this.s<e.s?this.s:e.s,n=this.e>e.e?this.e:e.e;return fe.fromDateTimes(r,n)}static merge(e){const[r,n]=e.sort((s,i)=>s.s-i.s).reduce(([s,i],o)=>i?i.overlaps(o)||i.abutsStart(o)?[s,i.union(o)]:[s.concat([i]),o]:[s,o],[[],null]);return n&&r.push(n),r}static xor(e){let r=null,n=0;const s=[],i=e.map(l=>[{time:l.s,type:"s"},{time:l.e,type:"e"}]),o=Array.prototype.concat(...i),a=o.sort((l,u)=>l.time-u.time);for(const l of a)n+=l.type==="s"?1:-1,n===1?r=l.time:(r&&+r!=+l.time&&s.push(fe.fromDateTimes(r,l.time)),r=null);return fe.merge(s)}difference(...e){return fe.xor([this].concat(e)).map(r=>this.intersection(r)).filter(r=>r&&!r.isEmpty())}toString(){return this.isValid?`[${this.s.toISO()} – ${this.e.toISO()})`:mt}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`Interval { start: ${this.s.toISO()}, end: ${this.e.toISO()} }`:`Interval { Invalid, reason: ${this.invalidReason} }`}toLocaleString(e=xr,r={}){return this.isValid?Se.create(this.s.loc.clone(r),e).formatInterval(this):mt}toISO(e){return this.isValid?`${this.s.toISO(e)}/${this.e.toISO(e)}`:mt}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:mt}toISOTime(e){return this.isValid?`${this.s.toISOTime(e)}/${this.e.toISOTime(e)}`:mt}toFormat(e,{separator:r=" – "}={}){return this.isValid?`${this.s.toFormat(e)}${r}${this.e.toFormat(e)}`:mt}toDuration(e,r){return this.isValid?this.e.diff(this.s,e,r):X.invalid(this.invalidReason)}mapEndpoints(e){return fe.fromDateTimes(e(this.s),e(this.e))}}class Pt{static hasDST(e=he.defaultZone){const r=W.now().setZone(e).set({month:12});return!e.isUniversal&&r.offset!==r.set({month:6}).offset}static isValidIANAZone(e){return ze.isValidZone(e)}static normalizeZone(e){return Ge(e,he.defaultZone)}static getStartOfWeek({locale:e=null,locObj:r=null}={}){return(r||ne.create(e)).getStartOfWeek()}static getMinimumDaysInFirstWeek({locale:e=null,locObj:r=null}={}){return(r||ne.create(e)).getMinDaysInFirstWeek()}static getWeekendWeekdays({locale:e=null,locObj:r=null}={}){return(r||ne.create(e)).getWeekendDays().slice()}static months(e="long",{locale:r=null,numberingSystem:n=null,locObj:s=null,outputCalendar:i="gregory"}={}){return(s||ne.create(r,n,i)).months(e)}static monthsFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:s=null,outputCalendar:i="gregory"}={}){return(s||ne.create(r,n,i)).months(e,!0)}static weekdays(e="long",{locale:r=null,numberingSystem:n=null,locObj:s=null}={}){return(s||ne.create(r,n,null)).weekdays(e)}static weekdaysFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:s=null}={}){return(s||ne.create(r,n,null)).weekdays(e,!0)}static meridiems({locale:e=null}={}){return ne.create(e).meridiems()}static eras(e="short",{locale:r=null}={}){return ne.create(r,null,"gregory").eras(e)}static features(){return{relative:Io(),localeWeek:Mo()}}}function mi(t,e){const r=s=>s.toUTC(0,{keepLocalTime:!0}).startOf("day").valueOf(),n=r(e)-r(t);return Math.floor(X.fromMillis(n).as("days"))}function Tf(t,e,r){const n=[["years",(l,u)=>u.year-l.year],["quarters",(l,u)=>u.quarter-l.quarter+(u.year-l.year)*4],["months",(l,u)=>u.month-l.month+(u.year-l.year)*12],["weeks",(l,u)=>{const h=mi(l,u);return(h-h%7)/7}],["days",mi]],s={},i=t;let o,a;for(const[l,u]of n)r.indexOf(l)>=0&&(o=l,s[l]=u(t,e),a=i.plus(s),a>e?(s[l]--,t=i.plus(s),t>e&&(a=t,s[l]--,t=i.plus(s))):t=a);return[t,s,a,o]}function xf(t,e,r,n){let[s,i,o,a]=Tf(t,e,r);const l=e-s,u=r.filter(m=>["hours","minutes","seconds","milliseconds"].indexOf(m)>=0);u.length===0&&(o<e&&(o=s.plus({[a]:1})),o!==s&&(i[a]=(i[a]||0)+l/(o-s)));const h=X.fromObject(i,n);return u.length>0?X.fromMillis(l,n).shiftTo(...u).plus(h):h}const wf="missing Intl.DateTimeFormat.formatToParts support";function ee(t,e=r=>r){return{regex:t,deser:([r])=>e(fd(r))}}const Cf=" ",Go=`[ ${Cf}]`,Ho=new RegExp(Go,"g");function Of(t){return t.replace(/\./g,"\\.?").replace(Ho,Go)}function pi(t){return t.replace(/\./g,"").replace(Ho," ").toLowerCase()}function De(t,e){return t===null?null:{regex:RegExp(t.map(Of).join("|")),deser:([r])=>t.findIndex(n=>pi(r)===pi(n))+e}}function yi(t,e){return{regex:t,deser:([,r,n])=>Br(r,n),groups:e}}function ar(t){return{regex:t,deser:([e])=>e}}function Ef(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function kf(t,e){const r=je(e),n=je(e,"{2}"),s=je(e,"{3}"),i=je(e,"{4}"),o=je(e,"{6}"),a=je(e,"{1,2}"),l=je(e,"{1,3}"),u=je(e,"{1,6}"),h=je(e,"{1,9}"),m=je(e,"{2,4}"),p=je(e,"{4,6}"),y=T=>({regex:RegExp(Ef(T.val)),deser:([O])=>O,literal:!0}),d=(T=>{if(t.literal)return y(T);switch(T.val){case"G":return De(e.eras("short"),0);case"GG":return De(e.eras("long"),0);case"y":return ee(u);case"yy":return ee(m,Nn);case"yyyy":return ee(i);case"yyyyy":return ee(p);case"yyyyyy":return ee(o);case"M":return ee(a);case"MM":return ee(n);case"MMM":return De(e.months("short",!0),1);case"MMMM":return De(e.months("long",!0),1);case"L":return ee(a);case"LL":return ee(n);case"LLL":return De(e.months("short",!1),1);case"LLLL":return De(e.months("long",!1),1);case"d":return ee(a);case"dd":return ee(n);case"o":return ee(l);case"ooo":return ee(s);case"HH":return ee(n);case"H":return ee(a);case"hh":return ee(n);case"h":return ee(a);case"mm":return ee(n);case"m":return ee(a);case"q":return ee(a);case"qq":return ee(n);case"s":return ee(a);case"ss":return ee(n);case"S":return ee(l);case"SSS":return ee(s);case"u":return ar(h);case"uu":return ar(a);case"uuu":return ee(r);case"a":return De(e.meridiems(),0);case"kkkk":return ee(i);case"kk":return ee(m,Nn);case"W":return ee(a);case"WW":return ee(n);case"E":case"c":return ee(r);case"EEE":return De(e.weekdays("short",!1),1);case"EEEE":return De(e.weekdays("long",!1),1);case"ccc":return De(e.weekdays("short",!0),1);case"cccc":return De(e.weekdays("long",!0),1);case"Z":case"ZZ":return yi(new RegExp(`([+-]${a.source})(?::(${n.source}))?`),2);case"ZZZ":return yi(new RegExp(`([+-]${a.source})(${n.source})?`),2);case"z":return ar(/[a-z_+-/]{1,256}?/i);case" ":return ar(/[^\S\n\r]/);default:return y(T)}})(t)||{invalidReason:wf};return d.token=t,d}const If={year:{"2-digit":"yy",numeric:"yyyyy"},month:{numeric:"M","2-digit":"MM",short:"MMM",long:"MMMM"},day:{numeric:"d","2-digit":"dd"},weekday:{short:"EEE",long:"EEEE"},dayperiod:"a",dayPeriod:"a",hour12:{numeric:"h","2-digit":"hh"},hour24:{numeric:"H","2-digit":"HH"},minute:{numeric:"m","2-digit":"mm"},second:{numeric:"s","2-digit":"ss"},timeZoneName:{long:"ZZZZZ",short:"ZZZ"}};function Mf(t,e,r){const{type:n,value:s}=t;if(n==="literal"){const l=/^\s+$/.test(s);return{literal:!l,val:l?" ":s}}const i=e[n];let o=n;n==="hour"&&(e.hour12!=null?o=e.hour12?"hour12":"hour24":e.hourCycle!=null?e.hourCycle==="h11"||e.hourCycle==="h12"?o="hour12":o="hour24":o=r.hour12?"hour12":"hour24");let a=If[o];if(typeof a=="object"&&(a=a[i]),a)return{literal:!1,val:a}}function $f(t){return[`^${t.map(r=>r.regex).reduce((r,n)=>`${r}(${n.source})`,"")}$`,t]}function Nf(t,e,r){const n=t.match(e);if(n){const s={};let i=1;for(const o in r)if(Ct(r,o)){const a=r[o],l=a.groups?a.groups+1:1;!a.literal&&a.token&&(s[a.token.val[0]]=a.deser(n.slice(i,i+l))),i+=l}return[n,s]}else return[n,{}]}function _f(t){const e=i=>{switch(i){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":case"H":return"hour";case"d":return"day";case"o":return"ordinal";case"L":case"M":return"month";case"y":return"year";case"E":case"c":return"weekday";case"W":return"weekNumber";case"k":return"weekYear";case"q":return"quarter";default:return null}};let r=null,n;return z(t.z)||(r=ze.create(t.z)),z(t.Z)||(r||(r=new Te(t.Z)),n=t.Z),z(t.q)||(t.M=(t.q-1)*3+1),z(t.h)||(t.h<12&&t.a===1?t.h+=12:t.h===12&&t.a===0&&(t.h=0)),t.G===0&&t.y&&(t.y=-t.y),z(t.u)||(t.S=Yn(t.u)),[Object.keys(t).reduce((i,o)=>{const a=e(o);return a&&(i[a]=t[o]),i},{}),r,n]}let dn=null;function jf(){return dn||(dn=W.fromMillis(1555555555555)),dn}function Df(t,e){if(t.literal)return t;const r=Se.macroTokenToFormatOpts(t.val),n=Qo(r,e);return n==null||n.includes(void 0)?t:n}function Zo(t,e){return Array.prototype.concat(...t.map(r=>Df(r,e)))}class Jo{constructor(e,r){if(this.locale=e,this.format=r,this.tokens=Zo(Se.parseFormat(r),e),this.units=this.tokens.map(n=>kf(n,e)),this.disqualifyingUnit=this.units.find(n=>n.invalidReason),!this.disqualifyingUnit){const[n,s]=$f(this.units);this.regex=RegExp(n,"i"),this.handlers=s}}explainFromTokens(e){if(this.isValid){const[r,n]=Nf(e,this.regex,this.handlers),[s,i,o]=n?_f(n):[null,null,void 0];if(Ct(n,"a")&&Ct(n,"H"))throw new yt("Can't include meridiem when specifying 24-hour format");return{input:e,tokens:this.tokens,regex:this.regex,rawMatches:r,matches:n,result:s,zone:i,specificOffset:o}}else return{input:e,tokens:this.tokens,invalidReason:this.invalidReason}}get isValid(){return!this.disqualifyingUnit}get invalidReason(){return this.disqualifyingUnit?this.disqualifyingUnit.invalidReason:null}}function Ko(t,e,r){return new Jo(t,r).explainFromTokens(e)}function Rf(t,e,r){const{result:n,zone:s,specificOffset:i,invalidReason:o}=Ko(t,e,r);return[n,s,i,o]}function Qo(t,e){if(!t)return null;const n=Se.create(e,t).dtFormatter(jf()),s=n.formatToParts(),i=n.resolvedOptions();return s.map(o=>Mf(o,t,i))}const fn="Invalid DateTime",Af=864e13;function Lt(t){return new Re("unsupported zone",`the zone "${t.name}" is not supported`)}function hn(t){return t.weekData===null&&(t.weekData=wr(t.c)),t.weekData}function mn(t){return t.localWeekData===null&&(t.localWeekData=wr(t.c,t.loc.getMinDaysInFirstWeek(),t.loc.getStartOfWeek())),t.localWeekData}function et(t,e){const r={ts:t.ts,zone:t.zone,c:t.c,o:t.o,loc:t.loc,invalid:t.invalid};return new W({...r,...e,old:r})}function Xo(t,e,r){let n=t-e*60*1e3;const s=r.offset(n);if(e===s)return[n,e];n-=(s-e)*60*1e3;const i=r.offset(n);return s===i?[n,s]:[t-Math.min(s,i)*60*1e3,Math.max(s,i)]}function lr(t,e){t+=e*60*1e3;const r=new Date(t);return{year:r.getUTCFullYear(),month:r.getUTCMonth()+1,day:r.getUTCDate(),hour:r.getUTCHours(),minute:r.getUTCMinutes(),second:r.getUTCSeconds(),millisecond:r.getUTCMilliseconds()}}function fr(t,e,r){return Xo(Ur(t),e,r)}function gi(t,e){const r=t.o,n=t.c.year+Math.trunc(e.years),s=t.c.month+Math.trunc(e.months)+Math.trunc(e.quarters)*3,i={...t.c,year:n,month:s,day:Math.min(t.c.day,Cr(n,s))+Math.trunc(e.days)+Math.trunc(e.weeks)*7},o=X.fromObject({years:e.years-Math.trunc(e.years),quarters:e.quarters-Math.trunc(e.quarters),months:e.months-Math.trunc(e.months),weeks:e.weeks-Math.trunc(e.weeks),days:e.days-Math.trunc(e.days),hours:e.hours,minutes:e.minutes,seconds:e.seconds,milliseconds:e.milliseconds}).as("milliseconds"),a=Ur(i);let[l,u]=Xo(a,r,t.zone);return o!==0&&(l+=o,u=t.zone.offset(l)),{ts:l,o:u}}function pt(t,e,r,n,s,i){const{setZone:o,zone:a}=r;if(t&&Object.keys(t).length!==0||e){const l=e||a,u=W.fromObject(t,{...r,zone:l,specificOffset:i});return o?u:u.setZone(a)}else return W.invalid(new Re("unparsable",`the input "${s}" can't be parsed as ${n}`))}function ur(t,e,r=!0){return t.isValid?Se.create(ne.create("en-US"),{allowZ:r,forceSimple:!0}).formatDateTimeFromString(t,e):null}function pn(t,e,r){const n=t.c.year>9999||t.c.year<0;let s="";if(n&&t.c.year>=0&&(s+="+"),s+=ye(t.c.year,n?6:4),r==="year")return s;if(e){if(s+="-",s+=ye(t.c.month),r==="month")return s;s+="-"}else if(s+=ye(t.c.month),r==="month")return s;return s+=ye(t.c.day),s}function bi(t,e,r,n,s,i,o){let a=!r||t.c.millisecond!==0||t.c.second!==0,l="";switch(o){case"day":case"month":case"year":break;default:if(l+=ye(t.c.hour),o==="hour")break;if(e){if(l+=":",l+=ye(t.c.minute),o==="minute")break;a&&(l+=":",l+=ye(t.c.second))}else{if(l+=ye(t.c.minute),o==="minute")break;a&&(l+=ye(t.c.second))}if(o==="second")break;a&&(!n||t.c.millisecond!==0)&&(l+=".",l+=ye(t.c.millisecond,3))}return s&&(t.isOffsetFixed&&t.offset===0&&!i?l+="Z":t.o<0?(l+="-",l+=ye(Math.trunc(-t.o/60)),l+=":",l+=ye(Math.trunc(-t.o%60))):(l+="+",l+=ye(Math.trunc(t.o/60)),l+=":",l+=ye(Math.trunc(t.o%60)))),i&&(l+="["+t.zone.ianaName+"]"),l}const ea={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},Pf={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},Lf={ordinal:1,hour:0,minute:0,second:0,millisecond:0},hr=["year","month","day","hour","minute","second","millisecond"],Vf=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],Ff=["year","ordinal","hour","minute","second","millisecond"];function mr(t){const e={year:"year",years:"year",month:"month",months:"month",day:"day",days:"day",hour:"hour",hours:"hour",minute:"minute",minutes:"minute",quarter:"quarter",quarters:"quarter",second:"second",seconds:"second",millisecond:"millisecond",milliseconds:"millisecond",weekday:"weekday",weekdays:"weekday",weeknumber:"weekNumber",weeksnumber:"weekNumber",weeknumbers:"weekNumber",weekyear:"weekYear",weekyears:"weekYear",ordinal:"ordinal"}[t.toLowerCase()];if(!e)throw new Xi(t);return e}function vi(t){switch(t.toLowerCase()){case"localweekday":case"localweekdays":return"localWeekday";case"localweeknumber":case"localweeknumbers":return"localWeekNumber";case"localweekyear":case"localweekyears":return"localWeekYear";default:return mr(t)}}function Wf(t){if(Vt===void 0&&(Vt=he.now()),t.type!=="iana")return t.offset(Vt);const e=t.name;let r=_n.get(e);return r===void 0&&(r=t.offset(Vt),_n.set(e,r)),r}function Si(t,e){const r=Ge(e.zone,he.defaultZone);if(!r.isValid)return W.invalid(Lt(r));const n=ne.fromObject(e);let s,i;if(z(t.year))s=he.now();else{for(const l of hr)z(t[l])&&(t[l]=ea[l]);const o=Eo(t)||ko(t);if(o)return W.invalid(o);const a=Wf(r);[s,i]=fr(t,a,r)}return new W({ts:s,zone:r,loc:n,o:i})}function Ti(t,e,r){const n=z(r.round)?!0:r.round,s=z(r.rounding)?"trunc":r.rounding,i=(a,l)=>(a=qn(a,n||r.calendary?0:2,r.calendary?"round":s),e.loc.clone(r).relFormatter(r).format(a,l)),o=a=>r.calendary?e.hasSame(t,a)?0:e.startOf(a).diff(t.startOf(a),a).get(a):e.diff(t,a).get(a);if(r.unit)return i(o(r.unit),r.unit);for(const a of r.units){const l=o(a);if(Math.abs(l)>=1)return i(l,a)}return i(t>e?-0:0,r.units[r.units.length-1])}function xi(t){let e={},r;return t.length>0&&typeof t[t.length-1]=="object"?(e=t[t.length-1],r=Array.from(t).slice(0,t.length-1)):r=Array.from(t),[e,r]}let Vt;const _n=new Map;class W{constructor(e){const r=e.zone||he.defaultZone;let n=e.invalid||(Number.isNaN(e.ts)?new Re("invalid input"):null)||(r.isValid?null:Lt(r));this.ts=z(e.ts)?he.now():e.ts;let s=null,i=null;if(!n)if(e.old&&e.old.ts===this.ts&&e.old.zone.equals(r))[s,i]=[e.old.c,e.old.o];else{const a=Ze(e.o)&&!e.old?e.o:r.offset(this.ts);s=lr(this.ts,a),n=Number.isNaN(s.year)?new Re("invalid input"):null,s=n?null:s,i=n?null:a}this._zone=r,this.loc=e.loc||ne.create(),this.invalid=n,this.weekData=null,this.localWeekData=null,this.c=s,this.o=i,this.isLuxonDateTime=!0}static now(){return new W({})}static local(){const[e,r]=xi(arguments),[n,s,i,o,a,l,u]=r;return Si({year:n,month:s,day:i,hour:o,minute:a,second:l,millisecond:u},e)}static utc(){const[e,r]=xi(arguments),[n,s,i,o,a,l,u]=r;return e.zone=Te.utcInstance,Si({year:n,month:s,day:i,hour:o,minute:a,second:l,millisecond:u},e)}static fromJSDate(e,r={}){const n=gd(e)?e.valueOf():NaN;if(Number.isNaN(n))return W.invalid("invalid input");const s=Ge(r.zone,he.defaultZone);return s.isValid?new W({ts:n,zone:s,loc:ne.fromObject(r)}):W.invalid(Lt(s))}static fromMillis(e,r={}){if(Ze(e))return e<-864e13||e>Af?W.invalid("Timestamp out of range"):new W({ts:e,zone:Ge(r.zone,he.defaultZone),loc:ne.fromObject(r)});throw new ve(`fromMillis requires a numerical input, but received a ${typeof e} with value ${e}`)}static fromSeconds(e,r={}){if(Ze(e))return new W({ts:e*1e3,zone:Ge(r.zone,he.defaultZone),loc:ne.fromObject(r)});throw new ve("fromSeconds requires a numerical input")}static fromObject(e,r={}){e=e||{};const n=Ge(r.zone,he.defaultZone);if(!n.isValid)return W.invalid(Lt(n));const s=ne.fromObject(r),i=Or(e,vi),{minDaysInFirstWeek:o,startOfWeek:a}=oi(i,s),l=he.now(),u=z(r.specificOffset)?n.offset(l):r.specificOffset,h=!z(i.ordinal),m=!z(i.year),p=!z(i.month)||!z(i.day),y=m||p,g=i.weekYear||i.weekNumber;if((y||h)&&g)throw new yt("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(p&&h)throw new yt("Can't mix ordinal dates with month/day");const d=g||i.weekday&&!y;let T,O,j=lr(l,u);d?(T=Vf,O=Pf,j=wr(j,o,a)):h?(T=Ff,O=Lf,j=cn(j)):(T=hr,O=ea);let I=!1;for(const pe of T){const Z=i[pe];z(Z)?I?i[pe]=O[pe]:i[pe]=j[pe]:I=!0}const E=d?md(i,o,a):h?pd(i):Eo(i),w=E||ko(i);if(w)return W.invalid(w);const C=d?si(i,o,a):h?ii(i):i,[V,q]=fr(C,u,n),G=new W({ts:V,zone:n,o:q,loc:s});return i.weekday&&y&&e.weekday!==G.weekday?W.invalid("mismatched weekday",`you can't specify both a weekday of ${i.weekday} and a date of ${G.toISO()}`):G.isValid?G:W.invalid(G.invalid)}static fromISO(e,r={}){const[n,s]=af(e);return pt(n,s,r,"ISO 8601",e)}static fromRFC2822(e,r={}){const[n,s]=lf(e);return pt(n,s,r,"RFC 2822",e)}static fromHTTP(e,r={}){const[n,s]=uf(e);return pt(n,s,r,"HTTP",r)}static fromFormat(e,r,n={}){if(z(e)||z(r))throw new ve("fromFormat requires an input string and a format");const{locale:s=null,numberingSystem:i=null}=n,o=ne.fromOpts({locale:s,numberingSystem:i,defaultToEN:!0}),[a,l,u,h]=Rf(o,e,r);return h?W.invalid(h):pt(a,l,n,`format ${r}`,e,u)}static fromString(e,r,n={}){return W.fromFormat(e,r,n)}static fromSQL(e,r={}){const[n,s]=yf(e);return pt(n,s,r,"SQL",e)}static invalid(e,r=null){if(!e)throw new ve("need to specify a reason the DateTime is invalid");const n=e instanceof Re?e:new Re(e,r);if(he.throwOnInvalid)throw new zc(n);return new W({invalid:n})}static isDateTime(e){return e&&e.isLuxonDateTime||!1}static parseFormatForOpts(e,r={}){const n=Qo(e,ne.fromObject(r));return n?n.map(s=>s?s.val:null).join(""):null}static expandFormat(e,r={}){return Zo(Se.parseFormat(e),ne.fromObject(r)).map(s=>s.val).join("")}static resetCache(){Vt=void 0,_n.clear()}get(e){return this[e]}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}get outputCalendar(){return this.isValid?this.loc.outputCalendar:null}get zone(){return this._zone}get zoneName(){return this.isValid?this.zone.name:null}get year(){return this.isValid?this.c.year:NaN}get quarter(){return this.isValid?Math.ceil(this.c.month/3):NaN}get month(){return this.isValid?this.c.month:NaN}get day(){return this.isValid?this.c.day:NaN}get hour(){return this.isValid?this.c.hour:NaN}get minute(){return this.isValid?this.c.minute:NaN}get second(){return this.isValid?this.c.second:NaN}get millisecond(){return this.isValid?this.c.millisecond:NaN}get weekYear(){return this.isValid?hn(this).weekYear:NaN}get weekNumber(){return this.isValid?hn(this).weekNumber:NaN}get weekday(){return this.isValid?hn(this).weekday:NaN}get isWeekend(){return this.isValid&&this.loc.getWeekendDays().includes(this.weekday)}get localWeekday(){return this.isValid?mn(this).weekday:NaN}get localWeekNumber(){return this.isValid?mn(this).weekNumber:NaN}get localWeekYear(){return this.isValid?mn(this).weekYear:NaN}get ordinal(){return this.isValid?cn(this.c).ordinal:NaN}get monthShort(){return this.isValid?Pt.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?Pt.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?Pt.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?Pt.weekdays("long",{locObj:this.loc})[this.weekday-1]:null}get offset(){return this.isValid?+this.o:NaN}get offsetNameShort(){return this.isValid?this.zone.offsetName(this.ts,{format:"short",locale:this.locale}):null}get offsetNameLong(){return this.isValid?this.zone.offsetName(this.ts,{format:"long",locale:this.locale}):null}get isOffsetFixed(){return this.isValid?this.zone.isUniversal:null}get isInDST(){return this.isOffsetFixed?!1:this.offset>this.set({month:1,day:1}).offset||this.offset>this.set({month:5}).offset}getPossibleOffsets(){if(!this.isValid||this.isOffsetFixed)return[this];const e=864e5,r=6e4,n=Ur(this.c),s=this.zone.offset(n-e),i=this.zone.offset(n+e),o=this.zone.offset(n-s*r),a=this.zone.offset(n-i*r);if(o===a)return[this];const l=n-o*r,u=n-a*r,h=lr(l,o),m=lr(u,a);return h.hour===m.hour&&h.minute===m.minute&&h.second===m.second&&h.millisecond===m.millisecond?[et(this,{ts:l}),et(this,{ts:u})]:[this]}get isInLeapYear(){return Zt(this.year)}get daysInMonth(){return Cr(this.year,this.month)}get daysInYear(){return this.isValid?St(this.year):NaN}get weeksInWeekYear(){return this.isValid?Bt(this.weekYear):NaN}get weeksInLocalWeekYear(){return this.isValid?Bt(this.localWeekYear,this.loc.getMinDaysInFirstWeek(),this.loc.getStartOfWeek()):NaN}resolvedLocaleOptions(e={}){const{locale:r,numberingSystem:n,calendar:s}=Se.create(this.loc.clone(e),e).resolvedOptions(this);return{locale:r,numberingSystem:n,outputCalendar:s}}toUTC(e=0,r={}){return this.setZone(Te.instance(e),r)}toLocal(){return this.setZone(he.defaultZone)}setZone(e,{keepLocalTime:r=!1,keepCalendarTime:n=!1}={}){if(e=Ge(e,he.defaultZone),e.equals(this.zone))return this;if(e.isValid){let s=this.ts;if(r||n){const i=e.offset(this.ts),o=this.toObject();[s]=fr(o,i,e)}return et(this,{ts:s,zone:e})}else return W.invalid(Lt(e))}reconfigure({locale:e,numberingSystem:r,outputCalendar:n}={}){const s=this.loc.clone({locale:e,numberingSystem:r,outputCalendar:n});return et(this,{loc:s})}setLocale(e){return this.reconfigure({locale:e})}set(e){if(!this.isValid)return this;const r=Or(e,vi),{minDaysInFirstWeek:n,startOfWeek:s}=oi(r,this.loc),i=!z(r.weekYear)||!z(r.weekNumber)||!z(r.weekday),o=!z(r.ordinal),a=!z(r.year),l=!z(r.month)||!z(r.day),u=a||l,h=r.weekYear||r.weekNumber;if((u||o)&&h)throw new yt("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(l&&o)throw new yt("Can't mix ordinal dates with month/day");let m;i?m=si({...wr(this.c,n,s),...r},n,s):z(r.ordinal)?(m={...this.toObject(),...r},z(r.day)&&(m.day=Math.min(Cr(m.year,m.month),m.day))):m=ii({...cn(this.c),...r});const[p,y]=fr(m,this.o,this.zone);return et(this,{ts:p,o:y})}plus(e){if(!this.isValid)return this;const r=X.fromDurationLike(e);return et(this,gi(this,r))}minus(e){if(!this.isValid)return this;const r=X.fromDurationLike(e).negate();return et(this,gi(this,r))}startOf(e,{useLocaleWeeks:r=!1}={}){if(!this.isValid)return this;const n={},s=X.normalizeUnit(e);switch(s){case"years":n.month=1;case"quarters":case"months":n.day=1;case"weeks":case"days":n.hour=0;case"hours":n.minute=0;case"minutes":n.second=0;case"seconds":n.millisecond=0;break}if(s==="weeks")if(r){const i=this.loc.getStartOfWeek(),{weekday:o}=this;o<i&&(n.weekNumber=this.weekNumber-1),n.weekday=i}else n.weekday=1;if(s==="quarters"){const i=Math.ceil(this.month/3);n.month=(i-1)*3+1}return this.set(n)}endOf(e,r){return this.isValid?this.plus({[e]:1}).startOf(e,r).minus(1):this}toFormat(e,r={}){return this.isValid?Se.create(this.loc.redefaultToEN(r)).formatDateTimeFromString(this,e):fn}toLocaleString(e=xr,r={}){return this.isValid?Se.create(this.loc.clone(r),e).formatDateTime(this):fn}toLocaleParts(e={}){return this.isValid?Se.create(this.loc.clone(e),e).formatDateTimeParts(this):[]}toISO({format:e="extended",suppressSeconds:r=!1,suppressMilliseconds:n=!1,includeOffset:s=!0,extendedZone:i=!1,precision:o="milliseconds"}={}){if(!this.isValid)return null;o=mr(o);const a=e==="extended";let l=pn(this,a,o);return hr.indexOf(o)>=3&&(l+="T"),l+=bi(this,a,r,n,s,i,o),l}toISODate({format:e="extended",precision:r="day"}={}){return this.isValid?pn(this,e==="extended",mr(r)):null}toISOWeekDate(){return ur(this,"kkkk-'W'WW-c")}toISOTime({suppressMilliseconds:e=!1,suppressSeconds:r=!1,includeOffset:n=!0,includePrefix:s=!1,extendedZone:i=!1,format:o="extended",precision:a="milliseconds"}={}){return this.isValid?(a=mr(a),(s&&hr.indexOf(a)>=3?"T":"")+bi(this,o==="extended",r,e,n,i,a)):null}toRFC2822(){return ur(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return ur(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){return this.isValid?pn(this,!0):null}toSQLTime({includeOffset:e=!0,includeZone:r=!1,includeOffsetSpace:n=!0}={}){let s="HH:mm:ss.SSS";return(r||e)&&(n&&(s+=" "),r?s+="z":e&&(s+="ZZ")),ur(this,s,!0)}toSQL(e={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(e)}`:null}toString(){return this.isValid?this.toISO():fn}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`DateTime { ts: ${this.toISO()}, zone: ${this.zone.name}, locale: ${this.locale} }`:`DateTime { Invalid, reason: ${this.invalidReason} }`}valueOf(){return this.toMillis()}toMillis(){return this.isValid?this.ts:NaN}toSeconds(){return this.isValid?this.ts/1e3:NaN}toUnixInteger(){return this.isValid?Math.floor(this.ts/1e3):NaN}toJSON(){return this.toISO()}toBSON(){return this.toJSDate()}toObject(e={}){if(!this.isValid)return{};const r={...this.c};return e.includeConfig&&(r.outputCalendar=this.outputCalendar,r.numberingSystem=this.loc.numberingSystem,r.locale=this.loc.locale),r}toJSDate(){return new Date(this.isValid?this.ts:NaN)}diff(e,r="milliseconds",n={}){if(!this.isValid||!e.isValid)return X.invalid("created by diffing an invalid DateTime");const s={locale:this.locale,numberingSystem:this.numberingSystem,...n},i=bd(r).map(X.normalizeUnit),o=e.valueOf()>this.valueOf(),a=o?this:e,l=o?e:this,u=xf(a,l,i,s);return o?u.negate():u}diffNow(e="milliseconds",r={}){return this.diff(W.now(),e,r)}until(e){return this.isValid?fe.fromDateTimes(this,e):this}hasSame(e,r,n){if(!this.isValid)return!1;const s=e.valueOf(),i=this.setZone(e.zone,{keepLocalTime:!0});return i.startOf(r,n)<=s&&s<=i.endOf(r,n)}equals(e){return this.isValid&&e.isValid&&this.valueOf()===e.valueOf()&&this.zone.equals(e.zone)&&this.loc.equals(e.loc)}toRelative(e={}){if(!this.isValid)return null;const r=e.base||W.fromObject({},{zone:this.zone}),n=e.padding?this<r?-e.padding:e.padding:0;let s=["years","months","days","hours","minutes","seconds"],i=e.unit;return Array.isArray(e.unit)&&(s=e.unit,i=void 0),Ti(r,this.plus(n),{...e,numeric:"always",units:s,unit:i})}toRelativeCalendar(e={}){return this.isValid?Ti(e.base||W.fromObject({},{zone:this.zone}),this,{...e,numeric:"auto",units:["years","months","days"],calendary:!0}):null}static min(...e){if(!e.every(W.isDateTime))throw new ve("min requires all arguments be DateTimes");return ai(e,r=>r.valueOf(),Math.min)}static max(...e){if(!e.every(W.isDateTime))throw new ve("max requires all arguments be DateTimes");return ai(e,r=>r.valueOf(),Math.max)}static fromFormatExplain(e,r,n={}){const{locale:s=null,numberingSystem:i=null}=n,o=ne.fromOpts({locale:s,numberingSystem:i,defaultToEN:!0});return Ko(o,e,r)}static fromStringExplain(e,r,n={}){return W.fromFormatExplain(e,r,n)}static buildFormatParser(e,r={}){const{locale:n=null,numberingSystem:s=null}=r,i=ne.fromOpts({locale:n,numberingSystem:s,defaultToEN:!0});return new Jo(i,e)}static fromFormatParser(e,r,n={}){if(z(e)||z(r))throw new ve("fromFormatParser requires an input string and a format parser");const{locale:s=null,numberingSystem:i=null}=n,o=ne.fromOpts({locale:s,numberingSystem:i,defaultToEN:!0});if(!o.equals(r.locale))throw new ve(`fromFormatParser called with a locale of ${o}, but the format parser was created for ${r.locale}`);const{result:a,zone:l,specificOffset:u,invalidReason:h}=r.explainFromTokens(e);return h?W.invalid(h):pt(a,l,n,`format ${r.format}`,e,u)}static get DATE_SHORT(){return xr}static get DATE_MED(){return eo}static get DATE_MED_WITH_WEEKDAY(){return Yc}static get DATE_FULL(){return to}static get DATE_HUGE(){return ro}static get TIME_SIMPLE(){return no}static get TIME_WITH_SECONDS(){return so}static get TIME_WITH_SHORT_OFFSET(){return io}static get TIME_WITH_LONG_OFFSET(){return oo}static get TIME_24_SIMPLE(){return ao}static get TIME_24_WITH_SECONDS(){return lo}static get TIME_24_WITH_SHORT_OFFSET(){return uo}static get TIME_24_WITH_LONG_OFFSET(){return co}static get DATETIME_SHORT(){return fo}static get DATETIME_SHORT_WITH_SECONDS(){return ho}static get DATETIME_MED(){return mo}static get DATETIME_MED_WITH_SECONDS(){return po}static get DATETIME_MED_WITH_WEEKDAY(){return qc}static get DATETIME_FULL(){return yo}static get DATETIME_FULL_WITH_SECONDS(){return go}static get DATETIME_HUGE(){return bo}static get DATETIME_HUGE_WITH_SECONDS(){return vo}}function jt(t){if(W.isDateTime(t))return t;if(t&&t.valueOf&&Ze(t.valueOf()))return W.fromJSDate(t);if(t&&typeof t=="object")return W.fromObject(t);throw new ve(`Unknown datetime argument: ${t}, of type ${typeof t}`)}const zf={y:{sectionType:"year",contentType:"digit",maxLength:4},yy:"year",yyyy:{sectionType:"year",contentType:"digit",maxLength:4},L:{sectionType:"month",contentType:"digit",maxLength:2},LL:"month",LLL:{sectionType:"month",contentType:"letter"},LLLL:{sectionType:"month",contentType:"letter"},M:{sectionType:"month",contentType:"digit",maxLength:2},MM:"month",MMM:{sectionType:"month",contentType:"letter"},MMMM:{sectionType:"month",contentType:"letter"},d:{sectionType:"day",contentType:"digit",maxLength:2},dd:"day",c:{sectionType:"weekDay",contentType:"digit",maxLength:1},ccc:{sectionType:"weekDay",contentType:"letter"},cccc:{sectionType:"weekDay",contentType:"letter"},E:{sectionType:"weekDay",contentType:"digit",maxLength:2},EEE:{sectionType:"weekDay",contentType:"letter"},EEEE:{sectionType:"weekDay",contentType:"letter"},a:"meridiem",H:{sectionType:"hours",contentType:"digit",maxLength:2},HH:"hours",h:{sectionType:"hours",contentType:"digit",maxLength:2},hh:"hours",m:{sectionType:"minutes",contentType:"digit",maxLength:2},mm:"minutes",s:{sectionType:"seconds",contentType:"digit",maxLength:2},ss:"seconds"},Uf={year:"yyyy",month:"LLLL",monthShort:"MMM",dayOfMonth:"d",dayOfMonthFull:"d",weekday:"cccc",weekdayShort:"ccccc",hours24h:"HH",hours12h:"hh",meridiem:"a",minutes:"mm",seconds:"ss",fullDate:"DD",keyboardDate:"D",shortDate:"MMM d",normalDate:"d MMMM",normalDateWithWeekday:"EEE, MMM d",fullTime:"t",fullTime12h:"hh:mm a",fullTime24h:"HH:mm",keyboardDateTime:"D t",keyboardDateTime12h:"D hh:mm a",keyboardDateTime24h:"D T"};class ta{constructor({locale:e,formats:r}={}){this.isMUIAdapter=!0,this.isTimezoneCompatible=!0,this.lib="luxon",this.locale=void 0,this.formats=void 0,this.escapedCharacters={start:"'",end:"'"},this.formatTokenMap=zf,this.setLocaleToValue=n=>{const s=this.getCurrentLocaleCode();return s===n.locale?n:n.setLocale(s)},this.date=(n,s="default")=>n===null?null:typeof n>"u"?W.fromJSDate(new Date,{locale:this.locale,zone:s}):W.fromISO(n,{locale:this.locale,zone:s}),this.getInvalidDate=()=>W.fromJSDate(new Date("Invalid Date")),this.getTimezone=n=>n.zone.type==="system"?"system":n.zoneName,this.setTimezone=(n,s)=>n.zone.equals(Pt.normalizeZone(s))?n:n.setZone(s),this.toJsDate=n=>n.toJSDate(),this.parse=(n,s)=>n===""?null:W.fromFormat(n,s,{locale:this.locale}),this.getCurrentLocaleCode=()=>this.locale,this.is12HourCycleInCurrentLocale=()=>{var n,s;return typeof Intl>"u"||typeof Intl.DateTimeFormat>"u"?!0:!!((s=(n=new Intl.DateTimeFormat(this.locale,{hour:"numeric"}))==null?void 0:n.resolvedOptions())!=null&&s.hour12)},this.expandFormat=n=>{const s=/''|'(''|[^'])+('|$)|[^']*/g,i=[...Object.keys(this.formatTokenMap),"yyyyy"],o=new RegExp(`^(${i.join("|")})+$`),a=/(?:^|[^a-z])([a-z]+)(?:[^a-z]|$)|([a-z]+)/gi;return n.match(s).map(l=>l[0]==="'"?l:W.expandFormat(l,{locale:this.locale}).replace(a,(m,p,y)=>{const g=p||y;return o.test(g)?m:`'${m}'`})).join("").replace("yyyyy","yyyy")},this.isValid=n=>n===null?!1:n.isValid,this.format=(n,s)=>this.formatByString(n,this.formats[s]),this.formatByString=(n,s)=>n.setLocale(this.locale).toFormat(s),this.formatNumber=n=>n,this.isEqual=(n,s)=>n===null&&s===null?!0:n===null||s===null?!1:+n==+s,this.isSameYear=(n,s)=>{const i=this.setTimezone(s,this.getTimezone(n));return n.hasSame(i,"year")},this.isSameMonth=(n,s)=>{const i=this.setTimezone(s,this.getTimezone(n));return n.hasSame(i,"month")},this.isSameDay=(n,s)=>{const i=this.setTimezone(s,this.getTimezone(n));return n.hasSame(i,"day")},this.isSameHour=(n,s)=>{const i=this.setTimezone(s,this.getTimezone(n));return n.hasSame(i,"hour")},this.isAfter=(n,s)=>n>s,this.isAfterYear=(n,s)=>{const i=this.setTimezone(s,this.getTimezone(n));return n.diff(this.endOfYear(i),"years").toObject().years>0},this.isAfterDay=(n,s)=>{const i=this.setTimezone(s,this.getTimezone(n));return n.diff(this.endOfDay(i),"days").toObject().days>0},this.isBefore=(n,s)=>n<s,this.isBeforeYear=(n,s)=>{const i=this.setTimezone(s,this.getTimezone(n));return n.diff(this.startOfYear(i),"years").toObject().years<0},this.isBeforeDay=(n,s)=>{const i=this.setTimezone(s,this.getTimezone(n));return n.diff(this.startOfDay(i),"days").toObject().days<0},this.isWithinRange=(n,[s,i])=>this.isEqual(n,s)||this.isEqual(n,i)||this.isAfter(n,s)&&this.isBefore(n,i),this.startOfYear=n=>n.startOf("year"),this.startOfMonth=n=>n.startOf("month"),this.startOfWeek=n=>this.setLocaleToValue(n).startOf("week",{useLocaleWeeks:!0}),this.startOfDay=n=>n.startOf("day"),this.endOfYear=n=>n.endOf("year"),this.endOfMonth=n=>n.endOf("month"),this.endOfWeek=n=>this.setLocaleToValue(n).endOf("week",{useLocaleWeeks:!0}),this.endOfDay=n=>n.endOf("day"),this.addYears=(n,s)=>n.plus({years:s}),this.addMonths=(n,s)=>n.plus({months:s}),this.addWeeks=(n,s)=>n.plus({weeks:s}),this.addDays=(n,s)=>n.plus({days:s}),this.addHours=(n,s)=>n.plus({hours:s}),this.addMinutes=(n,s)=>n.plus({minutes:s}),this.addSeconds=(n,s)=>n.plus({seconds:s}),this.getYear=n=>n.get("year"),this.getMonth=n=>n.get("month")-1,this.getDate=n=>n.get("day"),this.getHours=n=>n.get("hour"),this.getMinutes=n=>n.get("minute"),this.getSeconds=n=>n.get("second"),this.getMilliseconds=n=>n.get("millisecond"),this.setYear=(n,s)=>n.set({year:s}),this.setMonth=(n,s)=>n.set({month:s+1}),this.setDate=(n,s)=>n.set({day:s}),this.setHours=(n,s)=>n.set({hour:s}),this.setMinutes=(n,s)=>n.set({minute:s}),this.setSeconds=(n,s)=>n.set({second:s}),this.setMilliseconds=(n,s)=>n.set({millisecond:s}),this.getDaysInMonth=n=>n.daysInMonth,this.getWeekArray=n=>{const s=this.startOfWeek(this.startOfMonth(n)),i=this.endOfWeek(this.endOfMonth(n)),{days:o}=i.diff(s,"days").toObject(),a=[];return new Array(Math.round(o)).fill(0).map((l,u)=>u).map(l=>s.plus({days:l})).forEach((l,u)=>{if(u===0||u%7===0&&u>6){a.push([l]);return}a[a.length-1].push(l)}),a},this.getWeekNumber=n=>n.localWeekNumber??n.weekNumber,this.getDayOfWeek=n=>n.weekday,this.getYearRange=([n,s])=>{const i=this.startOfYear(n),o=this.endOfYear(s),a=[];let l=i;for(;this.isBefore(l,o);)a.push(l),l=this.addYears(l,1);return a},this.locale=e||"en-US",this.formats=Tn({},Uf,r)}}const Bf=_e(c.jsx("path",{d:"M9 16.17 4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z"}),"Check"),Yf=_e(c.jsx("path",{d:"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"}),"Close");function qf({formData:t,setFormData:e,courseUsers:r=[]}){var m,p,y,g;const n=S.useTheme(),s=S.useMediaQuery(n.breakpoints.up("md")),[i,o]=B.useState("settings"),a=((p=(m=t.data)==null?void 0:m.enrollmentData)==null?void 0:p.filter(d=>d.role==="student"&&d.status==="enrolled"))||[],l=((g=(y=t.data)==null?void 0:y.enrollmentData)==null?void 0:g.filter(d=>d.role==="student"&&d.status==="pending"))||[],u=()=>{var d,T,O,j;return c.jsxs(S.Stack,{direction:s?"row":"column",spacing:2,alignItems:s?"center":"stretch",children:[c.jsx(S.FormControlLabel,{control:c.jsx(S.Switch,{checked:((d=t.enrollment)==null?void 0:d.status.open)??!1,onChange:I=>{var E,w,C;return e({...t,enrollment:{startDate:((E=t.enrollment)==null?void 0:E.startDate)??null,endDate:((w=t.enrollment)==null?void 0:w.endDate)??null,status:{open:I.target.checked,maxStudents:(C=t.enrollment)==null?void 0:C.status.maxStudents}}})}}),label:"Enrollment Open"}),c.jsxs(gt.LocalizationProvider,{dateAdapter:ta,children:[c.jsx(gt.DateTimePicker,{label:"Enrollment Starts",value:$.parseDate((T=t.enrollment)==null?void 0:T.startDate),onChange:I=>{var E,w,C;return e({...t,enrollment:{startDate:(I==null?void 0:I.toISO())??null,endDate:((E=t.enrollment)==null?void 0:E.endDate)??null,status:{open:((w=t.enrollment)==null?void 0:w.status.open)??!1,maxStudents:(C=t.enrollment)==null?void 0:C.status.maxStudents}}})}}),c.jsx(gt.DateTimePicker,{label:"Enrollment Ends",value:$.parseDate((O=t.enrollment)==null?void 0:O.endDate),onChange:I=>{var E,w,C;return e({...t,enrollment:{startDate:((E=t.enrollment)==null?void 0:E.startDate)??null,endDate:(I==null?void 0:I.toISO())??null,status:{open:((w=t.enrollment)==null?void 0:w.status.open)??!1,maxStudents:(C=t.enrollment)==null?void 0:C.status.maxStudents}}})}})]}),c.jsx(S.TextField,{label:"Maximum Students",type:"number",value:((j=t.enrollment)==null?void 0:j.status.maxStudents)??"",onChange:I=>{var E,w,C;return e({...t,enrollment:{startDate:((E=t.enrollment)==null?void 0:E.startDate)??null,endDate:((w=t.enrollment)==null?void 0:w.endDate)??null,status:{open:((C=t.enrollment)==null?void 0:C.status.open)??!1,maxStudents:I.target.value?parseInt(I.target.value):void 0}}})}})]})},h=()=>c.jsxs(S.Box,{sx:{mt:2},children:[!s&&c.jsxs(S.Tabs,{value:i==="enrolled"?0:1,onChange:(d,T)=>o(T===0?"enrolled":"pending"),sx:{mb:2},children:[c.jsx(S.Tab,{label:"Enrolled"}),c.jsx(S.Tab,{label:"Pending"})]}),c.jsxs(S.Stack,{direction:s?"row":"column",spacing:2,children:[(s||i==="enrolled")&&c.jsxs(S.Paper,{sx:{flex:1,maxHeight:400,overflow:"auto"},children:[c.jsxs(S.Typography,{variant:"subtitle1",sx:{p:2,borderBottom:1,borderColor:"divider"},children:["Enrolled Students (",a.length,")"]}),c.jsx(S.List,{children:a.map(d=>c.jsxs(S.ListItem,{children:[c.jsx(S.Avatar,{sx:{mr:2},children:d.name[0]}),c.jsx(S.ListItemText,{primary:d.name,secondary:d.email})]},d.userId))})]}),(s||i==="pending")&&c.jsxs(S.Paper,{sx:{flex:1,maxHeight:400,overflow:"auto"},children:[c.jsxs(S.Typography,{variant:"subtitle1",sx:{p:2,borderBottom:1,borderColor:"divider"},children:["Pending Requests (",l.length,")"]}),c.jsx(S.List,{children:l.map(d=>c.jsx(S.ListItem,{secondaryAction:c.jsxs(S.Stack,{direction:"row",spacing:1,children:[c.jsx(S.IconButton,{color:"success",children:c.jsx(Bf,{})}),c.jsx(S.IconButton,{color:"error",children:c.jsx(Yf,{})})]}),children:c.jsx(S.Avatar,{sx:{mr:2},children:d.name[0]})},d.userId))})]})]})]});return s?c.jsxs(S.Stack,{spacing:2,children:[u(),h()]}):c.jsxs(S.Stack,{spacing:2,children:[c.jsxs(S.Tabs,{value:i==="settings"?0:1,onChange:(d,T)=>o(T===0?"settings":"enrolled"),children:[c.jsx(S.Tab,{label:"Settings"}),c.jsx(S.Tab,{label:"Students"})]}),i==="settings"?u():h()]})}function Gf({formData:t,setFormData:e}){const r=n=>{switch(n){case"public":return"Course is visible to everyone, including non-logged-in users.";case"enrolled":return"Course is only visible to users who are enrolled in the course.";case"private":return"Course is only visible to course staff.";default:return""}};return c.jsx(gt.LocalizationProvider,{dateAdapter:ta,children:c.jsxs(S.Stack,{spacing:2,children:[c.jsxs(S.Stack,{children:[c.jsxs(S.FormControl,{fullWidth:!0,children:[c.jsx(S.InputLabel,{id:"visibility-mode-label",children:"Visibility Mode"}),c.jsxs(S.Select,{labelId:"visibility-mode-label",id:"visibility-mode-select",label:"Visibility Mode",value:t.visibility.mode,onChange:n=>e({...t,visibility:{...t.visibility,mode:n.target.value}}),children:[c.jsx(S.MenuItem,{value:"public",children:"Public"}),c.jsx(S.MenuItem,{value:"enrolled",children:"Enrolled Only"}),c.jsx(S.MenuItem,{value:"private",children:"Private"})]})]}),c.jsx(S.Typography,{variant:"body2",color:"text.secondary",sx:{mt:1,ml:1},children:r(t.visibility.mode)})]}),c.jsx(gt.DateTimePicker,{label:"Visible From",value:$.parseDate(t.visibility.startDate),onChange:n=>e({...t,visibility:{...t.visibility,startDate:(n==null?void 0:n.toISO())||null}})}),c.jsx(gt.DateTimePicker,{label:"Visible Until",value:$.parseDate(t.visibility.endDate),onChange:n=>e({...t,visibility:{...t.visibility,endDate:(n==null?void 0:n.toISO())||null}})})]})})}const tt=Hu({createStyledComponent:Ki("div",{name:"MuiGrid",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:r}=t;return[e.root,r.container&&e.container]}}),componentName:"MuiGrid",useThemeProps:t=>Qi({props:t,name:"MuiGrid"}),useTheme:Nc});process.env.NODE_ENV!=="production"&&(tt.propTypes={children:v.node,columns:v.oneOfType([v.arrayOf(v.number),v.number,v.object]),columnSpacing:v.oneOfType([v.arrayOf(v.oneOfType([v.number,v.string])),v.number,v.object,v.string]),container:v.bool,direction:v.oneOfType([v.oneOf(["column-reverse","column","row-reverse","row"]),v.arrayOf(v.oneOf(["column-reverse","column","row-reverse","row"])),v.object]),offset:v.oneOfType([v.string,v.number,v.arrayOf(v.oneOfType([v.string,v.number])),v.object]),rowSpacing:v.oneOfType([v.arrayOf(v.oneOfType([v.number,v.string])),v.number,v.object,v.string]),size:v.oneOfType([v.string,v.bool,v.number,v.arrayOf(v.oneOfType([v.string,v.bool,v.number])),v.object]),spacing:v.oneOfType([v.arrayOf(v.oneOfType([v.number,v.string])),v.number,v.object,v.string]),sx:v.oneOfType([v.arrayOf(v.oneOfType([v.func,v.object,v.bool])),v.func,v.object]),unstable_level:v.number,wrap:v.oneOf(["nowrap","wrap-reverse","wrap"])});if(process.env.NODE_ENV!=="production"){const t=tt,e=Vc("Grid",t);t.propTypes={...t.propTypes,direction:e("container"),spacing:e("container"),wrap:e("container")}}function Hf({formData:t,setFormData:e}){const r={...t,dataProcessing:t.dataProcessing||{purposes:["course_delivery","assessment"],retention:365,thirdPartyProcessors:[],specialCategories:!1,legalBasis:"consent"}},n=(s,i)=>{e({...r,dataProcessing:{...r.dataProcessing,[s]:i}})};return c.jsxs(S.Stack,{spacing:3,children:[c.jsx(S.Typography,{variant:"h6",children:"Data Processing Details"}),c.jsxs(tt,{container:!0,spacing:3,children:[c.jsx(tt,{size:{xs:12,md:6},children:c.jsx($.EditableSelect,{label:"Legal Basis",value:r.dataProcessing.legalBasis,onChange:s=>n("legalBasis",s),options:[{value:"consent",label:"Consent"},{value:"contract",label:"Contract"},{value:"legal_obligation",label:"Legal Obligation"},{value:"legitimate_interests",label:"Legitimate Interests"}]})}),c.jsx(tt,{size:{xs:12,md:6},children:c.jsx($.EditableNumber,{label:"Data Retention Period (days)",value:r.dataProcessing.retention,onChange:s=>n("retention",s)})})]}),c.jsx(S.Divider,{}),c.jsx(S.Typography,{variant:"h6",children:"Special Categories of Personal Data"}),c.jsx(tt,{container:!0,spacing:3,children:c.jsx(tt,{size:{xs:12,md:6},children:c.jsx($.EditableSwitch,{label:"Process Special Categories of Personal Data",value:r.dataProcessing.specialCategories,onChange:s=>n("specialCategories",s)})})})]})}const cr={prerequisite:"Must be completed before taking this course",continues_from:"Natural continuation of the other course",alternative_to:"Equivalent course (cannot take both)",part_of:"Part of a larger study module/specialization"};function Zf({formData:t,setFormData:e}){var n,s,i,o;const r=(a,l)=>{var u,h,m,p;e({...t,relationships:{prerequisites:((u=t.relationships)==null?void 0:u.prerequisites)||[],continuations:((h=t.relationships)==null?void 0:h.continuations)||[],alternatives:((m=t.relationships)==null?void 0:m.alternatives)||[],related:((p=t.relationships)==null?void 0:p.related)||[],[a]:l}})};return c.jsxs(S.Stack,{spacing:3,children:[c.jsxs(S.Box,{children:[c.jsx(S.Typography,{variant:"h6",sx:{mb:2},children:"Prerequisites"}),c.jsx($.EditableAutocomplete,{label:"Required Courses",value:((n=t.relationships)==null?void 0:n.prerequisites)||[],onChange:a=>r("prerequisites",a),helperText:cr.prerequisite,getOptionLabel:a=>`${a.code} - ${a.type}`})]}),c.jsxs(S.Box,{children:[c.jsx(S.Typography,{variant:"h6",sx:{mb:2},children:"Continuations"}),c.jsx($.EditableAutocomplete,{label:"Follow-up Courses",value:((s=t.relationships)==null?void 0:s.continuations)||[],onChange:a=>r("continuations",a),helperText:cr.continues_from,getOptionLabel:a=>`${a.code} - ${a.type}`})]}),c.jsxs(S.Box,{children:[c.jsx(S.Typography,{variant:"h6",sx:{mb:2},children:"Alternatives"}),c.jsx($.EditableAutocomplete,{label:"Alternative Courses",value:((i=t.relationships)==null?void 0:i.alternatives)||[],onChange:a=>r("alternatives",a),helperText:cr.alternative_to,getOptionLabel:a=>`${a.code} - ${a.type}`})]}),c.jsxs(S.Box,{children:[c.jsx(S.Typography,{variant:"h6",sx:{mb:2},children:"Related Courses"}),c.jsx($.EditableAutocomplete,{label:"Related Courses",value:((o=t.relationships)==null?void 0:o.related)||[],onChange:a=>r("related",a),helperText:cr.part_of,getOptionLabel:a=>`${a.code} - ${a.type}`})]})]})}function Jf({formData:t,handleUpdateFormData:e,courseUsers:r}){const n=S.useTheme(),[s,i]=B.useState(0),o=S.useMediaQuery(n.breakpoints.up("md"));return B.useEffect(()=>{t.dataProcessing||e({...t,dataProcessing:{purposes:["course_delivery","assessment"],retention:365,thirdPartyProcessors:[],specialCategories:!1,legalBasis:"consent"}})},[t,e]),c.jsxs(c.Fragment,{children:[c.jsxs(S.Tabs,{value:s,onChange:(a,l)=>i(l),sx:{borderBottom:1,borderColor:"divider"},children:[!o&&c.jsx(S.Tooltip,{title:"Set the core details of your course. Add a title, description, course image, and tags.",arrow:!0,enterDelay:500,enterNextDelay:100,children:c.jsx(S.Tab,{label:"Basic Info"})}),c.jsx(S.Tooltip,{title:"Control who can see your course. Set visibility to public, enrolled users only, or private.",arrow:!0,enterDelay:500,enterNextDelay:100,children:c.jsx(S.Tab,{label:"Visibility"})}),c.jsx(S.Tooltip,{title:"Manage how students can join your course. Set enrollment periods and limits.",arrow:!0,enterDelay:500,enterNextDelay:100,children:c.jsx(S.Tab,{label:"Enrollment"})}),c.jsx(S.Tooltip,{title:"Add or remove staff members who will help manage this course.",arrow:!0,enterDelay:500,enterNextDelay:100,children:c.jsx(S.Tab,{label:"Staff"})}),c.jsx(S.Tooltip,{title:"Set data processing details. Define purposes, retention period, and legal basis.",arrow:!0,enterDelay:500,enterNextDelay:100,children:c.jsx(S.Tab,{label:"Data Processing"})}),c.jsx(S.Tooltip,{title:"Manage course relationships, prerequisites, and related courses",arrow:!0,enterDelay:500,enterNextDelay:100,children:c.jsx(S.Tab,{label:"Relationships"})})]}),c.jsxs(S.Box,{sx:{overflowY:"auto",flex:1,p:1},children:[!o&&s===0&&c.jsx(ki,{formData:t,setFormData:e}),(!o&&s===1||o&&s===0)&&c.jsx(Gf,{formData:t,setFormData:e}),(!o&&s===2||o&&s===1)&&c.jsx(qf,{formData:t,setFormData:e,courseUsers:r}),(!o&&s===3||o&&s===2)&&c.jsx(Wc,{formData:t,setFormData:e,courseUsers:r}),(!o&&s===4||o&&s===3)&&c.jsx(Hf,{formData:t,setFormData:e}),(!o&&s===5||o&&s===4)&&c.jsx(Zf,{formData:t,setFormData:e})]})]})}const ra=()=>{const t=S.useTheme(),e=S.useMediaQuery(t.breakpoints.up("md")),{closeDialog:r}=$.useDialogStore(),{setCourseToUpdate:n,updateStateCourse:s,courseToUpdate:i}=Oe(),{fetchCourseUsers:o}=$.useUserActions(),[a,l]=B.useState(i||ds),[u,h]=B.useState(void 0),{addNotificationData:m}=$.useNotificationStore();B.useEffect(()=>{i?(l(i),o(i.id).then(()=>{h($.userBus.getCourseUsers())})):(l(ds),h(void 0))},[i,o]);const p=async g=>{var T,O,j,I;if(g.preventDefault(),!i)return;const d={...i,...a,tags:a.tags??[],visibility:{...a.visibility,startDate:a.visibility.startDate?new Date(a.visibility.startDate).toISOString():null,endDate:a.visibility.endDate?new Date(a.visibility.endDate).toISOString():null},enrollment:{...a.enrollment,startDate:(T=a.enrollment)!=null&&T.startDate?new Date(a.enrollment.startDate).toISOString():null,endDate:(O=a.enrollment)!=null&&O.endDate?new Date(a.enrollment.endDate).toISOString():null,status:{open:((j=a.enrollment)==null?void 0:j.status.open)??!1,maxStudents:(I=a.enrollment)==null?void 0:I.status.maxStudents}}};await s(d),n(null),m({message:"Course settings saved successfully",type:"success"}),r()},y=g=>{l(g)};return c.jsx($.FormDialog,{title:"Course Settings",submitText:"Save",onSubmit:p,maxWidth:"lg",fullWidth:!0,children:c.jsxs(S.Box,{sx:{display:"flex",flexDirection:"column",height:"100%",minHeight:0},children:[e&&c.jsx(S.Box,{sx:{borderBottom:1,borderColor:"divider",pb:2,mb:2,flex:"0 0 auto",overflow:"auto"},children:c.jsx(ki,{formData:a,setFormData:l})}),c.jsx(S.Box,{sx:{flex:1,minHeight:0,display:"flex",flexDirection:"column",overflow:"hidden"},children:c.jsx(Jf,{formData:a,handleUpdateFormData:y,courseUsers:u})})]})})},Kf={registerCourseMicroservice:()=>{},unregisterCourseMicroservice:()=>{},allCourseMicroserviceNavigation:[],isInsideCourseMicroservice:!1},na=B.createContext(Kf),Jn=()=>B.useContext(na),Qf=({children:t})=>{const[e,r]=B.useState([]);B.useEffect(()=>{$.useNavigationStore.getState().setExternalMicroservices(e)},[e]);const n=B.useCallback(o=>{r(a=>a.find(u=>u.segment===o.segment)?a:[...a,o])},[]),s=B.useCallback(o=>{r(a=>a.filter(u=>u.segment!==o))},[]),i=B.useMemo(()=>({registerCourseMicroservice:n,unregisterCourseMicroservice:s,allCourseMicroserviceNavigation:e,isInsideCourseMicroservice:!0}),[n,s,e]);return c.jsx(na.Provider,{value:i,children:t})},Xf=()=>{const{code:t}=$.useParams(),{fetchState:e,courses:r,setCurrentCourseCode:n}=Oe(),{addNotificationData:s}=$.useNotificationStore(),i=$.useNavigate();return B.useEffect(()=>{if(!t)return;n(t),r.filter(a=>a.code===t).length===0&&e==="success"&&(s({type:"error",message:"Course not found"}),i("/"))},[t,r,e,s,i,n]),e==="loading"?c.jsx($.LoadingScreen,{}):c.jsx($.Outlet,{})},Er={"COMP.CS":{icon:"/static/images/icons/code.svg",baseColor:"#2196f3",levelShades:{basic:"#90caf9",intermediate:"#2196f3",advanced:"#1565c0"}},MATH:{icon:"/static/images/icons/line.svg",baseColor:"#4caf50",levelShades:{basic:"#a5d6a7",intermediate:"#4caf50",advanced:"#2e7d32"}},PHYS:{icon:"/static/images/icons/weight.svg",baseColor:"#f44336",levelShades:{basic:"#ef9a9a",intermediate:"#f44336",advanced:"#c62828"}},BIO:{icon:"/static/images/icons/dna.svg",baseColor:"#9c27b0",levelShades:{basic:"#ce93d8",intermediate:"#9c27b0",advanced:"#6a1b9a"}},CHEM:{icon:"/static/images/icons/atom.svg",baseColor:"#ff9800",levelShades:{basic:"#ffb74d",intermediate:"#ff9800",advanced:"#ef6c00"}},LANG:{icon:"/static/images/icons/lang.svg",baseColor:"#795548",levelShades:{basic:"#a1887f",intermediate:"#795548",advanced:"#4e342e"}}},eh=({course:t})=>c.jsx(S.Box,{sx:{mb:1},children:c.jsxs(S.Typography,{variant:"subtitle1",sx:{fontWeight:500,width:"100%"},children:[t.title," (",t.code,")"]})}),th=_e(c.jsx("path",{d:"M17 12h-5v5h5zM16 1v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2h-1V1zm3 18H5V8h14z"}),"Event"),rh=({course:t,displayMode:e,hasUpcomingEvents:r})=>c.jsxs(S.Box,{sx:{display:"flex",flexDirection:"row",alignItems:"center",mb:"auto",width:"100%"},children:[e!=="course"&&c.jsx(S.Typography,{variant:"caption",sx:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",mr:1},children:t.instance}),r&&c.jsx(S.Tooltip,{title:"Upcoming Events",children:c.jsx(S.IconButton,{size:"small",color:"info",sx:{width:28,height:28,padding:0},children:c.jsx(th,{sx:{fontSize:18}})})})]}),nh=_e(c.jsx("path",{d:"M19.14 12.94c.04-.3.06-.61.06-.94 0-.32-.02-.64-.07-.94l2.03-1.58c.18-.14.23-.41.12-.61l-1.92-3.32c-.12-.22-.37-.29-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54c-.04-.24-.24-.41-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.74 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.05.3-.09.63-.09.94s.02.64.07.94l-2.03 1.58c-.18.14-.23.41-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .44-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.47-.12-.61zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6 3.6 1.62 3.6 3.6-1.62 3.6-3.6 3.6"}),"Settings"),sh=_e(c.jsx("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m1 15h-2v-6h2zm0-8h-2V7h2z"}),"Info"),ih=_e(c.jsx("path",{d:"M15 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4m-9-2V7H4v3H1v2h3v3h2v-3h3v-2zm9 4c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4"}),"PersonAdd"),oh=_e(c.jsx("path",{d:"M5 13.18v4L12 21l7-3.82v-4L12 17zM12 3 1 9l11 6 9-4.91V17h2V9z"}),"School"),ah=_e(c.jsx("path",{d:"m12.87 15.07-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2zm-2.62 7 1.62-4.33L19.12 17z"}),"Translate"),lh=_e(c.jsx("path",{d:"M16 11c1.66 0 2.99-1.34 2.99-3S17.66 5 16 5s-3 1.34-3 3 1.34 3 3 3m-8 0c1.66 0 2.99-1.34 2.99-3S9.66 5 8 5 5 6.34 5 8s1.34 3 3 3m0 2c-2.33 0-7 1.17-7 3.5V19h14v-2.5c0-2.33-4.67-3.5-7-3.5m8 0c-.29 0-.62.02-.97.05 1.16.84 1.97 1.97 1.97 3.45V19h6v-2.5c0-2.33-4.67-3.5-7-3.5"}),"Group"),uh=_e(c.jsx("path",{d:"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2m4.24 16L12 15.45 7.77 18l1.12-4.81-3.73-3.23 4.92-.42L12 5l1.92 4.53 4.92.42-3.73 3.23z"}),"Stars"),ch=_e(c.jsx("path",{d:"M22 9V7h-2v2h-2v2h2v2h2v-2h2V9zM8 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4m0 1c-2.67 0-8 1.34-8 4v3h16v-3c0-2.66-5.33-4-8-4m4.51-8.95C13.43 5.11 14 6.49 14 8s-.57 2.89-1.49 3.95C14.47 11.7 16 10.04 16 8s-1.53-3.7-3.49-3.95m4.02 9.78C17.42 14.66 18 15.7 18 17v3h2v-3c0-1.45-1.59-2.51-3.47-3.17"}),"GroupAdd"),dh=({course:t,courseColor:e,isTeacher:r,showEnrollmentOpen:n,onSettingsClick:s,onEnroll:i,onTeacherEnroll:o})=>{var p,y,g,d,T;const[a,l]=B.useState(null),[u,h]=B.useState(null),m=O=>{O.stopPropagation(),h(null),r?o==null||o(O):i==null||i(O)};return c.jsxs(S.Box,{sx:{display:"flex",gap:1},children:[n&&c.jsxs(c.Fragment,{children:[c.jsx(S.Tooltip,{title:r?"Manage enrollments":"Enroll in course",children:c.jsx(S.IconButton,{size:"small",color:"success",onClick:O=>{O.stopPropagation(),h(O.currentTarget)},sx:{width:28,height:28,padding:0},children:r?c.jsx(ch,{sx:{fontSize:18}}):c.jsx(ih,{sx:{fontSize:18}})})}),c.jsxs(S.Menu,{anchorEl:u,open:!!u,onClose:O=>{O.stopPropagation(),h(null)},anchorOrigin:{vertical:"top",horizontal:"center"},transformOrigin:{vertical:"bottom",horizontal:"center"},children:[c.jsxs(S.MenuItem,{dense:!0,disabled:!0,children:[c.jsx(S.ListItemIcon,{children:c.jsx(lh,{fontSize:"small"})}),c.jsx(S.ListItemText,{primary:`${((y=(p=t.data)==null?void 0:p.enrollmentData)==null?void 0:y.length)||0}/${(g=t.enrollment)==null?void 0:g.status.maxStudents} enrolled`,primaryTypographyProps:{variant:"body2"}})]}),c.jsx(S.Divider,{}),c.jsx(S.MenuItem,{dense:!0,onClick:m,children:r?"Manage Student Enrollments":"Enroll Now"})]})]}),r&&c.jsx(S.Tooltip,{title:"Course settings",children:c.jsx(S.IconButton,{size:"small",onClick:s,sx:{color:e,width:28,height:28,padding:0},children:c.jsx(nh,{sx:{fontSize:18}})})}),c.jsxs(c.Fragment,{children:[c.jsx(S.Tooltip,{title:"Course details",children:c.jsx(S.IconButton,{size:"small",onClick:O=>{O.stopPropagation(),l(O.currentTarget)},sx:{color:e,width:28,height:28,padding:0},children:c.jsx(sh,{sx:{fontSize:18}})})}),c.jsxs(S.Menu,{anchorEl:a,open:!!a,onClose:O=>{O.stopPropagation(),l(null)},anchorOrigin:{vertical:"top",horizontal:"center"},transformOrigin:{vertical:"bottom",horizontal:"center"},children:[c.jsxs(S.MenuItem,{dense:!0,disabled:!0,children:[c.jsx(S.ListItemIcon,{children:c.jsx(oh,{fontSize:"small"})}),c.jsx(S.ListItemText,{primary:(d=t.studyModule)==null?void 0:d.level,primaryTypographyProps:{variant:"body2"}})]}),c.jsxs(S.MenuItem,{dense:!0,disabled:!0,children:[c.jsx(S.ListItemIcon,{children:c.jsx(uh,{fontSize:"small"})}),c.jsx(S.ListItemText,{primary:`${(T=t.studyModule)==null?void 0:T.credits} credits`,primaryTypographyProps:{variant:"body2"}})]}),c.jsxs(S.MenuItem,{dense:!0,disabled:!0,children:[c.jsx(S.ListItemIcon,{children:c.jsx(ah,{fontSize:"small"})}),c.jsx(S.ListItemText,{primary:t.language,primaryTypographyProps:{variant:"body2"}})]})]})]})]})},sa=({course:t,displayMode:e="course",onClick:r})=>{var I,E,w,C,V,q;const{setOpenDialog:n}=$.useDialogStore(),{setCourseToUpdate:s,setCurrentCourse:i}=Oe(),o=t.code.split(".")[0],a=Er[o]||Er["COMP.CS"],l=((I=t.studyModule)==null?void 0:I.level)||"basic",u=a.levelShades[l],h=((w=(E=t.data)==null?void 0:E.myData)==null?void 0:w.role)==="teacher",p=!!(!(((V=(C=t.data)==null?void 0:C.myData)==null?void 0:V.status)==="enrolled")&&((q=t.enrollment)!=null&&q.status.open)),y=!!t.events.lecture.some(G=>new Date(G.startTime)>new Date),[g,d]=B.useState(!1),T=G=>{G.stopPropagation(),s(t),n("CourseSettings")},O=G=>{G.stopPropagation(),n("ManageEnrollments")},j=()=>{i(t),r(t)};return c.jsxs(S.Card,{elevation:0,sx:{marginLeft:2,marginRight:2,boxSizing:"border-box",position:"relative",cursor:"pointer",flex:"1",backgroundColor:`${u}08`,borderLeft:`4px solid ${u}`,transition:"all 0.3s cubic-bezier(0.4, 0, 0.2, 1)",overflow:"hidden",height:"100%","&:hover":{backgroundColor:`${u}15`,"& .subject-icon":{opacity:.15,transform:"scale(1.1)"}}},onClick:j,children:[!g&&c.jsx(S.Skeleton,{variant:"rectangular",sx:{position:"absolute",right:-10,bottom:-10,width:"80px",height:"80px",opacity:.08,transition:"all 0.3s ease-in-out"},animation:"wave"}),c.jsx(S.Box,{component:"img",className:"subject-icon",src:a.icon,alt:o,loading:"lazy",onLoad:()=>d(!0),sx:{position:"absolute",right:-10,bottom:-10,width:"80px",height:"80px",transition:"opacity 0.3s ease-in-out",filter:`drop-shadow(0 0 1px ${u})`,opacity:.08}}),c.jsx(S.Box,{sx:{p:1,height:"100%",display:"flex",flexDirection:"column"},children:c.jsxs(S.Box,{sx:{display:"flex",flexDirection:"column",justifyContent:"space-between",height:"100%"},children:[c.jsx(eh,{course:t}),c.jsxs(S.Box,{sx:{width:"100%",display:"flex",justifyContent:"space-between",alignItems:"center",mt:"auto"},children:[c.jsx(rh,{course:t,displayMode:e,hasUpcomingEvents:y}),c.jsx(dh,{course:t,courseColor:u,isTeacher:h,showEnrollmentOpen:p,onSettingsClick:T,onEnroll:G=>{G.stopPropagation(),n("EnrollInCourse")},onTeacherEnroll:O})]})]})})]})},fh=()=>{const{code:t}=$.useParams(),e=$.useNavigate(),{courses:r,currentCourse:n}=Oe(),s=r.filter(o=>o.code===t),i=o=>{e(`${o.instance}`)};return c.jsxs(S.Box,{sx:{p:3,display:"flex",flexDirection:"column",gap:2},children:[c.jsx($.CenteredHeading,{heading:"Course Instances",subheading:"Below are all the instances of the selected course. Select an instance to view its content."}),s.map(o=>c.jsx(sa,{course:o,isSelected:(n==null?void 0:n.id)===o.id,displayMode:"course",onClick:i},o.id))," "]})},hh=()=>{const{instance:t,code:e}=$.useParams(),{fetchState:r,courses:n,setCurrentCourse:s}=Oe(),{addNotificationData:i}=$.useNotificationStore(),o=$.useNavigate();return B.useEffect(()=>{if(r==="loading"||!n.length)return;const a=n.find(l=>l.code===e&&l.instance===t);a?s(a):(i({type:"error",message:"Course Instance not found"}),o("/"+e))},[t,e,n,r,s,i,o]),r==="loading"?c.jsx($.LoadingScreen,{}):c.jsx($.Outlet,{})},mh=({item:t,onToggleService:e,isUsed:r})=>{var a;const n=S.useTheme(),s=$.useNavigate(),i=t.iconFC,o=t.icon?t.icon:i?c.jsx(i,{fontSize:"large"}):null;return c.jsxs(S.Card,{"data-testid":"tool-card",sx:{position:"relative",height:"auto",cursor:"pointer",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"stretch",transition:"all 0.2s ease-in-out",transform:"scale(1)",bgcolor:"background.paper","&:hover":{transform:"scale(1.02)",boxShadow:n.shadows[8],bgcolor:l=>l.palette.primary.main+"20",color:"primary.main"},"&:hover .toggle-button":{display:"inline-flex"}},children:[c.jsx(S.CardActionArea,{sx:{height:"100%",display:"flex",flexDirection:"column",justifyContent:"top"},onClick:()=>s(t.segment),children:c.jsxs(S.CardContent,{sx:{display:"flex",flexDirection:"column",alignItems:"center",gap:2,p:3,maxWidth:300,flex:1},children:[c.jsx(S.Box,{sx:{color:"inherit"},children:o}),c.jsx(S.Typography,{variant:"h6",children:t.title}),c.jsx(S.Typography,{variant:"body2",color:"text.secondary",align:"center",children:(a=t.metadata)==null?void 0:a.description})]})}),e&&c.jsx(S.Tooltip,{title:r?"Remove":"Add",arrow:!0,children:c.jsx(S.Button,{className:"toggle-button",sx:{display:"none",position:"absolute",top:8,right:8,minWidth:32,padding:0,fontSize:"1.25rem"},onClick:()=>e(t.segment),children:r?"-":"+"})})]})},yn=({show:t,onToggleService:e,navItems:r,roleCheck:n,isUsed:s})=>{var o,a;const{currentCourse:i}=Oe();return c.jsx(S.Box,{sx:{p:3},"data-testid":"tool-selector",children:c.jsx(S.Fade,{in:t,timeout:500,children:c.jsx(S.Box,{children:c.jsxs(S.Box,{sx:{display:"flex",flexDirection:"row",flexWrap:"wrap",alignItems:"stretch",justifyContent:"center",height:"fit-content",width:"100%",gap:4},children:[r.length===0&&c.jsxs(S.Box,{sx:{display:"flex",justifyContent:"center",alignItems:"center",flexDirection:"column",width:"100%",height:"100%",color:"text.secondary"},children:[c.jsxs(S.Typography,{variant:"h5",sx:{mb:4},children:["No tools available ",n?"for your role":""]}),n&&((a=(o=i==null?void 0:i.data)==null?void 0:o.myData)==null?void 0:a.role)==="student"&&c.jsx(S.Typography,{variant:"body1",sx:{mb:4},children:"Please let your teacher know if you need access to any tools."})]}),r.map(l=>{var u,h,m,p;return!n||n&&((p=(u=l.metadata)==null?void 0:u.forRoles)!=null&&p.includes(((m=(h=i==null?void 0:i.data)==null?void 0:h.myData)==null?void 0:m.role)||""))?c.jsx(mh,{item:l,onToggleService:e,isUsed:s},l.segment):null})]})})})})},ph=()=>{const{currentCourse:t,updateStateCourse:e}=Oe(),{addNotificationData:r}=$.useNotificationStore(),[n,s]=B.useState((t==null?void 0:t.ltiLoginUrl)||""),[i,o]=B.useState(!1),a=async l=>{if(l.preventDefault(),!t)return;const u=n.trim();if(!u){r({type:"error",message:"Please provide a valid URL"});return}o(!0);try{if((await e({...t,ltiLoginUrl:u})).ltiLoginUrl===u)r({type:"success",message:"LTI Login URL updated successfully."});else throw new Error("Failed to verify update")}catch(h){console.error("Failed to update LTI Login URL:",h),r({type:"error",message:"Failed to update LTI Login URL. Please try again."})}finally{o(!1)}};return c.jsxs(S.Paper,{elevation:3,sx:{p:3,mt:4,mx:"auto",maxWidth:600,borderRadius:2,backgroundColor:"background.paper"},children:[c.jsx(S.Typography,{variant:"h6",color:"primary",gutterBottom:!0,sx:{mb:2},children:"Update LTI Login URL"}),c.jsx(S.Typography,{variant:"body2",color:"text.secondary",sx:{mb:3},children:"Please provide the LTI Login URL for this course. Students will be redirected to this URL when they need to authenticate."}),c.jsxs("form",{onSubmit:a,children:[c.jsx(S.TextField,{label:"LTI Login URL",variant:"outlined",fullWidth:!0,required:!0,value:n,onChange:l=>s(l.target.value),sx:{mb:3,"& .MuiOutlinedInput-root":{"&:hover fieldset":{borderColor:"primary.main"}}},helperText:"The URL where students will be redirected for LTI authentication"}),c.jsx(S.Box,{sx:{display:"flex",justifyContent:"flex-end"},children:c.jsx(S.Button,{type:"submit",variant:"contained",color:"primary",disabled:i,sx:{px:4,py:1,textTransform:"none",fontWeight:500},children:i?"Updating...":"Update URL"})})]})]})},yh=({microservices:t})=>{var O,j;const{instance:e,code:r}=$.useParams(),{updateStateCourse:n,currentCourse:s}=Oe(),{addNotificationData:i}=$.useNotificationStore(),[o,a]=B.useState(!0),{allCourseMicroserviceNavigation:l}=Jn(),[u,h]=B.useState(t);B.useEffect(()=>{!t&&r&&l?h(l):t&&h(t)},[t,r,e,l]);const[m,p]=B.useState([]),[y,g]=B.useState([]);B.useEffect(()=>{if(r&&e&&u){const I=u.filter(w=>{var C;return(C=s==null?void 0:s.services)==null?void 0:C.includes(w.segment)});p(I);const E=u.filter(w=>{var C;return!((C=s==null?void 0:s.services)!=null&&C.includes(w.segment))});g(E)}},[r,e,u,s]),B.useEffect(()=>{a(!1);const I=setTimeout(()=>a(!0),300);return()=>clearTimeout(I)},[s]);const d=((j=(O=s==null?void 0:s.data)==null?void 0:O.myData)==null?void 0:j.role)==="teacher";B.useEffect(()=>{s&&d&&!s.ltiLoginUrl&&i({type:"info",message:"The LTI Login URL is missing for this course."})},[s,d,i]);const T=async(I,E)=>{var V;if(!s)return;const w=E?((V=s.services)==null?void 0:V.filter(q=>q!==I))||[]:[...s.services||[],I],C={...s,services:w};await n(C)};return r?c.jsxs(c.Fragment,{children:[d&&!(s!=null&&s.ltiLoginUrl)&&c.jsx(ph,{}),d?c.jsxs(c.Fragment,{children:[c.jsx($.CenteredHeading,{heading:"Enabled Tools",subheading:"These tools are currently enabled for this course. Click on a tool to visit its page."}),c.jsx(yn,{show:o,title:"Enabled Tools",navItems:m,roleCheck:!0,onToggleService:I=>T(I,!0),isUsed:!0}),c.jsx($.CenteredHeading,{heading:"Available Tools",subheading:"These tools are available for this course. Click on a tool to enable it."}),c.jsx(yn,{show:o,title:"Available Tools",navItems:y,roleCheck:!0,onToggleService:I=>T(I,!1),isUsed:!1})]}):c.jsxs(c.Fragment,{children:[c.jsx($.CenteredHeading,{heading:"Course Tools",subheading:"These tools are available for this course. Click on a tool to visit its page."}),c.jsx(yn,{show:o,title:s!=null&&s.title?`${s.title} - Tools`:"Course Tools",navItems:m,roleCheck:!0})]})]}):c.jsx("h1",{children:"No course selected!"})},gn=({children:t})=>c.jsx(c.Fragment,{children:t}),gh=()=>{const{allCourseMicroserviceNavigation:t}=Jn();return fetch("http://127.0.0.1:7244/ingest/c66c732d-3054-49ac-a9c8-4251e2d751a6",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({location:"useCourseRoutes.tsx:29",message:"useCourseRoutes called",data:{navCount:t.length,navSegments:t.map(e=>e.segment)},timestamp:Date.now(),sessionId:"debug-session",runId:"run1",hypothesisId:"A"})}).catch(()=>{}),B.useMemo(()=>{var r,n;const e=[];return fetch("http://127.0.0.1:7244/ingest/c66c732d-3054-49ac-a9c8-4251e2d751a6",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({location:"useCourseRoutes.tsx:33",message:"Building routes",data:{navCount:t.length,hasChildren:t.some(s=>{var i;return(i=s.children)==null?void 0:i.length})},timestamp:Date.now(),sessionId:"debug-session",runId:"run1",hypothesisId:"B"})}).catch(()=>{}),e.push(c.jsxs($.Route,{path:":code",element:c.jsx(Xf,{}),children:[c.jsx($.Route,{index:!0,element:c.jsx(fh,{})}),c.jsxs($.Route,{path:":instance",element:c.jsx(hh,{}),children:[c.jsx($.Route,{index:!0,element:c.jsx(yh,{microservices:t})}),t.map(s=>{var i,o,a;return fetch("http://127.0.0.1:7244/ingest/c66c732d-3054-49ac-a9c8-4251e2d751a6",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({location:"useCourseRoutes.tsx:45",message:"Mapping nav route",data:{segment:s.segment,hasChildren:!!s.children,childrenCount:(i=s.children)==null?void 0:i.length,childSegments:(o=s.children)==null?void 0:o.map(l=>l.segment)},timestamp:Date.now(),sessionId:"debug-session",runId:"run1",hypothesisId:"C"})}).catch(()=>{}),c.jsxs($.Route,{path:s.segment,children:[c.jsx($.Route,{index:!0,element:c.jsxs(gn,{title:s.title,showTitle:s.showTitle,children:[s.children&&s.children.length>0&&c.jsx($.MicroserviceSubsections,{children:s.children}),s.view&&c.jsx(s.view,{})]})}),(a=s.children)==null?void 0:a.map(l=>{var u,h,m;return fetch("http://127.0.0.1:7244/ingest/c66c732d-3054-49ac-a9c8-4251e2d751a6",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({location:"useCourseRoutes.tsx:60",message:"Mapping child route",data:{parentSegment:s.segment,childSegment:l.segment,hasSubChildren:!!l.children,subChildrenCount:(u=l.children)==null?void 0:u.length,subChildSegments:(h=l.children)==null?void 0:h.map(p=>p.segment)},timestamp:Date.now(),sessionId:"debug-session",runId:"run1",hypothesisId:"D"})}).catch(()=>{}),c.jsxs($.Route,{path:l.segment,children:[c.jsx($.Route,{index:!0,element:c.jsxs(gn,{title:l.title,showTitle:l.showTitle,children:[l.children&&l.children.length>0&&c.jsx($.MicroserviceSubsections,{children:l.children}),l.view&&c.jsx(l.view,{})]})}),(m=l.children)==null?void 0:m.map(p=>c.jsx($.Route,{path:p.segment,element:c.jsx(gn,{title:p.title,showTitle:p.showTitle,children:p.view?c.jsx(p.view,{}):null})},p.segment))]},l.segment)})]},s.segment)})]})]},"course-routes")),fetch("http://127.0.0.1:7244/ingest/c66c732d-3054-49ac-a9c8-4251e2d751a6",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({location:"useCourseRoutes.tsx:102",message:"Routes built",data:{routeCount:e.length,firstRoutePath:(n=(r=e[0])==null?void 0:r.props)==null?void 0:n.path},timestamp:Date.now(),sessionId:"debug-session",runId:"run1",hypothesisId:"E"})}).catch(()=>{}),e},[t])},bh=()=>{const t=gh();return fetch("http://127.0.0.1:7244/ingest/c66c732d-3054-49ac-a9c8-4251e2d751a6",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({location:"CourseRoutesProvider.tsx:17",message:"CourseRoutesProvider render",data:{routeCount:t.length},timestamp:Date.now(),sessionId:"debug-session",runId:"run1",hypothesisId:"F"})}).catch(()=>{}),B.useEffect(()=>(fetch("http://127.0.0.1:7244/ingest/c66c732d-3054-49ac-a9c8-4251e2d751a6",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({location:"CourseRoutesProvider.tsx:20",message:"Registering route provider",data:{routeCount:t.length},timestamp:Date.now(),sessionId:"debug-session",runId:"run1",hypothesisId:"G"})}).catch(()=>{}),$.registerRouteProvider("course-routes",()=>t),()=>{$.unregisterRouteProvider("course-routes")}),[t]),null},vh=(t,e)=>{const r=n=>c.jsx(S.SvgIcon,{...n,sx:{backgroundColor:t,borderRadius:"50%",display:"flex",alignItems:"center",justifyContent:"center","& image":{transform:"scale(1)"}},viewBox:"0 0 24 24",children:c.jsx("image",{href:e.icon,width:"20",height:"20",x:"2",y:"2",preserveAspectRatio:"xMidYMid meet"})});return r.muiName="SvgIcon",r},Sh=t=>{var o;const e=t.code.split(".")[0],r=Er[e]||Er["COMP.CS"],n=((o=t.studyModule)==null?void 0:o.level)||"basic",s=r.levelShades[n],i=vh(s,r);return{segment:t.code,title:t.code.toUpperCase(),Icon:i,instances:[t.instance],description:t.description,microservices:t.services}},Th=()=>{const{learningCourses:t,learningCoursesOld:e,teachingCourses:r,teachingCoursesOld:n,availableCourses:s}=Oe(),i=B.useMemo(()=>[{courses:t,header:"Courses"},{courses:e,header:"Courses (Old)"},{courses:r,header:"Teaching Courses"},{courses:n,header:"Teaching Courses (Old)"},{courses:s,header:"Available Courses"}].filter(({courses:a})=>a&&a.length>0).map(({courses:a,header:l})=>({underHeader:l,pages:a.map(Sh)})),[t,e,r,n,s]);return c.jsx($.NavigationSectionBuilder,{sections:i})},xh=()=>{const{learningCourses:t}=Oe();return B.useEffect(()=>{if(t&&t.length>0){const e=[];t.forEach(r=>{Object.entries(r.events||{}).forEach(([n,s])=>{s.forEach(i=>{var o,a;e.push({id:i.id||`${r.code}-${n}-${Math.random()}`,title:i.title||`${r.title} - ${n}`,start:i.startTime,end:i.endTime||i.startTime,metadata:{source:"courses",courseCode:r.code,courseTitle:r.title,subject:((o=r.code)==null?void 0:o.split(".")[0])||"UNKNOWN",courseLevel:((a=r.studyModule)==null?void 0:a.level)||"basic",type:n,description:i.description,location:i.location}})})})}),$.eventBus.publish("courses",e)}else $.eventBus.removeSource("courses")},[t]),null},wh=({displayMode:t="instance",containerHeight:e="100%"})=>{const{currentCourse:r,learningCourses:n,learningCoursesOld:s,teachingCourses:i,teachingCoursesOld:o,availableCourses:a}=Oe(),l=$.useNavigate(),{visibleSections:u}=$.useNavigationStore(),h=200,m=300,p=u.Courses===!0,y=u["Courses (Old)"]===!0,g=u["Teaching Courses"]===!0,d=u["Teaching Courses (Old)"]===!0,T=u["Available Courses"]===!0,O=I=>{l(`/${I.code}/${I.instance}`)},j=(I,E,w)=>c.jsx($.Scroller,{direction:"horizontal",itemSize:m,containerSize:h,title:I,priority:w,children:E.map(C=>c.jsx(sa,{onClick:O,course:C,isSelected:(r==null?void 0:r.id)===C.id,displayMode:t},C.id))});return c.jsx(S.Box,{sx:{width:"100%",height:e},children:c.jsxs($.Scroller,{direction:"vertical",itemSize:h,containerSize:e,children:[p&&n.length>0&&j("My Enrolled Courses",n,"high"),y&&s.length>0&&j("My Completed Courses",s,"low"),g&&i.length>0&&j("My Teaching Courses",i,"low"),d&&o.length>0&&j("My Past Teaching",o,"low"),T&&a.length>0&&j("Available Courses",a,"low")]})})},Ch=()=>{fetch("http://127.0.0.1:7244/ingest/c66c732d-3054-49ac-a9c8-4251e2d751a6",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({location:"CourseManager.tsx:11",message:"CourseManager render - about to call useLocation",data:{timestamp:Date.now()},timestamp:Date.now(),sessionId:"debug-session",runId:"run1",hypothesisId:"M"})}).catch(()=>{});let t;try{t=$.useLocation(),fetch("http://127.0.0.1:7244/ingest/c66c732d-3054-49ac-a9c8-4251e2d751a6",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({location:"CourseManager.tsx:15",message:"useLocation succeeded",data:{pathname:t==null?void 0:t.pathname},timestamp:Date.now(),sessionId:"debug-session",runId:"run1",hypothesisId:"N"})}).catch(()=>{})}catch(p){fetch("http://127.0.0.1:7244/ingest/c66c732d-3054-49ac-a9c8-4251e2d751a6",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({location:"CourseManager.tsx:18",message:"useLocation failed",data:{error:p instanceof Error?p.message:String(p),errorName:p instanceof Error?p.name:"Unknown"},timestamp:Date.now(),sessionId:"debug-session",runId:"run1",hypothesisId:"O"})}).catch(()=>{}),t={pathname:typeof window<"u"?window.location.pathname:"/",search:"",hash:"",state:null,key:"default"}}const{getCourses:e,setCurrentCourseUrl:r,getCourseByUrl:n,courses:s,currentCourse:i,currentCourseCode:o,setCurrentCourse:a,setCurrentCourseCode:l,setCurrentCourseUrl:u}=Oe(),{registerGridItem:h,unregisterGridItem:m}=$.useGridItemContext();return $.useRetry({action:e,condition:s.length<1,successMessage:"Courses fetched successfully",errorMessage:"Failed to fetch courses, retrying..."}),B.useEffect(()=>{const p=async y=>{const{url:g}=y.data;if(g){r(g);try{await n(g)}catch(d){console.error("Failed to fetch course by URL:",d)}}};return window.addEventListener("message",p),()=>window.removeEventListener("message",p)},[n,r]),B.useEffect(()=>{t.pathname==="/"&&(i||o)&&(a(null),l(null),u(""))},[t.pathname,i,o,a,l,u]),B.useEffect(()=>{const p=$.createGridItem({id:"course-list",x:0,y:0,w:15,h:1,minW:1,minH:1,maxW:15,maxH:15});return h("course-list",c.jsx(wh,{displayMode:"instance",containerHeight:"100%"}),p),()=>{m("course-list")}},[h,m]),c.jsxs(c.Fragment,{children:[c.jsx(Th,{}),c.jsx(xh,{})]})},Oh=({children:t})=>c.jsxs(Qf,{children:[c.jsx(Ch,{}),t,c.jsx(bh,{})]});class Eh{constructor(){Qn(this,"listeners",[])}emit(e){this.listeners.forEach(r=>r(e))}subscribe(e){return this.listeners.push(e),()=>{this.listeners=this.listeners.filter(r=>r!==e)}}}const ia=new Eh,kh=t=>`${t.code}:${t.instance}`,Ih=async t=>{if(!t||!t.code||!t.instance){console.warn("Attempted to add invalid course to visited courses:",t);return}const e=$.userBus.getCurrentUserSync();if(!e)return;const r=e.preferences.lastVisitedCourses||[],n=kh(t),s=r.filter(o=>o!==n);s.unshift(n);const i=s.slice(0,5);try{await $.userBus.updateUser({...e,preferences:{...e.preferences,lastVisitedCourses:i}}),ia.emit(i)}catch(o){console.error("Failed to update visited courses:",o)}},Mh=()=>{const t=$.userBus.getCurrentUserSync();return(t==null?void 0:t.preferences.lastVisitedCourses)||[]},$h=t=>ia.subscribe(t);$.registerDialog("CourseSettings",ra);exports.CourseMicroservice=Oh;exports.CourseSettings=ra;exports.addVisitedCourse=Ih;exports.filterUniqueCourses=_a;exports.getVisitedCourses=Mh;exports.groupCoursesByEnrollment=Ei;exports.onVisitedCoursesUpdate=$h;exports.useCourseMicroserviceRegistration=Jn;exports.useCourseStore=Oe;
|