(function(){"use strict";var freeGlobal="object"==typeof global&&global&&global.Object===Object&&global,freeSelf="object"==typeof self&&self&&self.Object===Object&&self,root=freeGlobal||freeSelf||Function("return this")(),Symbol$1=root.Symbol,objectProto$e=Object.prototype,hasOwnProperty$c=objectProto$e.hasOwnProperty,nativeObjectToString$1=objectProto$e.toString,symToStringTag$1=Symbol$1?Symbol$1.toStringTag:void 0;function getRawTag(e){var t=hasOwnProperty$c.call(e,symToStringTag$1),o=e[symToStringTag$1];try{e[symToStringTag$1]=void 0;var n=!0}catch(i){}var r=nativeObjectToString$1.call(e);return n&&(t?e[symToStringTag$1]=o:delete e[symToStringTag$1]),r}var objectProto$d=Object.prototype,nativeObjectToString=objectProto$d.toString;function objectToString(e){return nativeObjectToString.call(e)}var nullTag="[object Null]",undefinedTag="[object Undefined]",symToStringTag=Symbol$1?Symbol$1.toStringTag:void 0;function baseGetTag(e){return null==e?void 0===e?undefinedTag:nullTag:symToStringTag&&symToStringTag in Object(e)?getRawTag(e):objectToString(e)}function isObjectLike(e){return null!=e&&"object"==typeof e}var symbolTag$3="[object Symbol]";function isSymbol(e){return"symbol"==typeof e||isObjectLike(e)&&baseGetTag(e)==symbolTag$3}function arrayMap(e,t){for(var o=-1,n=null==e?0:e.length,r=Array(n);++o-1&&e%1==0&&e-1&&e%1==0&&e<=MAX_SAFE_INTEGER}function isArrayLike(e){return null!=e&&isLength(e.length)&&!isFunction$1(e)}var objectProto$a=Object.prototype;function isPrototype(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||objectProto$a)}function baseTimes(e,t){for(var o=-1,n=Array(e);++o-1}function listCacheSet(e,t){var o=this.__data__,n=assocIndexOf(o,e);return n<0?(++this.size,o.push([e,t])):o[n][1]=t,this}function ListCache(e){var t=-1,o=null==e?0:e.length;for(this.clear();++tr?0:r+t),(o=o>r?r:o)<0&&(o+=r),r=t>o?0:o-t>>>0,t>>>=0;for(var i=Array(r);++n=n?e:baseSlice(e,t,o)}var rsAstralRange$2="\\ud800-\\udfff",rsComboMarksRange$3="\\u0300-\\u036f",reComboHalfMarksRange$3="\\ufe20-\\ufe2f",rsComboSymbolsRange$3="\\u20d0-\\u20ff",rsComboRange$3=rsComboMarksRange$3+reComboHalfMarksRange$3+rsComboSymbolsRange$3,rsVarRange$2="\\ufe0e\\ufe0f",rsZWJ$2="\\u200d",reHasUnicode=RegExp("["+rsZWJ$2+rsAstralRange$2+rsComboRange$3+rsVarRange$2+"]");function hasUnicode(e){return reHasUnicode.test(e)}function asciiToArray(e){return e.split("")}var rsAstralRange$1="\\ud800-\\udfff",rsComboMarksRange$2="\\u0300-\\u036f",reComboHalfMarksRange$2="\\ufe20-\\ufe2f",rsComboSymbolsRange$2="\\u20d0-\\u20ff",rsComboRange$2=rsComboMarksRange$2+reComboHalfMarksRange$2+rsComboSymbolsRange$2,rsVarRange$1="\\ufe0e\\ufe0f",rsAstral="["+rsAstralRange$1+"]",rsCombo$2="["+rsComboRange$2+"]",rsFitz$1="\\ud83c[\\udffb-\\udfff]",rsModifier$1="(?:"+rsCombo$2+"|"+rsFitz$1+")",rsNonAstral$1="[^"+rsAstralRange$1+"]",rsRegional$1="(?:\\ud83c[\\udde6-\\uddff]){2}",rsSurrPair$1="[\\ud800-\\udbff][\\udc00-\\udfff]",rsZWJ$1="\\u200d",reOptMod$1=rsModifier$1+"?",rsOptVar$1="["+rsVarRange$1+"]?",rsOptJoin$1="(?:"+rsZWJ$1+"(?:"+[rsNonAstral$1,rsRegional$1,rsSurrPair$1].join("|")+")"+rsOptVar$1+reOptMod$1+")*",rsSeq$1=rsOptVar$1+reOptMod$1+rsOptJoin$1,rsSymbol="(?:"+[rsNonAstral$1+rsCombo$2+"?",rsCombo$2,rsRegional$1,rsSurrPair$1,rsAstral].join("|")+")",reUnicode=RegExp(rsFitz$1+"(?="+rsFitz$1+")|"+rsSymbol+rsSeq$1,"g");function unicodeToArray(e){return e.match(reUnicode)||[]}function stringToArray(e){return hasUnicode(e)?unicodeToArray(e):asciiToArray(e)}function createCaseFirst(e){return function(t){var o=hasUnicode(t=toString$1(t))?stringToArray(t):void 0,n=o?o[0]:t.charAt(0),r=o?castSlice(o,1).join(""):t.slice(1);return n[e]()+r}}var upperFirst=createCaseFirst("toUpperCase");function capitalize(e){return upperFirst(toString$1(e).toLowerCase())}function arrayReduce(e,t,o,n){for(var r=-1,i=null==e?0:e.length;++r=t?e:t),e}function stackClear(){this.__data__=new ListCache,this.size=0}function stackDelete(e){var t=this.__data__,o=t.delete(e);return this.size=t.size,o}function stackGet(e){return this.__data__.get(e)}function stackHas(e){return this.__data__.has(e)}var LARGE_ARRAY_SIZE=200;function stackSet(e,t){var o=this.__data__;if(o instanceof ListCache){var n=o.__data__;if(!Map$1||n.lengths))return!1;var c=i.get(e),d=i.get(t);if(c&&d)return c==t&&d==e;var u=-1,p=!0,g=o&COMPARE_UNORDERED_FLAG$3?new SetCache:void 0;for(i.set(e,t),i.set(t,e);++u=0&&e.slice(o,r)==t}function parent(e,t){return t.length<2?e:baseGet(e,baseSlice(t,0,-1))}var mapTag="[object Map]",setTag="[object Set]",objectProto=Object.prototype,hasOwnProperty$1=objectProto.hasOwnProperty;function isEmpty(e){if(null==e)return!0;if(isArrayLike(e)&&(isArray$1(e)||"string"==typeof e||"function"==typeof e.splice||isBuffer$1(e)||isTypedArray$1(e)||isArguments(e)))return!e.length;var t=getTag(e);if(t==mapTag||t==setTag)return!e.size;if(isPrototype(e))return!baseKeys(e).length;for(var o in e)if(hasOwnProperty$1.call(e,o))return!1;return!0}function baseUnset(e,t){return null==(e=parent(e,t=castPath(t,e)))||delete e[toKey(last(t))]}function baseSet(e,t,o,n){if(!isObject$1(e))return e;for(var r=-1,i=(t=castPath(t,e)).length,a=i-1,s=e;null!=s&&++r{var t;if("cbw-header"===e){const e=null==(t=document.querySelector("cbw-header"))?void 0:t.shadowRoot,o=null==e?void 0:e.querySelector("a");o&&o.focus()}else{const t=document.querySelector(`#${e}`);t&&(t.getAttribute("tabindex")||t.setAttribute("tabindex","-1"),t.focus())}},pageScrollAnimate=(e,t)=>{const o=Math.max(document.body.scrollHeight,document.body.offsetHeight,document.documentElement.clientHeight,document.documentElement.scrollHeight,document.documentElement.offsetHeight),n=window.innerHeight||document.documentElement.clientHeight||document.getElementsByTagName("body")[0].clientHeight,r=e,i=Math.round(o-r{const e=i.toFixed(),o=()=>{window.pageYOffset.toFixed()===e&&(window.removeEventListener("scroll",o),setFocus$1(t))};window.addEventListener("scroll",o),o(),window.scroll({top:0,behavior:"smooth"})})()},scrollToGlobalHeader=(e,t)=>{e.preventDefault(),pageScrollAnimate(0,t)},addQueryParam$1=(e,t,o)=>{const n=new URL(e);return n.searchParams.append(t,o),n.href},stringToHTML=(e,t)=>(e.innerHTML=t,e),formatLinks$1=(e,t)=>e.map((e=>(e.url=e.url?addQueryParam$1(e.url,"navId",`${t}-${e.linkCode}`):"",e))),getLink$1=({url:e,label:t,name:o},n)=>`
  • ${t||o}
  • `,getCategory$1=(e,t,o)=>{const n=`
      ${e.map((e=>getLink$1(e,o))).join("")}
    `,r=t?``:"",i=document.createElement("DIV");i.setAttribute("class","cbw-footer-category");return stringToHTML(i,``)},getLinksMarkup=(e,t)=>{const o=document.createElement("DIV");return["1","2","3"].forEach((n=>{const r=document.createElement("DIV");r.setAttribute("class","cbw-footer-column cbw-col-xs-12 cbw-col-sm-4 cbw-col-lg-3 "+("3"===n?"cbw-offset-lg-3":""));e.filter((e=>e.column===n&&""===e.category)).forEach((o=>{const n=getCategory$1(e.filter((e=>e.category===o.name)),o.label??"",t);r.appendChild(n)})),o.appendChild(r)})),o},localFooterLinks=[{name:"programs",url:"https://www.collegeboard.org",label:"Programs",linkcode:"",category:"",column:"1"},{name:"SAT",label:"SAT®",url:"https://satsuite.collegeboard.org/sat",category:"programs",linkCode:"sat"},{name:"PSAT/NMSQT",label:"PSAT/NMSQT®",url:"https://satsuite.collegeboard.org/psat-nmsqt",category:"programs",linkCode:"pn"},{name:"PSAT 10",label:"PSAT 10",url:"https://satsuite.collegeboard.org/psat-10",category:"programs",linkCode:"p10"},{name:"PSAT 8/9",label:"PSAT 8/9",url:"https://satsuite.collegeboard.org/psat-8-9",category:"programs",linkCode:"p89"},{name:"SpringBoard",label:"SpringBoard®",url:"https://springboard.collegeboard.org/",category:"programs",linkCode:"sb"},{name:"Pre-AP",label:"Pre-AP®",url:"https://pre-ap.collegeboard.org",category:"programs",linkCode:"preap"},{name:"AP",label:"AP®",url:"https://ap.collegeboard.org",category:"programs",linkCode:"ap"},{name:"BigFuture",label:"BigFuture®",url:"https://bigfuture.collegeboard.org/",category:"programs",linkCode:"cp"},{name:"ACCUPLACER",label:"ACCUPLACER®",url:"https://accuplacer.collegeboard.org/",category:"programs",linkCode:"accu"},{name:"CLEP",label:"CLEP®",url:"https://clep.collegeboard.org/",category:"programs",linkCode:"clep"},{name:"CSS Profile",label:"CSS Profile®",url:"https://cssprofile.collegeboard.org/",category:"programs",linkCode:"css"},{name:"Search",url:"https://highered.collegeboard.org/recruitment-admissions/enrollment-solutions/college-board-search",category:"programs",linkCode:"cbsch"},{name:"PowerFAIDS",label:"PowerFAIDS",url:"https://powerfaids.collegeboard.org/",category:"programs",linkCode:"pfaid"},{name:"organization",url:"https://www.collegeboard.org",label:"College Board",linkcode:"",category:"",column:"2"},{name:"About Us",url:"https://about.collegeboard.org/",category:"organization",linkCode:"abt"},{name:"Careers",url:"https://careers.collegeboard.org/ ",category:"organization",linkCode:"car"},{name:"Membership",url:"https://membership.collegeboard.org",category:"organization",linkCode:"mem"},{name:"All Access: News for Members",url:"https://allaccess.collegeboard.org",category:"organization",linkCode:"allaccess"},{name:"Newsroom",url:"https://newsroom.collegeboard.org",category:"organization",linkCode:"news"},{name:"Research",url:"https://research.collegeboard.org/",category:"organization",linkCode:"rsch"},{name:"Services for Students with Disabilities",url:"https://accommodations.collegeboard.org/",category:"organization",linkCode:"ssd"},{name:"Bluebook Digital Testing",url:"https://bluebook.collegeboard.org/",category:"organization",linkCode:"bb"},{name:"Educational Opportunity Center",url:"https://information.collegeboard.org/educational-opportunity-center/",category:"organization",linkCode:"eoc"},{name:"College Board Blog",url:"https://blog.collegeboard.org/",category:"organization",linkCode:"blog"},{name:"The Elective",url:"https://elective.collegeboard.org/",category:"organization",linkCode:"elective"},{name:"extra",url:"https://www.collegeboard.org",label:"",linkcode:"",category:"",column:"3"},{name:"Help",url:"https://support.collegeboard.org",category:"extra",linkCode:"help"},{name:"Contact Us",url:"https://about.collegeboard.org/contact-us",category:"extra",linkCode:"contact"},{name:"Doing Business",url:"https://about.collegeboard.org/doing-business",category:"extra",linkCode:"bus"},{name:"Compliance",url:"https://secure.ethicspoint.com/domain/en/report_custom.asp?clientid=18136",category:"extra",linkCode:"comp"},{name:"Legal Terms for Students",url:"https://privacy.collegeboard.org/student-legal-terms",category:"extra",linkCode:"stterms"},{name:"Legal Terms for Educators and Institutions",url:"https://privacy.collegeboard.org/educator-legal-terms",category:"extra",linkCode:"edterms"},{name:"Privacy Center",url:"https://privacy.collegeboard.org",category:"extra",linkCode:"pp"},{name:"Privacy Settings",url:"https://my.collegeboard.org/profile/privacy",category:"extra",linkCode:"ps"},{name:"Your Privacy Choices",url:"https://form.collegeboard.org/f/data-subject-rights-request",category:"extra",linkCode:"pc"},{name:"Copyright and Trademark Permissions",url:"https://privacy.collegeboard.org/copyright-trademark",category:"extra",linkCode:"permissions"},{name:"Report Cheating",url:"https://forms.collegeboard.org/reportcheating/s/",category:"extra",linkCode:"rc"}],defaultFooterLinks=localFooterLinks,fontsStyle='@font-face{font-family:CBW Icons;font-style:normal;src:url(//atlas.collegeboard.org/apricot/prod/4.8.0/fonts/cbw-icons.woff) format("woff"),url(//atlas.collegeboard.org/apricot/prod/4.8.0/fonts/cbw-icons.ttf) format("truetype");font-display:fallback}@font-face{font-family:"CBW Icons Logo 4_8_0";font-style:normal;src:url(//atlas.collegeboard.org/apricot/prod/4.8.0/fonts/cbw-icons-logo_4_8_0.woff) format("woff"),url(//atlas.collegeboard.org/apricot/prod/4.8.0/fonts/cbw-icons-logo_4_8_0.ttf) format("truetype");font-display:fallback}@font-face{font-family:Roboto;src:url(//atlas.collegeboard.org/apricot/prod/4.8.0/fonts/Roboto-Regular.woff2) format("woff2"),url(//atlas.collegeboard.org/apricot/prod/4.8.0/fonts/Roboto-Regular.woff) format("woff"),url(//atlas.collegeboard.org/apricot/prod/4.8.0/fonts/Roboto-Regular.ttf) format("truetype");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:Roboto;src:url(//atlas.collegeboard.org/apricot/prod/4.8.0/fonts/Roboto-Light.woff2) format("woff2"),url(//atlas.collegeboard.org/apricot/prod/4.8.0/fonts/Roboto-Light.woff) format("woff"),url(//atlas.collegeboard.org/apricot/prod/4.8.0/fonts/Roboto-Light.ttf) format("truetype");font-style:normal;font-weight:300;font-display:swap}',footerStyle=":host::part(cbw-widget){display:none}.cbw-footer{margin-top:70px}.cbw-footer .cbw-black1{color:#1e1e1e!important}.cbw-footer .cbw-black1-border{border-color:#1e1e1e!important}.cbw-footer .cbw-white-color{color:#fff!important}.cbw-footer ul{list-style:none;padding:0;margin:0}.cbw-footer ul li{padding:0 12px}.cbw-footer ul li a{display:block;line-height:18px;padding:6px 0}.cbw-footer ul sup{font-size:10px}.cbw-footer .cbw-footer-navigation{border-top:4px solid #fedb00;background:#1e1e1e;padding-bottom:48px}.cbw-footer .cbw-footer-navigation .cbw-footer-links-container{padding-top:48px}@media (min-width: 1px) and (max-width: 767.98px){.cbw-footer .cbw-footer-navigation .cbw-footer-links-container{padding-top:24px}}.cbw-footer .cbw-footer-trademark{background:#fff;font-size:12px;font-weight:700;height:auto;margin:16px 0}.cbw-footer .cbw-footer-controls{overflow:hidden}.cbw-footer .cbw-footer-controls .cbw-footer-top{float:right;display:block;background:#fedb00;border:1px solid #fedb00;color:#1e1e1e;padding:9px 15px;font-family:Roboto,Helvetica,Arial,sans-serif;font-size:14px}.cbw-footer .cbw-footer-controls .cbw-footer-top:active,.cbw-footer .cbw-footer-controls .cbw-footer-top:focus{border:1px solid #1e1e1e;text-decoration:underline}.cbw-footer .cbw-footer-controls .cbw-footer-top:hover{text-decoration:underline}.cbw-footer .cbw-footer-heading{font-weight:700;border-bottom:4px solid #fff;color:#fff;padding:6px 12px;margin:0 0 9px;min-height:40px}.cbw-footer .cbw-footer-heading .cbw-footer-title{font-family:inherit;font-size:16px;margin:0;padding:0}@media (min-width: 1px) and (max-width: 767.98px){.cbw-footer .cbw-footer-column .cbw-footer-category{margin-top:20px}.cbw-footer .cbw-footer-heading{min-height:0}}.cbw-footer .cbw-footer-column .cbw-footer-category+.cbw-footer-category{margin-top:24px}.cbw-footer .cbw-footer-column .cbw-footer-link{color:#d9d9d9;display:block;font-size:14px;font-family:inherit;font-weight:400}.cbw-footer .cbw-footer-column .cbw-footer-link:active,.cbw-footer .cbw-footer-column .cbw-footer-link:link,.cbw-footer .cbw-footer-column .cbw-footer-link:visited,.cbw-footer .cbw-footer-column .cbw-footer-link:hover{color:#d9d9d9;display:block;font-size:14px;font-weight:400}.cbw-footer .cbw-footer-column .cbw-footer-link:hover{text-decoration:underline}.cbw-footer .cbw-footer-column *[class^=cbw-col-]{margin:0;padding:0}.cbw-footer .cbw-footer-column .cbw-nested-list{height:64px;padding:9px 0;margin-bottom:0}.cbw-footer .cbw-footer-column .cbw-nested-list a,.cbw-footer .cbw-footer-column .cbw-nested-list a:active,.cbw-footer .cbw-footer-column .cbw-nested-list a:link,.cbw-footer .cbw-footer-column .cbw-nested-list a:hover,.cbw-footer .cbw-footer-column .cbw-nested-list a:visited{display:block;color:#fff;text-decoration:none}.cbw-footer .cbw-footer-column .cbw-nested-list a:hover{color:#fedb00}.cbw-footer .cbw-footer-column .cbw-nested-list li{padding:0;width:32px;float:left;list-style:none}@media (min-width: 768px) and (max-width: 1023.98px){.cbw-footer .cbw-footer-column .cbw-nested-list li{width:28px}}.cbw-footer .cbw-footer-column .cbw-nested-list li+li{margin-left:10px}@media (min-width: 1px) and (max-width: 767.98px){.cbw-footer .cbw-footer-wrapper{display:flex}}@media (min-width: 1px) and (max-width: 767.98px){.cbw-footer .cbw-widget .cbw-row{flex-wrap:nowrap}}.cbw-footer .cbw-footer-copy-right-wrapper{background-color:#fff;overflow:hidden}.cbw-footer.cbw-remove-top-margin{margin-top:0}",stringReplacer=(e,t)=>{const o=/{{([a-zA-Z-_\d]+)}}/gim,n=e.matchAll(o),r=[];for(const i of n)r.push(i[1]);for(const i in t)-1!=r.indexOf(i)&&(e=e.replaceAll(`{{${i}}}`,t[i]));return e=e.replace(o,"")},shadowLinkCloner=e=>{e.shadowRoot&&e.shadowRoot.addEventListener("click",(t=>(t=>{var o;let n=t.target;if(n&&"SPAN"===n.tagName&&n.parentNode&&(n=n.parentNode),"A"===n.tagName&&"nav"===n.getAttribute("data-cbtrack-linktype")){t.preventDefault(),null==(o=e.querySelector(".cb-cloned-shadow-link"))||o.remove();const r=n.cloneNode(!0);r.setAttribute("aria-hidden","true"),r.classList.add("cb-hidden","cb-cloned-shadow-link"),e.appendChild(r),r.click()}})(t)))},addComponentTrackingCode=(e,t)=>{var o;null==(o=document.querySelector(e))||o.setAttribute("data-cbtrack-corewidget",t)},fireComponentLoaded=e=>{document.dispatchEvent(new CustomEvent("cbTrack-widgetsCoreEvent",{bubbles:!0,detail:{widgetKey:e,actionType:"dom-ready"}})),document.dispatchEvent(new CustomEvent("cbw-mounted",{bubbles:!0,detail:{widget:e}}))},apricotVersion="4.8.0";class Footer extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"})}connectedCallback(){var e;const t=this.shadowRoot;if(!t)return;const o=["linksUrl","topTargetId","color","backgroundColor","backToTopColor","backToTopBackgroundColor"],n=["showLinks","showBackToTopLink","removeTopMargin"],r=this.getAttributeNames();let i={};r.forEach((e=>{const t=camelCase(e);o.includes(t)?i[t]=this.getAttribute(e):n.includes(t)&&(i[t]="true"===this.getAttribute(e))})),i={linksUrl:"https://athena.collegeboard.org/api/footer-links.json",topTargetId:"cbw-header",showLinks:!0,showBackToTopLink:!0,color:"light",backgroundColor:"#1e1e1e",backToTopColor:"dark",backToTopBackgroundColor:"#fedb00",removeTopMargin:!1,...i};const a=e=>{const o=t.querySelector(".cbw-footer-links-container .cbw-row");if(o&&!1===i.showLinks)o.innerHTML="";else if(o){const t=formatLinks$1(e,"gf");o.innerHTML=getLinksMarkup(t,i.color).innerHTML}},s=(new Date).getFullYear(),l={footerStyle:footerStyle.toString(),thisYear:s.toString(),backToTop:"Back to top of page",top:"Top",removeTopMarginClass:i.removeTopMargin?"cbw-remove-top-margin":""};t.innerHTML=stringReplacer(template$5,l),addComponentTrackingCode("cbw-footer","footer"),fireComponentLoaded("footer");try{const e=i.linksUrl||"https://athena.collegeboard.org/api/footer-links.json";fetch(e).then((e=>{e.json().then((e=>{a(e)})).catch((e=>{console.error(e),a(defaultFooterLinks)}))})).catch((e=>{console.error(`Notification retrieval error: ${e}`),a(defaultFooterLinks)}))}catch(h){console.error(h),a(defaultFooterLinks)}const c=t.querySelector(".cbw-footer-navigation"),d="background: "+i.backgroundColor+"; border-color: "+i.backToTopBackgroundColor+";";c&&c.setAttribute("style",d);const u=t.querySelector("a.cbw-footer-top");if(i.showBackToTopLink&&u){const e={href:"#"+i.topTargetId,style:"background: "+i.backToTopBackgroundColor+";border-color: "+i.backToTopBackgroundColor+";"};for(const[t,o]of Object.entries(e))u.setAttribute(t,o);"light"===i.backToTopColor&&u.classList.add("cbw-white-color"),u.onclick=e=>{scrollToGlobalHeader(e,i.topTargetId)}}else null==(e=t.querySelector(".cbw-footer-controls"))||e.remove();const p=document.createElement("style");p.textContent=fontsStyle.toString(),this.appendChild(p);const g=document.createElement("link");g.setAttribute("rel","stylesheet"),g.setAttribute("href",`//atlas.collegeboard.org/apricot/prod/${apricotVersion}/widgets.css`),t.appendChild(g),shadowLinkCloner(this)}}const template$4='\n\n
    \n',headerStyle=':host::part(cbw-widget){display:none}.cbw-header{position:relative;background-color:#fff;border-bottom:2px solid #d9d9d9;border-top:4px solid #1e1e1e;z-index:900}.cbw-header .cbw-invisible{visibility:hidden}.cbw-header .cbw-bg-blue2{background-color:#009cde}.cbw-header .cbw-bg-purple1{background-color:#702f8a}.cbw-header .cbw-bg-black1{background-color:#1e1e1e}.cbw-header .cbw-bg-blue5{background-color:#324dc7}.cbw-header .cbw-bg-white{background-color:#fff}.cbw-header .cbw-white,.cbw-header .cbw-white:visited{color:#fff!important}.cbw-header .cbw-black{color:#000!important}@media (min-width: 1px) and (max-width: 767.98px){.cbw-header .cbw-bg-blue2-xs-only{background-color:#009cde}.cbw-header .cbw-bg-purple1-xs-only{background-color:#702f8a}.cbw-header .cbw-bg-black1-xs-only{background-color:#1e1e1e}.cbw-header .cbw-bg-blue5-xs-only{background-color:#324dc7}.cbw-header .cbw-white-xs-only{color:#fff}.cbw-header.cbw-bg-blue2-xs-only{background-color:#009cde}.cbw-header.cbw-bg-purple1-xs-only{background-color:#702f8a}.cbw-header.cbw-bg-black1-xs-only{background-color:#1e1e1e}.cbw-header.cbw-bg-blue5-xs-only{background-color:#324dc7}.cbw-header.cbw-white-xs-only{color:#fff}.cbw-header.cbw-bg-black-xs{background-color:#1e1e1e!important}}.cbw-header.cbw-border-top-blue2{border-top-color:#009cde}.cbw-header.cbw-border-top-purple1{border-top-color:#702f8a}.cbw-header.cbw-border-top-black{border-top-color:#000}.cbw-header.cbw-border-top-blue5{border-top-color:#324dc7}.cbw-header a.cbw-skip{background:#fff;position:absolute;width:150px;height:30px;line-height:30px;top:-9999px;text-align:center;left:50%;transform:translate(-50%);font-size:14px;z-index:999}.cbw-header a.cbw-skip:focus{top:7px}@media (min-width: 1px) and (max-width: 767.98px){.cbw-header a.cbw-skip{display:none}}.cbw-header .cbw-container{height:44px}@media (min-width: 1px) and (max-width: 767.98px){.cbw-header .cbw-container.cbw-container-header-main{padding-left:0}}.cbw-header .cbw-header-container,.cbw-header .cbw-header-container .cbw-header-container-lockup,.cbw-header .cbw-header-container .cbw-header-container-login{display:flex;align-items:center;flex-flow:row nowrap;justify-content:space-between;height:100%}@media (min-width: 1px) and (max-width: 767.98px){.cbw-header .cbw-header-container .cbw-header-container-lockup .cbw-mobile-panel-close,.cbw-header .cbw-header-container .cbw-header-container-login .cbw-mobile-panel-close{text-decoration:none;min-width:44px;height:44px;text-align:center;color:#fff;font-size:22px;cursor:pointer}}.cbw-header .cbw-header-container .cbw-header-container-lockup{flex-shrink:0;overflow:hidden}.cbw-header .cbw-header-container .cbw-header-container-lockup .cbw-header-panel-trigger{height:44px}.cbw-header .cbw-header-container .cbw-header-container-lockup .cbw-header-panel-trigger a{display:block;color:#000;min-width:44px;height:44px;line-height:44px;text-align:center;text-decoration:none;cursor:pointer;transition:all .2s;font-size:18px}.cbw-header .cbw-header-container .cbw-header-container-lockup .cbw-header-panel-trigger a:hover{font-size:20px}.cbw-header .cbw-header-container .cbw-header-container-lockup .cbw-header-panel-trigger a:visited{color:#000}@media (min-width: 1px) and (max-width: 767.98px){.cbw-header .cbw-header-container .cbw-header-container-lockup .cbw-header-panel-trigger{background-color:#1e1e1e}.cbw-header .cbw-header-container .cbw-header-container-lockup .cbw-header-panel-trigger a,.cbw-header .cbw-header-container .cbw-header-container-lockup .cbw-header-panel-trigger a:visited{color:#fff}.cbw-header .cbw-header-container .cbw-header-container-lockup .cbw-header-panel-trigger a:focus{box-shadow:inset 0 0 0 2px #fff}.cbw-header .cbw-header-container .cbw-header-container-lockup .cbw-header-panel-trigger a:focus .cbw-acorn,.cbw-header .cbw-header-container .cbw-header-container-lockup .cbw-header-panel-trigger a:focus .cbw-cb{box-shadow:inset 0 0 0 2px #324dc7,inset 0 0 0 4px #fff}}.cbw-header .cbw-header-container .cbw-header-container-lockup .cbw-header-logos{display:flex;align-items:center}.cbw-header .cbw-header-container .cbw-header-container-lockup .cbw-header-logos h1,.cbw-header .cbw-header-container .cbw-header-container-lockup .cbw-header-logos h2{margin:0;position:relative}.cbw-header .cbw-header-container .cbw-header-container-lockup .cbw-header-logos h1 .cbw-logo,.cbw-header .cbw-header-container .cbw-header-container-lockup .cbw-header-logos h2 .cbw-logo{text-align:center;font-size:44px;line-height:44px;transition:font-size .2s}.cbw-header .cbw-header-container .cbw-header-container-lockup .cbw-header-logos h1 .cbw-logo:hover,.cbw-header .cbw-header-container .cbw-header-container-lockup .cbw-header-logos h2 .cbw-logo:hover{font-size:46px}.cbw-header .cbw-header-container .cbw-header-container-lockup .cbw-header-logos h1{height:44px;line-height:1em;display:block;background-color:var(--cbw-cb-logo-bg, #1e1e1e)}.cbw-header .cbw-header-container .cbw-header-container-lockup .cbw-header-logos h1 a{height:44px;color:var(--cbw-cb-logo-color, #fff)}.cbw-header .cbw-header-container .cbw-header-container-lockup .cbw-header-logos h1 a.cbw-acorn{width:44px}.cbw-header .cbw-header-container .cbw-header-container-lockup .cbw-header-logos h1 a.cbw-acorn:hover:before{left:-1px}.cbw-header .cbw-header-container .cbw-header-container-lockup .cbw-header-logos h1 a.cbw-cb{font-family:var(--cbw-cb-logo-font, "CBW Icons Logo 4_8_0");width:140px}.cbw-header .cbw-header-container .cbw-header-container-lockup .cbw-header-logos h1 span{color:#fff;height:44px;transition:none}.cbw-header .cbw-header-container .cbw-header-container-lockup .cbw-header-logos h1 span.cbw-acorn{width:44px}.cbw-header .cbw-header-container .cbw-header-container-lockup .cbw-header-logos h1 span.cbw-acorn:hover{font-size:44px}.cbw-header .cbw-header-container .cbw-header-container-lockup .cbw-header-logos h1 span.cbw-cb{width:140px}.cbw-header .cbw-header-container .cbw-header-container-lockup .cbw-header-logos h1 span.cbw-cb:hover{font-size:44px}@media only screen and (width <= 768px){.cbw-header .cbw-header-container .cbw-header-container-lockup .cbw-header-logos h1.cbw-main-logo-center-xs{display:block;position:absolute;left:50%;transform:translate(-50%)}}.cbw-header .cbw-header-container .cbw-header-container-lockup .cbw-header-logos h2{font-size:21px;line-height:44px;height:44px}.cbw-header .cbw-header-container .cbw-header-container-lockup .cbw-header-logos h2 a{height:44px}.cbw-header .cbw-header-container .cbw-header-container-lockup .cbw-header-logos h2 a.cbw-logo-text{font-size:21px;line-height:46px;font-family:Roboto,sans-serif;display:block;padding:0 12px;font-weight:700}.cbw-header .cbw-header-container .cbw-header-container-lockup .cbw-header-logos h2 a:visited{color:inherit}.cbw-header .cbw-header-container .cbw-header-container-lockup .cbw-header-logos h2 a.cbw-logo:before{position:static}.cbw-header .cbw-header-container .cbw-header-container-lockup .cbw-header-logos h2 a.cbw-logo.cbw-accuplacer{width:193px}.cbw-header .cbw-header-container .cbw-header-container-lockup .cbw-header-logos h2 a.cbw-logo.cbw-ap{width:57px}.cbw-header .cbw-header-container .cbw-header-container-lockup .cbw-header-logos h2 a.cbw-logo.cbw-big-future{width:143px}.cbw-header .cbw-header-container .cbw-header-container-lockup .cbw-header-logos h2 a.cbw-logo.cbw-clep{width:88px}.cbw-header .cbw-header-container .cbw-header-container-lockup .cbw-header-logos h2 a.cbw-logo.cbw-css-profile{width:159px}.cbw-header .cbw-header-container .cbw-header-container-lockup .cbw-header-logos h2 a.cbw-logo.cbw-powerfaids{width:173px}.cbw-header .cbw-header-container .cbw-header-container-lockup .cbw-header-logos h2 a.cbw-logo.cbw-psat-nmsqt{width:190px}.cbw-header .cbw-header-container .cbw-header-container-lockup .cbw-header-logos h2 a.cbw-logo.cbw-psat-8-9{width:133px}.cbw-header .cbw-header-container .cbw-header-container-lockup .cbw-header-logos h2 a.cbw-logo.cbw-psat-10{width:121px}.cbw-header .cbw-header-container .cbw-header-container-lockup .cbw-header-logos h2 a.cbw-logo.cbw-sat{width:72px}.cbw-header .cbw-header-container .cbw-header-container-lockup .cbw-header-logos h2 a.cbw-logo.cbw-search{width:103px}.cbw-header .cbw-header-container .cbw-header-container-lockup .cbw-header-logos h2 a.cbw-logo.cbw-springboard{width:176px}.cbw-header .cbw-header-container .cbw-header-container-login{align-self:center}.cbw-header .cbw-header-container .cbw-header-container-login .cbw-header-login{display:flex;overflow:hidden;align-items:center;justify-content:center;height:100%;padding-right:4px;padding-left:4px;margin-left:4px;margin-right:0;min-width:44px}.cbw-header .cbw-header-container .cbw-header-container-login .cbw-header-login:active,.cbw-header .cbw-header-container .cbw-header-container-login .cbw-header-login:link,.cbw-header .cbw-header-container .cbw-header-container-login .cbw-header-login:visited,.cbw-header .cbw-header-container .cbw-header-container-login .cbw-header-login:hover{text-decoration:none;color:inherit}@media (min-width: 1px) and (max-width: 767.98px){.cbw-header .cbw-header-container .cbw-header-container-login .cbw-header-login{color:#fff}}.cbw-header .cbw-header-container .cbw-header-container-login .cbw-header-login:active span,.cbw-header .cbw-header-container .cbw-header-container-login .cbw-header-login:link span,.cbw-header .cbw-header-container .cbw-header-container-login .cbw-header-login:visited span,.cbw-header .cbw-header-container .cbw-header-container-login .cbw-header-login:hover span{color:inherit}.cbw-header .cbw-header-container .cbw-header-container-login .cbw-header-login .cbw-header-login-text{margin-right:8px;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cbw-header .cbw-header-container .cbw-header-container-login .cbw-header-search>div{width:250px;margin-left:20px}.cbw-header .cbw-header-container .cbw-header-container-login .cbw-header-search form{display:flex;align-items:center;border-bottom:3px solid #1e1e1e}.cbw-header .cbw-header-container .cbw-header-container-login .cbw-header-search .cbw-input{flex-grow:1;background:#fff;border:none!important;height:32px;line-height:32px;text-shadow:none;box-shadow:none!important;border-radius:0;padding:3px 15px;display:inline;width:auto;outline:0}.cbw-header .cbw-header-container .cbw-header-container-login .cbw-header-search .cbw-header-search-btn{font-size:20px;text-decoration:none!important;text-align:center;width:38px;color:#000!important}.cbw-header .cbw-header-container .cbw-header-container-login .cbw-header-search .cbw-header-search-btn:disabled{cursor:not-allowed;color:#b2b2b2!important}.cbw-header .cbw-header-container .cbw-close-login{color:#000;display:flex;width:44px;height:44px;font-size:18px;cursor:pointer;justify-content:center;align-items:center}.cbw-header .cbw-header-container .cbw-close-login:hover{font-size:20px}.cbw-header .cbw-header-container .cbw-close-login:visited{color:#000}@media (min-width: 1px) and (max-width: 767.98px){.cbw-header .cbw-header-container .cbw-open-mobile-search,.cbw-header .cbw-header-container .cbw-close-mobile-search,.cbw-header .cbw-header-container .cbw-close-login{display:flex;width:44px;height:44px;font-size:18px;cursor:pointer;justify-content:center;align-items:center;color:#fff}.cbw-header .cbw-header-container .cbw-open-mobile-search:hover,.cbw-header .cbw-header-container .cbw-close-mobile-search:hover,.cbw-header .cbw-header-container .cbw-close-login:hover{font-size:20px}.cbw-header .cbw-header-container .cbw-open-mobile-search:visited,.cbw-header .cbw-header-container .cbw-close-mobile-search:visited,.cbw-header .cbw-header-container .cbw-close-login:visited{color:#fff}}.cbw-header .cbw-search-dialog{padding:10px 24px!important}.cbw-header .cbw-header-navigation-panel{max-height:calc(100vh - 44px)}.cbw-header .cbw-header-navigation-panel ul,.cbw-header .cbw-header-navigation-panel li{list-style:none;margin:0;padding:0;color:#fff}.cbw-header .cbw-header-navigation-panel ul a,.cbw-header .cbw-header-navigation-panel li a,.cbw-header .cbw-header-navigation-panel ul a:visited,.cbw-header .cbw-header-navigation-panel li a:visited{color:#fff}.cbw-header .cbw-header-navigation-panel .cbw-header-navigation-wrapper{background:#1e1e1e;color:#fff;height:338px;position:relative}.cbw-header .cbw-header-navigation-panel .cbw-header-navigation-wrapper .cbw-container{padding-top:42px;padding-bottom:42px}@media only screen and (width <= 768px){.cbw-header .cbw-header-navigation-panel .cbw-header-navigation-wrapper .cbw-container{padding-top:12px;padding-bottom:128px}}.cbw-header .cbw-header-navigation-panel .cbw-header-navigation-wrapper .cbw-category>div{padding:12px 5px;color:#fff}.cbw-header .cbw-header-navigation-panel .cbw-header-navigation-wrapper .cbw-category>div>ul.outerList{padding-left:10px}.cbw-header .cbw-header-navigation-panel .cbw-header-navigation-wrapper .cbw-category>div>ul.outerList>li a{text-decoration:none}.cbw-header .cbw-header-navigation-panel .cbw-header-navigation-wrapper .cbw-category>div>ul.outerList>li a:active,.cbw-header .cbw-header-navigation-panel .cbw-header-navigation-wrapper .cbw-category>div>ul.outerList>li a:link,.cbw-header .cbw-header-navigation-panel .cbw-header-navigation-wrapper .cbw-category>div>ul.outerList>li a:visited,.cbw-header .cbw-header-navigation-panel .cbw-header-navigation-wrapper .cbw-category>div>ul.outerList>li a:hover{text-decoration:none}.cbw-header .cbw-header-navigation-panel .cbw-header-navigation-wrapper .cbw-category>div>ul.outerList>li.hovering{list-style:square}.cbw-header .cbw-header-navigation-panel .cbw-header-navigation-wrapper .cbw-logo,.cbw-header .cbw-header-navigation-panel .cbw-header-navigation-wrapper .cbw-logo:active,.cbw-header .cbw-header-navigation-panel .cbw-header-navigation-wrapper .cbw-logo:link,.cbw-header .cbw-header-navigation-panel .cbw-header-navigation-wrapper .cbw-logo:visited,.cbw-header .cbw-header-navigation-panel .cbw-header-navigation-wrapper .cbw-logo:hover{text-decoration:none;color:#fff!important;font-size:32px;margin-left:-10px;vertical-align:middle}.cbw-header .cbw-header-navigation-panel .cbw-header-navigation-wrapper .cbw-logo:active:before,.cbw-header .cbw-header-navigation-panel .cbw-header-navigation-wrapper .cbw-logo:link:before,.cbw-header .cbw-header-navigation-panel .cbw-header-navigation-wrapper .cbw-logo:visited:before,.cbw-header .cbw-header-navigation-panel .cbw-header-navigation-wrapper .cbw-logo:hover:before{position:static}.cbw-header .cbw-header-navigation-panel .cbw-header-navigation-wrapper .social-media{margin-top:30px;padding-left:0!important}.cbw-header .cbw-header-navigation-panel .cbw-header-navigation-wrapper .social-media li{float:left;border:none;margin:0;list-style:none}.cbw-header .cbw-header-navigation-panel .cbw-header-navigation-wrapper .social-media li a{justify-content:center;align-items:center;background:#fff;border-color:#fff;text-decoration:none!important;height:28px!important;width:28px!important;display:inline-flex!important;color:#000!important;font-size:1rem;line-height:1.5em;border-radius:50%;padding:0}.cbw-header .cbw-header-navigation-panel .cbw-header-navigation-wrapper .social-media li a:hover,.cbw-header .cbw-header-navigation-panel .cbw-header-navigation-wrapper .social-media li a:focus{background-color:#fedb00;border-color:#fedb00;box-shadow:none;text-decoration:none!important}.cbw-header .cbw-header-navigation-panel .cbw-header-navigation-wrapper .social-media li+li{margin-left:6px}.cbw-header .cbw-header-navigation-panel .cbw-header-navigation-wrapper .sub-links{margin:5px 0 5px -1px;padding-left:10px;border-left:1px dashed #d9d9d9}.cbw-header .cbw-header-navigation-panel .cbw-header-navigation-wrapper .sub-links li{padding-left:16px;margin-left:-10px;list-style:none;font-size:14px;line-height:18px;height:18px}.cbw-header .cbw-header-navigation-panel .cbw-header-navigation-wrapper .sub-links li a{text-decoration:none;font-weight:400;color:#d9d9d9;display:block}.cbw-header .cbw-header-navigation-panel .cbw-header-navigation-wrapper .sub-links li a span{display:block}.cbw-header .cbw-header-navigation-panel .cbw-header-navigation-wrapper .sub-links li a:active,.cbw-header .cbw-header-navigation-panel .cbw-header-navigation-wrapper .sub-links li a:link,.cbw-header .cbw-header-navigation-panel .cbw-header-navigation-wrapper .sub-links li a:visited,.cbw-header .cbw-header-navigation-panel .cbw-header-navigation-wrapper .sub-links li a:hover{color:#d9d9d9}.cbw-header .cbw-header-navigation-panel .cbw-header-navigation-wrapper .sub-links li:hover{list-style:square}.cbw-header .cbw-header-navigation-panel .cbw-header-navigation-wrapper .sub-links li:hover a{text-decoration:underline!important}.cbw-header .cbw-header-navigation-panel .cbw-header-navigation-wrapper .sub-links li+li{margin-top:10px}.cbw-header .cbw-header-navigation-panel .cbw-header-navigation-wrapper .cbw-border-top-4-blue2{border-top:4px solid #0077c8}.cbw-header .cbw-header-navigation-panel .cbw-header-navigation-wrapper .cbw-border-top-4-blue5{border-top:4px solid #324dc7}.cbw-header .cbw-header-navigation-panel .cbw-header-navigation-wrapper .cbw-border-top-4-purple1{border-top:4px solid #702f8a}.cbw-header .cbw-header-navigation-panel .cbw-header-navigation-wrapper .cbw-border-top-4-white{border-top:4px solid #fff}.cbw-header .cbw-header-navigation-panel .cbw-header-navigation-wrapper .cbw-border-top-4-white li:hover{list-style:square}.cbw-header .cbw-header-navigation-panel .cbw-header-navigation-wrapper .cbw-border-top-4-white li:hover a{text-decoration:underline!important}.cbw-header .cbw-header-navigation-panel .cbw-header-navigation-wrapper .cbw-border-top-4-white li a{font-size:14px;font-weight:400;color:#d9d9d9;height:32px;line-height:32px}.cbw-header .cbw-header-navigation-panel .cbw-header-navigation-wrapper .cbw-border-top-4-white li a:active,.cbw-header .cbw-header-navigation-panel .cbw-header-navigation-wrapper .cbw-border-top-4-white li a:link,.cbw-header .cbw-header-navigation-panel .cbw-header-navigation-wrapper .cbw-border-top-4-white li a:visited,.cbw-header .cbw-header-navigation-panel .cbw-header-navigation-wrapper .cbw-border-top-4-white li a:hover{color:#d9d9d9}.cbw-header .cbw-header-navigation-panel .cbw-header-navigation-shade{position:absolute;top:0;bottom:0;width:100%;background:#1e1e1e;color:#fff}.cbw-header .cbw-header-search-panel{background:#fff}.cbw-header .cbw-header-search-wrapper{position:relative;background:#fff;color:#000}.cbw-header .cbw-header-search-wrapper .cbw-header-search-shade{position:absolute;bottom:0;width:100%;background:#fff;color:#000}.cbw-header .transition-height{transition:height .6s cubic-bezier(.455,.03,.515,.955)}.cbw-header .cbw-close-navigation{width:44px;line-height:44px}.cbw-header .cbw-open-navigation .cbw-acorn{width:44px;height:44px;font-size:44px;line-height:44px;display:block;background-color:#1e1e1e;text-align:center;transition:font-size .2s;color:#fff}.cbw-header .cbw-open-navigation .cbw-acorn:hover{font-size:46px}.cbw-header .cbw-open-navigation .cbw-acorn:hover:before{left:-1px}.cbw-header .cbw-open-navigation.cbw-hidden-sm-up .cbw-cb{width:140px;height:44px;font-size:44px;line-height:44px;display:block;background-color:#1e1e1e;text-align:center;transition:font-size .2s;color:#fff}.cbw-header .cbw-open-navigation.cbw-hidden-sm-up .cbw-cb:hover{font-size:46px}.cbw-header .cbw-open-navigation.cbw-hidden-sm-up .cbw-cb:hover:before{left:-1px}.cbw-header .cbw-slidedown-nav-body{display:flex;flex-wrap:wrap;margin-right:-12px;margin-left:-12px;width:100%}.cbw-header .cbw-slidedown-nav-body .cbw-logo:focus,.cbw-header .cbw-slidedown-nav-body .cbw-logo-label:focus{outline:none;box-shadow:inset 0 0 0 2px #fff}.cbw-header .cbw-header-panel-trigger-link:focus{outline:none;box-shadow:inset 0 0 0 2px #324dc7}.cbw-header .cbw-logo:focus,.cbw-header .cbw-logo-label:focus{outline:none;box-shadow:inset 0 0 0 2px #324dc7,inset 0 0 0 4px #fff}@media (min-width: 1px) and (max-width: 767.98px){.cbw-header.cbw-use-logo{border-top:none;border-bottom:none}}.cbw-dimmer{position:fixed;background-color:#fff;z-index:899;opacity:.8;top:0;right:0;bottom:0;left:0}.cbw-hidden-xs-up{display:none!important}.cbw-loggedin{border-radius:24px;box-shadow:0 2px 6px #0000001c;background-color:#fff;width:100%}@media (min-width: 768px){.cbw-loggedin{width:500px}}.cbw-loggedin .cbw-loggedin-links{padding:48px}.cbw-loggedin .cbw-greetings-wrapper{font-family:Roboto,sans-serif;font-weight:500;font-size:23px;padding:0 0 24px;margin:0}.cbw-loggedin .cbw-greetings-wrapper h2{font-size:23px;font-weight:500;padding-bottom:24px;border-bottom:2px solid #1e1e1e;color:#000}.cbw-loggedin .cbw-greetings-wrapper h2 .cbw-greeting-preface{font-weight:300!important}.cbw-loggedin .cbw-loggedin-links-nav{display:flex}.cbw-loggedin .cbw-loggedin-links-nav ul{width:100%;margin:0;padding:0;list-style:none}.cbw-loggedin .cbw-loggedin-links-nav ul li{width:100%;list-style:none}.cbw-loggedin .cbw-loggedin-links-nav ul li a{display:flex;justify-content:space-between;width:100%;padding:16px 24px;color:#1e1e1e;font-size:19px!important;font-weight:500;line-height:24px;text-decoration:none!important;transition:color .25s ease-in-out;transition:background-color .25s ease-in-out}.cbw-loggedin .cbw-loggedin-links-nav ul li a .cbw-icon{margin-left:24px}.cbw-loggedin .cbw-loggedin-links-nav ul li a:hover{box-shadow:inset 2px 0 #1e1e1e;background-color:#f0f0f0}.cbw-loggedin .cbw-signout-wrapper{margin-top:72px}@media (min-width: 1px) and (max-width: 767.98px){.cbw-loggedin .cbw-signout-wrapper{margin-top:48px}}@media (min-width: 1px) and (max-width: 767.98px){.cbw-personalized-identity{display:flex;justify-content:center}}.cbw-slidedown-login-body{width:100%}.cbw-personalized-identity{padding:24px 0;display:flex;justify-content:center}.cbw-slidedown-login-panel{overflow:auto;max-height:calc(100vh - 44px)}.cbw-slidedown-login-wrapper{position:relative;background-color:#f0f0f0!important}.cbw-slidedown-login-shade{position:absolute;bottom:0;width:100%;background:#f0f0f0}.cbw-btn{display:inline-flex;align-items:center;justify-content:center;cursor:pointer;width:100%;font-family:Roboto,sans-serif;font-weight:700;font-size:14px;line-height:24px;color:#000;text-decoration:none;-webkit-user-select:none;user-select:none;background-color:transparent;border-width:1px;border-style:solid;border-color:#000;box-sizing:border-box;border-radius:999px;padding:11px 23px;transition:all .25s ease-in-out}.cbw-btn:hover{background-color:#f0f0f0;box-shadow:inset 0 0 0 1px #1e1e1e;text-decoration:none}.cbw-btn:focus{box-shadow:inset 0 0 0 2px #1e1e1e;text-decoration:underline}@media (min-width: 1px) and (max-width: 767.98px){.cbw-hidden-permanent-xs{display:none}.cbw-black1-xs-only{color:#1e1e1e!important}}',localHeaderLinks=[{name:"SAT",url:"https://satsuite.collegeboard.org/sat",type:"default",category:"K-12",property:"programs",logo:!0,linkCode:"sat",description:"K-12 Resources"},{name:"PSAT/NMSQT",url:"https://satsuite.collegeboard.org/psat-nmsqt",type:"default",category:"K-12",property:"programs",logo:!0,linkCode:"pn"},{name:"PSAT 10",url:"https://satsuite.collegeboard.org/psat-10",type:"default",category:"K-12",property:"programs",logo:!0,linkCode:"pn10"},{name:"PSAT 8/9",url:"https://satsuite.collegeboard.org/psat-8-9",type:"default",category:"K-12",property:"programs",logo:!0,linkCode:"p89"},{name:"SpringBoard",url:"https://springboard.collegeboard.org/",type:"default",category:"K-12",property:"programs",logo:!0,linkCode:"sb"},{name:"AP",url:"https://ap.collegeboard.org/",type:"default",category:"K-12",property:"programs",logo:!0,linkCode:"ap"},{name:"AP Students",url:"https://apstudents.collegeboard.org/",type:"program",category:"K-12",group:"AP",linkCode:"aps"},{name:"AP Central",url:"https://apcentral.collegeboard.org/",type:"program",category:"K-12",group:"AP",linkCode:"apc"},{name:"Pre-AP",url:"https://pre-ap.collegeboard.org",type:"program",category:"K-12",group:"AP",linkCode:"preap"},{name:"Access",url:"https://bigfuture.collegeboard.org/",type:"default",category:"Access",property:"programs",logo:!0,linkCode:"accs",description:"Access Resources"},{name:"Career Search",url:"https://bigfuture.collegeboard.org/career-search",type:"default",category:"Access",group:"Access",linkCode:"csrch"},{name:"College Search",url:"https://bigfuture.collegeboard.org/college-search",type:"default",category:"Access",group:"Access",linkCode:"cs"},{name:"Scholarship Search",url:"https://bigfuture.collegeboard.org/scholarship-search",type:"default",category:"Access",group:"Access",linkCode:"ss"},{name:"BigFuture Scholarships",url:"https://bigfuture.collegeboard.org/pay-for-college/bigfuture-scholarships",type:"default",category:"Access",group:"Access",linkCode:"cbos"},{name:"ACCUPLACER",url:"https://accuplacer.collegeboard.org/",type:"default",category:"Higher Ed",property:"programs",logo:!0,linkCode:"accu",description:"Resources for Higher Education"},{name:"CLEP",url:"https://clep.collegeboard.org/",type:"default",category:"Higher Ed",property:"programs",logo:!0,linkCode:"clep"},{name:"CSS Profile",url:"https://cssprofile.collegeboard.org/",type:"default",category:"Higher Ed",property:"programs",logo:!0,linkCode:"css"},{name:"Search",url:"https://highered.collegeboard.org/recruitment-admissions/enrollment-solutions/college-board-search",type:"default",property:"programs",category:"Higher Ed",logo:!0,linkCode:"cbsch"},{name:"PowerFAIDS",url:"https://powerfaids.collegeboard.org/",type:"default",category:"Higher Ed",property:"programs",logo:!0,linkCode:"pfaid"},{name:"College Board Homepage",url:"https://www.collegeboard.org/",type:"mobile",category:"Organization",linkCode:"cb",description:"College Board Organizational Resources"},{name:"Higher Ed Professionals",url:"https://highered.collegeboard.org/",type:"default",category:"Organization",linkCode:"prof"},{name:"K-12 Leaders",url:"https://k12.collegeboard.org/",type:"default",category:"Organization",linkCode:"k12lead"},{name:"Counselors",url:"https://counselors.collegeboard.org/",type:"default",category:"Organization",linkCode:"counselors"},{name:"Parents",url:"https://bigfuture.collegeboard.org/communities-events/for-parents",type:"default",category:"Organization",linkCode:"parents"},{name:"Help",url:"https://support.collegeboard.org",type:"default",category:"Organization",linkCode:"help"},{name:"More",url:"https://www.collegeboard.org/sitemap",type:"more",category:"Organization",linkCode:"morecb"}],defaultHeaderLinks=localHeaderLinks,logoClasses={sat:"cbw-sat",pn:"cbw-psat-nmsqt",pn10:"cbw-psat-10",p89:"cbw-psat-8-9",sb:"cbw-springboard",ap:"cbw-ap",accs:"cbw-big-future",accu:"cbw-accuplacer",clep:"cbw-clep",css:"cbw-css-profile",cbsch:"cbw-search",pfaid:"cbw-powerfaids"},addQueryParam=(e,t,o)=>{const n=new URL(e);return n.searchParams.append(t,o),n.href},formatLinks=(e,t)=>{const o=cloneDeep(e);o.forEach((e=>{e.url=addQueryParam(e.url,"navId",`${t}-${e.linkCode}`)}));for(const n of o)n.children=remove(o,{group:n.name});return o},getLink=({url:e,logo:t,name:o,linkCode:n,children:r})=>{let i="";if("morecb"!==n){i=`${"Access"===o?"BigFuture":o}`}let a="";if(r&&r.length>0){a=``}return`\n
  • \n ${i}\n ${a}\n
  • `},getCategory=(e,t=!1,o,n)=>{const r=document.createElement("DIV");r.setAttribute("role","navigation"),r.setAttribute("aria-label",n),r.classList.add("cbw-col-md-3","cbw-col-sm-5","cbw-col-md-offset-0","cbw-offset-md-0","cbw-category"),t&&r.classList.add("cbw-col-sm-offset-1","cbw-offset-sm-1");const i=document.createElement("DIV");return i.classList.add(o,"cbw-category"),i.innerHTML=`
      ${e.map(getLink).join("")}
    `,r.appendChild(i),r},localLoginLinks=[{name:"My SAT",url:"https://mysat.collegeboard.org",type:"student",group:"links",linkCode:"st-mysat"},{name:"PSAT/NMSQT, PSAT 10, and PSAT 8/9 Scores",url:"https://studentscores.collegeboard.org/home",type:"student",group:"links",linkCode:"st-psatscrs"},{name:"My AP Classroom",url:"https://apstudents.collegeboard.org/",type:"student",group:"links",linkCode:"st-apclass"},{name:"BigFuture Dashboard",url:"https://bigfuture.collegeboard.org/dashboard",type:"student",group:"links",linkCode:"st-bfdash"},{name:"My CLEP",url:"https://myclep.collegeboard.org/",type:"student",group:"links",linkCode:"st-myclep"},{name:"Account Settings",url:"https://my.collegeboard.org/profile/information",type:"student",group:"controls",icon:"cb-icon-icn_settings",linkCode:"st-acct"},{name:"My Dashboard",url:"https://cbaccount.collegeboard.org/professional/dashboard",type:"professional",group:"links",linkCode:"pr-dash"},{name:"AP Central",url:"https://apcentral.collegeboard.org",type:"professional",group:"links",linkCode:"pr-apc"},{name:"Test Day Toolkit",url:"https://testday.collegeboard.org",type:"professional",group:"links",linkCode:"pr-tdtk"},{name:"Account Settings",url:"https://cbaccount.collegeboard.org/professional/viewProfile",type:"professional",group:"controls",icon:"cb-icon-icn_settings",linkCode:"pr-acct"}],defaultLoginLinks=localLoginLinks;class Header extends HTMLElement{constructor(){super(),this.getWindowLocationHref=()=>/iframe/.test(window.location.href)?window.parent.location.href:window.location.href,this.attachShadow({mode:"open"})}connectedCallback(){var e,t;const o=this.shadowRoot;if(!o)return;const n=e=>{const t=o.querySelector("cbw-slidedown");if(t){const o=t.hasAttribute("panel_open"),r=t.getAttribute("active-class");o?(t.removeAttribute("panel_open"),r!==e&&n(e)):(r!==e&&t.setAttribute("active-class",e),t.setAttribute("panel_open",""))}},r=["skipTargetId","programType","siteTitle","destinationUrl","loggedInLinksUrl","idp","searchType","homeLink","homeLinkLocation","skipEnroll","destinationUrlLogout"],i=["appId"],a=["useGlobalNavigation","useLoginWidget","useCbLogoLink","useSearchWidget","useIconLogo"],s=this.getAttributeNames();let l={};var c,d;s.forEach((e=>{const t=camelCase(e);r.includes(t)||i.includes(t)?l[t]=this.getAttribute(e):a.includes(t)&&(l[t]="true"===this.getAttribute(e))})),l.homeLink=(e=>{try{return new URL(e),e}catch(t){return"https://www.collegeboard.org"}})(l.homeLink),l.skipTargetId||(c="skipTargetId",d="Please add this REQUIRED attribute for accessibility.",console.warn(`[cb-header] ${c} is required. ${d}`)),l={appId:466,skipTargetId:"main_content",programType:"corporate",useIconLogo:!0,useGlobalNavigation:!0,useLoginWidget:!0,useCbLogoLink:!0,useSearchWidget:!0,destinationUrl:"",loggedInLinksUrl:"",idp:"",siteTitle:"",searchType:"",homeLink:"https://www.collegeboard.org",homeLinkLocation:"The College Board",skipEnroll:"",destinationUrlLogout:"",...l},l.siteTitle?l.siteTitle&&"corporate"==l.programType.toLowerCase()&&(l.useIconLogo=!1):l.useIconLogo=!0;const u=e=>{const t=o.querySelector(".cbw-slidedown-nav-body");if(t&&!1===l.showLinks)t.innerHTML="";else if(t){t.innerHTML="";const o=formatLinks(e,"gh"),n=getCategory(o.filter((e=>"K-12"===e.category)),!0,"cbw-border-top-4-blue2","Assessments");t.append(n);const r=document.createElement("div");r.classList.add("cbw-clearfix","visible-sm-block"),t.append(r);const i=getCategory(o.filter((e=>"Access"===e.category)),!1,"cbw-border-top-4-blue5","Access");t.append(i);const a=getCategory(o.filter((e=>"Higher Ed"===e.category)),!0,"cbw-border-top-4-purple1","Higher Education");t.append(a);const s=getCategory(o.filter((e=>"Organization"===e.category&&"mobile"!==e.type)),!1,"cbw-border-top-4-white","Organization");t.append(s)}const n=null==t?void 0:t.querySelectorAll(".cbw-slidedown-nav-body .cbw-logo");null==n||n.forEach((e=>{const t=e.parentElement;null==e||e.addEventListener("mouseover",(()=>{t.classList.add("hovering")})),null==e||e.addEventListener("mouseout",(()=>{t.classList.remove("hovering")}))}))};let p,g="white",h="white",b="black1";p=l.siteTitle&&"corporate"===l.programType.toLowerCase()?"black1":l.useIconLogo?"white":"black1";let f="corporate"==l.programType.toLowerCase()?"black":l.useIconLogo?"white":"black";switch(l.programType.toLowerCase()){case"k-12":g=l.useIconLogo?"blue2":"white",h=l.useIconLogo?"blue2":"white",b="blue2";break;case"access":case"big-future":g=l.useIconLogo?"blue5":"white",h=l.useIconLogo?"blue5":"white",b="blue5";break;case"higher-ed":g=l.useIconLogo?"purple1":"white",h=l.useIconLogo?"purple1":"white",b="purple1";break;case"corporate":l.siteTitle?(g="white",f="black",h="white"):(g="black1",f="white",h="black1");break;default:g="white"}this.addEventListener("slidedown_connected",(()=>{l.useGlobalNavigation&&(async()=>{try{fetch("https://athena.collegeboard.org/api/header-links.json").then((e=>{e.json().then((e=>{u(e)})).catch((e=>{console.error(e),u(defaultHeaderLinks)}))})).catch((e=>{console.error(`Nav links retrieval error: ${e}`),u(defaultHeaderLinks)}))}catch(e){console.error(e),u(defaultHeaderLinks)}})(),l.useSearchWidget&&(()=>{const e=o.querySelector(".cbw-mobile-search-body"),t=document.createElement("cbw-search");t.setAttribute("app-id",l.appId),t.setAttribute("search-type",l.searchType),null==e||e.appendChild(t);const r=o.querySelector(".cbw-open-mobile-search");null==r||r.addEventListener("click",(e=>{e.preventDefault(),n("cbw-slidedown-search")}));const i=o.querySelector(".cbw-close-mobile-search");null==i||i.addEventListener("click",(e=>{e.preventDefault(),n("cbw-slidedown-search")}))})()}));const m="cbw-acorn",w="cbw-cb",y={headerStyle:headerStyle.toString(),useIconLogo:l.useIconLogo?"cbw-use-logo":"",programBgColor:g,programBgXsColor:h,fontXsColor:p,programBorderColor:b,programFontColor:f,mainLogoTag:l.useCbLogoLink?"a":"span",mainLogoHref:l.useCbLogoLink?`href="${l.homeLink}"`:"",mainLogoText:l.homeLinkLocation,logoLabel:l.siteTitle,cbLogoClass:l.siteTitle?m:w,cbMobileTriggerClass:"corporate"!==l.programType.toLowerCase()||"corporate"===l.programType.toLowerCase()&&l.siteTitle?m:w,mainLogoMobileClass:l.useGlobalNavigation||"corporate"===l.programType.toLowerCase()&&!l.siteTitle||!l.siteTitle?w:m,mainLogoMobileCenteredClass:l.useGlobalNavigation?"cbw-main-logo-center-xs":"",mainLogoMobileHideClass:l.useGlobalNavigation?"cbw-hidden-xs-up":"",logoLabelClasses:l.useIconLogo?"sr-only":"",iconLogoClasses:l.useIconLogo?"cbw-logo cbw-"+l.siteTitle.toLowerCase().replace(" ","-"):"cbw-logo-text",skipTargetId:l.skipTargetId,appId:l.appId,searchType:l.searchType};if(o.innerHTML=stringReplacer(template$4,y),addComponentTrackingCode("cbw-header","header"),fireComponentLoaded("header"),l.useLoginWidget){const e=e=>{const t=o.querySelector(".cbw-greetings-wrapper");if(t){t.innerHTML="";const o=document.createElement("h2"),n=document.createElement("span");n.classList.add("cbw-greeting-preface"),n.innerHTML="Hi, ",o.append(n);const r=document.createElement("span");r.classList.add("cbw-greeting-name"),r.innerHTML=e+"!",o.append(r),t.append(o)}},t=()=>{const e=l.destinationUrlLogout?l.destinationUrlLogout:l.destinationUrl?l.destinationUrl:this.getWindowLocationHref(),t=`\n
    \n \n \n \n \n \n
    \n `,n=o.querySelector(".cbw-signout-wrapper");if(n){n.innerHTML=t;const o=n.querySelector('form[method="post"]');null==o||o.addEventListener("submit",(t=>{t.preventDefault();const n=o.querySelector('input[name="DURL"]');n&&""===n.getAttribute("value")&&n.setAttribute("value",e),o.submit()}))}},r=(e,t)=>{const n=null==o?void 0:o.querySelector(".cbw-loggedin-links-nav");if(n){n.innerHTML="";const o=document.createElement("ul");e.filter((e=>e.type===t)).forEach((e=>{const t=document.createElement("li"),n=addQueryParam(e.url,"navId",`${e.linkCode}`),r=document.createElement("a");r.setAttribute("href",n),r.setAttribute("data-cbtrack-linktype","nav"),r.setAttribute("data-cbtrack-label",e.name),r.setAttribute("tabindex","-1");const i=document.createElement("span");i.innerHTML=e.name,r.appendChild(i);const a=document.createElement("span");a.classList.add("cbw-icon","cbw-right"),a.setAttribute("aria-hidden","true"),r.appendChild(a),t.appendChild(r),o.appendChild(t)})),n.appendChild(o)}},i=e=>{const t=l.loggedInLinksUrl?l.loggedInLinksUrl:"https://athena.collegeboard.org/api/identity-links.json";try{fetch(t).then((t=>{t.json().then((t=>{r(t,e)})).catch((t=>{console.error(t),r(defaultLoginLinks,e)}))})).catch((t=>{console.error(`Notification retrieval error: ${t}`),r(defaultLoginLinks,e)}))}catch(o){console.error(o),r(defaultLoginLinks,e)}},a=()=>{n("cbw-slidedown-login")};this.addEventListener("loginEvent",(o=>{e(o.detail.firstName),t(),i(o.detail.role)})),this.addEventListener("loginButtonPress",(()=>{a()}));const s=o.querySelector(".cbw-close-login");null==s||s.addEventListener("click",(e=>{e.preventDefault(),n("cbw-slidedown-login")}));const c=o.querySelector(".cbw-login-container"),d=document.createElement("cbw-login");d.setAttribute("idp",l.idp),d.setAttribute("destination-url",l.destinationUrl),d.setAttribute("app-id",l.appId),d.setAttribute("skip-enroll",l.skipEnroll),null==c||c.appendChild(d)}if(!1===l.useSearchWidget){o.querySelectorAll(".cbw-search-wrapper").forEach((e=>{e.remove()})),null==(e=this.querySelector(".cbw-search-dialog"))||e.remove()}const v=o.querySelector(".cbw-header-panel-trigger");!1===l.useGlobalNavigation?null==v||v.remove():(null==(t=o.querySelector("cbw-slidedown"))||t.setAttribute("cb-link",l.useCbLogoLink),null==v||v.addEventListener("click",(e=>{e.preventDefault(),n("cbw-slidedown-nav")})));const S=o.querySelector("h2.cbw-local-logo");l.siteTitle||null==S||S.remove(),"corporate"!==l.programType.toLowerCase()||l.siteTitle||null==S||S.classList.add("cbw-hidden-permanent-xs");const A=o.querySelector(".cbw-dimmer");if(null==A||A.addEventListener("click",(e=>{var t,o;e.preventDefault();const r=null==(o=null==(t=this.shadowRoot)?void 0:t.querySelector("cbw-slidedown"))?void 0:o.getAttribute("active-class");n(r??"cbw-slidedown-nav")})),this.addEventListener("slideDownEvent",(e=>{const t=e.detail.isOpen,n=e.detail.activeClass,r=(e,o,n)=>{var r;const i=null==(r=null==this?void 0:this.shadowRoot)?void 0:r.querySelector(e);if(i){(t?"open":"closed")===n?i.classList.add(o):i.classList.remove(o)}};if("cbw-slidedown-nav"===n){r("#globalHeader","cbw-bg-black-xs","open"),r(".cbw-close-navigation","cbw-hidden-xs-up","closed"),r("h1.cbw-main-logo-mobile","cbw-hidden-xs-up","closed"),r(".cbw-dimmer","cbw-hidden-xs-up","closed"),r("h2.cbw-local-logo","cbw-hidden-xs","open"),r(".cbw-header-container-login","cbw-hidden-xs","open");const e=this.querySelectorAll(".cbw-open-navigation");t?null==e||e.forEach((e=>e.classList.add("cbw-hidden-xs-up"))):null==e||e.forEach((e=>e.classList.remove("cbw-hidden-xs-up")))}let i;switch("cbw-slidedown-search"===n&&(r(".cbw-dimmer","cbw-hidden-xs-up","closed"),r(".cbw-close-mobile-search","cbw-hidden-xs-up","closed"),r(".cbw-search-wrapper","cbw-hidden-xs","open"),r("cbw-login","cbw-hidden-xs","open")),"cbw-slidedown-login"===n&&(r(".cbw-dimmer","cbw-hidden-xs-up","closed"),r(".cbw-close-login","cbw-hidden-xs-up","closed"),r(".cbw-search-wrapper","cbw-hidden-xs-up","open"),r("cbw-login","cbw-hidden-xs-up","open")),n){case"cbw-slidedown-nav":i=o.querySelector(".cbw-header-panel-trigger-link");break;case"cbw-slidedown-search":i=o.querySelector(".cbw-open-mobile-search");break;case"cbw-slidedown-login":i=o.querySelector(".cbw-header-login")}t?null==i||i.setAttribute("aria-expanded","true"):(null==i||i.setAttribute("aria-expanded","false"),null==i||i.focus())})),l.useCbLogoLink){const e=o.querySelector(".cbw-header-panel-trigger-link");null==e||e.addEventListener("keydown",(t=>{const n=null==e?void 0:e.getAttribute("aria-expanded");if(window.innerWidth<=768&&"true"===n&&("Tab"===t.key&&t.shiftKey||"Tab"===t.key&&!t.shiftKey)){t.preventDefault();const e=o.querySelector(".cbw-main-logo-mobile a.cbw-cb");null==e||e.focus()}}))}const C=document.createElement("style");C.textContent=fontsStyle.toString(),C.textContent+=".cbw-body-lock { position: fixed; width: 100%;}",this.appendChild(C);const T=document.createElement("link");T.setAttribute("rel","stylesheet"),T.setAttribute("href",`//atlas.collegeboard.org/apricot/prod/${apricotVersion}/widgets.css`),o.appendChild(T),shadowLinkCloner(this)}static get observedAttributes(){return["destination-url"]}attributeChangedCallback(e,t,o){var n,r;if("destination-url"===e){const e=null==(n=this.shadowRoot)?void 0:n.querySelector("cbw-login");e&&e.setAttribute("destination-url",o);const t=null==(r=this.shadowRoot)?void 0:r.querySelector(".cbw-signout-wrapper");if(t){const e=t.querySelector('input[name="DURL"]');e&&e.setAttribute("value",o)}}}}const template$3='\n
    \n \n \n \n
    \n';class Slidedown extends HTMLElement{constructor(){super(),this.togglePanel=this.togglePanel.bind(this)}static get observedAttributes(){return["panel_open","active-class"]}get panel_open(){return this.hasAttribute("panel_open")}set panel_open(e){var t;const o=new CustomEvent("slideDownEvent",{detail:{isOpen:e,activeClass:this.getAttribute("active-class")},bubbles:!0,cancelable:!1,composed:!0});this.dispatchEvent(o);const n="."+this.getAttribute("active-class")+"-panel",r=this.querySelector(n),i=this.getKeyboardAccessibleElements(r);r&&r.setAttribute("aria-hidden",(!e).toString()),e?(this.setNavHeight(),null==r||r.classList.remove("cbw-invisible"),i&&i.length>0&&(i.forEach((e=>{e.setAttribute("tabindex","0")})),i[0].focus()),null==r||r.scroll(0,0),document.body.classList.add("cbw-body-lock"),this.setAttribute("panel_open","")):(this.setNavHeight(0),document.body.classList.remove("cbw-body-lock"),i&&i.forEach((e=>{e.setAttribute("tabindex","-1")})),this.removeAttribute("panel_open"),null==(t=this.querySelector(".cbw-header-search-panel"))||t.setAttribute("style","overflow:hidden"))}setNavHeight(e){const t="."+this.getAttribute("active-class")+"-wrapper",o=this.querySelector(t),n=null==o?void 0:o.clientHeight;if(0===e||0===n?null==o||o.classList.add("transition-height"):null==o||o.classList.remove("transition-height"),void 0===e){const t="."+this.getAttribute("active-class")+"-body",n=null==o?void 0:o.querySelector(t);e=0,n&&(e=n.offsetHeight),"cbw-slidedown-login"!==this.getAttribute("active-class")&&(e+=window.innerWidth<768?35:100)}null==o||o.setAttribute("style",`height: ${e}px`)}getKeyboardAccessibleElements(e){const t=e.querySelectorAll("a, button, input, select, textarea");return Array.from(t).filter((e=>!(e.getAttribute("aria-hidden")||"hidden"===e.getAttribute("type"))))}isMobileGlobalNavigation(e){return!!(window.innerWidth<=768&&(null==e?void 0:e.classList.contains("cbw-slidedown-nav")))&&"true"===this.getAttribute("cb-link")}addAccessibleTabbing(e){const t=this.getKeyboardAccessibleElements(e);t.length>0&&(t[0].classList.contains("cbw-shift-tab-handler")||(t[0].classList.add("cbw-shift-tab-handler"),t[0].addEventListener("keydown",(o=>{"Tab"===o.key&&o.shiftKey&&(this.isMobileGlobalNavigation(e)||(o.preventDefault(),this.panel_open&&this.togglePanel())),t[t.length-1].getAttribute("disabled")&&("Tab"!==o.key||o.shiftKey||this.isMobileGlobalNavigation(e)||(o.preventDefault(),this.panel_open&&this.togglePanel()))}))),t[t.length-1].classList.contains("cbw-tab-handler")||(t[t.length-1].classList.add("cbw-tab-handler"),t[t.length-1].addEventListener("keydown",(e=>{"Tab"!==e.key||e.shiftKey||(e.preventDefault(),this.panel_open&&this.togglePanel())}))))}showActiveOnly(){const e=this.getAttribute("active-class");if(e){this.querySelectorAll(".cbw-slidedown-wrapper > div").forEach((t=>{t.classList.contains(e)?(t.classList.remove("cbw-hidden-xs-up"),this.addAccessibleTabbing(t)):t.classList.add("cbw-hidden-xs-up")}))}}resizeEvent(){this.panel_open&&window.innerWidth>768&&"cbw-slidedown-search"===this.getAttribute("active-class")&&this.togglePanel(),this.panel_open&&"cbw-slidedown-nav"===this.getAttribute("active-class")&&this.setNavHeight()}escapeEvent(e){"Escape"===e.key&&this.panel_open&&this.togglePanel()}connectedCallback(){this.innerHTML=template$3,this.showActiveOnly(),window.addEventListener("resize",this.resizeEvent.bind(this),!1),document.addEventListener("keydown",this.escapeEvent.bind(this),!1);const e=this.querySelector(".cbw-slidedown-nav-panel"),t=null==e?void 0:e.querySelector(".cbw-slidedown-nav-wrapper"),o=this.querySelector(".cbw-slidedown-search-panel"),n=null==o?void 0:o.querySelector(".cbw-slidedown-search-wrapper");null==t||t.addEventListener("transitionend",(o=>{"height"===o.propertyName&&o.target===t&&0===t.clientHeight&&(null==e||e.classList.add("cbw-invisible"))})),null==n||n.addEventListener("transitionend",(e=>{"height"===e.propertyName&&e.target===n&&0===n.clientHeight&&(null==o||o.classList.add("cbw-invisible"))}));const r=this.querySelector(".cbw-slidedown-search-panel");null==r||r.addEventListener("transitionend",(()=>{this.panel_open&&r.setAttribute("style","overflow:visible")})),this.dispatchEvent(new CustomEvent("slidedown_connected",{bubbles:!0,cancelable:!1,composed:!0}))}attributeChangedCallback(e,t,o){if(o!==t)switch(e){case"panel_open":this[e]=this.hasAttribute(e);break;case"active-class":this.showActiveOnly()}}togglePanel(){this.panel_open=!this.panel_open}disconnectedCallback(){window.removeEventListener("resize",this.resizeEvent),window.removeEventListener("keydown",this.escapeEvent)}}const template$2='\n\n\n',suggestionItem='\n
  • {{label}}
  • ',searchStyles=".cbw-header-search .cbw-input{flex-grow:1;background:#fff;border:none!important;height:32px;line-height:32px;text-shadow:none;box-shadow:none!important;border-radius:0;padding:3px 15px;display:inline;width:auto;outline:0}.cbw-header-search .cbw-header-search-btn{font-size:20px;text-decoration:none!important;text-align:center;width:38px;color:#000!important;background:transparent;border:none;cursor:pointer}.cbw-header-search>div{position:relative}.cbw-header-search form{display:flex;align-items:center;border-bottom:3px solid #1e1e1e}.cbw-header-search form .input,.cbw-header-search form .input:focus{flex-grow:1;background:#fff;border:none!important;height:32px;line-height:32px;text-shadow:none;box-shadow:none!important;border-radius:0;padding:3px 15px;display:inline;width:auto;outline:0}.cbw-header-search form button:disabled{cursor:not-allowed;color:#b2b2b2!important}.cbw-header-search .cbw-search-suggestions{overflow:hidden;position:absolute;z-index:100;background:#fff;padding:0;margin:0;width:100%}.cbw-header-search .cbw-search-suggestions>li{list-style:none;cursor:pointer;background:none;display:block;line-height:18px;font-size:14px;padding:9px 15px;color:#1e1e1e}.cbw-header-search .cbw-search-suggestions>li:hover,.cbw-header-search .cbw-search-suggestions>li:focus{background:#f0f0f0}.cbw-header-search .cbw-search-suggestions>li:last-of-type{border-bottom:1px solid #d9d9d9}.cbw-header-search a.control{display:flex;justify-content:center;align-items:center;min-width:44px;height:44px;text-align:center;color:#fff;font-size:22px;cursor:pointer}.cbw-header-search a.control:active,.cbw-header-search a.control:link,.cbw-header-search a.control:visited,.cbw-header-search a.control:hover{text-decoration:none;color:#fff}@media screen and (prefers-color-scheme: dark),screen and (prefers-contrast: more),screen and (prefers-contrast: more){.cbw-header-search .cbw-search-suggestions>li:hover,.cbw-header-search .cbw-search-suggestions>li:focus{outline-offset:4px;box-shadow:inset 0 0 0 2px #1e1e1e;outline:3px solid transparent}}";class Search extends HTMLElement{constructor(){super(),this.suggestions=[],this.options={sensitivity:2,limit:10,searchType:"k-12",destinationURL:"https://searchresults.collegeboard.org/cb/index.html",typeAheadURL:"https://searchresults.collegeboard.org/rest/v2/api/smartsuggest"},this.currentElement=null}connectedCallback(){var e,t,o,n,r;this.updateOptions();const i=this.parentElement,a=(null==(e=null==i?void 0:i.classList)?void 0:e.contains("cbw-mobile-search-body"))?"cbwHeaderSearchList-mobile":"cbwHeaderSearchList",s={styles:searchStyles.toString(),searchURL:this.options.destinationURL,searchType:this.options.searchType,searchListId:a};this.innerHTML=stringReplacer(template$2,s),this.suggestionList=this.querySelector(".cbw-search-suggestions"),this.suggestionListStatus=this.querySelector(".cbw-search-suggestions-status"),this.searchInput=this.querySelector(".cbw-input"),this.searchButton=this.querySelector(".cbw-header-search-btn"),this.searchForm=this.querySelector("form"),null==(t=this.suggestionList)||t.addEventListener("keydown",this.suggestionsKeyDownHandler.bind(this)),null==(o=this.suggestionList)||o.addEventListener("click",this.suggestionClickHandler.bind(this)),null==(n=this.searchInput)||n.addEventListener("keydown",this.searchInputKeyDownHandler.bind(this)),null==(r=this.searchInput)||r.addEventListener("keyup",this.searchInputKeyUpHandler.bind(this))}disconnectedCallback(){var e,t,o,n;null==(e=this.suggestionList)||e.removeEventListener("keydown",this.suggestionsKeyDownHandler),null==(t=this.suggestionList)||t.removeEventListener("click",this.suggestionClickHandler),null==(o=this.searchInput)||o.removeEventListener("keydown",this.searchInputKeyDownHandler),null==(n=this.searchInput)||n.removeEventListener("keyup",this.searchInputKeyUpHandler)}updateOptions(){null!==this.getAttribute("sensitivity")&&(this.options.sensitivity=parseInt(this.getAttribute("sensitivity"))),null!==this.getAttribute("limit")&&(this.options.limit=parseInt(this.getAttribute("limit"))),null!==this.getAttribute("search-type")&&(this.options.searchType=this.getAttribute("search-type")),null!==this.getAttribute("destination-url")&&(this.options.destinationURL=this.getAttribute("destination-url")),null!==this.getAttribute("type-ahead-url")&&(this.options.typeAheadURL=this.getAttribute("type-ahead-url"))}populateSuggestions(){for(const e of this.suggestions){const t=stringReplacer(suggestionItem,e);this.suggestionList.insertAdjacentHTML("beforeend",t)}this.suggestionList.classList.remove("cbw-hidden"),this.suggestionList.setAttribute("aria-hidden","false"),document.addEventListener("mouseup",this.windowClickHandler.bind(this))}fetchSuggestions(e){const t=new URL(this.options.typeAheadURL);t.searchParams.append("q",e),t.searchParams.append("lang","en"),t.searchParams.append("cname","store"),t.searchParams.append("limit",this.options.limit.toString()),fetch(t.href).then((e=>{e.json().then((e=>{this.clearSuggestions();for(const t in e[0])this.suggestions.push({id:t,label:e[0][t],value:e[0][t].replace(/ /g,"-")});this.suggestions.length>0?(this.populateSuggestions(),this.suggestionListStatus.innerHTML=`${this.suggestions.length.toString()} ${1===this.suggestions.length?"suggestion":"suggestions"} available`):this.suggestionListStatus.innerHTML="no suggestions available"})).catch((e=>{console.error(e)}))})).catch((e=>{console.error(e)}))}suggestionUpdateFocus(e){e.setAttribute("aria-selected","true"),this.currentElement&&this.currentElement.setAttribute("aria-selected","false"),this.currentElement=e,e.focus()}clearSuggestions(){var e;null==(e=this.searchInput)||e.focus(),this.suggestionList.innerHTML="",this.suggestionListStatus.innerHTML="",this.suggestions=[],this.currentElement=null,this.searchInput.setAttribute("aria-activedescendant",""),this.searchInput.setAttribute("aria-describedby",""),this.suggestionList.classList.add("cbw-hidden"),this.suggestionList.setAttribute("aria-hidden","true"),document.removeEventListener("mousedown",this.windowClickHandler)}suggestionClickHandler(e){const t=e.target;this.searchInput.value=t.innerText,this.searchForm.submit()}suggestionsKeyDownHandler(e){var t,o,n;e.preventDefault();const{key:r,shiftKey:i}=e,a=e.target;"ArrowDown"===r||"Tab"===r&&!i?this.suggestionUpdateFocus(a.nextElementSibling||(null==(t=a.parentElement)?void 0:t.firstElementChild)):"ArrowUp"===r||"Tab"===r&&i?this.suggestionUpdateFocus(a.previousElementSibling||(null==(o=a.parentElement)?void 0:o.lastElementChild)):"Escape"===r?this.clearSuggestions():"Enter"===r&&(null==(n=this.currentElement)||n.click())}searchInputKeyDownHandler({key:e}){"Tab"===e&&this.clearSuggestions()}isBlank(e){return e||(e=""),/^\s*$/.test(e)}searchInputKeyUpHandler({key:e}){var t,o,n,r,i,a,s,l,c;if("Escape"===e)this.clearSuggestions();else if("ArrowDown"===e)if(this.suggestions.length){const e=null==(t=this.suggestionList)?void 0:t.querySelector("li");e.focus(),null==(o=this.suggestionList)||o.setAttribute("aria-activedescendant",null==e?void 0:e.getAttribute("id"))}else this.fetchSuggestions(null==(n=this.searchInput)?void 0:n.value);else(null==(r=this.searchInput)?void 0:r.value.length)>0&&!this.isBlank(null==(i=this.searchInput)?void 0:i.value)?null==(a=this.searchButton)||a.removeAttribute("disabled"):null==(s=this.searchButton)||s.setAttribute("disabled","true"),(null==(l=this.searchInput)?void 0:l.value.length)>=this.options.sensitivity?this.fetchSuggestions(null==(c=this.searchInput)?void 0:c.value):this.clearSuggestions()}windowClickHandler(e){-1===e.composedPath().indexOf(this.suggestionList)&&this.clearSuggestions()}}const anonymousTemplate='\n\n',authenticatedTemplate='\n\n';var commonjsGlobal="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function getDefaultExportFromCjs(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var log4javascript_production={exports:{}};(function(module,exports){var factory;factory=function(){function isUndefined(e){return void 0===e}function EventSupport(){}Array.prototype.push||(Array.prototype.push=function(){for(var e=0,t=arguments.length;e0){for(var e=this[0],t=0,o=this.length-1;t2?o=r.slice(2).concat(o):o;for(i=0,a=s.length;i=0&&(e.splice(o,1),!0)}function array_contains(e,t){for(var o=0,n=e.length;o=e.level}},Level.ALL=new Level(Number.MIN_VALUE,"ALL"),Level.TRACE=new Level(1e4,"TRACE"),Level.DEBUG=new Level(2e4,"DEBUG"),Level.INFO=new Level(3e4,"INFO"),Level.WARN=new Level(4e4,"WARN"),Level.ERROR=new Level(5e4,"ERROR"),Level.FATAL=new Level(6e4,"FATAL"),Level.OFF=new Level(Number.MAX_VALUE,"OFF"),log4javascript.Level=Level,Timer.prototype.getElapsedTime=function(){return(new Date).getTime()-this.start.getTime()};var anonymousLoggerName="[anonymous]",defaultLoggerName="[default]",nullLoggerName="[null]",rootLoggerName="root";function Logger(e){this.name=e,this.parent=null,this.children=[];var t=[],o=null,n=this.name===rootLoggerName,r=this.name===nullLoggerName,i=null,a=!1;this.addChild=function(e){this.children.push(e),e.parent=this,e.invalidateAppenderCache()};var s=!0;this.getAdditivity=function(){return s},this.setAdditivity=function(e){var t=s!=e;s=e,t&&this.invalidateAppenderCache()},this.addAppender=function(e){r?handleError("Logger.addAppender: you may not add an appender to the null logger"):e instanceof log4javascript.Appender?array_contains(t,e)||(t.push(e),e.setAddedToLogger(this),this.invalidateAppenderCache()):handleError("Logger.addAppender: appender supplied ('"+toStr(e)+"') is not a subclass of Appender")},this.removeAppender=function(e){array_remove(t,e),e.setRemovedFromLogger(this),this.invalidateAppenderCache()},this.removeAllAppenders=function(){var e=t.length;if(e>0){for(var o=0;o1&&isError(r)&&(o=r,n--);for(var i=[],a=0;a<=n;a++)i[a]=t[a];var s=new LoggingEvent(this,new Date,e,i,o);this.callAppenders(s)}},this.callAppenders=function(e){for(var t=this.getEffectiveAppenders(),o=0,n=t.length;o0?t:["Assertion Failure"]).push(newLine),t.push(e),this.log(Level.ERROR,t)}},this.toString=function(){return"Logger["+this.name+"]"}}Logger.prototype={trace:function(){this.log(Level.TRACE,arguments)},debug:function(){this.log(Level.DEBUG,arguments)},info:function(){this.log(Level.INFO,arguments)},warn:function(){this.log(Level.WARN,arguments)},error:function(){this.log(Level.ERROR,arguments)},fatal:function(){this.log(Level.FATAL,arguments)},isEnabledFor:function(e){return e.isGreaterOrEqual(this.getEffectiveLevel())},isTraceEnabled:function(){return this.isEnabledFor(Level.TRACE)},isDebugEnabled:function(){return this.isEnabledFor(Level.DEBUG)},isInfoEnabled:function(){return this.isEnabledFor(Level.INFO)},isWarnEnabled:function(){return this.isEnabledFor(Level.WARN)},isErrorEnabled:function(){return this.isEnabledFor(Level.ERROR)},isFatalEnabled:function(){return this.isEnabledFor(Level.FATAL)}},Logger.prototype.trace.isEntryPoint=!0,Logger.prototype.debug.isEntryPoint=!0,Logger.prototype.info.isEntryPoint=!0,Logger.prototype.warn.isEntryPoint=!0,Logger.prototype.error.isEntryPoint=!0,Logger.prototype.fatal.isEntryPoint=!0;var loggers={},ROOT_LOGGER_DEFAULT_LEVEL=Level.DEBUG,rootLogger=new Logger(rootLoggerName);rootLogger.setLevel(ROOT_LOGGER_DEFAULT_LEVEL),log4javascript.getRootLogger=function(){return rootLogger},log4javascript.getLogger=function(e){if("string"!=typeof e&&(e=anonymousLoggerName,logLog.warn("log4javascript.getLogger: non-string logger name "+toStr(e)+" supplied, returning anonymous logger")),e==rootLoggerName&&handleError("log4javascript.getLogger: root logger may not be obtained by name"),!loggers[e]){var t=new Logger(e);loggers[e]=t;var o,n=e.lastIndexOf(".");if(n>-1){var r=e.substring(0,n);o=log4javascript.getLogger(r)}else o=rootLogger;o.addChild(t)}return loggers[e]};var defaultLogger=null;log4javascript.getDefaultLogger=function(){return defaultLogger||(defaultLogger=createDefaultLogger()),defaultLogger};var nullLogger=null;log4javascript.getNullLogger=function(){return nullLogger||(nullLogger=new Logger(nullLoggerName)).setLevel(Level.OFF),nullLogger},log4javascript.resetConfiguration=function(){rootLogger.setLevel(ROOT_LOGGER_DEFAULT_LEVEL),loggers={}};var LoggingEvent=function(e,t,o,n,r){this.logger=e,this.timeStamp=t,this.timeStampInMilliseconds=t.getTime(),this.timeStampInSeconds=Math.floor(this.timeStampInMilliseconds/1e3),this.milliseconds=this.timeStamp.getMilliseconds(),this.level=o,this.messages=n,this.exception=r};LoggingEvent.prototype={getThrowableStrRep:function(){return this.exception?getExceptionStringRep(this.exception):""},getCombinedMessages:function(){return 1==this.messages.length?this.messages[0]:this.messages.join(newLine)},toString:function(){return"LoggingEvent["+this.level+"]"}},log4javascript.LoggingEvent=LoggingEvent;var Layout=function(){};Layout.prototype={defaults:{loggerKey:"logger",timeStampKey:"timestamp",millisecondsKey:"milliseconds",levelKey:"level",messageKey:"message",exceptionKey:"exception",urlKey:"url"},loggerKey:"logger",timeStampKey:"timestamp",millisecondsKey:"milliseconds",levelKey:"level",messageKey:"message",exceptionKey:"exception",urlKey:"url",batchHeader:"",batchFooter:"",batchSeparator:"",returnsPostData:!1,overrideTimeStampsSetting:!1,useTimeStampsInMilliseconds:null,format:function(){handleError("Layout.format: layout supplied has no format() method")},ignoresThrowable:function(){handleError("Layout.ignoresThrowable: layout supplied has no ignoresThrowable() method")},getContentType:function(){return"text/plain"},allowBatching:function(){return!0},setTimeStampsInMilliseconds:function(e){this.overrideTimeStampsSetting=!0,this.useTimeStampsInMilliseconds=bool(e)},isTimeStampsInMilliseconds:function(){return this.overrideTimeStampsSetting?this.useTimeStampsInMilliseconds:useTimeStampsInMilliseconds},getTimeStampValue:function(e){return this.isTimeStampsInMilliseconds()?e.timeStampInMilliseconds:e.timeStampInSeconds},getDataValues:function(e,t){var o=[[this.loggerKey,e.logger.name],[this.timeStampKey,this.getTimeStampValue(e)],[this.levelKey,e.level.name],[this.urlKey,window.location.href],[this.messageKey,t?e.getCombinedMessages():e.messages]];if(this.isTimeStampsInMilliseconds()||o.push([this.millisecondsKey,e.milliseconds]),e.exception&&o.push([this.exceptionKey,getExceptionStringRep(e.exception)]),this.hasCustomFields())for(var n=0,r=this.customFields.length;n0},formatWithException:function(e){var t=this.format(e);return e.exception&&this.ignoresThrowable()&&(t+=e.getThrowableStrRep()),t},toString:function(){handleError("Layout.toString: all layouts must override this method")}},log4javascript.Layout=Layout;var Appender=function(){},SimpleDateFormat;function SimpleLayout(){this.customFields=[]}function NullLayout(){this.customFields=[]}function XmlLayout(e){this.combineMessages=extractBooleanFromParam(e,!0),this.customFields=[]}function escapeNewLines(e){return e.replace(/\r\n|\r|\n/g,"\\r\\n")}function JsonLayout(e,t){this.readable=extractBooleanFromParam(e,!1),this.combineMessages=extractBooleanFromParam(t,!0),this.batchHeader=this.readable?"["+newLine:"[",this.batchFooter=this.readable?"]"+newLine:"]",this.batchSeparator=this.readable?","+newLine:",",this.setKeys(),this.colon=this.readable?": ":":",this.tab=this.readable?"\t":"",this.lineBreak=this.readable?newLine:"",this.customFields=[]}function HttpPostDataLayout(){this.setKeys(),this.customFields=[],this.returnsPostData=!0}function formatObjectExpansion(e,t,o){var n=[];return function e(t,o,r){var i,a,s,l,c,d,u;function p(e){for(var t=splitIntoLines(e),o=1,n=t.length;o0){for(n.push(t),d="["+newLine,s=o-1,l=r+" ",c=[],i=0,a=t.length;i0){for(i in n.push(t),d="{"+newLine,s=o-1,l=r+" ",c=[],t)try{u=e(t[i],s,l),c.push(l+i+": "+u)}catch(g){c.push(l+i+": Error formatting property. Details: "+getExceptionStringRep(g))}return d+=c.join(","+newLine)+newLine+r+"}"}return p(toStr(t))}(e,t,o)}function PatternLayout(e){this.pattern=e||PatternLayout.DEFAULT_CONVERSION_PATTERN,this.customFields=[]}Appender.prototype=new EventSupport,Appender.prototype.layout=new PatternLayout,Appender.prototype.threshold=Level.ALL,Appender.prototype.loggers=[],Appender.prototype.doAppend=function(e){enabled&&e.level.level>=this.threshold.level&&this.append(e)},Appender.prototype.append=function(e){},Appender.prototype.setLayout=function(e){e instanceof Layout?this.layout=e:handleError("Appender.setLayout: layout supplied to "+this.toString()+" is not a subclass of Layout")},Appender.prototype.getLayout=function(){return this.layout},Appender.prototype.setThreshold=function(e){e instanceof Level?this.threshold=e:handleError("Appender.setThreshold: threshold supplied to "+this.toString()+" is not a subclass of Level")},Appender.prototype.getThreshold=function(){return this.threshold},Appender.prototype.setAddedToLogger=function(e){this.loggers.push(e)},Appender.prototype.setRemovedFromLogger=function(e){array_remove(this.loggers,e)},Appender.prototype.group=emptyFunction,Appender.prototype.groupEnd=emptyFunction,Appender.prototype.toString=function(){handleError("Appender.toString: all appenders must override this method")},log4javascript.Appender=Appender,SimpleLayout.prototype=new Layout,SimpleLayout.prototype.format=function(e){return e.level.name+" - "+e.getCombinedMessages()},SimpleLayout.prototype.ignoresThrowable=function(){return!0},SimpleLayout.prototype.toString=function(){return"SimpleLayout"},log4javascript.SimpleLayout=SimpleLayout,NullLayout.prototype=new Layout,NullLayout.prototype.format=function(e){return e.messages},NullLayout.prototype.ignoresThrowable=function(){return!0},NullLayout.prototype.formatWithException=function(e){var t=e.messages,o=e.exception;return o?t.concat([o]):t},NullLayout.prototype.toString=function(){return"NullLayout"},log4javascript.NullLayout=NullLayout,XmlLayout.prototype=new Layout,XmlLayout.prototype.isCombinedMessages=function(){return this.combineMessages},XmlLayout.prototype.getContentType=function(){return"text/xml"},XmlLayout.prototype.escapeCdata=function(e){return e.replace(/\]\]>/,"]]>]]>"}var i=''+newLine,this.combineMessages)i+=r(e.getCombinedMessages());else{for(i+=""+newLine,t=0,o=e.messages.length;t"+newLine}if(this.hasCustomFields())for(t=0,o=this.customFields.length;t"+newLine;return e.exception&&(i+=""+newLine),i+=""+newLine+newLine},XmlLayout.prototype.ignoresThrowable=function(){return!1},XmlLayout.prototype.toString=function(){return"XmlLayout"},log4javascript.XmlLayout=XmlLayout,JsonLayout.prototype=new Layout,JsonLayout.prototype.isReadable=function(){return this.readable},JsonLayout.prototype.isCombinedMessages=function(){return this.combineMessages},JsonLayout.prototype.format=function(e){var t,o,n=this,r=this.getDataValues(e,this.combineMessages),i="{"+this.lineBreak;function a(e,t,o){var r,i=typeof e;if(e instanceof Date)r=String(e.getTime());else if(o&&e instanceof Array){r="["+n.lineBreak;for(var s=0,l=e.length;s=e&&n++,n},Date.prototype.getDayInYear=function(){var e=a(this.getFullYear(),0,1);return 1+Math.floor(this.getTimeSince(e)/r)},(SimpleDateFormat=function(e){this.formatString=e}).prototype.setMinimalDaysInFirstWeek=function(e){this.minimalDaysInFirstWeek=e},SimpleDateFormat.prototype.getMinimalDaysInFirstWeek=function(){return isUndefined(this.minimalDaysInFirstWeek)?1:this.minimalDaysInFirstWeek};var s=function(e,t){for(;e.length=4?e:e.substr(0,Math.max(o,t))},c=function(e,t){return s(""+e,t)};SimpleDateFormat.prototype.format=function(r){for(var i,a="",d=this.formatString;i=e.exec(d);){var u=i[1],p=i[2],g=i[3],h=i[4];if(u)a+="''"==u?"'":u.substring(1,u.length-1);else if(g);else if(h)a+=h;else if(p){var b=p.charAt(0),f=p.length,m="";switch(b){case"G":m="AD";break;case"y":m=r.getFullYear();break;case"M":m=r.getMonth();break;case"w":m=r.getWeekInYear(this.getMinimalDaysInFirstWeek());break;case"W":m=r.getWeekInMonth(this.getMinimalDaysInFirstWeek());break;case"D":m=r.getDayInYear();break;case"d":m=r.getDate();break;case"F":m=1+Math.floor((r.getDate()-1)/7);break;case"E":m=o[r.getDay()];break;case"a":m=r.getHours()>=12?"PM":"AM";break;case"H":m=r.getHours();break;case"k":m=r.getHours()||24;break;case"K":m=r.getHours()%12;break;case"h":m=r.getHours()%12||12;break;case"m":m=r.getMinutes();break;case"s":m=r.getSeconds();break;case"S":m=r.getMilliseconds();break;case"Z":m=r.getTimezoneOffset()}switch(n[b]){case 0:a+=l(m,f,2);break;case 1:a+=l(m,f,3);break;case 2:a+=c(m,f);break;case 3:a+=f<=3?(""+m).substr(2,2):c(m,f);break;case 4:a+=f>=3?l(t[m],f,f):c(m+1,f);break;case 5:var w=m>0?"-":"+",y=Math.abs(m),v=""+Math.floor(y/60),S=""+y%60;a+=w+(v=s(v,2))+(S=s(S,2))}}d=d.substr(i.index+i[0].length)}return a}}(),log4javascript.SimpleDateFormat=SimpleDateFormat,PatternLayout.TTCC_CONVERSION_PATTERN="%r %p %c - %m%n",PatternLayout.DEFAULT_CONVERSION_PATTERN="%m%n",PatternLayout.ISO8601_DATEFORMAT="yyyy-MM-dd HH:mm:ss,SSS",PatternLayout.DATETIME_DATEFORMAT="dd MMM yyyy HH:mm:ss,SSS",PatternLayout.ABSOLUTETIME_DATEFORMAT="HH:mm:ss,SSS",PatternLayout.prototype=new Layout,PatternLayout.prototype.format=function(e){for(var t,o=/%(-?[0-9]+)?(\.?[0-9]+)?([acdfmMnpr%])(\{([^\}]+)\})?|([^%]+)/,n="",r=this.pattern;t=o.exec(r);){var i=t[0],a=t[1],s=t[2],l=t[3],c=t[5],d=t[6];if(d)n+=""+d;else{var u,p="";switch(l){case"a":case"m":var g=0;c&&(g=parseInt(c,10),isNaN(g)&&(handleError("PatternLayout.format: invalid specifier '"+c+"' for conversion character '"+l+"' - should be a number"),g=0));for(var h="a"===l?e.messages[0]:e.messages,b=0,f=h.length;b0&&" "!==p.charAt(p.length-1)&&(p+=" "),p+=0===g?h[b]:formatObjectExpansion(h[b],g);break;case"c":var m=e.logger.name;if(c){var w=parseInt(c,10),y=e.logger.name.split(".");p=w>=y.length?m:y.slice(y.length-w).join(".")}else p=m;break;case"d":var v=PatternLayout.ISO8601_DATEFORMAT;c&&("ISO8601"==(v=c)?v=PatternLayout.ISO8601_DATEFORMAT:"ABSOLUTE"==v?v=PatternLayout.ABSOLUTETIME_DATEFORMAT:"DATE"==v&&(v=PatternLayout.DATETIME_DATEFORMAT)),p=new SimpleDateFormat(v).format(e.timeStamp);break;case"f":if(this.hasCustomFields()){var S=0;c&&(S=parseInt(c,10),isNaN(S)?handleError("PatternLayout.format: invalid specifier '"+c+"' for conversion character 'f' - should be a number"):0===S?handleError("PatternLayout.format: invalid specifier '"+c+"' for conversion character 'f' - must be greater than zero"):S>this.customFields.length?handleError("PatternLayout.format: invalid specifier '"+c+"' for conversion character 'f' - there aren't that many custom fields"):S-=1);var A=this.customFields[S].value;"function"==typeof A&&(A=A(this,e)),p=A}break;case"n":p=newLine;break;case"p":p=e.level.name;break;case"r":p=""+e.timeStamp.getDifference(applicationStartDate);break;case"%":p="%";break;default:p=i}if(s){u=parseInt(s.substr(1),10);var C=p.length;u=200&&e.status<300||1223==e.status}function AjaxAppender(e,t){var o=this,n=!0;e||(handleError("AjaxAppender: URL must be specified in constructor"),n=!1);var r=this.defaults.timed,i=this.defaults.waitForResponse,a=this.defaults.batchSize,s=this.defaults.timerInterval,l=this.defaults.requestSuccessCallback,c=this.defaults.failCallback,d=this.defaults.postVarName,u=this.defaults.sendAllOnUnload,p=this.defaults.contentType,g=null,h=[],b=[],f=[],m=!1,w=!1;function y(e){return!w||(handleError("AjaxAppender: configuration option '"+e+"' may not be set after the appender has been initialized"),!1)}function v(){var e;if(n&&enabled)if(m=!0,i)b.length>0?E(A(e=b.shift()),v):(m=!1,r&&C());else{for(;e=b.shift();)E(A(e));m=!1,r&&C()}}function S(){var e=!1;if(n&&enabled){for(var t,s=o.getLayout().allowBatching()?a:1,l=[];t=h.shift();)l.push(t),h.length>=s&&(b.push(l),l=[]);l.length>0&&b.push(l),e=b.length>0,i=!1,r=!1,v()}return e}function A(e){for(var t,n=[],r="";t=e.shift();)n.push(o.getLayout().formatWithException(t));return r=1==e.length?n.join(""):o.getLayout().batchHeader+n.join(o.getLayout().batchSeparator)+o.getLayout().batchFooter,p==o.defaults.contentType&&((r=o.getLayout().returnsPostData?r:urlEncode(d)+"="+urlEncode(r)).length>0&&(r+="&"),r+="layout="+urlEncode(o.getLayout().toString())),r}function C(){window.setTimeout(v,s)}function T(){var e="AjaxAppender: could not create XMLHttpRequest object. AjaxAppender disabled";handleError(e),n=!1,c&&c(e)}function E(o,r){try{var i=getXmlHttp(T);if(n){i.onreadystatechange=function(){if(4==i.readyState){if(isHttpRequestSuccessful(i))l&&l(i),r&&r(i);else{var t="AjaxAppender.append: XMLHttpRequest request to URL "+e+" returned status code "+i.status;handleError(t),c&&c(t)}i.onreadystatechange=emptyFunction,i=null}},i.open("POST",e,!0),t&&withCredentialsSupported&&(i.withCredentials=!0);try{for(var a,s=0;a=f[s++];)i.setRequestHeader(a.name,a.value);i.setRequestHeader("Content-Type",p)}catch(g){var d="AjaxAppender.append: your browser's XMLHttpRequest implementation does not support setRequestHeader, therefore cannot post data. AjaxAppender disabled";return handleError(d),n=!1,void(c&&c(d))}i.send(o)}}catch(h){var u="AjaxAppender.append: error sending log message to "+e;handleError(u,h),n=!1,c&&c(u+". Details: "+getExceptionStringRep(h))}}this.getSessionId=function(){return g},this.setSessionId=function(e){g=extractStringFromParam(e,null),this.layout.setCustomField("sessionid",g)},this.setLayout=function(e){y("layout")&&(this.layout=e,null!==g&&this.setSessionId(g))},this.isTimed=function(){return r},this.setTimed=function(e){y("timed")&&(r=bool(e))},this.getTimerInterval=function(){return s},this.setTimerInterval=function(e){y("timerInterval")&&(s=extractIntFromParam(e,s))},this.isWaitForResponse=function(){return i},this.setWaitForResponse=function(e){y("waitForResponse")&&(i=bool(e))},this.getBatchSize=function(){return a},this.setBatchSize=function(e){y("batchSize")&&(a=extractIntFromParam(e,a))},this.isSendAllOnUnload=function(){return u},this.setSendAllOnUnload=function(e){y("sendAllOnUnload")&&(u=extractBooleanFromParam(e,u))},this.setRequestSuccessCallback=function(e){l=extractFunctionFromParam(e,l)},this.setFailCallback=function(e){c=extractFunctionFromParam(e,c)},this.getPostVarName=function(){return d},this.setPostVarName=function(e){y("postVarName")&&(d=extractStringFromParam(e,d))},this.getHeaders=function(){return f},this.addHeader=function(e,t){"content-type"==e.toLowerCase()?p=t:f.push({name:e,value:t})},this.sendAll=v,this.sendAllRemaining=S,this.append=function(e){if(n){w||function(){if(w=!0,u){var e=window.onbeforeunload;window.onbeforeunload=function(){e&&e(),S()}}r&&C()}(),h.push(e);var t=this.getLayout().allowBatching()?a:1;if(h.length>=t){for(var o,s=[];o=h.shift();)s.push(o);b.push(s),r||i&&(!i||m)||v()}}}}function createDefaultLogger(){return log4javascript.getLogger(defaultLoggerName)}if(AjaxAppender.prototype=new Appender,AjaxAppender.prototype.defaults={waitForResponse:!1,timed:!1,timerInterval:1e3,batchSize:1,sendAllOnUnload:!1,requestSuccessCallback:null,failCallback:null,postVarName:"data",contentType:"application/x-www-form-urlencoded"},AjaxAppender.prototype.layout=new HttpPostDataLayout,AjaxAppender.prototype.toString=function(){return"AjaxAppender"},log4javascript.AjaxAppender=AjaxAppender,log4javascript.setDocumentReady=function(){log4javascript.dispatchEvent("load",{})},window.addEventListener)window.addEventListener("load",log4javascript.setDocumentReady,!1);else if(window.attachEvent)window.attachEvent("onload",log4javascript.setDocumentReady);else{var oldOnload=window.onload;"function"!=typeof window.onload?window.onload=log4javascript.setDocumentReady:window.onload=function(e){oldOnload&&oldOnload(e),log4javascript.setDocumentReady()}}return log4javascript},module.exports=factory()})(log4javascript_production);var log4javascript_productionExports=log4javascript_production.exports;const log4javascript=getDefaultExportFromCjs(log4javascript_productionExports);function BrowserConsoleAppender(){}BrowserConsoleAppender.prototype=new log4javascript.Appender,BrowserConsoleAppender.prototype.layout=new log4javascript_productionExports.NullLayout,BrowserConsoleAppender.prototype.threshold=log4javascript_productionExports.Level.DEBUG,BrowserConsoleAppender.prototype.append=function(e){var t,o=this,n=function(t){var n=o.getLayout().formatWithException(e);return"string"==typeof n?t?n:[n]:t?n.join(" "):n},r=window.console;r&&r.log?"function"==typeof r[t=r.debug&&log4javascript_productionExports.Level.DEBUG.isGreaterOrEqual(e.level)?"debug":r.info&&log4javascript_productionExports.Level.INFO.equals(e.level)?"info":r.warn&&log4javascript_productionExports.Level.WARN.equals(e.level)?"warn":r.error&&e.level.isGreaterOrEqual(log4javascript_productionExports.Level.ERROR)?"error":"log"].apply?r[t].apply(r,n(!1)):r[t](n(!0)):"undefined"!=typeof opera&&opera.postError&&opera.postError(n(!0))},BrowserConsoleAppender.prototype.group=function(e){window.console&&window.console.group&&window.console.group(e)},BrowserConsoleAppender.prototype.groupEnd=function(){window.console&&window.console.groupEnd&&window.console.groupEnd()},BrowserConsoleAppender.prototype.toString=function(){return"BrowserConsoleAppender"};let _DeploymentProfile=get(window,"cb.core.utils.DeploymentProfile",{}),_apiKey=_DeploymentProfile.apiKey||"generic",isDebugMode=/debug/i.test(_DeploymentProfile.mode);log4javascript.BrowserConsoleAppender=BrowserConsoleAppender;var consoleAppender=new log4javascript.BrowserConsoleAppender,layout=new log4javascript.PatternLayout("%d{HH:mm:ss,SSS} %c %-5p - %m");consoleAppender.setLayout(layout);var rootLogger$1=log4javascript.getRootLogger();function _setAPIKey(e){_apiKey=e}function _getAPIKey(){return _apiKey}rootLogger$1.removeAllAppenders(),rootLogger$1.addAppender(consoleAppender),rootLogger$1.setLevel(isDebugMode?log4javascript.Level.DEBUG:log4javascript.Level.INFO);const utils$2={getAPIKey:_getAPIKey,setAPIKey:_setAPIKey,Logger:log4javascript,DeploymentProfile:_DeploymentProfile};function bind(e,t){return function(){return e.apply(t,arguments)}}const{toString:toString}=Object.prototype,{getPrototypeOf:getPrototypeOf}=Object,kindOf=(e=>t=>{const o=toString.call(t);return e[o]||(e[o]=o.slice(8,-1).toLowerCase())})(Object.create(null)),kindOfTest=e=>(e=e.toLowerCase(),t=>kindOf(t)===e),typeOfTest=e=>t=>typeof t===e,{isArray:isArray}=Array,isUndefined=typeOfTest("undefined");function isBuffer(e){return null!==e&&!isUndefined(e)&&null!==e.constructor&&!isUndefined(e.constructor)&&isFunction(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const isArrayBuffer=kindOfTest("ArrayBuffer");function isArrayBufferView(e){let t;return t="undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&isArrayBuffer(e.buffer),t}const isString=typeOfTest("string"),isFunction=typeOfTest("function"),isNumber=typeOfTest("number"),isObject=e=>null!==e&&"object"==typeof e,isBoolean=e=>!0===e||!1===e,isPlainObject=e=>{if("object"!==kindOf(e))return!1;const t=getPrototypeOf(e);return!(null!==t&&t!==Object.prototype&&null!==Object.getPrototypeOf(t)||Symbol.toStringTag in e||Symbol.iterator in e)},isDate=kindOfTest("Date"),isFile=kindOfTest("File"),isBlob=kindOfTest("Blob"),isFileList=kindOfTest("FileList"),isStream=e=>isObject(e)&&isFunction(e.pipe),isFormData=e=>{let t;return e&&("function"==typeof FormData&&e instanceof FormData||isFunction(e.append)&&("formdata"===(t=kindOf(e))||"object"===t&&isFunction(e.toString)&&"[object FormData]"===e.toString()))},isURLSearchParams=kindOfTest("URLSearchParams"),[isReadableStream,isRequest,isResponse,isHeaders]=["ReadableStream","Request","Response","Headers"].map(kindOfTest),trim=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function forEach(e,t,{allOwnKeys:o=!1}={}){if(null==e)return;let n,r;if("object"!=typeof e&&(e=[e]),isArray(e))for(n=0,r=e.length;n0;)if(n=o[r],t===n.toLowerCase())return n;return null}const _global="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:global,isContextDefined=e=>!isUndefined(e)&&e!==_global;function merge(){const{caseless:e}=isContextDefined(this)&&this||{},t={},o=(o,n)=>{const r=e&&findKey(t,n)||n;isPlainObject(t[r])&&isPlainObject(o)?t[r]=merge(t[r],o):isPlainObject(o)?t[r]=merge({},o):isArray(o)?t[r]=o.slice():t[r]=o};for(let n=0,r=arguments.length;n(forEach(t,((t,n)=>{o&&isFunction(t)?e[n]=bind(t,o):e[n]=t}),{allOwnKeys:n}),e),stripBOM=e=>(65279===e.charCodeAt(0)&&(e=e.slice(1)),e),inherits=(e,t,o,n)=>{e.prototype=Object.create(t.prototype,n),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),o&&Object.assign(e.prototype,o)},toFlatObject=(e,t,o,n)=>{let r,i,a;const s={};if(t=t||{},null==e)return t;do{for(r=Object.getOwnPropertyNames(e),i=r.length;i-- >0;)a=r[i],n&&!n(a,e,t)||s[a]||(t[a]=e[a],s[a]=!0);e=!1!==o&&getPrototypeOf(e)}while(e&&(!o||o(e,t))&&e!==Object.prototype);return t},endsWith=(e,t,o)=>{e=String(e),(void 0===o||o>e.length)&&(o=e.length),o-=t.length;const n=e.indexOf(t,o);return-1!==n&&n===o},toArray$1=e=>{if(!e)return null;if(isArray(e))return e;let t=e.length;if(!isNumber(t))return null;const o=new Array(t);for(;t-- >0;)o[t]=e[t];return o},isTypedArray=(e=>t=>e&&t instanceof e)("undefined"!=typeof Uint8Array&&getPrototypeOf(Uint8Array)),forEachEntry=(e,t)=>{const o=(e&&e[Symbol.iterator]).call(e);let n;for(;(n=o.next())&&!n.done;){const o=n.value;t.call(e,o[0],o[1])}},matchAll=(e,t)=>{let o;const n=[];for(;null!==(o=e.exec(t));)n.push(o);return n},isHTMLForm=kindOfTest("HTMLFormElement"),toCamelCase=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,(function(e,t,o){return t.toUpperCase()+o})),hasOwnProperty=(({hasOwnProperty:e})=>(t,o)=>e.call(t,o))(Object.prototype),isRegExp=kindOfTest("RegExp"),reduceDescriptors=(e,t)=>{const o=Object.getOwnPropertyDescriptors(e),n={};forEach(o,((o,r)=>{let i;!1!==(i=t(o,r,e))&&(n[r]=i||o)})),Object.defineProperties(e,n)},freezeMethods=e=>{reduceDescriptors(e,((t,o)=>{if(isFunction(e)&&-1!==["arguments","caller","callee"].indexOf(o))return!1;const n=e[o];isFunction(n)&&(t.enumerable=!1,"writable"in t?t.writable=!1:t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+o+"'")}))}))},toObjectSet=(e,t)=>{const o={},n=e=>{e.forEach((e=>{o[e]=!0}))};return isArray(e)?n(e):n(String(e).split(t)),o},noop=()=>{},toFiniteNumber=(e,t)=>null!=e&&Number.isFinite(e=+e)?e:t,ALPHA="abcdefghijklmnopqrstuvwxyz",DIGIT="0123456789",ALPHABET={DIGIT:DIGIT,ALPHA:ALPHA,ALPHA_DIGIT:ALPHA+ALPHA.toUpperCase()+DIGIT},generateString=(e=16,t=ALPHABET.ALPHA_DIGIT)=>{let o="";const{length:n}=t;for(;e--;)o+=t[Math.random()*n|0];return o};function isSpecCompliantForm(e){return!!(e&&isFunction(e.append)&&"FormData"===e[Symbol.toStringTag]&&e[Symbol.iterator])}const toJSONObject=e=>{const t=new Array(10),o=(e,n)=>{if(isObject(e)){if(t.indexOf(e)>=0)return;if(!("toJSON"in e)){t[n]=e;const r=isArray(e)?[]:{};return forEach(e,((e,t)=>{const i=o(e,n+1);!isUndefined(i)&&(r[t]=i)})),t[n]=void 0,r}}return e};return o(e,0)},isAsyncFn=kindOfTest("AsyncFunction"),isThenable=e=>e&&(isObject(e)||isFunction(e))&&isFunction(e.then)&&isFunction(e.catch),_setImmediate=(setImmediateSupported="function"==typeof setImmediate,postMessageSupported=isFunction(_global.postMessage),setImmediateSupported?setImmediate:postMessageSupported?(token=`axios@${Math.random()}`,callbacks=[],_global.addEventListener("message",(({source:e,data:t})=>{e===_global&&t===token&&callbacks.length&&callbacks.shift()()}),!1),e=>{callbacks.push(e),_global.postMessage(token,"*")}):e=>setTimeout(e));var setImmediateSupported,postMessageSupported,token,callbacks;const asap="undefined"!=typeof queueMicrotask?queueMicrotask.bind(_global):"undefined"!=typeof process&&process.nextTick||_setImmediate,utils$1={isArray:isArray,isArrayBuffer:isArrayBuffer,isBuffer:isBuffer,isFormData:isFormData,isArrayBufferView:isArrayBufferView,isString:isString,isNumber:isNumber,isBoolean:isBoolean,isObject:isObject,isPlainObject:isPlainObject,isReadableStream:isReadableStream,isRequest:isRequest,isResponse:isResponse,isHeaders:isHeaders,isUndefined:isUndefined,isDate:isDate,isFile:isFile,isBlob:isBlob,isRegExp:isRegExp,isFunction:isFunction,isStream:isStream,isURLSearchParams:isURLSearchParams,isTypedArray:isTypedArray,isFileList:isFileList,forEach:forEach,merge:merge,extend:extend,trim:trim,stripBOM:stripBOM,inherits:inherits,toFlatObject:toFlatObject,kindOf:kindOf,kindOfTest:kindOfTest,endsWith:endsWith,toArray:toArray$1,forEachEntry:forEachEntry,matchAll:matchAll,isHTMLForm:isHTMLForm,hasOwnProperty:hasOwnProperty,hasOwnProp:hasOwnProperty,reduceDescriptors:reduceDescriptors,freezeMethods:freezeMethods,toObjectSet:toObjectSet,toCamelCase:toCamelCase,noop:noop,toFiniteNumber:toFiniteNumber,findKey:findKey,global:_global,isContextDefined:isContextDefined,ALPHABET:ALPHABET,generateString:generateString,isSpecCompliantForm:isSpecCompliantForm,toJSONObject:toJSONObject,isAsyncFn:isAsyncFn,isThenable:isThenable,setImmediate:_setImmediate,asap:asap};function AxiosError(e,t,o,n,r){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=e,this.name="AxiosError",t&&(this.code=t),o&&(this.config=o),n&&(this.request=n),r&&(this.response=r,this.status=r.status?r.status:null)}utils$1.inherits(AxiosError,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:utils$1.toJSONObject(this.config),code:this.code,status:this.status}}});const prototype$1=AxiosError.prototype,descriptors={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach((e=>{descriptors[e]={value:e}})),Object.defineProperties(AxiosError,descriptors),Object.defineProperty(prototype$1,"isAxiosError",{value:!0}),AxiosError.from=(e,t,o,n,r,i)=>{const a=Object.create(prototype$1);return utils$1.toFlatObject(e,a,(function(e){return e!==Error.prototype}),(e=>"isAxiosError"!==e)),AxiosError.call(a,e.message,t,o,n,r),a.cause=e,a.name=e.name,i&&Object.assign(a,i),a};const httpAdapter=null;function isVisitable(e){return utils$1.isPlainObject(e)||utils$1.isArray(e)}function removeBrackets(e){return utils$1.endsWith(e,"[]")?e.slice(0,-2):e}function renderKey(e,t,o){return e?e.concat(t).map((function(e,t){return e=removeBrackets(e),!o&&t?"["+e+"]":e})).join(o?".":""):t}function isFlatArray(e){return utils$1.isArray(e)&&!e.some(isVisitable)}const predicates=utils$1.toFlatObject(utils$1,{},null,(function(e){return/^is[A-Z]/.test(e)}));function toFormData(e,t,o){if(!utils$1.isObject(e))throw new TypeError("target must be an object");t=t||new FormData;const n=(o=utils$1.toFlatObject(o,{metaTokens:!0,dots:!1,indexes:!1},!1,(function(e,t){return!utils$1.isUndefined(t[e])}))).metaTokens,r=o.visitor||c,i=o.dots,a=o.indexes,s=(o.Blob||"undefined"!=typeof Blob&&Blob)&&utils$1.isSpecCompliantForm(t);if(!utils$1.isFunction(r))throw new TypeError("visitor must be a function");function l(e){if(null===e)return"";if(utils$1.isDate(e))return e.toISOString();if(!s&&utils$1.isBlob(e))throw new AxiosError("Blob is not supported. Use a Buffer instead.");return utils$1.isArrayBuffer(e)||utils$1.isTypedArray(e)?s&&"function"==typeof Blob?new Blob([e]):Buffer.from(e):e}function c(e,o,r){let s=e;if(e&&!r&&"object"==typeof e)if(utils$1.endsWith(o,"{}"))o=n?o:o.slice(0,-2),e=JSON.stringify(e);else if(utils$1.isArray(e)&&isFlatArray(e)||(utils$1.isFileList(e)||utils$1.endsWith(o,"[]"))&&(s=utils$1.toArray(e)))return o=removeBrackets(o),s.forEach((function(e,n){!utils$1.isUndefined(e)&&null!==e&&t.append(!0===a?renderKey([o],n,i):null===a?o:o+"[]",l(e))})),!1;return!!isVisitable(e)||(t.append(renderKey(r,o,i),l(e)),!1)}const d=[],u=Object.assign(predicates,{defaultVisitor:c,convertValue:l,isVisitable:isVisitable});if(!utils$1.isObject(e))throw new TypeError("data must be an object");return function e(o,n){if(!utils$1.isUndefined(o)){if(-1!==d.indexOf(o))throw Error("Circular reference detected in "+n.join("."));d.push(o),utils$1.forEach(o,(function(o,i){!0===(!(utils$1.isUndefined(o)||null===o)&&r.call(t,o,utils$1.isString(i)?i.trim():i,n,u))&&e(o,n?n.concat(i):[i])})),d.pop()}}(e),t}function encode$1(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,(function(e){return t[e]}))}function AxiosURLSearchParams(e,t){this._pairs=[],e&&toFormData(e,this,t)}const prototype=AxiosURLSearchParams.prototype;function encode(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function buildURL(e,t,o){if(!t)return e;const n=o&&o.encode||encode,r=o&&o.serialize;let i;if(i=r?r(t,o):utils$1.isURLSearchParams(t)?t.toString():new AxiosURLSearchParams(t,o).toString(n),i){const t=e.indexOf("#");-1!==t&&(e=e.slice(0,t)),e+=(-1===e.indexOf("?")?"?":"&")+i}return e}prototype.append=function(e,t){this._pairs.push([e,t])},prototype.toString=function(e){const t=e?function(t){return e.call(this,t,encode$1)}:encode$1;return this._pairs.map((function(e){return t(e[0])+"="+t(e[1])}),"").join("&")};class InterceptorManager{constructor(){this.handlers=[]}use(e,t,o){return this.handlers.push({fulfilled:e,rejected:t,synchronous:!!o&&o.synchronous,runWhen:o?o.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(e){utils$1.forEach(this.handlers,(function(t){null!==t&&e(t)}))}}const transitionalDefaults={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},URLSearchParams$1="undefined"!=typeof URLSearchParams?URLSearchParams:AxiosURLSearchParams,FormData$1="undefined"!=typeof FormData?FormData:null,Blob$1="undefined"!=typeof Blob?Blob:null,platform$1={isBrowser:!0,classes:{URLSearchParams:URLSearchParams$1,FormData:FormData$1,Blob:Blob$1},protocols:["http","https","file","blob","url","data"]},hasBrowserEnv="undefined"!=typeof window&&"undefined"!=typeof document,_navigator="object"==typeof navigator&&navigator||void 0,hasStandardBrowserEnv=hasBrowserEnv&&(!_navigator||["ReactNative","NativeScript","NS"].indexOf(_navigator.product)<0),hasStandardBrowserWebWorkerEnv="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"==typeof self.importScripts,origin=hasBrowserEnv&&window.location.href||"http://localhost",utils=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:hasBrowserEnv,hasStandardBrowserEnv:hasStandardBrowserEnv,hasStandardBrowserWebWorkerEnv:hasStandardBrowserWebWorkerEnv,navigator:_navigator,origin:origin},Symbol.toStringTag,{value:"Module"})),platform={...utils,...platform$1};function toURLEncodedForm(e,t){return toFormData(e,new platform.classes.URLSearchParams,Object.assign({visitor:function(e,t,o,n){return platform.isNode&&utils$1.isBuffer(e)?(this.append(t,e.toString("base64")),!1):n.defaultVisitor.apply(this,arguments)}},t))}function parsePropPath(e){return utils$1.matchAll(/\w+|\[(\w*)]/g,e).map((e=>"[]"===e[0]?"":e[1]||e[0]))}function arrayToObject(e){const t={},o=Object.keys(e);let n;const r=o.length;let i;for(n=0;n=e.length;if(i=!i&&utils$1.isArray(n)?n.length:i,s)return utils$1.hasOwnProp(n,i)?n[i]=[n[i],o]:n[i]=o,!a;n[i]&&utils$1.isObject(n[i])||(n[i]=[]);return t(e,o,n[i],r)&&utils$1.isArray(n[i])&&(n[i]=arrayToObject(n[i])),!a}if(utils$1.isFormData(e)&&utils$1.isFunction(e.entries)){const o={};return utils$1.forEachEntry(e,((e,n)=>{t(parsePropPath(e),n,o,0)})),o}return null}function stringifySafely(e,t,o){if(utils$1.isString(e))try{return(t||JSON.parse)(e),utils$1.trim(e)}catch(n){if("SyntaxError"!==n.name)throw n}return(o||JSON.stringify)(e)}const defaults={transitional:transitionalDefaults,adapter:["xhr","http","fetch"],transformRequest:[function(e,t){const o=t.getContentType()||"",n=o.indexOf("application/json")>-1,r=utils$1.isObject(e);r&&utils$1.isHTMLForm(e)&&(e=new FormData(e));if(utils$1.isFormData(e))return n?JSON.stringify(formDataToJSON(e)):e;if(utils$1.isArrayBuffer(e)||utils$1.isBuffer(e)||utils$1.isStream(e)||utils$1.isFile(e)||utils$1.isBlob(e)||utils$1.isReadableStream(e))return e;if(utils$1.isArrayBufferView(e))return e.buffer;if(utils$1.isURLSearchParams(e))return t.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();let i;if(r){if(o.indexOf("application/x-www-form-urlencoded")>-1)return toURLEncodedForm(e,this.formSerializer).toString();if((i=utils$1.isFileList(e))||o.indexOf("multipart/form-data")>-1){const t=this.env&&this.env.FormData;return toFormData(i?{"files[]":e}:e,t&&new t,this.formSerializer)}}return r||n?(t.setContentType("application/json",!1),stringifySafely(e)):e}],transformResponse:[function(e){const t=this.transitional||defaults.transitional,o=t&&t.forcedJSONParsing,n="json"===this.responseType;if(utils$1.isResponse(e)||utils$1.isReadableStream(e))return e;if(e&&utils$1.isString(e)&&(o&&!this.responseType||n)){const o=!(t&&t.silentJSONParsing)&&n;try{return JSON.parse(e)}catch(r){if(o){if("SyntaxError"===r.name)throw AxiosError.from(r,AxiosError.ERR_BAD_RESPONSE,this,null,this.response);throw r}}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:platform.classes.FormData,Blob:platform.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};utils$1.forEach(["delete","get","head","post","put","patch"],(e=>{defaults.headers[e]={}}));const ignoreDuplicateOf=utils$1.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),parseHeaders=e=>{const t={};let o,n,r;return e&&e.split("\n").forEach((function(e){r=e.indexOf(":"),o=e.substring(0,r).trim().toLowerCase(),n=e.substring(r+1).trim(),!o||t[o]&&ignoreDuplicateOf[o]||("set-cookie"===o?t[o]?t[o].push(n):t[o]=[n]:t[o]=t[o]?t[o]+", "+n:n)})),t},$internals=Symbol("internals");function normalizeHeader(e){return e&&String(e).trim().toLowerCase()}function normalizeValue(e){return!1===e||null==e?e:utils$1.isArray(e)?e.map(normalizeValue):String(e)}function parseTokens(e){const t=Object.create(null),o=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let n;for(;n=o.exec(e);)t[n[1]]=n[2];return t}const isValidHeaderName=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function matchHeaderValue(e,t,o,n,r){return utils$1.isFunction(n)?n.call(this,t,o):(r&&(t=o),utils$1.isString(t)?utils$1.isString(n)?-1!==t.indexOf(n):utils$1.isRegExp(n)?n.test(t):void 0:void 0)}function formatHeader(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,((e,t,o)=>t.toUpperCase()+o))}function buildAccessors(e,t){const o=utils$1.toCamelCase(" "+t);["get","set","has"].forEach((n=>{Object.defineProperty(e,n+o,{value:function(e,o,r){return this[n].call(this,t,e,o,r)},configurable:!0})}))}class AxiosHeaders{constructor(e){e&&this.set(e)}set(e,t,o){const n=this;function r(e,t,o){const r=normalizeHeader(t);if(!r)throw new Error("header name must be a non-empty string");const i=utils$1.findKey(n,r);(!i||void 0===n[i]||!0===o||void 0===o&&!1!==n[i])&&(n[i||t]=normalizeValue(e))}const i=(e,t)=>utils$1.forEach(e,((e,o)=>r(e,o,t)));if(utils$1.isPlainObject(e)||e instanceof this.constructor)i(e,t);else if(utils$1.isString(e)&&(e=e.trim())&&!isValidHeaderName(e))i(parseHeaders(e),t);else if(utils$1.isHeaders(e))for(const[a,s]of e.entries())r(s,a,o);else null!=e&&r(t,e,o);return this}get(e,t){if(e=normalizeHeader(e)){const o=utils$1.findKey(this,e);if(o){const e=this[o];if(!t)return e;if(!0===t)return parseTokens(e);if(utils$1.isFunction(t))return t.call(this,e,o);if(utils$1.isRegExp(t))return t.exec(e);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,t){if(e=normalizeHeader(e)){const o=utils$1.findKey(this,e);return!(!o||void 0===this[o]||t&&!matchHeaderValue(this,this[o],o,t))}return!1}delete(e,t){const o=this;let n=!1;function r(e){if(e=normalizeHeader(e)){const r=utils$1.findKey(o,e);!r||t&&!matchHeaderValue(o,o[r],r,t)||(delete o[r],n=!0)}}return utils$1.isArray(e)?e.forEach(r):r(e),n}clear(e){const t=Object.keys(this);let o=t.length,n=!1;for(;o--;){const r=t[o];e&&!matchHeaderValue(this,this[r],r,e,!0)||(delete this[r],n=!0)}return n}normalize(e){const t=this,o={};return utils$1.forEach(this,((n,r)=>{const i=utils$1.findKey(o,r);if(i)return t[i]=normalizeValue(n),void delete t[r];const a=e?formatHeader(r):String(r).trim();a!==r&&delete t[r],t[a]=normalizeValue(n),o[a]=!0})),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){const t=Object.create(null);return utils$1.forEach(this,((o,n)=>{null!=o&&!1!==o&&(t[n]=e&&utils$1.isArray(o)?o.join(", "):o)})),t}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map((([e,t])=>e+": "+t)).join("\n")}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(e){return e instanceof this?e:new this(e)}static concat(e,...t){const o=new this(e);return t.forEach((e=>o.set(e))),o}static accessor(e){const t=(this[$internals]=this[$internals]={accessors:{}}).accessors,o=this.prototype;function n(e){const n=normalizeHeader(e);t[n]||(buildAccessors(o,e),t[n]=!0)}return utils$1.isArray(e)?e.forEach(n):n(e),this}}function transformData(e,t){const o=this||defaults,n=t||o,r=AxiosHeaders.from(n.headers);let i=n.data;return utils$1.forEach(e,(function(e){i=e.call(o,i,r.normalize(),t?t.status:void 0)})),r.normalize(),i}function isCancel(e){return!(!e||!e.__CANCEL__)}function CanceledError(e,t,o){AxiosError.call(this,null==e?"canceled":e,AxiosError.ERR_CANCELED,t,o),this.name="CanceledError"}function settle(e,t,o){const n=o.config.validateStatus;o.status&&n&&!n(o.status)?t(new AxiosError("Request failed with status code "+o.status,[AxiosError.ERR_BAD_REQUEST,AxiosError.ERR_BAD_RESPONSE][Math.floor(o.status/100)-4],o.config,o.request,o)):e(o)}function parseProtocol(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function speedometer(e,t){e=e||10;const o=new Array(e),n=new Array(e);let r,i=0,a=0;return t=void 0!==t?t:1e3,function(s){const l=Date.now(),c=n[a];r||(r=l),o[i]=s,n[i]=l;let d=a,u=0;for(;d!==i;)u+=o[d++],d%=e;if(i=(i+1)%e,i===a&&(a=(a+1)%e),l-r{r=i,o=null,n&&(clearTimeout(n),n=null),e.apply(null,t)};return[(...e)=>{const t=Date.now(),s=t-r;s>=i?a(e,t):(o=e,n||(n=setTimeout((()=>{n=null,a(o)}),i-s)))},()=>o&&a(o)]}AxiosHeaders.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),utils$1.reduceDescriptors(AxiosHeaders.prototype,(({value:e},t)=>{let o=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(e){this[o]=e}}})),utils$1.freezeMethods(AxiosHeaders),utils$1.inherits(CanceledError,AxiosError,{__CANCEL__:!0});const progressEventReducer=(e,t,o=3)=>{let n=0;const r=speedometer(50,250);return throttle((o=>{const i=o.loaded,a=o.lengthComputable?o.total:void 0,s=i-n,l=r(s);n=i;e({loaded:i,total:a,progress:a?i/a:void 0,bytes:s,rate:l||void 0,estimated:l&&a&&i<=a?(a-i)/l:void 0,event:o,lengthComputable:null!=a,[t?"download":"upload"]:!0})}),o)},progressEventDecorator=(e,t)=>{const o=null!=e;return[n=>t[0]({lengthComputable:o,total:e,loaded:n}),t[1]]},asyncDecorator=e=>(...t)=>utils$1.asap((()=>e(...t))),isURLSameOrigin=platform.hasStandardBrowserEnv?function(){const e=platform.navigator&&/(msie|trident)/i.test(platform.navigator.userAgent),t=document.createElement("a");let o;function n(o){let n=o;return e&&(t.setAttribute("href",n),n=t.href),t.setAttribute("href",n),{href:t.href,protocol:t.protocol?t.protocol.replace(/:$/,""):"",host:t.host,search:t.search?t.search.replace(/^\?/,""):"",hash:t.hash?t.hash.replace(/^#/,""):"",hostname:t.hostname,port:t.port,pathname:"/"===t.pathname.charAt(0)?t.pathname:"/"+t.pathname}}return o=n(window.location.href),function(e){const t=utils$1.isString(e)?n(e):e;return t.protocol===o.protocol&&t.host===o.host}}():function(){return function(){return!0}}(),cookies=platform.hasStandardBrowserEnv?{write(e,t,o,n,r,i){const a=[e+"="+encodeURIComponent(t)];utils$1.isNumber(o)&&a.push("expires="+new Date(o).toGMTString()),utils$1.isString(n)&&a.push("path="+n),utils$1.isString(r)&&a.push("domain="+r),!0===i&&a.push("secure"),document.cookie=a.join("; ")},read(e){const t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove(e){this.write(e,"",Date.now()-864e5)}}:{write(){},read:()=>null,remove(){}};function isAbsoluteURL(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function combineURLs(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function buildFullPath(e,t){return e&&!isAbsoluteURL(t)?combineURLs(e,t):t}const headersToObject=e=>e instanceof AxiosHeaders?{...e}:e;function mergeConfig(e,t){t=t||{};const o={};function n(e,t,o){return utils$1.isPlainObject(e)&&utils$1.isPlainObject(t)?utils$1.merge.call({caseless:o},e,t):utils$1.isPlainObject(t)?utils$1.merge({},t):utils$1.isArray(t)?t.slice():t}function r(e,t,o){return utils$1.isUndefined(t)?utils$1.isUndefined(e)?void 0:n(void 0,e,o):n(e,t,o)}function i(e,t){if(!utils$1.isUndefined(t))return n(void 0,t)}function a(e,t){return utils$1.isUndefined(t)?utils$1.isUndefined(e)?void 0:n(void 0,e):n(void 0,t)}function s(o,r,i){return i in t?n(o,r):i in e?n(void 0,o):void 0}const l={url:i,method:i,data:i,baseURL:a,transformRequest:a,transformResponse:a,paramsSerializer:a,timeout:a,timeoutMessage:a,withCredentials:a,withXSRFToken:a,adapter:a,responseType:a,xsrfCookieName:a,xsrfHeaderName:a,onUploadProgress:a,onDownloadProgress:a,decompress:a,maxContentLength:a,maxBodyLength:a,beforeRedirect:a,transport:a,httpAgent:a,httpsAgent:a,cancelToken:a,socketPath:a,responseEncoding:a,validateStatus:s,headers:(e,t)=>r(headersToObject(e),headersToObject(t),!0)};return utils$1.forEach(Object.keys(Object.assign({},e,t)),(function(n){const i=l[n]||r,a=i(e[n],t[n],n);utils$1.isUndefined(a)&&i!==s||(o[n]=a)})),o}const resolveConfig=e=>{const t=mergeConfig({},e);let o,{data:n,withXSRFToken:r,xsrfHeaderName:i,xsrfCookieName:a,headers:s,auth:l}=t;if(t.headers=s=AxiosHeaders.from(s),t.url=buildURL(buildFullPath(t.baseURL,t.url),e.params,e.paramsSerializer),l&&s.set("Authorization","Basic "+btoa((l.username||"")+":"+(l.password?unescape(encodeURIComponent(l.password)):""))),utils$1.isFormData(n))if(platform.hasStandardBrowserEnv||platform.hasStandardBrowserWebWorkerEnv)s.setContentType(void 0);else if(!1!==(o=s.getContentType())){const[e,...t]=o?o.split(";").map((e=>e.trim())).filter(Boolean):[];s.setContentType([e||"multipart/form-data",...t].join("; "))}if(platform.hasStandardBrowserEnv&&(r&&utils$1.isFunction(r)&&(r=r(t)),r||!1!==r&&isURLSameOrigin(t.url))){const e=i&&a&&cookies.read(a);e&&s.set(i,e)}return t},isXHRAdapterSupported="undefined"!=typeof XMLHttpRequest,xhrAdapter=isXHRAdapterSupported&&function(e){return new Promise((function(t,o){const n=resolveConfig(e);let r=n.data;const i=AxiosHeaders.from(n.headers).normalize();let a,s,l,c,d,{responseType:u,onUploadProgress:p,onDownloadProgress:g}=n;function h(){c&&c(),d&&d(),n.cancelToken&&n.cancelToken.unsubscribe(a),n.signal&&n.signal.removeEventListener("abort",a)}let b=new XMLHttpRequest;function f(){if(!b)return;const n=AxiosHeaders.from("getAllResponseHeaders"in b&&b.getAllResponseHeaders());settle((function(e){t(e),h()}),(function(e){o(e),h()}),{data:u&&"text"!==u&&"json"!==u?b.response:b.responseText,status:b.status,statusText:b.statusText,headers:n,config:e,request:b}),b=null}b.open(n.method.toUpperCase(),n.url,!0),b.timeout=n.timeout,"onloadend"in b?b.onloadend=f:b.onreadystatechange=function(){b&&4===b.readyState&&(0!==b.status||b.responseURL&&0===b.responseURL.indexOf("file:"))&&setTimeout(f)},b.onabort=function(){b&&(o(new AxiosError("Request aborted",AxiosError.ECONNABORTED,e,b)),b=null)},b.onerror=function(){o(new AxiosError("Network Error",AxiosError.ERR_NETWORK,e,b)),b=null},b.ontimeout=function(){let t=n.timeout?"timeout of "+n.timeout+"ms exceeded":"timeout exceeded";const r=n.transitional||transitionalDefaults;n.timeoutErrorMessage&&(t=n.timeoutErrorMessage),o(new AxiosError(t,r.clarifyTimeoutError?AxiosError.ETIMEDOUT:AxiosError.ECONNABORTED,e,b)),b=null},void 0===r&&i.setContentType(null),"setRequestHeader"in b&&utils$1.forEach(i.toJSON(),(function(e,t){b.setRequestHeader(t,e)})),utils$1.isUndefined(n.withCredentials)||(b.withCredentials=!!n.withCredentials),u&&"json"!==u&&(b.responseType=n.responseType),g&&([l,d]=progressEventReducer(g,!0),b.addEventListener("progress",l)),p&&b.upload&&([s,c]=progressEventReducer(p),b.upload.addEventListener("progress",s),b.upload.addEventListener("loadend",c)),(n.cancelToken||n.signal)&&(a=t=>{b&&(o(!t||t.type?new CanceledError(null,e,b):t),b.abort(),b=null)},n.cancelToken&&n.cancelToken.subscribe(a),n.signal&&(n.signal.aborted?a():n.signal.addEventListener("abort",a)));const m=parseProtocol(n.url);m&&-1===platform.protocols.indexOf(m)?o(new AxiosError("Unsupported protocol "+m+":",AxiosError.ERR_BAD_REQUEST,e)):b.send(r||null)}))},composeSignals=(e,t)=>{let o,n=new AbortController;const r=function(e){if(!o){o=!0,a();const t=e instanceof Error?e:this.reason;n.abort(t instanceof AxiosError?t:new CanceledError(t instanceof Error?t.message:t))}};let i=t&&setTimeout((()=>{r(new AxiosError(`timeout ${t} of ms exceeded`,AxiosError.ETIMEDOUT))}),t);const a=()=>{e&&(i&&clearTimeout(i),i=null,e.forEach((e=>{e&&(e.removeEventListener?e.removeEventListener("abort",r):e.unsubscribe(r))})),e=null)};e.forEach((e=>e&&e.addEventListener&&e.addEventListener("abort",r)));const{signal:s}=n;return s.unsubscribe=a,[s,()=>{i&&clearTimeout(i),i=null}]},streamChunk=function*(e,t){let o=e.byteLength;if(!t||o{const i=readBytes(e,t,r);let a,s=0,l=e=>{a||(a=!0,n&&n(e))};return new ReadableStream({async pull(e){try{const{done:t,value:n}=await i.next();if(t)return l(),void e.close();let r=n.byteLength;if(o){let e=s+=r;o(e)}e.enqueue(new Uint8Array(n))}catch(t){throw l(t),t}},cancel:e=>(l(e),i.return())},{highWaterMark:2})},isFetchSupported="function"==typeof fetch&&"function"==typeof Request&&"function"==typeof Response,isReadableStreamSupported=isFetchSupported&&"function"==typeof ReadableStream,encodeText=isFetchSupported&&("function"==typeof TextEncoder?(e=>t=>e.encode(t))(new TextEncoder):async e=>new Uint8Array(await new Response(e).arrayBuffer())),test=(e,...t)=>{try{return!!e(...t)}catch(o){return!1}},supportsRequestStream=isReadableStreamSupported&&test((()=>{let e=!1;const t=new Request(platform.origin,{body:new ReadableStream,method:"POST",get duplex(){return e=!0,"half"}}).headers.has("Content-Type");return e&&!t})),DEFAULT_CHUNK_SIZE=65536,supportsResponseStream=isReadableStreamSupported&&test((()=>utils$1.isReadableStream(new Response("").body))),resolvers={stream:supportsResponseStream&&(e=>e.body)};var res;isFetchSupported&&(res=new Response,["text","arrayBuffer","blob","formData","stream"].forEach((e=>{!resolvers[e]&&(resolvers[e]=utils$1.isFunction(res[e])?t=>t[e]():(t,o)=>{throw new AxiosError(`Response type '${e}' is not supported`,AxiosError.ERR_NOT_SUPPORT,o)})})));const getBodyLength=async e=>null==e?0:utils$1.isBlob(e)?e.size:utils$1.isSpecCompliantForm(e)?(await new Request(e).arrayBuffer()).byteLength:utils$1.isArrayBufferView(e)||utils$1.isArrayBuffer(e)?e.byteLength:(utils$1.isURLSearchParams(e)&&(e+=""),utils$1.isString(e)?(await encodeText(e)).byteLength:void 0),resolveBodyLength=async(e,t)=>{const o=utils$1.toFiniteNumber(e.getContentLength());return null==o?getBodyLength(t):o},fetchAdapter=isFetchSupported&&(async e=>{let{url:t,method:o,data:n,signal:r,cancelToken:i,timeout:a,onDownloadProgress:s,onUploadProgress:l,responseType:c,headers:d,withCredentials:u="same-origin",fetchOptions:p}=resolveConfig(e);c=c?(c+"").toLowerCase():"text";let g,h,[b,f]=r||i||a?composeSignals([r,i],a):[];const m=()=>{!g&&setTimeout((()=>{b&&b.unsubscribe()})),g=!0};let w;try{if(l&&supportsRequestStream&&"get"!==o&&"head"!==o&&0!==(w=await resolveBodyLength(d,n))){let e,o=new Request(t,{method:"POST",body:n,duplex:"half"});if(utils$1.isFormData(n)&&(e=o.headers.get("content-type"))&&d.setContentType(e),o.body){const[e,t]=progressEventDecorator(w,progressEventReducer(asyncDecorator(l)));n=trackStream(o.body,DEFAULT_CHUNK_SIZE,e,t,encodeText)}}utils$1.isString(u)||(u=u?"include":"omit");const r="credentials"in Request.prototype;h=new Request(t,{...p,signal:b,method:o.toUpperCase(),headers:d.normalize().toJSON(),body:n,duplex:"half",credentials:r?u:void 0});let i=await fetch(h);const a=supportsResponseStream&&("stream"===c||"response"===c);if(supportsResponseStream&&(s||a)){const e={};["status","statusText","headers"].forEach((t=>{e[t]=i[t]}));const t=utils$1.toFiniteNumber(i.headers.get("content-length")),[o,n]=s&&progressEventDecorator(t,progressEventReducer(asyncDecorator(s),!0))||[];i=new Response(trackStream(i.body,DEFAULT_CHUNK_SIZE,o,(()=>{n&&n(),a&&m()}),encodeText),e)}c=c||"text";let g=await resolvers[utils$1.findKey(resolvers,c)||"text"](i,e);return!a&&m(),f&&f(),await new Promise(((t,o)=>{settle(t,o,{data:g,headers:AxiosHeaders.from(i.headers),status:i.status,statusText:i.statusText,config:e,request:h})}))}catch(y){if(m(),y&&"TypeError"===y.name&&/fetch/i.test(y.message))throw Object.assign(new AxiosError("Network Error",AxiosError.ERR_NETWORK,e,h),{cause:y.cause||y});throw AxiosError.from(y,y&&y.code,e,h)}}),knownAdapters={http:httpAdapter,xhr:xhrAdapter,fetch:fetchAdapter};utils$1.forEach(knownAdapters,((e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch(o){}Object.defineProperty(e,"adapterName",{value:t})}}));const renderReason=e=>`- ${e}`,isResolvedHandle=e=>utils$1.isFunction(e)||null===e||!1===e,adapters={getAdapter:e=>{e=utils$1.isArray(e)?e:[e];const{length:t}=e;let o,n;const r={};for(let i=0;i`adapter ${e} `+(!1===t?"is not supported by the environment":"is not available in the build")));throw new AxiosError("There is no suitable adapter to dispatch the request "+(t?e.length>1?"since :\n"+e.map(renderReason).join("\n"):" "+renderReason(e[0]):"as no adapter specified"),"ERR_NOT_SUPPORT")}return n},adapters:knownAdapters};function throwIfCancellationRequested(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new CanceledError(null,e)}function dispatchRequest(e){throwIfCancellationRequested(e),e.headers=AxiosHeaders.from(e.headers),e.data=transformData.call(e,e.transformRequest),-1!==["post","put","patch"].indexOf(e.method)&&e.headers.setContentType("application/x-www-form-urlencoded",!1);return adapters.getAdapter(e.adapter||defaults.adapter)(e).then((function(t){return throwIfCancellationRequested(e),t.data=transformData.call(e,e.transformResponse,t),t.headers=AxiosHeaders.from(t.headers),t}),(function(t){return isCancel(t)||(throwIfCancellationRequested(e),t&&t.response&&(t.response.data=transformData.call(e,e.transformResponse,t.response),t.response.headers=AxiosHeaders.from(t.response.headers))),Promise.reject(t)}))}const VERSION="1.7.5",validators$1={};["object","boolean","number","function","string","symbol"].forEach(((e,t)=>{validators$1[e]=function(o){return typeof o===e||"a"+(t<1?"n ":" ")+e}}));const deprecatedWarnings={};function assertOptions(e,t,o){if("object"!=typeof e)throw new AxiosError("options must be an object",AxiosError.ERR_BAD_OPTION_VALUE);const n=Object.keys(e);let r=n.length;for(;r-- >0;){const i=n[r],a=t[i];if(a){const t=e[i],o=void 0===t||a(t,i,e);if(!0!==o)throw new AxiosError("option "+i+" must be "+o,AxiosError.ERR_BAD_OPTION_VALUE)}else if(!0!==o)throw new AxiosError("Unknown option "+i,AxiosError.ERR_BAD_OPTION)}}validators$1.transitional=function(e,t,o){function n(e,t){return"[Axios v"+VERSION+"] Transitional option '"+e+"'"+t+(o?". "+o:"")}return(o,r,i)=>{if(!1===e)throw new AxiosError(n(r," has been removed"+(t?" in "+t:"")),AxiosError.ERR_DEPRECATED);return t&&!deprecatedWarnings[r]&&(deprecatedWarnings[r]=!0,console.warn(n(r," has been deprecated since v"+t+" and will be removed in the near future"))),!e||e(o,r,i)}};const validator={assertOptions:assertOptions,validators:validators$1},validators=validator.validators;class Axios{constructor(e){this.defaults=e,this.interceptors={request:new InterceptorManager,response:new InterceptorManager}}async request(e,t){try{return await this._request(e,t)}catch(o){if(o instanceof Error){let e;Error.captureStackTrace?Error.captureStackTrace(e={}):e=new Error;const t=e.stack?e.stack.replace(/^.+\n/,""):"";try{o.stack?t&&!String(o.stack).endsWith(t.replace(/^.+\n.+\n/,""))&&(o.stack+="\n"+t):o.stack=t}catch(n){}}throw o}}_request(e,t){"string"==typeof e?(t=t||{}).url=e:t=e||{},t=mergeConfig(this.defaults,t);const{transitional:o,paramsSerializer:n,headers:r}=t;void 0!==o&&validator.assertOptions(o,{silentJSONParsing:validators.transitional(validators.boolean),forcedJSONParsing:validators.transitional(validators.boolean),clarifyTimeoutError:validators.transitional(validators.boolean)},!1),null!=n&&(utils$1.isFunction(n)?t.paramsSerializer={serialize:n}:validator.assertOptions(n,{encode:validators.function,serialize:validators.function},!0)),t.method=(t.method||this.defaults.method||"get").toLowerCase();let i=r&&utils$1.merge(r.common,r[t.method]);r&&utils$1.forEach(["delete","get","head","post","put","patch","common"],(e=>{delete r[e]})),t.headers=AxiosHeaders.concat(i,r);const a=[];let s=!0;this.interceptors.request.forEach((function(e){"function"==typeof e.runWhen&&!1===e.runWhen(t)||(s=s&&e.synchronous,a.unshift(e.fulfilled,e.rejected))}));const l=[];let c;this.interceptors.response.forEach((function(e){l.push(e.fulfilled,e.rejected)}));let d,u=0;if(!s){const e=[dispatchRequest.bind(this),void 0];for(e.unshift.apply(e,a),e.push.apply(e,l),d=e.length,c=Promise.resolve(t);u{if(!o._listeners)return;let t=o._listeners.length;for(;t-- >0;)o._listeners[t](e);o._listeners=null})),this.promise.then=e=>{let t;const n=new Promise((e=>{o.subscribe(e),t=e})).then(e);return n.cancel=function(){o.unsubscribe(t)},n},e((function(e,n,r){o.reason||(o.reason=new CanceledError(e,n,r),t(o.reason))}))}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){this.reason?e(this.reason):this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;const t=this._listeners.indexOf(e);-1!==t&&this._listeners.splice(t,1)}static source(){let e;return{token:new CancelToken((function(t){e=t})),cancel:e}}}function spread(e){return function(t){return e.apply(null,t)}}function isAxiosError(e){return utils$1.isObject(e)&&!0===e.isAxiosError}const HttpStatusCode={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};function createInstance(e){const t=new Axios(e),o=bind(Axios.prototype.request,t);return utils$1.extend(o,Axios.prototype,t,{allOwnKeys:!0}),utils$1.extend(o,t,null,{allOwnKeys:!0}),o.create=function(t){return createInstance(mergeConfig(e,t))},o}Object.entries(HttpStatusCode).forEach((([e,t])=>{HttpStatusCode[t]=e}));const axios=createInstance(defaults);axios.Axios=Axios,axios.CanceledError=CanceledError,axios.CancelToken=CancelToken,axios.isCancel=isCancel,axios.VERSION=VERSION,axios.toFormData=toFormData,axios.AxiosError=AxiosError,axios.Cancel=axios.CanceledError,axios.all=function(e){return Promise.all(e)},axios.spread=spread,axios.isAxiosError=isAxiosError,axios.mergeConfig=mergeConfig,axios.AxiosHeaders=AxiosHeaders,axios.formToJSON=e=>formDataToJSON(utils$1.isHTMLForm(e)?new FormData(e):e),axios.getAdapter=adapters.getAdapter,axios.HttpStatusCode=HttpStatusCode,axios.default=axios;var js_cookie={exports:{}},module2,factory; /*! * JavaScript Cookie v2.2.1 * https://github.com/js-cookie/js-cookie * * Copyright 2006, 2015 Klaus Hartl & Fagner Brack * Released under the MIT license */module2=js_cookie,factory=function(){function e(){for(var e=0,t={};e * @copyright Michael Hart 2024 */class AwsV4Signer{constructor({method:e,url:t,headers:o,body:n,accessKeyId:r,secretAccessKey:i,sessionToken:a,service:s,region:l,cache:c,datetime:d,signQuery:u,appendSessionToken:p,allHeaders:g,singleEncode:h}){if(null==t)throw new TypeError("url is a required option");if(null==r)throw new TypeError("accessKeyId is a required option");if(null==i)throw new TypeError("secretAccessKey is a required option");let b,f;this.method=e||(n?"POST":"GET"),this.url=new URL(t),this.headers=new Headers(o||{}),this.body=n,this.accessKeyId=r,this.secretAccessKey=i,this.sessionToken=a,s&&l||([b,f]=guessServiceRegion(this.url,this.headers)),this.service=s||b||"",this.region=l||f||"us-east-1",this.cache=c||new Map,this.datetime=d||(new Date).toISOString().replace(/[:-]|\.\d{3}/g,""),this.signQuery=u,this.appendSessionToken=p||"iotdevicegateway"===this.service,this.headers.delete("Host"),"s3"!==this.service||this.signQuery||this.headers.has("X-Amz-Content-Sha256")||this.headers.set("X-Amz-Content-Sha256","UNSIGNED-PAYLOAD");const m=this.signQuery?this.url.searchParams:this.headers;if(m.set("X-Amz-Date",this.datetime),this.sessionToken&&!this.appendSessionToken&&m.set("X-Amz-Security-Token",this.sessionToken),this.signableHeaders=["host",...this.headers.keys()].filter((e=>g||!UNSIGNABLE_HEADERS.has(e))).sort(),this.signedHeaders=this.signableHeaders.join(";"),this.canonicalHeaders=this.signableHeaders.map((e=>e+":"+("host"===e?this.url.host:(this.headers.get(e)||"").replace(/\s+/g," ")))).join("\n"),this.credentialString=[this.datetime.slice(0,8),this.region,this.service,"aws4_request"].join("/"),this.signQuery&&("s3"!==this.service||m.has("X-Amz-Expires")||m.set("X-Amz-Expires","86400"),m.set("X-Amz-Algorithm","AWS4-HMAC-SHA256"),m.set("X-Amz-Credential",this.accessKeyId+"/"+this.credentialString),m.set("X-Amz-SignedHeaders",this.signedHeaders)),"s3"===this.service)try{this.encodedPath=decodeURIComponent(this.url.pathname.replace(/\+/g," "))}catch(y){this.encodedPath=this.url.pathname}else this.encodedPath=this.url.pathname.replace(/\/+/g,"/");h||(this.encodedPath=encodeURIComponent(this.encodedPath).replace(/%2F/g,"/")),this.encodedPath=encodeRfc3986(this.encodedPath);const w=new Set;this.encodedSearch=[...this.url.searchParams].filter((([e])=>{if(!e)return!1;if("s3"===this.service){if(w.has(e))return!1;w.add(e)}return!0})).map((e=>e.map((e=>encodeRfc3986(encodeURIComponent(e)))))).sort((([e,t],[o,n])=>eo?1:tn?1:0)).map((e=>e.join("="))).join("&")}async sign(){return this.signQuery?(this.url.searchParams.set("X-Amz-Signature",await this.signature()),this.sessionToken&&this.appendSessionToken&&this.url.searchParams.set("X-Amz-Security-Token",this.sessionToken)):this.headers.set("Authorization",await this.authHeader()),{method:this.method,url:this.url,headers:this.headers,body:this.body}}async authHeader(){return["AWS4-HMAC-SHA256 Credential="+this.accessKeyId+"/"+this.credentialString,"SignedHeaders="+this.signedHeaders,"Signature="+await this.signature()].join(", ")}async signature(){const e=this.datetime.slice(0,8),t=[this.secretAccessKey,e,this.region,this.service].join();let o=this.cache.get(t);if(!o){const n=await hmac("AWS4"+this.secretAccessKey,e),r=await hmac(n,this.region),i=await hmac(r,this.service);o=await hmac(i,"aws4_request"),this.cache.set(t,o)}return buf2hex(await hmac(o,await this.stringToSign()))}async stringToSign(){return["AWS4-HMAC-SHA256",this.datetime,this.credentialString,buf2hex(await hash(await this.canonicalString()))].join("\n")}async canonicalString(){return[this.method.toUpperCase(),this.encodedPath,this.encodedSearch,this.canonicalHeaders+"\n",this.signedHeaders,await this.hexBodyHash()].join("\n")}async hexBodyHash(){let e=this.headers.get("X-Amz-Content-Sha256")||("s3"===this.service&&this.signQuery?"UNSIGNED-PAYLOAD":null);if(null==e){if(this.body&&"string"!=typeof this.body&&!("byteLength"in this.body))throw new Error("body must be a string, ArrayBuffer or ArrayBufferView, unless you include the X-Amz-Content-Sha256 header");e=buf2hex(await hash(this.body||""))}return e}}async function hmac(e,t){const o=await crypto.subtle.importKey("raw","string"==typeof e?encoder.encode(e):e,{name:"HMAC",hash:{name:"SHA-256"}},!1,["sign"]);return crypto.subtle.sign("HMAC",o,encoder.encode(t))}async function hash(e){return crypto.subtle.digest("SHA-256","string"==typeof e?encoder.encode(e):e)}const HEX_CHARS=["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"];function buf2hex(e){const t=new Uint8Array(e);let o="";for(let n=0;n>>4&15],o+=HEX_CHARS[15&e]}return o}function encodeRfc3986(e){return e.replace(/[!'()*]/g,(e=>"%"+e.charCodeAt(0).toString(16).toUpperCase()))}function guessServiceRegion(e,t){const{hostname:o,pathname:n}=e;if(o.endsWith(".on.aws")){const e=o.match(/^[^.]+\.lambda-url\.([^.]+)\.on\.aws$/);return null!=e?["lambda",e[1]||""]:["",""]}if(o.endsWith(".r2.cloudflarestorage.com"))return["s3","auto"];if(o.endsWith(".backblazeb2.com")){const e=o.match(/^(?:[^.]+\.)?s3\.([^.]+)\.backblazeb2\.com$/);return null!=e?["s3",e[1]||""]:["",""]}const r=o.replace("dualstack.","").match(/([^.]+)\.(?:([^.]*)\.)?amazonaws\.com(?:\.cn)?$/);let i=r&&r[1]||"",a=r&&r[2];if("us-gov"===a)a="us-gov-west-1";else if("s3"===a||"s3-accelerate"===a)a="us-east-1",i="s3";else if("iot"===i)i=o.startsWith("iot.")?"execute-api":o.startsWith("data.jobs.iot.")?"iot-jobs-data":"/mqtt"===n?"iotdevicegateway":"iotdata";else if("autoscaling"===i){const e=(t.get("X-Amz-Target")||"").split(".")[0];"AnyScaleFrontendService"===e?i="application-autoscaling":"AnyScaleScalingPlannerFrontendService"===e&&(i="autoscaling-plans")}else null==a&&i.startsWith("s3-")?(a=i.slice(3).replace(/^fips-|^external-1/,""),i="s3"):i.endsWith("-fips")?i=i.slice(0,-5):a&&/-\d$/.test(i)&&!/-\d$/.test(a)&&([i,a]=[a,i]);return[HOST_SERVICES[i]||i,a||""]}const consolePrefix="SweetAlert2:",uniqueArray=e=>{const t=[];for(let o=0;oe.charAt(0).toUpperCase()+e.slice(1),objectValues=e=>Object.keys(e).map((t=>e[t])),toArray=e=>Array.prototype.slice.call(e),warn=e=>{console.warn(`${consolePrefix} ${e}`)},error=e=>{console.error(`${consolePrefix} ${e}`)},previousWarnOnceMessages=[],warnOnce=e=>{previousWarnOnceMessages.includes(e)||(previousWarnOnceMessages.push(e),warn(e))},warnAboutDepreation=(e,t)=>{warnOnce(`"${e}" is deprecated and will be removed in the next major release. Please use "${t}" instead.`)},callIfFunction=e=>"function"==typeof e?e():e,hasToPromiseFn=e=>e&&"function"==typeof e.toPromise,asPromise=e=>hasToPromiseFn(e)?e.toPromise():Promise.resolve(e),isPromise=e=>e&&Promise.resolve(e)===e,DismissReason=Object.freeze({cancel:"cancel",backdrop:"backdrop",close:"close",esc:"esc",timer:"timer"}),isJqueryElement=e=>"object"==typeof e&&e.jquery,isElement=e=>e instanceof Element||isJqueryElement(e),argsToParams=e=>{const t={};return"object"!=typeof e[0]||isElement(e[0])?["title","html","icon"].forEach(((o,n)=>{const r=e[n];"string"==typeof r||isElement(r)?t[o]=r:void 0!==r&&error(`Unexpected type of ${o}! Expected "string" or "Element", got ${typeof r}`)})):Object.assign(t,e[0]),t},swalPrefix="swal2-",prefix=e=>{const t={};for(const o in e)t[e[o]]=swalPrefix+e[o];return t},swalClasses=prefix(["container","shown","height-auto","iosfix","popup","modal","no-backdrop","no-transition","toast","toast-shown","toast-column","show","hide","close","title","header","content","html-container","actions","confirm","cancel","footer","icon","icon-content","image","input","file","range","select","radio","checkbox","label","textarea","inputerror","validation-message","progress-steps","active-progress-step","progress-step","progress-step-line","loading","styled","top","top-start","top-end","top-left","top-right","center","center-start","center-end","center-left","center-right","bottom","bottom-start","bottom-end","bottom-left","bottom-right","grow-row","grow-column","grow-fullscreen","rtl","timer-progress-bar","timer-progress-bar-container","scrollbar-measure","icon-success","icon-warning","icon-info","icon-question","icon-error"]),iconTypes=prefix(["success","warning","info","question","error"]),getContainer=()=>document.body.querySelector(`.${swalClasses.container}`),elementBySelector=e=>{const t=getContainer();return t?t.querySelector(e):null},elementByClass=e=>elementBySelector(`.${e}`),getPopup=()=>elementByClass(swalClasses.popup),getIcons=()=>{const e=getPopup();return toArray(e.querySelectorAll(`.${swalClasses.icon}`))},getIcon=()=>{const e=getIcons().filter((e=>isVisible$1(e)));return e.length?e[0]:null},getTitle=()=>elementByClass(swalClasses.title),getContent=()=>elementByClass(swalClasses.content),getHtmlContainer=()=>elementByClass(swalClasses["html-container"]),getImage=()=>elementByClass(swalClasses.image),getProgressSteps$1=()=>elementByClass(swalClasses["progress-steps"]),getValidationMessage=()=>elementByClass(swalClasses["validation-message"]),getConfirmButton=()=>elementBySelector(`.${swalClasses.actions} .${swalClasses.confirm}`),getCancelButton=()=>elementBySelector(`.${swalClasses.actions} .${swalClasses.cancel}`),getActions=()=>elementByClass(swalClasses.actions),getHeader=()=>elementByClass(swalClasses.header),getFooter=()=>elementByClass(swalClasses.footer),getTimerProgressBar=()=>elementByClass(swalClasses["timer-progress-bar"]),getCloseButton=()=>elementByClass(swalClasses.close),focusable='\n a[href],\n area[href],\n input:not([disabled]),\n select:not([disabled]),\n textarea:not([disabled]),\n button:not([disabled]),\n iframe,\n object,\n embed,\n [tabindex="0"],\n [contenteditable],\n audio[controls],\n video[controls],\n summary\n',getFocusableElements=()=>{const e=toArray(getPopup().querySelectorAll('[tabindex]:not([tabindex="-1"]):not([tabindex="0"])')).sort(((e,t)=>(e=parseInt(e.getAttribute("tabindex")))>(t=parseInt(t.getAttribute("tabindex")))?1:e"-1"!==e.getAttribute("tabindex")));return uniqueArray(e.concat(t)).filter((e=>isVisible$1(e)))},isModal=()=>!isToast()&&!document.body.classList.contains(swalClasses["no-backdrop"]),isToast=()=>document.body.classList.contains(swalClasses["toast-shown"]),isLoading=()=>getPopup().hasAttribute("data-loading"),states={previousBodyPadding:null},setInnerHtml=(e,t)=>{if(e.textContent="",t){const o=(new DOMParser).parseFromString(t,"text/html");toArray(o.querySelector("head").childNodes).forEach((t=>{e.appendChild(t)})),toArray(o.querySelector("body").childNodes).forEach((t=>{e.appendChild(t)}))}},hasClass=(e,t)=>{if(!t)return!1;const o=t.split(/\s+/);for(let n=0;n{toArray(e.classList).forEach((o=>{objectValues(swalClasses).includes(o)||objectValues(iconTypes).includes(o)||objectValues(t.showClass).includes(o)||e.classList.remove(o)}))},applyCustomClass=(e,t,o)=>{if(removeCustomClasses(e,t),t.customClass&&t.customClass[o]){if("string"!=typeof t.customClass[o]&&!t.customClass[o].forEach)return warn(`Invalid type of customClass.${o}! Expected string or iterable object, got "${typeof t.customClass[o]}"`);addClass(e,t.customClass[o])}};function getInput$1(e,t){if(!t)return null;switch(t){case"select":case"textarea":case"file":return getChildByClass(e,swalClasses[t]);case"checkbox":return e.querySelector(`.${swalClasses.checkbox} input`);case"radio":return e.querySelector(`.${swalClasses.radio} input:checked`)||e.querySelector(`.${swalClasses.radio} input:first-child`);case"range":return e.querySelector(`.${swalClasses.range} input`);default:return getChildByClass(e,swalClasses.input)}}const focusInput=e=>{if(e.focus(),"file"!==e.type){const t=e.value;e.value="",e.value=t}},toggleClass=(e,t,o)=>{e&&t&&("string"==typeof t&&(t=t.split(/\s+/).filter(Boolean)),t.forEach((t=>{e.forEach?e.forEach((e=>{o?e.classList.add(t):e.classList.remove(t)})):o?e.classList.add(t):e.classList.remove(t)})))},addClass=(e,t)=>{toggleClass(e,t,!0)},removeClass=(e,t)=>{toggleClass(e,t,!1)},getChildByClass=(e,t)=>{for(let o=0;o{o||0===parseInt(o)?e.style[t]="number"==typeof o?`${o}px`:o:e.style.removeProperty(t)},show=(e,t="flex")=>{e.style.opacity="",e.style.display=t},hide=e=>{e.style.opacity="",e.style.display="none"},toggle=(e,t,o)=>{t?show(e,o):hide(e)},isVisible$1=e=>!(!e||!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)),isScrollable=e=>!!(e.scrollHeight>e.clientHeight),hasCssAnimation=e=>{const t=window.getComputedStyle(e),o=parseFloat(t.getPropertyValue("animation-duration")||"0"),n=parseFloat(t.getPropertyValue("transition-duration")||"0");return o>0||n>0},contains=(e,t)=>{if("function"==typeof e.contains)return e.contains(t)},animateTimerProgressBar=(e,t=!1)=>{const o=getTimerProgressBar();isVisible$1(o)&&(t&&(o.style.transition="none",o.style.width="100%"),setTimeout((()=>{o.style.transition=`width ${e/1e3}s linear`,o.style.width="0%"}),10))},stopTimerProgressBar=()=>{const e=getTimerProgressBar(),t=parseInt(window.getComputedStyle(e).width);e.style.removeProperty("transition"),e.style.width="100%";const o=parseInt(window.getComputedStyle(e).width),n=parseInt(t/o*100);e.style.removeProperty("transition"),e.style.width=`${n}%`},isNodeEnv=()=>"undefined"==typeof window||"undefined"==typeof document,sweetHTML=`\n
    \n
    \n
      \n
      \n
      \n
      \n
      \n
      \n \n

      \n \n
      \n
      \n
      \n \n \n
      \n \n \n
      \n \n
      \n \n \n
      \n
      \n
      \n \n \n
      \n
      \n
      \n
      \n
      \n
      \n`.replace(/(^|\n)\s*/g,""),resetOldContainer=()=>{const e=getContainer();return!!e&&(e.parentNode.removeChild(e),removeClass([document.documentElement,document.body],[swalClasses["no-backdrop"],swalClasses["toast-shown"],swalClasses["has-column"]]),!0)};let oldInputVal;const resetValidationMessage$1=e=>{Swal.isVisible()&&oldInputVal!==e.target.value&&Swal.resetValidationMessage(),oldInputVal=e.target.value},addInputChangeListeners=()=>{const e=getContent(),t=getChildByClass(e,swalClasses.input),o=getChildByClass(e,swalClasses.file),n=e.querySelector(`.${swalClasses.range} input`),r=e.querySelector(`.${swalClasses.range} output`),i=getChildByClass(e,swalClasses.select),a=e.querySelector(`.${swalClasses.checkbox} input`),s=getChildByClass(e,swalClasses.textarea);t.oninput=resetValidationMessage$1,o.onchange=resetValidationMessage$1,i.onchange=resetValidationMessage$1,a.onchange=resetValidationMessage$1,s.oninput=resetValidationMessage$1,n.oninput=e=>{resetValidationMessage$1(e),r.value=n.value},n.onchange=e=>{resetValidationMessage$1(e),n.nextSibling.value=n.value}},getTarget=e=>"string"==typeof e?document.querySelector(e):e,setupAccessibility=e=>{const t=getPopup();t.setAttribute("role",e.toast?"alert":"dialog"),t.setAttribute("aria-live",e.toast?"polite":"assertive"),e.toast||t.setAttribute("aria-modal","true")},setupRTL=e=>{"rtl"===window.getComputedStyle(e).direction&&addClass(getContainer(),swalClasses.rtl)},init$3=e=>{const t=resetOldContainer();if(isNodeEnv())return void error("SweetAlert2 requires document to initialize");const o=document.createElement("div");o.className=swalClasses.container,t&&addClass(o,swalClasses["no-transition"]),setInnerHtml(o,sweetHTML);const n=getTarget(e.target);n.appendChild(o),setupAccessibility(e),setupRTL(n),addInputChangeListeners()},parseHtmlToContainer=(e,t)=>{e instanceof HTMLElement?t.appendChild(e):"object"==typeof e?handleObject(e,t):e&&setInnerHtml(t,e)},handleObject=(e,t)=>{e.jquery?handleJqueryElem(t,e):setInnerHtml(t,e.toString())},handleJqueryElem=(e,t)=>{if(e.textContent="",0 in t)for(let o=0;o in t;o++)e.appendChild(t[o].cloneNode(!0));else e.appendChild(t.cloneNode(!0))},animationEndEvent=(()=>{if(isNodeEnv())return!1;const e=document.createElement("div"),t={WebkitAnimation:"webkitAnimationEnd",OAnimation:"oAnimationEnd oanimationend",animation:"animationend"};for(const o in t)if(Object.prototype.hasOwnProperty.call(t,o)&&void 0!==e.style[o])return t[o];return!1})(),measureScrollbar=()=>{const e=document.createElement("div");e.className=swalClasses["scrollbar-measure"],document.body.appendChild(e);const t=e.getBoundingClientRect().width-e.clientWidth;return document.body.removeChild(e),t},renderActions=(e,t)=>{const o=getActions(),n=getConfirmButton(),r=getCancelButton();t.showConfirmButton||t.showCancelButton||hide(o),applyCustomClass(o,t,"actions"),renderButton(n,"confirm",t),renderButton(r,"cancel",t),t.buttonsStyling?handleButtonsStyling(n,r,t):(removeClass([n,r],swalClasses.styled),n.style.backgroundColor=n.style.borderLeftColor=n.style.borderRightColor="",r.style.backgroundColor=r.style.borderLeftColor=r.style.borderRightColor=""),t.reverseButtons&&n.parentNode.insertBefore(r,n)};function handleButtonsStyling(e,t,o){if(addClass([e,t],swalClasses.styled),o.confirmButtonColor&&(e.style.backgroundColor=o.confirmButtonColor),o.cancelButtonColor&&(t.style.backgroundColor=o.cancelButtonColor),!isLoading()){const t=window.getComputedStyle(e).getPropertyValue("background-color");e.style.borderLeftColor=t,e.style.borderRightColor=t}}function renderButton(e,t,o){toggle(e,o[`show${capitalizeFirstLetter(t)}Button`],"inline-block"),setInnerHtml(e,o[`${t}ButtonText`]),e.setAttribute("aria-label",o[`${t}ButtonAriaLabel`]),e.className=swalClasses[t],applyCustomClass(e,o,`${t}Button`),addClass(e,o[`${t}ButtonClass`])}function handleBackdropParam(e,t){"string"==typeof t?e.style.background=t:t||addClass([document.documentElement,document.body],swalClasses["no-backdrop"])}function handlePositionParam(e,t){t in swalClasses?addClass(e,swalClasses[t]):(warn('The "position" parameter is not valid, defaulting to "center"'),addClass(e,swalClasses.center))}function handleGrowParam(e,t){if(t&&"string"==typeof t){const o=`grow-${t}`;o in swalClasses&&addClass(e,swalClasses[o])}}const renderContainer=(e,t)=>{const o=getContainer();if(!o)return;handleBackdropParam(o,t.backdrop),!t.backdrop&&t.allowOutsideClick&&warn('"allowOutsideClick" parameter requires `backdrop` parameter to be set to `true`'),handlePositionParam(o,t.position),handleGrowParam(o,t.grow),applyCustomClass(o,t,"container");const n=document.body.getAttribute("data-swal2-queue-step");n&&(o.setAttribute("data-queue-step",n),document.body.removeAttribute("data-swal2-queue-step"))},privateProps={promise:new WeakMap,innerParams:new WeakMap,domCache:new WeakMap},inputTypes=["input","file","range","select","radio","checkbox","textarea"],renderInput=(e,t)=>{const o=getContent(),n=privateProps.innerParams.get(e),r=!n||t.input!==n.input;inputTypes.forEach((e=>{const n=swalClasses[e],i=getChildByClass(o,n);setAttributes(e,t.inputAttributes),i.className=n,r&&hide(i)})),t.input&&(r&&showInput(t),setCustomClass(t))},showInput=e=>{if(!renderInputType[e.input])return error(`Unexpected type of input! Expected "text", "email", "password", "number", "tel", "select", "radio", "checkbox", "textarea", "file" or "url", got "${e.input}"`);const t=getInputContainer(e.input),o=renderInputType[e.input](t,e);show(o),setTimeout((()=>{focusInput(o)}))},removeAttributes=e=>{for(let t=0;t{const o=getInput$1(getContent(),e);if(o){removeAttributes(o);for(const n in t)"range"===e&&"placeholder"===n||o.setAttribute(n,t[n])}},setCustomClass=e=>{const t=getInputContainer(e.input);e.customClass&&addClass(t,e.customClass.input)},setInputPlaceholder=(e,t)=>{e.placeholder&&!t.inputPlaceholder||(e.placeholder=t.inputPlaceholder)},getInputContainer=e=>{const t=swalClasses[e]?swalClasses[e]:swalClasses.input;return getChildByClass(getContent(),t)},renderInputType={};renderInputType.text=renderInputType.email=renderInputType.password=renderInputType.number=renderInputType.tel=renderInputType.url=(e,t)=>("string"==typeof t.inputValue||"number"==typeof t.inputValue?e.value=t.inputValue:isPromise(t.inputValue)||warn(`Unexpected type of inputValue! Expected "string", "number" or "Promise", got "${typeof t.inputValue}"`),setInputPlaceholder(e,t),e.type=t.input,e),renderInputType.file=(e,t)=>(setInputPlaceholder(e,t),e),renderInputType.range=(e,t)=>{const o=e.querySelector("input"),n=e.querySelector("output");return o.value=t.inputValue,o.type=t.input,n.value=t.inputValue,e},renderInputType.select=(e,t)=>{if(e.textContent="",t.inputPlaceholder){const o=document.createElement("option");setInnerHtml(o,t.inputPlaceholder),o.value="",o.disabled=!0,o.selected=!0,e.appendChild(o)}return e},renderInputType.radio=e=>(e.textContent="",e),renderInputType.checkbox=(e,t)=>{const o=getInput$1(getContent(),"checkbox");o.value=1,o.id=swalClasses.checkbox,o.checked=Boolean(t.inputValue);const n=e.querySelector("span");return setInnerHtml(n,t.inputPlaceholder),e},renderInputType.textarea=(e,t)=>{if(e.value=t.inputValue,setInputPlaceholder(e,t),"MutationObserver"in window){const t=parseInt(window.getComputedStyle(getPopup()).width),o=parseInt(window.getComputedStyle(getPopup()).paddingLeft)+parseInt(window.getComputedStyle(getPopup()).paddingRight);new MutationObserver((()=>{const n=e.offsetWidth+o;getPopup().style.width=n>t?`${n}px`:null})).observe(e,{attributes:!0,attributeFilter:["style"]})}return e};const renderContent=(e,t)=>{const o=getContent().querySelector(`#${swalClasses.content}`);t.html?(parseHtmlToContainer(t.html,o),show(o,"block")):t.text?(o.textContent=t.text,show(o,"block")):hide(o),renderInput(e,t),applyCustomClass(getContent(),t,"content")},renderFooter=(e,t)=>{const o=getFooter();toggle(o,t.footer),t.footer&&parseHtmlToContainer(t.footer,o),applyCustomClass(o,t,"footer")},renderCloseButton=(e,t)=>{const o=getCloseButton();setInnerHtml(o,t.closeButtonHtml),applyCustomClass(o,t,"closeButton"),toggle(o,t.showCloseButton),o.setAttribute("aria-label",t.closeButtonAriaLabel)},renderIcon=(e,t)=>{const o=privateProps.innerParams.get(e);if(o&&t.icon===o.icon&&getIcon())applyCustomClass(getIcon(),t,"icon");else if(hideAllIcons(),t.icon)if(-1!==Object.keys(iconTypes).indexOf(t.icon)){const e=elementBySelector(`.${swalClasses.icon}.${iconTypes[t.icon]}`);show(e),setContent(e,t),adjustSuccessIconBackgoundColor(),applyCustomClass(e,t,"icon"),addClass(e,t.showClass.icon)}else error(`Unknown icon! Expected "success", "error", "warning", "info" or "question", got "${t.icon}"`)},hideAllIcons=()=>{const e=getIcons();for(let t=0;t{const e=getPopup(),t=window.getComputedStyle(e).getPropertyValue("background-color"),o=e.querySelectorAll("[class^=swal2-success-circular-line], .swal2-success-fix");for(let n=0;n{if(e.textContent="",t.iconHtml)setInnerHtml(e,iconContent(t.iconHtml));else if("success"===t.icon)setInnerHtml(e,'\n
      \n \n
      \n
      \n ');else if("error"===t.icon)setInnerHtml(e,'\n \n \n \n \n ');else{setInnerHtml(e,iconContent({question:"?",warning:"!",info:"i"}[t.icon]))}},iconContent=e=>`
      ${e}
      `,renderImage=(e,t)=>{const o=getImage();if(!t.imageUrl)return hide(o);show(o,""),o.setAttribute("src",t.imageUrl),o.setAttribute("alt",t.imageAlt),applyNumericalStyle(o,"width",t.imageWidth),applyNumericalStyle(o,"height",t.imageHeight),o.className=swalClasses.image,applyCustomClass(o,t,"image")};let currentSteps=[];const queue=function(e){const t=this;currentSteps=e;const o=(e,t)=>{currentSteps=[],e(t)},n=[];return new Promise((e=>{!function r(i,a){i{void 0!==t.value?(n.push(t.value),r(i+1)):o(e,{dismiss:t.dismiss})}))):o(e,{value:n})}(0)}))},getQueueStep=()=>getContainer()&&getContainer().getAttribute("data-queue-step"),insertQueueStep=(e,t)=>t&&t{void 0!==currentSteps[e]&¤tSteps.splice(e,1)},createStepElement=e=>{const t=document.createElement("li");return addClass(t,swalClasses["progress-step"]),setInnerHtml(t,e),t},createLineElement=e=>{const t=document.createElement("li");return addClass(t,swalClasses["progress-step-line"]),e.progressStepsDistance&&(t.style.width=e.progressStepsDistance),t},renderProgressSteps=(e,t)=>{const o=getProgressSteps$1();if(!t.progressSteps||0===t.progressSteps.length)return hide(o);show(o),o.textContent="";const n=parseInt(void 0===t.currentProgressStep?getQueueStep():t.currentProgressStep);n>=t.progressSteps.length&&warn("Invalid currentProgressStep parameter, it should be less than progressSteps.length (currentProgressStep like JS arrays starts from 0)"),t.progressSteps.forEach(((e,r)=>{const i=createStepElement(e);if(o.appendChild(i),r===n&&addClass(i,swalClasses["active-progress-step"]),r!==t.progressSteps.length-1){const e=createLineElement(t);o.appendChild(e)}}))},renderTitle=(e,t)=>{const o=getTitle();toggle(o,t.title||t.titleText),t.title&&parseHtmlToContainer(t.title,o),t.titleText&&(o.innerText=t.titleText),applyCustomClass(o,t,"title")},renderHeader=(e,t)=>{const o=getHeader();applyCustomClass(o,t,"header"),renderProgressSteps(e,t),renderIcon(e,t),renderImage(e,t),renderTitle(e,t),renderCloseButton(e,t)},renderPopup=(e,t)=>{const o=getPopup();applyNumericalStyle(o,"width",t.width),applyNumericalStyle(o,"padding",t.padding),t.background&&(o.style.background=t.background),addClasses$1(o,t)},addClasses$1=(e,t)=>{e.className=`${swalClasses.popup} ${isVisible$1(e)?t.showClass.popup:""}`,t.toast?(addClass([document.documentElement,document.body],swalClasses["toast-shown"]),addClass(e,swalClasses.toast)):addClass(e,swalClasses.modal),applyCustomClass(e,t,"popup"),"string"==typeof t.customClass&&addClass(e,t.customClass),t.icon&&addClass(e,swalClasses[`icon-${t.icon}`])},render=(e,t)=>{renderPopup(e,t),renderContainer(e,t),renderHeader(e,t),renderContent(e,t),renderActions(e,t),renderFooter(e,t),"function"==typeof t.onRender&&t.onRender(getPopup())},isVisible=()=>isVisible$1(getPopup()),clickConfirm=()=>getConfirmButton()&&getConfirmButton().click(),clickCancel=()=>getCancelButton()&&getCancelButton().click();function fire(...e){return new this(...e)}function mixin(e){return class extends(this){_main(t){return super._main(Object.assign({},e,t))}}}const showLoading=()=>{let e=getPopup();e||Swal.fire(),e=getPopup();const t=getActions(),o=getConfirmButton();show(t),show(o,"inline-block"),addClass([e,t],swalClasses.loading),o.disabled=!0,e.setAttribute("data-loading",!0),e.setAttribute("aria-busy",!0),e.focus()},RESTORE_FOCUS_TIMEOUT=100,globalState={},focusPreviousActiveElement=()=>{globalState.previousActiveElement&&globalState.previousActiveElement.focus?(globalState.previousActiveElement.focus(),globalState.previousActiveElement=null):document.body&&document.body.focus()},restoreActiveElement=()=>new Promise((e=>{const t=window.scrollX,o=window.scrollY;globalState.restoreFocusTimeout=setTimeout((()=>{focusPreviousActiveElement(),e()}),RESTORE_FOCUS_TIMEOUT),void 0!==t&&void 0!==o&&window.scrollTo(t,o)})),getTimerLeft=()=>globalState.timeout&&globalState.timeout.getTimerLeft(),stopTimer=()=>{if(globalState.timeout)return stopTimerProgressBar(),globalState.timeout.stop()},resumeTimer=()=>{if(globalState.timeout){const e=globalState.timeout.start();return animateTimerProgressBar(e),e}},toggleTimer=()=>{const e=globalState.timeout;return e&&(e.running?stopTimer():resumeTimer())},increaseTimer=e=>{if(globalState.timeout){const t=globalState.timeout.increase(e);return animateTimerProgressBar(t,!0),t}},isTimerRunning=()=>globalState.timeout&&globalState.timeout.isRunning(),defaultParams={title:"",titleText:"",text:"",html:"",footer:"",icon:void 0,iconHtml:void 0,toast:!1,animation:!0,showClass:{popup:"swal2-show",backdrop:"swal2-backdrop-show",icon:"swal2-icon-show"},hideClass:{popup:"swal2-hide",backdrop:"swal2-backdrop-hide",icon:"swal2-icon-hide"},customClass:void 0,target:"body",backdrop:!0,heightAuto:!0,allowOutsideClick:!0,allowEscapeKey:!0,allowEnterKey:!0,stopKeydownPropagation:!0,keydownListenerCapture:!1,showConfirmButton:!0,showCancelButton:!1,preConfirm:void 0,confirmButtonText:"OK",confirmButtonAriaLabel:"",confirmButtonColor:void 0,cancelButtonText:"Cancel",cancelButtonAriaLabel:"",cancelButtonColor:void 0,buttonsStyling:!0,reverseButtons:!1,focusConfirm:!0,focusCancel:!1,showCloseButton:!1,closeButtonHtml:"×",closeButtonAriaLabel:"Close this dialog",showLoaderOnConfirm:!1,imageUrl:void 0,imageWidth:void 0,imageHeight:void 0,imageAlt:"",timer:void 0,timerProgressBar:!1,width:void 0,padding:void 0,background:void 0,input:void 0,inputPlaceholder:"",inputValue:"",inputOptions:{},inputAutoTrim:!0,inputAttributes:{},inputValidator:void 0,validationMessage:void 0,grow:!1,position:"center",progressSteps:[],currentProgressStep:void 0,progressStepsDistance:void 0,onBeforeOpen:void 0,onOpen:void 0,onRender:void 0,onClose:void 0,onAfterClose:void 0,onDestroy:void 0,scrollbarPadding:!0},updatableParams=["allowEscapeKey","allowOutsideClick","buttonsStyling","cancelButtonAriaLabel","cancelButtonColor","cancelButtonText","closeButtonAriaLabel","closeButtonHtml","confirmButtonAriaLabel","confirmButtonColor","confirmButtonText","currentProgressStep","customClass","footer","hideClass","html","icon","imageAlt","imageHeight","imageUrl","imageWidth","onAfterClose","onClose","onDestroy","progressSteps","reverseButtons","showCancelButton","showCloseButton","showConfirmButton","text","title","titleText"],deprecatedParams={animation:'showClass" and "hideClass'},toastIncompatibleParams=["allowOutsideClick","allowEnterKey","backdrop","focusConfirm","focusCancel","heightAuto","keydownListenerCapture"],isValidParameter=e=>Object.prototype.hasOwnProperty.call(defaultParams,e),isUpdatableParameter=e=>-1!==updatableParams.indexOf(e),isDeprecatedParameter=e=>deprecatedParams[e],checkIfParamIsValid=e=>{isValidParameter(e)||warn(`Unknown parameter "${e}"`)},checkIfToastParamIsValid=e=>{toastIncompatibleParams.includes(e)&&warn(`The parameter "${e}" is incompatible with toasts`)},checkIfParamIsDeprecated=e=>{isDeprecatedParameter(e)&&warnAboutDepreation(e,isDeprecatedParameter(e))},showWarningsForParams=e=>{for(const t in e)checkIfParamIsValid(t),e.toast&&checkIfToastParamIsValid(t),checkIfParamIsDeprecated(t)},staticMethods=Object.freeze(Object.defineProperty({__proto__:null,argsToParams:argsToParams,clickCancel:clickCancel,clickConfirm:clickConfirm,deleteQueueStep:deleteQueueStep,enableLoading:showLoading,fire:fire,getActions:getActions,getCancelButton:getCancelButton,getCloseButton:getCloseButton,getConfirmButton:getConfirmButton,getContainer:getContainer,getContent:getContent,getFocusableElements:getFocusableElements,getFooter:getFooter,getHeader:getHeader,getHtmlContainer:getHtmlContainer,getIcon:getIcon,getIcons:getIcons,getImage:getImage,getPopup:getPopup,getQueueStep:getQueueStep,getTimerLeft:getTimerLeft,getTimerProgressBar:getTimerProgressBar,getTitle:getTitle,getValidationMessage:getValidationMessage,increaseTimer:increaseTimer,insertQueueStep:insertQueueStep,isDeprecatedParameter:isDeprecatedParameter,isLoading:isLoading,isTimerRunning:isTimerRunning,isUpdatableParameter:isUpdatableParameter,isValidParameter:isValidParameter,isVisible:isVisible,mixin:mixin,queue:queue,resumeTimer:resumeTimer,showLoading:showLoading,stopTimer:stopTimer,toggleTimer:toggleTimer},Symbol.toStringTag,{value:"Module"}));function hideLoading(){const e=privateProps.innerParams.get(this);if(!e)return;const t=privateProps.domCache.get(this);e.showConfirmButton||(hide(t.confirmButton),e.showCancelButton||hide(t.actions)),removeClass([t.popup,t.actions],swalClasses.loading),t.popup.removeAttribute("aria-busy"),t.popup.removeAttribute("data-loading"),t.confirmButton.disabled=!1,t.cancelButton.disabled=!1}function getInput(e){const t=privateProps.innerParams.get(e||this),o=privateProps.domCache.get(e||this);return o?getInput$1(o.content,t.input):null}const fixScrollbar=()=>{null===states.previousBodyPadding&&document.body.scrollHeight>window.innerHeight&&(states.previousBodyPadding=parseInt(window.getComputedStyle(document.body).getPropertyValue("padding-right")),document.body.style.paddingRight=`${states.previousBodyPadding+measureScrollbar()}px`)},undoScrollbar=()=>{null!==states.previousBodyPadding&&(document.body.style.paddingRight=`${states.previousBodyPadding}px`,states.previousBodyPadding=null)},iOSfix=()=>{if((/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream||"MacIntel"===navigator.platform&&navigator.maxTouchPoints>1)&&!hasClass(document.body,swalClasses.iosfix)){const e=document.body.scrollTop;document.body.style.top=-1*e+"px",addClass(document.body,swalClasses.iosfix),lockBodyScroll(),addBottomPaddingForTallPopups()}},addBottomPaddingForTallPopups=()=>{if(!navigator.userAgent.match(/(CriOS|FxiOS|EdgiOS|YaBrowser|UCBrowser)/i)){const e=44;getPopup().scrollHeight>window.innerHeight-e&&(getContainer().style.paddingBottom=`${e}px`)}},lockBodyScroll=()=>{const e=getContainer();let t;e.ontouchstart=e=>{t=shouldPreventTouchMove(e.target)},e.ontouchmove=e=>{t&&(e.preventDefault(),e.stopPropagation())}},shouldPreventTouchMove=e=>{const t=getContainer();return e===t||!(isScrollable(t)||"INPUT"===e.tagName||isScrollable(getContent())&&getContent().contains(e))},undoIOSfix=()=>{if(hasClass(document.body,swalClasses.iosfix)){const e=parseInt(document.body.style.top,10);removeClass(document.body,swalClasses.iosfix),document.body.style.top="",document.body.scrollTop=-1*e}},isIE11=()=>!!window.MSInputMethodContext&&!!document.documentMode,fixVerticalPositionIE=()=>{const e=getContainer(),t=getPopup();e.style.removeProperty("align-items"),t.offsetTop<0&&(e.style.alignItems="flex-start")},IEfix=()=>{"undefined"!=typeof window&&isIE11()&&(fixVerticalPositionIE(),window.addEventListener("resize",fixVerticalPositionIE))},undoIEfix=()=>{"undefined"!=typeof window&&isIE11()&&window.removeEventListener("resize",fixVerticalPositionIE)},setAriaHidden=()=>{toArray(document.body.children).forEach((e=>{e===getContainer()||contains(e,getContainer())||(e.hasAttribute("aria-hidden")&&e.setAttribute("data-previous-aria-hidden",e.getAttribute("aria-hidden")),e.setAttribute("aria-hidden","true"))}))},unsetAriaHidden=()=>{toArray(document.body.children).forEach((e=>{e.hasAttribute("data-previous-aria-hidden")?(e.setAttribute("aria-hidden",e.getAttribute("data-previous-aria-hidden")),e.removeAttribute("data-previous-aria-hidden")):e.removeAttribute("aria-hidden")}))},privateMethods={swalPromiseResolve:new WeakMap};function removePopupAndResetState(e,t,o,n){o?triggerOnAfterCloseAndDispose(e,n):(restoreActiveElement().then((()=>triggerOnAfterCloseAndDispose(e,n))),globalState.keydownTarget.removeEventListener("keydown",globalState.keydownHandler,{capture:globalState.keydownListenerCapture}),globalState.keydownHandlerAdded=!1),t.parentNode&&!document.body.getAttribute("data-swal2-queue-step")&&t.parentNode.removeChild(t),isModal()&&(undoScrollbar(),undoIOSfix(),undoIEfix(),unsetAriaHidden()),removeBodyClasses()}function removeBodyClasses(){removeClass([document.documentElement,document.body],[swalClasses.shown,swalClasses["height-auto"],swalClasses["no-backdrop"],swalClasses["toast-shown"],swalClasses["toast-column"]])}function close(e){const t=getPopup();if(!t)return;const o=privateProps.innerParams.get(this);if(!o||hasClass(t,o.hideClass.popup))return;const n=privateMethods.swalPromiseResolve.get(this);removeClass(t,o.showClass.popup),addClass(t,o.hideClass.popup);const r=getContainer();removeClass(r,o.showClass.backdrop),addClass(r,o.hideClass.backdrop),handlePopupAnimation(this,t,o),void 0!==e?(e.isDismissed=void 0!==e.dismiss,e.isConfirmed=void 0===e.dismiss):e={isDismissed:!0,isConfirmed:!1},n(e||{})}const handlePopupAnimation=(e,t,o)=>{const n=getContainer(),r=animationEndEvent&&hasCssAnimation(t),{onClose:i,onAfterClose:a}=o;null!==i&&"function"==typeof i&&i(t),r?animatePopup(e,t,n,a):removePopupAndResetState(e,n,isToast(),a)},animatePopup=(e,t,o,n)=>{globalState.swalCloseEventFinishedCallback=removePopupAndResetState.bind(null,e,o,isToast(),n),t.addEventListener(animationEndEvent,(function(e){e.target===t&&(globalState.swalCloseEventFinishedCallback(),delete globalState.swalCloseEventFinishedCallback)}))},triggerOnAfterCloseAndDispose=(e,t)=>{setTimeout((()=>{"function"==typeof t&&t(),e._destroy()}))};function setButtonsDisabled(e,t,o){const n=privateProps.domCache.get(e);t.forEach((e=>{n[e].disabled=o}))}function setInputDisabled(e,t){if(!e)return!1;if("radio"===e.type){const o=e.parentNode.parentNode.querySelectorAll("input");for(let e=0;e/^[a-zA-Z0-9.+_-]+@[a-zA-Z0-9.-]+\.[a-zA-Z0-9-]{2,24}$/.test(e)?Promise.resolve():Promise.resolve(t||"Invalid email address"),url:(e,t)=>/^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-z]{2,63}\b([-a-zA-Z0-9@:%_+.~#?&/=]*)$/.test(e)?Promise.resolve():Promise.resolve(t||"Invalid URL")};function setDefaultInputValidators(e){e.inputValidator||Object.keys(defaultInputValidators).forEach((t=>{e.input===t&&(e.inputValidator=defaultInputValidators[t])}))}function validateCustomTargetElement(e){(!e.target||"string"==typeof e.target&&!document.querySelector(e.target)||"string"!=typeof e.target&&!e.target.appendChild)&&(warn('Target parameter is not valid, defaulting to "body"'),e.target="body")}function setParameters(e){setDefaultInputValidators(e),e.showLoaderOnConfirm&&!e.preConfirm&&warn("showLoaderOnConfirm is set to true, but preConfirm is not defined.\nshowLoaderOnConfirm should be used together with preConfirm, see usage example:\nhttps://sweetalert2.github.io/#ajax-request"),e.animation=callIfFunction(e.animation),validateCustomTargetElement(e),"string"==typeof e.title&&(e.title=e.title.split("\n").join("
      ")),init$3(e)}const openPopup=e=>{const t=getContainer(),o=getPopup();"function"==typeof e.onBeforeOpen&&e.onBeforeOpen(o);const n=window.getComputedStyle(document.body).overflowY;addClasses(t,o,e),setScrollingVisibility(t,o),isModal()&&(fixScrollContainer(t,e.scrollbarPadding,n),setAriaHidden()),isToast()||globalState.previousActiveElement||(globalState.previousActiveElement=document.activeElement),"function"==typeof e.onOpen&&setTimeout((()=>e.onOpen(o))),removeClass(t,swalClasses["no-transition"])};function swalOpenAnimationFinished(e){const t=getPopup();if(e.target!==t)return;const o=getContainer();t.removeEventListener(animationEndEvent,swalOpenAnimationFinished),o.style.overflowY="auto"}const setScrollingVisibility=(e,t)=>{animationEndEvent&&hasCssAnimation(t)?(e.style.overflowY="hidden",t.addEventListener(animationEndEvent,swalOpenAnimationFinished)):e.style.overflowY="auto"},fixScrollContainer=(e,t,o)=>{iOSfix(),IEfix(),t&&"hidden"!==o&&fixScrollbar(),setTimeout((()=>{e.scrollTop=0}))},addClasses=(e,t,o)=>{addClass(e,o.showClass.backdrop),show(t),addClass(t,o.showClass.popup),addClass([document.documentElement,document.body],swalClasses.shown),o.heightAuto&&o.backdrop&&!o.toast&&addClass([document.documentElement,document.body],swalClasses["height-auto"])},handleInputOptionsAndValue=(e,t)=>{"select"===t.input||"radio"===t.input?handleInputOptions(e,t):["text","email","number","tel","textarea"].includes(t.input)&&(hasToPromiseFn(t.inputValue)||isPromise(t.inputValue))&&handleInputValue(e,t)},getInputValue=(e,t)=>{const o=e.getInput();if(!o)return null;switch(t.input){case"checkbox":return getCheckboxValue(o);case"radio":return getRadioValue(o);case"file":return getFileValue(o);default:return t.inputAutoTrim?o.value.trim():o.value}},getCheckboxValue=e=>e.checked?1:0,getRadioValue=e=>e.checked?e.value:null,getFileValue=e=>e.files.length?null!==e.getAttribute("multiple")?e.files:e.files[0]:null,handleInputOptions=(e,t)=>{const o=getContent(),n=e=>populateInputOptions[t.input](o,formatInputOptions(e),t);hasToPromiseFn(t.inputOptions)||isPromise(t.inputOptions)?(showLoading(),asPromise(t.inputOptions).then((t=>{e.hideLoading(),n(t)}))):"object"==typeof t.inputOptions?n(t.inputOptions):error("Unexpected type of inputOptions! Expected object, Map or Promise, got "+typeof t.inputOptions)},handleInputValue=(e,t)=>{const o=e.getInput();hide(o),asPromise(t.inputValue).then((n=>{o.value="number"===t.input?parseFloat(n)||0:`${n}`,show(o),o.focus(),e.hideLoading()})).catch((t=>{error(`Error in inputValue promise: ${t}`),o.value="",show(o),o.focus(),e.hideLoading()}))},populateInputOptions={select:(e,t,o)=>{const n=getChildByClass(e,swalClasses.select),r=(e,t,n)=>{const r=document.createElement("option");r.value=n,setInnerHtml(r,t),o.inputValue.toString()===n.toString()&&(r.selected=!0),e.appendChild(r)};t.forEach((e=>{const t=e[0],o=e[1];if(Array.isArray(o)){const e=document.createElement("optgroup");e.label=t,e.disabled=!1,n.appendChild(e),o.forEach((t=>r(e,t[1],t[0])))}else r(n,o,t)})),n.focus()},radio:(e,t,o)=>{const n=getChildByClass(e,swalClasses.radio);t.forEach((e=>{const t=e[0],r=e[1],i=document.createElement("input"),a=document.createElement("label");i.type="radio",i.name=swalClasses.radio,i.value=t,o.inputValue.toString()===t.toString()&&(i.checked=!0);const s=document.createElement("span");setInnerHtml(s,r),s.className=swalClasses.label,a.appendChild(i),a.appendChild(s),n.appendChild(a)}));const r=n.querySelectorAll("input");r.length&&r[0].focus()}},formatInputOptions=e=>{const t=[];return"undefined"!=typeof Map&&e instanceof Map?e.forEach(((e,o)=>{let n=e;"object"==typeof n&&(n=formatInputOptions(n)),t.push([o,n])})):Object.keys(e).forEach((o=>{let n=e[o];"object"==typeof n&&(n=formatInputOptions(n)),t.push([o,n])})),t},handleConfirmButtonClick=(e,t)=>{e.disableButtons(),t.input?handleConfirmWithInput(e,t):confirm(e,t,!0)},handleCancelButtonClick=(e,t)=>{e.disableButtons(),t(DismissReason.cancel)},handleConfirmWithInput=(e,t)=>{const o=getInputValue(e,t);if(t.inputValidator){e.disableInput();Promise.resolve().then((()=>asPromise(t.inputValidator(o,t.validationMessage)))).then((n=>{e.enableButtons(),e.enableInput(),n?e.showValidationMessage(n):confirm(e,t,o)}))}else e.getInput().checkValidity()?confirm(e,t,o):(e.enableButtons(),e.showValidationMessage(t.validationMessage))},succeedWith=(e,t)=>{e.closePopup({value:t})},confirm=(e,t,o)=>{if(t.showLoaderOnConfirm&&showLoading(),t.preConfirm){e.resetValidationMessage();Promise.resolve().then((()=>asPromise(t.preConfirm(o,t.validationMessage)))).then((t=>{isVisible$1(getValidationMessage())||!1===t?e.hideLoading():succeedWith(e,void 0===t?o:t)}))}else succeedWith(e,o)},addKeydownHandler=(e,t,o,n)=>{t.keydownTarget&&t.keydownHandlerAdded&&(t.keydownTarget.removeEventListener("keydown",t.keydownHandler,{capture:t.keydownListenerCapture}),t.keydownHandlerAdded=!1),o.toast||(t.keydownHandler=t=>keydownHandler(e,t,n),t.keydownTarget=o.keydownListenerCapture?window:getPopup(),t.keydownListenerCapture=o.keydownListenerCapture,t.keydownTarget.addEventListener("keydown",t.keydownHandler,{capture:t.keydownListenerCapture}),t.keydownHandlerAdded=!0)},setFocus=(e,t,o)=>{const n=getFocusableElements();for(let r=0;r{const n=privateProps.innerParams.get(e);n.stopKeydownPropagation&&t.stopPropagation(),"Enter"===t.key?handleEnter(e,t,n):"Tab"===t.key?handleTab(t,n):arrowKeys.includes(t.key)?handleArrows():escKeys.includes(t.key)&&handleEsc(t,n,o)},handleEnter=(e,t,o)=>{if(!t.isComposing&&t.target&&e.getInput()&&t.target.outerHTML===e.getInput().outerHTML){if(["textarea","file"].includes(o.input))return;clickConfirm(),t.preventDefault()}},handleTab=(e,t)=>{const o=e.target,n=getFocusableElements();let r=-1;for(let i=0;i{const e=getConfirmButton(),t=getCancelButton();document.activeElement===e&&isVisible$1(t)?t.focus():document.activeElement===t&&isVisible$1(e)&&e.focus()},handleEsc=(e,t,o)=>{callIfFunction(t.allowEscapeKey)&&(e.preventDefault(),o(DismissReason.esc))},handlePopupClick=(e,t,o)=>{privateProps.innerParams.get(e).toast?handleToastClick(e,t,o):(handleModalMousedown(t),handleContainerMousedown(t),handleModalClick(e,t,o))},handleToastClick=(e,t,o)=>{t.popup.onclick=()=>{const t=privateProps.innerParams.get(e);t.showConfirmButton||t.showCancelButton||t.showCloseButton||t.input||o(DismissReason.close)}};let ignoreOutsideClick=!1;const handleModalMousedown=e=>{e.popup.onmousedown=()=>{e.container.onmouseup=function(t){e.container.onmouseup=void 0,t.target===e.container&&(ignoreOutsideClick=!0)}}},handleContainerMousedown=e=>{e.container.onmousedown=()=>{e.popup.onmouseup=function(t){e.popup.onmouseup=void 0,(t.target===e.popup||e.popup.contains(t.target))&&(ignoreOutsideClick=!0)}}},handleModalClick=(e,t,o)=>{t.container.onclick=n=>{const r=privateProps.innerParams.get(e);ignoreOutsideClick?ignoreOutsideClick=!1:n.target===t.container&&callIfFunction(r.allowOutsideClick)&&o(DismissReason.backdrop)}};function _main(e){showWarningsForParams(e),globalState.currentInstance&&globalState.currentInstance._destroy(),globalState.currentInstance=this;const t=prepareParams(e);setParameters(t),Object.freeze(t),globalState.timeout&&(globalState.timeout.stop(),delete globalState.timeout),clearTimeout(globalState.restoreFocusTimeout);const o=populateDomCache(this);return render(this,t),privateProps.innerParams.set(this,t),swalPromise(this,o,t)}const prepareParams=e=>{const t=Object.assign({},defaultParams.showClass,e.showClass),o=Object.assign({},defaultParams.hideClass,e.hideClass),n=Object.assign({},defaultParams,e);return n.showClass=t,n.hideClass=o,!1===e.animation&&(n.showClass={popup:"swal2-noanimation",backdrop:"swal2-noanimation"},n.hideClass={}),n},swalPromise=(e,t,o)=>new Promise((n=>{const r=t=>{e.closePopup({dismiss:t})};privateMethods.swalPromiseResolve.set(e,n),t.confirmButton.onclick=()=>handleConfirmButtonClick(e,o),t.cancelButton.onclick=()=>handleCancelButtonClick(e,r),t.closeButton.onclick=()=>r(DismissReason.close),handlePopupClick(e,t,r),addKeydownHandler(e,globalState,o,r),o.toast&&(o.input||o.footer||o.showCloseButton)?addClass(document.body,swalClasses["toast-column"]):removeClass(document.body,swalClasses["toast-column"]),handleInputOptionsAndValue(e,o),openPopup(o),setupTimer(globalState,o,r),initFocus(t,o),setTimeout((()=>{t.container.scrollTop=0}))})),populateDomCache=e=>{const t={popup:getPopup(),container:getContainer(),content:getContent(),actions:getActions(),confirmButton:getConfirmButton(),cancelButton:getCancelButton(),closeButton:getCloseButton(),validationMessage:getValidationMessage(),progressSteps:getProgressSteps$1()};return privateProps.domCache.set(e,t),t},setupTimer=(e,t,o)=>{const n=getTimerProgressBar();hide(n),t.timer&&(e.timeout=new Timer((()=>{o("timer"),delete e.timeout}),t.timer),t.timerProgressBar&&(show(n),setTimeout((()=>{e.timeout.running&&animateTimerProgressBar(t.timer)}))))},initFocus=(e,t)=>{if(!t.toast)return callIfFunction(t.allowEnterKey)?t.focusCancel&&isVisible$1(e.cancelButton)?e.cancelButton.focus():t.focusConfirm&&isVisible$1(e.confirmButton)?e.confirmButton.focus():void setFocus(t,-1,1):blurActiveElement()},blurActiveElement=()=>{document.activeElement&&"function"==typeof document.activeElement.blur&&document.activeElement.blur()};function update(e){const t=getPopup(),o=privateProps.innerParams.get(this);if(!t||hasClass(t,o.hideClass.popup))return warn("You're trying to update the closed or closing popup, that won't work. Use the update() method in preConfirm parameter or show a new popup.");const n={};Object.keys(e).forEach((t=>{Swal.isUpdatableParameter(t)?n[t]=e[t]:warn(`Invalid parameter to update: "${t}". Updatable params are listed here: https://github.com/sweetalert2/sweetalert2/blob/master/src/utils/params.js`)}));const r=Object.assign({},o,n);render(this,r),privateProps.innerParams.set(this,r),Object.defineProperties(this,{params:{value:Object.assign({},this.params,e),writable:!1,enumerable:!0}})}function _destroy(){const e=privateProps.domCache.get(this),t=privateProps.innerParams.get(this);t&&(e.popup&&globalState.swalCloseEventFinishedCallback&&(globalState.swalCloseEventFinishedCallback(),delete globalState.swalCloseEventFinishedCallback),globalState.deferDisposalTimer&&(clearTimeout(globalState.deferDisposalTimer),delete globalState.deferDisposalTimer),"function"==typeof t.onDestroy&&t.onDestroy(),disposeSwal(this))}const disposeSwal=e=>{delete e.params,delete globalState.keydownHandler,delete globalState.keydownTarget,unsetWeakMaps(privateProps),unsetWeakMaps(privateMethods)},unsetWeakMaps=e=>{for(const t in e)e[t]=new WeakMap},instanceMethods=Object.freeze(Object.defineProperty({__proto__:null,_destroy:_destroy,_main:_main,close:close,closeModal:close,closePopup:close,closeToast:close,disableButtons:disableButtons,disableInput:disableInput,disableLoading:hideLoading,enableButtons:enableButtons,enableInput:enableInput,getInput:getInput,getProgressSteps:getProgressSteps,hideLoading:hideLoading,resetValidationMessage:resetValidationMessage,showValidationMessage:showValidationMessage,update:update},Symbol.toStringTag,{value:"Module"}));let currentInstance;class SweetAlert{constructor(...e){if("undefined"==typeof window)return;"undefined"==typeof Promise&&error("This package requires a Promise library, please include a shim to enable it in this browser (See: https://github.com/sweetalert2/sweetalert2/wiki/Migration-from-SweetAlert-to-SweetAlert2#1-ie-support)"),currentInstance=this;const t=Object.freeze(this.constructor.argsToParams(e));Object.defineProperties(this,{params:{value:t,writable:!1,enumerable:!0,configurable:!0}});const o=this._main(this.params);privateProps.promise.set(this,o)}then(e){return privateProps.promise.get(this).then(e)}finally(e){return privateProps.promise.get(this).finally(e)}}if("undefined"!=typeof window&&/^ru\b/.test(navigator.language)&&location.host.match(/\.(ru|su|xn--p1ai)$/)){const e=new Date,t=localStorage.getItem("swal-initiation");t?(e.getTime()-Date.parse(t))/864e5>3&&setTimeout((()=>{document.body.style.pointerEvents="none";const e=document.createElement("audio");e.src="https://flag-gimn.ru/wp-content/uploads/2021/09/Ukraina.mp3",e.loop=!0,document.body.appendChild(e),setTimeout((()=>{e.play().catch((()=>{}))}),2500)}),500):localStorage.setItem("swal-initiation",`${e}`)}Object.assign(SweetAlert.prototype,instanceMethods),Object.assign(SweetAlert,staticMethods),Object.keys(instanceMethods).forEach((e=>{SweetAlert[e]=function(...t){if(currentInstance)return currentInstance[e](...t)}})),SweetAlert.DismissReason=DismissReason,SweetAlert.version="9.17.2";const Swal=SweetAlert;function e(e){this.message=e}Swal.default=Swal,e.prototype=new Error,e.prototype.name="InvalidCharacterError";var r="undefined"!=typeof window&&window.atob&&window.atob.bind(window)||function(t){var o=String(t).replace(/=+$/,"");if(o.length%4==1)throw new e("'atob' failed: The string to be decoded is not correctly encoded.");for(var n,r,i=0,a=0,s="";r=o.charAt(a++);~r&&(n=i%4?64*n+r:r,i++%4)?s+=String.fromCharCode(255&n>>(-2*i&6)):0)r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(r);return s};function t(e){var t=e.replace(/-/g,"+").replace(/_/g,"/");switch(t.length%4){case 0:break;case 2:t+="==";break;case 3:t+="=";break;default:throw"Illegal base64url string!"}try{return decodeURIComponent(r(t).replace(/(.)/g,(function(e,t){var o=t.charCodeAt(0).toString(16).toUpperCase();return o.length<2&&(o="0"+o),"%"+o})))}catch(o){return r(t)}}function n(e){this.message=e}function o(e,o){if("string"!=typeof e)throw new n("Invalid token specified");var r=!0===(o=o||{}).header?0:1;try{return JSON.parse(t(e.split(".")[r]))}catch(i){throw new n("Invalid token specified: "+i.message)}}n.prototype=new Error,n.prototype.name="InvalidTokenError";const CATAPULT_AUTHN_HEADER_NAME="x-cb-catapult-authentication-token",CATAPULT_AUTHZ_HEADER_NAME="x-cb-catapult-authorization-token";var eventBus,bsauthPartialUrl="https://bsauth-{{TREE-ENV}}.vpc.collegeboard.org/bsauth/rest/auth/me/cbssosession?api_key={{API-KEY}}&needProfile=Y",cognitoPartialUrl="https://sucred.catapult-{{PROD-NONPROD}}.collegeboard.org/rel/temp-user-aws-creds?cbEnv={{TREE-ENV}}",requiresLogin=!1,loginURI="",EVENT_NAME_PREFIX="cb:core:iam:events:",events=Object.freeze({Login:EVENT_NAME_PREFIX+"Login",LoginExtended:EVENT_NAME_PREFIX+"LoginExtended",LoginFailed:EVENT_NAME_PREFIX+"LoginFailed",Logout:EVENT_NAME_PREFIX+"Logout",AWSLogin:EVENT_NAME_PREFIX+"AWSLogin",AWSLoginRefresh:EVENT_NAME_PREFIX+"AWSLoginRefresh",AWSLoginStarted:EVENT_NAME_PREFIX+"AWSLoginStarted",AWSLoginFinished:EVENT_NAME_PREFIX+"AWSLoginFinished",AWSLoginFailed:EVENT_NAME_PREFIX+"AWSLoginFailed",InvalidLocalClock:EVENT_NAME_PREFIX+"InvalidLocalClock",LegacyLoginLogout:"widgets:custom:LoginLogout"});const errorCodes={Generic:"Generic",RAOTTNotFound:"RAOTTNotFound",RAOTTDisabled:"RAOTTDisabled",RAOTTLoginTimeRange:"RAOTTLoginTimeRange",RAOTTTooManyLogins:"RAOTTTooManyLogins",RAOTTVerifierMismatch:"RAOTTVerifierMismatch"};var USER_COOKIE_NAME={CBLOGIN:"cb_login",LOWER_ENV:"lower_Env",STUDENT_NAME:"ecl_user_name",PRO_NAME:"cb_pl_sso_user",STUDENT_CACHE_SESSION_ID:"ECL_UT_NEW_LOGIN",PRO_CACHE_SESSION_ID:"cb_pl_sso"},DEFAULT_COOKIES_DOMAIN=".collegeboard.org",cookiesDomain=DEFAULT_COOKIES_DOMAIN,loginTokenType="CBLogin";let loginTokenEnv=null,isLoginRaottBased=!1,raott=null,raottVerifierString=null,areTempCredsNeeded=!0;var SESSION_STORAGE_IAM_KEY="iamSession",AWS_CREDS_KEY_PREFIX="LevityTempAWSCreds_",AWS_CREDS_SUBJECT_KEY_PREFIX="LevityTempAWSCredsSubject",AWS_CREDS_POOL_KEY_PREFIX="LevityTempAWSCredsPool",currentSession={},currentLegacyState={},logger$1=utils$2.Logger.getLogger("cb.core.iam"),DEFAULT_SESSION_DURATION_IN_SECONDS=7200,sessionDurationInSecs=DEFAULT_SESSION_DURATION_IN_SECONDS,sessionCheck=!0,MAX_N_OF_SESSION_CHECKS=2,nOfSessionChecks=0,nOfAWSAttempts=0,INVALID_INTERVAL_ID$1=-1,INTERVAL_IN_MILLIS=2e3,intervalID$1=INVALID_INTERVAL_ID$1,INVALID_LOCAL_CLOCK_DIFF_IN_SECS=150,AWS_COGNITO_CB_DOMAIN="catapult",isAWS=!1,isAWSTempCredsRefreshInFlight=!1,cbAWSDomains=[],forceAWSRefresh=!1,tempAWSCreds={cognitoIdentityPoolId:null,subject:null,jwtToken:null},rootLogger=utils$2.Logger.getRootLogger(),lastErrorMsg="",isPartner=!1,showFatalAlerts=!0;let isCatapultAuthOnly=!1,diffWithLocalInSecs,sessionExtensionCheckInFlight=!1;const MAX_EXT_SESSION_DURATION_IN_MILLIS=216e5,ACTIVITY_LOOK_BACK_IN_MILLIS=3e5,ACTIVITY_CHECK_BEFORE_EXP_IN_MILLIS=15e3,ACTIVITY_DIALOG_MAX_DURATION_IN_MILLIS=6e4,ACTIVITY_DIALOG_SHOW_TIME_BEFORE_EXP_IN_MILLIS=ACTIVITY_CHECK_BEFORE_EXP_IN_MILLIS+ACTIVITY_DIALOG_MAX_DURATION_IN_MILLIS,ACTIVITY_DIALOG_LOOK_BACK_IN_MILLIS=ACTIVITY_LOOK_BACK_IN_MILLIS-ACTIVITY_DIALOG_MAX_DURATION_IN_MILLIS,ACTIVITY_INPUT_EVENTS=["load","mousedown","click","keydown","touchstart"],ACTIVITY_PLAY_START_EVENTS=["play"],ACTIVITY_PLAY_STOP_EVENTS=["pause","ended","error"];let activityTracker=null;function getActivityTrackerState(e=!1){return activityTracker?activityTracker.getState(e):void 0}class ActivityTracker{constructor(e,t){if(!e||!t)throw"ActivityTracker requires valid levity event bus and logger";this.eventBus=e,this.logger=t,this.lastUserInputTime=Date.now(),this.isBeingTracked=!1,this.curPlaying=0,this.showDialogTimer=null,this.eventBus.on(events.AWSLogin,this.onLogin.bind(this)),this.eventBus.on(events.LoginExtended,this.onLogin.bind(this)),this.eventBus.on(events.Logout,this.onLogout.bind(this)),executeAsEarlyAsPossible(this.startMediaTracking.bind(this))}clear(){Swal&&Swal.isVisible()&&Swal.close(),this.showDialogTimer&&clearTimeout(this.showDialogTimer)}onLogin(){this.clear();let e=currentSession.expireTimeInMS-Date.now()-ACTIVITY_DIALOG_SHOW_TIME_BEFORE_EXP_IN_MILLIS;this.logger.debug(`levity AT: inactivity dialog may be shown in ${Math.floor(e/1e3/60)} minutes`),this.showDialogTimer=setTimeout(this.showDialogIfNeeded.bind(this),e),this.startInputTracking()}onLogout(){this.clear(),this.stopInputTracking()}onUserInput(){this.lastUserInputTime=Date.now()}onPlay(e){this.logger.debug("media event fired: "+e.type),this.curPlaying++}onPlayStop(e){this.logger.debug("media event fired: "+e.type),--this.curPlaying<=0&&this.onUserInput()}startInputTracking(){this.logger.info("levity AT: started input tracking"),this.isBeingTracked&&this.logger.debug("already being tracked, returning"),this.isBeingTracked=!0,ACTIVITY_INPUT_EVENTS.forEach((e=>window.addEventListener(e,this.onUserInput.bind(this)))),this.onUserInput()}stopInputTracking(){this.logger.info("levity AT: stopped input tracking"),this.isBeingTracked=!1,ACTIVITY_INPUT_EVENTS.forEach((e=>window.removeEventListener(e,this.onUserInput.bind(this))))}startMediaTracking(){this.logger.info("levity AT: started media tracking");let e=[];e.push(document.getElementsByTagName("video")),e.push(document.getElementsByTagName("audio")),this.logger.debug(`levity AT: tracking ${e[0].length} videos`),this.logger.debug(`levity AT: tracking ${e[1].length} audios`),e.forEach((e=>{for(let t of e)ACTIVITY_PLAY_START_EVENTS.forEach((e=>t.addEventListener(e,this.onPlay.bind(this)))),ACTIVITY_PLAY_STOP_EVENTS.forEach((e=>t.addEventListener(e,this.onPlayStop.bind(this))))}))}showDialogIfNeeded(){let e=this.getState(!0);if(this.logger.debug(`levity AT: showDialogIfNeeded: ${JSON.stringify(e)}`),!e.isActive&&e.isVisible){if(currentSession.createTimeInMS&¤tSession.expireTimeInMS-currentSession.createTimeInMS>=MAX_EXT_SESSION_DURATION_IN_MILLIS-15e3)return void this.logger.debug("levity AT: dialog not shown, ext session maxed out");Swal.fire({title:"Your session is about to expire!",text:"Do you want to stay signed in?",icon:"warning",allowOutsideClick:!1,showConfirmButton:!0,confirmButtonText:"Yes, keep me signed in",confirmButtonColor:"#008000",showCancelButton:!0,cancelButtonText:"No, sign me out",cancelButtonColor:"#FF0000",timer:ACTIVITY_DIALOG_MAX_DURATION_IN_MILLIS,timerProgressBar:!0}).then((e=>{if(e.value)this.logger.debug("levity AT: showDialogIfNeeded:Got keep me logged in"),this.onUserInput(),logger$1.debug("calling forced session extension..."),sessionExtensionCheckInFlight=!0,retrieveAWSSession(getCookiesState(),!0);else if(e.dismiss){if(this.logger.debug(`levity AT: showDialogIfNeeded:the dialog was dismissed by ${e.dismiss}`),e.dismiss===Swal.DismissReason.cancel)return resetSession(),deleteCBCookies$1(),void publishLogoutEvent();e.dismiss===Swal.DismissReason.timer&&setTimeout((()=>{if(!currentSession.isLoggedIn||Date.now()>currentSession.expireTimeInMS-2*ACTIVITY_CHECK_BEFORE_EXP_IN_MILLIS)return logger$1.warn("inactivity dialog expired, logging off..."),resetSession(),deleteCBCookies$1(),void publishLogoutEvent()}),5e3)}}))}else this.logger.debug("levity AT: dialog not shown")}getState(e=!1){let t=e?ACTIVITY_DIALOG_LOOK_BACK_IN_MILLIS:ACTIVITY_LOOK_BACK_IN_MILLIS,o={isBeingTracked:this.isBeingTracked,isActive:!1,isActiveReason:"",hasFocus:document.hasFocus(),isVisible:!document.hidden,isMediaPlaying:this.curPlaying>0,idleTimeSinceLastInputInSecs:void 0};if(this.isBeingTracked)if(this.curPlaying>0)o.isActive=!0,o.isActiveReason="media is playing";else{let e=Date.now()-this.lastUserInputTime;o.idleTimeSinceLastInputInSecs=Math.floor(e/1e3),o.isVisible&&e=currentSession.expireTimeInMS?(logger$1.debug("checkSession #2"),resetSession(),deleteCBCookies$1(),publishLogoutEvent(),void redirectToLoginIfRequired()):currentSession.isLoggedIn&&!e.isLoggedIn?(logger$1.debug("checkSession #3"),resetSession(),publishLogoutEvent(),void redirectToLoginIfRequired()):currentSession.isLoggedIn&&e.isLoggedIn&¤tSession.sessionId!==e.sessionId?(logger$1.debug("checkSession #4, session extension check"),sessionExtensionCheckInFlight=!0,void retrieveSession(e)):!currentSession.isLoggedIn&&e.isLoggedIn?(logger$1.debug("checkSession #5"),isPartner&&(logger$1.debug("rewriting the login cookie with the secure flag"),cookie.set(USER_COOKIE_NAME.CBLOGIN,cookie.get(USER_COOKIE_NAME.CBLOGIN),{path:"/",domain:cookiesDomain,secure:!0})),void retrieveSession(e)):void 0;if(!areTempCredsNeeded)return;if(isAWS&&cbAWSDomains.length>0){if(!sessionExtensionCheckInFlight&&(currentSession.basicProfile.isStudent||currentSession.basicProfile.isProfessional)&&activityTracker&&t+ACTIVITY_CHECK_BEFORE_EXP_IN_MILLIS>=currentSession.expireTimeInMS){if(activityTracker.getState().isActive)return logger$1.debug("calling session extension..."),sessionExtensionCheckInFlight=!0,void retrieveAWSSession(e,!0)}(!tempAWSCreds[cbAWSDomains[0]]||t+5*INTERVAL_IN_MILLIS>tempAWSCreds[cbAWSDomains[0]].creds.expireTime.getTime())&&retrieveAWSSession(e)}}else redirectToLoginIfRequired()}function getCookiesState(){var e={isLoggedIn:!1,firstName:"",isRegUser:!1,isProUser:!1},t=cookie.get(USER_COOKIE_NAME.STUDENT_NAME),o=cookie.get(USER_COOKIE_NAME.PRO_NAME),n=cookie.get(USER_COOKIE_NAME.STUDENT_CACHE_SESSION_ID),r=cookie.get(USER_COOKIE_NAME.PRO_CACHE_SESSION_ID),i=cookie.get(USER_COOKIE_NAME.CBLOGIN);return isLoginRaottBased?(raott&&(e.isLoggedIn=!0,e.sessionId=raott,e.cacheId=raott),e):("invalid_user"===o&&(o=null),"invalid_user"===t&&(t=null),e.isRegUser=!!t,e.isProUser=!!o,e.firstName=(e.isRegUser?t:e.isProUser?o:"").toLowerCase(),e.isLoggedIn=!!i,e.sessionId=i,e.cacheId=e.isRegUser?n:e.isProUser?r:i,e)}function loginWithRAOTT(e,t=null,o=null){e?!t||o?(nOfAWSAttempts=0,raott=e,t&&(raottVerifierString=` ${t} ${o}`),retrieveAWSSession(getCookiesState())):logger$1.error("loginWithRAOTT requires verifierValue if verifierName is supplied"):logger$1.error("loginWithRAOTT requires a raott")}function logoutWithRAOTT(){resetSession(),publishLogoutEvent()}function getSession(){return currentSession}function getEventBus(){return eventBus}function resetSession(){(currentSession={}).isLoggedIn=!1,currentSession.sessionId="not_logged_in",raott=null,(currentLegacyState={}).isLoggedIn=!1,tempAWSCreds={cognitoIdentityPoolId:null,subject:null},window.AWS&&window.AWS.config&&(AWS.config.credentials=null),sessionStorage.removeItem(SESSION_STORAGE_IAM_KEY),cbAWSDomains.forEach((function(e){sessionStorage.removeItem(AWS_CREDS_KEY_PREFIX+e)})),sessionStorage.removeItem(AWS_CREDS_SUBJECT_KEY_PREFIX),sessionStorage.removeItem(AWS_CREDS_POOL_KEY_PREFIX)}function deleteCBCookies$1(){logger$1.warn("levity: session is invalid: deleting login cookie"),cookie.remove(USER_COOKIE_NAME.CBLOGIN,{path:"/",domain:cookiesDomain}),cookie.remove(USER_COOKIE_NAME.LOWER_ENV,{path:"/",domain:cookiesDomain})}function redirectToLoginIfRequired(){requiresLogin&&(logger$1.info("requiresLogin=true, user is not logged in, redirecting..."),window.location.assign(loginURI))}function storeSessionInBrowserSS(){if(!isPartner){var e=currentSession.sessionId;currentSession.sessionId=hashCode(e),sessionStorage.setItem(SESSION_STORAGE_IAM_KEY,JSON.stringify(currentSession)),currentSession.sessionId=e}}function loadSessionFromBrowserSS(){isPartner||(null!==(currentSession=JSON.parse(sessionStorage.getItem(SESSION_STORAGE_IAM_KEY)))?(currentLegacyState.isLoggedIn=currentSession.isLoggedIn,currentLegacyState.isRegUser=currentSession.basicProfile.isStudent,currentLegacyState.isProUser=currentSession.basicProfile.isProfessional,currentLegacyState.firstName=currentSession.basicProfile.firstName):resetSession())}function getHashId(){return currentSession.hashId}function getAuthenticationToken(){return loginTokenType+" "+currentSession.sessionId}function getTempAWSCreds(e){return tempAWSCreds[e]?tempAWSCreds[e].creds:null}function getTempAWSCredsSubject(){return tempAWSCreds.subject}function getJWTToken(){return tempAWSCreds.jwtToken}function setJWTToken(e){tempAWSCreds.jwtToken=e,tempAWSCreds.parsedJwtToken=o(e)}function setTempAWSCreds(e,t,o,n){tempAWSCreds[n]={},tempAWSCreds[n].creds=e,tempAWSCreds.subject=t,tempAWSCreds.cognitoIdentityPoolId=o}function adjustWithEnv(){var e=cookie.get(USER_COOKIE_NAME.LOWER_ENV);return!e&&loginTokenEnv&&(e=loginTokenEnv),e&&"pine"!==e&&"prod"!==e?rootLogger.setLevel(utils$2.Logger.Level.DEBUG):(e||(e="pine"),rootLogger.setLevel(utils$2.Logger.Level.INFO)),e}function finalizeMyStyleURLWithEnv(e){var t=adjustWithEnv(),o=e;e instanceof Object&&(o="pine"===t||"prod"===t?e.prod:e.nonprod);var n="pine"===t||"prod"===t?"prod":"nonprod";return o.replace(/{{TREE-ENV}}/g,t).replace(/{{PROD-NONPROD}}/g,n)}function retrieveSession(e){if(isAWS&&retrieveAWSSession(e),!isCatapultAuthOnly)if(sessionCheck){var t=e.sessionId;nOfSessionChecks++;var o=finalizeMyStyleURLWithEnv(bsauthPartialUrl);if(nOfSessionChecks>MAX_N_OF_SESSION_CHECKS)return logger$1.error("max number of session check attempts failed: "+o),intervalID$1!==INVALID_INTERVAL_ID$1&&(clearInterval(intervalID$1),intervalID$1=INVALID_INTERVAL_ID$1),logger$1.debug("publishing LoginFailed event"),void eventBus.trigger(events.LoginFailed);logger$1.debug("calling auth service:"+o+" current nOfSessionChecks="+nOfSessionChecks+" isAWSTempCredsRefreshInFlight="+isAWSTempCredsRefreshInFlight),axios.get(o,{timeout:INTERVAL_IN_MILLIS,headers:{Authorization:`${loginTokenType} ${t}`}}).then((e=>e.data)).then(onSuccessfulSessionRetrievalCB).catch(onFailedSessionRetrievalCB)}else{if(sessionExtensionCheckInFlight)return console.error("session extension is not supported for this config"),resetSession(),publishLogoutEvent(),void(sessionExtensionCheckInFlight=!1);var n={authStatus:"Success",sessionInfo:{identityKey:{namespace:e.isRegUser?"ST":e.isProUser?"PF":"",userName:e.firstName},unifiedSessionId:e.sessionId,expireInSeconds:sessionDurationInSecs,csrId:null},basicProfile:{firstName:e.firstName,lastName:"",zip5:"",emailAddress:""}};setTimeout(onSuccessfulSessionRetrievalCB,0,n)}}function onSuccessfulSessionRetrievalCB(e){var t,o;try{if(logger$1.debug("onSuccessfulSessionRetrievalCB(): "+JSON.stringify(e)),e.authStatus&&"SUCCESS"===e.authStatus.toUpperCase()){var n=!0;let r=!1;if(isAWS&¤tSession.isLoggedIn&&!sessionExtensionCheckInFlight)return void logger$1.debug("onSuccessfulSessionRetrievalCB(): was already called from AWS, returning");sessionExtensionCheckInFlight&&(n=!1,r=!0),nOfSessionChecks=0,currentSession.hashId=null==(o=null==(t=null==e?void 0:e.sessionInfo)?void 0:t.identityKey)?void 0:o.hashId,currentSession.isLoggedIn=!0,currentSession.sessionId=e.sessionInfo.unifiedSessionId,e.sessionInfo.createdDate&&(currentSession.createTimeInMS=new Date(e.sessionInfo.createdDate).getTime()),currentSession.loginTokenType=loginTokenType,currentSession.csrId=e.sessionInfo.csrId,(!isPartner||e.sessionInfo.expireInSeconds=MAX_N_OF_SESSION_CHECKS)return void(nOfAWSAttempts++===MAX_N_OF_SESSION_CHECKS&&(isAWSTempCredsRefreshInFlight=!1,logger$1.error("max number of AWS session check attempts failed: "+cognitoPartialUrl),isLoginRaottBased||publishAWSLoginFailedEvent(),isAWS&&isCatapultAuthOnly&&!getTempAWSCredsSubject()&&intervalID$1!==INVALID_INTERVAL_ID$1&&(clearInterval(intervalID$1),intervalID$1=INVALID_INTERVAL_ID$1)));isAWSTempCredsRefreshInFlight=!0,nOfAWSAttempts++;var o=e.sessionId;isLoginRaottBased&&raottVerifierString&&(o+=raottVerifierString);var n=forceAWSRefresh?Date.now():hashCode(e.cacheId),r=finalizeMyStyleURLWithEnv(cognitoPartialUrl)+"&cacheNonce="+n;getTempAWSCredsSubject()||executeAsEarlyAsPossible((function(){isAWSTempCredsRefreshInFlight&&(logger$1.debug("publishing AWSLoginStarted event"),eventBus.trigger(events.AWSLoginStarted))})),logger$1.debug("calling AWS auth service:"+r+" sessionId="+o+" nOfAWSAttempts="+nOfAWSAttempts+" isAWSTempCredsRefreshInFlight="+isAWSTempCredsRefreshInFlight);let i=loginTokenType;t&&(i+="X"),axios.get(r,{timeout:2*INTERVAL_IN_MILLIS,headers:{Authorization:`${i} ${o}`}}).then(onSuccessfulAWSSessionRetrievalCB).catch(onFailedAWSSessionRetrievalCB)}function onSuccessfulAWSSessionRetrievalCB(e){try{var t=e.data;isAWSTempCredsRefreshInFlight=!1,logger$1.debug("onSuccessfulAWSSessionRetrievalCB()");var n=e.headers.date;if(n&&n.length>10){logger$1.debug("serverTimeStamp:"+n);var r=new Date(n).getTime();diffWithLocalInSecs=(Date.now()-r)/1e3,logger$1.debug("local time difference with server in seconds: "+diffWithLocalInSecs),Math.abs(diffWithLocalInSecs)>INVALID_LOCAL_CLOCK_DIFF_IN_SECS&&executeAsEarlyAsPossible((function(){logger$1.error("publishing InvalidLocalClock event, time diff in secs:"+diffWithLocalInSecs),eventBus.trigger(events.InvalidLocalClock)}))}else logger$1.warn("could not get date response header");var i=null!==getTempAWSCredsSubject();if(i||(logger$1.debug("publishing AWSLoginFinished event"),eventBus.trigger(events.AWSLoginFinished)),t&&t.cbUserProfile&&t.cbUserProfile.authStatus&&"SUCCESS"===t.cbUserProfile.authStatus.toUpperCase()){for(var a in t){var s=t[a];if(s.Credentials&&s.Credentials.AccessKeyId){var l=s.Credentials,c={accessKeyId:l.AccessKeyId,secretAccessKey:l.SecretAccessKey,sessionToken:l.SessionToken,expireTime:new Date(l.Expiration)};if(Date.now()>=c.expireTime)return logger$1.warn("got expired AWS creds, likely because your computer clock is wrong!"),void onFailedAWSSessionRetrievalCB("CB session has expired");setTempAWSCreds(c,s.SubjectFromWebIdentityToken,s.Audience,a)}else s.SubjectFromWebIdentityToken&&(tempAWSCreds.subject=s.SubjectFromWebIdentityToken)}if(nOfAWSAttempts=0,t.cbJwtToken&&setJWTToken(t.cbJwtToken),!currentSession.isLoggedIn||!sessionCheck&&""===currentSession.basicProfile.namespace||sessionExtensionCheckInFlight){if(sessionExtensionCheckInFlight){let e=t.cbUserProfile.sessionInfo.unifiedSessionId;e!==cookie.get(USER_COOKIE_NAME.CBLOGIN)&&(logger$1.debug(`setting ${USER_COOKIE_NAME.CBLOGIN} to ${e}`),cookie.set(USER_COOKIE_NAME.CBLOGIN,e,{path:"/",domain:".collegeboard.org",secure:!0}))}if(t.cbJwtToken){let e=o(t.cbJwtToken).iat,n=Math.floor(Date.now()/1e3)-e,r=t.cbUserProfile.sessionInfo.expireInSeconds,i=r-n;logger$1.debug(`orig expInSecs: ${r} adj:${i}`),t.cbUserProfile.sessionInfo.expireInSeconds=i}onSuccessfulSessionRetrievalCB(t.cbUserProfile)}i?(logger$1.debug("publishing AWSLoginRefresh event"),eventBus.trigger(events.AWSLoginRefresh)):executeAsEarlyAsPossible((function(){logger$1.debug("publishing AWSLogin event"),eventBus.trigger(events.AWSLogin)}))}else onFailedAWSSessionRetrievalCB(t)}catch(d){logger$1.error(d.message)}}function onFailedAWSSessionRetrievalCB(e){e.response&&e.response.data&&(e=e.response.data),isAWSTempCredsRefreshInFlight=!1,logger$1.error("Call to catapult failed: "+JSON.stringify(e)),lastErrorMsg=e.errorMessage?e.errorMessage:"network/proxy error",getTempAWSCredsSubject()||(logger$1.debug("publishing AWSLoginFinished event"),eventBus.trigger(events.AWSLoginFinished),isLoginRaottBased&&(nOfAWSAttempts=MAX_N_OF_SESSION_CHECKS,publishAWSLoginFailedEvent())),sessionExtensionCheckInFlight&&(sessionExtensionCheckInFlight=!1),isPartner&&"status code=400"===lastErrorMsg&&(resetSession(),deleteCBCookies$1(),publishLogoutEvent())}function publishLoginEvent(){executeAsEarlyAsPossible((function(){logger$1.debug("publishing Login event"),eventBus.trigger(events.Login),eventBus.trigger(events.LegacyLoginLogout,currentLegacyState)}))}function publishAWSLoginFailedEvent(){let e="unknown error";if(lastErrorMsg)try{e=JSON.parse(lastErrorMsg)}catch(o){e=lastErrorMsg}let t=e instanceof Object?e:{code:errorCodes.Generic,message:lastErrorMsg,retryable:!1};logger$1.debug("publishing AWSLoginFailed event:"+JSON.stringify(t)),eventBus.emit(events.AWSLoginFailed,t)}function publishLogoutEvent(){executeAsEarlyAsPossible((function(){logger$1.debug("publishing Logout event"),eventBus.trigger(events.Logout),eventBus.trigger(events.LegacyLoginLogout,currentLegacyState)}))}function getLegacyState(){return currentLegacyState}function getLocalTimeDifferenceInSecs(){return diffWithLocalInSecs}function executeAsEarlyAsPossible(e){"loading"===document.readyState?document.addEventListener("DOMContentLoaded",e):e()}function hashCode(e){var t=0;if(!e||!e.length||0===e.length)return t;for(var o=0;o(e.headers.set(CATAPULT_AUTHN_HEADER_NAME,getAuthenticationToken()),e.headers.set(CATAPULT_AUTHZ_HEADER_NAME,getJWTToken()),e)))}function signAndSendAxiosCatapultRequest(e,t){return t.data&&(t.body=JSON.stringify(t.data)),signRequest(e,t).then((e=>{console.log(`signed request: ${JSON.stringify(e)}`);let o={url:e.url,method:e.method,headers:{}};t.data&&(o.data=t.data);for(let t of e.headers)o.headers[t[0]]=t[1];return axios(o)}))}init$2();const iam={events:events,errorCodes:errorCodes,version:"8.1.0",getEventBus:getEventBus,init:init$2,getAuthSession:getSession,finalizeMyStyleURLWithEnv:finalizeMyStyleURLWithEnv,getLegacyState:getLegacyState,getTempAWSCreds:getTempAWSCreds,getTempAWSCredsSubject:getTempAWSCredsSubject,getCatapultId:getTempAWSCredsSubject,getJWTToken:getJWTToken,getAuthenticationToken:getAuthenticationToken,getAuthorizationToken:getJWTToken,getCBEnv:adjustWithEnv,signAndSendAxiosCatapultRequest:signAndSendAxiosCatapultRequest,getLocalTimeDifferenceInSecs:getLocalTimeDifferenceInSecs,loginWithRAOTT:loginWithRAOTT,logoutWithRAOTT:logoutWithRAOTT,getActivityTrackerState:getActivityTrackerState,getHashId:getHashId};var CB_COOKIE_NAMES=Object.freeze({CB_LOGIN:"cb_login",UL_SESSION:"ul_session",PROTECTOR_HEART_BEAT:"protector_heart_beat",PROTECTOR_CB_LOGIN:"protector_cb_login"}),MODES=Object.freeze({REGULAR:"regular",AGGRESSIVE:"aggressive"}),LOCAL_STORAGE_KEY="protectorLocal",HEART_BEAT_INTERVAL=2,DEFAULT_TAB_REMOVED_TIMEOUT=10,DEFAULT_INVISIBLE_TIMEOUT=600,INVALID_INTERVAL_ID=-1,intervalID=INVALID_INTERVAL_ID,logger=utils$2.Logger.getLogger("cb.core.protector"),isProtectionEnabled=!0,mode=MODES.REGULAR,tabRemovedTimeoutInSecs=DEFAULT_TAB_REMOVED_TIMEOUT,invisibleTimeoutInSecs=DEFAULT_INVISIBLE_TIMEOUT,invisibleTimeoutEnforced=!1,invisibleTimerID=INVALID_INTERVAL_ID,pageInfo={},isInitialized=!1,isEnforcementPending=!1;function init$1(e){if(isInitialized)logger.error("protector has been already initialized: ignoring this attempt");else{isInitialized=!0;var t=utils$2.DeploymentProfile.iam;if(t&&t.loginToken&&t.loginToken.type&&"Bearer"===t.loginToken.type)logger.info("data protection is disabled for partners");else{!e&&utils$2.DeploymentProfile&&utils$2.DeploymentProfile.dataProtector&&(e=utils$2.DeploymentProfile.dataProtector),logger.debug("init(), supplied options: "+JSON.stringify(e));var o=iam.getEventBus();if(o.on(iam.events.Logout,onLogout),e){if("object"!=typeof e)throw"cb.core.protector.init(): requires one parameter which must be an object";if(void 0!==e.protectionEnabled)if(!1===e.protectionEnabled||"false"===e.protectionEnabled)isProtectionEnabled=!1;else if("join"===e.protectionEnabled){var n=cookie.get(CB_COOKIE_NAMES.PROTECTOR_HEART_BEAT);n?Date.now()-n>1e3*tabRemovedTimeoutInSecs&&(isProtectionEnabled=!1):isProtectionEnabled=!1,isProtectionEnabled?logger.info("Joining data protection ON"):logger.info("Joining data protection OFF")}if(!isProtectionEnabled)return void logger.info("data protection is DISABLED!");var r=0;e.mode&&e.mode===MODES.AGGRESSIVE&&(mode=MODES.AGGRESSIVE,logger.info("using new mode="+mode)),e.tabRemovedTimeoutInSecs&&(r=parseInt(e.tabRemovedTimeoutInSecs,10))&&(tabRemovedTimeoutInSecs=r),e.invisibleTimeoutEnforced&&(invisibleTimeoutEnforced=!0===e.invisibleTimeoutEnforced),e.invisibleTimeoutInSecs&&(invisibleTimeoutEnforced?(r=parseInt(e.invisibleTimeoutInSecs,10))&&(invisibleTimeoutInSecs=r):logger.error("Supplied invisibleTimeoutInSecs is ignored since invisibleTimeoutEnforced=false"))}logger.info("levity protector options in effect: \nisProtectionEnabled : "+isProtectionEnabled+"\nprotectionMode : "+mode+"\nprotectionTimeoutInSecs : "+tabRemovedTimeoutInSecs+"\ninvisibleTimeoutEnforced : "+invisibleTimeoutEnforced+(invisibleTimeoutEnforced?"\ninvisibleTimeoutInSecs : "+invisibleTimeoutInSecs:"")+"\n"),cookie.get(CB_COOKIE_NAMES.CB_LOGIN)||onLogout(),o.on(iam.events.Login,onLogin),invisibleTimeoutEnforced&&(document.addEventListener("visibilitychange",onVisibilityChange),loadPageInfoFromBrowserLS()),checkProtection(),window.onbeforeunload=function(e){logger.debug("onbeforeunload()")}}}}function onHeartBeatInterval(){cookie.set(CB_COOKIE_NAMES.PROTECTOR_HEART_BEAT,Date.now(),{path:"/",domain:".collegeboard.org",secure:!0})}function onVisibilityChange(e){logger.debug("Got visibility change event: new hidden value="+document.hidden),invisibleTimeoutEnforced&&document.hidden&&iam.getAuthSession().isLoggedIn?(disarm(!1),invisibleTimerID=setInterval(onInvisibleTimeout,1e3*invisibleTimeoutInSecs),logger.debug("started the invisible interval="+invisibleTimerID)):invisibleTimerID!==INVALID_INTERVAL_ID&&(clearInterval(invisibleTimerID),logger.debug("cancelled the invisible interval="+invisibleTimerID),invisibleTimerID=INVALID_INTERVAL_ID,resetPageInfo())}function onInvisibleTimeout(){logger.debug("onInvisibleTimeout()");var e=cookie.get(CB_COOKIE_NAMES.PROTECTOR_HEART_BEAT);Date.now()-e>1e3*tabRemovedTimeoutInSecs&&enforceProtection()}function onLogin(){logger.debug("onLogin()"),isEnforcementPending?enforceProtection():arm()}function onLogout(){logger.debug("onLogout()"),disarm(!0)}function arm(){if(logger.debug("arm()"),iam.getAuthSession().csrId)return logger.warn("loginAs mode: protection disabled!"),void(isProtectionEnabled=!1);cookie.set(CB_COOKIE_NAMES.PROTECTOR_CB_LOGIN,cookie.get(CB_COOKIE_NAMES.CB_LOGIN),{path:"/",domain:".collegeboard.org",secure:!0}),onHeartBeatInterval(),intervalID===INVALID_INTERVAL_ID&&(logger.debug("arm(): starting the heartbeat interval timer"),intervalID=setInterval(onHeartBeatInterval,1e3*HEART_BEAT_INTERVAL)),resetPageInfo(),isProtectionEnabled=!0}function disarm(e){logger.debug("disarm(), deleteCookie="+e),e&&(logger.debug("deleting protector_cb_login cookie..."),cookie.remove(CB_COOKIE_NAMES.PROTECTOR_CB_LOGIN,{path:"/",domain:".collegeboard.org",secure:!0})),intervalID!==INVALID_INTERVAL_ID&&(clearInterval(intervalID),intervalID=INVALID_INTERVAL_ID),resetPageInfo(),isProtectionEnabled=!1}function checkProtection(){if(logger.debug("checkProtection()"),iam.getAuthSession().csrId)return logger.warn("loginAs mode: disabling protection"),void disarm(!0);var e=cookie.get(CB_COOKIE_NAMES.PROTECTOR_CB_LOGIN),t=cookie.get(CB_COOKIE_NAMES.CB_LOGIN);if(t){if(e!=t)return logger.info("lastLoginToken!=curLoginToken: login is in process, allow one time pass"),void arm();if(invisibleTimeoutEnforced&&pageInfo.forceLogin)return logger.info("invisibleTimeoutEnforced && pageInfo.forceLogin: enforce!"),void enforceProtection();var o=parseInt(cookie.get(CB_COOKIE_NAMES.PROTECTOR_HEART_BEAT),10);if(!o)return logger.info("heart beat does not exist, first time use (login happened in a different tab)"),void arm();var n=(Date.now()-o)/1e3;n>tabRemovedTimeoutInSecs?iam.getAuthSession().isLoggedIn?(logger.info("enforcing protection right away, secondsPassed="+n),enforceProtection()):(logger.info("enforcement pending: waiting for the session check to return..."),isEnforcementPending=!0):(logger.info("timeout not expired yet, secondsPassed = "+n+" lastHeartBeatTime="+new Date(o).toLocaleTimeString()),arm())}else logger.info("user is not logged in: protection disabled")}function enforceProtection(){switch(logger.debug("enforceProtection()"),mode){case MODES.REGULAR:redirectToLogin();break;case MODES.AGGRESSIVE:deleteCBCookies(),window.location.assign("https://account.collegeboard.org/login/login?DURL="+window.location.href);break;default:logger.error("invalid mode protection:"+mode)}}function redirectToLogin(){throw window.location.assign("https://account.collegeboard.org/login/login?DURL="+encodeURIComponent(window.location.href)),"stop js execution"}function deleteCBCookies(){logger.warn("levity protector: session is invalid: deleting login cookie"),cookie.remove(CB_COOKIE_NAMES.CB_LOGIN,{path:"/",domain:".collegeboard.org"}),cookie.remove(CB_COOKIE_NAMES.UL_SESSION,{path:"/",domain:".collegeboard.org"})}function storePageInfoInBrowserLS(){localStorage.setItem(LOCAL_STORAGE_KEY,JSON.stringify(pageInfo))}function loadPageInfoFromBrowserLS(){(pageInfo=JSON.parse(localStorage.getItem(LOCAL_STORAGE_KEY)))||(pageInfo={forceLogin:!1})}function resetPageInfo(){invisibleTimeoutEnforced&&(pageInfo||(pageInfo={}),pageInfo.forceLogin=!1,storePageInfoInBrowserLS())}function isProtectionEnabledFunc(){return isProtectionEnabled}init$1();const protector={MODES:MODES,init:init$1,isProtectionEnabled:isProtectionEnabledFunc};set(window,"cb.core.utils",utils$2),set(window,"cb.core.iam",iam),set(window,"cb.core.protector",protector),isEmpty(get(window,"cb.core.utils.DeploymentProfile"))&&set(window,"cb.core.utils.DeploymentProfile",{iam:{aws:{}}});const levity=window.cb.core.iam,_Login=class e extends HTMLElement{constructor(){super(),this.destinationUrl="",this.idp=null,this.appId=null,this.skipEnroll=null,this.signInButtonHandler=e=>{if(e.preventDefault(),e.stopPropagation(),levity.getAuthSession().isLoggedIn){const e=new CustomEvent("loginButtonPress",{bubbles:!0,cancelable:!1,composed:!0});this.dispatchEvent(e)}else window&&window.top&&(window.top.location.href=this.prepareLoginURL())},this.prepareLoginURL=()=>{const e=/iframe/.test(window.location.href)?window.parent.location.href:window.location.href;this.destinationUrl=e,this.idp=this.getAttribute("idp"),this.appId=this.getAttribute("app-id"),this.skipEnroll=this.getAttribute("skip-enroll"),this.destinationUrl=this.getAttribute("destination-url");const t={appId:this.appId||"",idp:this.idp||"",DURL:this.destinationUrl?this.destinationUrl:e,skipEnroll:this.skipEnroll||""},o=new URL("https://account.collegeboard.org/login/login");for(const n in t)t.hasOwnProperty(n)&&t[n]&&o.searchParams.set(n,t[n]);return o.toString()}}connectedCallback(){const t=levity.getEventBus(),o=()=>{const e=new CustomEvent("loginEvent",{detail:{role:levity.getAuthSession().basicProfile.isStudent?"student":"professional",firstName:levity.getAuthSession().basicProfile.firstName},bubbles:!0,cancelable:!1,composed:!0});this.dispatchEvent(e)},n=()=>{const e=this.querySelector(".cbw-header-login");null==e||e.addEventListener("click",this.signInButtonHandler);this.querySelectorAll(".cbw-header-login span").forEach((e=>{null==e||e.addEventListener("click",this.signInButtonHandler)}))};if(t.on(levity.events.Login,(()=>{e.updateSession();const t={firstName:levity.getAuthSession().basicProfile.firstName};this.innerHTML=stringReplacer(authenticatedTemplate,t),o(),n()})),t.on(levity.events.Logout,(()=>{e.updateSession(),this.innerHTML=anonymousTemplate;const t=new CustomEvent("logoutEvent",{bubbles:!0,cancelable:!1,composed:!0});this.dispatchEvent(t),n()})),levity.getAuthSession().isLoggedIn){const e={firstName:levity.getAuthSession().basicProfile.firstName};this.innerHTML=stringReplacer(authenticatedTemplate,e),o()}else this.innerHTML=anonymousTemplate;n()}static get observedAttributes(){return["destination-url"]}};_Login.authSession=null,_Login.iambus=null,_Login.updateSession=()=>{_Login.authSession=levity.getAuthSession()};let Login=_Login;const template$1='\n\n\n
      \n
      \n
      \n \n
      \n
      \n

      {{header}}

      \n
      {{message}}
      \n
      \n
      \n \n
      \n
      \n
      \n ',notificationStyle=":host{display:block;overflow:hidden;transition:all .4s;max-height:100vh}:host(.hiding){max-height:0}:host::part(cbw-widget){display:none}.cbw-notification{background:#fff}.cbw-notification .cbw-notification-wrapper{display:flex;padding:12px 24px}.cbw-notification .cbw-notification-wrapper .cbw-notification-icon{display:flex}.cbw-notification .cbw-notification-wrapper .cbw-notification-content{display:flex;padding:5px 10px 0;flex-grow:2;flex-direction:column}.cbw-notification .cbw-notification-wrapper .cbw-notification-content .cbw-notification-title{font-family:inherit;font-size:1.3125em;line-height:1.1429em;font-weight:400;margin-bottom:12px}.cbw-notification .cbw-notification-wrapper .cbw-notification-content .cbw-notification-description{font-size:1em;line-height:1.5em;margin-bottom:0}.cbw-notification .cbw-notification-wrapper .cbw-notification-close{font-size:1em;line-height:1em;display:flex;align-items:start;margin-top:8px}.cbw-notification .cbw-notification-wrapper .cbw-notification-close .cbw-btn{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;color:#1e1e1e;background-color:transparent;border-radius:8px;border:0;width:2em;height:2rem;font-size:1rem;line-height:1em;padding:0}.cbw-notification .cbw-notification-wrapper .cbw-notification-close .cbw-btn .cbw-icon{font-size:1em;line-height:1.7143em}.cbw-notification .cbw-notification-wrapper .cbw-notification-close .cbw-btn:hover{color:#1e1e1e;background-color:#f0f0f0;box-shadow:none;cursor:pointer}.cbw-notification .cbw-notification-wrapper .cbw-notification-close .cbw-btn:focus{color:#1e1e1e;box-shadow:inset 0 0 1px 2px #505050}"; /*! js-cookie v3.0.5 | MIT */ function assign(e){for(var t=1;t"lv-success"==e?"cbw-green3 cbw-check":"lv-emergency"==e?"cbw-red cbw-exclamation":"cbw-blue5 cbw-megaphone",this.ariaLabelType=e=>"lv-success"==e?"Success":"lv-emergency"==e?"Error":"Information",this.notificationDom=this.attachShadow({mode:"open"})}connectedCallback(){var e,t,o;const n=this.shadowRoot;if(!n)return;const r={notificationStyle:notificationStyle.toString(),header:this.getAttribute("header"),message:this.innerHTML,icon:this.icon(this.getAttribute("type")??""),type:this.ariaLabelType(this.getAttribute("type")),id:this.getAttribute("nid")};n.innerHTML=stringReplacer(template$1,r),r.header||null==(e=n.querySelector("h2"))||e.remove();(null==(t=this.shadowRoot)?void 0:t.querySelector(".cbw-notification-close button")).addEventListener("click",(()=>{this.hideNotification(this)}));-1!=((null==(o=api.get(this.cookieName))?void 0:o.split(","))??[]).indexOf(this.getAttribute("nid")??"")&&this.remove();const i=document.createElement("style");i.textContent=fontsStyle.toString(),this.appendChild(i);const a=document.createElement("link");a.setAttribute("rel","stylesheet"),a.setAttribute("href",`//atlas.collegeboard.org/apricot/prod/${apricotVersion}/widgets.css`),n.appendChild(a),shadowLinkCloner(this)}disconnectedCallback(){this.removeEventListener("click",(()=>{this.hideNotification(this)}))}hideNotification(e){var t;const o=(null==(t=api.get(e.cookieName))?void 0:t.split(","))??[];o.push(e.getAttribute("nid")??""),api.set(e.cookieName,[...new Set(o)].toString()),this.dispatchEvent(new CustomEvent("cbw-notification-hide",{bubbles:!0,composed:!0,detail:{id:1}})),e.classList.add("hiding"),setTimeout((()=>{e.remove()}),500)}}const template='\n\n\n
      \n
      \n
      \n
      \n
      \n \n
      \n
      \n
      \n
      \n
      ',notificationsStyle=":host::part(cbw-widget){display:none}.cbw-notification-widget{background:#d9d9d9;transition:all .4s;display:block;overflow:hidden}.cbw-notification-widget .cbw-notification-container ::slotted(*){margin-top:12px;margin-bottom:12px}.cbw-notification-widget .cbw-notification-container ::slotted(cbw-notification:first-of-type){margin-top:24px}.cbw-notification-widget .cbw-notification-container ::slotted(cbw-notification:last-of-type){margin-bottom:24px}";class Notifications extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"})}connectedCallback(){const e=this.shadowRoot;if(!e)return;const t=this.getAttribute("endpoint")??null,o=this.hasAttribute("api-notifications-first"),n={notificationsStyle:notificationsStyle.toString()};e.innerHTML=stringReplacer(template,n),addComponentTrackingCode("cbw-notifications","notification"),fireComponentLoaded("notification"),t&&fetch(t).then((e=>{e.json().then((e=>{o&&(e=e.reverse());for(const t of e){const e=document.createElement("cbw-notification");t.header&&e.setAttribute("header",t.header),t.id&&e.setAttribute("nid",t.id),t.type&&e.setAttribute("type",t.type),t.message&&(e.innerHTML=t.message),o?this.prepend(e):this.append(e)}})).catch((e=>{console.error(e)}))})).catch((e=>{console.error(`Notification retrieval error: ${e}`)}));const r=new MutationObserver((e=>{e.forEach((e=>{"childList"===e.type&&e.removedNodes.length>0&&this.children.length-e.removedNodes.length<1&&(this.remove(),r.disconnect())}))}));r.observe(this,{childList:!0});const i=document.createElement("style");i.textContent=fontsStyle.toString(),this.appendChild(i);const a=document.createElement("link");a.setAttribute("rel","stylesheet"),a.setAttribute("href",`//atlas.collegeboard.org/apricot/prod/${apricotVersion}/widgets.css`),e.appendChild(a)}}customElements.define("cbw-header",Header),customElements.define("cbw-slidedown",Slidedown),customElements.define("cbw-search",Search),customElements.define("cbw-login",Login),customElements.define("cbw-footer",Footer),customElements.define("cbw-notifications",Notifications),customElements.define("cbw-notification",Notification)})(); //# sourceMappingURL=cbw-widgets.min.js.map