diff --git a/frontend/src/pages/chat/Chat.module.css b/frontend/src/pages/chat/Chat.module.css index 7b5643920d..d616c254a7 100644 --- a/frontend/src/pages/chat/Chat.module.css +++ b/frontend/src/pages/chat/Chat.module.css @@ -98,6 +98,7 @@ white-space: pre-wrap; word-wrap: break-word; max-width: 80%; + overflow-x: auto; } .chatMessageGpt { diff --git a/static/assets/index-13540cdc.css b/static/assets/index-13540cdc.css new file mode 100644 index 0000000000..d457456c37 --- /dev/null +++ b/static/assets/index-13540cdc.css @@ -0,0 +1 @@ +*{box-sizing:border-box}html,body{height:100%;margin:0;padding:0}html{background:#f2f2f2;font-family:Segoe UI,"Segoe UI Web (West European)",Segoe UI,-apple-system,BlinkMacSystemFont,Roboto,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{height:100%}._layout_12jdk_1{display:flex;flex-direction:column;height:100%}._header_12jdk_7{background-color:#f2f2f2}._headerContainer_12jdk_11{display:flex;justify-content:left;align-items:center}._headerTitleContainer_12jdk_17{display:flex;align-items:center;margin-left:14px;text-decoration:none}._headerTitle_12jdk_17{font-style:normal;font-weight:600;font-size:20px;line-height:28px;display:flex;align-items:flex-end;color:#242424}._headerIcon_12jdk_34{height:32px;width:auto;margin-left:36px}._shareButtonContainer_12jdk_40{display:flex;flex-direction:row;justify-content:center;margin-right:20px}._shareButton_12jdk_40{color:#fff}._shareButtonText_12jdk_51{font-style:normal;font-weight:600;font-size:14px;line-height:20px;display:flex;align-items:center;color:#fff}._urlTextBox_12jdk_61{font-style:normal;font-weight:400;font-size:14px;line-height:20px;color:#707070;border:1px solid #D1D1D1;border-radius:4px}._copyButtonContainer_12jdk_71{box-sizing:border-box;display:flex;flex-direction:row;justify-content:center;align-items:center;padding:5px 12px;gap:4px;background:#FFFFFF;border:1px solid #D1D1D1;border-radius:4px}._copyButtonContainer_12jdk_71:hover{cursor:pointer;background:#D1D1D1}._copyButton_12jdk_71{color:#424242}._copyButtonText_12jdk_93{font-style:normal;font-weight:600;font-size:14px;line-height:20px;display:flex;align-items:center;color:#242424}@media (max-width: 480px){._headerTitleContainer_12jdk_17{margin-left:4px}._headerIcon_12jdk_34{margin-left:26px}}._shareButtonRoot_19k49_1{width:86px;height:32px;border-radius:4px;background:radial-gradient(109.81% 107.82% at 100.1% 90.19%,#0F6CBD 33.63%,#2D87C3 70.31%,#8DDDD8 100%);padding:5px 12px}._shareButtonRoot_19k49_1:hover{background:linear-gradient(135deg,#0F6CBD 0%,#2D87C3 51.04%,#8DDDD8 100%)}._shareButtonRoot_19k49_1 span{font-weight:600;font-size:14px;line-height:20px;color:#fff}._shareButtonRoot_19k49_1 i,._shareButtonRoot_19k49_1:hover i{color:#fff!important}._historyButtonRoot_19k49_24{width:180px;border:1px solid #D1D1D1}._historyButtonRoot_19k49_24:hover,._historyButtonRoot_19k49_24:active{border:1px solid #D1D1D1}@media (max-width: 480px){._shareButtonRoot_19k49_1{width:auto;padding:5px 8px}._historyButtonRoot_19k49_24{width:auto;padding:0 8px}}._container_1cytq_1{flex:1;display:flex;flex-direction:column;gap:20px}._chatRoot_1cytq_8{flex:1;display:flex;margin:0 20px 20px;gap:5px}._chatContainer_1cytq_18{flex:1;display:flex;flex-direction:column;align-items:center;background:radial-gradient(108.78% 108.78% at 50.02% 19.78%,#FFFFFF 57.29%,#EEF6FE 100%);box-shadow:0 2px 4px #00000024,0 0 2px #0000001f;border-radius:8px;overflow-y:auto;max-height:calc(100vh - 100px)}._chatEmptyState_1cytq_30{flex-grow:1;display:flex;flex-direction:column;justify-content:center;align-items:center}._chatEmptyStateTitle_1cytq_38{font-style:normal;font-weight:700;font-size:36px;display:flex;align-items:flex-end;text-align:center;line-height:24px;margin-top:36px;margin-bottom:0}._chatEmptyStateSubtitle_1cytq_50{margin-top:20px;font-style:normal;font-weight:400;font-size:16px;line-height:150%;align-items:flex-end;text-align:center;letter-spacing:-.01em;color:#616161}._chatIcon_1cytq_62{height:62px;width:auto}._chatMessageStream_1cytq_67{flex-grow:1;max-width:1028px;width:100%;overflow-y:auto;padding-left:24px;padding-right:24px;display:flex;flex-direction:column;margin-top:24px}._chatMessageUser_1cytq_79{display:flex;justify-content:flex-end;margin-bottom:12px}._chatMessageUserMessage_1cytq_85{display:flex;padding:20px;background:#EDF5FD;border-radius:8px;box-shadow:0 2px 4px #00000024,0 0 2px #0000001f;font-style:normal;font-weight:400;font-size:14px;line-height:22px;color:#242424;order:0;flex-grow:0;white-space:pre-wrap;word-wrap:break-word;max-width:80%;overflow-x:auto}._chatMessageGpt_1cytq_104{margin-bottom:12px;max-width:80%;display:flex}._chatMessageError_1cytq_110{padding:20px;border-radius:8px;box-shadow:#b63443 1px 1px 2px,#b63443 0 0 1px;color:#242424;flex:none;order:0;flex-grow:0;max-width:800px;margin-bottom:12px}._chatMessageErrorContent_1cytq_122{font-family:Segoe UI;font-style:normal;font-weight:400;font-size:14px;line-height:22px;white-space:pre-wrap;word-wrap:break-word;gap:12px;align-items:center}._chatInput_1cytq_134{position:sticky;flex:0 0 100px;padding:12px 24px 24px;width:calc(100% - 100px);max-width:1028px;margin-bottom:50px;margin-top:8px}._clearChatBroom_1cytq_147{box-sizing:border-box;display:flex;flex-direction:row;justify-content:center;align-items:center;position:absolute;width:40px;height:40px;left:7px;top:13px;color:#fff;border-radius:4px;z-index:1}._clearChatBroomNoCosmos_1cytq_163,._newChatIcon_1cytq_179{box-sizing:border-box;display:flex;flex-direction:row;justify-content:center;align-items:center;position:absolute;width:40px;height:40px;left:7px;top:66px;color:#fff;border-radius:4px;z-index:1}._stopGeneratingContainer_1cytq_195{box-sizing:border-box;display:flex;flex-direction:row;justify-content:center;align-items:center;padding:5px 16px;gap:4px;position:absolute;width:161px;height:32px;left:calc(50% - 54.7px);bottom:116px;border:1px solid #D1D1D1;border-radius:16px}._stopGeneratingIcon_1cytq_212{width:14px;height:14px;color:#424242}._stopGeneratingText_1cytq_218{width:103px;height:20px;font-style:normal;font-weight:600;font-size:14px;line-height:20px;display:flex;align-items:center;color:#242424;flex:none;order:0;flex-grow:0}._citationPanel_1cytq_233{display:flex;flex-direction:column;align-items:flex-start;padding:16px;gap:8px;background:#FFFFFF;box-shadow:0 2px 4px #00000024,0 0 2px #0000001f;border-radius:8px;flex:auto;order:0;align-self:stretch;flex-grow:.3;max-width:30%;overflow-y:scroll;max-height:calc(100vh - 100px)}._citationPanelHeaderContainer_1cytq_251{width:100%}._citationPanelHeader_1cytq_251{font-style:normal;font-weight:600;font-size:18px;line-height:24px;color:#000;flex:none;order:0;flex-grow:0}._citationPanelDismiss_1cytq_266{width:18px;height:18px;color:#424242}._citationPanelDismiss_1cytq_266:hover{background-color:#d1d1d1;cursor:pointer}._citationPanelTitle_1cytq_277{font-style:normal;font-weight:600;font-size:16px;line-height:22px;color:#323130;margin-top:12px;margin-bottom:12px}._citationPanelTitle_1cytq_277:hover{text-decoration:underline;cursor:pointer}._citationPanelContent_1cytq_292{font-style:normal;font-weight:400;font-size:14px;line-height:20px;color:#000;flex:none;order:1;align-self:stretch;flex-grow:0}a{padding-left:5px;padding-right:5px}._viewSourceButton_1cytq_309{font-style:normal;font-weight:600;font-size:12px;line-height:16px;color:#115ea3;flex-direction:row;align-items:center;padding:4px 6px;gap:4px;border:1px solid #D1D1D1;border-radius:4px}._viewSourceButton_1cytq_309:hover{text-decoration:underline;cursor:pointer}@media (max-width: 480px){._chatInput_1cytq_134{width:90%;max-width:90%}._newChatIcon_1cytq_179,._clearChatBroom_1cytq_147,._clearChatBroomNoCosmos_1cytq_163{left:0px}._chatEmptyStateTitle_1cytq_38{line-height:36px}._citationPanel_1cytq_233{max-width:100%}}._answerContainer_1io9c_1{display:flex;flex-direction:column;align-items:flex-start;padding:8.1285px;gap:5.42px;background:#FFFFFF;box-shadow:0 1px 2px #00000024,0 0 2px #0000001f;border-radius:5.419px}._answerText_1io9c_12{font-style:normal;font-weight:400;font-size:14px;line-height:20px;color:#323130;flex:none;order:1;align-self:stretch;flex-grow:0;margin:11px;white-space:normal;word-wrap:break-word;max-width:800px;overflow-x:auto}._answerHeader_1io9c_29{position:relative}._answerFooter_1io9c_33{display:flex;flex-flow:row nowrap;width:100%;height:auto;box-sizing:border-box;justify-content:space-between}._answerDisclaimerContainer_1io9c_42{justify-content:center;display:flex}._answerDisclaimer_1io9c_42{font-style:normal;font-weight:400;font-size:12px;line-height:16px;display:flex;align-items:center;text-align:center;color:#707070;flex:none;order:1;flex-grow:0}._citationWrapper_1io9c_62{margin-top:8;display:flex;flex-flow:wrap column;max-height:150px;gap:4px}._citationContainer_1io9c_70{margin-left:10px;font-style:normal;font-weight:600;font-size:12px;line-height:16px;color:#115ea3;display:flex;flex-direction:row;align-items:center;padding:4px 6px;gap:4px;border:1px solid #D1D1D1;border-radius:4px}._citationContainer_1io9c_70:hover{text-decoration:underline;cursor:pointer}._citation_1io9c_62{box-sizing:border-box;display:inline-flex;flex-direction:column;justify-content:center;align-items:center;padding:0;width:14px;height:14px;border:1px solid #E0E0E0;border-radius:4px;flex:none;flex-grow:0;z-index:2;font-style:normal;font-weight:600;font-size:10px;line-height:14px;text-align:center;color:#424242;cursor:pointer}._citation_1io9c_62:hover{text-decoration:underline;cursor:pointer}._accordionIcon_1io9c_120{display:inline-flex;flex-direction:row;justify-content:center;align-items:center;padding:0;margin-top:4px;color:#616161;font-size:10px}._accordionIcon_1io9c_120:hover{cursor:pointer}._accordionTitle_1io9c_135{margin-right:5px;margin-left:10px;font-style:normal;font-weight:400;font-size:12px;line-height:16px;display:flex;align-items:center;color:#616161}._accordionTitle_1io9c_135:hover{cursor:pointer}._clickableSup_1io9c_151{box-sizing:border-box;display:inline-flex;flex-direction:column;justify-content:center;align-items:center;padding:0;width:14px;height:14px;border:1px solid #E0E0E0;border-radius:4px;flex:none;order:2;flex-grow:0;z-index:2;font-style:normal;font-weight:600;font-size:10px;line-height:14px;text-align:center;color:#424242;cursor:pointer}._clickableSup_1io9c_151:hover{text-decoration:underline;cursor:pointer}sup{font-size:10px;line-height:10px}@media (max-width: 480px){._answerFooter_1io9c_33{flex-direction:column-reverse}._citationWrapper_1io9c_62{max-height:max-content}._citationContainer_1io9c_70{margin-left:0}._answerDisclaimer_1io9c_42{margin-bottom:5px}}._questionInputContainer_scmpq_1{height:120px;position:absolute;left:6.5%;right:0%;top:0%;bottom:0%;background:#FFFFFF;box-shadow:0 8px 16px #00000024,0 0 2px #0000001f;border-radius:8px}._questionInputTextArea_scmpq_13{width:100%;line-height:40px;margin:10px 12px}._questionInputSendButtonContainer_scmpq_22{position:absolute;right:24px;bottom:20px}._questionInputSendButton_scmpq_22{width:24px;height:23px}._questionInputSendButtonDisabled_scmpq_33{width:24px;height:23px;background:none;color:#424242}._questionInputBottomBorder_scmpq_41{position:absolute;width:100%;height:4px;left:0%;bottom:0%;background:radial-gradient(106.04% 106.06% at 100.1% 90.19%,#0F6CBD 33.63%,#8DDDD8 100%);border-bottom-left-radius:8px;border-bottom-right-radius:8px}._questionInputOptionsButton_scmpq_52{cursor:pointer;width:27px;height:30px}@media (max-width: 480px){._questionInputContainer_scmpq_1{left:16.5%}}._container_1jok3_1{max-height:calc(100vh - 100px);width:300px}._listContainer_1jok3_6{overflow:hidden auto;max-height:calc(90vh - 105px)}._itemCell_1jok3_11{max-width:270px;min-height:32px;cursor:pointer;padding:5px 5px 5px 15px;box-sizing:border-box;border-radius:5px;display:flex}._itemCell_1jok3_11:hover{background:#E6E6E6}._itemButton_1jok3_28{display:flex;justify-content:center;align-items:center;width:28px;height:28px;border:1px solid #d1d1d1;border-radius:5px;background-color:#fff;margin:auto 2.5px;cursor:pointer}._itemButton_1jok3_28:hover{background-color:#e6e6e6}._chatGroup_1jok3_45{margin:auto 5px;width:100%}._spinnerContainer_1jok3_50{display:flex;justify-content:center;align-items:center;height:50px}._chatList_1jok3_57{width:100%}._chatMonth_1jok3_61{font-size:14px;font-weight:600;margin-bottom:5px;padding-left:15px}._chatTitle_1jok3_68{width:80%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}@media (max-width: 480px){._container_1jok3_1{width:100%}} diff --git a/static/assets/index-2d2026f2.js b/static/assets/index-1a8e7edc.js similarity index 99% rename from static/assets/index-2d2026f2.js rename to static/assets/index-1a8e7edc.js index 798bd68461..b6e127d27f 100644 --- a/static/assets/index-2d2026f2.js +++ b/static/assets/index-1a8e7edc.js @@ -108,7 +108,7 @@ Error generating stack: `+a.message+` `||i==="\r"&&this.html[r+1]!==` `)&&(t.isEol=!0),t.col=r-t.lineStartPos+1,t.offset=t.droppedBufferSize+r,n.advance.call(this)},retreat(){n.retreat.call(this),t.isEol=!1,t.col=this.pos-t.lineStartPos+1},dropParsedChunk(){const r=this.pos;n.dropParsedChunk.call(this);const i=r-this.pos;t.lineStartPos-=i,t.droppedBufferSize+=i,t.offset=t.droppedBufferSize+this.pos}}}};var oF=EZ;const SI=Ra,Km=nf,bZ=oF;let yZ=class extends SI{constructor(t){super(t),this.tokenizer=t,this.posTracker=SI.install(t.preprocessor,bZ),this.currentAttrLocation=null,this.ctLoc=null}_getCurrentLocation(){return{startLine:this.posTracker.line,startCol:this.posTracker.col,startOffset:this.posTracker.offset,endLine:-1,endCol:-1,endOffset:-1}}_attachCurrentAttrLocationInfo(){this.currentAttrLocation.endLine=this.posTracker.line,this.currentAttrLocation.endCol=this.posTracker.col,this.currentAttrLocation.endOffset=this.posTracker.offset;const t=this.tokenizer.currentToken,n=this.tokenizer.currentAttr;t.location.attrs||(t.location.attrs=Object.create(null)),t.location.attrs[n.name]=this.currentAttrLocation}_getOverriddenMethods(t,n){const r={_createStartTagToken(){n._createStartTagToken.call(this),this.currentToken.location=t.ctLoc},_createEndTagToken(){n._createEndTagToken.call(this),this.currentToken.location=t.ctLoc},_createCommentToken(){n._createCommentToken.call(this),this.currentToken.location=t.ctLoc},_createDoctypeToken(i){n._createDoctypeToken.call(this,i),this.currentToken.location=t.ctLoc},_createCharacterToken(i,a){n._createCharacterToken.call(this,i,a),this.currentCharacterToken.location=t.ctLoc},_createEOFToken(){n._createEOFToken.call(this),this.currentToken.location=t._getCurrentLocation()},_createAttr(i){n._createAttr.call(this,i),t.currentAttrLocation=t._getCurrentLocation()},_leaveAttrName(i){n._leaveAttrName.call(this,i),t._attachCurrentAttrLocationInfo()},_leaveAttrValue(i){n._leaveAttrValue.call(this,i),t._attachCurrentAttrLocationInfo()},_emitCurrentToken(){const i=this.currentToken.location;this.currentCharacterToken&&(this.currentCharacterToken.location.endLine=i.startLine,this.currentCharacterToken.location.endCol=i.startCol,this.currentCharacterToken.location.endOffset=i.startOffset),this.currentToken.type===Km.EOF_TOKEN?(i.endLine=i.startLine,i.endCol=i.startCol,i.endOffset=i.startOffset):(i.endLine=t.posTracker.line,i.endCol=t.posTracker.col+1,i.endOffset=t.posTracker.offset+1),n._emitCurrentToken.call(this)},_emitCurrentCharacterToken(){const i=this.currentCharacterToken&&this.currentCharacterToken.location;i&&i.endOffset===-1&&(i.endLine=t.posTracker.line,i.endCol=t.posTracker.col,i.endOffset=t.posTracker.offset),n._emitCurrentCharacterToken.call(this)}};return Object.keys(Km.MODE).forEach(i=>{const a=Km.MODE[i];r[a]=function(o){t.ctLoc=t._getCurrentLocation(),n[a].call(this,o)}}),r}};var sF=yZ;const vZ=Ra;let TZ=class extends vZ{constructor(t,n){super(t),this.onItemPop=n.onItemPop}_getOverriddenMethods(t,n){return{pop(){t.onItemPop(this.current),n.pop.call(this)},popAllUpToHtmlElement(){for(let r=this.stackTop;r>0;r--)t.onItemPop(this.items[r]);n.popAllUpToHtmlElement.call(this)},remove(r){t.onItemPop(this.current),n.remove.call(this,r)}}}};var _Z=TZ;const Ym=Ra,CI=nf,SZ=sF,CZ=_Z,AZ=vi,Xm=AZ.TAG_NAMES;let IZ=class extends Ym{constructor(t){super(t),this.parser=t,this.treeAdapter=this.parser.treeAdapter,this.posTracker=null,this.lastStartTagToken=null,this.lastFosterParentingLocation=null,this.currentToken=null}_setStartLocation(t){let n=null;this.lastStartTagToken&&(n=Object.assign({},this.lastStartTagToken.location),n.startTag=this.lastStartTagToken.location),this.treeAdapter.setNodeSourceCodeLocation(t,n)}_setEndLocation(t,n){if(this.treeAdapter.getNodeSourceCodeLocation(t)&&n.location){const i=n.location,a=this.treeAdapter.getTagName(t),o=n.type===CI.END_TAG_TOKEN&&a===n.tagName,s={};o?(s.endTag=Object.assign({},i),s.endLine=i.endLine,s.endCol=i.endCol,s.endOffset=i.endOffset):(s.endLine=i.startLine,s.endCol=i.startCol,s.endOffset=i.startOffset),this.treeAdapter.updateNodeSourceCodeLocation(t,s)}}_getOverriddenMethods(t,n){return{_bootstrap(r,i){n._bootstrap.call(this,r,i),t.lastStartTagToken=null,t.lastFosterParentingLocation=null,t.currentToken=null;const a=Ym.install(this.tokenizer,SZ);t.posTracker=a.posTracker,Ym.install(this.openElements,CZ,{onItemPop:function(o){t._setEndLocation(o,t.currentToken)}})},_runParsingLoop(r){n._runParsingLoop.call(this,r);for(let i=this.openElements.stackTop;i>=0;i--)t._setEndLocation(this.openElements.items[i],t.currentToken)},_processTokenInForeignContent(r){t.currentToken=r,n._processTokenInForeignContent.call(this,r)},_processToken(r){if(t.currentToken=r,n._processToken.call(this,r),r.type===CI.END_TAG_TOKEN&&(r.tagName===Xm.HTML||r.tagName===Xm.BODY&&this.openElements.hasInScope(Xm.BODY)))for(let a=this.openElements.stackTop;a>=0;a--){const o=this.openElements.items[a];if(this.treeAdapter.getTagName(o)===r.tagName){t._setEndLocation(o,r);break}}},_setDocumentType(r){n._setDocumentType.call(this,r);const i=this.treeAdapter.getChildNodes(this.document),a=i.length;for(let o=0;o(Object.keys(i).forEach(a=>{r[a]=i[a]}),r),Object.create(null))},rf={};const{DOCUMENT_MODE:Cs}=vi,cF="html",KZ="about:legacy-compat",YZ="http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd",dF=["+//silmaril//dtd html pro v0r11 19970101//","-//as//dtd html 3.0 aswedit + extensions//","-//advasoft ltd//dtd html 3.0 aswedit + extensions//","-//ietf//dtd html 2.0 level 1//","-//ietf//dtd html 2.0 level 2//","-//ietf//dtd html 2.0 strict level 1//","-//ietf//dtd html 2.0 strict level 2//","-//ietf//dtd html 2.0 strict//","-//ietf//dtd html 2.0//","-//ietf//dtd html 2.1e//","-//ietf//dtd html 3.0//","-//ietf//dtd html 3.2 final//","-//ietf//dtd html 3.2//","-//ietf//dtd html 3//","-//ietf//dtd html level 0//","-//ietf//dtd html level 1//","-//ietf//dtd html level 2//","-//ietf//dtd html level 3//","-//ietf//dtd html strict level 0//","-//ietf//dtd html strict level 1//","-//ietf//dtd html strict level 2//","-//ietf//dtd html strict level 3//","-//ietf//dtd html strict//","-//ietf//dtd html//","-//metrius//dtd metrius presentational//","-//microsoft//dtd internet explorer 2.0 html strict//","-//microsoft//dtd internet explorer 2.0 html//","-//microsoft//dtd internet explorer 2.0 tables//","-//microsoft//dtd internet explorer 3.0 html strict//","-//microsoft//dtd internet explorer 3.0 html//","-//microsoft//dtd internet explorer 3.0 tables//","-//netscape comm. corp.//dtd html//","-//netscape comm. corp.//dtd strict html//","-//o'reilly and associates//dtd html 2.0//","-//o'reilly and associates//dtd html extended 1.0//","-//o'reilly and associates//dtd html extended relaxed 1.0//","-//sq//dtd html 2.0 hotmetal + extensions//","-//softquad software//dtd hotmetal pro 6.0::19990601::extensions to html 4.0//","-//softquad//dtd hotmetal pro 4.0::19971010::extensions to html 4.0//","-//spyglass//dtd html 2.0 extended//","-//sun microsystems corp.//dtd hotjava html//","-//sun microsystems corp.//dtd hotjava strict html//","-//w3c//dtd html 3 1995-03-24//","-//w3c//dtd html 3.2 draft//","-//w3c//dtd html 3.2 final//","-//w3c//dtd html 3.2//","-//w3c//dtd html 3.2s draft//","-//w3c//dtd html 4.0 frameset//","-//w3c//dtd html 4.0 transitional//","-//w3c//dtd html experimental 19960712//","-//w3c//dtd html experimental 970421//","-//w3c//dtd w3 html//","-//w3o//dtd w3 html 3.0//","-//webtechs//dtd mozilla html 2.0//","-//webtechs//dtd mozilla html//"],XZ=dF.concat(["-//w3c//dtd html 4.01 frameset//","-//w3c//dtd html 4.01 transitional//"]),ZZ=["-//w3o//dtd w3 html strict 3.0//en//","-/w3c/dtd html 4.0 transitional/en","html"],pF=["-//w3c//dtd xhtml 1.0 frameset//","-//w3c//dtd xhtml 1.0 transitional//"],QZ=pF.concat(["-//w3c//dtd html 4.01 frameset//","-//w3c//dtd html 4.01 transitional//"]);function II(e){const t=e.indexOf('"')!==-1?"'":'"';return t+e+t}function RI(e,t){for(let n=0;n-1)return Cs.QUIRKS;let r=t===null?XZ:dF;if(RI(n,r))return Cs.QUIRKS;if(r=t===null?pF:QZ,RI(n,r))return Cs.LIMITED_QUIRKS}return Cs.NO_QUIRKS};rf.serializeContent=function(e,t,n){let r="!DOCTYPE ";return e&&(r+=e),t?r+=" PUBLIC "+II(t):n&&(r+=" SYSTEM"),n!==null&&(r+=" "+II(n)),r};var bo={};const Zm=nf,C_=vi,he=C_.TAG_NAMES,fn=C_.NAMESPACES,f1=C_.ATTRS,NI={TEXT_HTML:"text/html",APPLICATION_XML:"application/xhtml+xml"},JZ="definitionurl",eQ="definitionURL",tQ={attributename:"attributeName",attributetype:"attributeType",basefrequency:"baseFrequency",baseprofile:"baseProfile",calcmode:"calcMode",clippathunits:"clipPathUnits",diffuseconstant:"diffuseConstant",edgemode:"edgeMode",filterunits:"filterUnits",glyphref:"glyphRef",gradienttransform:"gradientTransform",gradientunits:"gradientUnits",kernelmatrix:"kernelMatrix",kernelunitlength:"kernelUnitLength",keypoints:"keyPoints",keysplines:"keySplines",keytimes:"keyTimes",lengthadjust:"lengthAdjust",limitingconeangle:"limitingConeAngle",markerheight:"markerHeight",markerunits:"markerUnits",markerwidth:"markerWidth",maskcontentunits:"maskContentUnits",maskunits:"maskUnits",numoctaves:"numOctaves",pathlength:"pathLength",patterncontentunits:"patternContentUnits",patterntransform:"patternTransform",patternunits:"patternUnits",pointsatx:"pointsAtX",pointsaty:"pointsAtY",pointsatz:"pointsAtZ",preservealpha:"preserveAlpha",preserveaspectratio:"preserveAspectRatio",primitiveunits:"primitiveUnits",refx:"refX",refy:"refY",repeatcount:"repeatCount",repeatdur:"repeatDur",requiredextensions:"requiredExtensions",requiredfeatures:"requiredFeatures",specularconstant:"specularConstant",specularexponent:"specularExponent",spreadmethod:"spreadMethod",startoffset:"startOffset",stddeviation:"stdDeviation",stitchtiles:"stitchTiles",surfacescale:"surfaceScale",systemlanguage:"systemLanguage",tablevalues:"tableValues",targetx:"targetX",targety:"targetY",textlength:"textLength",viewbox:"viewBox",viewtarget:"viewTarget",xchannelselector:"xChannelSelector",ychannelselector:"yChannelSelector",zoomandpan:"zoomAndPan"},nQ={"xlink:actuate":{prefix:"xlink",name:"actuate",namespace:fn.XLINK},"xlink:arcrole":{prefix:"xlink",name:"arcrole",namespace:fn.XLINK},"xlink:href":{prefix:"xlink",name:"href",namespace:fn.XLINK},"xlink:role":{prefix:"xlink",name:"role",namespace:fn.XLINK},"xlink:show":{prefix:"xlink",name:"show",namespace:fn.XLINK},"xlink:title":{prefix:"xlink",name:"title",namespace:fn.XLINK},"xlink:type":{prefix:"xlink",name:"type",namespace:fn.XLINK},"xml:base":{prefix:"xml",name:"base",namespace:fn.XML},"xml:lang":{prefix:"xml",name:"lang",namespace:fn.XML},"xml:space":{prefix:"xml",name:"space",namespace:fn.XML},xmlns:{prefix:"",name:"xmlns",namespace:fn.XMLNS},"xmlns:xlink":{prefix:"xmlns",name:"xlink",namespace:fn.XMLNS}},rQ=bo.SVG_TAG_NAMES_ADJUSTMENT_MAP={altglyph:"altGlyph",altglyphdef:"altGlyphDef",altglyphitem:"altGlyphItem",animatecolor:"animateColor",animatemotion:"animateMotion",animatetransform:"animateTransform",clippath:"clipPath",feblend:"feBlend",fecolormatrix:"feColorMatrix",fecomponenttransfer:"feComponentTransfer",fecomposite:"feComposite",feconvolvematrix:"feConvolveMatrix",fediffuselighting:"feDiffuseLighting",fedisplacementmap:"feDisplacementMap",fedistantlight:"feDistantLight",feflood:"feFlood",fefunca:"feFuncA",fefuncb:"feFuncB",fefuncg:"feFuncG",fefuncr:"feFuncR",fegaussianblur:"feGaussianBlur",feimage:"feImage",femerge:"feMerge",femergenode:"feMergeNode",femorphology:"feMorphology",feoffset:"feOffset",fepointlight:"fePointLight",fespecularlighting:"feSpecularLighting",fespotlight:"feSpotLight",fetile:"feTile",feturbulence:"feTurbulence",foreignobject:"foreignObject",glyphref:"glyphRef",lineargradient:"linearGradient",radialgradient:"radialGradient",textpath:"textPath"},iQ={[he.B]:!0,[he.BIG]:!0,[he.BLOCKQUOTE]:!0,[he.BODY]:!0,[he.BR]:!0,[he.CENTER]:!0,[he.CODE]:!0,[he.DD]:!0,[he.DIV]:!0,[he.DL]:!0,[he.DT]:!0,[he.EM]:!0,[he.EMBED]:!0,[he.H1]:!0,[he.H2]:!0,[he.H3]:!0,[he.H4]:!0,[he.H5]:!0,[he.H6]:!0,[he.HEAD]:!0,[he.HR]:!0,[he.I]:!0,[he.IMG]:!0,[he.LI]:!0,[he.LISTING]:!0,[he.MENU]:!0,[he.META]:!0,[he.NOBR]:!0,[he.OL]:!0,[he.P]:!0,[he.PRE]:!0,[he.RUBY]:!0,[he.S]:!0,[he.SMALL]:!0,[he.SPAN]:!0,[he.STRONG]:!0,[he.STRIKE]:!0,[he.SUB]:!0,[he.SUP]:!0,[he.TABLE]:!0,[he.TT]:!0,[he.U]:!0,[he.UL]:!0,[he.VAR]:!0};bo.causesExit=function(e){const t=e.tagName;return t===he.FONT&&(Zm.getTokenAttr(e,f1.COLOR)!==null||Zm.getTokenAttr(e,f1.SIZE)!==null||Zm.getTokenAttr(e,f1.FACE)!==null)?!0:iQ[t]};bo.adjustTokenMathMLAttrs=function(e){for(let t=0;t0);for(let i=n;i=0;t--){let r=this.openElements.items[t];t===0&&(n=!0,this.fragmentContext&&(r=this.fragmentContext));const i=this.treeAdapter.getTagName(r),a=gQ[i];if(a){this.insertionMode=a;break}else if(!n&&(i===y.TD||i===y.TH)){this.insertionMode=lf;break}else if(!n&&i===y.HEAD){this.insertionMode=Ll;break}else if(i===y.SELECT){this._resetInsertionModeForSelect(t);break}else if(i===y.TEMPLATE){this.insertionMode=this.currentTmplInsertionMode;break}else if(i===y.HTML){this.insertionMode=this.headElement?of:af;break}else if(n){this.insertionMode=zi;break}}}_resetInsertionModeForSelect(t){if(t>0)for(let n=t-1;n>0;n--){const r=this.openElements.items[n],i=this.treeAdapter.getTagName(r);if(i===y.TEMPLATE)break;if(i===y.TABLE){this.insertionMode=R_;return}}this.insertionMode=I_}_pushTmplInsertionMode(t){this.tmplInsertionModeStack.push(t),this.tmplInsertionModeStackTop++,this.currentTmplInsertionMode=t}_popTmplInsertionMode(){this.tmplInsertionModeStack.pop(),this.tmplInsertionModeStackTop--,this.currentTmplInsertionMode=this.tmplInsertionModeStack[this.tmplInsertionModeStackTop]}_isElementCausesFosterParenting(t){const n=this.treeAdapter.getTagName(t);return n===y.TABLE||n===y.TBODY||n===y.TFOOT||n===y.THEAD||n===y.TR}_shouldFosterParentOnInsertion(){return this.fosterParentingEnabled&&this._isElementCausesFosterParenting(this.openElements.current)}_findFosterParentingLocation(){const t={parent:null,beforeElement:null};for(let n=this.openElements.stackTop;n>=0;n--){const r=this.openElements.items[n],i=this.treeAdapter.getTagName(r),a=this.treeAdapter.getNamespaceURI(r);if(i===y.TEMPLATE&&a===le.HTML){t.parent=this.treeAdapter.getTemplateContent(r);break}else if(i===y.TABLE){t.parent=this.treeAdapter.getParentNode(r),t.parent?t.beforeElement=r:t.parent=this.openElements.items[n-1];break}}return t.parent||(t.parent=this.openElements.items[0]),t}_fosterParentElement(t){const n=this._findFosterParentingLocation();n.beforeElement?this.treeAdapter.insertBefore(n.parent,t,n.beforeElement):this.treeAdapter.appendChild(n.parent,t)}_fosterParentText(t){const n=this._findFosterParentingLocation();n.beforeElement?this.treeAdapter.insertTextBefore(n.parent,t,n.beforeElement):this.treeAdapter.insertText(n.parent,t)}_isSpecialElement(t){const n=this.treeAdapter.getTagName(t),r=this.treeAdapter.getNamespaceURI(t);return us.SPECIAL_ELEMENTS[r][n]}}var yQ=bQ;function vQ(e,t){let n=e.activeFormattingElements.getElementEntryInScopeWithTagName(t.tagName);return n?e.openElements.contains(n.element)?e.openElements.hasInScope(t.tagName)||(n=null):(e.activeFormattingElements.removeEntry(n),n=null):oi(e,t),n}function TQ(e,t){let n=null;for(let r=e.openElements.stackTop;r>=0;r--){const i=e.openElements.items[r];if(i===t.element)break;e._isSpecialElement(i)&&(n=i)}return n||(e.openElements.popUntilElementPopped(t.element),e.activeFormattingElements.removeEntry(t)),n}function _Q(e,t,n){let r=t,i=e.openElements.getCommonAncestor(t);for(let a=0,o=i;o!==n;a++,o=i){i=e.openElements.getCommonAncestor(o);const s=e.activeFormattingElements.getElementEntry(o),l=s&&a>=hQ;!s||l?(l&&e.activeFormattingElements.removeEntry(s),e.openElements.remove(o)):(o=SQ(e,s),r===t&&(e.activeFormattingElements.bookmark=s),e.treeAdapter.detachNode(r),e.treeAdapter.appendChild(o,r),r=o)}return r}function SQ(e,t){const n=e.treeAdapter.getNamespaceURI(t.element),r=e.treeAdapter.createElement(t.token.tagName,n,t.token.attrs);return e.openElements.replace(t.element,r),t.element=r,r}function CQ(e,t,n){if(e._isElementCausesFosterParenting(t))e._fosterParentElement(n);else{const r=e.treeAdapter.getTagName(t),i=e.treeAdapter.getNamespaceURI(t);r===y.TEMPLATE&&i===le.HTML&&(t=e.treeAdapter.getTemplateContent(t)),e.treeAdapter.appendChild(t,n)}}function AQ(e,t,n){const r=e.treeAdapter.getNamespaceURI(n.element),i=n.token,a=e.treeAdapter.createElement(i.tagName,r,i.attrs);e._adoptNodes(t,a),e.treeAdapter.appendChild(t,a),e.activeFormattingElements.insertElementAfterBookmark(a,n.token),e.activeFormattingElements.removeEntry(n),e.openElements.remove(n.element),e.openElements.insertAfter(t,a)}function qa(e,t){let n;for(let r=0;r0?(e.openElements.generateImpliedEndTagsThoroughly(),e.openElements.currentTagName!==y.TEMPLATE&&e._err(hn.closingOfElementWithOpenChildElements),e.openElements.popUntilTagNamePopped(y.TEMPLATE),e.activeFormattingElements.clearToLastMarker(),e._popTmplInsertionMode(),e._resetInsertionMode()):e._err(hn.endTagWithoutMatchingOpenElement)}function $u(e,t){e.openElements.pop(),e.insertionMode=of,e._processToken(t)}function xQ(e,t){const n=t.tagName;n===y.HTML?ur(e,t):n===y.BASEFONT||n===y.BGSOUND||n===y.HEAD||n===y.LINK||n===y.META||n===y.NOFRAMES||n===y.STYLE?ln(e,t):n===y.NOSCRIPT?e._err(hn.nestedNoscriptInHead):zu(e,t)}function DQ(e,t){const n=t.tagName;n===y.NOSCRIPT?(e.openElements.pop(),e.insertionMode=Ll):n===y.BR?zu(e,t):e._err(hn.endTagWithoutMatchingOpenElement)}function zu(e,t){const n=t.type===F.EOF_TOKEN?hn.openElementsLeftAfterEof:hn.disallowedContentInNoscriptInHead;e._err(n),e.openElements.pop(),e.insertionMode=Ll,e._processToken(t)}function LQ(e,t){const n=t.tagName;n===y.HTML?ur(e,t):n===y.BODY?(e._insertElement(t,le.HTML),e.framesetOk=!1,e.insertionMode=zi):n===y.FRAMESET?(e._insertElement(t,le.HTML),e.insertionMode=uf):n===y.BASE||n===y.BASEFONT||n===y.BGSOUND||n===y.LINK||n===y.META||n===y.NOFRAMES||n===y.SCRIPT||n===y.STYLE||n===y.TEMPLATE||n===y.TITLE?(e._err(hn.abandonedHeadElementChild),e.openElements.push(e.headElement),ln(e,t),e.openElements.remove(e.headElement)):n===y.HEAD?e._err(hn.misplacedStartTagForHeadElement):qu(e,t)}function FQ(e,t){const n=t.tagName;n===y.BODY||n===y.HTML||n===y.BR?qu(e,t):n===y.TEMPLATE?cs(e,t):e._err(hn.endTagWithoutMatchingOpenElement)}function qu(e,t){e._insertFakeElement(y.BODY),e.insertionMode=zi,e._processToken(t)}function No(e,t){e._reconstructActiveFormattingElements(),e._insertCharacters(t)}function Gd(e,t){e._reconstructActiveFormattingElements(),e._insertCharacters(t),e.framesetOk=!1}function MQ(e,t){e.openElements.tmplCount===0&&e.treeAdapter.adoptAttributes(e.openElements.items[0],t.attrs)}function PQ(e,t){const n=e.openElements.tryPeekProperlyNestedBodyElement();n&&e.openElements.tmplCount===0&&(e.framesetOk=!1,e.treeAdapter.adoptAttributes(n,t.attrs))}function BQ(e,t){const n=e.openElements.tryPeekProperlyNestedBodyElement();e.framesetOk&&n&&(e.treeAdapter.detachNode(n),e.openElements.popAllUpToHtmlElement(),e._insertElement(t,le.HTML),e.insertionMode=uf)}function ra(e,t){e.openElements.hasInButtonScope(y.P)&&e._closePElement(),e._insertElement(t,le.HTML)}function UQ(e,t){e.openElements.hasInButtonScope(y.P)&&e._closePElement();const n=e.openElements.currentTagName;(n===y.H1||n===y.H2||n===y.H3||n===y.H4||n===y.H5||n===y.H6)&&e.openElements.pop(),e._insertElement(t,le.HTML)}function LI(e,t){e.openElements.hasInButtonScope(y.P)&&e._closePElement(),e._insertElement(t,le.HTML),e.skipNextNewLine=!0,e.framesetOk=!1}function HQ(e,t){const n=e.openElements.tmplCount>0;(!e.formElement||n)&&(e.openElements.hasInButtonScope(y.P)&&e._closePElement(),e._insertElement(t,le.HTML),n||(e.formElement=e.openElements.current))}function GQ(e,t){e.framesetOk=!1;const n=t.tagName;for(let r=e.openElements.stackTop;r>=0;r--){const i=e.openElements.items[r],a=e.treeAdapter.getTagName(i);let o=null;if(n===y.LI&&a===y.LI?o=y.LI:(n===y.DD||n===y.DT)&&(a===y.DD||a===y.DT)&&(o=a),o){e.openElements.generateImpliedEndTagsWithExclusion(o),e.openElements.popUntilTagNamePopped(o);break}if(a!==y.ADDRESS&&a!==y.DIV&&a!==y.P&&e._isSpecialElement(i))break}e.openElements.hasInButtonScope(y.P)&&e._closePElement(),e._insertElement(t,le.HTML)}function $Q(e,t){e.openElements.hasInButtonScope(y.P)&&e._closePElement(),e._insertElement(t,le.HTML),e.tokenizer.state=F.MODE.PLAINTEXT}function zQ(e,t){e.openElements.hasInScope(y.BUTTON)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(y.BUTTON)),e._reconstructActiveFormattingElements(),e._insertElement(t,le.HTML),e.framesetOk=!1}function qQ(e,t){const n=e.activeFormattingElements.getElementEntryInScopeWithTagName(y.A);n&&(qa(e,t),e.openElements.remove(n.element),e.activeFormattingElements.removeEntry(n)),e._reconstructActiveFormattingElements(),e._insertElement(t,le.HTML),e.activeFormattingElements.pushElement(e.openElements.current,t)}function As(e,t){e._reconstructActiveFormattingElements(),e._insertElement(t,le.HTML),e.activeFormattingElements.pushElement(e.openElements.current,t)}function jQ(e,t){e._reconstructActiveFormattingElements(),e.openElements.hasInScope(y.NOBR)&&(qa(e,t),e._reconstructActiveFormattingElements()),e._insertElement(t,le.HTML),e.activeFormattingElements.pushElement(e.openElements.current,t)}function FI(e,t){e._reconstructActiveFormattingElements(),e._insertElement(t,le.HTML),e.activeFormattingElements.insertMarker(),e.framesetOk=!1}function WQ(e,t){e.treeAdapter.getDocumentMode(e.document)!==us.DOCUMENT_MODE.QUIRKS&&e.openElements.hasInButtonScope(y.P)&&e._closePElement(),e._insertElement(t,le.HTML),e.framesetOk=!1,e.insertionMode=In}function xs(e,t){e._reconstructActiveFormattingElements(),e._appendElement(t,le.HTML),e.framesetOk=!1,t.ackSelfClosing=!0}function VQ(e,t){e._reconstructActiveFormattingElements(),e._appendElement(t,le.HTML);const n=F.getTokenAttr(t,fF.TYPE);(!n||n.toLowerCase()!==mF)&&(e.framesetOk=!1),t.ackSelfClosing=!0}function MI(e,t){e._appendElement(t,le.HTML),t.ackSelfClosing=!0}function KQ(e,t){e.openElements.hasInButtonScope(y.P)&&e._closePElement(),e._appendElement(t,le.HTML),e.framesetOk=!1,t.ackSelfClosing=!0}function YQ(e,t){t.tagName=y.IMG,xs(e,t)}function XQ(e,t){e._insertElement(t,le.HTML),e.skipNextNewLine=!0,e.tokenizer.state=F.MODE.RCDATA,e.originalInsertionMode=e.insertionMode,e.framesetOk=!1,e.insertionMode=up}function ZQ(e,t){e.openElements.hasInButtonScope(y.P)&&e._closePElement(),e._reconstructActiveFormattingElements(),e.framesetOk=!1,e._switchToTextParsing(t,F.MODE.RAWTEXT)}function QQ(e,t){e.framesetOk=!1,e._switchToTextParsing(t,F.MODE.RAWTEXT)}function PI(e,t){e._switchToTextParsing(t,F.MODE.RAWTEXT)}function JQ(e,t){e._reconstructActiveFormattingElements(),e._insertElement(t,le.HTML),e.framesetOk=!1,e.insertionMode===In||e.insertionMode===sf||e.insertionMode===$r||e.insertionMode===_a||e.insertionMode===lf?e.insertionMode=R_:e.insertionMode=I_}function BI(e,t){e.openElements.currentTagName===y.OPTION&&e.openElements.pop(),e._reconstructActiveFormattingElements(),e._insertElement(t,le.HTML)}function UI(e,t){e.openElements.hasInScope(y.RUBY)&&e.openElements.generateImpliedEndTags(),e._insertElement(t,le.HTML)}function eJ(e,t){e.openElements.hasInScope(y.RUBY)&&e.openElements.generateImpliedEndTagsWithExclusion(y.RTC),e._insertElement(t,le.HTML)}function tJ(e,t){e.openElements.hasInButtonScope(y.P)&&e._closePElement(),e._insertElement(t,le.HTML)}function nJ(e,t){e._reconstructActiveFormattingElements(),Pi.adjustTokenMathMLAttrs(t),Pi.adjustTokenXMLAttrs(t),t.selfClosing?e._appendElement(t,le.MATHML):e._insertElement(t,le.MATHML),t.ackSelfClosing=!0}function rJ(e,t){e._reconstructActiveFormattingElements(),Pi.adjustTokenSVGAttrs(t),Pi.adjustTokenXMLAttrs(t),t.selfClosing?e._appendElement(t,le.SVG):e._insertElement(t,le.SVG),t.ackSelfClosing=!0}function kr(e,t){e._reconstructActiveFormattingElements(),e._insertElement(t,le.HTML)}function ur(e,t){const n=t.tagName;switch(n.length){case 1:n===y.I||n===y.S||n===y.B||n===y.U?As(e,t):n===y.P?ra(e,t):n===y.A?qQ(e,t):kr(e,t);break;case 2:n===y.DL||n===y.OL||n===y.UL?ra(e,t):n===y.H1||n===y.H2||n===y.H3||n===y.H4||n===y.H5||n===y.H6?UQ(e,t):n===y.LI||n===y.DD||n===y.DT?GQ(e,t):n===y.EM||n===y.TT?As(e,t):n===y.BR?xs(e,t):n===y.HR?KQ(e,t):n===y.RB?UI(e,t):n===y.RT||n===y.RP?eJ(e,t):n!==y.TH&&n!==y.TD&&n!==y.TR&&kr(e,t);break;case 3:n===y.DIV||n===y.DIR||n===y.NAV?ra(e,t):n===y.PRE?LI(e,t):n===y.BIG?As(e,t):n===y.IMG||n===y.WBR?xs(e,t):n===y.XMP?ZQ(e,t):n===y.SVG?rJ(e,t):n===y.RTC?UI(e,t):n!==y.COL&&kr(e,t);break;case 4:n===y.HTML?MQ(e,t):n===y.BASE||n===y.LINK||n===y.META?ln(e,t):n===y.BODY?PQ(e,t):n===y.MAIN||n===y.MENU?ra(e,t):n===y.FORM?HQ(e,t):n===y.CODE||n===y.FONT?As(e,t):n===y.NOBR?jQ(e,t):n===y.AREA?xs(e,t):n===y.MATH?nJ(e,t):n===y.MENU?tJ(e,t):n!==y.HEAD&&kr(e,t);break;case 5:n===y.STYLE||n===y.TITLE?ln(e,t):n===y.ASIDE?ra(e,t):n===y.SMALL?As(e,t):n===y.TABLE?WQ(e,t):n===y.EMBED?xs(e,t):n===y.INPUT?VQ(e,t):n===y.PARAM||n===y.TRACK?MI(e,t):n===y.IMAGE?YQ(e,t):n!==y.FRAME&&n!==y.TBODY&&n!==y.TFOOT&&n!==y.THEAD&&kr(e,t);break;case 6:n===y.SCRIPT?ln(e,t):n===y.CENTER||n===y.FIGURE||n===y.FOOTER||n===y.HEADER||n===y.HGROUP||n===y.DIALOG?ra(e,t):n===y.BUTTON?zQ(e,t):n===y.STRIKE||n===y.STRONG?As(e,t):n===y.APPLET||n===y.OBJECT?FI(e,t):n===y.KEYGEN?xs(e,t):n===y.SOURCE?MI(e,t):n===y.IFRAME?QQ(e,t):n===y.SELECT?JQ(e,t):n===y.OPTION?BI(e,t):kr(e,t);break;case 7:n===y.BGSOUND?ln(e,t):n===y.DETAILS||n===y.ADDRESS||n===y.ARTICLE||n===y.SECTION||n===y.SUMMARY?ra(e,t):n===y.LISTING?LI(e,t):n===y.MARQUEE?FI(e,t):n===y.NOEMBED?PI(e,t):n!==y.CAPTION&&kr(e,t);break;case 8:n===y.BASEFONT?ln(e,t):n===y.FRAMESET?BQ(e,t):n===y.FIELDSET?ra(e,t):n===y.TEXTAREA?XQ(e,t):n===y.TEMPLATE?ln(e,t):n===y.NOSCRIPT?e.options.scriptingEnabled?PI(e,t):kr(e,t):n===y.OPTGROUP?BI(e,t):n!==y.COLGROUP&&kr(e,t);break;case 9:n===y.PLAINTEXT?$Q(e,t):kr(e,t);break;case 10:n===y.BLOCKQUOTE||n===y.FIGCAPTION?ra(e,t):kr(e,t);break;default:kr(e,t)}}function iJ(e){e.openElements.hasInScope(y.BODY)&&(e.insertionMode=N_)}function aJ(e,t){e.openElements.hasInScope(y.BODY)&&(e.insertionMode=N_,e._processToken(t))}function Ma(e,t){const n=t.tagName;e.openElements.hasInScope(n)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(n))}function oJ(e){const t=e.openElements.tmplCount>0,n=e.formElement;t||(e.formElement=null),(n||t)&&e.openElements.hasInScope(y.FORM)&&(e.openElements.generateImpliedEndTags(),t?e.openElements.popUntilTagNamePopped(y.FORM):e.openElements.remove(n))}function sJ(e){e.openElements.hasInButtonScope(y.P)||e._insertFakeElement(y.P),e._closePElement()}function lJ(e){e.openElements.hasInListItemScope(y.LI)&&(e.openElements.generateImpliedEndTagsWithExclusion(y.LI),e.openElements.popUntilTagNamePopped(y.LI))}function uJ(e,t){const n=t.tagName;e.openElements.hasInScope(n)&&(e.openElements.generateImpliedEndTagsWithExclusion(n),e.openElements.popUntilTagNamePopped(n))}function cJ(e){e.openElements.hasNumberedHeaderInScope()&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilNumberedHeaderPopped())}function HI(e,t){const n=t.tagName;e.openElements.hasInScope(n)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(n),e.activeFormattingElements.clearToLastMarker())}function dJ(e){e._reconstructActiveFormattingElements(),e._insertFakeElement(y.BR),e.openElements.pop(),e.framesetOk=!1}function oi(e,t){const n=t.tagName;for(let r=e.openElements.stackTop;r>0;r--){const i=e.openElements.items[r];if(e.treeAdapter.getTagName(i)===n){e.openElements.generateImpliedEndTagsWithExclusion(n),e.openElements.popUntilElementPopped(i);break}if(e._isSpecialElement(i))break}}function k_(e,t){const n=t.tagName;switch(n.length){case 1:n===y.A||n===y.B||n===y.I||n===y.S||n===y.U?qa(e,t):n===y.P?sJ(e):oi(e,t);break;case 2:n===y.DL||n===y.UL||n===y.OL?Ma(e,t):n===y.LI?lJ(e):n===y.DD||n===y.DT?uJ(e,t):n===y.H1||n===y.H2||n===y.H3||n===y.H4||n===y.H5||n===y.H6?cJ(e):n===y.BR?dJ(e):n===y.EM||n===y.TT?qa(e,t):oi(e,t);break;case 3:n===y.BIG?qa(e,t):n===y.DIR||n===y.DIV||n===y.NAV||n===y.PRE?Ma(e,t):oi(e,t);break;case 4:n===y.BODY?iJ(e):n===y.HTML?aJ(e,t):n===y.FORM?oJ(e):n===y.CODE||n===y.FONT||n===y.NOBR?qa(e,t):n===y.MAIN||n===y.MENU?Ma(e,t):oi(e,t);break;case 5:n===y.ASIDE?Ma(e,t):n===y.SMALL?qa(e,t):oi(e,t);break;case 6:n===y.CENTER||n===y.FIGURE||n===y.FOOTER||n===y.HEADER||n===y.HGROUP||n===y.DIALOG?Ma(e,t):n===y.APPLET||n===y.OBJECT?HI(e,t):n===y.STRIKE||n===y.STRONG?qa(e,t):oi(e,t);break;case 7:n===y.ADDRESS||n===y.ARTICLE||n===y.DETAILS||n===y.SECTION||n===y.SUMMARY||n===y.LISTING?Ma(e,t):n===y.MARQUEE?HI(e,t):oi(e,t);break;case 8:n===y.FIELDSET?Ma(e,t):n===y.TEMPLATE?cs(e,t):oi(e,t);break;case 10:n===y.BLOCKQUOTE||n===y.FIGCAPTION?Ma(e,t):oi(e,t);break;default:oi(e,t)}}function ia(e,t){e.tmplInsertionModeStackTop>-1?SF(e,t):e.stopped=!0}function pJ(e,t){t.tagName===y.SCRIPT&&(e.pendingScript=e.openElements.current),e.openElements.pop(),e.insertionMode=e.originalInsertionMode}function fJ(e,t){e._err(hn.eofInElementThatCanContainOnlyText),e.openElements.pop(),e.insertionMode=e.originalInsertionMode,e._processToken(t)}function aa(e,t){const n=e.openElements.currentTagName;n===y.TABLE||n===y.TBODY||n===y.TFOOT||n===y.THEAD||n===y.TR?(e.pendingCharacterTokens=[],e.hasNonWhitespacePendingCharacterToken=!1,e.originalInsertionMode=e.insertionMode,e.insertionMode=EF,e._processToken(t)):xr(e,t)}function mJ(e,t){e.openElements.clearBackToTableContext(),e.activeFormattingElements.insertMarker(),e._insertElement(t,le.HTML),e.insertionMode=sf}function hJ(e,t){e.openElements.clearBackToTableContext(),e._insertElement(t,le.HTML),e.insertionMode=qc}function gJ(e,t){e.openElements.clearBackToTableContext(),e._insertFakeElement(y.COLGROUP),e.insertionMode=qc,e._processToken(t)}function EJ(e,t){e.openElements.clearBackToTableContext(),e._insertElement(t,le.HTML),e.insertionMode=$r}function bJ(e,t){e.openElements.clearBackToTableContext(),e._insertFakeElement(y.TBODY),e.insertionMode=$r,e._processToken(t)}function yJ(e,t){e.openElements.hasInTableScope(y.TABLE)&&(e.openElements.popUntilTagNamePopped(y.TABLE),e._resetInsertionMode(),e._processToken(t))}function vJ(e,t){const n=F.getTokenAttr(t,fF.TYPE);n&&n.toLowerCase()===mF?e._appendElement(t,le.HTML):xr(e,t),t.ackSelfClosing=!0}function TJ(e,t){!e.formElement&&e.openElements.tmplCount===0&&(e._insertElement(t,le.HTML),e.formElement=e.openElements.current,e.openElements.pop())}function w_(e,t){const n=t.tagName;switch(n.length){case 2:n===y.TD||n===y.TH||n===y.TR?bJ(e,t):xr(e,t);break;case 3:n===y.COL?gJ(e,t):xr(e,t);break;case 4:n===y.FORM?TJ(e,t):xr(e,t);break;case 5:n===y.TABLE?yJ(e,t):n===y.STYLE?ln(e,t):n===y.TBODY||n===y.TFOOT||n===y.THEAD?EJ(e,t):n===y.INPUT?vJ(e,t):xr(e,t);break;case 6:n===y.SCRIPT?ln(e,t):xr(e,t);break;case 7:n===y.CAPTION?mJ(e,t):xr(e,t);break;case 8:n===y.COLGROUP?hJ(e,t):n===y.TEMPLATE?ln(e,t):xr(e,t);break;default:xr(e,t)}}function O_(e,t){const n=t.tagName;n===y.TABLE?e.openElements.hasInTableScope(y.TABLE)&&(e.openElements.popUntilTagNamePopped(y.TABLE),e._resetInsertionMode()):n===y.TEMPLATE?cs(e,t):n!==y.BODY&&n!==y.CAPTION&&n!==y.COL&&n!==y.COLGROUP&&n!==y.HTML&&n!==y.TBODY&&n!==y.TD&&n!==y.TFOOT&&n!==y.TH&&n!==y.THEAD&&n!==y.TR&&xr(e,t)}function xr(e,t){const n=e.fosterParentingEnabled;e.fosterParentingEnabled=!0,e._processTokenInBodyMode(t),e.fosterParentingEnabled=n}function _J(e,t){e.pendingCharacterTokens.push(t)}function SJ(e,t){e.pendingCharacterTokens.push(t),e.hasNonWhitespacePendingCharacterToken=!0}function uu(e,t){let n=0;if(e.hasNonWhitespacePendingCharacterToken)for(;n0?(e.openElements.popUntilTagNamePopped(y.TEMPLATE),e.activeFormattingElements.clearToLastMarker(),e._popTmplInsertionMode(),e._resetInsertionMode(),e._processToken(t)):e.stopped=!0}function BJ(e,t){t.tagName===y.HTML?ur(e,t):pp(e,t)}function UJ(e,t){t.tagName===y.HTML?e.fragmentContext||(e.insertionMode=yF):pp(e,t)}function pp(e,t){e.insertionMode=zi,e._processToken(t)}function HJ(e,t){const n=t.tagName;n===y.HTML?ur(e,t):n===y.FRAMESET?e._insertElement(t,le.HTML):n===y.FRAME?(e._appendElement(t,le.HTML),t.ackSelfClosing=!0):n===y.NOFRAMES&&ln(e,t)}function GJ(e,t){t.tagName===y.FRAMESET&&!e.openElements.isRootHtmlElementCurrent()&&(e.openElements.pop(),!e.fragmentContext&&e.openElements.currentTagName!==y.FRAMESET&&(e.insertionMode=bF))}function $J(e,t){const n=t.tagName;n===y.HTML?ur(e,t):n===y.NOFRAMES&&ln(e,t)}function zJ(e,t){t.tagName===y.HTML&&(e.insertionMode=vF)}function qJ(e,t){t.tagName===y.HTML?ur(e,t):m1(e,t)}function m1(e,t){e.insertionMode=zi,e._processToken(t)}function jJ(e,t){const n=t.tagName;n===y.HTML?ur(e,t):n===y.NOFRAMES&&ln(e,t)}function WJ(e,t){t.chars=pQ.REPLACEMENT_CHARACTER,e._insertCharacters(t)}function VJ(e,t){e._insertCharacters(t),e.framesetOk=!1}function KJ(e,t){if(Pi.causesExit(t)&&!e.fragmentContext){for(;e.treeAdapter.getNamespaceURI(e.openElements.current)!==le.HTML&&!e._isIntegrationPoint(e.openElements.current);)e.openElements.pop();e._processToken(t)}else{const n=e._getAdjustedCurrentElement(),r=e.treeAdapter.getNamespaceURI(n);r===le.MATHML?Pi.adjustTokenMathMLAttrs(t):r===le.SVG&&(Pi.adjustTokenSVGTagName(t),Pi.adjustTokenSVGAttrs(t)),Pi.adjustTokenXMLAttrs(t),t.selfClosing?e._appendElement(t,r):e._insertElement(t,r),t.ackSelfClosing=!0}}function YJ(e,t){for(let n=e.openElements.stackTop;n>0;n--){const r=e.openElements.items[n];if(e.treeAdapter.getNamespaceURI(r)===le.HTML){e._processToken(t);break}if(e.treeAdapter.getTagName(r).toLowerCase()===t.tagName){e.openElements.popUntilElementPopped(r);break}}}const GI=/[#.]/g;function XJ(e,t){const n=e||"",r={};let i=0,a,o;for(;i-1&&oo)return{line:s+1,column:o-(s>0?n[s-1]:0)+1,offset:o}}return{line:void 0,column:void 0,offset:void 0}}function a(o){const s=o&&o.line,l=o&&o.column;if(typeof s=="number"&&typeof l=="number"&&!Number.isNaN(s)&&!Number.isNaN(l)&&s-1 in n){const u=(n[s-2]||0)+l-1||0;if(u>-1&&u{const R=C;if(R.value.stitch&&O!==null&&N!==null)return O.children[N]=R.value.stitch,N}),e.type!=="root"&&d.type==="root"&&d.children.length===1)return d.children[0];return d;function p(){const C={nodeName:"template",tagName:"template",attrs:[],namespaceURI:_c.html,childNodes:[]},N={nodeName:"documentmock",tagName:"documentmock",attrs:[],namespaceURI:_c.html,childNodes:[]},O={nodeName:"#document-fragment",childNodes:[]};if(i._bootstrap(N,C),i._pushTmplInsertionMode(Tee),i._initTokenizerForFragmentParsing(),i._insertFakeRootElement(),i._resetInsertionMode(),i._findFormInFragmentContext(),s=i.tokenizer,!s)throw new Error("Expected `tokenizer`");return l=s.preprocessor,c=s.__mixins[0],u=c.posTracker,a(e),S(),i._adoptNodes(N.childNodes[0],O),O}function f(){const C=i.treeAdapter.createDocument();if(i._bootstrap(C,void 0),s=i.tokenizer,!s)throw new Error("Expected `tokenizer`");return l=s.preprocessor,c=s.__mixins[0],u=c.posTracker,a(e),S(),C}function m(C){let N=-1;if(C)for(;++NkF(t,n,e)}function Mee(){const e=["a","b","c","d","e","f","0","1","2","3","4","5","6","7","8","9"];let t=[];for(let n=0;n<36;n++)n===8||n===13||n===18||n===23?t[n]="-":t[n]=e[Math.ceil(Math.random()*e.length-1)];return t.join("")}var oa=Mee,Pee=typeof global=="object"&&global&&global.Object===Object&&global;const wF=Pee;var Bee=typeof self=="object"&&self&&self.Object===Object&&self,Uee=wF||Bee||Function("return this")();const Yi=Uee;var Hee=Yi.Symbol;const Tl=Hee;var OF=Object.prototype,Gee=OF.hasOwnProperty,$ee=OF.toString,cu=Tl?Tl.toStringTag:void 0;function zee(e){var t=Gee.call(e,cu),n=e[cu];try{e[cu]=void 0;var r=!0}catch{}var i=$ee.call(e);return r&&(t?e[cu]=n:delete e[cu]),i}var qee=Object.prototype,jee=qee.toString;function Wee(e){return jee.call(e)}var Vee="[object Null]",Kee="[object Undefined]",jI=Tl?Tl.toStringTag:void 0;function jc(e){return e==null?e===void 0?Kee:Vee:jI&&jI in Object(e)?zee(e):Wee(e)}function Wc(e){return e!=null&&typeof e=="object"}var Yee=Array.isArray;const cf=Yee;function Vc(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Xee="[object AsyncFunction]",Zee="[object Function]",Qee="[object GeneratorFunction]",Jee="[object Proxy]";function xF(e){if(!Vc(e))return!1;var t=jc(e);return t==Zee||t==Qee||t==Xee||t==Jee}var ete=Yi["__core-js_shared__"];const Qm=ete;var WI=function(){var e=/[^.]+$/.exec(Qm&&Qm.keys&&Qm.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function tte(e){return!!WI&&WI in e}var nte=Function.prototype,rte=nte.toString;function ds(e){if(e!=null){try{return rte.call(e)}catch{}try{return e+""}catch{}}return""}var ite=/[\\^$.*+?()[\]{}|]/g,ate=/^\[object .+?Constructor\]$/,ote=Function.prototype,ste=Object.prototype,lte=ote.toString,ute=ste.hasOwnProperty,cte=RegExp("^"+lte.call(ute).replace(ite,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function dte(e){if(!Vc(e)||tte(e))return!1;var t=xF(e)?cte:ate;return t.test(ds(e))}function pte(e,t){return e==null?void 0:e[t]}function ps(e,t){var n=pte(e,t);return dte(n)?n:void 0}var fte=ps(Yi,"WeakMap");const xv=fte;var VI=Object.create,mte=function(){function e(){}return function(t){if(!Vc(t))return{};if(VI)return VI(t);e.prototype=t;var n=new e;return e.prototype=void 0,n}}();const hte=mte;function gte(e,t){var n=-1,r=e.length;for(t||(t=Array(r));++n-1&&e%1==0&&e-1&&e%1==0&&e<=Cte}function L_(e){return e!=null&&MF(e.length)&&!xF(e)}var Ate=Object.prototype;function pf(e){var t=e&&e.constructor,n=typeof t=="function"&&t.prototype||Ate;return e===n}function Ite(e,t){for(var n=-1,r=Array(e);++n-1}function Pne(e,t){var n=this.__data__,r=ff(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}function Na(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t1?n-1:0),i=1;i2&&arguments[2]!==void 0?arguments[2]:E1;fR&&fR(e,null);let r=t.length;for(;r--;){let i=t[r];if(typeof i=="string"){const a=n(i);a!==i&&(Bie(t)||(t[r]=a),i=a)}e[i]=!0}return e}function qie(e){for(let t=0;t/gm),Yie=bi(/\${[\w\W]*}/gm),Xie=bi(/^data-[\-\w.\u00B7-\uFFFF]/),Zie=bi(/^aria-[\-\w]+$/),n8=bi(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),Qie=bi(/^(?:\w+script|data):/i),Jie=bi(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),r8=bi(/^html$/i);var yR=Object.freeze({__proto__:null,MUSTACHE_EXPR:Vie,ERB_EXPR:Kie,TMPLIT_EXPR:Yie,DATA_ATTR:Xie,ARIA_ATTR:Zie,IS_ALLOWED_URI:n8,IS_SCRIPT_OR_DATA:Qie,ATTR_WHITESPACE:Jie,DOCTYPE_NAME:r8});const eae=function(){return typeof window>"u"?null:window},tae=function(t,n){if(typeof t!="object"||typeof t.createPolicy!="function")return null;let r=null;const i="data-tt-policy-suffix";n&&n.hasAttribute(i)&&(r=n.getAttribute(i));const a="dompurify"+(r?"#"+r:"");try{return t.createPolicy(a,{createHTML(o){return o},createScriptURL(o){return o}})}catch{return console.warn("TrustedTypes policy "+a+" could not be created."),null}};function i8(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:eae();const t=j=>i8(j);if(t.version="3.0.8",t.removed=[],!e||!e.document||e.document.nodeType!==9)return t.isSupported=!1,t;let{document:n}=e;const r=n,i=r.currentScript,{DocumentFragment:a,HTMLTemplateElement:o,Node:s,Element:l,NodeFilter:u,NamedNodeMap:c=e.NamedNodeMap||e.MozNamedAttrMap,HTMLFormElement:d,DOMParser:p,trustedTypes:f}=e,m=l.prototype,g=zd(m,"cloneNode"),_=zd(m,"nextSibling"),h=zd(m,"childNodes"),E=zd(m,"parentNode");if(typeof o=="function"){const j=n.createElement("template");j.content&&j.content.ownerDocument&&(n=j.content.ownerDocument)}let b,T="";const{implementation:A,createNodeIterator:S,createDocumentFragment:C,getElementsByTagName:N}=n,{importNode:O}=r;let R={};t.isSupported=typeof e8=="function"&&typeof E=="function"&&A&&A.createHTMLDocument!==void 0;const{MUSTACHE_EXPR:P,ERB_EXPR:B,TMPLIT_EXPR:K,DATA_ATTR:W,ARIA_ATTR:z,IS_SCRIPT_OR_DATA:V,ATTR_WHITESPACE:H}=yR;let{IS_ALLOWED_URI:L}=yR,U=null;const $=Fe({},[...hR,...th,...nh,...rh,...gR]);let I=null;const k=Fe({},[...ER,...ih,...bR,...qd]);let ce=Object.seal(t8(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),me=null,xe=null,pe=!0,Ie=!0,nt=!1,ot=!0,Ge=!1,Xe=!1,$t=!1,Pt=!1,tn=!1,bn=!1,nn=!1,zt=!0,ae=!1;const ke="user-content-";let ve=!0,Be=!1,Ne={},At=null;const Ae=Fe({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]);let yn=null;const wn=Fe({},["audio","video","img","source","image","track"]);let q=null;const Z=Fe({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),se="http://www.w3.org/1998/Math/MathML",ge="http://www.w3.org/2000/svg",Q="http://www.w3.org/1999/xhtml";let Ze=Q,qt=!1,St=null;const Dt=Fe({},[se,ge,Q],eh);let Oe=null;const Te=["application/xhtml+xml","text/html"],Bt="text/html";let ue=null,ze=null;const Zi=n.createElement("form"),ka=function(M){return M instanceof RegExp||M instanceof Function},Qr=function(){let M=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!(ze&&ze===M)){if((!M||typeof M!="object")&&(M={}),M=Lo(M),Oe=Te.indexOf(M.PARSER_MEDIA_TYPE)===-1?Bt:M.PARSER_MEDIA_TYPE,ue=Oe==="application/xhtml+xml"?eh:E1,U="ALLOWED_TAGS"in M?Fe({},M.ALLOWED_TAGS,ue):$,I="ALLOWED_ATTR"in M?Fe({},M.ALLOWED_ATTR,ue):k,St="ALLOWED_NAMESPACES"in M?Fe({},M.ALLOWED_NAMESPACES,eh):Dt,q="ADD_URI_SAFE_ATTR"in M?Fe(Lo(Z),M.ADD_URI_SAFE_ATTR,ue):Z,yn="ADD_DATA_URI_TAGS"in M?Fe(Lo(wn),M.ADD_DATA_URI_TAGS,ue):wn,At="FORBID_CONTENTS"in M?Fe({},M.FORBID_CONTENTS,ue):Ae,me="FORBID_TAGS"in M?Fe({},M.FORBID_TAGS,ue):{},xe="FORBID_ATTR"in M?Fe({},M.FORBID_ATTR,ue):{},Ne="USE_PROFILES"in M?M.USE_PROFILES:!1,pe=M.ALLOW_ARIA_ATTR!==!1,Ie=M.ALLOW_DATA_ATTR!==!1,nt=M.ALLOW_UNKNOWN_PROTOCOLS||!1,ot=M.ALLOW_SELF_CLOSE_IN_ATTR!==!1,Ge=M.SAFE_FOR_TEMPLATES||!1,Xe=M.WHOLE_DOCUMENT||!1,tn=M.RETURN_DOM||!1,bn=M.RETURN_DOM_FRAGMENT||!1,nn=M.RETURN_TRUSTED_TYPE||!1,Pt=M.FORCE_BODY||!1,zt=M.SANITIZE_DOM!==!1,ae=M.SANITIZE_NAMED_PROPS||!1,ve=M.KEEP_CONTENT!==!1,Be=M.IN_PLACE||!1,L=M.ALLOWED_URI_REGEXP||n8,Ze=M.NAMESPACE||Q,ce=M.CUSTOM_ELEMENT_HANDLING||{},M.CUSTOM_ELEMENT_HANDLING&&ka(M.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(ce.tagNameCheck=M.CUSTOM_ELEMENT_HANDLING.tagNameCheck),M.CUSTOM_ELEMENT_HANDLING&&ka(M.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(ce.attributeNameCheck=M.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),M.CUSTOM_ELEMENT_HANDLING&&typeof M.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements=="boolean"&&(ce.allowCustomizedBuiltInElements=M.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),Ge&&(Ie=!1),bn&&(tn=!0),Ne&&(U=Fe({},gR),I=[],Ne.html===!0&&(Fe(U,hR),Fe(I,ER)),Ne.svg===!0&&(Fe(U,th),Fe(I,ih),Fe(I,qd)),Ne.svgFilters===!0&&(Fe(U,nh),Fe(I,ih),Fe(I,qd)),Ne.mathMl===!0&&(Fe(U,rh),Fe(I,bR),Fe(I,qd))),M.ADD_TAGS&&(U===$&&(U=Lo(U)),Fe(U,M.ADD_TAGS,ue)),M.ADD_ATTR&&(I===k&&(I=Lo(I)),Fe(I,M.ADD_ATTR,ue)),M.ADD_URI_SAFE_ATTR&&Fe(q,M.ADD_URI_SAFE_ATTR,ue),M.FORBID_CONTENTS&&(At===Ae&&(At=Lo(At)),Fe(At,M.FORBID_CONTENTS,ue)),ve&&(U["#text"]=!0),Xe&&Fe(U,["html","head","body"]),U.table&&(Fe(U,["tbody"]),delete me.tbody),M.TRUSTED_TYPES_POLICY){if(typeof M.TRUSTED_TYPES_POLICY.createHTML!="function")throw mu('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof M.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw mu('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');b=M.TRUSTED_TYPES_POLICY,T=b.createHTML("")}else b===void 0&&(b=tae(f,i)),b!==null&&typeof T=="string"&&(T=b.createHTML(""));Wn&&Wn(M),ze=M}},Qi=Fe({},["mi","mo","mn","ms","mtext"]),Ti=Fe({},["foreignobject","desc","title","annotation-xml"]),On=Fe({},["title","style","font","a","script"]),_i=Fe({},[...th,...nh,...jie]),We=Fe({},[...rh,...Wie]),de=function(M){let Y=E(M);(!Y||!Y.tagName)&&(Y={namespaceURI:Ze,tagName:"template"});const ne=E1(M.tagName),Re=E1(Y.tagName);return St[M.namespaceURI]?M.namespaceURI===ge?Y.namespaceURI===Q?ne==="svg":Y.namespaceURI===se?ne==="svg"&&(Re==="annotation-xml"||Qi[Re]):Boolean(_i[ne]):M.namespaceURI===se?Y.namespaceURI===Q?ne==="math":Y.namespaceURI===ge?ne==="math"&&Ti[Re]:Boolean(We[ne]):M.namespaceURI===Q?Y.namespaceURI===ge&&!Ti[Re]||Y.namespaceURI===se&&!Qi[Re]?!1:!We[ne]&&(On[ne]||!_i[ne]):!!(Oe==="application/xhtml+xml"&&St[M.namespaceURI]):!1},Ut=function(M){pu(t.removed,{element:M});try{M.parentNode.removeChild(M)}catch{M.remove()}},Rr=function(M,Y){try{pu(t.removed,{attribute:Y.getAttributeNode(M),from:Y})}catch{pu(t.removed,{attribute:null,from:Y})}if(Y.removeAttribute(M),M==="is"&&!I[M])if(tn||bn)try{Ut(Y)}catch{}else try{Y.setAttribute(M,"")}catch{}},Jr=function(M){let Y=null,ne=null;if(Pt)M=""+M;else{const Se=Hie(M,/^[\r\n\t ]+/);ne=Se&&Se[0]}Oe==="application/xhtml+xml"&&Ze===Q&&(M=''+M+"");const Re=b?b.createHTML(M):M;if(Ze===Q)try{Y=new p().parseFromString(Re,Oe)}catch{}if(!Y||!Y.documentElement){Y=A.createDocument(Ze,"template",null);try{Y.documentElement.innerHTML=qt?T:Re}catch{}}const Ke=Y.body||Y.documentElement;return M&&ne&&Ke.insertBefore(n.createTextNode(ne),Ke.childNodes[0]||null),Ze===Q?N.call(Y,Xe?"html":"body")[0]:Xe?Y.documentElement:Ke},rn=function(M){return S.call(M.ownerDocument||M,M,u.SHOW_ELEMENT|u.SHOW_COMMENT|u.SHOW_TEXT,null)},Tf=function(M){return M instanceof d&&(typeof M.nodeName!="string"||typeof M.textContent!="string"||typeof M.removeChild!="function"||!(M.attributes instanceof c)||typeof M.removeAttribute!="function"||typeof M.setAttribute!="function"||typeof M.namespaceURI!="string"||typeof M.insertBefore!="function"||typeof M.hasChildNodes!="function")},Ul=function(M){return typeof s=="function"&&M instanceof s},Nr=function(M,Y,ne){R[M]&&$d(R[M],Re=>{Re.call(t,Y,ne,ze)})},hs=function(M){let Y=null;if(Nr("beforeSanitizeElements",M,null),Tf(M))return Ut(M),!0;const ne=ue(M.nodeName);if(Nr("uponSanitizeElement",M,{tagName:ne,allowedTags:U}),M.hasChildNodes()&&!Ul(M.firstElementChild)&&pr(/<[/\w]/g,M.innerHTML)&&pr(/<[/\w]/g,M.textContent))return Ut(M),!0;if(!U[ne]||me[ne]){if(!me[ne]&&vo(ne)&&(ce.tagNameCheck instanceof RegExp&&pr(ce.tagNameCheck,ne)||ce.tagNameCheck instanceof Function&&ce.tagNameCheck(ne)))return!1;if(ve&&!At[ne]){const Re=E(M)||M.parentNode,Ke=h(M)||M.childNodes;if(Ke&&Re){const Se=Ke.length;for(let rt=Se-1;rt>=0;--rt)Re.insertBefore(g(Ke[rt],!0),_(M))}}return Ut(M),!0}return M instanceof l&&!de(M)||(ne==="noscript"||ne==="noembed"||ne==="noframes")&&pr(/<\/no(script|embed|frames)/i,M.innerHTML)?(Ut(M),!0):(Ge&&M.nodeType===3&&(Y=M.textContent,$d([P,B,K],Re=>{Y=fu(Y,Re," ")}),M.textContent!==Y&&(pu(t.removed,{element:M.cloneNode()}),M.textContent=Y)),Nr("afterSanitizeElements",M,null),!1)},Hl=function(M,Y,ne){if(zt&&(Y==="id"||Y==="name")&&(ne in n||ne in Zi))return!1;if(!(Ie&&!xe[Y]&&pr(W,Y))){if(!(pe&&pr(z,Y))){if(!I[Y]||xe[Y]){if(!(vo(M)&&(ce.tagNameCheck instanceof RegExp&&pr(ce.tagNameCheck,M)||ce.tagNameCheck instanceof Function&&ce.tagNameCheck(M))&&(ce.attributeNameCheck instanceof RegExp&&pr(ce.attributeNameCheck,Y)||ce.attributeNameCheck instanceof Function&&ce.attributeNameCheck(Y))||Y==="is"&&ce.allowCustomizedBuiltInElements&&(ce.tagNameCheck instanceof RegExp&&pr(ce.tagNameCheck,ne)||ce.tagNameCheck instanceof Function&&ce.tagNameCheck(ne))))return!1}else if(!q[Y]){if(!pr(L,fu(ne,H,""))){if(!((Y==="src"||Y==="xlink:href"||Y==="href")&&M!=="script"&&Gie(ne,"data:")===0&&yn[M])){if(!(nt&&!pr(V,fu(ne,H,"")))){if(ne)return!1}}}}}}return!0},vo=function(M){return M.indexOf("-")>0},Xc=function(M){Nr("beforeSanitizeAttributes",M,null);const{attributes:Y}=M;if(!Y)return;const ne={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:I};let Re=Y.length;for(;Re--;){const Ke=Y[Re],{name:Se,namespaceURI:rt,value:Ye}=Ke,Kt=ue(Se);let ft=Se==="value"?Ye:$ie(Ye);if(ne.attrName=Kt,ne.attrValue=ft,ne.keepAttr=!0,ne.forceKeepAttr=void 0,Nr("uponSanitizeAttribute",M,ne),ft=ne.attrValue,ne.forceKeepAttr||(Rr(Se,M),!ne.keepAttr))continue;if(!ot&&pr(/\/>/i,ft)){Rr(Se,M);continue}Ge&&$d([P,B,K],To=>{ft=fu(ft,To," ")});const Si=ue(M.nodeName);if(Hl(Si,Kt,ft)){if(ae&&(Kt==="id"||Kt==="name")&&(Rr(Se,M),ft=ke+ft),b&&typeof f=="object"&&typeof f.getAttributeType=="function"&&!rt)switch(f.getAttributeType(Si,Kt)){case"TrustedHTML":{ft=b.createHTML(ft);break}case"TrustedScriptURL":{ft=b.createScriptURL(ft);break}}try{rt?M.setAttributeNS(rt,Se,ft):M.setAttribute(Se,ft),mR(t.removed)}catch{}}}Nr("afterSanitizeAttributes",M,null)},_f=function j(M){let Y=null;const ne=rn(M);for(Nr("beforeSanitizeShadowDOM",M,null);Y=ne.nextNode();)Nr("uponSanitizeShadowNode",Y,null),!hs(Y)&&(Y.content instanceof a&&j(Y.content),Xc(Y));Nr("afterSanitizeShadowDOM",M,null)};return t.sanitize=function(j){let M=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},Y=null,ne=null,Re=null,Ke=null;if(qt=!j,qt&&(j=""),typeof j!="string"&&!Ul(j))if(typeof j.toString=="function"){if(j=j.toString(),typeof j!="string")throw mu("dirty is not a string, aborting")}else throw mu("toString is not a function");if(!t.isSupported)return j;if($t||Qr(M),t.removed=[],typeof j=="string"&&(Be=!1),Be){if(j.nodeName){const Ye=ue(j.nodeName);if(!U[Ye]||me[Ye])throw mu("root node is forbidden and cannot be sanitized in-place")}}else if(j instanceof s)Y=Jr(""),ne=Y.ownerDocument.importNode(j,!0),ne.nodeType===1&&ne.nodeName==="BODY"||ne.nodeName==="HTML"?Y=ne:Y.appendChild(ne);else{if(!tn&&!Ge&&!Xe&&j.indexOf("<")===-1)return b&&nn?b.createHTML(j):j;if(Y=Jr(j),!Y)return tn?null:nn?T:""}Y&&Pt&&Ut(Y.firstChild);const Se=rn(Be?j:Y);for(;Re=Se.nextNode();)hs(Re)||(Re.content instanceof a&&_f(Re.content),Xc(Re));if(Be)return j;if(tn){if(bn)for(Ke=C.call(Y.ownerDocument);Y.firstChild;)Ke.appendChild(Y.firstChild);else Ke=Y;return(I.shadowroot||I.shadowrootmode)&&(Ke=O.call(r,Ke,!0)),Ke}let rt=Xe?Y.outerHTML:Y.innerHTML;return Xe&&U["!doctype"]&&Y.ownerDocument&&Y.ownerDocument.doctype&&Y.ownerDocument.doctype.name&&pr(r8,Y.ownerDocument.doctype.name)&&(rt=" -`+rt),Ge&&$d([P,B,K],Ye=>{rt=fu(rt,Ye," ")}),b&&nn?b.createHTML(rt):rt},t.setConfig=function(){let j=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Qr(j),$t=!0},t.clearConfig=function(){ze=null,$t=!1},t.isValidAttribute=function(j,M,Y){ze||Qr({});const ne=ue(j),Re=ue(M);return Hl(ne,Re,Y)},t.addHook=function(j,M){typeof M=="function"&&(R[j]=R[j]||[],pu(R[j],M))},t.removeHook=function(j){if(R[j])return mR(R[j])},t.removeHooks=function(j){R[j]&&(R[j]=[])},t.removeAllHooks=function(){R={}},t}var a8=i8();const nae="_container_m3enm_1",rae="_chatRoot_m3enm_8",iae="_chatContainer_m3enm_18",aae="_chatEmptyState_m3enm_30",oae="_chatEmptyStateTitle_m3enm_38",sae="_chatEmptyStateSubtitle_m3enm_50",lae="_chatIcon_m3enm_62",uae="_chatMessageStream_m3enm_67",cae="_chatMessageUser_m3enm_79",dae="_chatMessageUserMessage_m3enm_85",pae="_chatMessageGpt_m3enm_103",fae="_chatMessageError_m3enm_109",mae="_chatMessageErrorContent_m3enm_121",hae="_chatInput_m3enm_133",gae="_clearChatBroom_m3enm_146",Eae="_clearChatBroomNoCosmos_m3enm_162",bae="_newChatIcon_m3enm_178",yae="_stopGeneratingContainer_m3enm_194",vae="_stopGeneratingIcon_m3enm_211",Tae="_stopGeneratingText_m3enm_217",_ae="_citationPanel_m3enm_232",Sae="_citationPanelHeaderContainer_m3enm_250",Cae="_citationPanelHeader_m3enm_250",Aae="_citationPanelDismiss_m3enm_265",Iae="_citationPanelTitle_m3enm_276",Rae="_citationPanelContent_m3enm_291",Nae="_viewSourceButton_m3enm_308",qe={container:nae,chatRoot:rae,chatContainer:iae,chatEmptyState:aae,chatEmptyStateTitle:oae,chatEmptyStateSubtitle:sae,chatIcon:lae,chatMessageStream:uae,chatMessageUser:cae,chatMessageUserMessage:dae,chatMessageGpt:pae,chatMessageError:fae,chatMessageErrorContent:mae,chatInput:hae,clearChatBroom:gae,clearChatBroomNoCosmos:Eae,newChatIcon:bae,stopGeneratingContainer:yae,stopGeneratingIcon:vae,stopGeneratingText:Tae,citationPanel:_ae,citationPanelHeaderContainer:Sae,citationPanelHeader:Cae,citationPanelDismiss:Aae,citationPanelTitle:Iae,citationPanelContent:Rae,viewSourceButton:Nae},o8=["iframe","a","img","svg","h1","h2","h3","h4","h5","h6","div","p","span","small","del","img","pictrue","embed","video","audio","i","u","sup","sub","strong","strike","code","pre","body","section","article","footer","table","tr","td","th","thead","tbody","tfooter","ul","ol","li"],kae="_answerContainer_1io9c_1",wae="_answerText_1io9c_12",Oae="_answerHeader_1io9c_29",xae="_answerFooter_1io9c_33",Dae="_answerDisclaimerContainer_1io9c_42",Lae="_answerDisclaimer_1io9c_42",Fae="_citationWrapper_1io9c_62",Mae="_citationContainer_1io9c_70",Pae="_citation_1io9c_62",Bae="_accordionIcon_1io9c_120",Uae="_accordionTitle_1io9c_135",Hae="_clickableSup_1io9c_151",ii={answerContainer:kae,answerText:wae,answerHeader:Oae,answerFooter:xae,answerDisclaimerContainer:Dae,answerDisclaimer:Lae,citationWrapper:Fae,citationContainer:Mae,citation:Pae,accordionIcon:Bae,accordionTitle:Uae,clickableSup:Hae},Gae=e=>{const t=new Map;for(const n of e){const{filepath:r}=n;let i=1;t.has(r)&&(i=t.get(r)+1),t.set(r,i),n.part_index=i}return e};function $ae(e){let t=e.answer;const n=t.match(/\[(doc\d\d?\d?)]/g),r=4;let i=[],a=0;return n==null||n.forEach(o=>{let s=o.slice(r,o.length-1),l=Die(e.citations[Number(s)-1]);!i.find(u=>u.id===s)&&l&&(t=t.replaceAll(o,` ^${++a}^ `),l.id=s,l.reindex_id=a.toString(),i.push(l))}),i=Gae(i),{citations:i,markdownFormatText:t}}function zae(){return e=>{vl(e,["text"],(t,n,r)=>{if(t.type!=="text")return;const{value:i}=t,a=i.split(/\^/);if(a.length===1||a.length%2===0)return;const o=a.map((s,l)=>l%2===0?{type:"text",value:s}:{type:"superscript",data:{hName:"sup"},children:[{type:"text",value:s}]});r.children.splice(n,1,...o)}),vl(e,["text"],(t,n,r)=>{if(t.type!=="text")return;const{value:i}=t,a=i.split(/\~/);if(a.length===1||a.length%2===0)return;const o=a.map((s,l)=>l%2===0?{type:"text",value:s}:{type:"subscript",data:{hName:"sub"},children:[{type:"text",value:s}]});r.children.splice(n,1,...o)})}}function qae(e,t){if(e==null)return{};var n={},r=Object.keys(e),i,a;for(a=0;a=0)&&(n[i]=e[i]);return n}function jae(e,t){if(e==null)return{};var n=qae(e,t),r,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Bv(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n{rt=fu(rt,Ye," ")}),b&&nn?b.createHTML(rt):rt},t.setConfig=function(){let j=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Qr(j),$t=!0},t.clearConfig=function(){ze=null,$t=!1},t.isValidAttribute=function(j,M,Y){ze||Qr({});const ne=ue(j),Re=ue(M);return Hl(ne,Re,Y)},t.addHook=function(j,M){typeof M=="function"&&(R[j]=R[j]||[],pu(R[j],M))},t.removeHook=function(j){if(R[j])return mR(R[j])},t.removeHooks=function(j){R[j]&&(R[j]=[])},t.removeAllHooks=function(){R={}},t}var a8=i8();const nae="_container_1cytq_1",rae="_chatRoot_1cytq_8",iae="_chatContainer_1cytq_18",aae="_chatEmptyState_1cytq_30",oae="_chatEmptyStateTitle_1cytq_38",sae="_chatEmptyStateSubtitle_1cytq_50",lae="_chatIcon_1cytq_62",uae="_chatMessageStream_1cytq_67",cae="_chatMessageUser_1cytq_79",dae="_chatMessageUserMessage_1cytq_85",pae="_chatMessageGpt_1cytq_104",fae="_chatMessageError_1cytq_110",mae="_chatMessageErrorContent_1cytq_122",hae="_chatInput_1cytq_134",gae="_clearChatBroom_1cytq_147",Eae="_clearChatBroomNoCosmos_1cytq_163",bae="_newChatIcon_1cytq_179",yae="_stopGeneratingContainer_1cytq_195",vae="_stopGeneratingIcon_1cytq_212",Tae="_stopGeneratingText_1cytq_218",_ae="_citationPanel_1cytq_233",Sae="_citationPanelHeaderContainer_1cytq_251",Cae="_citationPanelHeader_1cytq_251",Aae="_citationPanelDismiss_1cytq_266",Iae="_citationPanelTitle_1cytq_277",Rae="_citationPanelContent_1cytq_292",Nae="_viewSourceButton_1cytq_309",qe={container:nae,chatRoot:rae,chatContainer:iae,chatEmptyState:aae,chatEmptyStateTitle:oae,chatEmptyStateSubtitle:sae,chatIcon:lae,chatMessageStream:uae,chatMessageUser:cae,chatMessageUserMessage:dae,chatMessageGpt:pae,chatMessageError:fae,chatMessageErrorContent:mae,chatInput:hae,clearChatBroom:gae,clearChatBroomNoCosmos:Eae,newChatIcon:bae,stopGeneratingContainer:yae,stopGeneratingIcon:vae,stopGeneratingText:Tae,citationPanel:_ae,citationPanelHeaderContainer:Sae,citationPanelHeader:Cae,citationPanelDismiss:Aae,citationPanelTitle:Iae,citationPanelContent:Rae,viewSourceButton:Nae},o8=["iframe","a","img","svg","h1","h2","h3","h4","h5","h6","div","p","span","small","del","img","pictrue","embed","video","audio","i","u","sup","sub","strong","strike","code","pre","body","section","article","footer","table","tr","td","th","thead","tbody","tfooter","ul","ol","li"],kae="_answerContainer_1io9c_1",wae="_answerText_1io9c_12",Oae="_answerHeader_1io9c_29",xae="_answerFooter_1io9c_33",Dae="_answerDisclaimerContainer_1io9c_42",Lae="_answerDisclaimer_1io9c_42",Fae="_citationWrapper_1io9c_62",Mae="_citationContainer_1io9c_70",Pae="_citation_1io9c_62",Bae="_accordionIcon_1io9c_120",Uae="_accordionTitle_1io9c_135",Hae="_clickableSup_1io9c_151",ii={answerContainer:kae,answerText:wae,answerHeader:Oae,answerFooter:xae,answerDisclaimerContainer:Dae,answerDisclaimer:Lae,citationWrapper:Fae,citationContainer:Mae,citation:Pae,accordionIcon:Bae,accordionTitle:Uae,clickableSup:Hae},Gae=e=>{const t=new Map;for(const n of e){const{filepath:r}=n;let i=1;t.has(r)&&(i=t.get(r)+1),t.set(r,i),n.part_index=i}return e};function $ae(e){let t=e.answer;const n=t.match(/\[(doc\d\d?\d?)]/g),r=4;let i=[],a=0;return n==null||n.forEach(o=>{let s=o.slice(r,o.length-1),l=Die(e.citations[Number(s)-1]);!i.find(u=>u.id===s)&&l&&(t=t.replaceAll(o,` ^${++a}^ `),l.id=s,l.reindex_id=a.toString(),i.push(l))}),i=Gae(i),{citations:i,markdownFormatText:t}}function zae(){return e=>{vl(e,["text"],(t,n,r)=>{if(t.type!=="text")return;const{value:i}=t,a=i.split(/\^/);if(a.length===1||a.length%2===0)return;const o=a.map((s,l)=>l%2===0?{type:"text",value:s}:{type:"superscript",data:{hName:"sup"},children:[{type:"text",value:s}]});r.children.splice(n,1,...o)}),vl(e,["text"],(t,n,r)=>{if(t.type!=="text")return;const{value:i}=t,a=i.split(/\~/);if(a.length===1||a.length%2===0)return;const o=a.map((s,l)=>l%2===0?{type:"text",value:s}:{type:"subscript",data:{hName:"sub"},children:[{type:"text",value:s}]});r.children.splice(n,1,...o)})}}function qae(e,t){if(e==null)return{};var n={},r=Object.keys(e),i,a;for(a=0;a=0)&&(n[i]=e[i]);return n}function jae(e,t){if(e==null)return{};var n=qae(e,t),r,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Bv(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=4)return[e[0],e[1],e[2],e[3],"".concat(e[0],".").concat(e[1]),"".concat(e[0],".").concat(e[2]),"".concat(e[0],".").concat(e[3]),"".concat(e[1],".").concat(e[0]),"".concat(e[1],".").concat(e[2]),"".concat(e[1],".").concat(e[3]),"".concat(e[2],".").concat(e[0]),"".concat(e[2],".").concat(e[1]),"".concat(e[2],".").concat(e[3]),"".concat(e[3],".").concat(e[0]),"".concat(e[3],".").concat(e[1]),"".concat(e[3],".").concat(e[2]),"".concat(e[0],".").concat(e[1],".").concat(e[2]),"".concat(e[0],".").concat(e[1],".").concat(e[3]),"".concat(e[0],".").concat(e[2],".").concat(e[1]),"".concat(e[0],".").concat(e[2],".").concat(e[3]),"".concat(e[0],".").concat(e[3],".").concat(e[1]),"".concat(e[0],".").concat(e[3],".").concat(e[2]),"".concat(e[1],".").concat(e[0],".").concat(e[2]),"".concat(e[1],".").concat(e[0],".").concat(e[3]),"".concat(e[1],".").concat(e[2],".").concat(e[0]),"".concat(e[1],".").concat(e[2],".").concat(e[3]),"".concat(e[1],".").concat(e[3],".").concat(e[0]),"".concat(e[1],".").concat(e[3],".").concat(e[2]),"".concat(e[2],".").concat(e[0],".").concat(e[1]),"".concat(e[2],".").concat(e[0],".").concat(e[3]),"".concat(e[2],".").concat(e[1],".").concat(e[0]),"".concat(e[2],".").concat(e[1],".").concat(e[3]),"".concat(e[2],".").concat(e[3],".").concat(e[0]),"".concat(e[2],".").concat(e[3],".").concat(e[1]),"".concat(e[3],".").concat(e[0],".").concat(e[1]),"".concat(e[3],".").concat(e[0],".").concat(e[2]),"".concat(e[3],".").concat(e[1],".").concat(e[0]),"".concat(e[3],".").concat(e[1],".").concat(e[2]),"".concat(e[3],".").concat(e[2],".").concat(e[0]),"".concat(e[3],".").concat(e[2],".").concat(e[1]),"".concat(e[0],".").concat(e[1],".").concat(e[2],".").concat(e[3]),"".concat(e[0],".").concat(e[1],".").concat(e[3],".").concat(e[2]),"".concat(e[0],".").concat(e[2],".").concat(e[1],".").concat(e[3]),"".concat(e[0],".").concat(e[2],".").concat(e[3],".").concat(e[1]),"".concat(e[0],".").concat(e[3],".").concat(e[1],".").concat(e[2]),"".concat(e[0],".").concat(e[3],".").concat(e[2],".").concat(e[1]),"".concat(e[1],".").concat(e[0],".").concat(e[2],".").concat(e[3]),"".concat(e[1],".").concat(e[0],".").concat(e[3],".").concat(e[2]),"".concat(e[1],".").concat(e[2],".").concat(e[0],".").concat(e[3]),"".concat(e[1],".").concat(e[2],".").concat(e[3],".").concat(e[0]),"".concat(e[1],".").concat(e[3],".").concat(e[0],".").concat(e[2]),"".concat(e[1],".").concat(e[3],".").concat(e[2],".").concat(e[0]),"".concat(e[2],".").concat(e[0],".").concat(e[1],".").concat(e[3]),"".concat(e[2],".").concat(e[0],".").concat(e[3],".").concat(e[1]),"".concat(e[2],".").concat(e[1],".").concat(e[0],".").concat(e[3]),"".concat(e[2],".").concat(e[1],".").concat(e[3],".").concat(e[0]),"".concat(e[2],".").concat(e[3],".").concat(e[0],".").concat(e[1]),"".concat(e[2],".").concat(e[3],".").concat(e[1],".").concat(e[0]),"".concat(e[3],".").concat(e[0],".").concat(e[1],".").concat(e[2]),"".concat(e[3],".").concat(e[0],".").concat(e[2],".").concat(e[1]),"".concat(e[3],".").concat(e[1],".").concat(e[0],".").concat(e[2]),"".concat(e[3],".").concat(e[1],".").concat(e[2],".").concat(e[0]),"".concat(e[3],".").concat(e[2],".").concat(e[0],".").concat(e[1]),"".concat(e[3],".").concat(e[2],".").concat(e[1],".").concat(e[0])]}var ah={};function eoe(e){if(e.length===0||e.length===1)return e;var t=e.join(".");return ah[t]||(ah[t]=Jae(e)),ah[t]}function toe(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0,r=e.filter(function(a){return a!=="token"}),i=eoe(r);return i.reduce(function(a,o){return Zs(Zs({},a),n[o])},t)}function TR(e){return e.join(" ")}function noe(e,t){var n=0;return function(r){return n+=1,r.map(function(i,a){return l8({node:i,stylesheet:e,useInlineStyles:t,key:"code-segment-".concat(n,"-").concat(a)})})}}function l8(e){var t=e.node,n=e.stylesheet,r=e.style,i=r===void 0?{}:r,a=e.useInlineStyles,o=e.key,s=t.properties,l=t.type,u=t.tagName,c=t.value;if(l==="text")return c;if(u){var d=noe(n,a),p;if(!a)p=Zs(Zs({},s),{},{className:TR(s.className)});else{var f=Object.keys(n).reduce(function(h,E){return E.split(".").forEach(function(b){h.includes(b)||h.push(b)}),h},[]),m=s.className&&s.className.includes("token")?["token"]:[],g=s.className&&m.concat(s.className.filter(function(h){return!f.includes(h)}));p=Zs(Zs({},s),{},{className:TR(g)||void 0,style:toe(s.className,Object.assign({},s.style,i),n)})}var _=d(t.children);return Nt.createElement(u,Uv({key:o},p),_)}}const roe=function(e,t){var n=e.listLanguages();return n.indexOf(t)!==-1};var ioe=["language","children","style","customStyle","codeTagProps","useInlineStyles","showLineNumbers","showInlineLineNumbers","startingLineNumber","lineNumberContainerStyle","lineNumberStyle","wrapLines","wrapLongLines","lineProps","renderer","PreTag","CodeTag","code","astGenerator"];function _R(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function Di(e){for(var t=1;t1&&arguments[1]!==void 0?arguments[1]:[],n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[],r=0;r2&&arguments[2]!==void 0?arguments[2]:[];return b1({children:A,lineNumber:S,lineNumberStyle:s,largestLineNumber:o,showInlineLineNumbers:i,lineProps:n,className:C,showLineNumbers:r,wrapLongLines:l})}function g(A,S){if(r&&S&&i){var C=c8(s,S,o);A.unshift(u8(S,C))}return A}function _(A,S){var C=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[];return t||C.length>0?m(A,S,C):g(A,S)}for(var h=function(){var S=c[f],C=S.children[0].value,N=ooe(C);if(N){var O=C.split(` @@ -126,4 +126,4 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho ]))(?:`+(/[^\s\\]/.source+'|[ ]+(?:(?![ "])|'+i+")|"+/\\[\r\n]+(?:[#;].*[\r\n]+)*(?![#;])/.source)+")*"),lookbehind:!0,greedy:!0,alias:"attr-value",inside:{comment:r,quoted:{pattern:RegExp(/(^|\s)/.source+i),lookbehind:!0,greedy:!0},punctuation:/\\$/m,boolean:{pattern:/^(?:false|no|off|on|true|yes)$/,greedy:!0}}},punctuation:/=/}})(t)}return I0}var R0,o2;function cS(){if(o2)return R0;o2=1,R0=e,e.displayName="t4Templating",e.aliases=[];function e(t){(function(n){function r(a,o,s){return{pattern:RegExp("<#"+a+"[\\s\\S]*?#>"),alias:"block",inside:{delimiter:{pattern:RegExp("^<#"+a+"|#>$"),alias:"important"},content:{pattern:/[\s\S]+/,inside:o,alias:s}}}}function i(a){var o=n.languages[a],s="language-"+a;return{block:{pattern:/<#[\s\S]+?#>/,inside:{directive:r("@",{"attr-value":{pattern:/=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+)/,inside:{punctuation:/^=|^["']|["']$/}},keyword:/\b\w+(?=\s)/,"attr-name":/\b\w+/}),expression:r("=",o,s),"class-feature":r("\\+",o,s),standard:r("",o,s)}}}}n.languages["t4-templating"]=Object.defineProperty({},"createT4",{value:i})})(t)}return R0}var N0,s2;function Pfe(){if(s2)return N0;s2=1;var e=cS(),t=Ef();N0=n,n.displayName="t4Cs",n.aliases=[];function n(r){r.register(e),r.register(t),r.languages.t4=r.languages["t4-cs"]=r.languages["t4-templating"].createT4("csharp")}return N0}var k0,l2;function U8(){if(l2)return k0;l2=1;var e=F8();k0=t,t.displayName="vbnet",t.aliases=[];function t(n){n.register(e),n.languages.vbnet=n.languages.extend("basic",{comment:[{pattern:/(?:!|REM\b).+/i,inside:{keyword:/^REM/i}},{pattern:/(^|[^\\:])'.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(^|[^"])"(?:""|[^"])*"(?!")/,lookbehind:!0,greedy:!0},keyword:/(?:\b(?:ADDHANDLER|ADDRESSOF|ALIAS|AND|ANDALSO|AS|BEEP|BLOAD|BOOLEAN|BSAVE|BYREF|BYTE|BYVAL|CALL(?: ABSOLUTE)?|CASE|CATCH|CBOOL|CBYTE|CCHAR|CDATE|CDBL|CDEC|CHAIN|CHAR|CHDIR|CINT|CLASS|CLEAR|CLNG|CLOSE|CLS|COBJ|COM|COMMON|CONST|CONTINUE|CSBYTE|CSHORT|CSNG|CSTR|CTYPE|CUINT|CULNG|CUSHORT|DATA|DATE|DECIMAL|DECLARE|DEF(?: FN| SEG|DBL|INT|LNG|SNG|STR)|DEFAULT|DELEGATE|DIM|DIRECTCAST|DO|DOUBLE|ELSE|ELSEIF|END|ENUM|ENVIRON|ERASE|ERROR|EVENT|EXIT|FALSE|FIELD|FILES|FINALLY|FOR(?: EACH)?|FRIEND|FUNCTION|GET|GETTYPE|GETXMLNAMESPACE|GLOBAL|GOSUB|GOTO|HANDLES|IF|IMPLEMENTS|IMPORTS|IN|INHERITS|INPUT|INTEGER|INTERFACE|IOCTL|IS|ISNOT|KEY|KILL|LET|LIB|LIKE|LINE INPUT|LOCATE|LOCK|LONG|LOOP|LSET|ME|MKDIR|MOD|MODULE|MUSTINHERIT|MUSTOVERRIDE|MYBASE|MYCLASS|NAME|NAMESPACE|NARROWING|NEW|NEXT|NOT|NOTHING|NOTINHERITABLE|NOTOVERRIDABLE|OBJECT|OF|OFF|ON(?: COM| ERROR| KEY| TIMER)?|OPEN|OPERATOR|OPTION(?: BASE)?|OPTIONAL|OR|ORELSE|OUT|OVERLOADS|OVERRIDABLE|OVERRIDES|PARAMARRAY|PARTIAL|POKE|PRIVATE|PROPERTY|PROTECTED|PUBLIC|PUT|RAISEEVENT|READ|READONLY|REDIM|REM|REMOVEHANDLER|RESTORE|RESUME|RETURN|RMDIR|RSET|RUN|SBYTE|SELECT(?: CASE)?|SET|SHADOWS|SHARED|SHELL|SHORT|SINGLE|SLEEP|STATIC|STEP|STOP|STRING|STRUCTURE|SUB|SWAP|SYNCLOCK|SYSTEM|THEN|THROW|TIMER|TO|TROFF|TRON|TRUE|TRY|TRYCAST|TYPE|TYPEOF|UINTEGER|ULONG|UNLOCK|UNTIL|USHORT|USING|VIEW PRINT|WAIT|WEND|WHEN|WHILE|WIDENING|WITH|WITHEVENTS|WRITE|WRITEONLY|XOR)|\B(?:#CONST|#ELSE|#ELSEIF|#END|#IF))(?:\$|\b)/i,punctuation:/[,;:(){}]/})}return k0}var w0,u2;function Bfe(){if(u2)return w0;u2=1;var e=cS(),t=U8();w0=n,n.displayName="t4Vb",n.aliases=[];function n(r){r.register(e),r.register(t),r.languages["t4-vb"]=r.languages["t4-templating"].createT4("vbnet")}return w0}var O0,c2;function H8(){if(c2)return O0;c2=1,O0=e,e.displayName="yaml",e.aliases=["yml"];function e(t){(function(n){var r=/[*&][^\s[\]{},]+/,i=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,a="(?:"+i.source+"(?:[ ]+"+r.source+")?|"+r.source+"(?:[ ]+"+i.source+")?)",o=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-])(?:[ \t]*(?:(?![#:])|:))*/.source.replace(//g,function(){return/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source}),s=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function l(u,c){c=(c||"").replace(/m/g,"")+"m";var d=/([:\-,[{]\s*(?:\s<>[ \t]+)?)(?:<>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<>/g,function(){return a}).replace(/<>/g,function(){return u});return RegExp(d,c)}n.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<>/g,function(){return a})),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<>[ \t]+)?)<>(?=\s*:\s)/.source.replace(/<>/g,function(){return a}).replace(/<>/g,function(){return"(?:"+o+"|"+s+")"})),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:l(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:l(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:l(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:l(s),lookbehind:!0,greedy:!0},number:{pattern:l(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:i,important:r,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},n.languages.yml=n.languages.yaml})(t)}return O0}var x0,d2;function Ufe(){if(d2)return x0;d2=1;var e=H8();x0=t,t.displayName="tap",t.aliases=[];function t(n){n.register(e),n.languages.tap={fail:/not ok[^#{\n\r]*/,pass:/ok[^#{\n\r]*/,pragma:/pragma [+-][a-z]+/,bailout:/bail out!.*/i,version:/TAP version \d+/i,plan:/\b\d+\.\.\d+(?: +#.*)?/,subtest:{pattern:/# Subtest(?:: .*)?/,greedy:!0},punctuation:/[{}]/,directive:/#.*/,yamlish:{pattern:/(^[ \t]*)---[\s\S]*?[\r\n][ \t]*\.\.\.$/m,lookbehind:!0,inside:n.languages.yaml,alias:"language-yaml"}}}return x0}var D0,p2;function Hfe(){if(p2)return D0;p2=1,D0=e,e.displayName="tcl",e.aliases=[];function e(t){t.languages.tcl={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0},string:{pattern:/"(?:[^"\\\r\n]|\\(?:\r\n|[\s\S]))*"/,greedy:!0},variable:[{pattern:/(\$)(?:::)?(?:[a-zA-Z0-9]+::)*\w+/,lookbehind:!0},{pattern:/(\$)\{[^}]+\}/,lookbehind:!0},{pattern:/(^[\t ]*set[ \t]+)(?:::)?(?:[a-zA-Z0-9]+::)*\w+/m,lookbehind:!0}],function:{pattern:/(^[\t ]*proc[ \t]+)\S+/m,lookbehind:!0},builtin:[{pattern:/(^[\t ]*)(?:break|class|continue|error|eval|exit|for|foreach|if|proc|return|switch|while)\b/m,lookbehind:!0},/\b(?:else|elseif)\b/],scope:{pattern:/(^[\t ]*)(?:global|upvar|variable)\b/m,lookbehind:!0,alias:"constant"},keyword:{pattern:/(^[\t ]*|\[)(?:Safe_Base|Tcl|after|append|apply|array|auto_(?:execok|import|load|mkindex|qualify|reset)|automkindex_old|bgerror|binary|catch|cd|chan|clock|close|concat|dde|dict|encoding|eof|exec|expr|fblocked|fconfigure|fcopy|file(?:event|name)?|flush|gets|glob|history|http|incr|info|interp|join|lappend|lassign|lindex|linsert|list|llength|load|lrange|lrepeat|lreplace|lreverse|lsearch|lset|lsort|math(?:func|op)|memory|msgcat|namespace|open|package|parray|pid|pkg_mkIndex|platform|puts|pwd|re_syntax|read|refchan|regexp|registry|regsub|rename|scan|seek|set|socket|source|split|string|subst|tcl(?:_endOfWord|_findLibrary|startOf(?:Next|Previous)Word|test|vars|wordBreak(?:After|Before))|tell|time|tm|trace|unknown|unload|unset|update|uplevel|vwait)\b/m,lookbehind:!0},operator:/!=?|\*\*?|==|&&?|\|\|?|<[=<]?|>[=>]?|[-+~\/%?^]|\b(?:eq|in|ne|ni)\b/,punctuation:/[{}()\[\]]/}}return D0}var L0,f2;function Gfe(){if(f2)return L0;f2=1,L0=e,e.displayName="textile",e.aliases=[];function e(t){(function(n){var r=/\([^|()\n]+\)|\[[^\]\n]+\]|\{[^}\n]+\}/.source,i=/\)|\((?![^|()\n]+\))/.source;function a(p,f){return RegExp(p.replace(//g,function(){return"(?:"+r+")"}).replace(//g,function(){return"(?:"+i+")"}),f||"")}var o={css:{pattern:/\{[^{}]+\}/,inside:{rest:n.languages.css}},"class-id":{pattern:/(\()[^()]+(?=\))/,lookbehind:!0,alias:"attr-value"},lang:{pattern:/(\[)[^\[\]]+(?=\])/,lookbehind:!0,alias:"attr-value"},punctuation:/[\\\/]\d+|\S/},s=n.languages.textile=n.languages.extend("markup",{phrase:{pattern:/(^|\r|\n)\S[\s\S]*?(?=$|\r?\n\r?\n|\r\r)/,lookbehind:!0,inside:{"block-tag":{pattern:a(/^[a-z]\w*(?:||[<>=])*\./.source),inside:{modifier:{pattern:a(/(^[a-z]\w*)(?:||[<>=])+(?=\.)/.source),lookbehind:!0,inside:o},tag:/^[a-z]\w*/,punctuation:/\.$/}},list:{pattern:a(/^[*#]+*\s+\S.*/.source,"m"),inside:{modifier:{pattern:a(/(^[*#]+)+/.source),lookbehind:!0,inside:o},punctuation:/^[*#]+/}},table:{pattern:a(/^(?:(?:||[<>=^~])+\.\s*)?(?:\|(?:(?:||[<>=^~_]|[\\/]\d+)+\.|(?!(?:||[<>=^~_]|[\\/]\d+)+\.))[^|]*)+\|/.source,"m"),inside:{modifier:{pattern:a(/(^|\|(?:\r?\n|\r)?)(?:||[<>=^~_]|[\\/]\d+)+(?=\.)/.source),lookbehind:!0,inside:o},punctuation:/\||^\./}},inline:{pattern:a(/(^|[^a-zA-Z\d])(\*\*|__|\?\?|[*_%@+\-^~])*.+?\2(?![a-zA-Z\d])/.source),lookbehind:!0,inside:{bold:{pattern:a(/(^(\*\*?)*).+?(?=\2)/.source),lookbehind:!0},italic:{pattern:a(/(^(__?)*).+?(?=\2)/.source),lookbehind:!0},cite:{pattern:a(/(^\?\?*).+?(?=\?\?)/.source),lookbehind:!0,alias:"string"},code:{pattern:a(/(^@*).+?(?=@)/.source),lookbehind:!0,alias:"keyword"},inserted:{pattern:a(/(^\+*).+?(?=\+)/.source),lookbehind:!0},deleted:{pattern:a(/(^-*).+?(?=-)/.source),lookbehind:!0},span:{pattern:a(/(^%*).+?(?=%)/.source),lookbehind:!0},modifier:{pattern:a(/(^\*\*|__|\?\?|[*_%@+\-^~])+/.source),lookbehind:!0,inside:o},punctuation:/[*_%?@+\-^~]+/}},"link-ref":{pattern:/^\[[^\]]+\]\S+$/m,inside:{string:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0},url:{pattern:/(^\])\S+$/,lookbehind:!0},punctuation:/[\[\]]/}},link:{pattern:a(/"*[^"]+":.+?(?=[^\w/]?(?:\s|$))/.source),inside:{text:{pattern:a(/(^"*)[^"]+(?=")/.source),lookbehind:!0},modifier:{pattern:a(/(^")+/.source),lookbehind:!0,inside:o},url:{pattern:/(:).+/,lookbehind:!0},punctuation:/[":]/}},image:{pattern:a(/!(?:||[<>=])*(?![<>=])[^!\s()]+(?:\([^)]+\))?!(?::.+?(?=[^\w/]?(?:\s|$)))?/.source),inside:{source:{pattern:a(/(^!(?:||[<>=])*)(?![<>=])[^!\s()]+(?:\([^)]+\))?(?=!)/.source),lookbehind:!0,alias:"url"},modifier:{pattern:a(/(^!)(?:||[<>=])+/.source),lookbehind:!0,inside:o},url:{pattern:/(:).+/,lookbehind:!0},punctuation:/[!:]/}},footnote:{pattern:/\b\[\d+\]/,alias:"comment",inside:{punctuation:/\[|\]/}},acronym:{pattern:/\b[A-Z\d]+\([^)]+\)/,inside:{comment:{pattern:/(\()[^()]+(?=\))/,lookbehind:!0},punctuation:/[()]/}},mark:{pattern:/\b\((?:C|R|TM)\)/,alias:"comment",inside:{punctuation:/[()]/}}}}}),l=s.phrase.inside,u={inline:l.inline,link:l.link,image:l.image,footnote:l.footnote,acronym:l.acronym,mark:l.mark};s.tag.pattern=/<\/?(?!\d)[a-z0-9]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+))?)*\s*\/?>/i;var c=l.inline.inside;c.bold.inside=u,c.italic.inside=u,c.inserted.inside=u,c.deleted.inside=u,c.span.inside=u;var d=l.table.inside;d.inline=u.inline,d.link=u.link,d.image=u.image,d.footnote=u.footnote,d.acronym=u.acronym,d.mark=u.mark})(t)}return L0}var F0,m2;function $fe(){if(m2)return F0;m2=1,F0=e,e.displayName="toml",e.aliases=[];function e(t){(function(n){var r=/(?:[\w-]+|'[^'\n\r]*'|"(?:\\.|[^\\"\r\n])*")/.source;function i(a){return a.replace(/__/g,function(){return r})}n.languages.toml={comment:{pattern:/#.*/,greedy:!0},table:{pattern:RegExp(i(/(^[\t ]*\[\s*(?:\[\s*)?)__(?:\s*\.\s*__)*(?=\s*\])/.source),"m"),lookbehind:!0,greedy:!0,alias:"class-name"},key:{pattern:RegExp(i(/(^[\t ]*|[{,]\s*)__(?:\s*\.\s*__)*(?=\s*=)/.source),"m"),lookbehind:!0,greedy:!0,alias:"property"},string:{pattern:/"""(?:\\[\s\S]|[^\\])*?"""|'''[\s\S]*?'''|'[^'\n\r]*'|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},date:[{pattern:/\b\d{4}-\d{2}-\d{2}(?:[T\s]\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})?)?\b/i,alias:"number"},{pattern:/\b\d{2}:\d{2}:\d{2}(?:\.\d+)?\b/,alias:"number"}],number:/(?:\b0(?:x[\da-zA-Z]+(?:_[\da-zA-Z]+)*|o[0-7]+(?:_[0-7]+)*|b[10]+(?:_[10]+)*))\b|[-+]?\b\d+(?:_\d+)*(?:\.\d+(?:_\d+)*)?(?:[eE][+-]?\d+(?:_\d+)*)?\b|[-+]?\b(?:inf|nan)\b/,boolean:/\b(?:false|true)\b/,punctuation:/[.,=[\]{}]/}})(t)}return F0}var M0,h2;function zfe(){if(h2)return M0;h2=1,M0=e,e.displayName="tremor",e.aliases=[];function e(t){(function(n){n.languages.tremor={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},"interpolated-string":null,extractor:{pattern:/\b[a-z_]\w*\|(?:[^\r\n\\|]|\\(?:\r\n|[\s\S]))*\|/i,greedy:!0,inside:{regex:{pattern:/(^re)\|[\s\S]+/,lookbehind:!0},function:/^\w+/,value:/\|[\s\S]+/}},identifier:{pattern:/`[^`]*`/,greedy:!0},function:/\b[a-z_]\w*(?=\s*(?:::\s*<|\())\b/,keyword:/\b(?:args|as|by|case|config|connect|connector|const|copy|create|default|define|deploy|drop|each|emit|end|erase|event|flow|fn|for|from|group|having|insert|into|intrinsic|let|links|match|merge|mod|move|of|operator|patch|pipeline|recur|script|select|set|sliding|state|stream|to|tumbling|update|use|when|where|window|with)\b/,boolean:/\b(?:false|null|true)\b/i,number:/\b(?:0b[01_]*|0x[0-9a-fA-F_]*|\d[\d_]*(?:\.\d[\d_]*)?(?:[Ee][+-]?[\d_]+)?)\b/,"pattern-punctuation":{pattern:/%(?=[({[])/,alias:"punctuation"},operator:/[-+*\/%~!^]=?|=[=>]?|&[&=]?|\|[|=]?|<>?>?=?|(?:absent|and|not|or|present|xor)\b/,punctuation:/::|[;\[\]()\{\},.:]/};var r=/#\{(?:[^"{}]|\{[^{}]*\}|"(?:[^"\\\r\n]|\\(?:\r\n|[\s\S]))*")*\}/.source;n.languages.tremor["interpolated-string"]={pattern:RegExp(/(^|[^\\])/.source+'(?:"""(?:'+/[^"\\#]|\\[\s\S]|"(?!"")|#(?!\{)/.source+"|"+r+')*"""|"(?:'+/[^"\\\r\n#]|\\(?:\r\n|[\s\S])|#(?!\{)/.source+"|"+r+')*")'),lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:RegExp(r),inside:{punctuation:/^#\{|\}$/,expression:{pattern:/[\s\S]+/,inside:n.languages.tremor}}},string:/[\s\S]+/}},n.languages.troy=n.languages.tremor,n.languages.trickle=n.languages.tremor})(t)}return M0}var P0,g2;function qfe(){if(g2)return P0;g2=1;var e=P8(),t=sS();P0=n,n.displayName="tsx",n.aliases=[];function n(r){r.register(e),r.register(t),function(i){var a=i.util.clone(i.languages.typescript);i.languages.tsx=i.languages.extend("jsx",a),delete i.languages.tsx.parameter,delete i.languages.tsx["literal-property"];var o=i.languages.tsx.tag;o.pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+o.pattern.source+")",o.pattern.flags),o.lookbehind=!0}(r)}return P0}var B0,E2;function jfe(){if(E2)return B0;E2=1;var e=cr();B0=t,t.displayName="tt2",t.aliases=[];function t(n){n.register(e),function(r){r.languages.tt2=r.languages.extend("clike",{comment:/#.*|\[%#[\s\S]*?%\]/,keyword:/\b(?:BLOCK|CALL|CASE|CATCH|CLEAR|DEBUG|DEFAULT|ELSE|ELSIF|END|FILTER|FINAL|FOREACH|GET|IF|IN|INCLUDE|INSERT|LAST|MACRO|META|NEXT|PERL|PROCESS|RAWPERL|RETURN|SET|STOP|SWITCH|TAGS|THROW|TRY|UNLESS|USE|WHILE|WRAPPER)\b/,punctuation:/[[\]{},()]/}),r.languages.insertBefore("tt2","number",{operator:/=[>=]?|!=?|<=?|>=?|&&|\|\|?|\b(?:and|not|or)\b/,variable:{pattern:/\b[a-z]\w*(?:\s*\.\s*(?:\d+|\$?[a-z]\w*))*\b/i}}),r.languages.insertBefore("tt2","keyword",{delimiter:{pattern:/^(?:\[%|%%)-?|-?%\]$/,alias:"punctuation"}}),r.languages.insertBefore("tt2","string",{"single-quoted-string":{pattern:/'[^\\']*(?:\\[\s\S][^\\']*)*'/,greedy:!0,alias:"string"},"double-quoted-string":{pattern:/"[^\\"]*(?:\\[\s\S][^\\"]*)*"/,greedy:!0,alias:"string",inside:{variable:{pattern:/\$(?:[a-z]\w*(?:\.(?:\d+|\$?[a-z]\w*))*)/i}}}}),delete r.languages.tt2.string,r.hooks.add("before-tokenize",function(i){var a=/\[%[\s\S]+?%\]/g;r.languages["markup-templating"].buildPlaceholders(i,"tt2",a)}),r.hooks.add("after-tokenize",function(i){r.languages["markup-templating"].tokenizePlaceholders(i,"tt2")})}(n)}return B0}var U0,b2;function Wfe(){if(b2)return U0;b2=1;var e=cr();U0=t,t.displayName="twig",t.aliases=[];function t(n){n.register(e),n.languages.twig={comment:/^\{#[\s\S]*?#\}$/,"tag-name":{pattern:/(^\{%-?\s*)\w+/,lookbehind:!0,alias:"keyword"},delimiter:{pattern:/^\{[{%]-?|-?[%}]\}$/,alias:"punctuation"},string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,inside:{punctuation:/^['"]|['"]$/}},keyword:/\b(?:even|if|odd)\b/,boolean:/\b(?:false|null|true)\b/,number:/\b0x[\dA-Fa-f]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][-+]?\d+)?/,operator:[{pattern:/(\s)(?:and|b-and|b-or|b-xor|ends with|in|is|matches|not|or|same as|starts with)(?=\s)/,lookbehind:!0},/[=<>]=?|!=|\*\*?|\/\/?|\?:?|[-+~%|]/],punctuation:/[()\[\]{}:.,]/},n.hooks.add("before-tokenize",function(r){if(r.language==="twig"){var i=/\{(?:#[\s\S]*?#|%[\s\S]*?%|\{[\s\S]*?\})\}/g;n.languages["markup-templating"].buildPlaceholders(r,"twig",i)}}),n.hooks.add("after-tokenize",function(r){n.languages["markup-templating"].tokenizePlaceholders(r,"twig")})}return U0}var H0,y2;function Vfe(){if(y2)return H0;y2=1,H0=e,e.displayName="typoscript",e.aliases=["tsconfig"];function e(t){(function(n){var r=/\b(?:ACT|ACTIFSUB|CARRAY|CASE|CLEARGIF|COA|COA_INT|CONSTANTS|CONTENT|CUR|EDITPANEL|EFFECT|EXT|FILE|FLUIDTEMPLATE|FORM|FRAME|FRAMESET|GIFBUILDER|GMENU|GMENU_FOLDOUT|GMENU_LAYERS|GP|HMENU|HRULER|HTML|IENV|IFSUB|IMAGE|IMGMENU|IMGMENUITEM|IMGTEXT|IMG_RESOURCE|INCLUDE_TYPOSCRIPT|JSMENU|JSMENUITEM|LLL|LOAD_REGISTER|NO|PAGE|RECORDS|RESTORE_REGISTER|TEMPLATE|TEXT|TMENU|TMENUITEM|TMENU_LAYERS|USER|USER_INT|_GIFBUILDER|global|globalString|globalVar)\b/;n.languages.typoscript={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0},{pattern:/(^|[^\\:= \t]|(?:^|[^= \t])[ \t]+)\/\/.*/,lookbehind:!0,greedy:!0},{pattern:/(^|[^"'])#.*/,lookbehind:!0,greedy:!0}],function:[{pattern://,inside:{string:{pattern:/"[^"\r\n]*"|'[^'\r\n]*'/,inside:{keyword:r}},keyword:{pattern:/INCLUDE_TYPOSCRIPT/}}},{pattern:/@import\s*(?:"[^"\r\n]*"|'[^'\r\n]*')/,inside:{string:/"[^"\r\n]*"|'[^'\r\n]*'/}}],string:{pattern:/^([^=]*=[< ]?)(?:(?!\]\n).)*/,lookbehind:!0,inside:{function:/\{\$.*\}/,keyword:r,number:/^\d+$/,punctuation:/[,|:]/}},keyword:r,number:{pattern:/\b\d+\s*[.{=]/,inside:{operator:/[.{=]/}},tag:{pattern:/\.?[-\w\\]+\.?/,inside:{punctuation:/\./}},punctuation:/[{}[\];(),.:|]/,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/},n.languages.tsconfig=n.languages.typoscript})(t)}return H0}var G0,v2;function Kfe(){if(v2)return G0;v2=1,G0=e,e.displayName="unrealscript",e.aliases=["uc","uscript"];function e(t){t.languages.unrealscript={comment:/\/\/.*|\/\*[\s\S]*?\*\//,string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},category:{pattern:/(\b(?:(?:autoexpand|hide|show)categories|var)\s*\()[^()]+(?=\))/,lookbehind:!0,greedy:!0,alias:"property"},metadata:{pattern:/(\w\s*)<\s*\w+\s*=[^<>|=\r\n]+(?:\|\s*\w+\s*=[^<>|=\r\n]+)*>/,lookbehind:!0,greedy:!0,inside:{property:/\b\w+(?=\s*=)/,operator:/=/,punctuation:/[<>|]/}},macro:{pattern:/`\w+/,alias:"property"},"class-name":{pattern:/(\b(?:class|enum|extends|interface|state(?:\(\))?|struct|within)\s+)\w+/,lookbehind:!0},keyword:/\b(?:abstract|actor|array|auto|autoexpandcategories|bool|break|byte|case|class|classgroup|client|coerce|collapsecategories|config|const|continue|default|defaultproperties|delegate|dependson|deprecated|do|dontcollapsecategories|editconst|editinlinenew|else|enum|event|exec|export|extends|final|float|for|forcescriptorder|foreach|function|goto|guid|hidecategories|hidedropdown|if|ignores|implements|inherits|input|int|interface|iterator|latent|local|material|name|native|nativereplication|noexport|nontransient|noteditinlinenew|notplaceable|operator|optional|out|pawn|perobjectconfig|perobjectlocalized|placeable|postoperator|preoperator|private|protected|reliable|replication|return|server|showcategories|simulated|singular|state|static|string|struct|structdefault|structdefaultproperties|switch|texture|transient|travel|unreliable|until|var|vector|while|within)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,boolean:/\b(?:false|true)\b/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/>>|<<|--|\+\+|\*\*|[-+*/~!=<>$@]=?|&&?|\|\|?|\^\^?|[?:%]|\b(?:ClockwiseFrom|Cross|Dot)\b/,punctuation:/[()[\]{};,.]/},t.languages.uc=t.languages.uscript=t.languages.unrealscript}return G0}var $0,T2;function Yfe(){if(T2)return $0;T2=1,$0=e,e.displayName="uorazor",e.aliases=[];function e(t){t.languages.uorazor={"comment-hash":{pattern:/#.*/,alias:"comment",greedy:!0},"comment-slash":{pattern:/\/\/.*/,alias:"comment",greedy:!0},string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,inside:{punctuation:/^['"]|['"]$/},greedy:!0},"source-layers":{pattern:/\b(?:arms|backpack|blue|bracelet|cancel|clear|cloak|criminal|earrings|enemy|facialhair|friend|friendly|gloves|gray|grey|ground|hair|head|innerlegs|innertorso|innocent|lefthand|middletorso|murderer|neck|nonfriendly|onehandedsecondary|outerlegs|outertorso|pants|red|righthand|ring|self|shirt|shoes|talisman|waist)\b/i,alias:"function"},"source-commands":{pattern:/\b(?:alliance|attack|cast|clearall|clearignore|clearjournal|clearlist|clearsysmsg|createlist|createtimer|dclick|dclicktype|dclickvar|dress|dressconfig|drop|droprelloc|emote|getlabel|guild|gumpclose|gumpresponse|hotkey|ignore|lasttarget|lift|lifttype|menu|menuresponse|msg|org|organize|organizer|overhead|pause|poplist|potion|promptresponse|pushlist|removelist|removetimer|rename|restock|say|scav|scavenger|script|setability|setlasttarget|setskill|settimer|setvar|sysmsg|target|targetloc|targetrelloc|targettype|undress|unignore|unsetvar|useobject|useonce|useskill|usetype|virtue|wait|waitforgump|waitformenu|waitforprompt|waitforstat|waitforsysmsg|waitfortarget|walk|wfsysmsg|wft|whisper|yell)\b/,alias:"function"},"tag-name":{pattern:/(^\{%-?\s*)\w+/,lookbehind:!0,alias:"keyword"},delimiter:{pattern:/^\{[{%]-?|-?[%}]\}$/,alias:"punctuation"},function:/\b(?:atlist|close|closest|count|counter|counttype|dead|dex|diffhits|diffmana|diffstam|diffweight|find|findbuff|finddebuff|findlayer|findtype|findtypelist|followers|gumpexists|hidden|hits|hp|hue|human|humanoid|ingump|inlist|insysmessage|insysmsg|int|invul|lhandempty|list|listexists|mana|maxhits|maxhp|maxmana|maxstam|maxweight|monster|mounted|name|next|noto|paralyzed|poisoned|position|prev|previous|queued|rand|random|rhandempty|skill|stam|str|targetexists|timer|timerexists|varexist|warmode|weight)\b/,keyword:/\b(?:and|as|break|continue|else|elseif|endfor|endif|endwhile|for|if|loop|not|or|replay|stop|while)\b/,boolean:/\b(?:false|null|true)\b/,number:/\b0x[\dA-Fa-f]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][-+]?\d+)?/,operator:[{pattern:/(\s)(?:and|b-and|b-or|b-xor|ends with|in|is|matches|not|or|same as|starts with)(?=\s)/,lookbehind:!0},/[=<>]=?|!=|\*\*?|\/\/?|\?:?|[-+~%|]/],punctuation:/[()\[\]{}:.,]/}}return $0}var z0,_2;function Xfe(){if(_2)return z0;_2=1,z0=e,e.displayName="uri",e.aliases=["url"];function e(t){t.languages.uri={scheme:{pattern:/^[a-z][a-z0-9+.-]*:/im,greedy:!0,inside:{"scheme-delimiter":/:$/}},fragment:{pattern:/#[\w\-.~!$&'()*+,;=%:@/?]*/,inside:{"fragment-delimiter":/^#/}},query:{pattern:/\?[\w\-.~!$&'()*+,;=%:@/?]*/,inside:{"query-delimiter":{pattern:/^\?/,greedy:!0},"pair-delimiter":/[&;]/,pair:{pattern:/^[^=][\s\S]*/,inside:{key:/^[^=]+/,value:{pattern:/(^=)[\s\S]+/,lookbehind:!0}}}}},authority:{pattern:RegExp(/^\/\//.source+/(?:[\w\-.~!$&'()*+,;=%:]*@)?/.source+("(?:"+/\[(?:[0-9a-fA-F:.]{2,48}|v[0-9a-fA-F]+\.[\w\-.~!$&'()*+,;=]+)\]/.source+"|"+/[\w\-.~!$&'()*+,;=%]*/.source+")")+/(?::\d*)?/.source,"m"),inside:{"authority-delimiter":/^\/\//,"user-info-segment":{pattern:/^[\w\-.~!$&'()*+,;=%:]*@/,inside:{"user-info-delimiter":/@$/,"user-info":/^[\w\-.~!$&'()*+,;=%:]+/}},"port-segment":{pattern:/:\d*$/,inside:{"port-delimiter":/^:/,port:/^\d+/}},host:{pattern:/[\s\S]+/,inside:{"ip-literal":{pattern:/^\[[\s\S]+\]$/,inside:{"ip-literal-delimiter":/^\[|\]$/,"ipv-future":/^v[\s\S]+/,"ipv6-address":/^[\s\S]+/}},"ipv4-address":/^(?:(?:[03-9]\d?|[12]\d{0,2})\.){3}(?:[03-9]\d?|[12]\d{0,2})$/}}}},path:{pattern:/^[\w\-.~!$&'()*+,;=%:@/]+/m,inside:{"path-separator":/\//}}},t.languages.url=t.languages.uri}return z0}var q0,S2;function Zfe(){if(S2)return q0;S2=1,q0=e,e.displayName="v",e.aliases=[];function e(t){(function(n){var r={pattern:/[\s\S]+/,inside:null};n.languages.v=n.languages.extend("clike",{string:{pattern:/r?(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,alias:"quoted-string",greedy:!0,inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$(?:\{[^{}]*\}|\w+(?:\.\w+(?:\([^\(\)]*\))?|\[[^\[\]]+\])*)/,lookbehind:!0,inside:{"interpolation-variable":{pattern:/^\$\w[\s\S]*$/,alias:"variable"},"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},"interpolation-expression":r}}}},"class-name":{pattern:/(\b(?:enum|interface|struct|type)\s+)(?:C\.)?\w+/,lookbehind:!0},keyword:/(?:\b(?:__global|as|asm|assert|atomic|break|chan|const|continue|defer|else|embed|enum|fn|for|go(?:to)?|if|import|in|interface|is|lock|match|module|mut|none|or|pub|return|rlock|select|shared|sizeof|static|struct|type(?:of)?|union|unsafe)|\$(?:else|for|if)|#(?:flag|include))\b/,number:/\b(?:0x[a-f\d]+(?:_[a-f\d]+)*|0b[01]+(?:_[01]+)*|0o[0-7]+(?:_[0-7]+)*|\d+(?:_\d+)*(?:\.\d+(?:_\d+)*)?)\b/i,operator:/~|\?|[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\.?/,builtin:/\b(?:any(?:_float|_int)?|bool|byte(?:ptr)?|charptr|f(?:32|64)|i(?:8|16|64|128|nt)|rune|size_t|string|u(?:16|32|64|128)|voidptr)\b/}),r.inside=n.languages.v,n.languages.insertBefore("v","string",{char:{pattern:/`(?:\\`|\\?[^`]{1,2})`/,alias:"rune"}}),n.languages.insertBefore("v","operator",{attribute:{pattern:/(^[\t ]*)\[(?:deprecated|direct_array_access|flag|inline|live|ref_only|typedef|unsafe_fn|windows_stdcall)\]/m,lookbehind:!0,alias:"annotation",inside:{punctuation:/[\[\]]/,keyword:/\w+/}},generic:{pattern:/<\w+>(?=\s*[\)\{])/,inside:{punctuation:/[<>]/,"class-name":/\w+/}}}),n.languages.insertBefore("v","function",{"generic-function":{pattern:/\b\w+\s*<\w+>(?=\()/,inside:{function:/^\w+/,generic:{pattern:/<\w+>/,inside:n.languages.v.generic.inside}}}})})(t)}return q0}var j0,C2;function Qfe(){if(C2)return j0;C2=1,j0=e,e.displayName="vala",e.aliases=[];function e(t){t.languages.vala=t.languages.extend("clike",{"class-name":[{pattern:/\b[A-Z]\w*(?:\.\w+)*\b(?=(?:\?\s+|\*?\s+\*?)\w)/,inside:{punctuation:/\./}},{pattern:/(\[)[A-Z]\w*(?:\.\w+)*\b/,lookbehind:!0,inside:{punctuation:/\./}},{pattern:/(\b(?:class|interface)\s+[A-Z]\w*(?:\.\w+)*\s*:\s*)[A-Z]\w*(?:\.\w+)*\b/,lookbehind:!0,inside:{punctuation:/\./}},{pattern:/((?:\b(?:class|enum|interface|new|struct)\s+)|(?:catch\s+\())[A-Z]\w*(?:\.\w+)*\b/,lookbehind:!0,inside:{punctuation:/\./}}],keyword:/\b(?:abstract|as|assert|async|base|bool|break|case|catch|char|class|const|construct|continue|default|delegate|delete|do|double|dynamic|else|ensures|enum|errordomain|extern|finally|float|for|foreach|get|if|in|inline|int|int16|int32|int64|int8|interface|internal|is|lock|long|namespace|new|null|out|override|owned|params|private|protected|public|ref|requires|return|set|short|signal|sizeof|size_t|ssize_t|static|string|struct|switch|this|throw|throws|try|typeof|uchar|uint|uint16|uint32|uint64|uint8|ulong|unichar|unowned|ushort|using|value|var|virtual|void|volatile|weak|while|yield)\b/i,function:/\b\w+(?=\s*\()/,number:/(?:\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)(?:f|u?l?)?/i,operator:/\+\+|--|&&|\|\||<<=?|>>=?|=>|->|~|[+\-*\/%&^|=!<>]=?|\?\??|\.\.\./,punctuation:/[{}[\];(),.:]/,constant:/\b[A-Z0-9_]+\b/}),t.languages.insertBefore("vala","string",{"raw-string":{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string"},"template-string":{pattern:/@"[\s\S]*?"/,greedy:!0,inside:{interpolation:{pattern:/\$(?:\([^)]*\)|[a-zA-Z]\w*)/,inside:{delimiter:{pattern:/^\$\(?|\)$/,alias:"punctuation"},rest:t.languages.vala}},string:/[\s\S]+/}}}),t.languages.insertBefore("vala","keyword",{regex:{pattern:/\/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[imsx]{0,4}(?=\s*(?:$|[\r\n,.;})\]]))/,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:t.languages.regex},"regex-delimiter":/^\//,"regex-flags":/^[a-z]+$/}}})}return j0}var W0,A2;function Jfe(){if(A2)return W0;A2=1,W0=e,e.displayName="velocity",e.aliases=[];function e(t){(function(n){n.languages.velocity=n.languages.extend("markup",{});var r={variable:{pattern:/(^|[^\\](?:\\\\)*)\$!?(?:[a-z][\w-]*(?:\([^)]*\))?(?:\.[a-z][\w-]*(?:\([^)]*\))?|\[[^\]]+\])*|\{[^}]+\})/i,lookbehind:!0,inside:{}},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},number:/\b\d+\b/,boolean:/\b(?:false|true)\b/,operator:/[=!<>]=?|[+*/%-]|&&|\|\||\.\.|\b(?:eq|g[et]|l[et]|n(?:e|ot))\b/,punctuation:/[(){}[\]:,.]/};r.variable.inside={string:r.string,function:{pattern:/([^\w-])[a-z][\w-]*(?=\()/,lookbehind:!0},number:r.number,boolean:r.boolean,punctuation:r.punctuation},n.languages.insertBefore("velocity","comment",{unparsed:{pattern:/(^|[^\\])#\[\[[\s\S]*?\]\]#/,lookbehind:!0,greedy:!0,inside:{punctuation:/^#\[\[|\]\]#$/}},"velocity-comment":[{pattern:/(^|[^\\])#\*[\s\S]*?\*#/,lookbehind:!0,greedy:!0,alias:"comment"},{pattern:/(^|[^\\])##.*/,lookbehind:!0,greedy:!0,alias:"comment"}],directive:{pattern:/(^|[^\\](?:\\\\)*)#@?(?:[a-z][\w-]*|\{[a-z][\w-]*\})(?:\s*\((?:[^()]|\([^()]*\))*\))?/i,lookbehind:!0,inside:{keyword:{pattern:/^#@?(?:[a-z][\w-]*|\{[a-z][\w-]*\})|\bin\b/,inside:{punctuation:/[{}]/}},rest:r}},variable:r.variable}),n.languages.velocity.tag.inside["attr-value"].inside.rest=n.languages.velocity})(t)}return W0}var V0,I2;function eme(){if(I2)return V0;I2=1,V0=e,e.displayName="verilog",e.aliases=[];function e(t){t.languages.verilog={comment:{pattern:/\/\/.*|\/\*[\s\S]*?\*\//,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"kernel-function":{pattern:/\B\$\w+\b/,alias:"property"},constant:/\B`\w+\b/,function:/\b\w+(?=\()/,keyword:/\b(?:alias|and|assert|assign|assume|automatic|before|begin|bind|bins|binsof|bit|break|buf|bufif0|bufif1|byte|case|casex|casez|cell|chandle|class|clocking|cmos|config|const|constraint|context|continue|cover|covergroup|coverpoint|cross|deassign|default|defparam|design|disable|dist|do|edge|else|end|endcase|endclass|endclocking|endconfig|endfunction|endgenerate|endgroup|endinterface|endmodule|endpackage|endprimitive|endprogram|endproperty|endsequence|endspecify|endtable|endtask|enum|event|expect|export|extends|extern|final|first_match|for|force|foreach|forever|fork|forkjoin|function|generate|genvar|highz0|highz1|if|iff|ifnone|ignore_bins|illegal_bins|import|incdir|include|initial|inout|input|inside|instance|int|integer|interface|intersect|join|join_any|join_none|large|liblist|library|local|localparam|logic|longint|macromodule|matches|medium|modport|module|nand|negedge|new|nmos|nor|noshowcancelled|not|notif0|notif1|null|or|output|package|packed|parameter|pmos|posedge|primitive|priority|program|property|protected|pull0|pull1|pulldown|pullup|pulsestyle_ondetect|pulsestyle_onevent|pure|rand|randc|randcase|randsequence|rcmos|real|realtime|ref|reg|release|repeat|return|rnmos|rpmos|rtran|rtranif0|rtranif1|scalared|sequence|shortint|shortreal|showcancelled|signed|small|solve|specify|specparam|static|string|strong0|strong1|struct|super|supply0|supply1|table|tagged|task|this|throughout|time|timeprecision|timeunit|tran|tranif0|tranif1|tri|tri0|tri1|triand|trior|trireg|type|typedef|union|unique|unsigned|use|uwire|var|vectored|virtual|void|wait|wait_order|wand|weak0|weak1|while|wildcard|wire|with|within|wor|xnor|xor)\b/,important:/\b(?:always|always_comb|always_ff|always_latch)\b(?: *@)?/,number:/\B##?\d+|(?:\b\d+)?'[odbh] ?[\da-fzx_?]+|\b(?:\d*[._])?\d+(?:e[-+]?\d+)?/i,operator:/[-+{}^~%*\/?=!<>&|]+/,punctuation:/[[\];(),.:]/}}return V0}var K0,R2;function tme(){if(R2)return K0;R2=1,K0=e,e.displayName="vhdl",e.aliases=[];function e(t){t.languages.vhdl={comment:/--.+/,"vhdl-vectors":{pattern:/\b[oxb]"[\da-f_]+"|"[01uxzwlh-]+"/i,alias:"number"},"quoted-function":{pattern:/"\S+?"(?=\()/,alias:"function"},string:/"(?:[^\\"\r\n]|\\(?:\r\n|[\s\S]))*"/,constant:/\b(?:library|use)\b/i,keyword:/\b(?:'active|'ascending|'base|'delayed|'driving|'driving_value|'event|'high|'image|'instance_name|'last_active|'last_event|'last_value|'left|'leftof|'length|'low|'path_name|'pos|'pred|'quiet|'range|'reverse_range|'right|'rightof|'simple_name|'stable|'succ|'transaction|'val|'value|access|after|alias|all|architecture|array|assert|attribute|begin|block|body|buffer|bus|case|component|configuration|constant|disconnect|downto|else|elsif|end|entity|exit|file|for|function|generate|generic|group|guarded|if|impure|in|inertial|inout|is|label|library|linkage|literal|loop|map|new|next|null|of|on|open|others|out|package|port|postponed|procedure|process|pure|range|record|register|reject|report|return|select|severity|shared|signal|subtype|then|to|transport|type|unaffected|units|until|use|variable|wait|when|while|with)\b/i,boolean:/\b(?:false|true)\b/i,function:/\w+(?=\()/,number:/'[01uxzwlh-]'|\b(?:\d+#[\da-f_.]+#|\d[\d_.]*)(?:e[-+]?\d+)?/i,operator:/[<>]=?|:=|[-+*/&=]|\b(?:abs|and|mod|nand|nor|not|or|rem|rol|ror|sla|sll|sra|srl|xnor|xor)\b/i,punctuation:/[{}[\];(),.:]/}}return K0}var Y0,N2;function nme(){if(N2)return Y0;N2=1,Y0=e,e.displayName="vim",e.aliases=[];function e(t){t.languages.vim={string:/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\r\n]|'')*'/,comment:/".*/,function:/\b\w+(?=\()/,keyword:/\b(?:N|Next|P|Print|X|XMLent|XMLns|ab|abbreviate|abc|abclear|abo|aboveleft|al|all|ar|arga|argadd|argd|argdelete|argdo|arge|argedit|argg|argglobal|argl|arglocal|args|argu|argument|as|ascii|b|bN|bNext|ba|bad|badd|ball|bd|bdelete|be|bel|belowright|bf|bfirst|bl|blast|bm|bmodified|bn|bnext|bo|botright|bp|bprevious|br|brea|break|breaka|breakadd|breakd|breakdel|breakl|breaklist|brewind|bro|browse|bufdo|buffer|buffers|bun|bunload|bw|bwipeout|c|cN|cNext|cNfcNfile|ca|cabbrev|cabc|cabclear|cad|caddb|caddbuffer|caddexpr|caddf|caddfile|cal|call|cat|catch|cb|cbuffer|cc|ccl|cclose|cd|ce|center|cex|cexpr|cf|cfile|cfir|cfirst|cg|cgetb|cgetbuffer|cgete|cgetexpr|cgetfile|change|changes|chd|chdir|che|checkpath|checkt|checktime|cl|cla|clast|clist|clo|close|cmapc|cmapclear|cn|cnew|cnewer|cnext|cnf|cnfile|cnorea|cnoreabbrev|co|col|colder|colo|colorscheme|comc|comclear|comp|compiler|con|conf|confirm|continue|cope|copen|copy|cp|cpf|cpfile|cprevious|cq|cquit|cr|crewind|cu|cuna|cunabbrev|cunmap|cw|cwindow|d|debugg|debuggreedy|delc|delcommand|delete|delf|delfunction|delm|delmarks|di|diffg|diffget|diffoff|diffpatch|diffpu|diffput|diffsplit|diffthis|diffu|diffupdate|dig|digraphs|display|dj|djump|dl|dlist|dr|drop|ds|dsearch|dsp|dsplit|e|earlier|echoe|echoerr|echom|echomsg|echon|edit|el|else|elsei|elseif|em|emenu|en|endf|endfo|endfor|endfun|endfunction|endif|endt|endtry|endw|endwhile|ene|enew|ex|exi|exit|exu|exusage|f|file|files|filetype|fin|fina|finally|find|fini|finish|fir|first|fix|fixdel|fo|fold|foldc|foldclose|foldd|folddoc|folddoclosed|folddoopen|foldo|foldopen|for|fu|fun|function|go|goto|gr|grep|grepa|grepadd|h|ha|hardcopy|help|helpf|helpfind|helpg|helpgrep|helpt|helptags|hid|hide|his|history|ia|iabbrev|iabc|iabclear|if|ij|ijump|il|ilist|imapc|imapclear|in|inorea|inoreabbrev|isearch|isp|isplit|iu|iuna|iunabbrev|iunmap|j|join|ju|jumps|k|kee|keepalt|keepj|keepjumps|keepmarks|l|lN|lNext|lNf|lNfile|la|lad|laddb|laddbuffer|laddexpr|laddf|laddfile|lan|language|last|later|lb|lbuffer|lc|lcd|lch|lchdir|lcl|lclose|left|lefta|leftabove|let|lex|lexpr|lf|lfile|lfir|lfirst|lg|lgetb|lgetbuffer|lgete|lgetexpr|lgetfile|lgr|lgrep|lgrepa|lgrepadd|lh|lhelpgrep|list|ll|lla|llast|lli|llist|lm|lmak|lmake|lmap|lmapc|lmapclear|ln|lne|lnew|lnewer|lnext|lnf|lnfile|lnoremap|lo|loadview|loc|lockmarks|lockv|lockvar|lol|lolder|lop|lopen|lp|lpf|lpfile|lprevious|lr|lrewind|ls|lt|ltag|lu|lunmap|lv|lvimgrep|lvimgrepa|lvimgrepadd|lw|lwindow|m|ma|mak|make|mark|marks|mat|match|menut|menutranslate|mk|mkexrc|mks|mksession|mksp|mkspell|mkv|mkvie|mkview|mkvimrc|mod|mode|move|mz|mzf|mzfile|mzscheme|n|nbkey|new|next|nmapc|nmapclear|noh|nohlsearch|norea|noreabbrev|nu|number|nun|nunmap|o|omapc|omapclear|on|only|open|opt|options|ou|ounmap|p|pc|pclose|pe|ped|pedit|perl|perld|perldo|po|pop|popu|popup|pp|ppop|pre|preserve|prev|previous|print|prof|profd|profdel|profile|promptf|promptfind|promptr|promptrepl|ps|psearch|ptN|ptNext|pta|ptag|ptf|ptfirst|ptj|ptjump|ptl|ptlast|ptn|ptnext|ptp|ptprevious|ptr|ptrewind|pts|ptselect|pu|put|pw|pwd|py|pyf|pyfile|python|q|qa|qall|quit|quita|quitall|r|read|rec|recover|red|redi|redir|redo|redr|redraw|redraws|redrawstatus|reg|registers|res|resize|ret|retab|retu|return|rew|rewind|ri|right|rightb|rightbelow|ru|rub|ruby|rubyd|rubydo|rubyf|rubyfile|runtime|rv|rviminfo|sN|sNext|sa|sal|sall|san|sandbox|sargument|sav|saveas|sb|sbN|sbNext|sba|sball|sbf|sbfirst|sbl|sblast|sbm|sbmodified|sbn|sbnext|sbp|sbprevious|sbr|sbrewind|sbuffer|scrip|scripte|scriptencoding|scriptnames|se|set|setf|setfiletype|setg|setglobal|setl|setlocal|sf|sfind|sfir|sfirst|sh|shell|sign|sil|silent|sim|simalt|sl|sla|slast|sleep|sm|smagic|smap|smapc|smapclear|sme|smenu|sn|snext|sni|sniff|sno|snomagic|snor|snoremap|snoreme|snoremenu|so|sor|sort|source|sp|spe|spelld|spelldump|spellgood|spelli|spellinfo|spellr|spellrepall|spellu|spellundo|spellw|spellwrong|split|spr|sprevious|sre|srewind|st|sta|stag|star|startg|startgreplace|startinsert|startr|startreplace|stj|stjump|stop|stopi|stopinsert|sts|stselect|sun|sunhide|sunm|sunmap|sus|suspend|sv|sview|syncbind|t|tN|tNext|ta|tab|tabN|tabNext|tabc|tabclose|tabd|tabdo|tabe|tabedit|tabf|tabfind|tabfir|tabfirst|tabl|tablast|tabm|tabmove|tabn|tabnew|tabnext|tabo|tabonly|tabp|tabprevious|tabr|tabrewind|tabs|tag|tags|tc|tcl|tcld|tcldo|tclf|tclfile|te|tearoff|tf|tfirst|th|throw|tj|tjump|tl|tlast|tm|tmenu|tn|tnext|to|topleft|tp|tprevious|tr|trewind|try|ts|tselect|tu|tunmenu|u|una|unabbreviate|undo|undoj|undojoin|undol|undolist|unh|unhide|unlet|unlo|unlockvar|unm|unmap|up|update|ve|verb|verbose|version|vert|vertical|vi|vie|view|vim|vimgrep|vimgrepa|vimgrepadd|visual|viu|viusage|vmapc|vmapclear|vne|vnew|vs|vsplit|vu|vunmap|w|wN|wNext|wa|wall|wh|while|win|winc|wincmd|windo|winp|winpos|winsize|wn|wnext|wp|wprevious|wq|wqa|wqall|write|ws|wsverb|wv|wviminfo|x|xa|xall|xit|xm|xmap|xmapc|xmapclear|xme|xmenu|xn|xnoremap|xnoreme|xnoremenu|xu|xunmap|y|yank)\b/,builtin:/\b(?:acd|ai|akm|aleph|allowrevins|altkeymap|ambiwidth|ambw|anti|antialias|arab|arabic|arabicshape|ari|arshape|autochdir|autocmd|autoindent|autoread|autowrite|autowriteall|aw|awa|background|backspace|backup|backupcopy|backupdir|backupext|backupskip|balloondelay|ballooneval|balloonexpr|bdir|bdlay|beval|bex|bexpr|bg|bh|bin|binary|biosk|bioskey|bk|bkc|bomb|breakat|brk|browsedir|bs|bsdir|bsk|bt|bufhidden|buflisted|buftype|casemap|ccv|cdpath|cedit|cfu|ch|charconvert|ci|cin|cindent|cink|cinkeys|cino|cinoptions|cinw|cinwords|clipboard|cmdheight|cmdwinheight|cmp|cms|columns|com|comments|commentstring|compatible|complete|completefunc|completeopt|consk|conskey|copyindent|cot|cpo|cpoptions|cpt|cscopepathcomp|cscopeprg|cscopequickfix|cscopetag|cscopetagorder|cscopeverbose|cspc|csprg|csqf|cst|csto|csverb|cuc|cul|cursorcolumn|cursorline|cwh|debug|deco|def|define|delcombine|dex|dg|dict|dictionary|diff|diffexpr|diffopt|digraph|dip|dir|directory|dy|ea|ead|eadirection|eb|ed|edcompatible|ef|efm|ei|ek|enc|encoding|endofline|eol|ep|equalalways|equalprg|errorbells|errorfile|errorformat|esckeys|et|eventignore|expandtab|exrc|fcl|fcs|fdc|fde|fdi|fdl|fdls|fdm|fdn|fdo|fdt|fen|fenc|fencs|fex|ff|ffs|fileencoding|fileencodings|fileformat|fileformats|fillchars|fk|fkmap|flp|fml|fmr|foldcolumn|foldenable|foldexpr|foldignore|foldlevel|foldlevelstart|foldmarker|foldmethod|foldminlines|foldnestmax|foldtext|formatexpr|formatlistpat|formatoptions|formatprg|fp|fs|fsync|ft|gcr|gd|gdefault|gfm|gfn|gfs|gfw|ghr|gp|grepformat|grepprg|gtl|gtt|guicursor|guifont|guifontset|guifontwide|guiheadroom|guioptions|guipty|guitablabel|guitabtooltip|helpfile|helpheight|helplang|hf|hh|hi|hidden|highlight|hk|hkmap|hkmapp|hkp|hl|hlg|hls|hlsearch|ic|icon|iconstring|ignorecase|im|imactivatekey|imak|imc|imcmdline|imd|imdisable|imi|iminsert|ims|imsearch|inc|include|includeexpr|incsearch|inde|indentexpr|indentkeys|indk|inex|inf|infercase|insertmode|invacd|invai|invakm|invallowrevins|invaltkeymap|invanti|invantialias|invar|invarab|invarabic|invarabicshape|invari|invarshape|invautochdir|invautoindent|invautoread|invautowrite|invautowriteall|invaw|invawa|invbackup|invballooneval|invbeval|invbin|invbinary|invbiosk|invbioskey|invbk|invbl|invbomb|invbuflisted|invcf|invci|invcin|invcindent|invcompatible|invconfirm|invconsk|invconskey|invcopyindent|invcp|invcscopetag|invcscopeverbose|invcst|invcsverb|invcuc|invcul|invcursorcolumn|invcursorline|invdeco|invdelcombine|invdg|invdiff|invdigraph|invdisable|invea|inveb|inved|invedcompatible|invek|invendofline|inveol|invequalalways|inverrorbells|invesckeys|invet|invex|invexpandtab|invexrc|invfen|invfk|invfkmap|invfoldenable|invgd|invgdefault|invguipty|invhid|invhidden|invhk|invhkmap|invhkmapp|invhkp|invhls|invhlsearch|invic|invicon|invignorecase|invim|invimc|invimcmdline|invimd|invincsearch|invinf|invinfercase|invinsertmode|invis|invjoinspaces|invjs|invlazyredraw|invlbr|invlinebreak|invlisp|invlist|invloadplugins|invlpl|invlz|invma|invmacatsui|invmagic|invmh|invml|invmod|invmodeline|invmodifiable|invmodified|invmore|invmousef|invmousefocus|invmousehide|invnu|invnumber|invodev|invopendevice|invpaste|invpi|invpreserveindent|invpreviewwindow|invprompt|invpvw|invreadonly|invremap|invrestorescreen|invrevins|invri|invrightleft|invrightleftcmd|invrl|invrlc|invro|invrs|invru|invruler|invsb|invsc|invscb|invscrollbind|invscs|invsecure|invsft|invshellslash|invshelltemp|invshiftround|invshortname|invshowcmd|invshowfulltag|invshowmatch|invshowmode|invsi|invsm|invsmartcase|invsmartindent|invsmarttab|invsmd|invsn|invsol|invspell|invsplitbelow|invsplitright|invspr|invsr|invssl|invsta|invstartofline|invstmp|invswapfile|invswf|invta|invtagbsearch|invtagrelative|invtagstack|invtbi|invtbidi|invtbs|invtermbidi|invterse|invtextauto|invtextmode|invtf|invtgst|invtildeop|invtimeout|invtitle|invto|invtop|invtr|invttimeout|invttybuiltin|invttyfast|invtx|invvb|invvisualbell|invwa|invwarn|invwb|invweirdinvert|invwfh|invwfw|invwildmenu|invwinfixheight|invwinfixwidth|invwiv|invwmnu|invwrap|invwrapscan|invwrite|invwriteany|invwritebackup|invws|isf|isfname|isi|isident|isk|iskeyword|isprint|joinspaces|js|key|keymap|keymodel|keywordprg|km|kmp|kp|langmap|langmenu|laststatus|lazyredraw|lbr|lcs|linebreak|lines|linespace|lisp|lispwords|listchars|loadplugins|lpl|lsp|lz|macatsui|magic|makeef|makeprg|matchpairs|matchtime|maxcombine|maxfuncdepth|maxmapdepth|maxmem|maxmempattern|maxmemtot|mco|mef|menuitems|mfd|mh|mis|mkspellmem|ml|mls|mm|mmd|mmp|mmt|modeline|modelines|modifiable|modified|more|mouse|mousef|mousefocus|mousehide|mousem|mousemodel|mouses|mouseshape|mouset|mousetime|mp|mps|msm|mzq|mzquantum|nf|noacd|noai|noakm|noallowrevins|noaltkeymap|noanti|noantialias|noar|noarab|noarabic|noarabicshape|noari|noarshape|noautochdir|noautoindent|noautoread|noautowrite|noautowriteall|noaw|noawa|nobackup|noballooneval|nobeval|nobin|nobinary|nobiosk|nobioskey|nobk|nobl|nobomb|nobuflisted|nocf|noci|nocin|nocindent|nocompatible|noconfirm|noconsk|noconskey|nocopyindent|nocp|nocscopetag|nocscopeverbose|nocst|nocsverb|nocuc|nocul|nocursorcolumn|nocursorline|nodeco|nodelcombine|nodg|nodiff|nodigraph|nodisable|noea|noeb|noed|noedcompatible|noek|noendofline|noeol|noequalalways|noerrorbells|noesckeys|noet|noex|noexpandtab|noexrc|nofen|nofk|nofkmap|nofoldenable|nogd|nogdefault|noguipty|nohid|nohidden|nohk|nohkmap|nohkmapp|nohkp|nohls|noic|noicon|noignorecase|noim|noimc|noimcmdline|noimd|noincsearch|noinf|noinfercase|noinsertmode|nois|nojoinspaces|nojs|nolazyredraw|nolbr|nolinebreak|nolisp|nolist|noloadplugins|nolpl|nolz|noma|nomacatsui|nomagic|nomh|noml|nomod|nomodeline|nomodifiable|nomodified|nomore|nomousef|nomousefocus|nomousehide|nonu|nonumber|noodev|noopendevice|nopaste|nopi|nopreserveindent|nopreviewwindow|noprompt|nopvw|noreadonly|noremap|norestorescreen|norevins|nori|norightleft|norightleftcmd|norl|norlc|noro|nors|noru|noruler|nosb|nosc|noscb|noscrollbind|noscs|nosecure|nosft|noshellslash|noshelltemp|noshiftround|noshortname|noshowcmd|noshowfulltag|noshowmatch|noshowmode|nosi|nosm|nosmartcase|nosmartindent|nosmarttab|nosmd|nosn|nosol|nospell|nosplitbelow|nosplitright|nospr|nosr|nossl|nosta|nostartofline|nostmp|noswapfile|noswf|nota|notagbsearch|notagrelative|notagstack|notbi|notbidi|notbs|notermbidi|noterse|notextauto|notextmode|notf|notgst|notildeop|notimeout|notitle|noto|notop|notr|nottimeout|nottybuiltin|nottyfast|notx|novb|novisualbell|nowa|nowarn|nowb|noweirdinvert|nowfh|nowfw|nowildmenu|nowinfixheight|nowinfixwidth|nowiv|nowmnu|nowrap|nowrapscan|nowrite|nowriteany|nowritebackup|nows|nrformats|numberwidth|nuw|odev|oft|ofu|omnifunc|opendevice|operatorfunc|opfunc|osfiletype|pa|para|paragraphs|paste|pastetoggle|patchexpr|patchmode|path|pdev|penc|pex|pexpr|pfn|ph|pheader|pi|pm|pmbcs|pmbfn|popt|preserveindent|previewheight|previewwindow|printdevice|printencoding|printexpr|printfont|printheader|printmbcharset|printmbfont|printoptions|prompt|pt|pumheight|pvh|pvw|qe|quoteescape|readonly|remap|report|restorescreen|revins|rightleft|rightleftcmd|rl|rlc|ro|rs|rtp|ruf|ruler|rulerformat|runtimepath|sbo|sc|scb|scr|scroll|scrollbind|scrolljump|scrolloff|scrollopt|scs|sect|sections|secure|sel|selection|selectmode|sessionoptions|sft|shcf|shellcmdflag|shellpipe|shellquote|shellredir|shellslash|shelltemp|shelltype|shellxquote|shiftround|shiftwidth|shm|shortmess|shortname|showbreak|showcmd|showfulltag|showmatch|showmode|showtabline|shq|si|sidescroll|sidescrolloff|siso|sj|slm|smartcase|smartindent|smarttab|smc|smd|softtabstop|sol|spc|spell|spellcapcheck|spellfile|spelllang|spellsuggest|spf|spl|splitbelow|splitright|sps|sr|srr|ss|ssl|ssop|stal|startofline|statusline|stl|stmp|su|sua|suffixes|suffixesadd|sw|swapfile|swapsync|swb|swf|switchbuf|sws|sxq|syn|synmaxcol|syntax|t_AB|t_AF|t_AL|t_CS|t_CV|t_Ce|t_Co|t_Cs|t_DL|t_EI|t_F1|t_F2|t_F3|t_F4|t_F5|t_F6|t_F7|t_F8|t_F9|t_IE|t_IS|t_K1|t_K3|t_K4|t_K5|t_K6|t_K7|t_K8|t_K9|t_KA|t_KB|t_KC|t_KD|t_KE|t_KF|t_KG|t_KH|t_KI|t_KJ|t_KK|t_KL|t_RI|t_RV|t_SI|t_Sb|t_Sf|t_WP|t_WS|t_ZH|t_ZR|t_al|t_bc|t_cd|t_ce|t_cl|t_cm|t_cs|t_da|t_db|t_dl|t_fs|t_k1|t_k2|t_k3|t_k4|t_k5|t_k6|t_k7|t_k8|t_k9|t_kB|t_kD|t_kI|t_kN|t_kP|t_kb|t_kd|t_ke|t_kh|t_kl|t_kr|t_ks|t_ku|t_le|t_mb|t_md|t_me|t_mr|t_ms|t_nd|t_op|t_se|t_so|t_sr|t_te|t_ti|t_ts|t_ue|t_us|t_ut|t_vb|t_ve|t_vi|t_vs|t_xs|tabline|tabpagemax|tabstop|tagbsearch|taglength|tagrelative|tagstack|tal|tb|tbi|tbidi|tbis|tbs|tenc|term|termbidi|termencoding|terse|textauto|textmode|textwidth|tgst|thesaurus|tildeop|timeout|timeoutlen|title|titlelen|titleold|titlestring|toolbar|toolbariconsize|top|tpm|tsl|tsr|ttimeout|ttimeoutlen|ttm|tty|ttybuiltin|ttyfast|ttym|ttymouse|ttyscroll|ttytype|tw|tx|uc|ul|undolevels|updatecount|updatetime|ut|vb|vbs|vdir|verbosefile|vfile|viewdir|viewoptions|viminfo|virtualedit|visualbell|vop|wak|warn|wb|wc|wcm|wd|weirdinvert|wfh|wfw|whichwrap|wi|wig|wildchar|wildcharm|wildignore|wildmenu|wildmode|wildoptions|wim|winaltkeys|window|winfixheight|winfixwidth|winheight|winminheight|winminwidth|winwidth|wiv|wiw|wm|wmh|wmnu|wmw|wop|wrap|wrapmargin|wrapscan|writeany|writebackup|writedelay|ww)\b/,number:/\b(?:0x[\da-f]+|\d+(?:\.\d+)?)\b/i,operator:/\|\||&&|[-+.]=?|[=!](?:[=~][#?]?)?|[<>]=?[#?]?|[*\/%?]|\b(?:is(?:not)?)\b/,punctuation:/[{}[\](),;:]/}}return Y0}var X0,k2;function rme(){if(k2)return X0;k2=1,X0=e,e.displayName="visualBasic",e.aliases=[];function e(t){t.languages["visual-basic"]={comment:{pattern:/(?:['‘’]|REM\b)(?:[^\r\n_]|_(?:\r\n?|\n)?)*/i,inside:{keyword:/^REM/i}},directive:{pattern:/#(?:Const|Else|ElseIf|End|ExternalChecksum|ExternalSource|If|Region)(?:\b_[ \t]*(?:\r\n?|\n)|.)+/i,alias:"property",greedy:!0},string:{pattern:/\$?["“”](?:["“”]{2}|[^"“”])*["“”]C?/i,greedy:!0},date:{pattern:/#[ \t]*(?:\d+([/-])\d+\1\d+(?:[ \t]+(?:\d+[ \t]*(?:AM|PM)|\d+:\d+(?::\d+)?(?:[ \t]*(?:AM|PM))?))?|\d+[ \t]*(?:AM|PM)|\d+:\d+(?::\d+)?(?:[ \t]*(?:AM|PM))?)[ \t]*#/i,alias:"number"},number:/(?:(?:\b\d+(?:\.\d+)?|\.\d+)(?:E[+-]?\d+)?|&[HO][\dA-F]+)(?:[FRD]|U?[ILS])?/i,boolean:/\b(?:False|Nothing|True)\b/i,keyword:/\b(?:AddHandler|AddressOf|Alias|And(?:Also)?|As|Boolean|ByRef|Byte|ByVal|Call|Case|Catch|C(?:Bool|Byte|Char|Date|Dbl|Dec|Int|Lng|Obj|SByte|Short|Sng|Str|Type|UInt|ULng|UShort)|Char|Class|Const|Continue|Currency|Date|Decimal|Declare|Default|Delegate|Dim|DirectCast|Do|Double|Each|Else(?:If)?|End(?:If)?|Enum|Erase|Error|Event|Exit|Finally|For|Friend|Function|Get(?:Type|XMLNamespace)?|Global|GoSub|GoTo|Handles|If|Implements|Imports|In|Inherits|Integer|Interface|Is|IsNot|Let|Lib|Like|Long|Loop|Me|Mod|Module|Must(?:Inherit|Override)|My(?:Base|Class)|Namespace|Narrowing|New|Next|Not(?:Inheritable|Overridable)?|Object|Of|On|Operator|Option(?:al)?|Or(?:Else)?|Out|Overloads|Overridable|Overrides|ParamArray|Partial|Private|Property|Protected|Public|RaiseEvent|ReadOnly|ReDim|RemoveHandler|Resume|Return|SByte|Select|Set|Shadows|Shared|short|Single|Static|Step|Stop|String|Structure|Sub|SyncLock|Then|Throw|To|Try|TryCast|Type|TypeOf|U(?:Integer|Long|Short)|Until|Using|Variant|Wend|When|While|Widening|With(?:Events)?|WriteOnly|Xor)\b/i,operator:/[+\-*/\\^<=>&#@$%!]|\b_(?=[ \t]*[\r\n])/,punctuation:/[{}().,:?]/},t.languages.vb=t.languages["visual-basic"],t.languages.vba=t.languages["visual-basic"]}return X0}var Z0,w2;function ime(){if(w2)return Z0;w2=1,Z0=e,e.displayName="warpscript",e.aliases=[];function e(t){t.languages.warpscript={comment:/#.*|\/\/.*|\/\*[\s\S]*?\*\//,string:{pattern:/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'|<'(?:[^\\']|'(?!>)|\\.)*'>/,greedy:!0},variable:/\$\S+/,macro:{pattern:/@\S+/,alias:"property"},keyword:/\b(?:BREAK|CHECKMACRO|CONTINUE|CUDF|DEFINED|DEFINEDMACRO|EVAL|FAIL|FOR|FOREACH|FORSTEP|IFT|IFTE|MSGFAIL|NRETURN|RETHROW|RETURN|SWITCH|TRY|UDF|UNTIL|WHILE)\b/,number:/[+-]?\b(?:NaN|Infinity|\d+(?:\.\d*)?(?:[Ee][+-]?\d+)?|0x[\da-fA-F]+|0b[01]+)\b/,boolean:/\b(?:F|T|false|true)\b/,punctuation:/<%|%>|[{}[\]()]/,operator:/==|&&?|\|\|?|\*\*?|>>>?|<<|[<>!~]=?|[-/%^]|\+!?|\b(?:AND|NOT|OR)\b/}}return Z0}var Q0,O2;function ame(){if(O2)return Q0;O2=1,Q0=e,e.displayName="wasm",e.aliases=[];function e(t){t.languages.wasm={comment:[/\(;[\s\S]*?;\)/,{pattern:/;;.*/,greedy:!0}],string:{pattern:/"(?:\\[\s\S]|[^"\\])*"/,greedy:!0},keyword:[{pattern:/\b(?:align|offset)=/,inside:{operator:/=/}},{pattern:/\b(?:(?:f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|neg?|nearest|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|sqrt|store(?:8|16|32)?|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))?|memory\.(?:grow|size))\b/,inside:{punctuation:/\./}},/\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\b/],variable:/\$[\w!#$%&'*+\-./:<=>?@\\^`|~]+/,number:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/,punctuation:/[()]/}}return Q0}var J0,x2;function ome(){if(x2)return J0;x2=1,J0=e,e.displayName="webIdl",e.aliases=[];function e(t){(function(n){var r=/(?:\B-|\b_|\b)[A-Za-z][\w-]*(?![\w-])/.source,i="(?:"+/\b(?:unsigned\s+)?long\s+long(?![\w-])/.source+"|"+/\b(?:unrestricted|unsigned)\s+[a-z]+(?![\w-])/.source+"|"+/(?!(?:unrestricted|unsigned)\b)/.source+r+/(?:\s*<(?:[^<>]|<[^<>]*>)*>)?/.source+")"+/(?:\s*\?)?/.source,a={};n.languages["web-idl"]={comment:{pattern:/\/\/.*|\/\*[\s\S]*?\*\//,greedy:!0},string:{pattern:/"[^"]*"/,greedy:!0},namespace:{pattern:RegExp(/(\bnamespace\s+)/.source+r),lookbehind:!0},"class-name":[{pattern:/(^|[^\w-])(?:iterable|maplike|setlike)\s*<(?:[^<>]|<[^<>]*>)*>/,lookbehind:!0,inside:a},{pattern:RegExp(/(\b(?:attribute|const|deleter|getter|optional|setter)\s+)/.source+i),lookbehind:!0,inside:a},{pattern:RegExp("("+/\bcallback\s+/.source+r+/\s*=\s*/.source+")"+i),lookbehind:!0,inside:a},{pattern:RegExp(/(\btypedef\b\s*)/.source+i),lookbehind:!0,inside:a},{pattern:RegExp(/(\b(?:callback|dictionary|enum|interface(?:\s+mixin)?)\s+)(?!(?:interface|mixin)\b)/.source+r),lookbehind:!0},{pattern:RegExp(/(:\s*)/.source+r),lookbehind:!0},RegExp(r+/(?=\s+(?:implements|includes)\b)/.source),{pattern:RegExp(/(\b(?:implements|includes)\s+)/.source+r),lookbehind:!0},{pattern:RegExp(i+"(?="+/\s*(?:\.{3}\s*)?/.source+r+/\s*[(),;=]/.source+")"),inside:a}],builtin:/\b(?:ArrayBuffer|BigInt64Array|BigUint64Array|ByteString|DOMString|DataView|Float32Array|Float64Array|FrozenArray|Int16Array|Int32Array|Int8Array|ObservableArray|Promise|USVString|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray)\b/,keyword:[/\b(?:async|attribute|callback|const|constructor|deleter|dictionary|enum|getter|implements|includes|inherit|interface|mixin|namespace|null|optional|or|partial|readonly|required|setter|static|stringifier|typedef|unrestricted)\b/,/\b(?:any|bigint|boolean|byte|double|float|iterable|long|maplike|object|octet|record|sequence|setlike|short|symbol|undefined|unsigned|void)\b/],boolean:/\b(?:false|true)\b/,number:{pattern:/(^|[^\w-])-?(?:0x[0-9a-f]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|NaN|Infinity)(?![\w-])/i,lookbehind:!0},operator:/\.{3}|[=:?<>-]/,punctuation:/[(){}[\].,;]/};for(var o in n.languages["web-idl"])o!=="class-name"&&(a[o]=n.languages["web-idl"][o]);n.languages.webidl=n.languages["web-idl"]})(t)}return J0}var ey,D2;function sme(){if(D2)return ey;D2=1,ey=e,e.displayName="wiki",e.aliases=[];function e(t){t.languages.wiki=t.languages.extend("markup",{"block-comment":{pattern:/(^|[^\\])\/\*[\s\S]*?\*\//,lookbehind:!0,alias:"comment"},heading:{pattern:/^(=+)[^=\r\n].*?\1/m,inside:{punctuation:/^=+|=+$/,important:/.+/}},emphasis:{pattern:/('{2,5}).+?\1/,inside:{"bold-italic":{pattern:/(''''').+?(?=\1)/,lookbehind:!0,alias:["bold","italic"]},bold:{pattern:/(''')[^'](?:.*?[^'])?(?=\1)/,lookbehind:!0},italic:{pattern:/('')[^'](?:.*?[^'])?(?=\1)/,lookbehind:!0},punctuation:/^''+|''+$/}},hr:{pattern:/^-{4,}/m,alias:"punctuation"},url:[/ISBN +(?:97[89][ -]?)?(?:\d[ -]?){9}[\dx]\b|(?:PMID|RFC) +\d+/i,/\[\[.+?\]\]|\[.+?\]/],variable:[/__[A-Z]+__/,/\{{3}.+?\}{3}/,/\{\{.+?\}\}/],symbol:[/^#redirect/im,/~{3,5}/],"table-tag":{pattern:/((?:^|[|!])[|!])[^|\r\n]+\|(?!\|)/m,lookbehind:!0,inside:{"table-bar":{pattern:/\|$/,alias:"punctuation"},rest:t.languages.markup.tag.inside}},punctuation:/^(?:\{\||\|\}|\|-|[*#:;!|])|\|\||!!/m}),t.languages.insertBefore("wiki","tag",{nowiki:{pattern:/<(nowiki|pre|source)\b[^>]*>[\s\S]*?<\/\1>/i,inside:{tag:{pattern:/<(?:nowiki|pre|source)\b[^>]*>|<\/(?:nowiki|pre|source)>/i,inside:t.languages.markup.tag.inside}}}})}return ey}var ty,L2;function lme(){if(L2)return ty;L2=1,ty=e,e.displayName="wolfram",e.aliases=["mathematica","wl","nb"];function e(t){t.languages.wolfram={comment:/\(\*(?:\(\*(?:[^*]|\*(?!\)))*\*\)|(?!\(\*)[\s\S])*?\*\)/,string:{pattern:/"(?:\\.|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:Abs|AbsArg|Accuracy|Block|Do|For|Function|If|Manipulate|Module|Nest|NestList|None|Return|Switch|Table|Which|While)\b/,context:{pattern:/\b\w+`+\w*/,alias:"class-name"},blank:{pattern:/\b\w+_\b/,alias:"regex"},"global-variable":{pattern:/\$\w+/,alias:"variable"},boolean:/\b(?:False|True)\b/,number:/(?:\b(?=\d)|\B(?=\.))(?:0[bo])?(?:(?:\d|0x[\da-f])[\da-f]*(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?j?\b/i,operator:/\/\.|;|=\.|\^=|\^:=|:=|<<|>>|<\||\|>|:>|\|->|->|<-|@@@|@@|@|\/@|=!=|===|==|=|\+|-|\^|\[\/-+%=\]=?|!=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},t.languages.mathematica=t.languages.wolfram,t.languages.wl=t.languages.wolfram,t.languages.nb=t.languages.wolfram}return ty}var ny,F2;function ume(){if(F2)return ny;F2=1,ny=e,e.displayName="wren",e.aliases=[];function e(t){t.languages.wren={comment:[{pattern:/\/\*(?:[^*/]|\*(?!\/)|\/(?!\*)|\/\*(?:[^*/]|\*(?!\/)|\/(?!\*)|\/\*(?:[^*/]|\*(?!\/)|\/(?!\*))*\*\/)*\*\/)*\*\//,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],"triple-quoted-string":{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string"},"string-literal":null,hashbang:{pattern:/^#!\/.+/,greedy:!0,alias:"comment"},attribute:{pattern:/#!?[ \t\u3000]*\w+/,alias:"keyword"},"class-name":[{pattern:/(\bclass\s+)\w+/,lookbehind:!0},/\b[A-Z][a-z\d_]*\b/],constant:/\b[A-Z][A-Z\d_]*\b/,null:{pattern:/\bnull\b/,alias:"keyword"},keyword:/\b(?:as|break|class|construct|continue|else|for|foreign|if|import|in|is|return|static|super|this|var|while)\b/,boolean:/\b(?:false|true)\b/,number:/\b(?:0x[\da-f]+|\d+(?:\.\d+)?(?:e[+-]?\d+)?)\b/i,function:/\b[a-z_]\w*(?=\s*[({])/i,operator:/<<|>>|[=!<>]=?|&&|\|\||[-+*/%~^&|?:]|\.{2,3}/,punctuation:/[\[\](){}.,;]/},t.languages.wren["string-literal"]={pattern:/(^|[^\\"])"(?:[^\\"%]|\\[\s\S]|%(?!\()|%\((?:[^()]|\((?:[^()]|\([^)]*\))*\))*\))*"/,lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)%\((?:[^()]|\((?:[^()]|\([^)]*\))*\))*\)/,lookbehind:!0,inside:{expression:{pattern:/^(%\()[\s\S]+(?=\)$)/,lookbehind:!0,inside:t.languages.wren},"interpolation-punctuation":{pattern:/^%\(|\)$/,alias:"punctuation"}}},string:/[\s\S]+/}}}return ny}var ry,M2;function cme(){if(M2)return ry;M2=1,ry=e,e.displayName="xeora",e.aliases=["xeoracube"];function e(t){(function(n){n.languages.xeora=n.languages.extend("markup",{constant:{pattern:/\$(?:DomainContents|PageRenderDuration)\$/,inside:{punctuation:{pattern:/\$/}}},variable:{pattern:/\$@?(?:#+|[-+*~=^])?[\w.]+\$/,inside:{punctuation:{pattern:/[$.]/},operator:{pattern:/#+|[-+*~=^@]/}}},"function-inline":{pattern:/\$F:[-\w.]+\?[-\w.]+(?:,(?:(?:@[-#]*\w+\.[\w+.]\.*)*\|)*(?:(?:[\w+]|[-#*.~^]+[\w+]|=\S)(?:[^$=]|=+[^=])*=*|(?:@[-#]*\w+\.[\w+.]\.*)+(?:(?:[\w+]|[-#*~^][-#*.~^]*[\w+]|=\S)(?:[^$=]|=+[^=])*=*)?)?)?\$/,inside:{variable:{pattern:/(?:[,|])@?(?:#+|[-+*~=^])?[\w.]+/,inside:{punctuation:{pattern:/[,.|]/},operator:{pattern:/#+|[-+*~=^@]/}}},punctuation:{pattern:/\$\w:|[$:?.,|]/}},alias:"function"},"function-block":{pattern:/\$XF:\{[-\w.]+\?[-\w.]+(?:,(?:(?:@[-#]*\w+\.[\w+.]\.*)*\|)*(?:(?:[\w+]|[-#*.~^]+[\w+]|=\S)(?:[^$=]|=+[^=])*=*|(?:@[-#]*\w+\.[\w+.]\.*)+(?:(?:[\w+]|[-#*~^][-#*.~^]*[\w+]|=\S)(?:[^$=]|=+[^=])*=*)?)?)?\}:XF\$/,inside:{punctuation:{pattern:/[$:{}?.,|]/}},alias:"function"},"directive-inline":{pattern:/\$\w(?:#\d+\+?)?(?:\[[-\w.]+\])?:[-\/\w.]+\$/,inside:{punctuation:{pattern:/\$(?:\w:|C(?:\[|#\d))?|[:{[\]]/,inside:{tag:{pattern:/#\d/}}}},alias:"function"},"directive-block-open":{pattern:/\$\w+:\{|\$\w(?:#\d+\+?)?(?:\[[-\w.]+\])?:[-\w.]+:\{(?:![A-Z]+)?/,inside:{punctuation:{pattern:/\$(?:\w:|C(?:\[|#\d))?|[:{[\]]/,inside:{tag:{pattern:/#\d/}}},attribute:{pattern:/![A-Z]+$/,inside:{punctuation:{pattern:/!/}},alias:"keyword"}},alias:"function"},"directive-block-separator":{pattern:/\}:[-\w.]+:\{/,inside:{punctuation:{pattern:/[:{}]/}},alias:"function"},"directive-block-close":{pattern:/\}:[-\w.]+\$/,inside:{punctuation:{pattern:/[:{}$]/}},alias:"function"}}),n.languages.insertBefore("inside","punctuation",{variable:n.languages.xeora["function-inline"].inside.variable},n.languages.xeora["function-block"]),n.languages.xeoracube=n.languages.xeora})(t)}return ry}var iy,P2;function dme(){if(P2)return iy;P2=1,iy=e,e.displayName="xmlDoc",e.aliases=[];function e(t){(function(n){function r(s,l){n.languages[s]&&n.languages.insertBefore(s,"comment",{"doc-comment":l})}var i=n.languages.markup.tag,a={pattern:/\/\/\/.*/,greedy:!0,alias:"comment",inside:{tag:i}},o={pattern:/'''.*/,greedy:!0,alias:"comment",inside:{tag:i}};r("csharp",a),r("fsharp",a),r("vbnet",o)})(t)}return iy}var ay,B2;function pme(){if(B2)return ay;B2=1,ay=e,e.displayName="xojo",e.aliases=[];function e(t){t.languages.xojo={comment:{pattern:/(?:'|\/\/|Rem\b).+/i,greedy:!0},string:{pattern:/"(?:""|[^"])*"/,greedy:!0},number:[/(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:E[+-]?\d+)?/i,/&[bchou][a-z\d]+/i],directive:{pattern:/#(?:Else|ElseIf|Endif|If|Pragma)\b/i,alias:"property"},keyword:/\b(?:AddHandler|App|Array|As(?:signs)?|Auto|Boolean|Break|By(?:Ref|Val)|Byte|Call|Case|Catch|CFStringRef|CGFloat|Class|Color|Const|Continue|CString|Currency|CurrentMethodName|Declare|Delegate|Dim|Do(?:uble|wnTo)?|Each|Else(?:If)?|End|Enumeration|Event|Exception|Exit|Extends|False|Finally|For|Function|Get|GetTypeInfo|Global|GOTO|If|Implements|In|Inherits|Int(?:8|16|32|64|eger|erface)?|Lib|Loop|Me|Module|Next|Nil|Object|Optional|OSType|ParamArray|Private|Property|Protected|PString|Ptr|Raise(?:Event)?|ReDim|RemoveHandler|Return|Select(?:or)?|Self|Set|Shared|Short|Single|Soft|Static|Step|String|Sub|Super|Text|Then|To|True|Try|Ubound|UInt(?:8|16|32|64|eger)?|Until|Using|Var(?:iant)?|Wend|While|WindowPtr|WString)\b/i,operator:/<[=>]?|>=?|[+\-*\/\\^=]|\b(?:AddressOf|And|Ctype|IsA?|Mod|New|Not|Or|WeakAddressOf|Xor)\b/i,punctuation:/[.,;:()]/}}return ay}var oy,U2;function fme(){if(U2)return oy;U2=1,oy=e,e.displayName="xquery",e.aliases=[];function e(t){(function(n){n.languages.xquery=n.languages.extend("markup",{"xquery-comment":{pattern:/\(:[\s\S]*?:\)/,greedy:!0,alias:"comment"},string:{pattern:/(["'])(?:\1\1|(?!\1)[\s\S])*\1/,greedy:!0},extension:{pattern:/\(#.+?#\)/,alias:"symbol"},variable:/\$[-\w:]+/,axis:{pattern:/(^|[^-])(?:ancestor(?:-or-self)?|attribute|child|descendant(?:-or-self)?|following(?:-sibling)?|parent|preceding(?:-sibling)?|self)(?=::)/,lookbehind:!0,alias:"operator"},"keyword-operator":{pattern:/(^|[^:-])\b(?:and|castable as|div|eq|except|ge|gt|idiv|instance of|intersect|is|le|lt|mod|ne|or|union)\b(?=$|[^:-])/,lookbehind:!0,alias:"operator"},keyword:{pattern:/(^|[^:-])\b(?:as|ascending|at|base-uri|boundary-space|case|cast as|collation|construction|copy-namespaces|declare|default|descending|else|empty (?:greatest|least)|encoding|every|external|for|function|if|import|in|inherit|lax|let|map|module|namespace|no-inherit|no-preserve|option|order(?: by|ed|ing)?|preserve|return|satisfies|schema|some|stable|strict|strip|then|to|treat as|typeswitch|unordered|validate|variable|version|where|xquery)\b(?=$|[^:-])/,lookbehind:!0},function:/[\w-]+(?::[\w-]+)*(?=\s*\()/,"xquery-element":{pattern:/(element\s+)[\w-]+(?::[\w-]+)*/,lookbehind:!0,alias:"tag"},"xquery-attribute":{pattern:/(attribute\s+)[\w-]+(?::[\w-]+)*/,lookbehind:!0,alias:"attr-name"},builtin:{pattern:/(^|[^:-])\b(?:attribute|comment|document|element|processing-instruction|text|xs:(?:ENTITIES|ENTITY|ID|IDREFS?|NCName|NMTOKENS?|NOTATION|Name|QName|anyAtomicType|anyType|anyURI|base64Binary|boolean|byte|date|dateTime|dayTimeDuration|decimal|double|duration|float|gDay|gMonth|gMonthDay|gYear|gYearMonth|hexBinary|int|integer|language|long|negativeInteger|nonNegativeInteger|nonPositiveInteger|normalizedString|positiveInteger|short|string|time|token|unsigned(?:Byte|Int|Long|Short)|untyped(?:Atomic)?|yearMonthDuration))\b(?=$|[^:-])/,lookbehind:!0},number:/\b\d+(?:\.\d+)?(?:E[+-]?\d+)?/,operator:[/[+*=?|@]|\.\.?|:=|!=|<[=<]?|>[=>]?/,{pattern:/(\s)-(?=\s)/,lookbehind:!0}],punctuation:/[[\](){},;:/]/}),n.languages.xquery.tag.pattern=/<\/?(?!\d)[^\s>\/=$<%]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\[\s\S]|\{(?!\{)(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])+\}|(?!\1)[^\\])*\1|[^\s'">=]+))?)*\s*\/?>/,n.languages.xquery.tag.inside["attr-value"].pattern=/=(?:("|')(?:\\[\s\S]|\{(?!\{)(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])+\}|(?!\1)[^\\])*\1|[^\s'">=]+)/,n.languages.xquery.tag.inside["attr-value"].inside.punctuation=/^="|"$/,n.languages.xquery.tag.inside["attr-value"].inside.expression={pattern:/\{(?!\{)(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])+\}/,inside:n.languages.xquery,alias:"language-xquery"};var r=function(a){return typeof a=="string"?a:typeof a.content=="string"?a.content:a.content.map(r).join("")},i=function(a){for(var o=[],s=0;s0&&o[o.length-1].tagName===r(l.content[0].content[1])&&o.pop():l.content[l.content.length-1].content==="/>"||o.push({tagName:r(l.content[0].content[1]),openedBraces:0}):o.length>0&&l.type==="punctuation"&&l.content==="{"&&(!a[s+1]||a[s+1].type!=="punctuation"||a[s+1].content!=="{")&&(!a[s-1]||a[s-1].type!=="plain-text"||a[s-1].content!=="{")?o[o.length-1].openedBraces++:o.length>0&&o[o.length-1].openedBraces>0&&l.type==="punctuation"&&l.content==="}"?o[o.length-1].openedBraces--:l.type!=="comment"&&(u=!0)),(u||typeof l=="string")&&o.length>0&&o[o.length-1].openedBraces===0){var c=r(l);s0&&(typeof a[s-1]=="string"||a[s-1].type==="plain-text")&&(c=r(a[s-1])+c,a.splice(s-1,1),s--),/^\s+$/.test(c)?a[s]=c:a[s]=new n.Token("plain-text",c,null,c)}l.content&&typeof l.content!="string"&&i(l.content)}};n.hooks.add("after-tokenize",function(a){a.language==="xquery"&&i(a.tokens)})})(t)}return oy}var sy,H2;function mme(){if(H2)return sy;H2=1,sy=e,e.displayName="yang",e.aliases=[];function e(t){t.languages.yang={comment:/\/\*[\s\S]*?\*\/|\/\/.*/,string:{pattern:/"(?:[^\\"]|\\.)*"|'[^']*'/,greedy:!0},keyword:{pattern:/(^|[{};\r\n][ \t]*)[a-z_][\w.-]*/i,lookbehind:!0},namespace:{pattern:/(\s)[a-z_][\w.-]*(?=:)/i,lookbehind:!0},boolean:/\b(?:false|true)\b/,operator:/\+/,punctuation:/[{};:]/}}return sy}var ly,G2;function hme(){if(G2)return ly;G2=1,ly=e,e.displayName="zig",e.aliases=[];function e(t){(function(n){function r(c){return function(){return c}}var i=/\b(?:align|allowzero|and|anyframe|anytype|asm|async|await|break|cancel|catch|comptime|const|continue|defer|else|enum|errdefer|error|export|extern|fn|for|if|inline|linksection|nakedcc|noalias|nosuspend|null|or|orelse|packed|promise|pub|resume|return|stdcallcc|struct|suspend|switch|test|threadlocal|try|undefined|union|unreachable|usingnamespace|var|volatile|while)\b/,a="\\b(?!"+i.source+")(?!\\d)\\w+\\b",o=/align\s*\((?:[^()]|\([^()]*\))*\)/.source,s=/(?:\?|\bpromise->|(?:\[[^[\]]*\]|\*(?!\*)|\*\*)(?:\s*|\s*const\b|\s*volatile\b|\s*allowzero\b)*)/.source.replace(//g,r(o)),l=/(?:\bpromise\b|(?:\berror\.)?(?:\.)*(?!\s+))/.source.replace(//g,r(a)),u="(?!\\s)(?:!?\\s*(?:"+s+"\\s*)*"+l+")+";n.languages.zig={comment:[{pattern:/\/\/[/!].*/,alias:"doc-comment"},/\/{2}.*/],string:[{pattern:/(^|[^\\@])c?"(?:[^"\\\r\n]|\\.)*"/,lookbehind:!0,greedy:!0},{pattern:/([\r\n])([ \t]+c?\\{2}).*(?:(?:\r\n?|\n)\2.*)*/,lookbehind:!0,greedy:!0}],char:{pattern:/(^|[^\\])'(?:[^'\\\r\n]|[\uD800-\uDFFF]{2}|\\(?:.|x[a-fA-F\d]{2}|u\{[a-fA-F\d]{1,6}\}))'/,lookbehind:!0,greedy:!0},builtin:/\B@(?!\d)\w+(?=\s*\()/,label:{pattern:/(\b(?:break|continue)\s*:\s*)\w+\b|\b(?!\d)\w+\b(?=\s*:\s*(?:\{|while\b))/,lookbehind:!0},"class-name":[/\b(?!\d)\w+(?=\s*=\s*(?:(?:extern|packed)\s+)?(?:enum|struct|union)\s*[({])/,{pattern:RegExp(/(:\s*)(?=\s*(?:\s*)?[=;,)])|(?=\s*(?:\s*)?\{)/.source.replace(//g,r(u)).replace(//g,r(o))),lookbehind:!0,inside:null},{pattern:RegExp(/(\)\s*)(?=\s*(?:\s*)?;)/.source.replace(//g,r(u)).replace(//g,r(o))),lookbehind:!0,inside:null}],"builtin-type":{pattern:/\b(?:anyerror|bool|c_u?(?:int|long|longlong|short)|c_longdouble|c_void|comptime_(?:float|int)|f(?:16|32|64|128)|[iu](?:8|16|32|64|128|size)|noreturn|type|void)\b/,alias:"keyword"},keyword:i,function:/\b(?!\d)\w+(?=\s*\()/,number:/\b(?:0b[01]+|0o[0-7]+|0x[a-fA-F\d]+(?:\.[a-fA-F\d]*)?(?:[pP][+-]?[a-fA-F\d]+)?|\d+(?:\.\d*)?(?:[eE][+-]?\d+)?)\b/,boolean:/\b(?:false|true)\b/,operator:/\.[*?]|\.{2,3}|[-=]>|\*\*|\+\+|\|\||(?:<<|>>|[-+*]%|[-+*/%^&|<>!=])=?|[?~]/,punctuation:/[.:,;(){}[\]]/},n.languages.zig["class-name"].forEach(function(c){c.inside===null&&(c.inside=n.languages.zig)})})(t)}return ly}var w=Sce,gme=w;w.register(Lce());w.register(Fce());w.register(Mce());w.register(Pce());w.register(Bce());w.register(Uce());w.register(Hce());w.register(Gce());w.register($ce());w.register(zce());w.register(qce());w.register(jce());w.register(Wce());w.register(Vce());w.register(Kce());w.register(Yce());w.register(Xce());w.register(Zce());w.register(Qce());w.register(Jce());w.register(ede());w.register(tde());w.register(L8());w.register(F8());w.register(nde());w.register(rde());w.register(ide());w.register(ade());w.register(ode());w.register(sde());w.register(lde());w.register(ude());w.register(cde());w.register(dde());w.register(ms());w.register(pde());w.register(fde());w.register(mde());w.register(hde());w.register(gde());w.register(Ede());w.register(bde());w.register(yde());w.register(vde());w.register(iS());w.register(Tde());w.register(Ef());w.register(_de());w.register(Sde());w.register(Cde());w.register(Ade());w.register(Ide());w.register(Rde());w.register(Nde());w.register(kde());w.register(wde());w.register(Ode());w.register(xde());w.register(Dde());w.register(Lde());w.register(Fde());w.register(Mde());w.register(Pde());w.register(Bde());w.register(Ude());w.register(Hde());w.register(Gde());w.register($de());w.register(zde());w.register(qde());w.register(jde());w.register(Wde());w.register(Vde());w.register(Kde());w.register(Yde());w.register(Xde());w.register(Zde());w.register(Qde());w.register(Jde());w.register(e1e());w.register(t1e());w.register(n1e());w.register(r1e());w.register(i1e());w.register(a1e());w.register(o1e());w.register(s1e());w.register(l1e());w.register(u1e());w.register(c1e());w.register(d1e());w.register(p1e());w.register(f1e());w.register(m1e());w.register(aS());w.register(h1e());w.register(g1e());w.register(E1e());w.register(b1e());w.register(y1e());w.register(v1e());w.register(T1e());w.register(_1e());w.register(S1e());w.register(C1e());w.register(A1e());w.register(I1e());w.register(R1e());w.register(N1e());w.register(k1e());w.register(w1e());w.register(O1e());w.register(oS());w.register(x1e());w.register(yf());w.register(D1e());w.register(L1e());w.register(F1e());w.register(M1e());w.register(P1e());w.register(B1e());w.register(U1e());w.register(lS());w.register(H1e());w.register(G1e());w.register($1e());w.register(P8());w.register(z1e());w.register(q1e());w.register(j1e());w.register(W1e());w.register(V1e());w.register(K1e());w.register(Y1e());w.register(X1e());w.register(Z1e());w.register(Q1e());w.register(J1e());w.register(epe());w.register(tpe());w.register(npe());w.register(rpe());w.register(ipe());w.register(M8());w.register(ape());w.register(ope());w.register(spe());w.register(cr());w.register(lpe());w.register(upe());w.register(cpe());w.register(dpe());w.register(ppe());w.register(fpe());w.register(mpe());w.register(hpe());w.register(gpe());w.register(Epe());w.register(bpe());w.register(ype());w.register(vpe());w.register(Tpe());w.register(_pe());w.register(Spe());w.register(Cpe());w.register(Ape());w.register(Ipe());w.register(Rpe());w.register(Npe());w.register(kpe());w.register(wpe());w.register(Ope());w.register(xpe());w.register(Dpe());w.register(Lpe());w.register(Fpe());w.register(Mpe());w.register(Ppe());w.register(Bpe());w.register(Upe());w.register(vf());w.register(Hpe());w.register(Gpe());w.register($pe());w.register(zpe());w.register(qpe());w.register(jpe());w.register(Wpe());w.register(Vpe());w.register(Kpe());w.register(Ype());w.register(Xpe());w.register(Zpe());w.register(Qpe());w.register(Jpe());w.register(efe());w.register(tfe());w.register(nfe());w.register(rfe());w.register(ife());w.register(afe());w.register(ofe());w.register(sfe());w.register(lfe());w.register(ufe());w.register(cfe());w.register(dfe());w.register(pfe());w.register(ffe());w.register(mfe());w.register(hfe());w.register(bf());w.register(gfe());w.register(Efe());w.register(bfe());w.register(yfe());w.register(uS());w.register(vfe());w.register(Tfe());w.register(_fe());w.register(Sfe());w.register(Cfe());w.register(Afe());w.register(Ife());w.register(Rfe());w.register(Nfe());w.register(kfe());w.register(wfe());w.register(Ofe());w.register(rS());w.register(xfe());w.register(Dfe());w.register(Lfe());w.register(Ffe());w.register(Mfe());w.register(Pfe());w.register(cS());w.register(Bfe());w.register(Ufe());w.register(Hfe());w.register(Gfe());w.register($fe());w.register(zfe());w.register(qfe());w.register(jfe());w.register(B8());w.register(Wfe());w.register(sS());w.register(Vfe());w.register(Kfe());w.register(Yfe());w.register(Xfe());w.register(Zfe());w.register(Qfe());w.register(U8());w.register(Jfe());w.register(eme());w.register(tme());w.register(nme());w.register(rme());w.register(ime());w.register(ame());w.register(ome());w.register(sme());w.register(lme());w.register(ume());w.register(cme());w.register(dme());w.register(pme());w.register(fme());w.register(H8());w.register(mme());w.register(hme());var G8=foe(gme,Dce);G8.supportedLanguages=moe;const Eme=G8,bme={'code[class*="language-"]':{color:"#f8f8f2",background:"none",fontFamily:`"Fira Code", Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace`,textAlign:"left",whiteSpace:"pre",wordSpacing:"normal",wordBreak:"normal",wordWrap:"normal",lineHeight:"1.5",MozTabSize:"4",OTabSize:"4",tabSize:"4",WebkitHyphens:"none",MozHyphens:"none",msHyphens:"none",hyphens:"none"},'pre[class*="language-"]':{color:"#f8f8f2",background:"#2E3440",fontFamily:`"Fira Code", Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace`,textAlign:"left",whiteSpace:"pre",wordSpacing:"normal",wordBreak:"normal",wordWrap:"normal",lineHeight:"1.5",MozTabSize:"4",OTabSize:"4",tabSize:"4",WebkitHyphens:"none",MozHyphens:"none",msHyphens:"none",hyphens:"none",padding:"1em",margin:".5em 0",overflow:"auto",borderRadius:"0.3em"},':not(pre) > code[class*="language-"]':{background:"#2E3440",padding:".1em",borderRadius:".3em",whiteSpace:"normal"},comment:{color:"#636f88"},prolog:{color:"#636f88"},doctype:{color:"#636f88"},cdata:{color:"#636f88"},punctuation:{color:"#81A1C1"},".namespace":{Opacity:".7"},property:{color:"#81A1C1"},tag:{color:"#81A1C1"},constant:{color:"#81A1C1"},symbol:{color:"#81A1C1"},deleted:{color:"#81A1C1"},number:{color:"#B48EAD"},boolean:{color:"#81A1C1"},selector:{color:"#A3BE8C"},"attr-name":{color:"#A3BE8C"},string:{color:"#A3BE8C"},char:{color:"#A3BE8C"},builtin:{color:"#A3BE8C"},inserted:{color:"#A3BE8C"},operator:{color:"#81A1C1"},entity:{color:"#81A1C1",cursor:"help"},url:{color:"#81A1C1"},".language-css .token.string":{color:"#81A1C1"},".style .token.string":{color:"#81A1C1"},variable:{color:"#81A1C1"},atrule:{color:"#88C0D0"},"attr-value":{color:"#88C0D0"},function:{color:"#88C0D0"},"class-name":{color:"#88C0D0"},keyword:{color:"#81A1C1"},regex:{color:"#EBCB8B"},important:{color:"#EBCB8B",fontWeight:"bold"},bold:{fontWeight:"bold"},italic:{fontStyle:"italic"}},$2=({answer:e,onCitationClicked:t})=>{var W,z,V;const n=H=>{if(H.message_id!=null&&H.feedback!=null)return H.feedback.split(",").length>1?Me.Negative:Object.values(Me).includes(H.feedback)?H.feedback:Me.Neutral},[r,{toggle:i}]=Mc(!1),a=50,o=v.useMemo(()=>$ae(e),[e]),[s,l]=v.useState(r),[u,c]=v.useState(n(e)),[d,p]=v.useState(!1),[f,m]=v.useState(!1),[g,_]=v.useState([]),h=v.useContext(go),E=((W=h==null?void 0:h.state.frontendSettings)==null?void 0:W.feedback_enabled)&&((z=h==null?void 0:h.state.isCosmosDBAvailable)==null?void 0:z.cosmosDB),b=(V=h==null?void 0:h.state.frontendSettings)==null?void 0:V.sanitize_answer,T=()=>{l(!s),i()};v.useEffect(()=>{l(r)},[r]),v.useEffect(()=>{if(e.message_id==null)return;let H;h!=null&&h.state.feedbackState&&(h!=null&&h.state.feedbackState[e.message_id])?H=h==null?void 0:h.state.feedbackState[e.message_id]:H=n(e),c(H)},[h==null?void 0:h.state.feedbackState,u,e.message_id]);const A=(H,L,U=!1)=>{let $="";if(H.filepath){const I=H.part_index??(H.chunk_id?parseInt(H.chunk_id)+1:"");if(U&&H.filepath.length>a){const k=H.filepath.length;$=`${H.filepath.substring(0,20)}...${H.filepath.substring(k-20)} - Part ${I}`}else $=`${H.filepath} - Part ${I}`}else H.filepath&&H.reindex_id?$=`${H.filepath} - Part ${H.reindex_id}`:$=`Citation ${L}`;return $},S=async()=>{if(e.message_id==null)return;let H=u;u==Me.Positive?H=Me.Neutral:H=Me.Positive,h==null||h.dispatch({type:"SET_FEEDBACK_STATE",payload:{answerId:e.message_id,feedback:H}}),c(H),await Tm(e.message_id,H)},C=async()=>{if(e.message_id==null)return;let H=u;u===void 0||u===Me.Neutral||u===Me.Positive?(H=Me.Negative,c(H),p(!0)):(H=Me.Neutral,c(H),await Tm(e.message_id,Me.Neutral)),h==null||h.dispatch({type:"SET_FEEDBACK_STATE",payload:{answerId:e.message_id,feedback:H}})},N=(H,L)=>{var I;if(e.message_id==null)return;let U=(I=H==null?void 0:H.target)==null?void 0:I.id,$=g.slice();L?$.push(U):$=$.filter(k=>k!==U),_($)},O=async()=>{e.message_id!=null&&(await Tm(e.message_id,g.join(",")),R())},R=()=>{p(!1),m(!1),_([])},P=()=>be(ha,{children:[G("div",{children:"Why wasn't this response helpful?"}),be(_e,{tokens:{childrenGap:4},children:[G(Ii,{label:"Citations are missing",id:Me.MissingCitation,defaultChecked:g.includes(Me.MissingCitation),onChange:N}),G(Ii,{label:"Citations are wrong",id:Me.WrongCitation,defaultChecked:g.includes(Me.WrongCitation),onChange:N}),G(Ii,{label:"The response is not from my data",id:Me.OutOfScope,defaultChecked:g.includes(Me.OutOfScope),onChange:N}),G(Ii,{label:"Inaccurate or irrelevant",id:Me.InaccurateOrIrrelevant,defaultChecked:g.includes(Me.InaccurateOrIrrelevant),onChange:N}),G(Ii,{label:"Other",id:Me.OtherUnhelpful,defaultChecked:g.includes(Me.OtherUnhelpful),onChange:N})]}),G("div",{onClick:()=>m(!0),style:{color:"#115EA3",cursor:"pointer"},children:"Report inappropriate content"})]}),B=()=>be(ha,{children:[be("div",{children:["The content is ",G("span",{style:{color:"red"},children:"*"})]}),be(_e,{tokens:{childrenGap:4},children:[G(Ii,{label:"Hate speech, stereotyping, demeaning",id:Me.HateSpeech,defaultChecked:g.includes(Me.HateSpeech),onChange:N}),G(Ii,{label:"Violent: glorification of violence, self-harm",id:Me.Violent,defaultChecked:g.includes(Me.Violent),onChange:N}),G(Ii,{label:"Sexual: explicit content, grooming",id:Me.Sexual,defaultChecked:g.includes(Me.Sexual),onChange:N}),G(Ii,{label:"Manipulative: devious, emotional, pushy, bullying",defaultChecked:g.includes(Me.Manipulative),id:Me.Manipulative,onChange:N}),G(Ii,{label:"Other",id:Me.OtherHarmful,defaultChecked:g.includes(Me.OtherHarmful),onChange:N})]})]}),K={code({node:H,...L}){let U;if(L.className){const I=L.className.match(/language-(\w+)/);U=I?I[1]:void 0}const $=H.children[0].value??"";return G(Eme,{style:bme,language:U,PreTag:"div",...L,children:$})}};return be(ha,{children:[be(_e,{className:ii.answerContainer,tabIndex:0,children:[G(_e.Item,{children:be(_e,{horizontal:!0,grow:!0,children:[G(_e.Item,{grow:!0,children:G(y_,{linkTarget:"_blank",remarkPlugins:[ZL,zae],children:b?a8.sanitize(o.markdownFormatText,{ALLOWED_TAGS:o8}):o.markdownFormatText,className:ii.answerText,components:K})}),G(_e.Item,{className:ii.answerHeader,children:E&&e.message_id!==void 0&&be(_e,{horizontal:!0,horizontalAlign:"space-between",children:[G(rj,{"aria-hidden":"false","aria-label":"Like this response",onClick:()=>S(),style:u===Me.Positive||(h==null?void 0:h.state.feedbackState[e.message_id])===Me.Positive?{color:"darkgreen",cursor:"pointer"}:{color:"slategray",cursor:"pointer"}}),G(tj,{"aria-hidden":"false","aria-label":"Dislike this response",onClick:()=>C(),style:u!==Me.Positive&&u!==Me.Neutral&&u!==void 0?{color:"darkred",cursor:"pointer"}:{color:"slategray",cursor:"pointer"}})]})})]})}),be(_e,{horizontal:!0,className:ii.answerFooter,children:[!!o.citations.length&&G(_e.Item,{onKeyDown:H=>H.key==="Enter"||H.key===" "?i():null,children:G(_e,{style:{width:"100%"},children:be(_e,{horizontal:!0,horizontalAlign:"start",verticalAlign:"center",children:[G(Za,{className:ii.accordionTitle,onClick:i,"aria-label":"Open references",tabIndex:0,role:"button",children:G("span",{children:o.citations.length>1?o.citations.length+" references":"1 reference"})}),G(rp,{className:ii.accordionIcon,onClick:T,iconName:s?"ChevronDown":"ChevronRight"})]})})}),G(_e.Item,{className:ii.answerDisclaimerContainer,children:G("span",{className:ii.answerDisclaimer,children:"AI-generated content may be incorrect"})})]}),s&&G("div",{className:ii.citationWrapper,children:o.citations.map((H,L)=>be("span",{title:A(H,++L),tabIndex:0,role:"link",onClick:()=>t(H),onKeyDown:U=>U.key==="Enter"||U.key===" "?t(H):null,className:ii.citationContainer,"aria-label":A(H,L),children:[G("div",{className:ii.citation,children:L}),A(H,L,!0)]},L))})]}),G(wl,{onDismiss:()=>{R(),c(Me.Neutral)},hidden:!d,styles:{main:[{selectors:{["@media (min-width: 480px)"]:{maxWidth:"600px",background:"#FFFFFF",boxShadow:"0px 14px 28.8px rgba(0, 0, 0, 0.24), 0px 0px 8px rgba(0, 0, 0, 0.2)",borderRadius:"8px",maxHeight:"600px",minHeight:"100px"}}}]},dialogContentProps:{title:"Submit Feedback",showCloseButton:!0},children:be(_e,{tokens:{childrenGap:4},children:[G("div",{children:"Your feedback will improve this experience."}),f?G(B,{}):G(P,{}),G("div",{children:"By pressing submit, your feedback will be visible to the application owner."}),G(Bc,{disabled:g.length<1,onClick:O,children:"Submit"})]})})]})},yme="/assets/Send-d0601aaa.svg",vme="_questionInputContainer_scmpq_1",Tme="_questionInputTextArea_scmpq_13",_me="_questionInputSendButtonContainer_scmpq_22",Sme="_questionInputSendButton_scmpq_22",Cme="_questionInputSendButtonDisabled_scmpq_33",Ame="_questionInputBottomBorder_scmpq_41",Ime="_questionInputOptionsButton_scmpq_52",Rs={questionInputContainer:vme,questionInputTextArea:Tme,questionInputSendButtonContainer:_me,questionInputSendButton:Sme,questionInputSendButtonDisabled:Cme,questionInputBottomBorder:Ame,questionInputOptionsButton:Ime},Rme=({onSend:e,disabled:t,placeholder:n,clearOnSend:r,conversationId:i})=>{const[a,o]=v.useState(""),s=()=>{t||!a.trim()||(i?e(a,i):e(a),r&&o(""))},l=d=>{var p;d.key==="Enter"&&!d.shiftKey&&((p=d.nativeEvent)==null?void 0:p.isComposing)!==!0&&(d.preventDefault(),s())},u=(d,p)=>{o(p||"")},c=t||!a.trim();return be(_e,{horizontal:!0,className:Rs.questionInputContainer,children:[G(o_,{className:Rs.questionInputTextArea,placeholder:n,multiline:!0,resizable:!1,borderless:!0,value:a,onChange:u,onKeyDown:l}),G("div",{className:Rs.questionInputSendButtonContainer,role:"button",tabIndex:0,"aria-label":"Ask question button",onClick:s,onKeyDown:d=>d.key==="Enter"||d.key===" "?s():null,children:c?G(Yq,{className:Rs.questionInputSendButtonDisabled}):G("img",{src:yme,className:Rs.questionInputSendButton})}),G("div",{className:Rs.questionInputBottomBorder})]})},Nme="_container_1jok3_1",kme="_listContainer_1jok3_6",wme="_itemCell_1jok3_11",Ome="_itemButton_1jok3_28",xme="_chatGroup_1jok3_45",Dme="_spinnerContainer_1jok3_50",Lme="_chatList_1jok3_57",Fme="_chatMonth_1jok3_61",Mme="_chatTitle_1jok3_68",Pr={container:Nme,listContainer:kme,itemCell:wme,itemButton:Ome,chatGroup:xme,spinnerContainer:Dme,chatList:Lme,chatMonth:Fme,chatTitle:Mme},Pme=e=>{const n=new Date().getFullYear(),[r,i]=e.split(" ");return parseInt(i)===n?r:e},Bme=({item:e,onSelect:t})=>{var z,V,H;const[n,r]=v.useState(!1),[i,a]=v.useState(!1),[o,s]=v.useState(""),[l,{toggle:u}]=Mc(!0),[c,d]=v.useState(!1),[p,f]=v.useState(!1),[m,g]=v.useState(void 0),[_,h]=v.useState(!1),E=v.useRef(null),b=v.useContext(go),T=(e==null?void 0:e.id)===((z=b==null?void 0:b.state.currentChat)==null?void 0:z.id),A={type:Ui.close,title:"Are you sure you want to delete this item?",closeButtonAriaLabel:"Close",subText:"The history of this chat session will permanently removed."},S={titleAriaId:"labelId",subtitleAriaId:"subTextId",isBlocking:!0,styles:{main:{maxWidth:450}}};if(!e)return null;v.useEffect(()=>{_&&E.current&&(E.current.focus(),h(!1))},[_]),v.useEffect(()=>{var L;((L=b==null?void 0:b.state.currentChat)==null?void 0:L.id)!==(e==null?void 0:e.id)&&(a(!1),s(""))},[(V=b==null?void 0:b.state.currentChat)==null?void 0:V.id,e==null?void 0:e.id]);const C=async()=>{(await fj(e.id)).ok?b==null||b.dispatch({type:"DELETE_CHAT_ENTRY",payload:e.id}):(d(!0),setTimeout(()=>{d(!1)},5e3)),u()},N=()=>{a(!0),h(!0),s(e==null?void 0:e.title)},O=()=>{t(e),b==null||b.dispatch({type:"UPDATE_CURRENT_CHAT",payload:e})},R=((H=e==null?void 0:e.title)==null?void 0:H.length)>28?`${e.title.substring(0,28)} ...`:e.title,P=async L=>{if(L.preventDefault(),m||p)return;if(o==e.title){g("Error: Enter a new title to proceed."),setTimeout(()=>{g(void 0),h(!0),E.current&&E.current.focus()},5e3);return}f(!0),(await gj(e.id,o)).ok?(f(!1),a(!1),b==null||b.dispatch({type:"UPDATE_CHAT_TITLE",payload:{...e,title:o}}),s("")):(g("Error: could not rename item"),setTimeout(()=>{h(!0),g(void 0),E.current&&E.current.focus()},5e3))},B=L=>{s(L.target.value)},K=()=>{a(!1),s("")},W=L=>{if(L.key==="Enter")return P(L);if(L.key==="Escape"){K();return}};return be(_e,{tabIndex:0,"aria-label":"chat history item",className:Pr.itemCell,onClick:()=>O(),onKeyDown:L=>L.key==="Enter"||L.key===" "?O():null,verticalAlign:"center",onMouseEnter:()=>r(!0),onMouseLeave:()=>r(!1),styles:{root:{backgroundColor:T?"#e6e6e6":"transparent"}},children:[i?G(ha,{children:G(_e.Item,{style:{width:"100%"},children:be("form",{"aria-label":"edit title form",onSubmit:L=>P(L),style:{padding:"5px 0px"},children:[be(_e,{horizontal:!0,verticalAlign:"start",children:[G(_e.Item,{children:G(o_,{componentRef:E,autoFocus:_,value:o,placeholder:e.title,onChange:B,onKeyDown:W,disabled:!!m})}),o&&G(_e.Item,{children:be(_e,{"aria-label":"action button group",horizontal:!0,verticalAlign:"center",children:[G($o,{role:"button",disabled:m!==void 0,onKeyDown:L=>L.key===" "||L.key==="Enter"?P(L):null,onClick:L=>P(L),"aria-label":"confirm new title",iconProps:{iconName:"CheckMark"},styles:{root:{color:"green",marginLeft:"5px"}}}),G($o,{role:"button",disabled:m!==void 0,onKeyDown:L=>L.key===" "||L.key==="Enter"?K():null,onClick:()=>K(),"aria-label":"cancel edit title",iconProps:{iconName:"Cancel"},styles:{root:{color:"red",marginLeft:"5px"}}})]})})]}),m&&G(Za,{role:"alert","aria-label":m,style:{fontSize:12,fontWeight:400,color:"rgb(164,38,44)"},children:m})]})})}):G(ha,{children:be(_e,{horizontal:!0,verticalAlign:"center",style:{width:"100%"},children:[G("div",{className:Pr.chatTitle,children:R}),(T||n)&&be(_e,{horizontal:!0,horizontalAlign:"end",children:[G($o,{className:Pr.itemButton,iconProps:{iconName:"Delete"},title:"Delete",onClick:u,onKeyDown:L=>L.key===" "?u():null}),G($o,{className:Pr.itemButton,iconProps:{iconName:"Edit"},title:"Edit",onClick:N,onKeyDown:L=>L.key===" "?N():null})]})]})}),c&&G(Za,{styles:{root:{color:"red",marginTop:5,fontSize:14}},children:"Error: could not delete item"}),G(wl,{hidden:l,onDismiss:u,dialogContentProps:A,modalProps:S,children:be(s_,{children:[G(wD,{onClick:C,text:"Delete"}),G(Bc,{onClick:u,text:"Cancel"})]})})]},e.id)},Ume=({groupedChatHistory:e})=>{const t=v.useContext(go),n=v.useRef(null),[,r]=v.useState(null),[i,a]=v.useState(25),[o,s]=v.useState(0),[l,u]=v.useState(!1),c=v.useRef(!0),d=m=>{m&&r(m)},p=m=>G(Bme,{item:m,onSelect:()=>d(m)});v.useEffect(()=>{if(c.current){c.current=!1;return}f(),a(m=>m+=25)},[o]);const f=async()=>{const m=t==null?void 0:t.state.chatHistory;u(!0),await WD(i).then(g=>{const _=m&&g&&m.concat(...g);return g?t==null||t.dispatch({type:"FETCH_CHAT_HISTORY",payload:_||g}):t==null||t.dispatch({type:"FETCH_CHAT_HISTORY",payload:null}),u(!1),g})};return v.useEffect(()=>{const m=new IntersectionObserver(g=>{g[0].isIntersecting&&s(_=>_+=1)},{threshold:1});return n.current&&m.observe(n.current),()=>{n.current&&m.unobserve(n.current)}},[n]),be("div",{className:Pr.listContainer,"data-is-scrollable":!0,children:[e.map(m=>m.entries.length>0&&be(_e,{horizontalAlign:"start",verticalAlign:"center",className:Pr.chatGroup,"aria-label":`chat history group: ${m.month}`,children:[G(_e,{"aria-label":m.month,className:Pr.chatMonth,children:Pme(m.month)}),G(P$,{"aria-label":"chat history list",items:m.entries,onRenderCell:p,className:Pr.chatList}),G("div",{ref:n}),G(PD,{styles:{root:{width:"100%",position:"relative","::before":{backgroundColor:"#d6d6d6"}}}})]},m.month)),l&&G("div",{className:Pr.spinnerContainer,children:G(DD,{size:pi.small,"aria-label":"loading more chat history",className:Pr.spinner})})]})},Hme=e=>{const t=[{month:"Recent",entries:[]}],n=new Date;return e.forEach(r=>{const i=new Date(r.date),a=(n.getTime()-i.getTime())/(1e3*60*60*24),o=i.toLocaleString("default",{month:"long",year:"numeric"}),s=t.find(l=>l.month===o);a<=7?t[0].entries.push(r):s?s.entries.push(r):t.push({month:o,entries:[r]})}),t.sort((r,i)=>{if(r.entries.length===0&&i.entries.length===0)return 0;if(r.entries.length===0)return 1;if(i.entries.length===0)return-1;const a=new Date(r.entries[0].date);return new Date(i.entries[0].date).getTime()-a.getTime()}),t.forEach(r=>{r.entries.sort((i,a)=>{const o=new Date(i.date);return new Date(a.date).getTime()-o.getTime()})}),t},Gme=()=>{const e=v.useContext(go),t=e==null?void 0:e.state.chatHistory;Nt.useEffect(()=>{},[e==null?void 0:e.state.chatHistory]);let n;if(t&&t.length>0)n=Hme(t);else return G(_e,{horizontal:!0,horizontalAlign:"center",verticalAlign:"center",style:{width:"100%",marginTop:10},children:G(Va,{children:G(Za,{style:{alignSelf:"center",fontWeight:"400",fontSize:14},children:G("span",{children:"No chat history."})})})});return G(Ume,{groupedChatHistory:n})},z2={root:{padding:"0",display:"flex",justifyContent:"center",backgroundColor:"transparent"}},$me={root:{height:"50px"}};function zme(e){var E,b,T;const t=v.useContext(go),[n,r]=Nt.useState(!1),[i,{toggle:a}]=Mc(!0),[o,s]=Nt.useState(!1),[l,u]=Nt.useState(!1),c={type:Ui.close,title:l?"Error deleting all of chat history":"Are you sure you want to clear all chat history?",closeButtonAriaLabel:"Close",subText:l?"Please try again. If the problem persists, please contact the site administrator.":"All chat history will be permanently removed."},d={titleAriaId:"labelId",subtitleAriaId:"subTextId",isBlocking:!0,styles:{main:{maxWidth:450}}},p=[{key:"clearAll",text:"Clear all chat history",iconProps:{iconName:"Delete"}}],f=()=>{t==null||t.dispatch({type:"TOGGLE_CHAT_HISTORY"})},m=Nt.useCallback(A=>{A.preventDefault(),r(!0)},[]),g=Nt.useCallback(()=>r(!1),[]),_=async()=>{s(!0),(await mj()).ok?(t==null||t.dispatch({type:"DELETE_CHAT_HISTORY"}),a()):u(!0),s(!1)},h=()=>{a(),setTimeout(()=>{u(!1)},2e3)};return Nt.useEffect(()=>{},[t==null?void 0:t.state.chatHistory,l]),be("section",{className:Pr.container,"data-is-scrollable":!0,"aria-label":"chat history panel",children:[be(_e,{horizontal:!0,horizontalAlign:"space-between",verticalAlign:"center",wrap:!0,"aria-label":"chat history header",children:[G(Va,{children:G(Za,{role:"heading","aria-level":2,style:{alignSelf:"center",fontWeight:"600",fontSize:"18px",marginRight:"auto",paddingLeft:"20px"},children:"Chat history"})}),G(_e,{verticalAlign:"start",children:be(_e,{horizontal:!0,styles:$me,children:[G(vc,{iconProps:{iconName:"More"},title:"Clear all chat history",onClick:m,"aria-label":"clear all chat history",styles:z2,role:"button",id:"moreButton"}),G(ip,{items:p,hidden:!n,target:"#moreButton",onItemClick:a,onDismiss:g}),G(vc,{iconProps:{iconName:"Cancel"},title:"Hide",onClick:f,"aria-label":"hide button",styles:z2,role:"button"})]})})]}),G(_e,{"aria-label":"chat history panel content",styles:{root:{display:"flex",flexGrow:1,flexDirection:"column",paddingTop:"2.5px",maxWidth:"100%"}},style:{display:"flex",flexGrow:1,flexDirection:"column",flexWrap:"wrap",padding:"1px"},children:be(_e,{className:Pr.chatHistoryListContainer,children:[(t==null?void 0:t.state.chatHistoryLoadingState)===Bn.Success&&(t==null?void 0:t.state.isCosmosDBAvailable.cosmosDB)&&G(Gme,{}),(t==null?void 0:t.state.chatHistoryLoadingState)===Bn.Fail&&(t==null?void 0:t.state.isCosmosDBAvailable)&&G(ha,{children:G(_e,{children:be(_e,{horizontalAlign:"center",verticalAlign:"center",style:{width:"100%",marginTop:10},children:[G(Va,{children:be(Za,{style:{alignSelf:"center",fontWeight:"400",fontSize:16},children:[((E=t==null?void 0:t.state.isCosmosDBAvailable)==null?void 0:E.status)&&G("span",{children:(b=t==null?void 0:t.state.isCosmosDBAvailable)==null?void 0:b.status}),!((T=t==null?void 0:t.state.isCosmosDBAvailable)!=null&&T.status)&&G("span",{children:"Error loading chat history"})]})}),G(Va,{children:G(Za,{style:{alignSelf:"center",fontWeight:"400",fontSize:14},children:G("span",{children:"Chat history can't be saved at this time"})})})]})})}),(t==null?void 0:t.state.chatHistoryLoadingState)===Bn.Loading&&G(ha,{children:G(_e,{children:be(_e,{horizontal:!0,horizontalAlign:"center",verticalAlign:"center",style:{width:"100%",marginTop:10},children:[G(Va,{style:{justifyContent:"center",alignItems:"center"},children:G(DD,{style:{alignSelf:"flex-start",height:"100%",marginRight:"5px"},size:pi.medium})}),G(Va,{children:G(Za,{style:{alignSelf:"center",fontWeight:"400",fontSize:14},children:G("span",{style:{whiteSpace:"pre-wrap"},children:"Loading chat history"})})})]})})})]})}),G(wl,{hidden:i,onDismiss:o?()=>{}:h,dialogContentProps:c,modalProps:d,children:be(s_,{children:[!l&&G(wD,{onClick:_,disabled:o,text:"Clear All"}),G(Bc,{onClick:h,disabled:o,text:l?"Close":"Cancel"})]})})]})}const qme=()=>{var Ge,Xe,$t,Pt,tn,bn,nn,zt;const e=v.useContext(go),t=(Ge=e==null?void 0:e.state.frontendSettings)==null?void 0:Ge.ui,n=(Xe=e==null?void 0:e.state.frontendSettings)==null?void 0:Xe.auth_enabled,r=v.useRef(null),[i,a]=v.useState(!1),[o,s]=v.useState(!1),[l,u]=v.useState(),[c,d]=v.useState(!1),p=v.useRef([]),[f,m]=v.useState(!0),[g,_]=v.useState([]),[h,E]=v.useState("Not Running"),[b,T]=v.useState(!1),[A,{toggle:S}]=Mc(!0),[C,N]=v.useState(),O={type:Ui.close,title:C==null?void 0:C.title,closeButtonAriaLabel:"Close",subText:C==null?void 0:C.subtitle},R={titleAriaId:"labelId",subtitleAriaId:"subTextId",isBlocking:!0,styles:{main:{maxWidth:450}}},[P,B,K]=["assistant","tool","error"],W="No content in messages object.";v.useEffect(()=>{var ae,ke;if(((ae=e==null?void 0:e.state.isCosmosDBAvailable)==null?void 0:ae.status)!==An.Working&&((ke=e==null?void 0:e.state.isCosmosDBAvailable)==null?void 0:ke.status)!==An.NotConfigured&&(e==null?void 0:e.state.chatHistoryLoadingState)===Bn.Fail&&A){let ve=`${e.state.isCosmosDBAvailable.status}. Please contact the site administrator.`;N({title:"Chat history is not enabled",subtitle:ve}),S()}},[e==null?void 0:e.state.isCosmosDBAvailable]);const z=()=>{S(),setTimeout(()=>{N(null)},500)};v.useEffect(()=>{a((e==null?void 0:e.state.chatHistoryLoadingState)===Bn.Loading)},[e==null?void 0:e.state.chatHistoryLoadingState]);const V=async()=>{if(!n){m(!1);return}(await cj()).length===0&&window.location.hostname!=="127.0.0.1"?m(!0):m(!1)};let H={},L={},U="";const $=(ae,ke,ve)=>{ae.role===P&&(U+=ae.content,H=ae,H.content=U,ae.context&&(L={id:oa(),role:B,content:ae.context,date:new Date().toISOString()})),ae.role===B&&(L=ae),ve?du(L)?_([...g,H]):_([...g,L,H]):du(L)?_([...g,ke,H]):_([...g,ke,L,H])},I=async(ae,ke)=>{var wn,q;a(!0),s(!0);const ve=new AbortController;p.current.unshift(ve);const Be={id:oa(),role:"user",content:ae,date:new Date().toISOString()};let Ne;if(!ke)Ne={id:ke??oa(),title:ae,messages:[Be],date:new Date().toISOString()};else if(Ne=(wn=e==null?void 0:e.state)==null?void 0:wn.currentChat,Ne)Ne.messages.push(Be);else{console.error("Conversation not found."),a(!1),s(!1),p.current=p.current.filter(Z=>Z!==ve);return}e==null||e.dispatch({type:"UPDATE_CURRENT_CHAT",payload:Ne}),_(Ne.messages);const At={messages:[...Ne.messages.filter(Z=>Z.role!==K)]};let Ae={};try{const Z=await uj(At,ve.signal);if(Z!=null&&Z.body){const se=Z.body.getReader();let ge="";for(;;){E("Processing");const{done:Q,value:Ze}=await se.read();if(Q)break;var yn=new TextDecoder("utf-8").decode(Ze);yn.split(` `).forEach(St=>{var Dt,Oe;try{if(St!==""&&St!=="{}"){if(ge+=St,Ae=JSON.parse(ge),((Dt=Ae.choices)==null?void 0:Dt.length)>0)Ae.choices[0].messages.forEach(Te=>{Te.id=Ae.id,Te.date=new Date().toISOString()}),(Oe=Ae.choices[0].messages)!=null&&Oe.some(Te=>Te.role===P)&&s(!1),Ae.choices[0].messages.forEach(Te=>{$(Te,Be,ke)});else if(Ae.error)throw Error(Ae.error);ge=""}}catch(Te){if(Te instanceof SyntaxError)console.log("Incomplete message. Continuing...");else throw console.error(Te),Te}})}Ne.messages.push(L,H),e==null||e.dispatch({type:"UPDATE_CURRENT_CHAT",payload:Ne}),_([...g,L,H])}}catch{if(ve.signal.aborted)_([...g,Be]);else{let se="An error occurred. Please try again. If the problem persists, please contact the site administrator.";(q=Ae.error)!=null&&q.message?se=Ae.error.message:typeof Ae.error=="string"&&(se=Ae.error);let ge={id:oa(),role:K,content:se,date:new Date().toISOString()};Ne.messages.push(ge),e==null||e.dispatch({type:"UPDATE_CURRENT_CHAT",payload:Ne}),_([...g,ge])}}finally{a(!1),s(!1),p.current=p.current.filter(Z=>Z!==ve),E("Done")}return ve.abort()},k=async(ae,ke)=>{var q,Z,se,ge,Q,Ze,qt,St,Dt;a(!0),s(!0);const ve=new AbortController;p.current.unshift(ve);const Be={id:oa(),role:"user",content:ae,date:new Date().toISOString()};let Ne,At;if(ke)if(At=(Z=(q=e==null?void 0:e.state)==null?void 0:q.chatHistory)==null?void 0:Z.find(Oe=>Oe.id===ke),At)At.messages.push(Be),Ne={messages:[...At.messages.filter(Oe=>Oe.role!==K)]};else{console.error("Conversation not found."),a(!1),s(!1),p.current=p.current.filter(Oe=>Oe!==ve);return}else Ne={messages:[Be].filter(Oe=>Oe.role!==K)},_(Ne.messages);let Ae={};try{const Oe=ke?await DA(Ne,ve.signal,ke):await DA(Ne,ve.signal);if(!(Oe!=null&&Oe.ok)){const Te=await Oe.json();var yn=Te.error===void 0?"Please try again. If the problem persists, please contact the site administrator.":Te.error;let Bt={id:oa(),role:K,content:`There was an error generating a response. Chat history can't be saved at this time. ${yn}`,date:new Date().toISOString()},ue;if(ke){if(ue=(ge=(se=e==null?void 0:e.state)==null?void 0:se.chatHistory)==null?void 0:ge.find(ze=>ze.id===ke),!ue){console.error("Conversation not found."),a(!1),s(!1),p.current=p.current.filter(ze=>ze!==ve);return}ue.messages.push(Bt)}else{_([...g,Be,Bt]),a(!1),s(!1),p.current=p.current.filter(ze=>ze!==ve);return}e==null||e.dispatch({type:"UPDATE_CURRENT_CHAT",payload:ue}),_([...ue.messages]);return}if(Oe!=null&&Oe.body){const Te=Oe.body.getReader();let Bt="";for(;;){E("Processing");const{done:ze,value:Zi}=await Te.read();if(ze)break;var wn=new TextDecoder("utf-8").decode(Zi);wn.split(` `).forEach(Qr=>{var Qi,Ti,On,_i,We;try{if(Qr!==""&&Qr!=="{}"){if(Bt+=Qr,Ae=JSON.parse(Bt),!((On=(Ti=(Qi=Ae.choices)==null?void 0:Qi[0])==null?void 0:Ti.messages)!=null&&On[0].content))throw yn=W,Error();((_i=Ae.choices)==null?void 0:_i.length)>0&&(Ae.choices[0].messages.forEach(de=>{de.id=Ae.id,de.date=new Date().toISOString()}),(We=Ae.choices[0].messages)!=null&&We.some(de=>de.role===P)&&s(!1),Ae.choices[0].messages.forEach(de=>{$(de,Be,ke)})),Bt=""}else if(Ae.error)throw Error(Ae.error)}catch(de){if(de instanceof SyntaxError)console.log("Incomplete message. Continuing...");else throw console.error(de),de}})}let ue;if(ke){if(ue=(Ze=(Q=e==null?void 0:e.state)==null?void 0:Q.chatHistory)==null?void 0:Ze.find(ze=>ze.id===ke),!ue){console.error("Conversation not found."),a(!1),s(!1),p.current=p.current.filter(ze=>ze!==ve);return}du(L)?ue.messages.push(H):ue.messages.push(L,H)}else ue={id:Ae.history_metadata.conversation_id,title:Ae.history_metadata.title,messages:[Be],date:Ae.history_metadata.date},du(L)?ue.messages.push(H):ue.messages.push(L,H);if(!ue){a(!1),s(!1),p.current=p.current.filter(ze=>ze!==ve);return}e==null||e.dispatch({type:"UPDATE_CURRENT_CHAT",payload:ue}),du(L)?_([...g,H]):_([...g,L,H])}}catch{if(ve.signal.aborted)_([...g,Be]);else{let Te=`An error occurred. ${yn}`;(qt=Ae.error)!=null&&qt.message?Te=Ae.error.message:typeof Ae.error=="string"&&(Te=Ae.error);let Bt={id:oa(),role:K,content:Te,date:new Date().toISOString()},ue;if(ke){if(ue=(Dt=(St=e==null?void 0:e.state)==null?void 0:St.chatHistory)==null?void 0:Dt.find(ze=>ze.id===ke),!ue){console.error("Conversation not found."),a(!1),s(!1),p.current=p.current.filter(ze=>ze!==ve);return}ue.messages.push(Bt)}else{if(!Ae.history_metadata){console.error("Error retrieving data.",Ae);let ze={id:oa(),role:K,content:Te,date:new Date().toISOString()};_([...g,Be,ze]),a(!1),s(!1),p.current=p.current.filter(Zi=>Zi!==ve);return}ue={id:Ae.history_metadata.conversation_id,title:Ae.history_metadata.title,messages:[Be],date:Ae.history_metadata.date},ue.messages.push(Bt)}if(!ue){a(!1),s(!1),p.current=p.current.filter(ze=>ze!==ve);return}e==null||e.dispatch({type:"UPDATE_CURRENT_CHAT",payload:ue}),_([...g,Bt])}}finally{a(!1),s(!1),p.current=p.current.filter(Oe=>Oe!==ve),E("Done")}return ve.abort()},ce=async()=>{var ae;T(!0),(ae=e==null?void 0:e.state.currentChat)!=null&&ae.id&&(e!=null&&e.state.isCosmosDBAvailable.cosmosDB)&&((await hj(e==null?void 0:e.state.currentChat.id)).ok?(e==null||e.dispatch({type:"DELETE_CURRENT_CHAT_MESSAGES",payload:e==null?void 0:e.state.currentChat.id}),e==null||e.dispatch({type:"UPDATE_CHAT_HISTORY",payload:e==null?void 0:e.state.currentChat}),u(void 0),d(!1),_([])):(N({title:"Error clearing current chat",subtitle:"Please try again. If the problem persists, please contact the site administrator."}),S())),T(!1)},me=()=>{E("Processing"),_([]),d(!1),u(void 0),e==null||e.dispatch({type:"UPDATE_CURRENT_CHAT",payload:null}),E("Done")},xe=()=>{p.current.forEach(ae=>ae.abort()),s(!1),a(!1)};v.useEffect(()=>{e!=null&&e.state.currentChat?_(e.state.currentChat.messages):_([])},[e==null?void 0:e.state.currentChat]),v.useLayoutEffect(()=>{var ke;const ae=async(ve,Be)=>await pj(ve,Be);if(e&&e.state.currentChat&&h==="Done"){if(e.state.isCosmosDBAvailable.cosmosDB){if(!((ke=e==null?void 0:e.state.currentChat)!=null&&ke.messages)){console.error("Failure fetching current chat state.");return}const ve=e.state.currentChat.messages.find(Be=>Be.role===K);ve!=null&&ve.content.includes(W)||ae(e.state.currentChat.messages,e.state.currentChat.id).then(Be=>{var Ne,At;if(!Be.ok){let Ae="An error occurred. Answers can't be saved at this time. If the problem persists, please contact the site administrator.",yn={id:oa(),role:K,content:Ae,date:new Date().toISOString()};if(!((Ne=e==null?void 0:e.state.currentChat)!=null&&Ne.messages))throw{...new Error,message:"Failure fetching current chat state."};_([...(At=e==null?void 0:e.state.currentChat)==null?void 0:At.messages,yn])}return Be}).catch(Be=>(console.error("Error: ",Be),{...new Response,ok:!1,status:500}))}e==null||e.dispatch({type:"UPDATE_CHAT_HISTORY",payload:e.state.currentChat}),_(e.state.currentChat.messages),E("Not Running")}},[h]),v.useEffect(()=>{n!==void 0&&V()},[n]),v.useLayoutEffect(()=>{var ae;(ae=r.current)==null||ae.scrollIntoView({behavior:"smooth"})},[o,h]);const pe=ae=>{u(ae),d(!0)},Ie=ae=>{ae.url&&!ae.url.includes("blob.core")&&window.open(ae.url,"_blank")},nt=ae=>{if(ae!=null&&ae.role&&(ae==null?void 0:ae.role)==="tool")try{return JSON.parse(ae.content).citations}catch{return[]}return[]},ot=()=>i||g&&g.length===0||b||(e==null?void 0:e.state.chatHistoryLoadingState)===Bn.Loading;return G("div",{className:qe.container,role:"main",children:f?be(_e,{className:qe.chatEmptyState,children:[G(Zq,{className:qe.chatIcon,style:{color:"darkorange",height:"200px",width:"200px"}}),G("h1",{className:qe.chatEmptyStateTitle,children:"Authentication Not Configured"}),be("h2",{className:qe.chatEmptyStateSubtitle,children:["This app does not have authentication configured. Please add an identity provider by finding your app in the ",G("a",{href:"https://portal.azure.com/",target:"_blank",children:"Azure Portal"}),"and following ",G("a",{href:"https://learn.microsoft.com/en-us/azure/app-service/scenario-secure-app-authentication-app-service#3-configure-authentication-and-authorization",target:"_blank",children:"these instructions"}),"."]}),G("h2",{className:qe.chatEmptyStateSubtitle,style:{fontSize:"20px"},children:G("strong",{children:"Authentication configuration takes a few minutes to apply. "})}),G("h2",{className:qe.chatEmptyStateSubtitle,style:{fontSize:"20px"},children:G("strong",{children:"If you deployed in the last 10 minutes, please wait and reload the page after 10 minutes."})})]}):be(_e,{horizontal:!0,className:qe.chatRoot,children:[be("div",{className:qe.chatContainer,children:[!g||g.length<1?be(_e,{className:qe.chatEmptyState,children:[G("img",{src:t!=null&&t.chat_logo?t.chat_logo:$D,className:qe.chatIcon,"aria-hidden":"true"}),G("h1",{className:qe.chatEmptyStateTitle,children:t==null?void 0:t.chat_title}),G("h2",{className:qe.chatEmptyStateSubtitle,children:t==null?void 0:t.chat_description})]}):be("div",{className:qe.chatMessageStream,style:{marginBottom:i?"40px":"0px"},role:"log",children:[g.map((ae,ke)=>G(ha,{children:ae.role==="user"?G("div",{className:qe.chatMessageUser,tabIndex:0,children:G("div",{className:qe.chatMessageUserMessage,children:ae.content})}):ae.role==="assistant"?G("div",{className:qe.chatMessageGpt,children:G($2,{answer:{answer:ae.content,citations:nt(g[ke-1]),message_id:ae.id,feedback:ae.feedback},onCitationClicked:ve=>pe(ve)})}):ae.role===K?be("div",{className:qe.chatMessageError,children:[be(_e,{horizontal:!0,className:qe.chatMessageErrorContent,children:[G(Vq,{className:qe.errorIcon,style:{color:"rgba(182, 52, 67, 1)"}}),G("span",{children:"Error"})]}),G("span",{className:qe.chatMessageErrorContent,children:ae.content})]}):null})),o&&G(ha,{children:G("div",{className:qe.chatMessageGpt,children:G($2,{answer:{answer:"Generating answer...",citations:[]},onCitationClicked:()=>null})})}),G("div",{ref:r})]}),be(_e,{horizontal:!0,className:qe.chatInput,children:[i&&be(_e,{horizontal:!0,className:qe.stopGeneratingContainer,role:"button","aria-label":"Stop generating",tabIndex:0,onClick:xe,onKeyDown:ae=>ae.key==="Enter"||ae.key===" "?xe():null,children:[G(Jq,{className:qe.stopGeneratingIcon,"aria-hidden":"true"}),G("span",{className:qe.stopGeneratingText,"aria-hidden":"true",children:"Stop generating"})]}),be(_e,{children:[(($t=e==null?void 0:e.state.isCosmosDBAvailable)==null?void 0:$t.status)!==An.NotConfigured&&G(vc,{role:"button",styles:{icon:{color:"#FFFFFF"},iconDisabled:{color:"#BDBDBD !important"},root:{color:"#FFFFFF",background:"radial-gradient(109.81% 107.82% at 100.1% 90.19%, #0F6CBD 33.63%, #2D87C3 70.31%, #8DDDD8 100%)"},rootDisabled:{background:"#F0F0F0"}},className:qe.newChatIcon,iconProps:{iconName:"Add"},onClick:me,disabled:ot(),"aria-label":"start a new chat button"}),G(vc,{role:"button",styles:{icon:{color:"#FFFFFF"},iconDisabled:{color:"#BDBDBD !important"},root:{color:"#FFFFFF",background:"radial-gradient(109.81% 107.82% at 100.1% 90.19%, #0F6CBD 33.63%, #2D87C3 70.31%, #8DDDD8 100%)"},rootDisabled:{background:"#F0F0F0"}},className:((Pt=e==null?void 0:e.state.isCosmosDBAvailable)==null?void 0:Pt.status)!==An.NotConfigured?qe.clearChatBroom:qe.clearChatBroomNoCosmos,iconProps:{iconName:"Broom"},onClick:((tn=e==null?void 0:e.state.isCosmosDBAvailable)==null?void 0:tn.status)!==An.NotConfigured?ce:me,disabled:ot(),"aria-label":"clear chat button"}),G(wl,{hidden:A,onDismiss:z,dialogContentProps:O,modalProps:R})]}),G(Rme,{clearOnSend:!0,placeholder:"Type a new question...",disabled:i,onSend:(ae,ke)=>{var ve;(ve=e==null?void 0:e.state.isCosmosDBAvailable)!=null&&ve.cosmosDB?k(ae,ke):I(ae,ke)},conversationId:(bn=e==null?void 0:e.state.currentChat)!=null&&bn.id?(nn=e==null?void 0:e.state.currentChat)==null?void 0:nn.id:void 0})]})]}),g&&g.length>0&&c&&l&&be(_e.Item,{className:qe.citationPanel,tabIndex:0,role:"tabpanel","aria-label":"Citations Panel",children:[be(_e,{"aria-label":"Citations Panel Header Container",horizontal:!0,className:qe.citationPanelHeaderContainer,horizontalAlign:"space-between",verticalAlign:"center",children:[G("span",{"aria-label":"Citations",className:qe.citationPanelHeader,children:"Citations"}),G($o,{iconProps:{iconName:"Cancel"},"aria-label":"Close citations panel",onClick:()=>d(!1)})]}),G("h5",{className:qe.citationPanelTitle,tabIndex:0,title:l.url&&!l.url.includes("blob.core")?l.url:l.title??"",onClick:()=>Ie(l),children:l.title}),G("div",{tabIndex:0,children:G(y_,{linkTarget:"_blank",className:qe.citationPanelContent,children:a8.sanitize(l.content,{ALLOWED_TAGS:o8}),remarkPlugins:[ZL],rehypePlugins:[Fee]})})]}),(e==null?void 0:e.state.isChatHistoryOpen)&&((zt=e==null?void 0:e.state.isCosmosDBAvailable)==null?void 0:zt.status)!==An.NotConfigured&&G(zme,{})]})})};Gz();function jme(){return G(vj,{children:G(SP,{children:G(bP,{children:be(a1,{path:"/",element:G(Tj,{}),children:[G(a1,{index:!0,element:G(qme,{})}),G(a1,{path:"*",element:G(_j,{})})]})})})})}uy.createRoot(document.getElementById("root")).render(G(Nt.StrictMode,{children:G(jme,{})}))});export default Wme(); -//# sourceMappingURL=index-2d2026f2.js.map +//# sourceMappingURL=index-1a8e7edc.js.map diff --git a/static/assets/index-2d2026f2.js.map b/static/assets/index-1a8e7edc.js.map similarity index 99% rename from static/assets/index-2d2026f2.js.map rename to static/assets/index-1a8e7edc.js.map index 1ce70eb52a..399f551632 100644 --- a/static/assets/index-2d2026f2.js.map +++ b/static/assets/index-1a8e7edc.js.map @@ -1 +1 @@ -{"version":3,"file":"index-2d2026f2.js","sources":["../../frontend/node_modules/react/cjs/react.production.min.js","../../frontend/node_modules/react/index.js","../../frontend/node_modules/react/cjs/react-jsx-runtime.production.min.js","../../frontend/node_modules/react/jsx-runtime.js","../../frontend/node_modules/scheduler/cjs/scheduler.production.min.js","../../frontend/node_modules/scheduler/index.js","../../frontend/node_modules/react-dom/cjs/react-dom.production.min.js","../../frontend/node_modules/react-dom/index.js","../../frontend/node_modules/react-dom/client.js","../../frontend/node_modules/@remix-run/router/dist/router.js","../../frontend/node_modules/react-router/dist/index.js","../../frontend/node_modules/react-router-dom/dist/index.js","../../frontend/node_modules/@fluentui/set-version/lib/setVersion.js","../../frontend/node_modules/@fluentui/set-version/lib/index.js","../../frontend/node_modules/tslib/tslib.es6.js","../../frontend/node_modules/@fluentui/merge-styles/lib/Stylesheet.js","../../frontend/node_modules/@fluentui/merge-styles/lib/extractStyleParts.js","../../frontend/node_modules/@fluentui/merge-styles/lib/StyleOptionsState.js","../../frontend/node_modules/@fluentui/merge-styles/lib/transforms/kebabRules.js","../../frontend/node_modules/@fluentui/merge-styles/lib/getVendorSettings.js","../../frontend/node_modules/@fluentui/merge-styles/lib/transforms/prefixRules.js","../../frontend/node_modules/@fluentui/merge-styles/lib/transforms/provideUnits.js","../../frontend/node_modules/@fluentui/merge-styles/lib/transforms/rtlifyRules.js","../../frontend/node_modules/@fluentui/merge-styles/lib/tokenizeWithParentheses.js","../../frontend/node_modules/@fluentui/merge-styles/lib/styleToClassName.js","../../frontend/node_modules/@fluentui/merge-styles/lib/mergeStyles.js","../../frontend/node_modules/@fluentui/merge-styles/lib/concatStyleSets.js","../../frontend/node_modules/@fluentui/merge-styles/lib/mergeStyleSets.js","../../frontend/node_modules/@fluentui/merge-styles/lib/concatStyleSetsWithProps.js","../../frontend/node_modules/@fluentui/merge-styles/lib/fontFace.js","../../frontend/node_modules/@fluentui/merge-styles/lib/keyframes.js","../../frontend/node_modules/@fluentui/style-utilities/lib/utilities/buildClassMap.js","../../frontend/node_modules/@fluentui/utilities/lib/dom/canUseDOM.js","../../frontend/node_modules/@fluentui/utilities/lib/dom/getWindow.js","../../frontend/node_modules/@fluentui/utilities/lib/Async.js","../../frontend/node_modules/@fluentui/utilities/lib/object.js","../../frontend/node_modules/@fluentui/utilities/lib/EventGroup.js","../../frontend/node_modules/@fluentui/utilities/lib/dom/getDocument.js","../../frontend/node_modules/@fluentui/utilities/lib/scroll.js","../../frontend/node_modules/@fluentui/utilities/lib/warn/warn.js","../../frontend/node_modules/@fluentui/utilities/lib/warn/warnConditionallyRequiredProps.js","../../frontend/node_modules/@fluentui/utilities/lib/BaseComponent.js","../../frontend/node_modules/@fluentui/utilities/lib/DelayedRender.js","../../frontend/node_modules/@fluentui/utilities/lib/GlobalSettings.js","../../frontend/node_modules/@fluentui/utilities/lib/KeyCodes.js","../../frontend/node_modules/@fluentui/utilities/lib/Rectangle.js","../../frontend/node_modules/@fluentui/utilities/lib/appendFunction.js","../../frontend/node_modules/@fluentui/utilities/lib/aria.js","../../frontend/node_modules/@fluentui/utilities/lib/array.js","../../frontend/node_modules/@fluentui/utilities/lib/sessionStorage.js","../../frontend/node_modules/@fluentui/utilities/lib/rtl.js","../../frontend/node_modules/@fluentui/dom-utilities/lib/isVirtualElement.js","../../frontend/node_modules/@fluentui/dom-utilities/lib/getVirtualParent.js","../../frontend/node_modules/@fluentui/dom-utilities/lib/getParent.js","../../frontend/node_modules/@fluentui/dom-utilities/lib/elementContains.js","../../frontend/node_modules/@fluentui/dom-utilities/lib/findElementRecursive.js","../../frontend/node_modules/@fluentui/dom-utilities/lib/elementContainsAttribute.js","../../frontend/node_modules/@fluentui/dom-utilities/lib/setPortalAttribute.js","../../frontend/node_modules/@fluentui/dom-utilities/lib/portalContainsElement.js","../../frontend/node_modules/@fluentui/dom-utilities/lib/setVirtualParent.js","../../frontend/node_modules/@fluentui/utilities/lib/focus.js","../../frontend/node_modules/@fluentui/utilities/lib/dom/on.js","../../frontend/node_modules/@fluentui/utilities/lib/classNamesFunction.js","../../frontend/node_modules/@fluentui/utilities/lib/memoize.js","../../frontend/node_modules/@fluentui/utilities/lib/componentAs/composeComponentAs.js","../../frontend/node_modules/@fluentui/utilities/lib/controlled.js","../../frontend/node_modules/@fluentui/utilities/lib/css.js","../../frontend/node_modules/@fluentui/utilities/lib/customizations/Customizations.js","../../frontend/node_modules/@fluentui/utilities/lib/customizations/CustomizerContext.js","../../frontend/node_modules/@fluentui/utilities/lib/customizations/mergeSettings.js","../../frontend/node_modules/@fluentui/utilities/lib/customizations/mergeCustomizations.js","../../frontend/node_modules/@fluentui/utilities/lib/customizations/Customizer.js","../../frontend/node_modules/@fluentui/utilities/lib/hoistStatics.js","../../frontend/node_modules/@fluentui/utilities/lib/customizations/customizable.js","../../frontend/node_modules/@fluentui/utilities/lib/customizations/useCustomizationSettings.js","../../frontend/node_modules/@fluentui/utilities/lib/extendComponent.js","../../frontend/node_modules/@fluentui/utilities/lib/getId.js","../../frontend/node_modules/@fluentui/utilities/lib/properties.js","../../frontend/node_modules/@fluentui/utilities/lib/hoist.js","../../frontend/node_modules/@fluentui/utilities/lib/initializeComponentRef.js","../../frontend/node_modules/@fluentui/utilities/lib/keyboard.js","../../frontend/node_modules/@fluentui/utilities/lib/setFocusVisibility.js","../../frontend/node_modules/@fluentui/utilities/lib/useFocusRects.js","../../frontend/node_modules/@fluentui/utilities/lib/FocusRectsProvider.js","../../frontend/node_modules/@fluentui/utilities/lib/localStorage.js","../../frontend/node_modules/@fluentui/utilities/lib/language.js","../../frontend/node_modules/@fluentui/utilities/lib/merge.js","../../frontend/node_modules/@fluentui/utilities/lib/mobileDetector.js","../../frontend/node_modules/@fluentui/utilities/lib/modalize.js","../../frontend/node_modules/@fluentui/utilities/lib/osDetector.js","../../frontend/node_modules/@fluentui/utilities/lib/renderFunction/composeRenderFunction.js","../../frontend/node_modules/@fluentui/utilities/lib/styled.js","../../frontend/node_modules/@fluentui/utilities/lib/ie11Detector.js","../../frontend/node_modules/@fluentui/utilities/lib/getPropsWithDefaults.js","../../frontend/node_modules/@fluentui/utilities/lib/createMergedRef.js","../../frontend/node_modules/@fluentui/utilities/lib/useIsomorphicLayoutEffect.js","../../frontend/node_modules/@fluentui/style-utilities/lib/utilities/icons.js","../../frontend/node_modules/@fluentui/theme/lib/utilities/makeSemanticColors.js","../../frontend/node_modules/@fluentui/theme/lib/mergeThemes.js","../../frontend/node_modules/@fluentui/theme/lib/colors/DefaultPalette.js","../../frontend/node_modules/@fluentui/theme/lib/effects/FluentDepths.js","../../frontend/node_modules/@fluentui/theme/lib/effects/DefaultEffects.js","../../frontend/node_modules/@fluentui/theme/lib/spacing/DefaultSpacing.js","../../frontend/node_modules/@fluentui/theme/lib/motion/AnimationStyles.js","../../frontend/node_modules/@fluentui/theme/lib/fonts/FluentFonts.js","../../frontend/node_modules/@fluentui/theme/lib/fonts/createFontStyles.js","../../frontend/node_modules/@fluentui/theme/lib/fonts/DefaultFontStyles.js","../../frontend/node_modules/@fluentui/theme/lib/createTheme.js","../../frontend/node_modules/@fluentui/style-utilities/lib/styles/CommonStyles.js","../../frontend/node_modules/@fluentui/style-utilities/lib/styles/zIndexes.js","../../frontend/node_modules/@fluentui/style-utilities/lib/styles/getFocusStyle.js","../../frontend/node_modules/@fluentui/style-utilities/lib/styles/hiddenContentStyle.js","../../frontend/node_modules/@fluentui/style-utilities/lib/styles/getGlobalClassNames.js","../../frontend/node_modules/@microsoft/load-themed-styles/lib-es6/index.js","../../frontend/node_modules/@fluentui/style-utilities/lib/styles/theme.js","../../frontend/node_modules/@fluentui/style-utilities/lib/styles/GeneralStyles.js","../../frontend/node_modules/@fluentui/style-utilities/lib/styles/getPlaceholderStyles.js","../../frontend/node_modules/@fluentui/style-utilities/lib/classNames/AnimationClassNames.js","../../frontend/node_modules/@fluentui/style-utilities/lib/version.js","../../frontend/node_modules/@fluentui/style-utilities/lib/index.js","../../frontend/node_modules/@fluentui/react/lib/common/DirectionalHint.js","../../frontend/node_modules/@fluentui/react/lib/utilities/positioning/positioning.types.js","../../frontend/node_modules/@fluentui/react/lib/utilities/positioning/positioning.js","../../frontend/node_modules/@fluentui/react-hooks/lib/useAsync.js","../../frontend/node_modules/@fluentui/react-hooks/lib/useConst.js","../../frontend/node_modules/@fluentui/react-hooks/lib/useBoolean.js","../../frontend/node_modules/@fluentui/react-hooks/lib/useControllableValue.js","../../frontend/node_modules/@fluentui/react-hooks/lib/useEventCallback.js","../../frontend/node_modules/@fluentui/react-hooks/lib/useId.js","../../frontend/node_modules/@fluentui/react-hooks/lib/useMergedRefs.js","../../frontend/node_modules/@fluentui/react-hooks/lib/useOnEvent.js","../../frontend/node_modules/@fluentui/react-hooks/lib/usePrevious.js","../../frontend/node_modules/@fluentui/react-hooks/lib/useSetTimeout.js","../../frontend/node_modules/@fluentui/react-window-provider/lib/WindowProvider.js","../../frontend/node_modules/@fluentui/react-hooks/lib/useTarget.js","../../frontend/node_modules/@fluentui/react-hooks/lib/useUnmount.js","../../frontend/node_modules/@fluentui/react/lib/components/Popup/Popup.js","../../frontend/node_modules/@fluentui/react/lib/components/Callout/CalloutContent.base.js","../../frontend/node_modules/@fluentui/react/lib/components/Callout/CalloutContent.styles.js","../../frontend/node_modules/@fluentui/react/lib/components/Callout/CalloutContent.js","../../frontend/node_modules/@fluentui/react-portal-compat-context/lib/PortalCompatContext.js","../../frontend/node_modules/@fluentui/react/lib/components/Fabric/Fabric.base.js","../../frontend/node_modules/@fluentui/react/lib/components/Fabric/Fabric.styles.js","../../frontend/node_modules/@fluentui/react/lib/components/Fabric/Fabric.js","../../frontend/node_modules/@fluentui/react/lib/components/Layer/Layer.notification.js","../../frontend/node_modules/@fluentui/react/lib/components/Layer/Layer.base.js","../../frontend/node_modules/@fluentui/react/lib/components/Layer/Layer.styles.js","../../frontend/node_modules/@fluentui/react/lib/components/Layer/Layer.js","../../frontend/node_modules/@fluentui/react/lib/components/Callout/Callout.js","../../frontend/node_modules/@fluentui/react/lib/components/FocusTrapZone/FocusTrapZone.js","../../frontend/node_modules/@fluentui/react/lib/components/Icon/Icon.types.js","../../frontend/node_modules/@fluentui/react/lib/components/Image/Image.types.js","../../frontend/node_modules/@fluentui/react/lib/components/Image/Image.base.js","../../frontend/node_modules/@fluentui/react/lib/components/Image/Image.styles.js","../../frontend/node_modules/@fluentui/react/lib/components/Image/Image.js","../../frontend/node_modules/@fluentui/react/lib/components/Icon/Icon.styles.js","../../frontend/node_modules/@fluentui/react/lib/components/Icon/FontIcon.js","../../frontend/node_modules/@fluentui/react/lib/components/Icon/Icon.base.js","../../frontend/node_modules/@fluentui/react/lib/components/Icon/Icon.js","../../frontend/node_modules/@fluentui/react/lib/components/Icon/ImageIcon.js","../../frontend/node_modules/@fluentui/react-focus/lib/components/FocusZone/FocusZone.types.js","../../frontend/node_modules/@fluentui/react-focus/lib/components/FocusZone/FocusZone.js","../../frontend/node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenu.types.js","../../frontend/node_modules/@fluentui/react/lib/utilities/contextualMenu/contextualMenuUtility.js","../../frontend/node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenuItem.base.js","../../frontend/node_modules/@fluentui/react/lib/components/Divider/VerticalDivider.classNames.js","../../frontend/node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenu.cnstyles.js","../../frontend/node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenu.classNames.js","../../frontend/node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenuItem.js","../../frontend/node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenuItemWrapper/ContextualMenuItemWrapper.js","../../frontend/node_modules/@fluentui/react/lib/utilities/keytips/KeytipConstants.js","../../frontend/node_modules/@fluentui/react/lib/utilities/keytips/KeytipManager.js","../../frontend/node_modules/@fluentui/react/lib/utilities/keytips/KeytipUtils.js","../../frontend/node_modules/@fluentui/react/lib/components/KeytipData/useKeytipData.js","../../frontend/node_modules/@fluentui/react/lib/components/KeytipData/KeytipData.js","../../frontend/node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenuItemWrapper/ContextualMenuAnchor.js","../../frontend/node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenuItemWrapper/ContextualMenuButton.js","../../frontend/node_modules/@fluentui/react/lib/components/Divider/VerticalDivider.styles.js","../../frontend/node_modules/@fluentui/react/lib/components/Divider/VerticalDivider.base.js","../../frontend/node_modules/@fluentui/react/lib/components/Divider/VerticalDivider.js","../../frontend/node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenuItemWrapper/ContextualMenuSplitButton.js","../../frontend/node_modules/@fluentui/react/lib/utilities/decorators/BaseDecorator.js","../../frontend/node_modules/@fluentui/react/lib/utilities/decorators/withResponsiveMode.js","../../frontend/node_modules/@fluentui/react/lib/utilities/hooks/useResponsiveMode.js","../../frontend/node_modules/@fluentui/react/lib/utilities/MenuContext/MenuContext.js","../../frontend/node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenu.base.js","../../frontend/node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenu.styles.js","../../frontend/node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenu.js","../../frontend/node_modules/@fluentui/react/lib/components/Button/BaseButton.classNames.js","../../frontend/node_modules/@fluentui/react/lib/components/Button/SplitButton/SplitButton.classNames.js","../../frontend/node_modules/@fluentui/react/lib/components/Button/BaseButton.js","../../frontend/node_modules/@fluentui/react/lib/components/Button/BaseButton.styles.js","../../frontend/node_modules/@fluentui/react/lib/components/Button/SplitButton/SplitButton.styles.js","../../frontend/node_modules/@fluentui/react/lib/components/Button/ButtonThemes.js","../../frontend/node_modules/@fluentui/react/lib/components/Button/DefaultButton/DefaultButton.styles.js","../../frontend/node_modules/@fluentui/react/lib/components/Button/DefaultButton/DefaultButton.js","../../frontend/node_modules/@fluentui/react/lib/components/Button/IconButton/IconButton.styles.js","../../frontend/node_modules/@fluentui/react/lib/components/Button/IconButton/IconButton.js","../../frontend/node_modules/@fluentui/react/lib/components/Button/PrimaryButton/PrimaryButton.js","../../frontend/node_modules/@fluentui/react/lib/components/Button/CommandBarButton/CommandBarButton.styles.js","../../frontend/node_modules/@fluentui/react/lib/components/Button/CommandBarButton/CommandBarButton.js","../../frontend/node_modules/@fluentui/react/lib/components/Checkbox/Checkbox.base.js","../../frontend/node_modules/@fluentui/react/lib/components/Checkbox/Checkbox.styles.js","../../frontend/node_modules/@fluentui/react/lib/components/Checkbox/Checkbox.js","../../frontend/node_modules/@fluentui/react/lib/components/Label/Label.base.js","../../frontend/node_modules/@fluentui/react/lib/components/Label/Label.styles.js","../../frontend/node_modules/@fluentui/react/lib/components/Label/Label.js","../../frontend/node_modules/@fluentui/react/lib/components/TextField/TextField.base.js","../../frontend/node_modules/@fluentui/react/lib/components/TextField/TextField.styles.js","../../frontend/node_modules/@fluentui/react/lib/components/TextField/TextField.js","../../frontend/node_modules/@fluentui/react/lib/components/List/List.types.js","../../frontend/node_modules/@fluentui/react/lib/components/List/utils/scroll.js","../../frontend/node_modules/@fluentui/react/lib/components/List/List.js","../../frontend/node_modules/@fluentui/react/lib/components/Spinner/Spinner.types.js","../../frontend/node_modules/@fluentui/react/lib/components/Spinner/Spinner.base.js","../../frontend/node_modules/@fluentui/react/lib/components/Spinner/Spinner.styles.js","../../frontend/node_modules/@fluentui/react/lib/components/Spinner/Spinner.js","../../frontend/node_modules/@fluentui/react/lib/components/Dialog/DialogContent.types.js","../../frontend/node_modules/@fluentui/react/lib/components/Modal/Modal.styles.js","../../frontend/node_modules/@fluentui/react/lib/components/Overlay/Overlay.base.js","../../frontend/node_modules/@fluentui/react/lib/components/Overlay/Overlay.styles.js","../../frontend/node_modules/@fluentui/react/lib/components/Overlay/Overlay.js","../../frontend/node_modules/@fluentui/react/lib/utilities/DraggableZone/DraggableZone.styles.js","../../frontend/node_modules/@fluentui/react/lib/utilities/DraggableZone/DraggableZone.js","../../frontend/node_modules/@fluentui/react/lib/components/Modal/Modal.base.js","../../frontend/node_modules/@fluentui/react/lib/components/Modal/Modal.js","../../frontend/node_modules/@fluentui/react/lib/components/Dialog/DialogFooter.base.js","../../frontend/node_modules/@fluentui/react/lib/components/Dialog/DialogFooter.styles.js","../../frontend/node_modules/@fluentui/react/lib/components/Dialog/DialogFooter.js","../../frontend/node_modules/@fluentui/react/lib/components/Dialog/DialogContent.base.js","../../frontend/node_modules/@fluentui/react/lib/components/Dialog/DialogContent.styles.js","../../frontend/node_modules/@fluentui/react/lib/components/Dialog/DialogContent.js","../../frontend/node_modules/@fluentui/react/lib/components/Dialog/Dialog.base.js","../../frontend/node_modules/@fluentui/react/lib/components/Dialog/Dialog.styles.js","../../frontend/node_modules/@fluentui/react/lib/components/Dialog/Dialog.js","../../frontend/node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons.js","../../frontend/node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-0.js","../../frontend/node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-1.js","../../frontend/node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-2.js","../../frontend/node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-3.js","../../frontend/node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-4.js","../../frontend/node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-5.js","../../frontend/node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-6.js","../../frontend/node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-7.js","../../frontend/node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-8.js","../../frontend/node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-9.js","../../frontend/node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-10.js","../../frontend/node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-11.js","../../frontend/node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-12.js","../../frontend/node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-13.js","../../frontend/node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-14.js","../../frontend/node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-15.js","../../frontend/node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-16.js","../../frontend/node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-17.js","../../frontend/node_modules/@fluentui/font-icons-mdl2/lib/iconAliases.js","../../frontend/node_modules/@fluentui/font-icons-mdl2/lib/version.js","../../frontend/node_modules/@fluentui/font-icons-mdl2/lib/index.js","../../frontend/node_modules/@fluentui/react/lib/components/Separator/Separator.base.js","../../frontend/node_modules/@fluentui/react/lib/components/Separator/Separator.styles.js","../../frontend/node_modules/@fluentui/react/lib/components/Separator/Separator.js","../../frontend/node_modules/@fluentui/foundation-legacy/lib/utilities.js","../../frontend/node_modules/@fluentui/foundation-legacy/lib/slots.js","../../frontend/node_modules/@fluentui/foundation-legacy/lib/createComponent.js","../../frontend/node_modules/@fluentui/react/lib/components/Stack/StackItem/StackItem.styles.js","../../frontend/node_modules/@fluentui/react/lib/components/Stack/StackItem/StackItem.js","../../frontend/node_modules/@fluentui/react/lib/components/Stack/StackUtils.js","../../frontend/node_modules/@fluentui/react/lib/components/Stack/Stack.styles.js","../../frontend/node_modules/@fluentui/react/lib/components/Stack/Stack.js","../../frontend/node_modules/@fluentui/react/lib/components/Text/Text.view.js","../../frontend/node_modules/@fluentui/react/lib/components/Text/Text.styles.js","../../frontend/node_modules/@fluentui/react/lib/components/Text/Text.js","../../frontend/src/assets/Contoso.svg","../../frontend/node_modules/@griffel/core/constants.esm.js","../../frontend/node_modules/@emotion/hash/dist/emotion-hash.esm.js","../../frontend/node_modules/@griffel/core/runtime/utils/hashSequence.esm.js","../../frontend/node_modules/@griffel/core/runtime/reduceToClassNameForSlots.esm.js","../../frontend/node_modules/@griffel/core/mergeClasses.esm.js","../../frontend/node_modules/@griffel/core/runtime/utils/normalizeCSSBucketEntry.esm.js","../../frontend/node_modules/@griffel/core/renderer/createIsomorphicStyleSheet.esm.js","../../frontend/node_modules/@griffel/core/renderer/getStyleSheetForBucket.esm.js","../../frontend/node_modules/@griffel/core/renderer/createDOMRenderer.esm.js","../../frontend/node_modules/@griffel/core/__styles.esm.js","../../frontend/node_modules/@griffel/react/RendererContext.esm.js","../../frontend/node_modules/@griffel/react/TextDirectionContext.esm.js","../../frontend/node_modules/@griffel/react/__styles.esm.js","../../frontend/node_modules/@fluentui/react-icons/lib/utils/useIconState.js","../../frontend/node_modules/@fluentui/react-icons/lib/utils/wrapIcon.js","../../frontend/node_modules/@fluentui/react-icons/lib/icons/chunk-2.js","../../frontend/node_modules/@fluentui/react-icons/lib/icons/chunk-3.js","../../frontend/node_modules/@fluentui/react-icons/lib/icons/chunk-6.js","../../frontend/node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-24.js","../../frontend/src/components/common/Button.tsx","../../frontend/src/state/AppReducer.tsx","../../frontend/src/api/models.ts","../../frontend/src/api/api.ts","../../frontend/src/state/AppProvider.tsx","../../frontend/src/pages/layout/Layout.tsx","../../frontend/src/pages/NoPage.tsx","../../frontend/node_modules/react-markdown/lib/uri-transformer.js","../../frontend/node_modules/is-buffer/index.js","../../frontend/node_modules/unist-util-stringify-position/lib/index.js","../../frontend/node_modules/vfile-message/lib/index.js","../../frontend/node_modules/vfile/lib/minpath.browser.js","../../frontend/node_modules/vfile/lib/minproc.browser.js","../../frontend/node_modules/vfile/lib/minurl.shared.js","../../frontend/node_modules/vfile/lib/minurl.browser.js","../../frontend/node_modules/vfile/lib/index.js","../../frontend/node_modules/bail/index.js","../../frontend/node_modules/extend/index.js","../../frontend/node_modules/is-plain-obj/index.js","../../frontend/node_modules/trough/index.js","../../frontend/node_modules/unified/lib/index.js","../../frontend/node_modules/mdast-util-to-string/lib/index.js","../../frontend/node_modules/micromark-util-chunked/index.js","../../frontend/node_modules/micromark-util-combine-extensions/index.js","../../frontend/node_modules/micromark-util-character/lib/unicode-punctuation-regex.js","../../frontend/node_modules/micromark-util-character/index.js","../../frontend/node_modules/micromark-factory-space/index.js","../../frontend/node_modules/micromark/lib/initialize/content.js","../../frontend/node_modules/micromark/lib/initialize/document.js","../../frontend/node_modules/micromark-util-classify-character/index.js","../../frontend/node_modules/micromark-util-resolve-all/index.js","../../frontend/node_modules/micromark-core-commonmark/lib/attention.js","../../frontend/node_modules/micromark-core-commonmark/lib/autolink.js","../../frontend/node_modules/micromark-core-commonmark/lib/blank-line.js","../../frontend/node_modules/micromark-core-commonmark/lib/block-quote.js","../../frontend/node_modules/micromark-core-commonmark/lib/character-escape.js","../../frontend/node_modules/decode-named-character-reference/index.dom.js","../../frontend/node_modules/micromark-core-commonmark/lib/character-reference.js","../../frontend/node_modules/micromark-core-commonmark/lib/code-fenced.js","../../frontend/node_modules/micromark-core-commonmark/lib/code-indented.js","../../frontend/node_modules/micromark-core-commonmark/lib/code-text.js","../../frontend/node_modules/micromark-util-subtokenize/index.js","../../frontend/node_modules/micromark-core-commonmark/lib/content.js","../../frontend/node_modules/micromark-factory-destination/index.js","../../frontend/node_modules/micromark-factory-label/index.js","../../frontend/node_modules/micromark-factory-title/index.js","../../frontend/node_modules/micromark-factory-whitespace/index.js","../../frontend/node_modules/micromark-util-normalize-identifier/index.js","../../frontend/node_modules/micromark-core-commonmark/lib/definition.js","../../frontend/node_modules/micromark-core-commonmark/lib/hard-break-escape.js","../../frontend/node_modules/micromark-core-commonmark/lib/heading-atx.js","../../frontend/node_modules/micromark-util-html-tag-name/index.js","../../frontend/node_modules/micromark-core-commonmark/lib/html-flow.js","../../frontend/node_modules/micromark-core-commonmark/lib/html-text.js","../../frontend/node_modules/micromark-core-commonmark/lib/label-end.js","../../frontend/node_modules/micromark-core-commonmark/lib/label-start-image.js","../../frontend/node_modules/micromark-core-commonmark/lib/label-start-link.js","../../frontend/node_modules/micromark-core-commonmark/lib/line-ending.js","../../frontend/node_modules/micromark-core-commonmark/lib/thematic-break.js","../../frontend/node_modules/micromark-core-commonmark/lib/list.js","../../frontend/node_modules/micromark-core-commonmark/lib/setext-underline.js","../../frontend/node_modules/micromark/lib/initialize/flow.js","../../frontend/node_modules/micromark/lib/initialize/text.js","../../frontend/node_modules/micromark/lib/create-tokenizer.js","../../frontend/node_modules/micromark/lib/constructs.js","../../frontend/node_modules/micromark/lib/parse.js","../../frontend/node_modules/micromark/lib/preprocess.js","../../frontend/node_modules/micromark/lib/postprocess.js","../../frontend/node_modules/micromark-util-decode-numeric-character-reference/index.js","../../frontend/node_modules/micromark-util-decode-string/index.js","../../frontend/node_modules/mdast-util-from-markdown/lib/index.js","../../frontend/node_modules/remark-parse/lib/index.js","../../frontend/node_modules/mdast-util-to-hast/lib/handlers/blockquote.js","../../frontend/node_modules/mdast-util-to-hast/lib/handlers/break.js","../../frontend/node_modules/mdast-util-to-hast/lib/handlers/code.js","../../frontend/node_modules/mdast-util-to-hast/lib/handlers/delete.js","../../frontend/node_modules/mdast-util-to-hast/lib/handlers/emphasis.js","../../frontend/node_modules/micromark-util-sanitize-uri/index.js","../../frontend/node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js","../../frontend/node_modules/mdast-util-to-hast/lib/handlers/footnote.js","../../frontend/node_modules/mdast-util-to-hast/lib/handlers/heading.js","../../frontend/node_modules/mdast-util-to-hast/lib/handlers/html.js","../../frontend/node_modules/mdast-util-to-hast/lib/revert.js","../../frontend/node_modules/mdast-util-to-hast/lib/handlers/image-reference.js","../../frontend/node_modules/mdast-util-to-hast/lib/handlers/image.js","../../frontend/node_modules/mdast-util-to-hast/lib/handlers/inline-code.js","../../frontend/node_modules/mdast-util-to-hast/lib/handlers/link-reference.js","../../frontend/node_modules/mdast-util-to-hast/lib/handlers/link.js","../../frontend/node_modules/mdast-util-to-hast/lib/handlers/list-item.js","../../frontend/node_modules/mdast-util-to-hast/lib/handlers/list.js","../../frontend/node_modules/mdast-util-to-hast/lib/handlers/paragraph.js","../../frontend/node_modules/mdast-util-to-hast/lib/handlers/root.js","../../frontend/node_modules/mdast-util-to-hast/lib/handlers/strong.js","../../frontend/node_modules/unist-util-position/lib/index.js","../../frontend/node_modules/mdast-util-to-hast/lib/handlers/table.js","../../frontend/node_modules/mdast-util-to-hast/lib/handlers/table-row.js","../../frontend/node_modules/mdast-util-to-hast/lib/handlers/table-cell.js","../../frontend/node_modules/trim-lines/index.js","../../frontend/node_modules/mdast-util-to-hast/lib/handlers/text.js","../../frontend/node_modules/mdast-util-to-hast/lib/handlers/thematic-break.js","../../frontend/node_modules/mdast-util-to-hast/lib/handlers/index.js","../../frontend/node_modules/unist-util-is/lib/index.js","../../frontend/node_modules/unist-util-visit-parents/lib/index.js","../../frontend/node_modules/unist-util-visit/lib/index.js","../../frontend/node_modules/unist-util-generated/lib/index.js","../../frontend/node_modules/mdast-util-definitions/lib/index.js","../../frontend/node_modules/mdast-util-to-hast/lib/state.js","../../frontend/node_modules/mdast-util-to-hast/lib/footer.js","../../frontend/node_modules/mdast-util-to-hast/lib/index.js","../../frontend/node_modules/remark-rehype/lib/index.js","../../frontend/node_modules/prop-types/lib/ReactPropTypesSecret.js","../../frontend/node_modules/prop-types/factoryWithThrowingShims.js","../../frontend/node_modules/prop-types/index.js","../../frontend/node_modules/property-information/lib/util/schema.js","../../frontend/node_modules/property-information/lib/util/merge.js","../../frontend/node_modules/property-information/lib/normalize.js","../../frontend/node_modules/property-information/lib/util/info.js","../../frontend/node_modules/property-information/lib/util/types.js","../../frontend/node_modules/property-information/lib/util/defined-info.js","../../frontend/node_modules/property-information/lib/util/create.js","../../frontend/node_modules/property-information/lib/xlink.js","../../frontend/node_modules/property-information/lib/xml.js","../../frontend/node_modules/property-information/lib/util/case-sensitive-transform.js","../../frontend/node_modules/property-information/lib/util/case-insensitive-transform.js","../../frontend/node_modules/property-information/lib/xmlns.js","../../frontend/node_modules/property-information/lib/aria.js","../../frontend/node_modules/property-information/lib/html.js","../../frontend/node_modules/property-information/lib/svg.js","../../frontend/node_modules/property-information/lib/find.js","../../frontend/node_modules/property-information/lib/hast-to-react.js","../../frontend/node_modules/property-information/index.js","../../frontend/node_modules/react-markdown/lib/rehype-filter.js","../../frontend/node_modules/react-is/cjs/react-is.production.min.js","../../frontend/node_modules/react-is/index.js","../../frontend/node_modules/hast-util-whitespace/index.js","../../frontend/node_modules/space-separated-tokens/index.js","../../frontend/node_modules/comma-separated-tokens/index.js","../../frontend/node_modules/inline-style-parser/index.js","../../frontend/node_modules/style-to-object/index.js","../../frontend/node_modules/style-to-object/index.mjs","../../frontend/node_modules/react-markdown/lib/ast-to-react.js","../../frontend/node_modules/react-markdown/lib/react-markdown.js","../../frontend/node_modules/micromark-extension-gfm-autolink-literal/lib/syntax.js","../../frontend/node_modules/micromark-extension-gfm-footnote/lib/syntax.js","../../frontend/node_modules/micromark-extension-gfm-strikethrough/lib/syntax.js","../../frontend/node_modules/micromark-extension-gfm-table/lib/edit-map.js","../../frontend/node_modules/micromark-extension-gfm-table/lib/infer.js","../../frontend/node_modules/micromark-extension-gfm-table/lib/syntax.js","../../frontend/node_modules/micromark-extension-gfm-task-list-item/lib/syntax.js","../../frontend/node_modules/micromark-extension-gfm/index.js","../../frontend/node_modules/ccount/index.js","../../frontend/node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp/index.js","../../frontend/node_modules/mdast-util-find-and-replace/lib/index.js","../../frontend/node_modules/mdast-util-gfm-autolink-literal/lib/index.js","../../frontend/node_modules/mdast-util-to-markdown/lib/util/association.js","../../frontend/node_modules/mdast-util-to-markdown/lib/util/container-flow.js","../../frontend/node_modules/mdast-util-to-markdown/lib/util/indent-lines.js","../../frontend/node_modules/mdast-util-to-markdown/lib/util/pattern-compile.js","../../frontend/node_modules/mdast-util-to-markdown/lib/util/pattern-in-scope.js","../../frontend/node_modules/mdast-util-to-markdown/lib/util/safe.js","../../frontend/node_modules/mdast-util-to-markdown/lib/util/track.js","../../frontend/node_modules/mdast-util-gfm-footnote/lib/index.js","../../frontend/node_modules/mdast-util-to-markdown/lib/util/container-phrasing.js","../../frontend/node_modules/mdast-util-gfm-strikethrough/lib/index.js","../../frontend/node_modules/mdast-util-to-markdown/lib/handle/inline-code.js","../../frontend/node_modules/markdown-table/index.js","../../frontend/node_modules/mdast-util-gfm-table/lib/index.js","../../frontend/node_modules/mdast-util-to-markdown/lib/util/check-bullet.js","../../frontend/node_modules/mdast-util-to-markdown/lib/util/check-list-item-indent.js","../../frontend/node_modules/mdast-util-to-markdown/lib/handle/list-item.js","../../frontend/node_modules/mdast-util-gfm-task-list-item/lib/index.js","../../frontend/node_modules/mdast-util-gfm/lib/index.js","../../frontend/node_modules/remark-gfm/index.js","../../frontend/node_modules/parse5/lib/common/unicode.js","../../frontend/node_modules/parse5/lib/common/error-codes.js","../../frontend/node_modules/parse5/lib/tokenizer/preprocessor.js","../../frontend/node_modules/parse5/lib/tokenizer/named-entity-data.js","../../frontend/node_modules/parse5/lib/tokenizer/index.js","../../frontend/node_modules/parse5/lib/common/html.js","../../frontend/node_modules/parse5/lib/parser/open-element-stack.js","../../frontend/node_modules/parse5/lib/parser/formatting-element-list.js","../../frontend/node_modules/parse5/lib/utils/mixin.js","../../frontend/node_modules/parse5/lib/extensions/position-tracking/preprocessor-mixin.js","../../frontend/node_modules/parse5/lib/extensions/location-info/tokenizer-mixin.js","../../frontend/node_modules/parse5/lib/extensions/location-info/open-element-stack-mixin.js","../../frontend/node_modules/parse5/lib/extensions/location-info/parser-mixin.js","../../frontend/node_modules/parse5/lib/extensions/error-reporting/mixin-base.js","../../frontend/node_modules/parse5/lib/extensions/error-reporting/preprocessor-mixin.js","../../frontend/node_modules/parse5/lib/extensions/error-reporting/tokenizer-mixin.js","../../frontend/node_modules/parse5/lib/extensions/error-reporting/parser-mixin.js","../../frontend/node_modules/parse5/lib/tree-adapters/default.js","../../frontend/node_modules/parse5/lib/utils/merge-options.js","../../frontend/node_modules/parse5/lib/common/doctype.js","../../frontend/node_modules/parse5/lib/common/foreign-content.js","../../frontend/node_modules/parse5/lib/parser/index.js","../../frontend/node_modules/hast-util-parse-selector/lib/index.js","../../frontend/node_modules/hastscript/lib/core.js","../../frontend/node_modules/hastscript/lib/html.js","../../frontend/node_modules/hastscript/lib/svg-case-sensitive-tag-names.js","../../frontend/node_modules/hastscript/lib/svg.js","../../frontend/node_modules/vfile-location/lib/index.js","../../frontend/node_modules/web-namespaces/index.js","../../frontend/node_modules/hast-util-from-parse5/lib/index.js","../../frontend/node_modules/zwitch/index.js","../../frontend/node_modules/hast-util-to-parse5/lib/index.js","../../frontend/node_modules/html-void-elements/index.js","../../frontend/node_modules/hast-util-raw/lib/index.js","../../frontend/node_modules/rehype-raw/index.js","../../frontend/node_modules/react-uuid/uuid.js","../../frontend/node_modules/lodash-es/_freeGlobal.js","../../frontend/node_modules/lodash-es/_root.js","../../frontend/node_modules/lodash-es/_Symbol.js","../../frontend/node_modules/lodash-es/_getRawTag.js","../../frontend/node_modules/lodash-es/_objectToString.js","../../frontend/node_modules/lodash-es/_baseGetTag.js","../../frontend/node_modules/lodash-es/isObjectLike.js","../../frontend/node_modules/lodash-es/isArray.js","../../frontend/node_modules/lodash-es/isObject.js","../../frontend/node_modules/lodash-es/isFunction.js","../../frontend/node_modules/lodash-es/_coreJsData.js","../../frontend/node_modules/lodash-es/_isMasked.js","../../frontend/node_modules/lodash-es/_toSource.js","../../frontend/node_modules/lodash-es/_baseIsNative.js","../../frontend/node_modules/lodash-es/_getValue.js","../../frontend/node_modules/lodash-es/_getNative.js","../../frontend/node_modules/lodash-es/_WeakMap.js","../../frontend/node_modules/lodash-es/_baseCreate.js","../../frontend/node_modules/lodash-es/_copyArray.js","../../frontend/node_modules/lodash-es/_defineProperty.js","../../frontend/node_modules/lodash-es/_arrayEach.js","../../frontend/node_modules/lodash-es/_isIndex.js","../../frontend/node_modules/lodash-es/_baseAssignValue.js","../../frontend/node_modules/lodash-es/eq.js","../../frontend/node_modules/lodash-es/_assignValue.js","../../frontend/node_modules/lodash-es/_copyObject.js","../../frontend/node_modules/lodash-es/isLength.js","../../frontend/node_modules/lodash-es/isArrayLike.js","../../frontend/node_modules/lodash-es/_isPrototype.js","../../frontend/node_modules/lodash-es/_baseTimes.js","../../frontend/node_modules/lodash-es/_baseIsArguments.js","../../frontend/node_modules/lodash-es/isArguments.js","../../frontend/node_modules/lodash-es/stubFalse.js","../../frontend/node_modules/lodash-es/isBuffer.js","../../frontend/node_modules/lodash-es/_baseIsTypedArray.js","../../frontend/node_modules/lodash-es/_baseUnary.js","../../frontend/node_modules/lodash-es/_nodeUtil.js","../../frontend/node_modules/lodash-es/isTypedArray.js","../../frontend/node_modules/lodash-es/_arrayLikeKeys.js","../../frontend/node_modules/lodash-es/_overArg.js","../../frontend/node_modules/lodash-es/_nativeKeys.js","../../frontend/node_modules/lodash-es/_baseKeys.js","../../frontend/node_modules/lodash-es/keys.js","../../frontend/node_modules/lodash-es/_nativeKeysIn.js","../../frontend/node_modules/lodash-es/_baseKeysIn.js","../../frontend/node_modules/lodash-es/keysIn.js","../../frontend/node_modules/lodash-es/_nativeCreate.js","../../frontend/node_modules/lodash-es/_hashClear.js","../../frontend/node_modules/lodash-es/_hashDelete.js","../../frontend/node_modules/lodash-es/_hashGet.js","../../frontend/node_modules/lodash-es/_hashHas.js","../../frontend/node_modules/lodash-es/_hashSet.js","../../frontend/node_modules/lodash-es/_Hash.js","../../frontend/node_modules/lodash-es/_listCacheClear.js","../../frontend/node_modules/lodash-es/_assocIndexOf.js","../../frontend/node_modules/lodash-es/_listCacheDelete.js","../../frontend/node_modules/lodash-es/_listCacheGet.js","../../frontend/node_modules/lodash-es/_listCacheHas.js","../../frontend/node_modules/lodash-es/_listCacheSet.js","../../frontend/node_modules/lodash-es/_ListCache.js","../../frontend/node_modules/lodash-es/_Map.js","../../frontend/node_modules/lodash-es/_mapCacheClear.js","../../frontend/node_modules/lodash-es/_isKeyable.js","../../frontend/node_modules/lodash-es/_getMapData.js","../../frontend/node_modules/lodash-es/_mapCacheDelete.js","../../frontend/node_modules/lodash-es/_mapCacheGet.js","../../frontend/node_modules/lodash-es/_mapCacheHas.js","../../frontend/node_modules/lodash-es/_mapCacheSet.js","../../frontend/node_modules/lodash-es/_MapCache.js","../../frontend/node_modules/lodash-es/_arrayPush.js","../../frontend/node_modules/lodash-es/_getPrototype.js","../../frontend/node_modules/lodash-es/_stackClear.js","../../frontend/node_modules/lodash-es/_stackDelete.js","../../frontend/node_modules/lodash-es/_stackGet.js","../../frontend/node_modules/lodash-es/_stackHas.js","../../frontend/node_modules/lodash-es/_stackSet.js","../../frontend/node_modules/lodash-es/_Stack.js","../../frontend/node_modules/lodash-es/_baseAssign.js","../../frontend/node_modules/lodash-es/_baseAssignIn.js","../../frontend/node_modules/lodash-es/_cloneBuffer.js","../../frontend/node_modules/lodash-es/_arrayFilter.js","../../frontend/node_modules/lodash-es/stubArray.js","../../frontend/node_modules/lodash-es/_getSymbols.js","../../frontend/node_modules/lodash-es/_copySymbols.js","../../frontend/node_modules/lodash-es/_getSymbolsIn.js","../../frontend/node_modules/lodash-es/_copySymbolsIn.js","../../frontend/node_modules/lodash-es/_baseGetAllKeys.js","../../frontend/node_modules/lodash-es/_getAllKeys.js","../../frontend/node_modules/lodash-es/_getAllKeysIn.js","../../frontend/node_modules/lodash-es/_DataView.js","../../frontend/node_modules/lodash-es/_Promise.js","../../frontend/node_modules/lodash-es/_Set.js","../../frontend/node_modules/lodash-es/_getTag.js","../../frontend/node_modules/lodash-es/_initCloneArray.js","../../frontend/node_modules/lodash-es/_Uint8Array.js","../../frontend/node_modules/lodash-es/_cloneArrayBuffer.js","../../frontend/node_modules/lodash-es/_cloneDataView.js","../../frontend/node_modules/lodash-es/_cloneRegExp.js","../../frontend/node_modules/lodash-es/_cloneSymbol.js","../../frontend/node_modules/lodash-es/_cloneTypedArray.js","../../frontend/node_modules/lodash-es/_initCloneByTag.js","../../frontend/node_modules/lodash-es/_initCloneObject.js","../../frontend/node_modules/lodash-es/_baseIsMap.js","../../frontend/node_modules/lodash-es/isMap.js","../../frontend/node_modules/lodash-es/_baseIsSet.js","../../frontend/node_modules/lodash-es/isSet.js","../../frontend/node_modules/lodash-es/_baseClone.js","../../frontend/node_modules/lodash-es/cloneDeep.js","../../frontend/node_modules/lodash-es/isEmpty.js","../../frontend/node_modules/dompurify/dist/purify.es.mjs","../../frontend/src/constants/xssAllowTags.ts","../../frontend/src/components/Answer/AnswerParser.tsx","../../frontend/node_modules/remark-supersub/lib/index.js","../../frontend/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../../frontend/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../../frontend/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../../frontend/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../../frontend/node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../../frontend/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../../frontend/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../../frontend/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../../frontend/node_modules/@babel/runtime/helpers/esm/typeof.js","../../frontend/node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../../frontend/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../../frontend/node_modules/@babel/runtime/helpers/esm/defineProperty.js","../../frontend/node_modules/@babel/runtime/helpers/esm/extends.js","../../frontend/node_modules/react-syntax-highlighter/dist/esm/create-element.js","../../frontend/node_modules/react-syntax-highlighter/dist/esm/checkForListedLanguage.js","../../frontend/node_modules/react-syntax-highlighter/dist/esm/highlight.js","../../frontend/node_modules/react-syntax-highlighter/dist/esm/languages/prism/supported-languages.js","../../frontend/node_modules/xtend/immutable.js","../../frontend/node_modules/refractor/node_modules/property-information/lib/util/schema.js","../../frontend/node_modules/refractor/node_modules/property-information/lib/util/merge.js","../../frontend/node_modules/refractor/node_modules/property-information/normalize.js","../../frontend/node_modules/refractor/node_modules/property-information/lib/util/info.js","../../frontend/node_modules/refractor/node_modules/property-information/lib/util/types.js","../../frontend/node_modules/refractor/node_modules/property-information/lib/util/defined-info.js","../../frontend/node_modules/refractor/node_modules/property-information/lib/util/create.js","../../frontend/node_modules/refractor/node_modules/property-information/lib/xlink.js","../../frontend/node_modules/refractor/node_modules/property-information/lib/xml.js","../../frontend/node_modules/refractor/node_modules/property-information/lib/util/case-sensitive-transform.js","../../frontend/node_modules/refractor/node_modules/property-information/lib/util/case-insensitive-transform.js","../../frontend/node_modules/refractor/node_modules/property-information/lib/xmlns.js","../../frontend/node_modules/refractor/node_modules/property-information/lib/aria.js","../../frontend/node_modules/refractor/node_modules/property-information/lib/html.js","../../frontend/node_modules/refractor/node_modules/property-information/html.js","../../frontend/node_modules/refractor/node_modules/property-information/find.js","../../frontend/node_modules/refractor/node_modules/hast-util-parse-selector/index.js","../../frontend/node_modules/refractor/node_modules/space-separated-tokens/index.js","../../frontend/node_modules/refractor/node_modules/comma-separated-tokens/index.js","../../frontend/node_modules/refractor/node_modules/hastscript/factory.js","../../frontend/node_modules/refractor/node_modules/hastscript/html.js","../../frontend/node_modules/refractor/node_modules/hastscript/index.js","../../frontend/node_modules/is-decimal/index.js","../../frontend/node_modules/is-hexadecimal/index.js","../../frontend/node_modules/is-alphabetical/index.js","../../frontend/node_modules/is-alphanumerical/index.js","../../frontend/node_modules/parse-entities/decode-entity.browser.js","../../frontend/node_modules/parse-entities/index.js","../../frontend/node_modules/refractor/node_modules/prismjs/components/prism-core.js","../../frontend/node_modules/refractor/lang/markup.js","../../frontend/node_modules/refractor/lang/css.js","../../frontend/node_modules/refractor/lang/clike.js","../../frontend/node_modules/refractor/lang/javascript.js","../../frontend/node_modules/refractor/core.js","../../frontend/node_modules/react-syntax-highlighter/dist/esm/styles/prism/prism.js","../../frontend/node_modules/refractor/lang/abap.js","../../frontend/node_modules/refractor/lang/abnf.js","../../frontend/node_modules/refractor/lang/actionscript.js","../../frontend/node_modules/refractor/lang/ada.js","../../frontend/node_modules/refractor/lang/agda.js","../../frontend/node_modules/refractor/lang/al.js","../../frontend/node_modules/refractor/lang/antlr4.js","../../frontend/node_modules/refractor/lang/apacheconf.js","../../frontend/node_modules/refractor/lang/sql.js","../../frontend/node_modules/refractor/lang/apex.js","../../frontend/node_modules/refractor/lang/apl.js","../../frontend/node_modules/refractor/lang/applescript.js","../../frontend/node_modules/refractor/lang/aql.js","../../frontend/node_modules/refractor/lang/c.js","../../frontend/node_modules/refractor/lang/cpp.js","../../frontend/node_modules/refractor/lang/arduino.js","../../frontend/node_modules/refractor/lang/arff.js","../../frontend/node_modules/refractor/lang/asciidoc.js","../../frontend/node_modules/refractor/lang/asm6502.js","../../frontend/node_modules/refractor/lang/asmatmel.js","../../frontend/node_modules/refractor/lang/csharp.js","../../frontend/node_modules/refractor/lang/aspnet.js","../../frontend/node_modules/refractor/lang/autohotkey.js","../../frontend/node_modules/refractor/lang/autoit.js","../../frontend/node_modules/refractor/lang/avisynth.js","../../frontend/node_modules/refractor/lang/avro-idl.js","../../frontend/node_modules/refractor/lang/bash.js","../../frontend/node_modules/refractor/lang/basic.js","../../frontend/node_modules/refractor/lang/batch.js","../../frontend/node_modules/refractor/lang/bbcode.js","../../frontend/node_modules/refractor/lang/bicep.js","../../frontend/node_modules/refractor/lang/birb.js","../../frontend/node_modules/refractor/lang/bison.js","../../frontend/node_modules/refractor/lang/bnf.js","../../frontend/node_modules/refractor/lang/brainfuck.js","../../frontend/node_modules/refractor/lang/brightscript.js","../../frontend/node_modules/refractor/lang/bro.js","../../frontend/node_modules/refractor/lang/bsl.js","../../frontend/node_modules/refractor/lang/cfscript.js","../../frontend/node_modules/refractor/lang/chaiscript.js","../../frontend/node_modules/refractor/lang/cil.js","../../frontend/node_modules/refractor/lang/clojure.js","../../frontend/node_modules/refractor/lang/cmake.js","../../frontend/node_modules/refractor/lang/cobol.js","../../frontend/node_modules/refractor/lang/coffeescript.js","../../frontend/node_modules/refractor/lang/concurnas.js","../../frontend/node_modules/refractor/lang/coq.js","../../frontend/node_modules/refractor/lang/ruby.js","../../frontend/node_modules/refractor/lang/crystal.js","../../frontend/node_modules/refractor/lang/cshtml.js","../../frontend/node_modules/refractor/lang/csp.js","../../frontend/node_modules/refractor/lang/css-extras.js","../../frontend/node_modules/refractor/lang/csv.js","../../frontend/node_modules/refractor/lang/cypher.js","../../frontend/node_modules/refractor/lang/d.js","../../frontend/node_modules/refractor/lang/dart.js","../../frontend/node_modules/refractor/lang/dataweave.js","../../frontend/node_modules/refractor/lang/dax.js","../../frontend/node_modules/refractor/lang/dhall.js","../../frontend/node_modules/refractor/lang/diff.js","../../frontend/node_modules/refractor/lang/markup-templating.js","../../frontend/node_modules/refractor/lang/django.js","../../frontend/node_modules/refractor/lang/dns-zone-file.js","../../frontend/node_modules/refractor/lang/docker.js","../../frontend/node_modules/refractor/lang/dot.js","../../frontend/node_modules/refractor/lang/ebnf.js","../../frontend/node_modules/refractor/lang/editorconfig.js","../../frontend/node_modules/refractor/lang/eiffel.js","../../frontend/node_modules/refractor/lang/ejs.js","../../frontend/node_modules/refractor/lang/elixir.js","../../frontend/node_modules/refractor/lang/elm.js","../../frontend/node_modules/refractor/lang/erb.js","../../frontend/node_modules/refractor/lang/erlang.js","../../frontend/node_modules/refractor/lang/lua.js","../../frontend/node_modules/refractor/lang/etlua.js","../../frontend/node_modules/refractor/lang/excel-formula.js","../../frontend/node_modules/refractor/lang/factor.js","../../frontend/node_modules/refractor/lang/false.js","../../frontend/node_modules/refractor/lang/firestore-security-rules.js","../../frontend/node_modules/refractor/lang/flow.js","../../frontend/node_modules/refractor/lang/fortran.js","../../frontend/node_modules/refractor/lang/fsharp.js","../../frontend/node_modules/refractor/lang/ftl.js","../../frontend/node_modules/refractor/lang/gap.js","../../frontend/node_modules/refractor/lang/gcode.js","../../frontend/node_modules/refractor/lang/gdscript.js","../../frontend/node_modules/refractor/lang/gedcom.js","../../frontend/node_modules/refractor/lang/gherkin.js","../../frontend/node_modules/refractor/lang/git.js","../../frontend/node_modules/refractor/lang/glsl.js","../../frontend/node_modules/refractor/lang/gml.js","../../frontend/node_modules/refractor/lang/gn.js","../../frontend/node_modules/refractor/lang/go-module.js","../../frontend/node_modules/refractor/lang/go.js","../../frontend/node_modules/refractor/lang/graphql.js","../../frontend/node_modules/refractor/lang/groovy.js","../../frontend/node_modules/refractor/lang/haml.js","../../frontend/node_modules/refractor/lang/handlebars.js","../../frontend/node_modules/refractor/lang/haskell.js","../../frontend/node_modules/refractor/lang/haxe.js","../../frontend/node_modules/refractor/lang/hcl.js","../../frontend/node_modules/refractor/lang/hlsl.js","../../frontend/node_modules/refractor/lang/hoon.js","../../frontend/node_modules/refractor/lang/hpkp.js","../../frontend/node_modules/refractor/lang/hsts.js","../../frontend/node_modules/refractor/lang/http.js","../../frontend/node_modules/refractor/lang/ichigojam.js","../../frontend/node_modules/refractor/lang/icon.js","../../frontend/node_modules/refractor/lang/icu-message-format.js","../../frontend/node_modules/refractor/lang/idris.js","../../frontend/node_modules/refractor/lang/iecst.js","../../frontend/node_modules/refractor/lang/ignore.js","../../frontend/node_modules/refractor/lang/inform7.js","../../frontend/node_modules/refractor/lang/ini.js","../../frontend/node_modules/refractor/lang/io.js","../../frontend/node_modules/refractor/lang/j.js","../../frontend/node_modules/refractor/lang/java.js","../../frontend/node_modules/refractor/lang/javadoclike.js","../../frontend/node_modules/refractor/lang/javadoc.js","../../frontend/node_modules/refractor/lang/javastacktrace.js","../../frontend/node_modules/refractor/lang/jexl.js","../../frontend/node_modules/refractor/lang/jolie.js","../../frontend/node_modules/refractor/lang/jq.js","../../frontend/node_modules/refractor/lang/js-extras.js","../../frontend/node_modules/refractor/lang/js-templates.js","../../frontend/node_modules/refractor/lang/typescript.js","../../frontend/node_modules/refractor/lang/jsdoc.js","../../frontend/node_modules/refractor/lang/json.js","../../frontend/node_modules/refractor/lang/json5.js","../../frontend/node_modules/refractor/lang/jsonp.js","../../frontend/node_modules/refractor/lang/jsstacktrace.js","../../frontend/node_modules/refractor/lang/jsx.js","../../frontend/node_modules/refractor/lang/julia.js","../../frontend/node_modules/refractor/lang/keepalived.js","../../frontend/node_modules/refractor/lang/keyman.js","../../frontend/node_modules/refractor/lang/kotlin.js","../../frontend/node_modules/refractor/lang/kumir.js","../../frontend/node_modules/refractor/lang/kusto.js","../../frontend/node_modules/refractor/lang/latex.js","../../frontend/node_modules/refractor/lang/php.js","../../frontend/node_modules/refractor/lang/latte.js","../../frontend/node_modules/refractor/lang/less.js","../../frontend/node_modules/refractor/lang/scheme.js","../../frontend/node_modules/refractor/lang/lilypond.js","../../frontend/node_modules/refractor/lang/liquid.js","../../frontend/node_modules/refractor/lang/lisp.js","../../frontend/node_modules/refractor/lang/livescript.js","../../frontend/node_modules/refractor/lang/llvm.js","../../frontend/node_modules/refractor/lang/log.js","../../frontend/node_modules/refractor/lang/lolcode.js","../../frontend/node_modules/refractor/lang/magma.js","../../frontend/node_modules/refractor/lang/makefile.js","../../frontend/node_modules/refractor/lang/markdown.js","../../frontend/node_modules/refractor/lang/matlab.js","../../frontend/node_modules/refractor/lang/maxscript.js","../../frontend/node_modules/refractor/lang/mel.js","../../frontend/node_modules/refractor/lang/mermaid.js","../../frontend/node_modules/refractor/lang/mizar.js","../../frontend/node_modules/refractor/lang/mongodb.js","../../frontend/node_modules/refractor/lang/monkey.js","../../frontend/node_modules/refractor/lang/moonscript.js","../../frontend/node_modules/refractor/lang/n1ql.js","../../frontend/node_modules/refractor/lang/n4js.js","../../frontend/node_modules/refractor/lang/nand2tetris-hdl.js","../../frontend/node_modules/refractor/lang/naniscript.js","../../frontend/node_modules/refractor/lang/nasm.js","../../frontend/node_modules/refractor/lang/neon.js","../../frontend/node_modules/refractor/lang/nevod.js","../../frontend/node_modules/refractor/lang/nginx.js","../../frontend/node_modules/refractor/lang/nim.js","../../frontend/node_modules/refractor/lang/nix.js","../../frontend/node_modules/refractor/lang/nsis.js","../../frontend/node_modules/refractor/lang/objectivec.js","../../frontend/node_modules/refractor/lang/ocaml.js","../../frontend/node_modules/refractor/lang/opencl.js","../../frontend/node_modules/refractor/lang/openqasm.js","../../frontend/node_modules/refractor/lang/oz.js","../../frontend/node_modules/refractor/lang/parigp.js","../../frontend/node_modules/refractor/lang/parser.js","../../frontend/node_modules/refractor/lang/pascal.js","../../frontend/node_modules/refractor/lang/pascaligo.js","../../frontend/node_modules/refractor/lang/pcaxis.js","../../frontend/node_modules/refractor/lang/peoplecode.js","../../frontend/node_modules/refractor/lang/perl.js","../../frontend/node_modules/refractor/lang/php-extras.js","../../frontend/node_modules/refractor/lang/phpdoc.js","../../frontend/node_modules/refractor/lang/plsql.js","../../frontend/node_modules/refractor/lang/powerquery.js","../../frontend/node_modules/refractor/lang/powershell.js","../../frontend/node_modules/refractor/lang/processing.js","../../frontend/node_modules/refractor/lang/prolog.js","../../frontend/node_modules/refractor/lang/promql.js","../../frontend/node_modules/refractor/lang/properties.js","../../frontend/node_modules/refractor/lang/protobuf.js","../../frontend/node_modules/refractor/lang/psl.js","../../frontend/node_modules/refractor/lang/pug.js","../../frontend/node_modules/refractor/lang/puppet.js","../../frontend/node_modules/refractor/lang/pure.js","../../frontend/node_modules/refractor/lang/purebasic.js","../../frontend/node_modules/refractor/lang/purescript.js","../../frontend/node_modules/refractor/lang/python.js","../../frontend/node_modules/refractor/lang/q.js","../../frontend/node_modules/refractor/lang/qml.js","../../frontend/node_modules/refractor/lang/qore.js","../../frontend/node_modules/refractor/lang/qsharp.js","../../frontend/node_modules/refractor/lang/r.js","../../frontend/node_modules/refractor/lang/racket.js","../../frontend/node_modules/refractor/lang/reason.js","../../frontend/node_modules/refractor/lang/regex.js","../../frontend/node_modules/refractor/lang/rego.js","../../frontend/node_modules/refractor/lang/renpy.js","../../frontend/node_modules/refractor/lang/rest.js","../../frontend/node_modules/refractor/lang/rip.js","../../frontend/node_modules/refractor/lang/roboconf.js","../../frontend/node_modules/refractor/lang/robotframework.js","../../frontend/node_modules/refractor/lang/rust.js","../../frontend/node_modules/refractor/lang/sas.js","../../frontend/node_modules/refractor/lang/sass.js","../../frontend/node_modules/refractor/lang/scala.js","../../frontend/node_modules/refractor/lang/scss.js","../../frontend/node_modules/refractor/lang/shell-session.js","../../frontend/node_modules/refractor/lang/smali.js","../../frontend/node_modules/refractor/lang/smalltalk.js","../../frontend/node_modules/refractor/lang/smarty.js","../../frontend/node_modules/refractor/lang/sml.js","../../frontend/node_modules/refractor/lang/solidity.js","../../frontend/node_modules/refractor/lang/solution-file.js","../../frontend/node_modules/refractor/lang/soy.js","../../frontend/node_modules/refractor/lang/turtle.js","../../frontend/node_modules/refractor/lang/sparql.js","../../frontend/node_modules/refractor/lang/splunk-spl.js","../../frontend/node_modules/refractor/lang/sqf.js","../../frontend/node_modules/refractor/lang/squirrel.js","../../frontend/node_modules/refractor/lang/stan.js","../../frontend/node_modules/refractor/lang/stylus.js","../../frontend/node_modules/refractor/lang/swift.js","../../frontend/node_modules/refractor/lang/systemd.js","../../frontend/node_modules/refractor/lang/t4-templating.js","../../frontend/node_modules/refractor/lang/t4-cs.js","../../frontend/node_modules/refractor/lang/vbnet.js","../../frontend/node_modules/refractor/lang/t4-vb.js","../../frontend/node_modules/refractor/lang/yaml.js","../../frontend/node_modules/refractor/lang/tap.js","../../frontend/node_modules/refractor/lang/tcl.js","../../frontend/node_modules/refractor/lang/textile.js","../../frontend/node_modules/refractor/lang/toml.js","../../frontend/node_modules/refractor/lang/tremor.js","../../frontend/node_modules/refractor/lang/tsx.js","../../frontend/node_modules/refractor/lang/tt2.js","../../frontend/node_modules/refractor/lang/twig.js","../../frontend/node_modules/refractor/lang/typoscript.js","../../frontend/node_modules/refractor/lang/unrealscript.js","../../frontend/node_modules/refractor/lang/uorazor.js","../../frontend/node_modules/refractor/lang/uri.js","../../frontend/node_modules/refractor/lang/v.js","../../frontend/node_modules/refractor/lang/vala.js","../../frontend/node_modules/refractor/lang/velocity.js","../../frontend/node_modules/refractor/lang/verilog.js","../../frontend/node_modules/refractor/lang/vhdl.js","../../frontend/node_modules/refractor/lang/vim.js","../../frontend/node_modules/refractor/lang/visual-basic.js","../../frontend/node_modules/refractor/lang/warpscript.js","../../frontend/node_modules/refractor/lang/wasm.js","../../frontend/node_modules/refractor/lang/web-idl.js","../../frontend/node_modules/refractor/lang/wiki.js","../../frontend/node_modules/refractor/lang/wolfram.js","../../frontend/node_modules/refractor/lang/wren.js","../../frontend/node_modules/refractor/lang/xeora.js","../../frontend/node_modules/refractor/lang/xml-doc.js","../../frontend/node_modules/refractor/lang/xojo.js","../../frontend/node_modules/refractor/lang/xquery.js","../../frontend/node_modules/refractor/lang/yang.js","../../frontend/node_modules/refractor/lang/zig.js","../../frontend/node_modules/refractor/index.js","../../frontend/node_modules/react-syntax-highlighter/dist/esm/prism.js","../../frontend/node_modules/react-syntax-highlighter/dist/esm/styles/prism/nord.js","../../frontend/src/components/Answer/Answer.tsx","../../frontend/src/assets/Send.svg","../../frontend/src/components/QuestionInput/QuestionInput.tsx","../../frontend/src/components/ChatHistory/ChatHistoryListItem.tsx","../../frontend/src/components/ChatHistory/ChatHistoryList.tsx","../../frontend/src/components/ChatHistory/ChatHistoryPanel.tsx","../../frontend/src/pages/chat/Chat.tsx","../../frontend/src/index.tsx"],"sourcesContent":["/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a>=g;e-=g;rg=1<<32-oc(b)+e|c<w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;ww?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&uh(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=sh(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Ah(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=yh(f.type,f.key,f.props,null,a.mode,h),h.ref=sh(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=zh(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);th(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=xh(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Bh=vh(!0),Ch=vh(!1),Dh={},Eh=Uf(Dh),Fh=Uf(Dh),Gh=Uf(Dh);function Hh(a){if(a===Dh)throw Error(p(174));return a}function Ih(a,b){G(Gh,b);G(Fh,a);G(Eh,Dh);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:lb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=lb(b,a)}E(Eh);G(Eh,b)}function Jh(){E(Eh);E(Fh);E(Gh)}\nfunction Kh(a){Hh(Gh.current);var b=Hh(Eh.current);var c=lb(b,a.type);b!==c&&(G(Fh,a),G(Eh,c))}function Lh(a){Fh.current===a&&(E(Eh),E(Fh))}var M=Uf(0);\nfunction Mh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Nh=[];\nfunction Oh(){for(var a=0;ac?c:4;a(!0);var d=Qh.transition;Qh.transition={};try{a(!1),b()}finally{C=c,Qh.transition=d}}function Fi(){return di().memoizedState}\nfunction Gi(a,b,c){var d=lh(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,c);else if(c=Yg(a,b,c,d),null!==c){var e=L();mh(c,a,d,e);Ji(c,b,d)}}\nfunction ri(a,b,c){var d=lh(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,Xg(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=Yg(a,b,e,d);null!==c&&(e=L(),mh(c,a,d,e),Ji(c,b,d))}}\nfunction Hi(a){var b=a.alternate;return a===N||null!==b&&b===N}function Ii(a,b){Th=Sh=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Ji(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar ai={readContext:Vg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useInsertionEffect:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useDeferredValue:Q,useTransition:Q,useMutableSource:Q,useSyncExternalStore:Q,useId:Q,unstable_isNewReconciler:!1},Yh={readContext:Vg,useCallback:function(a,b){ci().memoizedState=[a,void 0===b?null:b];return a},useContext:Vg,useEffect:vi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ti(4194308,\n4,yi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ti(4194308,4,a,b)},useInsertionEffect:function(a,b){return ti(4,2,a,b)},useMemo:function(a,b){var c=ci();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=ci();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=Gi.bind(null,N,a);return[d.memoizedState,a]},useRef:function(a){var b=\nci();a={current:a};return b.memoizedState=a},useState:qi,useDebugValue:Ai,useDeferredValue:function(a){return ci().memoizedState=a},useTransition:function(){var a=qi(!1),b=a[0];a=Ei.bind(null,a[1]);ci().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=N,e=ci();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===R)throw Error(p(349));0!==(Rh&30)||ni(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;vi(ki.bind(null,d,\nf,a),[a]);d.flags|=2048;li(9,mi.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=ci(),b=R.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Uh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;Aj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eHj&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304)}else{if(!d)if(a=Mh(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Ej(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Hj&&1073741824!==c&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=M.current,G(M,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Ij(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(gj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Jj(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return Jh(),E(Wf),E(H),Oh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Lh(b),null;case 13:E(M);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(M),null;case 4:return Jh(),null;case 10:return Rg(b.type._context),null;case 22:case 23:return Ij(),\nnull;case 24:return null;default:return null}}var Kj=!1,U=!1,Lj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Mj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Nj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Oj=!1;\nfunction Pj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Lg(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Oj;Oj=!1;return n}\nfunction Qj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Nj(b,c,f)}e=e.next}while(e!==d)}}function Rj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Sj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Tj(a){var b=a.alternate;null!==b&&(a.alternate=null,Tj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Uj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Vj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Uj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}\nfunction Xj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Xj(a,b,c),a=a.sibling;null!==a;)Xj(a,b,c),a=a.sibling}var X=null,Yj=!1;function Zj(a,b,c){for(c=c.child;null!==c;)ak(a,b,c),c=c.sibling}\nfunction ak(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Mj(c,b);case 6:var d=X,e=Yj;X=null;Zj(a,b,c);X=d;Yj=e;null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Yj;X=c.stateNode.containerInfo;Yj=!0;\nZj(a,b,c);X=d;Yj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Nj(c,b,g):0!==(f&4)&&Nj(c,b,g));e=e.next}while(e!==d)}Zj(a,b,c);break;case 1:if(!U&&(Mj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Zj(a,b,c);break;case 21:Zj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Zj(a,b,c),U=d):Zj(a,b,c);break;default:Zj(a,b,c)}}function bk(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Lj);b.forEach(function(b){var d=ck.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction dk(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*mk(d/1960))-d;if(10a?16:a;if(null===xk)var d=!1;else{a=xk;xk=null;yk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-gk?Lk(a,0):sk|=c);Ek(a,b)}function Zk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=L();a=Zg(a,b);null!==a&&(Ac(a,b,c),Ek(a,c))}function vj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Zk(a,c)}\nfunction ck(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Zk(a,c)}var Wk;\nWk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)Ug=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return Ug=!1,zj(a,b,c);Ug=0!==(a.flags&131072)?!0:!1}else Ug=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;jj(a,b);a=b.pendingProps;var e=Yf(b,H.current);Tg(b,c);e=Xh(null,b,d,a,e,c);var f=bi();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,ah(b),e.updater=nh,b.stateNode=e,e._reactInternals=b,rh(b,d,a,c),b=kj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Yi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{jj(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=$k(d);a=Lg(d,a);switch(e){case 0:b=dj(null,b,d,a,c);break a;case 1:b=ij(null,b,d,a,c);break a;case 11:b=Zi(null,b,d,a,c);break a;case 14:b=aj(null,b,d,Lg(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),dj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),ij(a,b,d,e,c);case 3:a:{lj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;bh(a,b);gh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ki(Error(p(423)),b);b=mj(a,b,d,c,e);break a}else if(d!==e){e=Ki(Error(p(424)),b);b=mj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Ch(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=$i(a,b,c);break a}Yi(a,b,d,c)}b=b.child}return b;case 5:return Kh(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\nhj(a,b),Yi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return pj(a,b,c);case 4:return Ih(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Bh(b,null,d,c):Yi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),Zi(a,b,d,e,c);case 7:return Yi(a,b,b.pendingProps,c),b.child;case 8:return Yi(a,b,b.pendingProps.children,c),b.child;case 12:return Yi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Mg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=$i(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=ch(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);Sg(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);Sg(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Yi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,Tg(b,c),e=Vg(e),d=d(e),b.flags|=1,Yi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Lg(d,b.pendingProps),e=Lg(d.type,e),aj(a,b,d,e,c);case 15:return cj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),jj(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,Tg(b,c),ph(b,d,e),rh(b,d,e,c),kj(null,b,d,!0,a,c);case 19:return yj(a,b,c);case 22:return ej(a,b,c)}throw Error(p(156,b.tag));};function Gk(a,b){return ac(a,b)}\nfunction al(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new al(a,b,c,d)}function bj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction $k(a){if(\"function\"===typeof a)return bj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction wh(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction yh(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)bj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Ah(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return qj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Ah(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function qj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function xh(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction zh(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction bl(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function cl(a,b,c,d,e,f,g,h,k){a=new bl(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};ah(f);return a}function dl(a,b,c){var d=3 createMemoryLocation(entry, typeof entry === \"string\" ? null : entry.state, index === 0 ? \"default\" : undefined));\n let index = clampIndex(initialIndex == null ? entries.length - 1 : initialIndex);\n let action = Action.Pop;\n let listener = null;\n\n function clampIndex(n) {\n return Math.min(Math.max(n, 0), entries.length - 1);\n }\n\n function getCurrentLocation() {\n return entries[index];\n }\n\n function createMemoryLocation(to, state, key) {\n if (state === void 0) {\n state = null;\n }\n\n let location = createLocation(entries ? getCurrentLocation().pathname : \"/\", to, state, key);\n warning$1(location.pathname.charAt(0) === \"/\", \"relative pathnames are not supported in memory history: \" + JSON.stringify(to));\n return location;\n }\n\n function createHref(to) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n let history = {\n get index() {\n return index;\n },\n\n get action() {\n return action;\n },\n\n get location() {\n return getCurrentLocation();\n },\n\n createHref,\n\n createURL(to) {\n return new URL(createHref(to), \"http://localhost\");\n },\n\n encodeLocation(to) {\n let path = typeof to === \"string\" ? parsePath(to) : to;\n return {\n pathname: path.pathname || \"\",\n search: path.search || \"\",\n hash: path.hash || \"\"\n };\n },\n\n push(to, state) {\n action = Action.Push;\n let nextLocation = createMemoryLocation(to, state);\n index += 1;\n entries.splice(index, entries.length, nextLocation);\n\n if (v5Compat && listener) {\n listener({\n action,\n location: nextLocation,\n delta: 1\n });\n }\n },\n\n replace(to, state) {\n action = Action.Replace;\n let nextLocation = createMemoryLocation(to, state);\n entries[index] = nextLocation;\n\n if (v5Compat && listener) {\n listener({\n action,\n location: nextLocation,\n delta: 0\n });\n }\n },\n\n go(delta) {\n action = Action.Pop;\n let nextIndex = clampIndex(index + delta);\n let nextLocation = entries[nextIndex];\n index = nextIndex;\n\n if (listener) {\n listener({\n action,\n location: nextLocation,\n delta\n });\n }\n },\n\n listen(fn) {\n listener = fn;\n return () => {\n listener = null;\n };\n }\n\n };\n return history;\n}\n/**\n * Browser history stores the location in regular URLs. This is the standard for\n * most web apps, but it requires some configuration on the server to ensure you\n * serve the same app at multiple URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createbrowserhistory\n */\n\nfunction createBrowserHistory(options) {\n if (options === void 0) {\n options = {};\n }\n\n function createBrowserLocation(window, globalHistory) {\n let {\n pathname,\n search,\n hash\n } = window.location;\n return createLocation(\"\", {\n pathname,\n search,\n hash\n }, // state defaults to `null` because `window.history.state` does\n globalHistory.state && globalHistory.state.usr || null, globalHistory.state && globalHistory.state.key || \"default\");\n }\n\n function createBrowserHref(window, to) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n return getUrlBasedHistory(createBrowserLocation, createBrowserHref, null, options);\n}\n/**\n * Hash history stores the location in window.location.hash. This makes it ideal\n * for situations where you don't want to send the location to the server for\n * some reason, either because you do cannot configure it or the URL space is\n * reserved for something else.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createhashhistory\n */\n\nfunction createHashHistory(options) {\n if (options === void 0) {\n options = {};\n }\n\n function createHashLocation(window, globalHistory) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\"\n } = parsePath(window.location.hash.substr(1));\n return createLocation(\"\", {\n pathname,\n search,\n hash\n }, // state defaults to `null` because `window.history.state` does\n globalHistory.state && globalHistory.state.usr || null, globalHistory.state && globalHistory.state.key || \"default\");\n }\n\n function createHashHref(window, to) {\n let base = window.document.querySelector(\"base\");\n let href = \"\";\n\n if (base && base.getAttribute(\"href\")) {\n let url = window.location.href;\n let hashIndex = url.indexOf(\"#\");\n href = hashIndex === -1 ? url : url.slice(0, hashIndex);\n }\n\n return href + \"#\" + (typeof to === \"string\" ? to : createPath(to));\n }\n\n function validateHashLocation(location, to) {\n warning$1(location.pathname.charAt(0) === \"/\", \"relative pathnames are not supported in hash history.push(\" + JSON.stringify(to) + \")\");\n }\n\n return getUrlBasedHistory(createHashLocation, createHashHref, validateHashLocation, options);\n}\nfunction invariant(value, message) {\n if (value === false || value === null || typeof value === \"undefined\") {\n throw new Error(message);\n }\n}\n\nfunction warning$1(cond, message) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging history!\n //\n // This error is thrown as a convenience so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message); // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nfunction createKey() {\n return Math.random().toString(36).substr(2, 8);\n}\n/**\n * For browser-based histories, we combine the state and key into an object\n */\n\n\nfunction getHistoryState(location, index) {\n return {\n usr: location.state,\n key: location.key,\n idx: index\n };\n}\n/**\n * Creates a Location object with a unique key from the given Path\n */\n\n\nfunction createLocation(current, to, state, key) {\n if (state === void 0) {\n state = null;\n }\n\n let location = _extends({\n pathname: typeof current === \"string\" ? current : current.pathname,\n search: \"\",\n hash: \"\"\n }, typeof to === \"string\" ? parsePath(to) : to, {\n state,\n // TODO: This could be cleaned up. push/replace should probably just take\n // full Locations now and avoid the need to run through this flow at all\n // But that's a pretty big refactor to the current test suite so going to\n // keep as is for the time being and just let any incoming keys take precedence\n key: to && to.key || key || createKey()\n });\n\n return location;\n}\n/**\n * Creates a string URL path from the given pathname, search, and hash components.\n */\n\nfunction createPath(_ref) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\"\n } = _ref;\n if (search && search !== \"?\") pathname += search.charAt(0) === \"?\" ? search : \"?\" + search;\n if (hash && hash !== \"#\") pathname += hash.charAt(0) === \"#\" ? hash : \"#\" + hash;\n return pathname;\n}\n/**\n * Parses a string URL path into its separate pathname, search, and hash components.\n */\n\nfunction parsePath(path) {\n let parsedPath = {};\n\n if (path) {\n let hashIndex = path.indexOf(\"#\");\n\n if (hashIndex >= 0) {\n parsedPath.hash = path.substr(hashIndex);\n path = path.substr(0, hashIndex);\n }\n\n let searchIndex = path.indexOf(\"?\");\n\n if (searchIndex >= 0) {\n parsedPath.search = path.substr(searchIndex);\n path = path.substr(0, searchIndex);\n }\n\n if (path) {\n parsedPath.pathname = path;\n }\n }\n\n return parsedPath;\n}\n\nfunction getUrlBasedHistory(getLocation, createHref, validateLocation, options) {\n if (options === void 0) {\n options = {};\n }\n\n let {\n window = document.defaultView,\n v5Compat = false\n } = options;\n let globalHistory = window.history;\n let action = Action.Pop;\n let listener = null;\n let index = getIndex(); // Index should only be null when we initialize. If not, it's because the\n // user called history.pushState or history.replaceState directly, in which\n // case we should log a warning as it will result in bugs.\n\n if (index == null) {\n index = 0;\n globalHistory.replaceState(_extends({}, globalHistory.state, {\n idx: index\n }), \"\");\n }\n\n function getIndex() {\n let state = globalHistory.state || {\n idx: null\n };\n return state.idx;\n }\n\n function handlePop() {\n action = Action.Pop;\n let nextIndex = getIndex();\n let delta = nextIndex == null ? null : nextIndex - index;\n index = nextIndex;\n\n if (listener) {\n listener({\n action,\n location: history.location,\n delta\n });\n }\n }\n\n function push(to, state) {\n action = Action.Push;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n index = getIndex() + 1;\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location); // try...catch because iOS limits us to 100 pushState calls :/\n\n try {\n globalHistory.pushState(historyState, \"\", url);\n } catch (error) {\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n\n if (v5Compat && listener) {\n listener({\n action,\n location: history.location,\n delta: 1\n });\n }\n }\n\n function replace(to, state) {\n action = Action.Replace;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n index = getIndex();\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n globalHistory.replaceState(historyState, \"\", url);\n\n if (v5Compat && listener) {\n listener({\n action,\n location: history.location,\n delta: 0\n });\n }\n }\n\n function createURL(to) {\n // window.location.origin is \"null\" (the literal string value) in Firefox\n // under certain conditions, notably when serving from a local HTML file\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=878297\n let base = window.location.origin !== \"null\" ? window.location.origin : window.location.href;\n let href = typeof to === \"string\" ? to : createPath(to);\n invariant(base, \"No window.location.(origin|href) available to create URL for href: \" + href);\n return new URL(href, base);\n }\n\n let history = {\n get action() {\n return action;\n },\n\n get location() {\n return getLocation(window, globalHistory);\n },\n\n listen(fn) {\n if (listener) {\n throw new Error(\"A history only accepts one active listener\");\n }\n\n window.addEventListener(PopStateEventType, handlePop);\n listener = fn;\n return () => {\n window.removeEventListener(PopStateEventType, handlePop);\n listener = null;\n };\n },\n\n createHref(to) {\n return createHref(window, to);\n },\n\n createURL,\n\n encodeLocation(to) {\n // Encode a Location the same way window.location would\n let url = createURL(to);\n return {\n pathname: url.pathname,\n search: url.search,\n hash: url.hash\n };\n },\n\n push,\n replace,\n\n go(n) {\n return globalHistory.go(n);\n }\n\n };\n return history;\n} //#endregion\n\nvar ResultType;\n\n(function (ResultType) {\n ResultType[\"data\"] = \"data\";\n ResultType[\"deferred\"] = \"deferred\";\n ResultType[\"redirect\"] = \"redirect\";\n ResultType[\"error\"] = \"error\";\n})(ResultType || (ResultType = {}));\n\nfunction isIndexRoute(route) {\n return route.index === true;\n} // Walk the route tree generating unique IDs where necessary so we are working\n// solely with AgnosticDataRouteObject's within the Router\n\n\nfunction convertRoutesToDataRoutes(routes, parentPath, allIds) {\n if (parentPath === void 0) {\n parentPath = [];\n }\n\n if (allIds === void 0) {\n allIds = new Set();\n }\n\n return routes.map((route, index) => {\n let treePath = [...parentPath, index];\n let id = typeof route.id === \"string\" ? route.id : treePath.join(\"-\");\n invariant(route.index !== true || !route.children, \"Cannot specify children on an index route\");\n invariant(!allIds.has(id), \"Found a route id collision on id \\\"\" + id + \"\\\". Route \" + \"id's must be globally unique within Data Router usages\");\n allIds.add(id);\n\n if (isIndexRoute(route)) {\n let indexRoute = _extends({}, route, {\n id\n });\n\n return indexRoute;\n } else {\n let pathOrLayoutRoute = _extends({}, route, {\n id,\n children: route.children ? convertRoutesToDataRoutes(route.children, treePath, allIds) : undefined\n });\n\n return pathOrLayoutRoute;\n }\n });\n}\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/utils/match-routes\n */\n\nfunction matchRoutes(routes, locationArg, basename) {\n if (basename === void 0) {\n basename = \"/\";\n }\n\n let location = typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n let pathname = stripBasename(location.pathname || \"/\", basename);\n\n if (pathname == null) {\n return null;\n }\n\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n let matches = null;\n\n for (let i = 0; matches == null && i < branches.length; ++i) {\n matches = matchRouteBranch(branches[i], // Incoming pathnames are generally encoded from either window.location\n // or from router.navigate, but we want to match against the unencoded\n // paths in the route definitions. Memory router locations won't be\n // encoded here but there also shouldn't be anything to decode so this\n // should be a safe operation. This avoids needing matchRoutes to be\n // history-aware.\n safelyDecodeURI(pathname));\n }\n\n return matches;\n}\n\nfunction flattenRoutes(routes, branches, parentsMeta, parentPath) {\n if (branches === void 0) {\n branches = [];\n }\n\n if (parentsMeta === void 0) {\n parentsMeta = [];\n }\n\n if (parentPath === void 0) {\n parentPath = \"\";\n }\n\n let flattenRoute = (route, index, relativePath) => {\n let meta = {\n relativePath: relativePath === undefined ? route.path || \"\" : relativePath,\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route\n };\n\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(meta.relativePath.startsWith(parentPath), \"Absolute route path \\\"\" + meta.relativePath + \"\\\" nested under path \" + (\"\\\"\" + parentPath + \"\\\" is not valid. An absolute child route path \") + \"must start with the combined path of all its parent routes.\");\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta); // Add the children before adding this route to the array so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n\n if (route.children && route.children.length > 0) {\n invariant( // Our types know better, but runtime JS may not!\n // @ts-expect-error\n route.index !== true, \"Index routes must not have child routes. Please remove \" + (\"all child routes from route path \\\"\" + path + \"\\\".\"));\n flattenRoutes(route.children, branches, routesMeta, path);\n } // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n\n\n if (route.path == null && !route.index) {\n return;\n }\n\n branches.push({\n path,\n score: computeScore(path, route.index),\n routesMeta\n });\n };\n\n routes.forEach((route, index) => {\n var _route$path;\n\n // coarse-grain check for optional params\n if (route.path === \"\" || !((_route$path = route.path) != null && _route$path.includes(\"?\"))) {\n flattenRoute(route, index);\n } else {\n for (let exploded of explodeOptionalSegments(route.path)) {\n flattenRoute(route, index, exploded);\n }\n }\n });\n return branches;\n}\n/**\n * Computes all combinations of optional path segments for a given path,\n * excluding combinations that are ambiguous and of lower priority.\n *\n * For example, `/one/:two?/three/:four?/:five?` explodes to:\n * - `/one/three`\n * - `/one/:two/three`\n * - `/one/three/:four`\n * - `/one/three/:five`\n * - `/one/:two/three/:four`\n * - `/one/:two/three/:five`\n * - `/one/three/:four/:five`\n * - `/one/:two/three/:four/:five`\n */\n\n\nfunction explodeOptionalSegments(path) {\n let segments = path.split(\"/\");\n if (segments.length === 0) return [];\n let [first, ...rest] = segments; // Optional path segments are denoted by a trailing `?`\n\n let isOptional = first.endsWith(\"?\"); // Compute the corresponding required segment: `foo?` -> `foo`\n\n let required = first.replace(/\\?$/, \"\");\n\n if (rest.length === 0) {\n // Intepret empty string as omitting an optional segment\n // `[\"one\", \"\", \"three\"]` corresponds to omitting `:two` from `/one/:two?/three` -> `/one/three`\n return isOptional ? [required, \"\"] : [required];\n }\n\n let restExploded = explodeOptionalSegments(rest.join(\"/\"));\n let result = []; // All child paths with the prefix. Do this for all children before the\n // optional version for all children so we get consistent ordering where the\n // parent optional aspect is preferred as required. Otherwise, we can get\n // child sections interspersed where deeper optional segments are higher than\n // parent optional segments, where for example, /:two would explodes _earlier_\n // then /:one. By always including the parent as required _for all children_\n // first, we avoid this issue\n\n result.push(...restExploded.map(subpath => subpath === \"\" ? required : [required, subpath].join(\"/\"))); // Then if this is an optional value, add all child versions without\n\n if (isOptional) {\n result.push(...restExploded);\n } // for absolute paths, ensure `/` instead of empty segment\n\n\n return result.map(exploded => path.startsWith(\"/\") && exploded === \"\" ? \"/\" : exploded);\n}\n\nfunction rankRouteBranches(branches) {\n branches.sort((a, b) => a.score !== b.score ? b.score - a.score // Higher score first\n : compareIndexes(a.routesMeta.map(meta => meta.childrenIndex), b.routesMeta.map(meta => meta.childrenIndex)));\n}\n\nconst paramRe = /^:\\w+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\n\nconst isSplat = s => s === \"*\";\n\nfunction computeScore(path, index) {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n\n if (index) {\n initialScore += indexRouteValue;\n }\n\n return segments.filter(s => !isSplat(s)).reduce((score, segment) => score + (paramRe.test(segment) ? dynamicSegmentValue : segment === \"\" ? emptySegmentValue : staticSegmentValue), initialScore);\n}\n\nfunction compareIndexes(a, b) {\n let siblings = a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n return siblings ? // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1] : // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\n\nfunction matchRouteBranch(branch, pathname) {\n let {\n routesMeta\n } = branch;\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches = [];\n\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname = matchedPathname === \"/\" ? pathname : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath({\n path: meta.relativePath,\n caseSensitive: meta.caseSensitive,\n end\n }, remainingPathname);\n if (!match) return null;\n Object.assign(matchedParams, match.params);\n let route = meta.route;\n matches.push({\n // TODO: Can this as be avoided?\n params: matchedParams,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(joinPaths([matchedPathname, match.pathnameBase])),\n route\n });\n\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n\n return matches;\n}\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/utils/generate-path\n */\n\n\nfunction generatePath(originalPath, params) {\n if (params === void 0) {\n params = {};\n }\n\n let path = originalPath;\n\n if (path.endsWith(\"*\") && path !== \"*\" && !path.endsWith(\"/*\")) {\n warning(false, \"Route path \\\"\" + path + \"\\\" will be treated as if it were \" + (\"\\\"\" + path.replace(/\\*$/, \"/*\") + \"\\\" because the `*` character must \") + \"always follow a `/` in the pattern. To get rid of this warning, \" + (\"please change the route path to \\\"\" + path.replace(/\\*$/, \"/*\") + \"\\\".\"));\n path = path.replace(/\\*$/, \"/*\");\n }\n\n return path.replace(/^:(\\w+)(\\??)/g, (_, key, optional) => {\n let param = params[key];\n\n if (optional === \"?\") {\n return param == null ? \"\" : param;\n }\n\n if (param == null) {\n invariant(false, \"Missing \\\":\" + key + \"\\\" param\");\n }\n\n return param;\n }).replace(/\\/:(\\w+)(\\??)/g, (_, key, optional) => {\n let param = params[key];\n\n if (optional === \"?\") {\n return param == null ? \"\" : \"/\" + param;\n }\n\n if (param == null) {\n invariant(false, \"Missing \\\":\" + key + \"\\\" param\");\n }\n\n return \"/\" + param;\n }) // Remove any optional markers from optional static segments\n .replace(/\\?/g, \"\").replace(/(\\/?)\\*/, (_, prefix, __, str) => {\n const star = \"*\";\n\n if (params[star] == null) {\n // If no splat was provided, trim the trailing slash _unless_ it's\n // the entire path\n return str === \"/*\" ? \"/\" : \"\";\n } // Apply the splat\n\n\n return \"\" + prefix + params[star];\n });\n}\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/utils/match-path\n */\n\nfunction matchPath(pattern, pathname) {\n if (typeof pattern === \"string\") {\n pattern = {\n path: pattern,\n caseSensitive: false,\n end: true\n };\n }\n\n let [matcher, paramNames] = compilePath(pattern.path, pattern.caseSensitive, pattern.end);\n let match = pathname.match(matcher);\n if (!match) return null;\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params = paramNames.reduce((memo, paramName, index) => {\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname.slice(0, matchedPathname.length - splatValue.length).replace(/(.)\\/+$/, \"$1\");\n }\n\n memo[paramName] = safelyDecodeURIComponent(captureGroups[index] || \"\", paramName);\n return memo;\n }, {});\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern\n };\n}\n\nfunction compilePath(path, caseSensitive, end) {\n if (caseSensitive === void 0) {\n caseSensitive = false;\n }\n\n if (end === void 0) {\n end = true;\n }\n\n warning(path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"), \"Route path \\\"\" + path + \"\\\" will be treated as if it were \" + (\"\\\"\" + path.replace(/\\*$/, \"/*\") + \"\\\" because the `*` character must \") + \"always follow a `/` in the pattern. To get rid of this warning, \" + (\"please change the route path to \\\"\" + path.replace(/\\*$/, \"/*\") + \"\\\".\"));\n let paramNames = [];\n let regexpSource = \"^\" + path.replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^$?{}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(/\\/:(\\w+)/g, (_, paramName) => {\n paramNames.push(paramName);\n return \"/([^\\\\/]+)\";\n });\n\n if (path.endsWith(\"*\")) {\n paramNames.push(\"*\");\n regexpSource += path === \"*\" || path === \"/*\" ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else if (end) {\n // When matching to the end, ignore trailing slashes\n regexpSource += \"\\\\/*$\";\n } else if (path !== \"\" && path !== \"/\") {\n // If our path is non-empty and contains anything beyond an initial slash,\n // then we have _some_ form of path in our regex so we should expect to\n // match only if we find the end of this path segment. Look for an optional\n // non-captured trailing slash (to match a portion of the URL) or the end\n // of the path (if we've matched to the end). We used to do this with a\n // word boundary but that gives false positives on routes like\n // /user-preferences since `-` counts as a word boundary.\n regexpSource += \"(?:(?=\\\\/|$))\";\n } else ;\n\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n return [matcher, paramNames];\n}\n\nfunction safelyDecodeURI(value) {\n try {\n return decodeURI(value);\n } catch (error) {\n warning(false, \"The URL path \\\"\" + value + \"\\\" could not be decoded because it is is a \" + \"malformed URL segment. This is probably due to a bad percent \" + (\"encoding (\" + error + \").\"));\n return value;\n }\n}\n\nfunction safelyDecodeURIComponent(value, paramName) {\n try {\n return decodeURIComponent(value);\n } catch (error) {\n warning(false, \"The value for the URL param \\\"\" + paramName + \"\\\" will not be decoded because\" + (\" the string \\\"\" + value + \"\\\" is a malformed URL segment. This is probably\") + (\" due to a bad percent encoding (\" + error + \").\"));\n return value;\n }\n}\n/**\n * @private\n */\n\n\nfunction stripBasename(pathname, basename) {\n if (basename === \"/\") return pathname;\n\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n } // We want to leave trailing slash behavior in the user's control, so if they\n // specify a basename with a trailing slash, we should support it\n\n\n let startIndex = basename.endsWith(\"/\") ? basename.length - 1 : basename.length;\n let nextChar = pathname.charAt(startIndex);\n\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n\n return pathname.slice(startIndex) || \"/\";\n}\n/**\n * @private\n */\n\nfunction warning(cond, message) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging @remix-run/router!\n //\n // This error is thrown as a convenience so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message); // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/utils/resolve-path\n */\n\nfunction resolvePath(to, fromPathname) {\n if (fromPathname === void 0) {\n fromPathname = \"/\";\n }\n\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\"\n } = typeof to === \"string\" ? parsePath(to) : to;\n let pathname = toPathname ? toPathname.startsWith(\"/\") ? toPathname : resolvePathname(toPathname, fromPathname) : fromPathname;\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash)\n };\n}\n\nfunction resolvePathname(relativePath, fromPathname) {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n relativeSegments.forEach(segment => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\n\nfunction getInvalidPathError(char, field, dest, path) {\n return \"Cannot include a '\" + char + \"' character in a manually specified \" + (\"`to.\" + field + \"` field [\" + JSON.stringify(path) + \"]. Please separate it out to the \") + (\"`to.\" + dest + \"` field. Alternatively you may provide the full path as \") + \"a string in and the router will parse it for you.\";\n}\n/**\n * @private\n *\n * When processing relative navigation we want to ignore ancestor routes that\n * do not contribute to the path, such that index/pathless layout routes don't\n * interfere.\n *\n * For example, when moving a route element into an index route and/or a\n * pathless layout route, relative link behavior contained within should stay\n * the same. Both of the following examples should link back to the root:\n *\n * \n * \n * \n *\n * \n * \n * }> // <-- Does not contribute\n * // <-- Does not contribute\n * \n * \n */\n\n\nfunction getPathContributingMatches(matches) {\n return matches.filter((match, index) => index === 0 || match.route.path && match.route.path.length > 0);\n}\n/**\n * @private\n */\n\nfunction resolveTo(toArg, routePathnames, locationPathname, isPathRelative) {\n if (isPathRelative === void 0) {\n isPathRelative = false;\n }\n\n let to;\n\n if (typeof toArg === \"string\") {\n to = parsePath(toArg);\n } else {\n to = _extends({}, toArg);\n invariant(!to.pathname || !to.pathname.includes(\"?\"), getInvalidPathError(\"?\", \"pathname\", \"search\", to));\n invariant(!to.pathname || !to.pathname.includes(\"#\"), getInvalidPathError(\"#\", \"pathname\", \"hash\", to));\n invariant(!to.search || !to.search.includes(\"#\"), getInvalidPathError(\"#\", \"search\", \"hash\", to));\n }\n\n let isEmptyPath = toArg === \"\" || to.pathname === \"\";\n let toPathname = isEmptyPath ? \"/\" : to.pathname;\n let from; // Routing is relative to the current pathname if explicitly requested.\n //\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n\n if (isPathRelative || toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n\n if (toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\"); // Each leading .. segment means \"go up one route\" instead of \"go up one\n // URL segment\". This is a key difference from how works and a\n // major reason we call this a \"to\" value instead of a \"href\".\n\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n } // If there are more \"..\" segments than parent routes, resolve relative to\n // the root / URL.\n\n\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n\n let path = resolvePath(to, from); // Ensure the pathname has a trailing slash if the original \"to\" had one\n\n let hasExplicitTrailingSlash = toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\"); // Or if this was a link to the current path which has a trailing slash\n\n let hasCurrentTrailingSlash = (isEmptyPath || toPathname === \".\") && locationPathname.endsWith(\"/\");\n\n if (!path.pathname.endsWith(\"/\") && (hasExplicitTrailingSlash || hasCurrentTrailingSlash)) {\n path.pathname += \"/\";\n }\n\n return path;\n}\n/**\n * @private\n */\n\nfunction getToPathname(to) {\n // Empty strings should be treated the same as / paths\n return to === \"\" || to.pathname === \"\" ? \"/\" : typeof to === \"string\" ? parsePath(to).pathname : to.pathname;\n}\n/**\n * @private\n */\n\nconst joinPaths = paths => paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n/**\n * @private\n */\n\nconst normalizePathname = pathname => pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n/**\n * @private\n */\n\nconst normalizeSearch = search => !search || search === \"?\" ? \"\" : search.startsWith(\"?\") ? search : \"?\" + search;\n/**\n * @private\n */\n\nconst normalizeHash = hash => !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n/**\n * This is a shortcut for creating `application/json` responses. Converts `data`\n * to JSON and sets the `Content-Type` header.\n */\n\nconst json = function json(data, init) {\n if (init === void 0) {\n init = {};\n }\n\n let responseInit = typeof init === \"number\" ? {\n status: init\n } : init;\n let headers = new Headers(responseInit.headers);\n\n if (!headers.has(\"Content-Type\")) {\n headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n }\n\n return new Response(JSON.stringify(data), _extends({}, responseInit, {\n headers\n }));\n};\nclass AbortedDeferredError extends Error {}\nclass DeferredData {\n constructor(data, responseInit) {\n this.pendingKeysSet = new Set();\n this.subscribers = new Set();\n this.deferredKeys = [];\n invariant(data && typeof data === \"object\" && !Array.isArray(data), \"defer() only accepts plain objects\"); // Set up an AbortController + Promise we can race against to exit early\n // cancellation\n\n let reject;\n this.abortPromise = new Promise((_, r) => reject = r);\n this.controller = new AbortController();\n\n let onAbort = () => reject(new AbortedDeferredError(\"Deferred data aborted\"));\n\n this.unlistenAbortSignal = () => this.controller.signal.removeEventListener(\"abort\", onAbort);\n\n this.controller.signal.addEventListener(\"abort\", onAbort);\n this.data = Object.entries(data).reduce((acc, _ref) => {\n let [key, value] = _ref;\n return Object.assign(acc, {\n [key]: this.trackPromise(key, value)\n });\n }, {});\n\n if (this.done) {\n // All incoming values were resolved\n this.unlistenAbortSignal();\n }\n\n this.init = responseInit;\n }\n\n trackPromise(key, value) {\n if (!(value instanceof Promise)) {\n return value;\n }\n\n this.deferredKeys.push(key);\n this.pendingKeysSet.add(key); // We store a little wrapper promise that will be extended with\n // _data/_error props upon resolve/reject\n\n let promise = Promise.race([value, this.abortPromise]).then(data => this.onSettle(promise, key, null, data), error => this.onSettle(promise, key, error)); // Register rejection listeners to avoid uncaught promise rejections on\n // errors or aborted deferred values\n\n promise.catch(() => {});\n Object.defineProperty(promise, \"_tracked\", {\n get: () => true\n });\n return promise;\n }\n\n onSettle(promise, key, error, data) {\n if (this.controller.signal.aborted && error instanceof AbortedDeferredError) {\n this.unlistenAbortSignal();\n Object.defineProperty(promise, \"_error\", {\n get: () => error\n });\n return Promise.reject(error);\n }\n\n this.pendingKeysSet.delete(key);\n\n if (this.done) {\n // Nothing left to abort!\n this.unlistenAbortSignal();\n }\n\n if (error) {\n Object.defineProperty(promise, \"_error\", {\n get: () => error\n });\n this.emit(false, key);\n return Promise.reject(error);\n }\n\n Object.defineProperty(promise, \"_data\", {\n get: () => data\n });\n this.emit(false, key);\n return data;\n }\n\n emit(aborted, settledKey) {\n this.subscribers.forEach(subscriber => subscriber(aborted, settledKey));\n }\n\n subscribe(fn) {\n this.subscribers.add(fn);\n return () => this.subscribers.delete(fn);\n }\n\n cancel() {\n this.controller.abort();\n this.pendingKeysSet.forEach((v, k) => this.pendingKeysSet.delete(k));\n this.emit(true);\n }\n\n async resolveData(signal) {\n let aborted = false;\n\n if (!this.done) {\n let onAbort = () => this.cancel();\n\n signal.addEventListener(\"abort\", onAbort);\n aborted = await new Promise(resolve => {\n this.subscribe(aborted => {\n signal.removeEventListener(\"abort\", onAbort);\n\n if (aborted || this.done) {\n resolve(aborted);\n }\n });\n });\n }\n\n return aborted;\n }\n\n get done() {\n return this.pendingKeysSet.size === 0;\n }\n\n get unwrappedData() {\n invariant(this.data !== null && this.done, \"Can only unwrap data on initialized and settled deferreds\");\n return Object.entries(this.data).reduce((acc, _ref2) => {\n let [key, value] = _ref2;\n return Object.assign(acc, {\n [key]: unwrapTrackedPromise(value)\n });\n }, {});\n }\n\n get pendingKeys() {\n return Array.from(this.pendingKeysSet);\n }\n\n}\n\nfunction isTrackedPromise(value) {\n return value instanceof Promise && value._tracked === true;\n}\n\nfunction unwrapTrackedPromise(value) {\n if (!isTrackedPromise(value)) {\n return value;\n }\n\n if (value._error) {\n throw value._error;\n }\n\n return value._data;\n}\n\nconst defer = function defer(data, init) {\n if (init === void 0) {\n init = {};\n }\n\n let responseInit = typeof init === \"number\" ? {\n status: init\n } : init;\n return new DeferredData(data, responseInit);\n};\n/**\n * A redirect response. Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\n\nconst redirect = function redirect(url, init) {\n if (init === void 0) {\n init = 302;\n }\n\n let responseInit = init;\n\n if (typeof responseInit === \"number\") {\n responseInit = {\n status: responseInit\n };\n } else if (typeof responseInit.status === \"undefined\") {\n responseInit.status = 302;\n }\n\n let headers = new Headers(responseInit.headers);\n headers.set(\"Location\", url);\n return new Response(null, _extends({}, responseInit, {\n headers\n }));\n};\n/**\n * @private\n * Utility class we use to hold auto-unwrapped 4xx/5xx Response bodies\n */\n\nclass ErrorResponse {\n constructor(status, statusText, data, internal) {\n if (internal === void 0) {\n internal = false;\n }\n\n this.status = status;\n this.statusText = statusText || \"\";\n this.internal = internal;\n\n if (data instanceof Error) {\n this.data = data.toString();\n this.error = data;\n } else {\n this.data = data;\n }\n }\n\n}\n/**\n * Check if the given error is an ErrorResponse generated from a 4xx/5xx\n * Response thrown from an action/loader\n */\n\nfunction isRouteErrorResponse(error) {\n return error != null && typeof error.status === \"number\" && typeof error.statusText === \"string\" && typeof error.internal === \"boolean\" && \"data\" in error;\n}\n\nconst validMutationMethodsArr = [\"post\", \"put\", \"patch\", \"delete\"];\nconst validMutationMethods = new Set(validMutationMethodsArr);\nconst validRequestMethodsArr = [\"get\", ...validMutationMethodsArr];\nconst validRequestMethods = new Set(validRequestMethodsArr);\nconst redirectStatusCodes = new Set([301, 302, 303, 307, 308]);\nconst redirectPreserveMethodStatusCodes = new Set([307, 308]);\nconst IDLE_NAVIGATION = {\n state: \"idle\",\n location: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined\n};\nconst IDLE_FETCHER = {\n state: \"idle\",\n data: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined\n};\nconst IDLE_BLOCKER = {\n state: \"unblocked\",\n proceed: undefined,\n reset: undefined,\n location: undefined\n};\nconst ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\nconst isBrowser = typeof window !== \"undefined\" && typeof window.document !== \"undefined\" && typeof window.document.createElement !== \"undefined\";\nconst isServer = !isBrowser; //#endregion\n////////////////////////////////////////////////////////////////////////////////\n//#region createRouter\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Create a router and listen to history POP navigations\n */\n\nfunction createRouter(init) {\n invariant(init.routes.length > 0, \"You must provide a non-empty routes array to createRouter\");\n let dataRoutes = convertRoutesToDataRoutes(init.routes); // Cleanup function for history\n\n let unlistenHistory = null; // Externally-provided functions to call on all state changes\n\n let subscribers = new Set(); // Externally-provided object to hold scroll restoration locations during routing\n\n let savedScrollPositions = null; // Externally-provided function to get scroll restoration keys\n\n let getScrollRestorationKey = null; // Externally-provided function to get current scroll position\n\n let getScrollPosition = null; // One-time flag to control the initial hydration scroll restoration. Because\n // we don't get the saved positions from until _after_\n // the initial render, we need to manually trigger a separate updateState to\n // send along the restoreScrollPosition\n // Set to true if we have `hydrationData` since we assume we were SSR'd and that\n // SSR did the initial scroll restoration.\n\n let initialScrollRestored = init.hydrationData != null;\n let initialMatches = matchRoutes(dataRoutes, init.history.location, init.basename);\n let initialErrors = null;\n\n if (initialMatches == null) {\n // If we do not match a user-provided-route, fall back to the root\n // to allow the error boundary to take over\n let error = getInternalRouterError(404, {\n pathname: init.history.location.pathname\n });\n let {\n matches,\n route\n } = getShortCircuitMatches(dataRoutes);\n initialMatches = matches;\n initialErrors = {\n [route.id]: error\n };\n }\n\n let initialized = !initialMatches.some(m => m.route.loader) || init.hydrationData != null;\n let router;\n let state = {\n historyAction: init.history.action,\n location: init.history.location,\n matches: initialMatches,\n initialized,\n navigation: IDLE_NAVIGATION,\n // Don't restore on initial updateState() if we were SSR'd\n restoreScrollPosition: init.hydrationData != null ? false : null,\n preventScrollReset: false,\n revalidation: \"idle\",\n loaderData: init.hydrationData && init.hydrationData.loaderData || {},\n actionData: init.hydrationData && init.hydrationData.actionData || null,\n errors: init.hydrationData && init.hydrationData.errors || initialErrors,\n fetchers: new Map(),\n blockers: new Map()\n }; // -- Stateful internal variables to manage navigations --\n // Current navigation in progress (to be committed in completeNavigation)\n\n let pendingAction = Action.Pop; // Should the current navigation prevent the scroll reset if scroll cannot\n // be restored?\n\n let pendingPreventScrollReset = false; // AbortController for the active navigation\n\n let pendingNavigationController; // We use this to avoid touching history in completeNavigation if a\n // revalidation is entirely uninterrupted\n\n let isUninterruptedRevalidation = false; // Use this internal flag to force revalidation of all loaders:\n // - submissions (completed or interrupted)\n // - useRevalidate()\n // - X-Remix-Revalidate (from redirect)\n\n let isRevalidationRequired = false; // Use this internal array to capture routes that require revalidation due\n // to a cancelled deferred on action submission\n\n let cancelledDeferredRoutes = []; // Use this internal array to capture fetcher loads that were cancelled by an\n // action navigation and require revalidation\n\n let cancelledFetcherLoads = []; // AbortControllers for any in-flight fetchers\n\n let fetchControllers = new Map(); // Track loads based on the order in which they started\n\n let incrementingLoadId = 0; // Track the outstanding pending navigation data load to be compared against\n // the globally incrementing load when a fetcher load lands after a completed\n // navigation\n\n let pendingNavigationLoadId = -1; // Fetchers that triggered data reloads as a result of their actions\n\n let fetchReloadIds = new Map(); // Fetchers that triggered redirect navigations from their actions\n\n let fetchRedirectIds = new Set(); // Most recent href/match for fetcher.load calls for fetchers\n\n let fetchLoadMatches = new Map(); // Store DeferredData instances for active route matches. When a\n // route loader returns defer() we stick one in here. Then, when a nested\n // promise resolves we update loaderData. If a new navigation starts we\n // cancel active deferreds for eliminated routes.\n\n let activeDeferreds = new Map(); // Store blocker functions in a separate Map outside of router state since\n // we don't need to update UI state if they change\n\n let blockerFunctions = new Map(); // Flag to ignore the next history update, so we can revert the URL change on\n // a POP navigation that was blocked by the user without touching router state\n\n let ignoreNextHistoryUpdate = false; // Initialize the router, all side effects should be kicked off from here.\n // Implemented as a Fluent API for ease of:\n // let router = createRouter(init).initialize();\n\n function initialize() {\n // If history informs us of a POP navigation, start the navigation but do not update\n // state. We'll update our own state once the navigation completes\n unlistenHistory = init.history.listen(_ref => {\n let {\n action: historyAction,\n location,\n delta\n } = _ref;\n\n // Ignore this event if it was just us resetting the URL from a\n // blocked POP navigation\n if (ignoreNextHistoryUpdate) {\n ignoreNextHistoryUpdate = false;\n return;\n }\n\n warning(blockerFunctions.size === 0 || delta != null, \"You are trying to use a blocker on a POP navigation to a location \" + \"that was not created by @remix-run/router. This will fail silently in \" + \"production. This can happen if you are navigating outside the router \" + \"via `window.history.pushState`/`window.location.hash` instead of using \" + \"router navigation APIs. This can also happen if you are using \" + \"createHashRouter and the user manually changes the URL.\");\n let blockerKey = shouldBlockNavigation({\n currentLocation: state.location,\n nextLocation: location,\n historyAction\n });\n\n if (blockerKey && delta != null) {\n // Restore the URL to match the current UI, but don't update router state\n ignoreNextHistoryUpdate = true;\n init.history.go(delta * -1); // Put the blocker into a blocked state\n\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location,\n\n proceed() {\n updateBlocker(blockerKey, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location\n }); // Re-do the same POP navigation we just blocked\n\n init.history.go(delta);\n },\n\n reset() {\n deleteBlocker(blockerKey);\n updateState({\n blockers: new Map(router.state.blockers)\n });\n }\n\n });\n return;\n }\n\n return startNavigation(historyAction, location);\n }); // Kick off initial data load if needed. Use Pop to avoid modifying history\n\n if (!state.initialized) {\n startNavigation(Action.Pop, state.location);\n }\n\n return router;\n } // Clean up a router and it's side effects\n\n\n function dispose() {\n if (unlistenHistory) {\n unlistenHistory();\n }\n\n subscribers.clear();\n pendingNavigationController && pendingNavigationController.abort();\n state.fetchers.forEach((_, key) => deleteFetcher(key));\n state.blockers.forEach((_, key) => deleteBlocker(key));\n } // Subscribe to state updates for the router\n\n\n function subscribe(fn) {\n subscribers.add(fn);\n return () => subscribers.delete(fn);\n } // Update our state and notify the calling context of the change\n\n\n function updateState(newState) {\n state = _extends({}, state, newState);\n subscribers.forEach(subscriber => subscriber(state));\n } // Complete a navigation returning the state.navigation back to the IDLE_NAVIGATION\n // and setting state.[historyAction/location/matches] to the new route.\n // - Location is a required param\n // - Navigation will always be set to IDLE_NAVIGATION\n // - Can pass any other state in newState\n\n\n function completeNavigation(location, newState) {\n var _location$state, _location$state2;\n\n // Deduce if we're in a loading/actionReload state:\n // - We have committed actionData in the store\n // - The current navigation was a mutation submission\n // - We're past the submitting state and into the loading state\n // - The location being loaded is not the result of a redirect\n let isActionReload = state.actionData != null && state.navigation.formMethod != null && isMutationMethod(state.navigation.formMethod) && state.navigation.state === \"loading\" && ((_location$state = location.state) == null ? void 0 : _location$state._isRedirect) !== true;\n let actionData;\n\n if (newState.actionData) {\n if (Object.keys(newState.actionData).length > 0) {\n actionData = newState.actionData;\n } else {\n // Empty actionData -> clear prior actionData due to an action error\n actionData = null;\n }\n } else if (isActionReload) {\n // Keep the current data if we're wrapping up the action reload\n actionData = state.actionData;\n } else {\n // Clear actionData on any other completed navigations\n actionData = null;\n } // Always preserve any existing loaderData from re-used routes\n\n\n let loaderData = newState.loaderData ? mergeLoaderData(state.loaderData, newState.loaderData, newState.matches || [], newState.errors) : state.loaderData; // On a successful navigation we can assume we got through all blockers\n // so we can start fresh\n\n for (let [key] of blockerFunctions) {\n deleteBlocker(key);\n } // Always respect the user flag. Otherwise don't reset on mutation\n // submission navigations unless they redirect\n\n\n let preventScrollReset = pendingPreventScrollReset === true || state.navigation.formMethod != null && isMutationMethod(state.navigation.formMethod) && ((_location$state2 = location.state) == null ? void 0 : _location$state2._isRedirect) !== true;\n updateState(_extends({}, newState, {\n actionData,\n loaderData,\n historyAction: pendingAction,\n location,\n initialized: true,\n navigation: IDLE_NAVIGATION,\n revalidation: \"idle\",\n restoreScrollPosition: getSavedScrollPosition(location, newState.matches || state.matches),\n preventScrollReset,\n blockers: new Map(state.blockers)\n }));\n\n if (isUninterruptedRevalidation) ; else if (pendingAction === Action.Pop) ; else if (pendingAction === Action.Push) {\n init.history.push(location, location.state);\n } else if (pendingAction === Action.Replace) {\n init.history.replace(location, location.state);\n } // Reset stateful navigation vars\n\n\n pendingAction = Action.Pop;\n pendingPreventScrollReset = false;\n isUninterruptedRevalidation = false;\n isRevalidationRequired = false;\n cancelledDeferredRoutes = [];\n cancelledFetcherLoads = [];\n } // Trigger a navigation event, which can either be a numerical POP or a PUSH\n // replace with an optional submission\n\n\n async function navigate(to, opts) {\n if (typeof to === \"number\") {\n init.history.go(to);\n return;\n }\n\n let {\n path,\n submission,\n error\n } = normalizeNavigateOptions(to, opts);\n let currentLocation = state.location;\n let nextLocation = createLocation(state.location, path, opts && opts.state); // When using navigate as a PUSH/REPLACE we aren't reading an already-encoded\n // URL from window.location, so we need to encode it here so the behavior\n // remains the same as POP and non-data-router usages. new URL() does all\n // the same encoding we'd get from a history.pushState/window.location read\n // without having to touch history\n\n nextLocation = _extends({}, nextLocation, init.history.encodeLocation(nextLocation));\n let userReplace = opts && opts.replace != null ? opts.replace : undefined;\n let historyAction = Action.Push;\n\n if (userReplace === true) {\n historyAction = Action.Replace;\n } else if (userReplace === false) ; else if (submission != null && isMutationMethod(submission.formMethod) && submission.formAction === state.location.pathname + state.location.search) {\n // By default on submissions to the current location we REPLACE so that\n // users don't have to double-click the back button to get to the prior\n // location. If the user redirects to a different location from the\n // action/loader this will be ignored and the redirect will be a PUSH\n historyAction = Action.Replace;\n }\n\n let preventScrollReset = opts && \"preventScrollReset\" in opts ? opts.preventScrollReset === true : undefined;\n let blockerKey = shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction\n });\n\n if (blockerKey) {\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location: nextLocation,\n\n proceed() {\n updateBlocker(blockerKey, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location: nextLocation\n }); // Send the same navigation through\n\n navigate(to, opts);\n },\n\n reset() {\n deleteBlocker(blockerKey);\n updateState({\n blockers: new Map(state.blockers)\n });\n }\n\n });\n return;\n }\n\n return await startNavigation(historyAction, nextLocation, {\n submission,\n // Send through the formData serialization error if we have one so we can\n // render at the right error boundary after we match routes\n pendingError: error,\n preventScrollReset,\n replace: opts && opts.replace\n });\n } // Revalidate all current loaders. If a navigation is in progress or if this\n // is interrupted by a navigation, allow this to \"succeed\" by calling all\n // loaders during the next loader round\n\n\n function revalidate() {\n interruptActiveLoads();\n updateState({\n revalidation: \"loading\"\n }); // If we're currently submitting an action, we don't need to start a new\n // navigation, we'll just let the follow up loader execution call all loaders\n\n if (state.navigation.state === \"submitting\") {\n return;\n } // If we're currently in an idle state, start a new navigation for the current\n // action/location and mark it as uninterrupted, which will skip the history\n // update in completeNavigation\n\n\n if (state.navigation.state === \"idle\") {\n startNavigation(state.historyAction, state.location, {\n startUninterruptedRevalidation: true\n });\n return;\n } // Otherwise, if we're currently in a loading state, just start a new\n // navigation to the navigation.location but do not trigger an uninterrupted\n // revalidation so that history correctly updates once the navigation completes\n\n\n startNavigation(pendingAction || state.historyAction, state.navigation.location, {\n overrideNavigation: state.navigation\n });\n } // Start a navigation to the given action/location. Can optionally provide a\n // overrideNavigation which will override the normalLoad in the case of a redirect\n // navigation\n\n\n async function startNavigation(historyAction, location, opts) {\n // Abort any in-progress navigations and start a new one. Unset any ongoing\n // uninterrupted revalidations unless told otherwise, since we want this\n // new navigation to update history normally\n pendingNavigationController && pendingNavigationController.abort();\n pendingNavigationController = null;\n pendingAction = historyAction;\n isUninterruptedRevalidation = (opts && opts.startUninterruptedRevalidation) === true; // Save the current scroll position every time we start a new navigation,\n // and track whether we should reset scroll on completion\n\n saveScrollPosition(state.location, state.matches);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n let loadingNavigation = opts && opts.overrideNavigation;\n let matches = matchRoutes(dataRoutes, location, init.basename); // Short circuit with a 404 on the root error boundary if we match nothing\n\n if (!matches) {\n let error = getInternalRouterError(404, {\n pathname: location.pathname\n });\n let {\n matches: notFoundMatches,\n route\n } = getShortCircuitMatches(dataRoutes); // Cancel all pending deferred on 404s since we don't keep any routes\n\n cancelActiveDeferreds();\n completeNavigation(location, {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error\n }\n });\n return;\n } // Short circuit if it's only a hash change and not a mutation submission\n // For example, on /page#hash and submit a
which will\n // default to a navigation to /page\n\n\n if (isHashChangeOnly(state.location, location) && !(opts && opts.submission && isMutationMethod(opts.submission.formMethod))) {\n completeNavigation(location, {\n matches\n });\n return;\n } // Create a controller/Request for this navigation\n\n\n pendingNavigationController = new AbortController();\n let request = createClientSideRequest(init.history, location, pendingNavigationController.signal, opts && opts.submission);\n let pendingActionData;\n let pendingError;\n\n if (opts && opts.pendingError) {\n // If we have a pendingError, it means the user attempted a GET submission\n // with binary FormData so assign here and skip to handleLoaders. That\n // way we handle calling loaders above the boundary etc. It's not really\n // different from an actionError in that sense.\n pendingError = {\n [findNearestBoundary(matches).route.id]: opts.pendingError\n };\n } else if (opts && opts.submission && isMutationMethod(opts.submission.formMethod)) {\n // Call action if we received an action submission\n let actionOutput = await handleAction(request, location, opts.submission, matches, {\n replace: opts.replace\n });\n\n if (actionOutput.shortCircuited) {\n return;\n }\n\n pendingActionData = actionOutput.pendingActionData;\n pendingError = actionOutput.pendingActionError;\n\n let navigation = _extends({\n state: \"loading\",\n location\n }, opts.submission);\n\n loadingNavigation = navigation; // Create a GET request for the loaders\n\n request = new Request(request.url, {\n signal: request.signal\n });\n } // Call loaders\n\n\n let {\n shortCircuited,\n loaderData,\n errors\n } = await handleLoaders(request, location, matches, loadingNavigation, opts && opts.submission, opts && opts.replace, pendingActionData, pendingError);\n\n if (shortCircuited) {\n return;\n } // Clean up now that the action/loaders have completed. Don't clean up if\n // we short circuited because pendingNavigationController will have already\n // been assigned to a new controller for the next navigation\n\n\n pendingNavigationController = null;\n completeNavigation(location, _extends({\n matches\n }, pendingActionData ? {\n actionData: pendingActionData\n } : {}, {\n loaderData,\n errors\n }));\n } // Call the action matched by the leaf route for this navigation and handle\n // redirects/errors\n\n\n async function handleAction(request, location, submission, matches, opts) {\n interruptActiveLoads(); // Put us in a submitting state\n\n let navigation = _extends({\n state: \"submitting\",\n location\n }, submission);\n\n updateState({\n navigation\n }); // Call our action and get the result\n\n let result;\n let actionMatch = getTargetMatch(matches, location);\n\n if (!actionMatch.route.action) {\n result = {\n type: ResultType.error,\n error: getInternalRouterError(405, {\n method: request.method,\n pathname: location.pathname,\n routeId: actionMatch.route.id\n })\n };\n } else {\n result = await callLoaderOrAction(\"action\", request, actionMatch, matches, router.basename);\n\n if (request.signal.aborted) {\n return {\n shortCircuited: true\n };\n }\n }\n\n if (isRedirectResult(result)) {\n let replace;\n\n if (opts && opts.replace != null) {\n replace = opts.replace;\n } else {\n // If the user didn't explicity indicate replace behavior, replace if\n // we redirected to the exact same location we're currently at to avoid\n // double back-buttons\n replace = result.location === state.location.pathname + state.location.search;\n }\n\n await startRedirectNavigation(state, result, {\n submission,\n replace\n });\n return {\n shortCircuited: true\n };\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id); // By default, all submissions are REPLACE navigations, but if the\n // action threw an error that'll be rendered in an errorElement, we fall\n // back to PUSH so that the user can use the back button to get back to\n // the pre-submission form location to try again\n\n if ((opts && opts.replace) !== true) {\n pendingAction = Action.Push;\n }\n\n return {\n // Send back an empty object we can use to clear out any prior actionData\n pendingActionData: {},\n pendingActionError: {\n [boundaryMatch.route.id]: result.error\n }\n };\n }\n\n if (isDeferredResult(result)) {\n throw getInternalRouterError(400, {\n type: \"defer-action\"\n });\n }\n\n return {\n pendingActionData: {\n [actionMatch.route.id]: result.data\n }\n };\n } // Call all applicable loaders for the given matches, handling redirects,\n // errors, etc.\n\n\n async function handleLoaders(request, location, matches, overrideNavigation, submission, replace, pendingActionData, pendingError) {\n // Figure out the right navigation we want to use for data loading\n let loadingNavigation = overrideNavigation;\n\n if (!loadingNavigation) {\n let navigation = _extends({\n state: \"loading\",\n location,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined\n }, submission);\n\n loadingNavigation = navigation;\n } // If this was a redirect from an action we don't have a \"submission\" but\n // we have it on the loading navigation so use that if available\n\n\n let activeSubmission = submission ? submission : loadingNavigation.formMethod && loadingNavigation.formAction && loadingNavigation.formData && loadingNavigation.formEncType ? {\n formMethod: loadingNavigation.formMethod,\n formAction: loadingNavigation.formAction,\n formData: loadingNavigation.formData,\n formEncType: loadingNavigation.formEncType\n } : undefined;\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(init.history, state, matches, activeSubmission, location, isRevalidationRequired, cancelledDeferredRoutes, cancelledFetcherLoads, pendingActionData, pendingError, fetchLoadMatches); // Cancel pending deferreds for no-longer-matched routes or routes we're\n // about to reload. Note that if this is an action reload we would have\n // already cancelled all pending deferreds so this would be a no-op\n\n cancelActiveDeferreds(routeId => !(matches && matches.some(m => m.route.id === routeId)) || matchesToLoad && matchesToLoad.some(m => m.route.id === routeId)); // Short circuit if we have no loaders to run\n\n if (matchesToLoad.length === 0 && revalidatingFetchers.length === 0) {\n completeNavigation(location, _extends({\n matches,\n loaderData: {},\n // Commit pending error if we're short circuiting\n errors: pendingError || null\n }, pendingActionData ? {\n actionData: pendingActionData\n } : {}));\n return {\n shortCircuited: true\n };\n } // If this is an uninterrupted revalidation, we remain in our current idle\n // state. If not, we need to switch to our loading state and load data,\n // preserving any new action data or existing action data (in the case of\n // a revalidation interrupting an actionReload)\n\n\n if (!isUninterruptedRevalidation) {\n revalidatingFetchers.forEach(rf => {\n let fetcher = state.fetchers.get(rf.key);\n let revalidatingFetcher = {\n state: \"loading\",\n data: fetcher && fetcher.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true\n };\n state.fetchers.set(rf.key, revalidatingFetcher);\n });\n let actionData = pendingActionData || state.actionData;\n updateState(_extends({\n navigation: loadingNavigation\n }, actionData ? Object.keys(actionData).length === 0 ? {\n actionData: null\n } : {\n actionData\n } : {}, revalidatingFetchers.length > 0 ? {\n fetchers: new Map(state.fetchers)\n } : {}));\n }\n\n pendingNavigationLoadId = ++incrementingLoadId;\n revalidatingFetchers.forEach(rf => fetchControllers.set(rf.key, pendingNavigationController));\n let {\n results,\n loaderResults,\n fetcherResults\n } = await callLoadersAndMaybeResolveData(state.matches, matches, matchesToLoad, revalidatingFetchers, request);\n\n if (request.signal.aborted) {\n return {\n shortCircuited: true\n };\n } // Clean up _after_ loaders have completed. Don't clean up if we short\n // circuited because fetchControllers would have been aborted and\n // reassigned to new controllers for the next navigation\n\n\n revalidatingFetchers.forEach(rf => fetchControllers.delete(rf.key)); // If any loaders returned a redirect Response, start a new REPLACE navigation\n\n let redirect = findRedirect(results);\n\n if (redirect) {\n await startRedirectNavigation(state, redirect, {\n replace\n });\n return {\n shortCircuited: true\n };\n } // Process and commit output from loaders\n\n\n let {\n loaderData,\n errors\n } = processLoaderData(state, matches, matchesToLoad, loaderResults, pendingError, revalidatingFetchers, fetcherResults, activeDeferreds); // Wire up subscribers to update loaderData as promises settle\n\n activeDeferreds.forEach((deferredData, routeId) => {\n deferredData.subscribe(aborted => {\n // Note: No need to updateState here since the TrackedPromise on\n // loaderData is stable across resolve/reject\n // Remove this instance if we were aborted or if promises have settled\n if (aborted || deferredData.done) {\n activeDeferreds.delete(routeId);\n }\n });\n });\n markFetchRedirectsDone();\n let didAbortFetchLoads = abortStaleFetchLoads(pendingNavigationLoadId);\n return _extends({\n loaderData,\n errors\n }, didAbortFetchLoads || revalidatingFetchers.length > 0 ? {\n fetchers: new Map(state.fetchers)\n } : {});\n }\n\n function getFetcher(key) {\n return state.fetchers.get(key) || IDLE_FETCHER;\n } // Trigger a fetcher load/submit for the given fetcher key\n\n\n function fetch(key, routeId, href, opts) {\n if (isServer) {\n throw new Error(\"router.fetch() was called during the server render, but it shouldn't be. \" + \"You are likely calling a useFetcher() method in the body of your component. \" + \"Try moving it to a useEffect or a callback.\");\n }\n\n if (fetchControllers.has(key)) abortFetcher(key);\n let matches = matchRoutes(dataRoutes, href, init.basename);\n\n if (!matches) {\n setFetcherError(key, routeId, getInternalRouterError(404, {\n pathname: href\n }));\n return;\n }\n\n let {\n path,\n submission\n } = normalizeNavigateOptions(href, opts, true);\n let match = getTargetMatch(matches, path);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n if (submission && isMutationMethod(submission.formMethod)) {\n handleFetcherAction(key, routeId, path, match, matches, submission);\n return;\n } // Store off the match so we can call it's shouldRevalidate on subsequent\n // revalidations\n\n\n fetchLoadMatches.set(key, {\n routeId,\n path,\n match,\n matches\n });\n handleFetcherLoader(key, routeId, path, match, matches, submission);\n } // Call the action for the matched fetcher.submit(), and then handle redirects,\n // errors, and revalidation\n\n\n async function handleFetcherAction(key, routeId, path, match, requestMatches, submission) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n\n if (!match.route.action) {\n let error = getInternalRouterError(405, {\n method: submission.formMethod,\n pathname: path,\n routeId: routeId\n });\n setFetcherError(key, routeId, error);\n return;\n } // Put this fetcher into it's submitting state\n\n\n let existingFetcher = state.fetchers.get(key);\n\n let fetcher = _extends({\n state: \"submitting\"\n }, submission, {\n data: existingFetcher && existingFetcher.data,\n \" _hasFetcherDoneAnything \": true\n });\n\n state.fetchers.set(key, fetcher);\n updateState({\n fetchers: new Map(state.fetchers)\n }); // Call the action for the fetcher\n\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(init.history, path, abortController.signal, submission);\n fetchControllers.set(key, abortController);\n let actionResult = await callLoaderOrAction(\"action\", fetchRequest, match, requestMatches, router.basename);\n\n if (fetchRequest.signal.aborted) {\n // We can delete this so long as we weren't aborted by ou our own fetcher\n // re-submit which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n\n return;\n }\n\n if (isRedirectResult(actionResult)) {\n fetchControllers.delete(key);\n fetchRedirectIds.add(key);\n\n let loadingFetcher = _extends({\n state: \"loading\"\n }, submission, {\n data: undefined,\n \" _hasFetcherDoneAnything \": true\n });\n\n state.fetchers.set(key, loadingFetcher);\n updateState({\n fetchers: new Map(state.fetchers)\n });\n return startRedirectNavigation(state, actionResult, {\n isFetchActionRedirect: true\n });\n } // Process any non-redirect errors thrown\n\n\n if (isErrorResult(actionResult)) {\n setFetcherError(key, routeId, actionResult.error);\n return;\n }\n\n if (isDeferredResult(actionResult)) {\n throw getInternalRouterError(400, {\n type: \"defer-action\"\n });\n } // Start the data load for current matches, or the next location if we're\n // in the middle of a navigation\n\n\n let nextLocation = state.navigation.location || state.location;\n let revalidationRequest = createClientSideRequest(init.history, nextLocation, abortController.signal);\n let matches = state.navigation.state !== \"idle\" ? matchRoutes(dataRoutes, state.navigation.location, init.basename) : state.matches;\n invariant(matches, \"Didn't find any matches after fetcher action\");\n let loadId = ++incrementingLoadId;\n fetchReloadIds.set(key, loadId);\n\n let loadFetcher = _extends({\n state: \"loading\",\n data: actionResult.data\n }, submission, {\n \" _hasFetcherDoneAnything \": true\n });\n\n state.fetchers.set(key, loadFetcher);\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(init.history, state, matches, submission, nextLocation, isRevalidationRequired, cancelledDeferredRoutes, cancelledFetcherLoads, {\n [match.route.id]: actionResult.data\n }, undefined, // No need to send through errors since we short circuit above\n fetchLoadMatches); // Put all revalidating fetchers into the loading state, except for the\n // current fetcher which we want to keep in it's current loading state which\n // contains it's action submission info + action data\n\n revalidatingFetchers.filter(rf => rf.key !== key).forEach(rf => {\n let staleKey = rf.key;\n let existingFetcher = state.fetchers.get(staleKey);\n let revalidatingFetcher = {\n state: \"loading\",\n data: existingFetcher && existingFetcher.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true\n };\n state.fetchers.set(staleKey, revalidatingFetcher);\n fetchControllers.set(staleKey, abortController);\n });\n updateState({\n fetchers: new Map(state.fetchers)\n });\n let {\n results,\n loaderResults,\n fetcherResults\n } = await callLoadersAndMaybeResolveData(state.matches, matches, matchesToLoad, revalidatingFetchers, revalidationRequest);\n\n if (abortController.signal.aborted) {\n return;\n }\n\n fetchReloadIds.delete(key);\n fetchControllers.delete(key);\n revalidatingFetchers.forEach(r => fetchControllers.delete(r.key));\n let redirect = findRedirect(results);\n\n if (redirect) {\n return startRedirectNavigation(state, redirect);\n } // Process and commit output from loaders\n\n\n let {\n loaderData,\n errors\n } = processLoaderData(state, state.matches, matchesToLoad, loaderResults, undefined, revalidatingFetchers, fetcherResults, activeDeferreds);\n let doneFetcher = {\n state: \"idle\",\n data: actionResult.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true\n };\n state.fetchers.set(key, doneFetcher);\n let didAbortFetchLoads = abortStaleFetchLoads(loadId); // If we are currently in a navigation loading state and this fetcher is\n // more recent than the navigation, we want the newer data so abort the\n // navigation and complete it with the fetcher data\n\n if (state.navigation.state === \"loading\" && loadId > pendingNavigationLoadId) {\n invariant(pendingAction, \"Expected pending action\");\n pendingNavigationController && pendingNavigationController.abort();\n completeNavigation(state.navigation.location, {\n matches,\n loaderData,\n errors,\n fetchers: new Map(state.fetchers)\n });\n } else {\n // otherwise just update with the fetcher data, preserving any existing\n // loaderData for loaders that did not need to reload. We have to\n // manually merge here since we aren't going through completeNavigation\n updateState(_extends({\n errors,\n loaderData: mergeLoaderData(state.loaderData, loaderData, matches, errors)\n }, didAbortFetchLoads ? {\n fetchers: new Map(state.fetchers)\n } : {}));\n isRevalidationRequired = false;\n }\n } // Call the matched loader for fetcher.load(), handling redirects, errors, etc.\n\n\n async function handleFetcherLoader(key, routeId, path, match, matches, submission) {\n let existingFetcher = state.fetchers.get(key); // Put this fetcher into it's loading state\n\n let loadingFetcher = _extends({\n state: \"loading\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined\n }, submission, {\n data: existingFetcher && existingFetcher.data,\n \" _hasFetcherDoneAnything \": true\n });\n\n state.fetchers.set(key, loadingFetcher);\n updateState({\n fetchers: new Map(state.fetchers)\n }); // Call the loader for this fetcher route match\n\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(init.history, path, abortController.signal);\n fetchControllers.set(key, abortController);\n let result = await callLoaderOrAction(\"loader\", fetchRequest, match, matches, router.basename); // Deferred isn't supported for fetcher loads, await everything and treat it\n // as a normal load. resolveDeferredData will return undefined if this\n // fetcher gets aborted, so we just leave result untouched and short circuit\n // below if that happens\n\n if (isDeferredResult(result)) {\n result = (await resolveDeferredData(result, fetchRequest.signal, true)) || result;\n } // We can delete this so long as we weren't aborted by ou our own fetcher\n // re-load which would have put _new_ controller is in fetchControllers\n\n\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n\n if (fetchRequest.signal.aborted) {\n return;\n } // If the loader threw a redirect Response, start a new REPLACE navigation\n\n\n if (isRedirectResult(result)) {\n await startRedirectNavigation(state, result);\n return;\n } // Process any non-redirect errors thrown\n\n\n if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n state.fetchers.delete(key); // TODO: In remix, this would reset to IDLE_NAVIGATION if it was a catch -\n // do we need to behave any differently with our non-redirect errors?\n // What if it was a non-redirect Response?\n\n updateState({\n fetchers: new Map(state.fetchers),\n errors: {\n [boundaryMatch.route.id]: result.error\n }\n });\n return;\n }\n\n invariant(!isDeferredResult(result), \"Unhandled fetcher deferred data\"); // Put the fetcher back into an idle state\n\n let doneFetcher = {\n state: \"idle\",\n data: result.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true\n };\n state.fetchers.set(key, doneFetcher);\n updateState({\n fetchers: new Map(state.fetchers)\n });\n }\n /**\n * Utility function to handle redirects returned from an action or loader.\n * Normally, a redirect \"replaces\" the navigation that triggered it. So, for\n * example:\n *\n * - user is on /a\n * - user clicks a link to /b\n * - loader for /b redirects to /c\n *\n * In a non-JS app the browser would track the in-flight navigation to /b and\n * then replace it with /c when it encountered the redirect response. In\n * the end it would only ever update the URL bar with /c.\n *\n * In client-side routing using pushState/replaceState, we aim to emulate\n * this behavior and we also do not update history until the end of the\n * navigation (including processed redirects). This means that we never\n * actually touch history until we've processed redirects, so we just use\n * the history action from the original navigation (PUSH or REPLACE).\n */\n\n\n async function startRedirectNavigation(state, redirect, _temp) {\n var _window;\n\n let {\n submission,\n replace,\n isFetchActionRedirect\n } = _temp === void 0 ? {} : _temp;\n\n if (redirect.revalidate) {\n isRevalidationRequired = true;\n }\n\n let redirectLocation = createLocation(state.location, redirect.location, // TODO: This can be removed once we get rid of useTransition in Remix v2\n _extends({\n _isRedirect: true\n }, isFetchActionRedirect ? {\n _isFetchActionRedirect: true\n } : {}));\n invariant(redirectLocation, \"Expected a location on the redirect navigation\"); // Check if this an absolute external redirect that goes to a new origin\n\n if (ABSOLUTE_URL_REGEX.test(redirect.location) && isBrowser && typeof ((_window = window) == null ? void 0 : _window.location) !== \"undefined\") {\n let newOrigin = init.history.createURL(redirect.location).origin;\n\n if (window.location.origin !== newOrigin) {\n if (replace) {\n window.location.replace(redirect.location);\n } else {\n window.location.assign(redirect.location);\n }\n\n return;\n }\n } // There's no need to abort on redirects, since we don't detect the\n // redirect until the action/loaders have settled\n\n\n pendingNavigationController = null;\n let redirectHistoryAction = replace === true ? Action.Replace : Action.Push; // Use the incoming submission if provided, fallback on the active one in\n // state.navigation\n\n let {\n formMethod,\n formAction,\n formEncType,\n formData\n } = state.navigation;\n\n if (!submission && formMethod && formAction && formData && formEncType) {\n submission = {\n formMethod,\n formAction,\n formEncType,\n formData\n };\n } // If this was a 307/308 submission we want to preserve the HTTP method and\n // re-submit the GET/POST/PUT/PATCH/DELETE as a submission navigation to the\n // redirected location\n\n\n if (redirectPreserveMethodStatusCodes.has(redirect.status) && submission && isMutationMethod(submission.formMethod)) {\n await startNavigation(redirectHistoryAction, redirectLocation, {\n submission: _extends({}, submission, {\n formAction: redirect.location\n }),\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset\n });\n } else {\n // Otherwise, we kick off a new loading navigation, preserving the\n // submission info for the duration of this navigation\n await startNavigation(redirectHistoryAction, redirectLocation, {\n overrideNavigation: {\n state: \"loading\",\n location: redirectLocation,\n formMethod: submission ? submission.formMethod : undefined,\n formAction: submission ? submission.formAction : undefined,\n formEncType: submission ? submission.formEncType : undefined,\n formData: submission ? submission.formData : undefined\n },\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset\n });\n }\n }\n\n async function callLoadersAndMaybeResolveData(currentMatches, matches, matchesToLoad, fetchersToLoad, request) {\n // Call all navigation loaders and revalidating fetcher loaders in parallel,\n // then slice off the results into separate arrays so we can handle them\n // accordingly\n let results = await Promise.all([...matchesToLoad.map(match => callLoaderOrAction(\"loader\", request, match, matches, router.basename)), ...fetchersToLoad.map(f => callLoaderOrAction(\"loader\", createClientSideRequest(init.history, f.path, request.signal), f.match, f.matches, router.basename))]);\n let loaderResults = results.slice(0, matchesToLoad.length);\n let fetcherResults = results.slice(matchesToLoad.length);\n await Promise.all([resolveDeferredResults(currentMatches, matchesToLoad, loaderResults, request.signal, false, state.loaderData), resolveDeferredResults(currentMatches, fetchersToLoad.map(f => f.match), fetcherResults, request.signal, true)]);\n return {\n results,\n loaderResults,\n fetcherResults\n };\n }\n\n function interruptActiveLoads() {\n // Every interruption triggers a revalidation\n isRevalidationRequired = true; // Cancel pending route-level deferreds and mark cancelled routes for\n // revalidation\n\n cancelledDeferredRoutes.push(...cancelActiveDeferreds()); // Abort in-flight fetcher loads\n\n fetchLoadMatches.forEach((_, key) => {\n if (fetchControllers.has(key)) {\n cancelledFetcherLoads.push(key);\n abortFetcher(key);\n }\n });\n }\n\n function setFetcherError(key, routeId, error) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n deleteFetcher(key);\n updateState({\n errors: {\n [boundaryMatch.route.id]: error\n },\n fetchers: new Map(state.fetchers)\n });\n }\n\n function deleteFetcher(key) {\n if (fetchControllers.has(key)) abortFetcher(key);\n fetchLoadMatches.delete(key);\n fetchReloadIds.delete(key);\n fetchRedirectIds.delete(key);\n state.fetchers.delete(key);\n }\n\n function abortFetcher(key) {\n let controller = fetchControllers.get(key);\n invariant(controller, \"Expected fetch controller: \" + key);\n controller.abort();\n fetchControllers.delete(key);\n }\n\n function markFetchersDone(keys) {\n for (let key of keys) {\n let fetcher = getFetcher(key);\n let doneFetcher = {\n state: \"idle\",\n data: fetcher.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true\n };\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n function markFetchRedirectsDone() {\n let doneKeys = [];\n\n for (let key of fetchRedirectIds) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, \"Expected fetcher: \" + key);\n\n if (fetcher.state === \"loading\") {\n fetchRedirectIds.delete(key);\n doneKeys.push(key);\n }\n }\n\n markFetchersDone(doneKeys);\n }\n\n function abortStaleFetchLoads(landedId) {\n let yeetedKeys = [];\n\n for (let [key, id] of fetchReloadIds) {\n if (id < landedId) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, \"Expected fetcher: \" + key);\n\n if (fetcher.state === \"loading\") {\n abortFetcher(key);\n fetchReloadIds.delete(key);\n yeetedKeys.push(key);\n }\n }\n }\n\n markFetchersDone(yeetedKeys);\n return yeetedKeys.length > 0;\n }\n\n function getBlocker(key, fn) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n if (blockerFunctions.get(key) !== fn) {\n blockerFunctions.set(key, fn);\n }\n\n return blocker;\n }\n\n function deleteBlocker(key) {\n state.blockers.delete(key);\n blockerFunctions.delete(key);\n } // Utility function to update blockers, ensuring valid state transitions\n\n\n function updateBlocker(key, newBlocker) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER; // Poor mans state machine :)\n // https://mermaid.live/edit#pako:eNqVkc9OwzAMxl8l8nnjAYrEtDIOHEBIgwvKJTReGy3_lDpIqO27k6awMG0XcrLlnz87nwdonESogKXXBuE79rq75XZO3-yHds0RJVuv70YrPlUrCEe2HfrORS3rubqZfuhtpg5C9wk5tZ4VKcRUq88q9Z8RS0-48cE1iHJkL0ugbHuFLus9L6spZy8nX9MP2CNdomVaposqu3fGayT8T8-jJQwhepo_UtpgBQaDEUom04dZhAN1aJBDlUKJBxE1ceB2Smj0Mln-IBW5AFU2dwUiktt_2Qaq2dBfaKdEup85UV7Yd-dKjlnkabl2Pvr0DTkTreM\n\n invariant(blocker.state === \"unblocked\" && newBlocker.state === \"blocked\" || blocker.state === \"blocked\" && newBlocker.state === \"blocked\" || blocker.state === \"blocked\" && newBlocker.state === \"proceeding\" || blocker.state === \"blocked\" && newBlocker.state === \"unblocked\" || blocker.state === \"proceeding\" && newBlocker.state === \"unblocked\", \"Invalid blocker state transition: \" + blocker.state + \" -> \" + newBlocker.state);\n state.blockers.set(key, newBlocker);\n updateState({\n blockers: new Map(state.blockers)\n });\n }\n\n function shouldBlockNavigation(_ref2) {\n let {\n currentLocation,\n nextLocation,\n historyAction\n } = _ref2;\n\n if (blockerFunctions.size === 0) {\n return;\n } // We ony support a single active blocker at the moment since we don't have\n // any compelling use cases for multi-blocker yet\n\n\n if (blockerFunctions.size > 1) {\n warning(false, \"A router only supports one blocker at a time\");\n }\n\n let entries = Array.from(blockerFunctions.entries());\n let [blockerKey, blockerFunction] = entries[entries.length - 1];\n let blocker = state.blockers.get(blockerKey);\n\n if (blocker && blocker.state === \"proceeding\") {\n // If the blocker is currently proceeding, we don't need to re-check\n // it and can let this navigation continue\n return;\n } // At this point, we know we're unblocked/blocked so we need to check the\n // user-provided blocker function\n\n\n if (blockerFunction({\n currentLocation,\n nextLocation,\n historyAction\n })) {\n return blockerKey;\n }\n }\n\n function cancelActiveDeferreds(predicate) {\n let cancelledRouteIds = [];\n activeDeferreds.forEach((dfd, routeId) => {\n if (!predicate || predicate(routeId)) {\n // Cancel the deferred - but do not remove from activeDeferreds here -\n // we rely on the subscribers to do that so our tests can assert proper\n // cleanup via _internalActiveDeferreds\n dfd.cancel();\n cancelledRouteIds.push(routeId);\n activeDeferreds.delete(routeId);\n }\n });\n return cancelledRouteIds;\n } // Opt in to capturing and reporting scroll positions during navigations,\n // used by the component\n\n\n function enableScrollRestoration(positions, getPosition, getKey) {\n savedScrollPositions = positions;\n getScrollPosition = getPosition;\n\n getScrollRestorationKey = getKey || (location => location.key); // Perform initial hydration scroll restoration, since we miss the boat on\n // the initial updateState() because we've not yet rendered \n // and therefore have no savedScrollPositions available\n\n\n if (!initialScrollRestored && state.navigation === IDLE_NAVIGATION) {\n initialScrollRestored = true;\n let y = getSavedScrollPosition(state.location, state.matches);\n\n if (y != null) {\n updateState({\n restoreScrollPosition: y\n });\n }\n }\n\n return () => {\n savedScrollPositions = null;\n getScrollPosition = null;\n getScrollRestorationKey = null;\n };\n }\n\n function saveScrollPosition(location, matches) {\n if (savedScrollPositions && getScrollRestorationKey && getScrollPosition) {\n let userMatches = matches.map(m => createUseMatchesMatch(m, state.loaderData));\n let key = getScrollRestorationKey(location, userMatches) || location.key;\n savedScrollPositions[key] = getScrollPosition();\n }\n }\n\n function getSavedScrollPosition(location, matches) {\n if (savedScrollPositions && getScrollRestorationKey && getScrollPosition) {\n let userMatches = matches.map(m => createUseMatchesMatch(m, state.loaderData));\n let key = getScrollRestorationKey(location, userMatches) || location.key;\n let y = savedScrollPositions[key];\n\n if (typeof y === \"number\") {\n return y;\n }\n }\n\n return null;\n }\n\n router = {\n get basename() {\n return init.basename;\n },\n\n get state() {\n return state;\n },\n\n get routes() {\n return dataRoutes;\n },\n\n initialize,\n subscribe,\n enableScrollRestoration,\n navigate,\n fetch,\n revalidate,\n // Passthrough to history-aware createHref used by useHref so we get proper\n // hash-aware URLs in DOM paths\n createHref: to => init.history.createHref(to),\n encodeLocation: to => init.history.encodeLocation(to),\n getFetcher,\n deleteFetcher,\n dispose,\n getBlocker,\n deleteBlocker,\n _internalFetchControllers: fetchControllers,\n _internalActiveDeferreds: activeDeferreds\n };\n return router;\n} //#endregion\n////////////////////////////////////////////////////////////////////////////////\n//#region createStaticHandler\n////////////////////////////////////////////////////////////////////////////////\n\nconst UNSAFE_DEFERRED_SYMBOL = Symbol(\"deferred\");\nfunction createStaticHandler(routes, opts) {\n invariant(routes.length > 0, \"You must provide a non-empty routes array to createStaticHandler\");\n let dataRoutes = convertRoutesToDataRoutes(routes);\n let basename = (opts ? opts.basename : null) || \"/\";\n /**\n * The query() method is intended for document requests, in which we want to\n * call an optional action and potentially multiple loaders for all nested\n * routes. It returns a StaticHandlerContext object, which is very similar\n * to the router state (location, loaderData, actionData, errors, etc.) and\n * also adds SSR-specific information such as the statusCode and headers\n * from action/loaders Responses.\n *\n * It _should_ never throw and should report all errors through the\n * returned context.errors object, properly associating errors to their error\n * boundary. Additionally, it tracks _deepestRenderedBoundaryId which can be\n * used to emulate React error boundaries during SSr by performing a second\n * pass only down to the boundaryId.\n *\n * The one exception where we do not return a StaticHandlerContext is when a\n * redirect response is returned or thrown from any action/loader. We\n * propagate that out and return the raw Response so the HTTP server can\n * return it directly.\n */\n\n async function query(request, _temp2) {\n let {\n requestContext\n } = _temp2 === void 0 ? {} : _temp2;\n let url = new URL(request.url);\n let method = request.method.toLowerCase();\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename); // SSR supports HEAD requests while SPA doesn't\n\n if (!isValidMethod(method) && method !== \"head\") {\n let error = getInternalRouterError(405, {\n method\n });\n let {\n matches: methodNotAllowedMatches,\n route\n } = getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: methodNotAllowedMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null\n };\n } else if (!matches) {\n let error = getInternalRouterError(404, {\n pathname: location.pathname\n });\n let {\n matches: notFoundMatches,\n route\n } = getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: notFoundMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null\n };\n }\n\n let result = await queryImpl(request, location, matches, requestContext);\n\n if (isResponse(result)) {\n return result;\n } // When returning StaticHandlerContext, we patch back in the location here\n // since we need it for React Context. But this helps keep our submit and\n // loadRouteData operating on a Request instead of a Location\n\n\n return _extends({\n location,\n basename\n }, result);\n }\n /**\n * The queryRoute() method is intended for targeted route requests, either\n * for fetch ?_data requests or resource route requests. In this case, we\n * are only ever calling a single action or loader, and we are returning the\n * returned value directly. In most cases, this will be a Response returned\n * from the action/loader, but it may be a primitive or other value as well -\n * and in such cases the calling context should handle that accordingly.\n *\n * We do respect the throw/return differentiation, so if an action/loader\n * throws, then this method will throw the value. This is important so we\n * can do proper boundary identification in Remix where a thrown Response\n * must go to the Catch Boundary but a returned Response is happy-path.\n *\n * One thing to note is that any Router-initiated Errors that make sense\n * to associate with a status code will be thrown as an ErrorResponse\n * instance which include the raw Error, such that the calling context can\n * serialize the error as they see fit while including the proper response\n * code. Examples here are 404 and 405 errors that occur prior to reaching\n * any user-defined loaders.\n */\n\n\n async function queryRoute(request, _temp3) {\n let {\n routeId,\n requestContext\n } = _temp3 === void 0 ? {} : _temp3;\n let url = new URL(request.url);\n let method = request.method.toLowerCase();\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename); // SSR supports HEAD requests while SPA doesn't\n\n if (!isValidMethod(method) && method !== \"head\" && method !== \"options\") {\n throw getInternalRouterError(405, {\n method\n });\n } else if (!matches) {\n throw getInternalRouterError(404, {\n pathname: location.pathname\n });\n }\n\n let match = routeId ? matches.find(m => m.route.id === routeId) : getTargetMatch(matches, location);\n\n if (routeId && !match) {\n throw getInternalRouterError(403, {\n pathname: location.pathname,\n routeId\n });\n } else if (!match) {\n // This should never hit I don't think?\n throw getInternalRouterError(404, {\n pathname: location.pathname\n });\n }\n\n let result = await queryImpl(request, location, matches, requestContext, match);\n\n if (isResponse(result)) {\n return result;\n }\n\n let error = result.errors ? Object.values(result.errors)[0] : undefined;\n\n if (error !== undefined) {\n // If we got back result.errors, that means the loader/action threw\n // _something_ that wasn't a Response, but it's not guaranteed/required\n // to be an `instanceof Error` either, so we have to use throw here to\n // preserve the \"error\" state outside of queryImpl.\n throw error;\n } // Pick off the right state value to return\n\n\n if (result.actionData) {\n return Object.values(result.actionData)[0];\n }\n\n if (result.loaderData) {\n var _result$activeDeferre;\n\n let data = Object.values(result.loaderData)[0];\n\n if ((_result$activeDeferre = result.activeDeferreds) != null && _result$activeDeferre[match.route.id]) {\n data[UNSAFE_DEFERRED_SYMBOL] = result.activeDeferreds[match.route.id];\n }\n\n return data;\n }\n\n return undefined;\n }\n\n async function queryImpl(request, location, matches, requestContext, routeMatch) {\n invariant(request.signal, \"query()/queryRoute() requests must contain an AbortController signal\");\n\n try {\n if (isMutationMethod(request.method.toLowerCase())) {\n let result = await submit(request, matches, routeMatch || getTargetMatch(matches, location), requestContext, routeMatch != null);\n return result;\n }\n\n let result = await loadRouteData(request, matches, requestContext, routeMatch);\n return isResponse(result) ? result : _extends({}, result, {\n actionData: null,\n actionHeaders: {}\n });\n } catch (e) {\n // If the user threw/returned a Response in callLoaderOrAction, we throw\n // it to bail out and then return or throw here based on whether the user\n // returned or threw\n if (isQueryRouteResponse(e)) {\n if (e.type === ResultType.error && !isRedirectResponse(e.response)) {\n throw e.response;\n }\n\n return e.response;\n } // Redirects are always returned since they don't propagate to catch\n // boundaries\n\n\n if (isRedirectResponse(e)) {\n return e;\n }\n\n throw e;\n }\n }\n\n async function submit(request, matches, actionMatch, requestContext, isRouteRequest) {\n let result;\n\n if (!actionMatch.route.action) {\n let error = getInternalRouterError(405, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: actionMatch.route.id\n });\n\n if (isRouteRequest) {\n throw error;\n }\n\n result = {\n type: ResultType.error,\n error\n };\n } else {\n result = await callLoaderOrAction(\"action\", request, actionMatch, matches, basename, true, isRouteRequest, requestContext);\n\n if (request.signal.aborted) {\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(method + \"() call aborted\");\n }\n }\n\n if (isRedirectResult(result)) {\n // Uhhhh - this should never happen, we should always throw these from\n // callLoaderOrAction, but the type narrowing here keeps TS happy and we\n // can get back on the \"throw all redirect responses\" train here should\n // this ever happen :/\n throw new Response(null, {\n status: result.status,\n headers: {\n Location: result.location\n }\n });\n }\n\n if (isDeferredResult(result)) {\n let error = getInternalRouterError(400, {\n type: \"defer-action\"\n });\n\n if (isRouteRequest) {\n throw error;\n }\n\n result = {\n type: ResultType.error,\n error\n };\n }\n\n if (isRouteRequest) {\n // Note: This should only be non-Response values if we get here, since\n // isRouteRequest should throw any Response received in callLoaderOrAction\n if (isErrorResult(result)) {\n throw result.error;\n }\n\n return {\n matches: [actionMatch],\n loaderData: {},\n actionData: {\n [actionMatch.route.id]: result.data\n },\n errors: null,\n // Note: statusCode + headers are unused here since queryRoute will\n // return the raw Response or value\n statusCode: 200,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null\n };\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n let context = await loadRouteData(request, matches, requestContext, undefined, {\n [boundaryMatch.route.id]: result.error\n }); // action status codes take precedence over loader status codes\n\n return _extends({}, context, {\n statusCode: isRouteErrorResponse(result.error) ? result.error.status : 500,\n actionData: null,\n actionHeaders: _extends({}, result.headers ? {\n [actionMatch.route.id]: result.headers\n } : {})\n });\n } // Create a GET request for the loaders\n\n\n let loaderRequest = new Request(request.url, {\n headers: request.headers,\n redirect: request.redirect,\n signal: request.signal\n });\n let context = await loadRouteData(loaderRequest, matches, requestContext);\n return _extends({}, context, result.statusCode ? {\n statusCode: result.statusCode\n } : {}, {\n actionData: {\n [actionMatch.route.id]: result.data\n },\n actionHeaders: _extends({}, result.headers ? {\n [actionMatch.route.id]: result.headers\n } : {})\n });\n }\n\n async function loadRouteData(request, matches, requestContext, routeMatch, pendingActionError) {\n let isRouteRequest = routeMatch != null; // Short circuit if we have no loaders to run (queryRoute())\n\n if (isRouteRequest && !(routeMatch != null && routeMatch.route.loader)) {\n throw getInternalRouterError(400, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: routeMatch == null ? void 0 : routeMatch.route.id\n });\n }\n\n let requestMatches = routeMatch ? [routeMatch] : getLoaderMatchesUntilBoundary(matches, Object.keys(pendingActionError || {})[0]);\n let matchesToLoad = requestMatches.filter(m => m.route.loader); // Short circuit if we have no loaders to run (query())\n\n if (matchesToLoad.length === 0) {\n return {\n matches,\n // Add a null for all matched routes for proper revalidation on the client\n loaderData: matches.reduce((acc, m) => Object.assign(acc, {\n [m.route.id]: null\n }), {}),\n errors: pendingActionError || null,\n statusCode: 200,\n loaderHeaders: {},\n activeDeferreds: null\n };\n }\n\n let results = await Promise.all([...matchesToLoad.map(match => callLoaderOrAction(\"loader\", request, match, matches, basename, true, isRouteRequest, requestContext))]);\n\n if (request.signal.aborted) {\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(method + \"() call aborted\");\n } // Process and commit output from loaders\n\n\n let activeDeferreds = new Map();\n let context = processRouteLoaderData(matches, matchesToLoad, results, pendingActionError, activeDeferreds); // Add a null for any non-loader matches for proper revalidation on the client\n\n let executedLoaders = new Set(matchesToLoad.map(match => match.route.id));\n matches.forEach(match => {\n if (!executedLoaders.has(match.route.id)) {\n context.loaderData[match.route.id] = null;\n }\n });\n return _extends({}, context, {\n matches,\n activeDeferreds: activeDeferreds.size > 0 ? Object.fromEntries(activeDeferreds.entries()) : null\n });\n }\n\n return {\n dataRoutes,\n query,\n queryRoute\n };\n} //#endregion\n////////////////////////////////////////////////////////////////////////////////\n//#region Helpers\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Given an existing StaticHandlerContext and an error thrown at render time,\n * provide an updated StaticHandlerContext suitable for a second SSR render\n */\n\nfunction getStaticContextFromError(routes, context, error) {\n let newContext = _extends({}, context, {\n statusCode: 500,\n errors: {\n [context._deepestRenderedBoundaryId || routes[0].id]: error\n }\n });\n\n return newContext;\n}\n\nfunction isSubmissionNavigation(opts) {\n return opts != null && \"formData\" in opts;\n} // Normalize navigation options by converting formMethod=GET formData objects to\n// URLSearchParams so they behave identically to links with query params\n\n\nfunction normalizeNavigateOptions(to, opts, isFetcher) {\n if (isFetcher === void 0) {\n isFetcher = false;\n }\n\n let path = typeof to === \"string\" ? to : createPath(to); // Return location verbatim on non-submission navigations\n\n if (!opts || !isSubmissionNavigation(opts)) {\n return {\n path\n };\n }\n\n if (opts.formMethod && !isValidMethod(opts.formMethod)) {\n return {\n path,\n error: getInternalRouterError(405, {\n method: opts.formMethod\n })\n };\n } // Create a Submission on non-GET navigations\n\n\n let submission;\n\n if (opts.formData) {\n submission = {\n formMethod: opts.formMethod || \"get\",\n formAction: stripHashFromPath(path),\n formEncType: opts && opts.formEncType || \"application/x-www-form-urlencoded\",\n formData: opts.formData\n };\n\n if (isMutationMethod(submission.formMethod)) {\n return {\n path,\n submission\n };\n }\n } // Flatten submission onto URLSearchParams for GET submissions\n\n\n let parsedPath = parsePath(path);\n let searchParams = convertFormDataToSearchParams(opts.formData); // Since fetcher GET submissions only run a single loader (as opposed to\n // navigation GET submissions which run all loaders), we need to preserve\n // any incoming ?index params\n\n if (isFetcher && parsedPath.search && hasNakedIndexQuery(parsedPath.search)) {\n searchParams.append(\"index\", \"\");\n }\n\n parsedPath.search = \"?\" + searchParams;\n return {\n path: createPath(parsedPath),\n submission\n };\n} // Filter out all routes below any caught error as they aren't going to\n// render so we don't need to load them\n\n\nfunction getLoaderMatchesUntilBoundary(matches, boundaryId) {\n let boundaryMatches = matches;\n\n if (boundaryId) {\n let index = matches.findIndex(m => m.route.id === boundaryId);\n\n if (index >= 0) {\n boundaryMatches = matches.slice(0, index);\n }\n }\n\n return boundaryMatches;\n}\n\nfunction getMatchesToLoad(history, state, matches, submission, location, isRevalidationRequired, cancelledDeferredRoutes, cancelledFetcherLoads, pendingActionData, pendingError, fetchLoadMatches) {\n let actionResult = pendingError ? Object.values(pendingError)[0] : pendingActionData ? Object.values(pendingActionData)[0] : undefined;\n let currentUrl = history.createURL(state.location);\n let nextUrl = history.createURL(location);\n let defaultShouldRevalidate = // Forced revalidation due to submission, useRevalidate, or X-Remix-Revalidate\n isRevalidationRequired || // Clicked the same link, resubmitted a GET form\n currentUrl.toString() === nextUrl.toString() || // Search params affect all loaders\n currentUrl.search !== nextUrl.search; // Pick navigation matches that are net-new or qualify for revalidation\n\n let boundaryId = pendingError ? Object.keys(pendingError)[0] : undefined;\n let boundaryMatches = getLoaderMatchesUntilBoundary(matches, boundaryId);\n let navigationMatches = boundaryMatches.filter((match, index) => {\n if (match.route.loader == null) {\n return false;\n } // Always call the loader on new route instances and pending defer cancellations\n\n\n if (isNewLoader(state.loaderData, state.matches[index], match) || cancelledDeferredRoutes.some(id => id === match.route.id)) {\n return true;\n } // This is the default implementation for when we revalidate. If the route\n // provides it's own implementation, then we give them full control but\n // provide this value so they can leverage it if needed after they check\n // their own specific use cases\n\n\n let currentRouteMatch = state.matches[index];\n let nextRouteMatch = match;\n return shouldRevalidateLoader(match, _extends({\n currentUrl,\n currentParams: currentRouteMatch.params,\n nextUrl,\n nextParams: nextRouteMatch.params\n }, submission, {\n actionResult,\n defaultShouldRevalidate: defaultShouldRevalidate || isNewRouteInstance(currentRouteMatch, nextRouteMatch)\n }));\n }); // Pick fetcher.loads that need to be revalidated\n\n let revalidatingFetchers = [];\n fetchLoadMatches && fetchLoadMatches.forEach((f, key) => {\n if (!matches.some(m => m.route.id === f.routeId)) {\n // This fetcher is not going to be present in the subsequent render so\n // there's no need to revalidate it\n return;\n } else if (cancelledFetcherLoads.includes(key)) {\n // This fetcher was cancelled from a prior action submission - force reload\n revalidatingFetchers.push(_extends({\n key\n }, f));\n } else {\n // Revalidating fetchers are decoupled from the route matches since they\n // hit a static href, so they _always_ check shouldRevalidate and the\n // default is strictly if a revalidation is explicitly required (action\n // submissions, useRevalidator, X-Remix-Revalidate).\n let shouldRevalidate = shouldRevalidateLoader(f.match, _extends({\n currentUrl,\n currentParams: state.matches[state.matches.length - 1].params,\n nextUrl,\n nextParams: matches[matches.length - 1].params\n }, submission, {\n actionResult,\n defaultShouldRevalidate\n }));\n\n if (shouldRevalidate) {\n revalidatingFetchers.push(_extends({\n key\n }, f));\n }\n }\n });\n return [navigationMatches, revalidatingFetchers];\n}\n\nfunction isNewLoader(currentLoaderData, currentMatch, match) {\n let isNew = // [a] -> [a, b]\n !currentMatch || // [a, b] -> [a, c]\n match.route.id !== currentMatch.route.id; // Handle the case that we don't have data for a re-used route, potentially\n // from a prior error or from a cancelled pending deferred\n\n let isMissingData = currentLoaderData[match.route.id] === undefined; // Always load if this is a net-new route or we don't yet have data\n\n return isNew || isMissingData;\n}\n\nfunction isNewRouteInstance(currentMatch, match) {\n let currentPath = currentMatch.route.path;\n return (// param change for this match, /users/123 -> /users/456\n currentMatch.pathname !== match.pathname || // splat param changed, which is not present in match.path\n // e.g. /files/images/avatar.jpg -> files/finances.xls\n currentPath != null && currentPath.endsWith(\"*\") && currentMatch.params[\"*\"] !== match.params[\"*\"]\n );\n}\n\nfunction shouldRevalidateLoader(loaderMatch, arg) {\n if (loaderMatch.route.shouldRevalidate) {\n let routeChoice = loaderMatch.route.shouldRevalidate(arg);\n\n if (typeof routeChoice === \"boolean\") {\n return routeChoice;\n }\n }\n\n return arg.defaultShouldRevalidate;\n}\n\nasync function callLoaderOrAction(type, request, match, matches, basename, isStaticRequest, isRouteRequest, requestContext) {\n if (basename === void 0) {\n basename = \"/\";\n }\n\n if (isStaticRequest === void 0) {\n isStaticRequest = false;\n }\n\n if (isRouteRequest === void 0) {\n isRouteRequest = false;\n }\n\n let resultType;\n let result; // Setup a promise we can race against so that abort signals short circuit\n\n let reject;\n let abortPromise = new Promise((_, r) => reject = r);\n\n let onReject = () => reject();\n\n request.signal.addEventListener(\"abort\", onReject);\n\n try {\n let handler = match.route[type];\n invariant(handler, \"Could not find the \" + type + \" to run on the \\\"\" + match.route.id + \"\\\" route\");\n result = await Promise.race([handler({\n request,\n params: match.params,\n context: requestContext\n }), abortPromise]);\n invariant(result !== undefined, \"You defined \" + (type === \"action\" ? \"an action\" : \"a loader\") + \" for route \" + (\"\\\"\" + match.route.id + \"\\\" but didn't return anything from your `\" + type + \"` \") + \"function. Please return a value or `null`.\");\n } catch (e) {\n resultType = ResultType.error;\n result = e;\n } finally {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n\n if (isResponse(result)) {\n let status = result.status; // Process redirects\n\n if (redirectStatusCodes.has(status)) {\n let location = result.headers.get(\"Location\");\n invariant(location, \"Redirects returned/thrown from loaders/actions must have a Location header\"); // Support relative routing in internal redirects\n\n if (!ABSOLUTE_URL_REGEX.test(location)) {\n let activeMatches = matches.slice(0, matches.indexOf(match) + 1);\n let routePathnames = getPathContributingMatches(activeMatches).map(match => match.pathnameBase);\n let resolvedLocation = resolveTo(location, routePathnames, new URL(request.url).pathname);\n invariant(createPath(resolvedLocation), \"Unable to resolve redirect location: \" + location); // Prepend the basename to the redirect location if we have one\n\n if (basename) {\n let path = resolvedLocation.pathname;\n resolvedLocation.pathname = path === \"/\" ? basename : joinPaths([basename, path]);\n }\n\n location = createPath(resolvedLocation);\n } else if (!isStaticRequest) {\n // Strip off the protocol+origin for same-origin absolute redirects.\n // If this is a static reques, we can let it go back to the browser\n // as-is\n let currentUrl = new URL(request.url);\n let url = location.startsWith(\"//\") ? new URL(currentUrl.protocol + location) : new URL(location);\n\n if (url.origin === currentUrl.origin) {\n location = url.pathname + url.search + url.hash;\n }\n } // Don't process redirects in the router during static requests requests.\n // Instead, throw the Response and let the server handle it with an HTTP\n // redirect. We also update the Location header in place in this flow so\n // basename and relative routing is taken into account\n\n\n if (isStaticRequest) {\n result.headers.set(\"Location\", location);\n throw result;\n }\n\n return {\n type: ResultType.redirect,\n status,\n location,\n revalidate: result.headers.get(\"X-Remix-Revalidate\") !== null\n };\n } // For SSR single-route requests, we want to hand Responses back directly\n // without unwrapping. We do this with the QueryRouteResponse wrapper\n // interface so we can know whether it was returned or thrown\n\n\n if (isRouteRequest) {\n // eslint-disable-next-line no-throw-literal\n throw {\n type: resultType || ResultType.data,\n response: result\n };\n }\n\n let data;\n let contentType = result.headers.get(\"Content-Type\"); // Check between word boundaries instead of startsWith() due to the last\n // paragraph of https://httpwg.org/specs/rfc9110.html#field.content-type\n\n if (contentType && /\\bapplication\\/json\\b/.test(contentType)) {\n data = await result.json();\n } else {\n data = await result.text();\n }\n\n if (resultType === ResultType.error) {\n return {\n type: resultType,\n error: new ErrorResponse(status, result.statusText, data),\n headers: result.headers\n };\n }\n\n return {\n type: ResultType.data,\n data,\n statusCode: result.status,\n headers: result.headers\n };\n }\n\n if (resultType === ResultType.error) {\n return {\n type: resultType,\n error: result\n };\n }\n\n if (result instanceof DeferredData) {\n return {\n type: ResultType.deferred,\n deferredData: result\n };\n }\n\n return {\n type: ResultType.data,\n data: result\n };\n} // Utility method for creating the Request instances for loaders/actions during\n// client-side navigations and fetches. During SSR we will always have a\n// Request instance from the static handler (query/queryRoute)\n\n\nfunction createClientSideRequest(history, location, signal, submission) {\n let url = history.createURL(stripHashFromPath(location)).toString();\n let init = {\n signal\n };\n\n if (submission && isMutationMethod(submission.formMethod)) {\n let {\n formMethod,\n formEncType,\n formData\n } = submission;\n init.method = formMethod.toUpperCase();\n init.body = formEncType === \"application/x-www-form-urlencoded\" ? convertFormDataToSearchParams(formData) : formData;\n } // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n\n\n return new Request(url, init);\n}\n\nfunction convertFormDataToSearchParams(formData) {\n let searchParams = new URLSearchParams();\n\n for (let [key, value] of formData.entries()) {\n // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#converting-an-entry-list-to-a-list-of-name-value-pairs\n searchParams.append(key, value instanceof File ? value.name : value);\n }\n\n return searchParams;\n}\n\nfunction processRouteLoaderData(matches, matchesToLoad, results, pendingError, activeDeferreds) {\n // Fill in loaderData/errors from our loaders\n let loaderData = {};\n let errors = null;\n let statusCode;\n let foundError = false;\n let loaderHeaders = {}; // Process loader results into state.loaderData/state.errors\n\n results.forEach((result, index) => {\n let id = matchesToLoad[index].route.id;\n invariant(!isRedirectResult(result), \"Cannot handle redirect results in processLoaderData\");\n\n if (isErrorResult(result)) {\n // Look upwards from the matched route for the closest ancestor\n // error boundary, defaulting to the root match\n let boundaryMatch = findNearestBoundary(matches, id);\n let error = result.error; // If we have a pending action error, we report it at the highest-route\n // that throws a loader error, and then clear it out to indicate that\n // it was consumed\n\n if (pendingError) {\n error = Object.values(pendingError)[0];\n pendingError = undefined;\n }\n\n errors = errors || {}; // Prefer higher error values if lower errors bubble to the same boundary\n\n if (errors[boundaryMatch.route.id] == null) {\n errors[boundaryMatch.route.id] = error;\n } // Clear our any prior loaderData for the throwing route\n\n\n loaderData[id] = undefined; // Once we find our first (highest) error, we set the status code and\n // prevent deeper status codes from overriding\n\n if (!foundError) {\n foundError = true;\n statusCode = isRouteErrorResponse(result.error) ? result.error.status : 500;\n }\n\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n if (isDeferredResult(result)) {\n activeDeferreds.set(id, result.deferredData);\n loaderData[id] = result.deferredData.data;\n } else {\n loaderData[id] = result.data;\n } // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n\n\n if (result.statusCode != null && result.statusCode !== 200 && !foundError) {\n statusCode = result.statusCode;\n }\n\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n }\n }); // If we didn't consume the pending action error (i.e., all loaders\n // resolved), then consume it here. Also clear out any loaderData for the\n // throwing route\n\n if (pendingError) {\n errors = pendingError;\n loaderData[Object.keys(pendingError)[0]] = undefined;\n }\n\n return {\n loaderData,\n errors,\n statusCode: statusCode || 200,\n loaderHeaders\n };\n}\n\nfunction processLoaderData(state, matches, matchesToLoad, results, pendingError, revalidatingFetchers, fetcherResults, activeDeferreds) {\n let {\n loaderData,\n errors\n } = processRouteLoaderData(matches, matchesToLoad, results, pendingError, activeDeferreds); // Process results from our revalidating fetchers\n\n for (let index = 0; index < revalidatingFetchers.length; index++) {\n let {\n key,\n match\n } = revalidatingFetchers[index];\n invariant(fetcherResults !== undefined && fetcherResults[index] !== undefined, \"Did not find corresponding fetcher result\");\n let result = fetcherResults[index]; // Process fetcher non-redirect errors\n\n if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, match.route.id);\n\n if (!(errors && errors[boundaryMatch.route.id])) {\n errors = _extends({}, errors, {\n [boundaryMatch.route.id]: result.error\n });\n }\n\n state.fetchers.delete(key);\n } else if (isRedirectResult(result)) {\n // Should never get here, redirects should get processed above, but we\n // keep this to type narrow to a success result in the else\n invariant(false, \"Unhandled fetcher revalidation redirect\");\n } else if (isDeferredResult(result)) {\n // Should never get here, deferred data should be awaited for fetchers\n // in resolveDeferredResults\n invariant(false, \"Unhandled fetcher deferred data\");\n } else {\n let doneFetcher = {\n state: \"idle\",\n data: result.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true\n };\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n return {\n loaderData,\n errors\n };\n}\n\nfunction mergeLoaderData(loaderData, newLoaderData, matches, errors) {\n let mergedLoaderData = _extends({}, newLoaderData);\n\n for (let match of matches) {\n let id = match.route.id;\n\n if (newLoaderData.hasOwnProperty(id)) {\n if (newLoaderData[id] !== undefined) {\n mergedLoaderData[id] = newLoaderData[id];\n }\n } else if (loaderData[id] !== undefined) {\n mergedLoaderData[id] = loaderData[id];\n }\n\n if (errors && errors.hasOwnProperty(id)) {\n // Don't keep any loader data below the boundary\n break;\n }\n }\n\n return mergedLoaderData;\n} // Find the nearest error boundary, looking upwards from the leaf route (or the\n// route specified by routeId) for the closest ancestor error boundary,\n// defaulting to the root match\n\n\nfunction findNearestBoundary(matches, routeId) {\n let eligibleMatches = routeId ? matches.slice(0, matches.findIndex(m => m.route.id === routeId) + 1) : [...matches];\n return eligibleMatches.reverse().find(m => m.route.hasErrorBoundary === true) || matches[0];\n}\n\nfunction getShortCircuitMatches(routes) {\n // Prefer a root layout route if present, otherwise shim in a route object\n let route = routes.find(r => r.index || !r.path || r.path === \"/\") || {\n id: \"__shim-error-route__\"\n };\n return {\n matches: [{\n params: {},\n pathname: \"\",\n pathnameBase: \"\",\n route\n }],\n route\n };\n}\n\nfunction getInternalRouterError(status, _temp4) {\n let {\n pathname,\n routeId,\n method,\n type\n } = _temp4 === void 0 ? {} : _temp4;\n let statusText = \"Unknown Server Error\";\n let errorMessage = \"Unknown @remix-run/router error\";\n\n if (status === 400) {\n statusText = \"Bad Request\";\n\n if (method && pathname && routeId) {\n errorMessage = \"You made a \" + method + \" request to \\\"\" + pathname + \"\\\" but \" + (\"did not provide a `loader` for route \\\"\" + routeId + \"\\\", \") + \"so there is no way to handle the request.\";\n } else if (type === \"defer-action\") {\n errorMessage = \"defer() is not supported in actions\";\n }\n } else if (status === 403) {\n statusText = \"Forbidden\";\n errorMessage = \"Route \\\"\" + routeId + \"\\\" does not match URL \\\"\" + pathname + \"\\\"\";\n } else if (status === 404) {\n statusText = \"Not Found\";\n errorMessage = \"No route matches URL \\\"\" + pathname + \"\\\"\";\n } else if (status === 405) {\n statusText = \"Method Not Allowed\";\n\n if (method && pathname && routeId) {\n errorMessage = \"You made a \" + method.toUpperCase() + \" request to \\\"\" + pathname + \"\\\" but \" + (\"did not provide an `action` for route \\\"\" + routeId + \"\\\", \") + \"so there is no way to handle the request.\";\n } else if (method) {\n errorMessage = \"Invalid request method \\\"\" + method.toUpperCase() + \"\\\"\";\n }\n }\n\n return new ErrorResponse(status || 500, statusText, new Error(errorMessage), true);\n} // Find any returned redirect errors, starting from the lowest match\n\n\nfunction findRedirect(results) {\n for (let i = results.length - 1; i >= 0; i--) {\n let result = results[i];\n\n if (isRedirectResult(result)) {\n return result;\n }\n }\n}\n\nfunction stripHashFromPath(path) {\n let parsedPath = typeof path === \"string\" ? parsePath(path) : path;\n return createPath(_extends({}, parsedPath, {\n hash: \"\"\n }));\n}\n\nfunction isHashChangeOnly(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash !== b.hash;\n}\n\nfunction isDeferredResult(result) {\n return result.type === ResultType.deferred;\n}\n\nfunction isErrorResult(result) {\n return result.type === ResultType.error;\n}\n\nfunction isRedirectResult(result) {\n return (result && result.type) === ResultType.redirect;\n}\n\nfunction isResponse(value) {\n return value != null && typeof value.status === \"number\" && typeof value.statusText === \"string\" && typeof value.headers === \"object\" && typeof value.body !== \"undefined\";\n}\n\nfunction isRedirectResponse(result) {\n if (!isResponse(result)) {\n return false;\n }\n\n let status = result.status;\n let location = result.headers.get(\"Location\");\n return status >= 300 && status <= 399 && location != null;\n}\n\nfunction isQueryRouteResponse(obj) {\n return obj && isResponse(obj.response) && (obj.type === ResultType.data || ResultType.error);\n}\n\nfunction isValidMethod(method) {\n return validRequestMethods.has(method);\n}\n\nfunction isMutationMethod(method) {\n return validMutationMethods.has(method);\n}\n\nasync function resolveDeferredResults(currentMatches, matchesToLoad, results, signal, isFetcher, currentLoaderData) {\n for (let index = 0; index < results.length; index++) {\n let result = results[index];\n let match = matchesToLoad[index];\n let currentMatch = currentMatches.find(m => m.route.id === match.route.id);\n let isRevalidatingLoader = currentMatch != null && !isNewRouteInstance(currentMatch, match) && (currentLoaderData && currentLoaderData[match.route.id]) !== undefined;\n\n if (isDeferredResult(result) && (isFetcher || isRevalidatingLoader)) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n await resolveDeferredData(result, signal, isFetcher).then(result => {\n if (result) {\n results[index] = result || results[index];\n }\n });\n }\n }\n}\n\nasync function resolveDeferredData(result, signal, unwrap) {\n if (unwrap === void 0) {\n unwrap = false;\n }\n\n let aborted = await result.deferredData.resolveData(signal);\n\n if (aborted) {\n return;\n }\n\n if (unwrap) {\n try {\n return {\n type: ResultType.data,\n data: result.deferredData.unwrappedData\n };\n } catch (e) {\n // Handle any TrackedPromise._error values encountered while unwrapping\n return {\n type: ResultType.error,\n error: e\n };\n }\n }\n\n return {\n type: ResultType.data,\n data: result.deferredData.data\n };\n}\n\nfunction hasNakedIndexQuery(search) {\n return new URLSearchParams(search).getAll(\"index\").some(v => v === \"\");\n} // Note: This should match the format exported by useMatches, so if you change\n// this please also change that :) Eventually we'll DRY this up\n\n\nfunction createUseMatchesMatch(match, loaderData) {\n let {\n route,\n pathname,\n params\n } = match;\n return {\n id: route.id,\n pathname,\n params,\n data: loaderData[route.id],\n handle: route.handle\n };\n}\n\nfunction getTargetMatch(matches, location) {\n let search = typeof location === \"string\" ? parsePath(location).search : location.search;\n\n if (matches[matches.length - 1].route.index && hasNakedIndexQuery(search || \"\")) {\n // Return the leaf index route when index is present\n return matches[matches.length - 1];\n } // Otherwise grab the deepest \"path contributing\" match (ignoring index and\n // pathless layout routes)\n\n\n let pathMatches = getPathContributingMatches(matches);\n return pathMatches[pathMatches.length - 1];\n} //#endregion\n\nexport { AbortedDeferredError, Action, ErrorResponse, IDLE_BLOCKER, IDLE_FETCHER, IDLE_NAVIGATION, UNSAFE_DEFERRED_SYMBOL, DeferredData as UNSAFE_DeferredData, convertRoutesToDataRoutes as UNSAFE_convertRoutesToDataRoutes, getPathContributingMatches as UNSAFE_getPathContributingMatches, createBrowserHistory, createHashHistory, createMemoryHistory, createPath, createRouter, createStaticHandler, defer, generatePath, getStaticContextFromError, getToPathname, invariant, isRouteErrorResponse, joinPaths, json, matchPath, matchRoutes, normalizePathname, parsePath, redirect, resolvePath, resolveTo, stripBasename, warning };\n//# sourceMappingURL=router.js.map\n","/**\n * React Router v6.8.1\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nimport { invariant, joinPaths, matchPath, UNSAFE_getPathContributingMatches, warning, resolveTo, parsePath, matchRoutes, Action, isRouteErrorResponse, createMemoryHistory, stripBasename, AbortedDeferredError, createRouter } from '@remix-run/router';\nexport { AbortedDeferredError, Action as NavigationType, createPath, defer, generatePath, isRouteErrorResponse, json, matchPath, matchRoutes, parsePath, redirect, resolvePath } from '@remix-run/router';\nimport * as React from 'react';\n\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n return _extends.apply(this, arguments);\n}\n\n/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n\nfunction isPolyfill(x, y) {\n return x === y && (x !== 0 || 1 / x === 1 / y) || x !== x && y !== y // eslint-disable-line no-self-compare\n ;\n}\n\nconst is = typeof Object.is === \"function\" ? Object.is : isPolyfill; // Intentionally not using named imports because Rollup uses dynamic\n// dispatch for CommonJS interop named imports.\n\nconst {\n useState,\n useEffect,\n useLayoutEffect,\n useDebugValue\n} = React;\nlet didWarnOld18Alpha = false;\nlet didWarnUncachedGetSnapshot = false; // Disclaimer: This shim breaks many of the rules of React, and only works\n// because of a very particular set of implementation details and assumptions\n// -- change any one of them and it will break. The most important assumption\n// is that updates are always synchronous, because concurrent rendering is\n// only available in versions of React that also have a built-in\n// useSyncExternalStore API. And we only use this shim when the built-in API\n// does not exist.\n//\n// Do not assume that the clever hacks used by this hook also work in general.\n// The point of this shim is to replace the need for hacks by other libraries.\n\nfunction useSyncExternalStore$2(subscribe, getSnapshot, // Note: The shim does not use getServerSnapshot, because pre-18 versions of\n// React do not expose a way to check if we're hydrating. So users of the shim\n// will need to track that themselves and return the correct value\n// from `getSnapshot`.\ngetServerSnapshot) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!didWarnOld18Alpha) {\n if (\"startTransition\" in React) {\n didWarnOld18Alpha = true;\n console.error(\"You are using an outdated, pre-release alpha of React 18 that \" + \"does not support useSyncExternalStore. The \" + \"use-sync-external-store shim will not work correctly. Upgrade \" + \"to a newer pre-release.\");\n }\n }\n } // Read the current snapshot from the store on every render. Again, this\n // breaks the rules of React, and only works here because of specific\n // implementation details, most importantly that updates are\n // always synchronous.\n\n\n const value = getSnapshot();\n\n if (process.env.NODE_ENV !== \"production\") {\n if (!didWarnUncachedGetSnapshot) {\n const cachedValue = getSnapshot();\n\n if (!is(value, cachedValue)) {\n console.error(\"The result of getSnapshot should be cached to avoid an infinite loop\");\n didWarnUncachedGetSnapshot = true;\n }\n }\n } // Because updates are synchronous, we don't queue them. Instead we force a\n // re-render whenever the subscribed state changes by updating an some\n // arbitrary useState hook. Then, during render, we call getSnapshot to read\n // the current value.\n //\n // Because we don't actually use the state returned by the useState hook, we\n // can save a bit of memory by storing other stuff in that slot.\n //\n // To implement the early bailout, we need to track some things on a mutable\n // object. Usually, we would put that in a useRef hook, but we can stash it in\n // our useState hook instead.\n //\n // To force a re-render, we call forceUpdate({inst}). That works because the\n // new object always fails an equality check.\n\n\n const [{\n inst\n }, forceUpdate] = useState({\n inst: {\n value,\n getSnapshot\n }\n }); // Track the latest getSnapshot function with a ref. This needs to be updated\n // in the layout phase so we can access it during the tearing check that\n // happens on subscribe.\n\n useLayoutEffect(() => {\n inst.value = value;\n inst.getSnapshot = getSnapshot; // Whenever getSnapshot or subscribe changes, we need to check in the\n // commit phase if there was an interleaved mutation. In concurrent mode\n // this can happen all the time, but even in synchronous mode, an earlier\n // effect may have mutated the store.\n\n if (checkIfSnapshotChanged(inst)) {\n // Force a re-render.\n forceUpdate({\n inst\n });\n } // eslint-disable-next-line react-hooks/exhaustive-deps\n\n }, [subscribe, value, getSnapshot]);\n useEffect(() => {\n // Check for changes right before subscribing. Subsequent changes will be\n // detected in the subscription handler.\n if (checkIfSnapshotChanged(inst)) {\n // Force a re-render.\n forceUpdate({\n inst\n });\n }\n\n const handleStoreChange = () => {\n // TODO: Because there is no cross-renderer API for batching updates, it's\n // up to the consumer of this library to wrap their subscription event\n // with unstable_batchedUpdates. Should we try to detect when this isn't\n // the case and print a warning in development?\n // The store changed. Check if the snapshot changed since the last time we\n // read from the store.\n if (checkIfSnapshotChanged(inst)) {\n // Force a re-render.\n forceUpdate({\n inst\n });\n }\n }; // Subscribe to the store and return a clean-up function.\n\n\n return subscribe(handleStoreChange); // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [subscribe]);\n useDebugValue(value);\n return value;\n}\n\nfunction checkIfSnapshotChanged(inst) {\n const latestGetSnapshot = inst.getSnapshot;\n const prevValue = inst.value;\n\n try {\n const nextValue = latestGetSnapshot();\n return !is(prevValue, nextValue);\n } catch (error) {\n return true;\n }\n}\n\n/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\nfunction useSyncExternalStore$1(subscribe, getSnapshot, getServerSnapshot) {\n // Note: The shim does not use getServerSnapshot, because pre-18 versions of\n // React do not expose a way to check if we're hydrating. So users of the shim\n // will need to track that themselves and return the correct value\n // from `getSnapshot`.\n return getSnapshot();\n}\n\n/**\n * Inlined into the react-router repo since use-sync-external-store does not\n * provide a UMD-compatible package, so we need this to be able to distribute\n * UMD react-router bundles\n */\nconst canUseDOM = !!(typeof window !== \"undefined\" && typeof window.document !== \"undefined\" && typeof window.document.createElement !== \"undefined\");\nconst isServerEnvironment = !canUseDOM;\nconst shim = isServerEnvironment ? useSyncExternalStore$1 : useSyncExternalStore$2;\nconst useSyncExternalStore = \"useSyncExternalStore\" in React ? (module => module.useSyncExternalStore)(React) : shim;\n\nconst DataRouterContext = /*#__PURE__*/React.createContext(null);\n\nif (process.env.NODE_ENV !== \"production\") {\n DataRouterContext.displayName = \"DataRouter\";\n}\n\nconst DataRouterStateContext = /*#__PURE__*/React.createContext(null);\n\nif (process.env.NODE_ENV !== \"production\") {\n DataRouterStateContext.displayName = \"DataRouterState\";\n}\n\nconst AwaitContext = /*#__PURE__*/React.createContext(null);\n\nif (process.env.NODE_ENV !== \"production\") {\n AwaitContext.displayName = \"Await\";\n}\n\nconst NavigationContext = /*#__PURE__*/React.createContext(null);\n\nif (process.env.NODE_ENV !== \"production\") {\n NavigationContext.displayName = \"Navigation\";\n}\n\nconst LocationContext = /*#__PURE__*/React.createContext(null);\n\nif (process.env.NODE_ENV !== \"production\") {\n LocationContext.displayName = \"Location\";\n}\n\nconst RouteContext = /*#__PURE__*/React.createContext({\n outlet: null,\n matches: []\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n RouteContext.displayName = \"Route\";\n}\n\nconst RouteErrorContext = /*#__PURE__*/React.createContext(null);\n\nif (process.env.NODE_ENV !== \"production\") {\n RouteErrorContext.displayName = \"RouteError\";\n}\n\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/hooks/use-href\n */\n\nfunction useHref(to, _temp) {\n let {\n relative\n } = _temp === void 0 ? {} : _temp;\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useHref() may be used only in the context of a component.\") : invariant(false) : void 0;\n let {\n basename,\n navigator\n } = React.useContext(NavigationContext);\n let {\n hash,\n pathname,\n search\n } = useResolvedPath(to, {\n relative\n });\n let joinedPathname = pathname; // If we're operating within a basename, prepend it to the pathname prior\n // to creating the href. If this is a root navigation, then just use the raw\n // basename which allows the basename to have full control over the presence\n // of a trailing slash on root links\n\n if (basename !== \"/\") {\n joinedPathname = pathname === \"/\" ? basename : joinPaths([basename, pathname]);\n }\n\n return navigator.createHref({\n pathname: joinedPathname,\n search,\n hash\n });\n}\n/**\n * Returns true if this component is a descendant of a .\n *\n * @see https://reactrouter.com/hooks/use-in-router-context\n */\n\nfunction useInRouterContext() {\n return React.useContext(LocationContext) != null;\n}\n/**\n * Returns the current location object, which represents the current URL in web\n * browsers.\n *\n * Note: If you're using this it may mean you're doing some of your own\n * \"routing\" in your app, and we'd like to know what your use case is. We may\n * be able to provide something higher-level to better suit your needs.\n *\n * @see https://reactrouter.com/hooks/use-location\n */\n\nfunction useLocation() {\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useLocation() may be used only in the context of a component.\") : invariant(false) : void 0;\n return React.useContext(LocationContext).location;\n}\n/**\n * Returns the current navigation action which describes how the router came to\n * the current location, either by a pop, push, or replace on the history stack.\n *\n * @see https://reactrouter.com/hooks/use-navigation-type\n */\n\nfunction useNavigationType() {\n return React.useContext(LocationContext).navigationType;\n}\n/**\n * Returns a PathMatch object if the given pattern matches the current URL.\n * This is useful for components that need to know \"active\" state, e.g.\n * .\n *\n * @see https://reactrouter.com/hooks/use-match\n */\n\nfunction useMatch(pattern) {\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useMatch() may be used only in the context of a component.\") : invariant(false) : void 0;\n let {\n pathname\n } = useLocation();\n return React.useMemo(() => matchPath(pattern, pathname), [pathname, pattern]);\n}\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\n\n/**\n * Returns an imperative method for changing the location. Used by s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/hooks/use-navigate\n */\nfunction useNavigate() {\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useNavigate() may be used only in the context of a component.\") : invariant(false) : void 0;\n let {\n basename,\n navigator\n } = React.useContext(NavigationContext);\n let {\n matches\n } = React.useContext(RouteContext);\n let {\n pathname: locationPathname\n } = useLocation();\n let routePathnamesJson = JSON.stringify(UNSAFE_getPathContributingMatches(matches).map(match => match.pathnameBase));\n let activeRef = React.useRef(false);\n React.useEffect(() => {\n activeRef.current = true;\n });\n let navigate = React.useCallback(function (to, options) {\n if (options === void 0) {\n options = {};\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(activeRef.current, \"You should call navigate() in a React.useEffect(), not when \" + \"your component is first rendered.\") : void 0;\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n\n let path = resolveTo(to, JSON.parse(routePathnamesJson), locationPathname, options.relative === \"path\"); // If we're operating within a basename, prepend it to the pathname prior\n // to handing off to history. If this is a root navigation, then we\n // navigate to the raw basename which allows the basename to have full\n // control over the presence of a trailing slash on root links\n\n if (basename !== \"/\") {\n path.pathname = path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n\n (!!options.replace ? navigator.replace : navigator.push)(path, options.state, options);\n }, [basename, navigator, routePathnamesJson, locationPathname]);\n return navigate;\n}\nconst OutletContext = /*#__PURE__*/React.createContext(null);\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/hooks/use-outlet-context\n */\n\nfunction useOutletContext() {\n return React.useContext(OutletContext);\n}\n/**\n * Returns the element for the child route at this level of the route\n * hierarchy. Used internally by to render child routes.\n *\n * @see https://reactrouter.com/hooks/use-outlet\n */\n\nfunction useOutlet(context) {\n let outlet = React.useContext(RouteContext).outlet;\n\n if (outlet) {\n return /*#__PURE__*/React.createElement(OutletContext.Provider, {\n value: context\n }, outlet);\n }\n\n return outlet;\n}\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/hooks/use-params\n */\n\nfunction useParams() {\n let {\n matches\n } = React.useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? routeMatch.params : {};\n}\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/hooks/use-resolved-path\n */\n\nfunction useResolvedPath(to, _temp2) {\n let {\n relative\n } = _temp2 === void 0 ? {} : _temp2;\n let {\n matches\n } = React.useContext(RouteContext);\n let {\n pathname: locationPathname\n } = useLocation();\n let routePathnamesJson = JSON.stringify(UNSAFE_getPathContributingMatches(matches).map(match => match.pathnameBase));\n return React.useMemo(() => resolveTo(to, JSON.parse(routePathnamesJson), locationPathname, relative === \"path\"), [to, routePathnamesJson, locationPathname, relative]);\n}\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an to render their child route's\n * element.\n *\n * @see https://reactrouter.com/hooks/use-routes\n */\n\nfunction useRoutes(routes, locationArg) {\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useRoutes() may be used only in the context of a component.\") : invariant(false) : void 0;\n let {\n navigator\n } = React.useContext(NavigationContext);\n let dataRouterStateContext = React.useContext(DataRouterStateContext);\n let {\n matches: parentMatches\n } = React.useContext(RouteContext);\n let routeMatch = parentMatches[parentMatches.length - 1];\n let parentParams = routeMatch ? routeMatch.params : {};\n let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n let parentRoute = routeMatch && routeMatch.route;\n\n if (process.env.NODE_ENV !== \"production\") {\n // You won't get a warning about 2 different under a \n // without a trailing *, but this is a best-effort warning anyway since we\n // cannot even give the warning unless they land at the parent route.\n //\n // Example:\n //\n // \n // {/* This route path MUST end with /* because otherwise\n // it will never match /blog/post/123 */}\n // } />\n // } />\n // \n //\n // function Blog() {\n // return (\n // \n // } />\n // \n // );\n // }\n let parentPath = parentRoute && parentRoute.path || \"\";\n warningOnce(parentPathname, !parentRoute || parentPath.endsWith(\"*\"), \"You rendered descendant (or called `useRoutes()`) at \" + (\"\\\"\" + parentPathname + \"\\\" (under ) but the \") + \"parent route path has no trailing \\\"*\\\". This means if you navigate \" + \"deeper, the parent won't match anymore and therefore the child \" + \"routes will never render.\\n\\n\" + (\"Please change the parent to .\"));\n }\n\n let locationFromContext = useLocation();\n let location;\n\n if (locationArg) {\n var _parsedLocationArg$pa;\n\n let parsedLocationArg = typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n !(parentPathnameBase === \"/\" || ((_parsedLocationArg$pa = parsedLocationArg.pathname) == null ? void 0 : _parsedLocationArg$pa.startsWith(parentPathnameBase))) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"When overriding the location using `` or `useRoutes(routes, location)`, \" + \"the location pathname must begin with the portion of the URL pathname that was \" + (\"matched by all parent routes. The current pathname base is \\\"\" + parentPathnameBase + \"\\\" \") + (\"but pathname \\\"\" + parsedLocationArg.pathname + \"\\\" was given in the `location` prop.\")) : invariant(false) : void 0;\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n\n let pathname = location.pathname || \"/\";\n let remainingPathname = parentPathnameBase === \"/\" ? pathname : pathname.slice(parentPathnameBase.length) || \"/\";\n let matches = matchRoutes(routes, {\n pathname: remainingPathname\n });\n\n if (process.env.NODE_ENV !== \"production\") {\n process.env.NODE_ENV !== \"production\" ? warning(parentRoute || matches != null, \"No routes matched location \\\"\" + location.pathname + location.search + location.hash + \"\\\" \") : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(matches == null || matches[matches.length - 1].route.element !== undefined, \"Matched leaf route at location \\\"\" + location.pathname + location.search + location.hash + \"\\\" does not have an element. \" + \"This means it will render an with a null value by default resulting in an \\\"empty\\\" page.\") : void 0;\n }\n\n let renderedMatches = _renderMatches(matches && matches.map(match => Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([parentPathnameBase, // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation ? navigator.encodeLocation(match.pathname).pathname : match.pathname]),\n pathnameBase: match.pathnameBase === \"/\" ? parentPathnameBase : joinPaths([parentPathnameBase, // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation ? navigator.encodeLocation(match.pathnameBase).pathname : match.pathnameBase])\n })), parentMatches, dataRouterStateContext || undefined); // When a user passes in a `locationArg`, the associated routes need to\n // be wrapped in a new `LocationContext.Provider` in order for `useLocation`\n // to use the scoped location instead of the global location.\n\n\n if (locationArg && renderedMatches) {\n return /*#__PURE__*/React.createElement(LocationContext.Provider, {\n value: {\n location: _extends({\n pathname: \"/\",\n search: \"\",\n hash: \"\",\n state: null,\n key: \"default\"\n }, location),\n navigationType: Action.Pop\n }\n }, renderedMatches);\n }\n\n return renderedMatches;\n}\n\nfunction DefaultErrorElement() {\n let error = useRouteError();\n let message = isRouteErrorResponse(error) ? error.status + \" \" + error.statusText : error instanceof Error ? error.message : JSON.stringify(error);\n let stack = error instanceof Error ? error.stack : null;\n let lightgrey = \"rgba(200,200,200, 0.5)\";\n let preStyles = {\n padding: \"0.5rem\",\n backgroundColor: lightgrey\n };\n let codeStyles = {\n padding: \"2px 4px\",\n backgroundColor: lightgrey\n };\n let devInfo = null;\n\n if (process.env.NODE_ENV !== \"production\") {\n devInfo = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"p\", null, \"\\uD83D\\uDCBF Hey developer \\uD83D\\uDC4B\"), /*#__PURE__*/React.createElement(\"p\", null, \"You can provide a way better UX than this when your app throws errors by providing your own\\xA0\", /*#__PURE__*/React.createElement(\"code\", {\n style: codeStyles\n }, \"errorElement\"), \" props on\\xA0\", /*#__PURE__*/React.createElement(\"code\", {\n style: codeStyles\n }, \"\")));\n }\n\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"h2\", null, \"Unexpected Application Error!\"), /*#__PURE__*/React.createElement(\"h3\", {\n style: {\n fontStyle: \"italic\"\n }\n }, message), stack ? /*#__PURE__*/React.createElement(\"pre\", {\n style: preStyles\n }, stack) : null, devInfo);\n}\n\nclass RenderErrorBoundary extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n location: props.location,\n error: props.error\n };\n }\n\n static getDerivedStateFromError(error) {\n return {\n error: error\n };\n }\n\n static getDerivedStateFromProps(props, state) {\n // When we get into an error state, the user will likely click \"back\" to the\n // previous page that didn't have an error. Because this wraps the entire\n // application, that will have no effect--the error page continues to display.\n // This gives us a mechanism to recover from the error when the location changes.\n //\n // Whether we're in an error state or not, we update the location in state\n // so that when we are in an error state, it gets reset when a new location\n // comes in and the user recovers from the error.\n if (state.location !== props.location) {\n return {\n error: props.error,\n location: props.location\n };\n } // If we're not changing locations, preserve the location but still surface\n // any new errors that may come through. We retain the existing error, we do\n // this because the error provided from the app state may be cleared without\n // the location changing.\n\n\n return {\n error: props.error || state.error,\n location: state.location\n };\n }\n\n componentDidCatch(error, errorInfo) {\n console.error(\"React Router caught the following error during render\", error, errorInfo);\n }\n\n render() {\n return this.state.error ? /*#__PURE__*/React.createElement(RouteContext.Provider, {\n value: this.props.routeContext\n }, /*#__PURE__*/React.createElement(RouteErrorContext.Provider, {\n value: this.state.error,\n children: this.props.component\n })) : this.props.children;\n }\n\n}\n\nfunction RenderedRoute(_ref) {\n let {\n routeContext,\n match,\n children\n } = _ref;\n let dataRouterContext = React.useContext(DataRouterContext); // Track how deep we got in our render pass to emulate SSR componentDidCatch\n // in a DataStaticRouter\n\n if (dataRouterContext && dataRouterContext.static && dataRouterContext.staticContext && match.route.errorElement) {\n dataRouterContext.staticContext._deepestRenderedBoundaryId = match.route.id;\n }\n\n return /*#__PURE__*/React.createElement(RouteContext.Provider, {\n value: routeContext\n }, children);\n}\n\nfunction _renderMatches(matches, parentMatches, dataRouterState) {\n if (parentMatches === void 0) {\n parentMatches = [];\n }\n\n if (matches == null) {\n if (dataRouterState != null && dataRouterState.errors) {\n // Don't bail if we have data router errors so we can render them in the\n // boundary. Use the pre-matched (or shimmed) matches\n matches = dataRouterState.matches;\n } else {\n return null;\n }\n }\n\n let renderedMatches = matches; // If we have data errors, trim matches to the highest error boundary\n\n let errors = dataRouterState == null ? void 0 : dataRouterState.errors;\n\n if (errors != null) {\n let errorIndex = renderedMatches.findIndex(m => m.route.id && (errors == null ? void 0 : errors[m.route.id]));\n !(errorIndex >= 0) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Could not find a matching route for the current errors: \" + errors) : invariant(false) : void 0;\n renderedMatches = renderedMatches.slice(0, Math.min(renderedMatches.length, errorIndex + 1));\n }\n\n return renderedMatches.reduceRight((outlet, match, index) => {\n let error = match.route.id ? errors == null ? void 0 : errors[match.route.id] : null; // Only data routers handle errors\n\n let errorElement = dataRouterState ? match.route.errorElement || /*#__PURE__*/React.createElement(DefaultErrorElement, null) : null;\n let matches = parentMatches.concat(renderedMatches.slice(0, index + 1));\n\n let getChildren = () => /*#__PURE__*/React.createElement(RenderedRoute, {\n match: match,\n routeContext: {\n outlet,\n matches\n }\n }, error ? errorElement : match.route.element !== undefined ? match.route.element : outlet); // Only wrap in an error boundary within data router usages when we have an\n // errorElement on this route. Otherwise let it bubble up to an ancestor\n // errorElement\n\n\n return dataRouterState && (match.route.errorElement || index === 0) ? /*#__PURE__*/React.createElement(RenderErrorBoundary, {\n location: dataRouterState.location,\n component: errorElement,\n error: error,\n children: getChildren(),\n routeContext: {\n outlet: null,\n matches\n }\n }) : getChildren();\n }, null);\n}\nvar DataRouterHook;\n\n(function (DataRouterHook) {\n DataRouterHook[\"UseBlocker\"] = \"useBlocker\";\n DataRouterHook[\"UseRevalidator\"] = \"useRevalidator\";\n})(DataRouterHook || (DataRouterHook = {}));\n\nvar DataRouterStateHook;\n\n(function (DataRouterStateHook) {\n DataRouterStateHook[\"UseLoaderData\"] = \"useLoaderData\";\n DataRouterStateHook[\"UseActionData\"] = \"useActionData\";\n DataRouterStateHook[\"UseRouteError\"] = \"useRouteError\";\n DataRouterStateHook[\"UseNavigation\"] = \"useNavigation\";\n DataRouterStateHook[\"UseRouteLoaderData\"] = \"useRouteLoaderData\";\n DataRouterStateHook[\"UseMatches\"] = \"useMatches\";\n DataRouterStateHook[\"UseRevalidator\"] = \"useRevalidator\";\n})(DataRouterStateHook || (DataRouterStateHook = {}));\n\nfunction getDataRouterConsoleError(hookName) {\n return hookName + \" must be used within a data router. See https://reactrouter.com/routers/picking-a-router.\";\n}\n\nfunction useDataRouterContext(hookName) {\n let ctx = React.useContext(DataRouterContext);\n !ctx ? process.env.NODE_ENV !== \"production\" ? invariant(false, getDataRouterConsoleError(hookName)) : invariant(false) : void 0;\n return ctx;\n}\n\nfunction useDataRouterState(hookName) {\n let state = React.useContext(DataRouterStateContext);\n !state ? process.env.NODE_ENV !== \"production\" ? invariant(false, getDataRouterConsoleError(hookName)) : invariant(false) : void 0;\n return state;\n}\n\nfunction useRouteContext(hookName) {\n let route = React.useContext(RouteContext);\n !route ? process.env.NODE_ENV !== \"production\" ? invariant(false, getDataRouterConsoleError(hookName)) : invariant(false) : void 0;\n return route;\n}\n\nfunction useCurrentRouteId(hookName) {\n let route = useRouteContext(hookName);\n let thisRoute = route.matches[route.matches.length - 1];\n !thisRoute.route.id ? process.env.NODE_ENV !== \"production\" ? invariant(false, hookName + \" can only be used on routes that contain a unique \\\"id\\\"\") : invariant(false) : void 0;\n return thisRoute.route.id;\n}\n/**\n * Returns the current navigation, defaulting to an \"idle\" navigation when\n * no navigation is in progress\n */\n\n\nfunction useNavigation() {\n let state = useDataRouterState(DataRouterStateHook.UseNavigation);\n return state.navigation;\n}\n/**\n * Returns a revalidate function for manually triggering revalidation, as well\n * as the current state of any manual revalidations\n */\n\nfunction useRevalidator() {\n let dataRouterContext = useDataRouterContext(DataRouterHook.UseRevalidator);\n let state = useDataRouterState(DataRouterStateHook.UseRevalidator);\n return {\n revalidate: dataRouterContext.router.revalidate,\n state: state.revalidation\n };\n}\n/**\n * Returns the active route matches, useful for accessing loaderData for\n * parent/child routes or the route \"handle\" property\n */\n\nfunction useMatches() {\n let {\n matches,\n loaderData\n } = useDataRouterState(DataRouterStateHook.UseMatches);\n return React.useMemo(() => matches.map(match => {\n let {\n pathname,\n params\n } = match; // Note: This structure matches that created by createUseMatchesMatch\n // in the @remix-run/router , so if you change this please also change\n // that :) Eventually we'll DRY this up\n\n return {\n id: match.route.id,\n pathname,\n params,\n data: loaderData[match.route.id],\n handle: match.route.handle\n };\n }), [matches, loaderData]);\n}\n/**\n * Returns the loader data for the nearest ancestor Route loader\n */\n\nfunction useLoaderData() {\n let state = useDataRouterState(DataRouterStateHook.UseLoaderData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n\n if (state.errors && state.errors[routeId] != null) {\n console.error(\"You cannot `useLoaderData` in an errorElement (routeId: \" + routeId + \")\");\n return undefined;\n }\n\n return state.loaderData[routeId];\n}\n/**\n * Returns the loaderData for the given routeId\n */\n\nfunction useRouteLoaderData(routeId) {\n let state = useDataRouterState(DataRouterStateHook.UseRouteLoaderData);\n return state.loaderData[routeId];\n}\n/**\n * Returns the action data for the nearest ancestor Route action\n */\n\nfunction useActionData() {\n let state = useDataRouterState(DataRouterStateHook.UseActionData);\n let route = React.useContext(RouteContext);\n !route ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"useActionData must be used inside a RouteContext\") : invariant(false) : void 0;\n return Object.values((state == null ? void 0 : state.actionData) || {})[0];\n}\n/**\n * Returns the nearest ancestor Route error, which could be a loader/action\n * error or a render error. This is intended to be called from your\n * errorElement to display a proper error message.\n */\n\nfunction useRouteError() {\n var _state$errors;\n\n let error = React.useContext(RouteErrorContext);\n let state = useDataRouterState(DataRouterStateHook.UseRouteError);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseRouteError); // If this was a render error, we put it in a RouteError context inside\n // of RenderErrorBoundary\n\n if (error) {\n return error;\n } // Otherwise look for errors from our data router state\n\n\n return (_state$errors = state.errors) == null ? void 0 : _state$errors[routeId];\n}\n/**\n * Returns the happy-path data from the nearest ancestor value\n */\n\nfunction useAsyncValue() {\n let value = React.useContext(AwaitContext);\n return value == null ? void 0 : value._data;\n}\n/**\n * Returns the error from the nearest ancestor value\n */\n\nfunction useAsyncError() {\n let value = React.useContext(AwaitContext);\n return value == null ? void 0 : value._error;\n}\nlet blockerId = 0;\n/**\n * Allow the application to block navigations within the SPA and present the\n * user a confirmation dialog to confirm the navigation. Mostly used to avoid\n * using half-filled form data. This does not handle hard-reloads or\n * cross-origin navigations.\n */\n\nfunction useBlocker(shouldBlock) {\n let {\n router\n } = useDataRouterContext(DataRouterHook.UseBlocker);\n let [blockerKey] = React.useState(() => String(++blockerId));\n let blockerFunction = React.useCallback(args => {\n return typeof shouldBlock === \"function\" ? !!shouldBlock(args) : !!shouldBlock;\n }, [shouldBlock]);\n let blocker = router.getBlocker(blockerKey, blockerFunction); // Cleanup on unmount\n\n React.useEffect(() => () => router.deleteBlocker(blockerKey), [router, blockerKey]);\n return blocker;\n}\nconst alreadyWarned = {};\n\nfunction warningOnce(key, cond, message) {\n if (!cond && !alreadyWarned[key]) {\n alreadyWarned[key] = true;\n process.env.NODE_ENV !== \"production\" ? warning(false, message) : void 0;\n }\n}\n\n/**\n * Given a Remix Router instance, render the appropriate UI\n */\nfunction RouterProvider(_ref) {\n let {\n fallbackElement,\n router\n } = _ref;\n // Sync router state to our component state to force re-renders\n let state = useSyncExternalStore(router.subscribe, () => router.state, // We have to provide this so React@18 doesn't complain during hydration,\n // but we pass our serialized hydration data into the router so state here\n // is already synced with what the server saw\n () => router.state);\n let navigator = React.useMemo(() => {\n return {\n createHref: router.createHref,\n encodeLocation: router.encodeLocation,\n go: n => router.navigate(n),\n push: (to, state, opts) => router.navigate(to, {\n state,\n preventScrollReset: opts == null ? void 0 : opts.preventScrollReset\n }),\n replace: (to, state, opts) => router.navigate(to, {\n replace: true,\n state,\n preventScrollReset: opts == null ? void 0 : opts.preventScrollReset\n })\n };\n }, [router]);\n let basename = router.basename || \"/\"; // The fragment and {null} here are important! We need them to keep React 18's\n // useId happy when we are server-rendering since we may have a \n * ```\n *\n * Elements by their ID are made available by browsers on the `window` object,\n * which is a security risk.\n * Using a prefix solves this problem.\n *\n * More information on how to handle clobbering and the prefix is explained in\n * Example: headings (DOM clobbering) in `rehype-sanitize`.\n *\n * ###### Unknown nodes\n *\n * Unknown nodes are nodes with a type that isn’t in `handlers` or `passThrough`.\n * The default behavior for unknown nodes is:\n *\n * * when the node has a `value` (and doesn’t have `data.hName`,\n * `data.hProperties`, or `data.hChildren`, see later), create a hast `text`\n * node\n * * otherwise, create a `
` element (which could be changed with\n * `data.hName`), with its children mapped from mdast to hast as well\n *\n * This behavior can be changed by passing an `unknownHandler`.\n *\n * @param {MdastNodes} tree\n * mdast tree.\n * @param {Options | null | undefined} [options]\n * Configuration.\n * @returns {HastNodes | null | undefined}\n * hast tree.\n */\n// To do: next major: always return a single `root`.\nexport function toHast(tree, options) {\n const state = createState(tree, options)\n const node = state.one(tree, null)\n const foot = footer(state)\n\n if (foot) {\n // @ts-expect-error If there’s a footer, there were definitions, meaning block\n // content.\n // So assume `node` is a parent node.\n node.children.push({type: 'text', value: '\\n'}, foot)\n }\n\n // To do: next major: always return root?\n return Array.isArray(node) ? {type: 'root', children: node} : node\n}\n","/**\n * @typedef {import('hast').Root} HastRoot\n * @typedef {import('mdast').Root} MdastRoot\n * @typedef {import('mdast-util-to-hast').Options} Options\n * @typedef {import('unified').Processor} Processor\n *\n * @typedef {import('mdast-util-to-hast')} DoNotTouchAsThisImportIncludesRawInTree\n */\n\nimport {toHast} from 'mdast-util-to-hast'\n\n// Note: the `` overload doesn’t seem to work :'(\n\n/**\n * Plugin that turns markdown into HTML to support rehype.\n *\n * * If a destination processor is given, that processor runs with a new HTML\n * (hast) tree (bridge-mode).\n * As the given processor runs with a hast tree, and rehype plugins support\n * hast, that means rehype plugins can be used with the given processor.\n * The hast tree is discarded in the end.\n * It’s highly unlikely that you want to do this.\n * * The common case is to not pass a destination processor, in which case the\n * current processor continues running with a new HTML (hast) tree\n * (mutate-mode).\n * As the current processor continues with a hast tree, and rehype plugins\n * support hast, that means rehype plugins can be used after\n * `remark-rehype`.\n * It’s likely that this is what you want to do.\n *\n * @param destination\n * Optional unified processor.\n * @param options\n * Options passed to `mdast-util-to-hast`.\n */\nconst remarkRehype =\n /** @type {(import('unified').Plugin<[Processor, Options?]|[null|undefined, Options?]|[Options]|[], MdastRoot>)} */\n (\n function (destination, options) {\n return destination && 'run' in destination\n ? bridge(destination, options)\n : mutate(destination || options)\n }\n )\n\nexport default remarkRehype\n\n/**\n * Bridge-mode.\n * Runs the destination with the new hast tree.\n *\n * @type {import('unified').Plugin<[Processor, Options?], MdastRoot>}\n */\nfunction bridge(destination, options) {\n return (node, file, next) => {\n destination.run(toHast(node, options), file, (error) => {\n next(error)\n })\n }\n}\n\n/**\n * Mutate-mode.\n * Further plugins run on the hast tree.\n *\n * @type {import('unified').Plugin<[Options?]|void[], MdastRoot, HastRoot>}\n */\nfunction mutate(options) {\n // @ts-expect-error: assume a corresponding node is returned by `toHast`.\n return (node) => toHast(node, options)\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * @typedef {import('./info.js').Info} Info\n * @typedef {Record} Properties\n * @typedef {Record} Normal\n */\n\nexport class Schema {\n /**\n * @constructor\n * @param {Properties} property\n * @param {Normal} normal\n * @param {string} [space]\n */\n constructor(property, normal, space) {\n this.property = property\n this.normal = normal\n if (space) {\n this.space = space\n }\n }\n}\n\n/** @type {Properties} */\nSchema.prototype.property = {}\n/** @type {Normal} */\nSchema.prototype.normal = {}\n/** @type {string|null} */\nSchema.prototype.space = null\n","/**\n * @typedef {import('./schema.js').Properties} Properties\n * @typedef {import('./schema.js').Normal} Normal\n */\n\nimport {Schema} from './schema.js'\n\n/**\n * @param {Schema[]} definitions\n * @param {string} [space]\n * @returns {Schema}\n */\nexport function merge(definitions, space) {\n /** @type {Properties} */\n const property = {}\n /** @type {Normal} */\n const normal = {}\n let index = -1\n\n while (++index < definitions.length) {\n Object.assign(property, definitions[index].property)\n Object.assign(normal, definitions[index].normal)\n }\n\n return new Schema(property, normal, space)\n}\n","/**\n * @param {string} value\n * @returns {string}\n */\nexport function normalize(value) {\n return value.toLowerCase()\n}\n","export class Info {\n /**\n * @constructor\n * @param {string} property\n * @param {string} attribute\n */\n constructor(property, attribute) {\n /** @type {string} */\n this.property = property\n /** @type {string} */\n this.attribute = attribute\n }\n}\n\n/** @type {string|null} */\nInfo.prototype.space = null\nInfo.prototype.boolean = false\nInfo.prototype.booleanish = false\nInfo.prototype.overloadedBoolean = false\nInfo.prototype.number = false\nInfo.prototype.commaSeparated = false\nInfo.prototype.spaceSeparated = false\nInfo.prototype.commaOrSpaceSeparated = false\nInfo.prototype.mustUseProperty = false\nInfo.prototype.defined = false\n","let powers = 0\n\nexport const boolean = increment()\nexport const booleanish = increment()\nexport const overloadedBoolean = increment()\nexport const number = increment()\nexport const spaceSeparated = increment()\nexport const commaSeparated = increment()\nexport const commaOrSpaceSeparated = increment()\n\nfunction increment() {\n return 2 ** ++powers\n}\n","import {Info} from './info.js'\nimport * as types from './types.js'\n\n/** @type {Array} */\n// @ts-expect-error: hush.\nconst checks = Object.keys(types)\n\nexport class DefinedInfo extends Info {\n /**\n * @constructor\n * @param {string} property\n * @param {string} attribute\n * @param {number|null} [mask]\n * @param {string} [space]\n */\n constructor(property, attribute, mask, space) {\n let index = -1\n\n super(property, attribute)\n\n mark(this, 'space', space)\n\n if (typeof mask === 'number') {\n while (++index < checks.length) {\n const check = checks[index]\n mark(this, checks[index], (mask & types[check]) === types[check])\n }\n }\n }\n}\n\nDefinedInfo.prototype.defined = true\n\n/**\n * @param {DefinedInfo} values\n * @param {string} key\n * @param {unknown} value\n */\nfunction mark(values, key, value) {\n if (value) {\n // @ts-expect-error: assume `value` matches the expected value of `key`.\n values[key] = value\n }\n}\n","/**\n * @typedef {import('./schema.js').Properties} Properties\n * @typedef {import('./schema.js').Normal} Normal\n *\n * @typedef {Record} Attributes\n *\n * @typedef {Object} Definition\n * @property {Record} properties\n * @property {(attributes: Attributes, property: string) => string} transform\n * @property {string} [space]\n * @property {Attributes} [attributes]\n * @property {Array} [mustUseProperty]\n */\n\nimport {normalize} from '../normalize.js'\nimport {Schema} from './schema.js'\nimport {DefinedInfo} from './defined-info.js'\n\nconst own = {}.hasOwnProperty\n\n/**\n * @param {Definition} definition\n * @returns {Schema}\n */\nexport function create(definition) {\n /** @type {Properties} */\n const property = {}\n /** @type {Normal} */\n const normal = {}\n /** @type {string} */\n let prop\n\n for (prop in definition.properties) {\n if (own.call(definition.properties, prop)) {\n const value = definition.properties[prop]\n const info = new DefinedInfo(\n prop,\n definition.transform(definition.attributes || {}, prop),\n value,\n definition.space\n )\n\n if (\n definition.mustUseProperty &&\n definition.mustUseProperty.includes(prop)\n ) {\n info.mustUseProperty = true\n }\n\n property[prop] = info\n\n normal[normalize(prop)] = prop\n normal[normalize(info.attribute)] = prop\n }\n }\n\n return new Schema(property, normal, definition.space)\n}\n","import {create} from './util/create.js'\n\nexport const xlink = create({\n space: 'xlink',\n transform(_, prop) {\n return 'xlink:' + prop.slice(5).toLowerCase()\n },\n properties: {\n xLinkActuate: null,\n xLinkArcRole: null,\n xLinkHref: null,\n xLinkRole: null,\n xLinkShow: null,\n xLinkTitle: null,\n xLinkType: null\n }\n})\n","import {create} from './util/create.js'\n\nexport const xml = create({\n space: 'xml',\n transform(_, prop) {\n return 'xml:' + prop.slice(3).toLowerCase()\n },\n properties: {xmlLang: null, xmlBase: null, xmlSpace: null}\n})\n","/**\n * @param {Record} attributes\n * @param {string} attribute\n * @returns {string}\n */\nexport function caseSensitiveTransform(attributes, attribute) {\n return attribute in attributes ? attributes[attribute] : attribute\n}\n","import {caseSensitiveTransform} from './case-sensitive-transform.js'\n\n/**\n * @param {Record} attributes\n * @param {string} property\n * @returns {string}\n */\nexport function caseInsensitiveTransform(attributes, property) {\n return caseSensitiveTransform(attributes, property.toLowerCase())\n}\n","import {create} from './util/create.js'\nimport {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\n\nexport const xmlns = create({\n space: 'xmlns',\n attributes: {xmlnsxlink: 'xmlns:xlink'},\n transform: caseInsensitiveTransform,\n properties: {xmlns: null, xmlnsXLink: null}\n})\n","import {booleanish, number, spaceSeparated} from './util/types.js'\nimport {create} from './util/create.js'\n\nexport const aria = create({\n transform(_, prop) {\n return prop === 'role' ? prop : 'aria-' + prop.slice(4).toLowerCase()\n },\n properties: {\n ariaActiveDescendant: null,\n ariaAtomic: booleanish,\n ariaAutoComplete: null,\n ariaBusy: booleanish,\n ariaChecked: booleanish,\n ariaColCount: number,\n ariaColIndex: number,\n ariaColSpan: number,\n ariaControls: spaceSeparated,\n ariaCurrent: null,\n ariaDescribedBy: spaceSeparated,\n ariaDetails: null,\n ariaDisabled: booleanish,\n ariaDropEffect: spaceSeparated,\n ariaErrorMessage: null,\n ariaExpanded: booleanish,\n ariaFlowTo: spaceSeparated,\n ariaGrabbed: booleanish,\n ariaHasPopup: null,\n ariaHidden: booleanish,\n ariaInvalid: null,\n ariaKeyShortcuts: null,\n ariaLabel: null,\n ariaLabelledBy: spaceSeparated,\n ariaLevel: number,\n ariaLive: null,\n ariaModal: booleanish,\n ariaMultiLine: booleanish,\n ariaMultiSelectable: booleanish,\n ariaOrientation: null,\n ariaOwns: spaceSeparated,\n ariaPlaceholder: null,\n ariaPosInSet: number,\n ariaPressed: booleanish,\n ariaReadOnly: booleanish,\n ariaRelevant: null,\n ariaRequired: booleanish,\n ariaRoleDescription: spaceSeparated,\n ariaRowCount: number,\n ariaRowIndex: number,\n ariaRowSpan: number,\n ariaSelected: booleanish,\n ariaSetSize: number,\n ariaSort: null,\n ariaValueMax: number,\n ariaValueMin: number,\n ariaValueNow: number,\n ariaValueText: null,\n role: null\n }\n})\n","import {\n boolean,\n overloadedBoolean,\n booleanish,\n number,\n spaceSeparated,\n commaSeparated\n} from './util/types.js'\nimport {create} from './util/create.js'\nimport {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\n\nexport const html = create({\n space: 'html',\n attributes: {\n acceptcharset: 'accept-charset',\n classname: 'class',\n htmlfor: 'for',\n httpequiv: 'http-equiv'\n },\n transform: caseInsensitiveTransform,\n mustUseProperty: ['checked', 'multiple', 'muted', 'selected'],\n properties: {\n // Standard Properties.\n abbr: null,\n accept: commaSeparated,\n acceptCharset: spaceSeparated,\n accessKey: spaceSeparated,\n action: null,\n allow: null,\n allowFullScreen: boolean,\n allowPaymentRequest: boolean,\n allowUserMedia: boolean,\n alt: null,\n as: null,\n async: boolean,\n autoCapitalize: null,\n autoComplete: spaceSeparated,\n autoFocus: boolean,\n autoPlay: boolean,\n capture: boolean,\n charSet: null,\n checked: boolean,\n cite: null,\n className: spaceSeparated,\n cols: number,\n colSpan: null,\n content: null,\n contentEditable: booleanish,\n controls: boolean,\n controlsList: spaceSeparated,\n coords: number | commaSeparated,\n crossOrigin: null,\n data: null,\n dateTime: null,\n decoding: null,\n default: boolean,\n defer: boolean,\n dir: null,\n dirName: null,\n disabled: boolean,\n download: overloadedBoolean,\n draggable: booleanish,\n encType: null,\n enterKeyHint: null,\n form: null,\n formAction: null,\n formEncType: null,\n formMethod: null,\n formNoValidate: boolean,\n formTarget: null,\n headers: spaceSeparated,\n height: number,\n hidden: boolean,\n high: number,\n href: null,\n hrefLang: null,\n htmlFor: spaceSeparated,\n httpEquiv: spaceSeparated,\n id: null,\n imageSizes: null,\n imageSrcSet: null,\n inputMode: null,\n integrity: null,\n is: null,\n isMap: boolean,\n itemId: null,\n itemProp: spaceSeparated,\n itemRef: spaceSeparated,\n itemScope: boolean,\n itemType: spaceSeparated,\n kind: null,\n label: null,\n lang: null,\n language: null,\n list: null,\n loading: null,\n loop: boolean,\n low: number,\n manifest: null,\n max: null,\n maxLength: number,\n media: null,\n method: null,\n min: null,\n minLength: number,\n multiple: boolean,\n muted: boolean,\n name: null,\n nonce: null,\n noModule: boolean,\n noValidate: boolean,\n onAbort: null,\n onAfterPrint: null,\n onAuxClick: null,\n onBeforeMatch: null,\n onBeforePrint: null,\n onBeforeUnload: null,\n onBlur: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onContextLost: null,\n onContextMenu: null,\n onContextRestored: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFormData: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLanguageChange: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadEnd: null,\n onLoadStart: null,\n onMessage: null,\n onMessageError: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRejectionHandled: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onScrollEnd: null,\n onSecurityPolicyViolation: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onSlotChange: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnhandledRejection: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onWheel: null,\n open: boolean,\n optimum: number,\n pattern: null,\n ping: spaceSeparated,\n placeholder: null,\n playsInline: boolean,\n poster: null,\n preload: null,\n readOnly: boolean,\n referrerPolicy: null,\n rel: spaceSeparated,\n required: boolean,\n reversed: boolean,\n rows: number,\n rowSpan: number,\n sandbox: spaceSeparated,\n scope: null,\n scoped: boolean,\n seamless: boolean,\n selected: boolean,\n shape: null,\n size: number,\n sizes: null,\n slot: null,\n span: number,\n spellCheck: booleanish,\n src: null,\n srcDoc: null,\n srcLang: null,\n srcSet: null,\n start: number,\n step: null,\n style: null,\n tabIndex: number,\n target: null,\n title: null,\n translate: null,\n type: null,\n typeMustMatch: boolean,\n useMap: null,\n value: booleanish,\n width: number,\n wrap: null,\n\n // Legacy.\n // See: https://html.spec.whatwg.org/#other-elements,-attributes-and-apis\n align: null, // Several. Use CSS `text-align` instead,\n aLink: null, // ``. Use CSS `a:active {color}` instead\n archive: spaceSeparated, // ``. List of URIs to archives\n axis: null, // `` and ``. Use `scope` on ``\n background: null, // ``. Use CSS `background-image` instead\n bgColor: null, // `` and table elements. Use CSS `background-color` instead\n border: number, // ``. Use CSS `border-width` instead,\n borderColor: null, // `
`. Use CSS `border-color` instead,\n bottomMargin: number, // ``\n cellPadding: null, // `
`\n cellSpacing: null, // `
`\n char: null, // Several table elements. When `align=char`, sets the character to align on\n charOff: null, // Several table elements. When `char`, offsets the alignment\n classId: null, // ``\n clear: null, // `
`. Use CSS `clear` instead\n code: null, // ``\n codeBase: null, // ``\n codeType: null, // ``\n color: null, // `` and `
`. Use CSS instead\n compact: boolean, // Lists. Use CSS to reduce space between items instead\n declare: boolean, // ``\n event: null, // `\n * ```\n *\n * Elements by their ID are made available by browsers on the `window` object,\n * which is a security risk.\n * Using a prefix solves this problem.\n *\n * More information on how to handle clobbering and the prefix is explained in\n * Example: headings (DOM clobbering) in `rehype-sanitize`.\n *\n * ###### Unknown nodes\n *\n * Unknown nodes are nodes with a type that isn’t in `handlers` or `passThrough`.\n * The default behavior for unknown nodes is:\n *\n * * when the node has a `value` (and doesn’t have `data.hName`,\n * `data.hProperties`, or `data.hChildren`, see later), create a hast `text`\n * node\n * * otherwise, create a `
` element (which could be changed with\n * `data.hName`), with its children mapped from mdast to hast as well\n *\n * This behavior can be changed by passing an `unknownHandler`.\n *\n * @param {MdastNodes} tree\n * mdast tree.\n * @param {Options | null | undefined} [options]\n * Configuration.\n * @returns {HastNodes | null | undefined}\n * hast tree.\n */\n// To do: next major: always return a single `root`.\nexport function toHast(tree, options) {\n const state = createState(tree, options)\n const node = state.one(tree, null)\n const foot = footer(state)\n\n if (foot) {\n // @ts-expect-error If there’s a footer, there were definitions, meaning block\n // content.\n // So assume `node` is a parent node.\n node.children.push({type: 'text', value: '\\n'}, foot)\n }\n\n // To do: next major: always return root?\n return Array.isArray(node) ? {type: 'root', children: node} : node\n}\n","/**\n * @typedef {import('hast').Root} HastRoot\n * @typedef {import('mdast').Root} MdastRoot\n * @typedef {import('mdast-util-to-hast').Options} Options\n * @typedef {import('unified').Processor} Processor\n *\n * @typedef {import('mdast-util-to-hast')} DoNotTouchAsThisImportIncludesRawInTree\n */\n\nimport {toHast} from 'mdast-util-to-hast'\n\n// Note: the `` overload doesn’t seem to work :'(\n\n/**\n * Plugin that turns markdown into HTML to support rehype.\n *\n * * If a destination processor is given, that processor runs with a new HTML\n * (hast) tree (bridge-mode).\n * As the given processor runs with a hast tree, and rehype plugins support\n * hast, that means rehype plugins can be used with the given processor.\n * The hast tree is discarded in the end.\n * It’s highly unlikely that you want to do this.\n * * The common case is to not pass a destination processor, in which case the\n * current processor continues running with a new HTML (hast) tree\n * (mutate-mode).\n * As the current processor continues with a hast tree, and rehype plugins\n * support hast, that means rehype plugins can be used after\n * `remark-rehype`.\n * It’s likely that this is what you want to do.\n *\n * @param destination\n * Optional unified processor.\n * @param options\n * Options passed to `mdast-util-to-hast`.\n */\nconst remarkRehype =\n /** @type {(import('unified').Plugin<[Processor, Options?]|[null|undefined, Options?]|[Options]|[], MdastRoot>)} */\n (\n function (destination, options) {\n return destination && 'run' in destination\n ? bridge(destination, options)\n : mutate(destination || options)\n }\n )\n\nexport default remarkRehype\n\n/**\n * Bridge-mode.\n * Runs the destination with the new hast tree.\n *\n * @type {import('unified').Plugin<[Processor, Options?], MdastRoot>}\n */\nfunction bridge(destination, options) {\n return (node, file, next) => {\n destination.run(toHast(node, options), file, (error) => {\n next(error)\n })\n }\n}\n\n/**\n * Mutate-mode.\n * Further plugins run on the hast tree.\n *\n * @type {import('unified').Plugin<[Options?]|void[], MdastRoot, HastRoot>}\n */\nfunction mutate(options) {\n // @ts-expect-error: assume a corresponding node is returned by `toHast`.\n return (node) => toHast(node, options)\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * @typedef {import('./info.js').Info} Info\n * @typedef {Record} Properties\n * @typedef {Record} Normal\n */\n\nexport class Schema {\n /**\n * @constructor\n * @param {Properties} property\n * @param {Normal} normal\n * @param {string} [space]\n */\n constructor(property, normal, space) {\n this.property = property\n this.normal = normal\n if (space) {\n this.space = space\n }\n }\n}\n\n/** @type {Properties} */\nSchema.prototype.property = {}\n/** @type {Normal} */\nSchema.prototype.normal = {}\n/** @type {string|null} */\nSchema.prototype.space = null\n","/**\n * @typedef {import('./schema.js').Properties} Properties\n * @typedef {import('./schema.js').Normal} Normal\n */\n\nimport {Schema} from './schema.js'\n\n/**\n * @param {Schema[]} definitions\n * @param {string} [space]\n * @returns {Schema}\n */\nexport function merge(definitions, space) {\n /** @type {Properties} */\n const property = {}\n /** @type {Normal} */\n const normal = {}\n let index = -1\n\n while (++index < definitions.length) {\n Object.assign(property, definitions[index].property)\n Object.assign(normal, definitions[index].normal)\n }\n\n return new Schema(property, normal, space)\n}\n","/**\n * @param {string} value\n * @returns {string}\n */\nexport function normalize(value) {\n return value.toLowerCase()\n}\n","export class Info {\n /**\n * @constructor\n * @param {string} property\n * @param {string} attribute\n */\n constructor(property, attribute) {\n /** @type {string} */\n this.property = property\n /** @type {string} */\n this.attribute = attribute\n }\n}\n\n/** @type {string|null} */\nInfo.prototype.space = null\nInfo.prototype.boolean = false\nInfo.prototype.booleanish = false\nInfo.prototype.overloadedBoolean = false\nInfo.prototype.number = false\nInfo.prototype.commaSeparated = false\nInfo.prototype.spaceSeparated = false\nInfo.prototype.commaOrSpaceSeparated = false\nInfo.prototype.mustUseProperty = false\nInfo.prototype.defined = false\n","let powers = 0\n\nexport const boolean = increment()\nexport const booleanish = increment()\nexport const overloadedBoolean = increment()\nexport const number = increment()\nexport const spaceSeparated = increment()\nexport const commaSeparated = increment()\nexport const commaOrSpaceSeparated = increment()\n\nfunction increment() {\n return 2 ** ++powers\n}\n","import {Info} from './info.js'\nimport * as types from './types.js'\n\n/** @type {Array} */\n// @ts-expect-error: hush.\nconst checks = Object.keys(types)\n\nexport class DefinedInfo extends Info {\n /**\n * @constructor\n * @param {string} property\n * @param {string} attribute\n * @param {number|null} [mask]\n * @param {string} [space]\n */\n constructor(property, attribute, mask, space) {\n let index = -1\n\n super(property, attribute)\n\n mark(this, 'space', space)\n\n if (typeof mask === 'number') {\n while (++index < checks.length) {\n const check = checks[index]\n mark(this, checks[index], (mask & types[check]) === types[check])\n }\n }\n }\n}\n\nDefinedInfo.prototype.defined = true\n\n/**\n * @param {DefinedInfo} values\n * @param {string} key\n * @param {unknown} value\n */\nfunction mark(values, key, value) {\n if (value) {\n // @ts-expect-error: assume `value` matches the expected value of `key`.\n values[key] = value\n }\n}\n","/**\n * @typedef {import('./schema.js').Properties} Properties\n * @typedef {import('./schema.js').Normal} Normal\n *\n * @typedef {Record} Attributes\n *\n * @typedef {Object} Definition\n * @property {Record} properties\n * @property {(attributes: Attributes, property: string) => string} transform\n * @property {string} [space]\n * @property {Attributes} [attributes]\n * @property {Array} [mustUseProperty]\n */\n\nimport {normalize} from '../normalize.js'\nimport {Schema} from './schema.js'\nimport {DefinedInfo} from './defined-info.js'\n\nconst own = {}.hasOwnProperty\n\n/**\n * @param {Definition} definition\n * @returns {Schema}\n */\nexport function create(definition) {\n /** @type {Properties} */\n const property = {}\n /** @type {Normal} */\n const normal = {}\n /** @type {string} */\n let prop\n\n for (prop in definition.properties) {\n if (own.call(definition.properties, prop)) {\n const value = definition.properties[prop]\n const info = new DefinedInfo(\n prop,\n definition.transform(definition.attributes || {}, prop),\n value,\n definition.space\n )\n\n if (\n definition.mustUseProperty &&\n definition.mustUseProperty.includes(prop)\n ) {\n info.mustUseProperty = true\n }\n\n property[prop] = info\n\n normal[normalize(prop)] = prop\n normal[normalize(info.attribute)] = prop\n }\n }\n\n return new Schema(property, normal, definition.space)\n}\n","import {create} from './util/create.js'\n\nexport const xlink = create({\n space: 'xlink',\n transform(_, prop) {\n return 'xlink:' + prop.slice(5).toLowerCase()\n },\n properties: {\n xLinkActuate: null,\n xLinkArcRole: null,\n xLinkHref: null,\n xLinkRole: null,\n xLinkShow: null,\n xLinkTitle: null,\n xLinkType: null\n }\n})\n","import {create} from './util/create.js'\n\nexport const xml = create({\n space: 'xml',\n transform(_, prop) {\n return 'xml:' + prop.slice(3).toLowerCase()\n },\n properties: {xmlLang: null, xmlBase: null, xmlSpace: null}\n})\n","/**\n * @param {Record} attributes\n * @param {string} attribute\n * @returns {string}\n */\nexport function caseSensitiveTransform(attributes, attribute) {\n return attribute in attributes ? attributes[attribute] : attribute\n}\n","import {caseSensitiveTransform} from './case-sensitive-transform.js'\n\n/**\n * @param {Record} attributes\n * @param {string} property\n * @returns {string}\n */\nexport function caseInsensitiveTransform(attributes, property) {\n return caseSensitiveTransform(attributes, property.toLowerCase())\n}\n","import {create} from './util/create.js'\nimport {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\n\nexport const xmlns = create({\n space: 'xmlns',\n attributes: {xmlnsxlink: 'xmlns:xlink'},\n transform: caseInsensitiveTransform,\n properties: {xmlns: null, xmlnsXLink: null}\n})\n","import {booleanish, number, spaceSeparated} from './util/types.js'\nimport {create} from './util/create.js'\n\nexport const aria = create({\n transform(_, prop) {\n return prop === 'role' ? prop : 'aria-' + prop.slice(4).toLowerCase()\n },\n properties: {\n ariaActiveDescendant: null,\n ariaAtomic: booleanish,\n ariaAutoComplete: null,\n ariaBusy: booleanish,\n ariaChecked: booleanish,\n ariaColCount: number,\n ariaColIndex: number,\n ariaColSpan: number,\n ariaControls: spaceSeparated,\n ariaCurrent: null,\n ariaDescribedBy: spaceSeparated,\n ariaDetails: null,\n ariaDisabled: booleanish,\n ariaDropEffect: spaceSeparated,\n ariaErrorMessage: null,\n ariaExpanded: booleanish,\n ariaFlowTo: spaceSeparated,\n ariaGrabbed: booleanish,\n ariaHasPopup: null,\n ariaHidden: booleanish,\n ariaInvalid: null,\n ariaKeyShortcuts: null,\n ariaLabel: null,\n ariaLabelledBy: spaceSeparated,\n ariaLevel: number,\n ariaLive: null,\n ariaModal: booleanish,\n ariaMultiLine: booleanish,\n ariaMultiSelectable: booleanish,\n ariaOrientation: null,\n ariaOwns: spaceSeparated,\n ariaPlaceholder: null,\n ariaPosInSet: number,\n ariaPressed: booleanish,\n ariaReadOnly: booleanish,\n ariaRelevant: null,\n ariaRequired: booleanish,\n ariaRoleDescription: spaceSeparated,\n ariaRowCount: number,\n ariaRowIndex: number,\n ariaRowSpan: number,\n ariaSelected: booleanish,\n ariaSetSize: number,\n ariaSort: null,\n ariaValueMax: number,\n ariaValueMin: number,\n ariaValueNow: number,\n ariaValueText: null,\n role: null\n }\n})\n","import {\n boolean,\n overloadedBoolean,\n booleanish,\n number,\n spaceSeparated,\n commaSeparated\n} from './util/types.js'\nimport {create} from './util/create.js'\nimport {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\n\nexport const html = create({\n space: 'html',\n attributes: {\n acceptcharset: 'accept-charset',\n classname: 'class',\n htmlfor: 'for',\n httpequiv: 'http-equiv'\n },\n transform: caseInsensitiveTransform,\n mustUseProperty: ['checked', 'multiple', 'muted', 'selected'],\n properties: {\n // Standard Properties.\n abbr: null,\n accept: commaSeparated,\n acceptCharset: spaceSeparated,\n accessKey: spaceSeparated,\n action: null,\n allow: null,\n allowFullScreen: boolean,\n allowPaymentRequest: boolean,\n allowUserMedia: boolean,\n alt: null,\n as: null,\n async: boolean,\n autoCapitalize: null,\n autoComplete: spaceSeparated,\n autoFocus: boolean,\n autoPlay: boolean,\n capture: boolean,\n charSet: null,\n checked: boolean,\n cite: null,\n className: spaceSeparated,\n cols: number,\n colSpan: null,\n content: null,\n contentEditable: booleanish,\n controls: boolean,\n controlsList: spaceSeparated,\n coords: number | commaSeparated,\n crossOrigin: null,\n data: null,\n dateTime: null,\n decoding: null,\n default: boolean,\n defer: boolean,\n dir: null,\n dirName: null,\n disabled: boolean,\n download: overloadedBoolean,\n draggable: booleanish,\n encType: null,\n enterKeyHint: null,\n form: null,\n formAction: null,\n formEncType: null,\n formMethod: null,\n formNoValidate: boolean,\n formTarget: null,\n headers: spaceSeparated,\n height: number,\n hidden: boolean,\n high: number,\n href: null,\n hrefLang: null,\n htmlFor: spaceSeparated,\n httpEquiv: spaceSeparated,\n id: null,\n imageSizes: null,\n imageSrcSet: null,\n inputMode: null,\n integrity: null,\n is: null,\n isMap: boolean,\n itemId: null,\n itemProp: spaceSeparated,\n itemRef: spaceSeparated,\n itemScope: boolean,\n itemType: spaceSeparated,\n kind: null,\n label: null,\n lang: null,\n language: null,\n list: null,\n loading: null,\n loop: boolean,\n low: number,\n manifest: null,\n max: null,\n maxLength: number,\n media: null,\n method: null,\n min: null,\n minLength: number,\n multiple: boolean,\n muted: boolean,\n name: null,\n nonce: null,\n noModule: boolean,\n noValidate: boolean,\n onAbort: null,\n onAfterPrint: null,\n onAuxClick: null,\n onBeforeMatch: null,\n onBeforePrint: null,\n onBeforeUnload: null,\n onBlur: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onContextLost: null,\n onContextMenu: null,\n onContextRestored: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFormData: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLanguageChange: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadEnd: null,\n onLoadStart: null,\n onMessage: null,\n onMessageError: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRejectionHandled: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onScrollEnd: null,\n onSecurityPolicyViolation: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onSlotChange: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnhandledRejection: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onWheel: null,\n open: boolean,\n optimum: number,\n pattern: null,\n ping: spaceSeparated,\n placeholder: null,\n playsInline: boolean,\n poster: null,\n preload: null,\n readOnly: boolean,\n referrerPolicy: null,\n rel: spaceSeparated,\n required: boolean,\n reversed: boolean,\n rows: number,\n rowSpan: number,\n sandbox: spaceSeparated,\n scope: null,\n scoped: boolean,\n seamless: boolean,\n selected: boolean,\n shape: null,\n size: number,\n sizes: null,\n slot: null,\n span: number,\n spellCheck: booleanish,\n src: null,\n srcDoc: null,\n srcLang: null,\n srcSet: null,\n start: number,\n step: null,\n style: null,\n tabIndex: number,\n target: null,\n title: null,\n translate: null,\n type: null,\n typeMustMatch: boolean,\n useMap: null,\n value: booleanish,\n width: number,\n wrap: null,\n\n // Legacy.\n // See: https://html.spec.whatwg.org/#other-elements,-attributes-and-apis\n align: null, // Several. Use CSS `text-align` instead,\n aLink: null, // ``. Use CSS `a:active {color}` instead\n archive: spaceSeparated, // ``. List of URIs to archives\n axis: null, // `
` and ``. Use `scope` on ``\n background: null, // ``. Use CSS `background-image` instead\n bgColor: null, // `` and table elements. Use CSS `background-color` instead\n border: number, // ``. Use CSS `border-width` instead,\n borderColor: null, // `
`. Use CSS `border-color` instead,\n bottomMargin: number, // ``\n cellPadding: null, // `
`\n cellSpacing: null, // `
`\n char: null, // Several table elements. When `align=char`, sets the character to align on\n charOff: null, // Several table elements. When `char`, offsets the alignment\n classId: null, // ``\n clear: null, // `
`. Use CSS `clear` instead\n code: null, // ``\n codeBase: null, // ``\n codeType: null, // ``\n color: null, // `` and `
`. Use CSS instead\n compact: boolean, // Lists. Use CSS to reduce space between items instead\n declare: boolean, // ``\n event: null, // ` - + +