1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,98183,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={assign:function(){return l},searchParamsToUrlQuery:function(){return i},urlQueryToSearchParams:function(){return s}};for(var o in r)Object.defineProperty(n,o,{enumerable:!0,get:r[o]});function i(e){let t={};for(let[n,r]of e.entries()){let e=t[n];void 0===e?t[n]=r:Array.isArray(e)?e.push(r):t[n]=[e,r]}return t}function a(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function s(e){let t=new URLSearchParams;for(let[n,r]of Object.entries(e))if(Array.isArray(r))for(let e of r)t.append(n,a(e));else t.set(n,a(r));return t}function l(e,...t){for(let n of t){for(let t of n.keys())e.delete(t);for(let[t,r]of n.entries())e.append(t,r)}return e}},18967,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={DecodeError:function(){return y},MiddlewareNotFoundError:function(){return w},MissingStaticPage:function(){return E},NormalizeError:function(){return b},PageNotFoundError:function(){return v},SP:function(){return h},ST:function(){return g},WEB_VITALS:function(){return i},execOnce:function(){return a},getDisplayName:function(){return d},getLocationOrigin:function(){return u},getURL:function(){return c},isAbsoluteUrl:function(){return l},isResSent:function(){return f},loadGetInitialProps:function(){return p},normalizeRepeatedSlashes:function(){return m},stringifyError:function(){return x}};for(var o in r)Object.defineProperty(n,o,{enumerable:!0,get:r[o]});let i=["CLS","FCP","FID","INP","LCP","TTFB"];function a(e){let t,n=!1;return(...r)=>(n||(n=!0,t=e(...r)),t)}let s=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,l=e=>s.test(e);function u(){let{protocol:e,hostname:t,port:n}=window.location;return`${e}//${t}${n?":"+n:""}`}function c(){let{href:e}=window.location,t=u();return e.substring(t.length)}function d(e){return"string"==typeof e?e:e.displayName||e.name||"Unknown"}function f(e){return e.finished||e.headersSent}function m(e){let t=e.split("?");return t[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(t[1]?`?${t.slice(1).join("?")}`:"")}async function p(e,t){let n=t.res||t.ctx&&t.ctx.res;if(!e.getInitialProps)return t.ctx&&t.Component?{pageProps:await p(t.Component,t.ctx)}:{};let r=await e.getInitialProps(t);if(n&&f(n))return r;if(!r)throw Object.defineProperty(Error(`"${d(e)}.getInitialProps()" should resolve to an object. But found "${r}" instead.`),"__NEXT_ERROR_CODE",{value:"E1025",enumerable:!1,configurable:!0});return r}let h="u">typeof performance,g=h&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class y extends Error{}class b extends Error{}class v extends Error{constructor(e){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message=`Cannot find module for page: ${e}`}}class E extends Error{constructor(e,t){super(),this.message=`Failed to load static file for page: ${e} ${t}`}}class w extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function x(e){return JSON.stringify({message:e.message,stack:e.stack})}},33525,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"warnOnce",{enumerable:!0,get:function(){return r}});let r=e=>{}},4119,e=>{"use strict";var t=e.i(72328),n=e.i(71645);function r(e,t,n,r){return{type:"spring",duration:e,stiffness:t,damping:n,ease:r}}let o=[.22,1,.36,1],i={transitions:{snap:r(.15,1218.4696791468346,69.81317007977319,o),ui:r(.3,304.61741978670864,33.16125578789226,o),gentle:r(.5,109.6622711232151,19.896753472735355,o),lively:r(.21,621.668203646344,17.453292519943293,o),ambient:r(.8,42.8368246575059,13.089969389957473,[.65,0,.35,1])},stagger:{tight:.04,base:.08,relaxed:.15},travel:{hover:4,enter:24,section:48},inView:{amount:.4,once:!0},reducedMotion:"calm"};function a(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function s(e={}){return structuredClone(function e(t,n){if(!a(t)||!a(n))return n;let r={...t};for(let o of Object.keys(n)){let i=n[o];void 0!==i&&(r[o]=e(t[o],i))}return r}(i,e))}s({transitions:{snap:r(.18,846,52,[.16,1,.3,1]),ui:r(.42,155,24,[.16,1,.3,1]),gentle:r(.7,65,15,[.16,1,.3,1]),lively:r(.35,250,18,[.2,.9,.2,1.08]),ambient:r(1.2,19,9,[.65,0,.35,1])},stagger:{tight:.06,base:.12,relaxed:.22},travel:{hover:6,enter:32,section:64},inView:{amount:.3,once:!0}}),s({transitions:{snap:r(.14,1400,80,[.16,1,.3,1]),ui:r(.28,390,40,[.16,1,.3,1]),gentle:r(.42,150,27,[.16,1,.3,1]),lively:r(.22,700,33,[.16,1,.3,1]),ambient:r(.7,55,16,[.65,0,.35,1])},stagger:{tight:.03,base:.06,relaxed:.11},travel:{hover:2,enter:14,section:28},inView:{amount:.5,once:!0}});let l=(0,n.createContext)(null);function u(){return(0,n.useContext)(l)??i}e.s(["MotionUIThemeProvider",0,function({theme:e,children:t}){let r=e??i;return(0,n.createElement)(l.Provider,{value:r},t)},"defineTheme",0,s,"useMotionUITheme",0,function(){let e=u(),r=(!(0,t.useReducedMotion)()?{strategy:"full",animate:!0,travel:!0,opacityOnly:!1}:"off"===e.reducedMotion?{strategy:"off",animate:!1,travel:!1,opacityOnly:!1}:{strategy:"calm",animate:!0,travel:!1,opacityOnly:!0}).strategy;return(0,n.useMemo)(()=>({...e,motionMode:r}),[e,r])},"useMotionUITransition",0,function(e){let t=u().transitions[e];return(0,n.useMemo)(()=>{let{duration:e,stiffness:n,damping:r,ease:o}=t;return{type:"spring",stiffness:n,damping:r,duration:e,ease:o,opacity:{type:"tween",duration:e,ease:"linear",inherit:!0}}},[t])}])},67063,e=>{"use strict";var t=e.i(71645);let n="__cashuConsoleShown";e.s(["default",0,function(){return(0,t.useEffect)(()=>{let e=window;if(e[n])return;e[n]=!0;let t="font: 500 11px/1.4 ui-monospace, SFMono-Regular, monospace; color: #18181b;",r="font: 400 11px/1.4 ui-monospace, SFMono-Regular, monospace; color: #71717a;";console.log("%ccashu%c an open protocol for bearer ecash on bitcoin","font: 600 14px/1.2 ui-sans-serif, system-ui, sans-serif; color: #000;","font: 400 12px/1.4 ui-monospace, SFMono-Regular, monospace; color: #71717a;"),console.log("%cspec %chttps://github.com/cashubtc/nuts",t,r),console.log("%csource %chttps://github.com/cashubtc",t,r),console.log("%cpatches %chttps://github.com/cashubtc/nuts/pulls",t,r)},[]),null}])},96059,e=>{"use strict";var t=e.i(71645);let n="0123456789abcdef";function r(e,t){return n[(7*e+11*t)%n.length]}let o=".btn-primary, .btn-secondary, .btn-primary--on-ink, .btn-secondary--on-ink";e.s(["default",0,function(){let[e,n]=(0,t.useState)(()=>window.matchMedia("(prefers-reduced-motion: reduce)").matches);return(0,t.useEffect)(()=>{let e=window.matchMedia("(prefers-reduced-motion: reduce)"),t=()=>n(e.matches);return t(),e.addEventListener("change",t),()=>e.removeEventListener("change",t)},[]),(0,t.useEffect)(()=>
1{if(e)return;let t=new Map,n=e=>{let t="";return e.childNodes.forEach(e=>{e.nodeType===Node.TEXT_NODE?t+=e.textContent??"":e instanceof HTMLElement&&!e.classList.contains("sr-only")&&!e.classList.contains("button-cipher__label")&&(t+=n(e))}),t},i=e=>{if(t.has(e))return;let o=n(e).replace(/\s+/g," ").trim();if(!o)return;let i=document.createElement("span");i.className="button-cipher__label",i.setAttribute("aria-hidden","true"),e.append(i);let a={label:i},s=()=>{void 0!==a.frame&&cancelAnimationFrame(a.frame),a.frame=void 0,i.textContent="",e.classList.remove("button-ciphering")},l=()=>{if("off"===e.dataset.cipher)return;s(),e.style.setProperty("--button-cipher-color",getComputedStyle(e).color),e.classList.add("button-ciphering");let t=performance.now(),n=e=>{var l;let u,c,d,f,m=e-t,p=Math.min(m/460,1);l=Math.floor(m/46),c=(u=p<.34)?p/.34:(p-.34)/.6599999999999999,i.textContent=u?Array.from(o).map((e,t,n)=>/\s/.test(e)?e:t/Math.max(n.length-1,1)<=c?r(t,l):e).join(""):(f=Math.max((d=Array.from(o)).length-1,1),d.map((e,t)=>/\s/.test(e)||t/f<=c?e:r(t,l)).join("")),p<1?a.frame=requestAnimationFrame(n):s()};a.frame=requestAnimationFrame(n)};e.addEventListener("pointerenter",l),e.addEventListener("pointerleave",s),t.set(e,()=>{s(),i.remove(),e.removeEventListener("pointerenter",l),e.removeEventListener("pointerleave",s)})},a=e=>{e instanceof HTMLElement&&e.matches(o)&&i(e),e.querySelectorAll(o).forEach(i)};a(document);let s=new MutationObserver(e=>{e.forEach(e=>e.addedNodes.forEach(e=>{e instanceof HTMLElement&&a(e)}))});return s.observe(document.body,{childList:!0,subtree:!0}),()=>{s.disconnect(),t.forEach(e=>e())}},[e]),null}],96059)},11333,e=>{"use strict";var t=e.i(43476),n=e.i(71645),r=e.i(18566),o=e.i(41629);let i=[{keys:"g h",label:"home"},{keys:"g w",label:"wallets"},{keys:"g s",label:"spec"},{keys:"g i",label:"implementations"},{keys:"?",label:"this sheet"},{keys:"esc",label:"close"}];e.s(["default",0,function(){let e=(0,r.useRouter)(),a=(0,o.useCurtainNavigate)(),s=(0,n.useRef)(null),l=(0,n.useRef)("idle"),u=(0,n.useRef)(null),c=(0,n.useRef)(null),[d,f]=(0,n.useState)(null),[m,p]=(0,n.useState)(!1);return(0,n.useEffect)(()=>{let e=s.current;e&&(m&&!e.open&&e.showModal(),!m&&e.open&&e.close())},[m]),(0,n.useEffect)(()=>{let t=()=>{l.current="idle",u.current&&(clearTimeout(u.current),u.current=null),c.current&&clearTimeout(c.current),c.current=setTimeout(()=>f(null),400)},n=n=>{if(n.repeat)return;let r=n.target;if(r instanceof HTMLElement&&r.matches('input, textarea, select, [contenteditable=""], [contenteditable="true"]'))return;let o=n.key;if("?"===o){"idle"!==l.current&&t(),p(e=>!e),n.preventDefault();return}if("Escape"===o){"idle"!==l.current&&t();return}if(n.metaKey||n.ctrlKey||n.altKey||m)return;let i=o.toLowerCase(),s=/^[a-z]$/.test(i);if("idle"===l.current){"g"!==i||n.shiftKey||(l.current="g",c.current&&(clearTimeout(c.current),c.current=null),f("g _"),u.current&&clearTimeout(u.current),u.current=setTimeout(t,1500),n.preventDefault());return}if("g"===l.current){if(!s||n.shiftKey)return void t();if(f(`g ${i}`),n.preventDefault(),"h"===i)a("/")||e.push("/");else if("w"===i)a("/wallets")||e.push("/wallets");else if("s"===i)window.open("https://docs.cashu.space/","_blank","noopener,noreferrer");else if("i"===i){let t=document.getElementById("implementations");if(t){let e=window.matchMedia("(prefers-reduced-motion: reduce)").matches;t.scrollIntoView({behavior:e?"auto":"smooth",block:"start"})}else a("/#implementations")||e.push("/#implementations")}t()}};return window.addEventListener("keydown",n),()=>{window.removeEventListener("keydown",n),u.current&&clearTimeout(u.current),c.current&&clearTimeout(c.current)}},[m,a,e]),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:`keymap-toast${d?" keymap-toast--visible":""}`,"aria-live":"polite","aria-atomic":"true",children:(0,t.jsx)("span",{className:"t-pixel",children:d??""})}),(0,t.jsx)("dialog",{ref:s,className:"keymap-help","aria-labelledby":"keymap-help-title",onClose:()=>p(!1),onClick:e=>{e.target===s.current&&p(!1)},children:(0,t.jsxs)("div",{className:"keymap-help__sheet",children:[(0,t.jsx)("h2",{id:"keymap-help-title",className:"keymap-help__title t-title",children:"keys"}),(0,t.jsx)("table",{className:"keymap-help__table",children:(0,t.jsx)("tbody",{children:i.map(e=>(0,t.jsxs)("tr",{children:[(0,t.jsx)("td",{className:"t-pixel keymap-help__chord",children:e.keys}),(0,t.jsx)("td",{className:"t-label keymap-help__label",children:e.label})]},e.keys))})})]})})]})}])},15112,(e,t,n)=>{t.exports={$comment:"The site's motion vocabulary, and the ONE source for it. Read by motion.theme.ts (runtime, for Motion UI sections) and by scripts/motion-theme-css.mjs (build time, for the CSS custom properties the stylesheet consumes). It is JSON rather than TS because both consumers must read it and one of them is plain Node â see the script's header.",$damping:"These are Motion's own defaults rounded to integers, and the rounding moved two of them across a boundary â measured 2026-08-21 by generating each spring's linear() through Motion's generator. Vendored authored damping ratios: snap 1.000000, ui 0.950000, gentle 0.950000, lively 0.350000, ambient 1.000000. snap and ambient were authored EXACTLY critically damped; rounding pushed snap up (1.0029, harmlessly overdamped) and ambient DOWN (0.9912, nominally underdamped with a 5.7e-11 overshoot at t=3.6s, long after its 1.2s curve ends). ambient is therefore 14 here, not 13, restoring the authored intent. ui and gentle stay at 0.95: that is a deliberate hair of bounce (bounce: 0.05) from Motion, their peaks land after the sampler stops, and every emitted sample is monotonic to exactly 1.0. lively is the ONLY spring that actually overshoots (1.3196) and the only one the no-bounce argument applies to; for a monotonic lively damping is 50, for a sub-perceptual bounce it is about 43.",transitions:{snap:{stiffness:1218,damping:70},ui:{stiffness:305,damping:33},gentle:{stiffness:110,damping:20},lively:{stiffness:622,damping:17},ambient:{stiffness:43,damping:14}},stagger:{tight:.04,base:.08,relaxed:.15},travel:{hover:4,enter:24,section:48},inView:{amount:.4,once:!0},reducedMotion:"calm"}},27119,e=>{"use strict";var t=e.i(43476),n=e.i(4119),r=e.i(15112);let o=(0,n.defineTheme)(r.default);e.s(["default",0,function({children:e}){return(0,t.jsx)(n.MotionUIThemeProvider,{theme:o,children:e})}],27119)},74800,e=>{"use strict";var t=e.i(43476);e.i(94464);var n=e.i(3750),r=e.i(56791),o=e.i(71645),i=e.i(4119);let a={backgroundColor:"#ffffff",mixBlendMode:"difference",borderRadius:0};function s(){var e;let o=(0,i.useMotionUITransition)("snap"),{type:s,zone:l}=(0,r.useCursorState)();return(0,t.jsx)(n.Cursor,{transition:o,style:{...a,...(e=s,"rail"===l&&"default"===e?{width:28,height:8}:"pointer"===e?{width:28,height:28}:"text"===e?{}:{width:12,height:12})}})}function l(e){let[t,n]=(0,o.useState)(!1);return(0,o.useEffect)(()=>{let t=window.matchMedia(e),r=()=>n(t.matches);return r(),t.addEventListener("change",r),()=>t.removeEventListener("change",r)},[e]),t}e.s(["default",0,function(){let e=l("(pointer: fine)"),n=l("(prefers-reduced-motion: reduce)");return!e||n?null:(0,t.jsx)(s,{})}])}]);
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.