/*! For license information please see main.37ff0eab.js.LICENSE.txt */
(self.webpackChunk=self.webpackChunk||[]).push([[8792],{102:(e,t,n)=>{"use strict";n.d(t,{dV:()=>m,fM:()=>g,_q:()=>p,ZC:()=>f,Be:()=>h});var r=n(3909),o=n(77387);function a(e){return a=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},a(e)}var i=n(63662);function s(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(s=function(){return!!e})()}function c(e){var t="function"==typeof Map?new Map:void 0;return c=function(e){if(null===e||!function(e){try{return-1!==Function.toString.call(e).indexOf("[native code]")}catch(t){return"function"==typeof e}}(e))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return function(e,t,n){if(s())return Reflect.construct.apply(null,arguments);var r=[null];r.push.apply(r,t);var o=new(e.bind.apply(e,r));return n&&(0,i.A)(o,n.prototype),o}(e,arguments,a(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),(0,i.A)(n,e)},c(e)}var l=n(96540),u=n(50372),d=n(74848);function p(e){var t=(0,l.useRef)(e);return(0,u.A)((function(){t.current=e}),[e]),(0,l.useCallback)((function(){return t.current.apply(t,arguments)}),[])}function f(e){var t=(0,l.useRef)();return(0,u.A)((function(){t.current=e})),t.current}var m=function(e){function t(t,n){var o,a,i;return(i=e.call(this)||this).name="ReactContextError",i.message="Hook "+(null!=(o=null==(a=i.stack)||null==(a=a.split("\n")[1])||null==(a=a.match((0,r.A)(/at (?:\w+\.)?(\w+)/,{name:1})))?void 0:a.groups.name)?o:"")+" is called outside the <"+t+">. "+(null!=n?n:""),i}return(0,o.A)(t,e),t}(c(Error));function h(e){var t=Object.entries(e);return t.sort((function(e,t){return e[0].localeCompare(t[0])})),(0,l.useMemo)((function(){return e}),t.flat())}function g(e){return function(t){var n=t.children;return(0,d.jsx)(d.Fragment,{children:e.reduceRight((function(e,t){return(0,d.jsx)(t,{children:e})}),n)})}}},204:(e,t,n)=>{"use strict";n.d(t,{G:()=>r});var r={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",blogAuthorsListPage:"blog-authors-list-page",blogAuthorsPostsPage:"blog-authors-posts-page",docsDocPage:"docs-doc-page",docsTagsListPage:"docs-tags-list-page",docsTagDocListPage:"docs-tags-doc-list-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docsPages:"docs-wrapper",mdxPages:"mdx-wrapper"},common:{editThisPage:"theme-edit-this-page",lastUpdated:"theme-last-updated",backToTopButton:"theme-back-to-top-button",codeBlock:"theme-code-block",admonition:"theme-admonition",unlistedBanner:"theme-unlisted-banner",draftBanner:"theme-draft-banner",admonitionType:function(e){return"theme-admonition-"+e}},layout:{},docs:{docVersionBanner:"theme-doc-version-banner",docVersionBadge:"theme-doc-version-badge",docBreadcrumbs:"theme-doc-breadcrumbs",docMarkdown:"theme-doc-markdown",docTocMobile:"theme-doc-toc-mobile",docTocDesktop:"theme-doc-toc-desktop",docFooter:"theme-doc-footer",docFooterTagsRow:"theme-doc-footer-tags-row",docFooterEditMetaRow:"theme-doc-footer-edit-meta-row",docSidebarContainer:"theme-doc-sidebar-container",docSidebarMenu:"theme-doc-sidebar-menu",docSidebarItemCategory:"theme-doc-sidebar-item-category",docSidebarItemLink:"theme-doc-sidebar-item-link",docSidebarItemCategoryLevel:function(e){return"theme-doc-sidebar-item-category-level-"+e},docSidebarItemLinkLevel:function(e){return"theme-doc-sidebar-item-link-level-"+e}},blog:{blogFooterTagsRow:"theme-blog-footer-tags-row",blogFooterEditMetaRow:"theme-blog-footer-edit-meta-row"},pages:{pageFooterEditMetaRow:"theme-pages-footer-edit-meta-row"}}},689:function(e){e.exports=function(){"use strict";var e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},t=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},n=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o=function(){function e(n){var r=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:5e3;t(this,e),this.ctx=n,this.iframes=r,this.exclude=o,this.iframesTimeout=a}return n(e,[{key:"getContexts",value:function(){var e=[];return(void 0!==this.ctx&&this.ctx?NodeList.prototype.isPrototypeOf(this.ctx)?Array.prototype.slice.call(this.ctx):Array.isArray(this.ctx)?this.ctx:"string"==typeof this.ctx?Array.prototype.slice.call(document.querySelectorAll(this.ctx)):[this.ctx]:[]).forEach((function(t){var n=e.filter((function(e){return e.contains(t)})).length>0;-1!==e.indexOf(t)||n||e.push(t)})),e}},{key:"getIframeContents",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(){},r=void 0;try{var o=e.contentWindow;if(r=o.document,!o||!r)throw new Error("iframe inaccessible")}catch(a){n()}r&&t(r)}},{key:"isIframeBlank",value:function(e){var t="about:blank",n=e.getAttribute("src").trim();return e.contentWindow.location.href===t&&n!==t&&n}},{key:"observeIframeLoad",value:function(e,t,n){var r=this,o=!1,a=null,i=function i(){if(!o){o=!0,clearTimeout(a);try{r.isIframeBlank(e)||(e.removeEventListener("load",i),r.getIframeContents(e,t,n))}catch(s){n()}}};e.addEventListener("load",i),a=setTimeout(i,this.iframesTimeout)}},{key:"onIframeReady",value:function(e,t,n){try{"complete"===e.contentWindow.document.readyState?this.isIframeBlank(e)?this.observeIframeLoad(e,t,n):this.getIframeContents(e,t,n):this.observeIframeLoad(e,t,n)}catch(r){n()}}},{key:"waitForIframes",value:function(e,t){var n=this,r=0;this.forEachIframe(e,(function(){return!0}),(function(e){r++,n.waitForIframes(e.querySelector("html"),(function(){--r||t()}))}),(function(e){e||t()}))}},{key:"forEachIframe",value:function(t,n,r){var o=this,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:function(){},i=t.querySelectorAll("iframe"),s=i.length,c=0;i=Array.prototype.slice.call(i);var l=function(){--s<=0&&a(c)};s||l(),i.forEach((function(t){e.matches(t,o.exclude)?l():o.onIframeReady(t,(function(e){n(t)&&(c++,r(e)),l()}),l)}))}},{key:"createIterator",value:function(e,t,n){return document.createNodeIterator(e,t,n,!1)}},{key:"createInstanceOnIframe",value:function(t){return new e(t.querySelector("html"),this.iframes)}},{key:"compareNodeIframe",value:function(e,t,n){if(e.compareDocumentPosition(n)&Node.DOCUMENT_POSITION_PRECEDING){if(null===t)return!0;if(t.compareDocumentPosition(n)&Node.DOCUMENT_POSITION_FOLLOWING)return!0}return!1}},{key:"getIteratorNode",value:function(e){var t=e.previousNode();return{prevNode:t,node:(null===t||e.nextNode())&&e.nextNode()}}},{key:"checkIframeFilter",value:function(e,t,n,r){var o=!1,a=!1;return r.forEach((function(e,t){e.val===n&&(o=t,a=e.handled)})),this.compareNodeIframe(e,t,n)?(!1!==o||a?!1===o||a||(r[o].handled=!0):r.push({val:n,handled:!0}),!0):(!1===o&&r.push({val:n,handled:!1}),!1)}},{key:"handleOpenIframes",value:function(e,t,n,r){var o=this;e.forEach((function(e){e.handled||o.getIframeContents(e.val,(function(e){o.createInstanceOnIframe(e).forEachNode(t,n,r)}))}))}},{key:"iterateThroughNodes",value:function(e,t,n,r,o){for(var a=this,i=this.createIterator(t,e,r),s=[],c=[],l=void 0,u=void 0,d=function(){var e=a.getIteratorNode(i);return u=e.prevNode,l=e.node};d();)this.iframes&&this.forEachIframe(t,(function(e){return a.checkIframeFilter(l,u,e,s)}),(function(t){a.createInstanceOnIframe(t).forEachNode(e,(function(e){return c.push(e)}),r)})),c.push(l);c.forEach((function(e){n(e)})),this.iframes&&this.handleOpenIframes(s,e,n,r),o()}},{key:"forEachNode",value:function(e,t,n){var r=this,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:function(){},a=this.getContexts(),i=a.length;i||o(),a.forEach((function(a){var s=function(){r.iterateThroughNodes(e,a,t,n,(function(){--i<=0&&o()}))};r.iframes?r.waitForIframes(a,s):s()}))}}],[{key:"matches",value:function(e,t){var n="string"==typeof t?[t]:t,r=e.matches||e.matchesSelector||e.msMatchesSelector||e.mozMatchesSelector||e.oMatchesSelector||e.webkitMatchesSelector;if(r){var o=!1;return n.every((function(t){return!r.call(e,t)||(o=!0,!1)})),o}return!1}}]),e}(),a=function(){function a(e){t(this,a),this.ctx=e,this.ie=!1;var n=window.navigator.userAgent;(n.indexOf("MSIE")>-1||n.indexOf("Trident")>-1)&&(this.ie=!0)}return n(a,[{key:"log",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"debug",r=this.opt.log;this.opt.debug&&"object"===(void 0===r?"undefined":e(r))&&"function"==typeof r[n]&&r[n]("mark.js: "+t)}},{key:"escapeStr",value:function(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}},{key:"createRegExp",value:function(e){return"disabled"!==this.opt.wildcards&&(e=this.setupWildcardsRegExp(e)),e=this.escapeStr(e),Object.keys(this.opt.synonyms).length&&(e=this.createSynonymsRegExp(e)),(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.setupIgnoreJoinersRegExp(e)),this.opt.diacritics&&(e=this.createDiacriticsRegExp(e)),e=this.createMergedBlanksRegExp(e),(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.createJoinersRegExp(e)),"disabled"!==this.opt.wildcards&&(e=this.createWildcardsRegExp(e)),e=this.createAccuracyRegExp(e)}},{key:"createSynonymsRegExp",value:function(e){var t=this.opt.synonyms,n=this.opt.caseSensitive?"":"i",r=this.opt.ignoreJoiners||this.opt.ignorePunctuation.length?"\0":"";for(var o in t)if(t.hasOwnProperty(o)){var a=t[o],i="disabled"!==this.opt.wildcards?this.setupWildcardsRegExp(o):this.escapeStr(o),s="disabled"!==this.opt.wildcards?this.setupWildcardsRegExp(a):this.escapeStr(a);""!==i&&""!==s&&(e=e.replace(new RegExp("("+this.escapeStr(i)+"|"+this.escapeStr(s)+")","gm"+n),r+"("+this.processSynomyms(i)+"|"+this.processSynomyms(s)+")"+r))}return e}},{key:"processSynomyms",value:function(e){return(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.setupIgnoreJoinersRegExp(e)),e}},{key:"setupWildcardsRegExp",value:function(e){return(e=e.replace(/(?:\\)*\?/g,(function(e){return"\\"===e.charAt(0)?"?":"\x01"}))).replace(/(?:\\)*\*/g,(function(e){return"\\"===e.charAt(0)?"*":"\x02"}))}},{key:"createWildcardsRegExp",value:function(e){var t="withSpaces"===this.opt.wildcards;return e.replace(/\u0001/g,t?"[\\S\\s]?":"\\S?").replace(/\u0002/g,t?"[\\S\\s]*?":"\\S*")}},{key:"setupIgnoreJoinersRegExp",value:function(e){return e.replace(/[^(|)\\]/g,(function(e,t,n){var r=n.charAt(t+1);return/[(|)\\]/.test(r)||""===r?e:e+"\0"}))}},{key:"createJoinersRegExp",value:function(e){var t=[],n=this.opt.ignorePunctuation;return Array.isArray(n)&&n.length&&t.push(this.escapeStr(n.join(""))),this.opt.ignoreJoiners&&t.push("\\u00ad\\u200b\\u200c\\u200d"),t.length?e.split(/\u0000+/).join("["+t.join("")+"]*"):e}},{key:"createDiacriticsRegExp",value:function(e){var t=this.opt.caseSensitive?"":"i",n=this.opt.caseSensitive?["a\xe0\xe1\u1ea3\xe3\u1ea1\u0103\u1eb1\u1eaf\u1eb3\u1eb5\u1eb7\xe2\u1ea7\u1ea5\u1ea9\u1eab\u1ead\xe4\xe5\u0101\u0105","A\xc0\xc1\u1ea2\xc3\u1ea0\u0102\u1eb0\u1eae\u1eb2\u1eb4\u1eb6\xc2\u1ea6\u1ea4\u1ea8\u1eaa\u1eac\xc4\xc5\u0100\u0104","c\xe7\u0107\u010d","C\xc7\u0106\u010c","d\u0111\u010f","D\u0110\u010e","e\xe8\xe9\u1ebb\u1ebd\u1eb9\xea\u1ec1\u1ebf\u1ec3\u1ec5\u1ec7\xeb\u011b\u0113\u0119","E\xc8\xc9\u1eba\u1ebc\u1eb8\xca\u1ec0\u1ebe\u1ec2\u1ec4\u1ec6\xcb\u011a\u0112\u0118","i\xec\xed\u1ec9\u0129\u1ecb\xee\xef\u012b","I\xcc\xcd\u1ec8\u0128\u1eca\xce\xcf\u012a","l\u0142","L\u0141","n\xf1\u0148\u0144","N\xd1\u0147\u0143","o\xf2\xf3\u1ecf\xf5\u1ecd\xf4\u1ed3\u1ed1\u1ed5\u1ed7\u1ed9\u01a1\u1edf\u1ee1\u1edb\u1edd\u1ee3\xf6\xf8\u014d","O\xd2\xd3\u1ece\xd5\u1ecc\xd4\u1ed2\u1ed0\u1ed4\u1ed6\u1ed8\u01a0\u1ede\u1ee0\u1eda\u1edc\u1ee2\xd6\xd8\u014c","r\u0159","R\u0158","s\u0161\u015b\u0219\u015f","S\u0160\u015a\u0218\u015e","t\u0165\u021b\u0163","T\u0164\u021a\u0162","u\xf9\xfa\u1ee7\u0169\u1ee5\u01b0\u1eeb\u1ee9\u1eed\u1eef\u1ef1\xfb\xfc\u016f\u016b","U\xd9\xda\u1ee6\u0168\u1ee4\u01af\u1eea\u1ee8\u1eec\u1eee\u1ef0\xdb\xdc\u016e\u016a","y\xfd\u1ef3\u1ef7\u1ef9\u1ef5\xff","Y\xdd\u1ef2\u1ef6\u1ef8\u1ef4\u0178","z\u017e\u017c\u017a","Z\u017d\u017b\u0179"]:["a\xe0\xe1\u1ea3\xe3\u1ea1\u0103\u1eb1\u1eaf\u1eb3\u1eb5\u1eb7\xe2\u1ea7\u1ea5\u1ea9\u1eab\u1ead\xe4\xe5\u0101\u0105A\xc0\xc1\u1ea2\xc3\u1ea0\u0102\u1eb0\u1eae\u1eb2\u1eb4\u1eb6\xc2\u1ea6\u1ea4\u1ea8\u1eaa\u1eac\xc4\xc5\u0100\u0104","c\xe7\u0107\u010dC\xc7\u0106\u010c","d\u0111\u010fD\u0110\u010e","e\xe8\xe9\u1ebb\u1ebd\u1eb9\xea\u1ec1\u1ebf\u1ec3\u1ec5\u1ec7\xeb\u011b\u0113\u0119E\xc8\xc9\u1eba\u1ebc\u1eb8\xca\u1ec0\u1ebe\u1ec2\u1ec4\u1ec6\xcb\u011a\u0112\u0118","i\xec\xed\u1ec9\u0129\u1ecb\xee\xef\u012bI\xcc\xcd\u1ec8\u0128\u1eca\xce\xcf\u012a","l\u0142L\u0141","n\xf1\u0148\u0144N\xd1\u0147\u0143","o\xf2\xf3\u1ecf\xf5\u1ecd\xf4\u1ed3\u1ed1\u1ed5\u1ed7\u1ed9\u01a1\u1edf\u1ee1\u1edb\u1edd\u1ee3\xf6\xf8\u014dO\xd2\xd3\u1ece\xd5\u1ecc\xd4\u1ed2\u1ed0\u1ed4\u1ed6\u1ed8\u01a0\u1ede\u1ee0\u1eda\u1edc\u1ee2\xd6\xd8\u014c","r\u0159R\u0158","s\u0161\u015b\u0219\u015fS\u0160\u015a\u0218\u015e","t\u0165\u021b\u0163T\u0164\u021a\u0162","u\xf9\xfa\u1ee7\u0169\u1ee5\u01b0\u1eeb\u1ee9\u1eed\u1eef\u1ef1\xfb\xfc\u016f\u016bU\xd9\xda\u1ee6\u0168\u1ee4\u01af\u1eea\u1ee8\u1eec\u1eee\u1ef0\xdb\xdc\u016e\u016a","y\xfd\u1ef3\u1ef7\u1ef9\u1ef5\xffY\xdd\u1ef2\u1ef6\u1ef8\u1ef4\u0178","z\u017e\u017c\u017aZ\u017d\u017b\u0179"],r=[];return e.split("").forEach((function(o){n.every((function(n){if(-1!==n.indexOf(o)){if(r.indexOf(n)>-1)return!1;e=e.replace(new RegExp("["+n+"]","gm"+t),"["+n+"]"),r.push(n)}return!0}))})),e}},{key:"createMergedBlanksRegExp",value:function(e){return e.replace(/[\s]+/gim,"[\\s]+")}},{key:"createAccuracyRegExp",value:function(e){var t=this,n="!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~\xa1\xbf",r=this.opt.accuracy,o="string"==typeof r?r:r.value,a="string"==typeof r?[]:r.limiters,i="";switch(a.forEach((function(e){i+="|"+t.escapeStr(e)})),o){case"partially":default:return"()("+e+")";case"complementary":return"()([^"+(i="\\s"+(i||this.escapeStr(n)))+"]*"+e+"[^"+i+"]*)";case"exactly":return"(^|\\s"+i+")("+e+")(?=$|\\s"+i+")"}}},{key:"getSeparatedKeywords",value:function(e){var t=this,n=[];return e.forEach((function(e){t.opt.separateWordSearch?e.split(" ").forEach((function(e){e.trim()&&-1===n.indexOf(e)&&n.push(e)})):e.trim()&&-1===n.indexOf(e)&&n.push(e)})),{keywords:n.sort((function(e,t){return t.length-e.length})),length:n.length}}},{key:"isNumeric",value:function(e){return Number(parseFloat(e))==e}},{key:"checkRanges",value:function(e){var t=this;if(!Array.isArray(e)||"[object Object]"!==Object.prototype.toString.call(e[0]))return this.log("markRanges() will only accept an array of objects"),this.opt.noMatch(e),[];var n=[],r=0;return e.sort((function(e,t){return e.start-t.start})).forEach((function(e){var o=t.callNoMatchOnInvalidRanges(e,r),a=o.start,i=o.end;o.valid&&(e.start=a,e.length=i-a,n.push(e),r=i)})),n}},{key:"callNoMatchOnInvalidRanges",value:function(e,t){var n=void 0,r=void 0,o=!1;return e&&void 0!==e.start?(r=(n=parseInt(e.start,10))+parseInt(e.length,10),this.isNumeric(e.start)&&this.isNumeric(e.length)&&r-t>0&&r-n>0?o=!0:(this.log("Ignoring invalid or overlapping range: "+JSON.stringify(e)),this.opt.noMatch(e))):(this.log("Ignoring invalid range: "+JSON.stringify(e)),this.opt.noMatch(e)),{start:n,end:r,valid:o}}},{key:"checkWhitespaceRanges",value:function(e,t,n){var r=void 0,o=!0,a=n.length,i=t-a,s=parseInt(e.start,10)-i;return(r=(s=s>a?a:s)+parseInt(e.length,10))>a&&(r=a,this.log("End range automatically set to the max value of "+a)),s<0||r-s<0||s>a||r>a?(o=!1,this.log("Invalid range: "+JSON.stringify(e)),this.opt.noMatch(e)):""===n.substring(s,r).replace(/\s+/g,"")&&(o=!1,this.log("Skipping whitespace only range: "+JSON.stringify(e)),this.opt.noMatch(e)),{start:s,end:r,valid:o}}},{key:"getTextNodes",value:function(e){var t=this,n="",r=[];this.iterator.forEachNode(NodeFilter.SHOW_TEXT,(function(e){r.push({start:n.length,end:(n+=e.textContent).length,node:e})}),(function(e){return t.matchesExclude(e.parentNode)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT}),(function(){e({value:n,nodes:r})}))}},{key:"matchesExclude",value:function(e){return o.matches(e,this.opt.exclude.concat(["script","style","title","head","html"]))}},{key:"wrapRangeInTextNode",value:function(e,t,n){var r=this.opt.element?this.opt.element:"mark",o=e.splitText(t),a=o.splitText(n-t),i=document.createElement(r);return i.setAttribute("data-markjs","true"),this.opt.className&&i.setAttribute("class",this.opt.className),i.textContent=o.textContent,o.parentNode.replaceChild(i,o),a}},{key:"wrapRangeInMappedTextNode",value:function(e,t,n,r,o){var a=this;e.nodes.every((function(i,s){var c=e.nodes[s+1];if(void 0===c||c.start>t){if(!r(i.node))return!1;var l=t-i.start,u=(n>i.end?i.end:n)-i.start,d=e.value.substr(0,i.start),p=e.value.substr(u+i.start);if(i.node=a.wrapRangeInTextNode(i.node,l,u),e.value=d+p,e.nodes.forEach((function(t,n){n>=s&&(e.nodes[n].start>0&&n!==s&&(e.nodes[n].start-=u),e.nodes[n].end-=u)})),n-=u,o(i.node.previousSibling,i.start),!(n>i.end))return!1;t=i.end}return!0}))}},{key:"wrapMatches",value:function(e,t,n,r,o){var a=this,i=0===t?0:t+1;this.getTextNodes((function(t){t.nodes.forEach((function(t){t=t.node;for(var o=void 0;null!==(o=e.exec(t.textContent))&&""!==o[i];)if(n(o[i],t)){var s=o.index;if(0!==i)for(var c=1;c<i;c++)s+=o[c].length;t=a.wrapRangeInTextNode(t,s,s+o[i].length),r(t.previousSibling),e.lastIndex=0}})),o()}))}},{key:"wrapMatchesAcrossElements",value:function(e,t,n,r,o){var a=this,i=0===t?0:t+1;this.getTextNodes((function(t){for(var s=void 0;null!==(s=e.exec(t.value))&&""!==s[i];){var c=s.index;if(0!==i)for(var l=1;l<i;l++)c+=s[l].length;var u=c+s[i].length;a.wrapRangeInMappedTextNode(t,c,u,(function(e){return n(s[i],e)}),(function(t,n){e.lastIndex=n,r(t)}))}o()}))}},{key:"wrapRangeFromIndex",value:function(e,t,n,r){var o=this;this.getTextNodes((function(a){var i=a.value.length;e.forEach((function(e,r){var s=o.checkWhitespaceRanges(e,i,a.value),c=s.start,l=s.end;s.valid&&o.wrapRangeInMappedTextNode(a,c,l,(function(n){return t(n,e,a.value.substring(c,l),r)}),(function(t){n(t,e)}))})),r()}))}},{key:"unwrapMatches",value:function(e){for(var t=e.parentNode,n=document.createDocumentFragment();e.firstChild;)n.appendChild(e.removeChild(e.firstChild));t.replaceChild(n,e),this.ie?this.normalizeTextNode(t):t.normalize()}},{key:"normalizeTextNode",value:function(e){if(e){if(3===e.nodeType)for(;e.nextSibling&&3===e.nextSibling.nodeType;)e.nodeValue+=e.nextSibling.nodeValue,e.parentNode.removeChild(e.nextSibling);else this.normalizeTextNode(e.firstChild);this.normalizeTextNode(e.nextSibling)}}},{key:"markRegExp",value:function(e,t){var n=this;this.opt=t,this.log('Searching with expression "'+e+'"');var r=0,o="wrapMatches",a=function(e){r++,n.opt.each(e)};this.opt.acrossElements&&(o="wrapMatchesAcrossElements"),this[o](e,this.opt.ignoreGroups,(function(e,t){return n.opt.filter(t,e,r)}),a,(function(){0===r&&n.opt.noMatch(e),n.opt.done(r)}))}},{key:"mark",value:function(e,t){var n=this;this.opt=t;var r=0,o="wrapMatches",a=this.getSeparatedKeywords("string"==typeof e?[e]:e),i=a.keywords,s=a.length,c=this.opt.caseSensitive?"":"i",l=function e(t){var a=new RegExp(n.createRegExp(t),"gm"+c),l=0;n.log('Searching with expression "'+a+'"'),n[o](a,1,(function(e,o){return n.opt.filter(o,t,r,l)}),(function(e){l++,r++,n.opt.each(e)}),(function(){0===l&&n.opt.noMatch(t),i[s-1]===t?n.opt.done(r):e(i[i.indexOf(t)+1])}))};this.opt.acrossElements&&(o="wrapMatchesAcrossElements"),0===s?this.opt.done(r):l(i[0])}},{key:"markRanges",value:function(e,t){var n=this;this.opt=t;var r=0,o=this.checkRanges(e);o&&o.length?(this.log("Starting to mark with the following ranges: "+JSON.stringify(o)),this.wrapRangeFromIndex(o,(function(e,t,r,o){return n.opt.filter(e,t,r,o)}),(function(e,t){r++,n.opt.each(e,t)}),(function(){n.opt.done(r)}))):this.opt.done(r)}},{key:"unmark",value:function(e){var t=this;this.opt=e;var n=this.opt.element?this.opt.element:"*";n+="[data-markjs]",this.opt.className&&(n+="."+this.opt.className),this.log('Removal selector "'+n+'"'),this.iterator.forEachNode(NodeFilter.SHOW_ELEMENT,(function(e){t.unwrapMatches(e)}),(function(e){var r=o.matches(e,n),a=t.matchesExclude(e);return!r||a?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT}),this.opt.done)}},{key:"opt",set:function(e){this._opt=r({},{element:"",className:"",exclude:[],iframes:!1,iframesTimeout:5e3,separateWordSearch:!0,diacritics:!0,synonyms:{},accuracy:"partially",acrossElements:!1,caseSensitive:!1,ignoreJoiners:!1,ignoreGroups:0,ignorePunctuation:[],wildcards:"disabled",each:function(){},noMatch:function(){},filter:function(){return!0},done:function(){},debug:!1,log:window.console},e)},get:function(){return this._opt}},{key:"iterator",get:function(){return new o(this.ctx,this.opt.iframes,this.opt.exclude,this.opt.iframesTimeout)}}]),a}();function i(e){var t=this,n=new a(e);return this.mark=function(e,r){return n.mark(e,r),t},this.markRegExp=function(e,r){return n.markRegExp(e,r),t},this.markRanges=function(e,r){return n.markRanges(e,r),t},this.unmark=function(e){return n.unmark(e),t},this}return i}()},2694:(e,t,n)=>{"use strict";var r=n(6925);function o(){}function a(){}a.resetWarningCache=o,e.exports=function(){function e(e,t,n,o,a,i){if(i!==r){var s=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw s.name="Invariant Violation",s}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:a,resetWarningCache:o};return n.PropTypes=n,n}},2833:e=>{e.exports=function(e,t,n,r){var o=n?n.call(r,e,t):void 0;if(void 0!==o)return!!o;if(e===t)return!0;if("object"!=typeof e||!e||"object"!=typeof t||!t)return!1;var a=Object.keys(e),i=Object.keys(t);if(a.length!==i.length)return!1;for(var s=Object.prototype.hasOwnProperty.bind(t),c=0;c<a.length;c++){var l=a[c];if(!s(l))return!1;var u=e[l],d=t[l];if(!1===(o=n?n.call(r,u,d,l):void 0)||void 0===o&&u!==d)return!1}return!0}},3909:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var r=n(82284),o=n(63662);function a(){a=function(e,t){return new n(e,void 0,t)};var e=RegExp.prototype,t=new WeakMap;function n(e,r,a){var i=RegExp(e,r);return t.set(i,a||t.get(e)),(0,o.A)(i,n.prototype)}function i(e,n){var r=t.get(n);return Object.keys(r).reduce((function(t,n){var o=r[n];if("number"==typeof o)t[n]=e[o];else{for(var a=0;void 0===e[o[a]]&&a+1<o.length;)a++;t[n]=e[o[a]]}return t}),Object.create(null))}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&(0,o.A)(e,t)}(n,RegExp),n.prototype.exec=function(t){var n=e.exec.call(this,t);if(n){n.groups=i(n,this);var r=n.indices;r&&(r.groups=i(r,this))}return n},n.prototype[Symbol.replace]=function(n,o){if("string"==typeof o){var a=t.get(this);return e[Symbol.replace].call(this,n,o.replace(/\$<([^>]+)>/g,(function(e,t){var n=a[t];return"$"+(Array.isArray(n)?n.join("$"):n)})))}if("function"==typeof o){var s=this;return e[Symbol.replace].call(this,n,(function(){var e=arguments;return"object"!=(0,r.A)(e[e.length-1])&&(e=[].slice.call(e)).push(i(e,s)),o.apply(this,e)}))}return e[Symbol.replace].call(this,n,o)},a.apply(this,arguments)}},4023:(e,t,n)=>{"use strict";n.d(t,{A:()=>g});var r=n(77387),o=n(96540),a=n(61934),i=n(27143),s=n(30099),c=n(93237),l=n(75313),u=n(74848);function d(e){var t=e.error,n=e.tryAgain;return(0,u.jsxs)("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",minHeight:"100vh",width:"100%",maxWidth:"80ch",fontSize:"20px",margin:"0 auto",padding:"1rem"},children:[(0,u.jsx)("h1",{style:{fontSize:"3rem"},children:"This page crashed"}),(0,u.jsx)("button",{type:"button",onClick:n,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"},children:"Try again"}),(0,u.jsx)(p,{error:t})]})}function p(e){var t=e.error,n=(0,s.rA)(t).map((function(e){return e.message})).join("\n\nCause:\n");return(0,u.jsx)("p",{style:{whiteSpace:"pre-wrap"},children:n})}function f(e){var t=e.children;return(0,u.jsx)(l.W,{value:{plugin:{name:"docusaurus-core-error-boundary",id:"default"}},children:t})}function m(e){var t=e.error,n=e.tryAgain;return(0,u.jsx)(f,{children:(0,u.jsxs)(g,{fallback:function(){return(0,u.jsx)(d,{error:t,tryAgain:n})},children:[(0,u.jsx)(i.A,{children:(0,u.jsx)("title",{children:"Page Error"})}),(0,u.jsx)(c.A,{children:(0,u.jsx)(d,{error:t,tryAgain:n})})]})})}var h=function(e){return(0,u.jsx)(m,Object.assign({},e))},g=function(e){function t(t){var n;return(n=e.call(this,t)||this).state={error:null},n}(0,r.A)(t,e);var n=t.prototype;return n.componentDidCatch=function(e){a.A.canUseDOM&&this.setState({error:e})},n.render=function(){var e=this,t=this.props.children,n=this.state.error;if(n){var r,o={error:n,tryAgain:function(){return e.setState({error:null})}};return(null!=(r=this.props.fallback)?r:h)(o)}return null!=t?t:null},t}(o.Component)},4146:(e,t,n)=>{"use strict";var r=n(44363),o={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},a={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},s={};function c(e){return r.isMemo(e)?i:s[e.$$typeof]||o}s[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},s[r.Memo]=i;var l=Object.defineProperty,u=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,p=Object.getOwnPropertyDescriptor,f=Object.getPrototypeOf,m=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(m){var o=f(n);o&&o!==m&&e(t,o,r)}var i=u(n);d&&(i=i.concat(d(n)));for(var s=c(t),h=c(n),g=0;g<i.length;++g){var b=i[g];if(!(a[b]||r&&r[b]||h&&h[b]||s&&s[b])){var y=p(n,b);try{l(t,b,y)}catch(v){}}}}return t}},4784:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={title:"Apache\xae Druid",tagline:"A fast analytical database",url:"https://druid.apache.org",baseUrl:"/",organizationName:"Apache\xae",projectName:"ApacheDruid",scripts:["/js/clipboard.min.js"],stylesheets:["/css/all.css"],favicon:"img/favicon.png",customFields:{disableHeaderTitle:!0},onBrokenLinks:"log",onBrokenMarkdownLinks:"log",markdown:{mermaid:!0,format:"mdx",mdx1Compat:{comments:!0,admonitions:!0,headingIds:!0},anchors:{maintainCase:!1}},presets:[["@docusaurus/preset-classic",{docs:{showLastUpdateAuthor:!1,showLastUpdateTime:!1,exclude:["**incubating/**"],path:"./docs/33.0.0",routeBasePath:"/docs/33.0.0",sidebarPath:"./sidebars.json"},theme:{customCss:["./src/css/customTheme.css","./src/css/index.css"]}}]],plugins:[["@docusaurus/plugin-client-redirects",{fromExtensions:["html"],redirects:[{from:"/docs/33.0.0/tutorials/tutorial-transform-spec",to:"/docs/33.0.0/tutorials/tutorial-transform"},{from:"/docs/33.0.0/development/extensions-core/kafka-extraction-namespace/",to:"/docs/33.0.0/querying/kafka-extraction-namespace"},{from:["/docs/33.0.0/configuration/auth.html","/docs/33.0.0/design/auth.html"],to:"/docs/33.0.0/operations/auth"},{from:["/docs/33.0.0/configuration/broker.html","/docs/33.0.0/configuration/caching.html","/docs/33.0.0/configuration/coordinator.html","/docs/33.0.0/configuration/historical.html","/docs/33.0.0/configuration/indexing-service.html","/docs/33.0.0/development/extensions-core/caffeine-cache.html"],to:"/docs/33.0.0/configuration/"},{from:"/docs/33.0.0/configuration/hadoop.html",to:"/docs/33.0.0/ingestion/hadoop"},{from:["/docs/33.0.0/configuration/production-cluster.html","/docs/33.0.0/configuration/simple-cluster.html","/docs/33.0.0/misc/cluster-setup.html","/docs/33.0.0/misc/evaluate.html"],to:"/docs/33.0.0/tutorials/cluster"},{from:["/docs/33.0.0/configuration/realtime.html","/docs/33.0.0/design/plumber.html","/docs/33.0.0/design/realtime.html","/docs/33.0.0/development/extensions-contrib/kafka-simple.html","/docs/33.0.0/development/extensions-contrib/rabbitmq.html","/docs/33.0.0/development/extensions-contrib/rocketmq.html","/docs/33.0.0/development/extensions-core/kafka-eight-firehose.html","/docs/33.0.0/ingestion/stream-pull.html"],to:"/docs/33.0.0/ingestion/standalone-realtime"},{from:["/docs/33.0.0/configuration/zookeeper.html","/docs/33.0.0/dependencies/zookeeper.html"],to:"/docs/33.0.0/design/zookeeper"},{from:"/docs/33.0.0/dependencies/cassandra-deep-storage.html",to:"/docs/33.0.0/development/extensions-contrib/cassandra"},{from:["/docs/33.0.0/design/concepts-and-terminology.html","/docs/33.0.0/design/design.html","/docs/33.0.0/ingestion/batch-ingestion.html","/docs/33.0.0/ingestion/hadoop-vs-native-batch.html","/docs/33.0.0/ingestion/ingestion.html","/docs/33.0.0/ingestion/overview.html","/docs/33.0.0/ingestion/realtime-ingestion.html","/docs/33.0.0/ingestion/stream-ingestion.html","/docs/33.0.0/tutorials/examples.html","/docs/33.0.0/tutorials/ingestion-streams.html","/docs/33.0.0/tutorials/ingestion.html","/docs/33.0.0/tutorials/quickstart.html","/docs/33.0.0/tutorials/tutorial-a-first-look-at-druid.html","/docs/33.0.0/tutorials/tutorial-all-about-queries.html"],to:"/docs/33.0.0/design/"},{from:"/docs/33.0.0/development/approximate-histograms.html",to:"/docs/33.0.0/development/extensions-core/approximate-histograms"},{from:"/docs/33.0.0/development/community-extensions/azure.html",to:"/docs/33.0.0/development/extensions-core/azure"},{from:"/docs/33.0.0/development/community-extensions/cassandra.html",to:"/docs/33.0.0/development/extensions-contrib/cassandra"},{from:"/docs/33.0.0/development/community-extensions/cloudfiles.html",to:"/docs/33.0.0/development/extensions-contrib/cloudfiles"},{from:"/docs/33.0.0/development/community-extensions/graphite.html",to:"/docs/33.0.0/development/extensions-contrib/graphite"},{from:["/docs/33.0.0/development/community-extensions/kafka-simple.html","/docs/33.0.0/development/community-extensions/rabbitmq.html","/docs/33.0.0/development/kafka-simple-consumer-firehose.html","/docs/33.0.0/development/extensions-core/kafka-supervisor-operations.html","/docs/33.0.0/development/extensions-core/kafka-supervisor-reference.html","/docs/33.0.0/development/extensions-core/kafka-ingestion.html","/docs/33.0.0/development/extensions-core/kafka-supervisor-operations","/docs/33.0.0/development/extensions-core/kafka-supervisor-reference","/docs/33.0.0/development/extensions-core/kafka-ingestion"],to:"/docs/33.0.0/ingestion/kafka-ingestion"},{from:["/docs/33.0.0/development/extensions-core/kinesis-ingestion.html","/docs/33.0.0/development/extensions-core/kinesis-ingestion"],to:"/docs/33.0.0/ingestion/kinesis-ingestion"},{from:"/docs/33.0.0/development/extensions-contrib/orc.html",to:"/docs/33.0.0/development/extensions-core/orc"},{from:"/docs/33.0.0/development/extensions-contrib/parquet.html",to:"/docs/33.0.0/development/extensions-core/parquet"},{from:"/docs/33.0.0/development/extensions-contrib/scan-query.html",to:"/docs/33.0.0/querying/scan-query"},{from:["/docs/33.0.0/development/extensions-core/namespaced-lookup.html","/docs/33.0.0/development/extensions-core/lookups-cached-global"],to:"/docs/33.0.0/querying/lookups-cached-global"},{from:"/docs/33.0.0/development/indexer.html",to:"/docs/33.0.0/design/indexer"},{from:"/docs/33.0.0/development/router.html",to:"/docs/33.0.0/design/router"},{from:"/docs/33.0.0/development/select-query.html",to:"/docs/33.0.0/querying/select-query"},{from:["/docs/33.0.0/"],to:"/docs/33.0.0/design/"},{from:"/docs/33.0.0/ingestion/automatic-compaction.html",to:"/docs/33.0.0/data-management/automatic-compaction"},{from:"/docs/33.0.0/ingestion/command-line-hadoop-indexer.html",to:"/docs/33.0.0/ingestion/hadoop"},{from:"/docs/33.0.0/ingestion/compaction.html",to:"/docs/33.0.0/data-management/compaction"},{from:"/docs/33.0.0/ingestion/data-management.html",to:"/docs/33.0.0/data-management/"},{from:"/docs/33.0.0/ingestion/delete-data.html",to:"/docs/33.0.0/data-management/delete"},{from:["/docs/33.0.0/ingestion/firehose.html","/docs/33.0.0/ingestion/migrate-from-firehose"],to:"/docs/33.0.0/operations/migrate-from-firehose"},{from:["/docs/33.0.0/ingestion/transform-spec.html","/docs/33.0.0/ingestion/flatten-json.html"],to:"/docs/33.0.0/ingestion/ingestion-spec"},{from:["/docs/33.0.0/ingestion/locking-and-priority.html","/docs/33.0.0/ingestion/misc-tasks.html","/docs/33.0.0/ingestion/reports.html"],to:"/docs/33.0.0/ingestion/tasks"},{from:["/docs/33.0.0/ingestion/native_tasks.html","/docs/33.0.0/ingestion/native-batch-input-sources.html"],to:"/docs/33.0.0/ingestion/input-sources"},{from:"/docs/33.0.0/ingestion/schema-changes.html",to:"/docs/33.0.0/design/segments"},{from:"/docs/33.0.0/ingestion/stream-push.html",to:"/docs/33.0.0/ingestion/tranquility"},{from:"/docs/33.0.0/ingestion/update-existing-data.html",to:"/docs/33.0.0/data-management/update"},{from:"/docs/33.0.0/misc/tasks.html",to:"/docs/33.0.0/ingestion/tasks"},{from:["/docs/33.0.0/operations/including-extensions.html","/docs/33.0.0/development/extensions"],to:"/docs/33.0.0/configuration/extensions"},{from:"/docs/33.0.0/operations/multitenancy.html",to:"/docs/33.0.0/querying/multitenancy"},{from:"/docs/33.0.0/operations/performance-faq.html",to:"/docs/33.0.0/operations/basic-cluster-tuning"},{from:"/docs/33.0.0/querying/optimizations.html",to:"/docs/33.0.0/querying/multi-value-dimensions"},{from:"/docs/33.0.0/querying/searchqueryspec.html",to:"/docs/33.0.0/querying/searchquery"},{from:["/docs/33.0.0/tutorials/booting-a-production-cluster.html","/docs/33.0.0/tutorials/firewall.html","/docs/33.0.0/tutorials/tutorial-the-druid-cluster.html"],to:"/docs/33.0.0/tutorials/cluster"},{from:"/docs/33.0.0/tutorials/tutorial-loading-batch-data.html",to:"/docs/33.0.0/tutorials/tutorial-batch"},{from:"/docs/33.0.0/tutorials/tutorial-loading-streaming-data.html",to:"/docs/33.0.0/tutorials/tutorial-kafka"},{from:"/docs/33.0.0/tutorials/tutorial-tranquility.html",to:"/docs/33.0.0/ingestion/tranquility"},{from:"/docs/33.0.0/development/extensions-contrib/google.html",to:"/docs/33.0.0/development/extensions-core/google"},{from:"/docs/33.0.0/development/extensions-contrib/k8s-jobs",to:"/docs/33.0.0/development/extensions-core/k8s-jobs"},{from:"/docs/33.0.0/development/integrating-druid-with-other-technologies.html",to:"/docs/33.0.0/ingestion/"},{from:["/docs/33.0.0/operations/druid-console.html","/docs/33.0.0/operations/management-uis.html"],to:"/docs/33.0.0/operations/web-console"},{from:"/docs/33.0.0/operations/recommendations.html",to:"/docs/33.0.0/operations/basic-cluster-tuning"},{from:"/docs/33.0.0/misc/math-expr.html",to:"/docs/33.0.0/querying/math-expr"},{from:"/docs/33.0.0/operations/getting-started",to:"/docs/33.0.0/design/"},{from:"/docs/33.0.0/querying/sql-api.html",to:"/docs/33.0.0/api-reference/sql-api"},{from:"/docs/33.0.0/querying/sql-jdbc.html",to:"/docs/33.0.0/api-reference/sql-jdbc"},{from:"/docs/33.0.0/multi-stage-query/api.html",to:"/docs/33.0.0/api-reference/sql-ingestion-api"},{from:"/docs/33.0.0/operations/api-reference.html",to:"/docs/33.0.0/api-reference/"},{from:"/docs/33.0.0/design/processes.html",to:"/docs/33.0.0/design/architecture"},{from:"/docs/33.0.0/operations/api-reference/",to:"/docs/33.0.0/api-reference/"},{from:"/docs/33.0.0/development/extensions-core/druid-ranger-security",to:"/docs/33.0.0/development/extensions-contrib/druid-ranger-security"}]}],"/home/dev/druid-website-src/node_modules/docusaurus-lunr-search/src/index.js","@docusaurus/theme-mermaid"],themeConfig:{colorMode:{defaultMode:"light",disableSwitch:!0,respectPrefersColorScheme:!1},navbar:{logo:{src:"img/druid_nav.png"},style:"dark",items:[{to:"/technology",label:"Technology",position:"right"},{to:"/use-cases",label:"Use Cases",position:"right"},{to:"/druid-powered",label:"Powered By",position:"right"},{to:"/docs/33.0.0/design/",label:"Docs",position:"right"},{href:"/community/",label:"Community",position:"right"},{label:"Apache\xae",type:"dropdown",position:"right",items:[{href:"https://www.apache.org/",label:"Foundation"},{href:"https://apachecon.com/?ref=druid.apache.org",label:"Events"},{href:"https://www.apache.org/licenses/",label:"License"},{href:"https://www.apache.org/foundation/thanks.html",label:"Thanks"},{href:"https://www.apache.org/security/",label:"Security"},{href:"https://www.apache.org/foundation/sponsorship.html",label:"Sponsorship"}]},{href:"/downloads/",label:"Download",position:"right"}],hideOnScroll:!1},image:"img/druid_nav.png",footer:{links:[],copyright:"Copyright \xa9 2025 Apache Software Foundation. Except where otherwise noted, licensed under CC BY-SA 4.0. Apache Druid, Druid, and the Druid logo are either registered trademarks or trademarks of The Apache Software Foundation in the United States and other countries.",logo:{src:"img/favicon.png"},style:"light"},docs:{versionPersistence:"localStorage",sidebar:{hideable:!1,autoCollapseCategories:!1}},blog:{sidebar:{groupByYear:!0}},metadata:[],prism:{additionalLanguages:[],theme:{plain:{color:"#bfc7d5",backgroundColor:"#292d3e"},styles:[{types:["comment"],style:{color:"rgb(105, 112, 152)",fontStyle:"italic"}},{types:["string","inserted"],style:{color:"rgb(195, 232, 141)"}},{types:["number"],style:{color:"rgb(247, 140, 108)"}},{types:["builtin","char","constant","function"],style:{color:"rgb(130, 170, 255)"}},{types:["punctuation","selector"],style:{color:"rgb(199, 146, 234)"}},{types:["variable"],style:{color:"rgb(191, 199, 213)"}},{types:["class-name","attr-name"],style:{color:"rgb(255, 203, 107)"}},{types:["tag","deleted"],style:{color:"rgb(255, 85, 114)"}},{types:["operator"],style:{color:"rgb(137, 221, 255)"}},{types:["boolean"],style:{color:"rgb(255, 88, 116)"}},{types:["keyword"],style:{fontStyle:"italic"}},{types:["doctype"],style:{color:"rgb(199, 146, 234)",fontStyle:"italic"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)"}},{types:["url"],style:{color:"rgb(221, 221, 221)"}}]},magicComments:[{className:"theme-code-block-highlighted-line",line:"highlight-next-line",block:{start:"highlight-start",end:"highlight-end"}}]},tableOfContents:{minHeadingLevel:2,maxHeadingLevel:3},mermaid:{theme:{dark:"dark",light:"default"},options:{}}},baseUrlIssueBanner:!0,i18n:{defaultLocale:"en",path:"i18n",locales:["en"],localeConfigs:{}},future:{experimental_faster:{swcJsLoader:!1,swcJsMinimizer:!1,swcHtmlMinimizer:!1,lightningCssMinimizer:!1,mdxCrossCompilerCache:!1,rspackBundler:!1},experimental_storage:{type:"localStorage",namespace:!1},experimental_router:"browser"},onBrokenAnchors:"warn",onDuplicateRoutes:"warn",staticDirectories:["static"],themes:[],headTags:[],clientModules:[],titleDelimiter:"|",noIndex:!1}},5338:(e,t,n)=>{"use strict";var r=n(40961);t.createRoot=r.createRoot,t.hydrateRoot=r.hydrateRoot},5528:(e,t,n)=>{"use strict";n.d(t,{M:()=>f,e:()=>p});var r=n(96540),o=n(63065),a=n(86682),i=n(30604),s=n(53115),c=n(102),l=n(74848),u=r.createContext(void 0);function d(){var e,t=(e=(0,o.YL)(),0===(0,s.p)().navbar.items.length&&!e.component),n=(0,a.l)(),c=!t&&"mobile"===n,l=(0,r.useState)(!1),u=l[0],d=l[1];(0,i.$Z)((function(){if(u)return d(!1),!1}));var p=(0,r.useCallback)((function(){d((function(e){return!e}))}),[]);return(0,r.useEffect)((function(){"desktop"===n&&d(!1)}),[n]),(0,r.useMemo)((function(){return{disabled:t,shouldRender:c,toggle:p,shown:u}}),[t,c,p,u])}function p(e){var t=e.children,n=d();return(0,l.jsx)(u.Provider,{value:n,children:t})}function f(){var e=r.useContext(u);if(void 0===e)throw new c.dV("NavbarMobileSidebarProvider");return e}},5556:(e,t,n)=>{e.exports=n(2694)()},5947:function(e,t,n){var r,o;r=function(){var e,t,n={version:"0.2.0"},r=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'<div class="bar" role="bar"><div class="peg"></div></div><div class="spinner" role="spinner"><div class="spinner-icon"></div></div>'};function o(e,t,n){return e<t?t:e>n?n:e}function a(e){return 100*(-1+e)}function i(e,t,n){var o;return(o="translate3d"===r.positionUsing?{transform:"translate3d("+a(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+a(e)+"%,0)"}:{"margin-left":a(e)+"%"}).transition="all "+t+"ms "+n,o}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(r[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=o(e,r.minimum,1),n.status=1===e?null:e;var a=n.render(!t),l=a.querySelector(r.barSelector),u=r.speed,d=r.easing;return a.offsetWidth,s((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),c(l,i(e,u,d)),1===e?(c(a,{transition:"none",opacity:1}),a.offsetWidth,setTimeout((function(){c(a,{transition:"all "+u+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),u)}),u)):setTimeout(t,u)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout((function(){n.status&&(n.trickle(),e())}),r.trickleSpeed)};return r.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*o(Math.random()*t,.1,.95)),t=o(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},e=0,t=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===t&&n.start(),e++,t++,r.always((function(){0==--t?(e=0,n.done()):n.set((e-t)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");u(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var o,i=t.querySelector(r.barSelector),s=e?"-100":a(n.status||0),l=document.querySelector(r.parent);return c(i,{transition:"all 0 linear",transform:"translate3d("+s+"%,0,0)"}),r.showSpinner||(o=t.querySelector(r.spinnerSelector))&&f(o),l!=document.body&&u(l,"nprogress-custom-parent"),l.appendChild(t),t},n.remove=function(){d(document.documentElement,"nprogress-busy"),d(document.querySelector(r.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&f(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var s=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),c=function(){var e=["Webkit","O","Moz","ms"],t={};function n(e){return e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()}))}function r(t){var n=document.body.style;if(t in n)return t;for(var r,o=e.length,a=t.charAt(0).toUpperCase()+t.slice(1);o--;)if((r=e[o]+a)in n)return r;return t}function o(e){return e=n(e),t[e]||(t[e]=r(e))}function a(e,t,n){t=o(t),e.style[t]=n}return function(e,t){var n,r,o=arguments;if(2==o.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&a(e,n,r);else a(e,o[1],o[2])}}();function l(e,t){return("string"==typeof e?e:p(e)).indexOf(" "+t+" ")>=0}function u(e,t){var n=p(e),r=n+t;l(n,t)||(e.className=r.substring(1))}function d(e,t){var n,r=p(e);l(e,t)&&(n=r.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function p(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function f(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n},void 0===(o="function"==typeof r?r.call(t,n,t,e):r)||(e.exports=o)},6925:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},6969:e=>{e.exports&&(e.exports={core:{meta:{path:"components/prism-core.js",option:"mandatory"},core:"Core"},themes:{meta:{path:"themes/{id}.css",link:"index.html?theme={id}",exclusive:!0},prism:{title:"Default",option:"default"},"prism-dark":"Dark","prism-funky":"Funky","prism-okaidia":{title:"Okaidia",owner:"ocodia"},"prism-twilight":{title:"Twilight",owner:"remybach"},"prism-coy":{title:"Coy",owner:"tshedor"},"prism-solarizedlight":{title:"Solarized Light",owner:"hectormatos2011 "},"prism-tomorrow":{title:"Tomorrow Night",owner:"Rosey"}},languages:{meta:{path:"components/prism-{id}",noCSS:!0,examplesPath:"examples/prism-{id}",addCheckAll:!0},markup:{title:"Markup",alias:["html","xml","svg","mathml","ssml","atom","rss"],aliasTitles:{html:"HTML",xml:"XML",svg:"SVG",mathml:"MathML",ssml:"SSML",atom:"Atom",rss:"RSS"},option:"default"},css:{title:"CSS",option:"default",modify:"markup"},clike:{title:"C-like",option:"default"},javascript:{title:"JavaScript",require:"clike",modify:"markup",optional:"regex",alias:"js",option:"default"},abap:{title:"ABAP",owner:"dellagustin"},abnf:{title:"ABNF",owner:"RunDevelopment"},actionscript:{title:"ActionScript",require:"javascript",modify:"markup",owner:"Golmote"},ada:{title:"Ada",owner:"Lucretia"},agda:{title:"Agda",owner:"xy-ren"},al:{title:"AL",owner:"RunDevelopment"},antlr4:{title:"ANTLR4",alias:"g4",owner:"RunDevelopment"},apacheconf:{title:"Apache Configuration",owner:"GuiTeK"},apex:{title:"Apex",require:["clike","sql"],owner:"RunDevelopment"},apl:{title:"APL",owner:"ngn"},applescript:{title:"AppleScript",owner:"Golmote"},aql:{title:"AQL",owner:"RunDevelopment"},arduino:{title:"Arduino",require:"cpp",alias:"ino",owner:"dkern"},arff:{title:"ARFF",owner:"Golmote"},armasm:{title:"ARM Assembly",alias:"arm-asm",owner:"RunDevelopment"},arturo:{title:"Arturo",alias:"art",optional:["bash","css","javascript","markup","markdown","sql"],owner:"drkameleon"},asciidoc:{alias:"adoc",title:"AsciiDoc",owner:"Golmote"},aspnet:{title:"ASP.NET (C#)",require:["markup","csharp"],owner:"nauzilus"},asm6502:{title:"6502 Assembly",owner:"kzurawel"},asmatmel:{title:"Atmel AVR Assembly",owner:"cerkit"},autohotkey:{title:"AutoHotkey",owner:"aviaryan"},autoit:{title:"AutoIt",owner:"Golmote"},avisynth:{title:"AviSynth",alias:"avs",owner:"Zinfidel"},"avro-idl":{title:"Avro IDL",alias:"avdl",owner:"RunDevelopment"},awk:{title:"AWK",alias:"gawk",aliasTitles:{gawk:"GAWK"},owner:"RunDevelopment"},bash:{title:"Bash",alias:["sh","shell"],aliasTitles:{sh:"Shell",shell:"Shell"},owner:"zeitgeist87"},basic:{title:"BASIC",owner:"Golmote"},batch:{title:"Batch",owner:"Golmote"},bbcode:{title:"BBcode",alias:"shortcode",aliasTitles:{shortcode:"Shortcode"},owner:"RunDevelopment"},bbj:{title:"BBj",owner:"hyyan"},bicep:{title:"Bicep",owner:"johnnyreilly"},birb:{title:"Birb",require:"clike",owner:"Calamity210"},bison:{title:"Bison",require:"c",owner:"Golmote"},bnf:{title:"BNF",alias:"rbnf",aliasTitles:{rbnf:"RBNF"},owner:"RunDevelopment"},bqn:{title:"BQN",owner:"yewscion"},brainfuck:{title:"Brainfuck",owner:"Golmote"},brightscript:{title:"BrightScript",owner:"RunDevelopment"},bro:{title:"Bro",owner:"wayward710"},bsl:{title:"BSL (1C:Enterprise)",alias:"oscript",aliasTitles:{oscript:"OneScript"},owner:"Diversus23"},c:{title:"C",require:"clike",owner:"zeitgeist87"},csharp:{title:"C#",require:"clike",alias:["cs","dotnet"],owner:"mvalipour"},cpp:{title:"C++",require:"c",owner:"zeitgeist87"},cfscript:{title:"CFScript",require:"clike",alias:"cfc",owner:"mjclemente"},chaiscript:{title:"ChaiScript",require:["clike","cpp"],owner:"RunDevelopment"},cil:{title:"CIL",owner:"sbrl"},cilkc:{title:"Cilk/C",require:"c",alias:"cilk-c",owner:"OpenCilk"},cilkcpp:{title:"Cilk/C++",require:"cpp",alias:["cilk-cpp","cilk"],owner:"OpenCilk"},clojure:{title:"Clojure",owner:"troglotit"},cmake:{title:"CMake",owner:"mjrogozinski"},cobol:{title:"COBOL",owner:"RunDevelopment"},coffeescript:{title:"CoffeeScript",require:"javascript",alias:"coffee",owner:"R-osey"},concurnas:{title:"Concurnas",alias:"conc",owner:"jasontatton"},csp:{title:"Content-Security-Policy",owner:"ScottHelme"},cooklang:{title:"Cooklang",owner:"ahue"},coq:{title:"Coq",owner:"RunDevelopment"},crystal:{title:"Crystal",require:"ruby",owner:"MakeNowJust"},"css-extras":{title:"CSS Extras",require:"css",modify:"css",owner:"milesj"},csv:{title:"CSV",owner:"RunDevelopment"},cue:{title:"CUE",owner:"RunDevelopment"},cypher:{title:"Cypher",owner:"RunDevelopment"},d:{title:"D",require:"clike",owner:"Golmote"},dart:{title:"Dart",require:"clike",owner:"Golmote"},dataweave:{title:"DataWeave",owner:"machaval"},dax:{title:"DAX",owner:"peterbud"},dhall:{title:"Dhall",owner:"RunDevelopment"},diff:{title:"Diff",owner:"uranusjr"},django:{title:"Django/Jinja2",require:"markup-templating",alias:"jinja2",owner:"romanvm"},"dns-zone-file":{title:"DNS zone file",owner:"RunDevelopment",alias:"dns-zone"},docker:{title:"Docker",alias:"dockerfile",owner:"JustinBeckwith"},dot:{title:"DOT (Graphviz)",alias:"gv",optional:"markup",owner:"RunDevelopment"},ebnf:{title:"EBNF",owner:"RunDevelopment"},editorconfig:{title:"EditorConfig",owner:"osipxd"},eiffel:{title:"Eiffel",owner:"Conaclos"},ejs:{title:"EJS",require:["javascript","markup-templating"],owner:"RunDevelopment",alias:"eta",aliasTitles:{eta:"Eta"}},elixir:{title:"Elixir",owner:"Golmote"},elm:{title:"Elm",owner:"zwilias"},etlua:{title:"Embedded Lua templating",require:["lua","markup-templating"],owner:"RunDevelopment"},erb:{title:"ERB",require:["ruby","markup-templating"],owner:"Golmote"},erlang:{title:"Erlang",owner:"Golmote"},"excel-formula":{title:"Excel Formula",alias:["xlsx","xls"],owner:"RunDevelopment"},fsharp:{title:"F#",require:"clike",owner:"simonreynolds7"},factor:{title:"Factor",owner:"catb0t"},false:{title:"False",owner:"edukisto"},"firestore-security-rules":{title:"Firestore security rules",require:"clike",owner:"RunDevelopment"},flow:{title:"Flow",require:"javascript",owner:"Golmote"},fortran:{title:"Fortran",owner:"Golmote"},ftl:{title:"FreeMarker Template Language",require:"markup-templating",owner:"RunDevelopment"},gml:{title:"GameMaker Language",alias:"gamemakerlanguage",require:"clike",owner:"LiarOnce"},gap:{title:"GAP (CAS)",owner:"RunDevelopment"},gcode:{title:"G-code",owner:"RunDevelopment"},gdscript:{title:"GDScript",owner:"RunDevelopment"},gedcom:{title:"GEDCOM",owner:"Golmote"},gettext:{title:"gettext",alias:"po",owner:"RunDevelopment"},gherkin:{title:"Gherkin",owner:"hason"},git:{title:"Git",owner:"lgiraudel"},glsl:{title:"GLSL",require:"c",owner:"Golmote"},gn:{title:"GN",alias:"gni",owner:"RunDevelopment"},"linker-script":{title:"GNU Linker Script",alias:"ld",owner:"RunDevelopment"},go:{title:"Go",require:"clike",owner:"arnehormann"},"go-module":{title:"Go module",alias:"go-mod",owner:"RunDevelopment"},gradle:{title:"Gradle",require:"clike",owner:"zeabdelkhalek-badido18"},graphql:{title:"GraphQL",optional:"markdown",owner:"Golmote"},groovy:{title:"Groovy",require:"clike",owner:"robfletcher"},haml:{title:"Haml",require:"ruby",optional:["css","css-extras","coffeescript","erb","javascript","less","markdown","scss","textile"],owner:"Golmote"},handlebars:{title:"Handlebars",require:"markup-templating",alias:["hbs","mustache"],aliasTitles:{mustache:"Mustache"},owner:"Golmote"},haskell:{title:"Haskell",alias:"hs",owner:"bholst"},haxe:{title:"Haxe",require:"clike",optional:"regex",owner:"Golmote"},hcl:{title:"HCL",owner:"outsideris"},hlsl:{title:"HLSL",require:"c",owner:"RunDevelopment"},hoon:{title:"Hoon",owner:"matildepark"},http:{title:"HTTP",optional:["csp","css","hpkp","hsts","javascript","json","markup","uri"],owner:"danielgtaylor"},hpkp:{title:"HTTP Public-Key-Pins",owner:"ScottHelme"},hsts:{title:"HTTP Strict-Transport-Security",owner:"ScottHelme"},ichigojam:{title:"IchigoJam",owner:"BlueCocoa"},icon:{title:"Icon",owner:"Golmote"},"icu-message-format":{title:"ICU Message Format",owner:"RunDevelopment"},idris:{title:"Idris",alias:"idr",owner:"KeenS",require:"haskell"},ignore:{title:".ignore",owner:"osipxd",alias:["gitignore","hgignore","npmignore"],aliasTitles:{gitignore:".gitignore",hgignore:".hgignore",npmignore:".npmignore"}},inform7:{title:"Inform 7",owner:"Golmote"},ini:{title:"Ini",owner:"aviaryan"},io:{title:"Io",owner:"AlesTsurko"},j:{title:"J",owner:"Golmote"},java:{title:"Java",require:"clike",owner:"sherblot"},javadoc:{title:"JavaDoc",require:["markup","java","javadoclike"],modify:"java",optional:"scala",owner:"RunDevelopment"},javadoclike:{title:"JavaDoc-like",modify:["java","javascript","php"],owner:"RunDevelopment"},javastacktrace:{title:"Java stack trace",owner:"RunDevelopment"},jexl:{title:"Jexl",owner:"czosel"},jolie:{title:"Jolie",require:"clike",owner:"thesave"},jq:{title:"JQ",owner:"RunDevelopment"},jsdoc:{title:"JSDoc",require:["javascript","javadoclike","typescript"],modify:"javascript",optional:["actionscript","coffeescript"],owner:"RunDevelopment"},"js-extras":{title:"JS Extras",require:"javascript",modify:"javascript",optional:["actionscript","coffeescript","flow","n4js","typescript"],owner:"RunDevelopment"},json:{title:"JSON",alias:"webmanifest",aliasTitles:{webmanifest:"Web App Manifest"},owner:"CupOfTea696"},json5:{title:"JSON5",require:"json",owner:"RunDevelopment"},jsonp:{title:"JSONP",require:"json",owner:"RunDevelopment"},jsstacktrace:{title:"JS stack trace",owner:"sbrl"},"js-templates":{title:"JS Templates",require:"javascript",modify:"javascript",optional:["css","css-extras","graphql","markdown","markup","sql"],owner:"RunDevelopment"},julia:{title:"Julia",owner:"cdagnino"},keepalived:{title:"Keepalived Configure",owner:"dev-itsheng"},keyman:{title:"Keyman",owner:"mcdurdin"},kotlin:{title:"Kotlin",alias:["kt","kts"],aliasTitles:{kts:"Kotlin Script"},require:"clike",owner:"Golmote"},kumir:{title:"KuMir (\u041a\u0443\u041c\u0438\u0440)",alias:"kum",owner:"edukisto"},kusto:{title:"Kusto",owner:"RunDevelopment"},latex:{title:"LaTeX",alias:["tex","context"],aliasTitles:{tex:"TeX",context:"ConTeXt"},owner:"japborst"},latte:{title:"Latte",require:["clike","markup-templating","php"],owner:"nette"},less:{title:"Less",require:"css",optional:"css-extras",owner:"Golmote"},lilypond:{title:"LilyPond",require:"scheme",alias:"ly",owner:"RunDevelopment"},liquid:{title:"Liquid",require:"markup-templating",owner:"cinhtau"},lisp:{title:"Lisp",alias:["emacs","elisp","emacs-lisp"],owner:"JuanCaicedo"},livescript:{title:"LiveScript",owner:"Golmote"},llvm:{title:"LLVM IR",owner:"porglezomp"},log:{title:"Log file",optional:"javastacktrace",owner:"RunDevelopment"},lolcode:{title:"LOLCODE",owner:"Golmote"},lua:{title:"Lua",owner:"Golmote"},magma:{title:"Magma (CAS)",owner:"RunDevelopment"},makefile:{title:"Makefile",owner:"Golmote"},markdown:{title:"Markdown",require:"markup",optional:"yaml",alias:"md",owner:"Golmote"},"markup-templating":{title:"Markup templating",require:"markup",owner:"Golmote"},mata:{title:"Mata",owner:"RunDevelopment"},matlab:{title:"MATLAB",owner:"Golmote"},maxscript:{title:"MAXScript",owner:"RunDevelopment"},mel:{title:"MEL",owner:"Golmote"},mermaid:{title:"Mermaid",owner:"RunDevelopment"},metafont:{title:"METAFONT",owner:"LaeriExNihilo"},mizar:{title:"Mizar",owner:"Golmote"},mongodb:{title:"MongoDB",owner:"airs0urce",require:"javascript"},monkey:{title:"Monkey",owner:"Golmote"},moonscript:{title:"MoonScript",alias:"moon",owner:"RunDevelopment"},n1ql:{title:"N1QL",owner:"TMWilds"},n4js:{title:"N4JS",require:"javascript",optional:"jsdoc",alias:"n4jsd",owner:"bsmith-n4"},"nand2tetris-hdl":{title:"Nand To Tetris HDL",owner:"stephanmax"},naniscript:{title:"Naninovel Script",owner:"Elringus",alias:"nani"},nasm:{title:"NASM",owner:"rbmj"},neon:{title:"NEON",owner:"nette"},nevod:{title:"Nevod",owner:"nezaboodka"},nginx:{title:"nginx",owner:"volado"},nim:{title:"Nim",owner:"Golmote"},nix:{title:"Nix",owner:"Golmote"},nsis:{title:"NSIS",owner:"idleberg"},objectivec:{title:"Objective-C",require:"c",alias:"objc",owner:"uranusjr"},ocaml:{title:"OCaml",owner:"Golmote"},odin:{title:"Odin",owner:"edukisto"},opencl:{title:"OpenCL",require:"c",modify:["c","cpp"],owner:"Milania1"},openqasm:{title:"OpenQasm",alias:"qasm",owner:"RunDevelopment"},oz:{title:"Oz",owner:"Golmote"},parigp:{title:"PARI/GP",owner:"Golmote"},parser:{title:"Parser",require:"markup",owner:"Golmote"},pascal:{title:"Pascal",alias:"objectpascal",aliasTitles:{objectpascal:"Object Pascal"},owner:"Golmote"},pascaligo:{title:"Pascaligo",owner:"DefinitelyNotAGoat"},psl:{title:"PATROL Scripting Language",owner:"bertysentry"},pcaxis:{title:"PC-Axis",alias:"px",owner:"RunDevelopment"},peoplecode:{title:"PeopleCode",alias:"pcode",owner:"RunDevelopment"},perl:{title:"Perl",owner:"Golmote"},php:{title:"PHP",require:"markup-templating",owner:"milesj"},phpdoc:{title:"PHPDoc",require:["php","javadoclike"],modify:"php",owner:"RunDevelopment"},"php-extras":{title:"PHP Extras",require:"php",modify:"php",owner:"milesj"},"plant-uml":{title:"PlantUML",alias:"plantuml",owner:"RunDevelopment"},plsql:{title:"PL/SQL",require:"sql",owner:"Golmote"},powerquery:{title:"PowerQuery",alias:["pq","mscript"],owner:"peterbud"},powershell:{title:"PowerShell",owner:"nauzilus"},processing:{title:"Processing",require:"clike",owner:"Golmote"},prolog:{title:"Prolog",owner:"Golmote"},promql:{title:"PromQL",owner:"arendjr"},properties:{title:".properties",owner:"Golmote"},protobuf:{title:"Protocol Buffers",require:"clike",owner:"just-boris"},pug:{title:"Pug",require:["markup","javascript"],optional:["coffeescript","ejs","handlebars","less","livescript","markdown","scss","stylus","twig"],owner:"Golmote"},puppet:{title:"Puppet",owner:"Golmote"},pure:{title:"Pure",optional:["c","cpp","fortran"],owner:"Golmote"},purebasic:{title:"PureBasic",require:"clike",alias:"pbfasm",owner:"HeX0R101"},purescript:{title:"PureScript",require:"haskell",alias:"purs",owner:"sriharshachilakapati"},python:{title:"Python",alias:"py",owner:"multipetros"},qsharp:{title:"Q#",require:"clike",alias:"qs",owner:"fedonman"},q:{title:"Q (kdb+ database)",owner:"Golmote"},qml:{title:"QML",require:"javascript",owner:"RunDevelopment"},qore:{title:"Qore",require:"clike",owner:"temnroegg"},r:{title:"R",owner:"Golmote"},racket:{title:"Racket",require:"scheme",alias:"rkt",owner:"RunDevelopment"},cshtml:{title:"Razor C#",alias:"razor",require:["markup","csharp"],optional:["css","css-extras","javascript","js-extras"],owner:"RunDevelopment"},jsx:{title:"React JSX",require:["markup","javascript"],optional:["jsdoc","js-extras","js-templates"],owner:"vkbansal"},tsx:{title:"React TSX",require:["jsx","typescript"]},reason:{title:"Reason",require:"clike",owner:"Golmote"},regex:{title:"Regex",owner:"RunDevelopment"},rego:{title:"Rego",owner:"JordanSh"},renpy:{title:"Ren'py",alias:"rpy",owner:"HyuchiaDiego"},rescript:{title:"ReScript",alias:"res",owner:"vmarcosp"},rest:{title:"reST (reStructuredText)",owner:"Golmote"},rip:{title:"Rip",owner:"ravinggenius"},roboconf:{title:"Roboconf",owner:"Golmote"},robotframework:{title:"Robot Framework",alias:"robot",owner:"RunDevelopment"},ruby:{title:"Ruby",require:"clike",alias:"rb",owner:"samflores"},rust:{title:"Rust",owner:"Golmote"},sas:{title:"SAS",optional:["groovy","lua","sql"],owner:"Golmote"},sass:{title:"Sass (Sass)",require:"css",optional:"css-extras",owner:"Golmote"},scss:{title:"Sass (SCSS)",require:"css",optional:"css-extras",owner:"MoOx"},scala:{title:"Scala",require:"java",owner:"jozic"},scheme:{title:"Scheme",owner:"bacchus123"},"shell-session":{title:"Shell session",require:"bash",alias:["sh-session","shellsession"],owner:"RunDevelopment"},smali:{title:"Smali",owner:"RunDevelopment"},smalltalk:{title:"Smalltalk",owner:"Golmote"},smarty:{title:"Smarty",require:"markup-templating",optional:"php",owner:"Golmote"},sml:{title:"SML",alias:"smlnj",aliasTitles:{smlnj:"SML/NJ"},owner:"RunDevelopment"},solidity:{title:"Solidity (Ethereum)",alias:"sol",require:"clike",owner:"glachaud"},"solution-file":{title:"Solution file",alias:"sln",owner:"RunDevelopment"},soy:{title:"Soy (Closure Template)",require:"markup-templating",owner:"Golmote"},sparql:{title:"SPARQL",require:"turtle",owner:"Triply-Dev",alias:"rq"},"splunk-spl":{title:"Splunk SPL",owner:"RunDevelopment"},sqf:{title:"SQF: Status Quo Function (Arma 3)",require:"clike",owner:"RunDevelopment"},sql:{title:"SQL",owner:"multipetros"},squirrel:{title:"Squirrel",require:"clike",owner:"RunDevelopment"},stan:{title:"Stan",owner:"RunDevelopment"},stata:{title:"Stata Ado",require:["mata","java","python"],owner:"RunDevelopment"},iecst:{title:"Structured Text (IEC 61131-3)",owner:"serhioromano"},stylus:{title:"Stylus",owner:"vkbansal"},supercollider:{title:"SuperCollider",alias:"sclang",owner:"RunDevelopment"},swift:{title:"Swift",owner:"chrischares"},systemd:{title:"Systemd configuration file",owner:"RunDevelopment"},"t4-templating":{title:"T4 templating",owner:"RunDevelopment"},"t4-cs":{title:"T4 Text Templates (C#)",require:["t4-templating","csharp"],alias:"t4",owner:"RunDevelopment"},"t4-vb":{title:"T4 Text Templates (VB)",require:["t4-templating","vbnet"],owner:"RunDevelopment"},tap:{title:"TAP",owner:"isaacs",require:"yaml"},tcl:{title:"Tcl",owner:"PeterChaplin"},tt2:{title:"Template Toolkit 2",require:["clike","markup-templating"],owner:"gflohr"},textile:{title:"Textile",require:"markup",optional:"css",owner:"Golmote"},toml:{title:"TOML",owner:"RunDevelopment"},tremor:{title:"Tremor",alias:["trickle","troy"],owner:"darach",aliasTitles:{trickle:"trickle",troy:"troy"}},turtle:{title:"Turtle",alias:"trig",aliasTitles:{trig:"TriG"},owner:"jakubklimek"},twig:{title:"Twig",require:"markup-templating",owner:"brandonkelly"},typescript:{title:"TypeScript",require:"javascript",optional:"js-templates",alias:"ts",owner:"vkbansal"},typoscript:{title:"TypoScript",alias:"tsconfig",aliasTitles:{tsconfig:"TSConfig"},owner:"dkern"},unrealscript:{title:"UnrealScript",alias:["uscript","uc"],owner:"RunDevelopment"},uorazor:{title:"UO Razor Script",owner:"jaseowns"},uri:{title:"URI",alias:"url",aliasTitles:{url:"URL"},owner:"RunDevelopment"},v:{title:"V",require:"clike",owner:"taggon"},vala:{title:"Vala",require:"clike",optional:"regex",owner:"TemplarVolk"},vbnet:{title:"VB.Net",require:"basic",owner:"Bigsby"},velocity:{title:"Velocity",require:"markup",owner:"Golmote"},verilog:{title:"Verilog",owner:"a-rey"},vhdl:{title:"VHDL",owner:"a-rey"},vim:{title:"vim",owner:"westonganger"},"visual-basic":{title:"Visual Basic",alias:["vb","vba"],aliasTitles:{vba:"VBA"},owner:"Golmote"},warpscript:{title:"WarpScript",owner:"RunDevelopment"},wasm:{title:"WebAssembly",owner:"Golmote"},"web-idl":{title:"Web IDL",alias:"webidl",owner:"RunDevelopment"},wgsl:{title:"WGSL",owner:"Dr4gonthree"},wiki:{title:"Wiki markup",require:"markup",owner:"Golmote"},wolfram:{title:"Wolfram language",alias:["mathematica","nb","wl"],aliasTitles:{mathematica:"Mathematica",nb:"Mathematica Notebook"},owner:"msollami"},wren:{title:"Wren",owner:"clsource"},xeora:{title:"Xeora",require:"markup",alias:"xeoracube",aliasTitles:{xeoracube:"XeoraCube"},owner:"freakmaxi"},"xml-doc":{title:"XML doc (.net)",require:"markup",modify:["csharp","fsharp","vbnet"],owner:"RunDevelopment"},xojo:{title:"Xojo (REALbasic)",owner:"Golmote"},xquery:{title:"XQuery",require:"markup",owner:"Golmote"},yaml:{title:"YAML",alias:"yml",owner:"hason"},yang:{title:"YANG",owner:"RunDevelopment"},zig:{title:"Zig",owner:"RunDevelopment"}},plugins:{meta:{path:"plugins/{id}/prism-{id}",link:"plugins/{id}/"},"line-highlight":{title:"Line Highlight",description:"Highlights specific lines and/or line ranges."},"line-numbers":{title:"Line Numbers",description:"Line number at the beginning of code lines.",owner:"kuba-kubula"},"show-invisibles":{title:"Show Invisibles",description:"Show hidden characters such as tabs and line breaks.",optional:["autolinker","data-uri-highlight"]},autolinker:{title:"Autolinker",description:"Converts URLs and emails in code to clickable links. Parses Markdown links in comments."},wpd:{title:"WebPlatform Docs",description:'Makes tokens link to <a href="https://webplatform.github.io/docs/">WebPlatform.org documentation</a>. The links open in a new tab.'},"custom-class":{title:"Custom Class",description:"This plugin allows you to prefix Prism's default classes (<code>.comment</code> can become <code>.namespace--comment</code>) or replace them with your defined ones (like <code>.editor__comment</code>). You can even add new classes.",owner:"dvkndn",noCSS:!0},"file-highlight":{title:"File Highlight",description:"Fetch external files and highlight them with Prism. Used on the Prism website itself.",noCSS:!0},"show-language":{title:"Show Language",description:"Display the highlighted language in code blocks (inline code does not show the label).",owner:"nauzilus",noCSS:!0,require:"toolbar"},"jsonp-highlight":{title:"JSONP Highlight",description:"Fetch content with JSONP and highlight some interesting content (e.g. GitHub/Gists or Bitbucket API).",noCSS:!0,owner:"nauzilus"},"highlight-keywords":{title:"Highlight Keywords",description:"Adds special CSS classes for each keyword for fine-grained highlighting.",owner:"vkbansal",noCSS:!0},"remove-initial-line-feed":{title:"Remove initial line feed",description:"Removes the initial line feed in code blocks.",owner:"Golmote",noCSS:!0},"inline-color":{title:"Inline color",description:"Adds a small inline preview for colors in style sheets.",require:"css-extras",owner:"RunDevelopment"},previewers:{title:"Previewers",description:"Previewers for angles, colors, gradients, easing and time.",require:"css-extras",owner:"Golmote"},autoloader:{title:"Autoloader",description:"Automatically loads the needed languages to highlight the code blocks.",owner:"Golmote",noCSS:!0},"keep-markup":{title:"Keep Markup",description:"Prevents custom markup from being dropped out during highlighting.",owner:"Golmote",optional:"normalize-whitespace",noCSS:!0},"command-line":{title:"Command Line",description:"Display a command line with a prompt and, optionally, the output/response from the commands.",owner:"chriswells0"},"unescaped-markup":{title:"Unescaped Markup",description:"Write markup without having to escape anything."},"normalize-whitespace":{title:"Normalize Whitespace",description:"Supports multiple operations to normalize whitespace in code blocks.",owner:"zeitgeist87",optional:"unescaped-markup",noCSS:!0},"data-uri-highlight":{title:"Data-URI Highlight",description:"Highlights data-URI contents.",owner:"Golmote",noCSS:!0},toolbar:{title:"Toolbar",description:"Attach a toolbar for plugins to easily register buttons on the top of a code block.",owner:"mAAdhaTTah"},"copy-to-clipboard":{title:"Copy to Clipboard Button",description:"Add a button that copies the code block to the clipboard when clicked.",owner:"mAAdhaTTah",require:"toolbar",noCSS:!0},"download-button":{title:"Download Button",description:"A button in the toolbar of a code block adding a convenient way to download a code file.",owner:"Golmote",require:"toolbar",noCSS:!0},"match-braces":{title:"Match braces",description:"Highlights matching braces.",owner:"RunDevelopment"},"diff-highlight":{title:"Diff Highlight",description:"Highlights the code inside diff blocks.",owner:"RunDevelopment",require:"diff"},"filter-highlight-all":{title:"Filter highlightAll",description:"Filters the elements the <code>highlightAll</code> and <code>highlightAllUnder</code> methods actually highlight.",owner:"RunDevelopment",noCSS:!0},treeview:{title:"Treeview",description:"A language with special styles to highlight file system tree structures.",owner:"Golmote"}}})},7463:(e,t)=>{"use strict";function n(e,t){var n=e.length;e.push(t);e:for(;0<n;){var r=n-1>>>1,o=e[r];if(!(0<a(o,t)))break e;e[r]=t,e[n]=o,n=r}}function r(e){return 0===e.length?null:e[0]}function o(e){if(0===e.length)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;e:for(var r=0,o=e.length,i=o>>>1;r<i;){var s=2*(r+1)-1,c=e[s],l=s+1,u=e[l];if(0>a(c,n))l<o&&0>a(u,c)?(e[r]=u,e[l]=n,r=l):(e[r]=c,e[s]=n,r=s);else{if(!(l<o&&0>a(u,n)))break e;e[r]=u,e[l]=n,r=l}}}return t}function a(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}if("object"==typeof performance&&"function"==typeof performance.now){var i=performance;t.unstable_now=function(){return i.now()}}else{var s=Date,c=s.now();t.unstable_now=function(){return s.now()-c}}var l=[],u=[],d=1,p=null,f=3,m=!1,h=!1,g=!1,b="function"==typeof setTimeout?setTimeout:null,y="function"==typeof clearTimeout?clearTimeout:null,v="undefined"!=typeof setImmediate?setImmediate:null;function x(e){for(var t=r(u);null!==t;){if(null===t.callback)o(u);else{if(!(t.startTime<=e))break;o(u),t.sortIndex=t.expirationTime,n(l,t)}t=r(u)}}function w(e){if(g=!1,x(e),!h)if(null!==r(l))h=!0,R(k);else{var t=r(u);null!==t&&P(w,t.startTime-e)}}function k(e,n){h=!1,g&&(g=!1,y(C),C=-1),m=!0;var a=f;try{for(x(n),p=r(l);null!==p&&(!(p.expirationTime>n)||e&&!j());){var i=p.callback;if("function"==typeof i){p.callback=null,f=p.priorityLevel;var s=i(p.expirationTime<=n);n=t.unstable_now(),"function"==typeof s?p.callback=s:p===r(l)&&o(l),x(n)}else o(l);p=r(l)}if(null!==p)var c=!0;else{var d=r(u);null!==d&&P(w,d.startTime-n),c=!1}return c}finally{p=null,f=a,m=!1}}"undefined"!=typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);var _,S=!1,E=null,C=-1,A=5,q=-1;function j(){return!(t.unstable_now()-q<A)}function T(){if(null!==E){var e=t.unstable_now();q=e;var n=!0;try{n=E(!0,e)}finally{n?_():(S=!1,E=null)}}else S=!1}if("function"==typeof v)_=function(){v(T)};else if("undefined"!=typeof MessageChannel){var N=new MessageChannel,O=N.port2;N.port1.onmessage=T,_=function(){O.postMessage(null)}}else _=function(){b(T,0)};function R(e){E=e,S||(S=!0,_())}function P(e,n){C=b((function(){e(t.unstable_now())}),n)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_continueExecution=function(){h||m||(h=!0,R(k))},t.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):A=0<e?Math.floor(1e3/e):5},t.unstable_getCurrentPriorityLevel=function(){return f},t.unstable_getFirstCallbackNode=function(){return r(l)},t.unstable_next=function(e){switch(f){case 1:case 2:case 3:var t=3;break;default:t=f}var n=f;f=t;try{return e()}finally{f=n}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=function(){},t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=f;f=e;try{return t()}finally{f=n}},t.unstable_scheduleCallback=function(e,o,a){var i=t.unstable_now();switch("object"==typeof a&&null!==a?a="number"==typeof(a=a.delay)&&0<a?i+a:i:a=i,e){case 1:var s=-1;break;case 2:s=250;break;case 5:s=1073741823;break;case 4:s=1e4;break;default:s=5e3}return e={id:d++,callback:o,priorityLevel:e,startTime:a,expirationTime:s=a+s,sortIndex:-1},a>i?(e.sortIndex=a,n(u,e),null===r(l)&&e===r(u)&&(g?(y(C),C=-1):g=!0,P(w,a-i))):(e.sortIndex=s,n(l,e),h||m||(h=!0,R(k))),e},t.unstable_shouldYield=j,t.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}},8532:(e,t,n)=>{"use strict";n.d(t,{G:()=>b,a:()=>g});var r=n(96540),o=n(61934),a=n(102),i=n(78749),s=n(53115),c=n(74848),l=r.createContext(void 0),u="theme",d=(0,i.Wf)(u),p={light:"light",dark:"dark"},f=function(e){return e===p.dark?p.dark:p.light},m=function(e){return o.A.canUseDOM?f(document.documentElement.getAttribute("data-theme")):f(e)},h=function(e){d.set(f(e))};function g(e){var t=e.children,n=function(){var e=(0,s.p)().colorMode,t=e.defaultMode,n=e.disableSwitch,o=e.respectPrefersColorScheme,a=(0,r.useState)(m(t)),i=a[0],c=a[1];(0,r.useEffect)((function(){n&&d.del()}),[n]);var l=(0,r.useCallback)((function(e,n){void 0===n&&(n={});var r=n.persist,a=void 0===r||r;e?(c(e),a&&h(e)):(c(o?window.matchMedia("(prefers-color-scheme: dark)").matches?p.dark:p.light:t),d.del())}),[o,t]);(0,r.useEffect)((function(){document.documentElement.setAttribute("data-theme",f(i))}),[i]),(0,r.useEffect)((function(){if(!n){var e=function(e){if(e.key===u){var t=d.get();null!==t&&l(f(t))}};return window.addEventListener("storage",e),function(){return window.removeEventListener("storage",e)}}}),[n,l]);var g=(0,r.useRef)(!1);return(0,r.useEffect)((function(){if(!n||o){var e=window.matchMedia("(prefers-color-scheme: dark)"),t=function(){window.matchMedia("print").matches||g.current?g.current=window.matchMedia("print").matches:l(null)};return e.addListener(t),function(){return e.removeListener(t)}}}),[l,n,o]),(0,r.useMemo)((function(){return{colorMode:i,setColorMode:l,get isDarkTheme(){return i===p.dark},setLightTheme:function(){l(p.light)},setDarkTheme:function(){l(p.dark)}}}),[i,l])}();return(0,c.jsx)(l.Provider,{value:n,children:t})}function b(){var e=(0,r.useContext)(l);if(null==e)throw new a.dV("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},8722:(e,t,n)=>{const r=n(6969),o=n(98380),a=new Set;function i(e){void 0===e?e=Object.keys(r.languages).filter((e=>"meta"!=e)):Array.isArray(e)||(e=[e]);const t=[...a,...Object.keys(Prism.languages)];o(r,e,t).load((e=>{if(!(e in r.languages))return void(i.silent||console.warn("Language does not exist: "+e));const t="./prism-"+e;delete n.c[n(63157).resolve(t)],delete Prism.languages[e],n(63157)(t),a.add(e)}))}i.silent=!1,e.exports=i},9136:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var r=n(96540),o=n(84974);function a(){return(0,r.useContext)(o.o)}},9303:(e,t,n)=>{"use strict";n.d(t,{A:()=>p});var r=n(98587),o=(n(96540),n(18215)),a=n(50539),i=n(53115),s=n(56289),c=n(25246);const l={anchorWithStickyNavbar:"anchorWithStickyNavbar_LWe7",anchorWithHideOnScrollNavbar:"anchorWithHideOnScrollNavbar_WYt5"};var u=n(74848),d=["as","id"];function p(e){var t=e.as,n=e.id,p=(0,r.A)(e,d),f=(0,c.A)(),m=(0,i.p)().navbar.hideOnScroll;if("h1"===t||!n)return(0,u.jsx)(t,Object.assign({},p,{id:void 0}));f.collectAnchor(n);var h=(0,a.T)({id:"theme.common.headingLinkTitle",message:"Direct link to {heading}",description:"Title for link to heading"},{heading:"string"==typeof p.children?p.children:n});return(0,u.jsxs)(t,Object.assign({},p,{className:(0,o.A)("anchor",m?l.anchorWithHideOnScrollNavbar:l.anchorWithStickyNavbar,p.className),id:n,children:[p.children,(0,u.jsx)(s.A,{className:"hash-link",to:"#"+n,"aria-label":h,title:h,children:"\u200b"})]}))}},11561:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var r=!0,o="Invariant failed";function a(e,t){if(!e){if(r)throw new Error(o);var n="function"==typeof t?t():t,a=n?"".concat(o,": ").concat(n):o;throw new Error(a)}}},11861:(e,t,n)=>{"use strict";function r(e,t){return void 0===t&&(t=function(e,t){return e===t}),e.filter((function(n,r){return e.findIndex((function(e){return t(e,n)}))!==r}))}function o(e){return Array.from(new Set(e))}n.d(t,{XI:()=>r,sb:()=>o})},12862:(e,t,n)=>{"use strict";n.d(t,{A:()=>p});var r=n(98587),o=(n(96540),n(56289)),a=n(29030),i=n(40797),s=n(53115),c=n(39324),l=n(74848),u=["imageClassName","titleClassName"];function d(e){var t=e.logo,n=e.alt,r=e.imageClassName,o={light:(0,a.Ay)(t.src),dark:(0,a.Ay)(t.srcDark||t.src)},i=(0,l.jsx)(c.A,{className:t.className,sources:o,height:t.height,width:t.width,alt:n,style:t.style});return r?(0,l.jsx)("div",{className:r,children:i}):i}function p(e){var t,n=(0,i.A)().siteConfig.title,c=(0,s.p)().navbar,p=c.title,f=c.logo,m=e.imageClassName,h=e.titleClassName,g=(0,r.A)(e,u),b=(0,a.Ay)((null==f?void 0:f.href)||"/"),y=p?"":n,v=null!=(t=null==f?void 0:f.alt)?t:y;return(0,l.jsxs)(o.A,Object.assign({to:b},g,(null==f?void 0:f.target)&&{target:f.target},{children:[f&&(0,l.jsx)(d,{logo:f,alt:v,imageClassName:m}),null!=p&&(0,l.jsx)("b",{className:h,children:p})]}))}},13722:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=function(e){return"object"==typeof e&&!!e&&Object.keys(e).length>0};function o(e){var t={};return function e(n,o){Object.entries(n).forEach((function(n){var a=n[0],i=n[1],s=o?o+"."+a:a;r(i)?e(i,s):t[s]=i}))}(e),t}},15066:(e,t,n)=>{"use strict";function r(e){var t,n,o="";if("string"==typeof e||"number"==typeof e)o+=e;else if("object"==typeof e)if(Array.isArray(e)){var a=e.length;for(t=0;t<a;t++)e[t]&&(n=r(e[t]))&&(o&&(o+=" "),o+=n)}else for(n in e)e[n]&&(o&&(o+=" "),o+=n);return o}n.d(t,{A:()=>o});const o=function(){for(var e,t,n=0,o="",a=arguments.length;n<a;n++)(e=arguments[n])&&(t=r(e))&&(o&&(o+=" "),o+=t);return o}},15287:(e,t)=>{"use strict";var n=Symbol.for("react.element"),r=Symbol.for("react.portal"),o=Symbol.for("react.fragment"),a=Symbol.for("react.strict_mode"),i=Symbol.for("react.profiler"),s=Symbol.for("react.provider"),c=Symbol.for("react.context"),l=Symbol.for("react.forward_ref"),u=Symbol.for("react.suspense"),d=Symbol.for("react.memo"),p=Symbol.for("react.lazy"),f=Symbol.iterator;var m={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},h=Object.assign,g={};function b(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||m}function y(){}function v(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||m}b.prototype.isReactComponent={},b.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)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,e,t,"setState")},b.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},y.prototype=b.prototype;var x=v.prototype=new y;x.constructor=v,h(x,b.prototype),x.isPureReactComponent=!0;var w=Array.isArray,k=Object.prototype.hasOwnProperty,_={current:null},S={key:!0,ref:!0,__self:!0,__source:!0};function E(e,t,r){var o,a={},i=null,s=null;if(null!=t)for(o in void 0!==t.ref&&(s=t.ref),void 0!==t.key&&(i=""+t.key),t)k.call(t,o)&&!S.hasOwnProperty(o)&&(a[o]=t[o]);var c=arguments.length-2;if(1===c)a.children=r;else if(1<c){for(var l=Array(c),u=0;u<c;u++)l[u]=arguments[u+2];a.children=l}if(e&&e.defaultProps)for(o in c=e.defaultProps)void 0===a[o]&&(a[o]=c[o]);return{$$typeof:n,type:e,key:i,ref:s,props:a,_owner:_.current}}function C(e){return"object"==typeof e&&null!==e&&e.$$typeof===n}var A=/\/+/g;function q(e,t){return"object"==typeof e&&null!==e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,(function(e){return t[e]}))}(""+e.key):t.toString(36)}function j(e,t,o,a,i){var s=typeof e;"undefined"!==s&&"boolean"!==s||(e=null);var c=!1;if(null===e)c=!0;else switch(s){case"string":case"number":c=!0;break;case"object":switch(e.$$typeof){case n:case r:c=!0}}if(c)return i=i(c=e),e=""===a?"."+q(c,0):a,w(i)?(o="",null!=e&&(o=e.replace(A,"$&/")+"/"),j(i,t,o,"",(function(e){return e}))):null!=i&&(C(i)&&(i=function(e,t){return{$$typeof:n,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(i,o+(!i.key||c&&c.key===i.key?"":(""+i.key).replace(A,"$&/")+"/")+e)),t.push(i)),1;if(c=0,a=""===a?".":a+":",w(e))for(var l=0;l<e.length;l++){var u=a+q(s=e[l],l);c+=j(s,t,o,u,i)}else if(u=function(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=f&&e[f]||e["@@iterator"])?e:null}(e),"function"==typeof u)for(e=u.call(e),l=0;!(s=e.next()).done;)c+=j(s=s.value,t,o,u=a+q(s,l++),i);else if("object"===s)throw t=String(e),Error("Objects are not valid as a React child (found: "+("[object Object]"===t?"object with keys {"+Object.keys(e).join(", ")+"}":t)+"). If you meant to render a collection of children, use an array instead.");return c}function T(e,t,n){if(null==e)return e;var r=[],o=0;return j(e,r,"","",(function(e){return t.call(n,e,o++)})),r}function N(e){if(-1===e._status){var t=e._result;(t=t()).then((function(t){0!==e._status&&-1!==e._status||(e._status=1,e._result=t)}),(function(t){0!==e._status&&-1!==e._status||(e._status=2,e._result=t)})),-1===e._status&&(e._status=0,e._result=t)}if(1===e._status)return e._result.default;throw e._result}var O={current:null},R={transition:null},P={ReactCurrentDispatcher:O,ReactCurrentBatchConfig:R,ReactCurrentOwner:_};function L(){throw Error("act(...) is not supported in production builds of React.")}t.Children={map:T,forEach:function(e,t,n){T(e,(function(){t.apply(this,arguments)}),n)},count:function(e){var t=0;return T(e,(function(){t++})),t},toArray:function(e){return T(e,(function(e){return e}))||[]},only:function(e){if(!C(e))throw Error("React.Children.only expected to receive a single React element child.");return e}},t.Component=b,t.Fragment=o,t.Profiler=i,t.PureComponent=v,t.StrictMode=a,t.Suspense=u,t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=P,t.act=L,t.cloneElement=function(e,t,r){if(null==e)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+e+".");var o=h({},e.props),a=e.key,i=e.ref,s=e._owner;if(null!=t){if(void 0!==t.ref&&(i=t.ref,s=_.current),void 0!==t.key&&(a=""+t.key),e.type&&e.type.defaultProps)var c=e.type.defaultProps;for(l in t)k.call(t,l)&&!S.hasOwnProperty(l)&&(o[l]=void 0===t[l]&&void 0!==c?c[l]:t[l])}var l=arguments.length-2;if(1===l)o.children=r;else if(1<l){c=Array(l);for(var u=0;u<l;u++)c[u]=arguments[u+2];o.children=c}return{$$typeof:n,type:e.type,key:a,ref:i,props:o,_owner:s}},t.createContext=function(e){return(e={$$typeof:c,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null}).Provider={$$typeof:s,_context:e},e.Consumer=e},t.createElement=E,t.createFactory=function(e){var t=E.bind(null,e);return t.type=e,t},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:l,render:e}},t.isValidElement=C,t.lazy=function(e){return{$$typeof:p,_payload:{_status:-1,_result:e},_init:N}},t.memo=function(e,t){return{$$typeof:d,type:e,compare:void 0===t?null:t}},t.startTransition=function(e){var t=R.transition;R.transition={};try{e()}finally{R.transition=t}},t.unstable_act=L,t.useCallback=function(e,t){return O.current.useCallback(e,t)},t.useContext=function(e){return O.current.useContext(e)},t.useDebugValue=function(){},t.useDeferredValue=function(e){return O.current.useDeferredValue(e)},t.useEffect=function(e,t){return O.current.useEffect(e,t)},t.useId=function(){return O.current.useId()},t.useImperativeHandle=function(e,t,n){return O.current.useImperativeHandle(e,t,n)},t.useInsertionEffect=function(e,t){return O.current.useInsertionEffect(e,t)},t.useLayoutEffect=function(e,t){return O.current.useLayoutEffect(e,t)},t.useMemo=function(e,t){return O.current.useMemo(e,t)},t.useReducer=function(e,t,n){return O.current.useReducer(e,t,n)},t.useRef=function(e){return O.current.useRef(e)},t.useState=function(e){return O.current.useState(e)},t.useSyncExternalStore=function(e,t,n){return O.current.useSyncExternalStore(e,t,n)},t.useTransition=function(){return O.current.useTransition()},t.version="18.3.1"},15891:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});n(96540);const r={iconExternalLink:"iconExternalLink_nPIU"};var o=n(74848);function a(e){var t=e.width,n=void 0===t?13.5:t,a=e.height,i=void 0===a?13.5:a;return(0,o.jsx)("svg",{width:n,height:i,"aria-hidden":"true",viewBox:"0 0 24 24",className:r.iconExternalLink,children:(0,o.jsx)("path",{fill:"currentColor",d:"M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"})})}},18215:(e,t,n)=>{"use strict";function r(e){var t,n,o="";if("string"==typeof e||"number"==typeof e)o+=e;else if("object"==typeof e)if(Array.isArray(e)){var a=e.length;for(t=0;t<a;t++)e[t]&&(n=r(e[t]))&&(o&&(o+=" "),o+=n)}else for(n in e)e[n]&&(o&&(o+=" "),o+=n);return o}n.d(t,{A:()=>o});const o=function(){for(var e,t,n=0,o="",a=arguments.length;n<a;n++)(e=arguments[n])&&(t=r(e))&&(o&&(o+=" "),o+=t);return o}},18692:(e,t,n)=>{var r={"./":8722};function o(e){var t=a(e);return n(t)}function a(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}o.keys=function(){return Object.keys(r)},o.resolve=a,e.exports=o,o.id=18692},19700:()=>{!function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,o,a){if(n.language===r){var i=n.tokenStack=[];n.code=n.code.replace(o,(function(e){if("function"==typeof a&&!a(e))return e;for(var o,s=i.length;-1!==n.code.indexOf(o=t(r,s));)++s;return i[s]=e,o})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var o=0,a=Object.keys(n.tokenStack);!function i(s){for(var c=0;c<s.length&&!(o>=a.length);c++){var l=s[c];if("string"==typeof l||l.content&&"string"==typeof l.content){var u=a[o],d=n.tokenStack[u],p="string"==typeof l?l:l.content,f=t(r,u),m=p.indexOf(f);if(m>-1){++o;var h=p.substring(0,m),g=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),b=p.substring(m+f.length),y=[];h&&y.push.apply(y,i([h])),y.push(g),b&&y.push.apply(y,i([b])),"string"==typeof l?s.splice.apply(s,[c,1].concat(y)):l.content=y}}else l.content&&i(l.content)}return s}(n.tokens)}}}})}(Prism)},20311:e=>{"use strict";e.exports=function(e,t,n,r,o,a,i,s){if(!e){var c;if(void 0===t)c=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var l=[n,r,o,a,i,s],u=0;(c=new Error(t.replace(/%s/g,(function(){return l[u++]})))).name="Invariant Violation"}throw c.framesToPop=1,c}}},21020:(e,t,n)=>{"use strict";var r=n(96540),o=Symbol.for("react.element"),a=Symbol.for("react.fragment"),i=Object.prototype.hasOwnProperty,s=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,c={key:!0,ref:!0,__self:!0,__source:!0};function l(e,t,n){var r,a={},l=null,u=null;for(r in void 0!==n&&(l=""+n),void 0!==t.key&&(l=""+t.key),void 0!==t.ref&&(u=t.ref),t)i.call(t,r)&&!c.hasOwnProperty(r)&&(a[r]=t[r]);if(e&&e.defaultProps)for(r in t=e.defaultProps)void 0===a[r]&&(a[r]=t[r]);return{$$typeof:o,type:e,key:l,ref:u,props:a,_owner:s.current}}t.Fragment=a,t.jsx=l,t.jsxs=l},21858:(e,t,n)=>{"use strict";n.d(t,{n:()=>s,r:()=>c});var r=n(96540),o=n(102),a=n(74848),i=r.createContext(null);function s(e){var t=e.children,n=e.version;return(0,a.jsx)(i.Provider,{value:n,children:t})}function c(){var e=(0,r.useContext)(i);if(null===e)throw new o.dV("DocsVersionProvider");return e}},22306:(e,t,n)=>{"use strict";n.d(t,{V:()=>c,t:()=>l});var r=n(96540),o=n(102),a=n(74848),i=Symbol("EmptyContext"),s=r.createContext(i);function c(e){var t=e.children,n=e.name,o=e.items,i=(0,r.useMemo)((function(){return n&&o?{name:n,items:o}:null}),[n,o]);return(0,a.jsx)(s.Provider,{value:i,children:t})}function l(){var e=(0,r.useContext)(s);if(e===i)throw new o.dV("DocsSidebarProvider");return e}},22551:(e,t,n)=>{"use strict";var r=n(96540),o=n(69982);function a(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var i=new Set,s={};function c(e,t){l(e,t),l(e+"Capture",t)}function l(e,t){for(s[e]=t,e=0;e<t.length;e++)i.add(t[e])}var u=!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement),d=Object.prototype.hasOwnProperty,p=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,f={},m={};function h(e,t,n,r,o,a,i){this.acceptsBooleans=2===t||3===t||4===t,this.attributeName=r,this.attributeNamespace=o,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=a,this.removeEmptyString=i}var g={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach((function(e){g[e]=new h(e,0,!1,e,null,!1,!1)})),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach((function(e){var t=e[0];g[t]=new h(t,1,!1,e[1],null,!1,!1)})),["contentEditable","draggable","spellCheck","value"].forEach((function(e){g[e]=new h(e,2,!1,e.toLowerCase(),null,!1,!1)})),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach((function(e){g[e]=new h(e,2,!1,e,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(e){g[e]=new h(e,3,!1,e.toLowerCase(),null,!1,!1)})),["checked","multiple","muted","selected"].forEach((function(e){g[e]=new h(e,3,!0,e,null,!1,!1)})),["capture","download"].forEach((function(e){g[e]=new h(e,4,!1,e,null,!1,!1)})),["cols","rows","size","span"].forEach((function(e){g[e]=new h(e,6,!1,e,null,!1,!1)})),["rowSpan","start"].forEach((function(e){g[e]=new h(e,5,!1,e.toLowerCase(),null,!1,!1)}));var b=/[\-:]([a-z])/g;function y(e){return e[1].toUpperCase()}function v(e,t,n,r){var o=g.hasOwnProperty(t)?g[t]:null;(null!==o?0!==o.type:r||!(2<t.length)||"o"!==t[0]&&"O"!==t[0]||"n"!==t[1]&&"N"!==t[1])&&(function(e,t,n,r){if(null==t||function(e,t,n,r){if(null!==n&&0===n.type)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return!r&&(null!==n?!n.acceptsBooleans:"data-"!==(e=e.toLowerCase().slice(0,5))&&"aria-"!==e);default:return!1}}(e,t,n,r))return!0;if(r)return!1;if(null!==n)switch(n.type){case 3:return!t;case 4:return!1===t;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}(t,n,o,r)&&(n=null),r||null===o?function(e){return!!d.call(m,e)||!d.call(f,e)&&(p.test(e)?m[e]=!0:(f[e]=!0,!1))}(t)&&(null===n?e.removeAttribute(t):e.setAttribute(t,""+n)):o.mustUseProperty?e[o.propertyName]=null===n?3!==o.type&&"":n:(t=o.attributeName,r=o.attributeNamespace,null===n?e.removeAttribute(t):(n=3===(o=o.type)||4===o&&!0===n?"":""+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,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(e){var t=e.replace(b,y);g[t]=new h(t,1,!1,e,null,!1,!1)})),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach((function(e){var t=e.replace(b,y);g[t]=new h(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)})),["xml:base","xml:lang","xml:space"].forEach((function(e){var t=e.replace(b,y);g[t]=new h(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)})),["tabIndex","crossOrigin"].forEach((function(e){g[e]=new h(e,1,!1,e.toLowerCase(),null,!1,!1)})),g.xlinkHref=new h("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach((function(e){g[e]=new h(e,1,!1,e.toLowerCase(),null,!0,!0)}));var x=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,w=Symbol.for("react.element"),k=Symbol.for("react.portal"),_=Symbol.for("react.fragment"),S=Symbol.for("react.strict_mode"),E=Symbol.for("react.profiler"),C=Symbol.for("react.provider"),A=Symbol.for("react.context"),q=Symbol.for("react.forward_ref"),j=Symbol.for("react.suspense"),T=Symbol.for("react.suspense_list"),N=Symbol.for("react.memo"),O=Symbol.for("react.lazy");Symbol.for("react.scope"),Symbol.for("react.debug_trace_mode");var R=Symbol.for("react.offscreen");Symbol.for("react.legacy_hidden"),Symbol.for("react.cache"),Symbol.for("react.tracing_marker");var P=Symbol.iterator;function L(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=P&&e[P]||e["@@iterator"])?e:null}var I,D=Object.assign;function M(e){if(void 0===I)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);I=t&&t[1]||""}return"\n"+I+e}var F=!1;function z(e,t){if(!e||F)return"";F=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),"object"==typeof Reflect&&Reflect.construct){try{Reflect.construct(t,[])}catch(l){var r=l}Reflect.construct(e,[],t)}else{try{t.call()}catch(l){r=l}e.call(t.prototype)}else{try{throw Error()}catch(l){r=l}e()}}catch(l){if(l&&r&&"string"==typeof l.stack){for(var o=l.stack.split("\n"),a=r.stack.split("\n"),i=o.length-1,s=a.length-1;1<=i&&0<=s&&o[i]!==a[s];)s--;for(;1<=i&&0<=s;i--,s--)if(o[i]!==a[s]){if(1!==i||1!==s)do{if(i--,0>--s||o[i]!==a[s]){var c="\n"+o[i].replace(" at new "," at ");return e.displayName&&c.includes("<anonymous>")&&(c=c.replace("<anonymous>",e.displayName)),c}}while(1<=i&&0<=s);break}}}finally{F=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?M(e):""}function B(e){switch(e.tag){case 5:return M(e.type);case 16:return M("Lazy");case 13:return M("Suspense");case 19:return M("SuspenseList");case 0:case 2:case 15:return e=z(e.type,!1);case 11:return e=z(e.type.render,!1);case 1:return e=z(e.type,!0);default:return""}}function U(e){if(null==e)return null;if("function"==typeof e)return e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case _:return"Fragment";case k:return"Portal";case E:return"Profiler";case S:return"StrictMode";case j:return"Suspense";case T:return"SuspenseList"}if("object"==typeof e)switch(e.$$typeof){case A:return(e.displayName||"Context")+".Consumer";case C:return(e._context.displayName||"Context")+".Provider";case q:var t=e.render;return(e=e.displayName)||(e=""!==(e=t.displayName||t.name||"")?"ForwardRef("+e+")":"ForwardRef"),e;case N:return null!==(t=e.displayName||null)?t:U(e.type)||"Memo";case O:t=e._payload,e=e._init;try{return U(e(t))}catch(n){}}return null}function $(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=(e=t.render).displayName||e.name||"",t.displayName||(""!==e?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return U(t);case 8:return t===S?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if("function"==typeof t)return t.displayName||t.name||null;if("string"==typeof t)return t}return null}function H(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":case"object":return e;default:return""}}function W(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function G(e){e._valueTracker||(e._valueTracker=function(e){var t=W(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&void 0!==n&&"function"==typeof n.get&&"function"==typeof n.set){var o=n.get,a=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return o.call(this)},set:function(e){r=""+e,a.call(this,e)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(e){r=""+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e))}function V(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=W(e)?e.checked?"true":"false":e.value),(e=r)!==n&&(t.setValue(e),!0)}function K(e){if(void 0===(e=e||("undefined"!=typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}function Q(e,t){var n=t.checked;return D({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=n?n:e._wrapperState.initialChecked})}function Y(e,t){var n=null==t.defaultValue?"":t.defaultValue,r=null!=t.checked?t.checked:t.defaultChecked;n=H(null!=t.value?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:"checkbox"===t.type||"radio"===t.type?null!=t.checked:null!=t.value}}function J(e,t){null!=(t=t.checked)&&v(e,"checked",t,!1)}function Z(e,t){J(e,t);var n=H(t.value),r=t.type;if(null!=n)"number"===r?(0===n&&""===e.value||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if("submit"===r||"reset"===r)return void e.removeAttribute("value");t.hasOwnProperty("value")?ee(e,t.type,n):t.hasOwnProperty("defaultValue")&&ee(e,t.type,H(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked)}function X(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!("submit"!==r&&"reset"!==r||void 0!==t.value&&null!==t.value))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}""!==(n=e.name)&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,""!==n&&(e.name=n)}function ee(e,t,n){"number"===t&&K(e.ownerDocument)===e||(null==n?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var te=Array.isArray;function ne(e,t,n,r){if(e=e.options,t){t={};for(var o=0;o<n.length;o++)t["$"+n[o]]=!0;for(n=0;n<e.length;n++)o=t.hasOwnProperty("$"+e[n].value),e[n].selected!==o&&(e[n].selected=o),o&&r&&(e[n].defaultSelected=!0)}else{for(n=""+H(n),t=null,o=0;o<e.length;o++){if(e[o].value===n)return e[o].selected=!0,void(r&&(e[o].defaultSelected=!0));null!==t||e[o].disabled||(t=e[o])}null!==t&&(t.selected=!0)}}function re(e,t){if(null!=t.dangerouslySetInnerHTML)throw Error(a(91));return D({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function oe(e,t){var n=t.value;if(null==n){if(n=t.children,t=t.defaultValue,null!=n){if(null!=t)throw Error(a(92));if(te(n)){if(1<n.length)throw Error(a(93));n=n[0]}t=n}null==t&&(t=""),n=t}e._wrapperState={initialValue:H(n)}}function ae(e,t){var n=H(t.value),r=H(t.defaultValue);null!=n&&((n=""+n)!==e.value&&(e.value=n),null==t.defaultValue&&e.defaultValue!==n&&(e.defaultValue=n)),null!=r&&(e.defaultValue=""+r)}function ie(e){var t=e.textContent;t===e._wrapperState.initialValue&&""!==t&&null!==t&&(e.value=t)}function se(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function ce(e,t){return null==e||"http://www.w3.org/1999/xhtml"===e?se(t):"http://www.w3.org/2000/svg"===e&&"foreignObject"===t?"http://www.w3.org/1999/xhtml":e}var le,ue,de=(ue=function(e,t){if("http://www.w3.org/2000/svg"!==e.namespaceURI||"innerHTML"in e)e.innerHTML=t;else{for((le=le||document.createElement("div")).innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=le.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}},"undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(e,t,n,r){MSApp.execUnsafeLocalFunction((function(){return ue(e,t)}))}:ue);function pe(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t}var fe={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},me=["Webkit","ms","Moz","O"];function he(e,t,n){return null==t||"boolean"==typeof t||""===t?"":n||"number"!=typeof t||0===t||fe.hasOwnProperty(e)&&fe[e]?(""+t).trim():t+"px"}function ge(e,t){for(var n in e=e.style,t)if(t.hasOwnProperty(n)){var r=0===n.indexOf("--"),o=he(n,t[n],r);"float"===n&&(n="cssFloat"),r?e.setProperty(n,o):e[n]=o}}Object.keys(fe).forEach((function(e){me.forEach((function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),fe[t]=fe[e]}))}));var be=D({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function ye(e,t){if(t){if(be[e]&&(null!=t.children||null!=t.dangerouslySetInnerHTML))throw Error(a(137,e));if(null!=t.dangerouslySetInnerHTML){if(null!=t.children)throw Error(a(60));if("object"!=typeof t.dangerouslySetInnerHTML||!("__html"in t.dangerouslySetInnerHTML))throw Error(a(61))}if(null!=t.style&&"object"!=typeof t.style)throw Error(a(62))}}function ve(e,t){if(-1===e.indexOf("-"))return"string"==typeof t.is;switch(e){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 xe=null;function we(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}var ke=null,_e=null,Se=null;function Ee(e){if(e=xo(e)){if("function"!=typeof ke)throw Error(a(280));var t=e.stateNode;t&&(t=ko(t),ke(e.stateNode,e.type,t))}}function Ce(e){_e?Se?Se.push(e):Se=[e]:_e=e}function Ae(){if(_e){var e=_e,t=Se;if(Se=_e=null,Ee(e),t)for(e=0;e<t.length;e++)Ee(t[e])}}function qe(e,t){return e(t)}function je(){}var Te=!1;function Ne(e,t,n){if(Te)return e(t,n);Te=!0;try{return qe(e,t,n)}finally{Te=!1,(null!==_e||null!==Se)&&(je(),Ae())}}function Oe(e,t){var n=e.stateNode;if(null===n)return null;var r=ko(n);if(null===r)return null;n=r[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(r=!r.disabled)||(r=!("button"===(e=e.type)||"input"===e||"select"===e||"textarea"===e)),e=!r;break e;default:e=!1}if(e)return null;if(n&&"function"!=typeof n)throw Error(a(231,t,typeof n));return n}var Re=!1;if(u)try{var Pe={};Object.defineProperty(Pe,"passive",{get:function(){Re=!0}}),window.addEventListener("test",Pe,Pe),window.removeEventListener("test",Pe,Pe)}catch(ue){Re=!1}function Le(e,t,n,r,o,a,i,s,c){var l=Array.prototype.slice.call(arguments,3);try{t.apply(n,l)}catch(u){this.onError(u)}}var Ie=!1,De=null,Me=!1,Fe=null,ze={onError:function(e){Ie=!0,De=e}};function Be(e,t,n,r,o,a,i,s,c){Ie=!1,De=null,Le.apply(ze,arguments)}function Ue(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do{!!(4098&(t=e).flags)&&(n=t.return),e=t.return}while(e)}return 3===t.tag?n:null}function $e(e){if(13===e.tag){var t=e.memoizedState;if(null===t&&(null!==(e=e.alternate)&&(t=e.memoizedState)),null!==t)return t.dehydrated}return null}function He(e){if(Ue(e)!==e)throw Error(a(188))}function We(e){return null!==(e=function(e){var t=e.alternate;if(!t){if(null===(t=Ue(e)))throw Error(a(188));return t!==e?null:e}for(var n=e,r=t;;){var o=n.return;if(null===o)break;var i=o.alternate;if(null===i){if(null!==(r=o.return)){n=r;continue}break}if(o.child===i.child){for(i=o.child;i;){if(i===n)return He(o),e;if(i===r)return He(o),t;i=i.sibling}throw Error(a(188))}if(n.return!==r.return)n=o,r=i;else{for(var s=!1,c=o.child;c;){if(c===n){s=!0,n=o,r=i;break}if(c===r){s=!0,r=o,n=i;break}c=c.sibling}if(!s){for(c=i.child;c;){if(c===n){s=!0,n=i,r=o;break}if(c===r){s=!0,r=i,n=o;break}c=c.sibling}if(!s)throw Error(a(189))}}if(n.alternate!==r)throw Error(a(190))}if(3!==n.tag)throw Error(a(188));return n.stateNode.current===n?e:t}(e))?Ge(e):null}function Ge(e){if(5===e.tag||6===e.tag)return e;for(e=e.child;null!==e;){var t=Ge(e);if(null!==t)return t;e=e.sibling}return null}var Ve=o.unstable_scheduleCallback,Ke=o.unstable_cancelCallback,Qe=o.unstable_shouldYield,Ye=o.unstable_requestPaint,Je=o.unstable_now,Ze=o.unstable_getCurrentPriorityLevel,Xe=o.unstable_ImmediatePriority,et=o.unstable_UserBlockingPriority,tt=o.unstable_NormalPriority,nt=o.unstable_LowPriority,rt=o.unstable_IdlePriority,ot=null,at=null;var it=Math.clz32?Math.clz32:function(e){return e>>>=0,0===e?32:31-(st(e)/ct|0)|0},st=Math.log,ct=Math.LN2;var lt=64,ut=4194304;function dt(e){switch(e&-e){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 4194240&e;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return 130023424&e;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function pt(e,t){var n=e.pendingLanes;if(0===n)return 0;var r=0,o=e.suspendedLanes,a=e.pingedLanes,i=268435455&n;if(0!==i){var s=i&~o;0!==s?r=dt(s):0!==(a&=i)&&(r=dt(a))}else 0!==(i=n&~o)?r=dt(i):0!==a&&(r=dt(a));if(0===r)return 0;if(0!==t&&t!==r&&!(t&o)&&((o=r&-r)>=(a=t&-t)||16===o&&4194240&a))return t;if(4&r&&(r|=16&n),0!==(t=e.entangledLanes))for(e=e.entanglements,t&=r;0<t;)o=1<<(n=31-it(t)),r|=e[n],t&=~o;return r}function ft(e,t){switch(e){case 1:case 2:case 4:return t+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;default:return-1}}function mt(e){return 0!==(e=-1073741825&e.pendingLanes)?e:1073741824&e?1073741824:0}function ht(){var e=lt;return!(4194240&(lt<<=1))&&(lt=64),e}function gt(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function bt(e,t,n){e.pendingLanes|=t,536870912!==t&&(e.suspendedLanes=0,e.pingedLanes=0),(e=e.eventTimes)[t=31-it(t)]=n}function yt(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var r=31-it(n),o=1<<r;o&t|e[r]&t&&(e[r]|=t),n&=~o}}var vt=0;function xt(e){return 1<(e&=-e)?4<e?268435455&e?16:536870912:4:1}var wt,kt,_t,St,Et,Ct=!1,At=[],qt=null,jt=null,Tt=null,Nt=new Map,Ot=new Map,Rt=[],Pt="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function Lt(e,t){switch(e){case"focusin":case"focusout":qt=null;break;case"dragenter":case"dragleave":jt=null;break;case"mouseover":case"mouseout":Tt=null;break;case"pointerover":case"pointerout":Nt.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":Ot.delete(t.pointerId)}}function It(e,t,n,r,o,a){return null===e||e.nativeEvent!==a?(e={blockedOn:t,domEventName:n,eventSystemFlags:r,nativeEvent:a,targetContainers:[o]},null!==t&&(null!==(t=xo(t))&&kt(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,null!==o&&-1===t.indexOf(o)&&t.push(o),e)}function Dt(e){var t=vo(e.target);if(null!==t){var n=Ue(t);if(null!==n)if(13===(t=n.tag)){if(null!==(t=$e(n)))return e.blockedOn=t,void Et(e.priority,(function(){_t(n)}))}else if(3===t&&n.stateNode.current.memoizedState.isDehydrated)return void(e.blockedOn=3===n.tag?n.stateNode.containerInfo:null)}e.blockedOn=null}function Mt(e){if(null!==e.blockedOn)return!1;for(var t=e.targetContainers;0<t.length;){var n=Qt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n)return null!==(t=xo(n))&&kt(t),e.blockedOn=n,!1;var r=new(n=e.nativeEvent).constructor(n.type,n);xe=r,n.target.dispatchEvent(r),xe=null,t.shift()}return!0}function Ft(e,t,n){Mt(e)&&n.delete(t)}function zt(){Ct=!1,null!==qt&&Mt(qt)&&(qt=null),null!==jt&&Mt(jt)&&(jt=null),null!==Tt&&Mt(Tt)&&(Tt=null),Nt.forEach(Ft),Ot.forEach(Ft)}function Bt(e,t){e.blockedOn===t&&(e.blockedOn=null,Ct||(Ct=!0,o.unstable_scheduleCallback(o.unstable_NormalPriority,zt)))}function Ut(e){function t(t){return Bt(t,e)}if(0<At.length){Bt(At[0],e);for(var n=1;n<At.length;n++){var r=At[n];r.blockedOn===e&&(r.blockedOn=null)}}for(null!==qt&&Bt(qt,e),null!==jt&&Bt(jt,e),null!==Tt&&Bt(Tt,e),Nt.forEach(t),Ot.forEach(t),n=0;n<Rt.length;n++)(r=Rt[n]).blockedOn===e&&(r.blockedOn=null);for(;0<Rt.length&&null===(n=Rt[0]).blockedOn;)Dt(n),null===n.blockedOn&&Rt.shift()}var $t=x.ReactCurrentBatchConfig,Ht=!0;function Wt(e,t,n,r){var o=vt,a=$t.transition;$t.transition=null;try{vt=1,Vt(e,t,n,r)}finally{vt=o,$t.transition=a}}function Gt(e,t,n,r){var o=vt,a=$t.transition;$t.transition=null;try{vt=4,Vt(e,t,n,r)}finally{vt=o,$t.transition=a}}function Vt(e,t,n,r){if(Ht){var o=Qt(e,t,n,r);if(null===o)Hr(e,t,r,Kt,n),Lt(e,r);else if(function(e,t,n,r,o){switch(t){case"focusin":return qt=It(qt,e,t,n,r,o),!0;case"dragenter":return jt=It(jt,e,t,n,r,o),!0;case"mouseover":return Tt=It(Tt,e,t,n,r,o),!0;case"pointerover":var a=o.pointerId;return Nt.set(a,It(Nt.get(a)||null,e,t,n,r,o)),!0;case"gotpointercapture":return a=o.pointerId,Ot.set(a,It(Ot.get(a)||null,e,t,n,r,o)),!0}return!1}(o,e,t,n,r))r.stopPropagation();else if(Lt(e,r),4&t&&-1<Pt.indexOf(e)){for(;null!==o;){var a=xo(o);if(null!==a&&wt(a),null===(a=Qt(e,t,n,r))&&Hr(e,t,r,Kt,n),a===o)break;o=a}null!==o&&r.stopPropagation()}else Hr(e,t,r,null,n)}}var Kt=null;function Qt(e,t,n,r){if(Kt=null,null!==(e=vo(e=we(r))))if(null===(t=Ue(e)))e=null;else if(13===(n=t.tag)){if(null!==(e=$e(t)))return e;e=null}else if(3===n){if(t.stateNode.current.memoizedState.isDehydrated)return 3===t.tag?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null);return Kt=e,null}function Yt(e){switch(e){case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 1;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"toggle":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 4;case"message":switch(Ze()){case Xe:return 1;case et:return 4;case tt:case nt:return 16;case rt:return 536870912;default:return 16}default:return 16}}var Jt=null,Zt=null,Xt=null;function en(){if(Xt)return Xt;var e,t,n=Zt,r=n.length,o="value"in Jt?Jt.value:Jt.textContent,a=o.length;for(e=0;e<r&&n[e]===o[e];e++);var i=r-e;for(t=1;t<=i&&n[r-t]===o[a-t];t++);return Xt=o.slice(e,1<t?1-t:void 0)}function tn(e){var t=e.keyCode;return"charCode"in e?0===(e=e.charCode)&&13===t&&(e=13):e=t,10===e&&(e=13),32<=e||13===e?e:0}function nn(){return!0}function rn(){return!1}function on(e){function t(t,n,r,o,a){for(var i in this._reactName=t,this._targetInst=r,this.type=n,this.nativeEvent=o,this.target=a,this.currentTarget=null,e)e.hasOwnProperty(i)&&(t=e[i],this[i]=t?t(o):o[i]);return this.isDefaultPrevented=(null!=o.defaultPrevented?o.defaultPrevented:!1===o.returnValue)?nn:rn,this.isPropagationStopped=rn,this}return D(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=nn)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=nn)},persist:function(){},isPersistent:nn}),t}var an,sn,cn,ln={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},un=on(ln),dn=D({},ln,{view:0,detail:0}),pn=on(dn),fn=D({},dn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:En,button:0,buttons:0,relatedTarget:function(e){return void 0===e.relatedTarget?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==cn&&(cn&&"mousemove"===e.type?(an=e.screenX-cn.screenX,sn=e.screenY-cn.screenY):sn=an=0,cn=e),an)},movementY:function(e){return"movementY"in e?e.movementY:sn}}),mn=on(fn),hn=on(D({},fn,{dataTransfer:0})),gn=on(D({},dn,{relatedTarget:0})),bn=on(D({},ln,{animationName:0,elapsedTime:0,pseudoElement:0})),yn=D({},ln,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),vn=on(yn),xn=on(D({},ln,{data:0})),wn={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},kn={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},_n={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function Sn(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=_n[e])&&!!t[e]}function En(){return Sn}var Cn=D({},dn,{key:function(e){if(e.key){var t=wn[e.key]||e.key;if("Unidentified"!==t)return t}return"keypress"===e.type?13===(e=tn(e))?"Enter":String.fromCharCode(e):"keydown"===e.type||"keyup"===e.type?kn[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:En,charCode:function(e){return"keypress"===e.type?tn(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?tn(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}}),An=on(Cn),qn=on(D({},fn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),jn=on(D({},dn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:En})),Tn=on(D({},ln,{propertyName:0,elapsedTime:0,pseudoElement:0})),Nn=D({},fn,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),On=on(Nn),Rn=[9,13,27,32],Pn=u&&"CompositionEvent"in window,Ln=null;u&&"documentMode"in document&&(Ln=document.documentMode);var In=u&&"TextEvent"in window&&!Ln,Dn=u&&(!Pn||Ln&&8<Ln&&11>=Ln),Mn=String.fromCharCode(32),Fn=!1;function zn(e,t){switch(e){case"keyup":return-1!==Rn.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Bn(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var Un=!1;var $n={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Hn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!$n[e.type]:"textarea"===t}function Wn(e,t,n,r){Ce(r),0<(t=Gr(t,"onChange")).length&&(n=new un("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var Gn=null,Vn=null;function Kn(e){Mr(e,0)}function Qn(e){if(V(wo(e)))return e}function Yn(e,t){if("change"===e)return t}var Jn=!1;if(u){var Zn;if(u){var Xn="oninput"in document;if(!Xn){var er=document.createElement("div");er.setAttribute("oninput","return;"),Xn="function"==typeof er.oninput}Zn=Xn}else Zn=!1;Jn=Zn&&(!document.documentMode||9<document.documentMode)}function tr(){Gn&&(Gn.detachEvent("onpropertychange",nr),Vn=Gn=null)}function nr(e){if("value"===e.propertyName&&Qn(Vn)){var t=[];Wn(t,Vn,e,we(e)),Ne(Kn,t)}}function rr(e,t,n){"focusin"===e?(tr(),Vn=n,(Gn=t).attachEvent("onpropertychange",nr)):"focusout"===e&&tr()}function or(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return Qn(Vn)}function ar(e,t){if("click"===e)return Qn(t)}function ir(e,t){if("input"===e||"change"===e)return Qn(t)}var sr="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t};function cr(e,t){if(sr(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++){var o=n[r];if(!d.call(t,o)||!sr(e[o],t[o]))return!1}return!0}function lr(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function ur(e,t){var n,r=lr(e);for(e=0;r;){if(3===r.nodeType){if(n=e+r.textContent.length,e<=t&&n>=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=lr(r)}}function dr(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?dr(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function pr(){for(var e=window,t=K();t instanceof e.HTMLIFrameElement;){try{var n="string"==typeof t.contentWindow.location.href}catch(r){n=!1}if(!n)break;t=K((e=t.contentWindow).document)}return t}function fr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}function mr(e){var t=pr(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&dr(n.ownerDocument.documentElement,n)){if(null!==r&&fr(n))if(t=r.start,void 0===(e=r.end)&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if((e=(t=n.ownerDocument||document)&&t.defaultView||window).getSelection){e=e.getSelection();var o=n.textContent.length,a=Math.min(r.start,o);r=void 0===r.end?a:Math.min(r.end,o),!e.extend&&a>r&&(o=r,r=a,a=o),o=ur(n,a);var i=ur(n,r);o&&i&&(1!==e.rangeCount||e.anchorNode!==o.node||e.anchorOffset!==o.offset||e.focusNode!==i.node||e.focusOffset!==i.offset)&&((t=t.createRange()).setStart(o.node,o.offset),e.removeAllRanges(),a>r?(e.addRange(t),e.extend(i.node,i.offset)):(t.setEnd(i.node,i.offset),e.addRange(t)))}for(t=[],e=n;e=e.parentNode;)1===e.nodeType&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for("function"==typeof n.focus&&n.focus(),n=0;n<t.length;n++)(e=t[n]).element.scrollLeft=e.left,e.element.scrollTop=e.top}}var hr=u&&"documentMode"in document&&11>=document.documentMode,gr=null,br=null,yr=null,vr=!1;function xr(e,t,n){var r=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;vr||null==gr||gr!==K(r)||("selectionStart"in(r=gr)&&fr(r)?r={start:r.selectionStart,end:r.selectionEnd}:r={anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},yr&&cr(yr,r)||(yr=r,0<(r=Gr(br,"onSelect")).length&&(t=new un("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=gr)))}function wr(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var kr={animationend:wr("Animation","AnimationEnd"),animationiteration:wr("Animation","AnimationIteration"),animationstart:wr("Animation","AnimationStart"),transitionend:wr("Transition","TransitionEnd")},_r={},Sr={};function Er(e){if(_r[e])return _r[e];if(!kr[e])return e;var t,n=kr[e];for(t in n)if(n.hasOwnProperty(t)&&t in Sr)return _r[e]=n[t];return e}u&&(Sr=document.createElement("div").style,"AnimationEvent"in window||(delete kr.animationend.animation,delete kr.animationiteration.animation,delete kr.animationstart.animation),"TransitionEvent"in window||delete kr.transitionend.transition);var Cr=Er("animationend"),Ar=Er("animationiteration"),qr=Er("animationstart"),jr=Er("transitionend"),Tr=new Map,Nr="abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function Or(e,t){Tr.set(e,t),c(t,[e])}for(var Rr=0;Rr<Nr.length;Rr++){var Pr=Nr[Rr];Or(Pr.toLowerCase(),"on"+(Pr[0].toUpperCase()+Pr.slice(1)))}Or(Cr,"onAnimationEnd"),Or(Ar,"onAnimationIteration"),Or(qr,"onAnimationStart"),Or("dblclick","onDoubleClick"),Or("focusin","onFocus"),Or("focusout","onBlur"),Or(jr,"onTransitionEnd"),l("onMouseEnter",["mouseout","mouseover"]),l("onMouseLeave",["mouseout","mouseover"]),l("onPointerEnter",["pointerout","pointerover"]),l("onPointerLeave",["pointerout","pointerover"]),c("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),c("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),c("onBeforeInput",["compositionend","keypress","textInput","paste"]),c("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),c("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),c("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Lr="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Ir=new Set("cancel close invalid load scroll toggle".split(" ").concat(Lr));function Dr(e,t,n){var r=e.type||"unknown-event";e.currentTarget=n,function(e,t,n,r,o,i,s,c,l){if(Be.apply(this,arguments),Ie){if(!Ie)throw Error(a(198));var u=De;Ie=!1,De=null,Me||(Me=!0,Fe=u)}}(r,t,void 0,e),e.currentTarget=null}function Mr(e,t){t=!!(4&t);for(var n=0;n<e.length;n++){var r=e[n],o=r.event;r=r.listeners;e:{var a=void 0;if(t)for(var i=r.length-1;0<=i;i--){var s=r[i],c=s.instance,l=s.currentTarget;if(s=s.listener,c!==a&&o.isPropagationStopped())break e;Dr(o,s,l),a=c}else for(i=0;i<r.length;i++){if(c=(s=r[i]).instance,l=s.currentTarget,s=s.listener,c!==a&&o.isPropagationStopped())break e;Dr(o,s,l),a=c}}}if(Me)throw e=Fe,Me=!1,Fe=null,e}function Fr(e,t){var n=t[go];void 0===n&&(n=t[go]=new Set);var r=e+"__bubble";n.has(r)||($r(t,e,2,!1),n.add(r))}function zr(e,t,n){var r=0;t&&(r|=4),$r(n,e,r,t)}var Br="_reactListening"+Math.random().toString(36).slice(2);function Ur(e){if(!e[Br]){e[Br]=!0,i.forEach((function(t){"selectionchange"!==t&&(Ir.has(t)||zr(t,!1,e),zr(t,!0,e))}));var t=9===e.nodeType?e:e.ownerDocument;null===t||t[Br]||(t[Br]=!0,zr("selectionchange",!1,t))}}function $r(e,t,n,r){switch(Yt(t)){case 1:var o=Wt;break;case 4:o=Gt;break;default:o=Vt}n=o.bind(null,t,n,e),o=void 0,!Re||"touchstart"!==t&&"touchmove"!==t&&"wheel"!==t||(o=!0),r?void 0!==o?e.addEventListener(t,n,{capture:!0,passive:o}):e.addEventListener(t,n,!0):void 0!==o?e.addEventListener(t,n,{passive:o}):e.addEventListener(t,n,!1)}function Hr(e,t,n,r,o){var a=r;if(!(1&t||2&t||null===r))e:for(;;){if(null===r)return;var i=r.tag;if(3===i||4===i){var s=r.stateNode.containerInfo;if(s===o||8===s.nodeType&&s.parentNode===o)break;if(4===i)for(i=r.return;null!==i;){var c=i.tag;if((3===c||4===c)&&((c=i.stateNode.containerInfo)===o||8===c.nodeType&&c.parentNode===o))return;i=i.return}for(;null!==s;){if(null===(i=vo(s)))return;if(5===(c=i.tag)||6===c){r=a=i;continue e}s=s.parentNode}}r=r.return}Ne((function(){var r=a,o=we(n),i=[];e:{var s=Tr.get(e);if(void 0!==s){var c=un,l=e;switch(e){case"keypress":if(0===tn(n))break e;case"keydown":case"keyup":c=An;break;case"focusin":l="focus",c=gn;break;case"focusout":l="blur",c=gn;break;case"beforeblur":case"afterblur":c=gn;break;case"click":if(2===n.button)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":c=mn;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":c=hn;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":c=jn;break;case Cr:case Ar:case qr:c=bn;break;case jr:c=Tn;break;case"scroll":c=pn;break;case"wheel":c=On;break;case"copy":case"cut":case"paste":c=vn;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":c=qn}var u=!!(4&t),d=!u&&"scroll"===e,p=u?null!==s?s+"Capture":null:s;u=[];for(var f,m=r;null!==m;){var h=(f=m).stateNode;if(5===f.tag&&null!==h&&(f=h,null!==p&&(null!=(h=Oe(m,p))&&u.push(Wr(m,h,f)))),d)break;m=m.return}0<u.length&&(s=new c(s,l,null,n,o),i.push({event:s,listeners:u}))}}if(!(7&t)){if(c="mouseout"===e||"pointerout"===e,(!(s="mouseover"===e||"pointerover"===e)||n===xe||!(l=n.relatedTarget||n.fromElement)||!vo(l)&&!l[ho])&&(c||s)&&(s=o.window===o?o:(s=o.ownerDocument)?s.defaultView||s.parentWindow:window,c?(c=r,null!==(l=(l=n.relatedTarget||n.toElement)?vo(l):null)&&(l!==(d=Ue(l))||5!==l.tag&&6!==l.tag)&&(l=null)):(c=null,l=r),c!==l)){if(u=mn,h="onMouseLeave",p="onMouseEnter",m="mouse","pointerout"!==e&&"pointerover"!==e||(u=qn,h="onPointerLeave",p="onPointerEnter",m="pointer"),d=null==c?s:wo(c),f=null==l?s:wo(l),(s=new u(h,m+"leave",c,n,o)).target=d,s.relatedTarget=f,h=null,vo(o)===r&&((u=new u(p,m+"enter",l,n,o)).target=f,u.relatedTarget=d,h=u),d=h,c&&l)e:{for(p=l,m=0,f=u=c;f;f=Vr(f))m++;for(f=0,h=p;h;h=Vr(h))f++;for(;0<m-f;)u=Vr(u),m--;for(;0<f-m;)p=Vr(p),f--;for(;m--;){if(u===p||null!==p&&u===p.alternate)break e;u=Vr(u),p=Vr(p)}u=null}else u=null;null!==c&&Kr(i,s,c,u,!1),null!==l&&null!==d&&Kr(i,d,l,u,!0)}if("select"===(c=(s=r?wo(r):window).nodeName&&s.nodeName.toLowerCase())||"input"===c&&"file"===s.type)var g=Yn;else if(Hn(s))if(Jn)g=ir;else{g=or;var b=rr}else(c=s.nodeName)&&"input"===c.toLowerCase()&&("checkbox"===s.type||"radio"===s.type)&&(g=ar);switch(g&&(g=g(e,r))?Wn(i,g,n,o):(b&&b(e,s,r),"focusout"===e&&(b=s._wrapperState)&&b.controlled&&"number"===s.type&&ee(s,"number",s.value)),b=r?wo(r):window,e){case"focusin":(Hn(b)||"true"===b.contentEditable)&&(gr=b,br=r,yr=null);break;case"focusout":yr=br=gr=null;break;case"mousedown":vr=!0;break;case"contextmenu":case"mouseup":case"dragend":vr=!1,xr(i,n,o);break;case"selectionchange":if(hr)break;case"keydown":case"keyup":xr(i,n,o)}var y;if(Pn)e:{switch(e){case"compositionstart":var v="onCompositionStart";break e;case"compositionend":v="onCompositionEnd";break e;case"compositionupdate":v="onCompositionUpdate";break e}v=void 0}else Un?zn(e,n)&&(v="onCompositionEnd"):"keydown"===e&&229===n.keyCode&&(v="onCompositionStart");v&&(Dn&&"ko"!==n.locale&&(Un||"onCompositionStart"!==v?"onCompositionEnd"===v&&Un&&(y=en()):(Zt="value"in(Jt=o)?Jt.value:Jt.textContent,Un=!0)),0<(b=Gr(r,v)).length&&(v=new xn(v,e,null,n,o),i.push({event:v,listeners:b}),y?v.data=y:null!==(y=Bn(n))&&(v.data=y))),(y=In?function(e,t){switch(e){case"compositionend":return Bn(t);case"keypress":return 32!==t.which?null:(Fn=!0,Mn);case"textInput":return(e=t.data)===Mn&&Fn?null:e;default:return null}}(e,n):function(e,t){if(Un)return"compositionend"===e||!Pn&&zn(e,t)?(e=en(),Xt=Zt=Jt=null,Un=!1,e):null;switch(e){case"paste":default:return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return Dn&&"ko"!==t.locale?null:t.data}}(e,n))&&(0<(r=Gr(r,"onBeforeInput")).length&&(o=new xn("onBeforeInput","beforeinput",null,n,o),i.push({event:o,listeners:r}),o.data=y))}Mr(i,t)}))}function Wr(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Gr(e,t){for(var n=t+"Capture",r=[];null!==e;){var o=e,a=o.stateNode;5===o.tag&&null!==a&&(o=a,null!=(a=Oe(e,n))&&r.unshift(Wr(e,a,o)),null!=(a=Oe(e,t))&&r.push(Wr(e,a,o))),e=e.return}return r}function Vr(e){if(null===e)return null;do{e=e.return}while(e&&5!==e.tag);return e||null}function Kr(e,t,n,r,o){for(var a=t._reactName,i=[];null!==n&&n!==r;){var s=n,c=s.alternate,l=s.stateNode;if(null!==c&&c===r)break;5===s.tag&&null!==l&&(s=l,o?null!=(c=Oe(n,a))&&i.unshift(Wr(n,c,s)):o||null!=(c=Oe(n,a))&&i.push(Wr(n,c,s))),n=n.return}0!==i.length&&e.push({event:t,listeners:i})}var Qr=/\r\n?/g,Yr=/\u0000|\uFFFD/g;function Jr(e){return("string"==typeof e?e:""+e).replace(Qr,"\n").replace(Yr,"")}function Zr(e,t,n){if(t=Jr(t),Jr(e)!==t&&n)throw Error(a(425))}function Xr(){}var eo=null,to=null;function no(e,t){return"textarea"===e||"noscript"===e||"string"==typeof t.children||"number"==typeof t.children||"object"==typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}var ro="function"==typeof setTimeout?setTimeout:void 0,oo="function"==typeof clearTimeout?clearTimeout:void 0,ao="function"==typeof Promise?Promise:void 0,io="function"==typeof queueMicrotask?queueMicrotask:void 0!==ao?function(e){return ao.resolve(null).then(e).catch(so)}:ro;function so(e){setTimeout((function(){throw e}))}function co(e,t){var n=t,r=0;do{var o=n.nextSibling;if(e.removeChild(n),o&&8===o.nodeType)if("/$"===(n=o.data)){if(0===r)return e.removeChild(o),void Ut(t);r--}else"$"!==n&&"$?"!==n&&"$!"!==n||r++;n=o}while(n);Ut(t)}function lo(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(1===t||3===t)break;if(8===t){if("$"===(t=e.data)||"$!"===t||"$?"===t)break;if("/$"===t)return null}}return e}function uo(e){e=e.previousSibling;for(var t=0;e;){if(8===e.nodeType){var n=e.data;if("$"===n||"$!"===n||"$?"===n){if(0===t)return e;t--}else"/$"===n&&t++}e=e.previousSibling}return null}var po=Math.random().toString(36).slice(2),fo="__reactFiber$"+po,mo="__reactProps$"+po,ho="__reactContainer$"+po,go="__reactEvents$"+po,bo="__reactListeners$"+po,yo="__reactHandles$"+po;function vo(e){var t=e[fo];if(t)return t;for(var n=e.parentNode;n;){if(t=n[ho]||n[fo]){if(n=t.alternate,null!==t.child||null!==n&&null!==n.child)for(e=uo(e);null!==e;){if(n=e[fo])return n;e=uo(e)}return t}n=(e=n).parentNode}return null}function xo(e){return!(e=e[fo]||e[ho])||5!==e.tag&&6!==e.tag&&13!==e.tag&&3!==e.tag?null:e}function wo(e){if(5===e.tag||6===e.tag)return e.stateNode;throw Error(a(33))}function ko(e){return e[mo]||null}var _o=[],So=-1;function Eo(e){return{current:e}}function Co(e){0>So||(e.current=_o[So],_o[So]=null,So--)}function Ao(e,t){So++,_o[So]=e.current,e.current=t}var qo={},jo=Eo(qo),To=Eo(!1),No=qo;function Oo(e,t){var n=e.type.contextTypes;if(!n)return qo;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var o,a={};for(o in n)a[o]=t[o];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=a),a}function Ro(e){return null!=(e=e.childContextTypes)}function Po(){Co(To),Co(jo)}function Lo(e,t,n){if(jo.current!==qo)throw Error(a(168));Ao(jo,t),Ao(To,n)}function Io(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,"function"!=typeof r.getChildContext)return n;for(var o in r=r.getChildContext())if(!(o in t))throw Error(a(108,$(e)||"Unknown",o));return D({},n,r)}function Do(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||qo,No=jo.current,Ao(jo,e),Ao(To,To.current),!0}function Mo(e,t,n){var r=e.stateNode;if(!r)throw Error(a(169));n?(e=Io(e,t,No),r.__reactInternalMemoizedMergedChildContext=e,Co(To),Co(jo),Ao(jo,e)):Co(To),Ao(To,n)}var Fo=null,zo=!1,Bo=!1;function Uo(e){null===Fo?Fo=[e]:Fo.push(e)}function $o(){if(!Bo&&null!==Fo){Bo=!0;var e=0,t=vt;try{var n=Fo;for(vt=1;e<n.length;e++){var r=n[e];do{r=r(!0)}while(null!==r)}Fo=null,zo=!1}catch(o){throw null!==Fo&&(Fo=Fo.slice(e+1)),Ve(Xe,$o),o}finally{vt=t,Bo=!1}}return null}var Ho=[],Wo=0,Go=null,Vo=0,Ko=[],Qo=0,Yo=null,Jo=1,Zo="";function Xo(e,t){Ho[Wo++]=Vo,Ho[Wo++]=Go,Go=e,Vo=t}function ea(e,t,n){Ko[Qo++]=Jo,Ko[Qo++]=Zo,Ko[Qo++]=Yo,Yo=e;var r=Jo;e=Zo;var o=32-it(r)-1;r&=~(1<<o),n+=1;var a=32-it(t)+o;if(30<a){var i=o-o%5;a=(r&(1<<i)-1).toString(32),r>>=i,o-=i,Jo=1<<32-it(t)+o|n<<o|r,Zo=a+e}else Jo=1<<a|n<<o|r,Zo=e}function ta(e){null!==e.return&&(Xo(e,1),ea(e,1,0))}function na(e){for(;e===Go;)Go=Ho[--Wo],Ho[Wo]=null,Vo=Ho[--Wo],Ho[Wo]=null;for(;e===Yo;)Yo=Ko[--Qo],Ko[Qo]=null,Zo=Ko[--Qo],Ko[Qo]=null,Jo=Ko[--Qo],Ko[Qo]=null}var ra=null,oa=null,aa=!1,ia=null;function sa(e,t){var n=Nl(5,null,null,0);n.elementType="DELETED",n.stateNode=t,n.return=e,null===(t=e.deletions)?(e.deletions=[n],e.flags|=16):t.push(n)}function ca(e,t){switch(e.tag){case 5:var n=e.type;return null!==(t=1!==t.nodeType||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t)&&(e.stateNode=t,ra=e,oa=lo(t.firstChild),!0);case 6:return null!==(t=""===e.pendingProps||3!==t.nodeType?null:t)&&(e.stateNode=t,ra=e,oa=null,!0);case 13:return null!==(t=8!==t.nodeType?null:t)&&(n=null!==Yo?{id:Jo,overflow:Zo}:null,e.memoizedState={dehydrated:t,treeContext:n,retryLane:1073741824},(n=Nl(18,null,null,0)).stateNode=t,n.return=e,e.child=n,ra=e,oa=null,!0);default:return!1}}function la(e){return!(!(1&e.mode)||128&e.flags)}function ua(e){if(aa){var t=oa;if(t){var n=t;if(!ca(e,t)){if(la(e))throw Error(a(418));t=lo(n.nextSibling);var r=ra;t&&ca(e,t)?sa(r,n):(e.flags=-4097&e.flags|2,aa=!1,ra=e)}}else{if(la(e))throw Error(a(418));e.flags=-4097&e.flags|2,aa=!1,ra=e}}}function da(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&13!==e.tag;)e=e.return;ra=e}function pa(e){if(e!==ra)return!1;if(!aa)return da(e),aa=!0,!1;var t;if((t=3!==e.tag)&&!(t=5!==e.tag)&&(t="head"!==(t=e.type)&&"body"!==t&&!no(e.type,e.memoizedProps)),t&&(t=oa)){if(la(e))throw fa(),Error(a(418));for(;t;)sa(e,t),t=lo(t.nextSibling)}if(da(e),13===e.tag){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(a(317));e:{for(e=e.nextSibling,t=0;e;){if(8===e.nodeType){var n=e.data;if("/$"===n){if(0===t){oa=lo(e.nextSibling);break e}t--}else"$"!==n&&"$!"!==n&&"$?"!==n||t++}e=e.nextSibling}oa=null}}else oa=ra?lo(e.stateNode.nextSibling):null;return!0}function fa(){for(var e=oa;e;)e=lo(e.nextSibling)}function ma(){oa=ra=null,aa=!1}function ha(e){null===ia?ia=[e]:ia.push(e)}var ga=x.ReactCurrentBatchConfig;function ba(e,t,n){if(null!==(e=n.ref)&&"function"!=typeof e&&"object"!=typeof e){if(n._owner){if(n=n._owner){if(1!==n.tag)throw Error(a(309));var r=n.stateNode}if(!r)throw Error(a(147,e));var o=r,i=""+e;return null!==t&&null!==t.ref&&"function"==typeof t.ref&&t.ref._stringRef===i?t.ref:(t=function(e){var t=o.refs;null===e?delete t[i]:t[i]=e},t._stringRef=i,t)}if("string"!=typeof e)throw Error(a(284));if(!n._owner)throw Error(a(290,e))}return e}function ya(e,t){throw e=Object.prototype.toString.call(t),Error(a(31,"[object Object]"===e?"object with keys {"+Object.keys(t).join(", ")+"}":e))}function va(e){return(0,e._init)(e._payload)}function xa(e){function t(t,n){if(e){var r=t.deletions;null===r?(t.deletions=[n],t.flags|=16):r.push(n)}}function n(n,r){if(!e)return null;for(;null!==r;)t(n,r),r=r.sibling;return null}function r(e,t){for(e=new Map;null!==t;)null!==t.key?e.set(t.key,t):e.set(t.index,t),t=t.sibling;return e}function o(e,t){return(e=Rl(e,t)).index=0,e.sibling=null,e}function i(t,n,r){return t.index=r,e?null!==(r=t.alternate)?(r=r.index)<n?(t.flags|=2,n):r:(t.flags|=2,n):(t.flags|=1048576,n)}function s(t){return e&&null===t.alternate&&(t.flags|=2),t}function c(e,t,n,r){return null===t||6!==t.tag?((t=Dl(n,e.mode,r)).return=e,t):((t=o(t,n)).return=e,t)}function l(e,t,n,r){var a=n.type;return a===_?d(e,t,n.props.children,r,n.key):null!==t&&(t.elementType===a||"object"==typeof a&&null!==a&&a.$$typeof===O&&va(a)===t.type)?((r=o(t,n.props)).ref=ba(e,t,n),r.return=e,r):((r=Pl(n.type,n.key,n.props,null,e.mode,r)).ref=ba(e,t,n),r.return=e,r)}function u(e,t,n,r){return null===t||4!==t.tag||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?((t=Ml(n,e.mode,r)).return=e,t):((t=o(t,n.children||[])).return=e,t)}function d(e,t,n,r,a){return null===t||7!==t.tag?((t=Ll(n,e.mode,r,a)).return=e,t):((t=o(t,n)).return=e,t)}function p(e,t,n){if("string"==typeof t&&""!==t||"number"==typeof t)return(t=Dl(""+t,e.mode,n)).return=e,t;if("object"==typeof t&&null!==t){switch(t.$$typeof){case w:return(n=Pl(t.type,t.key,t.props,null,e.mode,n)).ref=ba(e,null,t),n.return=e,n;case k:return(t=Ml(t,e.mode,n)).return=e,t;case O:return p(e,(0,t._init)(t._payload),n)}if(te(t)||L(t))return(t=Ll(t,e.mode,n,null)).return=e,t;ya(e,t)}return null}function f(e,t,n,r){var o=null!==t?t.key:null;if("string"==typeof n&&""!==n||"number"==typeof n)return null!==o?null:c(e,t,""+n,r);if("object"==typeof n&&null!==n){switch(n.$$typeof){case w:return n.key===o?l(e,t,n,r):null;case k:return n.key===o?u(e,t,n,r):null;case O:return f(e,t,(o=n._init)(n._payload),r)}if(te(n)||L(n))return null!==o?null:d(e,t,n,r,null);ya(e,n)}return null}function m(e,t,n,r,o){if("string"==typeof r&&""!==r||"number"==typeof r)return c(t,e=e.get(n)||null,""+r,o);if("object"==typeof r&&null!==r){switch(r.$$typeof){case w:return l(t,e=e.get(null===r.key?n:r.key)||null,r,o);case k:return u(t,e=e.get(null===r.key?n:r.key)||null,r,o);case O:return m(e,t,n,(0,r._init)(r._payload),o)}if(te(r)||L(r))return d(t,e=e.get(n)||null,r,o,null);ya(t,r)}return null}function h(o,a,s,c){for(var l=null,u=null,d=a,h=a=0,g=null;null!==d&&h<s.length;h++){d.index>h?(g=d,d=null):g=d.sibling;var b=f(o,d,s[h],c);if(null===b){null===d&&(d=g);break}e&&d&&null===b.alternate&&t(o,d),a=i(b,a,h),null===u?l=b:u.sibling=b,u=b,d=g}if(h===s.length)return n(o,d),aa&&Xo(o,h),l;if(null===d){for(;h<s.length;h++)null!==(d=p(o,s[h],c))&&(a=i(d,a,h),null===u?l=d:u.sibling=d,u=d);return aa&&Xo(o,h),l}for(d=r(o,d);h<s.length;h++)null!==(g=m(d,o,h,s[h],c))&&(e&&null!==g.alternate&&d.delete(null===g.key?h:g.key),a=i(g,a,h),null===u?l=g:u.sibling=g,u=g);return e&&d.forEach((function(e){return t(o,e)})),aa&&Xo(o,h),l}function g(o,s,c,l){var u=L(c);if("function"!=typeof u)throw Error(a(150));if(null==(c=u.call(c)))throw Error(a(151));for(var d=u=null,h=s,g=s=0,b=null,y=c.next();null!==h&&!y.done;g++,y=c.next()){h.index>g?(b=h,h=null):b=h.sibling;var v=f(o,h,y.value,l);if(null===v){null===h&&(h=b);break}e&&h&&null===v.alternate&&t(o,h),s=i(v,s,g),null===d?u=v:d.sibling=v,d=v,h=b}if(y.done)return n(o,h),aa&&Xo(o,g),u;if(null===h){for(;!y.done;g++,y=c.next())null!==(y=p(o,y.value,l))&&(s=i(y,s,g),null===d?u=y:d.sibling=y,d=y);return aa&&Xo(o,g),u}for(h=r(o,h);!y.done;g++,y=c.next())null!==(y=m(h,o,g,y.value,l))&&(e&&null!==y.alternate&&h.delete(null===y.key?g:y.key),s=i(y,s,g),null===d?u=y:d.sibling=y,d=y);return e&&h.forEach((function(e){return t(o,e)})),aa&&Xo(o,g),u}return function e(r,a,i,c){if("object"==typeof i&&null!==i&&i.type===_&&null===i.key&&(i=i.props.children),"object"==typeof i&&null!==i){switch(i.$$typeof){case w:e:{for(var l=i.key,u=a;null!==u;){if(u.key===l){if((l=i.type)===_){if(7===u.tag){n(r,u.sibling),(a=o(u,i.props.children)).return=r,r=a;break e}}else if(u.elementType===l||"object"==typeof l&&null!==l&&l.$$typeof===O&&va(l)===u.type){n(r,u.sibling),(a=o(u,i.props)).ref=ba(r,u,i),a.return=r,r=a;break e}n(r,u);break}t(r,u),u=u.sibling}i.type===_?((a=Ll(i.props.children,r.mode,c,i.key)).return=r,r=a):((c=Pl(i.type,i.key,i.props,null,r.mode,c)).ref=ba(r,a,i),c.return=r,r=c)}return s(r);case k:e:{for(u=i.key;null!==a;){if(a.key===u){if(4===a.tag&&a.stateNode.containerInfo===i.containerInfo&&a.stateNode.implementation===i.implementation){n(r,a.sibling),(a=o(a,i.children||[])).return=r,r=a;break e}n(r,a);break}t(r,a),a=a.sibling}(a=Ml(i,r.mode,c)).return=r,r=a}return s(r);case O:return e(r,a,(u=i._init)(i._payload),c)}if(te(i))return h(r,a,i,c);if(L(i))return g(r,a,i,c);ya(r,i)}return"string"==typeof i&&""!==i||"number"==typeof i?(i=""+i,null!==a&&6===a.tag?(n(r,a.sibling),(a=o(a,i)).return=r,r=a):(n(r,a),(a=Dl(i,r.mode,c)).return=r,r=a),s(r)):n(r,a)}}var wa=xa(!0),ka=xa(!1),_a=Eo(null),Sa=null,Ea=null,Ca=null;function Aa(){Ca=Ea=Sa=null}function qa(e){var t=_a.current;Co(_a),e._currentValue=t}function ja(e,t,n){for(;null!==e;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,null!==r&&(r.childLanes|=t)):null!==r&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function Ta(e,t){Sa=e,Ca=Ea=null,null!==(e=e.dependencies)&&null!==e.firstContext&&(!!(e.lanes&t)&&(vs=!0),e.firstContext=null)}function Na(e){var t=e._currentValue;if(Ca!==e)if(e={context:e,memoizedValue:t,next:null},null===Ea){if(null===Sa)throw Error(a(308));Ea=e,Sa.dependencies={lanes:0,firstContext:e}}else Ea=Ea.next=e;return t}var Oa=null;function Ra(e){null===Oa?Oa=[e]:Oa.push(e)}function Pa(e,t,n,r){var o=t.interleaved;return null===o?(n.next=n,Ra(t)):(n.next=o.next,o.next=n),t.interleaved=n,La(e,r)}function La(e,t){e.lanes|=t;var n=e.alternate;for(null!==n&&(n.lanes|=t),n=e,e=e.return;null!==e;)e.childLanes|=t,null!==(n=e.alternate)&&(n.childLanes|=t),n=e,e=e.return;return 3===n.tag?n.stateNode:null}var Ia=!1;function Da(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Ma(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function Fa(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function za(e,t,n){var r=e.updateQueue;if(null===r)return null;if(r=r.shared,2&qc){var o=r.pending;return null===o?t.next=t:(t.next=o.next,o.next=t),r.pending=t,La(e,n)}return null===(o=r.interleaved)?(t.next=t,Ra(r)):(t.next=o.next,o.next=t),r.interleaved=t,La(e,n)}function Ba(e,t,n){if(null!==(t=t.updateQueue)&&(t=t.shared,4194240&n)){var r=t.lanes;n|=r&=e.pendingLanes,t.lanes=n,yt(e,n)}}function Ua(e,t){var n=e.updateQueue,r=e.alternate;if(null!==r&&n===(r=r.updateQueue)){var o=null,a=null;if(null!==(n=n.firstBaseUpdate)){do{var i={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};null===a?o=a=i:a=a.next=i,n=n.next}while(null!==n);null===a?o=a=t:a=a.next=t}else o=a=t;return n={baseState:r.baseState,firstBaseUpdate:o,lastBaseUpdate:a,shared:r.shared,effects:r.effects},void(e.updateQueue=n)}null===(e=n.lastBaseUpdate)?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function $a(e,t,n,r){var o=e.updateQueue;Ia=!1;var a=o.firstBaseUpdate,i=o.lastBaseUpdate,s=o.shared.pending;if(null!==s){o.shared.pending=null;var c=s,l=c.next;c.next=null,null===i?a=l:i.next=l,i=c;var u=e.alternate;null!==u&&((s=(u=u.updateQueue).lastBaseUpdate)!==i&&(null===s?u.firstBaseUpdate=l:s.next=l,u.lastBaseUpdate=c))}if(null!==a){var d=o.baseState;for(i=0,u=l=c=null,s=a;;){var p=s.lane,f=s.eventTime;if((r&p)===p){null!==u&&(u=u.next={eventTime:f,lane:0,tag:s.tag,payload:s.payload,callback:s.callback,next:null});e:{var m=e,h=s;switch(p=t,f=n,h.tag){case 1:if("function"==typeof(m=h.payload)){d=m.call(f,d,p);break e}d=m;break e;case 3:m.flags=-65537&m.flags|128;case 0:if(null==(p="function"==typeof(m=h.payload)?m.call(f,d,p):m))break e;d=D({},d,p);break e;case 2:Ia=!0}}null!==s.callback&&0!==s.lane&&(e.flags|=64,null===(p=o.effects)?o.effects=[s]:p.push(s))}else f={eventTime:f,lane:p,tag:s.tag,payload:s.payload,callback:s.callback,next:null},null===u?(l=u=f,c=d):u=u.next=f,i|=p;if(null===(s=s.next)){if(null===(s=o.shared.pending))break;s=(p=s).next,p.next=null,o.lastBaseUpdate=p,o.shared.pending=null}}if(null===u&&(c=d),o.baseState=c,o.firstBaseUpdate=l,o.lastBaseUpdate=u,null!==(t=o.shared.interleaved)){o=t;do{i|=o.lane,o=o.next}while(o!==t)}else null===a&&(o.shared.lanes=0);Ic|=i,e.lanes=i,e.memoizedState=d}}function Ha(e,t,n){if(e=t.effects,t.effects=null,null!==e)for(t=0;t<e.length;t++){var r=e[t],o=r.callback;if(null!==o){if(r.callback=null,r=n,"function"!=typeof o)throw Error(a(191,o));o.call(r)}}}var Wa={},Ga=Eo(Wa),Va=Eo(Wa),Ka=Eo(Wa);function Qa(e){if(e===Wa)throw Error(a(174));return e}function Ya(e,t){switch(Ao(Ka,t),Ao(Va,e),Ao(Ga,Wa),e=t.nodeType){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:ce(null,"");break;default:t=ce(t=(e=8===e?t.parentNode:t).namespaceURI||null,e=e.tagName)}Co(Ga),Ao(Ga,t)}function Ja(){Co(Ga),Co(Va),Co(Ka)}function Za(e){Qa(Ka.current);var t=Qa(Ga.current),n=ce(t,e.type);t!==n&&(Ao(Va,e),Ao(Ga,n))}function Xa(e){Va.current===e&&(Co(Ga),Co(Va))}var ei=Eo(0);function ti(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||"$?"===n.data||"$!"===n.data))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(128&t.flags)return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var ni=[];function ri(){for(var e=0;e<ni.length;e++)ni[e]._workInProgressVersionPrimary=null;ni.length=0}var oi=x.ReactCurrentDispatcher,ai=x.ReactCurrentBatchConfig,ii=0,si=null,ci=null,li=null,ui=!1,di=!1,pi=0,fi=0;function mi(){throw Error(a(321))}function hi(e,t){if(null===t)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!sr(e[n],t[n]))return!1;return!0}function gi(e,t,n,r,o,i){if(ii=i,si=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,oi.current=null===e||null===e.memoizedState?Xi:es,e=n(r,o),di){i=0;do{if(di=!1,pi=0,25<=i)throw Error(a(301));i+=1,li=ci=null,t.updateQueue=null,oi.current=ts,e=n(r,o)}while(di)}if(oi.current=Zi,t=null!==ci&&null!==ci.next,ii=0,li=ci=si=null,ui=!1,t)throw Error(a(300));return e}function bi(){var e=0!==pi;return pi=0,e}function yi(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===li?si.memoizedState=li=e:li=li.next=e,li}function vi(){if(null===ci){var e=si.alternate;e=null!==e?e.memoizedState:null}else e=ci.next;var t=null===li?si.memoizedState:li.next;if(null!==t)li=t,ci=e;else{if(null===e)throw Error(a(310));e={memoizedState:(ci=e).memoizedState,baseState:ci.baseState,baseQueue:ci.baseQueue,queue:ci.queue,next:null},null===li?si.memoizedState=li=e:li=li.next=e}return li}function xi(e,t){return"function"==typeof t?t(e):t}function wi(e){var t=vi(),n=t.queue;if(null===n)throw Error(a(311));n.lastRenderedReducer=e;var r=ci,o=r.baseQueue,i=n.pending;if(null!==i){if(null!==o){var s=o.next;o.next=i.next,i.next=s}r.baseQueue=o=i,n.pending=null}if(null!==o){i=o.next,r=r.baseState;var c=s=null,l=null,u=i;do{var d=u.lane;if((ii&d)===d)null!==l&&(l=l.next={lane:0,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null}),r=u.hasEagerState?u.eagerState:e(r,u.action);else{var p={lane:d,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null};null===l?(c=l=p,s=r):l=l.next=p,si.lanes|=d,Ic|=d}u=u.next}while(null!==u&&u!==i);null===l?s=r:l.next=c,sr(r,t.memoizedState)||(vs=!0),t.memoizedState=r,t.baseState=s,t.baseQueue=l,n.lastRenderedState=r}if(null!==(e=n.interleaved)){o=e;do{i=o.lane,si.lanes|=i,Ic|=i,o=o.next}while(o!==e)}else null===o&&(n.lanes=0);return[t.memoizedState,n.dispatch]}function ki(e){var t=vi(),n=t.queue;if(null===n)throw Error(a(311));n.lastRenderedReducer=e;var r=n.dispatch,o=n.pending,i=t.memoizedState;if(null!==o){n.pending=null;var s=o=o.next;do{i=e(i,s.action),s=s.next}while(s!==o);sr(i,t.memoizedState)||(vs=!0),t.memoizedState=i,null===t.baseQueue&&(t.baseState=i),n.lastRenderedState=i}return[i,r]}function _i(){}function Si(e,t){var n=si,r=vi(),o=t(),i=!sr(r.memoizedState,o);if(i&&(r.memoizedState=o,vs=!0),r=r.queue,Ii(Ai.bind(null,n,r,e),[e]),r.getSnapshot!==t||i||null!==li&&1&li.memoizedState.tag){if(n.flags|=2048,Ni(9,Ci.bind(null,n,r,o,t),void 0,null),null===jc)throw Error(a(349));30&ii||Ei(n,t,o)}return o}function Ei(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},null===(t=si.updateQueue)?(t={lastEffect:null,stores:null},si.updateQueue=t,t.stores=[e]):null===(n=t.stores)?t.stores=[e]:n.push(e)}function Ci(e,t,n,r){t.value=n,t.getSnapshot=r,qi(t)&&ji(e)}function Ai(e,t,n){return n((function(){qi(t)&&ji(e)}))}function qi(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!sr(e,n)}catch(r){return!0}}function ji(e){var t=La(e,1);null!==t&&nl(t,e,1,-1)}function Ti(e){var t=yi();return"function"==typeof e&&(e=e()),t.memoizedState=t.baseState=e,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:xi,lastRenderedState:e},t.queue=e,e=e.dispatch=Ki.bind(null,si,e),[t.memoizedState,e]}function Ni(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},null===(t=si.updateQueue)?(t={lastEffect:null,stores:null},si.updateQueue=t,t.lastEffect=e.next=e):null===(n=t.lastEffect)?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function Oi(){return vi().memoizedState}function Ri(e,t,n,r){var o=yi();si.flags|=e,o.memoizedState=Ni(1|t,n,void 0,void 0===r?null:r)}function Pi(e,t,n,r){var o=vi();r=void 0===r?null:r;var a=void 0;if(null!==ci){var i=ci.memoizedState;if(a=i.destroy,null!==r&&hi(r,i.deps))return void(o.memoizedState=Ni(t,n,a,r))}si.flags|=e,o.memoizedState=Ni(1|t,n,a,r)}function Li(e,t){return Ri(8390656,8,e,t)}function Ii(e,t){return Pi(2048,8,e,t)}function Di(e,t){return Pi(4,2,e,t)}function Mi(e,t){return Pi(4,4,e,t)}function Fi(e,t){return"function"==typeof t?(e=e(),t(e),function(){t(null)}):null!=t?(e=e(),t.current=e,function(){t.current=null}):void 0}function zi(e,t,n){return n=null!=n?n.concat([e]):null,Pi(4,4,Fi.bind(null,t,e),n)}function Bi(){}function Ui(e,t){var n=vi();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&hi(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function $i(e,t){var n=vi();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&hi(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)}function Hi(e,t,n){return 21&ii?(sr(n,t)||(n=ht(),si.lanes|=n,Ic|=n,e.baseState=!0),t):(e.baseState&&(e.baseState=!1,vs=!0),e.memoizedState=n)}function Wi(e,t){var n=vt;vt=0!==n&&4>n?n:4,e(!0);var r=ai.transition;ai.transition={};try{e(!1),t()}finally{vt=n,ai.transition=r}}function Gi(){return vi().memoizedState}function Vi(e,t,n){var r=tl(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},Qi(e))Yi(t,n);else if(null!==(n=Pa(e,t,n,r))){nl(n,e,r,el()),Ji(n,t,r)}}function Ki(e,t,n){var r=tl(e),o={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(Qi(e))Yi(t,o);else{var a=e.alternate;if(0===e.lanes&&(null===a||0===a.lanes)&&null!==(a=t.lastRenderedReducer))try{var i=t.lastRenderedState,s=a(i,n);if(o.hasEagerState=!0,o.eagerState=s,sr(s,i)){var c=t.interleaved;return null===c?(o.next=o,Ra(t)):(o.next=c.next,c.next=o),void(t.interleaved=o)}}catch(l){}null!==(n=Pa(e,t,o,r))&&(nl(n,e,r,o=el()),Ji(n,t,r))}}function Qi(e){var t=e.alternate;return e===si||null!==t&&t===si}function Yi(e,t){di=ui=!0;var n=e.pending;null===n?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Ji(e,t,n){if(4194240&n){var r=t.lanes;n|=r&=e.pendingLanes,t.lanes=n,yt(e,n)}}var Zi={readContext:Na,useCallback:mi,useContext:mi,useEffect:mi,useImperativeHandle:mi,useInsertionEffect:mi,useLayoutEffect:mi,useMemo:mi,useReducer:mi,useRef:mi,useState:mi,useDebugValue:mi,useDeferredValue:mi,useTransition:mi,useMutableSource:mi,useSyncExternalStore:mi,useId:mi,unstable_isNewReconciler:!1},Xi={readContext:Na,useCallback:function(e,t){return yi().memoizedState=[e,void 0===t?null:t],e},useContext:Na,useEffect:Li,useImperativeHandle:function(e,t,n){return n=null!=n?n.concat([e]):null,Ri(4194308,4,Fi.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Ri(4194308,4,e,t)},useInsertionEffect:function(e,t){return Ri(4,2,e,t)},useMemo:function(e,t){var n=yi();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=yi();return t=void 0!==n?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=Vi.bind(null,si,e),[r.memoizedState,e]},useRef:function(e){return e={current:e},yi().memoizedState=e},useState:Ti,useDebugValue:Bi,useDeferredValue:function(e){return yi().memoizedState=e},useTransition:function(){var e=Ti(!1),t=e[0];return e=Wi.bind(null,e[1]),yi().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=si,o=yi();if(aa){if(void 0===n)throw Error(a(407));n=n()}else{if(n=t(),null===jc)throw Error(a(349));30&ii||Ei(r,t,n)}o.memoizedState=n;var i={value:n,getSnapshot:t};return o.queue=i,Li(Ai.bind(null,r,i,e),[e]),r.flags|=2048,Ni(9,Ci.bind(null,r,i,n,t),void 0,null),n},useId:function(){var e=yi(),t=jc.identifierPrefix;if(aa){var n=Zo;t=":"+t+"R"+(n=(Jo&~(1<<32-it(Jo)-1)).toString(32)+n),0<(n=pi++)&&(t+="H"+n.toString(32)),t+=":"}else t=":"+t+"r"+(n=fi++).toString(32)+":";return e.memoizedState=t},unstable_isNewReconciler:!1},es={readContext:Na,useCallback:Ui,useContext:Na,useEffect:Ii,useImperativeHandle:zi,useInsertionEffect:Di,useLayoutEffect:Mi,useMemo:$i,useReducer:wi,useRef:Oi,useState:function(){return wi(xi)},useDebugValue:Bi,useDeferredValue:function(e){return Hi(vi(),ci.memoizedState,e)},useTransition:function(){return[wi(xi)[0],vi().memoizedState]},useMutableSource:_i,useSyncExternalStore:Si,useId:Gi,unstable_isNewReconciler:!1},ts={readContext:Na,useCallback:Ui,useContext:Na,useEffect:Ii,useImperativeHandle:zi,useInsertionEffect:Di,useLayoutEffect:Mi,useMemo:$i,useReducer:ki,useRef:Oi,useState:function(){return ki(xi)},useDebugValue:Bi,useDeferredValue:function(e){var t=vi();return null===ci?t.memoizedState=e:Hi(t,ci.memoizedState,e)},useTransition:function(){return[ki(xi)[0],vi().memoizedState]},useMutableSource:_i,useSyncExternalStore:Si,useId:Gi,unstable_isNewReconciler:!1};function ns(e,t){if(e&&e.defaultProps){for(var n in t=D({},t),e=e.defaultProps)void 0===t[n]&&(t[n]=e[n]);return t}return t}function rs(e,t,n,r){n=null==(n=n(r,t=e.memoizedState))?t:D({},t,n),e.memoizedState=n,0===e.lanes&&(e.updateQueue.baseState=n)}var os={isMounted:function(e){return!!(e=e._reactInternals)&&Ue(e)===e},enqueueSetState:function(e,t,n){e=e._reactInternals;var r=el(),o=tl(e),a=Fa(r,o);a.payload=t,null!=n&&(a.callback=n),null!==(t=za(e,a,o))&&(nl(t,e,o,r),Ba(t,e,o))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=el(),o=tl(e),a=Fa(r,o);a.tag=1,a.payload=t,null!=n&&(a.callback=n),null!==(t=za(e,a,o))&&(nl(t,e,o,r),Ba(t,e,o))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=el(),r=tl(e),o=Fa(n,r);o.tag=2,null!=t&&(o.callback=t),null!==(t=za(e,o,r))&&(nl(t,e,r,n),Ba(t,e,r))}};function as(e,t,n,r,o,a,i){return"function"==typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,a,i):!t.prototype||!t.prototype.isPureReactComponent||(!cr(n,r)||!cr(o,a))}function is(e,t,n){var r=!1,o=qo,a=t.contextType;return"object"==typeof a&&null!==a?a=Na(a):(o=Ro(t)?No:jo.current,a=(r=null!=(r=t.contextTypes))?Oo(e,o):qo),t=new t(n,a),e.memoizedState=null!==t.state&&void 0!==t.state?t.state:null,t.updater=os,e.stateNode=t,t._reactInternals=e,r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=o,e.__reactInternalMemoizedMaskedChildContext=a),t}function ss(e,t,n,r){e=t.state,"function"==typeof t.componentWillReceiveProps&&t.componentWillReceiveProps(n,r),"function"==typeof t.UNSAFE_componentWillReceiveProps&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&os.enqueueReplaceState(t,t.state,null)}function cs(e,t,n,r){var o=e.stateNode;o.props=n,o.state=e.memoizedState,o.refs={},Da(e);var a=t.contextType;"object"==typeof a&&null!==a?o.context=Na(a):(a=Ro(t)?No:jo.current,o.context=Oo(e,a)),o.state=e.memoizedState,"function"==typeof(a=t.getDerivedStateFromProps)&&(rs(e,t,a,n),o.state=e.memoizedState),"function"==typeof t.getDerivedStateFromProps||"function"==typeof o.getSnapshotBeforeUpdate||"function"!=typeof o.UNSAFE_componentWillMount&&"function"!=typeof o.componentWillMount||(t=o.state,"function"==typeof o.componentWillMount&&o.componentWillMount(),"function"==typeof o.UNSAFE_componentWillMount&&o.UNSAFE_componentWillMount(),t!==o.state&&os.enqueueReplaceState(o,o.state,null),$a(e,n,o,r),o.state=e.memoizedState),"function"==typeof o.componentDidMount&&(e.flags|=4194308)}function ls(e,t){try{var n="",r=t;do{n+=B(r),r=r.return}while(r);var o=n}catch(a){o="\nError generating stack: "+a.message+"\n"+a.stack}return{value:e,source:t,stack:o,digest:null}}function us(e,t,n){return{value:e,source:null,stack:null!=n?n:null,digest:null!=t?t:null}}function ds(e,t){try{console.error(t.value)}catch(n){setTimeout((function(){throw n}))}}var ps="function"==typeof WeakMap?WeakMap:Map;function fs(e,t,n){(n=Fa(-1,n)).tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){Hc||(Hc=!0,Wc=r),ds(0,t)},n}function ms(e,t,n){(n=Fa(-1,n)).tag=3;var r=e.type.getDerivedStateFromError;if("function"==typeof r){var o=t.value;n.payload=function(){return r(o)},n.callback=function(){ds(0,t)}}var a=e.stateNode;return null!==a&&"function"==typeof a.componentDidCatch&&(n.callback=function(){ds(0,t),"function"!=typeof r&&(null===Gc?Gc=new Set([this]):Gc.add(this));var e=t.stack;this.componentDidCatch(t.value,{componentStack:null!==e?e:""})}),n}function hs(e,t,n){var r=e.pingCache;if(null===r){r=e.pingCache=new ps;var o=new Set;r.set(t,o)}else void 0===(o=r.get(t))&&(o=new Set,r.set(t,o));o.has(n)||(o.add(n),e=El.bind(null,e,t,n),t.then(e,e))}function gs(e){do{var t;if((t=13===e.tag)&&(t=null===(t=e.memoizedState)||null!==t.dehydrated),t)return e;e=e.return}while(null!==e);return null}function bs(e,t,n,r,o){return 1&e.mode?(e.flags|=65536,e.lanes=o,e):(e===t?e.flags|=65536:(e.flags|=128,n.flags|=131072,n.flags&=-52805,1===n.tag&&(null===n.alternate?n.tag=17:((t=Fa(-1,1)).tag=2,za(n,t,1))),n.lanes|=1),e)}var ys=x.ReactCurrentOwner,vs=!1;function xs(e,t,n,r){t.child=null===e?ka(t,null,n,r):wa(t,e.child,n,r)}function ws(e,t,n,r,o){n=n.render;var a=t.ref;return Ta(t,o),r=gi(e,t,n,r,a,o),n=bi(),null===e||vs?(aa&&n&&ta(t),t.flags|=1,xs(e,t,r,o),t.child):(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~o,Hs(e,t,o))}function ks(e,t,n,r,o){if(null===e){var a=n.type;return"function"!=typeof a||Ol(a)||void 0!==a.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=Pl(n.type,null,r,t,t.mode,o)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=a,_s(e,t,a,r,o))}if(a=e.child,!(e.lanes&o)){var i=a.memoizedProps;if((n=null!==(n=n.compare)?n:cr)(i,r)&&e.ref===t.ref)return Hs(e,t,o)}return t.flags|=1,(e=Rl(a,r)).ref=t.ref,e.return=t,t.child=e}function _s(e,t,n,r,o){if(null!==e){var a=e.memoizedProps;if(cr(a,r)&&e.ref===t.ref){if(vs=!1,t.pendingProps=r=a,!(e.lanes&o))return t.lanes=e.lanes,Hs(e,t,o);131072&e.flags&&(vs=!0)}}return Cs(e,t,n,r,o)}function Ss(e,t,n){var r=t.pendingProps,o=r.children,a=null!==e?e.memoizedState:null;if("hidden"===r.mode)if(1&t.mode){if(!(1073741824&n))return e=null!==a?a.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,Ao(Rc,Oc),Oc|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},r=null!==a?a.baseLanes:n,Ao(Rc,Oc),Oc|=r}else t.memoizedState={baseLanes:0,cachePool:null,transitions:null},Ao(Rc,Oc),Oc|=n;else null!==a?(r=a.baseLanes|n,t.memoizedState=null):r=n,Ao(Rc,Oc),Oc|=r;return xs(e,t,o,n),t.child}function Es(e,t){var n=t.ref;(null===e&&null!==n||null!==e&&e.ref!==n)&&(t.flags|=512,t.flags|=2097152)}function Cs(e,t,n,r,o){var a=Ro(n)?No:jo.current;return a=Oo(t,a),Ta(t,o),n=gi(e,t,n,r,a,o),r=bi(),null===e||vs?(aa&&r&&ta(t),t.flags|=1,xs(e,t,n,o),t.child):(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~o,Hs(e,t,o))}function As(e,t,n,r,o){if(Ro(n)){var a=!0;Do(t)}else a=!1;if(Ta(t,o),null===t.stateNode)$s(e,t),is(t,n,r),cs(t,n,r,o),r=!0;else if(null===e){var i=t.stateNode,s=t.memoizedProps;i.props=s;var c=i.context,l=n.contextType;"object"==typeof l&&null!==l?l=Na(l):l=Oo(t,l=Ro(n)?No:jo.current);var u=n.getDerivedStateFromProps,d="function"==typeof u||"function"==typeof i.getSnapshotBeforeUpdate;d||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(s!==r||c!==l)&&ss(t,i,r,l),Ia=!1;var p=t.memoizedState;i.state=p,$a(t,r,i,o),c=t.memoizedState,s!==r||p!==c||To.current||Ia?("function"==typeof u&&(rs(t,n,u,r),c=t.memoizedState),(s=Ia||as(t,n,s,r,p,c,l))?(d||"function"!=typeof i.UNSAFE_componentWillMount&&"function"!=typeof i.componentWillMount||("function"==typeof i.componentWillMount&&i.componentWillMount(),"function"==typeof i.UNSAFE_componentWillMount&&i.UNSAFE_componentWillMount()),"function"==typeof i.componentDidMount&&(t.flags|=4194308)):("function"==typeof i.componentDidMount&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=c),i.props=r,i.state=c,i.context=l,r=s):("function"==typeof i.componentDidMount&&(t.flags|=4194308),r=!1)}else{i=t.stateNode,Ma(e,t),s=t.memoizedProps,l=t.type===t.elementType?s:ns(t.type,s),i.props=l,d=t.pendingProps,p=i.context,"object"==typeof(c=n.contextType)&&null!==c?c=Na(c):c=Oo(t,c=Ro(n)?No:jo.current);var f=n.getDerivedStateFromProps;(u="function"==typeof f||"function"==typeof i.getSnapshotBeforeUpdate)||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(s!==d||p!==c)&&ss(t,i,r,c),Ia=!1,p=t.memoizedState,i.state=p,$a(t,r,i,o);var m=t.memoizedState;s!==d||p!==m||To.current||Ia?("function"==typeof f&&(rs(t,n,f,r),m=t.memoizedState),(l=Ia||as(t,n,l,r,p,m,c)||!1)?(u||"function"!=typeof i.UNSAFE_componentWillUpdate&&"function"!=typeof i.componentWillUpdate||("function"==typeof i.componentWillUpdate&&i.componentWillUpdate(r,m,c),"function"==typeof i.UNSAFE_componentWillUpdate&&i.UNSAFE_componentWillUpdate(r,m,c)),"function"==typeof i.componentDidUpdate&&(t.flags|=4),"function"==typeof i.getSnapshotBeforeUpdate&&(t.flags|=1024)):("function"!=typeof i.componentDidUpdate||s===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||s===e.memoizedProps&&p===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=m),i.props=r,i.state=m,i.context=c,r=l):("function"!=typeof i.componentDidUpdate||s===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||s===e.memoizedProps&&p===e.memoizedState||(t.flags|=1024),r=!1)}return qs(e,t,n,r,a,o)}function qs(e,t,n,r,o,a){Es(e,t);var i=!!(128&t.flags);if(!r&&!i)return o&&Mo(t,n,!1),Hs(e,t,a);r=t.stateNode,ys.current=t;var s=i&&"function"!=typeof n.getDerivedStateFromError?null:r.render();return t.flags|=1,null!==e&&i?(t.child=wa(t,e.child,null,a),t.child=wa(t,null,s,a)):xs(e,t,s,a),t.memoizedState=r.state,o&&Mo(t,n,!0),t.child}function js(e){var t=e.stateNode;t.pendingContext?Lo(0,t.pendingContext,t.pendingContext!==t.context):t.context&&Lo(0,t.context,!1),Ya(e,t.containerInfo)}function Ts(e,t,n,r,o){return ma(),ha(o),t.flags|=256,xs(e,t,n,r),t.child}var Ns,Os,Rs,Ps,Ls={dehydrated:null,treeContext:null,retryLane:0};function Is(e){return{baseLanes:e,cachePool:null,transitions:null}}function Ds(e,t,n){var r,o=t.pendingProps,i=ei.current,s=!1,c=!!(128&t.flags);if((r=c)||(r=(null===e||null!==e.memoizedState)&&!!(2&i)),r?(s=!0,t.flags&=-129):null!==e&&null===e.memoizedState||(i|=1),Ao(ei,1&i),null===e)return ua(t),null!==(e=t.memoizedState)&&null!==(e=e.dehydrated)?(1&t.mode?"$!"===e.data?t.lanes=8:t.lanes=1073741824:t.lanes=1,null):(c=o.children,e=o.fallback,s?(o=t.mode,s=t.child,c={mode:"hidden",children:c},1&o||null===s?s=Il(c,o,0,null):(s.childLanes=0,s.pendingProps=c),e=Ll(e,o,n,null),s.return=t,e.return=t,s.sibling=e,t.child=s,t.child.memoizedState=Is(n),t.memoizedState=Ls,e):Ms(t,c));if(null!==(i=e.memoizedState)&&null!==(r=i.dehydrated))return function(e,t,n,r,o,i,s){if(n)return 256&t.flags?(t.flags&=-257,Fs(e,t,s,r=us(Error(a(422))))):null!==t.memoizedState?(t.child=e.child,t.flags|=128,null):(i=r.fallback,o=t.mode,r=Il({mode:"visible",children:r.children},o,0,null),(i=Ll(i,o,s,null)).flags|=2,r.return=t,i.return=t,r.sibling=i,t.child=r,1&t.mode&&wa(t,e.child,null,s),t.child.memoizedState=Is(s),t.memoizedState=Ls,i);if(!(1&t.mode))return Fs(e,t,s,null);if("$!"===o.data){if(r=o.nextSibling&&o.nextSibling.dataset)var c=r.dgst;return r=c,Fs(e,t,s,r=us(i=Error(a(419)),r,void 0))}if(c=!!(s&e.childLanes),vs||c){if(null!==(r=jc)){switch(s&-s){case 4:o=2;break;case 16:o=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:o=32;break;case 536870912:o=268435456;break;default:o=0}0!==(o=o&(r.suspendedLanes|s)?0:o)&&o!==i.retryLane&&(i.retryLane=o,La(e,o),nl(r,e,o,-1))}return hl(),Fs(e,t,s,r=us(Error(a(421))))}return"$?"===o.data?(t.flags|=128,t.child=e.child,t=Al.bind(null,e),o._reactRetry=t,null):(e=i.treeContext,oa=lo(o.nextSibling),ra=t,aa=!0,ia=null,null!==e&&(Ko[Qo++]=Jo,Ko[Qo++]=Zo,Ko[Qo++]=Yo,Jo=e.id,Zo=e.overflow,Yo=t),t=Ms(t,r.children),t.flags|=4096,t)}(e,t,c,o,r,i,n);if(s){s=o.fallback,c=t.mode,r=(i=e.child).sibling;var l={mode:"hidden",children:o.children};return 1&c||t.child===i?(o=Rl(i,l)).subtreeFlags=14680064&i.subtreeFlags:((o=t.child).childLanes=0,o.pendingProps=l,t.deletions=null),null!==r?s=Rl(r,s):(s=Ll(s,c,n,null)).flags|=2,s.return=t,o.return=t,o.sibling=s,t.child=o,o=s,s=t.child,c=null===(c=e.child.memoizedState)?Is(n):{baseLanes:c.baseLanes|n,cachePool:null,transitions:c.transitions},s.memoizedState=c,s.childLanes=e.childLanes&~n,t.memoizedState=Ls,o}return e=(s=e.child).sibling,o=Rl(s,{mode:"visible",children:o.children}),!(1&t.mode)&&(o.lanes=n),o.return=t,o.sibling=null,null!==e&&(null===(n=t.deletions)?(t.deletions=[e],t.flags|=16):n.push(e)),t.child=o,t.memoizedState=null,o}function Ms(e,t){return(t=Il({mode:"visible",children:t},e.mode,0,null)).return=e,e.child=t}function Fs(e,t,n,r){return null!==r&&ha(r),wa(t,e.child,null,n),(e=Ms(t,t.pendingProps.children)).flags|=2,t.memoizedState=null,e}function zs(e,t,n){e.lanes|=t;var r=e.alternate;null!==r&&(r.lanes|=t),ja(e.return,t,n)}function Bs(e,t,n,r,o){var a=e.memoizedState;null===a?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:o}:(a.isBackwards=t,a.rendering=null,a.renderingStartTime=0,a.last=r,a.tail=n,a.tailMode=o)}function Us(e,t,n){var r=t.pendingProps,o=r.revealOrder,a=r.tail;if(xs(e,t,r.children,n),2&(r=ei.current))r=1&r|2,t.flags|=128;else{if(null!==e&&128&e.flags)e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&zs(e,n,t);else if(19===e.tag)zs(e,n,t);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;null===e.sibling;){if(null===e.return||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(Ao(ei,r),1&t.mode)switch(o){case"forwards":for(n=t.child,o=null;null!==n;)null!==(e=n.alternate)&&null===ti(e)&&(o=n),n=n.sibling;null===(n=o)?(o=t.child,t.child=null):(o=n.sibling,n.sibling=null),Bs(t,!1,o,n,a);break;case"backwards":for(n=null,o=t.child,t.child=null;null!==o;){if(null!==(e=o.alternate)&&null===ti(e)){t.child=o;break}e=o.sibling,o.sibling=n,n=o,o=e}Bs(t,!0,n,null,a);break;case"together":Bs(t,!1,null,null,void 0);break;default:t.memoizedState=null}else t.memoizedState=null;return t.child}function $s(e,t){!(1&t.mode)&&null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2)}function Hs(e,t,n){if(null!==e&&(t.dependencies=e.dependencies),Ic|=t.lanes,!(n&t.childLanes))return null;if(null!==e&&t.child!==e.child)throw Error(a(153));if(null!==t.child){for(n=Rl(e=t.child,e.pendingProps),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=Rl(e,e.pendingProps)).return=t;n.sibling=null}return t.child}function Ws(e,t){if(!aa)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;null!==t;)null!==t.alternate&&(n=t),t=t.sibling;null===n?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;null!==n;)null!==n.alternate&&(r=n),n=n.sibling;null===r?t||null===e.tail?e.tail=null:e.tail.sibling=null:r.sibling=null}}function Gs(e){var t=null!==e.alternate&&e.alternate.child===e.child,n=0,r=0;if(t)for(var o=e.child;null!==o;)n|=o.lanes|o.childLanes,r|=14680064&o.subtreeFlags,r|=14680064&o.flags,o.return=e,o=o.sibling;else for(o=e.child;null!==o;)n|=o.lanes|o.childLanes,r|=o.subtreeFlags,r|=o.flags,o.return=e,o=o.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function Vs(e,t,n){var r=t.pendingProps;switch(na(t),t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Gs(t),null;case 1:case 17:return Ro(t.type)&&Po(),Gs(t),null;case 3:return r=t.stateNode,Ja(),Co(To),Co(jo),ri(),r.pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),null!==e&&null!==e.child||(pa(t)?t.flags|=4:null===e||e.memoizedState.isDehydrated&&!(256&t.flags)||(t.flags|=1024,null!==ia&&(il(ia),ia=null))),Os(e,t),Gs(t),null;case 5:Xa(t);var o=Qa(Ka.current);if(n=t.type,null!==e&&null!=t.stateNode)Rs(e,t,n,r,o),e.ref!==t.ref&&(t.flags|=512,t.flags|=2097152);else{if(!r){if(null===t.stateNode)throw Error(a(166));return Gs(t),null}if(e=Qa(Ga.current),pa(t)){r=t.stateNode,n=t.type;var i=t.memoizedProps;switch(r[fo]=t,r[mo]=i,e=!!(1&t.mode),n){case"dialog":Fr("cancel",r),Fr("close",r);break;case"iframe":case"object":case"embed":Fr("load",r);break;case"video":case"audio":for(o=0;o<Lr.length;o++)Fr(Lr[o],r);break;case"source":Fr("error",r);break;case"img":case"image":case"link":Fr("error",r),Fr("load",r);break;case"details":Fr("toggle",r);break;case"input":Y(r,i),Fr("invalid",r);break;case"select":r._wrapperState={wasMultiple:!!i.multiple},Fr("invalid",r);break;case"textarea":oe(r,i),Fr("invalid",r)}for(var c in ye(n,i),o=null,i)if(i.hasOwnProperty(c)){var l=i[c];"children"===c?"string"==typeof l?r.textContent!==l&&(!0!==i.suppressHydrationWarning&&Zr(r.textContent,l,e),o=["children",l]):"number"==typeof l&&r.textContent!==""+l&&(!0!==i.suppressHydrationWarning&&Zr(r.textContent,l,e),o=["children",""+l]):s.hasOwnProperty(c)&&null!=l&&"onScroll"===c&&Fr("scroll",r)}switch(n){case"input":G(r),X(r,i,!0);break;case"textarea":G(r),ie(r);break;case"select":case"option":break;default:"function"==typeof i.onClick&&(r.onclick=Xr)}r=o,t.updateQueue=r,null!==r&&(t.flags|=4)}else{c=9===o.nodeType?o:o.ownerDocument,"http://www.w3.org/1999/xhtml"===e&&(e=se(n)),"http://www.w3.org/1999/xhtml"===e?"script"===n?((e=c.createElement("div")).innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):"string"==typeof r.is?e=c.createElement(n,{is:r.is}):(e=c.createElement(n),"select"===n&&(c=e,r.multiple?c.multiple=!0:r.size&&(c.size=r.size))):e=c.createElementNS(e,n),e[fo]=t,e[mo]=r,Ns(e,t,!1,!1),t.stateNode=e;e:{switch(c=ve(n,r),n){case"dialog":Fr("cancel",e),Fr("close",e),o=r;break;case"iframe":case"object":case"embed":Fr("load",e),o=r;break;case"video":case"audio":for(o=0;o<Lr.length;o++)Fr(Lr[o],e);o=r;break;case"source":Fr("error",e),o=r;break;case"img":case"image":case"link":Fr("error",e),Fr("load",e),o=r;break;case"details":Fr("toggle",e),o=r;break;case"input":Y(e,r),o=Q(e,r),Fr("invalid",e);break;case"option":default:o=r;break;case"select":e._wrapperState={wasMultiple:!!r.multiple},o=D({},r,{value:void 0}),Fr("invalid",e);break;case"textarea":oe(e,r),o=re(e,r),Fr("invalid",e)}for(i in ye(n,o),l=o)if(l.hasOwnProperty(i)){var u=l[i];"style"===i?ge(e,u):"dangerouslySetInnerHTML"===i?null!=(u=u?u.__html:void 0)&&de(e,u):"children"===i?"string"==typeof u?("textarea"!==n||""!==u)&&pe(e,u):"number"==typeof u&&pe(e,""+u):"suppressContentEditableWarning"!==i&&"suppressHydrationWarning"!==i&&"autoFocus"!==i&&(s.hasOwnProperty(i)?null!=u&&"onScroll"===i&&Fr("scroll",e):null!=u&&v(e,i,u,c))}switch(n){case"input":G(e),X(e,r,!1);break;case"textarea":G(e),ie(e);break;case"option":null!=r.value&&e.setAttribute("value",""+H(r.value));break;case"select":e.multiple=!!r.multiple,null!=(i=r.value)?ne(e,!!r.multiple,i,!1):null!=r.defaultValue&&ne(e,!!r.multiple,r.defaultValue,!0);break;default:"function"==typeof o.onClick&&(e.onclick=Xr)}switch(n){case"button":case"input":case"select":case"textarea":r=!!r.autoFocus;break e;case"img":r=!0;break e;default:r=!1}}r&&(t.flags|=4)}null!==t.ref&&(t.flags|=512,t.flags|=2097152)}return Gs(t),null;case 6:if(e&&null!=t.stateNode)Ps(e,t,e.memoizedProps,r);else{if("string"!=typeof r&&null===t.stateNode)throw Error(a(166));if(n=Qa(Ka.current),Qa(Ga.current),pa(t)){if(r=t.stateNode,n=t.memoizedProps,r[fo]=t,(i=r.nodeValue!==n)&&null!==(e=ra))switch(e.tag){case 3:Zr(r.nodeValue,n,!!(1&e.mode));break;case 5:!0!==e.memoizedProps.suppressHydrationWarning&&Zr(r.nodeValue,n,!!(1&e.mode))}i&&(t.flags|=4)}else(r=(9===n.nodeType?n:n.ownerDocument).createTextNode(r))[fo]=t,t.stateNode=r}return Gs(t),null;case 13:if(Co(ei),r=t.memoizedState,null===e||null!==e.memoizedState&&null!==e.memoizedState.dehydrated){if(aa&&null!==oa&&1&t.mode&&!(128&t.flags))fa(),ma(),t.flags|=98560,i=!1;else if(i=pa(t),null!==r&&null!==r.dehydrated){if(null===e){if(!i)throw Error(a(318));if(!(i=null!==(i=t.memoizedState)?i.dehydrated:null))throw Error(a(317));i[fo]=t}else ma(),!(128&t.flags)&&(t.memoizedState=null),t.flags|=4;Gs(t),i=!1}else null!==ia&&(il(ia),ia=null),i=!0;if(!i)return 65536&t.flags?t:null}return 128&t.flags?(t.lanes=n,t):((r=null!==r)!==(null!==e&&null!==e.memoizedState)&&r&&(t.child.flags|=8192,1&t.mode&&(null===e||1&ei.current?0===Pc&&(Pc=3):hl())),null!==t.updateQueue&&(t.flags|=4),Gs(t),null);case 4:return Ja(),Os(e,t),null===e&&Ur(t.stateNode.containerInfo),Gs(t),null;case 10:return qa(t.type._context),Gs(t),null;case 19:if(Co(ei),null===(i=t.memoizedState))return Gs(t),null;if(r=!!(128&t.flags),null===(c=i.rendering))if(r)Ws(i,!1);else{if(0!==Pc||null!==e&&128&e.flags)for(e=t.child;null!==e;){if(null!==(c=ti(e))){for(t.flags|=128,Ws(i,!1),null!==(r=c.updateQueue)&&(t.updateQueue=r,t.flags|=4),t.subtreeFlags=0,r=n,n=t.child;null!==n;)e=r,(i=n).flags&=14680066,null===(c=i.alternate)?(i.childLanes=0,i.lanes=e,i.child=null,i.subtreeFlags=0,i.memoizedProps=null,i.memoizedState=null,i.updateQueue=null,i.dependencies=null,i.stateNode=null):(i.childLanes=c.childLanes,i.lanes=c.lanes,i.child=c.child,i.subtreeFlags=0,i.deletions=null,i.memoizedProps=c.memoizedProps,i.memoizedState=c.memoizedState,i.updateQueue=c.updateQueue,i.type=c.type,e=c.dependencies,i.dependencies=null===e?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return Ao(ei,1&ei.current|2),t.child}e=e.sibling}null!==i.tail&&Je()>Uc&&(t.flags|=128,r=!0,Ws(i,!1),t.lanes=4194304)}else{if(!r)if(null!==(e=ti(c))){if(t.flags|=128,r=!0,null!==(n=e.updateQueue)&&(t.updateQueue=n,t.flags|=4),Ws(i,!0),null===i.tail&&"hidden"===i.tailMode&&!c.alternate&&!aa)return Gs(t),null}else 2*Je()-i.renderingStartTime>Uc&&1073741824!==n&&(t.flags|=128,r=!0,Ws(i,!1),t.lanes=4194304);i.isBackwards?(c.sibling=t.child,t.child=c):(null!==(n=i.last)?n.sibling=c:t.child=c,i.last=c)}return null!==i.tail?(t=i.tail,i.rendering=t,i.tail=t.sibling,i.renderingStartTime=Je(),t.sibling=null,n=ei.current,Ao(ei,r?1&n|2:1&n),t):(Gs(t),null);case 22:case 23:return dl(),r=null!==t.memoizedState,null!==e&&null!==e.memoizedState!==r&&(t.flags|=8192),r&&1&t.mode?!!(1073741824&Oc)&&(Gs(t),6&t.subtreeFlags&&(t.flags|=8192)):Gs(t),null;case 24:case 25:return null}throw Error(a(156,t.tag))}function Ks(e,t){switch(na(t),t.tag){case 1:return Ro(t.type)&&Po(),65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 3:return Ja(),Co(To),Co(jo),ri(),65536&(e=t.flags)&&!(128&e)?(t.flags=-65537&e|128,t):null;case 5:return Xa(t),null;case 13:if(Co(ei),null!==(e=t.memoizedState)&&null!==e.dehydrated){if(null===t.alternate)throw Error(a(340));ma()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 19:return Co(ei),null;case 4:return Ja(),null;case 10:return qa(t.type._context),null;case 22:case 23:return dl(),null;default:return null}}Ns=function(e,t){for(var n=t.child;null!==n;){if(5===n.tag||6===n.tag)e.appendChild(n.stateNode);else if(4!==n.tag&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===t)break;for(;null===n.sibling;){if(null===n.return||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},Os=function(){},Rs=function(e,t,n,r){var o=e.memoizedProps;if(o!==r){e=t.stateNode,Qa(Ga.current);var a,i=null;switch(n){case"input":o=Q(e,o),r=Q(e,r),i=[];break;case"select":o=D({},o,{value:void 0}),r=D({},r,{value:void 0}),i=[];break;case"textarea":o=re(e,o),r=re(e,r),i=[];break;default:"function"!=typeof o.onClick&&"function"==typeof r.onClick&&(e.onclick=Xr)}for(u in ye(n,r),n=null,o)if(!r.hasOwnProperty(u)&&o.hasOwnProperty(u)&&null!=o[u])if("style"===u){var c=o[u];for(a in c)c.hasOwnProperty(a)&&(n||(n={}),n[a]="")}else"dangerouslySetInnerHTML"!==u&&"children"!==u&&"suppressContentEditableWarning"!==u&&"suppressHydrationWarning"!==u&&"autoFocus"!==u&&(s.hasOwnProperty(u)?i||(i=[]):(i=i||[]).push(u,null));for(u in r){var l=r[u];if(c=null!=o?o[u]:void 0,r.hasOwnProperty(u)&&l!==c&&(null!=l||null!=c))if("style"===u)if(c){for(a in c)!c.hasOwnProperty(a)||l&&l.hasOwnProperty(a)||(n||(n={}),n[a]="");for(a in l)l.hasOwnProperty(a)&&c[a]!==l[a]&&(n||(n={}),n[a]=l[a])}else n||(i||(i=[]),i.push(u,n)),n=l;else"dangerouslySetInnerHTML"===u?(l=l?l.__html:void 0,c=c?c.__html:void 0,null!=l&&c!==l&&(i=i||[]).push(u,l)):"children"===u?"string"!=typeof l&&"number"!=typeof l||(i=i||[]).push(u,""+l):"suppressContentEditableWarning"!==u&&"suppressHydrationWarning"!==u&&(s.hasOwnProperty(u)?(null!=l&&"onScroll"===u&&Fr("scroll",e),i||c===l||(i=[])):(i=i||[]).push(u,l))}n&&(i=i||[]).push("style",n);var u=i;(t.updateQueue=u)&&(t.flags|=4)}},Ps=function(e,t,n,r){n!==r&&(t.flags|=4)};var Qs=!1,Ys=!1,Js="function"==typeof WeakSet?WeakSet:Set,Zs=null;function Xs(e,t){var n=e.ref;if(null!==n)if("function"==typeof n)try{n(null)}catch(r){Sl(e,t,r)}else n.current=null}function ec(e,t,n){try{n()}catch(r){Sl(e,t,r)}}var tc=!1;function nc(e,t,n){var r=t.updateQueue;if(null!==(r=null!==r?r.lastEffect:null)){var o=r=r.next;do{if((o.tag&e)===e){var a=o.destroy;o.destroy=void 0,void 0!==a&&ec(t,n,a)}o=o.next}while(o!==r)}}function rc(e,t){if(null!==(t=null!==(t=t.updateQueue)?t.lastEffect:null)){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function oc(e){var t=e.ref;if(null!==t){var n=e.stateNode;e.tag,e=n,"function"==typeof t?t(e):t.current=e}}function ac(e){var t=e.alternate;null!==t&&(e.alternate=null,ac(t)),e.child=null,e.deletions=null,e.sibling=null,5===e.tag&&(null!==(t=e.stateNode)&&(delete t[fo],delete t[mo],delete t[go],delete t[bo],delete t[yo])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function ic(e){return 5===e.tag||3===e.tag||4===e.tag}function sc(e){e:for(;;){for(;null===e.sibling;){if(null===e.return||ic(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;5!==e.tag&&6!==e.tag&&18!==e.tag;){if(2&e.flags)continue e;if(null===e.child||4===e.tag)continue e;e.child.return=e,e=e.child}if(!(2&e.flags))return e.stateNode}}function cc(e,t,n){var r=e.tag;if(5===r||6===r)e=e.stateNode,t?8===n.nodeType?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(8===n.nodeType?(t=n.parentNode).insertBefore(e,n):(t=n).appendChild(e),null!=(n=n._reactRootContainer)||null!==t.onclick||(t.onclick=Xr));else if(4!==r&&null!==(e=e.child))for(cc(e,t,n),e=e.sibling;null!==e;)cc(e,t,n),e=e.sibling}function lc(e,t,n){var r=e.tag;if(5===r||6===r)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(4!==r&&null!==(e=e.child))for(lc(e,t,n),e=e.sibling;null!==e;)lc(e,t,n),e=e.sibling}var uc=null,dc=!1;function pc(e,t,n){for(n=n.child;null!==n;)fc(e,t,n),n=n.sibling}function fc(e,t,n){if(at&&"function"==typeof at.onCommitFiberUnmount)try{at.onCommitFiberUnmount(ot,n)}catch(s){}switch(n.tag){case 5:Ys||Xs(n,t);case 6:var r=uc,o=dc;uc=null,pc(e,t,n),dc=o,null!==(uc=r)&&(dc?(e=uc,n=n.stateNode,8===e.nodeType?e.parentNode.removeChild(n):e.removeChild(n)):uc.removeChild(n.stateNode));break;case 18:null!==uc&&(dc?(e=uc,n=n.stateNode,8===e.nodeType?co(e.parentNode,n):1===e.nodeType&&co(e,n),Ut(e)):co(uc,n.stateNode));break;case 4:r=uc,o=dc,uc=n.stateNode.containerInfo,dc=!0,pc(e,t,n),uc=r,dc=o;break;case 0:case 11:case 14:case 15:if(!Ys&&(null!==(r=n.updateQueue)&&null!==(r=r.lastEffect))){o=r=r.next;do{var a=o,i=a.destroy;a=a.tag,void 0!==i&&(2&a||4&a)&&ec(n,t,i),o=o.next}while(o!==r)}pc(e,t,n);break;case 1:if(!Ys&&(Xs(n,t),"function"==typeof(r=n.stateNode).componentWillUnmount))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(s){Sl(n,t,s)}pc(e,t,n);break;case 21:pc(e,t,n);break;case 22:1&n.mode?(Ys=(r=Ys)||null!==n.memoizedState,pc(e,t,n),Ys=r):pc(e,t,n);break;default:pc(e,t,n)}}function mc(e){var t=e.updateQueue;if(null!==t){e.updateQueue=null;var n=e.stateNode;null===n&&(n=e.stateNode=new Js),t.forEach((function(t){var r=ql.bind(null,e,t);n.has(t)||(n.add(t),t.then(r,r))}))}}function hc(e,t){var n=t.deletions;if(null!==n)for(var r=0;r<n.length;r++){var o=n[r];try{var i=e,s=t,c=s;e:for(;null!==c;){switch(c.tag){case 5:uc=c.stateNode,dc=!1;break e;case 3:case 4:uc=c.stateNode.containerInfo,dc=!0;break e}c=c.return}if(null===uc)throw Error(a(160));fc(i,s,o),uc=null,dc=!1;var l=o.alternate;null!==l&&(l.return=null),o.return=null}catch(u){Sl(o,t,u)}}if(12854&t.subtreeFlags)for(t=t.child;null!==t;)gc(t,e),t=t.sibling}function gc(e,t){var n=e.alternate,r=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:if(hc(t,e),bc(e),4&r){try{nc(3,e,e.return),rc(3,e)}catch(g){Sl(e,e.return,g)}try{nc(5,e,e.return)}catch(g){Sl(e,e.return,g)}}break;case 1:hc(t,e),bc(e),512&r&&null!==n&&Xs(n,n.return);break;case 5:if(hc(t,e),bc(e),512&r&&null!==n&&Xs(n,n.return),32&e.flags){var o=e.stateNode;try{pe(o,"")}catch(g){Sl(e,e.return,g)}}if(4&r&&null!=(o=e.stateNode)){var i=e.memoizedProps,s=null!==n?n.memoizedProps:i,c=e.type,l=e.updateQueue;if(e.updateQueue=null,null!==l)try{"input"===c&&"radio"===i.type&&null!=i.name&&J(o,i),ve(c,s);var u=ve(c,i);for(s=0;s<l.length;s+=2){var d=l[s],p=l[s+1];"style"===d?ge(o,p):"dangerouslySetInnerHTML"===d?de(o,p):"children"===d?pe(o,p):v(o,d,p,u)}switch(c){case"input":Z(o,i);break;case"textarea":ae(o,i);break;case"select":var f=o._wrapperState.wasMultiple;o._wrapperState.wasMultiple=!!i.multiple;var m=i.value;null!=m?ne(o,!!i.multiple,m,!1):f!==!!i.multiple&&(null!=i.defaultValue?ne(o,!!i.multiple,i.defaultValue,!0):ne(o,!!i.multiple,i.multiple?[]:"",!1))}o[mo]=i}catch(g){Sl(e,e.return,g)}}break;case 6:if(hc(t,e),bc(e),4&r){if(null===e.stateNode)throw Error(a(162));o=e.stateNode,i=e.memoizedProps;try{o.nodeValue=i}catch(g){Sl(e,e.return,g)}}break;case 3:if(hc(t,e),bc(e),4&r&&null!==n&&n.memoizedState.isDehydrated)try{Ut(t.containerInfo)}catch(g){Sl(e,e.return,g)}break;case 4:default:hc(t,e),bc(e);break;case 13:hc(t,e),bc(e),8192&(o=e.child).flags&&(i=null!==o.memoizedState,o.stateNode.isHidden=i,!i||null!==o.alternate&&null!==o.alternate.memoizedState||(Bc=Je())),4&r&&mc(e);break;case 22:if(d=null!==n&&null!==n.memoizedState,1&e.mode?(Ys=(u=Ys)||d,hc(t,e),Ys=u):hc(t,e),bc(e),8192&r){if(u=null!==e.memoizedState,(e.stateNode.isHidden=u)&&!d&&1&e.mode)for(Zs=e,d=e.child;null!==d;){for(p=Zs=d;null!==Zs;){switch(m=(f=Zs).child,f.tag){case 0:case 11:case 14:case 15:nc(4,f,f.return);break;case 1:Xs(f,f.return);var h=f.stateNode;if("function"==typeof h.componentWillUnmount){r=f,n=f.return;try{t=r,h.props=t.memoizedProps,h.state=t.memoizedState,h.componentWillUnmount()}catch(g){Sl(r,n,g)}}break;case 5:Xs(f,f.return);break;case 22:if(null!==f.memoizedState){wc(p);continue}}null!==m?(m.return=f,Zs=m):wc(p)}d=d.sibling}e:for(d=null,p=e;;){if(5===p.tag){if(null===d){d=p;try{o=p.stateNode,u?"function"==typeof(i=o.style).setProperty?i.setProperty("display","none","important"):i.display="none":(c=p.stateNode,s=null!=(l=p.memoizedProps.style)&&l.hasOwnProperty("display")?l.display:null,c.style.display=he("display",s))}catch(g){Sl(e,e.return,g)}}}else if(6===p.tag){if(null===d)try{p.stateNode.nodeValue=u?"":p.memoizedProps}catch(g){Sl(e,e.return,g)}}else if((22!==p.tag&&23!==p.tag||null===p.memoizedState||p===e)&&null!==p.child){p.child.return=p,p=p.child;continue}if(p===e)break e;for(;null===p.sibling;){if(null===p.return||p.return===e)break e;d===p&&(d=null),p=p.return}d===p&&(d=null),p.sibling.return=p.return,p=p.sibling}}break;case 19:hc(t,e),bc(e),4&r&&mc(e);case 21:}}function bc(e){var t=e.flags;if(2&t){try{e:{for(var n=e.return;null!==n;){if(ic(n)){var r=n;break e}n=n.return}throw Error(a(160))}switch(r.tag){case 5:var o=r.stateNode;32&r.flags&&(pe(o,""),r.flags&=-33),lc(e,sc(e),o);break;case 3:case 4:var i=r.stateNode.containerInfo;cc(e,sc(e),i);break;default:throw Error(a(161))}}catch(s){Sl(e,e.return,s)}e.flags&=-3}4096&t&&(e.flags&=-4097)}function yc(e,t,n){Zs=e,vc(e,t,n)}function vc(e,t,n){for(var r=!!(1&e.mode);null!==Zs;){var o=Zs,a=o.child;if(22===o.tag&&r){var i=null!==o.memoizedState||Qs;if(!i){var s=o.alternate,c=null!==s&&null!==s.memoizedState||Ys;s=Qs;var l=Ys;if(Qs=i,(Ys=c)&&!l)for(Zs=o;null!==Zs;)c=(i=Zs).child,22===i.tag&&null!==i.memoizedState?kc(o):null!==c?(c.return=i,Zs=c):kc(o);for(;null!==a;)Zs=a,vc(a,t,n),a=a.sibling;Zs=o,Qs=s,Ys=l}xc(e)}else 8772&o.subtreeFlags&&null!==a?(a.return=o,Zs=a):xc(e)}}function xc(e){for(;null!==Zs;){var t=Zs;if(8772&t.flags){var n=t.alternate;try{if(8772&t.flags)switch(t.tag){case 0:case 11:case 15:Ys||rc(5,t);break;case 1:var r=t.stateNode;if(4&t.flags&&!Ys)if(null===n)r.componentDidMount();else{var o=t.elementType===t.type?n.memoizedProps:ns(t.type,n.memoizedProps);r.componentDidUpdate(o,n.memoizedState,r.__reactInternalSnapshotBeforeUpdate)}var i=t.updateQueue;null!==i&&Ha(t,i,r);break;case 3:var s=t.updateQueue;if(null!==s){if(n=null,null!==t.child)switch(t.child.tag){case 5:case 1:n=t.child.stateNode}Ha(t,s,n)}break;case 5:var c=t.stateNode;if(null===n&&4&t.flags){n=c;var l=t.memoizedProps;switch(t.type){case"button":case"input":case"select":case"textarea":l.autoFocus&&n.focus();break;case"img":l.src&&(n.src=l.src)}}break;case 6:case 4:case 12:case 19:case 17:case 21:case 22:case 23:case 25:break;case 13:if(null===t.memoizedState){var u=t.alternate;if(null!==u){var d=u.memoizedState;if(null!==d){var p=d.dehydrated;null!==p&&Ut(p)}}}break;default:throw Error(a(163))}Ys||512&t.flags&&oc(t)}catch(f){Sl(t,t.return,f)}}if(t===e){Zs=null;break}if(null!==(n=t.sibling)){n.return=t.return,Zs=n;break}Zs=t.return}}function wc(e){for(;null!==Zs;){var t=Zs;if(t===e){Zs=null;break}var n=t.sibling;if(null!==n){n.return=t.return,Zs=n;break}Zs=t.return}}function kc(e){for(;null!==Zs;){var t=Zs;try{switch(t.tag){case 0:case 11:case 15:var n=t.return;try{rc(4,t)}catch(c){Sl(t,n,c)}break;case 1:var r=t.stateNode;if("function"==typeof r.componentDidMount){var o=t.return;try{r.componentDidMount()}catch(c){Sl(t,o,c)}}var a=t.return;try{oc(t)}catch(c){Sl(t,a,c)}break;case 5:var i=t.return;try{oc(t)}catch(c){Sl(t,i,c)}}}catch(c){Sl(t,t.return,c)}if(t===e){Zs=null;break}var s=t.sibling;if(null!==s){s.return=t.return,Zs=s;break}Zs=t.return}}var _c,Sc=Math.ceil,Ec=x.ReactCurrentDispatcher,Cc=x.ReactCurrentOwner,Ac=x.ReactCurrentBatchConfig,qc=0,jc=null,Tc=null,Nc=0,Oc=0,Rc=Eo(0),Pc=0,Lc=null,Ic=0,Dc=0,Mc=0,Fc=null,zc=null,Bc=0,Uc=1/0,$c=null,Hc=!1,Wc=null,Gc=null,Vc=!1,Kc=null,Qc=0,Yc=0,Jc=null,Zc=-1,Xc=0;function el(){return 6&qc?Je():-1!==Zc?Zc:Zc=Je()}function tl(e){return 1&e.mode?2&qc&&0!==Nc?Nc&-Nc:null!==ga.transition?(0===Xc&&(Xc=ht()),Xc):0!==(e=vt)?e:e=void 0===(e=window.event)?16:Yt(e.type):1}function nl(e,t,n,r){if(50<Yc)throw Yc=0,Jc=null,Error(a(185));bt(e,n,r),2&qc&&e===jc||(e===jc&&(!(2&qc)&&(Dc|=n),4===Pc&&sl(e,Nc)),rl(e,r),1===n&&0===qc&&!(1&t.mode)&&(Uc=Je()+500,zo&&$o()))}function rl(e,t){var n=e.callbackNode;!function(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,o=e.expirationTimes,a=e.pendingLanes;0<a;){var i=31-it(a),s=1<<i,c=o[i];-1===c?s&n&&!(s&r)||(o[i]=ft(s,t)):c<=t&&(e.expiredLanes|=s),a&=~s}}(e,t);var r=pt(e,e===jc?Nc:0);if(0===r)null!==n&&Ke(n),e.callbackNode=null,e.callbackPriority=0;else if(t=r&-r,e.callbackPriority!==t){if(null!=n&&Ke(n),1===t)0===e.tag?function(e){zo=!0,Uo(e)}(cl.bind(null,e)):Uo(cl.bind(null,e)),io((function(){!(6&qc)&&$o()})),n=null;else{switch(xt(r)){case 1:n=Xe;break;case 4:n=et;break;case 16:default:n=tt;break;case 536870912:n=rt}n=jl(n,ol.bind(null,e))}e.callbackPriority=t,e.callbackNode=n}}function ol(e,t){if(Zc=-1,Xc=0,6&qc)throw Error(a(327));var n=e.callbackNode;if(kl()&&e.callbackNode!==n)return null;var r=pt(e,e===jc?Nc:0);if(0===r)return null;if(30&r||r&e.expiredLanes||t)t=gl(e,r);else{t=r;var o=qc;qc|=2;var i=ml();for(jc===e&&Nc===t||($c=null,Uc=Je()+500,pl(e,t));;)try{yl();break}catch(c){fl(e,c)}Aa(),Ec.current=i,qc=o,null!==Tc?t=0:(jc=null,Nc=0,t=Pc)}if(0!==t){if(2===t&&(0!==(o=mt(e))&&(r=o,t=al(e,o))),1===t)throw n=Lc,pl(e,0),sl(e,r),rl(e,Je()),n;if(6===t)sl(e,r);else{if(o=e.current.alternate,!(30&r||function(e){for(var t=e;;){if(16384&t.flags){var n=t.updateQueue;if(null!==n&&null!==(n=n.stores))for(var r=0;r<n.length;r++){var o=n[r],a=o.getSnapshot;o=o.value;try{if(!sr(a(),o))return!1}catch(s){return!1}}}if(n=t.child,16384&t.subtreeFlags&&null!==n)n.return=t,t=n;else{if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}(o)||(t=gl(e,r),2===t&&(i=mt(e),0!==i&&(r=i,t=al(e,i))),1!==t)))throw n=Lc,pl(e,0),sl(e,r),rl(e,Je()),n;switch(e.finishedWork=o,e.finishedLanes=r,t){case 0:case 1:throw Error(a(345));case 2:case 5:wl(e,zc,$c);break;case 3:if(sl(e,r),(130023424&r)===r&&10<(t=Bc+500-Je())){if(0!==pt(e,0))break;if(((o=e.suspendedLanes)&r)!==r){el(),e.pingedLanes|=e.suspendedLanes&o;break}e.timeoutHandle=ro(wl.bind(null,e,zc,$c),t);break}wl(e,zc,$c);break;case 4:if(sl(e,r),(4194240&r)===r)break;for(t=e.eventTimes,o=-1;0<r;){var s=31-it(r);i=1<<s,(s=t[s])>o&&(o=s),r&=~i}if(r=o,10<(r=(120>(r=Je()-r)?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*Sc(r/1960))-r)){e.timeoutHandle=ro(wl.bind(null,e,zc,$c),r);break}wl(e,zc,$c);break;default:throw Error(a(329))}}}return rl(e,Je()),e.callbackNode===n?ol.bind(null,e):null}function al(e,t){var n=Fc;return e.current.memoizedState.isDehydrated&&(pl(e,t).flags|=256),2!==(e=gl(e,t))&&(t=zc,zc=n,null!==t&&il(t)),e}function il(e){null===zc?zc=e:zc.push.apply(zc,e)}function sl(e,t){for(t&=~Mc,t&=~Dc,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var n=31-it(t),r=1<<n;e[n]=-1,t&=~r}}function cl(e){if(6&qc)throw Error(a(327));kl();var t=pt(e,0);if(!(1&t))return rl(e,Je()),null;var n=gl(e,t);if(0!==e.tag&&2===n){var r=mt(e);0!==r&&(t=r,n=al(e,r))}if(1===n)throw n=Lc,pl(e,0),sl(e,t),rl(e,Je()),n;if(6===n)throw Error(a(345));return e.finishedWork=e.current.alternate,e.finishedLanes=t,wl(e,zc,$c),rl(e,Je()),null}function ll(e,t){var n=qc;qc|=1;try{return e(t)}finally{0===(qc=n)&&(Uc=Je()+500,zo&&$o())}}function ul(e){null!==Kc&&0===Kc.tag&&!(6&qc)&&kl();var t=qc;qc|=1;var n=Ac.transition,r=vt;try{if(Ac.transition=null,vt=1,e)return e()}finally{vt=r,Ac.transition=n,!(6&(qc=t))&&$o()}}function dl(){Oc=Rc.current,Co(Rc)}function pl(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(-1!==n&&(e.timeoutHandle=-1,oo(n)),null!==Tc)for(n=Tc.return;null!==n;){var r=n;switch(na(r),r.tag){case 1:null!=(r=r.type.childContextTypes)&&Po();break;case 3:Ja(),Co(To),Co(jo),ri();break;case 5:Xa(r);break;case 4:Ja();break;case 13:case 19:Co(ei);break;case 10:qa(r.type._context);break;case 22:case 23:dl()}n=n.return}if(jc=e,Tc=e=Rl(e.current,null),Nc=Oc=t,Pc=0,Lc=null,Mc=Dc=Ic=0,zc=Fc=null,null!==Oa){for(t=0;t<Oa.length;t++)if(null!==(r=(n=Oa[t]).interleaved)){n.interleaved=null;var o=r.next,a=n.pending;if(null!==a){var i=a.next;a.next=o,r.next=i}n.pending=r}Oa=null}return e}function fl(e,t){for(;;){var n=Tc;try{if(Aa(),oi.current=Zi,ui){for(var r=si.memoizedState;null!==r;){var o=r.queue;null!==o&&(o.pending=null),r=r.next}ui=!1}if(ii=0,li=ci=si=null,di=!1,pi=0,Cc.current=null,null===n||null===n.return){Pc=1,Lc=t,Tc=null;break}e:{var i=e,s=n.return,c=n,l=t;if(t=Nc,c.flags|=32768,null!==l&&"object"==typeof l&&"function"==typeof l.then){var u=l,d=c,p=d.tag;if(!(1&d.mode||0!==p&&11!==p&&15!==p)){var f=d.alternate;f?(d.updateQueue=f.updateQueue,d.memoizedState=f.memoizedState,d.lanes=f.lanes):(d.updateQueue=null,d.memoizedState=null)}var m=gs(s);if(null!==m){m.flags&=-257,bs(m,s,c,0,t),1&m.mode&&hs(i,u,t),l=u;var h=(t=m).updateQueue;if(null===h){var g=new Set;g.add(l),t.updateQueue=g}else h.add(l);break e}if(!(1&t)){hs(i,u,t),hl();break e}l=Error(a(426))}else if(aa&&1&c.mode){var b=gs(s);if(null!==b){!(65536&b.flags)&&(b.flags|=256),bs(b,s,c,0,t),ha(ls(l,c));break e}}i=l=ls(l,c),4!==Pc&&(Pc=2),null===Fc?Fc=[i]:Fc.push(i),i=s;do{switch(i.tag){case 3:i.flags|=65536,t&=-t,i.lanes|=t,Ua(i,fs(0,l,t));break e;case 1:c=l;var y=i.type,v=i.stateNode;if(!(128&i.flags||"function"!=typeof y.getDerivedStateFromError&&(null===v||"function"!=typeof v.componentDidCatch||null!==Gc&&Gc.has(v)))){i.flags|=65536,t&=-t,i.lanes|=t,Ua(i,ms(i,c,t));break e}}i=i.return}while(null!==i)}xl(n)}catch(x){t=x,Tc===n&&null!==n&&(Tc=n=n.return);continue}break}}function ml(){var e=Ec.current;return Ec.current=Zi,null===e?Zi:e}function hl(){0!==Pc&&3!==Pc&&2!==Pc||(Pc=4),null===jc||!(268435455&Ic)&&!(268435455&Dc)||sl(jc,Nc)}function gl(e,t){var n=qc;qc|=2;var r=ml();for(jc===e&&Nc===t||($c=null,pl(e,t));;)try{bl();break}catch(o){fl(e,o)}if(Aa(),qc=n,Ec.current=r,null!==Tc)throw Error(a(261));return jc=null,Nc=0,Pc}function bl(){for(;null!==Tc;)vl(Tc)}function yl(){for(;null!==Tc&&!Qe();)vl(Tc)}function vl(e){var t=_c(e.alternate,e,Oc);e.memoizedProps=e.pendingProps,null===t?xl(e):Tc=t,Cc.current=null}function xl(e){var t=e;do{var n=t.alternate;if(e=t.return,32768&t.flags){if(null!==(n=Ks(n,t)))return n.flags&=32767,void(Tc=n);if(null===e)return Pc=6,void(Tc=null);e.flags|=32768,e.subtreeFlags=0,e.deletions=null}else if(null!==(n=Vs(n,t,Oc)))return void(Tc=n);if(null!==(t=t.sibling))return void(Tc=t);Tc=t=e}while(null!==t);0===Pc&&(Pc=5)}function wl(e,t,n){var r=vt,o=Ac.transition;try{Ac.transition=null,vt=1,function(e,t,n,r){do{kl()}while(null!==Kc);if(6&qc)throw Error(a(327));n=e.finishedWork;var o=e.finishedLanes;if(null===n)return null;if(e.finishedWork=null,e.finishedLanes=0,n===e.current)throw Error(a(177));e.callbackNode=null,e.callbackPriority=0;var i=n.lanes|n.childLanes;if(function(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0<n;){var o=31-it(n),a=1<<o;t[o]=0,r[o]=-1,e[o]=-1,n&=~a}}(e,i),e===jc&&(Tc=jc=null,Nc=0),!(2064&n.subtreeFlags)&&!(2064&n.flags)||Vc||(Vc=!0,jl(tt,(function(){return kl(),null}))),i=!!(15990&n.flags),!!(15990&n.subtreeFlags)||i){i=Ac.transition,Ac.transition=null;var s=vt;vt=1;var c=qc;qc|=4,Cc.current=null,function(e,t){if(eo=Ht,fr(e=pr())){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{var r=(n=(n=e.ownerDocument)&&n.defaultView||window).getSelection&&n.getSelection();if(r&&0!==r.rangeCount){n=r.anchorNode;var o=r.anchorOffset,i=r.focusNode;r=r.focusOffset;try{n.nodeType,i.nodeType}catch(w){n=null;break e}var s=0,c=-1,l=-1,u=0,d=0,p=e,f=null;t:for(;;){for(var m;p!==n||0!==o&&3!==p.nodeType||(c=s+o),p!==i||0!==r&&3!==p.nodeType||(l=s+r),3===p.nodeType&&(s+=p.nodeValue.length),null!==(m=p.firstChild);)f=p,p=m;for(;;){if(p===e)break t;if(f===n&&++u===o&&(c=s),f===i&&++d===r&&(l=s),null!==(m=p.nextSibling))break;f=(p=f).parentNode}p=m}n=-1===c||-1===l?null:{start:c,end:l}}else n=null}n=n||{start:0,end:0}}else n=null;for(to={focusedElem:e,selectionRange:n},Ht=!1,Zs=t;null!==Zs;)if(e=(t=Zs).child,1028&t.subtreeFlags&&null!==e)e.return=t,Zs=e;else for(;null!==Zs;){t=Zs;try{var h=t.alternate;if(1024&t.flags)switch(t.tag){case 0:case 11:case 15:case 5:case 6:case 4:case 17:break;case 1:if(null!==h){var g=h.memoizedProps,b=h.memoizedState,y=t.stateNode,v=y.getSnapshotBeforeUpdate(t.elementType===t.type?g:ns(t.type,g),b);y.__reactInternalSnapshotBeforeUpdate=v}break;case 3:var x=t.stateNode.containerInfo;1===x.nodeType?x.textContent="":9===x.nodeType&&x.documentElement&&x.removeChild(x.documentElement);break;default:throw Error(a(163))}}catch(w){Sl(t,t.return,w)}if(null!==(e=t.sibling)){e.return=t.return,Zs=e;break}Zs=t.return}h=tc,tc=!1}(e,n),gc(n,e),mr(to),Ht=!!eo,to=eo=null,e.current=n,yc(n,e,o),Ye(),qc=c,vt=s,Ac.transition=i}else e.current=n;if(Vc&&(Vc=!1,Kc=e,Qc=o),i=e.pendingLanes,0===i&&(Gc=null),function(e){if(at&&"function"==typeof at.onCommitFiberRoot)try{at.onCommitFiberRoot(ot,e,void 0,!(128&~e.current.flags))}catch(t){}}(n.stateNode),rl(e,Je()),null!==t)for(r=e.onRecoverableError,n=0;n<t.length;n++)o=t[n],r(o.value,{componentStack:o.stack,digest:o.digest});if(Hc)throw Hc=!1,e=Wc,Wc=null,e;!!(1&Qc)&&0!==e.tag&&kl(),i=e.pendingLanes,1&i?e===Jc?Yc++:(Yc=0,Jc=e):Yc=0,$o()}(e,t,n,r)}finally{Ac.transition=o,vt=r}return null}function kl(){if(null!==Kc){var e=xt(Qc),t=Ac.transition,n=vt;try{if(Ac.transition=null,vt=16>e?16:e,null===Kc)var r=!1;else{if(e=Kc,Kc=null,Qc=0,6&qc)throw Error(a(331));var o=qc;for(qc|=4,Zs=e.current;null!==Zs;){var i=Zs,s=i.child;if(16&Zs.flags){var c=i.deletions;if(null!==c){for(var l=0;l<c.length;l++){var u=c[l];for(Zs=u;null!==Zs;){var d=Zs;switch(d.tag){case 0:case 11:case 15:nc(8,d,i)}var p=d.child;if(null!==p)p.return=d,Zs=p;else for(;null!==Zs;){var f=(d=Zs).sibling,m=d.return;if(ac(d),d===u){Zs=null;break}if(null!==f){f.return=m,Zs=f;break}Zs=m}}}var h=i.alternate;if(null!==h){var g=h.child;if(null!==g){h.child=null;do{var b=g.sibling;g.sibling=null,g=b}while(null!==g)}}Zs=i}}if(2064&i.subtreeFlags&&null!==s)s.return=i,Zs=s;else e:for(;null!==Zs;){if(2048&(i=Zs).flags)switch(i.tag){case 0:case 11:case 15:nc(9,i,i.return)}var y=i.sibling;if(null!==y){y.return=i.return,Zs=y;break e}Zs=i.return}}var v=e.current;for(Zs=v;null!==Zs;){var x=(s=Zs).child;if(2064&s.subtreeFlags&&null!==x)x.return=s,Zs=x;else e:for(s=v;null!==Zs;){if(2048&(c=Zs).flags)try{switch(c.tag){case 0:case 11:case 15:rc(9,c)}}catch(k){Sl(c,c.return,k)}if(c===s){Zs=null;break e}var w=c.sibling;if(null!==w){w.return=c.return,Zs=w;break e}Zs=c.return}}if(qc=o,$o(),at&&"function"==typeof at.onPostCommitFiberRoot)try{at.onPostCommitFiberRoot(ot,e)}catch(k){}r=!0}return r}finally{vt=n,Ac.transition=t}}return!1}function _l(e,t,n){e=za(e,t=fs(0,t=ls(n,t),1),1),t=el(),null!==e&&(bt(e,1,t),rl(e,t))}function Sl(e,t,n){if(3===e.tag)_l(e,e,n);else for(;null!==t;){if(3===t.tag){_l(t,e,n);break}if(1===t.tag){var r=t.stateNode;if("function"==typeof t.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===Gc||!Gc.has(r))){t=za(t,e=ms(t,e=ls(n,e),1),1),e=el(),null!==t&&(bt(t,1,e),rl(t,e));break}}t=t.return}}function El(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),t=el(),e.pingedLanes|=e.suspendedLanes&n,jc===e&&(Nc&n)===n&&(4===Pc||3===Pc&&(130023424&Nc)===Nc&&500>Je()-Bc?pl(e,0):Mc|=n),rl(e,t)}function Cl(e,t){0===t&&(1&e.mode?(t=ut,!(130023424&(ut<<=1))&&(ut=4194304)):t=1);var n=el();null!==(e=La(e,t))&&(bt(e,t,n),rl(e,n))}function Al(e){var t=e.memoizedState,n=0;null!==t&&(n=t.retryLane),Cl(e,n)}function ql(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,o=e.memoizedState;null!==o&&(n=o.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(a(314))}null!==r&&r.delete(t),Cl(e,n)}function jl(e,t){return Ve(e,t)}function Tl(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Nl(e,t,n,r){return new Tl(e,t,n,r)}function Ol(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Rl(e,t){var n=e.alternate;return null===n?((n=Nl(e.tag,t,e.key,e.mode)).elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=14680064&e.flags,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=null===t?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Pl(e,t,n,r,o,i){var s=2;if(r=e,"function"==typeof e)Ol(e)&&(s=1);else if("string"==typeof e)s=5;else e:switch(e){case _:return Ll(n.children,o,i,t);case S:s=8,o|=8;break;case E:return(e=Nl(12,n,t,2|o)).elementType=E,e.lanes=i,e;case j:return(e=Nl(13,n,t,o)).elementType=j,e.lanes=i,e;case T:return(e=Nl(19,n,t,o)).elementType=T,e.lanes=i,e;case R:return Il(n,o,i,t);default:if("object"==typeof e&&null!==e)switch(e.$$typeof){case C:s=10;break e;case A:s=9;break e;case q:s=11;break e;case N:s=14;break e;case O:s=16,r=null;break e}throw Error(a(130,null==e?e:typeof e,""))}return(t=Nl(s,n,t,o)).elementType=e,t.type=r,t.lanes=i,t}function Ll(e,t,n,r){return(e=Nl(7,e,r,t)).lanes=n,e}function Il(e,t,n,r){return(e=Nl(22,e,r,t)).elementType=R,e.lanes=n,e.stateNode={isHidden:!1},e}function Dl(e,t,n){return(e=Nl(6,e,null,t)).lanes=n,e}function Ml(e,t,n){return(t=Nl(4,null!==e.children?e.children:[],e.key,t)).lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Fl(e,t,n,r,o){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=gt(0),this.expirationTimes=gt(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=gt(0),this.identifierPrefix=r,this.onRecoverableError=o,this.mutableSourceEagerHydrationData=null}function zl(e,t,n,r,o,a,i,s,c){return e=new Fl(e,t,n,s,c),1===t?(t=1,!0===a&&(t|=8)):t=0,a=Nl(3,null,null,t),e.current=a,a.stateNode=e,a.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},Da(a),e}function Bl(e){if(!e)return qo;e:{if(Ue(e=e._reactInternals)!==e||1!==e.tag)throw Error(a(170));var t=e;do{switch(t.tag){case 3:t=t.stateNode.context;break e;case 1:if(Ro(t.type)){t=t.stateNode.__reactInternalMemoizedMergedChildContext;break e}}t=t.return}while(null!==t);throw Error(a(171))}if(1===e.tag){var n=e.type;if(Ro(n))return Io(e,n,t)}return t}function Ul(e,t,n,r,o,a,i,s,c){return(e=zl(n,r,!0,e,0,a,0,s,c)).context=Bl(null),n=e.current,(a=Fa(r=el(),o=tl(n))).callback=null!=t?t:null,za(n,a,o),e.current.lanes=o,bt(e,o,r),rl(e,r),e}function $l(e,t,n,r){var o=t.current,a=el(),i=tl(o);return n=Bl(n),null===t.context?t.context=n:t.pendingContext=n,(t=Fa(a,i)).payload={element:e},null!==(r=void 0===r?null:r)&&(t.callback=r),null!==(e=za(o,t,i))&&(nl(e,o,i,a),Ba(e,o,i)),i}function Hl(e){return(e=e.current).child?(e.child.tag,e.child.stateNode):null}function Wl(e,t){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var n=e.retryLane;e.retryLane=0!==n&&n<t?n:t}}function Gl(e,t){Wl(e,t),(e=e.alternate)&&Wl(e,t)}_c=function(e,t,n){if(null!==e)if(e.memoizedProps!==t.pendingProps||To.current)vs=!0;else{if(!(e.lanes&n||128&t.flags))return vs=!1,function(e,t,n){switch(t.tag){case 3:js(t),ma();break;case 5:Za(t);break;case 1:Ro(t.type)&&Do(t);break;case 4:Ya(t,t.stateNode.containerInfo);break;case 10:var r=t.type._context,o=t.memoizedProps.value;Ao(_a,r._currentValue),r._currentValue=o;break;case 13:if(null!==(r=t.memoizedState))return null!==r.dehydrated?(Ao(ei,1&ei.current),t.flags|=128,null):n&t.child.childLanes?Ds(e,t,n):(Ao(ei,1&ei.current),null!==(e=Hs(e,t,n))?e.sibling:null);Ao(ei,1&ei.current);break;case 19:if(r=!!(n&t.childLanes),128&e.flags){if(r)return Us(e,t,n);t.flags|=128}if(null!==(o=t.memoizedState)&&(o.rendering=null,o.tail=null,o.lastEffect=null),Ao(ei,ei.current),r)break;return null;case 22:case 23:return t.lanes=0,Ss(e,t,n)}return Hs(e,t,n)}(e,t,n);vs=!!(131072&e.flags)}else vs=!1,aa&&1048576&t.flags&&ea(t,Vo,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;$s(e,t),e=t.pendingProps;var o=Oo(t,jo.current);Ta(t,n),o=gi(null,t,r,e,o,n);var i=bi();return t.flags|=1,"object"==typeof o&&null!==o&&"function"==typeof o.render&&void 0===o.$$typeof?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Ro(r)?(i=!0,Do(t)):i=!1,t.memoizedState=null!==o.state&&void 0!==o.state?o.state:null,Da(t),o.updater=os,t.stateNode=o,o._reactInternals=t,cs(t,r,e,n),t=qs(null,t,r,!0,i,n)):(t.tag=0,aa&&i&&ta(t),xs(null,t,o,n),t=t.child),t;case 16:r=t.elementType;e:{switch($s(e,t),e=t.pendingProps,r=(o=r._init)(r._payload),t.type=r,o=t.tag=function(e){if("function"==typeof e)return Ol(e)?1:0;if(null!=e){if((e=e.$$typeof)===q)return 11;if(e===N)return 14}return 2}(r),e=ns(r,e),o){case 0:t=Cs(null,t,r,e,n);break e;case 1:t=As(null,t,r,e,n);break e;case 11:t=ws(null,t,r,e,n);break e;case 14:t=ks(null,t,r,ns(r.type,e),n);break e}throw Error(a(306,r,""))}return t;case 0:return r=t.type,o=t.pendingProps,Cs(e,t,r,o=t.elementType===r?o:ns(r,o),n);case 1:return r=t.type,o=t.pendingProps,As(e,t,r,o=t.elementType===r?o:ns(r,o),n);case 3:e:{if(js(t),null===e)throw Error(a(387));r=t.pendingProps,o=(i=t.memoizedState).element,Ma(e,t),$a(t,r,null,n);var s=t.memoizedState;if(r=s.element,i.isDehydrated){if(i={element:r,isDehydrated:!1,cache:s.cache,pendingSuspenseBoundaries:s.pendingSuspenseBoundaries,transitions:s.transitions},t.updateQueue.baseState=i,t.memoizedState=i,256&t.flags){t=Ts(e,t,r,n,o=ls(Error(a(423)),t));break e}if(r!==o){t=Ts(e,t,r,n,o=ls(Error(a(424)),t));break e}for(oa=lo(t.stateNode.containerInfo.firstChild),ra=t,aa=!0,ia=null,n=ka(t,null,r,n),t.child=n;n;)n.flags=-3&n.flags|4096,n=n.sibling}else{if(ma(),r===o){t=Hs(e,t,n);break e}xs(e,t,r,n)}t=t.child}return t;case 5:return Za(t),null===e&&ua(t),r=t.type,o=t.pendingProps,i=null!==e?e.memoizedProps:null,s=o.children,no(r,o)?s=null:null!==i&&no(r,i)&&(t.flags|=32),Es(e,t),xs(e,t,s,n),t.child;case 6:return null===e&&ua(t),null;case 13:return Ds(e,t,n);case 4:return Ya(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=wa(t,null,r,n):xs(e,t,r,n),t.child;case 11:return r=t.type,o=t.pendingProps,ws(e,t,r,o=t.elementType===r?o:ns(r,o),n);case 7:return xs(e,t,t.pendingProps,n),t.child;case 8:case 12:return xs(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,o=t.pendingProps,i=t.memoizedProps,s=o.value,Ao(_a,r._currentValue),r._currentValue=s,null!==i)if(sr(i.value,s)){if(i.children===o.children&&!To.current){t=Hs(e,t,n);break e}}else for(null!==(i=t.child)&&(i.return=t);null!==i;){var c=i.dependencies;if(null!==c){s=i.child;for(var l=c.firstContext;null!==l;){if(l.context===r){if(1===i.tag){(l=Fa(-1,n&-n)).tag=2;var u=i.updateQueue;if(null!==u){var d=(u=u.shared).pending;null===d?l.next=l:(l.next=d.next,d.next=l),u.pending=l}}i.lanes|=n,null!==(l=i.alternate)&&(l.lanes|=n),ja(i.return,n,t),c.lanes|=n;break}l=l.next}}else if(10===i.tag)s=i.type===t.type?null:i.child;else if(18===i.tag){if(null===(s=i.return))throw Error(a(341));s.lanes|=n,null!==(c=s.alternate)&&(c.lanes|=n),ja(s,n,t),s=i.sibling}else s=i.child;if(null!==s)s.return=i;else for(s=i;null!==s;){if(s===t){s=null;break}if(null!==(i=s.sibling)){i.return=s.return,s=i;break}s=s.return}i=s}xs(e,t,o.children,n),t=t.child}return t;case 9:return o=t.type,r=t.pendingProps.children,Ta(t,n),r=r(o=Na(o)),t.flags|=1,xs(e,t,r,n),t.child;case 14:return o=ns(r=t.type,t.pendingProps),ks(e,t,r,o=ns(r.type,o),n);case 15:return _s(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:ns(r,o),$s(e,t),t.tag=1,Ro(r)?(e=!0,Do(t)):e=!1,Ta(t,n),is(t,r,o),cs(t,r,o,n),qs(null,t,r,!0,e,n);case 19:return Us(e,t,n);case 22:return Ss(e,t,n)}throw Error(a(156,t.tag))};var Vl="function"==typeof reportError?reportError:function(e){console.error(e)};function Kl(e){this._internalRoot=e}function Ql(e){this._internalRoot=e}function Yl(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType)}function Jl(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType&&(8!==e.nodeType||" react-mount-point-unstable "!==e.nodeValue))}function Zl(){}function Xl(e,t,n,r,o){var a=n._reactRootContainer;if(a){var i=a;if("function"==typeof o){var s=o;o=function(){var e=Hl(i);s.call(e)}}$l(t,i,e,o)}else i=function(e,t,n,r,o){if(o){if("function"==typeof r){var a=r;r=function(){var e=Hl(i);a.call(e)}}var i=Ul(t,r,e,0,null,!1,0,"",Zl);return e._reactRootContainer=i,e[ho]=i.current,Ur(8===e.nodeType?e.parentNode:e),ul(),i}for(;o=e.lastChild;)e.removeChild(o);if("function"==typeof r){var s=r;r=function(){var e=Hl(c);s.call(e)}}var c=zl(e,0,!1,null,0,!1,0,"",Zl);return e._reactRootContainer=c,e[ho]=c.current,Ur(8===e.nodeType?e.parentNode:e),ul((function(){$l(t,c,n,r)})),c}(n,t,e,o,r);return Hl(i)}Ql.prototype.render=Kl.prototype.render=function(e){var t=this._internalRoot;if(null===t)throw Error(a(409));$l(e,t,null,null)},Ql.prototype.unmount=Kl.prototype.unmount=function(){var e=this._internalRoot;if(null!==e){this._internalRoot=null;var t=e.containerInfo;ul((function(){$l(null,e,null,null)})),t[ho]=null}},Ql.prototype.unstable_scheduleHydration=function(e){if(e){var t=St();e={blockedOn:null,target:e,priority:t};for(var n=0;n<Rt.length&&0!==t&&t<Rt[n].priority;n++);Rt.splice(n,0,e),0===n&&Dt(e)}},wt=function(e){switch(e.tag){case 3:var t=e.stateNode;if(t.current.memoizedState.isDehydrated){var n=dt(t.pendingLanes);0!==n&&(yt(t,1|n),rl(t,Je()),!(6&qc)&&(Uc=Je()+500,$o()))}break;case 13:ul((function(){var t=La(e,1);if(null!==t){var n=el();nl(t,e,1,n)}})),Gl(e,1)}},kt=function(e){if(13===e.tag){var t=La(e,134217728);if(null!==t)nl(t,e,134217728,el());Gl(e,134217728)}},_t=function(e){if(13===e.tag){var t=tl(e),n=La(e,t);if(null!==n)nl(n,e,t,el());Gl(e,t)}},St=function(){return vt},Et=function(e,t){var n=vt;try{return vt=e,t()}finally{vt=n}},ke=function(e,t,n){switch(t){case"input":if(Z(e,n),t=n.name,"radio"===n.type&&null!=t){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var o=ko(r);if(!o)throw Error(a(90));V(r),Z(r,o)}}}break;case"textarea":ae(e,n);break;case"select":null!=(t=n.value)&&ne(e,!!n.multiple,t,!1)}},qe=ll,je=ul;var eu={usingClientEntryPoint:!1,Events:[xo,wo,ko,Ce,Ae,ll]},tu={findFiberByHostInstance:vo,bundleType:0,version:"18.3.1",rendererPackageName:"react-dom"},nu={bundleType:tu.bundleType,version:tu.version,rendererPackageName:tu.rendererPackageName,rendererConfig:tu.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:x.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return null===(e=We(e))?null:e.stateNode},findFiberByHostInstance:tu.findFiberByHostInstance||function(){return null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.3.1-next-f1338f8080-20240426"};if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var ru=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!ru.isDisabled&&ru.supportsFiber)try{ot=ru.inject(nu),at=ru}catch(ue){}}t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=eu,t.createPortal=function(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!Yl(t))throw Error(a(200));return function(e,t,n){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:k,key:null==r?null:""+r,children:e,containerInfo:t,implementation:n}}(e,t,null,n)},t.createRoot=function(e,t){if(!Yl(e))throw Error(a(299));var n=!1,r="",o=Vl;return null!=t&&(!0===t.unstable_strictMode&&(n=!0),void 0!==t.identifierPrefix&&(r=t.identifierPrefix),void 0!==t.onRecoverableError&&(o=t.onRecoverableError)),t=zl(e,1,!1,null,0,n,0,r,o),e[ho]=t.current,Ur(8===e.nodeType?e.parentNode:e),new Kl(t)},t.findDOMNode=function(e){if(null==e)return null;if(1===e.nodeType)return e;var t=e._reactInternals;if(void 0===t){if("function"==typeof e.render)throw Error(a(188));throw e=Object.keys(e).join(","),Error(a(268,e))}return e=null===(e=We(t))?null:e.stateNode},t.flushSync=function(e){return ul(e)},t.hydrate=function(e,t,n){if(!Jl(t))throw Error(a(200));return Xl(null,e,t,!0,n)},t.hydrateRoot=function(e,t,n){if(!Yl(e))throw Error(a(405));var r=null!=n&&n.hydratedSources||null,o=!1,i="",s=Vl;if(null!=n&&(!0===n.unstable_strictMode&&(o=!0),void 0!==n.identifierPrefix&&(i=n.identifierPrefix),void 0!==n.onRecoverableError&&(s=n.onRecoverableError)),t=Ul(t,null,e,1,null!=n?n:null,o,0,i,s),e[ho]=t.current,Ur(e),r)for(e=0;e<r.length;e++)o=(o=(n=r[e])._getVersion)(n._source),null==t.mutableSourceEagerHydrationData?t.mutableSourceEagerHydrationData=[n,o]:t.mutableSourceEagerHydrationData.push(n,o);return new Ql(t)},t.render=function(e,t,n){if(!Jl(t))throw Error(a(200));return Xl(null,e,t,!1,n)},t.unmountComponentAtNode=function(e){if(!Jl(e))throw Error(a(40));return!!e._reactRootContainer&&(ul((function(){Xl(null,null,e,!1,(function(){e._reactRootContainer=null,e[ho]=null}))})),!0)},t.unstable_batchedUpdates=ll,t.unstable_renderSubtreeIntoContainer=function(e,t,n,r){if(!Jl(n))throw Error(a(200));if(null==e||void 0===e._reactInternals)throw Error(a(38));return Xl(e,t,n,!1,r)},t.version="18.3.1-next-f1338f8080-20240426"},22654:e=>{"use strict";e.exports={}},22799:(e,t)=>{"use strict";var n="function"==typeof Symbol&&Symbol.for,r=n?Symbol.for("react.element"):60103,o=n?Symbol.for("react.portal"):60106,a=n?Symbol.for("react.fragment"):60107,i=n?Symbol.for("react.strict_mode"):60108,s=n?Symbol.for("react.profiler"):60114,c=n?Symbol.for("react.provider"):60109,l=n?Symbol.for("react.context"):60110,u=n?Symbol.for("react.async_mode"):60111,d=n?Symbol.for("react.concurrent_mode"):60111,p=n?Symbol.for("react.forward_ref"):60112,f=n?Symbol.for("react.suspense"):60113,m=n?Symbol.for("react.suspense_list"):60120,h=n?Symbol.for("react.memo"):60115,g=n?Symbol.for("react.lazy"):60116,b=n?Symbol.for("react.block"):60121,y=n?Symbol.for("react.fundamental"):60117,v=n?Symbol.for("react.responder"):60118,x=n?Symbol.for("react.scope"):60119;function w(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:switch(e=e.type){case u:case d:case a:case s:case i:case f:return e;default:switch(e=e&&e.$$typeof){case l:case p:case g:case h:case c:return e;default:return t}}case o:return t}}}function k(e){return w(e)===d}t.AsyncMode=u,t.ConcurrentMode=d,t.ContextConsumer=l,t.ContextProvider=c,t.Element=r,t.ForwardRef=p,t.Fragment=a,t.Lazy=g,t.Memo=h,t.Portal=o,t.Profiler=s,t.StrictMode=i,t.Suspense=f,t.isAsyncMode=function(e){return k(e)||w(e)===u},t.isConcurrentMode=k,t.isContextConsumer=function(e){return w(e)===l},t.isContextProvider=function(e){return w(e)===c},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return w(e)===p},t.isFragment=function(e){return w(e)===a},t.isLazy=function(e){return w(e)===g},t.isMemo=function(e){return w(e)===h},t.isPortal=function(e){return w(e)===o},t.isProfiler=function(e){return w(e)===s},t.isStrictMode=function(e){return w(e)===i},t.isSuspense=function(e){return w(e)===f},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===a||e===d||e===s||e===i||e===f||e===m||"object"==typeof e&&null!==e&&(e.$$typeof===g||e.$$typeof===h||e.$$typeof===c||e.$$typeof===l||e.$$typeof===p||e.$$typeof===y||e.$$typeof===v||e.$$typeof===x||e.$$typeof===b)},t.typeOf=w},22831:(e,t,n)=>{"use strict";n.d(t,{u:()=>i,v:()=>s});var r=n(56347),o=n(58168),a=n(96540);function i(e,t,n){return void 0===n&&(n=[]),e.some((function(e){var o=e.path?(0,r.B6)(t,e):n.length?n[n.length-1].match:r.Ix.computeRootMatch(t);return o&&(n.push({route:e,match:o}),e.routes&&i(e.routes,t,n)),o})),n}function s(e,t,n){return void 0===t&&(t={}),void 0===n&&(n={}),e?a.createElement(r.dO,n,e.map((function(e,n){return a.createElement(r.qh,{key:e.key||n,path:e.path,exact:e.exact,strict:e.strict,render:function(n){return e.render?e.render((0,o.A)({},n,{},t,{route:e})):a.createElement(e.component,(0,o.A)({},n,t,{route:e}))}})}))):null}},22887:(e,t,n)=>{"use strict";function r(e){return/^(?:\w*:|\/\/)/.test(e)}function o(e){return void 0!==e&&!r(e)}n.d(t,{A:()=>o,z:()=>r})},23380:(e,t,n)=>{"use strict";n.d(t,{M:()=>h,o:()=>m});var r=n(96540),o=n(9136),a=n(78749),i=n(102),s=n(53115),c=n(74848),l=(0,a.Wf)("docusaurus.announcement.dismiss"),u=(0,a.Wf)("docusaurus.announcement.id"),d=function(){return"true"===l.get()},p=function(e){return l.set(String(e))},f=r.createContext(null);function m(e){var t=e.children,n=function(){var e=(0,s.p)().announcementBar,t=(0,o.A)(),n=(0,r.useState)((function(){return!!t&&d()})),a=n[0],i=n[1];(0,r.useEffect)((function(){i(d())}),[]);var c=(0,r.useCallback)((function(){p(!0),i(!0)}),[]);return(0,r.useEffect)((function(){if(e){var t=e.id,n=u.get();"annoucement-bar"===n&&(n="announcement-bar");var r=t!==n;u.set(t),r&&p(!1),!r&&d()||i(!1)}}),[e]),(0,r.useMemo)((function(){return{isActive:!!e&&!a,close:c}}),[e,a,c])}();return(0,c.jsx)(f.Provider,{value:n,children:t})}function h(){var e=(0,r.useContext)(f);if(!e)throw new i.dV("AnnouncementBarProvider");return e}},24194:(e,t,n)=>{"use strict";n.d(t,{bq:()=>d,MN:()=>u,a2:()=>l,k2:()=>p});var r=n(77387),o=n(96540),a=n(50539),i=n(30099);const s={errorBoundaryError:"errorBoundaryError_a6uf",errorBoundaryFallback:"errorBoundaryFallback_VBag"};var c=n(74848);function l(e){return(0,c.jsx)("button",Object.assign({type:"button"},e,{children:(0,c.jsx)(a.A,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again rendering when the React error boundary captures an error",children:"Try again"})}))}function u(e){var t=e.error,n=e.tryAgain;return(0,c.jsxs)("div",{className:s.errorBoundaryFallback,children:[(0,c.jsx)("p",{children:t.message}),(0,c.jsx)(l,{onClick:n})]})}function d(e){var t=e.error,n=(0,i.rA)(t).map((function(e){return e.message})).join("\n\nCause:\n");return(0,c.jsx)("p",{className:s.errorBoundaryError,children:n})}var p=function(e){function t(){return e.apply(this,arguments)||this}(0,r.A)(t,e);var n=t.prototype;return n.componentDidCatch=function(e,t){throw this.props.onError(e,t)},n.render=function(){return this.props.children},t}(o.Component)},25246:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r=n(96540),o=(n(74848),r.createContext({collectAnchor:function(){},collectLink:function(){}})),a=function(){return(0,r.useContext)(o)};function i(){return a()}},27143:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});n(96540);var r=n(80545),o=n(74848);function a(e){return(0,o.jsx)(r.mg,Object.assign({},e))}},27149:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.addPrefix=function(e,t){return e.startsWith(t)?e:""+t+e},t.removeSuffix=function(e,t){if(""===t)return e;return e.endsWith(t)?e.slice(0,-t.length):e},t.addSuffix=function(e,t){return e.endsWith(t)?e:""+e+t},t.removePrefix=function(e,t){return e.startsWith(t)?e.slice(t.length):e}},29030:(e,t,n)=>{"use strict";n.d(t,{Ay:()=>s,hH:()=>i});var r=n(96540),o=n(40797),a=n(22887);function i(){var e=(0,o.A)().siteConfig,t=e.baseUrl,n=e.url,i=e.future.experimental_router,s=(0,r.useCallback)((function(e,r){return function(e){var t=e.siteUrl,n=e.baseUrl,r=e.url,o=e.options,i=void 0===o?{}:o,s=i.forcePrependBaseUrl,c=void 0!==s&&s,l=i.absolute,u=void 0!==l&&l,d=e.router;if(!r||r.startsWith("#")||(0,a.z)(r))return r;if("hash"===d)return r.startsWith("/")?"."+r:"./"+r;if(c)return n+r.replace(/^\//,"");if(r===n.replace(/\/$/,""))return n;var p=r.startsWith(n)?r:n+r.replace(/^\//,"");return u?t+p:p}({siteUrl:n,baseUrl:t,url:e,options:r,router:i})}),[n,t,i]);return{withBaseUrl:s}}function s(e,t){return void 0===t&&(t={}),(0,i().withBaseUrl)(e,t)}},30099:(e,t,n)=>{"use strict";t.rA=t.Ks=void 0;var r=n(31635);var o=n(92562);Object.defineProperty(t,"Ks",{enumerable:!0,get:function(){return r.__importDefault(o).default}});var a=n(27149);var i=n(52528);Object.defineProperty(t,"rA",{enumerable:!0,get:function(){return i.getErrorCausalChain}})},30115:e=>{var t="undefined"!=typeof Element,n="function"==typeof Map,r="function"==typeof Set,o="function"==typeof ArrayBuffer&&!!ArrayBuffer.isView;function a(e,i){if(e===i)return!0;if(e&&i&&"object"==typeof e&&"object"==typeof i){if(e.constructor!==i.constructor)return!1;var s,c,l,u;if(Array.isArray(e)){if((s=e.length)!=i.length)return!1;for(c=s;0!=c--;)if(!a(e[c],i[c]))return!1;return!0}if(n&&e instanceof Map&&i instanceof Map){if(e.size!==i.size)return!1;for(u=e.entries();!(c=u.next()).done;)if(!i.has(c.value[0]))return!1;for(u=e.entries();!(c=u.next()).done;)if(!a(c.value[1],i.get(c.value[0])))return!1;return!0}if(r&&e instanceof Set&&i instanceof Set){if(e.size!==i.size)return!1;for(u=e.entries();!(c=u.next()).done;)if(!i.has(c.value[0]))return!1;return!0}if(o&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(i)){if((s=e.length)!=i.length)return!1;for(c=s;0!=c--;)if(e[c]!==i[c])return!1;return!0}if(e.constructor===RegExp)return e.source===i.source&&e.flags===i.flags;if(e.valueOf!==Object.prototype.valueOf&&"function"==typeof e.valueOf&&"function"==typeof i.valueOf)return e.valueOf()===i.valueOf();if(e.toString!==Object.prototype.toString&&"function"==typeof e.toString&&"function"==typeof i.toString)return e.toString()===i.toString();if((s=(l=Object.keys(e)).length)!==Object.keys(i).length)return!1;for(c=s;0!=c--;)if(!Object.prototype.hasOwnProperty.call(i,l[c]))return!1;if(t&&e instanceof Element)return!1;for(c=s;0!=c--;)if(("_owner"!==l[c]&&"__v"!==l[c]&&"__o"!==l[c]||!e.$$typeof)&&!a(e[l[c]],i[l[c]]))return!1;return!0}return e!=e&&i!=i}e.exports=function(e,t){try{return a(e,t)}catch(n){if((n.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw n}}},30214:(e,t,n)=>{"use strict";n.d(t,{Dt:()=>s,ys:()=>i});var r=n(96540),o=n(48912),a=n(40797);function i(e,t){var n=function(e){var t;return null==(t=!e||e.endsWith("/")?e:e+"/")?void 0:t.toLowerCase()};return n(e)===n(t)}function s(){var e=(0,a.A)().siteConfig.baseUrl;return(0,r.useMemo)((function(){return function(e){var t=e.baseUrl;function n(e){return e.path===t&&!0===e.exact}function r(e){return e.path===t&&!e.exact}return function e(t){if(0!==t.length)return t.find(n)||e(t.filter(r).flatMap((function(e){var t;return null!=(t=e.routes)?t:[]})))}(e.routes)}({routes:o.A,baseUrl:e})}),[e])}},30604:(e,t,n)=>{"use strict";n.d(t,{$Z:()=>i,aZ:()=>c});var r=n(96540),o=n(56347),a=n(102);function i(e){!function(e){var t=(0,o.W6)(),n=(0,a._q)(e);(0,r.useEffect)((function(){return t.block((function(e,t){return n(e,t)}))}),[t,n])}((function(t,n){if("POP"===n)return e(t,n)}))}function s(e){var t=(0,o.W6)();return(0,r.useSyncExternalStore)(t.listen,(function(){return e(t)}),(function(){return e(t)}))}function c(e){return s((function(t){return null===e?null:new URLSearchParams(t.location.search).get(e)}))}},31513:(e,t,n)=>{"use strict";n.d(t,{zR:()=>x,TM:()=>C,yJ:()=>f,sC:()=>q,AO:()=>p});var r=n(58168);function o(e){return"/"===e.charAt(0)}function a(e,t){for(var n=t,r=n+1,o=e.length;r<o;n+=1,r+=1)e[n]=e[r];e.pop()}const i=function(e,t){void 0===t&&(t="");var n,r=e&&e.split("/")||[],i=t&&t.split("/")||[],s=e&&o(e),c=t&&o(t),l=s||c;if(e&&o(e)?i=r:r.length&&(i.pop(),i=i.concat(r)),!i.length)return"/";if(i.length){var u=i[i.length-1];n="."===u||".."===u||""===u}else n=!1;for(var d=0,p=i.length;p>=0;p--){var f=i[p];"."===f?a(i,p):".."===f?(a(i,p),d++):d&&(a(i,p),d--)}if(!l)for(;d--;d)i.unshift("..");!l||""===i[0]||i[0]&&o(i[0])||i.unshift("");var m=i.join("/");return n&&"/"!==m.substr(-1)&&(m+="/"),m};var s=n(11561);function c(e){return"/"===e.charAt(0)?e:"/"+e}function l(e){return"/"===e.charAt(0)?e.substr(1):e}function u(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function d(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function p(e){var t=e.pathname,n=e.search,r=e.hash,o=t||"/";return n&&"?"!==n&&(o+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(o+="#"===r.charAt(0)?r:"#"+r),o}function f(e,t,n,o){var a;"string"==typeof e?(a=function(e){var t=e||"/",n="",r="",o=t.indexOf("#");-1!==o&&(r=t.substr(o),t=t.substr(0,o));var a=t.indexOf("?");return-1!==a&&(n=t.substr(a),t=t.substr(0,a)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),a.state=t):(void 0===(a=(0,r.A)({},e)).pathname&&(a.pathname=""),a.search?"?"!==a.search.charAt(0)&&(a.search="?"+a.search):a.search="",a.hash?"#"!==a.hash.charAt(0)&&(a.hash="#"+a.hash):a.hash="",void 0!==t&&void 0===a.state&&(a.state=t));try{a.pathname=decodeURI(a.pathname)}catch(s){throw s instanceof URIError?new URIError('Pathname "'+a.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):s}return n&&(a.key=n),o?a.pathname?"/"!==a.pathname.charAt(0)&&(a.pathname=i(a.pathname,o.pathname)):a.pathname=o.pathname:a.pathname||(a.pathname="/"),a}function m(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,o){if(null!=e){var a="function"==typeof e?e(t,n):e;"string"==typeof a?"function"==typeof r?r(a,o):o(!0):o(!1!==a)}else o(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];t.forEach((function(e){return e.apply(void 0,n)}))}}}var h=!("undefined"==typeof window||!window.document||!window.document.createElement);function g(e,t){t(window.confirm(e))}var b="popstate",y="hashchange";function v(){try{return window.history.state||{}}catch(e){return{}}}function x(e){void 0===e&&(e={}),h||(0,s.A)(!1);var t,n=window.history,o=(-1===(t=window.navigator.userAgent).indexOf("Android 2.")&&-1===t.indexOf("Android 4.0")||-1===t.indexOf("Mobile Safari")||-1!==t.indexOf("Chrome")||-1!==t.indexOf("Windows Phone"))&&window.history&&"pushState"in window.history,a=!(-1===window.navigator.userAgent.indexOf("Trident")),i=e,l=i.forceRefresh,x=void 0!==l&&l,w=i.getUserConfirmation,k=void 0===w?g:w,_=i.keyLength,S=void 0===_?6:_,E=e.basename?d(c(e.basename)):"";function C(e){var t=e||{},n=t.key,r=t.state,o=window.location,a=o.pathname+o.search+o.hash;return E&&(a=u(a,E)),f(a,r,n)}function A(){return Math.random().toString(36).substr(2,S)}var q=m();function j(e){(0,r.A)(B,e),B.length=n.length,q.notifyListeners(B.location,B.action)}function T(e){(function(e){return void 0===e.state&&-1===navigator.userAgent.indexOf("CriOS")})(e)||R(C(e.state))}function N(){R(C(v()))}var O=!1;function R(e){if(O)O=!1,j();else{q.confirmTransitionTo(e,"POP",k,(function(t){t?j({action:"POP",location:e}):function(e){var t=B.location,n=L.indexOf(t.key);-1===n&&(n=0);var r=L.indexOf(e.key);-1===r&&(r=0);var o=n-r;o&&(O=!0,D(o))}(e)}))}}var P=C(v()),L=[P.key];function I(e){return E+p(e)}function D(e){n.go(e)}var M=0;function F(e){1===(M+=e)&&1===e?(window.addEventListener(b,T),a&&window.addEventListener(y,N)):0===M&&(window.removeEventListener(b,T),a&&window.removeEventListener(y,N))}var z=!1;var B={length:n.length,action:"POP",location:P,createHref:I,push:function(e,t){var r="PUSH",a=f(e,t,A(),B.location);q.confirmTransitionTo(a,r,k,(function(e){if(e){var t=I(a),i=a.key,s=a.state;if(o)if(n.pushState({key:i,state:s},null,t),x)window.location.href=t;else{var c=L.indexOf(B.location.key),l=L.slice(0,c+1);l.push(a.key),L=l,j({action:r,location:a})}else window.location.href=t}}))},replace:function(e,t){var r="REPLACE",a=f(e,t,A(),B.location);q.confirmTransitionTo(a,r,k,(function(e){if(e){var t=I(a),i=a.key,s=a.state;if(o)if(n.replaceState({key:i,state:s},null,t),x)window.location.replace(t);else{var c=L.indexOf(B.location.key);-1!==c&&(L[c]=a.key),j({action:r,location:a})}else window.location.replace(t)}}))},go:D,goBack:function(){D(-1)},goForward:function(){D(1)},block:function(e){void 0===e&&(e=!1);var t=q.setPrompt(e);return z||(F(1),z=!0),function(){return z&&(z=!1,F(-1)),t()}},listen:function(e){var t=q.appendListener(e);return F(1),function(){F(-1),t()}}};return B}var w="hashchange",k={hashbang:{encodePath:function(e){return"!"===e.charAt(0)?e:"!/"+l(e)},decodePath:function(e){return"!"===e.charAt(0)?e.substr(1):e}},noslash:{encodePath:l,decodePath:c},slash:{encodePath:c,decodePath:c}};function _(e){var t=e.indexOf("#");return-1===t?e:e.slice(0,t)}function S(){var e=window.location.href,t=e.indexOf("#");return-1===t?"":e.substring(t+1)}function E(e){window.location.replace(_(window.location.href)+"#"+e)}function C(e){void 0===e&&(e={}),h||(0,s.A)(!1);var t=window.history,n=(window.navigator.userAgent.indexOf("Firefox"),e),o=n.getUserConfirmation,a=void 0===o?g:o,i=n.hashType,l=void 0===i?"slash":i,b=e.basename?d(c(e.basename)):"",y=k[l],v=y.encodePath,x=y.decodePath;function C(){var e=x(S());return b&&(e=u(e,b)),f(e)}var A=m();function q(e){(0,r.A)(z,e),z.length=t.length,A.notifyListeners(z.location,z.action)}var j=!1,T=null;function N(){var e,t,n=S(),r=v(n);if(n!==r)E(r);else{var o=C(),i=z.location;if(!j&&(t=o,(e=i).pathname===t.pathname&&e.search===t.search&&e.hash===t.hash))return;if(T===p(o))return;T=null,function(e){if(j)j=!1,q();else{var t="POP";A.confirmTransitionTo(e,t,a,(function(n){n?q({action:t,location:e}):function(e){var t=z.location,n=L.lastIndexOf(p(t));-1===n&&(n=0);var r=L.lastIndexOf(p(e));-1===r&&(r=0);var o=n-r;o&&(j=!0,I(o))}(e)}))}}(o)}}var O=S(),R=v(O);O!==R&&E(R);var P=C(),L=[p(P)];function I(e){t.go(e)}var D=0;function M(e){1===(D+=e)&&1===e?window.addEventListener(w,N):0===D&&window.removeEventListener(w,N)}var F=!1;var z={length:t.length,action:"POP",location:P,createHref:function(e){var t=document.querySelector("base"),n="";return t&&t.getAttribute("href")&&(n=_(window.location.href)),n+"#"+v(b+p(e))},push:function(e,t){var n="PUSH",r=f(e,void 0,void 0,z.location);A.confirmTransitionTo(r,n,a,(function(e){if(e){var t=p(r),o=v(b+t);if(S()!==o){T=t,function(e){window.location.hash=e}(o);var a=L.lastIndexOf(p(z.location)),i=L.slice(0,a+1);i.push(t),L=i,q({action:n,location:r})}else q()}}))},replace:function(e,t){var n="REPLACE",r=f(e,void 0,void 0,z.location);A.confirmTransitionTo(r,n,a,(function(e){if(e){var t=p(r),o=v(b+t);S()!==o&&(T=t,E(o));var a=L.indexOf(p(z.location));-1!==a&&(L[a]=t),q({action:n,location:r})}}))},go:I,goBack:function(){I(-1)},goForward:function(){I(1)},block:function(e){void 0===e&&(e=!1);var t=A.setPrompt(e);return F||(M(1),F=!0),function(){return F&&(F=!1,M(-1)),t()}},listen:function(e){var t=A.appendListener(e);return M(1),function(){M(-1),t()}}};return z}function A(e,t,n){return Math.min(Math.max(e,t),n)}function q(e){void 0===e&&(e={});var t=e,n=t.getUserConfirmation,o=t.initialEntries,a=void 0===o?["/"]:o,i=t.initialIndex,s=void 0===i?0:i,c=t.keyLength,l=void 0===c?6:c,u=m();function d(e){(0,r.A)(x,e),x.length=x.entries.length,u.notifyListeners(x.location,x.action)}function h(){return Math.random().toString(36).substr(2,l)}var g=A(s,0,a.length-1),b=a.map((function(e){return f(e,void 0,"string"==typeof e?h():e.key||h())})),y=p;function v(e){var t=A(x.index+e,0,x.entries.length-1),r=x.entries[t];u.confirmTransitionTo(r,"POP",n,(function(e){e?d({action:"POP",location:r,index:t}):d()}))}var x={length:b.length,action:"POP",location:b[g],index:g,entries:b,createHref:y,push:function(e,t){var r="PUSH",o=f(e,t,h(),x.location);u.confirmTransitionTo(o,r,n,(function(e){if(e){var t=x.index+1,n=x.entries.slice(0);n.length>t?n.splice(t,n.length-t,o):n.push(o),d({action:r,location:o,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",o=f(e,t,h(),x.location);u.confirmTransitionTo(o,r,n,(function(e){e&&(x.entries[x.index]=o,d({action:r,location:o}))}))},go:v,goBack:function(){v(-1)},goForward:function(){v(1)},canGo:function(e){var t=x.index+e;return t>=0&&t<x.entries.length},block:function(e){return void 0===e&&(e=!1),u.setPrompt(e)},listen:function(e){return u.appendListener(e)}};return x}},31635:(e,t,n)=>{"use strict";n.r(t),n.d(t,{__addDisposableResource:()=>L,__assign:()=>a,__asyncDelegator:()=>E,__asyncGenerator:()=>S,__asyncValues:()=>C,__await:()=>_,__awaiter:()=>m,__classPrivateFieldGet:()=>O,__classPrivateFieldIn:()=>P,__classPrivateFieldSet:()=>R,__createBinding:()=>g,__decorate:()=>s,__disposeResources:()=>D,__esDecorate:()=>l,__exportStar:()=>b,__extends:()=>o,__generator:()=>h,__importDefault:()=>N,__importStar:()=>T,__makeTemplateObject:()=>A,__metadata:()=>f,__param:()=>c,__propKey:()=>d,__read:()=>v,__rest:()=>i,__rewriteRelativeImportExtension:()=>M,__runInitializers:()=>u,__setFunctionName:()=>p,__spread:()=>x,__spreadArray:()=>k,__spreadArrays:()=>w,__values:()=>y,default:()=>F});var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},r(e,t)};function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var a=function(){return a=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},a.apply(this,arguments)};function i(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n}function s(e,t,n,r){var o,a=arguments.length,i=a<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(i=(a<3?o(i):a>3?o(t,n,i):o(t,n))||i);return a>3&&i&&Object.defineProperty(t,n,i),i}function c(e,t){return function(n,r){t(n,r,e)}}function l(e,t,n,r,o,a){function i(e){if(void 0!==e&&"function"!=typeof e)throw new TypeError("Function expected");return e}for(var s,c=r.kind,l="getter"===c?"get":"setter"===c?"set":"value",u=!t&&e?r.static?e:e.prototype:null,d=t||(u?Object.getOwnPropertyDescriptor(u,r.name):{}),p=!1,f=n.length-1;f>=0;f--){var m={};for(var h in r)m[h]="access"===h?{}:r[h];for(var h in r.access)m.access[h]=r.access[h];m.addInitializer=function(e){if(p)throw new TypeError("Cannot add initializers after decoration has completed");a.push(i(e||null))};var g=(0,n[f])("accessor"===c?{get:d.get,set:d.set}:d[l],m);if("accessor"===c){if(void 0===g)continue;if(null===g||"object"!=typeof g)throw new TypeError("Object expected");(s=i(g.get))&&(d.get=s),(s=i(g.set))&&(d.set=s),(s=i(g.init))&&o.unshift(s)}else(s=i(g))&&("field"===c?o.unshift(s):d[l]=s)}u&&Object.defineProperty(u,r.name,d),p=!0}function u(e,t,n){for(var r=arguments.length>2,o=0;o<t.length;o++)n=r?t[o].call(e,n):t[o].call(e);return r?n:void 0}function d(e){return"symbol"==typeof e?e:"".concat(e)}function p(e,t,n){return"symbol"==typeof t&&(t=t.description?"[".concat(t.description,"]"):""),Object.defineProperty(e,"name",{configurable:!0,value:n?"".concat(n," ",t):t})}function f(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}function m(e,t,n,r){return new(n||(n=Promise))((function(o,a){function i(e){try{c(r.next(e))}catch(t){a(t)}}function s(e){try{c(r.throw(e))}catch(t){a(t)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(i,s)}c((r=r.apply(e,t||[])).next())}))}function h(e,t){var n,r,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},i=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return i.next=s(0),i.throw=s(1),i.return=s(2),"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(s){return function(c){return function(s){if(n)throw new TypeError("Generator is already executing.");for(;i&&(i=0,s[0]&&(a=0)),a;)try{if(n=1,r&&(o=2&s[0]?r.return:s[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,s[1])).done)return o;switch(r=0,o&&(s=[2&s[0],o.value]),s[0]){case 0:case 1:o=s;break;case 4:return a.label++,{value:s[1],done:!1};case 5:a.label++,r=s[1],s=[0];continue;case 7:s=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==s[0]&&2!==s[0])){a=0;continue}if(3===s[0]&&(!o||s[1]>o[0]&&s[1]<o[3])){a.label=s[1];break}if(6===s[0]&&a.label<o[1]){a.label=o[1],o=s;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(s);break}o[2]&&a.ops.pop(),a.trys.pop();continue}s=t.call(e,a)}catch(c){s=[6,c],r=0}finally{n=o=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}([s,c])}}}var g=Object.create?function(e,t,n,r){void 0===r&&(r=n);var o=Object.getOwnPropertyDescriptor(t,n);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,o)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]};function b(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||g(t,e,n)}function y(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function v(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,o,a=n.call(e),i=[];try{for(;(void 0===t||t-- >0)&&!(r=a.next()).done;)i.push(r.value)}catch(s){o={error:s}}finally{try{r&&!r.done&&(n=a.return)&&n.call(a)}finally{if(o)throw o.error}}return i}function x(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(v(arguments[t]));return e}function w(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var r=Array(e),o=0;for(t=0;t<n;t++)for(var a=arguments[t],i=0,s=a.length;i<s;i++,o++)r[o]=a[i];return r}function k(e,t,n){if(n||2===arguments.length)for(var r,o=0,a=t.length;o<a;o++)!r&&o in t||(r||(r=Array.prototype.slice.call(t,0,o)),r[o]=t[o]);return e.concat(r||Array.prototype.slice.call(t))}function _(e){return this instanceof _?(this.v=e,this):new _(e)}function S(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r,o=n.apply(e,t||[]),a=[];return r=Object.create(("function"==typeof AsyncIterator?AsyncIterator:Object).prototype),i("next"),i("throw"),i("return",(function(e){return function(t){return Promise.resolve(t).then(e,l)}})),r[Symbol.asyncIterator]=function(){return this},r;function i(e,t){o[e]&&(r[e]=function(t){return new Promise((function(n,r){a.push([e,t,n,r])>1||s(e,t)}))},t&&(r[e]=t(r[e])))}function s(e,t){try{(n=o[e](t)).value instanceof _?Promise.resolve(n.value.v).then(c,l):u(a[0][2],n)}catch(r){u(a[0][3],r)}var n}function c(e){s("next",e)}function l(e){s("throw",e)}function u(e,t){e(t),a.shift(),a.length&&s(a[0][0],a[0][1])}}function E(e){var t,n;return t={},r("next"),r("throw",(function(e){throw e})),r("return"),t[Symbol.iterator]=function(){return this},t;function r(r,o){t[r]=e[r]?function(t){return(n=!n)?{value:_(e[r](t)),done:!1}:o?o(t):t}:o}}function C(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e=y(e),t={},r("next"),r("throw"),r("return"),t[Symbol.asyncIterator]=function(){return this},t);function r(n){t[n]=e[n]&&function(t){return new Promise((function(r,o){(function(e,t,n,r){Promise.resolve(r).then((function(t){e({value:t,done:n})}),t)})(r,o,(t=e[n](t)).done,t.value)}))}}}function A(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}var q=Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t},j=function(e){return j=Object.getOwnPropertyNames||function(e){var t=[];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[t.length]=n);return t},j(e)};function T(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n=j(e),r=0;r<n.length;r++)"default"!==n[r]&&g(t,e,n[r]);return q(t,e),t}function N(e){return e&&e.__esModule?e:{default:e}}function O(e,t,n,r){if("a"===n&&!r)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!r:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?r:"a"===n?r.call(e):r?r.value:t.get(e)}function R(e,t,n,r,o){if("m"===r)throw new TypeError("Private method is not writable");if("a"===r&&!o)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!o:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===r?o.call(e,n):o?o.value=n:t.set(e,n),n}function P(e,t){if(null===t||"object"!=typeof t&&"function"!=typeof t)throw new TypeError("Cannot use 'in' operator on non-object");return"function"==typeof e?t===e:e.has(t)}function L(e,t,n){if(null!=t){if("object"!=typeof t&&"function"!=typeof t)throw new TypeError("Object expected.");var r,o;if(n){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");r=t[Symbol.asyncDispose]}if(void 0===r){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");r=t[Symbol.dispose],n&&(o=r)}if("function"!=typeof r)throw new TypeError("Object not disposable.");o&&(r=function(){try{o.call(this)}catch(e){return Promise.reject(e)}}),e.stack.push({value:t,dispose:r,async:n})}else n&&e.stack.push({async:!0});return t}var I="function"==typeof SuppressedError?SuppressedError:function(e,t,n){var r=new Error(n);return r.name="SuppressedError",r.error=e,r.suppressed=t,r};function D(e){function t(t){e.error=e.hasError?new I(t,e.error,"An error was suppressed during disposal."):t,e.hasError=!0}var n,r=0;return function o(){for(;n=e.stack.pop();)try{if(!n.async&&1===r)return r=0,e.stack.push(n),Promise.resolve().then(o);if(n.dispose){var a=n.dispose.call(n.value);if(n.async)return r|=2,Promise.resolve(a).then(o,(function(e){return t(e),o()}))}else r|=1}catch(i){t(i)}if(1===r)return e.hasError?Promise.reject(e.error):Promise.resolve();if(e.hasError)throw e.error}()}function M(e,t){return"string"==typeof e&&/^\.\.?\//.test(e)?e.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i,(function(e,n,r,o,a){return n?t?".jsx":".js":!r||o&&a?r+o+"."+a.toLowerCase()+"js":e})):e}const F={__extends:o,__assign:a,__rest:i,__decorate:s,__param:c,__esDecorate:l,__runInitializers:u,__propKey:d,__setFunctionName:p,__metadata:f,__awaiter:m,__generator:h,__createBinding:g,__exportStar:b,__values:y,__read:v,__spread:x,__spreadArrays:w,__spreadArray:k,__await:_,__asyncGenerator:S,__asyncDelegator:E,__asyncValues:C,__makeTemplateObject:A,__importStar:T,__importDefault:N,__classPrivateFieldGet:O,__classPrivateFieldSet:R,__classPrivateFieldIn:P,__addDisposableResource:L,__disposeResources:D,__rewriteRelativeImportExtension:M}},33535:(e,t,n)=>{"use strict";n.d(t,{N:()=>x,u:()=>p});var r=n(98587),o=n(96540),a=n(9136),i=n(50372),s=n(84924),c=n(74848),l=["collapsed"],u=["lazy"],d="ease-in-out";function p(e){var t=e.initialState,n=(0,o.useState)(null!=t&&t),r=n[0],a=n[1],i=(0,o.useCallback)((function(){a((function(e){return!e}))}),[]);return{collapsed:r,setCollapsed:a,toggleCollapsed:i}}var f={display:"none",overflow:"hidden",height:"0px"},m={display:"block",overflow:"visible",height:"auto"};function h(e,t){var n=t?f:m;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function g(e){var t=e.collapsibleRef,n=e.collapsed,r=e.animation,a=(0,o.useRef)(!1);(0,o.useEffect)((function(){var e,o=t.current;function i(){var e,t,n=o.scrollHeight,a=null!=(e=null==r?void 0:r.duration)?e:function(e){if((0,s.O)())return 1;var t=e/36;return Math.round(10*(4+15*Math.pow(t,.25)+t/5))}(n);return{transition:"height "+a+"ms "+(null!=(t=null==r?void 0:r.easing)?t:d),height:n+"px"}}function c(){var e=i();o.style.transition=e.transition,o.style.height=e.height}if(!a.current)return h(o,n),void(a.current=!0);return o.style.willChange="height",e=requestAnimationFrame((function(){n?(c(),requestAnimationFrame((function(){o.style.height=f.height,o.style.overflow=f.overflow}))):(o.style.display="block",requestAnimationFrame((function(){c()})))})),function(){return cancelAnimationFrame(e)}}),[t,n,r])}function b(e){var t=e.collapsed;if(!e.isBrowser)return t?f:m}function y(e){var t=e.as,n=void 0===t?"div":t,r=e.collapsed,i=e.children,s=e.animation,l=e.onCollapseTransitionEnd,u=e.className,d=e.disableSSRStyle,p=(0,a.A)(),f=(0,o.useRef)(null);return g({collapsibleRef:f,collapsed:r,animation:s}),(0,c.jsx)(n,{ref:f,style:d?void 0:b({collapsed:r,isBrowser:p}),onTransitionEnd:function(e){"height"===e.propertyName&&(h(f.current,r),null==l||l(r))},className:u,children:i})}function v(e){var t=e.collapsed,n=(0,r.A)(e,l),a=(0,o.useState)(!t),s=a[0],u=a[1],d=(0,o.useState)(t),p=d[0],f=d[1];return(0,i.A)((function(){t||u(!0)}),[t]),(0,i.A)((function(){s&&f(t)}),[s,t]),s?(0,c.jsx)(y,Object.assign({},n,{collapsed:p})):null}function x(e){var t=e.lazy,n=(0,r.A)(e,u),o=t?v:y;return(0,c.jsx)(o,Object.assign({},n))}},35302:(e,t,n)=>{var r=n(64634);e.exports=m,e.exports.parse=a,e.exports.compile=function(e,t){return c(a(e,t),t)},e.exports.tokensToFunction=c,e.exports.tokensToRegExp=f;var o=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function a(e,t){for(var n,r=[],a=0,s=0,c="",l=t&&t.delimiter||"/";null!=(n=o.exec(e));){var d=n[0],p=n[1],f=n.index;if(c+=e.slice(s,f),s=f+d.length,p)c+=p[1];else{var m=e[s],h=n[2],g=n[3],b=n[4],y=n[5],v=n[6],x=n[7];c&&(r.push(c),c="");var w=null!=h&&null!=m&&m!==h,k="+"===v||"*"===v,_="?"===v||"*"===v,S=h||l,E=b||y,C=h||("string"==typeof r[r.length-1]?r[r.length-1]:"");r.push({name:g||a++,prefix:h||"",delimiter:S,optional:_,repeat:k,partial:w,asterisk:!!x,pattern:E?u(E):x?".*":i(S,C)})}}return s<e.length&&(c+=e.substr(s)),c&&r.push(c),r}function i(e,t){return!t||t.indexOf(e)>-1?"[^"+l(e)+"]+?":l(t)+"|(?:(?!"+l(t)+")[^"+l(e)+"])+?"}function s(e){return encodeURI(e).replace(/[\/?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}))}function c(e,t){for(var n=new Array(e.length),o=0;o<e.length;o++)"object"==typeof e[o]&&(n[o]=new RegExp("^(?:"+e[o].pattern+")$",p(t)));return function(t,o){for(var a="",i=t||{},c=(o||{}).pretty?s:encodeURIComponent,l=0;l<e.length;l++){var u=e[l];if("string"!=typeof u){var d,p=i[u.name];if(null==p){if(u.optional){u.partial&&(a+=u.prefix);continue}throw new TypeError('Expected "'+u.name+'" to be defined')}if(r(p)){if(!u.repeat)throw new TypeError('Expected "'+u.name+'" to not repeat, but received `'+JSON.stringify(p)+"`");if(0===p.length){if(u.optional)continue;throw new TypeError('Expected "'+u.name+'" to not be empty')}for(var f=0;f<p.length;f++){if(d=c(p[f]),!n[l].test(d))throw new TypeError('Expected all "'+u.name+'" to match "'+u.pattern+'", but received `'+JSON.stringify(d)+"`");a+=(0===f?u.prefix:u.delimiter)+d}}else{if(d=u.asterisk?encodeURI(p).replace(/[?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})):c(p),!n[l].test(d))throw new TypeError('Expected "'+u.name+'" to match "'+u.pattern+'", but received "'+d+'"');a+=u.prefix+d}}else a+=u}return a}}function l(e){return e.replace(/([.+*?=^!:${}()[\]|\/\\])/g,"\\$1")}function u(e){return e.replace(/([=!:$\/()])/g,"\\$1")}function d(e,t){return e.keys=t,e}function p(e){return e&&e.sensitive?"":"i"}function f(e,t,n){r(t)||(n=t||n,t=[]);for(var o=(n=n||{}).strict,a=!1!==n.end,i="",s=0;s<e.length;s++){var c=e[s];if("string"==typeof c)i+=l(c);else{var u=l(c.prefix),f="(?:"+c.pattern+")";t.push(c),c.repeat&&(f+="(?:"+u+f+")*"),i+=f=c.optional?c.partial?u+"("+f+")?":"(?:"+u+"("+f+"))?":u+"("+f+")"}}var m=l(n.delimiter||"/"),h=i.slice(-m.length)===m;return o||(i=(h?i.slice(0,-m.length):i)+"(?:"+m+"(?=$))?"),i+=a?"$":o&&h?"":"(?="+m+"|$)",d(new RegExp("^"+i,p(n)),t)}function m(e,t,n){return r(t)||(n=t||n,t=[]),n=n||{},e instanceof RegExp?function(e,t){var n=e.source.match(/\((?!\?)/g);if(n)for(var r=0;r<n.length;r++)t.push({name:r,prefix:null,delimiter:null,optional:!1,repeat:!1,partial:!1,asterisk:!1,pattern:null});return d(e,t)}(e,t):r(e)?function(e,t,n){for(var r=[],o=0;o<e.length;o++)r.push(m(e[o],t,n).source);return d(new RegExp("(?:"+r.join("|")+")",p(n)),t)}(e,t,n):function(e,t,n){return f(a(e,n),t,n)}(e,t,n)}},37220:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});n(96540);var r=n(27143),o=n(74848);function a(e){var t=e.locale,n=e.version,a=e.tag,i=t;return(0,o.jsxs)(r.A,{children:[t&&(0,o.jsx)("meta",{name:"docusaurus_locale",content:t}),n&&(0,o.jsx)("meta",{name:"docusaurus_version",content:n}),a&&(0,o.jsx)("meta",{name:"docusaurus_tag",content:a}),i&&(0,o.jsx)("meta",{name:"docsearch:language",content:i}),n&&(0,o.jsx)("meta",{name:"docsearch:version",content:n}),a&&(0,o.jsx)("meta",{name:"docsearch:docusaurus_tag",content:a})]})}},39324:(e,t,n)=>{"use strict";n.d(t,{A:()=>p});var r=n(98587),o=n(96540),a=n(15066),i=n(9136),s=n(8532);const c={themedComponent:"themedComponent_mlkZ","themedComponent--light":"themedComponent--light_NVdE","themedComponent--dark":"themedComponent--dark_xIcU"};var l=n(74848);function u(e){var t=e.className,n=e.children,r=(0,i.A)(),u=(0,s.G)().colorMode;return(0,l.jsx)(l.Fragment,{children:(r?"dark"===u?["dark"]:["light"]:["light","dark"]).map((function(e){var r=n({theme:e,className:(0,a.A)(t,c.themedComponent,c["themedComponent--"+e])});return(0,l.jsx)(o.Fragment,{children:r},e)}))})}var d=["sources","className","alt"];function p(e){var t=e.sources,n=e.className,o=e.alt,a=(0,r.A)(e,d);return(0,l.jsx)(u,{className:n,children:function(e){var n=e.theme,r=e.className;return(0,l.jsx)("img",Object.assign({src:t[n],alt:o,className:r},a))}})}},40797:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var r=n(96540),o=n(46193);function a(){return(0,r.useContext)(o.o)}},40961:(e,t,n)=>{"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}(),e.exports=n(22551)},44363:(e,t,n)=>{"use strict";e.exports=n(22799)},45161:(e,t,n)=>{"use strict";var r=n(96540),o=n(5338),a=n(80545),i=n(54625),s=n(4784),c=n(61934);const l=[n(67378),n(77264),n(78867),n(55119),n(68535)];var u=n(48912),d=n(56347),p=n(22831),f=n(74848);function m(e){var t=e.children;return(0,f.jsx)(f.Fragment,{children:t})}var h=n(27143),g=n(40797),b=n(29030),y=n(53115),v=n(81769),x=n(67976),w=n(67788),k=n(30099),_=n(37220);function S(){var e=(0,g.A)().i18n,t=e.currentLocale,n=e.defaultLocale,r=e.localeConfigs,o=(0,x.o)(),a=r[t].htmlLang,i=function(e){return e.replace("-","_")};return(0,f.jsxs)(h.A,{children:[Object.entries(r).map((function(e){var t=e[0],n=e[1].htmlLang;return(0,f.jsx)("link",{rel:"alternate",href:o.createUrl({locale:t,fullyQualified:!0}),hrefLang:n},t)})),(0,f.jsx)("link",{rel:"alternate",href:o.createUrl({locale:n,fullyQualified:!0}),hrefLang:"x-default"}),(0,f.jsx)("meta",{property:"og:locale",content:i(a)}),Object.values(r).filter((function(e){return a!==e.htmlLang})).map((function(e){return(0,f.jsx)("meta",{property:"og:locale:alternate",content:i(e.htmlLang)},"meta-og-"+e.htmlLang)}))]})}function E(e){var t=e.permalink,n=(0,g.A)().siteConfig.url,r=function(){var e=(0,g.A)().siteConfig,t=e.url,n=e.baseUrl,r=e.trailingSlash,o=(0,d.zy)().pathname;return t+(0,k.Ks)((0,b.Ay)(o),{trailingSlash:r,baseUrl:n})}(),o=t?""+n+t:r;return(0,f.jsxs)(h.A,{children:[(0,f.jsx)("meta",{property:"og:url",content:o}),(0,f.jsx)("link",{rel:"canonical",href:o})]})}function C(){var e=(0,g.A)().i18n.currentLocale,t=(0,y.p)(),n=t.metadata,r=t.image;return(0,f.jsxs)(f.Fragment,{children:[(0,f.jsxs)(h.A,{children:[(0,f.jsx)("meta",{name:"twitter:card",content:"summary_large_image"}),(0,f.jsx)("body",{className:w.w})]}),r&&(0,f.jsx)(v.be,{image:r}),(0,f.jsx)(E,{}),(0,f.jsx)(S,{}),(0,f.jsx)(_.A,{tag:"default",locale:e}),(0,f.jsx)(h.A,{children:n.map((function(e,t){return(0,f.jsx)("meta",Object.assign({},e),t)}))})]})}var A=new Map;var q=n(84974),j=n(46193),T=n(77387),N=n(50372);function O(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];var o=l.map((function(t){var r,o,a=null!=(r=null==(o=t.default)?void 0:o[e])?r:t[e];return null==a?void 0:a.apply(void 0,n)}));return function(){return o.forEach((function(e){return null==e?void 0:e()}))}}const R=function(e){var t=e.children,n=e.location,r=e.previousLocation;return(0,N.A)((function(){r!==n&&(!function(e){var t=e.location,n=e.previousLocation;if(n){var r=t.pathname===n.pathname,o=t.hash===n.hash,a=t.search===n.search;if(!r||!o||a){var i=t.hash;if(i){var s=decodeURIComponent(i.substring(1)),c=document.getElementById(s);null==c||c.scrollIntoView()}else window.scrollTo(0,0)}}}({location:n,previousLocation:r}),O("onRouteDidUpdate",{previousLocation:r,location:n}))}),[r,n]),t};function P(e){var t=Array.from(new Set([e,decodeURI(e)])).map((function(e){return(0,p.u)(u.A,e)})).flat();return Promise.all(t.map((function(e){return null==e.route.component.preload?void 0:e.route.component.preload()})))}const L=function(e){function t(t){var n;return(n=e.call(this,t)||this).previousLocation=void 0,n.routeUpdateCleanupCb=void 0,n.previousLocation=null,n.routeUpdateCleanupCb=c.A.canUseDOM?O("onRouteUpdate",{previousLocation:null,location:n.props.location}):function(){},n.state={nextRouteHasLoaded:!0},n}(0,T.A)(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e,t){var n=this;if(e.location===this.props.location)return t.nextRouteHasLoaded;var r=e.location;return this.previousLocation=this.props.location,this.setState({nextRouteHasLoaded:!1}),this.routeUpdateCleanupCb=O("onRouteUpdate",{previousLocation:this.previousLocation,location:r}),P(r.pathname).then((function(){n.routeUpdateCleanupCb(),n.setState({nextRouteHasLoaded:!0})})).catch((function(e){console.warn(e),window.location.reload()})),!1},n.render=function(){var e=this.props,t=e.children,n=e.location;return(0,f.jsx)(R,{previousLocation:this.previousLocation,location:n,children:(0,f.jsx)(d.qh,{location:n,render:function(){return t}})})},t}(r.Component);var I="__docusaurus-base-url-issue-banner-suggestion-container";function D(e){return"\ndocument.addEventListener('DOMContentLoaded', function maybeInsertBanner() {\n  var shouldInsert = typeof window['docusaurus'] === 'undefined';\n  shouldInsert && insertBanner();\n});\n\nfunction insertBanner() {\n  var bannerContainer = document.createElement('div');\n  bannerContainer.id = '__docusaurus-base-url-issue-banner-container';\n  var bannerHtml = "+JSON.stringify(function(e){return'\n<div id="__docusaurus-base-url-issue-banner" style="border: thick solid red; background-color: rgb(255, 230, 179); margin: 20px; padding: 20px; font-size: 20px;">\n   <p style="font-weight: bold; font-size: 30px;">Your Docusaurus site did not load properly.</p>\n   <p>A very common reason is a wrong site <a href="https://docusaurus.io/docs/docusaurus.config.js/#baseUrl" style="font-weight: bold;">baseUrl configuration</a>.</p>\n   <p>Current configured baseUrl = <span style="font-weight: bold; color: red;">'+e+"</span> "+("/"===e?" (default value)":"")+'</p>\n   <p>We suggest trying baseUrl = <span id="'+I+'" style="font-weight: bold; color: green;"></span></p>\n</div>\n'}(e)).replace(/</g,"\\<")+";\n  bannerContainer.innerHTML = bannerHtml;\n  document.body.prepend(bannerContainer);\n  var suggestionContainer = document.getElementById('"+I+"');\n  var actualHomePagePath = window.location.pathname;\n  var suggestedBaseUrl = actualHomePagePath.substr(-1) === '/'\n        ? actualHomePagePath\n        : actualHomePagePath + '/';\n  suggestionContainer.innerHTML = suggestedBaseUrl;\n}\n"}function M(){var e=(0,g.A)().siteConfig.baseUrl;return(0,f.jsx)(f.Fragment,{children:!c.A.canUseDOM&&(0,f.jsx)(h.A,{children:(0,f.jsx)("script",{children:D(e)})})})}function F(){var e=(0,g.A)().siteConfig,t=e.baseUrl,n=e.baseUrlIssueBanner,r=(0,d.zy)().pathname;return n&&r===t?(0,f.jsx)(M,{}):null}function z(){var e=(0,g.A)(),t=e.siteConfig,n=t.favicon,r=t.title,o=t.noIndex,a=e.i18n,i=a.currentLocale,s=a.localeConfigs,c=(0,b.Ay)(n),l=s[i],u=l.htmlLang,d=l.direction;return(0,f.jsxs)(h.A,{children:[(0,f.jsx)("html",{lang:u,dir:d}),(0,f.jsx)("title",{children:r}),(0,f.jsx)("meta",{property:"og:title",content:r}),(0,f.jsx)("meta",{name:"viewport",content:"width=device-width, initial-scale=1.0"}),o&&(0,f.jsx)("meta",{name:"robots",content:"noindex, nofollow"}),n&&(0,f.jsx)("link",{rel:"icon",href:c})]})}var B=n(4023),U=n(9136);function $(){var e=(0,U.A)();return(0,f.jsx)(h.A,{children:(0,f.jsx)("html",{"data-has-hydrated":e})})}var H=(0,p.v)(u.A);function W(){var e=function(e){if(A.has(e.pathname))return Object.assign({},e,{pathname:A.get(e.pathname)});if((0,p.u)(u.A,e.pathname).some((function(e){return!0===e.route.exact})))return A.set(e.pathname,e.pathname),e;var t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return A.set(e.pathname,t),Object.assign({},e,{pathname:t})}((0,d.zy)());return(0,f.jsx)(L,{location:e,children:H})}function G(){return(0,f.jsx)(B.A,{children:(0,f.jsx)(j.l,{children:(0,f.jsxs)(q.x,{children:[(0,f.jsxs)(m,{children:[(0,f.jsx)(z,{}),(0,f.jsx)(C,{}),(0,f.jsx)(F,{}),(0,f.jsx)(W,{})]}),(0,f.jsx)($,{})]})})})}var V=n(84054);var K=function(e){try{return document.createElement("link").relList.supports(e)}catch(t){return!1}}("prefetch")?function(e){return new Promise((function(t,n){var r,o;if("undefined"!=typeof document){var a=document.createElement("link");a.setAttribute("rel","prefetch"),a.setAttribute("href",e),a.onload=function(){return t()},a.onerror=function(){return n()};var i=null!=(r=document.getElementsByTagName("head")[0])?r:null==(o=document.getElementsByName("script")[0])?void 0:o.parentNode;null==i||i.appendChild(a)}else n()}))}:function(e){return new Promise((function(t,n){var r=new XMLHttpRequest;r.open("GET",e,!0),r.withCredentials=!0,r.onload=function(){200===r.status?t():n()},r.send(null)}))};var Q=n(13722),Y=new Set,J=new Set,Z=function(){var e,t;return(null==(e=navigator.connection)?void 0:e.effectiveType.includes("2g"))||(null==(t=navigator.connection)?void 0:t.saveData)},X={prefetch:function(e){if(!function(e){return!Z()&&!J.has(e)&&!Y.has(e)}(e))return!1;Y.add(e);var t=(0,p.u)(u.A,e).flatMap((function(e){return t=e.route.path,Object.entries(V).filter((function(e){return e[0].replace(/-[^-]+$/,"")===t})).flatMap((function(e){var t=e[1];return Object.values((0,Q.A)(t))}));var t}));return Promise.all(t.map((function(e){var t=n.gca(e);return t&&!t.includes("undefined")?K(t).catch((function(){})):Promise.resolve()})))},preload:function(e){return!!function(e){return!Z()&&!J.has(e)}(e)&&(J.add(e),P(e))}};const ee=Object.freeze(X);function te(e){var t=e.children;return"hash"===s.default.future.experimental_router?(0,f.jsx)(i.I9,{children:t}):(0,f.jsx)(i.Kd,{children:t})}var ne=Boolean(!0);if(c.A.canUseDOM){window.docusaurus=ee;var re=document.getElementById("__docusaurus"),oe=(0,f.jsx)(a.vd,{children:(0,f.jsx)(te,{children:(0,f.jsx)(G,{})})}),ae=function(e,t){console.error("Docusaurus React Root onRecoverableError:",e,t)},ie=function(){if(window.docusaurusRoot)window.docusaurusRoot.render(oe);else if(ne)window.docusaurusRoot=o.hydrateRoot(re,oe,{onRecoverableError:ae});else{var e=o.createRoot(re,{onRecoverableError:ae});e.render(oe),window.docusaurusRoot=e}};P(window.location.pathname).then((function(){(0,r.startTransition)(ie)}))}},46193:(e,t,n)=>{"use strict";n.d(t,{o:()=>d,l:()=>p});var r=n(96540),o=n(4784);const a=JSON.parse('{"docusaurus-plugin-content-docs":{"default":{"path":"/docs/33.0.0","versions":[{"name":"current","label":"Next","isLast":true,"path":"/docs/33.0.0","mainDocId":"design/index","docs":[{"id":"api-reference/api-reference","path":"/docs/33.0.0/api-reference/","sidebar":"docs"},{"id":"api-reference/automatic-compaction-api","path":"/docs/33.0.0/api-reference/automatic-compaction-api","sidebar":"docs"},{"id":"api-reference/data-management-api","path":"/docs/33.0.0/api-reference/data-management-api","sidebar":"docs"},{"id":"api-reference/dynamic-configuration-api","path":"/docs/33.0.0/api-reference/dynamic-configuration-api","sidebar":"docs"},{"id":"api-reference/json-querying-api","path":"/docs/33.0.0/api-reference/json-querying-api","sidebar":"docs"},{"id":"api-reference/legacy-metadata-api","path":"/docs/33.0.0/api-reference/legacy-metadata-api","sidebar":"docs"},{"id":"api-reference/lookups-api","path":"/docs/33.0.0/api-reference/lookups-api","sidebar":"docs"},{"id":"api-reference/retention-rules-api","path":"/docs/33.0.0/api-reference/retention-rules-api","sidebar":"docs"},{"id":"api-reference/service-status-api","path":"/docs/33.0.0/api-reference/service-status-api","sidebar":"docs"},{"id":"api-reference/sql-api","path":"/docs/33.0.0/api-reference/sql-api","sidebar":"docs"},{"id":"api-reference/sql-ingestion-api","path":"/docs/33.0.0/api-reference/sql-ingestion-api","sidebar":"docs"},{"id":"api-reference/sql-jdbc","path":"/docs/33.0.0/api-reference/sql-jdbc","sidebar":"docs"},{"id":"api-reference/supervisor-api","path":"/docs/33.0.0/api-reference/supervisor-api","sidebar":"docs"},{"id":"api-reference/tasks-api","path":"/docs/33.0.0/api-reference/tasks-api","sidebar":"docs"},{"id":"comparisons/druid-vs-elasticsearch","path":"/docs/33.0.0/comparisons/druid-vs-elasticsearch"},{"id":"comparisons/druid-vs-key-value","path":"/docs/33.0.0/comparisons/druid-vs-key-value"},{"id":"comparisons/druid-vs-kudu","path":"/docs/33.0.0/comparisons/druid-vs-kudu"},{"id":"comparisons/druid-vs-redshift","path":"/docs/33.0.0/comparisons/druid-vs-redshift"},{"id":"comparisons/druid-vs-spark","path":"/docs/33.0.0/comparisons/druid-vs-spark"},{"id":"comparisons/druid-vs-sql-on-hadoop","path":"/docs/33.0.0/comparisons/druid-vs-sql-on-hadoop"},{"id":"configuration/extensions","path":"/docs/33.0.0/configuration/extensions","sidebar":"docs"},{"id":"configuration/human-readable-byte","path":"/docs/33.0.0/configuration/human-readable-byte"},{"id":"configuration/index","path":"/docs/33.0.0/configuration/","sidebar":"docs"},{"id":"configuration/logging","path":"/docs/33.0.0/configuration/logging","sidebar":"docs"},{"id":"data-management/automatic-compaction","path":"/docs/33.0.0/data-management/automatic-compaction","sidebar":"docs"},{"id":"data-management/compaction","path":"/docs/33.0.0/data-management/compaction","sidebar":"docs"},{"id":"data-management/delete","path":"/docs/33.0.0/data-management/delete","sidebar":"docs"},{"id":"data-management/index","path":"/docs/33.0.0/data-management/","sidebar":"docs"},{"id":"data-management/manual-compaction","path":"/docs/33.0.0/data-management/manual-compaction","sidebar":"docs"},{"id":"data-management/schema-changes","path":"/docs/33.0.0/data-management/schema-changes","sidebar":"docs"},{"id":"data-management/update","path":"/docs/33.0.0/data-management/update","sidebar":"docs"},{"id":"design/architecture","path":"/docs/33.0.0/design/architecture","sidebar":"docs"},{"id":"design/broker","path":"/docs/33.0.0/design/broker","sidebar":"docs"},{"id":"design/coordinator","path":"/docs/33.0.0/design/coordinator","sidebar":"docs"},{"id":"design/deep-storage","path":"/docs/33.0.0/design/deep-storage","sidebar":"docs"},{"id":"design/extensions-contrib/dropwizard","path":"/docs/33.0.0/design/extensions-contrib/dropwizard"},{"id":"design/historical","path":"/docs/33.0.0/design/historical","sidebar":"docs"},{"id":"design/index","path":"/docs/33.0.0/design/","sidebar":"docs"},{"id":"design/indexer","path":"/docs/33.0.0/design/indexer","sidebar":"docs"},{"id":"design/indexing-service","path":"/docs/33.0.0/design/indexing-service"},{"id":"design/metadata-storage","path":"/docs/33.0.0/design/metadata-storage","sidebar":"docs"},{"id":"design/middlemanager","path":"/docs/33.0.0/design/middlemanager","sidebar":"docs"},{"id":"design/overlord","path":"/docs/33.0.0/design/overlord","sidebar":"docs"},{"id":"design/peons","path":"/docs/33.0.0/design/peons","sidebar":"docs"},{"id":"design/router","path":"/docs/33.0.0/design/router","sidebar":"docs"},{"id":"design/segments","path":"/docs/33.0.0/design/segments","sidebar":"docs"},{"id":"design/storage","path":"/docs/33.0.0/design/storage","sidebar":"docs"},{"id":"design/zookeeper","path":"/docs/33.0.0/design/zookeeper","sidebar":"docs"},{"id":"development/build","path":"/docs/33.0.0/development/build","sidebar":"docs"},{"id":"development/contribute-to-docs","path":"/docs/33.0.0/development/contribute-to-docs","sidebar":"docs"},{"id":"development/experimental","path":"/docs/33.0.0/development/experimental","sidebar":"docs"},{"id":"development/extensions-contrib/aliyun-oss","path":"/docs/33.0.0/development/extensions-contrib/aliyun-oss"},{"id":"development/extensions-contrib/ambari-metrics-emitter","path":"/docs/33.0.0/development/extensions-contrib/ambari-metrics-emitter"},{"id":"development/extensions-contrib/cassandra","path":"/docs/33.0.0/development/extensions-contrib/cassandra"},{"id":"development/extensions-contrib/cloudfiles","path":"/docs/33.0.0/development/extensions-contrib/cloudfiles"},{"id":"development/extensions-contrib/compressed-big-decimal","path":"/docs/33.0.0/development/extensions-contrib/compressed-big-decimal"},{"id":"development/extensions-contrib/ddsketch-quantiles","path":"/docs/33.0.0/development/extensions-contrib/ddsketch-quantiles"},{"id":"development/extensions-contrib/delta-lake","path":"/docs/33.0.0/development/extensions-contrib/delta-lake"},{"id":"development/extensions-contrib/distinctcount","path":"/docs/33.0.0/development/extensions-contrib/distinctcount"},{"id":"development/extensions-contrib/druid-ranger-security","path":"/docs/33.0.0/development/extensions-contrib/druid-ranger-security"},{"id":"development/extensions-contrib/gce-extensions","path":"/docs/33.0.0/development/extensions-contrib/gce-extensions"},{"id":"development/extensions-contrib/graphite","path":"/docs/33.0.0/development/extensions-contrib/graphite"},{"id":"development/extensions-contrib/iceberg","path":"/docs/33.0.0/development/extensions-contrib/iceberg"},{"id":"development/extensions-contrib/influx","path":"/docs/33.0.0/development/extensions-contrib/influx"},{"id":"development/extensions-contrib/influxdb-emitter","path":"/docs/33.0.0/development/extensions-contrib/influxdb-emitter"},{"id":"development/extensions-contrib/kafka-emitter","path":"/docs/33.0.0/development/extensions-contrib/kafka-emitter"},{"id":"development/extensions-contrib/materialized-view","path":"/docs/33.0.0/development/extensions-contrib/materialized-view"},{"id":"development/extensions-contrib/momentsketch-quantiles","path":"/docs/33.0.0/development/extensions-contrib/momentsketch-quantiles"},{"id":"development/extensions-contrib/moving-average-query","path":"/docs/33.0.0/development/extensions-contrib/moving-average-query"},{"id":"development/extensions-contrib/opentsdb-emitter","path":"/docs/33.0.0/development/extensions-contrib/opentsdb-emitter"},{"id":"development/extensions-contrib/prometheus","path":"/docs/33.0.0/development/extensions-contrib/prometheus"},{"id":"development/extensions-contrib/rabbit-super-stream-injestion","path":"/docs/33.0.0/development/extensions-contrib/rabbit-super-stream-injestion"},{"id":"development/extensions-contrib/redis-cache","path":"/docs/33.0.0/development/extensions-contrib/redis-cache"},{"id":"development/extensions-contrib/spectator-histogram","path":"/docs/33.0.0/development/extensions-contrib/spectator-histogram"},{"id":"development/extensions-contrib/sqlserver","path":"/docs/33.0.0/development/extensions-contrib/sqlserver"},{"id":"development/extensions-contrib/statsd","path":"/docs/33.0.0/development/extensions-contrib/statsd"},{"id":"development/extensions-contrib/tdigestsketch-quantiles","path":"/docs/33.0.0/development/extensions-contrib/tdigestsketch-quantiles"},{"id":"development/extensions-contrib/thrift","path":"/docs/33.0.0/development/extensions-contrib/thrift"},{"id":"development/extensions-contrib/time-min-max","path":"/docs/33.0.0/development/extensions-contrib/time-min-max"},{"id":"development/extensions-core/approximate-histograms","path":"/docs/33.0.0/development/extensions-core/approximate-histograms"},{"id":"development/extensions-core/avro","path":"/docs/33.0.0/development/extensions-core/avro"},{"id":"development/extensions-core/azure","path":"/docs/33.0.0/development/extensions-core/azure"},{"id":"development/extensions-core/bloom-filter","path":"/docs/33.0.0/development/extensions-core/bloom-filter"},{"id":"development/extensions-core/catalog","path":"/docs/33.0.0/development/extensions-core/catalog"},{"id":"development/extensions-core/datasketches-extension","path":"/docs/33.0.0/development/extensions-core/datasketches-extension"},{"id":"development/extensions-core/datasketches-hll","path":"/docs/33.0.0/development/extensions-core/datasketches-hll"},{"id":"development/extensions-core/datasketches-kll","path":"/docs/33.0.0/development/extensions-core/datasketches-kll"},{"id":"development/extensions-core/datasketches-quantiles","path":"/docs/33.0.0/development/extensions-core/datasketches-quantiles"},{"id":"development/extensions-core/datasketches-theta","path":"/docs/33.0.0/development/extensions-core/datasketches-theta"},{"id":"development/extensions-core/datasketches-tuple","path":"/docs/33.0.0/development/extensions-core/datasketches-tuple"},{"id":"development/extensions-core/druid-aws-rds","path":"/docs/33.0.0/development/extensions-core/druid-aws-rds"},{"id":"development/extensions-core/druid-basic-security","path":"/docs/33.0.0/development/extensions-core/druid-basic-security"},{"id":"development/extensions-core/druid-kerberos","path":"/docs/33.0.0/development/extensions-core/druid-kerberos"},{"id":"development/extensions-core/druid-lookups","path":"/docs/33.0.0/development/extensions-core/druid-lookups"},{"id":"development/extensions-core/druid-pac4j","path":"/docs/33.0.0/development/extensions-core/druid-pac4j"},{"id":"development/extensions-core/examples","path":"/docs/33.0.0/development/extensions-core/examples"},{"id":"development/extensions-core/google","path":"/docs/33.0.0/development/extensions-core/google"},{"id":"development/extensions-core/hdfs","path":"/docs/33.0.0/development/extensions-core/hdfs"},{"id":"development/extensions-core/k8s-jobs","path":"/docs/33.0.0/development/extensions-core/k8s-jobs"},{"id":"development/extensions-core/kubernetes","path":"/docs/33.0.0/development/extensions-core/kubernetes"},{"id":"development/extensions-core/mysql","path":"/docs/33.0.0/development/extensions-core/mysql"},{"id":"development/extensions-core/orc","path":"/docs/33.0.0/development/extensions-core/orc"},{"id":"development/extensions-core/parquet","path":"/docs/33.0.0/development/extensions-core/parquet"},{"id":"development/extensions-core/postgresql","path":"/docs/33.0.0/development/extensions-core/postgresql"},{"id":"development/extensions-core/protobuf","path":"/docs/33.0.0/development/extensions-core/protobuf"},{"id":"development/extensions-core/s3","path":"/docs/33.0.0/development/extensions-core/s3"},{"id":"development/extensions-core/simple-client-sslcontext","path":"/docs/33.0.0/development/extensions-core/simple-client-sslcontext"},{"id":"development/extensions-core/stats","path":"/docs/33.0.0/development/extensions-core/stats"},{"id":"development/extensions-core/test-stats","path":"/docs/33.0.0/development/extensions-core/test-stats"},{"id":"development/javascript","path":"/docs/33.0.0/development/javascript","sidebar":"docs"},{"id":"development/modules","path":"/docs/33.0.0/development/modules","sidebar":"docs"},{"id":"development/overview","path":"/docs/33.0.0/development/overview","sidebar":"docs"},{"id":"development/versioning","path":"/docs/33.0.0/development/versioning","sidebar":"docs"},{"id":"ingestion/concurrent-append-replace","path":"/docs/33.0.0/ingestion/concurrent-append-replace","sidebar":"docs"},{"id":"ingestion/data-formats","path":"/docs/33.0.0/ingestion/data-formats","sidebar":"docs"},{"id":"ingestion/faq","path":"/docs/33.0.0/ingestion/faq","sidebar":"docs"},{"id":"ingestion/hadoop","path":"/docs/33.0.0/ingestion/hadoop","sidebar":"docs"},{"id":"ingestion/index","path":"/docs/33.0.0/ingestion/","sidebar":"docs"},{"id":"ingestion/ingestion-spec","path":"/docs/33.0.0/ingestion/ingestion-spec","sidebar":"docs"},{"id":"ingestion/input-sources","path":"/docs/33.0.0/ingestion/input-sources","sidebar":"docs"},{"id":"ingestion/kafka-ingestion","path":"/docs/33.0.0/ingestion/kafka-ingestion","sidebar":"docs"},{"id":"ingestion/kinesis-ingestion","path":"/docs/33.0.0/ingestion/kinesis-ingestion","sidebar":"docs"},{"id":"ingestion/native-batch","path":"/docs/33.0.0/ingestion/native-batch","sidebar":"docs"},{"id":"ingestion/native-batch-firehose","path":"/docs/33.0.0/ingestion/native-batch-firehose"},{"id":"ingestion/native-batch-simple-task","path":"/docs/33.0.0/ingestion/native-batch-simple-task"},{"id":"ingestion/partitioning","path":"/docs/33.0.0/ingestion/partitioning","sidebar":"docs"},{"id":"ingestion/rollup","path":"/docs/33.0.0/ingestion/rollup","sidebar":"docs"},{"id":"ingestion/schema-design","path":"/docs/33.0.0/ingestion/schema-design","sidebar":"docs"},{"id":"ingestion/schema-model","path":"/docs/33.0.0/ingestion/schema-model","sidebar":"docs"},{"id":"ingestion/standalone-realtime","path":"/docs/33.0.0/ingestion/standalone-realtime"},{"id":"ingestion/streaming","path":"/docs/33.0.0/ingestion/streaming","sidebar":"docs"},{"id":"ingestion/supervisor","path":"/docs/33.0.0/ingestion/supervisor","sidebar":"docs"},{"id":"ingestion/tasks","path":"/docs/33.0.0/ingestion/tasks","sidebar":"docs"},{"id":"ingestion/tranquility","path":"/docs/33.0.0/ingestion/tranquility"},{"id":"misc/papers-and-talks","path":"/docs/33.0.0/misc/papers-and-talks","sidebar":"docs"},{"id":"multi-stage-query/concepts","path":"/docs/33.0.0/multi-stage-query/concepts","sidebar":"docs"},{"id":"multi-stage-query/examples","path":"/docs/33.0.0/multi-stage-query/examples","sidebar":"docs"},{"id":"multi-stage-query/index","path":"/docs/33.0.0/multi-stage-query/","sidebar":"docs"},{"id":"multi-stage-query/known-issues","path":"/docs/33.0.0/multi-stage-query/known-issues","sidebar":"docs"},{"id":"multi-stage-query/reference","path":"/docs/33.0.0/multi-stage-query/reference","sidebar":"docs"},{"id":"multi-stage-query/security","path":"/docs/33.0.0/multi-stage-query/security","sidebar":"docs"},{"id":"operations/alerts","path":"/docs/33.0.0/operations/alerts","sidebar":"docs"},{"id":"operations/auth","path":"/docs/33.0.0/operations/auth"},{"id":"operations/auth-ldap","path":"/docs/33.0.0/operations/auth-ldap","sidebar":"docs"},{"id":"operations/basic-cluster-tuning","path":"/docs/33.0.0/operations/basic-cluster-tuning","sidebar":"docs"},{"id":"operations/clean-metadata-store","path":"/docs/33.0.0/operations/clean-metadata-store","sidebar":"docs"},{"id":"operations/deep-storage-migration","path":"/docs/33.0.0/operations/deep-storage-migration","sidebar":"docs"},{"id":"operations/dump-segment","path":"/docs/33.0.0/operations/dump-segment","sidebar":"docs"},{"id":"operations/durable-storage","path":"/docs/33.0.0/operations/durable-storage","sidebar":"docs"},{"id":"operations/dynamic-config-provider","path":"/docs/33.0.0/operations/dynamic-config-provider","sidebar":"docs"},{"id":"operations/export-metadata","path":"/docs/33.0.0/operations/export-metadata","sidebar":"docs"},{"id":"operations/high-availability","path":"/docs/33.0.0/operations/high-availability","sidebar":"docs"},{"id":"operations/http-compression","path":"/docs/33.0.0/operations/http-compression","sidebar":"docs"},{"id":"operations/insert-segment-to-db","path":"/docs/33.0.0/operations/insert-segment-to-db","sidebar":"docs"},{"id":"operations/java","path":"/docs/33.0.0/operations/java","sidebar":"docs"},{"id":"operations/kubernetes","path":"/docs/33.0.0/operations/kubernetes"},{"id":"operations/metadata-migration","path":"/docs/33.0.0/operations/metadata-migration","sidebar":"docs"},{"id":"operations/metrics","path":"/docs/33.0.0/operations/metrics","sidebar":"docs"},{"id":"operations/migrate-from-firehose","path":"/docs/33.0.0/operations/migrate-from-firehose","sidebar":"docs"},{"id":"operations/mixed-workloads","path":"/docs/33.0.0/operations/mixed-workloads","sidebar":"docs"},{"id":"operations/other-hadoop","path":"/docs/33.0.0/operations/other-hadoop","sidebar":"docs"},{"id":"operations/password-provider","path":"/docs/33.0.0/operations/password-provider","sidebar":"docs"},{"id":"operations/pull-deps","path":"/docs/33.0.0/operations/pull-deps","sidebar":"docs"},{"id":"operations/request-logging","path":"/docs/33.0.0/operations/request-logging","sidebar":"docs"},{"id":"operations/reset-cluster","path":"/docs/33.0.0/operations/reset-cluster","sidebar":"docs"},{"id":"operations/rolling-updates","path":"/docs/33.0.0/operations/rolling-updates","sidebar":"docs"},{"id":"operations/rule-configuration","path":"/docs/33.0.0/operations/rule-configuration","sidebar":"docs"},{"id":"operations/security-overview","path":"/docs/33.0.0/operations/security-overview","sidebar":"docs"},{"id":"operations/security-user-auth","path":"/docs/33.0.0/operations/security-user-auth","sidebar":"docs"},{"id":"operations/segment-optimization","path":"/docs/33.0.0/operations/segment-optimization","sidebar":"docs"},{"id":"operations/single-server","path":"/docs/33.0.0/operations/single-server","sidebar":"docs"},{"id":"operations/tls-support","path":"/docs/33.0.0/operations/tls-support","sidebar":"docs"},{"id":"operations/use_sbt_to_build_fat_jar","path":"/docs/33.0.0/operations/use_sbt_to_build_fat_jar","sidebar":"docs"},{"id":"operations/web-console","path":"/docs/33.0.0/operations/web-console","sidebar":"docs"},{"id":"querying/aggregations","path":"/docs/33.0.0/querying/aggregations","sidebar":"docs"},{"id":"querying/arrays","path":"/docs/33.0.0/querying/arrays","sidebar":"docs"},{"id":"querying/caching","path":"/docs/33.0.0/querying/caching","sidebar":"docs"},{"id":"querying/datasource","path":"/docs/33.0.0/querying/datasource","sidebar":"docs"},{"id":"querying/datasourcemetadataquery","path":"/docs/33.0.0/querying/datasourcemetadataquery","sidebar":"docs"},{"id":"querying/dimensionspecs","path":"/docs/33.0.0/querying/dimensionspecs","sidebar":"docs"},{"id":"querying/filters","path":"/docs/33.0.0/querying/filters","sidebar":"docs"},{"id":"querying/geo","path":"/docs/33.0.0/querying/geo","sidebar":"docs"},{"id":"querying/granularities","path":"/docs/33.0.0/querying/granularities","sidebar":"docs"},{"id":"querying/groupbyquery","path":"/docs/33.0.0/querying/groupbyquery","sidebar":"docs"},{"id":"querying/having","path":"/docs/33.0.0/querying/having","sidebar":"docs"},{"id":"querying/hll-old","path":"/docs/33.0.0/querying/hll-old"},{"id":"querying/joins","path":"/docs/33.0.0/querying/joins","sidebar":"docs"},{"id":"querying/kafka-extraction-namespace","path":"/docs/33.0.0/querying/kafka-extraction-namespace","sidebar":"docs"},{"id":"querying/limitspec","path":"/docs/33.0.0/querying/limitspec","sidebar":"docs"},{"id":"querying/lookups","path":"/docs/33.0.0/querying/lookups","sidebar":"docs"},{"id":"querying/lookups-cached-global","path":"/docs/33.0.0/querying/lookups-cached-global","sidebar":"docs"},{"id":"querying/math-expr","path":"/docs/33.0.0/querying/math-expr","sidebar":"docs"},{"id":"querying/multi-value-dimensions","path":"/docs/33.0.0/querying/multi-value-dimensions","sidebar":"docs"},{"id":"querying/multitenancy","path":"/docs/33.0.0/querying/multitenancy","sidebar":"docs"},{"id":"querying/nested-columns","path":"/docs/33.0.0/querying/nested-columns","sidebar":"docs"},{"id":"querying/post-aggregations","path":"/docs/33.0.0/querying/post-aggregations","sidebar":"docs"},{"id":"querying/query-context","path":"/docs/33.0.0/querying/query-context","sidebar":"docs"},{"id":"querying/query-deep-storage","path":"/docs/33.0.0/querying/query-deep-storage","sidebar":"docs"},{"id":"querying/query-execution","path":"/docs/33.0.0/querying/query-execution","sidebar":"docs"},{"id":"querying/query-processing","path":"/docs/33.0.0/querying/query-processing","sidebar":"docs"},{"id":"querying/querying","path":"/docs/33.0.0/querying/","sidebar":"docs"},{"id":"querying/scan-query","path":"/docs/33.0.0/querying/scan-query","sidebar":"docs"},{"id":"querying/searchquery","path":"/docs/33.0.0/querying/searchquery","sidebar":"docs"},{"id":"querying/segmentmetadataquery","path":"/docs/33.0.0/querying/segmentmetadataquery","sidebar":"docs"},{"id":"querying/select-query","path":"/docs/33.0.0/querying/select-query"},{"id":"querying/sorting-orders","path":"/docs/33.0.0/querying/sorting-orders","sidebar":"docs"},{"id":"querying/sql","path":"/docs/33.0.0/querying/sql","sidebar":"docs"},{"id":"querying/sql-aggregations","path":"/docs/33.0.0/querying/sql-aggregations","sidebar":"docs"},{"id":"querying/sql-array-functions","path":"/docs/33.0.0/querying/sql-array-functions","sidebar":"docs"},{"id":"querying/sql-data-types","path":"/docs/33.0.0/querying/sql-data-types","sidebar":"docs"},{"id":"querying/sql-functions","path":"/docs/33.0.0/querying/sql-functions","sidebar":"docs"},{"id":"querying/sql-json-functions","path":"/docs/33.0.0/querying/sql-json-functions","sidebar":"docs"},{"id":"querying/sql-metadata-tables","path":"/docs/33.0.0/querying/sql-metadata-tables","sidebar":"docs"},{"id":"querying/sql-multivalue-string-functions","path":"/docs/33.0.0/querying/sql-multivalue-string-functions","sidebar":"docs"},{"id":"querying/sql-operators","path":"/docs/33.0.0/querying/sql-operators","sidebar":"docs"},{"id":"querying/sql-query-context","path":"/docs/33.0.0/querying/sql-query-context","sidebar":"docs"},{"id":"querying/sql-scalar","path":"/docs/33.0.0/querying/sql-scalar","sidebar":"docs"},{"id":"querying/sql-translation","path":"/docs/33.0.0/querying/sql-translation","sidebar":"docs"},{"id":"querying/sql-window-functions","path":"/docs/33.0.0/querying/sql-window-functions","sidebar":"docs"},{"id":"querying/timeboundaryquery","path":"/docs/33.0.0/querying/timeboundaryquery","sidebar":"docs"},{"id":"querying/timeseriesquery","path":"/docs/33.0.0/querying/timeseriesquery","sidebar":"docs"},{"id":"querying/tips-good-queries","path":"/docs/33.0.0/querying/tips-good-queries","sidebar":"docs"},{"id":"querying/topnmetricspec","path":"/docs/33.0.0/querying/topnmetricspec","sidebar":"docs"},{"id":"querying/topnquery","path":"/docs/33.0.0/querying/topnquery","sidebar":"docs"},{"id":"querying/troubleshooting","path":"/docs/33.0.0/querying/troubleshooting","sidebar":"docs"},{"id":"querying/using-caching","path":"/docs/33.0.0/querying/using-caching","sidebar":"docs"},{"id":"querying/virtual-columns","path":"/docs/33.0.0/querying/virtual-columns","sidebar":"docs"},{"id":"release-info/migr-ansi-sql-null","path":"/docs/33.0.0/release-info/migr-ansi-sql-null","sidebar":"docs"},{"id":"release-info/migr-front-coded-dict","path":"/docs/33.0.0/release-info/migr-front-coded-dict","sidebar":"docs"},{"id":"release-info/migr-mvd-array","path":"/docs/33.0.0/release-info/migr-mvd-array","sidebar":"docs"},{"id":"release-info/migr-subquery-limit","path":"/docs/33.0.0/release-info/migr-subquery-limit","sidebar":"docs"},{"id":"release-info/migration-guide","path":"/docs/33.0.0/release-info/migration-guide","sidebar":"docs"},{"id":"release-info/release-notes","path":"/docs/33.0.0/release-info/release-notes","sidebar":"docs"},{"id":"release-info/upgrade-notes","path":"/docs/33.0.0/release-info/upgrade-notes","sidebar":"docs"},{"id":"tutorials/cluster","path":"/docs/33.0.0/tutorials/cluster","sidebar":"docs"},{"id":"tutorials/docker","path":"/docs/33.0.0/tutorials/docker","sidebar":"docs"},{"id":"tutorials/index","path":"/docs/33.0.0/tutorials/","sidebar":"docs"},{"id":"tutorials/tutorial-append-data","path":"/docs/33.0.0/tutorials/tutorial-append-data","sidebar":"docs"},{"id":"tutorials/tutorial-batch","path":"/docs/33.0.0/tutorials/tutorial-batch"},{"id":"tutorials/tutorial-batch-hadoop","path":"/docs/33.0.0/tutorials/tutorial-batch-hadoop","sidebar":"docs"},{"id":"tutorials/tutorial-batch-native","path":"/docs/33.0.0/tutorials/tutorial-batch-native"},{"id":"tutorials/tutorial-compaction","path":"/docs/33.0.0/tutorials/tutorial-compaction","sidebar":"docs"},{"id":"tutorials/tutorial-delete-data","path":"/docs/33.0.0/tutorials/tutorial-delete-data","sidebar":"docs"},{"id":"tutorials/tutorial-extern","path":"/docs/33.0.0/tutorials/tutorial-extern","sidebar":"docs"},{"id":"tutorials/tutorial-ingestion-spec","path":"/docs/33.0.0/tutorials/tutorial-ingestion-spec","sidebar":"docs"},{"id":"tutorials/tutorial-jdbc","path":"/docs/33.0.0/tutorials/tutorial-jdbc","sidebar":"docs"},{"id":"tutorials/tutorial-kafka","path":"/docs/33.0.0/tutorials/tutorial-kafka","sidebar":"docs"},{"id":"tutorials/tutorial-kerberos-hadoop","path":"/docs/33.0.0/tutorials/tutorial-kerberos-hadoop","sidebar":"docs"},{"id":"tutorials/tutorial-latest-by","path":"/docs/33.0.0/tutorials/tutorial-latest-by","sidebar":"docs"},{"id":"tutorials/tutorial-msq-convert-spec","path":"/docs/33.0.0/tutorials/tutorial-msq-convert-spec","sidebar":"docs"},{"id":"tutorials/tutorial-msq-extern","path":"/docs/33.0.0/tutorials/tutorial-msq-extern","sidebar":"docs"},{"id":"tutorials/tutorial-query","path":"/docs/33.0.0/tutorials/tutorial-query","sidebar":"docs"},{"id":"tutorials/tutorial-query-deep-storage","path":"/docs/33.0.0/tutorials/tutorial-query-deep-storage","sidebar":"docs"},{"id":"tutorials/tutorial-retention","path":"/docs/33.0.0/tutorials/tutorial-retention","sidebar":"docs"},{"id":"tutorials/tutorial-rollup","path":"/docs/33.0.0/tutorials/tutorial-rollup","sidebar":"docs"},{"id":"tutorials/tutorial-sketches-theta","path":"/docs/33.0.0/tutorials/tutorial-sketches-theta","sidebar":"docs"},{"id":"tutorials/tutorial-sql-null","path":"/docs/33.0.0/tutorials/tutorial-sql-null"},{"id":"tutorials/tutorial-sql-query-view","path":"/docs/33.0.0/tutorials/tutorial-sql-query-view","sidebar":"docs"},{"id":"tutorials/tutorial-transform","path":"/docs/33.0.0/tutorials/tutorial-transform","sidebar":"docs"},{"id":"tutorials/tutorial-unnest-arrays","path":"/docs/33.0.0/tutorials/tutorial-unnest-arrays","sidebar":"docs"},{"id":"tutorials/tutorial-update-data","path":"/docs/33.0.0/tutorials/tutorial-update-data","sidebar":"docs"}],"draftIds":[],"sidebars":{"docs":{"link":{"path":"/docs/33.0.0/design/","label":"design/index"}}}}],"breadcrumbs":true}},"docusaurus-lunr-search":{"default":{"fileNames":{"searchDoc":"search-doc-1745915611425.json","lunrIndex":"lunr-index-1745915611425.json"}}}}'),i=JSON.parse('{"defaultLocale":"en","locales":["en"],"path":"i18n","currentLocale":"en","localeConfigs":{"en":{"label":"English","direction":"ltr","htmlLang":"en","calendar":"gregory","path":"en"}}}');var s=n(22654);const c=JSON.parse('{"docusaurusVersion":"3.7.0","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"3.7.0"},"docusaurus-plugin-content-blog":{"type":"package","name":"@docusaurus/plugin-content-blog","version":"3.7.0"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"3.7.0"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"3.7.0"},"docusaurus-plugin-svgr":{"type":"package","name":"@docusaurus/plugin-svgr","version":"3.7.0"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"3.7.0"},"docusaurus-plugin-client-redirects":{"type":"package","name":"@docusaurus/plugin-client-redirects","version":"3.7.0"},"docusaurus-lunr-search":{"type":"package","name":"docusaurus-lunr-search","version":"3.6.0"},"docusaurus-theme-mermaid":{"type":"package","name":"@docusaurus/theme-mermaid","version":"3.7.0"}}}');var l=n(74848),u={siteConfig:o.default,siteMetadata:c,globalData:a,i18n:i,codeTranslations:s},d=r.createContext(u);function p(e){var t=e.children;return(0,l.jsx)(d.Provider,{value:u,children:t})}},48912:(e,t,n)=>{"use strict";n.d(t,{A:()=>p});n(96540);var r=n(53259),o=n.n(r),a=n(84054);const i={"01a84bd8":[function(){return n.e(1355).then(n.bind(n,106))},"@site/docs/33.0.0/development/extensions-contrib/opentsdb-emitter.md",106],"022e6ba5":[function(){return n.e(3272).then(n.bind(n,17992))},"@site/docs/33.0.0/querying/lookups-cached-global.md",17992],"03197752":[function(){return n.e(2445).then(n.bind(n,23363))},"@site/docs/33.0.0/querying/query-execution.md",23363],"03cb1c07":[function(){return n.e(5120).then(n.bind(n,26587))},"@site/docs/33.0.0/ingestion/tasks.md",26587],"0a6cefb4":[function(){return n.e(7012).then(n.bind(n,95963))},"@site/docs/33.0.0/tutorials/tutorial-jdbc.md",95963],"0bbcab75":[function(){return n.e(957).then(n.bind(n,13195))},"@site/docs/33.0.0/querying/sql-json-functions.md",13195],"0de78727":[function(){return n.e(8525).then(n.bind(n,38698))},"@site/docs/33.0.0/operations/high-availability.md",38698],"0ee1e33e":[function(){return n.e(9504).then(n.bind(n,42635))},"@site/docs/33.0.0/development/modules.md",42635],"0fd5f7a5":[function(){return n.e(6127).then(n.bind(n,57224))},"@site/docs/33.0.0/development/extensions-core/datasketches-tuple.md",57224],"0fed56b0":[function(){return n.e(2625).then(n.bind(n,9168))},"@site/docs/33.0.0/data-management/delete.md",9168],"101824a8":[function(){return Promise.all([n.e(1869),n.e(2894)]).then(n.bind(n,15777))},"@site/docs/33.0.0/release-info/migr-ansi-sql-null.md",15777],"10788ceb":[function(){return n.e(6099).then(n.bind(n,64324))},"@site/docs/33.0.0/development/extensions-contrib/influxdb-emitter.md",64324],"1176fa22":[function(){return n.e(6533).then(n.bind(n,57676))},"@site/docs/33.0.0/data-management/automatic-compaction.md",57676],"118a7f71":[function(){return n.e(5751).then(n.bind(n,12100))},"@site/docs/33.0.0/development/extensions-contrib/ambari-metrics-emitter.md",12100],"12e0d2c9":[function(){return n.e(8967).then(n.bind(n,40229))},"@site/docs/33.0.0/development/extensions-core/simple-client-sslcontext.md",40229],"1499f006":[function(){return n.e(3214).then(n.bind(n,87638))},"@site/docs/33.0.0/multi-stage-query/examples.md",87638],15457122:[function(){return n.e(2608).then(n.bind(n,79502))},"@site/docs/33.0.0/development/extensions-core/protobuf.md",79502],17896441:[function(){return Promise.all([n.e(1869),n.e(6749),n.e(8401)]).then(n.bind(n,79394))},"@theme/DocItem",79394],"17e0eb4d":[function(){return n.e(4329).then(n.bind(n,79630))},"@site/docs/33.0.0/release-info/upgrade-notes.md",79630],"19c5006b":[function(){return n.e(829).then(n.bind(n,89305))},"@site/docs/33.0.0/querying/scan-query.md",89305],"1c91270f":[function(){return n.e(2782).then(n.bind(n,14415))},"@site/docs/33.0.0/operations/metadata-migration.md",14415],"1c9d13d1":[function(){return n.e(7229).then(n.bind(n,16601))},"@site/docs/33.0.0/ingestion/partitioning.md",16601],"1ca5a6cc":[function(){return n.e(2202).then(n.bind(n,25944))},"@site/docs/33.0.0/multi-stage-query/concepts.md",25944],"1cdc7307":[function(){return n.e(2177).then(n.bind(n,6798))},"@site/docs/33.0.0/operations/other-hadoop.md",6798],"1dfa5a85":[function(){return n.e(6424).then(n.bind(n,8710))},"@site/docs/33.0.0/multi-stage-query/known-issues.md",8710],"1e418ae8":[function(){return n.e(2998).then(n.bind(n,38885))},"@site/docs/33.0.0/data-management/manual-compaction.md",38885],"1f391b9e":[function(){return Promise.all([n.e(1869),n.e(6749),n.e(6061)]).then(n.bind(n,39181))},"@theme/MDXPage",39181],"1fc0e205":[function(){return n.e(3727).then(n.bind(n,97128))},"@site/docs/33.0.0/tutorials/tutorial-append-data.md",97128],"1fcf7845":[function(){return n.e(405).then(n.bind(n,40974))},"@site/docs/33.0.0/querying/post-aggregations.md",40974],"1fd605f7":[function(){return n.e(4084).then(n.bind(n,9963))},"@site/src/pages/faq.md",9963],"20588fde":[function(){return n.e(2089).then(n.bind(n,332))},"@site/docs/33.0.0/querying/timeseriesquery.md",332],"2078bf5c":[function(){return n.e(8860).then(n.bind(n,14634))},"@site/src/pages/community/index.mdx",14634],"21689acc":[function(){return n.e(8986).then(n.bind(n,2629))},"@site/docs/33.0.0/querying/sql-multivalue-string-functions.md",2629],"216e93a8":[function(){return n.e(9256).then(n.bind(n,63902))},"@site/docs/33.0.0/misc/papers-and-talks.md",63902],"22ff1905":[function(){return n.e(9120).then(n.bind(n,66988))},"@site/docs/33.0.0/tutorials/tutorial-sketches-theta.md",66988],"232c70bd":[function(){return n.e(1904).then(n.bind(n,90398))},"@site/docs/33.0.0/comparisons/druid-vs-redshift.md",90398],"232ed933":[function(){return n.e(1698).then(n.bind(n,1309))},"@site/docs/33.0.0/operations/password-provider.md",1309],"238d28ae":[function(){return n.e(5834).then(n.bind(n,40541))},"@site/docs/33.0.0/comparisons/druid-vs-spark.md",40541],"23b3e68f":[function(){return n.e(1148).then(n.bind(n,25204))},"@site/docs/33.0.0/operations/request-logging.md",25204],"2698d718":[function(){return n.e(1504).then(n.bind(n,1583))},"@site/docs/33.0.0/configuration/index.md",1583],"26ca8a81":[function(){return n.e(3615).then(n.bind(n,47686))},"@site/docs/33.0.0/design/extensions-contrib/dropwizard.md",47686],"277b6e4b":[function(){return n.e(1612).then(n.bind(n,41539))},"@site/docs/33.0.0/tutorials/tutorial-batch.md",41539],"291b0a2f":[function(){return n.e(1708).then(n.bind(n,84124))},"@site/docs/33.0.0/release-info/release-notes.md",84124],"29b325cd":[function(){return n.e(4511).then(n.bind(n,23694))},"@site/docs/33.0.0/operations/reset-cluster.md",23694],"29ee7abe":[function(){return n.e(3941).then(n.bind(n,19869))},"@site/docs/33.0.0/configuration/extensions.md",19869],"2a0754ef":[function(){return n.e(4369).then(n.bind(n,25682))},"@site/docs/33.0.0/development/extensions-contrib/compressed-big-decimal.md",25682],"2a6b8281":[function(){return n.e(6855).then(n.bind(n,10177))},"@site/docs/33.0.0/development/extensions-contrib/redis-cache.md",10177],"2abb57e2":[function(){return n.e(8613).then(n.bind(n,39162))},"@site/docs/33.0.0/development/extensions-contrib/delta-lake.md",39162],"2b646fc7":[function(){return n.e(3307).then(n.bind(n,91899))},"@site/docs/33.0.0/ingestion/native-batch.md",91899],"2b67e204":[function(){return n.e(8203).then(n.bind(n,77275))},"@site/docs/33.0.0/operations/metrics.md",77275],"2b6dba7a":[function(){return n.e(3734).then(n.bind(n,9923))},"@site/docs/33.0.0/api-reference/lookups-api.md",9923],"2bc9ab0c":[function(){return n.e(7081).then(n.bind(n,4214))},"@site/docs/33.0.0/design/architecture.md",4214],"2d1c0688":[function(){return Promise.all([n.e(1869),n.e(5067)]).then(n.bind(n,32257))},"@site/docs/33.0.0/api-reference/json-querying-api.md",32257],"2d415f09":[function(){return n.e(1884).then(n.bind(n,93322))},"@site/docs/33.0.0/development/extensions-contrib/spectator-histogram.md",93322],"2e7cf532":[function(){return Promise.all([n.e(1869),n.e(6605)]).then(n.bind(n,40536))},"@site/docs/33.0.0/api-reference/supervisor-api.md",40536],"309d9b59":[function(){return n.e(5938).then(n.bind(n,76024))},"@site/docs/33.0.0/querying/sql-array-functions.md",76024],"30bb7636":[function(){return n.e(2934).then(n.bind(n,57802))},"@site/docs/33.0.0/querying/caching.md",57802],"33c0d14a":[function(){return n.e(6776).then(n.bind(n,58682))},"@site/docs/33.0.0/querying/sql-aggregations.md",58682],"33cc9a8d":[function(){return n.e(1725).then(n.bind(n,30103))},"@site/docs/33.0.0/tutorials/tutorial-query-deep-storage.md",30103],"354ffcb1":[function(){return n.e(4871).then(n.bind(n,2608))},"@site/docs/33.0.0/development/extensions-contrib/graphite.md",2608],"35b2da51":[function(){return n.e(8008).then(n.bind(n,89688))},"@site/docs/33.0.0/development/extensions-contrib/distinctcount.md",89688],"35e98521":[function(){return n.e(8827).then(n.bind(n,66229))},"@site/docs/33.0.0/operations/web-console.md",66229],"360b5979":[function(){return n.e(5376).then(n.bind(n,36128))},"@site/docs/33.0.0/querying/sql-functions.md",36128],"363d556b":[function(){return n.e(2747).then(n.bind(n,88405))},"@site/docs/33.0.0/multi-stage-query/reference.md",88405],"36a1aa83":[function(){return n.e(3083).then(n.bind(n,47422))},"@site/docs/33.0.0/tutorials/tutorial-sql-null.md",47422],"3703ddd8":[function(){return n.e(1378).then(n.bind(n,99718))},"@site/docs/33.0.0/querying/sql-scalar.md",99718],"37258aee":[function(){return Promise.all([n.e(1869),n.e(8289)]).then(n.bind(n,10528))},"@site/docs/33.0.0/tutorials/tutorial-extern.md",10528],"3754119d":[function(){return n.e(7691).then(n.bind(n,66665))},"@site/docs/33.0.0/development/extensions-contrib/aliyun-oss-extensions.md",66665],"37b23687":[function(){return n.e(9877).then(n.bind(n,28867))},"@site/docs/33.0.0/querying/query-processing.md",28867],"38373ae3":[function(){return n.e(8740).then(n.bind(n,90267))},"@site/docs/33.0.0/development/build.md",90267],"3886cfb0":[function(){return n.e(7969).then(n.bind(n,55210))},"@site/docs/33.0.0/querying/filters.md",55210],"3a1c1f1e":[function(){return n.e(9420).then(n.bind(n,39761))},"@site/docs/33.0.0/querying/topnmetricspec.md",39761],"3aeac7d0":[function(){return n.e(3007).then(n.bind(n,51148))},"@site/docs/33.0.0/development/extensions-core/approximate-histograms.md",51148],"3e16dffc":[function(){return n.e(6897).then(n.bind(n,29285))},"@site/docs/33.0.0/querying/math-expr.md",29285],"3f99070e":[function(){return n.e(5484).then(n.bind(n,81422))},"@site/docs/33.0.0/ingestion/index.md",81422],"4092cefd":[function(){return n.e(2348).then(n.bind(n,23253))},"@site/docs/33.0.0/release-info/migr-subquery-limit.md",23253],"40b888de":[function(){return n.e(4160).then(n.bind(n,43804))},"@site/docs/33.0.0/operations/tls-support.md",43804],"41668ce9":[function(){return n.e(567).then(n.bind(n,42197))},"@site/docs/33.0.0/development/extensions-core/datasketches-quantiles.md",42197],"437a3cc2":[function(){return n.e(769).then(n.bind(n,56431))},"@site/docs/33.0.0/development/extensions-core/avro.md",56431],"43f3d401":[function(){return n.e(7880).then(n.bind(n,40388))},"@site/docs/33.0.0/querying/aggregations.md",40388],"444ba3f7":[function(){return n.e(9231).then(n.bind(n,77724))},"@site/docs/33.0.0/operations/rolling-updates.md",77724],"44efccac":[function(){return n.e(7088).then(n.bind(n,95495))},"@site/docs/33.0.0/tutorials/cluster.md",95495],"45f70177":[function(){return n.e(1716).then(n.bind(n,44518))},"@site/docs/33.0.0/querying/sql-translation.md",44518],"46b67ff8":[function(){return n.e(7440).then(n.bind(n,59937))},"@site/docs/33.0.0/tutorials/tutorial-transform.md",59937],"488704ec":[function(){return n.e(6772).then(n.bind(n,17045))},"@site/docs/33.0.0/operations/alerts.md",17045],"48e4974a":[function(){return n.e(5681).then(n.bind(n,49720))},"@site/docs/33.0.0/ingestion/standalone-realtime.md",49720],49212431:[function(){return n.e(5287).then(n.bind(n,45309))},"@site/docs/33.0.0/operations/auth.md",45309],"49ce5819":[function(){return n.e(1543).then(n.bind(n,72e3))},"@site/docs/33.0.0/operations/single-server.md",72e3],"4f475ab5":[function(){return n.e(4119).then(n.bind(n,92576))},"@site/docs/33.0.0/design/storage.md",92576],"50eaa9c3":[function(){return n.e(4274).then(n.bind(n,26267))},"@site/docs/33.0.0/development/extensions-core/bloom-filter.md",26267],"50f9674b":[function(){return n.e(2340).then(n.bind(n,65494))},"@site/docs/33.0.0/configuration/logging.md",65494],"516ef4aa":[function(){return n.e(9518).then(n.bind(n,22319))},"@site/docs/33.0.0/querying/joins.md",22319],"51aa4f25":[function(){return n.e(9714).then(n.bind(n,29258))},"@site/docs/33.0.0/comparisons/druid-vs-elasticsearch.md",29258],52366773:[function(){return n.e(6102).then(n.bind(n,31468))},"@site/docs/33.0.0/tutorials/tutorial-sql-query-view.md",31468],"530ce0e2":[function(){return n.e(4930).then(n.bind(n,7117))},"@site/docs/33.0.0/tutorials/tutorial-msq-extern.md",7117],"530f80ac":[function(){return Promise.all([n.e(1869),n.e(7145)]).then(n.bind(n,99437))},"@site/docs/33.0.0/api-reference/automatic-compaction-api.md",99437],"540dd3d1":[function(){return n.e(2954).then(n.bind(n,4938))},"@site/docs/33.0.0/ingestion/kafka-ingestion.md",4938],"5484c6ae":[function(){return n.e(4081).then(n.bind(n,48799))},"@site/docs/33.0.0/querying/hll-old.md",48799],"5529c840":[function(){return n.e(8463).then(n.bind(n,3228))},"@site/docs/33.0.0/operations/migrate-from-firehose-ingestion.md",3228],"56b67ab5":[function(){return n.e(4837).then(n.bind(n,43642))},"@site/docs/33.0.0/ingestion/supervisor.md",43642],"57b07083":[function(){return n.e(8651).then(n.bind(n,3495))},"@site/docs/33.0.0/development/extensions-contrib/statsd.md",3495],"59859d0e":[function(){return n.e(3630).then(n.bind(n,58964))},"@site/docs/33.0.0/api-reference/api-reference.md",58964],"59ebc66e":[function(){return n.e(5260).then(n.bind(n,92286))},"@site/docs/33.0.0/querying/dimensionspecs.md",92286],"5a766ab7":[function(){return n.e(5372).then(n.bind(n,22714))},"@site/docs/33.0.0/development/extensions-core/druid-lookups.md",22714],"5b55a31e":[function(){return n.e(2490).then(n.bind(n,37192))},"@site/src/pages/licensing.md",37192],"5bcd0a3f":[function(){return n.e(2529).then(n.bind(n,49416))},"@site/src/pages/technology.md",49416],"5e95c892":[function(){return n.e(9647).then(n.bind(n,18122))},"@theme/DocsRoot",18122],"5e9f5e1a":[function(){return Promise.resolve().then(n.bind(n,4784))},"@generated/docusaurus.config",4784],"602c1fa2":[function(){return n.e(3184).then(n.bind(n,93306))},"@site/docs/33.0.0/operations/http-compression.md",93306],"612620e1":[function(){return n.e(1084).then(n.bind(n,63873))},"@site/docs/33.0.0/design/deep-storage.md",63873],"61777c14":[function(){return Promise.all([n.e(1869),n.e(39)]).then(n.bind(n,7678))},"@site/docs/33.0.0/api-reference/service-status-api.md",7678],"64f0a7c0":[function(){return Promise.all([n.e(1869),n.e(3386)]).then(n.bind(n,59432))},"@site/docs/33.0.0/api-reference/data-management-api.md",59432],"64fa7a91":[function(){return n.e(2924).then(n.bind(n,65650))},"@site/docs/33.0.0/development/extensions-contrib/time-min-max.md",65650],"65a8d28c":[function(){return n.e(3970).then(n.bind(n,71049))},"@site/docs/33.0.0/operations/mixed-workloads.md",71049],"65cf72c0":[function(){return n.e(8793).then(n.bind(n,60900))},"@site/docs/33.0.0/operations/use_sbt_to_build_fat_jar.md",60900],"66673e94":[function(){return n.e(5837).then(n.bind(n,78208))},"@site/docs/33.0.0/development/extensions-contrib/momentsketch-quantiles.md",78208],"667406a6":[function(){return n.e(9553).then(n.bind(n,90227))},"@site/docs/33.0.0/tutorials/tutorial-delete-data.md",90227],"66d07c60":[function(){return n.e(2839).then(n.bind(n,38726))},"@site/docs/33.0.0/tutorials/tutorial-kerberos-hadoop.md",38726],"66e9b9cf":[function(){return n.e(569).then(n.bind(n,17754))},"@site/docs/33.0.0/operations/security-overview.md",17754],"675afb26":[function(){return n.e(7900).then(n.bind(n,87090))},"@site/docs/33.0.0/development/extensions-contrib/rabbit-stream-ingestion.md",87090],"67c1f944":[function(){return n.e(6425).then(n.bind(n,4143))},"@site/docs/33.0.0/development/extensions-core/mysql.md",4143],"680728b2":[function(){return n.e(9332).then(n.bind(n,27104))},"@site/docs/33.0.0/querying/granularities.md",27104],"68cabb9e":[function(){return n.e(4579).then(n.bind(n,55805))},"@site/docs/33.0.0/querying/having.md",55805],"694a9a02":[function(){return n.e(1993).then(n.bind(n,35721))},"@site/docs/33.0.0/development/extensions-core/s3.md",35721],"699e79d4":[function(){return n.e(7230).then(n.bind(n,54716))},"@site/docs/33.0.0/comparisons/druid-vs-sql-on-hadoop.md",54716],"69b2b51e":[function(){return n.e(4521).then(n.bind(n,24872))},"@site/docs/33.0.0/querying/querying.md",24872],"6bb76d59":[function(){return n.e(6182).then(n.bind(n,58518))},"@site/docs/33.0.0/operations/insert-segment-to-db.md",58518],"6c852c51":[function(){return Promise.all([n.e(1869),n.e(8292)]).then(n.bind(n,52266))},"@site/docs/33.0.0/ingestion/kinesis-ingestion.md",52266],"6ee8ad46":[function(){return n.e(462).then(n.bind(n,55671))},"@site/docs/33.0.0/operations/dump-segment.md",55671],"6f1b7fd8":[function(){return n.e(7741).then(n.bind(n,37918))},"@site/docs/33.0.0/design/middlemanager.md",37918],"6fa1f68d":[function(){return n.e(1921).then(n.bind(n,90364))},"@site/docs/33.0.0/release-info/migration-guide.md",90364],"6fcc798c":[function(){return n.e(4849).then(n.bind(n,60527))},"@site/docs/33.0.0/tutorials/tutorial-ingestion-spec.md",60527],71946596:[function(){return n.e(8690).then(n.bind(n,82124))},"@site/docs/33.0.0/design/segments.md",82124],"71adeb30":[function(){return n.e(9684).then(n.bind(n,66165))},"@site/docs/33.0.0/data-management/index.md",66165],"75ba26c3":[function(){return Promise.all([n.e(1869),n.e(9994)]).then(n.bind(n,64946))},"@site/docs/33.0.0/api-reference/sql-ingestion-api.md",64946],"75ec7680":[function(){return n.e(9944).then(n.bind(n,60760))},"@site/docs/33.0.0/development/versioning.md",60760],"7671dc5d":[function(){return n.e(5960).then(n.bind(n,97550))},"@site/docs/33.0.0/development/extensions-core/druid-aws-rds.md",97550],"7783fc34":[function(){return Promise.all([n.e(1869),n.e(7066)]).then(n.bind(n,93511))},"@site/docs/33.0.0/api-reference/dynamic-configuration-api.md",93511],"77d0a584":[function(){return n.e(6947).then(n.bind(n,39265))},"@site/docs/33.0.0/querying/sql-metadata-tables.md",39265],"77d20eda":[function(){return n.e(3671).then(n.bind(n,86496))},"@site/docs/33.0.0/ingestion/rollup.md",86496],"78d7f6eb":[function(){return n.e(2396).then(n.bind(n,18346))},"@site/docs/33.0.0/development/javascript.md",18346],"796894a4":[function(){return n.e(8057).then(n.bind(n,49199))},"@site/docs/33.0.0/development/extensions-core/kubernetes.md",49199],"79b16975":[function(){return n.e(1699).then(n.bind(n,29407))},"@site/docs/33.0.0/release-info/migr-mvd-array.md",29407],"7b377e55":[function(){return Promise.all([n.e(1869),n.e(744)]).then(n.bind(n,75701))},"@site/docs/33.0.0/querying/nested-columns.md",75701],"7bbda011":[function(){return n.e(2783).then(n.bind(n,27089))},"@site/docs/33.0.0/development/extensions-contrib/materialized-view.md",27089],"7cce3d16":[function(){return n.e(8809).then(n.bind(n,91297))},"@site/docs/33.0.0/development/extensions-contrib/cassandra.md",91297],"7efe50c6":[function(){return n.e(8884).then(n.bind(n,50998))},"@site/docs/33.0.0/querying/multitenancy.md",50998],"7f7668f5":[function(){return n.e(7662).then(n.bind(n,35807))},"@site/docs/33.0.0/design/router.md",35807],"81808cc0":[function(){return Promise.all([n.e(1869),n.e(8180)]).then(n.bind(n,55524))},"@site/docs/33.0.0/development/extensions-core/k8s-jobs.md",55524],84278950:[function(){return n.e(3920).then(n.bind(n,78374))},"@site/docs/33.0.0/querying/timeboundaryquery.md",78374],"8458e605":[function(){return n.e(8648).then(n.bind(n,51317))},"@site/docs/33.0.0/development/extensions-core/test-stats.md",51317],"84ffb468":[function(){return n.e(6195).then(n.bind(n,56352))},"@site/docs/33.0.0/querying/tips-good-queries.md",56352],"852e5de1":[function(){return n.e(9788).then(n.bind(n,90043))},"@site/docs/33.0.0/querying/sql.md",90043],"85a88d06":[function(){return n.e(1839).then(n.bind(n,39336))},"@site/docs/33.0.0/operations/dynamic-config-provider.md",39336],"87a77846":[function(){return n.e(2467).then(n.bind(n,2535))},"@site/docs/33.0.0/ingestion/faq.md",2535],"88429f23":[function(){return n.e(7213).then(n.bind(n,94164))},"@site/docs/33.0.0/querying/kafka-extraction-namespace.md",94164],"8adb3c2e":[function(){return n.e(4393).then(n.bind(n,37170))},"@site/docs/33.0.0/development/extensions-core/orc.md",37170],"8b8cb71a":[function(){return n.e(8293).then(n.bind(n,55878))},"@site/docs/33.0.0/querying/virtual-columns.md",55878],"8c4d8c46":[function(){return n.e(5117).then(n.bind(n,74833))},"@site/docs/33.0.0/ingestion/concurrent-append-replace.md",74833],"8cd326f4":[function(){return n.e(7917).then(n.bind(n,48181))},"@site/docs/33.0.0/operations/pull-deps.md",48181],"8ce76df2":[function(){return n.e(338).then(n.bind(n,26335))},"@site/docs/33.0.0/multi-stage-query/security.md",26335],"8dc30360":[function(){return n.e(9004).then(n.bind(n,67412))},"@site/docs/33.0.0/development/extensions-core/parquet.md",67412],"8e0adcf2":[function(){return n.e(5132).then(n.bind(n,61751))},"@site/docs/33.0.0/development/experimental.md",61751],"8f48663a":[function(){return n.e(4989).then(n.t.bind(n,20824,19))},"@generated/docusaurus-plugin-content-docs/default/p/docs-33-0-0-63e.json",20824],"8fa087e4":[function(){return n.e(3486).then(n.bind(n,301))},"@site/docs/33.0.0/development/extensions-core/datasketches-theta.md",301],91045831:[function(){return n.e(6622).then(n.bind(n,90390))},"@site/docs/33.0.0/design/broker.md",90390],"91af8b2b":[function(){return n.e(146).then(n.bind(n,20149))},"@site/docs/33.0.0/operations/clean-metadata-store.md",20149],"91c94933":[function(){return n.e(5802).then(n.bind(n,60342))},"@site/docs/33.0.0/querying/select-query.md",60342],"91f564ff":[function(){return n.e(5732).then(n.bind(n,67e3))},"@site/docs/33.0.0/operations/rule-configuration.md",67e3],"92ab1340":[function(){return n.e(6079).then(n.bind(n,34004))},"@site/docs/33.0.0/development/extensions-contrib/moving-average-query.md",34004],"9411e528":[function(){return n.e(8426).then(n.bind(n,42340))},"@site/docs/33.0.0/development/extensions-contrib/iceberg.md",42340],"94861fe3":[function(){return n.e(3963).then(n.bind(n,85293))},"@site/docs/33.0.0/development/extensions-contrib/thrift.md",85293],"9581a7d0":[function(){return n.e(3336).then(n.bind(n,6959))},"@site/docs/33.0.0/operations/java.md",6959],"9650c3a8":[function(){return n.e(3800).then(n.bind(n,5939))},"@site/docs/33.0.0/querying/arrays.md",5939],"97659b06":[function(){return n.e(6023).then(n.bind(n,67657))},"@site/docs/33.0.0/ingestion/tranquility.md",67657],"97d9d917":[function(){return n.e(6871).then(n.bind(n,43003))},"@site/docs/33.0.0/querying/sql-operators.md",43003],"9814ffe3":[function(){return n.e(303).then(n.bind(n,2281))},"@site/docs/33.0.0/querying/limitspec.md",2281],"9a4b0a52":[function(){return n.e(5688).then(n.bind(n,93589))},"@site/docs/33.0.0/design/historical.md",93589],"9a675f3e":[function(){return n.e(4729).then(n.bind(n,78371))},"@site/docs/33.0.0/development/extensions-contrib/cloudfiles.md",78371],"9be8ee83":[function(){return n.e(4496).then(n.bind(n,80812))},"@site/docs/33.0.0/comparisons/druid-vs-kudu.md",80812],"9c8d8203":[function(){return n.e(2410).then(n.bind(n,99361))},"@site/docs/33.0.0/tutorials/tutorial-latest-by.md",99361],"9d17e5c1":[function(){return Promise.all([n.e(1869),n.e(5658)]).then(n.bind(n,17199))},"@site/docs/33.0.0/development/extensions-core/catalog.md",17199],"9e39056e":[function(){return n.e(6451).then(n.bind(n,89278))},"@site/docs/33.0.0/querying/topnquery.md",89278],"9ebaee46":[function(){return n.e(326).then(n.bind(n,61230))},"@site/docs/33.0.0/design/index.md",61230],a07cf99a:[function(){return n.e(3175).then(n.bind(n,9978))},"@site/docs/33.0.0/development/extensions-contrib/prometheus.md",9978],a09c3f24:[function(){return n.e(6677).then(n.bind(n,48981))},"@site/docs/33.0.0/tutorials/tutorial-query.md",48981],a0de97c3:[function(){return n.e(2895).then(n.bind(n,91918))},"@site/src/pages/blog.md",91918],a103b404:[function(){return n.e(7296).then(n.bind(n,99231))},"@site/docs/33.0.0/design/peons.md",99231],a12e75ab:[function(){return n.e(2443).then(n.bind(n,74226))},"@site/docs/33.0.0/comparisons/druid-vs-key-value.md",74226],a3ba8782:[function(){return Promise.all([n.e(1869),n.e(8633)]).then(n.bind(n,73374))},"@site/docs/33.0.0/api-reference/tasks-api.md",73374],a43e7ea3:[function(){return n.e(6836).then(n.bind(n,34840))},"@site/docs/33.0.0/development/extensions-contrib/influx.md",34840],a494547b:[function(){return n.e(8619).then(n.bind(n,29503))},"@site/docs/33.0.0/tutorials/tutorial-retention.md",29503],a588e61c:[function(){return n.e(9252).then(n.bind(n,81307))},"@site/docs/33.0.0/development/extensions-core/google.md",81307],a68fc73a:[function(){return n.e(5382).then(n.bind(n,58568))},"@site/docs/33.0.0/development/extensions-core/postgresql.md",58568],a732c679:[function(){return n.e(9683).then(n.bind(n,74678))},"@site/docs/33.0.0/querying/query-from-deep-storage.md",74678],a7456010:[function(){return n.e(1235).then(n.t.bind(n,88552,19))},"@generated/docusaurus-plugin-content-pages/default/__plugin.json",88552],a7bd4aaa:[function(){return n.e(7098).then(n.bind(n,27419))},"@theme/DocVersionRoot",27419],a7c93220:[function(){return n.e(7806).then(n.bind(n,26430))},"@site/docs/33.0.0/tutorials/tutorial-compaction.md",26430],a831d69a:[function(){return n.e(5616).then(n.bind(n,61407))},"@site/docs/33.0.0/querying/query-context.md",61407],a94703ab:[function(){return Promise.all([n.e(1869),n.e(9048)]).then(n.bind(n,91841))},"@theme/DocRoot",91841],aa5d6b49:[function(){return n.e(5335).then(n.bind(n,87770))},"@site/docs/33.0.0/ingestion/native-batch-firehose.md",87770],aba21aa0:[function(){return n.e(5742).then(n.t.bind(n,27093,19))},"@generated/docusaurus-plugin-content-docs/default/__plugin.json",27093],ad32dcdb:[function(){return n.e(5146).then(n.bind(n,4369))},"@site/docs/33.0.0/querying/sql-query-context.md",4369],adfd5f8b:[function(){return n.e(6385).then(n.bind(n,60108))},"@site/docs/33.0.0/querying/sql-data-types.md",60108],ae73e9ba:[function(){return n.e(6410).then(n.bind(n,93994))},"@site/docs/33.0.0/querying/searchquery.md",93994],b0febd69:[function(){return Promise.all([n.e(1869),n.e(7911)]).then(n.bind(n,15717))},"@site/docs/33.0.0/tutorials/tutorial-unnest-arrays.md",15717],b16cebf2:[function(){return n.e(6636).then(n.bind(n,60652))},"@site/docs/33.0.0/ingestion/data-formats.md",60652],b65359cb:[function(){return n.e(8330).then(n.bind(n,9043))},"@site/docs/33.0.0/api-reference/sql-jdbc.md",9043],b66d4e0c:[function(){return n.e(2931).then(n.bind(n,12393))},"@site/docs/33.0.0/querying/sql-window-functions.md",12393],b6d922f1:[function(){return n.e(9611).then(n.bind(n,51202))},"@site/src/pages/downloads.mdx",51202],b87bdae7:[function(){return n.e(9759).then(n.bind(n,95152))},"@site/docs/33.0.0/tutorials/tutorial-rollup.md",95152],b8bd7913:[function(){return Promise.all([n.e(1869),n.e(4379)]).then(n.bind(n,62820))},"@site/docs/33.0.0/api-reference/sql-api.md",62820],b91f4d9b:[function(){return n.e(2052).then(n.bind(n,34271))},"@site/docs/33.0.0/design/indexer.md",34271],b983518b:[function(){return n.e(9179).then(n.bind(n,40068))},"@site/docs/33.0.0/development/extensions-contrib/druid-ranger-security.md",40068],b9a50b97:[function(){return n.e(9380).then(n.bind(n,13483))},"@site/docs/33.0.0/ingestion/ingestion-spec.md",13483],b9facbe4:[function(){return n.e(2195).then(n.bind(n,55030))},"@site/docs/33.0.0/operations/kubernetes.md",55030],ba583d34:[function(){return n.e(7323).then(n.bind(n,22716))},"@site/docs/33.0.0/api-reference/legacy-metadata-api.md",22716],bbb8bdb9:[function(){return n.e(5568).then(n.bind(n,16549))},"@site/docs/33.0.0/querying/lookups.md",16549],bc841e28:[function(){return n.e(246).then(n.bind(n,8364))},"@site/docs/33.0.0/development/extensions-contrib/kafka-emitter.md",8364],bcb45f1a:[function(){return n.e(3675).then(n.bind(n,30464))},"@site/docs/33.0.0/development/extensions-contrib/ddsketch-quantiles.md",30464],c083fe04:[function(){return n.e(9270).then(n.bind(n,15041))},"@site/docs/33.0.0/ingestion/native-batch-simple-task.md",15041],c0cc46b6:[function(){return n.e(553).then(n.bind(n,97989))},"@site/docs/33.0.0/ingestion/streaming.md",97989],c14b8f2f:[function(){return n.e(7871).then(n.bind(n,31810))},"@site/docs/33.0.0/development/extensions-contrib/tdigestsketch-quantiles.md",31810],c4222450:[function(){return n.e(6063).then(n.bind(n,76996))},"@site/docs/33.0.0/design/coordinator.md",76996],c45e0be6:[function(){return n.e(7687).then(n.bind(n,28757))},"@site/docs/33.0.0/development/extensions-core/datasketches-hll.md",28757],c4f5d8e4:[function(){return Promise.all([n.e(1869),n.e(2634)]).then(n.bind(n,38965))},"@site/src/pages/index.js",38965],c5322693:[function(){return n.e(2552).then(n.bind(n,32548))},"@site/docs/33.0.0/querying/datasourcemetadataquery.md",32548],c6e00c5e:[function(){return n.e(3818).then(n.bind(n,73938))},"@site/docs/33.0.0/configuration/human-readable-byte.md",73938],c72e4f10:[function(){return n.e(8235).then(n.bind(n,40420))},"@site/docs/33.0.0/development/overview.md",40420],c8aed2d0:[function(){return n.e(5506).then(n.bind(n,61871))},"@site/docs/33.0.0/design/zookeeper.md",61871],cabbdd91:[function(){return n.e(5129).then(n.bind(n,36674))},"@site/docs/33.0.0/development/extensions-core/datasketches-kll.md",36674],cac19bce:[function(){return n.e(3361).then(n.bind(n,23930))},"@site/docs/33.0.0/tutorials/tutorial-kafka.md",23930],cdf264a7:[function(){return n.e(7140).then(n.bind(n,50494))},"@site/docs/33.0.0/ingestion/schema-model.md",50494],ce2cd07a:[function(){return n.e(578).then(n.bind(n,10762))},"@site/docs/33.0.0/querying/multi-value-dimensions.md",10762],d13eb890:[function(){return n.e(1279).then(n.bind(n,65688))},"@site/docs/33.0.0/ingestion/hadoop.md",65688],d23bf210:[function(){return n.e(4157).then(n.bind(n,92598))},"@site/docs/33.0.0/development/docs-contribute.md",92598],d37f4845:[function(){return n.e(7790).then(n.bind(n,66284))},"@site/docs/33.0.0/release-info/migr-front-coded-dict.md",66284],d3ccc025:[function(){return n.e(2320).then(n.bind(n,63794))},"@site/docs/33.0.0/development/extensions-core/examples.md",63794],d421068e:[function(){return n.e(5575).then(n.bind(n,42700))},"@site/docs/33.0.0/tutorials/tutorial-update-data.md",42700],d57d4407:[function(){return n.e(2900).then(n.bind(n,77493))},"@site/docs/33.0.0/operations/auth-ldap.md",77493],d6bc9e72:[function(){return n.e(5073).then(n.bind(n,60933))},"@site/src/pages/libraries.md",60933],d7cd19ee:[function(){return n.e(9485).then(n.bind(n,28474))},"@site/docs/33.0.0/querying/sorting-orders.md",28474],d7d44caf:[function(){return n.e(558).then(n.bind(n,2075))},"@site/docs/33.0.0/operations/basic-cluster-tuning.md",2075],d7dd4971:[function(){return n.e(541).then(n.bind(n,83956))},"@site/docs/33.0.0/querying/using-caching.md",83956],d803eef5:[function(){return n.e(309).then(n.bind(n,22890))},"@site/docs/33.0.0/multi-stage-query/index.md",22890],d82ca428:[function(){return n.e(5691).then(n.bind(n,28583))},"@site/docs/33.0.0/operations/security-user-auth.md",28583],dc8d8ba6:[function(){return n.e(2487).then(n.bind(n,92854))},"@site/src/pages/druid-powered.md",92854],dd7f2773:[function(){return n.e(3079).then(n.bind(n,71473))},"@site/docs/33.0.0/tutorials/index.md",71473],e007992f:[function(){return n.e(5873).then(n.bind(n,27091))},"@site/docs/33.0.0/operations/deep-storage-migration.md",27091],e269a53c:[function(){return n.e(77).then(n.bind(n,31648))},"@site/docs/33.0.0/data-management/schema-changes.md",31648],e2c8f0ce:[function(){return n.e(1653).then(n.bind(n,97385))},"@site/docs/33.0.0/development/extensions-core/druid-kerberos.md",97385],e56c12ff:[function(){return n.e(7369).then(n.bind(n,94921))},"@site/docs/33.0.0/operations/segment-optimization.md",94921],e6c1ae71:[function(){return n.e(7060).then(n.bind(n,99736))},"@site/docs/33.0.0/development/extensions-core/datasketches-extension.md",99736],e6c3e314:[function(){return n.e(6611).then(n.bind(n,61335))},"@site/docs/33.0.0/ingestion/schema-design.md",61335],e8553f0a:[function(){return n.e(3840).then(n.bind(n,30724))},"@site/docs/33.0.0/development/extensions-core/druid-pac4j.md",30724],e86ecaaf:[function(){return n.e(5158).then(n.bind(n,50161))},"@site/docs/33.0.0/development/extensions-contrib/sqlserver.md",50161],e917a737:[function(){return n.e(2039).then(n.bind(n,15028))},"@site/docs/33.0.0/tutorials/tutorial-msq-convert-spec.md",15028],e9483372:[function(){return n.e(5492).then(n.bind(n,60873))},"@site/src/pages/use-cases.md",60873],ea640e6c:[function(){return Promise.all([n.e(1869),n.e(3047)]).then(n.bind(n,32134))},"@site/docs/33.0.0/api-reference/retention-rules-api.md",32134],eab006b5:[function(){return n.e(9914).then(n.bind(n,52230))},"@site/docs/33.0.0/development/extensions-core/azure.md",52230],eaffe8b7:[function(){return n.e(2128).then(n.bind(n,27502))},"@site/src/pages/community/cla.md",27502],eb82f32a:[function(){return n.e(6570).then(n.bind(n,4434))},"@site/docs/33.0.0/tutorials/tutorial-batch-hadoop.md",4434],ebb6a4f5:[function(){return n.e(1762).then(n.bind(n,6164))},"@site/docs/33.0.0/operations/export-metadata.md",6164],edb7a9f3:[function(){return n.e(5254).then(n.bind(n,77136))},"@site/docs/33.0.0/querying/groupbyquery.md",77136],ee11bbe1:[function(){return n.e(9173).then(n.bind(n,43808))},"@site/docs/33.0.0/design/overlord.md",43808],ee3d86fe:[function(){return n.e(2921).then(n.bind(n,44396))},"@site/docs/33.0.0/querying/geo.md",44396],ef9e88a5:[function(){return n.e(914).then(n.bind(n,46689))},"@site/docs/33.0.0/design/metadata-storage.md",46689],efa71475:[function(){return n.e(277).then(n.bind(n,98427))},"@site/src/pages/community/join-slack.md",98427],f1876743:[function(){return n.e(1073).then(n.bind(n,53429))},"@site/docs/33.0.0/design/indexing-service.md",53429],f2017d35:[function(){return n.e(5583).then(n.bind(n,53850))},"@site/docs/33.0.0/development/extensions-core/druid-basic-security.md",53850],f2891d72:[function(){return n.e(9582).then(n.bind(n,52334))},"@site/docs/33.0.0/development/extensions-core/hdfs.md",52334],f2c8f271:[function(){return n.e(504).then(n.bind(n,60699))},"@site/docs/33.0.0/ingestion/input-sources.md",60699],f6017a11:[function(){return n.e(5200).then(n.bind(n,92413))},"@site/docs/33.0.0/querying/troubleshooting.md",92413],f72649d7:[function(){return n.e(2384).then(n.bind(n,64617))},"@site/docs/33.0.0/tutorials/docker.md",64617],fb0c7c59:[function(){return n.e(4220).then(n.bind(n,11368))},"@site/docs/33.0.0/data-management/compaction.md",11368],fcebe65c:[function(){return n.e(9658).then(n.bind(n,1833))},"@site/docs/33.0.0/development/extensions-contrib/gce-extensions.md",1833],fd981129:[function(){return n.e(9595).then(n.bind(n,95502))},"@site/docs/33.0.0/development/extensions-core/stats.md",95502],fdebcf4f:[function(){return n.e(945).then(n.bind(n,96123))},"@site/docs/33.0.0/data-management/update.md",96123],fe97e411:[function(){return Promise.all([n.e(1869),n.e(825)]).then(n.bind(n,28644))},"@site/docs/33.0.0/querying/datasource.md",28644],ff032c71:[function(){return n.e(157).then(n.bind(n,42154))},"@site/docs/33.0.0/operations/durable-storage.md",42154],ff22260d:[function(){return n.e(3583).then(n.bind(n,91892))},"@site/docs/33.0.0/querying/segmentmetadataquery.md",91892],ffda5609:[function(){return n.e(5430).then(n.bind(n,51636))},"@site/docs/33.0.0/tutorials/tutorial-batch-native.md",51636]};var s=n(74848);function c(e){var t=e.error,n=e.retry,r=e.pastDelay;return t?(0,s.jsxs)("div",{style:{textAlign:"center",color:"#fff",backgroundColor:"#fa383e",borderColor:"#fa383e",borderStyle:"solid",borderRadius:"0.25rem",borderWidth:"1px",boxSizing:"border-box",display:"block",padding:"1rem",flex:"0 0 50%",marginLeft:"25%",marginRight:"25%",marginTop:"5rem",maxWidth:"50%",width:"100%"},children:[(0,s.jsx)("p",{children:String(t)}),(0,s.jsx)("div",{children:(0,s.jsx)("button",{type:"button",onClick:n,children:"Retry"})})]}):r?(0,s.jsx)("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"},children:(0,s.jsx)("svg",{id:"loader",style:{width:128,height:110,position:"absolute",top:"calc(100vh - 64%)"},viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg",stroke:"#61dafb",children:(0,s.jsxs)("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2",children:[(0,s.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,s.jsx)("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,s.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,s.jsx)("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,s.jsx)("circle",{cx:"22",cy:"22",r:"8",children:(0,s.jsx)("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"})})]})})}):null}var l=n(13722),u=n(75313);function d(e,t){if("*"===e)return o()({loading:c,loader:function(){return n.e(3042).then(n.bind(n,73042))},modules:["@theme/NotFound"],webpack:function(){return[73042]},render:function(e,t){var n=e.default;return(0,s.jsx)(u.W,{value:{plugin:{name:"native",id:"default"}},children:(0,s.jsx)(n,Object.assign({},t))})}});var r=a[e+"-"+t],d={},p=[],f=[],m=(0,l.A)(r);return Object.entries(m).forEach((function(e){var t=e[0],n=e[1],r=i[n];r&&(d[t]=r[0],p.push(r[1]),f.push(r[2]))})),o().Map({loading:c,loader:d,modules:p,webpack:function(){return f},render:function(t,n){var o=JSON.parse(JSON.stringify(r));Object.entries(t).forEach((function(t){var n=t[0],r=t[1],a=r.default;if(!a)throw new Error("The page component at "+e+" doesn't have a default export. This makes it impossible to render anything. Consider default-exporting a React component.");"object"!=typeof a&&"function"!=typeof a||Object.keys(r).filter((function(e){return"default"!==e})).forEach((function(e){a[e]=r[e]}));var i=o,s=n.split(".");s.slice(0,-1).forEach((function(e){i=i[e]})),i[s[s.length-1]]=a}));var a=o.__comp;delete o.__comp;var i=o.__context;delete o.__context;var c=o.__props;return delete o.__props,(0,s.jsx)(u.W,{value:i,children:(0,s.jsx)(a,Object.assign({},o,c,n))})}})}const p=[{path:"/blog",component:d("/blog","61e"),exact:!0},{path:"/community/",component:d("/community/","a3e"),exact:!0},{path:"/community/cla",component:d("/community/cla","607"),exact:!0},{path:"/community/join-slack",component:d("/community/join-slack","407"),exact:!0},{path:"/downloads",component:d("/downloads","82d"),exact:!0},{path:"/druid-powered",component:d("/druid-powered","dc3"),exact:!0},{path:"/faq",component:d("/faq","0a0"),exact:!0},{path:"/libraries",component:d("/libraries","f13"),exact:!0},{path:"/licensing",component:d("/licensing","a9c"),exact:!0},{path:"/technology",component:d("/technology","cf3"),exact:!0},{path:"/use-cases",component:d("/use-cases","8ae"),exact:!0},{path:"/docs/33.0.0",component:d("/docs/33.0.0","6df"),routes:[{path:"/docs/33.0.0",component:d("/docs/33.0.0","8b1"),routes:[{path:"/docs/33.0.0",component:d("/docs/33.0.0","471"),routes:[{path:"/docs/33.0.0/api-reference/",component:d("/docs/33.0.0/api-reference/","22c"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/api-reference/automatic-compaction-api",component:d("/docs/33.0.0/api-reference/automatic-compaction-api","96c"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/api-reference/data-management-api",component:d("/docs/33.0.0/api-reference/data-management-api","b81"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/api-reference/dynamic-configuration-api",component:d("/docs/33.0.0/api-reference/dynamic-configuration-api","c27"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/api-reference/json-querying-api",component:d("/docs/33.0.0/api-reference/json-querying-api","6b0"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/api-reference/legacy-metadata-api",component:d("/docs/33.0.0/api-reference/legacy-metadata-api","58c"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/api-reference/lookups-api",component:d("/docs/33.0.0/api-reference/lookups-api","7b2"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/api-reference/retention-rules-api",component:d("/docs/33.0.0/api-reference/retention-rules-api","2e9"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/api-reference/service-status-api",component:d("/docs/33.0.0/api-reference/service-status-api","ee9"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/api-reference/sql-api",component:d("/docs/33.0.0/api-reference/sql-api","648"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/api-reference/sql-ingestion-api",component:d("/docs/33.0.0/api-reference/sql-ingestion-api","e2e"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/api-reference/sql-jdbc",component:d("/docs/33.0.0/api-reference/sql-jdbc","e8c"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/api-reference/supervisor-api",component:d("/docs/33.0.0/api-reference/supervisor-api","735"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/api-reference/tasks-api",component:d("/docs/33.0.0/api-reference/tasks-api","da9"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/comparisons/druid-vs-elasticsearch",component:d("/docs/33.0.0/comparisons/druid-vs-elasticsearch","9ff"),exact:!0},{path:"/docs/33.0.0/comparisons/druid-vs-key-value",component:d("/docs/33.0.0/comparisons/druid-vs-key-value","dc9"),exact:!0},{path:"/docs/33.0.0/comparisons/druid-vs-kudu",component:d("/docs/33.0.0/comparisons/druid-vs-kudu","9c5"),exact:!0},{path:"/docs/33.0.0/comparisons/druid-vs-redshift",component:d("/docs/33.0.0/comparisons/druid-vs-redshift","79d"),exact:!0},{path:"/docs/33.0.0/comparisons/druid-vs-spark",component:d("/docs/33.0.0/comparisons/druid-vs-spark","895"),exact:!0},{path:"/docs/33.0.0/comparisons/druid-vs-sql-on-hadoop",component:d("/docs/33.0.0/comparisons/druid-vs-sql-on-hadoop","a86"),exact:!0},{path:"/docs/33.0.0/configuration/",component:d("/docs/33.0.0/configuration/","cc7"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/configuration/extensions",component:d("/docs/33.0.0/configuration/extensions","47a"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/configuration/human-readable-byte",component:d("/docs/33.0.0/configuration/human-readable-byte","f05"),exact:!0},{path:"/docs/33.0.0/configuration/logging",component:d("/docs/33.0.0/configuration/logging","c55"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/data-management/",component:d("/docs/33.0.0/data-management/","06b"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/data-management/automatic-compaction",component:d("/docs/33.0.0/data-management/automatic-compaction","09f"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/data-management/compaction",component:d("/docs/33.0.0/data-management/compaction","5b3"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/data-management/delete",component:d("/docs/33.0.0/data-management/delete","459"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/data-management/manual-compaction",component:d("/docs/33.0.0/data-management/manual-compaction","fbe"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/data-management/schema-changes",component:d("/docs/33.0.0/data-management/schema-changes","641"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/data-management/update",component:d("/docs/33.0.0/data-management/update","d4c"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/design/",component:d("/docs/33.0.0/design/","e0b"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/design/architecture",component:d("/docs/33.0.0/design/architecture","315"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/design/broker",component:d("/docs/33.0.0/design/broker","d66"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/design/coordinator",component:d("/docs/33.0.0/design/coordinator","1d0"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/design/deep-storage",component:d("/docs/33.0.0/design/deep-storage","dc9"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/design/extensions-contrib/dropwizard",component:d("/docs/33.0.0/design/extensions-contrib/dropwizard","157"),exact:!0},{path:"/docs/33.0.0/design/historical",component:d("/docs/33.0.0/design/historical","739"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/design/indexer",component:d("/docs/33.0.0/design/indexer","710"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/design/indexing-service",component:d("/docs/33.0.0/design/indexing-service","df8"),exact:!0},{path:"/docs/33.0.0/design/metadata-storage",component:d("/docs/33.0.0/design/metadata-storage","596"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/design/middlemanager",component:d("/docs/33.0.0/design/middlemanager","cde"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/design/overlord",component:d("/docs/33.0.0/design/overlord","513"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/design/peons",component:d("/docs/33.0.0/design/peons","54b"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/design/router",component:d("/docs/33.0.0/design/router","1b2"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/design/segments",component:d("/docs/33.0.0/design/segments","b20"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/design/storage",component:d("/docs/33.0.0/design/storage","1d3"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/design/zookeeper",component:d("/docs/33.0.0/design/zookeeper","87e"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/development/build",component:d("/docs/33.0.0/development/build","5af"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/development/contribute-to-docs",component:d("/docs/33.0.0/development/contribute-to-docs","934"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/development/experimental",component:d("/docs/33.0.0/development/experimental","84b"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/development/extensions-contrib/aliyun-oss",component:d("/docs/33.0.0/development/extensions-contrib/aliyun-oss","768"),exact:!0},{path:"/docs/33.0.0/development/extensions-contrib/ambari-metrics-emitter",component:d("/docs/33.0.0/development/extensions-contrib/ambari-metrics-emitter","cfa"),exact:!0},{path:"/docs/33.0.0/development/extensions-contrib/cassandra",component:d("/docs/33.0.0/development/extensions-contrib/cassandra","bf6"),exact:!0},{path:"/docs/33.0.0/development/extensions-contrib/cloudfiles",component:d("/docs/33.0.0/development/extensions-contrib/cloudfiles","ede"),exact:!0},{path:"/docs/33.0.0/development/extensions-contrib/compressed-big-decimal",component:d("/docs/33.0.0/development/extensions-contrib/compressed-big-decimal","618"),exact:!0},{path:"/docs/33.0.0/development/extensions-contrib/ddsketch-quantiles",component:d("/docs/33.0.0/development/extensions-contrib/ddsketch-quantiles","d0f"),exact:!0},{path:"/docs/33.0.0/development/extensions-contrib/delta-lake",component:d("/docs/33.0.0/development/extensions-contrib/delta-lake","140"),exact:!0},{path:"/docs/33.0.0/development/extensions-contrib/distinctcount",component:d("/docs/33.0.0/development/extensions-contrib/distinctcount","5a5"),exact:!0},{path:"/docs/33.0.0/development/extensions-contrib/druid-ranger-security",component:d("/docs/33.0.0/development/extensions-contrib/druid-ranger-security","f33"),exact:!0},{path:"/docs/33.0.0/development/extensions-contrib/gce-extensions",component:d("/docs/33.0.0/development/extensions-contrib/gce-extensions","989"),exact:!0},{path:"/docs/33.0.0/development/extensions-contrib/graphite",component:d("/docs/33.0.0/development/extensions-contrib/graphite","6d1"),exact:!0},{path:"/docs/33.0.0/development/extensions-contrib/iceberg",component:d("/docs/33.0.0/development/extensions-contrib/iceberg","386"),exact:!0},{path:"/docs/33.0.0/development/extensions-contrib/influx",component:d("/docs/33.0.0/development/extensions-contrib/influx","c13"),exact:!0},{path:"/docs/33.0.0/development/extensions-contrib/influxdb-emitter",component:d("/docs/33.0.0/development/extensions-contrib/influxdb-emitter","eda"),exact:!0},{path:"/docs/33.0.0/development/extensions-contrib/kafka-emitter",component:d("/docs/33.0.0/development/extensions-contrib/kafka-emitter","6a9"),exact:!0},{path:"/docs/33.0.0/development/extensions-contrib/materialized-view",component:d("/docs/33.0.0/development/extensions-contrib/materialized-view","2a6"),exact:!0},{path:"/docs/33.0.0/development/extensions-contrib/momentsketch-quantiles",component:d("/docs/33.0.0/development/extensions-contrib/momentsketch-quantiles","c08"),exact:!0},{path:"/docs/33.0.0/development/extensions-contrib/moving-average-query",component:d("/docs/33.0.0/development/extensions-contrib/moving-average-query","95c"),exact:!0},{path:"/docs/33.0.0/development/extensions-contrib/opentsdb-emitter",component:d("/docs/33.0.0/development/extensions-contrib/opentsdb-emitter","cc9"),exact:!0},{path:"/docs/33.0.0/development/extensions-contrib/prometheus",component:d("/docs/33.0.0/development/extensions-contrib/prometheus","4fe"),exact:!0},{path:"/docs/33.0.0/development/extensions-contrib/rabbit-super-stream-injestion",component:d("/docs/33.0.0/development/extensions-contrib/rabbit-super-stream-injestion","691"),exact:!0},{path:"/docs/33.0.0/development/extensions-contrib/redis-cache",component:d("/docs/33.0.0/development/extensions-contrib/redis-cache","42a"),exact:!0},{path:"/docs/33.0.0/development/extensions-contrib/spectator-histogram",component:d("/docs/33.0.0/development/extensions-contrib/spectator-histogram","67d"),exact:!0},{path:"/docs/33.0.0/development/extensions-contrib/sqlserver",component:d("/docs/33.0.0/development/extensions-contrib/sqlserver","fb9"),exact:!0},{path:"/docs/33.0.0/development/extensions-contrib/statsd",component:d("/docs/33.0.0/development/extensions-contrib/statsd","a0b"),exact:!0},{path:"/docs/33.0.0/development/extensions-contrib/tdigestsketch-quantiles",component:d("/docs/33.0.0/development/extensions-contrib/tdigestsketch-quantiles","d5b"),exact:!0},{path:"/docs/33.0.0/development/extensions-contrib/thrift",component:d("/docs/33.0.0/development/extensions-contrib/thrift","618"),exact:!0},{path:"/docs/33.0.0/development/extensions-contrib/time-min-max",component:d("/docs/33.0.0/development/extensions-contrib/time-min-max","92f"),exact:!0},{path:"/docs/33.0.0/development/extensions-core/approximate-histograms",component:d("/docs/33.0.0/development/extensions-core/approximate-histograms","c22"),exact:!0},{path:"/docs/33.0.0/development/extensions-core/avro",component:d("/docs/33.0.0/development/extensions-core/avro","0e4"),exact:!0},{path:"/docs/33.0.0/development/extensions-core/azure",component:d("/docs/33.0.0/development/extensions-core/azure","be7"),exact:!0},{path:"/docs/33.0.0/development/extensions-core/bloom-filter",component:d("/docs/33.0.0/development/extensions-core/bloom-filter","d54"),exact:!0},{path:"/docs/33.0.0/development/extensions-core/catalog",component:d("/docs/33.0.0/development/extensions-core/catalog","937"),exact:!0},{path:"/docs/33.0.0/development/extensions-core/datasketches-extension",component:d("/docs/33.0.0/development/extensions-core/datasketches-extension","af5"),exact:!0},{path:"/docs/33.0.0/development/extensions-core/datasketches-hll",component:d("/docs/33.0.0/development/extensions-core/datasketches-hll","a1a"),exact:!0},{path:"/docs/33.0.0/development/extensions-core/datasketches-kll",component:d("/docs/33.0.0/development/extensions-core/datasketches-kll","da4"),exact:!0},{path:"/docs/33.0.0/development/extensions-core/datasketches-quantiles",component:d("/docs/33.0.0/development/extensions-core/datasketches-quantiles","7d5"),exact:!0},{path:"/docs/33.0.0/development/extensions-core/datasketches-theta",component:d("/docs/33.0.0/development/extensions-core/datasketches-theta","99a"),exact:!0},{path:"/docs/33.0.0/development/extensions-core/datasketches-tuple",component:d("/docs/33.0.0/development/extensions-core/datasketches-tuple","6a9"),exact:!0},{path:"/docs/33.0.0/development/extensions-core/druid-aws-rds",component:d("/docs/33.0.0/development/extensions-core/druid-aws-rds","1b7"),exact:!0},{path:"/docs/33.0.0/development/extensions-core/druid-basic-security",component:d("/docs/33.0.0/development/extensions-core/druid-basic-security","a57"),exact:!0},{path:"/docs/33.0.0/development/extensions-core/druid-kerberos",component:d("/docs/33.0.0/development/extensions-core/druid-kerberos","8f6"),exact:!0},{path:"/docs/33.0.0/development/extensions-core/druid-lookups",component:d("/docs/33.0.0/development/extensions-core/druid-lookups","0e4"),exact:!0},{path:"/docs/33.0.0/development/extensions-core/druid-pac4j",component:d("/docs/33.0.0/development/extensions-core/druid-pac4j","a07"),exact:!0},{path:"/docs/33.0.0/development/extensions-core/examples",component:d("/docs/33.0.0/development/extensions-core/examples","00e"),exact:!0},{path:"/docs/33.0.0/development/extensions-core/google",component:d("/docs/33.0.0/development/extensions-core/google","588"),exact:!0},{path:"/docs/33.0.0/development/extensions-core/hdfs",component:d("/docs/33.0.0/development/extensions-core/hdfs","f17"),exact:!0},{path:"/docs/33.0.0/development/extensions-core/k8s-jobs",component:d("/docs/33.0.0/development/extensions-core/k8s-jobs","019"),exact:!0},{path:"/docs/33.0.0/development/extensions-core/kubernetes",component:d("/docs/33.0.0/development/extensions-core/kubernetes","4e0"),exact:!0},{path:"/docs/33.0.0/development/extensions-core/mysql",component:d("/docs/33.0.0/development/extensions-core/mysql","ee2"),exact:!0},{path:"/docs/33.0.0/development/extensions-core/orc",component:d("/docs/33.0.0/development/extensions-core/orc","cc2"),exact:!0},{path:"/docs/33.0.0/development/extensions-core/parquet",component:d("/docs/33.0.0/development/extensions-core/parquet","feb"),exact:!0},{path:"/docs/33.0.0/development/extensions-core/postgresql",component:d("/docs/33.0.0/development/extensions-core/postgresql","bf3"),exact:!0},{path:"/docs/33.0.0/development/extensions-core/protobuf",component:d("/docs/33.0.0/development/extensions-core/protobuf","377"),exact:!0},{path:"/docs/33.0.0/development/extensions-core/s3",component:d("/docs/33.0.0/development/extensions-core/s3","4a1"),exact:!0},{path:"/docs/33.0.0/development/extensions-core/simple-client-sslcontext",component:d("/docs/33.0.0/development/extensions-core/simple-client-sslcontext","106"),exact:!0},{path:"/docs/33.0.0/development/extensions-core/stats",component:d("/docs/33.0.0/development/extensions-core/stats","0ad"),exact:!0},{path:"/docs/33.0.0/development/extensions-core/test-stats",component:d("/docs/33.0.0/development/extensions-core/test-stats","bbf"),exact:!0},{path:"/docs/33.0.0/development/javascript",component:d("/docs/33.0.0/development/javascript","c66"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/development/modules",component:d("/docs/33.0.0/development/modules","7db"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/development/overview",component:d("/docs/33.0.0/development/overview","7cc"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/development/versioning",component:d("/docs/33.0.0/development/versioning","292"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/ingestion/",component:d("/docs/33.0.0/ingestion/","aaa"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/ingestion/concurrent-append-replace",component:d("/docs/33.0.0/ingestion/concurrent-append-replace","efb"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/ingestion/data-formats",component:d("/docs/33.0.0/ingestion/data-formats","b0f"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/ingestion/faq",component:d("/docs/33.0.0/ingestion/faq","01d"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/ingestion/hadoop",component:d("/docs/33.0.0/ingestion/hadoop","099"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/ingestion/ingestion-spec",component:d("/docs/33.0.0/ingestion/ingestion-spec","353"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/ingestion/input-sources",component:d("/docs/33.0.0/ingestion/input-sources","44d"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/ingestion/kafka-ingestion",component:d("/docs/33.0.0/ingestion/kafka-ingestion","f9e"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/ingestion/kinesis-ingestion",component:d("/docs/33.0.0/ingestion/kinesis-ingestion","3bb"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/ingestion/native-batch",component:d("/docs/33.0.0/ingestion/native-batch","63c"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/ingestion/native-batch-firehose",component:d("/docs/33.0.0/ingestion/native-batch-firehose","1d9"),exact:!0},{path:"/docs/33.0.0/ingestion/native-batch-simple-task",component:d("/docs/33.0.0/ingestion/native-batch-simple-task","394"),exact:!0},{path:"/docs/33.0.0/ingestion/partitioning",component:d("/docs/33.0.0/ingestion/partitioning","d9d"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/ingestion/rollup",component:d("/docs/33.0.0/ingestion/rollup","fbf"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/ingestion/schema-design",component:d("/docs/33.0.0/ingestion/schema-design","d47"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/ingestion/schema-model",component:d("/docs/33.0.0/ingestion/schema-model","a47"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/ingestion/standalone-realtime",component:d("/docs/33.0.0/ingestion/standalone-realtime","a51"),exact:!0},{path:"/docs/33.0.0/ingestion/streaming",component:d("/docs/33.0.0/ingestion/streaming","2ac"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/ingestion/supervisor",component:d("/docs/33.0.0/ingestion/supervisor","afd"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/ingestion/tasks",component:d("/docs/33.0.0/ingestion/tasks","5ff"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/ingestion/tranquility",component:d("/docs/33.0.0/ingestion/tranquility","7d0"),exact:!0},{path:"/docs/33.0.0/misc/papers-and-talks",component:d("/docs/33.0.0/misc/papers-and-talks","eab"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/multi-stage-query/",component:d("/docs/33.0.0/multi-stage-query/","e7c"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/multi-stage-query/concepts",component:d("/docs/33.0.0/multi-stage-query/concepts","325"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/multi-stage-query/examples",component:d("/docs/33.0.0/multi-stage-query/examples","ee2"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/multi-stage-query/known-issues",component:d("/docs/33.0.0/multi-stage-query/known-issues","2ad"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/multi-stage-query/reference",component:d("/docs/33.0.0/multi-stage-query/reference","9d3"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/multi-stage-query/security",component:d("/docs/33.0.0/multi-stage-query/security","94f"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/operations/alerts",component:d("/docs/33.0.0/operations/alerts","071"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/operations/auth",component:d("/docs/33.0.0/operations/auth","5cc"),exact:!0},{path:"/docs/33.0.0/operations/auth-ldap",component:d("/docs/33.0.0/operations/auth-ldap","f9e"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/operations/basic-cluster-tuning",component:d("/docs/33.0.0/operations/basic-cluster-tuning","613"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/operations/clean-metadata-store",component:d("/docs/33.0.0/operations/clean-metadata-store","53c"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/operations/deep-storage-migration",component:d("/docs/33.0.0/operations/deep-storage-migration","a13"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/operations/dump-segment",component:d("/docs/33.0.0/operations/dump-segment","755"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/operations/durable-storage",component:d("/docs/33.0.0/operations/durable-storage","62e"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/operations/dynamic-config-provider",component:d("/docs/33.0.0/operations/dynamic-config-provider","7b1"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/operations/export-metadata",component:d("/docs/33.0.0/operations/export-metadata","ff6"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/operations/high-availability",component:d("/docs/33.0.0/operations/high-availability","594"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/operations/http-compression",component:d("/docs/33.0.0/operations/http-compression","93c"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/operations/insert-segment-to-db",component:d("/docs/33.0.0/operations/insert-segment-to-db","9ab"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/operations/java",component:d("/docs/33.0.0/operations/java","e7d"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/operations/kubernetes",component:d("/docs/33.0.0/operations/kubernetes","689"),exact:!0},{path:"/docs/33.0.0/operations/metadata-migration",component:d("/docs/33.0.0/operations/metadata-migration","434"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/operations/metrics",component:d("/docs/33.0.0/operations/metrics","ca6"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/operations/migrate-from-firehose",component:d("/docs/33.0.0/operations/migrate-from-firehose","1c8"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/operations/mixed-workloads",component:d("/docs/33.0.0/operations/mixed-workloads","1ab"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/operations/other-hadoop",component:d("/docs/33.0.0/operations/other-hadoop","9c5"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/operations/password-provider",component:d("/docs/33.0.0/operations/password-provider","150"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/operations/pull-deps",component:d("/docs/33.0.0/operations/pull-deps","265"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/operations/request-logging",component:d("/docs/33.0.0/operations/request-logging","5e7"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/operations/reset-cluster",component:d("/docs/33.0.0/operations/reset-cluster","eb5"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/operations/rolling-updates",component:d("/docs/33.0.0/operations/rolling-updates","d89"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/operations/rule-configuration",component:d("/docs/33.0.0/operations/rule-configuration","a8f"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/operations/security-overview",component:d("/docs/33.0.0/operations/security-overview","5b4"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/operations/security-user-auth",component:d("/docs/33.0.0/operations/security-user-auth","14c"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/operations/segment-optimization",component:d("/docs/33.0.0/operations/segment-optimization","11c"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/operations/single-server",component:d("/docs/33.0.0/operations/single-server","4e8"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/operations/tls-support",component:d("/docs/33.0.0/operations/tls-support","3c7"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/operations/use_sbt_to_build_fat_jar",component:d("/docs/33.0.0/operations/use_sbt_to_build_fat_jar","9b3"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/operations/web-console",component:d("/docs/33.0.0/operations/web-console","3c0"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/querying/",component:d("/docs/33.0.0/querying/","b6f"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/querying/aggregations",component:d("/docs/33.0.0/querying/aggregations","ca4"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/querying/arrays",component:d("/docs/33.0.0/querying/arrays","acb"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/querying/caching",component:d("/docs/33.0.0/querying/caching","20e"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/querying/datasource",component:d("/docs/33.0.0/querying/datasource","d07"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/querying/datasourcemetadataquery",component:d("/docs/33.0.0/querying/datasourcemetadataquery","e13"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/querying/dimensionspecs",component:d("/docs/33.0.0/querying/dimensionspecs","2df"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/querying/filters",component:d("/docs/33.0.0/querying/filters","bab"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/querying/geo",component:d("/docs/33.0.0/querying/geo","f40"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/querying/granularities",component:d("/docs/33.0.0/querying/granularities","ecb"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/querying/groupbyquery",component:d("/docs/33.0.0/querying/groupbyquery","6a7"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/querying/having",component:d("/docs/33.0.0/querying/having","268"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/querying/hll-old",component:d("/docs/33.0.0/querying/hll-old","0ba"),exact:!0},{path:"/docs/33.0.0/querying/joins",component:d("/docs/33.0.0/querying/joins","efe"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/querying/kafka-extraction-namespace",component:d("/docs/33.0.0/querying/kafka-extraction-namespace","031"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/querying/limitspec",component:d("/docs/33.0.0/querying/limitspec","439"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/querying/lookups",component:d("/docs/33.0.0/querying/lookups","0f4"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/querying/lookups-cached-global",component:d("/docs/33.0.0/querying/lookups-cached-global","029"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/querying/math-expr",component:d("/docs/33.0.0/querying/math-expr","5a3"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/querying/multi-value-dimensions",component:d("/docs/33.0.0/querying/multi-value-dimensions","ed5"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/querying/multitenancy",component:d("/docs/33.0.0/querying/multitenancy","f0d"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/querying/nested-columns",component:d("/docs/33.0.0/querying/nested-columns","343"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/querying/post-aggregations",component:d("/docs/33.0.0/querying/post-aggregations","726"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/querying/query-context",component:d("/docs/33.0.0/querying/query-context","352"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/querying/query-deep-storage",component:d("/docs/33.0.0/querying/query-deep-storage","f1a"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/querying/query-execution",component:d("/docs/33.0.0/querying/query-execution","068"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/querying/query-processing",component:d("/docs/33.0.0/querying/query-processing","1fe"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/querying/scan-query",component:d("/docs/33.0.0/querying/scan-query","760"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/querying/searchquery",component:d("/docs/33.0.0/querying/searchquery","450"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/querying/segmentmetadataquery",component:d("/docs/33.0.0/querying/segmentmetadataquery","a49"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/querying/select-query",component:d("/docs/33.0.0/querying/select-query","a77"),exact:!0},{path:"/docs/33.0.0/querying/sorting-orders",component:d("/docs/33.0.0/querying/sorting-orders","341"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/querying/sql",component:d("/docs/33.0.0/querying/sql","60d"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/querying/sql-aggregations",component:d("/docs/33.0.0/querying/sql-aggregations","ec4"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/querying/sql-array-functions",component:d("/docs/33.0.0/querying/sql-array-functions","f1e"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/querying/sql-data-types",component:d("/docs/33.0.0/querying/sql-data-types","94d"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/querying/sql-functions",component:d("/docs/33.0.0/querying/sql-functions","73e"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/querying/sql-json-functions",component:d("/docs/33.0.0/querying/sql-json-functions","2df"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/querying/sql-metadata-tables",component:d("/docs/33.0.0/querying/sql-metadata-tables","b28"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/querying/sql-multivalue-string-functions",component:d("/docs/33.0.0/querying/sql-multivalue-string-functions","820"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/querying/sql-operators",component:d("/docs/33.0.0/querying/sql-operators","ea5"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/querying/sql-query-context",component:d("/docs/33.0.0/querying/sql-query-context","a58"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/querying/sql-scalar",component:d("/docs/33.0.0/querying/sql-scalar","8f0"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/querying/sql-translation",component:d("/docs/33.0.0/querying/sql-translation","461"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/querying/sql-window-functions",component:d("/docs/33.0.0/querying/sql-window-functions","492"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/querying/timeboundaryquery",component:d("/docs/33.0.0/querying/timeboundaryquery","11f"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/querying/timeseriesquery",component:d("/docs/33.0.0/querying/timeseriesquery","09f"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/querying/tips-good-queries",component:d("/docs/33.0.0/querying/tips-good-queries","53b"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/querying/topnmetricspec",component:d("/docs/33.0.0/querying/topnmetricspec","481"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/querying/topnquery",component:d("/docs/33.0.0/querying/topnquery","b05"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/querying/troubleshooting",component:d("/docs/33.0.0/querying/troubleshooting","a87"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/querying/using-caching",component:d("/docs/33.0.0/querying/using-caching","26b"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/querying/virtual-columns",component:d("/docs/33.0.0/querying/virtual-columns","902"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/release-info/migr-ansi-sql-null",component:d("/docs/33.0.0/release-info/migr-ansi-sql-null","382"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/release-info/migr-front-coded-dict",component:d("/docs/33.0.0/release-info/migr-front-coded-dict","3da"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/release-info/migr-mvd-array",component:d("/docs/33.0.0/release-info/migr-mvd-array","eb2"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/release-info/migr-subquery-limit",component:d("/docs/33.0.0/release-info/migr-subquery-limit","a3f"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/release-info/migration-guide",component:d("/docs/33.0.0/release-info/migration-guide","a91"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/release-info/release-notes",component:d("/docs/33.0.0/release-info/release-notes","bf4"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/release-info/upgrade-notes",component:d("/docs/33.0.0/release-info/upgrade-notes","a44"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/tutorials/",component:d("/docs/33.0.0/tutorials/","f80"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/tutorials/cluster",component:d("/docs/33.0.0/tutorials/cluster","15b"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/tutorials/docker",component:d("/docs/33.0.0/tutorials/docker","809"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/tutorials/tutorial-append-data",component:d("/docs/33.0.0/tutorials/tutorial-append-data","3d3"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/tutorials/tutorial-batch",component:d("/docs/33.0.0/tutorials/tutorial-batch","aac"),exact:!0},{path:"/docs/33.0.0/tutorials/tutorial-batch-hadoop",component:d("/docs/33.0.0/tutorials/tutorial-batch-hadoop","713"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/tutorials/tutorial-batch-native",component:d("/docs/33.0.0/tutorials/tutorial-batch-native","339"),exact:!0},{path:"/docs/33.0.0/tutorials/tutorial-compaction",component:d("/docs/33.0.0/tutorials/tutorial-compaction","e5b"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/tutorials/tutorial-delete-data",component:d("/docs/33.0.0/tutorials/tutorial-delete-data","c7f"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/tutorials/tutorial-extern",component:d("/docs/33.0.0/tutorials/tutorial-extern","f8e"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/tutorials/tutorial-ingestion-spec",component:d("/docs/33.0.0/tutorials/tutorial-ingestion-spec","d39"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/tutorials/tutorial-jdbc",component:d("/docs/33.0.0/tutorials/tutorial-jdbc","7e7"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/tutorials/tutorial-kafka",component:d("/docs/33.0.0/tutorials/tutorial-kafka","d52"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/tutorials/tutorial-kerberos-hadoop",component:d("/docs/33.0.0/tutorials/tutorial-kerberos-hadoop","49c"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/tutorials/tutorial-latest-by",component:d("/docs/33.0.0/tutorials/tutorial-latest-by","863"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/tutorials/tutorial-msq-convert-spec",component:d("/docs/33.0.0/tutorials/tutorial-msq-convert-spec","82a"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/tutorials/tutorial-msq-extern",component:d("/docs/33.0.0/tutorials/tutorial-msq-extern","0f4"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/tutorials/tutorial-query",component:d("/docs/33.0.0/tutorials/tutorial-query","0f2"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/tutorials/tutorial-query-deep-storage",component:d("/docs/33.0.0/tutorials/tutorial-query-deep-storage","3b1"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/tutorials/tutorial-retention",component:d("/docs/33.0.0/tutorials/tutorial-retention","16c"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/tutorials/tutorial-rollup",component:d("/docs/33.0.0/tutorials/tutorial-rollup","753"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/tutorials/tutorial-sketches-theta",component:d("/docs/33.0.0/tutorials/tutorial-sketches-theta","094"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/tutorials/tutorial-sql-null",component:d("/docs/33.0.0/tutorials/tutorial-sql-null","560"),exact:!0},{path:"/docs/33.0.0/tutorials/tutorial-sql-query-view",component:d("/docs/33.0.0/tutorials/tutorial-sql-query-view","7b3"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/tutorials/tutorial-transform",component:d("/docs/33.0.0/tutorials/tutorial-transform","020"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/tutorials/tutorial-unnest-arrays",component:d("/docs/33.0.0/tutorials/tutorial-unnest-arrays","392"),exact:!0,sidebar:"docs"},{path:"/docs/33.0.0/tutorials/tutorial-update-data",component:d("/docs/33.0.0/tutorials/tutorial-update-data","4a8"),exact:!0,sidebar:"docs"}]}]}]},{path:"/",component:d("/","2e1"),exact:!0},{path:"*",component:d("*")}]},50372:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(96540);const o=n(61934).A.canUseDOM?r.useLayoutEffect:r.useEffect},50539:(e,t,n)=>{"use strict";n.d(t,{A:()=>l,T:()=>c});var r=n(96540),o=n(74848);function a(e,t){var n=e.split(/(\{\w+\})/).map((function(e,n){if(n%2==1){var r=null==t?void 0:t[e.slice(1,-1)];if(void 0!==r)return r}return e}));return n.some((function(e){return(0,r.isValidElement)(e)}))?n.map((function(e,t){return(0,r.isValidElement)(e)?r.cloneElement(e,{key:t}):e})).filter((function(e){return""!==e})):n.join("")}var i=n(22654);function s(e){var t,n,r=e.id,o=e.message;if(void 0===r&&void 0===o)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return null!=(t=null!=(n=i[null!=r?r:o])?n:o)?t:r}function c(e,t){return a(s({message:e.message,id:e.id}),t)}function l(e){var t=e.children,n=e.id,r=e.values;if(t&&"string"!=typeof t)throw console.warn("Illegal <Translate> children",t),new Error("The Docusaurus <Translate> component only accept simple string values");var i=s({message:t,id:n});return(0,o.jsx)(o.Fragment,{children:a(i,r)})}},52528:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=function e(t){if(t.cause)return[t].concat(e(t.cause));return[t]}},53115:(e,t,n)=>{"use strict";n.d(t,{p:()=>o});var r=n(40797);function o(){return(0,r.A)().siteConfig.themeConfig}},53259:(e,t,n)=>{"use strict";function r(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}function o(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(){return i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i.apply(this,arguments)}var s=n(96540),c=[],l=[];var u=s.createContext(null);function d(e){var t=e(),n={loading:!0,loaded:null,error:null};return n.promise=t.then((function(e){return n.loading=!1,n.loaded=e,e})).catch((function(e){throw n.loading=!1,n.error=e,e})),n}function p(e){var t={loading:!1,loaded:{},error:null},n=[];try{Object.keys(e).forEach((function(r){var o=d(e[r]);o.loading?t.loading=!0:(t.loaded[r]=o.loaded,t.error=o.error),n.push(o.promise),o.promise.then((function(e){t.loaded[r]=e})).catch((function(e){t.error=e}))}))}catch(r){t.error=r}return t.promise=Promise.all(n).then((function(e){return t.loading=!1,e})).catch((function(e){throw t.loading=!1,e})),t}function f(e,t){return s.createElement((n=e)&&n.__esModule?n.default:n,t);var n}function m(e,t){var d,p;if(!t.loading)throw new Error("react-loadable requires a `loading` component");var m=i({loader:null,loading:null,delay:200,timeout:null,render:f,webpack:null,modules:null},t),h=null;function g(){return h||(h=e(m.loader)),h.promise}return c.push(g),"function"==typeof m.webpack&&l.push((function(){if((0,m.webpack)().every((function(e){return void 0!==e&&void 0!==n.m[e]})))return g()})),p=d=function(t){function n(n){var r;return a(o(o(r=t.call(this,n)||this)),"retry",(function(){r.setState({error:null,loading:!0,timedOut:!1}),h=e(m.loader),r._loadModule()})),g(),r.state={error:h.error,pastDelay:!1,timedOut:!1,loading:h.loading,loaded:h.loaded},r}r(n,t),n.preload=function(){return g()};var i=n.prototype;return i.UNSAFE_componentWillMount=function(){this._loadModule()},i.componentDidMount=function(){this._mounted=!0},i._loadModule=function(){var e=this;if(this.context&&Array.isArray(m.modules)&&m.modules.forEach((function(t){e.context.report(t)})),h.loading){var t=function(t){e._mounted&&e.setState(t)};"number"==typeof m.delay&&(0===m.delay?this.setState({pastDelay:!0}):this._delay=setTimeout((function(){t({pastDelay:!0})}),m.delay)),"number"==typeof m.timeout&&(this._timeout=setTimeout((function(){t({timedOut:!0})}),m.timeout));var n=function(){t({error:h.error,loaded:h.loaded,loading:h.loading}),e._clearTimeouts()};h.promise.then((function(){return n(),null})).catch((function(e){return n(),null}))}},i.componentWillUnmount=function(){this._mounted=!1,this._clearTimeouts()},i._clearTimeouts=function(){clearTimeout(this._delay),clearTimeout(this._timeout)},i.render=function(){return this.state.loading||this.state.error?s.createElement(m.loading,{isLoading:this.state.loading,pastDelay:this.state.pastDelay,timedOut:this.state.timedOut,error:this.state.error,retry:this.retry}):this.state.loaded?m.render(this.state.loaded,this.props):null},n}(s.Component),a(d,"contextType",u),p}function h(e){return m(d,e)}h.Map=function(e){if("function"!=typeof e.render)throw new Error("LoadableMap requires a `render(loaded, props)` function");return m(p,e)};var g=function(e){function t(){return e.apply(this,arguments)||this}return r(t,e),t.prototype.render=function(){return s.createElement(u.Provider,{value:{report:this.props.report}},s.Children.only(this.props.children))},t}(s.Component);function b(e){for(var t=[];e.length;){var n=e.pop();t.push(n())}return Promise.all(t).then((function(){if(e.length)return b(e)}))}h.Capture=g,h.preloadAll=function(){return new Promise((function(e,t){b(c).then(e,t)}))},h.preloadReady=function(){return new Promise((function(e,t){b(l).then(e,e)}))},e.exports=h},54332:(e,t,n)=>{"use strict";n.d(t,{W:()=>r});var r="default"},54625:(e,t,n)=>{"use strict";n.d(t,{I9:()=>d,Kd:()=>u,N_:()=>b,k2:()=>x});var r=n(56347),o=n(77387),a=n(96540),i=n(31513),s=n(58168),c=n(98587),l=n(11561),u=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return(t=e.call.apply(e,[this].concat(r))||this).history=(0,i.zR)(t.props),t}return(0,o.A)(t,e),t.prototype.render=function(){return a.createElement(r.Ix,{history:this.history,children:this.props.children})},t}(a.Component);var d=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return(t=e.call.apply(e,[this].concat(r))||this).history=(0,i.TM)(t.props),t}return(0,o.A)(t,e),t.prototype.render=function(){return a.createElement(r.Ix,{history:this.history,children:this.props.children})},t}(a.Component);var p=function(e,t){return"function"==typeof e?e(t):e},f=function(e,t){return"string"==typeof e?(0,i.yJ)(e,null,null,t):e},m=function(e){return e},h=a.forwardRef;void 0===h&&(h=m);var g=h((function(e,t){var n=e.innerRef,r=e.navigate,o=e.onClick,i=(0,c.A)(e,["innerRef","navigate","onClick"]),l=i.target,u=(0,s.A)({},i,{onClick:function(e){try{o&&o(e)}catch(t){throw e.preventDefault(),t}e.defaultPrevented||0!==e.button||l&&"_self"!==l||function(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}(e)||(e.preventDefault(),r())}});return u.ref=m!==h&&t||n,a.createElement("a",u)}));var b=h((function(e,t){var n=e.component,o=void 0===n?g:n,u=e.replace,d=e.to,b=e.innerRef,y=(0,c.A)(e,["component","replace","to","innerRef"]);return a.createElement(r.XZ.Consumer,null,(function(e){e||(0,l.A)(!1);var n=e.history,r=f(p(d,e.location),e.location),c=r?n.createHref(r):"",g=(0,s.A)({},y,{href:c,navigate:function(){var t=p(d,e.location),r=(0,i.AO)(e.location)===(0,i.AO)(f(t));(u||r?n.replace:n.push)(t)}});return m!==h?g.ref=t||b:g.innerRef=b,a.createElement(o,g)}))})),y=function(e){return e},v=a.forwardRef;void 0===v&&(v=y);var x=v((function(e,t){var n=e["aria-current"],o=void 0===n?"page":n,i=e.activeClassName,u=void 0===i?"active":i,d=e.activeStyle,m=e.className,h=e.exact,g=e.isActive,x=e.location,w=e.sensitive,k=e.strict,_=e.style,S=e.to,E=e.innerRef,C=(0,c.A)(e,["aria-current","activeClassName","activeStyle","className","exact","isActive","location","sensitive","strict","style","to","innerRef"]);return a.createElement(r.XZ.Consumer,null,(function(e){e||(0,l.A)(!1);var n=x||e.location,i=f(p(S,n),n),c=i.pathname,A=c&&c.replace(/([.+*?=^!:${}()[\]|/\\])/g,"\\$1"),q=A?(0,r.B6)(n.pathname,{path:A,exact:h,sensitive:w,strict:k}):null,j=!!(g?g(q,n):q),T="function"==typeof m?m(j):m,N="function"==typeof _?_(j):_;j&&(T=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.filter((function(e){return e})).join(" ")}(T,u),N=(0,s.A)({},N,d));var O=(0,s.A)({"aria-current":j&&o||null,className:T,style:N,to:i},C);return y!==v?O.ref=t||E:O.innerRef=E,a.createElement(b,O)}))}))},55119:(e,t,n)=>{"use strict";n.r(t)},56289:(e,t,n)=>{"use strict";n.d(t,{A:()=>h});var r=n(98587),o=n(96540),a=n(54625),i=n(30099),s=n(40797),c=n(22887),l=n(61934),u=n(25246),d=n(29030),p=n(74848),f=["isNavLink","to","href","activeClassName","isActive","data-noBrokenLinkCheck","autoAddBaseUrl"];function m(e,t){var n,m,h,g=e.isNavLink,b=e.to,y=e.href,v=e.activeClassName,x=e.isActive,w=e["data-noBrokenLinkCheck"],k=e.autoAddBaseUrl,_=void 0===k||k,S=(0,r.A)(e,f),E=(0,s.A)().siteConfig,C=E.trailingSlash,A=E.baseUrl,q=E.future.experimental_router,j=(0,d.hH)().withBaseUrl,T=(0,u.A)(),N=(0,o.useRef)(null);(0,o.useImperativeHandle)(t,(function(){return N.current}));var O=b||y;var R,P,L=(0,c.A)(O),I=null==O?void 0:O.replace("pathname://",""),D=void 0!==I?(R=I,_&&function(e){return e.startsWith("/")}(R)?j(R):R):void 0;"hash"===q&&null!=(n=D)&&n.startsWith("./")&&(D=null==(P=D)?void 0:P.slice(1));D&&L&&(D=(0,i.Ks)(D,{trailingSlash:C,baseUrl:A}));var M=(0,o.useRef)(!1),F=g?a.k2:a.N_,z=l.A.canUseIntersectionObserver,B=(0,o.useRef)(),U=function(){M.current||null==D||(window.docusaurus.preload(D),M.current=!0)};(0,o.useEffect)((function(){return!z&&L&&l.A.canUseDOM&&null!=D&&window.docusaurus.prefetch(D),function(){z&&B.current&&B.current.disconnect()}}),[B,D,z,L]);var $=null!=(m=null==(h=D)?void 0:h.startsWith("#"))&&m,H=!S.target||"_self"===S.target,W=!D||!L||!H||$&&"hash"!==q;w||!$&&W||T.collectLink(D),S.id&&T.collectAnchor(S.id);var G={};return W?(0,p.jsx)("a",Object.assign({ref:N,href:D},O&&!L&&{target:"_blank",rel:"noopener noreferrer"},S,G)):(0,p.jsx)(F,Object.assign({},S,{onMouseEnter:U,onTouchStart:U,innerRef:function(e){N.current=e,z&&e&&L&&(B.current=new window.IntersectionObserver((function(t){t.forEach((function(t){e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(B.current.unobserve(e),B.current.disconnect(),null!=D&&window.docusaurus.prefetch(D))}))})),B.current.observe(e))},to:D},g&&{isActive:x,activeClassName:v},G))}const h=o.forwardRef(m)},56347:(e,t,n)=>{"use strict";n.d(t,{B6:()=>_,Ix:()=>v,W6:()=>O,XZ:()=>y,dO:()=>T,qh:()=>S,zy:()=>R});var r=n(77387),o=n(96540),a=n(5556),i=n.n(a),s=n(31513),c=n(11561),l=n(58168),u=n(35302),d=n.n(u),p=(n(44363),n(98587)),f=(n(4146),1073741823),m="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==n.g?n.g:{};var h=o.createContext||function(e,t){var n,a,s="__create-react-context-"+function(){var e="__global_unique_id__";return m[e]=(m[e]||0)+1}()+"__",c=function(e){function n(){for(var t,n,r,o=arguments.length,a=new Array(o),i=0;i<o;i++)a[i]=arguments[i];return(t=e.call.apply(e,[this].concat(a))||this).emitter=(n=t.props.value,r=[],{on:function(e){r.push(e)},off:function(e){r=r.filter((function(t){return t!==e}))},get:function(){return n},set:function(e,t){n=e,r.forEach((function(e){return e(n,t)}))}}),t}(0,r.A)(n,e);var o=n.prototype;return o.getChildContext=function(){var e;return(e={})[s]=this.emitter,e},o.componentWillReceiveProps=function(e){if(this.props.value!==e.value){var n,r=this.props.value,o=e.value;((a=r)===(i=o)?0!==a||1/a==1/i:a!=a&&i!=i)?n=0:(n="function"==typeof t?t(r,o):f,0!==(n|=0)&&this.emitter.set(e.value,n))}var a,i},o.render=function(){return this.props.children},n}(o.Component);c.childContextTypes=((n={})[s]=i().object.isRequired,n);var l=function(t){function n(){for(var e,n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return(e=t.call.apply(t,[this].concat(r))||this).observedBits=void 0,e.state={value:e.getValue()},e.onUpdate=function(t,n){(0|e.observedBits)&n&&e.setState({value:e.getValue()})},e}(0,r.A)(n,t);var o=n.prototype;return o.componentWillReceiveProps=function(e){var t=e.observedBits;this.observedBits=null==t?f:t},o.componentDidMount=function(){this.context[s]&&this.context[s].on(this.onUpdate);var e=this.props.observedBits;this.observedBits=null==e?f:e},o.componentWillUnmount=function(){this.context[s]&&this.context[s].off(this.onUpdate)},o.getValue=function(){return this.context[s]?this.context[s].get():e},o.render=function(){return(e=this.props.children,Array.isArray(e)?e[0]:e)(this.state.value);var e},n}(o.Component);return l.contextTypes=((a={})[s]=i().object,a),{Provider:c,Consumer:l}},g=function(e){var t=h();return t.displayName=e,t},b=g("Router-History"),y=g("Router"),v=function(e){function t(t){var n;return(n=e.call(this,t)||this).state={location:t.history.location},n._isMounted=!1,n._pendingLocation=null,t.staticContext||(n.unlisten=t.history.listen((function(e){n._pendingLocation=e}))),n}(0,r.A)(t,e),t.computeRootMatch=function(e){return{path:"/",url:"/",params:{},isExact:"/"===e}};var n=t.prototype;return n.componentDidMount=function(){var e=this;this._isMounted=!0,this.unlisten&&this.unlisten(),this.props.staticContext||(this.unlisten=this.props.history.listen((function(t){e._isMounted&&e.setState({location:t})}))),this._pendingLocation&&this.setState({location:this._pendingLocation})},n.componentWillUnmount=function(){this.unlisten&&(this.unlisten(),this._isMounted=!1,this._pendingLocation=null)},n.render=function(){return o.createElement(y.Provider,{value:{history:this.props.history,location:this.state.location,match:t.computeRootMatch(this.state.location.pathname),staticContext:this.props.staticContext}},o.createElement(b.Provider,{children:this.props.children||null,value:this.props.history}))},t}(o.Component);o.Component;o.Component;var x={},w=1e4,k=0;function _(e,t){void 0===t&&(t={}),("string"==typeof t||Array.isArray(t))&&(t={path:t});var n=t,r=n.path,o=n.exact,a=void 0!==o&&o,i=n.strict,s=void 0!==i&&i,c=n.sensitive,l=void 0!==c&&c;return[].concat(r).reduce((function(t,n){if(!n&&""!==n)return null;if(t)return t;var r=function(e,t){var n=""+t.end+t.strict+t.sensitive,r=x[n]||(x[n]={});if(r[e])return r[e];var o=[],a={regexp:d()(e,o,t),keys:o};return k<w&&(r[e]=a,k++),a}(n,{end:a,strict:s,sensitive:l}),o=r.regexp,i=r.keys,c=o.exec(e);if(!c)return null;var u=c[0],p=c.slice(1),f=e===u;return a&&!f?null:{path:n,url:"/"===n&&""===u?"/":u,isExact:f,params:i.reduce((function(e,t,n){return e[t.name]=p[n],e}),{})}}),null)}var S=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.A)(t,e),t.prototype.render=function(){var e=this;return o.createElement(y.Consumer,null,(function(t){t||(0,c.A)(!1);var n=e.props.location||t.location,r=e.props.computedMatch?e.props.computedMatch:e.props.path?_(n.pathname,e.props):t.match,a=(0,l.A)({},t,{location:n,match:r}),i=e.props,s=i.children,u=i.component,d=i.render;return Array.isArray(s)&&function(e){return 0===o.Children.count(e)}(s)&&(s=null),o.createElement(y.Provider,{value:a},a.match?s?"function"==typeof s?s(a):s:u?o.createElement(u,a):d?d(a):null:"function"==typeof s?s(a):null)}))},t}(o.Component);function E(e){return"/"===e.charAt(0)?e:"/"+e}function C(e,t){if(!e)return t;var n=E(e);return 0!==t.pathname.indexOf(n)?t:(0,l.A)({},t,{pathname:t.pathname.substr(n.length)})}function A(e){return"string"==typeof e?e:(0,s.AO)(e)}function q(e){return function(){(0,c.A)(!1)}}function j(){}o.Component;var T=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.A)(t,e),t.prototype.render=function(){var e=this;return o.createElement(y.Consumer,null,(function(t){t||(0,c.A)(!1);var n,r,a=e.props.location||t.location;return o.Children.forEach(e.props.children,(function(e){if(null==r&&o.isValidElement(e)){n=e;var i=e.props.path||e.props.from;r=i?_(a.pathname,(0,l.A)({},e.props,{path:i})):t.match}})),r?o.cloneElement(n,{location:a,computedMatch:r}):null}))},t}(o.Component);var N=o.useContext;function O(){return N(b)}function R(){return N(y).location}},58168:(e,t,n)=>{"use strict";function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},r.apply(null,arguments)}n.d(t,{A:()=>r})},61934:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r="undefined"!=typeof window&&"document"in window&&"createElement"in window.document;const o={canUseDOM:r,canUseEventListeners:r&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&"screen"in window}},63065:(e,t,n)=>{"use strict";n.d(t,{GX:()=>l,YL:()=>c,y_:()=>s});var r=n(96540),o=n(102),a=n(74848),i=r.createContext(null);function s(e){var t=e.children,n=(0,r.useState)({component:null,props:null});return(0,a.jsx)(i.Provider,{value:n,children:t})}function c(){var e=(0,r.useContext)(i);if(!e)throw new o.dV("NavbarSecondaryMenuContentProvider");return e[0]}function l(e){var t=e.component,n=e.props,a=(0,r.useContext)(i);if(!a)throw new o.dV("NavbarSecondaryMenuContentProvider");var s=a[1],c=(0,o.Be)(n);return(0,r.useEffect)((function(){s({component:t,props:c})}),[s,t,c]),(0,r.useEffect)((function(){return function(){return s({component:null,props:null})}}),[s]),null}},63157:(e,t,n)=>{var r={"./":8722};function o(e){var t=a(e);return n(t)}function a(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}o.keys=function(){return Object.keys(r)},o.resolve=a,e.exports=o,o.id=63157},63662:(e,t,n)=>{"use strict";function r(e,t){return r=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},r(e,t)}n.d(t,{A:()=>r})},64634:e=>{e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},65627:(e,t,n)=>{"use strict";n.d(t,{Mq:()=>f,Tv:()=>u,a_:()=>m,gk:()=>h});var r=n(96540),o=n(61934),a=n(9136),i=n(50372),s=n(102),c=n(74848);var l=r.createContext(void 0);function u(e){var t,n=e.children,o=(t=(0,r.useRef)(!0),(0,r.useMemo)((function(){return{scrollEventsEnabledRef:t,enableScrollEvents:function(){t.current=!0},disableScrollEvents:function(){t.current=!1}}}),[]));return(0,c.jsx)(l.Provider,{value:o,children:n})}function d(){var e=(0,r.useContext)(l);if(null==e)throw new s.dV("ScrollControllerProvider");return e}var p=function(){return o.A.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null};function f(e,t){void 0===t&&(t=[]);var n=d().scrollEventsEnabledRef,o=(0,r.useRef)(p()),a=(0,s._q)(e);(0,r.useEffect)((function(){var e=function(){if(n.current){var e=p();a(e,o.current),o.current=e}},t={passive:!0};return e(),window.addEventListener("scroll",e,t),function(){return window.removeEventListener("scroll",e,t)}}),[a,n].concat(t))}function m(){var e,t,n,o=d(),a=(e=(0,r.useRef)({elem:null,top:0}),t=(0,r.useCallback)((function(t){e.current={elem:t,top:t.getBoundingClientRect().top}}),[]),n=(0,r.useCallback)((function(){var t=e.current,n=t.elem,r=t.top;if(!n)return{restored:!1};var o=n.getBoundingClientRect().top-r;return o&&window.scrollBy({left:0,top:o}),e.current={elem:null,top:0},{restored:0!==o}}),[]),(0,r.useMemo)((function(){return{save:t,restore:n}}),[n,t])),s=(0,r.useRef)(void 0),c=(0,r.useCallback)((function(e){a.save(e),o.disableScrollEvents(),s.current=function(){var e=a.restore().restored;if(s.current=void 0,e){var t=function(){o.enableScrollEvents(),window.removeEventListener("scroll",t)};window.addEventListener("scroll",t)}else o.enableScrollEvents()}}),[o,a]);return(0,i.A)((function(){queueMicrotask((function(){return null==s.current?void 0:s.current()}))})),{blockElementScrollPositionUntilNextRender:c}}function h(){var e=(0,r.useRef)(null),t=(0,a.A)()&&"smooth"===getComputedStyle(document.documentElement).scrollBehavior;return{startScroll:function(n){e.current=t?function(e){return window.scrollTo({top:e,behavior:"smooth"}),function(){}}(n):function(e){var t=null,n=document.documentElement.scrollTop>e;return function r(){var o=document.documentElement.scrollTop;(n&&o>e||!n&&o<e)&&(t=requestAnimationFrame(r),window.scrollTo(0,Math.floor(.85*(o-e))+e))}(),function(){return t&&cancelAnimationFrame(t)}}(n)},cancelScroll:function(){return null==e.current?void 0:e.current()}}}},67378:(e,t,n)=>{"use strict";n.r(t)},67788:(e,t,n)=>{"use strict";n.d(t,{w:()=>o,J:()=>a});var r=n(96540),o="navigation-with-keyboard";function a(){(0,r.useEffect)((function(){function e(e){"keydown"===e.type&&"Tab"===e.key&&document.body.classList.add(o),"mousedown"===e.type&&document.body.classList.remove(o)}return document.addEventListener("keydown",e),document.addEventListener("mousedown",e),function(){document.body.classList.remove(o),document.removeEventListener("keydown",e),document.removeEventListener("mousedown",e)}}),[])}},67976:(e,t,n)=>{"use strict";n.d(t,{o:()=>i});var r=n(40797),o=n(56347),a=n(30099);function i(){var e=(0,r.A)(),t=e.siteConfig,n=t.baseUrl,i=t.url,s=t.trailingSlash,c=e.i18n,l=c.defaultLocale,u=c.currentLocale,d=(0,o.zy)().pathname,p=(0,a.Ks)(d,{trailingSlash:s,baseUrl:n}),f=u===l?n:n.replace("/"+u+"/","/"),m=p.replace(n,"");return{createUrl:function(e){var t=e.locale;return""+(e.fullyQualified?i:"")+function(e){return e===l?""+f:""+f+e+"/"}(t)+m}}}},68535:(e,t,n)=>{"use strict";n.r(t)},69493:(e,t,n)=>{"use strict";n.d(t,{zK:()=>f,vT:()=>u,Gy:()=>c,HW:()=>m,ht:()=>l,r7:()=>p,jh:()=>d});var r=n(56347),o=n(72077);var a=function(e){return e.versions.find((function(e){return e.isLast}))};function i(e,t){var n,o,a=function(e,t){return[].concat(e.versions).sort((function(e,t){return e.path===t.path?0:e.path.includes(t.path)?-1:t.path.includes(e.path)?1:0})).find((function(e){return!!(0,r.B6)(t,{path:e.path,exact:!1,strict:!1})}))}(e,t),i=null==a?void 0:a.docs.find((function(e){return!!(0,r.B6)(t,{path:e.path,exact:!0,strict:!1})}));return{activeVersion:a,activeDoc:i,alternateDocVersions:i?(n=i.id,o={},e.versions.forEach((function(e){e.docs.forEach((function(t){t.id===n&&(o[e.name]=t)}))})),o):{}}}var s={},c=function(){var e;return null!=(e=(0,o.kh)("docusaurus-plugin-content-docs"))?e:s},l=function(e){try{return(0,o.P_)("docusaurus-plugin-content-docs",e,{failfast:!0})}catch(t){throw new Error("You are using a feature of the Docusaurus docs plugin, but this plugin does not seem to be enabled"+("Default"===e?"":" (pluginId="+e),{cause:t})}};function u(e){return void 0===e&&(e={}),function(e,t,n){void 0===n&&(n={});var o=Object.entries(e).sort((function(e,t){return t[1].path.localeCompare(e[1].path)})).find((function(e){var n=e[1];return!!(0,r.B6)(t,{path:n.path,exact:!1,strict:!1})})),a=o?{pluginId:o[0],pluginData:o[1]}:void 0;if(!a&&n.failfast)throw new Error("Can't find active docs plugin for \""+t+'" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: '+Object.values(e).map((function(e){return e.path})).join(", "));return a}(c(),(0,r.zy)().pathname,e)}function d(e){return l(e).versions}function p(e){var t=l(e);return a(t)}function f(e){return i(l(e),(0,r.zy)().pathname)}function m(e){return function(e,t){var n=a(e);return{latestDocSuggestion:i(e,t).alternateDocVersions[n.name],latestVersionSuggestion:n}}(l(e),(0,r.zy)().pathname)}},69982:(e,t,n)=>{"use strict";e.exports=n(7463)},72077:(e,t,n)=>{"use strict";n.d(t,{P_:()=>i,kh:()=>a});var r=n(40797),o=n(54332);function a(e,t){void 0===t&&(t={});var n=(0,r.A)().globalData[e];if(!n&&t.failfast)throw new Error('Docusaurus plugin global data not found for "'+e+'" plugin.');return n}function i(e,t,n){void 0===t&&(t=o.W),void 0===n&&(n={});var r=a(e),i=null==r?void 0:r[t];if(!i&&n.failfast)throw new Error('Docusaurus plugin global data not found for "'+e+'" plugin with id "'+t+'".');return i}},74848:(e,t,n)=>{"use strict";e.exports=n(21020)},75313:(e,t,n)=>{"use strict";n.d(t,{W:()=>i,o:()=>a});var r=n(96540),o=n(74848),a=r.createContext(null);function i(e){var t=e.children,n=e.value,i=r.useContext(a),s=(0,r.useMemo)((function(){return function(e){var t=e.parent,n=e.value;if(!t){if(!n)throw new Error("Unexpected: no Docusaurus route context found");if(!("plugin"in n))throw new Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute");return n}var r=Object.assign({},t.data,null==n?void 0:n.data);return{plugin:t.plugin,data:r}}({parent:i,value:n})}),[i,n]);return(0,o.jsx)(a.Provider,{value:s,children:t})}},77264:(e,t,n)=>{"use strict";var r,o,a,i=n(78181),s=n(4784);r=i.My,o=s.default.themeConfig.prism.additionalLanguages,a=globalThis.Prism,globalThis.Prism=r,o.forEach((function(e){"php"===e&&n(19700),n(18692)("./prism-"+e)})),delete globalThis.Prism,void 0!==a&&(globalThis.Prism=r)},77387:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(63662);function o(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,(0,r.A)(e,t)}},77685:(e,t,n)=>{"use strict";n.d(t,{$:()=>i});var r=n(96540),o=n(56347),a=n(102);function i(e){var t=(0,o.zy)(),n=(0,a.ZC)(t),i=(0,a._q)(e);(0,r.useEffect)((function(){n&&t!==n&&i({location:t,previousLocation:n})}),[i,t,n])}},78181:(e,t,n)=>{"use strict";n.d(t,{f4:()=>te,My:()=>C});var r=n(96540);function o(e){var t,n,r="";if("string"==typeof e||"number"==typeof e)r+=e;else if("object"==typeof e)if(Array.isArray(e)){var a=e.length;for(t=0;t<a;t++)e[t]&&(n=o(e[t]))&&(r&&(r+=" "),r+=n)}else for(n in e)e[n]&&(r&&(r+=" "),r+=n);return r}const a=function(){for(var e,t,n=0,r="",a=arguments.length;n<a;n++)(e=arguments[n])&&(t=o(e))&&(r&&(r+=" "),r+=t);return r};var i,s,c,l,u,d=Object.create,p=Object.defineProperty,f=Object.defineProperties,m=Object.getOwnPropertyDescriptor,h=Object.getOwnPropertyDescriptors,g=Object.getOwnPropertyNames,b=Object.getOwnPropertySymbols,y=Object.getPrototypeOf,v=Object.prototype.hasOwnProperty,x=Object.prototype.propertyIsEnumerable,w=(e,t,n)=>t in e?p(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,k=(e,t)=>{for(var n in t||(t={}))v.call(t,n)&&w(e,n,t[n]);if(b)for(var n of b(t))x.call(t,n)&&w(e,n,t[n]);return e},_=(e,t)=>f(e,h(t)),S=(e,t)=>{var n={};for(var r in e)v.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&b)for(var r of b(e))t.indexOf(r)<0&&x.call(e,r)&&(n[r]=e[r]);return n},E=(i={"../../node_modules/.pnpm/prismjs@1.29.0_patch_hash=vrxx3pzkik6jpmgpayxfjunetu/node_modules/prismjs/prism.js"(e,t){var n=function(){var e=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,t=0,n={},r={util:{encode:function e(t){return t instanceof o?new o(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/\u00a0/g," ")},type:function(e){return Object.prototype.toString.call(e).slice(8,-1)},objId:function(e){return e.__id||Object.defineProperty(e,"__id",{value:++t}),e.__id},clone:function e(t,n){var o,a;switch(n=n||{},r.util.type(t)){case"Object":if(a=r.util.objId(t),n[a])return n[a];for(var i in o={},n[a]=o,t)t.hasOwnProperty(i)&&(o[i]=e(t[i],n));return o;case"Array":return a=r.util.objId(t),n[a]?n[a]:(o=[],n[a]=o,t.forEach((function(t,r){o[r]=e(t,n)})),o);default:return t}},getLanguage:function(t){for(;t;){var n=e.exec(t.className);if(n)return n[1].toLowerCase();t=t.parentElement}return"none"},setLanguage:function(t,n){t.className=t.className.replace(RegExp(e,"gi"),""),t.classList.add("language-"+n)},isActive:function(e,t,n){for(var r="no-"+t;e;){var o=e.classList;if(o.contains(t))return!0;if(o.contains(r))return!1;e=e.parentElement}return!!n}},languages:{plain:n,plaintext:n,text:n,txt:n,extend:function(e,t){var n=r.util.clone(r.languages[e]);for(var o in t)n[o]=t[o];return n},insertBefore:function(e,t,n,o){var a=(o=o||r.languages)[e],i={};for(var s in a)if(a.hasOwnProperty(s)){if(s==t)for(var c in n)n.hasOwnProperty(c)&&(i[c]=n[c]);n.hasOwnProperty(s)||(i[s]=a[s])}var l=o[e];return o[e]=i,r.languages.DFS(r.languages,(function(t,n){n===l&&t!=e&&(this[t]=i)})),i},DFS:function e(t,n,o,a){a=a||{};var i=r.util.objId;for(var s in t)if(t.hasOwnProperty(s)){n.call(t,s,t[s],o||s);var c=t[s],l=r.util.type(c);"Object"!==l||a[i(c)]?"Array"!==l||a[i(c)]||(a[i(c)]=!0,e(c,n,s,a)):(a[i(c)]=!0,e(c,n,null,a))}}},plugins:{},highlight:function(e,t,n){var a={code:e,grammar:t,language:n};if(r.hooks.run("before-tokenize",a),!a.grammar)throw new Error('The language "'+a.language+'" has no grammar.');return a.tokens=r.tokenize(a.code,a.grammar),r.hooks.run("after-tokenize",a),o.stringify(r.util.encode(a.tokens),a.language)},tokenize:function(e,t){var n=t.rest;if(n){for(var r in n)t[r]=n[r];delete t.rest}var o=new s;return c(o,o.head,e),i(e,o,t,o.head,0),function(e){for(var t=[],n=e.head.next;n!==e.tail;)t.push(n.value),n=n.next;return t}(o)},hooks:{all:{},add:function(e,t){var n=r.hooks.all;n[e]=n[e]||[],n[e].push(t)},run:function(e,t){var n=r.hooks.all[e];if(n&&n.length)for(var o,a=0;o=n[a++];)o(t)}},Token:o};function o(e,t,n,r){this.type=e,this.content=t,this.alias=n,this.length=0|(r||"").length}function a(e,t,n,r){e.lastIndex=t;var o=e.exec(n);if(o&&r&&o[1]){var a=o[1].length;o.index+=a,o[0]=o[0].slice(a)}return o}function i(e,t,n,s,u,d){for(var p in n)if(n.hasOwnProperty(p)&&n[p]){var f=n[p];f=Array.isArray(f)?f:[f];for(var m=0;m<f.length;++m){if(d&&d.cause==p+","+m)return;var h=f[m],g=h.inside,b=!!h.lookbehind,y=!!h.greedy,v=h.alias;if(y&&!h.pattern.global){var x=h.pattern.toString().match(/[imsuy]*$/)[0];h.pattern=RegExp(h.pattern.source,x+"g")}for(var w=h.pattern||h,k=s.next,_=u;k!==t.tail&&!(d&&_>=d.reach);_+=k.value.length,k=k.next){var S=k.value;if(t.length>e.length)return;if(!(S instanceof o)){var E,C=1;if(y){if(!(E=a(w,_,e,b))||E.index>=e.length)break;var A=E.index,q=E.index+E[0].length,j=_;for(j+=k.value.length;A>=j;)j+=(k=k.next).value.length;if(_=j-=k.value.length,k.value instanceof o)continue;for(var T=k;T!==t.tail&&(j<q||"string"==typeof T.value);T=T.next)C++,j+=T.value.length;C--,S=e.slice(_,j),E.index-=_}else if(!(E=a(w,0,S,b)))continue;A=E.index;var N=E[0],O=S.slice(0,A),R=S.slice(A+N.length),P=_+S.length;d&&P>d.reach&&(d.reach=P);var L=k.prev;if(O&&(L=c(t,L,O),_+=O.length),l(t,L,C),k=c(t,L,new o(p,g?r.tokenize(N,g):N,v,N)),R&&c(t,k,R),C>1){var I={cause:p+","+m,reach:P};i(e,t,n,k.prev,_,I),d&&I.reach>d.reach&&(d.reach=I.reach)}}}}}}function s(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function c(e,t,n){var r=t.next,o={value:n,prev:t,next:r};return t.next=o,r.prev=o,e.length++,o}function l(e,t,n){for(var r=t.next,o=0;o<n&&r!==e.tail;o++)r=r.next;t.next=r,r.prev=t,e.length-=o}return o.stringify=function e(t,n){if("string"==typeof t)return t;if(Array.isArray(t)){var o="";return t.forEach((function(t){o+=e(t,n)})),o}var a={type:t.type,content:e(t.content,n),tag:"span",classes:["token",t.type],attributes:{},language:n},i=t.alias;i&&(Array.isArray(i)?Array.prototype.push.apply(a.classes,i):a.classes.push(i)),r.hooks.run("wrap",a);var s="";for(var c in a.attributes)s+=" "+c+'="'+(a.attributes[c]||"").replace(/"/g,"&quot;")+'"';return"<"+a.tag+' class="'+a.classes.join(" ")+'"'+s+">"+a.content+"</"+a.tag+">"},r}();t.exports=n,n.default=n}},function(){return s||(0,i[g(i)[0]])((s={exports:{}}).exports,s),s.exports}),C=((e,t,n)=>(n=null!=e?d(y(e)):{},((e,t,n,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let o of g(t))v.call(e,o)||o===n||p(e,o,{get:()=>t[o],enumerable:!(r=m(t,o))||r.enumerable});return e})(!t&&e&&e.__esModule?n:p(n,"default",{value:e,enumerable:!0}),e)))(E());C.languages.markup={comment:{pattern:/<!--(?:(?!<!--)[\s\S])*?-->/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^<!|>$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},C.languages.markup.tag.inside["attr-value"].inside.entity=C.languages.markup.entity,C.languages.markup.doctype.inside["internal-subset"].inside=C.languages.markup,C.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&amp;/,"&"))})),Object.defineProperty(C.languages.markup.tag,"addInlined",{value:function(e,t){var n;(t=((n=((n={})["language-"+t]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:C.languages[t]},n.cdata=/^<!\[CDATA\[|\]\]>$/i,{"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:n}}))["language-"+t]={pattern:/[\s\S]+/,inside:C.languages[t]},{}))[e]={pattern:RegExp(/(<__[^>]*>)(?:<!\[CDATA\[(?:[^\]]|\](?!\]>))*\]\]>|(?!<!\[CDATA\[)[\s\S])*?(?=<\/__>)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:n},C.languages.insertBefore("markup","cdata",t)}}),Object.defineProperty(C.languages.markup.tag,"addAttribute",{value:function(e,t){C.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+e+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[t,"language-"+t],inside:C.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),C.languages.html=C.languages.markup,C.languages.mathml=C.languages.markup,C.languages.svg=C.languages.markup,C.languages.xml=C.languages.extend("markup",{}),C.languages.ssml=C.languages.xml,C.languages.atom=C.languages.xml,C.languages.rss=C.languages.xml,function(e){var t={pattern:/\\[\\(){}[\]^$+*?|.]/,alias:"escape"},n=/\\(?:x[\da-fA-F]{2}|u[\da-fA-F]{4}|u\{[\da-fA-F]+\}|0[0-7]{0,2}|[123][0-7]{2}|c[a-zA-Z]|.)/,r="(?:[^\\\\-]|"+n.source+")",o=(r=RegExp(r+"-"+r),{pattern:/(<|')[^<>']+(?=[>']$)/,lookbehind:!0,alias:"variable"});e.languages.regex={"char-class":{pattern:/((?:^|[^\\])(?:\\\\)*)\[(?:[^\\\]]|\\[\s\S])*\]/,lookbehind:!0,inside:{"char-class-negation":{pattern:/(^\[)\^/,lookbehind:!0,alias:"operator"},"char-class-punctuation":{pattern:/^\[|\]$/,alias:"punctuation"},range:{pattern:r,inside:{escape:n,"range-punctuation":{pattern:/-/,alias:"operator"}}},"special-escape":t,"char-set":{pattern:/\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},escape:n}},"special-escape":t,"char-set":{pattern:/\.|\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},backreference:[{pattern:/\\(?![123][0-7]{2})[1-9]/,alias:"keyword"},{pattern:/\\k<[^<>']+>/,alias:"keyword",inside:{"group-name":o}}],anchor:{pattern:/[$^]|\\[ABbGZz]/,alias:"function"},escape:n,group:[{pattern:/\((?:\?(?:<[^<>']+>|'[^<>']+'|[>:]|<?[=!]|[idmnsuxU]+(?:-[idmnsuxU]+)?:?))?/,alias:"punctuation",inside:{"group-name":o}},{pattern:/\)/,alias:"punctuation"}],quantifier:{pattern:/(?:[+*?]|\{\d+(?:,\d*)?\})[?+]?/,alias:"number"},alternation:{pattern:/\|/,alias:"keyword"}}}(C),C.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},C.languages.javascript=C.languages.extend("clike",{"class-name":[C.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),C.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,C.languages.insertBefore("javascript","keyword",{regex:{pattern:RegExp(/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)/.source+/\//.source+"(?:"+/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}/.source+"|"+/(?:\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.)*\])*\])*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source+")"+/(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/.source),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:C.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:C.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:C.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:C.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:C.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),C.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:C.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),C.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),C.languages.markup&&(C.languages.markup.tag.addInlined("script","javascript"),C.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),C.languages.js=C.languages.javascript,C.languages.actionscript=C.languages.extend("javascript",{keyword:/\b(?:as|break|case|catch|class|const|default|delete|do|dynamic|each|else|extends|final|finally|for|function|get|if|implements|import|in|include|instanceof|interface|internal|is|namespace|native|new|null|override|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|use|var|void|while|with)\b/,operator:/\+\+|--|(?:[+\-*\/%^]|&&?|\|\|?|<<?|>>?>?|[!=]=?)=?|[~?@]/}),C.languages.actionscript["class-name"].alias="function",delete C.languages.actionscript.parameter,delete C.languages.actionscript["literal-property"],C.languages.markup&&C.languages.insertBefore("actionscript","string",{xml:{pattern:/(^|[^.])<\/?\w+(?:\s+[^\s>\/=]+=("|')(?:\\[\s\S]|(?!\2)[^\\])*\2)*\s*\/?>/,lookbehind:!0,inside:C.languages.markup}}),l=/#(?!\{).+/,u={pattern:/#\{[^}]+\}/,alias:"variable"},(c=C).languages.coffeescript=c.languages.extend("javascript",{comment:l,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:u}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),c.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:l,interpolation:u}}}),c.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:c.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:u}}]}),c.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete c.languages.coffeescript["template-string"],c.languages.coffee=c.languages.coffeescript,function(e){var t=e.languages.javadoclike={parameter:{pattern:/(^[\t ]*(?:\/{3}|\*|\/\*\*)\s*@(?:arg|arguments|param)\s+)\w+/m,lookbehind:!0},keyword:{pattern:/(^[\t ]*(?:\/{3}|\*|\/\*\*)\s*|\{)@[a-z][a-zA-Z-]+\b/m,lookbehind:!0},punctuation:/[{}]/};Object.defineProperty(t,"addSupport",{value:function(t,n){(t="string"==typeof t?[t]:t).forEach((function(t){var r=function(e){e.inside||(e.inside={}),e.inside.rest=n},o="doc-comment";if(a=e.languages[t]){var a,i=a[o];if((i=i||(a=e.languages.insertBefore(t,"comment",{"doc-comment":{pattern:/(^|[^\\])\/\*\*[^/][\s\S]*?(?:\*\/|$)/,lookbehind:!0,alias:"comment"}}))[o])instanceof RegExp&&(i=a[o]={pattern:i}),Array.isArray(i))for(var s=0,c=i.length;s<c;s++)i[s]instanceof RegExp&&(i[s]={pattern:i[s]}),r(i[s]);else r(i)}}))}}),t.addSupport(["java","javascript","php"],t)}(C),function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;(t=(e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:RegExp("@[\\w-](?:"+/[^;{\s"']|\s+(?!\s)/.source+"|"+t.source+")*?"+/(?:;|(?=\s*\{))/.source),inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+t.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+t.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+t.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:t,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css,e.languages.markup))&&(t.tag.addInlined("style","css"),t.tag.addAttribute("style","css"))}(C),function(e){var t=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,n=(t=(e.languages.css.selector={pattern:e.languages.css.selector.pattern,lookbehind:!0,inside:t={"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,"pseudo-class":/:[-\w]+/,class:/\.[-\w]+/,id:/#[-\w]+/,attribute:{pattern:RegExp("\\[(?:[^[\\]\"']|"+t.source+")*\\]"),greedy:!0,inside:{punctuation:/^\[|\]$/,"case-sensitivity":{pattern:/(\s)[si]$/i,lookbehind:!0,alias:"keyword"},namespace:{pattern:/^(\s*)(?:(?!\s)[-*\w\xA0-\uFFFF])*\|(?!=)/,lookbehind:!0,inside:{punctuation:/\|$/}},"attr-name":{pattern:/^(\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+/,lookbehind:!0},"attr-value":[t,{pattern:/(=\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+(?=\s*$)/,lookbehind:!0}],operator:/[|~*^$]?=/}},"n-th":[{pattern:/(\(\s*)[+-]?\d*[\dn](?:\s*[+-]\s*\d+)?(?=\s*\))/,lookbehind:!0,inside:{number:/[\dn]+/,operator:/[+-]/}},{pattern:/(\(\s*)(?:even|odd)(?=\s*\))/i,lookbehind:!0}],combinator:/>|\+|~|\|\|/,punctuation:/[(),]/}},e.languages.css.atrule.inside["selector-function-argument"].inside=t,e.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}}),{pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0}),{pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0});e.languages.insertBefore("css","function",{operator:{pattern:/(\s)[+\-*\/](?=\s)/,lookbehind:!0},hexcode:{pattern:/\B#[\da-f]{3,8}\b/i,alias:"color"},color:[{pattern:/(^|[^\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|RebeccaPurple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\w-])/i,lookbehind:!0},{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:t,number:n,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:t,number:n})}(C),function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r="(?:"+n.source+"(?:[ \t]+"+t.source+")?|"+t.source+"(?:[ \t]+"+n.source+")?)",o=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-]<PLAIN>)(?:[ \t]*(?:(?![#:])<PLAIN>|:<PLAIN>))*/.source.replace(/<PLAIN>/g,(function(){return/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source})),a=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function i(e,t){t=(t||"").replace(/m/g,"")+"m";var n=/([:\-,[{]\s*(?:\s<<prop>>[ \t]+)?)(?:<<value>>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<<prop>>/g,(function(){return r})).replace(/<<value>>/g,(function(){return e}));return RegExp(n,t)}e.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<<prop>>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<<prop>>/g,(function(){return r}))),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<<prop>>[ \t]+)?)<<key>>(?=\s*:\s)/.source.replace(/<<prop>>/g,(function(){return r})).replace(/<<key>>/g,(function(){return"(?:"+o+"|"+a+")"}))),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:i(/\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:i(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:i(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:i(a),lookbehind:!0,greedy:!0},number:{pattern:i(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:n,important:t,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml}(C),function(e){var t=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function n(e){return e=e.replace(/<inner>/g,(function(){return t})),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+e+")")}var r=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,o=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,(function(){return r})),a=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source,i=(e.languages.markdown=e.languages.extend("markup",{}),e.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:e.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+o+a+"(?:"+o+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+o+a+")(?:"+o+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(r),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+o+")"+a+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+o+"$"),inside:{"table-header":{pattern:RegExp(r),alias:"important",inside:e.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:n(/\b__(?:(?!_)<inner>|_(?:(?!_)<inner>)+_)+__\b|\*\*(?:(?!\*)<inner>|\*(?:(?!\*)<inner>)+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:n(/\b_(?:(?!_)<inner>|__(?:(?!_)<inner>)+__)+_\b|\*(?:(?!\*)<inner>|\*\*(?:(?!\*)<inner>)+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:n(/(~~?)(?:(?!~)<inner>)+\2/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:n(/!?\[(?:(?!\])<inner>)+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\])<inner>)+\])/.source),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach((function(t){["url","bold","italic","strike","code-snippet"].forEach((function(n){t!==n&&(e.languages.markdown[t].inside.content.inside[n]=e.languages.markdown[n])}))})),e.hooks.add("after-tokenize",(function(e){"markdown"!==e.language&&"md"!==e.language||function e(t){if(t&&"string"!=typeof t)for(var n=0,r=t.length;n<r;n++){var o,a=t[n];"code"!==a.type?e(a.content):(o=a.content[1],a=a.content[3],o&&a&&"code-language"===o.type&&"code-block"===a.type&&"string"==typeof o.content&&(o=o.content.replace(/\b#/g,"sharp").replace(/\b\+\+/g,"pp"),o="language-"+(o=(/[a-z][\w-]*/i.exec(o)||[""])[0].toLowerCase()),a.alias?"string"==typeof a.alias?a.alias=[a.alias,o]:a.alias.push(o):a.alias=[o]))}}(e.tokens)})),e.hooks.add("wrap",(function(t){if("code-block"===t.type){for(var n="",r=0,o=t.classes.length;r<o;r++){var a=t.classes[r];if(a=/language-(.+)/.exec(a)){n=a[1];break}}var l,u=e.languages[n];u?t.content=e.highlight(t.content.replace(i,"").replace(/&(\w{1,8}|#x?[\da-f]{1,8});/gi,(function(e,t){var n;return"#"===(t=t.toLowerCase())[0]?(n="x"===t[1]?parseInt(t.slice(2),16):Number(t.slice(1)),c(n)):s[t]||e})),u,n):n&&"none"!==n&&e.plugins.autoloader&&(l="md-"+(new Date).valueOf()+"-"+Math.floor(1e16*Math.random()),t.attributes.id=l,e.plugins.autoloader.loadLanguages(n,(function(){var t=document.getElementById(l);t&&(t.innerHTML=e.highlight(t.textContent,e.languages[n],n))})))}})),RegExp(e.languages.markup.tag.pattern.source,"gi")),s={amp:"&",lt:"<",gt:">",quot:'"'},c=String.fromCodePoint||String.fromCharCode;e.languages.md=e.languages.markdown}(C),C.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:C.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:false|true)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/\b[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"atom-input":{pattern:/\b[A-Z]\w*Input\b/,alias:"class-name"},scalar:/\b(?:Boolean|Float|ID|Int|String)\b/,constant:/\b[A-Z][A-Z_\d]*\b/,"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*|:\s*|\[)[A-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-mutation":{pattern:/(\bmutation\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-query":{pattern:/(\bquery\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,"property-query":/\w+(?=\s*\()/,object:/\w+(?=\s*\{)/,punctuation:/[!(){}\[\]:=,]/,property:/\w+/},C.hooks.add("after-tokenize",(function(e){if("graphql"===e.language)for(var t=e.tokens.filter((function(e){return"string"!=typeof e&&"comment"!==e.type&&"scalar"!==e.type})),n=0;n<t.length;){var r=t[n++];if("keyword"===r.type&&"mutation"===r.content){var o=[];if(d(["definition-mutation","punctuation"])&&"("===u(1).content){n+=2;var a=p(/^\($/,/^\)$/);if(-1===a)continue;for(;n<a;n++){var i=u(0);"variable"===i.type&&(f(i,"variable-input"),o.push(i.content))}n=a+1}if(d(["punctuation","property-query"])&&"{"===u(0).content&&(n++,f(u(0),"property-mutation"),0<o.length)){var s=p(/^\{$/,/^\}$/);if(-1!==s)for(var c=n;c<s;c++){var l=t[c];"variable"===l.type&&0<=o.indexOf(l.content)&&f(l,"variable-input")}}}}function u(e){return t[n+e]}function d(e,t){t=t||0;for(var n=0;n<e.length;n++){var r=u(n+t);if(!r||r.type!==e[n])return}return 1}function p(e,r){for(var o=1,a=n;a<t.length;a++){var i=t[a],s=i.content;if("punctuation"===i.type&&"string"==typeof s)if(e.test(s))o++;else if(r.test(s)&&0==--o)return a}return-1}function f(e,t){var n=e.alias;n?Array.isArray(n)||(e.alias=n=[n]):e.alias=n=[],n.push(t)}})),C.languages.sql={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},variable:[{pattern:/@(["'`])(?:\\[\s\S]|(?!\1)[^\\])+\1/,greedy:!0},/@[\w.$]+/],string:{pattern:/(^|[^@\\])("|')(?:\\[\s\S]|(?!\2)[^\\]|\2\2)*\2/,greedy:!0,lookbehind:!0},identifier:{pattern:/(^|[^@\\])`(?:\\[\s\S]|[^`\\]|``)*`/,greedy:!0,lookbehind:!0,inside:{punctuation:/^`|`$/}},function:/\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\s*\()/i,keyword:/\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:COL|_INSERT)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:ING|S)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\b/i,boolean:/\b(?:FALSE|NULL|TRUE)\b/i,number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i,operator:/[-+*\/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/},function(e){var t=e.languages.javascript["template-string"],n=t.pattern.source,r=t.inside.interpolation,o=r.inside["interpolation-punctuation"],a=r.pattern.source;function i(t,r){if(e.languages[t])return{pattern:RegExp("((?:"+r+")\\s*)"+n),lookbehind:!0,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},"embedded-code":{pattern:/[\s\S]+/,alias:t}}}}function s(t,n,r){return t={code:t,grammar:n,language:r},e.hooks.run("before-tokenize",t),t.tokens=e.tokenize(t.code,t.grammar),e.hooks.run("after-tokenize",t),t.tokens}function c(t,n,i){var c=e.tokenize(t,{interpolation:{pattern:RegExp(a),lookbehind:!0}}),l=0,u={},d=(c=s(c.map((function(e){if("string"==typeof e)return e;var n,r;for(e=e.content;-1!==t.indexOf((r=l++,n="___"+i.toUpperCase()+"_"+r+"___")););return u[n]=e,n})).join(""),n,i),Object.keys(u));return l=0,function t(n){for(var a=0;a<n.length;a++){if(l>=d.length)return;var i,c,p,f,m,h,g,b=n[a];"string"==typeof b||"string"==typeof b.content?(i=d[l],-1!==(g=(h="string"==typeof b?b:b.content).indexOf(i))&&(++l,c=h.substring(0,g),m=u[i],p=void 0,(f={})["interpolation-punctuation"]=o,3===(f=e.tokenize(m,f)).length&&((p=[1,1]).push.apply(p,s(f[1],e.languages.javascript,"javascript")),f.splice.apply(f,p)),p=new e.Token("interpolation",f,r.alias,m),f=h.substring(g+i.length),m=[],c&&m.push(c),m.push(p),f&&(t(h=[f]),m.push.apply(m,h)),"string"==typeof b?(n.splice.apply(n,[a,1].concat(m)),a+=m.length-1):b.content=m)):(g=b.content,Array.isArray(g)?t(g):t([g]))}}(c),new e.Token(i,c,"language-"+i,t)}e.languages.javascript["template-string"]=[i("css",/\b(?:styled(?:\([^)]*\))?(?:\s*\.\s*\w+(?:\([^)]*\))*)*|css(?:\s*\.\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source),i("html",/\bhtml|\.\s*(?:inner|outer)HTML\s*\+?=/.source),i("svg",/\bsvg/.source),i("markdown",/\b(?:markdown|md)/.source),i("graphql",/\b(?:gql|graphql(?:\s*\.\s*experimental)?)/.source),i("sql",/\bsql/.source),t].filter(Boolean);var l={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};function u(e){return"string"==typeof e?e:Array.isArray(e)?e.map(u).join(""):u(e.content)}e.hooks.add("after-tokenize",(function(t){t.language in l&&function t(n){for(var r=0,o=n.length;r<o;r++){var a,i,s,l=n[r];"string"!=typeof l&&(a=l.content,Array.isArray(a)?"template-string"===l.type?(l=a[1],3===a.length&&"string"!=typeof l&&"embedded-code"===l.type&&(i=u(l),l=l.alias,l=Array.isArray(l)?l[0]:l,s=e.languages[l])&&(a[1]=c(i,s,l))):t(a):"string"!=typeof a&&t([a]))}}(t.tokens)}))}(C),function(e){e.languages.typescript=e.languages.extend("javascript",{"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|type)\s+)(?!keyof\b)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?:\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),e.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete e.languages.typescript.parameter,delete e.languages.typescript["literal-property"];var t=e.languages.extend("typescript",{});delete t["class-name"],e.languages.typescript["class-name"].inside=t,e.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:t}}}}),e.languages.ts=e.languages.typescript}(C),function(e){var t=e.languages.javascript,n=/\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})+\}/.source,r="(@(?:arg|argument|param|property)\\s+(?:"+n+"\\s+)?)";e.languages.jsdoc=e.languages.extend("javadoclike",{parameter:{pattern:RegExp(r+/(?:(?!\s)[$\w\xA0-\uFFFF.])+(?=\s|$)/.source),lookbehind:!0,inside:{punctuation:/\./}}}),e.languages.insertBefore("jsdoc","keyword",{"optional-parameter":{pattern:RegExp(r+/\[(?:(?!\s)[$\w\xA0-\uFFFF.])+(?:=[^[\]]+)?\](?=\s|$)/.source),lookbehind:!0,inside:{parameter:{pattern:/(^\[)[$\w\xA0-\uFFFF\.]+/,lookbehind:!0,inside:{punctuation:/\./}},code:{pattern:/(=)[\s\S]*(?=\]$)/,lookbehind:!0,inside:t,alias:"language-javascript"},punctuation:/[=[\]]/}},"class-name":[{pattern:RegExp(/(@(?:augments|class|extends|interface|memberof!?|template|this|typedef)\s+(?:<TYPE>\s+)?)[A-Z]\w*(?:\.[A-Z]\w*)*/.source.replace(/<TYPE>/g,(function(){return n}))),lookbehind:!0,inside:{punctuation:/\./}},{pattern:RegExp("(@[a-z]+\\s+)"+n),lookbehind:!0,inside:{string:t.string,number:t.number,boolean:t.boolean,keyword:e.languages.typescript.keyword,operator:/=>|\.\.\.|[&|?:*]/,punctuation:/[.,;=<>{}()[\]]/}}],example:{pattern:/(@example\s+(?!\s))(?:[^@\s]|\s+(?!\s))+?(?=\s*(?:\*\s*)?(?:@\w|\*\/))/,lookbehind:!0,inside:{code:{pattern:/^([\t ]*(?:\*\s*)?)\S.*$/m,lookbehind:!0,inside:t,alias:"language-javascript"}}}}),e.languages.javadoclike.addSupport("javascript",e.languages.jsdoc)}(C),function(e){e.languages.flow=e.languages.extend("javascript",{}),e.languages.insertBefore("flow","keyword",{type:[{pattern:/\b(?:[Bb]oolean|Function|[Nn]umber|[Ss]tring|[Ss]ymbol|any|mixed|null|void)\b/,alias:"class-name"}]}),e.languages.flow["function-variable"].pattern=/(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=\s*(?:function\b|(?:\([^()]*\)(?:\s*:\s*\w+)?|(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/i,delete e.languages.flow.parameter,e.languages.insertBefore("flow","operator",{"flow-punctuation":{pattern:/\{\||\|\}/,alias:"punctuation"}}),Array.isArray(e.languages.flow.keyword)||(e.languages.flow.keyword=[e.languages.flow.keyword]),e.languages.flow.keyword.unshift({pattern:/(^|[^$]\b)(?:Class|declare|opaque|type)\b(?!\$)/,lookbehind:!0},{pattern:/(^|[^$]\B)\$(?:Diff|Enum|Exact|Keys|ObjMap|PropertyType|Record|Shape|Subtype|Supertype|await)\b(?!\$)/,lookbehind:!0})}(C),C.languages.n4js=C.languages.extend("javascript",{keyword:/\b(?:Array|any|boolean|break|case|catch|class|const|constructor|continue|debugger|declare|default|delete|do|else|enum|export|extends|false|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|module|new|null|number|package|private|protected|public|return|set|static|string|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)\b/}),C.languages.insertBefore("n4js","constant",{annotation:{pattern:/@+\w+/,alias:"operator"}}),C.languages.n4jsd=C.languages.n4js,function(e){function t(e,t){return RegExp(e.replace(/<ID>/g,(function(){return/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/.source})),t)}e.languages.insertBefore("javascript","function-variable",{"method-variable":{pattern:RegExp("(\\.\\s*)"+e.languages.javascript["function-variable"].pattern.source),lookbehind:!0,alias:["function-variable","method","function","property-access"]}}),e.languages.insertBefore("javascript","function",{method:{pattern:RegExp("(\\.\\s*)"+e.languages.javascript.function.source),lookbehind:!0,alias:["function","property-access"]}}),e.languages.insertBefore("javascript","constant",{"known-class-name":[{pattern:/\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\b/,alias:"class-name"},{pattern:/\b(?:[A-Z]\w*)Error\b/,alias:"class-name"}]}),e.languages.insertBefore("javascript","keyword",{imports:{pattern:t(/(\bimport\b\s*)(?:<ID>(?:\s*,\s*(?:\*\s*as\s+<ID>|\{[^{}]*\}))?|\*\s*as\s+<ID>|\{[^{}]*\})(?=\s*\bfrom\b)/.source),lookbehind:!0,inside:e.languages.javascript},exports:{pattern:t(/(\bexport\b\s*)(?:\*(?:\s*as\s+<ID>)?(?=\s*\bfrom\b)|\{[^{}]*\})/.source),lookbehind:!0,inside:e.languages.javascript}}),e.languages.javascript.keyword.unshift({pattern:/\b(?:as|default|export|from|import)\b/,alias:"module"},{pattern:/\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\b/,alias:"control-flow"},{pattern:/\bnull\b/,alias:["null","nil"]},{pattern:/\bundefined\b/,alias:"nil"}),e.languages.insertBefore("javascript","operator",{spread:{pattern:/\.{3}/,alias:"operator"},arrow:{pattern:/=>/,alias:"operator"}}),e.languages.insertBefore("javascript","punctuation",{"property-access":{pattern:t(/(\.\s*)#?<ID>/.source),lookbehind:!0},"maybe-class-name":{pattern:/(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,lookbehind:!0},dom:{pattern:/\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\b/,alias:"variable"},console:{pattern:/\bconsole(?=\s*\.)/,alias:"class-name"}});for(var n=["function","function-variable","method","method-variable","property-access"],r=0;r<n.length;r++){var o=n[r],a=e.languages.javascript[o];o=(a="RegExp"===e.util.type(a)?e.languages.javascript[o]={pattern:a}:a).inside||{};(a.inside=o)["maybe-class-name"]=/^[A-Z][\s\S]*/}}(C),function(e){var t=e.util.clone(e.languages.javascript),n=/(?:\s|\/\/.*(?!.)|\/\*(?:[^*]|\*(?!\/))\*\/)/.source,r=/(?:\{(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])*\})/.source,o=/(?:\{<S>*\.{3}(?:[^{}]|<BRACES>)*\})/.source;function a(e,t){return e=e.replace(/<S>/g,(function(){return n})).replace(/<BRACES>/g,(function(){return r})).replace(/<SPREAD>/g,(function(){return o})),RegExp(e,t)}function i(t){for(var n=[],r=0;r<t.length;r++){var o=t[r],a=!1;"string"!=typeof o&&("tag"===o.type&&o.content[0]&&"tag"===o.content[0].type?"</"===o.content[0].content[0].content?0<n.length&&n[n.length-1].tagName===s(o.content[0].content[1])&&n.pop():"/>"!==o.content[o.content.length-1].content&&n.push({tagName:s(o.content[0].content[1]),openedBraces:0}):0<n.length&&"punctuation"===o.type&&"{"===o.content?n[n.length-1].openedBraces++:0<n.length&&0<n[n.length-1].openedBraces&&"punctuation"===o.type&&"}"===o.content?n[n.length-1].openedBraces--:a=!0),(a||"string"==typeof o)&&0<n.length&&0===n[n.length-1].openedBraces&&(a=s(o),r<t.length-1&&("string"==typeof t[r+1]||"plain-text"===t[r+1].type)&&(a+=s(t[r+1]),t.splice(r+1,1)),0<r&&("string"==typeof t[r-1]||"plain-text"===t[r-1].type)&&(a=s(t[r-1])+a,t.splice(r-1,1),r--),t[r]=new e.Token("plain-text",a,null,a)),o.content&&"string"!=typeof o.content&&i(o.content)}}o=a(o).source,e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=a(/<\/?(?:[\w.:-]+(?:<S>+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s{'"/>=]+|<BRACES>))?|<SPREAD>))*<S>*\/?)?>/.source),e.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/,e.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/,e.languages.jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,e.languages.jsx.tag.inside.comment=t.comment,e.languages.insertBefore("inside","attr-name",{spread:{pattern:a(/<SPREAD>/.source),inside:e.languages.jsx}},e.languages.jsx.tag),e.languages.insertBefore("inside","special-attr",{script:{pattern:a(/=<BRACES>/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:e.languages.jsx}}},e.languages.jsx.tag);var s=function(e){return e?"string"==typeof e?e:"string"==typeof e.content?e.content:e.content.map(s).join(""):""};e.hooks.add("after-tokenize",(function(e){"jsx"!==e.language&&"tsx"!==e.language||i(e.tokens)}))}(C),function(e){var t=e.util.clone(e.languages.typescript);(t=(e.languages.tsx=e.languages.extend("jsx",t),delete e.languages.tsx.parameter,delete e.languages.tsx["literal-property"],e.languages.tsx.tag)).pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+t.pattern.source+")",t.pattern.flags),t.lookbehind=!0}(C),C.languages.swift={comment:{pattern:/(^|[^\\:])(?:\/\/.*|\/\*(?:[^/*]|\/(?!\*)|\*(?!\/)|\/\*(?:[^*]|\*(?!\/))*\*\/)*\*\/)/,lookbehind:!0,greedy:!0},"string-literal":[{pattern:RegExp(/(^|[^"#])/.source+"(?:"+/"(?:\\(?:\((?:[^()]|\([^()]*\))*\)|\r\n|[^(])|[^\\\r\n"])*"/.source+"|"+/"""(?:\\(?:\((?:[^()]|\([^()]*\))*\)|[^(])|[^\\"]|"(?!""))*"""/.source+")"+/(?!["#])/.source),lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:/(\\\()(?:[^()]|\([^()]*\))*(?=\))/,lookbehind:!0,inside:null},"interpolation-punctuation":{pattern:/^\)|\\\($/,alias:"punctuation"},punctuation:/\\(?=[\r\n])/,string:/[\s\S]+/}},{pattern:RegExp(/(^|[^"#])(#+)/.source+"(?:"+/"(?:\\(?:#+\((?:[^()]|\([^()]*\))*\)|\r\n|[^#])|[^\\\r\n])*?"/.source+"|"+/"""(?:\\(?:#+\((?:[^()]|\([^()]*\))*\)|[^#])|[^\\])*?"""/.source+")\\2"),lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:/(\\#+\()(?:[^()]|\([^()]*\))*(?=\))/,lookbehind:!0,inside:null},"interpolation-punctuation":{pattern:/^\)|\\#+\($/,alias:"punctuation"},string:/[\s\S]+/}}],directive:{pattern:RegExp(/#/.source+"(?:"+/(?:elseif|if)\b/.source+"(?:[ \t]*"+/(?:![ \t]*)?(?:\b\w+\b(?:[ \t]*\((?:[^()]|\([^()]*\))*\))?|\((?:[^()]|\([^()]*\))*\))(?:[ \t]*(?:&&|\|\|))?/.source+")+|"+/(?:else|endif)\b/.source+")"),alias:"property",inside:{"directive-name":/^#\w+/,boolean:/\b(?:false|true)\b/,number:/\b\d+(?:\.\d+)*\b/,operator:/!|&&|\|\||[<>]=?/,punctuation:/[(),]/}},literal:{pattern:/#(?:colorLiteral|column|dsohandle|file(?:ID|Literal|Path)?|function|imageLiteral|line)\b/,alias:"constant"},"other-directive":{pattern:/#\w+\b/,alias:"property"},attribute:{pattern:/@\w+/,alias:"atrule"},"function-definition":{pattern:/(\bfunc\s+)\w+/,lookbehind:!0,alias:"function"},label:{pattern:/\b(break|continue)\s+\w+|\b[a-zA-Z_]\w*(?=\s*:\s*(?:for|repeat|while)\b)/,lookbehind:!0,alias:"important"},keyword:/\b(?:Any|Protocol|Self|Type|actor|as|assignment|associatedtype|associativity|async|await|break|case|catch|class|continue|convenience|default|defer|deinit|didSet|do|dynamic|else|enum|extension|fallthrough|fileprivate|final|for|func|get|guard|higherThan|if|import|in|indirect|infix|init|inout|internal|is|isolated|lazy|left|let|lowerThan|mutating|none|nonisolated|nonmutating|open|operator|optional|override|postfix|precedencegroup|prefix|private|protocol|public|repeat|required|rethrows|return|right|safe|self|set|some|static|struct|subscript|super|switch|throw|throws|try|typealias|unowned|unsafe|var|weak|where|while|willSet)\b/,boolean:/\b(?:false|true)\b/,nil:{pattern:/\bnil\b/,alias:"constant"},"short-argument":/\$\d+\b/,omit:{pattern:/\b_\b/,alias:"keyword"},number:/\b(?:[\d_]+(?:\.[\de_]+)?|0x[a-f0-9_]+(?:\.[a-f0-9p_]+)?|0b[01_]+|0o[0-7_]+)\b/i,"class-name":/\b[A-Z](?:[A-Z_\d]*[a-z]\w*)?\b/,function:/\b[a-z_]\w*(?=\s*\()/i,constant:/\b(?:[A-Z_]{2,}|k[A-Z][A-Za-z_]+)\b/,operator:/[-+*/%=!<>&|^~?]+|\.[.\-+*/%=!<>&|^~?]+/,punctuation:/[{}[\]();,.:\\]/},C.languages.swift["string-literal"].forEach((function(e){e.inside.interpolation.inside=C.languages.swift})),function(e){e.languages.kotlin=e.languages.extend("clike",{keyword:{pattern:/(^|[^.])\b(?:abstract|actual|annotation|as|break|by|catch|class|companion|const|constructor|continue|crossinline|data|do|dynamic|else|enum|expect|external|final|finally|for|fun|get|if|import|in|infix|init|inline|inner|interface|internal|is|lateinit|noinline|null|object|open|operator|out|override|package|private|protected|public|reified|return|sealed|set|super|suspend|tailrec|this|throw|to|try|typealias|val|var|vararg|when|where|while)\b/,lookbehind:!0},function:[{pattern:/(?:`[^\r\n`]+`|\b\w+)(?=\s*\()/,greedy:!0},{pattern:/(\.)(?:`[^\r\n`]+`|\w+)(?=\s*\{)/,lookbehind:!0,greedy:!0}],number:/\b(?:0[xX][\da-fA-F]+(?:_[\da-fA-F]+)*|0[bB][01]+(?:_[01]+)*|\d+(?:_\d+)*(?:\.\d+(?:_\d+)*)?(?:[eE][+-]?\d+(?:_\d+)*)?[fFL]?)\b/,operator:/\+[+=]?|-[-=>]?|==?=?|!(?:!|==?)?|[\/*%<>]=?|[?:]:?|\.\.|&&|\|\||\b(?:and|inv|or|shl|shr|ushr|xor)\b/}),delete e.languages.kotlin["class-name"];var t={"interpolation-punctuation":{pattern:/^\$\{?|\}$/,alias:"punctuation"},expression:{pattern:/[\s\S]+/,inside:e.languages.kotlin}};e.languages.insertBefore("kotlin","string",{"string-literal":[{pattern:/"""(?:[^$]|\$(?:(?!\{)|\{[^{}]*\}))*?"""/,alias:"multiline",inside:{interpolation:{pattern:/\$(?:[a-z_]\w*|\{[^{}]*\})/i,inside:t},string:/[\s\S]+/}},{pattern:/"(?:[^"\\\r\n$]|\\.|\$(?:(?!\{)|\{[^{}]*\}))*"/,alias:"singleline",inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$(?:[a-z_]\w*|\{[^{}]*\})/i,lookbehind:!0,inside:t},string:/[\s\S]+/}}],char:{pattern:/'(?:[^'\\\r\n]|\\(?:.|u[a-fA-F0-9]{0,4}))'/,greedy:!0}}),delete e.languages.kotlin.string,e.languages.insertBefore("kotlin","keyword",{annotation:{pattern:/\B@(?:\w+:)?(?:[A-Z]\w*|\[[^\]]+\])/,alias:"builtin"}}),e.languages.insertBefore("kotlin","function",{label:{pattern:/\b\w+@|@\w+\b/,alias:"symbol"}}),e.languages.kt=e.languages.kotlin,e.languages.kts=e.languages.kotlin}(C),C.languages.c=C.languages.extend("clike",{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),C.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),C.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},C.languages.c.string],char:C.languages.c.char,comment:C.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:C.languages.c}}}}),C.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/}),delete C.languages.c.boolean,C.languages.objectivec=C.languages.extend("c",{string:{pattern:/@?"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,operator:/-[->]?|\+\+?|!=?|<<?=?|>>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete C.languages.objectivec["class-name"],C.languages.objc=C.languages.objectivec,C.languages.reason=C.languages.extend("clike",{string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:asr|land|lor|lsl|lsr|lxor|mod)\b/}),C.languages.insertBefore("reason","class-name",{char:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,greedy:!0},constructor:/\b[A-Z]\w*\b(?!\s*\.)/,label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete C.languages.reason.function,function(e){for(var t=/\/\*(?:[^*/]|\*(?!\/)|\/(?!\*)|<self>)*\*\//.source,n=0;n<2;n++)t=t.replace(/<self>/g,(function(){return t}));t=t.replace(/<self>/g,(function(){return/[^\s\S]/.source})),e.languages.rust={comment:[{pattern:RegExp(/(^|[^\\])/.source+t),lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/b?"(?:\\[\s\S]|[^\\"])*"|b?r(#*)"(?:[^"]|"(?!\1))*"\1/,greedy:!0},char:{pattern:/b?'(?:\\(?:x[0-7][\da-fA-F]|u\{(?:[\da-fA-F]_*){1,6}\}|.)|[^\\\r\n\t'])'/,greedy:!0},attribute:{pattern:/#!?\[(?:[^\[\]"]|"(?:\\[\s\S]|[^\\"])*")*\]/,greedy:!0,alias:"attr-name",inside:{string:null}},"closure-params":{pattern:/([=(,:]\s*|\bmove\s*)\|[^|]*\||\|[^|]*\|(?=\s*(?:\{|->))/,lookbehind:!0,greedy:!0,inside:{"closure-punctuation":{pattern:/^\||\|$/,alias:"punctuation"},rest:null}},"lifetime-annotation":{pattern:/'\w+/,alias:"symbol"},"fragment-specifier":{pattern:/(\$\w+:)[a-z]+/,lookbehind:!0,alias:"punctuation"},variable:/\$\w+/,"function-definition":{pattern:/(\bfn\s+)\w+/,lookbehind:!0,alias:"function"},"type-definition":{pattern:/(\b(?:enum|struct|trait|type|union)\s+)\w+/,lookbehind:!0,alias:"class-name"},"module-declaration":[{pattern:/(\b(?:crate|mod)\s+)[a-z][a-z_\d]*/,lookbehind:!0,alias:"namespace"},{pattern:/(\b(?:crate|self|super)\s*)::\s*[a-z][a-z_\d]*\b(?:\s*::(?:\s*[a-z][a-z_\d]*\s*::)*)?/,lookbehind:!0,alias:"namespace",inside:{punctuation:/::/}}],keyword:[/\b(?:Self|abstract|as|async|await|become|box|break|const|continue|crate|do|dyn|else|enum|extern|final|fn|for|if|impl|in|let|loop|macro|match|mod|move|mut|override|priv|pub|ref|return|self|static|struct|super|trait|try|type|typeof|union|unsafe|unsized|use|virtual|where|while|yield)\b/,/\b(?:bool|char|f(?:32|64)|[ui](?:8|16|32|64|128|size)|str)\b/],function:/\b[a-z_]\w*(?=\s*(?:::\s*<|\())/,macro:{pattern:/\b\w+!/,alias:"property"},constant:/\b[A-Z_][A-Z_\d]+\b/,"class-name":/\b[A-Z]\w*\b/,namespace:{pattern:/(?:\b[a-z][a-z_\d]*\s*::\s*)*\b[a-z][a-z_\d]*\s*::(?!\s*<)/,inside:{punctuation:/::/}},number:/\b(?:0x[\dA-Fa-f](?:_?[\dA-Fa-f])*|0o[0-7](?:_?[0-7])*|0b[01](?:_?[01])*|(?:(?:\d(?:_?\d)*)?\.)?\d(?:_?\d)*(?:[Ee][+-]?\d+)?)(?:_?(?:f32|f64|[iu](?:8|16|32|64|size)?))?\b/,boolean:/\b(?:false|true)\b/,punctuation:/->|\.\.=|\.{1,3}|::|[{}[\];(),:]/,operator:/[-+*\/%!^]=?|=[=>]?|&[&=]?|\|[|=]?|<<?=?|>>?=?|[@?]/},e.languages.rust["closure-params"].inside.rest=e.languages.rust,e.languages.rust.attribute.inside.string=e.languages.rust.string}(C),C.languages.go=C.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"|`[^`]*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|false|iota|nil|true)\b/,number:[/\b0(?:b[01_]+|o[0-7_]+)i?\b/i,/\b0x(?:[a-f\d_]+(?:\.[a-f\d_]*)?|\.[a-f\d_]+)(?:p[+-]?\d+(?:_\d+)*)?i?(?!\w)/i,/(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?[\d_]+)?i?(?!\w)/i],operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\b/}),C.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete C.languages.go["class-name"],function(e){var t=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,n=/\b(?!<keyword>)\w+(?:\s*\.\s*\w+)*\b/.source.replace(/<keyword>/g,(function(){return t.source}));e.languages.cpp=e.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!<keyword>)\w+/.source.replace(/<keyword>/g,(function(){return t.source}))),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:t,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:false|true)\b/}),e.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:import|module)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/<mod-name>(?:\s*:\s*<mod-name>)?|:\s*<mod-name>/.source.replace(/<mod-name>/g,(function(){return n}))+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),e.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:e.languages.cpp}}}}),e.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),e.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:e.languages.extend("cpp",{})}}),e.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},e.languages.cpp["base-clause"])}(C),C.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},C.languages.python["string-interpolation"].inside.interpolation.inside.rest=C.languages.python,C.languages.py=C.languages.python,C.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},C.languages.webmanifest=C.languages.json;((e,t)=>{for(var n in t)p(e,n,{get:t[n],enumerable:!0})})({},{dracula:()=>A,duotoneDark:()=>q,duotoneLight:()=>j,github:()=>T,gruvboxMaterialDark:()=>V,gruvboxMaterialLight:()=>K,jettwaveDark:()=>$,jettwaveLight:()=>H,nightOwl:()=>N,nightOwlLight:()=>O,oceanicNext:()=>L,okaidia:()=>I,oneDark:()=>W,oneLight:()=>G,palenight:()=>D,shadesOfPurple:()=>M,synthwave84:()=>F,ultramin:()=>z,vsDark:()=>B,vsLight:()=>U});var A={plain:{color:"#F8F8F2",backgroundColor:"#282A36"},styles:[{types:["prolog","constant","builtin"],style:{color:"rgb(189, 147, 249)"}},{types:["inserted","function"],style:{color:"rgb(80, 250, 123)"}},{types:["deleted"],style:{color:"rgb(255, 85, 85)"}},{types:["changed"],style:{color:"rgb(255, 184, 108)"}},{types:["punctuation","symbol"],style:{color:"rgb(248, 248, 242)"}},{types:["string","char","tag","selector"],style:{color:"rgb(255, 121, 198)"}},{types:["keyword","variable"],style:{color:"rgb(189, 147, 249)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(98, 114, 164)"}},{types:["attr-name"],style:{color:"rgb(241, 250, 140)"}}]},q={plain:{backgroundColor:"#2a2734",color:"#9a86fd"},styles:[{types:["comment","prolog","doctype","cdata","punctuation"],style:{color:"#6c6783"}},{types:["namespace"],style:{opacity:.7}},{types:["tag","operator","number"],style:{color:"#e09142"}},{types:["property","function"],style:{color:"#9a86fd"}},{types:["tag-id","selector","atrule-id"],style:{color:"#eeebff"}},{types:["attr-name"],style:{color:"#c4b9fe"}},{types:["boolean","string","entity","url","attr-value","keyword","control","directive","unit","statement","regex","atrule","placeholder","variable"],style:{color:"#ffcc99"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"#c4b9fe"}}]},j={plain:{backgroundColor:"#faf8f5",color:"#728fcb"},styles:[{types:["comment","prolog","doctype","cdata","punctuation"],style:{color:"#b6ad9a"}},{types:["namespace"],style:{opacity:.7}},{types:["tag","operator","number"],style:{color:"#063289"}},{types:["property","function"],style:{color:"#b29762"}},{types:["tag-id","selector","atrule-id"],style:{color:"#2d2006"}},{types:["attr-name"],style:{color:"#896724"}},{types:["boolean","string","entity","url","attr-value","keyword","control","directive","unit","statement","regex","atrule"],style:{color:"#728fcb"}},{types:["placeholder","variable"],style:{color:"#93abdc"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"#896724"}}]},T={plain:{color:"#393A34",backgroundColor:"#f6f8fa"},styles:[{types:["comment","prolog","doctype","cdata"],style:{color:"#999988",fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}},{types:["string","attr-value"],style:{color:"#e3116c"}},{types:["punctuation","operator"],style:{color:"#393A34"}},{types:["entity","url","symbol","number","boolean","variable","constant","property","regex","inserted"],style:{color:"#36acaa"}},{types:["atrule","keyword","attr-name","selector"],style:{color:"#00a4db"}},{types:["function","deleted","tag"],style:{color:"#d73a49"}},{types:["function-variable"],style:{color:"#6f42c1"}},{types:["tag","selector","keyword"],style:{color:"#00009f"}}]},N={plain:{color:"#d6deeb",backgroundColor:"#011627"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)",fontStyle:"italic"}},{types:["inserted","attr-name"],style:{color:"rgb(173, 219, 103)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(99, 119, 119)",fontStyle:"italic"}},{types:["string","url"],style:{color:"rgb(173, 219, 103)"}},{types:["variable"],style:{color:"rgb(214, 222, 235)"}},{types:["number"],style:{color:"rgb(247, 140, 108)"}},{types:["builtin","char","constant","function"],style:{color:"rgb(130, 170, 255)"}},{types:["punctuation"],style:{color:"rgb(199, 146, 234)"}},{types:["selector","doctype"],style:{color:"rgb(199, 146, 234)",fontStyle:"italic"}},{types:["class-name"],style:{color:"rgb(255, 203, 139)"}},{types:["tag","operator","keyword"],style:{color:"rgb(127, 219, 202)"}},{types:["boolean"],style:{color:"rgb(255, 88, 116)"}},{types:["property"],style:{color:"rgb(128, 203, 196)"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)"}}]},O={plain:{color:"#403f53",backgroundColor:"#FBFBFB"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)",fontStyle:"italic"}},{types:["inserted","attr-name"],style:{color:"rgb(72, 118, 214)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(152, 159, 177)",fontStyle:"italic"}},{types:["string","builtin","char","constant","url"],style:{color:"rgb(72, 118, 214)"}},{types:["variable"],style:{color:"rgb(201, 103, 101)"}},{types:["number"],style:{color:"rgb(170, 9, 130)"}},{types:["punctuation"],style:{color:"rgb(153, 76, 195)"}},{types:["function","selector","doctype"],style:{color:"rgb(153, 76, 195)",fontStyle:"italic"}},{types:["class-name"],style:{color:"rgb(17, 17, 17)"}},{types:["tag"],style:{color:"rgb(153, 76, 195)"}},{types:["operator","property","keyword","namespace"],style:{color:"rgb(12, 150, 155)"}},{types:["boolean"],style:{color:"rgb(188, 84, 84)"}}]},R="#c5a5c5",P="#8dc891",L={plain:{backgroundColor:"#282c34",color:"#ffffff"},styles:[{types:["attr-name"],style:{color:R}},{types:["attr-value"],style:{color:P}},{types:["comment","block-comment","prolog","doctype","cdata","shebang"],style:{color:"#999999"}},{types:["property","number","function-name","constant","symbol","deleted"],style:{color:"#5a9bcf"}},{types:["boolean"],style:{color:"#ff8b50"}},{types:["tag"],style:{color:"#fc929e"}},{types:["string"],style:{color:P}},{types:["punctuation"],style:{color:P}},{types:["selector","char","builtin","inserted"],style:{color:"#D8DEE9"}},{types:["function"],style:{color:"#79b6f2"}},{types:["operator","entity","url","variable"],style:{color:"#d7deea"}},{types:["keyword"],style:{color:R}},{types:["atrule","class-name"],style:{color:"#FAC863"}},{types:["important"],style:{fontWeight:"400"}},{types:["bold"],style:{fontWeight:"bold"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}}]},I={plain:{color:"#f8f8f2",backgroundColor:"#272822"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"#f92672",fontStyle:"italic"}},{types:["inserted"],style:{color:"rgb(173, 219, 103)",fontStyle:"italic"}},{types:["comment"],style:{color:"#8292a2",fontStyle:"italic"}},{types:["string","url"],style:{color:"#a6e22e"}},{types:["variable"],style:{color:"#f8f8f2"}},{types:["number"],style:{color:"#ae81ff"}},{types:["builtin","char","constant","function","class-name"],style:{color:"#e6db74"}},{types:["punctuation"],style:{color:"#f8f8f2"}},{types:["selector","doctype"],style:{color:"#a6e22e",fontStyle:"italic"}},{types:["tag","operator","keyword"],style:{color:"#66d9ef"}},{types:["boolean"],style:{color:"#ae81ff"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)",opacity:.7}},{types:["tag","property"],style:{color:"#f92672"}},{types:["attr-name"],style:{color:"#a6e22e !important"}},{types:["doctype"],style:{color:"#8292a2"}},{types:["rule"],style:{color:"#e6db74"}}]},D={plain:{color:"#bfc7d5",backgroundColor:"#292d3e"},styles:[{types:["comment"],style:{color:"rgb(105, 112, 152)",fontStyle:"italic"}},{types:["string","inserted"],style:{color:"rgb(195, 232, 141)"}},{types:["number"],style:{color:"rgb(247, 140, 108)"}},{types:["builtin","char","constant","function"],style:{color:"rgb(130, 170, 255)"}},{types:["punctuation","selector"],style:{color:"rgb(199, 146, 234)"}},{types:["variable"],style:{color:"rgb(191, 199, 213)"}},{types:["class-name","attr-name"],style:{color:"rgb(255, 203, 107)"}},{types:["tag","deleted"],style:{color:"rgb(255, 85, 114)"}},{types:["operator"],style:{color:"rgb(137, 221, 255)"}},{types:["boolean"],style:{color:"rgb(255, 88, 116)"}},{types:["keyword"],style:{fontStyle:"italic"}},{types:["doctype"],style:{color:"rgb(199, 146, 234)",fontStyle:"italic"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)"}},{types:["url"],style:{color:"rgb(221, 221, 221)"}}]},M={plain:{color:"#9EFEFF",backgroundColor:"#2D2A55"},styles:[{types:["changed"],style:{color:"rgb(255, 238, 128)"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)"}},{types:["inserted"],style:{color:"rgb(173, 219, 103)"}},{types:["comment"],style:{color:"rgb(179, 98, 255)",fontStyle:"italic"}},{types:["punctuation"],style:{color:"rgb(255, 255, 255)"}},{types:["constant"],style:{color:"rgb(255, 98, 140)"}},{types:["string","url"],style:{color:"rgb(165, 255, 144)"}},{types:["variable"],style:{color:"rgb(255, 238, 128)"}},{types:["number","boolean"],style:{color:"rgb(255, 98, 140)"}},{types:["attr-name"],style:{color:"rgb(255, 180, 84)"}},{types:["keyword","operator","property","namespace","tag","selector","doctype"],style:{color:"rgb(255, 157, 0)"}},{types:["builtin","char","constant","function","class-name"],style:{color:"rgb(250, 208, 0)"}}]},F={plain:{backgroundColor:"linear-gradient(to bottom, #2a2139 75%, #34294f)",backgroundImage:"#34294f",color:"#f92aad",textShadow:"0 0 2px #100c0f, 0 0 5px #dc078e33, 0 0 10px #fff3"},styles:[{types:["comment","block-comment","prolog","doctype","cdata"],style:{color:"#495495",fontStyle:"italic"}},{types:["punctuation"],style:{color:"#ccc"}},{types:["tag","attr-name","namespace","number","unit","hexcode","deleted"],style:{color:"#e2777a"}},{types:["property","selector"],style:{color:"#72f1b8",textShadow:"0 0 2px #100c0f, 0 0 10px #257c5575, 0 0 35px #21272475"}},{types:["function-name"],style:{color:"#6196cc"}},{types:["boolean","selector-id","function"],style:{color:"#fdfdfd",textShadow:"0 0 2px #001716, 0 0 3px #03edf975, 0 0 5px #03edf975, 0 0 8px #03edf975"}},{types:["class-name","maybe-class-name","builtin"],style:{color:"#fff5f6",textShadow:"0 0 2px #000, 0 0 10px #fc1f2c75, 0 0 5px #fc1f2c75, 0 0 25px #fc1f2c75"}},{types:["constant","symbol"],style:{color:"#f92aad",textShadow:"0 0 2px #100c0f, 0 0 5px #dc078e33, 0 0 10px #fff3"}},{types:["important","atrule","keyword","selector-class"],style:{color:"#f4eee4",textShadow:"0 0 2px #393a33, 0 0 8px #f39f0575, 0 0 2px #f39f0575"}},{types:["string","char","attr-value","regex","variable"],style:{color:"#f87c32"}},{types:["parameter"],style:{fontStyle:"italic"}},{types:["entity","url"],style:{color:"#67cdcc"}},{types:["operator"],style:{color:"ffffffee"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["entity"],style:{cursor:"help"}},{types:["inserted"],style:{color:"green"}}]},z={plain:{color:"#282a2e",backgroundColor:"#ffffff"},styles:[{types:["comment"],style:{color:"rgb(197, 200, 198)"}},{types:["string","number","builtin","variable"],style:{color:"rgb(150, 152, 150)"}},{types:["class-name","function","tag","attr-name"],style:{color:"rgb(40, 42, 46)"}}]},B={plain:{color:"#9CDCFE",backgroundColor:"#1E1E1E"},styles:[{types:["prolog"],style:{color:"rgb(0, 0, 128)"}},{types:["comment"],style:{color:"rgb(106, 153, 85)"}},{types:["builtin","changed","keyword","interpolation-punctuation"],style:{color:"rgb(86, 156, 214)"}},{types:["number","inserted"],style:{color:"rgb(181, 206, 168)"}},{types:["constant"],style:{color:"rgb(100, 102, 149)"}},{types:["attr-name","variable"],style:{color:"rgb(156, 220, 254)"}},{types:["deleted","string","attr-value","template-punctuation"],style:{color:"rgb(206, 145, 120)"}},{types:["selector"],style:{color:"rgb(215, 186, 125)"}},{types:["tag"],style:{color:"rgb(78, 201, 176)"}},{types:["tag"],languages:["markup"],style:{color:"rgb(86, 156, 214)"}},{types:["punctuation","operator"],style:{color:"rgb(212, 212, 212)"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}},{types:["function"],style:{color:"rgb(220, 220, 170)"}},{types:["class-name"],style:{color:"rgb(78, 201, 176)"}},{types:["char"],style:{color:"rgb(209, 105, 105)"}}]},U={plain:{color:"#000000",backgroundColor:"#ffffff"},styles:[{types:["comment"],style:{color:"rgb(0, 128, 0)"}},{types:["builtin"],style:{color:"rgb(0, 112, 193)"}},{types:["number","variable","inserted"],style:{color:"rgb(9, 134, 88)"}},{types:["operator"],style:{color:"rgb(0, 0, 0)"}},{types:["constant","char"],style:{color:"rgb(129, 31, 63)"}},{types:["tag"],style:{color:"rgb(128, 0, 0)"}},{types:["attr-name"],style:{color:"rgb(255, 0, 0)"}},{types:["deleted","string"],style:{color:"rgb(163, 21, 21)"}},{types:["changed","punctuation"],style:{color:"rgb(4, 81, 165)"}},{types:["function","keyword"],style:{color:"rgb(0, 0, 255)"}},{types:["class-name"],style:{color:"rgb(38, 127, 153)"}}]},$={plain:{color:"#f8fafc",backgroundColor:"#011627"},styles:[{types:["prolog"],style:{color:"#000080"}},{types:["comment"],style:{color:"#6A9955"}},{types:["builtin","changed","keyword","interpolation-punctuation"],style:{color:"#569CD6"}},{types:["number","inserted"],style:{color:"#B5CEA8"}},{types:["constant"],style:{color:"#f8fafc"}},{types:["attr-name","variable"],style:{color:"#9CDCFE"}},{types:["deleted","string","attr-value","template-punctuation"],style:{color:"#cbd5e1"}},{types:["selector"],style:{color:"#D7BA7D"}},{types:["tag"],style:{color:"#0ea5e9"}},{types:["tag"],languages:["markup"],style:{color:"#0ea5e9"}},{types:["punctuation","operator"],style:{color:"#D4D4D4"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}},{types:["function"],style:{color:"#7dd3fc"}},{types:["class-name"],style:{color:"#0ea5e9"}},{types:["char"],style:{color:"#D16969"}}]},H={plain:{color:"#0f172a",backgroundColor:"#f1f5f9"},styles:[{types:["prolog"],style:{color:"#000080"}},{types:["comment"],style:{color:"#6A9955"}},{types:["builtin","changed","keyword","interpolation-punctuation"],style:{color:"#0c4a6e"}},{types:["number","inserted"],style:{color:"#B5CEA8"}},{types:["constant"],style:{color:"#0f172a"}},{types:["attr-name","variable"],style:{color:"#0c4a6e"}},{types:["deleted","string","attr-value","template-punctuation"],style:{color:"#64748b"}},{types:["selector"],style:{color:"#D7BA7D"}},{types:["tag"],style:{color:"#0ea5e9"}},{types:["tag"],languages:["markup"],style:{color:"#0ea5e9"}},{types:["punctuation","operator"],style:{color:"#475569"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}},{types:["function"],style:{color:"#0e7490"}},{types:["class-name"],style:{color:"#0ea5e9"}},{types:["char"],style:{color:"#D16969"}}]},W={plain:{backgroundColor:"hsl(220, 13%, 18%)",color:"hsl(220, 14%, 71%)",textShadow:"0 1px rgba(0, 0, 0, 0.3)"},styles:[{types:["comment","prolog","cdata"],style:{color:"hsl(220, 10%, 40%)"}},{types:["doctype","punctuation","entity"],style:{color:"hsl(220, 14%, 71%)"}},{types:["attr-name","class-name","maybe-class-name","boolean","constant","number","atrule"],style:{color:"hsl(29, 54%, 61%)"}},{types:["keyword"],style:{color:"hsl(286, 60%, 67%)"}},{types:["property","tag","symbol","deleted","important"],style:{color:"hsl(355, 65%, 65%)"}},{types:["selector","string","char","builtin","inserted","regex","attr-value"],style:{color:"hsl(95, 38%, 62%)"}},{types:["variable","operator","function"],style:{color:"hsl(207, 82%, 66%)"}},{types:["url"],style:{color:"hsl(187, 47%, 55%)"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"hsl(220, 14%, 71%)"}}]},G={plain:{backgroundColor:"hsl(230, 1%, 98%)",color:"hsl(230, 8%, 24%)"},styles:[{types:["comment","prolog","cdata"],style:{color:"hsl(230, 4%, 64%)"}},{types:["doctype","punctuation","entity"],style:{color:"hsl(230, 8%, 24%)"}},{types:["attr-name","class-name","boolean","constant","number","atrule"],style:{color:"hsl(35, 99%, 36%)"}},{types:["keyword"],style:{color:"hsl(301, 63%, 40%)"}},{types:["property","tag","symbol","deleted","important"],style:{color:"hsl(5, 74%, 59%)"}},{types:["selector","string","char","builtin","inserted","regex","attr-value","punctuation"],style:{color:"hsl(119, 34%, 47%)"}},{types:["variable","operator","function"],style:{color:"hsl(221, 87%, 60%)"}},{types:["url"],style:{color:"hsl(198, 99%, 37%)"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"hsl(230, 8%, 24%)"}}]},V={plain:{color:"#ebdbb2",backgroundColor:"#292828"},styles:[{types:["imports","class-name","maybe-class-name","constant","doctype","builtin","function"],style:{color:"#d8a657"}},{types:["property-access"],style:{color:"#7daea3"}},{types:["tag"],style:{color:"#e78a4e"}},{types:["attr-name","char","url","regex"],style:{color:"#a9b665"}},{types:["attr-value","string"],style:{color:"#89b482"}},{types:["comment","prolog","cdata","operator","inserted"],style:{color:"#a89984"}},{types:["delimiter","boolean","keyword","selector","important","atrule","property","variable","deleted"],style:{color:"#ea6962"}},{types:["entity","number","symbol"],style:{color:"#d3869b"}}]},K={plain:{color:"#654735",backgroundColor:"#f9f5d7"},styles:[{types:["delimiter","boolean","keyword","selector","important","atrule","property","variable","deleted"],style:{color:"#af2528"}},{types:["imports","class-name","maybe-class-name","constant","doctype","builtin"],style:{color:"#b4730e"}},{types:["string","attr-value"],style:{color:"#477a5b"}},{types:["property-access"],style:{color:"#266b79"}},{types:["function","attr-name","char","url"],style:{color:"#72761e"}},{types:["tag"],style:{color:"#b94c07"}},{types:["comment","prolog","cdata","operator","inserted"],style:{color:"#a89984"}},{types:["entity","number","symbol"],style:{color:"#924f79"}}]},Q=/\r\n|\r|\n/,Y=e=>{0===e.length?e.push({types:["plain"],content:"\n",empty:!0}):1===e.length&&""===e[0].content&&(e[0].content="\n",e[0].empty=!0)},J=(e,t)=>{const n=e.length;return n>0&&e[n-1]===t?e:e.concat(t)},Z=e=>{const t=[[]],n=[e],r=[0],o=[e.length];let a=0,i=0,s=[];const c=[s];for(;i>-1;){for(;(a=r[i]++)<o[i];){let e,l=t[i];const u=n[i][a];if("string"==typeof u?(l=i>0?l:["plain"],e=u):(l=J(l,u.type),u.alias&&(l=J(l,u.alias)),e=u.content),"string"!=typeof e){i++,t.push(l),n.push(e),r.push(0),o.push(e.length);continue}const d=e.split(Q),p=d.length;s.push({types:l,content:d[0]});for(let t=1;t<p;t++)Y(s),c.push(s=[]),s.push({types:l,content:d[t]})}i--,t.pop(),n.pop(),r.pop(),o.pop()}return Y(s),c},X=(e,t)=>{const{plain:n}=e,r=e.styles.reduce(((e,n)=>{const{languages:r,style:o}=n;return r&&!r.includes(t)||n.types.forEach((t=>{const n=k(k({},e[t]),o);e[t]=n})),e}),{});return r.root=n,r.plain=_(k({},n),{backgroundColor:void 0}),r},ee=({children:e,language:t,code:n,theme:o,prism:i})=>{const s=t.toLowerCase(),c=X(o,s),l=(e=>(0,r.useCallback)((t=>{var n=t,{className:r,style:o,line:i}=n,s=S(n,["className","style","line"]);const c=_(k({},s),{className:a("token-line",r)});return"object"==typeof e&&"plain"in e&&(c.style=e.plain),"object"==typeof o&&(c.style=k(k({},c.style||{}),o)),c}),[e]))(c),u=(e=>{const t=(0,r.useCallback)((({types:t,empty:n})=>{if(null!=e)return 1===t.length&&"plain"===t[0]?null!=n?{display:"inline-block"}:void 0:1===t.length&&null!=n?e[t[0]]:Object.assign(null!=n?{display:"inline-block"}:{},...t.map((t=>e[t])))}),[e]);return(0,r.useCallback)((e=>{var n=e,{token:r,className:o,style:i}=n,s=S(n,["token","className","style"]);const c=_(k({},s),{className:a("token",...r.types,o),children:r.content,style:t(r)});return null!=i&&(c.style=k(k({},c.style||{}),i)),c}),[t])})(c),d=(({prism:e,code:t,grammar:n,language:o})=>(0,r.useMemo)((()=>{if(null==n)return Z([t]);const r={code:t,grammar:n,language:o,tokens:[]};return e.hooks.run("before-tokenize",r),r.tokens=e.tokenize(t,n),e.hooks.run("after-tokenize",r),Z(r.tokens)}),[t,n,o,e]))({prism:i,language:s,code:n,grammar:i.languages[s]});return e({tokens:d,className:`prism-code language-${s}`,style:null!=c?c.root:{},getLineProps:l,getTokenProps:u})},te=e=>(0,r.createElement)(ee,_(k({},e),{prism:e.prism||C,theme:e.theme||B,code:e.code,language:e.language}))},78749:(e,t,n)=>{"use strict";n.d(t,{Wf:()=>u,Dv:()=>d});var r=n(96540);const o=JSON.parse('{"N":"localStorage","M":""}');var a=o.N;function i(e){var t=e.key,n=e.oldValue,r=e.newValue,o=e.storage;if(n!==r){var a=document.createEvent("StorageEvent");a.initStorageEvent("storage",!1,!1,t,n,r,window.location.href,o),window.dispatchEvent(a)}}function s(e){if(void 0===e&&(e=a),"undefined"==typeof window)throw new Error("Browser storage is not available on Node.js/Docusaurus SSR process.");if("none"===e)return null;try{return window[e]}catch(n){return t=n,c||(console.warn("Docusaurus browser storage is not available.\nPossible reasons: running Docusaurus in an iframe, in an incognito browser session, or using too strict browser privacy settings.",t),c=!0),null}var t}var c=!1;var l={get:function(){return null},set:function(){},del:function(){},listen:function(){return function(){}}};function u(e,t){var n=""+e+o.M;if("undefined"==typeof window)return function(e){function t(){throw new Error('Illegal storage API usage for storage key "'+e+'".\nDocusaurus storage APIs are not supposed to be called on the server-rendering process.\nPlease only call storage APIs in effects and event handlers.')}return{get:t,set:t,del:t,listen:t}}(n);var r=s(null==t?void 0:t.persistence);return null===r?l:{get:function(){try{return r.getItem(n)}catch(e){return console.error("Docusaurus storage error, can't get key="+n,e),null}},set:function(e){try{var t=r.getItem(n);r.setItem(n,e),i({key:n,oldValue:t,newValue:e,storage:r})}catch(o){console.error("Docusaurus storage error, can't set "+n+"="+e,o)}},del:function(){try{var e=r.getItem(n);r.removeItem(n),i({key:n,oldValue:e,newValue:null,storage:r})}catch(t){console.error("Docusaurus storage error, can't delete key="+n,t)}},listen:function(e){try{var t=function(t){t.storageArea===r&&t.key===n&&e(t)};return window.addEventListener("storage",t),function(){return window.removeEventListener("storage",t)}}catch(o){return console.error("Docusaurus storage error, can't listen for changes of key="+n,o),function(){}}}}}function d(e,t){var n=(0,r.useRef)((function(){return null===e?l:u(e,t)})).current(),o=(0,r.useCallback)((function(e){return"undefined"==typeof window?function(){}:n.listen(e)}),[n]);return[(0,r.useSyncExternalStore)(o,(function(){return n.get()}),(function(){return null})),n]}},78867:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a});var r=n(5947),o=n.n(r);o().configure({showSpinner:!1});const a={onRouteUpdate:function(e){var t=e.location,n=e.previousLocation;if(n&&t.pathname!==n.pathname){var r=window.setTimeout((function(){o().start()}),200);return function(){return window.clearTimeout(r)}}},onRouteDidUpdate:function(){o().done()}}},80545:(e,t,n)=>{"use strict";n.d(t,{mg:()=>X,vd:()=>W});var r=n(96540),o=n(5556),a=n.n(o),i=n(30115),s=n.n(i),c=n(20311),l=n.n(c),u=n(2833),d=n.n(u);function p(){return p=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},p.apply(this,arguments)}function f(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,m(e,t)}function m(e,t){return m=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},m(e,t)}function h(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)t.indexOf(n=a[r])>=0||(o[n]=e[n]);return o}var g={BASE:"base",BODY:"body",HEAD:"head",HTML:"html",LINK:"link",META:"meta",NOSCRIPT:"noscript",SCRIPT:"script",STYLE:"style",TITLE:"title",FRAGMENT:"Symbol(react.fragment)"},b={rel:["amphtml","canonical","alternate"]},y={type:["application/ld+json"]},v={charset:"",name:["robots","description"],property:["og:type","og:title","og:url","og:image","og:image:alt","og:description","twitter:url","twitter:title","twitter:description","twitter:image","twitter:image:alt","twitter:card","twitter:site"]},x=Object.keys(g).map((function(e){return g[e]})),w={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"},k=Object.keys(w).reduce((function(e,t){return e[w[t]]=t,e}),{}),_=function(e,t){for(var n=e.length-1;n>=0;n-=1){var r=e[n];if(Object.prototype.hasOwnProperty.call(r,t))return r[t]}return null},S=function(e){var t=_(e,g.TITLE),n=_(e,"titleTemplate");if(Array.isArray(t)&&(t=t.join("")),n&&t)return n.replace(/%s/g,(function(){return t}));var r=_(e,"defaultTitle");return t||r||void 0},E=function(e){return _(e,"onChangeClientState")||function(){}},C=function(e,t){return t.filter((function(t){return void 0!==t[e]})).map((function(t){return t[e]})).reduce((function(e,t){return p({},e,t)}),{})},A=function(e,t){return t.filter((function(e){return void 0!==e[g.BASE]})).map((function(e){return e[g.BASE]})).reverse().reduce((function(t,n){if(!t.length)for(var r=Object.keys(n),o=0;o<r.length;o+=1){var a=r[o].toLowerCase();if(-1!==e.indexOf(a)&&n[a])return t.concat(n)}return t}),[])},q=function(e,t,n){var r={};return n.filter((function(t){return!!Array.isArray(t[e])||(void 0!==t[e]&&console&&"function"==typeof console.warn&&console.warn("Helmet: "+e+' should be of type "Array". Instead found type "'+typeof t[e]+'"'),!1)})).map((function(t){return t[e]})).reverse().reduce((function(e,n){var o={};n.filter((function(e){for(var n,a=Object.keys(e),i=0;i<a.length;i+=1){var s=a[i],c=s.toLowerCase();-1===t.indexOf(c)||"rel"===n&&"canonical"===e[n].toLowerCase()||"rel"===c&&"stylesheet"===e[c].toLowerCase()||(n=c),-1===t.indexOf(s)||"innerHTML"!==s&&"cssText"!==s&&"itemprop"!==s||(n=s)}if(!n||!e[n])return!1;var l=e[n].toLowerCase();return r[n]||(r[n]={}),o[n]||(o[n]={}),!r[n][l]&&(o[n][l]=!0,!0)})).reverse().forEach((function(t){return e.push(t)}));for(var a=Object.keys(o),i=0;i<a.length;i+=1){var s=a[i],c=p({},r[s],o[s]);r[s]=c}return e}),[]).reverse()},j=function(e,t){if(Array.isArray(e)&&e.length)for(var n=0;n<e.length;n+=1)if(e[n][t])return!0;return!1},T=function(e){return Array.isArray(e)?e.join(""):e},N=function(e,t){return Array.isArray(e)?e.reduce((function(e,n){return function(e,t){for(var n=Object.keys(e),r=0;r<n.length;r+=1)if(t[n[r]]&&t[n[r]].includes(e[n[r]]))return!0;return!1}(n,t)?e.priority.push(n):e.default.push(n),e}),{priority:[],default:[]}):{default:e}},O=function(e,t){var n;return p({},e,((n={})[t]=void 0,n))},R=[g.NOSCRIPT,g.SCRIPT,g.STYLE],P=function(e,t){return void 0===t&&(t=!0),!1===t?String(e):String(e).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;")},L=function(e){return Object.keys(e).reduce((function(t,n){var r=void 0!==e[n]?n+'="'+e[n]+'"':""+n;return t?t+" "+r:r}),"")},I=function(e,t){return void 0===t&&(t={}),Object.keys(e).reduce((function(t,n){return t[w[n]||n]=e[n],t}),t)},D=function(e,t){return t.map((function(t,n){var o,a=((o={key:n})["data-rh"]=!0,o);return Object.keys(t).forEach((function(e){var n=w[e]||e;"innerHTML"===n||"cssText"===n?a.dangerouslySetInnerHTML={__html:t.innerHTML||t.cssText}:a[n]=t[e]})),r.createElement(e,a)}))},M=function(e,t,n){switch(e){case g.TITLE:return{toComponent:function(){return n=t.titleAttributes,(o={key:e=t.title})["data-rh"]=!0,a=I(n,o),[r.createElement(g.TITLE,a,e)];var e,n,o,a},toString:function(){return function(e,t,n,r){var o=L(n),a=T(t);return o?"<"+e+' data-rh="true" '+o+">"+P(a,r)+"</"+e+">":"<"+e+' data-rh="true">'+P(a,r)+"</"+e+">"}(e,t.title,t.titleAttributes,n)}};case"bodyAttributes":case"htmlAttributes":return{toComponent:function(){return I(t)},toString:function(){return L(t)}};default:return{toComponent:function(){return D(e,t)},toString:function(){return function(e,t,n){return t.reduce((function(t,r){var o=Object.keys(r).filter((function(e){return!("innerHTML"===e||"cssText"===e)})).reduce((function(e,t){var o=void 0===r[t]?t:t+'="'+P(r[t],n)+'"';return e?e+" "+o:o}),""),a=r.innerHTML||r.cssText||"",i=-1===R.indexOf(e);return t+"<"+e+' data-rh="true" '+o+(i?"/>":">"+a+"</"+e+">")}),"")}(e,t,n)}}}},F=function(e){var t=e.baseTag,n=e.bodyAttributes,r=e.encode,o=e.htmlAttributes,a=e.noscriptTags,i=e.styleTags,s=e.title,c=void 0===s?"":s,l=e.titleAttributes,u=e.linkTags,d=e.metaTags,p=e.scriptTags,f={toComponent:function(){},toString:function(){return""}};if(e.prioritizeSeoTags){var m=function(e){var t=e.linkTags,n=e.scriptTags,r=e.encode,o=N(e.metaTags,v),a=N(t,b),i=N(n,y);return{priorityMethods:{toComponent:function(){return[].concat(D(g.META,o.priority),D(g.LINK,a.priority),D(g.SCRIPT,i.priority))},toString:function(){return M(g.META,o.priority,r)+" "+M(g.LINK,a.priority,r)+" "+M(g.SCRIPT,i.priority,r)}},metaTags:o.default,linkTags:a.default,scriptTags:i.default}}(e);f=m.priorityMethods,u=m.linkTags,d=m.metaTags,p=m.scriptTags}return{priority:f,base:M(g.BASE,t,r),bodyAttributes:M("bodyAttributes",n,r),htmlAttributes:M("htmlAttributes",o,r),link:M(g.LINK,u,r),meta:M(g.META,d,r),noscript:M(g.NOSCRIPT,a,r),script:M(g.SCRIPT,p,r),style:M(g.STYLE,i,r),title:M(g.TITLE,{title:c,titleAttributes:l},r)}},z=[],B=function(e,t){var n=this;void 0===t&&(t="undefined"!=typeof document),this.instances=[],this.value={setHelmet:function(e){n.context.helmet=e},helmetInstances:{get:function(){return n.canUseDOM?z:n.instances},add:function(e){(n.canUseDOM?z:n.instances).push(e)},remove:function(e){var t=(n.canUseDOM?z:n.instances).indexOf(e);(n.canUseDOM?z:n.instances).splice(t,1)}}},this.context=e,this.canUseDOM=t,t||(e.helmet=F({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}}))},U=r.createContext({}),$=a().shape({setHelmet:a().func,helmetInstances:a().shape({get:a().func,add:a().func,remove:a().func})}),H="undefined"!=typeof document,W=function(e){function t(n){var r;return(r=e.call(this,n)||this).helmetData=new B(r.props.context,t.canUseDOM),r}return f(t,e),t.prototype.render=function(){return r.createElement(U.Provider,{value:this.helmetData.value},this.props.children)},t}(r.Component);W.canUseDOM=H,W.propTypes={context:a().shape({helmet:a().shape()}),children:a().node.isRequired},W.defaultProps={context:{}},W.displayName="HelmetProvider";var G=function(e,t){var n,r=document.head||document.querySelector(g.HEAD),o=r.querySelectorAll(e+"[data-rh]"),a=[].slice.call(o),i=[];return t&&t.length&&t.forEach((function(t){var r=document.createElement(e);for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&("innerHTML"===o?r.innerHTML=t.innerHTML:"cssText"===o?r.styleSheet?r.styleSheet.cssText=t.cssText:r.appendChild(document.createTextNode(t.cssText)):r.setAttribute(o,void 0===t[o]?"":t[o]));r.setAttribute("data-rh","true"),a.some((function(e,t){return n=t,r.isEqualNode(e)}))?a.splice(n,1):i.push(r)})),a.forEach((function(e){return e.parentNode.removeChild(e)})),i.forEach((function(e){return r.appendChild(e)})),{oldTags:a,newTags:i}},V=function(e,t){var n=document.getElementsByTagName(e)[0];if(n){for(var r=n.getAttribute("data-rh"),o=r?r.split(","):[],a=[].concat(o),i=Object.keys(t),s=0;s<i.length;s+=1){var c=i[s],l=t[c]||"";n.getAttribute(c)!==l&&n.setAttribute(c,l),-1===o.indexOf(c)&&o.push(c);var u=a.indexOf(c);-1!==u&&a.splice(u,1)}for(var d=a.length-1;d>=0;d-=1)n.removeAttribute(a[d]);o.length===a.length?n.removeAttribute("data-rh"):n.getAttribute("data-rh")!==i.join(",")&&n.setAttribute("data-rh",i.join(","))}},K=function(e,t){var n=e.baseTag,r=e.htmlAttributes,o=e.linkTags,a=e.metaTags,i=e.noscriptTags,s=e.onChangeClientState,c=e.scriptTags,l=e.styleTags,u=e.title,d=e.titleAttributes;V(g.BODY,e.bodyAttributes),V(g.HTML,r),function(e,t){void 0!==e&&document.title!==e&&(document.title=T(e)),V(g.TITLE,t)}(u,d);var p={baseTag:G(g.BASE,n),linkTags:G(g.LINK,o),metaTags:G(g.META,a),noscriptTags:G(g.NOSCRIPT,i),scriptTags:G(g.SCRIPT,c),styleTags:G(g.STYLE,l)},f={},m={};Object.keys(p).forEach((function(e){var t=p[e],n=t.newTags,r=t.oldTags;n.length&&(f[e]=n),r.length&&(m[e]=p[e].oldTags)})),t&&t(),s(e,f,m)},Q=null,Y=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return(t=e.call.apply(e,[this].concat(r))||this).rendered=!1,t}f(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e){return!d()(e,this.props)},n.componentDidUpdate=function(){this.emitChange()},n.componentWillUnmount=function(){this.props.context.helmetInstances.remove(this),this.emitChange()},n.emitChange=function(){var e,t,n=this.props.context,r=n.setHelmet,o=null,a=(e=n.helmetInstances.get().map((function(e){var t=p({},e.props);return delete t.context,t})),{baseTag:A(["href"],e),bodyAttributes:C("bodyAttributes",e),defer:_(e,"defer"),encode:_(e,"encodeSpecialCharacters"),htmlAttributes:C("htmlAttributes",e),linkTags:q(g.LINK,["rel","href"],e),metaTags:q(g.META,["name","charset","http-equiv","property","itemprop"],e),noscriptTags:q(g.NOSCRIPT,["innerHTML"],e),onChangeClientState:E(e),scriptTags:q(g.SCRIPT,["src","innerHTML"],e),styleTags:q(g.STYLE,["cssText"],e),title:S(e),titleAttributes:C("titleAttributes",e),prioritizeSeoTags:j(e,"prioritizeSeoTags")});W.canUseDOM?(t=a,Q&&cancelAnimationFrame(Q),t.defer?Q=requestAnimationFrame((function(){K(t,(function(){Q=null}))})):(K(t),Q=null)):F&&(o=F(a)),r(o)},n.init=function(){this.rendered||(this.rendered=!0,this.props.context.helmetInstances.add(this),this.emitChange())},n.render=function(){return this.init(),null},t}(r.Component);Y.propTypes={context:$.isRequired},Y.displayName="HelmetDispatcher";var J=["children"],Z=["children"],X=function(e){function t(){return e.apply(this,arguments)||this}f(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e){return!s()(O(this.props,"helmetData"),O(e,"helmetData"))},n.mapNestedChildrenToProps=function(e,t){if(!t)return null;switch(e.type){case g.SCRIPT:case g.NOSCRIPT:return{innerHTML:t};case g.STYLE:return{cssText:t};default:throw new Error("<"+e.type+" /> elements are self-closing and can not contain children. Refer to our API for more information.")}},n.flattenArrayTypeChildren=function(e){var t,n=e.child,r=e.arrayTypeChildren;return p({},r,((t={})[n.type]=[].concat(r[n.type]||[],[p({},e.newChildProps,this.mapNestedChildrenToProps(n,e.nestedChildren))]),t))},n.mapObjectTypeChildren=function(e){var t,n,r=e.child,o=e.newProps,a=e.newChildProps,i=e.nestedChildren;switch(r.type){case g.TITLE:return p({},o,((t={})[r.type]=i,t.titleAttributes=p({},a),t));case g.BODY:return p({},o,{bodyAttributes:p({},a)});case g.HTML:return p({},o,{htmlAttributes:p({},a)});default:return p({},o,((n={})[r.type]=p({},a),n))}},n.mapArrayTypeChildrenToProps=function(e,t){var n=p({},t);return Object.keys(e).forEach((function(t){var r;n=p({},n,((r={})[t]=e[t],r))})),n},n.warnOnInvalidChildren=function(e,t){return l()(x.some((function(t){return e.type===t})),"function"==typeof e.type?"You may be attempting to nest <Helmet> components within each other, which is not allowed. Refer to our API for more information.":"Only elements types "+x.join(", ")+" are allowed. Helmet does not support rendering <"+e.type+"> elements. Refer to our API for more information."),l()(!t||"string"==typeof t||Array.isArray(t)&&!t.some((function(e){return"string"!=typeof e})),"Helmet expects a string as a child of <"+e.type+">. Did you forget to wrap your children in braces? ( <"+e.type+">{``}</"+e.type+"> ) Refer to our API for more information."),!0},n.mapChildrenToProps=function(e,t){var n=this,o={};return r.Children.forEach(e,(function(e){if(e&&e.props){var r=e.props,a=r.children,i=h(r,J),s=Object.keys(i).reduce((function(e,t){return e[k[t]||t]=i[t],e}),{}),c=e.type;switch("symbol"==typeof c?c=c.toString():n.warnOnInvalidChildren(e,a),c){case g.FRAGMENT:t=n.mapChildrenToProps(a,t);break;case g.LINK:case g.META:case g.NOSCRIPT:case g.SCRIPT:case g.STYLE:o=n.flattenArrayTypeChildren({child:e,arrayTypeChildren:o,newChildProps:s,nestedChildren:a});break;default:t=n.mapObjectTypeChildren({child:e,newProps:t,newChildProps:s,nestedChildren:a})}}})),this.mapArrayTypeChildrenToProps(o,t)},n.render=function(){var e=this.props,t=e.children,n=h(e,Z),o=p({},n),a=n.helmetData;return t&&(o=this.mapChildrenToProps(t,o)),!a||a instanceof B||(a=new B(a.context,a.instances)),a?r.createElement(Y,p({},o,{context:a.value,helmetData:void 0})):r.createElement(U.Consumer,null,(function(e){return r.createElement(Y,p({},o,{context:e}))}))},t}(r.Component);X.propTypes={base:a().object,bodyAttributes:a().object,children:a().oneOfType([a().arrayOf(a().node),a().node]),defaultTitle:a().string,defer:a().bool,encodeSpecialCharacters:a().bool,htmlAttributes:a().object,link:a().arrayOf(a().object),meta:a().arrayOf(a().object),noscript:a().arrayOf(a().object),onChangeClientState:a().func,script:a().arrayOf(a().object),style:a().arrayOf(a().object),title:a().string,titleAttributes:a().object,titleTemplate:a().string,prioritizeSeoTags:a().bool,helmetData:a().object},X.defaultProps={defer:!0,encodeSpecialCharacters:!0,prioritizeSeoTags:!1},X.displayName="Helmet"},81769:(e,t,n)=>{"use strict";n.d(t,{e3:()=>f,be:()=>d,Jx:()=>m});var r=n(96540),o=n(15066),a=n(27143),i=n(75313);function s(){var e=r.useContext(i.o);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}var c=n(29030),l=n(40797);var u=n(74848);function d(e){var t=e.title,n=e.description,r=e.keywords,o=e.image,i=e.children,s=function(e){var t=(0,l.A)().siteConfig,n=t.title,r=t.titleDelimiter;return null!=e&&e.trim().length?e.trim()+" "+r+" "+n:n}(t),d=(0,c.hH)().withBaseUrl,p=o?d(o,{absolute:!0}):void 0;return(0,u.jsxs)(a.A,{children:[t&&(0,u.jsx)("title",{children:s}),t&&(0,u.jsx)("meta",{property:"og:title",content:s}),n&&(0,u.jsx)("meta",{name:"description",content:n}),n&&(0,u.jsx)("meta",{property:"og:description",content:n}),r&&(0,u.jsx)("meta",{name:"keywords",content:Array.isArray(r)?r.join(","):r}),p&&(0,u.jsx)("meta",{property:"og:image",content:p}),p&&(0,u.jsx)("meta",{name:"twitter:image",content:p}),i]})}var p=r.createContext(void 0);function f(e){var t=e.className,n=e.children,i=r.useContext(p),s=(0,o.A)(i,t);return(0,u.jsxs)(p.Provider,{value:s,children:[(0,u.jsx)(a.A,{children:(0,u.jsx)("html",{className:s})}),n]})}function m(e){var t=e.children,n=s(),r="plugin-"+n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,""),a="plugin-id-"+n.plugin.id;return(0,u.jsx)(f,{className:(0,o.A)(r,a),children:t})}},82284:(e,t,n)=>{"use strict";function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}n.d(t,{A:()=>r})},84054:e=>{"use strict";e.exports=JSON.parse('{"/blog-61e":{"__comp":"1f391b9e","__context":{"plugin":"a7456010"},"content":"a0de97c3"},"/community/-a3e":{"__comp":"1f391b9e","__context":{"plugin":"a7456010"},"content":"2078bf5c"},"/community/cla-607":{"__comp":"1f391b9e","__context":{"plugin":"a7456010"},"content":"eaffe8b7"},"/community/join-slack-407":{"__comp":"1f391b9e","__context":{"plugin":"a7456010"},"content":"efa71475"},"/downloads-82d":{"__comp":"1f391b9e","__context":{"plugin":"a7456010"},"content":"b6d922f1"},"/druid-powered-dc3":{"__comp":"1f391b9e","__context":{"plugin":"a7456010"},"content":"dc8d8ba6"},"/faq-0a0":{"__comp":"1f391b9e","__context":{"plugin":"a7456010"},"content":"1fd605f7"},"/libraries-f13":{"__comp":"1f391b9e","__context":{"plugin":"a7456010"},"content":"d6bc9e72"},"/licensing-a9c":{"__comp":"1f391b9e","__context":{"plugin":"a7456010"},"content":"5b55a31e"},"/technology-cf3":{"__comp":"1f391b9e","__context":{"plugin":"a7456010"},"content":"5bcd0a3f"},"/use-cases-8ae":{"__comp":"1f391b9e","__context":{"plugin":"a7456010"},"content":"e9483372"},"/docs/33.0.0-6df":{"__comp":"5e95c892","__context":{"plugin":"aba21aa0"}},"/docs/33.0.0-8b1":{"__comp":"a7bd4aaa","__props":"8f48663a"},"/docs/33.0.0-471":{"__comp":"a94703ab"},"/docs/33.0.0/api-reference/-22c":{"__comp":"17896441","content":"59859d0e"},"/docs/33.0.0/api-reference/automatic-compaction-api-96c":{"__comp":"17896441","content":"530f80ac"},"/docs/33.0.0/api-reference/data-management-api-b81":{"__comp":"17896441","content":"64f0a7c0"},"/docs/33.0.0/api-reference/dynamic-configuration-api-c27":{"__comp":"17896441","content":"7783fc34"},"/docs/33.0.0/api-reference/json-querying-api-6b0":{"__comp":"17896441","content":"2d1c0688"},"/docs/33.0.0/api-reference/legacy-metadata-api-58c":{"__comp":"17896441","content":"ba583d34"},"/docs/33.0.0/api-reference/lookups-api-7b2":{"__comp":"17896441","content":"2b6dba7a"},"/docs/33.0.0/api-reference/retention-rules-api-2e9":{"__comp":"17896441","content":"ea640e6c"},"/docs/33.0.0/api-reference/service-status-api-ee9":{"__comp":"17896441","content":"61777c14"},"/docs/33.0.0/api-reference/sql-api-648":{"__comp":"17896441","content":"b8bd7913"},"/docs/33.0.0/api-reference/sql-ingestion-api-e2e":{"__comp":"17896441","content":"75ba26c3"},"/docs/33.0.0/api-reference/sql-jdbc-e8c":{"__comp":"17896441","content":"b65359cb"},"/docs/33.0.0/api-reference/supervisor-api-735":{"__comp":"17896441","content":"2e7cf532"},"/docs/33.0.0/api-reference/tasks-api-da9":{"__comp":"17896441","content":"a3ba8782"},"/docs/33.0.0/comparisons/druid-vs-elasticsearch-9ff":{"__comp":"17896441","content":"51aa4f25"},"/docs/33.0.0/comparisons/druid-vs-key-value-dc9":{"__comp":"17896441","content":"a12e75ab"},"/docs/33.0.0/comparisons/druid-vs-kudu-9c5":{"__comp":"17896441","content":"9be8ee83"},"/docs/33.0.0/comparisons/druid-vs-redshift-79d":{"__comp":"17896441","content":"232c70bd"},"/docs/33.0.0/comparisons/druid-vs-spark-895":{"__comp":"17896441","content":"238d28ae"},"/docs/33.0.0/comparisons/druid-vs-sql-on-hadoop-a86":{"__comp":"17896441","content":"699e79d4"},"/docs/33.0.0/configuration/-cc7":{"__comp":"17896441","content":"2698d718"},"/docs/33.0.0/configuration/extensions-47a":{"__comp":"17896441","content":"29ee7abe"},"/docs/33.0.0/configuration/human-readable-byte-f05":{"__comp":"17896441","content":"c6e00c5e"},"/docs/33.0.0/configuration/logging-c55":{"__comp":"17896441","content":"50f9674b"},"/docs/33.0.0/data-management/-06b":{"__comp":"17896441","content":"71adeb30"},"/docs/33.0.0/data-management/automatic-compaction-09f":{"__comp":"17896441","content":"1176fa22"},"/docs/33.0.0/data-management/compaction-5b3":{"__comp":"17896441","content":"fb0c7c59"},"/docs/33.0.0/data-management/delete-459":{"__comp":"17896441","content":"0fed56b0"},"/docs/33.0.0/data-management/manual-compaction-fbe":{"__comp":"17896441","content":"1e418ae8"},"/docs/33.0.0/data-management/schema-changes-641":{"__comp":"17896441","content":"e269a53c"},"/docs/33.0.0/data-management/update-d4c":{"__comp":"17896441","content":"fdebcf4f"},"/docs/33.0.0/design/-e0b":{"__comp":"17896441","content":"9ebaee46"},"/docs/33.0.0/design/architecture-315":{"__comp":"17896441","content":"2bc9ab0c"},"/docs/33.0.0/design/broker-d66":{"__comp":"17896441","content":"91045831"},"/docs/33.0.0/design/coordinator-1d0":{"__comp":"17896441","content":"c4222450"},"/docs/33.0.0/design/deep-storage-dc9":{"__comp":"17896441","content":"612620e1"},"/docs/33.0.0/design/extensions-contrib/dropwizard-157":{"__comp":"17896441","content":"26ca8a81"},"/docs/33.0.0/design/historical-739":{"__comp":"17896441","content":"9a4b0a52"},"/docs/33.0.0/design/indexer-710":{"__comp":"17896441","content":"b91f4d9b"},"/docs/33.0.0/design/indexing-service-df8":{"__comp":"17896441","content":"f1876743"},"/docs/33.0.0/design/metadata-storage-596":{"__comp":"17896441","content":"ef9e88a5"},"/docs/33.0.0/design/middlemanager-cde":{"__comp":"17896441","content":"6f1b7fd8"},"/docs/33.0.0/design/overlord-513":{"__comp":"17896441","content":"ee11bbe1"},"/docs/33.0.0/design/peons-54b":{"__comp":"17896441","content":"a103b404"},"/docs/33.0.0/design/router-1b2":{"__comp":"17896441","content":"7f7668f5"},"/docs/33.0.0/design/segments-b20":{"__comp":"17896441","content":"71946596"},"/docs/33.0.0/design/storage-1d3":{"__comp":"17896441","content":"4f475ab5"},"/docs/33.0.0/design/zookeeper-87e":{"__comp":"17896441","content":"c8aed2d0"},"/docs/33.0.0/development/build-5af":{"__comp":"17896441","content":"38373ae3"},"/docs/33.0.0/development/contribute-to-docs-934":{"__comp":"17896441","content":"d23bf210"},"/docs/33.0.0/development/experimental-84b":{"__comp":"17896441","content":"8e0adcf2"},"/docs/33.0.0/development/extensions-contrib/aliyun-oss-768":{"__comp":"17896441","content":"3754119d"},"/docs/33.0.0/development/extensions-contrib/ambari-metrics-emitter-cfa":{"__comp":"17896441","content":"118a7f71"},"/docs/33.0.0/development/extensions-contrib/cassandra-bf6":{"__comp":"17896441","content":"7cce3d16"},"/docs/33.0.0/development/extensions-contrib/cloudfiles-ede":{"__comp":"17896441","content":"9a675f3e"},"/docs/33.0.0/development/extensions-contrib/compressed-big-decimal-618":{"__comp":"17896441","content":"2a0754ef"},"/docs/33.0.0/development/extensions-contrib/ddsketch-quantiles-d0f":{"__comp":"17896441","content":"bcb45f1a"},"/docs/33.0.0/development/extensions-contrib/delta-lake-140":{"__comp":"17896441","content":"2abb57e2"},"/docs/33.0.0/development/extensions-contrib/distinctcount-5a5":{"__comp":"17896441","content":"35b2da51"},"/docs/33.0.0/development/extensions-contrib/druid-ranger-security-f33":{"__comp":"17896441","content":"b983518b"},"/docs/33.0.0/development/extensions-contrib/gce-extensions-989":{"__comp":"17896441","content":"fcebe65c"},"/docs/33.0.0/development/extensions-contrib/graphite-6d1":{"__comp":"17896441","content":"354ffcb1"},"/docs/33.0.0/development/extensions-contrib/iceberg-386":{"__comp":"17896441","content":"9411e528"},"/docs/33.0.0/development/extensions-contrib/influx-c13":{"__comp":"17896441","content":"a43e7ea3"},"/docs/33.0.0/development/extensions-contrib/influxdb-emitter-eda":{"__comp":"17896441","content":"10788ceb"},"/docs/33.0.0/development/extensions-contrib/kafka-emitter-6a9":{"__comp":"17896441","content":"bc841e28"},"/docs/33.0.0/development/extensions-contrib/materialized-view-2a6":{"__comp":"17896441","content":"7bbda011"},"/docs/33.0.0/development/extensions-contrib/momentsketch-quantiles-c08":{"__comp":"17896441","content":"66673e94"},"/docs/33.0.0/development/extensions-contrib/moving-average-query-95c":{"__comp":"17896441","content":"92ab1340"},"/docs/33.0.0/development/extensions-contrib/opentsdb-emitter-cc9":{"__comp":"17896441","content":"01a84bd8"},"/docs/33.0.0/development/extensions-contrib/prometheus-4fe":{"__comp":"17896441","content":"a07cf99a"},"/docs/33.0.0/development/extensions-contrib/rabbit-super-stream-injestion-691":{"__comp":"17896441","content":"675afb26"},"/docs/33.0.0/development/extensions-contrib/redis-cache-42a":{"__comp":"17896441","content":"2a6b8281"},"/docs/33.0.0/development/extensions-contrib/spectator-histogram-67d":{"__comp":"17896441","content":"2d415f09"},"/docs/33.0.0/development/extensions-contrib/sqlserver-fb9":{"__comp":"17896441","content":"e86ecaaf"},"/docs/33.0.0/development/extensions-contrib/statsd-a0b":{"__comp":"17896441","content":"57b07083"},"/docs/33.0.0/development/extensions-contrib/tdigestsketch-quantiles-d5b":{"__comp":"17896441","content":"c14b8f2f"},"/docs/33.0.0/development/extensions-contrib/thrift-618":{"__comp":"17896441","content":"94861fe3"},"/docs/33.0.0/development/extensions-contrib/time-min-max-92f":{"__comp":"17896441","content":"64fa7a91"},"/docs/33.0.0/development/extensions-core/approximate-histograms-c22":{"__comp":"17896441","content":"3aeac7d0"},"/docs/33.0.0/development/extensions-core/avro-0e4":{"__comp":"17896441","content":"437a3cc2"},"/docs/33.0.0/development/extensions-core/azure-be7":{"__comp":"17896441","content":"eab006b5"},"/docs/33.0.0/development/extensions-core/bloom-filter-d54":{"__comp":"17896441","content":"50eaa9c3"},"/docs/33.0.0/development/extensions-core/catalog-937":{"__comp":"17896441","content":"9d17e5c1"},"/docs/33.0.0/development/extensions-core/datasketches-extension-af5":{"__comp":"17896441","content":"e6c1ae71"},"/docs/33.0.0/development/extensions-core/datasketches-hll-a1a":{"__comp":"17896441","content":"c45e0be6"},"/docs/33.0.0/development/extensions-core/datasketches-kll-da4":{"__comp":"17896441","content":"cabbdd91"},"/docs/33.0.0/development/extensions-core/datasketches-quantiles-7d5":{"__comp":"17896441","content":"41668ce9"},"/docs/33.0.0/development/extensions-core/datasketches-theta-99a":{"__comp":"17896441","content":"8fa087e4"},"/docs/33.0.0/development/extensions-core/datasketches-tuple-6a9":{"__comp":"17896441","content":"0fd5f7a5"},"/docs/33.0.0/development/extensions-core/druid-aws-rds-1b7":{"__comp":"17896441","content":"7671dc5d"},"/docs/33.0.0/development/extensions-core/druid-basic-security-a57":{"__comp":"17896441","content":"f2017d35"},"/docs/33.0.0/development/extensions-core/druid-kerberos-8f6":{"__comp":"17896441","content":"e2c8f0ce"},"/docs/33.0.0/development/extensions-core/druid-lookups-0e4":{"__comp":"17896441","content":"5a766ab7"},"/docs/33.0.0/development/extensions-core/druid-pac4j-a07":{"__comp":"17896441","content":"e8553f0a"},"/docs/33.0.0/development/extensions-core/examples-00e":{"__comp":"17896441","content":"d3ccc025"},"/docs/33.0.0/development/extensions-core/google-588":{"__comp":"17896441","content":"a588e61c"},"/docs/33.0.0/development/extensions-core/hdfs-f17":{"__comp":"17896441","content":"f2891d72"},"/docs/33.0.0/development/extensions-core/k8s-jobs-019":{"__comp":"17896441","content":"81808cc0"},"/docs/33.0.0/development/extensions-core/kubernetes-4e0":{"__comp":"17896441","content":"796894a4"},"/docs/33.0.0/development/extensions-core/mysql-ee2":{"__comp":"17896441","content":"67c1f944"},"/docs/33.0.0/development/extensions-core/orc-cc2":{"__comp":"17896441","content":"8adb3c2e"},"/docs/33.0.0/development/extensions-core/parquet-feb":{"__comp":"17896441","content":"8dc30360"},"/docs/33.0.0/development/extensions-core/postgresql-bf3":{"__comp":"17896441","content":"a68fc73a"},"/docs/33.0.0/development/extensions-core/protobuf-377":{"__comp":"17896441","content":"15457122"},"/docs/33.0.0/development/extensions-core/s3-4a1":{"__comp":"17896441","content":"694a9a02"},"/docs/33.0.0/development/extensions-core/simple-client-sslcontext-106":{"__comp":"17896441","content":"12e0d2c9"},"/docs/33.0.0/development/extensions-core/stats-0ad":{"__comp":"17896441","content":"fd981129"},"/docs/33.0.0/development/extensions-core/test-stats-bbf":{"__comp":"17896441","content":"8458e605"},"/docs/33.0.0/development/javascript-c66":{"__comp":"17896441","content":"78d7f6eb"},"/docs/33.0.0/development/modules-7db":{"__comp":"17896441","content":"0ee1e33e"},"/docs/33.0.0/development/overview-7cc":{"__comp":"17896441","content":"c72e4f10"},"/docs/33.0.0/development/versioning-292":{"__comp":"17896441","content":"75ec7680"},"/docs/33.0.0/ingestion/-aaa":{"__comp":"17896441","content":"3f99070e"},"/docs/33.0.0/ingestion/concurrent-append-replace-efb":{"__comp":"17896441","content":"8c4d8c46"},"/docs/33.0.0/ingestion/data-formats-b0f":{"__comp":"17896441","content":"b16cebf2"},"/docs/33.0.0/ingestion/faq-01d":{"__comp":"17896441","content":"87a77846"},"/docs/33.0.0/ingestion/hadoop-099":{"__comp":"17896441","content":"d13eb890"},"/docs/33.0.0/ingestion/ingestion-spec-353":{"__comp":"17896441","content":"b9a50b97"},"/docs/33.0.0/ingestion/input-sources-44d":{"__comp":"17896441","content":"f2c8f271"},"/docs/33.0.0/ingestion/kafka-ingestion-f9e":{"__comp":"17896441","content":"540dd3d1"},"/docs/33.0.0/ingestion/kinesis-ingestion-3bb":{"__comp":"17896441","content":"6c852c51"},"/docs/33.0.0/ingestion/native-batch-63c":{"__comp":"17896441","content":"2b646fc7"},"/docs/33.0.0/ingestion/native-batch-firehose-1d9":{"__comp":"17896441","content":"aa5d6b49"},"/docs/33.0.0/ingestion/native-batch-simple-task-394":{"__comp":"17896441","content":"c083fe04"},"/docs/33.0.0/ingestion/partitioning-d9d":{"__comp":"17896441","content":"1c9d13d1"},"/docs/33.0.0/ingestion/rollup-fbf":{"__comp":"17896441","content":"77d20eda"},"/docs/33.0.0/ingestion/schema-design-d47":{"__comp":"17896441","content":"e6c3e314"},"/docs/33.0.0/ingestion/schema-model-a47":{"__comp":"17896441","content":"cdf264a7"},"/docs/33.0.0/ingestion/standalone-realtime-a51":{"__comp":"17896441","content":"48e4974a"},"/docs/33.0.0/ingestion/streaming-2ac":{"__comp":"17896441","content":"c0cc46b6"},"/docs/33.0.0/ingestion/supervisor-afd":{"__comp":"17896441","content":"56b67ab5"},"/docs/33.0.0/ingestion/tasks-5ff":{"__comp":"17896441","content":"03cb1c07"},"/docs/33.0.0/ingestion/tranquility-7d0":{"__comp":"17896441","content":"97659b06"},"/docs/33.0.0/misc/papers-and-talks-eab":{"__comp":"17896441","content":"216e93a8"},"/docs/33.0.0/multi-stage-query/-e7c":{"__comp":"17896441","content":"d803eef5"},"/docs/33.0.0/multi-stage-query/concepts-325":{"__comp":"17896441","content":"1ca5a6cc"},"/docs/33.0.0/multi-stage-query/examples-ee2":{"__comp":"17896441","content":"1499f006"},"/docs/33.0.0/multi-stage-query/known-issues-2ad":{"__comp":"17896441","content":"1dfa5a85"},"/docs/33.0.0/multi-stage-query/reference-9d3":{"__comp":"17896441","content":"363d556b"},"/docs/33.0.0/multi-stage-query/security-94f":{"__comp":"17896441","content":"8ce76df2"},"/docs/33.0.0/operations/alerts-071":{"__comp":"17896441","content":"488704ec"},"/docs/33.0.0/operations/auth-5cc":{"__comp":"17896441","content":"49212431"},"/docs/33.0.0/operations/auth-ldap-f9e":{"__comp":"17896441","content":"d57d4407"},"/docs/33.0.0/operations/basic-cluster-tuning-613":{"__comp":"17896441","content":"d7d44caf"},"/docs/33.0.0/operations/clean-metadata-store-53c":{"__comp":"17896441","content":"91af8b2b"},"/docs/33.0.0/operations/deep-storage-migration-a13":{"__comp":"17896441","content":"e007992f"},"/docs/33.0.0/operations/dump-segment-755":{"__comp":"17896441","content":"6ee8ad46"},"/docs/33.0.0/operations/durable-storage-62e":{"__comp":"17896441","content":"ff032c71"},"/docs/33.0.0/operations/dynamic-config-provider-7b1":{"__comp":"17896441","content":"85a88d06"},"/docs/33.0.0/operations/export-metadata-ff6":{"__comp":"17896441","content":"ebb6a4f5"},"/docs/33.0.0/operations/high-availability-594":{"__comp":"17896441","content":"0de78727"},"/docs/33.0.0/operations/http-compression-93c":{"__comp":"17896441","content":"602c1fa2"},"/docs/33.0.0/operations/insert-segment-to-db-9ab":{"__comp":"17896441","content":"6bb76d59"},"/docs/33.0.0/operations/java-e7d":{"__comp":"17896441","content":"9581a7d0"},"/docs/33.0.0/operations/kubernetes-689":{"__comp":"17896441","content":"b9facbe4"},"/docs/33.0.0/operations/metadata-migration-434":{"__comp":"17896441","content":"1c91270f"},"/docs/33.0.0/operations/metrics-ca6":{"__comp":"17896441","content":"2b67e204"},"/docs/33.0.0/operations/migrate-from-firehose-1c8":{"__comp":"17896441","content":"5529c840"},"/docs/33.0.0/operations/mixed-workloads-1ab":{"__comp":"17896441","content":"65a8d28c"},"/docs/33.0.0/operations/other-hadoop-9c5":{"__comp":"17896441","content":"1cdc7307"},"/docs/33.0.0/operations/password-provider-150":{"__comp":"17896441","content":"232ed933"},"/docs/33.0.0/operations/pull-deps-265":{"__comp":"17896441","content":"8cd326f4"},"/docs/33.0.0/operations/request-logging-5e7":{"__comp":"17896441","content":"23b3e68f"},"/docs/33.0.0/operations/reset-cluster-eb5":{"__comp":"17896441","content":"29b325cd"},"/docs/33.0.0/operations/rolling-updates-d89":{"__comp":"17896441","content":"444ba3f7"},"/docs/33.0.0/operations/rule-configuration-a8f":{"__comp":"17896441","content":"91f564ff"},"/docs/33.0.0/operations/security-overview-5b4":{"__comp":"17896441","content":"66e9b9cf"},"/docs/33.0.0/operations/security-user-auth-14c":{"__comp":"17896441","content":"d82ca428"},"/docs/33.0.0/operations/segment-optimization-11c":{"__comp":"17896441","content":"e56c12ff"},"/docs/33.0.0/operations/single-server-4e8":{"__comp":"17896441","content":"49ce5819"},"/docs/33.0.0/operations/tls-support-3c7":{"__comp":"17896441","content":"40b888de"},"/docs/33.0.0/operations/use_sbt_to_build_fat_jar-9b3":{"__comp":"17896441","content":"65cf72c0"},"/docs/33.0.0/operations/web-console-3c0":{"__comp":"17896441","content":"35e98521"},"/docs/33.0.0/querying/-b6f":{"__comp":"17896441","content":"69b2b51e"},"/docs/33.0.0/querying/aggregations-ca4":{"__comp":"17896441","content":"43f3d401"},"/docs/33.0.0/querying/arrays-acb":{"__comp":"17896441","content":"9650c3a8"},"/docs/33.0.0/querying/caching-20e":{"__comp":"17896441","content":"30bb7636"},"/docs/33.0.0/querying/datasource-d07":{"__comp":"17896441","content":"fe97e411"},"/docs/33.0.0/querying/datasourcemetadataquery-e13":{"__comp":"17896441","content":"c5322693"},"/docs/33.0.0/querying/dimensionspecs-2df":{"__comp":"17896441","content":"59ebc66e"},"/docs/33.0.0/querying/filters-bab":{"__comp":"17896441","content":"3886cfb0"},"/docs/33.0.0/querying/geo-f40":{"__comp":"17896441","content":"ee3d86fe"},"/docs/33.0.0/querying/granularities-ecb":{"__comp":"17896441","content":"680728b2"},"/docs/33.0.0/querying/groupbyquery-6a7":{"__comp":"17896441","content":"edb7a9f3"},"/docs/33.0.0/querying/having-268":{"__comp":"17896441","content":"68cabb9e"},"/docs/33.0.0/querying/hll-old-0ba":{"__comp":"17896441","content":"5484c6ae"},"/docs/33.0.0/querying/joins-efe":{"__comp":"17896441","content":"516ef4aa"},"/docs/33.0.0/querying/kafka-extraction-namespace-031":{"__comp":"17896441","content":"88429f23"},"/docs/33.0.0/querying/limitspec-439":{"__comp":"17896441","content":"9814ffe3"},"/docs/33.0.0/querying/lookups-0f4":{"__comp":"17896441","content":"bbb8bdb9"},"/docs/33.0.0/querying/lookups-cached-global-029":{"__comp":"17896441","content":"022e6ba5"},"/docs/33.0.0/querying/math-expr-5a3":{"__comp":"17896441","content":"3e16dffc"},"/docs/33.0.0/querying/multi-value-dimensions-ed5":{"__comp":"17896441","content":"ce2cd07a"},"/docs/33.0.0/querying/multitenancy-f0d":{"__comp":"17896441","content":"7efe50c6"},"/docs/33.0.0/querying/nested-columns-343":{"__comp":"17896441","content":"7b377e55"},"/docs/33.0.0/querying/post-aggregations-726":{"__comp":"17896441","content":"1fcf7845"},"/docs/33.0.0/querying/query-context-352":{"__comp":"17896441","content":"a831d69a"},"/docs/33.0.0/querying/query-deep-storage-f1a":{"__comp":"17896441","content":"a732c679"},"/docs/33.0.0/querying/query-execution-068":{"__comp":"17896441","content":"03197752"},"/docs/33.0.0/querying/query-processing-1fe":{"__comp":"17896441","content":"37b23687"},"/docs/33.0.0/querying/scan-query-760":{"__comp":"17896441","content":"19c5006b"},"/docs/33.0.0/querying/searchquery-450":{"__comp":"17896441","content":"ae73e9ba"},"/docs/33.0.0/querying/segmentmetadataquery-a49":{"__comp":"17896441","content":"ff22260d"},"/docs/33.0.0/querying/select-query-a77":{"__comp":"17896441","content":"91c94933"},"/docs/33.0.0/querying/sorting-orders-341":{"__comp":"17896441","content":"d7cd19ee"},"/docs/33.0.0/querying/sql-60d":{"__comp":"17896441","content":"852e5de1"},"/docs/33.0.0/querying/sql-aggregations-ec4":{"__comp":"17896441","content":"33c0d14a"},"/docs/33.0.0/querying/sql-array-functions-f1e":{"__comp":"17896441","content":"309d9b59"},"/docs/33.0.0/querying/sql-data-types-94d":{"__comp":"17896441","content":"adfd5f8b"},"/docs/33.0.0/querying/sql-functions-73e":{"__comp":"17896441","content":"360b5979"},"/docs/33.0.0/querying/sql-json-functions-2df":{"__comp":"17896441","content":"0bbcab75"},"/docs/33.0.0/querying/sql-metadata-tables-b28":{"__comp":"17896441","content":"77d0a584"},"/docs/33.0.0/querying/sql-multivalue-string-functions-820":{"__comp":"17896441","content":"21689acc"},"/docs/33.0.0/querying/sql-operators-ea5":{"__comp":"17896441","content":"97d9d917"},"/docs/33.0.0/querying/sql-query-context-a58":{"__comp":"17896441","content":"ad32dcdb"},"/docs/33.0.0/querying/sql-scalar-8f0":{"__comp":"17896441","content":"3703ddd8"},"/docs/33.0.0/querying/sql-translation-461":{"__comp":"17896441","content":"45f70177"},"/docs/33.0.0/querying/sql-window-functions-492":{"__comp":"17896441","content":"b66d4e0c"},"/docs/33.0.0/querying/timeboundaryquery-11f":{"__comp":"17896441","content":"84278950"},"/docs/33.0.0/querying/timeseriesquery-09f":{"__comp":"17896441","content":"20588fde"},"/docs/33.0.0/querying/tips-good-queries-53b":{"__comp":"17896441","content":"84ffb468"},"/docs/33.0.0/querying/topnmetricspec-481":{"__comp":"17896441","content":"3a1c1f1e"},"/docs/33.0.0/querying/topnquery-b05":{"__comp":"17896441","content":"9e39056e"},"/docs/33.0.0/querying/troubleshooting-a87":{"__comp":"17896441","content":"f6017a11"},"/docs/33.0.0/querying/using-caching-26b":{"__comp":"17896441","content":"d7dd4971"},"/docs/33.0.0/querying/virtual-columns-902":{"__comp":"17896441","content":"8b8cb71a"},"/docs/33.0.0/release-info/migr-ansi-sql-null-382":{"__comp":"17896441","content":"101824a8"},"/docs/33.0.0/release-info/migr-front-coded-dict-3da":{"__comp":"17896441","content":"d37f4845"},"/docs/33.0.0/release-info/migr-mvd-array-eb2":{"__comp":"17896441","content":"79b16975"},"/docs/33.0.0/release-info/migr-subquery-limit-a3f":{"__comp":"17896441","content":"4092cefd"},"/docs/33.0.0/release-info/migration-guide-a91":{"__comp":"17896441","content":"6fa1f68d"},"/docs/33.0.0/release-info/release-notes-bf4":{"__comp":"17896441","content":"291b0a2f"},"/docs/33.0.0/release-info/upgrade-notes-a44":{"__comp":"17896441","content":"17e0eb4d"},"/docs/33.0.0/tutorials/-f80":{"__comp":"17896441","content":"dd7f2773"},"/docs/33.0.0/tutorials/cluster-15b":{"__comp":"17896441","content":"44efccac"},"/docs/33.0.0/tutorials/docker-809":{"__comp":"17896441","content":"f72649d7"},"/docs/33.0.0/tutorials/tutorial-append-data-3d3":{"__comp":"17896441","content":"1fc0e205"},"/docs/33.0.0/tutorials/tutorial-batch-aac":{"__comp":"17896441","content":"277b6e4b"},"/docs/33.0.0/tutorials/tutorial-batch-hadoop-713":{"__comp":"17896441","content":"eb82f32a"},"/docs/33.0.0/tutorials/tutorial-batch-native-339":{"__comp":"17896441","content":"ffda5609"},"/docs/33.0.0/tutorials/tutorial-compaction-e5b":{"__comp":"17896441","content":"a7c93220"},"/docs/33.0.0/tutorials/tutorial-delete-data-c7f":{"__comp":"17896441","content":"667406a6"},"/docs/33.0.0/tutorials/tutorial-extern-f8e":{"__comp":"17896441","content":"37258aee"},"/docs/33.0.0/tutorials/tutorial-ingestion-spec-d39":{"__comp":"17896441","content":"6fcc798c"},"/docs/33.0.0/tutorials/tutorial-jdbc-7e7":{"__comp":"17896441","content":"0a6cefb4"},"/docs/33.0.0/tutorials/tutorial-kafka-d52":{"__comp":"17896441","content":"cac19bce"},"/docs/33.0.0/tutorials/tutorial-kerberos-hadoop-49c":{"__comp":"17896441","content":"66d07c60"},"/docs/33.0.0/tutorials/tutorial-latest-by-863":{"__comp":"17896441","content":"9c8d8203"},"/docs/33.0.0/tutorials/tutorial-msq-convert-spec-82a":{"__comp":"17896441","content":"e917a737"},"/docs/33.0.0/tutorials/tutorial-msq-extern-0f4":{"__comp":"17896441","content":"530ce0e2"},"/docs/33.0.0/tutorials/tutorial-query-0f2":{"__comp":"17896441","content":"a09c3f24"},"/docs/33.0.0/tutorials/tutorial-query-deep-storage-3b1":{"__comp":"17896441","content":"33cc9a8d"},"/docs/33.0.0/tutorials/tutorial-retention-16c":{"__comp":"17896441","content":"a494547b"},"/docs/33.0.0/tutorials/tutorial-rollup-753":{"__comp":"17896441","content":"b87bdae7"},"/docs/33.0.0/tutorials/tutorial-sketches-theta-094":{"__comp":"17896441","content":"22ff1905"},"/docs/33.0.0/tutorials/tutorial-sql-null-560":{"__comp":"17896441","content":"36a1aa83"},"/docs/33.0.0/tutorials/tutorial-sql-query-view-7b3":{"__comp":"17896441","content":"52366773"},"/docs/33.0.0/tutorials/tutorial-transform-020":{"__comp":"17896441","content":"46b67ff8"},"/docs/33.0.0/tutorials/tutorial-unnest-arrays-392":{"__comp":"17896441","content":"b0febd69"},"/docs/33.0.0/tutorials/tutorial-update-data-4a8":{"__comp":"17896441","content":"d421068e"},"/-2e1":{"__comp":"c4f5d8e4","__context":{"plugin":"a7456010"},"config":"5e9f5e1a"}}')},84562:(e,t,n)=>{"use strict";function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function o(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(n)return(n=n.call(e)).next.bind(n);if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return r(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?r(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var o=0;return function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}n.d(t,{Nr:()=>m,w8:()=>b,B5:()=>E,Vd:()=>k,QB:()=>S,fW:()=>_,OF:()=>w,Y:()=>v});var a=n(96540),i=n(56347),s=n(22831),c=n(69493),l=n(30214),u=n(11861),d=n(96351),p=n(21858),f=n(22306);function m(e){return"link"!==e.type||e.unlisted?"category"===e.type?function(e){if(e.href&&!e.linkUnlisted)return e.href;for(var t,n=o(e.items);!(t=n()).done;){var r=m(t.value);if(r)return r}}(e):void 0:e.href}var h=function(e,t){return void 0!==e&&(0,l.ys)(e,t)},g=function(e,t){return e.some((function(e){return b(e,t)}))};function b(e,t){return"link"===e.type?h(e.href,t):"category"===e.type&&(h(e.href,t)||g(e.items,t))}function y(e,t){switch(e.type){case"category":return b(e,t)||void 0!==e.href&&!e.linkUnlisted||e.items.some((function(e){return y(e,t)}));case"link":return!e.unlisted||b(e,t);default:return!0}}function v(e,t){return(0,a.useMemo)((function(){return e.filter((function(e){return y(e,t)}))}),[e,t])}function x(e){var t=e.sidebarItems,n=e.pathname,r=e.onlyCategories,a=void 0!==r&&r,i=[];return function e(t){for(var r,s=o(t);!(r=s()).done;){var c=r.value;if("category"===c.type&&((0,l.ys)(c.href,n)||e(c.items))||"link"===c.type&&(0,l.ys)(c.href,n))return a&&"category"!==c.type||i.unshift(c),!0}return!1}(t),i}function w(){var e,t=(0,f.t)(),n=(0,i.zy)().pathname;return!1!==(null==(e=(0,c.vT)())?void 0:e.pluginData.breadcrumbs)&&t?x({sidebarItems:t.items,pathname:n}):null}function k(e){var t=(0,c.zK)(e).activeVersion,n=(0,d.g1)(e).preferredVersion,r=(0,c.r7)(e);return(0,a.useMemo)((function(){return(0,u.sb)([t,n,r].filter(Boolean))}),[t,n,r])}function _(e,t){var n=k(t);return(0,a.useMemo)((function(){var t=n.flatMap((function(e){return e.sidebars?Object.entries(e.sidebars):[]})),r=t.find((function(t){return t[0]===e}));if(!r)throw new Error("Can't find any sidebar with id \""+e+'" in version'+(n.length>1?"s":"")+" "+n.map((function(e){return e.name})).join(", ")+'".\nAvailable sidebar ids are:\n- '+t.map((function(e){return e[0]})).join("\n- "));return r[1]}),[e,n])}function S(e,t){var n=k(t);return(0,a.useMemo)((function(){var t=n.flatMap((function(e){return e.docs})),r=t.find((function(t){return t.id===e}));if(!r){if(n.flatMap((function(e){return e.draftIds})).includes(e))return null;throw new Error("Couldn't find any doc with id \""+e+'" in version'+(n.length>1?"s":"")+' "'+n.map((function(e){return e.name})).join(", ")+'".\nAvailable doc ids are:\n- '+(0,u.sb)(t.map((function(e){return e.id}))).join("\n- "))}return r}),[e,n])}function E(e){var t=e.route,n=(0,i.zy)(),r=(0,p.r)(),o=t.routes,a=o.find((function(e){return(0,i.B6)(n.pathname,e)}));if(!a)return null;var c=a.sidebar,l=c?r.docsSidebars[c]:void 0;return{docElement:(0,s.v)(o),sidebarName:c,sidebarItems:l}}},84924:(e,t,n)=>{"use strict";function r(){return window.matchMedia("(prefers-reduced-motion: reduce)").matches}n.d(t,{O:()=>r})},84974:(e,t,n)=>{"use strict";n.d(t,{o:()=>a,x:()=>i});var r=n(96540),o=n(74848),a=r.createContext(!1);function i(e){var t=e.children,n=(0,r.useState)(!1),i=n[0],s=n[1];return(0,r.useEffect)((function(){s(!0)}),[]),(0,o.jsx)(a.Provider,{value:i,children:t})}},86682:(e,t,n)=>{"use strict";n.d(t,{l:()=>s});var r=n(96540),o=n(61934),a={desktop:"desktop",mobile:"mobile",ssr:"ssr"},i=996;function s(e){var t=(void 0===e?{}:e).desktopBreakpoint,n=void 0===t?i:t,s=(0,r.useState)((function(){return"ssr"})),c=s[0],l=s[1];return(0,r.useEffect)((function(){function e(){l(function(e){if(!o.A.canUseDOM)throw new Error("getWindowSize() should only be called after React hydration");return window.innerWidth>e?a.desktop:a.mobile}(n))}return e(),window.addEventListener("resize",e),function(){window.removeEventListener("resize",e)}}),[n]),c}},92562:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.addTrailingSlash=o,t.default=function(e,t){var n=t.trailingSlash,r=t.baseUrl;if(e.startsWith("#"))return e;if(void 0===n)return e;var i=e.split(/[#?]/)[0],s="/"===i||i===r?i:(c=i,l=n,l?o(c):a(c));var c,l;return e.replace(i,s)},t.addLeadingSlash=function(e){return(0,r.addPrefix)(e,"/")},t.removeTrailingSlash=a;var r=n(27149);function o(e){return e.endsWith("/")?e:e+"/"}function a(e){return(0,r.removeSuffix)(e,"/")}},93237:(e,t,n)=>{"use strict";n.d(t,{A:()=>Pt});var r=n(96540),o=n(18215),a=n(4023),i=n(81769),s=n(56347),c=n(50539),l=n(77685),u=n(74848),d="__docusaurus_skipToContent_fallback";function p(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}function f(){var e=(0,r.useRef)(null),t=(0,s.W6)().action,n=(0,r.useCallback)((function(e){e.preventDefault();var t,n=null!=(t=document.querySelector("main:first-of-type"))?t:document.getElementById(d);n&&p(n)}),[]);return(0,l.$)((function(n){var r=n.location;e.current&&!r.hash&&"PUSH"===t&&p(e.current)})),{containerRef:e,onClick:n}}var m=(0,c.T)({id:"theme.common.skipToMainContent",description:"The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation",message:"Skip to main content"});function h(e){var t,n=null!=(t=e.children)?t:m,r=f(),o=r.containerRef,a=r.onClick;return(0,u.jsx)("div",{ref:o,role:"region","aria-label":m,children:(0,u.jsx)("a",Object.assign({},e,{href:"#"+d,onClick:a,children:n}))})}var g=n(204),b=n(67788);const y={skipToContent:"skipToContent_fXgn"};function v(){return(0,u.jsx)(h,{className:y.skipToContent})}var x=n(53115),w=n(23380),k=n(98587),_=["width","height","color","strokeWidth","className"];function S(e){var t=e.width,n=void 0===t?21:t,r=e.height,o=void 0===r?21:r,a=e.color,i=void 0===a?"currentColor":a,s=e.strokeWidth,c=void 0===s?1.2:s,l=(e.className,(0,k.A)(e,_));return(0,u.jsx)("svg",Object.assign({viewBox:"0 0 15 15",width:n,height:o},l,{children:(0,u.jsx)("g",{stroke:i,strokeWidth:c,children:(0,u.jsx)("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})})}))}const E={closeButton:"closeButton_CVFx"};function C(e){return(0,u.jsx)("button",Object.assign({type:"button","aria-label":(0,c.T)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"})},e,{className:(0,o.A)("clean-btn close",E.closeButton,e.className),children:(0,u.jsx)(S,{width:14,height:14,strokeWidth:3.1})}))}const A={content:"content_knG7"};function q(e){var t=(0,x.p)().announcementBar.content;return(0,u.jsx)("div",Object.assign({},e,{className:(0,o.A)(A.content,e.className),dangerouslySetInnerHTML:{__html:t}}))}const j={announcementBar:"announcementBar_mb4j",announcementBarPlaceholder:"announcementBarPlaceholder_vyr4",announcementBarClose:"announcementBarClose_gvF7",announcementBarContent:"announcementBarContent_xLdY"};function T(){var e=(0,x.p)().announcementBar,t=(0,w.M)(),n=t.isActive,r=t.close;if(!n)return null;var o=e.backgroundColor,a=e.textColor,i=e.isCloseable;return(0,u.jsxs)("div",{className:j.announcementBar,style:{backgroundColor:o,color:a},role:"banner",children:[i&&(0,u.jsx)("div",{className:j.announcementBarPlaceholder}),(0,u.jsx)(q,{className:j.announcementBarContent}),i&&(0,u.jsx)(C,{onClick:r,className:j.announcementBarClose})]})}var N=n(5528),O=n(65627);var R=n(102),P=n(63065),L=r.createContext(null);function I(e){var t,n,o,a,i,s,c,l=e.children,d=(t=(0,N.M)(),n=(0,P.YL)(),o=(0,r.useState)(!1),a=o[0],i=o[1],s=null!==n.component,c=(0,R.ZC)(s),(0,r.useEffect)((function(){s&&!c&&i(!0)}),[s,c]),(0,r.useEffect)((function(){s?t.shown||i(!0):i(!1)}),[t.shown,s]),(0,r.useMemo)((function(){return[a,i]}),[a]));return(0,u.jsx)(L.Provider,{value:d,children:l})}function D(e){if(e.component){var t=e.component;return(0,u.jsx)(t,Object.assign({},e.props))}}function M(){var e=(0,r.useContext)(L);if(!e)throw new R.dV("NavbarSecondaryMenuDisplayProvider");var t=e[0],n=e[1],o=(0,r.useCallback)((function(){return n(!1)}),[n]),a=(0,P.YL)();return(0,r.useMemo)((function(){return{shown:t,hide:o,content:D(a)}}),[o,a,t])}function F(e){var t=e.header,n=e.primaryMenu,r=e.secondaryMenu,a=M().shown;return(0,u.jsxs)("div",{className:"navbar-sidebar",children:[t,(0,u.jsxs)("div",{className:(0,o.A)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":a}),children:[(0,u.jsx)("div",{className:"navbar-sidebar__item menu",children:n}),(0,u.jsx)("div",{className:"navbar-sidebar__item menu",children:r})]})]})}var z=n(8532),B=n(9136);function U(e){return(0,u.jsx)("svg",Object.assign({viewBox:"0 0 24 24",width:24,height:24},e,{children:(0,u.jsx)("path",{fill:"currentColor",d:"M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"})}))}function $(e){return(0,u.jsx)("svg",Object.assign({viewBox:"0 0 24 24",width:24,height:24},e,{children:(0,u.jsx)("path",{fill:"currentColor",d:"M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"})}))}const H={toggle:"toggle_vylO",toggleButton:"toggleButton_gllP",darkToggleIcon:"darkToggleIcon_wfgR",lightToggleIcon:"lightToggleIcon_pyhR",toggleButtonDisabled:"toggleButtonDisabled_aARS"};function W(e){var t=e.className,n=e.buttonClassName,r=e.value,a=e.onChange,i=(0,B.A)(),s=(0,c.T)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the navbar color mode toggle"},{mode:"dark"===r?(0,c.T)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,c.T)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return(0,u.jsx)("div",{className:(0,o.A)(H.toggle,t),children:(0,u.jsxs)("button",{className:(0,o.A)("clean-btn",H.toggleButton,!i&&H.toggleButtonDisabled,n),type:"button",onClick:function(){return a("dark"===r?"light":"dark")},disabled:!i,title:s,"aria-label":s,"aria-live":"polite","aria-pressed":"dark"===r?"true":"false",children:[(0,u.jsx)(U,{className:(0,o.A)(H.toggleIcon,H.lightToggleIcon)}),(0,u.jsx)($,{className:(0,o.A)(H.toggleIcon,H.darkToggleIcon)})]})})}const G=r.memo(W),V={darkNavbarColorModeToggle:"darkNavbarColorModeToggle_X3D1"};function K(e){var t=e.className,n=(0,x.p)().navbar.style,r=(0,x.p)().colorMode.disableSwitch,o=(0,z.G)(),a=o.colorMode,i=o.setColorMode;return r?null:(0,u.jsx)(G,{className:t,buttonClassName:"dark"===n?V.darkNavbarColorModeToggle:void 0,value:a,onChange:i})}var Q=n(12862);function Y(){return(0,u.jsx)(Q.A,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function J(){var e=(0,N.M)();return(0,u.jsx)("button",{type:"button","aria-label":(0,c.T)({id:"theme.docs.sidebar.closeSidebarButtonAriaLabel",message:"Close navigation bar",description:"The ARIA label for close button of mobile sidebar"}),className:"clean-btn navbar-sidebar__close",onClick:function(){return e.toggle()},children:(0,u.jsx)(S,{color:"var(--ifm-color-emphasis-600)"})})}function Z(){return(0,u.jsxs)("div",{className:"navbar-sidebar__brand",children:[(0,u.jsx)(Y,{}),(0,u.jsx)(K,{className:"margin-right--md"}),(0,u.jsx)(J,{})]})}var X=n(56289),ee=n(29030),te=n(22887);function ne(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}var re=n(15891),oe=["activeBasePath","activeBaseRegex","to","href","label","html","isDropdownLink","prependBaseUrlToHref"];function ae(e){var t=e.activeBasePath,n=e.activeBaseRegex,r=e.to,o=e.href,a=e.label,i=e.html,s=e.isDropdownLink,c=e.prependBaseUrlToHref,l=(0,k.A)(e,oe),d=(0,ee.Ay)(r),p=(0,ee.Ay)(t),f=(0,ee.Ay)(o,{forcePrependBaseUrl:!0}),m=a&&o&&!(0,te.A)(o),h=i?{dangerouslySetInnerHTML:{__html:i}}:{children:(0,u.jsxs)(u.Fragment,{children:[a,m&&(0,u.jsx)(re.A,Object.assign({},s&&{width:12,height:12}))]})};return o?(0,u.jsx)(X.A,Object.assign({href:c?f:o},l,h)):(0,u.jsx)(X.A,Object.assign({to:d,isNavLink:!0},(t||n)&&{isActive:function(e,t){return n?ne(n,t.pathname):t.pathname.startsWith(p)}},l,h))}var ie=["className","isDropdownItem"],se=["className","isDropdownItem"],ce=["mobile","position"];function le(e){var t=e.className,n=e.isDropdownItem,r=void 0!==n&&n,a=(0,k.A)(e,ie),i=(0,u.jsx)(ae,Object.assign({className:(0,o.A)(r?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:r},a));return r?(0,u.jsx)("li",{children:i}):i}function ue(e){var t=e.className,n=(e.isDropdownItem,(0,k.A)(e,se));return(0,u.jsx)("li",{className:"menu__list-item",children:(0,u.jsx)(ae,Object.assign({className:(0,o.A)("menu__link",t)},n))})}function de(e){var t,n=e.mobile,r=void 0!==n&&n,o=(e.position,(0,k.A)(e,ce)),a=r?ue:le;return(0,u.jsx)(a,Object.assign({},o,{activeClassName:null!=(t=o.activeClassName)?t:r?"menu__link--active":"navbar__link--active"}))}var pe=n(33535),fe=n(30214),me=n(40797);const he="dropdownNavbarItemMobile_S0Fm";var ge=["items","position","className","onClick"],be=["items","className","position","onClick"],ye=["mobile"];function ve(e,t){return e.some((function(e){return function(e,t){return!!(0,fe.ys)(e.to,t)||!!ne(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)}))}function xe(e){var t,n=e.items,a=e.position,i=e.className,s=(e.onClick,(0,k.A)(e,ge)),c=(0,r.useRef)(null),l=(0,r.useState)(!1),d=l[0],p=l[1];return(0,r.useEffect)((function(){var e=function(e){c.current&&!c.current.contains(e.target)&&p(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),document.addEventListener("focusin",e),function(){document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e),document.removeEventListener("focusin",e)}}),[c]),(0,u.jsxs)("div",{ref:c,className:(0,o.A)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===a,"dropdown--show":d}),children:[(0,u.jsx)(ae,Object.assign({"aria-haspopup":"true","aria-expanded":d,role:"button",href:s.to?void 0:"#",className:(0,o.A)("navbar__link",i)},s,{onClick:s.to?void 0:function(e){return e.preventDefault()},onKeyDown:function(e){"Enter"===e.key&&(e.preventDefault(),p(!d))},children:null!=(t=s.children)?t:s.label})),(0,u.jsx)("ul",{className:"dropdown__menu",children:n.map((function(e,t){return(0,r.createElement)(Ke,Object.assign({isDropdownItem:!0,activeClassName:"dropdown__link--active"},e,{key:t}))}))})]})}function we(e){var t,n,a=e.items,i=e.className,c=(e.position,e.onClick),l=(0,k.A)(e,be),d=(n=(0,me.A)().siteConfig.baseUrl,(0,s.zy)().pathname.replace(n,"/")),p=ve(a,d),f=(0,pe.u)({initialState:function(){return!p}}),m=f.collapsed,h=f.toggleCollapsed,g=f.setCollapsed;return(0,r.useEffect)((function(){p&&g(!p)}),[d,p,g]),(0,u.jsxs)("li",{className:(0,o.A)("menu__list-item",{"menu__list-item--collapsed":m}),children:[(0,u.jsx)(ae,Object.assign({role:"button",className:(0,o.A)(he,"menu__link menu__link--sublist menu__link--sublist-caret",i)},l,{onClick:function(e){e.preventDefault(),h()},children:null!=(t=l.children)?t:l.label})),(0,u.jsx)(pe.N,{lazy:!0,as:"ul",className:"menu__list",collapsed:m,children:a.map((function(e,t){return(0,r.createElement)(Ke,Object.assign({mobile:!0,isDropdownItem:!0,onClick:c,activeClassName:"menu__link--active"},e,{key:t}))}))})]})}function ke(e){var t=e.mobile,n=void 0!==t&&t,r=(0,k.A)(e,ye),o=n?we:xe;return(0,u.jsx)(o,Object.assign({},r))}var _e=n(67976),Se=["width","height"];function Ee(e){var t=e.width,n=void 0===t?20:t,r=e.height,o=void 0===r?20:r,a=(0,k.A)(e,Se);return(0,u.jsx)("svg",Object.assign({viewBox:"0 0 24 24",width:n,height:o,"aria-hidden":!0},a,{children:(0,u.jsx)("path",{fill:"currentColor",d:"M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"})}))}const Ce="iconLanguage_nlXk";var Ae=["mobile","dropdownItemsBefore","dropdownItemsAfter","queryString"];function qe(e){var t,n,r="";if("string"==typeof e||"number"==typeof e)r+=e;else if("object"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(n=qe(e[t]))&&(r&&(r+=" "),r+=n)}else for(n in e)e[n]&&(r&&(r+=" "),r+=n);return r}const je=function(){for(var e,t,n=0,r="",o=arguments.length;n<o;n++)(e=arguments[n])&&(t=qe(e))&&(r&&(r+=" "),r+=t);return r};var Te=n(72077),Ne=n(689),Oe=n.n(Ne),Re=["highlightState"];function Pe(){var e,t=(0,s.zy)(),n=(0,s.W6)(),o=(0,me.A)().siteConfig.baseUrl,a=(0,r.useState)({wordToHighlight:"",isTitleSuggestion:!1,titleText:""}),i=a[0],c=a[1];return(0,r.useEffect)((function(){var e;if(null!=(e=t.state)&&e.highlightState&&0!==t.state.highlightState.wordToHighlight.length){c(t.state.highlightState);var r=t.state,o=(r.highlightState,(0,k.A)(r,Re));n.replace(Object.assign({},t,{state:o}))}}),[null==(e=t.state)?void 0:e.highlightState,n,t]),(0,r.useEffect)((function(){var e;if(0!==i.wordToHighlight.length){var t=null!=(e=document.getElementsByTagName("article")[0])?e:document.getElementsByTagName("main")[0];if(t){var n=new(Oe())(t),r={ignoreJoiners:!0};return n.mark(i.wordToHighlight,r),function(){return n.unmark(r)}}}}),[i,o]),null}const Le=function(e){var t,o,a=(0,r.useRef)(!1),i=(0,r.useRef)(null),c=(0,r.useState)(!1),l=c[0],d=c[1],p=(0,s.W6)(),f=(0,me.A)().siteConfig,m=void 0===f?{}:f,h=(m.plugins||[]).find((function(e){return Array.isArray(e)&&"string"==typeof e[0]&&e[0].includes("docusaurus-lunr-search")})),g=(0,B.A)(),b=m.baseUrl,y=h&&(null==(t=h[1])?void 0:t.assetUrl)||b,v=(0,Te.P_)("docusaurus-lunr-search"),x=function(){a.current||(Promise.all([fetch(""+y+v.fileNames.searchDoc).then((function(e){return e.json()})),fetch(""+y+v.fileNames.lunrIndex).then((function(e){return e.json()})),Promise.all([n.e(4190),n.e(7918)]).then(n.bind(n,37324)),Promise.all([n.e(1869),n.e(2589)]).then(n.bind(n,72589))]).then((function(e){var t=e[0],n=e[1],r=e[2].default,o=t.searchDocs,a=t.options;o&&0!==o.length&&(!function(e,t,n,r){new n({searchDocs:e,searchIndex:t,baseUrl:b,inputSelector:"#search_input_react",handleSelected:function(e,t,n){var o=n.url||"/";document.createElement("a").href=o,e.setVal(""),t.target.blur();var a="";if(r.highlightResult)try{var i=(n.text||n.subcategory||n.title).match(new RegExp("<span.+span>\\w*","g"));if(i&&i.length>0){var s=document.createElement("div");s.innerHTML=i[0],a=s.textContent}}catch(c){console.log(c)}p.push(o,{highlightState:{wordToHighlight:a}})},maxHits:r.maxHits})}(o,n,r,a),d(!0))})),a.current=!0)},w=(0,r.useCallback)((function(t){i.current.contains(t.target)||i.current.focus(),e.handleSearchBarToggle&&e.handleSearchBarToggle(!e.isSearchBarExpanded)}),[e.isSearchBarExpanded]);return g&&(x(),o=window.navigator.platform.startsWith("Mac")?"Search \u2318+K":"Search Ctrl+K"),(0,r.useEffect)((function(){e.autoFocus&&l&&i.current.focus()}),[l]),(0,u.jsxs)("div",{className:"navbar__search",children:[(0,u.jsx)("span",{"aria-label":"expand searchbar",role:"button",className:je("search-icon",{"search-icon-hidden":e.isSearchBarExpanded}),onClick:w,onKeyDown:w,tabIndex:0}),(0,u.jsx)("input",{id:"search_input_react",type:"search",placeholder:l?o:"Loading...","aria-label":"Search",className:je("navbar__search-input",{"search-bar-expanded":e.isSearchBarExpanded},{"search-bar":!e.isSearchBarExpanded}),onClick:x,onMouseOver:x,onFocus:w,onBlur:w,ref:i,disabled:!l}),(0,u.jsx)(Pe,{})]},"search-box")},Ie={navbarSearchContainer:"navbarSearchContainer_Bca1"};function De(e){var t=e.children,n=e.className;return(0,u.jsx)("div",{className:(0,o.A)(n,Ie.navbarSearchContainer),children:t})}var Me=n(69493),Fe=n(84562),ze=["docId","label","docsPluginId"];var Be=["sidebarId","label","docsPluginId"];var Ue=["label","to","docsPluginId"];var $e=n(96351),He=["mobile","docsPluginId","dropdownActiveClassDisabled","dropdownItemsBefore","dropdownItemsAfter"];function We(e,t){var n;return null!=(n=t.alternateDocVersions[e.name])?n:function(e){return e.docs.find((function(t){return t.id===e.mainDocId}))}(e)}const Ge={default:de,localeDropdown:function(e){var t=e.mobile,n=e.dropdownItemsBefore,r=e.dropdownItemsAfter,o=e.queryString,a=void 0===o?"":o,i=(0,k.A)(e,Ae),l=(0,me.A)().i18n,d=l.currentLocale,p=l.locales,f=l.localeConfigs,m=(0,_e.o)(),h=(0,s.zy)(),g=h.search,b=h.hash,y=p.map((function(e){var n=""+("pathname://"+m.createUrl({locale:e,fullyQualified:!1}))+g+b+a;return{label:f[e].label,lang:f[e].htmlLang,to:n,target:"_self",autoAddBaseUrl:!1,className:e===d?t?"menu__link--active":"dropdown__link--active":""}})),v=[].concat(n,y,r),x=t?(0,c.T)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):f[d].label;return(0,u.jsx)(ke,Object.assign({},i,{mobile:t,label:(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(Ee,{className:Ce}),x]}),items:v}))},search:function(e){var t=e.mobile,n=e.className;return t?null:(0,u.jsx)(De,{className:n,children:(0,u.jsx)(Le,{})})},dropdown:ke,html:function(e){var t=e.value,n=e.className,r=e.mobile,a=void 0!==r&&r,i=e.isDropdownItem,s=void 0!==i&&i,c=s?"li":"div";return(0,u.jsx)(c,{className:(0,o.A)({navbar__item:!a&&!s,"menu__list-item":a},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){var t=e.docId,n=e.label,r=e.docsPluginId,o=(0,k.A)(e,ze),a=(0,Me.zK)(r).activeDoc,i=(0,Fe.QB)(t,r),s=(null==a?void 0:a.path)===(null==i?void 0:i.path);return null===i||i.unlisted&&!s?null:(0,u.jsx)(de,Object.assign({exact:!0},o,{isActive:function(){return s||!(null==a||!a.sidebar)&&a.sidebar===i.sidebar},label:null!=n?n:i.id,to:i.path}))},docSidebar:function(e){var t=e.sidebarId,n=e.label,r=e.docsPluginId,o=(0,k.A)(e,Be),a=(0,Me.zK)(r).activeDoc,i=(0,Fe.fW)(t,r).link;if(!i)throw new Error('DocSidebarNavbarItem: Sidebar with ID "'+t+"\" doesn't have anything to be linked to.");return(0,u.jsx)(de,Object.assign({exact:!0},o,{isActive:function(){return(null==a?void 0:a.sidebar)===t},label:null!=n?n:i.label,to:i.path}))},docsVersion:function(e){var t=e.label,n=e.to,r=e.docsPluginId,o=(0,k.A)(e,Ue),a=(0,Fe.Vd)(r)[0],i=null!=t?t:a.label,s=null!=n?n:function(e){return e.docs.find((function(t){return t.id===e.mainDocId}))}(a).path;return(0,u.jsx)(de,Object.assign({},o,{label:i,to:s}))},docsVersionDropdown:function(e){var t=e.mobile,n=e.docsPluginId,r=e.dropdownActiveClassDisabled,o=e.dropdownItemsBefore,a=e.dropdownItemsAfter,i=(0,k.A)(e,He),l=(0,s.zy)(),d=l.search,p=l.hash,f=(0,Me.zK)(n),m=(0,Me.jh)(n),h=(0,$e.g1)(n).savePreferredVersionName,g=[].concat(o,m.map((function(e){var t=We(e,f);return{label:e.label,to:""+t.path+d+p,isActive:function(){return e===f.activeVersion},onClick:function(){return h(e.name)}}})),a),b=(0,Fe.Vd)(n)[0],y=t&&g.length>1?(0,c.T)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):b.label,v=t&&g.length>1?void 0:We(b,f).path;return g.length<=1?(0,u.jsx)(de,Object.assign({},i,{mobile:t,label:y,to:v,isActive:r?function(){return!1}:void 0})):(0,u.jsx)(ke,Object.assign({},i,{mobile:t,label:y,to:v,items:g,isActive:r?function(){return!1}:void 0}))}};var Ve=["type"];function Ke(e){var t=e.type,n=(0,k.A)(e,Ve),r=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),o=Ge[r];if(!o)throw new Error('No NavbarItem component found for type "'+t+'".');return(0,u.jsx)(o,Object.assign({},n))}function Qe(){var e=(0,N.M)(),t=(0,x.p)().navbar.items;return(0,u.jsx)("ul",{className:"menu__list",children:t.map((function(t,n){return(0,r.createElement)(Ke,Object.assign({mobile:!0},t,{onClick:function(){return e.toggle()},key:n}))}))})}function Ye(e){return(0,u.jsx)("button",Object.assign({},e,{type:"button",className:"clean-btn navbar-sidebar__back",children:(0,u.jsx)(c.A,{id:"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel",description:"The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)",children:"\u2190 Back to main menu"})}))}function Je(){var e=0===(0,x.p)().navbar.items.length,t=M();return(0,u.jsxs)(u.Fragment,{children:[!e&&(0,u.jsx)(Ye,{onClick:function(){return t.hide()}}),t.content]})}function Ze(){var e,t=(0,N.M)();return void 0===(e=t.shown)&&(e=!0),(0,r.useEffect)((function(){return document.body.style.overflow=e?"hidden":"visible",function(){document.body.style.overflow="visible"}}),[e]),t.shouldRender?(0,u.jsx)(F,{header:(0,u.jsx)(Z,{}),primaryMenu:(0,u.jsx)(Qe,{}),secondaryMenu:(0,u.jsx)(Je,{})}):null}const Xe={navbarHideable:"navbarHideable_m1mJ",navbarHidden:"navbarHidden_jGov"};function et(e){return(0,u.jsx)("div",Object.assign({role:"presentation"},e,{className:(0,o.A)("navbar-sidebar__backdrop",e.className)}))}function tt(e){var t=e.children,n=(0,x.p)().navbar,a=n.hideOnScroll,i=n.style,s=(0,N.M)(),d=function(e){var t=(0,r.useState)(e),n=t[0],o=t[1],a=(0,r.useRef)(!1),i=(0,r.useRef)(0),s=(0,r.useCallback)((function(e){null!==e&&(i.current=e.getBoundingClientRect().height)}),[]);return(0,O.Mq)((function(t,n){var r=t.scrollY;if(e)if(r<i.current)o(!0);else if(a.current)a.current=!1;else{var s=null==n?void 0:n.scrollY,c=document.documentElement.scrollHeight-i.current,l=window.innerHeight;s&&r>=s?o(!1):r+l<c&&o(!0)}})),(0,l.$)((function(t){if(e){var n=t.location.hash;if(n?document.getElementById(n.substring(1)):void 0)return a.current=!0,void o(!1);o(!0)}})),{navbarRef:s,isNavbarVisible:n}}(a),p=d.navbarRef,f=d.isNavbarVisible;return(0,u.jsxs)("nav",{ref:p,"aria-label":(0,c.T)({id:"theme.NavBar.navAriaLabel",message:"Main",description:"The ARIA label for the main navigation"}),className:(0,o.A)("navbar","navbar--fixed-top",a&&[Xe.navbarHideable,!f&&Xe.navbarHidden],{"navbar--dark":"dark"===i,"navbar--primary":"primary"===i,"navbar-sidebar--show":s.shown}),children:[t,(0,u.jsx)(et,{onClick:s.toggle}),(0,u.jsx)(Ze,{})]})}var nt=n(24194),rt="right";var ot=["width","height","className"];function at(e){var t=e.width,n=void 0===t?30:t,r=e.height,o=void 0===r?30:r,a=e.className,i=(0,k.A)(e,ot);return(0,u.jsx)("svg",Object.assign({className:a,width:n,height:o,viewBox:"0 0 30 30","aria-hidden":"true"},i,{children:(0,u.jsx)("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"})}))}function it(){var e=(0,N.M)(),t=e.toggle,n=e.shown;return(0,u.jsx)("button",{onClick:t,"aria-label":(0,c.T)({id:"theme.docs.sidebar.toggleSidebarButtonAriaLabel",message:"Toggle navigation bar",description:"The ARIA label for hamburger menu button of mobile navigation"}),"aria-expanded":n,className:"navbar__toggle clean-btn",type:"button",children:(0,u.jsx)(at,{})})}const st={colorModeToggle:"colorModeToggle_DEke"};function ct(e){var t=e.items;return(0,u.jsx)(u.Fragment,{children:t.map((function(e,t){return(0,u.jsx)(nt.k2,{onError:function(t){return new Error("A theme navbar item failed to render.\nPlease double-check the following navbar item (themeConfig.navbar.items) of your Docusaurus config:\n"+JSON.stringify(e,null,2),{cause:t})},children:(0,u.jsx)(Ke,Object.assign({},e))},t)}))})}function lt(e){var t=e.left,n=e.right;return(0,u.jsxs)("div",{className:"navbar__inner",children:[(0,u.jsx)("div",{className:"navbar__items",children:t}),(0,u.jsx)("div",{className:"navbar__items navbar__items--right",children:n})]})}function ut(){var e=(0,N.M)(),t=(0,x.p)().navbar.items,n=function(e){function t(e){var t;return"left"===(null!=(t=e.position)?t:rt)}return[e.filter(t),e.filter((function(e){return!t(e)}))]}(t),r=n[0],o=n[1],a=t.find((function(e){return"search"===e.type}));return(0,u.jsx)(lt,{left:(0,u.jsxs)(u.Fragment,{children:[!e.disabled&&(0,u.jsx)(it,{}),(0,u.jsx)(Y,{}),(0,u.jsx)(ct,{items:r})]}),right:(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(ct,{items:o}),(0,u.jsx)(K,{className:st.colorModeToggle}),!a&&(0,u.jsx)(De,{children:(0,u.jsx)(Le,{})})]})})}function dt(){return(0,u.jsx)(tt,{children:(0,u.jsx)(ut,{})})}var pt=["to","href","label","prependBaseUrlToHref","className"];function ft(e){var t=e.item,n=t.to,r=t.href,a=t.label,i=t.prependBaseUrlToHref,s=t.className,c=(0,k.A)(t,pt),l=(0,ee.Ay)(n),d=(0,ee.Ay)(r,{forcePrependBaseUrl:!0});return(0,u.jsxs)(X.A,Object.assign({className:(0,o.A)("footer__link-item",s)},r?{href:i?d:r}:{to:l},c,{children:[a,r&&!(0,te.A)(r)&&(0,u.jsx)(re.A,{})]}))}function mt(e){var t,n=e.item;return n.html?(0,u.jsx)("li",{className:(0,o.A)("footer__item",n.className),dangerouslySetInnerHTML:{__html:n.html}}):(0,u.jsx)("li",{className:"footer__item",children:(0,u.jsx)(ft,{item:n})},null!=(t=n.href)?t:n.to)}function ht(e){var t=e.column;return(0,u.jsxs)("div",{className:(0,o.A)("col footer__col",t.className),children:[(0,u.jsx)("div",{className:"footer__title",children:t.title}),(0,u.jsx)("ul",{className:"footer__items clean-list",children:t.items.map((function(e,t){return(0,u.jsx)(mt,{item:e},t)}))})]})}function gt(e){var t=e.columns;return(0,u.jsx)("div",{className:"row footer__links",children:t.map((function(e,t){return(0,u.jsx)(ht,{column:e},t)}))})}function bt(){return(0,u.jsx)("span",{className:"footer__link-separator",children:"\xb7"})}function yt(e){var t=e.item;return t.html?(0,u.jsx)("span",{className:(0,o.A)("footer__link-item",t.className),dangerouslySetInnerHTML:{__html:t.html}}):(0,u.jsx)(ft,{item:t})}function vt(e){var t=e.links;return(0,u.jsx)("div",{className:"footer__links text--center",children:(0,u.jsx)("div",{className:"footer__links",children:t.map((function(e,n){return(0,u.jsxs)(r.Fragment,{children:[(0,u.jsx)(yt,{item:e}),t.length!==n+1&&(0,u.jsx)(bt,{})]},n)}))})})}function xt(e){var t=e.links;return function(e){return"title"in e[0]}(t)?(0,u.jsx)(gt,{columns:t}):(0,u.jsx)(vt,{links:t})}var wt=n(39324);const kt="footerLogoLink_BH7S";function _t(e){var t,n=e.logo,r=(0,ee.hH)().withBaseUrl,a={light:r(n.src),dark:r(null!=(t=n.srcDark)?t:n.src)};return(0,u.jsx)(wt.A,{className:(0,o.A)("footer__logo",n.className),alt:n.alt,sources:a,width:n.width,height:n.height,style:n.style})}function St(e){var t=e.logo;return t.href?(0,u.jsx)(X.A,{href:t.href,className:kt,target:t.target,children:(0,u.jsx)(_t,{logo:t})}):(0,u.jsx)(_t,{logo:t})}function Et(e){var t=e.copyright;return(0,u.jsx)("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:t}})}function Ct(e){var t=e.style,n=e.links,r=e.logo,a=e.copyright;return(0,u.jsx)("footer",{className:(0,o.A)("footer",{"footer--dark":"dark"===t}),children:(0,u.jsxs)("div",{className:"container container-fluid",children:[n,(r||a)&&(0,u.jsxs)("div",{className:"footer__bottom text--center",children:[r&&(0,u.jsx)("div",{className:"margin-bottom--sm",children:r}),a]})]})})}function At(){var e=(0,x.p)().footer;if(!e)return null;var t=e.copyright,n=e.links,r=e.logo,o=e.style;return(0,u.jsx)(Ct,{style:o,links:n&&n.length>0&&(0,u.jsx)(xt,{links:n}),logo:r&&(0,u.jsx)(St,{logo:r}),copyright:t&&(0,u.jsx)(Et,{copyright:t})})}const qt=r.memo(At);var jt=(0,R.fM)([z.a,w.o,O.Tv,$e.VQ,i.Jx,function(e){var t=e.children;return(0,u.jsx)(P.y_,{children:(0,u.jsx)(N.e,{children:(0,u.jsx)(I,{children:t})})})}]);function Tt(e){var t=e.children;return(0,u.jsx)(jt,{children:t})}var Nt=n(9303);function Ot(e){var t=e.error,n=e.tryAgain;return(0,u.jsx)("main",{className:"container margin-vert--xl",children:(0,u.jsx)("div",{className:"row",children:(0,u.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,u.jsx)(Nt.A,{as:"h1",className:"hero__title",children:(0,u.jsx)(c.A,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed",children:"This page crashed."})}),(0,u.jsx)("div",{className:"margin-vert--lg",children:(0,u.jsx)(nt.a2,{onClick:n,className:"button button--primary shadow--lw"})}),(0,u.jsx)("hr",{}),(0,u.jsx)("div",{className:"margin-vert--md",children:(0,u.jsx)(nt.bq,{error:t})})]})})})}const Rt={mainWrapper:"mainWrapper_z2l0"};function Pt(e){var t=e.children,n=e.noFooter,r=e.wrapperClassName,s=e.title,c=e.description;return(0,b.J)(),(0,u.jsxs)(Tt,{children:[(0,u.jsx)(i.be,{title:s,description:c}),(0,u.jsx)(v,{}),(0,u.jsx)(T,{}),(0,u.jsx)(dt,{}),(0,u.jsx)("div",{id:d,className:(0,o.A)(g.G.wrapper.main,Rt.mainWrapper,r),children:(0,u.jsx)(a.A,{fallback:function(e){return(0,u.jsx)(Ot,Object.assign({},e))},children:t})}),!n&&(0,u.jsx)(qt,{})]})}},96351:(e,t,n)=>{"use strict";n.d(t,{VQ:()=>g,g1:()=>y});var r=n(96540),o=n(69493),a=n(54332),i=n(53115),s=n(78749),c=n(102),l=n(74848),u=function(e){return"docs-preferred-version-"+e},d={save:function(e,t,n){(0,s.Wf)(u(e),{persistence:t}).set(n)},read:function(e,t){return(0,s.Wf)(u(e),{persistence:t}).get()},clear:function(e,t){(0,s.Wf)(u(e),{persistence:t}).del()}},p=function(e){return Object.fromEntries(e.map((function(e){return[e,{preferredVersionName:null}]})))};var f=r.createContext(null);function m(){var e=(0,o.Gy)(),t=(0,i.p)().docs.versionPersistence,n=(0,r.useMemo)((function(){return Object.keys(e)}),[e]),a=(0,r.useState)((function(){return p(n)})),s=a[0],c=a[1];return(0,r.useEffect)((function(){c(function(e){var t=e.pluginIds,n=e.versionPersistence,r=e.allDocsData;return Object.fromEntries(t.map((function(e){return[e,(t=e,o=d.read(t,n),r[t].versions.some((function(e){return e.name===o}))?{preferredVersionName:o}:(d.clear(t,n),{preferredVersionName:null}))];var t,o})))}({allDocsData:e,versionPersistence:t,pluginIds:n}))}),[e,t,n]),[s,(0,r.useMemo)((function(){return{savePreferredVersion:function(e,n){d.save(e,t,n),c((function(t){var r;return Object.assign({},t,((r={})[e]={preferredVersionName:n},r))}))}}}),[t])]}function h(e){var t=e.children,n=m();return(0,l.jsx)(f.Provider,{value:n,children:t})}function g(e){var t=e.children;return(0,l.jsx)(h,{children:t})}function b(){var e=(0,r.useContext)(f);if(!e)throw new c.dV("DocsPreferredVersionContextProvider");return e}function y(e){var t;void 0===e&&(e=a.W);var n=(0,o.ht)(e),i=b(),s=i[0],c=i[1],l=s[e].preferredVersionName;return{preferredVersion:null!=(t=n.versions.find((function(e){return e.name===l})))?t:null,savePreferredVersionName:(0,r.useCallback)((function(t){c.savePreferredVersion(e,t)}),[c,e])}}},96540:(e,t,n)=>{"use strict";e.exports=n(15287)},98380:e=>{"use strict";var t=function(){var e=function(){};function t(e,t){Array.isArray(e)?e.forEach(t):null!=e&&t(e,0)}function n(e){for(var t={},n=0,r=e.length;n<r;n++)t[e[n]]=!0;return t}function r(e){var n={},r=[];function o(r,a){if(!(r in n)){a.push(r);var i=a.indexOf(r);if(i<a.length-1)throw new Error("Circular dependency: "+a.slice(i).join(" -> "));var s={},c=e[r];if(c){function l(t){if(!(t in e))throw new Error(r+" depends on an unknown component "+t);if(!(t in s))for(var i in o(t,a),s[t]=!0,n[t])s[i]=!0}t(c.require,l),t(c.optional,l),t(c.modify,l)}n[r]=s,a.pop()}}return function(e){var t=n[e];return t||(o(e,r),t=n[e]),t}}function o(e){for(var t in e)return!0;return!1}return function(a,i,s){var c=function(e){var t={};for(var n in e){var r=e[n];for(var o in r)if("meta"!=o){var a=r[o];t[o]="string"==typeof a?{title:a}:a}}return t}(a),l=function(e){var n;return function(r){if(r in e)return r;if(!n)for(var o in n={},e){var a=e[o];t(a&&a.alias,(function(t){if(t in n)throw new Error(t+" cannot be alias for both "+o+" and "+n[t]);if(t in e)throw new Error(t+" cannot be alias of "+o+" because it is a component.");n[t]=o}))}return n[r]||r}}(c);i=i.map(l),s=(s||[]).map(l);var u=n(i),d=n(s);i.forEach((function e(n){var r=c[n];t(r&&r.require,(function(t){t in d||(u[t]=!0,e(t))}))}));for(var p,f=r(c),m=u;o(m);){for(var h in p={},m){var g=c[h];t(g&&g.modify,(function(e){e in d&&(p[e]=!0)}))}for(var b in d)if(!(b in u))for(var y in f(b))if(y in u){p[b]=!0;break}for(var v in m=p)u[v]=!0}var x={getIds:function(){var e=[];return x.load((function(t){e.push(t)})),e},load:function(t,n){return function(t,n,r,o){var a=o?o.series:void 0,i=o?o.parallel:e,s={},c={};function l(e){if(e in s)return s[e];c[e]=!0;var o,u=[];for(var d in t(e))d in n&&u.push(d);if(0===u.length)o=r(e);else{var p=i(u.map((function(e){var t=l(e);return delete c[e],t})));a?o=a(p,(function(){return r(e)})):r(e)}return s[e]=o}for(var u in n)l(u);var d=[];for(var p in c)d.push(s[p]);return i(d)}(f,u,t,n)}};return x}}();e.exports=t},98587:(e,t,n)=>{"use strict";function r(e,t){if(null==e)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(-1!==t.indexOf(r))continue;n[r]=e[r]}return n}n.d(t,{A:()=>r})}},e=>{e.O(0,[1869],(()=>{return t=45161,e(e.s=t);var t}));e.O()}]);