1(()=>{var A=class{forEach(e,t){e=e||[];for(let i=0;i<e.length;i++)t(e[i])}getScrollTop(){return(document.documentElement??document.body).scrollTop}isMobile(){return window.matchMedia("only screen and (max-width: 680px)").matches}isTocStatic(){return window.matchMedia("only screen and (max-width: 960px)").matches}animateCSS(e,t,i,s){!Array.isArray(t)&&(t=[t]),e.classList.add("animate__animated",...t),e.addEventListener("animationend",()=>{!i&&e.classList.remove("animate__animated",...t),typeof s=="function"&&s()},{once:!0})}isValidDate(e){return e instanceof Date&&!isNaN(e.getTime())}scrollIntoView(e){(e.startsWith("#")?document.getElementById(e.slice(1)):document.querySelector(e))?.scrollIntoView({behavior:"smooth"})}getStagingDOM(){let e=document.createElement("div");return e.style.display="none",e.dataset.stagingId=Math.random().toString(36).slice(2),document.body.appendChild(e),{$el:e,stage(t){e.innerHTML="",e.appendChild(t)},contentAsHtml(){return e.innerHTML},contentAsText(){return e.innerText},contentAsJson(){return JSON.parse(e.innerHTML)},destroy(){document.body.removeChild(e)}}}copyText(e){return navigator.clipboard?(this.copyText=t=>navigator.clipboard.writeText(t),this.copyText(e)):(this.copyText=t=>new Promise((i,s)=>{let n=document.createElement("input");n.value=t,document.body.appendChild(n),n.select(),document.execCommand("copy")?(document.body.removeChild(n),i()):s()}),this.copyText(e))}};var B=class{constructor(){this.config=window.config,this.isDark=document.documentElement.dataset.theme==="dark",this.util=new A,this.newScrollTop=this.util.getScrollTop(),this.oldScrollTop=this.newScrollTop,this.scrollEventSet=new Set,this.resizeEventSet=new Set,this.switchThemeEventSet=new Set,this.clickMaskEventSet=new Set,this.beforeprintEventSet=new Set,this.disableScrollEvent=!1,window.objectFitImages&&objectFitImages()}initThemeColor(){let e=document.querySelector('[name="theme-color"]');e&&(this._themeColorOnSwitchTheme=this._themeColorOnSwitchTheme||(()=>{e.content=this.isDark?e.dataset.dark:e.dataset.light}),this.switchThemeEventSet.add(this._themeColorOnSwitchTheme),this._themeColorOnSwitchTheme())}initSVGIcon(){this.util.forEach(document.querySelectorAll("[data-svg-src]"),e=>{fetch(e.dataset.svgSrc).then(t=>t.text()).then(t=>{let i=document.createElement("div");i.insertAdjacentHTML("afterbegin",t);let s=i.firstChild;s.dataset.svgSrc=e.dataset.svgSrc,s.classList.add("icon");let n=s.getElementsByTagName("title");n.length&&s.removeChild(n[0]),e.parentElement.replaceChild(s,e)}).catch(t=>{console.error(t)})})}initTwemoji(e=document.body){this.config.twemoji&&twemoji.parse(e)}initMenu(){this.initMenuDesktop(),this.initMenuMobile()}initMenuDesktop(){this.util.forEach(document.querySelectorAll(".has-children"),e=>{e.querySelector(".sub-menu").style.minWidth=`${e.offsetWidth-8}px`})}initMenuMobile(){let e=document.getElementById("menu-toggle-mobile"),t=document.getElementById("menu-mobile");e.addEventListener("click",i=>{document.body.classList.toggle("blur"),e.classList.toggle("active"),t.classList.toggle("active"),this.disableScrollEvent=document.body.classList.contains("blur")},!1),this._menuMobileOnClickMask=this._menuMobileOnClickMask||(()=>{e.classList.remove("active"),t.classList.remove("active")}),this.clickMaskEventSet.add(this._menuMobileOnClickMask),this.util.forEach(document.querySelectorAll(".menu-item>.nested-item"),i=>{i.addEventListener("click",function(){this.parentNode.querySelector(".sub-menu").classList.toggle("open"),this.querySelector(".dropdown-icon").classList.toggle("open")})})}initSwitchTheme(){this.util.forEach(document.getElementsByClassName("theme-switch"),e=>{e.addEventListener("click",()=>{document.documentElement.dataset.theme=this.isDark?"light":"dark",this.isDark=!this.isDark,window.localStorage?.setItem("theme",this.isDark?"dark":"light");for(let t of this.switchThemeEventSet)t(this.isDark)},!1)})}initSearch(){let e=this.config.search,t=this.util.isMobile();if(!e||t&&this._searchMobileOnce||!t&&this._searchDesktopOnce)return;let i=e.maxResultLength??10,s=e.snippetLength??50,n=e.highlightTag??"em",c=e.isCaseSensitive??!1,r=e.minMatchCharLength??1,l=e.findAllMatches??!1,h=e.location??0,o=e.threshold??.3,a=e.distance??100,m=e.ignoreLocation??!1,d=e.useExtendedSearch??!1,u=e.ignoreFieldNorm??!1,f=t?"mobile":"desktop",w=document.getElementById(`header-${f}`),v=document.getElementById(`search-input-${f}`),I=document.getElementById(`search-toggle-${f}`),_=document.getElementById(`search-loading-${f}`),S=document.getElementById(`search-clear-${f}`);t?(this._searchMobileOnce=!0,v.addEventListener("focus",()=>{this.disableScrollEvent=!0,document.body.classList.add("blur"),w.classList.add("open")},!1),document.getElementById("search-cancel-mobile").addEventListener("click",()=>{this.disableScrollEvent=!1,w.classList.remove("open"),document.body.classList.remove("blur"),document.getElementById("menu-toggle-mobile").classList.remove("active"),document.getElementById("menu-mobile").classList.remove("active"),_.style.display="none",S.style.display="none",this._searchMobile&&this._searchMobile.autocomplete.setVal("")},!1),S.addEventListener("click",()=>{S.style.display="none",this._searchMobile&&this._searchMobile.autocomplete.setVal("")},!1),this._searchMobileOnClickMask=this._searchMobileOnClickMask||(()=>{w.classList.remove("open"),_.style.display="none",S.style.display="none",this._searchMobile&&this._searchMobile.autocomplete.setVal("")}),this.clickMaskEventSet.add(this._searchMobileOnClickMask)):(this._searchDesktopOnce=!0,I.addEventListener("click",()=>{document.body.classList.add("blur"),w.classList.add("open"),v.focus()},!1),S.addEventListener("click",()=>{S.style.display="none",this._searchDesktop&&this._searchDesktop.autocomplete.setVal("")},!1),this._searchDesktopOnClickMask=this._searchDesktopOnClickMask||(()=>{w.classList.remove("open"),_.style.display="none",S.style.display="none",this._searchDesktop&&this._searchDesktop.autocomplete.setVal("")}),this.clickMaskEventSet.add(this._searchDesktopOnClickMask)),v.addEventListener("input",()=>{v.value===""?S.style.display="none":S.style.display="inline"},!1),(()=>{let O=autocomplete(`#search-input-${f}`,{hint:!1,autoselect:!0,dropdownMenuContainer:`#search-dropdown-${f}
1`,clearOnSelected:!0,cssClasses:{noPrefix:!0},debug:!0},{name:"search",source:(T,M)=>{_.style.display="inline",S.style.display="none";let E=L=>{_.style.display="none",S.style.display="inline",M(L)};if(e.type==="algolia")this._algoliaIndex=this._algoliaIndex||algoliasearch(e.algoliaAppID,e.algoliaSearchKey).initIndex(e.algoliaIndex),this._algoliaIndex.search(T,{offset:0,length:i*8,attributesToHighlight:["title"],attributesToSnippet:[`content:${s}`],highlightPreTag:`<${n}>`,highlightPostTag:`</${n}>`}).then(({hits:L})=>{let g={};L.forEach(({uri:y,date:N,_highlightResult:{title:D},_snippetResult:{content:C}})=>{g[y]&&g[y].context.length>C.value||(g[y]={uri:y,title:D.value,date:N,context:C.value})}),E(Object.values(g).slice(0,i))}).catch(L=>{console.error(L),E([])});else if(e.type==="fuse"){let L=()=>{let g={};return window._index.search(T).forEach(({item:y,refIndex:N,matches:D})=>{let C=y.title,x=y.content.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">");D.forEach(({indices:k,value:j,key:H})=>{if(H==="content"){let b=0;for(let p=0;p<k.length;p++){let q=x.substring(k[p][0]+b,k[p][1]+1+b),$=`<${n}>`+q+`</${n}>`;x=x.substring(0,k[p][0]+b)+$+x.substring(k[p][1]+1+b,x.length),b+=n.length*2+5}}else if(H==="title"){let b=0;for(let p=0;p<k.length;p++){let q=C.substring(k[p][0]+b,k[p][1]+1+b),$=`<${n}>`+q+`</${n}>`;C=C.substring(0,k[p][0]+b)+$+C.substring(k[p][1]+1+b,x.length),b+=n.length*2+5}}}),g[y.uri]={uri:y.uri,title:C,date:y.date,context:x}}),Object.values(g).slice(0,i)};window._index?E(L()):fetch(e.fuseIndexURL).then(g=>g.json()).then(g=>{let y={isCaseSensitive:c,findAllMatches:l,minMatchCharLength:r,location:h,threshold:o,distance:a,ignoreLocation:m,useExtendedSearch:d,ignoreFieldNorm:u,includeScore:!1,shouldSort:!0,includeMatches:!0,keys:["content","title"]};window._index=new Fuse(g,y),E(L())}).catch(g=>{console.error(g),E([])})}},templates:{suggestion:({title:T,date:M,context:E})=>`<div><span class="suggestion-title">${T}</span><span class="suggestion-date">${M}</span></div><div class="suggestion-context">${E}</div>`,empty:({query:T})=>`<div class="search-empty">${e.noResultsFound}: <span class="search-query">"${T}"</span></div>`,footer:({})=>{let{searchType:T,icon:M,href:E}=e.type==="algolia"?{searchType:"algolia",icon:'<i class="fa-brands fa-algolia fa-fw" aria-hidden="true"></i>',href:"https://www.algolia.com/"}:{searchType:"Fuse.js",icon:"",href:"https://fusejs.io/"};return`<div class="search-footer">Search by <a href="${E}" rel="noopener noreferrer" target="_blank">${M} ${T}</a></div>`}}});O.on("autocomplete:selected",(T,M,E,L)=>{window.location.assign(M.uri)}),t?this._searchMobile=O:this._searchDesktop=O})()}initBreadcrumb(){let e=document.querySelector(".breadcrumb-container.sticky");this.breadcrumbHeight=e?.clientHeight??0,this.breadcrumbHeight&&document.querySelector("main.container")?.style.setProperty("--fi-breadcrumb-height",`${this.breadcrumbHeight}px`)}
1initDetails(e=document){this.util.forEach(e.querySelectorAll(".details:not(.disabled)"),t=>{t.querySelector(".details-summary").addEventListener("click",()=>{t.classList.toggle("open")},!1)})}initLightGallery(){this.config.lightgallery&&(this.lg&&this.lg.destroy(!0),this.lg=lightGallery(document.getElementById("content"),{plugins:[lgThumbnail,lgZoom],selector:".lightgallery",speed:400,hideBarsDelay:2e3,allowMediaOverlap:!0,exThumbImage:"data-thumbnail",toggleThumb:!0,thumbWidth:80,thumbHeight:"60px",actualSize:!1,showZoomInOutIcons:!0,licenseKey:"none"}))}initCodeWrapper(){if(!this.config.code){this.initCopyCode();return}this.util.forEach(document.querySelectorAll(".highlight > pre.chroma"),e=>{let t=document.createElement("div");t.className=e.className;let i=document.createElement("table");t.appendChild(i);let s=document.createElement("tbody");i.appendChild(s);let n=document.createElement("tr");s.appendChild(n);let c=document.createElement("td");n.appendChild(c),e.parentElement.replaceChild(t,e),c.appendChild(e)}),this.util.forEach(document.querySelectorAll(".highlight > .chroma:not([data-init])"),e=>{if(e.dataset.init="true",e.parentElement.classList.contains("no-header")){this.initCopyCode(e);return}let t=e.querySelectorAll("pre.chroma > code");if(t.length){let i=t[t.length-1],s=document.createElement("div");s.className="code-header "+i.className.toLowerCase();let n=document.createElement("span");n.classList.add("code-title"),n.insertAdjacentHTML("afterbegin",e.parentNode.title?`<i class="arrow fa-solid fa-chevron-right fa-fw" aria-hidden="true"></i><span class="title-inner">${e.parentNode.title}</span>`:'<i class="arrow fa-solid fa-chevron-right fa-fw" aria-hidden="true"></i>'),n.addEventListener("click",()=>{e.classList.toggle("open")},!1),s.appendChild(n);let c=document.createElement("span");if(c.insertAdjacentHTML("afterbegin",'<i class="fa-solid fa-ellipsis-h fa-fw" aria-hidden="true"></i>'),c.classList.add("ellipses"),c.addEventListener("click",()=>{e.classList.add("open")},!1),s.appendChild(c),this.config.code.editable){let r=document.createElement("span");r.classList.add("edit"),r.insertAdjacentHTML("afterbegin",`<i class="fa-solid fa-pen-to-square fa-fw" title="${this.config.code.editUnLockTitle}" aria-hidden="true"></i>`),r.addEventListener("click",()=>{let l=r.querySelector(".fa-pen-to-square"),h=r.querySelector(".fa-lock"),o=r.parentElement.parentElement.querySelectorAll("pre.chroma"),a=o.length===2?o[1]:o[0];l?(l.classList.add("fa-lock"),l.classList.remove("fa-pen-to-square"),l.title=this.config.code.editLockTitle,a.setAttribute("contenteditable",!0),a.focus()):(h.classList.add("fa-pen-to-square"),h.classList.remove("fa-lock"),h.title=this.config.code.editUnLockTitle,a.setAttribute("contenteditable",!1),a.blur())},!1),s.appendChild(r)}if(this.config.code.copyTitle){let r=document.createElement("span");r.insertAdjacentHTML("afterbegin",'<i class="fa-regular fa-copy fa-fw" aria-hidden="true"></i>'),r.classList.add("copy");let l=i.innerText.trim();if(e.closest("details")!==null){let o=document.createElement("div");o.appendChild(i.cloneNode(!0)),l=o.innerText.trim()}((e.parentElement.dataset.open?JSON.parse(e.parentElement.dataset.open):void 0)??(this.config.code.maxShownLines<0||l.split(` 2`).length<this.config.code.maxShownLines+2))&&e.classList.add("open"),r.title=this.config.code.copyTitle,r.addEventListener("click",()=>{this.util.copyText(l).then(()=>{this.util.animateCSS(i,"animate__flash")},()=>{console.error("Clipboard write failed!","Your browser does not support clipboard API!")})},!1),s.appendChild(r)}e.insertBefore(s,e.firstChild)}})}initTable(e=document){this.util.forEach(e.querySelectorAll(".content table"),t=>{let i=document.createElement("div");i.className="table-wrapper",t.parentElement.replaceChild(i,t),i.appendChild(t)})}initCopyCode(e){}initToc(){let e=document.getElementById("TableOfContents");if(e!==null)if(document.getElementById("toc-static").dataset.kept==="true"||this.util.isTocStatic()){let t=document.getElementById("toc-content-static");e.parentElement!==t&&(e.parentElement.removeChild(e),t.appendChild(e)),this._tocOnScroll&&this.scrollEventSet.delete(this._tocOnScroll)}else{let t=document.getElementById("toc-content-auto");e.parentElement!==t&&(e.parentElement.removeChild(e),t.appendChild(e));let i=document.getElementById("toc-auto");i.style.visibility="visible",this.util.animateCSS(i,["animate__fadeIn","animate__faster"],!0);let s=document.querySelector(".post-meta");
2i.style.marginTop=`${s.offsetTop+s.clientHeight}px`;let n=e.querySelectorAll("a:first-child"),c=e.getElementsByTagName("li"),r=document.getElementsByClassName("heading-element"),l=document.getElementById("header-desktop").offsetHeight;document.querySelector(".container").addEventListener("resize",()=>{i.style.marginBottom=`${document.querySelector(".container").clientHeight-document.querySelector(".post-footer").offsetTop}px`}),this._tocOnScroll=this._tocOnScroll||(()=>{i.style.marginBottom=`${document.querySelector(".container").clientHeight-document.querySelector(".post-footer").offsetTop}px`,this.util.forEach(n,a=>{a.classList.remove("active")}),this.util.forEach(c,a=>{a.classList.remove("has-active")});let h=20+(document.body.dataset.headerDesktop!=="normal"?l:0)+this.breadcrumbHeight,o=r.length-1;for(let a=0;a<r.length-1;a++){let m=r[a].getBoundingClientRect().top,d=r[a+1].getBoundingClientRect().top;if(a==0&&m>h||m<=h&&d>h){o=a;break}}if(o!==-1&&n[o]){n[o].classList.add("active");let a=n[o].parentElement;for(;a!==e;)a.classList.add("has-active"),a=a.parentElement.parentElement}}),this._tocOnScroll(),this.scrollEventSet.add(this._tocOnScroll)}}initTocListener(){let e=document.getElementById("toc-auto"),t=document.getElementById("toc-content-auto");document.querySelector("#toc-auto>.toc-title")?.addEventListener("click",()=>{let i=["animate__faster"],s=e.classList.contains("toc-hidden");i.push(s?"animate__fadeIn":"animate__fadeOut"),t.classList.remove(s?"animate__fadeOut":"animate__fadeIn"),this.util.animateCSS(t,i,!0),e.classList.toggle("toc-hidden")},!1)}fixTocScroll(){if(typeof APlayer=="function"){let e=document.getElementById("TableOfContents");if(e){let t=e.cloneNode(!0);e.parentElement.replaceChild(t,e),e=t}this.util.forEach(document.querySelectorAll(".heading-mark"),t=>{let i=t.cloneNode(!0);t.parentElement.replaceChild(i,t)})}}initMath(e=document.body){this.config.math&&renderMathInElement(e,this.config.math)}initMermaid(){if(!this.config.mermaid)return;let e=()=>{let t=this.config.mermaid.themes??["default","dark"];window.mermaid.initialize({securityLevel:"loose",startOnLoad:!1,theme:this.isDark?t[1]:t[0]}),window.mermaid.run()};e(),this.switchThemeEventSet.add(()=>{this.util.forEach(document.querySelectorAll(".mermaid[data-processed]"),t=>{t.dataset.processed="",t.innerHTML="",t.appendChild(t.nextElementSibling.content.cloneNode(!0))}),e()}),this.beforeprintEventSet.add(()=>{})}initEcharts(){this.config.echarts&&(echarts.registerTheme("light",this.config.echarts.lightTheme),echarts.registerTheme("dark",this.config.echarts.darkTheme),this._echartsOnSwitchTheme=this._echartsOnSwitchTheme||(()=>{this._echartsArr=this._echartsArr||[];for(let t=0;t<this._echartsArr.length;t++)this._echartsArr[t].dispose();this._echartsArr=[];let e=this.util.getStagingDOM();this.util.forEach(document.getElementsByClassName("echarts"),t=>{if(t.nextElementSibling.tagName==="TEMPLATE"){let i=echarts.init(t,this.isDark?"dark":"light",{renderer:"svg"});e.stage(t.nextElementSibling.content.cloneNode(!0)),i.setOption(e.contentAsJson()),this._echartsArr.push(i)}}),e.destroy()}),this.switchThemeEventSet.add(this._echartsOnSwitchTheme),this._echartsOnSwitchTheme(),this._echartsOnResize=this._echartsOnResize||(()=>{for(let e=0;e<this._echartsArr.length;e++)this._echartsArr[e].resize()}),this.resizeEventSet.add(this._echartsOnResize))}initMapbox(){this.config.mapbox&&(mapboxgl.accessToken||(mapboxgl.accessToken=this.config.mapbox.accessToken,mapboxgl.setRTLTextPlugin(this.config.mapbox.RTLTextPlugin),this._mapboxArr=this._mapboxArr||[]),this.util.forEach(document.querySelectorAll(".mapbox:empty"),e=>{let{lng:t,lat:i,zoom:s,lightStyle:n,darkStyle:c,marked:r,markers:l,navigation:h,geolocate:o,scale:a,fullscreen:m}=JSON.parse(e.dataset.options),d=new mapboxgl.Map({container:e,center:[t,i],zoom:s,minZoom:.2,style:this.isDark?c:n,attributionControl:!1});r&&new mapboxgl.Marker().setLngLat([t,i]).addTo(d);let u=typeof l=="string"?JSON.parse(l):l;Array.isArray(u)&&u.length>0&&u.forEach(f=>{let{lng:w,lat:v,description:I}=f,_=new mapboxgl.Popup({offset:25}).setText(I);
2new mapboxgl.Marker().setLngLat([w,v]).setPopup(_).addTo(d)}),h&&d.addControl(new mapboxgl.NavigationControl,"bottom-right"),o&&d.addControl(new mapboxgl.GeolocateControl({positionOptions:{enableHighAccuracy:!0},showUserLocation:!0,trackUserLocation:!0}),"bottom-right"),a&&d.addControl(new mapboxgl.ScaleControl),m&&d.addControl(new mapboxgl.FullscreenControl),d.addControl(new MapboxLanguage),this._mapboxArr.push(d)}),this._mapboxOnSwitchTheme=this._mapboxOnSwitchTheme||(()=>{this.util.forEach(this._mapboxArr,e=>{let t=e.getContainer(),{lightStyle:i,darkStyle:s}=JSON.parse(t.dataset.options);e.setStyle(this.isDark?s:i),e.addControl(new MapboxLanguage)})}),this.switchThemeEventSet.add(this._mapboxOnSwitchTheme))}initTypeit(e=document){if(this.config.typeit){let t=this.config.typeit,i=t.speed||100,s=t.cursorSpeed||1e3,n=t.cursorChar||"|",c=t.loop??!1,r=e.querySelectorAll(".typeit"),l=Array.from(r).reduce((o,a)=>{let m=a.dataset.group||a.id||Math.random().toString(36).substring(2);return o[m]=o[m]||[],o[m].push(a),o},{}),h=this.util.getStagingDOM();Object.values(l).forEach(o=>{let a=m=>{let d=o[m],u=d.dataset;h.stage(d.querySelector("template").content.cloneNode(!0));let f=d.firstElementChild;d.firstElementChild.tagName==="TEMPLATE"&&(d.innerHTML="",f=d);let w=new TypeIt(f,{strings:h.$el.querySelector("pre")?.innerHTML||h.contentAsHtml(),speed:Number(u.speed)>=0?Number(u.speed):i,lifeLike:!0,cursorSpeed:Number(u.cursorSpeed)>=0?Number(u.cursorSpeed):s,cursorChar:u.cursorChar||n,waitUntilVisible:!0,loop:u.loop?u.loop==="true":c,afterComplete:()=>{let v=Number(u.duration??t.duration);if(m===o.length-1){v>=0&&window.setTimeout(()=>{w.destroy()},v);return}w.destroy(),a(m+1)}}).go()};a(0)}),h.destroy()}}initCommentLightGallery(e,t){document.querySelectorAll(e).forEach(i=>{let s=i.querySelectorAll(t+":not([lightgallery-loaded])");s.forEach(n=>{n.setAttribute("lightgallery-loaded","");let c=document.createElement("a");c.setAttribute("class","comment-lightgallery"),c.setAttribute("href",n.src),c.append(n.cloneNode()),n.replaceWith(c)}),s.length&&lightGallery(i,{selector:".comment-lightgallery",actualSize:!1,hideBarsDelay:2e3,speed:400})})}initComment(){if(this.config.comment?.enable){if(document.querySelector("#comments")){let e=document.querySelector(".view-comments");e.classList.remove("d-none"),e.addEventListener("click",()=>{this.util.scrollIntoView("#comments")},!1)}if(this.config.comment.expired&&document.querySelector("#comments").remove(),this.config.comment.artalk){if(this.config.comment.expired)return Artalk.LoadCountWidget({server:this.config.comment.artalk.server,site:this.config.comment.artalk.site,pvEl:this.config.comment.artalk.pvEl,countEl:this.config.comment.artalk.countEl});let e=Artalk.init(this.config.comment.artalk);return e.setDarkMode(this.isDark),this.switchThemeEventSet.add(()=>{e.setDarkMode(this.isDark)}),e.on("comments-loaded",()=>{this.config.comment.artalk.lightgallery&&this.initCommentLightGallery(".atk-comment .atk-content","img:not([atk-emoticon])")}),e}if(this.config.comment.gitalk){this.config.comment.gitalk.body=decodeURI(window.location.href);let e=new Gitalk(this.config.comment.gitalk);return e.render("gitalk"),e}if(this.config.comment.valine)return new Valine(this.config.comment.valine);if(this.config.comment.waline){if(this.config.comment.expired){this.config.comment.waline.pageview&&Waline.pageviewCount({serverURL:this.config.comment.waline.serverURL,path:window.location.pathname});return}return Waline.init(this.config.comment.waline)}if(this.config.comment.utterances){let e=this.config.comment.utterances,t=document.createElement("script");t.src="https://utteranc.es/client.js",t.setAttribute("repo",e.repo),t.setAttribute("issue-term",e.issueTerm),e.label&&t.setAttribute("label",e.label),t.setAttribute("theme",this.isDark?e.darkTheme:e.lightTheme),t.crossOrigin="anonymous",t.async=!0,document.getElementById("utterances").appendChild(t),this._utterancesOnSwitchTheme=this._utterancesOnSwitchTheme||(()=>{let i={type:"set-theme",theme:this.isDark?e.darkTheme:e.lightTheme};document.querySelector(".utterances-frame")?.contentWindow.postMessage(i,"https://utteranc.es")}),this.switchThemeEventSet.add(this._utterancesOnSwitchTheme);return}if(this.config.comment.twikoo){let e=this.config.comment.twikoo;e.lightgallery&&(e.onCommentLoaded=()=>{this.initCommentLightGallery(".tk-comments .tk-content","img:not(.tk-owo-emotion)")}),twikoo.init(e),e.commentCount&&twikoo.getCommentsCount({envId:e.envId,region:e.region,urls:[window.location.pathname],includeReply:!1}).then(function(t){let i=document.getElementById("twikoo-comment-count");
2i&&(i.innerHTML=t[0].count)});return}if(this.config.comment.giscus){let e=this.config.comment.giscus;this._giscusOnSwitchTheme=this._giscusOnSwitchTheme||(()=>{let t={setConfig:{theme:this.isDark?e.darkTheme:e.lightTheme}};document.querySelector(".giscus-frame")?.contentWindow.postMessage({giscus:t},e.origin)}),this.switchThemeEventSet.add(this._giscusOnSwitchTheme),this.giscus2parentMsg=window.addEventListener("message",t=>{let i=document.querySelector("#giscus>script");i&&(this._giscusOnSwitchTheme(),i.parentElement.removeChild(i))},{once:!0});return}}}initCookieconsent(){this.config.cookieconsent&&window.cookieconsent?.initialise(this.config.cookieconsent)}getSiteTime=()=>{let e=new Date,t=new Date(this.config.siteTime),i=document.querySelector(".run-times");if(!this.util.isValidDate(t)||!i){clearInterval(this.siteTime),i&&i.parentNode.remove();return}let s=(e-t)/1e3,n=Math.floor(s/60/60/24),c=Math.floor(s/60/60-24*n),r=Math.floor(s/60-24*60*n-60*c),l=Math.floor((e-t)/1e3-24*60*60*n-60*60*c-60*r);i.innerHTML=`${n}, ${String(c).padStart(2,0)}:${String(r).padStart(2,0)}:${String(l).padStart(2,0)}`,document.querySelector(".site-time .d-none")?.classList.remove("d-none")};initSiteTime(){this.config.siteTime&&(this.siteTime=setInterval(this.getSiteTime,500),document.addEventListener("visibilitychange",()=>{if(document.hidden)return clearInterval(this.siteTime);this.siteTime=setInterval(this.getSiteTime,500)},!1))}initServiceWorker(){this.config.enablePWA&&"serviceWorker"in navigator&&(navigator.serviceWorker.register("/service-worker.min.js",{scope:"/"}).then(function(e){}).catch(function(e){console.error("error: ",e)}),navigator.serviceWorker.ready.then(function(e){}))}initWatermark(){this.config.watermark?.enable&&new Watermark({content:this.config.watermark.content||`${document.querySelector("footer .fixit-icon")?.outerHTML??""} FixIt Theme`,appendTo:".widgets",opacity:this.config.watermark.opacity,width:this.config.watermark.width,height:this.config.watermark.height,rowSpacing:this.config.watermark.rowspacing,colSpacing:this.config.watermark.colspacing,rotate:this.config.watermark.rotate,fontSize:this.config.watermark.fontsize,fontFamily:this.config.watermark.fontfamily})}initPangu(){if(!this.config.pangu?.enable)return;let e=this.config.pangu.selector;if(e){pangu.ignoredTags=/^(script|code|pre|textarea|sup|sub)$/i,e.startsWith("#")?pangu.spacingElementById(e.slice(1)):e.startsWith(".")?pangu.spacingElementByClassName(e.slice(1)):pangu.spacingElementByTagName(e);return}pangu.autoSpacingPage()}initFixItDecryptor(){this.decryptor=new FixItDecryptor({decrypted:()=>{this.initTwemoji(),this.initDetails(),this.initLightGallery(),this.initCodeWrapper(),this.initTable(),this.initMath(),this.initMermaid(),this.initEcharts(),this.initTypeit(),this.initMapbox(),this.initToc(),this.initTocListener(),this.initPangu(),this.fixTocScroll(),this.util.forEach(document.querySelectorAll(".encrypted-hidden"),e=>{e.classList.replace("encrypted-hidden","decrypted-shown")})},partialDecrypted:e=>{this.initTwemoji(e),this.initDetails(e),this.initLightGallery(),this.initCodeWrapper(),this.initTable(e),this.initMath(e),this.initMermaid(),this.initEcharts(),this.initTypeit(e),this.initMapbox(),this.initPangu(),this.util.forEach(e.querySelectorAll(".encrypted-hidden"),t=>{t.classList.replace("encrypted-hidden","decrypted-shown")})},reset:()=>{this.util.forEach(document.querySelectorAll(".decrypted-shown"),e=>{e.classList.replace("decrypted-shown","encrypted-hidden")})}}),this.decryptor.init(this.config.encryption)}initAutoMark(){if(!this.config.autoBookmark)return;window.addEventListener("beforeunload",()=>{window.sessionStorage?.setItem(`fixit-bookmark/#${location.pathname}`,this.util.getScrollTop())});let e=Number(window.sessionStorage?.getItem(`fixit-bookmark/#${location.pathname}`));e&&location.hash===""&&window.scrollTo({top:e,behavior:"smooth"})}initReward(){let e=document.querySelectorAll('.post-reward [data-mode="fixed"]');if(!e.length)return;if(this.util.isMobile()){this.util.forEach(e,i=>{i.removeAttribute("data-mode")});return}let t=i=>{this.util.forEach(e,s=>{let n=s.parentElement.querySelector(".reward-input");n.id!==i&&(n.checked=!1)})};this.util.forEach(e,i=>{i.previousElementSibling.addEventListener("click",function(){t(this.getAttribute("for"))},!1)}),this.scrollEventSet.add(t)}onScroll(){let e=[],i=document.querySelector(".fixed-buttons"),s=document.querySelector(".back-to-top");document.body.dataset.headerDesktop==="auto"&&e.push(document.getElementById("header-desktop")),document.body.dataset.headerMobile==="auto"&&e.push(document.getElementById("header-mobile")),s?.addEventListener("click",()=>{this.util.scrollIntoView("body")}),window.addEventListener("scroll",n=>{if(this.disableScrollEvent){n.preventDefault();return}let c=document.getElementById("mask");this.newScrollTop=this.util.getScrollTop();let r=this.newScrollTop-this.oldScrollTop;this.util.forEach(e,o=>{r>20?(o.classList.remove("animate__fadeInDown"),this.util.animateCSS(o,["animate__fadeOutUp"],!0),c.click()):r<-20&&(o.classList.remove("animate__fadeOutUp"),this.util.animateCSS(o,["animate__fadeInDown"],!0),c.click())});
2let l=document.body.scrollHeight-window.innerHeight,h=Math.max(Math.min(100*Math.max(this.newScrollTop,0)/l,100),0);i&&(h>1?(i.classList.remove("d-none","animate__fadeOut"),this.util.animateCSS(i,["animate__fadeIn"],!0)):(i.classList.remove("animate__fadeIn"),this.util.animateCSS(i,["animate__fadeOut"],!0,()=>{i.classList.contains("animate__fadeOut")&&i.classList.add("d-none")})),s&&(s.querySelector("span").innerText=`${Math.round(h)}%`));for(let o of this.scrollEventSet)o();this.oldScrollTop=this.newScrollTop},!1)}onResize(){let e=this.util.isMobile();window.addEventListener("resize",()=>{this._resizeTimeout||(this._resizeTimeout=window.setTimeout(()=>{this._resizeTimeout=null;for(let i of this.resizeEventSet)i();this.initToc(),this.initSearch();let t=this.util.isMobile();t!==e&&(document.getElementById("mask").click(),e=t)},100))},!1)}onClickMask(){document.getElementById("mask").addEventListener("click",()=>{if(document.body.classList.contains("blur")){for(let e of this.clickMaskEventSet)e();this.disableScrollEvent=!1,document.body.classList.remove("blur")}},!1)}beforeprint(){window.addEventListener("beforeprint",()=>{this.util.forEach(document.querySelectorAll(".chroma"),e=>{e.classList.toggle("open",!0)});for(let e of this.beforeprintEventSet)e()},!1)}init(){try{this.config.encryption&&this.initFixItDecryptor(),this.config.encryption?.all||(this.initTwemoji(),this.initDetails(),this.initLightGallery(),this.initCodeWrapper(),this.initTable(),this.initMath(),this.initMermaid(),this.initEcharts(),this.initTypeit(),this.initMapbox(),this.initPangu()),this.initThemeColor(),this.initSVGIcon(),this.initMenu(),this.initSwitchTheme(),this.initSearch(),this.initBreadcrumb(),this.initCookieconsent(),this.initSiteTime(),this.initServiceWorker(),this.initWatermark(),this.initAutoMark(),this.initReward(),window.setTimeout(()=>{this.initComment(),this.config.encryption?.all||(this.initToc(),this.initTocListener(),this.fixTocScroll()),this.onScroll(),this.onResize(),this.onClickMask(),this.beforeprint()},100)}catch(e){console.error(e)}}},R=()=>{window.fixit=new B,window.fixit.init()};document.readyState!=="loading"?R():document.addEventListener("DOMContentLoaded",R,!1);})();
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.