Files
WeatherStar4000/dist/resources/ws.min.js
2024-05-08 16:30:11 -05:00

1 line
129 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
(()=>{"use strict";var e={407:(e,t,n)=>{var s=n(929),r=n(739),a=n(325),i=n(594),o=n(940),l=n(260);document.addEventListener("DOMContentLoaded",(()=>{m()}));const c=["Land Features","Bay","Channel","Cove","Dam","Delta","Gulf","Lagoon","Lake","Ocean","Reef","Reservoir","Sea","Sound","Strait","Waterfall","Wharf","Amusement Park","Historical Monument","Landmark","Tourist Attraction","Zoo","College","Beach","Campground","Golf Course","Harbor","Nature Reserve","Other Parks and Outdoors","Park","Racetrack","Scenic Overlook","Ski Resort","Sports Center","Sports Field","Wildlife Reserve","Airport","Ferry","Marina","Pier","Port","Resort","Postal","Populated Place"].join(","),u="#txtAddress",d="#ToggleFullScreen",h="#btnGetGps",m=()=>{document.querySelector(u).addEventListener("focus",(e=>{e.target.select()})),(0,a.uL)(S),document.querySelector("#NavigateMenu").addEventListener("click",v),document.querySelector("#NavigateRefresh").addEventListener("click",k),document.querySelector("#NavigateNext").addEventListener("click",C),document.querySelector("#NavigatePrevious").addEventListener("click",T),document.querySelector("#NavigatePlay").addEventListener("click",M),document.querySelector(d).addEventListener("click",y);const e=document.querySelector(h);e.addEventListener("click",N),navigator.geolocation||(e.style.display="none"),document.querySelector("#divTwc").addEventListener("click",(()=>{document.fullscreenElement&&L()})),document.querySelector(u).addEventListener("keydown",(e=>{"Enter"===e.code&&t()})),document.querySelector("#btnGetLatLng").addEventListener("click",(()=>t())),document.addEventListener("keydown",x),document.addEventListener("touchmove",(e=>{document.fullscreenElement&&e.preventDefault()})),$(u).devbridgeAutocomplete({serviceUrl:"https://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer/suggest",deferRequestBy:300,paramName:"text",params:{f:"json",countryCode:"USA",category:c,maxSuggestions:10},dataType:"json",transformResult:e=>({suggestions:e.suggestions.map((e=>({value:e.text,data:e.magicKey})))}),minChars:3,showNoSuggestionNotice:!0,noSuggestionNotice:"No results found. Please try a different search string.",onSelect(e){f(e,this)},width:490});const t=()=>{const e=$(u).devbridgeAutocomplete();return e.suggestions[0]&&$(e.suggestionsContainer.children[0]).trigger("click"),!1},n=(0,o.d)(),s=n.latLonQuery&&n.latLon,r=n.latLonQuery??localStorage.getItem("latLonQuery"),i=n.latLon??localStorage.getItem("latLon"),m=localStorage.getItem("latLonFromGPS")&&!s;if(r&&i&&!m){document.querySelector(u).value=r,S(JSON.parse(i))}m&&N(),l.Z.kiosk.value="true"===n["settings-kiosk-checkbox"];const g=n["settings-kiosk-checkbox"]??localStorage.getItem("play");null!==g&&"true"!==g||I("navButton","play"),document.querySelector("#btnClearQuery").addEventListener("click",(()=>{document.querySelector("#spanCity").innerHTML="",document.querySelector("#spanState").innerHTML="",document.querySelector("#spanStationId").innerHTML="",document.querySelector("#spanRadarId").innerHTML="",document.querySelector("#spanZoneId").innerHTML="",document.querySelector("#chkAutoRefresh").checked=!0,localStorage.removeItem("autoRefresh"),localStorage.removeItem("play"),I("navButton","play"),localStorage.removeItem("latLonQuery"),localStorage.removeItem("latLon"),localStorage.removeItem("latLonFromGPS"),document.querySelector(h).classList.remove("active")})),document.querySelector("#container").addEventListener("swiped-left",(()=>b("left"))),document.querySelector("#container").addEventListener("swiped-right",(()=>b("right")))},f=async(e,t)=>{if(t.previousSuggestionValue===e.value)return;const n=(await(0,s.AV)("https://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer/find",{data:{text:e.value,magicKey:e.data,f:"json"}})).locations[0];n?(localStorage.removeItem("latLonFromGPS"),document.querySelector(h).classList.remove("active"),g(n.feature.geometry)):console.error("An unexpected error occurred. Please try a different search string.")},g=(e,t)=>{const n={lat:(0,i.Xp)(e.y,4),lon:(0,i.Xp)(e.x,4)};localStorage.setItem("latLonQuery",document.querySelector(u).value),localStorage.setItem("latLon",JSON.stringify(n)),S(n,t)},y=()=>(document.fullscreenElement?w():p(),(0,a.yA)()?(0,r.Z)(!0):(0,r.Z)(!1),L(),!1),p=()=>{const e=document.querySelector("#divTwc"),t=e.requestFullScreen||e.webkitRequestFullScreen||e.mozRequestFullScreen||e.msRequestFullscreen;t?t.call(e,{navigationUI:"hide"}):window.scrollTo(0,0),(0,a.SI)(),L();const n=document.querySelector(d);n.src="images/nav/ic_fullscreen_exit_white_24dp_2x.png",n.title="Exit fullscreen"},w=()=>{document.exitFullscreen?document.exitFullscreen():document.webkitExitFullscreen?document.webkitExitFullscreen():document.mozCancelFullScreen?document.mozCancelFullScreen():document.msExitFullscreen&&document.msExitFullscreen(),(0,a.SI)();const e=document.querySelector(d);e.src="images/nav/ic_fullscreen_white_24dp_2x.png",e.title="Enter fullscreen";const t=document.querySelector("#divTwcBottom");t.classList.remove("hidden"),t.classList.add("visible")},v=()=>(I("navButton","menu"),L(),!1),S=(e,t)=>{e&&(S.latLon=e);const{latLon:n}=S;n&&(document.querySelector(u).blur(),(0,a.QE)(),(0,a.un)(n,t))},b=e=>{if("left"===e)C();else T()},k=()=>((0,a.HC)(),S(),L(),!1),C=()=>(I("navButton","next"),L(),!1),T=()=>(I("navButton","previous"),L(),!1);let D=null;const L=()=>{document.activeElement.blur();const e=document.querySelector("#divTwcBottom");e.classList.remove("hidden"),e.classList.add("visible"),D&&(clearTimeout(D),D=null),D=setTimeout((()=>{document.fullscreenElement&&(e.classList.remove("visible"),e.classList.add("hidden"))}),2e3)},x=e=>{const{key:t}=e;if(document.fullscreenElement||document.activeElement===document.body)switch(t){case" ":return e.preventDefault(),M(),!1;case"ArrowRight":case"PageDown":return e.preventDefault(),C(),!1;case"ArrowLeft":case"PageUp":return e.preventDefault(),T(),!1;case"ArrowUp":return e.preventDefault(),v(),!1;case"0":return k(),!1;case"F":case"f":return y(),!1}return!1},M=()=>(I("navButton","playToggle"),L(),!1),I=(e,t={})=>{(0,a.yw)({type:e,message:t})},N=async()=>{if(!navigator.geolocation)return;const e=document.querySelector(h);if(e.classList.contains("active"))return e.classList.remove("active"),void localStorage.removeItem("latLonFromGPS");e.classList.add("active");const t=await(async()=>new Promise((e=>{navigator.geolocation.getCurrentPosition(e)})))(),{latitude:n,longitude:s}=t.coords,r=document.querySelector(u);r.value=`${(0,i.Xp)(n,4)}, ${(0,i.Xp)(s,4)}`,g({y:n,x:s},(e=>{const t=e.properties.relativeLocation.properties,a=`${t.city}, ${t.state}`;localStorage.setItem("latLon",JSON.stringify({lat:n,lon:s})),localStorage.setItem("latLonQuery",a),localStorage.setItem("latLonFromGPS",!0),r.value=`${t.city}, ${t.state}`}))}},428:(e,t,n)=>{n.d(t,{Z:()=>d});var s=n(138),r=n(732),a=n(38),i=n(159),o=n(325);class l extends i.Z{constructor(e,t){super(e,t,"Almanac",!0),this.backgroundImage0=(0,s.a)("images/BackGround3_1.png"),(0,s.b)("images/2/Full-Moon.gif"),(0,s.b)("images/2/Last-Quarter.gif"),(0,s.b)("images/2/New-Moon.gif"),(0,s.b)("images/2/First-Quarter.gif"),this.timing.totalScreens=1}async getData(e){const t=super.getData(e),n=e??this.weatherParameters,{sun:s,moon:r}=this.calcSunMoonData(n);this.data={sun:s,moon:r},this.getDataCallback(),t&&this.setStatus(a.ZP.loaded)}calcSunMoonData(e){const t=[SunCalc.getTimes(new Date,e.latitude,e.longitude),SunCalc.getTimes(r.ou.local().plus({days:1}).toJSDate(),e.latitude,e.longitude)],n=[];let s=r.ou.local().minus({days:1}),{phase:a}=SunCalc.getMoonIllumination(s.toJSDate()),i=0;do{const e=a;s=s.plus({days:1}),a=SunCalc.getMoonIllumination(s.toJSDate()).phase,e<.25&&a>=.25&&n.push(this.getMoonTransition(.25,"First",s)),e<.5&&a>=.5&&n.push(this.getMoonTransition(.5,"Full",s)),e<.75&&a>=.75&&n.push(this.getMoonTransition(.75,"Last",s)),e>a&&n.push(this.getMoonTransition(0,"New",s)),i+=1}while(i<=30&&n.length<4);return{sun:t,moon:n}}getMoonTransition(e,t,n,s=0){let r=n,{phase:a}=SunCalc.getMoonIllumination(r.toJSDate()),i=0;const o={hours:0===s?-1:0,minutes:1===s?1:0,seconds:2===s?-1:0,milliseconds:3===s?1:0};let l=(t,n)=>t<e&&n>=e;s%2==0&&(l=(t,n)=>t>e&&n<=e);do{const n=a;if(r=r.plus(o),a=SunCalc.getMoonIllumination(r.toJSDate()).phase,a>.9&&(a-=1),l(n,a)){if(s>=3)break;return this.getMoonTransition(e,t,r,s+1)}i+=1}while(i<1e3);return{phase:t,date:r}}async drawCanvas(){super.drawCanvas();const e=this.data,t=r.ou.local(),n=t.plus({days:1});this.elem.querySelector(".day-1").innerHTML=t.toLocaleString({weekday:"long"}),this.elem.querySelector(".day-2").innerHTML=n.toLocaleString({weekday:"long"}),this.elem.querySelector(".rise-1").innerHTML=r.ou.fromJSDate(e.sun[0].sunrise).toLocaleString(r.ou.TIME_SIMPLE).toLowerCase(),this.elem.querySelector(".rise-2").innerHTML=r.ou.fromJSDate(e.sun[1].sunrise).toLocaleString(r.ou.TIME_SIMPLE).toLowerCase(),this.elem.querySelector(".set-1").innerHTML=r.ou.fromJSDate(e.sun[0].sunset).toLocaleString(r.ou.TIME_SIMPLE).toLowerCase(),this.elem.querySelector(".set-2").innerHTML=r.ou.fromJSDate(e.sun[1].sunset).toLocaleString(r.ou.TIME_SIMPLE).toLowerCase();const s=e.moon.map((e=>{const t={},n=e.date.toLocaleString({month:"short",day:"numeric"});return t.date=n,t.type=e.phase,t.icon={type:"img",src:c(e.phase)},this.fillTemplate("day",t)})),a=this.elem.querySelector(".moon .days");a.innerHTML="",a.append(...s),this.finishDraw()}async getSun(){return new Promise((e=>{this.data&&e(this.data),this.getDataCallbacks.push(e)}))}}const c=e=>{switch(e){case"Full":return"images/2/Full-Moon.gif";case"Last":return"images/2/Last-Quarter.gif";case"New":return"images/2/New-Moon.gif";default:return"images/2/First-Quarter.gif"}},u=new l(9,"almanac");(0,o.G1)(u);const d=u.getSun.bind(u)},172:(e,t,n)=>{n.d(t,{Z:()=>p});var s=n(38),r=n(138),a=n(929),i=n(791),o=n(206),l=n(372),c=n(159),u=n(325),d=n(594);const h=["U","C","H","W","Y","T","S","M","O","L","A","F","B","N","V","R","D","E","I","G","J"];class m extends c.Z{constructor(e,t){super(e,t,"Current Conditions",!0),this.backgroundImage=(0,r.a)("images/BackGround1_1.png")}async getData(e){const t=super.getData(e),n=(e??this.weatherParameters).stations.filter((e=>4===e?.properties?.stationIdentifier?.length&&!h.includes(e.properties.stationIdentifier.slice(0,1))));let i,o,c=0;for(;!i&&c<n.length;){o=n[c],c+=1;try{if(i=await(0,a.AV)(`${o.id}/observations`,{cors:!0,data:{limit:2},retryCount:3,stillWaiting:()=>this.stillWaiting()}),null===i.features[0].properties.temperature.value||null===i.features[0].properties.windSpeed.value||null===i.features[0].properties.textDescription||""===i.features[0].properties.textDescription||null===i.features[0].properties.icon)throw i=void 0,new Error(`Unable to get observations: ${o.properties.stationIdentifier}, trying next station`)}catch(e){console.error(e)}}if(!i)return console.error("All current weather stations exhausted"),this.isEnabled&&this.setStatus(s.ZP.failed),void this.getDataCallback(void 0);this.data=g({...i,station:o}),this.getDataCallback(),t&&((0,r.b)((0,l.H8)(i.features[0].properties.icon)),this.setStatus(s.ZP.loaded))}async drawCanvas(){super.drawCanvas();let e=this.data.observations.textDescription;e.length>15&&(e=f(e));const t={temp:this.data.Temperature+String.fromCharCode(176),condition:e,wind:this.data.WindDirection.padEnd(3,"")+this.data.WindSpeed.toString().padStart(3," "),location:(0,o.a)(this.data.station.properties.name).substr(0,20),humidity:`${this.data.Humidity}%`,dewpoint:this.data.DewPoint+String.fromCharCode(176),ceiling:0===this.data.Ceiling?"Unlimited":this.data.Ceiling+this.data.CeilingUnit,visibility:this.data.Visibility+this.data.VisibilityUnit,pressure:`${this.data.Pressure} ${this.data.PressureDirection}`,icon:{type:"img",src:this.data.Icon}};this.data.WindGust&&(t["wind-gusts"]=`Gusts to ${this.data.WindGust}`),this.data.observations.heatIndex.value&&this.data.HeatIndex!==this.data.Temperature?(t["heat-index-label"]="Heat Index:",t["heat-index"]=this.data.HeatIndex+String.fromCharCode(176)):this.data.observations.windChill.value&&""!==this.data.WindChill&&this.data.WindChill<this.data.Temperature&&(t["heat-index-label"]="Wind Chill:",t["heat-index"]=this.data.WindChill+String.fromCharCode(176));const n=this.elem.querySelector(".main");n.innerHTML="",n.append(this.fillTemplate("weather",t)),this.finishDraw()}async getCurrentWeather(e){return e&&this.stillWaitingCallbacks.push(e),new Promise((e=>{this.data&&e(this.data),this.getDataCallbacks.push((()=>e(this.data)))}))}}const f=e=>{let t=e;return t=t.replace(/Light/g,"L"),t=t.replace(/Heavy/g,"H"),t=t.replace(/Partly/g,"P"),t=t.replace(/Mostly/g,"M"),t=t.replace(/Few/g,"F"),t=t.replace(/Thunderstorm/g,"T'storm"),t=t.replace(/ in /g,""),t=t.replace(/Vicinity/g,""),t=t.replace(/ and /g," "),t=t.replace(/Freezing Rain/g,"Frz Rn"),t=t.replace(/Freezing/g,"Frz"),t=t.replace(/Unknown Precip/g,""),t=t.replace(/L Snow Fog/g,"L Snw/Fog"),t=t.replace(/ with /g,"/"),t},g=e=>{const t=e.features[0].properties;e.observations=t,e.Temperature=Math.round(t.temperature.value),e.TemperatureUnit="C",e.DewPoint=Math.round(t.dewpoint.value),e.Ceiling=Math.round(t.cloudLayers[0]?.base?.value??0),e.CeilingUnit="m.",e.Visibility=Math.round(t.visibility.value/1e3),e.VisibilityUnit=" km.",e.WindSpeed=Math.round(t.windSpeed.value),e.WindDirection=(0,i.mt)(t.windDirection.value),e.Pressure=Math.round(t.barometricPressure.value),e.HeatIndex=Math.round(t.heatIndex.value),e.WindChill=Math.round(t.windChill.value),e.WindGust=Math.round(t.windGust.value),e.WindUnit="KPH",e.Humidity=Math.round(t.relativeHumidity.value),e.Icon=(0,l.H8)(t.icon),e.PressureDirection="",e.TextConditions=t.textDescription;const n=t.barometricPressure.value-e.features[1].properties.barometricPressure.value;return n>150&&(e.PressureDirection="R"),n<-150&&(e.PressureDirection="F"),e.Temperature=(0,d.NE)(e.Temperature),e.TemperatureUnit="F",e.DewPoint=(0,d.NE)(e.DewPoint),e.Ceiling=100*Math.round((0,d.AD)(e.Ceiling)/100),e.CeilingUnit="ft.",e.Visibility=(0,d.dp)(t.visibility.value/1e3),e.VisibilityUnit=" mi.",e.WindSpeed=(0,d.Kh)(e.WindSpeed),e.WindUnit="MPH",e.Pressure=(0,d.MO)(e.Pressure).toFixed(2),e.HeatIndex=(0,d.NE)(e.HeatIndex),e.WindChill=(0,d.NE)(e.WindChill),e.WindGust=(0,d.Kh)(e.WindGust),e},y=new m(1,"current-weather");(0,u.G1)(y);const p=y.getCurrentWeather.bind(y)},296:(e,t,n)=>{var s=n(206);var r=n(172),a=n(325);const i=String.fromCharCode(176);let o,l=0;const c=()=>{const e=(0,a.Dw)();e?.okToDrawCurrentConditions?(l=(l+1)%d.length,u()):"progress"===e?.elemId&&(l=0)},u=async()=>{const e=await(0,r.Z)();e&&h(d[l](e))},d=[e=>`Conditions at ${(0,s.a)(e.station.properties.name).substr(0,20)}`,e=>{let t=`Temp: ${e.Temperature}${i}${e.TemperatureUnit}`;return e.observations.heatIndex.value?t+=` Heat Index: ${e.HeatIndex}${i}${e.TemperatureUnit}`:e.observations.windChill.value&&(t+=` Wind Chill: ${e.WindChill}${i}${e.TemperatureUnit}`),t},e=>`Humidity: ${e.Humidity}% Dewpoint: ${e.DewPoint}${i}${e.TemperatureUnit}`,e=>`Barometric Pressure: ${e.Pressure} ${e.PressureDirection}`,e=>{let t=e.WindSpeed>0?`Wind: ${e.WindDirection} ${e.WindSpeed} ${e.WindUnit}`:"Wind: Calm";return e.WindGust>0&&(t+=` Gusts to ${e.WindGust}`),t},e=>{const t=`${e.Ceiling} ${e.CeilingUnit}`;return`Visib: ${e.Visibility} ${e.VisibilityUnit} Ceiling: ${0===e.Ceiling?"Unlimited":t}`}],h=e=>{var t,n;t=".weather-display .scroll .fixed",n=t=>{t.innerHTML=e},[...document.querySelectorAll(t)].forEach(n)};document.addEventListener("DOMContentLoaded",(()=>{o||(o=setInterval(c,4e3)),u()}))},582:(e,t,n)=>{var s=n(38),r=n(929),a=n(732),i=n(372),o=n(138),l=n(159),c=n(325);class u extends l.Z{constructor(e,t){super(e,t,"Extended Forecast",!0),this.timing.totalScreens=2}async getData(e){if(!super.getData(e))return;const t=e??this.weatherParameters;let n;try{n=await(0,r.AV)(t.forecast,{data:{units:"us"},retryCount:3,stillWaiting:()=>this.stillWaiting()})}catch(e){return console.error("Unable to get extended forecast"),console.error(e.status,e.responseJSON),void this.setStatus(s.ZP.failed)}this.data=d(n.properties.periods),this.screenIndex=0,this.setStatus(s.ZP.loaded)}async drawCanvas(){super.drawCanvas();const e=this.data.slice(0+3*this.screenIndex,3+3*this.screenIndex).map((e=>{const t={icon:{type:"img",src:e.icon},condition:e.text,date:e.dayName},{low:n}=e;void 0!==n&&(t["value-lo"]=Math.round(n));const{high:s}=e;return t["value-hi"]=Math.round(s),this.fillTemplate("day",t)})),t=this.elem.querySelector(".day-container");t.innerHTML="",t.append(...e),this.finishDraw()}}const d=e=>{const t=[0,1,2,3,4,5,6].map((e=>a.ou.local().startOf("day").plus({days:e}).toLocaleString({weekday:"short"})));let n=0;const s=[];return e.forEach((e=>{s[n]||s.push({dayName:"",low:void 0,high:void 0,text:void 0,icon:void 0});const r=s[n];r.icon=(0,i.H8)(e.icon),r.text=h(e.shortForecast),r.dayName=t[n],(0,o.b)(r.icon),e.isDaytime?(r.high=e.temperature,n+=1):r.low=e.temperature})),s},h=e=>{const t=[[/ and /gi," "],[/slight /gi,""],[/chance /gi,""],[/very /gi,""],[/patchy /gi,""],[/areas /gi,""],[/dense /gi,""],[/Thunderstorm/g,"T'Storm"]].reduce(((e,[t,n])=>e.replace(t,n)),e);let n=t.split(" ");-1!==t.indexOf("then")&&(n=t.split(" then "),n=n[1].split(" "));let s=n[0].substr(0,10),r="";n[1]&&(s.endsWith(".")?s=s.replace(/\./,""):r=n[1].substr(0,10),"Blowing"===r&&(r=""));let a=s;return""!==r&&(a+=` ${r}`),a};(0,c.G1)(new u(8,"extended-forecast"))},284:(e,t,n)=>{var s=n(38),r=n(929),a=n(159),i=n(325);const o={Extreme:10,Severe:5};class l extends a.Z{constructor(e,t,n){super(e,t,"Hazards",n),this.showOnProgress=!1,this.timing.totalScreens=0}async getData(e){const t=super.getData(e),n=this.checkbox.querySelector(".alert");n.classList.remove("show");try{const e=new URL("https://api.weather.gov/alerts/active");e.searchParams.append("point",`${this.weatherParameters.latitude},${this.weatherParameters.longitude}`),e.searchParams.append("limit",5);const t=(await(0,r.AV)(e,{retryCount:3,stillWaiting:()=>this.stillWaiting()})).features??[],s=t.sort(((e,t)=>(o[t.properties.severity]??0)-(o[e.properties.severity]??0))).filter((e=>"Unknown"!==e.properties.severity));this.data=s,this.data.length>0&&n.classList.add("show")}catch(e){return console.error("Get hourly forecast failed"),console.error(e.status,e.responseJSON),this.isEnabled&&this.setStatus(s.ZP.failed),void this.getDataCallback(void 0)}this.getDataCallback(),t?this.drawLongCanvas():this.setStatus(s.ZP.loaded)}async drawLongCanvas(){const e=this.elem.querySelector(".hazard-lines");e.innerHTML="";const t=this.data.map((e=>{const t={};return t["hazard-text"]=`${e.properties.event}<br/><br/>${e.properties.description.replaceAll("\n\n","<br/><br/>").replaceAll("\n"," ")}`,this.fillTemplate("hazard",t)}));if(e.append(...t),0===t.length)return this.setStatus(s.ZP.loaded),this.timing.totalScreens=0,void this.setStatus(s.ZP.loaded);this.timing.baseDelay=20;const n=Math.max(Math.ceil(e.scrollHeight/400)-3,1);this.timing.delay=[550];for(let e=0;e<n;e+=1)this.timing.delay.push(400);this.timing.delay.push(250),this.calcNavTiming(),this.setStatus(s.ZP.loaded)}drawCanvas(){super.drawCanvas(),this.finishDraw()}showCanvas(){this.drawCanvas(),super.showCanvas()}screenIndexChange(){this.baseCountChange(this.navBaseCount)}baseCountChange(e){let t=Math.min(this.elem.querySelector(".hazard-lines").getBoundingClientRect().height-390,e-150);t<0&&(t=0),this.elem.querySelector(".main").scrollTo(0,t)}async getCurrentData(e){return e&&this.stillWaitingCallbacks.push(e),new Promise((e=>{this.data&&e(this.data),this.getDataCallbacks.push((()=>e(this.data)))}))}}(0,i.G1)(new l(0,"hazards",!0))},967:(e,t,n)=>{var s=n(38),r=n(583),a=n(159),i=n(325),o=n(732);class l extends a.Z{constructor(e,t,n){super(e,t,"Hourly Graph",n),document.addEventListener("DOMContentLoaded",(()=>{this.moveHeader()}))}moveHeader(){const e=this.fillTemplate("top-right",{});this.elem.querySelector(".header .right").append(e)}async getData(){if(!super.getData())return;const e=await(0,r.Z)((()=>this.stillWaiting()));if(void 0===e)return void this.setStatus(s.ZP.failed);const t=e.map((e=>e.temperature)),n=e.map((e=>e.probabilityOfPrecipitation)),a=e.map((e=>e.skyCover));this.data={skyCover:a,temperature:t,probabilityOfPrecipitation:n},this.setStatus(s.ZP.loaded)}drawCanvas(){this.image||(this.image=this.elem.querySelector(".chart img"));const e=285;this.image.width=532,this.image.height=e;const t=document.createElement("canvas");t.width=532,t.height=e;const n=t.getContext("2d");n.imageSmoothingEnabled=!1;const s=c(0,5,this.data.temperature.length-1,532),r=o.ou.now().startOf("hour");document.querySelector(".x-axis .l-1").innerHTML=h(r),document.querySelector(".x-axis .l-2").innerHTML=h(r.plus({hour:6})),document.querySelector(".x-axis .l-3").innerHTML=h(r.plus({hour:12})),document.querySelector(".x-axis .l-4").innerHTML=h(r.plus({hour:18})),document.querySelector(".x-axis .l-5").innerHTML=h(r.plus({hour:24}));const a=c(0,275,100,10),i=u(this.data.skyCover,s,a);d(i,n,{strokeStyle:"lightgrey",lineWidth:3});const l=u(this.data.probabilityOfPrecipitation,s,a);d(l,n,{strokeStyle:"aqua",lineWidth:3});const m=Math.min(...this.data.temperature),f=Math.max(...this.data.temperature),g=Math.round((m+f)/2),y=c(m,275,f,10),p=u(this.data.temperature,s,y);d(p,n,{strokeStyle:"red",lineWidth:3});const w=String.fromCharCode(176);this.elem.querySelector(".y-axis .l-1").innerHTML=(f+w).substring(0,3),this.elem.querySelector(".y-axis .l-2").innerHTML=(g+w).substring(0,3),this.elem.querySelector(".y-axis .l-3").innerHTML=(m+w).substring(0,3),this.image.src=t.toDataURL(),super.drawCanvas(),this.finishDraw()}}const c=(e,t,n,s)=>{const r=(s-t)/(n-e),a=t-r*e;return e=>r*e+a},u=(e,t,n)=>e.map(((e,s)=>[t(s),n(e)])),d=(e,t,n)=>{t.beginPath(),t.strokeStyle="black",t.lineWidth=(n?.lineWidth??2)+2,t.moveTo(e[0][0],e[0][1]),e.slice(1).forEach((e=>t.lineTo(e[0],e[1]+2))),t.stroke(),t.beginPath(),t.strokeStyle=n?.strokeStyle??"red",t.lineWidth=n?.lineWidth??2,t.moveTo(e[0][0],e[0][1]),e.slice(1).forEach((e=>t.lineTo(e[0],e[1]))),t.stroke()},h=e=>e.toFormat("ha").slice(0,-1);(0,i.G1)(new l(4,"hourly-graph"))},583:(e,t,n)=>{n.d(t,{Z:()=>p});var s=n(38),r=n(732),a=n(929),i=n(594),o=n(372),l=n(791),c=n(159),u=n(325),d=n(428);class h extends c.Z{constructor(e,t,n){super(e,t,"Hourly Forecast",n),this.timing.baseDelay=20;this.timing.delay=[450];for(let e=0;e<4;e+=1)this.timing.delay.push(300);this.timing.delay.push(150)}async getData(e){const t=super.getData(e);let n;try{n=await(0,a.AV)(e.forecastGridData,{retryCount:3,stillWaiting:()=>this.stillWaiting()})}catch(e){return console.error("Get hourly forecast failed"),console.error(e.status,e.responseJSON),this.isEnabled&&this.setStatus(s.ZP.failed),void this.getDataCallback(void 0)}this.data=await m(n.properties),this.getDataCallback(),t&&(this.setStatus(s.ZP.loaded),this.drawLongCanvas())}async drawLongCanvas(){const e=this.elem.querySelector(".hourly-lines");e.innerHTML="";const t=r.ou.local(),n=this.data.map(((e,n)=>{const s={},r=t.plus({hours:n}).toLocaleString({weekday:"short",hour:"numeric"});s.hour=r;const a=Math.round(e.temperature).toString().padStart(3),i=Math.round(e.apparentTemperature).toString().padStart(3);s.temp=a,a!==i&&(s.like=i);let o="Calm";if(e.windSpeed>0){const t=Math.round(e.windSpeed).toString();o=e.windDirection+Array(6-e.windDirection.length-t.length).join(" ")+t}return s.wind=o,s.icon={type:"img",src:e.icon},this.fillTemplate("hourly-row",s)}));e.append(...n)}drawCanvas(){super.drawCanvas(),this.finishDraw()}showCanvas(){this.drawCanvas(),super.showCanvas()}screenIndexChange(){this.baseCountChange(this.navBaseCount)}baseCountChange(e){let t=Math.min(this.elem.querySelector(".hourly-lines").getBoundingClientRect().height-289,e-150);t<0&&(t=0),this.elem.querySelector(".main").scrollTo(0,t)}async getCurrentData(e){return e&&this.stillWaitingCallbacks.push(e),new Promise((e=>{this.data&&e(this.data),this.getDataCallbacks.push((()=>e(this.data)))}))}}const m=async e=>{const t=g(e.temperature.values),n=g(e.apparentTemperature.values),s=g(e.windSpeed.values),r=g(e.windDirection.values),a=g(e.skyCover.values),o=g(e.weather.values),c=g(e.iceAccumulation.values),u=g(e.probabilityOfPrecipitation.values),d=g(e.snowfallAmount.values),h=await f(a,o,c,u,d,s);return t.map(((e,o)=>({temperature:(0,i.NE)(t[o]),apparentTemperature:(0,i.NE)(n[o]),windSpeed:(0,i.dp)(s[o]),windDirection:(0,l.mt)(r[o]),probabilityOfPrecipitation:u[o],skyCover:a[o],icon:h[o]})))},f=async(e,t,n,s,a,i)=>{const l=r.ou.local().startOf("hour"),c=(await(0,d.Z)()).sun,u=r.Xp.fromDateTimes(r.ou.fromJSDate(c[0].sunset),r.ou.fromJSDate(c[1].sunrise)),h=r.ou.fromJSDate(c[1].sunset);return e.map(((r,c)=>{const d=l.plus({hours:c}),m=u.contains(d)||d>h;return(0,o.V6)(e[c],t[c],n[c],s[c],a[c],i[c],m)}))},g=e=>{const t=r.ou.utc().startOf("hour").toMillis(),n=[];return e.forEach((e=>{let s=Date.parse(e.validTime.substr(0,e.validTime.indexOf("/")));const a=s+r.nL.fromISO(e.validTime.substr(e.validTime.indexOf("/")+1)).shiftTo("milliseconds").values.milliseconds;do{s>=t&&n.length<24&&n.push(e.value),s+=36e5}while(s<a&&n.length<24)})),n},y=new h(3,"hourly",!1);(0,u.G1)(y);const p=y.getCurrentData.bind(y)},372:(e,t,n)=>{n.d(t,{H8:()=>r,V6:()=>a,gD:()=>s});const s=(e,t)=>{const n=t??e.indexOf("/night/")>=0,s=e=>`images/r/${e}`;let r=e.toLowerCase().match(/[^/]+$/)[0].match(/(.*?)[&,.?]/)[1];const a=+(e.match(/,(\d{2,3})/)??[0,100])[1];if("dualimage"===r){const t=e.match(/&j=(.*)&/);[,r]=t}switch(r+(n?"-n":"")){case"skc":case"hot":case"haze":return s("Sunny.gif");case"skc-n":case"nskc":case"nskc-n":case"cold-n":return s("Clear-1992.gif");case"bkn":return s("Mostly-Cloudy-1994-2.gif");case"bkn-n":case"few-n":case"nfew-n":case"nfew":return s("Partly-Clear-1994-2.gif");case"sct":case"few":return s("Partly-Cloudy.gif");case"sct-n":case"nsct":case"nsct-n":return s("Mostly-Clear.gif");case"ovc":case"ovc-n":return s("Cloudy.gif");case"fog":case"fog-n":return s("Fog.gif");case"rain_sleet":case"sleet":case"sleet-n":return s("Sleet.gif");case"rain_showers":case"rain_showers_high":return s("Scattered-Showers-1994-2.gif");case"rain_showers-n":case"rain_showers_high-n":return s("Scattered-Showers-Night-1994-2.gif");case"rain":case"rain-n":return s("Rain-1992.gif");case"snow":case"snow-n":return s(a>50?"Heavy-Snow-1994-2.gif":"Light-Snow.gif");case"rain_snow":case"rain_snow-n":return s("Rain-Snow-1992.gif");case"snow_fzra":case"snow_fzra-n":return s("Freezing-Rain-Snow-1992.gif");case"fzra":case"fzra-n":case"rain_fzra":case"rain_fzra-n":return s("Freezing-Rain-1992.gif");case"snow_sleet":case"snow_sleet-n":return s("Snow and Sleet.gif");case"tsra_sct":case"tsra":return s("Scattered-Tstorms-1994-2.gif");case"tsra_sct-n":case"tsra-n":return s("Scattered-Tstorms-Night-1994-2.gif");case"tsra_hi":case"tsra_hi-n":case"hurricane":case"tropical_storm":return s("Thunderstorm.gif");case"wind":case"wind_few":case"wind_sct":case"wind_bkn":case"wind_ovc":case"wind-n":case"wind_few-n":case"wind_bkn-n":case"wind_ovc-n":return s("Wind.gif");case"wind_skc":return s("Sunny-Wind-1994.gif");case"wind_skc-n":case"wind_sct-n":return s("Clear-Wind-1994.gif");case"blizzard":case"blizzard-n":return s("Blowing Snow.gif");case"cold":return s("cold.gif");default:return console.log(`Unable to locate regional icon for ${r} ${e} ${n}`),!1}},r=(e,t)=>{if(!e)return!1;const n=e=>`images/${e}`,s=t??e.indexOf("/night/")>=0;let r=e.toLowerCase().match(/[^/]+$/)[0].match(/(.*?)[&,.?]/)[1];const a=+(e.match(/,(\d{2,3})/)??[0,100])[1];if("dualimage"===r){const t=e.match(/&j=(.*)&/);[,r]=t}switch(r+(s?"-n":"")){case"skc":case"hot":case"haze":case"cold":return n("CC_Clear1.gif");case"skc-n":case"nskc":case"nskc-n":case"cold-n":return n("CC_Clear0.gif");case"sct":case"few":case"bkn":return n("CC_PartlyCloudy1.gif");case"bkn-n":case"few-n":case"nfew-n":case"nfew":case"sct-n":case"nsct":case"nsct-n":return n("CC_PartlyCloudy0.gif");case"ovc":case"novc":case"ovc-n":return n("CC_Cloudy.gif");case"fog":case"fog-n":return n("CC_Fog.gif");case"rain_sleet":case"rain_sleet-n":case"sleet":case"sleet-n":return n("Sleet.gif");case"rain_showers":case"rain_showers_high":case"rain_showers-n":case"rain_showers_high-n":return n("CC_Showers.gif");case"rain":case"rain-n":return n("CC_Rain.gif");case"snow":case"snow-n":return n(a>50?"CC_Snow.gif":"CC_SnowShowers.gif");case"rain_snow":return n("CC_RainSnow.gif");case"snow_fzra":case"snow_fzra-n":case"fzra":case"fzra-n":case"rain_fzra":case"rain_fzra-n":return n("CC_FreezingRain.gif");case"snow_sleet":return n("Snow-Sleet.gif");case"tsra_sct":case"tsra":return n("EF_ScatTstorms.gif");case"tsra_sct-n":case"tsra-n":case"tsra_hi":case"tsra_hi-n":case"hurricane":case"tropical_storm":return n("CC_TStorm.gif");case"wind_few":case"wind_sct":case"wind_bkn":case"wind_ovc":case"wind_skc":case"wind_few-n":case"wind_bkn-n":case"wind_ovc-n":case"wind_skc-n":case"wind_sct-n":return n("CC_Windy.gif");case"blizzard":case"blizzard-n":return n("Blowing-Snow.gif");default:return console.log(`Unable to locate icon for ${r} ${e} ${s}`),!1}},a=(e,t,n,s,r,a,i=!1)=>{const o=e=>`images/r/${e}`;let l=!1,c=!1,u=!1,d=!1,h=!1;return t.forEach((e=>{e.weather&&(e.weather.toLowerCase().includes("thunder")&&(l=!0),e.weather.toLowerCase().includes("snow")&&(c=!0),e.weather.toLowerCase().includes("ice")&&(u=!0),e.weather.toLowerCase().includes("fog")&&(d=!0),e.weather.toLowerCase().includes("wind")&&(h=!0))})),o(n>0||u?"Freezing-Rain-1992.gif":r>10?a>30||h?"Blowing Snow.gif":"Heavy-Snow-1994.gif":(r>0||c)&&l?"ThunderSnow.gif":r>0||c?"Light-Snow.gif":l?"Thunderstorm.gif":s>70?"Rain-1992.gif":s>50?"Shower.gif":s>30?i?"Scattered-Showers-Night.gif":"Scattered-Showers-1994.gif":d?"Fog.gif":e>70?"Cloudy.gif":e>50?i?"Partly-Clear-1994.gif":"Mostly-Cloudy-1994.gif":e>30?i?"Mostly-Clear.gif":"Partly-Cloudy.gif":i?"Clear-1992.gif":"Sunny.gif")}},495:(e,t,n)=>{var s=n(791),r=n(929),a=n(38),i=n(206),o=n(594),l=n(159),c=n(325);class u extends l.Z{constructor(e,t){super(e,t,"Latest Observations",!0),this.MaximumRegionalStations=7}async getData(e){if(!super.getData(e))return;const t=e??this.weatherParameters,n=Object.keys(StationInfo).map((e=>{const n=StationInfo[e],r=(0,s.TE)(n.lat,n.lon,t.latitude,t.longitude);return{...n,distance:r}})).sort(((e,t)=>e.distance-t.distance)).slice(0,30),r=[];let i=Math.min(n.length,7),o=0;for(;r.length<7&&i<=n.length;){const e=await h(n.slice(o,i));r.push(...e),o+=i,i=Math.min(n.length+1,o+7-r.length)}this.data=r.slice(0,this.MaximumRegionalStations),0!==this.data.length?this.setStatus(a.ZP.loaded):this.setStatus(a.ZP.noData)}async drawCanvas(){super.drawCanvas();const e=this.data.sort(((e,t)=>e.Name<t.Name?-1:1));this.elem.querySelector(".column-headers .temp.english").classList.add("show"),this.elem.querySelector(".column-headers .temp.metric").classList.remove("show");const t=e.map((e=>{const t=(0,s.mt)(e.windDirection.value),n=Math.round((0,o.NE)(e.temperature.value)),r=Math.round((0,o.Kh)(e.windSpeed.value)),a={location:(0,i.a)(e.city).substr(0,14),temp:n,weather:d(e.textDescription).substr(0,9)};return a.wind=r>0?t+Array(6-t.length-r.toString().length).join(" ")+r.toString():"NA"===r?"NA":"Calm",this.fillTemplate("observation-row",a)})),n=this.elem.querySelector(".observation-lines");n.innerHTML="",n.append(...t),this.finishDraw()}}const d=e=>{let t=e;return t=t.replace(/Light/,"L"),t=t.replace(/Heavy/,"H"),t=t.replace(/Partly/,"P"),t=t.replace(/Mostly/,"M"),t=t.replace(/Few/,"F"),t=t.replace(/Thunderstorm/,"T'storm"),t=t.replace(/ in /,""),t=t.replace(/Vicinity/,""),t=t.replace(/ and /," "),t=t.replace(/Freezing Rain/,"Frz Rn"),t=t.replace(/Freezing/,"Frz"),t=t.replace(/Unknown Precip/,""),t=t.replace(/L Snow Fog/,"L Snw/Fog"),t=t.replace(/ with /,"/"),t},h=async e=>(await Promise.all(e.map((async e=>{try{const t=await(0,r.AV)(`https://api.weather.gov/stations/${e.id}/observations/latest`,{retryCount:1,stillWaiting:()=>(void 0).stillWaiting()});return null!==t.properties.temperature.value&&""!==t.properties.textDescription&&null!==t.properties.windSpeed.value&&{...t.properties,StationId:e.id,city:e.city}}catch(t){return console.log(`Unable to get latest observations for ${e.id}`),!1}})))).filter((e=>e));(0,c.G1)(new u(2,"latest-observations"))},748:(e,t,n)=>{var s=n(38),r=n(929),a=n(159),i=n(325);class o extends a.Z{constructor(e,t){super(e,t,"Local Forecast",!0),this.timing.baseDelay=5e3}async getData(e){if(!super.getData(e))return;const t=e??this.weatherParameters,n=await this.getRawData(t);if(!n)return void this.setStatus(s.ZP.failed);const r=l(n);this.screenTexts=r.map((e=>{let t=`${e.DayName.toUpperCase()}...`;return t+=e.Text.toUpperCase().replace("..."," "),t}));const a=this.screenTexts.map((e=>this.fillTemplate("forecast",{text:e}))),i=this.elem.querySelector(".forecasts");i.innerHTML="",i.append(...a),this.pageHeight=i.parentNode.scrollHeight,a.forEach((e=>{const t=Math.ceil(e.scrollHeight/this.pageHeight)*this.pageHeight;e.style.height=`${t}px`})),this.timing.totalScreens=i.scrollHeight/this.pageHeight,this.calcNavTiming(),this.setStatus(s.ZP.loaded)}async getRawData(e){try{return await(0,r.AV)(e.forecast,{data:{units:"us"},retryCount:3,stillWaiting:()=>this.stillWaiting()})}catch(t){return console.error(`GetWeatherForecast failed: ${e.forecast}`),console.error(t.status,t.responseJSON),this.setStatus(s.ZP.failed),!1}}async drawCanvas(){super.drawCanvas();const e=-this.screenIndex*this.pageHeight;this.elem.querySelector(".forecasts").style.top=`${e}px`,this.finishDraw()}}const l=e=>e.properties.periods.slice(0,6).map((e=>({DayName:e.name.toUpperCase(),Text:e.detailedForecast})));(0,i.G1)(new o(7,"local-forecast"))},325:(e,t,n)=>{n.d(t,{Dw:()=>M,EQ:()=>j,G1:()=>F,Gw:()=>Z,HC:()=>$,Nf:()=>v,Pl:()=>T,QE:()=>z,SI:()=>E,WI:()=>C,nI:()=>O,uL:()=>U,un:()=>H,yA:()=>k,yw:()=>w});var s=n(739),r=n(38),a=n(791),i=n(929),o=n(735),l=n(260);document.addEventListener("DOMContentLoaded",(()=>{p()}));const c=[];let u,d=!1;const h={},m=6e5,f="#chkAutoRefresh";let g=null,y=0;const p=async()=>{window.addEventListener("resize",E),E();const e=localStorage.getItem("autoRefresh");document.querySelector(f).checked=!e||"true"===e,document.querySelector(f).addEventListener("change",q),W()},w=e=>!!e.type&&("navButton"===e.type?N(e.message):console.error(`Unknown event ${e.type}`)),v=e=>{if(e.id<0)return;if(!u)return;if(u.drawCanvas(c,S()),c[0].status===r.ZP.loading)return;const t=c.findIndex((e=>e.enabled&&e.timing.totalScreens>0));0!==e.id||e.status!==r.ZP.failed&&e.status!==r.ZP.retrying||(e.id=t,e.status=c[t].status),0===e.id&&e.status===r.ZP.loaded&&0===c[0].timing.totalScreens&&(e.id=t,e.status=c[t].status),k()&&e.id===t&&e.status===r.ZP.loaded&&D(C.command.firstFrame),S()<c.length||P(new Date)},S=()=>c.reduce(((e,t)=>t.status!==r.ZP.loading?e+1:e),0),b=()=>{c.forEach((e=>e.hideCanvas()))},k=()=>d,C={response:{previous:Symbol("previous"),inProgress:Symbol("inProgress"),next:Symbol("next")},command:{firstFrame:Symbol("firstFrame"),previousFrame:Symbol("previousFrame"),nextFrame:Symbol("nextFrame"),lastFrame:Symbol("lastFrame")}},T=e=>{e.type===C.response.previous&&L(-1),e.type===C.response.next&&L(1)},D=e=>{const t=M();if(u.hideCanvas(),!t){let e,t=0;do{c[t].status===r.ZP.loaded&&c[t].timing.totalScreens>0&&(e=c[t]),t+=1}while(!e&&t<c.length);if(!e)return;return e.navNext(C.command.firstFrame),void e.showCanvas()}e===C.command.nextFrame&&M().navNext(),e===C.command.previousFrame&&M().navPrev()},L=e=>{const t=c.length,n=x();let s;for(let i=0;i<t&&(s=(0,a.re)(n+(i+1)*e,t),!(c[s].status===r.ZP.loaded&&c[s].timing.totalScreens>0));i+=1);if(s<=n&&A())return;const i=c[s];b(),e<0&&i.showCanvas(C.command.lastFrame),e>0&&i.showCanvas(C.command.firstFrame)},x=()=>c.findIndex((e=>e.active)),M=()=>c[x()],I=e=>{d=e;const t=document.querySelector("#NavigatePlay");localStorage.setItem("play",d),d?((0,s.Z)(!0),t.title="Pause",t.src="images/nav/ic_pause_white_24dp_2x.png"):((0,s.Z)(!1),t.title="Play",t.src="images/nav/ic_play_arrow_white_24dp_2x.png"),u&&d&&!M()&&D(C.command.firstFrame)},N=e=>{switch(e){case"play":I(!0);break;case"playToggle":I(!d);break;case"stop":I(!1);break;case"next":I(!1),D(C.command.nextFrame);break;case"previous":I(!1),D(C.command.previousFrame);break;case"menu":I(!1),u.showCanvas(),b();break;default:console.error(`Unknown navButton ${e}`)}},O=e=>c[e],E=()=>{const e=l.Z.wide.value?854:640,t=document.querySelector("#divTwcBottom").getBoundingClientRect().width/e,n=window.innerHeight/480,s=Math.min(t,n);s<1||document.fullscreenElement||l.Z.kiosk?document.querySelector("#container").style.transform=`scale(${s})`:document.querySelector("#container").style.transform="unset"},$=()=>{c.forEach((e=>{e.status=r.ZP.loading}))},F=e=>{c[e.navId]=e,W()},W=()=>{const e=document.querySelector("#enabledDisplays");if(!e)return;const t=c.map((e=>e.generateCheckbox(e.defaultEnabled))).filter((e=>e));e.innerHTML="",e.append(...t)},Z=e=>{u=e},V=e=>{document.querySelector("#spanCity").innerHTML=`${e.city}, `,document.querySelector("#spanState").innerHTML=e.state,document.querySelector("#spanStationId").innerHTML=e.stationId,document.querySelector("#spanRadarId").innerHTML=e.radarId,document.querySelector("#spanZoneId").innerHTML=e.zoneId},q=e=>{const{checked:t}=e.target;t?_():z(),localStorage.setItem("autoRefresh",t)},P=e=>{e?(document.querySelector("#spanLastRefresh").innerHTML=e.toLocaleString("en-US",{weekday:"short",month:"short",day:"numeric",year:"numeric",hour:"numeric",minute:"numeric",second:"numeric",timeZoneName:"short"}),document.querySelector(f).checked&&_()):document.querySelector("#spanLastRefresh").innerHTML="(none)"},H=(e,t)=>{(async(e,t)=>{const n=await(0,o.F)(e.lat,e.lon);"function"==typeof t&&t(n);const s=await(0,i.AV)(n.properties.observationStations),r=s.features[0].properties.stationIdentifier;let{city:a}=n.properties.relativeLocation.properties;const{state:l}=n.properties.relativeLocation.properties;r in StationInfo&&(a=StationInfo[r].city,[a]=a.split("/"),a=a.replace(/\s+$/,"")),h.latitude=e.lat,h.longitude=e.lon,h.zoneId=n.properties.forecastZone.substr(-6),h.radarId=n.properties.radarStation.substr(-3),h.stationId=r,h.weatherOffice=n.properties.cwa,h.city=a,h.state=l,h.timeZone=n.properties.timeZone,h.forecast=n.properties.forecast,h.forecastGridData=n.properties.forecastGridData,h.stations=s.features,V(h),b(),document.querySelector("#loading").style.display="none",u&&(await u.drawCanvas(),u.showCanvas()),c.forEach((e=>e.getData(h)))})(e,t),P(null)},_=()=>{if(g)return;y=0;const e=()=>{y+=500;let e=m-y;e<0&&(e=0);const t=new Date(e);document.querySelector("#spanRefreshCountDown").innerHTML=`${t.getMinutes().toString().padStart(2,"0")}:${t.getSeconds().toString().padStart(2,"0")}`,y>=m&&!k()&&R()};g=window.setInterval(e,500),e()},z=()=>{g&&(window.clearInterval(g),document.querySelector("#spanRefreshCountDown").innerHTML="--:--",g=null)},A=()=>!!(y>=m&&k())&&(R(),!0),R=()=>{R.callback&&R.callback()},U=e=>{R.callback=e},j=()=>h.timeZone},846:(e,t,n)=>{var s=n(138),r=n(38),a=n(159),i=n(325);class o extends a.Z{constructor(e,t){super(e,t,"",!1),this.backgroundImage=(0,s.a)("images/BackGround1_1.png"),this.timing=!1,document.addEventListener("DOMContentLoaded",(()=>{this.version=document.querySelector("#version").innerHTML,this.elem.querySelector(".container").addEventListener("click",this.lineClick.bind(this))})),this.okToDrawCurrentConditions=!1}async drawCanvas(e,t){if(!this.elem)return;if(super.drawCanvas(),this.progressCover||(this.progressCover=this.elem.querySelector(".scroll .cover")),!e)return;const n=e.map(((e,t)=>{if(!1===e.showOnProgress)return!1;const n={name:e.name},s=(0,r.f3)(e.status),a=this.fillTemplate("item",n);if(!a)return!1;const i=a.querySelector(".links");return i.classList.remove(...r.o7),i.classList.add(s),i.dataset.index=t,a})).filter((e=>e)),s=this.elem.querySelector(".container");s.innerHTML="",s.append(...n),this.finishDraw();const a=t/e.length;this.progressCover.style.width=100*(1-a)+"%",a<1?this.progressCover.parentNode.classList.add("show"):setTimeout((()=>this.progressCover.parentNode.classList.remove("show")),1e3)}lineClick(e){const t=e.target?.parentNode?.dataset?.index;if(void 0===t)return;const n=+t;(0,i.yw)("navButton");const s=(0,i.nI)(n);s&&s.status===r.ZP.loaded&&(s.showCanvas(i.WI.command.firstFrame),this.elem.classList.remove("show"))}}const l=new o(-1,"progress");(0,i.Gw)(l)},478:(e,t,n)=>{var s=n(38),r=n(732),a=n(138),i=n(929),o=n(737),l=n(159),c=n(325);class u extends l.Z{constructor(e,t){super(e,t,"Local Radar",!0),this.okToDrawCurrentConditions=!1,this.okToDrawCurrentDateTime=!1,this.dopplerRadarImageMax=6,this.timing.baseDelay=350,this.timing.delay=[{time:4,si:5},{time:1,si:0},{time:1,si:1},{time:1,si:2},{time:1,si:3},{time:1,si:4},{time:4,si:5},{time:1,si:0},{time:1,si:1},{time:1,si:2},{time:1,si:3},{time:1,si:4},{time:4,si:5},{time:1,si:0},{time:1,si:1},{time:1,si:2},{time:1,si:3},{time:1,si:4},{time:12,si:5}]}async getData(e){if(!super.getData(e))return;const t=e??this.weatherParameters;if("AK"===t.state||"HI"===t.state)return void this.setStatus(s.ZP.noData);let n="images/4000RadarMap2.jpg";"HI"===t.State&&(n="images/HawaiiRadarMap2.png"),this.baseMap=await(0,a.a)(n);const l=[];let u=r.ou.utc().minus({days:1}).startOf("day");for(;u<=r.ou.utc().startOf("day");)l.push(`https://mesonet.agron.iastate.edu/archive/data/${u.toFormat("yyyy/LL/dd")}/GIS/uscomp/`),u=u.plus({days:1});const d=(await Promise.all(l.map((async e=>{try{return(0,i.fL)(e,{cors:!0})}catch(e){return console.log("Unable to get list of radars"),console.error(e),this.setStatus(s.ZP.failed),!1}})))).filter((e=>e)).flatMap(((e,t)=>{const n=(new DOMParser).parseFromString(e,"text/html"),s=n.createElement("base");s.href=l[t],n.head.append(s);const r=n.querySelectorAll("a"),a=[];return Array.from(r).forEach((e=>{e.innerHTML?.match(/n0r_\d{12}\.png/)&&a.push(e.href)})),a})),h=/_(\d{12})\.png/,m=d.sort(((e,t)=>e.match(h)[1]<t.match(h)[1]?-1:1)).slice(-this.dopplerRadarImageMax);let f=120,g=69;const y=2550;f*=2,g*=2;const p=((e,t,n)=>{let s=0,r=0;return s=55.2*(51.75-e.latitude),s-=n,s>3200-2*n?s=3200-2*n:s<0&&(s=0),r=41.775*(-130.37-e.longitude)*-1,r-=t,r>5100-2*t?r=5100-2*t:r<0&&(r=0),{x:2*r,y:2*s}})(t,240,138),w=document.createElement("canvas");w.width=y,w.height=1600;const v=w.getContext("2d");v.imageSmoothingEnabled=!1;const S=((e,t,n)=>{let s=0,r=0;return s=61.4481*(51-e.latitude),s-=n,s>6e3-2*n?s=6e3-2*n:s<0&&(s=0),r=42.1768*(-129.138-e.longitude)*-1,r-=t,r>2800-2*t?r=2800-2*t:r<0&&(r=0),{x:2*r,y:2*s}})(t,240,138),b=S.x/2,k=S.y/2,C=await Promise.all(m.map((async e=>{const t=document.createElement("canvas");t.width=640,t.height=367;const n=t.getContext("2d");n.imageSmoothingEnabled=!1;const s=await fetch((0,o.d)(e));if(!s.ok)throw new Error(`Unable to fetch radar error ${s.status} ${s.statusText} from ${s.url}`);const i=await s.blob(),l=e.match(/_(\d{4})(\d\d)(\d\d)(\d\d)(\d\d)\./);let u;if(l){const[,e,t,n,s,a]=l;u=r.ou.fromObject({year:e,month:t,day:n,hour:s,minute:a},{zone:"UTC"}).setZone()}else u=r.ou.fromHTTP(s.headers.get("last-modified")).setZone((0,c.EQ)());const d=await(0,a.a)(i);v.clearRect(0,0,y,1600),v.drawImage(d,0,0,y,1600),n.drawImage(await this.baseMap,p.x,p.y,480,276,0,0,640,367);const h=document.createElement("canvas");h.width=640,h.height=367;const m=h.getContext("2d",{willReadFrequently:!0});m.imageSmoothingEnabled=!1,m.drawImage(w,b,k,240,163.1,0,0,640,367),(e=>{const t=e.getImageData(0,0,e.canvas.width,e.canvas.height);for(let e=0;e<t.data.length;e+=4){let n=t.data[e],s=t.data[e+1],r=t.data[e+2],a=t.data[e+3];0===n&&0===s&&0===r||0===n&&236===s&&236===r||1===n&&160===s&&246===r||0===n&&0===s&&246===r?(n=0,s=0,r=0,a=0):0===n&&255===s&&0===r?(n=49,s=210,r=22,a=255):0===n&&200===s&&0===r?(n=0,s=142,r=0,a=255):0===n&&144===s&&0===r?(n=20,s=90,r=15,a=255):255===n&&255===s&&0===r?(n=10,s=40,r=10,a=255):231===n&&192===s&&0===r?(n=196,s=179,r=70,a=255):255===n&&144===s&&0===r?(n=190,s=72,r=19,a=255):214===n&&0===s&&0===r||255===n&&0===s&&0===r?(n=171,s=14,r=14,a=255):(192===n&&0===s&&0===r||255===n&&0===s&&255===r)&&(n=115,s=31,r=4,a=255),t.data[e]=n,t.data[e+1]=s,t.data[e+2]=r,t.data[e+3]=a}e.putImageData(t,0,0)})(m),((e,t)=>{const n=e.getImageData(0,0,e.canvas.width,e.canvas.height),s=t.getImageData(0,0,t.canvas.width,t.canvas.height);for(let e=0;e<s.data.length;e+=4)n.data[e]<116&&n.data[e+1]<116&&n.data[e+2]<116&&(s.data[e]=0,s.data[e+1]=0,s.data[e+2]=0,s.data[e+3]=0);t.putImageData(s,0,0),e.drawImage(t.canvas,0,0)})(n,m);const f=this.fillTemplate("frame",{map:{type:"img",src:t.toDataURL()}});return{canvas:t,time:u,elem:f}}))),T=this.elem.querySelector(".scroll-area");T.innerHTML="",T.append(...C.map((e=>e.elem))),this.timing.totalScreens=C.length,this.data=C.map((e=>e.canvas)),this.times=C.map((e=>e.time)),this.setStatus(s.ZP.loaded)}async drawCanvas(){super.drawCanvas();const e=this.times[this.screenIndex].toLocaleString(r.ou.TIME_SIMPLE),t=e.length>=8?e:`&nbsp;${e}`;this.elem.querySelector(".header .right .time").innerHTML=t;const n=this.elem.querySelector(".frame").scrollHeight;this.elem.querySelector(".scroll-area").style.top=-this.screenIndex*n+"px",this.finishDraw()}}(0,c.G1)(new u(10,"radar"))},257:(e,t,n)=>{var s=n(38),r=n(791),a=n(929),i=n(594),o=n(372),l=n(138),c=n(732),u=n(159),d=n(325);const h=(e,t,n)=>({daytime:e.isDaytime,temperature:e.temperature||0,name:v(t.city),icon:e.icon,x:n.x,y:n.y,time:e.startTime}),m=(e,t,n,s)=>{let r=0,a=0;return r=56*(73-e),r-=s,r>1142-2*s?r=1142-2*s:r<0&&(r=0),a=25*(-175-t)*-1,a-=n,a>1200-2*n?a=1200-2*n:a<0&&(a=0),{x:a,y:r}},f=(e,t,n,s)=>{let r=0,a=0;return r=55.2*(25-e),r-=s,r>571-2*s?r=571-2*s:r<0&&(r=0),a=41.775*(-164.5-t)*-1,a-=n,a>600-2*n?a=600-2*n:a<0&&(a=0),{x:a,y:r}},g=(e,t,n,s)=>({minLat:-1*((t+2*s)/56-73),maxLat:-1*(t/56-73),minLon:-1*(-1*e/25+175),maxLon:-1*(-1*(e+2*n)/25+175)}),y=(e,t,n,s)=>({minLat:-1*((t+2*s)/55.2-25),maxLat:-1*(t/55.2-25),minLon:-1*(-1*e/41.775+164.5),maxLon:-1*(-1*(e+2*n)/41.775+164.5)}),p=(e,t,n)=>{let s=37*(e.lon-n),r=70*(t-e.lat);return r<30&&(r=30),r>282&&(r=282),s<40&&(s=40),s>580&&(s=580),{x:s,y:r}},w=(e,t,n)=>{let s=57*(e.lon-n),r=70*(t-e.lat);return r<30&&(r=30),r>282&&(r=282),s<40&&(s=40),s>580&&(s=580),{x:s,y:r}},v=e=>e.match(/[^,/;\\-]*/)[0].substr(0,12);var S=n(735);class b extends u.Z{constructor(e,t){super(e,t,"Regional Forecast",!0),this.timing.totalScreens=3}async getData(e){if(!super.getData(e))return;const t=e??this.weatherParameters;let n="images/Basemap2.png";"HI"===t.state?n="images/HawaiiRadarMap4.png":"AK"===t.state&&(n="images/AlaskaRadarMap6.png"),this.elem.querySelector(".map img").src=n;const c={x:240,y:117},u=((e,t,n,s,r)=>{if("AK"===r)return m(e,t,n,s);if("HI"===r)return f(e,t,n,s);let a=0,i=0;return a=55.2*(50.5-e),a-=s,a>1600-2*s?a=1600-2*s:a<0&&(a=0),i=41.775*(-127.5-t)*-1,i-=n,i>2550-2*n?i=2550-2*n:i<0&&(i=0),{x:i,y:a}})(t.latitude,t.longitude,c.x,c.y,t.state),d=(S=u.x,b=u.y,C=c.x,T=c.y,"AK"===(D=t.state)?g(S,b,C,T):"HI"===D?y(S,b,C,T):{minLat:-1*((b+2*T)/55.2-50.5),maxLat:-1*(b/55.2-50.5),minLon:-1*(-1*S/41.775+127.5),maxLon:-1*(-1*(S+2*C)/41.775+127.5)});var S,b,C,T,D;let L=2.5;"HI"===t.state&&(L=1);const x=Object.values(StationInfo).map((e=>({...e,targetDistance:L}))),M=[...RegionalCities,...x],I=[];M.forEach((e=>{if(e.lat>d.minLat&&e.lat<d.maxLat&&e.lon>d.minLon&&e.lon<d.maxLon-1){const t=e.targetDistance||1;I.reduce(((n,s)=>{const a=(0,r.TE)(e.lon,e.lat,s.lon,s.lat);return n&&a>=t}),!0)&&I.push(e)}}));const N=await Promise.all(I.map((async e=>{try{const n=e?.point??await k(e.lat,e.lon);if(!n)throw new Error("No pre-loaded point");const s=(async(e,t)=>{try{const t=(await(0,a.AV)(`https://api.weather.gov/gridpoints/${e.wfo}/${e.x},${e.y}/stations`)).features[0].id,n=await(0,a.AV)(`${t}/observations/latest`);if(!n.properties.icon)return!1;const s=(0,o.gD)(n.properties.icon,!n.properties.daytime);return!!s&&((0,l.b)(s),n.properties)}catch(e){return console.log(`Unable to get regional observations for ${t.Name??t.city}`),console.error(e.status,e.responseJSON),!1}})(n,e),r=await(0,a.AV)(`https://api.weather.gov/gridpoints/${n.wfo}/${n.x},${n.y}/forecast`),c=((e,t,n,s)=>{"AK"===s&&p(e,t,n),"HI"===s&&w(e,t,n);let r=57*(e.lon-n),a=70*(t-e.lat);return a<30&&(a=30),a>282&&(a=282),r<40&&(r=40),r>580&&(r=580),{x:r,y:a}})(e,d.maxLat,d.minLon,t.state),u=await s;if(!u)return!1;const m={daytime:!!/\/day\//.test(u.icon),temperature:(0,i.NE)(u.temperature.value),name:v(e.city),icon:u.icon,x:c.x,y:c.y};return(0,l.b)((0,o.gD)(m.icon,!m.daytime)),[m,h(r.properties.periods[1],e,c),h(r.properties.periods[2],e,c)]}catch(t){return console.log(`No regional forecast data for '${e.name??e.city}'`),console.log(t),!1}}))),O=N.filter((e=>e));0!==O.length?(this.data={regionalData:O,offsetXY:c,sourceXY:u},this.setStatus(s.ZP.loaded)):this.setStatus(s.ZP.noData)}drawCanvas(){super.drawCanvas();const{regionalData:e,sourceXY:t,offsetXY:n}=this.data,s=this.elem.querySelector(".title.dual .top"),r=this.elem.querySelector(".title.dual .bottom");if(0===this.screenIndex)s.innerHTML="Regional",r.innerHTML="Observations";else{const t=c.ou.fromISO(e[0][this.screenIndex].time).toLocaleString({weekday:"long"});s.innerHTML="Forecast for",r.innerHTML=e[0][this.screenIndex].daytime?t:`${t} Night`}const a=640/(2*n.x);this.elem.querySelector(".map").style.transform=`scale(${a}) translate(-${t.x}px, -${t.y}px)`;const i=e.map((e=>{const t={},n=e[this.screenIndex];t.icon={type:"img",src:(0,o.gD)(n.icon,!n.daytime)},t.city=n.name;const{temperature:s}=n;t.temp=s;const{x:r,y:a}=n,i=this.fillTemplate("location",t);return i.style.left=`${r}px`,i.style.top=`${a}px`,i})),l=this.elem.querySelector(".location-container");l.innerHTML="",l.append(...i),this.finishDraw()}}const k=async(e,t)=>{const n=await(0,S.F)(e,t);return{x:n.properties.gridX,y:n.properties.gridY,wfo:n.properties.gridId}};(0,d.G1)(new b(6,"regional-forecast"))},260:(e,t,n)=>{n.d(t,{Z:()=>u});var s=n(940);const r="Settings";const a=class{constructor(e,t,n,r,a,i){this.shortName=e,this.name=t,this.defaultValue=r,this.myValue=r,this.type=n,this.sticky=i,this.changeAction=a??(()=>{});const o=(0,s.d)()?.[`settings-${e}-checkbox`];let l;void 0!==o&&(l="true"===o);const c=l??this.getFromLocalStorage();i&&null!==c&&(this.myValue=c),this.checkboxChange({target:{checked:this.myValue}})}generateCheckbox(){const e=document.createElement("label");e.for=`settings-${this.shortName}-checkbox`,e.id=`settings-${this.shortName}-label`;const t=document.createElement("input");t.type="checkbox",t.value=!0,t.id=`settings-${this.shortName}-checkbox`,t.name=`settings-${this.shortName}-checkbox`,t.checked=this.myValue,t.addEventListener("change",(e=>this.checkboxChange(e)));const n=document.createElement("span");return n.innerHTML=this.name,e.append(t,n),this.checkbox=e,e}checkboxChange(e){this.myValue=e.target.checked,this.storeToLocalStorage(this.myValue),this.changeAction(this.myValue)}storeToLocalStorage(e){if(!this.sticky)return;const t=localStorage?.getItem(r)??"{}",n=JSON.parse(t);n[this.shortName]=e,localStorage?.setItem(r,JSON.stringify(n))}getFromLocalStorage(){const e=localStorage?.getItem(r);try{if(e){const t=JSON.parse(e)?.[this.shortName];if(void 0!==t)switch(this.type){case"boolean":case"int":return t;default:return null}}}catch{return null}return null}get value(){return this.myValue}set value(e){this.myValue=e,this.checkbox.checked=e,this.storeToLocalStorage(this.myValue),this.changeAction(this.myValue)}};document.addEventListener("DOMContentLoaded",(()=>{o()}));const i={},o=()=>{i.wide=new a("wide","Widescreen","boolean",!1,l,!0),i.kiosk=new a("kiosk","Kiosk","boolean",!1,c,!1);const e=Object.values(i).map((e=>e.generateCheckbox())),t=document.querySelector("#settings");t.innerHTML="",t.append(...e)},l=e=>{const t=document.querySelector("#divTwc");e?t.classList.add("wide"):t.classList.remove("wide")},c=e=>{const t=document.querySelector("body");e?(t.classList.add("kiosk"),window.dispatchEvent(new Event("resize"))):t.classList.remove("kiosk")},u=i},940:(e,t,n)=>{n.d(t,{d:()=>i}),document.addEventListener("DOMContentLoaded",(()=>r()));const s={kiosk:"settings-kiosk-checkbox"},r=()=>{document.querySelector("#share-link").addEventListener("click",a)},a=async e=>{e.preventDefault();const t=document.querySelectorAll("input[type=checkbox]"),n={};[...t].forEach((e=>{e?.id&&(n[e.id]=e?.checked??!1)})),n.latLonQuery=localStorage.getItem("latLonQuery"),n.latLon=localStorage.getItem("latLon");const s=new URLSearchParams(n).toString(),r=new URL(`?${s}`,document.location.href);try{await navigator.clipboard.writeText(r.toString());const e=document.querySelector("#share-link-copied");e.style.display="inline",setTimeout((()=>{e.style.display="none"}),5e3)}catch(e){console.error(e)}},i=()=>{if(i.params)return i.params;const e=[...new URLSearchParams(window.location.search)];return e.forEach((t=>{const n=s[t[0]];n&&e.push([n,t[1]])})),i.params=Object.fromEntries(e),i.params}},38:(e,t,n)=>{n.d(t,{ZP:()=>i,f3:()=>r,o7:()=>a});const s={loading:Symbol("loading"),loaded:Symbol("loaded"),failed:Symbol("failed"),noData:Symbol("noData"),disabled:Symbol("disabled"),retrying:Symbol("retrying")},r=e=>{switch(e){case s.loading:return"loading";case s.loaded:return"press-here";case s.failed:return"failed";case s.noData:return"no-data";case s.disabled:return"disabled";case s.retrying:return"retrying";default:return""}},a=["loading","press-here","failed","no-data","disabled","retrying"],i=s},449:(e,t,n)=>{var s=n(38),r=n(929),a=n(372),i=n(732),o=n(159),l=n(325);class c extends o.Z{constructor(e,t,n){super(e,t,"Travel Forecast",n),this.timing.baseDelay=20;const s=TravelCities.length/4,r=Math.floor(s)-2,a=r%1;this.timing.delay=[450];for(let e=0;e<r;e+=1)this.timing.delay.push(300);0!==a&&this.timing.delay.push(Math.round(this.extra*this.cityHeight)),this.timing.delay.push(150)}async getData(){if(!super.getData())return;const e=TravelCities.map((async e=>{try{if(!e.point)throw new Error("No pre-loaded point");const t=await(0,r.AV)(`https://api.weather.gov/gridpoints/${e.point.wfo}/${e.point.x},${e.point.y}/forecast`),n=t.properties.periods[0].isDaytime?0:1;return{today:0===n,high:t.properties.periods[n].temperature,low:t.properties.periods[n+1].temperature,name:e.Name,icon:(0,a.gD)(t.properties.periods[n].icon)}}catch(t){return console.error(`GetTravelWeather for ${e.Name} failed`),console.error(t.status,t.responseJSON),{name:e.Name,error:!0}}})),t=await Promise.all(e);this.data=t;this.data.some((e=>e.high))?(this.setStatus(s.ZP.loaded),this.drawLongCanvas()):this.setStatus(s.ZP.noData)}async drawLongCanvas(){const e=this.elem.querySelector(".travel-lines");e.innerHTML="";const t=this.data.map((e=>{if(e.error)return!1;const t={city:e};if(e.icon){t.city=e.name;const{low:n,high:s}=e,r=Math.round(n).toString(),a=Math.round(s).toString();t.low=r,t.high=a;const{icon:i}=e;t.icon={type:"img",src:i}}else t.error="NO TRAVEL DATA AVAILABLE";return this.fillTemplate("travel-row",t)})).filter((e=>e));e.append(...t)}async drawCanvas(){super.drawCanvas();const e=this.data;this.elem.querySelector(".header .title.dual .bottom").innerHTML=`For ${u(e)}`,this.finishDraw()}async showCanvas(){await this.drawCanvas(),super.showCanvas()}screenIndexChange(){this.baseCountChange(this.navBaseCount)}baseCountChange(e){let t=Math.min(this.elem.querySelector(".travel-lines").getBoundingClientRect().height-289,e-150);t<0&&(t=0),this.elem.querySelector(".main").scrollTo(0,t)}getLongCanvas(){return this.longCanvas}}const u=e=>e.reduce(((e,t)=>{if(t&&""===e){return i.ou.local().plus({days:t.today?0:1}).toLocaleString({weekday:"long"})}return e}),"");(0,l.G1)(new c(5,"travel",!1))},791:(e,t,n)=>{n.d(t,{TE:()=>r,mt:()=>s,re:()=>a});const s=e=>["N","NNE","NE","ENE","E","ESE","SE","SSE","S","SSW","SW","WSW","W","WNW","NW","NNW"][Math.floor(e/22.5+.5)%16],r=(e,t,n,s)=>Math.sqrt((n-e)**2+(s-t)**2),a=(e,t)=>(e%t+t)%t},737:(e,t,n)=>{n.d(t,{d:()=>s});const s=e=>{let t=e;return t=t.replace("https://api.weather.gov/",`${window.location.protocol}//${window.location.host}/`),t=t.replace("https://www.cpc.ncep.noaa.gov/",`${window.location.protocol}//${window.location.host}/`),t}},929:(e,t,n)=>{n.d(t,{AV:()=>r,Ik:()=>i,fL:()=>a});var s=n(737);const r=(e,t)=>o(e,"json",t),a=(e,t)=>o(e,"text",t),i=(e,t)=>o(e,"blob",t),o=async(e,t,n={})=>{const r={method:"GET",mode:"cors",type:"GET",retryCount:0,...n};r.originalRetries=r.retryCount;let a=e;!0===r.cors&&(a=(0,s.d)(e));const i=new URL(a,`${window.location.origin}/`);r.data&&Object.keys(r.data).forEach((e=>{const t=r.data[e];i.searchParams.append(e,t)}));const o=await l(i,r);if(!o.ok)throw new Error(`Fetch error ${o.status} ${o.statusText} while fetching ${o.url}`);switch(t){case"json":return o.json();case"text":return o.text();case"blob":return o.blob();default:return o}},l=(e,t)=>new Promise(((n,s)=>{fetch(e,t).then((s=>{if(t.retryCount>0){if(s.status>=500&&s.status<=599&&t.retryCount>0){"function"==typeof t.stillWaiting&&t.retryCount===t.originalRetries&&t.stillWaiting();const s={...t,retryCount:t.retryCount-1};return n(c(u(t.originalRetries-s.retryCount),l,e,s))}return n(s)}return n(s)})).catch((e=>s(e)))})),c=(e,t,...n)=>new Promise((s=>{setTimeout((()=>{s(t(...n))}),e)})),u=e=>{switch(e){case 1:return 1e3;case 2:return 2e3;case 3:return 5e3;case 4:return 1e4;default:return 3e4}}},138:(e,t,n)=>{n.d(t,{a:()=>a,b:()=>o});var s=n(929),r=n(737);const a=(e,t=!1)=>new Promise((n=>{const s=new Image;if(s.onload=e=>{n(e.target)},e instanceof Blob)s.src=window.URL.createObjectURL(e);else{let n=e;t&&(n=(0,r.d)(e)),s.src=n}})),i=[],o=e=>!i.includes(e)&&((0,s.Ik)(e),i.push(e),!0)},739:(e,t,n)=>{n.d(t,{Z:()=>a});let s=!1;const r=(e=!1)=>(r.controller||(r.controller=new NoSleep),s!==e&&(s=e,e?r.controller.enable():r.controller.disable())),a=r},206:(e,t,n)=>{n.d(t,{a:()=>s});const s=e=>[/^[ A-Za-z]+ \/ /,/^[ A-Za-z]+\//,/^[ A-Za-z]+, /].reduce(((e,t)=>e.replace(t,"")),e)},594:(e,t,n)=>{n.d(t,{AD:()=>o,Kh:()=>r,MO:()=>l,NE:()=>a,Xp:()=>s,dp:()=>i});const s=(e,t)=>Math.trunc(e*10**t)/10**t,r=e=>Math.round(e/1.60934),a=e=>Math.round(9*e/5+32),i=e=>Math.round(e/1.60934),o=e=>Math.round(e/.3048),l=e=>s(2953e-7*e,2)},735:(e,t,n)=>{n.d(t,{F:()=>r});var s=n(929);const r=async(e,t)=>{try{return await(0,s.AV)(`https://api.weather.gov/points/${e},${t}`)}catch(n){return console.log(`Unable to get point ${e}, ${t}`),console.error(n),!1}}},159:(e,t,n)=>{n.d(t,{Z:()=>o});var s=n(38),r=n(732),a=n(325),i=n(940);const o=class{constructor(e,t,n,r){this.navId=e,this.elemId=void 0,this.data=void 0,this.loadingStatus=s.ZP.loading,this.name=n??t,this.getDataCallbacks=[],this.stillWaitingCallbacks=[],this.defaultEnabled=r,this.okToDrawCurrentConditions=!0,this.okToDrawCurrentDateTime=!0,this.showOnProgress=!0,this.timing={totalScreens:1,baseDelay:9e3,delay:1},this.navBaseCount=0,this.screenIndex=-1,this.storeElemId(t),this.isEnabled?this.setStatus(s.ZP.loading):this.setStatus(s.ZP.disabled),this.startNavCount(),document.addEventListener("DOMContentLoaded",(()=>{this.loadTemplates()}))}generateCheckbox(e=!0){if("progress"===this.elemId)return!1;const t=(0,i.d)()?.[`${this.elemId}-checkbox`];let n;void 0!==t&&(n="true"===t);let s=n??window.localStorage.getItem(`display-enabled: ${this.elemId}`);null===s&&(s=e),this.isEnabled=!("true"!==s&&!0!==s),window.localStorage.setItem(`display-enabled: ${this.elemId}`,this.isEnabled);const r=document.createElement("label");r.for=`${this.elemId}-checkbox`,r.id=`${this.elemId}-label`;const a=document.createElement("input");a.type="checkbox",a.value=!0,a.id=`${this.elemId}-checkbox`,a.name=`${this.elemId}-checkbox`,a.checked=this.isEnabled,a.addEventListener("change",(e=>this.checkboxChange(e)));const o=document.createElement("span");o.innerHTML=this.name;const l=document.createElement("span");return l.innerHTML="!!!",l.classList.add("alert"),r.append(a,o,l),this.checkbox=r,r}checkboxChange(e){this.isEnabled=e.target.checked,window.localStorage.setItem(`display-enabled: ${this.elemId}`,this.isEnabled),this.getData()}setStatus(e){this.status=e,(0,a.Nf)({id:this.navId,status:this.status}),this.checkbox&&(this.checkbox.classList.remove(...s.o7),this.checkbox.classList.add((0,s.f3)(e)))}get status(){return this.loadingStatus}set status(e){this.loadingStatus=e}storeElemId(e){this.elemId||(this.elemId=e)}getData(e){return this.data=void 0,e&&(this.weatherParameters=e),this.isEnabled?(this.setStatus(s.ZP.loading),this.calcNavTiming(),!0):(this.setStatus(s.ZP.disabled),!1)}getDataCallback(){this.getDataCallbacks.forEach((e=>e(this.data))),this.getDataCallbacks=[]}drawCanvas(){this.screenIndex<0&&(this.screenIndex=0),this.okToDrawCurrentDateTime&&this.drawCurrentDateTime()}finishDraw(){this.okToDrawCurrentDateTime&&(this.drawCurrentDateTime(),this.dateTimeInterval||setInterval((()=>this.active&&this.drawCurrentDateTime()),100))}drawCurrentDateTime(){const e=r.ou.local().setZone((0,a.EQ)()),t=e.toLocaleString(r.ou.TIME_WITH_SECONDS).padStart(11," "),n=e.toFormat(" ccc LLL ")+e.day.toString().padStart(2," "),s=this.elem.querySelector(".date-time.date"),i=this.elem.querySelector(".date-time.time");i&&this.lastTime!==t&&(i.innerHTML=t.toUpperCase()),this.lastTime=t,s&&this.lastDate!==n&&(s.innerHTML=n.toUpperCase()),this.lastDate=n}showCanvas(e){e===a.WI.command.firstFrame&&this.navNext(e),e===a.WI.command.lastFrame&&this.navPrev(e),this.startNavCount(),this.elem.classList.add("show"),document.querySelector("#divTwc").classList.add(this.elemId)}hideCanvas(){this.resetNavBaseCount(),this.elem.classList.remove("show"),document.querySelector("#divTwc").classList.remove(this.elemId)}get active(){return 0!==this.elem.offsetHeight}get enabled(){return this.isEnabled}navBaseTime(){(0,a.yA)()&&this.active&&(this.navBaseCount+=1,this.baseCountChange&&this.baseCountChange(this.navBaseCount),this.updateScreenFromBaseCount())}async updateScreenFromBaseCount(){const e=this.screenIndexFromBaseCount();!1!==e?e!==this.screenIndex&&(this.screenIndex=-1===e?0:e,this.screenIndexChange?this.screenIndexChange(this.screenIndex):await this.drawCanvas(),this.showCanvas()):this.sendNavDisplayMessage(a.WI.response.next)}calcNavTiming(){if(!1===this.timing)return;Array.isArray(this.timing.delay)&&(this.timing.totalScreens=this.timing.delay.length);let e=[];if("number"==typeof this.timing.delay)for(let t=0;t<this.timing.totalScreens;t+=1)e.push(this.timing.delay);else e=this.timing.delay.map((e=>"object"==typeof e?e.time:e));let t=0;if(this.timing.fullDelay=e.map((e=>{const n=t+e;return t+=e,n})),Array.isArray(this.timing.delay)&&"object"==typeof this.timing.delay[0])this.timing.screenIndexes=this.timing.delay.map((e=>e.si));else{this.timing.screenIndexes=[];for(let e=0;e<this.timing.totalScreens;e+=1)this.timing.screenIndexes.push(e)}}navNext(e){if(e===a.WI.command.firstFrame)this.resetNavBaseCount();else{const e=this.timing.fullDelay.find((e=>e>this.navBaseCount));this.navBaseCount=e}this.updateScreenFromBaseCount()}navPrev(e){if(e===a.WI.command.lastFrame)this.navBaseCount=this.timing.fullDelay[this.timing.totalScreens-1]-1;else{const e=this.timing.fullDelay.reduce(((e,t)=>t<this.navBaseCount?t:e),0);if(0===e&&0===this.navBaseCount)return void this.sendNavDisplayMessage(a.WI.response.previous);this.navBaseCount=e}this.updateScreenFromBaseCount()}screenIndexFromBaseCount(){if(!this.timing)return 0;if(0===this.timing.totalScreens)return!1;this.timing&&!this.timing.fullDelay&&this.calcNavTiming();const e=this.timing.fullDelay.findIndex((e=>e>this.navBaseCount));return-1!==e&&this.timing.screenIndexes[e]}startNavCount(){this.navInterval||(this.navInterval=setInterval((()=>this.navBaseTime()),this.timing.baseDelay))}resetNavBaseCount(){this.navBaseCount=0,this.screenIndex=-1,this.navInterval&&(clearInterval(this.navInterval),this.navInterval=void 0)}sendNavDisplayMessage(e){(0,a.Pl)({id:this.navId,type:e})}loadTemplates(){if(this.templates={},this.elem=document.querySelector(`#${this.elemId}-html`),!this.elem)return;this.elem.querySelectorAll(".template").forEach((e=>{const t=e.classList[0],n=e.cloneNode(!0);n.classList.remove("template"),this.templates[t]=n,e.remove()}))}fillTemplate(e,t){const n=this.templates[e];if(!n)return!1;const s=n.cloneNode(!0);return Object.entries(t).forEach((([e,t])=>{const n=s.querySelector(`.${e}`);n&&("string"==typeof t||"number"==typeof t?n.innerHTML=t:"img"===t?.type&&(n.querySelector("img").src=t.src))})),s}stillWaiting(){this.isEnabled&&this.setStatus(s.ZP.retrying),this.stillWaitingCallbacks.forEach((e=>e())),this.stillWaitingCallbacks=[]}}},732:(e,t,n)=>{n.d(t,{Xp:()=>Sn,nL:()=>wn,ou:()=>hs});class s extends Error{}class r extends s{constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}}class a extends s{constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}}class i extends s{constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}}class o extends s{}class l extends s{constructor(e){super(`Invalid unit ${e}`)}}class c extends s{}class u extends s{constructor(){super("Zone is an abstract class")}}const d="numeric",h="short",m="long",f={year:d,month:d,day:d},g={year:d,month:h,day:d},y={year:d,month:h,day:d,weekday:h},p={year:d,month:m,day:d},w={year:d,month:m,day:d,weekday:m},v={hour:d,minute:d},S={hour:d,minute:d,second:d},b={hour:d,minute:d,second:d,timeZoneName:h},k={hour:d,minute:d,second:d,timeZoneName:m},C={hour:d,minute:d,hourCycle:"h23"},T={hour:d,minute:d,second:d,hourCycle:"h23"},D={hour:d,minute:d,second:d,hourCycle:"h23",timeZoneName:h},L={hour:d,minute:d,second:d,hourCycle:"h23",timeZoneName:m},x={year:d,month:d,day:d,hour:d,minute:d},M={year:d,month:d,day:d,hour:d,minute:d,second:d},I={year:d,month:h,day:d,hour:d,minute:d},N={year:d,month:h,day:d,hour:d,minute:d,second:d},O={year:d,month:h,day:d,weekday:h,hour:d,minute:d},E={year:d,month:m,day:d,hour:d,minute:d,timeZoneName:h},$={year:d,month:m,day:d,hour:d,minute:d,second:d,timeZoneName:h},F={year:d,month:m,day:d,weekday:m,hour:d,minute:d,timeZoneName:m},W={year:d,month:m,day:d,weekday:m,hour:d,minute:d,second:d,timeZoneName:m};class Z{get type(){throw new u}get name(){throw new u}get ianaName(){return this.name}get isUniversal(){throw new u}offsetName(e,t){throw new u}formatOffset(e,t){throw new u}offset(e){throw new u}equals(e){throw new u}get isValid(){throw new u}}let V=null;class q extends Z{static get instance(){return null===V&&(V=new q),V}get type(){return"system"}get name(){return(new Intl.DateTimeFormat).resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(e,{format:t,locale:n}){return Qe(e,t,n)}formatOffset(e,t){return tt(this.offset(e),t)}offset(e){return-new Date(e).getTimezoneOffset()}equals(e){return"system"===e.type}get isValid(){return!0}}let P={};const H={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};let _={};class z extends Z{static create(e){return _[e]||(_[e]=new z(e)),_[e]}static resetCache(){_={},P={}}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(e){return!1}}constructor(e){super(),this.zoneName=e,this.valid=z.isValidZone(e)}get type(){return"iana"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(e,{format:t,locale:n}){return Qe(e,t,n,this.name)}formatOffset(e,t){return tt(this.offset(e),t)}offset(e){const t=new Date(e);if(isNaN(t))return NaN;const n=(s=this.name,P[s]||(P[s]=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:s,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",era:"short"})),P[s]);var s;let[r,a,i,o,l,c,u]=n.formatToParts?function(e,t){const n=e.formatToParts(t),s=[];for(let e=0;e<n.length;e++){const{type:t,value:r}=n[e],a=H[t];"era"===t?s[a]=r:Ne(a)||(s[a]=parseInt(r,10))}return s}(n,t):function(e,t){const n=e.format(t).replace(/\u200E/g,""),s=/(\d+)\/(\d+)\/(\d+) (AD|BC),? (\d+):(\d+):(\d+)/.exec(n),[,r,a,i,o,l,c,u]=s;return[i,r,a,o,l,c,u]}(n,t);"BC"===o&&(r=1-Math.abs(r));let d=+t;const h=d%1e3;return d-=h>=0?h:1e3+h,(Ge({year:r,month:a,day:i,hour:24===l?0:l,minute:c,second:u,millisecond:0})-d)/6e4}equals(e){return"iana"===e.type&&e.name===this.name}get isValid(){return this.valid}}let A={};let R={};function U(e,t={}){const n=JSON.stringify([e,t]);let s=R[n];return s||(s=new Intl.DateTimeFormat(e,t),R[n]=s),s}let j={};let G={};let B=null;let J={};function Y(e,t,n,s){const r=e.listingMode();return"error"===r?null:"en"===r?n(t):s(t)}class Q{constructor(e,t,n){this.padTo=n.padTo||0,this.floor=n.floor||!1;const{padTo:s,floor:r,...a}=n;if(!t||Object.keys(a).length>0){const t={useGrouping:!1,...n};n.padTo>0&&(t.minimumIntegerDigits=n.padTo),this.inf=function(e,t={}){const n=JSON.stringify([e,t]);let s=j[n];return s||(s=new Intl.NumberFormat(e,t),j[n]=s),s}(e,t)}}format(e){if(this.inf){const t=this.floor?Math.floor(e):e;return this.inf.format(t)}return Pe(this.floor?Math.floor(e):Ae(e,3),this.padTo)}}class K{constructor(e,t,n){let s;if(this.opts=n,this.originalZone=void 0,this.opts.timeZone)this.dt=e;else if("fixed"===e.zone.type){const t=e.offset/60*-1,n=t>=0?`Etc/GMT+${t}`:`Etc/GMT${t}`;0!==e.offset&&z.create(n).valid?(s=n,this.dt=e):(s="UTC",this.dt=0===e.offset?e:e.setZone("UTC").plus({minutes:e.offset}),this.originalZone=e.zone)}else"system"===e.zone.type?this.dt=e:"iana"===e.zone.type?(this.dt=e,s=e.zone.name):(s="UTC",this.dt=e.setZone("UTC").plus({minutes:e.offset}),this.originalZone=e.zone);const r={...this.opts};r.timeZone=r.timeZone||s,this.dtf=U(t,r)}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((e=>{if("timeZoneName"===e.type){const t=this.originalZone.offsetName(this.dt.ts,{locale:this.dt.locale,format:this.opts.timeZoneName});return{...e,value:t}}return e})):e}resolvedOptions(){return this.dtf.resolvedOptions()}}class X{constructor(e,t,n){this.opts={style:"long",...n},!t&&$e()&&(this.rtf=function(e,t={}){const{base:n,...s}=t,r=JSON.stringify([e,s]);let a=G[r];return a||(a=new Intl.RelativeTimeFormat(e,t),G[r]=a),a}(e,n))}format(e,t){return this.rtf?this.rtf.format(e,t):function(e,t,n="always",s=!1){const r={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."]},a=-1===["hours","minutes","seconds"].indexOf(e);if("auto"===n&&a){const n="days"===e;switch(t){case 1:return n?"tomorrow":`next ${r[e][0]}`;case-1:return n?"yesterday":`last ${r[e][0]}`;case 0:return n?"today":`this ${r[e][0]}`}}const i=Object.is(t,-0)||t<0,o=Math.abs(t),l=1===o,c=r[e],u=s?l?c[1]:c[2]||c[1]:l?r[e][0]:e;return i?`${o} ${u} ago`:`in ${o} ${u}`}(t,e,this.opts.numeric,"long"!==this.opts.style)}formatToParts(e,t){return this.rtf?this.rtf.formatToParts(e,t):[]}}const ee={firstDay:1,minimalDays:4,weekend:[6,7]};class te{static fromOpts(e){return te.create(e.locale,e.numberingSystem,e.outputCalendar,e.weekSettings,e.defaultToEN)}static create(e,t,n,s,r=!1){const a=e||fe.defaultLocale,i=a||(r?"en-US":B||(B=(new Intl.DateTimeFormat).resolvedOptions().locale,B)),o=t||fe.defaultNumberingSystem,l=n||fe.defaultOutputCalendar,c=Ve(s)||fe.defaultWeekSettings;return new te(i,o,l,c,a)}static resetCache(){B=null,R={},j={},G={}}static fromObject({locale:e,numberingSystem:t,outputCalendar:n,weekSettings:s}={}){return te.create(e,t,n,s)}constructor(e,t,n,s,r){const[a,i,o]=function(e){const t=e.indexOf("-x-");-1!==t&&(e=e.substring(0,t));const n=e.indexOf("-u-");if(-1===n)return[e];{let t,s;try{t=U(e).resolvedOptions(),s=e}catch(r){const a=e.substring(0,n);t=U(a).resolvedOptions(),s=a}const{numberingSystem:r,calendar:a}=t;return[s,r,a]}}(e);this.locale=a,this.numberingSystem=t||i||null,this.outputCalendar=n||o||null,this.weekSettings=s,this.intl=function(e,t,n){return n||t?(e.includes("-u-")||(e+="-u"),n&&(e+=`-ca-${n}`),t&&(e+=`-nu-${t}`),e):e}(this.locale,this.numberingSystem,this.outputCalendar),this.weekdaysCache={format:{},standalone:{}},this.monthsCache={format:{},standalone:{}},this.meridiemCache=null,this.eraCache={},this.specifiedLocale=r,this.fastNumbersCached=null}get fastNumbers(){var e;return null==this.fastNumbersCached&&(this.fastNumbersCached=(!(e=this).numberingSystem||"latn"===e.numberingSystem)&&("latn"===e.numberingSystem||!e.locale||e.locale.startsWith("en")||"latn"===new Intl.DateTimeFormat(e.intl).resolvedOptions().numberingSystem)),this.fastNumbersCached}listingMode(){const e=this.isEnglish(),t=!(null!==this.numberingSystem&&"latn"!==this.numberingSystem||null!==this.outputCalendar&&"gregory"!==this.outputCalendar);return e&&t?"en":"intl"}clone(e){return e&&0!==Object.getOwnPropertyNames(e).length?te.create(e.locale||this.specifiedLocale,e.numberingSystem||this.numberingSystem,e.outputCalendar||this.outputCalendar,Ve(e.weekSettings)||this.weekSettings,e.defaultToEN||!1):this}redefaultToEN(e={}){return this.clone({...e,defaultToEN:!0})}redefaultToSystem(e={}){return this.clone({...e,defaultToEN:!1})}months(e,t=!1){return Y(this,e,it,(()=>{const n=t?{month:e,day:"numeric"}:{month:e},s=t?"format":"standalone";return this.monthsCache[s][e]||(this.monthsCache[s][e]=function(e){const t=[];for(let n=1;n<=12;n++){const s=hs.utc(2009,n,1);t.push(e(s))}return t}((e=>this.extract(e,n,"month")))),this.monthsCache[s][e]}))}weekdays(e,t=!1){return Y(this,e,ut,(()=>{const n=t?{weekday:e,year:"numeric",month:"long",day:"numeric"}:{weekday:e},s=t?"format":"standalone";return this.weekdaysCache[s][e]||(this.weekdaysCache[s][e]=function(e){const t=[];for(let n=1;n<=7;n++){const s=hs.utc(2016,11,13+n);t.push(e(s))}return t}((e=>this.extract(e,n,"weekday")))),this.weekdaysCache[s][e]}))}meridiems(){return Y(this,void 0,(()=>dt),(()=>{if(!this.meridiemCache){const e={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[hs.utc(2016,11,13,9),hs.utc(2016,11,13,19)].map((t=>this.extract(t,e,"dayperiod")))}return this.meridiemCache}))}eras(e){return Y(this,e,gt,(()=>{const t={era:e};return this.eraCache[e]||(this.eraCache[e]=[hs.utc(-40,1,1),hs.utc(2017,1,1)].map((e=>this.extract(e,t,"era")))),this.eraCache[e]}))}extract(e,t,n){const s=this.dtFormatter(e,t).formatToParts().find((e=>e.type.toLowerCase()===n));return s?s.value:null}numberFormatter(e={}){return new Q(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e,t={}){return new K(e,this.intl,t)}relFormatter(e={}){return new X(this.intl,this.isEnglish(),e)}listFormatter(e={}){return function(e,t={}){const n=JSON.stringify([e,t]);let s=A[n];return s||(s=new Intl.ListFormat(e,t),A[n]=s),s}(this.intl,e)}isEnglish(){return"en"===this.locale||"en-us"===this.locale.toLowerCase()||new Intl.DateTimeFormat(this.intl).resolvedOptions().locale.startsWith("en-us")}getWeekSettings(){return this.weekSettings?this.weekSettings:Fe()?function(e){let t=J[e];if(!t){const n=new Intl.Locale(e);t="getWeekInfo"in n?n.getWeekInfo():n.weekInfo,J[e]=t}return t}(this.locale):ee}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}}let ne=null;class se extends Z{static get utcInstance(){return null===ne&&(ne=new se(0)),ne}static instance(e){return 0===e?se.utcInstance:new se(e)}static parseSpecifier(e){if(e){const t=e.match(/^utc(?:([+-]\d{1,2})(?::(\d{2}))?)?$/i);if(t)return new se(Ke(t[1],t[2]))}return null}constructor(e){super(),this.fixed=e}get type(){return"fixed"}get name(){return 0===this.fixed?"UTC":`UTC${tt(this.fixed,"narrow")}`}get ianaName(){return 0===this.fixed?"Etc/UTC":`Etc/GMT${tt(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(e,t){return tt(this.fixed,t)}get isUniversal(){return!0}offset(){return this.fixed}equals(e){return"fixed"===e.type&&e.fixed===this.fixed}get isValid(){return!0}}class re extends Z{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 ae(e,t){if(Ne(e)||null===e)return t;if(e instanceof Z)return e;if("string"==typeof e){const n=e.toLowerCase();return"default"===n?t:"local"===n||"system"===n?q.instance:"utc"===n||"gmt"===n?se.utcInstance:se.parseSpecifier(n)||z.create(e)}return Oe(e)?se.instance(e):"object"==typeof e&&"offset"in e&&"function"==typeof e.offset?e:new re(e)}let ie,oe=()=>Date.now(),le="system",ce=null,ue=null,de=null,he=60,me=null;class fe{static get now(){return oe}static set now(e){oe=e}static set defaultZone(e){le=e}static get defaultZone(){return ae(le,q.instance)}static get defaultLocale(){return ce}static set defaultLocale(e){ce=e}static get defaultNumberingSystem(){return ue}static set defaultNumberingSystem(e){ue=e}static get defaultOutputCalendar(){return de}static set defaultOutputCalendar(e){de=e}static get defaultWeekSettings(){return me}static set defaultWeekSettings(e){me=Ve(e)}static get twoDigitCutoffYear(){return he}static set twoDigitCutoffYear(e){he=e%100}static get throwOnInvalid(){return ie}static set throwOnInvalid(e){ie=e}static resetCaches(){te.resetCache(),z.resetCache()}}class ge{constructor(e,t){this.reason=e,this.explanation=t}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}}const ye=[0,31,59,90,120,151,181,212,243,273,304,334],pe=[0,31,60,91,121,152,182,213,244,274,305,335];function we(e,t){return new ge("unit out of range",`you specified ${t} (of type ${typeof t}) as a ${e}, which is invalid`)}function ve(e,t,n){const s=new Date(Date.UTC(e,t-1,n));e<100&&e>=0&&s.setUTCFullYear(s.getUTCFullYear()-1900);const r=s.getUTCDay();return 0===r?7:r}function Se(e,t,n){return n+(Re(e)?pe:ye)[t-1]}function be(e,t){const n=Re(e)?pe:ye,s=n.findIndex((e=>e<t));return{month:s+1,day:t-n[s]}}function ke(e,t){return(e-t+7)%7+1}function Ce(e,t=4,n=1){const{year:s,month:r,day:a}=e,i=Se(s,r,a),o=ke(ve(s,r,a),n);let l,c=Math.floor((i-o+14-t)/7);return c<1?(l=s-1,c=Je(l,t,n)):c>Je(s,t,n)?(l=s+1,c=1):l=s,{weekYear:l,weekNumber:c,weekday:o,...nt(e)}}function Te(e,t=4,n=1){const{weekYear:s,weekNumber:r,weekday:a}=e,i=ke(ve(s,1,t),n),o=Ue(s);let l,c=7*r+a-i-7+t;c<1?(l=s-1,c+=Ue(l)):c>o?(l=s+1,c-=Ue(s)):l=s;const{month:u,day:d}=be(l,c);return{year:l,month:u,day:d,...nt(e)}}function De(e){const{year:t,month:n,day:s}=e;return{year:t,ordinal:Se(t,n,s),...nt(e)}}function Le(e){const{year:t,ordinal:n}=e,{month:s,day:r}=be(t,n);return{year:t,month:s,day:r,...nt(e)}}function xe(e,t){if(!Ne(e.localWeekday)||!Ne(e.localWeekNumber)||!Ne(e.localWeekYear)){if(!Ne(e.weekday)||!Ne(e.weekNumber)||!Ne(e.weekYear))throw new o("Cannot mix locale-based week fields with ISO-based week fields");return Ne(e.localWeekday)||(e.weekday=e.localWeekday),Ne(e.localWeekNumber)||(e.weekNumber=e.localWeekNumber),Ne(e.localWeekYear)||(e.weekYear=e.localWeekYear),delete e.localWeekday,delete e.localWeekNumber,delete e.localWeekYear,{minDaysInFirstWeek:t.getMinDaysInFirstWeek(),startOfWeek:t.getStartOfWeek()}}return{minDaysInFirstWeek:4,startOfWeek:1}}function Me(e){const t=Ee(e.year),n=qe(e.month,1,12),s=qe(e.day,1,je(e.year,e.month));return t?n?!s&&we("day",e.day):we("month",e.month):we("year",e.year)}function Ie(e){const{hour:t,minute:n,second:s,millisecond:r}=e,a=qe(t,0,23)||24===t&&0===n&&0===s&&0===r,i=qe(n,0,59),o=qe(s,0,59),l=qe(r,0,999);return a?i?o?!l&&we("millisecond",r):we("second",s):we("minute",n):we("hour",t)}function Ne(e){return void 0===e}function Oe(e){return"number"==typeof e}function Ee(e){return"number"==typeof e&&e%1==0}function $e(){try{return"undefined"!=typeof Intl&&!!Intl.RelativeTimeFormat}catch(e){return!1}}function Fe(){try{return"undefined"!=typeof Intl&&!!Intl.Locale&&("weekInfo"in Intl.Locale.prototype||"getWeekInfo"in Intl.Locale.prototype)}catch(e){return!1}}function We(e,t,n){if(0!==e.length)return e.reduce(((e,s)=>{const r=[t(s),s];return e&&n(e[0],r[0])===e[0]?e:r}),null)[1]}function Ze(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function Ve(e){if(null==e)return null;if("object"!=typeof e)throw new c("Week settings must be an object");if(!qe(e.firstDay,1,7)||!qe(e.minimalDays,1,7)||!Array.isArray(e.weekend)||e.weekend.some((e=>!qe(e,1,7))))throw new c("Invalid week settings");return{firstDay:e.firstDay,minimalDays:e.minimalDays,weekend:Array.from(e.weekend)}}function qe(e,t,n){return Ee(e)&&e>=t&&e<=n}function Pe(e,t=2){let n;return n=e<0?"-"+(""+-e).padStart(t,"0"):(""+e).padStart(t,"0"),n}function He(e){return Ne(e)||null===e||""===e?void 0:parseInt(e,10)}function _e(e){return Ne(e)||null===e||""===e?void 0:parseFloat(e)}function ze(e){if(!Ne(e)&&null!==e&&""!==e){const t=1e3*parseFloat("0."+e);return Math.floor(t)}}function Ae(e,t,n=!1){const s=10**t;return(n?Math.trunc:Math.round)(e*s)/s}function Re(e){return e%4==0&&(e%100!=0||e%400==0)}function Ue(e){return Re(e)?366:365}function je(e,t){const n=function(e,t){return e-t*Math.floor(e/t)}(t-1,12)+1;return 2===n?Re(e+(t-n)/12)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][n-1]}function Ge(e){let t=Date.UTC(e.year,e.month-1,e.day,e.hour,e.minute,e.second,e.millisecond);return e.year<100&&e.year>=0&&(t=new Date(t),t.setUTCFullYear(e.year,e.month-1,e.day)),+t}function Be(e,t,n){return-ke(ve(e,1,t),n)+t-1}function Je(e,t=4,n=1){const s=Be(e,t,n),r=Be(e+1,t,n);return(Ue(e)-s+r)/7}function Ye(e){return e>99?e:e>fe.twoDigitCutoffYear?1900+e:2e3+e}function Qe(e,t,n,s=null){const r=new Date(e),a={hourCycle:"h23",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"};s&&(a.timeZone=s);const i={timeZoneName:t,...a},o=new Intl.DateTimeFormat(n,i).formatToParts(r).find((e=>"timezonename"===e.type.toLowerCase()));return o?o.value:null}function Ke(e,t){let n=parseInt(e,10);Number.isNaN(n)&&(n=0);const s=parseInt(t,10)||0;return 60*n+(n<0||Object.is(n,-0)?-s:s)}function Xe(e){const t=Number(e);if("boolean"==typeof e||""===e||Number.isNaN(t))throw new c(`Invalid unit value ${e}`);return t}function et(e,t){const n={};for(const s in e)if(Ze(e,s)){const r=e[s];if(null==r)continue;n[t(s)]=Xe(r)}return n}function tt(e,t){const n=Math.trunc(Math.abs(e/60)),s=Math.trunc(Math.abs(e%60)),r=e>=0?"+":"-";switch(t){case"short":return`${r}${Pe(n,2)}:${Pe(s,2)}`;case"narrow":return`${r}${n}${s>0?`:${s}`:""}`;case"techie":return`${r}${Pe(n,2)}${Pe(s,2)}`;default:throw new RangeError(`Value format ${t} is out of range for property format`)}}function nt(e){return function(e,t){return t.reduce(((t,n)=>(t[n]=e[n],t)),{})}(e,["hour","minute","second","millisecond"])}const st=["January","February","March","April","May","June","July","August","September","October","November","December"],rt=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],at=["J","F","M","A","M","J","J","A","S","O","N","D"];function it(e){switch(e){case"narrow":return[...at];case"short":return[...rt];case"long":return[...st];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 ot=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],lt=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],ct=["M","T","W","T","F","S","S"];function ut(e){switch(e){case"narrow":return[...ct];case"short":return[...lt];case"long":return[...ot];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}const dt=["AM","PM"],ht=["Before Christ","Anno Domini"],mt=["BC","AD"],ft=["B","A"];function gt(e){switch(e){case"narrow":return[...ft];case"short":return[...mt];case"long":return[...ht];default:return null}}function yt(e,t){let n="";for(const s of e)s.literal?n+=s.val:n+=t(s.val);return n}const pt={D:f,DD:g,DDD:p,DDDD:w,t:v,tt:S,ttt:b,tttt:k,T:C,TT:T,TTT:D,TTTT:L,f:x,ff:I,fff:E,ffff:F,F:M,FF:N,FFF:$,FFFF:W};class wt{static create(e,t={}){return new wt(e,t)}static parseFormat(e){let t=null,n="",s=!1;const r=[];for(let a=0;a<e.length;a++){const i=e.charAt(a);"'"===i?(n.length>0&&r.push({literal:s||/^\s+$/.test(n),val:n}),t=null,n="",s=!s):s||i===t?n+=i:(n.length>0&&r.push({literal:/^\s+$/.test(n),val:n}),n=i,t=i)}return n.length>0&&r.push({literal:s||/^\s+$/.test(n),val:n}),r}static macroTokenToFormatOpts(e){return pt[e]}constructor(e,t){this.opts=t,this.loc=e,this.systemLoc=null}formatWithSystemDefault(e,t){null===this.systemLoc&&(this.systemLoc=this.loc.redefaultToSystem());return this.systemLoc.dtFormatter(e,{...this.opts,...t}).format()}dtFormatter(e,t={}){return this.loc.dtFormatter(e,{...this.opts,...t})}formatDateTime(e,t){return this.dtFormatter(e,t).format()}formatDateTimeParts(e,t){return this.dtFormatter(e,t).formatToParts()}formatInterval(e,t){return this.dtFormatter(e.start,t).dtf.formatRange(e.start.toJSDate(),e.end.toJSDate())}resolvedOptions(e,t){return this.dtFormatter(e,t).resolvedOptions()}num(e,t=0){if(this.opts.forceSimple)return Pe(e,t);const n={...this.opts};return t>0&&(n.padTo=t),this.loc.numberFormatter(n).format(e)}formatDateTimeFromString(e,t){const n="en"===this.loc.listingMode(),s=this.loc.outputCalendar&&"gregory"!==this.loc.outputCalendar,r=(t,n)=>this.loc.extract(e,t,n),a=t=>e.isOffsetFixed&&0===e.offset&&t.allowZ?"Z":e.isValid?e.zone.formatOffset(e.ts,t.format):"",i=()=>n?function(e){return dt[e.hour<12?0:1]}(e):r({hour:"numeric",hourCycle:"h12"},"dayperiod"),o=(t,s)=>n?function(e,t){return it(t)[e.month-1]}(e,t):r(s?{month:t}:{month:t,day:"numeric"},"month"),l=(t,s)=>n?function(e,t){return ut(t)[e.weekday-1]}(e,t):r(s?{weekday:t}:{weekday:t,month:"long",day:"numeric"},"weekday"),c=t=>{const n=wt.macroTokenToFormatOpts(t);return n?this.formatWithSystemDefault(e,n):t},u=t=>n?function(e,t){return gt(t)[e.year<0?0:1]}(e,t):r({era:t},"era");return yt(wt.parseFormat(t),(t=>{switch(t){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 a({format:"narrow",allowZ:this.opts.allowZ});case"ZZ":return a({format:"short",allowZ:this.opts.allowZ});case"ZZZ":return a({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 i();case"d":return s?r({day:"numeric"},"day"):this.num(e.day);case"dd":return s?r({day:"2-digit"},"day"):this.num(e.day,2);case"c":case"E":return this.num(e.weekday);case"ccc":return l("short",!0);case"cccc":return l("long",!0);case"ccccc":return l("narrow",!0);case"EEE":return l("short",!1);case"EEEE":return l("long",!1);case"EEEEE":return l("narrow",!1);case"L":return s?r({month:"numeric",day:"numeric"},"month"):this.num(e.month);case"LL":return s?r({month:"2-digit",day:"numeric"},"month"):this.num(e.month,2);case"LLL":return o("short",!0);case"LLLL":return o("long",!0);case"LLLLL":return o("narrow",!0);case"M":return s?r({month:"numeric"},"month"):this.num(e.month);case"MM":return s?r({month:"2-digit"},"month"):this.num(e.month,2);case"MMM":return o("short",!1);case"MMMM":return o("long",!1);case"MMMMM":return o("narrow",!1);case"y":return s?r({year:"numeric"},"year"):this.num(e.year);case"yy":return s?r({year:"2-digit"},"year"):this.num(e.year.toString().slice(-2),2);case"yyyy":return s?r({year:"numeric"},"year"):this.num(e.year,4);case"yyyyyy":return s?r({year:"numeric"},"year"):this.num(e.year,6);case"G":return u("short");case"GG":return u("long");case"GGGGG":return u("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 c(t)}}))}formatDurationFromString(e,t){const n=e=>{switch(e[0]){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":return"hour";case"d":return"day";case"w":return"week";case"M":return"month";case"y":return"year";default:return null}},s=wt.parseFormat(t),r=s.reduce(((e,{literal:t,val:n})=>t?e:e.concat(n)),[]);return yt(s,(e=>t=>{const s=n(t);return s?this.num(e.get(s),t.length):t})(e.shiftTo(...r.map(n).filter((e=>e)))))}}const vt=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function St(...e){const t=e.reduce(((e,t)=>e+t.source),"");return RegExp(`^${t}$`)}function bt(...e){return t=>e.reduce((([e,n,s],r)=>{const[a,i,o]=r(t,s);return[{...e,...a},i||n,o]}),[{},null,1]).slice(0,2)}function kt(e,...t){if(null==e)return[null,null];for(const[n,s]of t){const t=n.exec(e);if(t)return s(t)}return[null,null]}function Ct(...e){return(t,n)=>{const s={};let r;for(r=0;r<e.length;r++)s[e[r]]=He(t[n+r]);return[s,null,n+r]}}const Tt=/(?:(Z)|([+-]\d\d)(?::?(\d\d))?)/,Dt=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,Lt=RegExp(`${Dt.source}${`(?:${Tt.source}?(?:\\[(${vt.source})\\])?)?`}`),xt=RegExp(`(?:T${Lt.source})?`),Mt=Ct("weekYear","weekNumber","weekDay"),It=Ct("year","ordinal"),Nt=RegExp(`${Dt.source} ?(?:${Tt.source}|(${vt.source}))?`),Ot=RegExp(`(?: ${Nt.source})?`);function Et(e,t,n){const s=e[t];return Ne(s)?n:He(s)}function $t(e,t){return[{hours:Et(e,t,0),minutes:Et(e,t+1,0),seconds:Et(e,t+2,0),milliseconds:ze(e[t+3])},null,t+4]}function Ft(e,t){const n=!e[t]&&!e[t+1],s=Ke(e[t+1],e[t+2]);return[{},n?null:se.instance(s),t+3]}function Wt(e,t){return[{},e[t]?z.create(e[t]):null,t+1]}const Zt=RegExp(`^T?${Dt.source}$`),Vt=/^-?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 qt(e){const[t,n,s,r,a,i,o,l,c]=e,u="-"===t[0],d=l&&"-"===l[0],h=(e,t=!1)=>void 0!==e&&(t||e&&u)?-e:e;return[{years:h(_e(n)),months:h(_e(s)),weeks:h(_e(r)),days:h(_e(a)),hours:h(_e(i)),minutes:h(_e(o)),seconds:h(_e(l),"-0"===l),milliseconds:h(ze(c),d)}]}const Pt={GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function Ht(e,t,n,s,r,a,i){const o={year:2===t.length?Ye(He(t)):He(t),month:rt.indexOf(n)+1,day:He(s),hour:He(r),minute:He(a)};return i&&(o.second=He(i)),e&&(o.weekday=e.length>3?ot.indexOf(e)+1:lt.indexOf(e)+1),o}const _t=/^(?:(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 zt(e){const[,t,n,s,r,a,i,o,l,c,u,d]=e,h=Ht(t,r,s,n,a,i,o);let m;return m=l?Pt[l]:c?0:Ke(u,d),[h,new se(m)]}const At=/^(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$/,Rt=/^(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$/,Ut=/^(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 jt(e){const[,t,n,s,r,a,i,o]=e;return[Ht(t,r,s,n,a,i,o),se.utcInstance]}function Gt(e){const[,t,n,s,r,a,i,o]=e;return[Ht(t,o,n,s,r,a,i),se.utcInstance]}const Bt=St(/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,xt),Jt=St(/(\d{4})-?W(\d\d)(?:-?(\d))?/,xt),Yt=St(/(\d{4})-?(\d{3})/,xt),Qt=St(Lt),Kt=bt((function(e,t){return[{year:Et(e,t),month:Et(e,t+1,1),day:Et(e,t+2,1)},null,t+3]}),$t,Ft,Wt),Xt=bt(Mt,$t,Ft,Wt),en=bt(It,$t,Ft,Wt),tn=bt($t,Ft,Wt);const nn=bt($t);const sn=St(/(\d{4})-(\d\d)-(\d\d)/,Ot),rn=St(Nt),an=bt($t,Ft,Wt);const on="Invalid Duration",ln={weeks:{days:7,hours:168,minutes:10080,seconds:604800,milliseconds:6048e5},days:{hours:24,minutes:1440,seconds:86400,milliseconds:864e5},hours:{minutes:60,seconds:3600,milliseconds:36e5},minutes:{seconds:60,milliseconds:6e4},seconds:{milliseconds:1e3}},cn={years:{quarters:4,months:12,weeks:52,days:365,hours:8760,minutes:525600,seconds:31536e3,milliseconds:31536e6},quarters:{months:3,weeks:13,days:91,hours:2184,minutes:131040,seconds:7862400,milliseconds:78624e5},months:{weeks:4,days:30,hours:720,minutes:43200,seconds:2592e3,milliseconds:2592e6},...ln},un=365.2425,dn=30.436875,hn={years:{quarters:4,months:12,weeks:52.1775,days:un,hours:8765.82,minutes:525949.2,seconds:525949.2*60,milliseconds:525949.2*60*1e3},quarters:{months:3,weeks:13.044375,days:91.310625,hours:2191.455,minutes:131487.3,seconds:525949.2*60/4,milliseconds:7889237999.999999},months:{weeks:4.3481250000000005,days:dn,hours:730.485,minutes:43829.1,seconds:2629746,milliseconds:2629746e3},...ln},mn=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],fn=mn.slice(0).reverse();function gn(e,t,n=!1){const s={values:n?t.values:{...e.values,...t.values||{}},loc:e.loc.clone(t.loc),conversionAccuracy:t.conversionAccuracy||e.conversionAccuracy,matrix:t.matrix||e.matrix};return new wn(s)}function yn(e,t){let n=t.milliseconds??0;for(const s of fn.slice(1))t[s]&&(n+=t[s]*e[s].milliseconds);return n}function pn(e,t){const n=yn(e,t)<0?-1:1;mn.reduceRight(((s,r)=>{if(Ne(t[r]))return s;if(s){const a=t[s]*n,i=e[r][s],o=Math.floor(a/i);t[r]+=o*n,t[s]-=o*i*n}return r}),null),mn.reduce(((n,s)=>{if(Ne(t[s]))return n;if(n){const r=t[n]%1;t[n]-=r,t[s]+=r*e[n][s]}return s}),null)}class wn{constructor(e){const t="longterm"===e.conversionAccuracy||!1;let n=t?hn:cn;e.matrix&&(n=e.matrix),this.values=e.values,this.loc=e.loc||te.create(),this.conversionAccuracy=t?"longterm":"casual",this.invalid=e.invalid||null,this.matrix=n,this.isLuxonDuration=!0}static fromMillis(e,t){return wn.fromObject({milliseconds:e},t)}static fromObject(e,t={}){if(null==e||"object"!=typeof e)throw new c("Duration.fromObject: argument expected to be an object, got "+(null===e?"null":typeof e));return new wn({values:et(e,wn.normalizeUnit),loc:te.fromObject(t),conversionAccuracy:t.conversionAccuracy,matrix:t.matrix})}static fromDurationLike(e){if(Oe(e))return wn.fromMillis(e);if(wn.isDuration(e))return e;if("object"==typeof e)return wn.fromObject(e);throw new c(`Unknown duration argument ${e} of type ${typeof e}`)}static fromISO(e,t){const[n]=function(e){return kt(e,[Vt,qt])}(e);return n?wn.fromObject(n,t):wn.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static fromISOTime(e,t){const[n]=function(e){return kt(e,[Zt,nn])}(e);return n?wn.fromObject(n,t):wn.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static invalid(e,t=null){if(!e)throw new c("need to specify a reason the Duration is invalid");const n=e instanceof ge?e:new ge(e,t);if(fe.throwOnInvalid)throw new i(n);return new wn({invalid:n})}static normalizeUnit(e){const t={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():e];if(!t)throw new l(e);return t}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,t={}){const n={...t,floor:!1!==t.round&&!1!==t.floor};return this.isValid?wt.create(this.loc,n).formatDurationFromString(this,e):on}toHuman(e={}){if(!this.isValid)return on;const t=mn.map((t=>{const n=this.values[t];return Ne(n)?null:this.loc.numberFormatter({style:"unit",unitDisplay:"long",...e,unit:t.slice(0,-1)}).format(n)})).filter((e=>e));return this.loc.listFormatter({type:"conjunction",style:e.listStyle||"narrow",...e}).format(t)}toObject(){return this.isValid?{...this.values}:{}}toISO(){if(!this.isValid)return null;let e="P";return 0!==this.years&&(e+=this.years+"Y"),0===this.months&&0===this.quarters||(e+=this.months+3*this.quarters+"M"),0!==this.weeks&&(e+=this.weeks+"W"),0!==this.days&&(e+=this.days+"D"),0===this.hours&&0===this.minutes&&0===this.seconds&&0===this.milliseconds||(e+="T"),0!==this.hours&&(e+=this.hours+"H"),0!==this.minutes&&(e+=this.minutes+"M"),0===this.seconds&&0===this.milliseconds||(e+=Ae(this.seconds+this.milliseconds/1e3,3)+"S"),"P"===e&&(e+="T0S"),e}toISOTime(e={}){if(!this.isValid)return null;const t=this.toMillis();if(t<0||t>=864e5)return null;e={suppressMilliseconds:!1,suppressSeconds:!1,includePrefix:!1,format:"extended",...e,includeOffset:!1};return hs.fromMillis(t,{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?yn(this.matrix,this.values):NaN}valueOf(){return this.toMillis()}plus(e){if(!this.isValid)return this;const t=wn.fromDurationLike(e),n={};for(const e of mn)(Ze(t.values,e)||Ze(this.values,e))&&(n[e]=t.get(e)+this.get(e));return gn(this,{values:n},!0)}minus(e){if(!this.isValid)return this;const t=wn.fromDurationLike(e);return this.plus(t.negate())}mapUnits(e){if(!this.isValid)return this;const t={};for(const n of Object.keys(this.values))t[n]=Xe(e(this.values[n],n));return gn(this,{values:t},!0)}get(e){return this[wn.normalizeUnit(e)]}set(e){if(!this.isValid)return this;return gn(this,{values:{...this.values,...et(e,wn.normalizeUnit)}})}reconfigure({locale:e,numberingSystem:t,conversionAccuracy:n,matrix:s}={}){return gn(this,{loc:this.loc.clone({locale:e,numberingSystem:t}),matrix:s,conversionAccuracy:n})}as(e){return this.isValid?this.shiftTo(e).get(e):NaN}normalize(){if(!this.isValid)return this;const e=this.toObject();return pn(this.matrix,e),gn(this,{values:e},!0)}rescale(){if(!this.isValid)return this;return gn(this,{values:function(e){const t={};for(const[n,s]of Object.entries(e))0!==s&&(t[n]=s);return t}(this.normalize().shiftToAll().toObject())},!0)}shiftTo(...e){if(!this.isValid)return this;if(0===e.length)return this;e=e.map((e=>wn.normalizeUnit(e)));const t={},n={},s=this.toObject();let r;for(const a of mn)if(e.indexOf(a)>=0){r=a;let e=0;for(const t in n)e+=this.matrix[t][a]*n[t],n[t]=0;Oe(s[a])&&(e+=s[a]);const i=Math.trunc(e);t[a]=i,n[a]=(1e3*e-1e3*i)/1e3}else Oe(s[a])&&(n[a]=s[a]);for(const e in n)0!==n[e]&&(t[r]+=e===r?n[e]:n[e]/this.matrix[r][e]);return pn(this.matrix,t),gn(this,{values:t},!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 t of Object.keys(this.values))e[t]=0===this.values[t]?0:-this.values[t];return gn(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 null===this.invalid}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)return!1;if(!this.loc.equals(e.loc))return!1;for(const s of mn)if(t=this.values[s],n=e.values[s],!(void 0===t||0===t?void 0===n||0===n:t===n))return!1;var t,n;return!0}}const vn="Invalid Interval";class Sn{constructor(e){this.s=e.start,this.e=e.end,this.invalid=e.invalid||null,this.isLuxonInterval=!0}static invalid(e,t=null){if(!e)throw new c("need to specify a reason the Interval is invalid");const n=e instanceof ge?e:new ge(e,t);if(fe.throwOnInvalid)throw new a(n);return new Sn({invalid:n})}static fromDateTimes(e,t){const n=ms(e),s=ms(t),r=function(e,t){return e&&e.isValid?t&&t.isValid?t<e?Sn.invalid("end before start",`The end of an interval must be after its start, but you had start=${e.toISO()} and end=${t.toISO()}`):null:Sn.invalid("missing or invalid end"):Sn.invalid("missing or invalid start")}(n,s);return null==r?new Sn({start:n,end:s}):r}static after(e,t){const n=wn.fromDurationLike(t),s=ms(e);return Sn.fromDateTimes(s,s.plus(n))}static before(e,t){const n=wn.fromDurationLike(t),s=ms(e);return Sn.fromDateTimes(s.minus(n),s)}static fromISO(e,t){const[n,s]=(e||"").split("/",2);if(n&&s){let e,r,a,i;try{e=hs.fromISO(n,t),r=e.isValid}catch(s){r=!1}try{a=hs.fromISO(s,t),i=a.isValid}catch(s){i=!1}if(r&&i)return Sn.fromDateTimes(e,a);if(r){const n=wn.fromISO(s,t);if(n.isValid)return Sn.after(e,n)}else if(i){const e=wn.fromISO(n,t);if(e.isValid)return Sn.before(a,e)}}return Sn.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 isValid(){return null===this.invalidReason}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",t){if(!this.isValid)return NaN;const n=this.start.startOf(e,t);let s;return s=t?.useLocaleWeeks?this.end.reconfigure({locale:n.locale}):this.end,s=s.startOf(e,t),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))}isEmpty(){return this.s.valueOf()===this.e.valueOf()}isAfter(e){return!!this.isValid&&this.s>e}isBefore(e){return!!this.isValid&&this.e<=e}contains(e){return!!this.isValid&&(this.s<=e&&this.e>e)}set({start:e,end:t}={}){return this.isValid?Sn.fromDateTimes(e||this.s,t||this.e):this}splitAt(...e){if(!this.isValid)return[];const t=e.map(ms).filter((e=>this.contains(e))).sort(((e,t)=>e.toMillis()-t.toMillis())),n=[];let{s}=this,r=0;for(;s<this.e;){const e=t[r]||this.e,a=+e>+this.e?this.e:e;n.push(Sn.fromDateTimes(s,a)),s=a,r+=1}return n}splitBy(e){const t=wn.fromDurationLike(e);if(!this.isValid||!t.isValid||0===t.as("milliseconds"))return[];let n,{s}=this,r=1;const a=[];for(;s<this.e;){const e=this.start.plus(t.mapUnits((e=>e*r)));n=+e>+this.e?this.e:e,a.push(Sn.fromDateTimes(s,n)),s=n,r+=1}return a}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}abutsEnd(e){return!!this.isValid&&+e.e==+this.s}engulfs(e){return!!this.isValid&&(this.s<=e.s&&this.e>=e.e)}equals(e){return!(!this.isValid||!e.isValid)&&(this.s.equals(e.s)&&this.e.equals(e.e))}intersection(e){if(!this.isValid)return this;const t=this.s>e.s?this.s:e.s,n=this.e<e.e?this.e:e.e;return t>=n?null:Sn.fromDateTimes(t,n)}union(e){if(!this.isValid)return this;const t=this.s<e.s?this.s:e.s,n=this.e>e.e?this.e:e.e;return Sn.fromDateTimes(t,n)}static merge(e){const[t,n]=e.sort(((e,t)=>e.s-t.s)).reduce((([e,t],n)=>t?t.overlaps(n)||t.abutsStart(n)?[e,t.union(n)]:[e.concat([t]),n]:[e,n]),[[],null]);return n&&t.push(n),t}static xor(e){let t=null,n=0;const s=[],r=e.map((e=>[{time:e.s,type:"s"},{time:e.e,type:"e"}])),a=Array.prototype.concat(...r).sort(((e,t)=>e.time-t.time));for(const e of a)n+="s"===e.type?1:-1,1===n?t=e.time:(t&&+t!=+e.time&&s.push(Sn.fromDateTimes(t,e.time)),t=null);return Sn.merge(s)}difference(...e){return Sn.xor([this].concat(e)).map((e=>this.intersection(e))).filter((e=>e&&!e.isEmpty()))}toString(){return this.isValid?`[${this.s.toISO()} ${this.e.toISO()})`:vn}[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=f,t={}){return this.isValid?wt.create(this.s.loc.clone(t),e).formatInterval(this):vn}toISO(e){return this.isValid?`${this.s.toISO(e)}/${this.e.toISO(e)}`:vn}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:vn}toISOTime(e){return this.isValid?`${this.s.toISOTime(e)}/${this.e.toISOTime(e)}`:vn}toFormat(e,{separator:t=" "}={}){return this.isValid?`${this.s.toFormat(e)}${t}${this.e.toFormat(e)}`:vn}toDuration(e,t){return this.isValid?this.e.diff(this.s,e,t):wn.invalid(this.invalidReason)}mapEndpoints(e){return Sn.fromDateTimes(e(this.s),e(this.e))}}class bn{static hasDST(e=fe.defaultZone){const t=hs.now().setZone(e).set({month:12});return!e.isUniversal&&t.offset!==t.set({month:6}).offset}static isValidIANAZone(e){return z.isValidZone(e)}static normalizeZone(e){return ae(e,fe.defaultZone)}static getStartOfWeek({locale:e=null,locObj:t=null}={}){return(t||te.create(e)).getStartOfWeek()}static getMinimumDaysInFirstWeek({locale:e=null,locObj:t=null}={}){return(t||te.create(e)).getMinDaysInFirstWeek()}static getWeekendWeekdays({locale:e=null,locObj:t=null}={}){return(t||te.create(e)).getWeekendDays().slice()}static months(e="long",{locale:t=null,numberingSystem:n=null,locObj:s=null,outputCalendar:r="gregory"}={}){return(s||te.create(t,n,r)).months(e)}static monthsFormat(e="long",{locale:t=null,numberingSystem:n=null,locObj:s=null,outputCalendar:r="gregory"}={}){return(s||te.create(t,n,r)).months(e,!0)}static weekdays(e="long",{locale:t=null,numberingSystem:n=null,locObj:s=null}={}){return(s||te.create(t,n,null)).weekdays(e)}static weekdaysFormat(e="long",{locale:t=null,numberingSystem:n=null,locObj:s=null}={}){return(s||te.create(t,n,null)).weekdays(e,!0)}static meridiems({locale:e=null}={}){return te.create(e).meridiems()}static eras(e="short",{locale:t=null}={}){return te.create(t,null,"gregory").eras(e)}static features(){return{relative:$e(),localeWeek:Fe()}}}function kn(e,t){const n=e=>e.toUTC(0,{keepLocalTime:!0}).startOf("day").valueOf(),s=n(t)-n(e);return Math.floor(wn.fromMillis(s).as("days"))}function Cn(e,t,n,s){let[r,a,i,o]=function(e,t,n){const s=[["years",(e,t)=>t.year-e.year],["quarters",(e,t)=>t.quarter-e.quarter+4*(t.year-e.year)],["months",(e,t)=>t.month-e.month+12*(t.year-e.year)],["weeks",(e,t)=>{const n=kn(e,t);return(n-n%7)/7}],["days",kn]],r={},a=e;let i,o;for(const[l,c]of s)n.indexOf(l)>=0&&(i=l,r[l]=c(e,t),o=a.plus(r),o>t?(r[l]--,(e=a.plus(r))>t&&(o=e,r[l]--,e=a.plus(r))):e=o);return[e,r,o,i]}(e,t,n);const l=t-r,c=n.filter((e=>["hours","minutes","seconds","milliseconds"].indexOf(e)>=0));0===c.length&&(i<t&&(i=r.plus({[o]:1})),i!==r&&(a[o]=(a[o]||0)+l/(i-r)));const u=wn.fromObject(a,s);return c.length>0?wn.fromMillis(l,s).shiftTo(...c).plus(u):u}const Tn={arab:"[٠-٩]",arabext:"[۰-۹]",bali:"[᭐-᭙]",beng:"[-৯]",deva:"[-९]",fullwide:"[-]",gujr:"[-૯]",hanidec:"[|一|二|三|四|五|六|七|八|九]",khmr:"[០-៩]",knda:"[-೯]",laoo:"[-໙]",limb:"[᥆-᥏]",mlym:"[-൯]",mong:"[᠐-᠙]",mymr:"[-၉]",orya:"[-୯]",tamldec:"[-௯]",telu:"[-౯]",thai:"[-๙]",tibt:"[༠-༩]",latn:"\\d"},Dn={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]},Ln=Tn.hanidec.replace(/[\[|\]]/g,"").split("");function xn({numberingSystem:e},t=""){return new RegExp(`${Tn[e||"latn"]}${t}`)}const Mn="missing Intl.DateTimeFormat.formatToParts support";function In(e,t=(e=>e)){return{regex:e,deser:([e])=>t(function(e){let t=parseInt(e,10);if(isNaN(t)){t="";for(let n=0;n<e.length;n++){const s=e.charCodeAt(n);if(-1!==e[n].search(Tn.hanidec))t+=Ln.indexOf(e[n]);else for(const e in Dn){const[n,r]=Dn[e];s>=n&&s<=r&&(t+=s-n)}}return parseInt(t,10)}return t}(e))}}const Nn=`[ ${String.fromCharCode(160)}]`,On=new RegExp(Nn,"g");function En(e){return e.replace(/\./g,"\\.?").replace(On,Nn)}function $n(e){return e.replace(/\./g,"").replace(On," ").toLowerCase()}function Fn(e,t){return null===e?null:{regex:RegExp(e.map(En).join("|")),deser:([n])=>e.findIndex((e=>$n(n)===$n(e)))+t}}function Wn(e,t){return{regex:e,deser:([,e,t])=>Ke(e,t),groups:t}}function Zn(e){return{regex:e,deser:([e])=>e}}const Vn={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"}};let qn=null;function Pn(e,t){return Array.prototype.concat(...e.map((e=>function(e,t){if(e.literal)return e;const n=_n(wt.macroTokenToFormatOpts(e.val),t);return null==n||n.includes(void 0)?e:n}(e,t))))}function Hn(e,t,n){const s=Pn(wt.parseFormat(n),e),r=s.map((t=>function(e,t){const n=xn(t),s=xn(t,"{2}"),r=xn(t,"{3}"),a=xn(t,"{4}"),i=xn(t,"{6}"),o=xn(t,"{1,2}"),l=xn(t,"{1,3}"),c=xn(t,"{1,6}"),u=xn(t,"{1,9}"),d=xn(t,"{2,4}"),h=xn(t,"{4,6}"),m=e=>{return{regex:RegExp((t=e.val,t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&"))),deser:([e])=>e,literal:!0};var t},f=(f=>{if(e.literal)return m(f);switch(f.val){case"G":return Fn(t.eras("short"),0);case"GG":return Fn(t.eras("long"),0);case"y":return In(c);case"yy":case"kk":return In(d,Ye);case"yyyy":case"kkkk":return In(a);case"yyyyy":return In(h);case"yyyyyy":return In(i);case"M":case"L":case"d":case"H":case"h":case"m":case"q":case"s":case"W":return In(o);case"MM":case"LL":case"dd":case"HH":case"hh":case"mm":case"qq":case"ss":case"WW":return In(s);case"MMM":return Fn(t.months("short",!0),1);case"MMMM":return Fn(t.months("long",!0),1);case"LLL":return Fn(t.months("short",!1),1);case"LLLL":return Fn(t.months("long",!1),1);case"o":case"S":return In(l);case"ooo":case"SSS":return In(r);case"u":return Zn(u);case"uu":return Zn(o);case"uuu":case"E":case"c":return In(n);case"a":return Fn(t.meridiems(),0);case"EEE":return Fn(t.weekdays("short",!1),1);case"EEEE":return Fn(t.weekdays("long",!1),1);case"ccc":return Fn(t.weekdays("short",!0),1);case"cccc":return Fn(t.weekdays("long",!0),1);case"Z":case"ZZ":return Wn(new RegExp(`([+-]${o.source})(?::(${s.source}))?`),2);case"ZZZ":return Wn(new RegExp(`([+-]${o.source})(${s.source})?`),2);case"z":return Zn(/[a-z_+-/]{1,256}?/i);case" ":return Zn(/[^\S\n\r]/);default:return m(f)}})(e)||{invalidReason:Mn};return f.token=e,f}(t,e))),a=r.find((e=>e.invalidReason));if(a)return{input:t,tokens:s,invalidReason:a.invalidReason};{const[e,n]=function(e){return[`^${e.map((e=>e.regex)).reduce(((e,t)=>`${e}(${t.source})`),"")}$`,e]}(r),a=RegExp(e,"i"),[i,l]=function(e,t,n){const s=e.match(t);if(s){const e={};let t=1;for(const r in n)if(Ze(n,r)){const a=n[r],i=a.groups?a.groups+1:1;!a.literal&&a.token&&(e[a.token.val[0]]=a.deser(s.slice(t,t+i))),t+=i}return[s,e]}return[s,{}]}(t,a,n),[c,u,d]=l?function(e){let t,n=null;return Ne(e.z)||(n=z.create(e.z)),Ne(e.Z)||(n||(n=new se(e.Z)),t=e.Z),Ne(e.q)||(e.M=3*(e.q-1)+1),Ne(e.h)||(e.h<12&&1===e.a?e.h+=12:12===e.h&&0===e.a&&(e.h=0)),0===e.G&&e.y&&(e.y=-e.y),Ne(e.u)||(e.S=ze(e.u)),[Object.keys(e).reduce(((t,n)=>{const s=(e=>{switch(e){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}})(n);return s&&(t[s]=e[n]),t}),{}),n,t]}(l):[null,null,void 0];if(Ze(l,"a")&&Ze(l,"H"))throw new o("Can't include meridiem when specifying 24-hour format");return{input:t,tokens:s,regex:a,rawMatches:i,matches:l,result:c,zone:u,specificOffset:d}}}function _n(e,t){if(!e)return null;const n=wt.create(t,e).dtFormatter((qn||(qn=hs.fromMillis(1555555555555)),qn)),s=n.formatToParts(),r=n.resolvedOptions();return s.map((t=>function(e,t,n){const{type:s,value:r}=e;if("literal"===s){const e=/^\s+$/.test(r);return{literal:!e,val:e?" ":r}}const a=t[s];let i=s;"hour"===s&&(i=null!=t.hour12?t.hour12?"hour12":"hour24":null!=t.hourCycle?"h11"===t.hourCycle||"h12"===t.hourCycle?"hour12":"hour24":n.hour12?"hour12":"hour24");let o=Vn[i];if("object"==typeof o&&(o=o[a]),o)return{literal:!1,val:o}}(t,e,r)))}const zn="Invalid DateTime",An=864e13;function Rn(e){return new ge("unsupported zone",`the zone "${e.name}" is not supported`)}function Un(e){return null===e.weekData&&(e.weekData=Ce(e.c)),e.weekData}function jn(e){return null===e.localWeekData&&(e.localWeekData=Ce(e.c,e.loc.getMinDaysInFirstWeek(),e.loc.getStartOfWeek())),e.localWeekData}function Gn(e,t){const n={ts:e.ts,zone:e.zone,c:e.c,o:e.o,loc:e.loc,invalid:e.invalid};return new hs({...n,...t,old:n})}function Bn(e,t,n){let s=e-60*t*1e3;const r=n.offset(s);if(t===r)return[s,t];s-=60*(r-t)*1e3;const a=n.offset(s);return r===a?[s,r]:[e-60*Math.min(r,a)*1e3,Math.max(r,a)]}function Jn(e,t){const n=new Date(e+=60*t*1e3);return{year:n.getUTCFullYear(),month:n.getUTCMonth()+1,day:n.getUTCDate(),hour:n.getUTCHours(),minute:n.getUTCMinutes(),second:n.getUTCSeconds(),millisecond:n.getUTCMilliseconds()}}function Yn(e,t,n){return Bn(Ge(e),t,n)}function Qn(e,t){const n=e.o,s=e.c.year+Math.trunc(t.years),r=e.c.month+Math.trunc(t.months)+3*Math.trunc(t.quarters),a={...e.c,year:s,month:r,day:Math.min(e.c.day,je(s,r))+Math.trunc(t.days)+7*Math.trunc(t.weeks)},i=wn.fromObject({years:t.years-Math.trunc(t.years),quarters:t.quarters-Math.trunc(t.quarters),months:t.months-Math.trunc(t.months),weeks:t.weeks-Math.trunc(t.weeks),days:t.days-Math.trunc(t.days),hours:t.hours,minutes:t.minutes,seconds:t.seconds,milliseconds:t.milliseconds}).as("milliseconds"),o=Ge(a);let[l,c]=Bn(o,n,e.zone);return 0!==i&&(l+=i,c=e.zone.offset(l)),{ts:l,o:c}}function Kn(e,t,n,s,r,a){const{setZone:i,zone:o}=n;if(e&&0!==Object.keys(e).length||t){const s=t||o,r=hs.fromObject(e,{...n,zone:s,specificOffset:a});return i?r:r.setZone(o)}return hs.invalid(new ge("unparsable",`the input "${r}" can't be parsed as ${s}`))}function Xn(e,t,n=!0){return e.isValid?wt.create(te.create("en-US"),{allowZ:n,forceSimple:!0}).formatDateTimeFromString(e,t):null}function es(e,t){const n=e.c.year>9999||e.c.year<0;let s="";return n&&e.c.year>=0&&(s+="+"),s+=Pe(e.c.year,n?6:4),t?(s+="-",s+=Pe(e.c.month),s+="-",s+=Pe(e.c.day)):(s+=Pe(e.c.month),s+=Pe(e.c.day)),s}function ts(e,t,n,s,r,a){let i=Pe(e.c.hour);return t?(i+=":",i+=Pe(e.c.minute),0===e.c.millisecond&&0===e.c.second&&n||(i+=":")):i+=Pe(e.c.minute),0===e.c.millisecond&&0===e.c.second&&n||(i+=Pe(e.c.second),0===e.c.millisecond&&s||(i+=".",i+=Pe(e.c.millisecond,3))),r&&(e.isOffsetFixed&&0===e.offset&&!a?i+="Z":e.o<0?(i+="-",i+=Pe(Math.trunc(-e.o/60)),i+=":",i+=Pe(Math.trunc(-e.o%60))):(i+="+",i+=Pe(Math.trunc(e.o/60)),i+=":",i+=Pe(Math.trunc(e.o%60)))),a&&(i+="["+e.zone.ianaName+"]"),i}const ns={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},ss={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},rs={ordinal:1,hour:0,minute:0,second:0,millisecond:0},as=["year","month","day","hour","minute","second","millisecond"],is=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],os=["year","ordinal","hour","minute","second","millisecond"];function ls(e){switch(e.toLowerCase()){case"localweekday":case"localweekdays":return"localWeekday";case"localweeknumber":case"localweeknumbers":return"localWeekNumber";case"localweekyear":case"localweekyears":return"localWeekYear";default:return function(e){const t={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"}[e.toLowerCase()];if(!t)throw new l(e);return t}(e)}}function cs(e,t){const n=ae(t.zone,fe.defaultZone),s=te.fromObject(t),r=fe.now();let a,i;if(Ne(e.year))a=r;else{for(const t of as)Ne(e[t])&&(e[t]=ns[t]);const t=Me(e)||Ie(e);if(t)return hs.invalid(t);const s=n.offset(r);[a,i]=Yn(e,s,n)}return new hs({ts:a,zone:n,loc:s,o:i})}function us(e,t,n){const s=!!Ne(n.round)||n.round,r=(e,r)=>{e=Ae(e,s||n.calendary?0:2,!0);return t.loc.clone(n).relFormatter(n).format(e,r)},a=s=>n.calendary?t.hasSame(e,s)?0:t.startOf(s).diff(e.startOf(s),s).get(s):t.diff(e,s).get(s);if(n.unit)return r(a(n.unit),n.unit);for(const e of n.units){const t=a(e);if(Math.abs(t)>=1)return r(t,e)}return r(e>t?-0:0,n.units[n.units.length-1])}function ds(e){let t,n={};return e.length>0&&"object"==typeof e[e.length-1]?(n=e[e.length-1],t=Array.from(e).slice(0,e.length-1)):t=Array.from(e),[n,t]}class hs{constructor(e){const t=e.zone||fe.defaultZone;let n=e.invalid||(Number.isNaN(e.ts)?new ge("invalid input"):null)||(t.isValid?null:Rn(t));this.ts=Ne(e.ts)?fe.now():e.ts;let s=null,r=null;if(!n){if(e.old&&e.old.ts===this.ts&&e.old.zone.equals(t))[s,r]=[e.old.c,e.old.o];else{const e=t.offset(this.ts);s=Jn(this.ts,e),n=Number.isNaN(s.year)?new ge("invalid input"):null,s=n?null:s,r=n?null:e}}this._zone=t,this.loc=e.loc||te.create(),this.invalid=n,this.weekData=null,this.localWeekData=null,this.c=s,this.o=r,this.isLuxonDateTime=!0}static now(){return new hs({})}static local(){const[e,t]=ds(arguments),[n,s,r,a,i,o,l]=t;return cs({year:n,month:s,day:r,hour:a,minute:i,second:o,millisecond:l},e)}static utc(){const[e,t]=ds(arguments),[n,s,r,a,i,o,l]=t;return e.zone=se.utcInstance,cs({year:n,month:s,day:r,hour:a,minute:i,second:o,millisecond:l},e)}static fromJSDate(e,t={}){const n=(s=e,"[object Date]"===Object.prototype.toString.call(s)?e.valueOf():NaN);var s;if(Number.isNaN(n))return hs.invalid("invalid input");const r=ae(t.zone,fe.defaultZone);return r.isValid?new hs({ts:n,zone:r,loc:te.fromObject(t)}):hs.invalid(Rn(r))}static fromMillis(e,t={}){if(Oe(e))return e<-An||e>An?hs.invalid("Timestamp out of range"):new hs({ts:e,zone:ae(t.zone,fe.defaultZone),loc:te.fromObject(t)});throw new c(`fromMillis requires a numerical input, but received a ${typeof e} with value ${e}`)}static fromSeconds(e,t={}){if(Oe(e))return new hs({ts:1e3*e,zone:ae(t.zone,fe.defaultZone),loc:te.fromObject(t)});throw new c("fromSeconds requires a numerical input")}static fromObject(e,t={}){e=e||{};const n=ae(t.zone,fe.defaultZone);if(!n.isValid)return hs.invalid(Rn(n));const s=te.fromObject(t),r=et(e,ls),{minDaysInFirstWeek:a,startOfWeek:i}=xe(r,s),l=fe.now(),c=Ne(t.specificOffset)?n.offset(l):t.specificOffset,u=!Ne(r.ordinal),d=!Ne(r.year),h=!Ne(r.month)||!Ne(r.day),m=d||h,f=r.weekYear||r.weekNumber;if((m||u)&&f)throw new o("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(h&&u)throw new o("Can't mix ordinal dates with month/day");const g=f||r.weekday&&!m;let y,p,w=Jn(l,c);g?(y=is,p=ss,w=Ce(w,a,i)):u?(y=os,p=rs,w=De(w)):(y=as,p=ns);let v=!1;for(const e of y){Ne(r[e])?r[e]=v?p[e]:w[e]:v=!0}const S=g?function(e,t=4,n=1){const s=Ee(e.weekYear),r=qe(e.weekNumber,1,Je(e.weekYear,t,n)),a=qe(e.weekday,1,7);return s?r?!a&&we("weekday",e.weekday):we("week",e.weekNumber):we("weekYear",e.weekYear)}(r,a,i):u?function(e){const t=Ee(e.year),n=qe(e.ordinal,1,Ue(e.year));return t?!n&&we("ordinal",e.ordinal):we("year",e.year)}(r):Me(r),b=S||Ie(r);if(b)return hs.invalid(b);const k=g?Te(r,a,i):u?Le(r):r,[C,T]=Yn(k,c,n),D=new hs({ts:C,zone:n,o:T,loc:s});return r.weekday&&m&&e.weekday!==D.weekday?hs.invalid("mismatched weekday",`you can't specify both a weekday of ${r.weekday} and a date of ${D.toISO()}`):D}static fromISO(e,t={}){const[n,s]=function(e){return kt(e,[Bt,Kt],[Jt,Xt],[Yt,en],[Qt,tn])}(e);return Kn(n,s,t,"ISO 8601",e)}static fromRFC2822(e,t={}){const[n,s]=function(e){return kt(function(e){return e.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}(e),[_t,zt])}(e);return Kn(n,s,t,"RFC 2822",e)}static fromHTTP(e,t={}){const[n,s]=function(e){return kt(e,[At,jt],[Rt,jt],[Ut,Gt])}(e);return Kn(n,s,t,"HTTP",t)}static fromFormat(e,t,n={}){if(Ne(e)||Ne(t))throw new c("fromFormat requires an input string and a format");const{locale:s=null,numberingSystem:r=null}=n,a=te.fromOpts({locale:s,numberingSystem:r,defaultToEN:!0}),[i,o,l,u]=function(e,t,n){const{result:s,zone:r,specificOffset:a,invalidReason:i}=Hn(e,t,n);return[s,r,a,i]}(a,e,t);return u?hs.invalid(u):Kn(i,o,n,`format ${t}`,e,l)}static fromString(e,t,n={}){return hs.fromFormat(e,t,n)}static fromSQL(e,t={}){const[n,s]=function(e){return kt(e,[sn,Kt],[rn,an])}(e);return Kn(n,s,t,"SQL",e)}static invalid(e,t=null){if(!e)throw new c("need to specify a reason the DateTime is invalid");const n=e instanceof ge?e:new ge(e,t);if(fe.throwOnInvalid)throw new r(n);return new hs({invalid:n})}static isDateTime(e){return e&&e.isLuxonDateTime||!1}static parseFormatForOpts(e,t={}){const n=_n(e,te.fromObject(t));return n?n.map((e=>e?e.val:null)).join(""):null}static expandFormat(e,t={}){return Pn(wt.parseFormat(e),te.fromObject(t)).map((e=>e.val)).join("")}get(e){return this[e]}get isValid(){return null===this.invalid}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?Un(this).weekYear:NaN}get weekNumber(){return this.isValid?Un(this).weekNumber:NaN}get weekday(){return this.isValid?Un(this).weekday:NaN}get isWeekend(){return this.isValid&&this.loc.getWeekendDays().includes(this.weekday)}get localWeekday(){return this.isValid?jn(this).weekday:NaN}get localWeekNumber(){return this.isValid?jn(this).weekNumber:NaN}get localWeekYear(){return this.isValid?jn(this).weekYear:NaN}get ordinal(){return this.isValid?De(this.c).ordinal:NaN}get monthShort(){return this.isValid?bn.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?bn.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?bn.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?bn.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&&(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,t=6e4,n=Ge(this.c),s=this.zone.offset(n-e),r=this.zone.offset(n+e),a=this.zone.offset(n-s*t),i=this.zone.offset(n-r*t);if(a===i)return[this];const o=n-a*t,l=n-i*t,c=Jn(o,a),u=Jn(l,i);return c.hour===u.hour&&c.minute===u.minute&&c.second===u.second&&c.millisecond===u.millisecond?[Gn(this,{ts:o}),Gn(this,{ts:l})]:[this]}get isInLeapYear(){return Re(this.year)}get daysInMonth(){return je(this.year,this.month)}get daysInYear(){return this.isValid?Ue(this.year):NaN}get weeksInWeekYear(){return this.isValid?Je(this.weekYear):NaN}get weeksInLocalWeekYear(){return this.isValid?Je(this.localWeekYear,this.loc.getMinDaysInFirstWeek(),this.loc.getStartOfWeek()):NaN}resolvedLocaleOptions(e={}){const{locale:t,numberingSystem:n,calendar:s}=wt.create(this.loc.clone(e),e).resolvedOptions(this);return{locale:t,numberingSystem:n,outputCalendar:s}}toUTC(e=0,t={}){return this.setZone(se.instance(e),t)}toLocal(){return this.setZone(fe.defaultZone)}setZone(e,{keepLocalTime:t=!1,keepCalendarTime:n=!1}={}){if((e=ae(e,fe.defaultZone)).equals(this.zone))return this;if(e.isValid){let s=this.ts;if(t||n){const t=e.offset(this.ts),n=this.toObject();[s]=Yn(n,t,e)}return Gn(this,{ts:s,zone:e})}return hs.invalid(Rn(e))}reconfigure({locale:e,numberingSystem:t,outputCalendar:n}={}){return Gn(this,{loc:this.loc.clone({locale:e,numberingSystem:t,outputCalendar:n})})}setLocale(e){return this.reconfigure({locale:e})}set(e){if(!this.isValid)return this;const t=et(e,ls),{minDaysInFirstWeek:n,startOfWeek:s}=xe(t,this.loc),r=!Ne(t.weekYear)||!Ne(t.weekNumber)||!Ne(t.weekday),a=!Ne(t.ordinal),i=!Ne(t.year),l=!Ne(t.month)||!Ne(t.day),c=i||l,u=t.weekYear||t.weekNumber;if((c||a)&&u)throw new o("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(l&&a)throw new o("Can't mix ordinal dates with month/day");let d;r?d=Te({...Ce(this.c,n,s),...t},n,s):Ne(t.ordinal)?(d={...this.toObject(),...t},Ne(t.day)&&(d.day=Math.min(je(d.year,d.month),d.day))):d=Le({...De(this.c),...t});const[h,m]=Yn(d,this.o,this.zone);return Gn(this,{ts:h,o:m})}plus(e){if(!this.isValid)return this;return Gn(this,Qn(this,wn.fromDurationLike(e)))}minus(e){if(!this.isValid)return this;return Gn(this,Qn(this,wn.fromDurationLike(e).negate()))}startOf(e,{useLocaleWeeks:t=!1}={}){if(!this.isValid)return this;const n={},s=wn.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}if("weeks"===s)if(t){const e=this.loc.getStartOfWeek(),{weekday:t}=this;t<e&&(n.weekNumber=this.weekNumber-1),n.weekday=e}else n.weekday=1;if("quarters"===s){const e=Math.ceil(this.month/3);n.month=3*(e-1)+1}return this.set(n)}endOf(e,t){return this.isValid?this.plus({[e]:1}).startOf(e,t).minus(1):this}toFormat(e,t={}){return this.isValid?wt.create(this.loc.redefaultToEN(t)).formatDateTimeFromString(this,e):zn}toLocaleString(e=f,t={}){return this.isValid?wt.create(this.loc.clone(t),e).formatDateTime(this):zn}toLocaleParts(e={}){return this.isValid?wt.create(this.loc.clone(e),e).formatDateTimeParts(this):[]}toISO({format:e="extended",suppressSeconds:t=!1,suppressMilliseconds:n=!1,includeOffset:s=!0,extendedZone:r=!1}={}){if(!this.isValid)return null;const a="extended"===e;let i=es(this,a);return i+="T",i+=ts(this,a,t,n,s,r),i}toISODate({format:e="extended"}={}){return this.isValid?es(this,"extended"===e):null}toISOWeekDate(){return Xn(this,"kkkk-'W'WW-c")}toISOTime({suppressMilliseconds:e=!1,suppressSeconds:t=!1,includeOffset:n=!0,includePrefix:s=!1,extendedZone:r=!1,format:a="extended"}={}){if(!this.isValid)return null;return(s?"T":"")+ts(this,"extended"===a,t,e,n,r)}toRFC2822(){return Xn(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return Xn(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){return this.isValid?es(this,!0):null}toSQLTime({includeOffset:e=!0,includeZone:t=!1,includeOffsetSpace:n=!0}={}){let s="HH:mm:ss.SSS";return(t||e)&&(n&&(s+=" "),t?s+="z":e&&(s+="ZZ")),Xn(this,s,!0)}toSQL(e={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(e)}`:null}toString(){return this.isValid?this.toISO():zn}[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 t={...this.c};return e.includeConfig&&(t.outputCalendar=this.outputCalendar,t.numberingSystem=this.loc.numberingSystem,t.locale=this.loc.locale),t}toJSDate(){return new Date(this.isValid?this.ts:NaN)}diff(e,t="milliseconds",n={}){if(!this.isValid||!e.isValid)return wn.invalid("created by diffing an invalid DateTime");const s={locale:this.locale,numberingSystem:this.numberingSystem,...n},r=(o=t,Array.isArray(o)?o:[o]).map(wn.normalizeUnit),a=e.valueOf()>this.valueOf(),i=Cn(a?this:e,a?e:this,r,s);var o;return a?i.negate():i}diffNow(e="milliseconds",t={}){return this.diff(hs.now(),e,t)}until(e){return this.isValid?Sn.fromDateTimes(this,e):this}hasSame(e,t,n){if(!this.isValid)return!1;const s=e.valueOf(),r=this.setZone(e.zone,{keepLocalTime:!0});return r.startOf(t,n)<=s&&s<=r.endOf(t,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 t=e.base||hs.fromObject({},{zone:this.zone}),n=e.padding?this<t?-e.padding:e.padding:0;let s=["years","months","days","hours","minutes","seconds"],r=e.unit;return Array.isArray(e.unit)&&(s=e.unit,r=void 0),us(t,this.plus(n),{...e,numeric:"always",units:s,unit:r})}toRelativeCalendar(e={}){return this.isValid?us(e.base||hs.fromObject({},{zone:this.zone}),this,{...e,numeric:"auto",units:["years","months","days"],calendary:!0}):null}static min(...e){if(!e.every(hs.isDateTime))throw new c("min requires all arguments be DateTimes");return We(e,(e=>e.valueOf()),Math.min)}static max(...e){if(!e.every(hs.isDateTime))throw new c("max requires all arguments be DateTimes");return We(e,(e=>e.valueOf()),Math.max)}static fromFormatExplain(e,t,n={}){const{locale:s=null,numberingSystem:r=null}=n;return Hn(te.fromOpts({locale:s,numberingSystem:r,defaultToEN:!0}),e,t)}static fromStringExplain(e,t,n={}){return hs.fromFormatExplain(e,t,n)}static get DATE_SHORT(){return f}static get DATE_MED(){return g}static get DATE_MED_WITH_WEEKDAY(){return y}static get DATE_FULL(){return p}static get DATE_HUGE(){return w}static get TIME_SIMPLE(){return v}static get TIME_WITH_SECONDS(){return S}static get TIME_WITH_SHORT_OFFSET(){return b}static get TIME_WITH_LONG_OFFSET(){return k}static get TIME_24_SIMPLE(){return C}static get TIME_24_WITH_SECONDS(){return T}static get TIME_24_WITH_SHORT_OFFSET(){return D}static get TIME_24_WITH_LONG_OFFSET(){return L}static get DATETIME_SHORT(){return x}static get DATETIME_SHORT_WITH_SECONDS(){return M}static get DATETIME_MED(){return I}static get DATETIME_MED_WITH_SECONDS(){return N}static get DATETIME_MED_WITH_WEEKDAY(){return O}static get DATETIME_FULL(){return E}static get DATETIME_FULL_WITH_SECONDS(){return $}static get DATETIME_HUGE(){return F}static get DATETIME_HUGE_WITH_SECONDS(){return W}}function ms(e){if(hs.isDateTime(e))return e;if(e&&e.valueOf&&Oe(e.valueOf()))return hs.fromJSDate(e);if(e&&"object"==typeof e)return hs.fromObject(e);throw new c(`Unknown datetime argument: ${e}, of type ${typeof e}`)}}},t={};function n(s){var r=t[s];if(void 0!==r)return r.exports;var a=t[s]={exports:{}};return e[s](a,a.exports,n),a.exports}n.d=(e,t)=>{for(var s in t)n.o(t,s)&&!n.o(e,s)&&Object.defineProperty(e,s,{enumerable:!0,get:t[s]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n(296),n(284),n(172),n(428),n(372),n(582),n(583),n(967),n(495),n(748),n(478),n(257),n(449),n(846);n(407)})();