@oracle-agent/oracle 0.24.8 → 0.24.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/README.md +57 -49
  2. package/SECURITY.md +1 -1
  3. package/SETUP.md +16 -13
  4. package/dist/assets/profiles/_template/SOUL.md +2 -2
  5. package/dist/assets/profiles/oracle/SOUL.md +11 -13
  6. package/dist/assets/profiles/profile.schema.json +1 -1
  7. package/dist/assets/profiles/robinhood-agent/SOUL.md +5 -5
  8. package/dist/assets/skills/multi-venue-prepare-only-ranking/SKILL.md +1 -1
  9. package/dist/assets/skills/oracle-action-semantics/SKILL.md +5 -5
  10. package/dist/assets/skills/oracle-chat/SKILL.md +8 -8
  11. package/dist/assets/skills/oracle-desk-product/SKILL.md +3 -3
  12. package/dist/assets/skills/oracle-receipts/SKILL.md +2 -2
  13. package/dist/bin/desk-server.mjs +78 -34
  14. package/dist/bin/oracle-data-mcp.mjs +51 -7
  15. package/dist/bin/oracle-gateway.mjs +13 -15
  16. package/dist/bin/oracle-init.mjs +9 -9
  17. package/dist/bin/oracle-public-server.mjs +48 -4
  18. package/dist/bin/oracle-route.mjs +66 -22
  19. package/dist/bin/oracle-scan.mjs +58 -14
  20. package/dist/bin/oracle-upgrade.mjs +9 -9
  21. package/dist/bin/oracle.mjs +6 -6
  22. package/dist/cli/commands/chat.mjs +140 -96
  23. package/dist/cli/commands/doctor.mjs +5 -5
  24. package/dist/cli/commands/eval.mjs +17 -17
  25. package/dist/cli/commands/farm.mjs +72 -28
  26. package/dist/cli/commands/follow.mjs +61 -17
  27. package/dist/cli/commands/model.mjs +147 -103
  28. package/dist/cli/commands/receipt.mjs +3 -3
  29. package/dist/cli/commands/resolve.mjs +55 -11
  30. package/dist/cli/commands/setup.mjs +27 -27
  31. package/dist/cli/commands/sign.mjs +14 -13
  32. package/dist/cli/commands/signer.mjs +14 -17
  33. package/dist/cli/commands/strategy.mjs +50 -6
  34. package/dist/cli/commands/swap.mjs +72 -29
  35. package/dist/cli/commands/venues.mjs +3 -3
  36. package/dist/data/desk-data.mjs +78 -34
  37. package/dist/data/names.mjs +46 -2
  38. package/dist/data/providers/farming.mjs +46 -2
  39. package/dist/index.mjs +80 -36
  40. package/dist/local-signer/index.mjs +3 -1
  41. package/dist/router/index.mjs +46 -2
  42. package/dist/router/prepare-bridge.mjs +46 -2
  43. package/dist/scanner/index.mjs +48 -4
  44. package/dist/strategy/index.mjs +47 -3
  45. package/package.json +6 -3
  46. package/public/install.ps1 +1 -1
  47. package/public/install.sh +5 -4
  48. package/public/oracle-splash/_variants/ice.html +3 -3
  49. package/public/oracle-splash/_variants/ivory.html +3 -3
  50. package/public/oracle-splash/downloads/index.html +5 -5
  51. package/public/oracle-splash/index.html +7 -7
  52. package/public/oracle-splash/install.ps1 +1 -1
  53. package/public/oracle-splash/install.sh +5 -4
@@ -1,6 +1,50 @@
1
- var ln=Object.defineProperty;var B=(e,t,r)=>()=>{if(r)throw r[0];try{return e&&(t=e(e=0)),t}catch(n){throw r=[n],n}};var un=(e,t)=>{for(var r in t)ln(e,r,{get:t[r],enumerable:!0})};import{createHash as fn}from"node:crypto";function hn(e){let t=String(e||"").toLowerCase();return Bt.includes(t)||/(^|-)(api[-_]?key|key|token|secret|auth|authorization|session|cookie|signature|access)(-|$)/.test(t)}function yn(e){let t={};for(let[r,n]of Object.entries(e||{}))hn(r)||(t[r]=n);return t}function wn(e,t){if(!e)throw new Error(`HTTP redirect from ${t} missing Location`);let r=new URL(String(e),String(t));if(r.protocol!=="http:"&&r.protocol!=="https:")throw new Error(`HTTP redirect from ${t} used unsupported protocol ${r.protocol}`);return r.toString()}function gn(e,t){return new URL(String(e)).origin===new URL(String(t)).origin}function bn(e,t,r){let n={};for(let[l,u]of Object.entries(r||{}))n[l.toLowerCase()]=u;let s=Object.keys(n).filter(l=>/(^|-)(api[-_]?key|key|token|secret|auth|authorization|session|cookie|signature|access)(-|$)/.test(l)),o=[...new Set([...Bt,...s])].sort().map(l=>`${l}=${n[l]??""}`).join(`
2
- `),i=fn("sha256").update(o).digest("hex").slice(0,32);return`${e} ${t} ${i}`}function En(e,t){let r=Number(t);return Number.isFinite(r)&&r>0?Math.min(r*1e3,qt):Math.min(250*2**e,qt)+Math.floor(Math.random()*100)}async function kn(e,{fetchImpl:t,method:r,headers:n,body:s,timeoutMs:a}){let o=new AbortController,i=setTimeout(()=>o.abort(),a);try{let l=String(e),u={...n||{}};for(let f=0;f<=Ct;f+=1){let c=await t(l,{method:r,headers:u,body:s,signal:o.signal,redirect:"manual"}),d=await c.text(),m=null;if(d)try{m=JSON.parse(d)}catch{m=null}if(mn.has(c.status)){if(r!=="GET"&&r!=="HEAD"){let h=new Error(`HTTP ${c.status} ${r} ${l} redirected non-idempotent request`);throw h.status=c.status,h.body=m??d.slice(0,300),h}if(f===Ct)throw new Error(`HTTP redirect loop for ${e}`);let p=wn(c.headers?.get?.("location"),l);gn(p,l)||(u=yn(u)),l=p;continue}if(!c.ok){let p=new Error(`HTTP ${c.status} ${r} ${l}`);throw p.status=c.status,p.retryAfter=c.headers?.get?.("retry-after")??null,p.body=m??d.slice(0,300),p}return m??d}throw new Error(`HTTP redirect loop for ${e}`)}finally{clearTimeout(i)}}async function zt(e,t={}){let r=t.fetchImpl||globalThis.fetch;if(typeof r!="function")throw new Error("fetch unavailable \u2014 pass opts.fetchImpl");let n=t.timeoutMs??12e3,s=(t.method||"GET").toUpperCase(),a={Accept:"application/json",...t.headers||{}},o=t.body;o!=null&&typeof o!="string"&&(a["Content-Type"]=a["Content-Type"]||"application/json",o=JSON.stringify(o));let i=Number.isInteger(t.retries)?Math.max(t.retries,0):pn,l=async()=>{let m;for(let p=0;p<=i;p++)try{return await kn(e,{fetchImpl:r,method:s,headers:a,body:o,timeoutMs:n})}catch(h){m=h;let E=h?.status,S=h?.name==="AbortError",P=new Set([408,425,429]),T=E!=null?P.has(E)||dn.has(E)&&Ut.has(s):!S&&Ut.has(s);if(p===i||!T)throw h;await xn(En(p,h?.retryAfter))}throw m};if(!(t.dedupe!==!1&&s==="GET"&&o==null))return l();let f=bn(s,e,a),c=We.get(f);if(c)return c;let d=l().finally(()=>We.delete(f));return We.set(f,d),d}var dn,Ut,pn,qt,Bt,mn,Ct,We,xn,Dt=B(()=>{dn=new Set([408,425,429,500,502,503,504]),Ut=new Set(["GET","HEAD","OPTIONS","PUT","DELETE"]),pn=2,qt=4e3,Bt=["authorization","x-api-key","x-tensor-api-key","0x-api-key","api-key","cookie","proxy-authorization"],mn=new Set([301,302,303,307,308]),Ct=3;We=new Map;xn=e=>new Promise(t=>setTimeout(t,e))});function Pn({testnet:e,baseUrl:t}={}){if(t)return t.replace(/\/$/,"").endsWith("/info")?t:`${t.replace(/\/$/,"")}/info`;if(process.env.HL_INFO_URL)return process.env.HL_INFO_URL;if(process.env.HL_API_URL){let r=process.env.HL_API_URL.replace(/\/$/,"");return r.endsWith("/info")?r:`${r}/info`}return e||process.env.HL_TESTNET==="1"?An:Sn}async function Ze(e,t={}){if(!e||!e.type)throw new Error("hlInfo requires body.type");let r=Pn(t);return zt(r,{method:"POST",body:e,fetchImpl:t.fetchImpl,timeoutMs:t.timeoutMs})}async function Vt(e={}){return Ze({type:"meta"},e)}async function Jt({coin:e,interval:t="1h",startTime:r,endTime:n},s={}){if(!e)throw new Error("hlCandleSnapshot requires coin");let a={type:"candleSnapshot",req:{coin:String(e),interval:t,startTime:r??Date.now()-24*3600*1e3,endTime:n??Date.now()}};return Ze(a,s)}async function Kt({coin:e,startTime:t,endTime:r},n={}){if(!e)throw new Error("hlFundingHistory requires coin");return Ze({type:"fundingHistory",coin:String(e),startTime:t??Date.now()-24*3600*1e3,endTime:r??Date.now()},n)}var Sn,An,Qe=B(()=>{Dt();Sn="https://api.hyperliquid.xyz/info",An="https://api.hyperliquid-testnet.xyz/info"});import{createHash as $n}from"node:crypto";function ee(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}function ye(e){return typeof e=="number"&&Number.isFinite(e)}function rt(e){if(e==null||typeof e!="object"||Object.isFrozen(e))return e;if(Array.isArray(e)){for(let t of e)rt(t);return Object.freeze(e)}for(let t of Object.keys(e))rt(e[t]);return Object.freeze(e)}function ue(e){if(Array.isArray(e))return e.map(ue);if(e!=null&&typeof e=="object"){let t={};for(let r of Object.keys(e).sort())t[r]=ue(e[r]);return t}return e}function et(e){return{netPnlUsd:e.metrics.netPnlUsd,netPnlPct:e.metrics.netPnlPct,maxDrawdownPct:e.metrics.maxDrawdownPct,winRate:e.metrics.winRate,profitFactor:e.metrics.profitFactor,tradeCount:e.metrics.tradeCount,sharpe:e.metrics.sharpe,turnoverUsd:e.metrics.turnoverUsd,exposurePct:e.metrics.exposurePct}}function Yt(e){return{feesUsd:e.costs.feesUsd,builderFeesUsd:e.costs.builderFeesUsd,fundingUsd:e.costs.fundingUsd,slippageUsd:e.costs.slippageUsd}}function _n(e){return(e.feesUsd||0)+(e.builderFeesUsd||0)+Math.max(0,e.fundingUsd||0)+(e.slippageUsd||0)}function In(e){let t=0;for(let r of e.trades)r.grossPnlUsd>0&&(t+=r.grossPnlUsd);return t}function On(e,t,r){return!(!e||e.tradeCount<Math.max(1,Math.min(r,3))||!(e.netPnlUsd>0)||!(e.profitFactor>1)||!(e.maxDrawdownPct<=t.maxDailyLossPct))}function Xt(e){if(!ee(e))throw new TypeError("evidence artifact must be a plain object");if(!Tn.includes(e.status))throw new TypeError("evidence artifact status is invalid");for(let t of["strategyHash","compilerHash","barsHash"])if(typeof e[t]!="string"||!/^[0-9a-f]{64}$/.test(e[t]))throw new TypeError(`evidence artifact ${t} must be a sha256 hash`);if(!ee(e.split))throw new TypeError("evidence artifact split required");if(!Array.isArray(e.flags))throw new TypeError("evidence artifact flags must be an array");if(!ee(e.walkForward)||!Array.isArray(e.walkForward.windows))throw new TypeError("evidence artifact walkForward windows required");if(e.status==="pass_live_eligible"&&(!ee(e.train)||!ee(e.holdout)))throw new TypeError("live-eligible evidence artifact requires train and holdout facts");return ue({barsHash:e.barsHash,compilerHash:e.compilerHash,flags:e.flags.map(t=>ue(t)),holdout:e.holdout??null,split:e.split,status:e.status,strategyHash:e.strategyHash,train:e.train??null,walkForward:{passRate:e.walkForward.passRate,windowsRun:e.walkForward.windowsRun??e.walkForward.windows.length,windows:e.walkForward.windows.map(t=>({index:t.index,trainStartIndex:t.trainStartIndex,trainEndIndex:t.trainEndIndex,passed:t.passed,reason:t.reason,evalStartIndex:t.evalStartIndex,evalEndIndex:t.evalEndIndex,metrics:t.metrics}))}})}function Wt(e){return $n("sha256").update(JSON.stringify(Xt(e)),"utf8").digest("hex")}function G(e,t,r=0){if(!Number.isInteger(e)||e<r)throw new Error(`${t} must be an integer >= ${r}`);return e}function tt(e,t){if(!ee(e)||!ee(e.metrics))throw new Error(`${t} metrics required`);let r=G(e.tradeCount,`${t}.tradeCount`);if(e.metrics.tradeCount!==r)throw new Error(`${t} tradeCount contradicts metrics.tradeCount`);for(let n of["netPnlUsd","profitFactor","maxDrawdownPct"])if(!ye(e.metrics[n]))throw new Error(`${t}.metrics.${n} must be finite`);if(e.metrics.maxDrawdownPct<0)throw new Error(`${t}.metrics.maxDrawdownPct must be >= 0`);return e.metrics}function vn(e,{maxDailyLossPct:t}={}){let r=e.split,n=G(r.trainStartIndex,"split.trainStartIndex"),s=G(r.trainEndIndex,"split.trainEndIndex"),a=G(r.trainBarCount,"split.trainBarCount",1),o=G(r.holdoutStartIndex,"split.holdoutStartIndex"),i=G(r.holdoutEndIndex,"split.holdoutEndIndex"),l=G(r.holdoutBarCount,"split.holdoutBarCount",1);if(n!==0||s-n+1!==a||o!==s+1||i-o+1!==l)throw new Error("evidence split must be contiguous, chronological, and count-consistent");if(!ye(r.trainFraction)||r.trainFraction<=0||r.trainFraction>=1)throw new Error("split.trainFraction must be in (0,1)");tt(e.train,"train");let u=tt(e.holdout,"holdout");if(u.tradeCount<1||u.netPnlUsd<=0||u.profitFactor<=1)throw new Error("live-eligible holdout metrics do not pass");if(ye(t)&&u.maxDrawdownPct>t)throw new Error("live-eligible holdout drawdown exceeds strategy risk");if(e.flags.length>0)throw new Error("live-eligible evidence cannot contain failure flags");let f=e.walkForward,c=f.windows;if(c.length<1||f.windowsRun!==c.length)throw new Error("live-eligible walk-forward windowsRun must match nonempty windows");let d=0,m=-1;for(let h=0;h<c.length;h++){let E=c[h];if(!ee(E)||E.index!==h||typeof E.passed!="boolean")throw new Error("walk-forward windows must be ordered and structurally valid");let S=G(E.trainStartIndex,`walkForward.windows[${h}].trainStartIndex`),P=G(E.trainEndIndex,`walkForward.windows[${h}].trainEndIndex`),T=G(E.evalStartIndex,`walkForward.windows[${h}].evalStartIndex`),x=G(E.evalEndIndex,`walkForward.windows[${h}].evalEndIndex`);if(S!==0||P>=T||T>x||T<=m)throw new Error("walk-forward windows must be chronological and disjoint");if(m=x,E.passed){if(d+=1,E.reason!=="pass")throw new Error("passed walk-forward window reason must be pass");let R=tt({metrics:E.metrics,tradeCount:E.metrics?.tradeCount},`walkForward.windows[${h}]`);if(R.tradeCount<1||R.netPnlUsd<=0||R.profitFactor<=1)throw new Error("passed walk-forward window metrics do not pass");if(ye(t)&&R.maxDrawdownPct>t)throw new Error("passed walk-forward drawdown exceeds strategy risk")}else if(E.reason==="pass")throw new Error("failed walk-forward window cannot have pass reason")}let p=d/c.length;if(!ye(f.passRate)||Math.abs(f.passRate-p)>Number.EPSILON||p<.6)throw new Error("walk-forward passRate contradicts concrete windows or is below live threshold")}function Zt(e,t={}){if(typeof e?.id!="string"||!/^[0-9a-f]{64}$/.test(e.id))throw new Error("evidence.id must be a sha256 evidence artifact hash");let r=Xt(e),n=ue({id:e.id,...r});if(JSON.stringify(ue(e))!==JSON.stringify(n))throw new Error("evidence artifact contains fields unbound from its deterministic identity");let s=Wt(e);if(e.id!==s)throw new Error("evidence.id does not match its deterministic artifact facts digest");return e.status==="pass_live_eligible"&&vn(e,t),e}function nt({strategy:e,bars:t,backtestOptions:r={},trainFraction:n=.7,walkForwardWindows:s=3,minTrades:a=10}={}){let o=[];if(!ee(e))throw new TypeError("strategy must be a plain object");if(!Array.isArray(t))throw new TypeError("bars must be an array");if(!ee(r))throw new TypeError("backtestOptions must be a plain object");if(!ye(n)||n<=0||n>=1)throw new TypeError("trainFraction must be in (0,1)");if(!Number.isInteger(s)||s<1)throw new TypeError("walkForwardWindows must be a positive integer");if(!Number.isInteger(a)||a<0)throw new TypeError("minTrades must be an integer >= 0");let i=J(e),l=we(i),u=$e(t),f=t.length,c=(I=[],M={})=>Gt({status:"fail",strategy:i,sHash:l,barsHash:u,split:M.split||{trainStartIndex:0,trainEndIndex:-1,trainBarCount:0,holdoutStartIndex:0,holdoutEndIndex:-1,holdoutBarCount:0,trainFraction:n},train:M.train||null,holdout:M.holdout||null,walkForward:M.walkForward||{windows:[],passRate:0},flags:[...o,...I]});if(f<10)return c([{type:"insufficient_bars",message:"need at least 10 bars for evidence"}]);let d=Math.floor(f*n),m=d,p=f-m;if(d<5||p<3)return c([{type:"invalid_windowing",message:"train/holdout split too small",trainCount:d,holdoutCount:p}]);let h=t.slice(0,d),E=t.slice(m),S,P;try{S=ae(i,h,r),P=ae(i,E,r)}catch(I){return c([{type:"backtest_error",message:String(I.message||I)}])}let T={metrics:et(S),costs:Yt(S),tradeCount:S.metrics.tradeCount},x={metrics:et(P),costs:Yt(P),tradeCount:P.metrics.tradeCount},R={trainStartIndex:0,trainEndIndex:d-1,trainBarCount:d,holdoutStartIndex:m,holdoutEndIndex:f-1,holdoutBarCount:p,trainFraction:n},_=[],g=Math.floor(f/(s+1));if(g<3)o.push({type:"invalid_windowing",message:"walk-forward window size too small",wfSize:g});else for(let I=0;I<s;I++){let M=g*(I+1),z=M,q=Math.min(f,z+g);if(q-z<3||M<3){_.push({index:I,trainStartIndex:0,trainEndIndex:M-1,evalStartIndex:z,evalEndIndex:q-1,passed:!1,reason:"window_too_small",metrics:null});continue}let Z=t.slice(z,q),je;try{je=ae(i,Z,r)}catch{_.push({index:I,trainStartIndex:0,trainEndIndex:M-1,evalStartIndex:z,evalEndIndex:q-1,passed:!1,reason:"backtest_error",metrics:null});continue}let Fe=et(je),Le=On(Fe,i.risk,a);_.push({index:I,trainStartIndex:0,trainEndIndex:M-1,evalStartIndex:z,evalEndIndex:q-1,passed:Le,reason:Le?"pass":"fail_metrics",metrics:Fe})}let V=_.filter(I=>I.passed).length,oe=_.length===0?0:V/_.length,ie={windows:_,passRate:oe,windowsRun:_.length};x.metrics.tradeCount===0&&T.metrics.tradeCount===0&&o.push({type:"no_trades",message:"no trades in train or holdout"}),x.metrics.tradeCount===0&&o.push({type:"absent_oos_trades",message:"holdout produced no trades"}),x.metrics.netPnlUsd<0&&o.push({type:"holdout_loss",message:"holdout netPnlUsd is negative"}),T.metrics.netPnlUsd>0&&x.metrics.netPnlUsd<0&&T.metrics.netPnlUsd>Math.abs(x.metrics.netPnlUsd)*.25?o.push({type:"overfit",message:"profitable train with losing holdout (OOS collapse)"}):T.metrics.netPnlUsd>0&&x.metrics.netPnlUsd>0&&x.metrics.netPnlUsd<T.metrics.netPnlUsd*.1&&T.metrics.tradeCount>=a&&o.push({type:"severe_oos_collapse",message:"holdout pnl collapsed vs train"});let W=_n(x.costs),y=In(P);y>0&&W>y&&o.push({type:"costs_exceed_gross",message:"holdout costs exceed gross gains"});let A=o.some(I=>["insufficient_bars","invalid_windowing","absent_oos_trades","holdout_loss","no_trades","severe_oos_collapse","backtest_error"].includes(I.type)),v=o.some(I=>I.type==="overfit"),j="fail";return x.metrics.tradeCount>=a&&x.metrics.netPnlUsd>0&&x.metrics.profitFactor>1&&x.metrics.maxDrawdownPct<=i.risk.maxDailyLossPct&&oe>=.6&&!(y>0&&W>y)&&!v&&!o.some(I=>I.type==="severe_oos_collapse"||I.type==="invalid_windowing")?j="pass_live_eligible":!A&&x.metrics.tradeCount>0&&T.metrics.tradeCount>0&&Number.isFinite(x.metrics.netPnlUsd)?(j="pass_paper_only",x.metrics.tradeCount<a&&o.push({type:"undersampled",message:"holdout trades below minTrades"})):v&&x.metrics.tradeCount>0&&T.metrics.netPnlUsd>0?j="fail":x.metrics.tradeCount>0&&T.metrics.tradeCount>0&&!A?j="pass_paper_only":j="fail",x.metrics.netPnlUsd<0&&(j=j==="pass_live_eligible"?"fail":j==="pass_paper_only"?"pass_paper_only":"fail",j="fail"),Gt({status:j,strategy:i,sHash:l,barsHash:u,split:R,train:T,holdout:x,walkForward:ie,flags:o})}function Gt({status:e,strategy:t,sHash:r,barsHash:n,split:s,train:a,holdout:o,walkForward:i,flags:l}){let u={status:e,strategyHash:r,compilerHash:de,barsHash:n,split:s,train:a,holdout:o,walkForward:i,flags:l};return u.id=Wt(u),rt(ue(JSON.parse(JSON.stringify(u))))}var Tn,st=B(()=>{pe();fe();He();Tn=Object.freeze(["fail","pass_paper_only","pass_live_eligible"])});import{createHash as Mn,createHmac as Nn,timingSafeEqual as qo}from"node:crypto";function ot(e){return e===null||typeof e!="object"?JSON.stringify(e):Array.isArray(e)?`[${e.map(ot).join(",")}]`:`{${Object.keys(e).sort().map(r=>`${JSON.stringify(r)}:${ot(e[r])}`).join(",")}}`}function Qt(e){let t=String(e?.ORACLE_STAMP_HMAC_SECRET||"").trim();return t.length>=16?t:""}function er(e=process.env){return Qt(process.env)||Qt(e)}function Fn(e){let{oraclePrepared:t,prepareHash:r,prepareMac:n,note:s,...a}=e||{};return a}function Ln(e){let t=Fn(e);return Mn("sha256").update(ot(t)).digest("hex")}function Hn(e,t=er()){return t?Nn("sha256",t).update(String(e)).digest("hex"):""}function tr(e,{provider:t,kind:r,env:n=process.env}={}){if(!e||typeof e!="object")throw new Error("stampPrepared: payload object required");let s={...e,provider:e.provider||t,kind:e.kind||r,requiresUserSignature:e.requiresUserSignature!==!1,signingReady:!1,broadcastReady:!1,executionReady:!1};if(!s.provider)throw new Error("stampPrepared: provider required");if(!s.kind)throw new Error("stampPrepared: kind required");let a=Date.now(),o=a+jn,l={...s,preparedAt:a,expiresAt:o,prepareVersion:Rn},u=Ln(l),f=er(n),c=f?Hn(u,f):void 0,d={...l,oraclePrepared:!0,prepareHash:u};return c&&(d.prepareMac=c),d}var Rn,jn,Co,rr=B(()=>{Rn=2,jn=300*1e3,Co=(()=>{let e=Number(process.env.ORACLE_PREPARE_HARD_MAX_AGE_MS);return Number.isFinite(e)&&e>0?e:1800*1e3})()});function Te(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}function qn(e){return String(e).toLowerCase().replace(/[^a-z0-9]/g,"")}function at(e,t="value"){if(Array.isArray(e)){e.forEach((r,n)=>at(r,`${t}[${n}]`));return}if(Te(e))for(let[r,n]of Object.entries(e)){let s=qn(r);if(Un.some(a=>s.includes(a)))throw new Error(`handoff: forbidden secret-like field at ${t}.${r}`);at(n,`${t}.${r}`)}}function it(e){return typeof e=="number"&&Number.isFinite(e)&&e>0}function nr({strategy:e,evidence:t,shadow:r,caps:n,nowMs:s=Date.now(),env:a=process.env}={}){if(at({strategy:e,evidence:t,shadow:r,caps:n},"handoff"),!Te(e))throw new Error("handoff: strategy required");if(!Te(t))throw new Error("handoff: evidence required");if(!Te(r))throw new Error("handoff: shadow required");if(!Te(n))throw new Error("handoff: caps required");if(typeof r.id!="string"||!r.id.trim())throw new Error("handoff: shadow.id required");if(typeof r.stateHash!="string"||!/^[0-9a-f]{64}$/.test(r.stateHash))throw new Error("handoff: shadow.stateHash must be a sha256 hash");if(r.status!=="running")throw new Error("handoff: shadow.status must be running");if(!Number.isInteger(r.cursor)||r.cursor<=0)throw new Error("handoff: shadow.cursor must be a positive integer");if(!Number.isInteger(r.updatedAt)||r.updatedAt<=0||r.updatedAt>s)throw new Error("handoff: shadow.updatedAt must be a positive integer <= nowMs");let o=J(e,{nowMs:s}),i=K(o);if(Zt(t,{maxDailyLossPct:o.risk.maxDailyLossPct}),t.status!=="pass_live_eligible")throw new Error("handoff: evidence.status must be pass_live_eligible");if(t.strategyHash!==i.strategyHash)throw new Error("handoff: evidence.strategyHash mismatch");if(t.compilerHash!==i.compilerHash)throw new Error("handoff: evidence.compilerHash mismatch");let l=["perStrategyNotionalUsd","maxLeverage","dailyLossCapUsd","chainAllowlist","assetAllowlist","expiresAt","killSwitchRequired"];for(let d of l)if(!(d in n)||n[d]==null)throw new Error(`handoff: caps.${d} required`);if(!it(n.perStrategyNotionalUsd))throw new Error("handoff: caps.perStrategyNotionalUsd must be positive");if(n.perStrategyNotionalUsd>i.strategy.risk.maxNotionalUsd)throw new Error("handoff: caps.perStrategyNotionalUsd exceeds strategy.risk.maxNotionalUsd");if(!it(n.maxLeverage))throw new Error("handoff: caps.maxLeverage must be positive");if(n.maxLeverage>i.strategy.risk.maxLeverage)throw new Error("handoff: caps.maxLeverage exceeds strategy.risk.maxLeverage");if(!it(n.dailyLossCapUsd))throw new Error("handoff: caps.dailyLossCapUsd must be positive");let u=i.strategy.risk.maxNotionalUsd*(i.strategy.risk.maxDailyLossPct/100);if(n.dailyLossCapUsd>u)throw new Error("handoff: caps.dailyLossCapUsd exceeds strategy daily loss ceiling");if(!Array.isArray(n.chainAllowlist)||n.chainAllowlist.length===0)throw new Error("handoff: caps.chainAllowlist must be a non-empty array");if(!n.chainAllowlist.every(d=>d==="hyperliquid"))throw new Error("handoff: caps.chainAllowlist must include only hyperliquid");if(!n.chainAllowlist.includes("hyperliquid"))throw new Error("handoff: caps.chainAllowlist must include hyperliquid");if(!Array.isArray(n.assetAllowlist)||n.assetAllowlist.length===0)throw new Error("handoff: caps.assetAllowlist must be a non-empty array");if(n.assetAllowlist.length!==1||n.assetAllowlist[0]!==i.strategy.market.coin)throw new Error("handoff: caps.assetAllowlist must contain only the strategy market coin");if(!Number.isInteger(n.expiresAt)||!(n.expiresAt>s))throw new Error("handoff: caps.expiresAt must be an integer > nowMs");if(n.expiresAt>i.strategy.risk.expiresAt)throw new Error("handoff: caps.expiresAt exceeds strategy.risk.expiresAt");if(n.killSwitchRequired!==!0)throw new Error("handoff: caps.killSwitchRequired must be exactly true");let f={perStrategyNotionalUsd:n.perStrategyNotionalUsd,maxLeverage:n.maxLeverage,dailyLossCapUsd:n.dailyLossCapUsd,chainAllowlist:[...n.chainAllowlist],assetAllowlist:[...n.assetAllowlist],expiresAt:n.expiresAt,killSwitchRequired:!0},c={strategyHash:i.strategyHash,compilerHash:i.compilerHash,evidence:JSON.parse(JSON.stringify(t)),shadow:{id:r.id,stateHash:r.stateHash,status:r.status,cursor:r.cursor,updatedAt:r.updatedAt},compiled:{strategyHash:i.strategyHash,compilerHash:i.compilerHash,compilerVersion:_e,venue:"hyperliquid",market:{coin:i.strategy.market.coin,kind:"perp",interval:i.strategy.market.interval},risk:{...i.strategy.risk},strategy:JSON.parse(JSON.stringify(i.strategy))},arming:{liveBroadcast:!1,requiresExplicitUserArm:!0,caps:f},requiresUserSignature:!0,signingReady:!1,broadcastReady:!1,executionReady:!1};return tr(c,{provider:"hl-strategy",kind:"strategy-live-handoff",env:a})}var Un,sr=B(()=>{pe();st();fe();rr();Un=["privatekey","secretkey","seed","mnemonic","passphrase","password","keystore","keymaterial","apikey","authtoken","accesstoken","refreshtoken","credential","bearer","signature","authorization","xprv","xpriv","wif"]});function ge(e,t){let r=Number(e);if(!Number.isFinite(r))throw new TypeError(`${t} must be finite`);return r}function be(e,t){if(!Number.isSafeInteger(e)||e<0)throw new TypeError(`${t} must be a non-negative safe integer`);return e}function Ie(e){if(Array.isArray(e))for(let t of e)Ie(t);else if(e&&typeof e=="object")for(let t of Object.values(e))Ie(t);return Object.freeze(e)}function Bn(e){let t=Cn[e];if(!t)throw new TypeError(`unsupported strategy interval: ${e}`);return t}function zn(e,{endTime:t=Number.MAX_SAFE_INTEGER}={}){if(!Array.isArray(e))throw new TypeError("Hyperliquid candles must be an array");be(t,"endTime");let r=new Map;for(let n=0;n<e.length;n++){let s=e[n];if(!s||typeof s!="object"||Array.isArray(s))throw new TypeError(`candles[${n}] must be an object`);let a=be(Number(s.t),`candles[${n}].t`);if(be(Number(s.T),`candles[${n}].T`)>t)continue;let i={t:a,o:ge(s.o,`candles[${n}].o`),h:ge(s.h,`candles[${n}].h`),l:ge(s.l,`candles[${n}].l`),c:ge(s.c,`candles[${n}].c`),v:ge(s.v,`candles[${n}].v`)};if(i.h<Math.max(i.o,i.c,i.l))throw new TypeError(`candles[${n}].h is below another price`);if(i.l>Math.min(i.o,i.c,i.h))throw new TypeError(`candles[${n}].l is above another price`);if(i.v<0)throw new TypeError(`candles[${n}].v must be non-negative`);let l=r.get(a);if(l&&JSON.stringify(l)!==JSON.stringify(i))throw new TypeError(`conflicting duplicate candle at timestamp ${a}`);l||r.set(a,i)}return Ie([...r.values()].sort((n,s)=>n.t-s.t))}function Dn(e,t){if(!Array.isArray(e))throw new TypeError("Hyperliquid funding history must be an array");let r=new Map;for(let n=0;n<e.length;n++){let s=e[n];if(!s||typeof s!="object"||Array.isArray(s))throw new TypeError(`funding[${n}] must be an object`);let a=be(Number(s.time),`funding[${n}].time`);a>t||r.set(a,{time:a,fundingRate:ge(s.fundingRate,`funding[${n}].fundingRate`)})}return[...r.values()].sort((n,s)=>n.time-s.time)}async function Vn({coin:e,startTime:t,endTime:r},n){let s=[],a=Math.max(0,t-288e5),o=!1;for(let i=0;i<16&&a<=r;i++){let l=await Kt({coin:e,startTime:a,endTime:r},n);if(!Array.isArray(l))throw new TypeError("Hyperliquid funding history must be an array");s.push(...l);let u=a;for(let f of l){let c=Number(f?.time);Number.isSafeInteger(c)&&c>u&&(u=c)}if(l.length<500||u>=r){o=!0;break}if(u<=a)throw new Error("Hyperliquid funding history pagination did not advance");a=u+1}if(!o)throw new Error("strategy history exceeds the bounded funding history limit");return Dn(s,r)}function Jn(e,t,r){let n=0,s=null;return e.map(a=>{let o=a.t+r,i=0;for(;n<t.length&&t[n].time<o;){let l=t[n];s=l.fundingRate,l.time>=a.t&&(i+=l.fundingRate),n+=1}return s==null?{...a,fundingPaymentRate:i}:{...a,fundingRate:s,fundingPaymentRate:i}})}async function or(e,t={}){if(!e||typeof e!="object"||Array.isArray(e))throw new TypeError("strategy history input must be an object");let r=String(e.coin||"").trim().toUpperCase();if(!/^[A-Z0-9][A-Z0-9._-]{0,11}$/.test(r))throw new TypeError("coin must be an uppercase Hyperliquid asset id");let n=String(e.interval||"15m"),s=Bn(n);if(e.endTime==null)throw new TypeError("endTime is required for deterministic history");let a=be(e.endTime,"endTime"),o=e.count==null?1500:e.count;if(!Number.isInteger(o)||o<20||o>5e3)throw new TypeError("count must be an integer from 20 to 5000");let i=e.startTime==null?Math.max(0,a-o*s):be(e.startTime,"startTime");if(i>=a)throw new TypeError("startTime must be before endTime");let[l,u]=await Promise.all([Jt({coin:r,interval:n,startTime:i,endTime:a},t),Vn({coin:r,startTime:i,endTime:a},t)]),f=zn(l,{endTime:a}),c=Ie(Jn(f,u,s));return Ie({coin:r,interval:n,range:{startTime:i,endTime:a},bars:c})}var Cn,ir=B(()=>{Qe();Cn=Object.freeze({"1m":6e4,"3m":18e4,"5m":3e5,"15m":9e5,"30m":18e5,"1h":36e5,"2h":72e5,"4h":144e5,"8h":288e5,"12h":432e5,"1d":864e5})});function Gn(e){let t=[];if(!e||typeof e!="object"||Array.isArray(e))return{ok:!1,errors:[{path:"market",message:"must be a plain object"}],market:null};for(let r of Object.keys(e))Yn.has(r)||t.push({path:`market.${r}`,message:"unknown field is not allowed"});return(typeof e.coin!="string"||e.coin.length===0||e.coin.length>32)&&t.push({path:"market.coin",message:"must be a non-empty string max 32"}),(typeof e.interval!="string"||!Kn.has(e.interval))&&t.push({path:"market.interval",message:"must be a supported interval"}),t.length?{ok:!1,errors:t,market:null}:{ok:!0,errors:[],market:{coin:e.coin,interval:e.interval}}}async function Xn(e={}){let t=await Vt(e);if(!t||!Array.isArray(t.universe))throw new TypeError("Hyperliquid market metadata must contain universe");return Object.freeze(t.universe.map((r,n)=>{if(!r||typeof r.name!="string"||!r.name)throw new TypeError(`Hyperliquid market metadata universe[${n}].name is invalid`);return r.name}))}var Kn,Yn,ar,cr=B(()=>{Qe();sr();ir();Kn=new Set(["1m","3m","5m","15m","30m","1h","2h","4h","8h","12h","1d"]),Yn=new Set(["coin","interval"]);ar=Object.freeze({id:"hyperliquid",validateMarket:Gn,fetchBars:or,listMarkets:Xn,prepareIntent(e){return nr(e)}})});function Zn(e){if(!e||typeof e!="object"||Array.isArray(e))throw new TypeError("strategy venue adapter must be an object");if(typeof e.id!="string"||!/^[a-z0-9][a-z0-9._-]{0,63}$/.test(e.id))throw new TypeError("strategy venue adapter id is malformed");for(let t of Wn.slice(1))if(typeof e[t]!="function")throw new TypeError(`strategy venue adapter ${e.id} requires ${t}()`);for(let t of["fetchBars","listMarkets"])if(e[t]!=null&&typeof e[t]!="function")throw new TypeError(`strategy venue adapter ${e.id} ${t} must be a function`);return e}function ct(e){return typeof e!="string"?null:Qn.get(e)??null}function lt(e){let t=ct(e);if(!t)throw new Error(`unknown strategy venue: ${String(e)}`);return t}var Wn,lr,Qn,ti,ut=B(()=>{cr();Wn=Object.freeze(["id","validateMarket","prepareIntent"]);lr=[ar].map(Zn),Qn=new Map(lr.map(e=>[e.id,e])),ti=Object.freeze([...lr])});import{createHash as es}from"node:crypto";function Y(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}function U(e){return typeof e=="number"&&Number.isFinite(e)}function wr(e){return Number.isInteger(e)&&e>0}function ht(e){if(e==null||typeof e!="object"||Object.isFrozen(e))return e;if(Array.isArray(e)){for(let t of e)ht(t);return Object.freeze(e)}for(let t of Object.keys(e))ht(e[t]);return Object.freeze(e)}function yt(e){if(Array.isArray(e))return e.map(yt);if(e!=null&&typeof e=="object"){let t={};for(let r of Object.keys(e).sort())t[r]=yt(e[r]);return t}return e}function w(e,t,r){e.push({path:t,message:r})}function ce(e,t,r,n){for(let s of Object.keys(e))t.has(s)||w(n,r?`${r}.${s}`:s,"unknown field is not allowed")}function xr(e,t,r,n){if(!U(e)||!U(t)||!U(r)||!U(n)||n<=0||e<t||e>r)return!1;let s=(e-t)/n;if(!Number.isFinite(s))return!1;let a=Math.round(s);return Math.abs(s-a)<=1e-9}function mt(e,t,r,n){if(Y(e)){if(ce(e,new Set(["param"]),t,n),typeof e.param!="string"||!e.param)return w(n,`${t}.param`,"must be a parameter name string"),null;if(!Object.prototype.hasOwnProperty.call(r,e.param))return w(n,`${t}.param`,`unknown parameter "${e.param}"`),null;let s=r[e.param];return!Y(s)||![s.value,s.min,s.max,s.step].every(wr)?(w(n,`${t}.param`,"referenced period parameter value min max and step must be positive integers"),null):{param:e.param}}return wr(e)?e:(w(n,t,"must be a positive integer or {param}"),null)}function gr(e,t,r,n){return Y(e)?(ce(e,new Set(["param"]),t,n),typeof e.param!="string"||!e.param?(w(n,`${t}.param`,"must be a parameter name string"),null):Object.prototype.hasOwnProperty.call(r,e.param)?{param:e.param}:(w(n,`${t}.param`,`unknown parameter "${e.param}"`),null)):U(e)?e:(w(n,t,"must be a finite number or {param}"),null)}function Ue(e){switch(e.type){case"input":case"constant":return[];case"indicator":return e.input?[e.input]:[];case"compare":case"cross":return[e.left,e.right].filter(Boolean);case"logic":return Array.isArray(e.inputs)?[...e.inputs]:[];default:return[]}}function ls(e){let t=new Map,r=n=>{let s=t.get(n)||0;if(s===1)return!0;if(s===2)return!1;t.set(n,1);let a=e.get(n);if(a){for(let o of Ue(a))if(e.has(o)&&r(o))return!0}return t.set(n,2),!1};for(let n of e.keys())if(r(n))return!0;return!1}function us(e,t){if(!Y(e))return w(t,"parameters","must be a plain object"),null;let r=Object.keys(e);if(r.length>mr)return w(t,"parameters",`too many parameters (max ${mr})`),null;let n={};for(let s of r){if(!br.test(s)){w(t,`parameters.${s}`,"parameter name is malformed");continue}let a=e[s],o=`parameters.${s}`;if(!Y(a)){w(t,o,"must be a plain object");continue}ce(a,fr,o,t);for(let c of fr)c in a||w(t,`${o}.${c}`,"required field is missing");let{value:i,min:l,max:u,step:f}=a;U(l)||w(t,`${o}.min`,"must be a finite number"),U(u)||w(t,`${o}.max`,"must be a finite number"),(!U(f)||f<=0)&&w(t,`${o}.step`,"must be a positive finite number"),U(i)||w(t,`${o}.value`,"must be a finite number"),U(l)&&U(u)&&l>u&&w(t,`${o}.min`,"min must be <= max"),U(i)&&U(l)&&U(u)&&U(f)&&f>0&&(xr(i,l,u,f)||w(t,`${o}.value`,"value must lie on the declared min/max/step grid")),n[s]={value:i,min:l,max:u,step:f}}return n}function fs(e,t,r,n){let s=`nodes.${t}`;if(!Y(e))return w(n,s,"must be a plain object"),null;if(typeof e.type!="string"||!pr[e.type])return w(n,`${s}.type`,"unknown or missing node type"),ce(e,cs,s,n),null;switch(ce(e,pr[e.type],s,n),(typeof e.id!="string"||!Er.test(e.id))&&w(n,`${s}.id`,"must be a 1-64 char id starting with alphanumeric"),e.type){case"input":return(typeof e.field!="string"||!ts.has(e.field))&&w(n,`${s}.field`,"must be one of open|high|low|close|volume|fundingRate|openInterest"),{id:e.id,type:"input",field:e.field};case"constant":{let a=gr(e.value,`${s}.value`,r,n);return{id:e.id,type:"constant",value:a}}case"indicator":{(typeof e.indicator!="string"||!rs.has(e.indicator))&&w(n,`${s}.indicator`,"must be one of sma|ema|rsi|macd|bollinger|atr");let a=e.indicator,o={id:e.id,type:"indicator",indicator:a};if(a==="atr"){"input"in e&&(typeof e.input!="string"||!e.input?w(n,`${s}.input`,"must be a node id string when provided"):o.input=e.input);let i=mt(e.period,`${s}.period`,r,n);i!=null&&(o.period=i)}else typeof e.input!="string"||!e.input?w(n,`${s}.input`,"must be a node id string"):o.input=e.input;if((a==="sma"||a==="ema"||a==="rsi"||a==="bollinger"||a==="atr")&&("period"in e,a!=="macd"))if(!("period"in e))w(n,`${s}.period`,"required field is missing");else{let i=mt(e.period,`${s}.period`,r,n);i!=null&&(o.period=i)}if(a==="macd"){for(let i of["fastPeriod","slowPeriod","signalPeriod"])if(!(i in e))w(n,`${s}.${i}`,"required field is missing");else{let l=mt(e[i],`${s}.${i}`,r,n);l!=null&&(o[i]=l)}"output"in e?is.has(e.output)?o.output=e.output:w(n,`${s}.output`,"must be line|signal|histogram"):w(n,`${s}.output`,"required field is missing"),"period"in e&&w(n,`${s}.period`,"forbidden for macd"),"stdDev"in e&&w(n,`${s}.stdDev`,"forbidden for macd")}else if(a==="bollinger"){if(!("stdDev"in e))w(n,`${s}.stdDev`,"required field is missing");else{let i=gr(e.stdDev,`${s}.stdDev`,r,n);i!=null&&(typeof i=="number"&&i<=0?w(n,`${s}.stdDev`,"must be > 0"):o.stdDev=i)}"output"in e?as.has(e.output)?o.output=e.output:w(n,`${s}.output`,"must be upper|middle|lower"):w(n,`${s}.output`,"required field is missing");for(let i of["fastPeriod","slowPeriod","signalPeriod"])i in e&&w(n,`${s}.${i}`,`forbidden for ${a}`)}else{"output"in e&&w(n,`${s}.output`,`forbidden for ${a}`),"stdDev"in e&&a!=="bollinger"&&w(n,`${s}.stdDev`,`forbidden for ${a}`);for(let i of["fastPeriod","slowPeriod","signalPeriod"])i in e&&w(n,`${s}.${i}`,`forbidden for ${a}`)}return o}case"compare":return(typeof e.op!="string"||!ns.has(e.op))&&w(n,`${s}.op`,"must be gt|gte|lt|lte|eq"),(typeof e.left!="string"||!e.left)&&w(n,`${s}.left`,"must be a node id"),(typeof e.right!="string"||!e.right)&&w(n,`${s}.right`,"must be a node id"),{id:e.id,type:"compare",op:e.op,left:e.left,right:e.right};case"logic":{if((typeof e.op!="string"||!ss.has(e.op))&&w(n,`${s}.op`,"must be and|or|not"),!Array.isArray(e.inputs))return w(n,`${s}.inputs`,"must be an array of node ids"),{id:e.id,type:"logic",op:e.op,inputs:[]};let a=[];for(let o=0;o<e.inputs.length;o++){let i=e.inputs[o];typeof i!="string"||!i?w(n,`${s}.inputs.${o}`,"must be a node id"):a.push(i)}return e.op==="not"?a.length!==1&&w(n,`${s}.inputs`,"not requires exactly one input"):(e.op==="and"||e.op==="or")&&a.length<2&&w(n,`${s}.inputs`,`${e.op} requires at least two inputs`),{id:e.id,type:"logic",op:e.op,inputs:a}}case"cross":return(typeof e.direction!="string"||!os.has(e.direction))&&w(n,`${s}.direction`,"must be above|below"),(typeof e.left!="string"||!e.left)&&w(n,`${s}.left`,"must be a node id"),(typeof e.right!="string"||!e.right)&&w(n,`${s}.right`,"must be a node id"),{id:e.id,type:"cross",direction:e.direction,left:e.left,right:e.right};default:return null}}function ds(e,t,r){if(!Y(e))return w(t,"risk","must be a plain object"),null;ce(e,dr,"risk",t);for(let d of dr)(!(d in e)||e[d]==null)&&w(t,`risk.${d}`,"required field is missing");let n={},s=e.maxLeverage;!U(s)||s<=0||s>50?w(t,"risk.maxLeverage","must be a number > 0 and <= 50"):n.maxLeverage=s;let a=e.maxNotionalUsd;!U(a)||a<=0?w(t,"risk.maxNotionalUsd","must be a number > 0"):n.maxNotionalUsd=a;let o=e.positionSizePct;!U(o)||o<=0||o>100?w(t,"risk.positionSizePct","must be a number > 0 and <= 100"):n.positionSizePct=o;let i=e.stopLossPct;!U(i)||i<=0||i>100?w(t,"risk.stopLossPct","must be a number > 0 and <= 100"):n.stopLossPct=i;let l=e.takeProfitPct;!U(l)||l<=0||l>1e3?w(t,"risk.takeProfitPct","must be a number > 0 and <= 1000"):n.takeProfitPct=l;let u=e.cooldownBars;!Number.isInteger(u)||u<0||u>1e5?w(t,"risk.cooldownBars","must be an integer >= 0 and <= 100000"):n.cooldownBars=u;let f=e.maxDailyLossPct;!U(f)||f<=0||f>100?w(t,"risk.maxDailyLossPct","must be a number > 0 and <= 100"):n.maxDailyLossPct=f;let c=e.expiresAt;return!Number.isInteger(c)||c<=0?w(t,"risk.expiresAt","must be an integer epoch milliseconds > 0"):(r.nowMs!==void 0&&(Number.isInteger(r.nowMs)?c<=r.nowMs&&w(t,"risk.expiresAt","must be strictly greater than nowMs"):w(t,"nowMs","must be an integer epoch milliseconds")),n.expiresAt=c),n}function wt(e,t={}){let r=[];if(!Y(e))return w(r,"","strategy must be a plain object"),{ok:!1,errors:r,strategy:null};ce(e,ur,"",r);for(let c of ur)(!(c in e)||e[c]==null)&&w(r,c,"required field is missing");e.version!==ft&&w(r,"version",`must be ${ft}`),(typeof e.id!="string"||!br.test(e.id))&&w(r,"id","must match /^[a-z0-9][a-z0-9._-]{0,63}$/"),(typeof e.name!="string"||e.name.length===0||e.name.length>yr)&&w(r,"name",`must be a non-empty string max ${yr}`);let n=ct(e.venue);n||w(r,"venue",`unknown strategy venue "${String(e.venue)}"`);let s=null;if(!n)Y(e.market)||w(r,"market","must be a plain object");else{let c=n.validateMarket(e.market);if(!c||typeof c.ok!="boolean"||!Array.isArray(c.errors))w(r,"market",`venue ${n.id} returned an invalid market validation result`);else if(c.ok)s=c.market;else for(let d of c.errors)w(r,d.path,d.message)}let a=us(e.parameters,r),o=null,i=new Map;if(!Array.isArray(e.nodes))w(r,"nodes","must be an array");else if(e.nodes.length>hr)w(r,"nodes",`too many nodes (max ${hr})`);else{o=[];for(let c=0;c<e.nodes.length;c++){let d=fs(e.nodes[c],c,a||{},r);d&&(typeof d.id=="string"&&Er.test(d.id)&&(i.has(d.id)?w(r,`nodes.${c}.id`,`duplicate node id "${d.id}"`):i.set(d.id,d)),o.push(d))}for(let c=0;c<o.length;c++){let d=o[c],m=`nodes.${c}`;for(let p of Ue(d))i.has(p)||w(r,m,`unknown node ref "${p}"`);if(d.type==="indicator"||d.type==="compare"||d.type==="cross")for(let p of Ue(d)){let h=i.get(p);h&&dt.has(h.type)&&w(r,m,`node ref "${p}" must be numeric`)}if(d.type==="logic")for(let p of Ue(d)){let h=i.get(p);h&&!dt.has(h.type)&&w(r,m,`node ref "${p}" must be boolean`)}}ls(i)&&w(r,"nodes","graph contains a cycle")}let l=null;if(!Y(e.rules))w(r,"rules","must be a plain object");else{ce(e.rules,pt,"rules",r);for(let c of pt)c in e.rules||w(r,`rules.${c}`,"required field is missing");l={};for(let c of pt){let d=e.rules[c];if(d===null){l[c]=null;continue}if(typeof d!="string"||!d){w(r,`rules.${c}`,"must be a node id or null"),l[c]=d;continue}if(!i.has(d)){w(r,`rules.${c}`,`unknown node ref "${d}"`),l[c]=d;continue}let m=i.get(d);dt.has(m.type)||w(r,`rules.${c}`,`rule must reference a boolean node, not ${m.type}`),l[c]=d}}let u=ds(e.risk,r,t);if(r.length)return{ok:!1,errors:r,strategy:null};let f=ht({version:ft,id:e.id,name:e.name,venue:n.id,market:s,parameters:a,nodes:o,rules:l,risk:u});return{ok:!0,errors:[],strategy:f}}function J(e,t={}){let r=wt(e,t);if(!r.ok)throw new Ee(r.errors);return r.strategy}function ps(e){let t=J(e);return JSON.stringify(yt(t))}function we(e){let t=ps(e);return es("sha256").update(t,"utf8").digest("hex")}function Oe(e,t){if(!Y(e))throw new Ee([{path:"",message:"strategy must be a plain object"}]);if(!Y(t))throw new Ee([{path:"overrides",message:"must be a plain object"}]);let r=J(e),n={};for(let[a,o]of Object.entries(r.parameters))n[a]={value:o.value,min:o.min,max:o.max,step:o.step};let s=[];for(let[a,o]of Object.entries(t)){if(!Object.prototype.hasOwnProperty.call(n,a)){w(s,a,`unknown parameter "${a}"`);continue}let i=n[a];if(!U(o)){w(s,a,"override must be a finite number");continue}if(!xr(o,i.min,i.max,i.step)){w(s,a,"override must lie on the declared min/max/step grid");continue}n[a]={...i,value:o}}if(s.length)throw new Ee(s);return J({version:r.version,id:r.id,name:r.name,venue:r.venue,market:{coin:r.market.coin,interval:r.market.interval},parameters:n,nodes:r.nodes.map(a=>{let o={...a};return Array.isArray(a.inputs)&&(o.inputs=[...a.inputs]),o}),rules:{...r.rules},risk:{...r.risk}})}var ft,br,Er,ts,rs,ns,ss,os,is,as,dt,ur,fr,pt,dr,cs,pr,mr,hr,yr,Ee,fe=B(()=>{ut();ft=1,br=/^[a-z0-9][a-z0-9._-]{0,63}$/,Er=/^[A-Za-z0-9][A-Za-z0-9._-]{0,63}$/,ts=new Set(["open","high","low","close","volume","fundingRate","openInterest"]),rs=new Set(["sma","ema","rsi","macd","bollinger","atr"]),ns=new Set(["gt","gte","lt","lte","eq"]),ss=new Set(["and","or","not"]),os=new Set(["above","below"]),is=new Set(["line","signal","histogram"]),as=new Set(["upper","middle","lower"]),dt=new Set(["compare","logic","cross"]),ur=new Set(["version","id","name","venue","market","parameters","nodes","rules","risk"]),fr=new Set(["value","min","max","step"]),pt=new Set(["entryLong","entryShort","exitLong","exitShort"]),dr=new Set(["maxLeverage","maxNotionalUsd","positionSizePct","stopLossPct","takeProfitPct","cooldownBars","maxDailyLossPct","expiresAt"]),cs=new Set(["id","type"]),pr={input:new Set(["id","type","field"]),constant:new Set(["id","type","value"]),indicator:new Set(["id","type","indicator","input","period","fastPeriod","slowPeriod","signalPeriod","stdDev","output"]),compare:new Set(["id","type","op","left","right"]),logic:new Set(["id","type","op","inputs"]),cross:new Set(["id","type","direction","left","right"])},mr=16,hr=128,yr=100,Ee=class extends Error{constructor(t){let r=t.map(n=>`${n.path}: ${n.message}`);super(`invalid strategy (${t.length} error${t.length===1?"":"s"}): ${r.join("; ")}`),this.name="StrategyValidationError",this.errors=t}}});function ve(e){if(!Array.isArray(e))throw new TypeError("values must be an array");for(let t=0;t<e.length;t++){let r=e[t];if(typeof r!="number"||!Number.isFinite(r))throw new TypeError(`values[${t}] must be a finite number`)}}function le(e){if(!Number.isInteger(e)||e<=0)throw new TypeError("period must be a positive integer")}function ms(e){if(!Array.isArray(e))throw new TypeError("bars must be an array");for(let t=0;t<e.length;t++){let r=e[t];if(r==null||typeof r!="object")throw new TypeError(`bars[${t}] must be an object`);for(let n of["o","h","l","c"]){let s=r[n];if(typeof s!="number"||!Number.isFinite(s))throw new TypeError(`bars[${t}].${n} must be a finite number`)}if(r.h<r.l)throw new TypeError(`bars[${t}] high must be >= low`)}}function Sr(e,t){ve(e),le(t);let r=new Array(e.length).fill(null);if(e.length<t)return r;let n=0;for(let s=0;s<e.length;s++)n+=e[s],s>=t&&(n-=e[s-t]),s>=t-1&&(r[s]=n/t);return r}function qe(e,t){ve(e),le(t);let r=new Array(e.length).fill(null);if(e.length<t)return r;let n=0;for(let o=0;o<t;o++)n+=e[o];let s=n/t;r[t-1]=s;let a=2/(t+1);for(let o=t;o<e.length;o++)s=a*e[o]+(1-a)*s,r[o]=s;return r}function Ar(e,t){ve(e),le(t);let r=new Array(e.length).fill(null);if(e.length<=t)return r;let n=0,s=0;for(let i=1;i<=t;i++){let l=e[i]-e[i-1];l>=0?n+=l:s-=l}let a=n/t,o=s/t;r[t]=kr(a,o);for(let i=t+1;i<e.length;i++){let l=e[i]-e[i-1],u=l>0?l:0,f=l<0?-l:0;a=(a*(t-1)+u)/t,o=(o*(t-1)+f)/t,r[i]=kr(a,o)}return r}function kr(e,t){return e===0&&t===0?50:t===0?100:e===0?0:100-100/(1+e/t)}function Pr(e,t={}){ve(e);let r=t.fastPeriod,n=t.slowPeriod,s=t.signalPeriod;if(le(r),le(n),le(s),r>=n)throw new TypeError("fastPeriod must be < slowPeriod");let a=qe(e,r),o=qe(e,n),i=new Array(e.length).fill(null);for(let c=0;c<e.length;c++)a[c]!=null&&o[c]!=null&&(i[c]=a[c]-o[c]);let l=new Array(e.length).fill(null),u=new Array(e.length).fill(null),f=[];for(let c=0;c<i.length;c++)i[c]!=null&&f.push(c);if(f.length>=s){let c=0;for(let h=0;h<s;h++)c+=i[f[h]];let d=c/s,m=f[s-1];l[m]=d,u[m]=i[m]-d;let p=2/(s+1);for(let h=s;h<f.length;h++){let E=f[h];d=p*i[E]+(1-p)*d,l[E]=d,u[E]=i[E]-d}}return{line:i,signal:l,histogram:u}}function $r(e,t={}){ve(e);let r=t.period,n=t.stdDev;if(le(r),typeof n!="number"||!Number.isFinite(n)||n<=0)throw new TypeError("stdDev must be a finite number > 0");let s=new Array(e.length).fill(null),a=new Array(e.length).fill(null),o=new Array(e.length).fill(null);if(e.length<r)return{upper:a,middle:s,lower:o};let i=0,l=0;for(let u=0;u<e.length;u++){let f=e[u];if(i+=f,l+=f*f,u>=r){let c=e[u-r];i-=c,l-=c*c}if(u>=r-1){let c=i/r,d=l/r-c*c;d<0&&d>-1e-12&&(d=0);let m=Math.sqrt(d);s[u]=c,a[u]=c+n*m,o[u]=c-n*m}}return{upper:a,middle:s,lower:o}}function Tr(e,t){ms(e),le(t);let r=new Array(e.length).fill(null);if(e.length<t)return r;let n=new Array(e.length);for(let o=0;o<e.length;o++){let i=e[o];if(o===0)n[o]=i.h-i.l;else{let l=e[o-1].c;n[o]=Math.max(i.h-i.l,Math.abs(i.h-l),Math.abs(i.l-l))}}let s=0;for(let o=0;o<t;o++)s+=n[o];let a=s/t;r[t-1]=a;for(let o=t;o<e.length;o++)a=(a*(t-1)+n[o])/t,r[o]=a;return r}var _r=B(()=>{});import{createHash as hs}from"node:crypto";var gt,ys,ws,gs,Ir,Or=B(()=>{gt=2,ys="93f9c998260e73756c13871dc1a84dd6cdb26ec6113bd1941f023519939db440",ws="68f5b412a9975f04024cf9b9b6209b4bccedd52f176e95f34f786b3f53479c6a",gs="f197a38ff1c0f4ebe13326db8cbb8167ea3dd5d62e6033fe97c2fee8d23d96b5",Ir=hs("sha256").update(JSON.stringify({version:gt,compilerSourceHash:ys,indicatorsSourceHash:ws,schemaSourceHash:gs})).digest("hex")});function X(e){return typeof e=="number"&&Number.isFinite(e)}function xs(e){let t=new Map(e.map(i=>[i.id,i])),r=i=>{switch(i.type){case"indicator":return i.input?[i.input]:[];case"compare":case"cross":return[i.left,i.right];case"logic":return[...i.inputs];default:return[]}},n=new Map,s=new Map;for(let i of e)n.set(i.id,0),s.set(i.id,[]);for(let i of e)for(let l of r(i))t.has(l)&&(s.get(l).push(i.id),n.set(i.id,n.get(i.id)+1));let a=[];for(let[i,l]of n)l===0&&a.push(i);let o=[];for(;a.length;){let i=a.shift();o.push(i);for(let l of s.get(i))n.set(l,n.get(l)-1),n.get(l)===0&&a.push(l)}if(o.length!==e.length)throw new Error("strategy graph is cyclic");return o}function xe(e,t){return e!=null&&typeof e=="object"&&"param"in e?t[e.param].value:e}function ks(e,t,r){if(!Array.isArray(e)||e.length===0)throw new TypeError("bars must be a non-empty array");if(!Number.isInteger(t)||t<0||t>=e.length)throw new RangeError("index out of range");let n=null;for(let s=0;s<=t;s++){let a=e[s];if(a==null||typeof a!="object"||Array.isArray(a))throw new TypeError(`bars[${s}] must be an object`);let{t:o,o:i,h:l,l:u,c:f,v:c}=a;if(!X(o)&&(typeof o=="number"&&Number.isFinite(o)),!Number.isFinite(o))throw new TypeError(`bars[${s}].t must be finite`);for(let[d,m]of[["o",i],["h",l],["l",u],["c",f],["v",c]])if(!X(m))throw new TypeError(`bars[${s}].${d} must be a finite number`);for(let[d,m]of[["o",i],["h",l],["l",u],["c",f]])if(!(m>0))throw new TypeError(`bars[${s}].${d} price must be positive`);if(c<0)throw new TypeError(`bars[${s}].v volume must be non-negative`);if(l<Math.max(i,f,u))throw new TypeError(`bars[${s}] high must be >= max(open, close, low)`);if(u>Math.min(i,f,l))throw new TypeError(`bars[${s}] low must be <= min(open, close, high)`);if(n!=null){if(!(o>n))throw new TypeError("bars t must be strictly increasing");if(o-n!==Es[r])throw new TypeError(`bars t must match ${r} cadence`)}if(n=o,"fundingRate"in a&&a.fundingRate!=null&&!X(a.fundingRate))throw new TypeError(`bars[${s}].fundingRate must be finite when present`);if("openInterest"in a&&a.openInterest!=null){if(!X(a.openInterest))throw new TypeError(`bars[${s}].openInterest must be finite when present`);if(a.openInterest<0)throw new TypeError(`bars[${s}].openInterest must be non-negative`)}}}function me(e,t,r,n,s,a){if(a.has(e))return a.get(e);let o=t.get(e),i;switch(o.type){case"input":{let l=bs[o.field];i=new Array(s+1);for(let u=0;u<=s;u++){let f=n[u][l];i[u]=f===void 0?null:f}break}case"constant":{let l=xe(o.value,r);i=new Array(s+1).fill(l);break}case"indicator":{let l=o.period!=null?xe(o.period,r):void 0;if(o.indicator==="atr"){let c=[];for(let d=0;d<=s;d++){let m=n[d];c.push({o:m.o,h:m.h,l:m.l,c:m.c})}i=Tr(c,l);break}let f=me(o.input,t,r,n,s,a).map((c,d)=>{if(c==null||!X(c))throw new TypeError(`indicator input ${o.input} has non-finite value at ${d}`);return c});if(o.indicator==="sma")i=Sr(f,l);else if(o.indicator==="ema")i=qe(f,l);else if(o.indicator==="rsi")i=Ar(f,l);else if(o.indicator==="macd")i=Pr(f,{fastPeriod:xe(o.fastPeriod,r),slowPeriod:xe(o.slowPeriod,r),signalPeriod:xe(o.signalPeriod,r)})[o.output];else if(o.indicator==="bollinger")i=$r(f,{period:l,stdDev:xe(o.stdDev,r)})[o.output];else throw new Error(`unsupported indicator ${o.indicator}`);break}case"compare":{let l=me(o.left,t,r,n,s,a),u=me(o.right,t,r,n,s,a);i=new Array(s+1);for(let f=0;f<=s;f++){let c=l[f],d=u[f];if(c==null||d==null||!X(c)||!X(d)){i[f]=!1;continue}switch(o.op){case"gt":i[f]=c>d;break;case"gte":i[f]=c>=d;break;case"lt":i[f]=c<d;break;case"lte":i[f]=c<=d;break;case"eq":i[f]=c===d;break;default:i[f]=!1}}break}case"logic":{let l=o.inputs.map(u=>me(u,t,r,n,s,a));i=new Array(s+1);for(let u=0;u<=s;u++)if(o.op==="not"){let f=l[0][u];i[u]=f===!0?!1:f===!1}else if(o.op==="and"){let f=!0;for(let c of l)if(c[u]!==!0){f=!1;break}i[u]=f}else if(o.op==="or"){let f=!1;for(let c of l)if(c[u]===!0){f=!0;break}i[u]=f}else i[u]=!1;break}case"cross":{let l=me(o.left,t,r,n,s,a),u=me(o.right,t,r,n,s,a);i=new Array(s+1),i[0]=!1;for(let f=1;f<=s;f++){let c=l[f-1],d=u[f-1],m=l[f],p=u[f];if(c==null||d==null||m==null||p==null||!X(c)||!X(d)||!X(m)||!X(p)){i[f]=!1;continue}o.direction==="above"?i[f]=c<=d&&m>p:i[f]=c>=d&&m<p}break}default:throw new Error(`unknown node type ${o.type}`)}return a.set(e,i),i}function K(e,t={}){let r=J(e);t&&Object.keys(t).length&&(r=Oe(r,t));let n=new Map(r.nodes.map(m=>[m.id,m])),s=Object.freeze(xs(r.nodes)),a=r.parameters,o=new Set(r.nodes.filter(m=>m.type==="input").map(m=>m.field));if(r.nodes.some(m=>m.type==="indicator"&&m.indicator==="atr"))for(let m of["open","high","low","close"])o.add(m);let i=Object.freeze([...o].sort()),l=we(r);function u(m,p){let h={};for(let S of s){let P=m.get(S);h[S]=P[p]}let E=S=>S!=null&&h[S]===!0;return{values:h,signals:{entryLong:E(r.rules.entryLong),entryShort:E(r.rules.entryShort),exitLong:E(r.rules.exitLong),exitShort:E(r.rules.exitShort)}}}function f(m,p){ks(m,p,r.market.interval);let h=new Map;for(let E of s)me(E,n,a,m,p,h);return h}function c(m,p){return u(f(m,p),p)}function d(m){if(!Array.isArray(m)||m.length===0)throw new TypeError("bars must be a non-empty array");let p=m.length-1,h=f(m,p);return Object.freeze(m.map((E,S)=>Object.freeze(u(h,S))))}return Object.freeze({strategy:r,strategyHash:l,compilerVersion:_e,compilerHash:de,requiredSeries:i,nodeOrder:s,evaluate:c,evaluateAll:d})}var _e,de,bs,Es,pe=B(()=>{fe();_r();Or();_e=gt,de=Ir,bs=Object.freeze({open:"o",high:"h",low:"l",close:"c",volume:"v",fundingRate:"fundingRate",openInterest:"openInterest"}),Es=Object.freeze({"1m":6e4,"3m":18e4,"5m":3e5,"15m":9e5,"30m":18e5,"1h":36e5,"2h":72e5,"4h":144e5,"8h":288e5,"12h":432e5,"1d":864e5})});import{createHash as Ss}from"node:crypto";function Ps(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}function te(e){return typeof e=="number"&&Number.isFinite(e)}function bt(e){if(e==null||typeof e!="object"||Object.isFrozen(e))return e;if(Array.isArray(e)){for(let t of e)bt(t);return Object.freeze(e)}for(let t of Object.keys(e))bt(e[t]);return Object.freeze(e)}function Ce(e){if(Array.isArray(e))return e.map(Ce);if(e!=null&&typeof e=="object"){let t={};for(let r of Object.keys(e).sort())t[r]=Ce(e[r]);return t}return e}function Et(e,t="result"){if(typeof e=="number"){if(!Number.isFinite(e))throw new Error(`non-finite backtest result at ${t}`);return}if(!(e==null||typeof e!="object")){if(Array.isArray(e)){e.forEach((r,n)=>Et(r,`${t}[${n}]`));return}for(let[r,n]of Object.entries(e))Et(n,`${t}.${r}`)}}function Mr(e){if(!Array.isArray(e)||e.length===0)throw new TypeError("bars must be a non-empty array");let t=null;for(let r=0;r<e.length;r++){let n=e[r];if(n==null||typeof n!="object"||Array.isArray(n))throw new TypeError(`bars[${r}] must be an object`);let{t:s,o:a,h:o,l:i,c:l,v:u}=n;if(!te(s))throw new TypeError(`bars[${r}].t must be finite`);for(let[f,c]of[["o",a],["h",o],["l",i],["c",l],["v",u]])if(!te(c))throw new TypeError(`bars[${r}].${f} must be a finite number`);for(let[f,c]of[["o",a],["h",o],["l",i],["c",l]])if(!(c>0))throw new TypeError(`bars[${r}].${f} price must be positive`);if(u<0)throw new TypeError(`bars[${r}].v volume must be non-negative`);if(o<Math.max(a,l,i))throw new TypeError(`bars[${r}] high must be >= max(open, close, low)`);if(i>Math.min(a,l,o))throw new TypeError(`bars[${r}] low must be <= min(open, close, high)`);if(t!=null&&!(s>t))throw new TypeError("bars t must be strictly increasing");if(t=s,"fundingRate"in n&&n.fundingRate!=null&&!te(n.fundingRate))throw new TypeError(`bars[${r}].fundingRate must be finite when present`);if("fundingPaymentRate"in n&&n.fundingPaymentRate!=null&&!te(n.fundingPaymentRate))throw new TypeError(`bars[${r}].fundingPaymentRate must be finite when present`);if("openInterest"in n&&n.openInterest!=null&&!te(n.openInterest))throw new TypeError(`bars[${r}].openInterest must be finite when present`)}}function $e(e){if(!Array.isArray(e))throw new TypeError("bars must be an array");return e.length>0&&Mr(e),Ss("sha256").update(JSON.stringify(Ce(e)),"utf8").digest("hex")}function $s(e){if(e==null&&(e={}),!Ps(e))throw new TypeError("options must be a plain object");let t={...As},r=new Set(["initialEquityUsd","takerFeeBps","builderFeeBps","slippageBps","latencyBars","maxVolumeParticipationPct","nowMs"]);for(let n of Object.keys(e))if(!r.has(n))throw new TypeError(`unknown option "${n}"`);if("initialEquityUsd"in e){if(!te(e.initialEquityUsd)||e.initialEquityUsd<=0)throw new TypeError("initialEquityUsd must be a positive finite number");t.initialEquityUsd=e.initialEquityUsd}for(let n of["takerFeeBps","builderFeeBps","slippageBps"])if(n in e){let s=e[n];if(!te(s)||s<0)throw new TypeError(`${n} must be a finite number >= 0`);if(n==="slippageBps"?s>=1e4:s>1e4)throw new TypeError(`${n} exceeds its safe basis-point bound`);t[n]=s}if("latencyBars"in e){let n=e.latencyBars;if(!Number.isInteger(n)||n<1)throw new TypeError("latencyBars must be an integer >= 1");t.latencyBars=n}if("maxVolumeParticipationPct"in e){let n=e.maxVolumeParticipationPct;if(!te(n)||n<=0||n>100)throw new TypeError("maxVolumeParticipationPct must be in (0,100]");t.maxVolumeParticipationPct=n}if("nowMs"in e){if(!Number.isInteger(e.nowMs))throw new TypeError("nowMs must be an integer epoch milliseconds");t.nowMs=e.nowMs}return t}function Be(e){return e/1e4}function Ts(e,t,r){let n=Be(r);return t==="long"?e*(1+n):e*(1-n)}function _s(e,t,r){let n=Be(r);return t==="long"?e*(1-n):e*(1+n)}function vr(e,t,r){let n=Math.abs(e)*Be(t),s=Math.abs(e)*Be(r);return{taker:n,builder:s,total:n+s}}function Is(e,t){let r=e*(t.positionSizePct/100)*t.maxLeverage;return Math.min(r,t.maxNotionalUsd)}function Os(e,t,r){let n=r/100;return t==="long"?e*(1-n):e*(1+n)}function vs(e,t,r){let n=r/100;return t==="long"?e*(1+n):e*(1-n)}function Ms(e,t,r,n){if(!(r>0))return t==="long"?0:Number.POSITIVE_INFINITY;let s=Math.min(.99,1/(2*r)+n/1e4);return t==="long"?e*(1-1/r)/(1-s):e*(1+1/r)/(1+s)}function Ns(e,t,r){return t==="long"?e.l<=r:e.h>=r}function Rs(e,t,r){return t==="long"?e.h>=r:e.l<=r}function js(e,t,r){return t==="long"?e.l<=r:e.h>=r}function Me(e,t){for(let r of e.requiredSeries)if(["fundingRate","openInterest"].includes(r)&&!t.every(n=>te(n?.[r])))throw new Error(`strategy required series is absent: ${r}`)}function Fs(e){if(e.length<3)return 0;let t=[];for(let o=1;o<e.length;o++){let i=e[o-1].equity,l=e[o].equity;i>0&&t.push((l-i)/i)}if(t.length<2)return 0;let r=0;for(let o of t)r+=o;let n=r/t.length,s=0;for(let o of t)s+=(o-n)**2;let a=Math.sqrt(s/(t.length-1));return a>0?n/a:0}function Ls(e){let t=-1/0,r=0;for(let n of e){let s=n.equity;if(s>t&&(t=s),t>0){let a=(t-s)/t*100;a>r&&(r=a)}}return r}function ae(e,t,r={}){let n=$s(r);Mr(t);let s=$e(t);n.nowMs!==void 0&&J(e,{nowMs:n.nowMs});let a=K(e);if(Me(a,t),n.nowMs!==void 0&&a.strategy.risk.expiresAt<=n.nowMs)throw new Error("strategy is expired: risk.expiresAt must be strictly greater than nowMs");let o=a.strategy.risk,i=a.evaluateAll(t),l=n.latencyBars,u=n.slippageBps,f=n.takerFeeBps,c=n.builderFeeBps,d=n.initialEquityUsd,m=0,p=0,h=0,E=0,S=0,P=[],T=[],x=[],R=[],_=[],g=null,V=0,oe=null,ie=d,W=!1,y=0,A=0,v=[],j=new Array(t.length).fill(0);function F(b){v.push(b)}function I(b){let $=t[b].v*(n.maxVolumeParticipationPct/100);return Math.max(0,$-j[b])}function M(b){if(!g)return d;let $=g.side==="long"?(b-g.entryPrice)*g.qty:(g.entryPrice-b)*g.qty;return d+$}function z(b,$,k){let L=k.o,O=Is(d,o);if(!(O>0)||!(L>0))return;let H=Ts(L,$,u),N=O/H,C=I(b),Ae=H*C;if(N>C){x.push({kind:"entry",barIndex:b,time:k.t,side:$,requestedNotionalUsd:O,maxFillNotionalUsd:Ae,reason:"volume_participation"});return}j[b]+=N;let Q=Math.abs(H-L)*N,ne=vr(O,f,c);d-=ne.total,m+=ne.taker,p+=ne.builder,E+=Q,S+=O,g={lifecycleEpoch:++A,side:$,entryBarIndex:b,entryReferencePrice:L,entryPrice:H,qty:N,notionalUsd:O,stop:Os(H,$,o.stopLossPct),take:vs(H,$,o.takeProfitPct),liq:Ms(H,$,o.maxLeverage,f+c),entryFees:ne.taker,entryBuilderFees:ne.builder,entrySlippageUsd:Q,fundingAccrued:0}}function q(b,$,k,L){if(!g)return!1;let O=g.side,H=$,N=H;k!=="liquidation"&&L&&(N=_s(H,O,u));let C=g.qty,Ae=C*N;if(k!=="liquidation"){let Ht=I(b),cn=N*Ht;if(C>Ht)return x.push({kind:"exit",barIndex:b,time:t[b].t,side:O,requestedNotionalUsd:Ae,maxFillNotionalUsd:cn,reason:"volume_participation",triggerReason:k}),!1;j[b]+=C}let Q=vr(Ae,f,c),ne=k==="liquidation"?0:Math.abs(N-H)*C,Pe,Xe;O==="long"?(Pe=(H-g.entryReferencePrice)*C,Xe=(N-g.entryPrice)*C):(Pe=(g.entryReferencePrice-H)*C,Xe=(g.entryPrice-N)*C),d+=Xe,d-=Q.total,m+=Q.taker,p+=Q.builder,E+=ne,S+=Ae;let an={side:O,entryBarIndex:g.entryBarIndex,entryTime:t[g.entryBarIndex].t,entryPrice:g.entryPrice,exitBarIndex:b,exitTime:t[b].t,exitPrice:N,exitReason:k,qty:C,notionalUsd:g.notionalUsd,grossPnlUsd:Pe,feesUsd:g.entryFees+Q.taker,builderFeesUsd:g.entryBuilderFees+Q.builder,fundingUsd:g.fundingAccrued,slippageUsd:g.entrySlippageUsd+ne,netPnlUsd:Pe-(g.entryFees+Q.taker+g.entryBuilderFees+Q.builder)-g.fundingAccrued-(g.entrySlippageUsd+ne)};return P.push(an),k==="liquidation"&&T.push({barIndex:b,time:t[b].t,side:O,price:N,tradeIndex:P.length-1}),g=null,A+=1,y=b+1+(o.cooldownBars||0),!0}function Z(b,$,k,L){let O=b+1;if(O>=t.length)return;v.some(N=>N.kind==="exit"&&N.side===$&&N.fillBar===O&&N.epoch===L)||F({kind:"exit",side:$,signalBar:b,fillBar:O,reason:k,epoch:L})}function je(b){let $=v.filter(k=>k.fillBar===b);for(let k=v.length-1;k>=0;k--)v[k].fillBar===b&&v.splice(k,1);$.sort((k,L)=>{let O=H=>H.kind==="exit"?0:1;return O(k)-O(L)});for(let k of $)if(k.kind==="exit"){if(!g||g.side!==k.side||g.lifecycleEpoch!==k.epoch)continue;let L=k.reason||"rule";q(b,t[b].o,L,!0)||Z(b,k.side,L,k.epoch)}else if(k.kind==="entry"){if(g||k.epoch!==A||b<y)continue;z(b,k.side,t[b])}}function Fe(b){if(!g)return;let $=t[b],k=$.fundingPaymentRate;if(k==null||!te(k)||k===0)return;let L=Math.abs(g.qty*$.c),O=k*L;g.side==="long"?(d-=O,g.fundingAccrued+=O,h+=O):(d+=O,g.fundingAccrued-=O,h-=O)}function Le(b){if(!g)return;let $=t[b].o;(g.side==="long"?$<=g.liq:$>=g.liq)&&q(b,$,"liquidation",!1)}function Nt(b){if(!g)return;let $=t[b],k=g.side,L=js($,k,g.liq),O=Ns($,k,g.stop),H=Rs($,k,g.take),N=C=>k==="long"?Math.min(C,$.o):Math.max(C,$.o);if(L){q(b,N(g.liq),"liquidation",!1);return}if(O&&H){q(b,N(g.stop),"stop_loss",!0)||Z(b,k,"stop_loss",g.lifecycleEpoch);return}if(O){q(b,N(g.stop),"stop_loss",!0)||Z(b,k,"stop_loss",g.lifecycleEpoch);return}H&&(q(b,g.take,"take_profit",!0)||Z(b,k,"take_profit",g.lifecycleEpoch))}for(let b=0;b<t.length;b++){let $=Math.floor(t[b].t/864e5);$!==oe&&(oe=$,ie=M(t[b].o),W=!1),Le(b),je(b),Nt(b),Fe(b),!W&&M(t[b].c)<=ie*(1-o.maxDailyLossPct/100)&&(W=!0,R.push({type:"daily_loss_limit",barIndex:b,time:t[b].t,message:"daily loss limit reached; new entries blocked for UTC day"}));let k=i[b].signals,L=b+l;if(g)(g.side==="long"&&k.exitLong===!0||g.side==="short"&&k.exitShort===!0)&&L<t.length&&(v.some(C=>C.kind==="exit"&&C.side===g.side&&C.fillBar===L&&C.epoch===g.lifecycleEpoch)||F({kind:"exit",side:g.side,signalBar:b,fillBar:L,reason:"rule",epoch:g.lifecycleEpoch}));else{let H=k.entryLong===!0,N=k.entryShort===!0;H&&N?R.push({type:"conflicting_entry_signals",barIndex:b,time:t[b].t,message:"conflicting entry signals; no position opened"}):!W&&(H||N)&&L<t.length&&b>=y&&F({kind:"entry",side:H?"long":"short",signalBar:b,fillBar:L,epoch:A})}let O=d;g&&(V+=1,O=M(t[b].c)),_.push({barIndex:b,time:t[b].t,equity:O,positionSide:g?g.side:null})}let Rt=null;if(g){let b=t.length-1;if(q(b,t[b].c,"end_of_data",!0))_[b]={barIndex:b,time:t[b].t,equity:d,positionSide:null};else{let k=M(t[b].c);Rt={side:g.side,entryBarIndex:g.entryBarIndex,entryTime:t[g.entryBarIndex].t,entryPrice:g.entryPrice,qty:g.qty,notionalUsd:g.notionalUsd,markPrice:t[b].c,markedEquityUsd:k},R.push({type:"open_position_at_end",barIndex:b,time:t[b].t,message:"end-of-data exit missed; position remains open and marked"})}}let jt=(g?M(t[t.length-1].c):d)-n.initialEquityUsd,rn=jt/n.initialEquityUsd*100,Ft=0,Je=0,Ke=0;for(let b of P)b.netPnlUsd>0?(Ft+=1,Je+=b.netPnlUsd):b.netPnlUsd<0&&(Ke+=-b.netPnlUsd);let Ye=P.length,nn=Ye===0?0:Ft/Ye,Ge=0;Ke>0?Ge=Je/Ke:Je>0&&(Ge=1e12);let sn={netPnlUsd:jt,netPnlPct:rn,maxDrawdownPct:Ls(_),winRate:nn,profitFactor:Ge,tradeCount:Ye,sharpe:Fs(_),turnoverUsd:S,exposurePct:V/t.length*100},on={initialEquityUsd:n.initialEquityUsd,takerFeeBps:n.takerFeeBps,builderFeeBps:n.builderFeeBps,slippageBps:n.slippageBps,latencyBars:n.latencyBars,maxVolumeParticipationPct:n.maxVolumeParticipationPct},Lt={barsHash:s,strategyHash:a.strategyHash,compilerHash:de,compilerVersion:_e,config:on,trades:P,equityCurve:_,metrics:sn,costs:{feesUsd:m,builderFeesUsd:p,fundingUsd:h,slippageUsd:E},liquidations:T,missedFills:x,openPositionAtEnd:Rt,flags:R};return Et(Lt),bt(Ce(Lt))}var As,He=B(()=>{pe();fe();As=Object.freeze({initialEquityUsd:1e4,takerFeeBps:3.5,builderFeeBps:2,slippageBps:2,latencyBars:1,maxVolumeParticipationPct:100})});import{createHash as Hs}from"node:crypto";function Js(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}function xt(e){if(e==null||typeof e!="object"||Object.isFrozen(e))return e;if(Array.isArray(e)){for(let t of e)xt(t);return Object.freeze(e)}for(let t of Object.keys(e))xt(e[t]);return Object.freeze(e)}function Ks(e){return String(e).trim().replace(/\s+/g," ")}function Ys(e){let t=e.match(/\b(long|short)\b/i);return t?t[1].toLowerCase():null}function Gs(e){for(let r of qs)if(new RegExp(`\\b${r}\\b`,"i").test(e))return r;let t=e.match(/\b([A-Z][A-Z0-9]{1,11})\b/);return t?t[1]:null}function Xs(e){let t=e.match(/\bon\s+(1m|3m|5m|15m|30m|1h|2h|4h|8h|12h|1d)\b/i);if(!t)return"15m";let r=t[1].toLowerCase();return Us.has(r)?r:null}function Ws(e){let t={...Bs},r=e.match(/stop\s*loss\s*(\d+(?:\.\d+)?)\s*%?/i);r&&(t.stopLossPct=Number(r[1]));let n=e.match(/take\s*profit\s*(\d+(?:\.\d+)?)\s*%?/i);n&&(t.takeProfitPct=Number(n[1]));let s=e.match(/leverage\s*(\d+(?:\.\d+)?)/i);s&&(t.maxLeverage=Number(s[1]));let a=e.match(/position\s*size\s*(\d+(?:\.\d+)?)\s*%?/i);a&&(t.positionSizePct=Number(a[1]));let o=e.match(/max\s*notional\s*(?:usd\s*)?\$?\s*(\d+(?:\.\d+)?)/i);return o&&(t.maxNotionalUsd=Number(o[1])),t}function Zs(e){return[/\bon\s+(?:1m|3m|5m|15m|30m|1h|2h|4h|8h|12h|1d)\b/gi,/\bstop\s*loss\s*\d+(?:\.\d+)?\s*%?/gi,/\btake\s*profit\s*\d+(?:\.\d+)?\s*%?/gi,/\bleverage\s*\d+(?:\.\d+)?/gi,/\bposition\s*size\s*\d+(?:\.\d+)?\s*%?/gi,/\bmax\s*notional\s*(?:usd\s*)?\$?\s*\d+(?:\.\d+)?/gi].some(r=>(e.match(r)??[]).length>1)}function Qs(e){let t=Hs("sha256").update(e,"utf8").digest("hex").slice(0,10),r=e.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,40),s=`${r.length?r:"draft"}-${t}`.replace(/[^a-z0-9._-]/g,"").slice(0,64);return/^[a-z0-9]/.test(s)?s:`d${s}`.slice(0,64)}function eo(e){let t=e.match(/\bema\s*(\d+)\s*cross(?:es)?\s*(above|below)\s*ema\s*(\d+)\b/i);if(!t)return null;let r=Number(t[1]),n=t[2].toLowerCase(),s=Number(t[3]);if(!(r>0)||!(s>0)||r===s)return null;let a=/\b(exit\s+on\s+reverse|reverse\s+exit)\b/i.test(e);return{kind:"ema_cross",fast:r,slow:s,direction:n,reverse:a}}function to(e){let t=e.match(/\brsi\s*(\d+)\s*(above|below)\s*(-?\d+(?:\.\d+)?)/i);if(!t)return null;let r=Number(t[3]);return!Number.isFinite(r)||r<=0||r>=100?null:{kind:"rsi",period:Number(t[1]),op:t[2].toLowerCase(),threshold:r}}function ro(e){let t=e.match(/\bfunding\s*rate\s*(above|below)\s*(-?\d+(?:\.\d+)?)(%?)(?=\s|,|$)/i);if(!t)return null;let r=Number(t[2]);return t[3]==="%"&&(r=r/100),{kind:"funding",op:t[1].toLowerCase(),threshold:r}}function no(e,t){let r=e.replace(/^(long|short)\s+[A-Z][A-Z0-9]{1,11}\s+when\s+/i,"");if(r===e)return!1;t.kind==="ema_cross"?r=r.replace(/^ema\s*\d+\s*cross(?:es)?\s*(?:above|below)\s*ema\s*\d+\b/i,""):t.kind==="rsi"?r=r.replace(/^rsi\s*\d+\s*(?:above|below)\s*\d+(?:\.\d+)?\b/i,""):r=r.replace(/^funding\s*rate\s*(?:above|below)\s*-?\d+(?:\.\d+)?%?(?=\s|,|$)/i,"");let n=[/(?:,\s*)?\bon\s+(?:1m|3m|5m|15m|30m|1h|2h|4h|8h|12h|1d)\b/gi,/(?:,\s*)?\bstop\s*loss\s*\d+(?:\.\d+)?\s*%?/gi,/(?:,\s*)?\btake\s*profit\s*\d+(?:\.\d+)?\s*%?/gi,/(?:,\s*)?\bleverage\s*\d+(?:\.\d+)?/gi,/(?:,\s*)?\bposition\s*size\s*\d+(?:\.\d+)?\s*%?/gi,/(?:,\s*)?\bmax\s*notional\s*(?:usd\s*)?\$?\s*\d+(?:\.\d+)?/gi];t.kind==="ema_cross"&&n.push(/(?:,\s*)?\b(?:exit\s+on\s+reverse|reverse\s+exit)\b/gi);for(let s of n)r=r.replace(s,"");return r.replace(/[\s,;]+/g,"")===""}function Nr(e){let t=Math.max(2,Math.floor(e/2));return{value:e,min:Math.max(2,e-t),max:Math.min(500,e+t),step:1}}function so({side:e,coin:t,interval:r,risk:n,expiresAt:s,id:a,name:o,spec:i}){let l=[{id:"c",type:"input",field:"close"},{id:"emaLeft",type:"indicator",indicator:"ema",input:"c",period:{param:"ema_left_period"}},{id:"emaRight",type:"indicator",indicator:"ema",input:"c",period:{param:"ema_right_period"}},{id:"cross",type:"cross",direction:i.direction,left:"emaLeft",right:"emaRight"}],u={entryLong:null,entryShort:null,exitLong:null,exitShort:null};if(e==="long"?u.entryLong="cross":u.entryShort="cross",i.reverse){let f=i.direction==="above"?"below":"above";l.push({id:"crossRev",type:"cross",direction:f,left:"emaLeft",right:"emaRight"}),e==="long"?u.exitLong="crossRev":u.exitShort="crossRev"}return{version:1,id:a,name:o,venue:"hyperliquid",market:{coin:t,interval:r},parameters:{ema_left_period:Nr(i.fast),ema_right_period:Nr(i.slow)},nodes:l,rules:u,risk:{...n,expiresAt:s}}}function oo({side:e,coin:t,interval:r,risk:n,expiresAt:s,id:a,name:o,spec:i}){let l=[{id:"c",type:"input",field:"close"},{id:"rsi",type:"indicator",indicator:"rsi",input:"c",period:i.period},{id:"thr",type:"constant",value:i.threshold},{id:"sig",type:"compare",op:i.op==="above"?"gt":"lt",left:"rsi",right:"thr"}];return{version:1,id:a,name:o,venue:"hyperliquid",market:{coin:t,interval:r},parameters:{},nodes:l,rules:{entryLong:e==="long"?"sig":null,entryShort:e==="short"?"sig":null,exitLong:null,exitShort:null},risk:{...n,expiresAt:s}}}function io({side:e,coin:t,interval:r,risk:n,expiresAt:s,id:a,name:o,spec:i}){let l=[{id:"fr",type:"input",field:"fundingRate"},{id:"thr",type:"constant",value:i.threshold},{id:"sig",type:"compare",op:i.op==="above"?"gt":"lt",left:"fr",right:"thr"}];return{version:1,id:a,name:o,venue:"hyperliquid",market:{coin:t,interval:r},parameters:{},nodes:l,rules:{entryLong:e==="long"?"sig":null,entryShort:e==="short"?"sig":null,exitLong:null,exitShort:null},risk:{...n,expiresAt:s}}}function Rr(e,t={}){if(typeof e!="string")throw new D("prompt must be a string");if(e.length>1e3)throw new D("prompt length must be <= 1000");if(!Js(t))throw new D("options must be a plain object");if(!Number.isInteger(t.nowMs))throw new D("options.nowMs is required integer epoch ms");let r=t.nowMs,n=Vs;if("expiresInMs"in t){if(!Number.isInteger(t.expiresInMs))throw new D("expiresInMs must be an integer");if(n=t.expiresInMs,n<zs||n>Ds)throw new D("expiresInMs must be between 1h and 30d")}if(Cs.test(e))throw new D(`prompt appears to contain secrets and is rejected. ${ke}`);let s=Ks(e);if(!s)throw new D(`empty prompt. ${ke}`);if(Zs(s))throw new D(`duplicate interval or risk clause. ${ke}`);let a=Ys(s),o=Gs(s),i=Xs(s);if(!a||!o||!i)throw new D(`could not parse side/coin/interval. ${ke}`);let l=Ws(s);if(!(l.maxLeverage>0)||l.maxLeverage>50)throw new D("leverage out of range");if(!(l.positionSizePct>0)||l.positionSizePct>100)throw new D("position size out of range");let u=r+n,f=Qs(s),c=`Draft ${o} ${a}`.slice(0,100),d=eo(s),m=to(s),p=ro(s),h=[d,m,p].filter(Boolean);if(h.length!==1)throw new D(`unsupported or ambiguous prompt. ${ke}`);if(!no(s,h[0]))throw new D(`unsupported or ambiguous prompt. ${ke}`);let E,S=h[0],P={side:a,coin:o,interval:i,risk:l,expiresAt:u,id:f,name:c,spec:S};S.kind==="ema_cross"?E=so(P):S.kind==="rsi"?E=oo(P):E=io(P);let T=wt(E,{nowMs:r});if(!T.ok)throw new D(`draft failed validation: ${T.errors.map(x=>x.message).join("; ")}`);return xt(J(E,{nowMs:r}))}var D,Us,qs,Cs,ke,Bs,zs,Ds,Vs,jr=B(()=>{fe();D=class extends Error{constructor(t){super(t),this.name="StrategyDraftError"}},Us=new Set(["1m","3m","5m","15m","30m","1h","2h","4h","8h","12h","1d"]),qs=new Set(["BTC","ETH","SOL","HYPE"]),Cs=/\b(mnemonic|private\s*key|privkey|seed\s*phrase|seed\b|api[_-]?key|secret\s*key|wallet\s*key|passphrase)\b/i,ke="Supported grammar: (1) EMA cross: <long|short> <COIN> when EMA <n> crosses <above|below> EMA <m> [on <interval>] [, exit on reverse] [, risk knobs]; (2) RSI: <long|short> <COIN> when RSI <n> <above|below> <threshold> [on <interval>] [, risk knobs]; (3) funding: <long|short> <COIN> when funding rate <above|below> <decimal|percent%> [on <interval>] [, risk knobs]. Risk knobs: stop loss %, take profit %, leverage, position size %, max notional USD. Coins: BTC ETH SOL HYPE or uppercase token <=12 chars. Intervals: 1m 3m 5m 15m 30m 1h 2h 4h 8h 12h 1d.",Bs=Object.freeze({maxLeverage:1,maxNotionalUsd:100,positionSizePct:5,stopLossPct:2,takeProfitPct:4,cooldownBars:1,maxDailyLossPct:3}),zs=36e5,Ds=30*864e5,Vs=864e5});import{createHash as ao}from"node:crypto";function Hr(e){let t=String(e).toLowerCase();return t==="holdout"||t==="test"||t==="oos"||t.includes("holdout")||t.includes("oos")?!0:t==="testbars"||t.endsWith("testbars")||t.startsWith("test")||t.endsWith("test")?!t.includes("backtest"):!1}function Ur(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}function St(e){if(e==null||typeof e!="object"||Object.isFrozen(e))return e;if(Array.isArray(e)){for(let t of e)St(t);return Object.freeze(e)}for(let t of Object.keys(e))St(e[t]);return Object.freeze(e)}function Ne(e){if(Array.isArray(e))return e.map(Ne);if(e!=null&&typeof e=="object"){let t={};for(let r of Object.keys(e).sort())t[r]=Ne(e[r]);return t}return e}function ze(e){return JSON.stringify(Ne(e))}function co(e){let{min:t,max:r,step:n}=e;if(!(n>0)||t>r)return[];let s=[],a=Math.floor((r-t)/n+1e-9);for(let i=0;i<=a;i++){let l=t+i*n;if(l>r+1e-9)break;let u=Math.abs(l-Math.round(l))<1e-9?Math.round(l):Number(l.toPrecision(12));u<t-1e-9||u>r+1e-9||s.push(u)}if(s.length===0)return[];let o=s[s.length-1];if(Math.abs(o-r)>1e-9){let i=(r-t)/n;Math.abs(i-Math.round(i))<=1e-9&&s.push(r)}return s}function lo(e,t){if(e.length===0)return[];let r=[{}];for(let n of e){let s=t[n],a=[];for(let o of r)for(let i of s)a.push({...o,[n]:i});r=a}return r.sort((n,s)=>{let a=ze(n),o=ze(s);return a<o?-1:a>o?1:0}),r}function kt(e,t,r,n,s){let a=0;if(e==="maxDrawdownPct"){if(a=t.maxDrawdownPct-n.maxDrawdownPct,a!==0)return a<0}else if(a=t[e]-n[e],a!==0)return a>0;let o=ze(r),i=ze(s);return o<i}function qr(e,t,r={}){if(!Ur(r))throw new TypeError("options must be a plain object");for(let x of Object.keys(r))if(Hr(x))throw new TypeError(`options must not include holdout/test/oos key "${x}"`);let n=new Set(["maxTrials","objective","backtestOptions"]);for(let x of Object.keys(r))if(!n.has(x))throw new TypeError(`unknown option "${x}"`);let s=64;if("maxTrials"in r){let x=r.maxTrials;if(!Number.isInteger(x)||x<1||x>Fr)throw new TypeError(`maxTrials must be an integer 1..${Fr}`);s=x}let a=r.objective??"netPnlUsd";if(!Lr.has(a))throw new TypeError(`objective must be one of ${[...Lr].join("|")}`);let o=r.backtestOptions??{};if(!Ur(o))throw new TypeError("backtestOptions must be a plain object");for(let x of Object.keys(o))if(Hr(x))throw new TypeError(`backtestOptions must not include holdout/test/oos key "${x}"`);let i=J(e),l=Object.keys(i.parameters).sort();if(l.length===0)throw new Error("optimizeStrategy requires at least one declared parameter");let u={},f=1;for(let x of l){let R=co(i.parameters[x]);if(R.length===0)throw new Error(`parameter "${x}" produces an empty grid`);u[x]=R,f*=R.length}let c=lo(l,u);if(c.length===0)throw new Error("parameter grid is empty");let d=c.slice(0,s),m=[],p=null,h=null;for(let x of d){let R=Oe(i,x),_=ae(R,t,o);h==null&&(h=_.config);let g={netPnlUsd:_.metrics.netPnlUsd,netPnlPct:_.metrics.netPnlPct,maxDrawdownPct:_.metrics.maxDrawdownPct,winRate:_.metrics.winRate,profitFactor:_.metrics.profitFactor,tradeCount:_.metrics.tradeCount,sharpe:_.metrics.sharpe,turnoverUsd:_.metrics.turnoverUsd},V={parameters:{...x},metrics:g};m.push(V),(!p||kt(a,g,x,p.metrics,p.parameters))&&(p=V)}m.sort((x,R)=>kt(a,x.metrics,x.parameters,R.metrics,R.parameters)?-1:kt(a,R.metrics,R.parameters,x.metrics,x.parameters)?1:0);let E={...p.parameters},S=Oe(i,E),P={strategyHash:we(i),compilerHash:de,trainBarsHash:$e(t),backtestConfig:h,objective:a,maxTrials:s,trialsRun:m.length,candidates:m,bestParameters:E,bestStrategy:S},T={id:ao("sha256").update(JSON.stringify(Ne(P)),"utf8").digest("hex"),...P};return St(Ne(JSON.parse(JSON.stringify(T))))}var Fr,Lr,Cr=B(()=>{pe();fe();He();Fr=256,Lr=new Set(["netPnlUsd","profitFactor","sharpe","maxDrawdownPct"])});import se from"node:fs";import De from"node:path";function Ve(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}function re(e){return e==null?e:JSON.parse(JSON.stringify(e))}function fo(e){return String(e).toLowerCase().replace(/[^a-z0-9]/g,"")}function Se(e,t="record"){if(Array.isArray(e)){e.forEach((r,n)=>Se(r,`${t}[${n}]`));return}if(Ve(e))for(let[r,n]of Object.entries(e)){let s=fo(r);if(uo.some(a=>s.includes(a)))throw new Error(`shadow-store: forbidden secret-like field at ${t}.${r}`);Se(n,`${t}.${r}`)}}function po(e){if(typeof e!="string"||!e||!De.isAbsolute(e))throw new Error("shadow-store: path must be an absolute path")}function Br(e){let t;try{t=se.lstatSync(e)}catch(n){if(n&&n.code==="ENOENT")return;throw n}if(t.isSymbolicLink())throw new Error("shadow-store: store path must not be a symlink");if(!t.isFile())throw new Error("shadow-store: store path must be a regular file");if(t.mode&511&18)throw new Error("shadow-store: store file must not be group or world writable")}function mo(){return{version:Pt,runners:[]}}function zr(e,t){let r;try{r=JSON.parse(e)}catch{throw new Error("shadow-store: malformed JSON")}if(!Ve(r))throw new Error("shadow-store: malformed JSON root");if(r.version!==Pt)throw new Error(`shadow-store: unsupported version ${r.version}`);if(!Array.isArray(r.runners))throw new Error("shadow-store: runners must be an array");return Se(r,De.basename(t)),{version:Pt,runners:r.runners.map(n=>re(n))}}function Dr(e,t){Se(t,"store");let r=De.dirname(e);se.mkdirSync(r,{recursive:!0,mode:448});let n=De.join(r,`.shadow-store.${process.pid}.${Date.now()}.tmp`),s=`${JSON.stringify(t)}
3
- `;try{se.writeFileSync(n,s,{mode:384,flag:"wx"}),se.renameSync(n,e);try{se.chmodSync(e,384)}catch{}}catch(a){try{se.unlinkSync(n)}catch{}throw a}}function Vr(e={}){let t=e.path;if(po(t),Br(t),se.existsSync(t)?zr(se.readFileSync(t,"utf8"),t):Dr(t,mo()),At.has(t))return At.get(t);let r=!1,n=[];function s(){if(r)return;let p=n.shift();if(p){r=!0;try{let h=p.fn();r=!1,p.resolve(h),s()}catch(h){r=!1,p.reject(h),s()}}}function a(p){if(!r&&n.length===0){r=!0;try{return p()}finally{r=!1,queueMicrotask(s)}}return new Promise((h,E)=>{n.push({fn:p,resolve:h,reject:E}),queueMicrotask(s)})}function o(){return Br(t),zr(se.readFileSync(t,"utf8"),t)}function i(p){Dr(t,p)}function l(p){if(!Ve(p)||typeof p.id!="string"||!p.id)throw new Error("shadow-store: create requires record with string id");Se(p,"record");let h=o();if(h.runners.some(S=>S.id===p.id))throw new Error(`shadow-store: runner id already exists: ${p.id}`);let E=re(p);return h.runners.push(E),i(h),re(E)}function u(p){let h=o().runners.find(E=>E.id===p);return h?re(h):null}function f(){return o().runners.map(p=>re(p))}function c(p,h){if(typeof h!="function")throw new Error("shadow-store: updater must be a function");let E=o(),S=E.runners.findIndex(x=>x.id===p);if(S<0)throw new Error(`shadow-store: runner not found: ${p}`);let P=re(E.runners[S]),T=h(P);if(!Ve(T)||T.id!==p)throw new Error("shadow-store: updater must return record with same id");return Se(T,"record"),E.runners[S]=re(T),i(E),re(E.runners[S])}function d(p){let h=o(),E=h.runners.findIndex(P=>P.id===p);if(E<0)throw new Error(`shadow-store: runner not found: ${p}`);let S=re(h.runners[E]);return S.status!=="stopped"&&(S.status="stopped",h.runners[E]=S,i(h)),re(h.runners[E])}let m={create(p){return a(()=>l(p))},get(p){return u(p)},list(){return f()},update(p,h){return a(()=>c(p,h))},stop(p){return a(()=>d(p))}};return At.set(t,m),m}var Pt,uo,At,Jr=B(()=>{Pt=1,uo=["privatekey","secretkey","seed","mnemonic","passphrase","password","keystore","keymaterial","apikey","authtoken","accesstoken","refreshtoken","credential","bearer","signature","authorization","xprv","xpriv","wif"];At=new Map});import{createHash as _t}from"node:crypto";function $t(e){return e==null?e:JSON.parse(JSON.stringify(e))}function Tt(e){return Array.isArray(e)?e.map(Tt):e&&typeof e=="object"?Object.fromEntries(Object.keys(e).sort().map(t=>[t,Tt(e[t])])):e}function Yr(e){if(!e||typeof e!="object"||Array.isArray(e))throw new TypeError("shadow-runner: record must be an object");return _t("sha256").update(JSON.stringify(Tt(e))).digest("hex")}function ho(e,t,r,n,s){return _t("sha256").update(`${e}|${t}|${r}|${n}|${s}`).digest("hex")}function yo(e,t,r,n){return _t("sha256").update(`shadow|${e}|${t}|${r}|${n??""}`).digest("hex")}function wo(e){return e==="entryLong"||e==="exitShort"?"buy":e==="entryShort"||e==="exitLong"?"sell":e}function Kr(e){return e==="entryLong"||e==="entryShort"}function It({storePath:e,clock:t=Date.now}={}){if(typeof e!="string"||!e)throw new Error("shadow-runner: storePath required");let r=Vr({path:e});function n({strategy:l,evidenceId:u=null}={}){let f=K(l),c=u==null?null:String(u),d=r.list().filter(S=>S.status==="running"&&S.strategyHash===f.strategyHash&&S.compilerHash===f.compilerHash&&S.evidenceId===c).sort((S,P)=>S.createdAt-P.createdAt||S.id.localeCompare(P.id))[0];if(d)return $t(d);let m=t(),p=yo(m,f.strategyHash,f.compilerHash,c),h=r.get(p);if(h)return $t(h);let E={id:p,strategy:$t(f.strategy),strategyHash:f.strategyHash,compilerHash:f.compilerHash,evidenceId:c,status:"running",cursor:null,intendedOrders:[],fills:[],missedFills:[],markouts:[],createdAt:m,updatedAt:m,position:null,cooldownBarsRemaining:0,cooldownStartT:null,lastProcessedBarIndex:-1};return r.create(E)}function s(l){return r.get(l)}function a(){return r.list()}function o(l){return r.stop(l)}function i(l,u,{markoutHorizons:f=[1,4,12]}={}){if(!Array.isArray(u))throw new TypeError("shadow-runner: bars must be an array");return r.update(l,c=>{if(c.status!=="running")throw new Error("shadow-runner: runner is stopped");if(u.length===0)return c;let m=K(c.strategy).evaluateAll(u),p=new Map;for(let y=0;y<u.length;y++)p.set(u[y].t,y);let h=c.cursor,E=[];for(let y=0;y<u.length;y++){let A=u[y].t;(h==null||A>h)&&E.push(y)}if(E.length===0)return c;let S=new Map(c.intendedOrders.map(y=>[y.id,y])),P=new Set(c.fills.map(y=>y.orderId)),T=new Map(c.missedFills.map(y=>[y.orderId,y])),x=(y,A)=>`${y}|${A}`,R=new Map(c.markouts.map(y=>[x(y.orderId,y.horizon),y])),_=c.position?{...c.position}:null,g=Number.isInteger(c.cooldownBarsRemaining)?Math.max(0,c.cooldownBarsRemaining):0,V=Number.isFinite(c.cooldownStartT)?c.cooldownStartT:null;function oe({action:y,signalBarT:A,signalIndex:v}){let j=wo(y),F=ho(c.id,c.strategyHash,A,j,y);if(S.has(F))return S.get(F);let I=v+1,M=I<u.length,z={id:F,action:y,type:y,side:j,signalBarT:A,fillBarT:M?u[I].t:null,status:M?"open":"missed"};return S.set(F,z),c.intendedOrders.push(z),z}function ie(y,A,v){if(P.has(y.id))return;let j={orderId:y.id,action:Kr(y.action)?"entry":"exit",side:y.side,price:A.o,barT:A.t,signalBarT:y.signalBarT,barIndex:v};if(c.fills.push(j),P.add(y.id),y.status="filled",y.fillBarT=A.t,T.has(y.id)&&(T.delete(y.id),c.missedFills=c.missedFills.filter(F=>F.orderId!==y.id)),Kr(y.action)){_={side:y.action==="entryLong"?"long":"short",entryOrderId:y.id,entryBarT:A.t,entryPrice:A.o,entryBarIndex:v};for(let F of f){let I=x(y.id,F);if(R.has(I))continue;let M={orderId:y.id,horizon:F,entryBarT:A.t,entryPrice:A.o,side:_.side,status:"pending",close:null,barT:null};R.set(I,M),c.markouts.push(M)}}else _=null,g=Number(c.strategy?.risk?.cooldownBars)||0,V=A.t}function W(y){if(P.has(y.id)||T.has(y.id))return;let A={orderId:y.id,action:y.action,side:y.side,signalBarT:y.signalBarT,status:"missed"};T.set(y.id,A),c.missedFills.push(A),y.status="missed"}for(let y of c.intendedOrders){if(y.status==="filled"||P.has(y.id))continue;let A=p.get(y.signalBarT);if(A==null)continue;let v=A+1;v<u.length&&(h==null||u[v].t>h)&&ie(y,u[v],v)}for(let y of E){let A=u[y],v=m[y].signals,j=_,F=M=>{if(_||g>0&&(V==null||A.t>=V))return;let q=oe({action:M,signalBarT:A.t,signalIndex:y}),Z=y+1;Z<u.length?ie(q,u[Z],Z):W(q)},I=M=>{if(!_||_.side==="long"&&M!=="exitLong"||_.side==="short"&&M!=="exitShort")return;let z=oe({action:M,signalBarT:A.t,signalIndex:y}),q=y+1;q<u.length?ie(z,u[q],q):W(z)};j?(v.exitLong&&I("exitLong"),v.exitShort&&I("exitShort")):v.entryLong&&v.entryShort||(v.entryLong&&F("entryLong"),v.entryShort&&F("entryShort")),g>0&&V!=null&&A.t>=V&&(g-=1,g===0&&(V=null)),c.cursor=A.t,c.lastProcessedBarIndex=y}for(let y of c.markouts){if(y.status!=="pending")continue;let A=c.fills.find(F=>F.orderId===y.orderId&&F.action==="entry");if(!A)continue;let v=p.get(A.barT);if(v==null)continue;let j=v+y.horizon;if(j<u.length){y.close=u[j].c,y.barT=u[j].t,y.status="filled";let F=y.entryPrice;y.markout=y.side==="long"?(y.close-F)/F:(F-y.close)/F}}return c.position=_,c.cooldownBarsRemaining=g,c.cooldownStartT=V,c.updatedAt=t(),c})}return{start:n,step:i,list:a,get:s,stop:o}}var Gr=B(()=>{pe();Jr()});var Zr={};un(Zr,{runStrategyOperation:()=>Po});import go from"node:os";import bo from"node:path";function Re(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}function xo(e){return String(e).toLowerCase().replace(/[^a-z0-9]/g,"")}function vt(e){if(Array.isArray(e)){for(let t of e)vt(t);return}if(Re(e))for(let[t,r]of Object.entries(e)){if(Eo.some(n=>xo(t).includes(n)))throw new Error(`strategy service: secret-like field "${t}" is forbidden`);vt(r)}}function ko(e){if(!Re(e))throw new TypeError("strategy input must be a plain object");return vt(e),e}function So(e,t={}){if(t.nowMs!==void 0){if(!Number.isInteger(t.nowMs))throw new TypeError("nowMs must be an integer epoch milliseconds");return t.nowMs}let r=Date.now();if(e.nowMs===void 0||e.nowMs===null)return r;if(!Number.isInteger(e.nowMs))throw new TypeError("nowMs must be an integer epoch milliseconds");if(Math.abs(e.nowMs-r)>12e4)throw new Error("nowMs outside allowed wall-clock skew (120s); omit nowMs to use server time");return e.nowMs}async function Ot(e,t,r,n){if(Array.isArray(t.bars))return t.bars;let s=lt(e.venue),a=r.fetchBars??s.fetchBars;if(typeof a!="function")throw new Error(`strategy venue ${s.id} does not support history`);let o=await a({coin:e.market.coin,interval:e.market.interval,count:t.count??1500,endTime:t.endTime??n}),i=Array.isArray(o)?o:o?.bars;if(!Array.isArray(i))throw new Error("strategy history provider returned no bars");return i}function Mt(e,t){let r=e.backtestOptions??{};if(!Re(r))throw new TypeError("backtestOptions must be a plain object");return{...r,nowMs:t}}function Xr(e,t,r,n,s={}){let a=e.evidenceOptions??{};if(!Re(a))throw new TypeError("evidenceOptions must be a plain object");return{...a,...s,strategy:t,bars:r,backtestOptions:Mt(e,n)}}function Wr(){return bo.join(go.homedir(),".oracle","strategy-shadow.json")}function Ao(e,t){return{perStrategyNotionalUsd:e.risk.maxNotionalUsd,maxLeverage:e.risk.maxLeverage,dailyLossCapUsd:e.risk.maxNotionalUsd*(e.risk.maxDailyLossPct/100),chainAllowlist:[e.venue],assetAllowlist:[e.market.coin],expiresAt:Math.min(e.risk.expiresAt,t+864e5),killSwitchRequired:!0}}async function Po(e,t={},r={}){let n=ko(t),s=So(n,r);if(e==="draft")return{strategy:Rr(n.prompt,{nowMs:s})};if(e==="validate"){let a=K(n.strategy);if(a.strategy.risk.expiresAt<=s)throw new Error("strategy is expired");return{valid:!0,strategy:a.strategy,strategyHash:a.strategyHash,compilerHash:a.compilerHash,compilerVersion:a.compilerVersion,requiredSeries:a.requiredSeries}}if(e==="backtest"||e==="evidence"){let a=K(n.strategy),o=await Ot(a.strategy,n,r,s);Me(a,o);let i=nt(Xr(n,a.strategy,o,s));return e==="evidence"?i:{backtest:ae(a.strategy,o,Mt(n,s)),evidence:i}}if(e==="optimize"){let a=K(n.strategy),o=await Ot(a.strategy,n,r,s);Me(a,o);let i=n.trainFraction,l=n.evidenceOptions?.trainFraction;if(i!=null&&l!=null&&i!==l)throw new TypeError("conflicting trainFraction controls are forbidden");let u=i??l??.7;if(typeof u!="number"||u<=0||u>=1)throw new TypeError("trainFraction must be in (0,1)");let f=o.slice(0,Math.floor(o.length*u)),c=n.options??{};if(!Re(c))throw new TypeError("options must be a plain object");let d=qr(a.strategy,f,{...c,...n.maxTrials==null?{}:{maxTrials:n.maxTrials},backtestOptions:Mt(n,s)}),m=d.bestStrategy;return{strategy:m,optimization:d,evidence:nt(Xr(n,m,o,s,{trainFraction:u}))}}if(e==="shadow"){let a=It({storePath:r.storePath??Wr(),clock:()=>s}),o=n.action;if(o==="start")return await a.start({strategy:n.strategy,evidenceId:n.evidenceId??n.evidence?.id??null});if(o==="list")return await a.list();if(o==="get")return await a.get(n.id);if(o==="stop")return await a.stop(n.id);if(o==="step"){let i=await a.get(n.id);if(!i)throw new Error(`shadow runner not found: ${n.id}`);let l=await Ot(i.strategy,n,r,s);return Me(K(i.strategy),l),await a.step(n.id,l,n.stepOptions??{})}throw new Error(`unknown shadow action: ${o}`)}if(e==="prepare"){let a=K(n.strategy),o=lt(a.strategy.venue);if(typeof n.shadowId!="string"||!n.shadowId)throw new Error("strategy prepare requires a matching shadow runner id");let l=await It({storePath:r.storePath??Wr(),clock:()=>s}).get(n.shadowId);if(!l)throw new Error("strategy prepare shadow runner not found");if(l.status!=="running")throw new Error("strategy prepare requires an active shadow runner");if(!Number.isFinite(l.cursor))throw new Error("strategy prepare requires a stepped shadow runner");if(l.strategyHash!==a.strategyHash||l.compilerHash!==a.compilerHash)throw new Error("strategy prepare shadow runner does not match strategy artifacts");if(l.evidenceId!==n.evidence?.id)throw new Error("strategy prepare shadow runner does not match evidence artifact");let u=n.caps??Ao(a.strategy,s);return o.prepareIntent({strategy:a.strategy,evidence:n.evidence,shadow:{id:l.id,stateHash:Yr(l),status:l.status,cursor:l.cursor,updatedAt:l.updatedAt},caps:u,nowMs:s,env:r.env??process.env})}throw new Error(`unknown strategy operation: ${e}`)}var Eo,Qr=B(()=>{He();pe();st();jr();Cr();Gr();ut();Eo=["privatekey","secretkey","seed","mnemonic","passphrase","password","keystore","keymaterial","apikey","authtoken","accesstoken","refreshtoken","credential","bearer","signature","authorization","xprv","xpriv","wif"]});import en from"node:fs";function $o(e){let t={},r=[];for(let n=0;n<e.length;n++){let s=e[n];if(!s.startsWith("--")){r.push(s);continue}let a=s.slice(2),o=e[n+1];o!=null&&!o.startsWith("--")?(t[a]=o,n++):t[a]=!0}return{flags:t,positional:r}}function he(e,t){if(!e)throw new Error(`${t} path required`);let r=e==="-"?en.readFileSync(0,"utf8"):en.readFileSync(e,"utf8");try{return JSON.parse(r)}catch{throw new Error(`${t} must contain valid JSON`)}}function tn(e,t){if(e==null)return;let r=Number(e);if(!Number.isFinite(r))throw new Error(`${t} must be a finite number`);return r}var To=`oracle strategy <draft|validate|backtest|optimize|evidence|shadow|prepare> [args]
1
+ var Hw=Object.create;var Do=Object.defineProperty;var Vw=Object.getOwnPropertyDescriptor;var vw=Object.getOwnPropertyNames;var qw=Object.getPrototypeOf,Ww=Object.prototype.hasOwnProperty;var y=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(A,t)=>(typeof require<"u"?require:A)[t]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var De=(e,A,t)=>()=>{if(t)throw t[0];try{return e&&(A=e(e=0)),A}catch(r){throw t=[r],r}};var p=(e,A)=>()=>{try{return A||e((A={exports:{}}).exports,A),A.exports}catch(t){throw A=0,t}},Pw=(e,A)=>{for(var t in A)Do(e,t,{get:A[t],enumerable:!0})},Ow=(e,A,t,r)=>{if(A&&typeof A=="object"||typeof A=="function")for(let n of vw(A))!Ww.call(e,n)&&n!==t&&Do(e,n,{get:()=>A[n],enumerable:!(r=Vw(A,n))||r.enumerable});return e};var zw=(e,A,t)=>(t=e!=null?Hw(qw(e)):{},Ow(A||!e||!e.__esModule?Do(t,"default",{value:e,enumerable:!0}):t,e));var Qe=p((wx,Hl)=>{Hl.exports={kClose:Symbol("close"),kDestroy:Symbol("destroy"),kDispatch:Symbol("dispatch"),kUrl:Symbol("url"),kWriting:Symbol("writing"),kResuming:Symbol("resuming"),kQueue:Symbol("queue"),kConnect:Symbol("connect"),kConnecting:Symbol("connecting"),kKeepAliveDefaultTimeout:Symbol("default keep alive timeout"),kKeepAliveMaxTimeout:Symbol("max keep alive timeout"),kKeepAliveTimeoutThreshold:Symbol("keep alive timeout threshold"),kKeepAliveTimeoutValue:Symbol("keep alive timeout"),kKeepAlive:Symbol("keep alive"),kHeadersTimeout:Symbol("headers timeout"),kBodyTimeout:Symbol("body timeout"),kServerName:Symbol("server name"),kLocalAddress:Symbol("local address"),kHost:Symbol("host"),kNoRef:Symbol("no ref"),kBodyUsed:Symbol("used"),kBody:Symbol("abstracted request body"),kRunning:Symbol("running"),kBlocking:Symbol("blocking"),kPending:Symbol("pending"),kSize:Symbol("size"),kBusy:Symbol("busy"),kQueued:Symbol("queued"),kFree:Symbol("free"),kConnected:Symbol("connected"),kClosed:Symbol("closed"),kNeedDrain:Symbol("need drain"),kReset:Symbol("reset"),kDestroyed:Symbol.for("nodejs.stream.destroyed"),kResume:Symbol("resume"),kOnError:Symbol("on error"),kMaxHeadersSize:Symbol("max headers size"),kRunningIdx:Symbol("running index"),kPendingIdx:Symbol("pending index"),kError:Symbol("error"),kClients:Symbol("clients"),kClient:Symbol("client"),kParser:Symbol("parser"),kOnDestroyed:Symbol("destroy callbacks"),kPipelining:Symbol("pipelining"),kSocket:Symbol("socket"),kHostHeader:Symbol("host header"),kConnector:Symbol("connector"),kStrictContentLength:Symbol("strict content length"),kMaxRedirections:Symbol("maxRedirections"),kMaxRequests:Symbol("maxRequestsPerClient"),kProxy:Symbol("proxy agent options"),kCounter:Symbol("socket request counter"),kInterceptors:Symbol("dispatch interceptors"),kMaxResponseSize:Symbol("max response size"),kHTTP2Session:Symbol("http2Session"),kHTTP2SessionState:Symbol("http2Session state"),kRetryHandlerDefaultRetry:Symbol("retry agent default retry"),kConstruct:Symbol("constructable"),kListeners:Symbol("listeners"),kHTTPContext:Symbol("http context"),kMaxConcurrentStreams:Symbol("max concurrent streams"),kNoProxyAgent:Symbol("no proxy agent"),kHttpProxyAgent:Symbol("http proxy agent"),kHttpsProxyAgent:Symbol("https proxy agent")}});var Z=p((yx,lQ)=>{"use strict";var Vl=Symbol.for("undici.error.UND_ERR"),Ee=class extends Error{constructor(A){super(A),this.name="UndiciError",this.code="UND_ERR"}static[Symbol.hasInstance](A){return A&&A[Vl]===!0}[Vl]=!0},vl=Symbol.for("undici.error.UND_ERR_CONNECT_TIMEOUT"),ko=class extends Ee{constructor(A){super(A),this.name="ConnectTimeoutError",this.message=A||"Connect Timeout Error",this.code="UND_ERR_CONNECT_TIMEOUT"}static[Symbol.hasInstance](A){return A&&A[vl]===!0}[vl]=!0},ql=Symbol.for("undici.error.UND_ERR_HEADERS_TIMEOUT"),bo=class extends Ee{constructor(A){super(A),this.name="HeadersTimeoutError",this.message=A||"Headers Timeout Error",this.code="UND_ERR_HEADERS_TIMEOUT"}static[Symbol.hasInstance](A){return A&&A[ql]===!0}[ql]=!0},Wl=Symbol.for("undici.error.UND_ERR_HEADERS_OVERFLOW"),Fo=class extends Ee{constructor(A){super(A),this.name="HeadersOverflowError",this.message=A||"Headers Overflow Error",this.code="UND_ERR_HEADERS_OVERFLOW"}static[Symbol.hasInstance](A){return A&&A[Wl]===!0}[Wl]=!0},Pl=Symbol.for("undici.error.UND_ERR_BODY_TIMEOUT"),Ro=class extends Ee{constructor(A){super(A),this.name="BodyTimeoutError",this.message=A||"Body Timeout Error",this.code="UND_ERR_BODY_TIMEOUT"}static[Symbol.hasInstance](A){return A&&A[Pl]===!0}[Pl]=!0},Ol=Symbol.for("undici.error.UND_ERR_RESPONSE_STATUS_CODE"),So=class extends Ee{constructor(A,t,r,n){super(A),this.name="ResponseStatusCodeError",this.message=A||"Response Status Code Error",this.code="UND_ERR_RESPONSE_STATUS_CODE",this.body=n,this.status=t,this.statusCode=t,this.headers=r}static[Symbol.hasInstance](A){return A&&A[Ol]===!0}[Ol]=!0},zl=Symbol.for("undici.error.UND_ERR_INVALID_ARG"),No=class extends Ee{constructor(A){super(A),this.name="InvalidArgumentError",this.message=A||"Invalid Argument Error",this.code="UND_ERR_INVALID_ARG"}static[Symbol.hasInstance](A){return A&&A[zl]===!0}[zl]=!0},Zl=Symbol.for("undici.error.UND_ERR_INVALID_RETURN_VALUE"),Mo=class extends Ee{constructor(A){super(A),this.name="InvalidReturnValueError",this.message=A||"Invalid Return Value Error",this.code="UND_ERR_INVALID_RETURN_VALUE"}static[Symbol.hasInstance](A){return A&&A[Zl]===!0}[Zl]=!0},_l=Symbol.for("undici.error.UND_ERR_ABORT"),Is=class extends Ee{constructor(A){super(A),this.name="AbortError",this.message=A||"The operation was aborted",this.code="UND_ERR_ABORT"}static[Symbol.hasInstance](A){return A&&A[_l]===!0}[_l]=!0},Kl=Symbol.for("undici.error.UND_ERR_ABORTED"),Uo=class extends Is{constructor(A){super(A),this.name="AbortError",this.message=A||"Request aborted",this.code="UND_ERR_ABORTED"}static[Symbol.hasInstance](A){return A&&A[Kl]===!0}[Kl]=!0},Xl=Symbol.for("undici.error.UND_ERR_INFO"),Lo=class extends Ee{constructor(A){super(A),this.name="InformationalError",this.message=A||"Request information",this.code="UND_ERR_INFO"}static[Symbol.hasInstance](A){return A&&A[Xl]===!0}[Xl]=!0},jl=Symbol.for("undici.error.UND_ERR_REQ_CONTENT_LENGTH_MISMATCH"),To=class extends Ee{constructor(A){super(A),this.name="RequestContentLengthMismatchError",this.message=A||"Request body length does not match content-length header",this.code="UND_ERR_REQ_CONTENT_LENGTH_MISMATCH"}static[Symbol.hasInstance](A){return A&&A[jl]===!0}[jl]=!0},$l=Symbol.for("undici.error.UND_ERR_RES_CONTENT_LENGTH_MISMATCH"),xo=class extends Ee{constructor(A){super(A),this.name="ResponseContentLengthMismatchError",this.message=A||"Response body length does not match content-length header",this.code="UND_ERR_RES_CONTENT_LENGTH_MISMATCH"}static[Symbol.hasInstance](A){return A&&A[$l]===!0}[$l]=!0},eQ=Symbol.for("undici.error.UND_ERR_DESTROYED"),Yo=class extends Ee{constructor(A){super(A),this.name="ClientDestroyedError",this.message=A||"The client is destroyed",this.code="UND_ERR_DESTROYED"}static[Symbol.hasInstance](A){return A&&A[eQ]===!0}[eQ]=!0},AQ=Symbol.for("undici.error.UND_ERR_CLOSED"),Go=class extends Ee{constructor(A){super(A),this.name="ClientClosedError",this.message=A||"The client is closed",this.code="UND_ERR_CLOSED"}static[Symbol.hasInstance](A){return A&&A[AQ]===!0}[AQ]=!0},tQ=Symbol.for("undici.error.UND_ERR_SOCKET"),Jo=class extends Ee{constructor(A,t){super(A),this.name="SocketError",this.message=A||"Socket error",this.code="UND_ERR_SOCKET",this.socket=t}static[Symbol.hasInstance](A){return A&&A[tQ]===!0}[tQ]=!0},rQ=Symbol.for("undici.error.UND_ERR_NOT_SUPPORTED"),Ho=class extends Ee{constructor(A){super(A),this.name="NotSupportedError",this.message=A||"Not supported error",this.code="UND_ERR_NOT_SUPPORTED"}static[Symbol.hasInstance](A){return A&&A[rQ]===!0}[rQ]=!0},nQ=Symbol.for("undici.error.UND_ERR_BPL_MISSING_UPSTREAM"),Vo=class extends Ee{constructor(A){super(A),this.name="MissingUpstreamError",this.message=A||"No upstream has been added to the BalancedPool",this.code="UND_ERR_BPL_MISSING_UPSTREAM"}static[Symbol.hasInstance](A){return A&&A[nQ]===!0}[nQ]=!0},sQ=Symbol.for("undici.error.UND_ERR_HTTP_PARSER"),vo=class extends Error{constructor(A,t,r){super(A),this.name="HTTPParserError",this.code=t?`HPE_${t}`:void 0,this.data=r?r.toString():void 0}static[Symbol.hasInstance](A){return A&&A[sQ]===!0}[sQ]=!0},iQ=Symbol.for("undici.error.UND_ERR_RES_EXCEEDED_MAX_SIZE"),qo=class extends Ee{constructor(A){super(A),this.name="ResponseExceededMaxSizeError",this.message=A||"Response content exceeded max size",this.code="UND_ERR_RES_EXCEEDED_MAX_SIZE"}static[Symbol.hasInstance](A){return A&&A[iQ]===!0}[iQ]=!0},oQ=Symbol.for("undici.error.UND_ERR_REQ_RETRY"),Wo=class extends Ee{constructor(A,t,{headers:r,data:n}){super(A),this.name="RequestRetryError",this.message=A||"Request retry error",this.code="UND_ERR_REQ_RETRY",this.statusCode=t,this.data=n,this.headers=r}static[Symbol.hasInstance](A){return A&&A[oQ]===!0}[oQ]=!0},aQ=Symbol.for("undici.error.UND_ERR_RESPONSE"),Po=class extends Ee{constructor(A,t,{headers:r,data:n}){super(A),this.name="ResponseError",this.message=A||"Response error",this.code="UND_ERR_RESPONSE",this.statusCode=t,this.data=n,this.headers=r}static[Symbol.hasInstance](A){return A&&A[aQ]===!0}[aQ]=!0},cQ=Symbol.for("undici.error.UND_ERR_PRX_TLS"),Oo=class extends Ee{constructor(A,t,r){super(t,{cause:A,...r??{}}),this.name="SecureProxyConnectionError",this.message=t||"Secure Proxy Connection failed",this.code="UND_ERR_PRX_TLS",this.cause=A}static[Symbol.hasInstance](A){return A&&A[cQ]===!0}[cQ]=!0},gQ=Symbol.for("undici.error.UND_ERR_WS_MESSAGE_SIZE_EXCEEDED"),zo=class extends Ee{constructor(A){super(A),this.name="MessageSizeExceededError",this.message=A||"Max decompressed message size exceeded",this.code="UND_ERR_WS_MESSAGE_SIZE_EXCEEDED"}static[Symbol.hasInstance](A){return A&&A[gQ]===!0}get[gQ](){return!0}};lQ.exports={AbortError:Is,HTTPParserError:vo,UndiciError:Ee,HeadersTimeoutError:bo,HeadersOverflowError:Fo,BodyTimeoutError:Ro,RequestContentLengthMismatchError:To,ConnectTimeoutError:ko,ResponseStatusCodeError:So,InvalidArgumentError:No,InvalidReturnValueError:Mo,RequestAbortedError:Uo,ClientDestroyedError:Yo,ClientClosedError:Go,InformationalError:Lo,SocketError:Jo,NotSupportedError:Ho,ResponseContentLengthMismatchError:xo,BalancedPoolMissingUpstreamError:Vo,ResponseExceededMaxSizeError:qo,RequestRetryError:Wo,ResponseError:Po,SecureProxyConnectionError:Oo,MessageSizeExceededError:zo}});var Cs=p((px,QQ)=>{"use strict";var hs={},Zo=["Accept","Accept-Encoding","Accept-Language","Accept-Ranges","Access-Control-Allow-Credentials","Access-Control-Allow-Headers","Access-Control-Allow-Methods","Access-Control-Allow-Origin","Access-Control-Expose-Headers","Access-Control-Max-Age","Access-Control-Request-Headers","Access-Control-Request-Method","Age","Allow","Alt-Svc","Alt-Used","Authorization","Cache-Control","Clear-Site-Data","Connection","Content-Disposition","Content-Encoding","Content-Language","Content-Length","Content-Location","Content-Range","Content-Security-Policy","Content-Security-Policy-Report-Only","Content-Type","Cookie","Cross-Origin-Embedder-Policy","Cross-Origin-Opener-Policy","Cross-Origin-Resource-Policy","Date","Device-Memory","Downlink","ECT","ETag","Expect","Expect-CT","Expires","Forwarded","From","Host","If-Match","If-Modified-Since","If-None-Match","If-Range","If-Unmodified-Since","Keep-Alive","Last-Modified","Link","Location","Max-Forwards","Origin","Permissions-Policy","Pragma","Proxy-Authenticate","Proxy-Authorization","RTT","Range","Referer","Referrer-Policy","Refresh","Retry-After","Sec-WebSocket-Accept","Sec-WebSocket-Extensions","Sec-WebSocket-Key","Sec-WebSocket-Protocol","Sec-WebSocket-Version","Server","Server-Timing","Service-Worker-Allowed","Service-Worker-Navigation-Preload","Set-Cookie","SourceMap","Strict-Transport-Security","Supports-Loading-Mode","TE","Timing-Allow-Origin","Trailer","Transfer-Encoding","Upgrade","Upgrade-Insecure-Requests","User-Agent","Vary","Via","WWW-Authenticate","X-Content-Type-Options","X-DNS-Prefetch-Control","X-Frame-Options","X-Permitted-Cross-Domain-Policies","X-Powered-By","X-Requested-With","X-XSS-Protection"];for(let e=0;e<Zo.length;++e){let A=Zo[e],t=A.toLowerCase();hs[A]=hs[t]=t}Object.setPrototypeOf(hs,null);QQ.exports={wellknownHeaderNames:Zo,headerNameLowerCasedRecord:hs}});var IQ=p((mx,uQ)=>{"use strict";var{wellknownHeaderNames:EQ,headerNameLowerCasedRecord:Zw}=Cs(),_o=class e{value=null;left=null;middle=null;right=null;code;constructor(A,t,r){if(r===void 0||r>=A.length)throw new TypeError("Unreachable");if((this.code=A.charCodeAt(r))>127)throw new TypeError("key must be ascii string");A.length!==++r?this.middle=new e(A,t,r):this.value=t}add(A,t){let r=A.length;if(r===0)throw new TypeError("Unreachable");let n=0,s=this;for(;;){let i=A.charCodeAt(n);if(i>127)throw new TypeError("key must be ascii string");if(s.code===i)if(r===++n){s.value=t;break}else if(s.middle!==null)s=s.middle;else{s.middle=new e(A,t,n);break}else if(s.code<i)if(s.left!==null)s=s.left;else{s.left=new e(A,t,n);break}else if(s.right!==null)s=s.right;else{s.right=new e(A,t,n);break}}}search(A){let t=A.length,r=0,n=this;for(;n!==null&&r<t;){let s=A[r];for(s<=90&&s>=65&&(s|=32);n!==null;){if(s===n.code){if(t===++r)return n;n=n.middle;break}n=n.code<s?n.left:n.right}}return null}},fs=class{node=null;insert(A,t){this.node===null?this.node=new _o(A,t,0):this.node.add(A,t)}lookup(A){return this.node?.search(A)?.value??null}},BQ=new fs;for(let e=0;e<EQ.length;++e){let A=Zw[EQ[e]];BQ.insert(A,A)}uQ.exports={TernarySearchTree:fs,tree:BQ}});var v=p((Dx,MQ)=>{"use strict";var rn=y("node:assert"),{kDestroyed:CQ,kBodyUsed:Kt,kListeners:Ko,kBody:hQ}=Qe(),{IncomingMessage:_w}=y("node:http"),ys=y("node:stream"),Kw=y("node:net"),{Blob:Xw}=y("node:buffer"),jw=y("node:util"),{stringify:$w}=y("node:querystring"),{EventEmitter:ey}=y("node:events"),{InvalidArgumentError:be}=Z(),{headerNameLowerCasedRecord:Ay}=Cs(),{tree:fQ}=IQ(),[ty,ry]=process.versions.node.split(".").map(e=>Number(e)),ws=class{constructor(A){this[hQ]=A,this[Kt]=!1}async*[Symbol.asyncIterator](){rn(!this[Kt],"disturbed"),this[Kt]=!0,yield*this[hQ]}};function ny(e){return ps(e)?(mQ(e)===0&&e.on("data",function(){rn(!1)}),typeof e.readableDidRead!="boolean"&&(e[Kt]=!1,ey.prototype.on.call(e,"data",function(){this[Kt]=!0})),e):e&&typeof e.pipeTo=="function"?new ws(e):e&&typeof e!="string"&&!ArrayBuffer.isView(e)&&pQ(e)?new ws(e):e}function sy(){}function ps(e){return e&&typeof e=="object"&&typeof e.pipe=="function"&&typeof e.on=="function"}function dQ(e){if(e===null)return!1;if(e instanceof Xw)return!0;if(typeof e!="object")return!1;{let A=e[Symbol.toStringTag];return(A==="Blob"||A==="File")&&("stream"in e&&typeof e.stream=="function"||"arrayBuffer"in e&&typeof e.arrayBuffer=="function")}}function iy(e,A){if(e.includes("?")||e.includes("#"))throw new Error('Query params cannot be passed when url already contains "?" or "#".');let t=$w(A);return t&&(e+="?"+t),e}function wQ(e){let A=parseInt(e,10);return A===Number(e)&&A>=0&&A<=65535}function ds(e){return e!=null&&e[0]==="h"&&e[1]==="t"&&e[2]==="t"&&e[3]==="p"&&(e[4]===":"||e[4]==="s"&&e[5]===":")}function yQ(e){if(typeof e=="string"){if(e=new URL(e),!ds(e.origin||e.protocol))throw new be("Invalid URL protocol: the URL must start with `http:` or `https:`.");return e}if(!e||typeof e!="object")throw new be("Invalid URL: The URL argument must be a non-null object.");if(!(e instanceof URL)){if(e.port!=null&&e.port!==""&&wQ(e.port)===!1)throw new be("Invalid URL: port must be a valid integer or a string representation of an integer.");if(e.path!=null&&typeof e.path!="string")throw new be("Invalid URL path: the path must be a string or null/undefined.");if(e.pathname!=null&&typeof e.pathname!="string")throw new be("Invalid URL pathname: the pathname must be a string or null/undefined.");if(e.hostname!=null&&typeof e.hostname!="string")throw new be("Invalid URL hostname: the hostname must be a string or null/undefined.");if(e.origin!=null&&typeof e.origin!="string")throw new be("Invalid URL origin: the origin must be a string or null/undefined.");if(!ds(e.origin||e.protocol))throw new be("Invalid URL protocol: the URL must start with `http:` or `https:`.");let A=e.port!=null?e.port:e.protocol==="https:"?443:80,t=e.origin!=null?e.origin:`${e.protocol||""}//${e.hostname||""}:${A}`,r=e.path!=null?e.path:`${e.pathname||""}${e.search||""}`;return t[t.length-1]==="/"&&(t=t.slice(0,t.length-1)),r&&r[0]!=="/"&&(r=`/${r}`),new URL(`${t}${r}`)}if(!ds(e.origin||e.protocol))throw new be("Invalid URL protocol: the URL must start with `http:` or `https:`.");return e}function oy(e){if(e=yQ(e),e.pathname!=="/"||e.search||e.hash)throw new be("invalid url");return e}function ay(e){if(e[0]==="["){let t=e.indexOf("]");return rn(t!==-1),e.substring(1,t)}let A=e.indexOf(":");return A===-1?e:e.substring(0,A)}function cy(e){if(!e)return null;rn(typeof e=="string");let A=ay(e);return Kw.isIP(A)?"":A}function gy(e){return JSON.parse(JSON.stringify(e))}function ly(e){return e!=null&&typeof e[Symbol.asyncIterator]=="function"}function pQ(e){return e!=null&&(typeof e[Symbol.iterator]=="function"||typeof e[Symbol.asyncIterator]=="function")}function mQ(e){if(e==null)return 0;if(ps(e)){let A=e._readableState;return A&&A.objectMode===!1&&A.ended===!0&&Number.isFinite(A.length)?A.length:null}else{if(dQ(e))return e.size!=null?e.size:null;if(bQ(e))return e.byteLength}return null}function DQ(e){return e&&!!(e.destroyed||e[CQ]||ys.isDestroyed?.(e))}function Qy(e,A){e==null||!ps(e)||DQ(e)||(typeof e.destroy=="function"?(Object.getPrototypeOf(e).constructor===_w&&(e.socket=null),e.destroy(A)):A&&queueMicrotask(()=>{e.emit("error",A)}),e.destroyed!==!0&&(e[CQ]=!0))}var Ey=/timeout=(\d+)/;function By(e){let A=e.toString().match(Ey);return A?parseInt(A[1],10)*1e3:null}function kQ(e){return typeof e=="string"?Ay[e]??e.toLowerCase():fQ.lookup(e)??e.toString("latin1").toLowerCase()}function uy(e){return fQ.lookup(e)??e.toString("latin1").toLowerCase()}function Iy(e,A){A===void 0&&(A={});for(let t=0;t<e.length;t+=2){let r=kQ(e[t]),n=A[r];if(n)typeof n=="string"&&(n=[n],A[r]=n),n.push(e[t+1].toString("utf8"));else{let s=e[t+1];typeof s=="string"?A[r]=s:A[r]=Array.isArray(s)?s.map(i=>i.toString("utf8")):s.toString("utf8")}}return"content-length"in A&&"content-disposition"in A&&(A["content-disposition"]=Buffer.from(A["content-disposition"]).toString("latin1")),A}function hy(e){let A=e.length,t=new Array(A),r=!1,n=-1,s,i,o=0;for(let a=0;a<e.length;a+=2)s=e[a],i=e[a+1],typeof s!="string"&&(s=s.toString()),typeof i!="string"&&(i=i.toString("utf8")),o=s.length,o===14&&s[7]==="-"&&(s==="content-length"||s.toLowerCase()==="content-length")?r=!0:o===19&&s[7]==="-"&&(s==="content-disposition"||s.toLowerCase()==="content-disposition")&&(n=a+1),t[a]=s,t[a+1]=i;return r&&n!==-1&&(t[n]=Buffer.from(t[n]).toString("latin1")),t}function bQ(e){return e instanceof Uint8Array||Buffer.isBuffer(e)}function Cy(e,A,t){if(!e||typeof e!="object")throw new be("handler must be an object");if(typeof e.onConnect!="function")throw new be("invalid onConnect method");if(typeof e.onError!="function")throw new be("invalid onError method");if(typeof e.onBodySent!="function"&&e.onBodySent!==void 0)throw new be("invalid onBodySent method");if(t||A==="CONNECT"){if(typeof e.onUpgrade!="function")throw new be("invalid onUpgrade method")}else{if(typeof e.onHeaders!="function")throw new be("invalid onHeaders method");if(typeof e.onData!="function")throw new be("invalid onData method");if(typeof e.onComplete!="function")throw new be("invalid onComplete method")}}function fy(e){return!!(e&&(ys.isDisturbed(e)||e[Kt]))}function dy(e){return!!(e&&ys.isErrored(e))}function wy(e){return!!(e&&ys.isReadable(e))}function yy(e){return{localAddress:e.localAddress,localPort:e.localPort,remoteAddress:e.remoteAddress,remotePort:e.remotePort,remoteFamily:e.remoteFamily,timeout:e.timeout,bytesWritten:e.bytesWritten,bytesRead:e.bytesRead}}function py(e){let A;return new ReadableStream({async start(){A=e[Symbol.asyncIterator]()},async pull(t){let{done:r,value:n}=await A.next();if(r)queueMicrotask(()=>{t.close(),t.byobRequest?.respond(0)});else{let s=Buffer.isBuffer(n)?n:Buffer.from(n);s.byteLength&&t.enqueue(new Uint8Array(s))}return t.desiredSize>0},async cancel(t){await A.return()},type:"bytes"})}function my(e){return e&&typeof e=="object"&&typeof e.append=="function"&&typeof e.delete=="function"&&typeof e.get=="function"&&typeof e.getAll=="function"&&typeof e.has=="function"&&typeof e.set=="function"&&e[Symbol.toStringTag]==="FormData"}function Dy(e,A){return"addEventListener"in e?(e.addEventListener("abort",A,{once:!0}),()=>e.removeEventListener("abort",A)):(e.addListener("abort",A),()=>e.removeListener("abort",A))}var ky=typeof String.prototype.toWellFormed=="function",by=typeof String.prototype.isWellFormed=="function";function FQ(e){return ky?`${e}`.toWellFormed():jw.toUSVString(e)}function Fy(e){return by?`${e}`.isWellFormed():FQ(e)===`${e}`}function RQ(e){switch(e){case 34:case 40:case 41:case 44:case 47:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 91:case 92:case 93:case 123:case 125:return!1;default:return e>=33&&e<=126}}function Ry(e){if(e.length===0)return!1;for(let A=0;A<e.length;++A)if(!RQ(e.charCodeAt(A)))return!1;return!0}var Sy=/[^\t\x20-\x7e\x80-\xff]/;function Ny(e){return!Sy.test(e)}function My(e){if(e==null||e==="")return{start:0,end:null,size:null};let A=e?e.match(/^bytes (\d+)-(\d+)\/(\d+)?$/):null;return A?{start:parseInt(A[1]),end:A[2]?parseInt(A[2]):null,size:A[3]?parseInt(A[3]):null}:null}function Uy(e,A,t){return(e[Ko]??=[]).push([A,t]),e.on(A,t),e}function Ly(e){for(let[A,t]of e[Ko]??[])e.removeListener(A,t);e[Ko]=null}function Ty(e,A,t){try{A.onError(t),rn(A.aborted)}catch(r){e.emit("error",r)}}var SQ=Object.create(null);SQ.enumerable=!0;var Xo={delete:"DELETE",DELETE:"DELETE",get:"GET",GET:"GET",head:"HEAD",HEAD:"HEAD",options:"OPTIONS",OPTIONS:"OPTIONS",post:"POST",POST:"POST",put:"PUT",PUT:"PUT"},NQ={...Xo,patch:"patch",PATCH:"PATCH"};Object.setPrototypeOf(Xo,null);Object.setPrototypeOf(NQ,null);MQ.exports={kEnumerableProperty:SQ,nop:sy,isDisturbed:fy,isErrored:dy,isReadable:wy,toUSVString:FQ,isUSVString:Fy,isBlobLike:dQ,parseOrigin:oy,parseURL:yQ,getServerName:cy,isStream:ps,isIterable:pQ,isAsyncIterable:ly,isDestroyed:DQ,headerNameToString:kQ,bufferToLowerCasedHeaderName:uy,addListener:Uy,removeAllListeners:Ly,errorRequest:Ty,parseRawHeaders:hy,parseHeaders:Iy,parseKeepAliveTimeout:By,destroy:Qy,bodyLength:mQ,deepClone:gy,ReadableStreamFrom:py,isBuffer:bQ,validateHandler:Cy,getSocketInfo:yy,isFormDataLike:my,buildURL:iy,addAbortListener:Dy,isValidHTTPToken:Ry,isValidHeaderValue:Ny,isTokenCharCode:RQ,parseRangeHeader:My,normalizedMethodRecordsBase:Xo,normalizedMethodRecords:NQ,isValidPort:wQ,isHttpOrHttpsPrefixed:ds,nodeMajor:ty,nodeMinor:ry,safeHTTPMethods:["GET","HEAD","OPTIONS","TRACE"],wrapRequestBody:ny}});var Xt=p((kx,LQ)=>{"use strict";var $=y("node:diagnostics_channel"),$o=y("node:util"),ms=$o.debuglog("undici"),jo=$o.debuglog("fetch"),Ct=$o.debuglog("websocket"),UQ=!1,xy={beforeConnect:$.channel("undici:client:beforeConnect"),connected:$.channel("undici:client:connected"),connectError:$.channel("undici:client:connectError"),sendHeaders:$.channel("undici:client:sendHeaders"),create:$.channel("undici:request:create"),bodySent:$.channel("undici:request:bodySent"),headers:$.channel("undici:request:headers"),trailers:$.channel("undici:request:trailers"),error:$.channel("undici:request:error"),open:$.channel("undici:websocket:open"),close:$.channel("undici:websocket:close"),socketError:$.channel("undici:websocket:socket_error"),ping:$.channel("undici:websocket:ping"),pong:$.channel("undici:websocket:pong")};if(ms.enabled||jo.enabled){let e=jo.enabled?jo:ms;$.channel("undici:client:beforeConnect").subscribe(A=>{let{connectParams:{version:t,protocol:r,port:n,host:s}}=A;e("connecting to %s using %s%s",`${s}${n?`:${n}`:""}`,r,t)}),$.channel("undici:client:connected").subscribe(A=>{let{connectParams:{version:t,protocol:r,port:n,host:s}}=A;e("connected to %s using %s%s",`${s}${n?`:${n}`:""}`,r,t)}),$.channel("undici:client:connectError").subscribe(A=>{let{connectParams:{version:t,protocol:r,port:n,host:s},error:i}=A;e("connection to %s using %s%s errored - %s",`${s}${n?`:${n}`:""}`,r,t,i.message)}),$.channel("undici:client:sendHeaders").subscribe(A=>{let{request:{method:t,path:r,origin:n}}=A;e("sending request to %s %s/%s",t,n,r)}),$.channel("undici:request:headers").subscribe(A=>{let{request:{method:t,path:r,origin:n},response:{statusCode:s}}=A;e("received response to %s %s/%s - HTTP %d",t,n,r,s)}),$.channel("undici:request:trailers").subscribe(A=>{let{request:{method:t,path:r,origin:n}}=A;e("trailers received from %s %s/%s",t,n,r)}),$.channel("undici:request:error").subscribe(A=>{let{request:{method:t,path:r,origin:n},error:s}=A;e("request to %s %s/%s errored - %s",t,n,r,s.message)}),UQ=!0}if(Ct.enabled){if(!UQ){let e=ms.enabled?ms:Ct;$.channel("undici:client:beforeConnect").subscribe(A=>{let{connectParams:{version:t,protocol:r,port:n,host:s}}=A;e("connecting to %s%s using %s%s",s,n?`:${n}`:"",r,t)}),$.channel("undici:client:connected").subscribe(A=>{let{connectParams:{version:t,protocol:r,port:n,host:s}}=A;e("connected to %s%s using %s%s",s,n?`:${n}`:"",r,t)}),$.channel("undici:client:connectError").subscribe(A=>{let{connectParams:{version:t,protocol:r,port:n,host:s},error:i}=A;e("connection to %s%s using %s%s errored - %s",s,n?`:${n}`:"",r,t,i.message)}),$.channel("undici:client:sendHeaders").subscribe(A=>{let{request:{method:t,path:r,origin:n}}=A;e("sending request to %s %s/%s",t,n,r)})}$.channel("undici:websocket:open").subscribe(e=>{let{address:{address:A,port:t}}=e;Ct("connection opened %s%s",A,t?`:${t}`:"")}),$.channel("undici:websocket:close").subscribe(e=>{let{websocket:A,code:t,reason:r}=e;Ct("closed connection to %s - %s %s",A.url,t,r)}),$.channel("undici:websocket:socket_error").subscribe(e=>{Ct("connection errored - %s",e.message)}),$.channel("undici:websocket:ping").subscribe(e=>{Ct("ping received")}),$.channel("undici:websocket:pong").subscribe(e=>{Ct("pong received")})}LQ.exports={channels:xy}});var GQ=p((bx,YQ)=>{"use strict";var{InvalidArgumentError:re,NotSupportedError:Yy}=Z(),YA=y("node:assert"),{isValidHTTPToken:xQ,isValidHeaderValue:nn,isStream:Gy,destroy:Jy,isBuffer:Hy,isFormDataLike:Vy,isIterable:vy,isBlobLike:qy,buildURL:Wy,validateHandler:Py,getServerName:Oy,normalizedMethodRecords:zy}=v(),{channels:pA}=Xt(),{headerNameLowerCasedRecord:TQ}=Cs(),Zy=/[^\u0021-\u00ff]/,tA=Symbol("handler"),ea=class{constructor(A,{path:t,method:r,body:n,headers:s,query:i,idempotent:o,blocking:a,upgrade:g,headersTimeout:l,bodyTimeout:c,reset:Q,throwOnError:B,expectContinue:E,servername:u},h){if(typeof t!="string")throw new re("path must be a string");if(t[0]!=="/"&&!(t.startsWith("http://")||t.startsWith("https://"))&&r!=="CONNECT")throw new re("path must be an absolute URL or start with a slash");if(Zy.test(t))throw new re("invalid request path");if(typeof r!="string")throw new re("method must be a string");if(zy[r]===void 0&&!xQ(r))throw new re("invalid request method");if(g&&typeof g!="string")throw new re("upgrade must be a string");if(g&&!nn(g))throw new re("invalid upgrade header");if(l!=null&&(!Number.isFinite(l)||l<0))throw new re("invalid headersTimeout");if(c!=null&&(!Number.isFinite(c)||c<0))throw new re("invalid bodyTimeout");if(Q!=null&&typeof Q!="boolean")throw new re("invalid reset");if(E!=null&&typeof E!="boolean")throw new re("invalid expectContinue");if(this.headersTimeout=l,this.bodyTimeout=c,this.throwOnError=B===!0,this.method=r,this.abort=null,n==null)this.body=null;else if(Gy(n)){this.body=n;let I=this.body._readableState;(!I||!I.autoDestroy)&&(this.endHandler=function(){Jy(this)},this.body.on("end",this.endHandler)),this.errorHandler=C=>{this.abort?this.abort(C):this.error=C},this.body.on("error",this.errorHandler)}else if(Hy(n))this.body=n.byteLength?n:null;else if(ArrayBuffer.isView(n))this.body=n.buffer.byteLength?Buffer.from(n.buffer,n.byteOffset,n.byteLength):null;else if(n instanceof ArrayBuffer)this.body=n.byteLength?Buffer.from(n):null;else if(typeof n=="string")this.body=n.length?Buffer.from(n):null;else if(Vy(n)||vy(n)||qy(n))this.body=n;else throw new re("body must be a string, a Buffer, a Readable stream, an iterable, or an async iterable");if(this.completed=!1,this.aborted=!1,this.upgrade=g||null,this.path=i?Wy(t,i):t,this.origin=A,this.idempotent=o??(r==="HEAD"||r==="GET"),this.blocking=a??!1,this.reset=Q??null,this.host=null,this.contentLength=null,this.contentType=null,this.headers=[],this.expectContinue=E??!1,Array.isArray(s)){if(s.length%2!==0)throw new re("headers array must be even");for(let I=0;I<s.length;I+=2)Ds(this,s[I],s[I+1])}else if(s&&typeof s=="object")if(s[Symbol.iterator])for(let I of s){if(!Array.isArray(I)||I.length!==2)throw new re("headers must be in key-value pair format");Ds(this,I[0],I[1])}else{let I=Object.keys(s);for(let C=0;C<I.length;++C)Ds(this,I[C],s[I[C]])}else if(s!=null)throw new re("headers must be an object or an array");Py(h,r,g),this.servername=u||Oy(this.host),this[tA]=h,pA.create.hasSubscribers&&pA.create.publish({request:this})}onBodySent(A){if(this[tA].onBodySent)try{return this[tA].onBodySent(A)}catch(t){this.abort(t)}}onRequestSent(){if(pA.bodySent.hasSubscribers&&pA.bodySent.publish({request:this}),this[tA].onRequestSent)try{return this[tA].onRequestSent()}catch(A){this.abort(A)}}onConnect(A){if(YA(!this.aborted),YA(!this.completed),this.error)A(this.error);else return this.abort=A,this[tA].onConnect(A)}onResponseStarted(){return this[tA].onResponseStarted?.()}onHeaders(A,t,r,n){YA(!this.aborted),YA(!this.completed),pA.headers.hasSubscribers&&pA.headers.publish({request:this,response:{statusCode:A,headers:t,statusText:n}});try{return this[tA].onHeaders(A,t,r,n)}catch(s){this.abort(s)}}onData(A){YA(!this.aborted),YA(!this.completed);try{return this[tA].onData(A)}catch(t){return this.abort(t),!1}}onUpgrade(A,t,r){return YA(!this.aborted),YA(!this.completed),this[tA].onUpgrade(A,t,r)}onComplete(A){this.onFinally(),YA(!this.aborted),this.completed=!0,pA.trailers.hasSubscribers&&pA.trailers.publish({request:this,trailers:A});try{return this[tA].onComplete(A)}catch(t){this.onError(t)}}onError(A){if(this.onFinally(),pA.error.hasSubscribers&&pA.error.publish({request:this,error:A}),!this.aborted)return this.aborted=!0,this[tA].onError(A)}onFinally(){this.errorHandler&&(this.body.off("error",this.errorHandler),this.errorHandler=null),this.endHandler&&(this.body.off("end",this.endHandler),this.endHandler=null)}addHeader(A,t){return Ds(this,A,t),this}};function Ds(e,A,t){if(t&&typeof t=="object"&&!Array.isArray(t))throw new re(`invalid ${A} header`);if(t===void 0)return;let r=TQ[A];if(r===void 0&&(r=A.toLowerCase(),TQ[r]===void 0&&!xQ(r)))throw new re("invalid header key");if(Array.isArray(t)){let n=[];for(let s=0;s<t.length;s++)if(typeof t[s]=="string"){if(!nn(t[s]))throw new re(`invalid ${A} header`);n.push(t[s])}else if(t[s]===null)n.push("");else{if(typeof t[s]=="object")throw new re(`invalid ${A} header`);{let i=`${t[s]}`;if(!nn(i))throw new re(`invalid ${A} header`);n.push(i)}}t=n}else if(typeof t=="string"){if(!nn(t))throw new re(`invalid ${A} header`)}else if(t===null)t="";else if(t=`${t}`,!nn(t))throw new re(`invalid ${A} header`);if(r==="host"){if(e.host!==null)throw new re("duplicate host header");if(typeof t!="string")throw new re("invalid host header");e.host=t}else if(r==="content-length"){if(e.contentLength!==null)throw new re("duplicate content-length header");if(e.contentLength=parseInt(t,10),!Number.isFinite(e.contentLength))throw new re("invalid content-length header")}else if(e.contentType===null&&r==="content-type")e.contentType=t,e.headers.push(A,t);else{if(r==="transfer-encoding"||r==="keep-alive"||r==="upgrade")throw new re(`invalid ${r} header`);if(r==="connection"){let n=typeof t=="string"?t.toLowerCase():null;if(n!=="close"&&n!=="keep-alive")throw new re("invalid connection header");n==="close"&&(e.reset=!0)}else{if(r==="expect")throw new Yy("expect header not supported");e.headers.push(A,t)}}}YQ.exports=ea});var sn=p((Fx,JQ)=>{"use strict";var _y=y("node:events"),ks=class extends _y{dispatch(){throw new Error("not implemented")}close(){throw new Error("not implemented")}destroy(){throw new Error("not implemented")}compose(...A){let t=Array.isArray(A[0])?A[0]:A,r=this.dispatch.bind(this);for(let n of t)if(n!=null){if(typeof n!="function")throw new TypeError(`invalid interceptor, expected function received ${typeof n}`);if(r=n(r),r==null||typeof r!="function"||r.length!==2)throw new TypeError("invalid interceptor")}return new Aa(this,r)}},Aa=class extends ks{#e=null;#A=null;constructor(A,t){super(),this.#e=A,this.#A=t}dispatch(...A){this.#A(...A)}close(...A){return this.#e.close(...A)}destroy(...A){return this.#e.destroy(...A)}};JQ.exports=ks});var Ar=p((Rx,HQ)=>{"use strict";var Ky=sn(),{ClientDestroyedError:ta,ClientClosedError:Xy,InvalidArgumentError:jt}=Z(),{kDestroy:jy,kClose:$y,kClosed:on,kDestroyed:$t,kDispatch:ra,kInterceptors:ft}=Qe(),GA=Symbol("onDestroyed"),er=Symbol("onClosed"),bs=Symbol("Intercepted Dispatch"),na=Symbol("webSocketOptions"),sa=class extends Ky{constructor(A){super(),this[$t]=!1,this[GA]=null,this[on]=!1,this[er]=[],this[na]=A?.webSocket??{}}get webSocketOptions(){return{maxFragments:this[na].maxFragments??131072,maxPayloadSize:this[na].maxPayloadSize??128*1024*1024}}get destroyed(){return this[$t]}get closed(){return this[on]}get interceptors(){return this[ft]}set interceptors(A){if(A){for(let t=A.length-1;t>=0;t--)if(typeof this[ft][t]!="function")throw new jt("interceptor must be an function")}this[ft]=A}close(A){if(A===void 0)return new Promise((r,n)=>{this.close((s,i)=>s?n(s):r(i))});if(typeof A!="function")throw new jt("invalid callback");if(this[$t]){queueMicrotask(()=>A(new ta,null));return}if(this[on]){this[er]?this[er].push(A):queueMicrotask(()=>A(null,null));return}this[on]=!0,this[er].push(A);let t=()=>{let r=this[er];this[er]=null;for(let n=0;n<r.length;n++)r[n](null,null)};this[$y]().then(()=>this.destroy()).then(()=>{queueMicrotask(t)})}destroy(A,t){if(typeof A=="function"&&(t=A,A=null),t===void 0)return new Promise((n,s)=>{this.destroy(A,(i,o)=>i?s(i):n(o))});if(typeof t!="function")throw new jt("invalid callback");if(this[$t]){this[GA]?this[GA].push(t):queueMicrotask(()=>t(null,null));return}A||(A=new ta),this[$t]=!0,this[GA]=this[GA]||[],this[GA].push(t);let r=()=>{let n=this[GA];this[GA]=null;for(let s=0;s<n.length;s++)n[s](null,null)};this[jy](A).then(()=>{queueMicrotask(r)})}[bs](A,t){if(!this[ft]||this[ft].length===0)return this[bs]=this[ra],this[ra](A,t);let r=this[ra].bind(this);for(let n=this[ft].length-1;n>=0;n--)r=this[ft][n](r);return this[bs]=r,r(A,t)}dispatch(A,t){if(!t||typeof t!="object")throw new jt("handler must be an object");try{if(!A||typeof A!="object")throw new jt("opts must be an object.");if(this[$t]||this[GA])throw new ta;if(this[on])throw new Xy;return this[bs](A,t)}catch(r){if(typeof t.onError!="function")throw new jt("invalid onError method");return t.onError(r),!1}}};HQ.exports=sa});var Qa=p((Sx,WQ)=>{"use strict";var tr=0,ia=1e3,oa=(ia>>1)-1,JA,aa=Symbol("kFastTimer"),HA=[],ca=-2,ga=-1,vQ=0,VQ=1;function la(){tr+=oa;let e=0,A=HA.length;for(;e<A;){let t=HA[e];t._state===vQ?(t._idleStart=tr-oa,t._state=VQ):t._state===VQ&&tr>=t._idleStart+t._idleTimeout&&(t._state=ga,t._idleStart=-1,t._onTimeout(t._timerArg)),t._state===ga?(t._state=ca,--A!==0&&(HA[e]=HA[A])):++e}HA.length=A,HA.length!==0&&qQ()}function qQ(){JA?JA.refresh():(clearTimeout(JA),JA=setTimeout(la,oa),JA.unref&&JA.unref())}var Fs=class{[aa]=!0;_state=ca;_idleTimeout=-1;_idleStart=-1;_onTimeout;_timerArg;constructor(A,t,r){this._onTimeout=A,this._idleTimeout=t,this._timerArg=r,this.refresh()}refresh(){this._state===ca&&HA.push(this),(!JA||HA.length===1)&&qQ(),this._state=vQ}clear(){this._state=ga,this._idleStart=-1}};WQ.exports={setTimeout(e,A,t){return A<=ia?setTimeout(e,A,t):new Fs(e,A,t)},clearTimeout(e){e[aa]?e.clear():clearTimeout(e)},setFastTimeout(e,A,t){return new Fs(e,A,t)},clearFastTimeout(e){e.clear()},now(){return tr},tick(e=0){tr+=e-ia+1,la(),la()},reset(){tr=0,HA.length=0,clearTimeout(JA),JA=null},kFastTimer:aa}});var an=p((Ux,_Q)=>{"use strict";var ep=y("node:net"),PQ=y("node:assert"),ZQ=v(),{InvalidArgumentError:Ap,ConnectTimeoutError:tp}=Z(),Rs=Qa();function OQ(){}var Ea,Ba;global.FinalizationRegistry&&!(process.env.NODE_V8_COVERAGE||process.env.UNDICI_NO_FG)?Ba=class{constructor(A){this._maxCachedSessions=A,this._sessionCache=new Map,this._sessionRegistry=new global.FinalizationRegistry(t=>{if(this._sessionCache.size<this._maxCachedSessions)return;let r=this._sessionCache.get(t);r!==void 0&&r.deref()===void 0&&this._sessionCache.delete(t)})}get(A){let t=this._sessionCache.get(A);return t?t.deref():null}set(A,t){this._maxCachedSessions!==0&&(this._sessionCache.set(A,new WeakRef(t)),this._sessionRegistry.register(t,A))}}:Ba=class{constructor(A){this._maxCachedSessions=A,this._sessionCache=new Map}get(A){return this._sessionCache.get(A)}set(A,t){if(this._maxCachedSessions!==0){if(this._sessionCache.size>=this._maxCachedSessions){let{value:r}=this._sessionCache.keys().next();this._sessionCache.delete(r)}this._sessionCache.set(A,t)}}};function rp({allowH2:e,maxCachedSessions:A,socketPath:t,timeout:r,session:n,...s}){if(A!=null&&(!Number.isInteger(A)||A<0))throw new Ap("maxCachedSessions must be a positive integer or zero");let i={path:t,...s},o=new Ba(A??100);return r=r??1e4,e=e??!1,function({hostname:g,host:l,protocol:c,port:Q,servername:B,localAddress:E,httpSocket:u},h){let I;if(c==="https:"){Ea||(Ea=y("node:tls")),B=B||i.servername||ZQ.getServerName(l)||null;let D=B||g;PQ(D);let f=n||o.get(D)||null;Q=Q||443,I=Ea.connect({highWaterMark:16384,...i,servername:B,session:f,localAddress:E,ALPNProtocols:e?["http/1.1","h2"]:["http/1.1"],socket:u,port:Q,host:g}),I.on("session",function(R){o.set(D,R)})}else PQ(!u,"httpSocket can only be sent on TLS update"),Q=Q||80,I=ep.connect({highWaterMark:64*1024,...i,localAddress:E,port:Q,host:g});if(i.keepAlive==null||i.keepAlive){let D=i.keepAliveInitialDelay===void 0?6e4:i.keepAliveInitialDelay;I.setKeepAlive(!0,D)}let C=np(new WeakRef(I),{timeout:r,hostname:g,port:Q});return I.setNoDelay(!0).once(c==="https:"?"secureConnect":"connect",function(){if(queueMicrotask(C),h){let D=h;h=null,D(null,this)}}).on("error",function(D){if(queueMicrotask(C),h){let f=h;h=null,f(D)}}),I}}var np=process.platform==="win32"?(e,A)=>{if(!A.timeout)return OQ;let t=null,r=null,n=Rs.setFastTimeout(()=>{t=setImmediate(()=>{r=setImmediate(()=>zQ(e.deref(),A))})},A.timeout);return()=>{Rs.clearFastTimeout(n),clearImmediate(t),clearImmediate(r)}}:(e,A)=>{if(!A.timeout)return OQ;let t=null,r=Rs.setFastTimeout(()=>{t=setImmediate(()=>{zQ(e.deref(),A)})},A.timeout);return()=>{Rs.clearFastTimeout(r),clearImmediate(t)}};function zQ(e,A){if(e==null)return;let t="Connect Timeout Error";Array.isArray(e.autoSelectFamilyAttemptedAddresses)?t+=` (attempted addresses: ${e.autoSelectFamilyAttemptedAddresses.join(", ")},`:t+=` (attempted address: ${A.hostname}:${A.port},`,t+=` timeout: ${A.timeout}ms)`,ZQ.destroy(e,new tp(t))}_Q.exports=rp});var KQ=p(Ss=>{"use strict";Object.defineProperty(Ss,"__esModule",{value:!0});Ss.enumToMap=void 0;function sp(e){let A={};return Object.keys(e).forEach(t=>{let r=e[t];typeof r=="number"&&(A[t]=r)}),A}Ss.enumToMap=sp});var XQ=p(b=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});b.SPECIAL_HEADERS=b.HEADER_STATE=b.MINOR=b.MAJOR=b.CONNECTION_TOKEN_CHARS=b.HEADER_CHARS=b.TOKEN=b.STRICT_TOKEN=b.HEX=b.URL_CHAR=b.STRICT_URL_CHAR=b.USERINFO_CHARS=b.MARK=b.ALPHANUM=b.NUM=b.HEX_MAP=b.NUM_MAP=b.ALPHA=b.FINISH=b.H_METHOD_MAP=b.METHOD_MAP=b.METHODS_RTSP=b.METHODS_ICE=b.METHODS_HTTP=b.METHODS=b.LENIENT_FLAGS=b.FLAGS=b.TYPE=b.ERROR=void 0;var ip=KQ(),op;(function(e){e[e.OK=0]="OK",e[e.INTERNAL=1]="INTERNAL",e[e.STRICT=2]="STRICT",e[e.LF_EXPECTED=3]="LF_EXPECTED",e[e.UNEXPECTED_CONTENT_LENGTH=4]="UNEXPECTED_CONTENT_LENGTH",e[e.CLOSED_CONNECTION=5]="CLOSED_CONNECTION",e[e.INVALID_METHOD=6]="INVALID_METHOD",e[e.INVALID_URL=7]="INVALID_URL",e[e.INVALID_CONSTANT=8]="INVALID_CONSTANT",e[e.INVALID_VERSION=9]="INVALID_VERSION",e[e.INVALID_HEADER_TOKEN=10]="INVALID_HEADER_TOKEN",e[e.INVALID_CONTENT_LENGTH=11]="INVALID_CONTENT_LENGTH",e[e.INVALID_CHUNK_SIZE=12]="INVALID_CHUNK_SIZE",e[e.INVALID_STATUS=13]="INVALID_STATUS",e[e.INVALID_EOF_STATE=14]="INVALID_EOF_STATE",e[e.INVALID_TRANSFER_ENCODING=15]="INVALID_TRANSFER_ENCODING",e[e.CB_MESSAGE_BEGIN=16]="CB_MESSAGE_BEGIN",e[e.CB_HEADERS_COMPLETE=17]="CB_HEADERS_COMPLETE",e[e.CB_MESSAGE_COMPLETE=18]="CB_MESSAGE_COMPLETE",e[e.CB_CHUNK_HEADER=19]="CB_CHUNK_HEADER",e[e.CB_CHUNK_COMPLETE=20]="CB_CHUNK_COMPLETE",e[e.PAUSED=21]="PAUSED",e[e.PAUSED_UPGRADE=22]="PAUSED_UPGRADE",e[e.PAUSED_H2_UPGRADE=23]="PAUSED_H2_UPGRADE",e[e.USER=24]="USER"})(op=b.ERROR||(b.ERROR={}));var ap;(function(e){e[e.BOTH=0]="BOTH",e[e.REQUEST=1]="REQUEST",e[e.RESPONSE=2]="RESPONSE"})(ap=b.TYPE||(b.TYPE={}));var cp;(function(e){e[e.CONNECTION_KEEP_ALIVE=1]="CONNECTION_KEEP_ALIVE",e[e.CONNECTION_CLOSE=2]="CONNECTION_CLOSE",e[e.CONNECTION_UPGRADE=4]="CONNECTION_UPGRADE",e[e.CHUNKED=8]="CHUNKED",e[e.UPGRADE=16]="UPGRADE",e[e.CONTENT_LENGTH=32]="CONTENT_LENGTH",e[e.SKIPBODY=64]="SKIPBODY",e[e.TRAILING=128]="TRAILING",e[e.TRANSFER_ENCODING=512]="TRANSFER_ENCODING"})(cp=b.FLAGS||(b.FLAGS={}));var gp;(function(e){e[e.HEADERS=1]="HEADERS",e[e.CHUNKED_LENGTH=2]="CHUNKED_LENGTH",e[e.KEEP_ALIVE=4]="KEEP_ALIVE"})(gp=b.LENIENT_FLAGS||(b.LENIENT_FLAGS={}));var L;(function(e){e[e.DELETE=0]="DELETE",e[e.GET=1]="GET",e[e.HEAD=2]="HEAD",e[e.POST=3]="POST",e[e.PUT=4]="PUT",e[e.CONNECT=5]="CONNECT",e[e.OPTIONS=6]="OPTIONS",e[e.TRACE=7]="TRACE",e[e.COPY=8]="COPY",e[e.LOCK=9]="LOCK",e[e.MKCOL=10]="MKCOL",e[e.MOVE=11]="MOVE",e[e.PROPFIND=12]="PROPFIND",e[e.PROPPATCH=13]="PROPPATCH",e[e.SEARCH=14]="SEARCH",e[e.UNLOCK=15]="UNLOCK",e[e.BIND=16]="BIND",e[e.REBIND=17]="REBIND",e[e.UNBIND=18]="UNBIND",e[e.ACL=19]="ACL",e[e.REPORT=20]="REPORT",e[e.MKACTIVITY=21]="MKACTIVITY",e[e.CHECKOUT=22]="CHECKOUT",e[e.MERGE=23]="MERGE",e[e["M-SEARCH"]=24]="M-SEARCH",e[e.NOTIFY=25]="NOTIFY",e[e.SUBSCRIBE=26]="SUBSCRIBE",e[e.UNSUBSCRIBE=27]="UNSUBSCRIBE",e[e.PATCH=28]="PATCH",e[e.PURGE=29]="PURGE",e[e.MKCALENDAR=30]="MKCALENDAR",e[e.LINK=31]="LINK",e[e.UNLINK=32]="UNLINK",e[e.SOURCE=33]="SOURCE",e[e.PRI=34]="PRI",e[e.DESCRIBE=35]="DESCRIBE",e[e.ANNOUNCE=36]="ANNOUNCE",e[e.SETUP=37]="SETUP",e[e.PLAY=38]="PLAY",e[e.PAUSE=39]="PAUSE",e[e.TEARDOWN=40]="TEARDOWN",e[e.GET_PARAMETER=41]="GET_PARAMETER",e[e.SET_PARAMETER=42]="SET_PARAMETER",e[e.REDIRECT=43]="REDIRECT",e[e.RECORD=44]="RECORD",e[e.FLUSH=45]="FLUSH"})(L=b.METHODS||(b.METHODS={}));b.METHODS_HTTP=[L.DELETE,L.GET,L.HEAD,L.POST,L.PUT,L.CONNECT,L.OPTIONS,L.TRACE,L.COPY,L.LOCK,L.MKCOL,L.MOVE,L.PROPFIND,L.PROPPATCH,L.SEARCH,L.UNLOCK,L.BIND,L.REBIND,L.UNBIND,L.ACL,L.REPORT,L.MKACTIVITY,L.CHECKOUT,L.MERGE,L["M-SEARCH"],L.NOTIFY,L.SUBSCRIBE,L.UNSUBSCRIBE,L.PATCH,L.PURGE,L.MKCALENDAR,L.LINK,L.UNLINK,L.PRI,L.SOURCE];b.METHODS_ICE=[L.SOURCE];b.METHODS_RTSP=[L.OPTIONS,L.DESCRIBE,L.ANNOUNCE,L.SETUP,L.PLAY,L.PAUSE,L.TEARDOWN,L.GET_PARAMETER,L.SET_PARAMETER,L.REDIRECT,L.RECORD,L.FLUSH,L.GET,L.POST];b.METHOD_MAP=ip.enumToMap(L);b.H_METHOD_MAP={};Object.keys(b.METHOD_MAP).forEach(e=>{/^H/.test(e)&&(b.H_METHOD_MAP[e]=b.METHOD_MAP[e])});var lp;(function(e){e[e.SAFE=0]="SAFE",e[e.SAFE_WITH_CB=1]="SAFE_WITH_CB",e[e.UNSAFE=2]="UNSAFE"})(lp=b.FINISH||(b.FINISH={}));b.ALPHA=[];for(let e=65;e<=90;e++)b.ALPHA.push(String.fromCharCode(e)),b.ALPHA.push(String.fromCharCode(e+32));b.NUM_MAP={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9};b.HEX_MAP={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15};b.NUM=["0","1","2","3","4","5","6","7","8","9"];b.ALPHANUM=b.ALPHA.concat(b.NUM);b.MARK=["-","_",".","!","~","*","'","(",")"];b.USERINFO_CHARS=b.ALPHANUM.concat(b.MARK).concat(["%",";",":","&","=","+","$",","]);b.STRICT_URL_CHAR=["!",'"',"$","%","&","'","(",")","*","+",",","-",".","/",":",";","<","=",">","@","[","\\","]","^","_","`","{","|","}","~"].concat(b.ALPHANUM);b.URL_CHAR=b.STRICT_URL_CHAR.concat([" ","\f"]);for(let e=128;e<=255;e++)b.URL_CHAR.push(e);b.HEX=b.NUM.concat(["a","b","c","d","e","f","A","B","C","D","E","F"]);b.STRICT_TOKEN=["!","#","$","%","&","'","*","+","-",".","^","_","`","|","~"].concat(b.ALPHANUM);b.TOKEN=b.STRICT_TOKEN.concat([" "]);b.HEADER_CHARS=[" "];for(let e=32;e<=255;e++)e!==127&&b.HEADER_CHARS.push(e);b.CONNECTION_TOKEN_CHARS=b.HEADER_CHARS.filter(e=>e!==44);b.MAJOR=b.NUM_MAP;b.MINOR=b.MAJOR;var rr;(function(e){e[e.GENERAL=0]="GENERAL",e[e.CONNECTION=1]="CONNECTION",e[e.CONTENT_LENGTH=2]="CONTENT_LENGTH",e[e.TRANSFER_ENCODING=3]="TRANSFER_ENCODING",e[e.UPGRADE=4]="UPGRADE",e[e.CONNECTION_KEEP_ALIVE=5]="CONNECTION_KEEP_ALIVE",e[e.CONNECTION_CLOSE=6]="CONNECTION_CLOSE",e[e.CONNECTION_UPGRADE=7]="CONNECTION_UPGRADE",e[e.TRANSFER_ENCODING_CHUNKED=8]="TRANSFER_ENCODING_CHUNKED"})(rr=b.HEADER_STATE||(b.HEADER_STATE={}));b.SPECIAL_HEADERS={connection:rr.CONNECTION,"content-length":rr.CONTENT_LENGTH,"proxy-connection":rr.CONNECTION,"transfer-encoding":rr.TRANSFER_ENCODING,upgrade:rr.UPGRADE}});var ua=p((xx,jQ)=>{"use strict";var{Buffer:Qp}=y("node:buffer");jQ.exports=Qp.from("AGFzbQEAAAABJwdgAX8Bf2ADf39/AX9gAX8AYAJ/fwBgBH9/f38Bf2AAAGADf39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQAEA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAAy0sBQYAAAIAAAAAAAACAQIAAgICAAADAAAAAAMDAwMBAQEBAQEBAQEAAAIAAAAEBQFwARISBQMBAAIGCAF/AUGA1AQLB9EFIgZtZW1vcnkCAAtfaW5pdGlhbGl6ZQAIGV9faW5kaXJlY3RfZnVuY3Rpb25fdGFibGUBAAtsbGh0dHBfaW5pdAAJGGxsaHR0cF9zaG91bGRfa2VlcF9hbGl2ZQAvDGxsaHR0cF9hbGxvYwALBm1hbGxvYwAxC2xsaHR0cF9mcmVlAAwEZnJlZQAMD2xsaHR0cF9nZXRfdHlwZQANFWxsaHR0cF9nZXRfaHR0cF9tYWpvcgAOFWxsaHR0cF9nZXRfaHR0cF9taW5vcgAPEWxsaHR0cF9nZXRfbWV0aG9kABAWbGxodHRwX2dldF9zdGF0dXNfY29kZQAREmxsaHR0cF9nZXRfdXBncmFkZQASDGxsaHR0cF9yZXNldAATDmxsaHR0cF9leGVjdXRlABQUbGxodHRwX3NldHRpbmdzX2luaXQAFQ1sbGh0dHBfZmluaXNoABYMbGxodHRwX3BhdXNlABcNbGxodHRwX3Jlc3VtZQAYG2xsaHR0cF9yZXN1bWVfYWZ0ZXJfdXBncmFkZQAZEGxsaHR0cF9nZXRfZXJybm8AGhdsbGh0dHBfZ2V0X2Vycm9yX3JlYXNvbgAbF2xsaHR0cF9zZXRfZXJyb3JfcmVhc29uABwUbGxodHRwX2dldF9lcnJvcl9wb3MAHRFsbGh0dHBfZXJybm9fbmFtZQAeEmxsaHR0cF9tZXRob2RfbmFtZQAfEmxsaHR0cF9zdGF0dXNfbmFtZQAgGmxsaHR0cF9zZXRfbGVu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PgtBhwEMPQtBiAEMPAtBiQEMOwtBigEMOgtBiwEMOQtBjAEMOAtBjQEMNwtBjgEMNgtBjwEMNQtBkAEMNAtBkQEMMwtBkgEMMgtBkwEMMQtBlAEMMAtBlQEMLwtBlgEMLgtBlwEMLQtBmAEMLAtBmQEMKwtBmgEMKgtBmwEMKQtBnAEMKAtBnQEMJwtBngEMJgtBnwEMJQtBoAEMJAtBoQEMIwtBogEMIgtBowEMIQtBpAEMIAtBpQEMHwtBpgEMHgtBpwEMHQtBqAEMHAtBqQEMGwtBqgEMGgtBqwEMGQtBrAEMGAtBrQEMFwtBrgEMFgtBAQwVC0GvAQwUC0GwAQwTC0GxAQwSC0GzAQwRC0GyAQwQC0G0AQwPC0G1AQwOC0G2AQwNC0G3AQwMC0G4AQwLC0G5AQwKC0G6AQwJC0G7AQwIC0HGAQwHC0G8AQwGC0G9AQwFC0G+AQwEC0G/AQwDC0HAAQwCC0HCAQwBC0HBAQshAwNAAkACQAJAAkACQAJAAkACQAJAIAICfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAgJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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iQEhAwykAgtBASABLQAAQd8ARw1nGiABQQFqIQEMXgtBigEhAyABIARGDaICIAIoAgAiACAEIAFraiEFIAEgAGtBAWohBgNAIAEtAAAgAEGMzwBqLQAARw1kIABBAUYN+gEgAEEBaiEAIAQgAUEBaiIBRw0ACyACIAU2AgAMogILQYsBIQMgASAERg2hAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGOzwBqLQAARw1kIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyiAgsgAkEANgIAIAZBAWohAUECDGULQYwBIQMgASAERg2gAiACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHwzwBqLQAARw1jIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyhAgsgAkEANgIAIAZBAWohAUEfDGQLQY0BIQMgASAERg2fAiACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHyzwBqLQAARw1iIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAygAgsgAkEANgIAIAZBAWohAUEJDGMLIAEgBEYEQEGOASEDDJ8CCwJAAkAgAS0AAEHJAGsOBwBiYmJiYgFiCyABQQFqIQFB+AAhAwyGAgsgAUEBaiEBQfkAIQMMhQILQY8BIQMgASAERg2dAiACKAIAIgAgBCABa2ohBSABIABrQQVqIQYCQANAIAEtAAAgAEGRzwBqLQAARw1gIABBBUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyeAgsgAkEANgIAIAZBAWohAUEYDGELQZABIQMgASAERg2cAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGXzwBqLQAARw1fIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAydAgsgAkEANgIAIAZBAWohAUEXDGALQZEBIQMgASAERg2bAiACKAIAIgAgBCABa2ohBSABIABrQQZqIQYCQANAIAEtAAAgAEGazwBqLQAARw1eIABBBkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAycAgsgAkEANgIAIAZBAWohAUEV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JSIARQ0RIAJB5QA2AhwgAiABNgIUIAIgADYCDEEAIQMMtAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0gIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMswELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0iIAJB0gA2AhwgAiABNgIUIAIgADYCDEEAIQMMsgELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0OIAJB5QA2AhwgAiABNgIUIAIgADYCDEEAIQMMsQELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0dIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMsAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0fIAJB0gA2AhwgAiABNgIUIAIgADYCDEEAIQMMrwELIABBP0cNASABQQFqCyEBQQUhAwyUAQtBACEDIAJBADYCHCACIAE2AhQgAkH9EjYCECACQQc2AgwMrAELIAJBADYCHCACIAE2AhQgAkHcCDYCECACQQc2AgxBACEDDKsBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNByACQeUANgIcIAIgATYCFCACIAA2AgxBACEDDKoBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNFiACQdMANgIcIAIgATYCFCACIAA2AgxBACEDDKkBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNGCACQdIANgIcIAIgATYCFCACIAA2AgxBACEDDKgBCyACQQA2AhwgAiABNgIUIAJBxgo2AhAgAkEHNgIMQQAhAwynAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDQMgAkHlADYCHCACIAE2AhQgAiAANgIMQQAhAwymAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDRIgAkHTADYCHCACIAE2AhQgAiAANgIMQQAhAwylAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDRQgAkHSADYCHCACIAE2AhQgAiAANgIMQQAhAwykAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDQAgAkHlADYCHCACIAE2AhQgAiAANgIMQQAhAwyjAQtB1QAhAwyJAQsgAEEVRwRAIAJBADYCHCACIAE2AhQgAkG5DTYCECACQRo2AgxB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AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABB5ABrDvQDY2IAAWFhYWFhYQIDBAVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhBgcICQoLDA0OD2FhYWFhEGFhYWFhYWFhYWFhEWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYRITFBUWFxgZGhthYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2YTc4OTphYWFhYWFhYTthYWE8YWFhYT0+P2FhYWFhYWFhQGFhQWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYUJDREVGR0hJSktMTU5PUFFSU2FhYWFhYWFhVFVWV1hZWlthXF1hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFeYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhX2BhC0HhJw8LQaQhDwtByywPC0H+MQ8LQcAkDwtBqyQPC0GNKA8LQeImDwtBgDAPC0G5Lw8LQdckDwtB7x8PC0HhHw8LQfofDwtB8iAPC0GoLw8LQa4yDwtBiDAPC0HsJw8LQYIiDwtBjh0PC0HQLg8LQcojDwtBxTIPC0HfHA8LQdIcDwtBxCAPC0HXIA8LQaIfDwtB7S4PC0GrMA8LQdQlDwtBzC4PC0H6Lg8LQfwrDwtB0jAPC0HxHQ8LQbsgDwtB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CABB3AgLii1JbnZhbGlkIGNoYXIgaW4gdXJsIHF1ZXJ5AFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fYm9keQBDb250ZW50LUxlbmd0aCBvdmVyZmxvdwBDaHVuayBzaXplIG92ZXJmbG93AFJlc3BvbnNlIG92ZXJmbG93AEludmFsaWQgbWV0aG9kIGZvciBIVFRQL3gueCByZXF1ZXN0AEludmFsaWQgbWV0aG9kIGZvciBSVFNQL3gueCByZXF1ZXN0AEV4cGVjdGVkIFNPVVJDRSBtZXRob2QgZm9yIElDRS94LnggcmVxdWVzdABJbnZhbGlkIGNoYXIgaW4gdXJsIGZyYWdtZW50IHN0YXJ0AEV4cGVjdGVkIGRvdABTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3N0YXR1cwBJbnZhbGlkIHJlc3BvbnNlIHN0YXR1cwBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zAFVzZXIgY2FsbGJhY2sgZXJyb3IAYG9uX3Jlc2V0YCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfaGVhZGVyYCBjYWxsYmFjayBlcnJvcgBgb25fbWVzc2FnZV9iZWdpbmAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3N0YXR1c19jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3ZlcnNpb25fY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl91cmxfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2hlYWRlcl92YWx1ZV9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX21lc3NhZ2VfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXRob2RfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfZmllbGRfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fbmFtZWAgY2FsbGJhY2sgZXJyb3IAVW5leHBlY3RlZCBjaGFyIGluIHVybCBzZXJ2ZXIASW52YWxpZCBoZWFkZXIgdmFsdWUgY2hhcgBJbnZhbGlkIGhlYWRlciBmaWVsZCBjaGFyAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fdmVyc2lvbgBJbnZhbGlkIG1pbm9yIHZlcnNpb24ASW52YWxpZCBtYWpvciB2ZXJzaW9uAEV4cGVjdGVkIHNwYWNlIGFmdGVyIHZlcnNpb24ARXhwZWN0ZWQgQ1JMRiBhZnRlciB2ZXJzaW9uAEludmFsaWQgSFRUUCB2ZXJzaW9uAEludmFsaWQgaGVhZGVyIHRva2VuAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fdXJsAEludmFsaWQgY2hhcmFjdGVycyBpbiB1cmwAVW5leHBlY3RlZCBzdGFydCBjaGFyIGluIHVybABEb3VibGUgQCBpbiB1cmwARW1wdHkgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyYWN0ZXIgaW4gQ29udGVudC1MZW5ndGgARHVwbGljYXRlIENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhciBpbiB1cmwgcGF0aABDb250ZW50LUxlbmd0aCBjYW4ndCBiZSBwcmVzZW50IHdpdGggVHJhbnNmZXItRW5jb2RpbmcASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgc2l6ZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2hlYWRlcl92YWx1ZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHZhbHVlAE1pc3NpbmcgZXhwZWN0ZWQgTEYgYWZ0ZXIgaGVhZGVyIHZhbHVlAEludmFsaWQgYFRyYW5zZmVyLUVuY29kaW5nYCBoZWFkZXIgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZSB2YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHF1b3RlZCB2YWx1ZQBQYXVzZWQgYnkgb25faGVhZGVyc19jb21wbGV0ZQBJbnZhbGlkIEVPRiBzdGF0ZQBvbl9yZXNldCBwYXVzZQBvbl9jaHVua19oZWFkZXIgcGF1c2UAb25fbWVzc2FnZV9iZWdpbiBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fdmFsdWUgcGF1c2UAb25fc3RhdHVzX2NvbXBsZXRlIHBhdXNlAG9uX3ZlcnNpb25fY29tcGxldGUgcGF1c2UAb25fdXJsX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl92YWx1ZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXNzYWdlX2NvbXBsZXRlIHBhdXNlAG9uX21ldGhvZF9jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfZmllbGRfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX25hbWUgcGF1c2UAVW5leHBlY3RlZCBzcGFjZSBhZnRlciBzdGFydCBsaW5lAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX25hbWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBuYW1lAFBhdXNlIG9uIENPTk5FQ1QvVXBncmFkZQBQYXVzZSBvbiBQUkkvVXBncmFkZQBFeHBlY3RlZCBIVFRQLzIgQ29ubmVjdGlvbiBQcmVmYWNlAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fbWV0aG9kAEV4cGVjdGVkIHNwYWNlIGFmdGVyIG1ldGhvZABTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2hlYWRlcl9maWVsZABQYXVzZWQASW52YWxpZCB3b3JkIGVuY291bnRlcmVkAEludmFsaWQgbWV0aG9kIGVuY291bnRlcmVkAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2NoZW1hAFJlcXVlc3QgaGFzIGludmFsaWQgYFRyYW5zZmVyLUVuY29kaW5nYABTV0lUQ0hfUFJPWFkAVVNFX1BST1hZAE1LQUNUSVZJVFkAVU5QUk9DRVNTQUJMRV9FTlRJVFkAQ09QWQBNT1ZFRF9QRVJNQU5FTlRMWQBUT09fRUFSTFkATk9USUZZAEZBSUxFRF9ERVBFTkRFTkNZAEJBRF9HQVRFV0FZAFBMQVkAUFVUAENIRUNLT1VUAEdBVEVXQVlfVElNRU9VVABSRVFVRVNUX1RJTUVPVVQATkVUV09SS19DT05ORUNUX1RJTUVPVVQAQ09OTkVDVElPTl9USU1FT1VUAExPR0lOX1RJTUVPVVQATkVUV09SS19SRUFEX1RJTUVPVVQAUE9TVABNSVNESVJFQ1RFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX0xPQURfQkFMQU5DRURfUkVRVUVTVABCQURfUkVRVUVTVABIVFRQX1JFUVVFU1RfU0VOVF9UT19IVFRQU19QT1JUAFJFUE9SVABJTV9BX1RFQVBPVABSRVNFVF9DT05URU5UAE5PX0NPTlRFTlQAUEFSVElBTF9DT05URU5UAEhQRV9JTlZBTElEX0NPTlNUQU5UAEhQRV9DQl9SRVNFVABHRVQASFBFX1NUUklDVABDT05GTElDVABURU1QT1JBUllfUkVESVJFQ1QAUEVSTUFORU5UX1JFRElSRUNUAENPTk5FQ1QATVVMVElfU1RBVFVTAEhQRV9JTlZBTElEX1NUQVRVUwBUT09fTUFOWV9SRVFVRVNUUwBFQVJMWV9ISU5UUwBVTkFWQUlMQUJMRV9GT1JfTEVHQUxfUkVBU09OUwBPUFRJT05TAFNXSVRDSElOR19QUk9UT0NPTFMAVkFSSUFOVF9BTFNPX05FR09USUFURVMATVVMVElQTEVfQ0hPSUNFUwBJTlRFUk5BTF9TRVJWRVJfRVJST1IAV0VCX1NFUlZFUl9VTktOT1dOX0VSUk9SAFJBSUxHVU5fRVJST1IASURFTlRJVFlfUFJPVklERVJfQVVUSEVOVElDQVRJT05fRVJST1IAU1NMX0NFUlRJRklDQVRFX0VSUk9SAElOVkFMSURfWF9GT1JXQVJERURfRk9SAFNFVF9QQVJBTUVURVIAR0VUX1BBUkFNRVRFUgBIUEVfVVNFUgBTRUVfT1RIRVIASFBFX0NCX0NIVU5LX0hFQURFUgBNS0NBTEVOREFSAFNFVFVQAFdFQl9TRVJWRVJfSVNfRE9XTgBURUFSRE9XTgBIUEVfQ0xPU0VEX0NPTk5FQ1RJT04ASEVVUklTVElDX0VYUElSQVRJT04ARElTQ09OTkVDVEVEX09QRVJBVElPTgBOT05fQVVUSE9SSVRBVElWRV9JTkZPUk1BVElPTgBIUEVfSU5WQUxJRF9WRVJTSU9OAEhQRV9DQl9NRVNTQUdFX0JFR0lOAFNJVEVfSVNfRlJPWkVOAEhQRV9JTlZBTElEX0hFQURFUl9UT0tFTgBJTlZBTElEX1RPS0VOAEZPUkJJRERFTgBFTkhBTkNFX1lPVVJfQ0FMTQBIUEVfSU5WQUxJRF9VUkwAQkxPQ0tFRF9CWV9QQVJFTlRBTF9DT05UUk9MAE1LQ09MAEFDTABIUEVfSU5URVJOQUwAUkVRVUVTVF9IRUFERVJfRklFTERTX1RPT19MQVJHRV9VTk9GRklDSUFMAEhQRV9PSwBVTkxJTksAVU5MT0NLAFBSSQBSRVRSWV9XSVRIAEhQRV9JTlZBTElEX0NPTlRFTlRfTEVOR1RIAEhQRV9VTkVYUEVDVEVEX0NPTlRFTlRfTEVOR1RIAEZMVVNIAFBST1BQQVRDSABNLVNFQVJDSABVUklfVE9PX0xPTkcAUFJPQ0VTU0lORwBNSVNDRUxMQU5FT1VTX1BFUlNJU1RFTlRfV0FSTklORwBNSVNDRUxMQU5FT1VTX1dBUk5JTkcASFBFX0lOVkFMSURfVFJBTlNGRVJfRU5DT0RJTkcARXhwZWN0ZWQgQ1JMRgBIUEVfSU5WQUxJRF9DSFVOS19TSVpFAE1PVkUAQ09OVElOVUUASFBFX0NCX1NUQVRVU19DT01QTEVURQBIUEVfQ0JfSEVBREVSU19DT01QTEVURQBIUEVfQ0JfVkVSU0lPTl9DT01QTEVURQBIUEVfQ0JfVVJMX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19DT01QTEVURQBIUEVfQ0JfSEVBREVSX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9OQU1FX0NPTVBMRVRFAEhQRV9DQl9NRVNTQUdFX0NPTVBMRVRFAEhQRV9DQl9NRVRIT0RfQ09NUExFVEUASFBFX0NCX0hFQURFUl9GSUVMRF9DT01QTEVURQBERUxFVEUASFBFX0lOVkFMSURfRU9GX1NUQVRFAElOVkFMSURfU1NMX0NFUlRJRklDQVRFAFBBVVNFAE5PX1JFU1BPTlNFAFVOU1VQUE9SVEVEX01FRElBX1RZUEUAR09ORQBOT1RfQUNDRVBUQUJMRQBTRVJWSUNFX1VOQVZBSUxBQkxFAFJBTkdFX05PVF9TQVRJU0ZJQUJMRQBPUklHSU5fSVNfVU5SRUFDSEFCTEUAUkVTUE9OU0VfSVNfU1RBTEUAUFVSR0UATUVSR0UAUkVRVUVTVF9IRUFERVJfRklFTERTX1RPT19MQVJHRQBSRVFVRVNUX0hFQURFUl9UT09fTEFSR0UAUEFZTE9BRF9UT09fTEFSR0UASU5TVUZGSUNJRU5UX1NUT1JBR0UASFBFX1BBVVNFRF9VUEdSQURFAEhQRV9QQVVTRURfSDJfVVBHUkFERQBTT1VSQ0UAQU5OT1VOQ0UAVFJBQ0UASFBFX1VORVhQRUNURURfU1BBQ0UAREVTQ1JJQkUAVU5TVUJTQ1JJQkUAUkVDT1JEAEhQRV9JTlZBTElEX01FVEhPRABOT1RfRk9VTkQAUFJPUEZJTkQAVU5CSU5EAFJFQklORABVTkFVVEhPUklaRUQATUVUSE9EX05PVF9BTExPV0VEAEhUVFBfVkVSU0lPTl9OT1RfU1VQUE9SVEVEAEFMUkVBRFlfUkVQT1JURUQAQUNDRVBURUQATk9UX0lNUExFTUVOVEVEAExPT1BfREVURUNURUQASFBFX0NSX0VYUEVDVEVEAEhQRV9MRl9FWFBFQ1RFRABDUkVBVEVEAElNX1VTRUQASFBFX1BBVVNFRABUSU1FT1VUX09DQ1VSRUQAUEFZTUVOVF9SRVFVSVJFRABQUkVDT05ESVRJT05fUkVRVUlSRUQAUFJPWFlfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATkVUV09SS19BVVRIRU5USUNBVElPTl9SRVFVSVJFRABMRU5HVEhfUkVRVUlSRUQAU1NMX0NFUlRJRklDQVRFX1JFUVVJUkVEAFVQR1JBREVfUkVRVUlSRUQAUEFHRV9FWFBJUkVEAFBSRUNPTkRJVElPTl9GQUlMRUQARVhQRUNUQVRJT05fRkFJTEVEAFJFVkFMSURBVElPTl9GQUlMRUQAU1NMX0hBTkRTSEFLRV9GQUlMRUQATE9DS0VEAFRSQU5TRk9STUFUSU9OX0FQUExJRUQATk9UX01PRElGSUVEAE5PVF9FWFRFTkRFRABCQU5EV0lEVEhfTElNSVRfRVhDRUVERUQAU0lURV9JU19PVkVSTE9BREVEAEhFQUQARXhwZWN0ZWQgSFRUUC8AAF4TAAAmEwAAMBAAAPAXAACdEwAAFRIAADkXAADwEgAAChAAAHUSAACtEgAAghMAAE8UAAB/EAAAoBUAACMUAACJEgAAixQAAE0VAADUEQAAzxQAABAYAADJFgAA3BYAAMERAADgFwAAuxQAAHQUAAB8FQAA5RQAAAgXAAAfEAAAZRUAAKMUAAAoFQAAAhUAAJkVAAAsEAAAixkAAE8PAADUDgAAahAAAM4QAAACFwAAiQ4AAG4TAAAcEwAAZhQAAFYXAADBEwAAzRMAAGwTAABoFwAAZhcAAF8XAAAiEwAAzg8AAGkOAADYDgAAYxYAAMsTAACqDgAAKBcAACYXAADFEwAAXRYAAOgRAABnEwAAZRMAAPIWAABzEwAAHRcAAPkWAADzEQAAzw4AAM4VAAAMEgAAsxEAAKURAABhEAAAMhcAALsTAEH5NQsBAQBBkDYL4AEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB/TcLAQEAQZE4C14CAwICAgICAAACAgACAgACAgICAgICAgICAAQAAAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAEH9OQsBAQBBkToLXgIAAgICAgIAAAICAAICAAICAgICAgICAgIAAwAEAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAQfA7Cw1sb3NlZWVwLWFsaXZlAEGJPAsBAQBBoDwL4AEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBBiT4LAQEAQaA+C+cBAQEBAQEBAQEBAQEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQFjaHVua2VkAEGwwAALXwEBAAEBAQEBAAABAQABAQABAQEBAQEBAQEBAAAAAAAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAEGQwgALIWVjdGlvbmVudC1sZW5ndGhvbnJveHktY29ubmVjdGlvbgBBwMIACy1yYW5zZmVyLWVuY29kaW5ncGdyYWRlDQoNCg0KU00NCg0KVFRQL0NFL1RTUC8AQfnCAAsFAQIAAQMAQZDDAAvgAQQBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAEH5xAALBQECAAEDAEGQxQAL4AEEAQEFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB+cYACwQBAAABAEGRxwAL3wEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAEH6yAALBAEAAAIAQZDJAAtfAwQAAAQEBAQEBAQEBAQEBQQEBAQEBAQEBAQEBAAEAAYHBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQAQfrKAAsEAQAAAQBBkMsACwEBAEGqywALQQIAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAEH6zAALBAEAAAEAQZDNAAsBAQBBms0ACwYCAAAAAAIAQbHNAAs6AwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBB8M4AC5YBTk9VTkNFRUNLT1VUTkVDVEVURUNSSUJFTFVTSEVURUFEU0VBUkNIUkdFQ1RJVklUWUxFTkRBUlZFT1RJRllQVElPTlNDSFNFQVlTVEFUQ0hHRU9SRElSRUNUT1JUUkNIUEFSQU1FVEVSVVJDRUJTQ1JJQkVBUkRPV05BQ0VJTkROS0NLVUJTQ1JJQkVIVFRQL0FEVFAv","base64")});var eE=p((Yx,$Q)=>{"use strict";var{Buffer:Ep}=y("node:buffer");$Q.exports=Ep.from("AGFzbQEAAAABJwdgAX8Bf2ADf39/AX9gAX8AYAJ/fwBgBH9/f38Bf2AAAGADf39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQAEA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAAy0sBQYAAAIAAAAAAAACAQIAAgICAAADAAAAAAMDAwMBAQEBAQEBAQEAAAIAAAAEBQFwARISBQMBAAIGCAF/AUGA1AQLB9EFIgZtZW1vcnkCAAtfaW5pdGlhbGl6ZQAIGV9faW5kaXJlY3RfZnVuY3Rpb25fdGFibGUBAAtsbGh0dHBfaW5pdAAJGGxsaHR0cF9zaG91bGRfa2VlcF9hbGl2ZQAvDGxsaHR0cF9hbGxvYwALBm1hbGxvYwAxC2xsaHR0cF9mcmVlAAwEZnJlZQAMD2xsaHR0cF9nZXRfdHlwZQANFWxsaHR0cF9nZXRfaHR0cF9tYWpvcgAOFWxsaHR0cF9nZXRfaHR0cF9taW5vcgAPEWxsaHR0cF9nZXRfbWV0aG9kABAWbGxodHRwX2dldF9zdGF0dXNfY29kZQAREmxsaHR0cF9nZXRfdXBncmFkZQASDGxsaHR0cF9yZXNldAATDmxsaHR0cF9leGVjdXRlABQUbGxodHRwX3NldHRpbmdzX2luaXQAFQ1sbGh0dHBfZmluaXNoABYMbGxodHRwX3BhdXNlABcNbGxodHRwX3Jlc3VtZQAYG2xsaHR0cF9yZXN1bWVfYWZ0ZXJfdXBncmFkZQAZEGxsaHR0cF9nZXRfZXJybm8AGhdsbGh0dHBfZ2V0X2Vycm9yX3JlYXNvbgAbF2xsaHR0cF9zZXRfZXJyb3JfcmVhc29uABwUbGxodHRwX2dldF9lcnJvcl9wb3MAHRFsbGh0dHBfZXJybm9fbmFtZQAeEmxsaHR0cF9tZXRob2RfbmFtZQAfEmxsaHR0cF9zdGF0dXNfbmFtZQAgGmxsaHR0cF9zZXRfbGVu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PgtBhwEMPQtBiAEMPAtBiQEMOwtBigEMOgtBiwEMOQtBjAEMOAtBjQEMNwtBjgEMNgtBjwEMNQtBkAEMNAtBkQEMMwtBkgEMMgtBkwEMMQtBlAEMMAtBlQEMLwtBlgEMLgtBlwEMLQtBmAEMLAtBmQEMKwtBmgEMKgtBmwEMKQtBnAEMKAtBnQEMJwtBngEMJgtBnwEMJQtBoAEMJAtBoQEMIwtBogEMIgtBowEMIQtBpAEMIAtBpQEMHwtBpgEMHgtBpwEMHQtBqAEMHAtBqQEMGwtBqgEMGgtBqwEMGQtBrAEMGAtBrQEMFwtBrgEMFgtBAQwVC0GvAQwUC0GwAQwTC0GxAQwSC0GzAQwRC0GyAQwQC0G0AQwPC0G1AQwOC0G2AQwNC0G3AQwMC0G4AQwLC0G5AQwKC0G6AQwJC0G7AQwIC0HGAQwHC0G8AQwGC0G9AQwFC0G+AQwEC0G/AQwDC0HAAQwCC0HCAQwBC0HBAQshAwNAAkACQAJAAkACQAJAAkACQAJAIAICfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAgJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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iQEhAwykAgtBASABLQAAQd8ARw1nGiABQQFqIQEMXgtBigEhAyABIARGDaICIAIoAgAiACAEIAFraiEFIAEgAGtBAWohBgNAIAEtAAAgAEGMzwBqLQAARw1kIABBAUYN+gEgAEEBaiEAIAQgAUEBaiIBRw0ACyACIAU2AgAMogILQYsBIQMgASAERg2hAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGOzwBqLQAARw1kIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyiAgsgAkEANgIAIAZBAWohAUECDGULQYwBIQMgASAERg2gAiACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHwzwBqLQAARw1jIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyhAgsgAkEANgIAIAZBAWohAUEfDGQLQY0BIQMgASAERg2fAiACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHyzwBqLQAARw1iIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAygAgsgAkEANgIAIAZBAWohAUEJDGMLIAEgBEYEQEGOASEDDJ8CCwJAAkAgAS0AAEHJAGsOBwBiYmJiYgFiCyABQQFqIQFB+AAhAwyGAgsgAUEBaiEBQfkAIQMMhQILQY8BIQMgASAERg2dAiACKAIAIgAgBCABa2ohBSABIABrQQVqIQYCQANAIAEtAAAgAEGRzwBqLQAARw1gIABBBUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyeAgsgAkEANgIAIAZBAWohAUEYDGELQZABIQMgASAERg2cAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGXzwBqLQAARw1fIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAydAgsgAkEANgIAIAZBAWohAUEXDGALQZEBIQMgASAERg2bAiACKAIAIgAgBCABa2ohBSABIABrQQZqIQYCQANAIAEtAAAgAEGazwBqLQAARw1eIABBBkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAycAgsgAkEANgIAIAZBAWohAUEV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JSIARQ0RIAJB5QA2AhwgAiABNgIUIAIgADYCDEEAIQMMtAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0gIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMswELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0iIAJB0gA2AhwgAiABNgIUIAIgADYCDEEAIQMMsgELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0OIAJB5QA2AhwgAiABNgIUIAIgADYCDEEAIQMMsQELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0dIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMsAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0fIAJB0gA2AhwgAiABNgIUIAIgADYCDEEAIQMMrwELIABBP0cNASABQQFqCyEBQQUhAwyUAQtBACEDIAJBADYCHCACIAE2AhQgAkH9EjYCECACQQc2AgwMrAELIAJBADYCHCACIAE2AhQgAkHcCDYCECACQQc2AgxBACEDDKsBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNByACQeUANgIcIAIgATYCFCACIAA2AgxBACEDDKoBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNFiACQdMANgIcIAIgATYCFCACIAA2AgxBACEDDKkBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNGCACQdIANgIcIAIgATYCFCACIAA2AgxBACEDDKgBCyACQQA2AhwgAiABNgIUIAJBxgo2AhAgAkEHNgIMQQAhAwynAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDQMgAkHlADYCHCACIAE2AhQgAiAANgIMQQAhAwymAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDRIgAkHTADYCHCACIAE2AhQgAiAANgIMQQAhAwylAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDRQgAkHSADYCHCACIAE2AhQgAiAANgIMQQAhAwykAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDQAgAkHlADYCHCACIAE2AhQgAiAANgIMQQAhAwyjAQtB1QAhAwyJAQsgAEEVRwRAIAJBADYCHCACIAE2AhQgAkG5DTYCECACQRo2AgxB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AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABB5ABrDvQDY2IAAWFhYWFhYQIDBAVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhBgcICQoLDA0OD2FhYWFhEGFhYWFhYWFhYWFhEWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYRITFBUWFxgZGhthYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2YTc4OTphYWFhYWFhYTthYWE8YWFhYT0+P2FhYWFhYWFhQGFhQWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYUJDREVGR0hJSktMTU5PUFFSU2FhYWFhYWFhVFVWV1hZWlthXF1hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFeYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhX2BhC0HhJw8LQaQhDwtByywPC0H+MQ8LQcAkDwtBqyQPC0GNKA8LQeImDwtBgDAPC0G5Lw8LQdckDwtB7x8PC0HhHw8LQfofDwtB8iAPC0GoLw8LQa4yDwtBiDAPC0HsJw8LQYIiDwtBjh0PC0HQLg8LQcojDwtBxTIPC0HfHA8LQdIcDwtBxCAPC0HXIA8LQaIfDwtB7S4PC0GrMA8LQdQlDwtBzC4PC0H6Lg8LQfwrDwtB0jAPC0HxHQ8LQbsgDwtB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AAADAEGUCAsFBAAAAAUAQaQICwkGAAAABwAAAAgAQdwIC4otSW52YWxpZCBjaGFyIGluIHVybCBxdWVyeQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2JvZHkAQ29udGVudC1MZW5ndGggb3ZlcmZsb3cAQ2h1bmsgc2l6ZSBvdmVyZmxvdwBSZXNwb25zZSBvdmVyZmxvdwBJbnZhbGlkIG1ldGhvZCBmb3IgSFRUUC94LnggcmVxdWVzdABJbnZhbGlkIG1ldGhvZCBmb3IgUlRTUC94LnggcmVxdWVzdABFeHBlY3RlZCBTT1VSQ0UgbWV0aG9kIGZvciBJQ0UveC54IHJlcXVlc3QASW52YWxpZCBjaGFyIGluIHVybCBmcmFnbWVudCBzdGFydABFeHBlY3RlZCBkb3QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9zdGF0dXMASW52YWxpZCByZXNwb25zZSBzdGF0dXMASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucwBVc2VyIGNhbGxiYWNrIGVycm9yAGBvbl9yZXNldGAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2hlYWRlcmAgY2FsbGJhY2sgZXJyb3IAYG9uX21lc3NhZ2VfYmVnaW5gIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fdmFsdWVgIGNhbGxiYWNrIGVycm9yAGBvbl9zdGF0dXNfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl92ZXJzaW9uX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdXJsX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAEVtcHR5IENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhcmFjdGVyIGluIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBNaXNzaW5nIGV4cGVjdGVkIExGIGFmdGVyIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AgaGVhZGVyIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGUgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZWQgdmFsdWUAUGF1c2VkIGJ5IG9uX2hlYWRlcnNfY29tcGxldGUASW52YWxpZCBFT0Ygc3RhdGUAb25fcmVzZXQgcGF1c2UAb25fY2h1bmtfaGVhZGVyIHBhdXNlAG9uX21lc3NhZ2VfYmVnaW4gcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlIHBhdXNlAG9uX3N0YXR1c19jb21wbGV0ZSBwYXVzZQBvbl92ZXJzaW9uX2NvbXBsZXRlIHBhdXNlAG9uX3VybF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGUgcGF1c2UAb25fbWVzc2FnZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXRob2RfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lIHBhdXNlAFVuZXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgc3RhcnQgbGluZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgbmFtZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AAU1dJVENIX1BST1hZAFVTRV9QUk9YWQBNS0FDVElWSVRZAFVOUFJPQ0VTU0FCTEVfRU5USVRZAENPUFkATU9WRURfUEVSTUFORU5UTFkAVE9PX0VBUkxZAE5PVElGWQBGQUlMRURfREVQRU5ERU5DWQBCQURfR0FURVdBWQBQTEFZAFBVVABDSEVDS09VVABHQVRFV0FZX1RJTUVPVVQAUkVRVUVTVF9USU1FT1VUAE5FVFdPUktfQ09OTkVDVF9USU1FT1VUAENPTk5FQ1RJT05fVElNRU9VVABMT0dJTl9USU1FT1VUAE5FVFdPUktfUkVBRF9USU1FT1VUAFBPU1QATUlTRElSRUNURURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9MT0FEX0JBTEFOQ0VEX1JFUVVFU1QAQkFEX1JFUVVFU1QASFRUUF9SRVFVRVNUX1NFTlRfVE9fSFRUUFNfUE9SVABSRVBPUlQASU1fQV9URUFQT1QAUkVTRVRfQ09OVEVOVABOT19DT05URU5UAFBBUlRJQUxfQ09OVEVOVABIUEVfSU5WQUxJRF9DT05TVEFOVABIUEVfQ0JfUkVTRVQAR0VUAEhQRV9TVFJJQ1QAQ09ORkxJQ1QAVEVNUE9SQVJZX1JFRElSRUNUAFBFUk1BTkVOVF9SRURJUkVDVABDT05ORUNUAE1VTFRJX1NUQVRVUwBIUEVfSU5WQUxJRF9TVEFUVVMAVE9PX01BTllfUkVRVUVTVFMARUFSTFlfSElOVFMAVU5BVkFJTEFCTEVfRk9SX0xFR0FMX1JFQVNPTlMAT1BUSU9OUwBTV0lUQ0hJTkdfUFJPVE9DT0xTAFZBUklBTlRfQUxTT19ORUdPVElBVEVTAE1VTFRJUExFX0NIT0lDRVMASU5URVJOQUxfU0VSVkVSX0VSUk9SAFdFQl9TRVJWRVJfVU5LTk9XTl9FUlJPUgBSQUlMR1VOX0VSUk9SAElERU5USVRZX1BST1ZJREVSX0FVVEhFTlRJQ0FUSU9OX0VSUk9SAFNTTF9DRVJUSUZJQ0FURV9FUlJPUgBJTlZBTElEX1hfRk9SV0FSREVEX0ZPUgBTRVRfUEFSQU1FVEVSAEdFVF9QQVJBTUVURVIASFBFX1VTRVIAU0VFX09USEVSAEhQRV9DQl9DSFVOS19IRUFERVIATUtDQUxFTkRBUgBTRVRVUABXRUJfU0VSVkVSX0lTX0RPV04AVEVBUkRPV04ASFBFX0NMT1NFRF9DT05ORUNUSU9OAEhFVVJJU1RJQ19FWFBJUkFUSU9OAERJU0NPTk5FQ1RFRF9PUEVSQVRJT04ATk9OX0FVVEhPUklUQVRJVkVfSU5GT1JNQVRJT04ASFBFX0lOVkFMSURfVkVSU0lPTgBIUEVfQ0JfTUVTU0FHRV9CRUdJTgBTSVRFX0lTX0ZST1pFTgBIUEVfSU5WQUxJRF9IRUFERVJfVE9LRU4ASU5WQUxJRF9UT0tFTgBGT1JCSURERU4ARU5IQU5DRV9ZT1VSX0NBTE0ASFBFX0lOVkFMSURfVVJMAEJMT0NLRURfQllfUEFSRU5UQUxfQ09OVFJPTABNS0NPTABBQ0wASFBFX0lOVEVSTkFMAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0VfVU5PRkZJQ0lBTABIUEVfT0sAVU5MSU5LAFVOTE9DSwBQUkkAUkVUUllfV0lUSABIUEVfSU5WQUxJRF9DT05URU5UX0xFTkdUSABIUEVfVU5FWFBFQ1RFRF9DT05URU5UX0xFTkdUSABGTFVTSABQUk9QUEFUQ0gATS1TRUFSQ0gAVVJJX1RPT19MT05HAFBST0NFU1NJTkcATUlTQ0VMTEFORU9VU19QRVJTSVNURU5UX1dBUk5JTkcATUlTQ0VMTEFORU9VU19XQVJOSU5HAEhQRV9JTlZBTElEX1RSQU5TRkVSX0VOQ09ESU5HAEV4cGVjdGVkIENSTEYASFBFX0lOVkFMSURfQ0hVTktfU0laRQBNT1ZFAENPTlRJTlVFAEhQRV9DQl9TVEFUVVNfQ09NUExFVEUASFBFX0NCX0hFQURFUlNfQ09NUExFVEUASFBFX0NCX1ZFUlNJT05fQ09NUExFVEUASFBFX0NCX1VSTF9DT01QTEVURQBIUEVfQ0JfQ0hVTktfQ09NUExFVEUASFBFX0NCX0hFQURFUl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fTkFNRV9DT01QTEVURQBIUEVfQ0JfTUVTU0FHRV9DT01QTEVURQBIUEVfQ0JfTUVUSE9EX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfRklFTERfQ09NUExFVEUAREVMRVRFAEhQRV9JTlZBTElEX0VPRl9TVEFURQBJTlZBTElEX1NTTF9DRVJUSUZJQ0FURQBQQVVTRQBOT19SRVNQT05TRQBVTlNVUFBPUlRFRF9NRURJQV9UWVBFAEdPTkUATk9UX0FDQ0VQVEFCTEUAU0VSVklDRV9VTkFWQUlMQUJMRQBSQU5HRV9OT1RfU0FUSVNGSUFCTEUAT1JJR0lOX0lTX1VOUkVBQ0hBQkxFAFJFU1BPTlNFX0lTX1NUQUxFAFBVUkdFAE1FUkdFAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0UAUkVRVUVTVF9IRUFERVJfVE9PX0xBUkdFAFBBWUxPQURfVE9PX0xBUkdFAElOU1VGRklDSUVOVF9TVE9SQUdFAEhQRV9QQVVTRURfVVBHUkFERQBIUEVfUEFVU0VEX0gyX1VQR1JBREUAU09VUkNFAEFOTk9VTkNFAFRSQUNFAEhQRV9VTkVYUEVDVEVEX1NQQUNFAERFU0NSSUJFAFVOU1VCU0NSSUJFAFJFQ09SRABIUEVfSU5WQUxJRF9NRVRIT0QATk9UX0ZPVU5EAFBST1BGSU5EAFVOQklORABSRUJJTkQAVU5BVVRIT1JJWkVEAE1FVEhPRF9OT1RfQUxMT1dFRABIVFRQX1ZFUlNJT05fTk9UX1NVUFBPUlRFRABBTFJFQURZX1JFUE9SVEVEAEFDQ0VQVEVEAE5PVF9JTVBMRU1FTlRFRABMT09QX0RFVEVDVEVEAEhQRV9DUl9FWFBFQ1RFRABIUEVfTEZfRVhQRUNURUQAQ1JFQVRFRABJTV9VU0VEAEhQRV9QQVVTRUQAVElNRU9VVF9PQ0NVUkVEAFBBWU1FTlRfUkVRVUlSRUQAUFJFQ09ORElUSU9OX1JFUVVJUkVEAFBST1hZX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAE5FVFdPUktfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATEVOR1RIX1JFUVVJUkVEAFNTTF9DRVJUSUZJQ0FURV9SRVFVSVJFRABVUEdSQURFX1JFUVVJUkVEAFBBR0VfRVhQSVJFRABQUkVDT05ESVRJT05fRkFJTEVEAEVYUEVDVEFUSU9OX0ZBSUxFRABSRVZBTElEQVRJT05fRkFJTEVEAFNTTF9IQU5EU0hBS0VfRkFJTEVEAExPQ0tFRABUUkFOU0ZPUk1BVElPTl9BUFBMSUVEAE5PVF9NT0RJRklFRABOT1RfRVhURU5ERUQAQkFORFdJRFRIX0xJTUlUX0VYQ0VFREVEAFNJVEVfSVNfT1ZFUkxPQURFRABIRUFEAEV4cGVjdGVkIEhUVFAvAABeEwAAJhMAADAQAADwFwAAnRMAABUSAAA5FwAA8BIAAAoQAAB1EgAArRIAAIITAABPFAAAfxAAAKAVAAAjFAAAiRIAAIsUAABNFQAA1BEAAM8UAAAQGAAAyRYAANwWAADBEQAA4BcAALsUAAB0FAAAfBUAAOUUAAAIFwAAHxAAAGUVAACjFAAAKBUAAAIVAACZFQAALBAAAIsZAABPDwAA1A4AAGoQAADOEAAAAhcAAIkOAABuEwAAHBMAAGYUAABWFwAAwRMAAM0TAABsEwAAaBcAAGYXAABfFwAAIhMAAM4PAABpDgAA2A4AAGMWAADLEwAAqg4AACgXAAAmFwAAxRMAAF0WAADoEQAAZxMAAGUTAADyFgAAcxMAAB0XAAD5FgAA8xEAAM8OAADOFQAADBIAALMRAAClEQAAYRAAADIXAAC7EwBB+TULAQEAQZA2C+ABAQECAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAQf03CwEBAEGROAteAgMCAgICAgAAAgIAAgIAAgICAgICAgICAgAEAAAAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAAIAAgBB/TkLAQEAQZE6C14CAAICAgICAAACAgACAgACAgICAgICAgICAAMABAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAEHwOwsNbG9zZWVlcC1hbGl2ZQBBiTwLAQEAQaA8C+ABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAQYk+CwEBAEGgPgvnAQEBAQEBAQEBAQEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBY2h1bmtlZABBsMAAC18BAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQBBkMIACyFlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AQcDCAAstcmFuc2Zlci1lbmNvZGluZ3BncmFkZQ0KDQoNClNNDQoNClRUUC9DRS9UU1AvAEH5wgALBQECAAEDAEGQwwAL4AEEAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB+cQACwUBAgABAwBBkMUAC+ABBAEBBQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAQfnGAAsEAQAAAQBBkccAC98BAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB+sgACwQBAAACAEGQyQALXwMEAAAEBAQEBAQEBAQEBAUEBAQEBAQEBAQEBAQABAAGBwQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEAEH6ygALBAEAAAEAQZDLAAsBAQBBqssAC0ECAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBB+swACwQBAAABAEGQzQALAQEAQZrNAAsGAgAAAAACAEGxzQALOgMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAQfDOAAuWAU5PVU5DRUVDS09VVE5FQ1RFVEVDUklCRUxVU0hFVEVBRFNFQVJDSFJHRUNUSVZJVFlMRU5EQVJWRU9USUZZUFRJT05TQ0hTRUFZU1RBVENIR0VPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFSFRUUC9BRFRQLw==","base64")});var cn=p((Gx,aE)=>{"use strict";var AE=["GET","HEAD","POST"],Bp=new Set(AE),up=[101,204,205,304],tE=[301,302,303,307,308],Ip=new Set(tE),rE=["1","7","9","11","13","15","17","19","20","21","22","23","25","37","42","43","53","69","77","79","87","95","101","102","103","104","109","110","111","113","115","117","119","123","135","137","139","143","161","179","389","427","465","512","513","514","515","526","530","531","532","540","548","554","556","563","587","601","636","989","990","993","995","1719","1720","1723","2049","3659","4045","4190","5060","5061","6000","6566","6665","6666","6667","6668","6669","6679","6697","10080"],hp=new Set(rE),nE=["","no-referrer","no-referrer-when-downgrade","same-origin","origin","strict-origin","origin-when-cross-origin","strict-origin-when-cross-origin","unsafe-url"],Cp=new Set(nE),fp=["follow","manual","error"],sE=["GET","HEAD","OPTIONS","TRACE"],dp=new Set(sE),wp=["navigate","same-origin","no-cors","cors"],yp=["omit","same-origin","include"],pp=["default","no-store","reload","no-cache","force-cache","only-if-cached"],mp=["content-encoding","content-language","content-location","content-type","content-length"],Dp=["half"],iE=["CONNECT","TRACE","TRACK"],kp=new Set(iE),oE=["audio","audioworklet","font","image","manifest","paintworklet","script","style","track","video","xslt",""],bp=new Set(oE);aE.exports={subresource:oE,forbiddenMethods:iE,requestBodyHeader:mp,referrerPolicy:nE,requestRedirect:fp,requestMode:wp,requestCredentials:yp,requestCache:pp,redirectStatus:tE,corsSafeListedMethods:AE,nullBodyStatus:up,safeMethods:sE,badPorts:rE,requestDuplex:Dp,subresourceSet:bp,badPortsSet:hp,redirectStatusSet:Ip,corsSafeListedMethodsSet:Bp,safeMethodsSet:dp,forbiddenMethodsSet:kp,referrerPolicySet:Cp}});var ha=p((Jx,cE)=>{"use strict";var Ia=Symbol.for("undici.globalOrigin.1");function Fp(){return globalThis[Ia]}function Rp(e){if(e===void 0){Object.defineProperty(globalThis,Ia,{value:void 0,writable:!0,enumerable:!1,configurable:!1});return}let A=new URL(e);if(A.protocol!=="http:"&&A.protocol!=="https:")throw new TypeError(`Only http & https urls are allowed, received ${A.protocol}`);Object.defineProperty(globalThis,Ia,{value:A,writable:!0,enumerable:!1,configurable:!1})}cE.exports={getGlobalOrigin:Fp,setGlobalOrigin:Rp}});var He=p((Hx,IE)=>{"use strict";var Ms=y("node:assert"),Sp=new TextEncoder,gn=/^[!#$%&'*+\-.^_|~A-Za-z0-9]+$/,Np=/[\u000A\u000D\u0009\u0020]/,Mp=/[\u0009\u000A\u000C\u000D\u0020]/g,Up=/^[\u0009\u0020-\u007E\u0080-\u00FF]+$/;function Lp(e){Ms(e.protocol==="data:");let A=QE(e,!0);A=A.slice(5);let t={position:0},r=nr(",",A,t),n=r.length;if(r=Hp(r,!0,!0),t.position>=A.length)return"failure";t.position++;let s=A.slice(n+1),i=EE(s);if(/;(\u0020){0,}base64$/i.test(r)){let a=uE(i);if(i=xp(a),i==="failure")return"failure";r=r.slice(0,-6),r=r.replace(/(\u0020)+$/,""),r=r.slice(0,-1)}r.startsWith(";")&&(r="text/plain"+r);let o=Ca(r);return o==="failure"&&(o=Ca("text/plain;charset=US-ASCII")),{mimeType:o,body:i}}function QE(e,A=!1){if(!A)return e.href;let t=e.href,r=e.hash.length,n=r===0?t:t.substring(0,t.length-r);return!r&&t.endsWith("#")?n.slice(0,-1):n}function Us(e,A,t){let r="";for(;t.position<A.length&&e(A[t.position]);)r+=A[t.position],t.position++;return r}function nr(e,A,t){let r=A.indexOf(e,t.position),n=t.position;return r===-1?(t.position=A.length,A.slice(n)):(t.position=r,A.slice(n,t.position))}function EE(e){let A=Sp.encode(e);return Tp(A)}function gE(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102}function lE(e){return e>=48&&e<=57?e-48:(e&223)-55}function Tp(e){let A=e.length,t=new Uint8Array(A),r=0;for(let n=0;n<A;++n){let s=e[n];s!==37?t[r++]=s:s===37&&!(gE(e[n+1])&&gE(e[n+2]))?t[r++]=37:(t[r++]=lE(e[n+1])<<4|lE(e[n+2]),n+=2)}return A===r?t:t.subarray(0,r)}function Ca(e){e=Ns(e,!0,!0);let A={position:0},t=nr("/",e,A);if(t.length===0||!gn.test(t)||A.position>e.length)return"failure";A.position++;let r=nr(";",e,A);if(r=Ns(r,!1,!0),r.length===0||!gn.test(r))return"failure";let n=t.toLowerCase(),s=r.toLowerCase(),i={type:n,subtype:s,parameters:new Map,essence:`${n}/${s}`};for(;A.position<e.length;){A.position++,Us(g=>Np.test(g),e,A);let o=Us(g=>g!==";"&&g!=="=",e,A);if(o=o.toLowerCase(),A.position<e.length){if(e[A.position]===";")continue;A.position++}if(A.position>e.length)break;let a=null;if(e[A.position]==='"')a=BE(e,A,!0),nr(";",e,A);else if(a=nr(";",e,A),a=Ns(a,!1,!0),a.length===0)continue;o.length!==0&&gn.test(o)&&(a.length===0||Up.test(a))&&!i.parameters.has(o)&&i.parameters.set(o,a)}return i}function xp(e){e=e.replace(Mp,"");let A=e.length;if(A%4===0&&e.charCodeAt(A-1)===61&&(--A,e.charCodeAt(A-1)===61&&--A),A%4===1||/[^+/0-9A-Za-z]/.test(e.length===A?e:e.substring(0,A)))return"failure";let t=Buffer.from(e,"base64");return new Uint8Array(t.buffer,t.byteOffset,t.byteLength)}function BE(e,A,t){let r=A.position,n="";for(Ms(e[A.position]==='"'),A.position++;n+=Us(i=>i!=='"'&&i!=="\\",e,A),!(A.position>=e.length);){let s=e[A.position];if(A.position++,s==="\\"){if(A.position>=e.length){n+="\\";break}n+=e[A.position],A.position++}else{Ms(s==='"');break}}return t?n:e.slice(r,A.position)}function Yp(e){Ms(e!=="failure");let{parameters:A,essence:t}=e,r=t;for(let[n,s]of A.entries())r+=";",r+=n,r+="=",gn.test(s)||(s=s.replace(/(\\|")/g,"\\$1"),s='"'+s,s+='"'),r+=s;return r}function Gp(e){return e===13||e===10||e===9||e===32}function Ns(e,A=!0,t=!0){return fa(e,A,t,Gp)}function Jp(e){return e===13||e===10||e===9||e===12||e===32}function Hp(e,A=!0,t=!0){return fa(e,A,t,Jp)}function fa(e,A,t,r){let n=0,s=e.length-1;if(A)for(;n<e.length&&r(e.charCodeAt(n));)n++;if(t)for(;s>0&&r(e.charCodeAt(s));)s--;return n===0&&s===e.length-1?e:e.slice(n,s+1)}function uE(e){let A=e.length;if(65535>A)return String.fromCharCode.apply(null,e);let t="",r=0,n=65535;for(;r<A;)r+n>A&&(n=A-r),t+=String.fromCharCode.apply(null,e.subarray(r,r+=n));return t}function Vp(e){switch(e.essence){case"application/ecmascript":case"application/javascript":case"application/x-ecmascript":case"application/x-javascript":case"text/ecmascript":case"text/javascript":case"text/javascript1.0":case"text/javascript1.1":case"text/javascript1.2":case"text/javascript1.3":case"text/javascript1.4":case"text/javascript1.5":case"text/jscript":case"text/livescript":case"text/x-ecmascript":case"text/x-javascript":return"text/javascript";case"application/json":case"text/json":return"application/json";case"image/svg+xml":return"image/svg+xml";case"text/xml":case"application/xml":return"application/xml"}return e.subtype.endsWith("+json")?"application/json":e.subtype.endsWith("+xml")?"application/xml":""}IE.exports={dataURLProcessor:Lp,URLSerializer:QE,collectASequenceOfCodePoints:Us,collectASequenceOfCodePointsFast:nr,stringPercentDecode:EE,parseMIMEType:Ca,collectAnHTTPQuotedString:BE,serializeAMimeType:Yp,removeChars:fa,removeHTTPWhitespace:Ns,minimizeSupportedMimeType:Vp,HTTP_TOKEN_CODEPOINTS:gn,isomorphicDecode:uE}});var Se=p((Vx,hE)=>{"use strict";var{types:mA,inspect:vp}=y("node:util"),{markAsUncloneable:qp}=y("node:worker_threads"),{toUSVString:Wp}=v(),m={};m.converters={};m.util={};m.errors={};m.errors.exception=function(e){return new TypeError(`${e.header}: ${e.message}`)};m.errors.conversionFailed=function(e){let A=e.types.length===1?"":" one of",t=`${e.argument} could not be converted to${A}: ${e.types.join(", ")}.`;return m.errors.exception({header:e.prefix,message:t})};m.errors.invalidArgument=function(e){return m.errors.exception({header:e.prefix,message:`"${e.value}" is an invalid ${e.type}.`})};m.brandCheck=function(e,A,t){if(t?.strict!==!1){if(!(e instanceof A)){let r=new TypeError("Illegal invocation");throw r.code="ERR_INVALID_THIS",r}}else if(e?.[Symbol.toStringTag]!==A.prototype[Symbol.toStringTag]){let r=new TypeError("Illegal invocation");throw r.code="ERR_INVALID_THIS",r}};m.argumentLengthCheck=function({length:e},A,t){if(e<A)throw m.errors.exception({message:`${A} argument${A!==1?"s":""} required, but${e?" only":""} ${e} found.`,header:t})};m.illegalConstructor=function(){throw m.errors.exception({header:"TypeError",message:"Illegal constructor"})};m.util.Type=function(e){switch(typeof e){case"undefined":return"Undefined";case"boolean":return"Boolean";case"string":return"String";case"symbol":return"Symbol";case"number":return"Number";case"bigint":return"BigInt";case"function":case"object":return e===null?"Null":"Object"}};m.util.markAsUncloneable=qp||(()=>{});m.util.ConvertToInt=function(e,A,t,r){let n,s;A===64?(n=Math.pow(2,53)-1,t==="unsigned"?s=0:s=Math.pow(-2,53)+1):t==="unsigned"?(s=0,n=Math.pow(2,A)-1):(s=Math.pow(-2,A)-1,n=Math.pow(2,A-1)-1);let i=Number(e);if(i===0&&(i=0),r?.enforceRange===!0){if(Number.isNaN(i)||i===Number.POSITIVE_INFINITY||i===Number.NEGATIVE_INFINITY)throw m.errors.exception({header:"Integer conversion",message:`Could not convert ${m.util.Stringify(e)} to an integer.`});if(i=m.util.IntegerPart(i),i<s||i>n)throw m.errors.exception({header:"Integer conversion",message:`Value must be between ${s}-${n}, got ${i}.`});return i}return!Number.isNaN(i)&&r?.clamp===!0?(i=Math.min(Math.max(i,s),n),Math.floor(i)%2===0?i=Math.floor(i):i=Math.ceil(i),i):Number.isNaN(i)||i===0&&Object.is(0,i)||i===Number.POSITIVE_INFINITY||i===Number.NEGATIVE_INFINITY?0:(i=m.util.IntegerPart(i),i=i%Math.pow(2,A),t==="signed"&&i>=Math.pow(2,A)-1?i-Math.pow(2,A):i)};m.util.IntegerPart=function(e){let A=Math.floor(Math.abs(e));return e<0?-1*A:A};m.util.Stringify=function(e){switch(m.util.Type(e)){case"Symbol":return`Symbol(${e.description})`;case"Object":return vp(e);case"String":return`"${e}"`;default:return`${e}`}};m.sequenceConverter=function(e){return(A,t,r,n)=>{if(m.util.Type(A)!=="Object")throw m.errors.exception({header:t,message:`${r} (${m.util.Stringify(A)}) is not iterable.`});let s=typeof n=="function"?n():A?.[Symbol.iterator]?.(),i=[],o=0;if(s===void 0||typeof s.next!="function")throw m.errors.exception({header:t,message:`${r} is not iterable.`});for(;;){let{done:a,value:g}=s.next();if(a)break;i.push(e(g,t,`${r}[${o++}]`))}return i}};m.recordConverter=function(e,A){return(t,r,n)=>{if(m.util.Type(t)!=="Object")throw m.errors.exception({header:r,message:`${n} ("${m.util.Type(t)}") is not an Object.`});let s={};if(!mA.isProxy(t)){let o=[...Object.getOwnPropertyNames(t),...Object.getOwnPropertySymbols(t)];for(let a of o){let g=e(a,r,n),l=A(t[a],r,n);s[g]=l}return s}let i=Reflect.ownKeys(t);for(let o of i)if(Reflect.getOwnPropertyDescriptor(t,o)?.enumerable){let g=e(o,r,n),l=A(t[o],r,n);s[g]=l}return s}};m.interfaceConverter=function(e){return(A,t,r,n)=>{if(n?.strict!==!1&&!(A instanceof e))throw m.errors.exception({header:t,message:`Expected ${r} ("${m.util.Stringify(A)}") to be an instance of ${e.name}.`});return A}};m.dictionaryConverter=function(e){return(A,t,r)=>{let n=m.util.Type(A),s={};if(n==="Null"||n==="Undefined")return s;if(n!=="Object")throw m.errors.exception({header:t,message:`Expected ${A} to be one of: Null, Undefined, Object.`});for(let i of e){let{key:o,defaultValue:a,required:g,converter:l}=i;if(g===!0&&!Object.hasOwn(A,o))throw m.errors.exception({header:t,message:`Missing required key "${o}".`});let c=A[o],Q=Object.hasOwn(i,"defaultValue");if(Q&&c!==null&&(c??=a()),g||Q||c!==void 0){if(c=l(c,t,`${r}.${o}`),i.allowedValues&&!i.allowedValues.includes(c))throw m.errors.exception({header:t,message:`${c} is not an accepted type. Expected one of ${i.allowedValues.join(", ")}.`});s[o]=c}}return s}};m.nullableConverter=function(e){return(A,t,r)=>A===null?A:e(A,t,r)};m.converters.DOMString=function(e,A,t,r){if(e===null&&r?.legacyNullToEmptyString)return"";if(typeof e=="symbol")throw m.errors.exception({header:A,message:`${t} is a symbol, which cannot be converted to a DOMString.`});return String(e)};m.converters.ByteString=function(e,A,t){let r=m.converters.DOMString(e,A,t);for(let n=0;n<r.length;n++)if(r.charCodeAt(n)>255)throw new TypeError(`Cannot convert argument to a ByteString because the character at index ${n} has a value of ${r.charCodeAt(n)} which is greater than 255.`);return r};m.converters.USVString=Wp;m.converters.boolean=function(e){return!!e};m.converters.any=function(e){return e};m.converters["long long"]=function(e,A,t){return m.util.ConvertToInt(e,64,"signed",void 0,A,t)};m.converters["unsigned long long"]=function(e,A,t){return m.util.ConvertToInt(e,64,"unsigned",void 0,A,t)};m.converters["unsigned long"]=function(e,A,t){return m.util.ConvertToInt(e,32,"unsigned",void 0,A,t)};m.converters["unsigned short"]=function(e,A,t,r){return m.util.ConvertToInt(e,16,"unsigned",r,A,t)};m.converters.ArrayBuffer=function(e,A,t,r){if(m.util.Type(e)!=="Object"||!mA.isAnyArrayBuffer(e))throw m.errors.conversionFailed({prefix:A,argument:`${t} ("${m.util.Stringify(e)}")`,types:["ArrayBuffer"]});if(r?.allowShared===!1&&mA.isSharedArrayBuffer(e))throw m.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."});if(e.resizable||e.growable)throw m.errors.exception({header:"ArrayBuffer",message:"Received a resizable ArrayBuffer."});return e};m.converters.TypedArray=function(e,A,t,r,n){if(m.util.Type(e)!=="Object"||!mA.isTypedArray(e)||e.constructor.name!==A.name)throw m.errors.conversionFailed({prefix:t,argument:`${r} ("${m.util.Stringify(e)}")`,types:[A.name]});if(n?.allowShared===!1&&mA.isSharedArrayBuffer(e.buffer))throw m.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."});if(e.buffer.resizable||e.buffer.growable)throw m.errors.exception({header:"ArrayBuffer",message:"Received a resizable ArrayBuffer."});return e};m.converters.DataView=function(e,A,t,r){if(m.util.Type(e)!=="Object"||!mA.isDataView(e))throw m.errors.exception({header:A,message:`${t} is not a DataView.`});if(r?.allowShared===!1&&mA.isSharedArrayBuffer(e.buffer))throw m.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."});if(e.buffer.resizable||e.buffer.growable)throw m.errors.exception({header:"ArrayBuffer",message:"Received a resizable ArrayBuffer."});return e};m.converters.BufferSource=function(e,A,t,r){if(mA.isAnyArrayBuffer(e))return m.converters.ArrayBuffer(e,A,t,{...r,allowShared:!1});if(mA.isTypedArray(e))return m.converters.TypedArray(e,e.constructor,A,t,{...r,allowShared:!1});if(mA.isDataView(e))return m.converters.DataView(e,A,t,{...r,allowShared:!1});throw m.errors.conversionFailed({prefix:A,argument:`${t} ("${m.util.Stringify(e)}")`,types:["BufferSource"]})};m.converters["sequence<ByteString>"]=m.sequenceConverter(m.converters.ByteString);m.converters["sequence<sequence<ByteString>>"]=m.sequenceConverter(m.converters["sequence<ByteString>"]);m.converters["record<ByteString, ByteString>"]=m.recordConverter(m.converters.ByteString,m.converters.ByteString);hE.exports={webidl:m}});var Oe=p((vx,NE)=>{"use strict";var{Transform:Pp}=y("node:stream"),CE=y("node:zlib"),{redirectStatusSet:Op,referrerPolicySet:zp,badPortsSet:Zp}=cn(),{getGlobalOrigin:fE}=ha(),{collectASequenceOfCodePoints:dt,collectAnHTTPQuotedString:_p,removeChars:Kp,parseMIMEType:Xp}=He(),{performance:jp}=y("node:perf_hooks"),{isBlobLike:$p,ReadableStreamFrom:em,isValidHTTPToken:dE,normalizedMethodRecordsBase:Am}=v(),wt=y("node:assert"),{isUint8Array:tm}=y("node:util/types"),{webidl:ln}=Se(),wE=[],Ts;try{Ts=y("node:crypto");let e=["sha256","sha384","sha512"];wE=Ts.getHashes().filter(A=>e.includes(A))}catch{}function yE(e){let A=e.urlList,t=A.length;return t===0?null:A[t-1].toString()}function rm(e,A){if(!Op.has(e.status))return null;let t=e.headersList.get("location",!0);return t!==null&&mE(t)&&(pE(t)||(t=nm(t)),t=new URL(t,yE(e))),t&&!t.hash&&(t.hash=A),t}function pE(e){for(let A=0;A<e.length;++A){let t=e.charCodeAt(A);if(t>126||t<32)return!1}return!0}function nm(e){return Buffer.from(e,"binary").toString("utf8")}function En(e){return e.urlList[e.urlList.length-1]}function sm(e){let A=En(e);return RE(A)&&Zp.has(A.port)?"blocked":"allowed"}function im(e){return e instanceof Error||e?.constructor?.name==="Error"||e?.constructor?.name==="DOMException"}function om(e){for(let A=0;A<e.length;++A){let t=e.charCodeAt(A);if(!(t===9||t>=32&&t<=126||t>=128&&t<=255))return!1}return!0}var am=dE;function mE(e){return(e[0]===" "||e[0]===" "||e[e.length-1]===" "||e[e.length-1]===" "||e.includes(`
2
+ `)||e.includes("\r")||e.includes("\0"))===!1}function cm(e,A){let{headersList:t}=A,r=(t.get("referrer-policy",!0)??"").split(","),n="";if(r.length>0)for(let s=r.length;s!==0;s--){let i=r[s-1].trim();if(zp.has(i)){n=i;break}}n!==""&&(e.referrerPolicy=n)}function gm(){return"allowed"}function lm(){return"success"}function Qm(){return"success"}function Em(e){let A=null;A=e.mode,e.headersList.set("sec-fetch-mode",A,!0)}function Bm(e){let A=e.origin;if(!(A==="client"||A===void 0)){if(e.responseTainting==="cors"||e.mode==="websocket")e.headersList.append("origin",A,!0);else if(e.method!=="GET"&&e.method!=="HEAD"){switch(e.referrerPolicy){case"no-referrer":A=null;break;case"no-referrer-when-downgrade":case"strict-origin":case"strict-origin-when-cross-origin":e.origin&&wa(e.origin)&&!wa(En(e))&&(A=null);break;case"same-origin":xs(e,En(e))||(A=null);break;default:}e.headersList.append("origin",A,!0)}}}function sr(e,A){return e}function um(e,A,t){return!e?.startTime||e.startTime<A?{domainLookupStartTime:A,domainLookupEndTime:A,connectionStartTime:A,connectionEndTime:A,secureConnectionStartTime:A,ALPNNegotiatedProtocol:e?.ALPNNegotiatedProtocol}:{domainLookupStartTime:sr(e.domainLookupStartTime,t),domainLookupEndTime:sr(e.domainLookupEndTime,t),connectionStartTime:sr(e.connectionStartTime,t),connectionEndTime:sr(e.connectionEndTime,t),secureConnectionStartTime:sr(e.secureConnectionStartTime,t),ALPNNegotiatedProtocol:e.ALPNNegotiatedProtocol}}function Im(e){return sr(jp.now(),e)}function hm(e){return{startTime:e.startTime??0,redirectStartTime:0,redirectEndTime:0,postRedirectStartTime:e.startTime??0,finalServiceWorkerStartTime:0,finalNetworkResponseStartTime:0,finalNetworkRequestStartTime:0,endTime:0,encodedBodySize:0,decodedBodySize:0,finalConnectionTimingInfo:null}}function DE(){return{referrerPolicy:"strict-origin-when-cross-origin"}}function Cm(e){return{referrerPolicy:e.referrerPolicy}}function fm(e){let A=e.referrerPolicy;wt(A);let t=null;if(e.referrer==="client"){let o=fE();if(!o||o.origin==="null")return"no-referrer";t=new URL(o)}else e.referrer instanceof URL&&(t=e.referrer);let r=da(t),n=da(t,!0);r.toString().length>4096&&(r=n);let s=xs(e,r),i=Qn(r)&&!Qn(e.url);switch(A){case"origin":return n??da(t,!0);case"unsafe-url":return r;case"same-origin":return s?n:"no-referrer";case"origin-when-cross-origin":return s?r:n;case"strict-origin-when-cross-origin":{let o=En(e);return xs(r,o)?r:Qn(r)&&!Qn(o)?"no-referrer":n}default:return i?"no-referrer":n}}function da(e,A){return wt(e instanceof URL),e=new URL(e),e.protocol==="file:"||e.protocol==="about:"||e.protocol==="blank:"?"no-referrer":(e.username="",e.password="",e.hash="",A&&(e.pathname="",e.search=""),e)}function Qn(e){if(!(e instanceof URL))return!1;if(e.href==="about:blank"||e.href==="about:srcdoc"||e.protocol==="data:"||e.protocol==="file:")return!0;return A(e.origin);function A(t){if(t==null||t==="null")return!1;let r=new URL(t);return!!(r.protocol==="https:"||r.protocol==="wss:"||/^127(?:\.[0-9]+){0,2}\.[0-9]+$|^\[(?:0*:)*?:?0*1\]$/.test(r.hostname)||r.hostname==="localhost"||r.hostname.includes("localhost.")||r.hostname.endsWith(".localhost"))}}function dm(e,A){if(Ts===void 0)return!0;let t=kE(A);if(t==="no metadata"||t.length===0)return!0;let r=ym(t),n=pm(t,r);for(let s of n){let i=s.algo,o=s.hash,a=Ts.createHash(i).update(e).digest("base64");if(a[a.length-1]==="="&&(a[a.length-2]==="="?a=a.slice(0,-2):a=a.slice(0,-1)),mm(a,o))return!0}return!1}var wm=/(?<algo>sha256|sha384|sha512)-((?<hash>[A-Za-z0-9+/]+|[A-Za-z0-9_-]+)={0,2}(?:\s|$)( +[!-~]*)?)?/i;function kE(e){let A=[],t=!0;for(let r of e.split(" ")){t=!1;let n=wm.exec(r);if(n===null||n.groups===void 0||n.groups.algo===void 0)continue;let s=n.groups.algo.toLowerCase();wE.includes(s)&&A.push(n.groups)}return t===!0?"no metadata":A}function ym(e){let A=e[0].algo;if(A[3]==="5")return A;for(let t=1;t<e.length;++t){let r=e[t];if(r.algo[3]==="5"){A="sha512";break}else{if(A[3]==="3")continue;r.algo[3]==="3"&&(A="sha384")}}return A}function pm(e,A){if(e.length===1)return e;let t=0;for(let r=0;r<e.length;++r)e[r].algo===A&&(e[t++]=e[r]);return e.length=t,e}function mm(e,A){if(e.length!==A.length)return!1;for(let t=0;t<e.length;++t)if(e[t]!==A[t]){if(e[t]==="+"&&A[t]==="-"||e[t]==="/"&&A[t]==="_")continue;return!1}return!0}function Dm(e){}function xs(e,A){return e.origin===A.origin&&e.origin==="null"||e.protocol===A.protocol&&e.hostname===A.hostname&&e.port===A.port}function km(){let e,A;return{promise:new Promise((r,n)=>{e=r,A=n}),resolve:e,reject:A}}function bm(e){return e.controller.state==="aborted"}function Fm(e){return e.controller.state==="aborted"||e.controller.state==="terminated"}function Rm(e){return Am[e.toLowerCase()]??e}function Sm(e){let A=JSON.stringify(e);if(A===void 0)throw new TypeError("Value is not JSON serializable");return wt(typeof A=="string"),A}var Nm=Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()));function bE(e,A,t=0,r=1){class n{#e;#A;#t;constructor(i,o){this.#e=i,this.#A=o,this.#t=0}next(){if(typeof this!="object"||this===null||!(#e in this))throw new TypeError(`'next' called on an object that does not implement interface ${e} Iterator.`);let i=this.#t,o=this.#e[A],a=o.length;if(i>=a)return{value:void 0,done:!0};let{[t]:g,[r]:l}=o[i];this.#t=i+1;let c;switch(this.#A){case"key":c=g;break;case"value":c=l;break;case"key+value":c=[g,l];break}return{value:c,done:!1}}}return delete n.prototype.constructor,Object.setPrototypeOf(n.prototype,Nm),Object.defineProperties(n.prototype,{[Symbol.toStringTag]:{writable:!1,enumerable:!1,configurable:!0,value:`${e} Iterator`},next:{writable:!0,enumerable:!0,configurable:!0}}),function(s,i){return new n(s,i)}}function Mm(e,A,t,r=0,n=1){let s=bE(e,t,r,n),i={keys:{writable:!0,enumerable:!0,configurable:!0,value:function(){return ln.brandCheck(this,A),s(this,"key")}},values:{writable:!0,enumerable:!0,configurable:!0,value:function(){return ln.brandCheck(this,A),s(this,"value")}},entries:{writable:!0,enumerable:!0,configurable:!0,value:function(){return ln.brandCheck(this,A),s(this,"key+value")}},forEach:{writable:!0,enumerable:!0,configurable:!0,value:function(a,g=globalThis){if(ln.brandCheck(this,A),ln.argumentLengthCheck(arguments,1,`${e}.forEach`),typeof a!="function")throw new TypeError(`Failed to execute 'forEach' on '${e}': parameter 1 is not of type 'Function'.`);for(let{0:l,1:c}of s(this,"key+value"))a.call(g,c,l,this)}}};return Object.defineProperties(A.prototype,{...i,[Symbol.iterator]:{writable:!0,enumerable:!1,configurable:!0,value:i.entries.value}})}async function Um(e,A,t){let r=A,n=t,s;try{s=e.stream.getReader()}catch(i){n(i);return}try{r(await FE(s))}catch(i){n(i)}}function Lm(e){return e instanceof ReadableStream||e[Symbol.toStringTag]==="ReadableStream"&&typeof e.tee=="function"}function Tm(e){try{e.close(),e.byobRequest?.respond(0)}catch(A){if(!A.message.includes("Controller is already closed")&&!A.message.includes("ReadableStream is already closed"))throw A}}var xm=/[^\x00-\xFF]/;function Ls(e){return wt(!xm.test(e)),e}async function FE(e){let A=[],t=0;for(;;){let{done:r,value:n}=await e.read();if(r)return Buffer.concat(A,t);if(!tm(n))throw new TypeError("Received non-Uint8Array chunk");A.push(n),t+=n.length}}function Ym(e){wt("protocol"in e);let A=e.protocol;return A==="about:"||A==="blob:"||A==="data:"}function wa(e){return typeof e=="string"&&e[5]===":"&&e[0]==="h"&&e[1]==="t"&&e[2]==="t"&&e[3]==="p"&&e[4]==="s"||e.protocol==="https:"}function RE(e){wt("protocol"in e);let A=e.protocol;return A==="http:"||A==="https:"}function Gm(e,A){let t=e;if(!t.startsWith("bytes"))return"failure";let r={position:5};if(A&&dt(a=>a===" "||a===" ",t,r),t.charCodeAt(r.position)!==61)return"failure";r.position++,A&&dt(a=>a===" "||a===" ",t,r);let n=dt(a=>{let g=a.charCodeAt(0);return g>=48&&g<=57},t,r),s=n.length?Number(n):null;if(A&&dt(a=>a===" "||a===" ",t,r),t.charCodeAt(r.position)!==45)return"failure";r.position++,A&&dt(a=>a===" "||a===" ",t,r);let i=dt(a=>{let g=a.charCodeAt(0);return g>=48&&g<=57},t,r),o=i.length?Number(i):null;return r.position<t.length||o===null&&s===null||s>o?"failure":{rangeStartValue:s,rangeEndValue:o}}function Jm(e,A,t){let r="bytes ";return r+=Ls(`${e}`),r+="-",r+=Ls(`${A}`),r+="/",r+=Ls(`${t}`),r}var ya=class extends Pp{#e;constructor(A){super(),this.#e=A}_transform(A,t,r){if(!this._inflateStream){if(A.length===0){r();return}this._inflateStream=(A[0]&15)===8?CE.createInflate(this.#e):CE.createInflateRaw(this.#e),this._inflateStream.on("data",this.push.bind(this)),this._inflateStream.on("end",()=>this.push(null)),this._inflateStream.on("error",n=>this.destroy(n))}this._inflateStream.write(A,t,r)}_final(A){this._inflateStream&&(this._inflateStream.end(),this._inflateStream=null),A()}};function Hm(e){return new ya(e)}function Vm(e){let A=null,t=null,r=null,n=SE("content-type",e);if(n===null)return"failure";for(let s of n){let i=Xp(s);i==="failure"||i.essence==="*/*"||(r=i,r.essence!==t?(A=null,r.parameters.has("charset")&&(A=r.parameters.get("charset")),t=r.essence):!r.parameters.has("charset")&&A!==null&&r.parameters.set("charset",A))}return r??"failure"}function vm(e){let A=e,t={position:0},r=[],n="";for(;t.position<A.length;){if(n+=dt(s=>s!=='"'&&s!==",",A,t),t.position<A.length)if(A.charCodeAt(t.position)===34){if(n+=_p(A,t),t.position<A.length)continue}else wt(A.charCodeAt(t.position)===44),t.position++;n=Kp(n,!0,!0,s=>s===9||s===32),r.push(n),n=""}return r}function SE(e,A){let t=A.get(e,!0);return t===null?null:vm(t)}var qm=new TextDecoder;function Wm(e){return e.length===0?"":(e[0]===239&&e[1]===187&&e[2]===191&&(e=e.subarray(3)),qm.decode(e))}var pa=class{get baseUrl(){return fE()}get origin(){return this.baseUrl?.origin}policyContainer=DE()},ma=class{settingsObject=new pa},Pm=new ma;NE.exports={isAborted:bm,isCancelled:Fm,isValidEncodedURL:pE,createDeferredPromise:km,ReadableStreamFrom:em,tryUpgradeRequestToAPotentiallyTrustworthyURL:Dm,clampAndCoarsenConnectionTimingInfo:um,coarsenedSharedCurrentTime:Im,determineRequestsReferrer:fm,makePolicyContainer:DE,clonePolicyContainer:Cm,appendFetchMetadata:Em,appendRequestOriginHeader:Bm,TAOCheck:Qm,corsCheck:lm,crossOriginResourcePolicyCheck:gm,createOpaqueTimingInfo:hm,setRequestReferrerPolicyOnRedirect:cm,isValidHTTPToken:dE,requestBadPort:sm,requestCurrentURL:En,responseURL:yE,responseLocationURL:rm,isBlobLike:$p,isURLPotentiallyTrustworthy:Qn,isValidReasonPhrase:om,sameOrigin:xs,normalizeMethod:Rm,serializeJavascriptValueToJSONString:Sm,iteratorMixin:Mm,createIterator:bE,isValidHeaderName:am,isValidHeaderValue:mE,isErrorLike:im,fullyReadBody:Um,bytesMatch:dm,isReadableStreamLike:Lm,readableStreamClose:Tm,isomorphicEncode:Ls,urlIsLocal:Ym,urlHasHttpsScheme:wa,urlIsHttpHttpsScheme:RE,readAllBytes:FE,simpleRangeHeaderValue:Gm,buildContentRange:Jm,parseMetadata:kE,createInflate:Hm,extractMimeType:Vm,getDecodeSplit:SE,utf8DecodeBytes:Wm,environmentSettingsObject:Pm}});var jA=p((qx,ME)=>{"use strict";ME.exports={kUrl:Symbol("url"),kHeaders:Symbol("headers"),kSignal:Symbol("signal"),kState:Symbol("state"),kDispatcher:Symbol("dispatcher")}});var ka=p((Wx,UE)=>{"use strict";var{Blob:Om,File:zm}=y("node:buffer"),{kState:VA}=jA(),{webidl:DA}=Se(),Da=class e{constructor(A,t,r={}){let n=t,s=r.type,i=r.lastModified??Date.now();this[VA]={blobLike:A,name:n,type:s,lastModified:i}}stream(...A){return DA.brandCheck(this,e),this[VA].blobLike.stream(...A)}arrayBuffer(...A){return DA.brandCheck(this,e),this[VA].blobLike.arrayBuffer(...A)}slice(...A){return DA.brandCheck(this,e),this[VA].blobLike.slice(...A)}text(...A){return DA.brandCheck(this,e),this[VA].blobLike.text(...A)}get size(){return DA.brandCheck(this,e),this[VA].blobLike.size}get type(){return DA.brandCheck(this,e),this[VA].blobLike.type}get name(){return DA.brandCheck(this,e),this[VA].name}get lastModified(){return DA.brandCheck(this,e),this[VA].lastModified}get[Symbol.toStringTag](){return"File"}};DA.converters.Blob=DA.interfaceConverter(Om);function Zm(e){return e instanceof zm||e&&(typeof e.stream=="function"||typeof e.arrayBuffer=="function")&&e[Symbol.toStringTag]==="File"}UE.exports={FileLike:Da,isFileLike:Zm}});var un=p((Px,GE)=>{"use strict";var{isBlobLike:Ys,iteratorMixin:_m}=Oe(),{kState:Te}=jA(),{kEnumerableProperty:ir}=v(),{FileLike:LE,isFileLike:Km}=ka(),{webidl:oe}=Se(),{File:YE}=y("node:buffer"),TE=y("node:util"),xE=globalThis.File??YE,Bn=class e{constructor(A){if(oe.util.markAsUncloneable(this),A!==void 0)throw oe.errors.conversionFailed({prefix:"FormData constructor",argument:"Argument 1",types:["undefined"]});this[Te]=[]}append(A,t,r=void 0){oe.brandCheck(this,e);let n="FormData.append";if(oe.argumentLengthCheck(arguments,2,n),arguments.length===3&&!Ys(t))throw new TypeError("Failed to execute 'append' on 'FormData': parameter 2 is not of type 'Blob'");A=oe.converters.USVString(A,n,"name"),t=Ys(t)?oe.converters.Blob(t,n,"value",{strict:!1}):oe.converters.USVString(t,n,"value"),r=arguments.length===3?oe.converters.USVString(r,n,"filename"):void 0;let s=ba(A,t,r);this[Te].push(s)}delete(A){oe.brandCheck(this,e);let t="FormData.delete";oe.argumentLengthCheck(arguments,1,t),A=oe.converters.USVString(A,t,"name"),this[Te]=this[Te].filter(r=>r.name!==A)}get(A){oe.brandCheck(this,e);let t="FormData.get";oe.argumentLengthCheck(arguments,1,t),A=oe.converters.USVString(A,t,"name");let r=this[Te].findIndex(n=>n.name===A);return r===-1?null:this[Te][r].value}getAll(A){oe.brandCheck(this,e);let t="FormData.getAll";return oe.argumentLengthCheck(arguments,1,t),A=oe.converters.USVString(A,t,"name"),this[Te].filter(r=>r.name===A).map(r=>r.value)}has(A){oe.brandCheck(this,e);let t="FormData.has";return oe.argumentLengthCheck(arguments,1,t),A=oe.converters.USVString(A,t,"name"),this[Te].findIndex(r=>r.name===A)!==-1}set(A,t,r=void 0){oe.brandCheck(this,e);let n="FormData.set";if(oe.argumentLengthCheck(arguments,2,n),arguments.length===3&&!Ys(t))throw new TypeError("Failed to execute 'set' on 'FormData': parameter 2 is not of type 'Blob'");A=oe.converters.USVString(A,n,"name"),t=Ys(t)?oe.converters.Blob(t,n,"name",{strict:!1}):oe.converters.USVString(t,n,"name"),r=arguments.length===3?oe.converters.USVString(r,n,"name"):void 0;let s=ba(A,t,r),i=this[Te].findIndex(o=>o.name===A);i!==-1?this[Te]=[...this[Te].slice(0,i),s,...this[Te].slice(i+1).filter(o=>o.name!==A)]:this[Te].push(s)}[TE.inspect.custom](A,t){let r=this[Te].reduce((s,i)=>(s[i.name]?Array.isArray(s[i.name])?s[i.name].push(i.value):s[i.name]=[s[i.name],i.value]:s[i.name]=i.value,s),{__proto__:null});t.depth??=A,t.colors??=!0;let n=TE.formatWithOptions(t,r);return`FormData ${n.slice(n.indexOf("]")+2)}`}};_m("FormData",Bn,Te,"name","value");Object.defineProperties(Bn.prototype,{append:ir,delete:ir,get:ir,getAll:ir,has:ir,set:ir,[Symbol.toStringTag]:{value:"FormData",configurable:!0}});function ba(e,A,t){if(typeof A!="string"){if(Km(A)||(A=A instanceof Blob?new xE([A],"blob",{type:A.type}):new LE(A,"blob",{type:A.type})),t!==void 0){let r={type:A.type,lastModified:A.lastModified};A=A instanceof YE?new xE([A],t,r):new LE(A,t,r)}}return{name:e,value:A}}GE.exports={FormData:Bn,makeEntry:ba}});var WE=p((Ox,qE)=>{"use strict";var{isUSVString:JE,bufferToLowerCasedHeaderName:Xm}=v(),{utf8DecodeBytes:jm}=Oe(),{HTTP_TOKEN_CODEPOINTS:$m,isomorphicDecode:HE}=He(),{isFileLike:e0}=ka(),{makeEntry:A0}=un(),Gs=y("node:assert"),{File:t0}=y("node:buffer"),r0=globalThis.File??t0,n0=Buffer.from('form-data; name="'),VE=Buffer.from("; filename"),s0=Buffer.from("--"),i0=Buffer.from(`--\r
3
+ `);function o0(e){for(let A=0;A<e.length;++A)if((e.charCodeAt(A)&-128)!==0)return!1;return!0}function a0(e){let A=e.length;if(A<27||A>70)return!1;for(let t=0;t<A;++t){let r=e.charCodeAt(t);if(!(r>=48&&r<=57||r>=65&&r<=90||r>=97&&r<=122||r===39||r===45||r===95))return!1}return!0}function c0(e,A){Gs(A!=="failure"&&A.essence==="multipart/form-data");let t=A.parameters.get("boundary");if(t===void 0)return"failure";let r=Buffer.from(`--${t}`,"utf8"),n=[],s={position:0};for(;e[s.position]===13&&e[s.position+1]===10;)s.position+=2;let i=e.length;for(;e[i-1]===10&&e[i-2]===13;)i-=2;for(i!==e.length&&(e=e.subarray(0,i));;){if(e.subarray(s.position,s.position+r.length).equals(r))s.position+=r.length;else return"failure";if(s.position===e.length-2&&Js(e,s0,s)||s.position===e.length-4&&Js(e,i0,s))return n;if(e[s.position]!==13||e[s.position+1]!==10)return"failure";s.position+=2;let o=g0(e,s);if(o==="failure")return"failure";let{name:a,filename:g,contentType:l,encoding:c}=o;s.position+=2;let Q;{let E=e.indexOf(r.subarray(2),s.position);if(E===-1)return"failure";Q=e.subarray(s.position,E-4),s.position+=Q.length,c==="base64"&&(Q=Buffer.from(Q.toString(),"base64"))}if(e[s.position]!==13||e[s.position+1]!==10)return"failure";s.position+=2;let B;g!==null?(l??="text/plain",o0(l)||(l=""),B=new r0([Q],g,{type:l})):B=jm(Buffer.from(Q)),Gs(JE(a)),Gs(typeof B=="string"&&JE(B)||e0(B)),n.push(A0(a,B,g))}}function g0(e,A){let t=null,r=null,n=null,s=null;for(;;){if(e[A.position]===13&&e[A.position+1]===10)return t===null?"failure":{name:t,filename:r,contentType:n,encoding:s};let i=or(o=>o!==10&&o!==13&&o!==58,e,A);if(i=Fa(i,!0,!0,o=>o===9||o===32),!$m.test(i.toString())||e[A.position]!==58)return"failure";switch(A.position++,or(o=>o===32||o===9,e,A),Xm(i)){case"content-disposition":{if(t=r=null,!Js(e,n0,A)||(A.position+=17,t=vE(e,A),t===null))return"failure";if(Js(e,VE,A)){let o=A.position+VE.length;if(e[o]===42&&(A.position+=1,o+=1),e[o]!==61||e[o+1]!==34||(A.position+=12,r=vE(e,A),r===null))return"failure"}break}case"content-type":{let o=or(a=>a!==10&&a!==13,e,A);o=Fa(o,!1,!0,a=>a===9||a===32),n=HE(o);break}case"content-transfer-encoding":{let o=or(a=>a!==10&&a!==13,e,A);o=Fa(o,!1,!0,a=>a===9||a===32),s=HE(o);break}default:or(o=>o!==10&&o!==13,e,A)}if(e[A.position]!==13&&e[A.position+1]!==10)return"failure";A.position+=2}}function vE(e,A){Gs(e[A.position-1]===34);let t=or(r=>r!==10&&r!==13&&r!==34,e,A);return e[A.position]!==34?null:(A.position++,t=new TextDecoder().decode(t).replace(/%0A/ig,`
4
+ `).replace(/%0D/ig,"\r").replace(/%22/g,'"'),t)}function or(e,A,t){let r=t.position;for(;r<A.length&&e(A[r]);)++r;return A.subarray(t.position,t.position=r)}function Fa(e,A,t,r){let n=0,s=e.length-1;if(A)for(;n<e.length&&r(e[n]);)n++;if(t)for(;s>0&&r(e[s]);)s--;return n===0&&s===e.length-1?e:e.subarray(n,s+1)}function Js(e,A,t){if(e.length<A.length)return!1;for(let r=0;r<A.length;r++)if(A[r]!==e[t.position+r])return!1;return!0}qE.exports={multipartFormDataParser:c0,validateBoundary:a0}});var gr=p((zx,eB)=>{"use strict";var In=v(),{ReadableStreamFrom:l0,isBlobLike:PE,isReadableStreamLike:Q0,readableStreamClose:E0,createDeferredPromise:B0,fullyReadBody:u0,extractMimeType:I0,utf8DecodeBytes:ZE}=Oe(),{FormData:OE}=un(),{kState:cr}=jA(),{webidl:h0}=Se(),{Blob:C0}=y("node:buffer"),Ra=y("node:assert"),{isErrored:_E,isDisturbed:f0}=y("node:stream"),{isArrayBuffer:d0}=y("node:util/types"),{serializeAMimeType:w0}=He(),{multipartFormDataParser:y0}=WE(),Sa;try{let e=y("node:crypto");Sa=A=>e.randomInt(0,A)}catch{Sa=e=>Math.floor(Math.random(e))}var Hs=new TextEncoder;function p0(){}var KE=globalThis.FinalizationRegistry&&process.version.indexOf("v18")!==0,XE;KE&&(XE=new FinalizationRegistry(e=>{let A=e.deref();A&&!A.locked&&!f0(A)&&!_E(A)&&A.cancel("Response object has been garbage collected").catch(p0)}));function jE(e,A=!1){let t=null;e instanceof ReadableStream?t=e:PE(e)?t=e.stream():t=new ReadableStream({async pull(a){let g=typeof n=="string"?Hs.encode(n):n;g.byteLength&&a.enqueue(g),queueMicrotask(()=>E0(a))},start(){},type:"bytes"}),Ra(Q0(t));let r=null,n=null,s=null,i=null;if(typeof e=="string")n=e,i="text/plain;charset=UTF-8";else if(e instanceof URLSearchParams)n=e.toString(),i="application/x-www-form-urlencoded;charset=UTF-8";else if(d0(e))n=new Uint8Array(e.slice());else if(ArrayBuffer.isView(e))n=new Uint8Array(e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength));else if(In.isFormDataLike(e)){let a=`----formdata-undici-0${`${Sa(1e11)}`.padStart(11,"0")}`,g=`--${a}\r
5
+ Content-Disposition: form-data`;let l=h=>h.replace(/\n/g,"%0A").replace(/\r/g,"%0D").replace(/"/g,"%22"),c=h=>h.replace(/\r?\n|\r/g,`\r
6
+ `),Q=[],B=new Uint8Array([13,10]);s=0;let E=!1;for(let[h,I]of e)if(typeof I=="string"){let C=Hs.encode(g+`; name="${l(c(h))}"\r
7
+ \r
8
+ ${c(I)}\r
9
+ `);Q.push(C),s+=C.byteLength}else{let C=Hs.encode(`${g}; name="${l(c(h))}"`+(I.name?`; filename="${l(I.name)}"`:"")+`\r
10
+ Content-Type: ${I.type||"application/octet-stream"}\r
11
+ \r
12
+ `);Q.push(C,I,B),typeof I.size=="number"?s+=C.byteLength+I.size+B.byteLength:E=!0}let u=Hs.encode(`--${a}--\r
13
+ `);Q.push(u),s+=u.byteLength,E&&(s=null),n=e,r=async function*(){for(let h of Q)h.stream?yield*h.stream():yield h},i=`multipart/form-data; boundary=${a}`}else if(PE(e))n=e,s=e.size,e.type&&(i=e.type);else if(typeof e[Symbol.asyncIterator]=="function"){if(A)throw new TypeError("keepalive");if(In.isDisturbed(e)||e.locked)throw new TypeError("Response body object should not be disturbed or locked");t=e instanceof ReadableStream?e:l0(e)}if((typeof n=="string"||In.isBuffer(n))&&(s=Buffer.byteLength(n)),r!=null){let a;t=new ReadableStream({async start(){a=r(e)[Symbol.asyncIterator]()},async pull(g){let{value:l,done:c}=await a.next();if(c)queueMicrotask(()=>{g.close(),g.byobRequest?.respond(0)});else if(!_E(t)){let Q=new Uint8Array(l);Q.byteLength&&g.enqueue(Q)}return g.desiredSize>0},async cancel(g){await a.return()},type:"bytes"})}return[{stream:t,source:n,length:s},i]}function m0(e,A=!1){return e instanceof ReadableStream&&(Ra(!In.isDisturbed(e),"The body has already been consumed."),Ra(!e.locked,"The stream is locked.")),jE(e,A)}function D0(e,A){let[t,r]=A.stream.tee();return A.stream=t,{stream:r,length:A.length,source:A.source}}function k0(e){if(e.aborted)throw new DOMException("The operation was aborted.","AbortError")}function b0(e){return{blob(){return ar(this,t=>{let r=zE(this);return r===null?r="":r&&(r=w0(r)),new C0([t],{type:r})},e)},arrayBuffer(){return ar(this,t=>new Uint8Array(t).buffer,e)},text(){return ar(this,ZE,e)},json(){return ar(this,R0,e)},formData(){return ar(this,t=>{let r=zE(this);if(r!==null)switch(r.essence){case"multipart/form-data":{let n=y0(t,r);if(n==="failure")throw new TypeError("Failed to parse body as FormData.");let s=new OE;return s[cr]=n,s}case"application/x-www-form-urlencoded":{let n=new URLSearchParams(t.toString()),s=new OE;for(let[i,o]of n)s.append(i,o);return s}}throw new TypeError('Content-Type was not one of "multipart/form-data" or "application/x-www-form-urlencoded".')},e)},bytes(){return ar(this,t=>new Uint8Array(t),e)}}}function F0(e){Object.assign(e.prototype,b0(e))}async function ar(e,A,t){if(h0.brandCheck(e,t),$E(e))throw new TypeError("Body is unusable: Body has already been read");k0(e[cr]);let r=B0(),n=i=>r.reject(i),s=i=>{try{r.resolve(A(i))}catch(o){n(o)}};return e[cr].body==null?(s(Buffer.allocUnsafe(0)),r.promise):(await u0(e[cr].body,s,n),r.promise)}function $E(e){let A=e[cr].body;return A!=null&&(A.stream.locked||In.isDisturbed(A.stream))}function R0(e){return JSON.parse(ZE(e))}function zE(e){let A=e[cr].headersList,t=I0(A);return t==="failure"?null:t}eB.exports={extractBody:jE,safelyExtractBody:m0,cloneBody:D0,mixinBody:F0,streamRegistry:XE,hasFinalizationRegistry:KE,bodyUnusable:$E}});var IB=p((Zx,uB)=>{"use strict";var U=y("node:assert"),T=v(),{channels:AB}=Xt(),Na=Qa(),{RequestContentLengthMismatchError:yt,ResponseContentLengthMismatchError:tB,RequestAbortedError:gB,InvalidArgumentError:S0,HeadersTimeoutError:N0,HeadersOverflowError:M0,SocketError:lr,InformationalError:Qr,BodyTimeoutError:U0,HTTPParserError:L0,ResponseExceededMaxSizeError:T0}=Z(),{kUrl:lB,kReset:Ve,kClient:Ws,kParser:ae,kBlocking:fn,kRunning:we,kPending:QB,kSize:rB,kWriting:$A,kQueue:cA,kNoRef:hn,kKeepAliveDefaultTimeout:x0,kHostHeader:Y0,kPendingIdx:G0,kRunningIdx:rA,kError:xe,kPipelining:Ps,kSocket:mt,kKeepAliveTimeoutValue:zs,kMaxHeadersSize:Ma,kKeepAliveMaxTimeout:J0,kKeepAliveTimeoutThreshold:H0,kHeadersTimeout:V0,kBodyTimeout:v0,kStrictContentLength:Ta,kMaxRequests:nB,kCounter:q0,kMaxResponseSize:W0,kOnError:sB,kResume:vA,kHTTPContext:EB}=Qe(),ze=XQ(),iB=Buffer.alloc(0),Vs=Buffer[Symbol.species],vs=T.addListener,P0=T.removeAllListeners,Dt=Symbol("kIdleSocketValidation"),pt=Symbol("kIdleSocketValidationTimeout"),Ja=Symbol("kSocketUsed"),Ua;async function O0(){let e=process.env.JEST_WORKER_ID?ua():void 0,A;try{A=await WebAssembly.compile(eE())}catch{A=await WebAssembly.compile(e||ua())}return await WebAssembly.instantiate(A,{env:{wasm_on_url:(t,r,n)=>0,wasm_on_status:(t,r,n)=>{U(ue.ptr===t);let s=r-bA+kA.byteOffset;return ue.onStatus(new Vs(kA.buffer,s,n))||0},wasm_on_message_begin:t=>(U(ue.ptr===t),ue.onMessageBegin()||0),wasm_on_header_field:(t,r,n)=>{U(ue.ptr===t);let s=r-bA+kA.byteOffset;return ue.onHeaderField(new Vs(kA.buffer,s,n))||0},wasm_on_header_value:(t,r,n)=>{U(ue.ptr===t);let s=r-bA+kA.byteOffset;return ue.onHeaderValue(new Vs(kA.buffer,s,n))||0},wasm_on_headers_complete:(t,r,n,s)=>(U(ue.ptr===t),ue.onHeadersComplete(r,!!n,!!s)||0),wasm_on_body:(t,r,n)=>{U(ue.ptr===t);let s=r-bA+kA.byteOffset;return ue.onBody(new Vs(kA.buffer,s,n))||0},wasm_on_message_complete:t=>(U(ue.ptr===t),ue.onMessageComplete()||0)}})}var La=null,xa=O0();xa.catch();var ue=null,kA=null,qs=0,bA=null,z0=0,Cn=1,Er=2|Cn,Os=4|Cn,Ya=8|z0,Ga=class{constructor(A,t,{exports:r}){U(Number.isFinite(A[Ma])&&A[Ma]>0),this.llhttp=r,this.ptr=this.llhttp.llhttp_alloc(ze.TYPE.RESPONSE),this.client=A,this.socket=t,this.timeout=null,this.timeoutValue=null,this.timeoutType=null,this.statusCode=null,this.statusText="",this.upgrade=!1,this.headers=[],this.headersSize=0,this.headersMaxSize=A[Ma],this.shouldKeepAlive=!1,this.paused=!1,this.resume=this.resume.bind(this),this.bytesRead=0,this.keepAlive="",this.contentLength="",this.connection="",this.maxResponseSize=A[W0]}setTimeout(A,t){A!==this.timeoutValue||t&Cn^this.timeoutType&Cn?(this.timeout&&(Na.clearTimeout(this.timeout),this.timeout=null),A&&(t&Cn?this.timeout=Na.setFastTimeout(oB,A,new WeakRef(this)):(this.timeout=setTimeout(oB,A,new WeakRef(this)),this.timeout.unref())),this.timeoutValue=A):this.timeout&&this.timeout.refresh&&this.timeout.refresh(),this.timeoutType=t}resume(){this.socket.destroyed||!this.paused||(U(this.ptr!=null),U(ue==null),this.llhttp.llhttp_resume(this.ptr),U(this.timeoutType===Os),this.timeout&&this.timeout.refresh&&this.timeout.refresh(),this.paused=!1,this.execute(this.socket.read()||iB),this.readMore())}readMore(){for(;!this.paused&&this.ptr;){let A=this.socket.read();if(A===null)break;this.execute(A)}}execute(A){U(this.ptr!=null),U(ue==null),U(!this.paused);let{socket:t,llhttp:r}=this;A.length>qs&&(bA&&r.free(bA),qs=Math.ceil(A.length/4096)*4096,bA=r.malloc(qs)),new Uint8Array(r.memory.buffer,bA,qs).set(A);try{let n;try{kA=A,ue=this,n=r.llhttp_execute(this.ptr,bA,A.length)}catch(i){throw i}finally{ue=null,kA=null}let s=r.llhttp_get_error_pos(this.ptr)-bA;if(n!==ze.ERROR.OK){let i=A.subarray(s);if(n===ze.ERROR.PAUSED_UPGRADE)this.onUpgrade(i);else if(n===ze.ERROR.PAUSED)this.paused=!0,t.unshift(i);else throw this.createError(n,i)}}catch(n){T.destroy(t,n)}}finish(){U(ue===null),U(this.ptr!=null),U(!this.paused);let{llhttp:A}=this,t;try{ue=this,t=A.llhttp_finish(this.ptr)}finally{ue=null}return t===ze.ERROR.OK?null:t===ze.ERROR.PAUSED||t===ze.ERROR.PAUSED_UPGRADE?(this.paused=!0,null):this.createError(t,iB)}createError(A,t){let{llhttp:r,contentLength:n,bytesRead:s}=this;if(n&&s!==parseInt(n,10))return new tB;let i=r.llhttp_get_error_reason(this.ptr),o="";if(i){let a=new Uint8Array(r.memory.buffer,i).indexOf(0);o="Response does not match the HTTP/1.1 protocol ("+Buffer.from(r.memory.buffer,i,a).toString()+")"}return new L0(o,ze.ERROR[A],t)}destroy(){U(this.ptr!=null),U(ue==null),this.llhttp.llhttp_free(this.ptr),this.ptr=null,this.timeout&&Na.clearTimeout(this.timeout),this.timeout=null,this.timeoutValue=null,this.timeoutType=null,this.paused=!1}onStatus(A){this.statusText=A.toString()}onMessageBegin(){let{socket:A,client:t}=this;if(A.destroyed)return-1;if(t[we]===0)return T.destroy(A,new lr("bad response",T.getSocketInfo(A))),-1;let r=t[cA][t[rA]];if(!r)return-1;r.onResponseStarted()}onHeaderField(A){let t=this.headers.length;(t&1)===0?this.headers.push(A):this.headers[t-1]=Buffer.concat([this.headers[t-1],A]),this.trackHeader(A.length)}onHeaderValue(A){let t=this.headers.length;(t&1)===1?(this.headers.push(A),t+=1):this.headers[t-1]=Buffer.concat([this.headers[t-1],A]);let r=this.headers[t-2];if(r.length===10){let n=T.bufferToLowerCasedHeaderName(r);n==="keep-alive"?this.keepAlive+=A.toString():n==="connection"&&(this.connection+=A.toString())}else r.length===14&&T.bufferToLowerCasedHeaderName(r)==="content-length"&&(this.contentLength+=A.toString());this.trackHeader(A.length)}trackHeader(A){this.headersSize+=A,this.headersSize>=this.headersMaxSize&&T.destroy(this.socket,new M0)}onUpgrade(A){let{upgrade:t,client:r,socket:n,headers:s,statusCode:i}=this;U(t),U(r[mt]===n),U(!n.destroyed),U(!this.paused),U((s.length&1)===0);let o=r[cA][r[rA]];U(o),U(o.upgrade||o.method==="CONNECT"),this.statusCode=null,this.statusText="",this.shouldKeepAlive=null,this.headers=[],this.headersSize=0,n.unshift(A),n[ae].destroy(),n[ae]=null,n[Ws]=null,n[xe]=null,P0(n),r[mt]=null,r[EB]=null,r[cA][r[rA]++]=null,r.emit("disconnect",r[lB],[r],new Qr("upgrade"));try{o.onUpgrade(i,s,n)}catch(a){T.destroy(n,a)}r[vA]()}onHeadersComplete(A,t,r){let{client:n,socket:s,headers:i,statusText:o}=this;if(s.destroyed)return-1;if(n[we]===0)return T.destroy(s,new lr("bad response",T.getSocketInfo(s))),-1;let a=n[cA][n[rA]];if(!a)return-1;if(U(!this.upgrade),U(this.statusCode<200),A===100)return T.destroy(s,new lr("bad response",T.getSocketInfo(s))),-1;if(t&&!a.upgrade)return T.destroy(s,new lr("bad upgrade",T.getSocketInfo(s))),-1;if(U(this.timeoutType===Er),this.statusCode=A,this.shouldKeepAlive=r||a.method==="HEAD"&&!s[Ve]&&this.connection.toLowerCase()==="keep-alive",this.statusCode>=200){let l=a.bodyTimeout!=null?a.bodyTimeout:n[v0];this.setTimeout(l,Os)}else this.timeout&&this.timeout.refresh&&this.timeout.refresh();if(a.method==="CONNECT")return U(n[we]===1),this.upgrade=!0,2;if(t)return U(n[we]===1),this.upgrade=!0,2;if(U((this.headers.length&1)===0),this.headers=[],this.headersSize=0,this.shouldKeepAlive&&n[Ps]){let l=this.keepAlive?T.parseKeepAliveTimeout(this.keepAlive):null;if(l!=null){let c=Math.min(l-n[H0],n[J0]);c<=0?s[Ve]=!0:n[zs]=c}else n[zs]=n[x0]}else s[Ve]=!0;let g=a.onHeaders(A,i,this.resume,o)===!1;return a.aborted?-1:a.method==="HEAD"||A<200?1:(s[fn]&&(s[fn]=!1,n[vA]()),g?ze.ERROR.PAUSED:0)}onBody(A){let{client:t,socket:r,statusCode:n,maxResponseSize:s}=this;if(r.destroyed)return-1;let i=t[cA][t[rA]];if(U(i),U(this.timeoutType===Os),this.timeout&&this.timeout.refresh&&this.timeout.refresh(),U(n>=200),s>-1&&this.bytesRead+A.length>s)return T.destroy(r,new T0),-1;if(this.bytesRead+=A.length,i.onData(A)===!1)return ze.ERROR.PAUSED}onMessageComplete(){let{client:A,socket:t,statusCode:r,upgrade:n,headers:s,contentLength:i,bytesRead:o,shouldKeepAlive:a}=this;if(t.destroyed&&(!r||a))return-1;if(n)return;U(r>=100),U((this.headers.length&1)===0);let g=A[cA][A[rA]];if(U(g),this.statusCode=null,this.statusText="",this.bytesRead=0,this.contentLength="",this.keepAlive="",this.connection="",this.headers=[],this.headersSize=0,!(r<200)){if(g.method!=="HEAD"&&i&&o!==parseInt(i,10))return T.destroy(t,new tB),-1;if(g.onComplete(s),A[cA][A[rA]++]=null,t[Ja]=!0,t[$A])return U(A[we]===0),T.destroy(t,new Qr("reset")),ze.ERROR.PAUSED;if(a){if(t[Ve]&&A[we]===0)return T.destroy(t,new Qr("reset")),ze.ERROR.PAUSED;A[Ps]==null||A[Ps]===1?setImmediate(()=>A[vA]()):A[vA]()}else return T.destroy(t,new Qr("reset")),ze.ERROR.PAUSED}}};function oB(e){let{socket:A,timeoutType:t,client:r,paused:n}=e.deref();t===Er?(!A[$A]||A.writableNeedDrain||r[we]>1)&&(U(!n,"cannot be paused while waiting for headers"),T.destroy(A,new N0)):t===Os?n||T.destroy(A,new U0):t===Ya&&(U(r[we]===0&&r[zs]),T.destroy(A,new Qr("socket idle timeout")))}async function Z0(e,A){e[mt]=A,La||(La=await xa,xa=null),A[hn]=!1,A[$A]=!1,A[Ve]=!1,A[fn]=!1,A[Dt]=0,A[pt]=null,A[Ja]=!1,A[ae]=new Ga(e,A,La),vs(A,"error",function(r){U(r.code!=="ERR_TLS_CERT_ALTNAME_INVALID");let n=this[ae];if(r.code==="ECONNRESET"&&n.statusCode&&!n.shouldKeepAlive){let s=n.finish();s&&(this[xe]=s,this[Ws][sB](s));return}this[xe]=r,this[Ws][sB](r)}),vs(A,"readable",function(){let r=this[ae];r&&r.readMore()}),vs(A,"end",function(){let r=this[ae];if(r.statusCode&&!r.shouldKeepAlive){let n=r.finish();n&&T.destroy(this,n);return}T.destroy(this,new lr("other side closed",T.getSocketInfo(this)))}),vs(A,"close",function(){let r=this[Ws],n=this[ae];BB(this),n&&(!this[xe]&&n.statusCode&&!n.shouldKeepAlive&&(this[xe]=n.finish()||this[xe]),this[ae].destroy(),this[ae]=null);let s=this[xe]||new lr("closed",T.getSocketInfo(this));if(r[mt]=null,r[EB]=null,r.destroyed){U(r[QB]===0);let i=r[cA].splice(r[rA]);for(let o=0;o<i.length;o++){let a=i[o];T.errorRequest(r,a,s)}}else if(r[we]>0&&s.code!=="UND_ERR_INFO"){let i=r[cA][r[rA]];r[cA][r[rA]++]=null,T.errorRequest(r,i,s)}r[G0]=r[rA],U(r[we]===0),r.emit("disconnect",r[lB],[r],s),r[vA]()});let t=!1;return A.on("close",()=>{t=!0}),{version:"h1",defaultPipelining:1,write(...r){return j0(e,...r)},resume(){K0(e)},destroy(r,n){t?queueMicrotask(n):A.destroy(r).on("close",n)},get destroyed(){return A.destroyed},busy(r){return!!(A[$A]||A[Ve]||A[fn]||A[Dt]===1||r&&(e[we]>0&&!r.idempotent||e[we]>0&&(r.upgrade||r.method==="CONNECT")||e[we]>0&&T.bodyLength(r.body)!==0&&(T.isStream(r.body)||T.isAsyncIterable(r.body)||T.isFormDataLike(r.body))))}}}function BB(e){e[pt]&&(clearTimeout(e[pt]),e[pt]=null),e[Dt]=0}function _0(e,A){A[Dt]=1,A[pt]=setTimeout(()=>{A[pt]=null,A[Dt]=2,e[mt]===A&&!A.destroyed&&e[vA]()},0),A[pt].unref?.()}function K0(e){let A=e[mt];if(A&&!A.destroyed){if(e[rB]===0?!A[hn]&&A.unref&&(A.unref(),A[hn]=!0):A[hn]&&A.ref&&(A.ref(),A[hn]=!1),e[we]===0&&e[QB]>0&&A[Ja]){if(A[Dt]===0)return _0(e,A),A[ae].readMore(),A.destroyed,void 0;if(A[Dt]===1)return A[ae].readMore(),A.destroyed,void 0}if(e[we]===0&&(A[ae].readMore(),A.destroyed))return;if(e[rB]===0)A[ae].timeoutType!==Ya&&A[ae].setTimeout(e[zs],Ya);else if(e[we]>0&&A[ae].statusCode<200&&A[ae].timeoutType!==Er){let t=e[cA][e[rA]],r=t.headersTimeout!=null?t.headersTimeout:e[V0];A[ae].setTimeout(r,Er)}}}function X0(e){return e!=="GET"&&e!=="HEAD"&&e!=="OPTIONS"&&e!=="TRACE"&&e!=="CONNECT"}function j0(e,A){let{method:t,path:r,host:n,upgrade:s,blocking:i,reset:o}=A,{body:a,headers:g,contentLength:l}=A,c=t==="PUT"||t==="POST"||t==="PATCH"||t==="QUERY"||t==="PROPFIND"||t==="PROPPATCH";if(T.isFormDataLike(a)){Ua||(Ua=gr().extractBody);let[h,I]=Ua(a);A.contentType==null&&g.push("content-type",I),a=h.stream,l=h.length}else if(T.isBlobLike(a)&&A.contentType==null){let h=a.type;if(h){let I=`${h}`;if(!T.isValidHeaderValue(I))return T.errorRequest(e,A,new S0("invalid content-type header")),!1;g.push("content-type",I)}}a&&typeof a.read=="function"&&a.read(0);let Q=T.bodyLength(a);if(l=Q??l,l===null&&(l=A.contentLength),l===0&&!c&&(l=null),X0(t)&&l>0&&A.contentLength!==null&&A.contentLength!==l){if(e[Ta])return T.errorRequest(e,A,new yt),!1;process.emitWarning(new yt)}let B=e[mt];BB(B);let E=h=>{A.aborted||A.completed||(T.errorRequest(e,A,h||new gB),T.destroy(a),T.destroy(B,new Qr("aborted")))};try{A.onConnect(E)}catch(h){T.errorRequest(e,A,h)}if(A.aborted)return!1;t==="HEAD"&&(B[Ve]=!0),(s||t==="CONNECT")&&(B[Ve]=!0),o!=null&&(B[Ve]=o),e[nB]&&B[q0]++>=e[nB]&&(B[Ve]=!0),i&&(B[fn]=!0);let u=`${t} ${r} HTTP/1.1\r
14
+ `;if(typeof n=="string"?u+=`host: ${n}\r
15
+ `:u+=e[Y0],s?u+=`connection: upgrade\r
16
+ upgrade: ${s}\r
17
+ `:e[Ps]&&!B[Ve]?u+=`connection: keep-alive\r
18
+ `:u+=`connection: close\r
19
+ `,Array.isArray(g))for(let h=0;h<g.length;h+=2){let I=g[h+0],C=g[h+1];if(Array.isArray(C))for(let D=0;D<C.length;D++)u+=`${I}: ${C[D]}\r
20
+ `;else u+=`${I}: ${C}\r
21
+ `}return AB.sendHeaders.hasSubscribers&&AB.sendHeaders.publish({request:A,headers:u,socket:B}),!a||Q===0?aB(E,null,e,A,B,l,u,c):T.isBuffer(a)?aB(E,a,e,A,B,l,u,c):T.isBlobLike(a)?typeof a.stream=="function"?cB(E,a.stream(),e,A,B,l,u,c):eD(E,a,e,A,B,l,u,c):T.isStream(a)?$0(E,a,e,A,B,l,u,c):T.isIterable(a)?cB(E,a,e,A,B,l,u,c):U(!1),!0}function $0(e,A,t,r,n,s,i,o){U(s!==0||t[we]===0,"stream body cannot be pipelined");let a=!1,g=new Zs({abort:e,socket:n,request:r,contentLength:s,client:t,expectsPayload:o,header:i}),l=function(E){if(!a)try{!g.write(E)&&this.pause&&this.pause()}catch(u){T.destroy(this,u)}},c=function(){a||A.resume&&A.resume()},Q=function(){if(queueMicrotask(()=>{A.removeListener("error",B)}),!a){let E=new gB;queueMicrotask(()=>B(E))}},B=function(E){if(!a){if(a=!0,U(n.destroyed||n[$A]&&t[we]<=1),n.off("drain",c).off("error",B),A.removeListener("data",l).removeListener("end",B).removeListener("close",Q),!E)try{g.end()}catch(u){E=u}g.destroy(E),E&&(E.code!=="UND_ERR_INFO"||E.message!=="reset")?T.destroy(A,E):T.destroy(A)}};A.on("data",l).on("end",B).on("error",B).on("close",Q),A.resume&&A.resume(),n.on("drain",c).on("error",B),A.errorEmitted??A.errored?setImmediate(()=>B(A.errored)):(A.endEmitted??A.readableEnded)&&setImmediate(()=>B(null)),(A.closeEmitted??A.closed)&&setImmediate(Q)}function aB(e,A,t,r,n,s,i,o){try{A?T.isBuffer(A)&&(U(s===A.byteLength,"buffer body must have content length"),n.cork(),n.write(`${i}content-length: ${s}\r
22
+ \r
23
+ `,"latin1"),n.write(A),n.uncork(),r.onBodySent(A),!o&&r.reset!==!1&&(n[Ve]=!0)):s===0?n.write(`${i}content-length: 0\r
24
+ \r
25
+ `,"latin1"):(U(s===null,"no body must not have content length"),n.write(`${i}\r
26
+ `,"latin1")),r.onRequestSent(),t[vA]()}catch(a){e(a)}}async function eD(e,A,t,r,n,s,i,o){U(s===A.size,"blob body must have content length");try{if(s!=null&&s!==A.size)throw new yt;let a=Buffer.from(await A.arrayBuffer());n.cork(),n.write(`${i}content-length: ${s}\r
27
+ \r
28
+ `,"latin1"),n.write(a),n.uncork(),r.onBodySent(a),r.onRequestSent(),!o&&r.reset!==!1&&(n[Ve]=!0),t[vA]()}catch(a){e(a)}}async function cB(e,A,t,r,n,s,i,o){U(s!==0||t[we]===0,"iterator body cannot be pipelined");let a=null;function g(){if(a){let Q=a;a=null,Q()}}let l=()=>new Promise((Q,B)=>{U(a===null),n[xe]?B(n[xe]):a=Q});n.on("close",g).on("drain",g);let c=new Zs({abort:e,socket:n,request:r,contentLength:s,client:t,expectsPayload:o,header:i});try{for await(let Q of A){if(n[xe])throw n[xe];c.write(Q)||await l()}c.end()}catch(Q){c.destroy(Q)}finally{n.off("close",g).off("drain",g)}}var Zs=class{constructor({abort:A,socket:t,request:r,contentLength:n,client:s,expectsPayload:i,header:o}){this.socket=t,this.request=r,this.contentLength=n,this.client=s,this.bytesWritten=0,this.expectsPayload=i,this.header=o,this.abort=A,t[$A]=!0}write(A){let{socket:t,request:r,contentLength:n,client:s,bytesWritten:i,expectsPayload:o,header:a}=this;if(t[xe])throw t[xe];if(t.destroyed)return!1;let g=Buffer.byteLength(A);if(!g)return!0;if(n!==null&&i+g>n){if(s[Ta])throw new yt;process.emitWarning(new yt)}t.cork(),i===0&&(!o&&r.reset!==!1&&(t[Ve]=!0),n===null?t.write(`${a}transfer-encoding: chunked\r
29
+ `,"latin1"):t.write(`${a}content-length: ${n}\r
30
+ \r
31
+ `,"latin1")),n===null&&t.write(`\r
32
+ ${g.toString(16)}\r
33
+ `,"latin1"),this.bytesWritten+=g;let l=t.write(A);return t.uncork(),r.onBodySent(A),l||t[ae].timeout&&t[ae].timeoutType===Er&&t[ae].timeout.refresh&&t[ae].timeout.refresh(),l}end(){let{socket:A,contentLength:t,client:r,bytesWritten:n,expectsPayload:s,header:i,request:o}=this;if(o.onRequestSent(),A[$A]=!1,A[xe])throw A[xe];if(!A.destroyed){if(n===0?s?A.write(`${i}content-length: 0\r
34
+ \r
35
+ `,"latin1"):A.write(`${i}\r
36
+ `,"latin1"):t===null&&A.write(`\r
37
+ 0\r
38
+ \r
39
+ `,"latin1"),t!==null&&n!==t){if(r[Ta])throw new yt;process.emitWarning(new yt)}A[ae].timeout&&A[ae].timeoutType===Er&&A[ae].timeout.refresh&&A[ae].timeout.refresh(),r[vA]()}}destroy(A){let{socket:t,client:r,abort:n}=this;t[$A]=!1,A&&(U(r[we]<=1,"pipeline should only contain this request"),n(A))}};uB.exports=Z0});var mB=p((_x,pB)=>{"use strict";var nA=y("node:assert"),{pipeline:AD}=y("node:stream"),W=v(),{RequestContentLengthMismatchError:Ha,RequestAbortedError:hB,SocketError:dn,InformationalError:Va}=Z(),{kUrl:_s,kReset:Xs,kClient:Br,kRunning:js,kPending:tD,kQueue:et,kPendingIdx:va,kRunningIdx:gA,kError:QA,kSocket:Fe,kStrictContentLength:rD,kOnError:qa,kMaxConcurrentStreams:yB,kHTTP2Session:lA,kResume:At,kSize:nD,kHTTPContext:sD}=Qe(),qA=Symbol("open streams"),CB,fB=!1,Ks;try{Ks=y("node:http2")}catch{Ks={constants:{}}}var{constants:{HTTP2_HEADER_AUTHORITY:iD,HTTP2_HEADER_METHOD:oD,HTTP2_HEADER_PATH:aD,HTTP2_HEADER_SCHEME:cD,HTTP2_HEADER_CONTENT_LENGTH:gD,HTTP2_HEADER_EXPECT:lD,HTTP2_HEADER_STATUS:QD}}=Ks;function ED(e){let A=[];for(let[t,r]of Object.entries(e))if(Array.isArray(r))for(let n of r)A.push(Buffer.from(t),Buffer.from(n));else A.push(Buffer.from(t),Buffer.from(r));return A}async function BD(e,A){e[Fe]=A,fB||(fB=!0,process.emitWarning("H2 support is experimental, expect them to change at any time.",{code:"UNDICI-H2"}));let t=Ks.connect(e[_s],{createConnection:()=>A,peerMaxConcurrentStreams:e[yB]});t[qA]=0,t[Br]=e,t[Fe]=A,W.addListener(t,"error",ID),W.addListener(t,"frameError",hD),W.addListener(t,"end",CD),W.addListener(t,"goaway",fD),W.addListener(t,"close",function(){let{[Br]:n}=this,{[Fe]:s}=n,i=this[Fe][QA]||this[QA]||new dn("closed",W.getSocketInfo(s));if(n[lA]=null,n.destroyed){nA(n[tD]===0);let o=n[et].splice(n[gA]);for(let a=0;a<o.length;a++){let g=o[a];W.errorRequest(n,g,i)}}}),t.unref(),e[lA]=t,A[lA]=t,W.addListener(A,"error",function(n){nA(n.code!=="ERR_TLS_CERT_ALTNAME_INVALID"),this[QA]=n,this[Br][qa](n)}),W.addListener(A,"end",function(){W.destroy(this,new dn("other side closed",W.getSocketInfo(this)))}),W.addListener(A,"close",function(){let n=this[QA]||new dn("closed",W.getSocketInfo(this));e[Fe]=null,this[lA]!=null&&this[lA].destroy(n),e[va]=e[gA],nA(e[js]===0),e.emit("disconnect",e[_s],[e],n),e[At]()});let r=!1;return A.on("close",()=>{r=!0}),{version:"h2",defaultPipelining:1/0,write(...n){return wD(e,...n)},resume(){uD(e)},destroy(n,s){r?queueMicrotask(s):A.destroy(n).on("close",s)},get destroyed(){return A.destroyed},busy(){return!1}}}function uD(e){let A=e[Fe];A?.destroyed===!1&&(e[nD]===0&&e[yB]===0?(A.unref(),e[lA].unref()):(A.ref(),e[lA].ref()))}function ID(e){nA(e.code!=="ERR_TLS_CERT_ALTNAME_INVALID"),this[Fe][QA]=e,this[Br][qa](e)}function hD(e,A,t){if(t===0){let r=new Va(`HTTP/2: "frameError" received - type ${e}, code ${A}`);this[Fe][QA]=r,this[Br][qa](r)}}function CD(){let e=new dn("other side closed",W.getSocketInfo(this[Fe]));this.destroy(e),W.destroy(this[Fe],e)}function fD(e){let A=this[QA]||new dn(`HTTP/2: "GOAWAY" frame received with code ${e}`,W.getSocketInfo(this)),t=this[Br];if(t[Fe]=null,t[sD]=null,this[lA]!=null&&(this[lA].destroy(A),this[lA]=null),W.destroy(this[Fe],A),t[gA]<t[et].length){let r=t[et][t[gA]];t[et][t[gA]++]=null,W.errorRequest(t,r,A),t[va]=t[gA]}nA(t[js]===0),t.emit("disconnect",t[_s],[t],A),t[At]()}function dD(e){return e!=="GET"&&e!=="HEAD"&&e!=="OPTIONS"&&e!=="TRACE"&&e!=="CONNECT"}function wD(e,A){let t=e[lA],{method:r,path:n,host:s,upgrade:i,expectContinue:o,signal:a,headers:g}=A,{body:l}=A;if(i)return W.errorRequest(e,A,new Error("Upgrade not supported for H2")),!1;let c={};for(let f=0;f<g.length;f+=2){let R=g[f+0],S=g[f+1];if(Array.isArray(S))for(let d=0;d<S.length;d++)c[R]?c[R]+=`,${S[d]}`:c[R]=S[d];else c[R]=S}let Q,{hostname:B,port:E}=e[_s];c[iD]=s||`${B}${E?`:${E}`:""}`,c[oD]=r;let u=f=>{A.aborted||A.completed||(f=f||new hB,W.errorRequest(e,A,f),Q!=null&&W.destroy(Q,f),W.destroy(l,f),e[et][e[gA]++]=null,e[At]())};try{A.onConnect(u)}catch(f){W.errorRequest(e,A,f)}if(A.aborted)return!1;if(r==="CONNECT")return t.ref(),Q=t.request(c,{endStream:!1,signal:a}),Q.id&&!Q.pending?(A.onUpgrade(null,null,Q),++t[qA],e[et][e[gA]++]=null):Q.once("ready",()=>{A.onUpgrade(null,null,Q),++t[qA],e[et][e[gA]++]=null}),Q.once("close",()=>{t[qA]-=1,t[qA]===0&&t.unref()}),!0;c[aD]=n,c[cD]="https";let h=r==="PUT"||r==="POST"||r==="PATCH";l&&typeof l.read=="function"&&l.read(0);let I=W.bodyLength(l);if(W.isFormDataLike(l)){CB??=gr().extractBody;let[f,R]=CB(l);c["content-type"]=R,l=f.stream,I=f.length}if(I==null&&(I=A.contentLength),(I===0||!h)&&(I=null),dD(r)&&I>0&&A.contentLength!=null&&A.contentLength!==I){if(e[rD])return W.errorRequest(e,A,new Ha),!1;process.emitWarning(new Ha)}I!=null&&(nA(l,"no body must not have content length"),c[gD]=`${I}`),t.ref();let C=r==="GET"||r==="HEAD"||l===null;return o?(c[lD]="100-continue",Q=t.request(c,{endStream:C,signal:a}),Q.once("continue",D)):(Q=t.request(c,{endStream:C,signal:a}),D()),++t[qA],Q.once("response",f=>{let{[QD]:R,...S}=f;if(A.onResponseStarted(),A.aborted){let d=new hB;W.errorRequest(e,A,d),W.destroy(Q,d);return}A.onHeaders(Number(R),ED(S),Q.resume.bind(Q),"")===!1&&Q.pause(),Q.on("data",d=>{A.onData(d)===!1&&Q.pause()})}),Q.once("end",()=>{(Q.state?.state==null||Q.state.state<6)&&A.onComplete([]),t[qA]===0&&t.unref(),u(new Va("HTTP/2: stream half-closed (remote)")),e[et][e[gA]++]=null,e[va]=e[gA],e[At]()}),Q.once("close",()=>{t[qA]-=1,t[qA]===0&&t.unref()}),Q.once("error",function(f){u(f)}),Q.once("frameError",(f,R)=>{u(new Va(`HTTP/2: "frameError" received - type ${f}, code ${R}`))}),!0;function D(){!l||I===0?dB(u,Q,null,e,A,e[Fe],I,h):W.isBuffer(l)?dB(u,Q,l,e,A,e[Fe],I,h):W.isBlobLike(l)?typeof l.stream=="function"?wB(u,Q,l.stream(),e,A,e[Fe],I,h):pD(u,Q,l,e,A,e[Fe],I,h):W.isStream(l)?yD(u,e[Fe],h,Q,l,e,A,I):W.isIterable(l)?wB(u,Q,l,e,A,e[Fe],I,h):nA(!1)}}function dB(e,A,t,r,n,s,i,o){try{t!=null&&W.isBuffer(t)&&(nA(i===t.byteLength,"buffer body must have content length"),A.cork(),A.write(t),A.uncork(),A.end(),n.onBodySent(t)),o||(s[Xs]=!0),n.onRequestSent(),r[At]()}catch(a){e(a)}}function yD(e,A,t,r,n,s,i,o){nA(o!==0||s[js]===0,"stream body cannot be pipelined");let a=AD(n,r,l=>{l?(W.destroy(a,l),e(l)):(W.removeAllListeners(a),i.onRequestSent(),t||(A[Xs]=!0),s[At]())});W.addListener(a,"data",g);function g(l){i.onBodySent(l)}}async function pD(e,A,t,r,n,s,i,o){nA(i===t.size,"blob body must have content length");try{if(i!=null&&i!==t.size)throw new Ha;let a=Buffer.from(await t.arrayBuffer());A.cork(),A.write(a),A.uncork(),A.end(),n.onBodySent(a),n.onRequestSent(),o||(s[Xs]=!0),r[At]()}catch(a){e(a)}}async function wB(e,A,t,r,n,s,i,o){nA(i!==0||r[js]===0,"iterator body cannot be pipelined");let a=null;function g(){if(a){let c=a;a=null,c()}}let l=()=>new Promise((c,Q)=>{nA(a===null),s[QA]?Q(s[QA]):a=c});A.on("close",g).on("drain",g);try{for await(let c of t){if(s[QA])throw s[QA];let Q=A.write(c);n.onBodySent(c),Q||await l()}A.end(),n.onRequestSent(),o||(s[Xs]=!0),r[At]()}catch(c){e(c)}finally{A.off("close",g).off("drain",g)}}pB.exports=BD});var ei=p((Kx,bB)=>{"use strict";var FA=v(),{kBodyUsed:wn}=Qe(),Pa=y("node:assert"),{InvalidArgumentError:mD}=Z(),DD=y("node:events"),kD=[300,301,302,303,307,308],DB=Symbol("body"),$s=class{constructor(A){this[DB]=A,this[wn]=!1}async*[Symbol.asyncIterator](){Pa(!this[wn],"disturbed"),this[wn]=!0,yield*this[DB]}},Wa=class{constructor(A,t,r,n){if(t!=null&&(!Number.isInteger(t)||t<0))throw new mD("maxRedirections must be a positive number");FA.validateHandler(n,r.method,r.upgrade),this.dispatch=A,this.location=null,this.abort=null,this.opts={...r,maxRedirections:0},this.maxRedirections=t,this.handler=n,this.history=[],this.redirectionLimitReached=!1,FA.isStream(this.opts.body)?(FA.bodyLength(this.opts.body)===0&&this.opts.body.on("data",function(){Pa(!1)}),typeof this.opts.body.readableDidRead!="boolean"&&(this.opts.body[wn]=!1,DD.prototype.on.call(this.opts.body,"data",function(){this[wn]=!0}))):this.opts.body&&typeof this.opts.body.pipeTo=="function"?this.opts.body=new $s(this.opts.body):this.opts.body&&typeof this.opts.body!="string"&&!ArrayBuffer.isView(this.opts.body)&&FA.isIterable(this.opts.body)&&(this.opts.body=new $s(this.opts.body))}onConnect(A){this.abort=A,this.handler.onConnect(A,{history:this.history})}onUpgrade(A,t,r){this.handler.onUpgrade(A,t,r)}onError(A){this.handler.onError(A)}onHeaders(A,t,r,n){if(this.location=this.history.length>=this.maxRedirections||FA.isDisturbed(this.opts.body)?null:bD(A,t),this.opts.throwOnMaxRedirect&&this.history.length>=this.maxRedirections){this.request&&this.request.abort(new Error("max redirects")),this.redirectionLimitReached=!0,this.abort(new Error("max redirects"));return}if(this.opts.origin&&this.history.push(new URL(this.opts.path,this.opts.origin)),!this.location)return this.handler.onHeaders(A,t,r,n);let{origin:s,pathname:i,search:o}=FA.parseURL(new URL(this.location,this.opts.origin&&new URL(this.opts.path,this.opts.origin))),a=o?`${i}${o}`:i;this.opts.headers=FD(this.opts.headers,A===303,this.opts.origin!==s),this.opts.path=a,this.opts.origin=s,this.opts.maxRedirections=0,this.opts.query=null,A===303&&this.opts.method!=="HEAD"&&(this.opts.method="GET",this.opts.body=null)}onData(A){if(!this.location)return this.handler.onData(A)}onComplete(A){this.location?(this.location=null,this.abort=null,this.dispatch(this.opts,this)):this.handler.onComplete(A)}onBodySent(A){this.handler.onBodySent&&this.handler.onBodySent(A)}};function bD(e,A){if(kD.indexOf(e)===-1)return null;for(let t=0;t<A.length;t+=2)if(A[t].length===8&&FA.headerNameToString(A[t])==="location")return A[t+1]}function kB(e,A,t){if(e.length===4)return FA.headerNameToString(e)==="host";if(A&&FA.headerNameToString(e).startsWith("content-"))return!0;if(t&&(e.length===13||e.length===6||e.length===19)){let r=FA.headerNameToString(e);return r==="authorization"||r==="cookie"||r==="proxy-authorization"}return!1}function FD(e,A,t){let r=[];if(Array.isArray(e))for(let n=0;n<e.length;n+=2)kB(e[n],A,t)||r.push(e[n],e[n+1]);else if(e&&typeof e=="object")for(let n of Object.keys(e))kB(n,A,t)||r.push(n,e[n]);else Pa(e==null,"headers must be an object or an array");return r}bB.exports=Wa});var Ai=p((Xx,FB)=>{"use strict";var RD=ei();function SD({maxRedirections:e}){return A=>function(r,n){let{maxRedirections:s=e}=r;if(!s)return A(r,n);let i=new RD(A,s,r,n);return r={...r,maxRedirections:0},A(r,i)}}FB.exports=SD});var hr=p((jx,GB)=>{"use strict";var WA=y("node:assert"),LB=y("node:net"),ND=y("node:http"),kt=v(),{channels:ur}=Xt(),MD=GQ(),UD=Ar(),{InvalidArgumentError:he,InformationalError:LD,ClientDestroyedError:TD}=Z(),xD=an(),{kUrl:RA,kServerName:tt,kClient:YD,kBusy:Oa,kConnect:GD,kResuming:bt,kRunning:kn,kPending:bn,kSize:Dn,kQueue:EA,kConnected:JD,kConnecting:Ir,kNeedDrain:nt,kKeepAliveDefaultTimeout:RB,kHostHeader:HD,kPendingIdx:BA,kRunningIdx:PA,kError:VD,kPipelining:ti,kKeepAliveTimeoutValue:vD,kMaxHeadersSize:qD,kKeepAliveMaxTimeout:WD,kKeepAliveTimeoutThreshold:PD,kHeadersTimeout:OD,kBodyTimeout:zD,kStrictContentLength:ZD,kConnector:yn,kMaxRedirections:_D,kMaxRequests:za,kCounter:KD,kClose:XD,kDestroy:jD,kDispatch:$D,kInterceptors:SB,kLocalAddress:pn,kMaxResponseSize:ek,kOnError:Ak,kHTTPContext:Ce,kMaxConcurrentStreams:tk,kResume:mn}=Qe(),rk=IB(),nk=mB(),NB=!1,rt=Symbol("kClosedResolve"),MB=()=>{};function TB(e){return e[ti]??e[Ce]?.defaultPipelining??1}var Za=class extends UD{constructor(A,{interceptors:t,maxHeaderSize:r,headersTimeout:n,socketTimeout:s,requestTimeout:i,connectTimeout:o,bodyTimeout:a,idleTimeout:g,keepAlive:l,keepAliveTimeout:c,maxKeepAliveTimeout:Q,keepAliveMaxTimeout:B,keepAliveTimeoutThreshold:E,socketPath:u,pipelining:h,tls:I,strictContentLength:C,maxCachedSessions:D,maxRedirections:f,connect:R,maxRequestsPerClient:S,localAddress:d,maxResponseSize:se,autoSelectFamily:ke,autoSelectFamilyAttemptTimeout:Le,maxConcurrentStreams:me,allowH2:w,webSocket:H}={}){if(super({webSocket:H}),l!==void 0)throw new he("unsupported keepAlive, use pipelining=0 instead");if(s!==void 0)throw new he("unsupported socketTimeout, use headersTimeout & bodyTimeout instead");if(i!==void 0)throw new he("unsupported requestTimeout, use headersTimeout & bodyTimeout instead");if(g!==void 0)throw new he("unsupported idleTimeout, use keepAliveTimeout instead");if(Q!==void 0)throw new he("unsupported maxKeepAliveTimeout, use keepAliveMaxTimeout instead");if(r!=null&&!Number.isFinite(r))throw new he("invalid maxHeaderSize");if(u!=null&&typeof u!="string")throw new he("invalid socketPath");if(o!=null&&(!Number.isFinite(o)||o<0))throw new he("invalid connectTimeout");if(c!=null&&(!Number.isFinite(c)||c<=0))throw new he("invalid keepAliveTimeout");if(B!=null&&(!Number.isFinite(B)||B<=0))throw new he("invalid keepAliveMaxTimeout");if(E!=null&&!Number.isFinite(E))throw new he("invalid keepAliveTimeoutThreshold");if(n!=null&&(!Number.isInteger(n)||n<0))throw new he("headersTimeout must be a positive integer or zero");if(a!=null&&(!Number.isInteger(a)||a<0))throw new he("bodyTimeout must be a positive integer or zero");if(R!=null&&typeof R!="function"&&typeof R!="object")throw new he("connect must be a function or an object");if(f!=null&&(!Number.isInteger(f)||f<0))throw new he("maxRedirections must be a positive number");if(S!=null&&(!Number.isInteger(S)||S<0))throw new he("maxRequestsPerClient must be a positive number");if(d!=null&&(typeof d!="string"||LB.isIP(d)===0))throw new he("localAddress must be valid string IP address");if(se!=null&&(!Number.isInteger(se)||se<-1))throw new he("maxResponseSize must be a positive number");if(Le!=null&&(!Number.isInteger(Le)||Le<-1))throw new he("autoSelectFamilyAttemptTimeout must be a positive number");if(w!=null&&typeof w!="boolean")throw new he("allowH2 must be a valid boolean value");if(me!=null&&(typeof me!="number"||me<1))throw new he("maxConcurrentStreams must be a positive integer, greater than 0");typeof R!="function"&&(R=xD({...I,maxCachedSessions:D,allowH2:w,socketPath:u,timeout:o,...ke?{autoSelectFamily:ke,autoSelectFamilyAttemptTimeout:Le}:void 0,...R})),t?.Client&&Array.isArray(t.Client)?(this[SB]=t.Client,NB||(NB=!0,process.emitWarning("Client.Options#interceptor is deprecated. Use Dispatcher#compose instead.",{code:"UNDICI-CLIENT-INTERCEPTOR-DEPRECATED"}))):this[SB]=[sk({maxRedirections:f})],this[RA]=kt.parseOrigin(A),this[yn]=R,this[ti]=h??1,this[qD]=r||ND.maxHeaderSize,this[RB]=c??4e3,this[WD]=B??6e5,this[PD]=E??2e3,this[vD]=this[RB],this[tt]=null,this[pn]=d??null,this[bt]=0,this[nt]=0,this[HD]=`host: ${this[RA].hostname}${this[RA].port?`:${this[RA].port}`:""}\r
40
+ `,this[zD]=a??3e5,this[OD]=n??3e5,this[ZD]=C??!0,this[_D]=f,this[za]=S,this[rt]=null,this[ek]=se>-1?se:-1,this[tk]=me??100,this[Ce]=null,this[EA]=[],this[PA]=0,this[BA]=0,this[mn]=q=>_a(this,q),this[Ak]=q=>xB(this,q)}get pipelining(){return this[ti]}set pipelining(A){this[ti]=A,this[mn](!0)}get[bn](){return this[EA].length-this[BA]}get[kn](){return this[BA]-this[PA]}get[Dn](){return this[EA].length-this[PA]}get[JD](){return!!this[Ce]&&!this[Ir]&&!this[Ce].destroyed}get[Oa](){return!!(this[Ce]?.busy(null)||this[Dn]>=(TB(this)||1)||this[bn]>0)}[GD](A){YB(this),this.once("connect",A)}[$D](A,t){let r=A.origin||this[RA].origin,n=new MD(r,A,t);return this[EA].push(n),this[bt]||(kt.bodyLength(n.body)==null&&kt.isIterable(n.body)?(this[bt]=1,queueMicrotask(()=>_a(this))):this[mn](!0)),this[bt]&&this[nt]!==2&&this[Oa]&&(this[nt]=2),this[nt]<2}async[XD](){return new Promise(A=>{this[Dn]?this[rt]=A:A(null)})}async[jD](A){return new Promise(t=>{let r=this[EA].splice(this[BA]);for(let s=0;s<r.length;s++){let i=r[s];kt.errorRequest(this,i,A)}let n=()=>{this[rt]&&(this[rt](),this[rt]=null),t(null)};this[Ce]?(this[Ce].destroy(A,n),this[Ce]=null):queueMicrotask(n),this[mn]()})}},sk=Ai();function xB(e,A){if(e[kn]===0&&A.code!=="UND_ERR_INFO"&&A.code!=="UND_ERR_SOCKET"){WA(e[BA]===e[PA]);let t=e[EA].splice(e[PA]);for(let r=0;r<t.length;r++){let n=t[r];kt.errorRequest(e,n,A)}WA(e[Dn]===0)}}async function YB(e){WA(!e[Ir]),WA(!e[Ce]);let{host:A,hostname:t,protocol:r,port:n}=e[RA];if(t[0]==="["){let s=t.indexOf("]");WA(s!==-1);let i=t.substring(1,s);WA(LB.isIP(i)),t=i}e[Ir]=!0,ur.beforeConnect.hasSubscribers&&ur.beforeConnect.publish({connectParams:{host:A,hostname:t,protocol:r,port:n,version:e[Ce]?.version,servername:e[tt],localAddress:e[pn]},connector:e[yn]});try{let s=await new Promise((i,o)=>{e[yn]({host:A,hostname:t,protocol:r,port:n,servername:e[tt],localAddress:e[pn]},(a,g)=>{a?o(a):i(g)})});if(e.destroyed){kt.destroy(s.on("error",MB),new TD);return}WA(s);try{e[Ce]=s.alpnProtocol==="h2"?await nk(e,s):await rk(e,s)}catch(i){throw s.destroy().on("error",MB),i}e[Ir]=!1,s[KD]=0,s[za]=e[za],s[YD]=e,s[VD]=null,ur.connected.hasSubscribers&&ur.connected.publish({connectParams:{host:A,hostname:t,protocol:r,port:n,version:e[Ce]?.version,servername:e[tt],localAddress:e[pn]},connector:e[yn],socket:s}),e.emit("connect",e[RA],[e])}catch(s){if(e.destroyed)return;if(e[Ir]=!1,ur.connectError.hasSubscribers&&ur.connectError.publish({connectParams:{host:A,hostname:t,protocol:r,port:n,version:e[Ce]?.version,servername:e[tt],localAddress:e[pn]},connector:e[yn],error:s}),s.code==="ERR_TLS_CERT_ALTNAME_INVALID")for(WA(e[kn]===0);e[bn]>0&&e[EA][e[BA]].servername===e[tt];){let i=e[EA][e[BA]++];kt.errorRequest(e,i,s)}else xB(e,s);e.emit("connectionError",e[RA],[e],s)}e[mn]()}function UB(e){e[nt]=0,e.emit("drain",e[RA],[e])}function _a(e,A){e[bt]!==2&&(e[bt]=2,ik(e,A),e[bt]=0,e[PA]>256&&(e[EA].splice(0,e[PA]),e[BA]-=e[PA],e[PA]=0))}function ik(e,A){for(;;){if(e.destroyed){WA(e[bn]===0);return}if(e[rt]&&!e[Dn]){e[rt](),e[rt]=null;return}if(e[Ce]&&e[Ce].resume(),e[Oa])e[nt]=2;else if(e[nt]===2){A?(e[nt]=1,queueMicrotask(()=>UB(e))):UB(e);continue}if(e[bn]===0||e[kn]>=(TB(e)||1))return;let t=e[EA][e[BA]];if(e[RA].protocol==="https:"&&e[tt]!==t.servername){if(e[kn]>0)return;e[tt]=t.servername,e[Ce]?.destroy(new LD("servername changed"),()=>{e[Ce]=null,_a(e)})}if(e[Ir])return;if(!e[Ce]){YB(e);return}if(e[Ce].destroyed||e[Ce].busy(t))return;!t.aborted&&e[Ce].write(t)?e[BA]++:e[EA].splice(e[BA],1)}}GB.exports=Za});var Ka=p((eY,JB)=>{"use strict";var ri=class{constructor(){this.bottom=0,this.top=0,this.list=new Array(2048),this.next=null}isEmpty(){return this.top===this.bottom}isFull(){return(this.top+1&2047)===this.bottom}push(A){this.list[this.top]=A,this.top=this.top+1&2047}shift(){let A=this.list[this.bottom];return A===void 0?null:(this.list[this.bottom]=void 0,this.bottom=this.bottom+1&2047,A)}};JB.exports=class{constructor(){this.head=this.tail=new ri}isEmpty(){return this.head.isEmpty()}push(A){this.head.isFull()&&(this.head=this.head.next=new ri),this.head.push(A)}shift(){let A=this.tail,t=A.shift();return A.isEmpty()&&A.next!==null&&(this.tail=A.next),t}}});var VB=p((AY,HB)=>{var{kFree:ok,kConnected:ak,kPending:ck,kQueued:gk,kRunning:lk,kSize:Qk}=Qe(),Ft=Symbol("pool"),Xa=class{constructor(A){this[Ft]=A}get connected(){return this[Ft][ak]}get free(){return this[Ft][ok]}get pending(){return this[Ft][ck]}get queued(){return this[Ft][gk]}get running(){return this[Ft][lk]}get size(){return this[Ft][Qk]}};HB.exports=Xa});var rc=p((tY,XB)=>{"use strict";var Ek=Ar(),Bk=Ka(),{kConnected:ja,kSize:vB,kRunning:qB,kPending:WB,kQueued:Fn,kBusy:uk,kFree:Ik,kUrl:hk,kClose:Ck,kDestroy:fk,kDispatch:dk}=Qe(),wk=VB(),ve=Symbol("clients"),Ye=Symbol("needDrain"),Rn=Symbol("queue"),$a=Symbol("closed resolve"),ec=Symbol("onDrain"),PB=Symbol("onConnect"),OB=Symbol("onDisconnect"),zB=Symbol("onConnectionError"),Ac=Symbol("get dispatcher"),_B=Symbol("add client"),KB=Symbol("remove client"),ZB=Symbol("stats"),tc=class extends Ek{constructor(A){super(A),this[Rn]=new Bk,this[ve]=[],this[Fn]=0;let t=this;this[ec]=function(n,s){let i=t[Rn],o=!1;for(;!o;){let a=i.shift();if(!a)break;t[Fn]--,o=!this.dispatch(a.opts,a.handler)}this[Ye]=o,!this[Ye]&&t[Ye]&&(t[Ye]=!1,t.emit("drain",n,[t,...s])),t[$a]&&i.isEmpty()&&Promise.all(t[ve].map(a=>a.close())).then(t[$a])},this[PB]=(r,n)=>{t.emit("connect",r,[t,...n])},this[OB]=(r,n,s)=>{t.emit("disconnect",r,[t,...n],s)},this[zB]=(r,n,s)=>{t.emit("connectionError",r,[t,...n],s)},this[ZB]=new wk(this)}get[uk](){return this[Ye]}get[ja](){return this[ve].filter(A=>A[ja]).length}get[Ik](){return this[ve].filter(A=>A[ja]&&!A[Ye]).length}get[WB](){let A=this[Fn];for(let{[WB]:t}of this[ve])A+=t;return A}get[qB](){let A=0;for(let{[qB]:t}of this[ve])A+=t;return A}get[vB](){let A=this[Fn];for(let{[vB]:t}of this[ve])A+=t;return A}get stats(){return this[ZB]}async[Ck](){this[Rn].isEmpty()?await Promise.all(this[ve].map(A=>A.close())):await new Promise(A=>{this[$a]=A})}async[fk](A){for(;;){let t=this[Rn].shift();if(!t)break;t.handler.onError(A)}await Promise.all(this[ve].map(t=>t.destroy(A)))}[dk](A,t){let r=this[Ac]();return r?r.dispatch(A,t)||(r[Ye]=!0,this[Ye]=!this[Ac]()):(this[Ye]=!0,this[Rn].push({opts:A,handler:t}),this[Fn]++),!this[Ye]}[_B](A){return A.on("drain",this[ec]).on("connect",this[PB]).on("disconnect",this[OB]).on("connectionError",this[zB]),this[ve].push(A),this[Ye]&&queueMicrotask(()=>{this[Ye]&&this[ec](A[hk],[this,A])}),this}[KB](A){A.close(()=>{let t=this[ve].indexOf(A);t!==-1&&this[ve].splice(t,1)}),this[Ye]=this[ve].some(t=>!t[Ye]&&t.closed!==!0&&t.destroyed!==!0)}};XB.exports={PoolBase:tc,kClients:ve,kNeedDrain:Ye,kAddClient:_B,kRemoveClient:KB,kGetDispatcher:Ac}});var Cr=p((rY,Au)=>{"use strict";var{PoolBase:yk,kClients:ni,kNeedDrain:pk,kAddClient:mk,kGetDispatcher:Dk}=rc(),kk=hr(),{InvalidArgumentError:nc}=Z(),jB=v(),{kUrl:$B,kInterceptors:bk}=Qe(),Fk=an(),sc=Symbol("options"),ic=Symbol("connections"),eu=Symbol("factory");function Rk(e,A){return new kk(e,A)}var oc=class extends yk{constructor(A,{connections:t,factory:r=Rk,connect:n,connectTimeout:s,tls:i,maxCachedSessions:o,socketPath:a,autoSelectFamily:g,autoSelectFamilyAttemptTimeout:l,allowH2:c,...Q}={}){if(t!=null&&(!Number.isFinite(t)||t<0))throw new nc("invalid connections");if(typeof r!="function")throw new nc("factory must be a function.");if(n!=null&&typeof n!="function"&&typeof n!="object")throw new nc("connect must be a function or an object");typeof n!="function"&&(n=Fk({...i,maxCachedSessions:o,allowH2:c,socketPath:a,timeout:s,...g?{autoSelectFamily:g,autoSelectFamilyAttemptTimeout:l}:void 0,...n})),super(Q),this[bk]=Q.interceptors?.Pool&&Array.isArray(Q.interceptors.Pool)?Q.interceptors.Pool:[],this[ic]=t||null,this[$B]=jB.parseOrigin(A),this[sc]={...jB.deepClone(Q),connect:n,allowH2:c},this[sc].interceptors=Q.interceptors?{...Q.interceptors}:void 0,this[eu]=r,this.on("connectionError",(B,E,u)=>{for(let h of E){let I=this[ni].indexOf(h);I!==-1&&this[ni].splice(I,1)}})}[Dk](){for(let A of this[ni])if(!A[pk])return A;if(!this[ic]||this[ni].length<this[ic]){let A=this[eu](this[$B],this[sc]);return this[mk](A),A}}};Au.exports=oc});var iu=p((nY,su)=>{"use strict";var{BalancedPoolMissingUpstreamError:Sk,InvalidArgumentError:Nk}=Z(),{PoolBase:Mk,kClients:Me,kNeedDrain:Sn,kAddClient:Uk,kRemoveClient:Lk,kGetDispatcher:Tk}=rc(),xk=Cr(),{kUrl:ac,kInterceptors:Yk}=Qe(),{parseOrigin:tu}=v(),ru=Symbol("factory"),si=Symbol("options"),nu=Symbol("kGreatestCommonDivisor"),Rt=Symbol("kCurrentWeight"),St=Symbol("kIndex"),sA=Symbol("kWeight"),ii=Symbol("kMaxWeightPerServer"),oi=Symbol("kErrorPenalty");function Gk(e,A){if(e===0)return A;for(;A!==0;){let t=A;A=e%A,e=t}return e}function Jk(e,A){return new xk(e,A)}var cc=class extends Mk{constructor(A=[],{factory:t=Jk,...r}={}){if(super(),this[si]=r,this[St]=-1,this[Rt]=0,this[ii]=this[si].maxWeightPerServer||100,this[oi]=this[si].errorPenalty||15,Array.isArray(A)||(A=[A]),typeof t!="function")throw new Nk("factory must be a function.");this[Yk]=r.interceptors?.BalancedPool&&Array.isArray(r.interceptors.BalancedPool)?r.interceptors.BalancedPool:[],this[ru]=t;for(let n of A)this.addUpstream(n);this._updateBalancedPoolStats()}addUpstream(A){let t=tu(A).origin;if(this[Me].find(n=>n[ac].origin===t&&n.closed!==!0&&n.destroyed!==!0))return this;let r=this[ru](t,Object.assign({},this[si]));this[Uk](r),r.on("connect",()=>{r[sA]=Math.min(this[ii],r[sA]+this[oi])}),r.on("connectionError",()=>{r[sA]=Math.max(1,r[sA]-this[oi]),this._updateBalancedPoolStats()}),r.on("disconnect",(...n)=>{let s=n[2];s&&s.code==="UND_ERR_SOCKET"&&(r[sA]=Math.max(1,r[sA]-this[oi]),this._updateBalancedPoolStats())});for(let n of this[Me])n[sA]=this[ii];return this._updateBalancedPoolStats(),this}_updateBalancedPoolStats(){let A=0;for(let t=0;t<this[Me].length;t++)A=Gk(this[Me][t][sA],A);this[nu]=A}removeUpstream(A){let t=tu(A).origin,r=this[Me].find(n=>n[ac].origin===t&&n.closed!==!0&&n.destroyed!==!0);return r&&this[Lk](r),this}get upstreams(){return this[Me].filter(A=>A.closed!==!0&&A.destroyed!==!0).map(A=>A[ac].origin)}[Tk](){if(this[Me].length===0)throw new Sk;if(!this[Me].find(s=>!s[Sn]&&s.closed!==!0&&s.destroyed!==!0)||this[Me].map(s=>s[Sn]).reduce((s,i)=>s&&i,!0))return;let r=0,n=this[Me].findIndex(s=>!s[Sn]);for(;r++<this[Me].length;){this[St]=(this[St]+1)%this[Me].length;let s=this[Me][this[St]];if(s[sA]>this[Me][n][sA]&&!s[Sn]&&(n=this[St]),this[St]===0&&(this[Rt]=this[Rt]-this[nu],this[Rt]<=0&&(this[Rt]=this[ii])),s[sA]>=this[Rt]&&!s[Sn])return s}return this[Rt]=this[Me][n][sA],this[St]=n,this[Me][n]}};su.exports=cc});var fr=p((sY,Eu)=>{"use strict";var{InvalidArgumentError:ai}=Z(),{kClients:st,kRunning:ou,kClose:Hk,kDestroy:Vk,kDispatch:vk,kInterceptors:qk}=Qe(),Wk=Ar(),Pk=Cr(),Ok=hr(),zk=v(),Zk=Ai(),au=Symbol("onConnect"),cu=Symbol("onDisconnect"),gu=Symbol("onConnectionError"),_k=Symbol("maxRedirections"),lu=Symbol("onDrain"),Qu=Symbol("factory"),gc=Symbol("options");function Kk(e,A){return A&&A.connections===1?new Ok(e,A):new Pk(e,A)}var lc=class extends Wk{constructor({factory:A=Kk,maxRedirections:t=0,connect:r,...n}={}){if(typeof A!="function")throw new ai("factory must be a function.");if(r!=null&&typeof r!="function"&&typeof r!="object")throw new ai("connect must be a function or an object");if(!Number.isInteger(t)||t<0)throw new ai("maxRedirections must be a positive number");super(n),r&&typeof r!="function"&&(r={...r}),this[qk]=n.interceptors?.Agent&&Array.isArray(n.interceptors.Agent)?n.interceptors.Agent:[Zk({maxRedirections:t})],this[gc]={...zk.deepClone(n),connect:r},this[gc].interceptors=n.interceptors?{...n.interceptors}:void 0,this[_k]=t,this[Qu]=A,this[st]=new Map,this[lu]=(s,i)=>{this.emit("drain",s,[this,...i])},this[au]=(s,i)=>{this.emit("connect",s,[this,...i])},this[cu]=(s,i,o)=>{this.emit("disconnect",s,[this,...i],o)},this[gu]=(s,i,o)=>{this.emit("connectionError",s,[this,...i],o)}}get[ou](){let A=0;for(let t of this[st].values())A+=t[ou];return A}[vk](A,t){let r;if(A.origin&&(typeof A.origin=="string"||A.origin instanceof URL))r=String(A.origin);else throw new ai("opts.origin must be a non-empty string or URL.");let n=this[st].get(r);return n||(n=this[Qu](A.origin,this[gc]).on("drain",this[lu]).on("connect",this[au]).on("disconnect",this[cu]).on("connectionError",this[gu]),this[st].set(r,n)),n.dispatch(A,t)}async[Hk](){let A=[];for(let t of this[st].values())A.push(t.close());this[st].clear(),await Promise.all(A)}async[Vk](A){let t=[];for(let r of this[st].values())t.push(r.destroy(A));this[st].clear(),await Promise.all(t)}};Eu.exports=lc});var Ic=p((iY,mu)=>{"use strict";var{kProxy:Qc,kClose:fu,kDestroy:du,kDispatch:Bu,kInterceptors:Xk}=Qe(),{URL:Nt}=y("node:url"),jk=fr(),wu=Cr(),yu=Ar(),{InvalidArgumentError:dr,RequestAbortedError:$k,SecureProxyConnectionError:eb}=Z(),uu=an(),pu=hr(),ci=Symbol("proxy agent"),gi=Symbol("proxy client"),it=Symbol("proxy headers"),Ec=Symbol("request tls settings"),Iu=Symbol("proxy tls settings"),hu=Symbol("connect endpoint function"),Cu=Symbol("tunnel proxy");function Ab(e){return e==="https:"?443:80}function tb(e,A){return new wu(e,A)}var rb=()=>{};function nb(e,A){return A.connections===1?new pu(e,A):new wu(e,A)}var Bc=class extends yu{#e;constructor(A,{headers:t={},connect:r,factory:n}){if(super(),!A)throw new dr("Proxy URL is mandatory");this[it]=t,n?this.#e=n(A,{connect:r}):this.#e=new pu(A,{connect:r})}[Bu](A,t){let r=t.onHeaders;t.onHeaders=function(o,a,g){if(o===407){typeof t.onError=="function"&&t.onError(new dr("Proxy Authentication Required (407)"));return}r&&r.call(this,o,a,g)};let{origin:n,path:s="/",headers:i={}}=A;if(A.path=n+s,!("host"in i)&&!("Host"in i)){let{host:o}=new Nt(n);i.host=o}return A.headers={...this[it],...i},this.#e[Bu](A,t)}async[fu](){return this.#e.close()}async[du](A){return this.#e.destroy(A)}},uc=class extends yu{constructor(A){if(super(),!A||typeof A=="object"&&!(A instanceof Nt)&&!A.uri)throw new dr("Proxy uri is mandatory");let{clientFactory:t=tb}=A;if(typeof t!="function")throw new dr("Proxy opts.clientFactory must be a function.");let{proxyTunnel:r=!0}=A,n=this.#e(A),{href:s,origin:i,port:o,protocol:a,username:g,password:l,hostname:c}=n;if(this[Qc]={uri:s,protocol:a},this[Xk]=A.interceptors?.ProxyAgent&&Array.isArray(A.interceptors.ProxyAgent)?A.interceptors.ProxyAgent:[],this[Ec]=A.requestTls,this[Iu]=A.proxyTls,this[it]=A.headers||{},this[Cu]=r,A.auth&&A.token)throw new dr("opts.auth cannot be used in combination with opts.token");A.auth?this[it]["proxy-authorization"]=`Basic ${A.auth}`:A.token?this[it]["proxy-authorization"]=A.token:g&&l&&(this[it]["proxy-authorization"]=`Basic ${Buffer.from(`${decodeURIComponent(g)}:${decodeURIComponent(l)}`).toString("base64")}`);let Q=uu({...A.proxyTls});this[hu]=uu({...A.requestTls});let B=A.factory||nb,E=(u,h)=>{let{protocol:I}=new Nt(u);return!this[Cu]&&I==="http:"&&this[Qc].protocol==="http:"?new Bc(this[Qc].uri,{headers:this[it],connect:Q,factory:B}):B(u,h)};this[gi]=t(n,{connect:Q}),this[ci]=new jk({...A,factory:E,connect:async(u,h)=>{let I=u.host;u.port||(I+=`:${Ab(u.protocol)}`);try{let{socket:C,statusCode:D}=await this[gi].connect({origin:i,port:o,path:I,signal:u.signal,headers:{...this[it],host:u.host},servername:this[Iu]?.servername||c});if(D!==200&&(C.on("error",rb).destroy(),h(new $k(`Proxy response (${D}) !== 200 when HTTP Tunneling`))),u.protocol!=="https:"){h(null,C);return}let f;this[Ec]?f=this[Ec].servername:f=u.servername,this[hu]({...u,servername:f,httpSocket:C},h)}catch(C){C.code==="ERR_TLS_CERT_ALTNAME_INVALID"?h(new eb(C)):h(C)}}})}dispatch(A,t){let r=sb(A.headers);if(ib(r),r&&!("host"in r)&&!("Host"in r)){let{host:n}=new Nt(A.origin);r.host=n}return this[ci].dispatch({...A,headers:r},t)}#e(A){return typeof A=="string"?new Nt(A):A instanceof Nt?A:new Nt(A.uri)}async[fu](){await this[ci].close(),await this[gi].close()}async[du](){await this[ci].destroy(),await this[gi].destroy()}};function sb(e){if(Array.isArray(e)){let A={};for(let t=0;t<e.length;t+=2)A[e[t]]=e[t+1];return A}return e}function ib(e){if(e&&Object.keys(e).find(t=>t.toLowerCase()==="proxy-authorization"))throw new dr("Proxy-Authorization should be sent in ProxyAgent constructor")}mu.exports=uc});var Su=p((oY,Ru)=>{"use strict";var ob=Ar(),{kClose:ab,kDestroy:cb,kClosed:Du,kDestroyed:ku,kDispatch:gb,kNoProxyAgent:Nn,kHttpProxyAgent:ot,kHttpsProxyAgent:Mt}=Qe(),bu=Ic(),lb=fr(),Qb={"http:":80,"https:":443},Fu=!1,hc=class extends ob{#e=null;#A=null;#t=null;constructor(A={}){super(),this.#t=A,Fu||(Fu=!0,process.emitWarning("EnvHttpProxyAgent is experimental, expect them to change at any time.",{code:"UNDICI-EHPA"}));let{httpProxy:t,httpsProxy:r,noProxy:n,...s}=A;this[Nn]=new lb(s);let i=t??process.env.http_proxy??process.env.HTTP_PROXY;i?this[ot]=new bu({...s,uri:i}):this[ot]=this[Nn];let o=r??process.env.https_proxy??process.env.HTTPS_PROXY;o?this[Mt]=new bu({...s,uri:o}):this[Mt]=this[ot],this.#r()}[gb](A,t){let r=new URL(A.origin);return this.#s(r).dispatch(A,t)}async[ab](){await this[Nn].close(),this[ot][Du]||await this[ot].close(),this[Mt][Du]||await this[Mt].close()}async[cb](A){await this[Nn].destroy(A),this[ot][ku]||await this[ot].destroy(A),this[Mt][ku]||await this[Mt].destroy(A)}#s(A){let{protocol:t,host:r,port:n}=A;return r=r.replace(/:\d*$/,"").toLowerCase(),n=Number.parseInt(n,10)||Qb[t]||0,this.#n(r,n)?t==="https:"?this[Mt]:this[ot]:this[Nn]}#n(A,t){if(this.#i&&this.#r(),this.#A.length===0)return!0;if(this.#e==="*")return!1;for(let r=0;r<this.#A.length;r++){let n=this.#A[r];if(!(n.port&&n.port!==t)){if(/^[.*]/.test(n.hostname)){if(A.endsWith(n.hostname.replace(/^\*/,"")))return!1}else if(A===n.hostname)return!1}}return!0}#r(){let A=this.#t.noProxy??this.#o,t=A.split(/[,\s]/),r=[];for(let n=0;n<t.length;n++){let s=t[n];if(!s)continue;let i=s.match(/^(.+):(\d+)$/);r.push({hostname:(i?i[1]:s).toLowerCase(),port:i?Number.parseInt(i[2],10):0})}this.#e=A,this.#A=r}get#i(){return this.#t.noProxy!==void 0?!1:this.#e!==this.#o}get#o(){return process.env.no_proxy??process.env.NO_PROXY??""}};Ru.exports=hc});var li=p((aY,Tu)=>{"use strict";var wr=y("node:assert"),{kRetryHandlerDefaultRetry:Nu}=Qe(),{RequestRetryError:yr}=Z(),{isDisturbed:Mu,parseHeaders:Eb,parseRangeHeader:Uu,wrapRequestBody:Bb}=v();function ub(e){let A=Date.now();return new Date(e).getTime()-A}function Lu(e,A,t,r){let n=e["content-length"];if(n==null||!Number.isFinite(A.start)||!Number.isFinite(A.end))return null;let s=Number(n),i=A.end-A.start+1;return!Number.isFinite(s)||s!==i?new yr("Content-Length mismatch",t,{headers:e,data:{count:r}}):null}var Cc=class e{constructor(A,t){let{retryOptions:r,...n}=A,{retry:s,maxRetries:i,maxTimeout:o,minTimeout:a,timeoutFactor:g,methods:l,errorCodes:c,retryAfter:Q,statusCodes:B}=r??{};this.dispatch=t.dispatch,this.handler=t.handler,this.opts={...n,body:Bb(A.body)},this.abort=null,this.aborted=!1,this.retryOpts={retry:s??e[Nu],retryAfter:Q??!0,maxTimeout:o??30*1e3,minTimeout:a??500,timeoutFactor:g??2,maxRetries:i??5,methods:l??["GET","HEAD","OPTIONS","PUT","DELETE","TRACE"],statusCodes:B??[500,502,503,504,429],errorCodes:c??["ECONNRESET","ECONNREFUSED","ENOTFOUND","ENETDOWN","ENETUNREACH","EHOSTDOWN","EHOSTUNREACH","EPIPE","UND_ERR_SOCKET"]},this.retryCount=0,this.retryCountCheckpoint=0,this.start=0,this.end=null,this.etag=null,this.resume=null,this.handler.onConnect(E=>{this.aborted=!0,this.abort?this.abort(E):this.reason=E})}onRequestSent(){this.handler.onRequestSent&&this.handler.onRequestSent()}onUpgrade(A,t,r){this.handler.onUpgrade&&this.handler.onUpgrade(A,t,r)}onConnect(A){this.aborted?A(this.reason):this.abort=A}onBodySent(A){if(this.handler.onBodySent)return this.handler.onBodySent(A)}static[Nu](A,{state:t,opts:r},n){let{statusCode:s,code:i,headers:o}=A,{method:a,retryOptions:g}=r,{maxRetries:l,minTimeout:c,maxTimeout:Q,timeoutFactor:B,statusCodes:E,errorCodes:u,methods:h}=g,{counter:I}=t;if(i&&i!=="UND_ERR_REQ_RETRY"&&!u.includes(i)){n(A);return}if(Array.isArray(h)&&!h.includes(a)){n(A);return}if(s!=null&&Array.isArray(E)&&!E.includes(s)){n(A);return}if(I>l){n(A);return}let C=o?.["retry-after"];C&&(C=Number(C),C=Number.isNaN(C)?ub(C):C*1e3);let D=C>0?Math.min(C,Q):Math.min(c*B**(I-1),Q);setTimeout(()=>n(null),D)}onHeaders(A,t,r,n){let s=Eb(t);if(this.retryCount+=1,A>=300)return this.retryOpts.statusCodes.includes(A)===!1?this.handler.onHeaders(A,t,r,n):(this.abort(new yr("Request failed",A,{headers:s,data:{count:this.retryCount}})),!1);if(this.resume!=null){if(this.resume=null,A!==206&&(this.start>0||A!==200))return this.abort(new yr("server does not support the range header and the payload was partially consumed",A,{headers:s,data:{count:this.retryCount}})),!1;let o=Uu(s["content-range"]);if(!o)return this.abort(new yr("Content-Range mismatch",A,{headers:s,data:{count:this.retryCount}})),!1;if(this.etag!=null&&this.etag!==s.etag)return this.abort(new yr("ETag mismatch",A,{headers:s,data:{count:this.retryCount}})),!1;let a=Lu(s,o,A,this.retryCount);if(a!=null)return this.abort(a),!1;let{start:g,size:l,end:c=l-1}=o;return wr(this.start===g,"content-range mismatch"),wr(this.end==null||this.end===c,"content-range mismatch"),this.resume=r,!0}if(this.end==null){if(A===206){let o=Uu(s["content-range"]);if(o==null)return this.handler.onHeaders(A,t,r,n);let a=Lu(s,o,A,this.retryCount);if(a!=null)return this.abort(a),!1;let{start:g,size:l,end:c=l-1}=o;wr(g!=null&&Number.isFinite(g),"content-range mismatch"),wr(c!=null&&Number.isFinite(c),"invalid content-length"),this.start=g,this.end=c}if(this.end==null){let o=s["content-length"];this.end=o!=null?Number(o)-1:null}return wr(Number.isFinite(this.start)),wr(this.end==null||Number.isFinite(this.end),"invalid content-length"),this.resume=r,this.etag=s.etag!=null?s.etag:null,this.etag!=null&&this.etag.startsWith("W/")&&(this.etag=null),this.handler.onHeaders(A,t,r,n)}let i=new yr("Request failed",A,{headers:s,data:{count:this.retryCount}});return this.abort(i),!1}onData(A){return this.start+=A.length,this.handler.onData(A)}onComplete(A){return this.retryCount=0,this.handler.onComplete(A)}onError(A){if(this.aborted||Mu(this.opts.body))return this.handler.onError(A);this.retryCount-this.retryCountCheckpoint>0?this.retryCount=this.retryCountCheckpoint+(this.retryCount-this.retryCountCheckpoint):this.retryCount+=1,this.retryOpts.retry(A,{state:{counter:this.retryCount},opts:{retryOptions:this.retryOpts,...this.opts}},t.bind(this));function t(r){if(r!=null||this.aborted||Mu(this.opts.body))return this.handler.onError(r);if(this.start!==0){let n={range:`bytes=${this.start}-${this.end??""}`};this.etag!=null&&(n["if-match"]=this.etag),this.opts={...this.opts,headers:{...this.opts.headers,...n}}}try{this.retryCountCheckpoint=this.retryCount,this.dispatch(this.opts,this)}catch(n){this.handler.onError(n)}}}};Tu.exports=Cc});var Yu=p((cY,xu)=>{"use strict";var Ib=sn(),hb=li(),fc=class extends Ib{#e=null;#A=null;constructor(A,t={}){super(t),this.#e=A,this.#A=t}dispatch(A,t){let r=new hb({...A,retryOptions:this.#A},{dispatch:this.#e.dispatch.bind(this.#e),handler:t});return this.#e.dispatch(A,r)}close(){return this.#e.close()}destroy(){return this.#e.destroy()}};xu.exports=fc});var Dc=p((gY,Ou)=>{"use strict";var vu=y("node:assert"),{Readable:Cb}=y("node:stream"),{RequestAbortedError:qu,NotSupportedError:fb,InvalidArgumentError:db,AbortError:dc}=Z(),Wu=v(),{ReadableStreamFrom:wb}=v(),Ze=Symbol("kConsume"),Mn=Symbol("kReading"),at=Symbol("kBody"),Gu=Symbol("kAbort"),Pu=Symbol("kContentType"),Ju=Symbol("kContentLength"),yb=()=>{},wc=class extends Cb{constructor({resume:A,abort:t,contentType:r="",contentLength:n,highWaterMark:s=64*1024}){super({autoDestroy:!0,read:A,highWaterMark:s}),this._readableState.dataEmitted=!1,this[Gu]=t,this[Ze]=null,this[at]=null,this[Pu]=r,this[Ju]=n,this[Mn]=!1}destroy(A){return!A&&!this._readableState.endEmitted&&(A=new qu),A&&this[Gu](),super.destroy(A)}_destroy(A,t){this[Mn]?t(A):setImmediate(()=>{t(A)})}on(A,...t){return(A==="data"||A==="readable")&&(this[Mn]=!0),super.on(A,...t)}addListener(A,...t){return this.on(A,...t)}off(A,...t){let r=super.off(A,...t);return(A==="data"||A==="readable")&&(this[Mn]=this.listenerCount("data")>0||this.listenerCount("readable")>0),r}removeListener(A,...t){return this.off(A,...t)}push(A){return this[Ze]&&A!==null?(pc(this[Ze],A),this[Mn]?super.push(A):!0):super.push(A)}async text(){return Un(this,"text")}async json(){return Un(this,"json")}async blob(){return Un(this,"blob")}async bytes(){return Un(this,"bytes")}async arrayBuffer(){return Un(this,"arrayBuffer")}async formData(){throw new fb}get bodyUsed(){return Wu.isDisturbed(this)}get body(){return this[at]||(this[at]=wb(this),this[Ze]&&(this[at].getReader(),vu(this[at].locked))),this[at]}async dump(A){let t=Number.isFinite(A?.limit)?A.limit:131072,r=A?.signal;if(r!=null&&(typeof r!="object"||!("aborted"in r)))throw new db("signal must be an AbortSignal");return r?.throwIfAborted(),this._readableState.closeEmitted?null:await new Promise((n,s)=>{this[Ju]>t&&this.destroy(new dc);let i=()=>{this.destroy(r.reason??new dc)};r?.addEventListener("abort",i),this.on("close",function(){r?.removeEventListener("abort",i),r?.aborted?s(r.reason??new dc):n(null)}).on("error",yb).on("data",function(o){t-=o.length,t<=0&&this.destroy()}).resume()})}};function pb(e){return e[at]&&e[at].locked===!0||e[Ze]}function mb(e){return Wu.isDisturbed(e)||pb(e)}async function Un(e,A){return vu(!e[Ze]),new Promise((t,r)=>{if(mb(e)){let n=e._readableState;n.destroyed&&n.closeEmitted===!1?e.on("error",s=>{r(s)}).on("close",()=>{r(new TypeError("unusable"))}):r(n.errored??new TypeError("unusable"))}else queueMicrotask(()=>{e[Ze]={type:A,stream:e,resolve:t,reject:r,length:0,body:[]},e.on("error",function(n){mc(this[Ze],n)}).on("close",function(){this[Ze].body!==null&&mc(this[Ze],new qu)}),Db(e[Ze])})})}function Db(e){if(e.body===null)return;let{_readableState:A}=e.stream;if(A.bufferIndex){let t=A.bufferIndex,r=A.buffer.length;for(let n=t;n<r;n++)pc(e,A.buffer[n])}else for(let t of A.buffer)pc(e,t);for(A.endEmitted?Vu(this[Ze]):e.stream.on("end",function(){Vu(this[Ze])}),e.stream.resume();e.stream.read()!=null;);}function yc(e,A){if(e.length===0||A===0)return"";let t=e.length===1?e[0]:Buffer.concat(e,A),r=t.length,n=r>2&&t[0]===239&&t[1]===187&&t[2]===191?3:0;return t.utf8Slice(n,r)}function Hu(e,A){if(e.length===0||A===0)return new Uint8Array(0);if(e.length===1)return new Uint8Array(e[0]);let t=new Uint8Array(Buffer.allocUnsafeSlow(A).buffer),r=0;for(let n=0;n<e.length;++n){let s=e[n];t.set(s,r),r+=s.length}return t}function Vu(e){let{type:A,body:t,resolve:r,stream:n,length:s}=e;try{A==="text"?r(yc(t,s)):A==="json"?r(JSON.parse(yc(t,s))):A==="arrayBuffer"?r(Hu(t,s).buffer):A==="blob"?r(new Blob(t,{type:n[Pu]})):A==="bytes"&&r(Hu(t,s)),mc(e)}catch(i){n.destroy(i)}}function pc(e,A){e.length+=A.length,e.body.push(A)}function mc(e,A){e.body!==null&&(A?e.reject(A):e.resolve(),e.type=null,e.stream=null,e.resolve=null,e.reject=null,e.length=0,e.body=null)}Ou.exports={Readable:wc,chunksDecode:yc}});var kc=p((lY,Xu)=>{var kb=y("node:assert"),{ResponseStatusCodeError:zu}=Z(),{chunksDecode:Zu}=Dc(),bb=128*1024;async function Fb({callback:e,body:A,contentType:t,statusCode:r,statusMessage:n,headers:s}){kb(A);let i=[],o=0;try{for await(let c of A)if(i.push(c),o+=c.length,o>bb){i=[],o=0;break}}catch{i=[],o=0}let a=`Response status code ${r}${n?`: ${n}`:""}`;if(r===204||!t||!o){queueMicrotask(()=>e(new zu(a,r,s)));return}let g=Error.stackTraceLimit;Error.stackTraceLimit=0;let l;try{_u(t)?l=JSON.parse(Zu(i,o)):Ku(t)&&(l=Zu(i,o))}catch{}finally{Error.stackTraceLimit=g}queueMicrotask(()=>e(new zu(a,r,s,l)))}var _u=e=>e.length>15&&e[11]==="/"&&e[0]==="a"&&e[1]==="p"&&e[2]==="p"&&e[3]==="l"&&e[4]==="i"&&e[5]==="c"&&e[6]==="a"&&e[7]==="t"&&e[8]==="i"&&e[9]==="o"&&e[10]==="n"&&e[12]==="j"&&e[13]==="s"&&e[14]==="o"&&e[15]==="n",Ku=e=>e.length>4&&e[4]==="/"&&e[0]==="t"&&e[1]==="e"&&e[2]==="x"&&e[3]==="t";Xu.exports={getResolveErrorBodyCallback:Fb,isContentTypeApplicationJson:_u,isContentTypeText:Ku}});var eI=p((QY,bc)=>{"use strict";var Rb=y("node:assert"),{Readable:Sb}=Dc(),{InvalidArgumentError:pr,RequestAbortedError:ju}=Z(),_e=v(),{getResolveErrorBodyCallback:Nb}=kc(),{AsyncResource:Mb}=y("node:async_hooks"),Qi=class extends Mb{constructor(A,t){if(!A||typeof A!="object")throw new pr("invalid opts");let{signal:r,method:n,opaque:s,body:i,onInfo:o,responseHeaders:a,throwOnError:g,highWaterMark:l}=A;try{if(typeof t!="function")throw new pr("invalid callback");if(l&&(typeof l!="number"||l<0))throw new pr("invalid highWaterMark");if(r&&typeof r.on!="function"&&typeof r.addEventListener!="function")throw new pr("signal must be an EventEmitter or EventTarget");if(n==="CONNECT")throw new pr("invalid method");if(o&&typeof o!="function")throw new pr("invalid onInfo callback");super("UNDICI_REQUEST")}catch(c){throw _e.isStream(i)&&_e.destroy(i.on("error",_e.nop),c),c}this.method=n,this.responseHeaders=a||null,this.opaque=s||null,this.callback=t,this.res=null,this.abort=null,this.body=i,this.trailers={},this.context=null,this.onInfo=o||null,this.throwOnError=g,this.highWaterMark=l,this.signal=r,this.reason=null,this.removeAbortListener=null,_e.isStream(i)&&i.on("error",c=>{this.onError(c)}),this.signal&&(this.signal.aborted?this.reason=this.signal.reason??new ju:this.removeAbortListener=_e.addAbortListener(this.signal,()=>{this.reason=this.signal.reason??new ju,this.res?_e.destroy(this.res.on("error",_e.nop),this.reason):this.abort&&this.abort(this.reason),this.removeAbortListener&&(this.res?.off("close",this.removeAbortListener),this.removeAbortListener(),this.removeAbortListener=null)}))}onConnect(A,t){if(this.reason){A(this.reason);return}Rb(this.callback),this.abort=A,this.context=t}onHeaders(A,t,r,n){let{callback:s,opaque:i,abort:o,context:a,responseHeaders:g,highWaterMark:l}=this,c=g==="raw"?_e.parseRawHeaders(t):_e.parseHeaders(t);if(A<200){this.onInfo&&this.onInfo({statusCode:A,headers:c});return}let Q=g==="raw"?_e.parseHeaders(t):c,B=Q["content-type"],E=Q["content-length"],u=new Sb({resume:r,abort:o,contentType:B,contentLength:this.method!=="HEAD"&&E?Number(E):null,highWaterMark:l});this.removeAbortListener&&u.on("close",this.removeAbortListener),this.callback=null,this.res=u,s!==null&&(this.throwOnError&&A>=400?this.runInAsyncScope(Nb,null,{callback:s,body:u,contentType:B,statusCode:A,statusMessage:n,headers:c}):this.runInAsyncScope(s,null,null,{statusCode:A,headers:c,trailers:this.trailers,opaque:i,body:u,context:a}))}onData(A){return this.res.push(A)}onComplete(A){_e.parseHeaders(A,this.trailers),this.res.push(null)}onError(A){let{res:t,callback:r,body:n,opaque:s}=this;r&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(r,null,A,{opaque:s})})),t&&(this.res=null,queueMicrotask(()=>{_e.destroy(t,A)})),n&&(this.body=null,_e.destroy(n,A)),this.removeAbortListener&&(t?.off("close",this.removeAbortListener),this.removeAbortListener(),this.removeAbortListener=null)}};function $u(e,A){if(A===void 0)return new Promise((t,r)=>{$u.call(this,e,(n,s)=>n?r(n):t(s))});try{this.dispatch(e,new Qi(e,A))}catch(t){if(typeof A!="function")throw t;let r=e?.opaque;queueMicrotask(()=>A(t,{opaque:r}))}}bc.exports=$u;bc.exports.RequestHandler=Qi});var Ln=p((EY,rI)=>{var{addAbortListener:Ub}=v(),{RequestAbortedError:Lb}=Z(),mr=Symbol("kListener"),SA=Symbol("kSignal");function AI(e){e.abort?e.abort(e[SA]?.reason):e.reason=e[SA]?.reason??new Lb,tI(e)}function Tb(e,A){if(e.reason=null,e[SA]=null,e[mr]=null,!!A){if(A.aborted){AI(e);return}e[SA]=A,e[mr]=()=>{AI(e)},Ub(e[SA],e[mr])}}function tI(e){e[SA]&&("removeEventListener"in e[SA]?e[SA].removeEventListener("abort",e[mr]):e[SA].removeListener("abort",e[mr]),e[SA]=null,e[mr]=null)}rI.exports={addSignal:Tb,removeSignal:tI}});var oI=p((BY,iI)=>{"use strict";var xb=y("node:assert"),{finished:Yb,PassThrough:Gb}=y("node:stream"),{InvalidArgumentError:Dr,InvalidReturnValueError:Jb}=Z(),uA=v(),{getResolveErrorBodyCallback:Hb}=kc(),{AsyncResource:Vb}=y("node:async_hooks"),{addSignal:vb,removeSignal:nI}=Ln(),Fc=class extends Vb{constructor(A,t,r){if(!A||typeof A!="object")throw new Dr("invalid opts");let{signal:n,method:s,opaque:i,body:o,onInfo:a,responseHeaders:g,throwOnError:l}=A;try{if(typeof r!="function")throw new Dr("invalid callback");if(typeof t!="function")throw new Dr("invalid factory");if(n&&typeof n.on!="function"&&typeof n.addEventListener!="function")throw new Dr("signal must be an EventEmitter or EventTarget");if(s==="CONNECT")throw new Dr("invalid method");if(a&&typeof a!="function")throw new Dr("invalid onInfo callback");super("UNDICI_STREAM")}catch(c){throw uA.isStream(o)&&uA.destroy(o.on("error",uA.nop),c),c}this.responseHeaders=g||null,this.opaque=i||null,this.factory=t,this.callback=r,this.res=null,this.abort=null,this.context=null,this.trailers=null,this.body=o,this.onInfo=a||null,this.throwOnError=l||!1,uA.isStream(o)&&o.on("error",c=>{this.onError(c)}),vb(this,n)}onConnect(A,t){if(this.reason){A(this.reason);return}xb(this.callback),this.abort=A,this.context=t}onHeaders(A,t,r,n){let{factory:s,opaque:i,context:o,callback:a,responseHeaders:g}=this,l=g==="raw"?uA.parseRawHeaders(t):uA.parseHeaders(t);if(A<200){this.onInfo&&this.onInfo({statusCode:A,headers:l});return}this.factory=null;let c;if(this.throwOnError&&A>=400){let E=(g==="raw"?uA.parseHeaders(t):l)["content-type"];c=new Gb,this.callback=null,this.runInAsyncScope(Hb,null,{callback:a,body:c,contentType:E,statusCode:A,statusMessage:n,headers:l})}else{if(s===null)return;if(c=this.runInAsyncScope(s,null,{statusCode:A,headers:l,opaque:i,context:o}),!c||typeof c.write!="function"||typeof c.end!="function"||typeof c.on!="function")throw new Jb("expected Writable");Yb(c,{readable:!1},B=>{let{callback:E,res:u,opaque:h,trailers:I,abort:C}=this;this.res=null,(B||!u.readable)&&uA.destroy(u,B),this.callback=null,this.runInAsyncScope(E,null,B||null,{opaque:h,trailers:I}),B&&C()})}return c.on("drain",r),this.res=c,(c.writableNeedDrain!==void 0?c.writableNeedDrain:c._writableState?.needDrain)!==!0}onData(A){let{res:t}=this;return t?t.write(A):!0}onComplete(A){let{res:t}=this;nI(this),t&&(this.trailers=uA.parseHeaders(A),t.end())}onError(A){let{res:t,callback:r,opaque:n,body:s}=this;nI(this),this.factory=null,t?(this.res=null,uA.destroy(t,A)):r&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(r,null,A,{opaque:n})})),s&&(this.body=null,uA.destroy(s,A))}};function sI(e,A,t){if(t===void 0)return new Promise((r,n)=>{sI.call(this,e,A,(s,i)=>s?n(s):r(i))});try{this.dispatch(e,new Fc(e,A,t))}catch(r){if(typeof t!="function")throw r;let n=e?.opaque;queueMicrotask(()=>t(r,{opaque:n}))}}iI.exports=sI});var lI=p((uY,gI)=>{"use strict";var{Readable:cI,Duplex:qb,PassThrough:Wb}=y("node:stream"),{InvalidArgumentError:Tn,InvalidReturnValueError:Pb,RequestAbortedError:Rc}=Z(),iA=v(),{AsyncResource:Ob}=y("node:async_hooks"),{addSignal:zb,removeSignal:Zb}=Ln(),aI=y("node:assert"),kr=Symbol("resume"),Sc=class extends cI{constructor(){super({autoDestroy:!0}),this[kr]=null}_read(){let{[kr]:A}=this;A&&(this[kr]=null,A())}_destroy(A,t){this._read(),t(A)}},Nc=class extends cI{constructor(A){super({autoDestroy:!0}),this[kr]=A}_read(){this[kr]()}_destroy(A,t){!A&&!this._readableState.endEmitted&&(A=new Rc),t(A)}},Mc=class extends Ob{constructor(A,t){if(!A||typeof A!="object")throw new Tn("invalid opts");if(typeof t!="function")throw new Tn("invalid handler");let{signal:r,method:n,opaque:s,onInfo:i,responseHeaders:o}=A;if(r&&typeof r.on!="function"&&typeof r.addEventListener!="function")throw new Tn("signal must be an EventEmitter or EventTarget");if(n==="CONNECT")throw new Tn("invalid method");if(i&&typeof i!="function")throw new Tn("invalid onInfo callback");super("UNDICI_PIPELINE"),this.opaque=s||null,this.responseHeaders=o||null,this.handler=t,this.abort=null,this.context=null,this.onInfo=i||null,this.req=new Sc().on("error",iA.nop),this.ret=new qb({readableObjectMode:A.objectMode,autoDestroy:!0,read:()=>{let{body:a}=this;a?.resume&&a.resume()},write:(a,g,l)=>{let{req:c}=this;c.push(a,g)||c._readableState.destroyed?l():c[kr]=l},destroy:(a,g)=>{let{body:l,req:c,res:Q,ret:B,abort:E}=this;!a&&!B._readableState.endEmitted&&(a=new Rc),E&&a&&E(),iA.destroy(l,a),iA.destroy(c,a),iA.destroy(Q,a),Zb(this),g(a)}}).on("prefinish",()=>{let{req:a}=this;a.push(null)}),this.res=null,zb(this,r)}onConnect(A,t){let{ret:r,res:n}=this;if(this.reason){A(this.reason);return}aI(!n,"pipeline cannot be retried"),aI(!r.destroyed),this.abort=A,this.context=t}onHeaders(A,t,r){let{opaque:n,handler:s,context:i}=this;if(A<200){if(this.onInfo){let a=this.responseHeaders==="raw"?iA.parseRawHeaders(t):iA.parseHeaders(t);this.onInfo({statusCode:A,headers:a})}return}this.res=new Nc(r);let o;try{this.handler=null;let a=this.responseHeaders==="raw"?iA.parseRawHeaders(t):iA.parseHeaders(t);o=this.runInAsyncScope(s,null,{statusCode:A,headers:a,opaque:n,body:this.res,context:i})}catch(a){throw this.res.on("error",iA.nop),a}if(!o||typeof o.on!="function")throw new Pb("expected Readable");o.on("data",a=>{let{ret:g,body:l}=this;!g.push(a)&&l.pause&&l.pause()}).on("error",a=>{let{ret:g}=this;iA.destroy(g,a)}).on("end",()=>{let{ret:a}=this;a.push(null)}).on("close",()=>{let{ret:a}=this;a._readableState.ended||iA.destroy(a,new Rc)}),this.body=o}onData(A){let{res:t}=this;return t.push(A)}onComplete(A){let{res:t}=this;t.push(null)}onError(A){let{ret:t}=this;this.handler=null,iA.destroy(t,A)}};function _b(e,A){try{let t=new Mc(e,A);return this.dispatch({...e,body:t.req},t),t.ret}catch(t){return new Wb().destroy(t)}}gI.exports=_b});var hI=p((IY,II)=>{"use strict";var{InvalidArgumentError:Uc,SocketError:Kb}=Z(),{AsyncResource:Xb}=y("node:async_hooks"),QI=v(),{addSignal:jb,removeSignal:EI}=Ln(),BI=y("node:assert"),Lc=class extends Xb{constructor(A,t){if(!A||typeof A!="object")throw new Uc("invalid opts");if(typeof t!="function")throw new Uc("invalid callback");let{signal:r,opaque:n,responseHeaders:s}=A;if(r&&typeof r.on!="function"&&typeof r.addEventListener!="function")throw new Uc("signal must be an EventEmitter or EventTarget");super("UNDICI_UPGRADE"),this.responseHeaders=s||null,this.opaque=n||null,this.callback=t,this.abort=null,this.context=null,jb(this,r)}onConnect(A,t){if(this.reason){A(this.reason);return}BI(this.callback),this.abort=A,this.context=null}onHeaders(){throw new Kb("bad upgrade",null)}onUpgrade(A,t,r){BI(A===101);let{callback:n,opaque:s,context:i}=this;EI(this),this.callback=null;let o=this.responseHeaders==="raw"?QI.parseRawHeaders(t):QI.parseHeaders(t);this.runInAsyncScope(n,null,null,{headers:o,socket:r,opaque:s,context:i})}onError(A){let{callback:t,opaque:r}=this;EI(this),t&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(t,null,A,{opaque:r})}))}};function uI(e,A){if(A===void 0)return new Promise((t,r)=>{uI.call(this,e,(n,s)=>n?r(n):t(s))});try{let t=new Lc(e,A);this.dispatch({...e,method:e.method||"GET",upgrade:e.protocol||"Websocket"},t)}catch(t){if(typeof A!="function")throw t;let r=e?.opaque;queueMicrotask(()=>A(t,{opaque:r}))}}II.exports=uI});var yI=p((hY,wI)=>{"use strict";var $b=y("node:assert"),{AsyncResource:eF}=y("node:async_hooks"),{InvalidArgumentError:Tc,SocketError:AF}=Z(),CI=v(),{addSignal:tF,removeSignal:fI}=Ln(),xc=class extends eF{constructor(A,t){if(!A||typeof A!="object")throw new Tc("invalid opts");if(typeof t!="function")throw new Tc("invalid callback");let{signal:r,opaque:n,responseHeaders:s}=A;if(r&&typeof r.on!="function"&&typeof r.addEventListener!="function")throw new Tc("signal must be an EventEmitter or EventTarget");super("UNDICI_CONNECT"),this.opaque=n||null,this.responseHeaders=s||null,this.callback=t,this.abort=null,tF(this,r)}onConnect(A,t){if(this.reason){A(this.reason);return}$b(this.callback),this.abort=A,this.context=t}onHeaders(){throw new AF("bad connect",null)}onUpgrade(A,t,r){let{callback:n,opaque:s,context:i}=this;fI(this),this.callback=null;let o=t;o!=null&&(o=this.responseHeaders==="raw"?CI.parseRawHeaders(t):CI.parseHeaders(t)),this.runInAsyncScope(n,null,null,{statusCode:A,headers:o,socket:r,opaque:s,context:i})}onError(A){let{callback:t,opaque:r}=this;fI(this),t&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(t,null,A,{opaque:r})}))}};function dI(e,A){if(A===void 0)return new Promise((t,r)=>{dI.call(this,e,(n,s)=>n?r(n):t(s))});try{let t=new xc(e,A);this.dispatch({...e,method:"CONNECT"},t)}catch(t){if(typeof A!="function")throw t;let r=e?.opaque;queueMicrotask(()=>A(t,{opaque:r}))}}wI.exports=dI});var pI=p((CY,br)=>{"use strict";br.exports.request=eI();br.exports.stream=oI();br.exports.pipeline=lI();br.exports.upgrade=hI();br.exports.connect=yI()});var Gc=p((fY,DI)=>{"use strict";var{UndiciError:rF}=Z(),mI=Symbol.for("undici.error.UND_MOCK_ERR_MOCK_NOT_MATCHED"),Yc=class e extends rF{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="MockNotMatchedError",this.message=A||"The request does not match any registered mock dispatches",this.code="UND_MOCK_ERR_MOCK_NOT_MATCHED"}static[Symbol.hasInstance](A){return A&&A[mI]===!0}[mI]=!0};DI.exports={MockNotMatchedError:Yc}});var Fr=p((dY,kI)=>{"use strict";kI.exports={kAgent:Symbol("agent"),kOptions:Symbol("options"),kFactory:Symbol("factory"),kDispatches:Symbol("dispatches"),kDispatchKey:Symbol("dispatch key"),kDefaultHeaders:Symbol("default headers"),kDefaultTrailers:Symbol("default trailers"),kContentLength:Symbol("content length"),kMockAgent:Symbol("mock agent"),kMockAgentSet:Symbol("mock agent set"),kMockAgentGet:Symbol("mock agent get"),kMockDispatch:Symbol("mock dispatch"),kClose:Symbol("close"),kOriginalClose:Symbol("original agent close"),kOrigin:Symbol("origin"),kIsMockActive:Symbol("is mock active"),kNetConnect:Symbol("net connect"),kGetNetConnect:Symbol("get net connect"),kConnected:Symbol("connected")}});var xn=p((wY,YI)=>{"use strict";var{MockNotMatchedError:Ut}=Gc(),{kDispatches:Ei,kMockAgent:nF,kOriginalDispatch:sF,kOrigin:iF,kGetNetConnect:oF}=Fr(),{buildURL:aF}=v(),{STATUS_CODES:cF}=y("node:http"),{types:{isPromise:gF}}=y("node:util");function OA(e,A){return typeof e=="string"?e===A:e instanceof RegExp?e.test(A):typeof e=="function"?e(A)===!0:!1}function FI(e){return Object.fromEntries(Object.entries(e).map(([A,t])=>[A.toLocaleLowerCase(),t]))}function RI(e,A){if(Array.isArray(e)){for(let t=0;t<e.length;t+=2)if(e[t].toLocaleLowerCase()===A.toLocaleLowerCase())return e[t+1];return}else return typeof e.get=="function"?e.get(A):FI(e)[A.toLocaleLowerCase()]}function Vc(e){let A=e.slice(),t=[];for(let r=0;r<A.length;r+=2)t.push([A[r],A[r+1]]);return Object.fromEntries(t)}function SI(e,A){if(typeof e.headers=="function")return Array.isArray(A)&&(A=Vc(A)),e.headers(A?FI(A):{});if(typeof e.headers>"u")return!0;if(typeof A!="object"||typeof e.headers!="object")return!1;for(let[t,r]of Object.entries(e.headers)){let n=RI(A,t);if(!OA(r,n))return!1}return!0}function bI(e){if(typeof e!="string")return e;let A=e.split("?");if(A.length!==2)return e;let t=new URLSearchParams(A.pop());return t.sort(),[...A,t.toString()].join("?")}function lF(e,{path:A,method:t,body:r,headers:n}){let s=OA(e.path,A),i=OA(e.method,t),o=typeof e.body<"u"?OA(e.body,r):!0,a=SI(e,n);return s&&i&&o&&a}function NI(e){return Buffer.isBuffer(e)||e instanceof Uint8Array||e instanceof ArrayBuffer?e:typeof e=="object"?JSON.stringify(e):e.toString()}function MI(e,A){let t=A.query?aF(A.path,A.query):A.path,r=typeof t=="string"?bI(t):t,n=e.filter(({consumed:s})=>!s).filter(({path:s})=>OA(bI(s),r));if(n.length===0)throw new Ut(`Mock dispatch not matched for path '${r}'`);if(n=n.filter(({method:s})=>OA(s,A.method)),n.length===0)throw new Ut(`Mock dispatch not matched for method '${A.method}' on path '${r}'`);if(n=n.filter(({body:s})=>typeof s<"u"?OA(s,A.body):!0),n.length===0)throw new Ut(`Mock dispatch not matched for body '${A.body}' on path '${r}'`);if(n=n.filter(s=>SI(s,A.headers)),n.length===0){let s=typeof A.headers=="object"?JSON.stringify(A.headers):A.headers;throw new Ut(`Mock dispatch not matched for headers '${s}' on path '${r}'`)}return n[0]}function QF(e,A,t){let r={timesInvoked:0,times:1,persist:!1,consumed:!1},n=typeof t=="function"?{callback:t}:{...t},s={...r,...A,pending:!0,data:{error:null,...n}};return e.push(s),s}function Jc(e,A){let t=e.findIndex(r=>r.consumed?lF(r,A):!1);t!==-1&&e.splice(t,1)}function UI(e){let{path:A,method:t,body:r,headers:n,query:s}=e;return{path:A,method:t,body:r,headers:n,query:s}}function Hc(e){let A=Object.keys(e),t=[];for(let r=0;r<A.length;++r){let n=A[r],s=e[n],i=Buffer.from(`${n}`);if(Array.isArray(s))for(let o=0;o<s.length;++o)t.push(i,Buffer.from(`${s[o]}`));else t.push(i,Buffer.from(`${s}`))}return t}function LI(e){return cF[e]||"unknown"}async function EF(e){let A=[];for await(let t of e)A.push(t);return Buffer.concat(A).toString("utf8")}function TI(e,A){let t=UI(e),r=MI(this[Ei],t);r.timesInvoked++,r.data.callback&&(r.data={...r.data,...r.data.callback(e)});let{data:{statusCode:n,data:s,headers:i,trailers:o,error:a},delay:g,persist:l}=r,{timesInvoked:c,times:Q}=r;if(r.consumed=!l&&c>=Q,r.pending=c<Q,a!==null)return Jc(this[Ei],t),A.onError(a),!0;typeof g=="number"&&g>0?setTimeout(()=>{B(this[Ei])},g):B(this[Ei]);function B(u,h=s){let I=Array.isArray(e.headers)?Vc(e.headers):e.headers,C=typeof h=="function"?h({...e,headers:I}):h;if(gF(C)){C.then(S=>B(u,S));return}let D=NI(C),f=Hc(i),R=Hc(o);A.onConnect?.(S=>A.onError(S),null),A.onHeaders?.(n,f,E,LI(n)),A.onData?.(Buffer.from(D)),A.onComplete?.(R),Jc(u,t)}function E(){}return!0}function BF(){let e=this[nF],A=this[iF],t=this[sF];return function(n,s){if(e.isMockActive)try{TI.call(this,n,s)}catch(i){if(i instanceof Ut){let o=e[oF]();if(o===!1)throw new Ut(`${i.message}: subsequent request to origin ${A} was not allowed (net.connect disabled)`);if(xI(o,A))t.call(this,n,s);else throw new Ut(`${i.message}: subsequent request to origin ${A} was not allowed (net.connect is not enabled for this origin)`)}else throw i}else t.call(this,n,s)}}function xI(e,A){let t=new URL(A);return e===!0?!0:!!(Array.isArray(e)&&e.some(r=>OA(r,t.host)))}function uF(e){if(e){let{agent:A,...t}=e;return t}}YI.exports={getResponseData:NI,getMockDispatch:MI,addMockDispatch:QF,deleteMockDispatch:Jc,buildKey:UI,generateKeyValues:Hc,matchValue:OA,getResponse:EF,getStatusText:LI,mockDispatch:TI,buildMockDispatch:BF,checkNetConnect:xI,buildMockOptions:uF,getHeaderByName:RI,buildHeadersFromArray:Vc}});var Zc=p((yY,zc)=>{"use strict";var{getResponseData:IF,buildKey:hF,addMockDispatch:vc}=xn(),{kDispatches:Bi,kDispatchKey:ui,kDefaultHeaders:qc,kDefaultTrailers:Wc,kContentLength:Pc,kMockDispatch:Ii}=Fr(),{InvalidArgumentError:NA}=Z(),{buildURL:CF}=v(),Rr=class{constructor(A){this[Ii]=A}delay(A){if(typeof A!="number"||!Number.isInteger(A)||A<=0)throw new NA("waitInMs must be a valid integer > 0");return this[Ii].delay=A,this}persist(){return this[Ii].persist=!0,this}times(A){if(typeof A!="number"||!Number.isInteger(A)||A<=0)throw new NA("repeatTimes must be a valid integer > 0");return this[Ii].times=A,this}},Oc=class{constructor(A,t){if(typeof A!="object")throw new NA("opts must be an object");if(typeof A.path>"u")throw new NA("opts.path must be defined");if(typeof A.method>"u"&&(A.method="GET"),typeof A.path=="string")if(A.query)A.path=CF(A.path,A.query);else{let r=new URL(A.path,"data://");A.path=r.pathname+r.search}typeof A.method=="string"&&(A.method=A.method.toUpperCase()),this[ui]=hF(A),this[Bi]=t,this[qc]={},this[Wc]={},this[Pc]=!1}createMockScopeDispatchData({statusCode:A,data:t,responseOptions:r}){let n=IF(t),s=this[Pc]?{"content-length":n.length}:{},i={...this[qc],...s,...r.headers},o={...this[Wc],...r.trailers};return{statusCode:A,data:t,headers:i,trailers:o}}validateReplyParameters(A){if(typeof A.statusCode>"u")throw new NA("statusCode must be defined");if(typeof A.responseOptions!="object"||A.responseOptions===null)throw new NA("responseOptions must be an object")}reply(A){if(typeof A=="function"){let s=o=>{let a=A(o);if(typeof a!="object"||a===null)throw new NA("reply options callback must return an object");let g={data:"",responseOptions:{},...a};return this.validateReplyParameters(g),{...this.createMockScopeDispatchData(g)}},i=vc(this[Bi],this[ui],s);return new Rr(i)}let t={statusCode:A,data:arguments[1]===void 0?"":arguments[1],responseOptions:arguments[2]===void 0?{}:arguments[2]};this.validateReplyParameters(t);let r=this.createMockScopeDispatchData(t),n=vc(this[Bi],this[ui],r);return new Rr(n)}replyWithError(A){if(typeof A>"u")throw new NA("error must be defined");let t=vc(this[Bi],this[ui],{error:A});return new Rr(t)}defaultReplyHeaders(A){if(typeof A>"u")throw new NA("headers must be defined");return this[qc]=A,this}defaultReplyTrailers(A){if(typeof A>"u")throw new NA("trailers must be defined");return this[Wc]=A,this}replyContentLength(){return this[Pc]=!0,this}};zc.exports.MockInterceptor=Oc;zc.exports.MockScope=Rr});var Xc=p((pY,WI)=>{"use strict";var{promisify:fF}=y("node:util"),dF=hr(),{buildMockDispatch:wF}=xn(),{kDispatches:GI,kMockAgent:JI,kClose:HI,kOriginalClose:VI,kOrigin:vI,kOriginalDispatch:yF,kConnected:_c}=Fr(),{MockInterceptor:pF}=Zc(),qI=Qe(),{InvalidArgumentError:mF}=Z(),Kc=class extends dF{constructor(A,t){if(super(A,t),!t||!t.agent||typeof t.agent.dispatch!="function")throw new mF("Argument opts.agent must implement Agent");this[JI]=t.agent,this[vI]=A,this[GI]=[],this[_c]=1,this[yF]=this.dispatch,this[VI]=this.close.bind(this),this.dispatch=wF.call(this),this.close=this[HI]}get[qI.kConnected](){return this[_c]}intercept(A){return new pF(A,this[GI])}async[HI](){await fF(this[VI])(),this[_c]=0,this[JI][qI.kClients].delete(this[vI])}};WI.exports=Kc});var eg=p((mY,XI)=>{"use strict";var{promisify:DF}=y("node:util"),kF=Cr(),{buildMockDispatch:bF}=xn(),{kDispatches:PI,kMockAgent:OI,kClose:zI,kOriginalClose:ZI,kOrigin:_I,kOriginalDispatch:FF,kConnected:jc}=Fr(),{MockInterceptor:RF}=Zc(),KI=Qe(),{InvalidArgumentError:SF}=Z(),$c=class extends kF{constructor(A,t){if(super(A,t),!t||!t.agent||typeof t.agent.dispatch!="function")throw new SF("Argument opts.agent must implement Agent");this[OI]=t.agent,this[_I]=A,this[PI]=[],this[jc]=1,this[FF]=this.dispatch,this[ZI]=this.close.bind(this),this.dispatch=bF.call(this),this.close=this[zI]}get[KI.kConnected](){return this[jc]}intercept(A){return new RF(A,this[PI])}async[zI](){await DF(this[ZI])(),this[jc]=0,this[OI][KI.kClients].delete(this[_I])}};XI.exports=$c});var $I=p((kY,jI)=>{"use strict";var NF={pronoun:"it",is:"is",was:"was",this:"this"},MF={pronoun:"they",is:"are",was:"were",this:"these"};jI.exports=class{constructor(A,t){this.singular=A,this.plural=t}pluralize(A){let t=A===1,r=t?NF:MF,n=t?this.singular:this.plural;return{...r,count:A,noun:n}}}});var Ah=p((FY,eh)=>{"use strict";var{Transform:UF}=y("node:stream"),{Console:LF}=y("node:console"),TF=process.versions.icu?"\u2705":"Y ",xF=process.versions.icu?"\u274C":"N ";eh.exports=class{constructor({disableColors:A}={}){this.transform=new UF({transform(t,r,n){n(null,t)}}),this.logger=new LF({stdout:this.transform,inspectOptions:{colors:!A&&!process.env.CI}})}format(A){let t=A.map(({method:r,path:n,data:{statusCode:s},persist:i,times:o,timesInvoked:a,origin:g})=>({Method:r,Origin:g,Path:n,"Status code":s,Persistent:i?TF:xF,Invocations:a,Remaining:i?1/0:o-a}));return this.logger.table(t),this.transform.read().toString()}}});var sh=p((RY,nh)=>{"use strict";var{kClients:Lt}=Qe(),YF=fr(),{kAgent:Ag,kMockAgentSet:hi,kMockAgentGet:th,kDispatches:tg,kIsMockActive:Ci,kNetConnect:Tt,kGetNetConnect:GF,kOptions:fi,kFactory:di}=Fr(),JF=Xc(),HF=eg(),{matchValue:VF,buildMockOptions:vF}=xn(),{InvalidArgumentError:rh,UndiciError:qF}=Z(),WF=sn(),PF=$I(),OF=Ah(),rg=class extends WF{constructor(A){if(super(A),this[Tt]=!0,this[Ci]=!0,A?.agent&&typeof A.agent.dispatch!="function")throw new rh("Argument opts.agent must implement Agent");let t=A?.agent?A.agent:new YF(A);this[Ag]=t,this[Lt]=t[Lt],this[fi]=vF(A)}get(A){let t=this[th](A);return t||(t=this[di](A),this[hi](A,t)),t}dispatch(A,t){return this.get(A.origin),this[Ag].dispatch(A,t)}async close(){await this[Ag].close(),this[Lt].clear()}deactivate(){this[Ci]=!1}activate(){this[Ci]=!0}enableNetConnect(A){if(typeof A=="string"||typeof A=="function"||A instanceof RegExp)Array.isArray(this[Tt])?this[Tt].push(A):this[Tt]=[A];else if(typeof A>"u")this[Tt]=!0;else throw new rh("Unsupported matcher. Must be one of String|Function|RegExp.")}disableNetConnect(){this[Tt]=!1}get isMockActive(){return this[Ci]}[hi](A,t){this[Lt].set(A,t)}[di](A){let t=Object.assign({agent:this},this[fi]);return this[fi]&&this[fi].connections===1?new JF(A,t):new HF(A,t)}[th](A){let t=this[Lt].get(A);if(t)return t;if(typeof A!="string"){let r=this[di]("http://localhost:9999");return this[hi](A,r),r}for(let[r,n]of Array.from(this[Lt]))if(n&&typeof r!="string"&&VF(r,A)){let s=this[di](A);return this[hi](A,s),s[tg]=n[tg],s}}[GF](){return this[Tt]}pendingInterceptors(){let A=this[Lt];return Array.from(A.entries()).flatMap(([t,r])=>r[tg].map(n=>({...n,origin:t}))).filter(({pending:t})=>t)}assertNoPendingInterceptors({pendingInterceptorsFormatter:A=new OF}={}){let t=this.pendingInterceptors();if(t.length===0)return;let r=new PF("interceptor","interceptors").pluralize(t.length);throw new qF(`
41
+ ${r.count} ${r.noun} ${r.is} pending:
42
+
43
+ ${A.format(t)}
44
+ `.trim())}};nh.exports=rg});var wi=p((SY,ch)=>{"use strict";var ih=Symbol.for("undici.globalDispatcher.1"),{InvalidArgumentError:zF}=Z(),ZF=fr();ah()===void 0&&oh(new ZF);function oh(e){if(!e||typeof e.dispatch!="function")throw new zF("Argument agent must implement Agent");Object.defineProperty(globalThis,ih,{value:e,writable:!0,enumerable:!1,configurable:!1})}function ah(){return globalThis[ih]}ch.exports={setGlobalDispatcher:oh,getGlobalDispatcher:ah}});var yi=p((MY,gh)=>{"use strict";gh.exports=class{#e;constructor(A){if(typeof A!="object"||A===null)throw new TypeError("handler must be an object");this.#e=A}onConnect(...A){return this.#e.onConnect?.(...A)}onError(...A){return this.#e.onError?.(...A)}onUpgrade(...A){return this.#e.onUpgrade?.(...A)}onResponseStarted(...A){return this.#e.onResponseStarted?.(...A)}onHeaders(...A){return this.#e.onHeaders?.(...A)}onData(...A){return this.#e.onData?.(...A)}onComplete(...A){return this.#e.onComplete?.(...A)}onBodySent(...A){return this.#e.onBodySent?.(...A)}}});var Qh=p((UY,lh)=>{"use strict";var _F=ei();lh.exports=e=>{let A=e?.maxRedirections;return t=>function(n,s){let{maxRedirections:i=A,...o}=n;if(!i)return t(n,s);let a=new _F(t,i,n,s);return t(o,a)}}});var Bh=p((LY,Eh)=>{"use strict";var KF=li();Eh.exports=e=>A=>function(r,n){return A(r,new KF({...r,retryOptions:{...e,...r.retryOptions}},{handler:n,dispatch:A}))}});var Ih=p((TY,uh)=>{"use strict";var XF=v(),{InvalidArgumentError:jF,RequestAbortedError:$F}=Z(),eR=yi(),ng=class extends eR{#e=1024*1024;#A=null;#t=!1;#s=!1;#n=0;#r=null;#i=null;constructor({maxSize:A},t){if(super(t),A!=null&&(!Number.isFinite(A)||A<1))throw new jF("maxSize must be a number greater than 0");this.#e=A??this.#e,this.#i=t}onConnect(A){this.#A=A,this.#i.onConnect(this.#o.bind(this))}#o(A){this.#s=!0,this.#r=A}onHeaders(A,t,r,n){let i=XF.parseHeaders(t)["content-length"];if(i!=null&&i>this.#e)throw new $F(`Response size (${i}) larger than maxSize (${this.#e})`);return this.#s?!0:this.#i.onHeaders(A,t,r,n)}onError(A){this.#t||(A=this.#r??A,this.#i.onError(A))}onData(A){return this.#n=this.#n+A.length,this.#n>=this.#e&&(this.#t=!0,this.#s?this.#i.onError(this.#r):this.#i.onComplete([])),!0}onComplete(A){if(!this.#t){if(this.#s){this.#i.onError(this.reason);return}this.#i.onComplete(A)}}};function AR({maxSize:e}={maxSize:1024*1024}){return A=>function(r,n){let{dumpMaxSize:s=e}=r,i=new ng({maxSize:s},n);return A(r,i)}}uh.exports=AR});var fh=p((xY,Ch)=>{"use strict";var{isIP:tR}=y("node:net"),{lookup:rR}=y("node:dns"),nR=yi(),{InvalidArgumentError:Sr,InformationalError:sR}=Z(),hh=Math.pow(2,31)-1,sg=class{#e=0;#A=0;#t=new Map;dualStack=!0;affinity=null;lookup=null;pick=null;constructor(A){this.#e=A.maxTTL,this.#A=A.maxItems,this.dualStack=A.dualStack,this.affinity=A.affinity,this.lookup=A.lookup??this.#s,this.pick=A.pick??this.#n}get full(){return this.#t.size===this.#A}runLookup(A,t,r){let n=this.#t.get(A.hostname);if(n==null&&this.full){r(null,A.origin);return}let s={affinity:this.affinity,dualStack:this.dualStack,lookup:this.lookup,pick:this.pick,...t.dns,maxTTL:this.#e,maxItems:this.#A};if(n==null)this.lookup(A,s,(i,o)=>{if(i||o==null||o.length===0){r(i??new sR("No DNS entries found"));return}this.setRecords(A,o);let a=this.#t.get(A.hostname),g=this.pick(A,a,s.affinity),l;typeof g.port=="number"?l=`:${g.port}`:A.port!==""?l=`:${A.port}`:l="",r(null,`${A.protocol}//${g.family===6?`[${g.address}]`:g.address}${l}`)});else{let i=this.pick(A,n,s.affinity);if(i==null){this.#t.delete(A.hostname),this.runLookup(A,t,r);return}let o;typeof i.port=="number"?o=`:${i.port}`:A.port!==""?o=`:${A.port}`:o="",r(null,`${A.protocol}//${i.family===6?`[${i.address}]`:i.address}${o}`)}}#s(A,t,r){rR(A.hostname,{all:!0,family:this.dualStack===!1?this.affinity:0,order:"ipv4first"},(n,s)=>{if(n)return r(n);let i=new Map;for(let o of s)i.set(`${o.address}:${o.family}`,o);r(null,i.values())})}#n(A,t,r){let n=null,{records:s,offset:i}=t,o;if(this.dualStack?(r==null&&(i==null||i===hh?(t.offset=0,r=4):(t.offset++,r=(t.offset&1)===1?6:4)),s[r]!=null&&s[r].ips.length>0?o=s[r]:o=s[r===4?6:4]):o=s[r],o==null||o.ips.length===0)return n;o.offset==null||o.offset===hh?o.offset=0:o.offset++;let a=o.offset%o.ips.length;return n=o.ips[a]??null,n==null?n:Date.now()-n.timestamp>n.ttl?(o.ips.splice(a,1),this.pick(A,t,r)):n}setRecords(A,t){let r=Date.now(),n={records:{4:null,6:null}};for(let s of t){s.timestamp=r,typeof s.ttl=="number"?s.ttl=Math.min(s.ttl,this.#e):s.ttl=this.#e;let i=n.records[s.family]??{ips:[]};i.ips.push(s),n.records[s.family]=i}this.#t.set(A.hostname,n)}getHandler(A,t){return new ig(this,A,t)}},ig=class extends nR{#e=null;#A=null;#t=null;#s=null;#n=null;constructor(A,{origin:t,handler:r,dispatch:n},s){super(r),this.#n=t,this.#s=r,this.#A={...s},this.#e=A,this.#t=n}onError(A){switch(A.code){case"ETIMEDOUT":case"ECONNREFUSED":{if(this.#e.dualStack){this.#e.runLookup(this.#n,this.#A,(t,r)=>{if(t)return this.#s.onError(t);let n={...this.#A,origin:r};this.#t(n,this)});return}this.#s.onError(A);return}case"ENOTFOUND":this.#e.deleteRecord(this.#n);default:this.#s.onError(A);break}}};Ch.exports=e=>{if(e?.maxTTL!=null&&(typeof e?.maxTTL!="number"||e?.maxTTL<0))throw new Sr("Invalid maxTTL. Must be a positive number");if(e?.maxItems!=null&&(typeof e?.maxItems!="number"||e?.maxItems<1))throw new Sr("Invalid maxItems. Must be a positive number and greater than zero");if(e?.affinity!=null&&e?.affinity!==4&&e?.affinity!==6)throw new Sr("Invalid affinity. Must be either 4 or 6");if(e?.dualStack!=null&&typeof e?.dualStack!="boolean")throw new Sr("Invalid dualStack. Must be a boolean");if(e?.lookup!=null&&typeof e?.lookup!="function")throw new Sr("Invalid lookup. Must be a function");if(e?.pick!=null&&typeof e?.pick!="function")throw new Sr("Invalid pick. Must be a function");let A=e?.dualStack??!0,t;A?t=e?.affinity??null:t=e?.affinity??4;let r={maxTTL:e?.maxTTL??1e4,lookup:e?.lookup??null,pick:e?.pick??null,dualStack:A,affinity:t,maxItems:e?.maxItems??1/0},n=new sg(r);return s=>function(o,a){let g=o.origin.constructor===URL?o.origin:new URL(o.origin);return tR(g.hostname)!==0?s(o,a):(n.runLookup(g,o,(l,c)=>{if(l)return a.onError(l);let Q=null;Q={...o,servername:g.hostname,origin:c,headers:{host:g.hostname,...o.headers}},s(Q,n.getHandler({origin:g,dispatch:s,handler:a},o))}),!0)}}});var xt=p((YY,kh)=>{"use strict";var{kConstruct:iR}=Qe(),{kEnumerableProperty:Nr}=v(),{iteratorMixin:oR,isValidHeaderName:Yn,isValidHeaderValue:wh}=Oe(),{webidl:z}=Se(),og=y("node:assert"),pi=y("node:util"),ye=Symbol("headers map"),Ke=Symbol("headers map sorted");function dh(e){return e===10||e===13||e===9||e===32}function yh(e){let A=0,t=e.length;for(;t>A&&dh(e.charCodeAt(t-1));)--t;for(;t>A&&dh(e.charCodeAt(A));)++A;return A===0&&t===e.length?e:e.substring(A,t)}function ph(e,A){if(Array.isArray(A))for(let t=0;t<A.length;++t){let r=A[t];if(r.length!==2)throw z.errors.exception({header:"Headers constructor",message:`expected name/value pair to be length 2, found ${r.length}.`});ag(e,r[0],r[1])}else if(typeof A=="object"&&A!==null){let t=Object.keys(A);for(let r=0;r<t.length;++r)ag(e,t[r],A[t[r]])}else throw z.errors.conversionFailed({prefix:"Headers constructor",argument:"Argument 1",types:["sequence<sequence<ByteString>>","record<ByteString, ByteString>"]})}function ag(e,A,t){if(t=yh(t),Yn(A)){if(!wh(t))throw z.errors.invalidArgument({prefix:"Headers.append",value:t,type:"header value"})}else throw z.errors.invalidArgument({prefix:"Headers.append",value:A,type:"header name"});if(Dh(e)==="immutable")throw new TypeError("immutable");return cg(e).append(A,t,!1)}function mh(e,A){return e[0]<A[0]?-1:1}var mi=class e{cookies=null;constructor(A){A instanceof e?(this[ye]=new Map(A[ye]),this[Ke]=A[Ke],this.cookies=A.cookies===null?null:[...A.cookies]):(this[ye]=new Map(A),this[Ke]=null)}contains(A,t){return this[ye].has(t?A:A.toLowerCase())}clear(){this[ye].clear(),this[Ke]=null,this.cookies=null}append(A,t,r){this[Ke]=null;let n=r?A:A.toLowerCase(),s=this[ye].get(n);if(s){let i=n==="cookie"?"; ":", ";this[ye].set(n,{name:s.name,value:`${s.value}${i}${t}`})}else this[ye].set(n,{name:A,value:t});n==="set-cookie"&&(this.cookies??=[]).push(t)}set(A,t,r){this[Ke]=null;let n=r?A:A.toLowerCase();n==="set-cookie"&&(this.cookies=[t]),this[ye].set(n,{name:A,value:t})}delete(A,t){this[Ke]=null,t||(A=A.toLowerCase()),A==="set-cookie"&&(this.cookies=null),this[ye].delete(A)}get(A,t){return this[ye].get(t?A:A.toLowerCase())?.value??null}*[Symbol.iterator](){for(let{0:A,1:{value:t}}of this[ye])yield[A,t]}get entries(){let A={};if(this[ye].size!==0)for(let{name:t,value:r}of this[ye].values())A[t]=r;return A}rawValues(){return this[ye].values()}get entriesList(){let A=[];if(this[ye].size!==0)for(let{0:t,1:{name:r,value:n}}of this[ye])if(t==="set-cookie")for(let s of this.cookies)A.push([r,s]);else A.push([r,n]);return A}toSortedArray(){let A=this[ye].size,t=new Array(A);if(A<=32){if(A===0)return t;let r=this[ye][Symbol.iterator](),n=r.next().value;t[0]=[n[0],n[1].value],og(n[1].value!==null);for(let s=1,i=0,o=0,a=0,g=0,l,c;s<A;++s){for(c=r.next().value,l=t[s]=[c[0],c[1].value],og(l[1]!==null),a=0,o=s;a<o;)g=a+(o-a>>1),t[g][0]<=l[0]?a=g+1:o=g;if(s!==g){for(i=s;i>a;)t[i]=t[--i];t[a]=l}}if(!r.next().done)throw new TypeError("Unreachable");return t}else{let r=0;for(let{0:n,1:{value:s}}of this[ye])t[r++]=[n,s],og(s!==null);return t.sort(mh)}}},IA=class e{#e;#A;constructor(A=void 0){z.util.markAsUncloneable(this),A!==iR&&(this.#A=new mi,this.#e="none",A!==void 0&&(A=z.converters.HeadersInit(A,"Headers contructor","init"),ph(this,A)))}append(A,t){z.brandCheck(this,e),z.argumentLengthCheck(arguments,2,"Headers.append");let r="Headers.append";return A=z.converters.ByteString(A,r,"name"),t=z.converters.ByteString(t,r,"value"),ag(this,A,t)}delete(A){if(z.brandCheck(this,e),z.argumentLengthCheck(arguments,1,"Headers.delete"),A=z.converters.ByteString(A,"Headers.delete","name"),!Yn(A))throw z.errors.invalidArgument({prefix:"Headers.delete",value:A,type:"header name"});if(this.#e==="immutable")throw new TypeError("immutable");this.#A.contains(A,!1)&&this.#A.delete(A,!1)}get(A){z.brandCheck(this,e),z.argumentLengthCheck(arguments,1,"Headers.get");let t="Headers.get";if(A=z.converters.ByteString(A,t,"name"),!Yn(A))throw z.errors.invalidArgument({prefix:t,value:A,type:"header name"});return this.#A.get(A,!1)}has(A){z.brandCheck(this,e),z.argumentLengthCheck(arguments,1,"Headers.has");let t="Headers.has";if(A=z.converters.ByteString(A,t,"name"),!Yn(A))throw z.errors.invalidArgument({prefix:t,value:A,type:"header name"});return this.#A.contains(A,!1)}set(A,t){z.brandCheck(this,e),z.argumentLengthCheck(arguments,2,"Headers.set");let r="Headers.set";if(A=z.converters.ByteString(A,r,"name"),t=z.converters.ByteString(t,r,"value"),t=yh(t),Yn(A)){if(!wh(t))throw z.errors.invalidArgument({prefix:r,value:t,type:"header value"})}else throw z.errors.invalidArgument({prefix:r,value:A,type:"header name"});if(this.#e==="immutable")throw new TypeError("immutable");this.#A.set(A,t,!1)}getSetCookie(){z.brandCheck(this,e);let A=this.#A.cookies;return A?[...A]:[]}get[Ke](){if(this.#A[Ke])return this.#A[Ke];let A=[],t=this.#A.toSortedArray(),r=this.#A.cookies;if(r===null||r.length===1)return this.#A[Ke]=t;for(let n=0;n<t.length;++n){let{0:s,1:i}=t[n];if(s==="set-cookie")for(let o=0;o<r.length;++o)A.push([s,r[o]]);else A.push([s,i])}return this.#A[Ke]=A}[pi.inspect.custom](A,t){return t.depth??=A,`Headers ${pi.formatWithOptions(t,this.#A.entries)}`}static getHeadersGuard(A){return A.#e}static setHeadersGuard(A,t){A.#e=t}static getHeadersList(A){return A.#A}static setHeadersList(A,t){A.#A=t}},{getHeadersGuard:Dh,setHeadersGuard:aR,getHeadersList:cg,setHeadersList:cR}=IA;Reflect.deleteProperty(IA,"getHeadersGuard");Reflect.deleteProperty(IA,"setHeadersGuard");Reflect.deleteProperty(IA,"getHeadersList");Reflect.deleteProperty(IA,"setHeadersList");oR("Headers",IA,Ke,0,1);Object.defineProperties(IA.prototype,{append:Nr,delete:Nr,get:Nr,has:Nr,set:Nr,getSetCookie:Nr,[Symbol.toStringTag]:{value:"Headers",configurable:!0},[pi.inspect.custom]:{enumerable:!1}});z.converters.HeadersInit=function(e,A,t){if(z.util.Type(e)==="Object"){let r=Reflect.get(e,Symbol.iterator);if(!pi.types.isProxy(e)&&r===IA.prototype.entries)try{return cg(e).entriesList}catch{}return typeof r=="function"?z.converters["sequence<sequence<ByteString>>"](e,A,t,r.bind(e)):z.converters["record<ByteString, ByteString>"](e,A,t)}throw z.errors.conversionFailed({prefix:"Headers constructor",argument:"Argument 1",types:["sequence<sequence<ByteString>>","record<ByteString, ByteString>"]})};kh.exports={fill:ph,compareHeaderName:mh,Headers:IA,HeadersList:mi,getHeadersGuard:Dh,setHeadersGuard:aR,setHeadersList:cR,getHeadersList:cg}});var Jn=p((GY,Gh)=>{"use strict";var{Headers:Mh,HeadersList:bh,fill:gR,getHeadersGuard:lR,setHeadersGuard:Uh,setHeadersList:Lh}=xt(),{extractBody:Fh,cloneBody:QR,mixinBody:ER,hasFinalizationRegistry:Th,streamRegistry:xh,bodyUnusable:BR}=gr(),gg=v(),Rh=y("node:util"),{kEnumerableProperty:Xe}=gg,{isValidReasonPhrase:uR,isCancelled:IR,isAborted:hR,isBlobLike:CR,serializeJavascriptValueToJSONString:fR,isErrorLike:dR,isomorphicEncode:wR,environmentSettingsObject:yR}=Oe(),{redirectStatusSet:pR,nullBodyStatus:mR}=cn(),{kState:Be,kHeaders:zA}=jA(),{webidl:V}=Se(),{FormData:DR}=un(),{URLSerializer:Sh}=He(),{kConstruct:ki}=Qe(),lg=y("node:assert"),{types:kR}=y("node:util"),bR=new TextEncoder("utf-8"),Yt=class e{static error(){return Gn(bi(),"immutable")}static json(A,t={}){V.argumentLengthCheck(arguments,1,"Response.json"),t!==null&&(t=V.converters.ResponseInit(t));let r=bR.encode(fR(A)),n=Fh(r),s=Gn(Mr({}),"response");return Nh(s,t,{body:n[0],type:"application/json"}),s}static redirect(A,t=302){V.argumentLengthCheck(arguments,1,"Response.redirect"),A=V.converters.USVString(A),t=V.converters["unsigned short"](t);let r;try{r=new URL(A,yR.settingsObject.baseUrl)}catch(i){throw new TypeError(`Failed to parse URL from ${A}`,{cause:i})}if(!pR.has(t))throw new RangeError(`Invalid status code ${t}`);let n=Gn(Mr({}),"immutable");n[Be].status=t;let s=wR(Sh(r));return n[Be].headersList.append("location",s,!0),n}constructor(A=null,t={}){if(V.util.markAsUncloneable(this),A===ki)return;A!==null&&(A=V.converters.BodyInit(A)),t=V.converters.ResponseInit(t),this[Be]=Mr({}),this[zA]=new Mh(ki),Uh(this[zA],"response"),Lh(this[zA],this[Be].headersList);let r=null;if(A!=null){let[n,s]=Fh(A);r={body:n,type:s}}Nh(this,t,r)}get type(){return V.brandCheck(this,e),this[Be].type}get url(){V.brandCheck(this,e);let A=this[Be].urlList,t=A[A.length-1]??null;return t===null?"":Sh(t,!0)}get redirected(){return V.brandCheck(this,e),this[Be].urlList.length>1}get status(){return V.brandCheck(this,e),this[Be].status}get ok(){return V.brandCheck(this,e),this[Be].status>=200&&this[Be].status<=299}get statusText(){return V.brandCheck(this,e),this[Be].statusText}get headers(){return V.brandCheck(this,e),this[zA]}get body(){return V.brandCheck(this,e),this[Be].body?this[Be].body.stream:null}get bodyUsed(){return V.brandCheck(this,e),!!this[Be].body&&gg.isDisturbed(this[Be].body.stream)}clone(){if(V.brandCheck(this,e),BR(this))throw V.errors.exception({header:"Response.clone",message:"Body has already been consumed."});let A=Qg(this[Be]);return Th&&this[Be].body?.stream&&xh.register(this,new WeakRef(this[Be].body.stream)),Gn(A,lR(this[zA]))}[Rh.inspect.custom](A,t){t.depth===null&&(t.depth=2),t.colors??=!0;let r={status:this.status,statusText:this.statusText,headers:this.headers,body:this.body,bodyUsed:this.bodyUsed,ok:this.ok,redirected:this.redirected,type:this.type,url:this.url};return`Response ${Rh.formatWithOptions(t,r)}`}};ER(Yt);Object.defineProperties(Yt.prototype,{type:Xe,url:Xe,status:Xe,ok:Xe,redirected:Xe,statusText:Xe,headers:Xe,clone:Xe,body:Xe,bodyUsed:Xe,[Symbol.toStringTag]:{value:"Response",configurable:!0}});Object.defineProperties(Yt,{json:Xe,redirect:Xe,error:Xe});function Qg(e){if(e.internalResponse)return Yh(Qg(e.internalResponse),e.type);let A=Mr({...e,body:null});return e.body!=null&&(A.body=QR(A,e.body)),A}function Mr(e){return{aborted:!1,rangeRequested:!1,timingAllowPassed:!1,requestIncludesCredentials:!1,type:"default",status:200,timingInfo:null,cacheState:"",statusText:"",...e,headersList:e?.headersList?new bh(e?.headersList):new bh,urlList:e?.urlList?[...e.urlList]:[]}}function bi(e){let A=dR(e);return Mr({type:"error",status:0,error:A?e:new Error(e&&String(e)),aborted:e&&e.name==="AbortError"})}function FR(e){return e.type==="error"&&e.status===0}function Di(e,A){return A={internalResponse:e,...A},new Proxy(e,{get(t,r){return r in A?A[r]:t[r]},set(t,r,n){return lg(!(r in A)),t[r]=n,!0}})}function Yh(e,A){if(A==="basic")return Di(e,{type:"basic",headersList:e.headersList});if(A==="cors")return Di(e,{type:"cors",headersList:e.headersList});if(A==="opaque")return Di(e,{type:"opaque",urlList:Object.freeze([]),status:0,statusText:"",body:null});if(A==="opaqueredirect")return Di(e,{type:"opaqueredirect",status:0,statusText:"",headersList:[],body:null});lg(!1)}function RR(e,A=null){return lg(IR(e)),hR(e)?bi(Object.assign(new DOMException("The operation was aborted.","AbortError"),{cause:A})):bi(Object.assign(new DOMException("Request was cancelled."),{cause:A}))}function Nh(e,A,t){if(A.status!==null&&(A.status<200||A.status>599))throw new RangeError('init["status"] must be in the range of 200 to 599, inclusive.');if("statusText"in A&&A.statusText!=null&&!uR(String(A.statusText)))throw new TypeError("Invalid statusText");if("status"in A&&A.status!=null&&(e[Be].status=A.status),"statusText"in A&&A.statusText!=null&&(e[Be].statusText=A.statusText),"headers"in A&&A.headers!=null&&gR(e[zA],A.headers),t){if(mR.includes(e.status))throw V.errors.exception({header:"Response constructor",message:`Invalid response status code ${e.status}`});e[Be].body=t.body,t.type!=null&&!e[Be].headersList.contains("content-type",!0)&&e[Be].headersList.append("content-type",t.type,!0)}}function Gn(e,A){let t=new Yt(ki);return t[Be]=e,t[zA]=new Mh(ki),Lh(t[zA],e.headersList),Uh(t[zA],A),Th&&e.body?.stream&&xh.register(t,new WeakRef(e.body.stream)),t}V.converters.ReadableStream=V.interfaceConverter(ReadableStream);V.converters.FormData=V.interfaceConverter(DR);V.converters.URLSearchParams=V.interfaceConverter(URLSearchParams);V.converters.XMLHttpRequestBodyInit=function(e,A,t){return typeof e=="string"?V.converters.USVString(e,A,t):CR(e)?V.converters.Blob(e,A,t,{strict:!1}):ArrayBuffer.isView(e)||kR.isArrayBuffer(e)?V.converters.BufferSource(e,A,t):gg.isFormDataLike(e)?V.converters.FormData(e,A,t,{strict:!1}):e instanceof URLSearchParams?V.converters.URLSearchParams(e,A,t):V.converters.DOMString(e,A,t)};V.converters.BodyInit=function(e,A,t){return e instanceof ReadableStream?V.converters.ReadableStream(e,A,t):e?.[Symbol.asyncIterator]?e:V.converters.XMLHttpRequestBodyInit(e,A,t)};V.converters.ResponseInit=V.dictionaryConverter([{key:"status",converter:V.converters["unsigned short"],defaultValue:()=>200},{key:"statusText",converter:V.converters.ByteString,defaultValue:()=>""},{key:"headers",converter:V.converters.HeadersInit}]);Gh.exports={isNetworkError:FR,makeNetworkError:bi,makeResponse:Mr,makeAppropriateNetworkError:RR,filterResponse:Yh,Response:Yt,cloneResponse:Qg,fromInnerResponse:Gn}});var vh=p((JY,Vh)=>{"use strict";var{kConnected:Jh,kSize:Hh}=Qe(),Eg=class{constructor(A){this.value=A}deref(){return this.value[Jh]===0&&this.value[Hh]===0?void 0:this.value}},Bg=class{constructor(A){this.finalizer=A}register(A,t){A.on&&A.on("disconnect",()=>{A[Jh]===0&&A[Hh]===0&&this.finalizer(t)})}unregister(A){}};Vh.exports=function(){return process.env.NODE_V8_COVERAGE&&process.version.startsWith("v18")?(process._rawDebug("Using compatibility WeakRef and FinalizationRegistry"),{WeakRef:Eg,FinalizationRegistry:Bg}):{WeakRef,FinalizationRegistry}}});var Ur=p((HY,rC)=>{"use strict";var{extractBody:SR,mixinBody:NR,cloneBody:MR,bodyUnusable:qh}=gr(),{Headers:jh,fill:UR,HeadersList:Ni,setHeadersGuard:Ig,getHeadersGuard:LR,setHeadersList:$h,getHeadersList:Wh}=xt(),{FinalizationRegistry:TR}=vh()(),Ri=v(),Ph=y("node:util"),{isValidHTTPToken:xR,sameOrigin:Oh,environmentSettingsObject:Fi}=Oe(),{forbiddenMethodsSet:YR,corsSafeListedMethodsSet:GR,referrerPolicy:JR,requestRedirect:HR,requestMode:VR,requestCredentials:vR,requestCache:qR,requestDuplex:WR}=cn(),{kEnumerableProperty:pe,normalizedMethodRecordsBase:PR,normalizedMethodRecords:OR}=Ri,{kHeaders:je,kSignal:Si,kState:ce,kDispatcher:ug}=jA(),{webidl:Y}=Se(),{URLSerializer:zR}=He(),{kConstruct:Mi}=Qe(),ZR=y("node:assert"),{getMaxListeners:zh,setMaxListeners:Zh,getEventListeners:_R,defaultMaxListeners:_h}=y("node:events"),KR=Symbol("abortController"),eC=new TR(({signal:e,abort:A})=>{e.removeEventListener("abort",A)}),Ui=new WeakMap;function Kh(e){return A;function A(){let t=e.deref();if(t!==void 0){eC.unregister(A),this.removeEventListener("abort",A),t.abort(this.reason);let r=Ui.get(t.signal);if(r!==void 0){if(r.size!==0){for(let n of r){let s=n.deref();s!==void 0&&s.abort(this.reason)}r.clear()}Ui.delete(t.signal)}}}}var Xh=!1,ct=class e{constructor(A,t={}){if(Y.util.markAsUncloneable(this),A===Mi)return;let r="Request constructor";Y.argumentLengthCheck(arguments,1,r),A=Y.converters.RequestInfo(A,r,"input"),t=Y.converters.RequestInit(t,r,"init");let n=null,s=null,i=Fi.settingsObject.baseUrl,o=null;if(typeof A=="string"){this[ug]=t.dispatcher;let I;try{I=new URL(A,i)}catch(C){throw new TypeError("Failed to parse URL from "+A,{cause:C})}if(I.username||I.password)throw new TypeError("Request cannot be constructed from a URL that includes credentials: "+A);n=Li({urlList:[I]}),s="cors"}else this[ug]=t.dispatcher||A[ug],ZR(A instanceof e),n=A[ce],o=A[Si];let a=Fi.settingsObject.origin,g="client";if(n.window?.constructor?.name==="EnvironmentSettingsObject"&&Oh(n.window,a)&&(g=n.window),t.window!=null)throw new TypeError(`'window' option '${g}' must be null`);"window"in t&&(g="no-window"),n=Li({method:n.method,headersList:n.headersList,unsafeRequest:n.unsafeRequest,client:Fi.settingsObject,window:g,priority:n.priority,origin:n.origin,referrer:n.referrer,referrerPolicy:n.referrerPolicy,mode:n.mode,credentials:n.credentials,cache:n.cache,redirect:n.redirect,integrity:n.integrity,keepalive:n.keepalive,reloadNavigation:n.reloadNavigation,historyNavigation:n.historyNavigation,urlList:[...n.urlList]});let l=Object.keys(t).length!==0;if(l&&(n.mode==="navigate"&&(n.mode="same-origin"),n.reloadNavigation=!1,n.historyNavigation=!1,n.origin="client",n.referrer="client",n.referrerPolicy="",n.url=n.urlList[n.urlList.length-1],n.urlList=[n.url]),t.referrer!==void 0){let I=t.referrer;if(I==="")n.referrer="no-referrer";else{let C;try{C=new URL(I,i)}catch(D){throw new TypeError(`Referrer "${I}" is not a valid URL.`,{cause:D})}C.protocol==="about:"&&C.hostname==="client"||a&&!Oh(C,Fi.settingsObject.baseUrl)?n.referrer="client":n.referrer=C}}t.referrerPolicy!==void 0&&(n.referrerPolicy=t.referrerPolicy);let c;if(t.mode!==void 0?c=t.mode:c=s,c==="navigate")throw Y.errors.exception({header:"Request constructor",message:"invalid request mode navigate."});if(c!=null&&(n.mode=c),t.credentials!==void 0&&(n.credentials=t.credentials),t.cache!==void 0&&(n.cache=t.cache),n.cache==="only-if-cached"&&n.mode!=="same-origin")throw new TypeError("'only-if-cached' can be set only with 'same-origin' mode");if(t.redirect!==void 0&&(n.redirect=t.redirect),t.integrity!=null&&(n.integrity=String(t.integrity)),t.keepalive!==void 0&&(n.keepalive=!!t.keepalive),t.method!==void 0){let I=t.method,C=OR[I];if(C!==void 0)n.method=C;else{if(!xR(I))throw new TypeError(`'${I}' is not a valid HTTP method.`);let D=I.toUpperCase();if(YR.has(D))throw new TypeError(`'${I}' HTTP method is unsupported.`);I=PR[D]??I,n.method=I}!Xh&&n.method==="patch"&&(process.emitWarning("Using `patch` is highly likely to result in a `405 Method Not Allowed`. `PATCH` is much more likely to succeed.",{code:"UNDICI-FETCH-patch"}),Xh=!0)}t.signal!==void 0&&(o=t.signal),this[ce]=n;let Q=new AbortController;if(this[Si]=Q.signal,o!=null){if(!o||typeof o.aborted!="boolean"||typeof o.addEventListener!="function")throw new TypeError("Failed to construct 'Request': member signal is not of type AbortSignal.");if(o.aborted)Q.abort(o.reason);else{this[KR]=Q;let I=new WeakRef(Q),C=Kh(I);try{(typeof zh=="function"&&zh(o)===_h||_R(o,"abort").length>=_h)&&Zh(1500,o)}catch{}Ri.addAbortListener(o,C),eC.register(Q,{signal:o,abort:C},C)}}if(this[je]=new jh(Mi),$h(this[je],n.headersList),Ig(this[je],"request"),c==="no-cors"){if(!GR.has(n.method))throw new TypeError(`'${n.method} is unsupported in no-cors mode.`);Ig(this[je],"request-no-cors")}if(l){let I=Wh(this[je]),C=t.headers!==void 0?t.headers:new Ni(I);if(I.clear(),C instanceof Ni){for(let{name:D,value:f}of C.rawValues())I.append(D,f,!1);I.cookies=C.cookies}else UR(this[je],C)}let B=A instanceof e?A[ce].body:null;if((t.body!=null||B!=null)&&(n.method==="GET"||n.method==="HEAD"))throw new TypeError("Request with GET/HEAD method cannot have body.");let E=null;if(t.body!=null){let[I,C]=SR(t.body,n.keepalive);E=I,C&&!Wh(this[je]).contains("content-type",!0)&&this[je].append("content-type",C)}let u=E??B;if(u!=null&&u.source==null){if(E!=null&&t.duplex==null)throw new TypeError("RequestInit: duplex option is required when sending a body.");if(n.mode!=="same-origin"&&n.mode!=="cors")throw new TypeError('If request is made from ReadableStream, mode should be "same-origin" or "cors"');n.useCORSPreflightFlag=!0}let h=u;if(E==null&&B!=null){if(qh(A))throw new TypeError("Cannot construct a Request with a Request object that has already been used.");let I=new TransformStream;B.stream.pipeThrough(I),h={source:B.source,length:B.length,stream:I.readable}}this[ce].body=h}get method(){return Y.brandCheck(this,e),this[ce].method}get url(){return Y.brandCheck(this,e),zR(this[ce].url)}get headers(){return Y.brandCheck(this,e),this[je]}get destination(){return Y.brandCheck(this,e),this[ce].destination}get referrer(){return Y.brandCheck(this,e),this[ce].referrer==="no-referrer"?"":this[ce].referrer==="client"?"about:client":this[ce].referrer.toString()}get referrerPolicy(){return Y.brandCheck(this,e),this[ce].referrerPolicy}get mode(){return Y.brandCheck(this,e),this[ce].mode}get credentials(){return this[ce].credentials}get cache(){return Y.brandCheck(this,e),this[ce].cache}get redirect(){return Y.brandCheck(this,e),this[ce].redirect}get integrity(){return Y.brandCheck(this,e),this[ce].integrity}get keepalive(){return Y.brandCheck(this,e),this[ce].keepalive}get isReloadNavigation(){return Y.brandCheck(this,e),this[ce].reloadNavigation}get isHistoryNavigation(){return Y.brandCheck(this,e),this[ce].historyNavigation}get signal(){return Y.brandCheck(this,e),this[Si]}get body(){return Y.brandCheck(this,e),this[ce].body?this[ce].body.stream:null}get bodyUsed(){return Y.brandCheck(this,e),!!this[ce].body&&Ri.isDisturbed(this[ce].body.stream)}get duplex(){return Y.brandCheck(this,e),"half"}clone(){if(Y.brandCheck(this,e),qh(this))throw new TypeError("unusable");let A=AC(this[ce]),t=new AbortController;if(this.signal.aborted)t.abort(this.signal.reason);else{let r=Ui.get(this.signal);r===void 0&&(r=new Set,Ui.set(this.signal,r));let n=new WeakRef(t);r.add(n),Ri.addAbortListener(t.signal,Kh(n))}return tC(A,t.signal,LR(this[je]))}[Ph.inspect.custom](A,t){t.depth===null&&(t.depth=2),t.colors??=!0;let r={method:this.method,url:this.url,headers:this.headers,destination:this.destination,referrer:this.referrer,referrerPolicy:this.referrerPolicy,mode:this.mode,credentials:this.credentials,cache:this.cache,redirect:this.redirect,integrity:this.integrity,keepalive:this.keepalive,isReloadNavigation:this.isReloadNavigation,isHistoryNavigation:this.isHistoryNavigation,signal:this.signal};return`Request ${Ph.formatWithOptions(t,r)}`}};NR(ct);function Li(e){return{method:e.method??"GET",localURLsOnly:e.localURLsOnly??!1,unsafeRequest:e.unsafeRequest??!1,body:e.body??null,client:e.client??null,reservedClient:e.reservedClient??null,replacesClientId:e.replacesClientId??"",window:e.window??"client",keepalive:e.keepalive??!1,serviceWorkers:e.serviceWorkers??"all",initiator:e.initiator??"",destination:e.destination??"",priority:e.priority??null,origin:e.origin??"client",policyContainer:e.policyContainer??"client",referrer:e.referrer??"client",referrerPolicy:e.referrerPolicy??"",mode:e.mode??"no-cors",useCORSPreflightFlag:e.useCORSPreflightFlag??!1,credentials:e.credentials??"same-origin",useCredentials:e.useCredentials??!1,cache:e.cache??"default",redirect:e.redirect??"follow",integrity:e.integrity??"",cryptoGraphicsNonceMetadata:e.cryptoGraphicsNonceMetadata??"",parserMetadata:e.parserMetadata??"",reloadNavigation:e.reloadNavigation??!1,historyNavigation:e.historyNavigation??!1,userActivation:e.userActivation??!1,taintedOrigin:e.taintedOrigin??!1,redirectCount:e.redirectCount??0,responseTainting:e.responseTainting??"basic",preventNoCacheCacheControlHeaderModification:e.preventNoCacheCacheControlHeaderModification??!1,done:e.done??!1,timingAllowFailed:e.timingAllowFailed??!1,urlList:e.urlList,url:e.urlList[0],headersList:e.headersList?new Ni(e.headersList):new Ni}}function AC(e){let A=Li({...e,body:null});return e.body!=null&&(A.body=MR(A,e.body)),A}function tC(e,A,t){let r=new ct(Mi);return r[ce]=e,r[Si]=A,r[je]=new jh(Mi),$h(r[je],e.headersList),Ig(r[je],t),r}Object.defineProperties(ct.prototype,{method:pe,url:pe,headers:pe,redirect:pe,clone:pe,signal:pe,duplex:pe,destination:pe,body:pe,bodyUsed:pe,isHistoryNavigation:pe,isReloadNavigation:pe,keepalive:pe,integrity:pe,cache:pe,credentials:pe,attribute:pe,referrerPolicy:pe,referrer:pe,mode:pe,[Symbol.toStringTag]:{value:"Request",configurable:!0}});Y.converters.Request=Y.interfaceConverter(ct);Y.converters.RequestInfo=function(e,A,t){return typeof e=="string"?Y.converters.USVString(e,A,t):e instanceof ct?Y.converters.Request(e,A,t):Y.converters.USVString(e,A,t)};Y.converters.AbortSignal=Y.interfaceConverter(AbortSignal);Y.converters.RequestInit=Y.dictionaryConverter([{key:"method",converter:Y.converters.ByteString},{key:"headers",converter:Y.converters.HeadersInit},{key:"body",converter:Y.nullableConverter(Y.converters.BodyInit)},{key:"referrer",converter:Y.converters.USVString},{key:"referrerPolicy",converter:Y.converters.DOMString,allowedValues:JR},{key:"mode",converter:Y.converters.DOMString,allowedValues:VR},{key:"credentials",converter:Y.converters.DOMString,allowedValues:vR},{key:"cache",converter:Y.converters.DOMString,allowedValues:qR},{key:"redirect",converter:Y.converters.DOMString,allowedValues:HR},{key:"integrity",converter:Y.converters.DOMString},{key:"keepalive",converter:Y.converters.boolean},{key:"signal",converter:Y.nullableConverter(e=>Y.converters.AbortSignal(e,"RequestInit","signal",{strict:!1}))},{key:"window",converter:Y.converters.any},{key:"duplex",converter:Y.converters.DOMString,allowedValues:WR},{key:"dispatcher",converter:Y.converters.any}]);rC.exports={Request:ct,makeRequest:Li,fromInnerRequest:tC,cloneRequest:AC}});var Vn=p((VY,CC)=>{"use strict";var{makeNetworkError:Ae,makeAppropriateNetworkError:Ti,filterResponse:hg,makeResponse:xi,fromInnerResponse:XR}=Jn(),{HeadersList:nC}=xt(),{Request:jR,cloneRequest:$R}=Ur(),gt=y("node:zlib"),{bytesMatch:eS,makePolicyContainer:AS,clonePolicyContainer:tS,requestBadPort:rS,TAOCheck:nS,appendRequestOriginHeader:sS,responseLocationURL:iS,requestCurrentURL:MA,setRequestReferrerPolicyOnRedirect:oS,tryUpgradeRequestToAPotentiallyTrustworthyURL:aS,createOpaqueTimingInfo:yg,appendFetchMetadata:cS,corsCheck:gS,crossOriginResourcePolicyCheck:lS,determineRequestsReferrer:QS,coarsenedSharedCurrentTime:Hn,createDeferredPromise:ES,isBlobLike:BS,sameOrigin:wg,isCancelled:Gt,isAborted:sC,isErrorLike:uS,fullyReadBody:IS,readableStreamClose:hS,isomorphicEncode:Yi,urlIsLocal:CS,urlIsHttpHttpsScheme:pg,urlHasHttpsScheme:fS,clampAndCoarsenConnectionTimingInfo:dS,simpleRangeHeaderValue:wS,buildContentRange:yS,createInflate:pS,extractMimeType:mS}=Oe(),{kState:cC,kDispatcher:DS}=jA(),Jt=y("node:assert"),{safelyExtractBody:mg,extractBody:iC}=gr(),{redirectStatusSet:gC,nullBodyStatus:lC,safeMethodsSet:kS,requestBodyHeader:bS,subresourceSet:FS}=cn(),RS=y("node:events"),{Readable:SS,pipeline:NS,finished:MS}=y("node:stream"),{addAbortListener:US,isErrored:LS,isReadable:Gi,bufferToLowerCasedHeaderName:oC}=v(),{dataURLProcessor:TS,serializeAMimeType:xS,minimizeSupportedMimeType:YS}=He(),{getGlobalDispatcher:GS}=wi(),{webidl:JS}=Se(),{STATUS_CODES:HS}=y("node:http"),VS=["GET","HEAD"],vS=typeof __UNDICI_IS_NODE__<"u"||typeof esbuildDetection<"u"?"node":"undici",Cg,Ji=class extends RS{constructor(A){super(),this.dispatcher=A,this.connection=null,this.dump=!1,this.state="ongoing"}terminate(A){this.state==="ongoing"&&(this.state="terminated",this.connection?.destroy(A),this.emit("terminated",A))}abort(A){this.state==="ongoing"&&(this.state="aborted",A||(A=new DOMException("The operation was aborted.","AbortError")),this.serializedAbortReason=A,this.connection?.destroy(A),this.emit("terminated",A))}};function qS(e){QC(e,"fetch")}function WS(e,A=void 0){JS.argumentLengthCheck(arguments,1,"globalThis.fetch");let t=ES(),r;try{r=new jR(e,A)}catch(l){return t.reject(l),t.promise}let n=r[cC];if(r.signal.aborted)return fg(t,n,null,r.signal.reason),t.promise;n.client.globalObject?.constructor?.name==="ServiceWorkerGlobalScope"&&(n.serviceWorkers="none");let i=null,o=!1,a=null;return US(r.signal,()=>{o=!0,Jt(a!=null),a.abort(r.signal.reason);let l=i?.deref();fg(t,n,l,r.signal.reason)}),a=BC({request:n,processResponseEndOfBody:qS,processResponse:l=>{if(!o){if(l.aborted){fg(t,n,i,a.serializedAbortReason);return}if(l.type==="error"){t.reject(new TypeError("fetch failed",{cause:l.error}));return}i=new WeakRef(XR(l,"immutable")),t.resolve(i.deref()),t=null}},dispatcher:r[DS]}),t.promise}function QC(e,A="other"){if(e.type==="error"&&e.aborted||!e.urlList?.length)return;let t=e.urlList[0],r=e.timingInfo,n=e.cacheState;pg(t)&&r!==null&&(e.timingAllowPassed||(r=yg({startTime:r.startTime}),n=""),r.endTime=Hn(),e.timingInfo=r,EC(r,t.href,A,globalThis,n))}var EC=performance.markResourceTiming;function fg(e,A,t,r){if(e&&e.reject(r),A.body!=null&&Gi(A.body?.stream)&&A.body.stream.cancel(r).catch(s=>{if(s.code!=="ERR_INVALID_STATE")throw s}),t==null)return;let n=t[cC];n.body!=null&&Gi(n.body?.stream)&&n.body.stream.cancel(r).catch(s=>{if(s.code!=="ERR_INVALID_STATE")throw s})}function BC({request:e,processRequestBodyChunkLength:A,processRequestEndOfBody:t,processResponse:r,processResponseEndOfBody:n,processResponseConsumeBody:s,useParallelQueue:i=!1,dispatcher:o=GS()}){Jt(o);let a=null,g=!1;e.client!=null&&(a=e.client.globalObject,g=e.client.crossOriginIsolatedCapability);let l=Hn(g),c=yg({startTime:l}),Q={controller:new Ji(o),request:e,timingInfo:c,processRequestBodyChunkLength:A,processRequestEndOfBody:t,processResponse:r,processResponseConsumeBody:s,processResponseEndOfBody:n,taskDestination:a,crossOriginIsolatedCapability:g};return Jt(!e.body||e.body.stream),e.window==="client"&&(e.window=e.client?.globalObject?.constructor?.name==="Window"?e.client:"no-window"),e.origin==="client"&&(e.origin=e.client.origin),e.policyContainer==="client"&&(e.client!=null?e.policyContainer=tS(e.client.policyContainer):e.policyContainer=AS()),e.headersList.contains("accept",!0)||e.headersList.append("accept","*/*",!0),e.headersList.contains("accept-language",!0)||e.headersList.append("accept-language","*",!0),e.priority,FS.has(e.destination),uC(Q).catch(B=>{Q.controller.terminate(B)}),Q.controller}async function uC(e,A=!1){let t=e.request,r=null;if(t.localURLsOnly&&!CS(MA(t))&&(r=Ae("local URLs only")),aS(t),rS(t)==="blocked"&&(r=Ae("bad port")),t.referrerPolicy===""&&(t.referrerPolicy=t.policyContainer.referrerPolicy),t.referrer!=="no-referrer"&&(t.referrer=QS(t)),r===null&&(r=await(async()=>{let s=MA(t);return wg(s,t.url)&&t.responseTainting==="basic"||s.protocol==="data:"||t.mode==="navigate"||t.mode==="websocket"?(t.responseTainting="basic",await aC(e)):t.mode==="same-origin"?Ae('request mode cannot be "same-origin"'):t.mode==="no-cors"?t.redirect!=="follow"?Ae('redirect mode cannot be "follow" for "no-cors" request'):(t.responseTainting="opaque",await aC(e)):pg(MA(t))?(t.responseTainting="cors",await IC(e)):Ae("URL scheme must be a HTTP(S) scheme")})()),A)return r;r.status!==0&&!r.internalResponse&&(t.responseTainting,t.responseTainting==="basic"?r=hg(r,"basic"):t.responseTainting==="cors"?r=hg(r,"cors"):t.responseTainting==="opaque"?r=hg(r,"opaque"):Jt(!1));let n=r.status===0?r:r.internalResponse;if(n.urlList.length===0&&n.urlList.push(...t.urlList),t.timingAllowFailed||(r.timingAllowPassed=!0),r.type==="opaque"&&n.status===206&&n.rangeRequested&&!t.headers.contains("range",!0)&&(r=n=Ae()),r.status!==0&&(t.method==="HEAD"||t.method==="CONNECT"||lC.includes(n.status))&&(n.body=null,e.controller.dump=!0),t.integrity){let s=o=>dg(e,Ae(o));if(t.responseTainting==="opaque"||r.body==null){s(r.error);return}let i=o=>{if(!eS(o,t.integrity)){s("integrity mismatch");return}r.body=mg(o)[0],dg(e,r)};await IS(r.body,i,s)}else dg(e,r)}function aC(e){if(Gt(e)&&e.request.redirectCount===0)return Promise.resolve(Ti(e));let{request:A}=e,{protocol:t}=MA(A);switch(t){case"about:":return Promise.resolve(Ae("about scheme is not supported"));case"blob:":{Cg||(Cg=y("node:buffer").resolveObjectURL);let r=MA(A);if(r.search.length!==0)return Promise.resolve(Ae("NetworkError when attempting to fetch resource."));let n=Cg(r.toString());if(A.method!=="GET"||!BS(n))return Promise.resolve(Ae("invalid method"));let s=xi(),i=n.size,o=Yi(`${i}`),a=n.type;if(A.headersList.contains("range",!0)){s.rangeRequested=!0;let g=A.headersList.get("range",!0),l=wS(g,!0);if(l==="failure")return Promise.resolve(Ae("failed to fetch the data URL"));let{rangeStartValue:c,rangeEndValue:Q}=l;if(c===null)c=i-Q,Q=c+Q-1;else{if(c>=i)return Promise.resolve(Ae("Range start is greater than the blob's size."));(Q===null||Q>=i)&&(Q=i-1)}let B=n.slice(c,Q,a),E=iC(B);s.body=E[0];let u=Yi(`${B.size}`),h=yS(c,Q,i);s.status=206,s.statusText="Partial Content",s.headersList.set("content-length",u,!0),s.headersList.set("content-type",a,!0),s.headersList.set("content-range",h,!0)}else{let g=iC(n);s.statusText="OK",s.body=g[0],s.headersList.set("content-length",o,!0),s.headersList.set("content-type",a,!0)}return Promise.resolve(s)}case"data:":{let r=MA(A),n=TS(r);if(n==="failure")return Promise.resolve(Ae("failed to fetch the data URL"));let s=xS(n.mimeType);return Promise.resolve(xi({statusText:"OK",headersList:[["content-type",{name:"Content-Type",value:s}]],body:mg(n.body)[0]}))}case"file:":return Promise.resolve(Ae("not implemented... yet..."));case"http:":case"https:":return IC(e).catch(r=>Ae(r));default:return Promise.resolve(Ae("unknown scheme"))}}function PS(e,A){e.request.done=!0,e.processResponseDone!=null&&queueMicrotask(()=>e.processResponseDone(A))}function dg(e,A){let t=e.timingInfo,r=()=>{let s=Date.now();e.request.destination==="document"&&(e.controller.fullTimingInfo=t),e.controller.reportTimingSteps=()=>{if(e.request.url.protocol!=="https:")return;t.endTime=s;let o=A.cacheState,a=A.bodyInfo;A.timingAllowPassed||(t=yg(t),o="");let g=0;if(e.request.mode!=="navigator"||!A.hasCrossOriginRedirects){g=A.status;let l=mS(A.headersList);l!=="failure"&&(a.contentType=YS(l))}e.request.initiatorType!=null&&EC(t,e.request.url.href,e.request.initiatorType,globalThis,o,a,g)};let i=()=>{e.request.done=!0,e.processResponseEndOfBody!=null&&queueMicrotask(()=>e.processResponseEndOfBody(A)),e.request.initiatorType!=null&&e.controller.reportTimingSteps()};queueMicrotask(()=>i())};e.processResponse!=null&&queueMicrotask(()=>{e.processResponse(A),e.processResponse=null});let n=A.type==="error"?A:A.internalResponse??A;n.body==null?r():MS(n.body.stream,()=>{r()})}async function IC(e){let A=e.request,t=null,r=null,n=e.timingInfo;if(A.serviceWorkers,t===null){if(A.redirect==="follow"&&(A.serviceWorkers="none"),r=t=await hC(e),A.responseTainting==="cors"&&gS(A,t)==="failure")return Ae("cors failure");nS(A,t)==="failure"&&(A.timingAllowFailed=!0)}return(A.responseTainting==="opaque"||t.type==="opaque")&&lS(A.origin,A.client,A.destination,r)==="blocked"?Ae("blocked"):(gC.has(r.status)&&(A.redirect!=="manual"&&e.controller.connection.destroy(void 0,!1),A.redirect==="error"?t=Ae("unexpected redirect"):A.redirect==="manual"?t=r:A.redirect==="follow"?t=await OS(e,t):Jt(!1)),t.timingInfo=n,t)}function OS(e,A){let t=e.request,r=A.internalResponse?A.internalResponse:A,n;try{if(n=iS(r,MA(t).hash),n==null)return A}catch(i){return Promise.resolve(Ae(i))}if(!pg(n))return Promise.resolve(Ae("URL scheme must be a HTTP(S) scheme"));if(t.redirectCount===20)return Promise.resolve(Ae("redirect count exceeded"));if(t.redirectCount+=1,t.mode==="cors"&&(n.username||n.password)&&!wg(t,n))return Promise.resolve(Ae('cross origin not allowed for request mode "cors"'));if(t.responseTainting==="cors"&&(n.username||n.password))return Promise.resolve(Ae('URL cannot contain credentials for request mode "cors"'));if(r.status!==303&&t.body!=null&&t.body.source==null)return Promise.resolve(Ae());if([301,302].includes(r.status)&&t.method==="POST"||r.status===303&&!VS.includes(t.method)){t.method="GET",t.body=null;for(let i of bS)t.headersList.delete(i)}wg(MA(t),n)||(t.headersList.delete("authorization",!0),t.headersList.delete("proxy-authorization",!0),t.headersList.delete("cookie",!0),t.headersList.delete("host",!0)),t.body!=null&&(Jt(t.body.source!=null),t.body=mg(t.body.source)[0]);let s=e.timingInfo;return s.redirectEndTime=s.postRedirectStartTime=Hn(e.crossOriginIsolatedCapability),s.redirectStartTime===0&&(s.redirectStartTime=s.startTime),t.urlList.push(n),oS(t,r),uC(e,!0)}async function hC(e,A=!1,t=!1){let r=e.request,n=null,s=null,i=null,o=null,a=!1;r.window==="no-window"&&r.redirect==="error"?(n=e,s=r):(s=$R(r),n={...e},n.request=s);let g=r.credentials==="include"||r.credentials==="same-origin"&&r.responseTainting==="basic",l=s.body?s.body.length:null,c=null;if(s.body==null&&["POST","PUT"].includes(s.method)&&(c="0"),l!=null&&(c=Yi(`${l}`)),c!=null&&s.headersList.append("content-length",c,!0),l!=null&&s.keepalive,s.referrer instanceof URL&&s.headersList.append("referer",Yi(s.referrer.href),!0),sS(s),cS(s),s.headersList.contains("user-agent",!0)||s.headersList.append("user-agent",vS),s.cache==="default"&&(s.headersList.contains("if-modified-since",!0)||s.headersList.contains("if-none-match",!0)||s.headersList.contains("if-unmodified-since",!0)||s.headersList.contains("if-match",!0)||s.headersList.contains("if-range",!0))&&(s.cache="no-store"),s.cache==="no-cache"&&!s.preventNoCacheCacheControlHeaderModification&&!s.headersList.contains("cache-control",!0)&&s.headersList.append("cache-control","max-age=0",!0),(s.cache==="no-store"||s.cache==="reload")&&(s.headersList.contains("pragma",!0)||s.headersList.append("pragma","no-cache",!0),s.headersList.contains("cache-control",!0)||s.headersList.append("cache-control","no-cache",!0)),s.headersList.contains("range",!0)&&s.headersList.append("accept-encoding","identity",!0),s.headersList.contains("accept-encoding",!0)||(fS(MA(s))?s.headersList.append("accept-encoding","br, gzip, deflate",!0):s.headersList.append("accept-encoding","gzip, deflate",!0)),s.headersList.delete("host",!0),o==null&&(s.cache="no-store"),s.cache!=="no-store"&&s.cache,i==null){if(s.cache==="only-if-cached")return Ae("only if cached");let Q=await zS(n,g,t);!kS.has(s.method)&&Q.status>=200&&Q.status<=399,a&&Q.status,i==null&&(i=Q)}if(i.urlList=[...s.urlList],s.headersList.contains("range",!0)&&(i.rangeRequested=!0),i.requestIncludesCredentials=g,i.status===407)return r.window==="no-window"?Ae():Gt(e)?Ti(e):Ae("proxy authentication required");if(i.status===421&&!t&&(r.body==null||r.body.source!=null)){if(Gt(e))return Ti(e);e.controller.connection.destroy(),i=await hC(e,A,!0)}return i}async function zS(e,A=!1,t=!1){Jt(!e.controller.connection||e.controller.connection.destroyed),e.controller.connection={abort:null,destroyed:!1,destroy(E,u=!0){this.destroyed||(this.destroyed=!0,u&&this.abort?.(E??new DOMException("The operation was aborted.","AbortError")))}};let r=e.request,n=null,s=e.timingInfo;null==null&&(r.cache="no-store");let o=t?"yes":"no";r.mode;let a=null;if(r.body==null&&e.processRequestEndOfBody)queueMicrotask(()=>e.processRequestEndOfBody());else if(r.body!=null){let E=async function*(I){Gt(e)||(yield I,e.processRequestBodyChunkLength?.(I.byteLength))},u=()=>{Gt(e)||e.processRequestEndOfBody&&e.processRequestEndOfBody()},h=I=>{Gt(e)||(I.name==="AbortError"?e.controller.abort():e.controller.terminate(I))};a=(async function*(){try{for await(let I of r.body.stream)yield*E(I);u()}catch(I){h(I)}})()}try{let{body:E,status:u,statusText:h,headersList:I,socket:C}=await B({body:a});if(C)n=xi({status:u,statusText:h,headersList:I,socket:C});else{let D=E[Symbol.asyncIterator]();e.controller.next=()=>D.next(),n=xi({status:u,statusText:h,headersList:I})}}catch(E){return E.name==="AbortError"?(e.controller.connection.destroy(),Ti(e,E)):Ae(E)}let g=async()=>{await e.controller.resume()},l=E=>{Gt(e)||e.controller.abort(E)},c=new ReadableStream({async start(E){e.controller.controller=E},async pull(E){await g(E)},async cancel(E){await l(E)},type:"bytes"});n.body={stream:c,source:null,length:null},e.controller.onAborted=Q,e.controller.on("terminated",Q),e.controller.resume=async()=>{for(;;){let E,u;try{let{done:I,value:C}=await e.controller.next();if(sC(e))break;E=I?void 0:C}catch(I){e.controller.ended&&!s.encodedBodySize?E=void 0:(E=I,u=!0)}if(E===void 0){hS(e.controller.controller),PS(e,n);return}if(s.decodedBodySize+=E?.byteLength??0,u){e.controller.terminate(E);return}let h=new Uint8Array(E);if(h.byteLength&&e.controller.controller.enqueue(h),LS(c)){e.controller.terminate();return}if(e.controller.controller.desiredSize<=0)return}};function Q(E){sC(e)?(n.aborted=!0,Gi(c)&&e.controller.controller.error(e.controller.serializedAbortReason)):Gi(c)&&e.controller.controller.error(new TypeError("terminated",{cause:uS(E)?E:void 0})),e.controller.connection.destroy()}return n;function B({body:E}){let u=MA(r),h=e.controller.dispatcher;return new Promise((I,C)=>h.dispatch({path:u.pathname+u.search,origin:u.origin,method:r.method,body:h.isMockActive?r.body&&(r.body.source||r.body.stream):E,headers:r.headersList.entries,maxRedirections:0,upgrade:r.mode==="websocket"?"websocket":void 0},{body:null,abort:null,onConnect(D){let{connection:f}=e.controller;s.finalConnectionTimingInfo=dS(void 0,s.postRedirectStartTime,e.crossOriginIsolatedCapability),f.destroyed?D(new DOMException("The operation was aborted.","AbortError")):(e.controller.on("terminated",D),this.abort=f.abort=D),s.finalNetworkRequestStartTime=Hn(e.crossOriginIsolatedCapability)},onResponseStarted(){s.finalNetworkResponseStartTime=Hn(e.crossOriginIsolatedCapability)},onHeaders(D,f,R,S){if(D<200)return;let d="",se=new nC;for(let w=0;w<f.length;w+=2)se.append(oC(f[w]),f[w+1].toString("latin1"),!0);d=se.get("location",!0),this.body=new SS({read:R});let ke=[],Le=d&&r.redirect==="follow"&&gC.has(D);if(r.method!=="HEAD"&&r.method!=="CONNECT"&&!lC.includes(D)&&!Le){let w=se.get("content-encoding",!0),H=w?w.toLowerCase().split(","):[],q=5;if(H.length>q)return C(new Error(`too many content-encodings in response: ${H.length}, maximum allowed is ${q}`)),!0;for(let ee=H.length-1;ee>=0;--ee){let j=H[ee].trim();if(j==="x-gzip"||j==="gzip")ke.push(gt.createGunzip({flush:gt.constants.Z_SYNC_FLUSH,finishFlush:gt.constants.Z_SYNC_FLUSH}));else if(j==="deflate")ke.push(pS({flush:gt.constants.Z_SYNC_FLUSH,finishFlush:gt.constants.Z_SYNC_FLUSH}));else if(j==="br")ke.push(gt.createBrotliDecompress({flush:gt.constants.BROTLI_OPERATION_FLUSH,finishFlush:gt.constants.BROTLI_OPERATION_FLUSH}));else{ke.length=0;break}}}let me=this.onError.bind(this);return I({status:D,statusText:S,headersList:se,body:ke.length?NS(this.body,...ke,w=>{w&&this.onError(w)}).on("error",me):this.body.on("error",me)}),!0},onData(D){if(e.controller.dump)return;let f=D;return s.encodedBodySize+=f.byteLength,this.body.push(f)},onComplete(){this.abort&&e.controller.off("terminated",this.abort),e.controller.onAborted&&e.controller.off("terminated",e.controller.onAborted),e.controller.ended=!0,this.body.push(null)},onError(D){this.abort&&e.controller.off("terminated",this.abort),this.body?.destroy(D),e.controller.terminate(D),C(D)},onUpgrade(D,f,R){if(D!==101)return;let S=new nC;for(let d=0;d<f.length;d+=2)S.append(oC(f[d]),f[d+1].toString("latin1"),!0);return I({status:D,statusText:HS[D],headersList:S,socket:R}),!0}}))}}CC.exports={fetch:WS,Fetch:Ji,fetching:BC,finalizeAndReportTiming:QC}});var Dg=p((vY,fC)=>{"use strict";fC.exports={kState:Symbol("FileReader state"),kResult:Symbol("FileReader result"),kError:Symbol("FileReader error"),kLastProgressEventFired:Symbol("FileReader last progress event fired timestamp"),kEvents:Symbol("FileReader events"),kAborted:Symbol("FileReader aborted")}});var wC=p((qY,dC)=>{"use strict";var{webidl:$e}=Se(),Hi=Symbol("ProgressEvent state"),kg=class e extends Event{constructor(A,t={}){A=$e.converters.DOMString(A,"ProgressEvent constructor","type"),t=$e.converters.ProgressEventInit(t??{}),super(A,t),this[Hi]={lengthComputable:t.lengthComputable,loaded:t.loaded,total:t.total}}get lengthComputable(){return $e.brandCheck(this,e),this[Hi].lengthComputable}get loaded(){return $e.brandCheck(this,e),this[Hi].loaded}get total(){return $e.brandCheck(this,e),this[Hi].total}};$e.converters.ProgressEventInit=$e.dictionaryConverter([{key:"lengthComputable",converter:$e.converters.boolean,defaultValue:()=>!1},{key:"loaded",converter:$e.converters["unsigned long long"],defaultValue:()=>0},{key:"total",converter:$e.converters["unsigned long long"],defaultValue:()=>0},{key:"bubbles",converter:$e.converters.boolean,defaultValue:()=>!1},{key:"cancelable",converter:$e.converters.boolean,defaultValue:()=>!1},{key:"composed",converter:$e.converters.boolean,defaultValue:()=>!1}]);dC.exports={ProgressEvent:kg}});var pC=p((WY,yC)=>{"use strict";function ZS(e){if(!e)return"failure";switch(e.trim().toLowerCase()){case"unicode-1-1-utf-8":case"unicode11utf8":case"unicode20utf8":case"utf-8":case"utf8":case"x-unicode20utf8":return"UTF-8";case"866":case"cp866":case"csibm866":case"ibm866":return"IBM866";case"csisolatin2":case"iso-8859-2":case"iso-ir-101":case"iso8859-2":case"iso88592":case"iso_8859-2":case"iso_8859-2:1987":case"l2":case"latin2":return"ISO-8859-2";case"csisolatin3":case"iso-8859-3":case"iso-ir-109":case"iso8859-3":case"iso88593":case"iso_8859-3":case"iso_8859-3:1988":case"l3":case"latin3":return"ISO-8859-3";case"csisolatin4":case"iso-8859-4":case"iso-ir-110":case"iso8859-4":case"iso88594":case"iso_8859-4":case"iso_8859-4:1988":case"l4":case"latin4":return"ISO-8859-4";case"csisolatincyrillic":case"cyrillic":case"iso-8859-5":case"iso-ir-144":case"iso8859-5":case"iso88595":case"iso_8859-5":case"iso_8859-5:1988":return"ISO-8859-5";case"arabic":case"asmo-708":case"csiso88596e":case"csiso88596i":case"csisolatinarabic":case"ecma-114":case"iso-8859-6":case"iso-8859-6-e":case"iso-8859-6-i":case"iso-ir-127":case"iso8859-6":case"iso88596":case"iso_8859-6":case"iso_8859-6:1987":return"ISO-8859-6";case"csisolatingreek":case"ecma-118":case"elot_928":case"greek":case"greek8":case"iso-8859-7":case"iso-ir-126":case"iso8859-7":case"iso88597":case"iso_8859-7":case"iso_8859-7:1987":case"sun_eu_greek":return"ISO-8859-7";case"csiso88598e":case"csisolatinhebrew":case"hebrew":case"iso-8859-8":case"iso-8859-8-e":case"iso-ir-138":case"iso8859-8":case"iso88598":case"iso_8859-8":case"iso_8859-8:1988":case"visual":return"ISO-8859-8";case"csiso88598i":case"iso-8859-8-i":case"logical":return"ISO-8859-8-I";case"csisolatin6":case"iso-8859-10":case"iso-ir-157":case"iso8859-10":case"iso885910":case"l6":case"latin6":return"ISO-8859-10";case"iso-8859-13":case"iso8859-13":case"iso885913":return"ISO-8859-13";case"iso-8859-14":case"iso8859-14":case"iso885914":return"ISO-8859-14";case"csisolatin9":case"iso-8859-15":case"iso8859-15":case"iso885915":case"iso_8859-15":case"l9":return"ISO-8859-15";case"iso-8859-16":return"ISO-8859-16";case"cskoi8r":case"koi":case"koi8":case"koi8-r":case"koi8_r":return"KOI8-R";case"koi8-ru":case"koi8-u":return"KOI8-U";case"csmacintosh":case"mac":case"macintosh":case"x-mac-roman":return"macintosh";case"iso-8859-11":case"iso8859-11":case"iso885911":case"tis-620":case"windows-874":return"windows-874";case"cp1250":case"windows-1250":case"x-cp1250":return"windows-1250";case"cp1251":case"windows-1251":case"x-cp1251":return"windows-1251";case"ansi_x3.4-1968":case"ascii":case"cp1252":case"cp819":case"csisolatin1":case"ibm819":case"iso-8859-1":case"iso-ir-100":case"iso8859-1":case"iso88591":case"iso_8859-1":case"iso_8859-1:1987":case"l1":case"latin1":case"us-ascii":case"windows-1252":case"x-cp1252":return"windows-1252";case"cp1253":case"windows-1253":case"x-cp1253":return"windows-1253";case"cp1254":case"csisolatin5":case"iso-8859-9":case"iso-ir-148":case"iso8859-9":case"iso88599":case"iso_8859-9":case"iso_8859-9:1989":case"l5":case"latin5":case"windows-1254":case"x-cp1254":return"windows-1254";case"cp1255":case"windows-1255":case"x-cp1255":return"windows-1255";case"cp1256":case"windows-1256":case"x-cp1256":return"windows-1256";case"cp1257":case"windows-1257":case"x-cp1257":return"windows-1257";case"cp1258":case"windows-1258":case"x-cp1258":return"windows-1258";case"x-mac-cyrillic":case"x-mac-ukrainian":return"x-mac-cyrillic";case"chinese":case"csgb2312":case"csiso58gb231280":case"gb2312":case"gb_2312":case"gb_2312-80":case"gbk":case"iso-ir-58":case"x-gbk":return"GBK";case"gb18030":return"gb18030";case"big5":case"big5-hkscs":case"cn-big5":case"csbig5":case"x-x-big5":return"Big5";case"cseucpkdfmtjapanese":case"euc-jp":case"x-euc-jp":return"EUC-JP";case"csiso2022jp":case"iso-2022-jp":return"ISO-2022-JP";case"csshiftjis":case"ms932":case"ms_kanji":case"shift-jis":case"shift_jis":case"sjis":case"windows-31j":case"x-sjis":return"Shift_JIS";case"cseuckr":case"csksc56011987":case"euc-kr":case"iso-ir-149":case"korean":case"ks_c_5601-1987":case"ks_c_5601-1989":case"ksc5601":case"ksc_5601":case"windows-949":return"EUC-KR";case"csiso2022kr":case"hz-gb-2312":case"iso-2022-cn":case"iso-2022-cn-ext":case"iso-2022-kr":case"replacement":return"replacement";case"unicodefffe":case"utf-16be":return"UTF-16BE";case"csunicode":case"iso-10646-ucs-2":case"ucs-2":case"unicode":case"unicodefeff":case"utf-16":case"utf-16le":return"UTF-16LE";case"x-user-defined":return"x-user-defined";default:return"failure"}}yC.exports={getEncoding:ZS}});var NC=p((PY,SC)=>{"use strict";var{kState:Lr,kError:bg,kResult:mC,kAborted:vn,kLastProgressEventFired:Fg}=Dg(),{ProgressEvent:_S}=wC(),{getEncoding:DC}=pC(),{serializeAMimeType:KS,parseMIMEType:kC}=He(),{types:XS}=y("node:util"),{StringDecoder:bC}=y("string_decoder"),{btoa:FC}=y("node:buffer"),jS={enumerable:!0,writable:!1,configurable:!1};function $S(e,A,t,r){if(e[Lr]==="loading")throw new DOMException("Invalid state","InvalidStateError");e[Lr]="loading",e[mC]=null,e[bg]=null;let s=A.stream().getReader(),i=[],o=s.read(),a=!0;(async()=>{for(;!e[vn];)try{let{done:g,value:l}=await o;if(a&&!e[vn]&&queueMicrotask(()=>{lt("loadstart",e)}),a=!1,!g&&XS.isUint8Array(l))i.push(l),(e[Fg]===void 0||Date.now()-e[Fg]>=50)&&!e[vn]&&(e[Fg]=Date.now(),queueMicrotask(()=>{lt("progress",e)})),o=s.read();else if(g){queueMicrotask(()=>{e[Lr]="done";try{let c=eN(i,t,A.type,r);if(e[vn])return;e[mC]=c,lt("load",e)}catch(c){e[bg]=c,lt("error",e)}e[Lr]!=="loading"&&lt("loadend",e)});break}}catch(g){if(e[vn])return;queueMicrotask(()=>{e[Lr]="done",e[bg]=g,lt("error",e),e[Lr]!=="loading"&&lt("loadend",e)});break}})()}function lt(e,A){let t=new _S(e,{bubbles:!1,cancelable:!1});A.dispatchEvent(t)}function eN(e,A,t,r){switch(A){case"DataURL":{let n="data:",s=kC(t||"application/octet-stream");s!=="failure"&&(n+=KS(s)),n+=";base64,";let i=new bC("latin1");for(let o of e)n+=FC(i.write(o));return n+=FC(i.end()),n}case"Text":{let n="failure";if(r&&(n=DC(r)),n==="failure"&&t){let s=kC(t);s!=="failure"&&(n=DC(s.parameters.get("charset")))}return n==="failure"&&(n="UTF-8"),AN(e,n)}case"ArrayBuffer":return RC(e).buffer;case"BinaryString":{let n="",s=new bC("latin1");for(let i of e)n+=s.write(i);return n+=s.end(),n}}}function AN(e,A){let t=RC(e),r=tN(t),n=0;r!==null&&(A=r,n=r==="UTF-8"?3:2);let s=t.slice(n);return new TextDecoder(A).decode(s)}function tN(e){let[A,t,r]=e;return A===239&&t===187&&r===191?"UTF-8":A===254&&t===255?"UTF-16BE":A===255&&t===254?"UTF-16LE":null}function RC(e){let A=e.reduce((r,n)=>r+n.byteLength,0),t=0;return e.reduce((r,n)=>(r.set(n,t),t+=n.byteLength,r),new Uint8Array(A))}SC.exports={staticPropertyDescriptors:jS,readOperation:$S,fireAProgressEvent:lt}});var TC=p((OY,LC)=>{"use strict";var{staticPropertyDescriptors:Tr,readOperation:Vi,fireAProgressEvent:MC}=NC(),{kState:Ht,kError:UC,kResult:vi,kEvents:X,kAborted:rN}=Dg(),{webidl:ne}=Se(),{kEnumerableProperty:qe}=v(),hA=class e extends EventTarget{constructor(){super(),this[Ht]="empty",this[vi]=null,this[UC]=null,this[X]={loadend:null,error:null,abort:null,load:null,progress:null,loadstart:null}}readAsArrayBuffer(A){ne.brandCheck(this,e),ne.argumentLengthCheck(arguments,1,"FileReader.readAsArrayBuffer"),A=ne.converters.Blob(A,{strict:!1}),Vi(this,A,"ArrayBuffer")}readAsBinaryString(A){ne.brandCheck(this,e),ne.argumentLengthCheck(arguments,1,"FileReader.readAsBinaryString"),A=ne.converters.Blob(A,{strict:!1}),Vi(this,A,"BinaryString")}readAsText(A,t=void 0){ne.brandCheck(this,e),ne.argumentLengthCheck(arguments,1,"FileReader.readAsText"),A=ne.converters.Blob(A,{strict:!1}),t!==void 0&&(t=ne.converters.DOMString(t,"FileReader.readAsText","encoding")),Vi(this,A,"Text",t)}readAsDataURL(A){ne.brandCheck(this,e),ne.argumentLengthCheck(arguments,1,"FileReader.readAsDataURL"),A=ne.converters.Blob(A,{strict:!1}),Vi(this,A,"DataURL")}abort(){if(this[Ht]==="empty"||this[Ht]==="done"){this[vi]=null;return}this[Ht]==="loading"&&(this[Ht]="done",this[vi]=null),this[rN]=!0,MC("abort",this),this[Ht]!=="loading"&&MC("loadend",this)}get readyState(){switch(ne.brandCheck(this,e),this[Ht]){case"empty":return this.EMPTY;case"loading":return this.LOADING;case"done":return this.DONE}}get result(){return ne.brandCheck(this,e),this[vi]}get error(){return ne.brandCheck(this,e),this[UC]}get onloadend(){return ne.brandCheck(this,e),this[X].loadend}set onloadend(A){ne.brandCheck(this,e),this[X].loadend&&this.removeEventListener("loadend",this[X].loadend),typeof A=="function"?(this[X].loadend=A,this.addEventListener("loadend",A)):this[X].loadend=null}get onerror(){return ne.brandCheck(this,e),this[X].error}set onerror(A){ne.brandCheck(this,e),this[X].error&&this.removeEventListener("error",this[X].error),typeof A=="function"?(this[X].error=A,this.addEventListener("error",A)):this[X].error=null}get onloadstart(){return ne.brandCheck(this,e),this[X].loadstart}set onloadstart(A){ne.brandCheck(this,e),this[X].loadstart&&this.removeEventListener("loadstart",this[X].loadstart),typeof A=="function"?(this[X].loadstart=A,this.addEventListener("loadstart",A)):this[X].loadstart=null}get onprogress(){return ne.brandCheck(this,e),this[X].progress}set onprogress(A){ne.brandCheck(this,e),this[X].progress&&this.removeEventListener("progress",this[X].progress),typeof A=="function"?(this[X].progress=A,this.addEventListener("progress",A)):this[X].progress=null}get onload(){return ne.brandCheck(this,e),this[X].load}set onload(A){ne.brandCheck(this,e),this[X].load&&this.removeEventListener("load",this[X].load),typeof A=="function"?(this[X].load=A,this.addEventListener("load",A)):this[X].load=null}get onabort(){return ne.brandCheck(this,e),this[X].abort}set onabort(A){ne.brandCheck(this,e),this[X].abort&&this.removeEventListener("abort",this[X].abort),typeof A=="function"?(this[X].abort=A,this.addEventListener("abort",A)):this[X].abort=null}};hA.EMPTY=hA.prototype.EMPTY=0;hA.LOADING=hA.prototype.LOADING=1;hA.DONE=hA.prototype.DONE=2;Object.defineProperties(hA.prototype,{EMPTY:Tr,LOADING:Tr,DONE:Tr,readAsArrayBuffer:qe,readAsBinaryString:qe,readAsText:qe,readAsDataURL:qe,abort:qe,readyState:qe,result:qe,error:qe,onloadstart:qe,onprogress:qe,onload:qe,onabort:qe,onerror:qe,onloadend:qe,[Symbol.toStringTag]:{value:"FileReader",writable:!1,enumerable:!1,configurable:!0}});Object.defineProperties(hA,{EMPTY:Tr,LOADING:Tr,DONE:Tr});LC.exports={FileReader:hA}});var qi=p((zY,xC)=>{"use strict";xC.exports={kConstruct:Qe().kConstruct}});var JC=p((ZY,GC)=>{"use strict";var nN=y("node:assert"),{URLSerializer:YC}=He(),{isValidHeaderName:sN}=Oe();function iN(e,A,t=!1){let r=YC(e,t),n=YC(A,t);return r===n}function oN(e){nN(e!==null);let A=[];for(let t of e.split(","))t=t.trim(),sN(t)&&A.push(t);return A}GC.exports={urlEquals:iN,getFieldValues:oN}});var vC=p((_Y,VC)=>{"use strict";var{kConstruct:aN}=qi(),{urlEquals:cN,getFieldValues:Rg}=JC(),{kEnumerableProperty:Vt,isDisturbed:gN}=v(),{webidl:M}=Se(),{Response:lN,cloneResponse:QN,fromInnerResponse:EN}=Jn(),{Request:ZA,fromInnerRequest:BN}=Ur(),{kState:CA}=jA(),{fetching:uN}=Vn(),{urlIsHttpHttpsScheme:Wi,createDeferredPromise:xr,readAllBytes:IN}=Oe(),Sg=y("node:assert"),Pi=class e{#e;constructor(){arguments[0]!==aN&&M.illegalConstructor(),M.util.markAsUncloneable(this),this.#e=arguments[1]}async match(A,t={}){M.brandCheck(this,e);let r="Cache.match";M.argumentLengthCheck(arguments,1,r),A=M.converters.RequestInfo(A,r,"request"),t=M.converters.CacheQueryOptions(t,r,"options");let n=this.#n(A,t,1);if(n.length!==0)return n[0]}async matchAll(A=void 0,t={}){M.brandCheck(this,e);let r="Cache.matchAll";return A!==void 0&&(A=M.converters.RequestInfo(A,r,"request")),t=M.converters.CacheQueryOptions(t,r,"options"),this.#n(A,t)}async add(A){M.brandCheck(this,e);let t="Cache.add";M.argumentLengthCheck(arguments,1,t),A=M.converters.RequestInfo(A,t,"request");let r=[A];return await this.addAll(r)}async addAll(A){M.brandCheck(this,e);let t="Cache.addAll";M.argumentLengthCheck(arguments,1,t);let r=[],n=[];for(let Q of A){if(Q===void 0)throw M.errors.conversionFailed({prefix:t,argument:"Argument 1",types:["undefined is not allowed"]});if(Q=M.converters.RequestInfo(Q),typeof Q=="string")continue;let B=Q[CA];if(!Wi(B.url)||B.method!=="GET")throw M.errors.exception({header:t,message:"Expected http/s scheme when method is not GET."})}let s=[];for(let Q of A){let B=new ZA(Q)[CA];if(!Wi(B.url))throw M.errors.exception({header:t,message:"Expected http/s scheme."});B.initiator="fetch",B.destination="subresource",n.push(B);let E=xr();s.push(uN({request:B,processResponse(u){if(u.type==="error"||u.status===206||u.status<200||u.status>299)E.reject(M.errors.exception({header:"Cache.addAll",message:"Received an invalid status code or the request failed."}));else if(u.headersList.contains("vary")){let h=Rg(u.headersList.get("vary"));for(let I of h)if(I==="*"){E.reject(M.errors.exception({header:"Cache.addAll",message:"invalid vary field value"}));for(let C of s)C.abort();return}}},processResponseEndOfBody(u){if(u.aborted){E.reject(new DOMException("aborted","AbortError"));return}E.resolve(u)}})),r.push(E.promise)}let o=await Promise.all(r),a=[],g=0;for(let Q of o){let B={type:"put",request:n[g],response:Q};a.push(B),g++}let l=xr(),c=null;try{this.#A(a)}catch(Q){c=Q}return queueMicrotask(()=>{c===null?l.resolve(void 0):l.reject(c)}),l.promise}async put(A,t){M.brandCheck(this,e);let r="Cache.put";M.argumentLengthCheck(arguments,2,r),A=M.converters.RequestInfo(A,r,"request"),t=M.converters.Response(t,r,"response");let n=null;if(A instanceof ZA?n=A[CA]:n=new ZA(A)[CA],!Wi(n.url)||n.method!=="GET")throw M.errors.exception({header:r,message:"Expected an http/s scheme when method is not GET"});let s=t[CA];if(s.status===206)throw M.errors.exception({header:r,message:"Got 206 status"});if(s.headersList.contains("vary")){let B=Rg(s.headersList.get("vary"));for(let E of B)if(E==="*")throw M.errors.exception({header:r,message:"Got * vary field value"})}if(s.body&&(gN(s.body.stream)||s.body.stream.locked))throw M.errors.exception({header:r,message:"Response body is locked or disturbed"});let i=QN(s),o=xr();if(s.body!=null){let E=s.body.stream.getReader();IN(E).then(o.resolve,o.reject)}else o.resolve(void 0);let a=[],g={type:"put",request:n,response:i};a.push(g);let l=await o.promise;i.body!=null&&(i.body.source=l);let c=xr(),Q=null;try{this.#A(a)}catch(B){Q=B}return queueMicrotask(()=>{Q===null?c.resolve():c.reject(Q)}),c.promise}async delete(A,t={}){M.brandCheck(this,e);let r="Cache.delete";M.argumentLengthCheck(arguments,1,r),A=M.converters.RequestInfo(A,r,"request"),t=M.converters.CacheQueryOptions(t,r,"options");let n=null;if(A instanceof ZA){if(n=A[CA],n.method!=="GET"&&!t.ignoreMethod)return!1}else Sg(typeof A=="string"),n=new ZA(A)[CA];let s=[],i={type:"delete",request:n,options:t};s.push(i);let o=xr(),a=null,g;try{g=this.#A(s)}catch(l){a=l}return queueMicrotask(()=>{a===null?o.resolve(!!g?.length):o.reject(a)}),o.promise}async keys(A=void 0,t={}){M.brandCheck(this,e);let r="Cache.keys";A!==void 0&&(A=M.converters.RequestInfo(A,r,"request")),t=M.converters.CacheQueryOptions(t,r,"options");let n=null;if(A!==void 0)if(A instanceof ZA){if(n=A[CA],n.method!=="GET"&&!t.ignoreMethod)return[]}else typeof A=="string"&&(n=new ZA(A)[CA]);let s=xr(),i=[];if(A===void 0)for(let o of this.#e)i.push(o[0]);else{let o=this.#t(n,t);for(let a of o)i.push(a[0])}return queueMicrotask(()=>{let o=[];for(let a of i){let g=BN(a,new AbortController().signal,"immutable");o.push(g)}s.resolve(Object.freeze(o))}),s.promise}#A(A){let t=this.#e,r=[...t],n=[],s=[];try{for(let i of A){if(i.type!=="delete"&&i.type!=="put")throw M.errors.exception({header:"Cache.#batchCacheOperations",message:'operation type does not match "delete" or "put"'});if(i.type==="delete"&&i.response!=null)throw M.errors.exception({header:"Cache.#batchCacheOperations",message:"delete operation should not have an associated response"});if(this.#t(i.request,i.options,n).length)throw new DOMException("???","InvalidStateError");let o;if(i.type==="delete"){if(o=this.#t(i.request,i.options),o.length===0)return[];for(let a of o){let g=t.indexOf(a);Sg(g!==-1),t.splice(g,1)}}else if(i.type==="put"){if(i.response==null)throw M.errors.exception({header:"Cache.#batchCacheOperations",message:"put operation should have an associated response"});let a=i.request;if(!Wi(a.url))throw M.errors.exception({header:"Cache.#batchCacheOperations",message:"expected http or https scheme"});if(a.method!=="GET")throw M.errors.exception({header:"Cache.#batchCacheOperations",message:"not get method"});if(i.options!=null)throw M.errors.exception({header:"Cache.#batchCacheOperations",message:"options must not be defined"});o=this.#t(i.request);for(let g of o){let l=t.indexOf(g);Sg(l!==-1),t.splice(l,1)}t.push([i.request,i.response]),n.push([i.request,i.response])}s.push([i.request,i.response])}return s}catch(i){throw this.#e.length=0,this.#e=r,i}}#t(A,t,r){let n=[],s=r??this.#e;for(let i of s){let[o,a]=i;this.#s(A,o,a,t)&&n.push(i)}return n}#s(A,t,r=null,n){let s=new URL(A.url),i=new URL(t.url);if(n?.ignoreSearch&&(i.search="",s.search=""),!cN(s,i,!0))return!1;if(r==null||n?.ignoreVary||!r.headersList.contains("vary"))return!0;let o=Rg(r.headersList.get("vary"));for(let a of o){if(a==="*")return!1;let g=t.headersList.get(a),l=A.headersList.get(a);if(g!==l)return!1}return!0}#n(A,t,r=1/0){let n=null;if(A!==void 0)if(A instanceof ZA){if(n=A[CA],n.method!=="GET"&&!t.ignoreMethod)return[]}else typeof A=="string"&&(n=new ZA(A)[CA]);let s=[];if(A===void 0)for(let o of this.#e)s.push(o[1]);else{let o=this.#t(n,t);for(let a of o)s.push(a[1])}let i=[];for(let o of s){let a=EN(o,"immutable");if(i.push(a.clone()),i.length>=r)break}return Object.freeze(i)}};Object.defineProperties(Pi.prototype,{[Symbol.toStringTag]:{value:"Cache",configurable:!0},match:Vt,matchAll:Vt,add:Vt,addAll:Vt,put:Vt,delete:Vt,keys:Vt});var HC=[{key:"ignoreSearch",converter:M.converters.boolean,defaultValue:()=>!1},{key:"ignoreMethod",converter:M.converters.boolean,defaultValue:()=>!1},{key:"ignoreVary",converter:M.converters.boolean,defaultValue:()=>!1}];M.converters.CacheQueryOptions=M.dictionaryConverter(HC);M.converters.MultiCacheQueryOptions=M.dictionaryConverter([...HC,{key:"cacheName",converter:M.converters.DOMString}]);M.converters.Response=M.interfaceConverter(lN);M.converters["sequence<RequestInfo>"]=M.sequenceConverter(M.converters.RequestInfo);VC.exports={Cache:Pi}});var WC=p((KY,qC)=>{"use strict";var{kConstruct:qn}=qi(),{Cache:Oi}=vC(),{webidl:Ue}=Se(),{kEnumerableProperty:Wn}=v(),zi=class e{#e=new Map;constructor(){arguments[0]!==qn&&Ue.illegalConstructor(),Ue.util.markAsUncloneable(this)}async match(A,t={}){if(Ue.brandCheck(this,e),Ue.argumentLengthCheck(arguments,1,"CacheStorage.match"),A=Ue.converters.RequestInfo(A),t=Ue.converters.MultiCacheQueryOptions(t),t.cacheName!=null){if(this.#e.has(t.cacheName)){let r=this.#e.get(t.cacheName);return await new Oi(qn,r).match(A,t)}}else for(let r of this.#e.values()){let s=await new Oi(qn,r).match(A,t);if(s!==void 0)return s}}async has(A){Ue.brandCheck(this,e);let t="CacheStorage.has";return Ue.argumentLengthCheck(arguments,1,t),A=Ue.converters.DOMString(A,t,"cacheName"),this.#e.has(A)}async open(A){Ue.brandCheck(this,e);let t="CacheStorage.open";if(Ue.argumentLengthCheck(arguments,1,t),A=Ue.converters.DOMString(A,t,"cacheName"),this.#e.has(A)){let n=this.#e.get(A);return new Oi(qn,n)}let r=[];return this.#e.set(A,r),new Oi(qn,r)}async delete(A){Ue.brandCheck(this,e);let t="CacheStorage.delete";return Ue.argumentLengthCheck(arguments,1,t),A=Ue.converters.DOMString(A,t,"cacheName"),this.#e.delete(A)}async keys(){return Ue.brandCheck(this,e),[...this.#e.keys()]}};Object.defineProperties(zi.prototype,{[Symbol.toStringTag]:{value:"CacheStorage",configurable:!0},match:Wn,has:Wn,open:Wn,delete:Wn,keys:Wn});qC.exports={CacheStorage:zi}});var OC=p((XY,PC)=>{"use strict";PC.exports={maxAttributeValueSize:1024,maxNameValuePairSize:4096}});var Ug=p((jY,KC)=>{"use strict";function hN(e){for(let A=0;A<e.length;++A){let t=e.charCodeAt(A);if(t>=0&&t<=8||t>=10&&t<=31||t===127)return!0}return!1}function Ng(e){for(let A=0;A<e.length;++A){let t=e.charCodeAt(A);if(t<33||t>126||t===34||t===40||t===41||t===60||t===62||t===64||t===44||t===59||t===58||t===92||t===47||t===91||t===93||t===63||t===61||t===123||t===125)throw new Error("Invalid cookie name")}}function Mg(e){let A=e.length,t=0;if(e[0]==='"'){if(A===1||e[A-1]!=='"')throw new Error("Invalid cookie value");--A,++t}for(;t<A;){let r=e.charCodeAt(t++);if(r<33||r>126||r===34||r===44||r===59||r===92)throw new Error("Invalid cookie value")}}function ZC(e){for(let A=0;A<e.length;++A){let t=e.charCodeAt(A);if(t<32||t>126||t===59)throw new Error("Invalid cookie path")}}function zC(e){return e>=48&&e<=57||e>=65&&e<=90||e>=97&&e<=122}function CN(e){if(e===" ")return;if(e.length>255)throw new Error("Invalid cookie domain");let A=0;for(let t=0;t<e.length;++t){let r=e.charCodeAt(t);if(r===46){if(A===0)throw new Error("Invalid cookie domain");if(e.charCodeAt(t-1)===45)throw new Error("Invalid cookie domain");A=0;continue}if(A===0&&!zC(r))throw new Error("Invalid cookie domain");if(!zC(r)&&r!==45)throw new Error("Invalid cookie domain");if(++A>63)throw new Error("Invalid cookie domain")}if(A===0||e.charCodeAt(e.length-1)===45)throw new Error("Invalid cookie domain")}var fN=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dN=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],Zi=Array(61).fill(0).map((e,A)=>A.toString().padStart(2,"0"));function _C(e){return typeof e=="number"&&(e=new Date(e)),`${fN[e.getUTCDay()]}, ${Zi[e.getUTCDate()]} ${dN[e.getUTCMonth()]} ${e.getUTCFullYear()} ${Zi[e.getUTCHours()]}:${Zi[e.getUTCMinutes()]}:${Zi[e.getUTCSeconds()]} GMT`}function wN(e){if(e<0)throw new Error("Invalid cookie max-age")}function yN(e){if(e.name.length===0)return null;Ng(e.name),Mg(e.value);let A=[`${e.name}=${e.value}`];e.name.startsWith("__Secure-")&&(e.secure=!0),e.name.startsWith("__Host-")&&(e.secure=!0,e.domain=null,e.path="/"),e.secure&&A.push("Secure"),e.httpOnly&&A.push("HttpOnly"),typeof e.maxAge=="number"&&(wN(e.maxAge),A.push(`Max-Age=${e.maxAge}`)),e.domain&&(CN(e.domain),A.push(`Domain=${e.domain}`)),e.path&&(ZC(e.path),A.push(`Path=${e.path}`)),e.expires&&e.expires.toString()!=="Invalid Date"&&A.push(`Expires=${_C(e.expires)}`),e.sameSite&&A.push(`SameSite=${e.sameSite}`);for(let t of e.unparsed){if(!t.includes("="))throw new Error("Invalid unparsed");let[r,...n]=t.split("="),s=r.trim(),i=n.join("=");Ng(s),Mg(i),A.push(`${s}=${i}`)}return A.join("; ")}KC.exports={isCTLExcludingHtab:hN,validateCookieName:Ng,validateCookiePath:ZC,validateCookieValue:Mg,toIMFDate:_C,stringify:yN}});var jC=p(($Y,XC)=>{"use strict";var{maxNameValuePairSize:pN,maxAttributeValueSize:mN}=OC(),{isCTLExcludingHtab:DN}=Ug(),{collectASequenceOfCodePointsFast:_i}=He(),kN=y("node:assert");function bN(e){if(DN(e))return null;let A="",t="",r="",n="";if(e.includes(";")){let s={position:0};A=_i(";",e,s),t=e.slice(s.position)}else A=e;if(!A.includes("="))n=A;else{let s={position:0};r=_i("=",A,s),n=A.slice(s.position+1)}return r=r.trim(),n=n.trim(),r.length+n.length>pN?null:{name:r,value:n,...Yr(t)}}function Yr(e,A={}){if(e.length===0)return A;kN(e[0]===";"),e=e.slice(1);let t="";e.includes(";")?(t=_i(";",e,{position:0}),e=e.slice(t.length)):(t=e,e="");let r="",n="";if(t.includes("=")){let i={position:0};r=_i("=",t,i),n=t.slice(i.position+1)}else r=t;if(r=r.trim(),n=n.trim(),n.length>mN)return Yr(e,A);let s=r.toLowerCase();if(s==="expires"){let i=new Date(n);A.expires=i}else if(s==="max-age"){let i=n.charCodeAt(0);if((i<48||i>57)&&n[0]!=="-"||!/^\d+$/.test(n))return Yr(e,A);let o=Number(n);A.maxAge=o}else if(s==="domain"){let i=n;i[0]==="."&&(i=i.slice(1)),i=i.toLowerCase(),A.domain=i}else if(s==="path"){let i="";n.length===0||n[0]!=="/"?i="/":i=n,A.path=i}else if(s==="secure")A.secure=!0;else if(s==="httponly")A.httpOnly=!0;else if(s==="samesite"){let i=n.toLowerCase();i==="none"?A.sameSite="None":i==="strict"?A.sameSite="Strict":i==="lax"&&(A.sameSite="Lax")}else A.unparsed??=[],A.unparsed.push(`${r}=${n}`);return Yr(e,A)}XC.exports={parseSetCookie:bN,parseUnparsedAttributes:Yr}});var Af=p((eG,ef)=>{"use strict";var{parseSetCookie:FN}=jC(),{stringify:RN}=Ug(),{webidl:P}=Se(),{Headers:Ki}=xt();function SN(e){P.argumentLengthCheck(arguments,1,"getCookies"),P.brandCheck(e,Ki,{strict:!1});let A=e.get("cookie"),t={};if(!A)return t;for(let r of A.split(";")){let[n,...s]=r.split("=");t[n.trim()]=s.join("=")}return t}function NN(e,A,t){P.brandCheck(e,Ki,{strict:!1});let r="deleteCookie";P.argumentLengthCheck(arguments,2,r),A=P.converters.DOMString(A,r,"name"),t=P.converters.DeleteCookieAttributes(t),$C(e,{name:A,value:"",expires:new Date(0),...t})}function MN(e){P.argumentLengthCheck(arguments,1,"getSetCookies"),P.brandCheck(e,Ki,{strict:!1});let A=e.getSetCookie();return A?A.map(t=>FN(t)):[]}function $C(e,A){P.argumentLengthCheck(arguments,2,"setCookie"),P.brandCheck(e,Ki,{strict:!1}),A=P.converters.Cookie(A);let t=RN(A);t&&e.append("Set-Cookie",t)}P.converters.DeleteCookieAttributes=P.dictionaryConverter([{converter:P.nullableConverter(P.converters.DOMString),key:"path",defaultValue:()=>null},{converter:P.nullableConverter(P.converters.DOMString),key:"domain",defaultValue:()=>null}]);P.converters.Cookie=P.dictionaryConverter([{converter:P.converters.DOMString,key:"name"},{converter:P.converters.DOMString,key:"value"},{converter:P.nullableConverter(e=>typeof e=="number"?P.converters["unsigned long long"](e):new Date(e)),key:"expires",defaultValue:()=>null},{converter:P.nullableConverter(P.converters["long long"]),key:"maxAge",defaultValue:()=>null},{converter:P.nullableConverter(P.converters.DOMString),key:"domain",defaultValue:()=>null},{converter:P.nullableConverter(P.converters.DOMString),key:"path",defaultValue:()=>null},{converter:P.nullableConverter(P.converters.boolean),key:"secure",defaultValue:()=>null},{converter:P.nullableConverter(P.converters.boolean),key:"httpOnly",defaultValue:()=>null},{converter:P.converters.USVString,key:"sameSite",allowedValues:["Strict","Lax","None"]},{converter:P.sequenceConverter(P.converters.DOMString),key:"unparsed",defaultValue:()=>new Array(0)}]);ef.exports={getCookies:SN,deleteCookie:NN,getSetCookies:MN,setCookie:$C}});var Jr=p((AG,rf)=>{"use strict";var{webidl:N}=Se(),{kEnumerableProperty:We}=v(),{kConstruct:tf}=Qe(),{MessagePort:UN}=y("node:worker_threads"),Gr=class e extends Event{#e;constructor(A,t={}){if(A===tf){super(arguments[1],arguments[2]),N.util.markAsUncloneable(this);return}let r="MessageEvent constructor";N.argumentLengthCheck(arguments,1,r),A=N.converters.DOMString(A,r,"type"),t=N.converters.MessageEventInit(t,r,"eventInitDict"),super(A,t),this.#e=t,N.util.markAsUncloneable(this)}get data(){return N.brandCheck(this,e),this.#e.data}get origin(){return N.brandCheck(this,e),this.#e.origin}get lastEventId(){return N.brandCheck(this,e),this.#e.lastEventId}get source(){return N.brandCheck(this,e),this.#e.source}get ports(){return N.brandCheck(this,e),Object.isFrozen(this.#e.ports)||Object.freeze(this.#e.ports),this.#e.ports}initMessageEvent(A,t=!1,r=!1,n=null,s="",i="",o=null,a=[]){return N.brandCheck(this,e),N.argumentLengthCheck(arguments,1,"MessageEvent.initMessageEvent"),new e(A,{bubbles:t,cancelable:r,data:n,origin:s,lastEventId:i,source:o,ports:a})}static createFastMessageEvent(A,t){let r=new e(tf,A,t);return r.#e=t,r.#e.data??=null,r.#e.origin??="",r.#e.lastEventId??="",r.#e.source??=null,r.#e.ports??=[],r}},{createFastMessageEvent:LN}=Gr;delete Gr.createFastMessageEvent;var Xi=class e extends Event{#e;constructor(A,t={}){let r="CloseEvent constructor";N.argumentLengthCheck(arguments,1,r),A=N.converters.DOMString(A,r,"type"),t=N.converters.CloseEventInit(t),super(A,t),this.#e=t,N.util.markAsUncloneable(this)}get wasClean(){return N.brandCheck(this,e),this.#e.wasClean}get code(){return N.brandCheck(this,e),this.#e.code}get reason(){return N.brandCheck(this,e),this.#e.reason}},ji=class e extends Event{#e;constructor(A,t){let r="ErrorEvent constructor";N.argumentLengthCheck(arguments,1,r),super(A,t),N.util.markAsUncloneable(this),A=N.converters.DOMString(A,r,"type"),t=N.converters.ErrorEventInit(t??{}),this.#e=t}get message(){return N.brandCheck(this,e),this.#e.message}get filename(){return N.brandCheck(this,e),this.#e.filename}get lineno(){return N.brandCheck(this,e),this.#e.lineno}get colno(){return N.brandCheck(this,e),this.#e.colno}get error(){return N.brandCheck(this,e),this.#e.error}};Object.defineProperties(Gr.prototype,{[Symbol.toStringTag]:{value:"MessageEvent",configurable:!0},data:We,origin:We,lastEventId:We,source:We,ports:We,initMessageEvent:We});Object.defineProperties(Xi.prototype,{[Symbol.toStringTag]:{value:"CloseEvent",configurable:!0},reason:We,code:We,wasClean:We});Object.defineProperties(ji.prototype,{[Symbol.toStringTag]:{value:"ErrorEvent",configurable:!0},message:We,filename:We,lineno:We,colno:We,error:We});N.converters.MessagePort=N.interfaceConverter(UN);N.converters["sequence<MessagePort>"]=N.sequenceConverter(N.converters.MessagePort);var Lg=[{key:"bubbles",converter:N.converters.boolean,defaultValue:()=>!1},{key:"cancelable",converter:N.converters.boolean,defaultValue:()=>!1},{key:"composed",converter:N.converters.boolean,defaultValue:()=>!1}];N.converters.MessageEventInit=N.dictionaryConverter([...Lg,{key:"data",converter:N.converters.any,defaultValue:()=>null},{key:"origin",converter:N.converters.USVString,defaultValue:()=>""},{key:"lastEventId",converter:N.converters.DOMString,defaultValue:()=>""},{key:"source",converter:N.nullableConverter(N.converters.MessagePort),defaultValue:()=>null},{key:"ports",converter:N.converters["sequence<MessagePort>"],defaultValue:()=>new Array(0)}]);N.converters.CloseEventInit=N.dictionaryConverter([...Lg,{key:"wasClean",converter:N.converters.boolean,defaultValue:()=>!1},{key:"code",converter:N.converters["unsigned short"],defaultValue:()=>0},{key:"reason",converter:N.converters.USVString,defaultValue:()=>""}]);N.converters.ErrorEventInit=N.dictionaryConverter([...Lg,{key:"message",converter:N.converters.DOMString,defaultValue:()=>""},{key:"filename",converter:N.converters.USVString,defaultValue:()=>""},{key:"lineno",converter:N.converters["unsigned long"],defaultValue:()=>0},{key:"colno",converter:N.converters["unsigned long"],defaultValue:()=>0},{key:"error",converter:N.converters.any}]);rf.exports={MessageEvent:Gr,CloseEvent:Xi,ErrorEvent:ji,createFastMessageEvent:LN}});var vt=p((tG,nf)=>{"use strict";var TN="258EAFA5-E914-47DA-95CA-C5AB0DC85B11",xN={enumerable:!0,writable:!1,configurable:!1},YN={CONNECTING:0,OPEN:1,CLOSING:2,CLOSED:3},GN={NOT_SENT:0,PROCESSING:1,SENT:2},JN={CONTINUATION:0,TEXT:1,BINARY:2,CLOSE:8,PING:9,PONG:10},HN=2**16-1,VN={INFO:0,PAYLOADLENGTH_16:2,PAYLOADLENGTH_64:3,READ_DATA:4},vN=Buffer.allocUnsafe(0),qN={string:1,typedArray:2,arrayBuffer:3,blob:4};nf.exports={uid:TN,sentCloseFrameState:GN,staticPropertyDescriptors:xN,states:YN,opcodes:JN,maxUnsigned16Bit:HN,parserStates:VN,emptyBuffer:vN,sendHints:qN}});var Pn=p((rG,sf)=>{"use strict";sf.exports={kWebSocketURL:Symbol("url"),kReadyState:Symbol("ready state"),kController:Symbol("controller"),kResponse:Symbol("response"),kBinaryType:Symbol("binary type"),kSentClose:Symbol("sent close"),kReceivedClose:Symbol("received close"),kByteParser:Symbol("byte parser")}});var Zn=p((nG,uf)=>{"use strict";var{kReadyState:On,kController:WN,kResponse:PN,kBinaryType:ON,kWebSocketURL:zN}=Pn(),{states:zn,opcodes:Qt}=vt(),{ErrorEvent:ZN,createFastMessageEvent:_N}=Jr(),{isUtf8:KN}=y("node:buffer"),{collectASequenceOfCodePointsFast:XN,removeHTTPWhitespace:of}=He();function jN(e){return e[On]===zn.CONNECTING}function $N(e){return e[On]===zn.OPEN}function eM(e){return e[On]===zn.CLOSING}function AM(e){return e[On]===zn.CLOSED}function Tg(e,A,t=(n,s)=>new Event(n,s),r={}){let n=t(e,r);A.dispatchEvent(n)}function tM(e,A,t){if(e[On]!==zn.OPEN)return;let r;if(A===Qt.TEXT)try{r=Bf(t)}catch{cf(e,"Received invalid UTF-8 in text frame.");return}else A===Qt.BINARY&&(e[ON]==="blob"?r=new Blob([t]):r=rM(t));Tg("message",e,_N,{origin:e[zN].origin,data:r})}function rM(e){return e.byteLength===e.buffer.byteLength?e.buffer:e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength)}function nM(e){if(e.length===0)return!1;for(let A=0;A<e.length;++A){let t=e.charCodeAt(A);if(t<33||t>126||t===34||t===40||t===41||t===44||t===47||t===58||t===59||t===60||t===61||t===62||t===63||t===64||t===91||t===92||t===93||t===123||t===125)return!1}return!0}function sM(e){return e>=1e3&&e<1015?e!==1004&&e!==1005&&e!==1006:e>=3e3&&e<=4999}function cf(e,A){let{[WN]:t,[PN]:r}=e;t.abort(),r?.socket&&!r.socket.destroyed&&r.socket.destroy(),A&&Tg("error",e,(n,s)=>new ZN(n,s),{error:new Error(A),message:A})}function gf(e){return e===Qt.CLOSE||e===Qt.PING||e===Qt.PONG}function lf(e){return e===Qt.CONTINUATION}function Qf(e){return e===Qt.TEXT||e===Qt.BINARY}function iM(e){return Qf(e)||lf(e)||gf(e)}function oM(e){let A={position:0},t=new Map;for(;A.position<e.length;){let r=XN(";",e,A),[n,s=""]=r.split("=");t.set(of(n,!0,!1),of(s,!1,!0)),A.position++}return t}function aM(e){if(e.length===0)return!1;for(let t=0;t<e.length;t++){let r=e.charCodeAt(t);if(r<48||r>57)return!1}let A=Number.parseInt(e,10);return A>=8&&A<=15}var Ef=typeof process.versions.icu=="string",af=Ef?new TextDecoder("utf-8",{fatal:!0}):void 0,Bf=Ef?af.decode.bind(af):function(e){if(KN(e))return e.toString("utf-8");throw new TypeError("Invalid utf-8 received.")};uf.exports={isConnecting:jN,isEstablished:$N,isClosing:eM,isClosed:AM,fireEvent:Tg,isValidSubprotocol:nM,isValidStatusCode:sM,failWebsocketConnection:cf,websocketMessageReceived:tM,utf8Decode:Bf,isControlFrame:gf,isContinuationFrame:lf,isTextBinaryFrame:Qf,isValidOpcode:iM,parseExtensions:oM,isValidClientWindowBits:aM}});var eo=p((sG,If)=>{"use strict";var{maxUnsigned16Bit:cM}=vt(),$i=16386,xg,_n=null,Hr=$i;try{xg=y("node:crypto")}catch{xg={randomFillSync:function(A,t,r){for(let n=0;n<A.length;++n)A[n]=Math.random()*255|0;return A}}}function gM(){return Hr===$i&&(Hr=0,xg.randomFillSync(_n??=Buffer.allocUnsafe($i),0,$i)),[_n[Hr++],_n[Hr++],_n[Hr++],_n[Hr++]]}var Yg=class{constructor(A){this.frameData=A}createFrame(A){let t=this.frameData,r=gM(),n=t?.byteLength??0,s=n,i=6;n>cM?(i+=8,s=127):n>125&&(i+=2,s=126);let o=Buffer.allocUnsafe(n+i);o[0]=o[1]=0,o[0]|=128,o[0]=(o[0]&240)+A;o[i-4]=r[0],o[i-3]=r[1],o[i-2]=r[2],o[i-1]=r[3],o[1]=s,s===126?o.writeUInt16BE(n,2):s===127&&(o[2]=o[3]=0,o.writeUIntBE(n,4,6)),o[1]|=128;for(let a=0;a<n;++a)o[i+a]=t[a]^r[a&3];return o}};If.exports={WebsocketFrameSend:Yg}});var Jg=p((iG,pf)=>{"use strict";var{uid:lM,states:Kn,sentCloseFrameState:Ao,emptyBuffer:QM,opcodes:EM}=vt(),{kReadyState:Xn,kSentClose:to,kByteParser:Cf,kReceivedClose:hf,kResponse:ff}=Pn(),{fireEvent:BM,failWebsocketConnection:Et,isClosing:uM,isClosed:IM,isEstablished:hM,parseExtensions:CM}=Zn(),{channels:Vr}=Xt(),{CloseEvent:fM}=Jr(),{makeRequest:dM}=Ur(),{fetching:wM}=Vn(),{Headers:yM,getHeadersList:pM}=xt(),{getDecodeSplit:mM}=Oe(),{WebsocketFrameSend:DM}=eo(),Gg;try{Gg=y("node:crypto")}catch{}function kM(e,A,t,r,n,s){let i=e;i.protocol=e.protocol==="ws:"?"http:":"https:";let o=dM({urlList:[i],client:t,serviceWorkers:"none",referrer:"no-referrer",mode:"websocket",credentials:"include",cache:"no-store",redirect:"error"});if(s.headers){let c=pM(new yM(s.headers));o.headersList=c}let a=Gg.randomBytes(16).toString("base64");o.headersList.append("sec-websocket-key",a),o.headersList.append("sec-websocket-version","13");for(let c of A)o.headersList.append("sec-websocket-protocol",c);return o.headersList.append("sec-websocket-extensions","permessage-deflate; client_max_window_bits"),wM({request:o,useParallelQueue:!0,dispatcher:s.dispatcher,processResponse(c){if(c.type==="error"||c.status!==101){Et(r,"Received network error or non-101 status code.");return}if(A.length!==0&&!c.headersList.get("Sec-WebSocket-Protocol")){Et(r,"Server did not respond with sent protocols.");return}if(c.headersList.get("Upgrade")?.toLowerCase()!=="websocket"){Et(r,'Server did not set Upgrade header to "websocket".');return}if(c.headersList.get("Connection")?.toLowerCase()!=="upgrade"){Et(r,'Server did not set Connection header to "upgrade".');return}let Q=c.headersList.get("Sec-WebSocket-Accept"),B=Gg.createHash("sha1").update(a+lM).digest("base64");if(Q!==B){Et(r,"Incorrect hash received in Sec-WebSocket-Accept header.");return}let E=c.headersList.get("Sec-WebSocket-Extensions"),u;if(E!==null&&(u=CM(E),!u.has("permessage-deflate"))){Et(r,"Sec-WebSocket-Extensions header does not match.");return}let h=c.headersList.get("Sec-WebSocket-Protocol");if(h!==null&&!mM("sec-websocket-protocol",o.headersList).includes(h)){Et(r,"Protocol was not set in the opening handshake.");return}c.socket.on("data",df),c.socket.on("close",wf),c.socket.on("error",yf),Vr.open.hasSubscribers&&Vr.open.publish({address:c.socket.address(),protocol:h,extensions:E}),n(c,u)}})}function bM(e,A,t,r){if(!(uM(e)||IM(e)))if(!hM(e))Et(e,"Connection was closed before it was established."),e[Xn]=Kn.CLOSING;else if(e[to]===Ao.NOT_SENT){e[to]=Ao.PROCESSING;let n=new DM;A!==void 0&&t===void 0?(n.frameData=Buffer.allocUnsafe(2),n.frameData.writeUInt16BE(A,0)):A!==void 0&&t!==void 0?(n.frameData=Buffer.allocUnsafe(2+r),n.frameData.writeUInt16BE(A,0),n.frameData.write(t,2,"utf-8")):n.frameData=QM,e[ff].socket.write(n.createFrame(EM.CLOSE)),e[to]=Ao.SENT,e[Xn]=Kn.CLOSING}else e[Xn]=Kn.CLOSING}function df(e){this.ws[Cf].write(e)||this.pause()}function wf(){let{ws:e}=this,{[ff]:A}=e;A.socket.off("data",df),A.socket.off("close",wf),A.socket.off("error",yf);let t=e[to]===Ao.SENT&&e[hf],r=1005,n="",s=e[Cf].closingInfo;s&&!s.error?(r=s.code??1005,n=s.reason):e[hf]||(r=1006),e[Xn]=Kn.CLOSED,BM("close",e,(i,o)=>new fM(i,o),{wasClean:t,code:r,reason:n}),Vr.close.hasSubscribers&&Vr.close.publish({websocket:e,code:r,reason:n})}function yf(e){let{ws:A}=this;A[Xn]=Kn.CLOSING,Vr.socketError.hasSubscribers&&Vr.socketError.publish(e),this.destroy()}pf.exports={establishWebSocketConnection:kM,closeWebSocketConnection:bM}});var Df=p((oG,mf)=>{"use strict";var{createInflateRaw:FM,Z_DEFAULT_WINDOWBITS:RM}=y("node:zlib"),{isValidClientWindowBits:SM}=Zn(),{MessageSizeExceededError:NM}=Z(),MM=Buffer.from([0,0,255,255]),ro=Symbol("kBuffer"),jn=Symbol("kLength"),Hg=class{#e;#A={};#t=0;constructor(A,t){this.#A.serverNoContextTakeover=A.has("server_no_context_takeover"),this.#A.serverMaxWindowBits=A.get("server_max_window_bits"),this.#t=t.maxPayloadSize}decompress(A,t,r){if(!this.#e){let n=RM;if(this.#A.serverMaxWindowBits){if(!SM(this.#A.serverMaxWindowBits)){r(new Error("Invalid server_max_window_bits"));return}n=Number.parseInt(this.#A.serverMaxWindowBits)}try{this.#e=FM({windowBits:n})}catch(s){r(s);return}this.#e[ro]=[],this.#e[jn]=0,this.#e.on("data",s=>{if(this.#e[jn]+=s.length,this.#t>0&&this.#e[jn]>this.#t){r(new NM),this.#e.removeAllListeners(),this.#e=null;return}this.#e[ro].push(s)}),this.#e.on("error",s=>{this.#e=null,r(s)})}this.#e.write(A),t&&this.#e.write(MM),this.#e.flush(()=>{if(!this.#e)return;let n=Buffer.concat(this.#e[ro],this.#e[jn]);this.#e[ro].length=0,this.#e[jn]=0,r(null,n)})}};mf.exports={PerMessageDeflate:Hg}});var Tf=p((aG,Lf)=>{"use strict";var{Writable:UM}=y("node:stream"),LM=y("node:assert"),{parserStates:Pe,opcodes:vr,states:TM,emptyBuffer:kf,sentCloseFrameState:bf}=vt(),{kReadyState:xM,kSentClose:Ff,kResponse:Rf,kReceivedClose:Sf}=Pn(),{channels:no}=Xt(),{isValidStatusCode:YM,isValidOpcode:GM,failWebsocketConnection:eA,websocketMessageReceived:Nf,utf8Decode:JM,isControlFrame:Vg,isTextBinaryFrame:vg,isContinuationFrame:HM}=Zn(),{WebsocketFrameSend:Mf}=eo(),{closeWebSocketConnection:Uf}=Jg(),{PerMessageDeflate:VM}=Df(),{MessageSizeExceededError:qg}=Z();function $n(e,A,t){Uf(e,A,t,Buffer.byteLength(t)),eA(e,t)}var Wg=class extends UM{#e=[];#A=0;#t=0;#s=!1;#n=Pe.INFO;#r={};#i=[];#o;#c;#a;constructor(A,t,r={}){super(),this.ws=A,this.#o=t??new Map,this.#c=r.maxFragments??0,this.#a=r.maxPayloadSize??0,this.#o.has("permessage-deflate")&&this.#o.set("permessage-deflate",new VM(t,r))}_write(A,t,r){this.#e.push(A),this.#t+=A.length,this.#s=!0,this.run(r)}#g(){return this.#a>0&&!Vg(this.#r.opcode)&&this.#r.payloadLength+this.#A>this.#a?($n(this.ws,1009,"Payload size exceeds maximum allowed size"),!1):!0}run(A){for(;this.#s;)if(this.#n===Pe.INFO){if(this.#t<2)return A();let t=this.consume(2),r=(t[0]&128)!==0,n=t[0]&15,s=(t[1]&128)===128,i=!r&&n!==vr.CONTINUATION,o=t[1]&127,a=t[0]&64,g=t[0]&32,l=t[0]&16;if(!GM(n))return eA(this.ws,"Invalid opcode received"),A();if(s)return eA(this.ws,"Frame cannot be masked"),A();if(a!==0&&!this.#o.has("permessage-deflate")){eA(this.ws,"Expected RSV1 to be clear.");return}if(g!==0||l!==0){eA(this.ws,"RSV1, RSV2, RSV3 must be clear");return}if(i&&!vg(n)){eA(this.ws,"Invalid frame type was fragmented.");return}if(vg(n)&&this.#i.length>0){eA(this.ws,"Expected continuation frame");return}if(this.#r.fragmented&&i){eA(this.ws,"Fragmented frame exceeded 125 bytes.");return}if((o>125||i)&&Vg(n)){eA(this.ws,"Control frame either too large or fragmented");return}if(HM(n)&&this.#i.length===0&&!this.#r.compressed){eA(this.ws,"Unexpected continuation frame");return}if(o<=125){if(this.#r.payloadLength=o,this.#n=Pe.READ_DATA,!this.#g())return}else o===126?this.#n=Pe.PAYLOADLENGTH_16:o===127&&(this.#n=Pe.PAYLOADLENGTH_64);vg(n)&&(this.#r.binaryType=n,this.#r.compressed=a!==0),this.#r.opcode=n,this.#r.masked=s,this.#r.fin=r,this.#r.fragmented=i}else if(this.#n===Pe.PAYLOADLENGTH_16){if(this.#t<2)return A();let t=this.consume(2);if(this.#r.payloadLength=t.readUInt16BE(0),this.#n=Pe.READ_DATA,!this.#g())return}else if(this.#n===Pe.PAYLOADLENGTH_64){if(this.#t<8)return A();let t=this.consume(8),r=t.readUInt32BE(0),n=t.readUInt32BE(4);if(r!==0||n>2**31-1){eA(this.ws,"Received payload length > 2^31 bytes.");return}if(this.#r.payloadLength=n,this.#n=Pe.READ_DATA,!this.#g())return}else if(this.#n===Pe.READ_DATA){if(this.#t<this.#r.payloadLength)return A();let t=this.consume(this.#r.payloadLength);if(Vg(this.#r.opcode))this.#s=this.parseControlFrame(t),this.#n=Pe.INFO;else if(this.#r.compressed){this.#o.get("permessage-deflate").decompress(t,this.#r.fin,(r,n)=>{if(r){let s=r instanceof qg?1009:1007;$n(this.ws,s,r.message);return}if(this.writeFragments(n)){if(this.#a>0&&this.#A>this.#a){$n(this.ws,1009,new qg().message);return}if(!this.#r.fin){this.#n=Pe.INFO,this.#s=!0,this.run(A);return}Nf(this.ws,this.#r.binaryType,this.consumeFragments()),this.#s=!0,this.#n=Pe.INFO,this.run(A)}}),this.#s=!1;break}else{if(!this.writeFragments(t))return;if(this.#a>0&&this.#A>this.#a){$n(this.ws,1009,new qg().message);return}!this.#r.fragmented&&this.#r.fin&&Nf(this.ws,this.#r.binaryType,this.consumeFragments()),this.#n=Pe.INFO}}}consume(A){if(A>this.#t)throw new Error("Called consume() before buffers satiated.");if(A===0)return kf;if(this.#e[0].length===A)return this.#t-=this.#e[0].length,this.#e.shift();let t=Buffer.allocUnsafe(A),r=0;for(;r!==A;){let n=this.#e[0],{length:s}=n;if(s+r===A){t.set(this.#e.shift(),r);break}else if(s+r>A){t.set(n.subarray(0,A-r),r),this.#e[0]=n.subarray(A-r);break}else t.set(this.#e.shift(),r),r+=n.length}return this.#t-=A,t}writeFragments(A){return this.#c>0&&this.#i.length===this.#c?($n(this.ws,1008,"Too many message fragments"),!1):(this.#A+=A.length,this.#i.push(A),!0)}consumeFragments(){let A=this.#i;if(A.length===1)return this.#A=0,A.shift();let t=Buffer.concat(A,this.#A);return this.#i=[],this.#A=0,t}parseCloseBody(A){LM(A.length!==1);let t;if(A.length>=2&&(t=A.readUInt16BE(0)),t!==void 0&&!YM(t))return{code:1002,reason:"Invalid status code",error:!0};let r=A.subarray(2);r[0]===239&&r[1]===187&&r[2]===191&&(r=r.subarray(3));try{r=JM(r)}catch{return{code:1007,reason:"Invalid UTF-8",error:!0}}return{code:t,reason:r,error:!1}}parseControlFrame(A){let{opcode:t,payloadLength:r}=this.#r;if(t===vr.CLOSE){if(r===1)return eA(this.ws,"Received close frame with a 1-byte body."),!1;if(this.#r.closeInfo=this.parseCloseBody(A),this.#r.closeInfo.error){let{code:n,reason:s}=this.#r.closeInfo;return Uf(this.ws,n,s,s.length),eA(this.ws,s),!1}if(this.ws[Ff]!==bf.SENT){let n=kf;this.#r.closeInfo.code&&(n=Buffer.allocUnsafe(2),n.writeUInt16BE(this.#r.closeInfo.code,0));let s=new Mf(n);this.ws[Rf].socket.write(s.createFrame(vr.CLOSE),i=>{i||(this.ws[Ff]=bf.SENT)})}return this.ws[xM]=TM.CLOSING,this.ws[Sf]=!0,!1}else if(t===vr.PING){if(!this.ws[Sf]){let n=new Mf(A);this.ws[Rf].socket.write(n.createFrame(vr.PONG)),no.ping.hasSubscribers&&no.ping.publish({payload:A})}}else t===vr.PONG&&no.pong.hasSubscribers&&no.pong.publish({payload:A});return!0}get closingInfo(){return this.#r.closeInfo}};Lf.exports={ByteParser:Wg}});var Hf=p((cG,Jf)=>{"use strict";var{WebsocketFrameSend:vM}=eo(),{opcodes:xf,sendHints:qr}=vt(),qM=Ka(),Yf=Buffer[Symbol.species],Pg=class{#e=new qM;#A=!1;#t;constructor(A){this.#t=A}add(A,t,r){if(r!==qr.blob){let s=Gf(A,r);if(!this.#A)this.#t.write(s,t);else{let i={promise:null,callback:t,frame:s};this.#e.push(i)}return}let n={promise:A.arrayBuffer().then(s=>{n.promise=null,n.frame=Gf(s,r)}),callback:t,frame:null};this.#e.push(n),this.#A||this.#s()}async#s(){this.#A=!0;let A=this.#e;for(;!A.isEmpty();){let t=A.shift();t.promise!==null&&await t.promise,this.#t.write(t.frame,t.callback),t.callback=t.frame=null}this.#A=!1}};function Gf(e,A){return new vM(WM(e,A)).createFrame(A===qr.string?xf.TEXT:xf.BINARY)}function WM(e,A){switch(A){case qr.string:return Buffer.from(e);case qr.arrayBuffer:case qr.blob:return new Yf(e);case qr.typedArray:return new Yf(e.buffer,e.byteOffset,e.byteLength)}}Jf.exports={SendQueue:Pg}});var Kf=p((gG,_f)=>{"use strict";var{webidl:J}=Se(),{URLSerializer:PM}=He(),{environmentSettingsObject:Vf}=Oe(),{staticPropertyDescriptors:Bt,states:es,sentCloseFrameState:OM,sendHints:so}=vt(),{kWebSocketURL:vf,kReadyState:Og,kController:qf,kBinaryType:io,kResponse:Wf,kSentClose:zM,kByteParser:ZM}=Pn(),{isConnecting:_M,isEstablished:KM,isClosing:XM,isValidSubprotocol:jM,fireEvent:Pf}=Zn(),{establishWebSocketConnection:$M,closeWebSocketConnection:Of}=Jg(),{ByteParser:eU}=Tf(),{kEnumerableProperty:oA,isBlobLike:zf}=v(),{getGlobalDispatcher:AU}=wi(),{types:Zf}=y("node:util"),{ErrorEvent:tU,CloseEvent:rU}=Jr(),{SendQueue:nU}=Hf(),AA=class e extends EventTarget{#e={open:null,error:null,close:null,message:null};#A=0;#t="";#s="";#n;constructor(A,t=[]){super(),J.util.markAsUncloneable(this);let r="WebSocket constructor";J.argumentLengthCheck(arguments,1,r);let n=J.converters["DOMString or sequence<DOMString> or WebSocketInit"](t,r,"options");A=J.converters.USVString(A,r,"url"),t=n.protocols;let s=Vf.settingsObject.baseUrl,i;try{i=new URL(A,s)}catch(a){throw new DOMException(a,"SyntaxError")}if(i.protocol==="http:"?i.protocol="ws:":i.protocol==="https:"&&(i.protocol="wss:"),i.protocol!=="ws:"&&i.protocol!=="wss:")throw new DOMException(`Expected a ws: or wss: protocol, got ${i.protocol}`,"SyntaxError");if(i.hash||i.href.endsWith("#"))throw new DOMException("Got fragment","SyntaxError");if(typeof t=="string"&&(t=[t]),t.length!==new Set(t.map(a=>a.toLowerCase())).size)throw new DOMException("Invalid Sec-WebSocket-Protocol value","SyntaxError");if(t.length>0&&!t.every(a=>jM(a)))throw new DOMException("Invalid Sec-WebSocket-Protocol value","SyntaxError");this[vf]=new URL(i.href);let o=Vf.settingsObject;this[qf]=$M(i,t,o,this,(a,g)=>this.#r(a,g),n),this[Og]=e.CONNECTING,this[zM]=OM.NOT_SENT,this[io]="blob"}close(A=void 0,t=void 0){J.brandCheck(this,e);let r="WebSocket.close";if(A!==void 0&&(A=J.converters["unsigned short"](A,r,"code",{clamp:!0})),t!==void 0&&(t=J.converters.USVString(t,r,"reason")),A!==void 0&&A!==1e3&&(A<3e3||A>4999))throw new DOMException("invalid code","InvalidAccessError");let n=0;if(t!==void 0&&(n=Buffer.byteLength(t),n>123))throw new DOMException(`Reason must be less than 123 bytes; received ${n}`,"SyntaxError");Of(this,A,t,n)}send(A){J.brandCheck(this,e);let t="WebSocket.send";if(J.argumentLengthCheck(arguments,1,t),A=J.converters.WebSocketSendData(A,t,"data"),_M(this))throw new DOMException("Sent before connected.","InvalidStateError");if(!(!KM(this)||XM(this)))if(typeof A=="string"){let r=Buffer.byteLength(A);this.#A+=r,this.#n.add(A,()=>{this.#A-=r},so.string)}else Zf.isArrayBuffer(A)?(this.#A+=A.byteLength,this.#n.add(A,()=>{this.#A-=A.byteLength},so.arrayBuffer)):ArrayBuffer.isView(A)?(this.#A+=A.byteLength,this.#n.add(A,()=>{this.#A-=A.byteLength},so.typedArray)):zf(A)&&(this.#A+=A.size,this.#n.add(A,()=>{this.#A-=A.size},so.blob))}get readyState(){return J.brandCheck(this,e),this[Og]}get bufferedAmount(){return J.brandCheck(this,e),this.#A}get url(){return J.brandCheck(this,e),PM(this[vf])}get extensions(){return J.brandCheck(this,e),this.#s}get protocol(){return J.brandCheck(this,e),this.#t}get onopen(){return J.brandCheck(this,e),this.#e.open}set onopen(A){J.brandCheck(this,e),this.#e.open&&this.removeEventListener("open",this.#e.open),typeof A=="function"?(this.#e.open=A,this.addEventListener("open",A)):this.#e.open=null}get onerror(){return J.brandCheck(this,e),this.#e.error}set onerror(A){J.brandCheck(this,e),this.#e.error&&this.removeEventListener("error",this.#e.error),typeof A=="function"?(this.#e.error=A,this.addEventListener("error",A)):this.#e.error=null}get onclose(){return J.brandCheck(this,e),this.#e.close}set onclose(A){J.brandCheck(this,e),this.#e.close&&this.removeEventListener("close",this.#e.close),typeof A=="function"?(this.#e.close=A,this.addEventListener("close",A)):this.#e.close=null}get onmessage(){return J.brandCheck(this,e),this.#e.message}set onmessage(A){J.brandCheck(this,e),this.#e.message&&this.removeEventListener("message",this.#e.message),typeof A=="function"?(this.#e.message=A,this.addEventListener("message",A)):this.#e.message=null}get binaryType(){return J.brandCheck(this,e),this[io]}set binaryType(A){J.brandCheck(this,e),A!=="blob"&&A!=="arraybuffer"?this[io]="blob":this[io]=A}#r(A,t){this[Wf]=A;let r=this[qf]?.dispatcher?.webSocketOptions,n=r?.maxFragments,s=r?.maxPayloadSize,i=new eU(this,t,{maxFragments:n,maxPayloadSize:s});i.on("drain",sU),i.on("error",iU.bind(this)),A.socket.ws=this,this[ZM]=i,this.#n=new nU(A.socket),this[Og]=es.OPEN;let o=A.headersList.get("sec-websocket-extensions");o!==null&&(this.#s=o);let a=A.headersList.get("sec-websocket-protocol");a!==null&&(this.#t=a),Pf("open",this)}};AA.CONNECTING=AA.prototype.CONNECTING=es.CONNECTING;AA.OPEN=AA.prototype.OPEN=es.OPEN;AA.CLOSING=AA.prototype.CLOSING=es.CLOSING;AA.CLOSED=AA.prototype.CLOSED=es.CLOSED;Object.defineProperties(AA.prototype,{CONNECTING:Bt,OPEN:Bt,CLOSING:Bt,CLOSED:Bt,url:oA,readyState:oA,bufferedAmount:oA,onopen:oA,onerror:oA,onclose:oA,close:oA,onmessage:oA,binaryType:oA,send:oA,extensions:oA,protocol:oA,[Symbol.toStringTag]:{value:"WebSocket",writable:!1,enumerable:!1,configurable:!0}});Object.defineProperties(AA,{CONNECTING:Bt,OPEN:Bt,CLOSING:Bt,CLOSED:Bt});J.converters["sequence<DOMString>"]=J.sequenceConverter(J.converters.DOMString);J.converters["DOMString or sequence<DOMString>"]=function(e,A,t){return J.util.Type(e)==="Object"&&Symbol.iterator in e?J.converters["sequence<DOMString>"](e):J.converters.DOMString(e,A,t)};J.converters.WebSocketInit=J.dictionaryConverter([{key:"protocols",converter:J.converters["DOMString or sequence<DOMString>"],defaultValue:()=>new Array(0)},{key:"dispatcher",converter:J.converters.any,defaultValue:()=>AU()},{key:"headers",converter:J.nullableConverter(J.converters.HeadersInit)}]);J.converters["DOMString or sequence<DOMString> or WebSocketInit"]=function(e){return J.util.Type(e)==="Object"&&!(Symbol.iterator in e)?J.converters.WebSocketInit(e):{protocols:J.converters["DOMString or sequence<DOMString>"](e)}};J.converters.WebSocketSendData=function(e){if(J.util.Type(e)==="Object"){if(zf(e))return J.converters.Blob(e,{strict:!1});if(ArrayBuffer.isView(e)||Zf.isArrayBuffer(e))return J.converters.BufferSource(e)}return J.converters.USVString(e)};function sU(){this.ws[Wf].socket.resume()}function iU(e){let A,t;e instanceof rU?(A=e.reason,t=e.code):A=e.message,Pf("error",this,()=>new tU("error",{error:e,message:A})),Of(this,t)}_f.exports={WebSocket:AA}});var zg=p((lG,Xf)=>{"use strict";function oU(e){return e.indexOf("\0")===-1}function aU(e){if(e.length===0)return!1;for(let A=0;A<e.length;A++)if(e.charCodeAt(A)<48||e.charCodeAt(A)>57)return!1;return!0}function cU(e){return new Promise(A=>{setTimeout(A,e).unref()})}Xf.exports={isValidLastEventId:oU,isASCIINumber:aU,delay:cU}});var Ad=p((QG,ed)=>{"use strict";var{Transform:gU}=y("node:stream"),{isASCIINumber:jf,isValidLastEventId:$f}=zg(),_A=[239,187,191],Zg=10,oo=13,lU=58,QU=32,_g=class extends gU{state=null;checkBOM=!0;crlfCheck=!1;eventEndCheck=!1;buffer=null;pos=0;event={data:void 0,event:void 0,id:void 0,retry:void 0};constructor(A={}){A.readableObjectMode=!0,super(A),this.state=A.eventSourceSettings||{},A.push&&(this.push=A.push)}_transform(A,t,r){if(A.length===0){r();return}if(this.buffer?this.buffer=Buffer.concat([this.buffer,A]):this.buffer=A,this.checkBOM)switch(this.buffer.length){case 1:if(this.buffer[0]===_A[0]){r();return}this.checkBOM=!1,r();return;case 2:if(this.buffer[0]===_A[0]&&this.buffer[1]===_A[1]){r();return}this.checkBOM=!1;break;case 3:if(this.buffer[0]===_A[0]&&this.buffer[1]===_A[1]&&this.buffer[2]===_A[2]){this.buffer=Buffer.alloc(0),this.checkBOM=!1,r();return}this.checkBOM=!1;break;default:this.buffer[0]===_A[0]&&this.buffer[1]===_A[1]&&this.buffer[2]===_A[2]&&(this.buffer=this.buffer.subarray(3)),this.checkBOM=!1;break}for(;this.pos<this.buffer.length;){if(this.eventEndCheck){if(this.crlfCheck){if(this.buffer[this.pos]===Zg){this.buffer=this.buffer.subarray(this.pos+1),this.pos=0,this.crlfCheck=!1;continue}this.crlfCheck=!1}if(this.buffer[this.pos]===Zg||this.buffer[this.pos]===oo){this.buffer[this.pos]===oo&&(this.crlfCheck=!0),this.buffer=this.buffer.subarray(this.pos+1),this.pos=0,(this.event.data!==void 0||this.event.event||this.event.id||this.event.retry)&&this.processEvent(this.event),this.clearEvent();continue}this.eventEndCheck=!1;continue}if(this.buffer[this.pos]===Zg||this.buffer[this.pos]===oo){this.buffer[this.pos]===oo&&(this.crlfCheck=!0),this.parseLine(this.buffer.subarray(0,this.pos),this.event),this.buffer=this.buffer.subarray(this.pos+1),this.pos=0,this.eventEndCheck=!0;continue}this.pos++}r()}parseLine(A,t){if(A.length===0)return;let r=A.indexOf(lU);if(r===0)return;let n="",s="";if(r!==-1){n=A.subarray(0,r).toString("utf8");let i=r+1;A[i]===QU&&++i,s=A.subarray(i).toString("utf8")}else n=A.toString("utf8"),s="";switch(n){case"data":t[n]===void 0?t[n]=s:t[n]+=`
45
+ ${s}`;break;case"retry":jf(s)&&(t[n]=s);break;case"id":$f(s)&&(t[n]=s);break;case"event":s.length>0&&(t[n]=s);break}}processEvent(A){A.retry&&jf(A.retry)&&(this.state.reconnectionTime=parseInt(A.retry,10)),A.id&&$f(A.id)&&(this.state.lastEventId=A.id),A.data!==void 0&&this.push({type:A.event||"message",options:{data:A.data,lastEventId:this.state.lastEventId,origin:this.state.origin}})}clearEvent(){this.event={data:void 0,event:void 0,id:void 0,retry:void 0}}};ed.exports={EventSourceStream:_g}});var cd=p((EG,ad)=>{"use strict";var{pipeline:EU}=y("node:stream"),{fetching:BU}=Vn(),{makeRequest:uU}=Ur(),{webidl:KA}=Se(),{EventSourceStream:IU}=Ad(),{parseMIMEType:hU}=He(),{createFastMessageEvent:CU}=Jr(),{isNetworkError:td}=Jn(),{delay:fU}=zg(),{kEnumerableProperty:qt}=v(),{environmentSettingsObject:rd}=Oe(),nd=!1,sd=3e3,As=0,id=1,ts=2,dU="anonymous",wU="use-credentials",Wr=class e extends EventTarget{#e={open:null,error:null,message:null};#A=null;#t=!1;#s=As;#n=null;#r=null;#i;#o;constructor(A,t={}){super(),KA.util.markAsUncloneable(this);let r="EventSource constructor";KA.argumentLengthCheck(arguments,1,r),nd||(nd=!0,process.emitWarning("EventSource is experimental, expect them to change at any time.",{code:"UNDICI-ES"})),A=KA.converters.USVString(A,r,"url"),t=KA.converters.EventSourceInitDict(t,r,"eventSourceInitDict"),this.#i=t.dispatcher,this.#o={lastEventId:"",reconnectionTime:sd};let n=rd,s;try{s=new URL(A,n.settingsObject.baseUrl),this.#o.origin=s.origin}catch(a){throw new DOMException(a,"SyntaxError")}this.#A=s.href;let i=dU;t.withCredentials&&(i=wU,this.#t=!0);let o={redirect:"follow",keepalive:!0,mode:"cors",credentials:i==="anonymous"?"same-origin":"omit",referrer:"no-referrer"};o.client=rd.settingsObject,o.headersList=[["accept",{name:"accept",value:"text/event-stream"}]],o.cache="no-store",o.initiator="other",o.urlList=[new URL(this.#A)],this.#n=uU(o),this.#c()}get readyState(){return this.#s}get url(){return this.#A}get withCredentials(){return this.#t}#c(){if(this.#s===ts)return;this.#s=As;let A={request:this.#n,dispatcher:this.#i},t=r=>{td(r)&&(this.dispatchEvent(new Event("error")),this.close()),this.#a()};A.processResponseEndOfBody=t,A.processResponse=r=>{if(td(r))if(r.aborted){this.close(),this.dispatchEvent(new Event("error"));return}else{this.#a();return}let n=r.headersList.get("content-type",!0),s=n!==null?hU(n):"failure",i=s!=="failure"&&s.essence==="text/event-stream";if(r.status!==200||i===!1){this.close(),this.dispatchEvent(new Event("error"));return}this.#s=id,this.dispatchEvent(new Event("open")),this.#o.origin=r.urlList[r.urlList.length-1].origin;let o=new IU({eventSourceSettings:this.#o,push:a=>{this.dispatchEvent(CU(a.type,a.options))}});EU(r.body.stream,o,a=>{a?.aborted===!1&&(this.close(),this.dispatchEvent(new Event("error")))})},this.#r=BU(A)}async#a(){this.#s!==ts&&(this.#s=As,this.dispatchEvent(new Event("error")),await fU(this.#o.reconnectionTime),this.#s===As&&(this.#o.lastEventId.length&&this.#n.headersList.set("last-event-id",this.#o.lastEventId,!0),this.#c()))}close(){KA.brandCheck(this,e),this.#s!==ts&&(this.#s=ts,this.#r.abort(),this.#n=null)}get onopen(){return this.#e.open}set onopen(A){this.#e.open&&this.removeEventListener("open",this.#e.open),typeof A=="function"?(this.#e.open=A,this.addEventListener("open",A)):this.#e.open=null}get onmessage(){return this.#e.message}set onmessage(A){this.#e.message&&this.removeEventListener("message",this.#e.message),typeof A=="function"?(this.#e.message=A,this.addEventListener("message",A)):this.#e.message=null}get onerror(){return this.#e.error}set onerror(A){this.#e.error&&this.removeEventListener("error",this.#e.error),typeof A=="function"?(this.#e.error=A,this.addEventListener("error",A)):this.#e.error=null}},od={CONNECTING:{__proto__:null,configurable:!1,enumerable:!0,value:As,writable:!1},OPEN:{__proto__:null,configurable:!1,enumerable:!0,value:id,writable:!1},CLOSED:{__proto__:null,configurable:!1,enumerable:!0,value:ts,writable:!1}};Object.defineProperties(Wr,od);Object.defineProperties(Wr.prototype,od);Object.defineProperties(Wr.prototype,{close:qt,onerror:qt,onmessage:qt,onopen:qt,readyState:qt,url:qt,withCredentials:qt});KA.converters.EventSourceInitDict=KA.dictionaryConverter([{key:"withCredentials",converter:KA.converters.boolean,defaultValue:()=>!1},{key:"dispatcher",converter:KA.converters.any}]);ad.exports={EventSource:Wr,defaultReconnectionTime:sd}});var Ed=p((BG,G)=>{"use strict";var yU=hr(),gd=sn(),pU=Cr(),mU=iu(),DU=fr(),kU=Ic(),bU=Su(),FU=Yu(),ld=Z(),co=v(),{InvalidArgumentError:ao}=ld,Pr=pI(),RU=an(),SU=Xc(),NU=sh(),MU=eg(),UU=Gc(),LU=li(),{getGlobalDispatcher:Qd,setGlobalDispatcher:TU}=wi(),xU=yi(),YU=ei(),GU=Ai();Object.assign(gd.prototype,Pr);G.exports.Dispatcher=gd;G.exports.Client=yU;G.exports.Pool=pU;G.exports.BalancedPool=mU;G.exports.Agent=DU;G.exports.ProxyAgent=kU;G.exports.EnvHttpProxyAgent=bU;G.exports.RetryAgent=FU;G.exports.RetryHandler=LU;G.exports.DecoratorHandler=xU;G.exports.RedirectHandler=YU;G.exports.createRedirectInterceptor=GU;G.exports.interceptors={redirect:Qh(),retry:Bh(),dump:Ih(),dns:fh()};G.exports.buildConnector=RU;G.exports.errors=ld;G.exports.util={parseHeaders:co.parseHeaders,headerNameToString:co.headerNameToString};function rs(e){return(A,t,r)=>{if(typeof t=="function"&&(r=t,t=null),!A||typeof A!="string"&&typeof A!="object"&&!(A instanceof URL))throw new ao("invalid url");if(t!=null&&typeof t!="object")throw new ao("invalid opts");if(t&&t.path!=null){if(typeof t.path!="string")throw new ao("invalid opts.path");let i=t.path;t.path.startsWith("/")||(i=`/${i}`),A=new URL(co.parseOrigin(A).origin+i)}else t||(t=typeof A=="object"?A:{}),A=co.parseURL(A);let{agent:n,dispatcher:s=Qd()}=t;if(n)throw new ao("unsupported opts.agent. Did you mean opts.client?");return e.call(s,{...t,origin:A.origin,path:A.search?`${A.pathname}${A.search}`:A.pathname,method:t.method||(t.body?"PUT":"GET")},r)}}G.exports.setGlobalDispatcher=TU;G.exports.getGlobalDispatcher=Qd;var JU=Vn().fetch;G.exports.fetch=async function(A,t=void 0){try{return await JU(A,t)}catch(r){throw r&&typeof r=="object"&&Error.captureStackTrace(r),r}};G.exports.Headers=xt().Headers;G.exports.Response=Jn().Response;G.exports.Request=Ur().Request;G.exports.FormData=un().FormData;G.exports.File=globalThis.File??y("node:buffer").File;G.exports.FileReader=TC().FileReader;var{setGlobalOrigin:HU,getGlobalOrigin:VU}=ha();G.exports.setGlobalOrigin=HU;G.exports.getGlobalOrigin=VU;var{CacheStorage:vU}=WC(),{kConstruct:qU}=qi();G.exports.caches=new vU(qU);var{deleteCookie:WU,getCookies:PU,getSetCookies:OU,setCookie:zU}=Af();G.exports.deleteCookie=WU;G.exports.getCookies=PU;G.exports.getSetCookies=OU;G.exports.setCookie=zU;var{parseMIMEType:ZU,serializeAMimeType:_U}=He();G.exports.parseMIMEType=ZU;G.exports.serializeAMimeType=_U;var{CloseEvent:KU,ErrorEvent:XU,MessageEvent:jU}=Jr();G.exports.WebSocket=Kf().WebSocket;G.exports.CloseEvent=KU;G.exports.ErrorEvent=XU;G.exports.MessageEvent=jU;G.exports.request=rs(Pr.request);G.exports.stream=rs(Pr.stream);G.exports.pipeline=rs(Pr.pipeline);G.exports.connect=rs(Pr.connect);G.exports.upgrade=rs(Pr.upgrade);G.exports.MockClient=SU;G.exports.MockPool=MU;G.exports.MockAgent=NU;G.exports.mockErrors=UU;var{EventSource:$U}=cd();G.exports.EventSource=$U});import Or from"node:net";import eL from"node:dns";function go(e){let A=String(e).toLowerCase().split("%")[0];if((A.match(/::/g)||[]).length>1)return null;let t=l=>{if(!l)return[];let c=l.split(":"),Q=c.at(-1);if(Q?.includes(".")){let B=Q.split(".").map(Number);if(B.length!==4||B.some(E=>!Number.isInteger(E)||E<0||E>255))return null;c.splice(c.length-1,1,(B[0]<<8|B[1]).toString(16),(B[2]<<8|B[3]).toString(16))}return c.some(B=>!/^[0-9a-f]{1,4}$/.test(B))?null:c.map(B=>Number.parseInt(B,16))},[r,n]=A.split("::"),s=t(r),i=t(n);if(!s||!i)return null;let o=A.includes("::"),a=8-s.length-i.length;if(!o&&a!==0||o&&a<1)return null;let g=[...s,...Array(Math.max(0,a)).fill(0),...i];return g.length!==8?null:Uint8Array.from(g.flatMap(l=>[l>>8,l&255]))}function Kg(e,A,t){let r=Math.floor(t/8),n=t%8;for(let i=0;i<r;i+=1)if(e[i]!==A[i])return!1;if(!n)return!0;let s=255<<8-n;return(e[r]&s)===(A[r]&s)}function Xg(e){if(Or.isIPv4(e)){let A=e.split(".").map(Number);return!(A[0]===0||A[0]===10||A[0]===127||A[0]>=224||A[0]===100&&A[1]>=64&&A[1]<=127||A[0]===169&&A[1]===254||A[0]===172&&A[1]>=16&&A[1]<=31||A[0]===192&&(A[1]===0||A[1]===2||A[1]===168)||A[0]===192&&A[1]===88&&A[2]===99||A[0]===198&&(A[1]===18||A[1]===19||A[1]===51)||A[0]===203&&A[1]===0&&A[2]===113)}if(Or.isIPv6(e)){let A=go(e);if(!A)return!1;let t=go("::ffff:0:0");return Kg(A,t,96)?Xg([...A.slice(12)].join(".")):Kg(A,go("2000::"),3)?![["2001::",23],["2001:db8::",32],["2001:10::",28],["2001:2::",48],["2002::",16],["3fff::",20]].some(([n,s])=>Kg(A,go(n),s)):!1}return!1}function tL(e){let A;try{A=new URL(String(e))}catch{return{ok:!1,error:`not a valid URL: ${String(e).slice(0,120)}`}}if(A.protocol!=="http:"&&A.protocol!=="https:")return{ok:!1,error:`refused protocol ${A.protocol} (only http/https)`};let t=A.hostname.toLowerCase().replace(/^\[|\]$/g,"").replace(/\.+$/,"");if(AL.has(t)||t.endsWith(".localhost")||t.endsWith(".internal"))return{ok:!1,error:`refused internal host ${t}`};let r=Or.isIP(t);return r!==0&&!Xg(t)?{ok:!1,error:`refused private address ${t}`}:{ok:!0,url:A,host:t,isLiteralIp:r!==0}}async function Bd(e,{lookupFn:A=eL.promises.lookup}={}){let t=tL(e);if(!t.ok)return t;if(t.isLiteralIp)return{ok:!0,url:t.url};let r;try{r=await A(t.host,{all:!0,verbatim:!0})}catch{return{ok:!1,error:`refused: ${t.host} did not resolve`}}return!Array.isArray(r)||r.length===0||r.some(n=>!Xg(n.address))?{ok:!1,error:`refused: ${t.host} resolves to a non-public address`}:{ok:!0,url:t.url,addresses:r}}async function ud(){let e,A;try{let o=await Promise.resolve().then(()=>zw(Ed(),1));e=o.Agent,A=o.fetch}catch{return null}if(typeof e!="function"||typeof A!="function")return null;let t=o=>String(o).toLowerCase().replace(/^\[|\]$/g,"").replace(/\.+$/,""),r=new Map,n=o=>(Array.isArray(o)?o:[o]).map(a=>typeof a=="string"?{address:a}:a).filter(a=>a&&a.address).map(a=>({address:a.address,family:a.family||(Or.isIPv6(a.address)?6:4)})),s=o=>{let a=t(o);if(Or.isIP(a))return[{address:a,family:Or.isIPv6(a)?6:4}];let g=r.get(a);if(!g||!g.length)throw new Error(`refused: unpinned host ${o} during pinned fetch`);return g},i=new e({connect:{lookup(o,a,g){let l;try{l=s(o)}catch(c){return g(c)}return a?.all?g(null,l):g(null,l[0].address,l[0].family)}}});return{dispatcher:i,fetch:(o,a={})=>A(o,{...a,dispatcher:i}),pin(o,a,g){r.set(t(o),n(typeof a=="string"?[{address:a,family:g}]:a))},resolve:s,async close(){try{await i.destroy()}catch{}}}}var AL,Id=De(()=>{AL=new Set(["localhost","metadata.google.internal","metadata.goog"])});import{createHash as rL}from"node:crypto";function oL(e){let A=String(e||"").toLowerCase();return dd.includes(A)||/(^|-)(api[-_]?key|key|token|secret|auth|authorization|session|cookie|signature|access)(-|$)/.test(A)}function aL(e){let A={};for(let[t,r]of Object.entries(e||{}))oL(t)||(A[t]=r);return A}function cL(e,A){if(!e)throw new Error(`HTTP redirect from ${A} missing Location`);let t=new URL(String(e),String(A));if(t.protocol!=="http:"&&t.protocol!=="https:")throw new Error(`HTTP redirect from ${A} used unsupported protocol ${t.protocol}`);return t.toString()}function gL(e,A){return new URL(String(e)).origin===new URL(String(A)).origin}function lL(e,A,t){let r={};for(let[a,g]of Object.entries(t||{}))r[a.toLowerCase()]=g;let n=Object.keys(r).filter(a=>/(^|-)(api[-_]?key|key|token|secret|auth|authorization|session|cookie|signature|access)(-|$)/.test(a)),i=[...new Set([...dd,...n])].sort().map(a=>`${a}=${r[a]??""}`).join(`
46
+ `),o=rL("sha256").update(i).digest("hex").slice(0,32);return`${e} ${A} ${o}`}function QL(e,A){let t=Number(A);return Number.isFinite(t)&&t>0?Math.min(t*1e3,Cd):Math.min(250*2**e,Cd)+Math.floor(Math.random()*100)}async function BL(e,{fetchImpl:A,method:t,headers:r,body:n,timeoutMs:s,lookupFn:i,realFetch:o}){let a=new AbortController,g=setTimeout(()=>a.abort(),s),l=null,c=A;try{let Q=String(e),B={...r||{}};for(let E=0;E<=fd;E+=1){let u=await c(Q,{method:t,headers:B,body:n,signal:a.signal,redirect:"manual"}),h=await u.text(),I=null;if(h)try{I=JSON.parse(h)}catch{I=null}if(iL.has(u.status)){if(t!=="GET"&&t!=="HEAD"){let f=new Error(`HTTP ${u.status} ${t} ${Q} redirected non-idempotent request`);throw f.status=u.status,f.body=I??h.slice(0,300),f}if(E===fd)throw new Error(`HTTP redirect loop for ${e}`);let C=cL(u.headers?.get?.("location"),Q);if(!gL(C,Q)){let f=await Bd(C,i?{lookupFn:i}:{});if(!f.ok){let R=new Error(`HTTP redirect from ${Q} ${f.error}`);throw R.status=u.status,R}B=aL(B),o&&f.addresses?.length&&(l||(l=await ud()),l&&(l.pin(new URL(C).hostname,f.addresses[0].address,f.addresses[0].family),c=l.fetch))}Q=C;continue}if(!u.ok){let C=new Error(`HTTP ${u.status} ${t} ${Q}`);throw C.status=u.status,C.retryAfter=u.headers?.get?.("retry-after")??null,C.body=I??h.slice(0,300),C}return I??h}throw new Error(`HTTP redirect loop for ${e}`)}finally{clearTimeout(g),l&&await l.close()}}async function wd(e,A={}){let t=A.fetchImpl||globalThis.fetch;if(typeof t!="function")throw new Error("fetch unavailable \u2014 pass opts.fetchImpl");let r=A.timeoutMs??12e3,n=(A.method||"GET").toUpperCase(),s={Accept:"application/json",...A.headers||{}},i=A.body;i!=null&&typeof i!="string"&&(s["Content-Type"]=s["Content-Type"]||"application/json",i=JSON.stringify(i));let o=Number.isInteger(A.retries)?Math.max(A.retries,0):sL,a=A.lookupFn,g=!A.fetchImpl,l=async()=>{let u;for(let h=0;h<=o;h++)try{return await BL(e,{fetchImpl:t,method:n,headers:s,body:i,timeoutMs:r,lookupFn:a,realFetch:g})}catch(I){u=I;let C=I?.status,D=I?.name==="AbortError",f=new Set([408,425,429]),R=C!=null?f.has(C)||nL.has(C)&&hd.has(n):!D&&hd.has(n);if(h===o||!R)throw I;await EL(QL(h,I?.retryAfter))}throw u};if(!(A.dedupe!==!1&&n==="GET"&&i==null))return l();let Q=lL(n,e,s),B=jg.get(Q);if(B)return B;let E=l().finally(()=>jg.delete(Q));return jg.set(Q,E),E}var nL,hd,sL,Cd,dd,iL,fd,jg,EL,yd=De(()=>{Id();nL=new Set([408,425,429,500,502,503,504]),hd=new Set(["GET","HEAD","OPTIONS","PUT","DELETE"]),sL=2,Cd=4e3,dd=["authorization","x-api-key","x-tensor-api-key","0x-api-key","api-key","cookie","proxy-authorization"],iL=new Set([301,302,303,307,308]),fd=3;jg=new Map;EL=e=>new Promise(A=>setTimeout(A,e))});function hL({testnet:e,baseUrl:A}={}){if(A)return A.replace(/\/$/,"").endsWith("/info")?A:`${A.replace(/\/$/,"")}/info`;if(process.env.HL_INFO_URL)return process.env.HL_INFO_URL;if(process.env.HL_API_URL){let t=process.env.HL_API_URL.replace(/\/$/,"");return t.endsWith("/info")?t:`${t}/info`}return e||process.env.HL_TESTNET==="1"?IL:uL}async function $g(e,A={}){if(!e||!e.type)throw new Error("hlInfo requires body.type");let t=hL(A);return wd(t,{method:"POST",body:e,fetchImpl:A.fetchImpl,timeoutMs:A.timeoutMs})}async function pd(e={}){return $g({type:"meta"},e)}async function md({coin:e,interval:A="1h",startTime:t,endTime:r},n={}){if(!e)throw new Error("hlCandleSnapshot requires coin");let s={type:"candleSnapshot",req:{coin:String(e),interval:A,startTime:t??Date.now()-24*3600*1e3,endTime:r??Date.now()}};return $g(s,n)}async function Dd({coin:e,startTime:A,endTime:t},r={}){if(!e)throw new Error("hlFundingHistory requires coin");return $g({type:"fundingHistory",coin:String(e),startTime:A??Date.now()-24*3600*1e3,endTime:t??Date.now()},r)}var uL,IL,el=De(()=>{yd();uL="https://api.hyperliquid.xyz/info",IL="https://api.hyperliquid-testnet.xyz/info"});import{createHash as CL}from"node:crypto";function UA(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}function zr(e){return typeof e=="number"&&Number.isFinite(e)}function rl(e){if(e==null||typeof e!="object"||Object.isFrozen(e))return e;if(Array.isArray(e)){for(let A of e)rl(A);return Object.freeze(e)}for(let A of Object.keys(e))rl(e[A]);return Object.freeze(e)}function Wt(e){if(Array.isArray(e))return e.map(Wt);if(e!=null&&typeof e=="object"){let A={};for(let t of Object.keys(e).sort())A[t]=Wt(e[t]);return A}return e}function Al(e){return{netPnlUsd:e.metrics.netPnlUsd,netPnlPct:e.metrics.netPnlPct,maxDrawdownPct:e.metrics.maxDrawdownPct,winRate:e.metrics.winRate,profitFactor:e.metrics.profitFactor,tradeCount:e.metrics.tradeCount,sharpe:e.metrics.sharpe,turnoverUsd:e.metrics.turnoverUsd,exposurePct:e.metrics.exposurePct}}function kd(e){return{feesUsd:e.costs.feesUsd,builderFeesUsd:e.costs.builderFeesUsd,fundingUsd:e.costs.fundingUsd,slippageUsd:e.costs.slippageUsd}}function dL(e){return(e.feesUsd||0)+(e.builderFeesUsd||0)+Math.max(0,e.fundingUsd||0)+(e.slippageUsd||0)}function wL(e){let A=0;for(let t of e.trades)t.grossPnlUsd>0&&(A+=t.grossPnlUsd);return A}function yL(e,A,t){return!(!e||e.tradeCount<Math.max(1,Math.min(t,3))||!(e.netPnlUsd>0)||!(e.profitFactor>1)||!(e.maxDrawdownPct<=A.maxDailyLossPct))}function Fd(e){if(!UA(e))throw new TypeError("evidence artifact must be a plain object");if(!fL.includes(e.status))throw new TypeError("evidence artifact status is invalid");for(let A of["strategyHash","compilerHash","barsHash"])if(typeof e[A]!="string"||!/^[0-9a-f]{64}$/.test(e[A]))throw new TypeError(`evidence artifact ${A} must be a sha256 hash`);if(!UA(e.split))throw new TypeError("evidence artifact split required");if(!Array.isArray(e.flags))throw new TypeError("evidence artifact flags must be an array");if(!UA(e.walkForward)||!Array.isArray(e.walkForward.windows))throw new TypeError("evidence artifact walkForward windows required");if(e.status==="pass_live_eligible"&&(!UA(e.train)||!UA(e.holdout)))throw new TypeError("live-eligible evidence artifact requires train and holdout facts");return Wt({barsHash:e.barsHash,compilerHash:e.compilerHash,flags:e.flags.map(A=>Wt(A)),holdout:e.holdout??null,split:e.split,status:e.status,strategyHash:e.strategyHash,train:e.train??null,walkForward:{passRate:e.walkForward.passRate,windowsRun:e.walkForward.windowsRun??e.walkForward.windows.length,windows:e.walkForward.windows.map(A=>({index:A.index,trainStartIndex:A.trainStartIndex,trainEndIndex:A.trainEndIndex,passed:A.passed,reason:A.reason,evalStartIndex:A.evalStartIndex,evalEndIndex:A.evalEndIndex,metrics:A.metrics}))}})}function Rd(e){return CL("sha256").update(JSON.stringify(Fd(e)),"utf8").digest("hex")}function fA(e,A,t=0){if(!Number.isInteger(e)||e<t)throw new Error(`${A} must be an integer >= ${t}`);return e}function tl(e,A){if(!UA(e)||!UA(e.metrics))throw new Error(`${A} metrics required`);let t=fA(e.tradeCount,`${A}.tradeCount`);if(e.metrics.tradeCount!==t)throw new Error(`${A} tradeCount contradicts metrics.tradeCount`);for(let r of["netPnlUsd","profitFactor","maxDrawdownPct"])if(!zr(e.metrics[r]))throw new Error(`${A}.metrics.${r} must be finite`);if(e.metrics.maxDrawdownPct<0)throw new Error(`${A}.metrics.maxDrawdownPct must be >= 0`);return e.metrics}function pL(e,{maxDailyLossPct:A}={}){let t=e.split,r=fA(t.trainStartIndex,"split.trainStartIndex"),n=fA(t.trainEndIndex,"split.trainEndIndex"),s=fA(t.trainBarCount,"split.trainBarCount",1),i=fA(t.holdoutStartIndex,"split.holdoutStartIndex"),o=fA(t.holdoutEndIndex,"split.holdoutEndIndex"),a=fA(t.holdoutBarCount,"split.holdoutBarCount",1);if(r!==0||n-r+1!==s||i!==n+1||o-i+1!==a)throw new Error("evidence split must be contiguous, chronological, and count-consistent");if(!zr(t.trainFraction)||t.trainFraction<=0||t.trainFraction>=1)throw new Error("split.trainFraction must be in (0,1)");tl(e.train,"train");let g=tl(e.holdout,"holdout");if(g.tradeCount<1||g.netPnlUsd<=0||g.profitFactor<=1)throw new Error("live-eligible holdout metrics do not pass");if(zr(A)&&g.maxDrawdownPct>A)throw new Error("live-eligible holdout drawdown exceeds strategy risk");if(e.flags.length>0)throw new Error("live-eligible evidence cannot contain failure flags");let l=e.walkForward,c=l.windows;if(c.length<1||l.windowsRun!==c.length)throw new Error("live-eligible walk-forward windowsRun must match nonempty windows");let Q=0,B=-1;for(let u=0;u<c.length;u++){let h=c[u];if(!UA(h)||h.index!==u||typeof h.passed!="boolean")throw new Error("walk-forward windows must be ordered and structurally valid");let I=fA(h.trainStartIndex,`walkForward.windows[${u}].trainStartIndex`),C=fA(h.trainEndIndex,`walkForward.windows[${u}].trainEndIndex`),D=fA(h.evalStartIndex,`walkForward.windows[${u}].evalStartIndex`),f=fA(h.evalEndIndex,`walkForward.windows[${u}].evalEndIndex`);if(I!==0||C>=D||D>f||D<=B)throw new Error("walk-forward windows must be chronological and disjoint");if(B=f,h.passed){if(Q+=1,h.reason!=="pass")throw new Error("passed walk-forward window reason must be pass");let R=tl({metrics:h.metrics,tradeCount:h.metrics?.tradeCount},`walkForward.windows[${u}]`);if(R.tradeCount<1||R.netPnlUsd<=0||R.profitFactor<=1)throw new Error("passed walk-forward window metrics do not pass");if(zr(A)&&R.maxDrawdownPct>A)throw new Error("passed walk-forward drawdown exceeds strategy risk")}else if(h.reason==="pass")throw new Error("failed walk-forward window cannot have pass reason")}let E=Q/c.length;if(!zr(l.passRate)||Math.abs(l.passRate-E)>Number.EPSILON||E<.6)throw new Error("walk-forward passRate contradicts concrete windows or is below live threshold")}function Sd(e,A={}){if(typeof e?.id!="string"||!/^[0-9a-f]{64}$/.test(e.id))throw new Error("evidence.id must be a sha256 evidence artifact hash");let t=Fd(e),r=Wt({id:e.id,...t});if(JSON.stringify(Wt(e))!==JSON.stringify(r))throw new Error("evidence artifact contains fields unbound from its deterministic identity");let n=Rd(e);if(e.id!==n)throw new Error("evidence.id does not match its deterministic artifact facts digest");return e.status==="pass_live_eligible"&&pL(e,A),e}function nl({strategy:e,bars:A,backtestOptions:t={},trainFraction:r=.7,walkForwardWindows:n=3,minTrades:s=10}={}){let i=[];if(!UA(e))throw new TypeError("strategy must be a plain object");if(!Array.isArray(A))throw new TypeError("bars must be an array");if(!UA(t))throw new TypeError("backtestOptions must be a plain object");if(!zr(r)||r<=0||r>=1)throw new TypeError("trainFraction must be in (0,1)");if(!Number.isInteger(n)||n<1)throw new TypeError("walkForwardWindows must be a positive integer");if(!Number.isInteger(s)||s<0)throw new TypeError("minTrades must be an integer >= 0");let o=Ge(e),a=Zr(o),g=ns(A),l=A.length,c=(_=[],te={})=>bd({status:"fail",strategy:o,sHash:a,barsHash:g,split:te.split||{trainStartIndex:0,trainEndIndex:-1,trainBarCount:0,holdoutStartIndex:0,holdoutEndIndex:-1,holdoutBarCount:0,trainFraction:r},train:te.train||null,holdout:te.holdout||null,walkForward:te.walkForward||{windows:[],passRate:0},flags:[...i,..._]});if(l<10)return c([{type:"insufficient_bars",message:"need at least 10 bars for evidence"}]);let Q=Math.floor(l*r),B=Q,E=l-B;if(Q<5||E<3)return c([{type:"invalid_windowing",message:"train/holdout split too small",trainCount:Q,holdoutCount:E}]);let u=A.slice(0,Q),h=A.slice(B),I,C;try{I=ut(o,u,t),C=ut(o,h,t)}catch(_){return c([{type:"backtest_error",message:String(_.message||_)}])}let D={metrics:Al(I),costs:kd(I),tradeCount:I.metrics.tradeCount},f={metrics:Al(C),costs:kd(C),tradeCount:C.metrics.tradeCount},R={trainStartIndex:0,trainEndIndex:Q-1,trainBarCount:Q,holdoutStartIndex:B,holdoutEndIndex:l-1,holdoutBarCount:E,trainFraction:r},S=[],d=Math.floor(l/(n+1));if(d<3)i.push({type:"invalid_windowing",message:"walk-forward window size too small",wfSize:d});else for(let _=0;_<n;_++){let te=d*(_+1),Re=te,fe=Math.min(l,Re+d);if(fe-Re<3||te<3){S.push({index:_,trainStartIndex:0,trainEndIndex:te-1,evalStartIndex:Re,evalEndIndex:fe-1,passed:!1,reason:"window_too_small",metrics:null});continue}let wA=A.slice(Re,fe),Es;try{Es=ut(o,wA,t)}catch{S.push({index:_,trainStartIndex:0,trainEndIndex:te-1,evalStartIndex:Re,evalEndIndex:fe-1,passed:!1,reason:"backtest_error",metrics:null});continue}let Bs=Al(Es),us=yL(Bs,o.risk,s);S.push({index:_,trainStartIndex:0,trainEndIndex:te-1,evalStartIndex:Re,evalEndIndex:fe-1,passed:us,reason:us?"pass":"fail_metrics",metrics:Bs})}let se=S.filter(_=>_.passed).length,ke=S.length===0?0:se/S.length,Le={windows:S,passRate:ke,windowsRun:S.length};f.metrics.tradeCount===0&&D.metrics.tradeCount===0&&i.push({type:"no_trades",message:"no trades in train or holdout"}),f.metrics.tradeCount===0&&i.push({type:"absent_oos_trades",message:"holdout produced no trades"}),f.metrics.netPnlUsd<0&&i.push({type:"holdout_loss",message:"holdout netPnlUsd is negative"}),D.metrics.netPnlUsd>0&&f.metrics.netPnlUsd<0&&D.metrics.netPnlUsd>Math.abs(f.metrics.netPnlUsd)*.25?i.push({type:"overfit",message:"profitable train with losing holdout (OOS collapse)"}):D.metrics.netPnlUsd>0&&f.metrics.netPnlUsd>0&&f.metrics.netPnlUsd<D.metrics.netPnlUsd*.1&&D.metrics.tradeCount>=s&&i.push({type:"severe_oos_collapse",message:"holdout pnl collapsed vs train"});let me=dL(f.costs),w=wL(C);w>0&&me>w&&i.push({type:"costs_exceed_gross",message:"holdout costs exceed gross gains"});let H=i.some(_=>["insufficient_bars","invalid_windowing","absent_oos_trades","holdout_loss","no_trades","severe_oos_collapse","backtest_error"].includes(_.type)),q=i.some(_=>_.type==="overfit"),ee="fail";return f.metrics.tradeCount>=s&&f.metrics.netPnlUsd>0&&f.metrics.profitFactor>1&&f.metrics.maxDrawdownPct<=o.risk.maxDailyLossPct&&ke>=.6&&!(w>0&&me>w)&&!q&&!i.some(_=>_.type==="severe_oos_collapse"||_.type==="invalid_windowing")?ee="pass_live_eligible":!H&&f.metrics.tradeCount>0&&D.metrics.tradeCount>0&&Number.isFinite(f.metrics.netPnlUsd)?(ee="pass_paper_only",f.metrics.tradeCount<s&&i.push({type:"undersampled",message:"holdout trades below minTrades"})):q&&f.metrics.tradeCount>0&&D.metrics.netPnlUsd>0?ee="fail":f.metrics.tradeCount>0&&D.metrics.tradeCount>0&&!H?ee="pass_paper_only":ee="fail",f.metrics.netPnlUsd<0&&(ee=ee==="pass_live_eligible"?"fail":ee==="pass_paper_only"?"pass_paper_only":"fail",ee="fail"),bd({status:ee,strategy:o,sHash:a,barsHash:g,split:R,train:D,holdout:f,walkForward:Le,flags:i})}function bd({status:e,strategy:A,sHash:t,barsHash:r,split:n,train:s,holdout:i,walkForward:o,flags:a}){let g={status:e,strategyHash:t,compilerHash:Ot,barsHash:r,split:n,train:s,holdout:i,walkForward:o,flags:a};return g.id=Rd(g),rl(Wt(JSON.parse(JSON.stringify(g))))}var fL,sl=De(()=>{zt();Pt();lo();fL=Object.freeze(["fail","pass_paper_only","pass_live_eligible"])});import{createHash as mL,createHmac as DL,timingSafeEqual as RG}from"node:crypto";function il(e){return e===null||typeof e!="object"?JSON.stringify(e):Array.isArray(e)?`[${e.map(il).join(",")}]`:`{${Object.keys(e).sort().map(t=>`${JSON.stringify(t)}:${il(e[t])}`).join(",")}}`}function Nd(e){let A=String(e?.ORACLE_STAMP_HMAC_SECRET||"").trim();return A.length>=16?A:""}function Md(e=process.env){return Nd(process.env)||Nd(e)}function FL(e){let{oraclePrepared:A,prepareHash:t,prepareMac:r,note:n,...s}=e||{};return s}function RL(e){let A=FL(e);return mL("sha256").update(il(A)).digest("hex")}function SL(e,A=Md()){return A?DL("sha256",A).update(String(e)).digest("hex"):""}function Ud(e,{provider:A,kind:t,env:r=process.env}={}){if(!e||typeof e!="object")throw new Error("stampPrepared: payload object required");let n={...e,provider:e.provider||A,kind:e.kind||t,requiresUserSignature:e.requiresUserSignature!==!1,signingReady:!1,broadcastReady:!1,executionReady:!1};if(!n.provider)throw new Error("stampPrepared: provider required");if(!n.kind)throw new Error("stampPrepared: kind required");let s=Date.now(),i=s+bL,a={...n,preparedAt:s,expiresAt:i,prepareVersion:kL},g=RL(a),l=Md(r),c=l?SL(g,l):void 0,Q={...a,oraclePrepared:!0,prepareHash:g};return c&&(Q.prepareMac=c),Q}var kL,bL,SG,Ld=De(()=>{kL=2,bL=300*1e3,SG=(()=>{let e=Number(process.env.ORACLE_PREPARE_HARD_MAX_AGE_MS);return Number.isFinite(e)&&e>0?e:1800*1e3})()});function ss(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}function ML(e){return String(e).toLowerCase().replace(/[^a-z0-9]/g,"")}function al(e,A="value"){if(Array.isArray(e)){e.forEach((t,r)=>al(t,`${A}[${r}]`));return}if(ss(e))for(let[t,r]of Object.entries(e)){let n=ML(t);if(NL.some(s=>n.includes(s)))throw new Error(`handoff: forbidden secret-like field at ${A}.${t}`);al(r,`${A}.${t}`)}}function ol(e){return typeof e=="number"&&Number.isFinite(e)&&e>0}function Td({strategy:e,evidence:A,shadow:t,caps:r,nowMs:n=Date.now(),env:s=process.env}={}){if(al({strategy:e,evidence:A,shadow:t,caps:r},"handoff"),!ss(e))throw new Error("handoff: strategy required");if(!ss(A))throw new Error("handoff: evidence required");if(!ss(t))throw new Error("handoff: shadow required");if(!ss(r))throw new Error("handoff: caps required");if(typeof t.id!="string"||!t.id.trim())throw new Error("handoff: shadow.id required");if(typeof t.stateHash!="string"||!/^[0-9a-f]{64}$/.test(t.stateHash))throw new Error("handoff: shadow.stateHash must be a sha256 hash");if(t.status!=="running")throw new Error("handoff: shadow.status must be running");if(!Number.isInteger(t.cursor)||t.cursor<=0)throw new Error("handoff: shadow.cursor must be a positive integer");if(!Number.isInteger(t.updatedAt)||t.updatedAt<=0||t.updatedAt>n)throw new Error("handoff: shadow.updatedAt must be a positive integer <= nowMs");let i=Ge(e,{nowMs:n}),o=Je(i);if(Sd(A,{maxDailyLossPct:i.risk.maxDailyLossPct}),A.status!=="pass_live_eligible")throw new Error("handoff: evidence.status must be pass_live_eligible");if(A.strategyHash!==o.strategyHash)throw new Error("handoff: evidence.strategyHash mismatch");if(A.compilerHash!==o.compilerHash)throw new Error("handoff: evidence.compilerHash mismatch");let a=["perStrategyNotionalUsd","maxLeverage","dailyLossCapUsd","chainAllowlist","assetAllowlist","expiresAt","killSwitchRequired"];for(let Q of a)if(!(Q in r)||r[Q]==null)throw new Error(`handoff: caps.${Q} required`);if(!ol(r.perStrategyNotionalUsd))throw new Error("handoff: caps.perStrategyNotionalUsd must be positive");if(r.perStrategyNotionalUsd>o.strategy.risk.maxNotionalUsd)throw new Error("handoff: caps.perStrategyNotionalUsd exceeds strategy.risk.maxNotionalUsd");if(!ol(r.maxLeverage))throw new Error("handoff: caps.maxLeverage must be positive");if(r.maxLeverage>o.strategy.risk.maxLeverage)throw new Error("handoff: caps.maxLeverage exceeds strategy.risk.maxLeverage");if(!ol(r.dailyLossCapUsd))throw new Error("handoff: caps.dailyLossCapUsd must be positive");let g=o.strategy.risk.maxNotionalUsd*(o.strategy.risk.maxDailyLossPct/100);if(r.dailyLossCapUsd>g)throw new Error("handoff: caps.dailyLossCapUsd exceeds strategy daily loss ceiling");if(!Array.isArray(r.chainAllowlist)||r.chainAllowlist.length===0)throw new Error("handoff: caps.chainAllowlist must be a non-empty array");if(!r.chainAllowlist.every(Q=>Q==="hyperliquid"))throw new Error("handoff: caps.chainAllowlist must include only hyperliquid");if(!r.chainAllowlist.includes("hyperliquid"))throw new Error("handoff: caps.chainAllowlist must include hyperliquid");if(!Array.isArray(r.assetAllowlist)||r.assetAllowlist.length===0)throw new Error("handoff: caps.assetAllowlist must be a non-empty array");if(r.assetAllowlist.length!==1||r.assetAllowlist[0]!==o.strategy.market.coin)throw new Error("handoff: caps.assetAllowlist must contain only the strategy market coin");if(!Number.isInteger(r.expiresAt)||!(r.expiresAt>n))throw new Error("handoff: caps.expiresAt must be an integer > nowMs");if(r.expiresAt>o.strategy.risk.expiresAt)throw new Error("handoff: caps.expiresAt exceeds strategy.risk.expiresAt");if(r.killSwitchRequired!==!0)throw new Error("handoff: caps.killSwitchRequired must be exactly true");let l={perStrategyNotionalUsd:r.perStrategyNotionalUsd,maxLeverage:r.maxLeverage,dailyLossCapUsd:r.dailyLossCapUsd,chainAllowlist:[...r.chainAllowlist],assetAllowlist:[...r.assetAllowlist],expiresAt:r.expiresAt,killSwitchRequired:!0},c={strategyHash:o.strategyHash,compilerHash:o.compilerHash,evidence:JSON.parse(JSON.stringify(A)),shadow:{id:t.id,stateHash:t.stateHash,status:t.status,cursor:t.cursor,updatedAt:t.updatedAt},compiled:{strategyHash:o.strategyHash,compilerHash:o.compilerHash,compilerVersion:is,venue:"hyperliquid",market:{coin:o.strategy.market.coin,kind:"perp",interval:o.strategy.market.interval},risk:{...o.strategy.risk},strategy:JSON.parse(JSON.stringify(o.strategy))},arming:{liveBroadcast:!1,requiresExplicitUserArm:!0,caps:l},requiresUserSignature:!0,signingReady:!1,broadcastReady:!1,executionReady:!1};return Ud(c,{provider:"hl-strategy",kind:"strategy-live-handoff",env:s})}var NL,xd=De(()=>{zt();sl();Pt();Ld();NL=["privatekey","secretkey","seed","mnemonic","passphrase","password","keystore","keymaterial","apikey","authtoken","accesstoken","refreshtoken","credential","bearer","signature","authorization","xprv","xpriv","wif"]});function _r(e,A){let t=Number(e);if(!Number.isFinite(t))throw new TypeError(`${A} must be finite`);return t}function Kr(e,A){if(!Number.isSafeInteger(e)||e<0)throw new TypeError(`${A} must be a non-negative safe integer`);return e}function os(e){if(Array.isArray(e))for(let A of e)os(A);else if(e&&typeof e=="object")for(let A of Object.values(e))os(A);return Object.freeze(e)}function LL(e){let A=UL[e];if(!A)throw new TypeError(`unsupported strategy interval: ${e}`);return A}function TL(e,{endTime:A=Number.MAX_SAFE_INTEGER}={}){if(!Array.isArray(e))throw new TypeError("Hyperliquid candles must be an array");Kr(A,"endTime");let t=new Map;for(let r=0;r<e.length;r++){let n=e[r];if(!n||typeof n!="object"||Array.isArray(n))throw new TypeError(`candles[${r}] must be an object`);let s=Kr(Number(n.t),`candles[${r}].t`);if(Kr(Number(n.T),`candles[${r}].T`)>A)continue;let o={t:s,o:_r(n.o,`candles[${r}].o`),h:_r(n.h,`candles[${r}].h`),l:_r(n.l,`candles[${r}].l`),c:_r(n.c,`candles[${r}].c`),v:_r(n.v,`candles[${r}].v`)};if(o.h<Math.max(o.o,o.c,o.l))throw new TypeError(`candles[${r}].h is below another price`);if(o.l>Math.min(o.o,o.c,o.h))throw new TypeError(`candles[${r}].l is above another price`);if(o.v<0)throw new TypeError(`candles[${r}].v must be non-negative`);let a=t.get(s);if(a&&JSON.stringify(a)!==JSON.stringify(o))throw new TypeError(`conflicting duplicate candle at timestamp ${s}`);a||t.set(s,o)}return os([...t.values()].sort((r,n)=>r.t-n.t))}function xL(e,A){if(!Array.isArray(e))throw new TypeError("Hyperliquid funding history must be an array");let t=new Map;for(let r=0;r<e.length;r++){let n=e[r];if(!n||typeof n!="object"||Array.isArray(n))throw new TypeError(`funding[${r}] must be an object`);let s=Kr(Number(n.time),`funding[${r}].time`);s>A||t.set(s,{time:s,fundingRate:_r(n.fundingRate,`funding[${r}].fundingRate`)})}return[...t.values()].sort((r,n)=>r.time-n.time)}async function YL({coin:e,startTime:A,endTime:t},r){let n=[],s=Math.max(0,A-288e5),i=!1;for(let o=0;o<16&&s<=t;o++){let a=await Dd({coin:e,startTime:s,endTime:t},r);if(!Array.isArray(a))throw new TypeError("Hyperliquid funding history must be an array");n.push(...a);let g=s;for(let l of a){let c=Number(l?.time);Number.isSafeInteger(c)&&c>g&&(g=c)}if(a.length<500||g>=t){i=!0;break}if(g<=s)throw new Error("Hyperliquid funding history pagination did not advance");s=g+1}if(!i)throw new Error("strategy history exceeds the bounded funding history limit");return xL(n,t)}function GL(e,A,t){let r=0,n=null;return e.map(s=>{let i=s.t+t,o=0;for(;r<A.length&&A[r].time<i;){let a=A[r];n=a.fundingRate,a.time>=s.t&&(o+=a.fundingRate),r+=1}return n==null?{...s,fundingPaymentRate:o}:{...s,fundingRate:n,fundingPaymentRate:o}})}async function Yd(e,A={}){if(!e||typeof e!="object"||Array.isArray(e))throw new TypeError("strategy history input must be an object");let t=String(e.coin||"").trim().toUpperCase();if(!/^[A-Z0-9][A-Z0-9._-]{0,11}$/.test(t))throw new TypeError("coin must be an uppercase Hyperliquid asset id");let r=String(e.interval||"15m"),n=LL(r);if(e.endTime==null)throw new TypeError("endTime is required for deterministic history");let s=Kr(e.endTime,"endTime"),i=e.count==null?1500:e.count;if(!Number.isInteger(i)||i<20||i>5e3)throw new TypeError("count must be an integer from 20 to 5000");let o=e.startTime==null?Math.max(0,s-i*n):Kr(e.startTime,"startTime");if(o>=s)throw new TypeError("startTime must be before endTime");let[a,g]=await Promise.all([md({coin:t,interval:r,startTime:o,endTime:s},A),YL({coin:t,startTime:o,endTime:s},A)]),l=TL(a,{endTime:s}),c=os(GL(l,g,n));return os({coin:t,interval:r,range:{startTime:o,endTime:s},bars:c})}var UL,Gd=De(()=>{el();UL=Object.freeze({"1m":6e4,"3m":18e4,"5m":3e5,"15m":9e5,"30m":18e5,"1h":36e5,"2h":72e5,"4h":144e5,"8h":288e5,"12h":432e5,"1d":864e5})});function VL(e){let A=[];if(!e||typeof e!="object"||Array.isArray(e))return{ok:!1,errors:[{path:"market",message:"must be a plain object"}],market:null};for(let t of Object.keys(e))HL.has(t)||A.push({path:`market.${t}`,message:"unknown field is not allowed"});return(typeof e.coin!="string"||e.coin.length===0||e.coin.length>32)&&A.push({path:"market.coin",message:"must be a non-empty string max 32"}),(typeof e.interval!="string"||!JL.has(e.interval))&&A.push({path:"market.interval",message:"must be a supported interval"}),A.length?{ok:!1,errors:A,market:null}:{ok:!0,errors:[],market:{coin:e.coin,interval:e.interval}}}async function vL(e={}){let A=await pd(e);if(!A||!Array.isArray(A.universe))throw new TypeError("Hyperliquid market metadata must contain universe");return Object.freeze(A.universe.map((t,r)=>{if(!t||typeof t.name!="string"||!t.name)throw new TypeError(`Hyperliquid market metadata universe[${r}].name is invalid`);return t.name}))}var JL,HL,Jd,Hd=De(()=>{el();xd();Gd();JL=new Set(["1m","3m","5m","15m","30m","1h","2h","4h","8h","12h","1d"]),HL=new Set(["coin","interval"]);Jd=Object.freeze({id:"hyperliquid",validateMarket:VL,fetchBars:Yd,listMarkets:vL,prepareIntent(e){return Td(e)}})});function WL(e){if(!e||typeof e!="object"||Array.isArray(e))throw new TypeError("strategy venue adapter must be an object");if(typeof e.id!="string"||!/^[a-z0-9][a-z0-9._-]{0,63}$/.test(e.id))throw new TypeError("strategy venue adapter id is malformed");for(let A of qL.slice(1))if(typeof e[A]!="function")throw new TypeError(`strategy venue adapter ${e.id} requires ${A}()`);for(let A of["fetchBars","listMarkets"])if(e[A]!=null&&typeof e[A]!="function")throw new TypeError(`strategy venue adapter ${e.id} ${A} must be a function`);return e}function cl(e){return typeof e!="string"?null:PL.get(e)??null}function gl(e){let A=cl(e);if(!A)throw new Error(`unknown strategy venue: ${String(e)}`);return A}var qL,Vd,PL,WG,ll=De(()=>{Hd();qL=Object.freeze(["id","validateMarket","prepareIntent"]);Vd=[Jd].map(WL),PL=new Map(Vd.map(e=>[e.id,e])),WG=Object.freeze([...Vd])});import{createHash as OL}from"node:crypto";function aA(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}function Ie(e){return typeof e=="number"&&Number.isFinite(e)}function _d(e){return Number.isInteger(e)&&e>0}function Il(e){if(e==null||typeof e!="object"||Object.isFrozen(e))return e;if(Array.isArray(e)){for(let A of e)Il(A);return Object.freeze(e)}for(let A of Object.keys(e))Il(e[A]);return Object.freeze(e)}function hl(e){if(Array.isArray(e))return e.map(hl);if(e!=null&&typeof e=="object"){let A={};for(let t of Object.keys(e).sort())A[t]=hl(e[t]);return A}return e}function k(e,A,t){e.push({path:A,message:t})}function It(e,A,t,r){for(let n of Object.keys(e))A.has(n)||k(r,t?`${t}.${n}`:n,"unknown field is not allowed")}function $d(e,A,t,r){if(!Ie(e)||!Ie(A)||!Ie(t)||!Ie(r)||r<=0||e<A||e>t)return!1;let n=(e-A)/r;if(!Number.isFinite(n))return!1;let s=Math.round(n);return Math.abs(n-s)<=1e-9}function ul(e,A,t,r){if(aA(e)){if(It(e,new Set(["param"]),A,r),typeof e.param!="string"||!e.param)return k(r,`${A}.param`,"must be a parameter name string"),null;if(!Object.prototype.hasOwnProperty.call(t,e.param))return k(r,`${A}.param`,`unknown parameter "${e.param}"`),null;let n=t[e.param];return!aA(n)||![n.value,n.min,n.max,n.step].every(_d)?(k(r,`${A}.param`,"referenced period parameter value min max and step must be positive integers"),null):{param:e.param}}return _d(e)?e:(k(r,A,"must be a positive integer or {param}"),null)}function Kd(e,A,t,r){return aA(e)?(It(e,new Set(["param"]),A,r),typeof e.param!="string"||!e.param?(k(r,`${A}.param`,"must be a parameter name string"),null):Object.prototype.hasOwnProperty.call(t,e.param)?{param:e.param}:(k(r,`${A}.param`,`unknown parameter "${e.param}"`),null)):Ie(e)?e:(k(r,A,"must be a finite number or {param}"),null)}function Qo(e){switch(e.type){case"input":case"constant":return[];case"indicator":return e.input?[e.input]:[];case"compare":case"cross":return[e.left,e.right].filter(Boolean);case"logic":return Array.isArray(e.inputs)?[...e.inputs]:[];default:return[]}}function AT(e){let A=new Map,t=r=>{let n=A.get(r)||0;if(n===1)return!0;if(n===2)return!1;A.set(r,1);let s=e.get(r);if(s){for(let i of Qo(s))if(e.has(i)&&t(i))return!0}return A.set(r,2),!1};for(let r of e.keys())if(t(r))return!0;return!1}function tT(e,A){if(!aA(e))return k(A,"parameters","must be a plain object"),null;let t=Object.keys(e);if(t.length>Od)return k(A,"parameters",`too many parameters (max ${Od})`),null;let r={};for(let n of t){if(!Xd.test(n)){k(A,`parameters.${n}`,"parameter name is malformed");continue}let s=e[n],i=`parameters.${n}`;if(!aA(s)){k(A,i,"must be a plain object");continue}It(s,qd,i,A);for(let c of qd)c in s||k(A,`${i}.${c}`,"required field is missing");let{value:o,min:a,max:g,step:l}=s;Ie(a)||k(A,`${i}.min`,"must be a finite number"),Ie(g)||k(A,`${i}.max`,"must be a finite number"),(!Ie(l)||l<=0)&&k(A,`${i}.step`,"must be a positive finite number"),Ie(o)||k(A,`${i}.value`,"must be a finite number"),Ie(a)&&Ie(g)&&a>g&&k(A,`${i}.min`,"min must be <= max"),Ie(o)&&Ie(a)&&Ie(g)&&Ie(l)&&l>0&&($d(o,a,g,l)||k(A,`${i}.value`,"value must lie on the declared min/max/step grid")),r[n]={value:o,min:a,max:g,step:l}}return r}function rT(e,A,t,r){let n=`nodes.${A}`;if(!aA(e))return k(r,n,"must be a plain object"),null;if(typeof e.type!="string"||!Pd[e.type])return k(r,`${n}.type`,"unknown or missing node type"),It(e,eT,n,r),null;switch(It(e,Pd[e.type],n,r),(typeof e.id!="string"||!jd.test(e.id))&&k(r,`${n}.id`,"must be a 1-64 char id starting with alphanumeric"),e.type){case"input":return(typeof e.field!="string"||!zL.has(e.field))&&k(r,`${n}.field`,"must be one of open|high|low|close|volume|fundingRate|openInterest"),{id:e.id,type:"input",field:e.field};case"constant":{let s=Kd(e.value,`${n}.value`,t,r);return{id:e.id,type:"constant",value:s}}case"indicator":{(typeof e.indicator!="string"||!ZL.has(e.indicator))&&k(r,`${n}.indicator`,"must be one of sma|ema|rsi|macd|bollinger|atr");let s=e.indicator,i={id:e.id,type:"indicator",indicator:s};if(s==="atr"){"input"in e&&(typeof e.input!="string"||!e.input?k(r,`${n}.input`,"must be a node id string when provided"):i.input=e.input);let o=ul(e.period,`${n}.period`,t,r);o!=null&&(i.period=o)}else typeof e.input!="string"||!e.input?k(r,`${n}.input`,"must be a node id string"):i.input=e.input;if((s==="sma"||s==="ema"||s==="rsi"||s==="bollinger"||s==="atr")&&("period"in e,s!=="macd"))if(!("period"in e))k(r,`${n}.period`,"required field is missing");else{let o=ul(e.period,`${n}.period`,t,r);o!=null&&(i.period=o)}if(s==="macd"){for(let o of["fastPeriod","slowPeriod","signalPeriod"])if(!(o in e))k(r,`${n}.${o}`,"required field is missing");else{let a=ul(e[o],`${n}.${o}`,t,r);a!=null&&(i[o]=a)}"output"in e?jL.has(e.output)?i.output=e.output:k(r,`${n}.output`,"must be line|signal|histogram"):k(r,`${n}.output`,"required field is missing"),"period"in e&&k(r,`${n}.period`,"forbidden for macd"),"stdDev"in e&&k(r,`${n}.stdDev`,"forbidden for macd")}else if(s==="bollinger"){if(!("stdDev"in e))k(r,`${n}.stdDev`,"required field is missing");else{let o=Kd(e.stdDev,`${n}.stdDev`,t,r);o!=null&&(typeof o=="number"&&o<=0?k(r,`${n}.stdDev`,"must be > 0"):i.stdDev=o)}"output"in e?$L.has(e.output)?i.output=e.output:k(r,`${n}.output`,"must be upper|middle|lower"):k(r,`${n}.output`,"required field is missing");for(let o of["fastPeriod","slowPeriod","signalPeriod"])o in e&&k(r,`${n}.${o}`,`forbidden for ${s}`)}else{"output"in e&&k(r,`${n}.output`,`forbidden for ${s}`),"stdDev"in e&&s!=="bollinger"&&k(r,`${n}.stdDev`,`forbidden for ${s}`);for(let o of["fastPeriod","slowPeriod","signalPeriod"])o in e&&k(r,`${n}.${o}`,`forbidden for ${s}`)}return i}case"compare":return(typeof e.op!="string"||!_L.has(e.op))&&k(r,`${n}.op`,"must be gt|gte|lt|lte|eq"),(typeof e.left!="string"||!e.left)&&k(r,`${n}.left`,"must be a node id"),(typeof e.right!="string"||!e.right)&&k(r,`${n}.right`,"must be a node id"),{id:e.id,type:"compare",op:e.op,left:e.left,right:e.right};case"logic":{if((typeof e.op!="string"||!KL.has(e.op))&&k(r,`${n}.op`,"must be and|or|not"),!Array.isArray(e.inputs))return k(r,`${n}.inputs`,"must be an array of node ids"),{id:e.id,type:"logic",op:e.op,inputs:[]};let s=[];for(let i=0;i<e.inputs.length;i++){let o=e.inputs[i];typeof o!="string"||!o?k(r,`${n}.inputs.${i}`,"must be a node id"):s.push(o)}return e.op==="not"?s.length!==1&&k(r,`${n}.inputs`,"not requires exactly one input"):(e.op==="and"||e.op==="or")&&s.length<2&&k(r,`${n}.inputs`,`${e.op} requires at least two inputs`),{id:e.id,type:"logic",op:e.op,inputs:s}}case"cross":return(typeof e.direction!="string"||!XL.has(e.direction))&&k(r,`${n}.direction`,"must be above|below"),(typeof e.left!="string"||!e.left)&&k(r,`${n}.left`,"must be a node id"),(typeof e.right!="string"||!e.right)&&k(r,`${n}.right`,"must be a node id"),{id:e.id,type:"cross",direction:e.direction,left:e.left,right:e.right};default:return null}}function nT(e,A,t){if(!aA(e))return k(A,"risk","must be a plain object"),null;It(e,Wd,"risk",A);for(let Q of Wd)(!(Q in e)||e[Q]==null)&&k(A,`risk.${Q}`,"required field is missing");let r={},n=e.maxLeverage;!Ie(n)||n<=0||n>50?k(A,"risk.maxLeverage","must be a number > 0 and <= 50"):r.maxLeverage=n;let s=e.maxNotionalUsd;!Ie(s)||s<=0?k(A,"risk.maxNotionalUsd","must be a number > 0"):r.maxNotionalUsd=s;let i=e.positionSizePct;!Ie(i)||i<=0||i>100?k(A,"risk.positionSizePct","must be a number > 0 and <= 100"):r.positionSizePct=i;let o=e.stopLossPct;!Ie(o)||o<=0||o>100?k(A,"risk.stopLossPct","must be a number > 0 and <= 100"):r.stopLossPct=o;let a=e.takeProfitPct;!Ie(a)||a<=0||a>1e3?k(A,"risk.takeProfitPct","must be a number > 0 and <= 1000"):r.takeProfitPct=a;let g=e.cooldownBars;!Number.isInteger(g)||g<0||g>1e5?k(A,"risk.cooldownBars","must be an integer >= 0 and <= 100000"):r.cooldownBars=g;let l=e.maxDailyLossPct;!Ie(l)||l<=0||l>100?k(A,"risk.maxDailyLossPct","must be a number > 0 and <= 100"):r.maxDailyLossPct=l;let c=e.expiresAt;return!Number.isInteger(c)||c<=0?k(A,"risk.expiresAt","must be an integer epoch milliseconds > 0"):(t.nowMs!==void 0&&(Number.isInteger(t.nowMs)?c<=t.nowMs&&k(A,"risk.expiresAt","must be strictly greater than nowMs"):k(A,"nowMs","must be an integer epoch milliseconds")),r.expiresAt=c),r}function Cl(e,A={}){let t=[];if(!aA(e))return k(t,"","strategy must be a plain object"),{ok:!1,errors:t,strategy:null};It(e,vd,"",t);for(let c of vd)(!(c in e)||e[c]==null)&&k(t,c,"required field is missing");e.version!==Ql&&k(t,"version",`must be ${Ql}`),(typeof e.id!="string"||!Xd.test(e.id))&&k(t,"id","must match /^[a-z0-9][a-z0-9._-]{0,63}$/"),(typeof e.name!="string"||e.name.length===0||e.name.length>Zd)&&k(t,"name",`must be a non-empty string max ${Zd}`);let r=cl(e.venue);r||k(t,"venue",`unknown strategy venue "${String(e.venue)}"`);let n=null;if(!r)aA(e.market)||k(t,"market","must be a plain object");else{let c=r.validateMarket(e.market);if(!c||typeof c.ok!="boolean"||!Array.isArray(c.errors))k(t,"market",`venue ${r.id} returned an invalid market validation result`);else if(c.ok)n=c.market;else for(let Q of c.errors)k(t,Q.path,Q.message)}let s=tT(e.parameters,t),i=null,o=new Map;if(!Array.isArray(e.nodes))k(t,"nodes","must be an array");else if(e.nodes.length>zd)k(t,"nodes",`too many nodes (max ${zd})`);else{i=[];for(let c=0;c<e.nodes.length;c++){let Q=rT(e.nodes[c],c,s||{},t);Q&&(typeof Q.id=="string"&&jd.test(Q.id)&&(o.has(Q.id)?k(t,`nodes.${c}.id`,`duplicate node id "${Q.id}"`):o.set(Q.id,Q)),i.push(Q))}for(let c=0;c<i.length;c++){let Q=i[c],B=`nodes.${c}`;for(let E of Qo(Q))o.has(E)||k(t,B,`unknown node ref "${E}"`);if(Q.type==="indicator"||Q.type==="compare"||Q.type==="cross")for(let E of Qo(Q)){let u=o.get(E);u&&El.has(u.type)&&k(t,B,`node ref "${E}" must be numeric`)}if(Q.type==="logic")for(let E of Qo(Q)){let u=o.get(E);u&&!El.has(u.type)&&k(t,B,`node ref "${E}" must be boolean`)}}AT(o)&&k(t,"nodes","graph contains a cycle")}let a=null;if(!aA(e.rules))k(t,"rules","must be a plain object");else{It(e.rules,Bl,"rules",t);for(let c of Bl)c in e.rules||k(t,`rules.${c}`,"required field is missing");a={};for(let c of Bl){let Q=e.rules[c];if(Q===null){a[c]=null;continue}if(typeof Q!="string"||!Q){k(t,`rules.${c}`,"must be a node id or null"),a[c]=Q;continue}if(!o.has(Q)){k(t,`rules.${c}`,`unknown node ref "${Q}"`),a[c]=Q;continue}let B=o.get(Q);El.has(B.type)||k(t,`rules.${c}`,`rule must reference a boolean node, not ${B.type}`),a[c]=Q}}let g=nT(e.risk,t,A);if(t.length)return{ok:!1,errors:t,strategy:null};let l=Il({version:Ql,id:e.id,name:e.name,venue:r.id,market:n,parameters:s,nodes:i,rules:a,risk:g});return{ok:!0,errors:[],strategy:l}}function Ge(e,A={}){let t=Cl(e,A);if(!t.ok)throw new Xr(t.errors);return t.strategy}function sT(e){let A=Ge(e);return JSON.stringify(hl(A))}function Zr(e){let A=sT(e);return OL("sha256").update(A,"utf8").digest("hex")}function as(e,A){if(!aA(e))throw new Xr([{path:"",message:"strategy must be a plain object"}]);if(!aA(A))throw new Xr([{path:"overrides",message:"must be a plain object"}]);let t=Ge(e),r={};for(let[s,i]of Object.entries(t.parameters))r[s]={value:i.value,min:i.min,max:i.max,step:i.step};let n=[];for(let[s,i]of Object.entries(A)){if(!Object.prototype.hasOwnProperty.call(r,s)){k(n,s,`unknown parameter "${s}"`);continue}let o=r[s];if(!Ie(i)){k(n,s,"override must be a finite number");continue}if(!$d(i,o.min,o.max,o.step)){k(n,s,"override must lie on the declared min/max/step grid");continue}r[s]={...o,value:i}}if(n.length)throw new Xr(n);return Ge({version:t.version,id:t.id,name:t.name,venue:t.venue,market:{coin:t.market.coin,interval:t.market.interval},parameters:r,nodes:t.nodes.map(s=>{let i={...s};return Array.isArray(s.inputs)&&(i.inputs=[...s.inputs]),i}),rules:{...t.rules},risk:{...t.risk}})}var Ql,Xd,jd,zL,ZL,_L,KL,XL,jL,$L,El,vd,qd,Bl,Wd,eT,Pd,Od,zd,Zd,Xr,Pt=De(()=>{ll();Ql=1,Xd=/^[a-z0-9][a-z0-9._-]{0,63}$/,jd=/^[A-Za-z0-9][A-Za-z0-9._-]{0,63}$/,zL=new Set(["open","high","low","close","volume","fundingRate","openInterest"]),ZL=new Set(["sma","ema","rsi","macd","bollinger","atr"]),_L=new Set(["gt","gte","lt","lte","eq"]),KL=new Set(["and","or","not"]),XL=new Set(["above","below"]),jL=new Set(["line","signal","histogram"]),$L=new Set(["upper","middle","lower"]),El=new Set(["compare","logic","cross"]),vd=new Set(["version","id","name","venue","market","parameters","nodes","rules","risk"]),qd=new Set(["value","min","max","step"]),Bl=new Set(["entryLong","entryShort","exitLong","exitShort"]),Wd=new Set(["maxLeverage","maxNotionalUsd","positionSizePct","stopLossPct","takeProfitPct","cooldownBars","maxDailyLossPct","expiresAt"]),eT=new Set(["id","type"]),Pd={input:new Set(["id","type","field"]),constant:new Set(["id","type","value"]),indicator:new Set(["id","type","indicator","input","period","fastPeriod","slowPeriod","signalPeriod","stdDev","output"]),compare:new Set(["id","type","op","left","right"]),logic:new Set(["id","type","op","inputs"]),cross:new Set(["id","type","direction","left","right"])},Od=16,zd=128,Zd=100,Xr=class extends Error{constructor(A){let t=A.map(r=>`${r.path}: ${r.message}`);super(`invalid strategy (${A.length} error${A.length===1?"":"s"}): ${t.join("; ")}`),this.name="StrategyValidationError",this.errors=A}}});function cs(e){if(!Array.isArray(e))throw new TypeError("values must be an array");for(let A=0;A<e.length;A++){let t=e[A];if(typeof t!="number"||!Number.isFinite(t))throw new TypeError(`values[${A}] must be a finite number`)}}function ht(e){if(!Number.isInteger(e)||e<=0)throw new TypeError("period must be a positive integer")}function iT(e){if(!Array.isArray(e))throw new TypeError("bars must be an array");for(let A=0;A<e.length;A++){let t=e[A];if(t==null||typeof t!="object")throw new TypeError(`bars[${A}] must be an object`);for(let r of["o","h","l","c"]){let n=t[r];if(typeof n!="number"||!Number.isFinite(n))throw new TypeError(`bars[${A}].${r} must be a finite number`)}if(t.h<t.l)throw new TypeError(`bars[${A}] high must be >= low`)}}function Aw(e,A){cs(e),ht(A);let t=new Array(e.length).fill(null);if(e.length<A)return t;let r=0;for(let n=0;n<e.length;n++)r+=e[n],n>=A&&(r-=e[n-A]),n>=A-1&&(t[n]=r/A);return t}function Eo(e,A){cs(e),ht(A);let t=new Array(e.length).fill(null);if(e.length<A)return t;let r=0;for(let i=0;i<A;i++)r+=e[i];let n=r/A;t[A-1]=n;let s=2/(A+1);for(let i=A;i<e.length;i++)n=s*e[i]+(1-s)*n,t[i]=n;return t}function tw(e,A){cs(e),ht(A);let t=new Array(e.length).fill(null);if(e.length<=A)return t;let r=0,n=0;for(let o=1;o<=A;o++){let a=e[o]-e[o-1];a>=0?r+=a:n-=a}let s=r/A,i=n/A;t[A]=ew(s,i);for(let o=A+1;o<e.length;o++){let a=e[o]-e[o-1],g=a>0?a:0,l=a<0?-a:0;s=(s*(A-1)+g)/A,i=(i*(A-1)+l)/A,t[o]=ew(s,i)}return t}function ew(e,A){return e===0&&A===0?50:A===0?100:e===0?0:100-100/(1+e/A)}function rw(e,A={}){cs(e);let t=A.fastPeriod,r=A.slowPeriod,n=A.signalPeriod;if(ht(t),ht(r),ht(n),t>=r)throw new TypeError("fastPeriod must be < slowPeriod");let s=Eo(e,t),i=Eo(e,r),o=new Array(e.length).fill(null);for(let c=0;c<e.length;c++)s[c]!=null&&i[c]!=null&&(o[c]=s[c]-i[c]);let a=new Array(e.length).fill(null),g=new Array(e.length).fill(null),l=[];for(let c=0;c<o.length;c++)o[c]!=null&&l.push(c);if(l.length>=n){let c=0;for(let u=0;u<n;u++)c+=o[l[u]];let Q=c/n,B=l[n-1];a[B]=Q,g[B]=o[B]-Q;let E=2/(n+1);for(let u=n;u<l.length;u++){let h=l[u];Q=E*o[h]+(1-E)*Q,a[h]=Q,g[h]=o[h]-Q}}return{line:o,signal:a,histogram:g}}function nw(e,A={}){cs(e);let t=A.period,r=A.stdDev;if(ht(t),typeof r!="number"||!Number.isFinite(r)||r<=0)throw new TypeError("stdDev must be a finite number > 0");let n=new Array(e.length).fill(null),s=new Array(e.length).fill(null),i=new Array(e.length).fill(null);if(e.length<t)return{upper:s,middle:n,lower:i};let o=0,a=0;for(let g=0;g<e.length;g++){let l=e[g];if(o+=l,a+=l*l,g>=t){let c=e[g-t];o-=c,a-=c*c}if(g>=t-1){let c=o/t,Q=a/t-c*c;Q<0&&Q>-1e-12&&(Q=0);let B=Math.sqrt(Q);n[g]=c,s[g]=c+r*B,i[g]=c-r*B}}return{upper:s,middle:n,lower:i}}function sw(e,A){iT(e),ht(A);let t=new Array(e.length).fill(null);if(e.length<A)return t;let r=new Array(e.length);for(let i=0;i<e.length;i++){let o=e[i];if(i===0)r[i]=o.h-o.l;else{let a=e[i-1].c;r[i]=Math.max(o.h-o.l,Math.abs(o.h-a),Math.abs(o.l-a))}}let n=0;for(let i=0;i<A;i++)n+=r[i];let s=n/A;t[A-1]=s;for(let i=A;i<e.length;i++)s=(s*(A-1)+r[i])/A,t[i]=s;return t}var iw=De(()=>{});import{createHash as oT}from"node:crypto";var fl,aT,cT,gT,ow,aw=De(()=>{fl=2,aT="93f9c998260e73756c13871dc1a84dd6cdb26ec6113bd1941f023519939db440",cT="68f5b412a9975f04024cf9b9b6209b4bccedd52f176e95f34f786b3f53479c6a",gT="f197a38ff1c0f4ebe13326db8cbb8167ea3dd5d62e6033fe97c2fee8d23d96b5",ow=oT("sha256").update(JSON.stringify({version:fl,compilerSourceHash:aT,indicatorsSourceHash:cT,schemaSourceHash:gT})).digest("hex")});function dA(e){return typeof e=="number"&&Number.isFinite(e)}function ET(e){let A=new Map(e.map(o=>[o.id,o])),t=o=>{switch(o.type){case"indicator":return o.input?[o.input]:[];case"compare":case"cross":return[o.left,o.right];case"logic":return[...o.inputs];default:return[]}},r=new Map,n=new Map;for(let o of e)r.set(o.id,0),n.set(o.id,[]);for(let o of e)for(let a of t(o))A.has(a)&&(n.get(a).push(o.id),r.set(o.id,r.get(o.id)+1));let s=[];for(let[o,a]of r)a===0&&s.push(o);let i=[];for(;s.length;){let o=s.shift();i.push(o);for(let a of n.get(o))r.set(a,r.get(a)-1),r.get(a)===0&&s.push(a)}if(i.length!==e.length)throw new Error("strategy graph is cyclic");return i}function jr(e,A){return e!=null&&typeof e=="object"&&"param"in e?A[e.param].value:e}function BT(e,A,t){if(!Array.isArray(e)||e.length===0)throw new TypeError("bars must be a non-empty array");if(!Number.isInteger(A)||A<0||A>=e.length)throw new RangeError("index out of range");let r=null;for(let n=0;n<=A;n++){let s=e[n];if(s==null||typeof s!="object"||Array.isArray(s))throw new TypeError(`bars[${n}] must be an object`);let{t:i,o,h:a,l:g,c:l,v:c}=s;if(!dA(i)&&(typeof i=="number"&&Number.isFinite(i)),!Number.isFinite(i))throw new TypeError(`bars[${n}].t must be finite`);for(let[Q,B]of[["o",o],["h",a],["l",g],["c",l],["v",c]])if(!dA(B))throw new TypeError(`bars[${n}].${Q} must be a finite number`);for(let[Q,B]of[["o",o],["h",a],["l",g],["c",l]])if(!(B>0))throw new TypeError(`bars[${n}].${Q} price must be positive`);if(c<0)throw new TypeError(`bars[${n}].v volume must be non-negative`);if(a<Math.max(o,l,g))throw new TypeError(`bars[${n}] high must be >= max(open, close, low)`);if(g>Math.min(o,l,a))throw new TypeError(`bars[${n}] low must be <= min(open, close, high)`);if(r!=null){if(!(i>r))throw new TypeError("bars t must be strictly increasing");if(i-r!==QT[t])throw new TypeError(`bars t must match ${t} cadence`)}if(r=i,"fundingRate"in s&&s.fundingRate!=null&&!dA(s.fundingRate))throw new TypeError(`bars[${n}].fundingRate must be finite when present`);if("openInterest"in s&&s.openInterest!=null){if(!dA(s.openInterest))throw new TypeError(`bars[${n}].openInterest must be finite when present`);if(s.openInterest<0)throw new TypeError(`bars[${n}].openInterest must be non-negative`)}}}function Zt(e,A,t,r,n,s){if(s.has(e))return s.get(e);let i=A.get(e),o;switch(i.type){case"input":{let a=lT[i.field];o=new Array(n+1);for(let g=0;g<=n;g++){let l=r[g][a];o[g]=l===void 0?null:l}break}case"constant":{let a=jr(i.value,t);o=new Array(n+1).fill(a);break}case"indicator":{let a=i.period!=null?jr(i.period,t):void 0;if(i.indicator==="atr"){let c=[];for(let Q=0;Q<=n;Q++){let B=r[Q];c.push({o:B.o,h:B.h,l:B.l,c:B.c})}o=sw(c,a);break}let l=Zt(i.input,A,t,r,n,s).map((c,Q)=>{if(c==null||!dA(c))throw new TypeError(`indicator input ${i.input} has non-finite value at ${Q}`);return c});if(i.indicator==="sma")o=Aw(l,a);else if(i.indicator==="ema")o=Eo(l,a);else if(i.indicator==="rsi")o=tw(l,a);else if(i.indicator==="macd")o=rw(l,{fastPeriod:jr(i.fastPeriod,t),slowPeriod:jr(i.slowPeriod,t),signalPeriod:jr(i.signalPeriod,t)})[i.output];else if(i.indicator==="bollinger")o=nw(l,{period:a,stdDev:jr(i.stdDev,t)})[i.output];else throw new Error(`unsupported indicator ${i.indicator}`);break}case"compare":{let a=Zt(i.left,A,t,r,n,s),g=Zt(i.right,A,t,r,n,s);o=new Array(n+1);for(let l=0;l<=n;l++){let c=a[l],Q=g[l];if(c==null||Q==null||!dA(c)||!dA(Q)){o[l]=!1;continue}switch(i.op){case"gt":o[l]=c>Q;break;case"gte":o[l]=c>=Q;break;case"lt":o[l]=c<Q;break;case"lte":o[l]=c<=Q;break;case"eq":o[l]=c===Q;break;default:o[l]=!1}}break}case"logic":{let a=i.inputs.map(g=>Zt(g,A,t,r,n,s));o=new Array(n+1);for(let g=0;g<=n;g++)if(i.op==="not"){let l=a[0][g];o[g]=l===!0?!1:l===!1}else if(i.op==="and"){let l=!0;for(let c of a)if(c[g]!==!0){l=!1;break}o[g]=l}else if(i.op==="or"){let l=!1;for(let c of a)if(c[g]===!0){l=!0;break}o[g]=l}else o[g]=!1;break}case"cross":{let a=Zt(i.left,A,t,r,n,s),g=Zt(i.right,A,t,r,n,s);o=new Array(n+1),o[0]=!1;for(let l=1;l<=n;l++){let c=a[l-1],Q=g[l-1],B=a[l],E=g[l];if(c==null||Q==null||B==null||E==null||!dA(c)||!dA(Q)||!dA(B)||!dA(E)){o[l]=!1;continue}i.direction==="above"?o[l]=c<=Q&&B>E:o[l]=c>=Q&&B<E}break}default:throw new Error(`unknown node type ${i.type}`)}return s.set(e,o),o}function Je(e,A={}){let t=Ge(e);A&&Object.keys(A).length&&(t=as(t,A));let r=new Map(t.nodes.map(B=>[B.id,B])),n=Object.freeze(ET(t.nodes)),s=t.parameters,i=new Set(t.nodes.filter(B=>B.type==="input").map(B=>B.field));if(t.nodes.some(B=>B.type==="indicator"&&B.indicator==="atr"))for(let B of["open","high","low","close"])i.add(B);let o=Object.freeze([...i].sort()),a=Zr(t);function g(B,E){let u={};for(let I of n){let C=B.get(I);u[I]=C[E]}let h=I=>I!=null&&u[I]===!0;return{values:u,signals:{entryLong:h(t.rules.entryLong),entryShort:h(t.rules.entryShort),exitLong:h(t.rules.exitLong),exitShort:h(t.rules.exitShort)}}}function l(B,E){BT(B,E,t.market.interval);let u=new Map;for(let h of n)Zt(h,r,s,B,E,u);return u}function c(B,E){return g(l(B,E),E)}function Q(B){if(!Array.isArray(B)||B.length===0)throw new TypeError("bars must be a non-empty array");let E=B.length-1,u=l(B,E);return Object.freeze(B.map((h,I)=>Object.freeze(g(u,I))))}return Object.freeze({strategy:t,strategyHash:a,compilerVersion:is,compilerHash:Ot,requiredSeries:o,nodeOrder:n,evaluate:c,evaluateAll:Q})}var is,Ot,lT,QT,zt=De(()=>{Pt();iw();aw();is=fl,Ot=ow,lT=Object.freeze({open:"o",high:"h",low:"l",close:"c",volume:"v",fundingRate:"fundingRate",openInterest:"openInterest"}),QT=Object.freeze({"1m":6e4,"3m":18e4,"5m":3e5,"15m":9e5,"30m":18e5,"1h":36e5,"2h":72e5,"4h":144e5,"8h":288e5,"12h":432e5,"1d":864e5})});import{createHash as uT}from"node:crypto";function hT(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}function LA(e){return typeof e=="number"&&Number.isFinite(e)}function dl(e){if(e==null||typeof e!="object"||Object.isFrozen(e))return e;if(Array.isArray(e)){for(let A of e)dl(A);return Object.freeze(e)}for(let A of Object.keys(e))dl(e[A]);return Object.freeze(e)}function Bo(e){if(Array.isArray(e))return e.map(Bo);if(e!=null&&typeof e=="object"){let A={};for(let t of Object.keys(e).sort())A[t]=Bo(e[t]);return A}return e}function wl(e,A="result"){if(typeof e=="number"){if(!Number.isFinite(e))throw new Error(`non-finite backtest result at ${A}`);return}if(!(e==null||typeof e!="object")){if(Array.isArray(e)){e.forEach((t,r)=>wl(t,`${A}[${r}]`));return}for(let[t,r]of Object.entries(e))wl(r,`${A}.${t}`)}}function gw(e){if(!Array.isArray(e)||e.length===0)throw new TypeError("bars must be a non-empty array");let A=null;for(let t=0;t<e.length;t++){let r=e[t];if(r==null||typeof r!="object"||Array.isArray(r))throw new TypeError(`bars[${t}] must be an object`);let{t:n,o:s,h:i,l:o,c:a,v:g}=r;if(!LA(n))throw new TypeError(`bars[${t}].t must be finite`);for(let[l,c]of[["o",s],["h",i],["l",o],["c",a],["v",g]])if(!LA(c))throw new TypeError(`bars[${t}].${l} must be a finite number`);for(let[l,c]of[["o",s],["h",i],["l",o],["c",a]])if(!(c>0))throw new TypeError(`bars[${t}].${l} price must be positive`);if(g<0)throw new TypeError(`bars[${t}].v volume must be non-negative`);if(i<Math.max(s,a,o))throw new TypeError(`bars[${t}] high must be >= max(open, close, low)`);if(o>Math.min(s,a,i))throw new TypeError(`bars[${t}] low must be <= min(open, close, high)`);if(A!=null&&!(n>A))throw new TypeError("bars t must be strictly increasing");if(A=n,"fundingRate"in r&&r.fundingRate!=null&&!LA(r.fundingRate))throw new TypeError(`bars[${t}].fundingRate must be finite when present`);if("fundingPaymentRate"in r&&r.fundingPaymentRate!=null&&!LA(r.fundingPaymentRate))throw new TypeError(`bars[${t}].fundingPaymentRate must be finite when present`);if("openInterest"in r&&r.openInterest!=null&&!LA(r.openInterest))throw new TypeError(`bars[${t}].openInterest must be finite when present`)}}function ns(e){if(!Array.isArray(e))throw new TypeError("bars must be an array");return e.length>0&&gw(e),uT("sha256").update(JSON.stringify(Bo(e)),"utf8").digest("hex")}function CT(e){if(e==null&&(e={}),!hT(e))throw new TypeError("options must be a plain object");let A={...IT},t=new Set(["initialEquityUsd","takerFeeBps","builderFeeBps","slippageBps","latencyBars","maxVolumeParticipationPct","nowMs"]);for(let r of Object.keys(e))if(!t.has(r))throw new TypeError(`unknown option "${r}"`);if("initialEquityUsd"in e){if(!LA(e.initialEquityUsd)||e.initialEquityUsd<=0)throw new TypeError("initialEquityUsd must be a positive finite number");A.initialEquityUsd=e.initialEquityUsd}for(let r of["takerFeeBps","builderFeeBps","slippageBps"])if(r in e){let n=e[r];if(!LA(n)||n<0)throw new TypeError(`${r} must be a finite number >= 0`);if(r==="slippageBps"?n>=1e4:n>1e4)throw new TypeError(`${r} exceeds its safe basis-point bound`);A[r]=n}if("latencyBars"in e){let r=e.latencyBars;if(!Number.isInteger(r)||r<1)throw new TypeError("latencyBars must be an integer >= 1");A.latencyBars=r}if("maxVolumeParticipationPct"in e){let r=e.maxVolumeParticipationPct;if(!LA(r)||r<=0||r>100)throw new TypeError("maxVolumeParticipationPct must be in (0,100]");A.maxVolumeParticipationPct=r}if("nowMs"in e){if(!Number.isInteger(e.nowMs))throw new TypeError("nowMs must be an integer epoch milliseconds");A.nowMs=e.nowMs}return A}function uo(e){return e/1e4}function fT(e,A,t){let r=uo(t);return A==="long"?e*(1+r):e*(1-r)}function dT(e,A,t){let r=uo(t);return A==="long"?e*(1-r):e*(1+r)}function cw(e,A,t){let r=Math.abs(e)*uo(A),n=Math.abs(e)*uo(t);return{taker:r,builder:n,total:r+n}}function wT(e,A){let t=e*(A.positionSizePct/100)*A.maxLeverage;return Math.min(t,A.maxNotionalUsd)}function yT(e,A,t){let r=t/100;return A==="long"?e*(1-r):e*(1+r)}function pT(e,A,t){let r=t/100;return A==="long"?e*(1+r):e*(1-r)}function mT(e,A,t,r){if(!(t>0))return A==="long"?0:Number.POSITIVE_INFINITY;let n=Math.min(.99,1/(2*t)+r/1e4);return A==="long"?e*(1-1/t)/(1-n):e*(1+1/t)/(1+n)}function DT(e,A,t){return A==="long"?e.l<=t:e.h>=t}function kT(e,A,t){return A==="long"?e.h>=t:e.l<=t}function bT(e,A,t){return A==="long"?e.l<=t:e.h>=t}function gs(e,A){for(let t of e.requiredSeries)if(["fundingRate","openInterest"].includes(t)&&!A.every(r=>LA(r?.[t])))throw new Error(`strategy required series is absent: ${t}`)}function FT(e){if(e.length<3)return 0;let A=[];for(let i=1;i<e.length;i++){let o=e[i-1].equity,a=e[i].equity;o>0&&A.push((a-o)/o)}if(A.length<2)return 0;let t=0;for(let i of A)t+=i;let r=t/A.length,n=0;for(let i of A)n+=(i-r)**2;let s=Math.sqrt(n/(A.length-1));return s>0?r/s:0}function RT(e){let A=-1/0,t=0;for(let r of e){let n=r.equity;if(n>A&&(A=n),A>0){let s=(A-n)/A*100;s>t&&(t=s)}}return t}function ut(e,A,t={}){let r=CT(t);gw(A);let n=ns(A);r.nowMs!==void 0&&Ge(e,{nowMs:r.nowMs});let s=Je(e);if(gs(s,A),r.nowMs!==void 0&&s.strategy.risk.expiresAt<=r.nowMs)throw new Error("strategy is expired: risk.expiresAt must be strictly greater than nowMs");let i=s.strategy.risk,o=s.evaluateAll(A),a=r.latencyBars,g=r.slippageBps,l=r.takerFeeBps,c=r.builderFeeBps,Q=r.initialEquityUsd,B=0,E=0,u=0,h=0,I=0,C=[],D=[],f=[],R=[],S=[],d=null,se=0,ke=null,Le=Q,me=!1,w=0,H=0,q=[],ee=new Array(A.length).fill(0);function j(F){q.push(F)}function _(F){let O=A[F].v*(r.maxVolumeParticipationPct/100);return Math.max(0,O-ee[F])}function te(F){if(!d)return Q;let O=d.side==="long"?(F-d.entryPrice)*d.qty:(d.entryPrice-F)*d.qty;return Q+O}function Re(F,O,x){let ge=x.o,K=wT(Q,i);if(!(K>0)||!(ge>0))return;let le=fT(ge,O,g),ie=K/le,de=_(F),An=le*de;if(ie>de){f.push({kind:"entry",barIndex:F,time:x.t,side:O,requestedNotionalUsd:K,maxFillNotionalUsd:An,reason:"volume_participation"});return}ee[F]+=ie;let yA=Math.abs(le-ge)*ie,xA=cw(K,l,c);Q-=xA.total,B+=xA.taker,E+=xA.builder,h+=yA,I+=K,d={lifecycleEpoch:++H,side:O,entryBarIndex:F,entryReferencePrice:ge,entryPrice:le,qty:ie,notionalUsd:K,stop:yT(le,O,i.stopLossPct),take:pT(le,O,i.takeProfitPct),liq:mT(le,O,i.maxLeverage,l+c),entryFees:xA.taker,entryBuilderFees:xA.builder,entrySlippageUsd:yA,fundingAccrued:0}}function fe(F,O,x,ge){if(!d)return!1;let K=d.side,le=O,ie=le;x!=="liquidation"&&ge&&(ie=dT(le,K,g));let de=d.qty,An=de*ie;if(x!=="liquidation"){let Jl=_(F),Jw=ie*Jl;if(de>Jl)return f.push({kind:"exit",barIndex:F,time:A[F].t,side:K,requestedNotionalUsd:An,maxFillNotionalUsd:Jw,reason:"volume_participation",triggerReason:x}),!1;ee[F]+=de}let yA=cw(An,l,c),xA=x==="liquidation"?0:Math.abs(ie-le)*de,tn,mo;K==="long"?(tn=(le-d.entryReferencePrice)*de,mo=(ie-d.entryPrice)*de):(tn=(d.entryReferencePrice-le)*de,mo=(d.entryPrice-ie)*de),Q+=mo,Q-=yA.total,B+=yA.taker,E+=yA.builder,h+=xA,I+=An;let Gw={side:K,entryBarIndex:d.entryBarIndex,entryTime:A[d.entryBarIndex].t,entryPrice:d.entryPrice,exitBarIndex:F,exitTime:A[F].t,exitPrice:ie,exitReason:x,qty:de,notionalUsd:d.notionalUsd,grossPnlUsd:tn,feesUsd:d.entryFees+yA.taker,builderFeesUsd:d.entryBuilderFees+yA.builder,fundingUsd:d.fundingAccrued,slippageUsd:d.entrySlippageUsd+xA,netPnlUsd:tn-(d.entryFees+yA.taker+d.entryBuilderFees+yA.builder)-d.fundingAccrued-(d.entrySlippageUsd+xA)};return C.push(Gw),x==="liquidation"&&D.push({barIndex:F,time:A[F].t,side:K,price:ie,tradeIndex:C.length-1}),d=null,H+=1,w=F+1+(i.cooldownBars||0),!0}function wA(F,O,x,ge){let K=F+1;if(K>=A.length)return;q.some(ie=>ie.kind==="exit"&&ie.side===O&&ie.fillBar===K&&ie.epoch===ge)||j({kind:"exit",side:O,signalBar:F,fillBar:K,reason:x,epoch:ge})}function Es(F){let O=q.filter(x=>x.fillBar===F);for(let x=q.length-1;x>=0;x--)q[x].fillBar===F&&q.splice(x,1);O.sort((x,ge)=>{let K=le=>le.kind==="exit"?0:1;return K(x)-K(ge)});for(let x of O)if(x.kind==="exit"){if(!d||d.side!==x.side||d.lifecycleEpoch!==x.epoch)continue;let ge=x.reason||"rule";fe(F,A[F].o,ge,!0)||wA(F,x.side,ge,x.epoch)}else if(x.kind==="entry"){if(d||x.epoch!==H||F<w)continue;Re(F,x.side,A[F])}}function Bs(F){if(!d)return;let O=A[F],x=O.fundingPaymentRate;if(x==null||!LA(x)||x===0)return;let ge=Math.abs(d.qty*O.c),K=x*ge;d.side==="long"?(Q-=K,d.fundingAccrued+=K,u+=K):(Q+=K,d.fundingAccrued-=K,u-=K)}function us(F){if(!d)return;let O=A[F].o;(d.side==="long"?O<=d.liq:O>=d.liq)&&fe(F,O,"liquidation",!1)}function Ll(F){if(!d)return;let O=A[F],x=d.side,ge=bT(O,x,d.liq),K=DT(O,x,d.stop),le=kT(O,x,d.take),ie=de=>x==="long"?Math.min(de,O.o):Math.max(de,O.o);if(ge){fe(F,ie(d.liq),"liquidation",!1);return}if(K&&le){fe(F,ie(d.stop),"stop_loss",!0)||wA(F,x,"stop_loss",d.lifecycleEpoch);return}if(K){fe(F,ie(d.stop),"stop_loss",!0)||wA(F,x,"stop_loss",d.lifecycleEpoch);return}le&&(fe(F,d.take,"take_profit",!0)||wA(F,x,"take_profit",d.lifecycleEpoch))}for(let F=0;F<A.length;F++){let O=Math.floor(A[F].t/864e5);O!==ke&&(ke=O,Le=te(A[F].o),me=!1),us(F),Es(F),Ll(F),Bs(F),!me&&te(A[F].c)<=Le*(1-i.maxDailyLossPct/100)&&(me=!0,R.push({type:"daily_loss_limit",barIndex:F,time:A[F].t,message:"daily loss limit reached; new entries blocked for UTC day"}));let x=o[F].signals,ge=F+a;if(d)(d.side==="long"&&x.exitLong===!0||d.side==="short"&&x.exitShort===!0)&&ge<A.length&&(q.some(de=>de.kind==="exit"&&de.side===d.side&&de.fillBar===ge&&de.epoch===d.lifecycleEpoch)||j({kind:"exit",side:d.side,signalBar:F,fillBar:ge,reason:"rule",epoch:d.lifecycleEpoch}));else{let le=x.entryLong===!0,ie=x.entryShort===!0;le&&ie?R.push({type:"conflicting_entry_signals",barIndex:F,time:A[F].t,message:"conflicting entry signals; no position opened"}):!me&&(le||ie)&&ge<A.length&&F>=w&&j({kind:"entry",side:le?"long":"short",signalBar:F,fillBar:ge,epoch:H})}let K=Q;d&&(se+=1,K=te(A[F].c)),S.push({barIndex:F,time:A[F].t,equity:K,positionSide:d?d.side:null})}let Tl=null;if(d){let F=A.length-1;if(fe(F,A[F].c,"end_of_data",!0))S[F]={barIndex:F,time:A[F].t,equity:Q,positionSide:null};else{let x=te(A[F].c);Tl={side:d.side,entryBarIndex:d.entryBarIndex,entryTime:A[d.entryBarIndex].t,entryPrice:d.entryPrice,qty:d.qty,notionalUsd:d.notionalUsd,markPrice:A[F].c,markedEquityUsd:x},R.push({type:"open_position_at_end",barIndex:F,time:A[F].t,message:"end-of-data exit missed; position remains open and marked"})}}let xl=(d?te(A[A.length-1].c):Q)-r.initialEquityUsd,Lw=xl/r.initialEquityUsd*100,Yl=0,fo=0,wo=0;for(let F of C)F.netPnlUsd>0?(Yl+=1,fo+=F.netPnlUsd):F.netPnlUsd<0&&(wo+=-F.netPnlUsd);let yo=C.length,Tw=yo===0?0:Yl/yo,po=0;wo>0?po=fo/wo:fo>0&&(po=1e12);let xw={netPnlUsd:xl,netPnlPct:Lw,maxDrawdownPct:RT(S),winRate:Tw,profitFactor:po,tradeCount:yo,sharpe:FT(S),turnoverUsd:I,exposurePct:se/A.length*100},Yw={initialEquityUsd:r.initialEquityUsd,takerFeeBps:r.takerFeeBps,builderFeeBps:r.builderFeeBps,slippageBps:r.slippageBps,latencyBars:r.latencyBars,maxVolumeParticipationPct:r.maxVolumeParticipationPct},Gl={barsHash:n,strategyHash:s.strategyHash,compilerHash:Ot,compilerVersion:is,config:Yw,trades:C,equityCurve:S,metrics:xw,costs:{feesUsd:B,builderFeesUsd:E,fundingUsd:u,slippageUsd:h},liquidations:D,missedFills:f,openPositionAtEnd:Tl,flags:R};return wl(Gl),dl(Bo(Gl))}var IT,lo=De(()=>{zt();Pt();IT=Object.freeze({initialEquityUsd:1e4,takerFeeBps:3.5,builderFeeBps:2,slippageBps:2,latencyBars:1,maxVolumeParticipationPct:100})});import{createHash as ST}from"node:crypto";function GT(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}function yl(e){if(e==null||typeof e!="object"||Object.isFrozen(e))return e;if(Array.isArray(e)){for(let A of e)yl(A);return Object.freeze(e)}for(let A of Object.keys(e))yl(e[A]);return Object.freeze(e)}function JT(e){return String(e).trim().replace(/\s+/g," ")}function HT(e){let A=e.match(/\b(long|short)\b/i);return A?A[1].toLowerCase():null}function VT(e){for(let t of MT)if(new RegExp(`\\b${t}\\b`,"i").test(e))return t;let A=e.match(/\b([A-Z][A-Z0-9]{1,11})\b/);return A?A[1]:null}function vT(e){let A=e.match(/\bon\s+(1m|3m|5m|15m|30m|1h|2h|4h|8h|12h|1d)\b/i);if(!A)return"15m";let t=A[1].toLowerCase();return NT.has(t)?t:null}function qT(e){let A={...LT},t=e.match(/stop\s*loss\s*(\d+(?:\.\d+)?)\s*%?/i);t&&(A.stopLossPct=Number(t[1]));let r=e.match(/take\s*profit\s*(\d+(?:\.\d+)?)\s*%?/i);r&&(A.takeProfitPct=Number(r[1]));let n=e.match(/leverage\s*(\d+(?:\.\d+)?)/i);n&&(A.maxLeverage=Number(n[1]));let s=e.match(/position\s*size\s*(\d+(?:\.\d+)?)\s*%?/i);s&&(A.positionSizePct=Number(s[1]));let i=e.match(/max\s*notional\s*(?:usd\s*)?\$?\s*(\d+(?:\.\d+)?)/i);return i&&(A.maxNotionalUsd=Number(i[1])),A}function WT(e){return[/\bon\s+(?:1m|3m|5m|15m|30m|1h|2h|4h|8h|12h|1d)\b/gi,/\bstop\s*loss\s*\d+(?:\.\d+)?\s*%?/gi,/\btake\s*profit\s*\d+(?:\.\d+)?\s*%?/gi,/\bleverage\s*\d+(?:\.\d+)?/gi,/\bposition\s*size\s*\d+(?:\.\d+)?\s*%?/gi,/\bmax\s*notional\s*(?:usd\s*)?\$?\s*\d+(?:\.\d+)?/gi].some(t=>(e.match(t)??[]).length>1)}function PT(e){let A=ST("sha256").update(e,"utf8").digest("hex").slice(0,10),t=e.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,40),n=`${t.length?t:"draft"}-${A}`.replace(/[^a-z0-9._-]/g,"").slice(0,64);return/^[a-z0-9]/.test(n)?n:`d${n}`.slice(0,64)}function OT(e){let A=e.match(/\bema\s*(\d+)\s*cross(?:es)?\s*(above|below)\s*ema\s*(\d+)\b/i);if(!A)return null;let t=Number(A[1]),r=A[2].toLowerCase(),n=Number(A[3]);if(!(t>0)||!(n>0)||t===n)return null;let s=/\b(exit\s+on\s+reverse|reverse\s+exit)\b/i.test(e);return{kind:"ema_cross",fast:t,slow:n,direction:r,reverse:s}}function zT(e){let A=e.match(/\brsi\s*(\d+)\s*(above|below)\s*(-?\d+(?:\.\d+)?)/i);if(!A)return null;let t=Number(A[3]);return!Number.isFinite(t)||t<=0||t>=100?null:{kind:"rsi",period:Number(A[1]),op:A[2].toLowerCase(),threshold:t}}function ZT(e){let A=e.match(/\bfunding\s*rate\s*(above|below)\s*(-?\d+(?:\.\d+)?)(%?)(?=\s|,|$)/i);if(!A)return null;let t=Number(A[2]);return A[3]==="%"&&(t=t/100),{kind:"funding",op:A[1].toLowerCase(),threshold:t}}function _T(e,A){let t=e.replace(/^(long|short)\s+[A-Z][A-Z0-9]{1,11}\s+when\s+/i,"");if(t===e)return!1;A.kind==="ema_cross"?t=t.replace(/^ema\s*\d+\s*cross(?:es)?\s*(?:above|below)\s*ema\s*\d+\b/i,""):A.kind==="rsi"?t=t.replace(/^rsi\s*\d+\s*(?:above|below)\s*\d+(?:\.\d+)?\b/i,""):t=t.replace(/^funding\s*rate\s*(?:above|below)\s*-?\d+(?:\.\d+)?%?(?=\s|,|$)/i,"");let r=[/(?:,\s*)?\bon\s+(?:1m|3m|5m|15m|30m|1h|2h|4h|8h|12h|1d)\b/gi,/(?:,\s*)?\bstop\s*loss\s*\d+(?:\.\d+)?\s*%?/gi,/(?:,\s*)?\btake\s*profit\s*\d+(?:\.\d+)?\s*%?/gi,/(?:,\s*)?\bleverage\s*\d+(?:\.\d+)?/gi,/(?:,\s*)?\bposition\s*size\s*\d+(?:\.\d+)?\s*%?/gi,/(?:,\s*)?\bmax\s*notional\s*(?:usd\s*)?\$?\s*\d+(?:\.\d+)?/gi];A.kind==="ema_cross"&&r.push(/(?:,\s*)?\b(?:exit\s+on\s+reverse|reverse\s+exit)\b/gi);for(let n of r)t=t.replace(n,"");return t.replace(/[\s,;]+/g,"")===""}function lw(e){let A=Math.max(2,Math.floor(e/2));return{value:e,min:Math.max(2,e-A),max:Math.min(500,e+A),step:1}}function KT({side:e,coin:A,interval:t,risk:r,expiresAt:n,id:s,name:i,spec:o}){let a=[{id:"c",type:"input",field:"close"},{id:"emaLeft",type:"indicator",indicator:"ema",input:"c",period:{param:"ema_left_period"}},{id:"emaRight",type:"indicator",indicator:"ema",input:"c",period:{param:"ema_right_period"}},{id:"cross",type:"cross",direction:o.direction,left:"emaLeft",right:"emaRight"}],g={entryLong:null,entryShort:null,exitLong:null,exitShort:null};if(e==="long"?g.entryLong="cross":g.entryShort="cross",o.reverse){let l=o.direction==="above"?"below":"above";a.push({id:"crossRev",type:"cross",direction:l,left:"emaLeft",right:"emaRight"}),e==="long"?g.exitLong="crossRev":g.exitShort="crossRev"}return{version:1,id:s,name:i,venue:"hyperliquid",market:{coin:A,interval:t},parameters:{ema_left_period:lw(o.fast),ema_right_period:lw(o.slow)},nodes:a,rules:g,risk:{...r,expiresAt:n}}}function XT({side:e,coin:A,interval:t,risk:r,expiresAt:n,id:s,name:i,spec:o}){let a=[{id:"c",type:"input",field:"close"},{id:"rsi",type:"indicator",indicator:"rsi",input:"c",period:o.period},{id:"thr",type:"constant",value:o.threshold},{id:"sig",type:"compare",op:o.op==="above"?"gt":"lt",left:"rsi",right:"thr"}];return{version:1,id:s,name:i,venue:"hyperliquid",market:{coin:A,interval:t},parameters:{},nodes:a,rules:{entryLong:e==="long"?"sig":null,entryShort:e==="short"?"sig":null,exitLong:null,exitShort:null},risk:{...r,expiresAt:n}}}function jT({side:e,coin:A,interval:t,risk:r,expiresAt:n,id:s,name:i,spec:o}){let a=[{id:"fr",type:"input",field:"fundingRate"},{id:"thr",type:"constant",value:o.threshold},{id:"sig",type:"compare",op:o.op==="above"?"gt":"lt",left:"fr",right:"thr"}];return{version:1,id:s,name:i,venue:"hyperliquid",market:{coin:A,interval:t},parameters:{},nodes:a,rules:{entryLong:e==="long"?"sig":null,entryShort:e==="short"?"sig":null,exitLong:null,exitShort:null},risk:{...r,expiresAt:n}}}function Qw(e,A={}){if(typeof e!="string")throw new Ne("prompt must be a string");if(e.length>1e3)throw new Ne("prompt length must be <= 1000");if(!GT(A))throw new Ne("options must be a plain object");if(!Number.isInteger(A.nowMs))throw new Ne("options.nowMs is required integer epoch ms");let t=A.nowMs,r=YT;if("expiresInMs"in A){if(!Number.isInteger(A.expiresInMs))throw new Ne("expiresInMs must be an integer");if(r=A.expiresInMs,r<TT||r>xT)throw new Ne("expiresInMs must be between 1h and 30d")}if(UT.test(e))throw new Ne(`prompt appears to contain secrets and is rejected. ${$r}`);let n=JT(e);if(!n)throw new Ne(`empty prompt. ${$r}`);if(WT(n))throw new Ne(`duplicate interval or risk clause. ${$r}`);let s=HT(n),i=VT(n),o=vT(n);if(!s||!i||!o)throw new Ne(`could not parse side/coin/interval. ${$r}`);let a=qT(n);if(!(a.maxLeverage>0)||a.maxLeverage>50)throw new Ne("leverage out of range");if(!(a.positionSizePct>0)||a.positionSizePct>100)throw new Ne("position size out of range");let g=t+r,l=PT(n),c=`Draft ${i} ${s}`.slice(0,100),Q=OT(n),B=zT(n),E=ZT(n),u=[Q,B,E].filter(Boolean);if(u.length!==1)throw new Ne(`unsupported or ambiguous prompt. ${$r}`);if(!_T(n,u[0]))throw new Ne(`unsupported or ambiguous prompt. ${$r}`);let h,I=u[0],C={side:s,coin:i,interval:o,risk:a,expiresAt:g,id:l,name:c,spec:I};I.kind==="ema_cross"?h=KT(C):I.kind==="rsi"?h=XT(C):h=jT(C);let D=Cl(h,{nowMs:t});if(!D.ok)throw new Ne(`draft failed validation: ${D.errors.map(f=>f.message).join("; ")}`);return yl(Ge(h,{nowMs:t}))}var Ne,NT,MT,UT,$r,LT,TT,xT,YT,Ew=De(()=>{Pt();Ne=class extends Error{constructor(A){super(A),this.name="StrategyDraftError"}},NT=new Set(["1m","3m","5m","15m","30m","1h","2h","4h","8h","12h","1d"]),MT=new Set(["BTC","ETH","SOL","HYPE"]),UT=/\b(mnemonic|private\s*key|privkey|seed\s*phrase|seed\b|api[_-]?key|secret\s*key|wallet\s*key|passphrase)\b/i,$r="Supported grammar: (1) EMA cross: <long|short> <COIN> when EMA <n> crosses <above|below> EMA <m> [on <interval>] [, exit on reverse] [, risk knobs]; (2) RSI: <long|short> <COIN> when RSI <n> <above|below> <threshold> [on <interval>] [, risk knobs]; (3) funding: <long|short> <COIN> when funding rate <above|below> <decimal|percent%> [on <interval>] [, risk knobs]. Risk knobs: stop loss %, take profit %, leverage, position size %, max notional USD. Coins: BTC ETH SOL HYPE or uppercase token <=12 chars. Intervals: 1m 3m 5m 15m 30m 1h 2h 4h 8h 12h 1d.",LT=Object.freeze({maxLeverage:1,maxNotionalUsd:100,positionSizePct:5,stopLossPct:2,takeProfitPct:4,cooldownBars:1,maxDailyLossPct:3}),TT=36e5,xT=30*864e5,YT=864e5});import{createHash as $T}from"node:crypto";function Iw(e){let A=String(e).toLowerCase();return A==="holdout"||A==="test"||A==="oos"||A.includes("holdout")||A.includes("oos")?!0:A==="testbars"||A.endsWith("testbars")||A.startsWith("test")||A.endsWith("test")?!A.includes("backtest"):!1}function hw(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}function ml(e){if(e==null||typeof e!="object"||Object.isFrozen(e))return e;if(Array.isArray(e)){for(let A of e)ml(A);return Object.freeze(e)}for(let A of Object.keys(e))ml(e[A]);return Object.freeze(e)}function ls(e){if(Array.isArray(e))return e.map(ls);if(e!=null&&typeof e=="object"){let A={};for(let t of Object.keys(e).sort())A[t]=ls(e[t]);return A}return e}function Io(e){return JSON.stringify(ls(e))}function ex(e){let{min:A,max:t,step:r}=e;if(!(r>0)||A>t)return[];let n=[],s=Math.floor((t-A)/r+1e-9);for(let o=0;o<=s;o++){let a=A+o*r;if(a>t+1e-9)break;let g=Math.abs(a-Math.round(a))<1e-9?Math.round(a):Number(a.toPrecision(12));g<A-1e-9||g>t+1e-9||n.push(g)}if(n.length===0)return[];let i=n[n.length-1];if(Math.abs(i-t)>1e-9){let o=(t-A)/r;Math.abs(o-Math.round(o))<=1e-9&&n.push(t)}return n}function Ax(e,A){if(e.length===0)return[];let t=[{}];for(let r of e){let n=A[r],s=[];for(let i of t)for(let o of n)s.push({...i,[r]:o});t=s}return t.sort((r,n)=>{let s=Io(r),i=Io(n);return s<i?-1:s>i?1:0}),t}function pl(e,A,t,r,n){let s=0;if(e==="maxDrawdownPct"){if(s=A.maxDrawdownPct-r.maxDrawdownPct,s!==0)return s<0}else if(s=A[e]-r[e],s!==0)return s>0;let i=Io(t),o=Io(n);return i<o}function Cw(e,A,t={}){if(!hw(t))throw new TypeError("options must be a plain object");for(let f of Object.keys(t))if(Iw(f))throw new TypeError(`options must not include holdout/test/oos key "${f}"`);let r=new Set(["maxTrials","objective","backtestOptions"]);for(let f of Object.keys(t))if(!r.has(f))throw new TypeError(`unknown option "${f}"`);let n=64;if("maxTrials"in t){let f=t.maxTrials;if(!Number.isInteger(f)||f<1||f>Bw)throw new TypeError(`maxTrials must be an integer 1..${Bw}`);n=f}let s=t.objective??"netPnlUsd";if(!uw.has(s))throw new TypeError(`objective must be one of ${[...uw].join("|")}`);let i=t.backtestOptions??{};if(!hw(i))throw new TypeError("backtestOptions must be a plain object");for(let f of Object.keys(i))if(Iw(f))throw new TypeError(`backtestOptions must not include holdout/test/oos key "${f}"`);let o=Ge(e),a=Object.keys(o.parameters).sort();if(a.length===0)throw new Error("optimizeStrategy requires at least one declared parameter");let g={},l=1;for(let f of a){let R=ex(o.parameters[f]);if(R.length===0)throw new Error(`parameter "${f}" produces an empty grid`);g[f]=R,l*=R.length}let c=Ax(a,g);if(c.length===0)throw new Error("parameter grid is empty");let Q=c.slice(0,n),B=[],E=null,u=null;for(let f of Q){let R=as(o,f),S=ut(R,A,i);u==null&&(u=S.config);let d={netPnlUsd:S.metrics.netPnlUsd,netPnlPct:S.metrics.netPnlPct,maxDrawdownPct:S.metrics.maxDrawdownPct,winRate:S.metrics.winRate,profitFactor:S.metrics.profitFactor,tradeCount:S.metrics.tradeCount,sharpe:S.metrics.sharpe,turnoverUsd:S.metrics.turnoverUsd},se={parameters:{...f},metrics:d};B.push(se),(!E||pl(s,d,f,E.metrics,E.parameters))&&(E=se)}B.sort((f,R)=>pl(s,f.metrics,f.parameters,R.metrics,R.parameters)?-1:pl(s,R.metrics,R.parameters,f.metrics,f.parameters)?1:0);let h={...E.parameters},I=as(o,h),C={strategyHash:Zr(o),compilerHash:Ot,trainBarsHash:ns(A),backtestConfig:u,objective:s,maxTrials:n,trialsRun:B.length,candidates:B,bestParameters:h,bestStrategy:I},D={id:$T("sha256").update(JSON.stringify(ls(C)),"utf8").digest("hex"),...C};return ml(ls(JSON.parse(JSON.stringify(D))))}var Bw,uw,fw=De(()=>{zt();Pt();lo();Bw=256,uw=new Set(["netPnlUsd","profitFactor","sharpe","maxDrawdownPct"])});import XA from"node:fs";import ho from"node:path";function Co(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}function TA(e){return e==null?e:JSON.parse(JSON.stringify(e))}function rx(e){return String(e).toLowerCase().replace(/[^a-z0-9]/g,"")}function en(e,A="record"){if(Array.isArray(e)){e.forEach((t,r)=>en(t,`${A}[${r}]`));return}if(Co(e))for(let[t,r]of Object.entries(e)){let n=rx(t);if(tx.some(s=>n.includes(s)))throw new Error(`shadow-store: forbidden secret-like field at ${A}.${t}`);en(r,`${A}.${t}`)}}function nx(e){if(typeof e!="string"||!e||!ho.isAbsolute(e))throw new Error("shadow-store: path must be an absolute path")}function dw(e){let A;try{A=XA.lstatSync(e)}catch(r){if(r&&r.code==="ENOENT")return;throw r}if(A.isSymbolicLink())throw new Error("shadow-store: store path must not be a symlink");if(!A.isFile())throw new Error("shadow-store: store path must be a regular file");if(A.mode&511&18)throw new Error("shadow-store: store file must not be group or world writable")}function sx(){return{version:kl,runners:[]}}function ww(e,A){let t;try{t=JSON.parse(e)}catch{throw new Error("shadow-store: malformed JSON")}if(!Co(t))throw new Error("shadow-store: malformed JSON root");if(t.version!==kl)throw new Error(`shadow-store: unsupported version ${t.version}`);if(!Array.isArray(t.runners))throw new Error("shadow-store: runners must be an array");return en(t,ho.basename(A)),{version:kl,runners:t.runners.map(r=>TA(r))}}function yw(e,A){en(A,"store");let t=ho.dirname(e);XA.mkdirSync(t,{recursive:!0,mode:448});let r=ho.join(t,`.shadow-store.${process.pid}.${Date.now()}.tmp`),n=`${JSON.stringify(A)}
47
+ `;try{XA.writeFileSync(r,n,{mode:384,flag:"wx"}),XA.renameSync(r,e);try{XA.chmodSync(e,384)}catch{}}catch(s){try{XA.unlinkSync(r)}catch{}throw s}}function pw(e={}){let A=e.path;if(nx(A),dw(A),XA.existsSync(A)?ww(XA.readFileSync(A,"utf8"),A):yw(A,sx()),Dl.has(A))return Dl.get(A);let t=!1,r=[];function n(){if(t)return;let E=r.shift();if(E){t=!0;try{let u=E.fn();t=!1,E.resolve(u),n()}catch(u){t=!1,E.reject(u),n()}}}function s(E){if(!t&&r.length===0){t=!0;try{return E()}finally{t=!1,queueMicrotask(n)}}return new Promise((u,h)=>{r.push({fn:E,resolve:u,reject:h}),queueMicrotask(n)})}function i(){return dw(A),ww(XA.readFileSync(A,"utf8"),A)}function o(E){yw(A,E)}function a(E){if(!Co(E)||typeof E.id!="string"||!E.id)throw new Error("shadow-store: create requires record with string id");en(E,"record");let u=i();if(u.runners.some(I=>I.id===E.id))throw new Error(`shadow-store: runner id already exists: ${E.id}`);let h=TA(E);return u.runners.push(h),o(u),TA(h)}function g(E){let u=i().runners.find(h=>h.id===E);return u?TA(u):null}function l(){return i().runners.map(E=>TA(E))}function c(E,u){if(typeof u!="function")throw new Error("shadow-store: updater must be a function");let h=i(),I=h.runners.findIndex(f=>f.id===E);if(I<0)throw new Error(`shadow-store: runner not found: ${E}`);let C=TA(h.runners[I]),D=u(C);if(!Co(D)||D.id!==E)throw new Error("shadow-store: updater must return record with same id");return en(D,"record"),h.runners[I]=TA(D),o(h),TA(h.runners[I])}function Q(E){let u=i(),h=u.runners.findIndex(C=>C.id===E);if(h<0)throw new Error(`shadow-store: runner not found: ${E}`);let I=TA(u.runners[h]);return I.status!=="stopped"&&(I.status="stopped",u.runners[h]=I,o(u)),TA(u.runners[h])}let B={create(E){return s(()=>a(E))},get(E){return g(E)},list(){return l()},update(E,u){return s(()=>c(E,u))},stop(E){return s(()=>Q(E))}};return Dl.set(A,B),B}var kl,tx,Dl,mw=De(()=>{kl=1,tx=["privatekey","secretkey","seed","mnemonic","passphrase","password","keystore","keymaterial","apikey","authtoken","accesstoken","refreshtoken","credential","bearer","signature","authorization","xprv","xpriv","wif"];Dl=new Map});import{createHash as Rl}from"node:crypto";function bl(e){return e==null?e:JSON.parse(JSON.stringify(e))}function Fl(e){return Array.isArray(e)?e.map(Fl):e&&typeof e=="object"?Object.fromEntries(Object.keys(e).sort().map(A=>[A,Fl(e[A])])):e}function kw(e){if(!e||typeof e!="object"||Array.isArray(e))throw new TypeError("shadow-runner: record must be an object");return Rl("sha256").update(JSON.stringify(Fl(e))).digest("hex")}function ix(e,A,t,r,n){return Rl("sha256").update(`${e}|${A}|${t}|${r}|${n}`).digest("hex")}function ox(e,A,t,r){return Rl("sha256").update(`shadow|${e}|${A}|${t}|${r??""}`).digest("hex")}function ax(e){return e==="entryLong"||e==="exitShort"?"buy":e==="entryShort"||e==="exitLong"?"sell":e}function Dw(e){return e==="entryLong"||e==="entryShort"}function Sl({storePath:e,clock:A=Date.now}={}){if(typeof e!="string"||!e)throw new Error("shadow-runner: storePath required");let t=pw({path:e});function r({strategy:a,evidenceId:g=null}={}){let l=Je(a),c=g==null?null:String(g),Q=t.list().filter(I=>I.status==="running"&&I.strategyHash===l.strategyHash&&I.compilerHash===l.compilerHash&&I.evidenceId===c).sort((I,C)=>I.createdAt-C.createdAt||I.id.localeCompare(C.id))[0];if(Q)return bl(Q);let B=A(),E=ox(B,l.strategyHash,l.compilerHash,c),u=t.get(E);if(u)return bl(u);let h={id:E,strategy:bl(l.strategy),strategyHash:l.strategyHash,compilerHash:l.compilerHash,evidenceId:c,status:"running",cursor:null,intendedOrders:[],fills:[],missedFills:[],markouts:[],createdAt:B,updatedAt:B,position:null,cooldownBarsRemaining:0,cooldownStartT:null,lastProcessedBarIndex:-1};return t.create(h)}function n(a){return t.get(a)}function s(){return t.list()}function i(a){return t.stop(a)}function o(a,g,{markoutHorizons:l=[1,4,12]}={}){if(!Array.isArray(g))throw new TypeError("shadow-runner: bars must be an array");return t.update(a,c=>{if(c.status!=="running")throw new Error("shadow-runner: runner is stopped");if(g.length===0)return c;let B=Je(c.strategy).evaluateAll(g),E=new Map;for(let w=0;w<g.length;w++)E.set(g[w].t,w);let u=c.cursor,h=[];for(let w=0;w<g.length;w++){let H=g[w].t;(u==null||H>u)&&h.push(w)}if(h.length===0)return c;let I=new Map(c.intendedOrders.map(w=>[w.id,w])),C=new Set(c.fills.map(w=>w.orderId)),D=new Map(c.missedFills.map(w=>[w.orderId,w])),f=(w,H)=>`${w}|${H}`,R=new Map(c.markouts.map(w=>[f(w.orderId,w.horizon),w])),S=c.position?{...c.position}:null,d=Number.isInteger(c.cooldownBarsRemaining)?Math.max(0,c.cooldownBarsRemaining):0,se=Number.isFinite(c.cooldownStartT)?c.cooldownStartT:null;function ke({action:w,signalBarT:H,signalIndex:q}){let ee=ax(w),j=ix(c.id,c.strategyHash,H,ee,w);if(I.has(j))return I.get(j);let _=q+1,te=_<g.length,Re={id:j,action:w,type:w,side:ee,signalBarT:H,fillBarT:te?g[_].t:null,status:te?"open":"missed"};return I.set(j,Re),c.intendedOrders.push(Re),Re}function Le(w,H,q){if(C.has(w.id))return;let ee={orderId:w.id,action:Dw(w.action)?"entry":"exit",side:w.side,price:H.o,barT:H.t,signalBarT:w.signalBarT,barIndex:q};if(c.fills.push(ee),C.add(w.id),w.status="filled",w.fillBarT=H.t,D.has(w.id)&&(D.delete(w.id),c.missedFills=c.missedFills.filter(j=>j.orderId!==w.id)),Dw(w.action)){S={side:w.action==="entryLong"?"long":"short",entryOrderId:w.id,entryBarT:H.t,entryPrice:H.o,entryBarIndex:q};for(let j of l){let _=f(w.id,j);if(R.has(_))continue;let te={orderId:w.id,horizon:j,entryBarT:H.t,entryPrice:H.o,side:S.side,status:"pending",close:null,barT:null};R.set(_,te),c.markouts.push(te)}}else S=null,d=Number(c.strategy?.risk?.cooldownBars)||0,se=H.t}function me(w){if(C.has(w.id)||D.has(w.id))return;let H={orderId:w.id,action:w.action,side:w.side,signalBarT:w.signalBarT,status:"missed"};D.set(w.id,H),c.missedFills.push(H),w.status="missed"}for(let w of c.intendedOrders){if(w.status==="filled"||C.has(w.id))continue;let H=E.get(w.signalBarT);if(H==null)continue;let q=H+1;q<g.length&&(u==null||g[q].t>u)&&Le(w,g[q],q)}for(let w of h){let H=g[w],q=B[w].signals,ee=S,j=te=>{if(S||d>0&&(se==null||H.t>=se))return;let fe=ke({action:te,signalBarT:H.t,signalIndex:w}),wA=w+1;wA<g.length?Le(fe,g[wA],wA):me(fe)},_=te=>{if(!S||S.side==="long"&&te!=="exitLong"||S.side==="short"&&te!=="exitShort")return;let Re=ke({action:te,signalBarT:H.t,signalIndex:w}),fe=w+1;fe<g.length?Le(Re,g[fe],fe):me(Re)};ee?(q.exitLong&&_("exitLong"),q.exitShort&&_("exitShort")):q.entryLong&&q.entryShort||(q.entryLong&&j("entryLong"),q.entryShort&&j("entryShort")),d>0&&se!=null&&H.t>=se&&(d-=1,d===0&&(se=null)),c.cursor=H.t,c.lastProcessedBarIndex=w}for(let w of c.markouts){if(w.status!=="pending")continue;let H=c.fills.find(j=>j.orderId===w.orderId&&j.action==="entry");if(!H)continue;let q=E.get(H.barT);if(q==null)continue;let ee=q+w.horizon;if(ee<g.length){w.close=g[ee].c,w.barT=g[ee].t,w.status="filled";let j=w.entryPrice;w.markout=w.side==="long"?(w.close-j)/j:(j-w.close)/j}}return c.position=S,c.cooldownBarsRemaining=d,c.cooldownStartT=se,c.updatedAt=A(),c})}return{start:r,step:o,list:s,get:n,stop:i}}var bw=De(()=>{zt();mw()});var Sw={};Pw(Sw,{runStrategyOperation:()=>Ix});import cx from"node:os";import gx from"node:path";function Qs(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}function Qx(e){return String(e).toLowerCase().replace(/[^a-z0-9]/g,"")}function Ml(e){if(Array.isArray(e)){for(let A of e)Ml(A);return}if(Qs(e))for(let[A,t]of Object.entries(e)){if(lx.some(r=>Qx(A).includes(r)))throw new Error(`strategy service: secret-like field "${A}" is forbidden`);Ml(t)}}function Ex(e){if(!Qs(e))throw new TypeError("strategy input must be a plain object");return Ml(e),e}function Bx(e,A={}){if(A.nowMs!==void 0){if(!Number.isInteger(A.nowMs))throw new TypeError("nowMs must be an integer epoch milliseconds");return A.nowMs}let t=Date.now();if(e.nowMs===void 0||e.nowMs===null)return t;if(!Number.isInteger(e.nowMs))throw new TypeError("nowMs must be an integer epoch milliseconds");if(Math.abs(e.nowMs-t)>12e4)throw new Error("nowMs outside allowed wall-clock skew (120s); omit nowMs to use server time");return e.nowMs}async function Nl(e,A,t,r){if(Array.isArray(A.bars))return A.bars;let n=gl(e.venue),s=t.fetchBars??n.fetchBars;if(typeof s!="function")throw new Error(`strategy venue ${n.id} does not support history`);let i=await s({coin:e.market.coin,interval:e.market.interval,count:A.count??1500,endTime:A.endTime??r}),o=Array.isArray(i)?i:i?.bars;if(!Array.isArray(o))throw new Error("strategy history provider returned no bars");return o}function Ul(e,A){let t=e.backtestOptions??{};if(!Qs(t))throw new TypeError("backtestOptions must be a plain object");return{...t,nowMs:A}}function Fw(e,A,t,r,n={}){let s=e.evidenceOptions??{};if(!Qs(s))throw new TypeError("evidenceOptions must be a plain object");return{...s,...n,strategy:A,bars:t,backtestOptions:Ul(e,r)}}function Rw(){return gx.join(cx.homedir(),".oracle","strategy-shadow.json")}function ux(e,A){return{perStrategyNotionalUsd:e.risk.maxNotionalUsd,maxLeverage:e.risk.maxLeverage,dailyLossCapUsd:e.risk.maxNotionalUsd*(e.risk.maxDailyLossPct/100),chainAllowlist:[e.venue],assetAllowlist:[e.market.coin],expiresAt:Math.min(e.risk.expiresAt,A+864e5),killSwitchRequired:!0}}async function Ix(e,A={},t={}){let r=Ex(A),n=Bx(r,t);if(e==="draft")return{strategy:Qw(r.prompt,{nowMs:n})};if(e==="validate"){let s=Je(r.strategy);if(s.strategy.risk.expiresAt<=n)throw new Error("strategy is expired");return{valid:!0,strategy:s.strategy,strategyHash:s.strategyHash,compilerHash:s.compilerHash,compilerVersion:s.compilerVersion,requiredSeries:s.requiredSeries}}if(e==="backtest"||e==="evidence"){let s=Je(r.strategy),i=await Nl(s.strategy,r,t,n);gs(s,i);let o=nl(Fw(r,s.strategy,i,n));return e==="evidence"?o:{backtest:ut(s.strategy,i,Ul(r,n)),evidence:o}}if(e==="optimize"){let s=Je(r.strategy),i=await Nl(s.strategy,r,t,n);gs(s,i);let o=r.trainFraction,a=r.evidenceOptions?.trainFraction;if(o!=null&&a!=null&&o!==a)throw new TypeError("conflicting trainFraction controls are forbidden");let g=o??a??.7;if(typeof g!="number"||g<=0||g>=1)throw new TypeError("trainFraction must be in (0,1)");let l=i.slice(0,Math.floor(i.length*g)),c=r.options??{};if(!Qs(c))throw new TypeError("options must be a plain object");let Q=Cw(s.strategy,l,{...c,...r.maxTrials==null?{}:{maxTrials:r.maxTrials},backtestOptions:Ul(r,n)}),B=Q.bestStrategy;return{strategy:B,optimization:Q,evidence:nl(Fw(r,B,i,n,{trainFraction:g}))}}if(e==="shadow"){let s=Sl({storePath:t.storePath??Rw(),clock:()=>n}),i=r.action;if(i==="start")return await s.start({strategy:r.strategy,evidenceId:r.evidenceId??r.evidence?.id??null});if(i==="list")return await s.list();if(i==="get")return await s.get(r.id);if(i==="stop")return await s.stop(r.id);if(i==="step"){let o=await s.get(r.id);if(!o)throw new Error(`shadow runner not found: ${r.id}`);let a=await Nl(o.strategy,r,t,n);return gs(Je(o.strategy),a),await s.step(r.id,a,r.stepOptions??{})}throw new Error(`unknown shadow action: ${i}`)}if(e==="prepare"){let s=Je(r.strategy),i=gl(s.strategy.venue);if(typeof r.shadowId!="string"||!r.shadowId)throw new Error("strategy prepare requires a matching shadow runner id");let a=await Sl({storePath:t.storePath??Rw(),clock:()=>n}).get(r.shadowId);if(!a)throw new Error("strategy prepare shadow runner not found");if(a.status!=="running")throw new Error("strategy prepare requires an active shadow runner");if(!Number.isFinite(a.cursor))throw new Error("strategy prepare requires a stepped shadow runner");if(a.strategyHash!==s.strategyHash||a.compilerHash!==s.compilerHash)throw new Error("strategy prepare shadow runner does not match strategy artifacts");if(a.evidenceId!==r.evidence?.id)throw new Error("strategy prepare shadow runner does not match evidence artifact");let g=r.caps??ux(s.strategy,n);return i.prepareIntent({strategy:s.strategy,evidence:r.evidence,shadow:{id:a.id,stateHash:kw(a),status:a.status,cursor:a.cursor,updatedAt:a.updatedAt},caps:g,nowMs:n,env:t.env??process.env})}throw new Error(`unknown strategy operation: ${e}`)}var lx,Nw=De(()=>{lo();zt();sl();Ew();fw();bw();ll();lx=["privatekey","secretkey","seed","mnemonic","passphrase","password","keystore","keymaterial","apikey","authtoken","accesstoken","refreshtoken","credential","bearer","signature","authorization","xprv","xpriv","wif"]});import Mw from"node:fs";function hx(e){let A={},t=[];for(let r=0;r<e.length;r++){let n=e[r];if(!n.startsWith("--")){t.push(n);continue}let s=n.slice(2),i=e[r+1];i!=null&&!i.startsWith("--")?(A[s]=i,r++):A[s]=!0}return{flags:A,positional:t}}function _t(e,A){if(!e)throw new Error(`${A} path required`);let t=e==="-"?Mw.readFileSync(0,"utf8"):Mw.readFileSync(e,"utf8");try{return JSON.parse(t)}catch{throw new Error(`${A} must contain valid JSON`)}}function Uw(e,A){if(e==null)return;let t=Number(e);if(!Number.isFinite(t))throw new Error(`${A} must be a finite number`);return t}var Cx=`oracle strategy <draft|validate|backtest|optimize|evidence|shadow|prepare> [args]
4
48
 
5
49
  oracle strategy draft "Long BTC when the 20 EMA crosses above the 50 EMA"
6
50
  oracle strategy validate strategy.json
@@ -13,6 +57,6 @@ var ln=Object.defineProperty;var B=(e,t,r)=>()=>{if(r)throw r[0];try{return e&&(
13
57
  oracle strategy shadow stop <id>
14
58
  oracle strategy prepare strategy.json --evidence evidence.json --shadow-id <id> [--caps caps.json]
15
59
 
16
- Strategy simulation and shadowing are local and deterministic. Prepare returns an integrity-bound artifact, HMAC-authenticated when local attestation is configured. Oracle public never signs or broadcasts.
17
- `,Bi={name:"strategy",summary:"deterministic Hyperliquid strategy lab, evidence, shadow, prepare-only handoff",group:"read",usage:"oracle strategy <draft|validate|backtest|optimize|evidence|shadow|prepare> [args]",async run(e){let{flags:t,positional:r}=$o(e.argv);if(t.help||r.length===0)return process.stdout.write(To),0;let[n,...s]=r,{runStrategyOperation:a}=await Promise.resolve().then(()=>(Qr(),Zr)),o={nowMs:Date.now(),count:tn(t.count,"count")};if(n==="draft")o.prompt=s.join(" ").trim();else if(["validate","backtest","optimize","evidence"].includes(n))o.strategy=he(s[0],"strategy"),t.bars&&(o.bars=he(t.bars,"bars")),o.maxTrials=tn(t["max-trials"],"max-trials");else if(n==="shadow"){let l=s[0];if(!l)throw new Error("shadow action required");o.action=l,l==="start"&&(o.strategy=he(s[1],"strategy")),l==="step"&&(o.id=s[1],t.bars&&(o.bars=he(t.bars,"bars"))),l==="stop"&&(o.id=s[1])}else if(n==="prepare")o.strategy=he(s[0],"strategy"),o.evidence=he(t.evidence,"evidence"),o.shadowId=t["shadow-id"],t.caps&&(o.caps=he(t.caps,"caps"));else throw new Error(`unknown strategy operation: ${n}`);let i=await a(n,o);return process.stdout.write(`${JSON.stringify(i,null,2)}
18
- `),0}};export{Bi as default};
60
+ Strategy simulation and shadowing are local and deterministic. Prepare returns an integrity-bound artifact, HMAC-authenticated when local attestation is configured. Sign and broadcast through an approved execution path.
61
+ `,NJ={name:"strategy",summary:"deterministic Hyperliquid strategy lab, evidence, shadow, prepare-only handoff",group:"read",usage:"oracle strategy <draft|validate|backtest|optimize|evidence|shadow|prepare> [args]",async run(e){let{flags:A,positional:t}=hx(e.argv);if(A.help||t.length===0)return process.stdout.write(Cx),0;let[r,...n]=t,{runStrategyOperation:s}=await Promise.resolve().then(()=>(Nw(),Sw)),i={nowMs:Date.now(),count:Uw(A.count,"count")};if(r==="draft")i.prompt=n.join(" ").trim();else if(["validate","backtest","optimize","evidence"].includes(r))i.strategy=_t(n[0],"strategy"),A.bars&&(i.bars=_t(A.bars,"bars")),i.maxTrials=Uw(A["max-trials"],"max-trials");else if(r==="shadow"){let a=n[0];if(!a)throw new Error("shadow action required");i.action=a,a==="start"&&(i.strategy=_t(n[1],"strategy")),a==="step"&&(i.id=n[1],A.bars&&(i.bars=_t(A.bars,"bars"))),a==="stop"&&(i.id=n[1])}else if(r==="prepare")i.strategy=_t(n[0],"strategy"),i.evidence=_t(A.evidence,"evidence"),i.shadowId=A["shadow-id"],A.caps&&(i.caps=_t(A.caps,"caps"));else throw new Error(`unknown strategy operation: ${r}`);let o=await s(r,i);return process.stdout.write(`${JSON.stringify(o,null,2)}
62
+ `),0}};export{NJ as default};