PageSourceSearch

https://g33z3r.com/_next/static/chunks/0zxz28-xzv_e5.js?dpl=dpl_AGA62fYbbpWyAA6bNtJkBPTnsArq

js g33z3r.com collected 2026-09-25 08:17:15 UTC 33,345 bytes, 2 lines download raw bytes

1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,157018,e=>{"use strict";var t=e.i(271645),n=e.i(621724);function r(e){let t=new Uint8Array(e),n="";for(let e of t)n+=String.fromCharCode(e);return btoa(n).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function a(e){let t=e.replace(/-/g,"+").replace(/_/g,"/"),n=(4-t.length%4)%4,r=atob(t.padEnd(t.length+n,"=")),a=new ArrayBuffer(r.length),o=new Uint8Array(a);for(let e=0;e<r.length;e++)o[e]=r.charCodeAt(e);return a}function o(){return s.stubThis(globalThis?.PublicKeyCredential!==void 0&&"function"==typeof globalThis.PublicKeyCredential)}let s={stubThis:e=>e};function i(e){let{id:t}=e;return{...e,id:a(t),transports:e.transports}}function l(e){return"localhost"===e||/^((xn--[a-z0-9-]+|[a-z0-9]+(-[a-z0-9]+)*)\.)+([a-z]{2,}|xn--[a-z0-9-]+)$/i.test(e)}class c extends Error{constructor({message:e,code:t,cause:n,name:r}){super(e,{cause:n}),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.name=r??n.name,this.code=t}}let d=new class{constructor(){Object.defineProperty(this,"controller",{enumerable:!0,configurable:!0,writable:!0,value:void 0})}createNewAbortSignal(){if(this.controller){let e=Error("Cancelling existing WebAuthn API call for new one");e.name="AbortError",this.controller.abort(e)}let e=new AbortController;return this.controller=e,e.signal}cancelCeremony(){if(this.controller){let e=Error("Manually cancelling existing WebAuthn API call");e.name="AbortError",this.controller.abort(e),this.controller=void 0}}},u=["cross-platform","platform"];function h(e){if(e&&!(0>u.indexOf(e)))return e}async function m(e){let t,n,s,u,m;!e.optionsJSON&&e.challenge&&(console.warn("startRegistration() was not called correctly. It will try to continue with the provided options, but this call should be refactored to use the expected call structure instead. See https://simplewebauthn.dev/docs/packages/browser#typeerror-cannot-read-properties-of-undefined-reading-challenge for more information."),e={optionsJSON:e});let{optionsJSON:p,useAutoRegister:y=!1}=e;if(!o())throw Error("WebAuthn is not supported in this browser");let x={...p,challenge:a(p.challenge),user:{...p.user,id:a(p.user.id)},excludeCredentials:p.excludeCredentials?.map(i)},b={};y&&(b.mediation="conditional"),b.publicKey=x,b.signal=d.createNewAbortSignal();try{t=await navigator.credentials.create(b)}catch(e){throw function({error:e,options:t}){let{publicKey:n}=t;if(!n)throw Error("options was missing required publicKey property");if("AbortError"===e.name){if(t.signal instanceof AbortSignal)return new c({message:"Registration ceremony was sent an abort signal",code:"ERROR_CEREMONY_ABORTED",cause:e})}else if("ConstraintError"===e.name){if(n.authenticatorSelection?.requireResidentKey===!0)return new c({message:"Discoverable credentials were required but no available authenticator supported it",code:"ERROR_AUTHENTICATOR_MISSING_DISCOVERABLE_CREDENTIAL_SUPPORT",cause:e});else if("conditional"===t.mediation&&n.authenticatorSelection?.userVerification==="required")return new c({message:"User verification was required during automatic registration but it could not be performed",code:"ERROR_AUTO_REGISTER_USER_VERIFICATION_FAILURE",cause:e});else if(n.authenticatorSelection?.userVerification==="required")return new c({message:"User verification was required but no available authenticator supported it",code:"ERROR_AUTHENTICATOR_MISSING_USER_VERIFICATION_SUPPORT",cause:e})}else if("InvalidStateError"===e.name)return new c({message:"The authenticator was previously registered",code:"ERROR_AUTHENTICATOR_PREVIOUSLY_REGISTERED",cause:e});else if("NotAllowedError"===e.name)return new c({message:e.message,code:"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",cause:e});else if("NotSupportedError"===e.name)return new c(0===n.pubKeyCredParams.filter(e=>"public-key"===e.type).length?{message:'No entry in pubKeyCredParams was of type "public-key"',code:"ERROR_MALFORMED_PUBKEYCREDPARAMS",cause:e}:{message:"No available authenticator supported any of the specified pubKeyCredParams algorithms",code:"ERROR_AUTHENTICATOR_NO_SUPPORTED_PUBKEYCREDPARAMS_ALG",cause:e});else if("SecurityError"===e.name){let t=globalThis.location.hostname;if(!l(t))return new c({message:`${globalThis.location.hostname}
1 is an invalid domain`,code:"ERROR_INVALID_DOMAIN",cause:e});if(n.rp.id!==t)return new c({message:`The RP ID "${n.rp.id}" is invalid for this domain`,code:"ERROR_INVALID_RP_ID",cause:e})}else if("TypeError"===e.name){if(n.user.id.byteLength<1||n.user.id.byteLength>64)return new c({message:"User ID was not between 1 and 64 characters",code:"ERROR_INVALID_USER_ID_LENGTH",cause:e})}else if("UnknownError"===e.name)return new c({message:"The authenticator was unable to process the specified options, or could not create a new credential",code:"ERROR_AUTHENTICATOR_GENERAL_ERROR",cause:e});return e}({error:e,options:b})}if(!t)throw Error("Registration was not completed");let{id:g,rawId:w,response:k,type:v}=t;if("function"==typeof k.getTransports&&(s=k.getTransports()),"function"==typeof k.getPublicKeyAlgorithm)try{u=k.getPublicKeyAlgorithm()}catch(e){f("getPublicKeyAlgorithm()",e)}if("function"==typeof k.getPublicKey)try{let e=k.getPublicKey();null!==e&&(m=r(e))}catch(e){f("getPublicKey()",e)}if("function"==typeof k.getAuthenticatorData)try{n=r(k.getAuthenticatorData())}catch(e){f("getAuthenticatorData()",e)}return{id:g,rawId:r(w),response:{attestationObject:r(k.attestationObject),clientDataJSON:r(k.clientDataJSON),transports:s,publicKeyAlgorithm:u,publicKey:m,authenticatorData:n},type:v,clientExtensionResults:t.getClientExtensionResults(),authenticatorAttachment:h(t.authenticatorAttachment)}}function f(e,t){console.warn(`The browser extension that intercepted this WebAuthn API call incorrectly implemented ${e}. You should report this error to them.
2`,t)}let p=e=>e;async function y(e){let t,n,s;!e.optionsJSON&&e.challenge&&(console.warn("startAuthentication() was not called correctly. It will try to continue with the provided options, but this call should be refactored to use the expected call structure instead. See https://simplewebauthn.dev/docs/packages/browser#typeerror-cannot-read-properties-of-undefined-reading-challenge for more information."),e={optionsJSON:e});let{optionsJSON:u,useBrowserAutofill:m=!1,verifyBrowserAutofillInput:f=!0}=e;if(!o())throw Error("WebAuthn is not supported in this browser");u.allowCredentials?.length!==0&&(t=u.allowCredentials?.map(i));let y={...u,challenge:a(u.challenge),allowCredentials:t},x={};if(m){if(!await function(){if(!o())return p(new Promise(e=>e(!1)));let e=globalThis.PublicKeyCredential;return e?.isConditionalMediationAvailable===void 0?p(new Promise(e=>e(!1))):p(e.isConditionalMediationAvailable())}())throw Error("Browser does not support WebAuthn autofill");if(document.querySelectorAll("input[autocomplete$='webauthn']").length<1&&f)throw Error('No <input> with "webauthn" as the only or last value in its `autocomplete` attribute was detected');x.mediation="conditional",y.allowCredentials=[]}x.publicKey=y,x.signal=d.createNewAbortSignal();try{n=await navigator.credentials.get(x)}catch(e){throw function({error:e,options:t}){let{publicKey:n}=t;if(!n)throw Error("options was missing required publicKey property");if("AbortError"===e.name){if(t.signal instanceof AbortSignal)return new c({message:"Authentication ceremony was sent an abort signal",code:"ERROR_CEREMONY_ABORTED",cause:e})}else if("NotAllowedError"===e.name)return new c({message:e.message,code:"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",cause:e});else if("SecurityError"===e.name){let t=globalThis.location.hostname;if(!l(t))return new c({message:`${globalThis.location.hostname} is an invalid domain`,code:"ERROR_INVALID_DOMAIN",cause:e});if(n.rpId!==t)return new c({message:`The RP ID "${n.rpId}" is invalid for this domain`,code:"ERROR_INVALID_RP_ID",cause:e})}else if("UnknownError"===e.name)return new c({message:"The authenticator was unable to process the specified options, or could not create a new assertion signature",code:"ERROR_AUTHENTICATOR_GENERAL_ERROR",cause:e});return e}({error:e,options:x})}if(!n)throw Error("Authentication was not completed");let{id:b,rawId:g,response:w,type:k}=n;return w.userHandle&&(s=r(w.userHandle)),{id:b,rawId:r(g),response:{authenticatorData:r(w.authenticatorData),clientDataJSON:r(w.clientDataJSON),signature:r(w.signature),userHandle:s},type:k,clientExtensionResults:n.getClientExtensionResults(),authenticatorAttachment:h(n.authenticatorAttachment)}}var x=e.i(971884);let b="g33z3r:crate",g="g33z3r.crate.dirty",w={enabled:!1,claimed:!1,rev:null,booted:!1},k=null,v=null,S=!1;function N(e){w={...w,...e},window.dispatchEvent(new CustomEvent(b))}async function C(e){return[...new Uint8Array(await crypto.subtle.digest("SHA-256",
2new TextEncoder().encode(e)))].map(e=>e.toString(16).padStart(2,"0")).join("")}async function R(){if(!k)return null;let e="0".repeat(k.d);for(let t=0;t<5e6;t++)if((await C(`${k.c}:${t}`)).startsWith(e))return{c:k.c,nonce:String(t)};return null}async function j(e){return fetch("/api/crate/save",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function E(e){let t=await j({blob:(0,x.exportCrate)(),claimDevice:e}),r=await t.json().catch(()=>({}));if(!t.ok||!r.ok)return{ok:!1,error:r.error??"Couldn't save."};N({rev:r.rev,claimed:e||w.claimed});try{localStorage.removeItem(g)}catch{}return(0,n.track)("crate_saved"),{ok:!0,phrase:r.phrase,words:r.words,year:r.year}}async function A(){if(!w.enabled||!w.claimed)return;let e=await j({blob:(0,x.exportCrate)(),expectedRev:w.rev});if(409===e.status){let t=await e.json().catch(()=>({}));if(t.blob){let n=(0,x.applyRemoteCrate)(t.blob);e=await j({blob:n,expectedRev:t.rev})}}let t=await e.json().catch(()=>({}));if(e.ok&&t.ok){N({rev:t.rev});try{localStorage.removeItem(g)}catch{}}else try{localStorage.setItem(g,"1")}catch{}}function T(){v&&clearTimeout(v),v=setTimeout(()=>void A(),2500)}async function O(e,t,n=!1){(0,x.setEphemeral)(n);let r=!n&&t,a=await R(),o=await fetch("/api/crate/restore",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({phrase:e,c:a?.c,nonce:a?.nonce,claimDevice:r})}),s=await o.json().catch(()=>({}));return s.ok&&s.crate?((0,x.applyRemoteCrate)(s.crate),N({rev:s.rev,claimed:!n&&(r||w.claimed)}),{ok:!0,revisions:s.revisions}):{ok:!1}}async function I(){let e=await fetch("/api/crate/rekey",{method:"POST"}),t=await e.json().catch(()=>({}));return e.ok&&t.ok?{ok:!0,phrase:t.phrase}:{ok:!1}}async function P(){try{await fetch("/api/crate/signout",{method:"POST"})}catch{}(0,x.clearLocalCrate)(),N({claimed:!1,rev:null})}async function _(e){let t=await R();await fetch("/api/crate/forget",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({phrase:e,c:t?.c,nonce:t?.nonce})}),N({claimed:!1,rev:null})}async function D(){if(!S&&!w.booted){S=!0;try{let e=await fetch("/api/crate/restore",{cache:"no-store"}),t=await e.json().catch(()=>({}));if(k=t.challenge??null,!t.enabled)return void N({enabled:!1,booted:!0});if(t.device&&t.crate?((0,x.applyRemoteCrate)(t.crate),N({enabled:!0,claimed:!0,rev:t.rev,booted:!0})):N({enabled:!0,booted:!0}),w.claimed){let e=!1;try{e="1"===localStorage.getItem(g)}catch{}e&&A()}window.addEventListener("g33z3r:store",T)}finally{S=!1}}}async function U(){let e,t;try{e=JSON.parse(localStorage.getItem("g33z3r.screenname")||'""')||void 0}catch{}try{let n=await fetch("/api/crate/passkey/register/options",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({screenname:e})}),r=await n.json().catch(()=>({}));if(!n.ok||!r.options)return{ok:!1,error:r.error??"Couldn't start — try again."};t=await m({optionsJSON:r.options})}catch{return{ok:!1,cancelled:!0}}let r=await fetch("/api/crate/passkey/register/verify",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({response:t})}),a=await r.json().catch(()=>({}));return r.ok&&a.ok?((0,n.track)("passkey_registered"),{ok:!0}):{ok:!1,error:a.error??"Couldn't add that passkey."}}async function L(){let e;try{let t=await fetch("/api/crate/passkey/auth/options",{method:"POST"}),n=await t.json().catch(()=>({}));if(!t.ok||!n.options)return{ok:!1,error:n.error??"Couldn't start — try again."};e=await y({optionsJSON:n.options})}catch{return{ok:!1,cancelled:!0}}let t=await fetch("/api/crate/passkey/auth/verify",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({response:e})}),r=await t.json().catch(()=>({}));return r.ok&&r.crate?((0,x.applyRemoteCrate)(r.crate),N({rev:r.rev,claimed:!0}),(0,n.track)("passkey_restored"),{ok:!0}):{ok:!1,error:"No passkey matched, or it was cancelled."}}function K(e){return window.addEventListener(b,e),()=>window.removeEventListener(b,e)}e.s(["authPasskey",0,L,"bootCrate",0,D,"passkeysSupported",0,function(){return o()},"registerPasskey",0,U,"signOutDevice",0,P,"useCrate",0,function(){let e=(0,t.useSyncExternalStore)(K,()=>w.enabled,()=>!1);return{enabled:e,claimed:(0,t.useSyncExternalStore)(K,()=>w.claimed,()=>!1),booted:(0,t.useSyncExternalStore)(K,()=>w.booted,()=>!1),firstSave:E,restoreByPhrase:O,refreshCode:I,forgetCrate:_,signOutDevice:P}}],157018)},61415,e=>{"use strict";var t=e.i(843476),n=e.i(271645),r=e.i(973134),a=e.i(157018);let o="g33z3r.code.saved",s="g33z3r.code.seen",i="g33z3r.code.seenSession";function l(){try{localStorage.setItem(o,"1")}catch{}}e.s(["CodeCard",0,function({phrase:e,screenname:o}){let c=o;if(!c)try{c=JSON.parse(localStorage.getItem("g33z3r.screenname")||'""')||void 0}catch{}
2let[d,u]=(0,n.useState)(null),[h,m]=(0,n.useState)(null),[f,p]=(0,n.useState)(!1),[y,x]=(0,n.useState)(!1),[b,g]=(0,n.useState)({pwSave:!1,passkey:!1}),w=(0,n.useRef)(null);async function k(){m(null);let e=await (0,a.registerPasskey)();e.ok?(l(),x(!0),m("Passkey added — unlock with your fingerprint / Face ID on your devices, no code needed.")):e.cancelled||m(e.error??"Couldn't add a passkey.")}async function v(){l();try{let t=new window.PasswordCredential({id:c||"My G33Z3R",password:e,name:"G33Z3R code"});await navigator.credentials.store(t),p(!0),m("Saved to your password manager — it'll sync to your other devices.")}catch{m("Your browser will offer to save it, or use Download / Copy.")}}return(0,n.useEffect)(()=>{try{localStorage.setItem(s,"1"),sessionStorage.setItem(i,"1")}catch{}g({pwSave:"PasswordCredential"in window&&!!navigator.credentials,passkey:(0,a.passkeysSupported)()});let t=`${window.location.origin}/#sf=${encodeURIComponent(e)}`;r.default.toDataURL(t,{margin:1,width:220}).then(u).catch(()=>u(null))},[e]),(0,t.jsxs)("div",{className:"text-center",children:[(0,t.jsx)("p",{className:"text-sm font-bold text-ink",children:"Here's your secret code — save it! 📝"}),(0,t.jsx)("p",{className:"mt-3 select-all rounded-lg border-2 border-cyan/50 bg-cyan/10 px-3 py-2 font-display text-lg tracking-wide text-cyan",children:e}),(0,t.jsxs)("div",{className:"mt-3 grid gap-2",children:[b.passkey&&(0,t.jsx)("button",{onClick:k,className:"w-full rounded-xl border-2 border-lime/70 bg-lime/10 py-2.5 text-sm font-bold text-lime hover:bg-lime/20",children:y?"✓ Fingerprint / Face ID added":"🔒 Add a fingerprint / Face ID (never lose your stuff)"}),b.pwSave&&(0,t.jsx)("button",{onClick:v,className:"w-full rounded-xl border-2 border-cyan/70 bg-cyan/10 py-2.5 text-sm font-bold text-cyan hover:bg-cyan/20",children:f?"✓ Saved to your password manager":"🔐 Save to my password manager (syncs everywhere)"}),(0,t.jsxs)("div",{className:"flex flex-wrap justify-center gap-2",children:[(0,t.jsx)("button",{onClick:function(){l();let t=function(e,t){let n=document.createElement("canvas");n.width=1e3,n.height=560;let r=n.getContext("2d");if(!r)return"";r.fillStyle="#0a0e1a",r.fillRect(0,0,1e3,560),r.strokeStyle="#2ff3ff",r.lineWidth=6,r.strokeRect(20,20,960,520),r.strokeStyle="#ff2e97",r.lineWidth=2,r.strokeRect(32,32,936,496),r.textAlign="center",r.fillStyle="#ff2e97",r.font="bold 36px Arial, sans-serif",r.fillText("G33Z3R RADIO",500,108),r.fillStyle="#8aa0b8",r.font="bold 22px Arial, sans-serif",r.fillText("YOUR SECRET FREQUENCY",500,148);let a=68;r.fillStyle="#2ff3ff";do r.font=`bold ${a}px Arial, sans-serif`,a-=2;while(r.measureText(e).width>860&&a>24)return r.fillText(e,500,300),r.fillStyle="#cdd9e8",r.font="20px Arial, sans-serif",r.fillText("Bring your stuff to any device: g33z3r.com  →  📡  →  “I have a code”",500,392),r.fillStyle="#ffae42",r.font="18px Arial, sans-serif",r.fillText("Keep this safe — it's the only way in. We can't recover it for you.",500,438),t&&(r.fillStyle="#8aa0b8",r.font="18px Arial, sans-serif",r.fillText(`Screenname: ${t}`,500,500)),n.toDataURL("image/png")}(e,c);t&&w.current&&(w.current.href=t,w.current.download="g33z3r-code.png",w.current.click(),m("Downloaded — keep it somewhere safe."))},className:"rounded-lg border-2 border-line px-3 py-1.5 text-xs font-bold text-ink-muted hover:text-ink",children:"📥 Download card"}),(0,t.jsx)("button",{onClick:function(){l(),navigator.clipboard?.writeText(e),m("Copied!")},className:"rounded-lg border-2 border-line px-3 py-1.5 text-xs font-bold text-ink-muted hover:text-ink",children:"Copy"}),(0,t.jsx)("a",{href:`mailto:?subject=My%20G33Z3R%20code&body=My%20G33Z3R%20code%20is%3A%20${encodeURIComponent(e)}%20%E2%80%94%20restore%20at%20g33z3r.com`,onClick:l,className:"rounded-lg border-2 border-line px-3 py-1.5 text-xs font-bold text-ink-muted hover:text-ink",children:"✉️ Email it to me"})]})]}),h&&(0,t.jsx)("p",{className:"mt-2 text-xs text-lime",children:h}),d&&(0,t.jsx)("img",{src:d,alt:"QR code to bring your stuff to another phone",className:"mx-auto mt-3 rounded bg-white p-1",width:140,height:140}),(0,t.jsx)("p",{className:"mt-1 text-xs text-ink-muted",children:"On another phone, open the camera and scan this to bring your stuff over."}),(0,t.jsxs)("p",{className:"mt-3 rounded-lg border border-orange/40 bg-orange/10 p-2 text-xs text-ink",children:["These 4 words are the ",(0,t.jsx)("span",{className:"font-bold",children:"only"}),"way to get your stuff on a new device. We can't email them to you or look them up. If you lose them, you lose access — so s
2ave them now."]}),(0,t.jsx)("a",{ref:w,className:"hidden","aria-hidden":!0})]})},"hasSavedCode",0,function(){try{return"1"===localStorage.getItem(o)}catch{return!1}},"hasSeenCode",0,function(){try{return"1"===localStorage.getItem(s)}catch{return!1}},"markCodeSaved",0,l,"seenCodeThisSession",0,function(){try{return"1"===sessionStorage.getItem(i)}catch{return!1}}])},403116,e=>{"use strict";var t=e.i(843476),n=e.i(271645),r=e.i(971884),a=e.i(157018),o=e.i(61415),s=e.i(647163);let i="g33z3r:open-frequency";function l(e){let t="string"==typeof e?{phrase:e}:e??{};setTimeout(()=>window.dispatchEvent(new CustomEvent(i,{detail:t})),0)}e.s(["CodeBackupNudge",0,function(){let{enabled:e,claimed:r}=(0,a.useCrate)(),[s,i]=(0,n.useState)(!1),[c,d]=(0,n.useState)(!1);return((0,n.useEffect)(()=>{i((0,o.hasSeenCode)()&&!(0,o.hasSavedCode)()&&!(0,o.seenCodeThisSession)())},[]),e&&r&&!c&&s)?(0,t.jsx)("div",{style:{bottom:"max(0.5rem, env(safe-area-inset-bottom))"},className:"fixed inset-x-2 z-40 mx-auto max-w-md rounded-xl border-2 border-orange/50 bg-base-2/95 p-3 shadow-2xl backdrop-blur sm:left-auto sm:right-4",children:(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsx)("span",{className:"text-2xl","aria-hidden":!0,children:"🔑"}),(0,t.jsx)("p",{className:"flex-1 text-sm text-ink",children:"Don't lose your stuff — you never saved your code. Back it up so you can get everything on a new phone."}),(0,t.jsx)("button",{onClick:()=>{d(!0),l()},className:"shrink-0 rounded-lg border-2 border-orange/70 bg-orange/15 px-3 py-1.5 text-xs font-bold text-orange",children:"Back it up"}),(0,t.jsx)("button",{onClick:()=>d(!0),"aria-label":"Dismiss",className:"text-ink-faint hover:text-ink",children:"✕"})]})}):null},"CrateBoot",0,function(){let e=(0,n.useRef)(!1);return(0,n.useEffect)(()=>{if(e.current)return;e.current=!0,(0,a.bootCrate)();let t=/[#&]sf=([^&]+)/.exec(window.location.hash);if(t){let e=decodeURIComponent(t[1]);history.replaceState(null,"",window.location.pathname+window.location.search),l(e)}},[]),null},"CrateNudge",0,function(){let{enabled:e,claimed:o}=(0,a.useCrate)(),{favorites:s}=(0,r.useFavorites)(),[i,c]=(0,n.useState)(!1);return!e||o||i||s.length<3?null:(0,t.jsx)("div",{style:{bottom:"max(0.5rem, env(safe-area-inset-bottom))"},className:"fixed inset-x-2 z-40 mx-auto max-w-md rounded-xl border-2 border-cyan/50 bg-base-2/95 p-3 shadow-2xl backdrop-blur sm:left-auto sm:right-4",children:(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsx)("span",{className:"text-2xl","aria-hidden":!0,children:"📦"}),(0,t.jsx)("p",{className:"flex-1 text-sm text-ink",children:"Want your favorites & mixtapes on your other devices too?"}),(0,t.jsx)("button",{onClick:()=>{c(!0),l()},className:"shrink-0 rounded-lg border-2 border-cyan/70 bg-cyan/15 px-3 py-1.5 text-xs font-bold text-cyan",children:"Save them"}),(0,t.jsx)("button",{onClick:()=>c(!0),"aria-label":"Dismiss",className:"text-ink-faint hover:text-ink",children:"✕"})]})})},"FrequencyButton",0,function(){let{enabled:e}=(0,a.useCrate)();return e?(0,t.jsx)("button",{onClick:()=>l(),"data-tour":"crate","aria-label":"Save your stuff across devices",title:"Save your stuff across devices",className:"inline-flex h-11 w-11 items-center justify-center rounded-lg border border-line text-ink-muted transition-colors hover:text-cyan",children:(0,t.jsxs)("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"h-5 w-5","aria-hidden":!0,children:[(0,t.jsx)("path",{d:"M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z"}),(0,t.jsx)("polyline",{points:"17 21 17 13 7 13 7 21"}),(0,t.jsx)("polyline",{points:"7 3 7 8 15 8"})]})}):null},"SecretFrequencyModal",0,function(){let{claimed:e,firstSave:r,restoreByPhrase:l,refreshCode:c,forgetCrate:d,signOutDevice:u}
2=(0,a.useCrate)(),[h,m]=(0,n.useState)(!1),[f,p]=(0,n.useState)("menu"),[y,x]=(0,n.useState)(!1),[b,g]=(0,n.useState)(null),[w,k]=(0,n.useState)(""),[v,S]=(0,n.useState)(""),[N,C]=(0,n.useState)(!0),[R,j]=(0,n.useState)(!1),[E,A]=(0,n.useState)(!1),[T,O]=(0,n.useState)(!1);if((0,n.useEffect)(()=>{let e=e=>{let t=e.detail;m(!0),g(null),t?.phrase?(S(t.phrase),O(!0),p("restore")):t?.view==="restore"?(S(""),O(!1),p("restore")):t?.view==="forgetting"?(S(""),A(!1),p("forgetting")):t?.view==="signout"?p("signout"):(O(!1),p("menu"))};return window.addEventListener(i,e),()=>window.removeEventListener(i,e)},[]),!h)return null;let I="saved"===f&&!R;function P(){I||m(!1)}function _(e){k(e),j(!1),p("saved")}async function D(){x(!0),g(null);let e=await r(N);(x(!1),e.ok)?_(e.phrase):g(e.error)}async function U(){x(!0),g(null);let e=await c();(x(!1),e.ok)?_(e.phrase):g("Couldn't make a new code. Try again.")}async function L(e){if(!v.trim())return;x(!0),g(null);let t=await l(v,"private"===e,"public"===e);x(!1),g(t.ok?"public"===e?"Got it — and it clears automatically when you close this browser. 🔒":"Got it — your stuff is here now. 🎉":"Couldn't find that code. Check the 4 words and try again."),t.ok&&(O(!1),p("menu"))}async function K(){x(!0),g(null);let e=await (0,a.registerPasskey)();x(!1),e.ok?g("Passkey added — unlock with your fingerprint / Face ID on your devices. Your code still works too. 🔒"):e.cancelled||g(e.error??"Couldn't add a passkey.")}async function z(){x(!0),g(null);let e=await (0,a.authPasskey)();x(!1),e.ok?(g("Got it — your stuff is here now. 🎉"),O(!1),p("menu")):e.cancelled||g(e.error??"No passkey found on this device.")}async function F(){x(!0),await u(),x(!1),g("Signed out — this device is back to guest. Your stuff is safe in the cloud."),p("menu")}async function Y(){v.trim()&&E&&(x(!0),await d(v),x(!1),A(!1),g("Done — that code and its saved stuff are erased."),p("menu"))}return(0,t.jsx)("div",{className:"fixed inset-0 z-[60] grid place-items-center bg-black/70 p-4",onClick:P,children:(0,t.jsxs)("div",{className:"frame w-full max-w-sm rounded-2xl p-5",onClick:e=>e.stopPropagation(),children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsx)("h2",{className:"font-display text-xl text-ink",children:"📦 Your stuff, on every device"}),!I&&(0,t.jsx)("button",{onClick:P,"aria-label":"Close",className:"text-ink-faint hover:text-ink",children:"✕"})]}),"saved"===f?(0,t.jsxs)("div",{className:"mt-4",children:[(0,t.jsx)(o.CodeCard,{phrase:w}),(0,t.jsxs)("label",{className:"mt-3 flex items-center justify-center gap-2 text-sm text-ink",children:[(0,t.jsx)("input",{type:"checkbox",checked:R,onChange:e=>j(e.target.checked),className:"accent-cyan"}),"I've saved my code somewhere safe"]}),(0,t.jsx)("button",{onClick:()=>{(0,o.markCodeSaved)(),m(!1)},disabled:!R,className:"mt-3 w-full rounded-xl border-2 border-cyan/70 bg-cyan/10 py-2.5 text-sm font-bold text-cyan disabled:opacity-40",children:"Done"})]}):"restore"===f?(0,t.jsxs)("div",{className:"mt-4",children:[(0,t.jsx)("p",{className:"text-sm font-bold text-ink",children:T?"Bring your stuff to this device?":"Already saved your stuff somewhere?"}),(0,a.passkeysSupported)()&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("button",{onClick:z,disabled:y,className:"mt-2 w-full rounded-xl border-2 border-lime/70 bg-lime/10 py-2.5 text-sm font-bold text-lime disabled:opacity-50",children:y?"…":"🔒 Use a passkey (fingerprint / Face ID)"}),(0,t.jsx)("p",{className:"mt-2 text-center text-xs font-bold uppercase tracking-widest text-ink-faint",children:"or type your code"})]}),(0,t.jsx)("p",{className:"mt-1 text-sm text-ink-muted",children:"Type the 4 words from your other device. Caps, spaces, and dashes don't matter."}),(0,t.jsx)("input",{value:v,onChange:e=>S(e.target.value),placeholder:"e.g. neon tiger mixtape 89",className:"mt-2 w-full rounded-xl border-2 border-line bg-surface/50 px-3 py-2.5 text-ink outline-none focus:border-cyan"}),(0,t.jsx)("p",{className:"mt-3 text-xs font-bold uppercase tracking-widest text-ink-faint",children:"Whose computer is this?"}),(0,t.jsx)("button",{onClick:()=>L("private"),disabled:y||!v.trim(),className:"mt-2 w-full rounded-xl border-2 border-cyan/70 bg-cyan/10 py-2.5 text-sm font-bold text-cyan disabled:opacity-50",children:y?"Bringing it over…":"🔒 My own device — keep me signed in"}),(0,t.jsx)("button",{onClick:()=>L("public"),disabled:y||!v.trim(),className:"mt-2 w-full rounded-xl border-2 border-line py-2.5 text-sm font-semibold text-ink-muted hover:text-ink disabled:opacity-50",children:"🖥️ Public / shared computer — clear when I close"}),(0,t.jsxs)("p",{className:"mt-2 text-sm text-ink-faint",children:["Public mode keeps ",(0,t.jsx)("span",{className:"text-ink",children:"nothing"}),"on this computer — it's wiped when you close the browser, and you stay 
2signed out (new posts would be anonymous)."]}),(0,t.jsx)("button",{onClick:()=>{O(!1),p("menu")},className:"mt-2 w-full text-xs text-ink-faint hover:text-ink",children:"← back"})]}):"signout"===f?(0,t.jsxs)("div",{className:"mt-4",children:[(0,t.jsx)("p",{className:"text-sm font-bold text-ink",children:"Sign out of this device"}),(0,t.jsxs)("div",{className:"mt-2 rounded-lg border border-cyan/30 bg-cyan/5 p-3 text-sm text-ink-muted",children:["Wipes this browser clean — your ",(0,t.jsx)("span",{className:"text-ink",children:"favorites, tapes, and screenname are removed from this computer"}),", so it's safe to leave a shared/public PC. Nothing is lost: your"," ",(0,t.jsx)("span",{className:"text-ink",children:"cloud copy stays safe"})," and your 4-word code restores it all."]}),(0,t.jsx)("button",{onClick:F,disabled:y,className:"mt-3 w-full rounded-xl border-2 border-cyan/70 bg-cyan/10 py-2.5 text-sm font-bold text-cyan disabled:opacity-50",children:y?"Signing out…":"🚪 Sign out of this device"}),(0,t.jsx)("button",{onClick:()=>p("menu"),className:"mt-2 w-full text-xs text-ink-faint hover:text-ink",children:"← back"})]}):"forgetting"===f?(0,t.jsxs)("div",{className:"mt-4",children:[(0,t.jsx)("p",{className:"text-sm font-bold text-orange",children:"⚠️ Erase your cloud copy — this can't be undone"}),(0,t.jsxs)("div",{className:"mt-2 rounded-lg border border-orange/40 bg-orange/10 p-3 text-sm text-ink",children:[(0,t.jsx)("p",{className:"font-semibold",children:"This permanently deletes your saved copy from the cloud. After this:"}),(0,t.jsxs)("ul",{className:"mt-1.5 list-disc space-y-1 pl-5 text-ink-muted",children:[(0,t.jsxs)("li",{children:["Your ",(0,t.jsx)("span",{className:"text-ink",children:"4-word code stops working"})," — we can't bring it back."]}),(0,t.jsx)("li",{children:"Your stuff won't sync to your other devices anymore."}),(0,t.jsxs)("li",{children:["Your ",(0,t.jsx)("span",{className:"text-ink",children:"screenname is released"})," and your public posts lose your name — you can re-claim it later if it's still free."]}),(0,t.jsxs)("li",{children:["Your favorites & tapes ",(0,t.jsx)("span",{className:"text-ink",children:"stay on this device"})," — only the cloud copy is erased."]})]}),(0,t.jsxs)("p",{className:"mt-2 text-xs",children:["Just want to switch this device off without deleting anything?"," ",(0,t.jsx)("button",{type:"button",onClick:()=>p("signout"),className:"font-semibold text-cyan hover:underline",children:"Sign out instead →"})]})]}),(0,t.jsx)("p",{className:"mt-3 text-sm text-ink-muted",children:"Confirm by typing your 4-word code:"}),(0,t.jsx)("input",{value:v,onChange:e=>S(e.target.value),placeholder:"your four words",className:"mt-1.5 w-full rounded-xl border-2 border-line bg-surface/50 px-3 py-2.5 text-ink outline-none focus:border-orange"}),(0,t.jsxs)("label",{className:"mt-3 flex items-start gap-2 text-sm text-ink",children:[(0,t.jsx)("input",{type:"checkbox",checked:E,onChange:e=>A(e.target.checked),className:"mt-0.5 accent-orange"}),"I understand this is permanent and my code will stop working."]}),(0,t.jsx)("button",{onClick:Y,disabled:y||!v.trim()||!E,className:"mt-3 w-full rounded-xl border-2 border-orange/70 bg-orange/10 py-2.5 text-sm font-bold text-orange disabled:opacity-40",children:y?"Erasing…":"Erase my cloud copy"}),(0,t.jsx)("button",{onClick:()=>{A(!1),p("menu")},className:"mt-2 w-full text-xs text-ink-faint hover:text-ink",children:"← back — keep my stuff saved"})]}):(0,t.jsxs)("div",{className:"mt-4 space-y-3",children:[(0,t.jsxs)("p",{className:"text-sm text-ink-muted",children:["Your favorites, mixtapes, and likes live ",(0,t.jsx)("span",{className:"text-ink",children:"only on this device"}),". Save them to a secret 4-word code, then use that code to bring them to your phone, tablet, or another computer."]}),e?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("p",{className:"rounded-lg border border-lime/40 bg-lime/10 p-2 text-center text-xs text-lime",children:"✅ This device is remembered — your stuff saves and updates here automatically."}),(0,a.passkeysSupported)()&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("button",{onClick:K,disabled:y,className:"w-full rounded-xl border-2 border-lime/70 bg-lime/10 py-2.5 text-sm font-bold text-lime disabled:opacity-50",children:y?"…":"🔒 Add a fingerprint / Face ID"}),(0,t.jsxs)("p",{className:"text-center text-xs text-ink-faint",children:["Adds a one-tap unlock on your devices. ",(0,t.jsx)("span",{className:"text-ink-muted",children:"Your 4-word code keeps working"})," — this doesn't change it."]})]}),(0,t.jsx)("button",{onClick:U,disabled:y,className:"w-full rounded-xl border-2 border-cyan/70 bg-cyan/10 py-2.5 text-sm font-bold text-cyan disabled:opacity-50",children:y?"…":"Show / make a new code"}),(0,t.jsx)("p",{className:"text-center text-sm text-ink-faint",children:"We never store your words, so we can't show the old ones — this makes a fresh code (the old one stops working)."})]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("label",{className:"flex items-center gap-2 text-xs text-ink-muted",children:[(0,t.jsx)("input",{type:"checkbox",checked:N,onChange:e=>C(e.target.checked),className:"accent-cyan"}),"This is my own device — remember me here (keeps it up to date automatically)"]}),(0,t.jsx)("button",{onClick:D,disabled:y,className:"w-full rounded-xl border-2 border-cyan/70 bg-cyan/10 py-2.5 text-sm font-bold text-cyan disabled:opacity-50",children:y?"Saving…":"📦 Save my stuff & get my code"})]}),(0,t.jsx)("button",{onClick:()=>{S(""),O(!1),p("restore")},className:"w-full rounded-xl border-2 border-line py-2.5 text-sm font-semibold text-ink-muted hover:text-ink",children:"I have a code — bring my stuff here"}),e&&(0,t.jsx)("button",{onClick:()=>p("signout"),className:"w-full text-xs text-ink-faint hover:text-ink",children:"Sign out of this device (keep my cloud copy)"}),(0,t.jsx)("button",{onClick:()=>{S(""),A(!1),p("forgetting")},className:"w-full text-xs text-ink-faint hover:text-orange",children:"Erase my saved stuff from the cloud"})]}),b&&(0,t.jsx)("p",{role:"status",className:(0,s.cn)("mt-3 text-center text-sm",b.startsWith("
2Couldn't")||b.startsWith("Done")?"text-orange":"text-lime"),children:b})]})})},"openFrequency",0,l])}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.