2024-07-11 08:59:32 +08:00
// 定义pjax 预设pjax
var pjax = new Pjax ({
// 这里填写页面中改变的部分(和 CSS 选择器用法一样)
selectors : [ "#pjax-container" ],
cacheBust : false ,
elements : "a" ,
});
// 设置图片灯箱回调函数
function lazyimg_pjax (){
;( function ( $ ){
var defaults = {
coverColor : "#dfdfdf" ,
coverDiv : "" ,
showTime : 300 ,
offsetBottom : 0 ,
offsetTopm : 50 ,
onLoadBackEnd : function ( index , dom ){},
onLoadBackStart : function ( index , dom ){}
}
//所有待load src
var srcList = []
var lazyLoadCoutn = 0 ;
var windowHeight = $ ( window ). height ();
var windowWidth = $ ( window ). width ();
var lazyImgList = $ ( "img[data-lazy-src]" );
var default_base64_src = "data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==" ;
//获取img
function getImgNaturalDimensions ( src , callback , lazyLoadCoutn ) {
var nWidth , nHeight
var image = new Image ()
image . src = src ;
image . onload = function () {
callback ( image . width , image . height );
defaults . onLoadBackStart ( lazyLoadCoutn , $ ( "img[data-lazy-src]:eq(" + lazyLoadCoutn + ")" ));
}
return [ nWidth , nHeight ];
}
function showImg ( lazyLoadCoutn , callback ){
var src = lazyImgList . eq ( lazyLoadCoutn ). attr ( "data-lazy-src" )
getImgNaturalDimensions ( src , function () {
try {
meng ( $ ( "img[data-lazy-src]:eq(" + lazyLoadCoutn + ")" ) , lazyLoadCoutn , callback )
} catch ( error ) {
}
}, lazyLoadCoutn )
}
function meng ( jDom , lazyLoadCoutn , callback ){
if ( jDom . attr ( "data-comp" )){
return ;
}
jDom . css ( "visibility" , "hidden" );
jDom . attr ( "src" , jDom . attr ( "data-lazy-src" ))
var w = jDom . width ();
var h = jDom . height ();
var offsetTop = jDom . offset (). top ;
var offsetLeft = jDom . offset (). left ;
jDom . css ( "visibility" , "visible" );
$ ( "body" ). append ( "<div class='meng-lazy-div" + lazyLoadCoutn + "' style='background-color: " + defaults . coverColor + ";position:absolute;width:" + w + "px;height:" + h + "px;top:" + offsetTop + "px;left:" + offsetLeft + "px;z-index:500'>" + defaults . coverDiv + "</div>" );
noneM ( lazyLoadCoutn , callback , jDom );
jDom . attr ( "data-comp" , "true" );
}
function noneM ( lazyLoadCoutn , callback , jDom ){
if ( true ){
$ ( ".meng-lazy-div" + lazyLoadCoutn ). animate ({ opacity : "0" }, defaults . showTime , function (){
$ ( this ). remove ();
defaults . onLoadBackEnd ( lazyLoadCoutn , jDom )
callback ();
});
}
}
function checkOffset (){
var scrollTop = $ ( document ). scrollTop ();
var onlazyList = [];
lazyImgList . each ( function ( index ){
var dom = $ ( this );
if ( ! dom . attr ( "data-comp" )){
if ( dom . offset (). top - scrollTop + defaults . offsetTopm >= 0 && dom . offset (). top - scrollTop < ( windowHeight + defaults . offsetBottom )){
onlazyList . push ( index );
}
}
})
if ( onlazyList . length != 0 ){
showImg ( onlazyList [ 0 ], function (){
checkOffset ();
});
}
}
function range (){
checkOffset ();
}
function init ( setting ){
lazyImgList = $ ( "img[data-lazy-src]" );
defaults = $ . extend ( defaults , setting );
lazyImgList . each ( function (){
var sr = $ ( this ). attr ( "data-lazy-src" );
srcList . push ( sr );
$ ( this ). attr ( "src" , default_base64_src );
});
range ();
window . onscroll = function (){
range ()
}
}
function tryAgain (){
$ ( "img[data-lazy-src]" ). removeAttr ( "data-comp" )
init ( defaults )
}
window . lazyLoadInit = init ;
window . lazyLoadAgain = tryAgain ;
})( $ )
}
function message_pjax (){
! function ( a , b ){ "object" == typeof exports && "undefined" != typeof module ? module . exports = b : "function" == typeof define && define . amd ? define ([], function (){ return b ( a )}) : a . Qmsg = b ( a )}( this , function ( a ){ "use strict" ; function h (){ var b , a = c ; for ( b = 0 ; b < arguments . length ; ++ b ) a += "-" + arguments [ b ]; return a } function i ( a ){ var g , i , k , l , m , o , p , q , r , s , b = this ; b . settings = Object . assign ({}, e , a || {}), b . id = n . instanceCount , g = b . settings . timeout , g = g && parseInt ( g >= 0 ) && parseInt ( g ) <= Math . NEGATIVE_INFINITY ? parseInt ( g ) : e . timeout , b . timeout = g , b . settings . timeout = g , b . timer = null , i = document . createElement ( "div" ), k = f [ b . settings . type || "info" ], l = h ( "content-" + b . settings . type || "info" ), l += b . settings . showClose ? " " + h ( "content-with-close" ) : "" , m = b . settings . content || "" , o = f [ "close" ], p = b . settings . showClose ? '<i class="qmsg-icon qmsg-icon-close">' + o + "</i>" : "" , q = document . createElement ( "span" ), b . settings . html ? q . innerHTML = m : q . innerText = m , i . innerHTML = '<div class="qmsg-content"> <div class="' + l + '"> <i class="qmsg-icon">' + k + "</i>" + q . outerHTML + p + "</div> </div>" , i . classList . add ( h ( "item" )), i . style . textAlign = b . settings . position , r = document . querySelector ( "." + c ), r || ( r = document . createElement ( "div" ), r . classList . add ( c ), r . classList . add ( h ( "wrapper" )), r . classList . add ( h ( "is-initialized" )), document . body . appendChild ( r )), r . appendChild ( i ), b . $wrapper = r , b . $elem = i , j ( b , "opening" ), b . settings . showClose && i . querySelector ( ".qmsg-icon-close" ). addEventListener ( "click" , function (){ b . close ()}. bind ( i )), i . addEventListener ( "animationend" , function ( a ){ var b = a . target , c = a . animationName ; c === d [ "closing" ] && ( clearInterval ( this . timer ), this . destroy ()), b . style . animationName = "" }. bind ( b )), b . settings . autoClose && ( s = 10 , b . timer = setInterval ( function (){ this . timeout -= s , this . timeout <= 0 && ( clearInterval ( this . timer ), this . close ())}. bind ( b ), s ), b . $elem . addEventListener ( "mouseover" , function (){ clearInterval ( this . timer )}. bind ( b )), b . $elem . addEventListener ( "mouseout" , function (){ "closing" !== this . state && ( this . timer = setInterval ( function (){ this . timeout -= s , this . timeout <= 0 && ( clearInterval ( this . timer ), this . close ())}. bind ( b ), s ))}. bind ( b )))} function j ( a , b ){ b && d [ b ] && ( a . state = b , a . $elem . style . animationName = d [ b ])} function k ( a ){ var b = h ( "count" ), c = a . $elem . querySelector ( '[class^="qmsg-content-"]' ), d = c . querySelector ( "." + b ); d || ( d = document . createElement ( "span" ), d . classList . add ( b ), c . appendChild ( d )), d . innerHTML = a . count , d . style . animationName = "" , d . style . animationName = "MessageShake" , a . timeout = a . settings . timeout || e . timeout } function l ( a , b ){ var c = Object . assign ({}, e ); return 0 === arguments . length ? c : a instanceof Object ? Object . assign ( c , a ) : ( c . content = a . toString (), b instanceof Object ? Object . assign ( c , b ) : c )} function m ( a ){ var b , c , d , e , f , g , h , j , l , m ; a = a || {}, b = JSON . stringify ( a ), c =- 1 ; for ( e in this . oMsgs ) if ( f = this . oMsgs [ e ], f . config === b ){ c = e , d = f . inst ; break } if ( 0 > c ){ if ( this . instanceCount ++ , g = {}, g . id = this . instanceCount , g . config = b , d = new i ( a ), d . id = this . instanceCount , d . count = "" , g . inst = d , this . oMsgs [ this . instanceCount ] = g , h = this . oMsgs . length , j = this . maxNums , h > j ) for ( l = 0 , m = this . oMsgs , l ; h - j > l ; l ++ ) m [ l ] && m [ l ]. inst . settings . autoClose && m [ l ]. inst . close ()} else d . count = d . count ? d . count >= 99 ? d . count : d . count + 1 : 2 , k ( d ); return d . $elem . setAttribute ( "data-count" , d . count ), d } var b , c , d , e , f , g , n ; return "function" != typeof Object . assign && ( Object . assign = function ( a ){ var b , c , d ; if ( null == a ) throw new TypeError ( "Cannot convert undefined or null to object" ); for ( a = Object ( a ), b = 1 ; b < arguments . length ; b ++ ) if ( c = arguments [ b ], null != c ) for ( d in c ) Object . prototype . hasOwnProperty . call ( c , d ) && ( a [ d ] = c [ d ]); return a }), "classList" in document . documentElement || Object . defineProperty ( HTMLElement . prototype , "classList" ,{ get : function (){ function b ( b ){ return function ( c ){ var d = a . className . split ( /\s+/g ), e = d . indexOf ( c ); b ( d , e , c ), a . className = d . join ( " " )}} var a = this ; return { add : b ( function ( a , b , c ){ ~ b || a . push ( c )}), remove : b ( function ( a , b ){ ~ b && a . splice ( b , 1 )}), toggle : b ( function ( a , b , c ){ ~ b ? a . splice ( b , 1 ) : a . push ( c )}), contains : function ( b ){ return !!~ a . className . split ( /\s+/g ). indexOf ( b )}, item : function ( b ){ return a . className . split ( /\s+/g )[ b ] || null }}}}), b = "qmsg" , c = a && a . QMSG_GLOBALS && a . QMSG_GLOBALS . NAMESPACE || b , d = { opening : "MessageMoveIn" , done : "" , closing : "MessageM
}
// 设置pjax预先加载代码
function pjax_reload() {
// 给pjax容器加入css过渡动画
$(" # pjax - container ").addClass(" uk - animation - slide - bottom - small ");
// 评论区过渡动画
$(" . comment - meta ").attr(" uk - scrollspy ", " cls : uk - animation - fade ; delay : 100 ");
$(" . comment - author vcard ").attr(" uk - scrollspy ", " cls : uk - animation - fade ; delay : 100 ");
$(" . comment - metadata ").attr(" uk - scrollspy ", " cls : uk - animation - fade ; delay : 100 ");
$(" . comment - content ").attr(" uk - scrollspy ", " cls : uk - animation - fade ; delay : 100 ");
$(" . reply ").attr(" uk - scrollspy ", " cls : uk - animation - fade ; delay : 100 ");
// 说说页面过渡动画
$(" # shuoshuo_body ").attr(" uk - scrollspy ", " target : > . shuoshuo ; cls : uk - animation - fade ; delay : 250 ");
}
2024-07-13 15:15:32 +08:00
//评论的回调函数
function reload_comment_js(){
var bl=Object.defineProperty;var yl=(e,t,i)=>t in e?bl(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i;var Oe=(e,t,i)=>(yl(e,typeof t!=" symbol "?t+"":t,i),i),_l=(e,t,i)=>{if(!t.has(e))throw TypeError(" Cannot "+i)};var _i=(e,t,i)=>{if(t.has(e))throw TypeError(" Cannot add the same private member more than once ");t instanceof WeakSet?t.add(e):t.set(e,i)};var En=(e,t,i)=>(_l(e,t," access private method "),i);var xn,kr,bi,wl;const Sr={" Content - Type ":" application / json "},Ge=e=>`${e.replace(/\/?$/," / ")}api/`,vt=(e,t="")=>{if(typeof e==" object "&&e.errno)throw new TypeError(`${t} failed with ${e.errno}: ${e.errmsg}`);return e},ki=({serverURL:e,lang:t,paths:i,type:n,signal:r})=>fetch(`${Ge(e)}article?path=${encodeURIComponent(i.join(" , "))}&type=${encodeURIComponent(n.join(" , "))}&lang=${t}`,{signal:r}).then(o=>o.json()).then(o=>vt(o," Get counter ").data),Sn=({serverURL:e,lang:t,path:i,type:n,action:r})=>fetch(`${Ge(e)}article?lang=${t}`,{method:" POST ",headers:Sr,body:JSON.stringify({path:i,type:n,action:r})}).then(o=>o.json()).then(o=>vt(o," Update counter ").data),Ir=({serverURL:e,lang:t,path:i,page:n,pageSize:r,sortBy:o,signal:s,token:l})=>{const a={};return l&&(a.Authorization=`Bearer ${l}`),fetch(`${Ge(e)}comment?path=${encodeURIComponent(i)}&pageSize=${r}&page=${n}&lang=${t}&sortBy=${o}`,{signal:s,headers:a}).then(c=>c.json()).then(c=>vt(c," Get comment data ").data)},Rr=({serverURL:e,lang:t,token:i,comment:n})=>{const r={" Content - Type ":" application / json "};return i&&(r.Authorization=`Bearer ${i}`),fetch(`${Ge(e)}comment?lang=${t}`,{method:" POST ",headers:r,body:JSON.stringify(n)}).then(o=>o.json())},Tr=({serverURL:e,lang:t,token:i,objectId:n})=>fetch(`${Ge(e)}comment/${n}?lang=${t}`,{method:" DELETE ",headers:{Authorization:`Bearer ${i}`}}).then(r=>r.json()).then(r=>vt(r," Delete comment ")),qt=({serverURL:e,lang:t,token:i,objectId:n,comment:r})=>fetch(`${Ge(e)}comment/${n}?lang=${t}`,{method:" PUT ",headers:{...Sr,Authorization:`Bearer ${i}`},body:JSON.stringify(r)}).then(o=>o.json()).then(o=>vt(o," Update comment ")),Lr=({serverURL:e,lang:t,paths:i,signal:n})=>fetch(`${Ge(e)}comment?type=count&url=${encodeURIComponent(i.join(" , "))}&lang=${t}`,{signal:n}).then(r=>r.json()).then(r=>vt(r," Get comment count ").data),Ar=({lang:e,serverURL:t})=>{const i=(window.innerWidth-450)/2,n=(window.innerHeight-450)/2,r=window.open(`${t.replace(/\/$/,"")}/ui/login?lng=${encodeURIComponent(e)}`," _blank ",`width=450,height=450,left=${i},top=${n},scrollbars=no,resizable=no,status=no,location=no,toolbar=no,menubar=no`);return r==null||r.postMessage({type:" TOKEN ",data:null}," * "),new Promise(o=>{const s=({data:l})=>{!l||typeof l!=" object "||l.type!==" userInfo "||l.data.token&&(r==null||r.close(),window.removeEventListener(" message ",s),o(l.data))};window.addEventListener(" message ",s)})},Mr=({serverURL:e,lang:t,paths:i,signal:n})=>ki({serverURL:e,lang:t,paths:i,type:[" time "],signal:n}),$r=e=>Sn({...e,type:" time ",action:" inc "}),Or=({serverURL:e,lang:t,count:i,signal:n,token:r})=>{const o={};return r&&(o.Authorization=`Bearer ${r}`),fetch(`${Ge(e)}comment?type=recent&count=${i}&lang=${t}`,{signal:n,headers:o}).then(s=>s.json())},jr=({serverURL:e,signal:t,pageSize:i,lang:n})=>fetch(`${Ge(e)}user?pageSize=${i}&lang=${n}`,{signal:t}).then(r=>r.json()).then(r=>vt(r," user list ")).then(r=>r.data),kl=[" nick "," mail "," link "],zr=e=>e.filter(t=>kl.includes(t)),Pr=[" //unpkg.com/@waline/emojis@1.1.0/weibo"],xl=["//unpkg.com/@waline/emojis/tieba/tieba_agree.png","//unpkg.com/@waline/emojis/tieba/tieba_look_down.png","//unpkg.com/@waline/emojis/tieba/tieba_sunglasses.png","//unpkg.com/@waline/emojis/tieba/tieba_pick_nose.png","//unpkg.com/@waline/emojis/tieba/tieba_awkward.png","//unpkg.com/@waline/emojis/tieba/tieba_sleep.png"],Cl=e=>new Promise((t,i)=>{if(e.size>128e3)return i(new Error("File too large! File size limit 128KB"));const n=new FileReader;n.readAsDataURL(e),n.onload=()=>{var r;return t(((r=n.result)==null?void 0:r.toString())??"")},n.onerror=i}),El=e=>e===!0?'<p class="wl-tex">TeX is not available in preview</p>':'<span class="wl-tex">TeX is not
Current word number : $2 `,"Anonymous","Dwarves","Hobbits","Ents","Wizards","Elves","Maiar","GIF","Search GIF","Profile","Approved","Waiting","Spam","Unsticky","Oldest","Latest","Hottest","What do you think?"]),Nr=Ze(["Pseudo","Le pseudo ne peut pas faire moins de 3 octets.","E-mail","Veuillez confirmer votre adresse e-mail.","Site Web","Optionnel","Commentez ici...","Aucun commentaire pour l'instant.","Envoyer","J'aime","Annuler le j'aime","Répondre","Annuler la réponse","Commentaires","Actualiser","Charger plus...","Aperçu","Emoji","Télécharger une image","Il y a quelques secondes","Il y a quelques minutes","Il y a quelques heures","Il y a quelques jours","À l'instant","Téléchargement en cours","Connexion","Déconnexion","Admin","Épinglé","Mots",` Veuillez saisir des commentaires entre $0 et $1 mots !
Nombre actuel de mots : $2 `,"Anonyme","Nains","Hobbits","Ents","Mages","Elfes","Maïar","GIF","Rechercher un GIF","Profil","Approuvé","En attente","Indésirable","Détacher","Le plus ancien","Dernier","Le plus populaire","Qu'en pensez-vous ?"]),Hr=Ze(["ニックネーム","3バイト以上のニックネームをご入力ください.","メールアドレス","メールアドレスをご確認ください.","サイト","オプション","ここにコメント","コメントしましょう~","提出する","Like","Cancel like","返信する","キャンセル","コメント","更新","さらに読み込む","プレビュー","絵文字","画像をアップロード","秒前","分前","時間前","日前","たっだ今","アップロード","ログインする","ログアウト","管理者","トップに置く","ワード",` コメントは $0 から $1 ワードの間でなければなりません !
現在の単語番号 : $2 `,"匿名","うえにん","なかにん","しもおし","特にしもおし","かげ","なぬし","GIF","探す GIF","個人情報","承認済み","待っている","スパム","べたつかない","逆順","正順","人気順","どう思いますか?"]),Ol=Ze(["Apelido","Apelido não pode ser menor que 3 bytes.","E-Mail","Por favor, confirme seu endereço de e-mail.","Website","Opcional","Comente aqui...","Nenhum comentário, ainda.","Enviar","Like","Cancel like","Responder","Cancelar resposta","Comentários","Refrescar","Carregar Mais...","Visualizar","Emoji","Enviar Imagem","segundos atrás","minutos atrás","horas atrás","dias atrás","agora mesmo","Enviando","Entrar","Sair","Admin","Sticky","Palavras",` Favor enviar comentário com $0 a $1 palavras !
Número de palavras atuais : $2 `,"Anônimo","Dwarves","Hobbits","Ents","Wizards","Elves","Maiar","GIF","Pesquisar GIF","informação pessoal","Aprovado","Espera","Spam","Unsticky","Mais velho","Mais recentes","Mais quente","O que você acha?"]),Dr=Ze(["Псевдоним","Никнейм не может быть меньше 3 байт.","Эл. адрес","Пожалуйста, подтвердите адрес вашей электронной почты.","Веб-сайт","Необязательный","Комментарий здесь...","Пока нет комментариев.","Отправить","Like","Cancel like","Отвечать","Отменить ответ","Комментарии","Обновить","Загрузи больше...","Превью","эмодзи","Загрузить изображение","секунд назад","несколько минут назад","несколько часов назад","дней назад","прямо сейчас","Загрузка","Авторизоваться","Выход из системы","Админ","Липкий","Слова",` Пожалуйста , введите комментарии от $0 до $1 слов !
Номер текущего слова : $2 `,"Анонимный","Dwarves","Hobbits","Ents","Wizards","Elves","Maiar","GIF","Поиск GIF","Персональные данные","Одобренный","Ожидающий","Спам","Нелипкий","самый старый","последний","самый горячий","Что вы думаете?"]),Vr=Ze(["Tên","Tên không được nhỏ hơn 3 ký tự.","E-Mail","Vui lòng xác nhập địa chỉ email của bạn.","Website","Tùy chọn","Hãy bình luận có văn hoá!","Chưa có bình luận","Gửi","Thích","Bỏ thích","Trả lời","Hủy bỏ","bình luận","Làm mới","Tải thêm...","Xem trước","Emoji","Tải lên hình ảnh","giây trước","phút trước","giờ trước","ngày trước","Vừa xong","Đang tải lên","Đăng nhập","đăng xuất","Quản trị viên","Dính","từ",` Bình luận phải có độ dài giữa $0 và $1 từ !
Số từ hiện tại : $2 `,"Vô danh","Người lùn","Người tí hon","Thần rừng","Pháp sư","Tiên tộc","Maiar","Ảnh GIF","Tìm kiếm ảnh GIF","thông tin cá nhân","Đã được phê duyệt","Đang chờ đợi","Thư rác","Không dính","lâu đời nhất","muộn nhất","nóng nhất","What do you think?"]),Br=Ze(["昵称","昵称不能少于3个字符","邮箱","请填写正确的邮件地址","网址","可选","欢迎评论","来发评论吧~","提交","喜欢","取消喜欢","回复","取消回复","评论","刷新","加载更多...","预览","表情","上传图片","秒前","分钟前","小时前","天前","刚刚","正在上传","登录","退出","博主","置顶","字",` 评论字数应在 $0 到 $1 字之间 !
当前字数 : $2 `,"匿名","潜水","冒泡","吐槽","活跃","话痨","传说","表情包","搜索表情包","个人资料","通过","待审核","垃圾","取消置顶","按倒序","按正序","按热度","你认为这篇文章怎么样?"]),jl=Ze(["暱稱","暱稱不能少於3個字元","郵箱","請填寫正確的郵件地址","網址","可選","歡迎留言","來發留言吧~","送出","喜歡","取消喜歡","回覆","取消回覆","留言","重整","載入更多...","預覽","表情","上傳圖片","秒前","分鐘前","小時前","天前","剛剛","正在上傳","登入","登出","管理者","置頂","字",` 留言字數應在 $0 到 $1 字之間 !
目前字數 : $2 `,"匿名","潛水","冒泡","吐槽","活躍","多話","傳說","表情包","搜尋表情包","個人資料","通過","待審核","垃圾","取消置頂","最早","最新","熱門","你認為這篇文章怎麼樣?"]),zl=Ze(["Benutzername","Der Benutzername darf nicht weniger als 3 Bytes umfassen.","E-Mail","Bitte bestätigen Sie Ihre E-Mail-Adresse.","Webseite","Optional","Kommentieren Sie hier...","Noch keine Kommentare.","Senden","Gefällt mir","Gefällt mir nicht mehr","Antworten","Antwort abbrechen","Kommentare","Aktualisieren","Mehr laden...","Vorschau","Emoji","Ein Bild hochladen","Vor einigen Sekunden","Vor einigen Minuten","Vor einigen Stunden","Vor einigen Tagen","Gerade eben","Hochladen läuft","Anmelden","Abmelden","Admin","Angeheftet","Wörter","Bitte geben Sie Kommentare zwischen $0 und $1 Wörtern ein! Aktuelle Anzahl der Wörter: $2","Anonym","Zwerge","Hobbits","Ents","Magier","Elfen","Maïar","GIF","Nach einem GIF suchen","Profil","Genehmigt","Ausstehend","Spam","Lösen","Älteste","Neueste","Am beliebtesten","Was denken Sie?"]);const Wr="en-US",In={zh:Br,"zh-cn":Br,"zh-tw":jl,en:Ur,"en-us":Ur,fr:Nr,"fr-fr":Nr,jp:Hr,"jp-jp":Hr,"pt-br":Ol,ru:Dr,"ru-ru":Dr,vi:Vr,"vi-vn":Vr,de:zl},qr=e=>In[e.toLowerCase()]||In[Wr.toLowerCase()],Kr=e=>Object.keys(In).includes(e.toLowerCase())?e:Wr,Gr=e=>{try{e=decodeURI(e)}catch{}return e},Zr=(e="")=>e.replace(/\/$/u,""),Qr=e=>/^(https?:)?\/\//.test(e),Rn=e=>{const t=Zr(e);return Qr(t)?t:` https : //${t}`},Pl=e=>Array.isArray(e)?e:e?[0,e]:!1,Ci=(e,t)=>typeof e=="function"?e:e===!1?!1:t,Fl=({serverURL:e,path:t=location.pathname,lang:i=typeof navigator>"u"?"en-US":navigator.language,locale:n,emoji:r=Pr,meta:o=["nick","mail","link"],requiredMeta:s=[],dark:l=!1,pageSize:a=10,wordLimit:c,imageUploader:f,highlighter:h,texRenderer:p,copyright:g=!0,login:R="enable",search:x,reaction:T,recaptchaV3Key:$="",turnstileKey:P="",commentSorting:A="latest",...U})=>({serverURL:Rn(e),path:Gr(t),lang:Kr(i),locale:{...qr(Kr(i)),...typeof n=="object"?n:{}},wordLimit:Pl(c),meta:zr(o),requiredMeta:zr(s),imageUploader:Ci(f,Cl),highlighter:Ci(h,Ml),texRenderer:Ci(p,El),dark:l,emoji:typeof r=="boolean"?r?Pr:[]:r,pageSize:a,login:R,copyright:g,search:x===!1?!1:typeof x=="object"?x:Sl(i),recaptchaV3Key:$,turnstileKey:P,reaction:Array.isArray(T)?T:T===!0?xl:[],commentSorting:A,...U}),$t=e=>typeof e=="string",Ei="{--waline-white:#000;--waline-light-grey:#666;--waline-dark-grey:#999;--waline-color:#888;--waline-bg-color:#1e1e1e;--waline-bg-color-light:#272727;--waline-bg-color-hover: #444;--waline-border-color:#333;--waline-disable-bg-color:#444;--waline-disable-color:#272727;--waline-bq-color:#272727;--waline-info-bg-color:#272727;--waline-info-color:#666}",Ul=e=>$t(e)?e==="auto"?`@media(prefers-color-scheme:dark){body${Ei}}`:`${e}${Ei}`:e===!0?`:root${Ei}`:"",Si=(e,t)=>{let i=e.toString();for(;i.length<t;)i="0"+i;return i},Nl=e=>{const t=Si(e.getDate(),2),i=Si(e.getMonth()+1,2);return`${Si(e.getFullYear(),2)}-${i}-${t}`},Hl=(e,t,i)=>{if(!e)return"";const n=$t(e)?new Date(e.indexOf(" ")!==-1?e.replace(/-/g,"/"):e):e,r=t.getTime()-n.getTime(),o=Math.floor(r/(24*3600*1e3));if(o===0){const s=r%864e5,l=Math.floor(s/(3600*1e3));if(l===0){const a=s%36e5,c=Math.floor(a/(60*1e3));if(c===0){const f=a%6e4;return`${Math.round(f/1e3)} ${i.seconds}`}return`${c} ${i.minutes}`}return`${l} ${i.hours}`}return o<0?i.now:o<8?`${o} ${i.days}`:Nl(n)},Dl=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,Vl=e=>Dl.test(e);/**
* @ vue / shared v3 . 4.27
* ( c ) 2018 - present Yuxi ( Evan ) You and Vue contributors
* @ license MIT
** //*! #__NO_SIDE_EFFECTS__ */function Ii(e,t){const i=new Set(e.split(","));return n=>i.has(n)}const se={},Ot=[],Qe=()=>{},Bl=()=>!1,Tn=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Ri=e=>e.startsWith("onUpdate:"),be=Object.assign,Jr=(e,t)=>{const i=e.indexOf(t);i>-1&&e.splice(i,1)},Wl=Object.prototype.hasOwnProperty,G=(e,t)=>Wl.call(e,t),N=Array.isArray,jt=e=>Kt(e)==="[object Map]",zt=e=>Kt(e)==="[object Set]",Yr=e=>Kt(e)==="[object Date]",ee=e=>typeof e=="function",ve=e=>typeof e=="string",Je=e=>typeof e=="symbol",ce=e=>e!==null&&typeof e=="object",Xr=e=>(ce(e)||ee(e))&&ee(e.then)&&ee(e.catch),eo=Object.prototype.toString,Kt=e=>eo.call(e),ql=e=>Kt(e).slice(8,-1),to=e=>Kt(e)==="[object Object]",Ti=e=>ve(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Gt=Ii(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Ln=e=>{const t=Object.create(null);return i=>t[i]||(t[i]=e(i))},Kl=/-(\w)/g,Ve=Ln(e=>e.replace(Kl,(t,i)=>i?i.toUpperCase():"")),Gl=/\B([A-Z])/g,Pt=Ln(e=>e.replace(Gl,"-$1").toLowerCase()),An=Ln(e=>e.charAt(0).toUpperCase()+e.slice(1)),Li=Ln(e=>e?`on${An(e)}`:""),lt=(e,t)=>!Object.is(e,t),Mn=(e,t)=>{for(let i=0;i<e.length;i++)e[i](t)},no=(e,t,i,n=!1)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:n,value:i})},$n=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let io;const Ai=()=>io||(io=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Zt(e){if(N(e)){const t={};for(let i=0;i<e.length;i++){const n=e[i],r=ve(n)?Yl(n):Zt(n);if(r)for(const o in r)t[o]=r[o]}return t}else if(ve(e)||ce(e))return e}const Zl=/;(?![^(]*\))/g,Ql=/:([^]+)/,Jl=/\/\*[^]*?\*\//g;function Yl(e){const t={};return e.replace(Jl,"").split(Zl).forEach(i=>{if(i){const n=i.split(Ql);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function pe(e){let t="";if(ve(e))t=e;else if(N(e))for(let i=0;i<e.length;i++){const n=pe(e[i]);n&&(t+=n+" ")}else if(ce(e))for(const i in e)e[i]&&(t+=i+" ");return t.trim()}const Xl="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly",ea=Ii(Xl);function ro(e){return!!e||e===""}function ta(e,t){if(e.length!==t.length)return!1;let i=!0;for(let n=0;i&&n<e.length;n++)i=wt(e[n],t[n]);return i}function wt(e,t){if(e===t)return!0;let i=Yr(e),n=Yr(t);if(i||n)return i&&n?e.getTime()===t.getTime():!1;if(i=Je(e),n=Je(t),i||n)return e===t;if(i=N(e),n=N(t),i||n)return i&&n?ta(e,t):!1;if(i=ce(e),n=ce(t),i||n){if(!i||!n)return!1;const r=Object.keys(e).length,o=Object.keys(t).length;if(r!==o)return!1;for(const s in e){const l=e.hasOwnProperty(s),a=t.hasOwnProperty(s);if(l&&!a||!l&&a||!wt(e[s],t[s]))return!1}}return String(e)===String(t)}function Mi(e,t){return e.findIndex(i=>wt(i,t))}const Q=e=>ve(e)?e:e==null?"":N(e)||ce(e)&&(e.toString===eo||!ee(e.toString))?JSON.stringify(e,oo,2):String(e),oo=(e,t)=>t&&t.__v_isRef?oo(e,t.value):jt(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((i,[n,r],o)=>(i[$i(n,o)+" =>"]=r,i),{})}:zt(t)?{[`Set(${t.size})`]:[...t.values()].map(i=>$i(i))}:Je(t)?$i(t):ce(t)&&!N(t)&&!to(t)?String(t):t,$i=(e,t="")=>{var i;return Je(e)?`Symbol(${(i=e.description)!=null?i:t})`:e};/**
* @ vue / reactivity v3 . 4.27
* ( c ) 2018 - present Yuxi ( Evan ) You and Vue contributors
* @ license MIT
** /let Me;class na{constructor(t=!1){this.detached=t,this._active=!0,this.effects=[],this.cleanups=[],this.parent=Me,!t&&Me&&(this.index=(Me.scopes||(Me.scopes=[])).push(this)-1)}get active(){return this._active}run(t){if(this._active){const i=Me;try{return Me=this,t()}finally{Me=i}}}on(){Me=this}off(){Me=this.parent}stop(t){if(this._active){let i,n;for(i=0,n=this.effects.length;i<n;i++)this.effects[i].stop();for(i=0,n=this.cleanups.length;i<n;i++)this.cleanups[i]();if(this.scopes)for(i=0,n=this.scopes.length;i<n;i++)this.scopes[i].stop(!0);if(!this.detached&&this.parent&&!t){const r=this.parent.scopes.pop();r&&r!==this&&(this.parent.scopes[this.index]=r,r.index=this.index)}this.parent=void 0,this._active=!1}}}function ia(e,t=Me){t&&t.active&&t.effects.push(e)}function so(){return Me}function ra(e){Me&&Me.cleanups.push(e)}let bt;class Oi{constructor(t,i,n,r){this.fn=t,this.trigger=i,this.scheduler=n,this.active=!0,this.deps=[],this._dirtyLevel=4,this._trackId=0,this._runnings=0,this._shouldSchedule=!1,this._depsLength=0,ia(this,r)}get dirty(){return(this._dirtyLevel===2||this._dirtyLevel===3)&&(this._dirtyLevel=1,yt(),this._dirtyLevel===1&&(this._dirtyLevel=0),_t()),this._dirtyLevel>=4}set dirty(t){this._dirtyLevel=t?4:0}run(){if(this._dirtyLevel=0,!this.active)return this.fn();let t=at,i=bt;try{return at=!0,bt=this,this._runnings++,lo(this),this.fn()}finally{ao(this),this._runnings--,bt=i,at=t}}stop(){this.active&&(lo(this),ao(this),this.onStop&&this.onStop(),this.active=!1)}}function lo(e){e._trackId++,e._depsLength=0}function ao(e){if(e.deps.length>e._depsLength){for(let t=e._depsLength;t<e.deps.length;t++)co(e.deps[t],e);e.deps.length=e._depsLength}}function co(e,t){const i=e.get(t);i!==void 0&&t._trackId!==i&&(e.delete(t),e.size===0&&e.cleanup())}let at=!0,ji=0;const uo=[];function yt(){uo.push(at),at=!1}function _t(){const e=uo.pop();at=e===void 0?!0:e}function zi(){ji++}function Pi(){for(ji--;!ji&&Fi.length;)Fi.shift()()}function fo(e,t,i){if(t.get(e)!==e._trackId){t.set(e,e._trackId);const n=e.deps[e._depsLength];n!==t?(n&&co(n,e),e.deps[e._depsLength++]=t):e._depsLength++}}const Fi=[];function ho(e,t,i){zi();for(const n of e.keys()){let r;n._dirtyLevel<t&&(r??(r=e.get(n)===n._trackId))&&(n._shouldSchedule||(n._shouldSchedule=n._dirtyLevel===0),n._dirtyLevel=t),n._shouldSchedule&&(r??(r=e.get(n)===n._trackId))&&(n.trigger(),(!n._runnings||n.allowRecurse)&&n._dirtyLevel!==2&&(n._shouldSchedule=!1,n.scheduler&&Fi.push(n.scheduler)))}Pi()}const po=(e,t)=>{const i=new Map;return i.cleanup=e,i.computed=t,i},Ui=new WeakMap,kt=Symbol(""),Ni=Symbol("");function Ie(e,t,i){if(at&&bt){let n=Ui.get(e);n||Ui.set(e,n=new Map);let r=n.get(i);r||n.set(i,r=po(()=>n.delete(i))),fo(bt,r)}}function Ye(e,t,i,n,r,o){const s=Ui.get(e);if(!s)return;let l=[];if(t==="clear")l=[...s.values()];else if(i==="length"&&N(e)){const a=Number(n);s.forEach((c,f)=>{(f==="length"||!Je(f)&&f>=a)&&l.push(c)})}else switch(i!==void 0&&l.push(s.get(i)),t){case"add":N(e)?Ti(i)&&l.push(s.get("length")):(l.push(s.get(kt)),jt(e)&&l.push(s.get(Ni)));break;case"delete":N(e)||(l.push(s.get(kt)),jt(e)&&l.push(s.get(Ni)));break;case"set":jt(e)&&l.push(s.get(kt));break}zi();for(const a of l)a&&ho(a,4);Pi()}const oa=Ii("__proto__,__v_isRef,__isVue"),go=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Je)),mo=sa();function sa(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...i){const n=J(this);for(let o=0,s=this.length;o<s;o++)Ie(n,"get",o+"");const r=n[t](...i);return r===-1||r===!1?n[t](...i.map(J)):r}}),["push","pop","shift","unshift","splice"].forEach(t=>{e[t]=function(...i){yt(),zi();const n=J(this)[t].apply(this,i);return Pi(),_t(),n}}),e}function la(e){Je(e)||(e=String(e));const t=J(this);return Ie(t,"has",e),t.hasOwnProperty(e)}class vo{constructor(t=!1,i=!1){this._isReadonly=t,this._isShallow=i}get(t,i,n){const r=this._isReadonly,o=this._isShallow;if(i==="__v_isReactive")return!r;if(i==="__v_isReadonly")return r;if(i==="__v_isShallow")return o;if(i==="__v_raw")ret
* @ vue / runtime - core v3 . 4.27
* ( c ) 2018 - present Yuxi ( Evan ) You and Vue contributors
* @ license MIT
** /function ut(e,t,i,n){try{return n?e(...n):e()}catch(r){Dn(r,t,i)}}function Be(e,t,i,n){if(ee(e)){const r=ut(e,t,i,n);return r&&Xr(r)&&r.catch(o=>{Dn(o,t,i)}),r}if(N(e)){const r=[];for(let o=0;o<e.length;o++)r.push(Be(e[o],t,i,n));return r}}function Dn(e,t,i,n=!0){const r=t?t.vnode:null;if(t){let o=t.parent;const s=t.proxy,l=`https:/ / vuejs . org / error - reference / # runtime - $ { i } `;for(;o;){const c=o.ec;if(c){for(let f=0;f<c.length;f++)if(c[f](e,s,l)===!1)return}o=o.parent}const a=t.appContext.config.errorHandler;if(a){yt(),ut(a,null,10,[e,s,l]),_t();return}}Ta(e,i,r,n)}function Ta(e,t,i,n=!0){console.error(e)}let tn=!1,Wi=!1;const ye=[];let We=0;const Ft=[];let ft=null,xt=0;const Mo=Promise.resolve();let qi=null;function Ut(e){const t=qi||Mo;return e?t.then(this?e.bind(this):e):t}function La(e){let t=We+1,i=ye.length;for(;t<i;){const n=t+i>>>1,r=ye[n],o=nn(r);o<e||o===e&&r.pre?t=n+1:i=n}return t}function Ki(e){(!ye.length||!ye.includes(e,tn&&e.allowRecurse?We+1:We))&&(e.id==null?ye.push(e):ye.splice(La(e.id),0,e),$o())}function $o(){!tn&&!Wi&&(Wi=!0,qi=Mo.then(zo))}function Aa(e){const t=ye.indexOf(e);t>We&&ye.splice(t,1)}function Ma(e){N(e)?Ft.push(...e):(!ft||!ft.includes(e,e.allowRecurse?xt+1:xt))&&Ft.push(e),$o()}function Oo(e,t,i=tn?We+1:0){for(;i<ye.length;i++){const n=ye[i];if(n&&n.pre){if(e&&n.id!==e.uid)continue;ye.splice(i,1),i--,n()}}}function jo(e){if(Ft.length){const t=[...new Set(Ft)].sort((i,n)=>nn(i)-nn(n));if(Ft.length=0,ft){ft.push(...t);return}for(ft=t,xt=0;xt<ft.length;xt++)ft[xt]();ft=null,xt=0}}const nn=e=>e.id==null?1/0:e.id,$a=(e,t)=>{const i=nn(e)-nn(t);if(i===0){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return i};function zo(e){Wi=!1,tn=!0,ye.sort($a);try{for(We=0;We<ye.length;We++){const t=ye[We];t&&t.active!==!1&&ut(t,null,14)}}finally{We=0,ye.length=0,jo(),tn=!1,qi=null,(ye.length||Ft.length)&&zo()}}function Oa(e,t,...i){if(e.isUnmounted)return;const n=e.vnode.props||se;let r=i;const o=t.startsWith("update:"),s=o&&t.slice(7);if(s&&s in n){const f=` $ { s === "modelValue" ? "model" : s } Modifiers `,{number:h,trim:p}=n[f]||se;p&&(r=i.map(g=>ve(g)?g.trim():g)),h&&(r=i.map($n))}let l,a=n[l=Li(t)]||n[l=Li(Ve(t))];!a&&o&&(a=n[l=Li(Pt(t))]),a&&Be(a,e,6,r);const c=n[l+"Once"];if(c){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,Be(c,e,6,r)}}function ja(e,t,i=!1){const n=t.emitsCache,r=n.get(e);if(r!==void 0)return r;const o=e.emits;let s={};return!o&&!!1?(ce(e)&&n.set(e,null),null):(N(o)?o.forEach(a=>s[a]=null):be(s,o),ce(e)&&n.set(e,s),s)}function Vn(e,t){return!e||!Tn(t)?!1:(t=t.slice(2).replace(/Once$/,""),G(e,t[0].toLowerCase()+t.slice(1))||G(e,Pt(t))||G(e,t))}let xe=null,Po=null;function Bn(e){const t=xe;return xe=e,Po=e&&e.type.__scopeId||null,t}function za(e,t=xe,i){if(!t||e._n)return e;const n=(...r)=>{n._d&&ss(-1);const o=Bn(t);let s;try{s=e(...r)}finally{Bn(o),n._d&&ss(1)}return s};return n._n=!0,n._c=!0,n._d=!0,n}function Gi(e){const{type:t,vnode:i,proxy:n,withProxy:r,propsOptions:[o],slots:s,attrs:l,emit:a,render:c,renderCache:f,props:h,data:p,setupState:g,ctx:R,inheritAttrs:x}=e,T=Bn(e);let $,P;try{if(i.shapeFlag&4){const U=r||n,X=U;$=qe(c.call(X,U,f,h,g,p,R)),P=l}else{const U=t;$=qe(U.length>1?U(h,{attrs:l,slots:s,emit:a}):U(h,null)),P=t.props?l:Pa(l)}}catch(U){cn.length=0,Dn(U,e,1),$=ie(It)}let A=$;if(P&&x!==!1){const U=Object.keys(P),{shapeFlag:X}=A;U.length&&X&7&&(o&&U.some(Ri)&&(P=Fa(P,o)),A=Nt(A,P,!1,!0))}return i.dirs&&(A=Nt(A,null,!1,!0),A.dirs=A.dirs?A.dirs.concat(i.dirs):i.dirs),i.transition&&(A.transition=i.transition),$=A,Bn(T),$}const Pa=e=>{let t;for(const i in e)(i==="class"||i==="style"||Tn(i))&&((t||(t={}))[i]=e[i]);return t},Fa=(e,t)=>{const i={};for(const n in e)(!Ri(n)||!(n.slice(9)in t))&&(i[n]=e[n]);return i};function Ua(e,t,i){const{props:n,children:r,component:o}=e,{props:s,children:l,patchFlag:a}=t,c=o.emitsOptions;if(t.dirs||t.transition)return!0;if(i&&a>=0){if(a&1024)return!0;if(a&16)return n?Fo(n,s,c):!!s;if(a&8){const f=t.dynamicProps;for(let h=0;h<f.length;h++){const p=f[h];if(s[p]!==n[p]&&!Vn(c,p))return!0}}}else return(r||l)&&(!l||!l.$st
* @vue/runtime-dom v3.4.27
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/const $c="http://www.w3.org/2000/svg",Oc="http://www.w3.org/1998/Math/MathML",ht=typeof document<"u"?document:null,ps=ht&&ht.createElement("template"),jc={insert:(e,t,i)=>{t.insertBefore(e,i||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,i,n)=>{const r=t==="svg"?ht.createElementNS($c,e):t==="mathml"?ht.createElementNS(Oc,e):ht.createElement(e,i?{is:i}:void 0);return e==="select"&&n&&n.multiple!=null&&r.setAttribute("multiple",n.multiple),r},createText:e=>ht.createTextNode(e),createComment:e=>ht.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>ht.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,i,n,r,o){const s=i?i.previousSibling:t.lastChild;if(r&&(r===o||r.nextSibling))for(;t.insertBefore(r.cloneNode(!0),i),!(r===o||!(r=r.nextSibling)););else{ps.innerHTML=n==="svg"?` < svg > $ { e } < /svg>`:n==="mathml"?`<math>${e}</math>`:e;const l=ps.content;if(n==="svg"||n==="mathml"){const a=l.firstChild;for(;a.firstChild;)l.appendChild(a.firstChild);l.removeChild(a)}t.insertBefore(l,i)}return[s?s.nextSibling:t.firstChild,i?i.previousSibling:t.lastChild]}},zc=Symbol("_vtc");function Pc(e,t,i){const n=e[zc];n&&(t=(t?[t,...n]:[...n]).join(" ")),t==null?e.removeAttribute("class"):i?e.setAttribute("class",t):e.className=t}const ti=Symbol("_vod"),gs=Symbol("_vsh"),ms={beforeMount(e,{value:t},{transition:i}){e[ti]=e.style.display==="none"?"":e.style.display,i&&t?i.beforeEnter(e):dn(e,t)},mounted(e,{value:t},{transition:i}){i&&t&&i.enter(e)},updated(e,{value:t,oldValue:i},{transition:n}){!t!=!i&&(n?t?(n.beforeEnter(e),dn(e,!0),n.enter(e)):n.leave(e,()=>{dn(e,!1)}):dn(e,t))},beforeUnmount(e,{value:t}){dn(e,t)}};function dn(e,t){e.style.display=t?e[ti]:"none",e[gs]=!t}const Fc=Symbol(""),Uc=/(^|;)\s*display\s*:/;function Nc(e,t,i){const n=e.style,r=ve(i);let o=!1;if(i&&!r){if(t)if(ve(t))for(const s of t.split(";")){const l=s.slice(0,s.indexOf(":")).trim();i[l]==null&&ni(n,l,"")}else for(const s in t)i[s]==null&&ni(n,s,"");for(const s in i)s==="display"&&(o=!0),ni(n,s,i[s])}else if(r){if(t!==i){const s=n[Fc];s&&(i+=";"+s),n.cssText=i,o=Uc.test(i)}}else t&&e.removeAttribute("style");ti in e&&(e[ti]=o?n.display:"",e[gs]&&(n.display="none"))}const vs=/\s*!important$/;function ni(e,t,i){if(N(i))i.forEach(n=>ni(e,t,n));else if(i==null&&(i=""),t.startsWith("--"))e.setProperty(t,i);else{const n=Hc(e,t);vs.test(i)?e.setProperty(Pt(n),i.replace(vs,""),"important"):e[n]=i}}const ws=["Webkit","Moz","ms"],ar={};function Hc(e,t){const i=ar[t];if(i)return i;let n=Ve(t);if(n!=="filter"&&n in e)return ar[t]=n;n=An(n);for(let r=0;r<ws.length;r++){const o=ws[r]+n;if(o in e)return ar[t]=o}return t}const bs="http://www.w3.org/1999/xlink";function Dc(e,t,i,n,r){if(n&&t.startsWith("xlink:"))i==null?e.removeAttributeNS(bs,t.slice(6,t.length)):e.setAttributeNS(bs,t,i);else{const o=ea(t);i==null||o&&!ro(i)?e.removeAttribute(t):e.setAttribute(t,o?"":i)}}function Vc(e,t,i,n,r,o,s){if(t==="innerHTML"||t==="textContent"){n&&s(n,r,o),e[t]=i??"";return}const l=e.tagName;if(t==="value"&&l!=="PROGRESS"&&!l.includes("-")){const c=l==="OPTION"?e.getAttribute("value")||"":e.value,f=i??"";(c!==f||!("_value"in e))&&(e.value=f),i==null&&e.removeAttribute(t),e._value=i;return}let a=!1;if(i===""||i==null){const c=typeof e[t];c==="boolean"?i=ro(i):i==null&&c==="string"?(i="",a=!0):c==="number"&&(i=0,a=!0)}try{e[t]=i}catch{}a&&e.removeAttribute(t)}function tt(e,t,i,n){e.addEventListener(t,i,n)}function Bc(e,t,i,n){e.removeEventListener(t,i,n)}const ys=Symbol("_vei");function Wc(e,t,i,n,r=null){const o=e[ys]||(e[ys]={}),s=o[t];if(n&&s)s.value=n;else{const[l,a]=qc(t);if(n){const c=o[t]=Zc(n,r);tt(e,l,c,a)}else s&&(Bc(e,l,s,a),o[t]=void 0)}}const _s=/(?:Once|Passive|Capture)$/;function qc(e){let t;if(_s.test(e)){t={};let n;for(;n=e.match(_s);)e=e.slice(0,e.length-n[0].length),t[n[0].toLowerCase()]=!0}return[e[2]===":"?e.slice(3):Pt(e.slice(2)),t]}let cr=0;const Kc=Promise.resolve(),Gc=()=>cr||(Kc.then(()=>cr=0),cr=Date.
`).map(r=>{const o=r.match(/^\s+/);if(o===null)return r;const[s]=o;return s.length>=n.length?r.slice(n.length):r}).join(`
`)}class fi{options;rules;lexer;constructor(t){this.options=t||Rt}space(t){const i=this.rules.block.newline.exec(t);if(i&&i[0].length>0)return{type:"space",raw:i[0]}}code(t){const i=this.rules.block.code.exec(t);if(i){const n=i[0].replace(/^ {1,4}/gm,"");return{type:"code",raw:i[0],codeBlockStyle:"indented",text:this.options.pedantic?n:ui(n,`
`)}}}fences(t){const i=this.rules.block.fences.exec(t);if(i){const n=i[0],r=Hu(n,i[3]||"");return{type:"code",raw:n,lang:i[2]?i[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):i[2],text:r}}}heading(t){const i=this.rules.block.heading.exec(t);if(i){let n=i[2].trim();if(/#$/.test(n)){const r=ui(n,"#");(this.options.pedantic||!r||/ $/.test(r))&&(n=r.trim())}return{type:"heading",raw:i[0],depth:i[1].length,text:n,tokens:this.lexer.inline(n)}}}hr(t){const i=this.rules.block.hr.exec(t);if(i)return{type:"hr",raw:i[0]}}blockquote(t){const i=this.rules.block.blockquote.exec(t);if(i){let n=i[0].replace(/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,`
$1 `);n=ui(n.replace(/^ *>[ \t]?/gm,""),`
`);const r=this.lexer.state.top;this.lexer.state.top=!0;const o=this.lexer.blockTokens(n);return this.lexer.state.top=r,{type:"blockquote",raw:i[0],tokens:o,text:n}}}list(t){let i=this.rules.block.list.exec(t);if(i){let n=i[1].trim();const r=n.length>1,o={type:"list",raw:"",ordered:r,start:r?+n.slice(0,-1):"",loose:!1,items:[]};n=r?` \\ d { 1 , 9 } \\ $ { n . slice ( - 1 )} `:` \\ $ { n } `,this.options.pedantic&&(n=r?n:"[*+-]");const s=new RegExp(` ^ ( { 0 , 3 } $ { n })(( ?: [ ][ ^ \\ n ] * ) ? ( ?: \\ n | $ )) `);let l="",a="",c=!1;for(;t;){let f=!1;if(!(i=s.exec(t))||this.rules.block.hr.test(t))break;l=i[0],t=t.substring(l.length);let h=i[2].split(`
`,1)[0].replace(/^\t+/,$=>" ".repeat(3*$.length)),p=t.split(`
`,1)[0],g=0;this.options.pedantic?(g=2,a=h.trimStart()):(g=i[2].search(/[^ ]/),g=g>4?1:g,a=h.slice(g),g+=i[1].length);let R=!1;if(!h&&/^ *$/.test(p)&&(l+=p+`
`,t=t.substring(p.length+1),f=!0),!f){const $=new RegExp(` ^ { 0 , $ { Math . min ( 3 , g - 1 )}}( ?: [ *+- ] | \\ d { 1 , 9 }[.)])(( ?: [ ][ ^ \\ n ] * ) ? ( ?: \\ n | $ )) `),P=new RegExp(` ^ { 0 , $ { Math . min ( 3 , g - 1 )}}(( ?:- * ){ 3 ,} | ( ?: _ * ){ 3 ,} | ( ?: \\ * * ){ 3 ,})( ?: \\ n +| $ ) `),A=new RegExp(` ^ { 0 , $ { Math . min ( 3 , g - 1 )}}( ?: \ `\`\`|~~~)` ), U = new RegExp ( `^ {0, ${ Math . min ( 3 , g - 1 ) } }#` ); for (; t ;){ const X = t . split ( `
` , 1 )[ 0 ]; if ( p = X , this . options . pedantic && ( p = p . replace ( /^ {1,4}(?=( {4})*[^ ])/g , " " )), A . test ( p ) || U . test ( p ) || $ . test ( p ) || P . test ( t )) break ; if ( p . search ( /[^ ]/ ) >= g ||! p . trim ()) a += `
` + p . slice ( g ); else { if ( R || h . search ( /[^ ]/ ) >= 4 || A . test ( h ) || U . test ( h ) || P . test ( h )) break ; a += `
` + p } ! R &&! p . trim () && ( R =! 0 ), l += X + `
` , t = t . substring ( X . length + 1 ), h = p . slice ( g )}} o . loose || ( c ? o . loose =! 0 : /\n *\n *$/ . test ( l ) && ( c =! 0 )); let x = null , T ; this . options . gfm && ( x = /^\[[ xX]\] / . exec ( a ), x && ( T = x [ 0 ] !== "[ ] " , a = a . replace ( /^\[[ xX]\] +/ , "" ))), o . items . push ({ type : "list_item" , raw : l , task :!! x , checked : T , loose :! 1 , text : a , tokens : []}), o . raw += l } o . items [ o . items . length - 1 ]. raw = l . trimEnd (), o . items [ o . items . length - 1 ]. text = a . trimEnd (), o . raw = o . raw . trimEnd (); for ( let f = 0 ; f < o . items . length ; f ++ ) if ( this . lexer . state . top =! 1 , o . items [ f ]. tokens = this . lexer . blockTokens ( o . items [ f ]. text ,[]), ! o . loose ){ const h = o . items [ f ]. tokens . filter ( g => g . type === "space" ), p = h . length > 0 && h . some ( g => / \ n . * \ n / . test ( g . raw )); o . loose = p } if ( o . loose ) for ( let f = 0 ; f < o . items . length ; f ++ ) o . items [ f ]. loose =! 0 ; return o }} html ( t ){ const i = this . rules . block . html . exec ( t ); if ( i ) return { type : "html" , block :! 0 , raw : i [ 0 ], pre : i [ 1 ] === "pre" || i [ 1 ] === "script" || i [ 1 ] === "style" , text : i [ 0 ]}} def ( t ){ const i = this . rules . block . def . exec ( t ); if ( i ){ const n = i [ 1 ]. toLowerCase (). replace ( /\s+/g , " " ), r = i [ 2 ] ? i [ 2 ]. replace ( /^<(.*)>$/ , "$1" ). replace ( this . rules . inline . anyPunctuation , "$1" ) : "" , o = i [ 3 ] ? i [ 3 ]. substring ( 1 , i [ 3 ]. length - 1 ). replace ( this . rules . inline . anyPunctuation , "$1" ) : i [ 3 ]; return { type : "def" , tag : n , raw : i [ 0 ], href : r , title : o }}} table ( t ){ const i = this . rules . block . table . exec ( t ); if ( ! i ||! /[:|]/ . test ( i [ 2 ])) return ; const n = Hs ( i [ 1 ]), r = i [ 2 ]. replace ( /^\||\| *$/g , "" ). split ( "|" ), o = i [ 3 ] && i [ 3 ]. trim () ? i [ 3 ]. replace ( /\n[ \t]*$/ , "" ). split ( `
` ) : [], s = { type : "table" , raw : i [ 0 ], header : [], align : [], rows : []}; if ( n . length === r . length ){ for ( const l of r ) /^ *-+: * $ / . test ( l ) ? s . align . push ( "right" ) : /^ *:-+: *$/ . test ( l ) ? s . align . push ( "center" ) : /^ *:-+ *$/ . test ( l ) ? s . align . push ( "left" ) : s . align . push ( null ); for ( const l of n ) s . header . push ({ text : l , tokens : this . lexer . inline ( l )}); for ( const l of o ) s . rows . push ( Hs ( l , s . header . length ). map ( a =>({ text : a , tokens : this . lexer . inline ( a )}))); return s }} lheading ( t ){ const i = this . rules . block . lheading . exec ( t ); if ( i ) return { type : "heading" , raw : i [ 0 ], depth : i [ 2 ]. charAt ( 0 ) === "=" ? 1 : 2 , text : i [ 1 ], tokens : this . lexer . inline ( i [ 1 ])}} paragraph ( t ){ const i = this . rules . block . paragraph . exec ( t ); if ( i ){ const n = i [ 1 ]. charAt ( i [ 1 ]. length - 1 ) === `
` ? i [ 1 ]. slice ( 0 , - 1 ) : i [ 1 ]; return { type : "paragraph" , raw : i [ 0 ], text : n , tokens : this . lexer . inline ( n )}}} text ( t ){ const i = this . rules . block . text . exec ( t ); if ( i ) return { type : "text" , raw : i [ 0 ], text : i [ 0 ], tokens : this . lexer . inline ( i [ 0 ])}} escape ( t ){ const i = this . rules . inline . escape . exec ( t ); if ( i ) return { type : "escape" , raw : i [ 0 ], text : $e ( i [ 1 ])}} tag ( t ){ const i = this . rules . inline . tag . exec ( t ); if ( i ) return ! this . lexer . state . inLink && /^<a /i . test ( i [ 0 ]) ? this . lexer . state . inLink =! 0 : this . lexer . state . inLink && /^<\/a>/i . test ( i [ 0 ]) && ( this . lexer . state . inLink =! 1 ), ! this . lexer . state . inRawBlock && /^<(pre|code|kbd|script)(\s|>)/i . test ( i [ 0 ]) ? this . lexer . state . inRawBlock =! 0 : this . lexer . state . inRawBlock && /^<\/(pre|code|kbd|script)(\s|>)/i . test ( i [ 0 ]) && ( this . lexer . state . inRawBlock =! 1 ),{ type : "html" , raw : i [ 0 ], inLink : this . lexer . state . inLink , inRawBlock : this . lexer . state . inRawBlock , block :! 1 , text : i [ 0 ]}} link ( t ){ const i = this . rules . inline . link . exec ( t ); if ( i ){ const n = i [ 2 ]. trim (); if ( ! this . options . pedantic && /^</ . test ( n )){ if ( ! />$/ . test ( n )) return ; const s = ui ( n . slice ( 0 , - 1 ), "\\" ); if (( n . length - s . length ) % 2 === 0 ) return } else { const s = Nu ( i [ 2 ], "()" ); if ( s >- 1 ){ const a = ( i [ 0 ]. indexOf ( "!" ) === 0 ? 5 : 4 ) + i [ 1 ]. length + s ; i [ 2 ] = i [ 2 ]. substring ( 0 , s ), i [ 0 ] = i [ 0 ]. substring ( 0 , a ). trim (), i [ 3 ] = "" }} let r = i [ 2 ], o = "" ; if ( this . options . pedantic ){ const s = /^([^'"]*[^\s])\s+(['"])(.*)\2/ . exec ( r ); s && ( r = s [ 1 ], o = s [ 3 ])} else o = i [ 3 ] ? i [ 3 ]. slice ( 1 , - 1 ) : "" ; return r = r . trim (), /^</ . test ( r ) && ( this . options . pedantic &&! />$/ . test ( n ) ? r = r . slice ( 1 ) : r = r . slice ( 1 , - 1 )), Ds ( i ,{ href : r && r . replace ( this . rules . inline . anyPunctuation , "$1" ), title : o && o . replace ( this . rules . inline . anyPunctuation , "$1" )}, i [ 0 ], this . lexer )}} reflink ( t , i ){ let n ; if (( n = this . rules . inline . reflink . exec ( t )) || ( n = this . rules . inline . nolink . exec ( t ))){ const r = ( n [ 2 ] || n [ 1 ]). replace ( /\s+/g , " " ), o = i [ r . toLowerCase ()]; if ( ! o ){ const s = n [ 0 ]. charAt ( 0 ); return { type : "text" , raw : s , text : s }} return Ds ( n , o , n [ 0 ], this . lexer )}} emStrong ( t , i , n = "" ){ let r = this . rules . inline . emStrongLDelim . exec ( t ); if ( ! r || r [ 3 ] && n . match ( /[\p{L}\p{N}]/u )) return ; if ( ! ( r [ 1 ] || r [ 2 ] || "" ) ||! n || this . rules . inline . punctuation . exec ( n )){ const s = [... r [ 0 ]]. length - 1 ; let l , a , c = s , f = 0 ; const h = r [ 0 ][ 0 ] === "*" ? this . rules . inline . emStrongRDelimAst : this . rules . inline . emStrongRDelimUnd ; for ( h . lastIndex = 0 , i = i . slice ( - 1 * t . length + s );( r = h . exec ( i )) != null ;){ if ( l = r [ 1 ] || r [ 2 ] || r [ 3 ] || r [ 4 ] || r [ 5 ] || r [ 6 ], ! l ) continue ; if ( a = [... l ]. length , r [ 3 ] || r [ 4 ]){ c += a ; continue } else if (( r [ 5 ] || r [ 6 ]) && s % 3 &&! (( s + a ) % 3 )){ f += a ; continue } if ( c -= a , c > 0 ) continue ; a = Math . min ( a , a + c + f ); const p = [... r [ 0 ]][ 0 ]. length , g = t . slice ( 0 , s + r . index + p + a ); if ( Math . min ( s , a ) % 2 ){ const x = g . slice ( 1 , - 1 ); return { type : "em" , raw : g , text : x , tokens : this . lexer . inlineTokens ( x )}} const R = g . slice ( 2 , - 2 ); return { type : "strong" , raw : g , text : R , tokens : this . lexer . inlineTokens ( R )}}}} codespan ( t ){ const i = this . rules . inline . code . exec ( t ); if ( i ){ let n = i [ 2 ]. replace ( /\n/g , " " ); const r = /[^ ]/ . test ( n ), o = /^ / . test ( n ) && / $/ . test ( n ); return r && o && ( n = n . substring ( 1 , n . length - 1 )), n = $e ( n , ! 0 ),{ type : "codespan" , raw : i [ 0 ], text : n }}} br ( t ){ const i = this . rules . inline . br . exec ( t ); if ( i ) return { type : "br" , raw : i [ 0 ]}} del ( t ){ const i = this . rules . inline . del . exec ( t ); if ( i ) return { type : "del" , raw : i [ 0 ], text : i [ 2 ], tokens : this . lexer . inlineTokens ( i [ 2 ])}} autolink ( t ){ const i = this . rules . inline . autolink . exec ( t ); if ( i ){ let n , r ; return i [ 2 ] === "@" ? ( n = $e ( i [ 1 ]), r = "mailto:" + n ) : ( n = $e ( i [ 1 ]), r = n ),{ type : "link" , raw : i [ 0 ], text : n , href : r , tokens : [{ type : "text" , raw : n , text : n }]}}} url ( t ){ var n ; let i ; if ( i = this . rules . inline . url . exec ( t )){ let r , o ; if ( i [ 2 ] === "@" ) r = $e ( i [ 0 ]), o = "mailto:" + r ; else { let s ; do s = i [ 0 ], i [ 0 ] = (( n = this . rules . inline . _backpedal . exec ( i [ 0 ])) == null ? void 0 : n [ 0 ]) ?? "" ; while ( s !== i [ 0 ]); r = $e ( i [ 0 ]), i [ 1 ] === "www." ? o = "http://" + i [ 0 ] : o = i [ 0 ]} return { type : "link" , raw : i [ 0 ], text : r , href : o , tokens : [{ type : "text" , raw : r , text : r }]}}} inlineText ( t ){ const i = this . rules . inline . text . exec ( t ); if ( i ){ let n ; return this . lexer . state . inRawBlock ? n = i [ 0 ] : n = $e ( i [ 0 ]),{ type : "text" , raw : i [ 0 ], text : n }}}} const Du = /^(?: *(?:\n|$))+/ , Vu = /^( {4}[^\n]+(?:\n(?: *(?:\n|$))*)?)+/ , Bu = /^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/ , gn = /^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/ , Wu = /^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/ , Vs = /(?:[*+
] `).replace("lheading",Bs).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},Ks=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_` { | } ~ ]) / , Xu = /^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/ , Gs = /^( {2,}|\\)\n(?!\s*$)/ , ef = /^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/ , mn = "\\p{P}\\p{S}" , tf = re ( /^((?![*_])[\spunctuation])/ , "u" ). replace ( /punctuation/g , mn ). getRegex (), nf = /\[[^[\]]*?\]\([^\(\)]*?\)|`[^`]*?`|<[^<>]*?>/g , rf = re ( /^(?:\*+(?:((?!\*)[punct])|[^\s*]))|^_+(?:((?!_)[punct])|([^\s_]))/ , "u" ). replace ( /punct/g , mn ). getRegex (), of = re ( "^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)[punct](\\*+)(?=[\\s]|$)|[^punct\\s](\\*+)(?!\\*)(?=[punct\\s]|$)|(?!\\*)[punct\\s](\\*+)(?=[^punct\\s])|[\\s](\\*+)(?!\\*)(?=[punct])|(?!\\*)[punct](\\*+)(?!\\*)(?=[punct])|[^punct\\s](\\*+)(?=[^punct\\s])" , "gu" ). replace ( /punct/g , mn ). getRegex (), sf = re ( "^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)[punct](_+)(?=[\\s]|$)|[^punct\\s](_+)(?!_)(?=[punct\\s]|$)|(?!_)[punct\\s](_+)(?=[^punct\\s])|[\\s](_+)(?!_)(?=[punct])|(?!_)[punct](_+)(?!_)(?=[punct])" , "gu" ). replace ( /punct/g , mn ). getRegex (), lf = re ( /\\([punct])/ , "gu" ). replace ( /punct/g , mn ). getRegex (), af = re ( /^<(scheme:[^\s\x00-\x1f<>]*|email)>/ ). replace ( "scheme" , /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/ ). replace ( "email" , /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/ ). getRegex (), cf = re ( mr ). replace ( "(?:-->|$)" , "-->" ). getRegex (), uf = re ( "^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>" ). replace ( "comment" , cf ). replace ( "attribute" , /\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/ ). getRegex (), hi = /(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/ , ff = re ( /^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/ ). replace ( "label" , hi ). replace ( "href" , /<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/ ). replace ( "title" , /"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/ ). getRegex (), Zs = re ( /^!?\[(label)\]\[(ref)\]/ ). replace ( "label" , hi ). replace ( "ref" , gr ). getRegex (), Qs = re ( /^!?\[(ref)\](?:\[\])?/ ). replace ( "ref" , gr ). getRegex (), df = re ( "reflink|nolink(?!\\()" , "g" ). replace ( "reflink" , Zs ). replace ( "nolink" , Qs ). getRegex (), wr = { _backpedal : pn , anyPunctuation : lf , autolink : af , blockSkip : nf , br : Gs , code : Xu , del : pn , emStrongLDelim : rf , emStrongRDelimAst : of , emStrongRDelimUnd : sf , escape : Ks , link : ff , nolink : Qs , punctuation : tf , reflink : Zs , reflinkSearch : df , tag : uf , text : ef , url : pn }, hf = {... wr , link : re ( /^!?\[(label)\]\((.*?)\)/ ). replace ( "label" , hi ). getRegex (), reflink : re ( /^!?\[(label)\]\s*\[([^\]]*)\]/ ). replace ( "label" , hi ). getRegex ()}, br = {... wr , escape : re ( Ks ). replace ( "])" , "~|])" ). getRegex (), url : re ( /^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/ , "i" ). replace ( "email" , /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/ ). getRegex (), _backpedal : /(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/ , del : /^(~~?)(?=[^\s~])([\s\S]*?[^\s~])\1(?=[^~]|$)/ , text : /^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|https?:\/\/|ftp:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/ }, pf = {... br , br : re ( Gs ). replace ( "{2,}" , "*" ). getRegex (), text : re ( br . text ). replace ( "\\b_" , "\\b_| {2,}\\n" ). replace ( /\{2,\}/g , "*" ). getRegex ()}, pi = { normal : vr , gfm : Ju , pedantic : Yu }, vn = { normal : wr , gfm : br , breaks : pf , pedantic : hf }; class it { tokens ; options ; state ; tokenizer ; inlineQueue ; constructor ( t ){ this . tokens = [], this . tokens . links = Object . create ( null ), this . options = t || Rt , this . options . tokenizer = this . options . tokenizer || new fi , this . tokenizer = this . options . tokenizer , this . tokenizer . options = this . options , this . tokenizer . lexer = this , this . inlineQueue = [], this . state = { inLink :! 1 , inRawBlock :! 1 , top :! 0 }; const i = { block : pi . normal , inline : vn . normal }; this . options . pedantic ? ( i . block = pi . pedantic , i . inline = vn . pedantic ) : this . options . gfm && ( i . block = pi . gfm , this . options . breaks ? i
`),this.blockTokens(t,this.tokens);for(let i=0;i<this.inlineQueue.length;i++){const n=this.inlineQueue[i];this.inlineTokens(n.src,n.tokens)}return this.inlineQueue=[],this.tokens}blockTokens(t,i=[]){this.options.pedantic?t=t.replace(/\t/g," ").replace(/^ +$/gm,""):t=t.replace(/^( *)(\t+)/gm,(l,a,c)=>a+" ".repeat(c.length));let n,r,o,s;for(;t;)if(!(this.options.extensions&&this.options.extensions.block&&this.options.extensions.block.some(l=>(n=l.call({lexer:this},t,i))?(t=t.substring(n.raw.length),i.push(n),!0):!1))){if(n=this.tokenizer.space(t)){t=t.substring(n.raw.length),n.raw.length===1&&i.length>0?i[i.length-1].raw+=`
`:i.push(n);continue}if(n=this.tokenizer.code(t)){t=t.substring(n.raw.length),r=i[i.length-1],r&&(r.type==="paragraph"||r.type==="text")?(r.raw+=`
`+n.raw,r.text+=`
`+n.text,this.inlineQueue[this.inlineQueue.length-1].src=r.text):i.push(n);continue}if(n=this.tokenizer.fences(t)){t=t.substring(n.raw.length),i.push(n);continue}if(n=this.tokenizer.heading(t)){t=t.substring(n.raw.length),i.push(n);continue}if(n=this.tokenizer.hr(t)){t=t.substring(n.raw.length),i.push(n);continue}if(n=this.tokenizer.blockquote(t)){t=t.substring(n.raw.length),i.push(n);continue}if(n=this.tokenizer.list(t)){t=t.substring(n.raw.length),i.push(n);continue}if(n=this.tokenizer.html(t)){t=t.substring(n.raw.length),i.push(n);continue}if(n=this.tokenizer.def(t)){t=t.substring(n.raw.length),r=i[i.length-1],r&&(r.type==="paragraph"||r.type==="text")?(r.raw+=`
`+n.raw,r.text+=`
`+n.raw,this.inlineQueue[this.inlineQueue.length-1].src=r.text):this.tokens.links[n.tag]||(this.tokens.links[n.tag]={href:n.href,title:n.title});continue}if(n=this.tokenizer.table(t)){t=t.substring(n.raw.length),i.push(n);continue}if(n=this.tokenizer.lheading(t)){t=t.substring(n.raw.length),i.push(n);continue}if(o=t,this.options.extensions&&this.options.extensions.startBlock){let l=1/0;const a=t.slice(1);let c;this.options.extensions.startBlock.forEach(f=>{c=f.call({lexer:this},a),typeof c=="number"&&c>=0&&(l=Math.min(l,c))}),l<1/0&&l>=0&&(o=t.substring(0,l+1))}if(this.state.top&&(n=this.tokenizer.paragraph(o))){r=i[i.length-1],s&&r.type==="paragraph"?(r.raw+=`
`+n.raw,r.text+=`
`+n.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=r.text):i.push(n),s=o.length!==t.length,t=t.substring(n.raw.length);continue}if(n=this.tokenizer.text(t)){t=t.substring(n.raw.length),r=i[i.length-1],r&&r.type==="text"?(r.raw+=`
`+n.raw,r.text+=`
`+n.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=r.text):i.push(n);continue}if(t){const l="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(l);break}else throw new Error(l)}}return this.state.top=!0,i}inline(t,i=[]){return this.inlineQueue.push({src:t,tokens:i}),i}inlineTokens(t,i=[]){let n,r,o,s=t,l,a,c;if(this.tokens.links){const f=Object.keys(this.tokens.links);if(f.length>0)for(;(l=this.tokenizer.rules.inline.reflinkSearch.exec(s))!=null;)f.includes(l[0].slice(l[0].lastIndexOf("[")+1,-1))&&(s=s.slice(0,l.index)+"["+"a".repeat(l[0].length-2)+"]"+s.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(l=this.tokenizer.rules.inline.blockSkip.exec(s))!=null;)s=s.slice(0,l.index)+"["+"a".repeat(l[0].length-2)+"]"+s.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;(l=this.tokenizer.rules.inline.anyPunctuation.exec(s))!=null;)s=s.slice(0,l.index)+"++"+s.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);for(;t;)if(a||(c=""),a=!1,!(this.options.extensions&&this.options.extensions.inline&&this.options.extensions.inline.some(f=>(n=f.call({lexer:this},t,i))?(t=t.substring(n.raw.length),i.push(n),!0):!1))){if(n=this.tokenizer.escape(t)){t=t.substring(n.raw.length),i.push(n);continue}if(n=this.tokenizer.tag(t)){t=t.substring(n.raw.length),r=i[i.length-1],r&&n.type==="text"&&r.type==="text"?(r.raw+=n.raw,r.text+=n.text):i.push(n);continue}if(n=this.tokenizer.link(t)){t=t.substring(n.raw.length),i.push(n);continue}if(n=this.tokenizer.reflink(t,this.tokens.links)){t=t.substring(n.raw.length),r=i[i.length-1],r&&n.type==="text"&&r.type==="text"?(r.raw+=n.raw,r.text+=n.text):i.push(n);continue}if(n=this.tokenizer.emStrong(t,s,c)){t=t.substring(n.raw.length),i.push(n);continue}if(n=this.tokenizer.codespan(t)){t=t.substring(n.raw.length),i.push(n);continue}if(n=this.tokenizer.br(t)){t=t.substring(n.raw.length),i.push(n);continue}if(n=this.tokenizer.del(t)){t=t.substring(n.raw.length),i.push(n);continue}if(n=this.tokenizer.autolink(t)){t=t.substring(n.raw.length),i.push(n);continue}if(!this.state.inLink&&(n=this.tokenizer.url(t))){t=t.substring(n.raw.length),i.push(n);continue}if(o=t,this.options.extensions&&this.options.extensions.startInline){let f=1/0;const h=t.slice(1);let p;this.options.extensions.startInline.forEach(g=>{p=g.call({lexer:this},h),typeof p=="number"&&p>=0&&(f=Math.min(f,p))}),f<1/0&&f>=0&&(o=t.substring(0,f+1))}if(n=this.tokenizer.inlineText(o)){t=t.substring(n.raw.length),n.raw.slice(-1)!=="_"&&(c=n.raw.slice(-1)),a=!0,r=i[i.length-1],r&&r.type==="text"?(r.raw+=n.raw,r.text+=n.text):i.push(n);continue}if(t){const f="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(f);break}else throw new Error(f)}}return i}}class gi{options;constructor(t){this.options=t||Rt}code(t,i,n){var o;const r=(o=(i||"").match(/^\S*/))==null?void 0:o[0];return t=t.replace(/\n$/,"")+`
`,r?'<pre><code class="language-'+$e(r)+'">'+(n?t:$e(t,!0))+` < /code></pre>
`:"<pre><code>"+(n?t:$e(t,!0))+` < /code></pre>
`}blockquote(t){return` < blockquote >
$ { t } < /blockquote>
`}html(t,i){return t}heading(t,i,n){return` < h$ { i } > $ { t } < /h${i}>
`}hr(){return` < hr >
`}list(t,i,n){const r=i?"ol":"ul",o=i&&n!==1?' start="'+n+'"':"";return"<"+r+o+` >
`+t+"</"+r+` >
`}listitem(t,i,n){return` < li > $ { t } < /li>
`}checkbox(t){return"<input "+(t?'checked="" ':"")+'disabled="" type="checkbox">'}paragraph(t){return` < p > $ { t } < /p>
`}table(t,i){return i&&(i=` < tbody > $ { i } < /tbody>`),`<table>
< thead >
`+t+` < /thead>
`+i+` < /table>
`}tablerow(t){return` < tr >
$ { t } < /tr>
`}tablecell(t,i){const n=i.header?"th":"td";return(i.align?` < $ { n } align = "${i.align}" > `:` < $ { n } > `)+t+` < /${n}>
`}strong(t){return` < strong > $ { t } < /strong>`}em(t){return`<em>${t}</em>`}codespan(t){return`<code>${t}</code>`}br(){return"<br>"}del(t){return`<del>${t}</del>`}link(t,i,n){const r=Ns(t);if(r===null)return n;t=r;let o='<a href="'+t+'"';return i&&(o+=' title="'+i+'"'),o+=">"+n+"</a>",o}image(t,i,n){const r=Ns(t);if(r===null)return n;t=r;let o=`<img src="${t}" alt="${n}"`;return i&&(o+=` title="${i}"`),o+=">",o}text(t){return t}}class yr{strong(t){return t}em(t){return t}codespan(t){return t}del(t){return t}html(t){return t}text(t){return t}link(t,i,n){return""+n}image(t,i,n){return""+n}br(){return""}}class rt{options;renderer;textRenderer;constructor(t){this.options=t||Rt,this.options.renderer=this.options.renderer||new gi,this.renderer=this.options.renderer,this.renderer.options=this.options,this.textRenderer=new yr}static parse(t,i){return new rt(i).parse(t)}static parseInline(t,i){return new rt(i).parseInline(t)}parse(t,i=!0){let n="";for(let r=0;r<t.length;r++){const o=t[r];if(this.options.extensions&&this.options.extensions.renderers&&this.options.extensions.renderers[o.type]){const s=o,l=this.options.extensions.renderers[s.type].call({parser:this},s);if(l!==!1||!["space","hr","heading","code","table","blockquote","list","html","paragraph","text"].includes(s.type)){n+=l||"";continue}}switch(o.type){case"space":continue;case"hr":{n+=this.renderer.hr();continue}case"heading":{const s=o;n+=this.renderer.heading(this.parseInline(s.tokens),s.depth,Fu(this.parseInline(s.tokens,this.textRenderer)));continue}case"code":{const s=o;n+=this.renderer.code(s.text,s.lang,!!s.escaped);continue}case"table":{const s=o;let l="",a="";for(let f=0;f<s.header.length;f++)a+=this.renderer.tablecell(this.parseInline(s.header[f].tokens),{header:!0,align:s.align[f]});l+=this.renderer.tablerow(a);let c="";for(let f=0;f<s.rows.length;f++){const h=s.rows[f];a="";for(let p=0;p<h.length;p++)a+=this.renderer.tablecell(this.parseInline(h[p].tokens),{header:!1,align:s.align[p]});c+=this.renderer.tablerow(a)}n+=this.renderer.table(l,c);continue}case"blockquote":{const s=o,l=this.parse(s.tokens);n+=this.renderer.blockquote(l);continue}case"list":{const s=o,l=s.ordered,a=s.start,c=s.loose;let f="";for(let h=0;h<s.items.length;h++){const p=s.items[h],g=p.checked,R=p.task;let x="";if(p.task){const T=this.renderer.checkbox(!!g);c?p.tokens.length>0&&p.tokens[0].type==="paragraph"?(p.tokens[0].text=T+" "+p.tokens[0].text,p.tokens[0].tokens&&p.tokens[0].tokens.length>0&&p.tokens[0].tokens[0].type==="text"&&(p.tokens[0].tokens[0].text=T+" "+p.tokens[0].tokens[0].text)):p.tokens.unshift({type:"text",text:T+" "}):x+=T+" "}x+=this.parse(p.tokens,c),f+=this.renderer.listitem(x,R,!!g)}n+=this.renderer.list(f,l,a);continue}case"html":{const s=o;n+=this.renderer.html(s.text,s.block);continue}case"paragraph":{const s=o;n+=this.renderer.paragraph(this.parseInline(s.tokens));continue}case"text":{let s=o,l=s.tokens?this.parseInline(s.tokens):s.text;for(;r+1<t.length&&t[r+1].type==="text";)s=t[++r],l+=`
`+(s.tokens?this.parseInline(s.tokens):s.text);n+=i?this.renderer.paragraph(l):l;continue}default:{const s='Token with "'+o.type+'" type was not found.';if(this.options.silent)return console.error(s),"";throw new Error(s)}}}return n}parseInline(t,i){i=i||this.renderer;let n="";for(let r=0;r<t.length;r++){const o=t[r];if(this.options.extensions&&this.options.extensions.renderers&&this.options.extensions.renderers[o.type]){const s=this.options.extensions.renderers[o.type].call({parser:this},o);if(s!==!1||!["escape","html","link","image","strong","em","codespan","br","del","text"].includes(o.type)){n+=s||"";continue}}switch(o.type){case"escape":{const s=o;n+=i.text(s.text);break}case"html":{const s=o;n+=i.html(s.text);break}case"link":{const s=o;n+=i.link(s.href,s.title,this.parseInline(s.tokens,i));break}case"image":{const s=o;n+=i.image(s.href,s.title,s.text);break}case"strong":{const s=o;n+=i.strong(this.parseInline(s.tokens,i));break}case"em":{const s=o;n+=i.em(this.parseInline(s.tokens,i));break}case"codespan":{const s=o;n+=i.codespan(s.text);break}case"br":{n+=i.br();break}case"del":{const s=o;n+=i.del(this.parseInline(s.tokens,i));break}case"text":{const s=o;n+=i.text(s.text);break}default:{const s='Token with "'+o.type+'" type was not found.';if(this.options.silent)return console.error(s),"";throw new Error(s)}}}return n}}class wn{options;constructor(t){this.options=t||Rt}preprocess(t){return t}postprocess(t){return t}processAllTokens(t){return t}}Oe(wn,"passThroughHooks",new Set(["preprocess","postprocess","processAllTokens"]));class Js{constructor(...t){_i(this,xn);_i(this,bi);Oe(this,"defaults",hr());Oe(this,"options",this.setOptions);Oe(this,"parse",En(this,xn,kr).call(this,it.lex,rt.parse));Oe(this,"parseInline",En(this,xn,kr).call(this,it.lexInline,rt.parseInline));Oe(this,"Parser",rt);Oe(this,"Renderer",gi);Oe(this,"TextRenderer",yr);Oe(this,"Lexer",it);Oe(this,"Tokenizer",fi);Oe(this,"Hooks",wn);this.use(...t)}walkTokens(t,i){var r,o;let n=[];for(const s of t)switch(n=n.concat(i.call(this,s)),s.type){case"table":{const l=s;for(const a of l.header)n=n.concat(this.walkTokens(a.tokens,i));for(const a of l.rows)for(const c of a)n=n.concat(this.walkTokens(c.tokens,i));break}case"list":{const l=s;n=n.concat(this.walkTokens(l.items,i));break}default:{const l=s;(o=(r=this.defaults.extensions)==null?void 0:r.childTokens)!=null&&o[l.type]?this.defaults.extensions.childTokens[l.type].forEach(a=>{const c=l[a].flat(1/0);n=n.concat(this.walkTokens(c,i))}):l.tokens&&(n=n.concat(this.walkTokens(l.tokens,i)))}}return n}use(...t){const i=this.defaults.extensions||{renderers:{},childTokens:{}};return t.forEach(n=>{const r={...n};if(r.async=this.defaults.async||r.async||!1,n.extensions&&(n.extensions.forEach(o=>{if(!o.name)throw new Error("extension name required");if("renderer"in o){const s=i.renderers[o.name];s?i.renderers[o.name]=function(...l){let a=o.renderer.apply(this,l);return a===!1&&(a=s.apply(this,l)),a}:i.renderers[o.name]=o.renderer}if("tokenizer"in o){if(!o.level||o.level!=="block"&&o.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");const s=i[o.level];s?s.unshift(o.tokenizer):i[o.level]=[o.tokenizer],o.start&&(o.level==="block"?i.startBlock?i.startBlock.push(o.start):i.startBlock=[o.start]:o.level==="inline"&&(i.startInline?i.startInline.push(o.start):i.startInline=[o.start]))}"childTokens"in o&&o.childTokens&&(i.childTokens[o.name]=o.childTokens)}),r.extensions=i),n.renderer){const o=this.defaults.renderer||new gi(this.defaults);for(const s in n.renderer){if(!(s in o))throw new Error(` renderer '${s}' does not exist `);if(s==="options")continue;const l=s,a=n.renderer[l],c=o[l];o[l]=(...f)=>{let h=a.apply(o,f);return h===!1&&(h=c.apply(o,f)),h||""}}r.renderer=o}if(n.tokenizer){const o=this.defaults.tokenizer||new fi(this.defaults);for(const s in n.tokenizer){if(!(s in o))throw new Error(` tokenizer '${s}' does not exist `);if(["options","rules","lexer"].includes(s))continue;const l=s,a=n.tokenizer[l],c=o[l];o[l]=(...f)=>{let h=a.apply(o,f);return h===!1&&(h=c.apply(o,f)),h}}r.tokenizer=
Please report this to https://github.com/markedjs/marked.` , t ){ const r = "<p>An error occurred:</p><pre>" + $e ( n . message + "" , ! 0 ) + "</pre>" ; return i ? Promise . resolve ( r ) : r } if ( i ) return Promise . reject ( n ); throw n }}; const Tt = new Js ; function ue ( e , t ){ return Tt . parse ( e , t )} ue . options = ue . setOptions = function ( e ){ return Tt . setOptions ( e ), ue . defaults = Tt . defaults , zs ( ue . defaults ), ue }, ue . getDefaults = hr , ue . defaults = Rt , ue . use = function (... e ){ return Tt . use (... e ), ue . defaults = Tt . defaults , zs ( ue . defaults ), ue }, ue . walkTokens = function ( e , t ){ return Tt . walkTokens ( e , t )}, ue . parseInline = Tt . parseInline , ue . Parser = rt , ue . parser = rt . parse , ue . Renderer = gi , ue . TextRenderer = yr , ue . Lexer = it , ue . lexer = it . lex , ue . Tokenizer = fi , ue . Hooks = wn , ue . parse = ue ; function gf ( e ){ if ( typeof e == "function" && ( e = { highlight : e }), ! e || typeof e . highlight != "function" ) throw new Error ( "Must provide highlight function" ); return typeof e . langPrefix != "string" && ( e . langPrefix = "language-" ),{ async :!! e . async , walkTokens ( t ){ if ( t . type !== "code" ) return ; const i = Ys ( t . lang ); if ( e . async ) return Promise . resolve ( e . highlight ( t . text , i , t . lang || "" )). then ( Xs ( t )); const n = e . highlight ( t . text , i , t . lang || "" ); if ( n instanceof Promise ) throw new Error ( "markedHighlight is not set to async but the highlight function is async. Set the async option to true on markedHighlight to await the async highlight function." ); Xs ( t )( n )}, renderer : { code ( t , i , n ){ const r = Ys ( i ), o = r ? ` class=" ${ e . langPrefix }${ il ( r ) } "` : "" ; return t = t . replace ( /\n$/ , "" ), `<pre><code ${ o } > ${ n ? t : il ( t , ! 0 ) }
</code></pre>` }}}} function Ys ( e ){ return ( e || "" ). match ( /\S*/ )[ 0 ]} function Xs ( e ){ return t =>{ typeof t == "string" && t !== e . text && ( e . escaped =! 0 , e . text = t )}} const el = /[&<>"']/ , mf = new RegExp ( el . source , "g" ), tl = /[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/ , vf = new RegExp ( tl . source , "g" ), wf = { "&" : "&" , "<" : "<" , ">" : ">" , '"' : """ , "'" : "'" }, nl = e => wf [ e ]; function il ( e , t ){ if ( t ){ if ( el . test ( e )) return e . replace ( mf , nl )} else if ( tl . test ( e )) return e . replace ( vf , nl ); return e } const bf = /\$.*?\$/ , yf = /^\$(.*?)\$/ , _f = /^(?:\s{0,3})\$\$((?:[^\n]|\n[^\n])+?)\n{0,1}\$\$/ , kf = e =>[{ name : "blockMath" , level : "block" , tokenizer ( t ){ const i = _f . exec ( t ); if ( i !== null ) return { type : "html" , raw : i [ 0 ], text : e ( ! 0 , i [ 1 ])}}},{ name : "inlineMath" , level : "inline" , start ( t ){ const i = t . search ( bf ); return i !==- 1 ? i : t . length }, tokenizer ( t ){ const i = yf . exec ( t ); if ( i !== null ) return { type : "html" , raw : i [ 0 ], text : e ( ! 1 , i [ 1 ])}}}], rl = ( e = "" , t = {})=> e . replace ( /:(.+?):/g ,( i , n )=> t [ n ] ? `<img class="wl-emoji" src=" ${ t [ n ] } " alt=" ${ n } ">` : i ), xf = ( e ,{ emojiMap : t , highlighter : i , texRenderer : n })=>{ const r = new Js ; if ( r . setOptions ({ breaks :! 0 }), i && r . use ( gf ({ highlight : i })), n ){ const o = kf ( n ); r . use ({ extensions : o })} return r . parse ( rl ( e , t ))}, _r = e =>{ const { path : t } = e . dataset ; return t != null && t . length ? t : null }, Cf = e => e . match ( /[\w\d\s,.\u00C0-\u024F\u0400-\u04FF]+/giu ), Ef = e => e . match ( /[\u4E00-\u9FD5]/gu ), Sf = e =>{ var t , i ; return ((( t = Cf ( e )) == null ? void 0 : t . reduce (( n , r )=> n + ([ "" , "," , "." ]. includes ( r . trim ()) ? 0 : r . trim (). split ( /\s+/u ). length ), 0 )) ?? 0 ) + ((( i = Ef ( e )) == null ? void 0 : i . length ) ?? 0 )}, If = async ()=>{ if ( ! navigator ) return "" ; const { userAgentData : e } = navigator ; let t = navigator . userAgent ; if ( ! e || e . platform !== "Windows" ) return t ; const { platformVersion : i } = await e . getHighEntropyValues ([ "platformVersion" ]); return i && parseInt ( i . split ( "." )[ 0 ]) >= 13 && ( t = t . replace ( "Windows NT 10.0" , "Windows NT 11.0" )), t }, ol = ({ serverURL : e , path : t = window . location . pathname , selector : i = ".waline-comment-count" , lang : n = navigator . language })=>{ const r = new AbortController , o = document . querySelectorAll ( i ); return o . length && Lr ({ serverURL : Rn ( e ), paths : Array . from ( o ). map ( s => Gr ( _r ( s ) ?? t )), lang : n , signal : r . signal }). then ( s =>{ o . forEach (( l , a )=>{ l . innerText = s [ a ]. toString ()})}). catch ( Os ), r . abort . bind ( r )}, Rf = ({ size : e })=> Y ( "svg" ,{ class : "wl-close-icon" , viewBox : "0 0 1024 1024" , width : e , height : e },[ Y ( "path" ,{ d : "M697.173 85.333h-369.92c-144.64 0-241.92 101.547-241.92 252.587v348.587c0 150.613 97.28 252.16 241.92 252.16h369.92c144.64 0 241.494-101.547 241.494-252.16V337.92c0-151.04-96.854-252.587-241.494-252.587z" , fill : "currentColor" }), Y ( "path" ,{ d : "m640.683 587.52-75.947-75.861 75.904-75.862a37.29 37.29 0 0 0 0-52.778 37.205 37.205 0 0 0-52.779 0l-75.946 75.818-75.862-75.946a37.419 37.419 0 0 0-52.821 0 37.419 37.419 0 0 0 0 52.821l75.947 75.947-75.776 75.733a37.29 37.29 0 1 0 52.778 52.821l75.776-75.776 75.947 75.947a37.376 37.376 0 0 0 52.779-52.821z" , fill : "#888" })]), Tf = ()=> Y ( "svg" ,{ viewBox : "0 0 1024 1024" , width : "24" , height : "24" }, Y ( "path" ,{ d : "m341.013 394.667 27.755 393.45h271.83l27.733-393.45h64.106l-28.01 397.952a64 64 0 0 1-63.83 59.498H368.768a64 64 0 0 1-63.83-59.52l-28.053-397.93h64.128zm139.307 19.818v298.667h-64V414.485h64zm117.013 0v298.667h-64V414.485h64zM181.333 288h640v64h-640v-64zm453.483-106.667v64h-256v-64h256z" , fill : "red" })), Lf = ()=> Y ( "svg" ,{ viewBox : "0 0 1024 1024" , width : "24" , height : "24" }, Y ( "path" ,{ d : "M563.2 463.3 677 540c1.7 1.2 3.7 1.8 5.8 1.8.7 0 1.4-.1 2-.2 2.7-.5 5.1-2.1 6.6-4.4l25.3-37.8c1.5-2.3 2.1-5.1 1.6-7.8s-2.1-5.1-4.4-6.6l-73.6-49.1 73.6-49.1c2.3-1.5 3.9-3.9 4.4-6.6.5-2.7 0-5.5-1.6-7.8l-25.3-37.8a10.1 10.1 0 0 0-6.6-4.4c-.7-.1-1.3-.2-2-.2-2.1 0-4.1.6-5.8 1.8l-113.8 76.6c-9.2 6.2-14.7 16.4-14.7 27.5.1 11 5.5 21.3 14.7 27.4zM387 348.8h-45.5c-5.7 0-10.4 4.7-10.4 10.4v153.3c0 5.7 4.7 10.4 10.4 10.4H387c5.7 0 10.4-4.7 10.4-10.4V359.2c0-5.7-4.7-10.4-10.4-10.4zm333.8 241.3-41-20a10.3 10.3 0 0 0-8.1-.5c-2.6.9-4.8 2.9-5.9 5.4-30.1 64.9-93.1 109.1-164.4 115.2-5.7.5-9.9 5.5-9.5 11.2l3.9 45.5c.5 5.3 5 9.5 10.3 9.5h.9c94.8-8 178.5-66.5 218.6-152.7 2.4-5 .3-11.2-4.8-13.6zm186-186.1c-11.9-42-30.5-81.4-55.2-117.1-24.1-34.9-53.5-65.6-87.5-91.2-33.9-25.6-71.5-45.5-111.6-59.2-41.2-14-84.1-21.1-127.8-21.1
`)}).catch(u=>{alert(u.message),s.value=s.value.replace(j,"")}).then(()=>{fe.value=!1})},ke=O=>{var j;if((j=O.dataTransfer)!=null&&j.items){const u=js(O.dataTransfer.items);u&&te.value&&(he(u),O.preventDefault())}},ge=O=>{if(O.clipboardData){const j=js(O.clipboardData.items);j&&te.value&&he(j)}},Se=()=>{const O=h.value;O.files&&te.value&&he(O.files[0]).then(()=>{O.value=""})},Lt=async()=>{var O,j,u,d,m,w;const{serverURL:v,lang:y,login:C,wordLimit:_,requiredMeta:k,recaptchaV3Key:b,turnstileKey:I}=o.value,z=await If(),E={comment:le.value,nick:l.value.nick,mail:l.value.mail,link:l.value.link,url:o.value.path,ua:z};if(!n.edit)if((O=a.value)!=null&&O.token)E.nick=a.value.display_name,E.mail=a.value.email,E.link=a.value.url;else{if(C===" force ")return;if(k.indexOf(" nick ")>-1&&!E.nick)return(j=c.value.nick)==null||j.focus(),alert(Fe.value.nickError);if(k.indexOf(" mail ")>-1&&!E.mail||E.mail&&!Vl(E.mail))return(u=c.value.mail)==null||u.focus(),alert(Fe.value.mailError);E.nick||(E.nick=Fe.value.anonymous)}if(!E.comment){(d=f.value)==null||d.focus();return}if(!B.value)return alert(Fe.value.wordHint.replace(" $0 ",_[0].toString()).replace(" $1 ",_[1].toString()).replace(" $2 ",D.value.toString()));E.comment=rl(E.comment,$.value.map),n.replyId&&n.rootId&&(E.pid=n.replyId,E.rid=n.rootId,E.at=n.replyUser),fe.value=!0;try{b&&(E.recaptchaV3=await Gf(b).execute(" social ")),I&&(E.turnstile=await Zf(I).execute(" social "));const F={serverURL:v,lang:y,token:(m=a.value)==null?void 0:m.token,comment:E},K=await(n.edit?qt({objectId:n.edit.objectId,...F}):Rr(F));if(fe.value=!1,K.errmsg)return alert(K.errmsg);r(" submit ",K.data),s.value="",H.value="",await Ut(),n.replyId&&r(" cancelReply "),(w=n.edit)!=null&&w.objectId&&r(" cancelEdit ")}catch(F){fe.value=!1,alert(F.message)}},Bt=O=>{O.preventDefault();const{lang:j,serverURL:u}=o.value;Ar({serverURL:u,lang:j}).then(d=>{a.value=d,(d.remember?localStorage:sessionStorage).setItem(" WALINE_USER ",JSON.stringify(d)),r(" log ")})},yi=()=>{a.value={},localStorage.setItem(" WALINE_USER "," null "),sessionStorage.setItem(" WALINE_USER "," null "),r(" log ")},Ue=O=>{O.preventDefault();const{lang:j,serverURL:u}=o.value,d=800,m=800,w=(window.innerWidth-d)/2,v=(window.innerHeight-m)/2,y=new URLSearchParams({lng:j,token:a.value.token}),C=window.open(`${u}/ui/profile?${y.toString()}`," _blank ",`width=${d},height=${m},left=${w},top=${v},scrollbars=no,resizable=no,status=no,location=no,toolbar=no,menubar=no`);C==null||C.postMessage({type:" TOKEN ",data:a.value.token}," * ")},mt=O=>{var j,u,d,m;!((j=p.value)!=null&&j.contains(O.target))&&!((u=g.value)!=null&&u.contains(O.target))&&(A.value=!1),!((d=R.value)!=null&&d.contains(O.target))&&!((m=x.value)!=null&&m.contains(O.target))&&(U.value=!1)},At=async O=>{var j;const{scrollTop:u,clientHeight:d,scrollHeight:m}=O.target,w=(d+u)/m,v=o.value.search,y=((j=T.value)==null?void 0:j.value)??"";w<.9||V.loading||ot.value||(V.loading=!0,(v.more&&V.list.length?await v.more(y,V.list.length):await v.search(y)).length?V.list=[...V.list,...v.more&&V.list.length?await v.more(y,V.list.length):await v.search(y)]:ot.value=!0,V.loading=!1,setTimeout(()=>{O.target.scrollTop=u},50))},Cn=pu(O=>{V.list=[],ot.value=!1,At(O)},300);je([o,D],([O,j])=>{const{wordLimit:u}=O;u?j<u[0]&&u[0]!==0?(Le.value=u[0],B.value=!1):j>u[1]?(Le.value=u[1],B.value=!1):(Le.value=u[1],B.value=!0):(Le.value=0,B.value=!0)},{immediate:!0}),li(" click ",mt),li(" message ",({data:O})=>{!O||O.type!==" profile "||(a.value={...a.value,...O.data},[localStorage,sessionStorage].filter(j=>j.getItem(" WALINE_USER ")).forEach(j=>j.setItem(" WALINE_USER ",JSON.stringify(a))))}),je(U,async O=>{var j;if(!O)return;const u=o.value.search;T.value&&(T.value.value=""),V.loading=!0,V.list=await(((j=u.default)==null?void 0:j.call(u))??u.search("")),V.loading=!1}),on(()=>{var O;(O=n.edit)!=null&&O.objectId&&(s.value=n.edit.orig),je(()=>s.value,j=>{const{highlighter:u,texRenderer:d}=o.value;le.value=j,H.value=xf(j,{emojiMap:$.value.map,highlighter:u,texRenderer:d}),D.value=Sf(j),j?hl(f.value):hl.destroy(f.value)},{immediate:!0}),je(()=>o.value.emoji,j=>Mu(j).then
//# sourceMappingURL=waline.js.map
}
2024-07-11 08:59:32 +08:00
// pjax发送时期
document.addEventListener(" pjax : send ", function () {
// pjax动画减少圆圈动画
NProgress.configure({
showSpinner: false
});
// pjax执行动画开始
NProgress.start(); //加载动画效果开始
});
// Pjax 成功后,重新加载下面的函数
document.addEventListener(" pjax : success ", function () {
// 重载图片懒加载插件的js
lazyimg_pjax()
lazyLoadInit({
coverColor: " white ",
coverDiv: " < div style = 'display: flex; justify-content: center; align-items: center; height: 200px;color: #000000;' >< span > 优世界 · 一个记录生活点滴的小站 < /span></div>",
offsetBottom : 0 ,
offsetTopm : 0 ,
showTime : 1100
});
// 激活文章图片灯箱
window . ViewImage && ViewImage . init ( '#writing_content img,.text img , .memos-photo img , .gallery-thumbnail img' );
});
// pjax加载完成
document . addEventListener ( "pjax:complete" , function () {
// pjax完成动画
NProgress . done ();
// 重载一些js样式调整
pjax_reload ()
// 激活返回顶部插件
$ ( function () {
$ . scrollUp ({
animation : 'fade' ,
scrollImg : true
});
});
2024-07-13 15:15:32 +08:00
// 重载一下评论模块
reload_comment_js ()
2024-07-11 08:59:32 +08:00
});