// ==UserScript==
// @name V2EX Polish - 体验更现代化的 V2EX
// @namespace LeoKu(https://leoku.top)
// @version 1.3.0
// @description 一款专为 V2EX 用户设计的浏览器插件,提供了丰富的扩展功能,让原生页面焕然一新!
// @author LeoKu
// @match https://*.v2ex.com/*
// @icon https://www.google.com/s2/favicons?sz=64&domain=v2ex.com
// @grant none
// @license MIT
// ==/UserScript==
"use strict";var y=(o,t)=>()=>(o&&(t=o(o=0)),t);var et,nt,_o,rt,nn,Ao,K,O=y(()=>{"use strict";et="V2EX_Polish",nt=[{title:"\u5C0F\u9EC4\u8138",list:["\u{1F600}","\u{1F601}","\u{1F602}","\u{1F923}","\u{1F605}","\u{1F60A}","\u{1F60B}","\u{1F618}","\u{1F970}","\u{1F617}","\u{1F929}","\u{1F914}","\u{1F928}","\u{1F610}","\u{1F611}","\u{1F644}","\u{1F60F}","\u{1F62A}","\u{1F62B}","\u{1F971}","\u{1F61C}","\u{1F612}","\u{1F614}","\u{1F628}","\u{1F630}","\u{1F631}","\u{1F975}","\u{1F621}","\u{1F973}","\u{1F97A}","\u{1F92D}","\u{1F9D0}","\u{1F913}","\u{1F62D}","\u{1F911}","\u{1F92E}"]},{title:"\u624B\u52BF",list:["\u{1F64B}","\u{1F64E}","\u{1F645}","\u{1F647}","\u{1F937}","\u{1F90F}","\u{1F449}","\u270C\uFE0F","\u{1F918}","\u{1F919}","\u{1F44C}","\u{1F90C}","\u{1F44D}","\u{1F44E}","\u{1F44B}","\u{1F91D}","\u{1F64F}","\u{1F44F}"]},{title:"\u5E86\u795D",list:["\u2728","\u{1F389}","\u{1F38A}"]},{title:"\u5176\u4ED6",list:["\u{1F47B}","\u{1F921}","\u{1F414}","\u{1F440}","\u{1F4A9}","\u{1F434}","\u{1F984}","\u{1F427}","\u{1F436}","\u{1F412}","\u{1F648}","\u{1F649}","\u{1F64A}","\u{1F435}"]}],_o=250,rt=550,nn=60*60*1e3,Ao=["3107b9ef8b316f3","442b04f26eefc8a","59cfebe717c09e4","60605aad4a62882","6c65ab1d3f5452a","83e123737849aa9","9311f6be1c10160","c4a4a563f698595","81be04b9e4a08ce"],K={openInNewTab:!1,autoCheckIn:{enabled:!0},nestedReply:{display:"indent"}}});var it,oo,at,so,ct,lt,st,pt,dt,po,vt,ft,mt,ut,gt,bt,H=y(()=>{"use strict";it=`<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" style="width:18px; height:18px;" ><path stroke-linecap="round" stroke-linejoin="round" d="M15.182 15.182a4.5 4.5 0 01-6.364 0M21 12a9 9 0 11-18 0 9 9 0 0118 0zM9.75 9.75c0 .414-.168.75-.375.75S9 10.164 9 9.75 9.168 9 9.375 9s.375.336.375.75zm-.375 0h.008v.015h-.008V9.75zm5.625 0c0 .414-.168.75-.375.75s-.375-.336-.375-.75.168-.75.375-.75.375.336.375.75zm-.375 0h.008v.015h-.008V9.75z" /></svg>`,oo=`<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" ><path stroke-linecap="round" stroke-linejoin="round" d="M21 8.25c0-2.485-2.099-4.5-4.688-4.5-1.935 0-3.597 1.126-4.312 2.733-.715-1.607-2.377-2.733-4.313-2.733C5.1 3.75 3 5.765 3 8.25c0 7.22 9 12 9 12s9-4.78 9-12z" /></svg>`,at=`<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" ><path stroke-linecap="round" stroke-linejoin="round" d="M3.98 8.223A10.477 10.477 0 001.934 12C3.226 16.338 7.244 19.5 12 19.5c.993 0 1.953-.138 2.863-.395M6.228 6.228A10.45 10.45 0 0112 4.5c4.756 0 8.773 3.162 10.065 7.498a10.523 10.523 0 01-4.293 5.774M6.228 6.228L3 3m3.228 3.228l3.65 3.65m7.894 7.894L21 21m-3.228-3.228l-3.65-3.65m0 0a3 3 0 10-4.243-4.243m4.242 4.242L9.88 9.88" /></svg>`,so=`<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" ><path stroke-linecap="round" stroke-linejoin="round" d="M7.5 8.25h9m-9 3H12m-9.75 1.51c0 1.6 1.123 2.994 2.707 3.227 1.129.166 2.27.293 3.423.379.35.026.67.21.865.501L12 21l2.755-4.133a1.14 1.14 0 01.865-.501 48.172 48.172 0 003.423-.379c1.584-.233 2.707-1.626 2.707-3.228V6.741c0-1.602-1.123-2.995-2.707-3.228A48.394 48.394 0 0012 3c-2.392 0-4.744.175-7.043.513C3.373 3.746 2.25 5.14 2.25 6.741v6.018z" /></svg>`,ct=`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" ><polygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2" ></polygon></svg>`,lt=`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" ><path d="M22 4s-.7 2.1-2 3.4c1.6 10-9.4 17.3-18 11.6 2.2.1 4.4-.6 6-2C3 15.5.5 9.6 3 5c2.2 2.6 5.6 4.1 9 4-.9-4.2 4-6.6 7-3.8 1.1 0 3-1.2 3-1.2z" ></path></svg>`,st=`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" ><circle cx="12" cy="12" r="10"></circle><path d="M8 15h8"></path><path d="M8 9h2"></path><path d="M14 9h2"></path></svg>`,pt=`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" ><path d="M20.42 4.58a5.4 5.4 0 0 0-7.65 0l-.77.78-.77-.78a5.4 5.4 0 0 0-7.65 0C1.46 6.7 1.33 10.28 4 13l8 8 8-8c2.67-2.72 2.54-6.3.42-8.42z" ></path></svg>`,dt=`<svg version="1.1" id="L4" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" viewBox="0 0 100 100" enable-background="new 0 0 0 0" xml:space="preserve"><circle fill="currentcolor" stroke="none" cx="6" cy="50" r="6"><animate attributeName="opacity" dur="1s" values="0;1;0" repeatCount="indefinite" begin="0.1"/></circle><circle fill="currentcolor" stroke="none" cx="26" cy="50" r="6"><animate attributeName="opacity" dur="1s" values="0;1;0" repeatCount="indefinite" begin="0.2"/></circle><circle fill="currentcolor" stroke="none" cx="46" cy="50" r="6"><animate attributeName="opacity" dur="1s" values="0;1;0" repeatCount="indefinite" begin="0.3"/></circle></svg>`,po=`<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 88 88"><g style="mix-blend-mode:passthrough"><path d="M87.92 86.098v-.052a.592.592 0 0 0 0-.07L44.978.72l-.059-.105c-.16-.3-.415-.511-.705-.586a.961.961 0 0 0-.841.19 1.315 1.315 0 0 0-.336.378l-.058.115a2571.004 2571.004 0 0 1-8.695 17.172c-.59 1.024-.59 2.382 0 3.406 3.856 7.57 7.7 15.142 11.532 22.718.641 1.108.641 2.58 0 3.688C39.5 60.23 32.826 73.406 26.45 85.993c-.291.661-.086 1.482.46 1.84.16.104.341.158.525.158h18.52c.415.003.797-.272.992-.713l.635-1.285 8.585-17.023c.142-.317.383-.552.67-.653a.949.949 0 0 1 .855.116c.156.1.289.245.386.423l8.506 16.723.787 1.558c.199.433.575.702.985.704h.518c.087.009.175.009.263 0h17.74c.617 0 1.119-.601 1.123-1.347a1.615 1.615 0 0 0-.08-.396Z" fill="currentColor" style="mix-blend-mode:passthrough"/><path d="m38.551 48.541.62-1.232a3.095 3.095 0 0 0 0-3.02l-3.807-7.446-4.377-8.511c-.155-.308-.406-.527-.697-.61a.957.957 0 0 0-.85.17 1.252 1.252 0 0 0-.4.502L.132 86.002c-.29.658-.085 1.477.46 1.83.161.113.345.17.532.168h16.981c.41 0 .788-.27.985-.705l.65-1.302c.029-.048.055-.098.08-.15l.729-1.408c6.047-12.103 11.839-23.66 17.9-35.7.038-.062.072-.127.102-.194Z" fill="currentColor" style="mix-blend-mode:passthrough"/></g></svg>`,vt=`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 152.01 132"><defs><linearGradient id="a" gradientUnits="userSpaceOnUse" x1="39.16" y1="775.015" x2="152.84" y2="775.015" gradientTransform="translate(0 -650)"><stop offset="0" style="stop-color:#d93025"/><stop offset="1" style="stop-color:#ea4335"/></linearGradient><linearGradient id="b" gradientUnits="userSpaceOnUse" x1="-1169.827" y1="59.741" x2="-1056.123" y2="59.741" gradientTransform="rotate(-120 -489.637 -232.003)"><stop offset="0" style="stop-color:#1e8e3e"/><stop offset="1" style="stop-color:#34a853"/></linearGradient><linearGradient id="c" gradientUnits="userSpaceOnUse" x1="56.707" y1="-664.775" x2="170.407" y2="-664.775" gradientTransform="rotate(120 -125.508 -249.005)"><stop offset="0" style="stop-color:#fbbc04"/><stop offset="1" style="stop-color:#fcc934"/></linearGradient><linearGradient xlink:href="#a" id="d" gradientUnits="userSpaceOnUse" gradientTransform="translate(-20 -678)" x1="39.16" y1="775.015" x2="152.84" y2="775.015"/><linearGradient xlink:href="#b" id="e" gradientUnits="userSpaceOnUse" gradientTransform="rotate(-120 -507.72 -240.23)" x1="-1169.827" y1="59.741" x2="-1056.123" y2="59.741"/><linearGradient xlink:href="#c" id="f" gradientUnits="userSpaceOnUse" gradientTransform="rotate(120 -127.425 -268.779)" x1="56.707" y1="-664.775" x2="170.407" y2="-664.775"/></defs><path d="M0 0v121.63C0 127.35 4.64 132 10.37 132h131.27c5.72 0 10.37-4.64 10.37-10.37L152 0Zm58.73 14.52h34.54c3.82 0 6.91 3.09 6.91 6.91 0 3.81-3.09 6.91-6.91 6.91H58.73c-3.82 0-6.91-3.09-6.91-6.91 0-3.82 3.09-6.91 6.91-6.91z" fill="#f1f3f4"/><path d="M0 0v121.63C0 127.35 4.64 132 10.37 132h131.27c5.72 0 10.37-4.64 10.37-10.37L152 0Zm58.73 14.52h34.54c3.82 0 6.91 3.09 6.91 6.91 0 3.81-3.09 6.91-6.91 6.91H58.73c-3.82 0-6.91-3.09-6.91-6.91 0-3.82 3.09-6.91 6.91-6.91z" fill="#f1f3f4"/><path d="M0 0v66.35h152V0Zm58.73 14.52h34.54c3.82 0 6.91 3.09 6.91 6.91 0 3.81-3.09 6.91-6.91 6.91H58.73c-3.82 0-6.91-3.09-6.91-6.91 0-3.82 3.09-6.91 6.91-6.91z" fill="#e8eaed"/><path style="fill:url(#d)" d="M76 55.99c-24.29 0-45.49 13.19-56.84 32.81l9.05 27.61L42.18 132h8.894L76 88.81l56.84-.01C121.49 69.18 100.29 55.99 76 55.99Z"/><path style="fill:url(#e)" d="M19.16 88.8C11.694 101.767 8.8 117.054 11.186 132h32.908z"/><path style="fill:url(#f)" d="M76 88.81 100.934 132h39.88c2.387-14.943-.508-30.225-7.974-43.19z"/><path style="fill:#f1f3f4" d="M76 88.81c-18.12 0-32.81 14.695-32.81 32.82 0 3.626.598 7.11 1.683 10.37h62.254a32.771 32.771 0 0 0 1.684-10.37c0-18.125-14.69-32.82-32.811-32.82Z"/><path d="M76 94.96a26.66 26.67 0 0 0-26.66 26.67A26.66 26.67 0 0 0 51.486 132h49.028a26.66 26.67 0 0 0 2.146-10.37A26.66 26.67 0 0 0 76 94.96Z" fill="#1a73e8"/><path opacity=".1" fill="#bdc1c6" d="M0 66.35h152v.86H0zM0 65.48h152v.86H0z"/></svg>`,ft=`<svg viewBox="0 0 24 24" aria-hidden="true"><path fill="currentColor" clip-rule="evenodd" d="M12 2C6.477 2 2 6.463 2 11.97c0 4.404 2.865 8.14 6.839 9.458.5.092.682-.216.682-.48 0-.236-.008-.864-.013-1.695-2.782.602-3.369-1.337-3.369-1.337-.454-1.151-1.11-1.458-1.11-1.458-.908-.618.069-.606.069-.606 1.003.07 1.531 1.027 1.531 1.027.892 1.524 2.341 1.084 2.91.828.092-.643.35-1.083.636-1.332-2.22-.251-4.555-1.107-4.555-4.927 0-1.088.39-1.979 1.029-2.675-.103-.252-.446-1.266.098-2.638 0 0 .84-.268 2.75 1.022A9.607 9.607 0 0 1 12 6.82c.85.004 1.705.114 2.504.336 1.909-1.29 2.747-1.022 2.747-1.022.546 1.372.202 2.386.1 2.638.64.696 1.028 1.587 1.028 2.675 0 3.83-2.339 4.673-4.566 4.92.359.307.678.915.678 1.846 0 1.332-.012 2.407-.012 2.734 0 .267.18.577.688.48 3.97-1.32 6.833-5.054 6.833-9.458C22 6.463 17.522 2 12 2Z"></path></svg>`,mt=`<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l7.5-7.5 7.5 7.5m-15 6l7.5-7.5 7.5 7.5" /></svg>`,ut=`<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" d="M13.5 16.875h3.375m0 0h3.375m-3.375 0V13.5m0 3.375v3.375M6 10.5h2.25a2.25 2.25 0 002.25-2.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v2.25A2.25 2.25 0 006 10.5zm0 9.75h2.25A2.25 2.25 0 0010.5 18v-2.25a2.25 2.25 0 00-2.25-2.25H6a2.25 2.25 0 00-2.25 2.25V18A2.25 2.25 0 006 20.25zm9.75-9.75H18a2.25 2.25 0 002.25-2.25V6A2.25 2.25 0 0018 3.75h-2.25A2.25 2.25 0 0013.5 6v2.25a2.25 2.25 0 002.25 2.25z" /></svg>`,gt=`<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" d="M12 3v2.25m6.364.386l-1.591 1.591M21 12h-2.25m-.386 6.364l-1.591-1.591M12 18.75V21m-4.773-4.227l-1.591 1.591M5.25 12H3m4.227-4.773L5.636 5.636M15.75 12a3.75 3.75 0 11-7.5 0 3.75 3.75 0 017.5 0z" /></svg>`,bt=`<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" d="M21.752 15.002A9.718 9.718 0 0118 15.75c-5.385 0-9.75-4.365-9.75-9.75 0-1.33.266-2.597.748-3.752A9.753 9.753 0 003 11.25C3 16.635 7.365 21 12.75 21a9.753 9.753 0 009.002-5.998z" /></svg>`});var he={};var ht=y(()=>{"use strict";O();H();$("#Top .site-nav .tools > .top").addClass("v2p-hover-btn");{let o=$("#Rightbar .light-toggle").addClass("v2p-color-mode-toggle"),t=o.find("> img");t.prop("alt")==="Light"&&(o.prop("title","\u4F7F\u7528\u6DF1\u8272\u4E3B\u9898"),t.replaceWith(bt)),t.prop("alt")==="Dark"&&(o.prop("title","\u4F7F\u7528\u6D45\u8272\u4E3B\u9898"),t.replaceWith(gt))}{let o=$(`<div class="v2p-footer"><div class="v2p-footer-text">\u6269\u5C55\u81EA V2EX Polish </div><div class="v2p-footer-links"><a class="v2p-footer-link v2p-hover-btn" href="${"https://v2p.app"}" target="_blank">\u63D2\u4EF6\u4E3B\u9875</a><a class="v2p-footer-link v2p-hover-btn" href="${"https://github.com/coolpace/V2EX_Polish/discussions/1"}" target="_blank">\u95EE\u9898\u53CD\u9988</a></div><div class="v2p-footer-brand"><span><a href="https://chrome.google.com/webstore/detail/v2ex-polish/onnepejgdiojhiflfoemillegpgpabdm" target="_blank" title="Chrome \u5E94\u7528\u5546\u5E97" >${vt}</a></span><span><a href="https://github.com/coolpace/V2EX_Polish" target="_blank" title="GitHub \u4ED3\u5E93" >${ft}</a></span></div></div>`);$(`<div class="v2p-footer-logo">${po}</div>`).prependTo(o),$("#Bottom .content").append(o)}});function xt(o){return typeof o=="object"&&o!==null}function Ro(o,t){let n={};for(let e in o)xt(o[e])&&xt(t[e])?n[e]=Ro(o[e],t[e]):Reflect.has(t,e)?n[e]=t[e]:n[e]=o[e];for(let e in t)Reflect.has(o,e)||(n[e]=t[e]);return n}var yt=y(()=>{"use strict"});function wt(){let o=window.navigator.userAgent.toLowerCase(),t=/(macintosh|macintel|macppc|mac68k|macos)/i,n=/(win32|win64|windows|wince)/i,e=/(iphone|ipad|ipod)/i,r=null;return t.test(o)?r="macos":e.test(o)?r="ios":n.test(o)?r="windows":o.includes("android")?r="android":o.includes("linux")&&(r="linux"),r}function vo(o,{format:t="YMD"}={}){let n=new Date(o.toString().length===10?o*1e3:o),e=n.getFullYear().toString(),r=(n.getMonth()+1).toString().padStart(2,"0"),i=n.getDate().toString().padStart(2,"0"),c=`${e}-${r}-${i}`;if(t==="YMDHMS"){let a=n.getHours().toString().padStart(2,"0"),l=n.getMinutes().toString().padStart(2,"0"),s=n.getSeconds().toString().padStart(2,"0");return`${c} ${a}:${l}:${s}`}return c}function U(){return typeof chrome<"u"&&typeof chrome.extension<"u"?"chrome":null}function fo(){return new Promise(o=>{if(U()!=="chrome")return o(void 0);chrome.storage.sync.get("api",n=>{o(n["api"]?.pat)})})}function R(){return new Promise(o=>{if(U()!=="chrome")return o(K);chrome.storage.sync.get("options",n=>{let e=n["options"];o(e?Ro(K,e):K)})})}function kt(){return new Promise(o=>{if(U()!=="chrome")return o(void 0);chrome.storage.sync.get(null,n=>{n["options"]?o(n):o({...n,["options"]:K})})})}function mo(o){return o.replace(/[<>&"'']/g,t=>{switch(t){case"<":return"<";case">":return">";case"&":return"&";case'"':return""";case"'":return"'";default:return t}})}var P=y(()=>{"use strict";O();yt()});function _(o){let{children:t,className:n="",type:e="button",tag:r="button"}=o,i=$(`<${r} class="normal button ${n}">${t}</${r}>`);return r==="button"&&i.prop("type",e),i}var G=y(()=>{"use strict"});function uo(o){let{root:t,title:n,onOpen:e,onClose:r,onMount:i}=o,c=$('<div class="v2p-model-mask">'),a=$('<div class="v2p-model-content">'),l=_({children:"\u5173\u95ED<kbd>Esc</kbd>",className:"v2p-model-close-btn"}),s=$(`<div class="v2p-model-title">${n??""}</div>`),d=$('<div class="v2p-model-actions">').append(l),p=$('<div class="v2p-model-header">').append(s,d),v=$('<div class="v2p-model-main">').append(p,a).on("click",w=>w.stopPropagation()),m=c.append(v).hide(),f={$mask:c,$main:v,$container:m,$title:s,$actions:d,$content:a},b=!1,u=()=>{h()},g=w=>{w.key==="Escape"&&h()},h=()=>{c.off("click",u),$(document).off("keydown",g),b=!1,m.fadeOut("fast"),document.body.classList.remove("v2p-modal-open"),r?.(f)},x=()=>{setTimeout(()=>{b||(c.on("click",u),$(document).on("keydown",g),b=!0)}),m.fadeIn("fast"),document.body.classList.add("v2p-modal-open"),e?.(f)};return l.on("click",h),i?.(f),t&&t.append(m),{...f,open:x,close:h}}var Eo=y(()=>{"use strict";G()});async function ye(o,t){return(await fetch(o,t)).json()}function Mt(o,t){return ye(`${xe}/members/show.json?username=${o}`,t)}async function Tt(o,t){let n=await fo(),e=await fetch(o,{...t,headers:{Authorization:n?`Bearer ${n}`:"",...t?.headers}}),r=e.headers.get("X-Rate-Limit-Limit"),i=e.headers.get("X-Rate-Limit-Reset"),c=e.headers.get("X-Rate-Limit-Remaining");chrome.storage.sync.get("api",l=>{let s={pat:l["api"]?.pat,limit:r?Number(r):void 0,reset:i?Number(i):void 0,remaining:c?Number(c):void 0};chrome.storage.sync.set({["api"]:s})});let a=await e.json();if(typeof a.success=="boolean"&&!a.success)throw new Error(a.message,{cause:a});return a}function _t(o,t){return Tt(`${Ct}/topics/${o}`,{method:"GET",...t})}function At(o,t){return Tt(`${Ct}/topics/${o}/replies`,{method:"GET",...t})}async function Rt(o){let t=new FormData;t.append("image",o);let n=Math.floor(Math.random()*Ao.length),e=Ao[n],r=await fetch("https://api.imgur.com/3/upload",{method:"POST",headers:{Authorization:`Client-ID ${e}`},body:t});if(r.ok){let i=await r.json();if(i.success)return i.data.link}throw new Error("\u4E0A\u4F20\u5931\u8D25")}var $t,xe,Ct,wn,go=y(()=>{"use strict";O();P();$t=window.location.origin.includes("v2ex.com")?window.location.origin:"https://www.v2ex.com",xe=`${$t}/api`,Ct=`${$t}/api/v2`;wn=`${et}_settings`});var zt,Et,St,So,j,z,to,T,$n,C,L,D=y(()=>{"use strict";zt=$('#Top .tools > a[href^="/member"]').text(),Et=$('#Main > .box > .header > small > a[href^="/member"]').text(),St=$("#Main #Tabs ~ .cell.item, #Main #TopicsNode > .cell, #Main .cell.item:has(.item_title > .topic-link)"),So=$("#Main .box:has(.topic_content)"),j=$('#Main .box:has(.cell[id^="r_"])'),z=j.find('.cell[id^="r_"]'),to=z.find("> table > tbody > tr"),T=$("#reply-box"),$n=$("#Wrapper").hasClass("Night")?"dark":"light",C=document.querySelector("#reply_content"),L=to.map((o,t)=>{let n=z[o].id,e=$(t),r=e.find("> td:nth-child(3)"),i=e.find("> td:last-of-type > .fr").find("> .thank_area").hasClass("thanked"),c=r.find("> strong > a"),a=c.text(),l=c.prop("href"),s=e.find(".avatar").prop("src"),d=r.find("> .reply_content").text(),p=Number(r.find("span.small").text()),v=r.find("span.no").text(),m=Array.from(d.matchAll(/@([a-zA-Z0-9]+)/g)),f=m.length>0?m.map(([,g])=>g):void 0,b=Array.from(d.matchAll(/#(\d+)/g)),u=b.length>0?b.map(([,g])=>g):void 0;return{id:n,memberName:a,memberLink:l,memberAvatar:s,content:d,likes:p,floor:v,index:o,refMemberNames:f,refFloors:u,thanked:i}}).get()});function Pt(o){if("cause"in o){let t=o.cause;if("success"in t&&"message"in t)return typeof t.success=="boolean"&&!t.success&&typeof t.message=="string"}return!1}function F(){C instanceof HTMLTextAreaElement&&C.focus()}function eo(o){if(C instanceof HTMLTextAreaElement){let t=C.selectionStart,n=C.selectionEnd,e=C.value.substring(0,t),r=C.value.substring(n,C.value.length);C.value=`${e}${o}${r}`,F(),C.selectionStart=C.selectionEnd=t+o.length}}async function Po(){return new Promise(o=>{if(U()!=="chrome")return o(void 0);chrome.storage.sync.get("member-tag",n=>{let e=n["member-tag"];o(e)})})}async function Ot(o,t){if(U()!=="chrome")return;let e=await Po();if(t&&t.length>0){let r={...e,[o]:{tags:t}};await chrome.storage.sync.set({["member-tag"]:r})}else e&&Reflect.has(e,o)&&(delete e[o],await chrome.storage.sync.set({["member-tag"]:e}))}var no=y(()=>{"use strict";O();P();D()});async function Lt(){let o=await R(),t=await fo(),n=null,e=_({children:"\u8FDB\u5165\u4E3B\u9898",className:"special",tag:"a"});o.openInNewTab&&e.prop("target","_blank");let r=uo({root:$(document.body),onMount:({$actions:c})=>{c.prepend(e)},onClose:({$title:c,$content:a})=>{c.empty(),a.empty(),n?.abort()}}),i=new Map;St.each((c,a)=>{let l=$(a),s=l.find(".item_title");$('<button class="v2p-topic-preview-btn">\u9884\u89C8</button>').on("click",()=>{let d=l.find(".topic-link").attr("href"),v=d?.match(/\/(\d+)#/)?.at(1);if(v){r.open(),e.prop("href",d);let m=s.find(".topic-link").text(),f=$(`<a class="v2p-topic-preview-title-link" title="${m}">${m}</a>`);r.$title.empty().append(f),t?(async()=>{let b=i.get(v);if(!b||Date.now()-b.cacheTime>1e3*60*10)try{n=new AbortController,r.$content.empty().append(`<div class="v2p-model-loading"><div class="v2p-icon-loading">${dt}</div></div>`);let u=[_t(v,{signal:n.signal}),At(v)],[{result:g},{result:h}]=await Promise.all(u);f.prop("href",g.url),o.openInNewTab&&f.prop("target","_blank");let x={topic:g,topicReplies:h,cacheTime:Date.now()};i.set(v,x),b=x}catch(u){if(Pt(u)){let g=u.cause.message;(g==="Token expired"||g==="Invalid token")&&r.$content.empty().append(`<div>${u.cause.message}</div>`)}}if(b){let{topic:u,topicReplies:g}=b,h=$('<div class="v2p-topic-preview">'),x=$(`<div class="v2p-tp-info"><a class="v2p-tp-member" href="${u.member.url}"><img class="v2p-tp-avatar" src="${u.member.avatar}"><span>${u.member.username}</span></a><span>${vo(u.created,{format:"YMDHMS"})}</span><span>${u.replies} \u6761\u56DE\u590D</span></div>`);if(h.append(x),u.content_rendered?h.append(`<div class="v2p-topic-preview-content">${u.content_rendered}</div>`):h.append(`<div class="v2p-empty-content"><div class="v2p-text-emoji">\xAF\\_(\u30C4)_/\xAF</div><p>\u8BE5\u4E3B\u9898\u6CA1\u6709\u6B63\u6587\u5185\u5BB9</p></div>`),g.length>0){let w=$("<div>"),k=u.member.username;g.forEach(A=>{w.append(`<div class="v2p-topic-reply"><div class="v2p-topic-reply-member"><a href="${A.member.url}"><img class="v2p-topic-reply-avatar" src="${A.member.avatar}"><span>${A.member.username}</span><span style="display: ${k===A.member.username?"unset":"none"};"><span class="badge op mini">OP</span></span></a>\uFF1A </div><div class="v2p-topic-reply-content">${mo(A.content)}</div></div>`)}),$('<div class="v2p-topic-reply-box">').append(w.html()).append('<div class="v2p-more-reply-tip">\u5728\u4E3B\u9898\u5185\u67E5\u770B\u5B8C\u6574\u8BC4\u8BBA...</div>').appendTo(h)}r.$content.empty().append(h)}})():r.$content.empty().append(`<div class="v2p-no-pat"><div class="v2p-no-pat-title">\u60A8\u9700\u8981\u5148\u8BBE\u7F6E PAT \u624D\u80FD\u83B7\u53D6\u9884\u89C8\u5185\u5BB9\u3002</div><div class="v2p-no-pat-desc">\u8BF7\u524D\u5F80 <span class="v2p-no-pat-block"><span class="v2p-icon-logo">${po}</span><span style="margin: 0 5px;">></span> \u8BBE\u7F6E</span> \u8FDB\u884C\u8BBE\u7F6E\u3002</div></div>`)}}).appendTo(s)})}var Dt=y(()=>{"use strict";G();Eo();O();H();go();P();D();no()});var we={};var Bt=y(()=>{"use strict";P();Dt();(async()=>($("#Main .tab").addClass("v2p-hover-btn"),(await R()).openInNewTab&&$('#Main .topic-link, .item_hot_topic_title > a, .item_node, a[href="/write"]').prop("target","_blank"),await Lt()))()});function xo(o){return o.split("-")[1]}function Ht(o){return o==="y"?"height":"width"}function V(o){return o.split("-")[0]}function yo(o){return["top","bottom"].includes(V(o))?"x":"y"}function It(o,t,n){let{reference:e,floating:r}=o,i=e.x+e.width/2-r.width/2,c=e.y+e.height/2-r.height/2,a=yo(t),l=Ht(a),s=e[l]/2-r[l]/2,d=V(t),p=a==="x",v;switch(d){case"top":v={x:i,y:e.y-r.height};break;case"bottom":v={x:i,y:e.y+e.height};break;case"right":v={x:e.x+e.width,y:c};break;case"left":v={x:e.x-r.width,y:c};break;default:v={x:e.x,y:e.y}}switch(xo(t)){case"start":v[a]-=s*(n&&p?-1:1);break;case"end":v[a]+=s*(n&&p?-1:1);break}return v}function ke(o){return{top:0,right:0,bottom:0,left:0,...o}}function $e(o){return typeof o!="number"?ke(o):{top:o,right:o,bottom:o,left:o}}function bo(o){return{...o,top:o.y,left:o.x,right:o.x+o.width,bottom:o.y+o.height}}async function Lo(o,t){var n;t===void 0&&(t={});let{x:e,y:r,platform:i,rects:c,elements:a,strategy:l}=o,{boundary:s="clippingAncestors",rootBoundary:d="viewport",elementContext:p="floating",altBoundary:v=!1,padding:m=0}=t,f=$e(m),u=a[v?p==="floating"?"reference":"floating":p],g=bo(await i.getClippingRect({element:(n=await(i.isElement==null?void 0:i.isElement(u)))==null||n?u:u.contextElement||await(i.getDocumentElement==null?void 0:i.getDocumentElement(a.floating)),boundary:s,rootBoundary:d,strategy:l})),h=p==="floating"?{...c.floating,x:e,y:r}:c.reference,x=await(i.getOffsetParent==null?void 0:i.getOffsetParent(a.floating)),w=await(i.isElement==null?void 0:i.isElement(x))?await(i.getScale==null?void 0:i.getScale(x))||{x:1,y:1}:{x:1,y:1},k=bo(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({rect:h,offsetParent:x,strategy:l}):h);return{top:(g.top-k.top+f.top)/w.y,bottom:(k.bottom-g.bottom+f.bottom)/w.y,left:(g.left-k.left+f.left)/w.x,right:(k.right-g.right+f.right)/w.x}}function Nt(o,t,n){return Me(o,Ce(t,n))}function ho(o){return o.replace(/left|right|bottom|top/g,t=>Te[t])}function _e(o,t,n){n===void 0&&(n=!1);let e=xo(o),r=yo(o),i=Ht(r),c=r==="x"?e===(n?"end":"start")?"right":"left":e==="start"?"bottom":"top";return t.reference[i]>t.floating[i]&&(c=ho(c)),{main:c,cross:ho(c)}}function Oo(o){return o.replace(/start|end/g,t=>Ae[t])}function Re(o){let t=ho(o);return[Oo(o),t,Oo(t)]}function ze(o,t,n){let e=["left","right"],r=["right","left"],i=["top","bottom"],c=["bottom","top"];switch(o){case"top":case"bottom":return n?t?r:e:t?e:r;case"left":case"right":return t?i:c;default:return[]}}function Ee(o,t,n,e){let r=xo(o),i=ze(V(o),n==="start",e);return r&&(i=i.map(c=>c+"-"+r),t&&(i=i.concat(i.map(Oo)))),i}async function Se(o,t){let{placement:n,platform:e,elements:r}=o,i=await(e.isRTL==null?void 0:e.isRTL(r.floating)),c=V(n),a=xo(n),l=yo(n)==="x",s=["left","top"].includes(c)?-1:1,d=i&&l?-1:1,p=typeof t=="function"?t(o):t,{mainAxis:v,crossAxis:m,alignmentAxis:f}=typeof p=="number"?{mainAxis:p,crossAxis:0,alignmentAxis:null}:{mainAxis:0,crossAxis:0,alignmentAxis:null,...p};return a&&typeof f=="number"&&(m=a==="end"?f*-1:f),l?{x:m*d,y:v*s}:{x:v*s,y:m*d}}function Pe(o){return o==="x"?"y":"x"}var jt,Ce,Me,Te,Ae,Do,Bo,Io,No=y(()=>{jt=async(o,t,n)=>{let{placement:e="bottom",strategy:r="absolute",middleware:i=[],platform:c}=n,a=i.filter(Boolean),l=await(c.isRTL==null?void 0:c.isRTL(t)),s=await c.getElementRects({reference:o,floating:t,strategy:r}),{x:d,y:p}=It(s,e,l),v=e,m={},f=0;for(let b=0;b<a.length;b++){let{name:u,fn:g}=a[b],{x:h,y:x,data:w,reset:k}=await g({x:d,y:p,initialPlacement:e,placement:v,strategy:r,middlewareData:m,rects:s,platform:c,elements:{reference:o,floating:t}});if(d=h??d,p=x??p,m={...m,[u]:{...m[u],...w}},k&&f<=50){f++,typeof k=="object"&&(k.placement&&(v=k.placement),k.rects&&(s=k.rects===!0?await c.getElementRects({reference:o,floating:t,strategy:r}):k.rects),{x:d,y:p}=It(s,v,l)),b=-1;continue}}return{x:d,y:p,placement:v,strategy:r,middlewareData:m}};Ce=Math.min,Me=Math.max;Te={left:"right",right:"left",bottom:"top",top:"bottom"};Ae={start:"end",end:"start"};Do=function(o){return o===void 0&&(o={}),{name:"flip",options:o,async fn(t){var n;let{placement:e,middlewareData:r,rects:i,initialPlacement:c,platform:a,elements:l}=t,{mainAxis:s=!0,crossAxis:d=!0,fallbackPlacements:p,fallbackStrategy:v="bestFit",fallbackAxisSideDirection:m="none",flipAlignment:f=!0,...b}=o,u=V(e),g=V(c)===c,h=await(a.isRTL==null?void 0:a.isRTL(l.floating)),x=p||(g||!f?[ho(c)]:Re(c));!p&&m!=="none"&&x.push(...Ee(c,f,m,h));let w=[c,...x],k=await Lo(t,b),A=[],Y=((n=r.flip)==null?void 0:n.overflows)||[];if(s&&A.push(k[u]),d){let{main:W,cross:lo}=_e(e,i,h);A.push(k[W],k[lo])}if(Y=[...Y,{placement:e,overflows:A}],!A.every(W=>W<=0)){var Yo,Qo;let W=(((Yo=r.flip)==null?void 0:Yo.index)||0)+1,lo=w[W];if(lo)return{data:{index:W,overflows:Y},reset:{placement:lo}};let Q=(Qo=Y.filter(X=>X.overflows[0]<=0).sort((X,q)=>X.overflows[1]-q.overflows[1])[0])==null?void 0:Qo.placement;if(!Q)switch(v){case"bestFit":{var Zo;let X=(Zo=Y.map(q=>[q.placement,q.overflows.filter(Z=>Z>0).reduce((Z,me)=>Z+me,0)]).sort((q,Z)=>q[1]-Z[1])[0])==null?void 0:Zo[0];X&&(Q=X);break}case"initialPlacement":Q=c;break}if(e!==Q)return{reset:{placement:Q}}}return{}}}};Bo=function(o){return o===void 0&&(o=0),{name:"offset",options:o,async fn(t){let{x:n,y:e}=t,r=await Se(t,o);return{x:n+r.x,y:e+r.y,data:r}}}};Io=function(o){return o===void 0&&(o={}),{name:"shift",options:o,async fn(t){let{x:n,y:e,placement:r}=t,{mainAxis:i=!0,crossAxis:c=!1,limiter:a={fn:u=>{let{x:g,y:h}=u;return{x:g,y:h}}},...l}=o,s={x:n,y:e},d=await Lo(t,l),p=yo(V(r)),v=Pe(p),m=s[p],f=s[v];if(i){let u=p==="y"?"top":"left",g=p==="y"?"bottom":"right",h=m+d[u],x=m-d[g];m=Nt(h,m,x)}if(c){let u=v==="y"?"top":"left",g=v==="y"?"bottom":"right",h=f+d[u],x=f-d[g];f=Nt(h,f,x)}let b=a.fn({...t,[p]:m,[v]:f});return{...b,data:{x:b.x-n,y:b.y-e}}}}}});function M(o){var t;return((t=o.ownerDocument)==null?void 0:t.defaultView)||window}function E(o){return M(o).getComputedStyle(o)}function Ut(o){let t=E(o),n=parseFloat(t.width),e=parseFloat(t.height),r=o.offsetWidth,i=o.offsetHeight,c=ko(n)!==r||ko(e)!==i;return c&&(n=r,e=i),{width:n,height:e,fallback:c}}function B(o){return Jt(o)?(o.nodeName||"").toLowerCase():""}function Gt(){if(wo)return wo;let o=navigator.userAgentData;return o&&Array.isArray(o.brands)?(wo=o.brands.map(t=>t.brand+"/"+t.version).join(" "),wo):navigator.userAgent}function S(o){return o instanceof M(o).HTMLElement}function I(o){return o instanceof M(o).Element}function Jt(o){return o instanceof M(o).Node}function Vt(o){if(typeof ShadowRoot>"u")return!1;let t=M(o).ShadowRoot;return o instanceof t||o instanceof ShadowRoot}function $o(o){let{overflow:t,overflowX:n,overflowY:e,display:r}=E(o);return/auto|scroll|overlay|hidden|clip/.test(t+e+n)&&!["inline","contents"].includes(r)}function Oe(o){return["table","td","th"].includes(B(o))}function Ho(o){let t=/firefox/i.test(Gt()),n=E(o),e=n.backdropFilter||n.WebkitBackdropFilter;return n.transform!=="none"||n.perspective!=="none"||(e?e!=="none":!1)||t&&n.willChange==="filter"||t&&(n.filter?n.filter!=="none":!1)||["transform","perspective"].some(r=>n.willChange.includes(r))||["paint","layout","strict","content"].some(r=>{let i=n.contain;return i!=null?i.includes(r):!1})}function jo(){return/^((?!chrome|android).)*safari/i.test(Gt())}function Fo(o){return["html","body","#document"].includes(B(o))}function Yt(o){return I(o)?o:o.contextElement}function J(o){let t=Yt(o);if(!S(t))return Qt;let n=t.getBoundingClientRect(),{width:e,height:r,fallback:i}=Ut(t),c=(i?ko(n.width):n.width)/e,a=(i?ko(n.height):n.height)/r;return(!c||!Number.isFinite(c))&&(c=1),(!a||!Number.isFinite(a))&&(a=1),{x:c,y:a}}function io(o,t,n,e){var r,i;t===void 0&&(t=!1),n===void 0&&(n=!1);let c=o.getBoundingClientRect(),a=Yt(o),l=Qt;t&&(e?I(e)&&(l=J(e)):l=J(o));let s=a?M(a):window,d=jo()&&n,p=(c.left+(d&&((r=s.visualViewport)==null?void 0:r.offsetLeft)||0))/l.x,v=(c.top+(d&&((i=s.visualViewport)==null?void 0:i.offsetTop)||0))/l.y,m=c.width/l.x,f=c.height/l.y;if(a){let b=M(a),u=e&&I(e)?M(e):e,g=b.frameElement;for(;g&&e&&u!==b;){let h=J(g),x=g.getBoundingClientRect(),w=getComputedStyle(g);x.x+=(g.clientLeft+parseFloat(w.paddingLeft))*h.x,x.y+=(g.clientTop+parseFloat(w.paddingTop))*h.y,p*=h.x,v*=h.y,m*=h.x,f*=h.y,p+=x.x,v+=x.y,g=M(g).frameElement}}return{width:m,height:f,top:v,right:p+m,bottom:v+f,left:p,x:p,y:v}}function N(o){return((Jt(o)?o.ownerDocument:o.document)||window.document).documentElement}function Co(o){return I(o)?{scrollLeft:o.scrollLeft,scrollTop:o.scrollTop}:{scrollLeft:o.pageXOffset,scrollTop:o.pageYOffset}}function Le(o){let{rect:t,offsetParent:n,strategy:e}=o,r=S(n),i=N(n);if(n===i)return t;let c={scrollLeft:0,scrollTop:0},a={x:1,y:1},l={x:0,y:0};if((r||!r&&e!=="fixed")&&((B(n)!=="body"||$o(i))&&(c=Co(n)),S(n))){let s=io(n);a=J(n),l.x=s.x+n.clientLeft,l.y=s.y+n.clientTop}return{width:t.width*a.x,height:t.height*a.y,x:t.x*a.x-c.scrollLeft*a.x+l.x,y:t.y*a.y-c.scrollTop*a.y+l.y}}function Zt(o){return io(N(o)).left+Co(o).scrollLeft}function De(o){let t=N(o),n=Co(o),e=o.ownerDocument.body,r=ro(t.scrollWidth,t.clientWidth,e.scrollWidth,e.clientWidth),i=ro(t.scrollHeight,t.clientHeight,e.scrollHeight,e.clientHeight),c=-n.scrollLeft+Zt(o),a=-n.scrollTop;return E(e).direction==="rtl"&&(c+=ro(t.clientWidth,e.clientWidth)-r),{width:r,height:i,x:c,y:a}}function ao(o){if(B(o)==="html")return o;let t=o.assignedSlot||o.parentNode||Vt(o)&&o.host||N(o);return Vt(t)?t.host:t}function Kt(o){let t=ao(o);return Fo(t)?t.ownerDocument.body:S(t)&&$o(t)?t:Kt(t)}function oe(o,t){var n;t===void 0&&(t=[]);let e=Kt(o),r=e===((n=o.ownerDocument)==null?void 0:n.body),i=M(e);return r?t.concat(i,i.visualViewport||[],$o(e)?e:[]):t.concat(e,oe(e))}function Be(o,t){let n=M(o),e=N(o),r=n.visualViewport,i=e.clientWidth,c=e.clientHeight,a=0,l=0;if(r){i=r.width,c=r.height;let s=jo();(!s||s&&t==="fixed")&&(a=r.offsetLeft,l=r.offsetTop)}return{width:i,height:c,x:a,y:l}}function Ie(o,t){let n=io(o,!0,t==="fixed"),e=n.top+o.clientTop,r=n.left+o.clientLeft,i=S(o)?J(o):{x:1,y:1},c=o.clientWidth*i.x,a=o.clientHeight*i.y,l=r*i.x,s=e*i.y;return{width:c,height:a,x:l,y:s}}function Wt(o,t,n){let e;if(t==="viewport")e=Be(o,n);else if(t==="document")e=De(N(o));else if(I(t))e=Ie(t,n);else{let c={...t};if(jo()){var r,i;let a=M(o);c.x-=((r=a.visualViewport)==null?void 0:r.offsetLeft)||0,c.y-=((i=a.visualViewport)==null?void 0:i.offsetTop)||0}e=c}return bo(e)}function Ne(o,t){let n=t.get(o);if(n)return n;let e=oe(o).filter(a=>I(a)&&B(a)!=="body"),r=null,i=E(o).position==="fixed",c=i?ao(o):o;for(;I(c)&&!Fo(c);){let a=E(c),l=Ho(c);a.position==="fixed"?r=null:(i?!l&&!r:!l&&a.position==="static"&&!!r&&["absolute","fixed"].includes(r.position))?e=e.filter(p=>p!==c):r=a,c=ao(c)}return t.set(o,e),e}function He(o){let{element:t,boundary:n,rootBoundary:e,strategy:r}=o,c=[...n==="clippingAncestors"?Ne(t,this._c):[].concat(n),e],a=c[0],l=c.reduce((s,d)=>{let p=Wt(t,d,r);return s.top=ro(p.top,s.top),s.right=Ft(p.right,s.right),s.bottom=Ft(p.bottom,s.bottom),s.left=ro(p.left,s.left),s},Wt(t,a,r));return{width:l.right-l.left,height:l.bottom-l.top,x:l.left,y:l.top}}function je(o){return S(o)?Ut(o):o.getBoundingClientRect()}function Xt(o,t){return!S(o)||E(o).position==="fixed"?null:t?t(o):o.offsetParent}function Fe(o){let t=ao(o);for(;S(t)&&!Fo(t);){if(Ho(t))return t;t=ao(t)}return null}function qt(o,t){let n=M(o),e=Xt(o,t);for(;e&&Oe(e)&&E(e).position==="static";)e=Xt(e,t);return e&&(B(e)==="html"||B(e)==="body"&&E(e).position==="static"&&!Ho(e))?n:e||Fe(o)||n}function Ve(o,t,n){let e=S(t),r=N(t),i=io(o,!0,n==="fixed",t),c={scrollLeft:0,scrollTop:0},a={x:0,y:0};if(e||!e&&n!=="fixed")if((B(t)!=="body"||$o(r))&&(c=Co(t)),S(t)){let l=io(t,!0);a.x=l.x+t.clientLeft,a.y=l.y+t.clientTop}else r&&(a.x=Zt(r));return{x:i.left+c.scrollLeft-a.x,y:i.top+c.scrollTop-a.y,width:i.width,height:i.height}}var Ft,ro,ko,wo,Qt,We,te,ee=y(()=>{No();No();Ft=Math.min,ro=Math.max,ko=Math.round;Qt={x:1,y:1};We={getClippingRect:He,convertOffsetParentRelativeRectToViewportRelativeRect:Le,isElement:I,getDimensions:je,getOffsetParent:qt,getDocumentElement:N,getScale:J,async getElementRects(o){let{reference:t,floating:n,strategy:e}=o,r=this.getOffsetParent||qt,i=this.getDimensions;return{reference:Ve(t,await r(n),e),floating:{x:0,y:0,...await i(n)}}},getClientRects:o=>Array.from(o.getClientRects()),isRTL:o=>E(o).direction==="rtl"},te=(o,t,n)=>{let e=new Map,r={platform:We,...n},i={...r.platform,_c:e};return jt(o,t,{...r,platform:i})}});function Mo(o){let{message:t,duration:n=3e3}=o;$(".v2p-toast").length>0&&$(".v2p-toast").remove();let e=$(`<div class="v2p-toast">${t}</div>`).hide();$(document.body).append(e),e.fadeIn("fast"),setTimeout(()=>{e.fadeOut("fast",()=>{e.remove()})},n)}var Vo=y(()=>{"use strict"});function co(o){let{root:t,trigger:n,content:e,options:r,onOpen:i,onClose:c}=o,a=$('<div class="v2p-popup-content">'),l=$('<div class="v2p-popup" tabindex="0">').css("visibility","hidden").append(a);t.append(l),e&&l.append(e);let s=l.get(0),d=f=>{$(f.target).closest(s).length===0&&p()},p=()=>{l.css("visibility","hidden"),$(document).off("click",d),c?.(),m.onClose?.()},v=f=>{if(!f)return;setTimeout(()=>{$(document).on("click",d)});let b=f.get(0);te(b,s,{placement:"bottom-start",middleware:[Bo({mainAxis:10,crossAxis:-4}),Do(),Io({padding:8})],...r}).then(({x:u,y:g})=>{Object.assign(s.style,{left:`${u}px`,top:`${g}px`}),l.css("visibility","visible")}).catch(()=>{p(),Mo({message:"Popup \u6E32\u67D3\u5931\u8D25"})}),i?.()},m={$content:a,open:f=>{v(f)},close:p};return n?.on("click",()=>{s.style.visibility!=="hidden"?p():v(n)}),m}var Wo=y(()=>{"use strict";ee();Vo()});function ne(o){let{$cellDom:t,popupControl:n,commentData:e,onSetTagsClick:r}=o,i=null,c=t.find(".avatar");c.on("click",()=>{n.close(),n.open(c);let a=$(`<div class="v2p-member-card"><div class="v2p-info"><div class="v2p-info-left"><div class="v2p-avatar-box"></div></div><div class="v2p-info-right"><div class="v2p-username v2p-loading"></div><div class="v2p-no v2p-loading"></div><div class="v2p-created-date v2p-loading"></div></div></div></div>`);n.$content.empty().append(a),(async()=>{let l=e.memberName;if(!Xo.has(l)){i=new AbortController,n.onClose=()=>{i?.abort()};try{let d=await Mt(l,{signal:i.signal});Xo.set(l,d)}catch(d){return d&&typeof d=="object"&&"name"in d&&d.name!=="AbortError"&&a.html("<span>\u83B7\u53D6\u7528\u6237\u4FE1\u606F\u5931\u8D25</span>"),null}}let s=Xo.get(l);if(s){let d=s.username;a.find(".v2p-avatar-box").removeClass("v2p-loading").append(`<img class="v2p-avatar" src="${s.avatar_large}">`);let p=await R(),v=$(`<a href="${s.url}">${d}</a>`);p.openInNewTab&&v.prop("target","_blank"),a.find(".v2p-username").removeClass("v2p-loading").append(v),a.find(".v2p-no").removeClass("v2p-loading").text(`V2EX \u7B2C ${s.id} \u53F7\u4F1A\u5458`),a.find(".v2p-created-date").removeClass("v2p-loading").text(`\u52A0\u5165\u4E8E ${vo(s.created)}`),s.bio&&s.bio.trim().length>0&&a.append(`<div class="v2p-bio">${s.bio}</div>`);let m=$('<div class="v2p-member-card-actions">');_({children:"\u6DFB\u52A0\u7528\u6237\u6807\u7B7E"}).on("click",()=>{r?.(),n.close()}).appendTo(m),a.append(m)}})()})}var Xo,re=y(()=>{"use strict";G();go();P();Xo=new Map});async function ie(){(await R()).openInNewTab&&So.find(".topic_content a[href]").prop("target","_blank").prop("rel","noopener noreferrer");{let o=So.find(".subtle > .topic_content"),t=o.text().length;t>=200&&o.each((n,e)=>{t>=400&&(e.style.fontSize="14px"),e.style.fontSize="14.5px"})}{let o=$(".topic_buttons .tb").addClass("v2p-tb v2p-hover-btn");o.eq(0).append(`<span class="v2p-tb-icon">${ct}</span>`),o.eq(1).append(`<span class="v2p-tb-icon">${lt}</span>`),o.eq(2).append(`<span class="v2p-tb-icon">${st}</span>`),o.eq(3).append(`<span class="v2p-tb-icon">${pt}</span>`)}}function qo(o){if(o.find(".v2p-reply-content").length>0)return;let t=o.find(".reply_content");if((t.height()??0)+_o>=rt){let r={maxHeight:`${_o}px`,overflow:"hidden",paddingBottom:"0"},i=$('<div class="v2p-reply-content v2p-collapsed">').css(r),c=_({children:"\u5C55\u5F00\u56DE\u590D",className:"v2p-expand-btn"}),a=()=>{let l=i.hasClass("v2p-collapsed");i.toggleClass("v2p-collapsed").css(l?{maxHeight:"none",overflow:"auto",paddingBottom:"40px"}:r),c.html(l?"\u6536\u8D77\u56DE\u590D":"\u5C55\u5F00\u56DE\u590D")};c.on("click",()=>{a()}),i.append(t.clone()).replaceAll(t).append(c)}}function Uo(o,t){let n=$(`.v2p-tags-${o}`),e=t?.map(r=>r.name).join("\uFF0C");n.length>0?e?n.html(`<b>#</b> ${e}`):n.remove():e&&$(`<div class="v2p-reply-tags v2p-tags-${o}"><b>#</b> ${e}</div>`).on("click",()=>{Go(o)}).insertBefore(z.filter(`:has(strong > a[href="/member/${o}"])`).find("> table .reply_content"))}function Go(o){(async()=>{let t=await Po(),n=t&&Reflect.has(t,o)?t[o].tags?.map(r=>r.name).join("\uFF0C"):void 0,e=window.prompt(`\u26A0 \u7528\u6237\u6807\u7B7E\u662F\u5B9E\u9A8C\u6027\u7684\u529F\u80FD\uFF0C\u540E\u7EED\u7248\u672C\u53EF\u80FD\u4F1A\u8C03\u6574\uFF0C\u8BF7\u52FF\u8FC7\u4E8E\u4F9D\u8D56\u3002 \u8BBE\u7F6E\u7528\u6237\u6807\u7B7E\uFF0C\u591A\u4E2A\u6807\u7B7E\u4EE5\u9017\u53F7\uFF08\uFF0C\uFF09\u5206\u9694\u3002`,n);if(e!==null){let r=e.trim().length>0?e.split(/,|,/g).map(i=>({name:i})):void 0;await Ot(o,r),Uo(o,r)}})()}var Jo=y(()=>{"use strict";G();O();H();P();D();no()});function Xe(){let o=L.filter(({likes:r})=>r>0).sort((r,i)=>i.likes-r.likes),t=o.length,n=$(`<span class="v2p-tool v2p-hover-btn"><span class="v2p-tool-icon">${oo}</span>\u70ED\u95E8\u56DE\u590D</span>`);if($(".v2p-tools").prepend(n),t<=0){n.addClass("v2p-hover-btn-disabled").contents().last().replaceWith("\u6682\u65E0\u70ED\u95E8");return}let e=uo({root:j,title:`\u672C\u9875\u5171\u6709 ${o.length} \u6761\u70ED\u95E8\u56DE\u590D`,onMount:({$content:r})=>{let i=$("<div>");o.forEach(({index:c,refMemberNames:a})=>{let l=z.eq(c).clone();l.find(".v2p-controls > a:has(.v2p-control-reply)").remove(),l.find(".no").css("pointer-events","none");let s=a?.at(0);if(s){let d=L.findLast((p,v)=>v<c&&p.memberName===s);if(d){let p=$(`<div class="v2p-topic-reply-ref"><div class="v2p-topic-reply"><div class="v2p-topic-reply-member"><a href="${d.memberAvatar}"><img class="v2p-topic-reply-avatar" src="${d.memberAvatar}"><span>${d.memberName}</span></a>\uFF1A </div><div class="v2p-topic-reply-content">${mo(d.content)}</div></div></div>`);l.prepend(p)}}i.append(l)}),r.css({padding:"0 20px"}).append(i.html())},onOpen:({$container:r})=>{r.find('.cell[id^="r_"]').each((i,c)=>{qo($(c))})}});{let r=j.find(".cell:first-of-type > span.gray"),i=r.text(),a=`<span class="count-text">${i.substring(0,i.indexOf("\u56DE\u590D")+2)}</span><span class="v2p-dot">\xB7</span>${t} \u6761\u70ED\u95E8\u56DE\u590D`;n.on("click",()=>{e.open()}),r.empty().append(a)}}function qe(){to.find("> td:last-of-type > .fr").each((t,n)=>{let e=$(n),r=$('<span class="v2p-controls">'),i=$(`<span class="v2p-control v2p-control-thank">${oo}</span>`),c=e.find("> .thank_area");if(c.hasClass("thanked"))i.addClass("v2p-thanked"),r.append($("<a>").append(i));else{let d=c.find("> .thank"),p=d.eq(0).removeClass("thank"),v=d.eq(1).removeClass("thank");p.html(`<span class="v2p-control v2p-hover-btn v2p-control-hide">${at}</span>`),i.addClass("v2p-hover-btn"),v.empty().append(i),v.on("click",()=>{let m=e.closest('.cell[id^="r_"]'),f=m.find("> table .v2p-likes-box"),b=Number(f.text()),u=f.find(".v2p-icon-heart").clone();b>0?f.addClass("v2p-thanked").empty().append(u,` ${b+1}`):$(`<span class="small v2p-likes-box v2p-thanked" style="position:relative;top:-1px;"> <span class="v2p-icon-heart">${oo}</span>1 </span>`).insertAfter(m.find("> table .ago")),i.addClass("v2p-thanked"),p.hide(),v.off("click"),Mo({message:"\u2764\uFE0F \u5DF2\u611F\u8C22\u56DE\u590D"})}),r.append(p).append(v)}let l=e.find("a:last-of-type");l.find('> img[alt="Reply"]').replaceWith(`<span class="v2p-control v2p-hover-btn v2p-control-reply">${so}</span>`),r.append(l),c.remove();let s=e.find(".no").clone();e.empty().append(r,s)})}function Ue(){let o=wt(),t=_({children:`\u56DE\u590D<kbd>${o==="macos"?"Cmd":"Ctrl"}+Enter</kbd>`,type:"submit"}).replaceAll(T.find('input[type="submit"]')),n=$('<div class="v2p-emoji-group">'),e=$('<div class="v2p-emoji-list">'),r=$('<span class="v2p-emoji">'),i=nt.map(p=>{let v=n.clone();v.append(`<div class="v2p-emoji-title">${p.title}</div>`);let m=e.clone().append(p.list.map(f=>r.clone().text(f).on("click",()=>{eo(f)})));return v.append(m),v}),c=$('<div class="v2p-emoticons-box">').append(i),a=_({children:it}).insertAfter(t),l=$('<div class="v2p-emoji-container">').append(c).appendTo(T).on("click",()=>{F()}),s=p=>{p.key==="Escape"&&(p.preventDefault(),d.close())};a.on("click",()=>{F()});let d=co({root:T,trigger:a,content:l,options:{placement:"right-end"},onOpen:()=>{$(document.body).on("keydown",s)},onClose:()=>{$(document.body).off("keydown",s)}});T.find("#undock-button, #undock-button + a").addClass("v2p-hover-btn").css("padding","5px 4px")}async function ae(){let o=await kt();if(o){{let t=co({root:j}),n=new Set,e=o["member-tag"];z.each((r,i)=>{let c=L.at(r);if(c?.id!==i.id)return;let a=$(i),{memberName:l,thanked:s}=c;ne({$cellDom:a,popupControl:t,commentData:c,onSetTagsClick:()=>{Go(l)}}),l===zt&&a.find(".badges").append(`<div class="badge ${l===Et?"mod":"you"}">YOU</div>`);let d=a.find(".small.fade").addClass("v2p-likes-box");d.find('img[alt="\u2764\uFE0F"]').replaceWith(`<span class="v2p-icon-heart">${oo}</span>`),s&&d.addClass("v2p-thanked"),e&&Reflect.has(e,l)&&!n.has(l)&&(Uo(l,e[l].tags),n.add(l))}),qe(),Xe()}{let n=o["options"].nestedReply.display;z.each((e,r)=>{let i=$(r),c=L.at(e);qo(i);let a=c?.id===r.id?c:L.find(l=>l.id===r.id);if(a){let{refMemberNames:l,refFloors:s}=a;if(!l||l.length===0)return;for(let d of l)for(let p=e-1;p>=0;p--){let{memberName:v,floor:m}=L.at(p)||{};if(v===d){let f=s?.at(0);if(f&&f!==m){let b=L.slice(0,p).findIndex(u=>u.floor===f);if(b>=0){z.eq(b).append(r);return}}n==="indent"&&r.classList.add("v2p-indent"),z.eq(p).append(r);return}}}})}Ue()}}var ce=y(()=>{"use strict";G();Eo();Wo();Vo();O();H();P();D();no();re();Jo()});function le(){let o=j.find('> .cell:not([id^="r_"])');if(o.length<=1)return;let n=o.slice(1).addClass("v2p-paging").find(".super.button");n.eq(0).addClass("v2p-prev-btn"),n.eq(1).addClass("v2p-next-btn")}var se=y(()=>{"use strict";D()});function pe(){let o=$(`<div class="v2p-reply-tools-box v2p-hover-btn"><span class="v2p-reply-tools-icon">${ut}</span> \u5DE5\u5177\u7BB1 </div>`),t=$(`<div class="v2p-reply-tool-content"><div class="v2p-reply-tool v2p-reply-tool-encode">\u6587\u5B57\u8F6C Base64</div><div class="v2p-reply-tool v2p-reply-tool-img">\u4E0A\u4F20\u56FE\u7247</div></div>`),n=co({root:T,trigger:o,content:t});t.find(".v2p-reply-tool-encode").on("click",()=>{F(),n.close(),setTimeout(()=>{let a=window.prompt("\u8F93\u5165\u8981\u52A0\u5BC6\u7684\u5B57\u7B26\u4E32\uFF0C\u5B8C\u6210\u540E\u5C06\u586B\u5199\u5230\u56DE\u590D\u6846\u4E2D\uFF1A");if(a){let l=window.btoa(a);eo(l)}})});let e="\u9009\u62E9\u3001\u7C98\u8D34\u3001\u62D6\u653E\u4E0A\u4F20\u56FE\u7247\u3002",r=$(`<div class="v2p-reply-upload-bar">${e}</div>`),i=a=>{r.addClass("v2p-reply-upload-bar-disabled").text("\u6B63\u5728\u4E0A\u4F20\u56FE\u7247..."),Rt(a).then(l=>{eo(l)}).catch(()=>{window.alert("\u4E0A\u4F20\u56FE\u7247\u5931\u8D25")}).finally(()=>{r.removeClass("v2p-reply-upload-bar-disabled").text(e)})},c=()=>{F(),n.close();let a=document.createElement("input");a.style.display="none",a.type="file",a.accept="image/*",a.addEventListener("change",()=>{let l=a.files?.[0];l&&i(l)}),a.click()};t.find(".v2p-reply-tool-img").on("click",()=>{c()}),T.find("> .flex-row-end").prepend(o),document.addEventListener("paste",a=>{if(!(a instanceof ClipboardEvent)||!C?.matches(":focus"))return;let l=a.clipboardData?.items;if(!l)return;let s=Array.from(l).find(d=>d.type.includes("image"));if(s){let d=s.getAsFile();d&&i(d)}}),C?.addEventListener("drop",a=>{if(a.preventDefault(),!(a instanceof DragEvent))return;let l=a.dataTransfer?.files[0];l&&i(l)}),$("#reply_content").wrap('<div class="v2p-reply-wrap">').attr("placeholder","\u7559\u4E0B\u5BF9\u4ED6\u4EBA\u6709\u5E2E\u52A9\u7684\u56DE\u590D"),$(".flex-one-row:last-of-type > .gray").text(""),r.on("click",()=>{r.hasClass("v2p-reply-upload-bar-disabled")||c()}),$(".v2p-reply-wrap").append(r)}var de=y(()=>{"use strict";Wo();H();go();D();no()});var Ge={};var ve=y(()=>{"use strict";H();P();D();ce();Jo();se();de();(async()=>{(await R()).openInNewTab&&to.find("> td:nth-child(3) > strong > a").prop("target","_blank").prop("rel","noopener noreferrer");{let o=$(`<div class="cell v2p-tools"><span class="v2p-tool v2p-hover-btn v2p-tool-reply"><span class="v2p-tool-icon">${so}</span>\u56DE\u590D\u4E3B\u9898 </span><span class="v2p-tool v2p-hover-btn v2p-tool-scroll-top"><span class="v2p-tool-icon">${mt}</span>\u56DE\u5230\u9876\u90E8 </span></div>`);o.find(".v2p-tool-reply").on("click",()=>{T.find("#reply_content").trigger("focus")}),o.find(".v2p-tool-scroll-top").on("click",()=>{window.scrollTo({top:0,behavior:"smooth"})}),$('#Rightbar > .box:has("#member-activity")').addClass("v2p-tool-box").append(o)}if($(document).on("keydown",o=>{if(!o.isDefaultPrevented()&&o.key==="Escape"){let t=$("#reply_content");T.hasClass("reply-box-sticky")&&(T.removeClass("reply-box-sticky"),$("#undock-button").css("display","none")),t.trigger("blur")}}),await ie(),document.referrer!==""&&document.referrer.includes(document.location.pathname)){let t=new URL(document.location.href).searchParams.get("p");t&&t!=="1"&&document.querySelector(".topic_buttons")?.scrollIntoView({behavior:"smooth"})}await ae(),le(),pe()})()});var Ko=/^(https?|wss?|file|ftp|\*):\/\/(\*|\*\.[^*/]+|[^*/]+)\/.*$|^file:\/\/\/.*$|^resource:\/\/(\*|\*\.[^*/]+|[^*/]+)\/.*$|^about:/,ot=typeof navigator=="object"&&navigator.userAgent.includes("Firefox/"),ue=ot?/^(https?|wss?):[/][/][^/]+([/].*)?$/:/^https?:[/][/][^/]+([/].*)?$/,ge=/^(https?|file|ftp):[/]+/;function be(o){if(!Ko.test(o))throw new Error(o+" is an invalid pattern, it must match "+String(Ko));let[,t,n,e]=o.split(/(^[^:]+:[/][/])([^/]+)?/);return t=t.replace("*",ot?"(https?|wss?)":"https?").replace(/[/]/g,"[/]"),n=(n??"").replace(/^[*][.]/,"([^/]+.)*").replace(/^[*]$/,"[^/]+").replace(/[.]/g,"[.]").replace(/[*]$/g,"[^.]+"),e=e.replace(/[/]/g,"[/]").replace(/[.]/g,"[.]").replace(/[*]/g,".*"),"^"+t+n+"("+e+")?$"}function To(...o){return o.length===0?/$./:o.includes("<all_urls>")?ge:o.includes("*://*/*")?ue:new RegExp(o.map(t=>be(t)).join("|"))}var tt=`:root{--zidx-serach: 100;--zidx-tabs: 10;--zidx-tools-card: 10;--zidx-reply-box: 99;--zidx-model-header: 50;--zidx-model-mask: 999;--zidx-toast: 999;--zidx-tip: 10;--zidx-popup: 99;--zidx-expand-mask: 10;--zidx-expand-btn: 20}:root body{--v2p-color-main-50: #f7f9fb;--v2p-color-main-100: #f1f5f9;--v2p-color-main-200: #e2e8f0;--v2p-color-main-300: #cbd5e1;--v2p-color-main-350: #94a3b8cc;--v2p-color-main-400: #94a3b8;--v2p-color-main-500: #64748b;--v2p-color-main-600: #475569;--v2p-color-main-700: #334155;--v2p-color-main-800: #1e293b;--v2p-color-accent-50: #ecfdf5;--v2p-color-accent-100: #d1fae5;--v2p-color-accent-200: #a7f3d0;--v2p-color-accent-300: #6ee7b7;--v2p-color-accent-400: #34d399;--v2p-color-accent-500: #10b981;--v2p-color-accent-600: #059669;--v2p-color-orange-50: #fff7ed;--v2p-color-orange-100: #ffedd5;--v2p-color-orange-400: #fb923c;--v2p-color-background: #f2f3f5;--v2p-color-foreground: var(--v2p-color-main-800);--v2p-color-font-secondary: var(--v2p-color-main-400);--v2p-color-bg-content: #fff;--v2p-color-bg-footer: var(--v2p-color-bg-content);--v2p-color-bg-hover-btn: var(--v2p-color-main-200);--v2p-color-bg-subtle: rgb(236 253 245 / 90%);--v2p-color-bg-input: var(--v2p-color-main-50);--v2p-color-bg-search: var(--v2p-color-main-100);--v2p-color-bg-search-active: var(--v2p-color-main-200);--v2p-color-bg-widget: rgb(255 255 255 / 70%);--v2p-color-heart: #ef4444;--v2p-color-heart-fill: #fee2e2;--v2p-color-mask: rgb(0 0 0 / 25%);--v2p-color-divider: var(--v2p-color-main-200);--v2p-box-shadow: 0 3px 5px 0 rgb(0 0 0 / 4%);--v2p-widget-shadow: 0 9px 24px -3px rgb(0 0 0 / 6%), 0 4px 8px -1px rgb(0 0 0 /12%);--v2p-toast-shadow: 0 6px 16px 0 rgb(0 0 0 / 8%), 0 3px 6px -4px rgb(0 0 0 / 12%), 0 9px 28px 8px rgb(0 0 0 / 5%);--color-fade: var(--v2p-color-font-secondary);--color-gray: var(--v2p-color-font-secondary);--link-color: var(--v2p-color-main-800);--link-darker-color: var(--v2p-color-main-600);--link-hover-color: var(--v2p-color-main-800);--link-caution-color: var(--v2p-color-orange-400);--box-border-color: var(--v2p-color-main-200);--box-foreground-color: var(--v2p-color-main-800);--box-background-color: var(--v2p-color-bg-content);--box-background-alt-color: var(--v2p-color-main-100);--box-background-hover-color: var(--v2p-color-main-200);--button-background-color: var(--v2p-color-main-100);--button-background-hover-color: var(--v2p-color-main-200);--button-hover-color: var(--button-background-hover-color);--button-foreground-color: var(--v2p-color-main-500);--button-foreground-hover-color: var(--v2p-color-main-600);--button-border-color: var(--v2p-color-main-300);--button-border-hover-color: var(--v2p-color-main-400);color:var(--v2p-color-foreground);font-family:system-ui,sans-serif;background-color:var(--v2p-color-background)}:root body ::selection{color:var(--v2p-color-main-100);background-color:var(--v2p-color-main-700)}:root body img::selection{background-color:var(--v2p-color-main-500)}:root body:has(#Wrapper.Night){--v2p-color-main-50: #11182799;--v2p-color-main-100: #111827;--v2p-color-main-200: #374151;--v2p-color-main-300: #374151;--v2p-color-main-350: #6b7280cc;--v2p-color-main-400: #6b7280;--v2p-color-main-500: #9ca3af;--v2p-color-main-600: #9ca3af;--v2p-color-main-700: #d1d5db;--v2p-color-main-800: #e5e7eb;--v2p-color-main-900: #111827;--v2p-color-main-950: #030712;--v2p-color-accent-50: #064e3b;--v2p-color-accent-100: #065f46;--v2p-color-accent-200: #047857;--v2p-color-accent-300: #059669;--v2p-color-accent-400: #10b981;--v2p-color-accent-500: #34d399;--v2p-color-accent-600: #6ee7b7;--v2p-color-orange-50: #7c2d12;--v2p-color-orange-100: #9a3412;--v2p-color-orange-400: #fb923c;--v2p-color-background: var(--v2p-color-main-100);--v2p-color-foreground: var(--v2p-color-main-800);--v2p-color-font-secondary: var(--v2p-color-main-600);--v2p-color-bg-content: #1f2937;--v2p-color-bg-subtle: rgb(6 78 59 / 30%);--v2p-color-bg-search: var(--v2p-color-main-200);--v2p-color-bg-search-active: var(--v2p-color-main-200);--v2p-color-bg-widget: var(--v2p-color-bg-content);--v2p-color-heart: #b91c1c;--v2p-color-heart-fill: #fca5a5;--v2p-color-mask: rgb(0 0 0 / 70%);--v2p-toast-shadow: none;--link-color: var(--v2p-color-main-700);--link-hover-color: var(--v2p-color-main-800);--box-border-color: var(--v2p-color-main-350);--box-foreground-color: var(--v2p-color-main-800);--box-background-color: var(--v2p-color-bg-content);--box-background-alt-color: var(--v2p-color-main-100);--box-background-hover-color: var(--v2p-color-main-300);--button-background-color: var(--v2p-color-main-900);--button-background-hover-color: var(--v2p-color-main-950);--button-hover-color: var(--button-background-hover-color);--button-foreground-color: var(--v2p-color-main-500);--button-foreground-hover-color: var(--v2p-color-main-600);--button-border-color: var(--v2p-color-main-300);--button-border-hover-color: var(--v2p-color-main-400)}:root body:has(#Wrapper.Night) ::selection{color:currentColor;background-color:var(--v2p-color-orange-50)}:root body:has(#Wrapper.Night) img::selection{background-color:var(--v2p-color-orange-50)} :root{color-scheme:light}:root:has(#Wrapper.Night){color-scheme:dark}:root html,:root body{min-height:100vh}body{overflow:overlay;scrollbar-gutter:stable}body h1{font-weight:bold}body a{text-decoration:none;cursor:default}body a[href]{cursor:pointer}body a:hover{text-decoration:underline 1px;text-underline-offset:.5ex}body #Top{height:55px;background-color:var(--v2p-color-bg-content);border:none}body #Bottom{color:var(--v2p-color-font-secondary);background-color:var(--v2p-color-bg-footer);border:none}body #Wrapper{background-color:inherit;background-image:none}body #Wrapper.Night{background-color:inherit;background-image:none}body #Wrapper .content{display:flex;gap:25px}body #Leftbar{order:1;float:none}body #Main{flex:1;order:2;max-width:85vw;margin:0}body #Rightbar{order:3;float:none}body #search-container{height:30px;margin:0 30px;background-color:var(--v2p-color-bg-search);border:none;border-radius:6px}body #search-container::before{top:0;left:4px;background-size:14px 14px;opacity:.6;filter:none}body #search-container.active{background-color:var(--v2p-color-bg-search-active)}body #search-container #search-result{top:42px;z-index:var(--zidx-serach);box-shadow:0 0 15px 5px var(--box-background-hover-color)}body #search-container #search-result .search-item{color:var(--color-gray)}body .box{background-color:var(--v2p-color-bg-content);border:none;border-radius:10px;box-shadow:var(--v2p-box-shadow)}body .box .header>h1{font-weight:bold;font-size:22px}body .box .header .gray{color:var(--color-gray)}body .button{--button-hover-shadow: 0 1.8px 0 var(--button-border-color), 0 1.8px 0 var(--button-background-color)}body .button.normal,body .button.super{position:relative;display:inline-flex;gap:5px;align-items:center;height:28px;padding:0 12px;color:var(--button-foreground-color);font-weight:500;font-size:14px;font-family:inherit;line-height:28px;white-space:nowrap;text-shadow:none;background:var(--button-background-color);border:none;border-radius:6px;outline:none;box-shadow:0 1.8px 0 var(--box-background-hover-color),0 1.8px 0 var(--button-background-color);cursor:pointer;transition:color .25s,background-color .25s,box-shadow .25s;user-select:none}body .button.normal:hover:enabled,body .button.super:hover:enabled{color:var(--button-foreground-color);font-weight:500;text-shadow:none;background:var(--button-hover-color);border:none;box-shadow:var(--button-hover-shadow)}body .button.normal.hover_now,body .button.normal.disable_now,body .button.super.hover_now,body .button.super.disable_now{color:var(--button-foreground-color) !important;text-shadow:none !important;background:var(--button-background-color) !important;border:none !important;box-shadow:0 1.8px 0 var(--box-background-hover-color) !important,0 1.8px 0 var(--button-background-color) !important}body .button.normal.disable_now,body .button.super.disable_now{cursor:default;opacity:.5;pointer-events:none}body .button.normal kbd,body .button.super kbd{position:relative;right:-4px;padding:0 3px;font-size:90%;font-family:inherit;line-height:initial;border:1px solid var(--button-border-color);border-radius:4px}body .button.special{--button-hover-shadow: 0 1.8px 0 var(--v2p-color-accent-200), 0 1.8px 0 var(--v2p-color-accent-100);color:var(--v2p-color-accent-500);background:var(--v2p-color-accent-100);box-shadow:var(--button-hover-shadow)}body .button.special:hover,body .button.special:hover:enabled{color:var(--v2p-color-accent-600);background:var(--v2p-color-accent-100);border:none;box-shadow:var(--button-hover-shadow)}body .button a{color:inherit;text-decoration:none}body .badge{padding:2px 5px;font-weight:bold;border:1px solid var(--v2p-color-accent-400);user-select:none}body .badge:first-child{border:1px solid var(--v2p-color-accent-400);border-top-left-radius:4px;border-bottom-left-radius:4px}body .badge:last-child{border:1px solid var(--v2p-color-accent-400);border-top-right-radius:4px;border-bottom-right-radius:4px}body .badge.op{color:var(--v2p-color-accent-500);background-color:var(--v2p-color-accent-50)}body .badge.mod{color:var(--v2p-color-bg-content);background-color:var(--v2p-color-accent-400)}body .badge.you{color:var(--v2p-color-orange-400);background-color:var(--v2p-color-orange-50);border:1px solid var(--v2p-color-orange-400)}body .badge.mini{height:1.2em;padding:0 3px;font-weight:normal;font-size:12px;line-height:1}body a.node:is(:active,:link,:visited){padding:5px 6px;color:var(--v2p-color-font-secondary);font-size:13px;background-color:var(--v2p-color-main-100);border-radius:4px}body a.node:is(:active,:link,:visited):hover{color:var(--v2p-color-main-500);background-color:var(--v2p-color-main-200)}body .outdated{font-size:12px;border-color:var(--v2p-color-main-200);border-bottom:none}body .page_normal,body .page_current{user-select:none}body .page_normal:link,body .page_normal:visited,body .page_current:link,body .page_current:visited{padding:6px 9px;font-size:14px;border:none}body .page_normal:link,body .page_normal:visited{font-weight:500;background-color:var(--v2p-color-bg-content);box-shadow:0 2px 2px var(--box-background-hover-color);transition:transform .25s}body .page_normal:link:hover,body .page_normal:visited:hover{transform:scale(1.1) translateY(-2px)}body .page_current:link,body .page_current:visited{font-weight:bold;background-color:var(--box-background-hover-color);box-shadow:none}body .page_input{display:none}body .dock_area{background:var(--v2p-color-main-200)}body .member-activity-bar{background-color:var(--v2p-color-main-200)}body .member-activity-bar .member-activity-start{background-color:var(--v2p-color-accent-200)}body .member-activity-bar .member-activity-fourth{background-color:var(--v2p-color-accent-400)}body .member-activity-bar .member-activity-half{background-color:var(--v2p-color-accent-500)}body .member-activity-bar .member-activity-almost{background-color:var(--v2p-color-accent-600)}body .member-activity-bar .member-activity-done{background-color:var(--v2p-color-orange-400)}body .online{user-select:none}body #topic_supplement{height:unset;min-height:550px !important;max-height:800px !important;overflow:hidden;color:currentColor;font-size:15px;background-color:var(--v2p-color-bg-input);border:1px solid var(--button-border-color);border-radius:8px;transition:opacity .25s;resize:none;overflow-y:auto}body #topic_supplement::placeholder{color:var(--v2p-color-main-500);font-size:15px}body #topic_supplement:is(:focus,:focus-within){background-color:rgba(0,0,0,0);outline:none;box-shadow:0 0 0 1px var(--button-border-color)}body .item_hot_topic_title{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-height:1.4}body form textarea#topic_title{height:unset;min-height:75px !important;max-height:800px !important;overflow:hidden;color:currentColor;font-size:15px;background-color:var(--v2p-color-bg-input);border:1px solid var(--button-border-color);border-radius:8px;transition:opacity .25s;resize:none}body form textarea#topic_title::placeholder{color:var(--v2p-color-main-500);font-size:15px}body form textarea#topic_title:is(:focus,:focus-within){background-color:rgba(0,0,0,0);outline:none;box-shadow:0 0 0 1px var(--button-border-color)}body form #topic_title{height:unset;min-height:30px !important;max-height:800px !important;overflow:hidden;color:currentColor;font-size:15px;background-color:var(--v2p-color-bg-input);border:1px solid var(--button-border-color);border-radius:8px;transition:opacity .25s;resize:none}body form #topic_title::placeholder{color:var(--v2p-color-main-500);font-size:15px}body form #topic_title:is(:focus,:focus-within){background-color:rgba(0,0,0,0);outline:none;box-shadow:0 0 0 1px var(--button-border-color)}body form #topic_content{height:unset;min-height:120px !important;max-height:800px !important;overflow:hidden;color:currentColor;font-size:15px;background-color:var(--v2p-color-bg-input);border:1px solid var(--button-border-color);border-radius:8px;transition:opacity .25s;resize:none}body form #topic_content::placeholder{color:var(--v2p-color-main-500);font-size:15px}body form #topic_content:is(:focus,:focus-within){background-color:rgba(0,0,0,0);outline:none;box-shadow:0 0 0 1px var(--button-border-color)}body #syntax-selector .radio-group{padding:3px;background-color:var(--v2p-color-background)}body #syntax-selector .radio-group>input[type=radio]+label{font-size:13px;cursor:pointer}body .snow{color:var(--v2p-color-main-400)}body .orange-dot{background:var(--v2p-color-orange-400)}body form[action="/notes/new"] .inner.alt{background-color:var(--v2p-color-bg-input);border:1px solid var(--button-border-color)}body form[action="/notes/new"] .cell{background-color:rgba(0,0,0,0) !important}body a.btn_hero{border-color:var(--v2p-color-main-800)}body a.btn_hero:hover{background-color:var(--v2p-color-main-800)}body .cell_ops{background-color:rgba(0,0,0,0)}body :is(.topic_content,.reply_content,.v2p-topic-preview-content) a[href^=http]{text-decoration:underline 2px;text-underline-offset:.4ex;color:currentColor;background-color:var(--v2p-color-main-100)}body :is(.topic_content,.reply_content,.v2p-topic-preview-content) a[href^=http]:hover{background-color:var(--v2p-color-main-200)}body :is(.topic_content,.reply_content,.v2p-topic-preview-content) a[href*="v2ex.com/t"],body :is(.topic_content,.reply_content,.v2p-topic-preview-content) a[href^="/t"]{text-decoration:underline 2px;text-underline-offset:.4ex;color:var(--v2p-color-accent-500);background-color:var(--v2p-color-accent-50)}body :is(.topic_content,.reply_content,.v2p-topic-preview-content) a[href*="v2ex.com/t"]:hover,body :is(.topic_content,.reply_content,.v2p-topic-preview-content) a[href^="/t"]:hover{color:var(--v2p-color-accent-500);background-color:var(--v2p-color-accent-50)}.box .tag:link,.box .tag:visited{color:var(--v2p-color-font-secondary);font-size:12px;background-color:var(--v2p-color-main-100);border-radius:5px}.box .tag::before{color:var(--v2p-color-main-500)}.box .tag>li{opacity:.6}#Top .content{height:100%}#Top .site-nav{height:100%;padding:0}#Top .tools{display:flex;gap:8px 14px;align-items:center;justify-content:flex-end;font-weight:400;font-size:14px}#Top .tools .top{height:26px;margin-left:0;padding:0 6px;color:var(--v2p-color-main-500);line-height:26px;white-space:nowrap;border-radius:4px}#Top .tools .top:hover{color:var(--v2p-color-main-800)}#Top .tools .top:not(.v2p-hover-btn):hover{background-color:var(--v2p-color-main-100)}#Main>.box{padding:0 12px}#Main>.box .cell{padding:20px 10px;background-image:none !important}#Main .topic_buttons{display:flex;flex-wrap:wrap;align-items:center;padding:8px 0;column-gap:5px;background:none}#Main .topic_buttons .topic_stats{flex:1;order:99;float:none;margin-left:10px;padding:0 !important;font-size:12px;text-shadow:none}#Main .topic_buttons .topic_thanked{font-size:12px}#Main .topic_buttons a.tb:link{display:flex;flex-direction:row-reverse;align-items:center;padding:5px;white-space:nowrap;text-shadow:none;column-gap:5px;background:none;border-radius:4px}#Main .topic_buttons a.tb:link:not(.v2p-hover-btn){color:var(--v2p-color-font-secondary)}#Main .topic_buttons a.tb:link:hover:not(.v2p-hover-btn){color:currentcolor;background:var(--v2p-color-main-100)}#Main .subtle{background-color:var(--v2p-color-bg-subtle);border-left:3px solid var(--v2p-color-accent-200)}#Main .subtle .topic_content{font-size:15px}#Main .vote:link{color:var(--v2p-color-main-500);border-color:var(--v2p-color-main-300);border-radius:5px}#Main .vote:link:hover{box-shadow:0 2px 2px var(--v2p-color-main-200)}#Main .cell_tab_current{border-color:var(--v2p-color-main-800)}#Main .cell .topic-link{color:var(--v2p-color-main-800);text-decoration:none}#Main .cell .topic-link:visited{color:var(--v2p-color-font-secondary)}#Main .cell .topic_info{position:relative;display:flex;align-items:center;user-select:none;pointer-events:none}#Main .cell .topic_info::after{position:absolute;top:0;right:0;bottom:-6px;left:0;z-index:1;background-color:var(--v2p-color-bg-content);content:""}#Main .cell .topic_info .votes,#Main .cell .topic_info .node,#Main .cell .topic_info strong:first-of-type,#Main .cell .topic_info span:first-of-type{position:relative;z-index:2;pointer-events:auto}#Main .cell .topic_info a[href^="/member"]{color:var(--v2p-color-main-500);font-weight:500}#Main .cell .count_livid{display:inline-block;padding:5px 10px;font-weight:400;font-size:12px;white-space:nowrap;border-radius:5px;user-select:none;color:var(--v2p-color-main-500);background-color:var(--v2p-color-main-200)}#Main .cell .count_orange{display:inline-block;padding:5px 10px;font-weight:400;font-size:12px;white-space:nowrap;border-radius:5px;user-select:none;color:var(--v2p-color-main-100);font-weight:bold;background-color:var(--v2p-color-orange-400)}#Main .cell .item_title .topic-link{font-weight:bold}#Main .cell.item tr>td:nth-child(2){width:30px}#Main .box>.cell[id^=r]:not(:has(.cell[id^=r])) .reply_content{padding-bottom:0}#Main .cell[id^=r]{--bg-reply: var(--v2p-color-bg-content);background-color:var(--bg-reply)}#Main .cell[id^=r]:hover>table td:last-of-type .fr a{opacity:1}#Main .cell[id^=r]:hover>table~.cell[id^=r]{--bg-reply: var(--v2p-color-main-100);border-color:var(--v2p-color-main-300)}#Main .cell[id^=r]:hover>table~.cell[id^=r] .cell[id^=r]{--bg-reply: var(--v2p-color-main-100)}#Main .cell[id^=r]:hover>table~.cell[id^=r] .cell[id^=r].v2p-indent{border-color:var(--v2p-color-main-350)}#Main .cell[id^=r] .reply_content{padding-bottom:10px}#Main .cell[id^=r]>table:first-of-type td:first-of-type{width:40px}#Main .cell[id^=r]>table:first-of-type td:first-of-type .avatar{width:40px !important;height:40px !important;border-radius:5px;aspect-ratio:1}#Main .cell[id^=r]>table~.cell[id^=r]{--bg-reply: var(--v2p-color-main-50);position:relative;z-index:var(--zidx-expand-btn);padding:15px 0 0 15px;border:none;box-shadow:-3px 0 var(--v2p-color-main-200)}#Main .cell[id^=r]>table~.cell[id^=r] .cell[id^=r]{padding:0;box-shadow:none}#Main .cell[id^=r]>table~.cell[id^=r] .cell[id^=r].v2p-indent{padding-left:15px;border-left:1px solid var(--v2p-color-main-300)}#Main .cell[id^=r]>table~.cell[id^=r] tr td:first-of-type{width:25px}#Main .cell[id^=r]>table~.cell[id^=r] tr td:first-of-type .avatar{width:25px !important;height:25px !important;border-radius:4px}#Main .cell[id^=r]>table~.cell[id^=r] tr td:nth-child(3) strong a{font-size:13px;opacity:.75}#Main .cell[id^=r]>table~.cell[id^=r] .reply_content{padding-right:5px;font-size:15px}#Main .cell[id^=r]>table td:nth-of-type(2){width:15px}#Main .cell[id^=r]>table td:last-of-type a.dark{color:var(--v2p-color-main-600);text-decoration:none}#Main .cell[id^=r]>table td:last-of-type a.dark:hover{text-decoration:none}#Main .cell[id^=r]>table td:last-of-type .fr{position:relative;top:-3px;user-select:none}#Main .cell[id^=r]>table td:last-of-type .fr a{opacity:0}#Main .cell[id^=r]>table td:last-of-type .fr+.sep3{height:0}#Main .cell[id^=r]:last-of-type{border:none}#Main .cell[id^=r] .no{position:relative;top:-4px;padding:5px 10px;color:var(--v2p-color-main-350);font-size:12px;background-color:rgba(0,0,0,0);border-radius:5px;user-select:none}#Main #Tabs{position:sticky;top:0;z-index:var(--zidx-tabs);display:flex;flex-wrap:wrap;gap:6px 8px;align-items:center;background-color:var(--v2p-color-bg-content);user-select:none}#Main #Tabs .tab{margin:0}#Main #SecondaryTabs{padding:10px;background-color:var(--v2p-color-main-100);border-radius:5px}#Main .topic_content,#Main .reply_content{font-size:15.4px}#Main .topic_content a[href^="/member"],#Main .reply_content a[href^="/member"]{position:relative;bottom:1px;color:var(--v2p-color-main-500);font-size:13px;text-decoration:underline;text-underline-offset:.4ex}#Main .thank_area{font-size:12px}#Main .tab{background-color:rgba(0,0,0,0);user-select:none}#Main .tab:not(.v2p-hover-btn):hover{background-color:var(--v2p-color-main-100)}#Main .tab_current{color:var(--box-background-color);background-color:var(--box-foreground-color);user-select:none}#Main #reply-box.reply-box-sticky{bottom:20px;z-index:var(--zidx-reply-box);margin:0 -10px;padding:0 22px;overflow:visible;border:none;border-radius:10px;outline:2px solid var(--v2p-color-main-200)}#Main #reply-box .v2p-reply-wrap #reply_content{background-color:rgba(0,0,0,0);border:none}#Main #reply-box .v2p-reply-wrap #reply_content:focus{background-color:var(--v2p-color-bg-content);outline:none}#Main #reply-box .v2p-reply-wrap #reply_content::placeholder{color:var(--v2p-color-main-500);font-size:14px}#Main #reply-box .flex-one-row:last-of-type{flex-direction:row-reverse;gap:10px;justify-content:flex-start}#Main #reply-box .flex-one-row:last-of-type .gray{margin-right:auto}#Main #reply-box>.cell{font-size:12px}#Main #reply-box>.cell.flex-one-row{min-height:45px;padding:0 10px;border:none}#Main #reply-box>.cell.flex-row-end{padding:12px 10px;border:none}#Main #reply-box>.cell:has(form){padding-top:0}#Main #no-comments-yet{color:var(--color-gray);border-color:var(--color-gray)}#Main #notifications .cell[id^=n]:hover .node{opacity:1}#Main #notifications .cell[id^=n] .node{opacity:0}#Main #notifications .cell[id^=n] .payload{color:var(--v2p-color-main-800);background-color:var(--v2p-color-main-100)}#Rightbar .balance_area{display:flex;align-items:center}#Rightbar a.dark:is(:link,:active,:visited,:hover){color:var(--v2p-color-main-500)}#Rightbar a.dark:is(:link,:active,:visited,:hover):hover{color:var(--v2p-color-main-600)}#Bottom{position:sticky;top:100%}#Bottom a.dark{font-weight:400;font-size:13px}#Bottom a.dark:is(:link,:active,:visited,:hover){color:var(--v2p-color-main-500)} \uFEFFbody{position:relative}body.v2p-modal-open{overflow:hidden}body .button.v2p-prev-btn,body .button.v2p-next-btn{padding:0 15px}.v2p-hover-btn{position:relative;z-index:1;margin:0;white-space:nowrap;text-decoration:none;background:none;background-color:rgba(0,0,0,0);cursor:pointer;transition:color .2s;user-select:none}.v2p-hover-btn::before{position:absolute;top:0;right:-5px;bottom:0;left:-5px;z-index:-1;background-color:var(--v2p-color-bg-hover-btn);border-radius:5px;transform:scale(0.65);opacity:0;transition:background-color .2s,color .2s,transform .2s,opacity .2s;content:""}.v2p-hover-btn:hover{text-decoration:none}.v2p-hover-btn:hover::before{transform:scale(1);opacity:1}.v2p-hover-btn-disabled{opacity:.8;pointer-events:none}.v2p-icon-heart{display:inline-flex;width:16px;height:16px;color:var(--v2p-color-heart)}.v2p-icon-heart svg{fill:var(--v2p-color-heart-fill)}#Main .cell:hover .v2p-topic-preview-btn{visibility:visible}.v2p-tool-box{position:sticky;top:20px;z-index:var(--zidx-tools-card)}.v2p-tool-box>.cell{font-size:13px}.v2p-tool-box .v2p-tools{display:grid;grid-auto-rows:auto;grid-template-columns:repeat(3, 1fr);gap:8px 15px;align-items:center;justify-content:center;color:var(--v2p-color-main-600);font-size:12px}.v2p-tool{display:inline-flex;gap:0 5px;align-items:center;padding:3px 0}.v2p-tool .v2p-tool-icon{width:16px;height:16px}.v2p-topic-preview-btn{position:relative;top:-1px;margin-left:10px;color:var(--button-foreground-color);font-size:14px;background-color:var(--button-hover-color);border:none;border-radius:3px;outline:none;visibility:hidden;cursor:pointer}.v2p-topic-preview{padding:25px;line-height:1.4}.v2p-tp-info{display:inline-flex;gap:20px;align-items:center;margin-bottom:10px;padding:5px 10px;overflow:hidden;font-size:13px;background-color:var(--v2p-color-main-200);border-radius:5px}.v2p-tp-member{display:inline-flex;gap:5px;align-items:center;font-weight:bold}.v2p-tp-avatar{width:20px;height:20px;border-radius:3px}a.v2p-topic-preview-title-link:hover{text-decoration:underline 2px;text-underline-offset:.4ex}.v2p-dot{margin:0 8px;font-weight:800;font-size:20px;font-size:15px}.v2p-paging{background:none !important}.v2p-paging.cell{border-bottom:none}.v2p-model-mask{position:fixed;z-index:var(--zidx-model-mask);padding:60px;overflow:hidden;overflow-y:auto;background-color:var(--v2p-color-mask);inset:0}.v2p-popup{position:absolute;top:0;left:0;z-index:var(--zidx-popup);color:var(--v2p-color-main-600);font-size:14px;background:var(--v2p-color-bg-widget);border:1px solid var(--box-border-color);border-radius:8px;box-shadow:var(--v2p-widget-shadow);backdrop-filter:blur(16px)}.v2p-popup-content{width:max-content;overflow-y:auto}.v2p-toast{position:fixed;top:50px;left:50%;z-index:var(--zidx-toast);padding:10px 15px;color:var(--v2p-color-main-800);font-size:14px;background:var(--v2p-color-bg-widget);border:3px solid var(--box-border-color);border-radius:8px;box-shadow:var(--v2p-toast-shadow);transform:translateX(-50%);backdrop-filter:blur(16px)}.v2p-model-main{position:relative;box-sizing:border-box;width:800px;height:100%;margin:0 auto;overflow-x:hidden;overflow-y:auto;background-color:var(--v2p-color-bg-content);border-radius:10px}.v2p-model-header{position:sticky;top:0;right:0;left:0;z-index:var(--zidx-model-header);display:flex;gap:0 20px;align-items:center;padding:15px 20px 20px;background-color:var(--v2p-color-bg-content);border-bottom:1px solid var(--box-border-color)}.v2p-model-title{padding:2px 0;overflow:hidden;font-weight:bold;font-size:16px;white-space:nowrap;text-overflow:ellipsis}.v2p-model-actions{display:flex;gap:0 10px;align-items:center;margin-left:auto}.v2p-model-loading{display:flex;align-items:center;justify-content:center;padding:50px 0;color:currentcolor}.v2p-model-loading .v2p-icon-loading{position:relative;right:-13px;width:50px}.v2p-no-pat{padding:30px 10px;font-size:15px;text-align:center}.v2p-no-pat .v2p-no-pat-title{font-weight:bold;font-size:16px}.v2p-no-pat .v2p-no-pat-desc{display:flex;align-items:center;justify-content:center;margin-top:15px}.v2p-no-pat .v2p-no-pat-block{display:inline-flex;align-items:center;margin:0 5px;padding:2px 10px;background-color:var(--v2p-color-main-100);border-radius:2px}.v2p-no-pat .v2p-icon-logo{width:15px;height:15px}.v2p-likes-box{position:relative;top:3px;display:inline-flex;align-items:center;column-gap:5px;user-select:none}.v2p-likes-box.v2p-thanked{color:var(--v2p-color-heart);font-weight:bold;opacity:.8}.v2p-likes-box.v2p-thanked .v2p-icon-heart svg{fill:var(--v2p-color-heart)}@supports not selector(:has(*)){#Main .cell[id^=r]>table:hover .v2p-controls{opacity:1}}@supports selector(:has(*)){#Main .cell[id^=r]:not(:has(.cell:hover))>table:hover .v2p-controls{opacity:1}}.v2p-controls{display:inline-flex;align-items:center;margin-right:15px;font-size:12px;column-gap:15px;opacity:0}.v2p-controls>a{text-decoration:none}.v2p-control{position:relative;display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;padding:4px 0;color:var(--v2p-color-main-500)}.v2p-control:hover{color:var(--v2p-color-main-600)}.v2p-control.v2p-thanked{color:var(--v2p-color-heart);cursor:default}.v2p-control::after{z-index:var(--zidx-tip);width:max-content;min-width:30px;padding:2px 5px;overflow:hidden;color:var(--v2p-color-main-800);font-size:12px;white-space:nowrap;text-align:center;background-color:var(--v2p-color-bg-content);border-radius:4px;box-shadow:var(--v2p-widget-shadow);pointer-events:none;position:absolute;top:-8px;transform:translateY(-100%);opacity:0}.v2p-control:hover::after{opacity:1}.v2p-control.v2p-control-hide::after{content:"\u9690\u85CF\u56DE\u590D"}.v2p-control.v2p-control-thank::after{content:"\u611F\u8C22\u56DE\u590D"}.v2p-control.v2p-control-thank.v2p-thanked::after{content:"\u5DF2\u611F\u8C22"}.v2p-control.v2p-control-reply::after{content:"\u56DE\u590D"}.topic_buttons .v2p-tb.v2p-hover-btn{color:var(--v2p-color-main-400)}.topic_buttons .v2p-tb.v2p-hover-btn:hover{color:currentColor}.topic_buttons .v2p-tb.v2p-hover-btn::after{display:none}.v2p-tb-icon{width:15px;height:15px}.v2p-emoji-container{max-height:285px;padding:15px 18px;overflow-y:auto;color:var(--v2p-color-main-600)}.v2p-member-card{max-width:300px;max-height:285px;padding:12px;font-size:13px;text-align:left}.v2p-member-card .v2p-info{display:flex;gap:15px}.v2p-member-card .v2p-info-right{padding:2px 0}.v2p-member-card .v2p-avatar-box{width:73px;height:73px;overflow:hidden;background-color:var(--button-background-hover-color);border-radius:5px}.v2p-member-card .v2p-username{font-weight:bold;font-size:16px}.v2p-member-card .v2p-username.v2p-loading{width:65px;height:20px}.v2p-member-card .v2p-no{margin:5px 0}.v2p-member-card .v2p-no,.v2p-member-card .v2p-created-date{width:160px;height:16px}.v2p-member-card .v2p-loading{background-color:var(--button-background-hover-color);border-radius:6px}.v2p-member-card .v2p-bio{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-height:1.4;margin-top:10px}.v2p-member-card-actions{padding:10px 0 0}.v2p-reply-tags{display:inline-block;margin-bottom:2px;padding:0 3px;font-size:12px;background-color:var(--v2p-color-main-200);border-radius:3px;cursor:pointer}.v2p-emoticons-box{font-size:15px}.v2p-emoji-group~.v2p-emoji-group{margin-top:10px}.v2p-emoji-title{margin:0 0 10px;font-size:14px;text-align:left}.v2p-emoji-list{display:grid;grid-template-columns:repeat(8, 1fr);gap:6px;font-size:20px}.v2p-emoji{padding:2px;border-radius:4px;cursor:pointer}.v2p-emoji:hover{background-color:var(--box-background-hover-color)}.v2p-decode{position:relative;padding:2px 4px;color:var(--v2p-color-orange-400);font-size:13px;text-decoration:none;background-color:var(--v2p-color-orange-50);cursor:copy}.v2p-decode:hover{color:var(--v2p-color-orange-400);background-color:var(--v2p-color-orange-50)}.v2p-decode:hover::after{opacity:1}.v2p-decode::after{z-index:var(--zidx-tip);width:max-content;min-width:30px;padding:2px 5px;overflow:hidden;color:var(--v2p-color-main-800);font-size:12px;white-space:nowrap;text-align:center;background-color:var(--v2p-color-bg-content);border-radius:4px;box-shadow:var(--v2p-widget-shadow);pointer-events:none;position:absolute;top:-8px;left:50%;transform:translate(-50%, -100%);opacity:0;content:attr(data-title)}.v2p-reply-content{position:relative}.v2p-reply-content .v2p-expand-btn.normal.button{position:absolute;bottom:5px;left:50%;z-index:var(--zidx-expand-btn);font-weight:400;font-size:12px;transform:translateX(-50%)}.v2p-reply-content.v2p-collapsed::before{position:absolute;right:0;bottom:0;left:0;z-index:var(--zidx-expand-mask);height:130px;background:linear-gradient(to top, var(--bg-reply) 10px, transparent);content:"";pointer-events:none}.v2p-reply-content.v2p-collapsed .v2p-expand-btn.normal.button{bottom:10px;transform:translateX(-50%)}.cell[id^=r] .cell[id^=r] .v2p-reply-content .v2p-expand-btn.normal.button{color:var(--button-foreground-color);background:var(--button-hover-color);box-shadow:var(--button-hover-shadow)}.v2p-empty-content{display:flex;flex-direction:column;align-items:center;padding-top:20px;color:var(--v2p-color-font-secondary);font-size:14px}.v2p-empty-content .v2p-text-emoji{font-size:20px}.v2p-topic-reply-ref{margin:0 -10px 15px;padding:5px 10px;color:var(--v2p-color-main-500);font-size:13px;background-color:var(--v2p-color-main-100);border-radius:5px}.v2p-topic-reply-box{margin-top:50px;padding:30px 0;color:var(--v2p-color-main-500);font-size:14px;line-height:1.55;border-top:1px solid var(--v2p-color-divider)}.v2p-topic-reply~.v2p-topic-reply{margin-top:15px}.v2p-topic-reply-member{display:inline;color:var(--v2p-color-main-700);font-weight:bold}.v2p-topic-reply-avatar{position:relative;top:2px;width:15px;height:15px;margin-right:5px;object-fit:cover;overflow:hidden;background-color:var(--v2p-color-main-200);border-radius:2px}.v2p-topic-reply-content{display:inline}.v2p-more-reply-tip{margin-top:20px;color:var(--v2p-color-main-400);font-size:13px;text-align:center}.v2p-reply-wrap{height:unset;min-height:140px !important;max-height:800px !important;overflow:hidden;color:currentColor;font-size:15px;background-color:var(--v2p-color-bg-input);border:1px solid var(--button-border-color);border-radius:8px;transition:opacity .25s;resize:none}.v2p-reply-wrap::placeholder{color:var(--v2p-color-main-500);font-size:15px}.v2p-reply-wrap:is(:focus,:focus-within){background-color:rgba(0,0,0,0);outline:none;box-shadow:0 0 0 1px var(--button-border-color)}.v2p-reply-upload-bar{padding:6px 10px;color:var(--v2p-color-main-500);font-size:12px;background-color:var(--v2p-color-bg-input);border-top:1px dashed var(--v2p-color-main-300);cursor:pointer}.v2p-reply-upload-bar-disabled{pointer-events:none}.v2p-footer{position:relative;display:flex;align-items:center;justify-content:space-between;padding:35px 10px;color:var(--v2p-color-main-500);font-size:12px;border-top:1px solid var(--v2p-color-divider)}.v2p-footer a:hover{text-decoration:none}.v2p-footer-logo{--logo-size: 16px;position:absolute;top:calc(-1*(var(--logo-size) + 5px)/2);left:50%;display:inline-flex;box-sizing:border-box;padding:3px 25px;background-color:var(--v2p-color-bg-footer);transform:translateX(-50%)}.v2p-footer-logo svg{width:var(--logo-size)}.v2p-footer-text{display:inline-flex;align-items:center;justify-content:flex-start;width:240px;color:var(--v2p-color-font-secondary)}.v2p-footer-links{display:inline-flex;gap:0 8px;align-items:center}.v2p-footer-link{padding:4px 5px;color:currentColor}.v2p-footer-brand{display:inline-flex;gap:0 15px;align-items:center;justify-content:flex-end;width:240px}.v2p-footer-brand>span{width:20px}.v2p-color-mode-toggle{width:22px;height:22px;opacity:.8}.v2p-color-mode-toggle:hover{opacity:1}.v2p-reply-tools-box{position:relative;display:inline-flex;gap:0 5px;align-items:center;margin-right:auto;padding:2px 0;font-size:13px}.v2p-reply-tools-icon{display:inline-block;width:20px;height:20px}.v2p-reply-tool-content{padding:5px;border-radius:5px}.v2p-reply-tool{padding:5px 10px;white-space:nowrap;border-radius:4px;cursor:pointer}.v2p-reply-tool:hover{background-color:var(--v2p-color-main-200)} `;var Je=To("https://v2ex.com/*","https://www.v2ex.com/*"),Ye=To("https://v2ex.com/t/*","https://www.v2ex.com/t/*"),fe=window.location.href;(async()=>(Je.test(fe)&&($(`<style type='text/css'>${tt}</style>`).appendTo("head"),Promise.resolve().then(()=>ht()),Promise.resolve().then(()=>(Bt(),we))),Ye.test(fe)&&await Promise.resolve().then(()=>(ve(),Ge))))();