diff --git a/ventures/lineage/orgchain/assets/index-Dx_1vZ_Y.css b/ventures/lineage/orgchain/assets/index-C1PA9bil.css similarity index 98% rename from ventures/lineage/orgchain/assets/index-Dx_1vZ_Y.css rename to ventures/lineage/orgchain/assets/index-C1PA9bil.css index db49bae..aa5b09e 100644 --- a/ventures/lineage/orgchain/assets/index-Dx_1vZ_Y.css +++ b/ventures/lineage/orgchain/assets/index-C1PA9bil.css @@ -1 +1 @@ -:root{--concrete: #e4e3dd;--slab: #f6f5f1;--ink: #141414;--ink-2: #4a4944;--ink-3: #66655f;--signal: #ffc21a;--on-signal: #141414;--ok: #1d7a3a;--danger: #b3261e;--focus: #2346ff;--band: #141414;--band-fg: #f6f5f1;--band-muted: #b0afa8;--shadow: #141414;--mono: ui-monospace, "SF Mono", "Cascadia Mono", "JetBrains Mono", Menlo, Consolas, "Liberation Mono", "DejaVu Sans Mono", monospace;--display: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--t-xs: .75rem;--t-s: .8125rem;--t-m: .9375rem;--t-l: 1.25rem;--gutter: max(16px, env(safe-area-inset-left, 0px));color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--concrete: #151514;--slab: #1e1e1c;--ink: #ecebe4;--ink-2: #b9b8b0;--ink-3: #94938b;--ok: #62c784;--danger: #ff8a7f;--focus: #93a8ff;--band: #0b0b0a;--band-fg: #ecebe4;--band-muted: #9d9c95;--shadow: #4d4c47;color-scheme:dark}}:root[data-theme=dark]{--concrete: #151514;--slab: #1e1e1c;--ink: #ecebe4;--ink-2: #b9b8b0;--ink-3: #94938b;--ok: #62c784;--danger: #ff8a7f;--focus: #93a8ff;--band: #0b0b0a;--band-fg: #ecebe4;--band-muted: #9d9c95;--shadow: #4d4c47;color-scheme:dark}*{box-sizing:border-box}[hidden]{display:none!important}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--concrete);color:var(--ink);font:400 var(--t-m)/1.5 var(--mono)}body.busy{cursor:progress}::selection{background:var(--signal);color:var(--on-signal)}button,select,input,textarea{font:inherit;color:inherit}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}a{color:inherit;text-decoration-thickness:2px;text-underline-offset:3px}b{font-weight:700}.band{background:var(--band);color:var(--band-fg);border-bottom:3px solid var(--ink)}.band-in{max-width:1320px;margin:0 auto;padding:16px var(--gutter) 14px;display:flex;flex-wrap:wrap;gap:14px 32px;align-items:flex-end;justify-content:space-between}.kicker{margin:0 0 8px;font:700 var(--t-xs)/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--band-muted)}.kicker a{color:var(--band-fg)}.wordmark{margin:0;font:900 clamp(2.25rem,6vw,3.5rem)/.84 var(--display);letter-spacing:-.05em;text-transform:uppercase}.lede{margin:10px 0 0;color:var(--band-muted);font-size:var(--t-s);max-width:88ch}.lede b{color:var(--band-fg)}.flags{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.flag{font:700 var(--t-xs)/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;padding:7px 9px 6px;border:2px solid var(--band-fg);background:transparent;color:var(--band-fg);border-radius:0}.flag.hz{background:var(--signal);border-color:var(--signal);color:var(--on-signal)}button.flag{cursor:pointer}button.flag:hover{background:var(--band-fg);color:var(--band)}.clock{background:var(--slab);border-bottom:3px solid var(--ink);position:sticky;top:0;z-index:5}.clock-in{max-width:1320px;margin:0 auto;padding:10px var(--gutter);display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center}.tempo{display:flex;flex-wrap:wrap;align-items:center}.tempo .lab{margin:0 10px 0 0}.seg{font:700 var(--t-xs)/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;padding:9px 10px 8px;border:2px solid var(--ink);background:var(--slab);color:var(--ink);cursor:pointer;border-radius:0;margin-left:-2px}.seg:first-of-type{margin-left:0}.seg:hover:not([aria-pressed=true]){background:var(--concrete)}.seg[aria-pressed=true]{background:var(--ink);color:var(--slab)}.seg:focus-visible{position:relative;z-index:1}.beatno{margin:0;flex:1 1 22ch;font-size:var(--t-s);color:var(--ink-2)}.beatno b{color:var(--ink);font-size:var(--t-m)}.say{max-width:1320px;margin:0 auto;padding:0 var(--gutter) 10px;font-size:var(--t-s);color:var(--ink-2)}.say:empty{display:none}.say.bad{color:var(--danger);font-weight:700}.wrap{max-width:1320px;margin:0 auto;padding:32px var(--gutter) 56px;display:grid;gap:40px}.work{display:grid;gap:36px 28px;align-items:start;grid-template-columns:minmax(0,250px) minmax(0,1fr) minmax(0,390px);grid-template-areas:"hold tree side" "hold time side";grid-template-rows:auto 1fr}.hold-blk{grid-area:hold}.tree-blk{grid-area:tree}.time-blk{grid-area:time}.side{grid-area:side;display:grid;gap:36px;min-width:0}.blk{display:flex;flex-direction:column;align-items:flex-start;min-width:0}.blk>.panel{align-self:stretch}.tab{margin:0;background:var(--ink);color:var(--slab);font:700 var(--t-xs)/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;padding:8px 11px 7px;display:flex;gap:12px;max-width:100%}.tab .sub{font-weight:400;letter-spacing:.06em;text-transform:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tab .sub:empty{display:none}.panel{background:var(--slab);border:3px solid var(--ink);box-shadow:8px 8px 0 var(--shadow);min-width:0}.pad{padding:16px 18px}.lab{display:block;font:700 var(--t-xs)/1.2 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2)}.lab span{font-weight:400;letter-spacing:.04em;text-transform:none}.note{margin:0;font-size:var(--t-s);color:var(--ink-2)}.note p{margin:0 0 12px}.wait{margin:0;padding:4px 16px;color:var(--ink-3);font-size:var(--t-s)}.hint{margin:8px 0 0;font-size:var(--t-xs);color:var(--ink-2)}input:not([type]),input[type=text],select,textarea{width:100%;padding:8px 10px;border:2px solid var(--ink);border-radius:0;background:var(--concrete);min-width:0}textarea{resize:vertical;line-height:1.5}.line{display:flex;flex-wrap:wrap;gap:10px;align-items:stretch}.line input{flex:1 1 12ch;width:auto}.btn{font:700 var(--t-s)/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;padding:10px 12px 9px;background:var(--slab);color:var(--ink);border:2px solid var(--ink);box-shadow:3px 3px 0 var(--shadow);cursor:pointer;border-radius:0}.btn:hover{background:var(--concrete)}.btn:active{transform:translate(3px,3px);box-shadow:none}.btn.primary{background:var(--signal);color:var(--on-signal);border-color:var(--ink)}.btn.danger{background:var(--danger);color:var(--slab)}.btn.sm{font-size:var(--t-xs);padding:7px 9px 6px;box-shadow:2px 2px 0 var(--shadow)}.btn.sm:active{transform:translate(2px,2px)}.btn:disabled,.seg:disabled{cursor:not-allowed;background:var(--concrete);color:var(--ink-3);border-color:var(--ink-3);box-shadow:none;transform:none}.holds{list-style:none;margin:0;padding:0}.holds li+li{border-top:2px solid var(--ink)}.hold{width:100%;display:grid;gap:3px;text-align:left;background:transparent;border:0;padding:12px 18px;cursor:pointer;border-radius:0}.hold:hover .hn{text-decoration:underline;text-underline-offset:3px}.hn{font-weight:700;overflow-wrap:anywhere}.hm{font-size:var(--t-xs);color:var(--ink-2)}.hold.on{background:var(--signal)}.hold.on .hn,.hold.on .hm{color:var(--on-signal)}.hold.gone .hn{text-decoration:line-through;text-decoration-thickness:2px}.holds:not(:empty)~.found{border-top:3px solid var(--ink)}.empty p{margin:0;font-size:var(--t-s);color:var(--ink-2)}.found .lab{margin-bottom:8px}.sample{border-top:2px dashed var(--ink-3)}.tree{padding:12px 0;font-size:.875rem;overflow-x:auto}.row{display:flex;align-items:stretch;min-width:max-content}.sel{flex:1;display:flex;align-items:baseline;text-align:left;background:transparent;border:0;padding:4px 14px 4px 16px;cursor:pointer;line-height:1.55;border-radius:0}.sel:hover .l{text-decoration:underline;text-underline-offset:3px}.g{white-space:pre;color:var(--ink-3);flex:none}.p{white-space:pre;font-weight:700;flex:none}.l{flex:none;color:var(--ink);font-weight:700;white-space:nowrap}.v{flex:1 0 auto;display:flex;gap:5px;justify-content:flex-end;align-items:center;margin-left:2ch}.grp{padding:0 14px 0 16px;line-height:1.55;color:var(--ink-3)}.gl{color:var(--ink-2)}.row.on .sel{background:var(--signal)}.row.on .g,.row.on .p,.row.on .l,.row.on .mk,.row.on .belt{color:var(--on-signal);border-color:var(--on-signal)}.row.gone .l,.row.gone .p{text-decoration:line-through;text-decoration-thickness:2px}.row.gone .l{color:var(--ink-2)}.row.cue .l{font-weight:400;font-style:italic}.mk{font:700 .6875rem/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;padding:3px 5px 2px;border:2px solid currentColor;color:var(--ink-2);white-space:nowrap}.mk.ok{color:var(--ok)}.mk.bad{color:var(--danger)}.belt{display:inline-flex;align-items:center;gap:5px;font:700 .6875rem/1 var(--mono);padding:2px 5px 2px 3px;border:2px solid var(--ink);color:var(--ink);white-space:nowrap}.belt:before{content:"";width:10px;height:10px;flex:none;border:1.5px solid currentColor;background:#f6f5f1}.belt.green:before{background:#1d7a3a}.belt.black:before{background:#141414}.verbs{display:flex;flex-wrap:wrap;border-bottom:3px solid var(--ink)}.verbs button{flex:1 1 auto;font:700 var(--t-s)/1 var(--mono);padding:12px 10px;background:transparent;border:0;border-right:2px solid var(--ink);color:var(--ink-2);cursor:pointer;border-radius:0}.verbs button:last-child{border-right:0}.verbs button.off{color:var(--ink-3)}.verbs button:hover:not([aria-pressed=true]){color:var(--ink);text-decoration:underline;text-underline-offset:3px}.verbs button[aria-pressed=true]{background:var(--ink);color:var(--slab)}.why{margin:0;font-size:var(--t-s);color:var(--ink-2)}.keyline{margin:0;padding:10px 18px;font-size:var(--t-xs);color:var(--ink-2);overflow-wrap:anywhere;border-bottom:1px dashed var(--ink-3)}.keyline:empty{display:none}.why:empty{display:none}.vf{display:grid;gap:6px}.vf .lab{margin-top:8px}.vh{margin:0;font-size:var(--t-s);color:var(--ink-2)}.vh b{color:var(--ink)}.vf .go,.vf .line{margin-top:12px}.vf>.go{justify-self:start}.vf .line .go{margin-top:0}.kinds{border:0;margin:0;padding:0;display:grid;gap:6px;min-width:0}.kinds legend{padding:0;margin:8px 0 6px}.kinds label{display:flex;gap:8px;align-items:baseline;cursor:pointer;font-weight:700}.kinds label span{font-weight:400;font-size:var(--t-s);color:var(--ink-2)}.kinds input{accent-color:var(--ink);margin:0}.ih{padding:16px 18px 14px;border-bottom:3px solid var(--ink)}.eyebrow{margin:0 0 8px;font:700 var(--t-xs)/1.3 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2);overflow-wrap:anywhere}.it{margin:0;font:700 var(--t-l)/1.25 var(--mono);overflow-wrap:anywhere}.idesc{margin:10px 0 0;color:var(--ink-2);font-size:var(--t-s)}.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}.chip{font:700 var(--t-xs)/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;padding:5px 7px 4px;border:2px solid currentColor}.chip.ok{color:var(--ok)}.chip.bad{color:var(--danger)}.ib{padding:4px 18px 18px;display:grid;gap:16px}.fl{margin:0;display:grid}.f{display:grid;gap:4px;padding-top:12px;margin-top:12px;border-top:1px dashed var(--ink-3)}.f:first-child{border-top:0}.f dt{font:700 var(--t-xs)/1.2 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2)}.f dd{margin:0;font-size:var(--t-s);overflow-wrap:anywhere;min-width:0}.list{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:8px;font-size:var(--t-s)}.list .when{color:var(--ink-2)}.code{border:2px solid var(--ink);min-width:0}.code-h{padding:6px 10px;border-bottom:2px solid var(--ink);background:var(--concrete);font:700 var(--t-xs)/1.3 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)}.code pre{margin:0;padding:10px;font-size:var(--t-xs);line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere}.fn{display:block;margin-top:4px;font-size:var(--t-xs);color:var(--ink-2)}.keys{display:grid;gap:10px;min-width:0}.keys .fl{margin-top:-4px}.keys .f:first-child{margin-top:0}.keys .lab:not(:first-child){margin-top:6px}.leaves{margin:0}.leaves code{display:block;margin-top:2px;font:var(--t-xs)/1.5 var(--mono);overflow-wrap:anywhere}.cph{display:flex;align-items:center;justify-content:space-between;gap:8px}.cph span{min-width:0;overflow-wrap:anywhere}.cp{flex:none;font:700 var(--t-xs)/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;padding:5px 8px 4px;border:2px solid var(--ink);border-radius:0;background:var(--slab);color:var(--ink);cursor:pointer}.cp:hover{background:var(--signal);color:var(--on-signal)}.secret{border:2px solid var(--ink)}.hz{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px;background:repeating-linear-gradient(-45deg,var(--signal) 0 12px,#141414 12px 24px)}.hz-l{background:#141414;color:var(--signal);font:700 var(--t-xs)/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;padding:6px 8px 5px}.sb{display:grid;gap:10px;padding:12px}.scrub{flex:1 1 400px;display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center}.scrub .lab{margin:0}.scrub input[type=range]{flex:1 1 120px;min-width:80px;min-width:0;margin:0;height:28px;accent-color:var(--ink);cursor:pointer}.scrub output{font:700 var(--t-s)/1 var(--mono);min-width:12ch;white-space:nowrap}.beats{list-style:none;margin:0;padding:6px 0;max-height:480px;overflow:auto;overscroll-behavior:contain}.beat{padding:10px 18px}.beat+.beat{border-top:1px dashed var(--ink-3)}.bh{margin:0 0 6px;font:700 var(--t-xs)/1.3 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2);display:flex;flex-wrap:wrap;gap:4px 12px}.bt{font-weight:400;letter-spacing:.04em}.beat.now .bh .bn{background:var(--signal);color:var(--on-signal);padding:2px 5px;margin:-2px -5px}.evs{list-style:none;margin:0;padding:0;display:grid;gap:2px}.ev{width:calc(100% + 6px);display:flex;gap:1ch;text-align:left;background:transparent;border:0;padding:3px 6px;margin-left:-6px;cursor:pointer;border-radius:0;font-size:var(--t-s)}.ev .op{flex:none;min-width:9ch;font-weight:700}.ev .es{min-width:0;color:var(--ink-2);overflow-wrap:anywhere}.ev:hover .es{text-decoration:underline;text-underline-offset:3px}.ev.bad .op,.ev.bad .es{color:var(--danger)}.beat.later .bh,.beat.later .op,.beat.later .es{color:var(--ink-3)}.beat.later .ev .op{font-weight:400}.ev.on{background:var(--signal)}.ev.on .op,.ev.on .es{color:var(--on-signal)}.foot{display:grid;gap:10px;color:var(--ink-2);font-size:var(--t-s);max-width:100ch}.foot p{margin:0}.labrow{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.confirm{flex-basis:100%;display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:10px 12px;border:2px dashed var(--ink);color:var(--ink)}@media(min-width:761px){.scrub{flex-wrap:nowrap}}@media(max-width:1120px){.work{grid-template-columns:minmax(0,1fr) minmax(0,370px);grid-template-rows:auto auto 1fr;grid-template-areas:"hold side" "tree side" "time side"}}@media(max-width:760px){.clock{position:static}.work{grid-template-columns:minmax(0,1fr);grid-template-rows:none;grid-template-areas:"hold" "tree" "side" "time"}}@media(max-width:640px){.panel{box-shadow:5px 5px 0 var(--shadow)}.flag.proto{display:none}.tree{font-size:var(--t-s)}.sel,.grp{padding-left:10px}.v .belt{display:none}.beat{padding:10px 14px}.ev{flex-direction:column;gap:0}}@media(prefers-reduced-motion:reduce){.btn:active,.btn.sm:active{transform:none}}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.code-h{margin:0}.mk.sats{color:var(--ink);text-transform:none;letter-spacing:.02em}.ev.money .op{color:var(--ok)}.ev.money.on .op{color:var(--on-signal)}.beat.later .ev.money .op{color:var(--ink-3)}.vf .line.amt{margin-top:0}#clock-pays{white-space:nowrap}.verbs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.verbs button:nth-child(3n){border-right:0}.verbs button:nth-child(-n+3){border-bottom:2px solid var(--ink)}@media(max-width:640px){.v{margin-left:1ch}.mk{padding:3px 4px 2px}}.holds li{display:flex;align-items:stretch}.holds li .hold{flex:1 1 auto;min-width:0;width:auto}.rig{flex:none;display:grid;justify-items:center;align-content:center;gap:4px;padding:8px 12px;border-left:2px solid var(--ink)}.holds li:has(.hold.on) .rig{background:var(--signal);color:var(--on-signal)}.rig .rl{font:700 .625rem/1 var(--mono);letter-spacing:.1em;text-transform:uppercase}.rig .rn{display:flex;align-items:center;gap:6px;font-weight:700}.rb{width:26px;height:26px;padding:0;border:2px solid var(--ink);border-radius:0;background:var(--slab);color:var(--ink);font:700 var(--t-m)/1 var(--mono);cursor:pointer}.rb:hover:not(:disabled){background:var(--concrete)}.rb:disabled{color:var(--ink-3);border-color:var(--ink-3);cursor:not-allowed}.mining{border-top:3px solid var(--ink)}.holds:empty~.mining{display:none}.mrow{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center}.mrow .lab{margin:0}.ev.gas .op{color:var(--ink-2);font-weight:400}.holds li{display:grid}.rig{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 18px 12px;border-left:0}.rig .rl{color:var(--ink-2)}.holds li:has(.hold.on) .rig .rl{color:var(--on-signal)}.verbs button:nth-child(-n+6){border-bottom:2px solid var(--ink)}.verbs button:last-child:nth-child(3n+2){grid-column:span 2}.fund{display:grid;gap:6px;margin-top:14px}.fund .lab{margin-top:4px}.mining .tempo{flex:1 1 auto;flex-wrap:nowrap}.mining .seg{flex:1 1 auto;min-width:0;padding:9px 6px 8px;letter-spacing:.02em}.items li{overflow-wrap:anywhere}.items .btn.sm{margin-left:8px;vertical-align:middle}.bids{list-style:none;margin:6px 0 0;padding:0 0 0 12px;border-left:2px solid var(--ink-3);display:grid;gap:6px}.ev.money.deal .op{color:var(--ink)}.f dd .btn.open{margin-left:8px;vertical-align:middle} +:root{--concrete: #e4e3dd;--slab: #f6f5f1;--ink: #141414;--ink-2: #4a4944;--ink-3: #66655f;--signal: #ffc21a;--on-signal: #141414;--ok: #1d7a3a;--danger: #b3261e;--focus: #2346ff;--band: #141414;--band-fg: #f6f5f1;--band-muted: #b0afa8;--shadow: #141414;--mono: ui-monospace, "SF Mono", "Cascadia Mono", "JetBrains Mono", Menlo, Consolas, "Liberation Mono", "DejaVu Sans Mono", monospace;--display: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--t-xs: .75rem;--t-s: .8125rem;--t-m: .9375rem;--t-l: 1.25rem;--gutter: max(16px, env(safe-area-inset-left, 0px));color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--concrete: #151514;--slab: #1e1e1c;--ink: #ecebe4;--ink-2: #b9b8b0;--ink-3: #94938b;--ok: #62c784;--danger: #ff8a7f;--focus: #93a8ff;--band: #0b0b0a;--band-fg: #ecebe4;--band-muted: #9d9c95;--shadow: #4d4c47;color-scheme:dark}}:root[data-theme=dark]{--concrete: #151514;--slab: #1e1e1c;--ink: #ecebe4;--ink-2: #b9b8b0;--ink-3: #94938b;--ok: #62c784;--danger: #ff8a7f;--focus: #93a8ff;--band: #0b0b0a;--band-fg: #ecebe4;--band-muted: #9d9c95;--shadow: #4d4c47;color-scheme:dark}*{box-sizing:border-box}[hidden]{display:none!important}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--concrete);color:var(--ink);font:400 var(--t-m)/1.5 var(--mono)}body.busy{cursor:progress}::selection{background:var(--signal);color:var(--on-signal)}button,select,input,textarea{font:inherit;color:inherit}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}a{color:inherit;text-decoration-thickness:2px;text-underline-offset:3px}b{font-weight:700}.band{background:var(--band);color:var(--band-fg);border-bottom:3px solid var(--ink)}.band-in{max-width:1320px;margin:0 auto;padding:16px var(--gutter) 14px;display:flex;flex-wrap:wrap;gap:14px 32px;align-items:flex-end;justify-content:space-between}.kicker{margin:0 0 8px;font:700 var(--t-xs)/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--band-muted)}.kicker a{color:var(--band-fg)}.wordmark{margin:0;font:900 clamp(2.25rem,6vw,3.5rem)/.84 var(--display);letter-spacing:-.05em;text-transform:uppercase}.lede{margin:10px 0 0;color:var(--band-muted);font-size:var(--t-s);max-width:88ch}.lede b{color:var(--band-fg)}.flags{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.flag{font:700 var(--t-xs)/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;padding:7px 9px 6px;border:2px solid var(--band-fg);background:transparent;color:var(--band-fg);border-radius:0}.flag.hz{background:var(--signal);border-color:var(--signal);color:var(--on-signal)}button.flag{cursor:pointer}button.flag:hover{background:var(--band-fg);color:var(--band)}.clock{background:var(--slab);border-bottom:3px solid var(--ink);position:sticky;top:0;z-index:5}.clock-in{max-width:1320px;margin:0 auto;padding:10px var(--gutter);display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center}.tempo{display:flex;flex-wrap:wrap;align-items:center}.tempo .lab{margin:0 10px 0 0}.seg{font:700 var(--t-xs)/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;padding:9px 10px 8px;border:2px solid var(--ink);background:var(--slab);color:var(--ink);cursor:pointer;border-radius:0;margin-left:-2px}.seg:first-of-type{margin-left:0}.seg:hover:not([aria-pressed=true]){background:var(--concrete)}.seg[aria-pressed=true]{background:var(--ink);color:var(--slab)}.seg:focus-visible{position:relative;z-index:1}.beatno{margin:0;flex:1 1 22ch;font-size:var(--t-s);color:var(--ink-2)}.beatno b{color:var(--ink);font-size:var(--t-m)}.say{max-width:1320px;margin:0 auto;padding:0 var(--gutter) 10px;font-size:var(--t-s);color:var(--ink-2)}.say:empty{display:none}.say.bad{color:var(--danger);font-weight:700}.wrap{max-width:1320px;margin:0 auto;padding:32px var(--gutter) 56px;display:grid;gap:40px}.work{display:grid;gap:36px 28px;align-items:start;grid-template-columns:minmax(0,250px) minmax(0,1fr) minmax(0,390px);grid-template-areas:"hold tree side" "hold time side";grid-template-rows:auto 1fr}.hold-blk{grid-area:hold}.tree-blk{grid-area:tree}.time-blk{grid-area:time}.side{grid-area:side;display:grid;gap:36px;min-width:0}.blk{display:flex;flex-direction:column;align-items:flex-start;min-width:0}.blk>.panel{align-self:stretch}.tab{margin:0;background:var(--ink);color:var(--slab);font:700 var(--t-xs)/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;padding:8px 11px 7px;display:flex;gap:12px;max-width:100%}.tab .sub{font-weight:400;letter-spacing:.06em;text-transform:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tab .sub:empty{display:none}.panel{background:var(--slab);border:3px solid var(--ink);box-shadow:8px 8px 0 var(--shadow);min-width:0}.pad{padding:16px 18px}.lab{display:block;font:700 var(--t-xs)/1.2 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2)}.lab span{font-weight:400;letter-spacing:.04em;text-transform:none}.note{margin:0;font-size:var(--t-s);color:var(--ink-2)}.note p{margin:0 0 12px}.wait{margin:0;padding:4px 16px;color:var(--ink-3);font-size:var(--t-s)}.hint{margin:8px 0 0;font-size:var(--t-xs);color:var(--ink-2)}input:not([type]),input[type=text],select,textarea{width:100%;padding:8px 10px;border:2px solid var(--ink);border-radius:0;background:var(--concrete);min-width:0}textarea{resize:vertical;line-height:1.5}.line{display:flex;flex-wrap:wrap;gap:10px;align-items:stretch}.line input{flex:1 1 12ch;width:auto}.btn{font:700 var(--t-s)/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;padding:10px 12px 9px;background:var(--slab);color:var(--ink);border:2px solid var(--ink);box-shadow:3px 3px 0 var(--shadow);cursor:pointer;border-radius:0}.btn:hover{background:var(--concrete)}.btn:active{transform:translate(3px,3px);box-shadow:none}.btn.primary{background:var(--signal);color:var(--on-signal);border-color:var(--ink)}.btn.danger{background:var(--danger);color:var(--slab)}.btn.sm{font-size:var(--t-xs);padding:7px 9px 6px;box-shadow:2px 2px 0 var(--shadow)}.btn.sm:active{transform:translate(2px,2px)}.btn:disabled,.seg:disabled{cursor:not-allowed;background:var(--concrete);color:var(--ink-3);border-color:var(--ink-3);box-shadow:none;transform:none}.holds{list-style:none;margin:0;padding:0}.holds li+li{border-top:2px solid var(--ink)}.hold{width:100%;display:grid;gap:3px;text-align:left;background:transparent;border:0;padding:12px 18px;cursor:pointer;border-radius:0}.hold:hover .hn{text-decoration:underline;text-underline-offset:3px}.hn{font-weight:700;overflow-wrap:anywhere}.hm{font-size:var(--t-xs);color:var(--ink-2)}.hold.on{background:var(--signal)}.hold.on .hn,.hold.on .hm{color:var(--on-signal)}.hold.gone .hn{text-decoration:line-through;text-decoration-thickness:2px}.holds:not(:empty)~.found{border-top:3px solid var(--ink)}.empty p{margin:0;font-size:var(--t-s);color:var(--ink-2)}.found .lab{margin-bottom:8px}.sample{border-top:2px dashed var(--ink-3)}.tree{padding:12px 0;font-size:.875rem;overflow-x:auto}.row{display:flex;align-items:stretch;min-width:max-content}.sel{flex:1;display:flex;align-items:baseline;text-align:left;background:transparent;border:0;padding:4px 14px 4px 16px;cursor:pointer;line-height:1.55;border-radius:0}.sel:hover .l{text-decoration:underline;text-underline-offset:3px}.g{white-space:pre;color:var(--ink-3);flex:none}.p{white-space:pre;font-weight:700;flex:none}.l{flex:none;color:var(--ink);font-weight:700;white-space:nowrap}.v{flex:1 0 auto;display:flex;gap:5px;justify-content:flex-end;align-items:center;margin-left:2ch}.grp{padding:0 14px 0 16px;line-height:1.55;color:var(--ink-3)}.gl{color:var(--ink-2)}.row.on .sel{background:var(--signal)}.row.on .g,.row.on .p,.row.on .l,.row.on .mk,.row.on .belt{color:var(--on-signal);border-color:var(--on-signal)}.row.gone .l,.row.gone .p{text-decoration:line-through;text-decoration-thickness:2px}.row.gone .l{color:var(--ink-2)}.row.cue .l{font-weight:400;font-style:italic}.mk{font:700 .6875rem/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;padding:3px 5px 2px;border:2px solid currentColor;color:var(--ink-2);white-space:nowrap}.mk.ok{color:var(--ok)}.mk.bad{color:var(--danger)}.belt{display:inline-flex;align-items:center;gap:5px;font:700 .6875rem/1 var(--mono);padding:2px 5px 2px 3px;border:2px solid var(--ink);color:var(--ink);white-space:nowrap}.belt:before{content:"";width:10px;height:10px;flex:none;border:1.5px solid currentColor;background:#f6f5f1}.belt.green:before{background:#1d7a3a}.belt.black:before{background:#141414}.verbs{display:flex;flex-wrap:wrap;border-bottom:3px solid var(--ink)}.verbs button{flex:1 1 auto;font:700 var(--t-s)/1 var(--mono);padding:12px 10px;background:transparent;border:0;border-right:2px solid var(--ink);color:var(--ink-2);cursor:pointer;border-radius:0}.verbs button:last-child{border-right:0}.verbs button.off{color:var(--ink-3)}.verbs button:hover:not([aria-pressed=true]){color:var(--ink);text-decoration:underline;text-underline-offset:3px}.verbs button[aria-pressed=true]{background:var(--ink);color:var(--slab)}.why{margin:0;font-size:var(--t-s);color:var(--ink-2)}.keyline{margin:0;padding:10px 18px;font-size:var(--t-xs);color:var(--ink-2);overflow-wrap:anywhere;border-bottom:1px dashed var(--ink-3)}.keyline:empty{display:none}.why:empty{display:none}.vf{display:grid;gap:6px}.vf .lab{margin-top:8px}.vh{margin:0;font-size:var(--t-s);color:var(--ink-2)}.vh b{color:var(--ink)}.vf .go,.vf .line{margin-top:12px}.vf>.go{justify-self:start}.vf .line .go{margin-top:0}.kinds{border:0;margin:0;padding:0;display:grid;gap:6px;min-width:0}.kinds legend{padding:0;margin:8px 0 6px}.kinds label{display:flex;gap:8px;align-items:baseline;cursor:pointer;font-weight:700}.kinds label span{font-weight:400;font-size:var(--t-s);color:var(--ink-2)}.kinds input{accent-color:var(--ink);margin:0}.ih{padding:16px 18px 14px;border-bottom:3px solid var(--ink)}.eyebrow{margin:0 0 8px;font:700 var(--t-xs)/1.3 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2);overflow-wrap:anywhere}.it{margin:0;font:700 var(--t-l)/1.25 var(--mono);overflow-wrap:anywhere}.idesc{margin:10px 0 0;color:var(--ink-2);font-size:var(--t-s)}.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}.chip{font:700 var(--t-xs)/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;padding:5px 7px 4px;border:2px solid currentColor}.chip.ok{color:var(--ok)}.chip.bad{color:var(--danger)}.ib{padding:4px 18px 18px;display:grid;gap:16px}.fl{margin:0;display:grid}.f{display:grid;gap:4px;padding-top:12px;margin-top:12px;border-top:1px dashed var(--ink-3)}.f:first-child{border-top:0}.f dt{font:700 var(--t-xs)/1.2 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2)}.f dd{margin:0;font-size:var(--t-s);overflow-wrap:anywhere;min-width:0}.list{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:8px;font-size:var(--t-s)}.list .when{color:var(--ink-2)}.code{border:2px solid var(--ink);min-width:0}.code-h{padding:6px 10px;border-bottom:2px solid var(--ink);background:var(--concrete);font:700 var(--t-xs)/1.3 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)}.code pre{margin:0;padding:10px;font-size:var(--t-xs);line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere}.fn{display:block;margin-top:4px;font-size:var(--t-xs);color:var(--ink-2)}.keys{display:grid;gap:10px;min-width:0}.keys .fl{margin-top:-4px}.keys .f:first-child{margin-top:0}.keys .lab:not(:first-child){margin-top:6px}.leaves{margin:0}.leaves code{display:block;margin-top:2px;font:var(--t-xs)/1.5 var(--mono);overflow-wrap:anywhere}.cph{display:flex;align-items:center;justify-content:space-between;gap:8px}.cph span{min-width:0;overflow-wrap:anywhere}.cp{flex:none;font:700 var(--t-xs)/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;padding:5px 8px 4px;border:2px solid var(--ink);border-radius:0;background:var(--slab);color:var(--ink);cursor:pointer}.cp:hover{background:var(--signal);color:var(--on-signal)}.secret{border:2px solid var(--ink)}.hz{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px;background:repeating-linear-gradient(-45deg,var(--signal) 0 12px,#141414 12px 24px)}.hz-l{background:#141414;color:var(--signal);font:700 var(--t-xs)/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;padding:6px 8px 5px}.sb{display:grid;gap:10px;padding:12px}.scrub{flex:1 1 400px;display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center}.scrub .lab{margin:0}.scrub input[type=range]{flex:1 1 120px;min-width:80px;min-width:0;margin:0;height:28px;accent-color:var(--ink);cursor:pointer}.scrub output{font:700 var(--t-s)/1 var(--mono);min-width:12ch;white-space:nowrap}.beats{list-style:none;margin:0;padding:6px 0;max-height:480px;overflow:auto;overscroll-behavior:contain}.beat{padding:10px 18px}.beat+.beat{border-top:1px dashed var(--ink-3)}.bh{margin:0 0 6px;font:700 var(--t-xs)/1.3 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2);display:flex;flex-wrap:wrap;gap:4px 12px}.bt{font-weight:400;letter-spacing:.04em}.beat.now .bh .bn{background:var(--signal);color:var(--on-signal);padding:2px 5px;margin:-2px -5px}.evs{list-style:none;margin:0;padding:0;display:grid;gap:2px}.ev{width:calc(100% + 6px);display:flex;gap:1ch;text-align:left;background:transparent;border:0;padding:3px 6px;margin-left:-6px;cursor:pointer;border-radius:0;font-size:var(--t-s)}.ev .op{flex:none;min-width:9ch;font-weight:700}.ev .es{min-width:0;color:var(--ink-2);overflow-wrap:anywhere}.ev:hover .es{text-decoration:underline;text-underline-offset:3px}.ev.bad .op,.ev.bad .es{color:var(--danger)}.beat.later .bh,.beat.later .op,.beat.later .es{color:var(--ink-3)}.beat.later .ev .op{font-weight:400}.ev.on{background:var(--signal)}.ev.on .op,.ev.on .es{color:var(--on-signal)}.foot{display:grid;gap:10px;color:var(--ink-2);font-size:var(--t-s);max-width:100ch}.foot p{margin:0}.labrow{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.confirm{flex-basis:100%;display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:10px 12px;border:2px dashed var(--ink);color:var(--ink)}@media(min-width:761px){.scrub{flex-wrap:nowrap}}@media(max-width:1120px){.work{grid-template-columns:minmax(0,1fr) minmax(0,370px);grid-template-rows:auto auto 1fr;grid-template-areas:"hold side" "tree side" "time side"}}@media(max-width:760px){.clock{position:static}.work{grid-template-columns:minmax(0,1fr);grid-template-rows:none;grid-template-areas:"hold" "tree" "side" "time"}}@media(max-width:640px){.panel{box-shadow:5px 5px 0 var(--shadow)}.flag.proto{display:none}.tree{font-size:var(--t-s)}.sel,.grp{padding-left:10px}.v .belt{display:none}.beat{padding:10px 14px}.ev{flex-direction:column;gap:0}}@media(prefers-reduced-motion:reduce){.btn:active,.btn.sm:active{transform:none}}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.code-h{margin:0}.mk.sats{color:var(--ink);text-transform:none;letter-spacing:.02em}.ev.money .op{color:var(--ok)}.ev.money.on .op{color:var(--on-signal)}.beat.later .ev.money .op{color:var(--ink-3)}.vf .line.amt{margin-top:0}#clock-pays{white-space:nowrap}.verbs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.verbs button:nth-child(3n){border-right:0}.verbs button:nth-child(-n+3){border-bottom:2px solid var(--ink)}@media(max-width:640px){.v{margin-left:1ch}.mk{padding:3px 4px 2px}}.holds li{display:flex;align-items:stretch}.holds li .hold{flex:1 1 auto;min-width:0;width:auto}.rig{flex:none;display:grid;justify-items:center;align-content:center;gap:4px;padding:8px 12px;border-left:2px solid var(--ink)}.holds li:has(.hold.on) .rig{background:var(--signal);color:var(--on-signal)}.rig .rl{font:700 .625rem/1 var(--mono);letter-spacing:.1em;text-transform:uppercase}.rig .rn{display:flex;align-items:center;gap:6px;font-weight:700}.rb{width:26px;height:26px;padding:0;border:2px solid var(--ink);border-radius:0;background:var(--slab);color:var(--ink);font:700 var(--t-m)/1 var(--mono);cursor:pointer}.rb:hover:not(:disabled){background:var(--concrete)}.rb:disabled{color:var(--ink-3);border-color:var(--ink-3);cursor:not-allowed}.mining{border-top:3px solid var(--ink)}.holds:empty~.mining{display:none}.mrow{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center}.mrow .lab{margin:0}.ev.gas .op{color:var(--ink-2);font-weight:400}.holds li{display:grid}.rig{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 18px 12px;border-left:0}.rig .rl{color:var(--ink-2)}.holds li:has(.hold.on) .rig .rl{color:var(--on-signal)}.verbs button:nth-child(-n+6){border-bottom:2px solid var(--ink)}.verbs button:last-child:nth-child(3n+2){grid-column:span 2}.fund{display:grid;gap:6px;margin-top:14px}.fund .lab{margin-top:4px}.mining .tempo{flex:1 1 auto;flex-wrap:nowrap}.mining .seg{flex:1 1 auto;min-width:0;padding:9px 6px 8px;letter-spacing:.02em}.items li{overflow-wrap:anywhere}.items .btn.sm{margin-left:8px;vertical-align:middle}.bids{list-style:none;margin:6px 0 0;padding:0 0 0 12px;border-left:2px solid var(--ink-3);display:grid;gap:6px}.ev.money.deal .op{color:var(--ink)}.f dd .btn.open{margin-left:8px;vertical-align:middle}.ring{margin:2px 0 4px}.ring .f{padding-top:8px;margin-top:8px}.ring .f:first-child{margin-top:0;padding-top:0}.ring .f dd{font:var(--t-xs)/1.5 var(--mono)} diff --git a/ventures/lineage/orgchain/assets/index-CcoNSRTp.js b/ventures/lineage/orgchain/assets/index-CcoNSRTp.js new file mode 100644 index 0000000..45061ee --- /dev/null +++ b/ventures/lineage/orgchain/assets/index-CcoNSRTp.js @@ -0,0 +1,2065 @@ +(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const o of s)if(o.type==="childList")for(const i of o.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&r(i)}).observe(document,{childList:!0,subtree:!0});function n(s){const o={};return s.integrity&&(o.integrity=s.integrity),s.referrerPolicy&&(o.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?o.credentials="include":s.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(s){if(s.ep)return;s.ep=!0;const o=n(s);fetch(s.href,o)}})();const Js=5e9,Vc=2**52,ef=(e,t)=>[[Vc+e*Js,Vc+e*Js+t]];function tf(e,t,n){const r=[];for(const[s,o]of e){const i=o-s;if(t>=i){t-=i;continue}const a=Math.min(n,i-t);if(a&&r.push([s+t,s+t+a]),n-=a,t=0,!n)break}return r}function nf(e,t){var n;return(n=tf(e,t,1)[0])==null?void 0:n[0]}function zs(e,t){let n=0;for(const[r,s]of e){if(t>=r&&ti.ranges);let o=0;return e.vout.map(i=>{const a=tf(s,o,Number(i.value));return o+=Number(i.value),a})}function Ri(e){if(!Number.isSafeInteger(e)||e<0)throw new Error(`Wrong positive integer: ${e}`)}function k0(e){if(typeof e!="boolean")throw new Error(`Expected boolean, not ${e}`)}function sf(e,...t){if(!(e instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(t.length>0&&!t.includes(e.length))throw new TypeError(`Expected Uint8Array of length ${t}, not of length=${e.length}`)}function S0(e){if(typeof e!="function"||typeof e.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");Ri(e.outputLen),Ri(e.blockLen)}function $0(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function _0(e,t){sf(e);const n=t.outputLen;if(e.lengthnew DataView(e.buffer,e.byteOffset,e.byteLength),Et=(e,t)=>e<<32-t|e>>>t,B0=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!B0)throw new Error("Non little-endian hardware is not supported");Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function T0(e){if(typeof e!="string")throw new TypeError(`utf8ToBytes expected string, got ${typeof e}`);return new TextEncoder().encode(e)}function of(e){if(typeof e=="string"&&(e=T0(e)),!(e instanceof Uint8Array))throw new TypeError(`Expected input type is Uint8Array (got ${typeof e})`);return e}let I0=class{clone(){return this._cloneInto()}};function af(e){const t=r=>e().update(of(r)).digest(),n=e();return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=()=>e(),t}function O0(e,t,n,r){if(typeof e.setBigUint64=="function")return e.setBigUint64(t,n,r);const s=BigInt(32),o=BigInt(4294967295),i=Number(n>>s&o),a=Number(n&o),c=r?4:0,u=r?0:4;e.setUint32(t+c,i,r),e.setUint32(t+u,a,r)}let C0=class extends I0{constructor(t,n,r,s){super(),this.blockLen=t,this.outputLen=n,this.padOffset=r,this.isLE=s,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(t),this.view=ri(this.buffer)}update(t){ni.exists(this);const{view:n,buffer:r,blockLen:s}=this;t=of(t);const o=t.length;for(let i=0;is-i&&(this.process(r,0),i=0);for(let f=i;fl.length)throw new Error("_sha2: outputLen bigger than state");for(let f=0;fe&t^~e&n,U0=(e,t,n)=>e&t^e&n^t&n,N0=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),Wt=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Gt=new Uint32Array(64);let cf=class extends C0{constructor(){super(64,32,8,!1),this.A=Wt[0]|0,this.B=Wt[1]|0,this.C=Wt[2]|0,this.D=Wt[3]|0,this.E=Wt[4]|0,this.F=Wt[5]|0,this.G=Wt[6]|0,this.H=Wt[7]|0}get(){const{A:t,B:n,C:r,D:s,E:o,F:i,G:a,H:c}=this;return[t,n,r,s,o,i,a,c]}set(t,n,r,s,o,i,a,c){this.A=t|0,this.B=n|0,this.C=r|0,this.D=s|0,this.E=o|0,this.F=i|0,this.G=a|0,this.H=c|0}process(t,n){for(let f=0;f<16;f++,n+=4)Gt[f]=t.getUint32(n,!1);for(let f=16;f<64;f++){const d=Gt[f-15],h=Gt[f-2],p=Et(d,7)^Et(d,18)^d>>>3,g=Et(h,17)^Et(h,19)^h>>>10;Gt[f]=g+Gt[f-7]+p+Gt[f-16]|0}let{A:r,B:s,C:o,D:i,E:a,F:c,G:u,H:l}=this;for(let f=0;f<64;f++){const d=Et(a,6)^Et(a,11)^Et(a,25),h=l+d+P0(a,c,u)+N0[f]+Gt[f]|0,g=(Et(r,2)^Et(r,13)^Et(r,22))+U0(r,s,o)|0;l=u,u=c,c=a,a=i+h|0,i=o,o=s,s=r,r=h+g|0}r=r+this.A|0,s=s+this.B|0,o=o+this.C|0,i=i+this.D|0,a=a+this.E|0,c=c+this.F|0,u=u+this.G|0,l=l+this.H|0,this.set(r,s,o,i,a,c,u,l)}roundClean(){Gt.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}},L0=class extends cf{constructor(){super(),this.A=-1056596264,this.B=914150663,this.C=812702999,this.D=-150054599,this.E=-4191439,this.F=1750603025,this.G=1694076839,this.H=-1090891868,this.outputLen=28}};const Hi=af(()=>new cf);af(()=>new L0);function R0(e,t){if(e.length>t)throw new TypeError(`Data is larger than array size: ${e.length} > ${t}`)}function H0(e){if(e.match(/[^a-fA-f0-9]/)!==null)throw new TypeError("Invalid characters in hex string: "+e);if(e.length%2!==0)throw new Error(`Length of hex string is invalid: ${e.length}`)}function j0(e){if(e>Number.MAX_SAFE_INTEGER)throw new TypeError("Number exceeds safe bounds!")}const{getRandomValues:K0}=crypto??globalThis.crypto??window.crypto;function D0(e=32){if(typeof K0=="function")return crypto.getRandomValues(new Uint8Array(e));throw new Error("Crypto module missing getRandomValues!")}function M0(e,t,n="be"){t===void 0&&(t=e.length),R0(e,t);const r=new Uint8Array(t).fill(0),s=n==="be"?0:t-e.length;return r.set(e,s),r}function uf(e){let t,n=0;const r=e.reduce((o,i)=>o+i.length,0),s=new Uint8Array(r);for(t=0;t0||(i.length^a)>0?"":"1";c in o||u>0;)l=o[c],l=l>0?l*256+u:u,u=l/s|0,o[c]=l%s,c++;for(;c-- >0;)i+=r[o[c]];return n&&i.length%4>0?i+"=".repeat(4-i.length%4):i}function z0(e,t){const n=ff(t),r=n.length,s=[],o=[];e=e.replace("=","");let i,a=0,c,u;for(i=0;i0||(o.length^i)>0||o.push(0);a in s||c>0;)u=s[a],u=u>0?u*r+c:c,c=u>>8,s[a]=u%256,a++}for(;a-- >0;)o.push(s[a]);return new Uint8Array(o)}function lf(e){return Hi(Hi(e))}function F0(e){const t=lf(e);return uf([e,t.slice(0,4)])}function W0(e){const t=e.slice(0,-4),n=e.slice(-4);if(lf(t).slice(0,4).toString()!==n.toString())throw new Error("Invalid checksum!");return t}const qc={encode:q0,decode:z0},df={encode:e=>{const t=F0(e);return qc.encode(t,"base58")},decode:e=>{const t=qc.decode(e,"base58");return W0(t)}},hf="qpzry9x8gf2tvdw0s3jn54khce6mua7l",G0=[996825010,642813549,513874426,1027748829,705979059],Qs=[{version:0,name:"bech32",const:1},{version:1,name:"bech32m",const:734539939}];function pf(e){let t=1;for(let n=0;n>25;t=(t&33554431)<<5^e[n];for(let s=0;s<5;++s)(r>>s&1)!==0&&(t^=G0[s])}return t}function gf(e){const t=[];let n;for(n=0;n>5);for(t.push(0),n=0;n>5*(5-i)&31);return o}function mf(e,t,n,r=!0){const s=[];let o=0,i=0;const a=(1<>t>0)throw new Error("Failed to perform base conversion. Invalid value: "+String(u));for(o=(o<=n;)i-=n,s.push(o>>i&a)}if(r)i>0&&s.push(o<=t||(o<0)throw new Error("Failed to perform base conversion. Invalid Size!");return s}function J0(e,t,n){const r=t.concat(X0(e,t,n));let s=e+"1";for(let o=0;oo.version===t[0])??Qs[0];if(!Y0(r,t,s))throw new Error("Checksum verification failed!");return[r,t.slice(0,t.length-6)]}function Q0(e){let t,n,r=!1,s=!1;for(t=0;t126)return!1;n>=97&&n<=122&&(r=!0),n>=65&&n<=90&&(s=!0)}return!(r&&s)}function ep(e){const t=e.lastIndexOf("1");return!(t<1||t+7>e.length||e.length>90)}function tp(e,t="bc",n=0){const r=[n,...mf([...e],8,5)],s=Qs.find(i=>i.version===n)??Qs[0],o=J0(t,r,s);return bf(o),o}function bf(e){e=e.toLowerCase();const t=e.split("1",1)[0],[n,r]=yf(e),s=mf(r.slice(1),5,8,!1),o=s.length;switch(!0){case t!==n:throw new Error("Returned hrp string is invalid.");case(s===null||o<2||o>40):throw new Error("Decoded string is invalid or out of spec.");case r[0]>16:throw new Error("Returned version bit is out of range.");default:return Uint8Array.from(s)}}function np(e){e=e.toLowerCase();const[t,n]=yf(e);return n[0]}const wf={encode:tp,decode:bf,version:np},xf="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",vf="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",rp=new TextEncoder;function Ef(e,t=!1,n=!0){typeof e=="string"&&(e=rp.encode(e));const r=t?vf:xf;let s="",o=0,i=0;for(let a=0;a=6;)o-=6,s+=r[i>>o&63];if(o>0)for(i<<=6-o,s+=r[i&63];o<6;)s+=n?"=":"",o+=2;return s}function kf(e,t=!1){const n=t||e.includes("-")||e.includes("_")?vf.split(""):xf.split("");e=e.replace(/=+$/,"");const r=e.split("");let s=0,o=0;const i=[];for(let a=0;a=8&&(s-=8,i.push(o>>>s&255))}return new Uint8Array(i)}const Sf={encode:Ef,decode:kf},$f={encode:e=>Ef(e,!0,!1),decode:e=>kf(e,!0)},sp=BigInt(0),op=BigInt(255),_f=BigInt(256);function ip(e){if(e<=0xffn)return 1;if(e<=0xffffn)return 2;if(e<=0xffffffffn)return 4;if(e<=0xffffffffffffffffn)return 8;if(e<=0xffffffffffffffffffffffffffffffffn)return 16;if(e<=0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffn)return 32;throw new TypeError("Must specify a fixed buffer size for bigints greater than 32 bytes.")}function ap(e,t,n="be"){t===void 0&&(t=ip(e));const r=n==="le",s=new ArrayBuffer(t),o=new DataView(s);let i=r?0:t-1;for(;e>sp;){const a=e&op,c=Number(a);r?o.setUint8(i++,c):o.setUint8(i--,c),e=(e-a)/_f}return new Uint8Array(s)}function cp(e){let t=BigInt(0);for(let n=e.length-1;n>=0;n--)t=t*_f+BigInt(e[n]);return BigInt(t)}function up(e){const t=e.split("").map(Number);if(t.length%8!==0)throw new Error(`Binary array is invalid length: ${e.length}`);const n=new Uint8Array(t.length/8);for(let r=0,s=0;r255)throw new Error(`Invalid byte value: ${r}. Byte values must be between 0 and 255.`);for(let s=7;s>=0;s--,n++)t[n]=r>>s&1}return t.join("")}function lp(e){if(e<=255)return 1;if(e<=65535)return 2;if(e<=4294967295)return 4;throw new TypeError("Numbers larger than 4 bytes must specify a fixed size!")}function dp(e,t,n="be"){t===void 0&&(t=lp(e));const r=n==="le",s=new ArrayBuffer(t),o=new DataView(s);let i=r?0:t-1;for(;e>0;){const a=e&255;r?o.setUint8(i++,e):o.setUint8(i--,e),e=(e-a)/256}return new Uint8Array(s)}function hp(e){let t=0;for(let n=e.length-1;n>=0;n--)t=t*256+e[n],j0(t);return t}const pp=new TextEncoder,gp=new TextDecoder;function Ea(e){return pp.encode(e)}function si(e){return gp.decode(e)}function mp(e,t){H0(e);const n=e.length/2;if(t===void 0&&(t=n),n>t)throw new TypeError(`Hex string is larger than array size: ${n} > ${t}`);return t}function yp(e,t,n="le"){t=mp(e,t);const r=n==="le",s=new ArrayBuffer(t),o=new DataView(s);let i=r?0:t-1;for(let a=0;atypeof r=="bigint"?`${r}n`:r);return Ea(t)}function xp(e,t,n){if(e instanceof ArrayBuffer)return new Uint8Array(e);if(e instanceof Uint8Array)return M0(e,t,n);if(typeof e=="string")return yp(e,t,n);if(typeof e=="bigint")return ap(e,t,n);if(typeof e=="number")return dp(e,t,n);if(typeof e=="boolean")return Uint8Array.of(e?1:0);throw TypeError("Unsupported format:"+typeof e)}var ee;let S=(ee=class extends Uint8Array{static random(t=32){const n=D0(t);return new ee(n,t)}constructor(t,n,r){const s=xp(t,n,r);super(s)}get arr(){return[...this]}get num(){return this.toNum()}get big(){return this.toBig()}get str(){return this.toStr()}get hex(){return this.toHex()}get raw(){return new Uint8Array(this)}get bin(){return this.toBin()}get b58chk(){return this.tob58chk()}get base64(){return this.toBase64()}get b64url(){return this.toB64url()}get digest(){return this.toHash()}get id(){return this.toHash().hex}get stream(){return new Ir(this)}toNum(t="be"){const n=t==="be"?this.reverse():this;return hp(n)}toBin(){return fp(this)}toBig(t="be"){const n=t==="be"?this.reverse():this;return cp(n)}toHash(){const t=Hi(this);return new ee(t)}toJson(){const t=si(this);return JSON.parse(t)}toBech32(t,n=0){return wf.encode(this,t,n)}toStr(){return si(this)}toHex(){return bp(this)}toBytes(){return new Uint8Array(this)}tob58chk(){return df.encode(this)}toBase64(){return Sf.encode(this)}toB64url(){return $f.encode(this)}prepend(t){return ee.join([ee.bytes(t),this])}append(t){return ee.join([this,ee.bytes(t)])}slice(t,n){const r=new Uint8Array(this).slice(t,n);return new ee(r)}subarray(t,n){const r=new Uint8Array(this).subarray(t,n);return new ee(r)}reverse(){const t=new Uint8Array(this).reverse();return new ee(t)}write(t,n){const r=ee.bytes(t);this.set(r,n)}prefixSize(t){const n=ee.varInt(this.length,t);return ee.join([n,this])}static from(t){return new ee(Uint8Array.from(t))}static of(...t){return new ee(Uint8Array.of(...t))}static join(t){const n=t.map(s=>ee.bytes(s)),r=uf(n);return new ee(r)}static varInt(t,n){if(t<253)return ee.num(t,1);if(t<65536)return ee.of(253,...ee.num(t,2,n));if(t<4294967296)return ee.of(254,...ee.num(t,4,n));if(BigInt(t)<0x10000000000000000n)return ee.of(255,...ee.num(t,8,n));throw new Error(`Value is too large: ${t}`)}},ee.num=vp,ee.big=kp,ee.bin=Ep,ee.raw=Sp,ee.str=$p,ee.hex=_p,ee.bytes=Ap,ee.json=Bp,ee.base64=Tp,ee.b64url=Ip,ee.bech32=Op,ee.b58chk=Cp,ee.encode=Ea,ee.decode=si,ee);function vp(e,t,n){return new S(e,t,n)}function Ep(e,t,n){return new S(up(e),t,n)}function kp(e,t,n){return new S(e,t,n)}function Sp(e,t,n){return new S(e,t,n)}function $p(e,t,n){return new S(Ea(e),t,n)}function _p(e,t,n){return new S(e,t,n)}function Ap(e,t,n){return new S(e,t,n)}function Bp(e){return new S(wp(e))}function Tp(e){return new S(Sf.decode(e))}function Ip(e){return new S($f.decode(e))}function Op(e){return new S(wf.decode(e))}function Cp(e){return new S(df.decode(e))}let Ir=class{constructor(t){this.data=S.bytes(t),this.size=this.data.length}peek(t){if(t>this.size)throw new Error(`Size greater than stream: ${t} > ${this.size}`);return new S(this.data.slice(0,t))}read(t){t=t??this.readSize();const n=this.peek(t);return this.data=this.data.slice(t),this.size=this.data.length,n}readSize(t){const n=this.read(1).num;switch(!0){case(n>=0&&n<253):return n;case n===253:return this.read(2).toNum(t);case n===254:return this.read(4).toNum(t);case n===255:return this.read(8).toNum(t);default:throw new Error(`Varint is out of range: ${n}`)}}};function Ut(e,t){const n=S.bytes(e);if(n.length!==t)throw new Error(`Invalid input size: ${n.hex} !== ${t}`)}function Ve(e,t){if(t)throw new Error(e);return!1}function Fs(e,...t){const n=S.str(e).digest.raw,r=t.map(s=>S.bytes(s));return S.join([n,n,S.join(r)]).digest}const Af={OP_0:0,OP_PUSHDATA1:76,OP_PUSHDATA2:77,OP_PUSHDATA4:78,OP_1NEGATE:79,OP_SUCCESS80:80,OP_1:81,OP_2:82,OP_3:83,OP_4:84,OP_5:85,OP_6:86,OP_7:87,OP_8:88,OP_9:89,OP_10:90,OP_11:91,OP_12:92,OP_13:93,OP_14:94,OP_15:95,OP_16:96,OP_NOP:97,OP_SUCCESS98:98,OP_IF:99,OP_NOTIF:100,OP_ELSE:103,OP_ENDIF:104,OP_VERIFY:105,OP_RETURN:106,OP_TOALTSTACK:107,OP_FROMALTSTACK:108,OP_2DROP:109,OP_2DUP:110,OP_3DUP:111,OP_2OVER:112,OP_2ROT:113,OP_2SWAP:114,OP_IFDUP:115,OP_DEPTH:116,OP_DROP:117,OP_DUP:118,OP_NIP:119,OP_OVER:120,OP_PICK:121,OP_ROLL:122,OP_ROT:123,OP_SWAP:124,OP_TUCK:125,OP_SUCCESS126:126,OP_SUCCESS127:127,OP_SUCCESS128:128,OP_SUCCESS129:129,OP_SIZE:130,OP_SUCCESS131:131,OP_SUCCESS132:132,OP_SUCCESS133:133,OP_SUCCESS134:134,OP_EQUAL:135,OP_EQUALVERIFY:136,OP_SUCCESS137:137,OP_SUCCESS138:138,OP_1ADD:139,OP_1SUB:140,OP_SUCCESS141:141,OP_SUCCESS142:142,OP_NEGATE:143,OP_ABS:144,OP_NOT:145,OP_0NOTEQUAL:146,OP_ADD:147,OP_SUB:148,OP_SUCCESS149:149,OP_SUCCESS150:150,OP_SUCCESS151:151,OP_SUCCESS152:152,OP_SUCCESS153:153,OP_BOOLAND:154,OP_BOOLOR:155,OP_NUMEQUAL:156,OP_NUMEQUALVERIFY:157,OP_NUMNOTEQUAL:158,OP_LESSTHAN:159,OP_GREATERTHAN:160,OP_LESSTHANOREQUAL:161,OP_GREATERTHANOREQUAL:162,OP_MIN:163,OP_MAX:164,OP_WITHIN:165,OP_RIPEMD160:166,OP_SHA1:167,OP_SHA256:168,OP_HASH160:169,OP_HASH256:170,OP_CODESEPARATOR:171,OP_CHECKSIG:172,OP_CHECKSIGVERIFY:173,OP_CHECKMULTISIG:174,OP_CHECKMULTISIGVERIFY:175,OP_NOP1:176,OP_CHECKLOCKTIMEVERIFY:177,OP_CHECKSEQUENCEVERIFY:178,OP_NOP4:179,OP_NOP5:180,OP_NOP6:181,OP_NOP7:182,OP_NOP8:183,OP_NOP9:184,OP_NOP10:185,OP_CHECKSIGADD:186,OP_SUCCESS187:187,OP_SUCCESS188:188,OP_SUCCESS189:189,OP_SUCCESS190:190,OP_SUCCESS191:191,OP_SUCCESS192:192,OP_SUCCESS193:193,OP_SUCCESS194:194,OP_SUCCESS195:195,OP_SUCCESS196:196,OP_SUCCESS197:197,OP_SUCCESS198:198,OP_SUCCESS199:199,OP_SUCCESS200:200,OP_SUCCESS201:201,OP_SUCCESS202:202,OP_SUCCESS203:203,OP_SUCCESS204:204,OP_SUCCESS205:205,OP_SUCCESS206:206,OP_SUCCESS207:207,OP_SUCCESS208:208,OP_SUCCESS209:209,OP_SUCCESS210:210,OP_SUCCESS211:211,OP_SUCCESS212:212,OP_SUCCESS213:213,OP_SUCCESS214:214,OP_SUCCESS215:215,OP_SUCCESS216:216,OP_SUCCESS217:217,OP_SUCCESS218:218,OP_SUCCESS219:219,OP_SUCCESS220:220,OP_SUCCESS221:221,OP_SUCCESS222:222,OP_SUCCESS223:223,OP_SUCCESS224:224,OP_SUCCESS225:225,OP_SUCCESS226:226,OP_SUCCESS227:227,OP_SUCCESS228:228,OP_SUCCESS229:229,OP_SUCCESS230:230,OP_SUCCESS231:231,OP_SUCCESS232:232,OP_SUCCESS233:233,OP_SUCCESS234:234,OP_SUCCESS235:235,OP_SUCCESS236:236,OP_SUCCESS237:237,OP_SUCCESS238:238,OP_SUCCESS239:239,OP_SUCCESS240:240,OP_SUCCESS241:241,OP_SUCCESS242:242,OP_SUCCESS243:243,OP_SUCCESS244:244,OP_SUCCESS245:245,OP_SUCCESS246:246,OP_SUCCESS247:247,OP_SUCCESS248:248,OP_SUCCESS249:249,OP_SUCCESS250:250,OP_SUCCESS251:251,OP_SUCCESS252:252,OP_SUCCESS253:253,OP_SUCCESS254:254};function Pp(e){if(e>186&&e<255)return"OP_SUCCESS"+String(e);for(const[t,n]of Object.entries(Af))if(n===e)return t;throw new Error("OPCODE not found:"+String(e))}function Up(e){for(const[t,n]of Object.entries(Af))if(t===e)return Number(n);throw new Error("OPCODE not found:"+e)}function Np(e){switch(!0){case e===0:return"opcode";case(e>=1&&e<=75):return"varint";case e===76:return"pushdata1";case e===77:return"pushdata2";case e===78:return"pushdata4";case e<=254:return"opcode";default:throw new Error(`Invalid word range: ${e}`)}}function Lp(e){const r=[];switch(!0){case typeof e!="number":return!1;case e===0:return!0;case r.includes(e):return!1;case(750?S.join(t):new Uint8Array}function Rp(e){let t=new Uint8Array;if(typeof e=="string"){if(e.startsWith("OP_"))return S.num(Up(e),1);Ft(e)?t=S.hex(e):t=S.str(e)}else t=S.bytes(e);if(t.length===1)return t[0]!==0&&t[0]<=16?(t[0]+=80,t):(t[0]>128&&t[0]<=255&&(t=new Uint8Array([t[0],0])),S.join([zc(t.length),t]));if(t.length>eo){const n=Hp(t);return Tf(n)}else return S.join([zc(t.length),t])}function zc(e){const t=S.num(76,1),n=S.num(77,1);switch(!0){case e<=75:return S.num(e);case(e>75&&e<256):return S.join([t,S.num(e,1,"le")]);case(e>=256&&e<=eo):return S.join([n,S.num(e,2,"le")]);default:throw new Error("Invalid word size:"+e.toString())}}function Hp(e){const t=[],n=new Ir(e);for(;n.size>eo;)t.push(n.read(eo));return t.push(n.read(n.size)),t}function ka(e,t=!1){let n=S.bytes(e);if(t){const s=n.stream.readSize("le");if(n=n.slice(1),n.length!==s)throw new Error(`Varint does not match stream size: ${s} !== ${n.length}`)}return jp(n)}function jp(e){const t=new Ir(e),n=[],r=t.size;let s,o,i,a=0;for(;a0&&!t.includes(e.length))throw new TypeError(`Expected Uint8Array of length ${t}, not of length=${e.length}`)}function qp(e){if(typeof e!="function"||typeof e.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");ji(e.outputLen),ji(e.blockLen)}function zp(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function Fp(e,t){If(e);const n=t.outputLen;if(e.lengthnew DataView(e.buffer,e.byteOffset,e.byteLength),kt=(e,t)=>e<<32-t|e>>>t,Gp=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!Gp)throw new Error("Non little-endian hardware is not supported");Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function Yp(e){if(typeof e!="string")throw new TypeError(`utf8ToBytes expected string, got ${typeof e}`);return new TextEncoder().encode(e)}function Sa(e){if(typeof e=="string"&&(e=Yp(e)),!(e instanceof Uint8Array))throw new TypeError(`Expected input type is Uint8Array (got ${typeof e})`);return e}function Xp(...e){if(!e.every(r=>r instanceof Uint8Array))throw new Error("Uint8Array list expected");if(e.length===1)return e[0];const t=e.reduce((r,s)=>r+s.length,0),n=new Uint8Array(t);for(let r=0,s=0;re().update(Sa(r)).digest(),n=e();return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=()=>e(),t}function Jp(e=32){if(oi&&typeof oi.getRandomValues=="function")return oi.getRandomValues(new Uint8Array(e));throw new Error("crypto.getRandomValues must be defined")}function Qp(e,t,n,r){if(typeof e.setBigUint64=="function")return e.setBigUint64(t,n,r);const s=BigInt(32),o=BigInt(4294967295),i=Number(n>>s&o),a=Number(n&o),c=r?4:0,u=r?0:4;e.setUint32(t+c,i,r),e.setUint32(t+u,a,r)}let eg=class extends Of{constructor(t,n,r,s){super(),this.blockLen=t,this.outputLen=n,this.padOffset=r,this.isLE=s,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(t),this.view=ii(this.buffer)}update(t){Pn.exists(this);const{view:n,buffer:r,blockLen:s}=this;t=Sa(t);const o=t.length;for(let i=0;is-i&&(this.process(r,0),i=0);for(let f=i;fl.length)throw new Error("_sha2: outputLen bigger than state");for(let f=0;fe&t^~e&n,ng=(e,t,n)=>e&t^e&n^t&n,rg=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),Yt=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Xt=new Uint32Array(64);let Pf=class extends eg{constructor(){super(64,32,8,!1),this.A=Yt[0]|0,this.B=Yt[1]|0,this.C=Yt[2]|0,this.D=Yt[3]|0,this.E=Yt[4]|0,this.F=Yt[5]|0,this.G=Yt[6]|0,this.H=Yt[7]|0}get(){const{A:t,B:n,C:r,D:s,E:o,F:i,G:a,H:c}=this;return[t,n,r,s,o,i,a,c]}set(t,n,r,s,o,i,a,c){this.A=t|0,this.B=n|0,this.C=r|0,this.D=s|0,this.E=o|0,this.F=i|0,this.G=a|0,this.H=c|0}process(t,n){for(let f=0;f<16;f++,n+=4)Xt[f]=t.getUint32(n,!1);for(let f=16;f<64;f++){const d=Xt[f-15],h=Xt[f-2],p=kt(d,7)^kt(d,18)^d>>>3,g=kt(h,17)^kt(h,19)^h>>>10;Xt[f]=g+Xt[f-7]+p+Xt[f-16]|0}let{A:r,B:s,C:o,D:i,E:a,F:c,G:u,H:l}=this;for(let f=0;f<64;f++){const d=kt(a,6)^kt(a,11)^kt(a,25),h=l+d+tg(a,c,u)+rg[f]+Xt[f]|0,g=(kt(r,2)^kt(r,13)^kt(r,22))+ng(r,s,o)|0;l=u,u=c,c=a,a=i+h|0,i=o,o=s,s=r,r=h+g|0}r=r+this.A|0,s=s+this.B|0,o=o+this.C|0,i=i+this.D|0,a=a+this.E|0,c=c+this.F|0,u=u+this.G|0,l=l+this.H|0,this.set(r,s,o,i,a,c,u,l)}roundClean(){Xt.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}},sg=class extends Pf{constructor(){super(),this.A=-1056596264,this.B=914150663,this.C=812702999,this.D=-150054599,this.E=-4191439,this.F=1750603025,this.G=1694076839,this.H=-1090891868,this.outputLen=28}};const Uf=Cf(()=>new Pf);Cf(()=>new sg);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const og=BigInt(0),$a=BigInt(1),ig=BigInt(2),Co=e=>e instanceof Uint8Array,ag=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function pr(e){if(!Co(e))throw new Error("Uint8Array expected");let t="";for(let n=0;ngr(e.toString(16).padStart(t*2,"0")),Lf=(e,t)=>cr(e,t).reverse(),cg=e=>gr(Nf(e));function ot(e,t,n){let r;if(typeof t=="string")try{r=gr(t)}catch(o){throw new Error(`${e} must be valid hex string, got "${t}". Cause: ${o}`)}else if(Co(t))r=Uint8Array.from(t);else throw new Error(`${e} must be hex string or Uint8Array`);const s=r.length;if(typeof n=="number"&&s!==n)throw new Error(`${e} expected ${n} bytes, got ${s}`);return r}function dt(...e){const t=new Uint8Array(e.reduce((r,s)=>r+s.length,0));let n=0;return e.forEach(r=>{if(!Co(r))throw new Error("Uint8Array expected");t.set(r,n),n+=r.length}),t}function ug(e,t){if(e.length!==t.length)return!1;for(let n=0;n0n;e>>=$a,t+=1);return t}const lg=(e,t)=>e>>BigInt(t)&1n,dg=(e,t,n)=>e|(n?$a:og)<(ig<new Uint8Array(e),Fc=e=>Uint8Array.from(e);function Rf(e,t,n){if(typeof e!="number"||e<2)throw new Error("hashLen must be a number");if(typeof t!="number"||t<2)throw new Error("qByteLen must be a number");if(typeof n!="function")throw new Error("hmacFn must be a function");let r=ai(e),s=ai(e),o=0;const i=()=>{r.fill(1),s.fill(0),o=0},a=(...f)=>n(s,r,...f),c=(f=ai())=>{s=a(Fc([0]),f),r=a(),f.length!==0&&(s=a(Fc([1]),f),r=a())},u=()=>{if(o++>=1e3)throw new Error("drbg: tried 1000 values");let f=0;const d=[];for(;f{i(),c(f);let h;for(;!(h=d(u()));)c();return i(),h}}const hg={bigint:e=>typeof e=="bigint",function:e=>typeof e=="function",boolean:e=>typeof e=="boolean",string:e=>typeof e=="string",isSafeInteger:e=>Number.isSafeInteger(e),array:e=>Array.isArray(e),field:(e,t)=>t.Fp.isValid(e),hash:e=>typeof e=="function"&&Number.isSafeInteger(e.outputLen)};function Or(e,t,n={}){const r=(s,o,i)=>{const a=hg[o];if(typeof a!="function")throw new Error(`Invalid validator "${o}", expected function`);const c=e[s];if(!(i&&c===void 0)&&!a(c,e))throw new Error(`Invalid param ${String(s)}=${c} (${typeof c}), expected ${o}`)};for(const[s,o]of Object.entries(t))r(s,o,!1);for(const[s,o]of Object.entries(n))r(s,o,!0);return e}var pg=Object.freeze({__proto__:null,bitGet:lg,bitLen:fg,bitMask:Ba,bitSet:dg,bytesToHex:pr,bytesToNumberBE:mn,bytesToNumberLE:Aa,concatBytes:dt,createHmacDrbg:Rf,ensureBytes:ot,equalBytes:ug,hexToBytes:gr,hexToNumber:_a,numberToBytesBE:cr,numberToBytesLE:Lf,numberToHexUnpadded:Nf,numberToVarBytesBE:cg,utf8ToBytes:Po,validateObject:Or});/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const He=BigInt(0),Ie=BigInt(1),In=BigInt(2),gg=BigInt(3),Ki=BigInt(4),Wc=BigInt(5),Gc=BigInt(8);BigInt(9);BigInt(16);function qe(e,t){const n=e%t;return n>=He?n:t+n}function mg(e,t,n){if(n<=He||t 0");if(n===Ie)return He;let r=Ie;for(;t>He;)t&Ie&&(r=r*e%n),e=e*e%n,t>>=Ie;return r}function st(e,t,n){let r=e;for(;t-- >He;)r*=r,r%=n;return r}function Di(e,t){if(e===He||t<=He)throw new Error(`invert: expected positive integers, got n=${e} mod=${t}`);let n=qe(e,t),r=t,s=He,o=Ie;for(;n!==He;){const a=r/n,c=r%n,u=s-o*a;r=n,n=c,s=o,o=u}if(r!==Ie)throw new Error("invert: does not exist");return qe(s,t)}function yg(e){const t=(e-Ie)/In;let n,r,s;for(n=e-Ie,r=0;n%In===He;n/=In,r++);for(s=In;s(r[s]="function",r),t);return Or(e,n)}function xg(e,t,n){if(n 0");if(n===He)return e.ONE;if(n===Ie)return t;let r=e.ONE,s=t;for(;n>He;)n&Ie&&(r=e.mul(r,s)),s=e.sqr(s),n>>=Ie;return r}function vg(e,t){const n=new Array(t.length),r=t.reduce((o,i,a)=>e.is0(i)?o:(n[a]=o,e.mul(o,i)),e.ONE),s=e.inv(r);return t.reduceRight((o,i,a)=>e.is0(i)?o:(n[a]=e.mul(o,n[a]),e.mul(o,i)),s),n}function Ta(e,t){const n=t!==void 0?t:e.toString(2).length,r=Math.ceil(n/8);return{nBitLength:n,nByteLength:r}}function jf(e,t,n=!1,r={}){if(e<=He)throw new Error(`Expected Fp ORDER > 0, got ${e}`);const{nBitLength:s,nByteLength:o}=Ta(e,t);if(o>2048)throw new Error("Field lengths over 2048 bytes are not supported");const i=bg(e),a=Object.freeze({ORDER:e,BITS:s,BYTES:o,MASK:Ba(s),ZERO:He,ONE:Ie,create:c=>qe(c,e),isValid:c=>{if(typeof c!="bigint")throw new Error(`Invalid field element: expected bigint, got ${typeof c}`);return He<=c&&cc===He,isOdd:c=>(c&Ie)===Ie,neg:c=>qe(-c,e),eql:(c,u)=>c===u,sqr:c=>qe(c*c,e),add:(c,u)=>qe(c+u,e),sub:(c,u)=>qe(c-u,e),mul:(c,u)=>qe(c*u,e),pow:(c,u)=>xg(a,c,u),div:(c,u)=>qe(c*Di(u,e),e),sqrN:c=>c*c,addN:(c,u)=>c+u,subN:(c,u)=>c-u,mulN:(c,u)=>c*u,inv:c=>Di(c,e),sqrt:r.sqrt||(c=>i(a,c)),invertBatch:c=>vg(a,c),cmov:(c,u,l)=>l?u:c,toBytes:c=>n?Lf(c,o):cr(c,o),fromBytes:c=>{if(c.length!==o)throw new Error(`Fp.fromBytes: expected ${o}, got ${c.length}`);return n?Aa(c):mn(c)}});return Object.freeze(a)}function Eg(e,t,n=!1){e=ot("privateHash",e);const r=e.length,s=Ta(t).nByteLength+8;if(s<24||r1024)throw new Error(`hashToPrivateScalar: expected ${s}-1024 bytes of input, got ${r}`);const o=n?Aa(e):mn(e);return qe(o,t-Ie)+Ie}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const kg=BigInt(0),ci=BigInt(1);function Sg(e,t){const n=(s,o)=>{const i=o.negate();return s?i:o},r=s=>{const o=Math.ceil(t/s)+1,i=2**(s-1);return{windows:o,windowSize:i}};return{constTimeNegate:n,unsafeLadder(s,o){let i=e.ZERO,a=s;for(;o>kg;)o&ci&&(i=i.add(a)),a=a.double(),o>>=ci;return i},precomputeWindow(s,o){const{windows:i,windowSize:a}=r(o),c=[];let u=s,l=u;for(let f=0;f>=h,b>c&&(b-=d,i+=ci);const m=g,E=g+Math.abs(b)-1,y=p%2!==0,v=b<0;b===0?l=l.add(n(y,o[m])):u=u.add(n(v,o[E]))}return{p:u,f:l}},wNAFCached(s,o,i,a){const c=s._WINDOW_SIZE||1;let u=o.get(s);return u||(u=this.precomputeWindow(s,c),c!==1&&o.set(s,a(u))),this.wNAF(c,u,i)}}}function Kf(e){return Hf(e.Fp),Or(e,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...Ta(e.n,e.nBitLength),...e,p:e.Fp.ORDER})}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function $g(e){const t=Kf(e);Or(t,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});const{endo:n,Fp:r,a:s}=t;if(n){if(!r.eql(s,r.ZERO))throw new Error("Endomorphism can only be defined for Koblitz curves that have a=0");if(typeof n!="object"||typeof n.beta!="bigint"||typeof n.splitScalar!="function")throw new Error("Expected endomorphism with beta: bigint and splitScalar: function")}return Object.freeze({...t})}const{bytesToNumberBE:_g,hexToBytes:Ag}=pg,Un={Err:class extends Error{constructor(t=""){super(t)}},_parseInt(e){const{Err:t}=Un;if(e.length<2||e[0]!==2)throw new t("Invalid signature integer tag");const n=e[1],r=e.subarray(2,n+2);if(!n||r.length!==n)throw new t("Invalid signature integer: wrong length");if(r[0]===0&&r[1]<=127)throw new t("Invalid signature integer: trailing length");return{d:_g(r),l:e.subarray(n+2)}},toSig(e){const{Err:t}=Un,n=typeof e=="string"?Ag(e):e;if(!(n instanceof Uint8Array))throw new Error("ui8a expected");let r=n.length;if(r<2||n[0]!=48)throw new t("Invalid signature tag");if(n[1]!==r-2)throw new t("Invalid signature: incorrect length");const{d:s,l:o}=Un._parseInt(n.subarray(2)),{d:i,l:a}=Un._parseInt(o);if(a.length)throw new t("Invalid signature: left bytes after parsing");return{r:s,s:i}},hexFromSig(e){const t=u=>Number.parseInt(u[0],16)>=8?"00"+u:u,n=u=>{const l=u.toString(16);return l.length&1?`0${l}`:l},r=t(n(e.s)),s=t(n(e.r)),o=r.length/2,i=s.length/2,a=n(o),c=n(i);return`30${n(i+o+4)}02${c}${s}02${a}${r}`}},ht=BigInt(0),Pe=BigInt(1),Rt=BigInt(2),to=BigInt(3),Yc=BigInt(4);function Bg(e){const t=$g(e),{Fp:n}=t,r=t.toBytes||((p,g,b)=>{const m=g.toAffine();return dt(Uint8Array.from([4]),n.toBytes(m.x),n.toBytes(m.y))}),s=t.fromBytes||(p=>{const g=p.subarray(1),b=n.fromBytes(g.subarray(0,n.BYTES)),m=n.fromBytes(g.subarray(n.BYTES,2*n.BYTES));return{x:b,y:m}});function o(p){const{a:g,b}=t,m=n.sqr(p),E=n.mul(m,p);return n.add(n.add(E,n.mul(p,g)),b)}function i(p){return typeof p=="bigint"&&htn.eql(y,n.ZERO);return E(b)&&E(m)?f.ZERO:new f(b,m,n.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(g){const b=n.invertBatch(g.map(m=>m.pz));return g.map((m,E)=>m.toAffine(b[E])).map(f.fromAffine)}static fromHex(g){const b=f.fromAffine(s(ot("pointHex",g)));return b.assertValidity(),b}static fromPrivateKey(g){return f.BASE.multiply(c(g))}_setWindowSize(g){this._WINDOW_SIZE=g,u.delete(this)}assertValidity(){if(this.is0()){if(t.allowInfinityPoint)return;throw new Error("bad point: ZERO")}const{x:g,y:b}=this.toAffine();if(!n.isValid(g)||!n.isValid(b))throw new Error("bad point: x or y not FE");const m=n.sqr(b),E=o(g);if(!n.eql(m,E))throw new Error("bad point: equation left != right");if(!this.isTorsionFree())throw new Error("bad point: not in prime-order subgroup")}hasEvenY(){const{y:g}=this.toAffine();if(n.isOdd)return!n.isOdd(g);throw new Error("Field doesn't support isOdd")}equals(g){l(g);const{px:b,py:m,pz:E}=this,{px:y,py:v,pz:x}=g,B=n.eql(n.mul(b,x),n.mul(y,E)),O=n.eql(n.mul(m,x),n.mul(v,E));return B&&O}negate(){return new f(this.px,n.neg(this.py),this.pz)}double(){const{a:g,b}=t,m=n.mul(b,to),{px:E,py:y,pz:v}=this;let x=n.ZERO,B=n.ZERO,O=n.ZERO,C=n.mul(E,E),T=n.mul(y,y),U=n.mul(v,v),H=n.mul(E,y);return H=n.add(H,H),O=n.mul(E,v),O=n.add(O,O),x=n.mul(g,O),B=n.mul(m,U),B=n.add(x,B),x=n.sub(T,B),B=n.add(T,B),B=n.mul(x,B),x=n.mul(H,x),O=n.mul(m,O),U=n.mul(g,U),H=n.sub(C,U),H=n.mul(g,H),H=n.add(H,O),O=n.add(C,C),C=n.add(O,C),C=n.add(C,U),C=n.mul(C,H),B=n.add(B,C),U=n.mul(y,v),U=n.add(U,U),C=n.mul(U,H),x=n.sub(x,C),O=n.mul(U,T),O=n.add(O,O),O=n.add(O,O),new f(x,B,O)}add(g){l(g);const{px:b,py:m,pz:E}=this,{px:y,py:v,pz:x}=g;let B=n.ZERO,O=n.ZERO,C=n.ZERO;const T=t.a,U=n.mul(t.b,to);let H=n.mul(b,y),K=n.mul(m,v),k=n.mul(E,x),$=n.add(b,m),w=n.add(y,v);$=n.mul($,w),w=n.add(H,K),$=n.sub($,w),w=n.add(b,E);let _=n.add(y,x);return w=n.mul(w,_),_=n.add(H,k),w=n.sub(w,_),_=n.add(m,E),B=n.add(v,x),_=n.mul(_,B),B=n.add(K,k),_=n.sub(_,B),C=n.mul(T,w),B=n.mul(U,k),C=n.add(B,C),B=n.sub(K,C),C=n.add(K,C),O=n.mul(B,C),K=n.add(H,H),K=n.add(K,H),k=n.mul(T,k),w=n.mul(U,w),K=n.add(K,k),k=n.sub(H,k),k=n.mul(T,k),w=n.add(w,k),H=n.mul(K,w),O=n.add(O,H),H=n.mul(_,w),B=n.mul($,B),B=n.sub(B,H),H=n.mul($,K),C=n.mul(_,C),C=n.add(C,H),new f(B,O,C)}subtract(g){return this.add(g.negate())}is0(){return this.equals(f.ZERO)}wNAF(g){return h.wNAFCached(this,u,g,b=>{const m=n.invertBatch(b.map(E=>E.pz));return b.map((E,y)=>E.toAffine(m[y])).map(f.fromAffine)})}multiplyUnsafe(g){const b=f.ZERO;if(g===ht)return b;if(a(g),g===Pe)return this;const{endo:m}=t;if(!m)return h.unsafeLadder(this,g);let{k1neg:E,k1:y,k2neg:v,k2:x}=m.splitScalar(g),B=b,O=b,C=this;for(;y>ht||x>ht;)y&Pe&&(B=B.add(C)),x&Pe&&(O=O.add(C)),C=C.double(),y>>=Pe,x>>=Pe;return E&&(B=B.negate()),v&&(O=O.negate()),O=new f(n.mul(O.px,m.beta),O.py,O.pz),B.add(O)}multiply(g){a(g);let b=g,m,E;const{endo:y}=t;if(y){const{k1neg:v,k1:x,k2neg:B,k2:O}=y.splitScalar(b);let{p:C,f:T}=this.wNAF(x),{p:U,f:H}=this.wNAF(O);C=h.constTimeNegate(v,C),U=h.constTimeNegate(B,U),U=new f(n.mul(U.px,y.beta),U.py,U.pz),m=C.add(U),E=T.add(H)}else{const{p:v,f:x}=this.wNAF(b);m=v,E=x}return f.normalizeZ([m,E])[0]}multiplyAndAddUnsafe(g,b,m){const E=f.BASE,y=(x,B)=>B===ht||B===Pe||!x.equals(E)?x.multiplyUnsafe(B):x.multiply(B),v=y(this,b).add(y(g,m));return v.is0()?void 0:v}toAffine(g){const{px:b,py:m,pz:E}=this,y=this.is0();g==null&&(g=y?n.ONE:n.inv(E));const v=n.mul(b,g),x=n.mul(m,g),B=n.mul(E,g);if(y)return{x:n.ZERO,y:n.ZERO};if(!n.eql(B,n.ONE))throw new Error("invZ was invalid");return{x:v,y:x}}isTorsionFree(){const{h:g,isTorsionFree:b}=t;if(g===Pe)return!0;if(b)return b(f,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){const{h:g,clearCofactor:b}=t;return g===Pe?this:b?b(f,this):this.multiplyUnsafe(t.h)}toRawBytes(g=!0){return this.assertValidity(),r(f,this,g)}toHex(g=!0){return pr(this.toRawBytes(g))}}f.BASE=new f(t.Gx,t.Gy,n.ONE),f.ZERO=new f(n.ZERO,n.ONE,n.ZERO);const d=t.nBitLength,h=Sg(f,t.endo?Math.ceil(d/2):d);return{CURVE:t,ProjectivePoint:f,normPrivateKeyToScalar:c,weierstrassEquation:o,isWithinCurveOrder:i}}function Tg(e){const t=Kf(e);return Or(t,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...t})}function Ig(e){const t=Tg(e),{Fp:n,n:r}=t,s=n.BYTES+1,o=2*n.BYTES+1;function i(w){return htpr(cr(w,t.nByteLength));function p(w){const _=r>>Pe;return w>_}function g(w){return p(w)?a(-w):w}const b=(w,_,P)=>mn(w.slice(_,P));class m{constructor(_,P,L){this.r=_,this.s=P,this.recovery=L,this.assertValidity()}static fromCompact(_){const P=t.nByteLength;return _=ot("compactSignature",_,P*2),new m(b(_,0,P),b(_,P,2*P))}static fromDER(_){const{r:P,s:L}=Un.toSig(ot("DER",_));return new m(P,L)}assertValidity(){if(!d(this.r))throw new Error("r must be 0 < r < CURVE.n");if(!d(this.s))throw new Error("s must be 0 < s < CURVE.n")}addRecoveryBit(_){return new m(this.r,this.s,_)}recoverPublicKey(_){const{r:P,s:L,recovery:N}=this,j=O(ot("msgHash",_));if(N==null||![0,1,2,3].includes(N))throw new Error("recovery id invalid");const M=N===2||N===3?P+t.n:P;if(M>=n.ORDER)throw new Error("recovery id 2 or 3 invalid");const F=(N&1)===0?"02":"03",ue=u.fromHex(F+h(M)),oe=c(M),Q=a(-j*oe),he=a(L*oe),pe=u.BASE.multiplyAndAddUnsafe(ue,Q,he);if(!pe)throw new Error("point at infinify");return pe.assertValidity(),pe}hasHighS(){return p(this.s)}normalizeS(){return this.hasHighS()?new m(this.r,a(-this.s),this.recovery):this}toDERRawBytes(){return gr(this.toDERHex())}toDERHex(){return Un.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return gr(this.toCompactHex())}toCompactHex(){return h(this.r)+h(this.s)}}const E={isValidPrivateKey(w){try{return l(w),!0}catch{return!1}},normPrivateKeyToScalar:l,randomPrivateKey:()=>{const w=t.randomBytes(n.BYTES+8),_=Eg(w,r);return cr(_,t.nByteLength)},precompute(w=8,_=u.BASE){return _._setWindowSize(w),_.multiply(BigInt(3)),_}};function y(w,_=!0){return u.fromPrivateKey(w).toRawBytes(_)}function v(w){const _=w instanceof Uint8Array,P=typeof w=="string",L=(_||P)&&w.length;return _?L===s||L===o:P?L===2*s||L===2*o:w instanceof u}function x(w,_,P=!0){if(v(w))throw new Error("first arg must be private key");if(!v(_))throw new Error("second arg must be public key");return u.fromHex(_).multiply(l(w)).toRawBytes(P)}const B=t.bits2int||function(w){const _=mn(w),P=w.length*8-t.nBitLength;return P>0?_>>BigInt(P):_},O=t.bits2int_modN||function(w){return a(B(w))},C=Ba(t.nBitLength);function T(w){if(typeof w!="bigint")throw new Error("bigint expected");if(!(ht<=w&&wfe in P))throw new Error("sign() legacy options not supported");const{hash:L,randomBytes:N}=t;let{lowS:j,prehash:M,extraEntropy:F}=P;j==null&&(j=!0),w=ot("msgHash",w),M&&(w=ot("prehashed msgHash",L(w)));const ue=O(w),oe=l(_),Q=[T(oe),T(ue)];if(F!=null){const fe=F===!0?N(n.BYTES):F;Q.push(ot("extraEntropy",fe,n.BYTES))}const he=dt(...Q),pe=ue;function Te(fe){const we=B(fe);if(!d(we))return;const Nt=c(we),rt=u.BASE.multiply(we).toAffine(),Ke=a(rt.x);if(Ke===ht)return;const Lt=a(Nt*a(pe+Ke*oe));if(Lt===ht)return;let Rr=(rt.x===Ke?0:2)|Number(rt.y&Pe),Zc=Lt;return j&&p(Lt)&&(Zc=g(Lt),Rr^=1),new m(Ke,Zc,Rr)}return{seed:he,k2sig:Te}}const H={lowS:t.lowS,prehash:!1},K={lowS:t.lowS,prehash:!1};function k(w,_,P=H){const{seed:L,k2sig:N}=U(w,_,P);return Rf(t.hash.outputLen,t.nByteLength,t.hmac)(L,N)}u.BASE._setWindowSize(8);function $(w,_,P,L=K){var rt;const N=w;if(_=ot("msgHash",_),P=ot("publicKey",P),"strict"in L)throw new Error("options.strict was renamed to lowS");const{lowS:j,prehash:M}=L;let F,ue;try{if(typeof N=="string"||N instanceof Uint8Array)try{F=m.fromDER(N)}catch(Ke){if(!(Ke instanceof Un.Err))throw Ke;F=m.fromCompact(N)}else if(typeof N=="object"&&typeof N.r=="bigint"&&typeof N.s=="bigint"){const{r:Ke,s:Lt}=N;F=new m(Ke,Lt)}else throw new Error("PARSE");ue=u.fromHex(P)}catch(Ke){if(Ke.message==="PARSE")throw new Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(j&&F.hasHighS())return!1;M&&(_=t.hash(_));const{r:oe,s:Q}=F,he=O(_),pe=c(Q),Te=a(he*pe),fe=a(oe*pe),we=(rt=u.BASE.multiplyAndAddUnsafe(ue,Te,fe))==null?void 0:rt.toAffine();return we?a(we.x)===oe:!1}return{CURVE:t,getPublicKey:y,getSharedSecret:x,sign:k,verify:$,ProjectivePoint:u,Signature:m,utils:E}}function Og(e,t){const n=e.ORDER;let r=ht;for(let d=n-Pe;d%Rt===ht;d/=Rt)r+=Pe;const s=r,o=(n-Pe)/Rt**s,i=(o-Pe)/Rt,a=Rt**s-Pe,c=Rt**(s-Pe),u=e.pow(t,o),l=e.pow(t,(o+Pe)/Rt);let f=(d,h)=>{let p=u,g=e.pow(h,a),b=e.sqr(g);b=e.mul(b,h);let m=e.mul(d,b);m=e.pow(m,i),m=e.mul(m,g),g=e.mul(m,h),b=e.mul(m,d);let E=e.mul(b,g);m=e.pow(E,c);let y=e.eql(m,e.ONE);g=e.mul(b,l),m=e.mul(E,p),b=e.cmov(g,b,y),E=e.cmov(m,E,y);for(let v=s;v>1;v--){let x=Rt**(v-Rt),B=e.pow(E,x);const O=e.eql(B,e.ONE);g=e.mul(b,p),p=e.mul(p,p),B=e.mul(E,p),b=e.cmov(g,b,O),E=e.cmov(B,E,O)}return{isValid:y,value:b}};if(e.ORDER%Yc===to){const d=(e.ORDER-to)/Yc,h=e.sqrt(e.neg(t));f=(p,g)=>{let b=e.sqr(g);const m=e.mul(p,g);b=e.mul(b,m);let E=e.pow(b,d);E=e.mul(E,m);const y=e.mul(E,h),v=e.mul(e.sqr(E),g),x=e.eql(v,p);let B=e.cmov(y,E,x);return{isValid:x,value:B}}}return f}function Cg(e,t){if(Hf(e),!e.isValid(t.A)||!e.isValid(t.B)||!e.isValid(t.Z))throw new Error("mapToCurveSimpleSWU: invalid opts");const n=Og(e,t.Z);if(!e.isOdd)throw new Error("Fp.isOdd is not implemented!");return r=>{let s,o,i,a,c,u,l,f;s=e.sqr(r),s=e.mul(s,t.Z),o=e.sqr(s),o=e.add(o,s),i=e.add(o,e.ONE),i=e.mul(i,t.B),a=e.cmov(t.Z,e.neg(o),!e.eql(o,e.ZERO)),a=e.mul(a,t.A),o=e.sqr(i),u=e.sqr(a),c=e.mul(u,t.A),o=e.add(o,c),o=e.mul(o,i),u=e.mul(u,a),c=e.mul(u,t.B),o=e.add(o,c),l=e.mul(s,i);const{isValid:d,value:h}=n(o,u);f=e.mul(s,r),f=e.mul(f,h),l=e.cmov(l,i,d),f=e.cmov(f,h,d);const p=e.isOdd(r)===e.isOdd(f);return f=e.cmov(e.neg(f),f,p),l=e.div(l,a),{x:l,y:f}}}function Pg(e){if(e instanceof Uint8Array)return e;if(typeof e=="string")return Po(e);throw new Error("DST must be Uint8Array or string")}const Ug=mn;function fn(e,t){if(e<0||e>=1<<8*t)throw new Error(`bad I2OSP call: value=${e} length=${t}`);const n=Array.from({length:t}).fill(0);for(let r=t-1;r>=0;r--)n[r]=e&255,e>>>=8;return new Uint8Array(n)}function Ng(e,t){const n=new Uint8Array(e.length);for(let r=0;r255&&(t=r(dt(Po("H2C-OVERSIZE-DST-"),t)));const{outputLen:s,blockLen:o}=r,i=Math.ceil(n/s);if(i>255)throw new Error("Invalid xmd length");const a=dt(t,fn(t.length,1)),c=fn(0,o),u=fn(n,2),l=new Array(i),f=r(dt(c,e,u,fn(0,1),a));l[0]=r(dt(f,fn(1,1),a));for(let h=1;h<=i;h++){const p=[Ng(f,l[h-1]),fn(h+1,1),a];l[h]=r(dt(...p))}return dt(...l).slice(0,n)}function Rg(e,t,n,r,s){if(Gr(e),Gr(t),Ia(n),t.length>255){const o=Math.ceil(2*r/8);t=s.create({dkLen:o}).update(Po("H2C-OVERSIZE-DST-")).update(t).digest()}if(n>65535||t.length>255)throw new Error("expand_message_xof: invalid lenInBytes");return s.create({dkLen:n}).update(e).update(fn(n,2)).update(t).update(fn(t.length,1)).digest()}function Xc(e,t,n){Or(n,{DST:"string",p:"bigint",m:"isSafeInteger",k:"isSafeInteger",hash:"hash"});const{p:r,k:s,m:o,hash:i,expand:a,DST:c}=n;Gr(e),Ia(t);const u=Pg(c),l=r.toString(2).length,f=Math.ceil((l+s)/8),d=t*o*f;let h;if(a==="xmd")h=Lg(e,u,d,i);else if(a==="xof")h=Rg(e,u,d,s,i);else if(a===void 0)h=e;else throw new Error('expand must be "xmd", "xof" or undefined');const p=new Array(t);for(let g=0;gArray.from(r).reverse());return(r,s)=>{const[o,i,a,c]=n.map(u=>u.reduce((l,f)=>e.add(e.mul(l,r),f)));return r=e.div(o,i),s=e.mul(s,e.div(a,c)),{x:r,y:s}}}function jg(e,t,n){if(typeof t!="function")throw new Error("mapToCurve() must be defined");return{hashToCurve(r,s){const o=Xc(r,2,{...n,DST:n.DST,...s}),i=e.fromAffine(t(o[0])),a=e.fromAffine(t(o[1])),c=i.add(a).clearCofactor();return c.assertValidity(),c},encodeToCurve(r,s){const o=Xc(r,1,{...n,DST:n.encodeDST,...s}),i=e.fromAffine(t(o[0])).clearCofactor();return i.assertValidity(),i}}}let Df=class extends Of{constructor(t,n){super(),this.finished=!1,this.destroyed=!1,Pn.hash(t);const r=Sa(n);if(this.iHash=t.create(),typeof this.iHash.update!="function")throw new TypeError("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const s=this.blockLen,o=new Uint8Array(s);o.set(r.length>s?t.create().update(r).digest():r);for(let i=0;inew Df(e,t).update(n).digest();Mf.create=(e,t)=>new Df(e,t);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function Kg(e){return{hash:e,hmac:(t,...n)=>Mf(e,t,Xp(...n)),randomBytes:Jp}}function Dg(e,t){const n=r=>Ig({...e,...Kg(r)});return Object.freeze({...n(t),create:n})}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const Zf=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),Jc=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),Mg=BigInt(1),Mi=BigInt(2),Qc=(e,t)=>(e+t/Mi)/t;function Zg(e){const t=Zf,n=BigInt(3),r=BigInt(6),s=BigInt(11),o=BigInt(22),i=BigInt(23),a=BigInt(44),c=BigInt(88),u=e*e*e%t,l=u*u*e%t,f=st(l,n,t)*l%t,d=st(f,n,t)*l%t,h=st(d,Mi,t)*u%t,p=st(h,s,t)*h%t,g=st(p,o,t)*p%t,b=st(g,a,t)*g%t,m=st(b,c,t)*b%t,E=st(m,a,t)*g%t,y=st(E,n,t)*l%t,v=st(y,i,t)*p%t,x=st(v,r,t)*u%t,B=st(x,Mi,t);if(!yn.eql(yn.sqr(B),e))throw new Error("Cannot find square root");return B}const yn=jf(Zf,void 0,void 0,{sqrt:Zg}),Vt=Dg({a:BigInt(0),b:BigInt(7),Fp:yn,n:Jc,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:e=>{const t=Jc,n=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),r=-Mg*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),s=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),o=n,i=BigInt("0x100000000000000000000000000000000"),a=Qc(o*e,t),c=Qc(-r*e,t);let u=qe(e-a*n-c*s,t),l=qe(-a*r-c*o,t);const f=u>i,d=l>i;if(f&&(u=t-u),d&&(l=t-l),u>i||l>i)throw new Error("splitScalar: Endomorphism failed, k="+e);return{k1neg:f,k1:u,k2neg:d,k2:l}}}},Uf);BigInt(0);Vt.ProjectivePoint;Vt.utils.randomPrivateKey;const Vg=Hg(yn,[["0x8e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38daaaaa8c7","0x7d3d4c80bc321d5b9f315cea7fd44c5d595d2fc0bf63b92dfff1044f17c6581","0x534c328d23f234e6e2a413deca25caece4506144037c40314ecbd0b53d9dd262","0x8e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38daaaaa88c"],["0xd35771193d94918a9ca34ccbb7b640dd86cd409542f8487d9fe6b745781eb49b","0xedadc6f64383dc1df7c4b2d51b54225406d36b641f5e41bbc52a56612a8c6d14","0x0000000000000000000000000000000000000000000000000000000000000001"],["0x4bda12f684bda12f684bda12f684bda12f684bda12f684bda12f684b8e38e23c","0xc75e0c32d5cb7c0fa9d0a54b12a0a6d5647ab046d686da6fdffc90fc201d71a3","0x29a6194691f91a73715209ef6512e576722830a201be2018a765e85a9ecee931","0x2f684bda12f684bda12f684bda12f684bda12f684bda12f684bda12f38e38d84"],["0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffff93b","0x7a06534bb8bdb49fd5e9e6632722c2989467c1bfc8e8d978dfb425d2685c2573","0x6484aa716545ca2cf3a70c3fa8fe337e0a3d21162f0d6299a7bf8192bfd2a76f","0x0000000000000000000000000000000000000000000000000000000000000001"]].map(e=>e.map(t=>BigInt(t)))),qg=Cg(yn,{A:BigInt("0x3f8731abdd661adca08a5558f0f5d272e953d363cb6f0e5d405447c01a444533"),B:BigInt("1771"),Z:yn.create(BigInt("-11"))});jg(Vt.ProjectivePoint,e=>{const{x:t,y:n}=qg(yn.create(e[0]));return Vg(t,n)},{DST:"secp256k1_XMD:SHA-256_SSWU_RO_",encodeDST:"secp256k1_XMD:SHA-256_SSWU_NU_",p:yn.ORDER,m:1,k:128,expand:"xmd",hash:Uf});function Zi(e){if(!Number.isSafeInteger(e)||e<0)throw new Error(`Wrong positive integer: ${e}`)}function zg(e){if(typeof e!="boolean")throw new Error(`Expected boolean, not ${e}`)}function Vf(e,...t){if(!(e instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(t.length>0&&!t.includes(e.length))throw new TypeError(`Expected Uint8Array of length ${t}, not of length=${e.length}`)}function Fg(e){if(typeof e!="function"||typeof e.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");Zi(e.outputLen),Zi(e.blockLen)}function Wg(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function Gg(e,t){Vf(e);const n=t.outputLen;if(e.lengthnew DataView(e.buffer,e.byteOffset,e.byteLength),St=(e,t)=>e<<32-t|e>>>t,Xg=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!Xg)throw new Error("Non little-endian hardware is not supported");Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function Jg(e){if(typeof e!="string")throw new TypeError(`utf8ToBytes expected string, got ${typeof e}`);return new TextEncoder().encode(e)}function qf(e){if(typeof e=="string"&&(e=Jg(e)),!(e instanceof Uint8Array))throw new TypeError(`Expected input type is Uint8Array (got ${typeof e})`);return e}let Qg=class{clone(){return this._cloneInto()}};function zf(e){const t=r=>e().update(qf(r)).digest(),n=e();return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=()=>e(),t}function em(e,t,n,r){if(typeof e.setBigUint64=="function")return e.setBigUint64(t,n,r);const s=BigInt(32),o=BigInt(4294967295),i=Number(n>>s&o),a=Number(n&o),c=r?4:0,u=r?0:4;e.setUint32(t+c,i,r),e.setUint32(t+u,a,r)}let tm=class extends Qg{constructor(t,n,r,s){super(),this.blockLen=t,this.outputLen=n,this.padOffset=r,this.isLE=s,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(t),this.view=fi(this.buffer)}update(t){ui.exists(this);const{view:n,buffer:r,blockLen:s}=this;t=qf(t);const o=t.length;for(let i=0;is-i&&(this.process(r,0),i=0);for(let f=i;fl.length)throw new Error("_sha2: outputLen bigger than state");for(let f=0;fe&t^~e&n,rm=(e,t,n)=>e&t^e&n^t&n,sm=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),Jt=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Qt=new Uint32Array(64);let Ff=class extends tm{constructor(){super(64,32,8,!1),this.A=Jt[0]|0,this.B=Jt[1]|0,this.C=Jt[2]|0,this.D=Jt[3]|0,this.E=Jt[4]|0,this.F=Jt[5]|0,this.G=Jt[6]|0,this.H=Jt[7]|0}get(){const{A:t,B:n,C:r,D:s,E:o,F:i,G:a,H:c}=this;return[t,n,r,s,o,i,a,c]}set(t,n,r,s,o,i,a,c){this.A=t|0,this.B=n|0,this.C=r|0,this.D=s|0,this.E=o|0,this.F=i|0,this.G=a|0,this.H=c|0}process(t,n){for(let f=0;f<16;f++,n+=4)Qt[f]=t.getUint32(n,!1);for(let f=16;f<64;f++){const d=Qt[f-15],h=Qt[f-2],p=St(d,7)^St(d,18)^d>>>3,g=St(h,17)^St(h,19)^h>>>10;Qt[f]=g+Qt[f-7]+p+Qt[f-16]|0}let{A:r,B:s,C:o,D:i,E:a,F:c,G:u,H:l}=this;for(let f=0;f<64;f++){const d=St(a,6)^St(a,11)^St(a,25),h=l+d+nm(a,c,u)+sm[f]+Qt[f]|0,g=(St(r,2)^St(r,13)^St(r,22))+rm(r,s,o)|0;l=u,u=c,c=a,a=i+h|0,i=o,o=s,s=r,r=h+g|0}r=r+this.A|0,s=s+this.B|0,o=o+this.C|0,i=i+this.D|0,a=a+this.E|0,c=c+this.F|0,u=u+this.G|0,l=l+this.H|0,this.set(r,s,o,i,a,c,u,l)}roundClean(){Qt.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}},om=class extends Ff{constructor(){super(),this.A=-1056596264,this.B=914150663,this.C=812702999,this.D=-150054599,this.E=-4191439,this.F=1750603025,this.G=1694076839,this.H=-1090891868,this.outputLen=28}};const Vi=zf(()=>new Ff);zf(()=>new om);function im(e,t){if(e.length>t)throw new TypeError(`Data is larger than array size: ${e.length} > ${t}`)}function am(e){if(e.match(/[^a-fA-f0-9]/)!==null)throw new TypeError("Invalid characters in hex string: "+e);if(e.length%2!==0)throw new Error(`Length of hex string is invalid: ${e.length}`)}function cm(e){if(e>Number.MAX_SAFE_INTEGER)throw new TypeError("Number exceeds safe bounds!")}const{getRandomValues:um}=crypto??globalThis.crypto??window.crypto;function fm(e=32){if(typeof um=="function")return crypto.getRandomValues(new Uint8Array(e));throw new Error("Crypto module missing getRandomValues!")}function lm(e,t,n="be"){t===void 0&&(t=e.length),im(e,t);const r=new Uint8Array(t).fill(0),s=n==="be"?0:t-e.length;return r.set(e,s),r}function Wf(e){let t,n=0;const r=e.reduce((o,i)=>o+i.length,0),s=new Uint8Array(r);for(t=0;t0||(i.length^a)>0?"":"1";c in o||u>0;)l=o[c],l=l>0?l*256+u:u,u=l/s|0,o[c]=l%s,c++;for(;c-- >0;)i+=r[o[c]];return n&&i.length%4>0?i+"=".repeat(4-i.length%4):i}function gm(e,t){const n=Gf(t),r=n.length,s=[],o=[];e=e.replace("=","");let i,a=0,c,u;for(i=0;i0||(o.length^i)>0||o.push(0);a in s||c>0;)u=s[a],u=u>0?u*r+c:c,c=u>>8,s[a]=u%256,a++}for(;a-- >0;)o.push(s[a]);return new Uint8Array(o)}function Yf(e){return Vi(Vi(e))}function mm(e){const t=Yf(e);return Wf([e,t.slice(0,4)])}function ym(e){const t=e.slice(0,-4),n=e.slice(-4);if(Yf(t).slice(0,4).toString()!==n.toString())throw new Error("Invalid checksum!");return t}const eu={encode:pm,decode:gm},Xf={encode:e=>{const t=mm(e);return eu.encode(t,"base58")},decode:e=>{const t=eu.decode(e,"base58");return ym(t)}},Jf="qpzry9x8gf2tvdw0s3jn54khce6mua7l",bm=[996825010,642813549,513874426,1027748829,705979059],no=[{version:0,name:"bech32",const:1},{version:1,name:"bech32m",const:734539939}];function Qf(e){let t=1;for(let n=0;n>25;t=(t&33554431)<<5^e[n];for(let s=0;s<5;++s)(r>>s&1)!==0&&(t^=bm[s])}return t}function el(e){const t=[];let n;for(n=0;n>5);for(t.push(0),n=0;n>5*(5-i)&31);return o}function tl(e,t,n,r=!0){const s=[];let o=0,i=0;const a=(1<>t>0)throw new Error("Failed to perform base conversion. Invalid value: "+String(u));for(o=(o<=n;)i-=n,s.push(o>>i&a)}if(r)i>0&&s.push(o<=t||(o<0)throw new Error("Failed to perform base conversion. Invalid Size!");return s}function vm(e,t,n){const r=t.concat(xm(e,t,n));let s=e+"1";for(let o=0;oo.version===t[0])??no[0];if(!wm(r,t,s))throw new Error("Checksum verification failed!");return[r,t.slice(0,t.length-6)]}function Em(e){let t,n,r=!1,s=!1;for(t=0;t126)return!1;n>=97&&n<=122&&(r=!0),n>=65&&n<=90&&(s=!0)}return!(r&&s)}function km(e){const t=e.lastIndexOf("1");return!(t<1||t+7>e.length||e.length>90)}function Sm(e,t="bc",n=0){const r=[n,...tl([...e],8,5)],s=no.find(i=>i.version===n)??no[0],o=vm(t,r,s);return rl(o),o}function rl(e){e=e.toLowerCase();const t=e.split("1",1)[0],[n,r]=nl(e),s=tl(r.slice(1),5,8,!1),o=s.length;switch(!0){case t!==n:throw new Error("Returned hrp string is invalid.");case(s===null||o<2||o>40):throw new Error("Decoded string is invalid or out of spec.");case r[0]>16:throw new Error("Returned version bit is out of range.");default:return Uint8Array.from(s)}}function $m(e){e=e.toLowerCase();const[t,n]=nl(e);return n[0]}const sl={encode:Sm,decode:rl,version:$m},ol="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",il="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",_m=new TextEncoder;function al(e,t=!1,n=!0){typeof e=="string"&&(e=_m.encode(e));const r=t?il:ol;let s="",o=0,i=0;for(let a=0;a=6;)o-=6,s+=r[i>>o&63];if(o>0)for(i<<=6-o,s+=r[i&63];o<6;)s+=n?"=":"",o+=2;return s}function cl(e,t=!1){const n=t||e.includes("-")||e.includes("_")?il.split(""):ol.split("");e=e.replace(/=+$/,"");const r=e.split("");let s=0,o=0;const i=[];for(let a=0;a=8&&(s-=8,i.push(o>>>s&255))}return new Uint8Array(i)}const ul={encode:al,decode:cl},fl={encode:e=>al(e,!0,!1),decode:e=>cl(e,!0)},Am=BigInt(0),Bm=BigInt(255),ll=BigInt(256);function Tm(e){if(e<=0xffn)return 1;if(e<=0xffffn)return 2;if(e<=0xffffffffn)return 4;if(e<=0xffffffffffffffffn)return 8;if(e<=0xffffffffffffffffffffffffffffffffn)return 16;if(e<=0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffn)return 32;throw new TypeError("Must specify a fixed buffer size for bigints greater than 32 bytes.")}function Im(e,t,n="be"){t===void 0&&(t=Tm(e));const r=n==="le",s=new ArrayBuffer(t),o=new DataView(s);let i=r?0:t-1;for(;e>Am;){const a=e&Bm,c=Number(a);r?o.setUint8(i++,c):o.setUint8(i--,c),e=(e-a)/ll}return new Uint8Array(s)}function Om(e){let t=BigInt(0);for(let n=e.length-1;n>=0;n--)t=t*ll+BigInt(e[n]);return BigInt(t)}function Cm(e){const t=e.split("").map(Number);if(t.length%8!==0)throw new Error(`Binary array is invalid length: ${e.length}`);const n=new Uint8Array(t.length/8);for(let r=0,s=0;r255)throw new Error(`Invalid byte value: ${r}. Byte values must be between 0 and 255.`);for(let s=7;s>=0;s--,n++)t[n]=r>>s&1}return t.join("")}function Um(e){if(e<=255)return 1;if(e<=65535)return 2;if(e<=4294967295)return 4;throw new TypeError("Numbers larger than 4 bytes must specify a fixed size!")}function Nm(e,t,n="be"){t===void 0&&(t=Um(e));const r=n==="le",s=new ArrayBuffer(t),o=new DataView(s);let i=r?0:t-1;for(;e>0;){const a=e&255;r?o.setUint8(i++,e):o.setUint8(i--,e),e=(e-a)/256}return new Uint8Array(s)}function Lm(e){let t=0;for(let n=e.length-1;n>=0;n--)t=t*256+e[n],cm(t);return t}const Rm=new TextEncoder,Hm=new TextDecoder;function Oa(e){return Rm.encode(e)}function li(e){return Hm.decode(e)}function jm(e,t){am(e);const n=e.length/2;if(t===void 0&&(t=n),n>t)throw new TypeError(`Hex string is larger than array size: ${n} > ${t}`);return t}function Km(e,t,n="le"){t=jm(e,t);const r=n==="le",s=new ArrayBuffer(t),o=new DataView(s);let i=r?0:t-1;for(let a=0;atypeof r=="bigint"?`${r}n`:r);return Oa(t)}function Zm(e,t,n){if(e instanceof ArrayBuffer)return new Uint8Array(e);if(e instanceof Uint8Array)return lm(e,t,n);if(typeof e=="string")return Km(e,t,n);if(typeof e=="bigint")return Im(e,t,n);if(typeof e=="number")return Nm(e,t,n);if(typeof e=="boolean")return Uint8Array.of(e?1:0);throw TypeError("Unsupported format:"+typeof e)}const re=class re extends Uint8Array{static random(t=32){const n=fm(t);return new re(n,t)}constructor(t,n,r){const s=Zm(t,n,r);super(s)}get arr(){return[...this]}get num(){return this.toNum()}get big(){return this.toBig()}get str(){return this.toStr()}get hex(){return this.toHex()}get raw(){return new Uint8Array(this)}get bin(){return this.toBin()}get b58chk(){return this.tob58chk()}get base64(){return this.toBase64()}get b64url(){return this.toB64url()}get digest(){return this.toHash()}get id(){return this.toHash().hex}get stream(){return new ny(this)}toNum(t="be"){const n=t==="be"?this.reverse():this;return Lm(n)}toBin(){return Pm(this)}toBig(t="be"){const n=t==="be"?this.reverse():this;return Om(n)}toHash(){const t=Vi(this);return new re(t)}toJson(){const t=li(this);return JSON.parse(t)}toBech32(t,n=0){return sl.encode(this,t,n)}toStr(){return li(this)}toHex(){return Dm(this)}toBytes(){return new Uint8Array(this)}tob58chk(){return Xf.encode(this)}toBase64(){return ul.encode(this)}toB64url(){return fl.encode(this)}prepend(t){return re.join([re.bytes(t),this])}append(t){return re.join([this,re.bytes(t)])}slice(t,n){const r=new Uint8Array(this).slice(t,n);return new re(r)}subarray(t,n){const r=new Uint8Array(this).subarray(t,n);return new re(r)}reverse(){const t=new Uint8Array(this).reverse();return new re(t)}write(t,n){const r=re.bytes(t);this.set(r,n)}prefixSize(t){const n=re.varInt(this.length,t);return re.join([n,this])}static from(t){return new re(Uint8Array.from(t))}static of(...t){return new re(Uint8Array.of(...t))}static join(t){const n=t.map(s=>re.bytes(s)),r=Wf(n);return new re(r)}static varInt(t,n){if(t<253)return re.num(t,1);if(t<65536)return re.of(253,...re.num(t,2,n));if(t<4294967296)return re.of(254,...re.num(t,4,n));if(BigInt(t)<0x10000000000000000n)return re.of(255,...re.num(t,8,n));throw new Error(`Value is too large: ${t}`)}};re.num=Vm,re.big=zm,re.bin=qm,re.raw=Fm,re.str=Wm,re.hex=Gm,re.bytes=Ym,re.json=Xm,re.base64=Jm,re.b64url=Qm,re.bech32=ey,re.b58chk=ty,re.encode=Oa,re.decode=li;let Y=re;function Vm(e,t,n){return new Y(e,t,n)}function qm(e,t,n){return new Y(Cm(e),t,n)}function zm(e,t,n){return new Y(e,t,n)}function Fm(e,t,n){return new Y(e,t,n)}function Wm(e,t,n){return new Y(Oa(e),t,n)}function Gm(e,t,n){return new Y(e,t,n)}function Ym(e,t,n){return new Y(e,t,n)}function Xm(e){return new Y(Mm(e))}function Jm(e){return new Y(ul.decode(e))}function Qm(e){return new Y(fl.decode(e))}function ey(e){return new Y(sl.decode(e))}function ty(e){return new Y(Xf.decode(e))}class ny{constructor(t){this.data=Y.bytes(t),this.size=this.data.length}peek(t){if(t>this.size)throw new Error(`Size greater than stream: ${t} > ${this.size}`);return new Y(this.data.slice(0,t))}read(t){t=t??this.readSize();const n=this.peek(t);return this.data=this.data.slice(t),this.size=this.data.length,n}readSize(t){const n=this.read(1).num;switch(!0){case(n>=0&&n<253):return n;case n===253:return this.read(2).toNum(t);case n===254:return this.read(4).toNum(t);case n===255:return this.read(8).toNum(t);default:throw new Error(`Varint is out of range: ${n}`)}}}const ro=Vt.CURVE,Ca=ro.n,ry=ro.p,sy={x:ro.Gx,y:ro.Gy},oy=BigInt(0);BigInt(1);BigInt(2);BigInt(3);BigInt(4);const qi={N:Ca,P:ry,G:sy,_0n:oy},Hr=jf(Ca,32,!0),dl=e=>qe(e,Ca);function Pa(e,t=!1){if(t)throw new Error(e);return!1}function hl(e){return Y.random(e)}function iy(e){const t=Y.bytes(e).big;return Y.big(dl(t),32)}var ay=Object.freeze({__proto__:null,fail:Pa,mod_bytes:iy,random:hl});const{N:cy,_0n:uy}=qi;function fy(e,t,n){const r=Y.bytes(e);return r.length!==t?Pa(`Invalid byte size: ${r.hex} !== ${t}`,n):!0}function ly(e,t){return typeof e=="bigint"&&uythis.big}lt(t){return new ve(t).big0&&!t.includes(e.length))throw new Error(`Expected Uint8Array of length ${t}, not of length=${e.length}`)}function gy(e){if(typeof e!="function"||typeof e.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");zi(e.outputLen),zi(e.blockLen)}function my(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function yy(e,t){pl(e);const n=t.outputLen;if(e.lengthe instanceof Uint8Array,di=e=>new DataView(e.buffer,e.byteOffset,e.byteLength),$t=(e,t)=>e<<32-t|e>>>t,xy=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!xy)throw new Error("Non little-endian hardware is not supported");Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function vy(e){if(typeof e!="string")throw new Error(`utf8ToBytes expected string, got ${typeof e}`);return new Uint8Array(new TextEncoder().encode(e))}function Ua(e){if(typeof e=="string"&&(e=vy(e)),!wy(e))throw new Error(`expected Uint8Array, got ${typeof e}`);return e}let gl=class{clone(){return this._cloneInto()}};function Jn(e){const t=r=>e().update(Ua(r)).digest(),n=e();return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=()=>e(),t}function Ey(e,t,n,r){if(typeof e.setBigUint64=="function")return e.setBigUint64(t,n,r);const s=BigInt(32),o=BigInt(4294967295),i=Number(n>>s&o),a=Number(n&o),c=r?4:0,u=r?0:4;e.setUint32(t+c,i,r),e.setUint32(t+u,a,r)}class Na extends gl{constructor(t,n,r,s){super(),this.blockLen=t,this.outputLen=n,this.padOffset=r,this.isLE=s,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(t),this.view=di(this.buffer)}update(t){Nn.exists(this);const{view:n,buffer:r,blockLen:s}=this;t=Ua(t);const o=t.length;for(let i=0;is-i&&(this.process(r,0),i=0);for(let f=i;fl.length)throw new Error("_sha2: outputLen bigger than state");for(let f=0;fe&t^~e&n,Sy=(e,t,n)=>e&t^e&n^t&n,$y=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),en=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),tn=new Uint32Array(64);let ml=class extends Na{constructor(){super(64,32,8,!1),this.A=en[0]|0,this.B=en[1]|0,this.C=en[2]|0,this.D=en[3]|0,this.E=en[4]|0,this.F=en[5]|0,this.G=en[6]|0,this.H=en[7]|0}get(){const{A:t,B:n,C:r,D:s,E:o,F:i,G:a,H:c}=this;return[t,n,r,s,o,i,a,c]}set(t,n,r,s,o,i,a,c){this.A=t|0,this.B=n|0,this.C=r|0,this.D=s|0,this.E=o|0,this.F=i|0,this.G=a|0,this.H=c|0}process(t,n){for(let f=0;f<16;f++,n+=4)tn[f]=t.getUint32(n,!1);for(let f=16;f<64;f++){const d=tn[f-15],h=tn[f-2],p=$t(d,7)^$t(d,18)^d>>>3,g=$t(h,17)^$t(h,19)^h>>>10;tn[f]=g+tn[f-7]+p+tn[f-16]|0}let{A:r,B:s,C:o,D:i,E:a,F:c,G:u,H:l}=this;for(let f=0;f<64;f++){const d=$t(a,6)^$t(a,11)^$t(a,25),h=l+d+ky(a,c,u)+$y[f]+tn[f]|0,g=($t(r,2)^$t(r,13)^$t(r,22))+Sy(r,s,o)|0;l=u,u=c,c=a,a=i+h|0,i=o,o=s,s=r,r=h+g|0}r=r+this.A|0,s=s+this.B|0,o=o+this.C|0,i=i+this.D|0,a=a+this.E|0,c=c+this.F|0,u=u+this.G|0,l=l+this.H|0,this.set(r,s,o,i,a,c,u,l)}roundClean(){tn.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};class _y extends ml{constructor(){super(),this.A=-1056596264,this.B=914150663,this.C=812702999,this.D=-150054599,this.E=-4191439,this.F=1750603025,this.G=1694076839,this.H=-1090891868,this.outputLen=28}}const so=Jn(()=>new ml);Jn(()=>new _y);const Bs=BigInt(2**32-1),Fi=BigInt(32);function yl(e,t=!1){return t?{h:Number(e&Bs),l:Number(e>>Fi&Bs)}:{h:Number(e>>Fi&Bs)|0,l:Number(e&Bs)|0}}function Ay(e,t=!1){let n=new Uint32Array(e.length),r=new Uint32Array(e.length);for(let s=0;sBigInt(e>>>0)<>>0),Ty=(e,t,n)=>e>>>n,Iy=(e,t,n)=>e<<32-n|t>>>n,Oy=(e,t,n)=>e>>>n|t<<32-n,Cy=(e,t,n)=>e<<32-n|t>>>n,Py=(e,t,n)=>e<<64-n|t>>>n-32,Uy=(e,t,n)=>e>>>n-32|t<<64-n,Ny=(e,t)=>t,Ly=(e,t)=>e,Ry=(e,t,n)=>e<>>32-n,Hy=(e,t,n)=>t<>>32-n,jy=(e,t,n)=>t<>>64-n,Ky=(e,t,n)=>e<>>64-n;function Dy(e,t,n,r){const s=(t>>>0)+(r>>>0);return{h:e+n+(s/2**32|0)|0,l:s|0}}const My=(e,t,n)=>(e>>>0)+(t>>>0)+(n>>>0),Zy=(e,t,n,r)=>t+n+r+(e/2**32|0)|0,Vy=(e,t,n,r)=>(e>>>0)+(t>>>0)+(n>>>0)+(r>>>0),qy=(e,t,n,r,s)=>t+n+r+s+(e/2**32|0)|0,zy=(e,t,n,r,s)=>(e>>>0)+(t>>>0)+(n>>>0)+(r>>>0)+(s>>>0),Fy=(e,t,n,r,s,o)=>t+n+r+s+o+(e/2**32|0)|0,Wy={fromBig:yl,split:Ay,toBig:By,shrSH:Ty,shrSL:Iy,rotrSH:Oy,rotrSL:Cy,rotrBH:Py,rotrBL:Uy,rotr32H:Ny,rotr32L:Ly,rotlSH:Ry,rotlSL:Hy,rotlBH:jy,rotlBL:Ky,add:Dy,add3L:My,add3H:Zy,add4L:Vy,add4H:qy,add5H:Fy,add5L:zy};var ne=Wy;const[Gy,Yy]=ne.split(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map(e=>BigInt(e))),nn=new Uint32Array(80),rn=new Uint32Array(80);let Uo=class extends Na{constructor(){super(128,64,16,!1),this.Ah=1779033703,this.Al=-205731576,this.Bh=-1150833019,this.Bl=-2067093701,this.Ch=1013904242,this.Cl=-23791573,this.Dh=-1521486534,this.Dl=1595750129,this.Eh=1359893119,this.El=-1377402159,this.Fh=-1694144372,this.Fl=725511199,this.Gh=528734635,this.Gl=-79577749,this.Hh=1541459225,this.Hl=327033209}get(){const{Ah:t,Al:n,Bh:r,Bl:s,Ch:o,Cl:i,Dh:a,Dl:c,Eh:u,El:l,Fh:f,Fl:d,Gh:h,Gl:p,Hh:g,Hl:b}=this;return[t,n,r,s,o,i,a,c,u,l,f,d,h,p,g,b]}set(t,n,r,s,o,i,a,c,u,l,f,d,h,p,g,b){this.Ah=t|0,this.Al=n|0,this.Bh=r|0,this.Bl=s|0,this.Ch=o|0,this.Cl=i|0,this.Dh=a|0,this.Dl=c|0,this.Eh=u|0,this.El=l|0,this.Fh=f|0,this.Fl=d|0,this.Gh=h|0,this.Gl=p|0,this.Hh=g|0,this.Hl=b|0}process(t,n){for(let y=0;y<16;y++,n+=4)nn[y]=t.getUint32(n),rn[y]=t.getUint32(n+=4);for(let y=16;y<80;y++){const v=nn[y-15]|0,x=rn[y-15]|0,B=ne.rotrSH(v,x,1)^ne.rotrSH(v,x,8)^ne.shrSH(v,x,7),O=ne.rotrSL(v,x,1)^ne.rotrSL(v,x,8)^ne.shrSL(v,x,7),C=nn[y-2]|0,T=rn[y-2]|0,U=ne.rotrSH(C,T,19)^ne.rotrBH(C,T,61)^ne.shrSH(C,T,6),H=ne.rotrSL(C,T,19)^ne.rotrBL(C,T,61)^ne.shrSL(C,T,6),K=ne.add4L(O,H,rn[y-7],rn[y-16]),k=ne.add4H(K,B,U,nn[y-7],nn[y-16]);nn[y]=k|0,rn[y]=K|0}let{Ah:r,Al:s,Bh:o,Bl:i,Ch:a,Cl:c,Dh:u,Dl:l,Eh:f,El:d,Fh:h,Fl:p,Gh:g,Gl:b,Hh:m,Hl:E}=this;for(let y=0;y<80;y++){const v=ne.rotrSH(f,d,14)^ne.rotrSH(f,d,18)^ne.rotrBH(f,d,41),x=ne.rotrSL(f,d,14)^ne.rotrSL(f,d,18)^ne.rotrBL(f,d,41),B=f&h^~f&g,O=d&p^~d&b,C=ne.add5L(E,x,O,Yy[y],rn[y]),T=ne.add5H(C,m,v,B,Gy[y],nn[y]),U=C|0,H=ne.rotrSH(r,s,28)^ne.rotrBH(r,s,34)^ne.rotrBH(r,s,39),K=ne.rotrSL(r,s,28)^ne.rotrBL(r,s,34)^ne.rotrBL(r,s,39),k=r&o^r&a^o&a,$=s&i^s&c^i&c;m=g|0,E=b|0,g=h|0,b=p|0,h=f|0,p=d|0,{h:f,l:d}=ne.add(u|0,l|0,T|0,U|0),u=a|0,l=c|0,a=o|0,c=i|0,o=r|0,i=s|0;const w=ne.add3L(U,K,$);r=ne.add3H(w,T,H,k),s=w|0}({h:r,l:s}=ne.add(this.Ah|0,this.Al|0,r|0,s|0)),{h:o,l:i}=ne.add(this.Bh|0,this.Bl|0,o|0,i|0),{h:a,l:c}=ne.add(this.Ch|0,this.Cl|0,a|0,c|0),{h:u,l}=ne.add(this.Dh|0,this.Dl|0,u|0,l|0),{h:f,l:d}=ne.add(this.Eh|0,this.El|0,f|0,d|0),{h,l:p}=ne.add(this.Fh|0,this.Fl|0,h|0,p|0),{h:g,l:b}=ne.add(this.Gh|0,this.Gl|0,g|0,b|0),{h:m,l:E}=ne.add(this.Hh|0,this.Hl|0,m|0,E|0),this.set(r,s,o,i,a,c,u,l,f,d,h,p,g,b,m,E)}roundClean(){nn.fill(0),rn.fill(0)}destroy(){this.buffer.fill(0),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}};class Xy extends Uo{constructor(){super(),this.Ah=-1942145080,this.Al=424955298,this.Bh=1944164710,this.Bl=-1982016298,this.Ch=502970286,this.Cl=855612546,this.Dh=1738396948,this.Dl=1479516111,this.Eh=258812777,this.El=2077511080,this.Fh=2011393907,this.Fl=79989058,this.Gh=1067287976,this.Gl=1780299464,this.Hh=286451373,this.Hl=-1848208735,this.outputLen=28}}class Jy extends Uo{constructor(){super(),this.Ah=573645204,this.Al=-64227540,this.Bh=-1621794909,this.Bl=-934517566,this.Ch=596883563,this.Cl=1867755857,this.Dh=-1774684391,this.Dl=1497426621,this.Eh=-1775747358,this.El=-1467023389,this.Fh=-1101128155,this.Fl=1401305490,this.Gh=721525244,this.Gl=746961066,this.Hh=246885852,this.Hl=-2117784414,this.outputLen=32}}class Qy extends Uo{constructor(){super(),this.Ah=-876896931,this.Al=-1056596264,this.Bh=1654270250,this.Bl=914150663,this.Ch=-1856437926,this.Cl=812702999,this.Dh=355462360,this.Dl=-150054599,this.Eh=1731405415,this.El=-4191439,this.Fh=-1900787065,this.Fl=1750603025,this.Gh=-619958771,this.Gl=1694076839,this.Hh=1203062813,this.Hl=-1090891868,this.outputLen=48}}const eb=Jn(()=>new Uo);Jn(()=>new Xy);Jn(()=>new Jy);Jn(()=>new Qy);const tb=new Uint8Array([7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8]),bl=Uint8Array.from({length:16},(e,t)=>t),nb=bl.map(e=>(9*e+5)%16);let La=[bl],Ra=[nb];for(let e=0;e<4;e++)for(let t of[La,Ra])t.push(t[e].map(n=>tb[n]));const wl=[[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8],[12,13,11,15,6,9,9,7,12,15,11,13,7,8,7,7],[13,15,14,11,7,7,6,8,13,14,13,12,5,5,6,9],[14,11,12,14,8,6,5,5,15,12,15,14,9,9,8,6],[15,12,13,13,9,5,8,6,14,11,12,11,8,6,5,5]].map(e=>new Uint8Array(e)),rb=La.map((e,t)=>e.map(n=>wl[t][n])),sb=Ra.map((e,t)=>e.map(n=>wl[t][n])),ob=new Uint32Array([0,1518500249,1859775393,2400959708,2840853838]),ib=new Uint32Array([1352829926,1548603684,1836072691,2053994217,0]),Ts=(e,t)=>e<>>32-t;function nu(e,t,n,r){return e===0?t^n^r:e===1?t&n|~t&r:e===2?(t|~n)^r:e===3?t&r|n&~r:t^(n|~r)}const Is=new Uint32Array(16);let ab=class extends Na{constructor(){super(64,20,8,!0),this.h0=1732584193,this.h1=-271733879,this.h2=-1732584194,this.h3=271733878,this.h4=-1009589776}get(){const{h0:t,h1:n,h2:r,h3:s,h4:o}=this;return[t,n,r,s,o]}set(t,n,r,s,o){this.h0=t|0,this.h1=n|0,this.h2=r|0,this.h3=s|0,this.h4=o|0}process(t,n){for(let h=0;h<16;h++,n+=4)Is[h]=t.getUint32(n,!0);let r=this.h0|0,s=r,o=this.h1|0,i=o,a=this.h2|0,c=a,u=this.h3|0,l=u,f=this.h4|0,d=f;for(let h=0;h<5;h++){const p=4-h,g=ob[h],b=ib[h],m=La[h],E=Ra[h],y=rb[h],v=sb[h];for(let x=0;x<16;x++){const B=Ts(r+nu(h,o,a,u)+Is[m[x]]+g,y[x])+f|0;r=f,f=u,u=Ts(a,10)|0,a=o,o=B}for(let x=0;x<16;x++){const B=Ts(s+nu(p,i,c,l)+Is[E[x]]+b,v[x])+d|0;s=d,d=l,l=Ts(c,10)|0,c=i,i=B}}this.set(this.h1+a+l|0,this.h2+u+d|0,this.h3+f+s|0,this.h4+r+i|0,this.h0+o+c|0)}roundClean(){Is.fill(0)}destroy(){this.destroyed=!0,this.buffer.fill(0),this.set(0,0,0,0,0)}};const cb=Jn(()=>new ab);let xl=class extends gl{constructor(t,n){super(),this.finished=!1,this.destroyed=!1,Nn.hash(t);const r=Ua(n);if(this.iHash=t.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const s=this.blockLen,o=new Uint8Array(s);o.set(r.length>s?t.create().update(r).digest():r);for(let i=0;inew xl(e,t).update(n).digest();vl.create=(e,t)=>new xl(e,t);function ub(e){const t=Y.bytes(e);return Y.raw(so(t))}function mr(e){const t=Y.bytes(e);return Y.raw(so(so(t)))}function Ha(e){const t=Y.bytes(e);return Y.raw(cb(so(t)))}function fb(e,t){const n=Y.bytes(e),r=Y.bytes(t);return Y.raw(vl(eb,n,r))}function lb(e){const t=Y.str(e).digest;return Y.join([t,t])}function db(e=32){return ja(hl(e))}function ja(e){return Ge.mod(e).buff}function El(e,t=!1){const n=Ge.mod(e).point;return t?n.x:n.buff}function kl(e,t){const n=Xn.from_x(t),r=Ge.mod(e);return n.mul(r).buff}function hb(e,t,n="ecdh/code"){const r=lb(n),s=ja(e),o=El(s),i=Y.bytes(t),a=kl(s,i),c=[o.hex,i.hex];return c.sort(),fb(a,Y.join([r,...c]))}function pb(e){const t=Y.bytes(e);switch(!0){case t.length===32:return!0;case(t.length===33&&t[0]===2):return!0;case(t.length===33&&t[0]===3):return!1;default:throw new TypeError(`Invalid public key: ${t.hex}`)}}function gb(e){const t=Y.bytes(e);switch(t.length){case 32:return t;case 33:return t.slice(1,33);default:throw new Error(`Invalid key length: ${t.length}`)}}var mb=Object.freeze({__proto__:null,genSecretKey:db,getPublicKey:El,getSecretKey:ja,getSharedCode:hb,getSharedKey:kl,is_even_pub:pb,xonly_pub:gb});Y.random(32);const Sl={secp:Vt},Wi={...mb,...ay};function No(e){const t=S.bytes(e);return Ut(t,33),Ha(t)}function $l(e){const t=Be.fmt.toBytes(e,!1);return Ha(t)}function _l(e){const t=Be.fmt.toBytes(e,!1);return ub(t)}function Al(e,t="main"){const n=t==="main"?["1"]:["m","n"];for(const r of n)if(e.startsWith(r))return!0;return!1}function Bl(e,t="main"){const n=S.bytes(e),r=t==="main"?S.num(0):S.num(111);return Ut(e,20),n.prepend(r).tob58chk()}function yb(e,t="main"){if(!Al(e,t))throw new TypeError("Invalid p2pkh address!");return S.b58chk(e).slice(1)}function bb(e){const t=S.bytes(e);return Ut(t,20),["OP_DUP","OP_HASH160",t.hex,"OP_EQUALVERIFY","OP_CHECKSIG"]}function wb(e,t){const n=No(e);return Bl(n,t)}const Tl={check:Al,encode:Bl,decode:yb,hash:No,scriptPubKey:bb,fromPubKey:wb};function Il(e,t="main"){const n=t==="main"?["3"]:["2"];for(const r of n)if(e.startsWith(r))return!0;return!1}function Ol(e,t="main"){const n=t==="main"?S.num(5):S.num(196),r=S.bytes(e);return Ut(r,20),r.prepend(n).tob58chk()}function xb(e,t="main"){if(!Il(e,t))throw new TypeError(`Invalid p2sh address for network ${t}:`+e);return S.b58chk(e).slice(1)}function vb(e){return["OP_HASH160",S.bytes(e).hex,"OP_EQUAL"]}function Eb(e,t){const n=$l(e);return Ol(n,t)}const Cl={check:Il,encode:Ol,decode:xb,hash:$l,scriptPubKey:vb,fromScript:Eb},Ka={main:"bc",testnet:"tb",signet:"tb",regtest:"bcrt"},kb=["bc1q","tb1q","bcrt1q"];function Pl(e){for(const t of kb)if(e.startsWith(t))return!0;return!1}function Ul(e,t="main"){const n=Ka[t],r=S.bytes(e);return Ut(r,20),r.toBech32(n,0)}function Sb(e){if(!Pl(e))throw new TypeError("Invalid segwit address!");return S.bech32(e)}function $b(e){const t=S.bytes(e);return Ut(t,20),["OP_0",t.hex]}function _b(e,t){const n=No(e);return Ul(n,t)}const Nl={check:Pl,encode:Ul,decode:Sb,hash:No,scriptPubKey:$b,fromPubKey:_b},Ab=["bc1q","tb1q","bcrt1q"];function Ll(e){for(const t of Ab)if(e.startsWith(t))return!0;return!1}function Rl(e,t="main"){const n=Ka[t],r=S.bytes(e);return Ut(r,32),r.toBech32(n,0)}function Bb(e){if(!Ll(e))throw new TypeError("Invalid segwit address!");return S.bech32(e)}function Tb(e){const t=S.bytes(e);return Ut(t,32),["OP_0",t.hex]}function Ib(e,t){const n=_l(e);return Rl(n,t)}const Hl={check:Ll,encode:Rl,decode:Bb,hash:_l,scriptPubKey:Tb,fromScript:Ib};function Mn(e){const t=S.bytes(e);return t.length>32?t.slice(1,33):t}const Ob=["bc1p","tb1p","bcrt1p"];function jl(e){for(const t of Ob)if(e.startsWith(t))return!0;return!1}function Kl(e,t="main"){const n=Ka[t],r=S.bytes(e);return Ut(r,32),r.toBech32(n,1)}function Cb(e){if(!jl(e))throw new TypeError("Invalid taproot address!");return S.bech32(e)}function Pb(e){const t=S.bytes(e);return Ut(t,32),["OP_1",t.hex]}function Ub(e,t){const n=Mn(e);return Kl(n,t)}const Dl={check:jl,encode:Kl,decode:Cb,scriptPubKey:Pb,fromPubKey:Ub},Nb={version:2,vin:[],vout:[],locktime:0},Lb={scriptSig:[],sequence:4294967293,witness:[]},Rb={value:0n,scriptPubKey:[]};function Da(e){const t={...Nb,...e};return t.vin=t.vin.map(n=>({...Lb,...n})),t.vout=t.vout.map(n=>({...Rb,...n})),t}function yr(e,t){const{version:n,vin:r,vout:s,locktime:o}=Da(e),i=t!==!0&&Hb(r),a=[Ma(n)];i&&a.push(S.hex("0001")),a.push(jb(r)),a.push(Kb(s));for(const c of r)i&&a.push(Mb(c.witness));return a.push(Za(o)),S.join(a)}function Hb(e){for(const t of e){const{witness:n}=t;if(typeof n=="string"||n instanceof Uint8Array||Array.isArray(n)&&n.length>0)return!0}return!1}function Ma(e){return S.num(e,4).reverse()}function ps(e){return S.hex(e,32).reverse()}function gs(e){return S.num(e,4).reverse()}function ms(e){if(typeof e=="string")return S.hex(e,4).reverse();if(typeof e=="number")return S.num(e,4).reverse();throw new Error("Unrecognized format: "+String(e))}function jb(e){const t=[S.varInt(e.length,"le")];for(const n of e){const{txid:r,vout:s,scriptSig:o,sequence:i}=n;t.push(ps(r)),t.push(gs(s)),t.push(Yn(o,!0)),t.push(ms(i))}return S.join(t)}function bn(e){if(typeof e=="number"){if(e%1!==0)throw new Error("Value must be an integer:"+String(e));return S.num(e,8).reverse()}return S.big(e,8).reverse()}function Kb(e){const t=[S.varInt(e.length,"le")];for(const n of e)t.push(Db(n));return S.join(t)}function Db(e){const{value:t,scriptPubKey:n}=e,r=[];return r.push(bn(t)),r.push(Yn(n,!0)),S.join(r)}function Mb(e=[]){const t=[];if(Array.isArray(e)){const n=S.varInt(e.length);t.push(n);for(const r of e)t.push(Zb(r));return S.join(t)}else return S.bytes(e)}function Zb(e){return Vb(e)?new S(0):Yn(e,!0)}function Vb(e){if(Array.isArray(e))return e.length===0;if(typeof e=="string"&&e==="")return!0;const t=S.bytes(e);return t.length===1&&t[0]===0}function Za(e){if(typeof e=="string")return S.hex(e,4);if(typeof e=="number")return S.num(e,4).reverse();throw new Error("Unrecognized format: "+String(e))}function Va(e){typeof e=="string"&&(e=S.hex(e).raw);const t=new Ir(e),n=qb(t),r=zb(t),s=Fb(t),o=Gb(t);if(r)for(const a of s)a.witness=Xb(t);const i=Jb(t);return{version:n,vin:s,vout:o,locktime:i}}function qb(e){return e.read(4).reverse().toNum()}function zb(e){const[t,n]=[...e.peek(2)];if(t===0){if(e.read(2),n===1)return!0;throw new Error(`Invalid witness flag: ${n}`)}return!1}function Fb(e){const t=[],n=e.readSize("le");for(let r=0;r0?e.read(n).hex:null}function Zl(e,t){const n=Ml(e);return n!==null?n:[]}function Jb(e){return e.read(4).reverse().toNum()}function Qb(e){if(Bf(e))return Va(e);if(typeof e=="object"&&!(e instanceof Uint8Array))return yr(e),Da(e);throw new Error("Invalid format: "+typeof e)}function ew(e){if(Bf(e))return Va(e),S.bytes(e);if(typeof e=="object")return yr(e);throw new Error("Invalid format: "+typeof e)}const qa={toBytes:ew,toJson:Qb},tw=[["p2pkh",/^76a914(?\w{40})88ac$/],["p2sh",/^a914(?\w{40})87$/],["p2w-pkh",/^0014(?\w{40})$/],["p2w-sh",/^0020(?\w{64})$/],["p2tr",/^5120(?\w{64})$/]],nw=[192,194,196,198,200,202,204,206,208,210,212,214,216,218,220,222,224,226,228,230,232,234,236,238,240,242,244,246,248,250,252,254,102,126,128,132,150,152,186,188,190];function rw(e){let t=e.at(-1);return Ft(t)&&(t=S.hex(t)),e.length>1&&t instanceof Uint8Array&&t[0]===80?(e.pop(),S.raw(t)):null}function sw(e){let t=e.at(-1);return Ft(t)&&(t=S.hex(t)),e.length>1&&t instanceof Uint8Array&&t.length>32&&nw.includes(t[0]&254)?(e.pop(),S.raw(t)):null}function ow(e){if(e.length>1){const t=e.at(-1);try{const n=Be.fmt.toBytes(t);return e.pop(),n}catch{return null}}return null}function iw(e){const t=[];for(const n of e)if(Ft(n)||n instanceof Uint8Array||typeof n=="number")t.push(S.bytes(n));else throw new Error("unrecognized value: "+String(n));return t}function aw(e=[]){const t=[...e],n=rw(t),r=sw(t),s=ow(t),o=iw(t);return{annex:n,cblock:r,script:s,params:o}}function cw(e){const t=Be.fmt.toBytes(e,!1).hex;for(const[n,r]of tw){const s=n,{groups:o}=r.exec(t)??{},{hash:i}=o??{};if(Ft(i))return{type:s,data:S.hex(i)}}return{type:"raw",data:S.hex(t)}}function uw(e){const t=qa.toJson(e),n=yr(t,!0);return mr(n).reverse().hex}function fw(e){const t=qa.toJson(e),n=yr(t,!0).length,r=yr(t,!1).length,s=n*3+r,o=s%4>0?1:0,i=Math.floor(s/4)+o;return{size:r,bsize:n,vsize:i,weight:s}}const ie={create:Da,encode:yr,decode:Va,fmt:qa,util:{getTxSize:fw,getTxid:uw,readScriptPubKey:cw,readWitness:aw}},lw=[["1","p2pkh","main",20,"base58"],["3","p2sh","main",20,"base58"],["m","p2pkh","testnet",20,"base58"],["n","p2pkh","testnet",20,"base58"],["2","p2sh","testnet",20,"base58"],["bc1q","p2w-pkh","main",20,"bech32"],["tb1q","p2w-pkh","testnet",20,"bech32"],["bcrt1q","p2w-pkh","regtest",20,"bech32"],["bc1q","p2w-sh","main",32,"bech32"],["tb1q","p2w-sh","testnet",32,"bech32"],["bcrt1q","p2w-sh","regtest",32,"bech32"],["bc1p","p2tr","main",32,"bech32m"],["tb1p","p2tr","testnet",32,"bech32m"],["bcrt1p","p2tr","regtest",32,"bech32m"]];function dw(e,t){switch(t){case"base58":return S.b58chk(e).slice(1);case"bech32":return S.bech32(e);case"bech32m":return S.bech32(e);default:throw new Error("Invalid address format: "+t)}}function hw(e){for(const t of lw){const[n,r,s,o,i]=t;if(e.startsWith(n)&&dw(e,i).length===o)return t}throw new Error("Invalid address: "+e)}function Vl(e){switch(e){case"p2pkh":return Tl;case"p2sh":return Cl;case"p2w-pkh":return Nl;case"p2w-sh":return Hl;case"p2tr":return Dl;default:throw new Error("Invalid address type: "+e)}}function ql(e){const[t,n,r]=hw(e),s=Vl(n),o=s.decode(e,r),i=s.scriptPubKey(o);return{prefix:t,type:n,network:r,data:o,script:i}}function pw(e,t){const{type:n,data:r}=ie.util.readScriptPubKey(e);return Vl(n).encode(r,t)}function gw(e){const{script:t}=ql(e);return Be.fmt.toAsm(t,!1)}const Yr={p2pkh:Tl,p2sh:Cl,p2wpkh:Nl,p2wsh:Hl,p2tr:Dl,decode:ql,fromScriptPubKey:pw,toScriptPubKey:gw},mw=[1,2,3];function za(e,t,n={}){const{sigflag:r=1}=n,s=(r&128)===128,o=r%128;if(!mw.includes(o))throw new Error("Invalid hash type: "+String(r));const i=ie.fmt.toJson(e),{version:a,vin:c,vout:u,locktime:l}=i,{txid:f,vout:d,prevout:h,sequence:p}=c[t],{value:g}=h??{};if(g===void 0)throw new Error("Prevout value is empty!");let b=n.script;if(b===void 0&&n.pubkey!==void 0&&(b=`76a914${Ha(n.pubkey).hex}88ac`),b===void 0)throw new Error("No pubkey / script has been set!");if(Be.fmt.toAsm(b).includes("OP_CODESEPARATOR"))throw new Error("This library does not currently support the use of OP_CODESEPARATOR in segwit scripts.");const m=[Ma(a),yw(c,s),bw(c,o,s),ps(f),gs(d),Be.encode(b,!0),bn(g),ms(p),ww(u,t,o),Za(l),S.num(r,4).reverse()];return mr(S.join(m))}function yw(e,t){if(t===!0)return S.num(0,32);const n=[];for(const{txid:r,vout:s}of e)n.push(ps(r)),n.push(gs(s));return mr(S.join(n))}function bw(e,t,n){if(n||t!==1)return S.num(0,32);const r=[];for(const{sequence:s}of e)r.push(ms(s));return mr(S.join(r))}function ww(e,t,n){const r=[];if(n===1){for(const{value:s,scriptPubKey:o}of e)r.push(bn(s)),r.push(Be.encode(o,!0));return mr(S.join(r))}if(n===3&&t1&&c[1].length===33)u=S.bytes(c[1]);else return Ve("No pubkey provided!",s);const l=Be.fmt.toParam(c[0]),f=l.slice(0,-1),d=l.slice(-1)[0],h=za(r,t,{...n,sigflag:d});return Sl.secp.verify(f,h,u)?!0:Ve("Invalid signature!",s)}const Ew={hash:za,sign:xw,verify:vw},kw=[0,1,2,3,129,130,131];function Fa(e,t,n={}){const{extension:r,sigflag:s=0,extflag:o=0,key_version:i=0,separator_pos:a=4294967295}=n,c=ie.fmt.toJson(e),{version:u,vin:l,vout:f,locktime:d}=c;if(t>=l.length)throw new Error("Index out of bounds: "+String(t));if(!kw.includes(s))throw new Error("Invalid hash type: "+String(s));if(o<0||o>127)throw new Error("Extention flag out of range: "+String(o));const{txid:h,vout:p,sequence:g,witness:b=[]}=l[t],m=(s&128)===128,E=Iw(b),y=E!==void 0?1:0,x=(o+(r!==void 0?1:0))*2+y,B=S.str("TapSighash").digest,O=[B,B,S.num(0,1),S.num(s,1),Ma(u),Za(d)];if(!m){const C=l.map(T=>ru(T));O.push(Sw(l),_w(C),Aw(C),$w(l))}if(((s&3)<2||(s&3)>3)&&O.push(Bw(f)),O.push(S.num(x,1)),m){const{value:C,scriptPubKey:T}=ru(l[t]);O.push(ps(h),gs(p),bn(C),Be.encode(T,!0),ms(g))}else O.push(S.num(t,4).reverse());return E!==void 0&&O.push(E),(s&3)===3&&O.push(Tw(f[t])),r!==void 0&&O.push(S.bytes(r),S.num(i),S.num(a,4,"le")),S.join(O).digest}function Sw(e){const t=[];for(const{txid:n,vout:r}of e)t.push(ps(n)),t.push(gs(r));return S.join(t).digest}function $w(e){const t=[];for(const{sequence:n}of e)t.push(ms(n));return S.join(t).digest}function _w(e){const t=[];for(const{value:n}of e)t.push(bn(n));return S.join(t).digest}function Aw(e){const t=[];for(const{scriptPubKey:n}of e)t.push(Yn(n,!0));return S.join(t).digest}function Bw(e){const t=[];for(const{value:n,scriptPubKey:r}of e)t.push(bn(n)),t.push(Be.encode(r,!0));return S.join(t).digest}function Tw(e){return S.join([bn(e.value),Be.encode(e.scriptPubKey,!0)]).digest}function Iw(e){if(e===void 0||e.length<2)return;let t=e.at(-1);if(typeof t=="string"&&(t=S.hex(t)),t instanceof Uint8Array&&t[0]===80)return S.raw(t).prefixSize("be").digest}function ru(e){if(e.prevout===void 0)throw new Error("Prevout data missing for input: "+String(e.txid));return e.prevout}const Ow=0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2fn,Cw=0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141n;function Pw(e,t,n,r={}){const{sigflag:s=0}=r,o=Fa(t,n,r),i=Uw(e,o);return s===0?S.raw(i):S.join([i,s])}function Uw(e,t,n=S.random(32)){const r=S.bytes(t),s=new Ge(e),o=s.point,i=o.hasEvenY?s.big:s.negated.big,a=Fs("BIP0340/aux",S.bytes(n)),c=i^a.big,u=Fs("BIP0340/nonce",c,o.x.raw,r),l=new Ge(u),f=l.point,d=f.hasEvenY?l.big:l.negated.big,h=new Ge(Fs("BIP0340/challenge",f.x.raw,o.x.raw,r)),p=new Ge(d+h.big*i);return S.join([f.x.raw,p.raw])}function Nw(e,t,n,r=!1){const s=Xn.from_x(Mn(n)),o=S.bytes(t),i=S.bytes(e).stream;i.size<64&&Ve("Signature length is too small: "+String(i.size),r);const a=i.read(32);a.big>Ow&&Ve("Signature r value greater than field size!",r);const c=i.read(32);c.big>Cw&&Ve("Signature s value greater than curve order!",r);const u=new Ge(Fs("BIP0340/challenge",a.raw,s.x.raw,o)),l=new Ge(c).point,f=s.mul(u.big),d=l.sub(f);return d.hasOddY&&Ve("Signature R value has odd Y coordinate!",r),d.x.big===0n&&Ve("Signature R value is infinite!",r),d.x.big===a.big}const Lw=192;function Lo(e){const t=S.str(e).digest;return S.join([t,t])}function Wa(e,t=Lw){return S.join([Lo("TapLeaf"),jw(t),S.bytes(e)]).digest.hex}function Rw(e,t){return Wa(Be.fmt.toBytes(e),t)}function Ga(e,t){return t0){const[h,p,g]=oo(r,i);c=g,a=ur(e,h,n)}else i!==void 0?a=ur(e,i,n):a=ur(e,void 0,n);const u=n?Wi.getPublicKey(a)[0]:a[0],f=[S.num(s+Xl(u)),o];c.length>0&&c.forEach(h=>f.push(S.hex(h)));const d=S.join(f);if(i!==void 0&&!Ya(a,i,d,t))throw new Error("Path checking failed! Unable to generate path.");return[Mn(a).hex,d.hex]}function Ya(e,t,n,r={}){const{isPrivate:s=!1,throws:o=!1}=r,{parity:i,paths:a,intkey:c}=Yl(n),u=s?Wi.getPublicKey(e,!0):Mn(e),l=S.join([i,u]);if(l.length!==33)return Ve("Invalid tapkey: "+l.hex,o);let f=S.bytes(t).hex;for(const h of a)f=Ga(f,h);const d=ur(c,f);return S.raw(d).hex===S.raw(l).hex}function Yl(e){const t=new Ir(S.bytes(e)),n=t.read(1).num,r=t.read(32),[s,o]=n%2===0?[n,2]:[n-1,3],i=[];for(;t.size>=32;)i.push(t.read(32).hex);if(t.size!==0)throw new Error("Non-empty buffer on control block: "+String(t));return{intkey:r,paths:i,parity:o,version:s}}function Xl(e=2){if(e===0||e===1)return e;if(e===2||e==="02")return 0;if(e===3||e==="03")return 1;throw new Error("Invalid parity bit: "+String(e))}function Fw(e,t,n={}){const r=ie.fmt.toJson(e),{throws:s=!1}=n,{prevout:o,witness:i=[]}=r.vin[t],a=ie.util.readWitness(i),{cblock:c,script:u,params:l}=a;let f;if(l.length<1)return Ve("Invalid witness data: "+String(i),s);const{scriptPubKey:d}=o??{};if(d===void 0)return Ve("Prevout scriptPubKey is empty!",s);const{type:h,data:p}=ie.util.readScriptPubKey(d);if(h!=="p2tr")return Ve("Prevout script is not a valid taproot output:"+p.hex,s);if(p.length!==32)return Ve("Invalid tapkey length: "+String(p.length),s);if(c!==null&&u!==null){const y=c[0]&254,v=Wa(u,y);if(n.extension=v,!Ya(p,v,c,{throws:s}))return Ve("cblock verification failed!",s)}n.pubkey!==void 0?f=S.bytes(n.pubkey):l.length>1&&l[1].length===32?f=S.bytes(l[1]):f=S.bytes(p);const g=Be.fmt.toParam(l[0]),b=new Ir(g),m=b.read(64).raw;if(b.size===1&&(n.sigflag=b.read(1).num,n.sigflag===0))return Ve("0x00 is not a valid appended sigflag!",s);const E=Fa(r,t,n);return Nw(m,E,f,s)?!0:Ve("Invalid signature!",s)}const Ww={hash:Fa,sign:Pw,verify:Fw},br={segwit:Ew,taproot:Ww},Gw={getTag:Lo,getLeaf:Wa,getBranch:Ga,getRoot:Hw},Yw={readCtrlBlock:Yl,readParityBit:Xl},Xw={getPubKey:Kw,getSecKey:Dw,getTweak:zl,tweakSecKey:Fl,tweakPubKey:Wl},Ro={getPubKey:zw,getSecKey:qw,encodeScript:Rw,checkPath:Ya,tree:Gw,tweak:Xw,util:Yw,SCRIPT_PUBKEY:Zw};var ge;(function(e){e.assertEqual=s=>s;function t(s){}e.assertIs=t;function n(s){throw new Error}e.assertNever=n,e.arrayToEnum=s=>{const o={};for(const i of s)o[i]=i;return o},e.getValidEnumValues=s=>{const o=e.objectKeys(s).filter(a=>typeof s[s[a]]!="number"),i={};for(const a of o)i[a]=s[a];return e.objectValues(i)},e.objectValues=s=>e.objectKeys(s).map(function(o){return s[o]}),e.objectKeys=typeof Object.keys=="function"?s=>Object.keys(s):s=>{const o=[];for(const i in s)Object.prototype.hasOwnProperty.call(s,i)&&o.push(i);return o},e.find=(s,o)=>{for(const i of s)if(o(i))return i},e.isInteger=typeof Number.isInteger=="function"?s=>Number.isInteger(s):s=>typeof s=="number"&&isFinite(s)&&Math.floor(s)===s;function r(s,o=" | "){return s.map(i=>typeof i=="string"?`'${i}'`:i).join(o)}e.joinValues=r,e.jsonStringifyReplacer=(s,o)=>typeof o=="bigint"?o.toString():o})(ge||(ge={}));var Gi;(function(e){e.mergeShapes=(t,n)=>({...t,...n})})(Gi||(Gi={}));const Z=ge.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),dn=e=>{switch(typeof e){case"undefined":return Z.undefined;case"string":return Z.string;case"number":return isNaN(e)?Z.nan:Z.number;case"boolean":return Z.boolean;case"function":return Z.function;case"bigint":return Z.bigint;case"symbol":return Z.symbol;case"object":return Array.isArray(e)?Z.array:e===null?Z.null:e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?Z.promise:typeof Map<"u"&&e instanceof Map?Z.map:typeof Set<"u"&&e instanceof Set?Z.set:typeof Date<"u"&&e instanceof Date?Z.date:Z.object;default:return Z.unknown}},R=ge.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),Jw=e=>JSON.stringify(e,null,2).replace(/"([^"]+)":/g,"$1:");class mt extends Error{constructor(t){super(),this.issues=[],this.addIssue=r=>{this.issues=[...this.issues,r]},this.addIssues=(r=[])=>{this.issues=[...this.issues,...r]};const n=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,n):this.__proto__=n,this.name="ZodError",this.issues=t}get errors(){return this.issues}format(t){const n=t||function(o){return o.message},r={_errors:[]},s=o=>{for(const i of o.issues)if(i.code==="invalid_union")i.unionErrors.map(s);else if(i.code==="invalid_return_type")s(i.returnTypeError);else if(i.code==="invalid_arguments")s(i.argumentsError);else if(i.path.length===0)r._errors.push(n(i));else{let a=r,c=0;for(;cn.message){const n={},r=[];for(const s of this.issues)s.path.length>0?(n[s.path[0]]=n[s.path[0]]||[],n[s.path[0]].push(t(s))):r.push(t(s));return{formErrors:r,fieldErrors:n}}get formErrors(){return this.flatten()}}mt.create=e=>new mt(e);const Xr=(e,t)=>{let n;switch(e.code){case R.invalid_type:e.received===Z.undefined?n="Required":n=`Expected ${e.expected}, received ${e.received}`;break;case R.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,ge.jsonStringifyReplacer)}`;break;case R.unrecognized_keys:n=`Unrecognized key(s) in object: ${ge.joinValues(e.keys,", ")}`;break;case R.invalid_union:n="Invalid input";break;case R.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${ge.joinValues(e.options)}`;break;case R.invalid_enum_value:n=`Invalid enum value. Expected ${ge.joinValues(e.options)}, received '${e.received}'`;break;case R.invalid_arguments:n="Invalid function arguments";break;case R.invalid_return_type:n="Invalid function return type";break;case R.invalid_date:n="Invalid date";break;case R.invalid_string:typeof e.validation=="object"?"includes"in e.validation?(n=`Invalid input: must include "${e.validation.includes}"`,typeof e.validation.position=="number"&&(n=`${n} at one or more positions greater than or equal to ${e.validation.position}`)):"startsWith"in e.validation?n=`Invalid input: must start with "${e.validation.startsWith}"`:"endsWith"in e.validation?n=`Invalid input: must end with "${e.validation.endsWith}"`:ge.assertNever(e.validation):e.validation!=="regex"?n=`Invalid ${e.validation}`:n="Invalid";break;case R.too_small:e.type==="array"?n=`Array must contain ${e.exact?"exactly":e.inclusive?"at least":"more than"} ${e.minimum} element(s)`:e.type==="string"?n=`String must contain ${e.exact?"exactly":e.inclusive?"at least":"over"} ${e.minimum} character(s)`:e.type==="number"?n=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="date"?n=`Date must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(e.minimum))}`:n="Invalid input";break;case R.too_big:e.type==="array"?n=`Array must contain ${e.exact?"exactly":e.inclusive?"at most":"less than"} ${e.maximum} element(s)`:e.type==="string"?n=`String must contain ${e.exact?"exactly":e.inclusive?"at most":"under"} ${e.maximum} character(s)`:e.type==="number"?n=`Number must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="bigint"?n=`BigInt must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="date"?n=`Date must be ${e.exact?"exactly":e.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(e.maximum))}`:n="Invalid input";break;case R.custom:n="Invalid input";break;case R.invalid_intersection_types:n="Intersection results could not be merged";break;case R.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case R.not_finite:n="Number must be finite";break;default:n=t.defaultError,ge.assertNever(e)}return{message:n}};let Jl=Xr;function Qw(e){Jl=e}function io(){return Jl}const ao=e=>{const{data:t,path:n,errorMaps:r,issueData:s}=e,o=[...n,...s.path||[]],i={...s,path:o};let a="";const c=r.filter(u=>!!u).slice().reverse();for(const u of c)a=u(i,{data:t,defaultError:a}).message;return{...s,path:o,message:s.message||a}},e1=[];function V(e,t){const n=ao({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,io(),Xr].filter(r=>!!r)});e.common.issues.push(n)}class Fe{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(t,n){const r=[];for(const s of n){if(s.status==="aborted")return J;s.status==="dirty"&&t.dirty(),r.push(s.value)}return{status:t.value,value:r}}static async mergeObjectAsync(t,n){const r=[];for(const s of n)r.push({key:await s.key,value:await s.value});return Fe.mergeObjectSync(t,r)}static mergeObjectSync(t,n){const r={};for(const s of n){const{key:o,value:i}=s;if(o.status==="aborted"||i.status==="aborted")return J;o.status==="dirty"&&t.dirty(),i.status==="dirty"&&t.dirty(),(typeof i.value<"u"||s.alwaysSet)&&(r[o.value]=i.value)}return{status:t.value,value:r}}}const J=Object.freeze({status:"aborted"}),Ql=e=>({status:"dirty",value:e}),Je=e=>({status:"valid",value:e}),Yi=e=>e.status==="aborted",Xi=e=>e.status==="dirty",co=e=>e.status==="valid",uo=e=>typeof Promise<"u"&&e instanceof Promise;var W;(function(e){e.errToObj=t=>typeof t=="string"?{message:t}:t||{},e.toString=t=>typeof t=="string"?t:t==null?void 0:t.message})(W||(W={}));class Ct{constructor(t,n,r,s){this._cachedPath=[],this.parent=t,this.data=n,this._path=r,this._key=s}get path(){return this._cachedPath.length||(this._key instanceof Array?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}}const su=(e,t)=>{if(co(t))return{success:!0,data:t.value};if(!e.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;const n=new mt(e.common.issues);return this._error=n,this._error}}};function te(e){if(!e)return{};const{errorMap:t,invalid_type_error:n,required_error:r,description:s}=e;if(t&&(n||r))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return t?{errorMap:t,description:s}:{errorMap:(i,a)=>i.code!=="invalid_type"?{message:a.defaultError}:typeof a.data>"u"?{message:r??a.defaultError}:{message:n??a.defaultError},description:s}}class se{constructor(t){this.spa=this.safeParseAsync,this._def=t,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this)}get description(){return this._def.description}_getType(t){return dn(t.data)}_getOrReturnCtx(t,n){return n||{common:t.parent.common,data:t.data,parsedType:dn(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}_processInputParams(t){return{status:new Fe,ctx:{common:t.parent.common,data:t.data,parsedType:dn(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}}_parseSync(t){const n=this._parse(t);if(uo(n))throw new Error("Synchronous parse encountered promise.");return n}_parseAsync(t){const n=this._parse(t);return Promise.resolve(n)}parse(t,n){const r=this.safeParse(t,n);if(r.success)return r.data;throw r.error}safeParse(t,n){var r;const s={common:{issues:[],async:(r=n==null?void 0:n.async)!==null&&r!==void 0?r:!1,contextualErrorMap:n==null?void 0:n.errorMap},path:(n==null?void 0:n.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:dn(t)},o=this._parseSync({data:t,path:s.path,parent:s});return su(s,o)}async parseAsync(t,n){const r=await this.safeParseAsync(t,n);if(r.success)return r.data;throw r.error}async safeParseAsync(t,n){const r={common:{issues:[],contextualErrorMap:n==null?void 0:n.errorMap,async:!0},path:(n==null?void 0:n.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:dn(t)},s=this._parse({data:t,path:r.path,parent:r}),o=await(uo(s)?s:Promise.resolve(s));return su(r,o)}refine(t,n){const r=s=>typeof n=="string"||typeof n>"u"?{message:n}:typeof n=="function"?n(s):n;return this._refinement((s,o)=>{const i=t(s),a=()=>o.addIssue({code:R.custom,...r(s)});return typeof Promise<"u"&&i instanceof Promise?i.then(c=>c?!0:(a(),!1)):i?!0:(a(),!1)})}refinement(t,n){return this._refinement((r,s)=>t(r)?!0:(s.addIssue(typeof n=="function"?n(r,s):n),!1))}_refinement(t){return new wt({schema:this,typeName:G.ZodEffects,effect:{type:"refinement",refinement:t}})}superRefine(t){return this._refinement(t)}optional(){return Mt.create(this,this._def)}nullable(){return qn.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return yt.create(this,this._def)}promise(){return xr.create(this,this._def)}or(t){return ts.create([this,t],this._def)}and(t){return ns.create(this,t,this._def)}transform(t){return new wt({...te(this._def),schema:this,typeName:G.ZodEffects,effect:{type:"transform",transform:t}})}default(t){const n=typeof t=="function"?t:()=>t;return new as({...te(this._def),innerType:this,defaultValue:n,typeName:G.ZodDefault})}brand(){return new td({typeName:G.ZodBranded,type:this,...te(this._def)})}catch(t){const n=typeof t=="function"?t:()=>t;return new po({...te(this._def),innerType:this,catchValue:n,typeName:G.ZodCatch})}describe(t){const n=this.constructor;return new n({...this._def,description:t})}pipe(t){return ys.create(this,t)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}const t1=/^c[^\s-]{8,}$/i,n1=/^[a-z][a-z0-9]*$/,r1=/[0-9A-HJKMNP-TV-Z]{26}/,s1=/^([a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[a-f0-9]{4}-[a-f0-9]{12}|00000000-0000-0000-0000-000000000000)$/i,o1=/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\])|(\[IPv6:(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))\])|([A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])*(\.[A-Za-z]{2,})+))$/,i1=new RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u"),a1=/^(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))$/,c1=/^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,u1=e=>e.precision?e.offset?new RegExp(`^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{${e.precision}}(([+-]\\d{2}(:?\\d{2})?)|Z)$`):new RegExp(`^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{${e.precision}}Z$`):e.precision===0?e.offset?new RegExp("^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(([+-]\\d{2}(:?\\d{2})?)|Z)$"):new RegExp("^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}Z$"):e.offset?new RegExp("^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?(([+-]\\d{2}(:?\\d{2})?)|Z)$"):new RegExp("^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?Z$");function f1(e,t){return!!((t==="v4"||!t)&&a1.test(e)||(t==="v6"||!t)&&c1.test(e))}class pt extends se{constructor(){super(...arguments),this._regex=(t,n,r)=>this.refinement(s=>t.test(s),{validation:n,code:R.invalid_string,...W.errToObj(r)}),this.nonempty=t=>this.min(1,W.errToObj(t)),this.trim=()=>new pt({...this._def,checks:[...this._def.checks,{kind:"trim"}]}),this.toLowerCase=()=>new pt({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]}),this.toUpperCase=()=>new pt({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}_parse(t){if(this._def.coerce&&(t.data=String(t.data)),this._getType(t)!==Z.string){const o=this._getOrReturnCtx(t);return V(o,{code:R.invalid_type,expected:Z.string,received:o.parsedType}),J}const r=new Fe;let s;for(const o of this._def.checks)if(o.kind==="min")t.data.lengtho.value&&(s=this._getOrReturnCtx(t,s),V(s,{code:R.too_big,maximum:o.value,type:"string",inclusive:!0,exact:!1,message:o.message}),r.dirty());else if(o.kind==="length"){const i=t.data.length>o.value,a=t.data.length"u"?null:t==null?void 0:t.precision,offset:(n=t==null?void 0:t.offset)!==null&&n!==void 0?n:!1,...W.errToObj(t==null?void 0:t.message)})}regex(t,n){return this._addCheck({kind:"regex",regex:t,...W.errToObj(n)})}includes(t,n){return this._addCheck({kind:"includes",value:t,position:n==null?void 0:n.position,...W.errToObj(n==null?void 0:n.message)})}startsWith(t,n){return this._addCheck({kind:"startsWith",value:t,...W.errToObj(n)})}endsWith(t,n){return this._addCheck({kind:"endsWith",value:t,...W.errToObj(n)})}min(t,n){return this._addCheck({kind:"min",value:t,...W.errToObj(n)})}max(t,n){return this._addCheck({kind:"max",value:t,...W.errToObj(n)})}length(t,n){return this._addCheck({kind:"length",value:t,...W.errToObj(n)})}get isDatetime(){return!!this._def.checks.find(t=>t.kind==="datetime")}get isEmail(){return!!this._def.checks.find(t=>t.kind==="email")}get isURL(){return!!this._def.checks.find(t=>t.kind==="url")}get isEmoji(){return!!this._def.checks.find(t=>t.kind==="emoji")}get isUUID(){return!!this._def.checks.find(t=>t.kind==="uuid")}get isCUID(){return!!this._def.checks.find(t=>t.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(t=>t.kind==="cuid2")}get isULID(){return!!this._def.checks.find(t=>t.kind==="ulid")}get isIP(){return!!this._def.checks.find(t=>t.kind==="ip")}get minLength(){let t=null;for(const n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxLength(){let t=null;for(const n of this._def.checks)n.kind==="max"&&(t===null||n.value{var t;return new pt({checks:[],typeName:G.ZodString,coerce:(t=e==null?void 0:e.coerce)!==null&&t!==void 0?t:!1,...te(e)})};function l1(e,t){const n=(e.toString().split(".")[1]||"").length,r=(t.toString().split(".")[1]||"").length,s=n>r?n:r,o=parseInt(e.toFixed(s).replace(".","")),i=parseInt(t.toFixed(s).replace(".",""));return o%i/Math.pow(10,s)}class wn extends se{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(t){if(this._def.coerce&&(t.data=Number(t.data)),this._getType(t)!==Z.number){const o=this._getOrReturnCtx(t);return V(o,{code:R.invalid_type,expected:Z.number,received:o.parsedType}),J}let r;const s=new Fe;for(const o of this._def.checks)o.kind==="int"?ge.isInteger(t.data)||(r=this._getOrReturnCtx(t,r),V(r,{code:R.invalid_type,expected:"integer",received:"float",message:o.message}),s.dirty()):o.kind==="min"?(o.inclusive?t.datao.value:t.data>=o.value)&&(r=this._getOrReturnCtx(t,r),V(r,{code:R.too_big,maximum:o.value,type:"number",inclusive:o.inclusive,exact:!1,message:o.message}),s.dirty()):o.kind==="multipleOf"?l1(t.data,o.value)!==0&&(r=this._getOrReturnCtx(t,r),V(r,{code:R.not_multiple_of,multipleOf:o.value,message:o.message}),s.dirty()):o.kind==="finite"?Number.isFinite(t.data)||(r=this._getOrReturnCtx(t,r),V(r,{code:R.not_finite,message:o.message}),s.dirty()):ge.assertNever(o);return{status:s.value,value:t.data}}gte(t,n){return this.setLimit("min",t,!0,W.toString(n))}gt(t,n){return this.setLimit("min",t,!1,W.toString(n))}lte(t,n){return this.setLimit("max",t,!0,W.toString(n))}lt(t,n){return this.setLimit("max",t,!1,W.toString(n))}setLimit(t,n,r,s){return new wn({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:W.toString(s)}]})}_addCheck(t){return new wn({...this._def,checks:[...this._def.checks,t]})}int(t){return this._addCheck({kind:"int",message:W.toString(t)})}positive(t){return this._addCheck({kind:"min",value:0,inclusive:!1,message:W.toString(t)})}negative(t){return this._addCheck({kind:"max",value:0,inclusive:!1,message:W.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:0,inclusive:!0,message:W.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:0,inclusive:!0,message:W.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:W.toString(n)})}finite(t){return this._addCheck({kind:"finite",message:W.toString(t)})}safe(t){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:W.toString(t)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:W.toString(t)})}get minValue(){let t=null;for(const n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxValue(){let t=null;for(const n of this._def.checks)n.kind==="max"&&(t===null||n.valuet.kind==="int"||t.kind==="multipleOf"&&ge.isInteger(t.value))}get isFinite(){let t=null,n=null;for(const r of this._def.checks){if(r.kind==="finite"||r.kind==="int"||r.kind==="multipleOf")return!0;r.kind==="min"?(n===null||r.value>n)&&(n=r.value):r.kind==="max"&&(t===null||r.valuenew wn({checks:[],typeName:G.ZodNumber,coerce:(e==null?void 0:e.coerce)||!1,...te(e)});class xn extends se{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(t){if(this._def.coerce&&(t.data=BigInt(t.data)),this._getType(t)!==Z.bigint){const o=this._getOrReturnCtx(t);return V(o,{code:R.invalid_type,expected:Z.bigint,received:o.parsedType}),J}let r;const s=new Fe;for(const o of this._def.checks)o.kind==="min"?(o.inclusive?t.datao.value:t.data>=o.value)&&(r=this._getOrReturnCtx(t,r),V(r,{code:R.too_big,type:"bigint",maximum:o.value,inclusive:o.inclusive,message:o.message}),s.dirty()):o.kind==="multipleOf"?t.data%o.value!==BigInt(0)&&(r=this._getOrReturnCtx(t,r),V(r,{code:R.not_multiple_of,multipleOf:o.value,message:o.message}),s.dirty()):ge.assertNever(o);return{status:s.value,value:t.data}}gte(t,n){return this.setLimit("min",t,!0,W.toString(n))}gt(t,n){return this.setLimit("min",t,!1,W.toString(n))}lte(t,n){return this.setLimit("max",t,!0,W.toString(n))}lt(t,n){return this.setLimit("max",t,!1,W.toString(n))}setLimit(t,n,r,s){return new xn({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:W.toString(s)}]})}_addCheck(t){return new xn({...this._def,checks:[...this._def.checks,t]})}positive(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:W.toString(t)})}negative(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:W.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:W.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:W.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:W.toString(n)})}get minValue(){let t=null;for(const n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxValue(){let t=null;for(const n of this._def.checks)n.kind==="max"&&(t===null||n.value{var t;return new xn({checks:[],typeName:G.ZodBigInt,coerce:(t=e==null?void 0:e.coerce)!==null&&t!==void 0?t:!1,...te(e)})};class Jr extends se{_parse(t){if(this._def.coerce&&(t.data=!!t.data),this._getType(t)!==Z.boolean){const r=this._getOrReturnCtx(t);return V(r,{code:R.invalid_type,expected:Z.boolean,received:r.parsedType}),J}return Je(t.data)}}Jr.create=e=>new Jr({typeName:G.ZodBoolean,coerce:(e==null?void 0:e.coerce)||!1,...te(e)});class Zn extends se{_parse(t){if(this._def.coerce&&(t.data=new Date(t.data)),this._getType(t)!==Z.date){const o=this._getOrReturnCtx(t);return V(o,{code:R.invalid_type,expected:Z.date,received:o.parsedType}),J}if(isNaN(t.data.getTime())){const o=this._getOrReturnCtx(t);return V(o,{code:R.invalid_date}),J}const r=new Fe;let s;for(const o of this._def.checks)o.kind==="min"?t.data.getTime()o.value&&(s=this._getOrReturnCtx(t,s),V(s,{code:R.too_big,message:o.message,inclusive:!0,exact:!1,maximum:o.value,type:"date"}),r.dirty()):ge.assertNever(o);return{status:r.value,value:new Date(t.data.getTime())}}_addCheck(t){return new Zn({...this._def,checks:[...this._def.checks,t]})}min(t,n){return this._addCheck({kind:"min",value:t.getTime(),message:W.toString(n)})}max(t,n){return this._addCheck({kind:"max",value:t.getTime(),message:W.toString(n)})}get minDate(){let t=null;for(const n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t!=null?new Date(t):null}get maxDate(){let t=null;for(const n of this._def.checks)n.kind==="max"&&(t===null||n.valuenew Zn({checks:[],coerce:(e==null?void 0:e.coerce)||!1,typeName:G.ZodDate,...te(e)});class fo extends se{_parse(t){if(this._getType(t)!==Z.symbol){const r=this._getOrReturnCtx(t);return V(r,{code:R.invalid_type,expected:Z.symbol,received:r.parsedType}),J}return Je(t.data)}}fo.create=e=>new fo({typeName:G.ZodSymbol,...te(e)});class Qr extends se{_parse(t){if(this._getType(t)!==Z.undefined){const r=this._getOrReturnCtx(t);return V(r,{code:R.invalid_type,expected:Z.undefined,received:r.parsedType}),J}return Je(t.data)}}Qr.create=e=>new Qr({typeName:G.ZodUndefined,...te(e)});class es extends se{_parse(t){if(this._getType(t)!==Z.null){const r=this._getOrReturnCtx(t);return V(r,{code:R.invalid_type,expected:Z.null,received:r.parsedType}),J}return Je(t.data)}}es.create=e=>new es({typeName:G.ZodNull,...te(e)});class wr extends se{constructor(){super(...arguments),this._any=!0}_parse(t){return Je(t.data)}}wr.create=e=>new wr({typeName:G.ZodAny,...te(e)});class Kn extends se{constructor(){super(...arguments),this._unknown=!0}_parse(t){return Je(t.data)}}Kn.create=e=>new Kn({typeName:G.ZodUnknown,...te(e)});class qt extends se{_parse(t){const n=this._getOrReturnCtx(t);return V(n,{code:R.invalid_type,expected:Z.never,received:n.parsedType}),J}}qt.create=e=>new qt({typeName:G.ZodNever,...te(e)});class lo extends se{_parse(t){if(this._getType(t)!==Z.undefined){const r=this._getOrReturnCtx(t);return V(r,{code:R.invalid_type,expected:Z.void,received:r.parsedType}),J}return Je(t.data)}}lo.create=e=>new lo({typeName:G.ZodVoid,...te(e)});class yt extends se{_parse(t){const{ctx:n,status:r}=this._processInputParams(t),s=this._def;if(n.parsedType!==Z.array)return V(n,{code:R.invalid_type,expected:Z.array,received:n.parsedType}),J;if(s.exactLength!==null){const i=n.data.length>s.exactLength.value,a=n.data.lengths.maxLength.value&&(V(n,{code:R.too_big,maximum:s.maxLength.value,type:"array",inclusive:!0,exact:!1,message:s.maxLength.message}),r.dirty()),n.common.async)return Promise.all([...n.data].map((i,a)=>s.type._parseAsync(new Ct(n,i,n.path,a)))).then(i=>Fe.mergeArray(r,i));const o=[...n.data].map((i,a)=>s.type._parseSync(new Ct(n,i,n.path,a)));return Fe.mergeArray(r,o)}get element(){return this._def.type}min(t,n){return new yt({...this._def,minLength:{value:t,message:W.toString(n)}})}max(t,n){return new yt({...this._def,maxLength:{value:t,message:W.toString(n)}})}length(t,n){return new yt({...this._def,exactLength:{value:t,message:W.toString(n)}})}nonempty(t){return this.min(1,t)}}yt.create=(e,t)=>new yt({type:e,minLength:null,maxLength:null,exactLength:null,typeName:G.ZodArray,...te(t)});function ar(e){if(e instanceof Ae){const t={};for(const n in e.shape){const r=e.shape[n];t[n]=Mt.create(ar(r))}return new Ae({...e._def,shape:()=>t})}else return e instanceof yt?new yt({...e._def,type:ar(e.element)}):e instanceof Mt?Mt.create(ar(e.unwrap())):e instanceof qn?qn.create(ar(e.unwrap())):e instanceof Pt?Pt.create(e.items.map(t=>ar(t))):e}class Ae extends se{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;const t=this._def.shape(),n=ge.objectKeys(t);return this._cached={shape:t,keys:n}}_parse(t){if(this._getType(t)!==Z.object){const u=this._getOrReturnCtx(t);return V(u,{code:R.invalid_type,expected:Z.object,received:u.parsedType}),J}const{status:r,ctx:s}=this._processInputParams(t),{shape:o,keys:i}=this._getCached(),a=[];if(!(this._def.catchall instanceof qt&&this._def.unknownKeys==="strip"))for(const u in s.data)i.includes(u)||a.push(u);const c=[];for(const u of i){const l=o[u],f=s.data[u];c.push({key:{status:"valid",value:u},value:l._parse(new Ct(s,f,s.path,u)),alwaysSet:u in s.data})}if(this._def.catchall instanceof qt){const u=this._def.unknownKeys;if(u==="passthrough")for(const l of a)c.push({key:{status:"valid",value:l},value:{status:"valid",value:s.data[l]}});else if(u==="strict")a.length>0&&(V(s,{code:R.unrecognized_keys,keys:a}),r.dirty());else if(u!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{const u=this._def.catchall;for(const l of a){const f=s.data[l];c.push({key:{status:"valid",value:l},value:u._parse(new Ct(s,f,s.path,l)),alwaysSet:l in s.data})}}return s.common.async?Promise.resolve().then(async()=>{const u=[];for(const l of c){const f=await l.key;u.push({key:f,value:await l.value,alwaysSet:l.alwaysSet})}return u}).then(u=>Fe.mergeObjectSync(r,u)):Fe.mergeObjectSync(r,c)}get shape(){return this._def.shape()}strict(t){return new Ae({...this._def,unknownKeys:"strict",...t!==void 0?{errorMap:(n,r)=>{var s,o,i,a;const c=(i=(o=(s=this._def).errorMap)===null||o===void 0?void 0:o.call(s,n,r).message)!==null&&i!==void 0?i:r.defaultError;return n.code==="unrecognized_keys"?{message:(a=W.errToObj(t).message)!==null&&a!==void 0?a:c}:{message:c}}}:{}})}strip(){return new Ae({...this._def,unknownKeys:"strip"})}passthrough(){return new Ae({...this._def,unknownKeys:"passthrough"})}extend(t){return new Ae({...this._def,shape:()=>({...this._def.shape(),...t})})}merge(t){return new Ae({unknownKeys:t._def.unknownKeys,catchall:t._def.catchall,shape:()=>({...this._def.shape(),...t._def.shape()}),typeName:G.ZodObject})}setKey(t,n){return this.augment({[t]:n})}catchall(t){return new Ae({...this._def,catchall:t})}pick(t){const n={};return ge.objectKeys(t).forEach(r=>{t[r]&&this.shape[r]&&(n[r]=this.shape[r])}),new Ae({...this._def,shape:()=>n})}omit(t){const n={};return ge.objectKeys(this.shape).forEach(r=>{t[r]||(n[r]=this.shape[r])}),new Ae({...this._def,shape:()=>n})}deepPartial(){return ar(this)}partial(t){const n={};return ge.objectKeys(this.shape).forEach(r=>{const s=this.shape[r];t&&!t[r]?n[r]=s:n[r]=s.optional()}),new Ae({...this._def,shape:()=>n})}required(t){const n={};return ge.objectKeys(this.shape).forEach(r=>{if(t&&!t[r])n[r]=this.shape[r];else{let o=this.shape[r];for(;o instanceof Mt;)o=o._def.innerType;n[r]=o}}),new Ae({...this._def,shape:()=>n})}keyof(){return ed(ge.objectKeys(this.shape))}}Ae.create=(e,t)=>new Ae({shape:()=>e,unknownKeys:"strip",catchall:qt.create(),typeName:G.ZodObject,...te(t)});Ae.strictCreate=(e,t)=>new Ae({shape:()=>e,unknownKeys:"strict",catchall:qt.create(),typeName:G.ZodObject,...te(t)});Ae.lazycreate=(e,t)=>new Ae({shape:e,unknownKeys:"strip",catchall:qt.create(),typeName:G.ZodObject,...te(t)});class ts extends se{_parse(t){const{ctx:n}=this._processInputParams(t),r=this._def.options;function s(o){for(const a of o)if(a.result.status==="valid")return a.result;for(const a of o)if(a.result.status==="dirty")return n.common.issues.push(...a.ctx.common.issues),a.result;const i=o.map(a=>new mt(a.ctx.common.issues));return V(n,{code:R.invalid_union,unionErrors:i}),J}if(n.common.async)return Promise.all(r.map(async o=>{const i={...n,common:{...n.common,issues:[]},parent:null};return{result:await o._parseAsync({data:n.data,path:n.path,parent:i}),ctx:i}})).then(s);{let o;const i=[];for(const c of r){const u={...n,common:{...n.common,issues:[]},parent:null},l=c._parseSync({data:n.data,path:n.path,parent:u});if(l.status==="valid")return l;l.status==="dirty"&&!o&&(o={result:l,ctx:u}),u.common.issues.length&&i.push(u.common.issues)}if(o)return n.common.issues.push(...o.ctx.common.issues),o.result;const a=i.map(c=>new mt(c));return V(n,{code:R.invalid_union,unionErrors:a}),J}}get options(){return this._def.options}}ts.create=(e,t)=>new ts({options:e,typeName:G.ZodUnion,...te(t)});const Ws=e=>e instanceof ss?Ws(e.schema):e instanceof wt?Ws(e.innerType()):e instanceof os?[e.value]:e instanceof vn?e.options:e instanceof is?Object.keys(e.enum):e instanceof as?Ws(e._def.innerType):e instanceof Qr?[void 0]:e instanceof es?[null]:null;class Ho extends se{_parse(t){const{ctx:n}=this._processInputParams(t);if(n.parsedType!==Z.object)return V(n,{code:R.invalid_type,expected:Z.object,received:n.parsedType}),J;const r=this.discriminator,s=n.data[r],o=this.optionsMap.get(s);return o?n.common.async?o._parseAsync({data:n.data,path:n.path,parent:n}):o._parseSync({data:n.data,path:n.path,parent:n}):(V(n,{code:R.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[r]}),J)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(t,n,r){const s=new Map;for(const o of n){const i=Ws(o.shape[t]);if(!i)throw new Error(`A discriminator value for key \`${t}\` could not be extracted from all schema options`);for(const a of i){if(s.has(a))throw new Error(`Discriminator property ${String(t)} has duplicate value ${String(a)}`);s.set(a,o)}}return new Ho({typeName:G.ZodDiscriminatedUnion,discriminator:t,options:n,optionsMap:s,...te(r)})}}function Ji(e,t){const n=dn(e),r=dn(t);if(e===t)return{valid:!0,data:e};if(n===Z.object&&r===Z.object){const s=ge.objectKeys(t),o=ge.objectKeys(e).filter(a=>s.indexOf(a)!==-1),i={...e,...t};for(const a of o){const c=Ji(e[a],t[a]);if(!c.valid)return{valid:!1};i[a]=c.data}return{valid:!0,data:i}}else if(n===Z.array&&r===Z.array){if(e.length!==t.length)return{valid:!1};const s=[];for(let o=0;o{if(Yi(o)||Yi(i))return J;const a=Ji(o.value,i.value);return a.valid?((Xi(o)||Xi(i))&&n.dirty(),{status:n.value,value:a.data}):(V(r,{code:R.invalid_intersection_types}),J)};return r.common.async?Promise.all([this._def.left._parseAsync({data:r.data,path:r.path,parent:r}),this._def.right._parseAsync({data:r.data,path:r.path,parent:r})]).then(([o,i])=>s(o,i)):s(this._def.left._parseSync({data:r.data,path:r.path,parent:r}),this._def.right._parseSync({data:r.data,path:r.path,parent:r}))}}ns.create=(e,t,n)=>new ns({left:e,right:t,typeName:G.ZodIntersection,...te(n)});class Pt extends se{_parse(t){const{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==Z.array)return V(r,{code:R.invalid_type,expected:Z.array,received:r.parsedType}),J;if(r.data.lengththis._def.items.length&&(V(r,{code:R.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),n.dirty());const o=[...r.data].map((i,a)=>{const c=this._def.items[a]||this._def.rest;return c?c._parse(new Ct(r,i,r.path,a)):null}).filter(i=>!!i);return r.common.async?Promise.all(o).then(i=>Fe.mergeArray(n,i)):Fe.mergeArray(n,o)}get items(){return this._def.items}rest(t){return new Pt({...this._def,rest:t})}}Pt.create=(e,t)=>{if(!Array.isArray(e))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new Pt({items:e,typeName:G.ZodTuple,rest:null,...te(t)})};class rs extends se{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(t){const{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==Z.object)return V(r,{code:R.invalid_type,expected:Z.object,received:r.parsedType}),J;const s=[],o=this._def.keyType,i=this._def.valueType;for(const a in r.data)s.push({key:o._parse(new Ct(r,a,r.path,a)),value:i._parse(new Ct(r,r.data[a],r.path,a))});return r.common.async?Fe.mergeObjectAsync(n,s):Fe.mergeObjectSync(n,s)}get element(){return this._def.valueType}static create(t,n,r){return n instanceof se?new rs({keyType:t,valueType:n,typeName:G.ZodRecord,...te(r)}):new rs({keyType:pt.create(),valueType:t,typeName:G.ZodRecord,...te(n)})}}class ho extends se{_parse(t){const{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==Z.map)return V(r,{code:R.invalid_type,expected:Z.map,received:r.parsedType}),J;const s=this._def.keyType,o=this._def.valueType,i=[...r.data.entries()].map(([a,c],u)=>({key:s._parse(new Ct(r,a,r.path,[u,"key"])),value:o._parse(new Ct(r,c,r.path,[u,"value"]))}));if(r.common.async){const a=new Map;return Promise.resolve().then(async()=>{for(const c of i){const u=await c.key,l=await c.value;if(u.status==="aborted"||l.status==="aborted")return J;(u.status==="dirty"||l.status==="dirty")&&n.dirty(),a.set(u.value,l.value)}return{status:n.value,value:a}})}else{const a=new Map;for(const c of i){const u=c.key,l=c.value;if(u.status==="aborted"||l.status==="aborted")return J;(u.status==="dirty"||l.status==="dirty")&&n.dirty(),a.set(u.value,l.value)}return{status:n.value,value:a}}}}ho.create=(e,t,n)=>new ho({valueType:t,keyType:e,typeName:G.ZodMap,...te(n)});class Vn extends se{_parse(t){const{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==Z.set)return V(r,{code:R.invalid_type,expected:Z.set,received:r.parsedType}),J;const s=this._def;s.minSize!==null&&r.data.sizes.maxSize.value&&(V(r,{code:R.too_big,maximum:s.maxSize.value,type:"set",inclusive:!0,exact:!1,message:s.maxSize.message}),n.dirty());const o=this._def.valueType;function i(c){const u=new Set;for(const l of c){if(l.status==="aborted")return J;l.status==="dirty"&&n.dirty(),u.add(l.value)}return{status:n.value,value:u}}const a=[...r.data.values()].map((c,u)=>o._parse(new Ct(r,c,r.path,u)));return r.common.async?Promise.all(a).then(c=>i(c)):i(a)}min(t,n){return new Vn({...this._def,minSize:{value:t,message:W.toString(n)}})}max(t,n){return new Vn({...this._def,maxSize:{value:t,message:W.toString(n)}})}size(t,n){return this.min(t,n).max(t,n)}nonempty(t){return this.min(1,t)}}Vn.create=(e,t)=>new Vn({valueType:e,minSize:null,maxSize:null,typeName:G.ZodSet,...te(t)});class fr extends se{constructor(){super(...arguments),this.validate=this.implement}_parse(t){const{ctx:n}=this._processInputParams(t);if(n.parsedType!==Z.function)return V(n,{code:R.invalid_type,expected:Z.function,received:n.parsedType}),J;function r(a,c){return ao({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,io(),Xr].filter(u=>!!u),issueData:{code:R.invalid_arguments,argumentsError:c}})}function s(a,c){return ao({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,io(),Xr].filter(u=>!!u),issueData:{code:R.invalid_return_type,returnTypeError:c}})}const o={errorMap:n.common.contextualErrorMap},i=n.data;return this._def.returns instanceof xr?Je(async(...a)=>{const c=new mt([]),u=await this._def.args.parseAsync(a,o).catch(d=>{throw c.addIssue(r(a,d)),c}),l=await i(...u);return await this._def.returns._def.type.parseAsync(l,o).catch(d=>{throw c.addIssue(s(l,d)),c})}):Je((...a)=>{const c=this._def.args.safeParse(a,o);if(!c.success)throw new mt([r(a,c.error)]);const u=i(...c.data),l=this._def.returns.safeParse(u,o);if(!l.success)throw new mt([s(u,l.error)]);return l.data})}parameters(){return this._def.args}returnType(){return this._def.returns}args(...t){return new fr({...this._def,args:Pt.create(t).rest(Kn.create())})}returns(t){return new fr({...this._def,returns:t})}implement(t){return this.parse(t)}strictImplement(t){return this.parse(t)}static create(t,n,r){return new fr({args:t||Pt.create([]).rest(Kn.create()),returns:n||Kn.create(),typeName:G.ZodFunction,...te(r)})}}class ss extends se{get schema(){return this._def.getter()}_parse(t){const{ctx:n}=this._processInputParams(t);return this._def.getter()._parse({data:n.data,path:n.path,parent:n})}}ss.create=(e,t)=>new ss({getter:e,typeName:G.ZodLazy,...te(t)});class os extends se{_parse(t){if(t.data!==this._def.value){const n=this._getOrReturnCtx(t);return V(n,{received:n.data,code:R.invalid_literal,expected:this._def.value}),J}return{status:"valid",value:t.data}}get value(){return this._def.value}}os.create=(e,t)=>new os({value:e,typeName:G.ZodLiteral,...te(t)});function ed(e,t){return new vn({values:e,typeName:G.ZodEnum,...te(t)})}class vn extends se{_parse(t){if(typeof t.data!="string"){const n=this._getOrReturnCtx(t),r=this._def.values;return V(n,{expected:ge.joinValues(r),received:n.parsedType,code:R.invalid_type}),J}if(this._def.values.indexOf(t.data)===-1){const n=this._getOrReturnCtx(t),r=this._def.values;return V(n,{received:n.data,code:R.invalid_enum_value,options:r}),J}return Je(t.data)}get options(){return this._def.values}get enum(){const t={};for(const n of this._def.values)t[n]=n;return t}get Values(){const t={};for(const n of this._def.values)t[n]=n;return t}get Enum(){const t={};for(const n of this._def.values)t[n]=n;return t}extract(t){return vn.create(t)}exclude(t){return vn.create(this.options.filter(n=>!t.includes(n)))}}vn.create=ed;class is extends se{_parse(t){const n=ge.getValidEnumValues(this._def.values),r=this._getOrReturnCtx(t);if(r.parsedType!==Z.string&&r.parsedType!==Z.number){const s=ge.objectValues(n);return V(r,{expected:ge.joinValues(s),received:r.parsedType,code:R.invalid_type}),J}if(n.indexOf(t.data)===-1){const s=ge.objectValues(n);return V(r,{received:r.data,code:R.invalid_enum_value,options:s}),J}return Je(t.data)}get enum(){return this._def.values}}is.create=(e,t)=>new is({values:e,typeName:G.ZodNativeEnum,...te(t)});class xr extends se{unwrap(){return this._def.type}_parse(t){const{ctx:n}=this._processInputParams(t);if(n.parsedType!==Z.promise&&n.common.async===!1)return V(n,{code:R.invalid_type,expected:Z.promise,received:n.parsedType}),J;const r=n.parsedType===Z.promise?n.data:Promise.resolve(n.data);return Je(r.then(s=>this._def.type.parseAsync(s,{path:n.path,errorMap:n.common.contextualErrorMap})))}}xr.create=(e,t)=>new xr({type:e,typeName:G.ZodPromise,...te(t)});class wt extends se{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===G.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(t){const{status:n,ctx:r}=this._processInputParams(t),s=this._def.effect||null;if(s.type==="preprocess"){const i=s.transform(r.data);return r.common.async?Promise.resolve(i).then(a=>this._def.schema._parseAsync({data:a,path:r.path,parent:r})):this._def.schema._parseSync({data:i,path:r.path,parent:r})}const o={addIssue:i=>{V(r,i),i.fatal?n.abort():n.dirty()},get path(){return r.path}};if(o.addIssue=o.addIssue.bind(o),s.type==="refinement"){const i=a=>{const c=s.refinement(a,o);if(r.common.async)return Promise.resolve(c);if(c instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return a};if(r.common.async===!1){const a=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});return a.status==="aborted"?J:(a.status==="dirty"&&n.dirty(),i(a.value),{status:n.value,value:a.value})}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(a=>a.status==="aborted"?J:(a.status==="dirty"&&n.dirty(),i(a.value).then(()=>({status:n.value,value:a.value}))))}if(s.type==="transform")if(r.common.async===!1){const i=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});if(!co(i))return i;const a=s.transform(i.value,o);if(a instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:n.value,value:a}}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(i=>co(i)?Promise.resolve(s.transform(i.value,o)).then(a=>({status:n.value,value:a})):i);ge.assertNever(s)}}wt.create=(e,t,n)=>new wt({schema:e,typeName:G.ZodEffects,effect:t,...te(n)});wt.createWithPreprocess=(e,t,n)=>new wt({schema:t,effect:{type:"preprocess",transform:e},typeName:G.ZodEffects,...te(n)});class Mt extends se{_parse(t){return this._getType(t)===Z.undefined?Je(void 0):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}}Mt.create=(e,t)=>new Mt({innerType:e,typeName:G.ZodOptional,...te(t)});class qn extends se{_parse(t){return this._getType(t)===Z.null?Je(null):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}}qn.create=(e,t)=>new qn({innerType:e,typeName:G.ZodNullable,...te(t)});class as extends se{_parse(t){const{ctx:n}=this._processInputParams(t);let r=n.data;return n.parsedType===Z.undefined&&(r=this._def.defaultValue()),this._def.innerType._parse({data:r,path:n.path,parent:n})}removeDefault(){return this._def.innerType}}as.create=(e,t)=>new as({innerType:e,typeName:G.ZodDefault,defaultValue:typeof t.default=="function"?t.default:()=>t.default,...te(t)});class po extends se{_parse(t){const{ctx:n}=this._processInputParams(t),r={...n,common:{...n.common,issues:[]}},s=this._def.innerType._parse({data:r.data,path:r.path,parent:{...r}});return uo(s)?s.then(o=>({status:"valid",value:o.status==="valid"?o.value:this._def.catchValue({get error(){return new mt(r.common.issues)},input:r.data})})):{status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new mt(r.common.issues)},input:r.data})}}removeCatch(){return this._def.innerType}}po.create=(e,t)=>new po({innerType:e,typeName:G.ZodCatch,catchValue:typeof t.catch=="function"?t.catch:()=>t.catch,...te(t)});class go extends se{_parse(t){if(this._getType(t)!==Z.nan){const r=this._getOrReturnCtx(t);return V(r,{code:R.invalid_type,expected:Z.nan,received:r.parsedType}),J}return{status:"valid",value:t.data}}}go.create=e=>new go({typeName:G.ZodNaN,...te(e)});const d1=Symbol("zod_brand");class td extends se{_parse(t){const{ctx:n}=this._processInputParams(t),r=n.data;return this._def.type._parse({data:r,path:n.path,parent:n})}unwrap(){return this._def.type}}class ys extends se{_parse(t){const{status:n,ctx:r}=this._processInputParams(t);if(r.common.async)return(async()=>{const o=await this._def.in._parseAsync({data:r.data,path:r.path,parent:r});return o.status==="aborted"?J:o.status==="dirty"?(n.dirty(),Ql(o.value)):this._def.out._parseAsync({data:o.value,path:r.path,parent:r})})();{const s=this._def.in._parseSync({data:r.data,path:r.path,parent:r});return s.status==="aborted"?J:s.status==="dirty"?(n.dirty(),{status:"dirty",value:s.value}):this._def.out._parseSync({data:s.value,path:r.path,parent:r})}}static create(t,n){return new ys({in:t,out:n,typeName:G.ZodPipeline})}}const nd=(e,t={},n)=>e?wr.create().superRefine((r,s)=>{var o,i;if(!e(r)){const a=typeof t=="function"?t(r):typeof t=="string"?{message:t}:t,c=(i=(o=a.fatal)!==null&&o!==void 0?o:n)!==null&&i!==void 0?i:!0,u=typeof a=="string"?{message:a}:a;s.addIssue({code:"custom",...u,fatal:c})}}):wr.create(),h1={object:Ae.lazycreate};var G;(function(e){e.ZodString="ZodString",e.ZodNumber="ZodNumber",e.ZodNaN="ZodNaN",e.ZodBigInt="ZodBigInt",e.ZodBoolean="ZodBoolean",e.ZodDate="ZodDate",e.ZodSymbol="ZodSymbol",e.ZodUndefined="ZodUndefined",e.ZodNull="ZodNull",e.ZodAny="ZodAny",e.ZodUnknown="ZodUnknown",e.ZodNever="ZodNever",e.ZodVoid="ZodVoid",e.ZodArray="ZodArray",e.ZodObject="ZodObject",e.ZodUnion="ZodUnion",e.ZodDiscriminatedUnion="ZodDiscriminatedUnion",e.ZodIntersection="ZodIntersection",e.ZodTuple="ZodTuple",e.ZodRecord="ZodRecord",e.ZodMap="ZodMap",e.ZodSet="ZodSet",e.ZodFunction="ZodFunction",e.ZodLazy="ZodLazy",e.ZodLiteral="ZodLiteral",e.ZodEnum="ZodEnum",e.ZodEffects="ZodEffects",e.ZodNativeEnum="ZodNativeEnum",e.ZodOptional="ZodOptional",e.ZodNullable="ZodNullable",e.ZodDefault="ZodDefault",e.ZodCatch="ZodCatch",e.ZodPromise="ZodPromise",e.ZodBranded="ZodBranded",e.ZodPipeline="ZodPipeline"})(G||(G={}));const p1=(e,t={message:`Input not instance of ${e.name}`})=>nd(n=>n instanceof e,t),rd=pt.create,sd=wn.create,g1=go.create,m1=xn.create,od=Jr.create,y1=Zn.create,b1=fo.create,w1=Qr.create,x1=es.create,v1=wr.create,E1=Kn.create,k1=qt.create,S1=lo.create,$1=yt.create,_1=Ae.create,A1=Ae.strictCreate,B1=ts.create,T1=Ho.create,I1=ns.create,O1=Pt.create,C1=rs.create,P1=ho.create,U1=Vn.create,N1=fr.create,L1=ss.create,R1=os.create,H1=vn.create,j1=is.create,K1=xr.create,ou=wt.create,D1=Mt.create,M1=qn.create,Z1=wt.createWithPreprocess,V1=ys.create,q1=()=>rd().optional(),z1=()=>sd().optional(),F1=()=>od().optional(),W1={string:(e=>pt.create({...e,coerce:!0})),number:(e=>wn.create({...e,coerce:!0})),boolean:(e=>Jr.create({...e,coerce:!0})),bigint:(e=>xn.create({...e,coerce:!0})),date:(e=>Zn.create({...e,coerce:!0}))},G1=J;var Xe=Object.freeze({__proto__:null,defaultErrorMap:Xr,setErrorMap:Qw,getErrorMap:io,makeIssue:ao,EMPTY_PATH:e1,addIssueToContext:V,ParseStatus:Fe,INVALID:J,DIRTY:Ql,OK:Je,isAborted:Yi,isDirty:Xi,isValid:co,isAsync:uo,get util(){return ge},get objectUtil(){return Gi},ZodParsedType:Z,getParsedType:dn,ZodType:se,ZodString:pt,ZodNumber:wn,ZodBigInt:xn,ZodBoolean:Jr,ZodDate:Zn,ZodSymbol:fo,ZodUndefined:Qr,ZodNull:es,ZodAny:wr,ZodUnknown:Kn,ZodNever:qt,ZodVoid:lo,ZodArray:yt,ZodObject:Ae,ZodUnion:ts,ZodDiscriminatedUnion:Ho,ZodIntersection:ns,ZodTuple:Pt,ZodRecord:rs,ZodMap:ho,ZodSet:Vn,ZodFunction:fr,ZodLazy:ss,ZodLiteral:os,ZodEnum:vn,ZodNativeEnum:is,ZodPromise:xr,ZodEffects:wt,ZodTransformer:wt,ZodOptional:Mt,ZodNullable:qn,ZodDefault:as,ZodCatch:po,ZodNaN:go,BRAND:d1,ZodBranded:td,ZodPipeline:ys,custom:nd,Schema:se,ZodSchema:se,late:h1,get ZodFirstPartyTypeKind(){return G},coerce:W1,any:v1,array:$1,bigint:m1,boolean:od,date:y1,discriminatedUnion:T1,effect:ou,enum:H1,function:N1,instanceof:p1,intersection:I1,lazy:L1,literal:R1,map:P1,nan:g1,nativeEnum:j1,never:k1,null:x1,nullable:M1,number:sd,object:_1,oboolean:F1,onumber:z1,optional:D1,ostring:q1,pipeline:V1,preprocess:Z1,promise:K1,record:C1,set:U1,strictObject:A1,string:rd,symbol:b1,transformer:ou,tuple:O1,undefined:w1,union:B1,unknown:E1,void:S1,NEVER:G1,ZodIssueCode:R,quotelessJson:Jw,ZodError:mt});const id=Xe.string().regex(/^[a-fA-F0-9]$/),Y1=Xe.string().regex(/^[a-fA-F0-9]{64}$/),vr=Xe.number().min(0).max(4294967295),X1=Xe.bigint(),ad=Xe.instanceof(Uint8Array),J1=Xe.union([id,vr,Xe.string(),ad]).array(),Xa=Xe.union([J1,id,ad]),Q1=Xe.array(Xa),cd=Xe.object({value:Xe.union([vr,X1]),scriptPubKey:Xa}),ex=Xe.object({txid:Y1,vout:vr,scriptSig:Xa,sequence:vr,prevout:cd.optional(),witness:Q1});Xe.object({version:vr,vin:Xe.array(ex),vout:Xe.array(cd),locktime:vr});const Qi=2048,tx=new TextEncoder;function ud(e){const t=[],n=(s,o)=>{if(o<24)t.push(s*32+o);else if(o<=255)t.push(s*32+24,o);else if(o<=65535)t.push(s*32+25,o>>>8,o&255);else if(o<=4294967295){const i=new Uint8Array(4);new DataView(i.buffer).setUint32(0,o),t.push(s*32+26,...i)}else{t.push(s*32+27);const i=new Uint8Array(8);new DataView(i.buffer).setBigUint64(0,BigInt(o)),t.push(...i)}},r=(s,o=0)=>{if(o>64)throw new Error("Metadata nesting exceeds 64 levels.");if(s===null)t.push(246);else if(typeof s=="boolean")t.push(s?245:244);else if(typeof s=="number"&&Number.isFinite(s))if(Number.isSafeInteger(s)&&!Object.is(s,-0))n(s>=0?0:1,s>=0?s:-1-s);else{const i=new Uint8Array(8);new DataView(i.buffer).setFloat64(0,s),t.push(251,...i)}else if(typeof s=="string"){const i=tx.encode(s);n(3,i.length);for(const a of i)t.push(a)}else if(Array.isArray(s))n(4,s.length),s.forEach(i=>r(i,o+1));else if(typeof s=="object"&&Object.getPrototypeOf(s)===Object.prototype){const i=Object.entries(s);n(5,i.length);for(const[a,c]of i)r(a,o+1),r(c,o+1)}else throw new Error("Metadata must contain only JSON values.");if(t.length>Qi)throw new Error(`Metadata must be at most ${Qi} CBOR bytes.`)};return r(e),Uint8Array.from(t)}function nx(e){if(e=new Uint8Array(e),!e.length||e.length>Qi)throw new Error("Invalid CBOR metadata size.");let t=0;const n=o=>{if(t+o>e.length)throw new Error("Truncated CBOR metadata.");const i=e.slice(t,t+o);return t+=o,i},r=(o=0)=>{if(o>64)throw new Error("Metadata nesting exceeds 64 levels.");const i=n(1)[0],a=i>>5,c=i&31;if(a===7){if(c===20)return!1;if(c===21)return!0;if(c===22)return null;if(c===27){const l=new DataView(n(8).buffer).getFloat64(0);if(Number.isFinite(l))return l}throw new Error("Unsupported CBOR value.")}let u=c;if(c>=24&&c<=27){u=0;for(const l of n(2**(c-24)))u=u*256+l}else if(c>=28)throw new Error("Unsupported CBOR length.");if(!Number.isSafeInteger(u))throw new Error("CBOR integer exceeds JSON precision.");if(a===0)return u;if(a===1)return-1-u;if(a===3)return new TextDecoder("utf-8",{fatal:!0}).decode(n(u));if((a===4||a===5)&&u>e.length)throw new Error("Invalid CBOR collection length.");if(a===4)return Array.from({length:u},()=>r(o+1));if(a===5){const l={};for(let f=0;f({txid:e,vout:t,sequence:4294967295,prevout:{value:n,scriptPubKey:r}}),je=(e,t)=>({value:e,scriptPubKey:t}),iu=16*1024,At=1e3,de=500,mo="text/plain;charset=utf-8",rx=["text/plain","application/json","text/html","image/svg+xml","image/png","image/jpeg","image/webp"],fd=new TextEncoder,zr=e=>Array.from(e,t=>t.toString(16).padStart(2,"0")).join(""),On=e=>Uint8Array.from(e.match(/../g)??[],t=>parseInt(t,16)),yo=e=>zr(fd.encode(e));function Ja(e){const t=typeof e=="string"?{contentType:mo,bytes:fd.encode(e)}:e;if(!t||![...rx,mo].includes(t.contentType))throw new Error("Unsupported MIME type.");if(!(t.bytes instanceof Uint8Array)||!t.bytes.length)throw new Error("Enter non-empty inscription bytes.");if(t.bytes.length>iu)throw new Error(`Body must be at most ${iu} bytes.`);return{contentType:t.contentType,bytes:new Uint8Array(t.bytes)}}function bo(e){const t=/^([0-9a-f]{64})i(0|[1-9][0-9]*)$/.exec(e);if(!t||Number(t[2])>4294967295)throw new Error("Invalid parent inscription id.");let n=Number(t[2]),r="";for(;n;)r+=(n%256).toString(16).padStart(2,"0"),n=Math.floor(n/256);return t[1].match(/../g).reverse().join("")+r}function au(e){if(typeof e!="string"||!/^[0-9a-f]{64,72}$/.test(e)||e.length%2)throw new Error("Invalid parent tag.");const t=[...On(e.slice(64))].reduce((r,s,o)=>r+s*256**o,0),n=`${e.slice(0,64).match(/../g).reverse().join("")}i${t}`;if(bo(n)!==e)throw new Error("Non-canonical parent tag.");return n}function ld(e,t,n=null,r=void 0,s={}){const{contentType:o,bytes:i}=Ja(t),{delegate:a=null,pointer:c,metaprotocol:u=null}=s,l=u==null||u===""?null:new TextEncoder().encode(String(u));if(l&&l.length>520)throw new Error("Metaprotocol identifier must be 520 bytes or less.");const f=r===void 0?void 0:ud(r),d=[];for(let p=0;p{const g=p.length/2;return(g<=75?g.toString(16).padStart(2,"0"):g<=255?"4c"+g.toString(16).padStart(2,"0"):"4d"+(g%256).toString(16).padStart(2,"0")+Math.floor(g/256).toString(16).padStart(2,"0"))+p};return h(e)+"ac0063"+h(yo("ord"))+h("01")+h(yo(o))+(a?h("0b")+h(bo(a)):"")+(c===void 0?"":h("02")+h(dd(c)))+(n?h("03")+h(bo(n)):"")+(f===void 0?"":Array.from({length:Math.ceil(f.length/520)},(p,g)=>h("05")+h(zr(f.slice(g*520,(g+1)*520)))).join(""))+(l?h("07")+h(zr(l)):"")+"00"+d.map(h).join("")+"68"}const sx=e=>Ro.tree.getLeaf(Be.encode(e,!0));function Qa(e){if(!Array.isArray(e)||e.length!==3)throw new Error("Unsupported script-path witness.");const t=Be.decode(e[1]);let n=7,r=null,s=null,o;t[n]==="0b"&&(s=au(t[n+1]),n+=2),t[n]==="02"&&(o=ix(t[n+1]==="OP_0"?"":t[n+1]),n+=2),t[n]==="03"&&(r=au(t[n+1]),n+=2);const i=[];for(;t[n]==="05";){const p=t[n+1];if(typeof p!="string"||!/^(?:[0-9a-f]{2}){1,520}$/.test(p))throw new Error("Invalid metadata push.");i.push(p),n+=2}const a=i.length?nx(On(i.join(""))):void 0;let c=null;if(t[n]==="07"){const p=t[n+1];if(typeof p!="string"||!/^(?:[0-9a-f]{2}){1,520}$/.test(p))throw new Error("Invalid metaprotocol field.");c=new TextDecoder().decode(On(p)),n+=2}if(t[n]!=="OP_0")throw new Error("Unsupported ord tag or missing body separator.");const u=t.slice(n+1,-1);if(!u.length||u.some(p=>typeof p!="string"||!/^(?:[0-9a-f]{2})+$/.test(p)))throw new Error("Invalid body envelope.");const l=new TextDecoder().decode(On(t[6])),f=Ja({contentType:l,bytes:On(u.join(""))}),d=ld(t[0],f,r,a,{delegate:s,pointer:o,metaprotocol:c}),h=a===void 0&&!r&&l===mo&&f.bytes.length<=280&&Be.encode([t[0],"OP_CHECKSIG","OP_0","OP_IF",yo("ord"),"01",yo(mo),"OP_0",zr(f.bytes),"OP_ENDIF"],!1).hex;if(d!==e[1]&&h!==e[1])throw new Error("Unsupported ord envelope.");if(!/^[0-9a-f]{64}$/.test(t[0]))throw new Error("Invalid inscription signing key.");return{...f,parent:r,delegate:s,pointer:o,metaprotocol:c,metadata:a,metadataBytes:i.length?On(i.join("")):void 0,text:new TextDecoder().decode(f.bytes),pubkey:t[0]}}class ox{constructor(t,n){this.chain=t,this.wallet=n}prepare(t,n=null,r=void 0,s={}){const o=Ja(t);if(r!==void 0&&ud(r),s.delegate&&bo(s.delegate),s.pointer!==void 0&&dd(s.pointer),s.metaprotocol!==void 0&&s.metaprotocol!==null&&s.metaprotocol!==""&&new TextEncoder().encode(String(s.metaprotocol)).length>520)throw new Error("Metaprotocol identifier must be 520 bytes or less.");if(n&&s.reinscribe)throw new Error("Choose parent or reinscription, not both.");const i=this.chain.coins(this.wallet.script),a=n?i.find(l=>{var f;return(f=l.inscriptions)==null?void 0:f.some(d=>d.id===n)}):null;if(n&&!a)throw new Error("Parent must be an owned, unspent inscription.");const c=s.reinscribe?i.find(l=>{var f;return(f=l.inscriptions)==null?void 0:f.some(d=>d.id===s.reinscribe)}):null;if(s.reinscribe&&!c)throw new Error("Reinscription must spend an owned sat.");const u=i.find(l=>!l.inscription&&l.value>=At+2*de+330);if(!u)throw new Error("Mine a block first to get spendable fake BTC.");return{...o,coin:u,parent:a,reinscribe:c,totalFee:de*2,postage:At}}inscribe(t,n=null,r=void 0,s={}){const{coin:o,parent:i,reinscribe:a,...c}=this.prepare(t,n,r,s),u=i??a,l=a==null?void 0:a.inscriptions.find(v=>v.id===s.reinscribe),f=l?this.chain.satLocation(l.sat).offset:s.pointer??(i?i.value:void 0),d=ld(this.wallet.pubkey,c,n,r,{...s,pointer:f}),h=sx(d),[p,g]=Ro.getPubKey(this.wallet.pubkey,{target:h}),b=ie.create({vin:[Zt(o.txid,o.vout,o.value,o.scriptPubKey)],vout:[je(At+de,["OP_1",p]),je(o.value-At-2*de,this.wallet.script)]});b.vin[0].witness=[this.wallet.sign(b)];const m=ie.util.getTxid(b),E=ie.create({vin:[...u?[Zt(u.txid,u.vout,u.value,u.scriptPubKey)]:[],Zt(m,0,At+de,["OP_1",p])],vout:[...u?[je(u.value,this.wallet.script)]:[],je(At,this.wallet.script)]}),y=u?1:0;return E.vin[y].witness=[this.wallet.sign(E,h,y),Be.encode(d,!1).hex,g],u&&(E.vin[0].witness=[this.wallet.sign(E)]),this.chain.submitPackage([ie.encode(b).hex,ie.encode(E).hex]),`${ie.util.getTxid(E)}i0`}list(){return this.chain.coins(this.wallet.script).flatMap(t=>t.inscriptions??[])}}function dd(e){let t;try{t=BigInt(e)}catch{throw new Error("Invalid pointer.")}if(t<0n||t>0xffffffffffffffffn||typeof e=="number"&&!Number.isSafeInteger(e))throw new Error("Invalid pointer.");let n="";for(;t;)n+=Number(t&255n).toString(16).padStart(2,"0"),t>>=8n;return n}function ix(e){if(typeof e!="string"||!/^(?:[0-9a-f]{2}){0,8}$/.test(e))throw new Error("Invalid pointer tag.");return[...On(e)].reduce((t,n,r)=>t+(BigInt(n)<this.utxos.set(`${r.txid}:${r.vout}`,{txid:r.txid,vout:r.vout,value:r.value,ranges:ef(s,r.value)}));const n=(r,s,o)=>{var m;const i=ie.decode(r),a=ie.util.getTxid(i),c=i.vin[0].txid==="0".repeat(64),u=c?[]:i.vin.map(E=>this.utxos.get(`${E.txid}:${E.vout}`)),l=rf(i,u,s,c);i.vin.forEach(E=>this.utxos.delete(`${E.txid}:${E.vout}`)),i.vout.forEach((E,y)=>this.utxos.set(`${a}:${y}`,{txid:a,vout:y,value:Number(E.value),ranges:l[y]}));const f=(m=i.vin.find(E=>{var y;return((y=E.witness)==null?void 0:y.length)===3}))==null?void 0:m.witness;if(!f)return;const d=Qa(f),h=BigInt(d.pointer??0),p=i.vout.reduce((E,y)=>E+Number(y.value),0),g=nf(l.flat(),hE.sat===g).length,status:s===null?"pending":"confirmed",height:s,block:o,metadata:b??null,hasMetadata:b!==void 0,parent:d.parent,protocol:d.metaprotocol??(b&&!Array.isArray(b)&&typeof b=="object"&&Object.hasOwn(b,"protocol")&&typeof b.protocol=="string"?b.protocol:null)})};for(const r of t.blocks)for(const s of r.raws)n(s,r.height,r.hash);for(const r of t.mempool)n(r,null,null);for(const r of this.events){r.location=null;for(const s of this.utxos.values()){const o=zs(s.ranges,r.sat);if(o!==null){r.location={txid:s.txid,vout:s.vout,offset:o};break}}r.delegatedBy=this.events.filter(s=>s.delegate===r.id).map(s=>s.id),r.inscriptions=this.events.filter(s=>s.sat===r.sat).map(s=>s.id)}}forProtocol(t){return this.events.filter(n=>n.protocol===t)}get protocols(){return[...new Set(this.events.filter(t=>t.protocol!==null).map(t=>t.protocol))].sort()}get stats(){return{events:this.events.length,withMetadata:this.events.filter(t=>t.hasMetadata).length,confirmed:this.events.filter(t=>t.status==="confirmed").length,pending:this.events.filter(t=>t.status==="pending").length,protocols:this.protocols}}}const nr=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0;/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */function ws(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"}function It(e){if(!Number.isSafeInteger(e)||e<0)throw new Error("positive integer expected, got "+e)}function Re(e,...t){if(!ws(e))throw new Error("Uint8Array expected");if(t.length>0&&!t.includes(e.length))throw new Error("Uint8Array expected of length "+t+", got length="+e.length)}function xs(e){if(typeof e!="function"||typeof e.create!="function")throw new Error("Hash should be wrapped by utils.createHasher");It(e.outputLen),It(e.blockLen)}function Er(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function hd(e,t){Re(e);const n=t.outputLen;if(e.length>>t}function Os(e,t){return e<>>32-t>>>0}const cx=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function ux(e){return e<<24&4278190080|e<<8&16711680|e>>>8&65280|e>>>24&255}function fx(e){for(let t=0;te:fx,pd=typeof Uint8Array.from([]).toHex=="function"&&typeof Uint8Array.fromHex=="function",lx=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function Se(e){if(Re(e),pd)return e.toHex();let t="";for(let n=0;n=Ht._0&&e<=Ht._9)return e-Ht._0;if(e>=Ht.A&&e<=Ht.F)return e-(Ht.A-10);if(e>=Ht.a&&e<=Ht.f)return e-(Ht.a-10)}function ut(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);if(pd)return Uint8Array.fromHex(e);const t=e.length,n=t/2;if(t%2)throw new Error("hex string expected, got unpadded hex of length "+t);const r=new Uint8Array(n);for(let s=0,o=0;se().update(kr(r)).digest(),n=e();return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=()=>e(),t}function Qn(e=32){if(nr&&typeof nr.getRandomValues=="function")return nr.getRandomValues(new Uint8Array(e));if(nr&&typeof nr.randomBytes=="function")return Uint8Array.from(nr.randomBytes(e));throw new Error("crypto.getRandomValues must be defined")}function hx(e,t,n,r){if(typeof e.setBigUint64=="function")return e.setBigUint64(t,n,r);const s=BigInt(32),o=BigInt(4294967295),i=Number(n>>s&o),a=Number(n&o),c=r?4:0,u=r?0:4;e.setUint32(t+c,i,r),e.setUint32(t+u,a,r)}function px(e,t,n){return e&t^~e&n}function gx(e,t,n){return e&t^e&n^t&n}class tc extends ec{constructor(t,n,r,s){super(),this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=t,this.outputLen=n,this.padOffset=r,this.isLE=s,this.buffer=new Uint8Array(t),this.view=Dn(this.buffer)}update(t){Er(this),t=kr(t),Re(t);const{view:n,buffer:r,blockLen:s}=this,o=t.length;for(let i=0;is-i&&(this.process(r,0),i=0);for(let f=i;fl.length)throw new Error("_sha2: outputLen bigger than state");for(let f=0;f>lu&Cs)}:{h:Number(e>>lu&Cs)|0,l:Number(e&Cs)|0}}function gd(e,t=!1){const n=e.length;let r=new Uint32Array(n),s=new Uint32Array(n);for(let o=0;oe>>>n,hu=(e,t,n)=>e<<32-n|t>>>n,rr=(e,t,n)=>e>>>n|t<<32-n,sr=(e,t,n)=>e<<32-n|t>>>n,Ps=(e,t,n)=>e<<64-n|t>>>n-32,Us=(e,t,n)=>e>>>n-32|t<<64-n,yx=(e,t,n)=>e<>>32-n,bx=(e,t,n)=>t<>>32-n,wx=(e,t,n)=>t<>>64-n,xx=(e,t,n)=>e<>>64-n;function jt(e,t,n,r){const s=(t>>>0)+(r>>>0);return{h:e+n+(s/2**32|0)|0,l:s|0}}const vx=(e,t,n)=>(e>>>0)+(t>>>0)+(n>>>0),Ex=(e,t,n,r)=>t+n+r+(e/2**32|0)|0,kx=(e,t,n,r)=>(e>>>0)+(t>>>0)+(n>>>0)+(r>>>0),Sx=(e,t,n,r,s)=>t+n+r+s+(e/2**32|0)|0,$x=(e,t,n,r,s)=>(e>>>0)+(t>>>0)+(n>>>0)+(r>>>0)+(s>>>0),_x=(e,t,n,r,s,o)=>t+n+r+s+o+(e/2**32|0)|0,Ax=Uint32Array.from([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),on=new Uint32Array(64);class Bx extends tc{constructor(t=32){super(64,t,8,!1),this.A=sn[0]|0,this.B=sn[1]|0,this.C=sn[2]|0,this.D=sn[3]|0,this.E=sn[4]|0,this.F=sn[5]|0,this.G=sn[6]|0,this.H=sn[7]|0}get(){const{A:t,B:n,C:r,D:s,E:o,F:i,G:a,H:c}=this;return[t,n,r,s,o,i,a,c]}set(t,n,r,s,o,i,a,c){this.A=t|0,this.B=n|0,this.C=r|0,this.D=s|0,this.E=o|0,this.F=i|0,this.G=a|0,this.H=c|0}process(t,n){for(let f=0;f<16;f++,n+=4)on[f]=t.getUint32(n,!1);for(let f=16;f<64;f++){const d=on[f-15],h=on[f-2],p=_t(d,7)^_t(d,18)^d>>>3,g=_t(h,17)^_t(h,19)^h>>>10;on[f]=g+on[f-7]+p+on[f-16]|0}let{A:r,B:s,C:o,D:i,E:a,F:c,G:u,H:l}=this;for(let f=0;f<64;f++){const d=_t(a,6)^_t(a,11)^_t(a,25),h=l+d+px(a,c,u)+Ax[f]+on[f]|0,g=(_t(r,2)^_t(r,13)^_t(r,22))+gx(r,s,o)|0;l=u,u=c,c=a,a=i+h|0,i=o,o=s,s=r,r=h+g|0}r=r+this.A|0,s=s+this.B|0,o=o+this.C|0,i=i+this.D|0,a=a+this.E|0,c=c+this.F|0,u=u+this.G|0,l=l+this.H|0,this.set(r,s,o,i,a,c,u,l)}roundClean(){ct(on)}destroy(){this.set(0,0,0,0,0,0,0,0),ct(this.buffer)}}const md=gd(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map(e=>BigInt(e))),Tx=md[0],Ix=md[1],an=new Uint32Array(80),cn=new Uint32Array(80);class Ox extends tc{constructor(t=64){super(128,t,16,!1),this.Ah=Ze[0]|0,this.Al=Ze[1]|0,this.Bh=Ze[2]|0,this.Bl=Ze[3]|0,this.Ch=Ze[4]|0,this.Cl=Ze[5]|0,this.Dh=Ze[6]|0,this.Dl=Ze[7]|0,this.Eh=Ze[8]|0,this.El=Ze[9]|0,this.Fh=Ze[10]|0,this.Fl=Ze[11]|0,this.Gh=Ze[12]|0,this.Gl=Ze[13]|0,this.Hh=Ze[14]|0,this.Hl=Ze[15]|0}get(){const{Ah:t,Al:n,Bh:r,Bl:s,Ch:o,Cl:i,Dh:a,Dl:c,Eh:u,El:l,Fh:f,Fl:d,Gh:h,Gl:p,Hh:g,Hl:b}=this;return[t,n,r,s,o,i,a,c,u,l,f,d,h,p,g,b]}set(t,n,r,s,o,i,a,c,u,l,f,d,h,p,g,b){this.Ah=t|0,this.Al=n|0,this.Bh=r|0,this.Bl=s|0,this.Ch=o|0,this.Cl=i|0,this.Dh=a|0,this.Dl=c|0,this.Eh=u|0,this.El=l|0,this.Fh=f|0,this.Fl=d|0,this.Gh=h|0,this.Gl=p|0,this.Hh=g|0,this.Hl=b|0}process(t,n){for(let y=0;y<16;y++,n+=4)an[y]=t.getUint32(n),cn[y]=t.getUint32(n+=4);for(let y=16;y<80;y++){const v=an[y-15]|0,x=cn[y-15]|0,B=rr(v,x,1)^rr(v,x,8)^du(v,x,7),O=sr(v,x,1)^sr(v,x,8)^hu(v,x,7),C=an[y-2]|0,T=cn[y-2]|0,U=rr(C,T,19)^Ps(C,T,61)^du(C,T,6),H=sr(C,T,19)^Us(C,T,61)^hu(C,T,6),K=kx(O,H,cn[y-7],cn[y-16]),k=Sx(K,B,U,an[y-7],an[y-16]);an[y]=k|0,cn[y]=K|0}let{Ah:r,Al:s,Bh:o,Bl:i,Ch:a,Cl:c,Dh:u,Dl:l,Eh:f,El:d,Fh:h,Fl:p,Gh:g,Gl:b,Hh:m,Hl:E}=this;for(let y=0;y<80;y++){const v=rr(f,d,14)^rr(f,d,18)^Ps(f,d,41),x=sr(f,d,14)^sr(f,d,18)^Us(f,d,41),B=f&h^~f&g,O=d&p^~d&b,C=$x(E,x,O,Ix[y],cn[y]),T=_x(C,m,v,B,Tx[y],an[y]),U=C|0,H=rr(r,s,28)^Ps(r,s,34)^Ps(r,s,39),K=sr(r,s,28)^Us(r,s,34)^Us(r,s,39),k=r&o^r&a^o&a,$=s&i^s&c^i&c;m=g|0,E=b|0,g=h|0,b=p|0,h=f|0,p=d|0,{h:f,l:d}=jt(u|0,l|0,T|0,U|0),u=a|0,l=c|0,a=o|0,c=i|0,o=r|0,i=s|0;const w=vx(U,K,$);r=Ex(w,T,H,k),s=w|0}({h:r,l:s}=jt(this.Ah|0,this.Al|0,r|0,s|0)),{h:o,l:i}=jt(this.Bh|0,this.Bl|0,o|0,i|0),{h:a,l:c}=jt(this.Ch|0,this.Cl|0,a|0,c|0),{h:u,l}=jt(this.Dh|0,this.Dl|0,u|0,l|0),{h:f,l:d}=jt(this.Eh|0,this.El|0,f|0,d|0),{h,l:p}=jt(this.Fh|0,this.Fl|0,h|0,p|0),{h:g,l:b}=jt(this.Gh|0,this.Gl|0,g|0,b|0),{h:m,l:E}=jt(this.Hh|0,this.Hl|0,m|0,E|0),this.set(r,s,o,i,a,c,u,l,f,d,h,p,g,b,m,E)}roundClean(){ct(an,cn)}destroy(){ct(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}const xe=jo(()=>new Bx),cs=jo(()=>new Ox);class yd extends ec{constructor(t,n){super(),this.finished=!1,this.destroyed=!1,xs(t);const r=kr(n);if(this.iHash=t.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const s=this.blockLen,o=new Uint8Array(s);o.set(r.length>s?t.create().update(r).digest():r);for(let i=0;inew yd(e,t).update(n).digest();En.create=(e,t)=>new yd(e,t);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const nc=BigInt(0),ea=BigInt(1);function zn(e,t=""){if(typeof e!="boolean"){const n=t&&`"${t}"`;throw new Error(n+"expected boolean, got type="+typeof e)}return e}function gt(e,t,n=""){const r=ws(e),s=e==null?void 0:e.length,o=t!==void 0;if(!r||o&&s!==t){const i=n&&`"${n}" `,a=o?` of length ${t}`:"",c=r?`length=${s}`:`type=${typeof e}`;throw new Error(i+"expected Uint8Array"+a+", got "+c)}return e}function Ns(e){const t=e.toString(16);return t.length&1?"0"+t:t}function bd(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);return e===""?nc:BigInt("0x"+e)}function er(e){return bd(Se(e))}function Fn(e){return Re(e),bd(Se(Uint8Array.from(e).reverse()))}function Ko(e,t){return ut(e.toString(16).padStart(t*2,"0"))}function rc(e,t){return Ko(e,t).reverse()}function me(e,t,n){let r;if(typeof t=="string")try{r=ut(t)}catch(o){throw new Error(e+" must be hex string or Uint8Array, cause: "+o)}else if(ws(t))r=Uint8Array.from(t);else throw new Error(e+" must be hex string or Uint8Array");const s=r.length;if(typeof n=="number"&&s!==n)throw new Error(e+" of length "+n+" expected, got "+s);return r}function pu(e){return Uint8Array.from(e)}const hi=e=>typeof e=="bigint"&&nc<=e;function ta(e,t,n){return hi(e)&&hi(t)&&hi(n)&&t<=e&&enc;e>>=ea,t+=1);return t}const vs=e=>(ea<new Uint8Array(h),s=h=>Uint8Array.of(h);let o=r(e),i=r(e),a=0;const c=()=>{o.fill(1),i.fill(0),a=0},u=(...h)=>n(i,o,...h),l=(h=r(0))=>{i=u(s(0),h),o=u(),h.length!==0&&(i=u(s(1),h),o=u())},f=()=>{if(a++>=1e3)throw new Error("drbg: tried 1000 values");let h=0;const p=[];for(;h{c(),l(h);let g;for(;!(g=p(f()));)l();return c(),g}}function Cr(e,t,n={}){if(!e||typeof e!="object")throw new Error("expected valid options object");function r(s,o,i){const a=e[s];if(i&&a===void 0)return;const c=typeof a;if(c!==o||a===null)throw new Error(`param "${s}" is invalid: expected ${o}, got ${c}`)}Object.entries(t).forEach(([s,o])=>r(s,o,!1)),Object.entries(n).forEach(([s,o])=>r(s,o,!0))}function wo(e){const t=new WeakMap;return(n,...r)=>{const s=t.get(n);if(s!==void 0)return s;const o=e(n,...r);return t.set(n,o),o}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const et=BigInt(0),Me=BigInt(1),Ln=BigInt(2),xd=BigInt(3),vd=BigInt(4),Ed=BigInt(5),Px=BigInt(7),kd=BigInt(8),Ux=BigInt(9),Sd=BigInt(16);function Ee(e,t){const n=e%t;return n>=et?n:t+n}function _e(e,t,n){let r=e;for(;t-- >et;)r*=r,r%=n;return r}function gu(e,t){if(e===et)throw new Error("invert: expected non-zero number");if(t<=et)throw new Error("invert: expected positive modulus, got "+t);let n=Ee(e,t),r=t,s=et,o=Me;for(;n!==et;){const a=r/n,c=r%n,u=s-o*a;r=n,n=c,s=o,o=u}if(r!==Me)throw new Error("invert: does not exist");return Ee(s,t)}function sc(e,t,n){if(!e.eql(e.sqr(t),n))throw new Error("Cannot find square root")}function $d(e,t){const n=(e.ORDER+Me)/vd,r=e.pow(t,n);return sc(e,r,t),r}function Nx(e,t){const n=(e.ORDER-Ed)/kd,r=e.mul(t,Ln),s=e.pow(r,n),o=e.mul(t,s),i=e.mul(e.mul(o,Ln),s),a=e.mul(o,e.sub(i,e.ONE));return sc(e,a,t),a}function Lx(e){const t=tr(e),n=_d(e),r=n(t,t.neg(t.ONE)),s=n(t,r),o=n(t,t.neg(r)),i=(e+Px)/Sd;return(a,c)=>{let u=a.pow(c,i),l=a.mul(u,r);const f=a.mul(u,s),d=a.mul(u,o),h=a.eql(a.sqr(l),c),p=a.eql(a.sqr(f),c);u=a.cmov(u,l,h),l=a.cmov(d,f,p);const g=a.eql(a.sqr(l),c),b=a.cmov(u,l,g);return sc(a,b,c),b}}function _d(e){if(e1e3)throw new Error("Cannot find square root: probably non-prime P");if(n===1)return $d;let o=s.pow(r,t);const i=(t+Me)/Ln;return function(c,u){if(c.is0(u))return u;if(mu(c,u)!==1)throw new Error("Cannot find square root");let l=n,f=c.mul(c.ONE,o),d=c.pow(u,t),h=c.pow(u,i);for(;!c.eql(d,c.ONE);){if(c.is0(d))return c.ZERO;let p=1,g=c.sqr(d);for(;!c.eql(g,c.ONE);)if(p++,g=c.sqr(g),p===l)throw new Error("Cannot find square root");const b=Me<(Ee(e,t)&Me)===Me,jx=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function Kx(e){const t={ORDER:"bigint",MASK:"bigint",BYTES:"number",BITS:"number"},n=jx.reduce((r,s)=>(r[s]="function",r),t);return Cr(e,n),e}function Dx(e,t,n){if(net;)n&Me&&(r=e.mul(r,s)),s=e.sqr(s),n>>=Me;return r}function Ad(e,t,n=!1){const r=new Array(t.length).fill(n?e.ZERO:void 0),s=t.reduce((i,a,c)=>e.is0(a)?i:(r[c]=i,e.mul(i,a)),e.ONE),o=e.inv(s);return t.reduceRight((i,a,c)=>e.is0(a)?i:(r[c]=e.mul(i,r[c]),e.mul(i,a)),o),r}function mu(e,t){const n=(e.ORDER-Me)/Ln,r=e.pow(t,n),s=e.eql(r,e.ONE),o=e.eql(r,e.ZERO),i=e.eql(r,e.neg(e.ONE));if(!s&&!o&&!i)throw new Error("invalid Legendre symbol result");return s?1:o?0:-1}function Bd(e,t){t!==void 0&&It(t);const n=t!==void 0?t:e.toString(2).length,r=Math.ceil(n/8);return{nBitLength:n,nByteLength:r}}function tr(e,t,n=!1,r={}){if(e<=et)throw new Error("invalid field: expected ORDER > 0, got "+e);let s,o,i=!1,a;if(typeof t=="object"&&t!=null){if(r.sqrt||n)throw new Error("cannot specify opts in two arguments");const d=t;d.BITS&&(s=d.BITS),d.sqrt&&(o=d.sqrt),typeof d.isLE=="boolean"&&(n=d.isLE),typeof d.modFromBytes=="boolean"&&(i=d.modFromBytes),a=d.allowedLengths}else typeof t=="number"&&(s=t),r.sqrt&&(o=r.sqrt);const{nBitLength:c,nByteLength:u}=Bd(e,s);if(u>2048)throw new Error("invalid field: expected ORDER of <= 2048 bytes");let l;const f=Object.freeze({ORDER:e,isLE:n,BITS:c,BYTES:u,MASK:vs(c),ZERO:et,ONE:Me,allowedLengths:a,create:d=>Ee(d,e),isValid:d=>{if(typeof d!="bigint")throw new Error("invalid field element: expected bigint, got "+typeof d);return et<=d&&dd===et,isValidNot0:d=>!f.is0(d)&&f.isValid(d),isOdd:d=>(d&Me)===Me,neg:d=>Ee(-d,e),eql:(d,h)=>d===h,sqr:d=>Ee(d*d,e),add:(d,h)=>Ee(d+h,e),sub:(d,h)=>Ee(d-h,e),mul:(d,h)=>Ee(d*h,e),pow:(d,h)=>Dx(f,d,h),div:(d,h)=>Ee(d*gu(h,e),e),sqrN:d=>d*d,addN:(d,h)=>d+h,subN:(d,h)=>d-h,mulN:(d,h)=>d*h,inv:d=>gu(d,e),sqrt:o||(d=>(l||(l=Rx(e)),l(f,d))),toBytes:d=>n?rc(d,u):Ko(d,u),fromBytes:(d,h=!0)=>{if(a){if(!a.includes(d.length)||d.length>u)throw new Error("Field.fromBytes: expected "+a+" bytes, got "+d.length);const g=new Uint8Array(u);g.set(d,n?0:g.length-d.length),d=g}if(d.length!==u)throw new Error("Field.fromBytes: expected "+u+" bytes, got "+d.length);let p=n?Fn(d):er(d);if(i&&(p=Ee(p,e)),!h&&!f.isValid(p))throw new Error("invalid field element: outside of range 0..ORDER");return p},invertBatch:d=>Ad(f,d),cmov:(d,h,p)=>p?h:d});return Object.freeze(f)}function Td(e){if(typeof e!="bigint")throw new Error("field order must be bigint");const t=e.toString(2).length;return Math.ceil(t/8)}function Id(e){const t=Td(e);return t+Math.ceil(t/2)}function Od(e,t,n=!1){const r=e.length,s=Td(t),o=Id(t);if(r<16||r1024)throw new Error("expected "+o+"-1024 bytes of input, got "+r);const i=n?Fn(e):er(e),a=Ee(i,t-Me)+Me;return n?rc(a,s):Ko(a,s)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const Sr=BigInt(0),Rn=BigInt(1);function xo(e,t){const n=t.negate();return e?n:t}function Hn(e,t){const n=Ad(e.Fp,t.map(r=>r.Z));return t.map((r,s)=>e.fromAffine(r.toAffine(n[s])))}function Cd(e,t){if(!Number.isSafeInteger(e)||e<=0||e>t)throw new Error("invalid window size, expected [1.."+t+"], got W="+e)}function pi(e,t){Cd(e,t);const n=Math.ceil(t/e)+1,r=2**(e-1),s=2**e,o=vs(e),i=BigInt(e);return{windows:n,windowSize:r,mask:o,maxNumber:s,shiftBy:i}}function yu(e,t,n){const{windowSize:r,mask:s,maxNumber:o,shiftBy:i}=n;let a=Number(e&s),c=e>>i;a>r&&(a-=o,c+=Rn);const u=t*r,l=u+Math.abs(a)-1,f=a===0,d=a<0,h=t%2!==0;return{nextN:c,offset:l,isZero:f,isNeg:d,isNegF:h,offsetF:u}}function Mx(e,t){if(!Array.isArray(e))throw new Error("array expected");e.forEach((n,r)=>{if(!(n instanceof t))throw new Error("invalid point at index "+r)})}function Zx(e,t){if(!Array.isArray(e))throw new Error("array of scalars expected");e.forEach((n,r)=>{if(!t.isValid(n))throw new Error("invalid scalar at index "+r)})}const gi=new WeakMap,Pd=new WeakMap;function mi(e){return Pd.get(e)||1}function bu(e){if(e!==Sr)throw new Error("invalid wNAF")}class Ud{constructor(t,n){this.BASE=t.BASE,this.ZERO=t.ZERO,this.Fn=t.Fn,this.bits=n}_unsafeLadder(t,n,r=this.ZERO){let s=t;for(;n>Sr;)n&Rn&&(r=r.add(s)),s=s.double(),n>>=Rn;return r}precomputeWindow(t,n){const{windows:r,windowSize:s}=pi(n,this.bits),o=[];let i=t,a=i;for(let c=0;cSr||r>Sr;)n&Rn&&(o=o.add(s)),r&Rn&&(i=i.add(s)),s=s.double(),n>>=Rn,r>>=Rn;return{p1:o,p2:i}}function Nd(e,t,n,r){Mx(n,e),Zx(r,t);const s=n.length,o=r.length;if(s!==o)throw new Error("arrays of points and scalars must have equal length");const i=e.ZERO,a=wd(BigInt(s));let c=1;a>12?c=a-3:a>4?c=a-2:a>0&&(c=2);const u=vs(c),l=new Array(Number(u)+1).fill(i),f=Math.floor((t.BITS-1)/c)*c;let d=i;for(let h=f;h>=0;h-=c){l.fill(i);for(let g=0;g>BigInt(h)&u);l[m]=l[m].add(n[g])}let p=i;for(let g=l.length-1,b=i;g>0;g--)b=b.add(l[g]),p=p.add(b);if(d=d.add(p),h!==0)for(let g=0;gSr))throw new Error(`CURVE.${c} must be positive bigint`)}const s=wu(t.p,n.Fp,r),o=wu(t.n,n.Fn,r),a=["Gx","Gy","a",e==="weierstrass"?"b":"d"];for(const c of a)if(!s.isValid(t[c]))throw new Error(`CURVE.${c} must be valid field element of CURVE.Fp`);return t=Object.freeze(Object.assign({},t)),{CURVE:t,Fp:s,Fn:o}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const xu=(e,t)=>(e+(e>=0?t:-t)/Rd)/t;function qx(e,t,n){const[[r,s],[o,i]]=t,a=xu(i*e,n),c=xu(-s*e,n);let u=e-a*r-c*o,l=-a*s-c*i;const f=u=h||l=h)throw new Error("splitScalar (endomorphism): failed, k="+e);return{k1neg:f,k1:u,k2neg:d,k2:l}}function na(e){if(!["compact","recovered","der"].includes(e))throw new Error('Signature format must be "compact", "recovered", or "der"');return e}function yi(e,t){const n={};for(let r of Object.keys(t))n[r]=e[r]===void 0?t[r]:e[r];return zn(n.lowS,"lowS"),zn(n.prehash,"prehash"),n.format!==void 0&&na(n.format),n}class zx extends Error{constructor(t=""){super(t)}}const Kt={Err:zx,_tlv:{encode:(e,t)=>{const{Err:n}=Kt;if(e<0||e>256)throw new n("tlv.encode: wrong tag");if(t.length&1)throw new n("tlv.encode: unpadded data");const r=t.length/2,s=Ns(r);if(s.length/2&128)throw new n("tlv.encode: long form length too big");const o=r>127?Ns(s.length/2|128):"";return Ns(e)+o+s+t},decode(e,t){const{Err:n}=Kt;let r=0;if(e<0||e>256)throw new n("tlv.encode: wrong tag");if(t.length<2||t[r++]!==e)throw new n("tlv.decode: wrong tlv");const s=t[r++],o=!!(s&128);let i=0;if(!o)i=s;else{const c=s&127;if(!c)throw new n("tlv.decode(long): indefinite length not supported");if(c>4)throw new n("tlv.decode(long): byte length is too big");const u=t.subarray(r,r+c);if(u.length!==c)throw new n("tlv.decode: length bytes not complete");if(u[0]===0)throw new n("tlv.decode(long): zero leftmost byte");for(const l of u)i=i<<8|l;if(r+=c,i<128)throw new n("tlv.decode(long): not minimal encoding")}const a=t.subarray(r,r+i);if(a.length!==i)throw new n("tlv.decode: wrong value length");return{v:a,l:t.subarray(r+i)}}},_int:{encode(e){const{Err:t}=Kt;if(e{const{X:$,Y:w,Z:_}=K;if(r.eql(_,r.ONE))return{x:$,y:w};const P=K.is0();k==null&&(k=P?r.ONE:r.inv(_));const L=r.mul($,k),N=r.mul(w,k),j=r.mul(_,k);if(P)return{x:r.ZERO,y:r.ZERO};if(!r.eql(j,r.ONE))throw new Error("invZ was invalid");return{x:L,y:N}}),O=wo(K=>{if(K.is0()){if(t.allowInfinityPoint&&!r.is0(K.Y))return;throw new Error("bad point: ZERO")}const{x:k,y:$}=K.toAffine();if(!r.isValid(k)||!r.isValid($))throw new Error("bad point: x or y not field elements");if(!b(k,$))throw new Error("bad point: equation left != right");if(!K.isTorsionFree())throw new Error("bad point: not in prime-order subgroup");return!0});function C(K,k,$,w,_){return $=new T(r.mul($.X,K),$.Y,$.Z),k=xo(w,k),$=xo(_,$),k.add($)}class T{constructor(k,$,w){this.X=y("x",k),this.Y=y("y",$,!0),this.Z=y("z",w),Object.freeze(this)}static CURVE(){return o}static fromAffine(k){const{x:$,y:w}=k||{};if(!k||!r.isValid($)||!r.isValid(w))throw new Error("invalid affine point");if(k instanceof T)throw new Error("projective point not allowed");return r.is0($)&&r.is0(w)?T.ZERO:new T($,w,r.ONE)}static fromBytes(k){const $=T.fromAffine(p(gt(k,void 0,"point")));return $.assertValidity(),$}static fromHex(k){return T.fromBytes(me("pointHex",k))}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(k=8,$=!0){return H.createCache(this,k),$||this.multiply(Ls),this}assertValidity(){O(this)}hasEvenY(){const{y:k}=this.toAffine();if(!r.isOdd)throw new Error("Field doesn't support isOdd");return!r.isOdd(k)}equals(k){v(k);const{X:$,Y:w,Z:_}=this,{X:P,Y:L,Z:N}=k,j=r.eql(r.mul($,N),r.mul(P,_)),M=r.eql(r.mul(w,N),r.mul(L,_));return j&&M}negate(){return new T(this.X,r.neg(this.Y),this.Z)}double(){const{a:k,b:$}=o,w=r.mul($,Ls),{X:_,Y:P,Z:L}=this;let N=r.ZERO,j=r.ZERO,M=r.ZERO,F=r.mul(_,_),ue=r.mul(P,P),oe=r.mul(L,L),Q=r.mul(_,P);return Q=r.add(Q,Q),M=r.mul(_,L),M=r.add(M,M),N=r.mul(k,M),j=r.mul(w,oe),j=r.add(N,j),N=r.sub(ue,j),j=r.add(ue,j),j=r.mul(N,j),N=r.mul(Q,N),M=r.mul(w,M),oe=r.mul(k,oe),Q=r.sub(F,oe),Q=r.mul(k,Q),Q=r.add(Q,M),M=r.add(F,F),F=r.add(M,F),F=r.add(F,oe),F=r.mul(F,Q),j=r.add(j,F),oe=r.mul(P,L),oe=r.add(oe,oe),F=r.mul(oe,Q),N=r.sub(N,F),M=r.mul(oe,ue),M=r.add(M,M),M=r.add(M,M),new T(N,j,M)}add(k){v(k);const{X:$,Y:w,Z:_}=this,{X:P,Y:L,Z:N}=k;let j=r.ZERO,M=r.ZERO,F=r.ZERO;const ue=o.a,oe=r.mul(o.b,Ls);let Q=r.mul($,P),he=r.mul(w,L),pe=r.mul(_,N),Te=r.add($,w),fe=r.add(P,L);Te=r.mul(Te,fe),fe=r.add(Q,he),Te=r.sub(Te,fe),fe=r.add($,_);let we=r.add(P,N);return fe=r.mul(fe,we),we=r.add(Q,pe),fe=r.sub(fe,we),we=r.add(w,_),j=r.add(L,N),we=r.mul(we,j),j=r.add(he,pe),we=r.sub(we,j),F=r.mul(ue,fe),j=r.mul(oe,pe),F=r.add(j,F),j=r.sub(he,F),F=r.add(he,F),M=r.mul(j,F),he=r.add(Q,Q),he=r.add(he,Q),pe=r.mul(ue,pe),fe=r.mul(oe,fe),he=r.add(he,pe),pe=r.sub(Q,pe),pe=r.mul(ue,pe),fe=r.add(fe,pe),Q=r.mul(he,fe),M=r.add(M,Q),Q=r.mul(we,fe),j=r.mul(Te,j),j=r.sub(j,Q),Q=r.mul(Te,he),F=r.mul(we,F),F=r.add(F,Q),new T(j,M,F)}subtract(k){return this.add(k.negate())}is0(){return this.equals(T.ZERO)}multiply(k){const{endo:$}=t;if(!s.isValidNot0(k))throw new Error("invalid scalar: out of range");let w,_;const P=L=>H.cached(this,L,N=>Hn(T,N));if($){const{k1neg:L,k1:N,k2neg:j,k2:M}=x(k),{p:F,f:ue}=P(N),{p:oe,f:Q}=P(M);_=ue.add(Q),w=C($.beta,F,oe,L,j)}else{const{p:L,f:N}=P(k);w=L,_=N}return Hn(T,[w,_])[0]}multiplyUnsafe(k){const{endo:$}=t,w=this;if(!s.isValid(k))throw new Error("invalid scalar: out of range");if(k===Dt||w.is0())return T.ZERO;if(k===lr)return w;if(H.hasCache(this))return this.multiply(k);if($){const{k1neg:_,k1:P,k2neg:L,k2:N}=x(k),{p1:j,p2:M}=Vx(T,w,P,N);return C($.beta,j,M,_,L)}else return H.unsafe(w,k)}multiplyAndAddUnsafe(k,$,w){const _=this.multiplyUnsafe($).add(k.multiplyUnsafe(w));return _.is0()?void 0:_}toAffine(k){return B(this,k)}isTorsionFree(){const{isTorsionFree:k}=t;return i===lr?!0:k?k(T,this):H.unsafe(this,a).is0()}clearCofactor(){const{clearCofactor:k}=t;return i===lr?this:k?k(T,this):this.multiplyUnsafe(i)}isSmallOrder(){return this.multiplyUnsafe(i).is0()}toBytes(k=!0){return zn(k,"isCompressed"),this.assertValidity(),h(T,this,k)}toHex(k=!0){return Se(this.toBytes(k))}toString(){return``}get px(){return this.X}get py(){return this.X}get pz(){return this.Z}toRawBytes(k=!0){return this.toBytes(k)}_setWindowSize(k){this.precompute(k)}static normalizeZ(k){return Hn(T,k)}static msm(k,$){return Nd(T,s,k,$)}static fromPrivateKey(k){return T.BASE.multiply(jn(s,k))}}T.BASE=new T(o.Gx,o.Gy,r.ONE),T.ZERO=new T(r.ZERO,r.ONE,r.ZERO),T.Fp=r,T.Fn=s;const U=s.BITS,H=new Ud(T,t.endo?Math.ceil(U/2):U);return T.BASE.precompute(8),T}function Hd(e){return Uint8Array.of(e?2:3)}function jd(e,t){return{secretKey:t.BYTES,publicKey:1+e.BYTES,publicKeyUncompressed:1+2*e.BYTES,publicKeyHasPrefix:!0,signature:2*t.BYTES}}function Gx(e,t={}){const{Fn:n}=e,r=t.randomBytes||Qn,s=Object.assign(jd(e.Fp,n),{seed:Id(n.ORDER)});function o(h){try{return!!jn(n,h)}catch{return!1}}function i(h,p){const{publicKey:g,publicKeyUncompressed:b}=s;try{const m=h.length;return p===!0&&m!==g||p===!1&&m!==b?!1:!!e.fromBytes(h)}catch{return!1}}function a(h=r(s.seed)){return Od(gt(h,s.seed,"seed"),n.ORDER)}function c(h,p=!0){return e.BASE.multiply(jn(n,h)).toBytes(p)}function u(h){const p=a(h);return{secretKey:p,publicKey:c(p)}}function l(h){if(typeof h=="bigint")return!1;if(h instanceof e)return!0;const{secretKey:p,publicKey:g,publicKeyUncompressed:b}=s;if(n.allowedLengths||p===g)return;const m=me("key",h).length;return m===g||m===b}function f(h,p,g=!0){if(l(h)===!0)throw new Error("first arg must be private key");if(l(p)===!1)throw new Error("second arg must be public key");const b=jn(n,h);return e.fromHex(p).multiply(b).toBytes(g)}return Object.freeze({getPublicKey:c,getSharedSecret:f,keygen:u,Point:e,utils:{isValidSecretKey:o,isValidPublicKey:i,randomSecretKey:a,isValidPrivateKey:o,randomPrivateKey:a,normPrivateKeyToScalar:h=>jn(n,h),precompute(h=8,p=e.BASE){return p.precompute(h,!1)}},lengths:s})}function Yx(e,t,n={}){xs(t),Cr(n,{},{hmac:"function",lowS:"boolean",randomBytes:"function",bits2int:"function",bits2int_modN:"function"});const r=n.randomBytes||Qn,s=n.hmac||(($,...w)=>En(t,$,ae(...w))),{Fp:o,Fn:i}=e,{ORDER:a,BITS:c}=i,{keygen:u,getPublicKey:l,getSharedSecret:f,utils:d,lengths:h}=Gx(e,n),p={prehash:!1,lowS:typeof n.lowS=="boolean"?n.lowS:!1,format:void 0,extraEntropy:!1},g="compact";function b($){const w=a>>lr;return $>w}function m($,w){if(!i.isValidNot0(w))throw new Error(`invalid signature ${$}: out of range 1..Point.Fn.ORDER`);return w}function E($,w){na(w);const _=h.signature,P=w==="compact"?_:w==="recovered"?_+1:void 0;return gt($,P,`${w} signature`)}class y{constructor(w,_,P){this.r=m("r",w),this.s=m("s",_),P!=null&&(this.recovery=P),Object.freeze(this)}static fromBytes(w,_=g){E(w,_);let P;if(_==="der"){const{r:M,s:F}=Kt.toSig(gt(w));return new y(M,F)}_==="recovered"&&(P=w[0],_="compact",w=w.subarray(1));const L=i.BYTES,N=w.subarray(0,L),j=w.subarray(L,L*2);return new y(i.fromBytes(N),i.fromBytes(j),P)}static fromHex(w,_){return this.fromBytes(ut(w),_)}addRecoveryBit(w){return new y(this.r,this.s,w)}recoverPublicKey(w){const _=o.ORDER,{r:P,s:L,recovery:N}=this;if(N==null||![0,1,2,3].includes(N))throw new Error("recovery id invalid");if(a*Rd<_&&N>1)throw new Error("recovery id is ambiguous for h>1 curve");const M=N===2||N===3?P+a:P;if(!o.isValid(M))throw new Error("recovery id 2 or 3 invalid");const F=o.toBytes(M),ue=e.fromBytes(ae(Hd((N&1)===0),F)),oe=i.inv(M),Q=x(me("msgHash",w)),he=i.create(-Q*oe),pe=i.create(L*oe),Te=e.BASE.multiplyUnsafe(he).add(ue.multiplyUnsafe(pe));if(Te.is0())throw new Error("point at infinify");return Te.assertValidity(),Te}hasHighS(){return b(this.s)}toBytes(w=g){if(na(w),w==="der")return ut(Kt.hexFromSig(this));const _=i.toBytes(this.r),P=i.toBytes(this.s);if(w==="recovered"){if(this.recovery==null)throw new Error("recovery bit must be present");return ae(Uint8Array.of(this.recovery),_,P)}return ae(_,P)}toHex(w){return Se(this.toBytes(w))}assertValidity(){}static fromCompact(w){return y.fromBytes(me("sig",w),"compact")}static fromDER(w){return y.fromBytes(me("sig",w),"der")}normalizeS(){return this.hasHighS()?new y(this.r,i.neg(this.s),this.recovery):this}toDERRawBytes(){return this.toBytes("der")}toDERHex(){return Se(this.toBytes("der"))}toCompactRawBytes(){return this.toBytes("compact")}toCompactHex(){return Se(this.toBytes("compact"))}}const v=n.bits2int||function(w){if(w.length>8192)throw new Error("input is too large");const _=er(w),P=w.length*8-c;return P>0?_>>BigInt(P):_},x=n.bits2int_modN||function(w){return i.create(v(w))},B=vs(c);function O($){return us("num < 2^"+c,$,Dt,B),i.toBytes($)}function C($,w){return gt($,void 0,"message"),w?gt(t($),void 0,"prehashed message"):$}function T($,w,_){if(["recovered","canonical"].some(he=>he in _))throw new Error("sign() legacy options not supported");const{lowS:P,prehash:L,extraEntropy:N}=yi(_,p);$=C($,L);const j=x($),M=jn(i,w),F=[O(M),O(j)];if(N!=null&&N!==!1){const he=N===!0?r(h.secretKey):N;F.push(me("extraEntropy",he))}const ue=ae(...F),oe=j;function Q(he){const pe=v(he);if(!i.isValidNot0(pe))return;const Te=i.inv(pe),fe=e.BASE.multiply(pe).toAffine(),we=i.create(fe.x);if(we===Dt)return;const Nt=i.create(Te*i.create(oe+we*M));if(Nt===Dt)return;let rt=(fe.x===we?0:2)|Number(fe.y&lr),Ke=Nt;return P&&b(Nt)&&(Ke=i.neg(Nt),rt^=1),new y(we,Ke,rt)}return{seed:ue,k2sig:Q}}function U($,w,_={}){$=me("message",$);const{seed:P,k2sig:L}=T($,w,_);return Cx(t.outputLen,i.BYTES,s)(P,L)}function H($){let w;const _=typeof $=="string"||ws($),P=!_&&$!==null&&typeof $=="object"&&typeof $.r=="bigint"&&typeof $.s=="bigint";if(!_&&!P)throw new Error("invalid signature, expected Uint8Array, hex string or Signature instance");if(P)w=new y($.r,$.s);else if(_){try{w=y.fromBytes(me("sig",$),"der")}catch(L){if(!(L instanceof Kt.Err))throw L}if(!w)try{w=y.fromBytes(me("sig",$),"compact")}catch{return!1}}return w||!1}function K($,w,_,P={}){const{lowS:L,prehash:N,format:j}=yi(P,p);if(_=me("publicKey",_),w=C(me("message",w),N),"strict"in P)throw new Error("options.strict was renamed to lowS");const M=j===void 0?H($):y.fromBytes(me("sig",$),j);if(M===!1)return!1;try{const F=e.fromBytes(_);if(L&&M.hasHighS())return!1;const{r:ue,s:oe}=M,Q=x(w),he=i.inv(oe),pe=i.create(Q*he),Te=i.create(ue*he),fe=e.BASE.multiplyUnsafe(pe).add(F.multiplyUnsafe(Te));return fe.is0()?!1:i.create(fe.x)===ue}catch{return!1}}function k($,w,_={}){const{prehash:P}=yi(_,p);return w=C(w,P),y.fromBytes($,"recovered").recoverPublicKey(w).toBytes()}return Object.freeze({keygen:u,getPublicKey:l,getSharedSecret:f,utils:d,lengths:h,Point:e,sign:U,verify:K,recoverPublicKey:k,Signature:y,hash:t})}function Xx(e){const t={a:e.a,b:e.b,p:e.Fp.ORDER,n:e.n,h:e.h,Gx:e.Gx,Gy:e.Gy},n=e.Fp;let r=e.allowedPrivateKeyLengths?Array.from(new Set(e.allowedPrivateKeyLengths.map(i=>Math.ceil(i/2)))):void 0;const s=tr(t.n,{BITS:e.nBitLength,allowedLengths:r,modFromBytes:e.wrapPrivateKey}),o={Fp:n,Fn:s,allowInfinityPoint:e.allowInfinityPoint,endo:e.endo,isTorsionFree:e.isTorsionFree,clearCofactor:e.clearCofactor,fromBytes:e.fromBytes,toBytes:e.toBytes};return{CURVE:t,curveOpts:o}}function Jx(e){const{CURVE:t,curveOpts:n}=Xx(e),r={hmac:e.hmac,randomBytes:e.randomBytes,lowS:e.lowS,bits2int:e.bits2int,bits2int_modN:e.bits2int_modN};return{CURVE:t,curveOpts:n,hash:e.hash,ecdsaOpts:r}}function Qx(e,t){const n=t.Point;return Object.assign({},t,{ProjectivePoint:n,CURVE:Object.assign({},e,Bd(n.Fn.ORDER,n.Fn.BITS))})}function e2(e){const{CURVE:t,curveOpts:n,hash:r,ecdsaOpts:s}=Jx(e),o=Wx(t,n),i=Yx(o,r,s);return Qx(e,i)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function t2(e,t){const n=r=>e2({...e,hash:r});return{...n(t),create:n}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const $r={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:BigInt(1),a:BigInt(0),b:BigInt(7),Gx:BigInt("0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),Gy:BigInt("0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8")},n2={beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),basises:[[BigInt("0x3086d221a7d46bcde86c90e49284eb15"),-BigInt("0xe4437ed6010e88286f547fa90abfe4c3")],[BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),BigInt("0x3086d221a7d46bcde86c90e49284eb15")]]},r2=BigInt(0),vu=BigInt(1),ra=BigInt(2);function s2(e){const t=$r.p,n=BigInt(3),r=BigInt(6),s=BigInt(11),o=BigInt(22),i=BigInt(23),a=BigInt(44),c=BigInt(88),u=e*e*e%t,l=u*u*e%t,f=_e(l,n,t)*l%t,d=_e(f,n,t)*l%t,h=_e(d,ra,t)*u%t,p=_e(h,s,t)*h%t,g=_e(p,o,t)*p%t,b=_e(g,a,t)*g%t,m=_e(b,c,t)*b%t,E=_e(m,a,t)*g%t,y=_e(E,n,t)*l%t,v=_e(y,i,t)*p%t,x=_e(v,r,t)*u%t,B=_e(x,ra,t);if(!vo.eql(vo.sqr(B),e))throw new Error("Cannot find square root");return B}const vo=tr($r.p,{sqrt:s2}),ke=t2({...$r,Fp:vo,lowS:!0,endo:n2},xe),Eu={};function Eo(e,...t){let n=Eu[e];if(n===void 0){const r=xe(Ue(e));n=ae(r,r),Eu[e]=n}return xe(ae(n,...t))}const oc=e=>e.toBytes(!0).slice(1),Pr=ke.Point,ic=e=>e%ra===r2;function sa(e){const{Fn:t,BASE:n}=Pr,r=jn(t,e),s=n.multiply(r);return{scalar:ic(s.y)?r:t.neg(r),bytes:oc(s)}}function Kd(e){const t=vo;if(!t.isValidNot0(e))throw new Error("invalid x: Fail if x ≥ p");const n=t.create(e*e),r=t.create(n*e+BigInt(7));let s=t.sqrt(r);ic(s)||(s=t.neg(s));const o=Pr.fromAffine({x:e,y:s});return o.assertValidity(),o}const Fr=er;function Dd(...e){return Pr.Fn.create(Fr(Eo("BIP0340/challenge",...e)))}function ku(e){return sa(e).bytes}function o2(e,t,n=Qn(32)){const{Fn:r}=Pr,s=me("message",e),{bytes:o,scalar:i}=sa(t),a=me("auxRand",n,32),c=r.toBytes(i^Fr(Eo("BIP0340/aux",a))),u=Eo("BIP0340/nonce",c,o,s),{bytes:l,scalar:f}=sa(u),d=Dd(l,o,s),h=new Uint8Array(64);if(h.set(l,0),h.set(r.toBytes(r.create(f+d*i)),32),!Md(h,s,o))throw new Error("sign: Invalid signature produced");return h}function Md(e,t,n){const{Fn:r,BASE:s}=Pr,o=me("signature",e,64),i=me("message",t),a=me("publicKey",n,32);try{const c=Kd(Fr(a)),u=Fr(o.subarray(0,32));if(!ta(u,vu,$r.p))return!1;const l=Fr(o.subarray(32,64));if(!ta(l,vu,$r.n))return!1;const f=Dd(r.toBytes(u),oc(c),i),d=s.multiplyUnsafe(l).add(c.multiplyUnsafe(r.neg(f))),{x:h,y:p}=d.toAffine();return!(d.is0()||!ic(p)||h!==u)}catch{return!1}}const kn=(()=>{const n=(s=Qn(48))=>Od(s,$r.n);ke.utils.randomSecretKey;function r(s){const o=n(s);return{secretKey:o,publicKey:ku(o)}}return{keygen:r,getPublicKey:ku,sign:o2,verify:Md,Point:Pr,utils:{randomSecretKey:n,randomPrivateKey:n,taggedHash:Eo,lift_x:Kd,pointToBytes:oc,numberToBytesBE:Ko,bytesToNumberBE:er,mod:Ee},lengths:{secretKey:32,publicKey:32,publicKeyHasPrefix:!1,signature:64,seed:48}}})(),i2=BigInt(0),jr=BigInt(1),a2=BigInt(2),c2=BigInt(7),u2=BigInt(256),f2=BigInt(113),Zd=[],Vd=[],qd=[];for(let e=0,t=jr,n=1,r=0;e<24;e++){[n,r]=[r,(2*n+3*r)%5],Zd.push(2*(5*r+n)),Vd.push((e+1)*(e+2)/2%64);let s=i2;for(let o=0;o<7;o++)t=(t<>c2)*f2)%u2,t&a2&&(s^=jr<<(jr<n>32?wx(e,t,n):yx(e,t,n),$u=(e,t,n)=>n>32?xx(e,t,n):bx(e,t,n);function h2(e,t=24){const n=new Uint32Array(10);for(let r=24-t;r<24;r++){for(let i=0;i<10;i++)n[i]=e[i]^e[i+10]^e[i+20]^e[i+30]^e[i+40];for(let i=0;i<10;i+=2){const a=(i+8)%10,c=(i+2)%10,u=n[c],l=n[c+1],f=Su(u,l,1)^n[a],d=$u(u,l,1)^n[a+1];for(let h=0;h<50;h+=10)e[i+h]^=f,e[i+h+1]^=d}let s=e[2],o=e[3];for(let i=0;i<24;i++){const a=Vd[i],c=Su(s,o,a),u=$u(s,o,a),l=Zd[i];s=e[l],o=e[l+1],e[l]=c,e[l+1]=u}for(let i=0;i<50;i+=10){for(let a=0;a<10;a++)n[a]=e[i+a];for(let a=0;a<10;a++)e[i+a]^=~n[(a+2)%10]&n[(a+4)%10]}e[0]^=l2[r],e[1]^=d2[r]}ct(n)}class ac extends ec{constructor(t,n,r,s=!1,o=24){if(super(),this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,this.enableXOF=!1,this.blockLen=t,this.suffix=n,this.outputLen=r,this.enableXOF=s,this.rounds=o,It(r),!(0=r&&this.keccak();const i=Math.min(r-this.posOut,o-s);t.set(n.subarray(this.posOut,this.posOut+i),s),this.posOut+=i,s+=i}return t}xofInto(t){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(t)}xof(t){return It(t),this.xofInto(new Uint8Array(t))}digestInto(t){if(hd(t,this),this.finished)throw new Error("digest() was already called");return this.writeInto(t),this.destroy(),t}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,ct(this.state)}_cloneInto(t){const{blockLen:n,suffix:r,outputLen:s,rounds:o,enableXOF:i}=this;return t||(t=new ac(n,r,s,i,o)),t.state32.set(this.state32),t.pos=this.pos,t.posOut=this.posOut,t.finished=this.finished,t.rounds=o,t.suffix=r,t.outputLen=s,t.enableXOF=i,t.destroyed=this.destroyed,t}}const p2=(e,t,n)=>jo(()=>new ac(t,e,n)),cc=p2(1,136,256/8),g2=Uint8Array.from([7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8]),Fd=Uint8Array.from(new Array(16).fill(0).map((e,t)=>t)),m2=Fd.map(e=>(9*e+5)%16),Wd=(()=>{const n=[[Fd],[m2]];for(let r=0;r<4;r++)for(let s of n)s.push(s[r].map(o=>g2[o]));return n})(),Gd=Wd[0],Yd=Wd[1],Xd=[[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8],[12,13,11,15,6,9,9,7,12,15,11,13,7,8,7,7],[13,15,14,11,7,7,6,8,13,14,13,12,5,5,6,9],[14,11,12,14,8,6,5,5,15,12,15,14,9,9,8,6],[15,12,13,13,9,5,8,6,14,11,12,11,8,6,5,5]].map(e=>Uint8Array.from(e)),y2=Gd.map((e,t)=>e.map(n=>Xd[t][n])),b2=Yd.map((e,t)=>e.map(n=>Xd[t][n])),w2=Uint32Array.from([0,1518500249,1859775393,2400959708,2840853838]),x2=Uint32Array.from([1352829926,1548603684,1836072691,2053994217,0]);function _u(e,t,n,r){return e===0?t^n^r:e===1?t&n|~t&r:e===2?(t|~n)^r:e===3?t&r|n&~r:t^(n|~r)}const Rs=new Uint32Array(16);class v2 extends tc{constructor(){super(64,20,8,!0),this.h0=1732584193,this.h1=-271733879,this.h2=-1732584194,this.h3=271733878,this.h4=-1009589776}get(){const{h0:t,h1:n,h2:r,h3:s,h4:o}=this;return[t,n,r,s,o]}set(t,n,r,s,o){this.h0=t|0,this.h1=n|0,this.h2=r|0,this.h3=s|0,this.h4=o|0}process(t,n){for(let h=0;h<16;h++,n+=4)Rs[h]=t.getUint32(n,!0);let r=this.h0|0,s=r,o=this.h1|0,i=o,a=this.h2|0,c=a,u=this.h3|0,l=u,f=this.h4|0,d=f;for(let h=0;h<5;h++){const p=4-h,g=w2[h],b=x2[h],m=Gd[h],E=Yd[h],y=y2[h],v=b2[h];for(let x=0;x<16;x++){const B=Os(r+_u(h,o,a,u)+Rs[m[x]]+g,y[x])+f|0;r=f,f=u,u=Os(a,10)|0,a=o,o=B}for(let x=0;x<16;x++){const B=Os(s+_u(p,i,c,l)+Rs[E[x]]+b,v[x])+d|0;s=d,d=l,l=Os(c,10)|0,c=i,i=B}}this.set(this.h1+a+l|0,this.h2+u+d|0,this.h3+f+s|0,this.h4+r+i|0,this.h0+o+c|0)}roundClean(){ct(Rs)}destroy(){this.destroyed=!0,ct(this.buffer),this.set(0,0,0,0,0)}}const uc=jo(()=>new v2);/*! scure-base - MIT License (c) 2022 Paul Miller (paulmillr.com) */function _r(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"}function E2(e,...t){if(!_r(e))throw new Error("Uint8Array expected");if(t.length>0&&!t.includes(e.length))throw new Error("Uint8Array expected of length "+t+", got length="+e.length)}function Jd(e,t){return Array.isArray(t)?t.length===0?!0:e?t.every(n=>typeof n=="string"):t.every(n=>Number.isSafeInteger(n)):!1}function Qd(e){if(typeof e!="function")throw new Error("function expected");return!0}function Wn(e,t){if(typeof t!="string")throw new Error(`${e}: string expected`);return!0}function Ur(e){if(!Number.isSafeInteger(e))throw new Error(`invalid integer: ${e}`)}function ko(e){if(!Array.isArray(e))throw new Error("array expected")}function So(e,t){if(!Jd(!0,t))throw new Error(`${e}: array of strings expected`)}function fc(e,t){if(!Jd(!1,t))throw new Error(`${e}: array of numbers expected`)}function Es(...e){const t=o=>o,n=(o,i)=>a=>o(i(a)),r=e.map(o=>o.encode).reduceRight(n,t),s=e.map(o=>o.decode).reduce(n,t);return{encode:r,decode:s}}function Do(e){const t=typeof e=="string"?e.split(""):e,n=t.length;So("alphabet",t);const r=new Map(t.map((s,o)=>[s,o]));return{encode:s=>(ko(s),s.map(o=>{if(!Number.isSafeInteger(o)||o<0||o>=n)throw new Error(`alphabet.encode: digit index outside alphabet "${o}". Allowed: ${e}`);return t[o]})),decode:s=>(ko(s),s.map(o=>{Wn("alphabet.decode",o);const i=r.get(o);if(i===void 0)throw new Error(`Unknown letter: "${o}". Allowed: ${e}`);return i}))}}function Mo(e=""){return Wn("join",e),{encode:t=>(So("join.decode",t),t.join(e)),decode:t=>(Wn("join.decode",t),t.split(e))}}function eh(e,t="="){return Ur(e),Wn("padding",t),{encode(n){for(So("padding.encode",n);n.length*e%8;)n.push(t);return n},decode(n){So("padding.decode",n);let r=n.length;if(r*e%8)throw new Error("padding: invalid, string should have whole number of bytes");for(;r>0&&n[r-1]===t;r--)if((r-1)*e%8===0)throw new Error("padding: invalid, string has too much padding");return n.slice(0,r)}}}function oa(e,t,n){if(t<2)throw new Error(`convertRadix: invalid from=${t}, base cannot be less than 2`);if(n<2)throw new Error(`convertRadix: invalid to=${n}, base cannot be less than 2`);if(ko(e),!e.length)return[];let r=0;const s=[],o=Array.from(e,a=>{if(Ur(a),a<0||a>=t)throw new Error(`invalid integer: ${a}`);return a}),i=o.length;for(;;){let a=0,c=!0;for(let u=r;ut===0?e:th(t,e%t),$o=(e,t)=>e+(t-th(e,t)),Gs=(()=>{let e=[];for(let t=0;t<40;t++)e.push(2**t);return e})();function _o(e,t,n,r){if(ko(e),t<=0||t>32)throw new Error(`convertRadix2: wrong from=${t}`);if(n<=0||n>32)throw new Error(`convertRadix2: wrong to=${n}`);if($o(t,n)>32)throw new Error(`convertRadix2: carry overflow from=${t} to=${n} carryBits=${$o(t,n)}`);let s=0,o=0;const i=Gs[t],a=Gs[n]-1,c=[];for(const u of e){if(Ur(u),u>=i)throw new Error(`convertRadix2: invalid data word=${u} from=${t}`);if(s=s<32)throw new Error(`convertRadix2: carry overflow pos=${o} from=${t}`);for(o+=t;o>=n;o-=n)c.push((s>>o-n&a)>>>0);const l=Gs[o];if(l===void 0)throw new Error("invalid carry");s&=l-1}if(s=s<=t)throw new Error("Excess padding");if(!r&&s>0)throw new Error(`Non-zero padding: ${s}`);return r&&o>0&&c.push(s>>>0),c}function nh(e){Ur(e);const t=2**8;return{encode:n=>{if(!_r(n))throw new Error("radix.encode input should be Uint8Array");return oa(Array.from(n),t,e)},decode:n=>(fc("radix.decode",n),Uint8Array.from(oa(n,e,t)))}}function lc(e,t=!1){if(Ur(e),e<=0||e>32)throw new Error("radix2: bits should be in (0..32]");if($o(8,e)>32||$o(e,8)>32)throw new Error("radix2: carry overflow");return{encode:n=>{if(!_r(n))throw new Error("radix2.encode input should be Uint8Array");return _o(Array.from(n),8,e,!t)},decode:n=>(fc("radix2.decode",n),Uint8Array.from(_o(n,e,8,t)))}}function Au(e){return Qd(e),function(...t){try{return e.apply(null,t)}catch{}}}function rh(e,t){return Ur(e),Qd(t),{encode(n){if(!_r(n))throw new Error("checksum.encode: input should be Uint8Array");const r=t(n).slice(0,e),s=new Uint8Array(n.length+e);return s.set(n),s.set(r,n.length),s},decode(n){if(!_r(n))throw new Error("checksum.decode: input should be Uint8Array");const r=n.slice(0,-e),s=n.slice(-e),o=t(r).slice(0,e);for(let i=0;i{Wn("base64",e);const n=/^[A-Za-z0-9=+/]+$/,r="base64";if(e.length>0&&!n.test(e))throw new Error("invalid base64");return Uint8Array.fromBase64(e,{alphabet:r,lastChunkHandling:"strict"})},it=k2?{encode(e){return E2(e),e.toBase64()},decode(e){return S2(e)}}:Es(lc(6),Do("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"),eh(6),Mo("")),$2=e=>Es(nh(58),Do(e),Mo("")),_2=$2("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"),sh=e=>Es(rh(4,t=>e(e(t))),_2),ia=Es(Do("qpzry9x8gf2tvdw0s3jn54khce6mua7l"),Mo("")),Bu=[996825010,642813549,513874426,1027748829,705979059];function Kr(e){const t=e>>25;let n=(e&33554431)<<5;for(let r=0;r>r&1)===1&&(n^=Bu[r]);return n}function Tu(e,t,n=1){const r=e.length;let s=1;for(let o=0;o126)throw new Error(`Invalid prefix (${e})`);s=Kr(s)^i>>5}s=Kr(s);for(let o=0;oh)throw new TypeError(`Length ${g} exceeds limit ${h}`);const b=f.toLowerCase(),m=Tu(b,d,t);return`${b}1${ia.encode(d)}${m}`}function a(f,d=90){Wn("bech32.decode input",f);const h=f.length;if(h<8||d!==!1&&h>d)throw new TypeError(`invalid string length: ${h} (${f}). Expected (8..${d})`);const p=f.toLowerCase();if(f!==p&&f!==f.toUpperCase())throw new Error("String must be lowercase or uppercase");const g=p.lastIndexOf("1");if(g===0||g===-1)throw new Error('Letter "1" must be present between prefix and data only');const b=p.slice(0,g),m=p.slice(g+1);if(m.length<6)throw new Error("Data must be at least 6 characters long");const E=ia.decode(m).slice(0,-6),y=Tu(b,E,t);if(!m.endsWith(y))throw new Error(`Invalid checksum in ${f}: expected "${y}"`);return{prefix:b,words:E}}const c=Au(a);function u(f){const{prefix:d,words:h}=a(f,!1);return{prefix:d,words:h,bytes:r(h)}}function l(f,d){return i(f,s(d))}return{encode:i,decode:a,encodeFromBytes:l,decodeToBytes:u,decodeUnsafe:c,fromWords:r,fromWordsUnsafe:o,toWords:s}}const Gn=oh("bech32"),A2=oh("bech32m");/*! scure-bip32 - MIT License (c) 2022 Patricio Palladino, Paul Miller (paulmillr.com) */const js=ke.ProjectivePoint,bi=sh(xe);function Iu(e){Re(e);const t=e.length===0?"0":Se(e);return BigInt("0x"+t)}function B2(e){if(typeof e!="bigint")throw new Error("bigint expected");return ut(e.toString(16).padStart(64,"0"))}const T2=Ue("Bitcoin seed"),wi={private:76066276,public:76067358},xi=2147483648,I2=e=>uc(xe(e)),O2=e=>Dn(e).getUint32(0,!1),Ks=e=>{if(!Number.isSafeInteger(e)||e<0||e>2**32-1)throw new Error("invalid number, should be from 0 to 2**32-1, got "+e);const t=new Uint8Array(4);return Dn(t).setUint32(0,e,!1),t};class Cn{get fingerprint(){if(!this.pubHash)throw new Error("No publicKey set!");return O2(this.pubHash)}get identifier(){return this.pubHash}get pubKeyHash(){return this.pubHash}get privateKey(){return this.privKeyBytes||null}get publicKey(){return this.pubKey||null}get privateExtendedKey(){const t=this.privateKey;if(!t)throw new Error("No private key");return bi.encode(this.serialize(this.versions.private,ae(new Uint8Array([0]),t)))}get publicExtendedKey(){if(!this.pubKey)throw new Error("No public key");return bi.encode(this.serialize(this.versions.public,this.pubKey))}static fromMasterSeed(t,n=wi){if(Re(t),8*t.length<128||8*t.length>512)throw new Error("HDKey: seed length must be between 128 and 512 bits; 256 bits is advised, got "+t.length);const r=En(cs,T2,t);return new Cn({versions:n,chainCode:r.slice(32),privateKey:r.slice(0,32)})}static fromExtendedKey(t,n=wi){const r=bi.decode(t),s=Dn(r),o=s.getUint32(0,!1),i={versions:n,depth:r[4],parentFingerprint:s.getUint32(5,!1),index:s.getUint32(9,!1),chainCode:r.slice(13,45)},a=r.slice(45),c=a[0]===0;if(o!==n[c?"private":"public"])throw new Error("Version mismatch");return c?new Cn({...i,privateKey:a.slice(1)}):new Cn({...i,publicKey:a})}static fromJSON(t){return Cn.fromExtendedKey(t.xpriv)}constructor(t){if(this.depth=0,this.index=0,this.chainCode=null,this.parentFingerprint=0,!t||typeof t!="object")throw new Error("HDKey.constructor must not be called directly");if(this.versions=t.versions||wi,this.depth=t.depth||0,this.chainCode=t.chainCode||null,this.index=t.index||0,this.parentFingerprint=t.parentFingerprint||0,!this.depth&&(this.parentFingerprint||this.index))throw new Error("HDKey: zero depth with non-zero index/parent fingerprint");if(t.publicKey&&t.privateKey)throw new Error("HDKey: publicKey and privateKey at same time.");if(t.privateKey){if(!ke.utils.isValidPrivateKey(t.privateKey))throw new Error("Invalid private key");this.privKey=typeof t.privateKey=="bigint"?t.privateKey:Iu(t.privateKey),this.privKeyBytes=B2(this.privKey),this.pubKey=ke.getPublicKey(t.privateKey,!0)}else if(t.publicKey)this.pubKey=js.fromHex(t.publicKey).toRawBytes(!0);else throw new Error("HDKey: no public or private key provided");this.pubHash=I2(this.pubKey)}derive(t){if(!/^[mM]'?/.test(t))throw new Error('Path must start with "m" or "M"');if(/^[mM]'?$/.test(t))return this;const n=t.replace(/^[mM]'?\//,"").split("/");let r=this;for(const s of n){const o=/^(\d+)('?)$/.exec(s),i=o&&o[1];if(!o||o.length!==3||typeof i!="string")throw new Error("invalid child index: "+s);let a=+i;if(!Number.isSafeInteger(a)||a>=xi)throw new Error("Invalid index");o[2]==="'"&&(a+=xi),r=r.deriveChild(a)}return r}deriveChild(t){if(!this.pubKey||!this.chainCode)throw new Error("No publicKey or chainCode set");let n=Ks(t);if(t>=xi){const a=this.privateKey;if(!a)throw new Error("Could not derive hardened child key");n=ae(new Uint8Array([0]),a,n)}else n=ae(this.pubKey,n);const r=En(cs,this.chainCode,n),s=Iu(r.slice(0,32)),o=r.slice(32);if(!ke.utils.isValidPrivateKey(s))throw new Error("Tweak bigger than curve order");const i={versions:this.versions,chainCode:o,depth:this.depth+1,parentFingerprint:this.fingerprint,index:t};try{if(this.privateKey){const a=Ee(this.privKey+s,ke.CURVE.n);if(!ke.utils.isValidPrivateKey(a))throw new Error("The tweak was out of range or the resulted private key is invalid");i.privateKey=a}else{const a=js.fromHex(this.pubKey).add(js.fromPrivateKey(s));if(a.equals(js.ZERO))throw new Error("The tweak was equal to negative P, which made the result key invalid");i.publicKey=a.toRawBytes(!0)}return new Cn(i)}catch{return this.deriveChild(t+1)}}sign(t){if(!this.privateKey)throw new Error("No privateKey set!");return Re(t,32),ke.sign(t,this.privKey).toCompactRawBytes()}verify(t,n){if(Re(t,32),Re(n,64),!this.publicKey)throw new Error("No publicKey set!");let r;try{r=ke.Signature.fromCompact(n)}catch{return!1}return ke.verify(r,t,this.publicKey)}wipePrivateData(){return this.privKey=void 0,this.privKeyBytes&&(this.privKeyBytes.fill(0),this.privKeyBytes=void 0),this}toJSON(){return{xpriv:this.privateExtendedKey,xpub:this.publicExtendedKey}}serialize(t,n){if(!this.chainCode)throw new Error("No chainCode set");return Re(n,33),ae(Ks(t),new Uint8Array([this.depth]),Ks(this.parentFingerprint),Ks(this.index),this.chainCode,n)}}function C2(e,t,n,r){xs(e);const s=dx({dkLen:32,asyncTick:10},r),{c:o,dkLen:i,asyncTick:a}=s;if(It(o),It(i),It(a),o<1)throw new Error("iterations (c) should be >= 1");const c=fu(t),u=fu(n),l=new Uint8Array(i),f=En.create(e,c),d=f._cloneInto().update(u);return{c:o,dkLen:i,asyncTick:a,DK:l,PRF:f,PRFSalt:d}}function P2(e,t,n,r,s){return e.destroy(),t.destroy(),r&&r.destroy(),ct(s),n}function U2(e,t,n,r){const{c:s,dkLen:o,DK:i,PRF:a,PRFSalt:c}=C2(e,t,n,r);let u;const l=new Uint8Array(4),f=Dn(l),d=new Uint8Array(a.outputLen);for(let h=1,p=0;pe[0]==="あいこくしん";function ih(e){if(typeof e!="string")throw new TypeError("invalid mnemonic type: "+typeof e);return e.normalize("NFKD")}function ah(e){const t=ih(e),n=t.split(" ");if(![12,15,18,21,24].includes(n.length))throw new Error("Invalid mnemonic");return{nfkd:t,words:n}}function ch(e){Re(e,16,20,24,28,32)}function L2(e,t=128){if(It(t),t%32!==0||t>256)throw new TypeError("Invalid entropy");return fh(Qn(t/8),e)}const R2=e=>{const t=8-e.length/4;return new Uint8Array([xe(e)[0]>>t<{if(typeof t!="string")throw new Error("wordlist: non-string element: "+t)}),Hs.chain(Hs.checksum(1,R2),Hs.radix2(11,!0),Hs.alphabet(e))}function H2(e,t){const{words:n}=ah(e),r=uh(t).decode(n);return ch(r),r}function fh(e,t){return ch(e),uh(t).encode(e).join(N2(t)?" ":" ")}function j2(e,t){try{H2(e,t)}catch{return!1}return!0}const K2=e=>ih("mnemonic"+e);function D2(e,t=""){return U2(cs,ah(e).nfkd,K2(t),{c:2048,dkLen:64})}const dc=`abandon +ability +able +about +above +absent +absorb +abstract +absurd +abuse +access +accident +account +accuse +achieve +acid +acoustic +acquire +across +act +action +actor +actress +actual +adapt +add +addict +address +adjust +admit +adult +advance +advice +aerobic +affair +afford +afraid +again +age +agent +agree +ahead +aim +air +airport +aisle +alarm +album +alcohol +alert +alien +all +alley +allow +almost +alone +alpha +already +also +alter +always +amateur +amazing +among +amount +amused +analyst +anchor +ancient +anger +angle +angry +animal +ankle +announce +annual +another +answer +antenna +antique +anxiety +any +apart +apology +appear +apple +approve +april +arch +arctic +area +arena +argue +arm +armed +armor +army +around +arrange +arrest +arrive +arrow +art +artefact +artist +artwork +ask +aspect +assault +asset +assist +assume +asthma +athlete +atom +attack +attend +attitude +attract +auction +audit +august +aunt +author +auto +autumn +average +avocado +avoid +awake +aware +away +awesome +awful +awkward +axis +baby +bachelor +bacon +badge +bag +balance +balcony +ball +bamboo +banana +banner +bar +barely +bargain +barrel +base +basic +basket +battle +beach +bean +beauty +because +become +beef +before +begin +behave +behind +believe +below +belt +bench +benefit +best +betray +better +between +beyond +bicycle +bid +bike +bind +biology +bird +birth +bitter +black +blade +blame +blanket +blast +bleak +bless +blind +blood +blossom +blouse +blue +blur +blush +board +boat +body +boil +bomb +bone +bonus +book +boost +border +boring +borrow +boss +bottom +bounce +box +boy +bracket +brain +brand +brass +brave +bread +breeze +brick +bridge +brief +bright +bring +brisk +broccoli +broken +bronze +broom +brother +brown +brush +bubble +buddy +budget +buffalo +build +bulb +bulk +bullet +bundle +bunker +burden +burger +burst +bus +business +busy +butter +buyer +buzz +cabbage +cabin +cable +cactus +cage +cake +call +calm +camera +camp +can +canal +cancel +candy +cannon +canoe +canvas +canyon +capable +capital +captain +car +carbon +card +cargo +carpet +carry +cart +case +cash +casino +castle +casual +cat +catalog +catch +category +cattle +caught +cause +caution +cave +ceiling +celery +cement +census +century +cereal +certain +chair +chalk +champion +change +chaos +chapter +charge +chase +chat +cheap +check +cheese +chef +cherry +chest +chicken +chief +child +chimney +choice +choose +chronic +chuckle +chunk +churn +cigar +cinnamon +circle +citizen +city +civil +claim +clap +clarify +claw +clay +clean +clerk +clever +click +client +cliff +climb +clinic +clip +clock +clog +close +cloth +cloud +clown +club +clump +cluster +clutch +coach +coast +coconut +code +coffee +coil +coin +collect +color +column +combine +come +comfort +comic +common +company +concert +conduct +confirm +congress +connect +consider +control +convince +cook +cool +copper +copy +coral +core +corn +correct +cost +cotton +couch +country +couple +course +cousin +cover +coyote +crack +cradle +craft +cram +crane +crash +crater +crawl +crazy +cream +credit +creek +crew +cricket +crime +crisp +critic +crop +cross +crouch +crowd +crucial +cruel +cruise +crumble +crunch +crush +cry +crystal +cube +culture +cup +cupboard +curious +current +curtain +curve +cushion +custom +cute +cycle +dad +damage +damp +dance +danger +daring +dash +daughter +dawn +day +deal +debate +debris +decade +december +decide +decline +decorate +decrease +deer +defense +define +defy +degree +delay +deliver +demand +demise +denial +dentist +deny +depart +depend +deposit +depth +deputy +derive +describe +desert +design +desk +despair +destroy +detail +detect +develop +device +devote +diagram +dial +diamond +diary +dice +diesel +diet +differ +digital +dignity +dilemma +dinner +dinosaur +direct +dirt +disagree +discover +disease +dish +dismiss +disorder +display +distance +divert +divide +divorce +dizzy +doctor +document +dog +doll +dolphin +domain +donate +donkey +donor +door +dose +double +dove +draft +dragon +drama +drastic +draw +dream +dress +drift +drill +drink +drip +drive +drop +drum +dry +duck +dumb +dune +during +dust +dutch +duty +dwarf +dynamic +eager +eagle +early +earn +earth +easily +east +easy +echo +ecology +economy +edge +edit +educate +effort +egg +eight +either +elbow +elder +electric +elegant +element +elephant +elevator +elite +else +embark +embody +embrace +emerge +emotion +employ +empower +empty +enable +enact +end +endless +endorse +enemy +energy +enforce +engage +engine +enhance +enjoy +enlist +enough +enrich +enroll +ensure +enter +entire +entry +envelope +episode +equal +equip +era +erase +erode +erosion +error +erupt +escape +essay +essence +estate +eternal +ethics +evidence +evil +evoke +evolve +exact +example +excess +exchange +excite +exclude +excuse +execute +exercise +exhaust +exhibit +exile +exist +exit +exotic +expand +expect +expire +explain +expose +express +extend +extra +eye +eyebrow +fabric +face +faculty +fade +faint +faith +fall +false +fame +family +famous +fan +fancy +fantasy +farm +fashion +fat +fatal +father +fatigue +fault +favorite +feature +february +federal +fee +feed +feel +female +fence +festival +fetch +fever +few +fiber +fiction +field +figure +file +film +filter +final +find +fine +finger +finish +fire +firm +first +fiscal +fish +fit +fitness +fix +flag +flame +flash +flat +flavor +flee +flight +flip +float +flock +floor +flower +fluid +flush +fly +foam +focus +fog +foil +fold +follow +food +foot +force +forest +forget +fork +fortune +forum +forward +fossil +foster +found +fox +fragile +frame +frequent +fresh +friend +fringe +frog +front +frost +frown +frozen +fruit +fuel +fun +funny +furnace +fury +future +gadget +gain +galaxy +gallery +game +gap +garage +garbage +garden +garlic +garment +gas +gasp +gate +gather +gauge +gaze +general +genius +genre +gentle +genuine +gesture +ghost +giant +gift +giggle +ginger +giraffe +girl +give +glad +glance +glare +glass +glide +glimpse +globe +gloom +glory +glove +glow +glue +goat +goddess +gold +good +goose +gorilla +gospel +gossip +govern +gown +grab +grace +grain +grant +grape +grass +gravity +great +green +grid +grief +grit +grocery +group +grow +grunt +guard +guess +guide +guilt +guitar +gun +gym +habit +hair +half +hammer +hamster +hand +happy +harbor +hard +harsh +harvest +hat +have +hawk +hazard +head +health +heart +heavy +hedgehog +height +hello +helmet +help +hen +hero +hidden +high +hill +hint +hip +hire +history +hobby +hockey +hold +hole +holiday +hollow +home +honey +hood +hope +horn +horror +horse +hospital +host +hotel +hour +hover +hub +huge +human +humble +humor +hundred +hungry +hunt +hurdle +hurry +hurt +husband +hybrid +ice +icon +idea +identify +idle +ignore +ill +illegal +illness +image +imitate +immense +immune +impact +impose +improve +impulse +inch +include +income +increase +index +indicate +indoor +industry +infant +inflict +inform +inhale +inherit +initial +inject +injury +inmate +inner +innocent +input +inquiry +insane +insect +inside +inspire +install +intact +interest +into +invest +invite +involve +iron +island +isolate +issue +item +ivory +jacket +jaguar +jar +jazz +jealous +jeans +jelly +jewel +job +join +joke +journey +joy +judge +juice +jump +jungle +junior +junk +just +kangaroo +keen +keep +ketchup +key +kick +kid +kidney +kind +kingdom +kiss +kit +kitchen +kite +kitten +kiwi +knee +knife +knock +know +lab +label +labor +ladder +lady +lake +lamp +language +laptop +large +later +latin +laugh +laundry +lava +law +lawn +lawsuit +layer +lazy +leader +leaf +learn +leave +lecture +left +leg +legal +legend +leisure +lemon +lend +length +lens +leopard +lesson +letter +level +liar +liberty +library +license +life +lift +light +like +limb +limit +link +lion +liquid +list +little +live +lizard +load +loan +lobster +local +lock +logic +lonely +long +loop +lottery +loud +lounge +love +loyal +lucky +luggage +lumber +lunar +lunch +luxury +lyrics +machine +mad +magic +magnet +maid +mail +main +major +make +mammal +man +manage +mandate +mango +mansion +manual +maple +marble +march +margin +marine +market +marriage +mask +mass +master +match +material +math +matrix +matter +maximum +maze +meadow +mean +measure +meat +mechanic +medal +media +melody +melt +member +memory +mention +menu +mercy +merge +merit +merry +mesh +message +metal +method +middle +midnight +milk +million +mimic +mind +minimum +minor +minute +miracle +mirror +misery +miss +mistake +mix +mixed +mixture +mobile +model +modify +mom +moment +monitor +monkey +monster +month +moon +moral +more +morning +mosquito +mother +motion +motor +mountain +mouse +move +movie +much +muffin +mule +multiply +muscle +museum +mushroom +music +must +mutual +myself +mystery +myth +naive +name +napkin +narrow +nasty +nation +nature +near +neck +need +negative +neglect +neither +nephew +nerve +nest +net +network +neutral +never +news +next +nice +night +noble +noise +nominee +noodle +normal +north +nose +notable +note +nothing +notice +novel +now +nuclear +number +nurse +nut +oak +obey +object +oblige +obscure +observe +obtain +obvious +occur +ocean +october +odor +off +offer +office +often +oil +okay +old +olive +olympic +omit +once +one +onion +online +only +open +opera +opinion +oppose +option +orange +orbit +orchard +order +ordinary +organ +orient +original +orphan +ostrich +other +outdoor +outer +output +outside +oval +oven +over +own +owner +oxygen +oyster +ozone +pact +paddle +page +pair +palace +palm +panda +panel +panic +panther +paper +parade +parent +park +parrot +party +pass +patch +path +patient +patrol +pattern +pause +pave +payment +peace +peanut +pear +peasant +pelican +pen +penalty +pencil +people +pepper +perfect +permit +person +pet +phone +photo +phrase +physical +piano +picnic +picture +piece +pig +pigeon +pill +pilot +pink +pioneer +pipe +pistol +pitch +pizza +place +planet +plastic +plate +play +please +pledge +pluck +plug +plunge +poem +poet +point +polar +pole +police +pond +pony +pool +popular +portion +position +possible +post +potato +pottery +poverty +powder +power +practice +praise +predict +prefer +prepare +present +pretty +prevent +price +pride +primary +print +priority +prison +private +prize +problem +process +produce +profit +program +project +promote +proof +property +prosper +protect +proud +provide +public +pudding +pull +pulp +pulse +pumpkin +punch +pupil +puppy +purchase +purity +purpose +purse +push +put +puzzle +pyramid +quality +quantum +quarter +question +quick +quit +quiz +quote +rabbit +raccoon +race +rack +radar +radio +rail +rain +raise +rally +ramp +ranch +random +range +rapid +rare +rate +rather +raven +raw +razor +ready +real +reason +rebel +rebuild +recall +receive +recipe +record +recycle +reduce +reflect +reform +refuse +region +regret +regular +reject +relax +release +relief +rely +remain +remember +remind +remove +render +renew +rent +reopen +repair +repeat +replace +report +require +rescue +resemble +resist +resource +response +result +retire +retreat +return +reunion +reveal +review +reward +rhythm +rib +ribbon +rice +rich +ride +ridge +rifle +right +rigid +ring +riot +ripple +risk +ritual +rival +river +road +roast +robot +robust +rocket +romance +roof +rookie +room +rose +rotate +rough +round +route +royal +rubber +rude +rug +rule +run +runway +rural +sad +saddle +sadness +safe +sail +salad +salmon +salon +salt +salute +same +sample +sand +satisfy +satoshi +sauce +sausage +save +say +scale +scan +scare +scatter +scene +scheme +school +science +scissors +scorpion +scout +scrap +screen +script +scrub +sea +search +season +seat +second +secret +section +security +seed +seek +segment +select +sell +seminar +senior +sense +sentence +series +service +session +settle +setup +seven +shadow +shaft +shallow +share +shed +shell +sheriff +shield +shift +shine +ship +shiver +shock +shoe +shoot +shop +short +shoulder +shove +shrimp +shrug +shuffle +shy +sibling +sick +side +siege +sight +sign +silent +silk +silly +silver +similar +simple +since +sing +siren +sister +situate +six +size +skate +sketch +ski +skill +skin +skirt +skull +slab +slam +sleep +slender +slice +slide +slight +slim +slogan +slot +slow +slush +small +smart +smile +smoke +smooth +snack +snake +snap +sniff +snow +soap +soccer +social +sock +soda +soft +solar +soldier +solid +solution +solve +someone +song +soon +sorry +sort +soul +sound +soup +source +south +space +spare +spatial +spawn +speak +special +speed +spell +spend +sphere +spice +spider +spike +spin +spirit +split +spoil +sponsor +spoon +sport +spot +spray +spread +spring +spy +square +squeeze +squirrel +stable +stadium +staff +stage +stairs +stamp +stand +start +state +stay +steak +steel +stem +step +stereo +stick +still +sting +stock +stomach +stone +stool +story +stove +strategy +street +strike +strong +struggle +student +stuff +stumble +style +subject +submit +subway +success +such +sudden +suffer +sugar +suggest +suit +summer +sun +sunny +sunset +super +supply +supreme +sure +surface +surge +surprise +surround +survey +suspect +sustain +swallow +swamp +swap +swarm +swear +sweet +swift +swim +swing +switch +sword +symbol +symptom +syrup +system +table +tackle +tag +tail +talent +talk +tank +tape +target +task +taste +tattoo +taxi +teach +team +tell +ten +tenant +tennis +tent +term +test +text +thank +that +theme +then +theory +there +they +thing +this +thought +three +thrive +throw +thumb +thunder +ticket +tide +tiger +tilt +timber +time +tiny +tip +tired +tissue +title +toast +tobacco +today +toddler +toe +together +toilet +token +tomato +tomorrow +tone +tongue +tonight +tool +tooth +top +topic +topple +torch +tornado +tortoise +toss +total +tourist +toward +tower +town +toy +track +trade +traffic +tragic +train +transfer +trap +trash +travel +tray +treat +tree +trend +trial +tribe +trick +trigger +trim +trip +trophy +trouble +truck +true +truly +trumpet +trust +truth +try +tube +tuition +tumble +tuna +tunnel +turkey +turn +turtle +twelve +twenty +twice +twin +twist +two +type +typical +ugly +umbrella +unable +unaware +uncle +uncover +under +undo +unfair +unfold +unhappy +uniform +unique +unit +universe +unknown +unlock +until +unusual +unveil +update +upgrade +uphold +upon +upper +upset +urban +urge +usage +use +used +useful +useless +usual +utility +vacant +vacuum +vague +valid +valley +valve +van +vanish +vapor +various +vast +vault +vehicle +velvet +vendor +venture +venue +verb +verify +version +very +vessel +veteran +viable +vibrant +vicious +victory +video +view +village +vintage +violin +virtual +virus +visa +visit +visual +vital +vivid +vocal +voice +void +volcano +volume +vote +voyage +wage +wagon +wait +walk +wall +walnut +want +warfare +warm +warrior +wash +wasp +waste +water +wave +way +wealth +weapon +wear +weasel +weather +web +wedding +weekend +weird +welcome +west +wet +whale +what +wheat +wheel +when +where +whip +whisper +wide +width +wife +wild +will +win +window +wine +wing +wink +winner +winter +wire +wisdom +wise +wish +witness +wolf +woman +wonder +wood +wool +word +work +world +worry +worth +wrap +wreck +wrestle +wrist +write +wrong +yard +year +yellow +you +young +youth +zebra +zero +zone +zoo`.split(` +`),Ye={orgSeed:e=>`m/83696968'/39'/0'/24'/${e}'`,wallet:(e,t=1)=>`m/86'/${t}'/${e}'/0/0`,segwit:(e,t=1)=>`m/84'/${t}'/${e}'/0/0`,nostr:e=>`m/44'/1237'/${e}'/0/0`,ethereum:e=>`m/44'/60'/${e}'/0/0`},M2=2**31-1,vi=new Map,Ei=new Map,Ou=()=>L2(dc,256);function lh(e,t=0){if(typeof e!="string"||!j2(e,dc)||t&&e.split(" ").length!==t)throw new Error("Invalid lab mnemonic.");return e}function An(e,t){if(!Number.isSafeInteger(e)||e<0||e>M2)throw new Error(`Invalid ${t}.`);return e}const ki=new Map;function hc(e){return ki.has(e)||ki.set(e,D2(lh(e))),ki.get(e)}function Bn(e){return vi.has(e)||vi.set(e,Cn.fromMasterSeed(hc(e))),vi.get(e)}function Z2(e,t){const n=e.derive(t).privateKey;if(!n)throw new Error("BIP-85 path produced no private key.");return En(cs,Ue("bip-entropy-from-k"),n)}function V2(e,t){const n=`${e}|${An(t,"child index")}`;return Ei.has(n)||Ei.set(n,fh(Z2(Bn(e),Ye.orgSeed(t)).slice(0,32),dc)),Ei.get(n)}function aa(e,t=0,n=1){return Se(Bn(e).derive(Ye.wallet(An(t,"account"),n)).privateKey)}function pc(e,t=0,n=1){return Se(Bn(e).derive(Ye.segwit(An(t,"account"),n)).privateKey)}function dh(e,t=0,n=1){return Se(Bn(e).derive(Ye.segwit(An(t,"account"),n)).publicKey)}function Zo(e,t=0){return Se(Bn(e).derive(Ye.nostr(An(t,"account"))).privateKey)}function hh(e){const t=e.toLowerCase(),n=Se(cc(Ue(t)));return`0x${[...t].map((r,s)=>parseInt(n[s],16)>=8?r.toUpperCase():r).join("")}`}const ph=e=>hh(Se(cc(ke.ProjectivePoint.fromHex(e).toRawBytes(!1).slice(1)).slice(-20)));function gh(e,t=0){return Se(Bn(e).derive(Ye.ethereum(An(t,"account"))).privateKey)}const Si=new Map;function q2(e,t=0){const n=`${e}|${t}`;return Si.has(n)||Si.set(n,ph(Bn(e).derive(Ye.ethereum(An(t,"account"))).publicKey)),Si.get(n)}function z2(e,t=0){const n=kn.getPublicKey(Bn(e).derive(Ye.nostr(An(t,"account"))).privateKey);return{pubkey:Se(n),npub:Gn.encode("npub",Gn.toWords(n))}}const xt=["taproot","segwit","nostr","ethereum"],Vo=(e,t)=>["lineage/v0 keyring",`node: ${e}`,...xt.map(n=>`${n}: ${t[n]}`)].join(` +`),F2=["bc","tb","bcrt"],mh=new Uint8Array(32),Qe=e=>{const t=new Uint8Array(4);return new DataView(t.buffer).setUint32(0,e,!0),t},fs=e=>ae(e.length<253?Uint8Array.of(e.length):Uint8Array.of(253,e.length&255,e.length>>8),e),Vr=e=>xe(xe(e)),yh=(e,...t)=>{const n=xe(Ue(e));return xe(ae(n,n,...t))},W2=(e,t)=>e.length===t.length&&e.every((n,r)=>n===t[r]);function ls(e){if(typeof e!="string"||e!==e.toLowerCase())return null;for(const[t,n]of[[Gn,0],[A2,1]])try{const{prefix:r,words:s}=t.decode(e,90);if(s[0]===n&&F2.includes(r))return{network:r,version:n,program:Uint8Array.from(t.fromWords(s.slice(1)))}}catch{}return null}const gc=e=>(e==null?void 0:e.version)===1&&e.program.length===32,mc=e=>(e==null?void 0:e.version)===0&&e.program.length===20,bh=({version:e,program:t})=>ae(Uint8Array.of(e?80+e:0,t.length),t),G2=e=>yh("BIP0322-signed-message",Ue(e)),Ao=new Uint8Array(8),Cu=ae(Ao,fs(Uint8Array.of(106)));function Y2(e,t){const n=bh(e),r=ae(Uint8Array.of(0,32),G2(t));return Vr(ae(Qe(0),Uint8Array.of(1),new Uint8Array(32),Qe(4294967295),fs(r),Qe(0),Uint8Array.of(1),Ao,fs(n),Qe(0)))}function Bo(e,t,n=0){const r=bh(e),s=ae(Y2(e,t),Qe(0));if(e.version===0){const o=ae(Uint8Array.of(25,118,169,20),e.program,Uint8Array.of(136,172));return Vr(ae(Qe(0),Vr(s),Vr(Qe(0)),s,o,Ao,Qe(0),Vr(Cu),Qe(0),Qe(1)))}return yh("TapSighash",Uint8Array.of(0,n),Qe(0),Qe(0),xe(s),xe(Ao),xe(fs(r)),xe(Qe(0)),xe(Cu),Uint8Array.of(0),Qe(0))}const Pu=e=>it.encode(ae(Uint8Array.of(e.length),...e.map(fs)));function X2(e){try{const t=it.decode(e);let n=0;const r=()=>{if(n>=t.length)throw new Error("short");const o=t[n++];if(o<253)return o;if(o>253||n+2>t.length)throw new Error("size");return n+=2,t[n-2]|t[n-1]<<8},s=Array.from({length:r()},()=>{const o=r();if(n+o>t.length)throw new Error("short");return n+=o,t.slice(n-o,n)});return n===t.length?s:null}catch{return null}}function Uu(e,t,n){const r=ls(e);if(gc(r))return Pu([kn.sign(Bo(r,t),n,mh)]);if(!mc(r))throw new Error("BIP-322 here signs for Taproot and P2WPKH addresses only.");const s=ke.sign(Bo(r,t),n).toDERRawBytes();return Pu([ae(s,Uint8Array.of(1)),ke.getPublicKey(n,!0)])}function Nu(e,t,n){const r=ls(e),s=typeof n=="string"?X2(n):null;if(!r||!s)return!1;try{if(gc(r)){const[o]=s;return s.length!==1||!(o.length===64||o.length===65&&o[64]===1)?!1:kn.verify(o.slice(0,64),Bo(r,t,o.length===65?1:0),r.program)}if(mc(r)){const[o,i]=s;return s.length!==2||i.length!==33||o.at(-1)!==1||!W2(uc(xe(i)),r.program)?!1:ke.verify(ke.Signature.fromDER(o.slice(0,-1)),Bo(r,t),i)}}catch{}return!1}const wh=e=>{const t=Ue(e);return cc(ae(Ue(`Ethereum Signed Message: +${t.length}`),t))},xh=e=>typeof e=="string"&&/^0x[0-9a-fA-F]{40}$/.test(e)&&hh(e.slice(2))===e;function J2(e,t){const n=ke.sign(wh(e),t);return`0x${Se(n.toCompactRawBytes())}${(27+n.recovery).toString(16)}`}function Q2(e,t,n){if(!xh(e)||typeof n!="string"||!/^0x[0-9a-f]{130}$/.test(n))return!1;try{const r=ut(n.slice(2)),s=r[64]-27;if(s!==0&&s!==1)return!1;const o=ke.Signature.fromCompact(r.slice(0,64)).addRecoveryBit(s).recoverPublicKey(wh(t));return ph(o.toRawBytes(!1))===e}catch{return!1}}const vh=(e,t)=>xe(Ue(JSON.stringify([0,e,0,1,[],t])));function yc(e){try{const{prefix:t,words:n}=Gn.decode(e,90),r=Gn.fromWords(n);return t==="npub"&&r.length===32&&e===e.toLowerCase()?Se(Uint8Array.from(r)):null}catch{return null}}const ev=(e,t)=>Se(kn.sign(vh(Se(kn.getPublicKey(t)),e),t,mh));function tv(e,t,n){const r=yc(e);try{return!!r&&typeof n=="string"&&/^[0-9a-f]{128}$/.test(n)&&kn.verify(n,vh(r,t),r)}catch{return!1}}const nv={taproot:Uu,segwit:Uu,nostr:(e,t,n)=>ev(t,n),ethereum:(e,t,n)=>J2(t,n)},rv={taproot:Nu,segwit:Nu,nostr:tv,ethereum:Q2};function Eh(e){const t=ls(e.taproot),n=ls(e.segwit);return gc(t)?mc(n)?t.network!==n.network?"its Taproot and SegWit addresses must be on one network":yc(e.nostr)?xh(e.ethereum)?"":"ethereum must be an EIP-55 address":"nostr must be an npub":"segwit must be a P2WPKH address":"taproot must be a Taproot address"}function sv(e,t,n){const r=Eh(t);if(r)throw new Error(`${r[0].toUpperCase()}${r.slice(1)}.`);const s=Vo(e,t);return{...Object.fromEntries(xt.map(o=>[o,t[o]])),proof:Object.fromEntries(xt.map(o=>[o,nv[o](t[o],s,n[o])]))}}const Dr=new Map;function ov(e,t){const n=t.proof&&typeof t.proof=="object"&&!Array.isArray(t.proof)?t.proof:{},r=JSON.stringify([e,...xt.map(s=>[t[s]??null,n[s]??null])]);if(!Dr.has(r)){Dr.size>=1e3&&Dr.clear();let s=Eh(t);if(!s){const o=Vo(e,t),i=xt.find(a=>!rv[a](t[a],o,n[a]));i&&(s=`the ${i} key did not sign this keyring`)}Dr.set(r,s)}return Dr.get(r)}const Lu=e=>xt.map(t=>`${t}:${t==="nostr"?yc(e[t]):t==="ethereum"?e[t].toLowerCase():Se(ls(e[t]).program)}`),bc="lineage/v0",iv=["white","green","black"],$i="names are 1-40 lowercase letters, digits or hyphens (they become domains)",av=/^[a-z0-9](?:[a-z0-9-]{0,38}[a-z0-9])?$/,Ds=e=>typeof e=="string"&&av.test(e),qr=(e,t)=>typeof e=="string"?e.trim().slice(0,t):"";function qo(e){return String(e??"").toLowerCase().normalize("NFKD").replace(/[̀-ͯ]/g,"").replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,40).replace(/-+$/,"")}const zo=e=>e.events.filter(t=>t.protocol===bc);function Sn(e,{upTo:t=1/0,pending:n=!1}={}){const r=new Map,s=[],o=[],i=new Map,a=new Map,c=f=>f.status==="active",u=f=>{if(f.keyring&&!f.keyring.retired)for(const d of Lu(f.keyring.keys))a.delete(d)},l=(f,d,h,p)=>{f.keyring&&!f.keyring.retired&&(u(f),f.keyring.retired={cause:d,by:h,beat:p})};for(const f of e){const d=f.status==="confirmed";if(d?f.height>t:!n)continue;const h=f.metadata&&typeof f.metadata=="object"&&!Array.isArray(f.metadata)?f.metadata:{},p={id:f.id,op:typeof h.op=="string"?h.op.slice(0,20):"?",beat:d?f.height:null,pending:!d,meta:h,parent:f.parent??null,ok:!0,why:"",node:null,root:null,also:[]},g=p.parent?r.get(p.parent):null,b=p.beat??"cued",m=x=>{p.ok=!1,p.why=x},E=x=>g?c(g)?"":`the ${x} is ${g.status}`:`the ${x} is not in this lineage`;let y="";switch(p.op){case"found":if(p.parent)m("a holding has no parent");else if(!Ds(h.name))m($i);else if(s.some(x=>c(x)&&x.name===h.name))m(`an active holding is already named ${h.name}`);else{const x=Ru(f,h.name,null,"holding");r.set(x.id,x),s.push(x),p.node=x.id}break;case"birth":{const x=h.kind==="agent"?"agent":"org";if(y=E("parent"))m(y);else if(g.kind==="agent")m("agents do not give birth");else if(!Ds(h.name))m($i);else if(g.children.some(B=>c(r.get(B))&&r.get(B).name===h.name))m(`${g.name} already has an active ${h.name}`);else{const B=Ru(f,h.name,g,x);B.index=g.children.filter(O=>r.get(O).kind===x).length,g.children.push(B.id),r.set(B.id,B),p.node=B.id}break}case"award":{const x=r.get(h.to);(y=E("issuer"))?m(y):g.kind==="agent"?m("agents do not award belts"):!x||x.id===g.id?m("the recipient must be another node in this lineage"):c(x)?!Ds(h.skill)||!iv.includes(h.belt)?m("an award needs a skill name and a belt (white, green or black)"):(x.badges=x.badges.filter(B=>B.skill!==h.skill),x.badges.push({skill:h.skill,belt:h.belt,by:g.id,beat:b,id:f.id}),p.node=x.id):m(`the recipient is ${x.status}`);break}case"decide":(y=E("decider"))?m(y):qr(h.title,140)?(g.decisions.push({title:qr(h.title,140),why:qr(h.why,400),beat:b,id:f.id}),p.node=g.id):m("a decision needs a title");break;case"make":(y=E("maker"))?m(y):Ds(h.name)?g.made.some(x=>i.get(x).name===h.name)?m(`there is already a ${h.name} by ${g.name}`):(i.set(f.id,{id:f.id,name:h.name,note:qr(h.note,280),maker:g.id,beat:b}),g.made.push(f.id),p.node=g.id):m($i);break;case"graduate":{const x=r.get(h.of);if(y=E("parent"))m(y);else if(!x||x.parent!==g.id)m("only its parent can graduate a child");else if(x.kind!=="org")m("only orgs graduate");else if(!c(x))m(`the child is ${x.status}`);else if(x.edge==="adopted")m("already graduated");else{const B=x.root,O=T=>{T.root=x.id;for(const U of T.children)r.get(U).root===B&&O(r.get(U))};x.edge="adopted",x.graduated=b,p.node=x.id,O(x),s.push(x);const C=T=>{l(T,"graduate",x.id,b);for(const U of T.children)r.get(U).edge==="derived"&&C(r.get(U))};C(x)}break}case"close":if(!g)m(p.parent?"that node is not in this lineage":"a close spends the node it closes");else if(!c(g))m(`already ${g.status}`);else{const x=B=>{B.status="closed",B.closed=b,l(B,"close",g.id,b);for(const O of B.children){const C=r.get(O);C.edge==="derived"&&c(C)&&(p.also.push(C.id),x(C))}};x(g),p.node=g.id}break;case"keyring":{if(y=E("node"))m(y);else if(y=ov(g.id,h))m(y);else{const x=Object.fromEntries(xt.map(C=>[C,h[C]])),B=Lu(x),O=B.findIndex(C=>a.has(C)&&a.get(C)!==g.id);if(O>=0)m(`its ${xt[O]} key is already bound to ${r.get(a.get(B[O])).name}`);else{u(g),g.keyring={id:f.id,beat:b,keys:x,retired:null};for(const C of B)a.set(C,g.id);p.node=g.id}}break}default:m("not a lineage/v0 op")}const v=p.node?r.get(p.node).root:null;p.root=(g==null?void 0:g.root)??v,p.roots=[...new Set([p.root,v].filter(Boolean))],o.push(p)}return{nodes:r,roots:s,log:o,items:i,bound:a}}function Ru(e,t,n,r){return{id:e.id,name:t,kind:r,parent:(n==null?void 0:n.id)??null,root:n?n.root:e.id,edge:n?"derived":null,status:"active",index:null,born:e.status==="confirmed"?e.height:"cued",children:[],badges:[],decisions:[],made:[],keyring:null,graduated:null,closed:null}}function cv(e,t){const n=[],r=e.nodes.get(t),s=(o,i,a)=>{const c=o.root!==t;if(n.push({type:"node",node:o,guide:i,path:o.id===t?"●":`${o.index}'`,away:c}),c)return;const u=o.children.map(f=>e.nodes.get(f)),l=[["agents",u.filter(f=>f.kind==="agent")],["orgs",u.filter(f=>f.kind!=="agent")]].filter(([,f])=>f.length);l.forEach(([f,d],h)=>{const p=h===l.length-1,g=a+(p?" ":"│ ");n.push({type:"group",label:f,guide:a+(p?"└─ ":"├─ ")}),d.forEach((b,m)=>{const E=m===d.length-1;s(b,g+(E?"└─ ":"├─ "),g+(E?" ":"│ "))})})};return r&&s(r,"",""),n}function uv(e,t){const n={orgs:0,agents:0,belts:0,decisions:0,closed:0};for(const r of e.nodes.values())r.root===t&&(r.id!==t&&(n[r.kind==="agent"?"agents":"orgs"]++,r.status==="closed"&&n.closed++),n.belts+=r.badges.length,n.decisions+=r.decisions.length);return n}function Ar(e,t){const n=[];for(let r=e.nodes.get(t);r;r=r.id===r.root?null:e.nodes.get(r.parent))n.unshift(r.name);return n.join(" / ")}function kh(e,t){const n=e.meta,r=s=>{var o;return((o=t.nodes.get(s))==null?void 0:o.name)??(typeof s=="string"?`${s.slice(0,8)}…`:"?")};if(!e.ok)return`${e.op}: ${e.why}`;switch(e.op){case"found":return`found ${n.name}`;case"birth":return`birth ${n.name}${n.kind==="agent"?" (agent)":""} ← ${r(e.parent)}`;case"award":return`award ${n.skill} · ${n.belt} → ${r(n.to)}, from ${r(e.parent)}`;case"decide":return`decide “${qr(n.title,140)}” · ${r(e.parent)}`;case"make":return`make ${n.name} · ${r(e.parent)}`;case"keyring":return`keyring · ${r(e.parent)}`;case"graduate":return`graduate ${r(n.of)} from ${r(e.parent)}`;case"close":return`close ${r(e.parent)}${e.also.length?` and ${e.also.length} derived`:""}`;default:return e.op}}const hn=Se,fv=ae,ca=ut,lv=er,pn="super-testnet-local-v0";class $n{constructor(t){if(!/^[0-9a-f]{64}$/.test(t)||!ke.utils.isValidPrivateKey(t))throw new Error("Invalid test wallet key. Load a Super Testnet v0 backup.");this.kind="test-wallet",this.secret=t,this.pubkey=hn(kn.getPublicKey(t)),this.address=Yr.p2tr.fromPubKey(this.pubkey,"regtest"),this.script=["OP_1",this.pubkey]}static create(){return new $n(hn(ke.utils.randomPrivateKey()))}static load(t){if((t==null?void 0:t.network)!==pn||(t==null?void 0:t.version)!==1||(t==null?void 0:t.kind)!=="test-wallet")throw new Error("Only Super Testnet v0 test-wallet backups are accepted.");return new $n(t.secret)}backup(){return{kind:"test-wallet",version:1,network:pn,secret:this.secret}}sign(t,n,r=0){return br.taproot.sign(this.secret,t,r,n?{extension:n}:{}).hex}}const Ms=50*1e8,Zs="0".repeat(64),Hu=e=>hn(xe(new TextEncoder().encode(JSON.stringify(e)))),or=(e,t)=>`${e}:${t}`,We=e=>Be.encode(e,!1).hex,le=(e,t)=>{if(!e)throw new Error(t)},ju=/^5120[0-9a-f]{64}$/,Vs=/^0014[0-9a-f]{40}$/,Sh=64,bt=8,dv=e=>hn(uc(xe(ca(e))));function hv(e,t){const[n,r]=e.vin[t].witness;return ke.verify(n.slice(0,-2),br.segwit.hash(e,t,{pubkey:r,sigflag:1}),r,{lowS:!0,format:"der"})}const _i=(e,...t)=>{const n=xe(new TextEncoder().encode(e));return xe(fv(n,n,...t))},pv=e=>e<253?Uint8Array.of(e):Uint8Array.of(253,e&255,e>>8);function gv(e,t){const[n,r,s]=e.vin[t].witness,o=ca(s),i=ca(r);if(o.length<33||(o.length-33)%32||i.length>65535||!/^20[0-9a-f]{64}ac/.test(r))return!1;const a=_i("TapLeaf",Uint8Array.of(o[0]&254),pv(i.length),i);let c=a;for(let f=33;f=ke.CURVE.n)return!1;const l=ke.ProjectivePoint.fromHex(`02${hn(o.slice(1,33))}`).add(ke.ProjectivePoint.BASE.multiply(u)).toAffine();return`5120${l.x.toString(16).padStart(64,"0")}`!==We(e.vin[t].prevout.scriptPubKey)||Number(l.y&1n)!==(o[0]&1)?!1:kn.verify(n,br.taproot.hash(e,t,{extension:hn(a)}),r.slice(2,66))}class Fo{constructor(t){if(this.blocks=[],this.mempool=[],this.utxos=new Map,this.transactions=new Map,this.imports=[],t){le(t.network===pn&&t.version===1,"Unsupported local chain version/network."),le(Array.isArray(t.blocks)&&Array.isArray(t.mempool)&&Array.isArray(t.imports??[]),"Invalid chain snapshot.");for(const n of t.imports??[])this.importCoin(n);for(const n of t.blocks)this.acceptBlock(structuredClone(n));this.submitPackage(t.mempool)}}snapshot(){return{network:pn,version:1,blocks:structuredClone(this.blocks),mempool:[...this.mempool],...this.imports.length?{imports:structuredClone(this.imports)}:{}}}importCoin({txid:t,vout:n,value:r,script:s}){le(/^[0-9a-f]{64}$/.test(t)&&Number.isSafeInteger(n)&&n>=0&&Number.isSafeInteger(r)&&r>=330&&r<=Ms&&(ju.test(s)||Vs.test(s)),"Invalid imported coin."),le(!this.utxos.has(or(t,n))&&!this.transactions.has(t)&&!this.imported(t,n),"That coin is already in this chain."),this.utxos.set(or(t,n),{txid:t,vout:n,value:r,scriptPubKey:s,height:0,ranges:ef(this.imports.length,r),inscriptions:[]}),this.imports.push({txid:t,vout:n,value:r,script:s})}imported(t,n){const r=this.imports.find(s=>s.txid===t&&s.vout===n);return r?{value:r.value,scriptPubKey:r.script}:null}coins(t){return[...this.utxos.values()].filter(n=>We(n.scriptPubKey)===We(t))}satLocation(t){for(const n of this.utxos.values()){const r=zs(n.ranges,t);if(r!==null)return{txid:n.txid,vout:n.vout,offset:r}}return null}balance(t){return this.coins(t).reduce((n,r)=>n+r.value,0)}apply(t,n,r=!1){var b,m,E;le(typeof t=="string"&&t.length<4e4&&/^(?:[a-f0-9]{2})+$/.test(t),"Invalid raw transaction.");const s=ie.decode(t),o=ie.util.getTxid(s);le(!this.transactions.has(o),"Duplicate transaction."),le(s.version===2&&s.locktime===0,"Unsupported transaction version or locktime.");const i=!r&&s.vin.some(y=>{var v;return((v=y.witness)==null?void 0:v.length)===3}),a=r?1:i?2:bt,c=r?Sh:i?2:bt;le(s.vin.length>=1&&s.vin.length<=a&&s.vout.length>=1&&s.vout.length<=c,"Unsupported transaction shape.");let u=0;for(const y of s.vout){const v=Number(y.value);le(Number.isSafeInteger(v)&&v>=330&&v<=Ms,"Invalid output amount.");const x=We(y.scriptPubKey);le(ju.test(x)||Vs.test(x),"Only Taproot and P2WPKH outputs are supported."),u+=v}let l,f=[];const d=s.vin.findIndex(y=>{var v;return((v=y.witness)==null?void 0:v.length)===3}),h=s.vin[d<0?0:d];if(r)le(h.txid===Zs&&h.vout===4294967295&&u===Ms,"Invalid local coinbase."),le(We(h.scriptSig)===Be.encode([new TextEncoder().encode(`${pn}:${n}`)],!1).hex,"Wrong coinbase height."),le(!((b=h.witness)!=null&&b.length),"Unexpected coinbase witness.");else{f=s.vin.map(v=>this.utxos.get(or(v.txid,v.vout))),le(f.every(Boolean),"Input is missing or already spent."),le(new Set(s.vin.map(v=>or(v.txid,v.vout))).size===s.vin.length,"Duplicate input."),s.vin.forEach((v,x)=>{var O,C,T;le(v.sequence==="ffffffff"&&We(v.scriptSig)==="","Unsupported input flags."),v.prevout={value:f[x].value,scriptPubKey:f[x].scriptPubKey};const B=We(f[x].scriptPubKey);if(Vs.test(B)){const[U,H]=v.witness??[];le(x!==d&&((O=v.witness)==null?void 0:O.length)===2,"Unsupported witness."),le(/^30[0-9a-f]{12,140}01$/.test(U)&&/^0[23][0-9a-f]{64}$/.test(H)&&dv(H)===B.slice(4),"P2WPKH spends need a SIGHASH_ALL signature by the key they pay.");return}le(((C=v.witness)==null?void 0:C.length)===1||x===d&&((T=v.witness)==null?void 0:T.length)===3,"Unsupported witness."),le(/^[0-9a-f]{128}$/.test(v.witness[0])||!i&&/^[0-9a-f]{128}83$/.test(v.witness[0]),"Only default 64-byte Schnorr signatures, or SIGHASH_SINGLE|ANYONECANPAY outside reveals, are accepted.")}),le(f.reduce((v,x)=>v+x.value,0)-u===de,"v0 requires a fixed 500 sat fee per transaction.");let y={};if(h.witness.length===3){const v=Qa(h.witness),x=d;if(le(Number(s.vout[x].value)===At,"Invalid reveal postage."),le(We(s.vout[x].scriptPubKey)===`5120${v.pubkey}`,"Reveal must return to its signing wallet."),v.parent){const B=d===0?1:0,O=f[B];le((m=O==null?void 0:O.inscriptions)==null?void 0:m.some(C=>C.id===v.parent),"Referenced parent inscription must actually be spent."),le(s.vout.length===2&&Number(s.vout[B].value)===O.value&&We(O.scriptPubKey)===`5120${v.pubkey}`&&We(s.vout[B].scriptPubKey)===We(O.scriptPubKey),"Parent must be owned and preserved in the same wallet.")}else s.vin.length===2&&(le(d===1&&((E=f[0].inscriptions)==null?void 0:E.length)&&v.pointer!==void 0,"Reinscription spend requires correct tag and owned sat."),le(Number(s.vout[0].value)===f[0].value&&We(s.vout[0].scriptPubKey)===We(f[0].scriptPubKey)&&We(f[0].scriptPubKey)===`5120${v.pubkey}`,"Reinscription sat must be returned to owner."));y={pubkey:v.pubkey},l={id:`${o}i0`,txid:o,commitTxid:h.txid,text:v.text,bytes:Array.from(v.bytes),contentType:v.contentType,parent:v.parent,delegate:v.delegate,pointer:v.pointer,metaprotocol:v.metaprotocol,metadata:v.metadata,height:n,value:At}}s.vin.forEach((v,x)=>{let B=!1;try{B=Vs.test(We(f[x].scriptPubKey))?hv(s,x):x===d?gv(s,x)||br.taproot.verify(s,x,y):br.taproot.verify(s,x,{})}catch{}le(B,"Invalid signature or Taproot commitment.")})}const p=rf(s,f,n,r),g=f.flatMap(y=>y.inscriptions??[]);if(l){const y=BigInt(l.pointer??0),v=y{var B;return((B=x.inscription)==null?void 0:B.sat)===l.sat}).length,g.push(l)}return le(g.every(y=>p.some(v=>zs(v,y.sat)!==null)),"Local lab protects inscription sats from fee loss."),r||s.vin.forEach(y=>this.utxos.delete(or(y.txid,y.vout))),s.vout.forEach((y,v)=>{const x=g.filter(B=>zs(p[v],B.sat)!==null);this.utxos.set(or(o,v),{txid:o,vout:v,value:Number(y.value),scriptPubKey:y.scriptPubKey,height:n,ranges:p[v],inscriptions:x,...x.length?{inscription:x[0]}:{}})}),this.transactions.set(o,{txid:o,raw:t,height:n,coinbase:r,tx:s,...l?{inscription:l}:{}}),o}submitPackage(t){le(Array.isArray(t)&&this.mempool.length+t.length<=1e3,"Invalid package or mempool full; mine a block first.");const n=new Map(this.utxos),r=new Map(this.transactions);try{t.forEach(s=>this.apply(s,null))}catch(s){throw this.utxos=n,this.transactions=r,s}this.mempool.push(...t)}acceptBlock(t){var i;le(t.height===this.blocks.length+1&&t.previous===(((i=this.blocks.at(-1))==null?void 0:i.hash)??Zs),"Invalid block ancestry."),le(Number.isSafeInteger(t.time)&&t.time>0&&Array.isArray(t.raws)&&t.raws.length>0&&t.raws.length<=1001,"Invalid block.");const{hash:n,...r}=t;le(Hu(r)===n,"Invalid local block hash.");const s=new Map(this.utxos),o=new Map(this.transactions);try{t.raws.forEach((a,c)=>this.apply(a,t.height,c===0))}catch(a){throw this.utxos=s,this.transactions=o,a}this.blocks.push(t)}mine(t){return this.mineTo([je(Ms,t)])}mineTo(t){var a;const n=new Fo({...this.snapshot(),mempool:[]}),r=this.blocks.length+1,s=ie.create({vin:[{txid:Zs,vout:4294967295,scriptSig:[new TextEncoder().encode(`${pn}:${r}`)]}],vout:t}),o={height:r,previous:((a=this.blocks.at(-1))==null?void 0:a.hash)??Zs,time:Date.now(),raws:[ie.encode(s).hex,...this.mempool]},i={...o,hash:Hu(o)};return n.acceptBlock(i),Object.assign(this,n),i}}const $h="lineage-claim",ua=330,To=e=>Be.encode(e,!1).hex,Ku=e=>({txid:e.txid,vout:e.vout,value:e.value,script:To(e.scriptPubKey)}),Ai=/^[0-9a-f]{64}$/,mv=/^5120[0-9a-f]{64}$/;function Wo(e,t){var n;for(const r of e.utxos.values())if((n=r.inscriptions)!=null&&n.some(s=>s.id===t))return r;return null}function _h(e){return ie.create({vin:[Zt(e.holder.txid,e.holder.vout,e.holder.value,e.holder.script),Zt(e.payer.txid,e.payer.vout,e.payer.value,e.payer.script)],vout:[je(e.holder.value,["OP_1",e.to]),je(e.payer.value-de,["OP_1",e.to])]})}function yv(e,t,n,r=Date.now()){if((n==null?void 0:n.kind)!=="test-wallet")throw new Error("Claims are signed by local test wallets.");const s=Wo(e,t);if(!s)throw new Error("That inscription is not in an unspent output.");if(To(s.scriptPubKey)===To(n.script))throw new Error("The recipient already holds that inscription.");const o=e.coins(n.script).find(c=>{var u;return!((u=c.inscriptions)!=null&&u.length)&&c.value>=de+ua});if(!o)throw new Error("The recipient needs a plain coin for the 500-sat fee. Mine a block to it first.");const i={kind:$h,version:1,inscription:t,carried:s.inscriptions.map(c=>c.id),holder:Ku(s),payer:Ku(o),to:n.pubkey,at:r},a=_h(i);return i.txid=ie.util.getTxid(a),i.sig=n.sign(a,void 0,1),i}function bv(e,t,n){const r=xv(t);if((n==null?void 0:n.kind)!=="test-wallet")throw new Error("Countersigning needs a local test wallet.");if(To(n.script)!==r.holder.script)throw new Error("Only the current holder can countersign.");if(wv(e,r)!=="open")throw new Error("This claim is stale: an input it spends was already spent.");const s=_h(r);return s.vin[1].witness=[r.sig],s.vin[0].witness=[n.sign(s,void 0,0)],e.submitPackage([ie.encode(s).hex]),ie.util.getTxid(s)}function wv(e,t){return e.utxos.has(`${t.holder.txid}:${t.holder.vout}`)&&e.utxos.has(`${t.payer.txid}:${t.payer.vout}`)?"open":"stale"}function xv(e){const t=n=>n&&Ai.test(n.txid)&&Number.isSafeInteger(n.vout)&&n.vout>=0&&Number.isSafeInteger(n.value)&&n.value>=ua&&mv.test(n.script);if((e==null?void 0:e.kind)!==$h||e.version!==1||!/^[0-9a-f]{64}i\d+$/.test(e.inscription)||!Array.isArray(e.carried)||!t(e.holder)||!t(e.payer)||e.payer.value255*s)throw new Error("Length should be <= 255*HashLen");const o=Math.ceil(r/s);n===void 0&&(n=Du);const i=new Uint8Array(o*s),a=En.create(e,t),c=a._cloneInto(),u=new Uint8Array(a.outputLen);for(let l=0;lEv(e,vv(e,t,n),r,s);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const un=BigInt(0),Le=BigInt(1),Ti=BigInt(2),Sv=BigInt(8);function $v(e,t,n,r){const s=e.sqr(n),o=e.sqr(r),i=e.add(e.mul(t.a,s),o),a=e.add(e.ONE,e.mul(t.d,e.mul(s,o)));return e.eql(i,a)}function _v(e,t={}){const n=Ld("edwards",e,t,t.FpFnLE),{Fp:r,Fn:s}=n;let o=n.CURVE;const{h:i}=o;Cr(t,{},{uvRatio:"function"});const a=Ti<r.create(b),u=t.uvRatio||((b,m)=>{try{return{isValid:!0,value:r.sqrt(r.div(b,m))}}catch{return{isValid:!1,value:un}}});if(!$v(r,o,o.Gx,o.Gy))throw new Error("bad curve params: generator point");function l(b,m,E=!1){const y=E?Le:un;return us("coordinate "+b,m,y,a),m}function f(b){if(!(b instanceof p))throw new Error("ExtendedPoint expected")}const d=wo((b,m)=>{const{X:E,Y:y,Z:v}=b,x=b.is0();m==null&&(m=x?Sv:r.inv(v));const B=c(E*m),O=c(y*m),C=r.mul(v,m);if(x)return{x:un,y:Le};if(C!==Le)throw new Error("invZ was invalid");return{x:B,y:O}}),h=wo(b=>{const{a:m,d:E}=o;if(b.is0())throw new Error("bad point: ZERO");const{X:y,Y:v,Z:x,T:B}=b,O=c(y*y),C=c(v*v),T=c(x*x),U=c(T*T),H=c(O*m),K=c(T*c(H+C)),k=c(U+c(E*c(O*C)));if(K!==k)throw new Error("bad point: equation left != right (1)");const $=c(y*v),w=c(x*B);if($!==w)throw new Error("bad point: equation left != right (2)");return!0});class p{constructor(m,E,y,v){this.X=l("x",m),this.Y=l("y",E),this.Z=l("z",y,!0),this.T=l("t",v),Object.freeze(this)}static CURVE(){return o}static fromAffine(m){if(m instanceof p)throw new Error("extended point not allowed");const{x:E,y}=m||{};return l("x",E),l("y",y),new p(E,y,Le,c(E*y))}static fromBytes(m,E=!1){const y=r.BYTES,{a:v,d:x}=o;m=pu(gt(m,y,"point")),zn(E,"zip215");const B=pu(m),O=m[y-1];B[y-1]=O&-129;const C=Fn(B),T=E?a:r.ORDER;us("point.y",C,un,T);const U=c(C*C),H=c(U-Le),K=c(x*U-v);let{isValid:k,value:$}=u(H,K);if(!k)throw new Error("bad point: invalid y coordinate");const w=($&Le)===Le,_=(O&128)!==0;if(!E&&$===un&&_)throw new Error("bad point: x=0 and x_0=1");return _!==w&&($=c(-$)),p.fromAffine({x:$,y:C})}static fromHex(m,E=!1){return p.fromBytes(me("point",m),E)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(m=8,E=!0){return g.createCache(this,m),E||this.multiply(Ti),this}assertValidity(){h(this)}equals(m){f(m);const{X:E,Y:y,Z:v}=this,{X:x,Y:B,Z:O}=m,C=c(E*O),T=c(x*v),U=c(y*O),H=c(B*v);return C===T&&U===H}is0(){return this.equals(p.ZERO)}negate(){return new p(c(-this.X),this.Y,this.Z,c(-this.T))}double(){const{a:m}=o,{X:E,Y:y,Z:v}=this,x=c(E*E),B=c(y*y),O=c(Ti*c(v*v)),C=c(m*x),T=E+y,U=c(c(T*T)-x-B),H=C+B,K=H-O,k=C-B,$=c(U*K),w=c(H*k),_=c(U*k),P=c(K*H);return new p($,w,P,_)}add(m){f(m);const{a:E,d:y}=o,{X:v,Y:x,Z:B,T:O}=this,{X:C,Y:T,Z:U,T:H}=m,K=c(v*C),k=c(x*T),$=c(O*y*H),w=c(B*U),_=c((v+x)*(C+T)-K-k),P=w-$,L=w+$,N=c(k-E*K),j=c(_*P),M=c(L*N),F=c(_*N),ue=c(P*L);return new p(j,M,ue,F)}subtract(m){return this.add(m.negate())}multiply(m){if(!s.isValidNot0(m))throw new Error("invalid scalar: expected 1 <= sc < curve.n");const{p:E,f:y}=g.cached(this,m,v=>Hn(p,v));return Hn(p,[E,y])[0]}multiplyUnsafe(m,E=p.ZERO){if(!s.isValid(m))throw new Error("invalid scalar: expected 0 <= sc < curve.n");return m===un?p.ZERO:this.is0()||m===Le?this:g.unsafe(this,m,y=>Hn(p,y),E)}isSmallOrder(){return this.multiplyUnsafe(i).is0()}isTorsionFree(){return g.unsafe(this,o.n).is0()}toAffine(m){return d(this,m)}clearCofactor(){return i===Le?this:this.multiplyUnsafe(i)}toBytes(){const{x:m,y:E}=this.toAffine(),y=r.toBytes(E);return y[y.length-1]|=m&Le?128:0,y}toHex(){return Se(this.toBytes())}toString(){return``}get ex(){return this.X}get ey(){return this.Y}get ez(){return this.Z}get et(){return this.T}static normalizeZ(m){return Hn(p,m)}static msm(m,E){return Nd(p,s,m,E)}_setWindowSize(m){this.precompute(m)}toRawBytes(){return this.toBytes()}}p.BASE=new p(o.Gx,o.Gy,Le,c(o.Gx*o.Gy)),p.ZERO=new p(un,Le,Le,un),p.Fp=r,p.Fn=s;const g=new Ud(p,s.BITS);return p.BASE.precompute(8),p}function Av(e,t,n={}){if(typeof t!="function")throw new Error('"hash" function param is required');Cr(n,{},{adjustScalarBytes:"function",randomBytes:"function",domain:"function",prehash:"function",mapToCurve:"function"});const{prehash:r}=n,{BASE:s,Fp:o,Fn:i}=e,a=n.randomBytes||Qn,c=n.adjustScalarBytes||(T=>T),u=n.domain||((T,U,H)=>{if(zn(H,"phflag"),U.length||H)throw new Error("Contexts/pre-hash are not supported");return T});function l(T){return i.create(Fn(T))}function f(T){const U=y.secretKey;T=me("private key",T,U);const H=me("hashed private key",t(T),2*U),K=c(H.slice(0,U)),k=H.slice(U,2*U),$=l(K);return{head:K,prefix:k,scalar:$}}function d(T){const{head:U,prefix:H,scalar:K}=f(T),k=s.multiply(K),$=k.toBytes();return{head:U,prefix:H,scalar:K,point:k,pointBytes:$}}function h(T){return d(T).pointBytes}function p(T=Uint8Array.of(),...U){const H=ae(...U);return l(t(u(H,me("context",T),!!r)))}function g(T,U,H={}){T=me("message",T),r&&(T=r(T));const{prefix:K,scalar:k,pointBytes:$}=d(U),w=p(H.context,K,T),_=s.multiply(w).toBytes(),P=p(H.context,_,$,T),L=i.create(w+P*k);if(!i.isValid(L))throw new Error("sign failed: invalid s");const N=ae(_,i.toBytes(L));return gt(N,y.signature,"result")}const b={zip215:!0};function m(T,U,H,K=b){const{context:k,zip215:$}=K,w=y.signature;T=me("signature",T,w),U=me("message",U),H=me("publicKey",H,y.publicKey),$!==void 0&&zn($,"zip215"),r&&(U=r(U));const _=w/2,P=T.subarray(0,_),L=Fn(T.subarray(_,w));let N,j,M;try{N=e.fromBytes(H,$),j=e.fromBytes(P,$),M=s.multiplyUnsafe(L)}catch{return!1}if(!$&&N.isSmallOrder())return!1;const F=p(k,j.toBytes(),N.toBytes(),U);return j.add(N.multiplyUnsafe(F)).subtract(M).clearCofactor().is0()}const E=o.BYTES,y={secretKey:E,publicKey:E,signature:2*E,seed:E};function v(T=a(y.seed)){return gt(T,y.seed,"seed")}function x(T){const U=C.randomSecretKey(T);return{secretKey:U,publicKey:h(U)}}function B(T){return ws(T)&&T.length===i.BYTES}function O(T,U){try{return!!e.fromBytes(T,U)}catch{return!1}}const C={getExtendedPublicKey:d,randomSecretKey:v,isValidSecretKey:B,isValidPublicKey:O,toMontgomery(T){const{y:U}=e.fromBytes(T),H=y.publicKey,K=H===32;if(!K&&H!==57)throw new Error("only defined for 25519 and 448");const k=K?o.div(Le+U,Le-U):o.div(U-Le,U+Le);return o.toBytes(k)},toMontgomerySecret(T){const U=y.secretKey;gt(T,U);const H=t(T.subarray(0,U));return c(H).subarray(0,U)},randomPrivateKey:v,precompute(T=8,U=e.BASE){return U.precompute(T,!1)}};return Object.freeze({keygen:x,getPublicKey:h,sign:g,verify:m,utils:C,Point:e,lengths:y})}function Bv(e){const t={a:e.a,d:e.d,p:e.Fp.ORDER,n:e.n,h:e.h,Gx:e.Gx,Gy:e.Gy},n=e.Fp,r=tr(t.n,e.nBitLength,!0),s={Fp:n,Fn:r,uvRatio:e.uvRatio},o={randomBytes:e.randomBytes,adjustScalarBytes:e.adjustScalarBytes,domain:e.domain,prehash:e.prehash,mapToCurve:e.mapToCurve};return{CURVE:t,curveOpts:s,hash:e.hash,eddsaOpts:o}}function Tv(e,t){const n=t.Point;return Object.assign({},t,{ExtendedPoint:n,CURVE:e,nBitLength:n.Fn.BITS,nByteLength:n.Fn.BYTES})}function Iv(e){const{CURVE:t,curveOpts:n,hash:r,eddsaOpts:s}=Bv(e),o=_v(t,n),i=Av(o,r,s);return Tv(e,i)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const Mr=BigInt(0),ir=BigInt(1),qs=BigInt(2);function Ov(e){return Cr(e,{adjustScalarBytes:"function",powPminus2:"function"}),Object.freeze({...e})}function Cv(e){const t=Ov(e),{P:n,type:r,adjustScalarBytes:s,powPminus2:o,randomBytes:i}=t,a=r==="x25519";if(!a&&r!=="x448")throw new Error("invalid type");const c=i||Qn,u=a?255:448,l=a?32:56,f=BigInt(a?9:5),d=BigInt(a?121665:39081),h=a?qs**BigInt(254):qs**BigInt(447),p=a?BigInt(8)*qs**BigInt(251)-ir:BigInt(4)*qs**BigInt(445)-ir,g=h+p+ir,b=k=>Ee(k,n),m=E(f);function E(k){return rc(b(k),l)}function y(k){const $=me("u coordinate",k,l);return a&&($[31]&=127),b(Fn($))}function v(k){return Fn(s(me("scalar",k,l)))}function x(k,$){const w=C(y($),v(k));if(w===Mr)throw new Error("invalid private or public key received");return E(w)}function B(k){return x(k,m)}function O(k,$,w){const _=b(k*($-w));return $=b($-_),w=b(w+_),{x_2:$,x_3:w}}function C(k,$){us("u",k,Mr,n),us("scalar",$,h,g);const w=$,_=k;let P=ir,L=Mr,N=k,j=ir,M=Mr;for(let ue=BigInt(u-1);ue>=Mr;ue--){const oe=w>>ue&ir;M^=oe,{x_2:P,x_3:N}=O(M,P,N),{x_2:L,x_3:j}=O(M,L,j),M=oe;const Q=P+L,he=b(Q*Q),pe=P-L,Te=b(pe*pe),fe=he-Te,we=N+j,Nt=N-j,rt=b(Nt*Q),Ke=b(we*pe),Lt=rt+Ke,Rr=rt-Ke;N=b(Lt*Lt),j=b(_*b(Rr*Rr)),P=b(he*Te),L=b(fe*(he+b(d*fe)))}({x_2:P,x_3:N}=O(M,P,N)),{x_2:L,x_3:j}=O(M,L,j);const F=o(L);return b(P*F)}const T={secretKey:l,publicKey:l,seed:l},U=(k=c(l))=>(Re(k,T.seed),k);function H(k){const $=U(k);return{secretKey:$,publicKey:B($)}}return{keygen:H,getSharedSecret:(k,$)=>x(k,$),getPublicKey:k=>B(k),scalarMult:x,scalarMultBase:B,utils:{randomSecretKey:U,randomPrivateKey:U},GuBytes:m.slice(),lengths:T}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const Pv=BigInt(1),Mu=BigInt(2),Uv=BigInt(3),Nv=BigInt(5),Lv=BigInt(8),wc=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed"),Ah={p:wc,n:BigInt("0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed"),h:Lv,a:BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec"),d:BigInt("0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3"),Gx:BigInt("0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a"),Gy:BigInt("0x6666666666666666666666666666666666666666666666666666666666666658")};function Bh(e){const t=BigInt(10),n=BigInt(20),r=BigInt(40),s=BigInt(80),o=wc,a=e*e%o*e%o,c=_e(a,Mu,o)*a%o,u=_e(c,Pv,o)*e%o,l=_e(u,Nv,o)*u%o,f=_e(l,t,o)*l%o,d=_e(f,n,o)*f%o,h=_e(d,r,o)*d%o,p=_e(h,s,o)*h%o,g=_e(p,s,o)*h%o,b=_e(g,t,o)*l%o;return{pow_p_5_8:_e(b,Mu,o)*e%o,b2:a}}function Th(e){return e[0]&=248,e[31]&=127,e[31]|=64,e}const Zu=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752");function Rv(e,t){const n=wc,r=Ee(t*t*t,n),s=Ee(r*r*t,n),o=Bh(e*s).pow_p_5_8;let i=Ee(e*r*o,n);const a=Ee(t*i*i,n),c=i,u=Ee(i*Zu,n),l=a===e,f=a===Ee(-e,n),d=a===Ee(-e*Zu,n);return l&&(i=c),(f||d)&&(i=u),Hx(i,n)&&(i=Ee(-i,n)),{isValid:l||f,value:i}}const Ih=tr(Ah.p,{isLE:!0}),Hv={...Ah,Fp:Ih,hash:cs,adjustScalarBytes:Th,uvRatio:Rv},Go=Iv(Hv),Oh=(()=>{const e=Ih.ORDER;return Cv({P:e,type:"x25519",powPminus2:t=>{const{pow_p_5_8:n,b2:r}=Bh(t);return Ee(_e(n,Uv,e)*r,e)},adjustScalarBytes:Th})})(),jv=Ue("lineage/v0"),Ot=(e,t)=>kv(xe,e,jv,Ue(t),32),Yo=e=>{const t=Uint8Array.from(e);return t[0]&=248,t[31]&=127,t[31]|=64,t},Ch=e=>{const t=new Uint8Array(4);return new DataView(t.buffer).setUint32(0,e),t},lt=e=>ae(Ch(e.length),e),xc=e=>ae(lt(Ue("ssh-ed25519")),lt(e)),fa=(e,t)=>`ssh-ed25519 ${it.encode(xc(e))}${t?` ${t}`:""}`,la=e=>`SHA256:${it.encode(xe(xc(e))).replace(/=+$/,"")}`;function Kv(e){const t=ut(e),n=r=>Go.getPublicKey(Ot(t,r));return{ssh:n("ssh"),git:n("git"),dkim:n("dkim"),wg:Oh.getPublicKey(Yo(Ot(t,"wg")))}}function Dv(e){const t=n=>Go.getPublicKey(Ot(e,n));return{"ssh-ca":t("node/ssh-ca"),mtls:t("node/mtls"),noise:Oh.getPublicKey(Yo(Ot(e,"node/noise")))}}function Mv(e,t,n,r){return[["ssh",la(e.ssh),fa(e.ssh,t)],["git",la(e.git),`${t} namespaces="git" ${fa(e.git,t)}`],["dkim",`${n}._domainkey.${r}`,`${n}._domainkey.${r}. IN TXT "v=DKIM1; k=ed25519; p=${it.encode(e.dkim)}"`],["wg",it.encode(e.wg),`[Peer] +# ${t} +PublicKey = ${it.encode(e.wg)}`]]}function Zv(e,t){return[["ssh-ca",la(e["ssh-ca"]),fa(e["ssh-ca"],`lineage-ca@${t}`)],["mtls",it.encode(e.mtls),null],["noise",`mkey:${Se(e.noise)}`,null]]}const Vv=ut("302e020100300506032b657004220420");function Ph(e,t,n){const r=xe(e).slice(0,4);let s=ae(r,r,lt(Ue("ssh-ed25519")),lt(t),lt(ae(e,t)),lt(Ue(n)));s=ae(s,new Uint8Array((8-s.length%8)%8).map((i,a)=>a+1));const o=ae(Ue("openssh-key-v1\0"),lt(Ue("none")),lt(Ue("none")),lt(new Uint8Array(0)),Ch(1),lt(xc(t)),lt(s));return`-----BEGIN OPENSSH PRIVATE KEY----- +${it.encode(o).match(/.{1,70}/g).join(` +`)} +-----END OPENSSH PRIVATE KEY----- +`}const qv=(e,t)=>`-----BEGIN ${e}----- +${it.encode(t).match(/.{1,64}/g).join(` +`)} +-----END ${e}----- +`;function zv(e,t){const n=ut(e),r=s=>{const o=Ot(n,s);return Ph(o,Go.getPublicKey(o),t)};return[["ssh","OpenSSH private key",r("ssh")],["git","OpenSSH private key",r("git")],["dkim","Ed25519 private key (base64)",it.encode(Ot(n,"dkim"))],["wg","Interface entry",`[Interface] +PrivateKey = ${it.encode(Yo(Ot(n,"wg")))}`]]}function Fv(e,t){const n=Ot(e,"node/ssh-ca");return[["ssh-ca","OpenSSH private key",Ph(n,Go.getPublicKey(n),`lineage-ca@${t}`)],["mtls","Private key (PKCS#8 PEM)",qv("PRIVATE KEY",ae(Vv,Ot(e,"node/mtls")))],["noise","noise_private.key",`privkey:${Se(Yo(Ot(e,"node/noise")))}`]]}const Wv=["bip86","tapkey","wallet"],vc=()=>({scheme:"bip86",roots:{},adopted:{}}),Gv=e=>Ro.getPubKey(e)[0];function Uh(e,t,n){return e.scheme==="wallet"?aa(t,n):Ro.getSecKey(e.scheme==="tapkey"?Zo(t,n):aa(t,n))[0]}const Nh=(e,t)=>e.scheme==="tapkey"?Ye.nostr(t):Ye.wallet(t),Yv=(e,t)=>new $n(Uh(e,t,0)),Ce=e=>Be.encode(e,!1).hex;function zt(e,t,n){if(!n)return null;const r=i=>i?{mnemonic:i,account:0,origin:`${n.name} root`,steps:[]}:null;if(n.kind==="holding")return r(e.roots[n.id]);const s=t.nodes.get(n.parent);if(n.kind==="agent"){const i=zt(e,t,s);return i&&{...i,account:n.index+1}}if(n.edge==="adopted")return r(e.adopted[n.id]);const o=zt(e,t,s);return o&&{mnemonic:V2(o.mnemonic,n.index),account:0,origin:o.origin,steps:[...o.steps,`${n.index}'`]}}const Ii=new Map;function Oe(e,t,n){const r=zt(e,t,n);if(!r)return null;const s=`${e.scheme}|${r.mnemonic}|${r.account}`;if(!Ii.has(s)){const{npub:u,pubkey:l}=z2(r.mnemonic,r.account);Ii.set(s,{wallet:new $n(Uh(e,r.mnemonic,r.account)),npub:u,pubkey:l})}const{wallet:o,npub:i,pubkey:a}=Ii.get(s),c=[r.origin,...r.steps].join(" › ");return{wallet:o,npub:i,pubkey:a,scheme:e.scheme,account:r.account,from:c,path:`${c} · ${Nh(e,r.account)}`}}function Ec(e,t,n){const r=zt(e,t,n);if(!r)return null;const s=Oe(e,t,n),o=dh(r.mnemonic,r.account);return{taproot:{address:s.wallet.address,path:Nh(e,r.account)},segwit:{address:Yr.p2wpkh.fromPubKey(o,"regtest"),path:Ye.segwit(r.account)},tapkey:{address:Yr.p2tr.fromPubKey(Gv(s.pubkey),"regtest"),path:Ye.nostr(r.account)},npub:{address:s.npub,path:Ye.nostr(r.account)},ethereum:{address:q2(r.mnemonic,r.account),path:Ye.ethereum(r.account)}}}function Xv(e,t,n){const r=zt(e,t,n);if(!r)return null;const s=Oe(e,t,n),o=Ec(e,t,n),{mnemonic:i,account:a}=r;return{keys:{taproot:o.taproot.address,segwit:o.segwit.address,nostr:o.npub.address,ethereum:o.ethereum.address},secrets:{taproot:s.wallet.secret,segwit:pc(i,a),nostr:Zo(i,a),ethereum:gh(i,a)}}}function kc(e,t,n){const r=Wo(e.chain,n);if(!r)return null;const s=Ce(r.scriptPubKey),o=t.nodes.get(n),i=Oe(e.keys,t,o),a=o&&Oe(e.keys,t,t.nodes.get(o.parent));return i&&Ce(i.wallet.script)===s?{wallet:i.wallet,who:"own"}:e.wallet&&Ce(e.wallet.script)===s?{wallet:e.wallet,who:"lab"}:a&&Ce(a.wallet.script)===s?{wallet:a.wallet,who:"parent"}:{wallet:null,who:"other",script:s}}function ks(e,t){const n=e.nodes.get(t),r=[n];for(const s of n.children){const o=e.nodes.get(s);o.status==="active"&&o.edge==="derived"&&r.push(...ks(e,s))}return r}function da(e,t){const n=[];for(let r=t;r;r=e.nodes.get(r.parent))n.push(r.name);return n.join(".")}function Jv(e,t,n){const r=zt(e,t,n);if(!r)return null;if(n.kind!=="agent")return Zv(Dv(hc(r.mnemonic)),da(t,n));const s=da(t,t.nodes.get(n.parent));return Mv(Kv(Zo(r.mnemonic,r.account)),`${n.name}@${s}`,n.name,s)}const Qv=sh(xe),Zr=(e,t=239)=>Qv.encode(ae(Uint8Array.of(t),ut(e),Uint8Array.of(1))),eE=e=>Gn.encode("nsec",Gn.toWords(ut(e))),tE="0123456789()[],'/*abcdefgh@:$%{}IJKLMNOPQRSTUVWXYZ&+-.;<=>?!^_|~ijklmnopqrstuvwxyzABCDEFGH`#\"\\ ",nE=[0xf5dee51989n,0xa9fdca3312n,0x1bab10e32dn,0x3706b1677an,0x644d626ffdn];function Oi(e){const t=(i,a)=>{const c=i>>35n;return i=(i&0x7ffffffffn)<<5n^BigInt(a),nE.forEach((u,l)=>{c>>BigInt(l)&1n&&(i^=u)}),i};let n=1n,r=0,s=0;for(const i of e){const a=tE.indexOf(i);if(a<0)throw new Error("Invalid descriptor character.");n=t(n,a&31),r=r*3+(a>>5),++s===3&&(n=t(n,r),r=0,s=0)}s&&(n=t(n,r));for(let i=0;i<8;i++)n=t(n,0);n^=1n;let o="";for(let i=0;i<8;i++)o+="qpzry9x8gf2tvdw0s3jn54khce6mua7l"[Number(n>>BigInt(5*(7-i))&31n)];return`${e}#${o}`}function rE(e,t,n){const r=zt(e,t,n);if(!r)return null;const s=Zo(r.mnemonic,r.account),o=aa(r.mnemonic,r.account),i={bip86:`tr(${Zr(o)})`,tapkey:`tr(${Zr(s)})`,wallet:`rawtr(${Zr(o)})`}[e.scheme],a=n.kind==="agent",c=da(t,a?t.nodes.get(n.parent):n);return{seed:a?null:{from:[r.origin,...r.steps].join(" › "),mnemonic:r.mnemonic},account:[["nsec","NIP-06",eE(s)],["taproot","descriptor",Oi(i)],["segwit","descriptor",Oi(`wpkh(${Zr(pc(r.mnemonic,r.account))})`)],["tapkey","descriptor",Oi(`tr(${Zr(s)})`)],["ethereum","private key",`0x${gh(r.mnemonic,r.account)}`]],leaves:a?zv(s,`${n.name}@${c}`):Fv(hc(r.mnemonic),c)}}const ds=1e8,nt=50*ds,Ne=330,Lh=e=>(e/ds).toFixed(8).replace(/\.?0+$/,""),ce=e=>`${Lh(e)} tBTC`;function Sc(e){if(e<1e6)return ce(e);const t=Math.round(e/1e6)*1e6;return`${t===e?"":"≈"}${ce(t)}`}function $c(e){const t=/^\s*(\d{0,7})(?:\.(\d{0,8}))?\s*$/.exec(String(e??""));return!t||!(t[1]||t[2])?null:Number(t[1]||0)*ds+Number((t[2]??"").padEnd(8,"0"))}class Rh{constructor(t,n,r){this.secret=t,this.pubkey=n,this.path=r,this.address=Yr.p2wpkh.fromPubKey(n,"regtest"),this.script=Yr.toScriptPubKey(this.address)}sign(t,n){return[br.segwit.sign(this.secret,t,n,{pubkey:this.pubkey}).hex,this.pubkey]}}const Ci=new Map;function $e(e,t,n){const r=zt(e,t,n);if(!r)return null;const s=`${r.mnemonic}|${r.account}`;return Ci.has(s)||Ci.set(s,new Rh(pc(r.mnemonic,r.account),dh(r.mnemonic,r.account),Ye.segwit(r.account))),Ci.get(s)}function sE(e,t,n){var s;const r=n?t.nodes.get(n):null;return r&&r.root===r.id&&r.status==="active"?((s=$e(e,t,r))==null?void 0:s.script)??null:null}const dr=(e,t)=>{var n,r;return((r=(n=e.mining)==null?void 0:n.rigs)==null?void 0:r[t])??1};function _c(e,t){var n;return((n=e.mining)==null?void 0:n.rule)==="none"?[]:t.roots.filter(r=>r.status==="active"&&dr(e,r.id)>0&&$e(e.keys,t,r)).slice(0,Sh)}function Hh(e,t,n){var i,a;if(((i=e.mining)==null?void 0:i.rule)==="none")return null;if(((a=e.mining)==null?void 0:a.rule)==="last"){const c=sE(e.keys,t,n);return c?[{script:c,value:nt}]:null}const r=_c(e,t),s=r.reduce((c,u)=>c+dr(e,u.id),0);let o=nt;return r.length?r.map((c,u)=>{const l=u===r.length-1?o:Math.floor(nt*dr(e,c.id)/s);return o-=l,{script:$e(e.keys,t,c).script,value:l}}):null}function hs(e,t,n=bt){const r=t+de,s=u=>u===r||u-r>=Ne&&u-r<=nt,o=[...e].sort((u,l)=>u.value-l.value),i=o.find(u=>s(u.value));if(i||n<2)return i?[i]:null;let a=null;for(let u=0;ue.reduce((t,n)=>t+n.value,0);function Bc(e,t=bt){let n=0,r=-de;for(const s of e.map(o=>o.value).sort((o,i)=>i-o).slice(0,t)){r+=s;const o=r<=nt?r:r-nt>=Ne?nt:r-Ne;o>=Ne&&r-o<=nt&&(n=Math.max(n,o))}return n}function jh(e,t,n,r=bt,s="send"){const o=Ac(t),i=n+de,a=Bc(t,r),c=`${s[0].toUpperCase()}${s.slice(1)}`;if(od.value).sort((d,h)=>h-d),l=u.slice(0,r).map((d,h)=>u.slice(0,h+1).reduce((p,g)=>p+g,0)),f=Math.min(...[...u,...u.flatMap((d,h)=>u.slice(h+1).map(p=>d+p)),...l].filter(d=>d>=i));return Number.isFinite(f)&&f-inew Set((e.offers??[]).flatMap(t=>t.payers.map(n=>`${n.txid}:${n.vout}`))),Dh=(e,t)=>e.chain.coins(t.script).filter(n=>{var r;return!((r=n.inscriptions)!=null&&r.length)}),Mh=(e,t,n=bt)=>!!hs(e,t,n),Zh=(e,t,n)=>Mh(Dh(e,t),n);function Tc(e,t,n,r,s="This node",o="send"){const i=Dh(e,t),a=Kh(e),c=hs(i.filter(d=>!a.has(`${d.txid}:${d.vout}`)),r)??hs(i,r);if(!c)throw new Error(jh(s,i,r,bt,o));const u=Ac(c)-r-de,l=ie.create({vin:c.map(d=>Zt(d.txid,d.vout,d.value,d.scriptPubKey)),vout:[je(r,n),...u?[je(u,t.script)]:[]]});c.forEach((d,h)=>{l.vin[h].witness=t instanceof Rh?t.sign(l,h):[t.sign(l,void 0,h)]});const f=ie.encode(l).hex;return e.chain.submitPackage([f]),ie.util.getTxid(f)}function Vh(e,t,n,r,s){const o=t.nodes.get(n),i=t.nodes.get(r);if(!o||!i)throw new Error("Pick who sends and who receives.");if(o.id===i.id)throw new Error(`${o.name} cannot send to itself.`);for(const u of[o,i])if(u.status!=="active")throw new Error(`${u.name} is ${u.status}.`);const a=$e(e.keys,t,o),c=$e(e.keys,t,i);if(!a||!c)throw new Error("A holding that predates lab keys has no SegWit addresses.");if(!Number.isSafeInteger(s)||snt)throw new Error("Send at most 50 test BTC at a time: no output on this chain is bigger than one block reward.");return Tc(e,a,c.script,s,o.name)}function oE(e,t,n){if(!t||!n||Ce(t.script)===Ce(n.script))return 0;let r=0;for(const s of e.chain.coins(t.script)){if(s.value-de[t,...t.log.flatMap((n,r)=>n.ok&&n.op==="graduate"?[Sn(e.slice(0,r),{pending:!0})]:[])];function qh(e,t){const n=new Map;for(const r of e)for(const s of r.nodes.values()){const o=t(r,s);o&&!n.has(o)&&n.set(o,s.id)}return n}const iE=(e,t,n)=>qh(Ic(t,n),(r,s)=>{const o=$e(e,r,s);return o&&Ce(o.script)}),Pi=new Map,aE=(e,t,n)=>qh(Ic(t,n),(r,s)=>{const o=zt(e,r,s),i=o&&`${e.scheme}|${o.mnemonic}|${o.account}`;return i&&!Pi.has(i)&&Pi.set(i,Ce(Oe(e,r,s).wallet.script)),i?Pi.get(i):null}),Oc=(e,t)=>e.coins(t.script).filter(n=>{var r;return!((r=n.inscriptions)!=null&&r.length)}).reduce((n,r)=>n+r.value,0);function cE(e,t,n,r){for(const s of Ic(t,n))for(const o of s.nodes.values()){const i=Oe(e,s,o);if(i&&Ce(i.wallet.script)===r)return{node:o.id,wallet:i.wallet}}return null}function uE(e,t,n=new Map,r=new Map){var a;const s=[],o=c=>t.get(Ce(c))??null,i=c=>c.reduce((u,l)=>u+l.value,0);for(const{txid:c,tx:u,height:l,coinbase:f}of e.transactions.values()){const d=u.vout.map(v=>({script:Ce(v.scriptPubKey),node:o(v.scriptPubKey),value:Number(v.value)}));if(f){d.forEach((v,x)=>{v.node&&s.push({kind:"mine",key:`${c}:${x}`,txid:c,beat:l,from:null,to:v.node,amount:v.value,fee:0,change:0})});continue}const h=u.vin.map(v=>{var B,O;const x=((B=e.transactions.get(v.txid))==null?void 0:B.tx.vout[v.vout])??((O=e.imported)==null?void 0:O.call(e,v.txid,v.vout));return x?{node:o(x.scriptPubKey),value:Number(x.value)}:null}),p=r.get(c);if(p&&h.length>1&&h[0]&&h.slice(1).every(v=>(v==null?void 0:v.node)===p.buyer)){s.push({kind:"deal",key:c,txid:c,beat:l,from:p.buyer,to:p.seller,amount:p.price,item:p.item,fee:i(h)-i(d),change:i(d.filter(v=>v.node===p.buyer))});continue}if(h.every(v=>v&&!v.node)){const v=d.filter(x=>x.node);v.length&&s.push({kind:"fund",key:c,txid:c,beat:l,from:null,to:v[0].node,amount:v[0].value,fee:i(h)-i(d),change:i(d.filter(x=>!x.node))});continue}const g=(a=h[0])==null?void 0:a.node;if(!g||!h.every(v=>(v==null?void 0:v.node)===g))continue;const b=d.filter(v=>v.node!==g),m=d.filter(v=>v.node===g),E=i(h)-i(d),y={key:c,txid:c,beat:l,from:g,fee:E};b.length&&b.every(v=>n.get(v.script)===g)?s.push({...y,kind:"gas",to:g,amount:i(b),change:i(m)}):b.length?s.push({...y,kind:"pay",to:b[0].node,amount:b[0].value,change:i(m)}):s.push({...y,kind:"move",to:g,amount:i(m),change:0})}return s}function ha(e,t,n=1/0){const r=new Map;for(const{txid:o,tx:i,height:a,coinbase:c}of e.transactions.values())if(!(a===null?n!==1/0:a>n)){if(!c)for(const u of i.vin)r.delete(`${u.txid}:${u.vout}`);i.vout.forEach((u,l)=>{const f=t.get(Ce(u.scriptPubKey));f&&r.set(`${o}:${l}`,{node:f,value:Number(u.value)})})}const s=new Map;for(const{node:o,value:i}of r.values())s.set(o,(s.get(o)??0)+i);return s}const pa="lineage-offer",Vu=/^[0-9a-f]{64}$/,Ui=/^[0-9a-f]{64}i0$/,qu=/^5120[0-9a-f]{64}$/,Ni=/^0014[0-9a-f]{40}$/,zu=e=>({txid:e.txid,vout:e.vout,value:e.value,script:Ce(e.scriptPubKey)}),Fu=(e,t)=>!e.utxos.has(`${t.txid}:${t.vout}`),zh=e=>{const t=zo(new bs(e.chain));return{events:t,state:Sn(t,{pending:!0})}};function Fh(e){return ie.create({vin:[e.holder,...e.payers].map(t=>Zt(t.txid,t.vout,t.value,t.script)),vout:[je(e.holder.value,e.to),...e.price?[je(e.price,e.pay)]:[],...e.change?[je(e.change,e.back)]:[]]})}function Cc(e,t,n,r){const s=Wo(e.chain,r),o=s&&cE(e.keys,t,n,Ce(s.scriptPubKey));return o?{coin:s,node:n.nodes.get(o.node),wallet:o.wallet}:null}function Wh(e,t,n,r,s=Date.now()){const{events:o,state:i}=zh(e),a=i.items.get(t),c=i.nodes.get(n);if(!a)throw new Error("Pick an item to make an offer on.");if(!c)throw new Error("Pick who makes the offer.");if(!Number.isSafeInteger(r)||r<0||r>0&&rnt)throw new Error("Offer at most 50 test BTC: no output on this chain is bigger than one block reward.");const u=Cc(e,o,i,t),l=u==null?void 0:u.node;if(!l)throw new Error(`No node in this lab holds ${a.name}.`);if(l.id===c.id)throw new Error(`${c.name} already holds ${a.name}.`);for(const y of[c,l])if(y.status!=="active")throw new Error(`${y.name} is ${y.status}.`);const f=$e(e.keys,i,c),d=$e(e.keys,i,l),h=Oe(e.keys,i,c);if(!f||!d||!h)throw new Error("A holding that predates lab keys cannot trade.");if((e.offers??[]).some(y=>y.item===t&&y.buyer===c.id&&ga(e,i,y)==="open"))throw new Error(`${c.name} already has an open offer on ${a.name}. Withdraw it first.`);const p=e.chain.coins(f.script),g=Kh(e),b=hs(p.filter(y=>!g.has(`${y.txid}:${y.vout}`)),r,bt-1)??hs(p,r,bt-1);if(!b)throw new Error(jh(c.name,p,r,bt-1,"offer"));const m={kind:pa,version:1,item:t,buyer:c.id,seller:l.id,price:r,holder:zu(u.coin),payers:b.map(zu),to:Ce(h.wallet.script),pay:Ce(d.script),back:Ce(f.script),change:b.reduce((y,v)=>y+v.value,0)-r-de,at:s},E=Fh(m);return m.txid=ie.util.getTxid(E),m.witnesses=b.map((y,v)=>f.sign(E,v+1)),(e.offers??(e.offers=[])).push(m),m}function Pc(e,t,n){var c,u;const r=l=>{var f;return((f=t.nodes.get(l))==null?void 0:f.name)??"a node"},s=((c=t.items.get(n.item))==null?void 0:c.name)??"the item";if(Fu(e.chain,n.holder))return`${s} has moved since`;if(n.payers.some(l=>Fu(e.chain,l)))return`${r(n.buyer)} has spent a coin the offer promised`;for(const l of[n.buyer,n.seller]){const f=t.nodes.get(l);if((f==null?void 0:f.status)!=="active")return`${r(l)} is ${(f==null?void 0:f.status)??"gone"}`}const o=t.nodes.get(n.buyer),i=t.nodes.get(n.seller),a=l=>l?Ce(l.script):"";return a((u=Oe(e.keys,t,o))==null?void 0:u.wallet)!==n.to||a($e(e.keys,t,o))!==n.back?`${o.name} has new keys since`:n.price&&a($e(e.keys,t,i))!==n.pay?`${i.name} has new keys since`:""}const ga=(e,t,n)=>e.chain.transactions.has(n.txid)?"done":Pc(e,t,n)?"stale":"open";function fE(e,t){const n=(e.offers??[]).find(c=>c.txid===t);if(!n)throw new Error("That offer is gone.");if(e.chain.transactions.has(n.txid))throw new Error("That offer was already accepted.");const{events:r,state:s}=zh(e),o=Pc(e,s,n);if(o)throw new Error(`This offer is stale: ${o}.`);const i=Cc(e,r,s,n.item);if((i==null?void 0:i.node.id)!==n.seller)throw new Error("Only the holder can accept.");const a=Fh(n);return n.witnesses.forEach((c,u)=>{a.vin[u+1].witness=c}),a.vin[0].witness=[i.wallet.sign(a,void 0,0)],e.chain.submitPackage([ie.encode(a).hex]),n}function lE(e,t){const n=(e.offers??[]).find(r=>r.txid===t);if(!n)throw new Error("That offer is gone.");if(e.chain.transactions.has(n.txid))throw new Error("That offer was accepted: it is on the chain now.");return e.offers=e.offers.filter(r=>r!==n),n}function dE(e){const t=(r,s)=>r&&Vu.test(r.txid)&&Number.isSafeInteger(r.vout)&&r.vout>=0&&Number.isSafeInteger(r.value)&&r.value>=Ne&&r.value<=nt&&s.test(r.script),n=r=>Number.isSafeInteger(r)&&(r===0||r>=Ne&&r<=nt);if((e==null?void 0:e.kind)!==pa||e.version!==1||!Ui.test(e.item)||!Ui.test(e.buyer)||!Ui.test(e.seller)||e.buyer===e.seller||!n(e.price)||!n(e.change)||!t(e.holder,qu)||!Array.isArray(e.payers)||!e.payers.length||e.payers.length>bt-1||!e.payers.every(r=>t(r,Ni))||!qu.test(e.to)||!Ni.test(e.pay)||!Ni.test(e.back)||!Vu.test(e.txid)||!Array.isArray(e.witnesses)||e.witnesses.length!==e.payers.length||!e.witnesses.every(r=>Array.isArray(r)&&r.length===2&&/^30[0-9a-f]{12,140}01$/.test(r[0])&&/^0[23][0-9a-f]{64}$/.test(r[1]))||!Number.isSafeInteger(e.at))throw new Error("Invalid offer.");return{kind:pa,version:1,item:e.item,buyer:e.buyer,seller:e.seller,price:e.price,holder:{...e.holder},payers:e.payers.map(r=>({...r})),to:e.to,pay:e.pay,back:e.back,change:e.change,at:e.at,txid:e.txid,witnesses:e.witnesses.map(r=>[...r])}}const Xo="orgchain:lab:v1",hE=["each",10,30,60,"manual"];function Ss(e={tempo:"each",nextAt:null}){const{tempo:t,nextAt:n}=e??{},r=typeof t=="number";if(!hE.includes(t)||!(n===null||r&&Number.isSafeInteger(n)&&n>0))throw new Error("Invalid clock.");return{tempo:t,nextAt:n}}function Gh(e){const t=vc();for(const n of["roots","adopted"])for(const[r,s]of Object.entries((e==null?void 0:e[n])??{})){if(!/^[0-9a-f]{64}i0$/.test(r))throw new Error("Invalid lab keys.");t[n][r]=lh(s,24)}if(t.scheme=(e==null?void 0:e.scheme)??(Object.keys(t.roots).length?"wallet":"bip86"),!Wv.includes(t.scheme))throw new Error("Invalid lab keys.");return t}const pE=["split","last","none"];function $s(e){const t=(e==null?void 0:e.rule)??"split",n={};if(!pE.includes(t))throw new Error("Invalid mining rule.");for(const[r,s]of Object.entries((e==null?void 0:e.rigs)??{})){if(!/^[0-9a-f]{64}i0$/.test(r)||!Number.isSafeInteger(s)||s<0||s>9)throw new Error("Invalid hashrate.");s!==1&&(n[r]=s)}return{rule:t,rigs:n}}function Yh(e=[]){if(!Array.isArray(e)||e.length>1e3)throw new Error("Invalid offers.");const t=e.map(dE);if(new Set(t.map(n=>n.txid)).size!==t.length)throw new Error("Invalid offers.");return t}const _s=()=>({wallet:null,chain:new Fo,clock:Ss(),keys:vc(),mining:$s(),offers:[]});function Xh(e){if(!e)return _s();const t=JSON.parse(e);if((t==null?void 0:t.kind)!=="orgchain-lab"||t.network!==pn||t.version!==1)throw new Error("That is not an Orgchain v1 lab.");return{wallet:t.wallet?$n.load(t.wallet):null,chain:new Fo(t.chain),clock:Ss(t.clock),keys:Gh(t.keys),mining:$s(t.mining),offers:Yh(t.offers)}}const Jh=e=>{var t;return JSON.stringify({kind:"orgchain-lab",network:pn,version:1,wallet:((t=e.wallet)==null?void 0:t.backup())??null,chain:e.chain.snapshot(),clock:Ss(e.clock),keys:Gh(e.keys),mining:$s(e.mining),offers:Yh(e.offers)})};function gE(e,t,n){var r;e.mining=$s({...e.mining,rigs:{...(r=e.mining)==null?void 0:r.rigs,[t]:n}})}function mE(e,t){e.mining=$s({...e.mining,rule:t})}const Uc=()=>Xh(localStorage.getItem(Xo));function yE(e){try{localStorage.setItem(Xo,Jh(e))}catch{throw new Error("Browser storage is full or unavailable, so nothing was saved. Save a backup, then reset.")}}async function bE(e,{locks:t=(s=>(s=globalThis.navigator)==null?void 0:s.locks)(),read:n=Uc,save:r=yE}={}){if(!t)throw new Error("Orgchain needs Web Locks: open it over HTTPS or on localhost.");return t.request(Xo,async()=>{const o=n(),i=await e(o);return i!==!1&&r(o),{lab:o,result:i}})}function vt(e,t=null){e.wallet||(e.wallet=$n.create());const n=t!=null&&t.length?e.chain.mineTo(t.map(r=>je(r.value,r.script))):e.chain.mine(e.wallet.script);return e.clock=Ss({tempo:e.clock.tempo,nextAt:null}),n}function Nr(e,t=Date.now()){const{tempo:n,nextAt:r}=e.clock;typeof n=="number"&&e.chain.mempool.length&&r===null&&(e.clock={tempo:n,nextAt:t+n*1e3})}function wE(e,t,n=Date.now(),r=null){e.clock=Ss({tempo:t,nextAt:null}),t==="each"&&e.chain.mempool.length?vt(e,r):Nr(e,n)}function xE(e,t=Date.now(),n=null){const{tempo:r,nextAt:s}=e.clock;return typeof r!="number"||!e.chain.mempool.length?!1:s===null?(Nr(e,t),!0):t`found ${e.name}`,birth:e=>`birth ${e.name}`,award:e=>`award ${e.skill} ${e.belt}`,decide:e=>`decide ${e.title}`,make:e=>`make ${e.name}`,keyring:(e,t)=>Vo(t,e),graduate:()=>"graduate",close:()=>"close"};function EE(e,t={}){if(!Object.hasOwn(Wu,e))throw new Error("Unknown verb.");const n={op:e};for(const s of Wu[e]){const o=t[s];typeof o=="string"&&o.trim()&&(n[s]=o.trim())}const r=e==="keyring"&&t.proof&&typeof t.proof=="object"?t.proof:null;return r&&(n.proof=Object.fromEntries(xt.filter(s=>typeof r[s]=="string").map(s=>[s,r[s]]))),n}function Qh(e,t){const n=at(e),r=n.nodes.get(t),s=r&&Xv(e.keys,n,r);if(!s)throw new Error(`${(r==null?void 0:r.name)??"That node"} predates lab keys, so it has no keys to list.`);return sv(t,s.keys,s.secrets)}function Nc(e,t,n,r={}){if(t==="keyring"){for(let s=e.nodes.get(n);s;s=s.edge==="derived"?e.nodes.get(s.parent):null)if(s.graduated==="cued")return`${s.name}'s graduation is cued, and it changes ${s.id===n?"its":`${e.nodes.get(n).name}'s`} keys. Publish the keyring once it lands`}if(t==="graduate"&&e.nodes.has(r.of)){const s=new Set(ks(e,r.of).map(i=>i.id)),o=e.log.find(i=>i.pending&&i.ok&&i.op==="keyring"&&s.has(i.node));if(o)return`${e.nodes.get(o.node).name}'s keyring is cued. Graduate ${e.nodes.get(r.of).name} once it lands, so the graduation retires it`}return""}const at=e=>Sn(zo(new bs(e.chain)),{pending:!0});function e0(e,t,n,r){const s=EE(t,r),o=zo(new bs(e.chain)),i={id:"check",status:"pending",height:null,metadata:s,parent:n??null,protocol:bc},{ok:a,why:c}=Sn([...o,i],{pending:!0}).log.at(-1);if(!a)throw new Error(`${c[0].toUpperCase()}${c.slice(1)}.`);return s}const ma=At+2*de+330,t0=1e5,Lc=1e4,Rc=(e,t=0)=>At+2*de+(e==="birth"?1:e==="graduate"?Math.max(0,t-1):0)*de+330,kE=(e,t=0)=>Rc(e,t)-330,Br=(e,t,n)=>e.chain.coins(t.script).find(r=>{var s;return!((s=r.inscriptions)!=null&&s.length)&&r.value>=n}),ya=e=>Zt(e.txid,e.vout,e.value,e.scriptPubKey),n0=(e,t)=>(t.forEach((n,r)=>{e.vin[r].witness=[n.sign(e,void 0,r)]}),ie.encode(e).hex);function Hc(e){e.keys??(e.keys=vc()),e.wallet||(e.wallet=$n.create()),Br(e,e.wallet,t0+de+330)||vt(e)}function r0(e,t,n=ma,r=t0){if(t===e.wallet||Br(e,t,n))return;const s=Br(e,e.wallet,r+de+330),o=ie.create({vin:[ya(s)],vout:[je(r,t.script),je(s.value-r-de,e.wallet.script)]});e.chain.submitPackage([n0(o,[e.wallet])])}function Gu(e,t,n,r,s){if(r===e.wallet||Br(e,r,s))return;const o=n&&$e(e.keys,t,n);if(!o)return r0(e,r,s);Tc(e,o,r.script,Math.max(Lc,s),n.name)}function SE(e,t,n,r,s){if(r===e.wallet||Br(e,r,s))return!0;const o=n&&$e(e.keys,t,n);return!o||Zh(e,o,Math.max(Lc,s))}function s0(e,t,n,r,s={}){var l,f;const o=r?t.nodes.get(r):null,i=o&&((l=kc(e,t,r))==null?void 0:l.wallet);if(n==="found"||!i)return"";const a=n==="graduate"?t.nodes.get(s.of):null,c=a&&Oe(e.keys,t,a)?ks(t,a.id).length:0;if(!SE(e,t,o,i,Rc(n,c))){const d=t.nodes.get(o.parent);return`${o.name} has no test BTC for gas. ${d?`${d.name} can send some`:((f=e.mining)==null?void 0:f.rule)==="none"?"Fund it from the lab wallet":"It earns some each beat it mines"}`}const u=c?$e(e.keys,t,a):null;return u&&!Mh(e.chain.coins(u.script).filter(d=>d.value-de>=Ne).map(d=>({value:d.value-de})),Lc)?`${a.name} needs test BTC of its own to claim its new root. Send it some first`:""}function Yu(e,t,n,r,s=n){const o=Wo(e.chain,t),i=Br(e,s,de+330),a=ie.create({vin:[ya(o),ya(i)],vout:[je(o.value,r.script),je(i.value-de,s.script)]});e.chain.submitPackage([n0(a,[n,s])])}function Xu(e,t,n,r,s){return new ox(e.chain,t).inscribe(vE[n](s,r),r??null,s,{metaprotocol:bc})}const Jo=(e,t)=>{var r;const n=at(e);return Hh(e,n,((r=n.nodes.get(t))==null?void 0:r.root)??null)},Qo=(e,t)=>Hh(e,at(e),t);function jc(e){var r,s,o;const t=at(e),n=new Map;for(const i of t.nodes.values())for(const a of[$e(e.keys,t,i),(r=Oe(e.keys,t,i))==null?void 0:r.wallet])a&&n.set(Ce(a.script),i.root);for(const i of[...e.chain.mempool].reverse()){const a=e.chain.transactions.get(ie.util.getTxid(i));if(a!=null&&a.inscription){const c=(s=t.log.find(u=>u.id===a.inscription.id))==null?void 0:s.root;if(c)return c;continue}for(const c of(a==null?void 0:a.tx.vin)??[]){const u=((o=e.chain.transactions.get(c.txid))==null?void 0:o.tx.vout[c.vout])??e.chain.imported(c.txid,c.vout),l=u&&n.get(Ce(u.scriptPubKey));if(l)return l}}return null}function Ju(e,t,n){var s;const r=kc(e,t,n);if(!(r!=null&&r.wallet))throw new Error(`No key in this lab holds ${((s=t.nodes.get(n))==null?void 0:s.name)??"that node"}'s inscription.`);return r.wallet}function o0(e,t,n,r){if(t==="found"){const l=Ou(),f=Yv(e.keys,l);r0(e,f,ma,ma);const d=Xu(e,f,t,null,r);return e.keys.roots[d]=l,d}const s=at(e),o=Ju(e,s,n),i=s.nodes.get(n),a=t==="graduate"?s.nodes.get(r.of):null,c=a&&Oe(e.keys,s,a)?ks(s,a.id).map(l=>[l.id,Ju(e,s,l.id)]):[];Gu(e,s,i,o,Rc(t,c.length));const u=Xu(e,o,t,n,r);if(t==="birth"){const l=at(e),f=Oe(e.keys,l,l.nodes.get(u));f&&Yu(e,u,o,f.wallet)}if(c.length){e.keys.adopted[a.id]=Ou();const l=at(e);for(const[f,d]of c){const h=Oe(e.keys,l,l.nodes.get(f)).wallet;if(oE(e,$e(e.keys,s,s.nodes.get(f)),$e(e.keys,l,l.nodes.get(f))),f!==a.id){Yu(e,f,d,h,o);continue}Gu(e,l,l.nodes.get(f),h,de+330),bv(e.chain,yv(e.chain,f,h),d)}}return u}function $E(e,t,n,r,s=Date.now()){const o=Nc(at(e),t,n??null,r??{});if(o)throw new Error(`${o}.`);const i=e0(e,t,n,t==="keyring"?Qh(e,n):r),a=s0(e,at(e),t,n??null,i);if(a)throw new Error(`${a}.`);Hc(e);const c=o0(e,t,n??null,i);return e.clock.tempo==="each"?vt(e,Jo(e,n??c)):Nr(e,s),c}function _E(e,t,n,r,s=Date.now()){const o=Vh(e,at(e),t,n,r);return e.clock.tempo==="each"?vt(e,Jo(e,t)):Nr(e,s),o}const AE=(e,t,n,r,s=Date.now())=>Wh(e,t,n,r,s);function BE(e,t,n=Date.now()){const r=fE(e,t);return e.clock.tempo==="each"?vt(e,Jo(e,r.seller)):Nr(e,n),r}const TE=(e,t)=>lE(e,t);function IE(e,t,n,r=Date.now()){const s=at(e),o=s.nodes.get(t);if(!o||o.root!==o.id)throw new Error("Pick a holding to fund.");if(o.status!=="active")throw new Error(`${o.name} is closed.`);const i=$e(e.keys,s,o);if(!i)throw new Error("A holding that predates lab keys has no SegWit address to fund.");if(!Number.isSafeInteger(n)||nnt)throw new Error("Fund at most 50 test BTC at a time: no output on this chain is bigger than one block reward.");Hc(e),Zh(e,e.wallet,n)||vt(e);const a=Tc(e,e.wallet,i.script,n,"The lab wallet","fund");return e.clock.tempo==="each"?vt(e,Jo(e,t)):Nr(e,r),a}const ba="yolopreneur",OE=[[["found",null,{name:"yolopreneur"}]],[["birth","yolopreneur",{name:"well-known",kind:"org"}],["birth","yolopreneur",{name:"time",kind:"org"}],["keyring","yolopreneur",{}]],[["send","yolopreneur",{to:"time",amount:40}],["send","yolopreneur",{to:"well-known",amount:10}],["birth","well-known",{name:"mailr",kind:"org"}],["birth","well-known",{name:"lineage",kind:"org"}],["birth","time",{name:"luna",kind:"agent"}],["birth","time",{name:"sol",kind:"agent"}],["birth","time",{name:"astra",kind:"agent"}]],[["send","well-known",{to:"lineage",amount:2}],["birth","time",{name:"docscope",kind:"org"}],["birth","time",{name:"dollhouse",kind:"org"}],["birth","time",{name:"doodleloop",kind:"org"}],["birth","time",{name:"hearthframe",kind:"org"}]],[["send","time",{to:"sol",amount:1}],["send","time",{to:"luna",amount:.5}],["award","time",{to:"sol",skill:"launch",belt:"green"}],["award","time",{to:"luna",skill:"post",belt:"white"}],["decide","yolopreneur",{title:"Every venture gets a page",why:".yolopreneur.lol, served from one pages branch."}],["make","sol",{name:"launch-kit",note:"The page, the post and the checklist every venture launches with."}],["keyring","sol",{}],["keyring","lineage",{}]],[["graduate","well-known",{of:"lineage"}],["decide","lineage",{title:"Lineage gets its own org",why:"Its own repo on Teahub now, lineage.llc later: adopted, not derived."}],["offer","lineage",{item:"launch-kit",price:.1}]]];function CE(e){Hc(e),e.chain.mempool.length&&vt(e);const t={},n={};for(const r of OE){for(const[s,o,i]of r){if(s==="send"){Vh(e,at(e),t[o],t[i.to],i.amount*ds);continue}if(s==="offer"){Wh(e,n[i.item],t[o],i.price*ds);continue}const a=s==="keyring"?Qh(e,t[o]):Object.fromEntries(Object.entries(i).map(([l,f])=>[l,l==="to"||l==="of"?t[f]:f])),c=o?t[o]:null,u=o0(e,s,c,e0(e,s,c,a));(s==="found"||s==="birth")&&(t[i.name]=u),s==="make"&&(n[i.name]=u)}vt(e,Qo(e,t[ba]))}return t[ba]}const D=e=>document.getElementById(e);function A(e,t={},...n){const r=document.createElement(e);for(const[s,o]of Object.entries(t))o==null||o===!1||(s==="class"?r.className=o:s==="text"?r.textContent=o:s.startsWith("on")?r.addEventListener(s.slice(2),o):r.setAttribute(s,o===!0?"":String(o)));for(const s of n.flat(1/0))s!=null&&s!==!1&&s!==""&&r.append(s instanceof Node?s:String(s));return r}const Wr=(e,t)=>`${e} ${t}${e===1?"":"s"}`,Tt=e=>e==="cued"?"cued":`beat ${e}`,PE=e=>new Date(e).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit"}),Qu=e=>JSON.stringify(e,(t,n)=>typeof n=="bigint"?String(n):n,2),I={holding:null,node:null,event:null,tx:null,beat:null,verb:"birth",busy:!1,replay:null,closing:null,reveal:null};let q=_s(),Io=new bs(q.chain),ln=[],z=Sn([]),ze=z,De={owner:new Map,ledger:[],now:new Map,view:new Map},gn=new Map;const tt=()=>q.chain.blocks.length,wa=()=>ln.filter(e=>e.status==="pending").length,xa=e=>De.ledger.filter(t=>t.beat===null&&t.kind===e).length,Ys=[["pay","cued send"],["deal","cued deal"],["fund","cued deposit"]],UE=()=>wa()+Ys.reduce((e,[t])=>e+xa(t),0),_n=e=>{var t;return((t=z.items.get(e))==null?void 0:t.name)??"an item"},va=()=>q.offers??[],Xs=e=>De.view.get(e)??0,i0=e=>De.now.get(e)??0,X=(e,t=z)=>e?t.nodes.get(e)??null:null,NE=e=>{var t;return!!e&&(e.root===I.holding||((t=X(e.parent))==null?void 0:t.root)===I.holding)},Kc=e=>Object.assign(I,{event:null,tx:null,closing:null,reveal:null},e),Lr=e=>{Kc(e),ei()};function be(e,t=!1){const n=D("say");n.textContent=e,n.classList.toggle("bad",t)}function a0(){try{q=Uc()}catch(e){q=_s(),be(`This browser's saved lab could not be read (${e.message}) Load a backup, or reset to start over.`,!0)}Dc()}function Dc(){var n;Io=new bs(q.chain),ln=zo(Io),z=Sn(ln,{pending:!0}),I.beat!==null&&I.beat>=tt()&&(I.beat=null),X(I.holding)||(I.holding=((n=z.roots.filter(r=>r.kind==="holding").at(-1)??z.roots.at(-1))==null?void 0:n.id)??null),NE(X(I.node))||(I.node=I.holding),I.event&&!z.log.some(r=>r.id===I.event)&&(I.event=null),ze=I.beat===null?z:Sn(ln,{upTo:I.beat});const e=iE(q.keys,ln,z),t=new Map(va().map(r=>[r.txid,r]));De={owner:e,ledger:uE(q.chain,e,aE(q.keys,ln,z),t),now:ha(q.chain,e)},gn=new Map([...z.items.keys()].map(r=>{var s;return[r,((s=Cc(q,ln,z,r))==null?void 0:s.node.id)??null]})),De.view=I.beat===null?De.now:ha(q.chain,e,I.beat),I.tx&&!De.ledger.some(r=>r.key===I.tx)&&(I.tx=null),ei()}function Oo(e){I.beat=e>=tt()?null:Math.max(0,e),ze=I.beat===null?z:Sn(ln,{upTo:I.beat}),De.view=I.beat===null?De.now:ha(q.chain,De.owner,I.beat),ei()}async function ft(e,t){if(I.busy)return!1;I.busy=!0,document.body.classList.add("busy");try{return q=(await bE(e,t)).lab,!0}catch(n){return be((n==null?void 0:n.message)||String(n),!0),!1}finally{I.busy=!1,document.body.classList.remove("busy"),Dc()}}async function Tn(e,t,n,r){let s=null;if(!await ft(i=>{s=$E(i,e,t,n)}))return!1;const o=Io.events.find(i=>i.id===s);return be(r(s,(o==null?void 0:o.status)==="confirmed"?`at beat ${o.height}`:"cued for the next beat")),ei(),!0}async function c0(e){const t=[wa(),...Ys.map(([a])=>xa(a))],n=tt();if(!await ft(e)||tt()===n)return;const r=[wa(),...Ys.map(([a])=>xa(a))],s=["cued act",...Ys.map(([,a])=>a)],o=t.map((a,c)=>[a-r[c],s[c]]).filter(([a])=>a>0).map(([a,c])=>Wr(a,c)),i=LE(De.ledger.filter(a=>a.kind==="mine"&&a.beat===tt()));be(`Beat ${tt()}: ${o.length?`${o.join(" and ")} landed, and ${i}`:i}.`)}function LE(e){if(!e.length)return"the lab wallet earned 50 tBTC";const t=e.map(r=>{var s;return((s=X(r.to))==null?void 0:s.name)??"?"}),n=e.map(r=>Sc(r.amount));return e.length===1?`${t[0]} earned ${ce(e[0].amount)}`:n.every(r=>r===n[0])?`${t.slice(0,-1).join(", ")} and ${t.at(-1)} earned ${n[0]} each`:e.map((r,s)=>`${t[s]}${s?"":" earned"} ${n[s]}`).join(", ")}function RE(){var t;if(((t=q.mining)==null?void 0:t.rule)==="last")return"the holding that acts";const e=_c(q,z);return e.length?e.length===1?e[0].name:`${e.length} holdings, split by hashrate`:"the lab wallet"}function ei(){u0(),KE(),DE(),ti(),b0(),Mc()}function u0(){const e=UE(),{tempo:t}=q.clock;for(const r of document.querySelectorAll("[data-tempo]"))r.setAttribute("aria-pressed",String(String(t)===r.dataset.tempo));D("clock-beat").textContent=String(tt()),D("clock-cued").textContent=e?`${e} cued · ${HE()}`:"nothing cued";const n=RE();D("clock-pays").textContent=`beats pay ${n}`,D("beat-now").title=`Beat now: ${e?"land what is cued, and ":""}pay ${n} 50 test BTC`}function HE(){const{tempo:e,nextAt:t}=q.clock;return e==="manual"?"waiting for Beat now":typeof e=="number"&&t?`next beat in ${Math.max(0,Math.ceil((t-Date.now())/1e3))}s`:"landing on the next beat"}const jE={split:"Every active holding mines: each beat's 50 tBTC splits by hashrate, set on each holding (0 sits out).",last:"The holding behind the latest act or send takes the whole beat; with nothing cued, Beat now pays the one you're working in. At a timed tempo it's a race for the next beat.",none:"Mainnet has no mining to join: beats pay the lab wallet, standing in for the world's miners. Fund a holding from it, the way you'd fund a seed from a wallet you already have."};function KE(){var a,c;const e=((a=q.mining)==null?void 0:a.rule)??"split",t=e==="split",n=t?_c(q,z):[],r=n.reduce((u,l)=>u+dr(q,l.id),0);D("holdings-list").replaceChildren(...z.roots.map(u=>{var m;const l=uv(z,u.id),f=u.id===I.holding,d=u.status==="active",h=n.some(E=>E.id===u.id)?dr(q,u.id)/r:0,p=[...z.nodes.values()].reduce((E,y)=>E+(y.root===u.id?i0(y.id):0),0),b=[u.graduated!==null&&`from ${((m=X(u.parent))==null?void 0:m.name)??"?"}${u.graduated==="cued"?", cued":` at beat ${u.graduated}`}`||Tt(u.born),Wr(l.orgs,"org"),Wr(l.agents,"agent"),Wr(l.belts,"belt"),p>0&&Sc(p),t&&d&&(h?`${Math.round(h*100)}% of each beat`:"not mining"),!d&&"closed"].filter(Boolean);return A("li",{},A("button",{type:"button",class:`hold${f?" on":""}${d?"":" gone"}`,"aria-pressed":String(f),onclick:()=>Lr({holding:u.id,node:u.id})},A("span",{class:"hn",text:u.name})," ",A("span",{class:"hm",text:b.join(" · ")})),t&&d&&$e(q.keys,z,u)&&VE(u,dr(q,u.id)))}));for(const u of document.querySelectorAll("[data-rule]"))u.setAttribute("aria-pressed",String(e===u.dataset.rule));D("mining-note").textContent=jE[e];const s=z.roots.filter(u=>u.status==="active"&&$e(q.keys,z,u)),o=D("fund-to"),i=o.value;D("f-fund").hidden=e!=="none"||!s.length||I.beat!==null,o.replaceChildren(...s.map(u=>A("option",{value:u.id,text:u.name}))),o.value=s.some(u=>u.id===i)?i:s.some(u=>u.id===I.holding)?I.holding:((c=s[0])==null?void 0:c.id)??"",D("fund-has").textContent=ce(q.wallet?Oc(q.chain,q.wallet):0),D("holdings-empty").hidden=z.roots.length>0,D("holdings-sub").textContent=z.roots.length?String(z.roots.length):"",D("sample").disabled=z.roots.some(u=>u.name===ba&&u.status==="active")}function DE(){var r;const e=D("tree-rows"),t=X(I.holding);if(D("tree-sub").textContent=t?`${t.name} · ${I.beat===null?"now":`beat ${I.beat} of ${tt()}`}`:"",!t)return e.replaceChildren(A("p",{class:"wait",text:"No holding yet. Found one, or load the yolopreneur sample."}));if(!ze.nodes.has(t.id))return e.replaceChildren(A("p",{class:"wait",text:`${t.name} is founded at ${Tt(t.born)}. Move the slider forward.`}));const n=e.contains(document.activeElement)?document.activeElement.dataset.id:null;e.replaceChildren(...cv(ze,t.id).map(s=>s.type==="group"?A("div",{class:"row grp"},A("span",{class:"g","aria-hidden":"true",text:s.guide}),A("span",{class:"gl",text:s.label})):ME(s))),n&&((r=e.querySelector(`[data-id="${n}"]`))==null||r.focus())}function ME({node:e,guide:t,path:n,away:r}){const s=e.id===I.node,o=["row",s&&"on",e.status==="closed"&&"gone",e.born==="cued"&&"cue"].filter(Boolean).join(" ");return A("div",{class:o},A("button",{type:"button",class:"sel","data-id":e.id,"aria-pressed":String(s),onclick:()=>Lr({node:e.id}),title:r?`${e.name} graduated into a holding of its own`:null},A("span",{class:"g","aria-hidden":"true",text:t}),A("span",{class:"p",text:`${n} `}),A("span",{class:"l",text:e.name})," ",A("span",{class:"v"},ZE(e))))}function ZE(e){return[e.kind==="agent"&&A("span",{class:"mk",text:"agent"}),e.edge==="adopted"&&A("span",{class:"mk ok",text:"graduated"}),e.status==="closed"&&A("span",{class:"mk bad",text:"closed"}),e.born==="cued"&&A("span",{class:"mk",text:"cued"}),...e.badges.map(f0),Xs(e.id)>0&&A("span",{class:"mk sats",title:`${ce(Xs(e.id))} at its SegWit address`,text:Sc(Xs(e.id))})].filter(Boolean).flatMap((n,r)=>r?[" ",n]:[n])}const f0=e=>A("span",{class:`belt ${e.belt}`,title:`${e.skill}: ${e.belt} belt`},e.skill,A("span",{class:"sr",text:` (${e.belt} belt)`})),l0=(e,t)=>{for(let n=X(e.parent);n;n=X(n.parent))if(n.id===t.id)return!0;return!1},d0=e=>[...z.nodes.values()].filter(t=>t.id!==e.id&&t.status==="active").map(t=>[t,(t.root===e.root?0:4)+(l0(t,e)?0:2)+(t.kind==="agent"?0:1)]).sort((t,n)=>t[1]-n[1]).map(([t])=>t),h0=e=>e.children.reduce((t,n)=>{const r=X(n);return r&&r.edge==="derived"&&r.status==="active"?t+1+h0(r):t},0);function VE(e,t){const n=async r=>{await ft(s=>gE(s,e.id,r))&&be(r?`${e.name} mines at hashrate ${r}.`:`${e.name} sits out of mining.`)};return A("span",{class:"rig"},A("span",{class:"rl",text:"hashrate"}),A("span",{class:"rn"},A("button",{type:"button",class:"rb","aria-label":`Lower ${e.name}'s hashrate`,disabled:t<=0,onclick:()=>n(t-1)},"−"),A("b",{text:String(t)}),A("button",{type:"button",class:"rb","aria-label":`Raise ${e.name}'s hashrate`,disabled:t>=9,onclick:()=>n(t+1)},"+")))}const p0=e=>[...z.nodes.values()].filter(t=>t.id!==e.id&&t.status==="active").map(t=>[t,(t.root===e.root?0:4)+(l0(t,e)?0:2)+(t.kind==="agent"?0:1)]).sort((t,n)=>t[1]-n[1]).map(([t])=>t);function qE(e){const t=$e(q.keys,z,e);return t?Bc(q.chain.coins(t.script))[...z.items.values()].map(t=>[t,X(gn.get(t.id))]).filter(([,t])=>t&&t.id!==e.id&&t.status==="active").sort((t,n)=>(t[1].root===e.root?0:1)-(n[1].root===e.root?0:1)).map(([t])=>t);function zE(e){const t=$e(q.keys,z,e);return t?m0(e).length?q.chain.coins(t.script).some(n=>n.value>=de+Ne||n.value===de)?"":g0(e,"to pay with"):"Nobody else holds an item yet. Items come from Make":"This holding predates lab keys, so it has no SegWit address to pay from"}function y0(e,t=z){const n=Ec(q.keys,t,e);return n&&{taproot:n.taproot.address,segwit:n.segwit.address,nostr:n.npub.address,ethereum:n.ethereum.address}}function FE(e){const t=y0(e),n=e.keyring;if(!t)return"This holding predates lab keys, so it has no keys to list";const r=Nc(z,"keyring",e.id);return r||(!n||n.retired||xt.some(s=>n.keys[s]!==t[s])?"":n.beat==="cued"?`${e.name}'s keyring is cued for the next beat`:`${e.name}'s keyring already lists these keys, since beat ${n.beat}`)}function WE(e){const t=X(e.parent),n=e.status==="closed"?`${e.name} is closed`:"",r=(s,o=e.id,i={})=>s0(q,z,s,o,i);return{birth:n||(e.kind==="agent"?"Agents do not give birth":r("birth")),award:n||(e.kind==="agent"?"Agents do not award belts":d0(e).length?r("award"):"There is nobody else to award yet"),decide:n||r("decide"),make:n||r("make"),keyring:n||FE(e)||r("keyring"),send:n||qE(e),offer:n||zE(e),graduate:n||(t?e.kind!=="org"?"Only orgs graduate":e.edge==="adopted"?`${e.name} has already graduated`:t.status!=="active"?`${t.name} is closed`:Nc(z,"graduate",t.id,{of:e.id})||r("graduate",t.id,{of:e.id}):"A holding has no parent to graduate from"),close:n||r("close")}}function ti(){const e=X(I.node),t=I.beat!==null;if(D("act-none").hidden=!!e,D("act-past").hidden=!e||!t,D("act-on").hidden=!e||t,D("act-sub").textContent=(e==null?void 0:e.name)??"",D("past-beat").textContent=String(I.beat??""),!e||t)return;const n=WE(e),r=X(e.parent);for(const p of document.querySelectorAll("[data-verb]"))p.setAttribute("aria-pressed",String(p.dataset.verb===I.verb)),p.classList.toggle("off",!!n[p.dataset.verb]);for(const p of document.querySelectorAll("form[data-form]"))p.hidden=p.dataset.form!==I.verb||!!n[I.verb];D("act-why").textContent=n[I.verb]?`${n[I.verb]}.`:"";for(const p of document.querySelectorAll("#act-on [data-name]"))p.textContent=e.name;for(const p of document.querySelectorAll("#act-on [data-parent]"))p.textContent=(r==null?void 0:r.name)??"";const s=p=>p.map(g=>`${g.value}=${g.textContent}`).join("|"),o=[[D("award-to"),d0(e).map(p=>[p.id,`${Ar(z,p.id)}${p.kind==="agent"?" (agent)":""}`])],[D("send-to"),p0(e).map(p=>[p.id,`${Ar(z,p.id)}${p.kind==="agent"?" (agent)":""}`])],[D("offer-item"),m0(e).map(p=>[p.id,`${p.name} · held by ${Bt(gn.get(p.id))}`])]];for(const[p,g]of o){const b=p.value,m=g.map(([E,y])=>A("option",{value:E,text:y}));s(m)!==s([...p.options])&&(p.replaceChildren(...m),m.some(E=>E.value===b)&&(p.value=b))}for(const p of["send-has","offer-has"])D(p).textContent=ce(i0(e.id));D("graduate-go").textContent=`Graduate ${e.name}`;const i=I.verb==="keyring"&&!n.keyring&&y0(e);i&&D("keyring-keys").replaceChildren(...[["Taproot",i.taproot],["SegWit",i.segwit],["nostr",i.nostr],["Ethereum",i.ethereum]].map(Tr));const a=I.verb==="graduate"?r:e,c=a&&Oe(q.keys,z,a),u=I.verb==="send"||I.verb==="offer",l=c&&(u?`${c.from} · ${$e(q.keys,z,a).path}`:c.path);D("act-key").textContent=!a||n[I.verb]?"":c?`Signs as ${a.name}: ${l}`:"Signs with the lab wallet: this holding predates lab keys.";const f=I.verb==="graduate"&&Oe(q.keys,z,e)?ks(z,e.id).length:0;D("act-gas").textContent=!a||n[I.verb]||!c?"":I.verb==="send"?`Fee: ${de} sats, from ${e.name}'s balance.`:I.verb==="offer"?`Fee: ${de} sats, from ${e.name}'s balance, paid only if the holder accepts.`:`Gas: ${kE(I.verb,f).toLocaleString("en-US")} sats from ${a.name}'s tank (${ce(Oc(q.chain,c.wallet))}), which tops up from its balance.${f?` ${e.name} pays ${de} more, from its own money, to claim its new root.`:""}`;const d=h0(e),h=I.closing===e.id;D("close-note").textContent=d?`Closing ${e.name} spends it for the last time, and its ${Wr(d,"derived descendant")} close with it. Graduated children hold their own roots and stay open.`:`Closing ${e.name} spends its inscription for the last time. Nothing can act through it afterwards.`,D("close-go").textContent=h?`Yes, close ${e.name}`:`Close ${e.name}`,D("close-keep").hidden=!h}function b0(){const e=D("inspect-body"),t=I.event?z.log.find(o=>o.id===I.event):null;if(t)return D("inspect-sub").textContent="event",e.replaceChildren(...uk(t));const n=I.tx?De.ledger.find(o=>o.key===I.tx):null;if(n)return D("inspect-sub").textContent="money",e.replaceChildren(...fk(n));const r=X(I.node);if(D("inspect-sub").textContent=(r==null?void 0:r.kind)??"",!r)return e.replaceChildren(A("p",{class:"note pad",text:"Select a node in the tree, or an event in the timeline."}));const s=X(I.node,ze);if(!s)return e.replaceChildren(A("p",{class:"note pad",text:`${r.name} is not born yet at beat ${I.beat}.`}));e.replaceChildren(...GE(s))}const Tr=([e,t,n])=>A("div",{class:"f"},A("dt",{text:e}),A("dd",{},t,n&&A("span",{class:"fn",text:n})));function GE(e){const t=X(e.parent,ze),n=[["Born",e.born==="cued"?"cued for the next beat":`beat ${e.born}`],t&&["Parent",`${t.name} · ${e.kind} ${e.index}'`],t&&["Edge",e.edge==="adopted"?`adopted at ${Tt(e.graduated)}: it holds its own root`:`derived: ${t.name} holds its seed`],t&&e.root===e.id&&["Holding",A("span",{},"its own, since it graduated",e.id!==I.holding&&A("button",{type:"button",class:"btn sm open",onclick:()=>{Lr({holding:e.id,node:e.id}),QE()}},`Open ${e.name}`))],e.closed!==null&&["Closed",Tt(e.closed)],["Children",e.children.length?e.children.map(r=>{var s;return(s=X(r,ze))==null?void 0:s.name}).join(", "):"none yet"],$e(q.keys,ze,e)&&["Balance",ce(Xs(e.id)),`Test BTC at its SegWit address${I.beat===null?"":`, as of beat ${I.beat}`}.`],I.beat===null&&Oe(q.keys,z,e)&&["Gas tank",ce(Oc(q.chain,Oe(q.keys,z,e).wallet)),"Plain coins at its Taproot key. Its acts burn their fees from here, and the tank tops up from its balance, 0.0001 tBTC at a time."],["Inscription",e.id]].filter(Boolean);return[A("div",{class:"ih"},A("p",{class:"eyebrow",text:Ar(ze,e.id)}),A("h3",{class:"it",text:e.name}),A("div",{class:"chips"},A("span",{class:"chip",text:e.kind}),A("span",{class:`chip ${e.status==="active"?"ok":"bad"}`,text:e.status}),e.edge==="adopted"&&A("span",{class:"chip ok",text:"graduated"}),e.born==="cued"&&A("span",{class:"chip",text:"cued"}))),A("div",{class:"ib"},A("dl",{class:"fl"},n.map(Tr)),e.badges.length>0&&A("div",{},A("p",{class:"lab",text:"Belts"}),A("ul",{class:"list"},e.badges.map(r=>{var s;return A("li",{},f0(r),A("span",{class:"when",text:` from ${((s=X(r.by))==null?void 0:s.name)??"?"}, ${Tt(r.beat)}`}))}))),e.decisions.length>0&&A("div",{},A("p",{class:"lab",text:"Decisions"}),A("ul",{class:"list"},e.decisions.map(r=>A("li",{},A("b",{text:r.title}),r.why&&` · ${r.why}`,A("span",{class:"when",text:` (${Tt(r.beat)})`}))))),YE(e),ek(e),sk(e))]}function YE(e){const t=(a,c)=>c.length>0&&A("div",{},A("p",{class:"lab",text:a}),A("ul",{class:"list items"},c)),n=(a,c)=>A("li",{},A("b",{text:a.name}),a.note&&` · ${a.note}`,A("span",{class:"when",text:` (${c})`}));if(I.beat!==null)return t("Made",e.made.map(a=>ze.items.get(a)).filter(Boolean).map(a=>n(a,Tt(a.beat))));const r=a=>`made${a.maker===e.id?"":` by ${Bt(a.maker)}`}${a.beat==="cued"?", cued":` at beat ${a.beat}`}`,s=[...z.items.values()].filter(a=>gn.get(a.id)===e.id).map(a=>{const c=n(a,r(a)),u=va().filter(l=>l.item===a.id&&l.seller===e.id&&ga(q,z,l)==="open");return u.length&&c.append(A("ul",{class:"bids"},u.map(l=>A("li",{},A("span",{text:`${Bt(l.buyer)} offers ${l.price?ce(l.price):"nothing, a free claim"}`}),e.status==="active"&&A("button",{type:"button",class:"btn sm","aria-label":`Accept ${Bt(l.buyer)}'s offer for ${a.name}`,onclick:()=>XE(l)},"Accept"))))),c}),o=e.made.map(a=>z.items.get(a)).filter(a=>a&&gn.get(a.id)!==e.id).map(a=>n(a,gn.get(a.id)?`now held by ${Bt(gn.get(a.id))}`:"held outside this lab")),i=va().filter(a=>a.buyer===e.id&&ga(q,z,a)!=="done").map(a=>{const c=Pc(q,z,a);return A("li",{},A("b",{text:a.price?ce(a.price):"nothing"}),` for ${_n(a.item)}`,A("span",{class:"when",text:c?` (stale: ${c})`:` (open until ${Bt(a.seller)} accepts)`}),A("button",{type:"button",class:"btn sm","aria-label":`Withdraw the offer for ${_n(a.item)}`,onclick:()=>JE(a)},"Withdraw"))});return[t("Items",s),t("Made, held elsewhere",o),t("Offers made",i)]}const Bt=e=>{const t=X(e);return t?t.root===I.holding?t.name:Ar(z,e):"?"};async function XE(e){const t=_n(e.item),n=Bt(e.buyer),r=Bt(e.seller);if(!await ft(o=>{BE(o,e.txid)}))return;const s=De.ledger.find(o=>o.txid===e.txid);be(`${r} accepted: ${t} goes to ${n}${e.price?` for ${ce(e.price)}`:", free"}, ${s!=null&&s.beat?`at beat ${s.beat}`:"cued for the next beat"}.`)}async function JE(e){const t=_n(e.item),n=Bt(e.buyer);await ft(r=>{TE(r,e.txid)})&&be(`${n} withdrew its offer for ${t}.`)}function QE(){const e=document.querySelector(".tree-blk").getBoundingClientRect().top+scrollY-document.querySelector(".clock").offsetHeight-12;e(n.to===e.id||n.from===e.id)&&(I.beat===null||n.beat!==null&&n.beat<=I.beat)).slice(-6).reverse();return t.length>0&&A("div",{},A("p",{class:"lab",text:"Money"}),A("ul",{class:"list"},t.map(n=>A("li",{},A("b",{text:tk(n,e.id)}),A("span",{class:"when",text:` (${Tt(n.beat??"cued")})`})))))}function tk(e,t){const n=r=>{var s;return((s=X(r))==null?void 0:s.name)??"?"};if(e.kind==="mine")return`+${ce(e.amount)}, a beat's reward`;if(e.kind==="move")return`${ce(e.amount)} moved to its new key, after a ${e.fee}-sat fee`;if(e.kind==="gas")return`−${ce(e.amount)} into its gas tank, and a ${e.fee}-sat fee`;if(e.kind==="fund")return`+${ce(e.amount)} from the lab wallet`;if(e.kind==="deal"){const r=_n(e.item);return e.to===t?e.amount?`+${ce(e.amount)} from ${n(e.from)} for ${r}`:`${r} to ${n(e.from)}, free`:e.amount?`−${ce(e.amount)} to ${n(e.to)} for ${r}, and a ${e.fee}-sat fee`:`${r} from ${n(e.to)}, free but for a ${e.fee}-sat fee`}return e.to===t?`+${ce(e.amount)} from ${n(e.from)}`:`−${ce(e.amount)} to ${n(e.to)}, and a ${e.fee}-sat fee`}function w0(e){const t=n=>{const r=X(n);return r?r.root===I.holding?r.name:Ar(z,n):"?"};return e.kind==="mine"?`${ce(e.amount)} → ${t(e.to)}`:e.kind==="move"?`${ce(e.amount)} → ${t(e.to)}'s new key`:e.kind==="gas"?`${ce(e.amount)} → ${t(e.to)}'s gas tank`:e.kind==="fund"?`${ce(e.amount)} lab wallet → ${t(e.to)}`:e.kind==="deal"?`${_n(e.item)} ${t(e.to)} → ${t(e.from)}, ${e.amount?`for ${ce(e.amount)}`:"free"}`:`${ce(e.amount)} ${t(e.from)} → ${t(e.to)}`}const nk={own:"its own key",lab:"the lab wallet",parent:"its parent's key (its handoff is cued)",other:"a key outside this lab"},rk={ssh:"shell access, certified by the CA",git:"commit signing",dkim:"mail signing",wg:"WireGuard peer key","ssh-ca":"SSH certificate authority",mtls:"TLS identity between nodes",noise:"Headscale noise key"};function sk(e){const t=Oe(q.keys,ze,e),n=kc(q,z,e.id),r=["Held now by",n?nk[n.who]:"nobody: its inscription has been spent"];if(!t)return A("div",{class:"keys"},A("p",{class:"lab",text:"Keys"}),A("dl",{class:"fl"},[["Signs with","the lab wallet: this holding predates lab keys, so it has no addresses, leaves or secrets of its own"],r].map(Tr)));const s=e.kind==="agent",o=Ec(q.keys,ze,e),i=Jv(q.keys,ze,e),a=i.map(([,,d])=>d).filter(Boolean),c="Reset the lab for standard BIP-86 keys.",u=s?"Holds this seat's inscription, and inscriptions sent to it land here.":"Holds this org's inscription and signs its acts. Inscriptions sent to it land here.",l={bip86:`BIP-86 at ${o.taproot.path}. ${u}`,tapkey:`Its npub's key with the BIP-86 tweak, the way v1.2 keyed this lab. ${u} ${c}`,wallet:`An untweaked key at ${o.taproot.path}, the way v1.1 keyed this lab. ${u} ${c}`}[t.scheme],f=[["Taproot",o.taproot.address,l],["SegWit",o.segwit.address,`BIP-84 at ${o.segwit.path}. Its money: ${e.kind==="holding"?"the beats it earns land here, and ":""}sends come and go here.`],["Tapkey",o.tapkey.address,"Its npub as a Taproot address (its nostr key with the BIP-86 tweak), so the npub alone finds it. Nostr secrets get pasted into clients, so treat it as an inbox."],["npub",o.npub.address,`NIP-06 at ${o.npub.path}. Its nostr name; the leaves below hang off it.`],["Ethereum",o.ethereum.address,s?`BIP-44 at ${o.ethereum.path}: account ${t.account} of its org's seed, the way Ledger Live numbers Ethereum accounts.`:`BIP-44 at ${o.ethereum.path}. Its legal-control key, the one that holds the entity NFT, as on the lineage key tree page.`],["From",`${t.from} · account ${t.account}`],r,ok(e)];return A("div",{class:"keys"},A("p",{class:"lab",text:"Keys"}),A("dl",{class:"fl"},f.map(Tr)),e.keyring&&hr(`${e.keyring.retired?"Retired keyring":"Keyring"} · what each key signed`,Vo(e.id,e.keyring.keys)),A("p",{class:"lab"},"Leaves",A("span",{text:` · HKDF-SHA256 from its ${s?"nostr secret":"seed"}`})),A("ul",{class:"list leaves"},i.map(([d,h])=>A("li",{},A("b",{text:d}),A("span",{class:"when",text:` ${rk[d]}`}),A("code",{text:h})))),hr(s?"Public lines to paste":"CA key for TrustedUserCAKeys",a.join(` + +`)),ak(e,t))}function ok(e){var r;const t=e.keyring,n=(t==null?void 0:t.retired)&&(t.retired.by===e.id?"It":((r=X(t.retired.by,ze))==null?void 0:r.name)??"Its parent");return t?t.retired?["Keyring",`retired at ${Tt(t.retired.beat)}`,t.retired.cause==="close"?`${n} closed, which freed the keys it listed.`:n==="It"?"It graduated, so its keys changed with its new root. Keyring publishes a new one.":`${n} graduated, so ${e.name}'s keys changed with ${n}'s new root. Keyring publishes a new one.`]:["Keyring",`published at ${Tt(t.beat)}`,"Each key signed it: Taproot and SegWit by BIP-322, the npub as a nostr event, Ethereum by EIP-191."]:["Keyring","none yet","Keyring publishes one: an inscription that lists these keys, each key signing it."]}function hr(e,t,n=t){const r=A("pre",{text:n}),s=A("button",{type:"button",class:"cp","aria-label":`Copy ${e}`,onclick:()=>ik(t,s,r)},"Copy");return A("div",{class:"code"},A("div",{class:"code-h cph"},A("span",{text:e}),s),r)}async function ik(e,t,n){const r=s=>{t.textContent=s,setTimeout(()=>{t.textContent="Copy"},1400)};try{await navigator.clipboard.writeText(e),r("Copied")}catch{getSelection().selectAllChildren(n),r("Selected")}}function ak(e,t){var a;const n=I.reveal===e.id,r=n&&rE(q.keys,ze,e),s=X(e.parent,ze),o=()=>{var c;I.reveal=n?null:e.id,b0(),(c=D("reveal"))==null||c.focus()},i=(a=r==null?void 0:r.seed)==null?void 0:a.mnemonic.split(" ");return A("div",{class:"secret"},A("div",{class:"hz"},A("span",{class:"hz-l",text:"Secret · stays in this tab"}),A("button",{type:"button",class:"btn sm",id:"reveal","aria-expanded":String(n),onclick:o},n?"Hide":"Reveal")),r&&A("div",{class:"sb"},r.seed?hr(`Seed · ${r.seed.from}`,r.seed.mnemonic,i.map((c,u)=>`${String(u+1).padStart(2,"0")} ${c}`).reduce((c,u,l)=>(l%3?c[c.length-1].push(u):c.push([u]),c),[]).map(c=>c.join(" ")).join(` +`)):A("p",{class:"note",text:`A seat has no seed of its own: these are account ${t.account} of ${(s==null?void 0:s.name)??"its org"}'s seed.`}),r.account.map(([c,u,l])=>hr(`${c} · ${u}`,l)),r.leaves.map(([c,u,l])=>hr(`${c} · ${u}`,l))))}function ck(e){var i,a,c;const t=(a=(i=q.chain.transactions.get(e.id.slice(0,-2)))==null?void 0:i.tx.vin.find(u=>{var l;return((l=u.witness)==null?void 0:l.length)===3}))==null?void 0:a.witness;if(!t)return"?";const n=Qa(t).pubkey,r=X(e.parent),s=e.op==="found"?X(e.node):null,o=[[s&&Oe(q.keys,z,s),`${s==null?void 0:s.name}'s root`],[r&&Oe(q.keys,z,r),`${r==null?void 0:r.name}'s key`],[(r==null?void 0:r.edge)==="adopted"&&Oe(q.keys,z,{...r,edge:"derived"}),`${r==null?void 0:r.name}'s derived key, from before it graduated`]];for(const[u,l]of o)if(u&&u.wallet.pubkey===n)return l;return((c=q.wallet)==null?void 0:c.pubkey)===n?"the lab wallet":`a key outside this lab (${n.slice(0,12)}…)`}function uk(e){var o,i,a;const t=Io.events.find(c=>c.id===e.id),n=(i=(o=q.chain.transactions.get(e.id.slice(0,-2)))==null?void 0:o.inscription)==null?void 0:i.text,r=[["When",e.pending?"cued for the next beat":`beat ${e.beat}`],["Authorized by",e.parent?`${((a=X(e.parent))==null?void 0:a.name)??"an unknown inscription"}, whose inscription this event spent`:"nothing: a founding has no parent"],["Signed by",ck(e)],["Inscription",e.id],n&&["Body",n],(t==null?void 0:t.block)&&["Block",t.block]].filter(Boolean),s=t&&{id:t.id,status:t.status,height:t.height,block:t.block,parent:t.parent??null,metaprotocol:t.metaprotocol??null,contentType:t.contentType,sat:t.sat,location:t.location};return[A("div",{class:"ih"},A("p",{class:"eyebrow",text:`${e.op} · ${e.pending?"cued":`beat ${e.beat}`}`}),A("h3",{class:"it",text:kh(e,z)}),A("div",{class:"chips"},A("span",{class:"chip",text:(t==null?void 0:t.protocol)??"?"}),A("span",{class:`chip ${e.ok?"ok":"bad"}`,text:e.ok?"applied":"rejected"})),!e.ok&&A("p",{class:"idesc",text:"The reducer rejected this event. It stays on the chain, but it does not change the tree."})),A("div",{class:"ib"},A("dl",{class:"fl"},r.map(Tr)),A("div",{class:"code"},A("p",{class:"code-h",text:"Metadata · CBOR, tag 5"}),A("pre",{text:Qu(e.meta)})),s&&A("div",{class:"code"},A("p",{class:"code-h",text:"Raw index entry"}),A("pre",{text:Qu(s)})))]}function fk(e){const t=i=>{var a;return((a=X(i))==null?void 0:a.name)??"a key outside this lab"},n=q.chain.transactions.get(e.txid),r=e.kind==="deal",s=e.kind==="fund",o=[["When",e.beat===null?"cued for the next beat":`beat ${e.beat}`],r&&["Item",`${_n(e.item)}, an inscription: from ${t(e.to)}'s Taproot key to ${t(e.from)}'s`],["From",e.kind==="mine"?"its share of the beat's block reward (the coinbase)":s?"the lab wallet, standing in for a wallet you already have":`${t(e.from)}'s SegWit address${e.kind==="move"?", from before it graduated":""}`],["To",e.kind==="gas"?`${t(e.to)}'s gas tank, at its Taproot key`:r&&!e.amount?"nobody: a free claim pays no price":`${t(e.to)}'s ${e.kind==="move"?"new ":""}SegWit address`],[r?"Price":"Amount",r&&!e.amount?"nothing":ce(e.amount)],e.kind!=="mine"&&["Fee",`${e.fee} sats, retired: this toy chain pays no fees to miners`],e.change>0&&["Change",`${ce(e.change)} back to ${s?"the lab wallet":t(e.from)}`],["Signed by",e.kind==="mine"?"nobody: a coinbase spends nothing":s?"the lab wallet's Taproot key":r?`${t(e.from)}'s SegWit key (SIGHASH_ALL) when it made the offer, then ${t(e.to)}'s Taproot key when it accepted`:`${t(e.from)}'s SegWit key (BIP-143, SIGHASH_ALL)`],["Transaction",e.txid]].filter(Boolean);return[A("div",{class:"ih"},A("p",{class:"eyebrow",text:`${e.kind} · ${e.beat===null?"cued":`beat ${e.beat}`}`}),A("h3",{class:"it",text:w0(e)}),A("div",{class:"chips"},A("span",{class:"chip",text:"test BTC"}),A("span",{class:`chip${e.beat===null?"":" ok"}`,text:e.beat===null?"cued":"confirmed"}))),A("div",{class:"ib"},A("dl",{class:"fl"},o.map(Tr)),n&&hr("Raw transaction",n.raw))]}function Mc(){const e=tt(),t=D("beat"),n=X(I.holding);t.max=String(e),t.value=String(I.beat??e),t.disabled=e===0,D("beat-label").textContent=I.beat===null?`Now · beat ${e}`:`Beat ${I.beat} of ${e}`,D("replay").textContent=I.replay?"Stop":"Replay",D("replay").disabled=!n||e===0,D("to-now").disabled=I.beat===null,D("timeline-sub").textContent=(n==null?void 0:n.name)??"";const r=new Map,s=new Map([...q.chain.transactions.keys()].map((a,c)=>[a,c])),o=(a,c)=>r.set(a,[...r.get(a)??[],c]);for(const a of z.log)a.roots.includes(I.holding)&&o(a.pending?"cued":a.beat,{e:a,at:s.get(a.id.slice(0,-2))??0});for(const a of De.ledger)[a.to,a.from].some(c=>{var u;return c&&((u=X(c))==null?void 0:u.root)===I.holding})&&o(a.beat??"cued",{m:a,at:s.get(a.txid)??0});const i=[...r.keys()].sort((a,c)=>a==="cued"?-1:c==="cued"?1:c-a);if(!i.length)return D("timeline-list").replaceChildren(A("li",{class:"wait",text:n?"Nothing yet.":"Found a holding to start its timeline."}));D("timeline-list").replaceChildren(...i.map(a=>{const c=a==="cued"?null:q.chain.blocks[a-1],u=I.beat!==null&&(a==="cued"||a>I.beat),l=I.beat!==null&&a===I.beat;return A("li",{class:`beat${u?" later":""}${l?" now":""}`},A("p",{class:"bh"},A("span",{class:"bn",text:a==="cued"?"Cued":`Beat ${a}`}),A("span",{class:"bt",text:c?PE(c.time):q.clock.tempo==="manual"?"waiting for Beat now":"landing on the next beat"})),A("ol",{class:"evs"},r.get(a).sort((f,d)=>f.at-d.at).map(({e:f,m:d})=>d?dk(d):lk(f))))}))}function lk(e){const[t,...n]=kh(e,z).split(" ");return A("li",{},A("button",{type:"button",class:`ev${e.ok?"":" bad"}${e.id===I.event?" on":""}`,"aria-pressed":String(e.id===I.event),onclick:()=>Lr({event:e.id,node:e.node??I.node})},A("span",{class:"op",text:e.ok?t:`✕ ${t.replace(/:$/,"")}`})," ",A("span",{class:"es",text:n.join(" ")})))}const dk=e=>A("li",{},A("button",{type:"button",class:`ev money${e.kind==="gas"?" gas":""}${e.kind==="deal"?" deal":""}${e.key===I.tx?" on":""}`,"aria-pressed":String(e.key===I.tx),onclick:()=>{var t;return Lr({tx:e.key,node:((t=X(e.to))==null?void 0:t.root)===I.holding?e.to:I.node})}},A("span",{class:"op",text:e.kind})," ",A("span",{class:"es",text:w0(e)})));D("f-found").addEventListener("submit",async e=>{e.preventDefault();const t=e.currentTarget,n=qo(t.elements.name.value);if(!n)return be("Name the holding: lowercase letters, digits and hyphens.",!0);await Tn("found",null,{name:n},(r,s)=>(Kc({holding:r,node:r}),`${n} is founded, ${s}.`))&&t.reset()});D("sample").addEventListener("click",async()=>{let e=null;be("Rehearsing the yolopreneur tree over six beats…"),await ft(t=>{e=CE(t)})&&(Lr({holding:e,node:e}),be("Loaded the yolopreneur sample: six beats of history, ending on lineage's open offer for sol's launch-kit. Press Replay to watch it grow."))});D("f-birth").addEventListener("submit",async e=>{e.preventDefault();const t=e.currentTarget,n=X(I.node),r=qo(t.elements.name.value),s=t.elements.kind.value;if(!r)return be("Name the child: lowercase letters, digits and hyphens.",!0);await Tn("birth",n.id,{name:r,kind:s},(o,i)=>`${r} is born to ${n.name}, ${i}.`)&&(t.elements.name.value="")});D("f-award").addEventListener("submit",async e=>{e.preventDefault();const t=e.currentTarget,n=X(I.node),r=t.elements.to.value,s=qo(t.elements.skill.value),o=t.elements.belt.value;if(!s)return be("Name the skill, for example launch.",!0);await Tn("award",n.id,{to:r,skill:s,belt:o},(i,a)=>{var c;return`${(c=X(r))==null?void 0:c.name} holds a ${o} belt in ${s}, ${a}.`})&&(t.elements.skill.value="")});D("f-decide").addEventListener("submit",async e=>{e.preventDefault();const t=e.currentTarget,n=X(I.node),r=t.elements.title.value.trim(),s=t.elements.why.value.trim();if(!r)return be("A decision needs a title.",!0);await Tn("decide",n.id,{title:r,why:s},(o,i)=>`${n.name} decided “${r}”, ${i}.`)&&t.reset()});D("f-send").addEventListener("submit",async e=>{var a;e.preventDefault();const t=e.currentTarget,n=X(I.node),r=t.elements.to.value,s=$c(t.elements.amount.value);if(s===null)return be("Write an amount in test BTC, for example 1.5 (at most eight decimals).",!0);let o=null;if(!await ft(c=>{o=_E(c,n.id,r,s)}))return;const i=De.ledger.find(c=>c.txid===o);be(`${n.name} sent ${ce(s)} to ${((a=X(r))==null?void 0:a.root)===n.root?X(r).name:Ar(z,r)}, ${i!=null&&i.beat?`at beat ${i.beat}`:"cued for the next beat"}.`),t.elements.amount.value=""});D("f-make").addEventListener("submit",async e=>{e.preventDefault();const t=e.currentTarget,n=X(I.node),r=qo(t.elements.name.value),s=t.elements.note.value.trim();if(!r)return be("Name the item: lowercase letters, digits and hyphens.",!0);await Tn("make",n.id,{name:r,note:s},(o,i)=>`${n.name} made ${r}, ${i}.`)&&t.reset()});D("f-keyring").addEventListener("submit",async e=>{e.preventDefault();const t=X(I.node);await Tn("keyring",t.id,{},(n,r)=>`${t.name} published its keyring, ${r}: four keys, each signing the same statement.`)});D("f-offer").addEventListener("submit",async e=>{e.preventDefault();const t=e.currentTarget,n=X(I.node),r=D("offer-item").value,s=$c(t.elements.price.value);if(s===null)return be("Write a price in test BTC, for example 0.1, or 0 for a free claim.",!0);const o=Bt(gn.get(r)),i=_n(r);await ft(a=>{AE(a,r,n.id,s)})&&(be(`${n.name} offers ${s?ce(s):"nothing"} for ${i}. The offer stands until ${o} accepts it.`),t.elements.price.value="")});D("send-max").addEventListener("click",()=>{const e=X(I.node),t=e&&$e(q.keys,z,e);t&&(D("send-amount").value=Lh(Bc(q.chain.coins(t.script))))});D("f-graduate").addEventListener("submit",async e=>{e.preventDefault();const t=X(I.node),n=X(t.parent);await Tn("graduate",n.id,{of:t.id},(r,s)=>(Kc({node:t.id}),`${t.name} graduates from ${n.name}, ${s}. It's a holding of its own now.`))});D("f-close").addEventListener("submit",async e=>{e.preventDefault();const t=X(I.node);if(I.closing!==t.id)return I.closing=t.id,ti(),D("close-go").focus();I.closing=null,await Tn("close",t.id,{},(n,r)=>`${t.name} is closed, ${r}.`)});D("close-keep").addEventListener("click",()=>{I.closing=null,ti(),D("close-go").focus()});for(const e of document.querySelectorAll("[data-verb]"))e.addEventListener("click",()=>{I.verb=e.dataset.verb,I.closing=null,ti()});for(const e of document.querySelectorAll("[data-rule]"))e.addEventListener("click",async()=>{const t=e.dataset.rule;await ft(n=>mE(n,t))&&be({split:"Each beat splits across the holdings that mine, by hashrate.",last:"Each beat goes whole to the holding that acts.",none:"Mainnet: no holding mines. Beats pay the lab wallet, and you fund holdings from it."}[t])});D("f-fund").addEventListener("submit",async e=>{var i;e.preventDefault();const t=e.currentTarget,n=t.elements.to.value,r=$c(t.elements.amount.value);if(r===null)return be("Write an amount in test BTC, for example 5 (at most eight decimals).",!0);let s=null;if(!await ft(a=>{s=IE(a,n,r)}))return;const o=De.ledger.find(a=>a.txid===s);be(`The lab wallet funded ${(i=X(n))==null?void 0:i.name} with ${ce(r)}, ${o!=null&&o.beat?`at beat ${o.beat}`:"cued for the next beat"}.`),t.elements.amount.value=""});for(const e of document.querySelectorAll("[data-tempo]"))e.addEventListener("click",async()=>{const t=e.dataset.tempo,n=/^\d+$/.test(t)?Number(t):t;await ft(r=>wE(r,n,Date.now(),Qo(r,jc(r)??I.holding)))&&be(t==="each"?"Each act is its own beat.":t==="manual"?"Acts are cued until you press Beat now.":`Acts are cued and land together on the next beat, at most ${t} seconds after the first.`)});D("beat-now").addEventListener("click",()=>c0(e=>{vt(e,Qo(e,jc(e)??I.holding))}));setInterval(()=>{u0();const{tempo:e,nextAt:t}=q.clock;I.busy||document.hidden||typeof e!="number"||!q.chain.mempool.length||t&&Date.now()xE(n,Date.now(),Qo(n,jc(n)??I.holding)))},1e3);addEventListener("storage",e=>{(e.key===Xo||e.key===null)&&a0()});function As(){I.replay&&(clearInterval(I.replay),I.replay=null,Mc())}function hk(){const e=X(I.holding);if(!(!e||!tt())){if(Oo(typeof e.born=="number"?e.born:tt()),I.beat===null)return be("Nothing to replay yet: this holding has one beat of history.");I.replay=setInterval(()=>{(I.beat===null||I.beat+1>=tt())&&As(),Oo(I.beat===null?tt():I.beat+1)},800),Mc()}}D("beat").addEventListener("input",e=>{As(),Oo(Number(e.target.value))});D("replay").addEventListener("click",()=>I.replay?As():hk());for(const e of["to-now","past-now"])D(e).addEventListener("click",()=>{As(),Oo(tt())});const Li=["system","light","dark"],x0=()=>{D("theme").textContent=`Theme: ${document.documentElement.dataset.theme??"system"}`};D("theme").addEventListener("click",()=>{const e=Li[(Li.indexOf(document.documentElement.dataset.theme??"system")+1)%Li.length];e==="system"?delete document.documentElement.dataset.theme:document.documentElement.dataset.theme=e;try{e==="system"?localStorage.removeItem("orgchain-theme"):localStorage.setItem("orgchain-theme",e)}catch{}x0()});function v0(e,t,n){const r=D("confirm");r.replaceChildren(A("span",{text:e}),A("button",{type:"button",class:"btn sm danger",text:t,onclick:()=>{r.hidden=!0,n()}}),A("button",{type:"button",class:"btn sm",text:"Cancel",onclick:()=>{r.hidden=!0}})),r.hidden=!1,r.querySelector("button").focus()}const pk={read:()=>{try{return Uc()}catch{return _s()}}};async function E0(e,t){As(),await ft(n=>{Object.assign(n,e())},pk)&&(Object.assign(I,{holding:null,node:null,event:null,tx:null,beat:null,closing:null}),Dc(),be(t))}D("save").addEventListener("click",()=>{const e=A("a",{href:URL.createObjectURL(new Blob([Jh(q)],{type:"application/json"})),download:`orgchain-lab-${new Date().toISOString().slice(0,10)}.json`});document.body.append(e),e.click(),e.remove(),setTimeout(()=>URL.revokeObjectURL(e.href),5e3),be("Saved a backup of this lab, test wallet included. Load it in any browser to carry on.")});D("load").addEventListener("click",()=>D("load-file").click());D("load-file").addEventListener("change",async e=>{var r;const t=(r=e.target.files)==null?void 0:r[0];if(e.target.value="",!t)return;let n;try{n=Xh(await t.text())}catch(s){return be(`${t.name} is not an Orgchain lab: ${s.message}`,!0)}v0(`Replace this browser's lab with ${t.name}?`,"Replace",()=>E0(()=>n,`Loaded ${t.name}.`))});D("reset").addEventListener("click",()=>v0("Erase this browser's lab: every holding, the chain and the test wallet?","Erase",()=>E0(_s,"Erased. This is a fresh lab.")));x0();a0(); diff --git a/ventures/lineage/orgchain/assets/index-CxwiIiW3.js b/ventures/lineage/orgchain/assets/index-CxwiIiW3.js deleted file mode 100644 index 5094938..0000000 --- a/ventures/lineage/orgchain/assets/index-CxwiIiW3.js +++ /dev/null @@ -1,2063 +0,0 @@ -(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const o of s)if(o.type==="childList")for(const i of o.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&r(i)}).observe(document,{childList:!0,subtree:!0});function n(s){const o={};return s.integrity&&(o.integrity=s.integrity),s.referrerPolicy&&(o.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?o.credentials="include":s.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(s){if(s.ep)return;s.ep=!0;const o=n(s);fetch(s.href,o)}})();const Ds=5e9,kc=2**52,$u=(e,t)=>[[kc+e*Ds,kc+e*Ds+t]];function _u(e,t,n){const r=[];for(const[s,o]of e){const i=o-s;if(t>=i){t-=i;continue}const a=Math.min(n,i-t);if(a&&r.push([s+t,s+t+a]),n-=a,t=0,!n)break}return r}function Au(e,t){var n;return(n=_u(e,t,1)[0])==null?void 0:n[0]}function Ns(e,t){let n=0;for(const[r,s]of e){if(t>=r&&ti.ranges);let o=0;return e.vout.map(i=>{const a=_u(s,o,Number(i.value));return o+=Number(i.value),a})}function ki(e){if(!Number.isSafeInteger(e)||e<0)throw new Error(`Wrong positive integer: ${e}`)}function Ch(e){if(typeof e!="boolean")throw new Error(`Expected boolean, not ${e}`)}function Tu(e,...t){if(!(e instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(t.length>0&&!t.includes(e.length))throw new TypeError(`Expected Uint8Array of length ${t}, not of length=${e.length}`)}function Ph(e){if(typeof e!="function"||typeof e.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");ki(e.outputLen),ki(e.blockLen)}function Uh(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function Nh(e,t){Tu(e);const n=t.outputLen;if(e.lengthnew DataView(e.buffer,e.byteOffset,e.byteLength),yt=(e,t)=>e<<32-t|e>>>t,Rh=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!Rh)throw new Error("Non little-endian hardware is not supported");Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function Hh(e){if(typeof e!="string")throw new TypeError(`utf8ToBytes expected string, got ${typeof e}`);return new TextEncoder().encode(e)}function Ou(e){if(typeof e=="string"&&(e=Hh(e)),!(e instanceof Uint8Array))throw new TypeError(`Expected input type is Uint8Array (got ${typeof e})`);return e}let jh=class{clone(){return this._cloneInto()}};function Iu(e){const t=r=>e().update(Ou(r)).digest(),n=e();return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=()=>e(),t}function Kh(e,t,n,r){if(typeof e.setBigUint64=="function")return e.setBigUint64(t,n,r);const s=BigInt(32),o=BigInt(4294967295),i=Number(n>>s&o),a=Number(n&o),c=r?4:0,u=r?0:4;e.setUint32(t+c,i,r),e.setUint32(t+u,a,r)}let Dh=class extends jh{constructor(t,n,r,s){super(),this.blockLen=t,this.outputLen=n,this.padOffset=r,this.isLE=s,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(t),this.view=Vo(this.buffer)}update(t){Zo.exists(this);const{view:n,buffer:r,blockLen:s}=this;t=Ou(t);const o=t.length;for(let i=0;is-i&&(this.process(r,0),i=0);for(let f=i;fl.length)throw new Error("_sha2: outputLen bigger than state");for(let f=0;fe&t^~e&n,Zh=(e,t,n)=>e&t^e&n^t&n,Vh=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),Zt=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Vt=new Uint32Array(64);let Cu=class extends Dh{constructor(){super(64,32,8,!1),this.A=Zt[0]|0,this.B=Zt[1]|0,this.C=Zt[2]|0,this.D=Zt[3]|0,this.E=Zt[4]|0,this.F=Zt[5]|0,this.G=Zt[6]|0,this.H=Zt[7]|0}get(){const{A:t,B:n,C:r,D:s,E:o,F:i,G:a,H:c}=this;return[t,n,r,s,o,i,a,c]}set(t,n,r,s,o,i,a,c){this.A=t|0,this.B=n|0,this.C=r|0,this.D=s|0,this.E=o|0,this.F=i|0,this.G=a|0,this.H=c|0}process(t,n){for(let f=0;f<16;f++,n+=4)Vt[f]=t.getUint32(n,!1);for(let f=16;f<64;f++){const d=Vt[f-15],h=Vt[f-2],p=yt(d,7)^yt(d,18)^d>>>3,g=yt(h,17)^yt(h,19)^h>>>10;Vt[f]=g+Vt[f-7]+p+Vt[f-16]|0}let{A:r,B:s,C:o,D:i,E:a,F:c,G:u,H:l}=this;for(let f=0;f<64;f++){const d=yt(a,6)^yt(a,11)^yt(a,25),h=l+d+Mh(a,c,u)+Vh[f]+Vt[f]|0,g=(yt(r,2)^yt(r,13)^yt(r,22))+Zh(r,s,o)|0;l=u,u=c,c=a,a=i+h|0,i=o,o=s,s=r,r=h+g|0}r=r+this.A|0,s=s+this.B|0,o=o+this.C|0,i=i+this.D|0,a=a+this.E|0,c=c+this.F|0,u=u+this.G|0,l=l+this.H|0,this.set(r,s,o,i,a,c,u,l)}roundClean(){Vt.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}},qh=class extends Cu{constructor(){super(),this.A=-1056596264,this.B=914150663,this.C=812702999,this.D=-150054599,this.E=-4191439,this.F=1750603025,this.G=1694076839,this.H=-1090891868,this.outputLen=28}};const Si=Iu(()=>new Cu);Iu(()=>new qh);function zh(e,t){if(e.length>t)throw new TypeError(`Data is larger than array size: ${e.length} > ${t}`)}function Fh(e){if(e.match(/[^a-fA-f0-9]/)!==null)throw new TypeError("Invalid characters in hex string: "+e);if(e.length%2!==0)throw new Error(`Length of hex string is invalid: ${e.length}`)}function Gh(e){if(e>Number.MAX_SAFE_INTEGER)throw new TypeError("Number exceeds safe bounds!")}const{getRandomValues:Wh}=crypto??globalThis.crypto??window.crypto;function Yh(e=32){if(typeof Wh=="function")return crypto.getRandomValues(new Uint8Array(e));throw new Error("Crypto module missing getRandomValues!")}function Xh(e,t,n="be"){t===void 0&&(t=e.length),zh(e,t);const r=new Uint8Array(t).fill(0),s=n==="be"?0:t-e.length;return r.set(e,s),r}function Pu(e){let t,n=0;const r=e.reduce((o,i)=>o+i.length,0),s=new Uint8Array(r);for(t=0;t0||(i.length^a)>0?"":"1";c in o||u>0;)l=o[c],l=l>0?l*256+u:u,u=l/s|0,o[c]=l%s,c++;for(;c-- >0;)i+=r[o[c]];return n&&i.length%4>0?i+"=".repeat(4-i.length%4):i}function t0(e,t){const n=Uu(t),r=n.length,s=[],o=[];e=e.replace("=","");let i,a=0,c,u;for(i=0;i0||(o.length^i)>0||o.push(0);a in s||c>0;)u=s[a],u=u>0?u*r+c:c,c=u>>8,s[a]=u%256,a++}for(;a-- >0;)o.push(s[a]);return new Uint8Array(o)}function Nu(e){return Si(Si(e))}function n0(e){const t=Nu(e);return Pu([e,t.slice(0,4)])}function r0(e){const t=e.slice(0,-4),n=e.slice(-4);if(Nu(t).slice(0,4).toString()!==n.toString())throw new Error("Invalid checksum!");return t}const Sc={encode:e0,decode:t0},Lu={encode:e=>{const t=n0(e);return Sc.encode(t,"base58")},decode:e=>{const t=Sc.decode(e,"base58");return r0(t)}},Ru="qpzry9x8gf2tvdw0s3jn54khce6mua7l",s0=[996825010,642813549,513874426,1027748829,705979059],Ms=[{version:0,name:"bech32",const:1},{version:1,name:"bech32m",const:734539939}];function Hu(e){let t=1;for(let n=0;n>25;t=(t&33554431)<<5^e[n];for(let s=0;s<5;++s)(r>>s&1)!==0&&(t^=s0[s])}return t}function ju(e){const t=[];let n;for(n=0;n>5);for(t.push(0),n=0;n>5*(5-i)&31);return o}function Ku(e,t,n,r=!0){const s=[];let o=0,i=0;const a=(1<>t>0)throw new Error("Failed to perform base conversion. Invalid value: "+String(u));for(o=(o<=n;)i-=n,s.push(o>>i&a)}if(r)i>0&&s.push(o<=t||(o<0)throw new Error("Failed to perform base conversion. Invalid Size!");return s}function a0(e,t,n){const r=t.concat(i0(e,t,n));let s=e+"1";for(let o=0;oo.version===t[0])??Ms[0];if(!o0(r,t,s))throw new Error("Checksum verification failed!");return[r,t.slice(0,t.length-6)]}function c0(e){let t,n,r=!1,s=!1;for(t=0;t126)return!1;n>=97&&n<=122&&(r=!0),n>=65&&n<=90&&(s=!0)}return!(r&&s)}function u0(e){const t=e.lastIndexOf("1");return!(t<1||t+7>e.length||e.length>90)}function f0(e,t="bc",n=0){const r=[n,...Ku([...e],8,5)],s=Ms.find(i=>i.version===n)??Ms[0],o=a0(t,r,s);return Mu(o),o}function Mu(e){e=e.toLowerCase();const t=e.split("1",1)[0],[n,r]=Du(e),s=Ku(r.slice(1),5,8,!1),o=s.length;switch(!0){case t!==n:throw new Error("Returned hrp string is invalid.");case(s===null||o<2||o>40):throw new Error("Decoded string is invalid or out of spec.");case r[0]>16:throw new Error("Returned version bit is out of range.");default:return Uint8Array.from(s)}}function l0(e){e=e.toLowerCase();const[t,n]=Du(e);return n[0]}const Zu={encode:f0,decode:Mu,version:l0},Vu="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",qu="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",d0=new TextEncoder;function zu(e,t=!1,n=!0){typeof e=="string"&&(e=d0.encode(e));const r=t?qu:Vu;let s="",o=0,i=0;for(let a=0;a=6;)o-=6,s+=r[i>>o&63];if(o>0)for(i<<=6-o,s+=r[i&63];o<6;)s+=n?"=":"",o+=2;return s}function Fu(e,t=!1){const n=t||e.includes("-")||e.includes("_")?qu.split(""):Vu.split("");e=e.replace(/=+$/,"");const r=e.split("");let s=0,o=0;const i=[];for(let a=0;a=8&&(s-=8,i.push(o>>>s&255))}return new Uint8Array(i)}const Gu={encode:zu,decode:Fu},Wu={encode:e=>zu(e,!0,!1),decode:e=>Fu(e,!0)},h0=BigInt(0),p0=BigInt(255),Yu=BigInt(256);function g0(e){if(e<=0xffn)return 1;if(e<=0xffffn)return 2;if(e<=0xffffffffn)return 4;if(e<=0xffffffffffffffffn)return 8;if(e<=0xffffffffffffffffffffffffffffffffn)return 16;if(e<=0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffn)return 32;throw new TypeError("Must specify a fixed buffer size for bigints greater than 32 bytes.")}function m0(e,t,n="be"){t===void 0&&(t=g0(e));const r=n==="le",s=new ArrayBuffer(t),o=new DataView(s);let i=r?0:t-1;for(;e>h0;){const a=e&p0,c=Number(a);r?o.setUint8(i++,c):o.setUint8(i--,c),e=(e-a)/Yu}return new Uint8Array(s)}function y0(e){let t=BigInt(0);for(let n=e.length-1;n>=0;n--)t=t*Yu+BigInt(e[n]);return BigInt(t)}function b0(e){const t=e.split("").map(Number);if(t.length%8!==0)throw new Error(`Binary array is invalid length: ${e.length}`);const n=new Uint8Array(t.length/8);for(let r=0,s=0;r255)throw new Error(`Invalid byte value: ${r}. Byte values must be between 0 and 255.`);for(let s=7;s>=0;s--,n++)t[n]=r>>s&1}return t.join("")}function x0(e){if(e<=255)return 1;if(e<=65535)return 2;if(e<=4294967295)return 4;throw new TypeError("Numbers larger than 4 bytes must specify a fixed size!")}function v0(e,t,n="be"){t===void 0&&(t=x0(e));const r=n==="le",s=new ArrayBuffer(t),o=new DataView(s);let i=r?0:t-1;for(;e>0;){const a=e&255;r?o.setUint8(i++,e):o.setUint8(i--,e),e=(e-a)/256}return new Uint8Array(s)}function E0(e){let t=0;for(let n=e.length-1;n>=0;n--)t=t*256+e[n],Gh(t);return t}const k0=new TextEncoder,S0=new TextDecoder;function ca(e){return k0.encode(e)}function qo(e){return S0.decode(e)}function $0(e,t){Fh(e);const n=e.length/2;if(t===void 0&&(t=n),n>t)throw new TypeError(`Hex string is larger than array size: ${n} > ${t}`);return t}function _0(e,t,n="le"){t=$0(e,t);const r=n==="le",s=new ArrayBuffer(t),o=new DataView(s);let i=r?0:t-1;for(let a=0;atypeof r=="bigint"?`${r}n`:r);return ca(t)}function T0(e,t,n){if(e instanceof ArrayBuffer)return new Uint8Array(e);if(e instanceof Uint8Array)return Xh(e,t,n);if(typeof e=="string")return _0(e,t,n);if(typeof e=="bigint")return m0(e,t,n);if(typeof e=="number")return v0(e,t,n);if(typeof e=="boolean")return Uint8Array.of(e?1:0);throw TypeError("Unsupported format:"+typeof e)}var ee;let S=(ee=class extends Uint8Array{static random(t=32){const n=Yh(t);return new ee(n,t)}constructor(t,n,r){const s=T0(t,n,r);super(s)}get arr(){return[...this]}get num(){return this.toNum()}get big(){return this.toBig()}get str(){return this.toStr()}get hex(){return this.toHex()}get raw(){return new Uint8Array(this)}get bin(){return this.toBin()}get b58chk(){return this.tob58chk()}get base64(){return this.toBase64()}get b64url(){return this.toB64url()}get digest(){return this.toHash()}get id(){return this.toHash().hex}get stream(){return new xr(this)}toNum(t="be"){const n=t==="be"?this.reverse():this;return E0(n)}toBin(){return w0(this)}toBig(t="be"){const n=t==="be"?this.reverse():this;return y0(n)}toHash(){const t=Si(this);return new ee(t)}toJson(){const t=qo(this);return JSON.parse(t)}toBech32(t,n=0){return Zu.encode(this,t,n)}toStr(){return qo(this)}toHex(){return A0(this)}toBytes(){return new Uint8Array(this)}tob58chk(){return Lu.encode(this)}toBase64(){return Gu.encode(this)}toB64url(){return Wu.encode(this)}prepend(t){return ee.join([ee.bytes(t),this])}append(t){return ee.join([this,ee.bytes(t)])}slice(t,n){const r=new Uint8Array(this).slice(t,n);return new ee(r)}subarray(t,n){const r=new Uint8Array(this).subarray(t,n);return new ee(r)}reverse(){const t=new Uint8Array(this).reverse();return new ee(t)}write(t,n){const r=ee.bytes(t);this.set(r,n)}prefixSize(t){const n=ee.varInt(this.length,t);return ee.join([n,this])}static from(t){return new ee(Uint8Array.from(t))}static of(...t){return new ee(Uint8Array.of(...t))}static join(t){const n=t.map(s=>ee.bytes(s)),r=Pu(n);return new ee(r)}static varInt(t,n){if(t<253)return ee.num(t,1);if(t<65536)return ee.of(253,...ee.num(t,2,n));if(t<4294967296)return ee.of(254,...ee.num(t,4,n));if(BigInt(t)<0x10000000000000000n)return ee.of(255,...ee.num(t,8,n));throw new Error(`Value is too large: ${t}`)}},ee.num=O0,ee.big=C0,ee.bin=I0,ee.raw=P0,ee.str=U0,ee.hex=N0,ee.bytes=L0,ee.json=R0,ee.base64=H0,ee.b64url=j0,ee.bech32=K0,ee.b58chk=D0,ee.encode=ca,ee.decode=qo,ee);function O0(e,t,n){return new S(e,t,n)}function I0(e,t,n){return new S(b0(e),t,n)}function C0(e,t,n){return new S(e,t,n)}function P0(e,t,n){return new S(e,t,n)}function U0(e,t,n){return new S(ca(e),t,n)}function N0(e,t,n){return new S(e,t,n)}function L0(e,t,n){return new S(e,t,n)}function R0(e){return new S(B0(e))}function H0(e){return new S(Gu.decode(e))}function j0(e){return new S(Wu.decode(e))}function K0(e){return new S(Zu.decode(e))}function D0(e){return new S(Lu.decode(e))}let xr=class{constructor(t){this.data=S.bytes(t),this.size=this.data.length}peek(t){if(t>this.size)throw new Error(`Size greater than stream: ${t} > ${this.size}`);return new S(this.data.slice(0,t))}read(t){t=t??this.readSize();const n=this.peek(t);return this.data=this.data.slice(t),this.size=this.data.length,n}readSize(t){const n=this.read(1).num;switch(!0){case(n>=0&&n<253):return n;case n===253:return this.read(2).toNum(t);case n===254:return this.read(4).toNum(t);case n===255:return this.read(8).toNum(t);default:throw new Error(`Varint is out of range: ${n}`)}}};function Ot(e,t){const n=S.bytes(e);if(n.length!==t)throw new Error(`Invalid input size: ${n.hex} !== ${t}`)}function Ke(e,t){if(t)throw new Error(e);return!1}function Ls(e,...t){const n=S.str(e).digest.raw,r=t.map(s=>S.bytes(s));return S.join([n,n,S.join(r)]).digest}const Xu={OP_0:0,OP_PUSHDATA1:76,OP_PUSHDATA2:77,OP_PUSHDATA4:78,OP_1NEGATE:79,OP_SUCCESS80:80,OP_1:81,OP_2:82,OP_3:83,OP_4:84,OP_5:85,OP_6:86,OP_7:87,OP_8:88,OP_9:89,OP_10:90,OP_11:91,OP_12:92,OP_13:93,OP_14:94,OP_15:95,OP_16:96,OP_NOP:97,OP_SUCCESS98:98,OP_IF:99,OP_NOTIF:100,OP_ELSE:103,OP_ENDIF:104,OP_VERIFY:105,OP_RETURN:106,OP_TOALTSTACK:107,OP_FROMALTSTACK:108,OP_2DROP:109,OP_2DUP:110,OP_3DUP:111,OP_2OVER:112,OP_2ROT:113,OP_2SWAP:114,OP_IFDUP:115,OP_DEPTH:116,OP_DROP:117,OP_DUP:118,OP_NIP:119,OP_OVER:120,OP_PICK:121,OP_ROLL:122,OP_ROT:123,OP_SWAP:124,OP_TUCK:125,OP_SUCCESS126:126,OP_SUCCESS127:127,OP_SUCCESS128:128,OP_SUCCESS129:129,OP_SIZE:130,OP_SUCCESS131:131,OP_SUCCESS132:132,OP_SUCCESS133:133,OP_SUCCESS134:134,OP_EQUAL:135,OP_EQUALVERIFY:136,OP_SUCCESS137:137,OP_SUCCESS138:138,OP_1ADD:139,OP_1SUB:140,OP_SUCCESS141:141,OP_SUCCESS142:142,OP_NEGATE:143,OP_ABS:144,OP_NOT:145,OP_0NOTEQUAL:146,OP_ADD:147,OP_SUB:148,OP_SUCCESS149:149,OP_SUCCESS150:150,OP_SUCCESS151:151,OP_SUCCESS152:152,OP_SUCCESS153:153,OP_BOOLAND:154,OP_BOOLOR:155,OP_NUMEQUAL:156,OP_NUMEQUALVERIFY:157,OP_NUMNOTEQUAL:158,OP_LESSTHAN:159,OP_GREATERTHAN:160,OP_LESSTHANOREQUAL:161,OP_GREATERTHANOREQUAL:162,OP_MIN:163,OP_MAX:164,OP_WITHIN:165,OP_RIPEMD160:166,OP_SHA1:167,OP_SHA256:168,OP_HASH160:169,OP_HASH256:170,OP_CODESEPARATOR:171,OP_CHECKSIG:172,OP_CHECKSIGVERIFY:173,OP_CHECKMULTISIG:174,OP_CHECKMULTISIGVERIFY:175,OP_NOP1:176,OP_CHECKLOCKTIMEVERIFY:177,OP_CHECKSEQUENCEVERIFY:178,OP_NOP4:179,OP_NOP5:180,OP_NOP6:181,OP_NOP7:182,OP_NOP8:183,OP_NOP9:184,OP_NOP10:185,OP_CHECKSIGADD:186,OP_SUCCESS187:187,OP_SUCCESS188:188,OP_SUCCESS189:189,OP_SUCCESS190:190,OP_SUCCESS191:191,OP_SUCCESS192:192,OP_SUCCESS193:193,OP_SUCCESS194:194,OP_SUCCESS195:195,OP_SUCCESS196:196,OP_SUCCESS197:197,OP_SUCCESS198:198,OP_SUCCESS199:199,OP_SUCCESS200:200,OP_SUCCESS201:201,OP_SUCCESS202:202,OP_SUCCESS203:203,OP_SUCCESS204:204,OP_SUCCESS205:205,OP_SUCCESS206:206,OP_SUCCESS207:207,OP_SUCCESS208:208,OP_SUCCESS209:209,OP_SUCCESS210:210,OP_SUCCESS211:211,OP_SUCCESS212:212,OP_SUCCESS213:213,OP_SUCCESS214:214,OP_SUCCESS215:215,OP_SUCCESS216:216,OP_SUCCESS217:217,OP_SUCCESS218:218,OP_SUCCESS219:219,OP_SUCCESS220:220,OP_SUCCESS221:221,OP_SUCCESS222:222,OP_SUCCESS223:223,OP_SUCCESS224:224,OP_SUCCESS225:225,OP_SUCCESS226:226,OP_SUCCESS227:227,OP_SUCCESS228:228,OP_SUCCESS229:229,OP_SUCCESS230:230,OP_SUCCESS231:231,OP_SUCCESS232:232,OP_SUCCESS233:233,OP_SUCCESS234:234,OP_SUCCESS235:235,OP_SUCCESS236:236,OP_SUCCESS237:237,OP_SUCCESS238:238,OP_SUCCESS239:239,OP_SUCCESS240:240,OP_SUCCESS241:241,OP_SUCCESS242:242,OP_SUCCESS243:243,OP_SUCCESS244:244,OP_SUCCESS245:245,OP_SUCCESS246:246,OP_SUCCESS247:247,OP_SUCCESS248:248,OP_SUCCESS249:249,OP_SUCCESS250:250,OP_SUCCESS251:251,OP_SUCCESS252:252,OP_SUCCESS253:253,OP_SUCCESS254:254};function M0(e){if(e>186&&e<255)return"OP_SUCCESS"+String(e);for(const[t,n]of Object.entries(Xu))if(n===e)return t;throw new Error("OPCODE not found:"+String(e))}function Z0(e){for(const[t,n]of Object.entries(Xu))if(t===e)return Number(n);throw new Error("OPCODE not found:"+e)}function V0(e){switch(!0){case e===0:return"opcode";case(e>=1&&e<=75):return"varint";case e===76:return"pushdata1";case e===77:return"pushdata2";case e===78:return"pushdata4";case e<=254:return"opcode";default:throw new Error(`Invalid word range: ${e}`)}}function q0(e){const r=[];switch(!0){case typeof e!="number":return!1;case e===0:return!0;case r.includes(e):return!1;case(750?S.join(t):new Uint8Array}function z0(e){let t=new Uint8Array;if(typeof e=="string"){if(e.startsWith("OP_"))return S.num(Z0(e),1);Mt(e)?t=S.hex(e):t=S.str(e)}else t=S.bytes(e);if(t.length===1)return t[0]!==0&&t[0]<=16?(t[0]+=80,t):(t[0]>128&&t[0]<=255&&(t=new Uint8Array([t[0],0])),S.join([$c(t.length),t]));if(t.length>Zs){const n=F0(t);return Qu(n)}else return S.join([$c(t.length),t])}function $c(e){const t=S.num(76,1),n=S.num(77,1);switch(!0){case e<=75:return S.num(e);case(e>75&&e<256):return S.join([t,S.num(e,1,"le")]);case(e>=256&&e<=Zs):return S.join([n,S.num(e,2,"le")]);default:throw new Error("Invalid word size:"+e.toString())}}function F0(e){const t=[],n=new xr(e);for(;n.size>Zs;)t.push(n.read(Zs));return t.push(n.read(n.size)),t}function ua(e,t=!1){let n=S.bytes(e);if(t){const s=n.stream.readSize("le");if(n=n.slice(1),n.length!==s)throw new Error(`Varint does not match stream size: ${s} !== ${n.length}`)}return G0(n)}function G0(e){const t=new xr(e),n=[],r=t.size;let s,o,i,a=0;for(;a0&&!t.includes(e.length))throw new TypeError(`Expected Uint8Array of length ${t}, not of length=${e.length}`)}function ep(e){if(typeof e!="function"||typeof e.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");$i(e.outputLen),$i(e.blockLen)}function tp(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function np(e,t){ef(e);const n=t.outputLen;if(e.lengthnew DataView(e.buffer,e.byteOffset,e.byteLength),bt=(e,t)=>e<<32-t|e>>>t,sp=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!sp)throw new Error("Non little-endian hardware is not supported");Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function op(e){if(typeof e!="string")throw new TypeError(`utf8ToBytes expected string, got ${typeof e}`);return new TextEncoder().encode(e)}function fa(e){if(typeof e=="string"&&(e=op(e)),!(e instanceof Uint8Array))throw new TypeError(`Expected input type is Uint8Array (got ${typeof e})`);return e}function ip(...e){if(!e.every(r=>r instanceof Uint8Array))throw new Error("Uint8Array list expected");if(e.length===1)return e[0];const t=e.reduce((r,s)=>r+s.length,0),n=new Uint8Array(t);for(let r=0,s=0;re().update(fa(r)).digest(),n=e();return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=()=>e(),t}function ap(e=32){if(zo&&typeof zo.getRandomValues=="function")return zo.getRandomValues(new Uint8Array(e));throw new Error("crypto.getRandomValues must be defined")}function cp(e,t,n,r){if(typeof e.setBigUint64=="function")return e.setBigUint64(t,n,r);const s=BigInt(32),o=BigInt(4294967295),i=Number(n>>s&o),a=Number(n&o),c=r?4:0,u=r?0:4;e.setUint32(t+c,i,r),e.setUint32(t+u,a,r)}let up=class extends tf{constructor(t,n,r,s){super(),this.blockLen=t,this.outputLen=n,this.padOffset=r,this.isLE=s,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(t),this.view=Fo(this.buffer)}update(t){An.exists(this);const{view:n,buffer:r,blockLen:s}=this;t=fa(t);const o=t.length;for(let i=0;is-i&&(this.process(r,0),i=0);for(let f=i;fl.length)throw new Error("_sha2: outputLen bigger than state");for(let f=0;fe&t^~e&n,lp=(e,t,n)=>e&t^e&n^t&n,dp=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),qt=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),zt=new Uint32Array(64);let rf=class extends up{constructor(){super(64,32,8,!1),this.A=qt[0]|0,this.B=qt[1]|0,this.C=qt[2]|0,this.D=qt[3]|0,this.E=qt[4]|0,this.F=qt[5]|0,this.G=qt[6]|0,this.H=qt[7]|0}get(){const{A:t,B:n,C:r,D:s,E:o,F:i,G:a,H:c}=this;return[t,n,r,s,o,i,a,c]}set(t,n,r,s,o,i,a,c){this.A=t|0,this.B=n|0,this.C=r|0,this.D=s|0,this.E=o|0,this.F=i|0,this.G=a|0,this.H=c|0}process(t,n){for(let f=0;f<16;f++,n+=4)zt[f]=t.getUint32(n,!1);for(let f=16;f<64;f++){const d=zt[f-15],h=zt[f-2],p=bt(d,7)^bt(d,18)^d>>>3,g=bt(h,17)^bt(h,19)^h>>>10;zt[f]=g+zt[f-7]+p+zt[f-16]|0}let{A:r,B:s,C:o,D:i,E:a,F:c,G:u,H:l}=this;for(let f=0;f<64;f++){const d=bt(a,6)^bt(a,11)^bt(a,25),h=l+d+fp(a,c,u)+dp[f]+zt[f]|0,g=(bt(r,2)^bt(r,13)^bt(r,22))+lp(r,s,o)|0;l=u,u=c,c=a,a=i+h|0,i=o,o=s,s=r,r=h+g|0}r=r+this.A|0,s=s+this.B|0,o=o+this.C|0,i=i+this.D|0,a=a+this.E|0,c=c+this.F|0,u=u+this.G|0,l=l+this.H|0,this.set(r,s,o,i,a,c,u,l)}roundClean(){zt.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}},hp=class extends rf{constructor(){super(),this.A=-1056596264,this.B=914150663,this.C=812702999,this.D=-150054599,this.E=-4191439,this.F=1750603025,this.G=1694076839,this.H=-1090891868,this.outputLen=28}};const sf=nf(()=>new rf);nf(()=>new hp);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const pp=BigInt(0),la=BigInt(1),gp=BigInt(2),vo=e=>e instanceof Uint8Array,mp=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function ar(e){if(!vo(e))throw new Error("Uint8Array expected");let t="";for(let n=0;ncr(e.toString(16).padStart(t*2,"0")),af=(e,t)=>nr(e,t).reverse(),yp=e=>cr(of(e));function rt(e,t,n){let r;if(typeof t=="string")try{r=cr(t)}catch(o){throw new Error(`${e} must be valid hex string, got "${t}". Cause: ${o}`)}else if(vo(t))r=Uint8Array.from(t);else throw new Error(`${e} must be hex string or Uint8Array`);const s=r.length;if(typeof n=="number"&&s!==n)throw new Error(`${e} expected ${n} bytes, got ${s}`);return r}function at(...e){const t=new Uint8Array(e.reduce((r,s)=>r+s.length,0));let n=0;return e.forEach(r=>{if(!vo(r))throw new Error("Uint8Array expected");t.set(r,n),n+=r.length}),t}function bp(e,t){if(e.length!==t.length)return!1;for(let n=0;n0n;e>>=la,t+=1);return t}const xp=(e,t)=>e>>BigInt(t)&1n,vp=(e,t,n)=>e|(n?la:pp)<(gp<new Uint8Array(e),_c=e=>Uint8Array.from(e);function cf(e,t,n){if(typeof e!="number"||e<2)throw new Error("hashLen must be a number");if(typeof t!="number"||t<2)throw new Error("qByteLen must be a number");if(typeof n!="function")throw new Error("hmacFn must be a function");let r=Go(e),s=Go(e),o=0;const i=()=>{r.fill(1),s.fill(0),o=0},a=(...f)=>n(s,r,...f),c=(f=Go())=>{s=a(_c([0]),f),r=a(),f.length!==0&&(s=a(_c([1]),f),r=a())},u=()=>{if(o++>=1e3)throw new Error("drbg: tried 1000 values");let f=0;const d=[];for(;f{i(),c(f);let h;for(;!(h=d(u()));)c();return i(),h}}const Ep={bigint:e=>typeof e=="bigint",function:e=>typeof e=="function",boolean:e=>typeof e=="boolean",string:e=>typeof e=="string",isSafeInteger:e=>Number.isSafeInteger(e),array:e=>Array.isArray(e),field:(e,t)=>t.Fp.isValid(e),hash:e=>typeof e=="function"&&Number.isSafeInteger(e.outputLen)};function vr(e,t,n={}){const r=(s,o,i)=>{const a=Ep[o];if(typeof a!="function")throw new Error(`Invalid validator "${o}", expected function`);const c=e[s];if(!(i&&c===void 0)&&!a(c,e))throw new Error(`Invalid param ${String(s)}=${c} (${typeof c}), expected ${o}`)};for(const[s,o]of Object.entries(t))r(s,o,!1);for(const[s,o]of Object.entries(n))r(s,o,!0);return e}var kp=Object.freeze({__proto__:null,bitGet:xp,bitLen:wp,bitMask:pa,bitSet:vp,bytesToHex:ar,bytesToNumberBE:dn,bytesToNumberLE:ha,concatBytes:at,createHmacDrbg:cf,ensureBytes:rt,equalBytes:bp,hexToBytes:cr,hexToNumber:da,numberToBytesBE:nr,numberToBytesLE:af,numberToHexUnpadded:of,numberToVarBytesBE:yp,utf8ToBytes:Eo,validateObject:vr});/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const Pe=BigInt(0),Ae=BigInt(1),Sn=BigInt(2),Sp=BigInt(3),_i=BigInt(4),Ac=BigInt(5),Bc=BigInt(8);BigInt(9);BigInt(16);function De(e,t){const n=e%t;return n>=Pe?n:t+n}function $p(e,t,n){if(n<=Pe||t 0");if(n===Ae)return Pe;let r=Ae;for(;t>Pe;)t&Ae&&(r=r*e%n),e=e*e%n,t>>=Ae;return r}function nt(e,t,n){let r=e;for(;t-- >Pe;)r*=r,r%=n;return r}function Ai(e,t){if(e===Pe||t<=Pe)throw new Error(`invert: expected positive integers, got n=${e} mod=${t}`);let n=De(e,t),r=t,s=Pe,o=Ae;for(;n!==Pe;){const a=r/n,c=r%n,u=s-o*a;r=n,n=c,s=o,o=u}if(r!==Ae)throw new Error("invert: does not exist");return De(s,t)}function _p(e){const t=(e-Ae)/Sn;let n,r,s;for(n=e-Ae,r=0;n%Sn===Pe;n/=Sn,r++);for(s=Sn;s(r[s]="function",r),t);return vr(e,n)}function Tp(e,t,n){if(n 0");if(n===Pe)return e.ONE;if(n===Ae)return t;let r=e.ONE,s=t;for(;n>Pe;)n&Ae&&(r=e.mul(r,s)),s=e.sqr(s),n>>=Ae;return r}function Op(e,t){const n=new Array(t.length),r=t.reduce((o,i,a)=>e.is0(i)?o:(n[a]=o,e.mul(o,i)),e.ONE),s=e.inv(r);return t.reduceRight((o,i,a)=>e.is0(i)?o:(n[a]=e.mul(o,n[a]),e.mul(o,i)),s),n}function ga(e,t){const n=t!==void 0?t:e.toString(2).length,r=Math.ceil(n/8);return{nBitLength:n,nByteLength:r}}function ff(e,t,n=!1,r={}){if(e<=Pe)throw new Error(`Expected Fp ORDER > 0, got ${e}`);const{nBitLength:s,nByteLength:o}=ga(e,t);if(o>2048)throw new Error("Field lengths over 2048 bytes are not supported");const i=Ap(e),a=Object.freeze({ORDER:e,BITS:s,BYTES:o,MASK:pa(s),ZERO:Pe,ONE:Ae,create:c=>De(c,e),isValid:c=>{if(typeof c!="bigint")throw new Error(`Invalid field element: expected bigint, got ${typeof c}`);return Pe<=c&&cc===Pe,isOdd:c=>(c&Ae)===Ae,neg:c=>De(-c,e),eql:(c,u)=>c===u,sqr:c=>De(c*c,e),add:(c,u)=>De(c+u,e),sub:(c,u)=>De(c-u,e),mul:(c,u)=>De(c*u,e),pow:(c,u)=>Tp(a,c,u),div:(c,u)=>De(c*Ai(u,e),e),sqrN:c=>c*c,addN:(c,u)=>c+u,subN:(c,u)=>c-u,mulN:(c,u)=>c*u,inv:c=>Ai(c,e),sqrt:r.sqrt||(c=>i(a,c)),invertBatch:c=>Op(a,c),cmov:(c,u,l)=>l?u:c,toBytes:c=>n?af(c,o):nr(c,o),fromBytes:c=>{if(c.length!==o)throw new Error(`Fp.fromBytes: expected ${o}, got ${c.length}`);return n?ha(c):dn(c)}});return Object.freeze(a)}function Ip(e,t,n=!1){e=rt("privateHash",e);const r=e.length,s=ga(t).nByteLength+8;if(s<24||r1024)throw new Error(`hashToPrivateScalar: expected ${s}-1024 bytes of input, got ${r}`);const o=n?ha(e):dn(e);return De(o,t-Ae)+Ae}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const Cp=BigInt(0),Wo=BigInt(1);function Pp(e,t){const n=(s,o)=>{const i=o.negate();return s?i:o},r=s=>{const o=Math.ceil(t/s)+1,i=2**(s-1);return{windows:o,windowSize:i}};return{constTimeNegate:n,unsafeLadder(s,o){let i=e.ZERO,a=s;for(;o>Cp;)o&Wo&&(i=i.add(a)),a=a.double(),o>>=Wo;return i},precomputeWindow(s,o){const{windows:i,windowSize:a}=r(o),c=[];let u=s,l=u;for(let f=0;f>=h,y>c&&(y-=d,i+=Wo);const b=g,w=g+Math.abs(y)-1,m=p%2!==0,v=y<0;y===0?l=l.add(n(m,o[b])):u=u.add(n(v,o[w]))}return{p:u,f:l}},wNAFCached(s,o,i,a){const c=s._WINDOW_SIZE||1;let u=o.get(s);return u||(u=this.precomputeWindow(s,c),c!==1&&o.set(s,a(u))),this.wNAF(c,u,i)}}}function lf(e){return uf(e.Fp),vr(e,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...ga(e.n,e.nBitLength),...e,p:e.Fp.ORDER})}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function Up(e){const t=lf(e);vr(t,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});const{endo:n,Fp:r,a:s}=t;if(n){if(!r.eql(s,r.ZERO))throw new Error("Endomorphism can only be defined for Koblitz curves that have a=0");if(typeof n!="object"||typeof n.beta!="bigint"||typeof n.splitScalar!="function")throw new Error("Expected endomorphism with beta: bigint and splitScalar: function")}return Object.freeze({...t})}const{bytesToNumberBE:Np,hexToBytes:Lp}=kp,Bn={Err:class extends Error{constructor(t=""){super(t)}},_parseInt(e){const{Err:t}=Bn;if(e.length<2||e[0]!==2)throw new t("Invalid signature integer tag");const n=e[1],r=e.subarray(2,n+2);if(!n||r.length!==n)throw new t("Invalid signature integer: wrong length");if(r[0]===0&&r[1]<=127)throw new t("Invalid signature integer: trailing length");return{d:Np(r),l:e.subarray(n+2)}},toSig(e){const{Err:t}=Bn,n=typeof e=="string"?Lp(e):e;if(!(n instanceof Uint8Array))throw new Error("ui8a expected");let r=n.length;if(r<2||n[0]!=48)throw new t("Invalid signature tag");if(n[1]!==r-2)throw new t("Invalid signature: incorrect length");const{d:s,l:o}=Bn._parseInt(n.subarray(2)),{d:i,l:a}=Bn._parseInt(o);if(a.length)throw new t("Invalid signature: left bytes after parsing");return{r:s,s:i}},hexFromSig(e){const t=u=>Number.parseInt(u[0],16)>=8?"00"+u:u,n=u=>{const l=u.toString(16);return l.length&1?`0${l}`:l},r=t(n(e.s)),s=t(n(e.r)),o=r.length/2,i=s.length/2,a=n(o),c=n(i);return`30${n(i+o+4)}02${c}${s}02${a}${r}`}},ct=BigInt(0),Oe=BigInt(1),Pt=BigInt(2),Vs=BigInt(3),Tc=BigInt(4);function Rp(e){const t=Up(e),{Fp:n}=t,r=t.toBytes||((p,g,y)=>{const b=g.toAffine();return at(Uint8Array.from([4]),n.toBytes(b.x),n.toBytes(b.y))}),s=t.fromBytes||(p=>{const g=p.subarray(1),y=n.fromBytes(g.subarray(0,n.BYTES)),b=n.fromBytes(g.subarray(n.BYTES,2*n.BYTES));return{x:y,y:b}});function o(p){const{a:g,b:y}=t,b=n.sqr(p),w=n.mul(b,p);return n.add(n.add(w,n.mul(p,g)),y)}function i(p){return typeof p=="bigint"&&ctn.eql(m,n.ZERO);return w(y)&&w(b)?f.ZERO:new f(y,b,n.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(g){const y=n.invertBatch(g.map(b=>b.pz));return g.map((b,w)=>b.toAffine(y[w])).map(f.fromAffine)}static fromHex(g){const y=f.fromAffine(s(rt("pointHex",g)));return y.assertValidity(),y}static fromPrivateKey(g){return f.BASE.multiply(c(g))}_setWindowSize(g){this._WINDOW_SIZE=g,u.delete(this)}assertValidity(){if(this.is0()){if(t.allowInfinityPoint)return;throw new Error("bad point: ZERO")}const{x:g,y}=this.toAffine();if(!n.isValid(g)||!n.isValid(y))throw new Error("bad point: x or y not FE");const b=n.sqr(y),w=o(g);if(!n.eql(b,w))throw new Error("bad point: equation left != right");if(!this.isTorsionFree())throw new Error("bad point: not in prime-order subgroup")}hasEvenY(){const{y:g}=this.toAffine();if(n.isOdd)return!n.isOdd(g);throw new Error("Field doesn't support isOdd")}equals(g){l(g);const{px:y,py:b,pz:w}=this,{px:m,py:v,pz:k}=g,O=n.eql(n.mul(y,k),n.mul(m,w)),C=n.eql(n.mul(b,k),n.mul(v,w));return O&&C}negate(){return new f(this.px,n.neg(this.py),this.pz)}double(){const{a:g,b:y}=t,b=n.mul(y,Vs),{px:w,py:m,pz:v}=this;let k=n.ZERO,O=n.ZERO,C=n.ZERO,P=n.mul(w,w),B=n.mul(m,m),N=n.mul(v,v),H=n.mul(w,m);return H=n.add(H,H),C=n.mul(w,v),C=n.add(C,C),k=n.mul(g,C),O=n.mul(b,N),O=n.add(k,O),k=n.sub(B,O),O=n.add(B,O),O=n.mul(k,O),k=n.mul(H,k),C=n.mul(b,C),N=n.mul(g,N),H=n.sub(P,N),H=n.mul(g,H),H=n.add(H,C),C=n.add(P,P),P=n.add(C,P),P=n.add(P,N),P=n.mul(P,H),O=n.add(O,P),N=n.mul(m,v),N=n.add(N,N),P=n.mul(N,H),k=n.sub(k,P),C=n.mul(N,B),C=n.add(C,C),C=n.add(C,C),new f(k,O,C)}add(g){l(g);const{px:y,py:b,pz:w}=this,{px:m,py:v,pz:k}=g;let O=n.ZERO,C=n.ZERO,P=n.ZERO;const B=t.a,N=n.mul(t.b,Vs);let H=n.mul(y,m),K=n.mul(b,v),E=n.mul(w,k),$=n.add(y,b),x=n.add(m,v);$=n.mul($,x),x=n.add(H,K),$=n.sub($,x),x=n.add(y,w);let _=n.add(m,k);return x=n.mul(x,_),_=n.add(H,E),x=n.sub(x,_),_=n.add(b,w),O=n.add(v,k),_=n.mul(_,O),O=n.add(K,E),_=n.sub(_,O),P=n.mul(B,x),O=n.mul(N,E),P=n.add(O,P),O=n.sub(K,P),P=n.add(K,P),C=n.mul(O,P),K=n.add(H,H),K=n.add(K,H),E=n.mul(B,E),x=n.mul(N,x),K=n.add(K,E),E=n.sub(H,E),E=n.mul(B,E),x=n.add(x,E),H=n.mul(K,x),C=n.add(C,H),H=n.mul(_,x),O=n.mul($,O),O=n.sub(O,H),H=n.mul($,K),P=n.mul(_,P),P=n.add(P,H),new f(O,C,P)}subtract(g){return this.add(g.negate())}is0(){return this.equals(f.ZERO)}wNAF(g){return h.wNAFCached(this,u,g,y=>{const b=n.invertBatch(y.map(w=>w.pz));return y.map((w,m)=>w.toAffine(b[m])).map(f.fromAffine)})}multiplyUnsafe(g){const y=f.ZERO;if(g===ct)return y;if(a(g),g===Oe)return this;const{endo:b}=t;if(!b)return h.unsafeLadder(this,g);let{k1neg:w,k1:m,k2neg:v,k2:k}=b.splitScalar(g),O=y,C=y,P=this;for(;m>ct||k>ct;)m&Oe&&(O=O.add(P)),k&Oe&&(C=C.add(P)),P=P.double(),m>>=Oe,k>>=Oe;return w&&(O=O.negate()),v&&(C=C.negate()),C=new f(n.mul(C.px,b.beta),C.py,C.pz),O.add(C)}multiply(g){a(g);let y=g,b,w;const{endo:m}=t;if(m){const{k1neg:v,k1:k,k2neg:O,k2:C}=m.splitScalar(y);let{p:P,f:B}=this.wNAF(k),{p:N,f:H}=this.wNAF(C);P=h.constTimeNegate(v,P),N=h.constTimeNegate(O,N),N=new f(n.mul(N.px,m.beta),N.py,N.pz),b=P.add(N),w=B.add(H)}else{const{p:v,f:k}=this.wNAF(y);b=v,w=k}return f.normalizeZ([b,w])[0]}multiplyAndAddUnsafe(g,y,b){const w=f.BASE,m=(k,O)=>O===ct||O===Oe||!k.equals(w)?k.multiplyUnsafe(O):k.multiply(O),v=m(this,y).add(m(g,b));return v.is0()?void 0:v}toAffine(g){const{px:y,py:b,pz:w}=this,m=this.is0();g==null&&(g=m?n.ONE:n.inv(w));const v=n.mul(y,g),k=n.mul(b,g),O=n.mul(w,g);if(m)return{x:n.ZERO,y:n.ZERO};if(!n.eql(O,n.ONE))throw new Error("invZ was invalid");return{x:v,y:k}}isTorsionFree(){const{h:g,isTorsionFree:y}=t;if(g===Oe)return!0;if(y)return y(f,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){const{h:g,clearCofactor:y}=t;return g===Oe?this:y?y(f,this):this.multiplyUnsafe(t.h)}toRawBytes(g=!0){return this.assertValidity(),r(f,this,g)}toHex(g=!0){return ar(this.toRawBytes(g))}}f.BASE=new f(t.Gx,t.Gy,n.ONE),f.ZERO=new f(n.ZERO,n.ONE,n.ZERO);const d=t.nBitLength,h=Pp(f,t.endo?Math.ceil(d/2):d);return{CURVE:t,ProjectivePoint:f,normPrivateKeyToScalar:c,weierstrassEquation:o,isWithinCurveOrder:i}}function Hp(e){const t=lf(e);return vr(t,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...t})}function jp(e){const t=Hp(e),{Fp:n,n:r}=t,s=n.BYTES+1,o=2*n.BYTES+1;function i(x){return ctar(nr(x,t.nByteLength));function p(x){const _=r>>Oe;return x>_}function g(x){return p(x)?a(-x):x}const y=(x,_,I)=>dn(x.slice(_,I));class b{constructor(_,I,L){this.r=_,this.s=I,this.recovery=L,this.assertValidity()}static fromCompact(_){const I=t.nByteLength;return _=rt("compactSignature",_,I*2),new b(y(_,0,I),y(_,I,2*I))}static fromDER(_){const{r:I,s:L}=Bn.toSig(rt("DER",_));return new b(I,L)}assertValidity(){if(!d(this.r))throw new Error("r must be 0 < r < CURVE.n");if(!d(this.s))throw new Error("s must be 0 < s < CURVE.n")}addRecoveryBit(_){return new b(this.r,this.s,_)}recoverPublicKey(_){const{r:I,s:L,recovery:U}=this,j=C(rt("msgHash",_));if(U==null||![0,1,2,3].includes(U))throw new Error("recovery id invalid");const M=U===2||U===3?I+t.n:I;if(M>=n.ORDER)throw new Error("recovery id 2 or 3 invalid");const z=(U&1)===0?"02":"03",ce=u.fromHex(z+h(M)),oe=c(M),Q=a(-j*oe),de=a(L*oe),he=u.BASE.multiplyAndAddUnsafe(ce,Q,de);if(!he)throw new Error("point at infinify");return he.assertValidity(),he}hasHighS(){return p(this.s)}normalizeS(){return this.hasHighS()?new b(this.r,a(-this.s),this.recovery):this}toDERRawBytes(){return cr(this.toDERHex())}toDERHex(){return Bn.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return cr(this.toCompactHex())}toCompactHex(){return h(this.r)+h(this.s)}}const w={isValidPrivateKey(x){try{return l(x),!0}catch{return!1}},normPrivateKeyToScalar:l,randomPrivateKey:()=>{const x=t.randomBytes(n.BYTES+8),_=Ip(x,r);return nr(_,t.nByteLength)},precompute(x=8,_=u.BASE){return _._setWindowSize(x),_.multiply(BigInt(3)),_}};function m(x,_=!0){return u.fromPrivateKey(x).toRawBytes(_)}function v(x){const _=x instanceof Uint8Array,I=typeof x=="string",L=(_||I)&&x.length;return _?L===s||L===o:I?L===2*s||L===2*o:x instanceof u}function k(x,_,I=!0){if(v(x))throw new Error("first arg must be private key");if(!v(_))throw new Error("second arg must be public key");return u.fromHex(_).multiply(l(x)).toRawBytes(I)}const O=t.bits2int||function(x){const _=dn(x),I=x.length*8-t.nBitLength;return I>0?_>>BigInt(I):_},C=t.bits2int_modN||function(x){return a(O(x))},P=pa(t.nBitLength);function B(x){if(typeof x!="bigint")throw new Error("bigint expected");if(!(ct<=x&&xue in I))throw new Error("sign() legacy options not supported");const{hash:L,randomBytes:U}=t;let{lowS:j,prehash:M,extraEntropy:z}=I;j==null&&(j=!0),x=rt("msgHash",x),M&&(x=rt("prehashed msgHash",L(x)));const ce=C(x),oe=l(_),Q=[B(oe),B(ce)];if(z!=null){const ue=z===!0?U(n.BYTES):z;Q.push(rt("extraEntropy",ue,n.BYTES))}const de=at(...Q),he=ce;function _e(ue){const be=O(ue);if(!d(be))return;const It=c(be),tt=u.BASE.multiply(be).toAffine(),Ne=a(tt.x);if(Ne===ct)return;const Ct=a(It*a(he+Ne*oe));if(Ct===ct)return;let Tr=(tt.x===Ne?0:2)|Number(tt.y&Oe),Ec=Ct;return j&&p(Ct)&&(Ec=g(Ct),Tr^=1),new b(Ne,Ec,Tr)}return{seed:de,k2sig:_e}}const H={lowS:t.lowS,prehash:!1},K={lowS:t.lowS,prehash:!1};function E(x,_,I=H){const{seed:L,k2sig:U}=N(x,_,I);return cf(t.hash.outputLen,t.nByteLength,t.hmac)(L,U)}u.BASE._setWindowSize(8);function $(x,_,I,L=K){var tt;const U=x;if(_=rt("msgHash",_),I=rt("publicKey",I),"strict"in L)throw new Error("options.strict was renamed to lowS");const{lowS:j,prehash:M}=L;let z,ce;try{if(typeof U=="string"||U instanceof Uint8Array)try{z=b.fromDER(U)}catch(Ne){if(!(Ne instanceof Bn.Err))throw Ne;z=b.fromCompact(U)}else if(typeof U=="object"&&typeof U.r=="bigint"&&typeof U.s=="bigint"){const{r:Ne,s:Ct}=U;z=new b(Ne,Ct)}else throw new Error("PARSE");ce=u.fromHex(I)}catch(Ne){if(Ne.message==="PARSE")throw new Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(j&&z.hasHighS())return!1;M&&(_=t.hash(_));const{r:oe,s:Q}=z,de=C(_),he=c(Q),_e=a(de*he),ue=a(oe*he),be=(tt=u.BASE.multiplyAndAddUnsafe(ce,_e,ue))==null?void 0:tt.toAffine();return be?a(be.x)===oe:!1}return{CURVE:t,getPublicKey:m,getSharedSecret:k,sign:E,verify:$,ProjectivePoint:u,Signature:b,utils:w}}function Kp(e,t){const n=e.ORDER;let r=ct;for(let d=n-Oe;d%Pt===ct;d/=Pt)r+=Oe;const s=r,o=(n-Oe)/Pt**s,i=(o-Oe)/Pt,a=Pt**s-Oe,c=Pt**(s-Oe),u=e.pow(t,o),l=e.pow(t,(o+Oe)/Pt);let f=(d,h)=>{let p=u,g=e.pow(h,a),y=e.sqr(g);y=e.mul(y,h);let b=e.mul(d,y);b=e.pow(b,i),b=e.mul(b,g),g=e.mul(b,h),y=e.mul(b,d);let w=e.mul(y,g);b=e.pow(w,c);let m=e.eql(b,e.ONE);g=e.mul(y,l),b=e.mul(w,p),y=e.cmov(g,y,m),w=e.cmov(b,w,m);for(let v=s;v>1;v--){let k=Pt**(v-Pt),O=e.pow(w,k);const C=e.eql(O,e.ONE);g=e.mul(y,p),p=e.mul(p,p),O=e.mul(w,p),y=e.cmov(g,y,C),w=e.cmov(O,w,C)}return{isValid:m,value:y}};if(e.ORDER%Tc===Vs){const d=(e.ORDER-Vs)/Tc,h=e.sqrt(e.neg(t));f=(p,g)=>{let y=e.sqr(g);const b=e.mul(p,g);y=e.mul(y,b);let w=e.pow(y,d);w=e.mul(w,b);const m=e.mul(w,h),v=e.mul(e.sqr(w),g),k=e.eql(v,p);let O=e.cmov(m,w,k);return{isValid:k,value:O}}}return f}function Dp(e,t){if(uf(e),!e.isValid(t.A)||!e.isValid(t.B)||!e.isValid(t.Z))throw new Error("mapToCurveSimpleSWU: invalid opts");const n=Kp(e,t.Z);if(!e.isOdd)throw new Error("Fp.isOdd is not implemented!");return r=>{let s,o,i,a,c,u,l,f;s=e.sqr(r),s=e.mul(s,t.Z),o=e.sqr(s),o=e.add(o,s),i=e.add(o,e.ONE),i=e.mul(i,t.B),a=e.cmov(t.Z,e.neg(o),!e.eql(o,e.ZERO)),a=e.mul(a,t.A),o=e.sqr(i),u=e.sqr(a),c=e.mul(u,t.A),o=e.add(o,c),o=e.mul(o,i),u=e.mul(u,a),c=e.mul(u,t.B),o=e.add(o,c),l=e.mul(s,i);const{isValid:d,value:h}=n(o,u);f=e.mul(s,r),f=e.mul(f,h),l=e.cmov(l,i,d),f=e.cmov(f,h,d);const p=e.isOdd(r)===e.isOdd(f);return f=e.cmov(e.neg(f),f,p),l=e.div(l,a),{x:l,y:f}}}function Mp(e){if(e instanceof Uint8Array)return e;if(typeof e=="string")return Eo(e);throw new Error("DST must be Uint8Array or string")}const Zp=dn;function sn(e,t){if(e<0||e>=1<<8*t)throw new Error(`bad I2OSP call: value=${e} length=${t}`);const n=Array.from({length:t}).fill(0);for(let r=t-1;r>=0;r--)n[r]=e&255,e>>>=8;return new Uint8Array(n)}function Vp(e,t){const n=new Uint8Array(e.length);for(let r=0;r255&&(t=r(at(Eo("H2C-OVERSIZE-DST-"),t)));const{outputLen:s,blockLen:o}=r,i=Math.ceil(n/s);if(i>255)throw new Error("Invalid xmd length");const a=at(t,sn(t.length,1)),c=sn(0,o),u=sn(n,2),l=new Array(i),f=r(at(c,e,u,sn(0,1),a));l[0]=r(at(f,sn(1,1),a));for(let h=1;h<=i;h++){const p=[Vp(f,l[h-1]),sn(h+1,1),a];l[h]=r(at(...p))}return at(...l).slice(0,n)}function zp(e,t,n,r,s){if(jr(e),jr(t),ma(n),t.length>255){const o=Math.ceil(2*r/8);t=s.create({dkLen:o}).update(Eo("H2C-OVERSIZE-DST-")).update(t).digest()}if(n>65535||t.length>255)throw new Error("expand_message_xof: invalid lenInBytes");return s.create({dkLen:n}).update(e).update(sn(n,2)).update(t).update(sn(t.length,1)).digest()}function Oc(e,t,n){vr(n,{DST:"string",p:"bigint",m:"isSafeInteger",k:"isSafeInteger",hash:"hash"});const{p:r,k:s,m:o,hash:i,expand:a,DST:c}=n;jr(e),ma(t);const u=Mp(c),l=r.toString(2).length,f=Math.ceil((l+s)/8),d=t*o*f;let h;if(a==="xmd")h=qp(e,u,d,i);else if(a==="xof")h=zp(e,u,d,s,i);else if(a===void 0)h=e;else throw new Error('expand must be "xmd", "xof" or undefined');const p=new Array(t);for(let g=0;gArray.from(r).reverse());return(r,s)=>{const[o,i,a,c]=n.map(u=>u.reduce((l,f)=>e.add(e.mul(l,r),f)));return r=e.div(o,i),s=e.mul(s,e.div(a,c)),{x:r,y:s}}}function Gp(e,t,n){if(typeof t!="function")throw new Error("mapToCurve() must be defined");return{hashToCurve(r,s){const o=Oc(r,2,{...n,DST:n.DST,...s}),i=e.fromAffine(t(o[0])),a=e.fromAffine(t(o[1])),c=i.add(a).clearCofactor();return c.assertValidity(),c},encodeToCurve(r,s){const o=Oc(r,1,{...n,DST:n.encodeDST,...s}),i=e.fromAffine(t(o[0])).clearCofactor();return i.assertValidity(),i}}}let df=class extends tf{constructor(t,n){super(),this.finished=!1,this.destroyed=!1,An.hash(t);const r=fa(n);if(this.iHash=t.create(),typeof this.iHash.update!="function")throw new TypeError("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const s=this.blockLen,o=new Uint8Array(s);o.set(r.length>s?t.create().update(r).digest():r);for(let i=0;inew df(e,t).update(n).digest();hf.create=(e,t)=>new df(e,t);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function Wp(e){return{hash:e,hmac:(t,...n)=>hf(e,t,ip(...n)),randomBytes:ap}}function Yp(e,t){const n=r=>jp({...e,...Wp(r)});return Object.freeze({...n(t),create:n})}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const pf=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),Ic=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),Xp=BigInt(1),Bi=BigInt(2),Cc=(e,t)=>(e+t/Bi)/t;function Jp(e){const t=pf,n=BigInt(3),r=BigInt(6),s=BigInt(11),o=BigInt(22),i=BigInt(23),a=BigInt(44),c=BigInt(88),u=e*e*e%t,l=u*u*e%t,f=nt(l,n,t)*l%t,d=nt(f,n,t)*l%t,h=nt(d,Bi,t)*u%t,p=nt(h,s,t)*h%t,g=nt(p,o,t)*p%t,y=nt(g,a,t)*g%t,b=nt(y,c,t)*y%t,w=nt(b,a,t)*g%t,m=nt(w,n,t)*l%t,v=nt(m,i,t)*p%t,k=nt(v,r,t)*u%t,O=nt(k,Bi,t);if(!pn.eql(pn.sqr(O),e))throw new Error("Cannot find square root");return O}const pn=ff(pf,void 0,void 0,{sqrt:Jp}),Kt=Yp({a:BigInt(0),b:BigInt(7),Fp:pn,n:Ic,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:e=>{const t=Ic,n=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),r=-Xp*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),s=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),o=n,i=BigInt("0x100000000000000000000000000000000"),a=Cc(o*e,t),c=Cc(-r*e,t);let u=De(e-a*n-c*s,t),l=De(-a*r-c*o,t);const f=u>i,d=l>i;if(f&&(u=t-u),d&&(l=t-l),u>i||l>i)throw new Error("splitScalar: Endomorphism failed, k="+e);return{k1neg:f,k1:u,k2neg:d,k2:l}}}},sf);BigInt(0);Kt.ProjectivePoint;Kt.utils.randomPrivateKey;const Qp=Fp(pn,[["0x8e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38daaaaa8c7","0x7d3d4c80bc321d5b9f315cea7fd44c5d595d2fc0bf63b92dfff1044f17c6581","0x534c328d23f234e6e2a413deca25caece4506144037c40314ecbd0b53d9dd262","0x8e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38daaaaa88c"],["0xd35771193d94918a9ca34ccbb7b640dd86cd409542f8487d9fe6b745781eb49b","0xedadc6f64383dc1df7c4b2d51b54225406d36b641f5e41bbc52a56612a8c6d14","0x0000000000000000000000000000000000000000000000000000000000000001"],["0x4bda12f684bda12f684bda12f684bda12f684bda12f684bda12f684b8e38e23c","0xc75e0c32d5cb7c0fa9d0a54b12a0a6d5647ab046d686da6fdffc90fc201d71a3","0x29a6194691f91a73715209ef6512e576722830a201be2018a765e85a9ecee931","0x2f684bda12f684bda12f684bda12f684bda12f684bda12f684bda12f38e38d84"],["0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffff93b","0x7a06534bb8bdb49fd5e9e6632722c2989467c1bfc8e8d978dfb425d2685c2573","0x6484aa716545ca2cf3a70c3fa8fe337e0a3d21162f0d6299a7bf8192bfd2a76f","0x0000000000000000000000000000000000000000000000000000000000000001"]].map(e=>e.map(t=>BigInt(t)))),eg=Dp(pn,{A:BigInt("0x3f8731abdd661adca08a5558f0f5d272e953d363cb6f0e5d405447c01a444533"),B:BigInt("1771"),Z:pn.create(BigInt("-11"))});Gp(Kt.ProjectivePoint,e=>{const{x:t,y:n}=eg(pn.create(e[0]));return Qp(t,n)},{DST:"secp256k1_XMD:SHA-256_SSWU_RO_",encodeDST:"secp256k1_XMD:SHA-256_SSWU_NU_",p:pn.ORDER,m:1,k:128,expand:"xmd",hash:sf});function Ti(e){if(!Number.isSafeInteger(e)||e<0)throw new Error(`Wrong positive integer: ${e}`)}function tg(e){if(typeof e!="boolean")throw new Error(`Expected boolean, not ${e}`)}function gf(e,...t){if(!(e instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(t.length>0&&!t.includes(e.length))throw new TypeError(`Expected Uint8Array of length ${t}, not of length=${e.length}`)}function ng(e){if(typeof e!="function"||typeof e.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");Ti(e.outputLen),Ti(e.blockLen)}function rg(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function sg(e,t){gf(e);const n=t.outputLen;if(e.lengthnew DataView(e.buffer,e.byteOffset,e.byteLength),wt=(e,t)=>e<<32-t|e>>>t,ig=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!ig)throw new Error("Non little-endian hardware is not supported");Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function ag(e){if(typeof e!="string")throw new TypeError(`utf8ToBytes expected string, got ${typeof e}`);return new TextEncoder().encode(e)}function mf(e){if(typeof e=="string"&&(e=ag(e)),!(e instanceof Uint8Array))throw new TypeError(`Expected input type is Uint8Array (got ${typeof e})`);return e}let cg=class{clone(){return this._cloneInto()}};function yf(e){const t=r=>e().update(mf(r)).digest(),n=e();return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=()=>e(),t}function ug(e,t,n,r){if(typeof e.setBigUint64=="function")return e.setBigUint64(t,n,r);const s=BigInt(32),o=BigInt(4294967295),i=Number(n>>s&o),a=Number(n&o),c=r?4:0,u=r?0:4;e.setUint32(t+c,i,r),e.setUint32(t+u,a,r)}let fg=class extends cg{constructor(t,n,r,s){super(),this.blockLen=t,this.outputLen=n,this.padOffset=r,this.isLE=s,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(t),this.view=Xo(this.buffer)}update(t){Yo.exists(this);const{view:n,buffer:r,blockLen:s}=this;t=mf(t);const o=t.length;for(let i=0;is-i&&(this.process(r,0),i=0);for(let f=i;fl.length)throw new Error("_sha2: outputLen bigger than state");for(let f=0;fe&t^~e&n,dg=(e,t,n)=>e&t^e&n^t&n,hg=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),Ft=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Gt=new Uint32Array(64);let bf=class extends fg{constructor(){super(64,32,8,!1),this.A=Ft[0]|0,this.B=Ft[1]|0,this.C=Ft[2]|0,this.D=Ft[3]|0,this.E=Ft[4]|0,this.F=Ft[5]|0,this.G=Ft[6]|0,this.H=Ft[7]|0}get(){const{A:t,B:n,C:r,D:s,E:o,F:i,G:a,H:c}=this;return[t,n,r,s,o,i,a,c]}set(t,n,r,s,o,i,a,c){this.A=t|0,this.B=n|0,this.C=r|0,this.D=s|0,this.E=o|0,this.F=i|0,this.G=a|0,this.H=c|0}process(t,n){for(let f=0;f<16;f++,n+=4)Gt[f]=t.getUint32(n,!1);for(let f=16;f<64;f++){const d=Gt[f-15],h=Gt[f-2],p=wt(d,7)^wt(d,18)^d>>>3,g=wt(h,17)^wt(h,19)^h>>>10;Gt[f]=g+Gt[f-7]+p+Gt[f-16]|0}let{A:r,B:s,C:o,D:i,E:a,F:c,G:u,H:l}=this;for(let f=0;f<64;f++){const d=wt(a,6)^wt(a,11)^wt(a,25),h=l+d+lg(a,c,u)+hg[f]+Gt[f]|0,g=(wt(r,2)^wt(r,13)^wt(r,22))+dg(r,s,o)|0;l=u,u=c,c=a,a=i+h|0,i=o,o=s,s=r,r=h+g|0}r=r+this.A|0,s=s+this.B|0,o=o+this.C|0,i=i+this.D|0,a=a+this.E|0,c=c+this.F|0,u=u+this.G|0,l=l+this.H|0,this.set(r,s,o,i,a,c,u,l)}roundClean(){Gt.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}},pg=class extends bf{constructor(){super(),this.A=-1056596264,this.B=914150663,this.C=812702999,this.D=-150054599,this.E=-4191439,this.F=1750603025,this.G=1694076839,this.H=-1090891868,this.outputLen=28}};const Oi=yf(()=>new bf);yf(()=>new pg);function gg(e,t){if(e.length>t)throw new TypeError(`Data is larger than array size: ${e.length} > ${t}`)}function mg(e){if(e.match(/[^a-fA-f0-9]/)!==null)throw new TypeError("Invalid characters in hex string: "+e);if(e.length%2!==0)throw new Error(`Length of hex string is invalid: ${e.length}`)}function yg(e){if(e>Number.MAX_SAFE_INTEGER)throw new TypeError("Number exceeds safe bounds!")}const{getRandomValues:bg}=crypto??globalThis.crypto??window.crypto;function wg(e=32){if(typeof bg=="function")return crypto.getRandomValues(new Uint8Array(e));throw new Error("Crypto module missing getRandomValues!")}function xg(e,t,n="be"){t===void 0&&(t=e.length),gg(e,t);const r=new Uint8Array(t).fill(0),s=n==="be"?0:t-e.length;return r.set(e,s),r}function wf(e){let t,n=0;const r=e.reduce((o,i)=>o+i.length,0),s=new Uint8Array(r);for(t=0;t0||(i.length^a)>0?"":"1";c in o||u>0;)l=o[c],l=l>0?l*256+u:u,u=l/s|0,o[c]=l%s,c++;for(;c-- >0;)i+=r[o[c]];return n&&i.length%4>0?i+"=".repeat(4-i.length%4):i}function Sg(e,t){const n=xf(t),r=n.length,s=[],o=[];e=e.replace("=","");let i,a=0,c,u;for(i=0;i0||(o.length^i)>0||o.push(0);a in s||c>0;)u=s[a],u=u>0?u*r+c:c,c=u>>8,s[a]=u%256,a++}for(;a-- >0;)o.push(s[a]);return new Uint8Array(o)}function vf(e){return Oi(Oi(e))}function $g(e){const t=vf(e);return wf([e,t.slice(0,4)])}function _g(e){const t=e.slice(0,-4),n=e.slice(-4);if(vf(t).slice(0,4).toString()!==n.toString())throw new Error("Invalid checksum!");return t}const Pc={encode:kg,decode:Sg},Ef={encode:e=>{const t=$g(e);return Pc.encode(t,"base58")},decode:e=>{const t=Pc.decode(e,"base58");return _g(t)}},kf="qpzry9x8gf2tvdw0s3jn54khce6mua7l",Ag=[996825010,642813549,513874426,1027748829,705979059],qs=[{version:0,name:"bech32",const:1},{version:1,name:"bech32m",const:734539939}];function Sf(e){let t=1;for(let n=0;n>25;t=(t&33554431)<<5^e[n];for(let s=0;s<5;++s)(r>>s&1)!==0&&(t^=Ag[s])}return t}function $f(e){const t=[];let n;for(n=0;n>5);for(t.push(0),n=0;n>5*(5-i)&31);return o}function _f(e,t,n,r=!0){const s=[];let o=0,i=0;const a=(1<>t>0)throw new Error("Failed to perform base conversion. Invalid value: "+String(u));for(o=(o<=n;)i-=n,s.push(o>>i&a)}if(r)i>0&&s.push(o<=t||(o<0)throw new Error("Failed to perform base conversion. Invalid Size!");return s}function Og(e,t,n){const r=t.concat(Tg(e,t,n));let s=e+"1";for(let o=0;oo.version===t[0])??qs[0];if(!Bg(r,t,s))throw new Error("Checksum verification failed!");return[r,t.slice(0,t.length-6)]}function Ig(e){let t,n,r=!1,s=!1;for(t=0;t126)return!1;n>=97&&n<=122&&(r=!0),n>=65&&n<=90&&(s=!0)}return!(r&&s)}function Cg(e){const t=e.lastIndexOf("1");return!(t<1||t+7>e.length||e.length>90)}function Pg(e,t="bc",n=0){const r=[n,..._f([...e],8,5)],s=qs.find(i=>i.version===n)??qs[0],o=Og(t,r,s);return Bf(o),o}function Bf(e){e=e.toLowerCase();const t=e.split("1",1)[0],[n,r]=Af(e),s=_f(r.slice(1),5,8,!1),o=s.length;switch(!0){case t!==n:throw new Error("Returned hrp string is invalid.");case(s===null||o<2||o>40):throw new Error("Decoded string is invalid or out of spec.");case r[0]>16:throw new Error("Returned version bit is out of range.");default:return Uint8Array.from(s)}}function Ug(e){e=e.toLowerCase();const[t,n]=Af(e);return n[0]}const Tf={encode:Pg,decode:Bf,version:Ug},Of="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",If="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",Ng=new TextEncoder;function Cf(e,t=!1,n=!0){typeof e=="string"&&(e=Ng.encode(e));const r=t?If:Of;let s="",o=0,i=0;for(let a=0;a=6;)o-=6,s+=r[i>>o&63];if(o>0)for(i<<=6-o,s+=r[i&63];o<6;)s+=n?"=":"",o+=2;return s}function Pf(e,t=!1){const n=t||e.includes("-")||e.includes("_")?If.split(""):Of.split("");e=e.replace(/=+$/,"");const r=e.split("");let s=0,o=0;const i=[];for(let a=0;a=8&&(s-=8,i.push(o>>>s&255))}return new Uint8Array(i)}const Uf={encode:Cf,decode:Pf},Nf={encode:e=>Cf(e,!0,!1),decode:e=>Pf(e,!0)},Lg=BigInt(0),Rg=BigInt(255),Lf=BigInt(256);function Hg(e){if(e<=0xffn)return 1;if(e<=0xffffn)return 2;if(e<=0xffffffffn)return 4;if(e<=0xffffffffffffffffn)return 8;if(e<=0xffffffffffffffffffffffffffffffffn)return 16;if(e<=0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffn)return 32;throw new TypeError("Must specify a fixed buffer size for bigints greater than 32 bytes.")}function jg(e,t,n="be"){t===void 0&&(t=Hg(e));const r=n==="le",s=new ArrayBuffer(t),o=new DataView(s);let i=r?0:t-1;for(;e>Lg;){const a=e&Rg,c=Number(a);r?o.setUint8(i++,c):o.setUint8(i--,c),e=(e-a)/Lf}return new Uint8Array(s)}function Kg(e){let t=BigInt(0);for(let n=e.length-1;n>=0;n--)t=t*Lf+BigInt(e[n]);return BigInt(t)}function Dg(e){const t=e.split("").map(Number);if(t.length%8!==0)throw new Error(`Binary array is invalid length: ${e.length}`);const n=new Uint8Array(t.length/8);for(let r=0,s=0;r255)throw new Error(`Invalid byte value: ${r}. Byte values must be between 0 and 255.`);for(let s=7;s>=0;s--,n++)t[n]=r>>s&1}return t.join("")}function Zg(e){if(e<=255)return 1;if(e<=65535)return 2;if(e<=4294967295)return 4;throw new TypeError("Numbers larger than 4 bytes must specify a fixed size!")}function Vg(e,t,n="be"){t===void 0&&(t=Zg(e));const r=n==="le",s=new ArrayBuffer(t),o=new DataView(s);let i=r?0:t-1;for(;e>0;){const a=e&255;r?o.setUint8(i++,e):o.setUint8(i--,e),e=(e-a)/256}return new Uint8Array(s)}function qg(e){let t=0;for(let n=e.length-1;n>=0;n--)t=t*256+e[n],yg(t);return t}const zg=new TextEncoder,Fg=new TextDecoder;function ya(e){return zg.encode(e)}function Jo(e){return Fg.decode(e)}function Gg(e,t){mg(e);const n=e.length/2;if(t===void 0&&(t=n),n>t)throw new TypeError(`Hex string is larger than array size: ${n} > ${t}`);return t}function Wg(e,t,n="le"){t=Gg(e,t);const r=n==="le",s=new ArrayBuffer(t),o=new DataView(s);let i=r?0:t-1;for(let a=0;atypeof r=="bigint"?`${r}n`:r);return ya(t)}function Jg(e,t,n){if(e instanceof ArrayBuffer)return new Uint8Array(e);if(e instanceof Uint8Array)return xg(e,t,n);if(typeof e=="string")return Wg(e,t,n);if(typeof e=="bigint")return jg(e,t,n);if(typeof e=="number")return Vg(e,t,n);if(typeof e=="boolean")return Uint8Array.of(e?1:0);throw TypeError("Unsupported format:"+typeof e)}const re=class re extends Uint8Array{static random(t=32){const n=wg(t);return new re(n,t)}constructor(t,n,r){const s=Jg(t,n,r);super(s)}get arr(){return[...this]}get num(){return this.toNum()}get big(){return this.toBig()}get str(){return this.toStr()}get hex(){return this.toHex()}get raw(){return new Uint8Array(this)}get bin(){return this.toBin()}get b58chk(){return this.tob58chk()}get base64(){return this.toBase64()}get b64url(){return this.toB64url()}get digest(){return this.toHash()}get id(){return this.toHash().hex}get stream(){return new lm(this)}toNum(t="be"){const n=t==="be"?this.reverse():this;return qg(n)}toBin(){return Mg(this)}toBig(t="be"){const n=t==="be"?this.reverse():this;return Kg(n)}toHash(){const t=Oi(this);return new re(t)}toJson(){const t=Jo(this);return JSON.parse(t)}toBech32(t,n=0){return Tf.encode(this,t,n)}toStr(){return Jo(this)}toHex(){return Yg(this)}toBytes(){return new Uint8Array(this)}tob58chk(){return Ef.encode(this)}toBase64(){return Uf.encode(this)}toB64url(){return Nf.encode(this)}prepend(t){return re.join([re.bytes(t),this])}append(t){return re.join([this,re.bytes(t)])}slice(t,n){const r=new Uint8Array(this).slice(t,n);return new re(r)}subarray(t,n){const r=new Uint8Array(this).subarray(t,n);return new re(r)}reverse(){const t=new Uint8Array(this).reverse();return new re(t)}write(t,n){const r=re.bytes(t);this.set(r,n)}prefixSize(t){const n=re.varInt(this.length,t);return re.join([n,this])}static from(t){return new re(Uint8Array.from(t))}static of(...t){return new re(Uint8Array.of(...t))}static join(t){const n=t.map(s=>re.bytes(s)),r=wf(n);return new re(r)}static varInt(t,n){if(t<253)return re.num(t,1);if(t<65536)return re.of(253,...re.num(t,2,n));if(t<4294967296)return re.of(254,...re.num(t,4,n));if(BigInt(t)<0x10000000000000000n)return re.of(255,...re.num(t,8,n));throw new Error(`Value is too large: ${t}`)}};re.num=Qg,re.big=tm,re.bin=em,re.raw=nm,re.str=rm,re.hex=sm,re.bytes=om,re.json=im,re.base64=am,re.b64url=cm,re.bech32=um,re.b58chk=fm,re.encode=ya,re.decode=Jo;let Y=re;function Qg(e,t,n){return new Y(e,t,n)}function em(e,t,n){return new Y(Dg(e),t,n)}function tm(e,t,n){return new Y(e,t,n)}function nm(e,t,n){return new Y(e,t,n)}function rm(e,t,n){return new Y(ya(e),t,n)}function sm(e,t,n){return new Y(e,t,n)}function om(e,t,n){return new Y(e,t,n)}function im(e){return new Y(Xg(e))}function am(e){return new Y(Uf.decode(e))}function cm(e){return new Y(Nf.decode(e))}function um(e){return new Y(Tf.decode(e))}function fm(e){return new Y(Ef.decode(e))}class lm{constructor(t){this.data=Y.bytes(t),this.size=this.data.length}peek(t){if(t>this.size)throw new Error(`Size greater than stream: ${t} > ${this.size}`);return new Y(this.data.slice(0,t))}read(t){t=t??this.readSize();const n=this.peek(t);return this.data=this.data.slice(t),this.size=this.data.length,n}readSize(t){const n=this.read(1).num;switch(!0){case(n>=0&&n<253):return n;case n===253:return this.read(2).toNum(t);case n===254:return this.read(4).toNum(t);case n===255:return this.read(8).toNum(t);default:throw new Error(`Varint is out of range: ${n}`)}}}const zs=Kt.CURVE,ba=zs.n,dm=zs.p,hm={x:zs.Gx,y:zs.Gy},pm=BigInt(0);BigInt(1);BigInt(2);BigInt(3);BigInt(4);const Ii={N:ba,P:dm,G:hm,_0n:pm},Or=ff(ba,32,!0),Rf=e=>De(e,ba);function wa(e,t=!1){if(t)throw new Error(e);return!1}function Hf(e){return Y.random(e)}function gm(e){const t=Y.bytes(e).big;return Y.big(Rf(t),32)}var mm=Object.freeze({__proto__:null,fail:wa,mod_bytes:gm,random:Hf});const{N:ym,_0n:bm}=Ii;function wm(e,t,n){const r=Y.bytes(e);return r.length!==t?wa(`Invalid byte size: ${r.hex} !== ${t}`,n):!0}function xm(e,t){return typeof e=="bigint"&&bmthis.big}lt(t){return new xe(t).big0&&!t.includes(e.length))throw new Error(`Expected Uint8Array of length ${t}, not of length=${e.length}`)}function Sm(e){if(typeof e!="function"||typeof e.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");Ci(e.outputLen),Ci(e.blockLen)}function $m(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function _m(e,t){jf(e);const n=t.outputLen;if(e.lengthe instanceof Uint8Array,Qo=e=>new DataView(e.buffer,e.byteOffset,e.byteLength),xt=(e,t)=>e<<32-t|e>>>t,Tm=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!Tm)throw new Error("Non little-endian hardware is not supported");Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function Om(e){if(typeof e!="string")throw new Error(`utf8ToBytes expected string, got ${typeof e}`);return new Uint8Array(new TextEncoder().encode(e))}function xa(e){if(typeof e=="string"&&(e=Om(e)),!Bm(e))throw new Error(`expected Uint8Array, got ${typeof e}`);return e}let Kf=class{clone(){return this._cloneInto()}};function qn(e){const t=r=>e().update(xa(r)).digest(),n=e();return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=()=>e(),t}function Im(e,t,n,r){if(typeof e.setBigUint64=="function")return e.setBigUint64(t,n,r);const s=BigInt(32),o=BigInt(4294967295),i=Number(n>>s&o),a=Number(n&o),c=r?4:0,u=r?0:4;e.setUint32(t+c,i,r),e.setUint32(t+u,a,r)}class va extends Kf{constructor(t,n,r,s){super(),this.blockLen=t,this.outputLen=n,this.padOffset=r,this.isLE=s,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(t),this.view=Qo(this.buffer)}update(t){Tn.exists(this);const{view:n,buffer:r,blockLen:s}=this;t=xa(t);const o=t.length;for(let i=0;is-i&&(this.process(r,0),i=0);for(let f=i;fl.length)throw new Error("_sha2: outputLen bigger than state");for(let f=0;fe&t^~e&n,Pm=(e,t,n)=>e&t^e&n^t&n,Um=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),Wt=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Yt=new Uint32Array(64);let Df=class extends va{constructor(){super(64,32,8,!1),this.A=Wt[0]|0,this.B=Wt[1]|0,this.C=Wt[2]|0,this.D=Wt[3]|0,this.E=Wt[4]|0,this.F=Wt[5]|0,this.G=Wt[6]|0,this.H=Wt[7]|0}get(){const{A:t,B:n,C:r,D:s,E:o,F:i,G:a,H:c}=this;return[t,n,r,s,o,i,a,c]}set(t,n,r,s,o,i,a,c){this.A=t|0,this.B=n|0,this.C=r|0,this.D=s|0,this.E=o|0,this.F=i|0,this.G=a|0,this.H=c|0}process(t,n){for(let f=0;f<16;f++,n+=4)Yt[f]=t.getUint32(n,!1);for(let f=16;f<64;f++){const d=Yt[f-15],h=Yt[f-2],p=xt(d,7)^xt(d,18)^d>>>3,g=xt(h,17)^xt(h,19)^h>>>10;Yt[f]=g+Yt[f-7]+p+Yt[f-16]|0}let{A:r,B:s,C:o,D:i,E:a,F:c,G:u,H:l}=this;for(let f=0;f<64;f++){const d=xt(a,6)^xt(a,11)^xt(a,25),h=l+d+Cm(a,c,u)+Um[f]+Yt[f]|0,g=(xt(r,2)^xt(r,13)^xt(r,22))+Pm(r,s,o)|0;l=u,u=c,c=a,a=i+h|0,i=o,o=s,s=r,r=h+g|0}r=r+this.A|0,s=s+this.B|0,o=o+this.C|0,i=i+this.D|0,a=a+this.E|0,c=c+this.F|0,u=u+this.G|0,l=l+this.H|0,this.set(r,s,o,i,a,c,u,l)}roundClean(){Yt.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};class Nm extends Df{constructor(){super(),this.A=-1056596264,this.B=914150663,this.C=812702999,this.D=-150054599,this.E=-4191439,this.F=1750603025,this.G=1694076839,this.H=-1090891868,this.outputLen=28}}const Fs=qn(()=>new Df);qn(()=>new Nm);const ys=BigInt(2**32-1),Pi=BigInt(32);function Mf(e,t=!1){return t?{h:Number(e&ys),l:Number(e>>Pi&ys)}:{h:Number(e>>Pi&ys)|0,l:Number(e&ys)|0}}function Lm(e,t=!1){let n=new Uint32Array(e.length),r=new Uint32Array(e.length);for(let s=0;sBigInt(e>>>0)<>>0),Hm=(e,t,n)=>e>>>n,jm=(e,t,n)=>e<<32-n|t>>>n,Km=(e,t,n)=>e>>>n|t<<32-n,Dm=(e,t,n)=>e<<32-n|t>>>n,Mm=(e,t,n)=>e<<64-n|t>>>n-32,Zm=(e,t,n)=>e>>>n-32|t<<64-n,Vm=(e,t)=>t,qm=(e,t)=>e,zm=(e,t,n)=>e<>>32-n,Fm=(e,t,n)=>t<>>32-n,Gm=(e,t,n)=>t<>>64-n,Wm=(e,t,n)=>e<>>64-n;function Ym(e,t,n,r){const s=(t>>>0)+(r>>>0);return{h:e+n+(s/2**32|0)|0,l:s|0}}const Xm=(e,t,n)=>(e>>>0)+(t>>>0)+(n>>>0),Jm=(e,t,n,r)=>t+n+r+(e/2**32|0)|0,Qm=(e,t,n,r)=>(e>>>0)+(t>>>0)+(n>>>0)+(r>>>0),ey=(e,t,n,r,s)=>t+n+r+s+(e/2**32|0)|0,ty=(e,t,n,r,s)=>(e>>>0)+(t>>>0)+(n>>>0)+(r>>>0)+(s>>>0),ny=(e,t,n,r,s,o)=>t+n+r+s+o+(e/2**32|0)|0,ry={fromBig:Mf,split:Lm,toBig:Rm,shrSH:Hm,shrSL:jm,rotrSH:Km,rotrSL:Dm,rotrBH:Mm,rotrBL:Zm,rotr32H:Vm,rotr32L:qm,rotlSH:zm,rotlSL:Fm,rotlBH:Gm,rotlBL:Wm,add:Ym,add3L:Xm,add3H:Jm,add4L:Qm,add4H:ey,add5H:ny,add5L:ty};var ne=ry;const[sy,oy]=ne.split(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map(e=>BigInt(e))),Xt=new Uint32Array(80),Jt=new Uint32Array(80);let ko=class extends va{constructor(){super(128,64,16,!1),this.Ah=1779033703,this.Al=-205731576,this.Bh=-1150833019,this.Bl=-2067093701,this.Ch=1013904242,this.Cl=-23791573,this.Dh=-1521486534,this.Dl=1595750129,this.Eh=1359893119,this.El=-1377402159,this.Fh=-1694144372,this.Fl=725511199,this.Gh=528734635,this.Gl=-79577749,this.Hh=1541459225,this.Hl=327033209}get(){const{Ah:t,Al:n,Bh:r,Bl:s,Ch:o,Cl:i,Dh:a,Dl:c,Eh:u,El:l,Fh:f,Fl:d,Gh:h,Gl:p,Hh:g,Hl:y}=this;return[t,n,r,s,o,i,a,c,u,l,f,d,h,p,g,y]}set(t,n,r,s,o,i,a,c,u,l,f,d,h,p,g,y){this.Ah=t|0,this.Al=n|0,this.Bh=r|0,this.Bl=s|0,this.Ch=o|0,this.Cl=i|0,this.Dh=a|0,this.Dl=c|0,this.Eh=u|0,this.El=l|0,this.Fh=f|0,this.Fl=d|0,this.Gh=h|0,this.Gl=p|0,this.Hh=g|0,this.Hl=y|0}process(t,n){for(let m=0;m<16;m++,n+=4)Xt[m]=t.getUint32(n),Jt[m]=t.getUint32(n+=4);for(let m=16;m<80;m++){const v=Xt[m-15]|0,k=Jt[m-15]|0,O=ne.rotrSH(v,k,1)^ne.rotrSH(v,k,8)^ne.shrSH(v,k,7),C=ne.rotrSL(v,k,1)^ne.rotrSL(v,k,8)^ne.shrSL(v,k,7),P=Xt[m-2]|0,B=Jt[m-2]|0,N=ne.rotrSH(P,B,19)^ne.rotrBH(P,B,61)^ne.shrSH(P,B,6),H=ne.rotrSL(P,B,19)^ne.rotrBL(P,B,61)^ne.shrSL(P,B,6),K=ne.add4L(C,H,Jt[m-7],Jt[m-16]),E=ne.add4H(K,O,N,Xt[m-7],Xt[m-16]);Xt[m]=E|0,Jt[m]=K|0}let{Ah:r,Al:s,Bh:o,Bl:i,Ch:a,Cl:c,Dh:u,Dl:l,Eh:f,El:d,Fh:h,Fl:p,Gh:g,Gl:y,Hh:b,Hl:w}=this;for(let m=0;m<80;m++){const v=ne.rotrSH(f,d,14)^ne.rotrSH(f,d,18)^ne.rotrBH(f,d,41),k=ne.rotrSL(f,d,14)^ne.rotrSL(f,d,18)^ne.rotrBL(f,d,41),O=f&h^~f&g,C=d&p^~d&y,P=ne.add5L(w,k,C,oy[m],Jt[m]),B=ne.add5H(P,b,v,O,sy[m],Xt[m]),N=P|0,H=ne.rotrSH(r,s,28)^ne.rotrBH(r,s,34)^ne.rotrBH(r,s,39),K=ne.rotrSL(r,s,28)^ne.rotrBL(r,s,34)^ne.rotrBL(r,s,39),E=r&o^r&a^o&a,$=s&i^s&c^i&c;b=g|0,w=y|0,g=h|0,y=p|0,h=f|0,p=d|0,{h:f,l:d}=ne.add(u|0,l|0,B|0,N|0),u=a|0,l=c|0,a=o|0,c=i|0,o=r|0,i=s|0;const x=ne.add3L(N,K,$);r=ne.add3H(x,B,H,E),s=x|0}({h:r,l:s}=ne.add(this.Ah|0,this.Al|0,r|0,s|0)),{h:o,l:i}=ne.add(this.Bh|0,this.Bl|0,o|0,i|0),{h:a,l:c}=ne.add(this.Ch|0,this.Cl|0,a|0,c|0),{h:u,l}=ne.add(this.Dh|0,this.Dl|0,u|0,l|0),{h:f,l:d}=ne.add(this.Eh|0,this.El|0,f|0,d|0),{h,l:p}=ne.add(this.Fh|0,this.Fl|0,h|0,p|0),{h:g,l:y}=ne.add(this.Gh|0,this.Gl|0,g|0,y|0),{h:b,l:w}=ne.add(this.Hh|0,this.Hl|0,b|0,w|0),this.set(r,s,o,i,a,c,u,l,f,d,h,p,g,y,b,w)}roundClean(){Xt.fill(0),Jt.fill(0)}destroy(){this.buffer.fill(0),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}};class iy extends ko{constructor(){super(),this.Ah=-1942145080,this.Al=424955298,this.Bh=1944164710,this.Bl=-1982016298,this.Ch=502970286,this.Cl=855612546,this.Dh=1738396948,this.Dl=1479516111,this.Eh=258812777,this.El=2077511080,this.Fh=2011393907,this.Fl=79989058,this.Gh=1067287976,this.Gl=1780299464,this.Hh=286451373,this.Hl=-1848208735,this.outputLen=28}}class ay extends ko{constructor(){super(),this.Ah=573645204,this.Al=-64227540,this.Bh=-1621794909,this.Bl=-934517566,this.Ch=596883563,this.Cl=1867755857,this.Dh=-1774684391,this.Dl=1497426621,this.Eh=-1775747358,this.El=-1467023389,this.Fh=-1101128155,this.Fl=1401305490,this.Gh=721525244,this.Gl=746961066,this.Hh=246885852,this.Hl=-2117784414,this.outputLen=32}}class cy extends ko{constructor(){super(),this.Ah=-876896931,this.Al=-1056596264,this.Bh=1654270250,this.Bl=914150663,this.Ch=-1856437926,this.Cl=812702999,this.Dh=355462360,this.Dl=-150054599,this.Eh=1731405415,this.El=-4191439,this.Fh=-1900787065,this.Fl=1750603025,this.Gh=-619958771,this.Gl=1694076839,this.Hh=1203062813,this.Hl=-1090891868,this.outputLen=48}}const uy=qn(()=>new ko);qn(()=>new iy);qn(()=>new ay);qn(()=>new cy);const fy=new Uint8Array([7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8]),Zf=Uint8Array.from({length:16},(e,t)=>t),ly=Zf.map(e=>(9*e+5)%16);let Ea=[Zf],ka=[ly];for(let e=0;e<4;e++)for(let t of[Ea,ka])t.push(t[e].map(n=>fy[n]));const Vf=[[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8],[12,13,11,15,6,9,9,7,12,15,11,13,7,8,7,7],[13,15,14,11,7,7,6,8,13,14,13,12,5,5,6,9],[14,11,12,14,8,6,5,5,15,12,15,14,9,9,8,6],[15,12,13,13,9,5,8,6,14,11,12,11,8,6,5,5]].map(e=>new Uint8Array(e)),dy=Ea.map((e,t)=>e.map(n=>Vf[t][n])),hy=ka.map((e,t)=>e.map(n=>Vf[t][n])),py=new Uint32Array([0,1518500249,1859775393,2400959708,2840853838]),gy=new Uint32Array([1352829926,1548603684,1836072691,2053994217,0]),bs=(e,t)=>e<>>32-t;function Nc(e,t,n,r){return e===0?t^n^r:e===1?t&n|~t&r:e===2?(t|~n)^r:e===3?t&r|n&~r:t^(n|~r)}const ws=new Uint32Array(16);let my=class extends va{constructor(){super(64,20,8,!0),this.h0=1732584193,this.h1=-271733879,this.h2=-1732584194,this.h3=271733878,this.h4=-1009589776}get(){const{h0:t,h1:n,h2:r,h3:s,h4:o}=this;return[t,n,r,s,o]}set(t,n,r,s,o){this.h0=t|0,this.h1=n|0,this.h2=r|0,this.h3=s|0,this.h4=o|0}process(t,n){for(let h=0;h<16;h++,n+=4)ws[h]=t.getUint32(n,!0);let r=this.h0|0,s=r,o=this.h1|0,i=o,a=this.h2|0,c=a,u=this.h3|0,l=u,f=this.h4|0,d=f;for(let h=0;h<5;h++){const p=4-h,g=py[h],y=gy[h],b=Ea[h],w=ka[h],m=dy[h],v=hy[h];for(let k=0;k<16;k++){const O=bs(r+Nc(h,o,a,u)+ws[b[k]]+g,m[k])+f|0;r=f,f=u,u=bs(a,10)|0,a=o,o=O}for(let k=0;k<16;k++){const O=bs(s+Nc(p,i,c,l)+ws[w[k]]+y,v[k])+d|0;s=d,d=l,l=bs(c,10)|0,c=i,i=O}}this.set(this.h1+a+l|0,this.h2+u+d|0,this.h3+f+s|0,this.h4+r+i|0,this.h0+o+c|0)}roundClean(){ws.fill(0)}destroy(){this.destroyed=!0,this.buffer.fill(0),this.set(0,0,0,0,0)}};const yy=qn(()=>new my);let qf=class extends Kf{constructor(t,n){super(),this.finished=!1,this.destroyed=!1,Tn.hash(t);const r=xa(n);if(this.iHash=t.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const s=this.blockLen,o=new Uint8Array(s);o.set(r.length>s?t.create().update(r).digest():r);for(let i=0;inew qf(e,t).update(n).digest();zf.create=(e,t)=>new qf(e,t);function by(e){const t=Y.bytes(e);return Y.raw(Fs(t))}function ur(e){const t=Y.bytes(e);return Y.raw(Fs(Fs(t)))}function Sa(e){const t=Y.bytes(e);return Y.raw(yy(Fs(t)))}function wy(e,t){const n=Y.bytes(e),r=Y.bytes(t);return Y.raw(zf(uy,n,r))}function xy(e){const t=Y.str(e).digest;return Y.join([t,t])}function vy(e=32){return $a(Hf(e))}function $a(e){return ze.mod(e).buff}function Ff(e,t=!1){const n=ze.mod(e).point;return t?n.x:n.buff}function Gf(e,t){const n=Vn.from_x(t),r=ze.mod(e);return n.mul(r).buff}function Ey(e,t,n="ecdh/code"){const r=xy(n),s=$a(e),o=Ff(s),i=Y.bytes(t),a=Gf(s,i),c=[o.hex,i.hex];return c.sort(),wy(a,Y.join([r,...c]))}function ky(e){const t=Y.bytes(e);switch(!0){case t.length===32:return!0;case(t.length===33&&t[0]===2):return!0;case(t.length===33&&t[0]===3):return!1;default:throw new TypeError(`Invalid public key: ${t.hex}`)}}function Sy(e){const t=Y.bytes(e);switch(t.length){case 32:return t;case 33:return t.slice(1,33);default:throw new Error(`Invalid key length: ${t.length}`)}}var $y=Object.freeze({__proto__:null,genSecretKey:vy,getPublicKey:Ff,getSecretKey:$a,getSharedCode:Ey,getSharedKey:Gf,is_even_pub:ky,xonly_pub:Sy});Y.random(32);const Wf={secp:Kt},Ui={...$y,...mm};function So(e){const t=S.bytes(e);return Ot(t,33),Sa(t)}function Yf(e){const t=$e.fmt.toBytes(e,!1);return Sa(t)}function Xf(e){const t=$e.fmt.toBytes(e,!1);return by(t)}function Jf(e,t="main"){const n=t==="main"?["1"]:["m","n"];for(const r of n)if(e.startsWith(r))return!0;return!1}function Qf(e,t="main"){const n=S.bytes(e),r=t==="main"?S.num(0):S.num(111);return Ot(e,20),n.prepend(r).tob58chk()}function _y(e,t="main"){if(!Jf(e,t))throw new TypeError("Invalid p2pkh address!");return S.b58chk(e).slice(1)}function Ay(e){const t=S.bytes(e);return Ot(t,20),["OP_DUP","OP_HASH160",t.hex,"OP_EQUALVERIFY","OP_CHECKSIG"]}function By(e,t){const n=So(e);return Qf(n,t)}const el={check:Jf,encode:Qf,decode:_y,hash:So,scriptPubKey:Ay,fromPubKey:By};function tl(e,t="main"){const n=t==="main"?["3"]:["2"];for(const r of n)if(e.startsWith(r))return!0;return!1}function nl(e,t="main"){const n=t==="main"?S.num(5):S.num(196),r=S.bytes(e);return Ot(r,20),r.prepend(n).tob58chk()}function Ty(e,t="main"){if(!tl(e,t))throw new TypeError(`Invalid p2sh address for network ${t}:`+e);return S.b58chk(e).slice(1)}function Oy(e){return["OP_HASH160",S.bytes(e).hex,"OP_EQUAL"]}function Iy(e,t){const n=Yf(e);return nl(n,t)}const rl={check:tl,encode:nl,decode:Ty,hash:Yf,scriptPubKey:Oy,fromScript:Iy},_a={main:"bc",testnet:"tb",signet:"tb",regtest:"bcrt"},Cy=["bc1q","tb1q","bcrt1q"];function sl(e){for(const t of Cy)if(e.startsWith(t))return!0;return!1}function ol(e,t="main"){const n=_a[t],r=S.bytes(e);return Ot(r,20),r.toBech32(n,0)}function Py(e){if(!sl(e))throw new TypeError("Invalid segwit address!");return S.bech32(e)}function Uy(e){const t=S.bytes(e);return Ot(t,20),["OP_0",t.hex]}function Ny(e,t){const n=So(e);return ol(n,t)}const il={check:sl,encode:ol,decode:Py,hash:So,scriptPubKey:Uy,fromPubKey:Ny},Ly=["bc1q","tb1q","bcrt1q"];function al(e){for(const t of Ly)if(e.startsWith(t))return!0;return!1}function cl(e,t="main"){const n=_a[t],r=S.bytes(e);return Ot(r,32),r.toBech32(n,0)}function Ry(e){if(!al(e))throw new TypeError("Invalid segwit address!");return S.bech32(e)}function Hy(e){const t=S.bytes(e);return Ot(t,32),["OP_0",t.hex]}function jy(e,t){const n=Xf(e);return cl(n,t)}const ul={check:al,encode:cl,decode:Ry,hash:Xf,scriptPubKey:Hy,fromScript:jy};function Ln(e){const t=S.bytes(e);return t.length>32?t.slice(1,33):t}const Ky=["bc1p","tb1p","bcrt1p"];function fl(e){for(const t of Ky)if(e.startsWith(t))return!0;return!1}function ll(e,t="main"){const n=_a[t],r=S.bytes(e);return Ot(r,32),r.toBech32(n,1)}function Dy(e){if(!fl(e))throw new TypeError("Invalid taproot address!");return S.bech32(e)}function My(e){const t=S.bytes(e);return Ot(t,32),["OP_1",t.hex]}function Zy(e,t){const n=Ln(e);return ll(n,t)}const dl={check:fl,encode:ll,decode:Dy,scriptPubKey:My,fromPubKey:Zy},Vy={version:2,vin:[],vout:[],locktime:0},qy={scriptSig:[],sequence:4294967293,witness:[]},zy={value:0n,scriptPubKey:[]};function Aa(e){const t={...Vy,...e};return t.vin=t.vin.map(n=>({...qy,...n})),t.vout=t.vout.map(n=>({...zy,...n})),t}function fr(e,t){const{version:n,vin:r,vout:s,locktime:o}=Aa(e),i=t!==!0&&Fy(r),a=[Ba(n)];i&&a.push(S.hex("0001")),a.push(Gy(r)),a.push(Wy(s));for(const c of r)i&&a.push(Xy(c.witness));return a.push(Ta(o)),S.join(a)}function Fy(e){for(const t of e){const{witness:n}=t;if(typeof n=="string"||n instanceof Uint8Array||Array.isArray(n)&&n.length>0)return!0}return!1}function Ba(e){return S.num(e,4).reverse()}function ss(e){return S.hex(e,32).reverse()}function os(e){return S.num(e,4).reverse()}function is(e){if(typeof e=="string")return S.hex(e,4).reverse();if(typeof e=="number")return S.num(e,4).reverse();throw new Error("Unrecognized format: "+String(e))}function Gy(e){const t=[S.varInt(e.length,"le")];for(const n of e){const{txid:r,vout:s,scriptSig:o,sequence:i}=n;t.push(ss(r)),t.push(os(s)),t.push(Zn(o,!0)),t.push(is(i))}return S.join(t)}function gn(e){if(typeof e=="number"){if(e%1!==0)throw new Error("Value must be an integer:"+String(e));return S.num(e,8).reverse()}return S.big(e,8).reverse()}function Wy(e){const t=[S.varInt(e.length,"le")];for(const n of e)t.push(Yy(n));return S.join(t)}function Yy(e){const{value:t,scriptPubKey:n}=e,r=[];return r.push(gn(t)),r.push(Zn(n,!0)),S.join(r)}function Xy(e=[]){const t=[];if(Array.isArray(e)){const n=S.varInt(e.length);t.push(n);for(const r of e)t.push(Jy(r));return S.join(t)}else return S.bytes(e)}function Jy(e){return Qy(e)?new S(0):Zn(e,!0)}function Qy(e){if(Array.isArray(e))return e.length===0;if(typeof e=="string"&&e==="")return!0;const t=S.bytes(e);return t.length===1&&t[0]===0}function Ta(e){if(typeof e=="string")return S.hex(e,4);if(typeof e=="number")return S.num(e,4).reverse();throw new Error("Unrecognized format: "+String(e))}function Oa(e){typeof e=="string"&&(e=S.hex(e).raw);const t=new xr(e),n=eb(t),r=tb(t),s=nb(t),o=sb(t);if(r)for(const a of s)a.witness=ib(t);const i=ab(t);return{version:n,vin:s,vout:o,locktime:i}}function eb(e){return e.read(4).reverse().toNum()}function tb(e){const[t,n]=[...e.peek(2)];if(t===0){if(e.read(2),n===1)return!0;throw new Error(`Invalid witness flag: ${n}`)}return!1}function nb(e){const t=[],n=e.readSize("le");for(let r=0;r0?e.read(n).hex:null}function pl(e,t){const n=hl(e);return n!==null?n:[]}function ab(e){return e.read(4).reverse().toNum()}function cb(e){if(Ju(e))return Oa(e);if(typeof e=="object"&&!(e instanceof Uint8Array))return fr(e),Aa(e);throw new Error("Invalid format: "+typeof e)}function ub(e){if(Ju(e))return Oa(e),S.bytes(e);if(typeof e=="object")return fr(e);throw new Error("Invalid format: "+typeof e)}const Ia={toBytes:ub,toJson:cb},fb=[["p2pkh",/^76a914(?\w{40})88ac$/],["p2sh",/^a914(?\w{40})87$/],["p2w-pkh",/^0014(?\w{40})$/],["p2w-sh",/^0020(?\w{64})$/],["p2tr",/^5120(?\w{64})$/]],lb=[192,194,196,198,200,202,204,206,208,210,212,214,216,218,220,222,224,226,228,230,232,234,236,238,240,242,244,246,248,250,252,254,102,126,128,132,150,152,186,188,190];function db(e){let t=e.at(-1);return Mt(t)&&(t=S.hex(t)),e.length>1&&t instanceof Uint8Array&&t[0]===80?(e.pop(),S.raw(t)):null}function hb(e){let t=e.at(-1);return Mt(t)&&(t=S.hex(t)),e.length>1&&t instanceof Uint8Array&&t.length>32&&lb.includes(t[0]&254)?(e.pop(),S.raw(t)):null}function pb(e){if(e.length>1){const t=e.at(-1);try{const n=$e.fmt.toBytes(t);return e.pop(),n}catch{return null}}return null}function gb(e){const t=[];for(const n of e)if(Mt(n)||n instanceof Uint8Array||typeof n=="number")t.push(S.bytes(n));else throw new Error("unrecognized value: "+String(n));return t}function mb(e=[]){const t=[...e],n=db(t),r=hb(t),s=pb(t),o=gb(t);return{annex:n,cblock:r,script:s,params:o}}function yb(e){const t=$e.fmt.toBytes(e,!1).hex;for(const[n,r]of fb){const s=n,{groups:o}=r.exec(t)??{},{hash:i}=o??{};if(Mt(i))return{type:s,data:S.hex(i)}}return{type:"raw",data:S.hex(t)}}function bb(e){const t=Ia.toJson(e),n=fr(t,!0);return ur(n).reverse().hex}function wb(e){const t=Ia.toJson(e),n=fr(t,!0).length,r=fr(t,!1).length,s=n*3+r,o=s%4>0?1:0,i=Math.floor(s/4)+o;return{size:r,bsize:n,vsize:i,weight:s}}const ie={create:Aa,encode:fr,decode:Oa,fmt:Ia,util:{getTxSize:wb,getTxid:bb,readScriptPubKey:yb,readWitness:mb}},xb=[["1","p2pkh","main",20,"base58"],["3","p2sh","main",20,"base58"],["m","p2pkh","testnet",20,"base58"],["n","p2pkh","testnet",20,"base58"],["2","p2sh","testnet",20,"base58"],["bc1q","p2w-pkh","main",20,"bech32"],["tb1q","p2w-pkh","testnet",20,"bech32"],["bcrt1q","p2w-pkh","regtest",20,"bech32"],["bc1q","p2w-sh","main",32,"bech32"],["tb1q","p2w-sh","testnet",32,"bech32"],["bcrt1q","p2w-sh","regtest",32,"bech32"],["bc1p","p2tr","main",32,"bech32m"],["tb1p","p2tr","testnet",32,"bech32m"],["bcrt1p","p2tr","regtest",32,"bech32m"]];function vb(e,t){switch(t){case"base58":return S.b58chk(e).slice(1);case"bech32":return S.bech32(e);case"bech32m":return S.bech32(e);default:throw new Error("Invalid address format: "+t)}}function Eb(e){for(const t of xb){const[n,r,s,o,i]=t;if(e.startsWith(n)&&vb(e,i).length===o)return t}throw new Error("Invalid address: "+e)}function gl(e){switch(e){case"p2pkh":return el;case"p2sh":return rl;case"p2w-pkh":return il;case"p2w-sh":return ul;case"p2tr":return dl;default:throw new Error("Invalid address type: "+e)}}function ml(e){const[t,n,r]=Eb(e),s=gl(n),o=s.decode(e,r),i=s.scriptPubKey(o);return{prefix:t,type:n,network:r,data:o,script:i}}function kb(e,t){const{type:n,data:r}=ie.util.readScriptPubKey(e);return gl(n).encode(r,t)}function Sb(e){const{script:t}=ml(e);return $e.fmt.toAsm(t,!1)}const Kr={p2pkh:el,p2sh:rl,p2wpkh:il,p2wsh:ul,p2tr:dl,decode:ml,fromScriptPubKey:kb,toScriptPubKey:Sb},$b=[1,2,3];function Ca(e,t,n={}){const{sigflag:r=1}=n,s=(r&128)===128,o=r%128;if(!$b.includes(o))throw new Error("Invalid hash type: "+String(r));const i=ie.fmt.toJson(e),{version:a,vin:c,vout:u,locktime:l}=i,{txid:f,vout:d,prevout:h,sequence:p}=c[t],{value:g}=h??{};if(g===void 0)throw new Error("Prevout value is empty!");let y=n.script;if(y===void 0&&n.pubkey!==void 0&&(y=`76a914${Sa(n.pubkey).hex}88ac`),y===void 0)throw new Error("No pubkey / script has been set!");if($e.fmt.toAsm(y).includes("OP_CODESEPARATOR"))throw new Error("This library does not currently support the use of OP_CODESEPARATOR in segwit scripts.");const b=[Ba(a),_b(c,s),Ab(c,o,s),ss(f),os(d),$e.encode(y,!0),gn(g),is(p),Bb(u,t,o),Ta(l),S.num(r,4).reverse()];return ur(S.join(b))}function _b(e,t){if(t===!0)return S.num(0,32);const n=[];for(const{txid:r,vout:s}of e)n.push(ss(r)),n.push(os(s));return ur(S.join(n))}function Ab(e,t,n){if(n||t!==1)return S.num(0,32);const r=[];for(const{sequence:s}of e)r.push(is(s));return ur(S.join(r))}function Bb(e,t,n){const r=[];if(n===1){for(const{value:s,scriptPubKey:o}of e)r.push(gn(s)),r.push($e.encode(o,!0));return ur(S.join(r))}if(n===3&&t1&&c[1].length===33)u=S.bytes(c[1]);else return Ke("No pubkey provided!",s);const l=$e.fmt.toParam(c[0]),f=l.slice(0,-1),d=l.slice(-1)[0],h=Ca(r,t,{...n,sigflag:d});return Wf.secp.verify(f,h,u)?!0:Ke("Invalid signature!",s)}const Ib={hash:Ca,sign:Tb,verify:Ob},Cb=[0,1,2,3,129,130,131];function Pa(e,t,n={}){const{extension:r,sigflag:s=0,extflag:o=0,key_version:i=0,separator_pos:a=4294967295}=n,c=ie.fmt.toJson(e),{version:u,vin:l,vout:f,locktime:d}=c;if(t>=l.length)throw new Error("Index out of bounds: "+String(t));if(!Cb.includes(s))throw new Error("Invalid hash type: "+String(s));if(o<0||o>127)throw new Error("Extention flag out of range: "+String(o));const{txid:h,vout:p,sequence:g,witness:y=[]}=l[t],b=(s&128)===128,w=jb(y),m=w!==void 0?1:0,k=(o+(r!==void 0?1:0))*2+m,O=S.str("TapSighash").digest,C=[O,O,S.num(0,1),S.num(s,1),Ba(u),Ta(d)];if(!b){const P=l.map(B=>Lc(B));C.push(Pb(l),Nb(P),Lb(P),Ub(l))}if(((s&3)<2||(s&3)>3)&&C.push(Rb(f)),C.push(S.num(k,1)),b){const{value:P,scriptPubKey:B}=Lc(l[t]);C.push(ss(h),os(p),gn(P),$e.encode(B,!0),is(g))}else C.push(S.num(t,4).reverse());return w!==void 0&&C.push(w),(s&3)===3&&C.push(Hb(f[t])),r!==void 0&&C.push(S.bytes(r),S.num(i),S.num(a,4,"le")),S.join(C).digest}function Pb(e){const t=[];for(const{txid:n,vout:r}of e)t.push(ss(n)),t.push(os(r));return S.join(t).digest}function Ub(e){const t=[];for(const{sequence:n}of e)t.push(is(n));return S.join(t).digest}function Nb(e){const t=[];for(const{value:n}of e)t.push(gn(n));return S.join(t).digest}function Lb(e){const t=[];for(const{scriptPubKey:n}of e)t.push(Zn(n,!0));return S.join(t).digest}function Rb(e){const t=[];for(const{value:n,scriptPubKey:r}of e)t.push(gn(n)),t.push($e.encode(r,!0));return S.join(t).digest}function Hb(e){return S.join([gn(e.value),$e.encode(e.scriptPubKey,!0)]).digest}function jb(e){if(e===void 0||e.length<2)return;let t=e.at(-1);if(typeof t=="string"&&(t=S.hex(t)),t instanceof Uint8Array&&t[0]===80)return S.raw(t).prefixSize("be").digest}function Lc(e){if(e.prevout===void 0)throw new Error("Prevout data missing for input: "+String(e.txid));return e.prevout}const Kb=0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2fn,Db=0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141n;function Mb(e,t,n,r={}){const{sigflag:s=0}=r,o=Pa(t,n,r),i=Zb(e,o);return s===0?S.raw(i):S.join([i,s])}function Zb(e,t,n=S.random(32)){const r=S.bytes(t),s=new ze(e),o=s.point,i=o.hasEvenY?s.big:s.negated.big,a=Ls("BIP0340/aux",S.bytes(n)),c=i^a.big,u=Ls("BIP0340/nonce",c,o.x.raw,r),l=new ze(u),f=l.point,d=f.hasEvenY?l.big:l.negated.big,h=new ze(Ls("BIP0340/challenge",f.x.raw,o.x.raw,r)),p=new ze(d+h.big*i);return S.join([f.x.raw,p.raw])}function Vb(e,t,n,r=!1){const s=Vn.from_x(Ln(n)),o=S.bytes(t),i=S.bytes(e).stream;i.size<64&&Ke("Signature length is too small: "+String(i.size),r);const a=i.read(32);a.big>Kb&&Ke("Signature r value greater than field size!",r);const c=i.read(32);c.big>Db&&Ke("Signature s value greater than curve order!",r);const u=new ze(Ls("BIP0340/challenge",a.raw,s.x.raw,o)),l=new ze(c).point,f=s.mul(u.big),d=l.sub(f);return d.hasOddY&&Ke("Signature R value has odd Y coordinate!",r),d.x.big===0n&&Ke("Signature R value is infinite!",r),d.x.big===a.big}const qb=192;function $o(e){const t=S.str(e).digest;return S.join([t,t])}function Ua(e,t=qb){return S.join([$o("TapLeaf"),Gb(t),S.bytes(e)]).digest.hex}function zb(e,t){return Ua($e.fmt.toBytes(e),t)}function Na(e,t){return t0){const[h,p,g]=Gs(r,i);c=g,a=rr(e,h,n)}else i!==void 0?a=rr(e,i,n):a=rr(e,void 0,n);const u=n?Ui.getPublicKey(a)[0]:a[0],f=[S.num(s+El(u)),o];c.length>0&&c.forEach(h=>f.push(S.hex(h)));const d=S.join(f);if(i!==void 0&&!La(a,i,d,t))throw new Error("Path checking failed! Unable to generate path.");return[Ln(a).hex,d.hex]}function La(e,t,n,r={}){const{isPrivate:s=!1,throws:o=!1}=r,{parity:i,paths:a,intkey:c}=vl(n),u=s?Ui.getPublicKey(e,!0):Ln(e),l=S.join([i,u]);if(l.length!==33)return Ke("Invalid tapkey: "+l.hex,o);let f=S.bytes(t).hex;for(const h of a)f=Na(f,h);const d=rr(c,f);return S.raw(d).hex===S.raw(l).hex}function vl(e){const t=new xr(S.bytes(e)),n=t.read(1).num,r=t.read(32),[s,o]=n%2===0?[n,2]:[n-1,3],i=[];for(;t.size>=32;)i.push(t.read(32).hex);if(t.size!==0)throw new Error("Non-empty buffer on control block: "+String(t));return{intkey:r,paths:i,parity:o,version:s}}function El(e=2){if(e===0||e===1)return e;if(e===2||e==="02")return 0;if(e===3||e==="03")return 1;throw new Error("Invalid parity bit: "+String(e))}function nw(e,t,n={}){const r=ie.fmt.toJson(e),{throws:s=!1}=n,{prevout:o,witness:i=[]}=r.vin[t],a=ie.util.readWitness(i),{cblock:c,script:u,params:l}=a;let f;if(l.length<1)return Ke("Invalid witness data: "+String(i),s);const{scriptPubKey:d}=o??{};if(d===void 0)return Ke("Prevout scriptPubKey is empty!",s);const{type:h,data:p}=ie.util.readScriptPubKey(d);if(h!=="p2tr")return Ke("Prevout script is not a valid taproot output:"+p.hex,s);if(p.length!==32)return Ke("Invalid tapkey length: "+String(p.length),s);if(c!==null&&u!==null){const m=c[0]&254,v=Ua(u,m);if(n.extension=v,!La(p,v,c,{throws:s}))return Ke("cblock verification failed!",s)}n.pubkey!==void 0?f=S.bytes(n.pubkey):l.length>1&&l[1].length===32?f=S.bytes(l[1]):f=S.bytes(p);const g=$e.fmt.toParam(l[0]),y=new xr(g),b=y.read(64).raw;if(y.size===1&&(n.sigflag=y.read(1).num,n.sigflag===0))return Ke("0x00 is not a valid appended sigflag!",s);const w=Pa(r,t,n);return Vb(b,w,f,s)?!0:Ke("Invalid signature!",s)}const rw={hash:Pa,sign:Mb,verify:nw},lr={segwit:Ib,taproot:rw},sw={getTag:$o,getLeaf:Ua,getBranch:Na,getRoot:Fb},ow={readCtrlBlock:vl,readParityBit:El},iw={getPubKey:Wb,getSecKey:Yb,getTweak:yl,tweakSecKey:bl,tweakPubKey:wl},_o={getPubKey:tw,getSecKey:ew,encodeScript:zb,checkPath:La,tree:sw,tweak:iw,util:ow,SCRIPT_PUBKEY:Jb};var pe;(function(e){e.assertEqual=s=>s;function t(s){}e.assertIs=t;function n(s){throw new Error}e.assertNever=n,e.arrayToEnum=s=>{const o={};for(const i of s)o[i]=i;return o},e.getValidEnumValues=s=>{const o=e.objectKeys(s).filter(a=>typeof s[s[a]]!="number"),i={};for(const a of o)i[a]=s[a];return e.objectValues(i)},e.objectValues=s=>e.objectKeys(s).map(function(o){return s[o]}),e.objectKeys=typeof Object.keys=="function"?s=>Object.keys(s):s=>{const o=[];for(const i in s)Object.prototype.hasOwnProperty.call(s,i)&&o.push(i);return o},e.find=(s,o)=>{for(const i of s)if(o(i))return i},e.isInteger=typeof Number.isInteger=="function"?s=>Number.isInteger(s):s=>typeof s=="number"&&isFinite(s)&&Math.floor(s)===s;function r(s,o=" | "){return s.map(i=>typeof i=="string"?`'${i}'`:i).join(o)}e.joinValues=r,e.jsonStringifyReplacer=(s,o)=>typeof o=="bigint"?o.toString():o})(pe||(pe={}));var Ni;(function(e){e.mergeShapes=(t,n)=>({...t,...n})})(Ni||(Ni={}));const Z=pe.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),an=e=>{switch(typeof e){case"undefined":return Z.undefined;case"string":return Z.string;case"number":return isNaN(e)?Z.nan:Z.number;case"boolean":return Z.boolean;case"function":return Z.function;case"bigint":return Z.bigint;case"symbol":return Z.symbol;case"object":return Array.isArray(e)?Z.array:e===null?Z.null:e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?Z.promise:typeof Map<"u"&&e instanceof Map?Z.map:typeof Set<"u"&&e instanceof Set?Z.set:typeof Date<"u"&&e instanceof Date?Z.date:Z.object;default:return Z.unknown}},R=pe.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),aw=e=>JSON.stringify(e,null,2).replace(/"([^"]+)":/g,"$1:");class lt extends Error{constructor(t){super(),this.issues=[],this.addIssue=r=>{this.issues=[...this.issues,r]},this.addIssues=(r=[])=>{this.issues=[...this.issues,...r]};const n=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,n):this.__proto__=n,this.name="ZodError",this.issues=t}get errors(){return this.issues}format(t){const n=t||function(o){return o.message},r={_errors:[]},s=o=>{for(const i of o.issues)if(i.code==="invalid_union")i.unionErrors.map(s);else if(i.code==="invalid_return_type")s(i.returnTypeError);else if(i.code==="invalid_arguments")s(i.argumentsError);else if(i.path.length===0)r._errors.push(n(i));else{let a=r,c=0;for(;cn.message){const n={},r=[];for(const s of this.issues)s.path.length>0?(n[s.path[0]]=n[s.path[0]]||[],n[s.path[0]].push(t(s))):r.push(t(s));return{formErrors:r,fieldErrors:n}}get formErrors(){return this.flatten()}}lt.create=e=>new lt(e);const Dr=(e,t)=>{let n;switch(e.code){case R.invalid_type:e.received===Z.undefined?n="Required":n=`Expected ${e.expected}, received ${e.received}`;break;case R.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,pe.jsonStringifyReplacer)}`;break;case R.unrecognized_keys:n=`Unrecognized key(s) in object: ${pe.joinValues(e.keys,", ")}`;break;case R.invalid_union:n="Invalid input";break;case R.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${pe.joinValues(e.options)}`;break;case R.invalid_enum_value:n=`Invalid enum value. Expected ${pe.joinValues(e.options)}, received '${e.received}'`;break;case R.invalid_arguments:n="Invalid function arguments";break;case R.invalid_return_type:n="Invalid function return type";break;case R.invalid_date:n="Invalid date";break;case R.invalid_string:typeof e.validation=="object"?"includes"in e.validation?(n=`Invalid input: must include "${e.validation.includes}"`,typeof e.validation.position=="number"&&(n=`${n} at one or more positions greater than or equal to ${e.validation.position}`)):"startsWith"in e.validation?n=`Invalid input: must start with "${e.validation.startsWith}"`:"endsWith"in e.validation?n=`Invalid input: must end with "${e.validation.endsWith}"`:pe.assertNever(e.validation):e.validation!=="regex"?n=`Invalid ${e.validation}`:n="Invalid";break;case R.too_small:e.type==="array"?n=`Array must contain ${e.exact?"exactly":e.inclusive?"at least":"more than"} ${e.minimum} element(s)`:e.type==="string"?n=`String must contain ${e.exact?"exactly":e.inclusive?"at least":"over"} ${e.minimum} character(s)`:e.type==="number"?n=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="date"?n=`Date must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(e.minimum))}`:n="Invalid input";break;case R.too_big:e.type==="array"?n=`Array must contain ${e.exact?"exactly":e.inclusive?"at most":"less than"} ${e.maximum} element(s)`:e.type==="string"?n=`String must contain ${e.exact?"exactly":e.inclusive?"at most":"under"} ${e.maximum} character(s)`:e.type==="number"?n=`Number must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="bigint"?n=`BigInt must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="date"?n=`Date must be ${e.exact?"exactly":e.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(e.maximum))}`:n="Invalid input";break;case R.custom:n="Invalid input";break;case R.invalid_intersection_types:n="Intersection results could not be merged";break;case R.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case R.not_finite:n="Number must be finite";break;default:n=t.defaultError,pe.assertNever(e)}return{message:n}};let kl=Dr;function cw(e){kl=e}function Ws(){return kl}const Ys=e=>{const{data:t,path:n,errorMaps:r,issueData:s}=e,o=[...n,...s.path||[]],i={...s,path:o};let a="";const c=r.filter(u=>!!u).slice().reverse();for(const u of c)a=u(i,{data:t,defaultError:a}).message;return{...s,path:o,message:s.message||a}},uw=[];function V(e,t){const n=Ys({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,Ws(),Dr].filter(r=>!!r)});e.common.issues.push(n)}class Ve{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(t,n){const r=[];for(const s of n){if(s.status==="aborted")return J;s.status==="dirty"&&t.dirty(),r.push(s.value)}return{status:t.value,value:r}}static async mergeObjectAsync(t,n){const r=[];for(const s of n)r.push({key:await s.key,value:await s.value});return Ve.mergeObjectSync(t,r)}static mergeObjectSync(t,n){const r={};for(const s of n){const{key:o,value:i}=s;if(o.status==="aborted"||i.status==="aborted")return J;o.status==="dirty"&&t.dirty(),i.status==="dirty"&&t.dirty(),(typeof i.value<"u"||s.alwaysSet)&&(r[o.value]=i.value)}return{status:t.value,value:r}}}const J=Object.freeze({status:"aborted"}),Sl=e=>({status:"dirty",value:e}),We=e=>({status:"valid",value:e}),Li=e=>e.status==="aborted",Ri=e=>e.status==="dirty",Xs=e=>e.status==="valid",Js=e=>typeof Promise<"u"&&e instanceof Promise;var G;(function(e){e.errToObj=t=>typeof t=="string"?{message:t}:t||{},e.toString=t=>typeof t=="string"?t:t==null?void 0:t.message})(G||(G={}));class At{constructor(t,n,r,s){this._cachedPath=[],this.parent=t,this.data=n,this._path=r,this._key=s}get path(){return this._cachedPath.length||(this._key instanceof Array?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}}const Rc=(e,t)=>{if(Xs(t))return{success:!0,data:t.value};if(!e.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;const n=new lt(e.common.issues);return this._error=n,this._error}}};function te(e){if(!e)return{};const{errorMap:t,invalid_type_error:n,required_error:r,description:s}=e;if(t&&(n||r))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return t?{errorMap:t,description:s}:{errorMap:(i,a)=>i.code!=="invalid_type"?{message:a.defaultError}:typeof a.data>"u"?{message:r??a.defaultError}:{message:n??a.defaultError},description:s}}class se{constructor(t){this.spa=this.safeParseAsync,this._def=t,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this)}get description(){return this._def.description}_getType(t){return an(t.data)}_getOrReturnCtx(t,n){return n||{common:t.parent.common,data:t.data,parsedType:an(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}_processInputParams(t){return{status:new Ve,ctx:{common:t.parent.common,data:t.data,parsedType:an(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}}_parseSync(t){const n=this._parse(t);if(Js(n))throw new Error("Synchronous parse encountered promise.");return n}_parseAsync(t){const n=this._parse(t);return Promise.resolve(n)}parse(t,n){const r=this.safeParse(t,n);if(r.success)return r.data;throw r.error}safeParse(t,n){var r;const s={common:{issues:[],async:(r=n==null?void 0:n.async)!==null&&r!==void 0?r:!1,contextualErrorMap:n==null?void 0:n.errorMap},path:(n==null?void 0:n.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:an(t)},o=this._parseSync({data:t,path:s.path,parent:s});return Rc(s,o)}async parseAsync(t,n){const r=await this.safeParseAsync(t,n);if(r.success)return r.data;throw r.error}async safeParseAsync(t,n){const r={common:{issues:[],contextualErrorMap:n==null?void 0:n.errorMap,async:!0},path:(n==null?void 0:n.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:an(t)},s=this._parse({data:t,path:r.path,parent:r}),o=await(Js(s)?s:Promise.resolve(s));return Rc(r,o)}refine(t,n){const r=s=>typeof n=="string"||typeof n>"u"?{message:n}:typeof n=="function"?n(s):n;return this._refinement((s,o)=>{const i=t(s),a=()=>o.addIssue({code:R.custom,...r(s)});return typeof Promise<"u"&&i instanceof Promise?i.then(c=>c?!0:(a(),!1)):i?!0:(a(),!1)})}refinement(t,n){return this._refinement((r,s)=>t(r)?!0:(s.addIssue(typeof n=="function"?n(r,s):n),!1))}_refinement(t){return new pt({schema:this,typeName:W.ZodEffects,effect:{type:"refinement",refinement:t}})}superRefine(t){return this._refinement(t)}optional(){return Ht.create(this,this._def)}nullable(){return jn.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return dt.create(this,this._def)}promise(){return hr.create(this,this._def)}or(t){return qr.create([this,t],this._def)}and(t){return zr.create(this,t,this._def)}transform(t){return new pt({...te(this._def),schema:this,typeName:W.ZodEffects,effect:{type:"transform",transform:t}})}default(t){const n=typeof t=="function"?t:()=>t;return new Xr({...te(this._def),innerType:this,defaultValue:n,typeName:W.ZodDefault})}brand(){return new _l({typeName:W.ZodBranded,type:this,...te(this._def)})}catch(t){const n=typeof t=="function"?t:()=>t;return new no({...te(this._def),innerType:this,catchValue:n,typeName:W.ZodCatch})}describe(t){const n=this.constructor;return new n({...this._def,description:t})}pipe(t){return as.create(this,t)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}const fw=/^c[^\s-]{8,}$/i,lw=/^[a-z][a-z0-9]*$/,dw=/[0-9A-HJKMNP-TV-Z]{26}/,hw=/^([a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[a-f0-9]{4}-[a-f0-9]{12}|00000000-0000-0000-0000-000000000000)$/i,pw=/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\])|(\[IPv6:(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))\])|([A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])*(\.[A-Za-z]{2,})+))$/,gw=new RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u"),mw=/^(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))$/,yw=/^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,bw=e=>e.precision?e.offset?new RegExp(`^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{${e.precision}}(([+-]\\d{2}(:?\\d{2})?)|Z)$`):new RegExp(`^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{${e.precision}}Z$`):e.precision===0?e.offset?new RegExp("^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(([+-]\\d{2}(:?\\d{2})?)|Z)$"):new RegExp("^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}Z$"):e.offset?new RegExp("^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?(([+-]\\d{2}(:?\\d{2})?)|Z)$"):new RegExp("^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?Z$");function ww(e,t){return!!((t==="v4"||!t)&&mw.test(e)||(t==="v6"||!t)&&yw.test(e))}class ut extends se{constructor(){super(...arguments),this._regex=(t,n,r)=>this.refinement(s=>t.test(s),{validation:n,code:R.invalid_string,...G.errToObj(r)}),this.nonempty=t=>this.min(1,G.errToObj(t)),this.trim=()=>new ut({...this._def,checks:[...this._def.checks,{kind:"trim"}]}),this.toLowerCase=()=>new ut({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]}),this.toUpperCase=()=>new ut({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}_parse(t){if(this._def.coerce&&(t.data=String(t.data)),this._getType(t)!==Z.string){const o=this._getOrReturnCtx(t);return V(o,{code:R.invalid_type,expected:Z.string,received:o.parsedType}),J}const r=new Ve;let s;for(const o of this._def.checks)if(o.kind==="min")t.data.lengtho.value&&(s=this._getOrReturnCtx(t,s),V(s,{code:R.too_big,maximum:o.value,type:"string",inclusive:!0,exact:!1,message:o.message}),r.dirty());else if(o.kind==="length"){const i=t.data.length>o.value,a=t.data.length"u"?null:t==null?void 0:t.precision,offset:(n=t==null?void 0:t.offset)!==null&&n!==void 0?n:!1,...G.errToObj(t==null?void 0:t.message)})}regex(t,n){return this._addCheck({kind:"regex",regex:t,...G.errToObj(n)})}includes(t,n){return this._addCheck({kind:"includes",value:t,position:n==null?void 0:n.position,...G.errToObj(n==null?void 0:n.message)})}startsWith(t,n){return this._addCheck({kind:"startsWith",value:t,...G.errToObj(n)})}endsWith(t,n){return this._addCheck({kind:"endsWith",value:t,...G.errToObj(n)})}min(t,n){return this._addCheck({kind:"min",value:t,...G.errToObj(n)})}max(t,n){return this._addCheck({kind:"max",value:t,...G.errToObj(n)})}length(t,n){return this._addCheck({kind:"length",value:t,...G.errToObj(n)})}get isDatetime(){return!!this._def.checks.find(t=>t.kind==="datetime")}get isEmail(){return!!this._def.checks.find(t=>t.kind==="email")}get isURL(){return!!this._def.checks.find(t=>t.kind==="url")}get isEmoji(){return!!this._def.checks.find(t=>t.kind==="emoji")}get isUUID(){return!!this._def.checks.find(t=>t.kind==="uuid")}get isCUID(){return!!this._def.checks.find(t=>t.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(t=>t.kind==="cuid2")}get isULID(){return!!this._def.checks.find(t=>t.kind==="ulid")}get isIP(){return!!this._def.checks.find(t=>t.kind==="ip")}get minLength(){let t=null;for(const n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxLength(){let t=null;for(const n of this._def.checks)n.kind==="max"&&(t===null||n.value{var t;return new ut({checks:[],typeName:W.ZodString,coerce:(t=e==null?void 0:e.coerce)!==null&&t!==void 0?t:!1,...te(e)})};function xw(e,t){const n=(e.toString().split(".")[1]||"").length,r=(t.toString().split(".")[1]||"").length,s=n>r?n:r,o=parseInt(e.toFixed(s).replace(".","")),i=parseInt(t.toFixed(s).replace(".",""));return o%i/Math.pow(10,s)}class mn extends se{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(t){if(this._def.coerce&&(t.data=Number(t.data)),this._getType(t)!==Z.number){const o=this._getOrReturnCtx(t);return V(o,{code:R.invalid_type,expected:Z.number,received:o.parsedType}),J}let r;const s=new Ve;for(const o of this._def.checks)o.kind==="int"?pe.isInteger(t.data)||(r=this._getOrReturnCtx(t,r),V(r,{code:R.invalid_type,expected:"integer",received:"float",message:o.message}),s.dirty()):o.kind==="min"?(o.inclusive?t.datao.value:t.data>=o.value)&&(r=this._getOrReturnCtx(t,r),V(r,{code:R.too_big,maximum:o.value,type:"number",inclusive:o.inclusive,exact:!1,message:o.message}),s.dirty()):o.kind==="multipleOf"?xw(t.data,o.value)!==0&&(r=this._getOrReturnCtx(t,r),V(r,{code:R.not_multiple_of,multipleOf:o.value,message:o.message}),s.dirty()):o.kind==="finite"?Number.isFinite(t.data)||(r=this._getOrReturnCtx(t,r),V(r,{code:R.not_finite,message:o.message}),s.dirty()):pe.assertNever(o);return{status:s.value,value:t.data}}gte(t,n){return this.setLimit("min",t,!0,G.toString(n))}gt(t,n){return this.setLimit("min",t,!1,G.toString(n))}lte(t,n){return this.setLimit("max",t,!0,G.toString(n))}lt(t,n){return this.setLimit("max",t,!1,G.toString(n))}setLimit(t,n,r,s){return new mn({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:G.toString(s)}]})}_addCheck(t){return new mn({...this._def,checks:[...this._def.checks,t]})}int(t){return this._addCheck({kind:"int",message:G.toString(t)})}positive(t){return this._addCheck({kind:"min",value:0,inclusive:!1,message:G.toString(t)})}negative(t){return this._addCheck({kind:"max",value:0,inclusive:!1,message:G.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:0,inclusive:!0,message:G.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:0,inclusive:!0,message:G.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:G.toString(n)})}finite(t){return this._addCheck({kind:"finite",message:G.toString(t)})}safe(t){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:G.toString(t)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:G.toString(t)})}get minValue(){let t=null;for(const n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxValue(){let t=null;for(const n of this._def.checks)n.kind==="max"&&(t===null||n.valuet.kind==="int"||t.kind==="multipleOf"&&pe.isInteger(t.value))}get isFinite(){let t=null,n=null;for(const r of this._def.checks){if(r.kind==="finite"||r.kind==="int"||r.kind==="multipleOf")return!0;r.kind==="min"?(n===null||r.value>n)&&(n=r.value):r.kind==="max"&&(t===null||r.valuenew mn({checks:[],typeName:W.ZodNumber,coerce:(e==null?void 0:e.coerce)||!1,...te(e)});class yn extends se{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(t){if(this._def.coerce&&(t.data=BigInt(t.data)),this._getType(t)!==Z.bigint){const o=this._getOrReturnCtx(t);return V(o,{code:R.invalid_type,expected:Z.bigint,received:o.parsedType}),J}let r;const s=new Ve;for(const o of this._def.checks)o.kind==="min"?(o.inclusive?t.datao.value:t.data>=o.value)&&(r=this._getOrReturnCtx(t,r),V(r,{code:R.too_big,type:"bigint",maximum:o.value,inclusive:o.inclusive,message:o.message}),s.dirty()):o.kind==="multipleOf"?t.data%o.value!==BigInt(0)&&(r=this._getOrReturnCtx(t,r),V(r,{code:R.not_multiple_of,multipleOf:o.value,message:o.message}),s.dirty()):pe.assertNever(o);return{status:s.value,value:t.data}}gte(t,n){return this.setLimit("min",t,!0,G.toString(n))}gt(t,n){return this.setLimit("min",t,!1,G.toString(n))}lte(t,n){return this.setLimit("max",t,!0,G.toString(n))}lt(t,n){return this.setLimit("max",t,!1,G.toString(n))}setLimit(t,n,r,s){return new yn({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:G.toString(s)}]})}_addCheck(t){return new yn({...this._def,checks:[...this._def.checks,t]})}positive(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:G.toString(t)})}negative(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:G.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:G.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:G.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:G.toString(n)})}get minValue(){let t=null;for(const n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxValue(){let t=null;for(const n of this._def.checks)n.kind==="max"&&(t===null||n.value{var t;return new yn({checks:[],typeName:W.ZodBigInt,coerce:(t=e==null?void 0:e.coerce)!==null&&t!==void 0?t:!1,...te(e)})};class Mr extends se{_parse(t){if(this._def.coerce&&(t.data=!!t.data),this._getType(t)!==Z.boolean){const r=this._getOrReturnCtx(t);return V(r,{code:R.invalid_type,expected:Z.boolean,received:r.parsedType}),J}return We(t.data)}}Mr.create=e=>new Mr({typeName:W.ZodBoolean,coerce:(e==null?void 0:e.coerce)||!1,...te(e)});class Rn extends se{_parse(t){if(this._def.coerce&&(t.data=new Date(t.data)),this._getType(t)!==Z.date){const o=this._getOrReturnCtx(t);return V(o,{code:R.invalid_type,expected:Z.date,received:o.parsedType}),J}if(isNaN(t.data.getTime())){const o=this._getOrReturnCtx(t);return V(o,{code:R.invalid_date}),J}const r=new Ve;let s;for(const o of this._def.checks)o.kind==="min"?t.data.getTime()o.value&&(s=this._getOrReturnCtx(t,s),V(s,{code:R.too_big,message:o.message,inclusive:!0,exact:!1,maximum:o.value,type:"date"}),r.dirty()):pe.assertNever(o);return{status:r.value,value:new Date(t.data.getTime())}}_addCheck(t){return new Rn({...this._def,checks:[...this._def.checks,t]})}min(t,n){return this._addCheck({kind:"min",value:t.getTime(),message:G.toString(n)})}max(t,n){return this._addCheck({kind:"max",value:t.getTime(),message:G.toString(n)})}get minDate(){let t=null;for(const n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t!=null?new Date(t):null}get maxDate(){let t=null;for(const n of this._def.checks)n.kind==="max"&&(t===null||n.valuenew Rn({checks:[],coerce:(e==null?void 0:e.coerce)||!1,typeName:W.ZodDate,...te(e)});class Qs extends se{_parse(t){if(this._getType(t)!==Z.symbol){const r=this._getOrReturnCtx(t);return V(r,{code:R.invalid_type,expected:Z.symbol,received:r.parsedType}),J}return We(t.data)}}Qs.create=e=>new Qs({typeName:W.ZodSymbol,...te(e)});class Zr extends se{_parse(t){if(this._getType(t)!==Z.undefined){const r=this._getOrReturnCtx(t);return V(r,{code:R.invalid_type,expected:Z.undefined,received:r.parsedType}),J}return We(t.data)}}Zr.create=e=>new Zr({typeName:W.ZodUndefined,...te(e)});class Vr extends se{_parse(t){if(this._getType(t)!==Z.null){const r=this._getOrReturnCtx(t);return V(r,{code:R.invalid_type,expected:Z.null,received:r.parsedType}),J}return We(t.data)}}Vr.create=e=>new Vr({typeName:W.ZodNull,...te(e)});class dr extends se{constructor(){super(...arguments),this._any=!0}_parse(t){return We(t.data)}}dr.create=e=>new dr({typeName:W.ZodAny,...te(e)});class Un extends se{constructor(){super(...arguments),this._unknown=!0}_parse(t){return We(t.data)}}Un.create=e=>new Un({typeName:W.ZodUnknown,...te(e)});class Dt extends se{_parse(t){const n=this._getOrReturnCtx(t);return V(n,{code:R.invalid_type,expected:Z.never,received:n.parsedType}),J}}Dt.create=e=>new Dt({typeName:W.ZodNever,...te(e)});class eo extends se{_parse(t){if(this._getType(t)!==Z.undefined){const r=this._getOrReturnCtx(t);return V(r,{code:R.invalid_type,expected:Z.void,received:r.parsedType}),J}return We(t.data)}}eo.create=e=>new eo({typeName:W.ZodVoid,...te(e)});class dt extends se{_parse(t){const{ctx:n,status:r}=this._processInputParams(t),s=this._def;if(n.parsedType!==Z.array)return V(n,{code:R.invalid_type,expected:Z.array,received:n.parsedType}),J;if(s.exactLength!==null){const i=n.data.length>s.exactLength.value,a=n.data.lengths.maxLength.value&&(V(n,{code:R.too_big,maximum:s.maxLength.value,type:"array",inclusive:!0,exact:!1,message:s.maxLength.message}),r.dirty()),n.common.async)return Promise.all([...n.data].map((i,a)=>s.type._parseAsync(new At(n,i,n.path,a)))).then(i=>Ve.mergeArray(r,i));const o=[...n.data].map((i,a)=>s.type._parseSync(new At(n,i,n.path,a)));return Ve.mergeArray(r,o)}get element(){return this._def.type}min(t,n){return new dt({...this._def,minLength:{value:t,message:G.toString(n)}})}max(t,n){return new dt({...this._def,maxLength:{value:t,message:G.toString(n)}})}length(t,n){return new dt({...this._def,exactLength:{value:t,message:G.toString(n)}})}nonempty(t){return this.min(1,t)}}dt.create=(e,t)=>new dt({type:e,minLength:null,maxLength:null,exactLength:null,typeName:W.ZodArray,...te(t)});function tr(e){if(e instanceof Se){const t={};for(const n in e.shape){const r=e.shape[n];t[n]=Ht.create(tr(r))}return new Se({...e._def,shape:()=>t})}else return e instanceof dt?new dt({...e._def,type:tr(e.element)}):e instanceof Ht?Ht.create(tr(e.unwrap())):e instanceof jn?jn.create(tr(e.unwrap())):e instanceof Bt?Bt.create(e.items.map(t=>tr(t))):e}class Se extends se{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;const t=this._def.shape(),n=pe.objectKeys(t);return this._cached={shape:t,keys:n}}_parse(t){if(this._getType(t)!==Z.object){const u=this._getOrReturnCtx(t);return V(u,{code:R.invalid_type,expected:Z.object,received:u.parsedType}),J}const{status:r,ctx:s}=this._processInputParams(t),{shape:o,keys:i}=this._getCached(),a=[];if(!(this._def.catchall instanceof Dt&&this._def.unknownKeys==="strip"))for(const u in s.data)i.includes(u)||a.push(u);const c=[];for(const u of i){const l=o[u],f=s.data[u];c.push({key:{status:"valid",value:u},value:l._parse(new At(s,f,s.path,u)),alwaysSet:u in s.data})}if(this._def.catchall instanceof Dt){const u=this._def.unknownKeys;if(u==="passthrough")for(const l of a)c.push({key:{status:"valid",value:l},value:{status:"valid",value:s.data[l]}});else if(u==="strict")a.length>0&&(V(s,{code:R.unrecognized_keys,keys:a}),r.dirty());else if(u!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{const u=this._def.catchall;for(const l of a){const f=s.data[l];c.push({key:{status:"valid",value:l},value:u._parse(new At(s,f,s.path,l)),alwaysSet:l in s.data})}}return s.common.async?Promise.resolve().then(async()=>{const u=[];for(const l of c){const f=await l.key;u.push({key:f,value:await l.value,alwaysSet:l.alwaysSet})}return u}).then(u=>Ve.mergeObjectSync(r,u)):Ve.mergeObjectSync(r,c)}get shape(){return this._def.shape()}strict(t){return new Se({...this._def,unknownKeys:"strict",...t!==void 0?{errorMap:(n,r)=>{var s,o,i,a;const c=(i=(o=(s=this._def).errorMap)===null||o===void 0?void 0:o.call(s,n,r).message)!==null&&i!==void 0?i:r.defaultError;return n.code==="unrecognized_keys"?{message:(a=G.errToObj(t).message)!==null&&a!==void 0?a:c}:{message:c}}}:{}})}strip(){return new Se({...this._def,unknownKeys:"strip"})}passthrough(){return new Se({...this._def,unknownKeys:"passthrough"})}extend(t){return new Se({...this._def,shape:()=>({...this._def.shape(),...t})})}merge(t){return new Se({unknownKeys:t._def.unknownKeys,catchall:t._def.catchall,shape:()=>({...this._def.shape(),...t._def.shape()}),typeName:W.ZodObject})}setKey(t,n){return this.augment({[t]:n})}catchall(t){return new Se({...this._def,catchall:t})}pick(t){const n={};return pe.objectKeys(t).forEach(r=>{t[r]&&this.shape[r]&&(n[r]=this.shape[r])}),new Se({...this._def,shape:()=>n})}omit(t){const n={};return pe.objectKeys(this.shape).forEach(r=>{t[r]||(n[r]=this.shape[r])}),new Se({...this._def,shape:()=>n})}deepPartial(){return tr(this)}partial(t){const n={};return pe.objectKeys(this.shape).forEach(r=>{const s=this.shape[r];t&&!t[r]?n[r]=s:n[r]=s.optional()}),new Se({...this._def,shape:()=>n})}required(t){const n={};return pe.objectKeys(this.shape).forEach(r=>{if(t&&!t[r])n[r]=this.shape[r];else{let o=this.shape[r];for(;o instanceof Ht;)o=o._def.innerType;n[r]=o}}),new Se({...this._def,shape:()=>n})}keyof(){return $l(pe.objectKeys(this.shape))}}Se.create=(e,t)=>new Se({shape:()=>e,unknownKeys:"strip",catchall:Dt.create(),typeName:W.ZodObject,...te(t)});Se.strictCreate=(e,t)=>new Se({shape:()=>e,unknownKeys:"strict",catchall:Dt.create(),typeName:W.ZodObject,...te(t)});Se.lazycreate=(e,t)=>new Se({shape:e,unknownKeys:"strip",catchall:Dt.create(),typeName:W.ZodObject,...te(t)});class qr extends se{_parse(t){const{ctx:n}=this._processInputParams(t),r=this._def.options;function s(o){for(const a of o)if(a.result.status==="valid")return a.result;for(const a of o)if(a.result.status==="dirty")return n.common.issues.push(...a.ctx.common.issues),a.result;const i=o.map(a=>new lt(a.ctx.common.issues));return V(n,{code:R.invalid_union,unionErrors:i}),J}if(n.common.async)return Promise.all(r.map(async o=>{const i={...n,common:{...n.common,issues:[]},parent:null};return{result:await o._parseAsync({data:n.data,path:n.path,parent:i}),ctx:i}})).then(s);{let o;const i=[];for(const c of r){const u={...n,common:{...n.common,issues:[]},parent:null},l=c._parseSync({data:n.data,path:n.path,parent:u});if(l.status==="valid")return l;l.status==="dirty"&&!o&&(o={result:l,ctx:u}),u.common.issues.length&&i.push(u.common.issues)}if(o)return n.common.issues.push(...o.ctx.common.issues),o.result;const a=i.map(c=>new lt(c));return V(n,{code:R.invalid_union,unionErrors:a}),J}}get options(){return this._def.options}}qr.create=(e,t)=>new qr({options:e,typeName:W.ZodUnion,...te(t)});const Rs=e=>e instanceof Gr?Rs(e.schema):e instanceof pt?Rs(e.innerType()):e instanceof Wr?[e.value]:e instanceof bn?e.options:e instanceof Yr?Object.keys(e.enum):e instanceof Xr?Rs(e._def.innerType):e instanceof Zr?[void 0]:e instanceof Vr?[null]:null;class Ao extends se{_parse(t){const{ctx:n}=this._processInputParams(t);if(n.parsedType!==Z.object)return V(n,{code:R.invalid_type,expected:Z.object,received:n.parsedType}),J;const r=this.discriminator,s=n.data[r],o=this.optionsMap.get(s);return o?n.common.async?o._parseAsync({data:n.data,path:n.path,parent:n}):o._parseSync({data:n.data,path:n.path,parent:n}):(V(n,{code:R.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[r]}),J)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(t,n,r){const s=new Map;for(const o of n){const i=Rs(o.shape[t]);if(!i)throw new Error(`A discriminator value for key \`${t}\` could not be extracted from all schema options`);for(const a of i){if(s.has(a))throw new Error(`Discriminator property ${String(t)} has duplicate value ${String(a)}`);s.set(a,o)}}return new Ao({typeName:W.ZodDiscriminatedUnion,discriminator:t,options:n,optionsMap:s,...te(r)})}}function Hi(e,t){const n=an(e),r=an(t);if(e===t)return{valid:!0,data:e};if(n===Z.object&&r===Z.object){const s=pe.objectKeys(t),o=pe.objectKeys(e).filter(a=>s.indexOf(a)!==-1),i={...e,...t};for(const a of o){const c=Hi(e[a],t[a]);if(!c.valid)return{valid:!1};i[a]=c.data}return{valid:!0,data:i}}else if(n===Z.array&&r===Z.array){if(e.length!==t.length)return{valid:!1};const s=[];for(let o=0;o{if(Li(o)||Li(i))return J;const a=Hi(o.value,i.value);return a.valid?((Ri(o)||Ri(i))&&n.dirty(),{status:n.value,value:a.data}):(V(r,{code:R.invalid_intersection_types}),J)};return r.common.async?Promise.all([this._def.left._parseAsync({data:r.data,path:r.path,parent:r}),this._def.right._parseAsync({data:r.data,path:r.path,parent:r})]).then(([o,i])=>s(o,i)):s(this._def.left._parseSync({data:r.data,path:r.path,parent:r}),this._def.right._parseSync({data:r.data,path:r.path,parent:r}))}}zr.create=(e,t,n)=>new zr({left:e,right:t,typeName:W.ZodIntersection,...te(n)});class Bt extends se{_parse(t){const{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==Z.array)return V(r,{code:R.invalid_type,expected:Z.array,received:r.parsedType}),J;if(r.data.lengththis._def.items.length&&(V(r,{code:R.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),n.dirty());const o=[...r.data].map((i,a)=>{const c=this._def.items[a]||this._def.rest;return c?c._parse(new At(r,i,r.path,a)):null}).filter(i=>!!i);return r.common.async?Promise.all(o).then(i=>Ve.mergeArray(n,i)):Ve.mergeArray(n,o)}get items(){return this._def.items}rest(t){return new Bt({...this._def,rest:t})}}Bt.create=(e,t)=>{if(!Array.isArray(e))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new Bt({items:e,typeName:W.ZodTuple,rest:null,...te(t)})};class Fr extends se{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(t){const{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==Z.object)return V(r,{code:R.invalid_type,expected:Z.object,received:r.parsedType}),J;const s=[],o=this._def.keyType,i=this._def.valueType;for(const a in r.data)s.push({key:o._parse(new At(r,a,r.path,a)),value:i._parse(new At(r,r.data[a],r.path,a))});return r.common.async?Ve.mergeObjectAsync(n,s):Ve.mergeObjectSync(n,s)}get element(){return this._def.valueType}static create(t,n,r){return n instanceof se?new Fr({keyType:t,valueType:n,typeName:W.ZodRecord,...te(r)}):new Fr({keyType:ut.create(),valueType:t,typeName:W.ZodRecord,...te(n)})}}class to extends se{_parse(t){const{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==Z.map)return V(r,{code:R.invalid_type,expected:Z.map,received:r.parsedType}),J;const s=this._def.keyType,o=this._def.valueType,i=[...r.data.entries()].map(([a,c],u)=>({key:s._parse(new At(r,a,r.path,[u,"key"])),value:o._parse(new At(r,c,r.path,[u,"value"]))}));if(r.common.async){const a=new Map;return Promise.resolve().then(async()=>{for(const c of i){const u=await c.key,l=await c.value;if(u.status==="aborted"||l.status==="aborted")return J;(u.status==="dirty"||l.status==="dirty")&&n.dirty(),a.set(u.value,l.value)}return{status:n.value,value:a}})}else{const a=new Map;for(const c of i){const u=c.key,l=c.value;if(u.status==="aborted"||l.status==="aborted")return J;(u.status==="dirty"||l.status==="dirty")&&n.dirty(),a.set(u.value,l.value)}return{status:n.value,value:a}}}}to.create=(e,t,n)=>new to({valueType:t,keyType:e,typeName:W.ZodMap,...te(n)});class Hn extends se{_parse(t){const{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==Z.set)return V(r,{code:R.invalid_type,expected:Z.set,received:r.parsedType}),J;const s=this._def;s.minSize!==null&&r.data.sizes.maxSize.value&&(V(r,{code:R.too_big,maximum:s.maxSize.value,type:"set",inclusive:!0,exact:!1,message:s.maxSize.message}),n.dirty());const o=this._def.valueType;function i(c){const u=new Set;for(const l of c){if(l.status==="aborted")return J;l.status==="dirty"&&n.dirty(),u.add(l.value)}return{status:n.value,value:u}}const a=[...r.data.values()].map((c,u)=>o._parse(new At(r,c,r.path,u)));return r.common.async?Promise.all(a).then(c=>i(c)):i(a)}min(t,n){return new Hn({...this._def,minSize:{value:t,message:G.toString(n)}})}max(t,n){return new Hn({...this._def,maxSize:{value:t,message:G.toString(n)}})}size(t,n){return this.min(t,n).max(t,n)}nonempty(t){return this.min(1,t)}}Hn.create=(e,t)=>new Hn({valueType:e,minSize:null,maxSize:null,typeName:W.ZodSet,...te(t)});class sr extends se{constructor(){super(...arguments),this.validate=this.implement}_parse(t){const{ctx:n}=this._processInputParams(t);if(n.parsedType!==Z.function)return V(n,{code:R.invalid_type,expected:Z.function,received:n.parsedType}),J;function r(a,c){return Ys({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,Ws(),Dr].filter(u=>!!u),issueData:{code:R.invalid_arguments,argumentsError:c}})}function s(a,c){return Ys({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,Ws(),Dr].filter(u=>!!u),issueData:{code:R.invalid_return_type,returnTypeError:c}})}const o={errorMap:n.common.contextualErrorMap},i=n.data;return this._def.returns instanceof hr?We(async(...a)=>{const c=new lt([]),u=await this._def.args.parseAsync(a,o).catch(d=>{throw c.addIssue(r(a,d)),c}),l=await i(...u);return await this._def.returns._def.type.parseAsync(l,o).catch(d=>{throw c.addIssue(s(l,d)),c})}):We((...a)=>{const c=this._def.args.safeParse(a,o);if(!c.success)throw new lt([r(a,c.error)]);const u=i(...c.data),l=this._def.returns.safeParse(u,o);if(!l.success)throw new lt([s(u,l.error)]);return l.data})}parameters(){return this._def.args}returnType(){return this._def.returns}args(...t){return new sr({...this._def,args:Bt.create(t).rest(Un.create())})}returns(t){return new sr({...this._def,returns:t})}implement(t){return this.parse(t)}strictImplement(t){return this.parse(t)}static create(t,n,r){return new sr({args:t||Bt.create([]).rest(Un.create()),returns:n||Un.create(),typeName:W.ZodFunction,...te(r)})}}class Gr extends se{get schema(){return this._def.getter()}_parse(t){const{ctx:n}=this._processInputParams(t);return this._def.getter()._parse({data:n.data,path:n.path,parent:n})}}Gr.create=(e,t)=>new Gr({getter:e,typeName:W.ZodLazy,...te(t)});class Wr extends se{_parse(t){if(t.data!==this._def.value){const n=this._getOrReturnCtx(t);return V(n,{received:n.data,code:R.invalid_literal,expected:this._def.value}),J}return{status:"valid",value:t.data}}get value(){return this._def.value}}Wr.create=(e,t)=>new Wr({value:e,typeName:W.ZodLiteral,...te(t)});function $l(e,t){return new bn({values:e,typeName:W.ZodEnum,...te(t)})}class bn extends se{_parse(t){if(typeof t.data!="string"){const n=this._getOrReturnCtx(t),r=this._def.values;return V(n,{expected:pe.joinValues(r),received:n.parsedType,code:R.invalid_type}),J}if(this._def.values.indexOf(t.data)===-1){const n=this._getOrReturnCtx(t),r=this._def.values;return V(n,{received:n.data,code:R.invalid_enum_value,options:r}),J}return We(t.data)}get options(){return this._def.values}get enum(){const t={};for(const n of this._def.values)t[n]=n;return t}get Values(){const t={};for(const n of this._def.values)t[n]=n;return t}get Enum(){const t={};for(const n of this._def.values)t[n]=n;return t}extract(t){return bn.create(t)}exclude(t){return bn.create(this.options.filter(n=>!t.includes(n)))}}bn.create=$l;class Yr extends se{_parse(t){const n=pe.getValidEnumValues(this._def.values),r=this._getOrReturnCtx(t);if(r.parsedType!==Z.string&&r.parsedType!==Z.number){const s=pe.objectValues(n);return V(r,{expected:pe.joinValues(s),received:r.parsedType,code:R.invalid_type}),J}if(n.indexOf(t.data)===-1){const s=pe.objectValues(n);return V(r,{received:r.data,code:R.invalid_enum_value,options:s}),J}return We(t.data)}get enum(){return this._def.values}}Yr.create=(e,t)=>new Yr({values:e,typeName:W.ZodNativeEnum,...te(t)});class hr extends se{unwrap(){return this._def.type}_parse(t){const{ctx:n}=this._processInputParams(t);if(n.parsedType!==Z.promise&&n.common.async===!1)return V(n,{code:R.invalid_type,expected:Z.promise,received:n.parsedType}),J;const r=n.parsedType===Z.promise?n.data:Promise.resolve(n.data);return We(r.then(s=>this._def.type.parseAsync(s,{path:n.path,errorMap:n.common.contextualErrorMap})))}}hr.create=(e,t)=>new hr({type:e,typeName:W.ZodPromise,...te(t)});class pt extends se{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===W.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(t){const{status:n,ctx:r}=this._processInputParams(t),s=this._def.effect||null;if(s.type==="preprocess"){const i=s.transform(r.data);return r.common.async?Promise.resolve(i).then(a=>this._def.schema._parseAsync({data:a,path:r.path,parent:r})):this._def.schema._parseSync({data:i,path:r.path,parent:r})}const o={addIssue:i=>{V(r,i),i.fatal?n.abort():n.dirty()},get path(){return r.path}};if(o.addIssue=o.addIssue.bind(o),s.type==="refinement"){const i=a=>{const c=s.refinement(a,o);if(r.common.async)return Promise.resolve(c);if(c instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return a};if(r.common.async===!1){const a=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});return a.status==="aborted"?J:(a.status==="dirty"&&n.dirty(),i(a.value),{status:n.value,value:a.value})}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(a=>a.status==="aborted"?J:(a.status==="dirty"&&n.dirty(),i(a.value).then(()=>({status:n.value,value:a.value}))))}if(s.type==="transform")if(r.common.async===!1){const i=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});if(!Xs(i))return i;const a=s.transform(i.value,o);if(a instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:n.value,value:a}}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(i=>Xs(i)?Promise.resolve(s.transform(i.value,o)).then(a=>({status:n.value,value:a})):i);pe.assertNever(s)}}pt.create=(e,t,n)=>new pt({schema:e,typeName:W.ZodEffects,effect:t,...te(n)});pt.createWithPreprocess=(e,t,n)=>new pt({schema:t,effect:{type:"preprocess",transform:e},typeName:W.ZodEffects,...te(n)});class Ht extends se{_parse(t){return this._getType(t)===Z.undefined?We(void 0):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}}Ht.create=(e,t)=>new Ht({innerType:e,typeName:W.ZodOptional,...te(t)});class jn extends se{_parse(t){return this._getType(t)===Z.null?We(null):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}}jn.create=(e,t)=>new jn({innerType:e,typeName:W.ZodNullable,...te(t)});class Xr extends se{_parse(t){const{ctx:n}=this._processInputParams(t);let r=n.data;return n.parsedType===Z.undefined&&(r=this._def.defaultValue()),this._def.innerType._parse({data:r,path:n.path,parent:n})}removeDefault(){return this._def.innerType}}Xr.create=(e,t)=>new Xr({innerType:e,typeName:W.ZodDefault,defaultValue:typeof t.default=="function"?t.default:()=>t.default,...te(t)});class no extends se{_parse(t){const{ctx:n}=this._processInputParams(t),r={...n,common:{...n.common,issues:[]}},s=this._def.innerType._parse({data:r.data,path:r.path,parent:{...r}});return Js(s)?s.then(o=>({status:"valid",value:o.status==="valid"?o.value:this._def.catchValue({get error(){return new lt(r.common.issues)},input:r.data})})):{status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new lt(r.common.issues)},input:r.data})}}removeCatch(){return this._def.innerType}}no.create=(e,t)=>new no({innerType:e,typeName:W.ZodCatch,catchValue:typeof t.catch=="function"?t.catch:()=>t.catch,...te(t)});class ro extends se{_parse(t){if(this._getType(t)!==Z.nan){const r=this._getOrReturnCtx(t);return V(r,{code:R.invalid_type,expected:Z.nan,received:r.parsedType}),J}return{status:"valid",value:t.data}}}ro.create=e=>new ro({typeName:W.ZodNaN,...te(e)});const vw=Symbol("zod_brand");class _l extends se{_parse(t){const{ctx:n}=this._processInputParams(t),r=n.data;return this._def.type._parse({data:r,path:n.path,parent:n})}unwrap(){return this._def.type}}class as extends se{_parse(t){const{status:n,ctx:r}=this._processInputParams(t);if(r.common.async)return(async()=>{const o=await this._def.in._parseAsync({data:r.data,path:r.path,parent:r});return o.status==="aborted"?J:o.status==="dirty"?(n.dirty(),Sl(o.value)):this._def.out._parseAsync({data:o.value,path:r.path,parent:r})})();{const s=this._def.in._parseSync({data:r.data,path:r.path,parent:r});return s.status==="aborted"?J:s.status==="dirty"?(n.dirty(),{status:"dirty",value:s.value}):this._def.out._parseSync({data:s.value,path:r.path,parent:r})}}static create(t,n){return new as({in:t,out:n,typeName:W.ZodPipeline})}}const Al=(e,t={},n)=>e?dr.create().superRefine((r,s)=>{var o,i;if(!e(r)){const a=typeof t=="function"?t(r):typeof t=="string"?{message:t}:t,c=(i=(o=a.fatal)!==null&&o!==void 0?o:n)!==null&&i!==void 0?i:!0,u=typeof a=="string"?{message:a}:a;s.addIssue({code:"custom",...u,fatal:c})}}):dr.create(),Ew={object:Se.lazycreate};var W;(function(e){e.ZodString="ZodString",e.ZodNumber="ZodNumber",e.ZodNaN="ZodNaN",e.ZodBigInt="ZodBigInt",e.ZodBoolean="ZodBoolean",e.ZodDate="ZodDate",e.ZodSymbol="ZodSymbol",e.ZodUndefined="ZodUndefined",e.ZodNull="ZodNull",e.ZodAny="ZodAny",e.ZodUnknown="ZodUnknown",e.ZodNever="ZodNever",e.ZodVoid="ZodVoid",e.ZodArray="ZodArray",e.ZodObject="ZodObject",e.ZodUnion="ZodUnion",e.ZodDiscriminatedUnion="ZodDiscriminatedUnion",e.ZodIntersection="ZodIntersection",e.ZodTuple="ZodTuple",e.ZodRecord="ZodRecord",e.ZodMap="ZodMap",e.ZodSet="ZodSet",e.ZodFunction="ZodFunction",e.ZodLazy="ZodLazy",e.ZodLiteral="ZodLiteral",e.ZodEnum="ZodEnum",e.ZodEffects="ZodEffects",e.ZodNativeEnum="ZodNativeEnum",e.ZodOptional="ZodOptional",e.ZodNullable="ZodNullable",e.ZodDefault="ZodDefault",e.ZodCatch="ZodCatch",e.ZodPromise="ZodPromise",e.ZodBranded="ZodBranded",e.ZodPipeline="ZodPipeline"})(W||(W={}));const kw=(e,t={message:`Input not instance of ${e.name}`})=>Al(n=>n instanceof e,t),Bl=ut.create,Tl=mn.create,Sw=ro.create,$w=yn.create,Ol=Mr.create,_w=Rn.create,Aw=Qs.create,Bw=Zr.create,Tw=Vr.create,Ow=dr.create,Iw=Un.create,Cw=Dt.create,Pw=eo.create,Uw=dt.create,Nw=Se.create,Lw=Se.strictCreate,Rw=qr.create,Hw=Ao.create,jw=zr.create,Kw=Bt.create,Dw=Fr.create,Mw=to.create,Zw=Hn.create,Vw=sr.create,qw=Gr.create,zw=Wr.create,Fw=bn.create,Gw=Yr.create,Ww=hr.create,Hc=pt.create,Yw=Ht.create,Xw=jn.create,Jw=pt.createWithPreprocess,Qw=as.create,e1=()=>Bl().optional(),t1=()=>Tl().optional(),n1=()=>Ol().optional(),r1={string:(e=>ut.create({...e,coerce:!0})),number:(e=>mn.create({...e,coerce:!0})),boolean:(e=>Mr.create({...e,coerce:!0})),bigint:(e=>yn.create({...e,coerce:!0})),date:(e=>Rn.create({...e,coerce:!0}))},s1=J;var Ge=Object.freeze({__proto__:null,defaultErrorMap:Dr,setErrorMap:cw,getErrorMap:Ws,makeIssue:Ys,EMPTY_PATH:uw,addIssueToContext:V,ParseStatus:Ve,INVALID:J,DIRTY:Sl,OK:We,isAborted:Li,isDirty:Ri,isValid:Xs,isAsync:Js,get util(){return pe},get objectUtil(){return Ni},ZodParsedType:Z,getParsedType:an,ZodType:se,ZodString:ut,ZodNumber:mn,ZodBigInt:yn,ZodBoolean:Mr,ZodDate:Rn,ZodSymbol:Qs,ZodUndefined:Zr,ZodNull:Vr,ZodAny:dr,ZodUnknown:Un,ZodNever:Dt,ZodVoid:eo,ZodArray:dt,ZodObject:Se,ZodUnion:qr,ZodDiscriminatedUnion:Ao,ZodIntersection:zr,ZodTuple:Bt,ZodRecord:Fr,ZodMap:to,ZodSet:Hn,ZodFunction:sr,ZodLazy:Gr,ZodLiteral:Wr,ZodEnum:bn,ZodNativeEnum:Yr,ZodPromise:hr,ZodEffects:pt,ZodTransformer:pt,ZodOptional:Ht,ZodNullable:jn,ZodDefault:Xr,ZodCatch:no,ZodNaN:ro,BRAND:vw,ZodBranded:_l,ZodPipeline:as,custom:Al,Schema:se,ZodSchema:se,late:Ew,get ZodFirstPartyTypeKind(){return W},coerce:r1,any:Ow,array:Uw,bigint:$w,boolean:Ol,date:_w,discriminatedUnion:Hw,effect:Hc,enum:Fw,function:Vw,instanceof:kw,intersection:jw,lazy:qw,literal:zw,map:Mw,nan:Sw,nativeEnum:Gw,never:Cw,null:Tw,nullable:Xw,number:Tl,object:Nw,oboolean:n1,onumber:t1,optional:Yw,ostring:e1,pipeline:Qw,preprocess:Jw,promise:Ww,record:Dw,set:Zw,strictObject:Lw,string:Bl,symbol:Aw,transformer:Hc,tuple:Kw,undefined:Bw,union:Rw,unknown:Iw,void:Pw,NEVER:s1,ZodIssueCode:R,quotelessJson:aw,ZodError:lt});const Il=Ge.string().regex(/^[a-fA-F0-9]$/),o1=Ge.string().regex(/^[a-fA-F0-9]{64}$/),pr=Ge.number().min(0).max(4294967295),i1=Ge.bigint(),Cl=Ge.instanceof(Uint8Array),a1=Ge.union([Il,pr,Ge.string(),Cl]).array(),Ra=Ge.union([a1,Il,Cl]),c1=Ge.array(Ra),Pl=Ge.object({value:Ge.union([pr,i1]),scriptPubKey:Ra}),u1=Ge.object({txid:o1,vout:pr,scriptSig:Ra,sequence:pr,prevout:Pl.optional(),witness:c1});Ge.object({version:pr,vin:Ge.array(u1),vout:Ge.array(Pl),locktime:pr});const ji=2048,f1=new TextEncoder;function Ul(e){const t=[],n=(s,o)=>{if(o<24)t.push(s*32+o);else if(o<=255)t.push(s*32+24,o);else if(o<=65535)t.push(s*32+25,o>>>8,o&255);else if(o<=4294967295){const i=new Uint8Array(4);new DataView(i.buffer).setUint32(0,o),t.push(s*32+26,...i)}else{t.push(s*32+27);const i=new Uint8Array(8);new DataView(i.buffer).setBigUint64(0,BigInt(o)),t.push(...i)}},r=(s,o=0)=>{if(o>64)throw new Error("Metadata nesting exceeds 64 levels.");if(s===null)t.push(246);else if(typeof s=="boolean")t.push(s?245:244);else if(typeof s=="number"&&Number.isFinite(s))if(Number.isSafeInteger(s)&&!Object.is(s,-0))n(s>=0?0:1,s>=0?s:-1-s);else{const i=new Uint8Array(8);new DataView(i.buffer).setFloat64(0,s),t.push(251,...i)}else if(typeof s=="string"){const i=f1.encode(s);n(3,i.length);for(const a of i)t.push(a)}else if(Array.isArray(s))n(4,s.length),s.forEach(i=>r(i,o+1));else if(typeof s=="object"&&Object.getPrototypeOf(s)===Object.prototype){const i=Object.entries(s);n(5,i.length);for(const[a,c]of i)r(a,o+1),r(c,o+1)}else throw new Error("Metadata must contain only JSON values.");if(t.length>ji)throw new Error(`Metadata must be at most ${ji} CBOR bytes.`)};return r(e),Uint8Array.from(t)}function l1(e){if(e=new Uint8Array(e),!e.length||e.length>ji)throw new Error("Invalid CBOR metadata size.");let t=0;const n=o=>{if(t+o>e.length)throw new Error("Truncated CBOR metadata.");const i=e.slice(t,t+o);return t+=o,i},r=(o=0)=>{if(o>64)throw new Error("Metadata nesting exceeds 64 levels.");const i=n(1)[0],a=i>>5,c=i&31;if(a===7){if(c===20)return!1;if(c===21)return!0;if(c===22)return null;if(c===27){const l=new DataView(n(8).buffer).getFloat64(0);if(Number.isFinite(l))return l}throw new Error("Unsupported CBOR value.")}let u=c;if(c>=24&&c<=27){u=0;for(const l of n(2**(c-24)))u=u*256+l}else if(c>=28)throw new Error("Unsupported CBOR length.");if(!Number.isSafeInteger(u))throw new Error("CBOR integer exceeds JSON precision.");if(a===0)return u;if(a===1)return-1-u;if(a===3)return new TextDecoder("utf-8",{fatal:!0}).decode(n(u));if((a===4||a===5)&&u>e.length)throw new Error("Invalid CBOR collection length.");if(a===4)return Array.from({length:u},()=>r(o+1));if(a===5){const l={};for(let f=0;f({txid:e,vout:t,sequence:4294967295,prevout:{value:n,scriptPubKey:r}}),Ue=(e,t)=>({value:e,scriptPubKey:t}),jc=16*1024,Et=1e3,le=500,so="text/plain;charset=utf-8",d1=["text/plain","application/json","text/html","image/svg+xml","image/png","image/jpeg","image/webp"],Nl=new TextEncoder,Nr=e=>Array.from(e,t=>t.toString(16).padStart(2,"0")).join(""),$n=e=>Uint8Array.from(e.match(/../g)??[],t=>parseInt(t,16)),oo=e=>Nr(Nl.encode(e));function Ha(e){const t=typeof e=="string"?{contentType:so,bytes:Nl.encode(e)}:e;if(!t||![...d1,so].includes(t.contentType))throw new Error("Unsupported MIME type.");if(!(t.bytes instanceof Uint8Array)||!t.bytes.length)throw new Error("Enter non-empty inscription bytes.");if(t.bytes.length>jc)throw new Error(`Body must be at most ${jc} bytes.`);return{contentType:t.contentType,bytes:new Uint8Array(t.bytes)}}function io(e){const t=/^([0-9a-f]{64})i(0|[1-9][0-9]*)$/.exec(e);if(!t||Number(t[2])>4294967295)throw new Error("Invalid parent inscription id.");let n=Number(t[2]),r="";for(;n;)r+=(n%256).toString(16).padStart(2,"0"),n=Math.floor(n/256);return t[1].match(/../g).reverse().join("")+r}function Kc(e){if(typeof e!="string"||!/^[0-9a-f]{64,72}$/.test(e)||e.length%2)throw new Error("Invalid parent tag.");const t=[...$n(e.slice(64))].reduce((r,s,o)=>r+s*256**o,0),n=`${e.slice(0,64).match(/../g).reverse().join("")}i${t}`;if(io(n)!==e)throw new Error("Non-canonical parent tag.");return n}function Ll(e,t,n=null,r=void 0,s={}){const{contentType:o,bytes:i}=Ha(t),{delegate:a=null,pointer:c,metaprotocol:u=null}=s,l=u==null||u===""?null:new TextEncoder().encode(String(u));if(l&&l.length>520)throw new Error("Metaprotocol identifier must be 520 bytes or less.");const f=r===void 0?void 0:Ul(r),d=[];for(let p=0;p{const g=p.length/2;return(g<=75?g.toString(16).padStart(2,"0"):g<=255?"4c"+g.toString(16).padStart(2,"0"):"4d"+(g%256).toString(16).padStart(2,"0")+Math.floor(g/256).toString(16).padStart(2,"0"))+p};return h(e)+"ac0063"+h(oo("ord"))+h("01")+h(oo(o))+(a?h("0b")+h(io(a)):"")+(c===void 0?"":h("02")+h(Rl(c)))+(n?h("03")+h(io(n)):"")+(f===void 0?"":Array.from({length:Math.ceil(f.length/520)},(p,g)=>h("05")+h(Nr(f.slice(g*520,(g+1)*520)))).join(""))+(l?h("07")+h(Nr(l)):"")+"00"+d.map(h).join("")+"68"}const h1=e=>_o.tree.getLeaf($e.encode(e,!0));function ja(e){if(!Array.isArray(e)||e.length!==3)throw new Error("Unsupported script-path witness.");const t=$e.decode(e[1]);let n=7,r=null,s=null,o;t[n]==="0b"&&(s=Kc(t[n+1]),n+=2),t[n]==="02"&&(o=g1(t[n+1]==="OP_0"?"":t[n+1]),n+=2),t[n]==="03"&&(r=Kc(t[n+1]),n+=2);const i=[];for(;t[n]==="05";){const p=t[n+1];if(typeof p!="string"||!/^(?:[0-9a-f]{2}){1,520}$/.test(p))throw new Error("Invalid metadata push.");i.push(p),n+=2}const a=i.length?l1($n(i.join(""))):void 0;let c=null;if(t[n]==="07"){const p=t[n+1];if(typeof p!="string"||!/^(?:[0-9a-f]{2}){1,520}$/.test(p))throw new Error("Invalid metaprotocol field.");c=new TextDecoder().decode($n(p)),n+=2}if(t[n]!=="OP_0")throw new Error("Unsupported ord tag or missing body separator.");const u=t.slice(n+1,-1);if(!u.length||u.some(p=>typeof p!="string"||!/^(?:[0-9a-f]{2})+$/.test(p)))throw new Error("Invalid body envelope.");const l=new TextDecoder().decode($n(t[6])),f=Ha({contentType:l,bytes:$n(u.join(""))}),d=Ll(t[0],f,r,a,{delegate:s,pointer:o,metaprotocol:c}),h=a===void 0&&!r&&l===so&&f.bytes.length<=280&&$e.encode([t[0],"OP_CHECKSIG","OP_0","OP_IF",oo("ord"),"01",oo(so),"OP_0",Nr(f.bytes),"OP_ENDIF"],!1).hex;if(d!==e[1]&&h!==e[1])throw new Error("Unsupported ord envelope.");if(!/^[0-9a-f]{64}$/.test(t[0]))throw new Error("Invalid inscription signing key.");return{...f,parent:r,delegate:s,pointer:o,metaprotocol:c,metadata:a,metadataBytes:i.length?$n(i.join("")):void 0,text:new TextDecoder().decode(f.bytes),pubkey:t[0]}}class p1{constructor(t,n){this.chain=t,this.wallet=n}prepare(t,n=null,r=void 0,s={}){const o=Ha(t);if(r!==void 0&&Ul(r),s.delegate&&io(s.delegate),s.pointer!==void 0&&Rl(s.pointer),s.metaprotocol!==void 0&&s.metaprotocol!==null&&s.metaprotocol!==""&&new TextEncoder().encode(String(s.metaprotocol)).length>520)throw new Error("Metaprotocol identifier must be 520 bytes or less.");if(n&&s.reinscribe)throw new Error("Choose parent or reinscription, not both.");const i=this.chain.coins(this.wallet.script),a=n?i.find(l=>{var f;return(f=l.inscriptions)==null?void 0:f.some(d=>d.id===n)}):null;if(n&&!a)throw new Error("Parent must be an owned, unspent inscription.");const c=s.reinscribe?i.find(l=>{var f;return(f=l.inscriptions)==null?void 0:f.some(d=>d.id===s.reinscribe)}):null;if(s.reinscribe&&!c)throw new Error("Reinscription must spend an owned sat.");const u=i.find(l=>!l.inscription&&l.value>=Et+2*le+330);if(!u)throw new Error("Mine a block first to get spendable fake BTC.");return{...o,coin:u,parent:a,reinscribe:c,totalFee:le*2,postage:Et}}inscribe(t,n=null,r=void 0,s={}){const{coin:o,parent:i,reinscribe:a,...c}=this.prepare(t,n,r,s),u=i??a,l=a==null?void 0:a.inscriptions.find(v=>v.id===s.reinscribe),f=l?this.chain.satLocation(l.sat).offset:s.pointer??(i?i.value:void 0),d=Ll(this.wallet.pubkey,c,n,r,{...s,pointer:f}),h=h1(d),[p,g]=_o.getPubKey(this.wallet.pubkey,{target:h}),y=ie.create({vin:[jt(o.txid,o.vout,o.value,o.scriptPubKey)],vout:[Ue(Et+le,["OP_1",p]),Ue(o.value-Et-2*le,this.wallet.script)]});y.vin[0].witness=[this.wallet.sign(y)];const b=ie.util.getTxid(y),w=ie.create({vin:[...u?[jt(u.txid,u.vout,u.value,u.scriptPubKey)]:[],jt(b,0,Et+le,["OP_1",p])],vout:[...u?[Ue(u.value,this.wallet.script)]:[],Ue(Et,this.wallet.script)]}),m=u?1:0;return w.vin[m].witness=[this.wallet.sign(w,h,m),$e.encode(d,!1).hex,g],u&&(w.vin[0].witness=[this.wallet.sign(w)]),this.chain.submitPackage([ie.encode(y).hex,ie.encode(w).hex]),`${ie.util.getTxid(w)}i0`}list(){return this.chain.coins(this.wallet.script).flatMap(t=>t.inscriptions??[])}}function Rl(e){let t;try{t=BigInt(e)}catch{throw new Error("Invalid pointer.")}if(t<0n||t>0xffffffffffffffffn||typeof e=="number"&&!Number.isSafeInteger(e))throw new Error("Invalid pointer.");let n="";for(;t;)n+=Number(t&255n).toString(16).padStart(2,"0"),t>>=8n;return n}function g1(e){if(typeof e!="string"||!/^(?:[0-9a-f]{2}){0,8}$/.test(e))throw new Error("Invalid pointer tag.");return[...$n(e)].reduce((t,n,r)=>t+(BigInt(n)<this.utxos.set(`${r.txid}:${r.vout}`,{txid:r.txid,vout:r.vout,value:r.value,ranges:$u(s,r.value)}));const n=(r,s,o)=>{var b;const i=ie.decode(r),a=ie.util.getTxid(i),c=i.vin[0].txid==="0".repeat(64),u=c?[]:i.vin.map(w=>this.utxos.get(`${w.txid}:${w.vout}`)),l=Bu(i,u,s,c);i.vin.forEach(w=>this.utxos.delete(`${w.txid}:${w.vout}`)),i.vout.forEach((w,m)=>this.utxos.set(`${a}:${m}`,{txid:a,vout:m,value:Number(w.value),ranges:l[m]}));const f=(b=i.vin.find(w=>{var m;return((m=w.witness)==null?void 0:m.length)===3}))==null?void 0:b.witness;if(!f)return;const d=ja(f),h=BigInt(d.pointer??0),p=i.vout.reduce((w,m)=>w+Number(m.value),0),g=Au(l.flat(),hw.sat===g).length,status:s===null?"pending":"confirmed",height:s,block:o,metadata:y??null,hasMetadata:y!==void 0,parent:d.parent,protocol:d.metaprotocol??(y&&!Array.isArray(y)&&typeof y=="object"&&Object.hasOwn(y,"protocol")&&typeof y.protocol=="string"?y.protocol:null)})};for(const r of t.blocks)for(const s of r.raws)n(s,r.height,r.hash);for(const r of t.mempool)n(r,null,null);for(const r of this.events){r.location=null;for(const s of this.utxos.values()){const o=Ns(s.ranges,r.sat);if(o!==null){r.location={txid:s.txid,vout:s.vout,offset:o};break}}r.delegatedBy=this.events.filter(s=>s.delegate===r.id).map(s=>s.id),r.inscriptions=this.events.filter(s=>s.sat===r.sat).map(s=>s.id)}}forProtocol(t){return this.events.filter(n=>n.protocol===t)}get protocols(){return[...new Set(this.events.filter(t=>t.protocol!==null).map(t=>t.protocol))].sort()}get stats(){return{events:this.events.length,withMetadata:this.events.filter(t=>t.hasMetadata).length,confirmed:this.events.filter(t=>t.status==="confirmed").length,pending:this.events.filter(t=>t.status==="pending").length,protocols:this.protocols}}}const Ka="lineage/v0",m1=["white","green","black"],ei="names are 1-40 lowercase letters, digits or hyphens (they become domains)",y1=/^[a-z0-9](?:[a-z0-9-]{0,38}[a-z0-9])?$/,xs=e=>typeof e=="string"&&y1.test(e),Ur=(e,t)=>typeof e=="string"?e.trim().slice(0,t):"";function Bo(e){return String(e??"").toLowerCase().normalize("NFKD").replace(/[̀-ͯ]/g,"").replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,40).replace(/-+$/,"")}const To=e=>e.events.filter(t=>t.protocol===Ka);function wn(e,{upTo:t=1/0,pending:n=!1}={}){const r=new Map,s=[],o=[],i=new Map,a=c=>c.status==="active";for(const c of e){const u=c.status==="confirmed";if(u?c.height>t:!n)continue;const l=c.metadata&&typeof c.metadata=="object"&&!Array.isArray(c.metadata)?c.metadata:{},f={id:c.id,op:typeof l.op=="string"?l.op.slice(0,20):"?",beat:u?c.height:null,pending:!u,meta:l,parent:c.parent??null,ok:!0,why:"",node:null,root:null,also:[]},d=f.parent?r.get(f.parent):null,h=f.beat??"cued",p=w=>{f.ok=!1,f.why=w},g=w=>d?a(d)?"":`the ${w} is ${d.status}`:`the ${w} is not in this lineage`;let y="";switch(f.op){case"found":if(f.parent)p("a holding has no parent");else if(!xs(l.name))p(ei);else if(s.some(w=>a(w)&&w.name===l.name))p(`an active holding is already named ${l.name}`);else{const w=Dc(c,l.name,null,"holding");r.set(w.id,w),s.push(w),f.node=w.id}break;case"birth":{const w=l.kind==="agent"?"agent":"org";if(y=g("parent"))p(y);else if(d.kind==="agent")p("agents do not give birth");else if(!xs(l.name))p(ei);else if(d.children.some(m=>a(r.get(m))&&r.get(m).name===l.name))p(`${d.name} already has an active ${l.name}`);else{const m=Dc(c,l.name,d,w);m.index=d.children.filter(v=>r.get(v).kind===w).length,d.children.push(m.id),r.set(m.id,m),f.node=m.id}break}case"award":{const w=r.get(l.to);(y=g("issuer"))?p(y):d.kind==="agent"?p("agents do not award belts"):!w||w.id===d.id?p("the recipient must be another node in this lineage"):a(w)?!xs(l.skill)||!m1.includes(l.belt)?p("an award needs a skill name and a belt (white, green or black)"):(w.badges=w.badges.filter(m=>m.skill!==l.skill),w.badges.push({skill:l.skill,belt:l.belt,by:d.id,beat:h,id:c.id}),f.node=w.id):p(`the recipient is ${w.status}`);break}case"decide":(y=g("decider"))?p(y):Ur(l.title,140)?(d.decisions.push({title:Ur(l.title,140),why:Ur(l.why,400),beat:h,id:c.id}),f.node=d.id):p("a decision needs a title");break;case"make":(y=g("maker"))?p(y):xs(l.name)?d.made.some(w=>i.get(w).name===l.name)?p(`there is already a ${l.name} by ${d.name}`):(i.set(c.id,{id:c.id,name:l.name,note:Ur(l.note,280),maker:d.id,beat:h}),d.made.push(c.id),f.node=d.id):p(ei);break;case"graduate":{const w=r.get(l.of);if(y=g("parent"))p(y);else if(!w||w.parent!==d.id)p("only its parent can graduate a child");else if(w.kind!=="org")p("only orgs graduate");else if(!a(w))p(`the child is ${w.status}`);else if(w.edge==="adopted")p("already graduated");else{const m=w.root,v=k=>{k.root=w.id;for(const O of k.children)r.get(O).root===m&&v(r.get(O))};w.edge="adopted",w.graduated=h,f.node=w.id,v(w),s.push(w)}break}case"close":if(!d)p(f.parent?"that node is not in this lineage":"a close spends the node it closes");else if(!a(d))p(`already ${d.status}`);else{const w=m=>{m.status="closed",m.closed=h;for(const v of m.children){const k=r.get(v);k.edge==="derived"&&a(k)&&(f.also.push(k.id),w(k))}};w(d),f.node=d.id}break;default:p("not a lineage/v0 op")}const b=f.node?r.get(f.node).root:null;f.root=(d==null?void 0:d.root)??b,f.roots=[...new Set([f.root,b].filter(Boolean))],o.push(f)}return{nodes:r,roots:s,log:o,items:i}}function Dc(e,t,n,r){return{id:e.id,name:t,kind:r,parent:(n==null?void 0:n.id)??null,root:n?n.root:e.id,edge:n?"derived":null,status:"active",index:null,born:e.status==="confirmed"?e.height:"cued",children:[],badges:[],decisions:[],made:[],graduated:null,closed:null}}function b1(e,t){const n=[],r=e.nodes.get(t),s=(o,i,a)=>{const c=o.root!==t;if(n.push({type:"node",node:o,guide:i,path:o.id===t?"●":`${o.index}'`,away:c}),c)return;const u=o.children.map(f=>e.nodes.get(f)),l=[["agents",u.filter(f=>f.kind==="agent")],["orgs",u.filter(f=>f.kind!=="agent")]].filter(([,f])=>f.length);l.forEach(([f,d],h)=>{const p=h===l.length-1,g=a+(p?" ":"│ ");n.push({type:"group",label:f,guide:a+(p?"└─ ":"├─ ")}),d.forEach((y,b)=>{const w=b===d.length-1;s(y,g+(w?"└─ ":"├─ "),g+(w?" ":"│ "))})})};return r&&s(r,"",""),n}function w1(e,t){const n={orgs:0,agents:0,belts:0,decisions:0,closed:0};for(const r of e.nodes.values())r.root===t&&(r.id!==t&&(n[r.kind==="agent"?"agents":"orgs"]++,r.status==="closed"&&n.closed++),n.belts+=r.badges.length,n.decisions+=r.decisions.length);return n}function gr(e,t){const n=[];for(let r=e.nodes.get(t);r;r=r.id===r.root?null:e.nodes.get(r.parent))n.unshift(r.name);return n.join(" / ")}function Hl(e,t){const n=e.meta,r=s=>{var o;return((o=t.nodes.get(s))==null?void 0:o.name)??(typeof s=="string"?`${s.slice(0,8)}…`:"?")};if(!e.ok)return`${e.op}: ${e.why}`;switch(e.op){case"found":return`found ${n.name}`;case"birth":return`birth ${n.name}${n.kind==="agent"?" (agent)":""} ← ${r(e.parent)}`;case"award":return`award ${n.skill} · ${n.belt} → ${r(n.to)}, from ${r(e.parent)}`;case"decide":return`decide “${Ur(n.title,140)}” · ${r(e.parent)}`;case"make":return`make ${n.name} · ${r(e.parent)}`;case"graduate":return`graduate ${r(n.of)} from ${r(e.parent)}`;case"close":return`close ${r(e.parent)}${e.also.length?` and ${e.also.length} derived`:""}`;default:return e.op}}const Yn=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0;/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */function us(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"}function hn(e){if(!Number.isSafeInteger(e)||e<0)throw new Error("positive integer expected, got "+e)}function Me(e,...t){if(!us(e))throw new Error("Uint8Array expected");if(t.length>0&&!t.includes(e.length))throw new Error("Uint8Array expected of length "+t+", got length="+e.length)}function fs(e){if(typeof e!="function"||typeof e.create!="function")throw new Error("Hash should be wrapped by utils.createHasher");hn(e.outputLen),hn(e.blockLen)}function ao(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function x1(e,t){Me(e);const n=t.outputLen;if(e.length>>t}function vs(e,t){return e<>>32-t>>>0}const jl=typeof Uint8Array.from([]).toHex=="function"&&typeof Uint8Array.fromHex=="function",v1=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function Ze(e){if(Me(e),jl)return e.toHex();let t="";for(let n=0;n=Ut._0&&e<=Ut._9)return e-Ut._0;if(e>=Ut.A&&e<=Ut.F)return e-(Ut.A-10);if(e>=Ut.a&&e<=Ut.f)return e-(Ut.a-10)}function gt(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);if(jl)return Uint8Array.fromHex(e);const t=e.length,n=t/2;if(t%2)throw new Error("hex string expected, got unpadded hex of length "+t);const r=new Uint8Array(n);for(let s=0,o=0;se().update(Jr(r)).digest(),n=e();return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=()=>e(),t}function zn(e=32){if(Yn&&typeof Yn.getRandomValues=="function")return Yn.getRandomValues(new Uint8Array(e));if(Yn&&typeof Yn.randomBytes=="function")return Uint8Array.from(Yn.randomBytes(e));throw new Error("crypto.getRandomValues must be defined")}function k1(e,t,n,r){if(typeof e.setBigUint64=="function")return e.setBigUint64(t,n,r);const s=BigInt(32),o=BigInt(4294967295),i=Number(n>>s&o),a=Number(n&o),c=r?4:0,u=r?0:4;e.setUint32(t+c,i,r),e.setUint32(t+u,a,r)}function S1(e,t,n){return e&t^~e&n}function $1(e,t,n){return e&t^e&n^t&n}class Ma extends Kl{constructor(t,n,r,s){super(),this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=t,this.outputLen=n,this.padOffset=r,this.isLE=s,this.buffer=new Uint8Array(t),this.view=Nn(this.buffer)}update(t){ao(this),t=Jr(t),Me(t);const{view:n,buffer:r,blockLen:s}=this,o=t.length;for(let i=0;is-i&&(this.process(r,0),i=0);for(let f=i;fl.length)throw new Error("_sha2: outputLen bigger than state");for(let f=0;f>Vc&Es)}:{h:Number(e>>Vc&Es)|0,l:Number(e&Es)|0}}function A1(e,t=!1){const n=e.length;let r=new Uint32Array(n),s=new Uint32Array(n);for(let o=0;oe>>>n,zc=(e,t,n)=>e<<32-n|t>>>n,Xn=(e,t,n)=>e>>>n|t<<32-n,Jn=(e,t,n)=>e<<32-n|t>>>n,ks=(e,t,n)=>e<<64-n|t>>>n-32,Ss=(e,t,n)=>e>>>n-32|t<<64-n;function Nt(e,t,n,r){const s=(t>>>0)+(r>>>0);return{h:e+n+(s/2**32|0)|0,l:s|0}}const B1=(e,t,n)=>(e>>>0)+(t>>>0)+(n>>>0),T1=(e,t,n,r)=>t+n+r+(e/2**32|0)|0,O1=(e,t,n,r)=>(e>>>0)+(t>>>0)+(n>>>0)+(r>>>0),I1=(e,t,n,r,s)=>t+n+r+s+(e/2**32|0)|0,C1=(e,t,n,r,s)=>(e>>>0)+(t>>>0)+(n>>>0)+(r>>>0)+(s>>>0),P1=(e,t,n,r,s,o)=>t+n+r+s+o+(e/2**32|0)|0,U1=Uint32Array.from([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),en=new Uint32Array(64);class N1 extends Ma{constructor(t=32){super(64,t,8,!1),this.A=Qt[0]|0,this.B=Qt[1]|0,this.C=Qt[2]|0,this.D=Qt[3]|0,this.E=Qt[4]|0,this.F=Qt[5]|0,this.G=Qt[6]|0,this.H=Qt[7]|0}get(){const{A:t,B:n,C:r,D:s,E:o,F:i,G:a,H:c}=this;return[t,n,r,s,o,i,a,c]}set(t,n,r,s,o,i,a,c){this.A=t|0,this.B=n|0,this.C=r|0,this.D=s|0,this.E=o|0,this.F=i|0,this.G=a|0,this.H=c|0}process(t,n){for(let f=0;f<16;f++,n+=4)en[f]=t.getUint32(n,!1);for(let f=16;f<64;f++){const d=en[f-15],h=en[f-2],p=vt(d,7)^vt(d,18)^d>>>3,g=vt(h,17)^vt(h,19)^h>>>10;en[f]=g+en[f-7]+p+en[f-16]|0}let{A:r,B:s,C:o,D:i,E:a,F:c,G:u,H:l}=this;for(let f=0;f<64;f++){const d=vt(a,6)^vt(a,11)^vt(a,25),h=l+d+S1(a,c,u)+U1[f]+en[f]|0,g=(vt(r,2)^vt(r,13)^vt(r,22))+$1(r,s,o)|0;l=u,u=c,c=a,a=i+h|0,i=o,o=s,s=r,r=h+g|0}r=r+this.A|0,s=s+this.B|0,o=o+this.C|0,i=i+this.D|0,a=a+this.E|0,c=c+this.F|0,u=u+this.G|0,l=l+this.H|0,this.set(r,s,o,i,a,c,u,l)}roundClean(){Tt(en)}destroy(){this.set(0,0,0,0,0,0,0,0),Tt(this.buffer)}}const Dl=A1(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map(e=>BigInt(e))),L1=Dl[0],R1=Dl[1],tn=new Uint32Array(80),nn=new Uint32Array(80);class H1 extends Ma{constructor(t=64){super(128,t,16,!1),this.Ah=je[0]|0,this.Al=je[1]|0,this.Bh=je[2]|0,this.Bl=je[3]|0,this.Ch=je[4]|0,this.Cl=je[5]|0,this.Dh=je[6]|0,this.Dl=je[7]|0,this.Eh=je[8]|0,this.El=je[9]|0,this.Fh=je[10]|0,this.Fl=je[11]|0,this.Gh=je[12]|0,this.Gl=je[13]|0,this.Hh=je[14]|0,this.Hl=je[15]|0}get(){const{Ah:t,Al:n,Bh:r,Bl:s,Ch:o,Cl:i,Dh:a,Dl:c,Eh:u,El:l,Fh:f,Fl:d,Gh:h,Gl:p,Hh:g,Hl:y}=this;return[t,n,r,s,o,i,a,c,u,l,f,d,h,p,g,y]}set(t,n,r,s,o,i,a,c,u,l,f,d,h,p,g,y){this.Ah=t|0,this.Al=n|0,this.Bh=r|0,this.Bl=s|0,this.Ch=o|0,this.Cl=i|0,this.Dh=a|0,this.Dl=c|0,this.Eh=u|0,this.El=l|0,this.Fh=f|0,this.Fl=d|0,this.Gh=h|0,this.Gl=p|0,this.Hh=g|0,this.Hl=y|0}process(t,n){for(let m=0;m<16;m++,n+=4)tn[m]=t.getUint32(n),nn[m]=t.getUint32(n+=4);for(let m=16;m<80;m++){const v=tn[m-15]|0,k=nn[m-15]|0,O=Xn(v,k,1)^Xn(v,k,8)^qc(v,k,7),C=Jn(v,k,1)^Jn(v,k,8)^zc(v,k,7),P=tn[m-2]|0,B=nn[m-2]|0,N=Xn(P,B,19)^ks(P,B,61)^qc(P,B,6),H=Jn(P,B,19)^Ss(P,B,61)^zc(P,B,6),K=O1(C,H,nn[m-7],nn[m-16]),E=I1(K,O,N,tn[m-7],tn[m-16]);tn[m]=E|0,nn[m]=K|0}let{Ah:r,Al:s,Bh:o,Bl:i,Ch:a,Cl:c,Dh:u,Dl:l,Eh:f,El:d,Fh:h,Fl:p,Gh:g,Gl:y,Hh:b,Hl:w}=this;for(let m=0;m<80;m++){const v=Xn(f,d,14)^Xn(f,d,18)^ks(f,d,41),k=Jn(f,d,14)^Jn(f,d,18)^Ss(f,d,41),O=f&h^~f&g,C=d&p^~d&y,P=C1(w,k,C,R1[m],nn[m]),B=P1(P,b,v,O,L1[m],tn[m]),N=P|0,H=Xn(r,s,28)^ks(r,s,34)^ks(r,s,39),K=Jn(r,s,28)^Ss(r,s,34)^Ss(r,s,39),E=r&o^r&a^o&a,$=s&i^s&c^i&c;b=g|0,w=y|0,g=h|0,y=p|0,h=f|0,p=d|0,{h:f,l:d}=Nt(u|0,l|0,B|0,N|0),u=a|0,l=c|0,a=o|0,c=i|0,o=r|0,i=s|0;const x=B1(N,K,$);r=T1(x,B,H,E),s=x|0}({h:r,l:s}=Nt(this.Ah|0,this.Al|0,r|0,s|0)),{h:o,l:i}=Nt(this.Bh|0,this.Bl|0,o|0,i|0),{h:a,l:c}=Nt(this.Ch|0,this.Cl|0,a|0,c|0),{h:u,l}=Nt(this.Dh|0,this.Dl|0,u|0,l|0),{h:f,l:d}=Nt(this.Eh|0,this.El|0,f|0,d|0),{h,l:p}=Nt(this.Fh|0,this.Fl|0,h|0,p|0),{h:g,l:y}=Nt(this.Gh|0,this.Gl|0,g|0,y|0),{h:b,l:w}=Nt(this.Hh|0,this.Hl|0,b|0,w|0),this.set(r,s,o,i,a,c,u,l,f,d,h,p,g,y,b,w)}roundClean(){Tt(tn,nn)}destroy(){Tt(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}const Je=Da(()=>new N1),Qr=Da(()=>new H1),j1=Uint8Array.from([7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8]),Ml=Uint8Array.from(new Array(16).fill(0).map((e,t)=>t)),K1=Ml.map(e=>(9*e+5)%16),Zl=(()=>{const n=[[Ml],[K1]];for(let r=0;r<4;r++)for(let s of n)s.push(s[r].map(o=>j1[o]));return n})(),Vl=Zl[0],ql=Zl[1],zl=[[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8],[12,13,11,15,6,9,9,7,12,15,11,13,7,8,7,7],[13,15,14,11,7,7,6,8,13,14,13,12,5,5,6,9],[14,11,12,14,8,6,5,5,15,12,15,14,9,9,8,6],[15,12,13,13,9,5,8,6,14,11,12,11,8,6,5,5]].map(e=>Uint8Array.from(e)),D1=Vl.map((e,t)=>e.map(n=>zl[t][n])),M1=ql.map((e,t)=>e.map(n=>zl[t][n])),Z1=Uint32Array.from([0,1518500249,1859775393,2400959708,2840853838]),V1=Uint32Array.from([1352829926,1548603684,1836072691,2053994217,0]);function Fc(e,t,n,r){return e===0?t^n^r:e===1?t&n|~t&r:e===2?(t|~n)^r:e===3?t&r|n&~r:t^(n|~r)}const $s=new Uint32Array(16);class q1 extends Ma{constructor(){super(64,20,8,!0),this.h0=1732584193,this.h1=-271733879,this.h2=-1732584194,this.h3=271733878,this.h4=-1009589776}get(){const{h0:t,h1:n,h2:r,h3:s,h4:o}=this;return[t,n,r,s,o]}set(t,n,r,s,o){this.h0=t|0,this.h1=n|0,this.h2=r|0,this.h3=s|0,this.h4=o|0}process(t,n){for(let h=0;h<16;h++,n+=4)$s[h]=t.getUint32(n,!0);let r=this.h0|0,s=r,o=this.h1|0,i=o,a=this.h2|0,c=a,u=this.h3|0,l=u,f=this.h4|0,d=f;for(let h=0;h<5;h++){const p=4-h,g=Z1[h],y=V1[h],b=Vl[h],w=ql[h],m=D1[h],v=M1[h];for(let k=0;k<16;k++){const O=vs(r+Fc(h,o,a,u)+$s[b[k]]+g,m[k])+f|0;r=f,f=u,u=vs(a,10)|0,a=o,o=O}for(let k=0;k<16;k++){const O=vs(s+Fc(p,i,c,l)+$s[w[k]]+y,v[k])+d|0;s=d,d=l,l=vs(c,10)|0,c=i,i=O}}this.set(this.h1+a+l|0,this.h2+u+d|0,this.h3+f+s|0,this.h4+r+i|0,this.h0+o+c|0)}roundClean(){Tt($s)}destroy(){this.destroyed=!0,Tt(this.buffer),this.set(0,0,0,0,0)}}const Fl=Da(()=>new q1);class Gl extends Kl{constructor(t,n){super(),this.finished=!1,this.destroyed=!1,fs(t);const r=Jr(n);if(this.iHash=t.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const s=this.blockLen,o=new Uint8Array(s);o.set(r.length>s?t.create().update(r).digest():r);for(let i=0;inew Gl(e,t).update(n).digest();xn.create=(e,t)=>new Gl(e,t);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const Za=BigInt(0),Ki=BigInt(1);function Kn(e,t=""){if(typeof e!="boolean"){const n=t&&`"${t}"`;throw new Error(n+"expected boolean, got type="+typeof e)}return e}function ft(e,t,n=""){const r=us(e),s=e==null?void 0:e.length,o=t!==void 0;if(!r||o&&s!==t){const i=n&&`"${n}" `,a=o?` of length ${t}`:"",c=r?`length=${s}`:`type=${typeof e}`;throw new Error(i+"expected Uint8Array"+a+", got "+c)}return e}function _s(e){const t=e.toString(16);return t.length&1?"0"+t:t}function Wl(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);return e===""?Za:BigInt("0x"+e)}function Fn(e){return Wl(Ze(e))}function Dn(e){return Me(e),Wl(Ze(Uint8Array.from(e).reverse()))}function Oo(e,t){return gt(e.toString(16).padStart(t*2,"0"))}function Va(e,t){return Oo(e,t).reverse()}function ge(e,t,n){let r;if(typeof t=="string")try{r=gt(t)}catch(o){throw new Error(e+" must be hex string or Uint8Array, cause: "+o)}else if(us(t))r=Uint8Array.from(t);else throw new Error(e+" must be hex string or Uint8Array");const s=r.length;if(typeof n=="number"&&s!==n)throw new Error(e+" of length "+n+" expected, got "+s);return r}function Gc(e){return Uint8Array.from(e)}const ti=e=>typeof e=="bigint"&&Za<=e;function Di(e,t,n){return ti(e)&&ti(t)&&ti(n)&&t<=e&&eZa;e>>=Ki,t+=1);return t}const ls=e=>(Ki<new Uint8Array(h),s=h=>Uint8Array.of(h);let o=r(e),i=r(e),a=0;const c=()=>{o.fill(1),i.fill(0),a=0},u=(...h)=>n(i,o,...h),l=(h=r(0))=>{i=u(s(0),h),o=u(),h.length!==0&&(i=u(s(1),h),o=u())},f=()=>{if(a++>=1e3)throw new Error("drbg: tried 1000 values");let h=0;const p=[];for(;h{c(),l(h);let g;for(;!(g=p(f()));)l();return c(),g}}function Er(e,t,n={}){if(!e||typeof e!="object")throw new Error("expected valid options object");function r(s,o,i){const a=e[s];if(i&&a===void 0)return;const c=typeof a;if(c!==o||a===null)throw new Error(`param "${s}" is invalid: expected ${o}, got ${c}`)}Object.entries(t).forEach(([s,o])=>r(s,o,!1)),Object.entries(n).forEach(([s,o])=>r(s,o,!0))}function co(e){const t=new WeakMap;return(n,...r)=>{const s=t.get(n);if(s!==void 0)return s;const o=e(n,...r);return t.set(n,o),o}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const Ye=BigInt(0),He=BigInt(1),On=BigInt(2),Xl=BigInt(3),Jl=BigInt(4),Ql=BigInt(5),F1=BigInt(7),ed=BigInt(8),G1=BigInt(9),td=BigInt(16);function ve(e,t){const n=e%t;return n>=Ye?n:t+n}function ke(e,t,n){let r=e;for(;t-- >Ye;)r*=r,r%=n;return r}function Wc(e,t){if(e===Ye)throw new Error("invert: expected non-zero number");if(t<=Ye)throw new Error("invert: expected positive modulus, got "+t);let n=ve(e,t),r=t,s=Ye,o=He;for(;n!==Ye;){const a=r/n,c=r%n,u=s-o*a;r=n,n=c,s=o,o=u}if(r!==He)throw new Error("invert: does not exist");return ve(s,t)}function qa(e,t,n){if(!e.eql(e.sqr(t),n))throw new Error("Cannot find square root")}function nd(e,t){const n=(e.ORDER+He)/Jl,r=e.pow(t,n);return qa(e,r,t),r}function W1(e,t){const n=(e.ORDER-Ql)/ed,r=e.mul(t,On),s=e.pow(r,n),o=e.mul(t,s),i=e.mul(e.mul(o,On),s),a=e.mul(o,e.sub(i,e.ONE));return qa(e,a,t),a}function Y1(e){const t=Gn(e),n=rd(e),r=n(t,t.neg(t.ONE)),s=n(t,r),o=n(t,t.neg(r)),i=(e+F1)/td;return(a,c)=>{let u=a.pow(c,i),l=a.mul(u,r);const f=a.mul(u,s),d=a.mul(u,o),h=a.eql(a.sqr(l),c),p=a.eql(a.sqr(f),c);u=a.cmov(u,l,h),l=a.cmov(d,f,p);const g=a.eql(a.sqr(l),c),y=a.cmov(u,l,g);return qa(a,y,c),y}}function rd(e){if(e1e3)throw new Error("Cannot find square root: probably non-prime P");if(n===1)return nd;let o=s.pow(r,t);const i=(t+He)/On;return function(c,u){if(c.is0(u))return u;if(Yc(c,u)!==1)throw new Error("Cannot find square root");let l=n,f=c.mul(c.ONE,o),d=c.pow(u,t),h=c.pow(u,i);for(;!c.eql(d,c.ONE);){if(c.is0(d))return c.ZERO;let p=1,g=c.sqr(d);for(;!c.eql(g,c.ONE);)if(p++,g=c.sqr(g),p===l)throw new Error("Cannot find square root");const y=He<(ve(e,t)&He)===He,Q1=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function ex(e){const t={ORDER:"bigint",MASK:"bigint",BYTES:"number",BITS:"number"},n=Q1.reduce((r,s)=>(r[s]="function",r),t);return Er(e,n),e}function tx(e,t,n){if(nYe;)n&He&&(r=e.mul(r,s)),s=e.sqr(s),n>>=He;return r}function sd(e,t,n=!1){const r=new Array(t.length).fill(n?e.ZERO:void 0),s=t.reduce((i,a,c)=>e.is0(a)?i:(r[c]=i,e.mul(i,a)),e.ONE),o=e.inv(s);return t.reduceRight((i,a,c)=>e.is0(a)?i:(r[c]=e.mul(i,r[c]),e.mul(i,a)),o),r}function Yc(e,t){const n=(e.ORDER-He)/On,r=e.pow(t,n),s=e.eql(r,e.ONE),o=e.eql(r,e.ZERO),i=e.eql(r,e.neg(e.ONE));if(!s&&!o&&!i)throw new Error("invalid Legendre symbol result");return s?1:o?0:-1}function od(e,t){t!==void 0&&hn(t);const n=t!==void 0?t:e.toString(2).length,r=Math.ceil(n/8);return{nBitLength:n,nByteLength:r}}function Gn(e,t,n=!1,r={}){if(e<=Ye)throw new Error("invalid field: expected ORDER > 0, got "+e);let s,o,i=!1,a;if(typeof t=="object"&&t!=null){if(r.sqrt||n)throw new Error("cannot specify opts in two arguments");const d=t;d.BITS&&(s=d.BITS),d.sqrt&&(o=d.sqrt),typeof d.isLE=="boolean"&&(n=d.isLE),typeof d.modFromBytes=="boolean"&&(i=d.modFromBytes),a=d.allowedLengths}else typeof t=="number"&&(s=t),r.sqrt&&(o=r.sqrt);const{nBitLength:c,nByteLength:u}=od(e,s);if(u>2048)throw new Error("invalid field: expected ORDER of <= 2048 bytes");let l;const f=Object.freeze({ORDER:e,isLE:n,BITS:c,BYTES:u,MASK:ls(c),ZERO:Ye,ONE:He,allowedLengths:a,create:d=>ve(d,e),isValid:d=>{if(typeof d!="bigint")throw new Error("invalid field element: expected bigint, got "+typeof d);return Ye<=d&&dd===Ye,isValidNot0:d=>!f.is0(d)&&f.isValid(d),isOdd:d=>(d&He)===He,neg:d=>ve(-d,e),eql:(d,h)=>d===h,sqr:d=>ve(d*d,e),add:(d,h)=>ve(d+h,e),sub:(d,h)=>ve(d-h,e),mul:(d,h)=>ve(d*h,e),pow:(d,h)=>tx(f,d,h),div:(d,h)=>ve(d*Wc(h,e),e),sqrN:d=>d*d,addN:(d,h)=>d+h,subN:(d,h)=>d-h,mulN:(d,h)=>d*h,inv:d=>Wc(d,e),sqrt:o||(d=>(l||(l=X1(e)),l(f,d))),toBytes:d=>n?Va(d,u):Oo(d,u),fromBytes:(d,h=!0)=>{if(a){if(!a.includes(d.length)||d.length>u)throw new Error("Field.fromBytes: expected "+a+" bytes, got "+d.length);const g=new Uint8Array(u);g.set(d,n?0:g.length-d.length),d=g}if(d.length!==u)throw new Error("Field.fromBytes: expected "+u+" bytes, got "+d.length);let p=n?Dn(d):Fn(d);if(i&&(p=ve(p,e)),!h&&!f.isValid(p))throw new Error("invalid field element: outside of range 0..ORDER");return p},invertBatch:d=>sd(f,d),cmov:(d,h,p)=>p?h:d});return Object.freeze(f)}function id(e){if(typeof e!="bigint")throw new Error("field order must be bigint");const t=e.toString(2).length;return Math.ceil(t/8)}function ad(e){const t=id(e);return t+Math.ceil(t/2)}function cd(e,t,n=!1){const r=e.length,s=id(t),o=ad(t);if(r<16||r1024)throw new Error("expected "+o+"-1024 bytes of input, got "+r);const i=n?Dn(e):Fn(e),a=ve(i,t-He)+He;return n?Va(a,s):Oo(a,s)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const mr=BigInt(0),In=BigInt(1);function uo(e,t){const n=t.negate();return e?n:t}function Cn(e,t){const n=sd(e.Fp,t.map(r=>r.Z));return t.map((r,s)=>e.fromAffine(r.toAffine(n[s])))}function ud(e,t){if(!Number.isSafeInteger(e)||e<=0||e>t)throw new Error("invalid window size, expected [1.."+t+"], got W="+e)}function ni(e,t){ud(e,t);const n=Math.ceil(t/e)+1,r=2**(e-1),s=2**e,o=ls(e),i=BigInt(e);return{windows:n,windowSize:r,mask:o,maxNumber:s,shiftBy:i}}function Xc(e,t,n){const{windowSize:r,mask:s,maxNumber:o,shiftBy:i}=n;let a=Number(e&s),c=e>>i;a>r&&(a-=o,c+=In);const u=t*r,l=u+Math.abs(a)-1,f=a===0,d=a<0,h=t%2!==0;return{nextN:c,offset:l,isZero:f,isNeg:d,isNegF:h,offsetF:u}}function nx(e,t){if(!Array.isArray(e))throw new Error("array expected");e.forEach((n,r)=>{if(!(n instanceof t))throw new Error("invalid point at index "+r)})}function rx(e,t){if(!Array.isArray(e))throw new Error("array of scalars expected");e.forEach((n,r)=>{if(!t.isValid(n))throw new Error("invalid scalar at index "+r)})}const ri=new WeakMap,fd=new WeakMap;function si(e){return fd.get(e)||1}function Jc(e){if(e!==mr)throw new Error("invalid wNAF")}class ld{constructor(t,n){this.BASE=t.BASE,this.ZERO=t.ZERO,this.Fn=t.Fn,this.bits=n}_unsafeLadder(t,n,r=this.ZERO){let s=t;for(;n>mr;)n&In&&(r=r.add(s)),s=s.double(),n>>=In;return r}precomputeWindow(t,n){const{windows:r,windowSize:s}=ni(n,this.bits),o=[];let i=t,a=i;for(let c=0;cmr||r>mr;)n&In&&(o=o.add(s)),r&In&&(i=i.add(s)),s=s.double(),n>>=In,r>>=In;return{p1:o,p2:i}}function dd(e,t,n,r){nx(n,e),rx(r,t);const s=n.length,o=r.length;if(s!==o)throw new Error("arrays of points and scalars must have equal length");const i=e.ZERO,a=Yl(BigInt(s));let c=1;a>12?c=a-3:a>4?c=a-2:a>0&&(c=2);const u=ls(c),l=new Array(Number(u)+1).fill(i),f=Math.floor((t.BITS-1)/c)*c;let d=i;for(let h=f;h>=0;h-=c){l.fill(i);for(let g=0;g>BigInt(h)&u);l[b]=l[b].add(n[g])}let p=i;for(let g=l.length-1,y=i;g>0;g--)y=y.add(l[g]),p=p.add(y);if(d=d.add(p),h!==0)for(let g=0;gmr))throw new Error(`CURVE.${c} must be positive bigint`)}const s=Qc(t.p,n.Fp,r),o=Qc(t.n,n.Fn,r),a=["Gx","Gy","a",e==="weierstrass"?"b":"d"];for(const c of a)if(!s.isValid(t[c]))throw new Error(`CURVE.${c} must be valid field element of CURVE.Fp`);return t=Object.freeze(Object.assign({},t)),{CURVE:t,Fp:s,Fn:o}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const eu=(e,t)=>(e+(e>=0?t:-t)/pd)/t;function ox(e,t,n){const[[r,s],[o,i]]=t,a=eu(i*e,n),c=eu(-s*e,n);let u=e-a*r-c*o,l=-a*s-c*i;const f=u=h||l=h)throw new Error("splitScalar (endomorphism): failed, k="+e);return{k1neg:f,k1:u,k2neg:d,k2:l}}function Mi(e){if(!["compact","recovered","der"].includes(e))throw new Error('Signature format must be "compact", "recovered", or "der"');return e}function oi(e,t){const n={};for(let r of Object.keys(t))n[r]=e[r]===void 0?t[r]:e[r];return Kn(n.lowS,"lowS"),Kn(n.prehash,"prehash"),n.format!==void 0&&Mi(n.format),n}class ix extends Error{constructor(t=""){super(t)}}const Lt={Err:ix,_tlv:{encode:(e,t)=>{const{Err:n}=Lt;if(e<0||e>256)throw new n("tlv.encode: wrong tag");if(t.length&1)throw new n("tlv.encode: unpadded data");const r=t.length/2,s=_s(r);if(s.length/2&128)throw new n("tlv.encode: long form length too big");const o=r>127?_s(s.length/2|128):"";return _s(e)+o+s+t},decode(e,t){const{Err:n}=Lt;let r=0;if(e<0||e>256)throw new n("tlv.encode: wrong tag");if(t.length<2||t[r++]!==e)throw new n("tlv.decode: wrong tlv");const s=t[r++],o=!!(s&128);let i=0;if(!o)i=s;else{const c=s&127;if(!c)throw new n("tlv.decode(long): indefinite length not supported");if(c>4)throw new n("tlv.decode(long): byte length is too big");const u=t.subarray(r,r+c);if(u.length!==c)throw new n("tlv.decode: length bytes not complete");if(u[0]===0)throw new n("tlv.decode(long): zero leftmost byte");for(const l of u)i=i<<8|l;if(r+=c,i<128)throw new n("tlv.decode(long): not minimal encoding")}const a=t.subarray(r,r+i);if(a.length!==i)throw new n("tlv.decode: wrong value length");return{v:a,l:t.subarray(r+i)}}},_int:{encode(e){const{Err:t}=Lt;if(e{const{X:$,Y:x,Z:_}=K;if(r.eql(_,r.ONE))return{x:$,y:x};const I=K.is0();E==null&&(E=I?r.ONE:r.inv(_));const L=r.mul($,E),U=r.mul(x,E),j=r.mul(_,E);if(I)return{x:r.ZERO,y:r.ZERO};if(!r.eql(j,r.ONE))throw new Error("invZ was invalid");return{x:L,y:U}}),C=co(K=>{if(K.is0()){if(t.allowInfinityPoint&&!r.is0(K.Y))return;throw new Error("bad point: ZERO")}const{x:E,y:$}=K.toAffine();if(!r.isValid(E)||!r.isValid($))throw new Error("bad point: x or y not field elements");if(!y(E,$))throw new Error("bad point: equation left != right");if(!K.isTorsionFree())throw new Error("bad point: not in prime-order subgroup");return!0});function P(K,E,$,x,_){return $=new B(r.mul($.X,K),$.Y,$.Z),E=uo(x,E),$=uo(_,$),E.add($)}class B{constructor(E,$,x){this.X=m("x",E),this.Y=m("y",$,!0),this.Z=m("z",x),Object.freeze(this)}static CURVE(){return o}static fromAffine(E){const{x:$,y:x}=E||{};if(!E||!r.isValid($)||!r.isValid(x))throw new Error("invalid affine point");if(E instanceof B)throw new Error("projective point not allowed");return r.is0($)&&r.is0(x)?B.ZERO:new B($,x,r.ONE)}static fromBytes(E){const $=B.fromAffine(p(ft(E,void 0,"point")));return $.assertValidity(),$}static fromHex(E){return B.fromBytes(ge("pointHex",E))}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(E=8,$=!0){return H.createCache(this,E),$||this.multiply(As),this}assertValidity(){C(this)}hasEvenY(){const{y:E}=this.toAffine();if(!r.isOdd)throw new Error("Field doesn't support isOdd");return!r.isOdd(E)}equals(E){v(E);const{X:$,Y:x,Z:_}=this,{X:I,Y:L,Z:U}=E,j=r.eql(r.mul($,U),r.mul(I,_)),M=r.eql(r.mul(x,U),r.mul(L,_));return j&&M}negate(){return new B(this.X,r.neg(this.Y),this.Z)}double(){const{a:E,b:$}=o,x=r.mul($,As),{X:_,Y:I,Z:L}=this;let U=r.ZERO,j=r.ZERO,M=r.ZERO,z=r.mul(_,_),ce=r.mul(I,I),oe=r.mul(L,L),Q=r.mul(_,I);return Q=r.add(Q,Q),M=r.mul(_,L),M=r.add(M,M),U=r.mul(E,M),j=r.mul(x,oe),j=r.add(U,j),U=r.sub(ce,j),j=r.add(ce,j),j=r.mul(U,j),U=r.mul(Q,U),M=r.mul(x,M),oe=r.mul(E,oe),Q=r.sub(z,oe),Q=r.mul(E,Q),Q=r.add(Q,M),M=r.add(z,z),z=r.add(M,z),z=r.add(z,oe),z=r.mul(z,Q),j=r.add(j,z),oe=r.mul(I,L),oe=r.add(oe,oe),z=r.mul(oe,Q),U=r.sub(U,z),M=r.mul(oe,ce),M=r.add(M,M),M=r.add(M,M),new B(U,j,M)}add(E){v(E);const{X:$,Y:x,Z:_}=this,{X:I,Y:L,Z:U}=E;let j=r.ZERO,M=r.ZERO,z=r.ZERO;const ce=o.a,oe=r.mul(o.b,As);let Q=r.mul($,I),de=r.mul(x,L),he=r.mul(_,U),_e=r.add($,x),ue=r.add(I,L);_e=r.mul(_e,ue),ue=r.add(Q,de),_e=r.sub(_e,ue),ue=r.add($,_);let be=r.add(I,U);return ue=r.mul(ue,be),be=r.add(Q,he),ue=r.sub(ue,be),be=r.add(x,_),j=r.add(L,U),be=r.mul(be,j),j=r.add(de,he),be=r.sub(be,j),z=r.mul(ce,ue),j=r.mul(oe,he),z=r.add(j,z),j=r.sub(de,z),z=r.add(de,z),M=r.mul(j,z),de=r.add(Q,Q),de=r.add(de,Q),he=r.mul(ce,he),ue=r.mul(oe,ue),de=r.add(de,he),he=r.sub(Q,he),he=r.mul(ce,he),ue=r.add(ue,he),Q=r.mul(de,ue),M=r.add(M,Q),Q=r.mul(be,ue),j=r.mul(_e,j),j=r.sub(j,Q),Q=r.mul(_e,de),z=r.mul(be,z),z=r.add(z,Q),new B(j,M,z)}subtract(E){return this.add(E.negate())}is0(){return this.equals(B.ZERO)}multiply(E){const{endo:$}=t;if(!s.isValidNot0(E))throw new Error("invalid scalar: out of range");let x,_;const I=L=>H.cached(this,L,U=>Cn(B,U));if($){const{k1neg:L,k1:U,k2neg:j,k2:M}=k(E),{p:z,f:ce}=I(U),{p:oe,f:Q}=I(M);_=ce.add(Q),x=P($.beta,z,oe,L,j)}else{const{p:L,f:U}=I(E);x=L,_=U}return Cn(B,[x,_])[0]}multiplyUnsafe(E){const{endo:$}=t,x=this;if(!s.isValid(E))throw new Error("invalid scalar: out of range");if(E===Rt||x.is0())return B.ZERO;if(E===or)return x;if(H.hasCache(this))return this.multiply(E);if($){const{k1neg:_,k1:I,k2neg:L,k2:U}=k(E),{p1:j,p2:M}=sx(B,x,I,U);return P($.beta,j,M,_,L)}else return H.unsafe(x,E)}multiplyAndAddUnsafe(E,$,x){const _=this.multiplyUnsafe($).add(E.multiplyUnsafe(x));return _.is0()?void 0:_}toAffine(E){return O(this,E)}isTorsionFree(){const{isTorsionFree:E}=t;return i===or?!0:E?E(B,this):H.unsafe(this,a).is0()}clearCofactor(){const{clearCofactor:E}=t;return i===or?this:E?E(B,this):this.multiplyUnsafe(i)}isSmallOrder(){return this.multiplyUnsafe(i).is0()}toBytes(E=!0){return Kn(E,"isCompressed"),this.assertValidity(),h(B,this,E)}toHex(E=!0){return Ze(this.toBytes(E))}toString(){return``}get px(){return this.X}get py(){return this.X}get pz(){return this.Z}toRawBytes(E=!0){return this.toBytes(E)}_setWindowSize(E){this.precompute(E)}static normalizeZ(E){return Cn(B,E)}static msm(E,$){return dd(B,s,E,$)}static fromPrivateKey(E){return B.BASE.multiply(Pn(s,E))}}B.BASE=new B(o.Gx,o.Gy,r.ONE),B.ZERO=new B(r.ZERO,r.ONE,r.ZERO),B.Fp=r,B.Fn=s;const N=s.BITS,H=new ld(B,t.endo?Math.ceil(N/2):N);return B.BASE.precompute(8),B}function gd(e){return Uint8Array.of(e?2:3)}function md(e,t){return{secretKey:t.BYTES,publicKey:1+e.BYTES,publicKeyUncompressed:1+2*e.BYTES,publicKeyHasPrefix:!0,signature:2*t.BYTES}}function ux(e,t={}){const{Fn:n}=e,r=t.randomBytes||zn,s=Object.assign(md(e.Fp,n),{seed:ad(n.ORDER)});function o(h){try{return!!Pn(n,h)}catch{return!1}}function i(h,p){const{publicKey:g,publicKeyUncompressed:y}=s;try{const b=h.length;return p===!0&&b!==g||p===!1&&b!==y?!1:!!e.fromBytes(h)}catch{return!1}}function a(h=r(s.seed)){return cd(ft(h,s.seed,"seed"),n.ORDER)}function c(h,p=!0){return e.BASE.multiply(Pn(n,h)).toBytes(p)}function u(h){const p=a(h);return{secretKey:p,publicKey:c(p)}}function l(h){if(typeof h=="bigint")return!1;if(h instanceof e)return!0;const{secretKey:p,publicKey:g,publicKeyUncompressed:y}=s;if(n.allowedLengths||p===g)return;const b=ge("key",h).length;return b===g||b===y}function f(h,p,g=!0){if(l(h)===!0)throw new Error("first arg must be private key");if(l(p)===!1)throw new Error("second arg must be public key");const y=Pn(n,h);return e.fromHex(p).multiply(y).toBytes(g)}return Object.freeze({getPublicKey:c,getSharedSecret:f,keygen:u,Point:e,utils:{isValidSecretKey:o,isValidPublicKey:i,randomSecretKey:a,isValidPrivateKey:o,randomPrivateKey:a,normPrivateKeyToScalar:h=>Pn(n,h),precompute(h=8,p=e.BASE){return p.precompute(h,!1)}},lengths:s})}function fx(e,t,n={}){fs(t),Er(n,{},{hmac:"function",lowS:"boolean",randomBytes:"function",bits2int:"function",bits2int_modN:"function"});const r=n.randomBytes||zn,s=n.hmac||(($,...x)=>xn(t,$,we(...x))),{Fp:o,Fn:i}=e,{ORDER:a,BITS:c}=i,{keygen:u,getPublicKey:l,getSharedSecret:f,utils:d,lengths:h}=ux(e,n),p={prehash:!1,lowS:typeof n.lowS=="boolean"?n.lowS:!1,format:void 0,extraEntropy:!1},g="compact";function y($){const x=a>>or;return $>x}function b($,x){if(!i.isValidNot0(x))throw new Error(`invalid signature ${$}: out of range 1..Point.Fn.ORDER`);return x}function w($,x){Mi(x);const _=h.signature,I=x==="compact"?_:x==="recovered"?_+1:void 0;return ft($,I,`${x} signature`)}class m{constructor(x,_,I){this.r=b("r",x),this.s=b("s",_),I!=null&&(this.recovery=I),Object.freeze(this)}static fromBytes(x,_=g){w(x,_);let I;if(_==="der"){const{r:M,s:z}=Lt.toSig(ft(x));return new m(M,z)}_==="recovered"&&(I=x[0],_="compact",x=x.subarray(1));const L=i.BYTES,U=x.subarray(0,L),j=x.subarray(L,L*2);return new m(i.fromBytes(U),i.fromBytes(j),I)}static fromHex(x,_){return this.fromBytes(gt(x),_)}addRecoveryBit(x){return new m(this.r,this.s,x)}recoverPublicKey(x){const _=o.ORDER,{r:I,s:L,recovery:U}=this;if(U==null||![0,1,2,3].includes(U))throw new Error("recovery id invalid");if(a*pd<_&&U>1)throw new Error("recovery id is ambiguous for h>1 curve");const M=U===2||U===3?I+a:I;if(!o.isValid(M))throw new Error("recovery id 2 or 3 invalid");const z=o.toBytes(M),ce=e.fromBytes(we(gd((U&1)===0),z)),oe=i.inv(M),Q=k(ge("msgHash",x)),de=i.create(-Q*oe),he=i.create(L*oe),_e=e.BASE.multiplyUnsafe(de).add(ce.multiplyUnsafe(he));if(_e.is0())throw new Error("point at infinify");return _e.assertValidity(),_e}hasHighS(){return y(this.s)}toBytes(x=g){if(Mi(x),x==="der")return gt(Lt.hexFromSig(this));const _=i.toBytes(this.r),I=i.toBytes(this.s);if(x==="recovered"){if(this.recovery==null)throw new Error("recovery bit must be present");return we(Uint8Array.of(this.recovery),_,I)}return we(_,I)}toHex(x){return Ze(this.toBytes(x))}assertValidity(){}static fromCompact(x){return m.fromBytes(ge("sig",x),"compact")}static fromDER(x){return m.fromBytes(ge("sig",x),"der")}normalizeS(){return this.hasHighS()?new m(this.r,i.neg(this.s),this.recovery):this}toDERRawBytes(){return this.toBytes("der")}toDERHex(){return Ze(this.toBytes("der"))}toCompactRawBytes(){return this.toBytes("compact")}toCompactHex(){return Ze(this.toBytes("compact"))}}const v=n.bits2int||function(x){if(x.length>8192)throw new Error("input is too large");const _=Fn(x),I=x.length*8-c;return I>0?_>>BigInt(I):_},k=n.bits2int_modN||function(x){return i.create(v(x))},O=ls(c);function C($){return es("num < 2^"+c,$,Rt,O),i.toBytes($)}function P($,x){return ft($,void 0,"message"),x?ft(t($),void 0,"prehashed message"):$}function B($,x,_){if(["recovered","canonical"].some(de=>de in _))throw new Error("sign() legacy options not supported");const{lowS:I,prehash:L,extraEntropy:U}=oi(_,p);$=P($,L);const j=k($),M=Pn(i,x),z=[C(M),C(j)];if(U!=null&&U!==!1){const de=U===!0?r(h.secretKey):U;z.push(ge("extraEntropy",de))}const ce=we(...z),oe=j;function Q(de){const he=v(de);if(!i.isValidNot0(he))return;const _e=i.inv(he),ue=e.BASE.multiply(he).toAffine(),be=i.create(ue.x);if(be===Rt)return;const It=i.create(_e*i.create(oe+be*M));if(It===Rt)return;let tt=(ue.x===be?0:2)|Number(ue.y&or),Ne=It;return I&&y(It)&&(Ne=i.neg(It),tt^=1),new m(be,Ne,tt)}return{seed:ce,k2sig:Q}}function N($,x,_={}){$=ge("message",$);const{seed:I,k2sig:L}=B($,x,_);return z1(t.outputLen,i.BYTES,s)(I,L)}function H($){let x;const _=typeof $=="string"||us($),I=!_&&$!==null&&typeof $=="object"&&typeof $.r=="bigint"&&typeof $.s=="bigint";if(!_&&!I)throw new Error("invalid signature, expected Uint8Array, hex string or Signature instance");if(I)x=new m($.r,$.s);else if(_){try{x=m.fromBytes(ge("sig",$),"der")}catch(L){if(!(L instanceof Lt.Err))throw L}if(!x)try{x=m.fromBytes(ge("sig",$),"compact")}catch{return!1}}return x||!1}function K($,x,_,I={}){const{lowS:L,prehash:U,format:j}=oi(I,p);if(_=ge("publicKey",_),x=P(ge("message",x),U),"strict"in I)throw new Error("options.strict was renamed to lowS");const M=j===void 0?H($):m.fromBytes(ge("sig",$),j);if(M===!1)return!1;try{const z=e.fromBytes(_);if(L&&M.hasHighS())return!1;const{r:ce,s:oe}=M,Q=k(x),de=i.inv(oe),he=i.create(Q*de),_e=i.create(ce*de),ue=e.BASE.multiplyUnsafe(he).add(z.multiplyUnsafe(_e));return ue.is0()?!1:i.create(ue.x)===ce}catch{return!1}}function E($,x,_={}){const{prehash:I}=oi(_,p);return x=P(x,I),m.fromBytes($,"recovered").recoverPublicKey(x).toBytes()}return Object.freeze({keygen:u,getPublicKey:l,getSharedSecret:f,utils:d,lengths:h,Point:e,sign:N,verify:K,recoverPublicKey:E,Signature:m,hash:t})}function lx(e){const t={a:e.a,b:e.b,p:e.Fp.ORDER,n:e.n,h:e.h,Gx:e.Gx,Gy:e.Gy},n=e.Fp;let r=e.allowedPrivateKeyLengths?Array.from(new Set(e.allowedPrivateKeyLengths.map(i=>Math.ceil(i/2)))):void 0;const s=Gn(t.n,{BITS:e.nBitLength,allowedLengths:r,modFromBytes:e.wrapPrivateKey}),o={Fp:n,Fn:s,allowInfinityPoint:e.allowInfinityPoint,endo:e.endo,isTorsionFree:e.isTorsionFree,clearCofactor:e.clearCofactor,fromBytes:e.fromBytes,toBytes:e.toBytes};return{CURVE:t,curveOpts:o}}function dx(e){const{CURVE:t,curveOpts:n}=lx(e),r={hmac:e.hmac,randomBytes:e.randomBytes,lowS:e.lowS,bits2int:e.bits2int,bits2int_modN:e.bits2int_modN};return{CURVE:t,curveOpts:n,hash:e.hash,ecdsaOpts:r}}function hx(e,t){const n=t.Point;return Object.assign({},t,{ProjectivePoint:n,CURVE:Object.assign({},e,od(n.Fn.ORDER,n.Fn.BITS))})}function px(e){const{CURVE:t,curveOpts:n,hash:r,ecdsaOpts:s}=dx(e),o=cx(t,n),i=fx(o,r,s);return hx(e,i)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function gx(e,t){const n=r=>px({...e,hash:r});return{...n(t),create:n}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const yr={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:BigInt(1),a:BigInt(0),b:BigInt(7),Gx:BigInt("0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),Gy:BigInt("0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8")},mx={beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),basises:[[BigInt("0x3086d221a7d46bcde86c90e49284eb15"),-BigInt("0xe4437ed6010e88286f547fa90abfe4c3")],[BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),BigInt("0x3086d221a7d46bcde86c90e49284eb15")]]},yx=BigInt(0),tu=BigInt(1),Zi=BigInt(2);function bx(e){const t=yr.p,n=BigInt(3),r=BigInt(6),s=BigInt(11),o=BigInt(22),i=BigInt(23),a=BigInt(44),c=BigInt(88),u=e*e*e%t,l=u*u*e%t,f=ke(l,n,t)*l%t,d=ke(f,n,t)*l%t,h=ke(d,Zi,t)*u%t,p=ke(h,s,t)*h%t,g=ke(p,o,t)*p%t,y=ke(g,a,t)*g%t,b=ke(y,c,t)*y%t,w=ke(b,a,t)*g%t,m=ke(w,n,t)*l%t,v=ke(m,i,t)*p%t,k=ke(v,r,t)*u%t,O=ke(k,Zi,t);if(!fo.eql(fo.sqr(O),e))throw new Error("Cannot find square root");return O}const fo=Gn(yr.p,{sqrt:bx}),Le=gx({...yr,Fp:fo,lowS:!0,endo:mx},Je),nu={};function lo(e,...t){let n=nu[e];if(n===void 0){const r=Je(Qe(e));n=we(r,r),nu[e]=n}return Je(we(n,...t))}const za=e=>e.toBytes(!0).slice(1),kr=Le.Point,Fa=e=>e%Zi===yx;function Vi(e){const{Fn:t,BASE:n}=kr,r=Pn(t,e),s=n.multiply(r);return{scalar:Fa(s.y)?r:t.neg(r),bytes:za(s)}}function yd(e){const t=fo;if(!t.isValidNot0(e))throw new Error("invalid x: Fail if x ≥ p");const n=t.create(e*e),r=t.create(n*e+BigInt(7));let s=t.sqrt(r);Fa(s)||(s=t.neg(s));const o=kr.fromAffine({x:e,y:s});return o.assertValidity(),o}const Lr=Fn;function bd(...e){return kr.Fn.create(Lr(lo("BIP0340/challenge",...e)))}function ru(e){return Vi(e).bytes}function wx(e,t,n=zn(32)){const{Fn:r}=kr,s=ge("message",e),{bytes:o,scalar:i}=Vi(t),a=ge("auxRand",n,32),c=r.toBytes(i^Lr(lo("BIP0340/aux",a))),u=lo("BIP0340/nonce",c,o,s),{bytes:l,scalar:f}=Vi(u),d=bd(l,o,s),h=new Uint8Array(64);if(h.set(l,0),h.set(r.toBytes(r.create(f+d*i)),32),!wd(h,s,o))throw new Error("sign: Invalid signature produced");return h}function wd(e,t,n){const{Fn:r,BASE:s}=kr,o=ge("signature",e,64),i=ge("message",t),a=ge("publicKey",n,32);try{const c=yd(Lr(a)),u=Lr(o.subarray(0,32));if(!Di(u,tu,yr.p))return!1;const l=Lr(o.subarray(32,64));if(!Di(l,tu,yr.n))return!1;const f=bd(r.toBytes(u),za(c),i),d=s.multiplyUnsafe(l).add(c.multiplyUnsafe(r.neg(f))),{x:h,y:p}=d.toAffine();return!(d.is0()||!Fa(p)||h!==u)}catch{return!1}}const Ga=(()=>{const n=(s=zn(48))=>cd(s,yr.n);Le.utils.randomSecretKey;function r(s){const o=n(s);return{secretKey:o,publicKey:ru(o)}}return{keygen:r,getPublicKey:ru,sign:wx,verify:wd,Point:kr,utils:{randomSecretKey:n,randomPrivateKey:n,taggedHash:lo,lift_x:yd,pointToBytes:za,numberToBytesBE:Oo,bytesToNumberBE:Fn,mod:ve},lengths:{secretKey:32,publicKey:32,publicKeyHasPrefix:!1,signature:64,seed:48}}})(),cn=Ze,xx=we,qi=gt,vx=Fn,un="super-testnet-local-v0";class vn{constructor(t){if(!/^[0-9a-f]{64}$/.test(t)||!Le.utils.isValidPrivateKey(t))throw new Error("Invalid test wallet key. Load a Super Testnet v0 backup.");this.kind="test-wallet",this.secret=t,this.pubkey=cn(Ga.getPublicKey(t)),this.address=Kr.p2tr.fromPubKey(this.pubkey,"regtest"),this.script=["OP_1",this.pubkey]}static create(){return new vn(cn(Le.utils.randomPrivateKey()))}static load(t){if((t==null?void 0:t.network)!==un||(t==null?void 0:t.version)!==1||(t==null?void 0:t.kind)!=="test-wallet")throw new Error("Only Super Testnet v0 test-wallet backups are accepted.");return new vn(t.secret)}backup(){return{kind:"test-wallet",version:1,network:un,secret:this.secret}}sign(t,n,r=0){return lr.taproot.sign(this.secret,t,r,n?{extension:n}:{}).hex}}const Bs=50*1e8,Ts="0".repeat(64),su=e=>cn(Je(new TextEncoder().encode(JSON.stringify(e)))),Qn=(e,t)=>`${e}:${t}`,qe=e=>$e.encode(e,!1).hex,fe=(e,t)=>{if(!e)throw new Error(t)},ou=/^5120[0-9a-f]{64}$/,Os=/^0014[0-9a-f]{40}$/,xd=64,ht=8,Ex=e=>cn(Fl(Je(qi(e))));function kx(e,t){const[n,r]=e.vin[t].witness;return Le.verify(n.slice(0,-2),lr.segwit.hash(e,t,{pubkey:r,sigflag:1}),r,{lowS:!0,format:"der"})}const ii=(e,...t)=>{const n=Je(new TextEncoder().encode(e));return Je(xx(n,n,...t))},Sx=e=>e<253?Uint8Array.of(e):Uint8Array.of(253,e&255,e>>8);function $x(e,t){const[n,r,s]=e.vin[t].witness,o=qi(s),i=qi(r);if(o.length<33||(o.length-33)%32||i.length>65535||!/^20[0-9a-f]{64}ac/.test(r))return!1;const a=ii("TapLeaf",Uint8Array.of(o[0]&254),Sx(i.length),i);let c=a;for(let f=33;f=Le.CURVE.n)return!1;const l=Le.ProjectivePoint.fromHex(`02${cn(o.slice(1,33))}`).add(Le.ProjectivePoint.BASE.multiply(u)).toAffine();return`5120${l.x.toString(16).padStart(64,"0")}`!==qe(e.vin[t].prevout.scriptPubKey)||Number(l.y&1n)!==(o[0]&1)?!1:Ga.verify(n,lr.taproot.hash(e,t,{extension:cn(a)}),r.slice(2,66))}class Io{constructor(t){if(this.blocks=[],this.mempool=[],this.utxos=new Map,this.transactions=new Map,this.imports=[],t){fe(t.network===un&&t.version===1,"Unsupported local chain version/network."),fe(Array.isArray(t.blocks)&&Array.isArray(t.mempool)&&Array.isArray(t.imports??[]),"Invalid chain snapshot.");for(const n of t.imports??[])this.importCoin(n);for(const n of t.blocks)this.acceptBlock(structuredClone(n));this.submitPackage(t.mempool)}}snapshot(){return{network:un,version:1,blocks:structuredClone(this.blocks),mempool:[...this.mempool],...this.imports.length?{imports:structuredClone(this.imports)}:{}}}importCoin({txid:t,vout:n,value:r,script:s}){fe(/^[0-9a-f]{64}$/.test(t)&&Number.isSafeInteger(n)&&n>=0&&Number.isSafeInteger(r)&&r>=330&&r<=Bs&&(ou.test(s)||Os.test(s)),"Invalid imported coin."),fe(!this.utxos.has(Qn(t,n))&&!this.transactions.has(t)&&!this.imported(t,n),"That coin is already in this chain."),this.utxos.set(Qn(t,n),{txid:t,vout:n,value:r,scriptPubKey:s,height:0,ranges:$u(this.imports.length,r),inscriptions:[]}),this.imports.push({txid:t,vout:n,value:r,script:s})}imported(t,n){const r=this.imports.find(s=>s.txid===t&&s.vout===n);return r?{value:r.value,scriptPubKey:r.script}:null}coins(t){return[...this.utxos.values()].filter(n=>qe(n.scriptPubKey)===qe(t))}satLocation(t){for(const n of this.utxos.values()){const r=Ns(n.ranges,t);if(r!==null)return{txid:n.txid,vout:n.vout,offset:r}}return null}balance(t){return this.coins(t).reduce((n,r)=>n+r.value,0)}apply(t,n,r=!1){var y,b,w;fe(typeof t=="string"&&t.length<4e4&&/^(?:[a-f0-9]{2})+$/.test(t),"Invalid raw transaction.");const s=ie.decode(t),o=ie.util.getTxid(s);fe(!this.transactions.has(o),"Duplicate transaction."),fe(s.version===2&&s.locktime===0,"Unsupported transaction version or locktime.");const i=!r&&s.vin.some(m=>{var v;return((v=m.witness)==null?void 0:v.length)===3}),a=r?1:i?2:ht,c=r?xd:i?2:ht;fe(s.vin.length>=1&&s.vin.length<=a&&s.vout.length>=1&&s.vout.length<=c,"Unsupported transaction shape.");let u=0;for(const m of s.vout){const v=Number(m.value);fe(Number.isSafeInteger(v)&&v>=330&&v<=Bs,"Invalid output amount.");const k=qe(m.scriptPubKey);fe(ou.test(k)||Os.test(k),"Only Taproot and P2WPKH outputs are supported."),u+=v}let l,f=[];const d=s.vin.findIndex(m=>{var v;return((v=m.witness)==null?void 0:v.length)===3}),h=s.vin[d<0?0:d];if(r)fe(h.txid===Ts&&h.vout===4294967295&&u===Bs,"Invalid local coinbase."),fe(qe(h.scriptSig)===$e.encode([new TextEncoder().encode(`${un}:${n}`)],!1).hex,"Wrong coinbase height."),fe(!((y=h.witness)!=null&&y.length),"Unexpected coinbase witness.");else{f=s.vin.map(v=>this.utxos.get(Qn(v.txid,v.vout))),fe(f.every(Boolean),"Input is missing or already spent."),fe(new Set(s.vin.map(v=>Qn(v.txid,v.vout))).size===s.vin.length,"Duplicate input."),s.vin.forEach((v,k)=>{var C,P,B;fe(v.sequence==="ffffffff"&&qe(v.scriptSig)==="","Unsupported input flags."),v.prevout={value:f[k].value,scriptPubKey:f[k].scriptPubKey};const O=qe(f[k].scriptPubKey);if(Os.test(O)){const[N,H]=v.witness??[];fe(k!==d&&((C=v.witness)==null?void 0:C.length)===2,"Unsupported witness."),fe(/^30[0-9a-f]{12,140}01$/.test(N)&&/^0[23][0-9a-f]{64}$/.test(H)&&Ex(H)===O.slice(4),"P2WPKH spends need a SIGHASH_ALL signature by the key they pay.");return}fe(((P=v.witness)==null?void 0:P.length)===1||k===d&&((B=v.witness)==null?void 0:B.length)===3,"Unsupported witness."),fe(/^[0-9a-f]{128}$/.test(v.witness[0])||!i&&/^[0-9a-f]{128}83$/.test(v.witness[0]),"Only default 64-byte Schnorr signatures, or SIGHASH_SINGLE|ANYONECANPAY outside reveals, are accepted.")}),fe(f.reduce((v,k)=>v+k.value,0)-u===le,"v0 requires a fixed 500 sat fee per transaction.");let m={};if(h.witness.length===3){const v=ja(h.witness),k=d;if(fe(Number(s.vout[k].value)===Et,"Invalid reveal postage."),fe(qe(s.vout[k].scriptPubKey)===`5120${v.pubkey}`,"Reveal must return to its signing wallet."),v.parent){const O=d===0?1:0,C=f[O];fe((b=C==null?void 0:C.inscriptions)==null?void 0:b.some(P=>P.id===v.parent),"Referenced parent inscription must actually be spent."),fe(s.vout.length===2&&Number(s.vout[O].value)===C.value&&qe(C.scriptPubKey)===`5120${v.pubkey}`&&qe(s.vout[O].scriptPubKey)===qe(C.scriptPubKey),"Parent must be owned and preserved in the same wallet.")}else s.vin.length===2&&(fe(d===1&&((w=f[0].inscriptions)==null?void 0:w.length)&&v.pointer!==void 0,"Reinscription spend requires correct tag and owned sat."),fe(Number(s.vout[0].value)===f[0].value&&qe(s.vout[0].scriptPubKey)===qe(f[0].scriptPubKey)&&qe(f[0].scriptPubKey)===`5120${v.pubkey}`,"Reinscription sat must be returned to owner."));m={pubkey:v.pubkey},l={id:`${o}i0`,txid:o,commitTxid:h.txid,text:v.text,bytes:Array.from(v.bytes),contentType:v.contentType,parent:v.parent,delegate:v.delegate,pointer:v.pointer,metaprotocol:v.metaprotocol,metadata:v.metadata,height:n,value:Et}}s.vin.forEach((v,k)=>{let O=!1;try{O=Os.test(qe(f[k].scriptPubKey))?kx(s,k):k===d?$x(s,k)||lr.taproot.verify(s,k,m):lr.taproot.verify(s,k,{})}catch{}fe(O,"Invalid signature or Taproot commitment.")})}const p=Bu(s,f,n,r),g=f.flatMap(m=>m.inscriptions??[]);if(l){const m=BigInt(l.pointer??0),v=m{var O;return((O=k.inscription)==null?void 0:O.sat)===l.sat}).length,g.push(l)}return fe(g.every(m=>p.some(v=>Ns(v,m.sat)!==null)),"Local lab protects inscription sats from fee loss."),r||s.vin.forEach(m=>this.utxos.delete(Qn(m.txid,m.vout))),s.vout.forEach((m,v)=>{const k=g.filter(O=>Ns(p[v],O.sat)!==null);this.utxos.set(Qn(o,v),{txid:o,vout:v,value:Number(m.value),scriptPubKey:m.scriptPubKey,height:n,ranges:p[v],inscriptions:k,...k.length?{inscription:k[0]}:{}})}),this.transactions.set(o,{txid:o,raw:t,height:n,coinbase:r,tx:s,...l?{inscription:l}:{}}),o}submitPackage(t){fe(Array.isArray(t)&&this.mempool.length+t.length<=1e3,"Invalid package or mempool full; mine a block first.");const n=new Map(this.utxos),r=new Map(this.transactions);try{t.forEach(s=>this.apply(s,null))}catch(s){throw this.utxos=n,this.transactions=r,s}this.mempool.push(...t)}acceptBlock(t){var i;fe(t.height===this.blocks.length+1&&t.previous===(((i=this.blocks.at(-1))==null?void 0:i.hash)??Ts),"Invalid block ancestry."),fe(Number.isSafeInteger(t.time)&&t.time>0&&Array.isArray(t.raws)&&t.raws.length>0&&t.raws.length<=1001,"Invalid block.");const{hash:n,...r}=t;fe(su(r)===n,"Invalid local block hash.");const s=new Map(this.utxos),o=new Map(this.transactions);try{t.raws.forEach((a,c)=>this.apply(a,t.height,c===0))}catch(a){throw this.utxos=s,this.transactions=o,a}this.blocks.push(t)}mine(t){return this.mineTo([Ue(Bs,t)])}mineTo(t){var a;const n=new Io({...this.snapshot(),mempool:[]}),r=this.blocks.length+1,s=ie.create({vin:[{txid:Ts,vout:4294967295,scriptSig:[new TextEncoder().encode(`${un}:${r}`)]}],vout:t}),o={height:r,previous:((a=this.blocks.at(-1))==null?void 0:a.hash)??Ts,time:Date.now(),raws:[ie.encode(s).hex,...this.mempool]},i={...o,hash:su(o)};return n.acceptBlock(i),Object.assign(this,n),i}}/*! scure-base - MIT License (c) 2022 Paul Miller (paulmillr.com) */function br(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"}function _x(e,...t){if(!br(e))throw new Error("Uint8Array expected");if(t.length>0&&!t.includes(e.length))throw new Error("Uint8Array expected of length "+t+", got length="+e.length)}function vd(e,t){return Array.isArray(t)?t.length===0?!0:e?t.every(n=>typeof n=="string"):t.every(n=>Number.isSafeInteger(n)):!1}function Ed(e){if(typeof e!="function")throw new Error("function expected");return!0}function Mn(e,t){if(typeof t!="string")throw new Error(`${e}: string expected`);return!0}function Sr(e){if(!Number.isSafeInteger(e))throw new Error(`invalid integer: ${e}`)}function ho(e){if(!Array.isArray(e))throw new Error("array expected")}function po(e,t){if(!vd(!0,t))throw new Error(`${e}: array of strings expected`)}function Wa(e,t){if(!vd(!1,t))throw new Error(`${e}: array of numbers expected`)}function ds(...e){const t=o=>o,n=(o,i)=>a=>o(i(a)),r=e.map(o=>o.encode).reduceRight(n,t),s=e.map(o=>o.decode).reduce(n,t);return{encode:r,decode:s}}function Co(e){const t=typeof e=="string"?e.split(""):e,n=t.length;po("alphabet",t);const r=new Map(t.map((s,o)=>[s,o]));return{encode:s=>(ho(s),s.map(o=>{if(!Number.isSafeInteger(o)||o<0||o>=n)throw new Error(`alphabet.encode: digit index outside alphabet "${o}". Allowed: ${e}`);return t[o]})),decode:s=>(ho(s),s.map(o=>{Mn("alphabet.decode",o);const i=r.get(o);if(i===void 0)throw new Error(`Unknown letter: "${o}". Allowed: ${e}`);return i}))}}function Po(e=""){return Mn("join",e),{encode:t=>(po("join.decode",t),t.join(e)),decode:t=>(Mn("join.decode",t),t.split(e))}}function kd(e,t="="){return Sr(e),Mn("padding",t),{encode(n){for(po("padding.encode",n);n.length*e%8;)n.push(t);return n},decode(n){po("padding.decode",n);let r=n.length;if(r*e%8)throw new Error("padding: invalid, string should have whole number of bytes");for(;r>0&&n[r-1]===t;r--)if((r-1)*e%8===0)throw new Error("padding: invalid, string has too much padding");return n.slice(0,r)}}}function zi(e,t,n){if(t<2)throw new Error(`convertRadix: invalid from=${t}, base cannot be less than 2`);if(n<2)throw new Error(`convertRadix: invalid to=${n}, base cannot be less than 2`);if(ho(e),!e.length)return[];let r=0;const s=[],o=Array.from(e,a=>{if(Sr(a),a<0||a>=t)throw new Error(`invalid integer: ${a}`);return a}),i=o.length;for(;;){let a=0,c=!0;for(let u=r;ut===0?e:Sd(t,e%t),go=(e,t)=>e+(t-Sd(e,t)),Hs=(()=>{let e=[];for(let t=0;t<40;t++)e.push(2**t);return e})();function mo(e,t,n,r){if(ho(e),t<=0||t>32)throw new Error(`convertRadix2: wrong from=${t}`);if(n<=0||n>32)throw new Error(`convertRadix2: wrong to=${n}`);if(go(t,n)>32)throw new Error(`convertRadix2: carry overflow from=${t} to=${n} carryBits=${go(t,n)}`);let s=0,o=0;const i=Hs[t],a=Hs[n]-1,c=[];for(const u of e){if(Sr(u),u>=i)throw new Error(`convertRadix2: invalid data word=${u} from=${t}`);if(s=s<32)throw new Error(`convertRadix2: carry overflow pos=${o} from=${t}`);for(o+=t;o>=n;o-=n)c.push((s>>o-n&a)>>>0);const l=Hs[o];if(l===void 0)throw new Error("invalid carry");s&=l-1}if(s=s<=t)throw new Error("Excess padding");if(!r&&s>0)throw new Error(`Non-zero padding: ${s}`);return r&&o>0&&c.push(s>>>0),c}function $d(e){Sr(e);const t=2**8;return{encode:n=>{if(!br(n))throw new Error("radix.encode input should be Uint8Array");return zi(Array.from(n),t,e)},decode:n=>(Wa("radix.decode",n),Uint8Array.from(zi(n,e,t)))}}function Ya(e,t=!1){if(Sr(e),e<=0||e>32)throw new Error("radix2: bits should be in (0..32]");if(go(8,e)>32||go(e,8)>32)throw new Error("radix2: carry overflow");return{encode:n=>{if(!br(n))throw new Error("radix2.encode input should be Uint8Array");return mo(Array.from(n),8,e,!t)},decode:n=>(Wa("radix2.decode",n),Uint8Array.from(mo(n,e,8,t)))}}function iu(e){return Ed(e),function(...t){try{return e.apply(null,t)}catch{}}}function _d(e,t){return Sr(e),Ed(t),{encode(n){if(!br(n))throw new Error("checksum.encode: input should be Uint8Array");const r=t(n).slice(0,e),s=new Uint8Array(n.length+e);return s.set(n),s.set(r,n.length),s},decode(n){if(!br(n))throw new Error("checksum.decode: input should be Uint8Array");const r=n.slice(0,-e),s=n.slice(-e),o=t(r).slice(0,e);for(let i=0;i{Mn("base64",e);const n=/^[A-Za-z0-9=+/]+$/,r="base64";if(e.length>0&&!n.test(e))throw new Error("invalid base64");return Uint8Array.fromBase64(e,{alphabet:r,lastChunkHandling:"strict"})},St=Ax?{encode(e){return _x(e),e.toBase64()},decode(e){return Bx(e)}}:ds(Ya(6),Co("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"),kd(6),Po("")),Tx=e=>ds($d(58),Co(e),Po("")),Ox=Tx("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"),Ad=e=>ds(_d(4,t=>e(e(t))),Ox),Fi=ds(Co("qpzry9x8gf2tvdw0s3jn54khce6mua7l"),Po("")),au=[996825010,642813549,513874426,1027748829,705979059];function Ir(e){const t=e>>25;let n=(e&33554431)<<5;for(let r=0;r>r&1)===1&&(n^=au[r]);return n}function cu(e,t,n=1){const r=e.length;let s=1;for(let o=0;o126)throw new Error(`Invalid prefix (${e})`);s=Ir(s)^i>>5}s=Ir(s);for(let o=0;oh)throw new TypeError(`Length ${g} exceeds limit ${h}`);const y=f.toLowerCase(),b=cu(y,d,t);return`${y}1${Fi.encode(d)}${b}`}function a(f,d=90){Mn("bech32.decode input",f);const h=f.length;if(h<8||d!==!1&&h>d)throw new TypeError(`invalid string length: ${h} (${f}). Expected (8..${d})`);const p=f.toLowerCase();if(f!==p&&f!==f.toUpperCase())throw new Error("String must be lowercase or uppercase");const g=p.lastIndexOf("1");if(g===0||g===-1)throw new Error('Letter "1" must be present between prefix and data only');const y=p.slice(0,g),b=p.slice(g+1);if(b.length<6)throw new Error("Data must be at least 6 characters long");const w=Fi.decode(b).slice(0,-6),m=cu(y,w,t);if(!b.endsWith(m))throw new Error(`Invalid checksum in ${f}: expected "${m}"`);return{prefix:y,words:w}}const c=iu(a);function u(f){const{prefix:d,words:h}=a(f,!1);return{prefix:d,words:h,bytes:r(h)}}function l(f,d){return i(f,s(d))}return{encode:i,decode:a,encodeFromBytes:l,decodeToBytes:u,decodeUnsafe:c,fromWords:r,fromWordsUnsafe:o,toWords:s}}const yo=Ix("bech32");/*! scure-bip32 - MIT License (c) 2022 Patricio Palladino, Paul Miller (paulmillr.com) */const Cs=Le.ProjectivePoint,ai=Ad(Je);function uu(e){Me(e);const t=e.length===0?"0":Ze(e);return BigInt("0x"+t)}function Cx(e){if(typeof e!="bigint")throw new Error("bigint expected");return gt(e.toString(16).padStart(64,"0"))}const Px=Qe("Bitcoin seed"),ci={private:76066276,public:76067358},ui=2147483648,Ux=e=>Fl(Je(e)),Nx=e=>Nn(e).getUint32(0,!1),Ps=e=>{if(!Number.isSafeInteger(e)||e<0||e>2**32-1)throw new Error("invalid number, should be from 0 to 2**32-1, got "+e);const t=new Uint8Array(4);return Nn(t).setUint32(0,e,!1),t};class _n{get fingerprint(){if(!this.pubHash)throw new Error("No publicKey set!");return Nx(this.pubHash)}get identifier(){return this.pubHash}get pubKeyHash(){return this.pubHash}get privateKey(){return this.privKeyBytes||null}get publicKey(){return this.pubKey||null}get privateExtendedKey(){const t=this.privateKey;if(!t)throw new Error("No private key");return ai.encode(this.serialize(this.versions.private,we(new Uint8Array([0]),t)))}get publicExtendedKey(){if(!this.pubKey)throw new Error("No public key");return ai.encode(this.serialize(this.versions.public,this.pubKey))}static fromMasterSeed(t,n=ci){if(Me(t),8*t.length<128||8*t.length>512)throw new Error("HDKey: seed length must be between 128 and 512 bits; 256 bits is advised, got "+t.length);const r=xn(Qr,Px,t);return new _n({versions:n,chainCode:r.slice(32),privateKey:r.slice(0,32)})}static fromExtendedKey(t,n=ci){const r=ai.decode(t),s=Nn(r),o=s.getUint32(0,!1),i={versions:n,depth:r[4],parentFingerprint:s.getUint32(5,!1),index:s.getUint32(9,!1),chainCode:r.slice(13,45)},a=r.slice(45),c=a[0]===0;if(o!==n[c?"private":"public"])throw new Error("Version mismatch");return c?new _n({...i,privateKey:a.slice(1)}):new _n({...i,publicKey:a})}static fromJSON(t){return _n.fromExtendedKey(t.xpriv)}constructor(t){if(this.depth=0,this.index=0,this.chainCode=null,this.parentFingerprint=0,!t||typeof t!="object")throw new Error("HDKey.constructor must not be called directly");if(this.versions=t.versions||ci,this.depth=t.depth||0,this.chainCode=t.chainCode||null,this.index=t.index||0,this.parentFingerprint=t.parentFingerprint||0,!this.depth&&(this.parentFingerprint||this.index))throw new Error("HDKey: zero depth with non-zero index/parent fingerprint");if(t.publicKey&&t.privateKey)throw new Error("HDKey: publicKey and privateKey at same time.");if(t.privateKey){if(!Le.utils.isValidPrivateKey(t.privateKey))throw new Error("Invalid private key");this.privKey=typeof t.privateKey=="bigint"?t.privateKey:uu(t.privateKey),this.privKeyBytes=Cx(this.privKey),this.pubKey=Le.getPublicKey(t.privateKey,!0)}else if(t.publicKey)this.pubKey=Cs.fromHex(t.publicKey).toRawBytes(!0);else throw new Error("HDKey: no public or private key provided");this.pubHash=Ux(this.pubKey)}derive(t){if(!/^[mM]'?/.test(t))throw new Error('Path must start with "m" or "M"');if(/^[mM]'?$/.test(t))return this;const n=t.replace(/^[mM]'?\//,"").split("/");let r=this;for(const s of n){const o=/^(\d+)('?)$/.exec(s),i=o&&o[1];if(!o||o.length!==3||typeof i!="string")throw new Error("invalid child index: "+s);let a=+i;if(!Number.isSafeInteger(a)||a>=ui)throw new Error("Invalid index");o[2]==="'"&&(a+=ui),r=r.deriveChild(a)}return r}deriveChild(t){if(!this.pubKey||!this.chainCode)throw new Error("No publicKey or chainCode set");let n=Ps(t);if(t>=ui){const a=this.privateKey;if(!a)throw new Error("Could not derive hardened child key");n=we(new Uint8Array([0]),a,n)}else n=we(this.pubKey,n);const r=xn(Qr,this.chainCode,n),s=uu(r.slice(0,32)),o=r.slice(32);if(!Le.utils.isValidPrivateKey(s))throw new Error("Tweak bigger than curve order");const i={versions:this.versions,chainCode:o,depth:this.depth+1,parentFingerprint:this.fingerprint,index:t};try{if(this.privateKey){const a=ve(this.privKey+s,Le.CURVE.n);if(!Le.utils.isValidPrivateKey(a))throw new Error("The tweak was out of range or the resulted private key is invalid");i.privateKey=a}else{const a=Cs.fromHex(this.pubKey).add(Cs.fromPrivateKey(s));if(a.equals(Cs.ZERO))throw new Error("The tweak was equal to negative P, which made the result key invalid");i.publicKey=a.toRawBytes(!0)}return new _n(i)}catch{return this.deriveChild(t+1)}}sign(t){if(!this.privateKey)throw new Error("No privateKey set!");return Me(t,32),Le.sign(t,this.privKey).toCompactRawBytes()}verify(t,n){if(Me(t,32),Me(n,64),!this.publicKey)throw new Error("No publicKey set!");let r;try{r=Le.Signature.fromCompact(n)}catch{return!1}return Le.verify(r,t,this.publicKey)}wipePrivateData(){return this.privKey=void 0,this.privKeyBytes&&(this.privKeyBytes.fill(0),this.privKeyBytes=void 0),this}toJSON(){return{xpriv:this.privateExtendedKey,xpub:this.publicExtendedKey}}serialize(t,n){if(!this.chainCode)throw new Error("No chainCode set");return Me(n,33),we(Ps(t),new Uint8Array([this.depth]),Ps(this.parentFingerprint),Ps(this.index),this.chainCode,n)}}function Lx(e,t,n,r){fs(e);const s=E1({dkLen:32,asyncTick:10},r),{c:o,dkLen:i,asyncTick:a}=s;if(hn(o),hn(i),hn(a),o<1)throw new Error("iterations (c) should be >= 1");const c=Zc(t),u=Zc(n),l=new Uint8Array(i),f=xn.create(e,c),d=f._cloneInto().update(u);return{c:o,dkLen:i,asyncTick:a,DK:l,PRF:f,PRFSalt:d}}function Rx(e,t,n,r,s){return e.destroy(),t.destroy(),r&&r.destroy(),Tt(s),n}function Hx(e,t,n,r){const{c:s,dkLen:o,DK:i,PRF:a,PRFSalt:c}=Lx(e,t,n,r);let u;const l=new Uint8Array(4),f=Nn(l),d=new Uint8Array(a.outputLen);for(let h=1,p=0;pe[0]==="あいこくしん";function Bd(e){if(typeof e!="string")throw new TypeError("invalid mnemonic type: "+typeof e);return e.normalize("NFKD")}function Td(e){const t=Bd(e),n=t.split(" ");if(![12,15,18,21,24].includes(n.length))throw new Error("Invalid mnemonic");return{nfkd:t,words:n}}function Od(e){Me(e,16,20,24,28,32)}function Kx(e,t=128){if(hn(t),t%32!==0||t>256)throw new TypeError("Invalid entropy");return Cd(zn(t/8),e)}const Dx=e=>{const t=8-e.length/4;return new Uint8Array([Je(e)[0]>>t<{if(typeof t!="string")throw new Error("wordlist: non-string element: "+t)}),Is.chain(Is.checksum(1,Dx),Is.radix2(11,!0),Is.alphabet(e))}function Mx(e,t){const{words:n}=Td(e),r=Id(t).decode(n);return Od(r),r}function Cd(e,t){return Od(e),Id(t).encode(e).join(jx(t)?" ":" ")}function Zx(e,t){try{Mx(e,t)}catch{return!1}return!0}const Vx=e=>Bd("mnemonic"+e);function qx(e,t=""){return Hx(Qr,Td(e).nfkd,Vx(t),{c:2048,dkLen:64})}const Xa=`abandon -ability -able -about -above -absent -absorb -abstract -absurd -abuse -access -accident -account -accuse -achieve -acid -acoustic -acquire -across -act -action -actor -actress -actual -adapt -add -addict -address -adjust -admit -adult -advance -advice -aerobic -affair -afford -afraid -again -age -agent -agree -ahead -aim -air -airport -aisle -alarm -album -alcohol -alert -alien -all -alley -allow -almost -alone -alpha -already -also -alter -always -amateur -amazing -among -amount -amused -analyst -anchor -ancient -anger -angle -angry -animal -ankle -announce -annual -another -answer -antenna -antique -anxiety -any -apart -apology -appear -apple -approve -april -arch -arctic -area -arena -argue -arm -armed -armor -army -around -arrange -arrest -arrive -arrow -art -artefact -artist -artwork -ask -aspect -assault -asset -assist -assume -asthma -athlete -atom -attack -attend -attitude -attract -auction -audit -august -aunt -author -auto -autumn -average -avocado -avoid -awake -aware -away -awesome -awful -awkward -axis -baby -bachelor -bacon -badge -bag -balance -balcony -ball -bamboo -banana -banner -bar -barely -bargain -barrel -base -basic -basket -battle -beach -bean -beauty -because -become -beef -before -begin -behave -behind -believe -below -belt -bench -benefit -best -betray -better -between -beyond -bicycle -bid -bike -bind -biology -bird -birth -bitter -black -blade -blame -blanket -blast -bleak -bless -blind -blood -blossom -blouse -blue -blur -blush -board -boat -body -boil -bomb -bone -bonus -book -boost -border -boring -borrow -boss -bottom -bounce -box -boy -bracket -brain -brand -brass -brave -bread -breeze -brick -bridge -brief -bright -bring -brisk -broccoli -broken -bronze -broom -brother -brown -brush -bubble -buddy -budget -buffalo -build -bulb -bulk -bullet -bundle -bunker -burden -burger -burst -bus -business -busy -butter -buyer -buzz -cabbage -cabin -cable -cactus -cage -cake -call -calm -camera -camp -can -canal -cancel -candy -cannon -canoe -canvas -canyon -capable -capital -captain -car -carbon -card -cargo -carpet -carry -cart -case -cash -casino -castle -casual -cat -catalog -catch -category -cattle -caught -cause -caution -cave -ceiling -celery -cement -census -century -cereal -certain -chair -chalk -champion -change -chaos -chapter -charge -chase -chat -cheap -check -cheese -chef -cherry -chest -chicken -chief -child -chimney -choice -choose -chronic -chuckle -chunk -churn -cigar -cinnamon -circle -citizen -city -civil -claim -clap -clarify -claw -clay -clean -clerk -clever -click -client -cliff -climb -clinic -clip -clock -clog -close -cloth -cloud -clown -club -clump -cluster -clutch -coach -coast -coconut -code -coffee -coil -coin -collect -color -column -combine -come -comfort -comic -common -company -concert -conduct -confirm -congress -connect -consider -control -convince -cook -cool -copper -copy -coral -core -corn -correct -cost -cotton -couch -country -couple -course -cousin -cover -coyote -crack -cradle -craft -cram -crane -crash -crater -crawl -crazy -cream -credit -creek -crew -cricket -crime -crisp -critic -crop -cross -crouch -crowd -crucial -cruel -cruise -crumble -crunch -crush -cry -crystal -cube -culture -cup -cupboard -curious -current -curtain -curve -cushion -custom -cute -cycle -dad -damage -damp -dance -danger -daring -dash -daughter -dawn -day -deal -debate -debris -decade -december -decide -decline -decorate -decrease -deer -defense -define -defy -degree -delay -deliver -demand -demise -denial -dentist -deny -depart -depend -deposit -depth -deputy -derive -describe -desert -design -desk -despair -destroy -detail -detect -develop -device -devote -diagram -dial -diamond -diary -dice -diesel -diet -differ -digital -dignity -dilemma -dinner -dinosaur -direct -dirt -disagree -discover -disease -dish -dismiss -disorder -display -distance -divert -divide -divorce -dizzy -doctor -document -dog -doll -dolphin -domain -donate -donkey -donor -door -dose -double -dove -draft -dragon -drama -drastic -draw -dream -dress -drift -drill -drink -drip -drive -drop -drum -dry -duck -dumb -dune -during -dust -dutch -duty -dwarf -dynamic -eager -eagle -early -earn -earth -easily -east -easy -echo -ecology -economy -edge -edit -educate -effort -egg -eight -either -elbow -elder -electric -elegant -element -elephant -elevator -elite -else -embark -embody -embrace -emerge -emotion -employ -empower -empty -enable -enact -end -endless -endorse -enemy -energy -enforce -engage -engine -enhance -enjoy -enlist -enough -enrich -enroll -ensure -enter -entire -entry -envelope -episode -equal -equip -era -erase -erode -erosion -error -erupt -escape -essay -essence -estate -eternal -ethics -evidence -evil -evoke -evolve -exact -example -excess -exchange -excite -exclude -excuse -execute -exercise -exhaust -exhibit -exile -exist -exit -exotic -expand -expect -expire -explain -expose -express -extend -extra -eye -eyebrow -fabric -face -faculty -fade -faint -faith -fall -false -fame -family -famous -fan -fancy -fantasy -farm -fashion -fat -fatal -father -fatigue -fault -favorite -feature -february -federal -fee -feed -feel -female -fence -festival -fetch -fever -few -fiber -fiction -field -figure -file -film -filter -final -find -fine -finger -finish -fire -firm -first -fiscal -fish -fit -fitness -fix -flag -flame -flash -flat -flavor -flee -flight -flip -float -flock -floor -flower -fluid -flush -fly -foam -focus -fog -foil -fold -follow -food -foot -force -forest -forget -fork -fortune -forum -forward -fossil -foster -found -fox -fragile -frame -frequent -fresh -friend -fringe -frog -front -frost -frown -frozen -fruit -fuel -fun -funny -furnace -fury -future -gadget -gain -galaxy -gallery -game -gap -garage -garbage -garden -garlic -garment -gas -gasp -gate -gather -gauge -gaze -general -genius -genre -gentle -genuine -gesture -ghost -giant -gift -giggle -ginger -giraffe -girl -give -glad -glance -glare -glass -glide -glimpse -globe -gloom -glory -glove -glow -glue -goat -goddess -gold -good -goose -gorilla -gospel -gossip -govern -gown -grab -grace -grain -grant -grape -grass -gravity -great -green -grid -grief -grit -grocery -group -grow -grunt -guard -guess -guide -guilt -guitar -gun -gym -habit -hair -half -hammer -hamster -hand -happy -harbor -hard -harsh -harvest -hat -have -hawk -hazard -head -health -heart -heavy -hedgehog -height -hello -helmet -help -hen -hero -hidden -high -hill -hint -hip -hire -history -hobby -hockey -hold -hole -holiday -hollow -home -honey -hood -hope -horn -horror -horse -hospital -host -hotel -hour -hover -hub -huge -human -humble -humor -hundred -hungry -hunt -hurdle -hurry -hurt -husband -hybrid -ice -icon -idea -identify -idle -ignore -ill -illegal -illness -image -imitate -immense -immune -impact -impose -improve -impulse -inch -include -income -increase -index -indicate -indoor -industry -infant -inflict -inform -inhale -inherit -initial -inject -injury -inmate -inner -innocent -input -inquiry -insane -insect -inside -inspire -install -intact -interest -into -invest -invite -involve -iron -island -isolate -issue -item -ivory -jacket -jaguar -jar -jazz -jealous -jeans -jelly -jewel -job -join -joke -journey -joy -judge -juice -jump -jungle -junior -junk -just -kangaroo -keen -keep -ketchup -key -kick -kid -kidney -kind -kingdom -kiss -kit -kitchen -kite -kitten -kiwi -knee -knife -knock -know -lab -label -labor -ladder -lady -lake -lamp -language -laptop -large -later -latin -laugh -laundry -lava -law -lawn -lawsuit -layer -lazy -leader -leaf -learn -leave -lecture -left -leg -legal -legend -leisure -lemon -lend -length -lens -leopard -lesson -letter -level -liar -liberty -library -license -life -lift -light -like -limb -limit -link -lion -liquid -list -little -live -lizard -load -loan -lobster -local -lock -logic -lonely -long -loop -lottery -loud -lounge -love -loyal -lucky -luggage -lumber -lunar -lunch -luxury -lyrics -machine -mad -magic -magnet -maid -mail -main -major -make -mammal -man -manage -mandate -mango -mansion -manual -maple -marble -march -margin -marine -market -marriage -mask -mass -master -match -material -math -matrix -matter -maximum -maze -meadow -mean -measure -meat -mechanic -medal -media -melody -melt -member -memory -mention -menu -mercy -merge -merit -merry -mesh -message -metal -method -middle -midnight -milk -million -mimic -mind -minimum -minor -minute -miracle -mirror -misery -miss -mistake -mix -mixed -mixture -mobile -model -modify -mom -moment -monitor -monkey -monster -month -moon -moral -more -morning -mosquito -mother -motion -motor -mountain -mouse -move -movie -much -muffin -mule -multiply -muscle -museum -mushroom -music -must -mutual -myself -mystery -myth -naive -name -napkin -narrow -nasty -nation -nature -near -neck -need -negative -neglect -neither -nephew -nerve -nest -net -network -neutral -never -news -next -nice -night -noble -noise -nominee -noodle -normal -north -nose -notable -note -nothing -notice -novel -now -nuclear -number -nurse -nut -oak -obey -object -oblige -obscure -observe -obtain -obvious -occur -ocean -october -odor -off -offer -office -often -oil -okay -old -olive -olympic -omit -once -one -onion -online -only -open -opera -opinion -oppose -option -orange -orbit -orchard -order -ordinary -organ -orient -original -orphan -ostrich -other -outdoor -outer -output -outside -oval -oven -over -own -owner -oxygen -oyster -ozone -pact -paddle -page -pair -palace -palm -panda -panel -panic -panther -paper -parade -parent -park -parrot -party -pass -patch -path -patient -patrol -pattern -pause -pave -payment -peace -peanut -pear -peasant -pelican -pen -penalty -pencil -people -pepper -perfect -permit -person -pet -phone -photo -phrase -physical -piano -picnic -picture -piece -pig -pigeon -pill -pilot -pink -pioneer -pipe -pistol -pitch -pizza -place -planet -plastic -plate -play -please -pledge -pluck -plug -plunge -poem -poet -point -polar -pole -police -pond -pony -pool -popular -portion -position -possible -post -potato -pottery -poverty -powder -power -practice -praise -predict -prefer -prepare -present -pretty -prevent -price -pride -primary -print -priority -prison -private -prize -problem -process -produce -profit -program -project -promote -proof -property -prosper -protect -proud -provide -public -pudding -pull -pulp -pulse -pumpkin -punch -pupil -puppy -purchase -purity -purpose -purse -push -put -puzzle -pyramid -quality -quantum -quarter -question -quick -quit -quiz -quote -rabbit -raccoon -race -rack -radar -radio -rail -rain -raise -rally -ramp -ranch -random -range -rapid -rare -rate -rather -raven -raw -razor -ready -real -reason -rebel -rebuild -recall -receive -recipe -record -recycle -reduce -reflect -reform -refuse -region -regret -regular -reject -relax -release -relief -rely -remain -remember -remind -remove -render -renew -rent -reopen -repair -repeat -replace -report -require -rescue -resemble -resist -resource -response -result -retire -retreat -return -reunion -reveal -review -reward -rhythm -rib -ribbon -rice -rich -ride -ridge -rifle -right -rigid -ring -riot -ripple -risk -ritual -rival -river -road -roast -robot -robust -rocket -romance -roof -rookie -room -rose -rotate -rough -round -route -royal -rubber -rude -rug -rule -run -runway -rural -sad -saddle -sadness -safe -sail -salad -salmon -salon -salt -salute -same -sample -sand -satisfy -satoshi -sauce -sausage -save -say -scale -scan -scare -scatter -scene -scheme -school -science -scissors -scorpion -scout -scrap -screen -script -scrub -sea -search -season -seat -second -secret -section -security -seed -seek -segment -select -sell -seminar -senior -sense -sentence -series -service -session -settle -setup -seven -shadow -shaft -shallow -share -shed -shell -sheriff -shield -shift -shine -ship -shiver -shock -shoe -shoot -shop -short -shoulder -shove -shrimp -shrug -shuffle -shy -sibling -sick -side -siege -sight -sign -silent -silk -silly -silver -similar -simple -since -sing -siren -sister -situate -six -size -skate -sketch -ski -skill -skin -skirt -skull -slab -slam -sleep -slender -slice -slide -slight -slim -slogan -slot -slow -slush -small -smart -smile -smoke -smooth -snack -snake -snap -sniff -snow -soap -soccer -social -sock -soda -soft -solar -soldier -solid -solution -solve -someone -song -soon -sorry -sort -soul -sound -soup -source -south -space -spare -spatial -spawn -speak -special -speed -spell -spend -sphere -spice -spider -spike -spin -spirit -split -spoil -sponsor -spoon -sport -spot -spray -spread -spring -spy -square -squeeze -squirrel -stable -stadium -staff -stage -stairs -stamp -stand -start -state -stay -steak -steel -stem -step -stereo -stick -still -sting -stock -stomach -stone -stool -story -stove -strategy -street -strike -strong -struggle -student -stuff -stumble -style -subject -submit -subway -success -such -sudden -suffer -sugar -suggest -suit -summer -sun -sunny -sunset -super -supply -supreme -sure -surface -surge -surprise -surround -survey -suspect -sustain -swallow -swamp -swap -swarm -swear -sweet -swift -swim -swing -switch -sword -symbol -symptom -syrup -system -table -tackle -tag -tail -talent -talk -tank -tape -target -task -taste -tattoo -taxi -teach -team -tell -ten -tenant -tennis -tent -term -test -text -thank -that -theme -then -theory -there -they -thing -this -thought -three -thrive -throw -thumb -thunder -ticket -tide -tiger -tilt -timber -time -tiny -tip -tired -tissue -title -toast -tobacco -today -toddler -toe -together -toilet -token -tomato -tomorrow -tone -tongue -tonight -tool -tooth -top -topic -topple -torch -tornado -tortoise -toss -total -tourist -toward -tower -town -toy -track -trade -traffic -tragic -train -transfer -trap -trash -travel -tray -treat -tree -trend -trial -tribe -trick -trigger -trim -trip -trophy -trouble -truck -true -truly -trumpet -trust -truth -try -tube -tuition -tumble -tuna -tunnel -turkey -turn -turtle -twelve -twenty -twice -twin -twist -two -type -typical -ugly -umbrella -unable -unaware -uncle -uncover -under -undo -unfair -unfold -unhappy -uniform -unique -unit -universe -unknown -unlock -until -unusual -unveil -update -upgrade -uphold -upon -upper -upset -urban -urge -usage -use -used -useful -useless -usual -utility -vacant -vacuum -vague -valid -valley -valve -van -vanish -vapor -various -vast -vault -vehicle -velvet -vendor -venture -venue -verb -verify -version -very -vessel -veteran -viable -vibrant -vicious -victory -video -view -village -vintage -violin -virtual -virus -visa -visit -visual -vital -vivid -vocal -voice -void -volcano -volume -vote -voyage -wage -wagon -wait -walk -wall -walnut -want -warfare -warm -warrior -wash -wasp -waste -water -wave -way -wealth -weapon -wear -weasel -weather -web -wedding -weekend -weird -welcome -west -wet -whale -what -wheat -wheel -when -where -whip -whisper -wide -width -wife -wild -will -win -window -wine -wing -wink -winner -winter -wire -wisdom -wise -wish -witness -wolf -woman -wonder -wood -wool -word -work -world -worry -worth -wrap -wreck -wrestle -wrist -write -wrong -yard -year -yellow -you -young -youth -zebra -zero -zone -zoo`.split(` -`),st={orgSeed:e=>`m/83696968'/39'/0'/24'/${e}'`,wallet:(e,t=1)=>`m/86'/${t}'/${e}'/0/0`,segwit:(e,t=1)=>`m/84'/${t}'/${e}'/0/0`,nostr:e=>`m/44'/1237'/${e}'/0/0`},zx=2**31-1,fi=new Map,li=new Map,fu=()=>Kx(Xa,256);function Pd(e,t=0){if(typeof e!="string"||!Zx(e,Xa)||t&&e.split(" ").length!==t)throw new Error("Invalid lab mnemonic.");return e}function $r(e,t){if(!Number.isSafeInteger(e)||e<0||e>zx)throw new Error(`Invalid ${t}.`);return e}const di=new Map;function Ja(e){return di.has(e)||di.set(e,qx(Pd(e))),di.get(e)}function _r(e){return fi.has(e)||fi.set(e,_n.fromMasterSeed(Ja(e))),fi.get(e)}function Fx(e,t){const n=e.derive(t).privateKey;if(!n)throw new Error("BIP-85 path produced no private key.");return xn(Qr,Qe("bip-entropy-from-k"),n)}function Gx(e,t){const n=`${e}|${$r(t,"child index")}`;return li.has(n)||li.set(n,Cd(Fx(_r(e),st.orgSeed(t)).slice(0,32),Xa)),li.get(n)}function Gi(e,t=0,n=1){return Ze(_r(e).derive(st.wallet($r(t,"account"),n)).privateKey)}function Ud(e,t=0,n=1){return Ze(_r(e).derive(st.segwit($r(t,"account"),n)).privateKey)}function Nd(e,t=0,n=1){return Ze(_r(e).derive(st.segwit($r(t,"account"),n)).publicKey)}function Qa(e,t=0){return Ze(_r(e).derive(st.nostr($r(t,"account"))).privateKey)}function Wx(e,t=0){const n=Ga.getPublicKey(_r(e).derive(st.nostr($r(t,"account"))).privateKey);return{pubkey:Ze(n),npub:yo.encode("npub",yo.toWords(n))}}const Ld="lineage-claim",Wi=330,bo=e=>$e.encode(e,!1).hex,lu=e=>({txid:e.txid,vout:e.vout,value:e.value,script:bo(e.scriptPubKey)}),hi=/^[0-9a-f]{64}$/,Yx=/^5120[0-9a-f]{64}$/;function Uo(e,t){var n;for(const r of e.utxos.values())if((n=r.inscriptions)!=null&&n.some(s=>s.id===t))return r;return null}function Rd(e){return ie.create({vin:[jt(e.holder.txid,e.holder.vout,e.holder.value,e.holder.script),jt(e.payer.txid,e.payer.vout,e.payer.value,e.payer.script)],vout:[Ue(e.holder.value,["OP_1",e.to]),Ue(e.payer.value-le,["OP_1",e.to])]})}function Xx(e,t,n,r=Date.now()){if((n==null?void 0:n.kind)!=="test-wallet")throw new Error("Claims are signed by local test wallets.");const s=Uo(e,t);if(!s)throw new Error("That inscription is not in an unspent output.");if(bo(s.scriptPubKey)===bo(n.script))throw new Error("The recipient already holds that inscription.");const o=e.coins(n.script).find(c=>{var u;return!((u=c.inscriptions)!=null&&u.length)&&c.value>=le+Wi});if(!o)throw new Error("The recipient needs a plain coin for the 500-sat fee. Mine a block to it first.");const i={kind:Ld,version:1,inscription:t,carried:s.inscriptions.map(c=>c.id),holder:lu(s),payer:lu(o),to:n.pubkey,at:r},a=Rd(i);return i.txid=ie.util.getTxid(a),i.sig=n.sign(a,void 0,1),i}function Jx(e,t,n){const r=e2(t);if((n==null?void 0:n.kind)!=="test-wallet")throw new Error("Countersigning needs a local test wallet.");if(bo(n.script)!==r.holder.script)throw new Error("Only the current holder can countersign.");if(Qx(e,r)!=="open")throw new Error("This claim is stale: an input it spends was already spent.");const s=Rd(r);return s.vin[1].witness=[r.sig],s.vin[0].witness=[n.sign(s,void 0,0)],e.submitPackage([ie.encode(s).hex]),ie.util.getTxid(s)}function Qx(e,t){return e.utxos.has(`${t.holder.txid}:${t.holder.vout}`)&&e.utxos.has(`${t.payer.txid}:${t.payer.vout}`)?"open":"stale"}function e2(e){const t=n=>n&&hi.test(n.txid)&&Number.isSafeInteger(n.vout)&&n.vout>=0&&Number.isSafeInteger(n.value)&&n.value>=Wi&&Yx.test(n.script);if((e==null?void 0:e.kind)!==Ld||e.version!==1||!/^[0-9a-f]{64}i\d+$/.test(e.inscription)||!Array.isArray(e.carried)||!t(e.holder)||!t(e.payer)||e.payer.value255*s)throw new Error("Length should be <= 255*HashLen");const o=Math.ceil(r/s);n===void 0&&(n=du);const i=new Uint8Array(o*s),a=xn.create(e,t),c=a._cloneInto(),u=new Uint8Array(a.outputLen);for(let l=0;ln2(e,t2(e,t,n),r,s);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const rn=BigInt(0),Ce=BigInt(1),gi=BigInt(2),s2=BigInt(8);function o2(e,t,n,r){const s=e.sqr(n),o=e.sqr(r),i=e.add(e.mul(t.a,s),o),a=e.add(e.ONE,e.mul(t.d,e.mul(s,o)));return e.eql(i,a)}function i2(e,t={}){const n=hd("edwards",e,t,t.FpFnLE),{Fp:r,Fn:s}=n;let o=n.CURVE;const{h:i}=o;Er(t,{},{uvRatio:"function"});const a=gi<r.create(y),u=t.uvRatio||((y,b)=>{try{return{isValid:!0,value:r.sqrt(r.div(y,b))}}catch{return{isValid:!1,value:rn}}});if(!o2(r,o,o.Gx,o.Gy))throw new Error("bad curve params: generator point");function l(y,b,w=!1){const m=w?Ce:rn;return es("coordinate "+y,b,m,a),b}function f(y){if(!(y instanceof p))throw new Error("ExtendedPoint expected")}const d=co((y,b)=>{const{X:w,Y:m,Z:v}=y,k=y.is0();b==null&&(b=k?s2:r.inv(v));const O=c(w*b),C=c(m*b),P=r.mul(v,b);if(k)return{x:rn,y:Ce};if(P!==Ce)throw new Error("invZ was invalid");return{x:O,y:C}}),h=co(y=>{const{a:b,d:w}=o;if(y.is0())throw new Error("bad point: ZERO");const{X:m,Y:v,Z:k,T:O}=y,C=c(m*m),P=c(v*v),B=c(k*k),N=c(B*B),H=c(C*b),K=c(B*c(H+P)),E=c(N+c(w*c(C*P)));if(K!==E)throw new Error("bad point: equation left != right (1)");const $=c(m*v),x=c(k*O);if($!==x)throw new Error("bad point: equation left != right (2)");return!0});class p{constructor(b,w,m,v){this.X=l("x",b),this.Y=l("y",w),this.Z=l("z",m,!0),this.T=l("t",v),Object.freeze(this)}static CURVE(){return o}static fromAffine(b){if(b instanceof p)throw new Error("extended point not allowed");const{x:w,y:m}=b||{};return l("x",w),l("y",m),new p(w,m,Ce,c(w*m))}static fromBytes(b,w=!1){const m=r.BYTES,{a:v,d:k}=o;b=Gc(ft(b,m,"point")),Kn(w,"zip215");const O=Gc(b),C=b[m-1];O[m-1]=C&-129;const P=Dn(O),B=w?a:r.ORDER;es("point.y",P,rn,B);const N=c(P*P),H=c(N-Ce),K=c(k*N-v);let{isValid:E,value:$}=u(H,K);if(!E)throw new Error("bad point: invalid y coordinate");const x=($&Ce)===Ce,_=(C&128)!==0;if(!w&&$===rn&&_)throw new Error("bad point: x=0 and x_0=1");return _!==x&&($=c(-$)),p.fromAffine({x:$,y:P})}static fromHex(b,w=!1){return p.fromBytes(ge("point",b),w)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(b=8,w=!0){return g.createCache(this,b),w||this.multiply(gi),this}assertValidity(){h(this)}equals(b){f(b);const{X:w,Y:m,Z:v}=this,{X:k,Y:O,Z:C}=b,P=c(w*C),B=c(k*v),N=c(m*C),H=c(O*v);return P===B&&N===H}is0(){return this.equals(p.ZERO)}negate(){return new p(c(-this.X),this.Y,this.Z,c(-this.T))}double(){const{a:b}=o,{X:w,Y:m,Z:v}=this,k=c(w*w),O=c(m*m),C=c(gi*c(v*v)),P=c(b*k),B=w+m,N=c(c(B*B)-k-O),H=P+O,K=H-C,E=P-O,$=c(N*K),x=c(H*E),_=c(N*E),I=c(K*H);return new p($,x,I,_)}add(b){f(b);const{a:w,d:m}=o,{X:v,Y:k,Z:O,T:C}=this,{X:P,Y:B,Z:N,T:H}=b,K=c(v*P),E=c(k*B),$=c(C*m*H),x=c(O*N),_=c((v+k)*(P+B)-K-E),I=x-$,L=x+$,U=c(E-w*K),j=c(_*I),M=c(L*U),z=c(_*U),ce=c(I*L);return new p(j,M,ce,z)}subtract(b){return this.add(b.negate())}multiply(b){if(!s.isValidNot0(b))throw new Error("invalid scalar: expected 1 <= sc < curve.n");const{p:w,f:m}=g.cached(this,b,v=>Cn(p,v));return Cn(p,[w,m])[0]}multiplyUnsafe(b,w=p.ZERO){if(!s.isValid(b))throw new Error("invalid scalar: expected 0 <= sc < curve.n");return b===rn?p.ZERO:this.is0()||b===Ce?this:g.unsafe(this,b,m=>Cn(p,m),w)}isSmallOrder(){return this.multiplyUnsafe(i).is0()}isTorsionFree(){return g.unsafe(this,o.n).is0()}toAffine(b){return d(this,b)}clearCofactor(){return i===Ce?this:this.multiplyUnsafe(i)}toBytes(){const{x:b,y:w}=this.toAffine(),m=r.toBytes(w);return m[m.length-1]|=b&Ce?128:0,m}toHex(){return Ze(this.toBytes())}toString(){return``}get ex(){return this.X}get ey(){return this.Y}get ez(){return this.Z}get et(){return this.T}static normalizeZ(b){return Cn(p,b)}static msm(b,w){return dd(p,s,b,w)}_setWindowSize(b){this.precompute(b)}toRawBytes(){return this.toBytes()}}p.BASE=new p(o.Gx,o.Gy,Ce,c(o.Gx*o.Gy)),p.ZERO=new p(rn,Ce,Ce,rn),p.Fp=r,p.Fn=s;const g=new ld(p,s.BITS);return p.BASE.precompute(8),p}function a2(e,t,n={}){if(typeof t!="function")throw new Error('"hash" function param is required');Er(n,{},{adjustScalarBytes:"function",randomBytes:"function",domain:"function",prehash:"function",mapToCurve:"function"});const{prehash:r}=n,{BASE:s,Fp:o,Fn:i}=e,a=n.randomBytes||zn,c=n.adjustScalarBytes||(B=>B),u=n.domain||((B,N,H)=>{if(Kn(H,"phflag"),N.length||H)throw new Error("Contexts/pre-hash are not supported");return B});function l(B){return i.create(Dn(B))}function f(B){const N=m.secretKey;B=ge("private key",B,N);const H=ge("hashed private key",t(B),2*N),K=c(H.slice(0,N)),E=H.slice(N,2*N),$=l(K);return{head:K,prefix:E,scalar:$}}function d(B){const{head:N,prefix:H,scalar:K}=f(B),E=s.multiply(K),$=E.toBytes();return{head:N,prefix:H,scalar:K,point:E,pointBytes:$}}function h(B){return d(B).pointBytes}function p(B=Uint8Array.of(),...N){const H=we(...N);return l(t(u(H,ge("context",B),!!r)))}function g(B,N,H={}){B=ge("message",B),r&&(B=r(B));const{prefix:K,scalar:E,pointBytes:$}=d(N),x=p(H.context,K,B),_=s.multiply(x).toBytes(),I=p(H.context,_,$,B),L=i.create(x+I*E);if(!i.isValid(L))throw new Error("sign failed: invalid s");const U=we(_,i.toBytes(L));return ft(U,m.signature,"result")}const y={zip215:!0};function b(B,N,H,K=y){const{context:E,zip215:$}=K,x=m.signature;B=ge("signature",B,x),N=ge("message",N),H=ge("publicKey",H,m.publicKey),$!==void 0&&Kn($,"zip215"),r&&(N=r(N));const _=x/2,I=B.subarray(0,_),L=Dn(B.subarray(_,x));let U,j,M;try{U=e.fromBytes(H,$),j=e.fromBytes(I,$),M=s.multiplyUnsafe(L)}catch{return!1}if(!$&&U.isSmallOrder())return!1;const z=p(E,j.toBytes(),U.toBytes(),N);return j.add(U.multiplyUnsafe(z)).subtract(M).clearCofactor().is0()}const w=o.BYTES,m={secretKey:w,publicKey:w,signature:2*w,seed:w};function v(B=a(m.seed)){return ft(B,m.seed,"seed")}function k(B){const N=P.randomSecretKey(B);return{secretKey:N,publicKey:h(N)}}function O(B){return us(B)&&B.length===i.BYTES}function C(B,N){try{return!!e.fromBytes(B,N)}catch{return!1}}const P={getExtendedPublicKey:d,randomSecretKey:v,isValidSecretKey:O,isValidPublicKey:C,toMontgomery(B){const{y:N}=e.fromBytes(B),H=m.publicKey,K=H===32;if(!K&&H!==57)throw new Error("only defined for 25519 and 448");const E=K?o.div(Ce+N,Ce-N):o.div(N-Ce,N+Ce);return o.toBytes(E)},toMontgomerySecret(B){const N=m.secretKey;ft(B,N);const H=t(B.subarray(0,N));return c(H).subarray(0,N)},randomPrivateKey:v,precompute(B=8,N=e.BASE){return N.precompute(B,!1)}};return Object.freeze({keygen:k,getPublicKey:h,sign:g,verify:b,utils:P,Point:e,lengths:m})}function c2(e){const t={a:e.a,d:e.d,p:e.Fp.ORDER,n:e.n,h:e.h,Gx:e.Gx,Gy:e.Gy},n=e.Fp,r=Gn(t.n,e.nBitLength,!0),s={Fp:n,Fn:r,uvRatio:e.uvRatio},o={randomBytes:e.randomBytes,adjustScalarBytes:e.adjustScalarBytes,domain:e.domain,prehash:e.prehash,mapToCurve:e.mapToCurve};return{CURVE:t,curveOpts:s,hash:e.hash,eddsaOpts:o}}function u2(e,t){const n=t.Point;return Object.assign({},t,{ExtendedPoint:n,CURVE:e,nBitLength:n.Fn.BITS,nByteLength:n.Fn.BYTES})}function f2(e){const{CURVE:t,curveOpts:n,hash:r,eddsaOpts:s}=c2(e),o=i2(t,n),i=a2(o,r,s);return u2(e,i)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const Cr=BigInt(0),er=BigInt(1),Us=BigInt(2);function l2(e){return Er(e,{adjustScalarBytes:"function",powPminus2:"function"}),Object.freeze({...e})}function d2(e){const t=l2(e),{P:n,type:r,adjustScalarBytes:s,powPminus2:o,randomBytes:i}=t,a=r==="x25519";if(!a&&r!=="x448")throw new Error("invalid type");const c=i||zn,u=a?255:448,l=a?32:56,f=BigInt(a?9:5),d=BigInt(a?121665:39081),h=a?Us**BigInt(254):Us**BigInt(447),p=a?BigInt(8)*Us**BigInt(251)-er:BigInt(4)*Us**BigInt(445)-er,g=h+p+er,y=E=>ve(E,n),b=w(f);function w(E){return Va(y(E),l)}function m(E){const $=ge("u coordinate",E,l);return a&&($[31]&=127),y(Dn($))}function v(E){return Dn(s(ge("scalar",E,l)))}function k(E,$){const x=P(m($),v(E));if(x===Cr)throw new Error("invalid private or public key received");return w(x)}function O(E){return k(E,b)}function C(E,$,x){const _=y(E*($-x));return $=y($-_),x=y(x+_),{x_2:$,x_3:x}}function P(E,$){es("u",E,Cr,n),es("scalar",$,h,g);const x=$,_=E;let I=er,L=Cr,U=E,j=er,M=Cr;for(let ce=BigInt(u-1);ce>=Cr;ce--){const oe=x>>ce&er;M^=oe,{x_2:I,x_3:U}=C(M,I,U),{x_2:L,x_3:j}=C(M,L,j),M=oe;const Q=I+L,de=y(Q*Q),he=I-L,_e=y(he*he),ue=de-_e,be=U+j,It=U-j,tt=y(It*Q),Ne=y(be*he),Ct=tt+Ne,Tr=tt-Ne;U=y(Ct*Ct),j=y(_*y(Tr*Tr)),I=y(de*_e),L=y(ue*(de+y(d*ue)))}({x_2:I,x_3:U}=C(M,I,U)),{x_2:L,x_3:j}=C(M,L,j);const z=o(L);return y(I*z)}const B={secretKey:l,publicKey:l,seed:l},N=(E=c(l))=>(Me(E,B.seed),E);function H(E){const $=N(E);return{secretKey:$,publicKey:O($)}}return{keygen:H,getSharedSecret:(E,$)=>k(E,$),getPublicKey:E=>O(E),scalarMult:k,scalarMultBase:O,utils:{randomSecretKey:N,randomPrivateKey:N},GuBytes:b.slice(),lengths:B}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const h2=BigInt(1),hu=BigInt(2),p2=BigInt(3),g2=BigInt(5),m2=BigInt(8),ec=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed"),Hd={p:ec,n:BigInt("0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed"),h:m2,a:BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec"),d:BigInt("0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3"),Gx:BigInt("0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a"),Gy:BigInt("0x6666666666666666666666666666666666666666666666666666666666666658")};function jd(e){const t=BigInt(10),n=BigInt(20),r=BigInt(40),s=BigInt(80),o=ec,a=e*e%o*e%o,c=ke(a,hu,o)*a%o,u=ke(c,h2,o)*e%o,l=ke(u,g2,o)*u%o,f=ke(l,t,o)*l%o,d=ke(f,n,o)*f%o,h=ke(d,r,o)*d%o,p=ke(h,s,o)*h%o,g=ke(p,s,o)*h%o,y=ke(g,t,o)*l%o;return{pow_p_5_8:ke(y,hu,o)*e%o,b2:a}}function Kd(e){return e[0]&=248,e[31]&=127,e[31]|=64,e}const pu=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752");function y2(e,t){const n=ec,r=ve(t*t*t,n),s=ve(r*r*t,n),o=jd(e*s).pow_p_5_8;let i=ve(e*r*o,n);const a=ve(t*i*i,n),c=i,u=ve(i*pu,n),l=a===e,f=a===ve(-e,n),d=a===ve(-e*pu,n);return l&&(i=c),(f||d)&&(i=u),J1(i,n)&&(i=ve(-i,n)),{isValid:l||f,value:i}}const Dd=Gn(Hd.p,{isLE:!0}),b2={...Hd,Fp:Dd,hash:Qr,adjustScalarBytes:Kd,uvRatio:y2},No=f2(b2),Md=(()=>{const e=Dd.ORDER;return d2({P:e,type:"x25519",powPminus2:t=>{const{pow_p_5_8:n,b2:r}=jd(t);return ve(ke(n,p2,e)*r,e)},adjustScalarBytes:Kd})})(),w2=Qe("lineage/v0"),$t=(e,t)=>r2(Je,e,w2,Qe(t),32),Lo=e=>{const t=Uint8Array.from(e);return t[0]&=248,t[31]&=127,t[31]|=64,t},Zd=e=>{const t=new Uint8Array(4);return new DataView(t.buffer).setUint32(0,e),t},it=e=>we(Zd(e.length),e),tc=e=>we(it(Qe("ssh-ed25519")),it(e)),Yi=(e,t)=>`ssh-ed25519 ${St.encode(tc(e))}${t?` ${t}`:""}`,Xi=e=>`SHA256:${St.encode(Je(tc(e))).replace(/=+$/,"")}`;function x2(e){const t=gt(e),n=r=>No.getPublicKey($t(t,r));return{ssh:n("ssh"),git:n("git"),dkim:n("dkim"),wg:Md.getPublicKey(Lo($t(t,"wg")))}}function v2(e){const t=n=>No.getPublicKey($t(e,n));return{"ssh-ca":t("node/ssh-ca"),mtls:t("node/mtls"),noise:Md.getPublicKey(Lo($t(e,"node/noise")))}}function E2(e,t,n,r){return[["ssh",Xi(e.ssh),Yi(e.ssh,t)],["git",Xi(e.git),`${t} namespaces="git" ${Yi(e.git,t)}`],["dkim",`${n}._domainkey.${r}`,`${n}._domainkey.${r}. IN TXT "v=DKIM1; k=ed25519; p=${St.encode(e.dkim)}"`],["wg",St.encode(e.wg),`[Peer] -# ${t} -PublicKey = ${St.encode(e.wg)}`]]}function k2(e,t){return[["ssh-ca",Xi(e["ssh-ca"]),Yi(e["ssh-ca"],`lineage-ca@${t}`)],["mtls",St.encode(e.mtls),null],["noise",`mkey:${Ze(e.noise)}`,null]]}const S2=gt("302e020100300506032b657004220420");function Vd(e,t,n){const r=Je(e).slice(0,4);let s=we(r,r,it(Qe("ssh-ed25519")),it(t),it(we(e,t)),it(Qe(n)));s=we(s,new Uint8Array((8-s.length%8)%8).map((i,a)=>a+1));const o=we(Qe("openssh-key-v1\0"),it(Qe("none")),it(Qe("none")),it(new Uint8Array(0)),Zd(1),it(tc(t)),it(s));return`-----BEGIN OPENSSH PRIVATE KEY----- -${St.encode(o).match(/.{1,70}/g).join(` -`)} ------END OPENSSH PRIVATE KEY----- -`}const $2=(e,t)=>`-----BEGIN ${e}----- -${St.encode(t).match(/.{1,64}/g).join(` -`)} ------END ${e}----- -`;function _2(e,t){const n=gt(e),r=s=>{const o=$t(n,s);return Vd(o,No.getPublicKey(o),t)};return[["ssh","OpenSSH private key",r("ssh")],["git","OpenSSH private key",r("git")],["dkim","Ed25519 private key (base64)",St.encode($t(n,"dkim"))],["wg","Interface entry",`[Interface] -PrivateKey = ${St.encode(Lo($t(n,"wg")))}`]]}function A2(e,t){const n=$t(e,"node/ssh-ca");return[["ssh-ca","OpenSSH private key",Vd(n,No.getPublicKey(n),`lineage-ca@${t}`)],["mtls","Private key (PKCS#8 PEM)",$2("PRIVATE KEY",we(S2,$t(e,"node/mtls")))],["noise","noise_private.key",`privkey:${Ze(Lo($t(e,"node/noise")))}`]]}const B2=["bip86","tapkey","wallet"],nc=()=>({scheme:"bip86",roots:{},adopted:{}}),T2=e=>_o.getPubKey(e)[0];function qd(e,t,n){return e.scheme==="wallet"?Gi(t,n):_o.getSecKey(e.scheme==="tapkey"?Qa(t,n):Gi(t,n))[0]}const zd=(e,t)=>e.scheme==="tapkey"?st.nostr(t):st.wallet(t),O2=(e,t)=>new vn(qd(e,t,0)),Be=e=>$e.encode(e,!1).hex;function En(e,t,n){if(!n)return null;const r=i=>i?{mnemonic:i,account:0,origin:`${n.name} root`,steps:[]}:null;if(n.kind==="holding")return r(e.roots[n.id]);const s=t.nodes.get(n.parent);if(n.kind==="agent"){const i=En(e,t,s);return i&&{...i,account:n.index+1}}if(n.edge==="adopted")return r(e.adopted[n.id]);const o=En(e,t,s);return o&&{mnemonic:Gx(o.mnemonic,n.index),account:0,origin:o.origin,steps:[...o.steps,`${n.index}'`]}}const mi=new Map;function Te(e,t,n){const r=En(e,t,n);if(!r)return null;const s=`${e.scheme}|${r.mnemonic}|${r.account}`;if(!mi.has(s)){const{npub:u,pubkey:l}=Wx(r.mnemonic,r.account);mi.set(s,{wallet:new vn(qd(e,r.mnemonic,r.account)),npub:u,pubkey:l})}const{wallet:o,npub:i,pubkey:a}=mi.get(s),c=[r.origin,...r.steps].join(" › ");return{wallet:o,npub:i,pubkey:a,scheme:e.scheme,account:r.account,from:c,path:`${c} · ${zd(e,r.account)}`}}function I2(e,t,n){const r=En(e,t,n);if(!r)return null;const s=Te(e,t,n),o=Nd(r.mnemonic,r.account);return{taproot:{address:s.wallet.address,path:zd(e,r.account)},segwit:{address:Kr.p2wpkh.fromPubKey(o,"regtest"),path:st.segwit(r.account)},tapkey:{address:Kr.p2tr.fromPubKey(T2(s.pubkey),"regtest"),path:st.nostr(r.account)},npub:{address:s.npub,path:st.nostr(r.account)}}}function rc(e,t,n){const r=Uo(e.chain,n);if(!r)return null;const s=Be(r.scriptPubKey),o=t.nodes.get(n),i=Te(e.keys,t,o),a=o&&Te(e.keys,t,t.nodes.get(o.parent));return i&&Be(i.wallet.script)===s?{wallet:i.wallet,who:"own"}:e.wallet&&Be(e.wallet.script)===s?{wallet:e.wallet,who:"lab"}:a&&Be(a.wallet.script)===s?{wallet:a.wallet,who:"parent"}:{wallet:null,who:"other",script:s}}function Ro(e,t){const n=e.nodes.get(t),r=[n];for(const s of n.children){const o=e.nodes.get(s);o.status==="active"&&o.edge==="derived"&&r.push(...Ro(e,s))}return r}function Ji(e,t){const n=[];for(let r=t;r;r=e.nodes.get(r.parent))n.push(r.name);return n.join(".")}function C2(e,t,n){const r=En(e,t,n);if(!r)return null;if(n.kind!=="agent")return k2(v2(Ja(r.mnemonic)),Ji(t,n));const s=Ji(t,t.nodes.get(n.parent));return E2(x2(Qa(r.mnemonic,r.account)),`${n.name}@${s}`,n.name,s)}const P2=Ad(Je),Pr=(e,t=239)=>P2.encode(we(Uint8Array.of(t),gt(e),Uint8Array.of(1))),U2=e=>yo.encode("nsec",yo.toWords(gt(e))),N2="0123456789()[],'/*abcdefgh@:$%{}IJKLMNOPQRSTUVWXYZ&+-.;<=>?!^_|~ijklmnopqrstuvwxyzABCDEFGH`#\"\\ ",L2=[0xf5dee51989n,0xa9fdca3312n,0x1bab10e32dn,0x3706b1677an,0x644d626ffdn];function yi(e){const t=(i,a)=>{const c=i>>35n;return i=(i&0x7ffffffffn)<<5n^BigInt(a),L2.forEach((u,l)=>{c>>BigInt(l)&1n&&(i^=u)}),i};let n=1n,r=0,s=0;for(const i of e){const a=N2.indexOf(i);if(a<0)throw new Error("Invalid descriptor character.");n=t(n,a&31),r=r*3+(a>>5),++s===3&&(n=t(n,r),r=0,s=0)}s&&(n=t(n,r));for(let i=0;i<8;i++)n=t(n,0);n^=1n;let o="";for(let i=0;i<8;i++)o+="qpzry9x8gf2tvdw0s3jn54khce6mua7l"[Number(n>>BigInt(5*(7-i))&31n)];return`${e}#${o}`}function R2(e,t,n){const r=En(e,t,n);if(!r)return null;const s=Qa(r.mnemonic,r.account),o=Gi(r.mnemonic,r.account),i={bip86:`tr(${Pr(o)})`,tapkey:`tr(${Pr(s)})`,wallet:`rawtr(${Pr(o)})`}[e.scheme],a=n.kind==="agent",c=Ji(t,a?t.nodes.get(n.parent):n);return{seed:a?null:{from:[r.origin,...r.steps].join(" › "),mnemonic:r.mnemonic},account:[["nsec","NIP-06",U2(s)],["taproot","descriptor",yi(i)],["segwit","descriptor",yi(`wpkh(${Pr(Ud(r.mnemonic,r.account))})`)],["tapkey","descriptor",yi(`tr(${Pr(s)})`)]],leaves:a?_2(s,`${n.name}@${c}`):A2(Ja(r.mnemonic),c)}}const ts=1e8,et=50*ts,Ie=330,Fd=e=>(e/ts).toFixed(8).replace(/\.?0+$/,""),ae=e=>`${Fd(e)} tBTC`;function sc(e){if(e<1e6)return ae(e);const t=Math.round(e/1e6)*1e6;return`${t===e?"":"≈"}${ae(t)}`}function oc(e){const t=/^\s*(\d{0,7})(?:\.(\d{0,8}))?\s*$/.exec(String(e??""));return!t||!(t[1]||t[2])?null:Number(t[1]||0)*ts+Number((t[2]??"").padEnd(8,"0"))}class Gd{constructor(t,n,r){this.secret=t,this.pubkey=n,this.path=r,this.address=Kr.p2wpkh.fromPubKey(n,"regtest"),this.script=Kr.toScriptPubKey(this.address)}sign(t,n){return[lr.segwit.sign(this.secret,t,n,{pubkey:this.pubkey}).hex,this.pubkey]}}const bi=new Map;function Ee(e,t,n){const r=En(e,t,n);if(!r)return null;const s=`${r.mnemonic}|${r.account}`;return bi.has(s)||bi.set(s,new Gd(Ud(r.mnemonic,r.account),Nd(r.mnemonic,r.account),st.segwit(r.account))),bi.get(s)}function H2(e,t,n){var s;const r=n?t.nodes.get(n):null;return r&&r.root===r.id&&r.status==="active"?((s=Ee(e,t,r))==null?void 0:s.script)??null:null}const ir=(e,t)=>{var n,r;return((r=(n=e.mining)==null?void 0:n.rigs)==null?void 0:r[t])??1};function ic(e,t){var n;return((n=e.mining)==null?void 0:n.rule)==="none"?[]:t.roots.filter(r=>r.status==="active"&&ir(e,r.id)>0&&Ee(e.keys,t,r)).slice(0,xd)}function Wd(e,t,n){var i,a;if(((i=e.mining)==null?void 0:i.rule)==="none")return null;if(((a=e.mining)==null?void 0:a.rule)==="last"){const c=H2(e.keys,t,n);return c?[{script:c,value:et}]:null}const r=ic(e,t),s=r.reduce((c,u)=>c+ir(e,u.id),0);let o=et;return r.length?r.map((c,u)=>{const l=u===r.length-1?o:Math.floor(et*ir(e,c.id)/s);return o-=l,{script:Ee(e.keys,t,c).script,value:l}}):null}function ns(e,t,n=ht){const r=t+le,s=u=>u===r||u-r>=Ie&&u-r<=et,o=[...e].sort((u,l)=>u.value-l.value),i=o.find(u=>s(u.value));if(i||n<2)return i?[i]:null;let a=null;for(let u=0;ue.reduce((t,n)=>t+n.value,0);function cc(e,t=ht){let n=0,r=-le;for(const s of e.map(o=>o.value).sort((o,i)=>i-o).slice(0,t)){r+=s;const o=r<=et?r:r-et>=Ie?et:r-Ie;o>=Ie&&r-o<=et&&(n=Math.max(n,o))}return n}function Yd(e,t,n,r=ht,s="send"){const o=ac(t),i=n+le,a=cc(t,r),c=`${s[0].toUpperCase()}${s.slice(1)}`;if(od.value).sort((d,h)=>h-d),l=u.slice(0,r).map((d,h)=>u.slice(0,h+1).reduce((p,g)=>p+g,0)),f=Math.min(...[...u,...u.flatMap((d,h)=>u.slice(h+1).map(p=>d+p)),...l].filter(d=>d>=i));return Number.isFinite(f)&&f-inew Set((e.offers??[]).flatMap(t=>t.payers.map(n=>`${n.txid}:${n.vout}`))),Jd=(e,t)=>e.chain.coins(t.script).filter(n=>{var r;return!((r=n.inscriptions)!=null&&r.length)}),Qd=(e,t,n=ht)=>!!ns(e,t,n),eh=(e,t,n)=>Qd(Jd(e,t),n);function uc(e,t,n,r,s="This node",o="send"){const i=Jd(e,t),a=Xd(e),c=ns(i.filter(d=>!a.has(`${d.txid}:${d.vout}`)),r)??ns(i,r);if(!c)throw new Error(Yd(s,i,r,ht,o));const u=ac(c)-r-le,l=ie.create({vin:c.map(d=>jt(d.txid,d.vout,d.value,d.scriptPubKey)),vout:[Ue(r,n),...u?[Ue(u,t.script)]:[]]});c.forEach((d,h)=>{l.vin[h].witness=t instanceof Gd?t.sign(l,h):[t.sign(l,void 0,h)]});const f=ie.encode(l).hex;return e.chain.submitPackage([f]),ie.util.getTxid(f)}function th(e,t,n,r,s){const o=t.nodes.get(n),i=t.nodes.get(r);if(!o||!i)throw new Error("Pick who sends and who receives.");if(o.id===i.id)throw new Error(`${o.name} cannot send to itself.`);for(const u of[o,i])if(u.status!=="active")throw new Error(`${u.name} is ${u.status}.`);const a=Ee(e.keys,t,o),c=Ee(e.keys,t,i);if(!a||!c)throw new Error("A holding that predates lab keys has no SegWit addresses.");if(!Number.isSafeInteger(s)||set)throw new Error("Send at most 50 test BTC at a time: no output on this chain is bigger than one block reward.");return uc(e,a,c.script,s,o.name)}function j2(e,t,n){if(!t||!n||Be(t.script)===Be(n.script))return 0;let r=0;for(const s of e.chain.coins(t.script)){if(s.value-le[t,...t.log.flatMap((n,r)=>n.ok&&n.op==="graduate"?[wn(e.slice(0,r),{pending:!0})]:[])];function nh(e,t){const n=new Map;for(const r of e)for(const s of r.nodes.values()){const o=t(r,s);o&&!n.has(o)&&n.set(o,s.id)}return n}const K2=(e,t,n)=>nh(fc(t,n),(r,s)=>{const o=Ee(e,r,s);return o&&Be(o.script)}),wi=new Map,D2=(e,t,n)=>nh(fc(t,n),(r,s)=>{const o=En(e,r,s),i=o&&`${e.scheme}|${o.mnemonic}|${o.account}`;return i&&!wi.has(i)&&wi.set(i,Be(Te(e,r,s).wallet.script)),i?wi.get(i):null}),lc=(e,t)=>e.coins(t.script).filter(n=>{var r;return!((r=n.inscriptions)!=null&&r.length)}).reduce((n,r)=>n+r.value,0);function M2(e,t,n,r){for(const s of fc(t,n))for(const o of s.nodes.values()){const i=Te(e,s,o);if(i&&Be(i.wallet.script)===r)return{node:o.id,wallet:i.wallet}}return null}function Z2(e,t,n=new Map,r=new Map){var a;const s=[],o=c=>t.get(Be(c))??null,i=c=>c.reduce((u,l)=>u+l.value,0);for(const{txid:c,tx:u,height:l,coinbase:f}of e.transactions.values()){const d=u.vout.map(v=>({script:Be(v.scriptPubKey),node:o(v.scriptPubKey),value:Number(v.value)}));if(f){d.forEach((v,k)=>{v.node&&s.push({kind:"mine",key:`${c}:${k}`,txid:c,beat:l,from:null,to:v.node,amount:v.value,fee:0,change:0})});continue}const h=u.vin.map(v=>{var O,C;const k=((O=e.transactions.get(v.txid))==null?void 0:O.tx.vout[v.vout])??((C=e.imported)==null?void 0:C.call(e,v.txid,v.vout));return k?{node:o(k.scriptPubKey),value:Number(k.value)}:null}),p=r.get(c);if(p&&h.length>1&&h[0]&&h.slice(1).every(v=>(v==null?void 0:v.node)===p.buyer)){s.push({kind:"deal",key:c,txid:c,beat:l,from:p.buyer,to:p.seller,amount:p.price,item:p.item,fee:i(h)-i(d),change:i(d.filter(v=>v.node===p.buyer))});continue}if(h.every(v=>v&&!v.node)){const v=d.filter(k=>k.node);v.length&&s.push({kind:"fund",key:c,txid:c,beat:l,from:null,to:v[0].node,amount:v[0].value,fee:i(h)-i(d),change:i(d.filter(k=>!k.node))});continue}const g=(a=h[0])==null?void 0:a.node;if(!g||!h.every(v=>(v==null?void 0:v.node)===g))continue;const y=d.filter(v=>v.node!==g),b=d.filter(v=>v.node===g),w=i(h)-i(d),m={key:c,txid:c,beat:l,from:g,fee:w};y.length&&y.every(v=>n.get(v.script)===g)?s.push({...m,kind:"gas",to:g,amount:i(y),change:i(b)}):y.length?s.push({...m,kind:"pay",to:y[0].node,amount:y[0].value,change:i(b)}):s.push({...m,kind:"move",to:g,amount:i(b),change:0})}return s}function Qi(e,t,n=1/0){const r=new Map;for(const{txid:o,tx:i,height:a,coinbase:c}of e.transactions.values())if(!(a===null?n!==1/0:a>n)){if(!c)for(const u of i.vin)r.delete(`${u.txid}:${u.vout}`);i.vout.forEach((u,l)=>{const f=t.get(Be(u.scriptPubKey));f&&r.set(`${o}:${l}`,{node:f,value:Number(u.value)})})}const s=new Map;for(const{node:o,value:i}of r.values())s.set(o,(s.get(o)??0)+i);return s}const ea="lineage-offer",gu=/^[0-9a-f]{64}$/,xi=/^[0-9a-f]{64}i0$/,mu=/^5120[0-9a-f]{64}$/,vi=/^0014[0-9a-f]{40}$/,yu=e=>({txid:e.txid,vout:e.vout,value:e.value,script:Be(e.scriptPubKey)}),bu=(e,t)=>!e.utxos.has(`${t.txid}:${t.vout}`),rh=e=>{const t=To(new cs(e.chain));return{events:t,state:wn(t,{pending:!0})}};function sh(e){return ie.create({vin:[e.holder,...e.payers].map(t=>jt(t.txid,t.vout,t.value,t.script)),vout:[Ue(e.holder.value,e.to),...e.price?[Ue(e.price,e.pay)]:[],...e.change?[Ue(e.change,e.back)]:[]]})}function dc(e,t,n,r){const s=Uo(e.chain,r),o=s&&M2(e.keys,t,n,Be(s.scriptPubKey));return o?{coin:s,node:n.nodes.get(o.node),wallet:o.wallet}:null}function oh(e,t,n,r,s=Date.now()){const{events:o,state:i}=rh(e),a=i.items.get(t),c=i.nodes.get(n);if(!a)throw new Error("Pick an item to make an offer on.");if(!c)throw new Error("Pick who makes the offer.");if(!Number.isSafeInteger(r)||r<0||r>0&&ret)throw new Error("Offer at most 50 test BTC: no output on this chain is bigger than one block reward.");const u=dc(e,o,i,t),l=u==null?void 0:u.node;if(!l)throw new Error(`No node in this lab holds ${a.name}.`);if(l.id===c.id)throw new Error(`${c.name} already holds ${a.name}.`);for(const m of[c,l])if(m.status!=="active")throw new Error(`${m.name} is ${m.status}.`);const f=Ee(e.keys,i,c),d=Ee(e.keys,i,l),h=Te(e.keys,i,c);if(!f||!d||!h)throw new Error("A holding that predates lab keys cannot trade.");if((e.offers??[]).some(m=>m.item===t&&m.buyer===c.id&&ta(e,i,m)==="open"))throw new Error(`${c.name} already has an open offer on ${a.name}. Withdraw it first.`);const p=e.chain.coins(f.script),g=Xd(e),y=ns(p.filter(m=>!g.has(`${m.txid}:${m.vout}`)),r,ht-1)??ns(p,r,ht-1);if(!y)throw new Error(Yd(c.name,p,r,ht-1,"offer"));const b={kind:ea,version:1,item:t,buyer:c.id,seller:l.id,price:r,holder:yu(u.coin),payers:y.map(yu),to:Be(h.wallet.script),pay:Be(d.script),back:Be(f.script),change:y.reduce((m,v)=>m+v.value,0)-r-le,at:s},w=sh(b);return b.txid=ie.util.getTxid(w),b.witnesses=y.map((m,v)=>f.sign(w,v+1)),(e.offers??(e.offers=[])).push(b),b}function hc(e,t,n){var c,u;const r=l=>{var f;return((f=t.nodes.get(l))==null?void 0:f.name)??"a node"},s=((c=t.items.get(n.item))==null?void 0:c.name)??"the item";if(bu(e.chain,n.holder))return`${s} has moved since`;if(n.payers.some(l=>bu(e.chain,l)))return`${r(n.buyer)} has spent a coin the offer promised`;for(const l of[n.buyer,n.seller]){const f=t.nodes.get(l);if((f==null?void 0:f.status)!=="active")return`${r(l)} is ${(f==null?void 0:f.status)??"gone"}`}const o=t.nodes.get(n.buyer),i=t.nodes.get(n.seller),a=l=>l?Be(l.script):"";return a((u=Te(e.keys,t,o))==null?void 0:u.wallet)!==n.to||a(Ee(e.keys,t,o))!==n.back?`${o.name} has new keys since`:n.price&&a(Ee(e.keys,t,i))!==n.pay?`${i.name} has new keys since`:""}const ta=(e,t,n)=>e.chain.transactions.has(n.txid)?"done":hc(e,t,n)?"stale":"open";function V2(e,t){const n=(e.offers??[]).find(c=>c.txid===t);if(!n)throw new Error("That offer is gone.");if(e.chain.transactions.has(n.txid))throw new Error("That offer was already accepted.");const{events:r,state:s}=rh(e),o=hc(e,s,n);if(o)throw new Error(`This offer is stale: ${o}.`);const i=dc(e,r,s,n.item);if((i==null?void 0:i.node.id)!==n.seller)throw new Error("Only the holder can accept.");const a=sh(n);return n.witnesses.forEach((c,u)=>{a.vin[u+1].witness=c}),a.vin[0].witness=[i.wallet.sign(a,void 0,0)],e.chain.submitPackage([ie.encode(a).hex]),n}function q2(e,t){const n=(e.offers??[]).find(r=>r.txid===t);if(!n)throw new Error("That offer is gone.");if(e.chain.transactions.has(n.txid))throw new Error("That offer was accepted: it is on the chain now.");return e.offers=e.offers.filter(r=>r!==n),n}function z2(e){const t=(r,s)=>r&&gu.test(r.txid)&&Number.isSafeInteger(r.vout)&&r.vout>=0&&Number.isSafeInteger(r.value)&&r.value>=Ie&&r.value<=et&&s.test(r.script),n=r=>Number.isSafeInteger(r)&&(r===0||r>=Ie&&r<=et);if((e==null?void 0:e.kind)!==ea||e.version!==1||!xi.test(e.item)||!xi.test(e.buyer)||!xi.test(e.seller)||e.buyer===e.seller||!n(e.price)||!n(e.change)||!t(e.holder,mu)||!Array.isArray(e.payers)||!e.payers.length||e.payers.length>ht-1||!e.payers.every(r=>t(r,vi))||!mu.test(e.to)||!vi.test(e.pay)||!vi.test(e.back)||!gu.test(e.txid)||!Array.isArray(e.witnesses)||e.witnesses.length!==e.payers.length||!e.witnesses.every(r=>Array.isArray(r)&&r.length===2&&/^30[0-9a-f]{12,140}01$/.test(r[0])&&/^0[23][0-9a-f]{64}$/.test(r[1]))||!Number.isSafeInteger(e.at))throw new Error("Invalid offer.");return{kind:ea,version:1,item:e.item,buyer:e.buyer,seller:e.seller,price:e.price,holder:{...e.holder},payers:e.payers.map(r=>({...r})),to:e.to,pay:e.pay,back:e.back,change:e.change,at:e.at,txid:e.txid,witnesses:e.witnesses.map(r=>[...r])}}const Ho="orgchain:lab:v1",F2=["each",10,30,60,"manual"];function hs(e={tempo:"each",nextAt:null}){const{tempo:t,nextAt:n}=e??{},r=typeof t=="number";if(!F2.includes(t)||!(n===null||r&&Number.isSafeInteger(n)&&n>0))throw new Error("Invalid clock.");return{tempo:t,nextAt:n}}function ih(e){const t=nc();for(const n of["roots","adopted"])for(const[r,s]of Object.entries((e==null?void 0:e[n])??{})){if(!/^[0-9a-f]{64}i0$/.test(r))throw new Error("Invalid lab keys.");t[n][r]=Pd(s,24)}if(t.scheme=(e==null?void 0:e.scheme)??(Object.keys(t.roots).length?"wallet":"bip86"),!B2.includes(t.scheme))throw new Error("Invalid lab keys.");return t}const G2=["split","last","none"];function ps(e){const t=(e==null?void 0:e.rule)??"split",n={};if(!G2.includes(t))throw new Error("Invalid mining rule.");for(const[r,s]of Object.entries((e==null?void 0:e.rigs)??{})){if(!/^[0-9a-f]{64}i0$/.test(r)||!Number.isSafeInteger(s)||s<0||s>9)throw new Error("Invalid hashrate.");s!==1&&(n[r]=s)}return{rule:t,rigs:n}}function ah(e=[]){if(!Array.isArray(e)||e.length>1e3)throw new Error("Invalid offers.");const t=e.map(z2);if(new Set(t.map(n=>n.txid)).size!==t.length)throw new Error("Invalid offers.");return t}const gs=()=>({wallet:null,chain:new Io,clock:hs(),keys:nc(),mining:ps(),offers:[]});function ch(e){if(!e)return gs();const t=JSON.parse(e);if((t==null?void 0:t.kind)!=="orgchain-lab"||t.network!==un||t.version!==1)throw new Error("That is not an Orgchain v1 lab.");return{wallet:t.wallet?vn.load(t.wallet):null,chain:new Io(t.chain),clock:hs(t.clock),keys:ih(t.keys),mining:ps(t.mining),offers:ah(t.offers)}}const uh=e=>{var t;return JSON.stringify({kind:"orgchain-lab",network:un,version:1,wallet:((t=e.wallet)==null?void 0:t.backup())??null,chain:e.chain.snapshot(),clock:hs(e.clock),keys:ih(e.keys),mining:ps(e.mining),offers:ah(e.offers)})};function W2(e,t,n){var r;e.mining=ps({...e.mining,rigs:{...(r=e.mining)==null?void 0:r.rigs,[t]:n}})}function Y2(e,t){e.mining=ps({...e.mining,rule:t})}const pc=()=>ch(localStorage.getItem(Ho));function X2(e){try{localStorage.setItem(Ho,uh(e))}catch{throw new Error("Browser storage is full or unavailable, so nothing was saved. Save a backup, then reset.")}}async function J2(e,{locks:t=(s=>(s=globalThis.navigator)==null?void 0:s.locks)(),read:n=pc,save:r=X2}={}){if(!t)throw new Error("Orgchain needs Web Locks: open it over HTTPS or on localhost.");return t.request(Ho,async()=>{const o=n(),i=await e(o);return i!==!1&&r(o),{lab:o,result:i}})}function mt(e,t=null){e.wallet||(e.wallet=vn.create());const n=t!=null&&t.length?e.chain.mineTo(t.map(r=>Ue(r.value,r.script))):e.chain.mine(e.wallet.script);return e.clock=hs({tempo:e.clock.tempo,nextAt:null}),n}function Ar(e,t=Date.now()){const{tempo:n,nextAt:r}=e.clock;typeof n=="number"&&e.chain.mempool.length&&r===null&&(e.clock={tempo:n,nextAt:t+n*1e3})}function Q2(e,t,n=Date.now(),r=null){e.clock=hs({tempo:t,nextAt:null}),t==="each"&&e.chain.mempool.length?mt(e,r):Ar(e,n)}function ev(e,t=Date.now(),n=null){const{tempo:r,nextAt:s}=e.clock;return typeof r!="number"||!e.chain.mempool.length?!1:s===null?(Ar(e,t),!0):t`found ${e.name}`,birth:e=>`birth ${e.name}`,award:e=>`award ${e.skill} ${e.belt}`,decide:e=>`decide ${e.title}`,make:e=>`make ${e.name}`,graduate:()=>"graduate",close:()=>"close"};function nv(e,t={}){if(!Object.hasOwn(wu,e))throw new Error("Unknown verb.");const n={op:e};for(const r of wu[e]){const s=t[r];typeof s=="string"&&s.trim()&&(n[r]=s.trim())}return n}const _t=e=>wn(To(new cs(e.chain)),{pending:!0});function fh(e,t,n,r){const s=nv(t,r),o=To(new cs(e.chain)),i={id:"check",status:"pending",height:null,metadata:s,parent:n??null,protocol:Ka},{ok:a,why:c}=wn([...o,i],{pending:!0}).log.at(-1);if(!a)throw new Error(`${c[0].toUpperCase()}${c.slice(1)}.`);return s}const na=Et+2*le+330,lh=1e5,gc=1e4,mc=(e,t=0)=>Et+2*le+(e==="birth"?1:e==="graduate"?Math.max(0,t-1):0)*le+330,rv=(e,t=0)=>mc(e,t)-330,wr=(e,t,n)=>e.chain.coins(t.script).find(r=>{var s;return!((s=r.inscriptions)!=null&&s.length)&&r.value>=n}),ra=e=>jt(e.txid,e.vout,e.value,e.scriptPubKey),dh=(e,t)=>(t.forEach((n,r)=>{e.vin[r].witness=[n.sign(e,void 0,r)]}),ie.encode(e).hex);function yc(e){e.keys??(e.keys=nc()),e.wallet||(e.wallet=vn.create()),wr(e,e.wallet,lh+le+330)||mt(e)}function hh(e,t,n=na,r=lh){if(t===e.wallet||wr(e,t,n))return;const s=wr(e,e.wallet,r+le+330),o=ie.create({vin:[ra(s)],vout:[Ue(r,t.script),Ue(s.value-r-le,e.wallet.script)]});e.chain.submitPackage([dh(o,[e.wallet])])}function xu(e,t,n,r,s){if(r===e.wallet||wr(e,r,s))return;const o=n&&Ee(e.keys,t,n);if(!o)return hh(e,r,s);uc(e,o,r.script,Math.max(gc,s),n.name)}function sv(e,t,n,r,s){if(r===e.wallet||wr(e,r,s))return!0;const o=n&&Ee(e.keys,t,n);return!o||eh(e,o,Math.max(gc,s))}function ph(e,t,n,r,s={}){var l,f;const o=r?t.nodes.get(r):null,i=o&&((l=rc(e,t,r))==null?void 0:l.wallet);if(n==="found"||!i)return"";const a=n==="graduate"?t.nodes.get(s.of):null,c=a&&Te(e.keys,t,a)?Ro(t,a.id).length:0;if(!sv(e,t,o,i,mc(n,c))){const d=t.nodes.get(o.parent);return`${o.name} has no test BTC for gas. ${d?`${d.name} can send some`:((f=e.mining)==null?void 0:f.rule)==="none"?"Fund it from the lab wallet":"It earns some each beat it mines"}`}const u=c?Ee(e.keys,t,a):null;return u&&!Qd(e.chain.coins(u.script).filter(d=>d.value-le>=Ie).map(d=>({value:d.value-le})),gc)?`${a.name} needs test BTC of its own to claim its new root. Send it some first`:""}function vu(e,t,n,r,s=n){const o=Uo(e.chain,t),i=wr(e,s,le+330),a=ie.create({vin:[ra(o),ra(i)],vout:[Ue(o.value,r.script),Ue(i.value-le,s.script)]});e.chain.submitPackage([dh(a,[n,s])])}function Eu(e,t,n,r,s){return new p1(e.chain,t).inscribe(tv[n](s),r??null,s,{metaprotocol:Ka})}const jo=(e,t)=>{var r;const n=_t(e);return Wd(e,n,((r=n.nodes.get(t))==null?void 0:r.root)??null)},Ko=(e,t)=>Wd(e,_t(e),t);function bc(e){var r,s,o;const t=_t(e),n=new Map;for(const i of t.nodes.values())for(const a of[Ee(e.keys,t,i),(r=Te(e.keys,t,i))==null?void 0:r.wallet])a&&n.set(Be(a.script),i.root);for(const i of[...e.chain.mempool].reverse()){const a=e.chain.transactions.get(ie.util.getTxid(i));if(a!=null&&a.inscription){const c=(s=t.log.find(u=>u.id===a.inscription.id))==null?void 0:s.root;if(c)return c;continue}for(const c of(a==null?void 0:a.tx.vin)??[]){const u=((o=e.chain.transactions.get(c.txid))==null?void 0:o.tx.vout[c.vout])??e.chain.imported(c.txid,c.vout),l=u&&n.get(Be(u.scriptPubKey));if(l)return l}}return null}function ku(e,t,n){var s;const r=rc(e,t,n);if(!(r!=null&&r.wallet))throw new Error(`No key in this lab holds ${((s=t.nodes.get(n))==null?void 0:s.name)??"that node"}'s inscription.`);return r.wallet}function gh(e,t,n,r){if(t==="found"){const l=fu(),f=O2(e.keys,l);hh(e,f,na,na);const d=Eu(e,f,t,null,r);return e.keys.roots[d]=l,d}const s=_t(e),o=ku(e,s,n),i=s.nodes.get(n),a=t==="graduate"?s.nodes.get(r.of):null,c=a&&Te(e.keys,s,a)?Ro(s,a.id).map(l=>[l.id,ku(e,s,l.id)]):[];xu(e,s,i,o,mc(t,c.length));const u=Eu(e,o,t,n,r);if(t==="birth"){const l=_t(e),f=Te(e.keys,l,l.nodes.get(u));f&&vu(e,u,o,f.wallet)}if(c.length){e.keys.adopted[a.id]=fu();const l=_t(e);for(const[f,d]of c){const h=Te(e.keys,l,l.nodes.get(f)).wallet;if(j2(e,Ee(e.keys,s,s.nodes.get(f)),Ee(e.keys,l,l.nodes.get(f))),f!==a.id){vu(e,f,d,h,o);continue}xu(e,l,l.nodes.get(f),h,le+330),Jx(e.chain,Xx(e.chain,f,h),d)}}return u}function ov(e,t,n,r,s=Date.now()){const o=fh(e,t,n,r),i=ph(e,_t(e),t,n??null,o);if(i)throw new Error(`${i}.`);yc(e);const a=gh(e,t,n??null,o);return e.clock.tempo==="each"?mt(e,jo(e,n??a)):Ar(e,s),a}function iv(e,t,n,r,s=Date.now()){const o=th(e,_t(e),t,n,r);return e.clock.tempo==="each"?mt(e,jo(e,t)):Ar(e,s),o}const av=(e,t,n,r,s=Date.now())=>oh(e,t,n,r,s);function cv(e,t,n=Date.now()){const r=V2(e,t);return e.clock.tempo==="each"?mt(e,jo(e,r.seller)):Ar(e,n),r}const uv=(e,t)=>q2(e,t);function fv(e,t,n,r=Date.now()){const s=_t(e),o=s.nodes.get(t);if(!o||o.root!==o.id)throw new Error("Pick a holding to fund.");if(o.status!=="active")throw new Error(`${o.name} is closed.`);const i=Ee(e.keys,s,o);if(!i)throw new Error("A holding that predates lab keys has no SegWit address to fund.");if(!Number.isSafeInteger(n)||net)throw new Error("Fund at most 50 test BTC at a time: no output on this chain is bigger than one block reward.");yc(e),eh(e,e.wallet,n)||mt(e);const a=uc(e,e.wallet,i.script,n,"The lab wallet","fund");return e.clock.tempo==="each"?mt(e,jo(e,t)):Ar(e,r),a}const sa="yolopreneur",lv=[[["found",null,{name:"yolopreneur"}]],[["birth","yolopreneur",{name:"well-known",kind:"org"}],["birth","yolopreneur",{name:"time",kind:"org"}]],[["send","yolopreneur",{to:"time",amount:40}],["send","yolopreneur",{to:"well-known",amount:10}],["birth","well-known",{name:"mailr",kind:"org"}],["birth","well-known",{name:"lineage",kind:"org"}],["birth","time",{name:"luna",kind:"agent"}],["birth","time",{name:"sol",kind:"agent"}],["birth","time",{name:"astra",kind:"agent"}]],[["send","well-known",{to:"lineage",amount:2}],["birth","time",{name:"docscope",kind:"org"}],["birth","time",{name:"dollhouse",kind:"org"}],["birth","time",{name:"doodleloop",kind:"org"}],["birth","time",{name:"hearthframe",kind:"org"}]],[["send","time",{to:"sol",amount:1}],["send","time",{to:"luna",amount:.5}],["award","time",{to:"sol",skill:"launch",belt:"green"}],["award","time",{to:"luna",skill:"post",belt:"white"}],["decide","yolopreneur",{title:"Every venture gets a page",why:".yolopreneur.lol, served from one pages branch."}],["make","sol",{name:"launch-kit",note:"The page, the post and the checklist every venture launches with."}]],[["graduate","well-known",{of:"lineage"}],["decide","lineage",{title:"Lineage gets its own org",why:"Its own repo on Teahub now, lineage.llc later: adopted, not derived."}],["offer","lineage",{item:"launch-kit",price:.1}]]];function dv(e){yc(e),e.chain.mempool.length&&mt(e);const t={},n={};for(const r of lv){for(const[s,o,i]of r){if(s==="send"){th(e,_t(e),t[o],t[i.to],i.amount*ts);continue}if(s==="offer"){oh(e,n[i.item],t[o],i.price*ts);continue}const a=Object.fromEntries(Object.entries(i).map(([l,f])=>[l,l==="to"||l==="of"?t[f]:f])),c=o?t[o]:null,u=gh(e,s,c,fh(e,s,c,a));(s==="found"||s==="birth")&&(t[i.name]=u),s==="make"&&(n[i.name]=u)}mt(e,Ko(e,t[sa]))}return t[sa]}const D=e=>document.getElementById(e);function A(e,t={},...n){const r=document.createElement(e);for(const[s,o]of Object.entries(t))o==null||o===!1||(s==="class"?r.className=o:s==="text"?r.textContent=o:s.startsWith("on")?r.addEventListener(s.slice(2),o):r.setAttribute(s,o===!0?"":String(o)));for(const s of n.flat(1/0))s!=null&&s!==!1&&s!==""&&r.append(s instanceof Node?s:String(s));return r}const Rr=(e,t)=>`${e} ${t}${e===1?"":"s"}`,fn=e=>e==="cued"?"cued":`beat ${e}`,hv=e=>new Date(e).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit"}),Su=e=>JSON.stringify(e,(t,n)=>typeof n=="bigint"?String(n):n,2),T={holding:null,node:null,event:null,tx:null,beat:null,verb:"birth",busy:!1,replay:null,closing:null,reveal:null};let q=gs(),wo=new cs(q.chain),on=[],F=wn([]),Fe=F,Re={owner:new Map,ledger:[],now:new Map,view:new Map},ln=new Map;const Xe=()=>q.chain.blocks.length,oa=()=>on.filter(e=>e.status==="pending").length,ia=e=>Re.ledger.filter(t=>t.beat===null&&t.kind===e).length,js=[["pay","cued send"],["deal","cued deal"],["fund","cued deposit"]],pv=()=>oa()+js.reduce((e,[t])=>e+ia(t),0),kn=e=>{var t;return((t=F.items.get(e))==null?void 0:t.name)??"an item"},aa=()=>q.offers??[],Ks=e=>Re.view.get(e)??0,mh=e=>Re.now.get(e)??0,X=(e,t=F)=>e?t.nodes.get(e)??null:null,gv=e=>{var t;return!!e&&(e.root===T.holding||((t=X(e.parent))==null?void 0:t.root)===T.holding)},wc=e=>Object.assign(T,{event:null,tx:null,closing:null,reveal:null},e),Br=e=>{wc(e),Do()};function ye(e,t=!1){const n=D("say");n.textContent=e,n.classList.toggle("bad",t)}function yh(){try{q=pc()}catch(e){q=gs(),ye(`This browser's saved lab could not be read (${e.message}) Load a backup, or reset to start over.`,!0)}xc()}function xc(){var n;wo=new cs(q.chain),on=To(wo),F=wn(on,{pending:!0}),T.beat!==null&&T.beat>=Xe()&&(T.beat=null),X(T.holding)||(T.holding=((n=F.roots.filter(r=>r.kind==="holding").at(-1)??F.roots.at(-1))==null?void 0:n.id)??null),gv(X(T.node))||(T.node=T.holding),T.event&&!F.log.some(r=>r.id===T.event)&&(T.event=null),Fe=T.beat===null?F:wn(on,{upTo:T.beat});const e=K2(q.keys,on,F),t=new Map(aa().map(r=>[r.txid,r]));Re={owner:e,ledger:Z2(q.chain,e,D2(q.keys,on,F),t),now:Qi(q.chain,e)},ln=new Map([...F.items.keys()].map(r=>{var s;return[r,((s=dc(q,on,F,r))==null?void 0:s.node.id)??null]})),Re.view=T.beat===null?Re.now:Qi(q.chain,e,T.beat),T.tx&&!Re.ledger.some(r=>r.key===T.tx)&&(T.tx=null),Do()}function xo(e){T.beat=e>=Xe()?null:Math.max(0,e),Fe=T.beat===null?F:wn(on,{upTo:T.beat}),Re.view=T.beat===null?Re.now:Qi(q.chain,Re.owner,T.beat),Do()}async function ot(e,t){if(T.busy)return!1;T.busy=!0,document.body.classList.add("busy");try{return q=(await J2(e,t)).lab,!0}catch(n){return ye((n==null?void 0:n.message)||String(n),!0),!1}finally{T.busy=!1,document.body.classList.remove("busy"),xc()}}async function Wn(e,t,n,r){let s=null;if(!await ot(i=>{s=ov(i,e,t,n)}))return!1;const o=wo.events.find(i=>i.id===s);return ye(r(s,(o==null?void 0:o.status)==="confirmed"?`at beat ${o.height}`:"cued for the next beat")),Do(),!0}async function bh(e){const t=[oa(),...js.map(([a])=>ia(a))],n=Xe();if(!await ot(e)||Xe()===n)return;const r=[oa(),...js.map(([a])=>ia(a))],s=["cued act",...js.map(([,a])=>a)],o=t.map((a,c)=>[a-r[c],s[c]]).filter(([a])=>a>0).map(([a,c])=>Rr(a,c)),i=mv(Re.ledger.filter(a=>a.kind==="mine"&&a.beat===Xe()));ye(`Beat ${Xe()}: ${o.length?`${o.join(" and ")} landed, and ${i}`:i}.`)}function mv(e){if(!e.length)return"the lab wallet earned 50 tBTC";const t=e.map(r=>{var s;return((s=X(r.to))==null?void 0:s.name)??"?"}),n=e.map(r=>sc(r.amount));return e.length===1?`${t[0]} earned ${ae(e[0].amount)}`:n.every(r=>r===n[0])?`${t.slice(0,-1).join(", ")} and ${t.at(-1)} earned ${n[0]} each`:e.map((r,s)=>`${t[s]}${s?"":" earned"} ${n[s]}`).join(", ")}function yv(){var t;if(((t=q.mining)==null?void 0:t.rule)==="last")return"the holding that acts";const e=ic(q,F);return e.length?e.length===1?e[0].name:`${e.length} holdings, split by hashrate`:"the lab wallet"}function Do(){wh(),xv(),vv(),Mo(),Ah(),vc()}function wh(){const e=pv(),{tempo:t}=q.clock;for(const r of document.querySelectorAll("[data-tempo]"))r.setAttribute("aria-pressed",String(String(t)===r.dataset.tempo));D("clock-beat").textContent=String(Xe()),D("clock-cued").textContent=e?`${e} cued · ${bv()}`:"nothing cued";const n=yv();D("clock-pays").textContent=`beats pay ${n}`,D("beat-now").title=`Beat now: ${e?"land what is cued, and ":""}pay ${n} 50 test BTC`}function bv(){const{tempo:e,nextAt:t}=q.clock;return e==="manual"?"waiting for Beat now":typeof e=="number"&&t?`next beat in ${Math.max(0,Math.ceil((t-Date.now())/1e3))}s`:"landing on the next beat"}const wv={split:"Every active holding mines: each beat's 50 tBTC splits by hashrate, set on each holding (0 sits out).",last:"The holding behind the latest act or send takes the whole beat; with nothing cued, Beat now pays the one you're working in. At a timed tempo it's a race for the next beat.",none:"Mainnet has no mining to join: beats pay the lab wallet, standing in for the world's miners. Fund a holding from it, the way you'd fund a seed from a wallet you already have."};function xv(){var a,c;const e=((a=q.mining)==null?void 0:a.rule)??"split",t=e==="split",n=t?ic(q,F):[],r=n.reduce((u,l)=>u+ir(q,l.id),0);D("holdings-list").replaceChildren(...F.roots.map(u=>{var b;const l=w1(F,u.id),f=u.id===T.holding,d=u.status==="active",h=n.some(w=>w.id===u.id)?ir(q,u.id)/r:0,p=[...F.nodes.values()].reduce((w,m)=>w+(m.root===u.id?mh(m.id):0),0),y=[u.graduated!==null&&`from ${((b=X(u.parent))==null?void 0:b.name)??"?"}${u.graduated==="cued"?", cued":` at beat ${u.graduated}`}`||fn(u.born),Rr(l.orgs,"org"),Rr(l.agents,"agent"),Rr(l.belts,"belt"),p>0&&sc(p),t&&d&&(h?`${Math.round(h*100)}% of each beat`:"not mining"),!d&&"closed"].filter(Boolean);return A("li",{},A("button",{type:"button",class:`hold${f?" on":""}${d?"":" gone"}`,"aria-pressed":String(f),onclick:()=>Br({holding:u.id,node:u.id})},A("span",{class:"hn",text:u.name})," ",A("span",{class:"hm",text:y.join(" · ")})),t&&d&&Ee(q.keys,F,u)&&Sv(u,ir(q,u.id)))}));for(const u of document.querySelectorAll("[data-rule]"))u.setAttribute("aria-pressed",String(e===u.dataset.rule));D("mining-note").textContent=wv[e];const s=F.roots.filter(u=>u.status==="active"&&Ee(q.keys,F,u)),o=D("fund-to"),i=o.value;D("f-fund").hidden=e!=="none"||!s.length||T.beat!==null,o.replaceChildren(...s.map(u=>A("option",{value:u.id,text:u.name}))),o.value=s.some(u=>u.id===i)?i:s.some(u=>u.id===T.holding)?T.holding:((c=s[0])==null?void 0:c.id)??"",D("fund-has").textContent=ae(q.wallet?lc(q.chain,q.wallet):0),D("holdings-empty").hidden=F.roots.length>0,D("holdings-sub").textContent=F.roots.length?String(F.roots.length):"",D("sample").disabled=F.roots.some(u=>u.name===sa&&u.status==="active")}function vv(){var r;const e=D("tree-rows"),t=X(T.holding);if(D("tree-sub").textContent=t?`${t.name} · ${T.beat===null?"now":`beat ${T.beat} of ${Xe()}`}`:"",!t)return e.replaceChildren(A("p",{class:"wait",text:"No holding yet. Found one, or load the yolopreneur sample."}));if(!Fe.nodes.has(t.id))return e.replaceChildren(A("p",{class:"wait",text:`${t.name} is founded at ${fn(t.born)}. Move the slider forward.`}));const n=e.contains(document.activeElement)?document.activeElement.dataset.id:null;e.replaceChildren(...b1(Fe,t.id).map(s=>s.type==="group"?A("div",{class:"row grp"},A("span",{class:"g","aria-hidden":"true",text:s.guide}),A("span",{class:"gl",text:s.label})):Ev(s))),n&&((r=e.querySelector(`[data-id="${n}"]`))==null||r.focus())}function Ev({node:e,guide:t,path:n,away:r}){const s=e.id===T.node,o=["row",s&&"on",e.status==="closed"&&"gone",e.born==="cued"&&"cue"].filter(Boolean).join(" ");return A("div",{class:o},A("button",{type:"button",class:"sel","data-id":e.id,"aria-pressed":String(s),onclick:()=>Br({node:e.id}),title:r?`${e.name} graduated into a holding of its own`:null},A("span",{class:"g","aria-hidden":"true",text:t}),A("span",{class:"p",text:`${n} `}),A("span",{class:"l",text:e.name})," ",A("span",{class:"v"},kv(e))))}function kv(e){return[e.kind==="agent"&&A("span",{class:"mk",text:"agent"}),e.edge==="adopted"&&A("span",{class:"mk ok",text:"graduated"}),e.status==="closed"&&A("span",{class:"mk bad",text:"closed"}),e.born==="cued"&&A("span",{class:"mk",text:"cued"}),...e.badges.map(xh),Ks(e.id)>0&&A("span",{class:"mk sats",title:`${ae(Ks(e.id))} at its SegWit address`,text:sc(Ks(e.id))})].filter(Boolean).flatMap((n,r)=>r?[" ",n]:[n])}const xh=e=>A("span",{class:`belt ${e.belt}`,title:`${e.skill}: ${e.belt} belt`},e.skill,A("span",{class:"sr",text:` (${e.belt} belt)`})),vh=(e,t)=>{for(let n=X(e.parent);n;n=X(n.parent))if(n.id===t.id)return!0;return!1},Eh=e=>[...F.nodes.values()].filter(t=>t.id!==e.id&&t.status==="active").map(t=>[t,(t.root===e.root?0:4)+(vh(t,e)?0:2)+(t.kind==="agent"?0:1)]).sort((t,n)=>t[1]-n[1]).map(([t])=>t),kh=e=>e.children.reduce((t,n)=>{const r=X(n);return r&&r.edge==="derived"&&r.status==="active"?t+1+kh(r):t},0);function Sv(e,t){const n=async r=>{await ot(s=>W2(s,e.id,r))&&ye(r?`${e.name} mines at hashrate ${r}.`:`${e.name} sits out of mining.`)};return A("span",{class:"rig"},A("span",{class:"rl",text:"hashrate"}),A("span",{class:"rn"},A("button",{type:"button",class:"rb","aria-label":`Lower ${e.name}'s hashrate`,disabled:t<=0,onclick:()=>n(t-1)},"−"),A("b",{text:String(t)}),A("button",{type:"button",class:"rb","aria-label":`Raise ${e.name}'s hashrate`,disabled:t>=9,onclick:()=>n(t+1)},"+")))}const Sh=e=>[...F.nodes.values()].filter(t=>t.id!==e.id&&t.status==="active").map(t=>[t,(t.root===e.root?0:4)+(vh(t,e)?0:2)+(t.kind==="agent"?0:1)]).sort((t,n)=>t[1]-n[1]).map(([t])=>t);function $v(e){const t=Ee(q.keys,F,e);return t?cc(q.chain.coins(t.script))[...F.items.values()].map(t=>[t,X(ln.get(t.id))]).filter(([,t])=>t&&t.id!==e.id&&t.status==="active").sort((t,n)=>(t[1].root===e.root?0:1)-(n[1].root===e.root?0:1)).map(([t])=>t);function _v(e){const t=Ee(q.keys,F,e);return t?_h(e).length?q.chain.coins(t.script).some(n=>n.value>=le+Ie||n.value===le)?"":$h(e,"to pay with"):"Nobody else holds an item yet. Items come from Make":"This holding predates lab keys, so it has no SegWit address to pay from"}function Av(e){const t=X(e.parent),n=e.status==="closed"?`${e.name} is closed`:"",r=(s,o=e.id,i={})=>ph(q,F,s,o,i);return{birth:n||(e.kind==="agent"?"Agents do not give birth":r("birth")),award:n||(e.kind==="agent"?"Agents do not award belts":Eh(e).length?r("award"):"There is nobody else to award yet"),decide:n||r("decide"),make:n||r("make"),send:n||$v(e),offer:n||_v(e),graduate:n||(t?e.kind!=="org"?"Only orgs graduate":e.edge==="adopted"?`${e.name} has already graduated`:t.status!=="active"?`${t.name} is closed`:r("graduate",t.id,{of:e.id}):"A holding has no parent to graduate from"),close:n||r("close")}}function Mo(){const e=X(T.node),t=T.beat!==null;if(D("act-none").hidden=!!e,D("act-past").hidden=!e||!t,D("act-on").hidden=!e||t,D("act-sub").textContent=(e==null?void 0:e.name)??"",D("past-beat").textContent=String(T.beat??""),!e||t)return;const n=Av(e),r=X(e.parent);for(const h of document.querySelectorAll("[data-verb]"))h.setAttribute("aria-pressed",String(h.dataset.verb===T.verb)),h.classList.toggle("off",!!n[h.dataset.verb]);for(const h of document.querySelectorAll("form[data-form]"))h.hidden=h.dataset.form!==T.verb||!!n[T.verb];D("act-why").textContent=n[T.verb]?`${n[T.verb]}.`:"";for(const h of document.querySelectorAll("#act-on [data-name]"))h.textContent=e.name;for(const h of document.querySelectorAll("#act-on [data-parent]"))h.textContent=(r==null?void 0:r.name)??"";const s=h=>h.map(p=>`${p.value}=${p.textContent}`).join("|"),o=[[D("award-to"),Eh(e).map(h=>[h.id,`${gr(F,h.id)}${h.kind==="agent"?" (agent)":""}`])],[D("send-to"),Sh(e).map(h=>[h.id,`${gr(F,h.id)}${h.kind==="agent"?" (agent)":""}`])],[D("offer-item"),_h(e).map(h=>[h.id,`${h.name} · held by ${kt(ln.get(h.id))}`])]];for(const[h,p]of o){const g=h.value,y=p.map(([b,w])=>A("option",{value:b,text:w}));s(y)!==s([...h.options])&&(h.replaceChildren(...y),y.some(b=>b.value===g)&&(h.value=g))}for(const h of["send-has","offer-has"])D(h).textContent=ae(mh(e.id));D("graduate-go").textContent=`Graduate ${e.name}`;const i=T.verb==="graduate"?r:e,a=i&&Te(q.keys,F,i),c=T.verb==="send"||T.verb==="offer",u=a&&(c?`${a.from} · ${Ee(q.keys,F,i).path}`:a.path);D("act-key").textContent=!i||n[T.verb]?"":a?`Signs as ${i.name}: ${u}`:"Signs with the lab wallet: this holding predates lab keys.";const l=T.verb==="graduate"&&Te(q.keys,F,e)?Ro(F,e.id).length:0;D("act-gas").textContent=!i||n[T.verb]||!a?"":T.verb==="send"?`Fee: ${le} sats, from ${e.name}'s balance.`:T.verb==="offer"?`Fee: ${le} sats, from ${e.name}'s balance, paid only if the holder accepts.`:`Gas: ${rv(T.verb,l).toLocaleString("en-US")} sats from ${i.name}'s tank (${ae(lc(q.chain,a.wallet))}), which tops up from its balance.${l?` ${e.name} pays ${le} more, from its own money, to claim its new root.`:""}`;const f=kh(e),d=T.closing===e.id;D("close-note").textContent=f?`Closing ${e.name} spends it for the last time, and its ${Rr(f,"derived descendant")} close with it. Graduated children hold their own roots and stay open.`:`Closing ${e.name} spends its inscription for the last time. Nothing can act through it afterwards.`,D("close-go").textContent=d?`Yes, close ${e.name}`:`Close ${e.name}`,D("close-keep").hidden=!d}function Ah(){const e=D("inspect-body"),t=T.event?F.log.find(o=>o.id===T.event):null;if(t)return D("inspect-sub").textContent="event",e.replaceChildren(...Dv(t));const n=T.tx?Re.ledger.find(o=>o.key===T.tx):null;if(n)return D("inspect-sub").textContent="money",e.replaceChildren(...Mv(n));const r=X(T.node);if(D("inspect-sub").textContent=(r==null?void 0:r.kind)??"",!r)return e.replaceChildren(A("p",{class:"note pad",text:"Select a node in the tree, or an event in the timeline."}));const s=X(T.node,Fe);if(!s)return e.replaceChildren(A("p",{class:"note pad",text:`${r.name} is not born yet at beat ${T.beat}.`}));e.replaceChildren(...Bv(s))}const rs=([e,t,n])=>A("div",{class:"f"},A("dt",{text:e}),A("dd",{},t,n&&A("span",{class:"fn",text:n})));function Bv(e){const t=X(e.parent,Fe),n=[["Born",e.born==="cued"?"cued for the next beat":`beat ${e.born}`],t&&["Parent",`${t.name} · ${e.kind} ${e.index}'`],t&&["Edge",e.edge==="adopted"?`adopted at ${fn(e.graduated)}: it holds its own root`:`derived: ${t.name} holds its seed`],t&&e.root===e.id&&["Holding",A("span",{},"its own, since it graduated",e.id!==T.holding&&A("button",{type:"button",class:"btn sm open",onclick:()=>{Br({holding:e.id,node:e.id}),Cv()}},`Open ${e.name}`))],e.closed!==null&&["Closed",fn(e.closed)],["Children",e.children.length?e.children.map(r=>{var s;return(s=X(r,Fe))==null?void 0:s.name}).join(", "):"none yet"],Ee(q.keys,Fe,e)&&["Balance",ae(Ks(e.id)),`Test BTC at its SegWit address${T.beat===null?"":`, as of beat ${T.beat}`}.`],T.beat===null&&Te(q.keys,F,e)&&["Gas tank",ae(lc(q.chain,Te(q.keys,F,e).wallet)),"Plain coins at its Taproot key. Its acts burn their fees from here, and the tank tops up from its balance, 0.0001 tBTC at a time."],["Inscription",e.id]].filter(Boolean);return[A("div",{class:"ih"},A("p",{class:"eyebrow",text:gr(Fe,e.id)}),A("h3",{class:"it",text:e.name}),A("div",{class:"chips"},A("span",{class:"chip",text:e.kind}),A("span",{class:`chip ${e.status==="active"?"ok":"bad"}`,text:e.status}),e.edge==="adopted"&&A("span",{class:"chip ok",text:"graduated"}),e.born==="cued"&&A("span",{class:"chip",text:"cued"}))),A("div",{class:"ib"},A("dl",{class:"fl"},n.map(rs)),e.badges.length>0&&A("div",{},A("p",{class:"lab",text:"Belts"}),A("ul",{class:"list"},e.badges.map(r=>{var s;return A("li",{},xh(r),A("span",{class:"when",text:` from ${((s=X(r.by))==null?void 0:s.name)??"?"}, ${fn(r.beat)}`}))}))),e.decisions.length>0&&A("div",{},A("p",{class:"lab",text:"Decisions"}),A("ul",{class:"list"},e.decisions.map(r=>A("li",{},A("b",{text:r.title}),r.why&&` · ${r.why}`,A("span",{class:"when",text:` (${fn(r.beat)})`}))))),Tv(e),Pv(e),Rv(e))]}function Tv(e){const t=(a,c)=>c.length>0&&A("div",{},A("p",{class:"lab",text:a}),A("ul",{class:"list items"},c)),n=(a,c)=>A("li",{},A("b",{text:a.name}),a.note&&` · ${a.note}`,A("span",{class:"when",text:` (${c})`}));if(T.beat!==null)return t("Made",e.made.map(a=>Fe.items.get(a)).filter(Boolean).map(a=>n(a,fn(a.beat))));const r=a=>`made${a.maker===e.id?"":` by ${kt(a.maker)}`}${a.beat==="cued"?", cued":` at beat ${a.beat}`}`,s=[...F.items.values()].filter(a=>ln.get(a.id)===e.id).map(a=>{const c=n(a,r(a)),u=aa().filter(l=>l.item===a.id&&l.seller===e.id&&ta(q,F,l)==="open");return u.length&&c.append(A("ul",{class:"bids"},u.map(l=>A("li",{},A("span",{text:`${kt(l.buyer)} offers ${l.price?ae(l.price):"nothing, a free claim"}`}),e.status==="active"&&A("button",{type:"button",class:"btn sm","aria-label":`Accept ${kt(l.buyer)}'s offer for ${a.name}`,onclick:()=>Ov(l)},"Accept"))))),c}),o=e.made.map(a=>F.items.get(a)).filter(a=>a&&ln.get(a.id)!==e.id).map(a=>n(a,ln.get(a.id)?`now held by ${kt(ln.get(a.id))}`:"held outside this lab")),i=aa().filter(a=>a.buyer===e.id&&ta(q,F,a)!=="done").map(a=>{const c=hc(q,F,a);return A("li",{},A("b",{text:a.price?ae(a.price):"nothing"}),` for ${kn(a.item)}`,A("span",{class:"when",text:c?` (stale: ${c})`:` (open until ${kt(a.seller)} accepts)`}),A("button",{type:"button",class:"btn sm","aria-label":`Withdraw the offer for ${kn(a.item)}`,onclick:()=>Iv(a)},"Withdraw"))});return[t("Items",s),t("Made, held elsewhere",o),t("Offers made",i)]}const kt=e=>{const t=X(e);return t?t.root===T.holding?t.name:gr(F,e):"?"};async function Ov(e){const t=kn(e.item),n=kt(e.buyer),r=kt(e.seller);if(!await ot(o=>{cv(o,e.txid)}))return;const s=Re.ledger.find(o=>o.txid===e.txid);ye(`${r} accepted: ${t} goes to ${n}${e.price?` for ${ae(e.price)}`:", free"}, ${s!=null&&s.beat?`at beat ${s.beat}`:"cued for the next beat"}.`)}async function Iv(e){const t=kn(e.item),n=kt(e.buyer);await ot(r=>{uv(r,e.txid)})&&ye(`${n} withdrew its offer for ${t}.`)}function Cv(){const e=document.querySelector(".tree-blk").getBoundingClientRect().top+scrollY-document.querySelector(".clock").offsetHeight-12;e(n.to===e.id||n.from===e.id)&&(T.beat===null||n.beat!==null&&n.beat<=T.beat)).slice(-6).reverse();return t.length>0&&A("div",{},A("p",{class:"lab",text:"Money"}),A("ul",{class:"list"},t.map(n=>A("li",{},A("b",{text:Uv(n,e.id)}),A("span",{class:"when",text:` (${fn(n.beat??"cued")})`})))))}function Uv(e,t){const n=r=>{var s;return((s=X(r))==null?void 0:s.name)??"?"};if(e.kind==="mine")return`+${ae(e.amount)}, a beat's reward`;if(e.kind==="move")return`${ae(e.amount)} moved to its new key, after a ${e.fee}-sat fee`;if(e.kind==="gas")return`−${ae(e.amount)} into its gas tank, and a ${e.fee}-sat fee`;if(e.kind==="fund")return`+${ae(e.amount)} from the lab wallet`;if(e.kind==="deal"){const r=kn(e.item);return e.to===t?e.amount?`+${ae(e.amount)} from ${n(e.from)} for ${r}`:`${r} to ${n(e.from)}, free`:e.amount?`−${ae(e.amount)} to ${n(e.to)} for ${r}, and a ${e.fee}-sat fee`:`${r} from ${n(e.to)}, free but for a ${e.fee}-sat fee`}return e.to===t?`+${ae(e.amount)} from ${n(e.from)}`:`−${ae(e.amount)} to ${n(e.to)}, and a ${e.fee}-sat fee`}function Bh(e){const t=n=>{const r=X(n);return r?r.root===T.holding?r.name:gr(F,n):"?"};return e.kind==="mine"?`${ae(e.amount)} → ${t(e.to)}`:e.kind==="move"?`${ae(e.amount)} → ${t(e.to)}'s new key`:e.kind==="gas"?`${ae(e.amount)} → ${t(e.to)}'s gas tank`:e.kind==="fund"?`${ae(e.amount)} lab wallet → ${t(e.to)}`:e.kind==="deal"?`${kn(e.item)} ${t(e.to)} → ${t(e.from)}, ${e.amount?`for ${ae(e.amount)}`:"free"}`:`${ae(e.amount)} ${t(e.from)} → ${t(e.to)}`}const Nv={own:"its own key",lab:"the lab wallet",parent:"its parent's key (its handoff is cued)",other:"a key outside this lab"},Lv={ssh:"shell access, certified by the CA",git:"commit signing",dkim:"mail signing",wg:"WireGuard peer key","ssh-ca":"SSH certificate authority",mtls:"TLS identity between nodes",noise:"Headscale noise key"};function Rv(e){const t=Te(q.keys,Fe,e),n=rc(q,F,e.id),r=["Held now by",n?Nv[n.who]:"nobody: its inscription has been spent"];if(!t)return A("div",{class:"keys"},A("p",{class:"lab",text:"Keys"}),A("dl",{class:"fl"},[["Signs with","the lab wallet: this holding predates lab keys, so it has no addresses, leaves or secrets of its own"],r].map(rs)));const s=e.kind==="agent",o=I2(q.keys,Fe,e),i=C2(q.keys,Fe,e),a=i.map(([,,d])=>d).filter(Boolean),c="Reset the lab for standard BIP-86 keys.",u=s?"Holds this seat's inscription, and inscriptions sent to it land here.":"Holds this org's inscription and signs its acts. Inscriptions sent to it land here.",l={bip86:`BIP-86 at ${o.taproot.path}. ${u}`,tapkey:`Its npub's key with the BIP-86 tweak, the way v1.2 keyed this lab. ${u} ${c}`,wallet:`An untweaked key at ${o.taproot.path}, the way v1.1 keyed this lab. ${u} ${c}`}[t.scheme],f=[["Taproot",o.taproot.address,l],["SegWit",o.segwit.address,`BIP-84 at ${o.segwit.path}. Its money: ${e.kind==="holding"?"the beats it earns land here, and ":""}sends come and go here.`],["Tapkey",o.tapkey.address,"Its npub as a Taproot address (its nostr key with the BIP-86 tweak), so the npub alone finds it. Nostr secrets get pasted into clients, so treat it as an inbox."],["npub",o.npub.address,`NIP-06 at ${o.npub.path}. Its nostr name; the leaves below hang off it.`],["From",`${t.from} · account ${t.account}`],r];return A("div",{class:"keys"},A("p",{class:"lab",text:"Keys"}),A("dl",{class:"fl"},f.map(rs)),A("p",{class:"lab"},"Leaves",A("span",{text:` · HKDF-SHA256 from its ${s?"nostr secret":"seed"}`})),A("ul",{class:"list leaves"},i.map(([d,h])=>A("li",{},A("b",{text:d}),A("span",{class:"when",text:` ${Lv[d]}`}),A("code",{text:h})))),Hr(s?"Public lines to paste":"CA key for TrustedUserCAKeys",a.join(` - -`)),jv(e,t))}function Hr(e,t,n=t){const r=A("pre",{text:n}),s=A("button",{type:"button",class:"cp","aria-label":`Copy ${e}`,onclick:()=>Hv(t,s,r)},"Copy");return A("div",{class:"code"},A("div",{class:"code-h cph"},A("span",{text:e}),s),r)}async function Hv(e,t,n){const r=s=>{t.textContent=s,setTimeout(()=>{t.textContent="Copy"},1400)};try{await navigator.clipboard.writeText(e),r("Copied")}catch{getSelection().selectAllChildren(n),r("Selected")}}function jv(e,t){var a;const n=T.reveal===e.id,r=n&&R2(q.keys,Fe,e),s=X(e.parent,Fe),o=()=>{var c;T.reveal=n?null:e.id,Ah(),(c=D("reveal"))==null||c.focus()},i=(a=r==null?void 0:r.seed)==null?void 0:a.mnemonic.split(" ");return A("div",{class:"secret"},A("div",{class:"hz"},A("span",{class:"hz-l",text:"Secret · stays in this tab"}),A("button",{type:"button",class:"btn sm",id:"reveal","aria-expanded":String(n),onclick:o},n?"Hide":"Reveal")),r&&A("div",{class:"sb"},r.seed?Hr(`Seed · ${r.seed.from}`,r.seed.mnemonic,i.map((c,u)=>`${String(u+1).padStart(2,"0")} ${c}`).reduce((c,u,l)=>(l%3?c[c.length-1].push(u):c.push([u]),c),[]).map(c=>c.join(" ")).join(` -`)):A("p",{class:"note",text:`A seat has no seed of its own: these are account ${t.account} of ${(s==null?void 0:s.name)??"its org"}'s seed.`}),r.account.map(([c,u,l])=>Hr(`${c} · ${u}`,l)),r.leaves.map(([c,u,l])=>Hr(`${c} · ${u}`,l))))}function Kv(e){var i,a,c;const t=(a=(i=q.chain.transactions.get(e.id.slice(0,-2)))==null?void 0:i.tx.vin.find(u=>{var l;return((l=u.witness)==null?void 0:l.length)===3}))==null?void 0:a.witness;if(!t)return"?";const n=ja(t).pubkey,r=X(e.parent),s=e.op==="found"?X(e.node):null,o=[[s&&Te(q.keys,F,s),`${s==null?void 0:s.name}'s root`],[r&&Te(q.keys,F,r),`${r==null?void 0:r.name}'s key`],[(r==null?void 0:r.edge)==="adopted"&&Te(q.keys,F,{...r,edge:"derived"}),`${r==null?void 0:r.name}'s derived key, from before it graduated`]];for(const[u,l]of o)if(u&&u.wallet.pubkey===n)return l;return((c=q.wallet)==null?void 0:c.pubkey)===n?"the lab wallet":`a key outside this lab (${n.slice(0,12)}…)`}function Dv(e){var o,i,a;const t=wo.events.find(c=>c.id===e.id),n=(i=(o=q.chain.transactions.get(e.id.slice(0,-2)))==null?void 0:o.inscription)==null?void 0:i.text,r=[["When",e.pending?"cued for the next beat":`beat ${e.beat}`],["Authorized by",e.parent?`${((a=X(e.parent))==null?void 0:a.name)??"an unknown inscription"}, whose inscription this event spent`:"nothing: a founding has no parent"],["Signed by",Kv(e)],["Inscription",e.id],n&&["Body",n],(t==null?void 0:t.block)&&["Block",t.block]].filter(Boolean),s=t&&{id:t.id,status:t.status,height:t.height,block:t.block,parent:t.parent??null,metaprotocol:t.metaprotocol??null,contentType:t.contentType,sat:t.sat,location:t.location};return[A("div",{class:"ih"},A("p",{class:"eyebrow",text:`${e.op} · ${e.pending?"cued":`beat ${e.beat}`}`}),A("h3",{class:"it",text:Hl(e,F)}),A("div",{class:"chips"},A("span",{class:"chip",text:(t==null?void 0:t.protocol)??"?"}),A("span",{class:`chip ${e.ok?"ok":"bad"}`,text:e.ok?"applied":"rejected"})),!e.ok&&A("p",{class:"idesc",text:"The reducer rejected this event. It stays on the chain, but it does not change the tree."})),A("div",{class:"ib"},A("dl",{class:"fl"},r.map(rs)),A("div",{class:"code"},A("p",{class:"code-h",text:"Metadata · CBOR, tag 5"}),A("pre",{text:Su(e.meta)})),s&&A("div",{class:"code"},A("p",{class:"code-h",text:"Raw index entry"}),A("pre",{text:Su(s)})))]}function Mv(e){const t=i=>{var a;return((a=X(i))==null?void 0:a.name)??"a key outside this lab"},n=q.chain.transactions.get(e.txid),r=e.kind==="deal",s=e.kind==="fund",o=[["When",e.beat===null?"cued for the next beat":`beat ${e.beat}`],r&&["Item",`${kn(e.item)}, an inscription: from ${t(e.to)}'s Taproot key to ${t(e.from)}'s`],["From",e.kind==="mine"?"its share of the beat's block reward (the coinbase)":s?"the lab wallet, standing in for a wallet you already have":`${t(e.from)}'s SegWit address${e.kind==="move"?", from before it graduated":""}`],["To",e.kind==="gas"?`${t(e.to)}'s gas tank, at its Taproot key`:r&&!e.amount?"nobody: a free claim pays no price":`${t(e.to)}'s ${e.kind==="move"?"new ":""}SegWit address`],[r?"Price":"Amount",r&&!e.amount?"nothing":ae(e.amount)],e.kind!=="mine"&&["Fee",`${e.fee} sats, retired: this toy chain pays no fees to miners`],e.change>0&&["Change",`${ae(e.change)} back to ${s?"the lab wallet":t(e.from)}`],["Signed by",e.kind==="mine"?"nobody: a coinbase spends nothing":s?"the lab wallet's Taproot key":r?`${t(e.from)}'s SegWit key (SIGHASH_ALL) when it made the offer, then ${t(e.to)}'s Taproot key when it accepted`:`${t(e.from)}'s SegWit key (BIP-143, SIGHASH_ALL)`],["Transaction",e.txid]].filter(Boolean);return[A("div",{class:"ih"},A("p",{class:"eyebrow",text:`${e.kind} · ${e.beat===null?"cued":`beat ${e.beat}`}`}),A("h3",{class:"it",text:Bh(e)}),A("div",{class:"chips"},A("span",{class:"chip",text:"test BTC"}),A("span",{class:`chip${e.beat===null?"":" ok"}`,text:e.beat===null?"cued":"confirmed"}))),A("div",{class:"ib"},A("dl",{class:"fl"},o.map(rs)),n&&Hr("Raw transaction",n.raw))]}function vc(){const e=Xe(),t=D("beat"),n=X(T.holding);t.max=String(e),t.value=String(T.beat??e),t.disabled=e===0,D("beat-label").textContent=T.beat===null?`Now · beat ${e}`:`Beat ${T.beat} of ${e}`,D("replay").textContent=T.replay?"Stop":"Replay",D("replay").disabled=!n||e===0,D("to-now").disabled=T.beat===null,D("timeline-sub").textContent=(n==null?void 0:n.name)??"";const r=new Map,s=new Map([...q.chain.transactions.keys()].map((a,c)=>[a,c])),o=(a,c)=>r.set(a,[...r.get(a)??[],c]);for(const a of F.log)a.roots.includes(T.holding)&&o(a.pending?"cued":a.beat,{e:a,at:s.get(a.id.slice(0,-2))??0});for(const a of Re.ledger)[a.to,a.from].some(c=>{var u;return c&&((u=X(c))==null?void 0:u.root)===T.holding})&&o(a.beat??"cued",{m:a,at:s.get(a.txid)??0});const i=[...r.keys()].sort((a,c)=>a==="cued"?-1:c==="cued"?1:c-a);if(!i.length)return D("timeline-list").replaceChildren(A("li",{class:"wait",text:n?"Nothing yet.":"Found a holding to start its timeline."}));D("timeline-list").replaceChildren(...i.map(a=>{const c=a==="cued"?null:q.chain.blocks[a-1],u=T.beat!==null&&(a==="cued"||a>T.beat),l=T.beat!==null&&a===T.beat;return A("li",{class:`beat${u?" later":""}${l?" now":""}`},A("p",{class:"bh"},A("span",{class:"bn",text:a==="cued"?"Cued":`Beat ${a}`}),A("span",{class:"bt",text:c?hv(c.time):q.clock.tempo==="manual"?"waiting for Beat now":"landing on the next beat"})),A("ol",{class:"evs"},r.get(a).sort((f,d)=>f.at-d.at).map(({e:f,m:d})=>d?Vv(d):Zv(f))))}))}function Zv(e){const[t,...n]=Hl(e,F).split(" ");return A("li",{},A("button",{type:"button",class:`ev${e.ok?"":" bad"}${e.id===T.event?" on":""}`,"aria-pressed":String(e.id===T.event),onclick:()=>Br({event:e.id,node:e.node??T.node})},A("span",{class:"op",text:e.ok?t:`✕ ${t.replace(/:$/,"")}`})," ",A("span",{class:"es",text:n.join(" ")})))}const Vv=e=>A("li",{},A("button",{type:"button",class:`ev money${e.kind==="gas"?" gas":""}${e.kind==="deal"?" deal":""}${e.key===T.tx?" on":""}`,"aria-pressed":String(e.key===T.tx),onclick:()=>{var t;return Br({tx:e.key,node:((t=X(e.to))==null?void 0:t.root)===T.holding?e.to:T.node})}},A("span",{class:"op",text:e.kind})," ",A("span",{class:"es",text:Bh(e)})));D("f-found").addEventListener("submit",async e=>{e.preventDefault();const t=e.currentTarget,n=Bo(t.elements.name.value);if(!n)return ye("Name the holding: lowercase letters, digits and hyphens.",!0);await Wn("found",null,{name:n},(r,s)=>(wc({holding:r,node:r}),`${n} is founded, ${s}.`))&&t.reset()});D("sample").addEventListener("click",async()=>{let e=null;ye("Rehearsing the yolopreneur tree over six beats…"),await ot(t=>{e=dv(t)})&&(Br({holding:e,node:e}),ye("Loaded the yolopreneur sample: six beats of history, ending on lineage's open offer for sol's launch-kit. Press Replay to watch it grow."))});D("f-birth").addEventListener("submit",async e=>{e.preventDefault();const t=e.currentTarget,n=X(T.node),r=Bo(t.elements.name.value),s=t.elements.kind.value;if(!r)return ye("Name the child: lowercase letters, digits and hyphens.",!0);await Wn("birth",n.id,{name:r,kind:s},(o,i)=>`${r} is born to ${n.name}, ${i}.`)&&(t.elements.name.value="")});D("f-award").addEventListener("submit",async e=>{e.preventDefault();const t=e.currentTarget,n=X(T.node),r=t.elements.to.value,s=Bo(t.elements.skill.value),o=t.elements.belt.value;if(!s)return ye("Name the skill, for example launch.",!0);await Wn("award",n.id,{to:r,skill:s,belt:o},(i,a)=>{var c;return`${(c=X(r))==null?void 0:c.name} holds a ${o} belt in ${s}, ${a}.`})&&(t.elements.skill.value="")});D("f-decide").addEventListener("submit",async e=>{e.preventDefault();const t=e.currentTarget,n=X(T.node),r=t.elements.title.value.trim(),s=t.elements.why.value.trim();if(!r)return ye("A decision needs a title.",!0);await Wn("decide",n.id,{title:r,why:s},(o,i)=>`${n.name} decided “${r}”, ${i}.`)&&t.reset()});D("f-send").addEventListener("submit",async e=>{var a;e.preventDefault();const t=e.currentTarget,n=X(T.node),r=t.elements.to.value,s=oc(t.elements.amount.value);if(s===null)return ye("Write an amount in test BTC, for example 1.5 (at most eight decimals).",!0);let o=null;if(!await ot(c=>{o=iv(c,n.id,r,s)}))return;const i=Re.ledger.find(c=>c.txid===o);ye(`${n.name} sent ${ae(s)} to ${((a=X(r))==null?void 0:a.root)===n.root?X(r).name:gr(F,r)}, ${i!=null&&i.beat?`at beat ${i.beat}`:"cued for the next beat"}.`),t.elements.amount.value=""});D("f-make").addEventListener("submit",async e=>{e.preventDefault();const t=e.currentTarget,n=X(T.node),r=Bo(t.elements.name.value),s=t.elements.note.value.trim();if(!r)return ye("Name the item: lowercase letters, digits and hyphens.",!0);await Wn("make",n.id,{name:r,note:s},(o,i)=>`${n.name} made ${r}, ${i}.`)&&t.reset()});D("f-offer").addEventListener("submit",async e=>{e.preventDefault();const t=e.currentTarget,n=X(T.node),r=D("offer-item").value,s=oc(t.elements.price.value);if(s===null)return ye("Write a price in test BTC, for example 0.1, or 0 for a free claim.",!0);const o=kt(ln.get(r)),i=kn(r);await ot(a=>{av(a,r,n.id,s)})&&(ye(`${n.name} offers ${s?ae(s):"nothing"} for ${i}. The offer stands until ${o} accepts it.`),t.elements.price.value="")});D("send-max").addEventListener("click",()=>{const e=X(T.node),t=e&&Ee(q.keys,F,e);t&&(D("send-amount").value=Fd(cc(q.chain.coins(t.script))))});D("f-graduate").addEventListener("submit",async e=>{e.preventDefault();const t=X(T.node),n=X(t.parent);await Wn("graduate",n.id,{of:t.id},(r,s)=>(wc({node:t.id}),`${t.name} graduates from ${n.name}, ${s}. It's a holding of its own now.`))});D("f-close").addEventListener("submit",async e=>{e.preventDefault();const t=X(T.node);if(T.closing!==t.id)return T.closing=t.id,Mo(),D("close-go").focus();T.closing=null,await Wn("close",t.id,{},(n,r)=>`${t.name} is closed, ${r}.`)});D("close-keep").addEventListener("click",()=>{T.closing=null,Mo(),D("close-go").focus()});for(const e of document.querySelectorAll("[data-verb]"))e.addEventListener("click",()=>{T.verb=e.dataset.verb,T.closing=null,Mo()});for(const e of document.querySelectorAll("[data-rule]"))e.addEventListener("click",async()=>{const t=e.dataset.rule;await ot(n=>Y2(n,t))&&ye({split:"Each beat splits across the holdings that mine, by hashrate.",last:"Each beat goes whole to the holding that acts.",none:"Mainnet: no holding mines. Beats pay the lab wallet, and you fund holdings from it."}[t])});D("f-fund").addEventListener("submit",async e=>{var i;e.preventDefault();const t=e.currentTarget,n=t.elements.to.value,r=oc(t.elements.amount.value);if(r===null)return ye("Write an amount in test BTC, for example 5 (at most eight decimals).",!0);let s=null;if(!await ot(a=>{s=fv(a,n,r)}))return;const o=Re.ledger.find(a=>a.txid===s);ye(`The lab wallet funded ${(i=X(n))==null?void 0:i.name} with ${ae(r)}, ${o!=null&&o.beat?`at beat ${o.beat}`:"cued for the next beat"}.`),t.elements.amount.value=""});for(const e of document.querySelectorAll("[data-tempo]"))e.addEventListener("click",async()=>{const t=e.dataset.tempo,n=/^\d+$/.test(t)?Number(t):t;await ot(r=>Q2(r,n,Date.now(),Ko(r,bc(r)??T.holding)))&&ye(t==="each"?"Each act is its own beat.":t==="manual"?"Acts are cued until you press Beat now.":`Acts are cued and land together on the next beat, at most ${t} seconds after the first.`)});D("beat-now").addEventListener("click",()=>bh(e=>{mt(e,Ko(e,bc(e)??T.holding))}));setInterval(()=>{wh();const{tempo:e,nextAt:t}=q.clock;T.busy||document.hidden||typeof e!="number"||!q.chain.mempool.length||t&&Date.now()ev(n,Date.now(),Ko(n,bc(n)??T.holding)))},1e3);addEventListener("storage",e=>{(e.key===Ho||e.key===null)&&yh()});function ms(){T.replay&&(clearInterval(T.replay),T.replay=null,vc())}function qv(){const e=X(T.holding);if(!(!e||!Xe())){if(xo(typeof e.born=="number"?e.born:Xe()),T.beat===null)return ye("Nothing to replay yet: this holding has one beat of history.");T.replay=setInterval(()=>{(T.beat===null||T.beat+1>=Xe())&&ms(),xo(T.beat===null?Xe():T.beat+1)},800),vc()}}D("beat").addEventListener("input",e=>{ms(),xo(Number(e.target.value))});D("replay").addEventListener("click",()=>T.replay?ms():qv());for(const e of["to-now","past-now"])D(e).addEventListener("click",()=>{ms(),xo(Xe())});const Ei=["system","light","dark"],Th=()=>{D("theme").textContent=`Theme: ${document.documentElement.dataset.theme??"system"}`};D("theme").addEventListener("click",()=>{const e=Ei[(Ei.indexOf(document.documentElement.dataset.theme??"system")+1)%Ei.length];e==="system"?delete document.documentElement.dataset.theme:document.documentElement.dataset.theme=e;try{e==="system"?localStorage.removeItem("orgchain-theme"):localStorage.setItem("orgchain-theme",e)}catch{}Th()});function Oh(e,t,n){const r=D("confirm");r.replaceChildren(A("span",{text:e}),A("button",{type:"button",class:"btn sm danger",text:t,onclick:()=>{r.hidden=!0,n()}}),A("button",{type:"button",class:"btn sm",text:"Cancel",onclick:()=>{r.hidden=!0}})),r.hidden=!1,r.querySelector("button").focus()}const zv={read:()=>{try{return pc()}catch{return gs()}}};async function Ih(e,t){ms(),await ot(n=>{Object.assign(n,e())},zv)&&(Object.assign(T,{holding:null,node:null,event:null,tx:null,beat:null,closing:null}),xc(),ye(t))}D("save").addEventListener("click",()=>{const e=A("a",{href:URL.createObjectURL(new Blob([uh(q)],{type:"application/json"})),download:`orgchain-lab-${new Date().toISOString().slice(0,10)}.json`});document.body.append(e),e.click(),e.remove(),setTimeout(()=>URL.revokeObjectURL(e.href),5e3),ye("Saved a backup of this lab, test wallet included. Load it in any browser to carry on.")});D("load").addEventListener("click",()=>D("load-file").click());D("load-file").addEventListener("change",async e=>{var r;const t=(r=e.target.files)==null?void 0:r[0];if(e.target.value="",!t)return;let n;try{n=ch(await t.text())}catch(s){return ye(`${t.name} is not an Orgchain lab: ${s.message}`,!0)}Oh(`Replace this browser's lab with ${t.name}?`,"Replace",()=>Ih(()=>n,`Loaded ${t.name}.`))});D("reset").addEventListener("click",()=>Oh("Erase this browser's lab: every holding, the chain and the test wallet?","Erase",()=>Ih(gs,"Erased. This is a fresh lab.")));Th();yh(); diff --git a/ventures/lineage/orgchain/index.html b/ventures/lineage/orgchain/index.html index 8f4ef8f..381d020 100644 --- a/ventures/lineage/orgchain/index.html +++ b/ventures/lineage/orgchain/index.html @@ -4,12 +4,12 @@ Orgchain · Lineage - + - - + +
@@ -17,7 +17,7 @@

Lineage /

Orgchain

-

Found a holding, then birth its orgs and agents, award belts, record decisions, make and trade items, send test BTC, graduate and close. Each act is an inscription whose parent is the node that authorizes it, paid for with the actor's own gas, and each beat is a block whose 50 test BTC the holdings mine. Lineage gives the structure; the chain adds time.

+

Found a holding, then birth its orgs and agents, award belts, record decisions, make and trade items, publish keyrings, send test BTC, graduate and close. Each act is an inscription whose parent is the node that authorizes it, paid for with the actor's own gas, and each beat is a block whose 50 test BTC the holdings mine. Lineage gives the structure; the chain adds time.

Test coins only @@ -89,7 +89,7 @@

Select a holding, or a node in its tree, to act through it.