import{ORIGIN as K,esc as f,fill as Q,withUtm as X,slugOf as ue,assetSrc as je,identityPath as Ue,lockupHtml as fe,secondaryLinks as He,modelsTbodyHtml as Re,pairHtml as Be,leadersHtml as Fe,defaultPair as ge,compareUrl as De,compareIdentityHtml as qe,pickerItemHtml as ze,num as M,longDate as Pe}from"./render.js";const i=(e,t=document)=>t.querySelector(e),x=(e,t=document)=>[...t.querySelectorAll(e)],w=i("stealthmark-map"),Oe=K+"/data/v1/",s={snap:null,L:{},byId:new Map,models:[],assets:[],groupName:e=>e};async function oe(e,t){const a=new AbortController,l=setTimeout(()=>a.abort(),t);try{const o=await fetch(e,{credentials:"omit",signal:a.signal});if(!o.ok)throw new Error(String(o.status));return{data:await o.json(),date:o.headers.get("date")}}finally{clearTimeout(l)}}const se=e=>String(e??"").normalize("NFKD").toLowerCase().replace(/\p{M}/gu,"").replace(/[^\p{L}\p{N}]/gu,""),ne=e=>e.split(/[,\s]+/).map(se).filter(Boolean),We=()=>[...s.models].sort((e,t)=>(t.score??-1)-(e.score??-1)||e.name.localeCompare(t.name));function D(e=document){for(const t of x(".lname",e))t.scrollWidth>t.clientWidth+1?t.setAttribute("data-scroll",""):t.removeAttribute("data-scroll")}document.addEventListener("error",e=>{const t=e.target;t?.tagName==="IMG"&&t.closest(".mount")&&t.replaceWith(Object.assign(document.createElement("i"),{className:"dot"}))},!0);const q=i("[data-lb]"),g={type:"all",q:"",sort:"score",dir:"desc",open:!1},he=(e,t=ne(g.q))=>(g.type!=="open"||e.dataset.open==="1")&&(g.type!=="local"||e.dataset.local==="1")&&t.every(a=>se(e.dataset.search).includes(a)),be=8;function B(){const e=g.dir==="asc"?1:-1,t=ne(g.q);let a=0,l=0;for(const n of x("tbody",q)){const c=n.dataset.group==="partial",b=x("tr[data-model]",n).sort((u,r)=>{const m=parseFloat(u.dataset[g.sort]),d=parseFloat(r.dataset[g.sort]),k=Number.isNaN(m),y=Number.isNaN(d);return k!==y?k?1:-1:m!==d?(m-d)*e:u.dataset.name.localeCompare(r.dataset.name)||u.dataset.model.localeCompare(r.dataset.model)});let p=0;for(const u of b){n.append(u);const r=he(u,t);r&&p++,u.hidden=!r||(c?!g.open:!g.open&&p>be)}c?(l=p,i(".lb-sep",n).hidden=!g.open||!p,n.hidden=!b.length):a=p}i("[data-no-match]").hidden=!(!a&&!l);const o=i("[data-more]");o.hidden=!(a>be||l>0),o.textContent=g.open?o.dataset.fewer:o.dataset.all,o.setAttribute("aria-expanded",String(g.open)),i(".filter-search [data-clear]").hidden=!(g.q||g.type!=="all"),x("th[aria-sort]",q).forEach(n=>n.removeAttribute("aria-sort")),i(`.sort[data-sort="${g.sort}"]`)?.closest("th").setAttribute("aria-sort",g.dir==="asc"?"ascending":"descending"),G=x("tr[data-model]",q).filter(n=>!he(n)).map(n=>n.dataset.model),C&&G.includes(C)&&(C="",A=null),Me(),D(q)}x("input[name=type]").forEach(e=>e.addEventListener("change",()=>{g.type=e.value,B()})),i("#model-search").addEventListener("input",e=>{g.q=e.target.value,B()}),document.addEventListener("click",e=>{if(e.target.closest("[data-clear]")){g.q="",g.type="all",i("#model-search").value="",i("input[name=type][value=all]").checked=!0,B(),i("#model-search").focus();return}const t=e.target.closest(".sort");if(t){const a=t.dataset.sort;g.dir=g.sort===a&&g.dir==="desc"?"asc":"desc",g.sort=a,B();return}if(e.target.closest("[data-more]")){g.open=!g.open,B();return}});const T=i("[data-cmp]"),Z=i("#cmp-go"),N=i("#picker");let z=[T.dataset.a,T.dataset.b],ke=!1,O="a",re=null;function ye(e){const t=s.byId.get(z[e==="a"?0:1]);t&&(i(`[data-side=${e}]`,T).innerHTML=qe(t,s.L,s.assets),D(T))}function ie(){const[e,t]=z.map(o=>s.byId.get(o));if(!e||!t)return;ye("a"),ye("b");const a=(o,n)=>{i(`[data-cell=${o}]`,T).textContent=n};a("score-a",M(e.score,s.L)),a("gi-a",M(e.general,s.L)),a("vi-a",M(e.visual,s.L)),a("score-b",M(t.score,s.L)),a("gi-b",M(t.general,s.L)),a("vi-b",M(t.visual,s.L)),i(".cmp-grid",T).toggleAttribute("data-wide-score",[e.score,t.score].some(o=>String(M(o,s.L)).length>4));const l=e.id===t.id;i("[data-cmp-note]",T).hidden=!l,l?(Z.setAttribute("aria-disabled","true"),Z.removeAttribute("href")):(Z.removeAttribute("aria-disabled"),Z.href=De(ue(e.detailUrl),ue(t.detailUrl)))}function ve(){const e=ne(i("#pk-search").value),t=We().filter(a=>!e.length||e.every(l=>se([a.name,a.revealedName,...a.aliases||[]].join(" ")).includes(l)));i("#pk-list").innerHTML=t.map(a=>ze(a,O,s.L,s.assets)).join(""),i(".pk-empty",N).hidden=t.length>0,D(N)}document.addEventListener("click",e=>{const t=e.target.closest("[data-change]");if(t){O=t.closest("[data-side]").dataset.side,re=t,i("#picker-title").textContent=O==="a"?s.L.first||"First model":s.L.second||"Second model",i("#pk-search").value="",ve(),N.showModal(),i("#pk-search").focus();return}const a=e.target.closest("[data-select]");if(a){z[O==="a"?0:1]=a.dataset.select,ke=!0,N.close(),ie(),i(`[data-side=${O}] [data-change]`,T)?.focus();return}(e.target.closest("[data-pk-close]")||e.target===N)&&N.close()}),i("#pk-search").addEventListener("input",ve),N.addEventListener("close",()=>{re?.isConnected&&re.focus()});const Ve=i("[data-ci-nav]"),W=i(".ci-btn",Ve),j=i("#ci-menu");W.addEventListener("click",()=>{const e=j.hidden;j.hidden=!e,W.setAttribute("aria-expanded",String(e)),e&&i("a",j).focus()}),j.addEventListener("click",e=>{e.target.closest("a")&&(j.hidden=!0,W.setAttribute("aria-expanded","false"))}),document.addEventListener("keydown",e=>{e.key==="Escape"&&!j.hidden&&(j.hidden=!0,W.setAttribute("aria-expanded","false"),W.focus())});const xe=x(".chapter");let le=!1;function we(){le=!1;let e=null;for(const a of xe)a.getBoundingClientRect().top<=140&&(e=a);const t=e&&i("#evidence").getBoundingClientRect().bottom>140;for(const a of x("[data-ci]"))a.toggleAttribute("aria-current",!!t&&a.dataset.ci===e?.dataset.task);for(const a of x("[data-ci]"))a.hasAttribute("aria-current")?a.setAttribute("aria-current","true"):a.removeAttribute("aria-current");i("[data-ci-current]").textContent=(e?i(".chapter-name",e):i(".chapter-name",xe[0])).textContent}addEventListener("scroll",()=>{le||(le=!0,requestAnimationFrame(we))},{passive:!0});const Ge=e=>!e.dataset.publicFrom||Date.now()>=Date.parse(e.dataset.publicFrom);let V=null;function $e(){V&&(V.iframe.remove(),V.poster.hidden=!1,V=null)}function Ye(e){$e();const t=e.closest(".film"),a=e.parentElement,l=document.createElement("iframe");l.src=`https://www.youtube-nocookie.com/embed/${t.dataset.film}?autoplay=1&playsinline=1&rel=0`,l.title=i(".film-label",t).textContent,l.allow="autoplay; fullscreen; encrypted-media; picture-in-picture",l.allowFullscreen=!0,l.referrerPolicy="strict-origin-when-cross-origin",e.hidden=!0,a.append(l),V={iframe:l,poster:e},l.focus()}function P(){for(const e of x(".film-row")){const t=x(".film",e),a=t.filter(Ge);for(const n of a){const c=i("img",n);!c.getAttribute("src")&&c.dataset.src&&(c.loading="lazy",c.src=c.dataset.src)}const l=t.find(n=>n.dataset.current==="1"&&a.includes(n))||a[0];for(const n of t)n.dataset.current=n===l?"1":"",n.hidden=n!==l;e.hidden=!l;const o=i(".film-choices",e);if(o){const n=a.filter(p=>p!==l);o.hidden=!n.length,e.classList.toggle("has-choices",n.length>0);const c=i(".film-choice-list",o),b=n.map(p=>p.dataset.film).join(",");c.dataset.want!==b&&(c.dataset.want=b,c.innerHTML=n.map(p=>`
`).join(""))}}}document.addEventListener("click",e=>{const t=e.target.closest("[data-film-play]");if(t){e.preventDefault(),Ye(t);return}const a=e.target.closest("[data-film-pick]");if(a){$e();const l=a.closest(".film-row");x(".film",l).forEach(o=>{o.dataset.current=o.dataset.film===a.dataset.filmPick?"1":""}),P(),i(".film-poster",i('.film[data-current="1"]',l))?.focus()}}),setInterval(()=>{document.hidden||P()},6e4),document.addEventListener("visibilitychange",()=>{document.hidden||P()}),addEventListener("pageshow",P),document.addEventListener("click",async e=>{const t=e.target.closest("[data-copy]");if(!t)return;const a=document.getElementById(t.dataset.copy),l=i(".copy-status");let o=!1;try{await navigator.clipboard.writeText(a.textContent.trim()),o=!0}catch{try{const n=a.closest("details");n&&(n.open=!0);const c=document.createRange(),b=getSelection();c.selectNodeContents(a),b.removeAllRanges(),b.addRange(c),o=document.execCommand("copy")}catch{}}l.textContent=o?t.dataset.done:l.dataset.fail});const _e=` .map{border:0!important;border-radius:0!important;padding:0!important;background:transparent!important;box-shadow:none!important} .top{height:48px;padding:0!important;border:0!important;margin:0!important;display:flex;align-items:center} .top-actions,.title-stack h2,.title-stack .caption,.toolbar,.bottom,.estimate-cta,.share,.inspector,.chooser,.tooltip,.metric-tooltip,.overlay{display:none!important} .composition{display:grid!important;grid-template-columns:minmax(0,1fr);grid-template-rows:var(--plot-w,600px) auto;row-gap:16px;position:relative;align-items:start;margin:0!important} .plot{grid-column:1;grid-row:1;width:420px!important;height:420px!important;min-width:0;margin:0 0 0 calc((100% - var(--plot-w,600px)) / 2)!important;border:0!important;transform:scale(var(--plot-s,1.4286));transform-origin:0 0;background:transparent!important} .plot svg>rect:first-child{fill:transparent!important} .plot svg text,.plot-axis-label{font-size:calc(14px / var(--plot-s,1.4286))!important} .plot svg [data-map-point],.plot svg [data-map-label],.plot svg [data-map-connector],.plot svg .target-halo,.plot svg .reference-ring{visibility:hidden!important} .space-layer{position:absolute;top:0;left:calc((100% - var(--plot-w,600px)) / 2);width:var(--plot-w,600px);height:var(--plot-w,600px);z-index:3} .sl-svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible} .sl-hit{position:absolute;padding:0;margin:0;border:0;background:transparent;border-radius:50%;cursor:pointer;transform:translate(-50%,-50%)} .sl-hit:focus-visible{outline:2px solid #e8c27c;outline-offset:2px} .space-dock{grid-column:1;grid-row:2;width:100%;height:var(--dock-h,120px);overflow-y:auto;border-top:1px solid rgba(243,239,226,.16);padding:12px 0 0;color:#f3efe2;font-family:'DM Sans',sans-serif;scrollbar-width:thin;min-width:0} .dk-hint{font-size:14px;line-height:1.5;color:#a4b3a6;margin:0} .dk-model{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1.2fr) minmax(0,.8fr);gap:8px 24px;align-items:center} .dk-id{display:grid;gap:8px;min-width:0;justify-items:start} .dk-act{display:grid;gap:4px;justify-items:start;min-width:0} .dk-scores{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:0} .dk-scores div{min-width:0}.dk-scores dt{font-size:13px;color:#a4b3a6;margin:0} .dk-scores dd{margin:0;font-size:32px;line-height:1.1;font-weight:400;letter-spacing:-.03em;font-variant-numeric:tabular-nums} .dk-scores .gi dd{color:#8cc7b5}.dk-scores .vi dd{color:#efa175} .dk-tags{display:flex;flex-wrap:wrap;gap:6px} .dk-tag{display:inline-block;font-size:13px;padding:1px 10px;border:1px solid rgba(243,239,226,.16);border-radius:999px;color:#a4b3a6} .dk-links{display:flex;flex-wrap:wrap;gap:0 14px;font-size:13px;margin:0} .dk-links a{color:#a4b3a6;min-height:32px;display:inline-flex;align-items:center} .dk-links a.view{color:#e8c27c;font-weight:600;font-size:14px;min-height:36px} .dk-btn{min-height:44px;padding:0 14px;background:none;border:1px solid #a4b3a6;border-radius:4px;color:#f3efe2;cursor:pointer;font:600 14px 'DM Sans',sans-serif;justify-self:start} .dk-btn:hover{border-color:#e8c27c;color:#e8c27c} .dk-title{font-size:14px;font-weight:600;color:#e8c27c;margin:0 0 4px} .dk-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px} .dk-list li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 8px;align-items:center;border-top:1px solid rgba(243,239,226,.16);padding:6px 0} .dk-list .lockup,.dk-model .lockup{display:inline-flex;align-items:center;gap:10px;color:#f3efe2;text-decoration:none;min-width:0;max-width:100%} .dk-list .mount,.dk-model .mount{display:inline-grid;place-items:center;flex:none;width:32px;height:32px;background:#fcfcf5;border-radius:6px} .dk-list .mount img,.dk-model .mount img{width:72%;height:72%;object-fit:contain} .dk-list .mount .dot,.dk-model .mount .dot{width:8px;height:8px;border-radius:50%;background:#26392f} .dk-list .lname,.dk-model .lname{font-size:18px;font-weight:600;line-height:1.2;white-space:nowrap;overflow-x:auto;scrollbar-width:none;min-width:0} .dk-list .arrow,.dk-model .arrow{flex:none;color:#a4b3a6} .dk-list .sc{grid-column:1/-1;font-size:13px;color:#a4b3a6;font-variant-numeric:tabular-nums} .dk-list button{grid-row:1;grid-column:2;min-height:44px;min-width:64px;background:#e8c27c;color:#0b1813;border:0;border-radius:4px;font:600 14px 'DM Sans',sans-serif;cursor:pointer} .sr-only{position:absolute!important;left:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0} @media (max-width:759px){.dk-model{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:4px 12px}.dk-act{grid-column:1/-1;grid-auto-flow:column;justify-content:start;gap:12px}.dk-scores dd{font-size:24px}.dk-scores{gap:4px}.dk-list{grid-template-columns:1fr}.dk-list .sc{display:none}}`;let G=[],C="",A=null,Y="",Le="",$=null,I=null,S=null,de=!1;const L={hint:"Select a model to inspect its scores.",view:"View model",clear:"Clear selection",choose:"Choose a model at this position",close:"Close",select:"Select"};function Me(e=!1){if(!de)return;const t=[g.type,G.join(",")].join("|");if(t===Le&&!e)return;Le=t;const a={compare:"all",axes:{x:"general",y:"visual"},range:"full",routers:"all",presentation:"embed",theme:"dark",type:g.type};G.length&&(a.exclude=G),w.config=a}function ce(){const e=w.clientWidth||600,t=innerWidth<760,a=Math.max(240,Math.min(600,e));return w.style.setProperty("--plot-w",a+"px"),w.style.setProperty("--plot-s",String(a/420)),w.style.setProperty("--dock-h",t?"112px":"120px"),{plotW:a,phone:t}}const Ee=new Set,Ce=(e,t)=>`${f(Q(s.L.notScoredIn,{tasks:e.missing.join(", ")}))}
`:""}${a(e.detailUrl,f(L.view),"view")}${l}
${t?``:""}${f(L.choose)}
${f(L.hint)}
`}I.dataset.html!==e&&(I.dataset.html=e,I.innerHTML=e,D(I))}function Ke(){$.addEventListener("click",e=>{const t=e.target.closest(".sl-hit");if(e.stopPropagation(),!t)return;const a=ee.find(r=>r.m.id===t.dataset.hit);if(!a)return;const l=$.getBoundingClientRect(),o=e.detail===0,n=o?a.x:e.clientX-l.left,c=o?a.y:e.clientY-l.top,b=innerWidth<760?12:14,p=ee.filter(r=>Math.hypot(r.x-n,r.y-c)r.m.id),u=p.length>1?p:[a.m.id];Y="",u.length>1?A=u.sort((r,m)=>(s.byId.get(m).score??0)-(s.byId.get(r).score??0)):(C=u[0],A=null),F()});for(const e of["pointerdown","pointerup","pointermove","pointerleave","mousedown","mouseup","touchstart"])$.addEventListener(e,t=>t.stopPropagation());$.addEventListener("pointerover",e=>{const t=e.target.closest(".sl-hit");t&&H(t.dataset.hit)}),$.addEventListener("pointerout",e=>{e.target.closest(".sl-hit")&&H("")}),$.addEventListener("focusin",e=>{const t=e.target.closest(".sl-hit");t&&H(t.dataset.hit)}),$.addEventListener("focusout",()=>H(""))}function Qe(){I.addEventListener("click",e=>{if(e.target.closest("[data-dk-clear]")){C="",F();return}if(e.target.closest("[data-dk-close]")){A=null,F();return}const t=e.target.closest("[data-dk-pick]");t&&(C=t.dataset.dkPick,A=null,F())})}function Xe(){const e=w.shadowRoot;if(!e)return;let t=!1;const a=()=>{if(!i("style[data-space]",e)){const c=document.createElement("style");c.dataset.space="",c.textContent=_e,e.append(c)}if(S=i(".composition",e),!S)return!1;i(".space-layer",S)?$=i(".space-layer",S):($=document.createElement("div"),$.className="space-layer",S.append($),Ke()),i(".space-dock",S)?I=i(".space-dock",S):(I=document.createElement("aside"),I.className="space-dock",I.setAttribute("aria-live","polite"),S.append(I),Qe());const o=i(".brand-name",e);o?.firstChild?.nodeType===3&&o.firstChild.textContent!=="StealthMark "&&(o.firstChild.textContent="StealthMark ");const n=i(".plot > p.sr-only",e);if(n){const c=n.textContent.replace(/^\d+\s+models?\s+plotted\.\s*/,"");c!==n.textContent&&(n.textContent=c)}for(const c of x('a[href^="http"]',e))c.target!=="_blank"&&(c.target="_blank",c.rel="noopener noreferrer");return!0},l=()=>{a()&&F()};new MutationObserver(o=>{t||o.every(n=>n.target.nodeType===1&&n.target.closest?.(".space-layer, .space-dock"))||(t=!0,requestAnimationFrame(()=>{try{l()}finally{t=!1}}))}).observe(e,{childList:!0,subtree:!0}),new ResizeObserver(()=>{ce(),requestAnimationFrame(l)}).observe(w),w.addEventListener("keydown",o=>{o.key==="Escape"&&(C="",A=null,F())}),document.addEventListener("keydown",o=>{o.key==="Escape"&&(C||A)&&!N.open&&j.hidden&&w.contains(document.activeElement)&&(C="",A=null,F())}),ce(),l()}async function Ze(e){w.setAttribute("data-feed",e),await import("/shared/v1/stealthmark-map.js"),await customElements.whenDefined("stealthmark-map");for(let t=0;t<30&&!w.shadowRoot?.querySelector(".plot svg");t++)await new Promise(a=>setTimeout(a,400)),t===12&&e!=="/data/stealthmark-map.json"&&w.setAttribute("data-feed","/data/stealthmark-map.json");if(w.shadowRoot?.querySelector(".plot svg"))i(".map-note",w)?.remove(),de=!0,Xe(),Me(!0);else{const t=i(".map-note",w);t&&(t.textContent=`${s.L.mapFailed||"The map could not load."} ${s.L.mapFallback||"Use the results table below."}`)}}{const e=t=>{const a=t.target?.closest?.("a.lockup[data-model]");return a&&!a.closest("dialog")?a:null};document.addEventListener("pointerover",t=>{if(t.pointerType==="touch")return;const a=e(t);a&&s.byId.has(a.dataset.model)&&H(a.dataset.model)}),document.addEventListener("pointerout",t=>{t.pointerType!=="touch"&&e(t)&&!t.relatedTarget?.closest?.("a.lockup[data-model]")&&H("")}),document.addEventListener("focusin",t=>{const a=e(t);a&&s.byId.has(a.dataset.model)&&H(a.dataset.model)}),document.addEventListener("focusout",t=>{e(t)&&H("")})}function et(e,t){const a=new Set(["general","visual","overall"]),l=o=>o?.startsWith("/")?K+o:o;return{schemaVersion:e.schemaVersion,stealthmarkVersion:e.stealthmarkVersion,revision:e.revision,rendererRevision:e.rendererRevision,metrics:e.metrics.filter(o=>a.has(o.id)).map(o=>o.id==="overall"?{...o,name:s.L.scoreFull,shortName:s.L.scoreFull}:o),models:e.models.map(o=>{const n={...o,href:X(t.get(o.id)?.detailUrl||l(o.href)),galleryHref:X(l(o.galleryHref)),metrics:Object.fromEntries(Object.entries(o.metrics).filter(([c])=>a.has(c)))};for(const c of["position","total","company","defaultEdition","selectionRevision"])delete n[c];return n}),families:e.families.map(o=>({id:o.id,name:o.name,href:X(l(o.href)),members:o.members})),pages:e.pages,presets:[]}}const Te=(e,t,a)=>{const l=b=>Math.round(a(b)*10),o=Math.max(...e.map(l)),n=Math.min(...e.map(l)),c=b=>e.filter(p=>l(p)===b).sort((p,u)=>t(p)