just-bash 2.4.1 → 2.4.3

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.
@@ -1,5 +1,5 @@
1
- var Xf=Object.create;var Ln=Object.defineProperty;var Jf=Object.getOwnPropertyDescriptor;var Yf=Object.getOwnPropertyNames;var ep=Object.getPrototypeOf,tp=Object.prototype.hasOwnProperty;var C=(t,e)=>()=>(t&&(e=t(t=0)),e);var Ar=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),R=(t,e)=>{for(var r in e)Ln(t,r,{get:e[r],enumerable:!0})},rp=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of Yf(e))!tp.call(t,s)&&s!==r&&Ln(t,s,{get:()=>e[s],enumerable:!(n=Jf(e,s))||n.enumerable});return t};var Fi=(t,e,r)=>(r=t!=null?Xf(ep(t)):{},rp(e||!t||!t.__esModule?Ln(r,"default",{value:t,enumerable:!0}):r,t));var Oi={};R(Oi,{echoCommand:()=>sp});function np(t){let e="",r=0;for(;r<t.length;)if(t[r]==="\\"){if(r+1>=t.length){e+="\\";break}let n=t[r+1];switch(n){case"\\":e+="\\",r+=2;break;case"n":e+=`
2
- `,r+=2;break;case"t":e+=" ",r+=2;break;case"r":e+="\r",r+=2;break;case"a":e+="\x07",r+=2;break;case"b":e+="\b",r+=2;break;case"f":e+="\f",r+=2;break;case"v":e+="\v",r+=2;break;case"e":case"E":e+="\x1B",r+=2;break;case"c":return{output:e,stop:!0};case"0":{let s="",i=r+2;for(;i<t.length&&i<r+5&&/[0-7]/.test(t[i]);)s+=t[i],i++;if(s.length===0)e+="\0";else{let o=parseInt(s,8)%256;e+=String.fromCharCode(o)}r=i;break}case"x":{let s="",i=r+2;for(;i<t.length&&i<r+4&&/[0-9a-fA-F]/.test(t[i]);)s+=t[i],i++;if(s.length===0)e+="\\x",r+=2;else{let o=parseInt(s,16);e+=String.fromCharCode(o),r=i}break}case"u":{let s="",i=r+2;for(;i<t.length&&i<r+6&&/[0-9a-fA-F]/.test(t[i]);)s+=t[i],i++;if(s.length===0)e+="\\u",r+=2;else{let o=parseInt(s,16);e+=String.fromCodePoint(o),r=i}break}case"U":{let s="",i=r+2;for(;i<t.length&&i<r+10&&/[0-9a-fA-F]/.test(t[i]);)s+=t[i],i++;if(s.length===0)e+="\\U",r+=2;else{let o=parseInt(s,16);try{e+=String.fromCodePoint(o)}catch{e+=`\\U${s}`}r=i}break}default:e+=`\\${n}`,r+=2}}else e+=t[r],r++;return{output:e,stop:!1}}var sp,Ti=C(()=>{"use strict";sp={name:"echo",async execute(t,e){let r=!1,n=!1,s=0;for(;s<t.length;){let o=t[s];if(o==="-n")r=!0,s++;else if(o==="-e")n=!0,s++;else if(o==="-E")n=!1,s++;else if(o==="-ne"||o==="-en")r=!0,n=!0,s++;else break}let i=t.slice(s).join(" ");if(n){let o=np(i);if(i=o.output,o.stop)return{stdout:i,stderr:"",exitCode:0}}return r||(i+=`
1
+ var Ed=Object.create;var es=Object.defineProperty;var bd=Object.getOwnPropertyDescriptor;var Sd=Object.getOwnPropertyNames;var Cd=Object.getPrototypeOf,Ad=Object.prototype.hasOwnProperty;var C=(t,e)=>()=>(t&&(e=t(t=0)),e);var Ur=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),$=(t,e)=>{for(var r in e)es(t,r,{get:e[r],enumerable:!0})},kd=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of Sd(e))!Ad.call(t,s)&&s!==r&&es(t,s,{get:()=>e[s],enumerable:!(n=bd(e,s))||n.enumerable});return t};var Xi=(t,e,r)=>(r=t!=null?Ed(Cd(t)):{},kd(e||!t||!t.__esModule?es(r,"default",{value:t,enumerable:!0}):r,t));var Ji={};$(Ji,{echoCommand:()=>Id});function Nd(t){let e="",r=0;for(;r<t.length;)if(t[r]==="\\"){if(r+1>=t.length){e+="\\";break}let n=t[r+1];switch(n){case"\\":e+="\\",r+=2;break;case"n":e+=`
2
+ `,r+=2;break;case"t":e+=" ",r+=2;break;case"r":e+="\r",r+=2;break;case"a":e+="\x07",r+=2;break;case"b":e+="\b",r+=2;break;case"f":e+="\f",r+=2;break;case"v":e+="\v",r+=2;break;case"e":case"E":e+="\x1B",r+=2;break;case"c":return{output:e,stop:!0};case"0":{let s="",i=r+2;for(;i<t.length&&i<r+5&&/[0-7]/.test(t[i]);)s+=t[i],i++;if(s.length===0)e+="\0";else{let o=parseInt(s,8)%256;e+=String.fromCharCode(o)}r=i;break}case"x":{let s="",i=r+2;for(;i<t.length&&i<r+4&&/[0-9a-fA-F]/.test(t[i]);)s+=t[i],i++;if(s.length===0)e+="\\x",r+=2;else{let o=parseInt(s,16);e+=String.fromCharCode(o),r=i}break}case"u":{let s="",i=r+2;for(;i<t.length&&i<r+6&&/[0-9a-fA-F]/.test(t[i]);)s+=t[i],i++;if(s.length===0)e+="\\u",r+=2;else{let o=parseInt(s,16);e+=String.fromCodePoint(o),r=i}break}case"U":{let s="",i=r+2;for(;i<t.length&&i<r+10&&/[0-9a-fA-F]/.test(t[i]);)s+=t[i],i++;if(s.length===0)e+="\\U",r+=2;else{let o=parseInt(s,16);try{e+=String.fromCodePoint(o)}catch{e+=`\\U${s}`}r=i}break}default:e+=`\\${n}`,r+=2}}else e+=t[r],r++;return{output:e,stop:!1}}var Id,Yi=C(()=>{"use strict";Id={name:"echo",async execute(t,e){let r=!1,n=!1,s=0;for(;s<t.length;){let o=t[s];if(o==="-n")r=!0,s++;else if(o==="-e")n=!0,s++;else if(o==="-E")n=!1,s++;else if(o==="-ne"||o==="-en")r=!0,n=!0,s++;else break}let i=t.slice(s).join(" ");if(n){let o=Nd(i);if(i=o.output,o.stop)return{stdout:i,stderr:"",exitCode:0}}return r||(i+=`
3
3
  `),{stdout:i,stderr:"",exitCode:0}}}});function k(t){let e=`${t.name} - ${t.summary}
4
4
 
5
5
  `;if(e+=`Usage: ${t.usage}
@@ -19,176 +19,176 @@ Examples:
19
19
  `}if(t.notes&&t.notes.length>0){e+=`
20
20
  Notes:
21
21
  `;for(let r of t.notes)e+=` ${r}
22
- `}return{stdout:e,stderr:"",exitCode:0}}function N(t){return t.includes("--help")}function P(t,e){return{stdout:"",stderr:e.startsWith("--")?`${t}: unrecognized option '${e}'
22
+ `}return{stdout:e,stderr:"",exitCode:0}}function N(t){return t.includes("--help")}function R(t,e){return{stdout:"",stderr:e.startsWith("--")?`${t}: unrecognized option '${e}'
23
23
  `:`${t}: invalid option -- '${e.replace(/^-/,"")}'
24
- `,exitCode:1}}var L=C(()=>{"use strict"});function z(t,e,r){let n=new Map,s=new Map;for(let[l,c]of Object.entries(r)){let u={name:l,type:c.type};c.short&&n.set(c.short,u),c.long&&s.set(c.long,u)}let i={};for(let[l,c]of Object.entries(r))c.default!==void 0?i[l]=c.default:c.type==="boolean"&&(i[l]=!1);let o=[],a=!1;for(let l=0;l<e.length;l++){let c=e[l];if(a||!c.startsWith("-")||c==="-"){o.push(c);continue}if(c==="--"){a=!0;continue}if(c.startsWith("--")){let u=c.indexOf("="),f,p;u!==-1?(f=c.slice(2,u),p=c.slice(u+1)):f=c.slice(2);let d=s.get(f);if(!d)return{ok:!1,error:P(t,c)};let{name:h,type:m}=d;if(m==="boolean")i[h]=!0;else{if(p===void 0){if(l+1>=e.length)return{ok:!1,error:{stdout:"",stderr:`${t}: option '--${f}' requires an argument
25
- `,exitCode:1}};p=e[++l]}i[h]=m==="number"?parseInt(p,10):p}}else{let u=c.slice(1);for(let f=0;f<u.length;f++){let p=u[f],d=n.get(p);if(!d)return{ok:!1,error:P(t,`-${p}`)};let{name:h,type:m}=d;if(m==="boolean")i[h]=!0;else{let g;if(f+1<u.length)g=u.slice(f+1);else if(l+1<e.length)g=e[++l];else return{ok:!1,error:{stdout:"",stderr:`${t}: option requires an argument -- '${p}'
26
- `,exitCode:1}};i[h]=m==="number"?parseInt(g,10):g;break}}}}return{ok:!0,result:{flags:i,positional:o}}}var ye=C(()=>{"use strict";L()});var ht=C(()=>{"use strict"});async function mt(t,e,r){let{cmdName:n,allowStdinMarker:s=!0,stopOnError:i=!1,batchSize:o=100}=r;if(e.length===0)return{files:[{filename:"",content:t.stdin}],stderr:"",exitCode:0};let a=[],l="",c=0;for(let u=0;u<e.length;u+=o){let f=e.slice(u,u+o),p=await Promise.all(f.map(async d=>{if(s&&d==="-")return{filename:"-",content:t.stdin,error:null};try{let h=t.fs.resolvePath(t.cwd,d),m=await t.fs.readFile(h);return{filename:d,content:m,error:null}}catch{return{filename:d,content:"",error:`${n}: ${d}: No such file or directory
27
- `}}}));for(let d of p)if(d.error){if(l+=d.error,c=1,i)return{files:a,stderr:l,exitCode:c}}else a.push({filename:d.filename,content:d.content})}return{files:a,stderr:l,exitCode:c}}async function Ot(t,e,r){let n=await mt(t,e,{...r,stopOnError:!0});return n.exitCode!==0?{ok:!1,error:{stdout:"",stderr:n.stderr,exitCode:n.exitCode}}:{ok:!0,content:n.files.map(i=>i.content).join("")}}var gt=C(()=>{"use strict";ht()});var Di={};R(Di,{catCommand:()=>ap});function lp(t,e){let r=t.split(`
24
+ `,exitCode:1}}var L=C(()=>{"use strict"});function H(t,e,r){let n=new Map,s=new Map;for(let[l,c]of Object.entries(r)){let u={name:l,type:c.type};c.short&&n.set(c.short,u),c.long&&s.set(c.long,u)}let i={};for(let[l,c]of Object.entries(r))c.default!==void 0?i[l]=c.default:c.type==="boolean"&&(i[l]=!1);let o=[],a=!1;for(let l=0;l<e.length;l++){let c=e[l];if(a||!c.startsWith("-")||c==="-"){o.push(c);continue}if(c==="--"){a=!0;continue}if(c.startsWith("--")){let u=c.indexOf("="),f,d;u!==-1?(f=c.slice(2,u),d=c.slice(u+1)):f=c.slice(2);let p=s.get(f);if(!p)return{ok:!1,error:R(t,c)};let{name:h,type:m}=p;if(m==="boolean")i[h]=!0;else{if(d===void 0){if(l+1>=e.length)return{ok:!1,error:{stdout:"",stderr:`${t}: option '--${f}' requires an argument
25
+ `,exitCode:1}};d=e[++l]}i[h]=m==="number"?parseInt(d,10):d}}else{let u=c.slice(1);for(let f=0;f<u.length;f++){let d=u[f],p=n.get(d);if(!p)return{ok:!1,error:R(t,`-${d}`)};let{name:h,type:m}=p;if(m==="boolean")i[h]=!0;else{let g;if(f+1<u.length)g=u.slice(f+1);else if(l+1<e.length)g=e[++l];else return{ok:!1,error:{stdout:"",stderr:`${t}: option requires an argument -- '${d}'
26
+ `,exitCode:1}};i[h]=m==="number"?parseInt(g,10):g;break}}}}return{ok:!0,result:{flags:i,positional:o}}}var Ee=C(()=>{"use strict";L()});var Ht=C(()=>{"use strict"});async function kt(t,e,r){let{cmdName:n,allowStdinMarker:s=!0,stopOnError:i=!1,batchSize:o=100}=r;if(e.length===0)return{files:[{filename:"",content:t.stdin}],stderr:"",exitCode:0};let a=[],l="",c=0;for(let u=0;u<e.length;u+=o){let f=e.slice(u,u+o),d=await Promise.all(f.map(async p=>{if(s&&p==="-")return{filename:"-",content:t.stdin,error:null};try{let h=t.fs.resolvePath(t.cwd,p),m=await t.fs.readFile(h);return{filename:p,content:m,error:null}}catch{return{filename:p,content:"",error:`${n}: ${p}: No such file or directory
27
+ `}}}));for(let p of d)if(p.error){if(l+=p.error,c=1,i)return{files:a,stderr:l,exitCode:c}}else a.push({filename:p.filename,content:p.content})}return{files:a,stderr:l,exitCode:c}}async function Gt(t,e,r){let n=await kt(t,e,{...r,stopOnError:!0});return n.exitCode!==0?{ok:!1,error:{stdout:"",stderr:n.stderr,exitCode:n.exitCode}}:{ok:!0,content:n.files.map(i=>i.content).join("")}}var Nt=C(()=>{"use strict";Ht()});var eo={};$(eo,{catCommand:()=>Rd});function Pd(t,e){let r=t.split(`
28
28
  `),n=t.endsWith(`
29
29
  `),s=n?r.slice(0,-1):r;return{content:s.map((o,a)=>`${String(e+a).padStart(6," ")} ${o}`).join(`
30
30
  `)+(n?`
31
- `:""),nextLineNumber:e+s.length}}var ip,op,ap,Li=C(()=>{"use strict";ye();gt();L();ip={name:"cat",summary:"concatenate files and print on the standard output",usage:"cat [OPTION]... [FILE]...",options:["-n, --number number all output lines"," --help display this help and exit"]},op={number:{short:"n",long:"number",type:"boolean"}},ap={name:"cat",async execute(t,e){if(N(t))return k(ip);let r=z("cat",t,op);if(!r.ok)return r.error;let n=r.result.flags.number,s=r.result.positional,i=await mt(e,s,{cmdName:"cat",allowStdinMarker:!0,stopOnError:!1}),o="",a=1;for(let{content:l}of i.files)if(n){let c=lp(l,a);o+=c.content,a=c.nextLineNumber}else o+=l;return{stdout:o,stderr:i.stderr,exitCode:i.exitCode}}}});function de(t){return t instanceof Error?t.message:String(t)}var qe=C(()=>{"use strict"});function kr(t,e,r){let n=t;r>=0&&n.length>r&&(n=n.slice(0,r));let s=Math.abs(e);return s>n.length&&(e<0?n=n.padEnd(s," "):n=n.padStart(s," ")),n}function Mi(t,e){let r=e,n=0,s=-1,i=!1;for(r<t.length&&t[r]==="-"&&(i=!0,r++);r<t.length&&/\d/.test(t[r]);)n=n*10+parseInt(t[r],10),r++;if(r<t.length&&t[r]===".")for(r++,s=0;r<t.length&&/\d/.test(t[r]);)s=s*10+parseInt(t[r],10),r++;return i&&n>0&&(n=-n),[n,s,r-e]}function Nr(t){let e="",r=0;for(;r<t.length;)if(t[r]==="\\"&&r+1<t.length)switch(t[r+1]){case"n":e+=`
32
- `,r+=2;break;case"t":e+=" ",r+=2;break;case"r":e+="\r",r+=2;break;case"\\":e+="\\",r+=2;break;case"a":e+="\x07",r+=2;break;case"b":e+="\b",r+=2;break;case"f":e+="\f",r+=2;break;case"v":e+="\v",r+=2;break;case"e":case"E":e+="\x1B",r+=2;break;case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":{let s="",i=r+1;for(;i<t.length&&i<r+4&&/[0-7]/.test(t[i]);)s+=t[i],i++;e+=String.fromCharCode(parseInt(s,8)),r=i;break}case"x":r+3<t.length&&/[0-9a-fA-F]{2}/.test(t.slice(r+2,r+4))?(e+=String.fromCharCode(parseInt(t.slice(r+2,r+4),16)),r+=4):(e+=t[r],r++);break;case"u":{let s="",i=r+2;for(;i<t.length&&i<r+6&&/[0-9a-fA-F]/.test(t[i]);)s+=t[i],i++;s?(e+=String.fromCodePoint(parseInt(s,16)),r=i):(e+="\\u",r+=2);break}case"U":{let s="",i=r+2;for(;i<t.length&&i<r+10&&/[0-9a-fA-F]/.test(t[i]);)s+=t[i],i++;s?(e+=String.fromCodePoint(parseInt(s,16)),r=i):(e+="\\U",r+=2);break}default:e+=t[r],r++}else e+=t[r],r++;return e}var Mn=C(()=>{"use strict"});var Bi={};R(Bi,{printfCommand:()=>up});import{sprintf as Tt}from"sprintf-js";function fp(t,e,r){let n="",s=0,i=0,o=!1,a="";for(;s<t.length;)if(t[s]==="%"&&s+1<t.length){let l=s;if(s++,t[s]==="%"){n+="%",s++;continue}for(;s<t.length&&"+-0 #'".includes(t[s]);)s++;let c=!1;if(t[s]==="*")c=!0,s++;else for(;s<t.length&&/\d/.test(t[s]);)s++;let u=!1;if(t[s]===".")if(s++,t[s]==="*")u=!0,s++;else for(;s<t.length&&/\d/.test(t[s]);)s++;s<t.length&&"hlL".includes(t[s])&&s++;let f=t[s]||"";s++;let d=t.slice(l,s);if(c){let b=parseInt(e[r+i]||"0",10);i++,d=d.replace("*",String(b))}if(u){let b=parseInt(e[r+i]||"0",10);i++,d=d.replace(".*",`.${b}`)}let h=e[r+i]||"";i++;let{value:m,parseError:g,parseErrMsg:w,stopped:E}=pp(d,f,h);if(n+=m,g&&(o=!0,w&&(a=w)),E)return{result:n,argsConsumed:i,error:o,errMsg:a,stopped:!0}}else n+=t[s],s++;return{result:n,argsConsumed:i,error:o,errMsg:a,stopped:!1}}function pp(t,e,r){let n=!1,s="";switch(e){case"d":case"i":{let i=Ir(r);return n=Ve,n&&(s=`printf: ${r}: invalid number
33
- `),{value:_i(t,i),parseError:n,parseErrMsg:s}}case"o":{let i=Ir(r);return n=Ve,n&&(s=`printf: ${r}: invalid number
34
- `),{value:dp(t,i),parseError:n,parseErrMsg:s}}case"u":{let i=Ir(r);n=Ve,n&&(s=`printf: ${r}: invalid number
35
- `);let o=i<0?i>>>0:i;return{value:_i(t.replace("u","d"),o),parseError:n,parseErrMsg:s}}case"x":case"X":{let i=Ir(r);return n=Ve,n&&(s=`printf: ${r}: invalid number
36
- `),{value:hp(t,i),parseError:n,parseErrMsg:s}}case"e":case"E":case"f":case"F":case"g":case"G":{let i=parseFloat(r)||0;return{value:xp(t,e,i),parseError:!1,parseErrMsg:""}}case"c":return{value:r.charAt(0)||"",parseError:!1,parseErrMsg:""};case"s":return{value:gp(t,r),parseError:!1,parseErrMsg:""};case"q":return{value:yp(t,r),parseError:!1,parseErrMsg:""};case"b":{let i=wp(r);return{value:i.value,parseError:!1,parseErrMsg:"",stopped:i.stopped}}default:try{return{value:Tt(t,r),parseError:!1,parseErrMsg:""}}catch{return{value:"",parseError:!0,parseErrMsg:`printf: [sprintf] unexpected placeholder
37
- `}}}}function Ir(t){Ve=!1;let e=t.trimStart(),r=e!==e.trimEnd();if(t=e.trimEnd(),t.startsWith("'")&&t.length>=2||t.startsWith('"')&&t.length>=2)return t.charCodeAt(1);if(t.startsWith("\\'")&&t.length>=3||t.startsWith('\\"')&&t.length>=3)return t.charCodeAt(2);if(t.startsWith("+")&&(t=t.slice(1)),t.startsWith("0x")||t.startsWith("0X")){let n=parseInt(t,16);return Number.isNaN(n)?(Ve=!0,0):(r&&(Ve=!0),n)}if(t.startsWith("0")&&t.length>1&&/^-?0[0-7]+$/.test(t))return r&&(Ve=!0),parseInt(t,8)||0;if(/^\d+#/.test(t)){Ve=!0;let n=t.match(/^(\d+)#/);return n?parseInt(n[1],10):0}if(t!==""&&!/^-?\d+$/.test(t)){Ve=!0;let n=parseInt(t,10);return Number.isNaN(n)?0:n}return r&&(Ve=!0),parseInt(t,10)||0}function _i(t,e){let r=t.match(/^%([- +#0']*)(\d*)(\.(\d*))?[diu]$/);if(!r)return Tt(t.replace(/\.\d*/,""),e);let n=r[1]||"",s=r[2]?parseInt(r[2],10):0,i=r[3]!==void 0?r[4]?parseInt(r[4],10):0:-1,o=e<0,a=Math.abs(e),l=String(a);i>=0&&(l=l.padStart(i,"0"));let c="";o?c="-":n.includes("+")?c="+":n.includes(" ")&&(c=" ");let u=c+l;return s>u.length&&(n.includes("-")?u=u.padEnd(s," "):n.includes("0")&&i<0?u=c+l.padStart(s-c.length,"0"):u=u.padStart(s," ")),u}function dp(t,e){let r=t.match(/^%([- +#0']*)(\d*)(\.(\d*))?o$/);if(!r)return Tt(t,e);let n=r[1]||"",s=r[2]?parseInt(r[2],10):0,i=r[3]!==void 0?r[4]?parseInt(r[4],10):0:-1,o=Math.abs(e).toString(8);i>=0&&(o=o.padStart(i,"0")),n.includes("#")&&!o.startsWith("0")&&(o=`0${o}`);let a=o;return s>a.length&&(n.includes("-")?a=a.padEnd(s," "):n.includes("0")&&i<0?a=a.padStart(s,"0"):a=a.padStart(s," ")),a}function hp(t,e){let r=t.includes("X"),n=t.match(/^%([- +#0']*)(\d*)(\.(\d*))?[xX]$/);if(!n)return Tt(t,e);let s=n[1]||"",i=n[2]?parseInt(n[2],10):0,o=n[3]!==void 0?n[4]?parseInt(n[4],10):0:-1,a=Math.abs(e).toString(16);r&&(a=a.toUpperCase()),o>=0&&(a=a.padStart(o,"0"));let l="";s.includes("#")&&e!==0&&(l=r?"0X":"0x");let c=l+a;return i>c.length&&(s.includes("-")?c=c.padEnd(i," "):s.includes("0")&&o<0?c=l+a.padStart(i-l.length,"0"):c=c.padStart(i," ")),c}function mp(t){if(t==="")return"''";if(/^[a-zA-Z0-9_./-]+$/.test(t))return t;if(/[\x00-\x1f\x7f]/.test(t)){let n="$'";for(let s of t){let i=s.charCodeAt(0);s==="'"?n+="\\'":s==="\\"?n+="\\\\":s===`
38
- `?n+="\\n":s===" "?n+="\\t":s==="\r"?n+="\\r":s==="\x07"?n+="\\a":s==="\b"?n+="\\b":s==="\f"?n+="\\f":s==="\v"?n+="\\v":s==="\x1B"?n+="\\E":i<32||i>126?n+=`\\x${i.toString(16).padStart(2,"0")}`:s==='"'?n+='\\"':n+=s}return n+="'",n}let r="";for(let n of t)" |&;<>()$`\\\"'*?[#~=%!{}".includes(n)?r+=`\\${n}`:r+=n;return r}function gp(t,e){let r=t.match(/^%(-?)(\d*)(\.(\d*))?s$/);if(!r)return Tt(t.replace(/0+(?=\d)/,""),e);let n=r[1]==="-",s=r[2]?parseInt(r[2],10):0,i=r[3]!==void 0?r[4]?parseInt(r[4],10):0:-1,o=n?-s:s;return kr(e,o,i)}function yp(t,e){let r=mp(e),n=t.match(/^%(-?)(\d*)q$/);if(!n)return r;let s=n[1]==="-",i=n[2]?parseInt(n[2],10):0,o=r;return i>o.length&&(s?o=o.padEnd(i," "):o=o.padStart(i," ")),o}function xp(t,e,r){let n=t.match(/^%([- +#0']*)(\d*)(\.(\d*))?[eEfFgG]$/);if(!n)return Tt(t,r);let s=n[1]||"",i=n[2]?parseInt(n[2],10):0,o=n[3]!==void 0?n[4]?parseInt(n[4],10):0:6,a,l=e.toLowerCase();if(l==="e"?(a=r.toExponential(o),a=a.replace(/e([+-])(\d)$/,"e$10$2"),e==="E"&&(a=a.toUpperCase())):l==="f"?(a=r.toFixed(o),s.includes("#")&&o===0&&!a.includes(".")&&(a+=".")):l==="g"?(a=r.toPrecision(o||1),s.includes("#")||(a=a.replace(/\.?0+$/,""),a=a.replace(/\.?0+e/,"e")),a=a.replace(/e([+-])(\d)$/,"e$10$2"),e==="G"&&(a=a.toUpperCase())):a=r.toString(),r>=0&&(s.includes("+")?a=`+${a}`:s.includes(" ")&&(a=` ${a}`)),i>a.length)if(s.includes("-"))a=a.padEnd(i," ");else if(s.includes("0")){let c=a.match(/^[+ -]/)?.[0]||"",u=c?a.slice(1):a;a=c+u.padStart(i-c.length,"0")}else a=a.padStart(i," ");return a}function wp(t){let e="",r=0;for(;r<t.length;)if(t[r]==="\\"&&r+1<t.length)switch(t[r+1]){case"n":e+=`
39
- `,r+=2;break;case"t":e+=" ",r+=2;break;case"r":e+="\r",r+=2;break;case"\\":e+="\\",r+=2;break;case"a":e+="\x07",r+=2;break;case"b":e+="\b",r+=2;break;case"f":e+="\f",r+=2;break;case"v":e+="\v",r+=2;break;case"c":return{value:e,stopped:!0};case"x":{let s="",i=r+2;for(;i<t.length&&i<r+4&&/[0-9a-fA-F]/.test(t[i]);)s+=t[i],i++;s?(e+=String.fromCharCode(parseInt(s,16)),r=i):(e+="\\x",r+=2);break}case"u":{let s="",i=r+2;for(;i<t.length&&i<r+6&&/[0-9a-fA-F]/.test(t[i]);)s+=t[i],i++;s?(e+=String.fromCodePoint(parseInt(s,16)),r=i):(e+="\\u",r+=2);break}case"0":{let s="",i=r+2;for(;i<t.length&&i<r+5&&/[0-7]/.test(t[i]);)s+=t[i],i++;s?e+=String.fromCharCode(parseInt(s,8)):e+="\0",r=i;break}case"1":case"2":case"3":case"4":case"5":case"6":case"7":{let s="",i=r+1;for(;i<t.length&&i<r+4&&/[0-7]/.test(t[i]);)s+=t[i],i++;e+=String.fromCharCode(parseInt(s,8)),r=i;break}default:e+=t[r],r++}else e+=t[r],r++;return{value:e,stopped:!1}}var cp,up,Ve,Wi=C(()=>{"use strict";qe();L();Mn();cp={name:"printf",summary:"format and print data",usage:"printf [-v var] FORMAT [ARGUMENT...]",options:[" -v var assign the output to shell variable VAR rather than display it"," --help display this help and exit"],notes:["FORMAT controls the output like in C printf.","Escape sequences: \\n (newline), \\t (tab), \\\\ (backslash)","Format specifiers: %s (string), %d (integer), %f (float), %x (hex), %o (octal), %% (literal %)","Width and precision: %10s (width 10), %.2f (2 decimal places), %010d (zero-padded)","Flags: %- (left-justify), %+ (show sign), %0 (zero-pad)"]},up={name:"printf",async execute(t,e){if(N(t))return k(cp);if(t.length===0)return{stdout:"",stderr:`printf: usage: printf format [arguments]
31
+ `:""),nextLineNumber:e+s.length}}var vd,$d,Rd,to=C(()=>{"use strict";Ee();Nt();L();vd={name:"cat",summary:"concatenate files and print on the standard output",usage:"cat [OPTION]... [FILE]...",options:["-n, --number number all output lines"," --help display this help and exit"]},$d={number:{short:"n",long:"number",type:"boolean"}},Rd={name:"cat",async execute(t,e){if(N(t))return k(vd);let r=H("cat",t,$d);if(!r.ok)return r.error;let n=r.result.flags.number,s=r.result.positional,i=await kt(e,s,{cmdName:"cat",allowStdinMarker:!0,stopOnError:!1}),o="",a=1;for(let{content:l}of i.files)if(n){let c=Pd(l,a);o+=c.content,a=c.nextLineNumber}else o+=l;return{stdout:o,stderr:i.stderr,exitCode:i.exitCode}}}});function he(t){return t instanceof Error?t.message:String(t)}var rt=C(()=>{"use strict"});function zr(t,e,r){let n=t;r>=0&&n.length>r&&(n=n.slice(0,r));let s=Math.abs(e);return s>n.length&&(e<0?n=n.padEnd(s," "):n=n.padStart(s," ")),n}function ro(t,e){let r=e,n=0,s=-1,i=!1;for(r<t.length&&t[r]==="-"&&(i=!0,r++);r<t.length&&/\d/.test(t[r]);)n=n*10+parseInt(t[r],10),r++;if(r<t.length&&t[r]===".")for(r++,s=0;r<t.length&&/\d/.test(t[r]);)s=s*10+parseInt(t[r],10),r++;return i&&n>0&&(n=-n),[n,s,r-e]}function jr(t){let e="",r=0;for(;r<t.length;)if(t[r]==="\\"&&r+1<t.length)switch(t[r+1]){case"n":e+=`
32
+ `,r+=2;break;case"t":e+=" ",r+=2;break;case"r":e+="\r",r+=2;break;case"\\":e+="\\",r+=2;break;case"a":e+="\x07",r+=2;break;case"b":e+="\b",r+=2;break;case"f":e+="\f",r+=2;break;case"v":e+="\v",r+=2;break;case"e":case"E":e+="\x1B",r+=2;break;case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":{let s="",i=r+1;for(;i<t.length&&i<r+4&&/[0-7]/.test(t[i]);)s+=t[i],i++;e+=String.fromCharCode(parseInt(s,8)),r=i;break}case"x":r+3<t.length&&/[0-9a-fA-F]{2}/.test(t.slice(r+2,r+4))?(e+=String.fromCharCode(parseInt(t.slice(r+2,r+4),16)),r+=4):(e+=t[r],r++);break;case"u":{let s="",i=r+2;for(;i<t.length&&i<r+6&&/[0-9a-fA-F]/.test(t[i]);)s+=t[i],i++;s?(e+=String.fromCodePoint(parseInt(s,16)),r=i):(e+="\\u",r+=2);break}case"U":{let s="",i=r+2;for(;i<t.length&&i<r+10&&/[0-9a-fA-F]/.test(t[i]);)s+=t[i],i++;s?(e+=String.fromCodePoint(parseInt(s,16)),r=i):(e+="\\U",r+=2);break}default:e+=t[r],r++}else e+=t[r],r++;return e}var ts=C(()=>{"use strict"});var so={};$(so,{printfCommand:()=>Td});import{sprintf as qt}from"sprintf-js";function Od(t,e,r){let n="",s=0,i=0,o=!1,a="";for(;s<t.length;)if(t[s]==="%"&&s+1<t.length){let l=s;if(s++,t[s]==="%"){n+="%",s++;continue}for(;s<t.length&&"+-0 #'".includes(t[s]);)s++;let c=!1;if(t[s]==="*")c=!0,s++;else for(;s<t.length&&/\d/.test(t[s]);)s++;let u=!1;if(t[s]===".")if(s++,t[s]==="*")u=!0,s++;else for(;s<t.length&&/\d/.test(t[s]);)s++;s<t.length&&"hlL".includes(t[s])&&s++;let f=t[s]||"";s++;let p=t.slice(l,s);if(c){let b=parseInt(e[r+i]||"0",10);i++,p=p.replace("*",String(b))}if(u){let b=parseInt(e[r+i]||"0",10);i++,p=p.replace(".*",`.${b}`)}let h=e[r+i]||"";i++;let{value:m,parseError:g,parseErrMsg:w,stopped:E}=Dd(p,f,h);if(n+=m,g&&(o=!0,w&&(a=w)),E)return{result:n,argsConsumed:i,error:o,errMsg:a,stopped:!0}}else n+=t[s],s++;return{result:n,argsConsumed:i,error:o,errMsg:a,stopped:!1}}function Dd(t,e,r){let n=!1,s="";switch(e){case"d":case"i":{let i=Hr(r);return n=nt,n&&(s=`printf: ${r}: invalid number
33
+ `),{value:no(t,i),parseError:n,parseErrMsg:s}}case"o":{let i=Hr(r);return n=nt,n&&(s=`printf: ${r}: invalid number
34
+ `),{value:Ld(t,i),parseError:n,parseErrMsg:s}}case"u":{let i=Hr(r);n=nt,n&&(s=`printf: ${r}: invalid number
35
+ `);let o=i<0?i>>>0:i;return{value:no(t.replace("u","d"),o),parseError:n,parseErrMsg:s}}case"x":case"X":{let i=Hr(r);return n=nt,n&&(s=`printf: ${r}: invalid number
36
+ `),{value:Md(t,i),parseError:n,parseErrMsg:s}}case"e":case"E":case"f":case"F":case"g":case"G":{let i=parseFloat(r)||0;return{value:Ud(t,e,i),parseError:!1,parseErrMsg:""}}case"c":return{value:r.charAt(0)||"",parseError:!1,parseErrMsg:""};case"s":return{value:Bd(t,r),parseError:!1,parseErrMsg:""};case"q":return{value:Wd(t,r),parseError:!1,parseErrMsg:""};case"b":{let i=zd(r);return{value:i.value,parseError:!1,parseErrMsg:"",stopped:i.stopped}}default:try{return{value:qt(t,r),parseError:!1,parseErrMsg:""}}catch{return{value:"",parseError:!0,parseErrMsg:`printf: [sprintf] unexpected placeholder
37
+ `}}}}function Hr(t){nt=!1;let e=t.trimStart(),r=e!==e.trimEnd();if(t=e.trimEnd(),t.startsWith("'")&&t.length>=2||t.startsWith('"')&&t.length>=2)return t.charCodeAt(1);if(t.startsWith("\\'")&&t.length>=3||t.startsWith('\\"')&&t.length>=3)return t.charCodeAt(2);if(t.startsWith("+")&&(t=t.slice(1)),t.startsWith("0x")||t.startsWith("0X")){let n=parseInt(t,16);return Number.isNaN(n)?(nt=!0,0):(r&&(nt=!0),n)}if(t.startsWith("0")&&t.length>1&&/^-?0[0-7]+$/.test(t))return r&&(nt=!0),parseInt(t,8)||0;if(/^\d+#/.test(t)){nt=!0;let n=t.match(/^(\d+)#/);return n?parseInt(n[1],10):0}if(t!==""&&!/^-?\d+$/.test(t)){nt=!0;let n=parseInt(t,10);return Number.isNaN(n)?0:n}return r&&(nt=!0),parseInt(t,10)||0}function no(t,e){let r=t.match(/^%([- +#0']*)(\d*)(\.(\d*))?[diu]$/);if(!r)return qt(t.replace(/\.\d*/,""),e);let n=r[1]||"",s=r[2]?parseInt(r[2],10):0,i=r[3]!==void 0?r[4]?parseInt(r[4],10):0:-1,o=e<0,a=Math.abs(e),l=String(a);i>=0&&(l=l.padStart(i,"0"));let c="";o?c="-":n.includes("+")?c="+":n.includes(" ")&&(c=" ");let u=c+l;return s>u.length&&(n.includes("-")?u=u.padEnd(s," "):n.includes("0")&&i<0?u=c+l.padStart(s-c.length,"0"):u=u.padStart(s," ")),u}function Ld(t,e){let r=t.match(/^%([- +#0']*)(\d*)(\.(\d*))?o$/);if(!r)return qt(t,e);let n=r[1]||"",s=r[2]?parseInt(r[2],10):0,i=r[3]!==void 0?r[4]?parseInt(r[4],10):0:-1,o=Math.abs(e).toString(8);i>=0&&(o=o.padStart(i,"0")),n.includes("#")&&!o.startsWith("0")&&(o=`0${o}`);let a=o;return s>a.length&&(n.includes("-")?a=a.padEnd(s," "):n.includes("0")&&i<0?a=a.padStart(s,"0"):a=a.padStart(s," ")),a}function Md(t,e){let r=t.includes("X"),n=t.match(/^%([- +#0']*)(\d*)(\.(\d*))?[xX]$/);if(!n)return qt(t,e);let s=n[1]||"",i=n[2]?parseInt(n[2],10):0,o=n[3]!==void 0?n[4]?parseInt(n[4],10):0:-1,a=Math.abs(e).toString(16);r&&(a=a.toUpperCase()),o>=0&&(a=a.padStart(o,"0"));let l="";s.includes("#")&&e!==0&&(l=r?"0X":"0x");let c=l+a;return i>c.length&&(s.includes("-")?c=c.padEnd(i," "):s.includes("0")&&o<0?c=l+a.padStart(i-l.length,"0"):c=c.padStart(i," ")),c}function _d(t){if(t==="")return"''";if(/^[a-zA-Z0-9_./-]+$/.test(t))return t;if(/[\x00-\x1f\x7f]/.test(t)){let n="$'";for(let s of t){let i=s.charCodeAt(0);s==="'"?n+="\\'":s==="\\"?n+="\\\\":s===`
38
+ `?n+="\\n":s===" "?n+="\\t":s==="\r"?n+="\\r":s==="\x07"?n+="\\a":s==="\b"?n+="\\b":s==="\f"?n+="\\f":s==="\v"?n+="\\v":s==="\x1B"?n+="\\E":i<32||i>126?n+=`\\x${i.toString(16).padStart(2,"0")}`:s==='"'?n+='\\"':n+=s}return n+="'",n}let r="";for(let n of t)" |&;<>()$`\\\"'*?[#~=%!{}".includes(n)?r+=`\\${n}`:r+=n;return r}function Bd(t,e){let r=t.match(/^%(-?)(\d*)(\.(\d*))?s$/);if(!r)return qt(t.replace(/0+(?=\d)/,""),e);let n=r[1]==="-",s=r[2]?parseInt(r[2],10):0,i=r[3]!==void 0?r[4]?parseInt(r[4],10):0:-1,o=n?-s:s;return zr(e,o,i)}function Wd(t,e){let r=_d(e),n=t.match(/^%(-?)(\d*)q$/);if(!n)return r;let s=n[1]==="-",i=n[2]?parseInt(n[2],10):0,o=r;return i>o.length&&(s?o=o.padEnd(i," "):o=o.padStart(i," ")),o}function Ud(t,e,r){let n=t.match(/^%([- +#0']*)(\d*)(\.(\d*))?[eEfFgG]$/);if(!n)return qt(t,r);let s=n[1]||"",i=n[2]?parseInt(n[2],10):0,o=n[3]!==void 0?n[4]?parseInt(n[4],10):0:6,a,l=e.toLowerCase();if(l==="e"?(a=r.toExponential(o),a=a.replace(/e([+-])(\d)$/,"e$10$2"),e==="E"&&(a=a.toUpperCase())):l==="f"?(a=r.toFixed(o),s.includes("#")&&o===0&&!a.includes(".")&&(a+=".")):l==="g"?(a=r.toPrecision(o||1),s.includes("#")||(a=a.replace(/\.?0+$/,""),a=a.replace(/\.?0+e/,"e")),a=a.replace(/e([+-])(\d)$/,"e$10$2"),e==="G"&&(a=a.toUpperCase())):a=r.toString(),r>=0&&(s.includes("+")?a=`+${a}`:s.includes(" ")&&(a=` ${a}`)),i>a.length)if(s.includes("-"))a=a.padEnd(i," ");else if(s.includes("0")){let c=a.match(/^[+ -]/)?.[0]||"",u=c?a.slice(1):a;a=c+u.padStart(i-c.length,"0")}else a=a.padStart(i," ");return a}function zd(t){let e="",r=0;for(;r<t.length;)if(t[r]==="\\"&&r+1<t.length)switch(t[r+1]){case"n":e+=`
39
+ `,r+=2;break;case"t":e+=" ",r+=2;break;case"r":e+="\r",r+=2;break;case"\\":e+="\\",r+=2;break;case"a":e+="\x07",r+=2;break;case"b":e+="\b",r+=2;break;case"f":e+="\f",r+=2;break;case"v":e+="\v",r+=2;break;case"c":return{value:e,stopped:!0};case"x":{let s="",i=r+2;for(;i<t.length&&i<r+4&&/[0-9a-fA-F]/.test(t[i]);)s+=t[i],i++;s?(e+=String.fromCharCode(parseInt(s,16)),r=i):(e+="\\x",r+=2);break}case"u":{let s="",i=r+2;for(;i<t.length&&i<r+6&&/[0-9a-fA-F]/.test(t[i]);)s+=t[i],i++;s?(e+=String.fromCodePoint(parseInt(s,16)),r=i):(e+="\\u",r+=2);break}case"0":{let s="",i=r+2;for(;i<t.length&&i<r+5&&/[0-7]/.test(t[i]);)s+=t[i],i++;s?e+=String.fromCharCode(parseInt(s,8)):e+="\0",r=i;break}case"1":case"2":case"3":case"4":case"5":case"6":case"7":{let s="",i=r+1;for(;i<t.length&&i<r+4&&/[0-7]/.test(t[i]);)s+=t[i],i++;e+=String.fromCharCode(parseInt(s,8)),r=i;break}default:e+=t[r],r++}else e+=t[r],r++;return{value:e,stopped:!1}}var Fd,Td,nt,io=C(()=>{"use strict";rt();L();ts();Fd={name:"printf",summary:"format and print data",usage:"printf [-v var] FORMAT [ARGUMENT...]",options:[" -v var assign the output to shell variable VAR rather than display it"," --help display this help and exit"],notes:["FORMAT controls the output like in C printf.","Escape sequences: \\n (newline), \\t (tab), \\\\ (backslash)","Format specifiers: %s (string), %d (integer), %f (float), %x (hex), %o (octal), %% (literal %)","Width and precision: %10s (width 10), %.2f (2 decimal places), %010d (zero-padded)","Flags: %- (left-justify), %+ (show sign), %0 (zero-pad)"]},Td={name:"printf",async execute(t,e){if(N(t))return k(Fd);if(t.length===0)return{stdout:"",stderr:`printf: usage: printf format [arguments]
40
40
  `,exitCode:2};let r=null,n=0;for(;n<t.length;){let o=t[n];if(o==="--"){n++;break}if(o==="-v"){if(n+1>=t.length)return{stdout:"",stderr:`printf: -v: option requires an argument
41
41
  `,exitCode:1};if(r=t[n+1],!/^[a-zA-Z_][a-zA-Z0-9_]*(\[[^\]]+\])?$/.test(r))return{stdout:"",stderr:`printf: \`${r}': not a valid identifier
42
42
  `,exitCode:2};n+=2}else{if(o.startsWith("-")&&o!=="-")break;break}}if(n>=t.length)return{stdout:"",stderr:`printf: usage: printf format [arguments]
43
- `,exitCode:1};let s=t[n],i=t.slice(n+1);try{let o=Nr(s),a="",l=0,c=!1,u="";do{let{result:f,argsConsumed:p,error:d,errMsg:h,stopped:m}=fp(o,i,l);if(a+=f,l+=p,d&&(c=!0,h&&(u=h)),m)break}while(l<i.length&&l>0);return l===0&&i.length>0,r?(e.env[r]=a,{stdout:"",stderr:u,exitCode:c?1:0}):{stdout:a,stderr:u,exitCode:c?1:0}}catch(o){return{stdout:"",stderr:`printf: ${de(o)}
44
- `,exitCode:1}}}};Ve=!1});var zi={};R(zi,{lsCommand:()=>Sp});import{minimatch as Ui}from"minimatch";function vr(t){if(t<1024)return String(t);if(t<1024*1024){let r=t/1024;return r<10?`${r.toFixed(1)}K`:`${Math.round(r)}K`}if(t<1024*1024*1024){let r=t/1048576;return r<10?`${r.toFixed(1)}M`:`${Math.round(r)}M`}let e=t/(1024*1024*1024);return e<10?`${e.toFixed(1)}G`:`${Math.round(e)}G`}function $r(t){let r=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"][t.getMonth()],n=String(t.getDate()).padStart(2," "),s=new Date,i=new Date(s.getTime()-4320*60*60*1e3);if(t>i){let a=String(t.getHours()).padStart(2,"0"),l=String(t.getMinutes()).padStart(2,"0");return`${r} ${n} ${a}:${l}`}let o=t.getFullYear();return`${r} ${n} ${o}`}async function Cp(t,e,r,n,s,i=!1,o=!1,a=!1){let l=r||n,c=e.fs.getAllPaths(),u=e.fs.resolvePath(e.cwd,"."),f=[];for(let p of c){let d=p.startsWith(u)&&p.slice(u.length+1)||p;if(Ui(d,t)||Ui(p,t)){let h=d.split("/").pop()||d;if(!l&&h.startsWith("."))continue;f.push(d||p)}}if(f.length===0)return{stdout:"",stderr:`ls: ${t}: No such file or directory
45
- `,exitCode:2};if(a){let p=[];for(let d of f){let h=e.fs.resolvePath(e.cwd,d);try{let m=await e.fs.stat(h);p.push({path:d,size:m.size??0})}catch{p.push({path:d,size:0})}}p.sort((d,h)=>h.size-d.size),f.length=0,f.push(...p.map(d=>d.path))}else f.sort();if(i&&f.reverse(),s){let p=[];for(let d of f){let h=e.fs.resolvePath(e.cwd,d);try{let m=await e.fs.stat(h),g=m.isDirectory?"drwxr-xr-x":"-rw-r--r--",w=m.isDirectory?"/":"",E=m.size??0,b=o?vr(E).padStart(5):String(E).padStart(5),S=m.mtime??new Date(0),I=$r(S);p.push(`${g} 1 user user ${b} ${I} ${d}${w}`)}catch{p.push(`-rw-r--r-- 1 user user 0 Jan 1 00:00 ${d}`)}}return{stdout:`${p.join(`
43
+ `,exitCode:1};let s=t[n],i=t.slice(n+1);try{let o=jr(s),a="",l=0,c=!1,u="";do{let{result:f,argsConsumed:d,error:p,errMsg:h,stopped:m}=Od(o,i,l);if(a+=f,l+=d,p&&(c=!0,h&&(u=h)),m)break}while(l<i.length&&l>0);return l===0&&i.length>0,r?(e.env[r]=a,{stdout:"",stderr:u,exitCode:c?1:0}):{stdout:a,stderr:u,exitCode:c?1:0}}catch(o){return{stdout:"",stderr:`printf: ${he(o)}
44
+ `,exitCode:1}}}};nt=!1});var lo={};$(lo,{lsCommand:()=>Gd});import{minimatch as oo}from"minimatch";function Gr(t){if(t<1024)return String(t);if(t<1024*1024){let r=t/1024;return r<10?`${r.toFixed(1)}K`:`${Math.round(r)}K`}if(t<1024*1024*1024){let r=t/1048576;return r<10?`${r.toFixed(1)}M`:`${Math.round(r)}M`}let e=t/(1024*1024*1024);return e<10?`${e.toFixed(1)}G`:`${Math.round(e)}G`}function qr(t){let r=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"][t.getMonth()],n=String(t.getDate()).padStart(2," "),s=new Date,i=new Date(s.getTime()-4320*60*60*1e3);if(t>i){let a=String(t.getHours()).padStart(2,"0"),l=String(t.getMinutes()).padStart(2,"0");return`${r} ${n} ${a}:${l}`}let o=t.getFullYear();return`${r} ${n} ${o}`}async function qd(t,e,r,n,s,i=!1,o=!1,a=!1){let l=r||n,c=e.fs.getAllPaths(),u=e.fs.resolvePath(e.cwd,"."),f=[];for(let d of c){let p=d.startsWith(u)&&d.slice(u.length+1)||d;if(oo(p,t)||oo(d,t)){let h=p.split("/").pop()||p;if(!l&&h.startsWith("."))continue;f.push(p||d)}}if(f.length===0)return{stdout:"",stderr:`ls: ${t}: No such file or directory
45
+ `,exitCode:2};if(a){let d=[];for(let p of f){let h=e.fs.resolvePath(e.cwd,p);try{let m=await e.fs.stat(h);d.push({path:p,size:m.size??0})}catch{d.push({path:p,size:0})}}d.sort((p,h)=>h.size-p.size),f.length=0,f.push(...d.map(p=>p.path))}else f.sort();if(i&&f.reverse(),s){let d=[];for(let p of f){let h=e.fs.resolvePath(e.cwd,p);try{let m=await e.fs.stat(h),g=m.isDirectory?"drwxr-xr-x":"-rw-r--r--",w=m.isDirectory?"/":"",E=m.size??0,b=o?Gr(E).padStart(5):String(E).padStart(5),S=m.mtime??new Date(0),I=qr(S);d.push(`${g} 1 user user ${b} ${I} ${p}${w}`)}catch{d.push(`-rw-r--r-- 1 user user 0 Jan 1 00:00 ${p}`)}}return{stdout:`${d.join(`
46
46
  `)}
47
47
  `,stderr:"",exitCode:0}}return{stdout:`${f.join(`
48
48
  `)}
49
- `,stderr:"",exitCode:0}}async function ji(t,e,r,n,s,i,o,a=!1,l=!1,c=!1,u=!1){let f=r||n,p=e.fs.resolvePath(e.cwd,t);try{let d=await e.fs.stat(p);if(!d.isDirectory){if(s){let g=d.size??0,w=l?vr(g).padStart(5):String(g).padStart(5),E=d.mtime??new Date(0),b=$r(E);return{stdout:`-rw-r--r-- 1 user user ${w} ${b} ${t}
49
+ `,stderr:"",exitCode:0}}async function ao(t,e,r,n,s,i,o,a=!1,l=!1,c=!1,u=!1){let f=r||n,d=e.fs.resolvePath(e.cwd,t);try{let p=await e.fs.stat(d);if(!p.isDirectory){if(s){let g=p.size??0,w=l?Gr(g).padStart(5):String(g).padStart(5),E=p.mtime??new Date(0),b=qr(E);return{stdout:`-rw-r--r-- 1 user user ${w} ${b} ${t}
50
50
  `,stderr:"",exitCode:0}}return{stdout:`${t}
51
- `,stderr:"",exitCode:0}}let h=await e.fs.readdir(p);if(f||(h=h.filter(g=>!g.startsWith("."))),c){let g=[];for(let w of h){let E=p==="/"?`/${w}`:`${p}/${w}`;try{let b=await e.fs.stat(E);g.push({name:w,size:b.size??0})}catch{g.push({name:w,size:0})}}g.sort((w,E)=>E.size-w.size),h=g.map(w=>w.name)}else h.sort();r&&(h=[".","..",...h]),a&&h.reverse();let m="";if((i||o)&&(m+=`${t}:
51
+ `,stderr:"",exitCode:0}}let h=await e.fs.readdir(d);if(f||(h=h.filter(g=>!g.startsWith("."))),c){let g=[];for(let w of h){let E=d==="/"?`/${w}`:`${d}/${w}`;try{let b=await e.fs.stat(E);g.push({name:w,size:b.size??0})}catch{g.push({name:w,size:0})}}g.sort((w,E)=>E.size-w.size),h=g.map(w=>w.name)}else h.sort();r&&(h=[".","..",...h]),a&&h.reverse();let m="";if((i||o)&&(m+=`${t}:
52
52
  `),s){m+=`total ${h.length}
53
53
  `;let g=h.filter(S=>S==="."||S===".."),w=h.filter(S=>S!=="."&&S!=="..");for(let S of g)m+=`drwxr-xr-x 1 user user 0 Jan 1 00:00 ${S}
54
- `;let E=[];for(let S=0;S<w.length;S+=100){let I=w.slice(S,S+100),D=await Promise.all(I.map(async v=>{let $=p==="/"?`/${v}`:`${p}/${v}`;try{let V=await e.fs.stat($),K=V.isDirectory?"drwxr-xr-x":"-rw-r--r--",Y=V.isDirectory?"/":"",re=V.size??0,H=l?vr(re).padStart(5):String(re).padStart(5),ce=V.mtime??new Date(0),X=$r(ce);return{name:v,line:`${K} 1 user user ${H} ${X} ${v}${Y}
55
- `}}catch{return{name:v,line:`-rw-r--r-- 1 user user 0 Jan 1 00:00 ${v}
56
- `}}}));E.push(...D)}let b=new Map(w.map((S,I)=>[S,I]));E.sort((S,I)=>(b.get(S.name)??0)-(b.get(I.name)??0));for(let{line:S}of E)m+=S}else m+=h.join(`
54
+ `;let E=[];for(let S=0;S<w.length;S+=100){let I=w.slice(S,S+100),F=await Promise.all(I.map(async W=>{let j=d==="/"?`/${W}`:`${d}/${W}`;try{let pe=await e.fs.stat(j),te=pe.isDirectory?"drwxr-xr-x":"-rw-r--r--",Te=pe.isDirectory?"/":"",D=pe.size??0,_=l?Gr(D).padStart(5):String(D).padStart(5),G=pe.mtime??new Date(0),le=qr(G);return{name:W,line:`${te} 1 user user ${_} ${le} ${W}${Te}
55
+ `}}catch{return{name:W,line:`-rw-r--r-- 1 user user 0 Jan 1 00:00 ${W}
56
+ `}}}));E.push(...F)}let b=new Map(w.map((S,I)=>[S,I]));E.sort((S,I)=>(b.get(S.name)??0)-(b.get(I.name)??0));for(let{line:S}of E)m+=S}else m+=h.join(`
57
57
  `)+(h.length?`
58
- `:"");if(i){let g=h.filter(b=>b!=="."&&b!==".."),w=[];if(e.fs.readdirWithFileTypes)w=(await e.fs.readdirWithFileTypes(p)).filter(S=>S.isDirectory&&g.includes(S.name)).map(S=>({name:S.name,isDirectory:!0}));else for(let b=0;b<g.length;b+=100){let S=g.slice(b,b+100),I=await Promise.all(S.map(async D=>{let v=p==="/"?`/${D}`:`${p}/${D}`;try{let $=await e.fs.stat(v);return{name:D,isDirectory:$.isDirectory}}catch{return{name:D,isDirectory:!1}}}));w.push(...I.filter(D=>D.isDirectory))}w.sort((b,S)=>b.name.localeCompare(S.name)),a&&w.reverse();let E=[];for(let b=0;b<w.length;b+=100){let S=w.slice(b,b+100),I=await Promise.all(S.map(async D=>{let v=t==="."?`./${D.name}`:`${t}/${D.name}`,$=await ji(v,e,r,n,s,i,!1,a,l,c,!0);return{name:D.name,result:$}}));E.push(...I)}E.sort((b,S)=>b.name.localeCompare(S.name)),a&&E.reverse();for(let{result:b}of E)m+=`
58
+ `:"");if(i){let g=h.filter(b=>b!=="."&&b!==".."),w=[];if(e.fs.readdirWithFileTypes)w=(await e.fs.readdirWithFileTypes(d)).filter(S=>S.isDirectory&&g.includes(S.name)).map(S=>({name:S.name,isDirectory:!0}));else for(let b=0;b<g.length;b+=100){let S=g.slice(b,b+100),I=await Promise.all(S.map(async F=>{let W=d==="/"?`/${F}`:`${d}/${F}`;try{let j=await e.fs.stat(W);return{name:F,isDirectory:j.isDirectory}}catch{return{name:F,isDirectory:!1}}}));w.push(...I.filter(F=>F.isDirectory))}w.sort((b,S)=>b.name.localeCompare(S.name)),a&&w.reverse();let E=[];for(let b=0;b<w.length;b+=100){let S=w.slice(b,b+100),I=await Promise.all(S.map(async F=>{let W=t==="."?`./${F.name}`:`${t}/${F.name}`,j=await ao(W,e,r,n,s,i,!1,a,l,c,!0);return{name:F.name,result:j}}));E.push(...I)}E.sort((b,S)=>b.name.localeCompare(S.name)),a&&E.reverse();for(let{result:b}of E)m+=`
59
59
  `,m+=b.stdout}return{stdout:m,stderr:"",exitCode:0}}catch{return{stdout:"",stderr:`ls: ${t}: No such file or directory
60
- `,exitCode:2}}}var Ep,bp,Sp,Hi=C(()=>{"use strict";ye();ht();L();Ep={name:"ls",summary:"list directory contents",usage:"ls [OPTION]... [FILE]...",options:["-a, --all do not ignore entries starting with .","-A, --almost-all do not list . and ..","-d, --directory list directories themselves, not their contents","-h, --human-readable with -l, print sizes like 1K 234M 2G etc.","-l use a long listing format","-r, --reverse reverse order while sorting","-R, --recursive list subdirectories recursively","-S sort by file size, largest first","-t sort by time, newest first","-1 list one file per line"," --help display this help and exit"]},bp={showAll:{short:"a",long:"all",type:"boolean"},showAlmostAll:{short:"A",long:"almost-all",type:"boolean"},longFormat:{short:"l",type:"boolean"},humanReadable:{short:"h",long:"human-readable",type:"boolean"},recursive:{short:"R",long:"recursive",type:"boolean"},reverse:{short:"r",long:"reverse",type:"boolean"},sortBySize:{short:"S",type:"boolean"},directoryOnly:{short:"d",long:"directory",type:"boolean"},sortByTime:{short:"t",type:"boolean"},onePerLine:{short:"1",type:"boolean"}},Sp={name:"ls",async execute(t,e){if(N(t))return k(Ep);let r=z("ls",t,bp);if(!r.ok)return r.error;let n=r.result.flags.showAll,s=r.result.flags.showAlmostAll,i=r.result.flags.longFormat,o=r.result.flags.humanReadable,a=r.result.flags.recursive,l=r.result.flags.reverse,c=r.result.flags.sortBySize,u=r.result.flags.directoryOnly,f=r.result.flags.sortByTime;r.result.flags.onePerLine;let p=r.result.positional;p.length===0&&p.push(".");let d="",h="",m=0;for(let g=0;g<p.length;g++){let w=p[g];if(g>0&&d&&!d.endsWith(`
60
+ `,exitCode:2}}}var jd,Hd,Gd,co=C(()=>{"use strict";Ee();Ht();L();jd={name:"ls",summary:"list directory contents",usage:"ls [OPTION]... [FILE]...",options:["-a, --all do not ignore entries starting with .","-A, --almost-all do not list . and ..","-d, --directory list directories themselves, not their contents","-h, --human-readable with -l, print sizes like 1K 234M 2G etc.","-l use a long listing format","-r, --reverse reverse order while sorting","-R, --recursive list subdirectories recursively","-S sort by file size, largest first","-t sort by time, newest first","-1 list one file per line"," --help display this help and exit"]},Hd={showAll:{short:"a",long:"all",type:"boolean"},showAlmostAll:{short:"A",long:"almost-all",type:"boolean"},longFormat:{short:"l",type:"boolean"},humanReadable:{short:"h",long:"human-readable",type:"boolean"},recursive:{short:"R",long:"recursive",type:"boolean"},reverse:{short:"r",long:"reverse",type:"boolean"},sortBySize:{short:"S",type:"boolean"},directoryOnly:{short:"d",long:"directory",type:"boolean"},sortByTime:{short:"t",type:"boolean"},onePerLine:{short:"1",type:"boolean"}},Gd={name:"ls",async execute(t,e){if(N(t))return k(jd);let r=H("ls",t,Hd);if(!r.ok)return r.error;let n=r.result.flags.showAll,s=r.result.flags.showAlmostAll,i=r.result.flags.longFormat,o=r.result.flags.humanReadable,a=r.result.flags.recursive,l=r.result.flags.reverse,c=r.result.flags.sortBySize,u=r.result.flags.directoryOnly,f=r.result.flags.sortByTime;r.result.flags.onePerLine;let d=r.result.positional;d.length===0&&d.push(".");let p="",h="",m=0;for(let g=0;g<d.length;g++){let w=d[g];if(g>0&&p&&!p.endsWith(`
61
61
 
62
- `)&&(d+=`
63
- `),u){let E=e.fs.resolvePath(e.cwd,w);try{let b=await e.fs.stat(E);if(i){let S=b.isDirectory?"drwxr-xr-x":"-rw-r--r--",I=b.isDirectory?"/":"",D=b.size??0,v=o?vr(D).padStart(5):String(D).padStart(5),$=b.mtime??new Date(0),V=$r($);d+=`${S} 1 user user ${v} ${V} ${w}${I}
64
- `}else d+=`${w}
62
+ `)&&(p+=`
63
+ `),u){let E=e.fs.resolvePath(e.cwd,w);try{let b=await e.fs.stat(E);if(i){let S=b.isDirectory?"drwxr-xr-x":"-rw-r--r--",I=b.isDirectory?"/":"",F=b.size??0,W=o?Gr(F).padStart(5):String(F).padStart(5),j=b.mtime??new Date(0),pe=qr(j);p+=`${S} 1 user user ${W} ${pe} ${w}${I}
64
+ `}else p+=`${w}
65
65
  `}catch{h+=`ls: cannot access '${w}': No such file or directory
66
- `,m=2}continue}if(w.includes("*")||w.includes("?")||w.includes("[")){let E=await Cp(w,e,n,s,i,l,o,c);d+=E.stdout,h+=E.stderr,E.exitCode!==0&&(m=E.exitCode)}else{let E=await ji(w,e,n,s,i,a,p.length>1,l,o,c);d+=E.stdout,h+=E.stderr,E.exitCode!==0&&(m=E.exitCode)}}return{stdout:d,stderr:h,exitCode:m}}}});var Gi={};R(Gi,{mkdirCommand:()=>kp});var Ap,kp,qi=C(()=>{"use strict";qe();ye();Ap={recursive:{short:"p",long:"parents",type:"boolean"},verbose:{short:"v",long:"verbose",type:"boolean"}},kp={name:"mkdir",async execute(t,e){let r=z("mkdir",t,Ap);if(!r.ok)return r.error;let n=r.result.flags.recursive,s=r.result.flags.verbose,i=r.result.positional;if(i.length===0)return{stdout:"",stderr:`mkdir: missing operand
66
+ `,m=2}continue}if(w.includes("*")||w.includes("?")||w.includes("[")){let E=await qd(w,e,n,s,i,l,o,c);p+=E.stdout,h+=E.stderr,E.exitCode!==0&&(m=E.exitCode)}else{let E=await ao(w,e,n,s,i,a,d.length>1,l,o,c);p+=E.stdout,h+=E.stderr,E.exitCode!==0&&(m=E.exitCode)}}return{stdout:p,stderr:h,exitCode:m}}}});var uo={};$(uo,{mkdirCommand:()=>Kd});var Vd,Kd,fo=C(()=>{"use strict";rt();Ee();Vd={recursive:{short:"p",long:"parents",type:"boolean"},verbose:{short:"v",long:"verbose",type:"boolean"}},Kd={name:"mkdir",async execute(t,e){let r=H("mkdir",t,Vd);if(!r.ok)return r.error;let n=r.result.flags.recursive,s=r.result.flags.verbose,i=r.result.positional;if(i.length===0)return{stdout:"",stderr:`mkdir: missing operand
67
67
  `,exitCode:1};let o="",a="",l=0;for(let c of i)try{let u=e.fs.resolvePath(e.cwd,c);await e.fs.mkdir(u,{recursive:n}),s&&(o+=`mkdir: created directory '${c}'
68
- `)}catch(u){let f=de(u);f.includes("ENOENT")||f.includes("no such file")?a+=`mkdir: cannot create directory '${c}': No such file or directory
68
+ `)}catch(u){let f=he(u);f.includes("ENOENT")||f.includes("no such file")?a+=`mkdir: cannot create directory '${c}': No such file or directory
69
69
  `:f.includes("EEXIST")||f.includes("already exists")?a+=`mkdir: cannot create directory '${c}': File exists
70
70
  `:a+=`mkdir: cannot create directory '${c}': ${f}
71
- `,l=1}return{stdout:o,stderr:a,exitCode:l}}}});var Vi={};R(Vi,{touchCommand:()=>Np});var Np,Ki=C(()=>{"use strict";qe();L();Np={name:"touch",async execute(t,e){let r=[];for(let i of t){if(i.startsWith("--"))return P("touch",i);if(i.startsWith("-")&&i.length>1)return P("touch",i);r.push(i)}if(r.length===0)return{stdout:"",stderr:`touch: missing file operand
72
- `,exitCode:1};let n="",s=0;for(let i of r)try{let o=e.fs.resolvePath(e.cwd,i);await e.fs.exists(o)||await e.fs.writeFile(o,"")}catch(o){n+=`touch: cannot touch '${i}': ${de(o)}
73
- `,s=1}return{stdout:"",stderr:n,exitCode:s}}}});var Zi={};R(Zi,{rmCommand:()=>vp});var Ip,vp,Qi=C(()=>{"use strict";qe();ye();Ip={recursive:{short:"r",long:"recursive",type:"boolean"},recursiveUpper:{short:"R",type:"boolean"},force:{short:"f",long:"force",type:"boolean"},verbose:{short:"v",long:"verbose",type:"boolean"}},vp={name:"rm",async execute(t,e){let r=z("rm",t,Ip);if(!r.ok)return r.error;let n=r.result.flags.recursive||r.result.flags.recursiveUpper,s=r.result.flags.force,i=r.result.flags.verbose,o=r.result.positional;if(o.length===0)return s?{stdout:"",stderr:"",exitCode:0}:{stdout:"",stderr:`rm: missing operand
71
+ `,l=1}return{stdout:o,stderr:a,exitCode:l}}}});var po={};$(po,{touchCommand:()=>Zd});var Zd,ho=C(()=>{"use strict";rt();L();Zd={name:"touch",async execute(t,e){let r=[];for(let i of t){if(i.startsWith("--"))return R("touch",i);if(i.startsWith("-")&&i.length>1)return R("touch",i);r.push(i)}if(r.length===0)return{stdout:"",stderr:`touch: missing file operand
72
+ `,exitCode:1};let n="",s=0;for(let i of r)try{let o=e.fs.resolvePath(e.cwd,i);await e.fs.exists(o)||await e.fs.writeFile(o,"")}catch(o){n+=`touch: cannot touch '${i}': ${he(o)}
73
+ `,s=1}return{stdout:"",stderr:n,exitCode:s}}}});var mo={};$(mo,{rmCommand:()=>Xd});var Qd,Xd,go=C(()=>{"use strict";rt();Ee();Qd={recursive:{short:"r",long:"recursive",type:"boolean"},recursiveUpper:{short:"R",type:"boolean"},force:{short:"f",long:"force",type:"boolean"},verbose:{short:"v",long:"verbose",type:"boolean"}},Xd={name:"rm",async execute(t,e){let r=H("rm",t,Qd);if(!r.ok)return r.error;let n=r.result.flags.recursive||r.result.flags.recursiveUpper,s=r.result.flags.force,i=r.result.flags.verbose,o=r.result.positional;if(o.length===0)return s?{stdout:"",stderr:"",exitCode:0}:{stdout:"",stderr:`rm: missing operand
74
74
  `,exitCode:1};let a="",l="",c=0;for(let u of o)try{let f=e.fs.resolvePath(e.cwd,u);if((await e.fs.stat(f)).isDirectory&&!n){l+=`rm: cannot remove '${u}': Is a directory
75
75
  `,c=1;continue}await e.fs.rm(f,{recursive:n,force:s}),i&&(a+=`removed '${u}'
76
- `)}catch(f){if(!s){let p=de(f);p.includes("ENOENT")||p.includes("no such file")?l+=`rm: cannot remove '${u}': No such file or directory
77
- `:p.includes("ENOTEMPTY")||p.includes("not empty")?l+=`rm: cannot remove '${u}': Directory not empty
78
- `:l+=`rm: cannot remove '${u}': ${p}
79
- `,c=1}}return{stdout:a,stderr:l,exitCode:c}}}});var Xi={};R(Xi,{cpCommand:()=>Pp});var $p,Rp,Pp,Ji=C(()=>{"use strict";qe();ye();L();$p={name:"cp",summary:"copy files and directories",usage:"cp [OPTION]... SOURCE... DEST",options:["-r, -R, --recursive copy directories recursively","-n, --no-clobber do not overwrite an existing file","-p, --preserve preserve file attributes","-v, --verbose explain what is being done"," --help display this help and exit"]},Rp={recursive:{short:"r",long:"recursive",type:"boolean"},recursiveUpper:{short:"R",type:"boolean"},noClobber:{short:"n",long:"no-clobber",type:"boolean"},preserve:{short:"p",long:"preserve",type:"boolean"},verbose:{short:"v",long:"verbose",type:"boolean"}},Pp={name:"cp",async execute(t,e){if(N(t))return k($p);let r=z("cp",t,Rp);if(!r.ok)return r.error;let n=r.result.flags.recursive||r.result.flags.recursiveUpper,s=r.result.flags.noClobber,i=r.result.flags.preserve,o=r.result.flags.verbose,a=r.result.positional;if(a.length<2)return{stdout:"",stderr:`cp: missing destination file operand
80
- `,exitCode:1};let l=a.pop()??"",c=a,u=e.fs.resolvePath(e.cwd,l),f="",p="",d=0,h=!1;try{h=(await e.fs.stat(u)).isDirectory}catch{}if(c.length>1&&!h)return{stdout:"",stderr:`cp: target '${l}' is not a directory
81
- `,exitCode:1};for(let m of c)try{let g=e.fs.resolvePath(e.cwd,m),w=await e.fs.stat(g),E=u;if(h){let b=m.split("/").pop()||m;E=u==="/"?`/${b}`:`${u}/${b}`}if(w.isDirectory&&!n){p+=`cp: -r not specified; omitting directory '${m}'
82
- `,d=1;continue}if(s)try{await e.fs.stat(E);continue}catch{}await e.fs.cp(g,E,{recursive:n}),o&&(f+=`'${m}' -> '${E}'
83
- `)}catch(g){let w=de(g);w.includes("ENOENT")||w.includes("no such file")?p+=`cp: cannot stat '${m}': No such file or directory
84
- `:p+=`cp: cannot copy '${m}': ${w}
85
- `,d=1}return{stdout:f,stderr:p,exitCode:d}}}});var Yi={};R(Yi,{mvCommand:()=>Tp});var Fp,Op,Tp,eo=C(()=>{"use strict";qe();ye();L();Fp={name:"mv",summary:"move (rename) files",usage:"mv [OPTION]... SOURCE... DEST",options:["-f, --force do not prompt before overwriting","-n, --no-clobber do not overwrite an existing file","-v, --verbose explain what is being done"," --help display this help and exit"]},Op={force:{short:"f",long:"force",type:"boolean"},noClobber:{short:"n",long:"no-clobber",type:"boolean"},verbose:{short:"v",long:"verbose",type:"boolean"}},Tp={name:"mv",async execute(t,e){if(N(t))return k(Fp);let r=z("mv",t,Op);if(!r.ok)return r.error;let n=r.result.flags.force,s=r.result.flags.noClobber,i=r.result.flags.verbose,o=r.result.positional;if(s&&(n=!1),o.length<2)return{stdout:"",stderr:`mv: missing destination file operand
86
- `,exitCode:1};let a=o.pop()??"",l=o,c=e.fs.resolvePath(e.cwd,a),u="",f="",p=0,d=!1;try{d=(await e.fs.stat(c)).isDirectory}catch{}if(l.length>1&&!d)return{stdout:"",stderr:`mv: target '${a}' is not a directory
87
- `,exitCode:1};for(let h of l)try{let m=e.fs.resolvePath(e.cwd,h),g=c;if(d){let w=h.split("/").pop()||h;g=c==="/"?`/${w}`:`${c}/${w}`}if(s)try{await e.fs.stat(g);continue}catch{}if(await e.fs.mv(m,g),i){let w=d?`${a}/${h.split("/").pop()||h}`:a;u+=`renamed '${h}' -> '${w}'
88
- `}}catch(m){let g=de(m);g.includes("ENOENT")||g.includes("no such file")?f+=`mv: cannot stat '${h}': No such file or directory
76
+ `)}catch(f){if(!s){let d=he(f);d.includes("ENOENT")||d.includes("no such file")?l+=`rm: cannot remove '${u}': No such file or directory
77
+ `:d.includes("ENOTEMPTY")||d.includes("not empty")?l+=`rm: cannot remove '${u}': Directory not empty
78
+ `:l+=`rm: cannot remove '${u}': ${d}
79
+ `,c=1}}return{stdout:a,stderr:l,exitCode:c}}}});var yo={};$(yo,{cpCommand:()=>ep});var Jd,Yd,ep,xo=C(()=>{"use strict";rt();Ee();L();Jd={name:"cp",summary:"copy files and directories",usage:"cp [OPTION]... SOURCE... DEST",options:["-r, -R, --recursive copy directories recursively","-n, --no-clobber do not overwrite an existing file","-p, --preserve preserve file attributes","-v, --verbose explain what is being done"," --help display this help and exit"]},Yd={recursive:{short:"r",long:"recursive",type:"boolean"},recursiveUpper:{short:"R",type:"boolean"},noClobber:{short:"n",long:"no-clobber",type:"boolean"},preserve:{short:"p",long:"preserve",type:"boolean"},verbose:{short:"v",long:"verbose",type:"boolean"}},ep={name:"cp",async execute(t,e){if(N(t))return k(Jd);let r=H("cp",t,Yd);if(!r.ok)return r.error;let n=r.result.flags.recursive||r.result.flags.recursiveUpper,s=r.result.flags.noClobber,i=r.result.flags.preserve,o=r.result.flags.verbose,a=r.result.positional;if(a.length<2)return{stdout:"",stderr:`cp: missing destination file operand
80
+ `,exitCode:1};let l=a.pop()??"",c=a,u=e.fs.resolvePath(e.cwd,l),f="",d="",p=0,h=!1;try{h=(await e.fs.stat(u)).isDirectory}catch{}if(c.length>1&&!h)return{stdout:"",stderr:`cp: target '${l}' is not a directory
81
+ `,exitCode:1};for(let m of c)try{let g=e.fs.resolvePath(e.cwd,m),w=await e.fs.stat(g),E=u;if(h){let b=m.split("/").pop()||m;E=u==="/"?`/${b}`:`${u}/${b}`}if(w.isDirectory&&!n){d+=`cp: -r not specified; omitting directory '${m}'
82
+ `,p=1;continue}if(s)try{await e.fs.stat(E);continue}catch{}await e.fs.cp(g,E,{recursive:n}),o&&(f+=`'${m}' -> '${E}'
83
+ `)}catch(g){let w=he(g);w.includes("ENOENT")||w.includes("no such file")?d+=`cp: cannot stat '${m}': No such file or directory
84
+ `:d+=`cp: cannot copy '${m}': ${w}
85
+ `,p=1}return{stdout:f,stderr:d,exitCode:p}}}});var wo={};$(wo,{mvCommand:()=>np});var tp,rp,np,Eo=C(()=>{"use strict";rt();Ee();L();tp={name:"mv",summary:"move (rename) files",usage:"mv [OPTION]... SOURCE... DEST",options:["-f, --force do not prompt before overwriting","-n, --no-clobber do not overwrite an existing file","-v, --verbose explain what is being done"," --help display this help and exit"]},rp={force:{short:"f",long:"force",type:"boolean"},noClobber:{short:"n",long:"no-clobber",type:"boolean"},verbose:{short:"v",long:"verbose",type:"boolean"}},np={name:"mv",async execute(t,e){if(N(t))return k(tp);let r=H("mv",t,rp);if(!r.ok)return r.error;let n=r.result.flags.force,s=r.result.flags.noClobber,i=r.result.flags.verbose,o=r.result.positional;if(s&&(n=!1),o.length<2)return{stdout:"",stderr:`mv: missing destination file operand
86
+ `,exitCode:1};let a=o.pop()??"",l=o,c=e.fs.resolvePath(e.cwd,a),u="",f="",d=0,p=!1;try{p=(await e.fs.stat(c)).isDirectory}catch{}if(l.length>1&&!p)return{stdout:"",stderr:`mv: target '${a}' is not a directory
87
+ `,exitCode:1};for(let h of l)try{let m=e.fs.resolvePath(e.cwd,h),g=c;if(p){let w=h.split("/").pop()||h;g=c==="/"?`/${w}`:`${c}/${w}`}if(s)try{await e.fs.stat(g);continue}catch{}if(await e.fs.mv(m,g),i){let w=p?`${a}/${h.split("/").pop()||h}`:a;u+=`renamed '${h}' -> '${w}'
88
+ `}}catch(m){let g=he(m);g.includes("ENOENT")||g.includes("no such file")?f+=`mv: cannot stat '${h}': No such file or directory
89
89
  `:f+=`mv: cannot move '${h}': ${g}
90
- `,p=1}return{stdout:u,stderr:f,exitCode:p}}}});var to={};R(to,{lnCommand:()=>Lp});var Dp,Lp,ro=C(()=>{"use strict";L();Dp={name:"ln",summary:"make links between files",usage:"ln [OPTIONS] TARGET LINK_NAME",options:["-s create a symbolic link instead of a hard link","-f remove existing destination files","-n treat LINK_NAME as a normal file if it is a symbolic link to a directory","-v print name of each linked file"," --help display this help and exit"]},Lp={name:"ln",async execute(t,e){if(N(t))return k(Dp);let r=!1,n=!1,s=!1,i=0;for(;i<t.length&&t[i].startsWith("-");){let f=t[i];if(f==="-s"||f==="--symbolic")r=!0,i++;else if(f==="-f"||f==="--force")n=!0,i++;else if(f==="-v"||f==="--verbose")s=!0,i++;else if(f==="-n"||f==="--no-dereference")i++;else if(/^-[sfvn]+$/.test(f))f.includes("s")&&(r=!0),f.includes("f")&&(n=!0),f.includes("v")&&(s=!0),i++;else if(f==="--"){i++;break}else return{stdout:"",stderr:`ln: invalid option -- '${f.slice(1)}'
90
+ `,d=1}return{stdout:u,stderr:f,exitCode:d}}}});var bo={};$(bo,{lnCommand:()=>ip});var sp,ip,So=C(()=>{"use strict";L();sp={name:"ln",summary:"make links between files",usage:"ln [OPTIONS] TARGET LINK_NAME",options:["-s create a symbolic link instead of a hard link","-f remove existing destination files","-n treat LINK_NAME as a normal file if it is a symbolic link to a directory","-v print name of each linked file"," --help display this help and exit"]},ip={name:"ln",async execute(t,e){if(N(t))return k(sp);let r=!1,n=!1,s=!1,i=0;for(;i<t.length&&t[i].startsWith("-");){let f=t[i];if(f==="-s"||f==="--symbolic")r=!0,i++;else if(f==="-f"||f==="--force")n=!0,i++;else if(f==="-v"||f==="--verbose")s=!0,i++;else if(f==="-n"||f==="--no-dereference")i++;else if(/^-[sfvn]+$/.test(f))f.includes("s")&&(r=!0),f.includes("f")&&(n=!0),f.includes("v")&&(s=!0),i++;else if(f==="--"){i++;break}else return{stdout:"",stderr:`ln: invalid option -- '${f.slice(1)}'
91
91
  `,exitCode:1}}let o=t.slice(i);if(o.length<2)return{stdout:"",stderr:`ln: missing file operand
92
92
  `,exitCode:1};let a=o[0],l=o[1],c=e.fs.resolvePath(e.cwd,l);if(await e.fs.exists(c))if(n)try{await e.fs.rm(c,{force:!0})}catch{return{stdout:"",stderr:`ln: cannot remove '${l}': Permission denied
93
93
  `,exitCode:1}}else return{stdout:"",stderr:`ln: failed to create ${r?"symbolic ":""}link '${l}': File exists
94
94
  `,exitCode:1};try{if(r)await e.fs.symlink(a,c);else{let f=e.fs.resolvePath(e.cwd,a);if(!await e.fs.exists(f))return{stdout:"",stderr:`ln: failed to access '${a}': No such file or directory
95
- `,exitCode:1};await e.fs.link(f,c)}}catch(f){let p=f;return p.message.includes("EPERM")?{stdout:"",stderr:`ln: '${a}': hard link not allowed for directory
96
- `,exitCode:1}:{stdout:"",stderr:`ln: ${p.message}
95
+ `,exitCode:1};await e.fs.link(f,c)}}catch(f){let d=f;return d.message.includes("EPERM")?{stdout:"",stderr:`ln: '${a}': hard link not allowed for directory
96
+ `,exitCode:1}:{stdout:"",stderr:`ln: ${d.message}
97
97
  `,exitCode:1}}let u="";return s&&(u=`'${l}' -> '${a}'
98
- `),{stdout:u,stderr:"",exitCode:0}}}});var so={};R(so,{chmodCommand:()=>_p});async function no(t,e,r,n){let s="",i=await t.fs.readdir(e);for(let o of i){let a=e==="/"?`/${o}`:`${e}/${o}`;await t.fs.chmod(a,r),n&&(s+=`mode of '${a}' changed to ${r.toString(8).padStart(4,"0")}
99
- `),(await t.fs.stat(a)).isDirectory&&(s+=await no(t,a,r,n))}return s}function Bp(t){if(/^[0-7]+$/.test(t))return parseInt(t,8);let e=420,r=t.split(",");for(let n of r){let s=n.match(/^([ugoa]*)([+\-=])([rwxXst]*)$/);if(!s)throw new Error(`Invalid mode: ${t}`);let i=s[1]||"a",o=s[2],a=s[3];(i==="a"||i==="")&&(i="ugo");let l=0;a.includes("r")&&(l|=4),a.includes("w")&&(l|=2),(a.includes("x")||a.includes("X"))&&(l|=1);for(let c of i){let u=0;c==="u"?u=6:c==="g"?u=3:c==="o"&&(u=0);let f=l<<u;o==="+"?e|=f:o==="-"?e&=~f:o==="="&&(e&=~(7<<u),e|=f)}}return e}var Mp,_p,io=C(()=>{"use strict";L();Mp={name:"chmod",summary:"change file mode bits",usage:"chmod [OPTIONS] MODE FILE...",options:["-R change files recursively","-v output a diagnostic for every file processed"," --help display this help and exit"]},_p={name:"chmod",async execute(t,e){if(N(t))return k(Mp);if(t.length<2)return{stdout:"",stderr:`chmod: missing operand
98
+ `),{stdout:u,stderr:"",exitCode:0}}}});var Ao={};$(Ao,{chmodCommand:()=>ap});async function Co(t,e,r,n){let s="",i=await t.fs.readdir(e);for(let o of i){let a=e==="/"?`/${o}`:`${e}/${o}`;await t.fs.chmod(a,r),n&&(s+=`mode of '${a}' changed to ${r.toString(8).padStart(4,"0")}
99
+ `),(await t.fs.stat(a)).isDirectory&&(s+=await Co(t,a,r,n))}return s}function lp(t){if(/^[0-7]+$/.test(t))return parseInt(t,8);let e=420,r=t.split(",");for(let n of r){let s=n.match(/^([ugoa]*)([+\-=])([rwxXst]*)$/);if(!s)throw new Error(`Invalid mode: ${t}`);let i=s[1]||"a",o=s[2],a=s[3];(i==="a"||i==="")&&(i="ugo");let l=0;a.includes("r")&&(l|=4),a.includes("w")&&(l|=2),(a.includes("x")||a.includes("X"))&&(l|=1);for(let c of i){let u=0;c==="u"?u=6:c==="g"?u=3:c==="o"&&(u=0);let f=l<<u;o==="+"?e|=f:o==="-"?e&=~f:o==="="&&(e&=~(7<<u),e|=f)}}return e}var op,ap,ko=C(()=>{"use strict";L();op={name:"chmod",summary:"change file mode bits",usage:"chmod [OPTIONS] MODE FILE...",options:["-R change files recursively","-v output a diagnostic for every file processed"," --help display this help and exit"]},ap={name:"chmod",async execute(t,e){if(N(t))return k(op);if(t.length<2)return{stdout:"",stderr:`chmod: missing operand
100
100
  `,exitCode:1};let r=!1,n=!1,s=0;for(;s<t.length&&t[s].startsWith("-");){let f=t[s];if(f==="-R"||f==="--recursive")r=!0,s++;else if(f==="-v"||f==="--verbose")n=!0,s++;else if(f==="--"){s++;break}else{if(/^[+-]?[rwxugo]+/.test(f)||/^\d+$/.test(f))break;if(/^-[Rv]+$/.test(f)){f.includes("R")&&(r=!0),f.includes("v")&&(n=!0),s++;continue}return{stdout:"",stderr:`chmod: invalid option -- '${f.slice(1)}'
101
101
  `,exitCode:1}}}if(t.length-s<2)return{stdout:"",stderr:`chmod: missing operand
102
- `,exitCode:1};let i=t[s],o=t.slice(s+1),a;try{a=Bp(i)}catch{return{stdout:"",stderr:`chmod: invalid mode: '${i}'
103
- `,exitCode:1}}let l="",c="",u=!1;for(let f of o){let p=e.fs.resolvePath(e.cwd,f);try{if(await e.fs.chmod(p,a),n&&(l+=`mode of '${f}' changed to ${a.toString(8).padStart(4,"0")}
104
- `),r&&(await e.fs.stat(p)).isDirectory){let h=await no(e,p,a,n);l+=h}}catch{c+=`chmod: cannot access '${f}': No such file or directory
105
- `,u=!0}}return{stdout:l,stderr:c,exitCode:u?1:0}}}});var oo={};R(oo,{pwdCommand:()=>Wp});var Wp,ao=C(()=>{"use strict";Wp={name:"pwd",async execute(t,e){return{stdout:`${e.cwd}
106
- `,stderr:"",exitCode:0}}}});var lo={};R(lo,{readlinkCommand:()=>jp});var Up,jp,co=C(()=>{"use strict";L();Up={name:"readlink",summary:"print resolved symbolic links or canonical file names",usage:"readlink [OPTIONS] FILE...",options:["-f canonicalize by following every symlink in every component of the given name recursively"," --help display this help and exit"]},jp={name:"readlink",async execute(t,e){if(N(t))return k(Up);let r=!1,n=0;for(;n<t.length&&t[n].startsWith("-");){let a=t[n];if(a==="-f"||a==="--canonicalize")r=!0,n++;else if(a==="--"){n++;break}else return{stdout:"",stderr:`readlink: invalid option -- '${a.slice(1)}'
102
+ `,exitCode:1};let i=t[s],o=t.slice(s+1),a;try{a=lp(i)}catch{return{stdout:"",stderr:`chmod: invalid mode: '${i}'
103
+ `,exitCode:1}}let l="",c="",u=!1;for(let f of o){let d=e.fs.resolvePath(e.cwd,f);try{if(await e.fs.chmod(d,a),n&&(l+=`mode of '${f}' changed to ${a.toString(8).padStart(4,"0")}
104
+ `),r&&(await e.fs.stat(d)).isDirectory){let h=await Co(e,d,a,n);l+=h}}catch{c+=`chmod: cannot access '${f}': No such file or directory
105
+ `,u=!0}}return{stdout:l,stderr:c,exitCode:u?1:0}}}});var No={};$(No,{pwdCommand:()=>cp});var cp,Io=C(()=>{"use strict";cp={name:"pwd",async execute(t,e){return{stdout:`${e.cwd}
106
+ `,stderr:"",exitCode:0}}}});var vo={};$(vo,{readlinkCommand:()=>fp});var up,fp,$o=C(()=>{"use strict";L();up={name:"readlink",summary:"print resolved symbolic links or canonical file names",usage:"readlink [OPTIONS] FILE...",options:["-f canonicalize by following every symlink in every component of the given name recursively"," --help display this help and exit"]},fp={name:"readlink",async execute(t,e){if(N(t))return k(up);let r=!1,n=0;for(;n<t.length&&t[n].startsWith("-");){let a=t[n];if(a==="-f"||a==="--canonicalize")r=!0,n++;else if(a==="--"){n++;break}else return{stdout:"",stderr:`readlink: invalid option -- '${a.slice(1)}'
107
107
  `,exitCode:1}}let s=t.slice(n);if(s.length===0)return{stdout:"",stderr:`readlink: missing operand
108
- `,exitCode:1};let i="",o=!1;for(let a of s){let l=e.fs.resolvePath(e.cwd,a);try{if(r){let c=l,u=new Set;for(;!u.has(c);){u.add(c);try{let f=await e.fs.readlink(c);if(f.startsWith("/"))c=f;else{let p=c.substring(0,c.lastIndexOf("/"))||"/";c=e.fs.resolvePath(p,f)}}catch{break}}i+=`${c}
108
+ `,exitCode:1};let i="",o=!1;for(let a of s){let l=e.fs.resolvePath(e.cwd,a);try{if(r){let c=l,u=new Set;for(;!u.has(c);){u.add(c);try{let f=await e.fs.readlink(c);if(f.startsWith("/"))c=f;else{let d=c.substring(0,c.lastIndexOf("/"))||"/";c=e.fs.resolvePath(d,f)}}catch{break}}i+=`${c}
109
109
  `}else{let c=await e.fs.readlink(l);i+=`${c}
110
110
  `}}catch{r?i+=`${l}
111
- `:o=!0}}return{stdout:i,stderr:"",exitCode:o?1:0}}}});function Rr(t,e){let r=10,n=null,s=!1,i=!1,o=!1,a=[];for(let l=0;l<t.length;l++){let c=t[l];if(c==="-n"&&l+1<t.length){let u=t[++l];e==="tail"&&u.startsWith("+")?(o=!0,r=parseInt(u.slice(1),10)):r=parseInt(u,10)}else if(e==="tail"&&c.startsWith("-n+"))o=!0,r=parseInt(c.slice(3),10);else if(c.startsWith("-n"))r=parseInt(c.slice(2),10);else if(c==="-c"&&l+1<t.length)n=parseInt(t[++l],10);else if(c.startsWith("-c"))n=parseInt(c.slice(2),10);else if(c.startsWith("--bytes="))n=parseInt(c.slice(8),10);else if(c.startsWith("--lines="))r=parseInt(c.slice(8),10);else if(c==="-q"||c==="--quiet"||c==="--silent")s=!0;else if(c==="-v"||c==="--verbose")i=!0;else if(c.match(/^-\d+$/))r=parseInt(c.slice(1),10);else{if(c.startsWith("--"))return{ok:!1,error:P(e,c)};if(c.startsWith("-")&&c!=="-")return{ok:!1,error:P(e,c)};a.push(c)}}return n!==null&&(Number.isNaN(n)||n<0)?{ok:!1,error:{stdout:"",stderr:`${e}: invalid number of bytes
111
+ `:o=!0}}return{stdout:i,stderr:"",exitCode:o?1:0}}}});function Vr(t,e){let r=10,n=null,s=!1,i=!1,o=!1,a=[];for(let l=0;l<t.length;l++){let c=t[l];if(c==="-n"&&l+1<t.length){let u=t[++l];e==="tail"&&u.startsWith("+")?(o=!0,r=parseInt(u.slice(1),10)):r=parseInt(u,10)}else if(e==="tail"&&c.startsWith("-n+"))o=!0,r=parseInt(c.slice(3),10);else if(c.startsWith("-n"))r=parseInt(c.slice(2),10);else if(c==="-c"&&l+1<t.length)n=parseInt(t[++l],10);else if(c.startsWith("-c"))n=parseInt(c.slice(2),10);else if(c.startsWith("--bytes="))n=parseInt(c.slice(8),10);else if(c.startsWith("--lines="))r=parseInt(c.slice(8),10);else if(c==="-q"||c==="--quiet"||c==="--silent")s=!0;else if(c==="-v"||c==="--verbose")i=!0;else if(c.match(/^-\d+$/))r=parseInt(c.slice(1),10);else{if(c.startsWith("--"))return{ok:!1,error:R(e,c)};if(c.startsWith("-")&&c!=="-")return{ok:!1,error:R(e,c)};a.push(c)}}return n!==null&&(Number.isNaN(n)||n<0)?{ok:!1,error:{stdout:"",stderr:`${e}: invalid number of bytes
112
112
  `,exitCode:1}}:Number.isNaN(r)||r<0?{ok:!1,error:{stdout:"",stderr:`${e}: invalid number of lines
113
- `,exitCode:1}}:{ok:!0,options:{lines:r,bytes:n,quiet:s,verbose:i,files:a,fromLine:o}}}async function Pr(t,e,r,n){let{quiet:s,verbose:i,files:o}=e;if(o.length===0)return{stdout:n(t.stdin),stderr:"",exitCode:0};let a="",l="",c=0,u=i||!s&&o.length>1;for(let f=0;f<o.length;f++){let p=o[f];u&&(f>0&&(a+=`
114
- `),a+=`==> ${p} <==
115
- `);try{let d=t.fs.resolvePath(t.cwd,p),h=await t.fs.readFile(d);a+=n(h)}catch{l+=`${r}: ${p}: No such file or directory
116
- `,c=1}}return{stdout:a,stderr:l,exitCode:c}}function uo(t,e,r){if(r!==null)return t.slice(0,r);if(e===0)return"";let n=0,s=0,i=t.length;for(;n<i&&s<e;){let o=t.indexOf(`
113
+ `,exitCode:1}}:{ok:!0,options:{lines:r,bytes:n,quiet:s,verbose:i,files:a,fromLine:o}}}async function Kr(t,e,r,n){let{quiet:s,verbose:i,files:o}=e;if(o.length===0)return{stdout:n(t.stdin),stderr:"",exitCode:0};let a="",l="",c=0,u=i||!s&&o.length>1;for(let f=0;f<o.length;f++){let d=o[f];u&&(f>0&&(a+=`
114
+ `),a+=`==> ${d} <==
115
+ `);try{let p=t.fs.resolvePath(t.cwd,d),h=await t.fs.readFile(p);a+=n(h)}catch{l+=`${r}: ${d}: No such file or directory
116
+ `,c=1}}return{stdout:a,stderr:l,exitCode:c}}function Ro(t,e,r){if(r!==null)return t.slice(0,r);if(e===0)return"";let n=0,s=0,i=t.length;for(;n<i&&s<e;){let o=t.indexOf(`
117
117
  `,n);if(o===-1)return`${t}
118
- `;s++,n=o+1}return n>0?t.slice(0,n):""}function fo(t,e,r,n){if(r!==null)return t.slice(-r);let s=t.length;if(s===0)return"";if(n){let l=0,c=1;for(;l<s&&c<e;){let f=t.indexOf(`
118
+ `;s++,n=o+1}return n>0?t.slice(0,n):""}function Po(t,e,r,n){if(r!==null)return t.slice(-r);let s=t.length;if(s===0)return"";if(n){let l=0,c=1;for(;l<s&&c<e;){let f=t.indexOf(`
119
119
  `,l);if(f===-1)break;c++,l=f+1}let u=t.slice(l);return u.endsWith(`
120
120
  `)?u:`${u}
121
121
  `}if(e===0)return"";let i=s-1;t[i]===`
122
122
  `&&i--;let o=0;for(;i>=0&&o<e;){if(t[i]===`
123
123
  `&&(o++,o===e)){i++;break}i--}i<0&&(i=0);let a=t.slice(i);return t[s-1]===`
124
124
  `?a:`${a}
125
- `}var _n=C(()=>{"use strict";L()});var po={};R(po,{headCommand:()=>Hp});var zp,Hp,ho=C(()=>{"use strict";L();_n();zp={name:"head",summary:"output the first part of files",usage:"head [OPTION]... [FILE]...",options:["-c, --bytes=NUM print the first NUM bytes","-n, --lines=NUM print the first NUM lines (default 10)","-q, --quiet never print headers giving file names","-v, --verbose always print headers giving file names"," --help display this help and exit"]},Hp={name:"head",async execute(t,e){if(N(t))return k(zp);let r=Rr(t,"head");if(!r.ok)return r.error;let{lines:n,bytes:s}=r.options;return Pr(e,r.options,"head",i=>uo(i,n,s))}}});var mo={};R(mo,{tailCommand:()=>qp});var Gp,qp,go=C(()=>{"use strict";_n();L();Gp={name:"tail",summary:"output the last part of files",usage:"tail [OPTION]... [FILE]...",options:["-c, --bytes=NUM print the last NUM bytes","-n, --lines=NUM print the last NUM lines (default 10)","-n +NUM print starting from line NUM","-q, --quiet never print headers giving file names","-v, --verbose always print headers giving file names"," --help display this help and exit"]},qp={name:"tail",async execute(t,e){if(N(t))return k(Gp);let r=Rr(t,"tail");if(!r.ok)return r.error;let{lines:n,bytes:s,fromLine:i}=r.options;return Pr(e,r.options,"tail",o=>fo(o,n,s,i??!1))}}});var xo={};R(xo,{wcCommand:()=>Zp});function yo(t){let e=t.length,r=0,n=0,s=!1;for(let i=0;i<e;i++){let o=t[i];o===`
126
- `?(r++,s&&(n++,s=!1)):o===" "||o===" "||o==="\r"?s&&(n++,s=!1):s=!0}return s&&n++,{lines:r,words:n,chars:e}}function Bn(t,e,r,n,s){let i=[];e&&i.push(String(t.lines)),r&&i.push(String(t.words)),n&&i.push(String(t.chars));let o=i.join(" ");return s&&(o+=` ${s}`),o}var Vp,Kp,Zp,wo=C(()=>{"use strict";ye();gt();L();Vp={name:"wc",summary:"print newline, word, and byte counts for each file",usage:"wc [OPTION]... [FILE]...",options:["-c, --bytes print the byte counts","-m, --chars print the character counts","-l, --lines print the newline counts","-w, --words print the word counts"," --help display this help and exit"]},Kp={lines:{short:"l",long:"lines",type:"boolean"},words:{short:"w",long:"words",type:"boolean"},bytes:{short:"c",long:"bytes",type:"boolean"},chars:{short:"m",long:"chars",type:"boolean"}},Zp={name:"wc",async execute(t,e){if(N(t))return k(Vp);let r=z("wc",t,Kp);if(!r.ok)return r.error;let{lines:n,words:s}=r.result.flags,i=r.result.flags.bytes||r.result.flags.chars,o=r.result.positional;!n&&!s&&!i&&(n=s=i=!0);let a=await mt(e,o,{cmdName:"wc",stopOnError:!1});if(o.length===0){let p=yo(a.files[0].content);return{stdout:`${Bn(p,n,s,i,"")}
127
- `,stderr:"",exitCode:0}}let l="",c=0,u=0,f=0;for(let{filename:p,content:d}of a.files){let h=yo(d);c+=h.lines,u+=h.words,f+=h.chars,l+=`${Bn(h,n,s,i,p)}
128
- `}return o.length>1&&(l+=`${Bn({lines:c,words:u,chars:f},n,s,i,"total")}
129
- `),{stdout:l,stderr:a.stderr,exitCode:a.exitCode}}}});var bo={};R(bo,{statCommand:()=>Jp});function Eo(t,e){let r=e?"d":"-",n=[t&256?"r":"-",t&128?"w":"-",t&64?"x":"-",t&32?"r":"-",t&16?"w":"-",t&8?"x":"-",t&4?"r":"-",t&2?"w":"-",t&1?"x":"-"];return r+n.join("")}var Qp,Xp,Jp,So=C(()=>{"use strict";ye();L();Qp={name:"stat",summary:"display file or file system status",usage:"stat [OPTION]... FILE...",options:["-c FORMAT use the specified FORMAT instead of the default"," --help display this help and exit"]},Xp={format:{short:"c",type:"string"}},Jp={name:"stat",async execute(t,e){if(N(t))return k(Qp);let r=z("stat",t,Xp);if(!r.ok)return r.error;let n=r.result.flags.format??null,s=r.result.positional;if(s.length===0)return{stdout:"",stderr:`stat: missing operand
130
- `,exitCode:1};let i="",o="",a=!1;for(let l of s){let c=e.fs.resolvePath(e.cwd,l);try{let u=await e.fs.stat(c);if(n){let f=n,p=u.mode.toString(8),d=Eo(u.mode,u.isDirectory);f=f.replace(/%n/g,l),f=f.replace(/%N/g,`'${l}'`),f=f.replace(/%s/g,String(u.size)),f=f.replace(/%F/g,u.isDirectory?"directory":"regular file"),f=f.replace(/%a/g,p),f=f.replace(/%A/g,d),f=f.replace(/%u/g,"1000"),f=f.replace(/%U/g,"user"),f=f.replace(/%g/g,"1000"),f=f.replace(/%G/g,"group"),i+=`${f}
131
- `}else{let f=u.mode.toString(8).padStart(4,"0"),p=Eo(u.mode,u.isDirectory);i+=` File: ${l}
125
+ `}var rs=C(()=>{"use strict";L()});var Fo={};$(Fo,{headCommand:()=>pp});var dp,pp,To=C(()=>{"use strict";L();rs();dp={name:"head",summary:"output the first part of files",usage:"head [OPTION]... [FILE]...",options:["-c, --bytes=NUM print the first NUM bytes","-n, --lines=NUM print the first NUM lines (default 10)","-q, --quiet never print headers giving file names","-v, --verbose always print headers giving file names"," --help display this help and exit"]},pp={name:"head",async execute(t,e){if(N(t))return k(dp);let r=Vr(t,"head");if(!r.ok)return r.error;let{lines:n,bytes:s}=r.options;return Kr(e,r.options,"head",i=>Ro(i,n,s))}}});var Oo={};$(Oo,{tailCommand:()=>mp});var hp,mp,Do=C(()=>{"use strict";rs();L();hp={name:"tail",summary:"output the last part of files",usage:"tail [OPTION]... [FILE]...",options:["-c, --bytes=NUM print the last NUM bytes","-n, --lines=NUM print the last NUM lines (default 10)","-n +NUM print starting from line NUM","-q, --quiet never print headers giving file names","-v, --verbose always print headers giving file names"," --help display this help and exit"]},mp={name:"tail",async execute(t,e){if(N(t))return k(hp);let r=Vr(t,"tail");if(!r.ok)return r.error;let{lines:n,bytes:s,fromLine:i}=r.options;return Kr(e,r.options,"tail",o=>Po(o,n,s,i??!1))}}});var Mo={};$(Mo,{wcCommand:()=>xp});function Lo(t){let e=t.length,r=0,n=0,s=!1;for(let i=0;i<e;i++){let o=t[i];o===`
126
+ `?(r++,s&&(n++,s=!1)):o===" "||o===" "||o==="\r"?s&&(n++,s=!1):s=!0}return s&&n++,{lines:r,words:n,chars:e}}function ns(t,e,r,n,s){let i=[];e&&i.push(String(t.lines)),r&&i.push(String(t.words)),n&&i.push(String(t.chars));let o=i.join(" ");return s&&(o+=` ${s}`),o}var gp,yp,xp,_o=C(()=>{"use strict";Ee();Nt();L();gp={name:"wc",summary:"print newline, word, and byte counts for each file",usage:"wc [OPTION]... [FILE]...",options:["-c, --bytes print the byte counts","-m, --chars print the character counts","-l, --lines print the newline counts","-w, --words print the word counts"," --help display this help and exit"]},yp={lines:{short:"l",long:"lines",type:"boolean"},words:{short:"w",long:"words",type:"boolean"},bytes:{short:"c",long:"bytes",type:"boolean"},chars:{short:"m",long:"chars",type:"boolean"}},xp={name:"wc",async execute(t,e){if(N(t))return k(gp);let r=H("wc",t,yp);if(!r.ok)return r.error;let{lines:n,words:s}=r.result.flags,i=r.result.flags.bytes||r.result.flags.chars,o=r.result.positional;!n&&!s&&!i&&(n=s=i=!0);let a=await kt(e,o,{cmdName:"wc",stopOnError:!1});if(o.length===0){let d=Lo(a.files[0].content);return{stdout:`${ns(d,n,s,i,"")}
127
+ `,stderr:"",exitCode:0}}let l="",c=0,u=0,f=0;for(let{filename:d,content:p}of a.files){let h=Lo(p);c+=h.lines,u+=h.words,f+=h.chars,l+=`${ns(h,n,s,i,d)}
128
+ `}return o.length>1&&(l+=`${ns({lines:c,words:u,chars:f},n,s,i,"total")}
129
+ `),{stdout:l,stderr:a.stderr,exitCode:a.exitCode}}}});var Wo={};$(Wo,{statCommand:()=>bp});function Bo(t,e){let r=e?"d":"-",n=[t&256?"r":"-",t&128?"w":"-",t&64?"x":"-",t&32?"r":"-",t&16?"w":"-",t&8?"x":"-",t&4?"r":"-",t&2?"w":"-",t&1?"x":"-"];return r+n.join("")}var wp,Ep,bp,Uo=C(()=>{"use strict";Ee();L();wp={name:"stat",summary:"display file or file system status",usage:"stat [OPTION]... FILE...",options:["-c FORMAT use the specified FORMAT instead of the default"," --help display this help and exit"]},Ep={format:{short:"c",type:"string"}},bp={name:"stat",async execute(t,e){if(N(t))return k(wp);let r=H("stat",t,Ep);if(!r.ok)return r.error;let n=r.result.flags.format??null,s=r.result.positional;if(s.length===0)return{stdout:"",stderr:`stat: missing operand
130
+ `,exitCode:1};let i="",o="",a=!1;for(let l of s){let c=e.fs.resolvePath(e.cwd,l);try{let u=await e.fs.stat(c);if(n){let f=n,d=u.mode.toString(8),p=Bo(u.mode,u.isDirectory);f=f.replace(/%n/g,l),f=f.replace(/%N/g,`'${l}'`),f=f.replace(/%s/g,String(u.size)),f=f.replace(/%F/g,u.isDirectory?"directory":"regular file"),f=f.replace(/%a/g,d),f=f.replace(/%A/g,p),f=f.replace(/%u/g,"1000"),f=f.replace(/%U/g,"user"),f=f.replace(/%g/g,"1000"),f=f.replace(/%G/g,"group"),i+=`${f}
131
+ `}else{let f=u.mode.toString(8).padStart(4,"0"),d=Bo(u.mode,u.isDirectory);i+=` File: ${l}
132
132
  `,i+=` Size: ${u.size} Blocks: ${Math.ceil(u.size/512)}
133
- `,i+=`Access: (${f}/${p})
133
+ `,i+=`Access: (${f}/${d})
134
134
  `,i+=`Modify: ${u.mtime.toISOString()}
135
135
  `}}catch{o+=`stat: cannot stat '${l}': No such file or directory
136
- `,a=!0}}return{stdout:i,stderr:o,exitCode:a?1:0}}}});function De(t,e,r){let n=typeof r=="boolean"?{ignoreCase:r}:r??{},s=e;n.stripQuotes&&(s.startsWith('"')&&s.endsWith('"')||s.startsWith("'")&&s.endsWith("'"))&&(s=s.slice(1,-1));let i=n.ignoreCase?`i:${s}`:s,o=Co.get(i);return o||(o=Yp(s,n.ignoreCase),Co.set(i,o)),o.test(t)}function Yp(t,e){let r="^";for(let n=0;n<t.length;n++){let s=t[n];if(s==="*")r+=".*";else if(s==="?")r+=".";else if(s==="["){let i=n+1;for(;i<t.length&&t[i]!=="]";)i++;r+=t.slice(n,i+1),n=i}else s==="."||s==="+"||s==="^"||s==="$"||s==="{"||s==="}"||s==="("||s===")"||s==="|"||s==="\\"?r+=`\\${s}`:r+=s}return r+="$",new RegExp(r,e?"i":"")}var Co,Wn=C(()=>{"use strict";Co=new Map});var Or={};R(Or,{egrepCommand:()=>sd,fgrepCommand:()=>nd,grepCommand:()=>Un});function td(t){let e="",r=0;for(;r<t.length;){let n=t[r];if(n==="\\"&&r+1<t.length){let s=t[r+1];if(s==="|"||s==="("||s===")"){e+=s,r+=2;continue}else if(s==="{"||s==="}"){e+=`\\${s}`,r+=2;continue}}n==="+"||n==="?"||n==="|"||n==="("||n===")"||n==="{"||n==="}"?e+=`\\${n}`:e+=n,r++}return e}function Ao(t,e,r,n,s,i,o=!1,a=0,l=0,c=0){let u=t.split(`
137
- `),f=u.length,p=f>0&&u[f-1]===""?f-1:f;if(s){let w=0;for(let b=0;b<p;b++)e.lastIndex=0,e.test(u[b])!==r&&w++;return{output:`${i?`${i}:${w}`:String(w)}
138
- `,matched:w>0}}if(a===0&&l===0){let w=[],E=!1,b=0;for(let S=0;S<p&&!(c>0&&b>=c);S++){let I=u[S];if(e.lastIndex=0,e.test(I)!==r)if(E=!0,b++,o){e.lastIndex=0;for(let v=e.exec(I);v!==null;v=e.exec(I))w.push(i?`${i}:${v[0]}`:v[0]),v[0].length===0&&e.lastIndex++}else n?w.push(i?`${i}:${S+1}:${I}`:`${S+1}:${I}`):w.push(i?`${i}:${I}`:I)}return{output:w.length>0?`${w.join(`
136
+ `,a=!0}}return{stdout:i,stderr:o,exitCode:a?1:0}}}});function Oe(t,e,r){let n=typeof r=="boolean"?{ignoreCase:r}:r??{},s=e;n.stripQuotes&&(s.startsWith('"')&&s.endsWith('"')||s.startsWith("'")&&s.endsWith("'"))&&(s=s.slice(1,-1));let i=n.ignoreCase?`i:${s}`:s,o=zo.get(i);return o||(o=Sp(s,n.ignoreCase),zo.set(i,o)),o.test(t)}function Sp(t,e){let r="^";for(let n=0;n<t.length;n++){let s=t[n];if(s==="*")r+=".*";else if(s==="?")r+=".";else if(s==="["){let i=n+1;for(;i<t.length&&t[i]!=="]";)i++;r+=t.slice(n,i+1),n=i}else s==="."||s==="+"||s==="^"||s==="$"||s==="{"||s==="}"||s==="("||s===")"||s==="|"||s==="\\"?r+=`\\${s}`:r+=s}return r+="$",new RegExp(r,e?"i":"")}var zo,ss=C(()=>{"use strict";zo=new Map});var Qr={};$(Qr,{egrepCommand:()=>Ip,fgrepCommand:()=>Np,grepCommand:()=>is});function Ap(t){let e="",r=0;for(;r<t.length;){let n=t[r];if(n==="\\"&&r+1<t.length){let s=t[r+1];if(s==="|"||s==="("||s===")"){e+=s,r+=2;continue}else if(s==="{"||s==="}"){e+=`\\${s}`,r+=2;continue}}n==="+"||n==="?"||n==="|"||n==="("||n===")"||n==="{"||n==="}"?e+=`\\${n}`:e+=n,r++}return e}function jo(t,e,r,n,s,i,o=!1,a=0,l=0,c=0){let u=t.split(`
137
+ `),f=u.length,d=f>0&&u[f-1]===""?f-1:f;if(s){let w=0;for(let b=0;b<d;b++)e.lastIndex=0,e.test(u[b])!==r&&w++;return{output:`${i?`${i}:${w}`:String(w)}
138
+ `,matched:w>0}}if(a===0&&l===0){let w=[],E=!1,b=0;for(let S=0;S<d&&!(c>0&&b>=c);S++){let I=u[S];if(e.lastIndex=0,e.test(I)!==r)if(E=!0,b++,o){e.lastIndex=0;for(let W=e.exec(I);W!==null;W=e.exec(I))w.push(i?`${i}:${W[0]}`:W[0]),W[0].length===0&&e.lastIndex++}else n?w.push(i?`${i}:${S+1}:${I}`:`${S+1}:${I}`):w.push(i?`${i}:${I}`:I)}return{output:w.length>0?`${w.join(`
139
139
  `)}
140
- `:"",matched:E}}let d=[],h=0,m=new Set,g=[];for(let w=0;w<p&&!(c>0&&h>=c);w++)e.lastIndex=0,e.test(u[w])!==r&&(g.push(w),h++);for(let w of g){for(let b=Math.max(0,w-a);b<w;b++)if(!m.has(b)){m.add(b);let S=u[b];n&&(S=`${b+1}-${S}`),i&&(S=`${i}-${S}`),d.push(S)}if(!m.has(w)){m.add(w);let b=u[w];if(o){e.lastIndex=0;for(let S=e.exec(b);S!==null;S=e.exec(b))d.push(i?`${i}:${S[0]}`:S[0]),S[0].length===0&&e.lastIndex++}else{let S=b;n&&(S=`${w+1}:${S}`),i&&(S=`${i}:${S}`),d.push(S)}}let E=Math.min(p-1,w+l);for(let b=w+1;b<=E;b++)if(!m.has(b)){m.add(b);let S=u[b];n&&(S=`${b+1}-${S}`),i&&(S=`${i}-${S}`),d.push(S)}}return{output:d.length>0?`${d.join(`
140
+ `:"",matched:E}}let p=[],h=0,m=new Set,g=[];for(let w=0;w<d&&!(c>0&&h>=c);w++)e.lastIndex=0,e.test(u[w])!==r&&(g.push(w),h++);for(let w of g){for(let b=Math.max(0,w-a);b<w;b++)if(!m.has(b)){m.add(b);let S=u[b];n&&(S=`${b+1}-${S}`),i&&(S=`${i}-${S}`),p.push(S)}if(!m.has(w)){m.add(w);let b=u[w];if(o){e.lastIndex=0;for(let S=e.exec(b);S!==null;S=e.exec(b))p.push(i?`${i}:${S[0]}`:S[0]),S[0].length===0&&e.lastIndex++}else{let S=b;n&&(S=`${w+1}:${S}`),i&&(S=`${i}:${S}`),p.push(S)}}let E=Math.min(d-1,w+l);for(let b=w+1;b<=E;b++)if(!m.has(b)){m.add(b);let S=u[b];n&&(S=`${b+1}-${S}`),i&&(S=`${i}-${S}`),p.push(S)}}return{output:p.length>0?`${p.join(`
141
141
  `)}
142
- `:"",matched:h>0}}async function ko(t,e,r,n){let s=r.fs.resolvePath(r.cwd,t);try{if(!(await r.fs.stat(s)).isDirectory){let a=t.split("/").pop()||"";if(e){let l=e.replace(/^\//,"");De(a,l,{stripQuotes:!0})&&n.push(t)}return}let o=await r.fs.readdir(s);for(let a of o){let l=t==="."?a:`${t}/${a}`,c=r.fs.resolvePath(r.cwd,l);if((await r.fs.stat(c)).isDirectory)await ko(l,e,r,n);else if(e){let f=e.replace(/^\//,"");De(a,f,{stripQuotes:!0})&&n.push(l)}}}catch{}}async function rd(t,e){let r=[],n=t.lastIndexOf("/"),s,i;if(n===-1?(s=e.cwd,i=t):(s=t.slice(0,n)||"/",i=t.slice(n+1)),t.includes("**")){let a=[],l=t.split("**"),c=l[0].replace(/\/$/,"")||".",u=l[1]||"";return await ko(c,u,e,a),a.map(f=>({path:f}))}let o=e.fs.resolvePath(e.cwd,s);try{if(e.fs.readdirWithFileTypes){let a=await e.fs.readdirWithFileTypes(o);for(let l of a)if(De(l.name,i,{stripQuotes:!0})){let c=n===-1?l.name:`${s}/${l.name}`;r.push({path:c,isFile:l.isFile})}}else{let a=await e.fs.readdir(o);for(let l of a)if(De(l,i,{stripQuotes:!0})){let c=n===-1?l:`${s}/${l}`;r.push({path:c})}}}catch{}return r.sort((a,l)=>a.path.localeCompare(l.path))}async function Fr(t,e,r=[],n=[],s=[],i){let o=e.fs.resolvePath(e.cwd,t),a=[];try{let l,c;if(i!==void 0)l=i,c=!i;else{let f=await e.fs.stat(o);l=f.isFile,c=f.isDirectory}if(l){let f=t.split("/").pop()||t;return n.length>0&&n.some(p=>De(f,p,{stripQuotes:!0}))?[]:r.length>0&&!r.some(p=>De(f,p,{stripQuotes:!0}))?[]:[{path:t,isFile:!0}]}if(!c)return[];let u=t.split("/").pop()||t;if(s.length>0&&s.some(f=>De(u,f,{stripQuotes:!0})))return[];if(e.fs.readdirWithFileTypes){let f=await e.fs.readdirWithFileTypes(o);for(let p of f){if(p.name.startsWith("."))continue;let d=t==="."?p.name:`${t}/${p.name}`,h=await Fr(d,e,r,n,s,p.isFile);a.push(...h)}}else{let f=await e.fs.readdir(o);for(let p of f){if(p.startsWith("."))continue;let d=t==="."?p:`${t}/${p}`,h=await Fr(d,e,r,n,s);a.push(...h)}}}catch{}return a}var ed,Un,nd,sd,Tr=C(()=>{"use strict";Wn();L();ed={name:"grep",summary:"print lines that match patterns",usage:"grep [OPTION]... PATTERN [FILE]...",options:["-E, --extended-regexp PATTERN is an extended regular expression","-P, --perl-regexp PATTERN is a Perl regular expression","-F, --fixed-strings PATTERN is a set of newline-separated strings","-i, --ignore-case ignore case distinctions","-v, --invert-match select non-matching lines","-w, --word-regexp match only whole words","-x, --line-regexp match only whole lines","-c, --count print only a count of matching lines","-l, --files-with-matches print only names of files with matches","-L, --files-without-match print names of files with no matches","-m NUM, --max-count=NUM stop after NUM matches","-n, --line-number print line number with output lines","-h, --no-filename suppress the file name prefix on output","-o, --only-matching show only nonempty parts of lines that match","-q, --quiet, --silent suppress all normal output","-r, -R, --recursive search directories recursively","-A NUM print NUM lines of trailing context","-B NUM print NUM lines of leading context","-C NUM print NUM lines of context","-e PATTERN use PATTERN for matching"," --include=GLOB search only files matching GLOB"," --exclude=GLOB skip files matching GLOB"," --exclude-dir=DIR skip directories matching DIR"," --help display this help and exit"]},Un={name:"grep",async execute(t,e){if(N(t))return k(ed);let r=!1,n=!1,s=!1,i=!1,o=!1,a=!1,l=!1,c=!1,u=!1,f=!1,p=!1,d=!1,h=!1,m=!1,g=!1,w=0,E=0,b=0,S=[],I=[],D=[],v=null,$=[];for(let M=0;M<t.length;M++){let W=t[M];if(W.startsWith("-")&&W!=="-"){if(W==="-e"&&M+1<t.length){v=t[++M];continue}if(W.startsWith("--include=")){S.push(W.slice(10));continue}if(W.startsWith("--exclude=")){I.push(W.slice(10));continue}if(W.startsWith("--exclude-dir=")){D.push(W.slice(14));continue}if(W.startsWith("--max-count=")){w=parseInt(W.slice(12),10);continue}let se=W.match(/^-m(\d+)$/);if(se){w=parseInt(se[1],10);continue}if(W==="-m"&&M+1<t.length){w=parseInt(t[++M],10);continue}let G=W.match(/^-([ABC])(\d+)$/);if(G){let F=parseInt(G[2],10);G[1]==="A"?b=F:G[1]==="B"?E=F:G[1]==="C"&&(E=F,b=F);continue}if((W==="-A"||W==="-B"||W==="-C")&&M+1<t.length){let F=parseInt(t[++M],10);W==="-A"?b=F:W==="-B"?E=F:(E=F,b=F);continue}let ne=W.startsWith("--")?[W]:W.slice(1).split("");for(let F of ne)if(F==="i"||F==="--ignore-case")r=!0;else if(F==="n"||F==="--line-number")n=!0;else if(F==="v"||F==="--invert-match")s=!0;else if(F==="c"||F==="--count")i=!0;else if(F==="l"||F==="--files-with-matches")o=!0;else if(F==="L"||F==="--files-without-match")a=!0;else if(F==="r"||F==="R"||F==="--recursive")l=!0;else if(F==="w"||F==="--word-regexp")c=!0;else if(F==="x"||F==="--line-regexp")u=!0;else if(F==="E"||F==="--extended-regexp")f=!0;else if(F==="P"||F==="--perl-regexp")p=!0;else if(F==="F"||F==="--fixed-strings")d=!0;else if(F==="o"||F==="--only-matching")h=!0;else if(F==="h"||F==="--no-filename")m=!0;else if(F==="q"||F==="--quiet"||F==="--silent")g=!0;else{if(F.startsWith("--"))return P("grep",F);if(F.length===1)return P("grep",`-${F}`)}}else v===null?v=W:$.push(W)}if(v===null)return{stdout:"",stderr:`grep: missing pattern
143
- `,exitCode:2};let V;d?V=v.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"):f||p?V=v:V=td(v),c&&(V=`\\b${V}\\b`),u&&(V=`^${V}$`);let K;try{K=new RegExp(V,r?"gi":"g")}catch{return{stdout:"",stderr:`grep: invalid regular expression: ${v}
144
- `,exitCode:2}}if($.length===0&&e.stdin){let M=Ao(e.stdin,K,s,n,i,"",h,E,b,w);return g?{stdout:"",stderr:"",exitCode:M.matched?0:1}:{stdout:M.output,stderr:"",exitCode:M.matched?0:1}}if($.length===0)return{stdout:"",stderr:`grep: no input files
145
- `,exitCode:2};let Y="",re="",H=!1,ce=!1,X=[];for(let M of $)if(M.includes("*")||M.includes("?")||M.includes("[")){let W=await rd(M,e);if(l)for(let se of W){let G=await Fr(se.path,e,S,I,D,se.isFile);X.push(...G)}else X.push(...W)}else if(l){let W=await Fr(M,e,S,I,D);X.push(...W)}else X.push({path:M});let Ce=(X.length>1||l)&&!m,ve=50;for(let M=0;M<X.length;M+=ve){let W=X.slice(M,M+ve),se=await Promise.all(W.map(async G=>{let ne=G.path,F=ne.split("/").pop()||ne;if(I.length>0&&!l&&I.some(fe=>De(F,fe,{stripQuotes:!0}))||S.length>0&&!l&&!S.some(fe=>De(F,fe,{stripQuotes:!0})))return null;try{let fe=e.fs.resolvePath(e.cwd,ne),dt=!1;if(G.isFile===void 0?dt=(await e.fs.stat(fe)).isDirectory:dt=!G.isFile,dt)return l?null:{error:`grep: ${ne}: Is a directory
146
- `};let Te=await e.fs.readFile(fe),Ft=Ao(Te,K,s,n,i,Ce?ne:"",h,E,b,w);return{file:ne,result:Ft}}catch{return{error:`grep: ${ne}: No such file or directory
147
- `}}}));for(let G of se){if(G===null)continue;if("error"in G&&G.error){re+=G.error,G.error.includes("Is a directory")||(ce=!0);continue}if(!("file"in G)||!G.result)continue;let{file:ne,result:F}=G;if(F.matched){if(H=!0,g)return{stdout:"",stderr:"",exitCode:0};o?Y+=`${ne}
148
- `:a||(Y+=F.output)}else a?Y+=`${ne}
149
- `:i&&!o&&(Y+=F.output)}}let ue;return ce?ue=2:a?ue=Y.length>0?0:1:ue=H?0:1,g?{stdout:"",stderr:"",exitCode:ue}:{stdout:Y,stderr:re,exitCode:ue}}};nd={name:"fgrep",async execute(t,e){return Un.execute(["-F",...t],e)}},sd={name:"egrep",async execute(t,e){return Un.execute(["-E",...t],e)}}});function Dr(t){return t instanceof Ae||t instanceof Re||t instanceof ke}var We,Ae,Re,ke,Ke,Ue,ie,xe,Je,j,Ze,oe=C(()=>{"use strict";We=class extends Error{stdout;stderr;constructor(e,r="",n=""){super(e),this.stdout=r,this.stderr=n}prependOutput(e,r){this.stdout=e+this.stdout,this.stderr=r+this.stderr}},Ae=class extends We{levels;name="BreakError";constructor(e=1,r="",n=""){super("break",r,n),this.levels=e}},Re=class extends We{levels;name="ContinueError";constructor(e=1,r="",n=""){super("continue",r,n),this.levels=e}},ke=class extends We{exitCode;name="ReturnError";constructor(e=0,r="",n=""){super("return",r,n),this.exitCode=e}},Ke=class extends We{exitCode;name="ErrexitError";constructor(e,r="",n=""){super(`errexit: command exited with status ${e}`,r,n),this.exitCode=e}},Ue=class extends We{varName;name="NounsetError";constructor(e,r=""){super(`${e}: unbound variable`,r,`bash: ${e}: unbound variable
150
- `),this.varName=e}},ie=class extends We{exitCode;name="ExitError";constructor(e,r="",n=""){super("exit",r,n),this.exitCode=e}},xe=class extends We{name="ArithmeticError";constructor(e,r="",n=""){super(e,r,n),this.stderr=n||`bash: ${e}
151
- `}},Je=class extends We{name="BadSubstitutionError";constructor(e,r="",n=""){super(e,r,n),this.stderr=n||`bash: ${e}: bad substitution
152
- `}},j=class extends We{limitType;name="ExecutionLimitError";static EXIT_CODE=126;constructor(e,r,n="",s=""){super(e,n,s),this.limitType=r,this.stderr=s||`bash: ${e}
153
- `}},Ze=class extends We{name="SubshellExitError";constructor(e="",r=""){super("subshell exit",e,r)}}});function Io(t,e,r){return{patternSpace:"",holdSpace:"",lineNumber:0,totalLines:t,deleted:!1,printed:!1,quit:!1,quitSilent:!1,exitCode:void 0,appendBuffer:[],substitutionMade:!1,lineNumberOutput:[],restartCycle:!1,currentFilename:e,pendingFileReads:[],pendingFileWrites:[],pendingExecute:void 0,rangeStates:r||new Map}}function od(t){return typeof t=="object"&&"first"in t&&"step"in t}function sr(t,e,r,n){if(t==="$")return e===r;if(typeof t=="number")return e===t;if(od(t)){let{first:s,step:i}=t;return i===0?e===s:(e-s)%i===0&&e>=s}if(typeof t=="object"&&"pattern"in t)try{return new RegExp(t.pattern).test(n)}catch{return!1}return!1}function ad(t){let e=r=>r===void 0?"undefined":r==="$"?"$":typeof r=="number"?String(r):"pattern"in r?`/${r.pattern}/`:"first"in r?`${r.first}~${r.step}`:"unknown";return`${e(t.start)},${e(t.end)}`}function Dt(t,e,r,n,s){if(!t||!t.start&&!t.end)return!0;let i=t.start,o=t.end;if(i!==void 0&&o===void 0)return sr(i,e,r,n);if(i!==void 0&&o!==void 0){let a=typeof i=="object"&&"pattern"in i,l=typeof o=="object"&&"pattern"in o;if(!a&&!l){let u=typeof i=="number"?i:i==="$"?r:1,f=typeof o=="number"?o:r;return e>=u&&e<=f}if(s){let u=ad(t),f=s.get(u);return f||(f={active:!1},s.set(u,f)),f.active?(sr(o,e,r,n)&&(f.active=!1,s.set(u,f)),!0):sr(i,e,r,n)?(f.active=!0,f.startLine=e,s.set(u,f),sr(o,e,r,n)&&(f.active=!1,s.set(u,f)),!0):!1}return sr(i,e,r,n)}return!0}function ld(t){let e="",r=0;for(;r<t.length;){if(t[r]==="\\"&&r+1<t.length){let n=t[r+1];if(n==="+"||n==="?"||n==="|"){e+=n,r+=2;continue}if(n==="("||n===")"){e+=n,r+=2;continue}if(n==="{"||n==="}"){e+=n,r+=2;continue}e+=t[r]+n,r+=2;continue}if(t[r]==="+"||t[r]==="?"||t[r]==="|"||t[r]==="("||t[r]===")"){e+=`\\${t[r]}`,r++;continue}e+=t[r],r++}return e}function cd(t){let e="";for(let r=0;r<t.length;r++){let n=t[r],s=n.charCodeAt(0);n==="\\"?e+="\\\\":n===" "?e+="\\t":n===`
142
+ `:"",matched:h>0}}async function Ho(t,e,r,n){let s=r.fs.resolvePath(r.cwd,t);try{if(!(await r.fs.stat(s)).isDirectory){let a=t.split("/").pop()||"";if(e){let l=e.replace(/^\//,"");Oe(a,l,{stripQuotes:!0})&&n.push(t)}return}let o=await r.fs.readdir(s);for(let a of o){let l=t==="."?a:`${t}/${a}`,c=r.fs.resolvePath(r.cwd,l);if((await r.fs.stat(c)).isDirectory)await Ho(l,e,r,n);else if(e){let f=e.replace(/^\//,"");Oe(a,f,{stripQuotes:!0})&&n.push(l)}}}catch{}}async function kp(t,e){let r=[],n=t.lastIndexOf("/"),s,i;if(n===-1?(s=e.cwd,i=t):(s=t.slice(0,n)||"/",i=t.slice(n+1)),t.includes("**")){let a=[],l=t.split("**"),c=l[0].replace(/\/$/,"")||".",u=l[1]||"";return await Ho(c,u,e,a),a.map(f=>({path:f}))}let o=e.fs.resolvePath(e.cwd,s);try{if(e.fs.readdirWithFileTypes){let a=await e.fs.readdirWithFileTypes(o);for(let l of a)if(Oe(l.name,i,{stripQuotes:!0})){let c=n===-1?l.name:`${s}/${l.name}`;r.push({path:c,isFile:l.isFile})}}else{let a=await e.fs.readdir(o);for(let l of a)if(Oe(l,i,{stripQuotes:!0})){let c=n===-1?l:`${s}/${l}`;r.push({path:c})}}}catch{}return r.sort((a,l)=>a.path.localeCompare(l.path))}async function Zr(t,e,r=[],n=[],s=[],i){let o=e.fs.resolvePath(e.cwd,t),a=[];try{let l,c;if(i!==void 0)l=i,c=!i;else{let f=await e.fs.stat(o);l=f.isFile,c=f.isDirectory}if(l){let f=t.split("/").pop()||t;return n.length>0&&n.some(d=>Oe(f,d,{stripQuotes:!0}))?[]:r.length>0&&!r.some(d=>Oe(f,d,{stripQuotes:!0}))?[]:[{path:t,isFile:!0}]}if(!c)return[];let u=t.split("/").pop()||t;if(s.length>0&&s.some(f=>Oe(u,f,{stripQuotes:!0})))return[];if(e.fs.readdirWithFileTypes){let f=await e.fs.readdirWithFileTypes(o);for(let d of f){if(d.name.startsWith("."))continue;let p=t==="."?d.name:`${t}/${d.name}`,h=await Zr(p,e,r,n,s,d.isFile);a.push(...h)}}else{let f=await e.fs.readdir(o);for(let d of f){if(d.startsWith("."))continue;let p=t==="."?d:`${t}/${d}`,h=await Zr(p,e,r,n,s);a.push(...h)}}}catch{}return a}var Cp,is,Np,Ip,Xr=C(()=>{"use strict";ss();L();Cp={name:"grep",summary:"print lines that match patterns",usage:"grep [OPTION]... PATTERN [FILE]...",options:["-E, --extended-regexp PATTERN is an extended regular expression","-P, --perl-regexp PATTERN is a Perl regular expression","-F, --fixed-strings PATTERN is a set of newline-separated strings","-i, --ignore-case ignore case distinctions","-v, --invert-match select non-matching lines","-w, --word-regexp match only whole words","-x, --line-regexp match only whole lines","-c, --count print only a count of matching lines","-l, --files-with-matches print only names of files with matches","-L, --files-without-match print names of files with no matches","-m NUM, --max-count=NUM stop after NUM matches","-n, --line-number print line number with output lines","-h, --no-filename suppress the file name prefix on output","-o, --only-matching show only nonempty parts of lines that match","-q, --quiet, --silent suppress all normal output","-r, -R, --recursive search directories recursively","-A NUM print NUM lines of trailing context","-B NUM print NUM lines of leading context","-C NUM print NUM lines of context","-e PATTERN use PATTERN for matching"," --include=GLOB search only files matching GLOB"," --exclude=GLOB skip files matching GLOB"," --exclude-dir=DIR skip directories matching DIR"," --help display this help and exit"]},is={name:"grep",async execute(t,e){if(N(t))return k(Cp);let r=!1,n=!1,s=!1,i=!1,o=!1,a=!1,l=!1,c=!1,u=!1,f=!1,d=!1,p=!1,h=!1,m=!1,g=!1,w=0,E=0,b=0,S=[],I=[],F=[],W=null,j=[];for(let Y=0;Y<t.length;Y++){let T=t[Y];if(T.startsWith("-")&&T!=="-"){if(T==="-e"&&Y+1<t.length){W=t[++Y];continue}if(T.startsWith("--include=")){S.push(T.slice(10));continue}if(T.startsWith("--exclude=")){I.push(T.slice(10));continue}if(T.startsWith("--exclude-dir=")){F.push(T.slice(14));continue}if(T.startsWith("--max-count=")){w=parseInt(T.slice(12),10);continue}let ce=T.match(/^-m(\d+)$/);if(ce){w=parseInt(ce[1],10);continue}if(T==="-m"&&Y+1<t.length){w=parseInt(t[++Y],10);continue}let V=T.match(/^-([ABC])(\d+)$/);if(V){let v=parseInt(V[2],10);V[1]==="A"?b=v:V[1]==="B"?E=v:V[1]==="C"&&(E=v,b=v);continue}if((T==="-A"||T==="-B"||T==="-C")&&Y+1<t.length){let v=parseInt(t[++Y],10);T==="-A"?b=v:T==="-B"?E=v:(E=v,b=v);continue}let Q=T.startsWith("--")?[T]:T.slice(1).split("");for(let v of Q)if(v==="i"||v==="--ignore-case")r=!0;else if(v==="n"||v==="--line-number")n=!0;else if(v==="v"||v==="--invert-match")s=!0;else if(v==="c"||v==="--count")i=!0;else if(v==="l"||v==="--files-with-matches")o=!0;else if(v==="L"||v==="--files-without-match")a=!0;else if(v==="r"||v==="R"||v==="--recursive")l=!0;else if(v==="w"||v==="--word-regexp")c=!0;else if(v==="x"||v==="--line-regexp")u=!0;else if(v==="E"||v==="--extended-regexp")f=!0;else if(v==="P"||v==="--perl-regexp")d=!0;else if(v==="F"||v==="--fixed-strings")p=!0;else if(v==="o"||v==="--only-matching")h=!0;else if(v==="h"||v==="--no-filename")m=!0;else if(v==="q"||v==="--quiet"||v==="--silent")g=!0;else{if(v.startsWith("--"))return R("grep",v);if(v.length===1)return R("grep",`-${v}`)}}else W===null?W=T:j.push(T)}if(W===null)return{stdout:"",stderr:`grep: missing pattern
143
+ `,exitCode:2};let pe;p?pe=W.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"):f||d?pe=W:pe=Ap(W),c&&(pe=`\\b${pe}\\b`),u&&(pe=`^${pe}$`);let te;try{te=new RegExp(pe,r?"gi":"g")}catch{return{stdout:"",stderr:`grep: invalid regular expression: ${W}
144
+ `,exitCode:2}}if(j.length===0&&e.stdin){let Y=jo(e.stdin,te,s,n,i,"",h,E,b,w);return g?{stdout:"",stderr:"",exitCode:Y.matched?0:1}:{stdout:Y.output,stderr:"",exitCode:Y.matched?0:1}}if(j.length===0)return{stdout:"",stderr:`grep: no input files
145
+ `,exitCode:2};let Te="",D="",_=!1,G=!1,le=[];for(let Y of j)if(Y.includes("*")||Y.includes("?")||Y.includes("[")){let T=await kp(Y,e);if(l)for(let ce of T){let V=await Zr(ce.path,e,S,I,F,ce.isFile);le.push(...V)}else le.push(...T)}else if(l){let T=await Zr(Y,e,S,I,F);le.push(...T)}else le.push({path:Y});let Ne=(le.length>1||l)&&!m,Ue=50;for(let Y=0;Y<le.length;Y+=Ue){let T=le.slice(Y,Y+Ue),ce=await Promise.all(T.map(async V=>{let Q=V.path,v=Q.split("/").pop()||Q;if(I.length>0&&!l&&I.some(ue=>Oe(v,ue,{stripQuotes:!0}))||S.length>0&&!l&&!S.some(ue=>Oe(v,ue,{stripQuotes:!0})))return null;try{let ue=e.fs.resolvePath(e.cwd,Q),re=!1;if(V.isFile===void 0?re=(await e.fs.stat(ue)).isDirectory:re=!V.isFile,re)return l?null:{error:`grep: ${Q}: Is a directory
146
+ `};let ne=await e.fs.readFile(ue),fe=jo(ne,te,s,n,i,Ne?Q:"",h,E,b,w);return{file:Q,result:fe}}catch{return{error:`grep: ${Q}: No such file or directory
147
+ `}}}));for(let V of ce){if(V===null)continue;if("error"in V&&V.error){D+=V.error,V.error.includes("Is a directory")||(G=!0);continue}if(!("file"in V)||!V.result)continue;let{file:Q,result:v}=V;if(v.matched){if(_=!0,g)return{stdout:"",stderr:"",exitCode:0};o?Te+=`${Q}
148
+ `:a||(Te+=v.output)}else a?Te+=`${Q}
149
+ `:i&&!o&&(Te+=v.output)}}let Ct;return G?Ct=2:a?Ct=Te.length>0?0:1:Ct=_?0:1,g?{stdout:"",stderr:"",exitCode:Ct}:{stdout:Te,stderr:D,exitCode:Ct}}};Np={name:"fgrep",async execute(t,e){return is.execute(["-F",...t],e)}},Ip={name:"egrep",async execute(t,e){return is.execute(["-E",...t],e)}}});function Jr(t){return t instanceof $e||t instanceof Me||t instanceof Re}var Ze,$e,Me,Re,st,Qe,se,be,lt,z,it,ie=C(()=>{"use strict";Ze=class extends Error{stdout;stderr;constructor(e,r="",n=""){super(e),this.stdout=r,this.stderr=n}prependOutput(e,r){this.stdout=e+this.stdout,this.stderr=r+this.stderr}},$e=class extends Ze{levels;name="BreakError";constructor(e=1,r="",n=""){super("break",r,n),this.levels=e}},Me=class extends Ze{levels;name="ContinueError";constructor(e=1,r="",n=""){super("continue",r,n),this.levels=e}},Re=class extends Ze{exitCode;name="ReturnError";constructor(e=0,r="",n=""){super("return",r,n),this.exitCode=e}},st=class extends Ze{exitCode;name="ErrexitError";constructor(e,r="",n=""){super(`errexit: command exited with status ${e}`,r,n),this.exitCode=e}},Qe=class extends Ze{varName;name="NounsetError";constructor(e,r=""){super(`${e}: unbound variable`,r,`bash: ${e}: unbound variable
150
+ `),this.varName=e}},se=class extends Ze{exitCode;name="ExitError";constructor(e,r="",n=""){super("exit",r,n),this.exitCode=e}},be=class extends Ze{name="ArithmeticError";constructor(e,r="",n=""){super(e,r,n),this.stderr=n||`bash: ${e}
151
+ `}},lt=class extends Ze{name="BadSubstitutionError";constructor(e,r="",n=""){super(e,r,n),this.stderr=n||`bash: ${e}: bad substitution
152
+ `}},z=class extends Ze{limitType;name="ExecutionLimitError";static EXIT_CODE=126;constructor(e,r,n="",s=""){super(e,n,s),this.limitType=r,this.stderr=s||`bash: ${e}
153
+ `}},it=class extends Ze{name="SubshellExitError";constructor(e="",r=""){super("subshell exit",e,r)}}});function qo(t,e,r){return{patternSpace:"",holdSpace:"",lineNumber:0,totalLines:t,deleted:!1,printed:!1,quit:!1,quitSilent:!1,exitCode:void 0,appendBuffer:[],substitutionMade:!1,lineNumberOutput:[],restartCycle:!1,currentFilename:e,pendingFileReads:[],pendingFileWrites:[],pendingExecute:void 0,rangeStates:r||new Map}}function $p(t){return typeof t=="object"&&"first"in t&&"step"in t}function yr(t,e,r,n){if(t==="$")return e===r;if(typeof t=="number")return e===t;if($p(t)){let{first:s,step:i}=t;return i===0?e===s:(e-s)%i===0&&e>=s}if(typeof t=="object"&&"pattern"in t)try{return new RegExp(t.pattern).test(n)}catch{return!1}return!1}function Rp(t){let e=r=>r===void 0?"undefined":r==="$"?"$":typeof r=="number"?String(r):"pattern"in r?`/${r.pattern}/`:"first"in r?`${r.first}~${r.step}`:"unknown";return`${e(t.start)},${e(t.end)}`}function Vt(t,e,r,n,s){if(!t||!t.start&&!t.end)return!0;let i=t.start,o=t.end;if(i!==void 0&&o===void 0)return yr(i,e,r,n);if(i!==void 0&&o!==void 0){let a=typeof i=="object"&&"pattern"in i,l=typeof o=="object"&&"pattern"in o;if(!a&&!l){let u=typeof i=="number"?i:i==="$"?r:1,f=typeof o=="number"?o:r;return e>=u&&e<=f}if(s){let u=Rp(t),f=s.get(u);return f||(f={active:!1},s.set(u,f)),f.active?(yr(o,e,r,n)&&(f.active=!1,s.set(u,f)),!0):yr(i,e,r,n)?(f.active=!0,f.startLine=e,s.set(u,f),yr(o,e,r,n)&&(f.active=!1,s.set(u,f)),!0):!1}return yr(i,e,r,n)}return!0}function Pp(t){let e="",r=0;for(;r<t.length;){if(t[r]==="\\"&&r+1<t.length){let n=t[r+1];if(n==="+"||n==="?"||n==="|"){e+=n,r+=2;continue}if(n==="("||n===")"){e+=n,r+=2;continue}if(n==="{"||n==="}"){e+=n,r+=2;continue}e+=t[r]+n,r+=2;continue}if(t[r]==="+"||t[r]==="?"||t[r]==="|"||t[r]==="("||t[r]===")"){e+=`\\${t[r]}`,r++;continue}e+=t[r],r++}return e}function Fp(t){let e="";for(let r=0;r<t.length;r++){let n=t[r],s=n.charCodeAt(0);n==="\\"?e+="\\\\":n===" "?e+="\\t":n===`
154
154
  `?e+=`$
155
- `:n==="\r"?e+="\\r":n==="\x07"?e+="\\a":n==="\b"?e+="\\b":n==="\f"?e+="\\f":n==="\v"?e+="\\v":s<32||s>=127?e+=`\\${s.toString(8).padStart(3,"0")}`:e+=n}return`${e}$`}function No(t,e,r){let n="",s=0;for(;s<t.length;){if(t[s]==="\\"&&s+1<t.length){let i=t[s+1];if(i==="&"){n+="&",s+=2;continue}if(i==="n"){n+=`
156
- `,s+=2;continue}if(i==="t"){n+=" ",s+=2;continue}let o=parseInt(i,10);if(o>=1&&o<=9){n+=r[o-1]||"",s+=2;continue}n+=i,s+=2;continue}if(t[s]==="&"){n+=e,s++;continue}n+=t[s],s++}return n}function ud(t,e){let{lineNumber:r,totalLines:n,patternSpace:s}=e;if(t.type!=="label"&&Dt(t.address,r,n,s,e.rangeStates))switch(t.type){case"substitute":{let i=t,o="";i.global&&(o+="g"),i.ignoreCase&&(o+="i");let a=i.extendedRegex?i.pattern:ld(i.pattern);try{let l=new RegExp(a,o),c=l.test(e.patternSpace);if(l.lastIndex=0,c){if(e.substitutionMade=!0,i.nthOccurrence&&i.nthOccurrence>0&&!i.global){let u=0,f=i.nthOccurrence;e.patternSpace=e.patternSpace.replace(new RegExp(a,`g${i.ignoreCase?"i":""}`),(p,...d)=>{if(u++,u===f){let h=d.slice(0,-2);return No(i.replacement,p,h)}return p})}else e.patternSpace=e.patternSpace.replace(l,(u,...f)=>{let p=f.slice(0,-2);return No(i.replacement,u,p)});i.printOnMatch&&(e.printed=!0)}}catch{}break}case"print":e.printed=!0;break;case"printFirstLine":{let i=e.patternSpace.indexOf(`
155
+ `:n==="\r"?e+="\\r":n==="\x07"?e+="\\a":n==="\b"?e+="\\b":n==="\f"?e+="\\f":n==="\v"?e+="\\v":s<32||s>=127?e+=`\\${s.toString(8).padStart(3,"0")}`:e+=n}return`${e}$`}function Go(t,e,r){let n="",s=0;for(;s<t.length;){if(t[s]==="\\"&&s+1<t.length){let i=t[s+1];if(i==="&"){n+="&",s+=2;continue}if(i==="n"){n+=`
156
+ `,s+=2;continue}if(i==="t"){n+=" ",s+=2;continue}let o=parseInt(i,10);if(o>=1&&o<=9){n+=r[o-1]||"",s+=2;continue}n+=i,s+=2;continue}if(t[s]==="&"){n+=e,s++;continue}n+=t[s],s++}return n}function Tp(t,e){let{lineNumber:r,totalLines:n,patternSpace:s}=e;if(t.type!=="label"&&Vt(t.address,r,n,s,e.rangeStates))switch(t.type){case"substitute":{let i=t,o="";i.global&&(o+="g"),i.ignoreCase&&(o+="i");let a=i.extendedRegex?i.pattern:Pp(i.pattern);try{let l=new RegExp(a,o),c=l.test(e.patternSpace);if(l.lastIndex=0,c){if(e.substitutionMade=!0,i.nthOccurrence&&i.nthOccurrence>0&&!i.global){let u=0,f=i.nthOccurrence;e.patternSpace=e.patternSpace.replace(new RegExp(a,`g${i.ignoreCase?"i":""}`),(d,...p)=>{if(u++,u===f){let h=p.slice(0,-2);return Go(i.replacement,d,h)}return d})}else e.patternSpace=e.patternSpace.replace(l,(u,...f)=>{let d=f.slice(0,-2);return Go(i.replacement,u,d)});i.printOnMatch&&(e.printed=!0)}}catch{}break}case"print":e.printed=!0;break;case"printFirstLine":{let i=e.patternSpace.indexOf(`
157
157
  `);i!==-1?e.lineNumberOutput.push(e.patternSpace.slice(0,i)):e.lineNumberOutput.push(e.patternSpace);break}case"delete":e.deleted=!0;break;case"deleteFirstLine":{let i=e.patternSpace.indexOf(`
158
158
  `);i!==-1?(e.patternSpace=e.patternSpace.slice(i+1),e.restartCycle=!0):e.deleted=!0;break}case"zap":e.patternSpace="";break;case"append":e.appendBuffer.push(t.text);break;case"insert":e.appendBuffer.unshift(`__INSERT__${t.text}`);break;case"change":e.patternSpace=t.text,e.deleted=!0,e.appendBuffer.push(t.text);break;case"hold":e.holdSpace=e.patternSpace;break;case"holdAppend":e.holdSpace?e.holdSpace+=`
159
159
  ${e.patternSpace}`:e.holdSpace=e.patternSpace;break;case"get":e.patternSpace=e.holdSpace;break;case"getAppend":e.patternSpace+=`
160
- ${e.holdSpace}`;break;case"exchange":{let i=e.patternSpace;e.patternSpace=e.holdSpace,e.holdSpace=i;break}case"next":e.printed=!0;break;case"quit":e.quit=!0,t.exitCode!==void 0&&(e.exitCode=t.exitCode);break;case"quitSilent":e.quit=!0,e.quitSilent=!0,t.exitCode!==void 0&&(e.exitCode=t.exitCode);break;case"list":{let i=cd(e.patternSpace);e.lineNumberOutput.push(i);break}case"printFilename":e.currentFilename&&e.lineNumberOutput.push(e.currentFilename);break;case"version":break;case"readFile":e.pendingFileReads.push({filename:t.filename,wholeFile:!0});break;case"readFileLine":e.pendingFileReads.push({filename:t.filename,wholeFile:!1});break;case"writeFile":e.pendingFileWrites.push({filename:t.filename,content:`${e.patternSpace}
160
+ ${e.holdSpace}`;break;case"exchange":{let i=e.patternSpace;e.patternSpace=e.holdSpace,e.holdSpace=i;break}case"next":e.printed=!0;break;case"quit":e.quit=!0,t.exitCode!==void 0&&(e.exitCode=t.exitCode);break;case"quitSilent":e.quit=!0,e.quitSilent=!0,t.exitCode!==void 0&&(e.exitCode=t.exitCode);break;case"list":{let i=Fp(e.patternSpace);e.lineNumberOutput.push(i);break}case"printFilename":e.currentFilename&&e.lineNumberOutput.push(e.currentFilename);break;case"version":break;case"readFile":e.pendingFileReads.push({filename:t.filename,wholeFile:!0});break;case"readFileLine":e.pendingFileReads.push({filename:t.filename,wholeFile:!1});break;case"writeFile":e.pendingFileWrites.push({filename:t.filename,content:`${e.patternSpace}
161
161
  `});break;case"writeFirstLine":{let i=e.patternSpace.indexOf(`
162
162
  `),o=i!==-1?e.patternSpace.slice(0,i):e.patternSpace;e.pendingFileWrites.push({filename:t.filename,content:`${o}
163
- `});break}case"execute":t.command?e.pendingExecute={command:t.command,replacePattern:!1}:e.pendingExecute={command:e.patternSpace,replacePattern:!0};break;case"transliterate":e.patternSpace=fd(e.patternSpace,t);break;case"lineNumber":e.lineNumberOutput.push(String(e.lineNumber));break;case"branch":break;case"branchOnSubst":break;case"branchOnNoSubst":break;case"group":break}}function fd(t,e){let r="";for(let n of t){let s=e.source.indexOf(n);s!==-1?r+=e.dest[s]:r+=n}return r}function jn(t,e,r,n){let s=new Map;for(let c=0;c<t.length;c++){let u=t[c];u.type==="label"&&s.set(u.name,c)}let i=n?.maxIterations??id,o=0,a=0,l=0;for(;l<t.length;){if(o++,o>i)throw new j(`sed: command execution exceeded maximum iterations (${i})`,"iterations");if(e.deleted||e.quit||e.quitSilent||e.restartCycle)break;let c=t[l];if(c.type==="nextAppend"){if(Dt(c.address,e.lineNumber,e.totalLines,e.patternSpace,e.rangeStates))if(r&&r.currentLineIndex+a+1<r.lines.length){a++;let u=r.lines[r.currentLineIndex+a];e.patternSpace+=`
164
- ${u}`,e.lineNumber=r.currentLineIndex+a+1}else{e.quit=!0,e.deleted=!0;break}l++;continue}if(c.type==="branch"){let u=c;if(Dt(u.address,e.lineNumber,e.totalLines,e.patternSpace,e.rangeStates)){if(u.label){let f=s.get(u.label);if(f!==void 0){l=f;continue}}break}l++;continue}if(c.type==="branchOnSubst"){let u=c;if(Dt(u.address,e.lineNumber,e.totalLines,e.patternSpace,e.rangeStates)&&e.substitutionMade){if(e.substitutionMade=!1,u.label){let f=s.get(u.label);if(f!==void 0){l=f;continue}}break}l++;continue}if(c.type==="branchOnNoSubst"){let u=c;if(Dt(u.address,e.lineNumber,e.totalLines,e.patternSpace,e.rangeStates)&&!e.substitutionMade){if(u.label){let f=s.get(u.label);if(f!==void 0){l=f;continue}}break}l++;continue}if(c.type==="group"){let u=c;Dt(u.address,e.lineNumber,e.totalLines,e.patternSpace,e.rangeStates)&&jn(u.commands,e,r,n),l++;continue}ud(c,e),l++}return a}var id,vo=C(()=>{"use strict";oe();id=1e4});var T,Lr,$o=C(()=>{"use strict";(function(t){t.NUMBER="NUMBER",t.DOLLAR="DOLLAR",t.PATTERN="PATTERN",t.STEP="STEP",t.LBRACE="LBRACE",t.RBRACE="RBRACE",t.SEMICOLON="SEMICOLON",t.NEWLINE="NEWLINE",t.COMMA="COMMA",t.COMMAND="COMMAND",t.SUBSTITUTE="SUBSTITUTE",t.TRANSLITERATE="TRANSLITERATE",t.LABEL_DEF="LABEL_DEF",t.BRANCH="BRANCH",t.BRANCH_ON_SUBST="BRANCH_ON_SUBST",t.BRANCH_ON_NO_SUBST="BRANCH_ON_NO_SUBST",t.TEXT_CMD="TEXT_CMD",t.FILE_READ="FILE_READ",t.FILE_READ_LINE="FILE_READ_LINE",t.FILE_WRITE="FILE_WRITE",t.FILE_WRITE_LINE="FILE_WRITE_LINE",t.EXECUTE="EXECUTE",t.EOF="EOF",t.ERROR="ERROR"})(T||(T={}));Lr=class{input;pos=0;line=1;column=1;constructor(e){this.input=e}tokenize(){let e=[];for(;this.pos<this.input.length;){let r=this.nextToken();r&&e.push(r)}return e.push(this.makeToken(T.EOF,"")),e}makeToken(e,r,n){return{type:e,value:r,line:this.line,column:this.column,...n}}peek(e=0){return this.input[this.pos+e]||""}advance(){let e=this.input[this.pos++]||"";return e===`
163
+ `});break}case"execute":t.command?e.pendingExecute={command:t.command,replacePattern:!1}:e.pendingExecute={command:e.patternSpace,replacePattern:!0};break;case"transliterate":e.patternSpace=Op(e.patternSpace,t);break;case"lineNumber":e.lineNumberOutput.push(String(e.lineNumber));break;case"branch":break;case"branchOnSubst":break;case"branchOnNoSubst":break;case"group":break}}function Op(t,e){let r="";for(let n of t){let s=e.source.indexOf(n);s!==-1?r+=e.dest[s]:r+=n}return r}function os(t,e,r,n){let s=new Map;for(let c=0;c<t.length;c++){let u=t[c];u.type==="label"&&s.set(u.name,c)}let i=n?.maxIterations??vp,o=0,a=0,l=0;for(;l<t.length;){if(o++,o>i)throw new z(`sed: command execution exceeded maximum iterations (${i})`,"iterations");if(e.deleted||e.quit||e.quitSilent||e.restartCycle)break;let c=t[l];if(c.type==="nextAppend"){if(Vt(c.address,e.lineNumber,e.totalLines,e.patternSpace,e.rangeStates))if(r&&r.currentLineIndex+a+1<r.lines.length){a++;let u=r.lines[r.currentLineIndex+a];e.patternSpace+=`
164
+ ${u}`,e.lineNumber=r.currentLineIndex+a+1}else{e.quit=!0,e.deleted=!0;break}l++;continue}if(c.type==="branch"){let u=c;if(Vt(u.address,e.lineNumber,e.totalLines,e.patternSpace,e.rangeStates)){if(u.label){let f=s.get(u.label);if(f!==void 0){l=f;continue}}break}l++;continue}if(c.type==="branchOnSubst"){let u=c;if(Vt(u.address,e.lineNumber,e.totalLines,e.patternSpace,e.rangeStates)&&e.substitutionMade){if(e.substitutionMade=!1,u.label){let f=s.get(u.label);if(f!==void 0){l=f;continue}}break}l++;continue}if(c.type==="branchOnNoSubst"){let u=c;if(Vt(u.address,e.lineNumber,e.totalLines,e.patternSpace,e.rangeStates)&&!e.substitutionMade){if(u.label){let f=s.get(u.label);if(f!==void 0){l=f;continue}}break}l++;continue}if(c.type==="group"){let u=c;Vt(u.address,e.lineNumber,e.totalLines,e.patternSpace,e.rangeStates)&&os(u.commands,e,r,n),l++;continue}Tp(c,e),l++}return a}var vp,Vo=C(()=>{"use strict";ie();vp=1e4});var O,Yr,Ko=C(()=>{"use strict";(function(t){t.NUMBER="NUMBER",t.DOLLAR="DOLLAR",t.PATTERN="PATTERN",t.STEP="STEP",t.LBRACE="LBRACE",t.RBRACE="RBRACE",t.SEMICOLON="SEMICOLON",t.NEWLINE="NEWLINE",t.COMMA="COMMA",t.COMMAND="COMMAND",t.SUBSTITUTE="SUBSTITUTE",t.TRANSLITERATE="TRANSLITERATE",t.LABEL_DEF="LABEL_DEF",t.BRANCH="BRANCH",t.BRANCH_ON_SUBST="BRANCH_ON_SUBST",t.BRANCH_ON_NO_SUBST="BRANCH_ON_NO_SUBST",t.TEXT_CMD="TEXT_CMD",t.FILE_READ="FILE_READ",t.FILE_READ_LINE="FILE_READ_LINE",t.FILE_WRITE="FILE_WRITE",t.FILE_WRITE_LINE="FILE_WRITE_LINE",t.EXECUTE="EXECUTE",t.EOF="EOF",t.ERROR="ERROR"})(O||(O={}));Yr=class{input;pos=0;line=1;column=1;constructor(e){this.input=e}tokenize(){let e=[];for(;this.pos<this.input.length;){let r=this.nextToken();r&&e.push(r)}return e.push(this.makeToken(O.EOF,"")),e}makeToken(e,r,n){return{type:e,value:r,line:this.line,column:this.column,...n}}peek(e=0){return this.input[this.pos+e]||""}advance(){let e=this.input[this.pos++]||"";return e===`
165
165
  `?(this.line++,this.column=1):this.column++,e}skipWhitespace(){for(;this.pos<this.input.length;){let e=this.peek();if(e===" "||e===" "||e==="\r")this.advance();else if(e==="#")for(;this.pos<this.input.length&&this.peek()!==`
166
166
  `;)this.advance();else break}}nextToken(){if(this.skipWhitespace(),this.pos>=this.input.length)return null;let e=this.line,r=this.column,n=this.peek();return n===`
167
- `?(this.advance(),{type:T.NEWLINE,value:`
168
- `,line:e,column:r}):n===";"?(this.advance(),{type:T.SEMICOLON,value:";",line:e,column:r}):n==="{"?(this.advance(),{type:T.LBRACE,value:"{",line:e,column:r}):n==="}"?(this.advance(),{type:T.RBRACE,value:"}",line:e,column:r}):n===","?(this.advance(),{type:T.COMMA,value:",",line:e,column:r}):n==="$"?(this.advance(),{type:T.DOLLAR,value:"$",line:e,column:r}):this.isDigit(n)?this.readNumber():n==="/"?this.readPattern():n===":"?this.readLabelDef():this.readCommand()}readNumber(){let e=this.line,r=this.column,n="";for(;this.isDigit(this.peek());)n+=this.advance();if(this.peek()==="~"){this.advance();let s="";for(;this.isDigit(this.peek());)s+=this.advance();let i=parseInt(n,10),o=parseInt(s,10)||0;return{type:T.STEP,value:`${i}~${o}`,first:i,step:o,line:e,column:r}}return{type:T.NUMBER,value:parseInt(n,10),line:e,column:r}}readPattern(){let e=this.line,r=this.column;this.advance();let n="";for(;this.pos<this.input.length&&this.peek()!=="/";)if(this.peek()==="\\")n+=this.advance(),this.pos<this.input.length&&(n+=this.advance());else{if(this.peek()===`
169
- `)break;n+=this.advance()}return this.peek()==="/"&&this.advance(),{type:T.PATTERN,value:n,pattern:n,line:e,column:r}}readLabelDef(){let e=this.line,r=this.column;this.advance();let n="";for(;this.pos<this.input.length;){let s=this.peek();if(s===" "||s===" "||s===`
170
- `||s===";"||s==="}"||s==="{")break;n+=this.advance()}return{type:T.LABEL_DEF,value:n,label:n,line:e,column:r}}readCommand(){let e=this.line,r=this.column,n=this.advance();switch(n){case"s":return this.readSubstitute(e,r);case"y":return this.readTransliterate(e,r);case"a":case"i":case"c":return this.readTextCommand(n,e,r);case"b":return this.readBranch(T.BRANCH,"b",e,r);case"t":return this.readBranch(T.BRANCH_ON_SUBST,"t",e,r);case"T":return this.readBranch(T.BRANCH_ON_NO_SUBST,"T",e,r);case"r":return this.readFileCommand(T.FILE_READ,"r",e,r);case"R":return this.readFileCommand(T.FILE_READ_LINE,"R",e,r);case"w":return this.readFileCommand(T.FILE_WRITE,"w",e,r);case"W":return this.readFileCommand(T.FILE_WRITE_LINE,"W",e,r);case"e":return this.readExecute(e,r);case"p":case"P":case"d":case"D":case"h":case"H":case"g":case"G":case"x":case"n":case"N":case"q":case"Q":case"z":case"=":case"l":case"F":case"v":return{type:T.COMMAND,value:n,line:e,column:r};default:return{type:T.ERROR,value:n,line:e,column:r}}}readSubstitute(e,r){let n=this.advance();if(!n||n===`
171
- `)return{type:T.ERROR,value:"s",line:e,column:r};let s="";for(;this.pos<this.input.length&&this.peek()!==n;)if(this.peek()==="\\")s+=this.advance(),this.pos<this.input.length&&this.peek()!==`
167
+ `?(this.advance(),{type:O.NEWLINE,value:`
168
+ `,line:e,column:r}):n===";"?(this.advance(),{type:O.SEMICOLON,value:";",line:e,column:r}):n==="{"?(this.advance(),{type:O.LBRACE,value:"{",line:e,column:r}):n==="}"?(this.advance(),{type:O.RBRACE,value:"}",line:e,column:r}):n===","?(this.advance(),{type:O.COMMA,value:",",line:e,column:r}):n==="$"?(this.advance(),{type:O.DOLLAR,value:"$",line:e,column:r}):this.isDigit(n)?this.readNumber():n==="/"?this.readPattern():n===":"?this.readLabelDef():this.readCommand()}readNumber(){let e=this.line,r=this.column,n="";for(;this.isDigit(this.peek());)n+=this.advance();if(this.peek()==="~"){this.advance();let s="";for(;this.isDigit(this.peek());)s+=this.advance();let i=parseInt(n,10),o=parseInt(s,10)||0;return{type:O.STEP,value:`${i}~${o}`,first:i,step:o,line:e,column:r}}return{type:O.NUMBER,value:parseInt(n,10),line:e,column:r}}readPattern(){let e=this.line,r=this.column;this.advance();let n="";for(;this.pos<this.input.length&&this.peek()!=="/";)if(this.peek()==="\\")n+=this.advance(),this.pos<this.input.length&&(n+=this.advance());else{if(this.peek()===`
169
+ `)break;n+=this.advance()}return this.peek()==="/"&&this.advance(),{type:O.PATTERN,value:n,pattern:n,line:e,column:r}}readLabelDef(){let e=this.line,r=this.column;this.advance();let n="";for(;this.pos<this.input.length;){let s=this.peek();if(s===" "||s===" "||s===`
170
+ `||s===";"||s==="}"||s==="{")break;n+=this.advance()}return{type:O.LABEL_DEF,value:n,label:n,line:e,column:r}}readCommand(){let e=this.line,r=this.column,n=this.advance();switch(n){case"s":return this.readSubstitute(e,r);case"y":return this.readTransliterate(e,r);case"a":case"i":case"c":return this.readTextCommand(n,e,r);case"b":return this.readBranch(O.BRANCH,"b",e,r);case"t":return this.readBranch(O.BRANCH_ON_SUBST,"t",e,r);case"T":return this.readBranch(O.BRANCH_ON_NO_SUBST,"T",e,r);case"r":return this.readFileCommand(O.FILE_READ,"r",e,r);case"R":return this.readFileCommand(O.FILE_READ_LINE,"R",e,r);case"w":return this.readFileCommand(O.FILE_WRITE,"w",e,r);case"W":return this.readFileCommand(O.FILE_WRITE_LINE,"W",e,r);case"e":return this.readExecute(e,r);case"p":case"P":case"d":case"D":case"h":case"H":case"g":case"G":case"x":case"n":case"N":case"q":case"Q":case"z":case"=":case"l":case"F":case"v":return{type:O.COMMAND,value:n,line:e,column:r};default:return{type:O.ERROR,value:n,line:e,column:r}}}readSubstitute(e,r){let n=this.advance();if(!n||n===`
171
+ `)return{type:O.ERROR,value:"s",line:e,column:r};let s="";for(;this.pos<this.input.length&&this.peek()!==n;)if(this.peek()==="\\")s+=this.advance(),this.pos<this.input.length&&this.peek()!==`
172
172
  `&&(s+=this.advance());else{if(this.peek()===`
173
- `)break;s+=this.advance()}if(this.peek()!==n)return{type:T.ERROR,value:"unterminated substitution pattern",line:e,column:r};this.advance();let i="";for(;this.pos<this.input.length&&this.peek()!==n;)if(this.peek()==="\\")i+=this.advance(),this.pos<this.input.length&&this.peek()!==`
173
+ `)break;s+=this.advance()}if(this.peek()!==n)return{type:O.ERROR,value:"unterminated substitution pattern",line:e,column:r};this.advance();let i="";for(;this.pos<this.input.length&&this.peek()!==n;)if(this.peek()==="\\")i+=this.advance(),this.pos<this.input.length&&this.peek()!==`
174
174
  `&&(i+=this.advance());else{if(this.peek()===`
175
- `)break;i+=this.advance()}this.peek()===n&&this.advance();let o="";for(;this.pos<this.input.length;){let a=this.peek();if(a==="g"||a==="i"||a==="p"||a==="I"||this.isDigit(a))o+=this.advance();else break}return{type:T.SUBSTITUTE,value:`s${n}${s}${n}${i}${n}${o}`,pattern:s,replacement:i,flags:o,line:e,column:r}}readTransliterate(e,r){let n=this.advance();if(!n||n===`
176
- `)return{type:T.ERROR,value:"y",line:e,column:r};let s="";for(;this.pos<this.input.length&&this.peek()!==n;)if(this.peek()==="\\"){this.advance();let o=this.advance();o==="n"?s+=`
175
+ `)break;i+=this.advance()}this.peek()===n&&this.advance();let o="";for(;this.pos<this.input.length;){let a=this.peek();if(a==="g"||a==="i"||a==="p"||a==="I"||this.isDigit(a))o+=this.advance();else break}return{type:O.SUBSTITUTE,value:`s${n}${s}${n}${i}${n}${o}`,pattern:s,replacement:i,flags:o,line:e,column:r}}readTransliterate(e,r){let n=this.advance();if(!n||n===`
176
+ `)return{type:O.ERROR,value:"y",line:e,column:r};let s="";for(;this.pos<this.input.length&&this.peek()!==n;)if(this.peek()==="\\"){this.advance();let o=this.advance();o==="n"?s+=`
177
177
  `:o==="t"?s+=" ":s+=o}else{if(this.peek()===`
178
- `)break;s+=this.advance()}if(this.peek()!==n)return{type:T.ERROR,value:"unterminated transliteration source",line:e,column:r};this.advance();let i="";for(;this.pos<this.input.length&&this.peek()!==n;)if(this.peek()==="\\"){this.advance();let o=this.advance();o==="n"?i+=`
178
+ `)break;s+=this.advance()}if(this.peek()!==n)return{type:O.ERROR,value:"unterminated transliteration source",line:e,column:r};this.advance();let i="";for(;this.pos<this.input.length&&this.peek()!==n;)if(this.peek()==="\\"){this.advance();let o=this.advance();o==="n"?i+=`
179
179
  `:o==="t"?i+=" ":i+=o}else{if(this.peek()===`
180
- `)break;i+=this.advance()}return this.peek()===n&&this.advance(),{type:T.TRANSLITERATE,value:`y${n}${s}${n}${i}${n}`,source:s,dest:i,line:e,column:r}}readTextCommand(e,r,n){this.peek()==="\\"&&this.advance(),this.peek()===" "&&this.advance();let s="";for(;this.pos<this.input.length&&this.peek()!==`
181
- `;)s+=this.advance();return{type:T.TEXT_CMD,value:e,text:s.trim(),line:r,column:n}}readBranch(e,r,n,s){for(;this.peek()===" "||this.peek()===" ";)this.advance();let i="";for(;this.pos<this.input.length;){let o=this.peek();if(o===" "||o===" "||o===`
180
+ `)break;i+=this.advance()}return this.peek()===n&&this.advance(),{type:O.TRANSLITERATE,value:`y${n}${s}${n}${i}${n}`,source:s,dest:i,line:e,column:r}}readTextCommand(e,r,n){this.peek()==="\\"&&this.advance(),this.peek()===" "&&this.advance();let s="";for(;this.pos<this.input.length&&this.peek()!==`
181
+ `;)s+=this.advance();return{type:O.TEXT_CMD,value:e,text:s.trim(),line:r,column:n}}readBranch(e,r,n,s){for(;this.peek()===" "||this.peek()===" ";)this.advance();let i="";for(;this.pos<this.input.length;){let o=this.peek();if(o===" "||o===" "||o===`
182
182
  `||o===";"||o==="}"||o==="{")break;i+=this.advance()}return{type:e,value:r,label:i||void 0,line:n,column:s}}readFileCommand(e,r,n,s){for(;this.peek()===" "||this.peek()===" ";)this.advance();let i="";for(;this.pos<this.input.length;){let o=this.peek();if(o===`
183
183
  `||o===";")break;i+=this.advance()}return{type:e,value:r,filename:i.trim(),line:n,column:s}}readExecute(e,r){for(;this.peek()===" "||this.peek()===" ";)this.advance();let n="";for(;this.pos<this.input.length;){let s=this.peek();if(s===`
184
- `||s===";")break;n+=this.advance()}return{type:T.EXECUTE,value:"e",command:n.trim()||void 0,line:e,column:r}}isDigit(e){return e>="0"&&e<="9"}}});function Ro(t,e=!1){return new zn(t,e).parse()}var zn,Po=C(()=>{"use strict";$o();zn=class{scripts;tokens=[];pos=0;extendedRegex=!1;constructor(e,r=!1){this.scripts=e,this.extendedRegex=r}parse(){let e=[];for(let r of this.scripts){let n=new Lr(r);for(this.tokens=n.tokenize(),this.pos=0;!this.isAtEnd();){if(this.check(T.NEWLINE)||this.check(T.SEMICOLON)){this.advance();continue}let s=this.parseCommand();if(s.error)return{commands:[],error:s.error};s.command&&e.push(s.command)}}return{commands:e}}parseCommand(){let e=this.parseAddressRange();for(;this.check(T.NEWLINE)||this.check(T.SEMICOLON);)this.advance();if(this.isAtEnd())return e&&(e.start!==void 0||e.end!==void 0)?{command:{type:"print",address:e}}:{command:null};let r=this.peek();switch(r.type){case T.COMMAND:return this.parseSimpleCommand(r,e);case T.SUBSTITUTE:return this.parseSubstituteFromToken(r,e);case T.TRANSLITERATE:return this.parseTransliterateFromToken(r,e);case T.LABEL_DEF:return this.advance(),{command:{type:"label",name:r.label||""}};case T.BRANCH:return this.advance(),{command:{type:"branch",address:e,label:r.label}};case T.BRANCH_ON_SUBST:return this.advance(),{command:{type:"branchOnSubst",address:e,label:r.label}};case T.BRANCH_ON_NO_SUBST:return this.advance(),{command:{type:"branchOnNoSubst",address:e,label:r.label}};case T.TEXT_CMD:return this.advance(),this.parseTextCommand(r,e);case T.FILE_READ:return this.advance(),{command:{type:"readFile",address:e,filename:r.filename||""}};case T.FILE_READ_LINE:return this.advance(),{command:{type:"readFileLine",address:e,filename:r.filename||""}};case T.FILE_WRITE:return this.advance(),{command:{type:"writeFile",address:e,filename:r.filename||""}};case T.FILE_WRITE_LINE:return this.advance(),{command:{type:"writeFirstLine",address:e,filename:r.filename||""}};case T.EXECUTE:return this.advance(),{command:{type:"execute",address:e,command:r.command}};case T.LBRACE:return this.parseGroup(e);case T.RBRACE:return{command:null};case T.ERROR:return{command:null,error:`invalid command: ${r.value}`};default:return e&&(e.start!==void 0||e.end!==void 0)?{command:{type:"print",address:e}}:{command:null}}}parseSimpleCommand(e,r){this.advance();let n=e.value;switch(n){case"p":return{command:{type:"print",address:r}};case"P":return{command:{type:"printFirstLine",address:r}};case"d":return{command:{type:"delete",address:r}};case"D":return{command:{type:"deleteFirstLine",address:r}};case"h":return{command:{type:"hold",address:r}};case"H":return{command:{type:"holdAppend",address:r}};case"g":return{command:{type:"get",address:r}};case"G":return{command:{type:"getAppend",address:r}};case"x":return{command:{type:"exchange",address:r}};case"n":return{command:{type:"next",address:r}};case"N":return{command:{type:"nextAppend",address:r}};case"q":return{command:{type:"quit",address:r}};case"Q":return{command:{type:"quitSilent",address:r}};case"z":return{command:{type:"zap",address:r}};case"=":return{command:{type:"lineNumber",address:r}};case"l":return{command:{type:"list",address:r}};case"F":return{command:{type:"printFilename",address:r}};case"v":return{command:{type:"version",address:r}};default:return{command:null,error:`unknown command: ${n}`}}}parseSubstituteFromToken(e,r){this.advance();let n=e.flags||"",s,i=n.match(/(\d+)/);return i&&(s=parseInt(i[1],10)),{command:{type:"substitute",address:r,pattern:e.pattern||"",replacement:e.replacement||"",global:n.includes("g"),ignoreCase:n.includes("i")||n.includes("I"),printOnMatch:n.includes("p"),nthOccurrence:s,extendedRegex:this.extendedRegex}}}parseTransliterateFromToken(e,r){this.advance();let n=e.source||"",s=e.dest||"";return n.length!==s.length?{command:null,error:"transliteration sets must have same length"}:{command:{type:"transliterate",address:r,source:n,dest:s}}}parseTextCommand(e,r){let n=e.value,s=e.text||"";switch(n){case"a":return{command:{type:"append",address:r,text:s}};case"i":return{command:{type:"insert",address:r,text:s}};case"c":return{command:{type:"change",address:r,text:s}};default:return{command:null,error:`unknown text command: ${n}`}}}parseGroup(e){this.advance();let r=[];for(;!this.isAtEnd()&&!this.check(T.RBRACE);){if(this.check(T.NEWLINE)||this.check(T.SEMICOLON)){this.advance();continue}let n=this.parseCommand();if(n.error)return{command:null,error:n.error};n.command&&r.push(n.command)}return this.check(T.RBRACE)?(this.advance(),{command:{type:"group",address:e,commands:r}}):{command:null,error:"unmatched brace in grouped commands"}}parseAddressRange(){let e=this.parseAddress();if(e===void 0)return;let r;return this.check(T.COMMA)&&(this.advance(),r=this.parseAddress()),{start:e,end:r}}parseAddress(){let e=this.peek();switch(e.type){case T.NUMBER:return this.advance(),e.value;case T.DOLLAR:return this.advance(),"$";case T.PATTERN:return this.advance(),{pattern:e.pattern||e.value};case T.STEP:return this.advance(),{first:e.first||0,step:e.step||0};default:return}}peek(){return this.tokens[this.pos]||{type:T.EOF,value:"",line:0,column:0}}advance(){return this.isAtEnd()||this.pos++,this.tokens[this.pos-1]}check(e){return this.peek().type===e}isAtEnd(){return this.peek().type===T.EOF}}});var Fo={};R(Fo,{sedCommand:()=>dd});async function Hn(t,e,r,n={}){let{limits:s,filename:i,fs:o,cwd:a}=n,l=t.split(`
185
- `);l.length>0&&l[l.length-1]===""&&l.pop();let c=l.length,u="",f,p="",d=new Map,h=new Map,m=new Map,g=new Map,w=s?{maxIterations:s.maxSedIterations}:void 0;for(let E=0;E<l.length;E++){let b={...Io(c,i,d),patternSpace:l[E],holdSpace:p,lineNumber:E+1,totalLines:c,substitutionMade:!1},S={lines:l,currentLineIndex:E},I=0,D=1e4,v=0;do{if(I++,I>D)break;b.restartCycle=!1,b.pendingFileReads=[],b.pendingFileWrites=[];let K=jn(e,b,S,w);if(v+=K,o&&a){for(let Y of b.pendingFileReads){let re=o.resolvePath(a,Y.filename);try{if(Y.wholeFile){let H=await o.readFile(re);b.appendBuffer.push(H.replace(/\n$/,""))}else{if(!h.has(re)){let X=await o.readFile(re);h.set(re,X.split(`
186
- `)),m.set(re,0)}let H=h.get(re),ce=m.get(re);H&&ce!==void 0&&ce<H.length&&(b.appendBuffer.push(H[ce]),m.set(re,ce+1))}}catch{}}for(let Y of b.pendingFileWrites){let re=o.resolvePath(a,Y.filename),H=g.get(re)||"";g.set(re,H+Y.content)}}S.currentLineIndex+=K}while(b.restartCycle&&!b.deleted&&!b.quit&&!b.quitSilent);E+=v,p=b.holdSpace;for(let K of b.lineNumberOutput)u+=`${K}
187
- `;let $=[],V=[];for(let K of b.appendBuffer)K.startsWith("__INSERT__")?$.push(K.slice(10)):V.push(K);for(let K of $)u+=`${K}
184
+ `||s===";")break;n+=this.advance()}return{type:O.EXECUTE,value:"e",command:n.trim()||void 0,line:e,column:r}}isDigit(e){return e>="0"&&e<="9"}}});function Zo(t,e=!1){return new as(t,e).parse()}var as,Qo=C(()=>{"use strict";Ko();as=class{scripts;tokens=[];pos=0;extendedRegex=!1;constructor(e,r=!1){this.scripts=e,this.extendedRegex=r}parse(){let e=[];for(let r of this.scripts){let n=new Yr(r);for(this.tokens=n.tokenize(),this.pos=0;!this.isAtEnd();){if(this.check(O.NEWLINE)||this.check(O.SEMICOLON)){this.advance();continue}let s=this.parseCommand();if(s.error)return{commands:[],error:s.error};s.command&&e.push(s.command)}}return{commands:e}}parseCommand(){let e=this.parseAddressRange();for(;this.check(O.NEWLINE)||this.check(O.SEMICOLON);)this.advance();if(this.isAtEnd())return e&&(e.start!==void 0||e.end!==void 0)?{command:{type:"print",address:e}}:{command:null};let r=this.peek();switch(r.type){case O.COMMAND:return this.parseSimpleCommand(r,e);case O.SUBSTITUTE:return this.parseSubstituteFromToken(r,e);case O.TRANSLITERATE:return this.parseTransliterateFromToken(r,e);case O.LABEL_DEF:return this.advance(),{command:{type:"label",name:r.label||""}};case O.BRANCH:return this.advance(),{command:{type:"branch",address:e,label:r.label}};case O.BRANCH_ON_SUBST:return this.advance(),{command:{type:"branchOnSubst",address:e,label:r.label}};case O.BRANCH_ON_NO_SUBST:return this.advance(),{command:{type:"branchOnNoSubst",address:e,label:r.label}};case O.TEXT_CMD:return this.advance(),this.parseTextCommand(r,e);case O.FILE_READ:return this.advance(),{command:{type:"readFile",address:e,filename:r.filename||""}};case O.FILE_READ_LINE:return this.advance(),{command:{type:"readFileLine",address:e,filename:r.filename||""}};case O.FILE_WRITE:return this.advance(),{command:{type:"writeFile",address:e,filename:r.filename||""}};case O.FILE_WRITE_LINE:return this.advance(),{command:{type:"writeFirstLine",address:e,filename:r.filename||""}};case O.EXECUTE:return this.advance(),{command:{type:"execute",address:e,command:r.command}};case O.LBRACE:return this.parseGroup(e);case O.RBRACE:return{command:null};case O.ERROR:return{command:null,error:`invalid command: ${r.value}`};default:return e&&(e.start!==void 0||e.end!==void 0)?{command:{type:"print",address:e}}:{command:null}}}parseSimpleCommand(e,r){this.advance();let n=e.value;switch(n){case"p":return{command:{type:"print",address:r}};case"P":return{command:{type:"printFirstLine",address:r}};case"d":return{command:{type:"delete",address:r}};case"D":return{command:{type:"deleteFirstLine",address:r}};case"h":return{command:{type:"hold",address:r}};case"H":return{command:{type:"holdAppend",address:r}};case"g":return{command:{type:"get",address:r}};case"G":return{command:{type:"getAppend",address:r}};case"x":return{command:{type:"exchange",address:r}};case"n":return{command:{type:"next",address:r}};case"N":return{command:{type:"nextAppend",address:r}};case"q":return{command:{type:"quit",address:r}};case"Q":return{command:{type:"quitSilent",address:r}};case"z":return{command:{type:"zap",address:r}};case"=":return{command:{type:"lineNumber",address:r}};case"l":return{command:{type:"list",address:r}};case"F":return{command:{type:"printFilename",address:r}};case"v":return{command:{type:"version",address:r}};default:return{command:null,error:`unknown command: ${n}`}}}parseSubstituteFromToken(e,r){this.advance();let n=e.flags||"",s,i=n.match(/(\d+)/);return i&&(s=parseInt(i[1],10)),{command:{type:"substitute",address:r,pattern:e.pattern||"",replacement:e.replacement||"",global:n.includes("g"),ignoreCase:n.includes("i")||n.includes("I"),printOnMatch:n.includes("p"),nthOccurrence:s,extendedRegex:this.extendedRegex}}}parseTransliterateFromToken(e,r){this.advance();let n=e.source||"",s=e.dest||"";return n.length!==s.length?{command:null,error:"transliteration sets must have same length"}:{command:{type:"transliterate",address:r,source:n,dest:s}}}parseTextCommand(e,r){let n=e.value,s=e.text||"";switch(n){case"a":return{command:{type:"append",address:r,text:s}};case"i":return{command:{type:"insert",address:r,text:s}};case"c":return{command:{type:"change",address:r,text:s}};default:return{command:null,error:`unknown text command: ${n}`}}}parseGroup(e){this.advance();let r=[];for(;!this.isAtEnd()&&!this.check(O.RBRACE);){if(this.check(O.NEWLINE)||this.check(O.SEMICOLON)){this.advance();continue}let n=this.parseCommand();if(n.error)return{command:null,error:n.error};n.command&&r.push(n.command)}return this.check(O.RBRACE)?(this.advance(),{command:{type:"group",address:e,commands:r}}):{command:null,error:"unmatched brace in grouped commands"}}parseAddressRange(){let e=this.parseAddress();if(e===void 0)return;let r;return this.check(O.COMMA)&&(this.advance(),r=this.parseAddress()),{start:e,end:r}}parseAddress(){let e=this.peek();switch(e.type){case O.NUMBER:return this.advance(),e.value;case O.DOLLAR:return this.advance(),"$";case O.PATTERN:return this.advance(),{pattern:e.pattern||e.value};case O.STEP:return this.advance(),{first:e.first||0,step:e.step||0};default:return}}peek(){return this.tokens[this.pos]||{type:O.EOF,value:"",line:0,column:0}}advance(){return this.isAtEnd()||this.pos++,this.tokens[this.pos-1]}check(e){return this.peek().type===e}isAtEnd(){return this.peek().type===O.EOF}}});var Xo={};$(Xo,{sedCommand:()=>Lp});async function ls(t,e,r,n={}){let{limits:s,filename:i,fs:o,cwd:a}=n,l=t.split(`
185
+ `);l.length>0&&l[l.length-1]===""&&l.pop();let c=l.length,u="",f,d="",p=new Map,h=new Map,m=new Map,g=new Map,w=s?{maxIterations:s.maxSedIterations}:void 0;for(let E=0;E<l.length;E++){let b={...qo(c,i,p),patternSpace:l[E],holdSpace:d,lineNumber:E+1,totalLines:c,substitutionMade:!1},S={lines:l,currentLineIndex:E},I=0,F=1e4,W=0;do{if(I++,I>F)break;b.restartCycle=!1,b.pendingFileReads=[],b.pendingFileWrites=[];let te=os(e,b,S,w);if(W+=te,o&&a){for(let Te of b.pendingFileReads){let D=o.resolvePath(a,Te.filename);try{if(Te.wholeFile){let _=await o.readFile(D);b.appendBuffer.push(_.replace(/\n$/,""))}else{if(!h.has(D)){let le=await o.readFile(D);h.set(D,le.split(`
186
+ `)),m.set(D,0)}let _=h.get(D),G=m.get(D);_&&G!==void 0&&G<_.length&&(b.appendBuffer.push(_[G]),m.set(D,G+1))}}catch{}}for(let Te of b.pendingFileWrites){let D=o.resolvePath(a,Te.filename),_=g.get(D)||"";g.set(D,_+Te.content)}}S.currentLineIndex+=te}while(b.restartCycle&&!b.deleted&&!b.quit&&!b.quitSilent);E+=W,d=b.holdSpace;for(let te of b.lineNumberOutput)u+=`${te}
187
+ `;let j=[],pe=[];for(let te of b.appendBuffer)te.startsWith("__INSERT__")?j.push(te.slice(10)):pe.push(te);for(let te of j)u+=`${te}
188
188
  `;!b.deleted&&!b.quitSilent&&(r?b.printed&&(u+=`${b.patternSpace}
189
189
  `):u+=`${b.patternSpace}
190
- `);for(let K of V)u+=`${K}
191
- `;if(b.quit||b.quitSilent){b.exitCode!==void 0&&(f=b.exitCode);break}}if(o&&a)for(let[E,b]of g)try{await o.writeFile(E,b)}catch{}return{output:u,exitCode:f}}var pd,dd,Oo=C(()=>{"use strict";oe();L();vo();Po();pd={name:"sed",summary:"stream editor for filtering and transforming text",usage:"sed [OPTION]... {script} [input-file]...",options:["-n, --quiet, --silent suppress automatic printing of pattern space","-e script add the script to commands to be executed","-f script-file read script from file","-i, --in-place edit files in place","-E, -r, --regexp-extended use extended regular expressions"," --help display this help and exit"],description:`Commands:
190
+ `);for(let te of pe)u+=`${te}
191
+ `;if(b.quit||b.quitSilent){b.exitCode!==void 0&&(f=b.exitCode);break}}if(o&&a)for(let[E,b]of g)try{await o.writeFile(E,b)}catch{}return{output:u,exitCode:f}}var Dp,Lp,Jo=C(()=>{"use strict";ie();L();Vo();Qo();Dp={name:"sed",summary:"stream editor for filtering and transforming text",usage:"sed [OPTION]... {script} [input-file]...",options:["-n, --quiet, --silent suppress automatic printing of pattern space","-e script add the script to commands to be executed","-f script-file read script from file","-i, --in-place edit files in place","-E, -r, --regexp-extended use extended regular expressions"," --help display this help and exit"],description:`Commands:
192
192
  s/regexp/replacement/[flags] substitute
193
193
  d delete pattern space
194
194
  p print pattern space
@@ -217,36 +217,36 @@ Addresses:
217
217
  $ last line
218
218
  /regexp/ lines matching regexp
219
219
  N,M range from line N to M
220
- first~step every step-th line starting at first`};dd={name:"sed",async execute(t,e){if(N(t))return k(pd);let r=[],n=[],s=!1,i=!1,o=!1,a=[];for(let f=0;f<t.length;f++){let p=t[f];if(p==="-n"||p==="--quiet"||p==="--silent")s=!0;else if(p==="-i"||p==="--in-place")i=!0;else if(p.startsWith("-i"))i=!0;else if(p==="-E"||p==="-r"||p==="--regexp-extended")o=!0;else if(p==="-e")f+1<t.length&&r.push(t[++f]);else if(p==="-f")f+1<t.length&&n.push(t[++f]);else{if(p.startsWith("--"))return P("sed",p);if(p.startsWith("-")&&p.length>1){for(let d of p.slice(1))if(d!=="n"&&d!=="e"&&d!=="f"&&d!=="i"&&d!=="E"&&d!=="r")return P("sed",`-${d}`);p.includes("n")&&(s=!0),p.includes("i")&&(i=!0),(p.includes("E")||p.includes("r"))&&(o=!0),p.includes("e")&&!p.includes("n")&&!p.includes("i")&&f+1<t.length&&r.push(t[++f]),p.includes("f")&&!p.includes("e")&&f+1<t.length&&n.push(t[++f])}else!p.startsWith("-")&&r.length===0&&n.length===0?r.push(p):p.startsWith("-")||a.push(p)}}for(let f of n){let p=e.fs.resolvePath(e.cwd,f);try{let d=await e.fs.readFile(p);for(let h of d.split(`
220
+ first~step every step-th line starting at first`};Lp={name:"sed",async execute(t,e){if(N(t))return k(Dp);let r=[],n=[],s=!1,i=!1,o=!1,a=[];for(let f=0;f<t.length;f++){let d=t[f];if(d==="-n"||d==="--quiet"||d==="--silent")s=!0;else if(d==="-i"||d==="--in-place")i=!0;else if(d.startsWith("-i"))i=!0;else if(d==="-E"||d==="-r"||d==="--regexp-extended")o=!0;else if(d==="-e")f+1<t.length&&r.push(t[++f]);else if(d==="-f")f+1<t.length&&n.push(t[++f]);else{if(d.startsWith("--"))return R("sed",d);if(d.startsWith("-")&&d.length>1){for(let p of d.slice(1))if(p!=="n"&&p!=="e"&&p!=="f"&&p!=="i"&&p!=="E"&&p!=="r")return R("sed",`-${p}`);d.includes("n")&&(s=!0),d.includes("i")&&(i=!0),(d.includes("E")||d.includes("r"))&&(o=!0),d.includes("e")&&!d.includes("n")&&!d.includes("i")&&f+1<t.length&&r.push(t[++f]),d.includes("f")&&!d.includes("e")&&f+1<t.length&&n.push(t[++f])}else!d.startsWith("-")&&r.length===0&&n.length===0?r.push(d):d.startsWith("-")||a.push(d)}}for(let f of n){let d=e.fs.resolvePath(e.cwd,f);try{let p=await e.fs.readFile(d);for(let h of p.split(`
221
221
  `)){let m=h.trim();m&&!m.startsWith("#")&&r.push(m)}}catch{return{stdout:"",stderr:`sed: couldn't open file ${f}: No such file or directory
222
222
  `,exitCode:1}}}if(r.length===0)return{stdout:"",stderr:`sed: no script specified
223
- `,exitCode:1};let{commands:l,error:c}=Ro(r,o);if(c)return{stdout:"",stderr:`sed: ${c}
223
+ `,exitCode:1};let{commands:l,error:c}=Zo(r,o);if(c)return{stdout:"",stderr:`sed: ${c}
224
224
  `,exitCode:1};if(l.length===0)return{stdout:"",stderr:`sed: no valid commands
225
- `,exitCode:1};let u="";if(a.length===0){u=e.stdin;try{let f=await Hn(u,l,s,{limits:e.limits,fs:e.fs,cwd:e.cwd});return{stdout:f.output,stderr:"",exitCode:f.exitCode??0}}catch(f){if(f instanceof j)return{stdout:"",stderr:`sed: ${f.message}
226
- `,exitCode:j.EXIT_CODE};throw f}}if(i){for(let f of a){let p=e.fs.resolvePath(e.cwd,f);try{let d=await e.fs.readFile(p),h=await Hn(d,l,s,{limits:e.limits,filename:f,fs:e.fs,cwd:e.cwd});await e.fs.writeFile(p,h.output)}catch(d){return d instanceof j?{stdout:"",stderr:`sed: ${d.message}
227
- `,exitCode:j.EXIT_CODE}:{stdout:"",stderr:`sed: ${f}: No such file or directory
228
- `,exitCode:1}}}return{stdout:"",stderr:"",exitCode:0}}for(let f of a){let p=e.fs.resolvePath(e.cwd,f);try{u+=await e.fs.readFile(p)}catch(d){return d instanceof j?{stdout:"",stderr:`sed: ${d.message}
229
- `,exitCode:j.EXIT_CODE}:{stdout:"",stderr:`sed: ${f}: No such file or directory
230
- `,exitCode:1}}}try{let f=await Hn(u,l,s,{limits:e.limits,filename:a.length===1?a[0]:void 0,fs:e.fs,cwd:e.cwd});return{stdout:f.output,stderr:"",exitCode:f.exitCode??0}}catch(f){if(f instanceof j)return{stdout:"",stderr:`sed: ${f.message}
231
- `,exitCode:j.EXIT_CODE};throw f}}}});function Gn(t={}){let{fieldSep:e=/\s+/,maxIterations:r=1e4,maxRecursionDepth:n=100,fs:s,cwd:i}=t;return{FS:" ",OFS:" ",ORS:`
232
- `,NR:0,NF:0,FNR:0,FILENAME:"",RSTART:0,RLENGTH:-1,SUBSEP:"",fields:[],line:"",vars:{},arrays:{},ARGC:0,ARGV:{},functions:new Map,fieldSep:e,maxIterations:r,maxRecursionDepth:n,currentRecursionDepth:0,exitCode:0,shouldExit:!1,shouldNext:!1,shouldNextFile:!1,loopBreak:!1,loopContinue:!1,hasReturn:!1,output:"",openedFiles:new Set,fs:s,cwd:i}}var To=C(()=>{"use strict"});function Do(t,e,r){switch(r){case"+":return t+e;case"-":return t-e;case"*":return t*e;case"/":return e!==0?t/e:0;case"%":return e!==0?t%e:0;case"^":case"**":return t**e;default:return 0}}var Lo=C(()=>{"use strict"});function Le(t){if(typeof t=="number")return t;let e=parseFloat(t);return Number.isNaN(e)?0:e}function me(t){return typeof t=="string"?t:(Number.isInteger(t),String(t))}async function hd(t,e,r){return t.length===0?e.line.length:me(await r.evalExpr(t[0])).length}async function md(t,e,r){if(t.length<2)return"";let n=me(await r.evalExpr(t[0])),s=Math.floor(Le(await r.evalExpr(t[1])))-1;if(t.length>=3){let i=Math.floor(Le(await r.evalExpr(t[2])));return n.substr(Math.max(0,s),i)}return n.substr(Math.max(0,s))}async function gd(t,e,r){if(t.length<2)return 0;let n=me(await r.evalExpr(t[0])),s=me(await r.evalExpr(t[1])),i=n.indexOf(s);return i===-1?0:i+1}async function yd(t,e,r){if(t.length<2)return 0;let n=me(await r.evalExpr(t[0])),s=t[1];if(s.type!=="variable")return 0;let i=s.name,o=e.FS;if(t.length>=3){let l=me(await r.evalExpr(t[2]));o=l===" "?/\s+/:l}else e.FS===" "&&(o=/\s+/);let a=n.split(o);e.arrays[i]={};for(let l=0;l<a.length;l++)e.arrays[i][String(l+1)]=a[l];return a.length}async function xd(t,e,r){if(t.length<2)return 0;let n;t[0].type==="regex"?n=t[0].pattern:(n=me(await r.evalExpr(t[0])),n.startsWith("/")&&n.endsWith("/")&&(n=n.slice(1,-1)));let s=me(await r.evalExpr(t[1])),i="$0";if(t.length>=3){let a=t[2];a.type==="variable"?i=a.name:a.type==="field"&&(i=`$${Math.floor(Le(await r.evalExpr(a.index)))}`)}let o;if(i==="$0")o=e.line;else if(i.startsWith("$")){let a=parseInt(i.slice(1),10)-1;o=e.fields[a]||""}else o=me(e.vars[i]??"");try{let a=new RegExp(n),l=o.replace(a,_o(s)),c=l!==o?1:0;if(i==="$0")e.line=l,e.fields=e.FS===" "?l.trim().split(/\s+/).filter(Boolean):l.split(e.fieldSep),e.NF=e.fields.length;else if(i.startsWith("$")){let u=parseInt(i.slice(1),10)-1;for(;e.fields.length<=u;)e.fields.push("");e.fields[u]=l,e.NF=e.fields.length,e.line=e.fields.join(e.OFS)}else e.vars[i]=l;return c}catch{return 0}}async function wd(t,e,r){if(t.length<2)return 0;let n;t[0].type==="regex"?n=t[0].pattern:(n=me(await r.evalExpr(t[0])),n.startsWith("/")&&n.endsWith("/")&&(n=n.slice(1,-1)));let s=me(await r.evalExpr(t[1])),i="$0";if(t.length>=3){let a=t[2];a.type==="variable"?i=a.name:a.type==="field"&&(i=`$${Math.floor(Le(await r.evalExpr(a.index)))}`)}let o;if(i==="$0")o=e.line;else if(i.startsWith("$")){let a=parseInt(i.slice(1),10)-1;o=e.fields[a]||""}else o=me(e.vars[i]??"");try{let a=new RegExp(n,"g"),l=o.match(a),c=l?l.length:0,u=o.replace(a,_o(s));if(i==="$0")e.line=u,e.fields=e.FS===" "?u.trim().split(/\s+/).filter(Boolean):u.split(e.fieldSep),e.NF=e.fields.length;else if(i.startsWith("$")){let f=parseInt(i.slice(1),10)-1;for(;e.fields.length<=f;)e.fields.push("");e.fields[f]=u,e.NF=e.fields.length,e.line=e.fields.join(e.OFS)}else e.vars[i]=u;return c}catch{return 0}}function _o(t){return e=>{let r="",n=0;for(;n<t.length;)if(t[n]==="\\"&&n+1<t.length){let s=t[n+1];s==="&"?(r+="&",n+=2):s==="\\"?(r+="\\",n+=2):(r+=t[n+1],n+=2)}else t[n]==="&"?(r+=e,n++):(r+=t[n],n++);return r}}async function Ed(t,e,r){if(t.length<2)return e.RSTART=0,e.RLENGTH=-1,0;let n=me(await r.evalExpr(t[0])),s;t[1].type==="regex"?s=t[1].pattern:(s=me(await r.evalExpr(t[1])),s.startsWith("/")&&s.endsWith("/")&&(s=s.slice(1,-1)));try{let o=new RegExp(s).exec(n);if(o)return e.RSTART=o.index+1,e.RLENGTH=o[0].length,e.RSTART}catch{}return e.RSTART=0,e.RLENGTH=-1,0}async function bd(t,e,r){if(t.length<3)return"";let n;t[0].type==="regex"?n=t[0].pattern:(n=me(await r.evalExpr(t[0])),n.startsWith("/")&&n.endsWith("/")&&(n=n.slice(1,-1)));let s=me(await r.evalExpr(t[1])),i=me(await r.evalExpr(t[2])),o=t.length>=4?me(await r.evalExpr(t[3])):e.line;try{let a=i.toLowerCase()==="g",l=a?0:parseInt(i,10)||1;if(a){let c=new RegExp(n,"g");return o.replace(c,(u,...f)=>Mo(s,u,f.slice(0,-2)))}else{let c=0,u=new RegExp(n,"g");return o.replace(u,(f,...p)=>(c++,c===l?Mo(s,f,p.slice(0,-2)):f))}}catch{return o}}function Mo(t,e,r){let n="",s=0;for(;s<t.length;)if(t[s]==="\\"&&s+1<t.length){let i=t[s+1];if(i==="&")n+="&",s+=2;else if(i==="0")n+=e,s+=2;else if(i>="1"&&i<="9"){let o=parseInt(i,10)-1;n+=r[o]||"",s+=2}else i==="n"?(n+=`
233
- `,s+=2):i==="t"?(n+=" ",s+=2):(n+=i,s+=2)}else t[s]==="&"?(n+=e,s++):(n+=t[s],s++);return n}async function Sd(t,e,r){return t.length===0?"":me(await r.evalExpr(t[0])).toLowerCase()}async function Cd(t,e,r){return t.length===0?"":me(await r.evalExpr(t[0])).toUpperCase()}async function Ad(t,e,r){if(t.length===0)return"";let n=me(await r.evalExpr(t[0])),s=[];for(let i=1;i<t.length;i++)s.push(await r.evalExpr(t[i]));return Kn(n,s)}async function kd(t,e,r){return t.length===0?0:Math.floor(Le(await r.evalExpr(t[0])))}async function Nd(t,e,r){return t.length===0?0:Math.sqrt(Le(await r.evalExpr(t[0])))}async function Id(t,e,r){return t.length===0?0:Math.sin(Le(await r.evalExpr(t[0])))}async function vd(t,e,r){return t.length===0?0:Math.cos(Le(await r.evalExpr(t[0])))}async function $d(t,e,r){let n=t.length>0?Le(await r.evalExpr(t[0])):0,s=t.length>1?Le(await r.evalExpr(t[1])):0;return Math.atan2(n,s)}async function Rd(t,e,r){return t.length===0?0:Math.log(Le(await r.evalExpr(t[0])))}async function Pd(t,e,r){return t.length===0?1:Math.exp(Le(await r.evalExpr(t[0])))}function Fd(t,e,r){return e.random?e.random():Math.random()}async function Od(t,e,r){let n=t.length>0?Le(await r.evalExpr(t[0])):Date.now();return e.vars._srand_seed=n,n}function qn(t,e){return()=>{throw new Error(`${t}() is not supported - ${e}`)}}function Vn(t){return()=>{throw new Error(`function '${t}()' is not implemented`)}}function Kn(t,e){let r=0,n="",s=0;for(;s<t.length;)if(t[s]==="%"&&s+1<t.length){let i=s+1,o="",a="",l="";for(;i<t.length&&/[-+ #0]/.test(t[i]);)o+=t[i++];for(;i<t.length&&/\d/.test(t[i]);)a+=t[i++];if(t[i]===".")for(i++;i<t.length&&/\d/.test(t[i]);)l+=t[i++];let c=t[i],u=e[r];switch(c){case"s":{let f=u!==void 0?String(u):"";if(l&&(f=f.substring(0,parseInt(l,10))),a){let p=parseInt(a,10);o.includes("-")?f=f.padEnd(p):f=f.padStart(p)}n+=f,r++;break}case"d":case"i":{let f=u!==void 0?Math.floor(Number(u)):0;Number.isNaN(f)&&(f=0);let p=String(f);if(a){let d=parseInt(a,10);if(o.includes("-"))p=p.padEnd(d);else if(o.includes("0")&&!o.includes("-")){let h=f<0?"-":"";p=h+Math.abs(f).toString().padStart(d-h.length,"0")}else p=p.padStart(d)}n+=p,r++;break}case"f":{let f=u!==void 0?Number(u):0;Number.isNaN(f)&&(f=0);let p=l?parseInt(l,10):6,d=f.toFixed(p);if(a){let h=parseInt(a,10);o.includes("-")?d=d.padEnd(h):d=d.padStart(h)}n+=d,r++;break}case"e":case"E":{let f=u!==void 0?Number(u):0;Number.isNaN(f)&&(f=0);let p=l?parseInt(l,10):6,d=f.toExponential(p);if(c==="E"&&(d=d.toUpperCase()),a){let h=parseInt(a,10);o.includes("-")?d=d.padEnd(h):d=d.padStart(h)}n+=d,r++;break}case"g":case"G":{let f=u!==void 0?Number(u):0;Number.isNaN(f)&&(f=0);let p=l?parseInt(l,10):6,d=f!==0?Math.floor(Math.log10(Math.abs(f))):0,h;if(f===0?h="0":d<-4||d>=p?(h=f.toExponential(p-1),c==="G"&&(h=h.toUpperCase())):h=f.toPrecision(p),h=h.replace(/\.?0+$/,"").replace(/\.?0+e/,"e"),a){let m=parseInt(a,10);o.includes("-")?h=h.padEnd(m):h=h.padStart(m)}n+=h,r++;break}case"x":case"X":{let f=u!==void 0?Math.floor(Number(u)):0;Number.isNaN(f)&&(f=0);let p=Math.abs(f).toString(16);if(c==="X"&&(p=p.toUpperCase()),a){let d=parseInt(a,10);o.includes("0")?p=p.padStart(d,"0"):o.includes("-")?p=p.padEnd(d):p=p.padStart(d)}n+=f<0?`-${p}`:p,r++;break}case"o":{let f=u!==void 0?Math.floor(Number(u)):0;Number.isNaN(f)&&(f=0);let p=Math.abs(f).toString(8);if(a){let d=parseInt(a,10);o.includes("0")?p=p.padStart(d,"0"):o.includes("-")?p=p.padEnd(d):p=p.padStart(d)}n+=f<0?`-${p}`:p,r++;break}case"c":{typeof u=="number"?n+=String.fromCharCode(u):n+=String(u??"").charAt(0)||"",r++;break}case"%":n+="%";break;default:n+=t.substring(s,i+1)}s=i+1}else if(t[s]==="\\"&&s+1<t.length){let i=t[s+1];switch(i){case"n":n+=`
234
- `;break;case"t":n+=" ";break;case"r":n+="\r";break;case"\\":n+="\\";break;default:n+=i}s+=2}else n+=t[s++];return n}var Bo,Zn=C(()=>{"use strict";Bo={length:hd,substr:md,index:gd,split:yd,sub:xd,gsub:wd,match:Ed,gensub:bd,tolower:Sd,toupper:Cd,sprintf:Ad,int:kd,sqrt:Nd,sin:Id,cos:vd,atan2:$d,log:Rd,exp:Pd,rand:Fd,srand:Od,system:qn("system","shell execution not allowed in sandboxed environment"),close:qn("close","file operations not allowed"),fflush:qn("fflush","file operations not allowed"),systime:Vn("systime"),mktime:Vn("mktime"),strftime:Vn("strftime")}});function $e(t){return typeof t=="number"?t!==0:t!==""}function q(t){if(typeof t=="number")return t;let e=parseFloat(t);return Number.isNaN(e)?0:e}function Z(t){return typeof t=="string"?t:(Number.isInteger(t),String(t))}function Qn(t){if(typeof t=="number")return!0;let e=String(t).trim();return e===""?!1:!Number.isNaN(Number(e))}function ir(t,e){try{return new RegExp(t).test(e)}catch{return!1}}var Lt=C(()=>{"use strict"});function Wo(t,e){return t.FS===" "?e.trim().split(/\s+/).filter(Boolean):e.split(t.fieldSep)}function yt(t,e){return e===0?t.line:e<0||e>t.fields.length?"":t.fields[e-1]??""}function Mt(t,e,r){if(e===0)t.line=Z(r),t.fields=Wo(t,t.line),t.NF=t.fields.length;else if(e>0){for(;t.fields.length<e;)t.fields.push("");t.fields[e-1]=Z(r),t.NF=t.fields.length,t.line=t.fields.join(t.OFS)}}function or(t,e){t.line=e,t.fields=Wo(t,e),t.NF=t.fields.length}function Uo(t,e){if(t.FS=e,e===" ")t.fieldSep=/\s+/;else try{t.fieldSep=new RegExp(e)}catch{t.fieldSep=new RegExp(e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"))}}var Mr=C(()=>{"use strict";Lt()});function xt(t,e){switch(e){case"FS":return t.FS;case"OFS":return t.OFS;case"ORS":return t.ORS;case"NR":return t.NR;case"NF":return t.NF;case"FNR":return t.FNR;case"FILENAME":return t.FILENAME;case"RSTART":return t.RSTART;case"RLENGTH":return t.RLENGTH;case"SUBSEP":return t.SUBSEP;case"ARGC":return t.ARGC}return t.vars[e]??""}function it(t,e,r){switch(e){case"FS":Uo(t,Z(r));return;case"OFS":t.OFS=Z(r);return;case"ORS":t.ORS=Z(r);return;case"NR":t.NR=Math.floor(q(r));return;case"NF":{let n=Math.floor(q(r));if(n<t.NF)t.fields=t.fields.slice(0,n),t.line=t.fields.join(t.OFS);else if(n>t.NF){for(;t.fields.length<n;)t.fields.push("");t.line=t.fields.join(t.OFS)}t.NF=n;return}case"FNR":t.FNR=Math.floor(q(r));return;case"FILENAME":t.FILENAME=Z(r);return;case"RSTART":t.RSTART=Math.floor(q(r));return;case"RLENGTH":t.RLENGTH=Math.floor(q(r));return;case"SUBSEP":t.SUBSEP=Z(r);return}t.vars[e]=r}function wt(t,e,r){return e==="ARGV"?t.ARGV[r]??"":t.arrays[e]?.[r]??""}function _t(t,e,r,n){t.arrays[e]||(t.arrays[e]={}),t.arrays[e][r]=n}function jo(t,e,r){return e==="ARGV"?t.ARGV[r]!==void 0:t.arrays[e]?.[r]!==void 0}function zo(t,e,r){t.arrays[e]&&delete t.arrays[e][r]}function Ho(t,e){delete t.arrays[e]}var Xn=C(()=>{"use strict";Mr();Lt()});function Go(t){Jn=t}async function B(t,e){switch(e.type){case"number":return e.value;case"string":return e.value;case"regex":return ir(e.pattern,t.line)?1:0;case"field":return Td(t,e);case"variable":return xt(t,e.name);case"array_access":return Dd(t,e);case"binary":return Ld(t,e);case"unary":return Bd(t,e);case"ternary":return $e(await B(t,e.condition))?B(t,e.consequent):B(t,e.alternate);case"call":return Wd(t,e.name,e.args);case"assignment":return jd(t,e);case"pre_increment":return zd(t,e.operand);case"pre_decrement":return Hd(t,e.operand);case"post_increment":return Gd(t,e.operand);case"post_decrement":return qd(t,e.operand);case"in":return Vd(t,e.key,e.array);case"getline":return Kd(t,e.variable,e.file);case"tuple":return Qd(t,e.elements);default:return""}}async function Td(t,e){let r=Math.floor(q(await B(t,e.index)));return yt(t,r)}async function Dd(t,e){let r=Z(await B(t,e.key));return wt(t,e.array,r)}async function Ld(t,e){let r=e.operator;if(r==="||")return $e(await B(t,e.left))||$e(await B(t,e.right))?1:0;if(r==="&&")return $e(await B(t,e.left))&&$e(await B(t,e.right))?1:0;if(r==="~"){let a=await B(t,e.left),l=e.right.type==="regex"?e.right.pattern:Z(await B(t,e.right));try{return new RegExp(l).test(Z(a))?1:0}catch{return 0}}if(r==="!~"){let a=await B(t,e.left),l=e.right.type==="regex"?e.right.pattern:Z(await B(t,e.right));try{return new RegExp(l).test(Z(a))?0:1}catch{return 1}}let n=await B(t,e.left),s=await B(t,e.right);if(r===" ")return Z(n)+Z(s);if(Md(r))return _d(n,s,r);let i=q(n),o=q(s);return Do(i,o,r)}function Md(t){return["<","<=",">",">=","==","!="].includes(t)}function _d(t,e,r){let n=Qn(t),s=Qn(e);if(n&&s){let a=q(t),l=q(e);switch(r){case"<":return a<l?1:0;case"<=":return a<=l?1:0;case">":return a>l?1:0;case">=":return a>=l?1:0;case"==":return a===l?1:0;case"!=":return a!==l?1:0}}let i=Z(t),o=Z(e);switch(r){case"<":return i<o?1:0;case"<=":return i<=o?1:0;case">":return i>o?1:0;case">=":return i>=o?1:0;case"==":return i===o?1:0;case"!=":return i!==o?1:0}return 0}async function Bd(t,e){let r=await B(t,e.operand);switch(e.operator){case"!":return $e(r)?0:1;case"-":return-q(r);case"+":return+q(r);default:return r}}async function Wd(t,e,r){let n=Bo[e];if(n)return n(r,t,{evalExpr:i=>B(t,i)});let s=t.functions.get(e);return s?Ud(t,s,r):""}async function Ud(t,e,r){if(t.currentRecursionDepth++,t.currentRecursionDepth>t.maxRecursionDepth)throw t.currentRecursionDepth--,new j(`awk: recursion depth exceeded maximum (${t.maxRecursionDepth})`,"recursion",t.output);let n={};for(let i of e.params)n[i]=t.vars[i];for(let i=0;i<e.params.length;i++){let o=e.params[i],a=i<r.length?await B(t,r[i]):"";t.vars[o]=a}t.hasReturn=!1,t.returnValue=void 0,Jn&&await Jn(t,e.body.statements);let s=t.returnValue??"";for(let i of e.params)n[i]!==void 0?t.vars[i]=n[i]:delete t.vars[i];return t.hasReturn=!1,t.returnValue=void 0,t.currentRecursionDepth--,s}async function jd(t,e){let r=await B(t,e.value),n=e.target,s=e.operator,i;if(s==="=")i=r;else{let o;if(n.type==="field"){let c=Math.floor(q(await B(t,n.index)));o=yt(t,c)}else if(n.type==="variable")o=xt(t,n.name);else{let c=Z(await B(t,n.key));o=wt(t,n.array,c)}let a=q(o),l=q(r);switch(s){case"+=":i=a+l;break;case"-=":i=a-l;break;case"*=":i=a*l;break;case"/=":i=l!==0?a/l:0;break;case"%=":i=l!==0?a%l:0;break;case"^=":i=a**l;break;default:i=r}}if(n.type==="field"){let o=Math.floor(q(await B(t,n.index)));Mt(t,o,i)}else if(n.type==="variable")it(t,n.name,i);else{let o=Z(await B(t,n.key));_t(t,n.array,o,i)}return i}async function zd(t,e){let r;if(e.type==="field"){let n=Math.floor(q(await B(t,e.index)));r=q(yt(t,n))+1,Mt(t,n,r)}else if(e.type==="variable")r=q(xt(t,e.name))+1,it(t,e.name,r);else{let n=Z(await B(t,e.key));r=q(wt(t,e.array,n))+1,_t(t,e.array,n,r)}return r}async function Hd(t,e){let r;if(e.type==="field"){let n=Math.floor(q(await B(t,e.index)));r=q(yt(t,n))-1,Mt(t,n,r)}else if(e.type==="variable")r=q(xt(t,e.name))-1,it(t,e.name,r);else{let n=Z(await B(t,e.key));r=q(wt(t,e.array,n))-1,_t(t,e.array,n,r)}return r}async function Gd(t,e){let r;if(e.type==="field"){let n=Math.floor(q(await B(t,e.index)));r=q(yt(t,n)),Mt(t,n,r+1)}else if(e.type==="variable")r=q(xt(t,e.name)),it(t,e.name,r+1);else{let n=Z(await B(t,e.key));r=q(wt(t,e.array,n)),_t(t,e.array,n,r+1)}return r}async function qd(t,e){let r;if(e.type==="field"){let n=Math.floor(q(await B(t,e.index)));r=q(yt(t,n)),Mt(t,n,r-1)}else if(e.type==="variable")r=q(xt(t,e.name)),it(t,e.name,r-1);else{let n=Z(await B(t,e.key));r=q(wt(t,e.array,n)),_t(t,e.array,n,r-1)}return r}async function Vd(t,e,r){let n;if(e.type==="tuple"){let s=[];for(let i of e.elements)s.push(Z(await B(t,i)));n=s.join(t.SUBSEP)}else n=Z(await B(t,e));return jo(t,r,n)?1:0}async function Kd(t,e,r){if(r)return Zd(t,e,r);if(!t.lines||t.lineIndex===void 0)return-1;let n=t.lineIndex+1;if(n>=t.lines.length)return 0;let s=t.lines[n];return e?it(t,e,s):or(t,s),t.NR++,t.lineIndex=n,1}async function Zd(t,e,r){if(!t.fs||!t.cwd)return-1;let n=Z(await B(t,r)),s=t.fs.resolvePath(t.cwd,n),i=`__fc_${s}`,o=`__fi_${s}`,a,l;if(t.vars[i]===void 0)try{a=(await t.fs.readFile(s)).split(`
235
- `),a.length>0&&a[a.length-1]===""&&a.pop(),t.vars[i]=JSON.stringify(a),t.vars[o]=-1,l=-1}catch{return-1}else a=JSON.parse(t.vars[i]),l=t.vars[o];let c=l+1;if(c>=a.length)return 0;let u=a[c];return t.vars[o]=c,e?it(t,e,u):or(t,u),1}async function Qd(t,e){if(e.length===0)return"";for(let r=0;r<e.length-1;r++)await B(t,e[r]);return B(t,e[e.length-1])}var Jn,Yn=C(()=>{"use strict";oe();Lo();Zn();Mr();Lt();Xn();Jn=null});async function Bt(t,e){for(let r of e)if(await Et(t,r),Xd(t))break}function Xd(t){return t.shouldExit||t.shouldNext||t.shouldNextFile||t.loopBreak||t.loopContinue||t.hasReturn}async function Et(t,e){switch(e.type){case"block":await Bt(t,e.statements);break;case"expr_stmt":await B(t,e.expression);break;case"print":await Jd(t,e.args,e.output);break;case"printf":await Yd(t,e.format,e.args,e.output);break;case"if":await eh(t,e);break;case"while":await th(t,e);break;case"do_while":await rh(t,e);break;case"for":await nh(t,e);break;case"for_in":await sh(t,e);break;case"break":t.loopBreak=!0;break;case"continue":t.loopContinue=!0;break;case"next":t.shouldNext=!0;break;case"nextfile":t.shouldNextFile=!0;break;case"exit":t.shouldExit=!0,t.exitCode=e.code?Math.floor(q(await B(t,e.code))):0;break;case"return":t.hasReturn=!0,t.returnValue=e.value?await B(t,e.value):"";break;case"delete":await ih(t,e.target);break}}async function Jd(t,e,r){let n=[];for(let i of e)n.push(Z(await B(t,i)));let s=n.join(t.OFS)+t.ORS;r?await qo(t,r.redirect,r.file,s):t.output+=s}async function Yd(t,e,r,n){let s=Z(await B(t,e)),i=[];for(let a of r)i.push(await B(t,a));let o=Kn(s,i);n?await qo(t,n.redirect,n.file,o):t.output+=o}async function qo(t,e,r,n){if(!t.fs||!t.cwd){t.output+=n;return}let s=Z(await B(t,r)),i=t.fs.resolvePath(t.cwd,s);e===">"?t.openedFiles.has(i)?await t.fs.appendFile(i,n):(await t.fs.writeFile(i,n),t.openedFiles.add(i)):(t.openedFiles.has(i)||t.openedFiles.add(i),await t.fs.appendFile(i,n))}async function eh(t,e){$e(await B(t,e.condition))?await Et(t,e.consequent):e.alternate&&await Et(t,e.alternate)}async function th(t,e){let r=0;for(;$e(await B(t,e.condition));){if(r++,r>t.maxIterations)throw new j(`awk: while loop exceeded maximum iterations (${t.maxIterations})`,"iterations",t.output);if(t.loopContinue=!1,await Et(t,e.body),t.loopBreak){t.loopBreak=!1;break}if(t.shouldExit||t.shouldNext||t.hasReturn)break}}async function rh(t,e){let r=0;do{if(r++,r>t.maxIterations)throw new j(`awk: do-while loop exceeded maximum iterations (${t.maxIterations})`,"iterations",t.output);if(t.loopContinue=!1,await Et(t,e.body),t.loopBreak){t.loopBreak=!1;break}if(t.shouldExit||t.shouldNext||t.hasReturn)break}while($e(await B(t,e.condition)))}async function nh(t,e){e.init&&await B(t,e.init);let r=0;for(;!e.condition||$e(await B(t,e.condition));){if(r++,r>t.maxIterations)throw new j(`awk: for loop exceeded maximum iterations (${t.maxIterations})`,"iterations",t.output);if(t.loopContinue=!1,await Et(t,e.body),t.loopBreak){t.loopBreak=!1;break}if(t.shouldExit||t.shouldNext||t.hasReturn)break;e.update&&await B(t,e.update)}}async function sh(t,e){let r=t.arrays[e.array];if(r)for(let n of Object.keys(r)){if(t.vars[e.variable]=n,t.loopContinue=!1,await Et(t,e.body),t.loopBreak){t.loopBreak=!1;break}if(t.shouldExit||t.shouldNext||t.hasReturn)break}}async function ih(t,e){if(e.type==="array_access"){let r=Z(await B(t,e.key));zo(t,e.array,r)}else e.type==="variable"&&Ho(t,e.name)}var Vo=C(()=>{"use strict";oe();Zn();Yn();Lt();Xn();Go(Bt)});var ar,Ko=C(()=>{"use strict";Yn();Mr();Lt();Vo();ar=class{ctx;program=null;rangeStates=[];constructor(e){this.ctx=e}execute(e){this.program=e,this.ctx.output="";for(let r of e.functions)this.ctx.functions.set(r.name,r);this.rangeStates=e.rules.map(()=>!1)}async executeBegin(){if(this.program){for(let e of this.program.rules)if(e.pattern?.type==="begin"&&(await Bt(this.ctx,e.action.statements),this.ctx.shouldExit))break}}async executeLine(e){if(!(!this.program||this.ctx.shouldExit)){or(this.ctx,e),this.ctx.NR++,this.ctx.FNR++,this.ctx.shouldNext=!1;for(let r=0;r<this.program.rules.length&&!(this.ctx.shouldExit||this.ctx.shouldNext||this.ctx.shouldNextFile);r++){let n=this.program.rules[r];n.pattern?.type==="begin"||n.pattern?.type==="end"||await this.matchesRule(n,r)&&await Bt(this.ctx,n.action.statements)}}}async executeEnd(){if(!(!this.program||this.ctx.shouldExit)){for(let e of this.program.rules)if(e.pattern?.type==="end"&&(await Bt(this.ctx,e.action.statements),this.ctx.shouldExit))break}}getOutput(){return this.ctx.output}getExitCode(){return this.ctx.exitCode}getContext(){return this.ctx}async matchesRule(e,r){let n=e.pattern;if(!n)return!0;switch(n.type){case"begin":case"end":return!1;case"regex_pattern":return ir(n.pattern,this.ctx.line);case"expr_pattern":return $e(await B(this.ctx,n.expression));case"range":{let s=await this.matchPattern(n.start),i=await this.matchPattern(n.end);return this.rangeStates[r]?(i&&(this.rangeStates[r]=!1),!0):s?(this.rangeStates[r]=!0,i&&(this.rangeStates[r]=!1),!0):!1}default:return!1}}async matchPattern(e){switch(e.type){case"regex_pattern":return ir(e.pattern,this.ctx.line);case"expr_pattern":return $e(await B(this.ctx,e.expression));default:return!1}}}});var Zo=C(()=>{"use strict";To();Ko()});function ah(t){return t.replace(/\[\[:space:\]\]/g,"[ \\t\\n\\r\\f\\v]").replace(/\[\[:blank:\]\]/g,"[ \\t]").replace(/\[\[:alpha:\]\]/g,"[a-zA-Z]").replace(/\[\[:digit:\]\]/g,"[0-9]").replace(/\[\[:alnum:\]\]/g,"[a-zA-Z0-9]").replace(/\[\[:upper:\]\]/g,"[A-Z]").replace(/\[\[:lower:\]\]/g,"[a-z]").replace(/\[\[:punct:\]\]/g,"[!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~]").replace(/\[\[:xdigit:\]\]/g,"[0-9A-Fa-f]").replace(/\[\[:graph:\]\]/g,"[!-~]").replace(/\[\[:print:\]\]/g,"[ -~]").replace(/\[\[:cntrl:\]\]/g,"[\\x00-\\x1f\\x7f]")}var x,oh,_r,Qo=C(()=>{"use strict";(function(t){t.NUMBER="NUMBER",t.STRING="STRING",t.REGEX="REGEX",t.IDENT="IDENT",t.BEGIN="BEGIN",t.END="END",t.IF="IF",t.ELSE="ELSE",t.WHILE="WHILE",t.DO="DO",t.FOR="FOR",t.IN="IN",t.BREAK="BREAK",t.CONTINUE="CONTINUE",t.NEXT="NEXT",t.NEXTFILE="NEXTFILE",t.EXIT="EXIT",t.RETURN="RETURN",t.DELETE="DELETE",t.FUNCTION="FUNCTION",t.PRINT="PRINT",t.PRINTF="PRINTF",t.GETLINE="GETLINE",t.PLUS="PLUS",t.MINUS="MINUS",t.STAR="STAR",t.SLASH="SLASH",t.PERCENT="PERCENT",t.CARET="CARET",t.EQ="EQ",t.NE="NE",t.LT="LT",t.GT="GT",t.LE="LE",t.GE="GE",t.MATCH="MATCH",t.NOT_MATCH="NOT_MATCH",t.AND="AND",t.OR="OR",t.NOT="NOT",t.ASSIGN="ASSIGN",t.PLUS_ASSIGN="PLUS_ASSIGN",t.MINUS_ASSIGN="MINUS_ASSIGN",t.STAR_ASSIGN="STAR_ASSIGN",t.SLASH_ASSIGN="SLASH_ASSIGN",t.PERCENT_ASSIGN="PERCENT_ASSIGN",t.CARET_ASSIGN="CARET_ASSIGN",t.INCREMENT="INCREMENT",t.DECREMENT="DECREMENT",t.QUESTION="QUESTION",t.COLON="COLON",t.COMMA="COMMA",t.SEMICOLON="SEMICOLON",t.NEWLINE="NEWLINE",t.LPAREN="LPAREN",t.RPAREN="RPAREN",t.LBRACE="LBRACE",t.RBRACE="RBRACE",t.LBRACKET="LBRACKET",t.RBRACKET="RBRACKET",t.DOLLAR="DOLLAR",t.APPEND="APPEND",t.PIPE="PIPE",t.EOF="EOF"})(x||(x={}));oh={BEGIN:x.BEGIN,END:x.END,if:x.IF,else:x.ELSE,while:x.WHILE,do:x.DO,for:x.FOR,in:x.IN,break:x.BREAK,continue:x.CONTINUE,next:x.NEXT,nextfile:x.NEXTFILE,exit:x.EXIT,return:x.RETURN,delete:x.DELETE,function:x.FUNCTION,print:x.PRINT,printf:x.PRINTF,getline:x.GETLINE};_r=class{input;pos=0;line=1;column=1;lastTokenType=null;constructor(e){this.input=e}tokenize(){let e=[];for(;this.pos<this.input.length;){let r=this.nextToken();r&&(e.push(r),this.lastTokenType=r.type)}return e.push(this.makeToken(x.EOF,"")),e}makeToken(e,r){return{type:e,value:r,line:this.line,column:this.column}}peek(e=0){return this.input[this.pos+e]||""}advance(){let e=this.input[this.pos++]||"";return e===`
225
+ `,exitCode:1};let u="";if(a.length===0){u=e.stdin;try{let f=await ls(u,l,s,{limits:e.limits,fs:e.fs,cwd:e.cwd});return{stdout:f.output,stderr:"",exitCode:f.exitCode??0}}catch(f){if(f instanceof z)return{stdout:"",stderr:`sed: ${f.message}
226
+ `,exitCode:z.EXIT_CODE};throw f}}if(i){for(let f of a){let d=e.fs.resolvePath(e.cwd,f);try{let p=await e.fs.readFile(d),h=await ls(p,l,s,{limits:e.limits,filename:f,fs:e.fs,cwd:e.cwd});await e.fs.writeFile(d,h.output)}catch(p){return p instanceof z?{stdout:"",stderr:`sed: ${p.message}
227
+ `,exitCode:z.EXIT_CODE}:{stdout:"",stderr:`sed: ${f}: No such file or directory
228
+ `,exitCode:1}}}return{stdout:"",stderr:"",exitCode:0}}for(let f of a){let d=e.fs.resolvePath(e.cwd,f);try{u+=await e.fs.readFile(d)}catch(p){return p instanceof z?{stdout:"",stderr:`sed: ${p.message}
229
+ `,exitCode:z.EXIT_CODE}:{stdout:"",stderr:`sed: ${f}: No such file or directory
230
+ `,exitCode:1}}}try{let f=await ls(u,l,s,{limits:e.limits,filename:a.length===1?a[0]:void 0,fs:e.fs,cwd:e.cwd});return{stdout:f.output,stderr:"",exitCode:f.exitCode??0}}catch(f){if(f instanceof z)return{stdout:"",stderr:`sed: ${f.message}
231
+ `,exitCode:z.EXIT_CODE};throw f}}}});function cs(t={}){let{fieldSep:e=/\s+/,maxIterations:r=1e4,maxRecursionDepth:n=100,fs:s,cwd:i}=t;return{FS:" ",OFS:" ",ORS:`
232
+ `,NR:0,NF:0,FNR:0,FILENAME:"",RSTART:0,RLENGTH:-1,SUBSEP:"",fields:[],line:"",vars:{},arrays:{},ARGC:0,ARGV:{},functions:new Map,fieldSep:e,maxIterations:r,maxRecursionDepth:n,currentRecursionDepth:0,exitCode:0,shouldExit:!1,shouldNext:!1,shouldNextFile:!1,loopBreak:!1,loopContinue:!1,hasReturn:!1,output:"",openedFiles:new Set,fs:s,cwd:i}}var Yo=C(()=>{"use strict"});function ea(t,e,r){switch(r){case"+":return t+e;case"-":return t-e;case"*":return t*e;case"/":return e!==0?t/e:0;case"%":return e!==0?t%e:0;case"^":case"**":return t**e;default:return 0}}var ta=C(()=>{"use strict"});function He(t){if(typeof t=="number")return t;let e=parseFloat(t);return Number.isNaN(e)?0:e}function ge(t){return typeof t=="string"?t:(Number.isInteger(t),String(t))}async function Mp(t,e,r){return t.length===0?e.line.length:ge(await r.evalExpr(t[0])).length}async function _p(t,e,r){if(t.length<2)return"";let n=ge(await r.evalExpr(t[0])),s=Math.floor(He(await r.evalExpr(t[1])))-1;if(t.length>=3){let i=Math.floor(He(await r.evalExpr(t[2])));return n.substr(Math.max(0,s),i)}return n.substr(Math.max(0,s))}async function Bp(t,e,r){if(t.length<2)return 0;let n=ge(await r.evalExpr(t[0])),s=ge(await r.evalExpr(t[1])),i=n.indexOf(s);return i===-1?0:i+1}async function Wp(t,e,r){if(t.length<2)return 0;let n=ge(await r.evalExpr(t[0])),s=t[1];if(s.type!=="variable")return 0;let i=s.name,o=e.FS;if(t.length>=3){let l=ge(await r.evalExpr(t[2]));o=l===" "?/\s+/:l}else e.FS===" "&&(o=/\s+/);let a=n.split(o);e.arrays[i]={};for(let l=0;l<a.length;l++)e.arrays[i][String(l+1)]=a[l];return a.length}async function Up(t,e,r){if(t.length<2)return 0;let n;t[0].type==="regex"?n=t[0].pattern:(n=ge(await r.evalExpr(t[0])),n.startsWith("/")&&n.endsWith("/")&&(n=n.slice(1,-1)));let s=ge(await r.evalExpr(t[1])),i="$0";if(t.length>=3){let a=t[2];a.type==="variable"?i=a.name:a.type==="field"&&(i=`$${Math.floor(He(await r.evalExpr(a.index)))}`)}let o;if(i==="$0")o=e.line;else if(i.startsWith("$")){let a=parseInt(i.slice(1),10)-1;o=e.fields[a]||""}else o=ge(e.vars[i]??"");try{let a=new RegExp(n),l=o.replace(a,na(s)),c=l!==o?1:0;if(i==="$0")e.line=l,e.fields=e.FS===" "?l.trim().split(/\s+/).filter(Boolean):l.split(e.fieldSep),e.NF=e.fields.length;else if(i.startsWith("$")){let u=parseInt(i.slice(1),10)-1;for(;e.fields.length<=u;)e.fields.push("");e.fields[u]=l,e.NF=e.fields.length,e.line=e.fields.join(e.OFS)}else e.vars[i]=l;return c}catch{return 0}}async function zp(t,e,r){if(t.length<2)return 0;let n;t[0].type==="regex"?n=t[0].pattern:(n=ge(await r.evalExpr(t[0])),n.startsWith("/")&&n.endsWith("/")&&(n=n.slice(1,-1)));let s=ge(await r.evalExpr(t[1])),i="$0";if(t.length>=3){let a=t[2];a.type==="variable"?i=a.name:a.type==="field"&&(i=`$${Math.floor(He(await r.evalExpr(a.index)))}`)}let o;if(i==="$0")o=e.line;else if(i.startsWith("$")){let a=parseInt(i.slice(1),10)-1;o=e.fields[a]||""}else o=ge(e.vars[i]??"");try{let a=new RegExp(n,"g"),l=o.match(a),c=l?l.length:0,u=o.replace(a,na(s));if(i==="$0")e.line=u,e.fields=e.FS===" "?u.trim().split(/\s+/).filter(Boolean):u.split(e.fieldSep),e.NF=e.fields.length;else if(i.startsWith("$")){let f=parseInt(i.slice(1),10)-1;for(;e.fields.length<=f;)e.fields.push("");e.fields[f]=u,e.NF=e.fields.length,e.line=e.fields.join(e.OFS)}else e.vars[i]=u;return c}catch{return 0}}function na(t){return e=>{let r="",n=0;for(;n<t.length;)if(t[n]==="\\"&&n+1<t.length){let s=t[n+1];s==="&"?(r+="&",n+=2):s==="\\"?(r+="\\",n+=2):(r+=t[n+1],n+=2)}else t[n]==="&"?(r+=e,n++):(r+=t[n],n++);return r}}async function jp(t,e,r){if(t.length<2)return e.RSTART=0,e.RLENGTH=-1,0;let n=ge(await r.evalExpr(t[0])),s;t[1].type==="regex"?s=t[1].pattern:(s=ge(await r.evalExpr(t[1])),s.startsWith("/")&&s.endsWith("/")&&(s=s.slice(1,-1)));try{let o=new RegExp(s).exec(n);if(o)return e.RSTART=o.index+1,e.RLENGTH=o[0].length,e.RSTART}catch{}return e.RSTART=0,e.RLENGTH=-1,0}async function Hp(t,e,r){if(t.length<3)return"";let n;t[0].type==="regex"?n=t[0].pattern:(n=ge(await r.evalExpr(t[0])),n.startsWith("/")&&n.endsWith("/")&&(n=n.slice(1,-1)));let s=ge(await r.evalExpr(t[1])),i=ge(await r.evalExpr(t[2])),o=t.length>=4?ge(await r.evalExpr(t[3])):e.line;try{let a=i.toLowerCase()==="g",l=a?0:parseInt(i,10)||1;if(a){let c=new RegExp(n,"g");return o.replace(c,(u,...f)=>ra(s,u,f.slice(0,-2)))}else{let c=0,u=new RegExp(n,"g");return o.replace(u,(f,...d)=>(c++,c===l?ra(s,f,d.slice(0,-2)):f))}}catch{return o}}function ra(t,e,r){let n="",s=0;for(;s<t.length;)if(t[s]==="\\"&&s+1<t.length){let i=t[s+1];if(i==="&")n+="&",s+=2;else if(i==="0")n+=e,s+=2;else if(i>="1"&&i<="9"){let o=parseInt(i,10)-1;n+=r[o]||"",s+=2}else i==="n"?(n+=`
233
+ `,s+=2):i==="t"?(n+=" ",s+=2):(n+=i,s+=2)}else t[s]==="&"?(n+=e,s++):(n+=t[s],s++);return n}async function Gp(t,e,r){return t.length===0?"":ge(await r.evalExpr(t[0])).toLowerCase()}async function qp(t,e,r){return t.length===0?"":ge(await r.evalExpr(t[0])).toUpperCase()}async function Vp(t,e,r){if(t.length===0)return"";let n=ge(await r.evalExpr(t[0])),s=[];for(let i=1;i<t.length;i++)s.push(await r.evalExpr(t[i]));return ds(n,s)}async function Kp(t,e,r){return t.length===0?0:Math.floor(He(await r.evalExpr(t[0])))}async function Zp(t,e,r){return t.length===0?0:Math.sqrt(He(await r.evalExpr(t[0])))}async function Qp(t,e,r){return t.length===0?0:Math.sin(He(await r.evalExpr(t[0])))}async function Xp(t,e,r){return t.length===0?0:Math.cos(He(await r.evalExpr(t[0])))}async function Jp(t,e,r){let n=t.length>0?He(await r.evalExpr(t[0])):0,s=t.length>1?He(await r.evalExpr(t[1])):0;return Math.atan2(n,s)}async function Yp(t,e,r){return t.length===0?0:Math.log(He(await r.evalExpr(t[0])))}async function eh(t,e,r){return t.length===0?1:Math.exp(He(await r.evalExpr(t[0])))}function th(t,e,r){return e.random?e.random():Math.random()}async function rh(t,e,r){let n=t.length>0?He(await r.evalExpr(t[0])):Date.now();return e.vars._srand_seed=n,n}function us(t,e){return()=>{throw new Error(`${t}() is not supported - ${e}`)}}function fs(t){return()=>{throw new Error(`function '${t}()' is not implemented`)}}function ds(t,e){let r=0,n="",s=0;for(;s<t.length;)if(t[s]==="%"&&s+1<t.length){let i=s+1,o="",a="",l="";for(;i<t.length&&/[-+ #0]/.test(t[i]);)o+=t[i++];for(;i<t.length&&/\d/.test(t[i]);)a+=t[i++];if(t[i]===".")for(i++;i<t.length&&/\d/.test(t[i]);)l+=t[i++];let c=t[i],u=e[r];switch(c){case"s":{let f=u!==void 0?String(u):"";if(l&&(f=f.substring(0,parseInt(l,10))),a){let d=parseInt(a,10);o.includes("-")?f=f.padEnd(d):f=f.padStart(d)}n+=f,r++;break}case"d":case"i":{let f=u!==void 0?Math.floor(Number(u)):0;Number.isNaN(f)&&(f=0);let d=String(f);if(a){let p=parseInt(a,10);if(o.includes("-"))d=d.padEnd(p);else if(o.includes("0")&&!o.includes("-")){let h=f<0?"-":"";d=h+Math.abs(f).toString().padStart(p-h.length,"0")}else d=d.padStart(p)}n+=d,r++;break}case"f":{let f=u!==void 0?Number(u):0;Number.isNaN(f)&&(f=0);let d=l?parseInt(l,10):6,p=f.toFixed(d);if(a){let h=parseInt(a,10);o.includes("-")?p=p.padEnd(h):p=p.padStart(h)}n+=p,r++;break}case"e":case"E":{let f=u!==void 0?Number(u):0;Number.isNaN(f)&&(f=0);let d=l?parseInt(l,10):6,p=f.toExponential(d);if(c==="E"&&(p=p.toUpperCase()),a){let h=parseInt(a,10);o.includes("-")?p=p.padEnd(h):p=p.padStart(h)}n+=p,r++;break}case"g":case"G":{let f=u!==void 0?Number(u):0;Number.isNaN(f)&&(f=0);let d=l?parseInt(l,10):6,p=f!==0?Math.floor(Math.log10(Math.abs(f))):0,h;if(f===0?h="0":p<-4||p>=d?(h=f.toExponential(d-1),c==="G"&&(h=h.toUpperCase())):h=f.toPrecision(d),h=h.replace(/\.?0+$/,"").replace(/\.?0+e/,"e"),a){let m=parseInt(a,10);o.includes("-")?h=h.padEnd(m):h=h.padStart(m)}n+=h,r++;break}case"x":case"X":{let f=u!==void 0?Math.floor(Number(u)):0;Number.isNaN(f)&&(f=0);let d=Math.abs(f).toString(16);if(c==="X"&&(d=d.toUpperCase()),a){let p=parseInt(a,10);o.includes("0")?d=d.padStart(p,"0"):o.includes("-")?d=d.padEnd(p):d=d.padStart(p)}n+=f<0?`-${d}`:d,r++;break}case"o":{let f=u!==void 0?Math.floor(Number(u)):0;Number.isNaN(f)&&(f=0);let d=Math.abs(f).toString(8);if(a){let p=parseInt(a,10);o.includes("0")?d=d.padStart(p,"0"):o.includes("-")?d=d.padEnd(p):d=d.padStart(p)}n+=f<0?`-${d}`:d,r++;break}case"c":{typeof u=="number"?n+=String.fromCharCode(u):n+=String(u??"").charAt(0)||"",r++;break}case"%":n+="%";break;default:n+=t.substring(s,i+1)}s=i+1}else if(t[s]==="\\"&&s+1<t.length){let i=t[s+1];switch(i){case"n":n+=`
234
+ `;break;case"t":n+=" ";break;case"r":n+="\r";break;case"\\":n+="\\";break;default:n+=i}s+=2}else n+=t[s++];return n}var sa,ps=C(()=>{"use strict";sa={length:Mp,substr:_p,index:Bp,split:Wp,sub:Up,gsub:zp,match:jp,gensub:Hp,tolower:Gp,toupper:qp,sprintf:Vp,int:Kp,sqrt:Zp,sin:Qp,cos:Xp,atan2:Jp,log:Yp,exp:eh,rand:th,srand:rh,system:us("system","shell execution not allowed in sandboxed environment"),close:us("close","file operations not allowed"),fflush:us("fflush","file operations not allowed"),systime:fs("systime"),mktime:fs("mktime"),strftime:fs("strftime")}});function De(t){return typeof t=="number"?t!==0:t!==""}function q(t){if(typeof t=="number")return t;let e=parseFloat(t);return Number.isNaN(e)?0:e}function K(t){return typeof t=="string"?t:(Number.isInteger(t),String(t))}function hs(t){if(typeof t=="number")return!0;let e=String(t).trim();return e===""?!1:!Number.isNaN(Number(e))}function xr(t,e){try{return new RegExp(t).test(e)}catch{return!1}}var Kt=C(()=>{"use strict"});function ia(t,e){return t.FS===" "?e.trim().split(/\s+/).filter(Boolean):e.split(t.fieldSep)}function It(t,e){return e===0?t.line:e<0||e>t.fields.length?"":t.fields[e-1]??""}function Zt(t,e,r){if(e===0)t.line=K(r),t.fields=ia(t,t.line),t.NF=t.fields.length;else if(e>0){for(;t.fields.length<e;)t.fields.push("");t.fields[e-1]=K(r),t.NF=t.fields.length,t.line=t.fields.join(t.OFS)}}function wr(t,e){t.line=e,t.fields=ia(t,e),t.NF=t.fields.length}function oa(t,e){if(t.FS=e,e===" ")t.fieldSep=/\s+/;else try{t.fieldSep=new RegExp(e)}catch{t.fieldSep=new RegExp(e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"))}}var en=C(()=>{"use strict";Kt()});function vt(t,e){switch(e){case"FS":return t.FS;case"OFS":return t.OFS;case"ORS":return t.ORS;case"NR":return t.NR;case"NF":return t.NF;case"FNR":return t.FNR;case"FILENAME":return t.FILENAME;case"RSTART":return t.RSTART;case"RLENGTH":return t.RLENGTH;case"SUBSEP":return t.SUBSEP;case"ARGC":return t.ARGC}return t.vars[e]??""}function mt(t,e,r){switch(e){case"FS":oa(t,K(r));return;case"OFS":t.OFS=K(r);return;case"ORS":t.ORS=K(r);return;case"NR":t.NR=Math.floor(q(r));return;case"NF":{let n=Math.floor(q(r));if(n<t.NF)t.fields=t.fields.slice(0,n),t.line=t.fields.join(t.OFS);else if(n>t.NF){for(;t.fields.length<n;)t.fields.push("");t.line=t.fields.join(t.OFS)}t.NF=n;return}case"FNR":t.FNR=Math.floor(q(r));return;case"FILENAME":t.FILENAME=K(r);return;case"RSTART":t.RSTART=Math.floor(q(r));return;case"RLENGTH":t.RLENGTH=Math.floor(q(r));return;case"SUBSEP":t.SUBSEP=K(r);return}t.vars[e]=r}function $t(t,e,r){return e==="ARGV"?t.ARGV[r]??"":t.arrays[e]?.[r]??""}function Qt(t,e,r,n){t.arrays[e]||(t.arrays[e]={}),t.arrays[e][r]=n}function aa(t,e,r){return e==="ARGV"?t.ARGV[r]!==void 0:t.arrays[e]?.[r]!==void 0}function la(t,e,r){t.arrays[e]&&delete t.arrays[e][r]}function ca(t,e){delete t.arrays[e]}var ms=C(()=>{"use strict";en();Kt()});function ua(t){gs=t}async function B(t,e){switch(e.type){case"number":return e.value;case"string":return e.value;case"regex":return xr(e.pattern,t.line)?1:0;case"field":return nh(t,e);case"variable":return vt(t,e.name);case"array_access":return sh(t,e);case"binary":return ih(t,e);case"unary":return lh(t,e);case"ternary":return De(await B(t,e.condition))?B(t,e.consequent):B(t,e.alternate);case"call":return ch(t,e.name,e.args);case"assignment":return fh(t,e);case"pre_increment":return dh(t,e.operand);case"pre_decrement":return ph(t,e.operand);case"post_increment":return hh(t,e.operand);case"post_decrement":return mh(t,e.operand);case"in":return gh(t,e.key,e.array);case"getline":return yh(t,e.variable,e.file);case"tuple":return wh(t,e.elements);default:return""}}async function nh(t,e){let r=Math.floor(q(await B(t,e.index)));return It(t,r)}async function sh(t,e){let r=K(await B(t,e.key));return $t(t,e.array,r)}async function ih(t,e){let r=e.operator;if(r==="||")return De(await B(t,e.left))||De(await B(t,e.right))?1:0;if(r==="&&")return De(await B(t,e.left))&&De(await B(t,e.right))?1:0;if(r==="~"){let a=await B(t,e.left),l=e.right.type==="regex"?e.right.pattern:K(await B(t,e.right));try{return new RegExp(l).test(K(a))?1:0}catch{return 0}}if(r==="!~"){let a=await B(t,e.left),l=e.right.type==="regex"?e.right.pattern:K(await B(t,e.right));try{return new RegExp(l).test(K(a))?0:1}catch{return 1}}let n=await B(t,e.left),s=await B(t,e.right);if(r===" ")return K(n)+K(s);if(oh(r))return ah(n,s,r);let i=q(n),o=q(s);return ea(i,o,r)}function oh(t){return["<","<=",">",">=","==","!="].includes(t)}function ah(t,e,r){let n=hs(t),s=hs(e);if(n&&s){let a=q(t),l=q(e);switch(r){case"<":return a<l?1:0;case"<=":return a<=l?1:0;case">":return a>l?1:0;case">=":return a>=l?1:0;case"==":return a===l?1:0;case"!=":return a!==l?1:0}}let i=K(t),o=K(e);switch(r){case"<":return i<o?1:0;case"<=":return i<=o?1:0;case">":return i>o?1:0;case">=":return i>=o?1:0;case"==":return i===o?1:0;case"!=":return i!==o?1:0}return 0}async function lh(t,e){let r=await B(t,e.operand);switch(e.operator){case"!":return De(r)?0:1;case"-":return-q(r);case"+":return+q(r);default:return r}}async function ch(t,e,r){let n=sa[e];if(n)return n(r,t,{evalExpr:i=>B(t,i)});let s=t.functions.get(e);return s?uh(t,s,r):""}async function uh(t,e,r){if(t.currentRecursionDepth++,t.currentRecursionDepth>t.maxRecursionDepth)throw t.currentRecursionDepth--,new z(`awk: recursion depth exceeded maximum (${t.maxRecursionDepth})`,"recursion",t.output);let n={};for(let i of e.params)n[i]=t.vars[i];for(let i=0;i<e.params.length;i++){let o=e.params[i],a=i<r.length?await B(t,r[i]):"";t.vars[o]=a}t.hasReturn=!1,t.returnValue=void 0,gs&&await gs(t,e.body.statements);let s=t.returnValue??"";for(let i of e.params)n[i]!==void 0?t.vars[i]=n[i]:delete t.vars[i];return t.hasReturn=!1,t.returnValue=void 0,t.currentRecursionDepth--,s}async function fh(t,e){let r=await B(t,e.value),n=e.target,s=e.operator,i;if(s==="=")i=r;else{let o;if(n.type==="field"){let c=Math.floor(q(await B(t,n.index)));o=It(t,c)}else if(n.type==="variable")o=vt(t,n.name);else{let c=K(await B(t,n.key));o=$t(t,n.array,c)}let a=q(o),l=q(r);switch(s){case"+=":i=a+l;break;case"-=":i=a-l;break;case"*=":i=a*l;break;case"/=":i=l!==0?a/l:0;break;case"%=":i=l!==0?a%l:0;break;case"^=":i=a**l;break;default:i=r}}if(n.type==="field"){let o=Math.floor(q(await B(t,n.index)));Zt(t,o,i)}else if(n.type==="variable")mt(t,n.name,i);else{let o=K(await B(t,n.key));Qt(t,n.array,o,i)}return i}async function dh(t,e){let r;if(e.type==="field"){let n=Math.floor(q(await B(t,e.index)));r=q(It(t,n))+1,Zt(t,n,r)}else if(e.type==="variable")r=q(vt(t,e.name))+1,mt(t,e.name,r);else{let n=K(await B(t,e.key));r=q($t(t,e.array,n))+1,Qt(t,e.array,n,r)}return r}async function ph(t,e){let r;if(e.type==="field"){let n=Math.floor(q(await B(t,e.index)));r=q(It(t,n))-1,Zt(t,n,r)}else if(e.type==="variable")r=q(vt(t,e.name))-1,mt(t,e.name,r);else{let n=K(await B(t,e.key));r=q($t(t,e.array,n))-1,Qt(t,e.array,n,r)}return r}async function hh(t,e){let r;if(e.type==="field"){let n=Math.floor(q(await B(t,e.index)));r=q(It(t,n)),Zt(t,n,r+1)}else if(e.type==="variable")r=q(vt(t,e.name)),mt(t,e.name,r+1);else{let n=K(await B(t,e.key));r=q($t(t,e.array,n)),Qt(t,e.array,n,r+1)}return r}async function mh(t,e){let r;if(e.type==="field"){let n=Math.floor(q(await B(t,e.index)));r=q(It(t,n)),Zt(t,n,r-1)}else if(e.type==="variable")r=q(vt(t,e.name)),mt(t,e.name,r-1);else{let n=K(await B(t,e.key));r=q($t(t,e.array,n)),Qt(t,e.array,n,r-1)}return r}async function gh(t,e,r){let n;if(e.type==="tuple"){let s=[];for(let i of e.elements)s.push(K(await B(t,i)));n=s.join(t.SUBSEP)}else n=K(await B(t,e));return aa(t,r,n)?1:0}async function yh(t,e,r){if(r)return xh(t,e,r);if(!t.lines||t.lineIndex===void 0)return-1;let n=t.lineIndex+1;if(n>=t.lines.length)return 0;let s=t.lines[n];return e?mt(t,e,s):wr(t,s),t.NR++,t.lineIndex=n,1}async function xh(t,e,r){if(!t.fs||!t.cwd)return-1;let n=K(await B(t,r)),s=t.fs.resolvePath(t.cwd,n),i=`__fc_${s}`,o=`__fi_${s}`,a,l;if(t.vars[i]===void 0)try{a=(await t.fs.readFile(s)).split(`
235
+ `),a.length>0&&a[a.length-1]===""&&a.pop(),t.vars[i]=JSON.stringify(a),t.vars[o]=-1,l=-1}catch{return-1}else a=JSON.parse(t.vars[i]),l=t.vars[o];let c=l+1;if(c>=a.length)return 0;let u=a[c];return t.vars[o]=c,e?mt(t,e,u):wr(t,u),1}async function wh(t,e){if(e.length===0)return"";for(let r=0;r<e.length-1;r++)await B(t,e[r]);return B(t,e[e.length-1])}var gs,ys=C(()=>{"use strict";ie();ta();ps();en();Kt();ms();gs=null});async function Xt(t,e){for(let r of e)if(await Rt(t,r),Eh(t))break}function Eh(t){return t.shouldExit||t.shouldNext||t.shouldNextFile||t.loopBreak||t.loopContinue||t.hasReturn}async function Rt(t,e){switch(e.type){case"block":await Xt(t,e.statements);break;case"expr_stmt":await B(t,e.expression);break;case"print":await bh(t,e.args,e.output);break;case"printf":await Sh(t,e.format,e.args,e.output);break;case"if":await Ch(t,e);break;case"while":await Ah(t,e);break;case"do_while":await kh(t,e);break;case"for":await Nh(t,e);break;case"for_in":await Ih(t,e);break;case"break":t.loopBreak=!0;break;case"continue":t.loopContinue=!0;break;case"next":t.shouldNext=!0;break;case"nextfile":t.shouldNextFile=!0;break;case"exit":t.shouldExit=!0,t.exitCode=e.code?Math.floor(q(await B(t,e.code))):0;break;case"return":t.hasReturn=!0,t.returnValue=e.value?await B(t,e.value):"";break;case"delete":await vh(t,e.target);break}}async function bh(t,e,r){let n=[];for(let i of e)n.push(K(await B(t,i)));let s=n.join(t.OFS)+t.ORS;r?await fa(t,r.redirect,r.file,s):t.output+=s}async function Sh(t,e,r,n){let s=K(await B(t,e)),i=[];for(let a of r)i.push(await B(t,a));let o=ds(s,i);n?await fa(t,n.redirect,n.file,o):t.output+=o}async function fa(t,e,r,n){if(!t.fs||!t.cwd){t.output+=n;return}let s=K(await B(t,r)),i=t.fs.resolvePath(t.cwd,s);e===">"?t.openedFiles.has(i)?await t.fs.appendFile(i,n):(await t.fs.writeFile(i,n),t.openedFiles.add(i)):(t.openedFiles.has(i)||t.openedFiles.add(i),await t.fs.appendFile(i,n))}async function Ch(t,e){De(await B(t,e.condition))?await Rt(t,e.consequent):e.alternate&&await Rt(t,e.alternate)}async function Ah(t,e){let r=0;for(;De(await B(t,e.condition));){if(r++,r>t.maxIterations)throw new z(`awk: while loop exceeded maximum iterations (${t.maxIterations})`,"iterations",t.output);if(t.loopContinue=!1,await Rt(t,e.body),t.loopBreak){t.loopBreak=!1;break}if(t.shouldExit||t.shouldNext||t.hasReturn)break}}async function kh(t,e){let r=0;do{if(r++,r>t.maxIterations)throw new z(`awk: do-while loop exceeded maximum iterations (${t.maxIterations})`,"iterations",t.output);if(t.loopContinue=!1,await Rt(t,e.body),t.loopBreak){t.loopBreak=!1;break}if(t.shouldExit||t.shouldNext||t.hasReturn)break}while(De(await B(t,e.condition)))}async function Nh(t,e){e.init&&await B(t,e.init);let r=0;for(;!e.condition||De(await B(t,e.condition));){if(r++,r>t.maxIterations)throw new z(`awk: for loop exceeded maximum iterations (${t.maxIterations})`,"iterations",t.output);if(t.loopContinue=!1,await Rt(t,e.body),t.loopBreak){t.loopBreak=!1;break}if(t.shouldExit||t.shouldNext||t.hasReturn)break;e.update&&await B(t,e.update)}}async function Ih(t,e){let r=t.arrays[e.array];if(r)for(let n of Object.keys(r)){if(t.vars[e.variable]=n,t.loopContinue=!1,await Rt(t,e.body),t.loopBreak){t.loopBreak=!1;break}if(t.shouldExit||t.shouldNext||t.hasReturn)break}}async function vh(t,e){if(e.type==="array_access"){let r=K(await B(t,e.key));la(t,e.array,r)}else e.type==="variable"&&ca(t,e.name)}var da=C(()=>{"use strict";ie();ps();ys();Kt();ms();ua(Xt)});var Er,pa=C(()=>{"use strict";ys();en();Kt();da();Er=class{ctx;program=null;rangeStates=[];constructor(e){this.ctx=e}execute(e){this.program=e,this.ctx.output="";for(let r of e.functions)this.ctx.functions.set(r.name,r);this.rangeStates=e.rules.map(()=>!1)}async executeBegin(){if(this.program){for(let e of this.program.rules)if(e.pattern?.type==="begin"&&(await Xt(this.ctx,e.action.statements),this.ctx.shouldExit))break}}async executeLine(e){if(!(!this.program||this.ctx.shouldExit)){wr(this.ctx,e),this.ctx.NR++,this.ctx.FNR++,this.ctx.shouldNext=!1;for(let r=0;r<this.program.rules.length&&!(this.ctx.shouldExit||this.ctx.shouldNext||this.ctx.shouldNextFile);r++){let n=this.program.rules[r];n.pattern?.type==="begin"||n.pattern?.type==="end"||await this.matchesRule(n,r)&&await Xt(this.ctx,n.action.statements)}}}async executeEnd(){if(!(!this.program||this.ctx.shouldExit)){for(let e of this.program.rules)if(e.pattern?.type==="end"&&(await Xt(this.ctx,e.action.statements),this.ctx.shouldExit))break}}getOutput(){return this.ctx.output}getExitCode(){return this.ctx.exitCode}getContext(){return this.ctx}async matchesRule(e,r){let n=e.pattern;if(!n)return!0;switch(n.type){case"begin":case"end":return!1;case"regex_pattern":return xr(n.pattern,this.ctx.line);case"expr_pattern":return De(await B(this.ctx,n.expression));case"range":{let s=await this.matchPattern(n.start),i=await this.matchPattern(n.end);return this.rangeStates[r]?(i&&(this.rangeStates[r]=!1),!0):s?(this.rangeStates[r]=!0,i&&(this.rangeStates[r]=!1),!0):!1}default:return!1}}async matchPattern(e){switch(e.type){case"regex_pattern":return xr(e.pattern,this.ctx.line);case"expr_pattern":return De(await B(this.ctx,e.expression));default:return!1}}}});var ha=C(()=>{"use strict";Yo();pa()});function Rh(t){return t.replace(/\[\[:space:\]\]/g,"[ \\t\\n\\r\\f\\v]").replace(/\[\[:blank:\]\]/g,"[ \\t]").replace(/\[\[:alpha:\]\]/g,"[a-zA-Z]").replace(/\[\[:digit:\]\]/g,"[0-9]").replace(/\[\[:alnum:\]\]/g,"[a-zA-Z0-9]").replace(/\[\[:upper:\]\]/g,"[A-Z]").replace(/\[\[:lower:\]\]/g,"[a-z]").replace(/\[\[:punct:\]\]/g,"[!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~]").replace(/\[\[:xdigit:\]\]/g,"[0-9A-Fa-f]").replace(/\[\[:graph:\]\]/g,"[!-~]").replace(/\[\[:print:\]\]/g,"[ -~]").replace(/\[\[:cntrl:\]\]/g,"[\\x00-\\x1f\\x7f]")}var x,$h,tn,ma=C(()=>{"use strict";(function(t){t.NUMBER="NUMBER",t.STRING="STRING",t.REGEX="REGEX",t.IDENT="IDENT",t.BEGIN="BEGIN",t.END="END",t.IF="IF",t.ELSE="ELSE",t.WHILE="WHILE",t.DO="DO",t.FOR="FOR",t.IN="IN",t.BREAK="BREAK",t.CONTINUE="CONTINUE",t.NEXT="NEXT",t.NEXTFILE="NEXTFILE",t.EXIT="EXIT",t.RETURN="RETURN",t.DELETE="DELETE",t.FUNCTION="FUNCTION",t.PRINT="PRINT",t.PRINTF="PRINTF",t.GETLINE="GETLINE",t.PLUS="PLUS",t.MINUS="MINUS",t.STAR="STAR",t.SLASH="SLASH",t.PERCENT="PERCENT",t.CARET="CARET",t.EQ="EQ",t.NE="NE",t.LT="LT",t.GT="GT",t.LE="LE",t.GE="GE",t.MATCH="MATCH",t.NOT_MATCH="NOT_MATCH",t.AND="AND",t.OR="OR",t.NOT="NOT",t.ASSIGN="ASSIGN",t.PLUS_ASSIGN="PLUS_ASSIGN",t.MINUS_ASSIGN="MINUS_ASSIGN",t.STAR_ASSIGN="STAR_ASSIGN",t.SLASH_ASSIGN="SLASH_ASSIGN",t.PERCENT_ASSIGN="PERCENT_ASSIGN",t.CARET_ASSIGN="CARET_ASSIGN",t.INCREMENT="INCREMENT",t.DECREMENT="DECREMENT",t.QUESTION="QUESTION",t.COLON="COLON",t.COMMA="COMMA",t.SEMICOLON="SEMICOLON",t.NEWLINE="NEWLINE",t.LPAREN="LPAREN",t.RPAREN="RPAREN",t.LBRACE="LBRACE",t.RBRACE="RBRACE",t.LBRACKET="LBRACKET",t.RBRACKET="RBRACKET",t.DOLLAR="DOLLAR",t.APPEND="APPEND",t.PIPE="PIPE",t.EOF="EOF"})(x||(x={}));$h={BEGIN:x.BEGIN,END:x.END,if:x.IF,else:x.ELSE,while:x.WHILE,do:x.DO,for:x.FOR,in:x.IN,break:x.BREAK,continue:x.CONTINUE,next:x.NEXT,nextfile:x.NEXTFILE,exit:x.EXIT,return:x.RETURN,delete:x.DELETE,function:x.FUNCTION,print:x.PRINT,printf:x.PRINTF,getline:x.GETLINE};tn=class{input;pos=0;line=1;column=1;lastTokenType=null;constructor(e){this.input=e}tokenize(){let e=[];for(;this.pos<this.input.length;){let r=this.nextToken();r&&(e.push(r),this.lastTokenType=r.type)}return e.push(this.makeToken(x.EOF,"")),e}makeToken(e,r){return{type:e,value:r,line:this.line,column:this.column}}peek(e=0){return this.input[this.pos+e]||""}advance(){let e=this.input[this.pos++]||"";return e===`
236
236
  `?(this.line++,this.column=1):this.column++,e}skipWhitespace(){for(;this.pos<this.input.length;){let e=this.peek();if(e===" "||e===" "||e==="\r")this.advance();else if(e==="\\")if(this.peek(1)===`
237
237
  `)this.advance(),this.advance();else break;else if(e==="#")for(;this.pos<this.input.length&&this.peek()!==`
238
238
  `;)this.advance();else break}}nextToken(){if(this.skipWhitespace(),this.pos>=this.input.length)return null;let e=this.line,r=this.column,n=this.peek();return n===`
239
239
  `?(this.advance(),{type:x.NEWLINE,value:`
240
240
  `,line:e,column:r}):n==='"'?this.readString():n==="/"&&this.canBeRegex()?this.readRegex():this.isDigit(n)||n==="."&&this.isDigit(this.peek(1))?this.readNumber():this.isAlpha(n)||n==="_"?this.readIdentifier():this.readOperator()}canBeRegex(){return new Set([null,x.NEWLINE,x.SEMICOLON,x.LBRACE,x.RBRACE,x.LPAREN,x.LBRACKET,x.COMMA,x.ASSIGN,x.PLUS_ASSIGN,x.MINUS_ASSIGN,x.STAR_ASSIGN,x.SLASH_ASSIGN,x.PERCENT_ASSIGN,x.CARET_ASSIGN,x.AND,x.OR,x.NOT,x.MATCH,x.NOT_MATCH,x.QUESTION,x.COLON,x.LT,x.GT,x.LE,x.GE,x.EQ,x.NE,x.PLUS,x.MINUS,x.STAR,x.PERCENT,x.CARET,x.PRINT,x.PRINTF,x.IF,x.WHILE,x.DO,x.FOR,x.RETURN]).has(this.lastTokenType)}readString(){let e=this.line,r=this.column;this.advance();let n="";for(;this.pos<this.input.length&&this.peek()!=='"';)if(this.peek()==="\\"){this.advance();let s=this.advance();switch(s){case"n":n+=`
241
241
  `;break;case"t":n+=" ";break;case"r":n+="\r";break;case"\\":n+="\\";break;case'"':n+='"';break;case"/":n+="/";break;default:n+=s}}else n+=this.advance();return this.peek()==='"'&&this.advance(),{type:x.STRING,value:n,line:e,column:r}}readRegex(){let e=this.line,r=this.column;this.advance();let n="";for(;this.pos<this.input.length&&this.peek()!=="/";)if(this.peek()==="\\")n+=this.advance(),this.pos<this.input.length&&(n+=this.advance());else{if(this.peek()===`
242
- `)break;n+=this.advance()}return this.peek()==="/"&&this.advance(),n=ah(n),{type:x.REGEX,value:n,line:e,column:r}}readNumber(){let e=this.line,r=this.column,n="";for(;this.isDigit(this.peek());)n+=this.advance();if(this.peek()==="."&&this.isDigit(this.peek(1)))for(n+=this.advance();this.isDigit(this.peek());)n+=this.advance();if(this.peek()==="e"||this.peek()==="E")for(n+=this.advance(),(this.peek()==="+"||this.peek()==="-")&&(n+=this.advance());this.isDigit(this.peek());)n+=this.advance();return{type:x.NUMBER,value:parseFloat(n),line:e,column:r}}readIdentifier(){let e=this.line,r=this.column,n="";for(;this.isAlphaNumeric(this.peek())||this.peek()==="_";)n+=this.advance();let s=oh[n];return s?{type:s,value:n,line:e,column:r}:{type:x.IDENT,value:n,line:e,column:r}}readOperator(){let e=this.line,r=this.column,n=this.advance(),s=this.peek();switch(n){case"+":return s==="+"?(this.advance(),{type:x.INCREMENT,value:"++",line:e,column:r}):s==="="?(this.advance(),{type:x.PLUS_ASSIGN,value:"+=",line:e,column:r}):{type:x.PLUS,value:"+",line:e,column:r};case"-":return s==="-"?(this.advance(),{type:x.DECREMENT,value:"--",line:e,column:r}):s==="="?(this.advance(),{type:x.MINUS_ASSIGN,value:"-=",line:e,column:r}):{type:x.MINUS,value:"-",line:e,column:r};case"*":return s==="*"?(this.advance(),{type:x.CARET,value:"**",line:e,column:r}):s==="="?(this.advance(),{type:x.STAR_ASSIGN,value:"*=",line:e,column:r}):{type:x.STAR,value:"*",line:e,column:r};case"/":return s==="="?(this.advance(),{type:x.SLASH_ASSIGN,value:"/=",line:e,column:r}):{type:x.SLASH,value:"/",line:e,column:r};case"%":return s==="="?(this.advance(),{type:x.PERCENT_ASSIGN,value:"%=",line:e,column:r}):{type:x.PERCENT,value:"%",line:e,column:r};case"^":return s==="="?(this.advance(),{type:x.CARET_ASSIGN,value:"^=",line:e,column:r}):{type:x.CARET,value:"^",line:e,column:r};case"=":return s==="="?(this.advance(),{type:x.EQ,value:"==",line:e,column:r}):{type:x.ASSIGN,value:"=",line:e,column:r};case"!":return s==="="?(this.advance(),{type:x.NE,value:"!=",line:e,column:r}):s==="~"?(this.advance(),{type:x.NOT_MATCH,value:"!~",line:e,column:r}):{type:x.NOT,value:"!",line:e,column:r};case"<":return s==="="?(this.advance(),{type:x.LE,value:"<=",line:e,column:r}):{type:x.LT,value:"<",line:e,column:r};case">":return s==="="?(this.advance(),{type:x.GE,value:">=",line:e,column:r}):s===">"?(this.advance(),{type:x.APPEND,value:">>",line:e,column:r}):{type:x.GT,value:">",line:e,column:r};case"&":return s==="&"?(this.advance(),{type:x.AND,value:"&&",line:e,column:r}):{type:x.IDENT,value:"&",line:e,column:r};case"|":return s==="|"?(this.advance(),{type:x.OR,value:"||",line:e,column:r}):{type:x.PIPE,value:"|",line:e,column:r};case"~":return{type:x.MATCH,value:"~",line:e,column:r};case"?":return{type:x.QUESTION,value:"?",line:e,column:r};case":":return{type:x.COLON,value:":",line:e,column:r};case",":return{type:x.COMMA,value:",",line:e,column:r};case";":return{type:x.SEMICOLON,value:";",line:e,column:r};case"(":return{type:x.LPAREN,value:"(",line:e,column:r};case")":return{type:x.RPAREN,value:")",line:e,column:r};case"{":return{type:x.LBRACE,value:"{",line:e,column:r};case"}":return{type:x.RBRACE,value:"}",line:e,column:r};case"[":return{type:x.LBRACKET,value:"[",line:e,column:r};case"]":return{type:x.RBRACKET,value:"]",line:e,column:r};case"$":return{type:x.DOLLAR,value:"$",line:e,column:r};default:return{type:x.IDENT,value:n,line:e,column:r}}}isDigit(e){return e>="0"&&e<="9"}isAlpha(e){return e>="a"&&e<="z"||e>="A"&&e<="Z"}isAlphaNumeric(e){return this.isDigit(e)||this.isAlpha(e)}}});var Br,Xo=C(()=>{"use strict";Qo();Br=class{tokens=[];pos=0;parse(e){let r=new _r(e);return this.tokens=r.tokenize(),this.pos=0,this.parseProgram()}current(){return this.tokens[this.pos]||{type:x.EOF,value:"",line:0,column:0}}advance(){let e=this.current();return this.pos<this.tokens.length&&this.pos++,e}match(...e){return e.includes(this.current().type)}check(e){return this.current().type===e}expect(e,r){if(!this.check(e)){let n=this.current();throw new Error(r||`Expected ${e}, got ${n.type} at line ${n.line}:${n.column}`)}return this.advance()}skipNewlines(){for(;this.check(x.NEWLINE);)this.advance()}skipTerminators(){for(;this.check(x.NEWLINE)||this.check(x.SEMICOLON);)this.advance()}parseProgram(){let e=[],r=[];for(this.skipNewlines();!this.check(x.EOF)&&(this.skipNewlines(),!this.check(x.EOF));)this.check(x.FUNCTION)?e.push(this.parseFunction()):r.push(this.parseRule()),this.skipTerminators();return{functions:e,rules:r}}parseFunction(){this.expect(x.FUNCTION);let e=this.expect(x.IDENT).value;this.expect(x.LPAREN);let r=[];if(!this.check(x.RPAREN))for(r.push(this.expect(x.IDENT).value);this.check(x.COMMA);)this.advance(),r.push(this.expect(x.IDENT).value);this.expect(x.RPAREN),this.skipNewlines();let n=this.parseBlock();return{name:e,params:r,body:n}}parseRule(){let e;if(this.check(x.BEGIN))this.advance(),e={type:"begin"};else if(this.check(x.END))this.advance(),e={type:"end"};else if(this.check(x.LBRACE))e=void 0;else if(this.check(x.REGEX)){let n=this.advance();if(this.check(x.AND)||this.check(x.OR)){let s={type:"binary",operator:"~",left:{type:"field",index:{type:"number",value:0}},right:{type:"regex",pattern:n.value}};e={type:"expr_pattern",expression:this.parseLogicalOrRest(s)}}else{let s={type:"regex_pattern",pattern:n.value};if(this.check(x.COMMA)){this.advance();let i;this.check(x.REGEX)?i={type:"regex_pattern",pattern:this.advance().value}:i={type:"expr_pattern",expression:this.parseExpression()},e={type:"range",start:s,end:i}}else e=s}}else{let s={type:"expr_pattern",expression:this.parseExpression()};if(this.check(x.COMMA)){this.advance();let i;this.check(x.REGEX)?i={type:"regex_pattern",pattern:this.advance().value}:i={type:"expr_pattern",expression:this.parseExpression()},e={type:"range",start:s,end:i}}else e=s}this.skipNewlines();let r;return this.check(x.LBRACE)?r=this.parseBlock():r={type:"block",statements:[{type:"print",args:[{type:"field",index:{type:"number",value:0}}]}]},{pattern:e,action:r}}parseBlock(){this.expect(x.LBRACE),this.skipNewlines();let e=[];for(;!this.check(x.RBRACE)&&!this.check(x.EOF);)e.push(this.parseStatement()),this.skipTerminators();return this.expect(x.RBRACE),{type:"block",statements:e}}parseStatement(){if(this.check(x.LBRACE))return this.parseBlock();if(this.check(x.IF))return this.parseIf();if(this.check(x.WHILE))return this.parseWhile();if(this.check(x.DO))return this.parseDoWhile();if(this.check(x.FOR))return this.parseFor();if(this.check(x.BREAK))return this.advance(),{type:"break"};if(this.check(x.CONTINUE))return this.advance(),{type:"continue"};if(this.check(x.NEXT))return this.advance(),{type:"next"};if(this.check(x.NEXTFILE))return this.advance(),{type:"nextfile"};if(this.check(x.EXIT)){this.advance();let r;return!this.check(x.NEWLINE)&&!this.check(x.SEMICOLON)&&!this.check(x.RBRACE)&&!this.check(x.EOF)&&(r=this.parseExpression()),{type:"exit",code:r}}if(this.check(x.RETURN)){this.advance();let r;return!this.check(x.NEWLINE)&&!this.check(x.SEMICOLON)&&!this.check(x.RBRACE)&&!this.check(x.EOF)&&(r=this.parseExpression()),{type:"return",value:r}}if(this.check(x.DELETE)){this.advance();let r=this.parsePrimary();if(r.type!=="array_access"&&r.type!=="variable")throw new Error("delete requires array element or array");return{type:"delete",target:r}}return this.check(x.PRINT)?this.parsePrint():this.check(x.PRINTF)?this.parsePrintf():{type:"expr_stmt",expression:this.parseExpression()}}parseIf(){this.expect(x.IF),this.expect(x.LPAREN);let e=this.parseExpression();this.expect(x.RPAREN),this.skipNewlines();let r=this.parseStatement();this.skipTerminators();let n;return this.check(x.ELSE)&&(this.advance(),this.skipNewlines(),n=this.parseStatement()),{type:"if",condition:e,consequent:r,alternate:n}}parseWhile(){this.expect(x.WHILE),this.expect(x.LPAREN);let e=this.parseExpression();this.expect(x.RPAREN),this.skipNewlines();let r=this.parseStatement();return{type:"while",condition:e,body:r}}parseDoWhile(){this.expect(x.DO),this.skipNewlines();let e=this.parseStatement();this.skipNewlines(),this.expect(x.WHILE),this.expect(x.LPAREN);let r=this.parseExpression();return this.expect(x.RPAREN),{type:"do_while",body:e,condition:r}}parseFor(){if(this.expect(x.FOR),this.expect(x.LPAREN),this.check(x.IDENT)){let i=this.advance();if(this.check(x.IN)){this.advance();let o=this.expect(x.IDENT).value;this.expect(x.RPAREN),this.skipNewlines();let a=this.parseStatement();return{type:"for_in",variable:i.value,array:o,body:a}}this.pos--}let e;this.check(x.SEMICOLON)||(e=this.parseExpression()),this.expect(x.SEMICOLON);let r;this.check(x.SEMICOLON)||(r=this.parseExpression()),this.expect(x.SEMICOLON);let n;this.check(x.RPAREN)||(n=this.parseExpression()),this.expect(x.RPAREN),this.skipNewlines();let s=this.parseStatement();return{type:"for",init:e,condition:r,update:n,body:s}}parsePrint(){this.expect(x.PRINT);let e=[];if(this.check(x.NEWLINE)||this.check(x.SEMICOLON)||this.check(x.RBRACE)||this.check(x.PIPE)||this.check(x.GT)||this.check(x.APPEND))e.push({type:"field",index:{type:"number",value:0}});else for(e.push(this.parsePrintArg());this.check(x.COMMA);)this.advance(),e.push(this.parsePrintArg());let r;return this.check(x.GT)?(this.advance(),r={redirect:">",file:this.parsePrimary()}):this.check(x.APPEND)&&(this.advance(),r={redirect:">>",file:this.parsePrimary()}),{type:"print",args:e,output:r}}parsePrintArg(){return this.lookAheadForTernary()?this.parseTernary():this.parsePrintOr()}lookAheadForTernary(){let e=0,r=this.pos;for(;r<this.tokens.length;){let n=this.tokens[r];if(n.type===x.LPAREN&&e++,n.type===x.RPAREN&&e--,n.type===x.QUESTION&&e===0)return!0;if(n.type===x.NEWLINE||n.type===x.SEMICOLON||n.type===x.RBRACE||n.type===x.COMMA||n.type===x.PIPE)return!1;r++}return!1}parsePrintOr(){let e=this.parsePrintAnd();for(;this.check(x.OR);){this.advance();let r=this.parsePrintAnd();e={type:"binary",operator:"||",left:e,right:r}}return e}parsePrintAnd(){let e=this.parsePrintIn();for(;this.check(x.AND);){this.advance();let r=this.parsePrintIn();e={type:"binary",operator:"&&",left:e,right:r}}return e}parsePrintIn(){let e=this.parsePrintMatch();if(this.check(x.IN)){this.advance();let r=String(this.expect(x.IDENT).value);return{type:"in",key:e,array:r}}return e}parsePrintMatch(){let e=this.parsePrintComparison();for(;this.match(x.MATCH,x.NOT_MATCH);){let r=this.advance().type===x.MATCH?"~":"!~",n=this.parsePrintComparison();e={type:"binary",operator:r,left:e,right:n}}return e}parsePrintComparison(){let e=this.parseConcatenation();for(;this.match(x.LT,x.LE,x.GE,x.EQ,x.NE);){let r=this.advance(),n=this.parseConcatenation();e={type:"binary",operator:{"<":"<","<=":"<=",">=":">=","==":"==","!=":"!="}[r.value],left:e,right:n}}return e}parsePrintf(){this.expect(x.PRINTF);let e=this.parsePrintArg(),r=[];for(;this.check(x.COMMA);)this.advance(),r.push(this.parsePrintArg());let n;return this.check(x.GT)?(this.advance(),n={redirect:">",file:this.parsePrimary()}):this.check(x.APPEND)&&(this.advance(),n={redirect:">>",file:this.parsePrimary()}),{type:"printf",format:e,args:r,output:n}}parseExpression(){return this.parseAssignment()}parseAssignment(){let e=this.parseTernary();if(this.match(x.ASSIGN,x.PLUS_ASSIGN,x.MINUS_ASSIGN,x.STAR_ASSIGN,x.SLASH_ASSIGN,x.PERCENT_ASSIGN,x.CARET_ASSIGN)){let r=this.advance(),n=this.parseAssignment();if(e.type!=="variable"&&e.type!=="field"&&e.type!=="array_access")throw new Error("Invalid assignment target");return{type:"assignment",operator:{"=":"=","+=":"+=","-=":"-=","*=":"*=","/=":"/=","%=":"%=","^=":"^="}[r.value],target:e,value:n}}return e}parseTernary(){let e=this.parseOr();if(this.check(x.QUESTION)){this.advance();let r=this.parseExpression();this.expect(x.COLON);let n=this.parseExpression();e={type:"ternary",condition:e,consequent:r,alternate:n}}return e}parseOr(){let e=this.parseAnd();for(;this.check(x.OR);){this.advance();let r=this.parseAnd();e={type:"binary",operator:"||",left:e,right:r}}return e}parseLogicalOrRest(e){for(e=this.parseLogicalAndRest(e);this.check(x.OR);){this.advance();let r=this.parseAnd();e={type:"binary",operator:"||",left:e,right:r}}return e}parseLogicalAndRest(e){for(;this.check(x.AND);){this.advance();let r=this.parseIn();e={type:"binary",operator:"&&",left:e,right:r}}return e}parseAnd(){let e=this.parseIn();for(;this.check(x.AND);){this.advance();let r=this.parseIn();e={type:"binary",operator:"&&",left:e,right:r}}return e}parseIn(){let e=this.parseMatch();if(this.check(x.IN)){this.advance();let r=this.expect(x.IDENT).value;return{type:"in",key:e,array:r}}return e}parseMatch(){let e=this.parseComparison();for(;this.match(x.MATCH,x.NOT_MATCH);){let r=this.advance().type===x.MATCH?"~":"!~",n=this.parseComparison();e={type:"binary",operator:r,left:e,right:n}}return e}parseComparison(){let e=this.parseConcatenation();for(;this.match(x.LT,x.LE,x.GT,x.GE,x.EQ,x.NE);){let r=this.advance(),n=this.parseConcatenation();e={type:"binary",operator:{"<":"<","<=":"<=",">":">",">=":">=","==":"==","!=":"!="}[r.value],left:e,right:n}}return e}parseConcatenation(){let e=this.parseAddSub();for(;this.canStartExpression()&&!this.isComparisonOrHigherOp();){let r=this.parseAddSub();e={type:"binary",operator:" ",left:e,right:r}}return e}canStartExpression(){return this.match(x.NUMBER,x.STRING,x.IDENT,x.DOLLAR,x.LPAREN,x.NOT,x.MINUS,x.PLUS,x.INCREMENT,x.DECREMENT)}isComparisonOrHigherOp(){return this.match(x.LT,x.LE,x.GT,x.GE,x.EQ,x.NE,x.AND,x.OR,x.QUESTION,x.MATCH,x.NOT_MATCH,x.ASSIGN,x.PLUS_ASSIGN,x.MINUS_ASSIGN,x.STAR_ASSIGN,x.SLASH_ASSIGN,x.PERCENT_ASSIGN,x.CARET_ASSIGN,x.COMMA,x.SEMICOLON,x.NEWLINE,x.RBRACE,x.RPAREN,x.RBRACKET,x.COLON,x.PIPE,x.APPEND,x.IN)}parseAddSub(){let e=this.parseMulDiv();for(;this.match(x.PLUS,x.MINUS);){let r=this.advance().value,n=this.parseMulDiv();e={type:"binary",operator:r,left:e,right:n}}return e}parseMulDiv(){let e=this.parseUnary();for(;this.match(x.STAR,x.SLASH,x.PERCENT);){let r=this.advance(),n=this.parseUnary();e={type:"binary",operator:{"*":"*","/":"/","%":"%"}[r.value],left:e,right:n}}return e}parseUnary(){if(this.check(x.INCREMENT)){this.advance();let e=this.parseUnary();return e.type!=="variable"&&e.type!=="field"&&e.type!=="array_access"?{type:"unary",operator:"+",operand:{type:"unary",operator:"+",operand:e}}:{type:"pre_increment",operand:e}}if(this.check(x.DECREMENT)){this.advance();let e=this.parseUnary();return e.type!=="variable"&&e.type!=="field"&&e.type!=="array_access"?{type:"unary",operator:"-",operand:{type:"unary",operator:"-",operand:e}}:{type:"pre_decrement",operand:e}}if(this.match(x.NOT,x.MINUS,x.PLUS)){let e=this.advance().value,r=this.parseUnary();return{type:"unary",operator:e,operand:r}}return this.parsePower()}parsePower(){let e=this.parsePostfix();if(this.check(x.CARET)){this.advance();let r=this.parsePower();e={type:"binary",operator:"^",left:e,right:r}}return e}parsePostfix(){let e=this.parsePrimary();if(this.check(x.INCREMENT)){if(this.advance(),e.type!=="variable"&&e.type!=="field"&&e.type!=="array_access")throw new Error("Invalid increment operand");return{type:"post_increment",operand:e}}if(this.check(x.DECREMENT)){if(this.advance(),e.type!=="variable"&&e.type!=="field"&&e.type!=="array_access")throw new Error("Invalid decrement operand");return{type:"post_decrement",operand:e}}return e}parsePrimary(){if(this.check(x.NUMBER))return{type:"number",value:this.advance().value};if(this.check(x.STRING))return{type:"string",value:this.advance().value};if(this.check(x.REGEX))return{type:"regex",pattern:this.advance().value};if(this.check(x.DOLLAR))return this.advance(),{type:"field",index:this.parsePrimary()};if(this.check(x.LPAREN)){this.advance();let e=this.parseExpression();if(this.check(x.COMMA)){let r=[e];for(;this.check(x.COMMA);)this.advance(),r.push(this.parseExpression());return this.expect(x.RPAREN),{type:"tuple",elements:r}}return this.expect(x.RPAREN),e}if(this.check(x.GETLINE)){this.advance();let e,r;return this.check(x.IDENT)&&(e=this.advance().value),this.check(x.LT)&&(this.advance(),r=this.parsePrimary()),{type:"getline",variable:e,file:r}}if(this.check(x.IDENT)){let e=this.advance().value;if(this.check(x.LPAREN)){this.advance();let r=[];if(!this.check(x.RPAREN))for(r.push(this.parseExpression());this.check(x.COMMA);)this.advance(),r.push(this.parseExpression());return this.expect(x.RPAREN),{type:"call",name:e,args:r}}if(this.check(x.LBRACKET)){this.advance();let r=[this.parseExpression()];for(;this.check(x.COMMA);)this.advance(),r.push(this.parseExpression());this.expect(x.RBRACKET);let n;if(r.length===1)n=r[0];else{n=r[0];for(let s=1;s<r.length;s++)n={type:"binary",operator:" ",left:{type:"binary",operator:" ",left:n,right:{type:"variable",name:"SUBSEP"}},right:r[s]}}return{type:"array_access",array:e,key:n}}return{type:"variable",name:e}}throw new Error(`Unexpected token: ${this.current().type} at line ${this.current().line}:${this.current().column}`)}}});var ta={};R(ta,{awkCommand2:()=>ch});function Jo(t){return t.replace(/\\t/g," ").replace(/\\n/g,`
243
- `).replace(/\\r/g,"\r").replace(/\\\\/g,"\\")}function Yo(t){if(t===" ")return/\s+/;if(/[[\](){}.*+?^$|\\]/.test(t))try{return new RegExp(t)}catch{return new RegExp(ea(t))}return new RegExp(ea(t))}function ea(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}var lh,ch,ra=C(()=>{"use strict";oe();L();Zo();Xo();lh={name:"awk",summary:"pattern scanning and text processing language",usage:"awk [OPTIONS] 'PROGRAM' [FILE...]",options:["-F FS use FS as field separator","-v VAR=VAL assign VAL to variable VAR"," --help display this help and exit"]},ch={name:"awk",async execute(t,e){if(N(t))return k(lh);let r=/\s+/,n=" ",s={},i=0;for(let d=0;d<t.length;d++){let h=t[d];if(h==="-F"&&d+1<t.length)n=Jo(t[++d]),r=Yo(n),i=d+1;else if(h.startsWith("-F"))n=Jo(h.slice(2)),r=Yo(n),i=d+1;else if(h==="-v"&&d+1<t.length){let m=t[++d],g=m.indexOf("=");if(g>0){let w=m.slice(0,g),E=m.slice(g+1);s[w]=E}i=d+1}else{if(h.startsWith("--"))return P("awk",h);if(h.startsWith("-")&&h.length>1){let m=h[1];if(m!=="F"&&m!=="v")return P("awk",`-${m}`);i=d+1}else if(!h.startsWith("-")){i=d;break}}}if(i>=t.length)return{stdout:"",stderr:`awk: missing program
244
- `,exitCode:1};let o=t[i],a=t.slice(i+1),l=new Br,c;try{c=l.parse(o)}catch(d){return{stdout:"",stderr:`awk: ${d instanceof Error?d.message:String(d)}
245
- `,exitCode:1}}let u={readFile:e.fs.readFile.bind(e.fs),writeFile:e.fs.writeFile.bind(e.fs),appendFile:async(d,h)=>{try{let m=await e.fs.readFile(d);await e.fs.writeFile(d,m+h)}catch{await e.fs.writeFile(d,h)}},resolvePath:e.fs.resolvePath.bind(e.fs)},f=Gn({fieldSep:r,maxIterations:e.limits?.maxAwkIterations,fs:u,cwd:e.cwd});f.FS=n,f.vars={...s},f.ARGC=a.length+1,f.ARGV={0:"awk"};for(let d=0;d<a.length;d++)f.ARGV[String(d+1)]=a[d];let p=new ar(f);p.execute(c);try{if(await p.executeBegin(),f.shouldExit)return{stdout:p.getOutput(),stderr:"",exitCode:p.getExitCode()};let d=[];if(a.length>0)for(let h of a)try{let m=e.fs.resolvePath(e.cwd,h),w=(await e.fs.readFile(m)).split(`
246
- `);w.length>0&&w[w.length-1]===""&&w.pop(),d.push({filename:h,lines:w})}catch{return{stdout:"",stderr:`awk: ${h}: No such file or directory
242
+ `)break;n+=this.advance()}return this.peek()==="/"&&this.advance(),n=Rh(n),{type:x.REGEX,value:n,line:e,column:r}}readNumber(){let e=this.line,r=this.column,n="";for(;this.isDigit(this.peek());)n+=this.advance();if(this.peek()==="."&&this.isDigit(this.peek(1)))for(n+=this.advance();this.isDigit(this.peek());)n+=this.advance();if(this.peek()==="e"||this.peek()==="E")for(n+=this.advance(),(this.peek()==="+"||this.peek()==="-")&&(n+=this.advance());this.isDigit(this.peek());)n+=this.advance();return{type:x.NUMBER,value:parseFloat(n),line:e,column:r}}readIdentifier(){let e=this.line,r=this.column,n="";for(;this.isAlphaNumeric(this.peek())||this.peek()==="_";)n+=this.advance();let s=$h[n];return s?{type:s,value:n,line:e,column:r}:{type:x.IDENT,value:n,line:e,column:r}}readOperator(){let e=this.line,r=this.column,n=this.advance(),s=this.peek();switch(n){case"+":return s==="+"?(this.advance(),{type:x.INCREMENT,value:"++",line:e,column:r}):s==="="?(this.advance(),{type:x.PLUS_ASSIGN,value:"+=",line:e,column:r}):{type:x.PLUS,value:"+",line:e,column:r};case"-":return s==="-"?(this.advance(),{type:x.DECREMENT,value:"--",line:e,column:r}):s==="="?(this.advance(),{type:x.MINUS_ASSIGN,value:"-=",line:e,column:r}):{type:x.MINUS,value:"-",line:e,column:r};case"*":return s==="*"?(this.advance(),{type:x.CARET,value:"**",line:e,column:r}):s==="="?(this.advance(),{type:x.STAR_ASSIGN,value:"*=",line:e,column:r}):{type:x.STAR,value:"*",line:e,column:r};case"/":return s==="="?(this.advance(),{type:x.SLASH_ASSIGN,value:"/=",line:e,column:r}):{type:x.SLASH,value:"/",line:e,column:r};case"%":return s==="="?(this.advance(),{type:x.PERCENT_ASSIGN,value:"%=",line:e,column:r}):{type:x.PERCENT,value:"%",line:e,column:r};case"^":return s==="="?(this.advance(),{type:x.CARET_ASSIGN,value:"^=",line:e,column:r}):{type:x.CARET,value:"^",line:e,column:r};case"=":return s==="="?(this.advance(),{type:x.EQ,value:"==",line:e,column:r}):{type:x.ASSIGN,value:"=",line:e,column:r};case"!":return s==="="?(this.advance(),{type:x.NE,value:"!=",line:e,column:r}):s==="~"?(this.advance(),{type:x.NOT_MATCH,value:"!~",line:e,column:r}):{type:x.NOT,value:"!",line:e,column:r};case"<":return s==="="?(this.advance(),{type:x.LE,value:"<=",line:e,column:r}):{type:x.LT,value:"<",line:e,column:r};case">":return s==="="?(this.advance(),{type:x.GE,value:">=",line:e,column:r}):s===">"?(this.advance(),{type:x.APPEND,value:">>",line:e,column:r}):{type:x.GT,value:">",line:e,column:r};case"&":return s==="&"?(this.advance(),{type:x.AND,value:"&&",line:e,column:r}):{type:x.IDENT,value:"&",line:e,column:r};case"|":return s==="|"?(this.advance(),{type:x.OR,value:"||",line:e,column:r}):{type:x.PIPE,value:"|",line:e,column:r};case"~":return{type:x.MATCH,value:"~",line:e,column:r};case"?":return{type:x.QUESTION,value:"?",line:e,column:r};case":":return{type:x.COLON,value:":",line:e,column:r};case",":return{type:x.COMMA,value:",",line:e,column:r};case";":return{type:x.SEMICOLON,value:";",line:e,column:r};case"(":return{type:x.LPAREN,value:"(",line:e,column:r};case")":return{type:x.RPAREN,value:")",line:e,column:r};case"{":return{type:x.LBRACE,value:"{",line:e,column:r};case"}":return{type:x.RBRACE,value:"}",line:e,column:r};case"[":return{type:x.LBRACKET,value:"[",line:e,column:r};case"]":return{type:x.RBRACKET,value:"]",line:e,column:r};case"$":return{type:x.DOLLAR,value:"$",line:e,column:r};default:return{type:x.IDENT,value:n,line:e,column:r}}}isDigit(e){return e>="0"&&e<="9"}isAlpha(e){return e>="a"&&e<="z"||e>="A"&&e<="Z"}isAlphaNumeric(e){return this.isDigit(e)||this.isAlpha(e)}}});var rn,ga=C(()=>{"use strict";ma();rn=class{tokens=[];pos=0;parse(e){let r=new tn(e);return this.tokens=r.tokenize(),this.pos=0,this.parseProgram()}current(){return this.tokens[this.pos]||{type:x.EOF,value:"",line:0,column:0}}advance(){let e=this.current();return this.pos<this.tokens.length&&this.pos++,e}match(...e){return e.includes(this.current().type)}check(e){return this.current().type===e}expect(e,r){if(!this.check(e)){let n=this.current();throw new Error(r||`Expected ${e}, got ${n.type} at line ${n.line}:${n.column}`)}return this.advance()}skipNewlines(){for(;this.check(x.NEWLINE);)this.advance()}skipTerminators(){for(;this.check(x.NEWLINE)||this.check(x.SEMICOLON);)this.advance()}parseProgram(){let e=[],r=[];for(this.skipNewlines();!this.check(x.EOF)&&(this.skipNewlines(),!this.check(x.EOF));)this.check(x.FUNCTION)?e.push(this.parseFunction()):r.push(this.parseRule()),this.skipTerminators();return{functions:e,rules:r}}parseFunction(){this.expect(x.FUNCTION);let e=this.expect(x.IDENT).value;this.expect(x.LPAREN);let r=[];if(!this.check(x.RPAREN))for(r.push(this.expect(x.IDENT).value);this.check(x.COMMA);)this.advance(),r.push(this.expect(x.IDENT).value);this.expect(x.RPAREN),this.skipNewlines();let n=this.parseBlock();return{name:e,params:r,body:n}}parseRule(){let e;if(this.check(x.BEGIN))this.advance(),e={type:"begin"};else if(this.check(x.END))this.advance(),e={type:"end"};else if(this.check(x.LBRACE))e=void 0;else if(this.check(x.REGEX)){let n=this.advance();if(this.check(x.AND)||this.check(x.OR)){let s={type:"binary",operator:"~",left:{type:"field",index:{type:"number",value:0}},right:{type:"regex",pattern:n.value}};e={type:"expr_pattern",expression:this.parseLogicalOrRest(s)}}else{let s={type:"regex_pattern",pattern:n.value};if(this.check(x.COMMA)){this.advance();let i;this.check(x.REGEX)?i={type:"regex_pattern",pattern:this.advance().value}:i={type:"expr_pattern",expression:this.parseExpression()},e={type:"range",start:s,end:i}}else e=s}}else{let s={type:"expr_pattern",expression:this.parseExpression()};if(this.check(x.COMMA)){this.advance();let i;this.check(x.REGEX)?i={type:"regex_pattern",pattern:this.advance().value}:i={type:"expr_pattern",expression:this.parseExpression()},e={type:"range",start:s,end:i}}else e=s}this.skipNewlines();let r;return this.check(x.LBRACE)?r=this.parseBlock():r={type:"block",statements:[{type:"print",args:[{type:"field",index:{type:"number",value:0}}]}]},{pattern:e,action:r}}parseBlock(){this.expect(x.LBRACE),this.skipNewlines();let e=[];for(;!this.check(x.RBRACE)&&!this.check(x.EOF);)e.push(this.parseStatement()),this.skipTerminators();return this.expect(x.RBRACE),{type:"block",statements:e}}parseStatement(){if(this.check(x.LBRACE))return this.parseBlock();if(this.check(x.IF))return this.parseIf();if(this.check(x.WHILE))return this.parseWhile();if(this.check(x.DO))return this.parseDoWhile();if(this.check(x.FOR))return this.parseFor();if(this.check(x.BREAK))return this.advance(),{type:"break"};if(this.check(x.CONTINUE))return this.advance(),{type:"continue"};if(this.check(x.NEXT))return this.advance(),{type:"next"};if(this.check(x.NEXTFILE))return this.advance(),{type:"nextfile"};if(this.check(x.EXIT)){this.advance();let r;return!this.check(x.NEWLINE)&&!this.check(x.SEMICOLON)&&!this.check(x.RBRACE)&&!this.check(x.EOF)&&(r=this.parseExpression()),{type:"exit",code:r}}if(this.check(x.RETURN)){this.advance();let r;return!this.check(x.NEWLINE)&&!this.check(x.SEMICOLON)&&!this.check(x.RBRACE)&&!this.check(x.EOF)&&(r=this.parseExpression()),{type:"return",value:r}}if(this.check(x.DELETE)){this.advance();let r=this.parsePrimary();if(r.type!=="array_access"&&r.type!=="variable")throw new Error("delete requires array element or array");return{type:"delete",target:r}}return this.check(x.PRINT)?this.parsePrint():this.check(x.PRINTF)?this.parsePrintf():{type:"expr_stmt",expression:this.parseExpression()}}parseIf(){this.expect(x.IF),this.expect(x.LPAREN);let e=this.parseExpression();this.expect(x.RPAREN),this.skipNewlines();let r=this.parseStatement();this.skipTerminators();let n;return this.check(x.ELSE)&&(this.advance(),this.skipNewlines(),n=this.parseStatement()),{type:"if",condition:e,consequent:r,alternate:n}}parseWhile(){this.expect(x.WHILE),this.expect(x.LPAREN);let e=this.parseExpression();this.expect(x.RPAREN),this.skipNewlines();let r=this.parseStatement();return{type:"while",condition:e,body:r}}parseDoWhile(){this.expect(x.DO),this.skipNewlines();let e=this.parseStatement();this.skipNewlines(),this.expect(x.WHILE),this.expect(x.LPAREN);let r=this.parseExpression();return this.expect(x.RPAREN),{type:"do_while",body:e,condition:r}}parseFor(){if(this.expect(x.FOR),this.expect(x.LPAREN),this.check(x.IDENT)){let i=this.advance();if(this.check(x.IN)){this.advance();let o=this.expect(x.IDENT).value;this.expect(x.RPAREN),this.skipNewlines();let a=this.parseStatement();return{type:"for_in",variable:i.value,array:o,body:a}}this.pos--}let e;this.check(x.SEMICOLON)||(e=this.parseExpression()),this.expect(x.SEMICOLON);let r;this.check(x.SEMICOLON)||(r=this.parseExpression()),this.expect(x.SEMICOLON);let n;this.check(x.RPAREN)||(n=this.parseExpression()),this.expect(x.RPAREN),this.skipNewlines();let s=this.parseStatement();return{type:"for",init:e,condition:r,update:n,body:s}}parsePrint(){this.expect(x.PRINT);let e=[];if(this.check(x.NEWLINE)||this.check(x.SEMICOLON)||this.check(x.RBRACE)||this.check(x.PIPE)||this.check(x.GT)||this.check(x.APPEND))e.push({type:"field",index:{type:"number",value:0}});else for(e.push(this.parsePrintArg());this.check(x.COMMA);)this.advance(),e.push(this.parsePrintArg());let r;return this.check(x.GT)?(this.advance(),r={redirect:">",file:this.parsePrimary()}):this.check(x.APPEND)&&(this.advance(),r={redirect:">>",file:this.parsePrimary()}),{type:"print",args:e,output:r}}parsePrintArg(){return this.lookAheadForTernary()?this.parseTernary():this.parsePrintOr()}lookAheadForTernary(){let e=0,r=this.pos;for(;r<this.tokens.length;){let n=this.tokens[r];if(n.type===x.LPAREN&&e++,n.type===x.RPAREN&&e--,n.type===x.QUESTION&&e===0)return!0;if(n.type===x.NEWLINE||n.type===x.SEMICOLON||n.type===x.RBRACE||n.type===x.COMMA||n.type===x.PIPE)return!1;r++}return!1}parsePrintOr(){let e=this.parsePrintAnd();for(;this.check(x.OR);){this.advance();let r=this.parsePrintAnd();e={type:"binary",operator:"||",left:e,right:r}}return e}parsePrintAnd(){let e=this.parsePrintIn();for(;this.check(x.AND);){this.advance();let r=this.parsePrintIn();e={type:"binary",operator:"&&",left:e,right:r}}return e}parsePrintIn(){let e=this.parsePrintMatch();if(this.check(x.IN)){this.advance();let r=String(this.expect(x.IDENT).value);return{type:"in",key:e,array:r}}return e}parsePrintMatch(){let e=this.parsePrintComparison();for(;this.match(x.MATCH,x.NOT_MATCH);){let r=this.advance().type===x.MATCH?"~":"!~",n=this.parsePrintComparison();e={type:"binary",operator:r,left:e,right:n}}return e}parsePrintComparison(){let e=this.parseConcatenation();for(;this.match(x.LT,x.LE,x.GE,x.EQ,x.NE);){let r=this.advance(),n=this.parseConcatenation();e={type:"binary",operator:{"<":"<","<=":"<=",">=":">=","==":"==","!=":"!="}[r.value],left:e,right:n}}return e}parsePrintf(){this.expect(x.PRINTF);let e=this.parsePrintArg(),r=[];for(;this.check(x.COMMA);)this.advance(),r.push(this.parsePrintArg());let n;return this.check(x.GT)?(this.advance(),n={redirect:">",file:this.parsePrimary()}):this.check(x.APPEND)&&(this.advance(),n={redirect:">>",file:this.parsePrimary()}),{type:"printf",format:e,args:r,output:n}}parseExpression(){return this.parseAssignment()}parseAssignment(){let e=this.parseTernary();if(this.match(x.ASSIGN,x.PLUS_ASSIGN,x.MINUS_ASSIGN,x.STAR_ASSIGN,x.SLASH_ASSIGN,x.PERCENT_ASSIGN,x.CARET_ASSIGN)){let r=this.advance(),n=this.parseAssignment();if(e.type!=="variable"&&e.type!=="field"&&e.type!=="array_access")throw new Error("Invalid assignment target");return{type:"assignment",operator:{"=":"=","+=":"+=","-=":"-=","*=":"*=","/=":"/=","%=":"%=","^=":"^="}[r.value],target:e,value:n}}return e}parseTernary(){let e=this.parseOr();if(this.check(x.QUESTION)){this.advance();let r=this.parseExpression();this.expect(x.COLON);let n=this.parseExpression();e={type:"ternary",condition:e,consequent:r,alternate:n}}return e}parseOr(){let e=this.parseAnd();for(;this.check(x.OR);){this.advance();let r=this.parseAnd();e={type:"binary",operator:"||",left:e,right:r}}return e}parseLogicalOrRest(e){for(e=this.parseLogicalAndRest(e);this.check(x.OR);){this.advance();let r=this.parseAnd();e={type:"binary",operator:"||",left:e,right:r}}return e}parseLogicalAndRest(e){for(;this.check(x.AND);){this.advance();let r=this.parseIn();e={type:"binary",operator:"&&",left:e,right:r}}return e}parseAnd(){let e=this.parseIn();for(;this.check(x.AND);){this.advance();let r=this.parseIn();e={type:"binary",operator:"&&",left:e,right:r}}return e}parseIn(){let e=this.parseMatch();if(this.check(x.IN)){this.advance();let r=this.expect(x.IDENT).value;return{type:"in",key:e,array:r}}return e}parseMatch(){let e=this.parseComparison();for(;this.match(x.MATCH,x.NOT_MATCH);){let r=this.advance().type===x.MATCH?"~":"!~",n=this.parseComparison();e={type:"binary",operator:r,left:e,right:n}}return e}parseComparison(){let e=this.parseConcatenation();for(;this.match(x.LT,x.LE,x.GT,x.GE,x.EQ,x.NE);){let r=this.advance(),n=this.parseConcatenation();e={type:"binary",operator:{"<":"<","<=":"<=",">":">",">=":">=","==":"==","!=":"!="}[r.value],left:e,right:n}}return e}parseConcatenation(){let e=this.parseAddSub();for(;this.canStartExpression()&&!this.isComparisonOrHigherOp();){let r=this.parseAddSub();e={type:"binary",operator:" ",left:e,right:r}}return e}canStartExpression(){return this.match(x.NUMBER,x.STRING,x.IDENT,x.DOLLAR,x.LPAREN,x.NOT,x.MINUS,x.PLUS,x.INCREMENT,x.DECREMENT)}isComparisonOrHigherOp(){return this.match(x.LT,x.LE,x.GT,x.GE,x.EQ,x.NE,x.AND,x.OR,x.QUESTION,x.MATCH,x.NOT_MATCH,x.ASSIGN,x.PLUS_ASSIGN,x.MINUS_ASSIGN,x.STAR_ASSIGN,x.SLASH_ASSIGN,x.PERCENT_ASSIGN,x.CARET_ASSIGN,x.COMMA,x.SEMICOLON,x.NEWLINE,x.RBRACE,x.RPAREN,x.RBRACKET,x.COLON,x.PIPE,x.APPEND,x.IN)}parseAddSub(){let e=this.parseMulDiv();for(;this.match(x.PLUS,x.MINUS);){let r=this.advance().value,n=this.parseMulDiv();e={type:"binary",operator:r,left:e,right:n}}return e}parseMulDiv(){let e=this.parseUnary();for(;this.match(x.STAR,x.SLASH,x.PERCENT);){let r=this.advance(),n=this.parseUnary();e={type:"binary",operator:{"*":"*","/":"/","%":"%"}[r.value],left:e,right:n}}return e}parseUnary(){if(this.check(x.INCREMENT)){this.advance();let e=this.parseUnary();return e.type!=="variable"&&e.type!=="field"&&e.type!=="array_access"?{type:"unary",operator:"+",operand:{type:"unary",operator:"+",operand:e}}:{type:"pre_increment",operand:e}}if(this.check(x.DECREMENT)){this.advance();let e=this.parseUnary();return e.type!=="variable"&&e.type!=="field"&&e.type!=="array_access"?{type:"unary",operator:"-",operand:{type:"unary",operator:"-",operand:e}}:{type:"pre_decrement",operand:e}}if(this.match(x.NOT,x.MINUS,x.PLUS)){let e=this.advance().value,r=this.parseUnary();return{type:"unary",operator:e,operand:r}}return this.parsePower()}parsePower(){let e=this.parsePostfix();if(this.check(x.CARET)){this.advance();let r=this.parsePower();e={type:"binary",operator:"^",left:e,right:r}}return e}parsePostfix(){let e=this.parsePrimary();if(this.check(x.INCREMENT)){if(this.advance(),e.type!=="variable"&&e.type!=="field"&&e.type!=="array_access")throw new Error("Invalid increment operand");return{type:"post_increment",operand:e}}if(this.check(x.DECREMENT)){if(this.advance(),e.type!=="variable"&&e.type!=="field"&&e.type!=="array_access")throw new Error("Invalid decrement operand");return{type:"post_decrement",operand:e}}return e}parsePrimary(){if(this.check(x.NUMBER))return{type:"number",value:this.advance().value};if(this.check(x.STRING))return{type:"string",value:this.advance().value};if(this.check(x.REGEX))return{type:"regex",pattern:this.advance().value};if(this.check(x.DOLLAR))return this.advance(),{type:"field",index:this.parsePrimary()};if(this.check(x.LPAREN)){this.advance();let e=this.parseExpression();if(this.check(x.COMMA)){let r=[e];for(;this.check(x.COMMA);)this.advance(),r.push(this.parseExpression());return this.expect(x.RPAREN),{type:"tuple",elements:r}}return this.expect(x.RPAREN),e}if(this.check(x.GETLINE)){this.advance();let e,r;return this.check(x.IDENT)&&(e=this.advance().value),this.check(x.LT)&&(this.advance(),r=this.parsePrimary()),{type:"getline",variable:e,file:r}}if(this.check(x.IDENT)){let e=this.advance().value;if(this.check(x.LPAREN)){this.advance();let r=[];if(!this.check(x.RPAREN))for(r.push(this.parseExpression());this.check(x.COMMA);)this.advance(),r.push(this.parseExpression());return this.expect(x.RPAREN),{type:"call",name:e,args:r}}if(this.check(x.LBRACKET)){this.advance();let r=[this.parseExpression()];for(;this.check(x.COMMA);)this.advance(),r.push(this.parseExpression());this.expect(x.RBRACKET);let n;if(r.length===1)n=r[0];else{n=r[0];for(let s=1;s<r.length;s++)n={type:"binary",operator:" ",left:{type:"binary",operator:" ",left:n,right:{type:"variable",name:"SUBSEP"}},right:r[s]}}return{type:"array_access",array:e,key:n}}return{type:"variable",name:e}}throw new Error(`Unexpected token: ${this.current().type} at line ${this.current().line}:${this.current().column}`)}}});var Ea={};$(Ea,{awkCommand2:()=>Fh});function ya(t){return t.replace(/\\t/g," ").replace(/\\n/g,`
243
+ `).replace(/\\r/g,"\r").replace(/\\\\/g,"\\")}function xa(t){if(t===" ")return/\s+/;if(/[[\](){}.*+?^$|\\]/.test(t))try{return new RegExp(t)}catch{return new RegExp(wa(t))}return new RegExp(wa(t))}function wa(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}var Ph,Fh,ba=C(()=>{"use strict";ie();L();ha();ga();Ph={name:"awk",summary:"pattern scanning and text processing language",usage:"awk [OPTIONS] 'PROGRAM' [FILE...]",options:["-F FS use FS as field separator","-v VAR=VAL assign VAL to variable VAR"," --help display this help and exit"]},Fh={name:"awk",async execute(t,e){if(N(t))return k(Ph);let r=/\s+/,n=" ",s={},i=0;for(let p=0;p<t.length;p++){let h=t[p];if(h==="-F"&&p+1<t.length)n=ya(t[++p]),r=xa(n),i=p+1;else if(h.startsWith("-F"))n=ya(h.slice(2)),r=xa(n),i=p+1;else if(h==="-v"&&p+1<t.length){let m=t[++p],g=m.indexOf("=");if(g>0){let w=m.slice(0,g),E=m.slice(g+1);s[w]=E}i=p+1}else{if(h.startsWith("--"))return R("awk",h);if(h.startsWith("-")&&h.length>1){let m=h[1];if(m!=="F"&&m!=="v")return R("awk",`-${m}`);i=p+1}else if(!h.startsWith("-")){i=p;break}}}if(i>=t.length)return{stdout:"",stderr:`awk: missing program
244
+ `,exitCode:1};let o=t[i],a=t.slice(i+1),l=new rn,c;try{c=l.parse(o)}catch(p){return{stdout:"",stderr:`awk: ${p instanceof Error?p.message:String(p)}
245
+ `,exitCode:1}}let u={readFile:e.fs.readFile.bind(e.fs),writeFile:e.fs.writeFile.bind(e.fs),appendFile:async(p,h)=>{try{let m=await e.fs.readFile(p);await e.fs.writeFile(p,m+h)}catch{await e.fs.writeFile(p,h)}},resolvePath:e.fs.resolvePath.bind(e.fs)},f=cs({fieldSep:r,maxIterations:e.limits?.maxAwkIterations,fs:u,cwd:e.cwd});f.FS=n,f.vars={...s},f.ARGC=a.length+1,f.ARGV={0:"awk"};for(let p=0;p<a.length;p++)f.ARGV[String(p+1)]=a[p];let d=new Er(f);d.execute(c);try{if(await d.executeBegin(),f.shouldExit)return{stdout:d.getOutput(),stderr:"",exitCode:d.getExitCode()};let p=[];if(a.length>0)for(let h of a)try{let m=e.fs.resolvePath(e.cwd,h),w=(await e.fs.readFile(m)).split(`
246
+ `);w.length>0&&w[w.length-1]===""&&w.pop(),p.push({filename:h,lines:w})}catch{return{stdout:"",stderr:`awk: ${h}: No such file or directory
247
247
  `,exitCode:1}}else{let h=e.stdin.split(`
248
- `);h.length>0&&h[h.length-1]===""&&h.pop(),d.push({filename:"",lines:h})}for(let h of d){for(f.FILENAME=h.filename,f.FNR=0,f.lines=h.lines,f.lineIndex=-1,f.shouldNextFile=!1;f.lineIndex<h.lines.length-1&&(f.lineIndex++,await p.executeLine(h.lines[f.lineIndex]),!(f.shouldExit||f.shouldNextFile)););if(f.shouldExit)break}return f.shouldExit||await p.executeEnd(),{stdout:p.getOutput(),stderr:"",exitCode:p.getExitCode()}}catch(d){let h=d instanceof Error?d.message:String(d),m=d instanceof j?j.EXIT_CODE:2;return{stdout:p.getOutput(),stderr:`awk: ${h}
249
- `,exitCode:m}}}}});function na(t){let e=t.trim(),r=e.match(/^([+-]?\d*\.?\d+)\s*([kmgtpeKMGTPE])?[iI]?[bB]?$/);if(!r){let o=parseFloat(e);return Number.isNaN(o)?0:o}let n=parseFloat(r[1]),s=(r[2]||"").toLowerCase(),i=uh[s]||1;return n*i}function sa(t){let e=t.trim().toLowerCase().slice(0,3);return fh[e]||0}function ph(t,e){let r=t.split(/(\d+)/),n=e.split(/(\d+)/),s=Math.max(r.length,n.length);for(let i=0;i<s;i++){let o=r[i]||"",a=n[i]||"",l=/^\d+$/.test(o)?parseInt(o,10):null,c=/^\d+$/.test(a)?parseInt(a,10):null;if(l!==null&&c!==null){if(l!==c)return l-c}else if(o!==a)return o.localeCompare(a)}return 0}function ia(t){return t.replace(/[^a-zA-Z0-9\s]/g,"")}function es(t,e,r){let n=r!==null?r:/\s+/,s=t.split(n),i=e.startField-1;if(i>=s.length)return"";if(e.endField===void 0){let l=s[i]||"";return e.startChar!==void 0&&(l=l.slice(e.startChar-1)),e.ignoreLeading&&(l=l.trimStart()),l}let o=Math.min(e.endField-1,s.length-1),a="";for(let l=i;l<=o&&l<s.length;l++){let c=s[l]||"";if(l===i&&e.startChar!==void 0&&(c=c.slice(e.startChar-1)),l===o&&e.endChar!==void 0){let u=l===i&&e.startChar!==void 0?e.endChar-e.startChar+1:e.endChar;c=c.slice(0,u)}l>i&&(a+=r||" "),a+=c}return e.ignoreLeading&&(a=a.trimStart()),a}function oa(t,e,r){let n=t,s=e;if(r.dictionaryOrder&&(n=ia(n),s=ia(s)),r.ignoreCase&&(n=n.toLowerCase(),s=s.toLowerCase()),r.monthSort){let i=sa(n),o=sa(s);return i-o}if(r.humanNumeric){let i=na(n),o=na(s);return i-o}if(r.versionSort)return ph(n,s);if(r.numeric){let i=parseFloat(n)||0,o=parseFloat(s)||0;return i-o}return n.localeCompare(s)}function aa(t){let{keys:e,fieldDelimiter:r,numeric:n,ignoreCase:s,reverse:i,humanNumeric:o,versionSort:a,dictionaryOrder:l,monthSort:c,ignoreLeadingBlanks:u,stable:f}=t;return(p,d)=>{let h=p,m=d;if(u&&(h=h.trimStart(),m=m.trimStart()),e.length===0){let w=oa(h,m,{numeric:n,ignoreCase:s,humanNumeric:o,versionSort:a,dictionaryOrder:l,monthSort:c});if(w!==0)return i?-w:w;if(!f){let E=p.localeCompare(d);return i?-E:E}return 0}for(let g of e){let w=es(h,g,r),E=es(m,g,r);g.ignoreLeading&&(w=w.trimStart(),E=E.trimStart());let b={numeric:g.numeric??n,ignoreCase:g.ignoreCase??s,humanNumeric:g.humanNumeric??o,versionSort:g.versionSort??a,dictionaryOrder:g.dictionaryOrder??l,monthSort:g.monthSort??c},S=g.reverse??i,I=oa(w,E,b);if(I!==0)return S?-I:I}if(!f){let g=p.localeCompare(d);return i?-g:g}return 0}}function la(t,e){if(e.keys.length===0){if(e.ignoreCase){let s=new Set;return t.filter(i=>{let o=i.toLowerCase();return s.has(o)?!1:(s.add(o),!0)})}return[...new Set(t)]}let r=e.keys[0],n=new Set;return t.filter(s=>{let i=es(s,r,e.fieldDelimiter);return(r.ignoreCase??e.ignoreCase)&&(i=i.toLowerCase()),n.has(i)?!1:(n.add(i),!0)})}var uh,fh,ca=C(()=>{"use strict";uh={"":1,k:1024,m:1048576,g:1073741824,t:1099511627776,p:0x4000000000000,e:1152921504606847e3},fh={jan:1,feb:2,mar:3,apr:4,may:5,jun:6,jul:7,aug:8,sep:9,oct:10,nov:11,dec:12}});function Wr(t){let e={startField:1},r="",n=t,s=n.match(/([bdfhMnrV]+)$/);s&&(r=s[1],n=n.slice(0,-r.length)),r.includes("n")&&(e.numeric=!0),r.includes("r")&&(e.reverse=!0),r.includes("f")&&(e.ignoreCase=!0),r.includes("b")&&(e.ignoreLeading=!0),r.includes("h")&&(e.humanNumeric=!0),r.includes("V")&&(e.versionSort=!0),r.includes("d")&&(e.dictionaryOrder=!0),r.includes("M")&&(e.monthSort=!0);let i=n.split(",");if(i.length===0||i[0]==="")return null;let o=i[0].split("."),a=parseInt(o[0],10);if(Number.isNaN(a)||a<1)return null;if(e.startField=a,o.length>1&&o[1]){let l=parseInt(o[1],10);!Number.isNaN(l)&&l>=1&&(e.startChar=l)}if(i.length>1&&i[1]){let l=i[1],c=l.match(/([bdfhMnrV]+)$/);if(c){let f=c[1];f.includes("n")&&(e.numeric=!0),f.includes("r")&&(e.reverse=!0),f.includes("f")&&(e.ignoreCase=!0),f.includes("b")&&(e.ignoreLeading=!0),f.includes("h")&&(e.humanNumeric=!0),f.includes("V")&&(e.versionSort=!0),f.includes("d")&&(e.dictionaryOrder=!0),f.includes("M")&&(e.monthSort=!0),l=l.slice(0,-f.length)}let u=l.split(".");if(u[0]){let f=parseInt(u[0],10);if(!Number.isNaN(f)&&f>=1&&(e.endField=f),u.length>1&&u[1]){let p=parseInt(u[1],10);!Number.isNaN(p)&&p>=1&&(e.endChar=p)}}}return e}var ua=C(()=>{"use strict"});var fa={};R(fa,{sortCommand:()=>hh});var dh,hh,pa=C(()=>{"use strict";gt();L();ca();ua();dh={name:"sort",summary:"sort lines of text files",usage:"sort [OPTION]... [FILE]...",options:["-b, --ignore-leading-blanks ignore leading blanks","-d, --dictionary-order consider only blanks and alphanumeric characters","-f, --ignore-case fold lower case to upper case characters","-h, --human-numeric-sort compare human readable numbers (e.g., 2K 1G)","-M, --month-sort compare (unknown) < 'JAN' < ... < 'DEC'","-n, --numeric-sort compare according to string numerical value","-r, --reverse reverse the result of comparisons","-V, --version-sort natural sort of (version) numbers within text","-c, --check check for sorted input; do not sort","-o, --output=FILE write result to FILE instead of stdout","-s, --stable stabilize sort by disabling last-resort comparison","-u, --unique output only unique lines","-k, --key=KEYDEF sort via a key; KEYDEF gives location and type","-t, --field-separator=SEP use SEP as field separator"," --help display this help and exit"],description:`KEYDEF is F[.C][OPTS][,F[.C][OPTS]]
248
+ `);h.length>0&&h[h.length-1]===""&&h.pop(),p.push({filename:"",lines:h})}for(let h of p){for(f.FILENAME=h.filename,f.FNR=0,f.lines=h.lines,f.lineIndex=-1,f.shouldNextFile=!1;f.lineIndex<h.lines.length-1&&(f.lineIndex++,await d.executeLine(h.lines[f.lineIndex]),!(f.shouldExit||f.shouldNextFile)););if(f.shouldExit)break}return f.shouldExit||await d.executeEnd(),{stdout:d.getOutput(),stderr:"",exitCode:d.getExitCode()}}catch(p){let h=p instanceof Error?p.message:String(p),m=p instanceof z?z.EXIT_CODE:2;return{stdout:d.getOutput(),stderr:`awk: ${h}
249
+ `,exitCode:m}}}}});function Sa(t){let e=t.trim(),r=e.match(/^([+-]?\d*\.?\d+)\s*([kmgtpeKMGTPE])?[iI]?[bB]?$/);if(!r){let o=parseFloat(e);return Number.isNaN(o)?0:o}let n=parseFloat(r[1]),s=(r[2]||"").toLowerCase(),i=Th[s]||1;return n*i}function Ca(t){let e=t.trim().toLowerCase().slice(0,3);return Oh[e]||0}function Dh(t,e){let r=t.split(/(\d+)/),n=e.split(/(\d+)/),s=Math.max(r.length,n.length);for(let i=0;i<s;i++){let o=r[i]||"",a=n[i]||"",l=/^\d+$/.test(o)?parseInt(o,10):null,c=/^\d+$/.test(a)?parseInt(a,10):null;if(l!==null&&c!==null){if(l!==c)return l-c}else if(o!==a)return o.localeCompare(a)}return 0}function Aa(t){return t.replace(/[^a-zA-Z0-9\s]/g,"")}function xs(t,e,r){let n=r!==null?r:/\s+/,s=t.split(n),i=e.startField-1;if(i>=s.length)return"";if(e.endField===void 0){let l=s[i]||"";return e.startChar!==void 0&&(l=l.slice(e.startChar-1)),e.ignoreLeading&&(l=l.trimStart()),l}let o=Math.min(e.endField-1,s.length-1),a="";for(let l=i;l<=o&&l<s.length;l++){let c=s[l]||"";if(l===i&&e.startChar!==void 0&&(c=c.slice(e.startChar-1)),l===o&&e.endChar!==void 0){let u=l===i&&e.startChar!==void 0?e.endChar-e.startChar+1:e.endChar;c=c.slice(0,u)}l>i&&(a+=r||" "),a+=c}return e.ignoreLeading&&(a=a.trimStart()),a}function ka(t,e,r){let n=t,s=e;if(r.dictionaryOrder&&(n=Aa(n),s=Aa(s)),r.ignoreCase&&(n=n.toLowerCase(),s=s.toLowerCase()),r.monthSort){let i=Ca(n),o=Ca(s);return i-o}if(r.humanNumeric){let i=Sa(n),o=Sa(s);return i-o}if(r.versionSort)return Dh(n,s);if(r.numeric){let i=parseFloat(n)||0,o=parseFloat(s)||0;return i-o}return n.localeCompare(s)}function Na(t){let{keys:e,fieldDelimiter:r,numeric:n,ignoreCase:s,reverse:i,humanNumeric:o,versionSort:a,dictionaryOrder:l,monthSort:c,ignoreLeadingBlanks:u,stable:f}=t;return(d,p)=>{let h=d,m=p;if(u&&(h=h.trimStart(),m=m.trimStart()),e.length===0){let w=ka(h,m,{numeric:n,ignoreCase:s,humanNumeric:o,versionSort:a,dictionaryOrder:l,monthSort:c});if(w!==0)return i?-w:w;if(!f){let E=d.localeCompare(p);return i?-E:E}return 0}for(let g of e){let w=xs(h,g,r),E=xs(m,g,r);g.ignoreLeading&&(w=w.trimStart(),E=E.trimStart());let b={numeric:g.numeric??n,ignoreCase:g.ignoreCase??s,humanNumeric:g.humanNumeric??o,versionSort:g.versionSort??a,dictionaryOrder:g.dictionaryOrder??l,monthSort:g.monthSort??c},S=g.reverse??i,I=ka(w,E,b);if(I!==0)return S?-I:I}if(!f){let g=d.localeCompare(p);return i?-g:g}return 0}}function Ia(t,e){if(e.keys.length===0){if(e.ignoreCase){let s=new Set;return t.filter(i=>{let o=i.toLowerCase();return s.has(o)?!1:(s.add(o),!0)})}return[...new Set(t)]}let r=e.keys[0],n=new Set;return t.filter(s=>{let i=xs(s,r,e.fieldDelimiter);return(r.ignoreCase??e.ignoreCase)&&(i=i.toLowerCase()),n.has(i)?!1:(n.add(i),!0)})}var Th,Oh,va=C(()=>{"use strict";Th={"":1,k:1024,m:1048576,g:1073741824,t:1099511627776,p:0x4000000000000,e:1152921504606847e3},Oh={jan:1,feb:2,mar:3,apr:4,may:5,jun:6,jul:7,aug:8,sep:9,oct:10,nov:11,dec:12}});function nn(t){let e={startField:1},r="",n=t,s=n.match(/([bdfhMnrV]+)$/);s&&(r=s[1],n=n.slice(0,-r.length)),r.includes("n")&&(e.numeric=!0),r.includes("r")&&(e.reverse=!0),r.includes("f")&&(e.ignoreCase=!0),r.includes("b")&&(e.ignoreLeading=!0),r.includes("h")&&(e.humanNumeric=!0),r.includes("V")&&(e.versionSort=!0),r.includes("d")&&(e.dictionaryOrder=!0),r.includes("M")&&(e.monthSort=!0);let i=n.split(",");if(i.length===0||i[0]==="")return null;let o=i[0].split("."),a=parseInt(o[0],10);if(Number.isNaN(a)||a<1)return null;if(e.startField=a,o.length>1&&o[1]){let l=parseInt(o[1],10);!Number.isNaN(l)&&l>=1&&(e.startChar=l)}if(i.length>1&&i[1]){let l=i[1],c=l.match(/([bdfhMnrV]+)$/);if(c){let f=c[1];f.includes("n")&&(e.numeric=!0),f.includes("r")&&(e.reverse=!0),f.includes("f")&&(e.ignoreCase=!0),f.includes("b")&&(e.ignoreLeading=!0),f.includes("h")&&(e.humanNumeric=!0),f.includes("V")&&(e.versionSort=!0),f.includes("d")&&(e.dictionaryOrder=!0),f.includes("M")&&(e.monthSort=!0),l=l.slice(0,-f.length)}let u=l.split(".");if(u[0]){let f=parseInt(u[0],10);if(!Number.isNaN(f)&&f>=1&&(e.endField=f),u.length>1&&u[1]){let d=parseInt(u[1],10);!Number.isNaN(d)&&d>=1&&(e.endChar=d)}}}return e}var $a=C(()=>{"use strict"});var Ra={};$(Ra,{sortCommand:()=>Mh});var Lh,Mh,Pa=C(()=>{"use strict";Nt();L();va();$a();Lh={name:"sort",summary:"sort lines of text files",usage:"sort [OPTION]... [FILE]...",options:["-b, --ignore-leading-blanks ignore leading blanks","-d, --dictionary-order consider only blanks and alphanumeric characters","-f, --ignore-case fold lower case to upper case characters","-h, --human-numeric-sort compare human readable numbers (e.g., 2K 1G)","-M, --month-sort compare (unknown) < 'JAN' < ... < 'DEC'","-n, --numeric-sort compare according to string numerical value","-r, --reverse reverse the result of comparisons","-V, --version-sort natural sort of (version) numbers within text","-c, --check check for sorted input; do not sort","-o, --output=FILE write result to FILE instead of stdout","-s, --stable stabilize sort by disabling last-resort comparison","-u, --unique output only unique lines","-k, --key=KEYDEF sort via a key; KEYDEF gives location and type","-t, --field-separator=SEP use SEP as field separator"," --help display this help and exit"],description:`KEYDEF is F[.C][OPTS][,F[.C][OPTS]]
250
250
  F is a field number (1-indexed)
251
251
  C is a character position within the field (1-indexed)
252
252
  OPTS can be: b d f h M n r V (per-key modifiers)
@@ -256,36 +256,36 @@ Examples:
256
256
  -k2,2 sort by second field only
257
257
  -k1.3 sort by first field starting at 3rd character
258
258
  -k1,2n sort by fields 1-2 numerically
259
- -k2 -k1 sort by field 2, then by field 1`},hh={name:"sort",async execute(t,e){if(N(t))return k(dh);let r={reverse:!1,numeric:!1,unique:!1,ignoreCase:!1,humanNumeric:!1,versionSort:!1,dictionaryOrder:!1,monthSort:!1,ignoreLeadingBlanks:!1,stable:!1,checkOnly:!1,outputFile:null,keys:[],fieldDelimiter:null},n=[];for(let c=0;c<t.length;c++){let u=t[c];if(u==="-r"||u==="--reverse")r.reverse=!0;else if(u==="-n"||u==="--numeric-sort")r.numeric=!0;else if(u==="-u"||u==="--unique")r.unique=!0;else if(u==="-f"||u==="--ignore-case")r.ignoreCase=!0;else if(u==="-h"||u==="--human-numeric-sort")r.humanNumeric=!0;else if(u==="-V"||u==="--version-sort")r.versionSort=!0;else if(u==="-d"||u==="--dictionary-order")r.dictionaryOrder=!0;else if(u==="-M"||u==="--month-sort")r.monthSort=!0;else if(u==="-b"||u==="--ignore-leading-blanks")r.ignoreLeadingBlanks=!0;else if(u==="-s"||u==="--stable")r.stable=!0;else if(u==="-c"||u==="--check")r.checkOnly=!0;else if(u==="-o"||u==="--output")r.outputFile=t[++c]||null;else if(u.startsWith("-o"))r.outputFile=u.slice(2)||null;else if(u.startsWith("--output="))r.outputFile=u.slice(9)||null;else if(u==="-t"||u==="--field-separator")r.fieldDelimiter=t[++c]||null;else if(u.startsWith("-t"))r.fieldDelimiter=u.slice(2)||null;else if(u.startsWith("--field-separator="))r.fieldDelimiter=u.slice(18)||null;else if(u==="-k"||u==="--key"){let f=t[++c];if(f){let p=Wr(f);p&&r.keys.push(p)}}else if(u.startsWith("-k")){let f=Wr(u.slice(2));f&&r.keys.push(f)}else if(u.startsWith("--key=")){let f=Wr(u.slice(6));f&&r.keys.push(f)}else{if(u.startsWith("--"))return P("sort",u);if(u.startsWith("-")&&!u.startsWith("--")){let f=!1;for(let p of u.slice(1))if(p==="r")r.reverse=!0;else if(p==="n")r.numeric=!0;else if(p==="u")r.unique=!0;else if(p==="f")r.ignoreCase=!0;else if(p==="h")r.humanNumeric=!0;else if(p==="V")r.versionSort=!0;else if(p==="d")r.dictionaryOrder=!0;else if(p==="M")r.monthSort=!0;else if(p==="b")r.ignoreLeadingBlanks=!0;else if(p==="s")r.stable=!0;else if(p==="c")r.checkOnly=!0;else{f=!0;break}if(f)return P("sort",u)}else n.push(u)}}let s=await Ot(e,n,{cmdName:"sort"});if(!s.ok)return s.error;let o=s.content.split(`
260
- `);o.length>0&&o[o.length-1]===""&&o.pop();let a=aa(r);if(r.checkOnly){let c=n.length>0?n[0]:"-";for(let u=1;u<o.length;u++)if(a(o[u-1],o[u])>0)return{stdout:"",stderr:`sort: ${c}:${u+1}: disorder: ${o[u]}
261
- `,exitCode:1};return{stdout:"",stderr:"",exitCode:0}}o.sort(a),r.unique&&(o=la(o,r));let l=o.length>0?`${o.join(`
259
+ -k2 -k1 sort by field 2, then by field 1`},Mh={name:"sort",async execute(t,e){if(N(t))return k(Lh);let r={reverse:!1,numeric:!1,unique:!1,ignoreCase:!1,humanNumeric:!1,versionSort:!1,dictionaryOrder:!1,monthSort:!1,ignoreLeadingBlanks:!1,stable:!1,checkOnly:!1,outputFile:null,keys:[],fieldDelimiter:null},n=[];for(let c=0;c<t.length;c++){let u=t[c];if(u==="-r"||u==="--reverse")r.reverse=!0;else if(u==="-n"||u==="--numeric-sort")r.numeric=!0;else if(u==="-u"||u==="--unique")r.unique=!0;else if(u==="-f"||u==="--ignore-case")r.ignoreCase=!0;else if(u==="-h"||u==="--human-numeric-sort")r.humanNumeric=!0;else if(u==="-V"||u==="--version-sort")r.versionSort=!0;else if(u==="-d"||u==="--dictionary-order")r.dictionaryOrder=!0;else if(u==="-M"||u==="--month-sort")r.monthSort=!0;else if(u==="-b"||u==="--ignore-leading-blanks")r.ignoreLeadingBlanks=!0;else if(u==="-s"||u==="--stable")r.stable=!0;else if(u==="-c"||u==="--check")r.checkOnly=!0;else if(u==="-o"||u==="--output")r.outputFile=t[++c]||null;else if(u.startsWith("-o"))r.outputFile=u.slice(2)||null;else if(u.startsWith("--output="))r.outputFile=u.slice(9)||null;else if(u==="-t"||u==="--field-separator")r.fieldDelimiter=t[++c]||null;else if(u.startsWith("-t"))r.fieldDelimiter=u.slice(2)||null;else if(u.startsWith("--field-separator="))r.fieldDelimiter=u.slice(18)||null;else if(u==="-k"||u==="--key"){let f=t[++c];if(f){let d=nn(f);d&&r.keys.push(d)}}else if(u.startsWith("-k")){let f=nn(u.slice(2));f&&r.keys.push(f)}else if(u.startsWith("--key=")){let f=nn(u.slice(6));f&&r.keys.push(f)}else{if(u.startsWith("--"))return R("sort",u);if(u.startsWith("-")&&!u.startsWith("--")){let f=!1;for(let d of u.slice(1))if(d==="r")r.reverse=!0;else if(d==="n")r.numeric=!0;else if(d==="u")r.unique=!0;else if(d==="f")r.ignoreCase=!0;else if(d==="h")r.humanNumeric=!0;else if(d==="V")r.versionSort=!0;else if(d==="d")r.dictionaryOrder=!0;else if(d==="M")r.monthSort=!0;else if(d==="b")r.ignoreLeadingBlanks=!0;else if(d==="s")r.stable=!0;else if(d==="c")r.checkOnly=!0;else{f=!0;break}if(f)return R("sort",u)}else n.push(u)}}let s=await Gt(e,n,{cmdName:"sort"});if(!s.ok)return s.error;let o=s.content.split(`
260
+ `);o.length>0&&o[o.length-1]===""&&o.pop();let a=Na(r);if(r.checkOnly){let c=n.length>0?n[0]:"-";for(let u=1;u<o.length;u++)if(a(o[u-1],o[u])>0)return{stdout:"",stderr:`sort: ${c}:${u+1}: disorder: ${o[u]}
261
+ `,exitCode:1};return{stdout:"",stderr:"",exitCode:0}}o.sort(a),r.unique&&(o=Ia(o,r));let l=o.length>0?`${o.join(`
262
262
  `)}
263
- `:"";if(r.outputFile){let c=e.fs.resolvePath(e.cwd,r.outputFile);return await e.fs.writeFile(c,l),{stdout:"",stderr:"",exitCode:0}}return{stdout:l,stderr:"",exitCode:0}}}});var da={};R(da,{uniqCommand:()=>yh});var mh,gh,yh,ha=C(()=>{"use strict";ye();gt();L();mh={name:"uniq",summary:"report or omit repeated lines",usage:"uniq [OPTION]... [INPUT [OUTPUT]]",options:["-c, --count prefix lines by the number of occurrences","-d, --repeated only print duplicate lines","-i, --ignore-case ignore case when comparing","-u, --unique only print unique lines"," --help display this help and exit"]},gh={count:{short:"c",long:"count",type:"boolean"},duplicatesOnly:{short:"d",long:"repeated",type:"boolean"},uniqueOnly:{short:"u",long:"unique",type:"boolean"},ignoreCase:{short:"i",long:"ignore-case",type:"boolean"}},yh={name:"uniq",async execute(t,e){if(N(t))return k(mh);let r=z("uniq",t,gh);if(!r.ok)return r.error;let{count:n,duplicatesOnly:s,uniqueOnly:i,ignoreCase:o}=r.result.flags,a=r.result.positional,l=await Ot(e,a,{cmdName:"uniq"});if(!l.ok)return l.error;let u=l.content.split(`
264
- `);if(u.length>0&&u[u.length-1]===""&&u.pop(),u.length===0)return{stdout:"",stderr:"",exitCode:0};let f=[],p=u[0],d=1,h=(w,E)=>o?w.toLowerCase()===E.toLowerCase():w===E;for(let w=1;w<u.length;w++)h(u[w],p)?d++:(f.push({line:p,count:d}),p=u[w],d=1);f.push({line:p,count:d});let m=f;s?m=f.filter(w=>w.count>1):i&&(m=f.filter(w=>w.count===1));let g="";for(let{line:w,count:E}of m)n?g+=`${String(E).padStart(4)} ${w}
263
+ `:"";if(r.outputFile){let c=e.fs.resolvePath(e.cwd,r.outputFile);return await e.fs.writeFile(c,l),{stdout:"",stderr:"",exitCode:0}}return{stdout:l,stderr:"",exitCode:0}}}});var Fa={};$(Fa,{uniqCommand:()=>Wh});var _h,Bh,Wh,Ta=C(()=>{"use strict";Ee();Nt();L();_h={name:"uniq",summary:"report or omit repeated lines",usage:"uniq [OPTION]... [INPUT [OUTPUT]]",options:["-c, --count prefix lines by the number of occurrences","-d, --repeated only print duplicate lines","-i, --ignore-case ignore case when comparing","-u, --unique only print unique lines"," --help display this help and exit"]},Bh={count:{short:"c",long:"count",type:"boolean"},duplicatesOnly:{short:"d",long:"repeated",type:"boolean"},uniqueOnly:{short:"u",long:"unique",type:"boolean"},ignoreCase:{short:"i",long:"ignore-case",type:"boolean"}},Wh={name:"uniq",async execute(t,e){if(N(t))return k(_h);let r=H("uniq",t,Bh);if(!r.ok)return r.error;let{count:n,duplicatesOnly:s,uniqueOnly:i,ignoreCase:o}=r.result.flags,a=r.result.positional,l=await Gt(e,a,{cmdName:"uniq"});if(!l.ok)return l.error;let u=l.content.split(`
264
+ `);if(u.length>0&&u[u.length-1]===""&&u.pop(),u.length===0)return{stdout:"",stderr:"",exitCode:0};let f=[],d=u[0],p=1,h=(w,E)=>o?w.toLowerCase()===E.toLowerCase():w===E;for(let w=1;w<u.length;w++)h(u[w],d)?p++:(f.push({line:d,count:p}),d=u[w],p=1);f.push({line:d,count:p});let m=f;s?m=f.filter(w=>w.count>1):i&&(m=f.filter(w=>w.count===1));let g="";for(let{line:w,count:E}of m)n?g+=`${String(E).padStart(4)} ${w}
265
265
  `:g+=`${w}
266
- `;return{stdout:g,stderr:"",exitCode:0}}}});var ma={};R(ma,{commCommand:()=>wh});var xh,wh,ga=C(()=>{"use strict";L();xh={name:"comm",summary:"compare two sorted files line by line",usage:"comm [OPTION]... FILE1 FILE2",options:["-1 suppress column 1 (lines unique to FILE1)","-2 suppress column 2 (lines unique to FILE2)","-3 suppress column 3 (lines that appear in both files)"," --help display this help and exit"]},wh={name:"comm",async execute(t,e){if(N(t))return k(xh);let r=!1,n=!1,s=!1,i=[];for(let g of t)if(g==="-1")r=!0;else if(g==="-2")n=!0;else if(g==="-3")s=!0;else if(g==="-12"||g==="-21")r=!0,n=!0;else if(g==="-13"||g==="-31")r=!0,s=!0;else if(g==="-23"||g==="-32")n=!0,s=!0;else if(g==="-123"||g==="-132"||g==="-213"||g==="-231"||g==="-312"||g==="-321")r=!0,n=!0,s=!0;else{if(g.startsWith("-")&&g!=="-")return P("comm",g);i.push(g)}if(i.length!==2)return{stdout:"",stderr:`comm: missing operand
266
+ `;return{stdout:g,stderr:"",exitCode:0}}}});var Oa={};$(Oa,{commCommand:()=>zh});var Uh,zh,Da=C(()=>{"use strict";L();Uh={name:"comm",summary:"compare two sorted files line by line",usage:"comm [OPTION]... FILE1 FILE2",options:["-1 suppress column 1 (lines unique to FILE1)","-2 suppress column 2 (lines unique to FILE2)","-3 suppress column 3 (lines that appear in both files)"," --help display this help and exit"]},zh={name:"comm",async execute(t,e){if(N(t))return k(Uh);let r=!1,n=!1,s=!1,i=[];for(let g of t)if(g==="-1")r=!0;else if(g==="-2")n=!0;else if(g==="-3")s=!0;else if(g==="-12"||g==="-21")r=!0,n=!0;else if(g==="-13"||g==="-31")r=!0,s=!0;else if(g==="-23"||g==="-32")n=!0,s=!0;else if(g==="-123"||g==="-132"||g==="-213"||g==="-231"||g==="-312"||g==="-321")r=!0,n=!0,s=!0;else{if(g.startsWith("-")&&g!=="-")return R("comm",g);i.push(g)}if(i.length!==2)return{stdout:"",stderr:`comm: missing operand
267
267
  Try 'comm --help' for more information.
268
268
  `,exitCode:1};let o=async g=>{if(g==="-")return e.stdin;try{let w=e.fs.resolvePath(e.cwd,g);return await e.fs.readFile(w)}catch{return null}},a=await o(i[0]);if(a===null)return{stdout:"",stderr:`comm: ${i[0]}: No such file or directory
269
269
  `,exitCode:1};let l=await o(i[1]);if(l===null)return{stdout:"",stderr:`comm: ${i[1]}: No such file or directory
270
270
  `,exitCode:1};let c=a.split(`
271
271
  `),u=l.split(`
272
- `);c.length>0&&c[c.length-1]===""&&c.pop(),u.length>0&&u[u.length-1]===""&&u.pop();let f=0,p=0,d="",h=r?"":" ",m=(r?"":" ")+(n?"":" ");for(;f<c.length||p<u.length;)f>=c.length?(n||(d+=`${h}${u[p]}
273
- `),p++):p>=u.length?(r||(d+=`${c[f]}
274
- `),f++):c[f]<u[p]?(r||(d+=`${c[f]}
275
- `),f++):c[f]>u[p]?(n||(d+=`${h}${u[p]}
276
- `),p++):(s||(d+=`${m}${c[f]}
277
- `),f++,p++);return{stdout:d,stderr:"",exitCode:0}}}});var ya={};R(ya,{cutCommand:()=>Ch});function bh(t){let e=[],r=t.split(",");for(let n of r)if(n.includes("-")){let[s,i]=n.split("-");e.push({start:s?parseInt(s,10):1,end:i?parseInt(i,10):null})}else{let s=parseInt(n,10);e.push({start:s,end:s})}return e}function Sh(t,e){let r=[];for(let n of e){let s=n.start-1,i=n.end===null?t.length:n.end;for(let o=s;o<i&&o<t.length;o++)o>=0&&!r.includes(t[o])&&r.push(t[o])}return r}var Eh,Ch,xa=C(()=>{"use strict";gt();L();Eh={name:"cut",summary:"remove sections from each line of files",usage:"cut [OPTION]... [FILE]...",options:["-c LIST select only these characters","-d DELIM use DELIM instead of TAB for field delimiter","-f LIST select only these fields","-s, --only-delimited do not print lines without delimiters"," --help display this help and exit"]};Ch={name:"cut",async execute(t,e){if(N(t))return k(Eh);let r=" ",n=null,s=null,i=!1,o=[];for(let p=0;p<t.length;p++){let d=t[p];if(d==="-d")r=t[++p]||" ";else if(d.startsWith("-d"))r=d.slice(2);else if(d==="-f")n=t[++p];else if(d.startsWith("-f"))n=d.slice(2);else if(d==="-c")s=t[++p];else if(d.startsWith("-c"))s=d.slice(2);else if(d==="-s"||d==="--only-delimited")i=!0;else{if(d.startsWith("--"))return P("cut",d);if(d.startsWith("-")){let h=!1;for(let m of d.slice(1))if(m==="s")i=!0;else if(!"dfc".includes(m)){h=!0;break}if(h)return P("cut",d)}else o.push(d)}}if(!n&&!s)return{stdout:"",stderr:`cut: you must specify a list of bytes, characters, or fields
278
- `,exitCode:1};let a=await Ot(e,o,{cmdName:"cut"});if(!a.ok)return a.error;let c=a.content.split(`
279
- `);c.length>0&&c[c.length-1]===""&&c.pop();let u=bh(n||s||"1"),f="";for(let p of c)if(s){let d=p.split(""),h=[];for(let m of u){let g=m.start-1,w=m.end===null?d.length:m.end;for(let E=g;E<w&&E<d.length;E++)E>=0&&h.push(d[E])}f+=`${h.join("")}
280
- `}else{if(i&&!p.includes(r))continue;let d=p.split(r),h=Sh(d,u);f+=`${h.join(r)}
281
- `}return{stdout:f,stderr:"",exitCode:0}}}});var Ea={};R(Ea,{pasteCommand:()=>Nh});function wa(t,e){if(t.length===0)return"";if(t.length===1)return t[0];let r=t[0];for(let n=1;n<t.length;n++){let s=(n-1)%e.length;r+=e[s]+t[n]}return r}var Ah,kh,Nh,ba=C(()=>{"use strict";ye();L();Ah={name:"paste",summary:"merge lines of files",usage:"paste [OPTION]... [FILE]...",description:["Write lines consisting of the sequentially corresponding lines from","each FILE, separated by TABs, to standard output.","","With no FILE, or when FILE is -, read standard input."],options:["-d, --delimiters=LIST reuse characters from LIST instead of TABs","-s, --serial paste one file at a time instead of in parallel"," --help display this help and exit"],examples:["paste file1 file2 Merge file1 and file2 side by side","paste -d, file1 file2 Use comma as delimiter","paste -s file1 Paste all lines of file1 on one line","paste - - < file Paste pairs of lines from file"]},kh={delimiter:{short:"d",long:"delimiters",type:"string",default:" "},serial:{short:"s",long:"serial",type:"boolean"}},Nh={name:"paste",async execute(t,e){if(N(t))return k(Ah);let r=z("paste",t,kh);if(!r.ok)return r.error;let n=r.result.flags.delimiter,s=r.result.flags.serial,i=r.result.positional;if(i.length===0)return{stdout:"",stderr:`usage: paste [-s] [-d delimiters] file ...
272
+ `);c.length>0&&c[c.length-1]===""&&c.pop(),u.length>0&&u[u.length-1]===""&&u.pop();let f=0,d=0,p="",h=r?"":" ",m=(r?"":" ")+(n?"":" ");for(;f<c.length||d<u.length;)f>=c.length?(n||(p+=`${h}${u[d]}
273
+ `),d++):d>=u.length?(r||(p+=`${c[f]}
274
+ `),f++):c[f]<u[d]?(r||(p+=`${c[f]}
275
+ `),f++):c[f]>u[d]?(n||(p+=`${h}${u[d]}
276
+ `),d++):(s||(p+=`${m}${c[f]}
277
+ `),f++,d++);return{stdout:p,stderr:"",exitCode:0}}}});var La={};$(La,{cutCommand:()=>qh});function Hh(t){let e=[],r=t.split(",");for(let n of r)if(n.includes("-")){let[s,i]=n.split("-");e.push({start:s?parseInt(s,10):1,end:i?parseInt(i,10):null})}else{let s=parseInt(n,10);e.push({start:s,end:s})}return e}function Gh(t,e){let r=[];for(let n of e){let s=n.start-1,i=n.end===null?t.length:n.end;for(let o=s;o<i&&o<t.length;o++)o>=0&&!r.includes(t[o])&&r.push(t[o])}return r}var jh,qh,Ma=C(()=>{"use strict";Nt();L();jh={name:"cut",summary:"remove sections from each line of files",usage:"cut [OPTION]... [FILE]...",options:["-c LIST select only these characters","-d DELIM use DELIM instead of TAB for field delimiter","-f LIST select only these fields","-s, --only-delimited do not print lines without delimiters"," --help display this help and exit"]};qh={name:"cut",async execute(t,e){if(N(t))return k(jh);let r=" ",n=null,s=null,i=!1,o=[];for(let d=0;d<t.length;d++){let p=t[d];if(p==="-d")r=t[++d]||" ";else if(p.startsWith("-d"))r=p.slice(2);else if(p==="-f")n=t[++d];else if(p.startsWith("-f"))n=p.slice(2);else if(p==="-c")s=t[++d];else if(p.startsWith("-c"))s=p.slice(2);else if(p==="-s"||p==="--only-delimited")i=!0;else{if(p.startsWith("--"))return R("cut",p);if(p.startsWith("-")){let h=!1;for(let m of p.slice(1))if(m==="s")i=!0;else if(!"dfc".includes(m)){h=!0;break}if(h)return R("cut",p)}else o.push(p)}}if(!n&&!s)return{stdout:"",stderr:`cut: you must specify a list of bytes, characters, or fields
278
+ `,exitCode:1};let a=await Gt(e,o,{cmdName:"cut"});if(!a.ok)return a.error;let c=a.content.split(`
279
+ `);c.length>0&&c[c.length-1]===""&&c.pop();let u=Hh(n||s||"1"),f="";for(let d of c)if(s){let p=d.split(""),h=[];for(let m of u){let g=m.start-1,w=m.end===null?p.length:m.end;for(let E=g;E<w&&E<p.length;E++)E>=0&&h.push(p[E])}f+=`${h.join("")}
280
+ `}else{if(i&&!d.includes(r))continue;let p=d.split(r),h=Gh(p,u);f+=`${h.join(r)}
281
+ `}return{stdout:f,stderr:"",exitCode:0}}}});var Ba={};$(Ba,{pasteCommand:()=>Zh});function _a(t,e){if(t.length===0)return"";if(t.length===1)return t[0];let r=t[0];for(let n=1;n<t.length;n++){let s=(n-1)%e.length;r+=e[s]+t[n]}return r}var Vh,Kh,Zh,Wa=C(()=>{"use strict";Ee();L();Vh={name:"paste",summary:"merge lines of files",usage:"paste [OPTION]... [FILE]...",description:["Write lines consisting of the sequentially corresponding lines from","each FILE, separated by TABs, to standard output.","","With no FILE, or when FILE is -, read standard input."],options:["-d, --delimiters=LIST reuse characters from LIST instead of TABs","-s, --serial paste one file at a time instead of in parallel"," --help display this help and exit"],examples:["paste file1 file2 Merge file1 and file2 side by side","paste -d, file1 file2 Use comma as delimiter","paste -s file1 Paste all lines of file1 on one line","paste - - < file Paste pairs of lines from file"]},Kh={delimiter:{short:"d",long:"delimiters",type:"string",default:" "},serial:{short:"s",long:"serial",type:"boolean"}},Zh={name:"paste",async execute(t,e){if(N(t))return k(Vh);let r=H("paste",t,Kh);if(!r.ok)return r.error;let n=r.result.flags.delimiter,s=r.result.flags.serial,i=r.result.positional;if(i.length===0)return{stdout:"",stderr:`usage: paste [-s] [-d delimiters] file ...
282
282
  `,exitCode:1};let o=e.stdin?e.stdin.split(`
283
- `):[""];o.length>0&&o[o.length-1]===""&&o.pop();let a=i.filter(f=>f==="-").length,l=[],c=0;for(let f of i)if(f==="-"){let p=[];for(let d=c;d<o.length;d+=a)p.push(o[d]);l.push(p),c++}else{let p=e.fs.resolvePath(e.cwd,f);try{let h=(await e.fs.readFile(p)).split(`
283
+ `):[""];o.length>0&&o[o.length-1]===""&&o.pop();let a=i.filter(f=>f==="-").length,l=[],c=0;for(let f of i)if(f==="-"){let d=[];for(let p=c;p<o.length;p+=a)d.push(o[p]);l.push(d),c++}else{let d=e.fs.resolvePath(e.cwd,f);try{let h=(await e.fs.readFile(d)).split(`
284
284
  `);h.length>0&&h[h.length-1]===""&&h.pop(),l.push(h)}catch{return{stdout:"",stderr:`paste: ${f}: No such file or directory
285
- `,exitCode:1}}}let u="";if(s)for(let f of l)f&&(u+=`${wa(f,n)}
286
- `);else{let f=Math.max(...l.map(p=>p?.length??0));for(let p=0;p<f;p++){let d=[];for(let h of l)d.push(h?.[p]??"");u+=`${wa(d,n)}
287
- `}}return{stdout:u,stderr:"",exitCode:0}}}});var Ca={};R(Ca,{trCommand:()=>Rh});function Sa(t){let e="",r=0;for(;r<t.length;){if(t[r]==="["&&t[r+1]===":"){let n=!1;for(let[s,i]of Object.entries(vh))if(t.slice(r).startsWith(s)){e+=i,r+=s.length,n=!0;break}if(n)continue}if(t[r]==="\\"&&r+1<t.length){let n=t[r+1];n==="n"?e+=`
288
- `:n==="t"?e+=" ":n==="r"?e+="\r":e+=n,r+=2;continue}if(r+2<t.length&&t[r+1]==="-"){let n=t.charCodeAt(r),s=t.charCodeAt(r+2);for(let i=n;i<=s;i++)e+=String.fromCharCode(i);r+=3;continue}e+=t[r],r++}return e}var Ih,vh,$h,Rh,Aa=C(()=>{"use strict";ye();L();Ih={name:"tr",summary:"translate or delete characters",usage:"tr [OPTION]... SET1 [SET2]",options:["-c, -C, --complement use the complement of SET1","-d, --delete delete characters in SET1","-s, --squeeze-repeats squeeze repeated characters"," --help display this help and exit"],description:`SET syntax:
285
+ `,exitCode:1}}}let u="";if(s)for(let f of l)f&&(u+=`${_a(f,n)}
286
+ `);else{let f=Math.max(...l.map(d=>d?.length??0));for(let d=0;d<f;d++){let p=[];for(let h of l)p.push(h?.[d]??"");u+=`${_a(p,n)}
287
+ `}}return{stdout:u,stderr:"",exitCode:0}}}});var za={};$(za,{trCommand:()=>Yh});function Ua(t){let e="",r=0;for(;r<t.length;){if(t[r]==="["&&t[r+1]===":"){let n=!1;for(let[s,i]of Object.entries(Xh))if(t.slice(r).startsWith(s)){e+=i,r+=s.length,n=!0;break}if(n)continue}if(t[r]==="\\"&&r+1<t.length){let n=t[r+1];n==="n"?e+=`
288
+ `:n==="t"?e+=" ":n==="r"?e+="\r":e+=n,r+=2;continue}if(r+2<t.length&&t[r+1]==="-"){let n=t.charCodeAt(r),s=t.charCodeAt(r+2);for(let i=n;i<=s;i++)e+=String.fromCharCode(i);r+=3;continue}e+=t[r],r++}return e}var Qh,Xh,Jh,Yh,ja=C(()=>{"use strict";Ee();L();Qh={name:"tr",summary:"translate or delete characters",usage:"tr [OPTION]... SET1 [SET2]",options:["-c, -C, --complement use the complement of SET1","-d, --delete delete characters in SET1","-s, --squeeze-repeats squeeze repeated characters"," --help display this help and exit"],description:`SET syntax:
289
289
  a-z character range
290
290
  [:alnum:] all letters and digits
291
291
  [:alpha:] all letters
@@ -299,19 +299,19 @@ Try 'comm --help' for more information.
299
299
  [:graph:] all printable characters except space
300
300
  [:cntrl:] all control characters
301
301
  [:xdigit:] all hexadecimal digits
302
- \\n, \\t, \\r escape sequences`},vh={"[:alnum:]":"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789","[:alpha:]":"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz","[:blank:]":" ","[:cntrl:]":Array.from({length:32},(t,e)=>String.fromCharCode(e)).join("").concat("\x7F"),"[:digit:]":"0123456789","[:graph:]":Array.from({length:94},(t,e)=>String.fromCharCode(33+e)).join(""),"[:lower:]":"abcdefghijklmnopqrstuvwxyz","[:print:]":Array.from({length:95},(t,e)=>String.fromCharCode(32+e)).join(""),"[:punct:]":"!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~","[:space:]":`
303
- \r\f\v`,"[:upper:]":"ABCDEFGHIJKLMNOPQRSTUVWXYZ","[:xdigit:]":"0123456789ABCDEFabcdef"};$h={complement:{short:"c",long:"complement",type:"boolean"},complementUpper:{short:"C",type:"boolean"},delete:{short:"d",long:"delete",type:"boolean"},squeeze:{short:"s",long:"squeeze-repeats",type:"boolean"}},Rh={name:"tr",async execute(t,e){if(N(t))return k(Ih);let r=z("tr",t,$h);if(!r.ok)return r.error;let n=r.result.flags.complement||r.result.flags.complementUpper,s=r.result.flags.delete,i=r.result.flags.squeeze,o=r.result.positional;if(o.length<1)return{stdout:"",stderr:`tr: missing operand
302
+ \\n, \\t, \\r escape sequences`},Xh={"[:alnum:]":"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789","[:alpha:]":"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz","[:blank:]":" ","[:cntrl:]":Array.from({length:32},(t,e)=>String.fromCharCode(e)).join("").concat("\x7F"),"[:digit:]":"0123456789","[:graph:]":Array.from({length:94},(t,e)=>String.fromCharCode(33+e)).join(""),"[:lower:]":"abcdefghijklmnopqrstuvwxyz","[:print:]":Array.from({length:95},(t,e)=>String.fromCharCode(32+e)).join(""),"[:punct:]":"!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~","[:space:]":`
303
+ \r\f\v`,"[:upper:]":"ABCDEFGHIJKLMNOPQRSTUVWXYZ","[:xdigit:]":"0123456789ABCDEFabcdef"};Jh={complement:{short:"c",long:"complement",type:"boolean"},complementUpper:{short:"C",type:"boolean"},delete:{short:"d",long:"delete",type:"boolean"},squeeze:{short:"s",long:"squeeze-repeats",type:"boolean"}},Yh={name:"tr",async execute(t,e){if(N(t))return k(Qh);let r=H("tr",t,Jh);if(!r.ok)return r.error;let n=r.result.flags.complement||r.result.flags.complementUpper,s=r.result.flags.delete,i=r.result.flags.squeeze,o=r.result.positional;if(o.length<1)return{stdout:"",stderr:`tr: missing operand
304
304
  `,exitCode:1};if(!s&&!i&&o.length<2)return{stdout:"",stderr:`tr: missing operand after SET1
305
- `,exitCode:1};let a=Sa(o[0]),l=o.length>1?Sa(o[1]):"",c=e.stdin,u=p=>{let d=a.includes(p);return n?!d:d},f="";if(s)for(let p of c)u(p)||(f+=p);else if(i&&o.length===1){let p="";for(let d of c)u(d)&&d===p||(f+=d,p=d)}else{if(n){let p=l.length>0?l[l.length-1]:"";for(let d of c)a.includes(d)?f+=d:f+=p}else{let p=new Map;for(let d=0;d<a.length;d++){let h=d<l.length?l[d]:l[l.length-1];p.set(a[d],h)}for(let d of c)f+=p.get(d)??d}if(i){let p="",d="";for(let h of f)l.includes(h)&&h===d||(p+=h,d=h);f=p}}return{stdout:f,stderr:"",exitCode:0}}}});var ka={};R(ka,{rev:()=>Oh});function Fh(t){return Array.from(t).reverse().join("")}var Ph,Oh,Na=C(()=>{"use strict";L();Ph={name:"rev",summary:"reverse lines characterwise",usage:"rev [file ...]",description:"Copies the specified files to standard output, reversing the order of characters in every line. If no files are specified, standard input is read.",examples:["echo 'hello' | rev # Output: olleh","rev file.txt # Reverse each line in file"]};Oh={name:"rev",execute:async(t,e)=>{if(N(t))return k(Ph);let r=[];for(let i of t)if(i==="--"){let o=t.indexOf(i);r.push(...t.slice(o+1));break}else{if(i.startsWith("-")&&i!=="-")return P("rev",i);r.push(i)}let n="",s=i=>{let o=i.split(`
305
+ `,exitCode:1};let a=Ua(o[0]),l=o.length>1?Ua(o[1]):"",c=e.stdin,u=d=>{let p=a.includes(d);return n?!p:p},f="";if(s)for(let d of c)u(d)||(f+=d);else if(i&&o.length===1){let d="";for(let p of c)u(p)&&p===d||(f+=p,d=p)}else{if(n){let d=l.length>0?l[l.length-1]:"";for(let p of c)a.includes(p)?f+=p:f+=d}else{let d=new Map;for(let p=0;p<a.length;p++){let h=p<l.length?l[p]:l[l.length-1];d.set(a[p],h)}for(let p of c)f+=d.get(p)??p}if(i){let d="",p="";for(let h of f)l.includes(h)&&h===p||(d+=h,p=h);f=d}}return{stdout:f,stderr:"",exitCode:0}}}});var Ha={};$(Ha,{rev:()=>rm});function tm(t){return Array.from(t).reverse().join("")}var em,rm,Ga=C(()=>{"use strict";L();em={name:"rev",summary:"reverse lines characterwise",usage:"rev [file ...]",description:"Copies the specified files to standard output, reversing the order of characters in every line. If no files are specified, standard input is read.",examples:["echo 'hello' | rev # Output: olleh","rev file.txt # Reverse each line in file"]};rm={name:"rev",execute:async(t,e)=>{if(N(t))return k(em);let r=[];for(let i of t)if(i==="--"){let o=t.indexOf(i);r.push(...t.slice(o+1));break}else{if(i.startsWith("-")&&i!=="-")return R("rev",i);r.push(i)}let n="",s=i=>{let o=i.split(`
306
306
  `),a=i.endsWith(`
307
- `)&&o[o.length-1]==="";return a&&o.pop(),o.map(Fh).join(`
307
+ `)&&o[o.length-1]==="";return a&&o.pop(),o.map(tm).join(`
308
308
  `)+(a?`
309
309
  `:"")};if(r.length===0){let i=e.stdin??"";n=s(i)}else for(let i of r)if(i==="-"){let o=e.stdin??"";n+=s(o)}else{let o=e.fs.resolvePath(e.cwd,i),a=await e.fs.readFile(o);if(a===null)return{exitCode:1,stdout:n,stderr:`rev: ${i}: No such file or directory
310
- `};n+=s(a)}return{exitCode:0,stdout:n,stderr:""}}}});var va={};R(va,{nl:()=>Mh});function Dh(t,e,r){let n=String(t);switch(e){case"ln":return n.padEnd(r);case"rn":return n.padStart(r);case"rz":return n.padStart(r,"0");default:return e}}function Lh(t,e){switch(e){case"a":return!0;case"t":return t.trim().length>0;case"n":return!1;default:return e}}function Ia(t,e,r){if(t==="")return{output:"",nextNumber:r};let n=t.split(`
310
+ `};n+=s(a)}return{exitCode:0,stdout:n,stderr:""}}}});var Va={};$(Va,{nl:()=>om});function sm(t,e,r){let n=String(t);switch(e){case"ln":return n.padEnd(r);case"rn":return n.padStart(r);case"rz":return n.padStart(r,"0");default:return e}}function im(t,e){switch(e){case"a":return!0;case"t":return t.trim().length>0;case"n":return!1;default:return e}}function qa(t,e,r){if(t==="")return{output:"",nextNumber:r};let n=t.split(`
311
311
  `),s=[],i=r,o=t.endsWith(`
312
- `)&&n[n.length-1]==="";o&&n.pop();for(let a of n)if(Lh(a,e.bodyStyle)){let l=Dh(i,e.numberFormat,e.width);s.push(`${l}${e.separator}${a}`),i+=e.increment}else{let l=" ".repeat(e.width);s.push(`${l}${e.separator}${a}`)}return{output:s.join(`
312
+ `)&&n[n.length-1]==="";o&&n.pop();for(let a of n)if(im(a,e.bodyStyle)){let l=sm(i,e.numberFormat,e.width);s.push(`${l}${e.separator}${a}`),i+=e.increment}else{let l=" ".repeat(e.width);s.push(`${l}${e.separator}${a}`)}return{output:s.join(`
313
313
  `)+(o?`
314
- `:""),nextNumber:i}}var Th,Mh,$a=C(()=>{"use strict";L();Th={name:"nl",summary:"number lines of files",usage:"nl [OPTION]... [FILE]...",description:"Write each FILE to standard output, with line numbers added. If no FILE is specified, standard input is read.",options:["-b STYLE Body numbering style: a (all), t (non-empty), n (none)","-n FORMAT Number format: ln (left), rn (right), rz (right zeros)","-w WIDTH Number width (default: 6)","-s SEP Separator after number (default: TAB)","-v START Starting line number (default: 1)","-i INCR Line number increment (default: 1)"],examples:["nl file.txt # Number non-empty lines","nl -ba file.txt # Number all lines","nl -n rz -w 3 file.txt # Right-justified with zeros","nl -s ': ' file.txt # Use ': ' as separator"]};Mh={name:"nl",execute:async(t,e)=>{if(N(t))return k(Th);let r={bodyStyle:"t",numberFormat:"rn",width:6,separator:" ",startNumber:1,increment:1},n=[],s=0;for(;s<t.length;){let a=t[s];if(a==="-b"&&s+1<t.length){let l=t[s+1];if(l!=="a"&&l!=="t"&&l!=="n")return{exitCode:1,stdout:"",stderr:`nl: invalid body numbering style: '${l}'
314
+ `:""),nextNumber:i}}var nm,om,Ka=C(()=>{"use strict";L();nm={name:"nl",summary:"number lines of files",usage:"nl [OPTION]... [FILE]...",description:"Write each FILE to standard output, with line numbers added. If no FILE is specified, standard input is read.",options:["-b STYLE Body numbering style: a (all), t (non-empty), n (none)","-n FORMAT Number format: ln (left), rn (right), rz (right zeros)","-w WIDTH Number width (default: 6)","-s SEP Separator after number (default: TAB)","-v START Starting line number (default: 1)","-i INCR Line number increment (default: 1)"],examples:["nl file.txt # Number non-empty lines","nl -ba file.txt # Number all lines","nl -n rz -w 3 file.txt # Right-justified with zeros","nl -s ': ' file.txt # Use ': ' as separator"]};om={name:"nl",execute:async(t,e)=>{if(N(t))return k(nm);let r={bodyStyle:"t",numberFormat:"rn",width:6,separator:" ",startNumber:1,increment:1},n=[],s=0;for(;s<t.length;){let a=t[s];if(a==="-b"&&s+1<t.length){let l=t[s+1];if(l!=="a"&&l!=="t"&&l!=="n")return{exitCode:1,stdout:"",stderr:`nl: invalid body numbering style: '${l}'
315
315
  `};r.bodyStyle=l,s+=2}else if(a.startsWith("-b")){let l=a.slice(2);if(l!=="a"&&l!=="t"&&l!=="n")return{exitCode:1,stdout:"",stderr:`nl: invalid body numbering style: '${l}'
316
316
  `};r.bodyStyle=l,s++}else if(a==="-n"&&s+1<t.length){let l=t[s+1];if(l!=="ln"&&l!=="rn"&&l!=="rz")return{exitCode:1,stdout:"",stderr:`nl: invalid line numbering format: '${l}'
317
317
  `};r.numberFormat=l,s+=2}else if(a.startsWith("-n")){let l=a.slice(2);if(l!=="ln"&&l!=="rn"&&l!=="rz")return{exitCode:1,stdout:"",stderr:`nl: invalid line numbering format: '${l}'
@@ -321,214 +321,214 @@ Try 'comm --help' for more information.
321
321
  `};r.startNumber=l,s+=2}else if(a.startsWith("-v")){let l=parseInt(a.slice(2),10);if(Number.isNaN(l))return{exitCode:1,stdout:"",stderr:`nl: invalid starting line number: '${a.slice(2)}'
322
322
  `};r.startNumber=l,s++}else if(a==="-i"&&s+1<t.length){let l=parseInt(t[s+1],10);if(Number.isNaN(l))return{exitCode:1,stdout:"",stderr:`nl: invalid line number increment: '${t[s+1]}'
323
323
  `};r.increment=l,s+=2}else if(a.startsWith("-i")){let l=parseInt(a.slice(2),10);if(Number.isNaN(l))return{exitCode:1,stdout:"",stderr:`nl: invalid line number increment: '${a.slice(2)}'
324
- `};r.increment=l,s++}else if(a==="--"){n.push(...t.slice(s+1));break}else{if(a.startsWith("-")&&a!=="-")return P("nl",a);n.push(a),s++}}let i="",o=r.startNumber;if(n.length===0){let a=e.stdin??"";i=Ia(a,r,o).output}else for(let a of n){let l=e.fs.resolvePath(e.cwd,a),c=await e.fs.readFile(l);if(c===null)return{exitCode:1,stdout:i,stderr:`nl: ${a}: No such file or directory
325
- `};let u=Ia(c,r,o);i+=u.output,o=u.nextNumber}return{exitCode:0,stdout:i,stderr:""}}}});var Pa={};R(Pa,{fold:()=>Uh});function Bh(t,e,r){return r?new TextEncoder().encode(t).length:t===" "?8-e%8:t==="\b"?-1:1}function Wh(t,e){if(t.length===0)return t;let{width:r,breakAtSpaces:n,countBytes:s}=e,i=[],o="",a=0,l=-1,c=0;for(let u=0;u<t.length;u++){let f=t[u],p=Bh(f,a,s);a+p>r&&o.length>0?n&&l>=0?(i.push(o.slice(0,l+1)),o=o.slice(l+1)+f,a=a-c-1+p,l=-1,c=0):(i.push(o),o=f,a=p,l=-1,c=0):(o+=f,a+=p,(f===" "||f===" ")&&(l=o.length-1,c=a-p))}return o.length>0&&i.push(o),i.join(`
326
- `)}function Ra(t,e){if(t==="")return"";let r=t.split(`
324
+ `};r.increment=l,s++}else if(a==="--"){n.push(...t.slice(s+1));break}else{if(a.startsWith("-")&&a!=="-")return R("nl",a);n.push(a),s++}}let i="",o=r.startNumber;if(n.length===0){let a=e.stdin??"";i=qa(a,r,o).output}else for(let a of n){let l=e.fs.resolvePath(e.cwd,a),c=await e.fs.readFile(l);if(c===null)return{exitCode:1,stdout:i,stderr:`nl: ${a}: No such file or directory
325
+ `};let u=qa(c,r,o);i+=u.output,o=u.nextNumber}return{exitCode:0,stdout:i,stderr:""}}}});var Qa={};$(Qa,{fold:()=>um});function lm(t,e,r){return r?new TextEncoder().encode(t).length:t===" "?8-e%8:t==="\b"?-1:1}function cm(t,e){if(t.length===0)return t;let{width:r,breakAtSpaces:n,countBytes:s}=e,i=[],o="",a=0,l=-1,c=0;for(let u=0;u<t.length;u++){let f=t[u],d=lm(f,a,s);a+d>r&&o.length>0?n&&l>=0?(i.push(o.slice(0,l+1)),o=o.slice(l+1)+f,a=a-c-1+d,l=-1,c=0):(i.push(o),o=f,a=d,l=-1,c=0):(o+=f,a+=d,(f===" "||f===" ")&&(l=o.length-1,c=a-d))}return o.length>0&&i.push(o),i.join(`
326
+ `)}function Za(t,e){if(t==="")return"";let r=t.split(`
327
327
  `),n=t.endsWith(`
328
- `)&&r[r.length-1]==="";return n&&r.pop(),r.map(i=>Wh(i,e)).join(`
328
+ `)&&r[r.length-1]==="";return n&&r.pop(),r.map(i=>cm(i,e)).join(`
329
329
  `)+(n?`
330
- `:"")}var _h,Uh,Fa=C(()=>{"use strict";L();_h={name:"fold",summary:"wrap each input line to fit in specified width",usage:"fold [OPTION]... [FILE]...",description:"Wrap input lines in each FILE, writing to standard output. If no FILE is specified, standard input is read.",options:["-w WIDTH Use WIDTH columns instead of 80","-s Break at spaces","-b Count bytes rather than columns"],examples:["fold -w 40 file.txt # Wrap at 40 columns","fold -sw 40 file.txt # Word wrap at 40 columns","echo 'long line' | fold -w 5 # Force wrap at 5"]};Uh={name:"fold",execute:async(t,e)=>{if(N(t))return k(_h);let r={width:80,breakAtSpaces:!1,countBytes:!1},n=[],s=0;for(;s<t.length;){let o=t[s];if(o==="-w"&&s+1<t.length){let a=parseInt(t[s+1],10);if(Number.isNaN(a)||a<1)return{exitCode:1,stdout:"",stderr:`fold: invalid number of columns: '${t[s+1]}'
330
+ `:"")}var am,um,Xa=C(()=>{"use strict";L();am={name:"fold",summary:"wrap each input line to fit in specified width",usage:"fold [OPTION]... [FILE]...",description:"Wrap input lines in each FILE, writing to standard output. If no FILE is specified, standard input is read.",options:["-w WIDTH Use WIDTH columns instead of 80","-s Break at spaces","-b Count bytes rather than columns"],examples:["fold -w 40 file.txt # Wrap at 40 columns","fold -sw 40 file.txt # Word wrap at 40 columns","echo 'long line' | fold -w 5 # Force wrap at 5"]};um={name:"fold",execute:async(t,e)=>{if(N(t))return k(am);let r={width:80,breakAtSpaces:!1,countBytes:!1},n=[],s=0;for(;s<t.length;){let o=t[s];if(o==="-w"&&s+1<t.length){let a=parseInt(t[s+1],10);if(Number.isNaN(a)||a<1)return{exitCode:1,stdout:"",stderr:`fold: invalid number of columns: '${t[s+1]}'
331
331
  `};r.width=a,s+=2}else if(o.startsWith("-w")&&o.length>2){let a=parseInt(o.slice(2),10);if(Number.isNaN(a)||a<1)return{exitCode:1,stdout:"",stderr:`fold: invalid number of columns: '${o.slice(2)}'
332
332
  `};r.width=a,s++}else if(o==="-s")r.breakAtSpaces=!0,s++;else if(o==="-b")r.countBytes=!0,s++;else if(o==="-bs"||o==="-sb")r.breakAtSpaces=!0,r.countBytes=!0,s++;else if(o.match(/^-[sb]+w\d+$/)){o.includes("s")&&(r.breakAtSpaces=!0),o.includes("b")&&(r.countBytes=!0);let a=o.replace(/^-[sb]+w/,""),l=parseInt(a,10);if(Number.isNaN(l)||l<1)return{exitCode:1,stdout:"",stderr:`fold: invalid number of columns: '${a}'
333
333
  `};r.width=l,s++}else if(o.match(/^-[sb]+w$/)&&s+1<t.length){o.includes("s")&&(r.breakAtSpaces=!0),o.includes("b")&&(r.countBytes=!0);let a=parseInt(t[s+1],10);if(Number.isNaN(a)||a<1)return{exitCode:1,stdout:"",stderr:`fold: invalid number of columns: '${t[s+1]}'
334
- `};r.width=a,s+=2}else if(o==="--"){n.push(...t.slice(s+1));break}else if(o.startsWith("-")&&o!=="-"){let a=o.slice(1),l=!1;for(let c of a)if(c==="s")r.breakAtSpaces=!0;else if(c==="b")r.countBytes=!0;else{l=!0;break}if(l)return P("fold",o);s++}else n.push(o),s++}let i="";if(n.length===0){let o=e.stdin??"";i=Ra(o,r)}else for(let o of n){let a=e.fs.resolvePath(e.cwd,o),l=await e.fs.readFile(a);if(l===null)return{exitCode:1,stdout:i,stderr:`fold: ${o}: No such file or directory
335
- `};i+=Ra(l,r)}return{exitCode:0,stdout:i,stderr:""}}}});var Ta={};R(Ta,{expand:()=>Gh});function Ur(t){let e=t.split(",").map(n=>n.trim()),r=[];for(let n of e){let s=parseInt(n,10);if(Number.isNaN(s)||s<1)return null;r.push(s)}for(let n=1;n<r.length;n++)if(r[n]<=r[n-1])return null;return r}function zh(t,e){if(e.length===1){let r=e[0];return r-t%r}for(let r of e)if(r>t)return r-t;if(e.length>=2){let r=e[e.length-1]-e[e.length-2],n=e[e.length-1],s=Math.floor((t-n)/r)+1;return n+s*r-t}return 1}function Hh(t,e){let{tabStops:r,leadingOnly:n}=e,s="",i=0,o=!0;for(let a of t)if(a===" ")if(n&&!o)s+=a,i++;else{let l=zh(i,r);s+=" ".repeat(l),i+=l}else a!==" "&&a!==" "&&(o=!1),s+=a,i++;return s}function Oa(t,e){if(t==="")return"";let r=t.split(`
334
+ `};r.width=a,s+=2}else if(o==="--"){n.push(...t.slice(s+1));break}else if(o.startsWith("-")&&o!=="-"){let a=o.slice(1),l=!1;for(let c of a)if(c==="s")r.breakAtSpaces=!0;else if(c==="b")r.countBytes=!0;else{l=!0;break}if(l)return R("fold",o);s++}else n.push(o),s++}let i="";if(n.length===0){let o=e.stdin??"";i=Za(o,r)}else for(let o of n){let a=e.fs.resolvePath(e.cwd,o),l=await e.fs.readFile(a);if(l===null)return{exitCode:1,stdout:i,stderr:`fold: ${o}: No such file or directory
335
+ `};i+=Za(l,r)}return{exitCode:0,stdout:i,stderr:""}}}});var Ya={};$(Ya,{expand:()=>hm});function sn(t){let e=t.split(",").map(n=>n.trim()),r=[];for(let n of e){let s=parseInt(n,10);if(Number.isNaN(s)||s<1)return null;r.push(s)}for(let n=1;n<r.length;n++)if(r[n]<=r[n-1])return null;return r}function dm(t,e){if(e.length===1){let r=e[0];return r-t%r}for(let r of e)if(r>t)return r-t;if(e.length>=2){let r=e[e.length-1]-e[e.length-2],n=e[e.length-1],s=Math.floor((t-n)/r)+1;return n+s*r-t}return 1}function pm(t,e){let{tabStops:r,leadingOnly:n}=e,s="",i=0,o=!0;for(let a of t)if(a===" ")if(n&&!o)s+=a,i++;else{let l=dm(i,r);s+=" ".repeat(l),i+=l}else a!==" "&&a!==" "&&(o=!1),s+=a,i++;return s}function Ja(t,e){if(t==="")return"";let r=t.split(`
336
336
  `),n=t.endsWith(`
337
- `)&&r[r.length-1]==="";return n&&r.pop(),r.map(i=>Hh(i,e)).join(`
337
+ `)&&r[r.length-1]==="";return n&&r.pop(),r.map(i=>pm(i,e)).join(`
338
338
  `)+(n?`
339
- `:"")}var jh,Gh,Da=C(()=>{"use strict";L();jh={name:"expand",summary:"convert tabs to spaces",usage:"expand [OPTION]... [FILE]...",description:"Convert TABs in each FILE to spaces, writing to standard output. If no FILE is specified, standard input is read.",options:["-t N Use N spaces per tab (default: 8)","-t LIST Use comma-separated list of tab stops","-i Only convert leading tabs on each line"],examples:["expand file.txt # Convert all tabs to 8 spaces","expand -t 4 file.txt # Use 4-space tabs","expand -t 4,8,12 file.txt # Custom tab stops"]};Gh={name:"expand",execute:async(t,e)=>{if(N(t))return k(jh);let r={tabStops:[8],leadingOnly:!1},n=[],s=0;for(;s<t.length;){let o=t[s];if(o==="-t"&&s+1<t.length){let a=Ur(t[s+1]);if(!a)return{exitCode:1,stdout:"",stderr:`expand: invalid tab size: '${t[s+1]}'
340
- `};r.tabStops=a,s+=2}else if(o.startsWith("-t")&&o.length>2){let a=Ur(o.slice(2));if(!a)return{exitCode:1,stdout:"",stderr:`expand: invalid tab size: '${o.slice(2)}'
341
- `};r.tabStops=a,s++}else if(o==="--tabs"&&s+1<t.length){let a=Ur(t[s+1]);if(!a)return{exitCode:1,stdout:"",stderr:`expand: invalid tab size: '${t[s+1]}'
342
- `};r.tabStops=a,s+=2}else if(o.startsWith("--tabs=")){let a=Ur(o.slice(7));if(!a)return{exitCode:1,stdout:"",stderr:`expand: invalid tab size: '${o.slice(7)}'
343
- `};r.tabStops=a,s++}else if(o==="-i"||o==="--initial")r.leadingOnly=!0,s++;else if(o==="--"){n.push(...t.slice(s+1));break}else{if(o.startsWith("-")&&o!=="-")return P("expand",o);n.push(o),s++}}let i="";if(n.length===0){let o=e.stdin??"";i=Oa(o,r)}else for(let o of n){let a=e.fs.resolvePath(e.cwd,o),l=await e.fs.readFile(a);if(l===null)return{exitCode:1,stdout:i,stderr:`expand: ${o}: No such file or directory
344
- `};i+=Oa(l,r)}return{exitCode:0,stdout:i,stderr:""}}}});var _a={};R(_a,{unexpand:()=>Kh});function jr(t){let e=t.split(",").map(n=>n.trim()),r=[];for(let n of e){let s=parseInt(n,10);if(Number.isNaN(s)||s<1)return null;r.push(s)}for(let n=1;n<r.length;n++)if(r[n]<=r[n-1])return null;return r}function La(t,e){if(e.length===1){let r=e[0];return t+(r-t%r)}for(let r of e)if(r>t)return r;if(e.length>=2){let r=e[e.length-1]-e[e.length-2],n=e[e.length-1],s=Math.floor((t-n)/r)+1;return n+s*r}return-1}function Vh(t,e){let{tabStops:r,allBlanks:n}=e,s="",i=0,o="",a=0,l=!0,c=()=>{if(o.length===0)return;let u=a+o.length;if(!n&&!l){s+=o,o="";return}let f=a,p="";for(;f<u;){let h=La(f,r);if(h<=u&&h>f)p+=" ",f=h;else break}let d=u-f;d>0&&(p+=" ".repeat(d)),s+=p,o=""};for(let u of t)u===" "?(o.length===0&&(a=i),o+=u,i++):u===" "?(c(),s+=u,i=La(i,r)):(c(),s+=u,i++,l=!1);return c(),s}function Ma(t,e){if(t==="")return"";let r=t.split(`
339
+ `:"")}var fm,hm,el=C(()=>{"use strict";L();fm={name:"expand",summary:"convert tabs to spaces",usage:"expand [OPTION]... [FILE]...",description:"Convert TABs in each FILE to spaces, writing to standard output. If no FILE is specified, standard input is read.",options:["-t N Use N spaces per tab (default: 8)","-t LIST Use comma-separated list of tab stops","-i Only convert leading tabs on each line"],examples:["expand file.txt # Convert all tabs to 8 spaces","expand -t 4 file.txt # Use 4-space tabs","expand -t 4,8,12 file.txt # Custom tab stops"]};hm={name:"expand",execute:async(t,e)=>{if(N(t))return k(fm);let r={tabStops:[8],leadingOnly:!1},n=[],s=0;for(;s<t.length;){let o=t[s];if(o==="-t"&&s+1<t.length){let a=sn(t[s+1]);if(!a)return{exitCode:1,stdout:"",stderr:`expand: invalid tab size: '${t[s+1]}'
340
+ `};r.tabStops=a,s+=2}else if(o.startsWith("-t")&&o.length>2){let a=sn(o.slice(2));if(!a)return{exitCode:1,stdout:"",stderr:`expand: invalid tab size: '${o.slice(2)}'
341
+ `};r.tabStops=a,s++}else if(o==="--tabs"&&s+1<t.length){let a=sn(t[s+1]);if(!a)return{exitCode:1,stdout:"",stderr:`expand: invalid tab size: '${t[s+1]}'
342
+ `};r.tabStops=a,s+=2}else if(o.startsWith("--tabs=")){let a=sn(o.slice(7));if(!a)return{exitCode:1,stdout:"",stderr:`expand: invalid tab size: '${o.slice(7)}'
343
+ `};r.tabStops=a,s++}else if(o==="-i"||o==="--initial")r.leadingOnly=!0,s++;else if(o==="--"){n.push(...t.slice(s+1));break}else{if(o.startsWith("-")&&o!=="-")return R("expand",o);n.push(o),s++}}let i="";if(n.length===0){let o=e.stdin??"";i=Ja(o,r)}else for(let o of n){let a=e.fs.resolvePath(e.cwd,o),l=await e.fs.readFile(a);if(l===null)return{exitCode:1,stdout:i,stderr:`expand: ${o}: No such file or directory
344
+ `};i+=Ja(l,r)}return{exitCode:0,stdout:i,stderr:""}}}});var nl={};$(nl,{unexpand:()=>ym});function on(t){let e=t.split(",").map(n=>n.trim()),r=[];for(let n of e){let s=parseInt(n,10);if(Number.isNaN(s)||s<1)return null;r.push(s)}for(let n=1;n<r.length;n++)if(r[n]<=r[n-1])return null;return r}function tl(t,e){if(e.length===1){let r=e[0];return t+(r-t%r)}for(let r of e)if(r>t)return r;if(e.length>=2){let r=e[e.length-1]-e[e.length-2],n=e[e.length-1],s=Math.floor((t-n)/r)+1;return n+s*r}return-1}function gm(t,e){let{tabStops:r,allBlanks:n}=e,s="",i=0,o="",a=0,l=!0,c=()=>{if(o.length===0)return;let u=a+o.length;if(!n&&!l){s+=o,o="";return}let f=a,d="";for(;f<u;){let h=tl(f,r);if(h<=u&&h>f)d+=" ",f=h;else break}let p=u-f;p>0&&(d+=" ".repeat(p)),s+=d,o=""};for(let u of t)u===" "?(o.length===0&&(a=i),o+=u,i++):u===" "?(c(),s+=u,i=tl(i,r)):(c(),s+=u,i++,l=!1);return c(),s}function rl(t,e){if(t==="")return"";let r=t.split(`
345
345
  `),n=t.endsWith(`
346
- `)&&r[r.length-1]==="";return n&&r.pop(),r.map(i=>Vh(i,e)).join(`
346
+ `)&&r[r.length-1]==="";return n&&r.pop(),r.map(i=>gm(i,e)).join(`
347
347
  `)+(n?`
348
- `:"")}var qh,Kh,Ba=C(()=>{"use strict";L();qh={name:"unexpand",summary:"convert spaces to tabs",usage:"unexpand [OPTION]... [FILE]...",description:"Convert blanks in each FILE to TABs, writing to standard output. If no FILE is specified, standard input is read.",options:["-t N Use N spaces per tab (default: 8)","-t LIST Use comma-separated list of tab stops","-a Convert all sequences of blanks (not just leading)"],examples:["unexpand file.txt # Convert leading spaces to tabs","unexpand -a file.txt # Convert all space sequences","unexpand -t 4 file.txt # Use 4-space tabs"]};Kh={name:"unexpand",execute:async(t,e)=>{if(N(t))return k(qh);let r={tabStops:[8],allBlanks:!1},n=[],s=0;for(;s<t.length;){let o=t[s];if(o==="-t"&&s+1<t.length){let a=jr(t[s+1]);if(!a)return{exitCode:1,stdout:"",stderr:`unexpand: invalid tab size: '${t[s+1]}'
349
- `};r.tabStops=a,s+=2}else if(o.startsWith("-t")&&o.length>2){let a=jr(o.slice(2));if(!a)return{exitCode:1,stdout:"",stderr:`unexpand: invalid tab size: '${o.slice(2)}'
350
- `};r.tabStops=a,s++}else if(o==="--tabs"&&s+1<t.length){let a=jr(t[s+1]);if(!a)return{exitCode:1,stdout:"",stderr:`unexpand: invalid tab size: '${t[s+1]}'
351
- `};r.tabStops=a,s+=2}else if(o.startsWith("--tabs=")){let a=jr(o.slice(7));if(!a)return{exitCode:1,stdout:"",stderr:`unexpand: invalid tab size: '${o.slice(7)}'
352
- `};r.tabStops=a,s++}else if(o==="-a"||o==="--all")r.allBlanks=!0,s++;else if(o==="--"){n.push(...t.slice(s+1));break}else{if(o.startsWith("-")&&o!=="-")return P("unexpand",o);n.push(o),s++}}let i="";if(n.length===0){let o=e.stdin??"";i=Ma(o,r)}else for(let o of n){let a=e.fs.resolvePath(e.cwd,o),l=await e.fs.readFile(a);if(l===null)return{exitCode:1,stdout:i,stderr:`unexpand: ${o}: No such file or directory
353
- `};i+=Ma(l,r)}return{exitCode:0,stdout:i,stderr:""}}}});var ja={};R(ja,{strings:()=>Xh});function Qh(t){return t>=32&&t<=126||t===9}function Wa(t,e){if(e===null)return"";switch(e){case"o":return`${t.toString(8).padStart(7," ")} `;case"x":return`${t.toString(16).padStart(7," ")} `;case"d":return`${t.toString(10).padStart(7," ")} `;default:return e}}function Ua(t,e){let r=[],n="",s=0,i=typeof t=="string"?new TextEncoder().encode(t):t;for(let o=0;o<i.length;o++){let a=i[o];if(Qh(a))n.length===0&&(s=o),n+=String.fromCharCode(a);else{if(n.length>=e.minLength){let l=Wa(s,e.offsetFormat);r.push(`${l}${n}`)}n=""}}if(n.length>=e.minLength){let o=Wa(s,e.offsetFormat);r.push(`${o}${n}`)}return r}var Zh,Xh,za=C(()=>{"use strict";L();Zh={name:"strings",summary:"print the sequences of printable characters in files",usage:"strings [OPTION]... [FILE]...",description:"For each FILE, print the printable character sequences that are at least MIN characters long. If no FILE is specified, standard input is read.",options:["-n MIN Print sequences of at least MIN characters (default: 4)","-t FORMAT Print offset before each string (o=octal, x=hex, d=decimal)","-a Scan the entire file (default behavior)","-e ENCODING Select character encoding (s=7-bit, S=8-bit)"],examples:["strings file.bin # Extract strings (min 4 chars)","strings -n 8 file.bin # Extract strings (min 8 chars)","strings -t x file.bin # Show hex offset","echo 'hello' | strings # Read from stdin"]};Xh={name:"strings",execute:async(t,e)=>{if(N(t))return k(Zh);let r={minLength:4,offsetFormat:null},n=[],s=0;for(;s<t.length;){let o=t[s];if(o==="-n"&&s+1<t.length){let a=Number.parseInt(t[s+1],10);if(Number.isNaN(a)||a<1)return{exitCode:1,stdout:"",stderr:`strings: invalid minimum string length: '${t[s+1]}'
348
+ `:"")}var mm,ym,sl=C(()=>{"use strict";L();mm={name:"unexpand",summary:"convert spaces to tabs",usage:"unexpand [OPTION]... [FILE]...",description:"Convert blanks in each FILE to TABs, writing to standard output. If no FILE is specified, standard input is read.",options:["-t N Use N spaces per tab (default: 8)","-t LIST Use comma-separated list of tab stops","-a Convert all sequences of blanks (not just leading)"],examples:["unexpand file.txt # Convert leading spaces to tabs","unexpand -a file.txt # Convert all space sequences","unexpand -t 4 file.txt # Use 4-space tabs"]};ym={name:"unexpand",execute:async(t,e)=>{if(N(t))return k(mm);let r={tabStops:[8],allBlanks:!1},n=[],s=0;for(;s<t.length;){let o=t[s];if(o==="-t"&&s+1<t.length){let a=on(t[s+1]);if(!a)return{exitCode:1,stdout:"",stderr:`unexpand: invalid tab size: '${t[s+1]}'
349
+ `};r.tabStops=a,s+=2}else if(o.startsWith("-t")&&o.length>2){let a=on(o.slice(2));if(!a)return{exitCode:1,stdout:"",stderr:`unexpand: invalid tab size: '${o.slice(2)}'
350
+ `};r.tabStops=a,s++}else if(o==="--tabs"&&s+1<t.length){let a=on(t[s+1]);if(!a)return{exitCode:1,stdout:"",stderr:`unexpand: invalid tab size: '${t[s+1]}'
351
+ `};r.tabStops=a,s+=2}else if(o.startsWith("--tabs=")){let a=on(o.slice(7));if(!a)return{exitCode:1,stdout:"",stderr:`unexpand: invalid tab size: '${o.slice(7)}'
352
+ `};r.tabStops=a,s++}else if(o==="-a"||o==="--all")r.allBlanks=!0,s++;else if(o==="--"){n.push(...t.slice(s+1));break}else{if(o.startsWith("-")&&o!=="-")return R("unexpand",o);n.push(o),s++}}let i="";if(n.length===0){let o=e.stdin??"";i=rl(o,r)}else for(let o of n){let a=e.fs.resolvePath(e.cwd,o),l=await e.fs.readFile(a);if(l===null)return{exitCode:1,stdout:i,stderr:`unexpand: ${o}: No such file or directory
353
+ `};i+=rl(l,r)}return{exitCode:0,stdout:i,stderr:""}}}});var al={};$(al,{strings:()=>Em});function wm(t){return t>=32&&t<=126||t===9}function il(t,e){if(e===null)return"";switch(e){case"o":return`${t.toString(8).padStart(7," ")} `;case"x":return`${t.toString(16).padStart(7," ")} `;case"d":return`${t.toString(10).padStart(7," ")} `;default:return e}}function ol(t,e){let r=[],n="",s=0,i=typeof t=="string"?new TextEncoder().encode(t):t;for(let o=0;o<i.length;o++){let a=i[o];if(wm(a))n.length===0&&(s=o),n+=String.fromCharCode(a);else{if(n.length>=e.minLength){let l=il(s,e.offsetFormat);r.push(`${l}${n}`)}n=""}}if(n.length>=e.minLength){let o=il(s,e.offsetFormat);r.push(`${o}${n}`)}return r}var xm,Em,ll=C(()=>{"use strict";L();xm={name:"strings",summary:"print the sequences of printable characters in files",usage:"strings [OPTION]... [FILE]...",description:"For each FILE, print the printable character sequences that are at least MIN characters long. If no FILE is specified, standard input is read.",options:["-n MIN Print sequences of at least MIN characters (default: 4)","-t FORMAT Print offset before each string (o=octal, x=hex, d=decimal)","-a Scan the entire file (default behavior)","-e ENCODING Select character encoding (s=7-bit, S=8-bit)"],examples:["strings file.bin # Extract strings (min 4 chars)","strings -n 8 file.bin # Extract strings (min 8 chars)","strings -t x file.bin # Show hex offset","echo 'hello' | strings # Read from stdin"]};Em={name:"strings",execute:async(t,e)=>{if(N(t))return k(xm);let r={minLength:4,offsetFormat:null},n=[],s=0;for(;s<t.length;){let o=t[s];if(o==="-n"&&s+1<t.length){let a=Number.parseInt(t[s+1],10);if(Number.isNaN(a)||a<1)return{exitCode:1,stdout:"",stderr:`strings: invalid minimum string length: '${t[s+1]}'
354
354
  `};r.minLength=a,s+=2}else if(o.match(/^-n\d+$/)){let a=Number.parseInt(o.slice(2),10);if(Number.isNaN(a)||a<1)return{exitCode:1,stdout:"",stderr:`strings: invalid minimum string length: '${o.slice(2)}'
355
355
  `};r.minLength=a,s++}else if(o.match(/^-\d+$/)){let a=Number.parseInt(o.slice(1),10);if(Number.isNaN(a)||a<1)return{exitCode:1,stdout:"",stderr:`strings: invalid minimum string length: '${o.slice(1)}'
356
356
  `};r.minLength=a,s++}else if(o==="-t"&&s+1<t.length){let a=t[s+1];if(a!=="o"&&a!=="x"&&a!=="d")return{exitCode:1,stdout:"",stderr:`strings: invalid radix: '${a}'
357
357
  `};r.offsetFormat=a,s+=2}else if(o.startsWith("-t")&&o.length===3){let a=o[2];if(a!=="o"&&a!=="x"&&a!=="d")return{exitCode:1,stdout:"",stderr:`strings: invalid radix: '${a}'
358
358
  `};r.offsetFormat=a,s++}else if(o==="-a"||o==="--all"||o==="-")o==="-"&&n.push(o),s++;else if(o==="-e"&&s+1<t.length){let a=t[s+1];if(a!=="s"&&a!=="S")return{exitCode:1,stdout:"",stderr:`strings: invalid encoding: '${a}'
359
359
  `};s+=2}else if(o.startsWith("-e")&&o.length===3){let a=o[2];if(a!=="s"&&a!=="S")return{exitCode:1,stdout:"",stderr:`strings: invalid encoding: '${a}'
360
- `};s++}else if(o==="--"){n.push(...t.slice(s+1));break}else{if(o.startsWith("-")&&o!=="-")return P("strings",o);n.push(o),s++}}let i="";if(n.length===0){let o=e.stdin??"",a=Ua(o,r);i=a.length>0?`${a.join(`
360
+ `};s++}else if(o==="--"){n.push(...t.slice(s+1));break}else{if(o.startsWith("-")&&o!=="-")return R("strings",o);n.push(o),s++}}let i="";if(n.length===0){let o=e.stdin??"",a=ol(o,r);i=a.length>0?`${a.join(`
361
361
  `)}
362
362
  `:""}else for(let o of n){let a;if(o==="-")a=e.stdin??"";else{let c=e.fs.resolvePath(e.cwd,o);if(a=await e.fs.readFile(c),a===null)return{exitCode:1,stdout:i,stderr:`strings: ${o}: No such file or directory
363
- `}}let l=Ua(a,r);l.length>0&&(i+=`${l.join(`
363
+ `}}let l=ol(a,r);l.length>0&&(i+=`${l.join(`
364
364
  `)}
365
- `)}return{exitCode:0,stdout:i,stderr:""}}}});var Ga={};R(Ga,{split:()=>nm});function Ha(t){let e=t.match(/^(\d+)([KMGTPEZY]?)([B]?)$/i);if(!e)return null;let r=Number.parseInt(e[1],10);if(Number.isNaN(r)||r<1)return null;let n=(e[2]||"").toUpperCase(),i={"":1,K:1024,M:1024*1024,G:1024*1024*1024,T:1024*1024*1024*1024,P:1024*1024*1024*1024*1024}[n];return i===void 0?null:r*i}function Yh(t,e,r){if(e)return t.toString().padStart(r,"0");let n="abcdefghijklmnopqrstuvwxyz",s="",i=t;for(let o=0;o<r;o++)s=n[i%26]+s,i=Math.floor(i/26);return s}function em(t,e){let r=t.split(`
365
+ `)}return{exitCode:0,stdout:i,stderr:""}}}});var ul={};$(ul,{split:()=>Nm});function cl(t){let e=t.match(/^(\d+)([KMGTPEZY]?)([B]?)$/i);if(!e)return null;let r=Number.parseInt(e[1],10);if(Number.isNaN(r)||r<1)return null;let n=(e[2]||"").toUpperCase(),i={"":1,K:1024,M:1024*1024,G:1024*1024*1024,T:1024*1024*1024*1024,P:1024*1024*1024*1024*1024}[n];return i===void 0?null:r*i}function Sm(t,e,r){if(e)return t.toString().padStart(r,"0");let n="abcdefghijklmnopqrstuvwxyz",s="",i=t;for(let o=0;o<r;o++)s=n[i%26]+s,i=Math.floor(i/26);return s}function Cm(t,e){let r=t.split(`
366
366
  `),n=t.endsWith(`
367
367
  `)&&r[r.length-1]==="";n&&r.pop();let s=[];for(let i=0;i<r.length;i+=e){let o=r.slice(i,i+e),l=i+e>=r.length&&!n?o.join(`
368
368
  `):`${o.join(`
369
369
  `)}
370
- `;s.push({content:l,hasContent:!0})}return s}function tm(t,e){let n=new TextEncoder().encode(t),s=new TextDecoder,i=[];for(let o=0;o<n.length;o+=e){let a=n.slice(o,o+e);i.push({content:s.decode(a),hasContent:a.length>0})}return i}function rm(t,e){let n=new TextEncoder().encode(t),s=new TextDecoder,i=[],o=Math.ceil(n.length/e);for(let a=0;a<e;a++){let l=a*o,c=Math.min(l+o,n.length),u=n.slice(l,c);i.push({content:s.decode(u),hasContent:u.length>0})}return i}var Jh,nm,qa=C(()=>{"use strict";L();Jh={name:"split",summary:"split a file into pieces",usage:"split [OPTION]... [FILE [PREFIX]]",description:"Output pieces of FILE to PREFIXaa, PREFIXab, ...; default size is 1000 lines, and default PREFIX is 'x'.",options:["-l N Put N lines per output file","-b SIZE Put SIZE bytes per output file (K, M, G suffixes)","-n CHUNKS Split into CHUNKS equal-sized files","-d Use numeric suffixes (00, 01, ...) instead of alphabetic","-a LENGTH Use suffixes of length LENGTH (default: 2)","--additional-suffix=SUFFIX Append SUFFIX to file names"],examples:["split -l 100 file.txt # Split into 100-line chunks","split -b 1M file.bin # Split into 1MB chunks","split -n 5 file.txt # Split into 5 equal parts","split -d file.txt part_ # part_00, part_01, ...","split -a 3 -d file.txt x # x000, x001, ..."]};nm={name:"split",execute:async(t,e)=>{if(N(t))return k(Jh);let r={mode:"lines",lines:1e3,bytes:0,chunks:0,useNumericSuffix:!1,suffixLength:2,additionalSuffix:""},n=[],s=0;for(;s<t.length;){let c=t[s];if(c==="-l"&&s+1<t.length){let u=Number.parseInt(t[s+1],10);if(Number.isNaN(u)||u<1)return{exitCode:1,stdout:"",stderr:`split: invalid number of lines: '${t[s+1]}'
370
+ `;s.push({content:l,hasContent:!0})}return s}function Am(t,e){let n=new TextEncoder().encode(t),s=new TextDecoder,i=[];for(let o=0;o<n.length;o+=e){let a=n.slice(o,o+e);i.push({content:s.decode(a),hasContent:a.length>0})}return i}function km(t,e){let n=new TextEncoder().encode(t),s=new TextDecoder,i=[],o=Math.ceil(n.length/e);for(let a=0;a<e;a++){let l=a*o,c=Math.min(l+o,n.length),u=n.slice(l,c);i.push({content:s.decode(u),hasContent:u.length>0})}return i}var bm,Nm,fl=C(()=>{"use strict";L();bm={name:"split",summary:"split a file into pieces",usage:"split [OPTION]... [FILE [PREFIX]]",description:"Output pieces of FILE to PREFIXaa, PREFIXab, ...; default size is 1000 lines, and default PREFIX is 'x'.",options:["-l N Put N lines per output file","-b SIZE Put SIZE bytes per output file (K, M, G suffixes)","-n CHUNKS Split into CHUNKS equal-sized files","-d Use numeric suffixes (00, 01, ...) instead of alphabetic","-a LENGTH Use suffixes of length LENGTH (default: 2)","--additional-suffix=SUFFIX Append SUFFIX to file names"],examples:["split -l 100 file.txt # Split into 100-line chunks","split -b 1M file.bin # Split into 1MB chunks","split -n 5 file.txt # Split into 5 equal parts","split -d file.txt part_ # part_00, part_01, ...","split -a 3 -d file.txt x # x000, x001, ..."]};Nm={name:"split",execute:async(t,e)=>{if(N(t))return k(bm);let r={mode:"lines",lines:1e3,bytes:0,chunks:0,useNumericSuffix:!1,suffixLength:2,additionalSuffix:""},n=[],s=0;for(;s<t.length;){let c=t[s];if(c==="-l"&&s+1<t.length){let u=Number.parseInt(t[s+1],10);if(Number.isNaN(u)||u<1)return{exitCode:1,stdout:"",stderr:`split: invalid number of lines: '${t[s+1]}'
371
371
  `};r.mode="lines",r.lines=u,s+=2}else if(c.match(/^-l\d+$/)){let u=Number.parseInt(c.slice(2),10);if(Number.isNaN(u)||u<1)return{exitCode:1,stdout:"",stderr:`split: invalid number of lines: '${c.slice(2)}'
372
- `};r.mode="lines",r.lines=u,s++}else if(c==="-b"&&s+1<t.length){let u=Ha(t[s+1]);if(u===null)return{exitCode:1,stdout:"",stderr:`split: invalid number of bytes: '${t[s+1]}'
373
- `};r.mode="bytes",r.bytes=u,s+=2}else if(c.match(/^-b.+$/)){let u=Ha(c.slice(2));if(u===null)return{exitCode:1,stdout:"",stderr:`split: invalid number of bytes: '${c.slice(2)}'
372
+ `};r.mode="lines",r.lines=u,s++}else if(c==="-b"&&s+1<t.length){let u=cl(t[s+1]);if(u===null)return{exitCode:1,stdout:"",stderr:`split: invalid number of bytes: '${t[s+1]}'
373
+ `};r.mode="bytes",r.bytes=u,s+=2}else if(c.match(/^-b.+$/)){let u=cl(c.slice(2));if(u===null)return{exitCode:1,stdout:"",stderr:`split: invalid number of bytes: '${c.slice(2)}'
374
374
  `};r.mode="bytes",r.bytes=u,s++}else if(c==="-n"&&s+1<t.length){let u=Number.parseInt(t[s+1],10);if(Number.isNaN(u)||u<1)return{exitCode:1,stdout:"",stderr:`split: invalid number of chunks: '${t[s+1]}'
375
375
  `};r.mode="chunks",r.chunks=u,s+=2}else if(c.match(/^-n\d+$/)){let u=Number.parseInt(c.slice(2),10);if(Number.isNaN(u)||u<1)return{exitCode:1,stdout:"",stderr:`split: invalid number of chunks: '${c.slice(2)}'
376
376
  `};r.mode="chunks",r.chunks=u,s++}else if(c==="-a"&&s+1<t.length){let u=Number.parseInt(t[s+1],10);if(Number.isNaN(u)||u<1)return{exitCode:1,stdout:"",stderr:`split: invalid suffix length: '${t[s+1]}'
377
377
  `};r.suffixLength=u,s+=2}else if(c.match(/^-a\d+$/)){let u=Number.parseInt(c.slice(2),10);if(Number.isNaN(u)||u<1)return{exitCode:1,stdout:"",stderr:`split: invalid suffix length: '${c.slice(2)}'
378
- `};r.suffixLength=u,s++}else if(c==="-d"||c==="--numeric-suffixes")r.useNumericSuffix=!0,s++;else if(c.startsWith("--additional-suffix="))r.additionalSuffix=c.slice(20),s++;else if(c==="--additional-suffix"&&s+1<t.length)r.additionalSuffix=t[s+1],s+=2;else if(c==="--"){n.push(...t.slice(s+1));break}else{if(c.startsWith("-")&&c!=="-")return P("split",c);n.push(c),s++}}let i="-",o="x";n.length>=1&&(i=n[0]),n.length>=2&&(o=n[1]);let a;if(i==="-")a=e.stdin??"";else{let c=e.fs.resolvePath(e.cwd,i),u=await e.fs.readFile(c);if(u===null)return{exitCode:1,stdout:"",stderr:`split: ${i}: No such file or directory
379
- `};a=u}if(a==="")return{exitCode:0,stdout:"",stderr:""};let l;switch(r.mode){case"lines":l=em(a,r.lines);break;case"bytes":l=tm(a,r.bytes);break;case"chunks":l=rm(a,r.chunks);break;default:return r.mode}for(let c=0;c<l.length;c++){let u=l[c];if(!u.hasContent)continue;let f=Yh(c,r.useNumericSuffix,r.suffixLength),p=`${o}${f}${r.additionalSuffix}`,d=e.fs.resolvePath(e.cwd,p);await e.fs.writeFile(d,u.content)}return{exitCode:0,stdout:"",stderr:""}}}});var Ka={};R(Ka,{column:()=>cm});function Va(t,e,r){return e?r?t.split(e):t.split(e).filter(n=>n.length>0):r?t.split(/[ \t]/):t.split(/[ \t]+/).filter(n=>n.length>0)}function om(t){let e=[];for(let r of t)for(let n=0;n<r.length;n++){let s=r[n].length;(e[n]===void 0||s>e[n])&&(e[n]=s)}return e}function am(t,e){if(t.length===0)return"";let r=om(t),n=[];for(let s of t){let i=[];for(let o=0;o<s.length;o++)o===s.length-1?i.push(s[o]):i.push(s[o].padEnd(r[o]));n.push(i.join(e))}return n.join(`
380
- `)}function lm(t,e,r){if(t.length===0)return"";let n=Math.max(...t.map(c=>c.length)),s=r.length,i=n+s,o=Math.max(1,Math.floor((e+s)/i)),a=Math.ceil(t.length/o),l=[];for(let c=0;c<a;c++){let u=[];for(let f=0;f<o;f++){let p=f*a+c;p<t.length&&(f===o-1||(f+1)*a+c>=t.length?u.push(t[p]):u.push(t[p].padEnd(n)))}l.push(u.join(r))}return l.join(`
381
- `)}var sm,im,cm,Za=C(()=>{"use strict";ye();L();sm={name:"column",summary:"columnate lists",usage:"column [OPTION]... [FILE]...",description:"Format input into multiple columns. By default, fills rows first. Use -t to create a table based on whitespace-delimited input.",options:["-t Create a table (determine columns from input)","-s SEP Input field delimiter (default: whitespace)","-o SEP Output field delimiter (default: two spaces)","-c WIDTH Output width for fill mode (default: 80)","-n Don't merge multiple adjacent delimiters"],examples:["ls | column # Fill columns with ls output","cat data | column -t # Format as table","column -t -s ',' file # Format CSV as table","column -c 40 file # Fill 40-char wide columns"]},im={table:{short:"t",long:"table",type:"boolean"},separator:{short:"s",type:"string"},outputSep:{short:"o",type:"string"},width:{short:"c",type:"number",default:80},noMerge:{short:"n",type:"boolean"}};cm={name:"column",execute:async(t,e)=>{if(N(t))return k(sm);let r=z("column",t,im);if(!r.ok)return r.error;let{table:n,separator:s,outputSep:i,width:o,noMerge:a}=r.result.flags,l=r.result.positional,c=i??" ",u;if(l.length===0)u=e.stdin??"";else{let m=[];for(let g of l)if(g==="-")m.push(e.stdin??"");else{let w=e.fs.resolvePath(e.cwd,g),E=await e.fs.readFile(w);if(E===null)return{exitCode:1,stdout:"",stderr:`column: ${g}: No such file or directory
378
+ `};r.suffixLength=u,s++}else if(c==="-d"||c==="--numeric-suffixes")r.useNumericSuffix=!0,s++;else if(c.startsWith("--additional-suffix="))r.additionalSuffix=c.slice(20),s++;else if(c==="--additional-suffix"&&s+1<t.length)r.additionalSuffix=t[s+1],s+=2;else if(c==="--"){n.push(...t.slice(s+1));break}else{if(c.startsWith("-")&&c!=="-")return R("split",c);n.push(c),s++}}let i="-",o="x";n.length>=1&&(i=n[0]),n.length>=2&&(o=n[1]);let a;if(i==="-")a=e.stdin??"";else{let c=e.fs.resolvePath(e.cwd,i),u=await e.fs.readFile(c);if(u===null)return{exitCode:1,stdout:"",stderr:`split: ${i}: No such file or directory
379
+ `};a=u}if(a==="")return{exitCode:0,stdout:"",stderr:""};let l;switch(r.mode){case"lines":l=Cm(a,r.lines);break;case"bytes":l=Am(a,r.bytes);break;case"chunks":l=km(a,r.chunks);break;default:return r.mode}for(let c=0;c<l.length;c++){let u=l[c];if(!u.hasContent)continue;let f=Sm(c,r.useNumericSuffix,r.suffixLength),d=`${o}${f}${r.additionalSuffix}`,p=e.fs.resolvePath(e.cwd,d);await e.fs.writeFile(p,u.content)}return{exitCode:0,stdout:"",stderr:""}}}});var pl={};$(pl,{column:()=>Fm});function dl(t,e,r){return e?r?t.split(e):t.split(e).filter(n=>n.length>0):r?t.split(/[ \t]/):t.split(/[ \t]+/).filter(n=>n.length>0)}function $m(t){let e=[];for(let r of t)for(let n=0;n<r.length;n++){let s=r[n].length;(e[n]===void 0||s>e[n])&&(e[n]=s)}return e}function Rm(t,e){if(t.length===0)return"";let r=$m(t),n=[];for(let s of t){let i=[];for(let o=0;o<s.length;o++)o===s.length-1?i.push(s[o]):i.push(s[o].padEnd(r[o]));n.push(i.join(e))}return n.join(`
380
+ `)}function Pm(t,e,r){if(t.length===0)return"";let n=Math.max(...t.map(c=>c.length)),s=r.length,i=n+s,o=Math.max(1,Math.floor((e+s)/i)),a=Math.ceil(t.length/o),l=[];for(let c=0;c<a;c++){let u=[];for(let f=0;f<o;f++){let d=f*a+c;d<t.length&&(f===o-1||(f+1)*a+c>=t.length?u.push(t[d]):u.push(t[d].padEnd(n)))}l.push(u.join(r))}return l.join(`
381
+ `)}var Im,vm,Fm,hl=C(()=>{"use strict";Ee();L();Im={name:"column",summary:"columnate lists",usage:"column [OPTION]... [FILE]...",description:"Format input into multiple columns. By default, fills rows first. Use -t to create a table based on whitespace-delimited input.",options:["-t Create a table (determine columns from input)","-s SEP Input field delimiter (default: whitespace)","-o SEP Output field delimiter (default: two spaces)","-c WIDTH Output width for fill mode (default: 80)","-n Don't merge multiple adjacent delimiters"],examples:["ls | column # Fill columns with ls output","cat data | column -t # Format as table","column -t -s ',' file # Format CSV as table","column -c 40 file # Fill 40-char wide columns"]},vm={table:{short:"t",long:"table",type:"boolean"},separator:{short:"s",type:"string"},outputSep:{short:"o",type:"string"},width:{short:"c",type:"number",default:80},noMerge:{short:"n",type:"boolean"}};Fm={name:"column",execute:async(t,e)=>{if(N(t))return k(Im);let r=H("column",t,vm);if(!r.ok)return r.error;let{table:n,separator:s,outputSep:i,width:o,noMerge:a}=r.result.flags,l=r.result.positional,c=i??" ",u;if(l.length===0)u=e.stdin??"";else{let m=[];for(let g of l)if(g==="-")m.push(e.stdin??"");else{let w=e.fs.resolvePath(e.cwd,g),E=await e.fs.readFile(w);if(E===null)return{exitCode:1,stdout:"",stderr:`column: ${g}: No such file or directory
382
382
  `};m.push(E)}u=m.join("")}if(u===""||u.trim()==="")return{exitCode:0,stdout:"",stderr:""};let f=u.split(`
383
383
  `);u.endsWith(`
384
- `)&&f[f.length-1]===""&&f.pop();let d=f.filter(m=>m.trim().length>0),h;if(n){let m=d.map(g=>Va(g,s,a));h=am(m,c)}else{let m=[];for(let g of d){let w=Va(g,s,a);m.push(...w)}h=lm(m,o,c)}return h.length>0&&(h+=`
385
- `),{exitCode:0,stdout:h,stderr:""}}}});var Qa={};R(Qa,{join:()=>hm});function fm(t,e){return e?t.split(e):t.split(/[ \t]+/).filter(r=>r.length>0)}function pm(t,e,r,n){let s=fm(t,e),i=s[r-1]??"";return n&&(i=i.toLowerCase()),{fields:s,joinKey:i,original:t}}function ts(t,e,r){let n=r.separator??" ";if(r.outputFormat){let o=[];for(let{file:a,field:l}of r.outputFormat){let c=a===1?t:e;c&&l===0?o.push(c.joinKey):c&&c.fields[l-1]!==void 0?o.push(c.fields[l-1]):o.push(r.emptyString)}return o.join(n)}let s=[],i=t?.joinKey??e?.joinKey??"";if(s.push(i),t)for(let o=0;o<t.fields.length;o++)o!==r.field1-1&&s.push(t.fields[o]);if(e)for(let o=0;o<e.fields.length;o++)o!==r.field2-1&&s.push(e.fields[o]);return s.join(n)}function dm(t){let e=t.split(","),r=[];for(let n of e){let s=n.trim().match(/^(\d+)\.(\d+)$/);if(!s)return null;let i=Number.parseInt(s[1],10),o=Number.parseInt(s[2],10);if(i!==1&&i!==2)return null;r.push({file:i,field:o})}return r}var um,hm,Xa=C(()=>{"use strict";L();um={name:"join",summary:"join lines of two files on a common field",usage:"join [OPTION]... FILE1 FILE2",description:"For each pair of input lines with identical join fields, write a line to standard output. The default join field is the first, delimited by blanks.",options:["-1 FIELD Join on this FIELD of file 1 (default: 1)","-2 FIELD Join on this FIELD of file 2 (default: 1)","-t CHAR Use CHAR as input and output field separator","-a FILENUM Also print unpairable lines from file FILENUM (1 or 2)","-v FILENUM Like -a but only output unpairable lines","-e STRING Replace missing fields with STRING","-o FORMAT Output format (comma-separated list of FILENUM.FIELD)","-i Ignore case when comparing fields"],examples:["join file1 file2 # Join on first field","join -1 2 -2 1 file1 file2 # Join file1 col 2 with file2 col 1","join -t ',' file1.csv file2.csv # Join CSV files","join -a 1 file1 file2 # Left outer join"]};hm={name:"join",execute:async(t,e)=>{if(N(t))return k(um);let r={field1:1,field2:1,separator:null,printUnpairable:new Set,onlyUnpairable:new Set,emptyString:"",outputFormat:null,ignoreCase:!1},n=[],s=0;for(;s<t.length;){let p=t[s];if(p==="-1"&&s+1<t.length){let d=Number.parseInt(t[s+1],10);if(Number.isNaN(d)||d<1)return{exitCode:1,stdout:"",stderr:`join: invalid field number: '${t[s+1]}'
386
- `};r.field1=d,s+=2}else if(p==="-2"&&s+1<t.length){let d=Number.parseInt(t[s+1],10);if(Number.isNaN(d)||d<1)return{exitCode:1,stdout:"",stderr:`join: invalid field number: '${t[s+1]}'
387
- `};r.field2=d,s+=2}else if((p==="-t"||p==="--field-separator")&&s+1<t.length)r.separator=t[s+1],s+=2;else if(p.startsWith("-t")&&p.length>2)r.separator=p.slice(2),s++;else if(p==="-a"&&s+1<t.length){let d=Number.parseInt(t[s+1],10);if(d!==1&&d!==2)return{exitCode:1,stdout:"",stderr:`join: invalid file number: '${t[s+1]}'
388
- `};r.printUnpairable.add(d),s+=2}else if(p.match(/^-a[12]$/))r.printUnpairable.add(Number.parseInt(p[2],10)),s++;else if(p==="-v"&&s+1<t.length){let d=Number.parseInt(t[s+1],10);if(d!==1&&d!==2)return{exitCode:1,stdout:"",stderr:`join: invalid file number: '${t[s+1]}'
389
- `};r.onlyUnpairable.add(d),s+=2}else if(p.match(/^-v[12]$/))r.onlyUnpairable.add(Number.parseInt(p[2],10)),s++;else if(p==="-e"&&s+1<t.length)r.emptyString=t[s+1],s+=2;else if(p==="-o"&&s+1<t.length){let d=dm(t[s+1]);if(!d)return{exitCode:1,stdout:"",stderr:`join: invalid field spec: '${t[s+1]}'
390
- `};r.outputFormat=d,s+=2}else if(p==="-i"||p==="--ignore-case")r.ignoreCase=!0,s++;else if(p==="--"){n.push(...t.slice(s+1));break}else{if(p.startsWith("-")&&p!=="-")return P("join",p);n.push(p),s++}}if(n.length!==2)return{exitCode:1,stdout:"",stderr:n.length<2?`join: missing file operand
384
+ `)&&f[f.length-1]===""&&f.pop();let p=f.filter(m=>m.trim().length>0),h;if(n){let m=p.map(g=>dl(g,s,a));h=Rm(m,c)}else{let m=[];for(let g of p){let w=dl(g,s,a);m.push(...w)}h=Pm(m,o,c)}return h.length>0&&(h+=`
385
+ `),{exitCode:0,stdout:h,stderr:""}}}});var ml={};$(ml,{join:()=>Mm});function Om(t,e){return e?t.split(e):t.split(/[ \t]+/).filter(r=>r.length>0)}function Dm(t,e,r,n){let s=Om(t,e),i=s[r-1]??"";return n&&(i=i.toLowerCase()),{fields:s,joinKey:i,original:t}}function ws(t,e,r){let n=r.separator??" ";if(r.outputFormat){let o=[];for(let{file:a,field:l}of r.outputFormat){let c=a===1?t:e;c&&l===0?o.push(c.joinKey):c&&c.fields[l-1]!==void 0?o.push(c.fields[l-1]):o.push(r.emptyString)}return o.join(n)}let s=[],i=t?.joinKey??e?.joinKey??"";if(s.push(i),t)for(let o=0;o<t.fields.length;o++)o!==r.field1-1&&s.push(t.fields[o]);if(e)for(let o=0;o<e.fields.length;o++)o!==r.field2-1&&s.push(e.fields[o]);return s.join(n)}function Lm(t){let e=t.split(","),r=[];for(let n of e){let s=n.trim().match(/^(\d+)\.(\d+)$/);if(!s)return null;let i=Number.parseInt(s[1],10),o=Number.parseInt(s[2],10);if(i!==1&&i!==2)return null;r.push({file:i,field:o})}return r}var Tm,Mm,gl=C(()=>{"use strict";L();Tm={name:"join",summary:"join lines of two files on a common field",usage:"join [OPTION]... FILE1 FILE2",description:"For each pair of input lines with identical join fields, write a line to standard output. The default join field is the first, delimited by blanks.",options:["-1 FIELD Join on this FIELD of file 1 (default: 1)","-2 FIELD Join on this FIELD of file 2 (default: 1)","-t CHAR Use CHAR as input and output field separator","-a FILENUM Also print unpairable lines from file FILENUM (1 or 2)","-v FILENUM Like -a but only output unpairable lines","-e STRING Replace missing fields with STRING","-o FORMAT Output format (comma-separated list of FILENUM.FIELD)","-i Ignore case when comparing fields"],examples:["join file1 file2 # Join on first field","join -1 2 -2 1 file1 file2 # Join file1 col 2 with file2 col 1","join -t ',' file1.csv file2.csv # Join CSV files","join -a 1 file1 file2 # Left outer join"]};Mm={name:"join",execute:async(t,e)=>{if(N(t))return k(Tm);let r={field1:1,field2:1,separator:null,printUnpairable:new Set,onlyUnpairable:new Set,emptyString:"",outputFormat:null,ignoreCase:!1},n=[],s=0;for(;s<t.length;){let d=t[s];if(d==="-1"&&s+1<t.length){let p=Number.parseInt(t[s+1],10);if(Number.isNaN(p)||p<1)return{exitCode:1,stdout:"",stderr:`join: invalid field number: '${t[s+1]}'
386
+ `};r.field1=p,s+=2}else if(d==="-2"&&s+1<t.length){let p=Number.parseInt(t[s+1],10);if(Number.isNaN(p)||p<1)return{exitCode:1,stdout:"",stderr:`join: invalid field number: '${t[s+1]}'
387
+ `};r.field2=p,s+=2}else if((d==="-t"||d==="--field-separator")&&s+1<t.length)r.separator=t[s+1],s+=2;else if(d.startsWith("-t")&&d.length>2)r.separator=d.slice(2),s++;else if(d==="-a"&&s+1<t.length){let p=Number.parseInt(t[s+1],10);if(p!==1&&p!==2)return{exitCode:1,stdout:"",stderr:`join: invalid file number: '${t[s+1]}'
388
+ `};r.printUnpairable.add(p),s+=2}else if(d.match(/^-a[12]$/))r.printUnpairable.add(Number.parseInt(d[2],10)),s++;else if(d==="-v"&&s+1<t.length){let p=Number.parseInt(t[s+1],10);if(p!==1&&p!==2)return{exitCode:1,stdout:"",stderr:`join: invalid file number: '${t[s+1]}'
389
+ `};r.onlyUnpairable.add(p),s+=2}else if(d.match(/^-v[12]$/))r.onlyUnpairable.add(Number.parseInt(d[2],10)),s++;else if(d==="-e"&&s+1<t.length)r.emptyString=t[s+1],s+=2;else if(d==="-o"&&s+1<t.length){let p=Lm(t[s+1]);if(!p)return{exitCode:1,stdout:"",stderr:`join: invalid field spec: '${t[s+1]}'
390
+ `};r.outputFormat=p,s+=2}else if(d==="-i"||d==="--ignore-case")r.ignoreCase=!0,s++;else if(d==="--"){n.push(...t.slice(s+1));break}else{if(d.startsWith("-")&&d!=="-")return R("join",d);n.push(d),s++}}if(n.length!==2)return{exitCode:1,stdout:"",stderr:n.length<2?`join: missing file operand
391
391
  `:`join: extra operand
392
- `};let i=[];for(let p of n)if(p==="-")i.push(e.stdin??"");else{let d=e.fs.resolvePath(e.cwd,p),h=await e.fs.readFile(d);if(h===null)return{exitCode:1,stdout:"",stderr:`join: ${p}: No such file or directory
393
- `};i.push(h)}let o=(p,d)=>{let h=p.split(`
394
- `);return p.endsWith(`
395
- `)&&h[h.length-1]===""&&h.pop(),h.filter(m=>m.length>0).map(m=>pm(m,r.separator,d,r.ignoreCase))},a=o(i[0],r.field1),l=o(i[1],r.field2),c=new Map;for(let p of l){let d=c.get(p.joinKey);d?d.push(p):c.set(p.joinKey,[p])}let u=[],f=new Set;for(let p of a){let d=c.get(p.joinKey);if(d&&d.length>0){if(f.add(p.joinKey),r.onlyUnpairable.size===0)for(let h of d)u.push(ts(p,h,r))}else(r.printUnpairable.has(1)||r.onlyUnpairable.has(1))&&u.push(ts(p,null,r))}if(r.printUnpairable.has(2)||r.onlyUnpairable.has(2))for(let p of l)f.has(p.joinKey)||u.push(ts(null,p,r));return{exitCode:0,stdout:u.length>0?`${u.join(`
392
+ `};let i=[];for(let d of n)if(d==="-")i.push(e.stdin??"");else{let p=e.fs.resolvePath(e.cwd,d),h=await e.fs.readFile(p);if(h===null)return{exitCode:1,stdout:"",stderr:`join: ${d}: No such file or directory
393
+ `};i.push(h)}let o=(d,p)=>{let h=d.split(`
394
+ `);return d.endsWith(`
395
+ `)&&h[h.length-1]===""&&h.pop(),h.filter(m=>m.length>0).map(m=>Dm(m,r.separator,p,r.ignoreCase))},a=o(i[0],r.field1),l=o(i[1],r.field2),c=new Map;for(let d of l){let p=c.get(d.joinKey);p?p.push(d):c.set(d.joinKey,[d])}let u=[],f=new Set;for(let d of a){let p=c.get(d.joinKey);if(p&&p.length>0){if(f.add(d.joinKey),r.onlyUnpairable.size===0)for(let h of p)u.push(ws(d,h,r))}else(r.printUnpairable.has(1)||r.onlyUnpairable.has(1))&&u.push(ws(d,null,r))}if(r.printUnpairable.has(2)||r.onlyUnpairable.has(2))for(let d of l)f.has(d.joinKey)||u.push(ws(null,d,r));return{exitCode:0,stdout:u.length>0?`${u.join(`
396
396
  `)}
397
- `:"",stderr:""}}}});var Ja={};R(Ja,{teeCommand:()=>ym});var mm,gm,ym,Ya=C(()=>{"use strict";ye();L();mm={name:"tee",summary:"read from stdin and write to stdout and files",usage:"tee [OPTION]... [FILE]...",options:["-a, --append append to the given FILEs, do not overwrite"," --help display this help and exit"]},gm={append:{short:"a",long:"append",type:"boolean"}},ym={name:"tee",async execute(t,e){if(N(t))return k(mm);let r=z("tee",t,gm);if(!r.ok)return r.error;let{append:n}=r.result.flags,s=r.result.positional,i=e.stdin,o="",a=0;for(let l of s)try{let c=e.fs.resolvePath(e.cwd,l);n?await e.fs.appendFile(c,i):await e.fs.writeFile(c,i)}catch{o+=`tee: ${l}: No such file or directory
398
- `,a=1}return{stdout:i,stderr:o,exitCode:a}}}});function ot(t,e){switch(t.type){case"name":return{matches:De(e.name,t.pattern,t.ignoreCase),pruned:!1,printed:!1};case"path":return{matches:De(e.relativePath,t.pattern,t.ignoreCase),pruned:!1,printed:!1};case"regex":try{let r=t.ignoreCase?"i":"";return{matches:new RegExp(t.pattern,r).test(e.relativePath),pruned:!1,printed:!1}}catch{return{matches:!1,pruned:!1,printed:!1}}case"type":return t.fileType==="f"?{matches:e.isFile,pruned:!1,printed:!1}:t.fileType==="d"?{matches:e.isDirectory,pruned:!1,printed:!1}:{matches:!1,pruned:!1,printed:!1};case"empty":return{matches:e.isEmpty,pruned:!1,printed:!1};case"mtime":{let n=(Date.now()-e.mtime)/(1e3*60*60*24),s;return t.comparison==="more"?s=n>t.days:t.comparison==="less"?s=n<t.days:s=Math.floor(n)===t.days,{matches:s,pruned:!1,printed:!1}}case"newer":{let r=e.newerRefTimes.get(t.refPath);return r===void 0?{matches:!1,pruned:!1,printed:!1}:{matches:e.mtime>r,pruned:!1,printed:!1}}case"size":{let r=t.value;switch(t.unit){case"c":r=t.value;break;case"k":r=t.value*1024;break;case"M":r=t.value*1024*1024;break;case"G":r=t.value*1024*1024*1024;break;case"b":r=t.value*512;break}let n;return t.comparison==="more"?n=e.size>r:t.comparison==="less"?n=e.size<r:t.unit==="b"?n=Math.ceil(e.size/512)===t.value:n=e.size===r,{matches:n,pruned:!1,printed:!1}}case"perm":{let r=e.mode&511,n=t.mode&511,s;return t.matchType==="exact"?s=r===n:t.matchType==="all"?s=(r&n)===n:s=(r&n)!==0,{matches:s,pruned:!1,printed:!1}}case"prune":return{matches:!0,pruned:!0,printed:!1};case"print":return{matches:!0,pruned:!1,printed:!0};case"not":{let r=ot(t.expr,e);return{matches:!r.matches,pruned:r.pruned,printed:!1}}case"and":{let r=ot(t.left,e);if(!r.matches)return{matches:!1,pruned:r.pruned,printed:!1};let n=ot(t.right,e);return{matches:n.matches,pruned:r.pruned||n.pruned,printed:r.printed||n.printed}}case"or":{let r=ot(t.left,e);if(r.matches)return r;let n=ot(t.right,e);return{matches:n.matches,pruned:r.pruned||n.pruned,printed:n.printed}}}}function lr(t){if(!t)return!1;switch(t.type){case"name":case"path":case"regex":case"type":case"prune":case"print":return!1;case"empty":case"mtime":case"newer":case"size":case"perm":return!0;case"not":return lr(t.expr);case"and":case"or":return lr(t.left)||lr(t.right)}}function el(t){let e=[],r=n=>{n&&(n.type==="newer"?e.push(n.refPath):n.type==="not"?r(n.expr):(n.type==="and"||n.type==="or")&&(r(n.left),r(n.right)))};return r(t),e}var tl=C(()=>{"use strict";Wn()});function rl(t,e){let r=[],n=[],s=e;for(;s<t.length;){let o=t[s];if(o==="("||o==="\\("){r.push({type:"lparen"}),s++;continue}if(o===")"||o==="\\)"){r.push({type:"rparen"}),s++;continue}if(o==="-name"&&s+1<t.length)r.push({type:"expr",expr:{type:"name",pattern:t[++s]}});else if(o==="-iname"&&s+1<t.length)r.push({type:"expr",expr:{type:"name",pattern:t[++s],ignoreCase:!0}});else if(o==="-path"&&s+1<t.length)r.push({type:"expr",expr:{type:"path",pattern:t[++s]}});else if(o==="-ipath"&&s+1<t.length)r.push({type:"expr",expr:{type:"path",pattern:t[++s],ignoreCase:!0}});else if(o==="-regex"&&s+1<t.length)r.push({type:"expr",expr:{type:"regex",pattern:t[++s]}});else if(o==="-iregex"&&s+1<t.length)r.push({type:"expr",expr:{type:"regex",pattern:t[++s],ignoreCase:!0}});else if(o==="-type"&&s+1<t.length){let a=t[++s];if(a==="f"||a==="d")r.push({type:"expr",expr:{type:"type",fileType:a}});else return{expr:null,pathIndex:s,error:`find: Unknown argument to -type: ${a}
399
- `,actions:[]}}else if(o==="-empty")r.push({type:"expr",expr:{type:"empty"}});else if(o==="-mtime"&&s+1<t.length){let a=t[++s],l="exact",c=a;a.startsWith("+")?(l="more",c=a.slice(1)):a.startsWith("-")&&(l="less",c=a.slice(1));let u=parseInt(c,10);Number.isNaN(u)||r.push({type:"expr",expr:{type:"mtime",days:u,comparison:l}})}else if(o==="-newer"&&s+1<t.length){let a=t[++s];r.push({type:"expr",expr:{type:"newer",refPath:a}})}else if(o==="-size"&&s+1<t.length){let a=t[++s],l="exact",c=a;a.startsWith("+")?(l="more",c=a.slice(1)):a.startsWith("-")&&(l="less",c=a.slice(1));let u=c.match(/^(\d+)([ckMGb])?$/);if(u){let f=parseInt(u[1],10),p=u[2]||"b";r.push({type:"expr",expr:{type:"size",value:f,unit:p,comparison:l}})}}else if(o==="-perm"&&s+1<t.length){let a=t[++s],l="exact",c=a;a.startsWith("-")?(l="all",c=a.slice(1)):a.startsWith("/")&&(l="any",c=a.slice(1));let u=parseInt(c,8);Number.isNaN(u)||r.push({type:"expr",expr:{type:"perm",mode:u,matchType:l}})}else if(o==="-prune")r.push({type:"expr",expr:{type:"prune"}});else if(o==="-not"||o==="!")r.push({type:"not"});else if(o==="-o"||o==="-or")r.push({type:"op",op:"or"});else if(o==="-a"||o==="-and")r.push({type:"op",op:"and"});else if(o==="-maxdepth"||o==="-mindepth")s++;else if(o!=="-depth")if(o==="-exec"){let a=[];for(s++;s<t.length&&t[s]!==";"&&t[s]!=="+";)a.push(t[s]),s++;if(s>=t.length)return{expr:null,pathIndex:s,error:"find: missing argument to `-exec'\n",actions:[]};let l=t[s]==="+";n.push({type:"exec",command:a,batchMode:l})}else if(o==="-print")r.push({type:"expr",expr:{type:"print"}}),n.push({type:"print"});else if(o==="-print0")n.push({type:"print0"});else if(o==="-printf"&&s+1<t.length){let a=t[++s];n.push({type:"printf",format:a})}else if(o==="-delete")n.push({type:"delete"});else{if(o.startsWith("-"))return{expr:null,pathIndex:s,error:`find: unknown predicate '${o}'
400
- `,actions:[]};if(r.length===0){s++;continue}break}s++}if(r.length===0)return{expr:null,pathIndex:s,actions:n};let i=xm(r);return i.error?{expr:null,pathIndex:s,error:i.error,actions:n}:{expr:i.expr,pathIndex:s,actions:n}}function xm(t){let e=0;function r(){let a=n();if(!a)return null;for(;e<t.length;){let l=t[e];if(l.type==="op"&&l.op==="or"){e++;let c=n();if(!c)return a;a={type:"or",left:a,right:c}}else break}return a}function n(){let a=s();if(!a)return null;for(;e<t.length;){let l=t[e];if(l.type==="op"&&l.op==="and"){e++;let c=s();if(!c)return a;a={type:"and",left:a,right:c}}else if(l.type==="expr"||l.type==="not"||l.type==="lparen"){let c=s();if(!c)return a;a={type:"and",left:a,right:c}}else break}return a}function s(){if(e<t.length&&t[e].type==="not"){e++;let a=s();return a?{type:"not",expr:a}:null}return i()}function i(){if(e>=t.length)return null;let a=t[e];if(a.type==="lparen"){e++;let l=r();return e<t.length&&t[e].type==="rparen"&&e++,l}return a.type==="expr"?(e++,a.expr):(a.type==="rparen",null)}return{expr:r()}}var nl=C(()=>{"use strict"});var sl={};R(sl,{findCommand:()=>bm});function Sm(t,e){let r=Nr(t),n="",s=0;for(;s<r.length;)if(r[s]==="%"&&s+1<r.length){if(s++,r[s]==="%"){n+="%",s++;continue}let[i,o,a]=Mi(r,s);if(s+=a,s>=r.length){n+="%";break}let l=r[s],c;switch(l){case"f":c=e.name,s++;break;case"h":{let u=e.path.lastIndexOf("/");c=u>0?e.path.slice(0,u):".",s++;break}case"p":c=e.path,s++;break;case"P":{let u=e.startingPoint;e.path===u?c="":e.path.startsWith(`${u}/`)?c=e.path.slice(u.length+1):u==="."&&e.path.startsWith("./")?c=e.path.slice(2):c=e.path,s++;break}case"s":c=String(e.size),s++;break;case"d":c=String(e.depth),s++;break;case"m":c=(e.mode&511).toString(8),s++;break;case"M":c=Cm(e.mode,e.isDirectory),s++;break;case"t":{let u=new Date(e.mtime);c=Am(u),s++;break}case"T":{if(s+1<r.length){let u=r[s+1],f=new Date(e.mtime);c=km(f,u),s+=2}else c="%T",s++;break}default:n+=`%${i!==0||o!==-1?`${i}.${o}`:""}${l}`,s++;continue}n+=kr(c,i,o)}else n+=r[s],s++;return n}function Cm(t,e){let r=t&511,n=e?"d":"-";return n+=r&256?"r":"-",n+=r&128?"w":"-",n+=r&64?"x":"-",n+=r&32?"r":"-",n+=r&16?"w":"-",n+=r&8?"x":"-",n+=r&4?"r":"-",n+=r&2?"w":"-",n+=r&1?"x":"-",n}function Am(t){let e=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],r=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],n=e[t.getDay()],s=r[t.getMonth()],i=String(t.getDate()).padStart(2," "),o=String(t.getHours()).padStart(2,"0"),a=String(t.getMinutes()).padStart(2,"0"),l=String(t.getSeconds()).padStart(2,"0"),c=t.getFullYear();return`${n} ${s} ${i} ${o}:${a}:${l} ${c}`}function km(t,e){switch(e){case"@":return String(t.getTime()/1e3);case"Y":return String(t.getFullYear());case"m":return String(t.getMonth()+1).padStart(2,"0");case"d":return String(t.getDate()).padStart(2,"0");case"H":return String(t.getHours()).padStart(2,"0");case"M":return String(t.getMinutes()).padStart(2,"0");case"S":return String(t.getSeconds()).padStart(2,"0");case"T":return`${String(t.getHours()).padStart(2,"0")}:${String(t.getMinutes()).padStart(2,"0")}:${String(t.getSeconds()).padStart(2,"0")}`;case"F":return`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,"0")}-${String(t.getDate()).padStart(2,"0")}`;default:return`%T${e}`}}var wm,Em,bm,il=C(()=>{"use strict";ht();L();Mn();tl();nl();wm={name:"find",summary:"search for files in a directory hierarchy",usage:"find [path...] [expression]",options:["-name PATTERN file name matches shell pattern PATTERN","-iname PATTERN like -name but case insensitive","-path PATTERN file path matches shell pattern PATTERN","-ipath PATTERN like -path but case insensitive","-regex PATTERN file path matches regular expression PATTERN","-iregex PATTERN like -regex but case insensitive","-type TYPE file is of type: f (regular file), d (directory)","-empty file is empty or directory is empty","-mtime N file's data was modified N*24 hours ago","-newer FILE file was modified more recently than FILE","-size N[ckMGb] file uses N units of space (c=bytes, k=KB, M=MB, G=GB, b=512B blocks)","-perm MODE file's permission bits are exactly MODE (octal)","-perm -MODE all permission bits MODE are set","-perm /MODE any permission bits MODE are set","-maxdepth LEVELS descend at most LEVELS directories","-mindepth LEVELS do not apply tests at levels less than LEVELS","-depth process directory contents before directory itself","-prune do not descend into this directory","-not, ! negate the following expression","-a, -and logical AND (default)","-o, -or logical OR","-exec CMD {} ; execute CMD on each file ({} is replaced by filename)","-exec CMD {} + execute CMD with multiple files at once","-print print the full file name (default action)","-print0 print the full file name followed by a null character","-printf FORMAT print FORMAT with directives: %f %h %p %P %s %d %m %M %t","-delete delete found files/directories"," --help display this help and exit"]},Em=new Set(["-name","-iname","-path","-ipath","-regex","-iregex","-type","-maxdepth","-mindepth","-mtime","-newer","-size","-perm"]),bm={name:"find",async execute(t,e){if(N(t))return k(wm);let r=[],n=null,s=null,i=!1,o=!1;for(let v=0;v<t.length;v++){let $=t[v];if($==="-maxdepth"&&v+1<t.length)o=!0,n=parseInt(t[++v],10);else if($==="-mindepth"&&v+1<t.length)o=!0,s=parseInt(t[++v],10);else if($==="-depth")o=!0,i=!0;else if($==="-exec")for(o=!0,v++;v<t.length&&t[v]!==";"&&t[v]!=="+";)v++;else!$.startsWith("-")&&$!==";"&&$!=="+"&&$!=="("&&$!==")"&&$!=="\\("&&$!=="\\)"&&$!=="!"?o||r.push($):Em.has($)?(o=!0,v++):($.startsWith("-")||$==="("||$==="\\("||$==="!")&&(o=!0)}r.length===0&&r.push(".");let{expr:a,error:l,actions:c}=rl(t,0);if(l)return{stdout:"",stderr:l,exitCode:1};let u=c.some(v=>v.type==="print"),f=c.length===0,p=[],d=c.some(v=>v.type==="printf"),h=[],m="",g=0,w=el(a),E=new Map;for(let v of w){let $=e.fs.resolvePath(e.cwd,v);try{let V=await e.fs.stat($);E.set(v,V.mtime?.getTime()??Date.now())}catch{}}let b=lr(a)||d,S=typeof e.fs.readdirWithFileTypes=="function";for(let v of r){let K=function(H){let X=s===null||H.depth>=s,Ce=!1;if(X&&a!==null){let ue={name:H.name,relativePath:H.relativePath,isFile:H.isFile,isDirectory:H.isDirectory,isEmpty:H.isEmpty,mtime:H.stat?.mtime?.getTime()??Date.now(),size:H.stat?.size??0,mode:H.stat?.mode??420,newerRefTimes:E},M=ot(a,ue);X=M.matches,Ce=u?M.printed:X}else X&&(Ce=!0);return Ce?{print:!0,printfData:d?{path:H.relativePath,name:H.name,size:H.stat?.size??0,mtime:H.stat?.mtime?.getTime()??Date.now(),mode:H.stat?.mode??420,isDirectory:H.isDirectory,depth:H.depth,startingPoint:v}:null}:{print:!1,printfData:null}};var D=K;v.length>1&&v.endsWith("/")&&(v=v.slice(0,-1));let $=e.fs.resolvePath(e.cwd,v);try{await e.fs.stat($)}catch{m+=`find: ${v}: No such file or directory
401
- `,g=1;continue}async function V(H){let{path:ce,depth:X,typeInfo:Ce}=H;if(n!==null&&X>n)return null;let ve,ue,M;if(Ce&&!b)ve=Ce.isFile,ue=Ce.isDirectory;else{try{M=await e.fs.stat(ce)}catch{return null}if(!M)return null;ve=M.isFile,ue=M.isDirectory}let W;ce===$?W=v.split("/").pop()||v:W=ce.split("/").pop()||"";let se=ce===$?v:v==="."?`./${ce.slice($==="/"?$.length:$.length+1)}`:v+ce.slice($.length),G=[],ne=null,F=null;ue&&(S&&e.fs.readdirWithFileTypes?(ne=await e.fs.readdirWithFileTypes(ce),G=ne.map((Te,Ft)=>({path:ce==="/"?`/${Te.name}`:`${ce}/${Te.name}`,depth:X+1,typeInfo:{isFile:Te.isFile,isDirectory:Te.isDirectory},resultIndex:Ft})),F=ne.map(Te=>Te.name)):(F=await e.fs.readdir(ce),G=F.map((Te,Ft)=>({path:ce==="/"?`/${Te}`:`${ce}/${Te}`,depth:X+1,resultIndex:Ft}))));let fe=ve?(M?.size??0)===0:F!==null&&F.length===0,dt=!1;if(!i&&a!==null){let Te={name:W,relativePath:se,isFile:ve,isDirectory:ue,isEmpty:fe,mtime:M?.mtime?.getTime()??Date.now(),size:M?.size??0,mode:M?.mode??420,newerRefTimes:E};dt=ot(a,Te).pruned}return{relativePath:se,name:W,isFile:ve,isDirectory:ue,isEmpty:fe,stat:M,depth:X,children:dt?[]:G,pruned:dt}}async function Y(){let H={paths:[],printfData:[]};if(i){let ue=function(M){let W={paths:[],printfData:[]},se=X[M];if(!se)return W;for(let F of se.childIndices){let fe=ue(F);W.paths.push(...fe.paths),W.printfData.push(...fe.printfData)}let{print:G,printfData:ne}=K(se.node);return G&&(W.paths.push(se.node.relativePath),ne&&W.printfData.push(ne)),W};var ce=ue;let X=[],Ce=[{item:{path:$,depth:0,resultIndex:0},parentIndex:-1,childOrderInParent:0}],ve=new Map;for(;Ce.length>0;){let M=Ce.splice(0,100),W=await Promise.all(M.map(se=>V(se.item)));for(let se=0;se<M.length;se++){let G=W[se],ne=M[se];if(!G)continue;let F=X.length;if(ne.parentIndex>=0){let fe=ve.get(ne.parentIndex)||[];fe.push(F),ve.set(ne.parentIndex,fe)}X.push({node:G,parentIndex:ne.parentIndex,childIndices:[]});for(let fe=0;fe<G.children.length;fe++)Ce.push({item:G.children[fe],parentIndex:F,childOrderInParent:fe})}}for(let[M,W]of ve)M>=0&&M<X.length&&(X[M].childIndices=W);if(X.length>0){let M=ue(0);H.paths.push(...M.paths),H.printfData.push(...M.printfData)}}else{async function X(ve){let ue={paths:[],printfData:[]},M=await V(ve);if(!M)return ue;let{print:W,printfData:se}=K(M);W&&(ue.paths.push(M.relativePath),se&&ue.printfData.push(se));for(let G=0;G<M.children.length;G+=100){let ne=M.children.slice(G,G+100),F=await Promise.all(ne.map(X));for(let fe of F)ue.paths.push(...fe.paths),ue.printfData.push(...fe.printfData)}return ue}let Ce=await X({path:$,depth:0,resultIndex:0});H.paths.push(...Ce.paths),H.printfData.push(...Ce.printfData)}return H}let re=await Y();p.push(...re.paths),h.push(...re.printfData)}let I="";if(c.length>0)for(let v of c)switch(v.type){case"print":I+=p.length>0?`${p.join(`
397
+ `:"",stderr:""}}}});var yl={};$(yl,{teeCommand:()=>Wm});var _m,Bm,Wm,xl=C(()=>{"use strict";Ee();L();_m={name:"tee",summary:"read from stdin and write to stdout and files",usage:"tee [OPTION]... [FILE]...",options:["-a, --append append to the given FILEs, do not overwrite"," --help display this help and exit"]},Bm={append:{short:"a",long:"append",type:"boolean"}},Wm={name:"tee",async execute(t,e){if(N(t))return k(_m);let r=H("tee",t,Bm);if(!r.ok)return r.error;let{append:n}=r.result.flags,s=r.result.positional,i=e.stdin,o="",a=0;for(let l of s)try{let c=e.fs.resolvePath(e.cwd,l);n?await e.fs.appendFile(c,i):await e.fs.writeFile(c,i)}catch{o+=`tee: ${l}: No such file or directory
398
+ `,a=1}return{stdout:i,stderr:o,exitCode:a}}}});function Xe(t,e){switch(t.type){case"name":{let r=t.pattern,n=r.match(/^\*(\.[a-zA-Z0-9]+)$/);if(n){let s=n[1],i=e.name;if(t.ignoreCase){if(!i.toLowerCase().endsWith(s.toLowerCase()))return{matches:!1,pruned:!1,printed:!1}}else if(!i.endsWith(s))return{matches:!1,pruned:!1,printed:!1};return{matches:!0,pruned:!1,printed:!1}}return{matches:Oe(e.name,r,t.ignoreCase),pruned:!1,printed:!1}}case"path":{let r=t.pattern,n=e.relativePath,s=r.split("/");for(let o=0;o<s.length-1;o++){let a=s[o];if(a&&a!=="."&&a!==".."&&!a.includes("*")&&!a.includes("?")&&!a.includes("[")){let l=`/${a}/`;if(t.ignoreCase){if(!n.toLowerCase().includes(l.toLowerCase()))return{matches:!1,pruned:!1,printed:!1}}else if(!n.includes(l))return{matches:!1,pruned:!1,printed:!1}}}let i=r.match(/\*(\.[a-zA-Z0-9]+)$/);if(i){let o=i[1];if(t.ignoreCase){if(!n.toLowerCase().endsWith(o.toLowerCase()))return{matches:!1,pruned:!1,printed:!1}}else if(!n.endsWith(o))return{matches:!1,pruned:!1,printed:!1}}return{matches:Oe(n,r,t.ignoreCase),pruned:!1,printed:!1}}case"regex":try{let r=t.ignoreCase?"i":"";return{matches:new RegExp(t.pattern,r).test(e.relativePath),pruned:!1,printed:!1}}catch{return{matches:!1,pruned:!1,printed:!1}}case"type":return t.fileType==="f"?{matches:e.isFile,pruned:!1,printed:!1}:t.fileType==="d"?{matches:e.isDirectory,pruned:!1,printed:!1}:{matches:!1,pruned:!1,printed:!1};case"empty":return{matches:e.isEmpty,pruned:!1,printed:!1};case"mtime":{let n=(Date.now()-e.mtime)/(1e3*60*60*24),s;return t.comparison==="more"?s=n>t.days:t.comparison==="less"?s=n<t.days:s=Math.floor(n)===t.days,{matches:s,pruned:!1,printed:!1}}case"newer":{let r=e.newerRefTimes.get(t.refPath);return r===void 0?{matches:!1,pruned:!1,printed:!1}:{matches:e.mtime>r,pruned:!1,printed:!1}}case"size":{let r=t.value;switch(t.unit){case"c":r=t.value;break;case"k":r=t.value*1024;break;case"M":r=t.value*1024*1024;break;case"G":r=t.value*1024*1024*1024;break;case"b":r=t.value*512;break}let n;return t.comparison==="more"?n=e.size>r:t.comparison==="less"?n=e.size<r:t.unit==="b"?n=Math.ceil(e.size/512)===t.value:n=e.size===r,{matches:n,pruned:!1,printed:!1}}case"perm":{let r=e.mode&511,n=t.mode&511,s;return t.matchType==="exact"?s=r===n:t.matchType==="all"?s=(r&n)===n:s=(r&n)!==0,{matches:s,pruned:!1,printed:!1}}case"prune":return{matches:!0,pruned:!0,printed:!1};case"print":return{matches:!0,pruned:!1,printed:!0};case"not":{let r=Xe(t.expr,e);return{matches:!r.matches,pruned:r.pruned,printed:!1}}case"and":{let r=Xe(t.left,e);if(!r.matches)return{matches:!1,pruned:r.pruned,printed:!1};let n=Xe(t.right,e);return{matches:n.matches,pruned:r.pruned||n.pruned,printed:r.printed||n.printed}}case"or":{let r=Xe(t.left,e);if(r.matches)return r;let n=Xe(t.right,e);return{matches:n.matches,pruned:r.pruned||n.pruned,printed:n.printed}}}}function br(t){if(!t)return!1;switch(t.type){case"name":case"path":case"regex":case"type":case"prune":case"print":return!1;case"empty":case"mtime":case"newer":case"size":case"perm":return!0;case"not":return br(t.expr);case"and":case"or":return br(t.left)||br(t.right)}}function Sr(t){if(!t)return!1;switch(t.type){case"empty":return!0;case"not":return Sr(t.expr);case"and":case"or":return Sr(t.left)||Sr(t.right);default:return!1}}function wl(t){let e={terminalDirName:null,requiredExtension:null};if(!t)return e;let r=Um(t);if(zm(t)&&r.length===1){let i=r[0].split("/").filter(o=>o.length>0);if(i.length>=2)for(let o=i.length-2;o>=0;o--){let a=i[o];if(!a.includes("*")&&!a.includes("?")&&!a.includes("[")&&a!=="."&&a!==".."){let l=i[o+1];if(l&&(l.includes("*")||l.includes("?"))){e.terminalDirName=a;let c=l.match(/^\*(\.[a-zA-Z0-9]+)$/);c&&(e.requiredExtension=c[1])}break}}}return e}function Um(t){let e=[],r=n=>{n.type==="path"?e.push(n.pattern):n.type==="not"?r(n.expr):(n.type==="and"||n.type==="or")&&(r(n.left),r(n.right))};return r(t),e}function zm(t){let e=r=>r.type==="type"&&r.fileType==="f"?!0:r.type==="not"?e(r.expr):r.type==="and"||r.type==="or"?e(r.left)||e(r.right):!1;return e(t)}function El(t){let e=[],r=n=>{n&&(n.type==="newer"?e.push(n.refPath):n.type==="not"?r(n.expr):(n.type==="and"||n.type==="or")&&(r(n.left),r(n.right)))};return r(t),e}function Cr(t){if(!t)return!0;switch(t.type){case"name":case"path":case"regex":case"type":case"prune":case"print":return!0;case"empty":case"mtime":case"newer":case"size":case"perm":return!1;case"not":return Cr(t.expr);case"and":case"or":return Cr(t.left)&&Cr(t.right)}}function Pt(t,e,r,n,s){switch(t.type){case"name":{let i=t.pattern,o=i.match(/^\*(\.[a-zA-Z0-9]+)$/);if(o){let a=o[1];if(t.ignoreCase){if(!e.toLowerCase().endsWith(a.toLowerCase()))return{matches:!1,pruned:!1,printed:!1}}else if(!e.endsWith(a))return{matches:!1,pruned:!1,printed:!1};return{matches:!0,pruned:!1,printed:!1}}return{matches:Oe(e,i,t.ignoreCase),pruned:!1,printed:!1}}case"path":{let i=t.pattern,o=i.split("/");for(let l=0;l<o.length-1;l++){let c=o[l];if(c&&c!=="."&&c!==".."&&!c.includes("*")&&!c.includes("?")&&!c.includes("[")){let u=`/${c}/`;if(t.ignoreCase){if(!r.toLowerCase().includes(u.toLowerCase()))return{matches:!1,pruned:!1,printed:!1}}else if(!r.includes(u))return{matches:!1,pruned:!1,printed:!1}}}let a=i.match(/\*(\.[a-zA-Z0-9]+)$/);if(a){let l=a[1];if(t.ignoreCase){if(!r.toLowerCase().endsWith(l.toLowerCase()))return{matches:!1,pruned:!1,printed:!1}}else if(!r.endsWith(l))return{matches:!1,pruned:!1,printed:!1}}return{matches:Oe(r,i,t.ignoreCase),pruned:!1,printed:!1}}case"regex":try{let i=t.ignoreCase?"i":"";return{matches:new RegExp(t.pattern,i).test(r),pruned:!1,printed:!1}}catch{return{matches:!1,pruned:!1,printed:!1}}case"type":return t.fileType==="f"?{matches:n,pruned:!1,printed:!1}:t.fileType==="d"?{matches:s,pruned:!1,printed:!1}:{matches:!1,pruned:!1,printed:!1};case"prune":return{matches:!0,pruned:!0,printed:!1};case"print":return{matches:!0,pruned:!1,printed:!0};case"not":{let i=Pt(t.expr,e,r,n,s);return{matches:!i.matches,pruned:i.pruned,printed:!1}}case"and":{let i=Pt(t.left,e,r,n,s);if(!i.matches)return{matches:!1,pruned:i.pruned,printed:!1};let o=Pt(t.right,e,r,n,s);return{matches:o.matches,pruned:i.pruned||o.pruned,printed:i.printed||o.printed}}case"or":{let i=Pt(t.left,e,r,n,s);if(i.matches)return i;let o=Pt(t.right,e,r,n,s);return{matches:o.matches,pruned:i.pruned||o.pruned,printed:o.printed}}default:return{matches:!1,pruned:!1,printed:!1}}}function Ar(t){if(!t)return!1;switch(t.type){case"prune":return!0;case"not":return Ar(t.expr);case"and":case"or":return Ar(t.left)||Ar(t.right);default:return!1}}function gt(t){switch(t.type){case"name":case"path":case"regex":case"type":case"prune":case"print":return!0;case"empty":case"mtime":case"newer":case"size":case"perm":return!1;case"not":return gt(t.expr);case"and":case"or":return gt(t.left)&&gt(t.right)}}function bl(t,e){if(!t||!e.isDirectory)return{shouldPrune:!1};if(!gt(t))return Es(t,e);let r={name:e.name,relativePath:e.relativePath,isFile:e.isFile,isDirectory:e.isDirectory,isEmpty:!1,mtime:0,size:0,mode:0,newerRefTimes:new Map};return{shouldPrune:Xe(t,r).pruned}}function Es(t,e){switch(t.type){case"or":{if(gt(t.left)){let r={name:e.name,relativePath:e.relativePath,isFile:e.isFile,isDirectory:e.isDirectory,isEmpty:!1,mtime:0,size:0,mode:0,newerRefTimes:new Map};if(Xe(t.left,r).pruned)return{shouldPrune:!0}}return Es(t.right,e)}case"and":{if(gt(t.left)&&gt(t.right)){let r={name:e.name,relativePath:e.relativePath,isFile:e.isFile,isDirectory:e.isDirectory,isEmpty:!1,mtime:0,size:0,mode:0,newerRefTimes:new Map};return{shouldPrune:Xe(t,r).pruned}}if(gt(t.left)){let r={name:e.name,relativePath:e.relativePath,isFile:e.isFile,isDirectory:e.isDirectory,isEmpty:!1,mtime:0,size:0,mode:0,newerRefTimes:new Map};return Xe(t.left,r).matches?Es(t.right,e):{shouldPrune:!1}}return{shouldPrune:!1}}case"not":return{shouldPrune:!1};default:return{shouldPrune:!1}}}var Sl=C(()=>{"use strict";ss()});function Cl(t,e){let r=[],n=[],s=e;for(;s<t.length;){let o=t[s];if(o==="("||o==="\\("){r.push({type:"lparen"}),s++;continue}if(o===")"||o==="\\)"){r.push({type:"rparen"}),s++;continue}if(o==="-name"&&s+1<t.length)r.push({type:"expr",expr:{type:"name",pattern:t[++s]}});else if(o==="-iname"&&s+1<t.length)r.push({type:"expr",expr:{type:"name",pattern:t[++s],ignoreCase:!0}});else if(o==="-path"&&s+1<t.length)r.push({type:"expr",expr:{type:"path",pattern:t[++s]}});else if(o==="-ipath"&&s+1<t.length)r.push({type:"expr",expr:{type:"path",pattern:t[++s],ignoreCase:!0}});else if(o==="-regex"&&s+1<t.length)r.push({type:"expr",expr:{type:"regex",pattern:t[++s]}});else if(o==="-iregex"&&s+1<t.length)r.push({type:"expr",expr:{type:"regex",pattern:t[++s],ignoreCase:!0}});else if(o==="-type"&&s+1<t.length){let a=t[++s];if(a==="f"||a==="d")r.push({type:"expr",expr:{type:"type",fileType:a}});else return{expr:null,pathIndex:s,error:`find: Unknown argument to -type: ${a}
399
+ `,actions:[]}}else if(o==="-empty")r.push({type:"expr",expr:{type:"empty"}});else if(o==="-mtime"&&s+1<t.length){let a=t[++s],l="exact",c=a;a.startsWith("+")?(l="more",c=a.slice(1)):a.startsWith("-")&&(l="less",c=a.slice(1));let u=parseInt(c,10);Number.isNaN(u)||r.push({type:"expr",expr:{type:"mtime",days:u,comparison:l}})}else if(o==="-newer"&&s+1<t.length){let a=t[++s];r.push({type:"expr",expr:{type:"newer",refPath:a}})}else if(o==="-size"&&s+1<t.length){let a=t[++s],l="exact",c=a;a.startsWith("+")?(l="more",c=a.slice(1)):a.startsWith("-")&&(l="less",c=a.slice(1));let u=c.match(/^(\d+)([ckMGb])?$/);if(u){let f=parseInt(u[1],10),d=u[2]||"b";r.push({type:"expr",expr:{type:"size",value:f,unit:d,comparison:l}})}}else if(o==="-perm"&&s+1<t.length){let a=t[++s],l="exact",c=a;a.startsWith("-")?(l="all",c=a.slice(1)):a.startsWith("/")&&(l="any",c=a.slice(1));let u=parseInt(c,8);Number.isNaN(u)||r.push({type:"expr",expr:{type:"perm",mode:u,matchType:l}})}else if(o==="-prune")r.push({type:"expr",expr:{type:"prune"}});else if(o==="-not"||o==="!")r.push({type:"not"});else if(o==="-o"||o==="-or")r.push({type:"op",op:"or"});else if(o==="-a"||o==="-and")r.push({type:"op",op:"and"});else if(o==="-maxdepth"||o==="-mindepth")s++;else if(o!=="-depth")if(o==="-exec"){let a=[];for(s++;s<t.length&&t[s]!==";"&&t[s]!=="+";)a.push(t[s]),s++;if(s>=t.length)return{expr:null,pathIndex:s,error:"find: missing argument to `-exec'\n",actions:[]};let l=t[s]==="+";n.push({type:"exec",command:a,batchMode:l})}else if(o==="-print")r.push({type:"expr",expr:{type:"print"}}),n.push({type:"print"});else if(o==="-print0")n.push({type:"print0"});else if(o==="-printf"&&s+1<t.length){let a=t[++s];n.push({type:"printf",format:a})}else if(o==="-delete")n.push({type:"delete"});else{if(o.startsWith("-"))return{expr:null,pathIndex:s,error:`find: unknown predicate '${o}'
400
+ `,actions:[]};if(r.length===0){s++;continue}break}s++}if(r.length===0)return{expr:null,pathIndex:s,actions:n};let i=jm(r);return i.error?{expr:null,pathIndex:s,error:i.error,actions:n}:{expr:i.expr,pathIndex:s,actions:n}}function jm(t){let e=0;function r(){let a=n();if(!a)return null;for(;e<t.length;){let l=t[e];if(l.type==="op"&&l.op==="or"){e++;let c=n();if(!c)return a;a={type:"or",left:a,right:c}}else break}return a}function n(){let a=s();if(!a)return null;for(;e<t.length;){let l=t[e];if(l.type==="op"&&l.op==="and"){e++;let c=s();if(!c)return a;a={type:"and",left:a,right:c}}else if(l.type==="expr"||l.type==="not"||l.type==="lparen"){let c=s();if(!c)return a;a={type:"and",left:a,right:c}}else break}return a}function s(){if(e<t.length&&t[e].type==="not"){e++;let a=s();return a?{type:"not",expr:a}:null}return i()}function i(){if(e>=t.length)return null;let a=t[e];if(a.type==="lparen"){e++;let l=r();return e<t.length&&t[e].type==="rparen"&&e++,l}return a.type==="expr"?(e++,a.expr):(a.type==="rparen",null)}return{expr:r()}}var Al=C(()=>{"use strict"});var Nl={};$(Nl,{findCommand:()=>Km});function Hm(){return{readdirCalls:0,readdirTime:0,statCalls:0,statTime:0,evalCalls:0,evalTime:0,nodeCount:0,batchCount:0,batchTime:0,earlyPrunes:0}}function Gm(t,e,r){t({category:"find",name:"summary",durationMs:r,details:{readdirCalls:e.readdirCalls,readdirTimeMs:e.readdirTime,statCalls:e.statCalls,statTimeMs:e.statTime,evalCalls:e.evalCalls,evalTimeMs:e.evalTime,nodeCount:e.nodeCount,batchCount:e.batchCount,batchTimeMs:e.batchTime,earlyPrunes:e.earlyPrunes,otherTimeMs:r-e.readdirTime-e.statTime-e.evalTime-e.batchTime}})}function Zm(t,e){let r=jr(t),n="",s=0;for(;s<r.length;)if(r[s]==="%"&&s+1<r.length){if(s++,r[s]==="%"){n+="%",s++;continue}let[i,o,a]=ro(r,s);if(s+=a,s>=r.length){n+="%";break}let l=r[s],c;switch(l){case"f":c=e.name,s++;break;case"h":{let u=e.path.lastIndexOf("/");c=u>0?e.path.slice(0,u):".",s++;break}case"p":c=e.path,s++;break;case"P":{let u=e.startingPoint;e.path===u?c="":e.path.startsWith(`${u}/`)?c=e.path.slice(u.length+1):u==="."&&e.path.startsWith("./")?c=e.path.slice(2):c=e.path,s++;break}case"s":c=String(e.size),s++;break;case"d":c=String(e.depth),s++;break;case"m":c=(e.mode&511).toString(8),s++;break;case"M":c=Qm(e.mode,e.isDirectory),s++;break;case"t":{let u=new Date(e.mtime);c=Xm(u),s++;break}case"T":{if(s+1<r.length){let u=r[s+1],f=new Date(e.mtime);c=Jm(f,u),s+=2}else c="%T",s++;break}default:n+=`%${i!==0||o!==-1?`${i}.${o}`:""}${l}`,s++;continue}n+=zr(c,i,o)}else n+=r[s],s++;return n}function Qm(t,e){let r=t&511,n=e?"d":"-";return n+=r&256?"r":"-",n+=r&128?"w":"-",n+=r&64?"x":"-",n+=r&32?"r":"-",n+=r&16?"w":"-",n+=r&8?"x":"-",n+=r&4?"r":"-",n+=r&2?"w":"-",n+=r&1?"x":"-",n}function Xm(t){let e=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],r=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],n=e[t.getDay()],s=r[t.getMonth()],i=String(t.getDate()).padStart(2," "),o=String(t.getHours()).padStart(2,"0"),a=String(t.getMinutes()).padStart(2,"0"),l=String(t.getSeconds()).padStart(2,"0"),c=t.getFullYear();return`${n} ${s} ${i} ${o}:${a}:${l} ${c}`}function Jm(t,e){switch(e){case"@":return String(t.getTime()/1e3);case"Y":return String(t.getFullYear());case"m":return String(t.getMonth()+1).padStart(2,"0");case"d":return String(t.getDate()).padStart(2,"0");case"H":return String(t.getHours()).padStart(2,"0");case"M":return String(t.getMinutes()).padStart(2,"0");case"S":return String(t.getSeconds()).padStart(2,"0");case"T":return`${String(t.getHours()).padStart(2,"0")}:${String(t.getMinutes()).padStart(2,"0")}:${String(t.getSeconds()).padStart(2,"0")}`;case"F":return`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,"0")}-${String(t.getDate()).padStart(2,"0")}`;default:return`%T${e}`}}var kl,qm,Vm,Km,Il=C(()=>{"use strict";L();ts();Sl();Al();kl=500;qm={name:"find",summary:"search for files in a directory hierarchy",usage:"find [path...] [expression]",options:["-name PATTERN file name matches shell pattern PATTERN","-iname PATTERN like -name but case insensitive","-path PATTERN file path matches shell pattern PATTERN","-ipath PATTERN like -path but case insensitive","-regex PATTERN file path matches regular expression PATTERN","-iregex PATTERN like -regex but case insensitive","-type TYPE file is of type: f (regular file), d (directory)","-empty file is empty or directory is empty","-mtime N file's data was modified N*24 hours ago","-newer FILE file was modified more recently than FILE","-size N[ckMGb] file uses N units of space (c=bytes, k=KB, M=MB, G=GB, b=512B blocks)","-perm MODE file's permission bits are exactly MODE (octal)","-perm -MODE all permission bits MODE are set","-perm /MODE any permission bits MODE are set","-maxdepth LEVELS descend at most LEVELS directories","-mindepth LEVELS do not apply tests at levels less than LEVELS","-depth process directory contents before directory itself","-prune do not descend into this directory","-not, ! negate the following expression","-a, -and logical AND (default)","-o, -or logical OR","-exec CMD {} ; execute CMD on each file ({} is replaced by filename)","-exec CMD {} + execute CMD with multiple files at once","-print print the full file name (default action)","-print0 print the full file name followed by a null character","-printf FORMAT print FORMAT with directives: %f %h %p %P %s %d %m %M %t","-delete delete found files/directories"," --help display this help and exit"]},Vm=new Set(["-name","-iname","-path","-ipath","-regex","-iregex","-type","-maxdepth","-mindepth","-mtime","-newer","-size","-perm"]),Km={name:"find",async execute(t,e){if(N(t))return k(qm);let r=[],n=null,s=null,i=!1,o=!1;for(let D=0;D<t.length;D++){let _=t[D];if(_==="-maxdepth"&&D+1<t.length)o=!0,n=parseInt(t[++D],10);else if(_==="-mindepth"&&D+1<t.length)o=!0,s=parseInt(t[++D],10);else if(_==="-depth")o=!0,i=!0;else if(_==="-exec")for(o=!0,D++;D<t.length&&t[D]!==";"&&t[D]!=="+";)D++;else!_.startsWith("-")&&_!==";"&&_!=="+"&&_!=="("&&_!==")"&&_!=="\\("&&_!=="\\)"&&_!=="!"?o||r.push(_):Vm.has(_)?(o=!0,D++):(_.startsWith("-")||_==="("||_==="\\("||_==="!")&&(o=!0)}r.length===0&&r.push(".");let{expr:a,error:l,actions:c}=Cl(t,0);if(l)return{stdout:"",stderr:l,exitCode:1};let u=c.some(D=>D.type==="print"),f=c.length===0,d=[],p=c.some(D=>D.type==="printf"),h=[],m="",g=0,w=El(a),E=new Map;for(let D of w){let _=e.fs.resolvePath(e.cwd,D);try{let G=await e.fs.stat(_);E.set(D,G.mtime?.getTime()??Date.now())}catch{}}let b=c.some(D=>{if(D.type!=="printf")return!1;let _=D.format.replace(/%%/g,"");return/%[-+]?[0-9]*\.?[0-9]*(s|m|M|t|T)/.test(_)}),S=br(a)||b,I=Sr(a),F=wl(a),W=Ar(a),j=Cr(a),pe=typeof e.fs.readdirWithFileTypes=="function";for(let D of r){let Ue=function(T){let V=s===null||T.depth>=s,Q=!1;if(V&&a!==null){let ue=Date.now(),re;if(j)re=Pt(a,T.name,T.relativePath,T.isFile,T.isDirectory);else{let ne={name:T.name,relativePath:T.relativePath,isFile:T.isFile,isDirectory:T.isDirectory,isEmpty:T.isEmpty,mtime:T.stat?.mtime?.getTime()??Date.now(),size:T.stat?.size??0,mode:T.stat?.mode??420,newerRefTimes:E};re=Xe(a,ne)}V=re.matches,Q=u?re.printed:V,G.evalCalls++,G.evalTime+=Date.now()-ue}else V&&(Q=!0);return Q?{print:!0,printfData:p?{path:T.relativePath,name:T.name,size:T.stat?.size??0,mtime:T.stat?.mtime?.getTime()??Date.now(),mode:T.stat?.mode??420,isDirectory:T.isDirectory,depth:T.depth,startingPoint:D}:null}:{print:!1,printfData:null}};var Te=Ue;D.length>1&&D.endsWith("/")&&(D=D.slice(0,-1));let _=e.fs.resolvePath(e.cwd,D);try{await e.fs.stat(_)}catch{m+=`find: ${D}: No such file or directory
401
+ `,g=1;continue}let G=Hm(),le=Date.now();async function Ne(T){let{path:ce,depth:V,typeInfo:Q}=T;if(G.nodeCount++,n!==null&&V>n)return null;let v,ue,re;if(Q&&!S)v=Q.isFile,ue=Q.isDirectory;else{try{let At=Date.now();re=await e.fs.stat(ce),G.statCalls++,G.statTime+=Date.now()-At}catch{return null}if(!re)return null;v=re.isFile,ue=re.isDirectory}let ne;ce===_?ne=D.split("/").pop()||D:ne=ce.split("/").pop()||"";let fe=ce===_?D:D==="."?`./${ce.slice(_==="/"?_.length:_.length+1)}`:D+ce.slice(_.length),Ce=[],Ie=null,xe=null,we=!1;ue&&W&&!i&&(we=bl(a,{name:ne,relativePath:fe,isFile:v,isDirectory:ue}).shouldPrune,we&&G.earlyPrunes++);let ze=n!==null&&V>=n,je=F.terminalDirName!==null&&ne===F.terminalDirName,gr=!ze&&!je&&!we;if(ue&&((gr||I||je)&&!we)){let At=Date.now();if(pe&&e.fs.readdirWithFileTypes){if(Ie=await e.fs.readdirWithFileTypes(ce),xe=Ie.map(Le=>Le.name),G.readdirCalls++,G.readdirTime+=Date.now()-At,gr)Ce=Ie.map((Le,Ke)=>({path:ce==="/"?`/${Le.name}`:`${ce}/${Le.name}`,depth:V+1,typeInfo:{isFile:Le.isFile,isDirectory:Le.isDirectory},resultIndex:Ke}));else if(je){let Le=F.requiredExtension;Ce=Ie.filter(Ke=>Ke.isFile&&(!Le||Ke.name.endsWith(Le))).map((Ke,wd)=>({path:ce==="/"?`/${Ke.name}`:`${ce}/${Ke.name}`,depth:V+1,typeInfo:{isFile:Ke.isFile,isDirectory:Ke.isDirectory},resultIndex:wd}))}}else xe=await e.fs.readdir(ce),G.readdirCalls++,G.readdirTime+=Date.now()-At,gr&&(Ce=xe.map((Le,Ke)=>({path:ce==="/"?`/${Le}`:`${ce}/${Le}`,depth:V+1,resultIndex:Ke})))}let Wr=v?(re?.size??0)===0:xe!==null&&xe.length===0,jt=we;if(!i&&a!==null&&!we&&W){let At=Date.now(),Le={name:ne,relativePath:fe,isFile:v,isDirectory:ue,isEmpty:Wr,mtime:re?.mtime?.getTime()??Date.now(),size:re?.size??0,mode:re?.mode??420,newerRefTimes:E};jt=Xe(a,Le).pruned,G.evalCalls++,G.evalTime+=Date.now()-At}return{relativePath:fe,name:ne,isFile:v,isDirectory:ue,isEmpty:Wr,stat:re,depth:V,children:jt?[]:Ce,pruned:jt}}async function Ct(){let T={paths:[],printfData:[]};if(i){let re=function(ne){let fe={paths:[],printfData:[]},Ce=Q[ne];if(!Ce)return fe;for(let we of Ce.childIndices){let ze=re(we);fe.paths.push(...ze.paths),fe.printfData.push(...ze.printfData)}let{print:Ie,printfData:xe}=Ue(Ce.node);return Ie&&(fe.paths.push(Ce.node.relativePath),xe&&fe.printfData.push(xe)),fe};var ce=re;let Q=[],v=[{item:{path:_,depth:0,resultIndex:0},parentIndex:-1,childOrderInParent:0}],ue=new Map;for(;v.length>0;){let ne=Date.now(),fe=v.splice(0,kl),Ce=await Promise.all(fe.map(Ie=>Ne(Ie.item)));G.batchCount++,G.batchTime+=Date.now()-ne;for(let Ie=0;Ie<fe.length;Ie++){let xe=Ce[Ie],we=fe[Ie];if(!xe)continue;let ze=Q.length;if(we.parentIndex>=0){let je=ue.get(we.parentIndex)||[];je.push(ze),ue.set(we.parentIndex,je)}Q.push({node:xe,parentIndex:we.parentIndex,childIndices:[]});for(let je=0;je<xe.children.length;je++)v.push({item:xe.children[je],parentIndex:ze,childOrderInParent:je})}}for(let[ne,fe]of ue)ne>=0&&ne<Q.length&&(Q[ne].childIndices=fe);if(Q.length>0){let ne=re(0);T.paths.push(...ne.paths),T.printfData.push(...ne.printfData)}}else{let ne=function(fe){let Ce=Q.get(fe);Ce&&(T.paths.push(Ce.path),Ce.printfData&&T.printfData.push(Ce.printfData));let Ie=re.get(fe);if(Ie)for(let xe of Ie)ne(xe)};var V=ne;let Q=new Map,v=0,ue=[{item:{path:_,depth:0,resultIndex:0},orderIndex:v++}],re=new Map;for(;ue.length>0;){let fe=Date.now(),Ce=ue.splice(0,kl),Ie=await Promise.all(Ce.map(async({item:xe,orderIndex:we})=>{let ze=await Ne(xe);return ze?{node:ze,orderIndex:we}:null}));G.batchCount++,G.batchTime+=Date.now()-fe;for(let xe of Ie){if(!xe)continue;let{node:we,orderIndex:ze}=xe,{print:je,printfData:gr}=Ue(we);if(je&&Q.set(ze,{path:we.relativePath,printfData:gr}),we.children.length>0){let Yn=[];for(let Wr of we.children){let jt=v++;Yn.push(jt),ue.push({item:Wr,orderIndex:jt})}re.set(ze,Yn)}}}ne(0)}return T}let Y=await Ct();if(d.push(...Y.paths),h.push(...Y.printfData),e.trace){let T=Date.now()-le;Gm(e.trace,G,T),e.trace({category:"find",name:"searchPath",durationMs:T,details:{path:D,resultsFound:Y.paths.length}})}}let te="";if(c.length>0)for(let D of c)switch(D.type){case"print":te+=d.length>0?`${d.join(`
402
402
  `)}
403
- `:"";break;case"print0":I+=p.length>0?`${p.join("\0")}\0`:"";break;case"delete":{let $=[...p].sort((V,K)=>K.length-V.length);for(let V of $){let K=e.fs.resolvePath(e.cwd,V);try{await e.fs.rm(K,{recursive:!1})}catch(Y){let re=Y instanceof Error?Y.message:String(Y);m+=`find: cannot delete '${V}': ${re}
404
- `,g=1}}break}case"printf":for(let $ of h)I+=Sm(v.format,$);break;case"exec":if(!e.exec)return{stdout:"",stderr:`find: -exec not supported in this context
405
- `,exitCode:1};if(v.batchMode){let $=[];for(let Y of v.command)Y==="{}"?$.push(...p):$.push(Y);let V=$.map(Y=>`"${Y}"`).join(" "),K=await e.exec(V,{cwd:e.cwd});I+=K.stdout,m+=K.stderr,K.exitCode!==0&&(g=K.exitCode)}else for(let $ of p){let K=v.command.map(re=>re==="{}"?$:re).map(re=>`"${re}"`).join(" "),Y=await e.exec(K,{cwd:e.cwd});I+=Y.stdout,m+=Y.stderr,Y.exitCode!==0&&(g=Y.exitCode)}break}else f&&(I=p.length>0?`${p.join(`
403
+ `:"";break;case"print0":te+=d.length>0?`${d.join("\0")}\0`:"";break;case"delete":{let _=[...d].sort((G,le)=>le.length-G.length);for(let G of _){let le=e.fs.resolvePath(e.cwd,G);try{await e.fs.rm(le,{recursive:!1})}catch(Ne){let Ue=Ne instanceof Error?Ne.message:String(Ne);m+=`find: cannot delete '${G}': ${Ue}
404
+ `,g=1}}break}case"printf":for(let _ of h)te+=Zm(D.format,_);break;case"exec":if(!e.exec)return{stdout:"",stderr:`find: -exec not supported in this context
405
+ `,exitCode:1};if(D.batchMode){let _=[];for(let Ne of D.command)Ne==="{}"?_.push(...d):_.push(Ne);let G=_.map(Ne=>`"${Ne}"`).join(" "),le=await e.exec(G,{cwd:e.cwd});te+=le.stdout,m+=le.stderr,le.exitCode!==0&&(g=le.exitCode)}else for(let _ of d){let le=D.command.map(Ue=>Ue==="{}"?_:Ue).map(Ue=>`"${Ue}"`).join(" "),Ne=await e.exec(le,{cwd:e.cwd});te+=Ne.stdout,m+=Ne.stderr,Ne.exitCode!==0&&(g=Ne.exitCode)}break}else f&&(te=d.length>0?`${d.join(`
406
406
  `)}
407
- `:"");return{stdout:I,stderr:m,exitCode:g}}}});var ol={};R(ol,{basenameCommand:()=>Im});var Nm,Im,al=C(()=>{"use strict";L();Nm={name:"basename",summary:"strip directory and suffix from filenames",usage:`basename NAME [SUFFIX]
408
- basename OPTION... NAME...`,options:["-a, --multiple support multiple arguments","-s, --suffix=SUFFIX remove a trailing SUFFIX"," --help display this help and exit"]},Im={name:"basename",async execute(t,e){if(N(t))return k(Nm);let r=!1,n="",s=[];for(let o=0;o<t.length;o++){let a=t[o];a==="-a"||a==="--multiple"?r=!0:a==="-s"&&o+1<t.length?(n=t[++o],r=!0):a.startsWith("--suffix=")?(n=a.slice(9),r=!0):a.startsWith("-")||s.push(a)}if(s.length===0)return{stdout:"",stderr:`basename: missing operand
407
+ `:"");return{stdout:te,stderr:m,exitCode:g}}}});var vl={};$(vl,{basenameCommand:()=>e0});var Ym,e0,$l=C(()=>{"use strict";L();Ym={name:"basename",summary:"strip directory and suffix from filenames",usage:`basename NAME [SUFFIX]
408
+ basename OPTION... NAME...`,options:["-a, --multiple support multiple arguments","-s, --suffix=SUFFIX remove a trailing SUFFIX"," --help display this help and exit"]},e0={name:"basename",async execute(t,e){if(N(t))return k(Ym);let r=!1,n="",s=[];for(let o=0;o<t.length;o++){let a=t[o];a==="-a"||a==="--multiple"?r=!0:a==="-s"&&o+1<t.length?(n=t[++o],r=!0):a.startsWith("--suffix=")?(n=a.slice(9),r=!0):a.startsWith("-")||s.push(a)}if(s.length===0)return{stdout:"",stderr:`basename: missing operand
409
409
  `,exitCode:1};!r&&s.length>=2&&(n=s.pop()??"");let i=[];for(let o of s){let a=o.replace(/\/+$/,""),l=a.split("/").pop()||a;n&&l.endsWith(n)&&(l=l.slice(0,-n.length)),i.push(l)}return{stdout:`${i.join(`
410
410
  `)}
411
- `,stderr:"",exitCode:0}}}});var ll={};R(ll,{dirnameCommand:()=>$m});var vm,$m,cl=C(()=>{"use strict";L();vm={name:"dirname",summary:"strip last component from file name",usage:"dirname [OPTION] NAME...",options:[" --help display this help and exit"]},$m={name:"dirname",async execute(t,e){if(N(t))return k(vm);let r=t.filter(s=>!s.startsWith("-"));if(r.length===0)return{stdout:"",stderr:`dirname: missing operand
411
+ `,stderr:"",exitCode:0}}}});var Rl={};$(Rl,{dirnameCommand:()=>r0});var t0,r0,Pl=C(()=>{"use strict";L();t0={name:"dirname",summary:"strip last component from file name",usage:"dirname [OPTION] NAME...",options:[" --help display this help and exit"]},r0={name:"dirname",async execute(t,e){if(N(t))return k(t0);let r=t.filter(s=>!s.startsWith("-"));if(r.length===0)return{stdout:"",stderr:`dirname: missing operand
412
412
  `,exitCode:1};let n=[];for(let s of r){let i=s.replace(/\/+$/,""),o=i.lastIndexOf("/");o===-1?n.push("."):o===0?n.push("/"):n.push(i.slice(0,o))}return{stdout:`${n.join(`
413
413
  `)}
414
- `,stderr:"",exitCode:0}}}});var fl={};R(fl,{treeCommand:()=>Fm});async function Om(t,e,r,n,s){let i={output:"",stderr:"",dirCount:0,fileCount:0},o=t.fs.resolvePath(t.cwd,e);try{if(!(await t.fs.stat(o)).isDirectory)return i.output=`${e}
414
+ `,stderr:"",exitCode:0}}}});var Tl={};$(Tl,{treeCommand:()=>i0});async function o0(t,e,r,n,s){let i={output:"",stderr:"",dirCount:0,fileCount:0},o=t.fs.resolvePath(t.cwd,e);try{if(!(await t.fs.stat(o)).isDirectory)return i.output=`${e}
415
415
  `,i.fileCount=1,i}catch{return i.stderr=`tree: ${e}: No such file or directory
416
416
  `,i}if(i.output=`${e}
417
- `,r.maxDepth!==null&&s>=r.maxDepth)return i;try{let a=[];if(t.fs.readdirWithFileTypes)a=(await t.fs.readdirWithFileTypes(o)).map(u=>({name:u.name,isDirectory:u.isDirectory}));else{let c=await t.fs.readdir(o);for(let u=0;u<c.length;u+=100){let f=c.slice(u,u+100),p=await Promise.all(f.map(async d=>{let h=o==="/"?`/${d}`:`${o}/${d}`;try{let m=await t.fs.stat(h);return{name:d,isDirectory:m.isDirectory}}catch{return null}}));a.push(...p.filter(d=>d!==null))}}let l=a.filter(c=>!(!r.showHidden&&c.name.startsWith(".")||r.directoriesOnly&&!c.isDirectory));l.sort((c,u)=>c.name.localeCompare(u.name));for(let c=0;c<l.length;c++){let u=l[c],f=o==="/"?`/${u.name}`:`${o}/${u.name}`,p=c===l.length-1,d=p?"`-- ":"|-- ",h=n+(p?" ":"| ");if(u.isDirectory){i.dirCount++;let m=r.fullPath?f:u.name;if(i.output+=`${n+d+m}
418
- `,r.maxDepth===null||s+1<r.maxDepth){let g=await ul(t,f,r,h,s+1);i.output+=g.output,i.dirCount+=g.dirCount,i.fileCount+=g.fileCount}}else{i.fileCount++;let m=r.fullPath?f:u.name;i.output+=`${n+d+m}
417
+ `,r.maxDepth!==null&&s>=r.maxDepth)return i;try{let a=[];if(t.fs.readdirWithFileTypes)a=(await t.fs.readdirWithFileTypes(o)).map(u=>({name:u.name,isDirectory:u.isDirectory}));else{let c=await t.fs.readdir(o);for(let u=0;u<c.length;u+=100){let f=c.slice(u,u+100),d=await Promise.all(f.map(async p=>{let h=o==="/"?`/${p}`:`${o}/${p}`;try{let m=await t.fs.stat(h);return{name:p,isDirectory:m.isDirectory}}catch{return null}}));a.push(...d.filter(p=>p!==null))}}let l=a.filter(c=>!(!r.showHidden&&c.name.startsWith(".")||r.directoriesOnly&&!c.isDirectory));l.sort((c,u)=>c.name.localeCompare(u.name));for(let c=0;c<l.length;c++){let u=l[c],f=o==="/"?`/${u.name}`:`${o}/${u.name}`,d=c===l.length-1,p=d?"`-- ":"|-- ",h=n+(d?" ":"| ");if(u.isDirectory){i.dirCount++;let m=r.fullPath?f:u.name;if(i.output+=`${n+p+m}
418
+ `,r.maxDepth===null||s+1<r.maxDepth){let g=await Fl(t,f,r,h,s+1);i.output+=g.output,i.dirCount+=g.dirCount,i.fileCount+=g.fileCount}}else{i.fileCount++;let m=r.fullPath?f:u.name;i.output+=`${n+p+m}
419
419
  `}}}catch{i.stderr=`tree: ${e}: Permission denied
420
- `}return i}async function ul(t,e,r,n,s){let i={output:"",stderr:"",dirCount:0,fileCount:0};if(r.maxDepth!==null&&s>=r.maxDepth)return i;try{let o=[];if(t.fs.readdirWithFileTypes)o=(await t.fs.readdirWithFileTypes(e)).map(c=>({name:c.name,isDirectory:c.isDirectory}));else{let l=await t.fs.readdir(e);for(let c=0;c<l.length;c+=100){let u=l.slice(c,c+100),f=await Promise.all(u.map(async p=>{let d=e==="/"?`/${p}`:`${e}/${p}`;try{let h=await t.fs.stat(d);return{name:p,isDirectory:h.isDirectory}}catch{return null}}));o.push(...f.filter(p=>p!==null))}}let a=o.filter(l=>!(!r.showHidden&&l.name.startsWith(".")||r.directoriesOnly&&!l.isDirectory));a.sort((l,c)=>l.name.localeCompare(c.name));for(let l=0;l<a.length;l++){let c=a[l],u=e==="/"?`/${c.name}`:`${e}/${c.name}`,f=l===a.length-1,p=f?"`-- ":"|-- ",d=n+(f?" ":"| ");if(c.isDirectory){i.dirCount++;let h=r.fullPath?u:c.name;i.output+=`${n+p+h}
421
- `;let m=await ul(t,u,r,d,s+1);i.output+=m.output,i.dirCount+=m.dirCount,i.fileCount+=m.fileCount}else{i.fileCount++;let h=r.fullPath?u:c.name;i.output+=`${n+p+h}
422
- `}}}catch{}return i}var Rm,Pm,Fm,pl=C(()=>{"use strict";ye();ht();L();Rm={name:"tree",summary:"list contents of directories in a tree-like format",usage:"tree [OPTION]... [DIRECTORY]...",options:["-a include hidden files","-d list directories only","-L LEVEL limit depth of directory tree","-f print full path prefix for each file"," --help display this help and exit"]},Pm={showHidden:{short:"a",type:"boolean"},directoriesOnly:{short:"d",type:"boolean"},fullPath:{short:"f",type:"boolean"},maxDepth:{short:"L",type:"number"}},Fm={name:"tree",async execute(t,e){if(N(t))return k(Rm);let r=z("tree",t,Pm);if(!r.ok)return r.error;let n={showHidden:r.result.flags.showHidden,directoriesOnly:r.result.flags.directoriesOnly,maxDepth:r.result.flags.maxDepth??null,fullPath:r.result.flags.fullPath},s=r.result.positional;s.length===0&&s.push(".");let i="",o="",a=0,l=0;for(let c of s){let u=await Om(e,c,n,"",0);i+=u.output,o+=u.stderr,a+=u.dirCount,l+=u.fileCount}return i+=`
420
+ `}return i}async function Fl(t,e,r,n,s){let i={output:"",stderr:"",dirCount:0,fileCount:0};if(r.maxDepth!==null&&s>=r.maxDepth)return i;try{let o=[];if(t.fs.readdirWithFileTypes)o=(await t.fs.readdirWithFileTypes(e)).map(c=>({name:c.name,isDirectory:c.isDirectory}));else{let l=await t.fs.readdir(e);for(let c=0;c<l.length;c+=100){let u=l.slice(c,c+100),f=await Promise.all(u.map(async d=>{let p=e==="/"?`/${d}`:`${e}/${d}`;try{let h=await t.fs.stat(p);return{name:d,isDirectory:h.isDirectory}}catch{return null}}));o.push(...f.filter(d=>d!==null))}}let a=o.filter(l=>!(!r.showHidden&&l.name.startsWith(".")||r.directoriesOnly&&!l.isDirectory));a.sort((l,c)=>l.name.localeCompare(c.name));for(let l=0;l<a.length;l++){let c=a[l],u=e==="/"?`/${c.name}`:`${e}/${c.name}`,f=l===a.length-1,d=f?"`-- ":"|-- ",p=n+(f?" ":"| ");if(c.isDirectory){i.dirCount++;let h=r.fullPath?u:c.name;i.output+=`${n+d+h}
421
+ `;let m=await Fl(t,u,r,p,s+1);i.output+=m.output,i.dirCount+=m.dirCount,i.fileCount+=m.fileCount}else{i.fileCount++;let h=r.fullPath?u:c.name;i.output+=`${n+d+h}
422
+ `}}}catch{}return i}var n0,s0,i0,Ol=C(()=>{"use strict";Ee();Ht();L();n0={name:"tree",summary:"list contents of directories in a tree-like format",usage:"tree [OPTION]... [DIRECTORY]...",options:["-a include hidden files","-d list directories only","-L LEVEL limit depth of directory tree","-f print full path prefix for each file"," --help display this help and exit"]},s0={showHidden:{short:"a",type:"boolean"},directoriesOnly:{short:"d",type:"boolean"},fullPath:{short:"f",type:"boolean"},maxDepth:{short:"L",type:"number"}},i0={name:"tree",async execute(t,e){if(N(t))return k(n0);let r=H("tree",t,s0);if(!r.ok)return r.error;let n={showHidden:r.result.flags.showHidden,directoriesOnly:r.result.flags.directoriesOnly,maxDepth:r.result.flags.maxDepth??null,fullPath:r.result.flags.fullPath},s=r.result.positional;s.length===0&&s.push(".");let i="",o="",a=0,l=0;for(let c of s){let u=await o0(e,c,n,"",0);i+=u.output,o+=u.stderr,a+=u.dirCount,l+=u.fileCount}return i+=`
423
423
  ${a} director${a===1?"y":"ies"}`,n.directoriesOnly||(i+=`, ${l} file${l===1?"":"s"}`),i+=`
424
- `,{stdout:i,stderr:o,exitCode:o?1:0}}}});var hl={};R(hl,{duCommand:()=>Lm});async function dl(t,e,r,n,s){let i={output:"",totalSize:0,stderr:""};try{let o=await t.fs.stat(e);if(!o.isDirectory)return i.totalSize=o.size,(n.allFiles||s===0)&&(i.output=zr(o.size,n.humanReadable)+" "+r+`
425
- `),i;let a=0,l=[];if(t.fs.readdirWithFileTypes){let f=await t.fs.readdirWithFileTypes(e),p=f.filter(h=>h.isFile),d=f.filter(h=>h.isDirectory);for(let h=0;h<p.length;h+=100){let m=p.slice(h,h+100),g=await Promise.all(m.map(async w=>{let E=e==="/"?`/${w.name}`:`${e}/${w.name}`;try{let b=await t.fs.stat(E);return{name:w.name,isDirectory:!1,size:b.size}}catch{return{name:w.name,isDirectory:!1,size:0}}}));l.push(...g)}l.push(...d.map(h=>({name:h.name,isDirectory:!0})))}else{let f=await t.fs.readdir(e);for(let p=0;p<f.length;p+=100){let d=f.slice(p,p+100),h=await Promise.all(d.map(async m=>{let g=e==="/"?`/${m}`:`${e}/${m}`;try{let w=await t.fs.stat(g);return{name:m,isDirectory:w.isDirectory,size:w.isDirectory?void 0:w.size}}catch{return{name:m,isDirectory:!1,size:0}}}));l.push(...h)}}l.sort((f,p)=>f.name.localeCompare(p.name));let c=l.filter(f=>!f.isDirectory);for(let f of c){let p=f.size??0;if(a+=p,n.allFiles&&!n.summarize){let d=r==="."?f.name:`${r}/${f.name}`;i.output+=zr(p,n.humanReadable)+" "+d+`
426
- `}}let u=l.filter(f=>f.isDirectory);for(let f=0;f<u.length;f+=100){let p=u.slice(f,f+100),d=await Promise.all(p.map(async h=>{let m=e==="/"?`/${h.name}`:`${e}/${h.name}`,g=r==="."?h.name:`${r}/${h.name}`;return{name:h.name,result:await dl(t,m,g,n,s+1)}}));d.sort((h,m)=>h.name.localeCompare(m.name));for(let{result:h}of d)a+=h.totalSize,n.summarize||(n.maxDepth===null||s+1<=n.maxDepth)&&(i.output+=h.output)}i.totalSize=a,(n.summarize||n.maxDepth===null||s<=n.maxDepth)&&(i.output+=`${zr(a,n.humanReadable)} ${r}
424
+ `,{stdout:i,stderr:o,exitCode:o?1:0}}}});var Ll={};$(Ll,{duCommand:()=>c0});async function Dl(t,e,r,n,s){let i={output:"",totalSize:0,stderr:""};try{let o=await t.fs.stat(e);if(!o.isDirectory)return i.totalSize=o.size,(n.allFiles||s===0)&&(i.output=an(o.size,n.humanReadable)+" "+r+`
425
+ `),i;let a=0,l=[];if(t.fs.readdirWithFileTypes){let f=await t.fs.readdirWithFileTypes(e),d=f.filter(h=>h.isFile),p=f.filter(h=>h.isDirectory);for(let h=0;h<d.length;h+=100){let m=d.slice(h,h+100),g=await Promise.all(m.map(async w=>{let E=e==="/"?`/${w.name}`:`${e}/${w.name}`;try{let b=await t.fs.stat(E);return{name:w.name,isDirectory:!1,size:b.size}}catch{return{name:w.name,isDirectory:!1,size:0}}}));l.push(...g)}l.push(...p.map(h=>({name:h.name,isDirectory:!0})))}else{let f=await t.fs.readdir(e);for(let d=0;d<f.length;d+=100){let p=f.slice(d,d+100),h=await Promise.all(p.map(async m=>{let g=e==="/"?`/${m}`:`${e}/${m}`;try{let w=await t.fs.stat(g);return{name:m,isDirectory:w.isDirectory,size:w.isDirectory?void 0:w.size}}catch{return{name:m,isDirectory:!1,size:0}}}));l.push(...h)}}l.sort((f,d)=>f.name.localeCompare(d.name));let c=l.filter(f=>!f.isDirectory);for(let f of c){let d=f.size??0;if(a+=d,n.allFiles&&!n.summarize){let p=r==="."?f.name:`${r}/${f.name}`;i.output+=an(d,n.humanReadable)+" "+p+`
426
+ `}}let u=l.filter(f=>f.isDirectory);for(let f=0;f<u.length;f+=100){let d=u.slice(f,f+100),p=await Promise.all(d.map(async h=>{let m=e==="/"?`/${h.name}`:`${e}/${h.name}`,g=r==="."?h.name:`${r}/${h.name}`;return{name:h.name,result:await Dl(t,m,g,n,s+1)}}));p.sort((h,m)=>h.name.localeCompare(m.name));for(let{result:h}of p)a+=h.totalSize,n.summarize||(n.maxDepth===null||s+1<=n.maxDepth)&&(i.output+=h.output)}i.totalSize=a,(n.summarize||n.maxDepth===null||s<=n.maxDepth)&&(i.output+=`${an(a,n.humanReadable)} ${r}
427
427
  `)}catch{i.stderr=`du: cannot read directory '${r}': Permission denied
428
- `}return i}function zr(t,e){return e?t<1024?`${t}`:t<1024*1024?`${(t/1024).toFixed(1)}K`:t<1024*1024*1024?`${(t/(1024*1024)).toFixed(1)}M`:`${(t/(1024*1024*1024)).toFixed(1)}G`:String(Math.ceil(t/1024)||1)}var Tm,Dm,Lm,ml=C(()=>{"use strict";ye();ht();L();Tm={name:"du",summary:"estimate file space usage",usage:"du [OPTION]... [FILE]...",options:["-a write counts for all files, not just directories","-h print sizes in human readable format","-s display only a total for each argument","-c produce a grand total","--max-depth=N print total for directory only if N or fewer levels deep"," --help display this help and exit"]},Dm={allFiles:{short:"a",type:"boolean"},humanReadable:{short:"h",type:"boolean"},summarize:{short:"s",type:"boolean"},grandTotal:{short:"c",type:"boolean"},maxDepth:{long:"max-depth",type:"number"}},Lm={name:"du",async execute(t,e){if(N(t))return k(Tm);let r=z("du",t,Dm);if(!r.ok)return r.error;let n={allFiles:r.result.flags.allFiles,humanReadable:r.result.flags.humanReadable,summarize:r.result.flags.summarize,grandTotal:r.result.flags.grandTotal,maxDepth:r.result.flags.maxDepth??null},s=r.result.positional;s.length===0&&s.push(".");let i="",o="",a=0;for(let l of s){let c=e.fs.resolvePath(e.cwd,l);try{await e.fs.stat(c);let u=await dl(e,c,l,n,0);i+=u.output,a+=u.totalSize,o+=u.stderr}catch{o+=`du: cannot access '${l}': No such file or directory
429
- `}}return n.grandTotal&&s.length>0&&(i+=`${zr(a,n.humanReadable)} total
430
- `),{stdout:i,stderr:o,exitCode:o?1:0}}}});var rs={};R(rs,{envCommand:()=>_m,printenvCommand:()=>Wm});var Mm,_m,Bm,Wm,ns=C(()=>{"use strict";L();Mm={name:"env",summary:"run a program in a modified environment",usage:"env [OPTION]... [NAME=VALUE]... [COMMAND [ARG]...]",options:["-i, --ignore-environment start with an empty environment","-u NAME, --unset=NAME remove NAME from the environment"," --help display this help and exit"]},_m={name:"env",async execute(t,e){if(N(t))return k(Mm);let r=!1,n=[],s={},i=-1;for(let u=0;u<t.length;u++){let f=t[u];if(f==="-i"||f==="--ignore-environment")r=!0;else if(f==="-u"&&u+1<t.length)n.push(t[++u]);else if(f.startsWith("-u"))n.push(f.slice(2));else if(f.startsWith("--unset="))n.push(f.slice(8));else{if(f.startsWith("--")&&f!=="--")return P("env",f);if(f.startsWith("-")&&f!=="-"){for(let p of f.slice(1))if(p!=="i"&&p!=="u")return P("env",`-${p}`);f.includes("i")&&(r=!0)}else if(f.includes("=")&&i===-1){let p=f.indexOf("="),d=f.slice(0,p),h=f.slice(p+1);s[d]=h}else{i=u;break}}}let o;if(r)o={...s};else{o={...e.env};for(let u of n)delete o[u];Object.assign(o,s)}if(i===-1){let u=[];for(let[f,p]of Object.entries(o))u.push(`${f}=${p}`);return{stdout:u.join(`
428
+ `}return i}function an(t,e){return e?t<1024?`${t}`:t<1024*1024?`${(t/1024).toFixed(1)}K`:t<1024*1024*1024?`${(t/(1024*1024)).toFixed(1)}M`:`${(t/(1024*1024*1024)).toFixed(1)}G`:String(Math.ceil(t/1024)||1)}var a0,l0,c0,Ml=C(()=>{"use strict";Ee();Ht();L();a0={name:"du",summary:"estimate file space usage",usage:"du [OPTION]... [FILE]...",options:["-a write counts for all files, not just directories","-h print sizes in human readable format","-s display only a total for each argument","-c produce a grand total","--max-depth=N print total for directory only if N or fewer levels deep"," --help display this help and exit"]},l0={allFiles:{short:"a",type:"boolean"},humanReadable:{short:"h",type:"boolean"},summarize:{short:"s",type:"boolean"},grandTotal:{short:"c",type:"boolean"},maxDepth:{long:"max-depth",type:"number"}},c0={name:"du",async execute(t,e){if(N(t))return k(a0);let r=H("du",t,l0);if(!r.ok)return r.error;let n={allFiles:r.result.flags.allFiles,humanReadable:r.result.flags.humanReadable,summarize:r.result.flags.summarize,grandTotal:r.result.flags.grandTotal,maxDepth:r.result.flags.maxDepth??null},s=r.result.positional;s.length===0&&s.push(".");let i="",o="",a=0;for(let l of s){let c=e.fs.resolvePath(e.cwd,l);try{await e.fs.stat(c);let u=await Dl(e,c,l,n,0);i+=u.output,a+=u.totalSize,o+=u.stderr}catch{o+=`du: cannot access '${l}': No such file or directory
429
+ `}}return n.grandTotal&&s.length>0&&(i+=`${an(a,n.humanReadable)} total
430
+ `),{stdout:i,stderr:o,exitCode:o?1:0}}}});var bs={};$(bs,{envCommand:()=>f0,printenvCommand:()=>p0});var u0,f0,d0,p0,Ss=C(()=>{"use strict";L();u0={name:"env",summary:"run a program in a modified environment",usage:"env [OPTION]... [NAME=VALUE]... [COMMAND [ARG]...]",options:["-i, --ignore-environment start with an empty environment","-u NAME, --unset=NAME remove NAME from the environment"," --help display this help and exit"]},f0={name:"env",async execute(t,e){if(N(t))return k(u0);let r=!1,n=[],s={},i=-1;for(let u=0;u<t.length;u++){let f=t[u];if(f==="-i"||f==="--ignore-environment")r=!0;else if(f==="-u"&&u+1<t.length)n.push(t[++u]);else if(f.startsWith("-u"))n.push(f.slice(2));else if(f.startsWith("--unset="))n.push(f.slice(8));else{if(f.startsWith("--")&&f!=="--")return R("env",f);if(f.startsWith("-")&&f!=="-"){for(let d of f.slice(1))if(d!=="i"&&d!=="u")return R("env",`-${d}`);f.includes("i")&&(r=!0)}else if(f.includes("=")&&i===-1){let d=f.indexOf("="),p=f.slice(0,d),h=f.slice(d+1);s[p]=h}else{i=u;break}}}let o;if(r)o={...s};else{o={...e.env};for(let u of n)delete o[u];Object.assign(o,s)}if(i===-1){let u=[];for(let[f,d]of Object.entries(o))u.push(`${f}=${d}`);return{stdout:u.join(`
431
431
  `)+(u.length>0?`
432
432
  `:""),stderr:"",exitCode:0}}if(!e.exec)return{stdout:"",stderr:`env: command execution not supported in this context
433
- `,exitCode:1};let a=t.slice(i).join(" "),l=Object.entries(s).map(([u,f])=>`${u}="${f}"`).join(" "),c=l?`${l} ${a}`:a;return e.exec(c,{cwd:e.cwd})}},Bm={name:"printenv",summary:"print all or part of environment",usage:"printenv [OPTION]... [VARIABLE]...",options:[" --help display this help and exit"]},Wm={name:"printenv",async execute(t,e){if(N(t))return k(Bm);let r=t.filter(i=>!i.startsWith("-"));if(r.length===0){let i=[];for(let[o,a]of Object.entries(e.env))i.push(`${o}=${a}`);return{stdout:i.join(`
433
+ `,exitCode:1};let a=t.slice(i).join(" "),l=Object.entries(s).map(([u,f])=>`${u}="${f}"`).join(" "),c=l?`${l} ${a}`:a;return e.exec(c,{cwd:e.cwd})}},d0={name:"printenv",summary:"print all or part of environment",usage:"printenv [OPTION]... [VARIABLE]...",options:[" --help display this help and exit"]},p0={name:"printenv",async execute(t,e){if(N(t))return k(d0);let r=t.filter(i=>!i.startsWith("-"));if(r.length===0){let i=[];for(let[o,a]of Object.entries(e.env))i.push(`${o}=${a}`);return{stdout:i.join(`
434
434
  `)+(i.length>0?`
435
435
  `:""),stderr:"",exitCode:0}}let n=[],s=0;for(let i of r)i in e.env?n.push(e.env[i]):s=1;return{stdout:n.join(`
436
436
  `)+(n.length>0?`
437
- `:""),stderr:"",exitCode:s}}}});var ss={};R(ss,{aliasCommand:()=>jm,unaliasCommand:()=>zm});var Um,Wt,jm,zm,is=C(()=>{"use strict";L();Um={name:"alias",summary:"define or display aliases",usage:"alias [name[=value] ...]",options:[" --help display this help and exit"]},Wt="BASH_ALIAS_",jm={name:"alias",async execute(t,e){if(N(t))return k(Um);if(t.length===0){let r="";for(let[n,s]of Object.entries(e.env))if(n.startsWith(Wt)){let i=n.slice(Wt.length);r+=`alias ${i}='${s}'
438
- `}return{stdout:r,stderr:"",exitCode:0}}for(let r of t){let n=r.indexOf("=");if(n===-1){let s=Wt+r;return e.env[s]?{stdout:`alias ${r}='${e.env[s]}'
437
+ `:""),stderr:"",exitCode:s}}}});var Cs={};$(Cs,{aliasCommand:()=>m0,unaliasCommand:()=>g0});var h0,Jt,m0,g0,As=C(()=>{"use strict";L();h0={name:"alias",summary:"define or display aliases",usage:"alias [name[=value] ...]",options:[" --help display this help and exit"]},Jt="BASH_ALIAS_",m0={name:"alias",async execute(t,e){if(N(t))return k(h0);if(t.length===0){let r="";for(let[n,s]of Object.entries(e.env))if(n.startsWith(Jt)){let i=n.slice(Jt.length);r+=`alias ${i}='${s}'
438
+ `}return{stdout:r,stderr:"",exitCode:0}}for(let r of t){let n=r.indexOf("=");if(n===-1){let s=Jt+r;return e.env[s]?{stdout:`alias ${r}='${e.env[s]}'
439
439
  `,stderr:"",exitCode:0}:{stdout:"",stderr:`alias: ${r}: not found
440
- `,exitCode:1}}else{let s=r.slice(0,n),i=r.slice(n+1);(i.startsWith("'")&&i.endsWith("'")||i.startsWith('"')&&i.endsWith('"'))&&(i=i.slice(1,-1)),e.env[Wt+s]=i}}return{stdout:"",stderr:"",exitCode:0}}},zm={name:"unalias",async execute(t,e){if(N(t))return k({name:"unalias",summary:"remove alias definitions",usage:"unalias name [name ...]",options:["-a remove all aliases"," --help display this help and exit"]});if(t.length===0)return{stdout:"",stderr:`unalias: usage: unalias [-a] name [name ...]
441
- `,exitCode:1};if(t[0]==="-a"){for(let s of Object.keys(e.env))s.startsWith(Wt)&&delete e.env[s];return{stdout:"",stderr:"",exitCode:0}}let r=!1,n="";for(let s of t){let i=Wt+s;e.env[i]?delete e.env[i]:(n+=`unalias: ${s}: not found
442
- `,r=!0)}return{stdout:"",stderr:n,exitCode:r?1:0}}}});var yl={};R(yl,{historyCommand:()=>Gm});var Hm,gl,Gm,xl=C(()=>{"use strict";L();Hm={name:"history",summary:"display command history",usage:"history [n]",options:["-c clear the history list"," --help display this help and exit"]},gl="BASH_HISTORY",Gm={name:"history",async execute(t,e){if(N(t))return k(Hm);let r=e.env[gl]||"[]",n;try{n=JSON.parse(r)}catch{n=[]}if(t[0]==="-c")return e.env[gl]="[]",{stdout:"",stderr:"",exitCode:0};let s=n.length;t[0]&&/^\d+$/.test(t[0])&&(s=Math.min(parseInt(t[0],10),n.length));let i=n.length-s,o="";for(let a=i;a<n.length;a++){let l=(a+1).toString().padStart(5," ");o+=`${l} ${n[a]}
443
- `}return{stdout:o,stderr:"",exitCode:0}}}});var wl={};R(wl,{xargsCommand:()=>Vm});var qm,Vm,El=C(()=>{"use strict";L();qm={name:"xargs",summary:"build and execute command lines from standard input",usage:"xargs [OPTION]... [COMMAND [INITIAL-ARGS]]",options:["-I REPLACE replace occurrences of REPLACE with input","-d DELIM use DELIM as input delimiter (e.g., -d '\\n' for newline)","-n NUM use at most NUM arguments per command line","-P NUM run at most NUM processes at a time","-0, --null items are separated by null, not whitespace","-t, --verbose print commands before executing","-r, --no-run-if-empty do not run command if input is empty"," --help display this help and exit"]},Vm={name:"xargs",async execute(t,e){if(N(t))return k(qm);let r=null,n=null,s=null,i=null,o=!1,a=!1,l=!1,c=0;for(let E=0;E<t.length;E++){let b=t[E];if(b==="-I"&&E+1<t.length)r=t[++E],c=E+1;else if(b==="-d"&&E+1<t.length)n=t[++E].replace(/\\n/g,`
444
- `).replace(/\\t/g," ").replace(/\\r/g,"\r").replace(/\\0/g,"\0").replace(/\\\\/g,"\\"),c=E+1;else if(b==="-n"&&E+1<t.length)s=parseInt(t[++E],10),c=E+1;else if(b==="-P"&&E+1<t.length)i=parseInt(t[++E],10),c=E+1;else if(b==="-0"||b==="--null")o=!0,c=E+1;else if(b==="-t"||b==="--verbose")a=!0,c=E+1;else if(b==="-r"||b==="--no-run-if-empty")l=!0,c=E+1;else{if(b.startsWith("--"))return P("xargs",b);if(b.startsWith("-")&&b.length>1){for(let S of b.slice(1))if(!"0tr".includes(S))return P("xargs",`-${S}`);b.includes("0")&&(o=!0),b.includes("t")&&(a=!0),b.includes("r")&&(l=!0),c=E+1}else if(!b.startsWith("-")){c=E;break}}}let u=t.slice(c);u.length===0&&u.push("echo");let f;if(o?f=e.stdin.split("\0").filter(E=>E.length>0):n!==null?f=e.stdin.replace(/\n$/,"").split(n).filter(b=>b.length>0):f=e.stdin.split(/\s+/).map(E=>E.trim()).filter(E=>E.length>0),f.length===0)return l?{stdout:"",stderr:"",exitCode:0}:{stdout:"",stderr:"",exitCode:0};let p="",d="",h=0,m=E=>/[\s"'\\$`!*?[\]{}();&|<>#]/.test(E)?`"${E.replace(/([\\"`$])/g,"\\$1")}"`:E,g=async E=>{let b=E.map(m).join(" ");return a&&(d+=`${b}
440
+ `,exitCode:1}}else{let s=r.slice(0,n),i=r.slice(n+1);(i.startsWith("'")&&i.endsWith("'")||i.startsWith('"')&&i.endsWith('"'))&&(i=i.slice(1,-1)),e.env[Jt+s]=i}}return{stdout:"",stderr:"",exitCode:0}}},g0={name:"unalias",async execute(t,e){if(N(t))return k({name:"unalias",summary:"remove alias definitions",usage:"unalias name [name ...]",options:["-a remove all aliases"," --help display this help and exit"]});if(t.length===0)return{stdout:"",stderr:`unalias: usage: unalias [-a] name [name ...]
441
+ `,exitCode:1};if(t[0]==="-a"){for(let s of Object.keys(e.env))s.startsWith(Jt)&&delete e.env[s];return{stdout:"",stderr:"",exitCode:0}}let r=!1,n="";for(let s of t){let i=Jt+s;e.env[i]?delete e.env[i]:(n+=`unalias: ${s}: not found
442
+ `,r=!0)}return{stdout:"",stderr:n,exitCode:r?1:0}}}});var Bl={};$(Bl,{historyCommand:()=>x0});var y0,_l,x0,Wl=C(()=>{"use strict";L();y0={name:"history",summary:"display command history",usage:"history [n]",options:["-c clear the history list"," --help display this help and exit"]},_l="BASH_HISTORY",x0={name:"history",async execute(t,e){if(N(t))return k(y0);let r=e.env[_l]||"[]",n;try{n=JSON.parse(r)}catch{n=[]}if(t[0]==="-c")return e.env[_l]="[]",{stdout:"",stderr:"",exitCode:0};let s=n.length;t[0]&&/^\d+$/.test(t[0])&&(s=Math.min(parseInt(t[0],10),n.length));let i=n.length-s,o="";for(let a=i;a<n.length;a++){let l=(a+1).toString().padStart(5," ");o+=`${l} ${n[a]}
443
+ `}return{stdout:o,stderr:"",exitCode:0}}}});var Ul={};$(Ul,{xargsCommand:()=>E0});var w0,E0,zl=C(()=>{"use strict";L();w0={name:"xargs",summary:"build and execute command lines from standard input",usage:"xargs [OPTION]... [COMMAND [INITIAL-ARGS]]",options:["-I REPLACE replace occurrences of REPLACE with input","-d DELIM use DELIM as input delimiter (e.g., -d '\\n' for newline)","-n NUM use at most NUM arguments per command line","-P NUM run at most NUM processes at a time","-0, --null items are separated by null, not whitespace","-t, --verbose print commands before executing","-r, --no-run-if-empty do not run command if input is empty"," --help display this help and exit"]},E0={name:"xargs",async execute(t,e){if(N(t))return k(w0);let r=null,n=null,s=null,i=null,o=!1,a=!1,l=!1,c=0;for(let E=0;E<t.length;E++){let b=t[E];if(b==="-I"&&E+1<t.length)r=t[++E],c=E+1;else if(b==="-d"&&E+1<t.length)n=t[++E].replace(/\\n/g,`
444
+ `).replace(/\\t/g," ").replace(/\\r/g,"\r").replace(/\\0/g,"\0").replace(/\\\\/g,"\\"),c=E+1;else if(b==="-n"&&E+1<t.length)s=parseInt(t[++E],10),c=E+1;else if(b==="-P"&&E+1<t.length)i=parseInt(t[++E],10),c=E+1;else if(b==="-0"||b==="--null")o=!0,c=E+1;else if(b==="-t"||b==="--verbose")a=!0,c=E+1;else if(b==="-r"||b==="--no-run-if-empty")l=!0,c=E+1;else{if(b.startsWith("--"))return R("xargs",b);if(b.startsWith("-")&&b.length>1){for(let S of b.slice(1))if(!"0tr".includes(S))return R("xargs",`-${S}`);b.includes("0")&&(o=!0),b.includes("t")&&(a=!0),b.includes("r")&&(l=!0),c=E+1}else if(!b.startsWith("-")){c=E;break}}}let u=t.slice(c);u.length===0&&u.push("echo");let f;if(o?f=e.stdin.split("\0").filter(E=>E.length>0):n!==null?f=e.stdin.replace(/\n$/,"").split(n).filter(b=>b.length>0):f=e.stdin.split(/\s+/).map(E=>E.trim()).filter(E=>E.length>0),f.length===0)return l?{stdout:"",stderr:"",exitCode:0}:{stdout:"",stderr:"",exitCode:0};let d="",p="",h=0,m=E=>/[\s"'\\$`!*?[\]{}();&|<>#]/.test(E)?`"${E.replace(/([\\"`$])/g,"\\$1")}"`:E,g=async E=>{let b=E.map(m).join(" ");return a&&(p+=`${b}
445
445
  `),e.exec?e.exec(b,{cwd:e.cwd}):{stdout:`${b}
446
- `,stderr:"",exitCode:0}},w=async E=>{if(i!==null&&i>1)for(let b=0;b<E.length;b+=i){let S=E.slice(b,b+i),I=await Promise.all(S.map(g));for(let D of I)p+=D.stdout,d+=D.stderr,D.exitCode!==0&&(h=D.exitCode)}else for(let b of E){let S=await g(b);p+=S.stdout,d+=S.stderr,S.exitCode!==0&&(h=S.exitCode)}};if(r!==null){let E=f.map(b=>u.map(S=>S.replaceAll(r,b)));await w(E)}else if(s!==null){let E=[];for(let b=0;b<f.length;b+=s){let S=f.slice(b,b+s);E.push([...u,...S])}await w(E)}else{let E=[...u,...f],b=await g(E);p+=b.stdout,d+=b.stderr,h=b.exitCode}return{stdout:p,stderr:d,exitCode:h}}}});var os={};R(os,{falseCommand:()=>Zm,trueCommand:()=>Km});var Km,Zm,as=C(()=>{"use strict";Km={name:"true",async execute(){return{stdout:"",stderr:"",exitCode:0}}},Zm={name:"false",async execute(){return{stdout:"",stderr:"",exitCode:1}}}});var bl={};R(bl,{clearCommand:()=>Xm});var Qm,Xm,Sl=C(()=>{"use strict";L();Qm={name:"clear",summary:"clear the terminal screen",usage:"clear [OPTIONS]",options:[" --help display this help and exit"]},Xm={name:"clear",async execute(t,e){return N(t)?k(Qm):{stdout:"\x1B[2J\x1B[H",stderr:"",exitCode:0}}}});var ls={};R(ls,{bashCommand:()=>Jm,shCommand:()=>Ym});async function Hr(t,e,r,n){if(!n.exec)return{stdout:"",stderr:`bash: internal error: exec function not available
446
+ `,stderr:"",exitCode:0}},w=async E=>{if(i!==null&&i>1)for(let b=0;b<E.length;b+=i){let S=E.slice(b,b+i),I=await Promise.all(S.map(g));for(let F of I)d+=F.stdout,p+=F.stderr,F.exitCode!==0&&(h=F.exitCode)}else for(let b of E){let S=await g(b);d+=S.stdout,p+=S.stderr,S.exitCode!==0&&(h=S.exitCode)}};if(r!==null){let E=f.map(b=>u.map(S=>S.replaceAll(r,b)));await w(E)}else if(s!==null){let E=[];for(let b=0;b<f.length;b+=s){let S=f.slice(b,b+s);E.push([...u,...S])}await w(E)}else{let E=[...u,...f],b=await g(E);d+=b.stdout,p+=b.stderr,h=b.exitCode}return{stdout:d,stderr:p,exitCode:h}}}});var ks={};$(ks,{falseCommand:()=>S0,trueCommand:()=>b0});var b0,S0,Ns=C(()=>{"use strict";b0={name:"true",async execute(){return{stdout:"",stderr:"",exitCode:0}}},S0={name:"false",async execute(){return{stdout:"",stderr:"",exitCode:1}}}});var jl={};$(jl,{clearCommand:()=>A0});var C0,A0,Hl=C(()=>{"use strict";L();C0={name:"clear",summary:"clear the terminal screen",usage:"clear [OPTIONS]",options:[" --help display this help and exit"]},A0={name:"clear",async execute(t,e){return N(t)?k(C0):{stdout:"\x1B[2J\x1B[H",stderr:"",exitCode:0}}}});var Is={};$(Is,{bashCommand:()=>k0,shCommand:()=>N0});async function ln(t,e,r,n){if(!n.exec)return{stdout:"",stderr:`bash: internal error: exec function not available
447
447
  `,exitCode:1};let s={0:e,"#":String(r.length),"@":r.join(" "),"*":r.join(" ")};r.forEach((u,f)=>{s[String(f+1)]=u});let i=t;if(i.startsWith("#!")){let u=i.indexOf(`
448
448
  `);u!==-1&&(i=i.slice(u+1))}let o=i.split(`
449
- `),a=[];for(let u of o){let f=u.trim();f&&!f.startsWith("#")&&a.push(f)}let l=a.join("; ");return await n.exec(l,{env:s,cwd:n.cwd})}var Cl,Jm,Ym,cs=C(()=>{"use strict";L();Cl={name:"bash",summary:"execute shell commands or scripts",usage:"bash [OPTIONS] [SCRIPT_FILE] [ARGUMENTS...]",options:["-c COMMAND execute COMMAND string"," --help display this help and exit"],notes:["Without -c, reads and executes commands from SCRIPT_FILE.","Arguments are passed as $1, $2, etc. to the script.",'$0 is set to the script name (or "bash" with -c).']},Jm={name:"bash",async execute(t,e){if(N(t))return k(Cl);if(t[0]==="-c"&&t.length>=2){let s=t[1],i=t[2]||"bash",o=t.slice(3);return Hr(s,i,o,e)}if(t.length===0)return{stdout:"",stderr:"",exitCode:0};let r=t[0],n=t.slice(1);try{let s=e.fs.resolvePath(e.cwd,r),i=await e.fs.readFile(s);return Hr(i,r,n,e)}catch{return{stdout:"",stderr:`bash: ${r}: No such file or directory
450
- `,exitCode:127}}}},Ym={name:"sh",async execute(t,e){if(N(t))return k({...Cl,name:"sh",summary:"execute shell commands or scripts (POSIX shell)"});if(t[0]==="-c"&&t.length>=2){let s=t[1],i=t[2]||"sh",o=t.slice(3);return Hr(s,i,o,e)}if(t.length===0)return{stdout:"",stderr:"",exitCode:0};let r=t[0],n=t.slice(1);try{let s=e.fs.resolvePath(e.cwd,r),i=await e.fs.readFile(s);return Hr(i,r,n,e)}catch{return{stdout:"",stderr:`sh: ${r}: No such file or directory
451
- `,exitCode:127}}}}});function t0(t){return{vars:new Map,limits:{maxIterations:t?.limits?.maxIterations??e0},env:t?.env}}function us(t,e,r){let n=new Map(t.vars);return n.set(e,r),{vars:n,limits:t.limits,env:t.env,root:t.root,currentPath:t.currentPath}}function fs(t,e){let r=t;for(let n of e)if(r&&typeof r=="object")r=r[n];else return;return r}function Ut(t){if(t.type==="Identity")return[];if(t.type==="Field"){let e=t.base?Ut(t.base):[];return e===null?null:[...e,t.name]}if(t.type==="Index"&&t.index.type==="Literal"){let e=t.base?Ut(t.base):[];if(e===null)return null;let r=t.index.value;return typeof r=="number"||typeof r=="string"?[...e,r]:null}if(t.type==="Pipe"){let e=Ut(t.left);return e===null?null:ps(e,t.right)}return t.type==="Call"&&(t.name==="parent"||t.name==="root"),null}function ps(t,e){if(e.type==="Call"){if(e.name==="parent"){let r=1;if(e.args.length>0&&e.args[0].type==="Literal"){let n=e.args[0].value;typeof n=="number"&&(r=n)}if(r>=0)return t.slice(0,Math.max(0,t.length-r));{let n=-r-1;return t.slice(0,Math.min(n,t.length))}}if(e.name==="root")return[]}if(e.type==="Field"){let r=Ut(e);if(r!==null)return[...t,...r]}if(e.type==="Index"&&e.index.type==="Literal"){let r=Ut(e);if(r!==null)return[...t,...r]}if(e.type==="Pipe"){let r=ps(t,e.left);return r===null?null:ps(r,e.right)}return e.type==="Identity"?t:null}function A(t,e,r){let n=r&&"vars"in r?r:t0(r);switch(n.root===void 0&&(n={...n,root:t,currentPath:[]}),e.type){case"Identity":return[t];case"Field":return(e.base?A(t,e.base,n):[t]).flatMap(i=>{if(i&&typeof i=="object"&&!Array.isArray(i)){let o=i[e.name];return[o===void 0?null:o]}return[null]});case"Index":return(e.base?A(t,e.base,n):[t]).flatMap(i=>A(i,e.index,n).flatMap(a=>{if(typeof a=="number"&&Array.isArray(i)){let l=a<0?i.length+a:a;return l>=0&&l<i.length?[i[l]]:[null]}return typeof a=="string"&&i&&typeof i=="object"&&!Array.isArray(i)?[i[a]]:[null]}));case"Slice":return(e.base?A(t,e.base,n):[t]).flatMap(i=>{if(!Array.isArray(i)&&typeof i!="string")return[null];let o=i.length,a=e.start?A(t,e.start,n):[0],l=e.end?A(t,e.end,n):[o];return a.flatMap(c=>l.map(u=>{let f=Al(c,o),p=Al(u,o);return Array.isArray(i),i.slice(f,p)}))});case"Iterate":return(e.base?A(t,e.base,n):[t]).flatMap(i=>Array.isArray(i)?i:i&&typeof i=="object"?Object.values(i):[]);case"Pipe":{let s=A(t,e.left,n),i=Ut(e.left);return s.flatMap(o=>{if(i!==null){let a={...n,currentPath:[...n.currentPath??[],...i]};return A(o,e.right,a)}return A(o,e.right,n)})}case"Comma":{let s=A(t,e.left,n),i=A(t,e.right,n);return[...s,...i]}case"Literal":return[e.value];case"Array":return e.elements?[A(t,e.elements,n)]:[[]];case"Object":{let s=[{}];for(let i of e.entries){let o=typeof i.key=="string"?[i.key]:A(t,i.key,n),a=A(t,i.value,n),l=[];for(let c of s)for(let u of o)for(let f of a)l.push({...c,[String(u)]:f});s.length=0,s.push(...l)}return s}case"Paren":return A(t,e.expr,n);case"BinaryOp":return s0(t,e.op,e.left,e.right,n);case"UnaryOp":return A(t,e.operand,n).map(i=>e.op==="-"?typeof i=="number"?-i:null:e.op==="not"?!Ne(i):null);case"Cond":return A(t,e.cond,n).flatMap(i=>{if(Ne(i))return A(t,e.then,n);for(let o of e.elifs)if(A(t,o.cond,n).some(Ne))return A(t,o.then,n);return e.else?A(t,e.else,n):[null]});case"Try":try{return A(t,e.body,n)}catch{return e.catch?A(t,e.catch,n):[]}case"Call":return Nl(t,e.name,e.args,n);case"VarBind":return A(t,e.value,n).flatMap(i=>{let o=us(n,e.name,i);return A(t,e.body,o)});case"VarRef":{if(e.name==="$ENV")return[n.env??{}];let s=n.vars.get(e.name);return s!==void 0?[s]:[null]}case"Recurse":{let s=[],i=new WeakSet,o=a=>{if(a&&typeof a=="object"){if(i.has(a))return;i.add(a)}if(s.push(a),Array.isArray(a))for(let l of a)o(l);else if(a&&typeof a=="object")for(let l of Object.keys(a))o(a[l])};return o(t),s}case"Optional":try{return A(t,e.expr,n)}catch{return[]}case"StringInterp":return[e.parts.map(i=>typeof i=="string"?i:A(t,i,n).map(a=>typeof a=="string"?a:JSON.stringify(a)).join("")).join("")];case"UpdateOp":return[r0(t,e.path,e.op,e.value,n)];case"Reduce":{let s=A(t,e.expr,n),i=A(t,e.init,n)[0];for(let o of s){let a=us(n,e.varName,o);i=A(i,e.update,a)[0]}return[i]}case"Foreach":{let s=A(t,e.expr,n),i=A(t,e.init,n)[0],o=[];for(let a of s){let l=us(n,e.varName,a);if(i=A(i,e.update,l)[0],e.extract){let c=A(i,e.extract,l);o.push(...c)}else o.push(i)}return o}default:{let s=e;throw new Error(`Unknown AST node type: ${s.type}`)}}}function Al(t,e){return t<0?Math.max(0,e+t):Math.min(t,e)}function r0(t,e,r,n,s){function i(l,c){switch(r){case"=":return c;case"|=":return A(l,n,s)[0]??null;case"+=":return typeof l=="number"&&typeof c=="number"||typeof l=="string"&&typeof c=="string"?l+c:Array.isArray(l)&&Array.isArray(c)?[...l,...c]:l&&c&&typeof l=="object"&&typeof c=="object"?{...l,...c}:c;case"-=":return typeof l=="number"&&typeof c=="number"?l-c:l;case"*=":return typeof l=="number"&&typeof c=="number"?l*c:l;case"/=":return typeof l=="number"&&typeof c=="number"?l/c:l;case"%=":return typeof l=="number"&&typeof c=="number"?l%c:l;case"//=":return l===null||l===!1?c:l;default:return c}}function o(l,c,u){switch(c.type){case"Identity":return u(l);case"Field":{if(c.base)return o(l,c.base,f=>{if(f&&typeof f=="object"&&!Array.isArray(f)){let p={...f};return p[c.name]=u(p[c.name]),p}return f});if(l&&typeof l=="object"&&!Array.isArray(l)){let f={...l};return f[c.name]=u(f[c.name]),f}return l}case"Index":{let p=A(t,c.index,s)[0];if(c.base)return o(l,c.base,d=>{if(typeof p=="number"&&Array.isArray(d)){let h=[...d],m=p<0?h.length+p:p;return m>=0&&m<h.length&&(h[m]=u(h[m])),h}if(typeof p=="string"&&d&&typeof d=="object"&&!Array.isArray(d)){let h={...d};return h[p]=u(h[p]),h}return d});if(typeof p=="number"&&Array.isArray(l)){let d=[...l],h=p<0?d.length+p:p;return h>=0&&h<d.length&&(d[h]=u(d[h])),d}if(typeof p=="string"&&l&&typeof l=="object"&&!Array.isArray(l)){let d={...l};return d[p]=u(d[p]),d}return l}case"Iterate":{let f=p=>{if(Array.isArray(p))return p.map(d=>u(d));if(p&&typeof p=="object"){let d={};for(let[h,m]of Object.entries(p))d[h]=u(m);return d}return p};return c.base?o(l,c.base,f):f(l)}case"Pipe":{let f=o(l,c.left,p=>p);return o(f,c.right,u)}default:return u(l)}}return o(t,e,l=>{if(r==="|=")return i(l,l);let c=A(t,n,s);return i(l,c[0]??null)})}function n0(t,e,r){function n(s,i){switch(i.type){case"Identity":return null;case"Field":{if(s&&typeof s=="object"&&!Array.isArray(s)){let o={...s};return delete o[i.name],o}return s}case"Index":{let a=A(t,i.index,r)[0];if(typeof a=="number"&&Array.isArray(s)){let l=[...s],c=a<0?l.length+a:a;return c>=0&&c<l.length&&l.splice(c,1),l}if(typeof a=="string"&&s&&typeof s=="object"&&!Array.isArray(s)){let l={...s};return delete l[a],l}return s}case"Iterate":return Array.isArray(s)?[]:s&&typeof s=="object"?{}:s;default:return s}}return n(t,e)}function Ne(t){return t!==null&&t!==!1}function s0(t,e,r,n,s){if(e==="and")return A(t,r,s).flatMap(l=>Ne(l)?A(t,n,s).map(u=>Ne(u)):[!1]);if(e==="or")return A(t,r,s).flatMap(l=>Ne(l)?[!0]:A(t,n,s).map(u=>Ne(u)));if(e==="//"){let l=A(t,r,s).filter(c=>c!=null&&c!==!1);return l.length>0?l:A(t,n,s)}let i=A(t,r,s),o=A(t,n,s);return i.flatMap(a=>o.map(l=>{switch(e){case"+":return typeof a=="number"&&typeof l=="number"||typeof a=="string"&&typeof l=="string"?a+l:Array.isArray(a)&&Array.isArray(l)?[...a,...l]:a&&l&&typeof a=="object"&&typeof l=="object"&&!Array.isArray(a)&&!Array.isArray(l)?{...a,...l}:null;case"-":if(typeof a=="number"&&typeof l=="number")return a-l;if(Array.isArray(a)&&Array.isArray(l)){let c=new Set(l.map(u=>JSON.stringify(u)));return a.filter(u=>!c.has(JSON.stringify(u)))}return null;case"*":return typeof a=="number"&&typeof l=="number"?a*l:typeof a=="string"&&typeof l=="number"?a.repeat(l):a&&l&&typeof a=="object"&&typeof l=="object"&&!Array.isArray(a)&&!Array.isArray(l)?kl(a,l):null;case"/":return typeof a=="number"&&typeof l=="number"?a/l:typeof a=="string"&&typeof l=="string"?a.split(l):null;case"%":return typeof a=="number"&&typeof l=="number"?a%l:null;case"==":return jt(a,l);case"!=":return!jt(a,l);case"<":return Gr(a,l)<0;case"<=":return Gr(a,l)<=0;case">":return Gr(a,l)>0;case">=":return Gr(a,l)>=0;default:return null}}))}function jt(t,e){return JSON.stringify(t)===JSON.stringify(e)}function Gr(t,e){return typeof t=="number"&&typeof e=="number"?t-e:typeof t=="string"&&typeof e=="string"?t.localeCompare(e):0}function kl(t,e){let r={...t};for(let n of Object.keys(e))n in r&&r[n]&&typeof r[n]=="object"&&!Array.isArray(r[n])&&e[n]&&typeof e[n]=="object"&&!Array.isArray(e[n])?r[n]=kl(r[n],e[n]):r[n]=e[n];return r}function Nl(t,e,r,n){switch(e){case"keys":return Array.isArray(t)?[t.map((s,i)=>i)]:t&&typeof t=="object"?[Object.keys(t).sort()]:[null];case"keys_unsorted":return Array.isArray(t)?[t.map((s,i)=>i)]:t&&typeof t=="object"?[Object.keys(t)]:[null];case"values":return Array.isArray(t)?[t]:t&&typeof t=="object"?[Object.values(t)]:[null];case"length":return typeof t=="string"?[t.length]:Array.isArray(t)?[t.length]:t&&typeof t=="object"?[Object.keys(t).length]:t===null?[0]:[null];case"utf8bytelength":return typeof t=="string"?[new TextEncoder().encode(t).length]:[null];case"type":return t===null?["null"]:Array.isArray(t)?["array"]:typeof t=="boolean"?["boolean"]:typeof t=="number"?["number"]:typeof t=="string"?["string"]:typeof t=="object"?["object"]:["null"];case"empty":return[];case"error":{let s=r.length>0?A(t,r[0],n)[0]:t;throw new Error(String(s))}case"not":return[!Ne(t)];case"null":return[null];case"true":return[!0];case"false":return[!1];case"first":if(r.length>0){let s=A(t,r[0],n);return s.length>0?[s[0]]:[]}return Array.isArray(t)&&t.length>0?[t[0]]:[null];case"last":if(r.length>0){let s=A(t,r[0],n);return s.length>0?[s[s.length-1]]:[]}return Array.isArray(t)&&t.length>0?[t[t.length-1]]:[null];case"nth":{if(r.length<1)return[null];let i=A(t,r[0],n)[0];if(r.length>1){let o=A(t,r[1],n);return i>=0&&i<o.length?[o[i]]:[]}return Array.isArray(t)?i>=0&&i<t.length?[t[i]]:[null]:[null]}case"range":{if(r.length===0)return[];let s=A(t,r[0],n);if(r.length===1){let c=s[0];return Array.from({length:c},(u,f)=>f)}let i=A(t,r[1],n),o=s[0],a=i[0],l=[];for(let c=o;c<a;c++)l.push(c);return l}case"reverse":return Array.isArray(t)?[[...t].reverse()]:typeof t=="string"?[t.split("").reverse().join("")]:[null];case"sort":return Array.isArray(t)?[[...t].sort(bt)]:[null];case"sort_by":return!Array.isArray(t)||r.length===0?[null]:[[...t].sort((i,o)=>{let a=A(i,r[0],n)[0],l=A(o,r[0],n)[0];return bt(a,l)})];case"unique":if(Array.isArray(t)){let s=new Set,i=[];for(let o of t){let a=JSON.stringify(o);s.has(a)||(s.add(a),i.push(o))}return[i]}return[null];case"unique_by":{if(!Array.isArray(t)||r.length===0)return[null];let s=new Set,i=[];for(let o of t){let a=JSON.stringify(A(o,r[0],n)[0]);s.has(a)||(s.add(a),i.push(o))}return[i]}case"group_by":{if(!Array.isArray(t)||r.length===0)return[null];let s=new Map;for(let i of t){let o=JSON.stringify(A(i,r[0],n)[0]);s.has(o)||s.set(o,[]),s.get(o)?.push(i)}return[[...s.values()]]}case"max":return Array.isArray(t)&&t.length>0?[t.reduce((s,i)=>bt(s,i)>0?s:i)]:[null];case"max_by":return!Array.isArray(t)||t.length===0||r.length===0?[null]:[t.reduce((s,i)=>{let o=A(s,r[0],n)[0],a=A(i,r[0],n)[0];return bt(o,a)>0?s:i})];case"min":return Array.isArray(t)&&t.length>0?[t.reduce((s,i)=>bt(s,i)<0?s:i)]:[null];case"min_by":return!Array.isArray(t)||t.length===0||r.length===0?[null]:[t.reduce((s,i)=>{let o=A(s,r[0],n)[0],a=A(i,r[0],n)[0];return bt(o,a)<0?s:i})];case"flatten":{if(!Array.isArray(t))return[null];let s=r.length>0?A(t,r[0],n)[0]:Number.POSITIVE_INFINITY;return[t.flat(s)]}case"add":if(Array.isArray(t)){if(t.length===0)return[null];if(t.every(s=>typeof s=="number"))return[t.reduce((s,i)=>s+i,0)];if(t.every(s=>typeof s=="string"))return[t.join("")];if(t.every(s=>Array.isArray(s)))return[t.flat()];if(t.every(s=>s&&typeof s=="object"&&!Array.isArray(s)))return[Object.assign({},...t)]}return[null];case"any":return r.length>0?Array.isArray(t)?[t.some(s=>Ne(A(s,r[0],n)[0]))]:[!1]:Array.isArray(t)?[t.some(Ne)]:[!1];case"all":return r.length>0?Array.isArray(t)?[t.every(s=>Ne(A(s,r[0],n)[0]))]:[!0]:Array.isArray(t)?[t.every(Ne)]:[!0];case"select":return r.length===0?[t]:A(t,r[0],n).some(Ne)?[t]:[];case"map":return r.length===0||!Array.isArray(t)?[null]:[t.flatMap(i=>A(i,r[0],n))];case"map_values":{if(r.length===0)return[null];if(Array.isArray(t))return[t.flatMap(s=>A(s,r[0],n))];if(t&&typeof t=="object"){let s={};for(let[i,o]of Object.entries(t)){let a=A(o,r[0],n);a.length>0&&(s[i]=a[0])}return[s]}return[null]}case"has":{if(r.length===0)return[!1];let i=A(t,r[0],n)[0];return Array.isArray(t)&&typeof i=="number"?[i>=0&&i<t.length]:t&&typeof t=="object"&&typeof i=="string"?[i in t]:[!1]}case"in":{if(r.length===0)return[!1];let i=A(t,r[0],n)[0];return Array.isArray(i)&&typeof t=="number"?[t>=0&&t<i.length]:i&&typeof i=="object"&&typeof t=="string"?[t in i]:[!1]}case"contains":{if(r.length===0)return[!1];let s=A(t,r[0],n);return[qr(t,s[0])]}case"inside":{if(r.length===0)return[!1];let s=A(t,r[0],n);return[qr(s[0],t)]}case"getpath":{if(r.length===0)return[null];let i=A(t,r[0],n)[0],o=t;for(let a of i){if(o==null)return[null];if(Array.isArray(o)&&typeof a=="number")o=o[a];else if(typeof o=="object"&&typeof a=="string")o=o[a];else return[null]}return[o]}case"setpath":{if(r.length<2)return[null];let i=A(t,r[0],n)[0],a=A(t,r[1],n)[0];return[ds(t,i,a)]}case"delpaths":{if(r.length===0)return[t];let i=A(t,r[0],n)[0],o=t;for(let a of i.sort((l,c)=>c.length-l.length))o=hs(o,a);return[o]}case"path":{if(r.length===0)return[[]];let s=[];return i0(t,r[0],n,[],s),s}case"del":return r.length===0?[t]:[n0(t,r[0],n)];case"paths":{let s=[],i=(o,a)=>{if(o&&typeof o=="object")if(Array.isArray(o))for(let l=0;l<o.length;l++)s.push([...a,l]),i(o[l],[...a,l]);else for(let l of Object.keys(o))s.push([...a,l]),i(o[l],[...a,l])};return i(t,[]),r.length>0?s.filter(o=>{let a=t;for(let c of o)if(Array.isArray(a)&&typeof c=="number")a=a[c];else if(a&&typeof a=="object"&&typeof c=="string")a=a[c];else return!1;return A(a,r[0],n).some(Ne)}):s}case"leaf_paths":{let s=[],i=(o,a)=>{if(o===null||typeof o!="object")s.push(a);else if(Array.isArray(o))for(let l=0;l<o.length;l++)i(o[l],[...a,l]);else for(let l of Object.keys(o))i(o[l],[...a,l])};return i(t,[]),[s]}case"to_entries":return t&&typeof t=="object"&&!Array.isArray(t)?[Object.entries(t).map(([s,i])=>({key:s,value:i}))]:[null];case"from_entries":if(Array.isArray(t)){let s={};for(let i of t)if(i&&typeof i=="object"){let o=i,a=o.key??o.name??o.k,l=o.value??o.v;a!==void 0&&(s[String(a)]=l)}return[s]}return[null];case"with_entries":{if(r.length===0)return[t];if(t&&typeof t=="object"&&!Array.isArray(t)){let i=Object.entries(t).map(([a,l])=>({key:a,value:l})).flatMap(a=>A(a,r[0],n)),o={};for(let a of i)if(a&&typeof a=="object"){let l=a,c=l.key??l.name??l.k,u=l.value??l.v;c!==void 0&&(o[String(c)]=u)}return[o]}return[null]}case"join":{if(!Array.isArray(t))return[null];let s=r.length>0?A(t,r[0],n):[""],i=String(s[0]);return[t.map(o=>typeof o=="string"?o:JSON.stringify(o)).join(i)]}case"split":{if(typeof t!="string"||r.length===0)return[null];let s=A(t,r[0],n),i=String(s[0]);return[t.split(i)]}case"test":{if(typeof t!="string"||r.length===0)return[!1];let s=A(t,r[0],n),i=String(s[0]);try{let o=r.length>1?String(A(t,r[1],n)[0]):"";return[new RegExp(i,o).test(t)]}catch{return[!1]}}case"match":{if(typeof t!="string"||r.length===0)return[null];let s=A(t,r[0],n),i=String(s[0]);try{let o=r.length>1?String(A(t,r[1],n)[0]):"",l=new RegExp(i,`${o}d`).exec(t);if(!l)return[];let c=l.indices;return[{offset:l.index,length:l[0].length,string:l[0],captures:l.slice(1).map((u,f)=>({offset:c?.[f+1]?.[0]??null,length:u?.length??0,string:u??"",name:null}))}]}catch{return[null]}}case"capture":{if(typeof t!="string"||r.length===0)return[null];let s=A(t,r[0],n),i=String(s[0]);try{let o=r.length>1?String(A(t,r[1],n)[0]):"",a=new RegExp(i,o),l=t.match(a);return!l||!l.groups?[{}]:[l.groups]}catch{return[null]}}case"sub":{if(typeof t!="string"||r.length<2)return[null];let s=A(t,r[0],n),i=A(t,r[1],n),o=String(s[0]),a=String(i[0]);try{let l=r.length>2?String(A(t,r[2],n)[0]):"";return[t.replace(new RegExp(o,l),a)]}catch{return[t]}}case"gsub":{if(typeof t!="string"||r.length<2)return[null];let s=A(t,r[0],n),i=A(t,r[1],n),o=String(s[0]),a=String(i[0]);try{let l=r.length>2?String(A(t,r[2],n)[0]):"g",c=l.includes("g")?l:`${l}g`;return[t.replace(new RegExp(o,c),a)]}catch{return[t]}}case"ascii_downcase":return typeof t=="string"?[t.toLowerCase()]:[null];case"ascii_upcase":return typeof t=="string"?[t.toUpperCase()]:[null];case"ltrimstr":{if(typeof t!="string"||r.length===0)return[t];let s=A(t,r[0],n),i=String(s[0]);return[t.startsWith(i)?t.slice(i.length):t]}case"rtrimstr":{if(typeof t!="string"||r.length===0)return[t];let s=A(t,r[0],n),i=String(s[0]);return[t.endsWith(i)?t.slice(0,-i.length):t]}case"trim":return typeof t=="string"?[t.trim()]:[t];case"startswith":{if(typeof t!="string"||r.length===0)return[!1];let s=A(t,r[0],n);return[t.startsWith(String(s[0]))]}case"endswith":{if(typeof t!="string"||r.length===0)return[!1];let s=A(t,r[0],n);return[t.endsWith(String(s[0]))]}case"index":{if(r.length===0)return[null];let i=A(t,r[0],n)[0];if(typeof t=="string"&&typeof i=="string"){let o=t.indexOf(i);return[o>=0?o:null]}if(Array.isArray(t)){let o=t.findIndex(a=>jt(a,i));return[o>=0?o:null]}return[null]}case"rindex":{if(r.length===0)return[null];let i=A(t,r[0],n)[0];if(typeof t=="string"&&typeof i=="string"){let o=t.lastIndexOf(i);return[o>=0?o:null]}if(Array.isArray(t)){for(let o=t.length-1;o>=0;o--)if(jt(t[o],i))return[o];return[null]}return[null]}case"indices":{if(r.length===0)return[[]];let i=A(t,r[0],n)[0],o=[];if(typeof t=="string"&&typeof i=="string"){let a=t.indexOf(i);for(;a!==-1;)o.push(a),a=t.indexOf(i,a+1)}else if(Array.isArray(t))for(let a=0;a<t.length;a++)jt(t[a],i)&&o.push(a);return[o]}case"floor":return typeof t=="number"?[Math.floor(t)]:[null];case"ceil":return typeof t=="number"?[Math.ceil(t)]:[null];case"round":return typeof t=="number"?[Math.round(t)]:[null];case"sqrt":return typeof t=="number"?[Math.sqrt(t)]:[null];case"fabs":case"abs":return typeof t=="number"?[Math.abs(t)]:[null];case"log":return typeof t=="number"?[Math.log(t)]:[null];case"log10":return typeof t=="number"?[Math.log10(t)]:[null];case"log2":return typeof t=="number"?[Math.log2(t)]:[null];case"exp":return typeof t=="number"?[Math.exp(t)]:[null];case"exp10":return typeof t=="number"?[10**t]:[null];case"exp2":return typeof t=="number"?[2**t]:[null];case"pow":{if(typeof t!="number"||r.length===0)return[null];let i=A(t,r[0],n)[0];return[t**i]}case"sin":return typeof t=="number"?[Math.sin(t)]:[null];case"cos":return typeof t=="number"?[Math.cos(t)]:[null];case"tan":return typeof t=="number"?[Math.tan(t)]:[null];case"asin":return typeof t=="number"?[Math.asin(t)]:[null];case"acos":return typeof t=="number"?[Math.acos(t)]:[null];case"atan":return typeof t=="number"?[Math.atan(t)]:[null];case"tostring":return typeof t=="string"?[t]:[JSON.stringify(t)];case"tonumber":if(typeof t=="number")return[t];if(typeof t=="string"){let s=Number(t);return[Number.isNaN(s)?null:s]}return[null];case"infinite":return[!Number.isFinite(t)];case"nan":return[Number.isNaN(t)];case"isinfinite":return[typeof t=="number"&&!Number.isFinite(t)];case"isnan":return[typeof t=="number"&&Number.isNaN(t)];case"isnormal":return[typeof t=="number"&&Number.isFinite(t)&&t!==0];case"isfinite":return[typeof t=="number"&&Number.isFinite(t)];case"numbers":return typeof t=="number"?[t]:[];case"strings":return typeof t=="string"?[t]:[];case"booleans":return typeof t=="boolean"?[t]:[];case"nulls":return t===null?[t]:[];case"arrays":return Array.isArray(t)?[t]:[];case"objects":return t&&typeof t=="object"&&!Array.isArray(t)?[t]:[];case"iterables":return Array.isArray(t)||t&&typeof t=="object"&&!Array.isArray(t)?[t]:[];case"scalars":return!Array.isArray(t)&&!(t&&typeof t=="object")?[t]:[];case"now":return[Date.now()/1e3];case"env":return[n.env??{}];case"recurse":{if(r.length===0){let a=[],l=c=>{if(a.push(c),Array.isArray(c))for(let u of c)l(u);else if(c&&typeof c=="object")for(let u of Object.keys(c))l(c[u])};return l(t),a}let s=[],i=new Set,o=a=>{let l=JSON.stringify(a);if(i.has(l))return;i.add(l),s.push(a);let c=A(a,r[0],n);for(let u of c)u!=null&&o(u)};return o(t),s}case"recurse_down":return Nl(t,"recurse",r,n);case"walk":{if(r.length===0)return[t];let s=new WeakSet,i=o=>{if(o&&typeof o=="object"){if(s.has(o))return o;s.add(o)}let a;if(Array.isArray(o))a=o.map(i);else if(o&&typeof o=="object"){let c={};for(let[u,f]of Object.entries(o))c[u]=i(f);a=c}else a=o;return A(a,r[0],n)[0]};return[i(t)]}case"transpose":{if(!Array.isArray(t))return[null];if(t.length===0)return[[]];let s=Math.max(...t.map(o=>Array.isArray(o)?o.length:0)),i=[];for(let o=0;o<s;o++)i.push(t.map(a=>Array.isArray(a)?a[o]:null));return[i]}case"ascii":return typeof t=="string"&&t.length>0?[t.charCodeAt(0)]:[null];case"explode":return typeof t=="string"?[Array.from(t).map(s=>s.codePointAt(0))]:[null];case"implode":return Array.isArray(t)?[String.fromCodePoint(...t)]:[null];case"tojson":case"tojsonstream":return[JSON.stringify(t)];case"fromjson":{if(typeof t=="string")try{return[JSON.parse(t)]}catch{return[null]}return[null]}case"limit":{if(r.length<2)return[];let i=A(t,r[0],n)[0];return A(t,r[1],n).slice(0,i)}case"until":{if(r.length<2)return[t];let s=t,i=n.limits.maxIterations;for(let o=0;o<i;o++){if(A(s,r[0],n).some(Ne))return[s];let l=A(s,r[1],n);if(l.length===0)return[s];s=l[0]}throw new j(`jq until: too many iterations (${i}), increase executionLimits.maxJqIterations`,"iterations")}case"while":{if(r.length<2)return[t];let s=[],i=t,o=n.limits.maxIterations;for(let a=0;a<o&&A(i,r[0],n).some(Ne);a++){s.push(i);let c=A(i,r[1],n);if(c.length===0)break;i=c[0]}if(s.length>=o)throw new j(`jq while: too many iterations (${o}), increase executionLimits.maxJqIterations`,"iterations");return s}case"repeat":{if(r.length===0)return[t];let s=[],i=t,o=n.limits.maxIterations;for(let a=0;a<o;a++){s.push(i);let l=A(i,r[0],n);if(l.length===0)break;i=l[0]}if(s.length>=o)throw new j(`jq repeat: too many iterations (${o}), increase executionLimits.maxJqIterations`,"iterations");return s}case"debug":return[t];case"input_line_number":return[1];case"@base64":return typeof t=="string"?typeof Buffer<"u"?[Buffer.from(t,"utf-8").toString("base64")]:[btoa(t)]:[null];case"@base64d":return typeof t=="string"?typeof Buffer<"u"?[Buffer.from(t,"base64").toString("utf-8")]:[atob(t)]:[null];case"@uri":return typeof t=="string"?[encodeURIComponent(t)]:[null];case"@csv":return Array.isArray(t)?[t.map(i=>{let o=String(i??"");return o.includes(",")||o.includes('"')||o.includes(`
452
- `)?`"${o.replace(/"/g,'""')}"`:o}).join(",")]:[null];case"@tsv":return Array.isArray(t)?[t.map(s=>String(s??"").replace(/\t/g,"\\t").replace(/\n/g,"\\n")).join(" ")]:[null];case"@json":return[JSON.stringify(t)];case"@html":return typeof t=="string"?[t.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")]:[null];case"@sh":return typeof t=="string"?[`'${t.replace(/'/g,"'\\''")}'`]:[null];case"@text":return typeof t=="string"?[t]:t==null?[""]:[String(t)];case"parent":{if(n.root===void 0||n.currentPath===void 0)return[];let s=n.currentPath;if(s.length===0)return[];let i=r.length>0?A(t,r[0],n)[0]:1;if(i>=0){if(i>s.length)return[];let o=s.slice(0,s.length-i);return[fs(n.root,o)]}else{let o=-i-1;if(o>=s.length)return[t];let a=s.slice(0,o);return[fs(n.root,a)]}}case"parents":{if(n.root===void 0||n.currentPath===void 0)return[[]];let s=n.currentPath,i=[];for(let o=s.length-1;o>=0;o--)i.push(fs(n.root,s.slice(0,o)));return[i]}case"root":return n.root!==void 0?[n.root]:[];default:throw new Error(`Unknown function: ${e}`)}}function bt(t,e){let r=i=>i===null?0:typeof i=="boolean"?1:typeof i=="number"?2:typeof i=="string"?3:Array.isArray(i)?4:typeof i=="object"?5:6,n=r(t),s=r(e);if(n!==s)return n-s;if(typeof t=="number"&&typeof e=="number")return t-e;if(typeof t=="string"&&typeof e=="string")return t.localeCompare(e);if(typeof t=="boolean"&&typeof e=="boolean")return(t?1:0)-(e?1:0);if(Array.isArray(t)&&Array.isArray(e)){for(let i=0;i<Math.min(t.length,e.length);i++){let o=bt(t[i],e[i]);if(o!==0)return o}return t.length-e.length}return 0}function qr(t,e){if(jt(t,e))return!0;if(Array.isArray(t)&&Array.isArray(e))return e.every(r=>t.some(n=>qr(n,r)));if(t&&e&&typeof t=="object"&&typeof e=="object"&&!Array.isArray(t)&&!Array.isArray(e)){let r=t,n=e;return Object.keys(n).every(s=>s in r&&qr(r[s],n[s]))}return!1}function ds(t,e,r){if(e.length===0)return r;let[n,...s]=e;if(typeof n=="number"){let o=Array.isArray(t)?[...t]:[];for(;o.length<=n;)o.push(null);return o[n]=ds(o[n],s,r),o}let i=t&&typeof t=="object"&&!Array.isArray(t)?{...t}:{};return i[n]=ds(i[n],s,r),i}function hs(t,e){if(e.length===0)return null;if(e.length===1){let s=e[0];if(Array.isArray(t)&&typeof s=="number"){let i=[...t];return i.splice(s,1),i}if(t&&typeof t=="object"&&!Array.isArray(t)){let i={...t};return delete i[String(s)],i}return t}let[r,...n]=e;if(Array.isArray(t)&&typeof r=="number"){let s=[...t];return s[r]=hs(s[r],n),s}if(t&&typeof t=="object"&&!Array.isArray(t)){let s={...t};return s[String(r)]=hs(s[String(r)],n),s}return t}function i0(t,e,r,n,s){A(t,e,r).length>0&&s.push(n)}var e0,Il=C(()=>{"use strict";oe();e0=1e4});function vl(t){let e=[],r=0,n=(c=0)=>t[r+c],s=()=>t[r++],i=()=>r>=t.length,o=c=>c>="0"&&c<="9",a=c=>c>="a"&&c<="z"||c>="A"&&c<="Z"||c==="_",l=c=>a(c)||o(c);for(;!i();){let c=r,u=s();if(!(u===" "||u===" "||u===`
449
+ `),a=[];for(let u of o){let f=u.trim();f&&!f.startsWith("#")&&a.push(f)}let l=a.join("; ");return await n.exec(l,{env:s,cwd:n.cwd})}var Gl,k0,N0,vs=C(()=>{"use strict";L();Gl={name:"bash",summary:"execute shell commands or scripts",usage:"bash [OPTIONS] [SCRIPT_FILE] [ARGUMENTS...]",options:["-c COMMAND execute COMMAND string"," --help display this help and exit"],notes:["Without -c, reads and executes commands from SCRIPT_FILE.","Arguments are passed as $1, $2, etc. to the script.",'$0 is set to the script name (or "bash" with -c).']},k0={name:"bash",async execute(t,e){if(N(t))return k(Gl);if(t[0]==="-c"&&t.length>=2){let s=t[1],i=t[2]||"bash",o=t.slice(3);return ln(s,i,o,e)}if(t.length===0)return{stdout:"",stderr:"",exitCode:0};let r=t[0],n=t.slice(1);try{let s=e.fs.resolvePath(e.cwd,r),i=await e.fs.readFile(s);return ln(i,r,n,e)}catch{return{stdout:"",stderr:`bash: ${r}: No such file or directory
450
+ `,exitCode:127}}}},N0={name:"sh",async execute(t,e){if(N(t))return k({...Gl,name:"sh",summary:"execute shell commands or scripts (POSIX shell)"});if(t[0]==="-c"&&t.length>=2){let s=t[1],i=t[2]||"sh",o=t.slice(3);return ln(s,i,o,e)}if(t.length===0)return{stdout:"",stderr:"",exitCode:0};let r=t[0],n=t.slice(1);try{let s=e.fs.resolvePath(e.cwd,r),i=await e.fs.readFile(s);return ln(i,r,n,e)}catch{return{stdout:"",stderr:`sh: ${r}: No such file or directory
451
+ `,exitCode:127}}}}});function v0(t){return{vars:new Map,limits:{maxIterations:t?.limits?.maxIterations??I0},env:t?.env}}function $s(t,e,r){let n=new Map(t.vars);return n.set(e,r),{vars:n,limits:t.limits,env:t.env,root:t.root,currentPath:t.currentPath}}function Rs(t,e){let r=t;for(let n of e)if(r&&typeof r=="object")r=r[n];else return;return r}function Yt(t){if(t.type==="Identity")return[];if(t.type==="Field"){let e=t.base?Yt(t.base):[];return e===null?null:[...e,t.name]}if(t.type==="Index"&&t.index.type==="Literal"){let e=t.base?Yt(t.base):[];if(e===null)return null;let r=t.index.value;return typeof r=="number"||typeof r=="string"?[...e,r]:null}if(t.type==="Pipe"){let e=Yt(t.left);return e===null?null:Ps(e,t.right)}return t.type==="Call"&&(t.name==="parent"||t.name==="root"),null}function Ps(t,e){if(e.type==="Call"){if(e.name==="parent"){let r=1;if(e.args.length>0&&e.args[0].type==="Literal"){let n=e.args[0].value;typeof n=="number"&&(r=n)}if(r>=0)return t.slice(0,Math.max(0,t.length-r));{let n=-r-1;return t.slice(0,Math.min(n,t.length))}}if(e.name==="root")return[]}if(e.type==="Field"){let r=Yt(e);if(r!==null)return[...t,...r]}if(e.type==="Index"&&e.index.type==="Literal"){let r=Yt(e);if(r!==null)return[...t,...r]}if(e.type==="Pipe"){let r=Ps(t,e.left);return r===null?null:Ps(r,e.right)}return e.type==="Identity"?t:null}function A(t,e,r){let n=r&&"vars"in r?r:v0(r);switch(n.root===void 0&&(n={...n,root:t,currentPath:[]}),e.type){case"Identity":return[t];case"Field":return(e.base?A(t,e.base,n):[t]).flatMap(i=>{if(i&&typeof i=="object"&&!Array.isArray(i)){let o=i[e.name];return[o===void 0?null:o]}return[null]});case"Index":return(e.base?A(t,e.base,n):[t]).flatMap(i=>A(i,e.index,n).flatMap(a=>{if(typeof a=="number"&&Array.isArray(i)){let l=a<0?i.length+a:a;return l>=0&&l<i.length?[i[l]]:[null]}return typeof a=="string"&&i&&typeof i=="object"&&!Array.isArray(i)?[i[a]]:[null]}));case"Slice":return(e.base?A(t,e.base,n):[t]).flatMap(i=>{if(!Array.isArray(i)&&typeof i!="string")return[null];let o=i.length,a=e.start?A(t,e.start,n):[0],l=e.end?A(t,e.end,n):[o];return a.flatMap(c=>l.map(u=>{let f=ql(c,o),d=ql(u,o);return Array.isArray(i),i.slice(f,d)}))});case"Iterate":return(e.base?A(t,e.base,n):[t]).flatMap(i=>Array.isArray(i)?i:i&&typeof i=="object"?Object.values(i):[]);case"Pipe":{let s=A(t,e.left,n),i=Yt(e.left);return s.flatMap(o=>{if(i!==null){let a={...n,currentPath:[...n.currentPath??[],...i]};return A(o,e.right,a)}return A(o,e.right,n)})}case"Comma":{let s=A(t,e.left,n),i=A(t,e.right,n);return[...s,...i]}case"Literal":return[e.value];case"Array":return e.elements?[A(t,e.elements,n)]:[[]];case"Object":{let s=[{}];for(let i of e.entries){let o=typeof i.key=="string"?[i.key]:A(t,i.key,n),a=A(t,i.value,n),l=[];for(let c of s)for(let u of o)for(let f of a)l.push({...c,[String(u)]:f});s.length=0,s.push(...l)}return s}case"Paren":return A(t,e.expr,n);case"BinaryOp":return P0(t,e.op,e.left,e.right,n);case"UnaryOp":return A(t,e.operand,n).map(i=>e.op==="-"?typeof i=="number"?-i:null:e.op==="not"?!Pe(i):null);case"Cond":return A(t,e.cond,n).flatMap(i=>{if(Pe(i))return A(t,e.then,n);for(let o of e.elifs)if(A(t,o.cond,n).some(Pe))return A(t,o.then,n);return e.else?A(t,e.else,n):[null]});case"Try":try{return A(t,e.body,n)}catch{return e.catch?A(t,e.catch,n):[]}case"Call":return Kl(t,e.name,e.args,n);case"VarBind":return A(t,e.value,n).flatMap(i=>{let o=$s(n,e.name,i);return A(t,e.body,o)});case"VarRef":{if(e.name==="$ENV")return[n.env??{}];let s=n.vars.get(e.name);return s!==void 0?[s]:[null]}case"Recurse":{let s=[],i=new WeakSet,o=a=>{if(a&&typeof a=="object"){if(i.has(a))return;i.add(a)}if(s.push(a),Array.isArray(a))for(let l of a)o(l);else if(a&&typeof a=="object")for(let l of Object.keys(a))o(a[l])};return o(t),s}case"Optional":try{return A(t,e.expr,n)}catch{return[]}case"StringInterp":return[e.parts.map(i=>typeof i=="string"?i:A(t,i,n).map(a=>typeof a=="string"?a:JSON.stringify(a)).join("")).join("")];case"UpdateOp":return[$0(t,e.path,e.op,e.value,n)];case"Reduce":{let s=A(t,e.expr,n),i=A(t,e.init,n)[0];for(let o of s){let a=$s(n,e.varName,o);i=A(i,e.update,a)[0]}return[i]}case"Foreach":{let s=A(t,e.expr,n),i=A(t,e.init,n)[0],o=[];for(let a of s){let l=$s(n,e.varName,a);if(i=A(i,e.update,l)[0],e.extract){let c=A(i,e.extract,l);o.push(...c)}else o.push(i)}return o}default:{let s=e;throw new Error(`Unknown AST node type: ${s.type}`)}}}function ql(t,e){return t<0?Math.max(0,e+t):Math.min(t,e)}function $0(t,e,r,n,s){function i(l,c){switch(r){case"=":return c;case"|=":return A(l,n,s)[0]??null;case"+=":return typeof l=="number"&&typeof c=="number"||typeof l=="string"&&typeof c=="string"?l+c:Array.isArray(l)&&Array.isArray(c)?[...l,...c]:l&&c&&typeof l=="object"&&typeof c=="object"?{...l,...c}:c;case"-=":return typeof l=="number"&&typeof c=="number"?l-c:l;case"*=":return typeof l=="number"&&typeof c=="number"?l*c:l;case"/=":return typeof l=="number"&&typeof c=="number"?l/c:l;case"%=":return typeof l=="number"&&typeof c=="number"?l%c:l;case"//=":return l===null||l===!1?c:l;default:return c}}function o(l,c,u){switch(c.type){case"Identity":return u(l);case"Field":{if(c.base)return o(l,c.base,f=>{if(f&&typeof f=="object"&&!Array.isArray(f)){let d={...f};return d[c.name]=u(d[c.name]),d}return f});if(l&&typeof l=="object"&&!Array.isArray(l)){let f={...l};return f[c.name]=u(f[c.name]),f}return l}case"Index":{let d=A(t,c.index,s)[0];if(c.base)return o(l,c.base,p=>{if(typeof d=="number"&&Array.isArray(p)){let h=[...p],m=d<0?h.length+d:d;return m>=0&&m<h.length&&(h[m]=u(h[m])),h}if(typeof d=="string"&&p&&typeof p=="object"&&!Array.isArray(p)){let h={...p};return h[d]=u(h[d]),h}return p});if(typeof d=="number"&&Array.isArray(l)){let p=[...l],h=d<0?p.length+d:d;return h>=0&&h<p.length&&(p[h]=u(p[h])),p}if(typeof d=="string"&&l&&typeof l=="object"&&!Array.isArray(l)){let p={...l};return p[d]=u(p[d]),p}return l}case"Iterate":{let f=d=>{if(Array.isArray(d))return d.map(p=>u(p));if(d&&typeof d=="object"){let p={};for(let[h,m]of Object.entries(d))p[h]=u(m);return p}return d};return c.base?o(l,c.base,f):f(l)}case"Pipe":{let f=o(l,c.left,d=>d);return o(f,c.right,u)}default:return u(l)}}return o(t,e,l=>{if(r==="|=")return i(l,l);let c=A(t,n,s);return i(l,c[0]??null)})}function R0(t,e,r){function n(s,i){switch(i.type){case"Identity":return null;case"Field":{if(s&&typeof s=="object"&&!Array.isArray(s)){let o={...s};return delete o[i.name],o}return s}case"Index":{let a=A(t,i.index,r)[0];if(typeof a=="number"&&Array.isArray(s)){let l=[...s],c=a<0?l.length+a:a;return c>=0&&c<l.length&&l.splice(c,1),l}if(typeof a=="string"&&s&&typeof s=="object"&&!Array.isArray(s)){let l={...s};return delete l[a],l}return s}case"Iterate":return Array.isArray(s)?[]:s&&typeof s=="object"?{}:s;default:return s}}return n(t,e)}function Pe(t){return t!==null&&t!==!1}function P0(t,e,r,n,s){if(e==="and")return A(t,r,s).flatMap(l=>Pe(l)?A(t,n,s).map(u=>Pe(u)):[!1]);if(e==="or")return A(t,r,s).flatMap(l=>Pe(l)?[!0]:A(t,n,s).map(u=>Pe(u)));if(e==="//"){let l=A(t,r,s).filter(c=>c!=null&&c!==!1);return l.length>0?l:A(t,n,s)}let i=A(t,r,s),o=A(t,n,s);return i.flatMap(a=>o.map(l=>{switch(e){case"+":return typeof a=="number"&&typeof l=="number"||typeof a=="string"&&typeof l=="string"?a+l:Array.isArray(a)&&Array.isArray(l)?[...a,...l]:a&&l&&typeof a=="object"&&typeof l=="object"&&!Array.isArray(a)&&!Array.isArray(l)?{...a,...l}:null;case"-":if(typeof a=="number"&&typeof l=="number")return a-l;if(Array.isArray(a)&&Array.isArray(l)){let c=new Set(l.map(u=>JSON.stringify(u)));return a.filter(u=>!c.has(JSON.stringify(u)))}return null;case"*":return typeof a=="number"&&typeof l=="number"?a*l:typeof a=="string"&&typeof l=="number"?a.repeat(l):a&&l&&typeof a=="object"&&typeof l=="object"&&!Array.isArray(a)&&!Array.isArray(l)?Vl(a,l):null;case"/":return typeof a=="number"&&typeof l=="number"?a/l:typeof a=="string"&&typeof l=="string"?a.split(l):null;case"%":return typeof a=="number"&&typeof l=="number"?a%l:null;case"==":return er(a,l);case"!=":return!er(a,l);case"<":return cn(a,l)<0;case"<=":return cn(a,l)<=0;case">":return cn(a,l)>0;case">=":return cn(a,l)>=0;default:return null}}))}function er(t,e){return JSON.stringify(t)===JSON.stringify(e)}function cn(t,e){return typeof t=="number"&&typeof e=="number"?t-e:typeof t=="string"&&typeof e=="string"?t.localeCompare(e):0}function Vl(t,e){let r={...t};for(let n of Object.keys(e))n in r&&r[n]&&typeof r[n]=="object"&&!Array.isArray(r[n])&&e[n]&&typeof e[n]=="object"&&!Array.isArray(e[n])?r[n]=Vl(r[n],e[n]):r[n]=e[n];return r}function Kl(t,e,r,n){switch(e){case"keys":return Array.isArray(t)?[t.map((s,i)=>i)]:t&&typeof t=="object"?[Object.keys(t).sort()]:[null];case"keys_unsorted":return Array.isArray(t)?[t.map((s,i)=>i)]:t&&typeof t=="object"?[Object.keys(t)]:[null];case"values":return Array.isArray(t)?[t]:t&&typeof t=="object"?[Object.values(t)]:[null];case"length":return typeof t=="string"?[t.length]:Array.isArray(t)?[t.length]:t&&typeof t=="object"?[Object.keys(t).length]:t===null?[0]:[null];case"utf8bytelength":return typeof t=="string"?[new TextEncoder().encode(t).length]:[null];case"type":return t===null?["null"]:Array.isArray(t)?["array"]:typeof t=="boolean"?["boolean"]:typeof t=="number"?["number"]:typeof t=="string"?["string"]:typeof t=="object"?["object"]:["null"];case"empty":return[];case"error":{let s=r.length>0?A(t,r[0],n)[0]:t;throw new Error(String(s))}case"not":return[!Pe(t)];case"null":return[null];case"true":return[!0];case"false":return[!1];case"first":if(r.length>0){let s=A(t,r[0],n);return s.length>0?[s[0]]:[]}return Array.isArray(t)&&t.length>0?[t[0]]:[null];case"last":if(r.length>0){let s=A(t,r[0],n);return s.length>0?[s[s.length-1]]:[]}return Array.isArray(t)&&t.length>0?[t[t.length-1]]:[null];case"nth":{if(r.length<1)return[null];let i=A(t,r[0],n)[0];if(r.length>1){let o=A(t,r[1],n);return i>=0&&i<o.length?[o[i]]:[]}return Array.isArray(t)?i>=0&&i<t.length?[t[i]]:[null]:[null]}case"range":{if(r.length===0)return[];let s=A(t,r[0],n);if(r.length===1){let c=s[0];return Array.from({length:c},(u,f)=>f)}let i=A(t,r[1],n),o=s[0],a=i[0],l=[];for(let c=o;c<a;c++)l.push(c);return l}case"reverse":return Array.isArray(t)?[[...t].reverse()]:typeof t=="string"?[t.split("").reverse().join("")]:[null];case"sort":return Array.isArray(t)?[[...t].sort(Ft)]:[null];case"sort_by":return!Array.isArray(t)||r.length===0?[null]:[[...t].sort((i,o)=>{let a=A(i,r[0],n)[0],l=A(o,r[0],n)[0];return Ft(a,l)})];case"unique":if(Array.isArray(t)){let s=new Set,i=[];for(let o of t){let a=JSON.stringify(o);s.has(a)||(s.add(a),i.push(o))}return[i]}return[null];case"unique_by":{if(!Array.isArray(t)||r.length===0)return[null];let s=new Set,i=[];for(let o of t){let a=JSON.stringify(A(o,r[0],n)[0]);s.has(a)||(s.add(a),i.push(o))}return[i]}case"group_by":{if(!Array.isArray(t)||r.length===0)return[null];let s=new Map;for(let i of t){let o=JSON.stringify(A(i,r[0],n)[0]);s.has(o)||s.set(o,[]),s.get(o)?.push(i)}return[[...s.values()]]}case"max":return Array.isArray(t)&&t.length>0?[t.reduce((s,i)=>Ft(s,i)>0?s:i)]:[null];case"max_by":return!Array.isArray(t)||t.length===0||r.length===0?[null]:[t.reduce((s,i)=>{let o=A(s,r[0],n)[0],a=A(i,r[0],n)[0];return Ft(o,a)>0?s:i})];case"min":return Array.isArray(t)&&t.length>0?[t.reduce((s,i)=>Ft(s,i)<0?s:i)]:[null];case"min_by":return!Array.isArray(t)||t.length===0||r.length===0?[null]:[t.reduce((s,i)=>{let o=A(s,r[0],n)[0],a=A(i,r[0],n)[0];return Ft(o,a)<0?s:i})];case"flatten":{if(!Array.isArray(t))return[null];let s=r.length>0?A(t,r[0],n)[0]:Number.POSITIVE_INFINITY;return[t.flat(s)]}case"add":if(Array.isArray(t)){if(t.length===0)return[null];if(t.every(s=>typeof s=="number"))return[t.reduce((s,i)=>s+i,0)];if(t.every(s=>typeof s=="string"))return[t.join("")];if(t.every(s=>Array.isArray(s)))return[t.flat()];if(t.every(s=>s&&typeof s=="object"&&!Array.isArray(s)))return[Object.assign({},...t)]}return[null];case"any":return r.length>0?Array.isArray(t)?[t.some(s=>Pe(A(s,r[0],n)[0]))]:[!1]:Array.isArray(t)?[t.some(Pe)]:[!1];case"all":return r.length>0?Array.isArray(t)?[t.every(s=>Pe(A(s,r[0],n)[0]))]:[!0]:Array.isArray(t)?[t.every(Pe)]:[!0];case"select":return r.length===0?[t]:A(t,r[0],n).some(Pe)?[t]:[];case"map":return r.length===0||!Array.isArray(t)?[null]:[t.flatMap(i=>A(i,r[0],n))];case"map_values":{if(r.length===0)return[null];if(Array.isArray(t))return[t.flatMap(s=>A(s,r[0],n))];if(t&&typeof t=="object"){let s={};for(let[i,o]of Object.entries(t)){let a=A(o,r[0],n);a.length>0&&(s[i]=a[0])}return[s]}return[null]}case"has":{if(r.length===0)return[!1];let i=A(t,r[0],n)[0];return Array.isArray(t)&&typeof i=="number"?[i>=0&&i<t.length]:t&&typeof t=="object"&&typeof i=="string"?[i in t]:[!1]}case"in":{if(r.length===0)return[!1];let i=A(t,r[0],n)[0];return Array.isArray(i)&&typeof t=="number"?[t>=0&&t<i.length]:i&&typeof i=="object"&&typeof t=="string"?[t in i]:[!1]}case"contains":{if(r.length===0)return[!1];let s=A(t,r[0],n);return[un(t,s[0])]}case"inside":{if(r.length===0)return[!1];let s=A(t,r[0],n);return[un(s[0],t)]}case"getpath":{if(r.length===0)return[null];let i=A(t,r[0],n)[0],o=t;for(let a of i){if(o==null)return[null];if(Array.isArray(o)&&typeof a=="number")o=o[a];else if(typeof o=="object"&&typeof a=="string")o=o[a];else return[null]}return[o]}case"setpath":{if(r.length<2)return[null];let i=A(t,r[0],n)[0],a=A(t,r[1],n)[0];return[Fs(t,i,a)]}case"delpaths":{if(r.length===0)return[t];let i=A(t,r[0],n)[0],o=t;for(let a of i.sort((l,c)=>c.length-l.length))o=Ts(o,a);return[o]}case"path":{if(r.length===0)return[[]];let s=[];return F0(t,r[0],n,[],s),s}case"del":return r.length===0?[t]:[R0(t,r[0],n)];case"paths":{let s=[],i=(o,a)=>{if(o&&typeof o=="object")if(Array.isArray(o))for(let l=0;l<o.length;l++)s.push([...a,l]),i(o[l],[...a,l]);else for(let l of Object.keys(o))s.push([...a,l]),i(o[l],[...a,l])};return i(t,[]),r.length>0?s.filter(o=>{let a=t;for(let c of o)if(Array.isArray(a)&&typeof c=="number")a=a[c];else if(a&&typeof a=="object"&&typeof c=="string")a=a[c];else return!1;return A(a,r[0],n).some(Pe)}):s}case"leaf_paths":{let s=[],i=(o,a)=>{if(o===null||typeof o!="object")s.push(a);else if(Array.isArray(o))for(let l=0;l<o.length;l++)i(o[l],[...a,l]);else for(let l of Object.keys(o))i(o[l],[...a,l])};return i(t,[]),[s]}case"to_entries":return t&&typeof t=="object"&&!Array.isArray(t)?[Object.entries(t).map(([s,i])=>({key:s,value:i}))]:[null];case"from_entries":if(Array.isArray(t)){let s={};for(let i of t)if(i&&typeof i=="object"){let o=i,a=o.key??o.name??o.k,l=o.value??o.v;a!==void 0&&(s[String(a)]=l)}return[s]}return[null];case"with_entries":{if(r.length===0)return[t];if(t&&typeof t=="object"&&!Array.isArray(t)){let i=Object.entries(t).map(([a,l])=>({key:a,value:l})).flatMap(a=>A(a,r[0],n)),o={};for(let a of i)if(a&&typeof a=="object"){let l=a,c=l.key??l.name??l.k,u=l.value??l.v;c!==void 0&&(o[String(c)]=u)}return[o]}return[null]}case"join":{if(!Array.isArray(t))return[null];let s=r.length>0?A(t,r[0],n):[""],i=String(s[0]);return[t.map(o=>typeof o=="string"?o:JSON.stringify(o)).join(i)]}case"split":{if(typeof t!="string"||r.length===0)return[null];let s=A(t,r[0],n),i=String(s[0]);return[t.split(i)]}case"test":{if(typeof t!="string"||r.length===0)return[!1];let s=A(t,r[0],n),i=String(s[0]);try{let o=r.length>1?String(A(t,r[1],n)[0]):"";return[new RegExp(i,o).test(t)]}catch{return[!1]}}case"match":{if(typeof t!="string"||r.length===0)return[null];let s=A(t,r[0],n),i=String(s[0]);try{let o=r.length>1?String(A(t,r[1],n)[0]):"",l=new RegExp(i,`${o}d`).exec(t);if(!l)return[];let c=l.indices;return[{offset:l.index,length:l[0].length,string:l[0],captures:l.slice(1).map((u,f)=>({offset:c?.[f+1]?.[0]??null,length:u?.length??0,string:u??"",name:null}))}]}catch{return[null]}}case"capture":{if(typeof t!="string"||r.length===0)return[null];let s=A(t,r[0],n),i=String(s[0]);try{let o=r.length>1?String(A(t,r[1],n)[0]):"",a=new RegExp(i,o),l=t.match(a);return!l||!l.groups?[{}]:[l.groups]}catch{return[null]}}case"sub":{if(typeof t!="string"||r.length<2)return[null];let s=A(t,r[0],n),i=A(t,r[1],n),o=String(s[0]),a=String(i[0]);try{let l=r.length>2?String(A(t,r[2],n)[0]):"";return[t.replace(new RegExp(o,l),a)]}catch{return[t]}}case"gsub":{if(typeof t!="string"||r.length<2)return[null];let s=A(t,r[0],n),i=A(t,r[1],n),o=String(s[0]),a=String(i[0]);try{let l=r.length>2?String(A(t,r[2],n)[0]):"g",c=l.includes("g")?l:`${l}g`;return[t.replace(new RegExp(o,c),a)]}catch{return[t]}}case"ascii_downcase":return typeof t=="string"?[t.toLowerCase()]:[null];case"ascii_upcase":return typeof t=="string"?[t.toUpperCase()]:[null];case"ltrimstr":{if(typeof t!="string"||r.length===0)return[t];let s=A(t,r[0],n),i=String(s[0]);return[t.startsWith(i)?t.slice(i.length):t]}case"rtrimstr":{if(typeof t!="string"||r.length===0)return[t];let s=A(t,r[0],n),i=String(s[0]);return[t.endsWith(i)?t.slice(0,-i.length):t]}case"trim":return typeof t=="string"?[t.trim()]:[t];case"startswith":{if(typeof t!="string"||r.length===0)return[!1];let s=A(t,r[0],n);return[t.startsWith(String(s[0]))]}case"endswith":{if(typeof t!="string"||r.length===0)return[!1];let s=A(t,r[0],n);return[t.endsWith(String(s[0]))]}case"index":{if(r.length===0)return[null];let i=A(t,r[0],n)[0];if(typeof t=="string"&&typeof i=="string"){let o=t.indexOf(i);return[o>=0?o:null]}if(Array.isArray(t)){let o=t.findIndex(a=>er(a,i));return[o>=0?o:null]}return[null]}case"rindex":{if(r.length===0)return[null];let i=A(t,r[0],n)[0];if(typeof t=="string"&&typeof i=="string"){let o=t.lastIndexOf(i);return[o>=0?o:null]}if(Array.isArray(t)){for(let o=t.length-1;o>=0;o--)if(er(t[o],i))return[o];return[null]}return[null]}case"indices":{if(r.length===0)return[[]];let i=A(t,r[0],n)[0],o=[];if(typeof t=="string"&&typeof i=="string"){let a=t.indexOf(i);for(;a!==-1;)o.push(a),a=t.indexOf(i,a+1)}else if(Array.isArray(t))for(let a=0;a<t.length;a++)er(t[a],i)&&o.push(a);return[o]}case"floor":return typeof t=="number"?[Math.floor(t)]:[null];case"ceil":return typeof t=="number"?[Math.ceil(t)]:[null];case"round":return typeof t=="number"?[Math.round(t)]:[null];case"sqrt":return typeof t=="number"?[Math.sqrt(t)]:[null];case"fabs":case"abs":return typeof t=="number"?[Math.abs(t)]:[null];case"log":return typeof t=="number"?[Math.log(t)]:[null];case"log10":return typeof t=="number"?[Math.log10(t)]:[null];case"log2":return typeof t=="number"?[Math.log2(t)]:[null];case"exp":return typeof t=="number"?[Math.exp(t)]:[null];case"exp10":return typeof t=="number"?[10**t]:[null];case"exp2":return typeof t=="number"?[2**t]:[null];case"pow":{if(typeof t!="number"||r.length===0)return[null];let i=A(t,r[0],n)[0];return[t**i]}case"sin":return typeof t=="number"?[Math.sin(t)]:[null];case"cos":return typeof t=="number"?[Math.cos(t)]:[null];case"tan":return typeof t=="number"?[Math.tan(t)]:[null];case"asin":return typeof t=="number"?[Math.asin(t)]:[null];case"acos":return typeof t=="number"?[Math.acos(t)]:[null];case"atan":return typeof t=="number"?[Math.atan(t)]:[null];case"tostring":return typeof t=="string"?[t]:[JSON.stringify(t)];case"tonumber":if(typeof t=="number")return[t];if(typeof t=="string"){let s=Number(t);return[Number.isNaN(s)?null:s]}return[null];case"infinite":return[!Number.isFinite(t)];case"nan":return[Number.isNaN(t)];case"isinfinite":return[typeof t=="number"&&!Number.isFinite(t)];case"isnan":return[typeof t=="number"&&Number.isNaN(t)];case"isnormal":return[typeof t=="number"&&Number.isFinite(t)&&t!==0];case"isfinite":return[typeof t=="number"&&Number.isFinite(t)];case"numbers":return typeof t=="number"?[t]:[];case"strings":return typeof t=="string"?[t]:[];case"booleans":return typeof t=="boolean"?[t]:[];case"nulls":return t===null?[t]:[];case"arrays":return Array.isArray(t)?[t]:[];case"objects":return t&&typeof t=="object"&&!Array.isArray(t)?[t]:[];case"iterables":return Array.isArray(t)||t&&typeof t=="object"&&!Array.isArray(t)?[t]:[];case"scalars":return!Array.isArray(t)&&!(t&&typeof t=="object")?[t]:[];case"now":return[Date.now()/1e3];case"env":return[n.env??{}];case"recurse":{if(r.length===0){let a=[],l=c=>{if(a.push(c),Array.isArray(c))for(let u of c)l(u);else if(c&&typeof c=="object")for(let u of Object.keys(c))l(c[u])};return l(t),a}let s=[],i=new Set,o=a=>{let l=JSON.stringify(a);if(i.has(l))return;i.add(l),s.push(a);let c=A(a,r[0],n);for(let u of c)u!=null&&o(u)};return o(t),s}case"recurse_down":return Kl(t,"recurse",r,n);case"walk":{if(r.length===0)return[t];let s=new WeakSet,i=o=>{if(o&&typeof o=="object"){if(s.has(o))return o;s.add(o)}let a;if(Array.isArray(o))a=o.map(i);else if(o&&typeof o=="object"){let c={};for(let[u,f]of Object.entries(o))c[u]=i(f);a=c}else a=o;return A(a,r[0],n)[0]};return[i(t)]}case"transpose":{if(!Array.isArray(t))return[null];if(t.length===0)return[[]];let s=Math.max(...t.map(o=>Array.isArray(o)?o.length:0)),i=[];for(let o=0;o<s;o++)i.push(t.map(a=>Array.isArray(a)?a[o]:null));return[i]}case"ascii":return typeof t=="string"&&t.length>0?[t.charCodeAt(0)]:[null];case"explode":return typeof t=="string"?[Array.from(t).map(s=>s.codePointAt(0))]:[null];case"implode":return Array.isArray(t)?[String.fromCodePoint(...t)]:[null];case"tojson":case"tojsonstream":return[JSON.stringify(t)];case"fromjson":{if(typeof t=="string")try{return[JSON.parse(t)]}catch{return[null]}return[null]}case"limit":{if(r.length<2)return[];let i=A(t,r[0],n)[0];return A(t,r[1],n).slice(0,i)}case"until":{if(r.length<2)return[t];let s=t,i=n.limits.maxIterations;for(let o=0;o<i;o++){if(A(s,r[0],n).some(Pe))return[s];let l=A(s,r[1],n);if(l.length===0)return[s];s=l[0]}throw new z(`jq until: too many iterations (${i}), increase executionLimits.maxJqIterations`,"iterations")}case"while":{if(r.length<2)return[t];let s=[],i=t,o=n.limits.maxIterations;for(let a=0;a<o&&A(i,r[0],n).some(Pe);a++){s.push(i);let c=A(i,r[1],n);if(c.length===0)break;i=c[0]}if(s.length>=o)throw new z(`jq while: too many iterations (${o}), increase executionLimits.maxJqIterations`,"iterations");return s}case"repeat":{if(r.length===0)return[t];let s=[],i=t,o=n.limits.maxIterations;for(let a=0;a<o;a++){s.push(i);let l=A(i,r[0],n);if(l.length===0)break;i=l[0]}if(s.length>=o)throw new z(`jq repeat: too many iterations (${o}), increase executionLimits.maxJqIterations`,"iterations");return s}case"debug":return[t];case"input_line_number":return[1];case"@base64":return typeof t=="string"?typeof Buffer<"u"?[Buffer.from(t,"utf-8").toString("base64")]:[btoa(t)]:[null];case"@base64d":return typeof t=="string"?typeof Buffer<"u"?[Buffer.from(t,"base64").toString("utf-8")]:[atob(t)]:[null];case"@uri":return typeof t=="string"?[encodeURIComponent(t)]:[null];case"@csv":return Array.isArray(t)?[t.map(i=>{let o=String(i??"");return o.includes(",")||o.includes('"')||o.includes(`
452
+ `)?`"${o.replace(/"/g,'""')}"`:o}).join(",")]:[null];case"@tsv":return Array.isArray(t)?[t.map(s=>String(s??"").replace(/\t/g,"\\t").replace(/\n/g,"\\n")).join(" ")]:[null];case"@json":return[JSON.stringify(t)];case"@html":return typeof t=="string"?[t.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")]:[null];case"@sh":return typeof t=="string"?[`'${t.replace(/'/g,"'\\''")}'`]:[null];case"@text":return typeof t=="string"?[t]:t==null?[""]:[String(t)];case"parent":{if(n.root===void 0||n.currentPath===void 0)return[];let s=n.currentPath;if(s.length===0)return[];let i=r.length>0?A(t,r[0],n)[0]:1;if(i>=0){if(i>s.length)return[];let o=s.slice(0,s.length-i);return[Rs(n.root,o)]}else{let o=-i-1;if(o>=s.length)return[t];let a=s.slice(0,o);return[Rs(n.root,a)]}}case"parents":{if(n.root===void 0||n.currentPath===void 0)return[[]];let s=n.currentPath,i=[];for(let o=s.length-1;o>=0;o--)i.push(Rs(n.root,s.slice(0,o)));return[i]}case"root":return n.root!==void 0?[n.root]:[];default:throw new Error(`Unknown function: ${e}`)}}function Ft(t,e){let r=i=>i===null?0:typeof i=="boolean"?1:typeof i=="number"?2:typeof i=="string"?3:Array.isArray(i)?4:typeof i=="object"?5:6,n=r(t),s=r(e);if(n!==s)return n-s;if(typeof t=="number"&&typeof e=="number")return t-e;if(typeof t=="string"&&typeof e=="string")return t.localeCompare(e);if(typeof t=="boolean"&&typeof e=="boolean")return(t?1:0)-(e?1:0);if(Array.isArray(t)&&Array.isArray(e)){for(let i=0;i<Math.min(t.length,e.length);i++){let o=Ft(t[i],e[i]);if(o!==0)return o}return t.length-e.length}return 0}function un(t,e){if(er(t,e))return!0;if(Array.isArray(t)&&Array.isArray(e))return e.every(r=>t.some(n=>un(n,r)));if(t&&e&&typeof t=="object"&&typeof e=="object"&&!Array.isArray(t)&&!Array.isArray(e)){let r=t,n=e;return Object.keys(n).every(s=>s in r&&un(r[s],n[s]))}return!1}function Fs(t,e,r){if(e.length===0)return r;let[n,...s]=e;if(typeof n=="number"){let o=Array.isArray(t)?[...t]:[];for(;o.length<=n;)o.push(null);return o[n]=Fs(o[n],s,r),o}let i=t&&typeof t=="object"&&!Array.isArray(t)?{...t}:{};return i[n]=Fs(i[n],s,r),i}function Ts(t,e){if(e.length===0)return null;if(e.length===1){let s=e[0];if(Array.isArray(t)&&typeof s=="number"){let i=[...t];return i.splice(s,1),i}if(t&&typeof t=="object"&&!Array.isArray(t)){let i={...t};return delete i[String(s)],i}return t}let[r,...n]=e;if(Array.isArray(t)&&typeof r=="number"){let s=[...t];return s[r]=Ts(s[r],n),s}if(t&&typeof t=="object"&&!Array.isArray(t)){let s={...t};return s[String(r)]=Ts(s[String(r)],n),s}return t}function F0(t,e,r,n,s){A(t,e,r).length>0&&s.push(n)}var I0,Zl=C(()=>{"use strict";ie();I0=1e4});function Ql(t){let e=[],r=0,n=(c=0)=>t[r+c],s=()=>t[r++],i=()=>r>=t.length,o=c=>c>="0"&&c<="9",a=c=>c>="a"&&c<="z"||c>="A"&&c<="Z"||c==="_",l=c=>a(c)||o(c);for(;!i();){let c=r,u=s();if(!(u===" "||u===" "||u===`
453
453
  `||u==="\r")){if(u==="#"){for(;!i()&&n()!==`
454
- `;)s();continue}if(u==="."&&n()==="."){s(),e.push({type:"DOTDOT",pos:c});continue}if(u==="="&&n()==="="){s(),e.push({type:"EQ",pos:c});continue}if(u==="!"&&n()==="="){s(),e.push({type:"NE",pos:c});continue}if(u==="<"&&n()==="="){s(),e.push({type:"LE",pos:c});continue}if(u===">"&&n()==="="){s(),e.push({type:"GE",pos:c});continue}if(u==="/"&&n()==="/"){s(),n()==="="?(s(),e.push({type:"UPDATE_ALT",pos:c})):e.push({type:"ALT",pos:c});continue}if(u==="+"&&n()==="="){s(),e.push({type:"UPDATE_ADD",pos:c});continue}if(u==="-"&&n()==="="){s(),e.push({type:"UPDATE_SUB",pos:c});continue}if(u==="*"&&n()==="="){s(),e.push({type:"UPDATE_MUL",pos:c});continue}if(u==="/"&&n()==="="){s(),e.push({type:"UPDATE_DIV",pos:c});continue}if(u==="%"&&n()==="="){s(),e.push({type:"UPDATE_MOD",pos:c});continue}if(u==="="&&n()!=="="){e.push({type:"ASSIGN",pos:c});continue}if(u==="."){e.push({type:"DOT",pos:c});continue}if(u==="|"){n()==="="?(s(),e.push({type:"UPDATE_PIPE",pos:c})):e.push({type:"PIPE",pos:c});continue}if(u===","){e.push({type:"COMMA",pos:c});continue}if(u===":"){e.push({type:"COLON",pos:c});continue}if(u===";"){e.push({type:"SEMICOLON",pos:c});continue}if(u==="("){e.push({type:"LPAREN",pos:c});continue}if(u===")"){e.push({type:"RPAREN",pos:c});continue}if(u==="["){e.push({type:"LBRACKET",pos:c});continue}if(u==="]"){e.push({type:"RBRACKET",pos:c});continue}if(u==="{"){e.push({type:"LBRACE",pos:c});continue}if(u==="}"){e.push({type:"RBRACE",pos:c});continue}if(u==="?"){e.push({type:"QUESTION",pos:c});continue}if(u==="+"){e.push({type:"PLUS",pos:c});continue}if(u==="-"){if(o(n())){let f=u;for(;!i()&&(o(n())||n()===".");)f+=s();e.push({type:"NUMBER",value:Number(f),pos:c});continue}e.push({type:"MINUS",pos:c});continue}if(u==="*"){e.push({type:"STAR",pos:c});continue}if(u==="/"){e.push({type:"SLASH",pos:c});continue}if(u==="%"){e.push({type:"PERCENT",pos:c});continue}if(u==="<"){e.push({type:"LT",pos:c});continue}if(u===">"){e.push({type:"GT",pos:c});continue}if(o(u)){let f=u;for(;!i()&&(o(n())||n()==="."||n()==="e"||n()==="E");)(n()==="e"||n()==="E")&&(t[r+1]==="+"||t[r+1]==="-")&&(f+=s()),f+=s();e.push({type:"NUMBER",value:Number(f),pos:c});continue}if(u==='"'){let f="";for(;!i()&&n()!=='"';)if(n()==="\\"){if(s(),i())break;let p=s();switch(p){case"n":f+=`
455
- `;break;case"r":f+="\r";break;case"t":f+=" ";break;case"\\":f+="\\";break;case'"':f+='"';break;case"(":f+="\\(";break;default:f+=p}}else f+=s();i()||s(),e.push({type:"STRING",value:f,pos:c});continue}if(a(u)||u==="$"||u==="@"){let f=u;for(;!i()&&l(n());)f+=s();let p=o0[f];p?e.push({type:p,pos:c}):e.push({type:"IDENT",value:f,pos:c});continue}throw new Error(`Unexpected character '${u}' at position ${c}`)}}return e.push({type:"EOF",pos:r}),e}function $l(t){let e=vl(t);return new ms(e).parse()}var o0,ms,Rl=C(()=>{"use strict";o0={and:"AND",or:"OR",not:"NOT",if:"IF",then:"THEN",elif:"ELIF",else:"ELSE",end:"END",as:"AS",try:"TRY",catch:"CATCH",true:"TRUE",false:"FALSE",null:"NULL",reduce:"REDUCE",foreach:"FOREACH"};ms=class t{tokens;pos=0;constructor(e){this.tokens=e}peek(e=0){return this.tokens[this.pos+e]??{type:"EOF",pos:-1}}advance(){return this.tokens[this.pos++]}check(e){return this.peek().type===e}match(...e){for(let r of e)if(this.check(r))return this.advance();return null}expect(e,r){if(!this.check(e))throw new Error(`${r} at position ${this.peek().pos}, got ${this.peek().type}`);return this.advance()}parse(){let e=this.parseExpr();if(!this.check("EOF"))throw new Error(`Unexpected token ${this.peek().type} at position ${this.peek().pos}`);return e}parseExpr(){return this.parsePipe()}parsePipe(){let e=this.parseComma();for(;this.match("PIPE");){let r=this.parseComma();e={type:"Pipe",left:e,right:r}}return e}parseComma(){let e=this.parseVarBind();for(;this.match("COMMA");){let r=this.parseVarBind();e={type:"Comma",left:e,right:r}}return e}parseVarBind(){let e=this.parseUpdate();if(this.match("AS")){let r=this.expect("IDENT","Expected variable name after 'as'"),n=r.value;if(!n.startsWith("$"))throw new Error(`Variable name must start with $ at position ${r.pos}`);this.expect("PIPE","Expected '|' after variable binding");let s=this.parseExpr();return{type:"VarBind",name:n,value:e,body:s}}return e}parseUpdate(){let e=this.parseAlt(),r={ASSIGN:"=",UPDATE_ADD:"+=",UPDATE_SUB:"-=",UPDATE_MUL:"*=",UPDATE_DIV:"/=",UPDATE_MOD:"%=",UPDATE_ALT:"//=",UPDATE_PIPE:"|="},n=this.match("ASSIGN","UPDATE_ADD","UPDATE_SUB","UPDATE_MUL","UPDATE_DIV","UPDATE_MOD","UPDATE_ALT","UPDATE_PIPE");if(n){let s=this.parseVarBind();return{type:"UpdateOp",op:r[n.type],path:e,value:s}}return e}parseAlt(){let e=this.parseOr();for(;this.match("ALT");){let r=this.parseOr();e={type:"BinaryOp",op:"//",left:e,right:r}}return e}parseOr(){let e=this.parseAnd();for(;this.match("OR");){let r=this.parseAnd();e={type:"BinaryOp",op:"or",left:e,right:r}}return e}parseAnd(){let e=this.parseNot();for(;this.match("AND");){let r=this.parseNot();e={type:"BinaryOp",op:"and",left:e,right:r}}return e}parseNot(){return this.parseComparison()}parseComparison(){let e=this.parseAddSub(),r={EQ:"==",NE:"!=",LT:"<",LE:"<=",GT:">",GE:">="},n=this.match("EQ","NE","LT","LE","GT","GE");if(n){let s=this.parseAddSub();e={type:"BinaryOp",op:r[n.type],left:e,right:s}}return e}parseAddSub(){let e=this.parseMulDiv();for(;;)if(this.match("PLUS")){let r=this.parseMulDiv();e={type:"BinaryOp",op:"+",left:e,right:r}}else if(this.match("MINUS")){let r=this.parseMulDiv();e={type:"BinaryOp",op:"-",left:e,right:r}}else break;return e}parseMulDiv(){let e=this.parseUnary();for(;;)if(this.match("STAR")){let r=this.parseUnary();e={type:"BinaryOp",op:"*",left:e,right:r}}else if(this.match("SLASH")){let r=this.parseUnary();e={type:"BinaryOp",op:"/",left:e,right:r}}else if(this.match("PERCENT")){let r=this.parseUnary();e={type:"BinaryOp",op:"%",left:e,right:r}}else break;return e}parseUnary(){return this.match("MINUS")?{type:"UnaryOp",op:"-",operand:this.parseUnary()}:this.parsePostfix()}parsePostfix(){let e=this.parsePrimary();for(;;)if(this.match("QUESTION"))e={type:"Optional",expr:e};else if(this.check("DOT")&&this.peek(1).type==="IDENT")this.advance(),e={type:"Field",name:this.expect("IDENT","Expected field name").value,base:e};else if(this.check("LBRACKET"))if(this.advance(),this.match("RBRACKET"))e={type:"Iterate",base:e};else if(this.check("COLON")){this.advance();let r=this.check("RBRACKET")?void 0:this.parseExpr();this.expect("RBRACKET","Expected ']'"),e={type:"Slice",end:r,base:e}}else{let r=this.parseExpr();if(this.match("COLON")){let n=this.check("RBRACKET")?void 0:this.parseExpr();this.expect("RBRACKET","Expected ']'"),e={type:"Slice",start:r,end:n,base:e}}else this.expect("RBRACKET","Expected ']'"),e={type:"Index",index:r,base:e}}else break;return e}parsePrimary(){if(this.match("DOTDOT"))return{type:"Recurse"};if(this.match("DOT")){if(this.check("LBRACKET")){if(this.advance(),this.match("RBRACKET"))return{type:"Iterate"};if(this.check("COLON")){this.advance();let r=this.check("RBRACKET")?void 0:this.parseExpr();return this.expect("RBRACKET","Expected ']'"),{type:"Slice",end:r}}let e=this.parseExpr();if(this.match("COLON")){let r=this.check("RBRACKET")?void 0:this.parseExpr();return this.expect("RBRACKET","Expected ']'"),{type:"Slice",start:e,end:r}}return this.expect("RBRACKET","Expected ']'"),{type:"Index",index:e}}return this.check("IDENT")?{type:"Field",name:this.advance().value}:{type:"Identity"}}if(this.match("TRUE"))return{type:"Literal",value:!0};if(this.match("FALSE"))return{type:"Literal",value:!1};if(this.match("NULL"))return{type:"Literal",value:null};if(this.check("NUMBER"))return{type:"Literal",value:this.advance().value};if(this.check("STRING")){let r=this.advance().value;return r.includes("\\(")?this.parseStringInterpolation(r):{type:"Literal",value:r}}if(this.match("LBRACKET")){if(this.match("RBRACKET"))return{type:"Array"};let e=this.parseExpr();return this.expect("RBRACKET","Expected ']'"),{type:"Array",elements:e}}if(this.match("LBRACE"))return this.parseObjectConstruction();if(this.match("LPAREN")){let e=this.parseExpr();return this.expect("RPAREN","Expected ')'"),{type:"Paren",expr:e}}if(this.match("IF"))return this.parseIf();if(this.match("TRY")){let e=this.parsePostfix(),r;return this.match("CATCH")&&(r=this.parsePostfix()),{type:"Try",body:e,catch:r}}if(this.match("REDUCE")){let e=this.parsePostfix();this.expect("AS","Expected 'as' after reduce expression");let r=this.expect("IDENT","Expected variable name"),n=r.value;if(!n.startsWith("$"))throw new Error(`Variable name must start with $ at position ${r.pos}`);this.expect("LPAREN","Expected '(' after variable");let s=this.parseExpr();this.expect("SEMICOLON","Expected ';' after init expression");let i=this.parseExpr();return this.expect("RPAREN","Expected ')' after update expression"),{type:"Reduce",expr:e,varName:n,init:s,update:i}}if(this.match("FOREACH")){let e=this.parsePostfix();this.expect("AS","Expected 'as' after foreach expression");let r=this.expect("IDENT","Expected variable name"),n=r.value;if(!n.startsWith("$"))throw new Error(`Variable name must start with $ at position ${r.pos}`);this.expect("LPAREN","Expected '(' after variable");let s=this.parseExpr();this.expect("SEMICOLON","Expected ';' after init expression");let i=this.parseExpr(),o;return this.match("SEMICOLON")&&(o=this.parseExpr()),this.expect("RPAREN","Expected ')' after expressions"),{type:"Foreach",expr:e,varName:n,init:s,update:i,extract:o}}if(this.match("NOT"))return{type:"Call",name:"not",args:[]};if(this.check("IDENT")){let r=this.advance().value;if(r.startsWith("$"))return{type:"VarRef",name:r};if(this.match("LPAREN")){let n=[];if(!this.check("RPAREN"))for(n.push(this.parseExpr());this.match("SEMICOLON");)n.push(this.parseExpr());return this.expect("RPAREN","Expected ')'"),{type:"Call",name:r,args:n}}return{type:"Call",name:r,args:[]}}throw new Error(`Unexpected token ${this.peek().type} at position ${this.peek().pos}`)}parseObjectConstruction(){let e=[];if(!this.check("RBRACE"))do{let r,n;if(this.match("LPAREN"))r=this.parseExpr(),this.expect("RPAREN","Expected ')'"),this.expect("COLON","Expected ':'"),n=this.parseObjectValue();else if(this.check("IDENT")){let s=this.advance().value;this.match("COLON")?(r=s,n=this.parseObjectValue()):(r=s,n={type:"Field",name:s})}else if(this.check("STRING"))r=this.advance().value,this.expect("COLON","Expected ':'"),n=this.parseObjectValue();else throw new Error(`Expected object key at position ${this.peek().pos}`);e.push({key:r,value:n})}while(this.match("COMMA"));return this.expect("RBRACE","Expected '}'"),{type:"Object",entries:e}}parseObjectValue(){let e=this.parseVarBind();for(;this.match("PIPE");){let r=this.parseVarBind();e={type:"Pipe",left:e,right:r}}return e}parseIf(){let e=this.parseExpr();this.expect("THEN","Expected 'then'");let r=this.parseExpr(),n=[];for(;this.match("ELIF");){let i=this.parseExpr();this.expect("THEN","Expected 'then' after elif");let o=this.parseExpr();n.push({cond:i,then:o})}let s;return this.match("ELSE")&&(s=this.parseExpr()),this.expect("END","Expected 'end'"),{type:"Cond",cond:e,then:r,elifs:n,else:s}}parseStringInterpolation(e){let r=[],n="",s=0;for(;s<e.length;)if(e[s]==="\\"&&e[s+1]==="("){n&&(r.push(n),n=""),s+=2;let i=1,o="";for(;s<e.length&&i>0;)e[s]==="("?i++:e[s]===")"&&i--,i>0&&(o+=e[s]),s++;let a=vl(o),l=new t(a);r.push(l.parse())}else n+=e[s],s++;return n&&r.push(n),{type:"StringInterp",parts:r}}}});var Pl=C(()=>{"use strict";Il();Rl()});var Ol={};R(Ol,{jqCommand:()=>l0});function Fl(t){let e=[],r=0,n=t.length;for(;r<n;){for(;r<n&&/\s/.test(t[r]);)r++;if(r>=n)break;let s=r,i=t[r];if(i==="{"||i==="["){let o=i,a=i==="{"?"}":"]",l=1,c=!1,u=!1;for(r++;r<n&&l>0;){let f=t[r];u?u=!1:f==="\\"?u=!0:f==='"'?c=!c:c||(f===o?l++:f===a&&l--),r++}if(l!==0)throw new Error(`Unexpected end of JSON input at position ${r} (unclosed ${o})`);e.push(JSON.parse(t.slice(s,r)))}else if(i==='"'){let o=!1;for(r++;r<n;){let a=t[r];if(o)o=!1;else if(a==="\\")o=!0;else if(a==='"'){r++;break}r++}e.push(JSON.parse(t.slice(s,r)))}else if(i==="-"||i>="0"&&i<="9"){for(;r<n&&/[\d.eE+-]/.test(t[r]);)r++;e.push(JSON.parse(t.slice(s,r)))}else if(t.slice(r,r+4)==="true")e.push(!0),r+=4;else if(t.slice(r,r+5)==="false")e.push(!1),r+=5;else if(t.slice(r,r+4)==="null")e.push(null),r+=4;else{let o=t.slice(r,r+10);throw new Error(`Invalid JSON at position ${s}: unexpected '${o.split(/\s/)[0]}'`)}}return e}function cr(t,e,r,n,s,i=0){if(t===null||t===void 0)return"null";if(typeof t=="boolean")return String(t);if(typeof t=="number")return Number.isFinite(t)?String(t):"null";if(typeof t=="string")return r?t:JSON.stringify(t);let o=s?" ":" ";if(Array.isArray(t))return t.length===0?"[]":e?`[${t.map(l=>cr(l,!0,!1,n,s)).join(",")}]`:`[
456
- ${t.map(l=>o.repeat(i+1)+cr(l,!1,!1,n,s,i+1)).join(`,
454
+ `;)s();continue}if(u==="."&&n()==="."){s(),e.push({type:"DOTDOT",pos:c});continue}if(u==="="&&n()==="="){s(),e.push({type:"EQ",pos:c});continue}if(u==="!"&&n()==="="){s(),e.push({type:"NE",pos:c});continue}if(u==="<"&&n()==="="){s(),e.push({type:"LE",pos:c});continue}if(u===">"&&n()==="="){s(),e.push({type:"GE",pos:c});continue}if(u==="/"&&n()==="/"){s(),n()==="="?(s(),e.push({type:"UPDATE_ALT",pos:c})):e.push({type:"ALT",pos:c});continue}if(u==="+"&&n()==="="){s(),e.push({type:"UPDATE_ADD",pos:c});continue}if(u==="-"&&n()==="="){s(),e.push({type:"UPDATE_SUB",pos:c});continue}if(u==="*"&&n()==="="){s(),e.push({type:"UPDATE_MUL",pos:c});continue}if(u==="/"&&n()==="="){s(),e.push({type:"UPDATE_DIV",pos:c});continue}if(u==="%"&&n()==="="){s(),e.push({type:"UPDATE_MOD",pos:c});continue}if(u==="="&&n()!=="="){e.push({type:"ASSIGN",pos:c});continue}if(u==="."){e.push({type:"DOT",pos:c});continue}if(u==="|"){n()==="="?(s(),e.push({type:"UPDATE_PIPE",pos:c})):e.push({type:"PIPE",pos:c});continue}if(u===","){e.push({type:"COMMA",pos:c});continue}if(u===":"){e.push({type:"COLON",pos:c});continue}if(u===";"){e.push({type:"SEMICOLON",pos:c});continue}if(u==="("){e.push({type:"LPAREN",pos:c});continue}if(u===")"){e.push({type:"RPAREN",pos:c});continue}if(u==="["){e.push({type:"LBRACKET",pos:c});continue}if(u==="]"){e.push({type:"RBRACKET",pos:c});continue}if(u==="{"){e.push({type:"LBRACE",pos:c});continue}if(u==="}"){e.push({type:"RBRACE",pos:c});continue}if(u==="?"){e.push({type:"QUESTION",pos:c});continue}if(u==="+"){e.push({type:"PLUS",pos:c});continue}if(u==="-"){if(o(n())){let f=u;for(;!i()&&(o(n())||n()===".");)f+=s();e.push({type:"NUMBER",value:Number(f),pos:c});continue}e.push({type:"MINUS",pos:c});continue}if(u==="*"){e.push({type:"STAR",pos:c});continue}if(u==="/"){e.push({type:"SLASH",pos:c});continue}if(u==="%"){e.push({type:"PERCENT",pos:c});continue}if(u==="<"){e.push({type:"LT",pos:c});continue}if(u===">"){e.push({type:"GT",pos:c});continue}if(o(u)){let f=u;for(;!i()&&(o(n())||n()==="."||n()==="e"||n()==="E");)(n()==="e"||n()==="E")&&(t[r+1]==="+"||t[r+1]==="-")&&(f+=s()),f+=s();e.push({type:"NUMBER",value:Number(f),pos:c});continue}if(u==='"'){let f="";for(;!i()&&n()!=='"';)if(n()==="\\"){if(s(),i())break;let d=s();switch(d){case"n":f+=`
455
+ `;break;case"r":f+="\r";break;case"t":f+=" ";break;case"\\":f+="\\";break;case'"':f+='"';break;case"(":f+="\\(";break;default:f+=d}}else f+=s();i()||s(),e.push({type:"STRING",value:f,pos:c});continue}if(a(u)||u==="$"||u==="@"){let f=u;for(;!i()&&l(n());)f+=s();let d=T0[f];d?e.push({type:d,pos:c}):e.push({type:"IDENT",value:f,pos:c});continue}throw new Error(`Unexpected character '${u}' at position ${c}`)}}return e.push({type:"EOF",pos:r}),e}function Xl(t){let e=Ql(t);return new Os(e).parse()}var T0,Os,Jl=C(()=>{"use strict";T0={and:"AND",or:"OR",not:"NOT",if:"IF",then:"THEN",elif:"ELIF",else:"ELSE",end:"END",as:"AS",try:"TRY",catch:"CATCH",true:"TRUE",false:"FALSE",null:"NULL",reduce:"REDUCE",foreach:"FOREACH"};Os=class t{tokens;pos=0;constructor(e){this.tokens=e}peek(e=0){return this.tokens[this.pos+e]??{type:"EOF",pos:-1}}advance(){return this.tokens[this.pos++]}check(e){return this.peek().type===e}match(...e){for(let r of e)if(this.check(r))return this.advance();return null}expect(e,r){if(!this.check(e))throw new Error(`${r} at position ${this.peek().pos}, got ${this.peek().type}`);return this.advance()}parse(){let e=this.parseExpr();if(!this.check("EOF"))throw new Error(`Unexpected token ${this.peek().type} at position ${this.peek().pos}`);return e}parseExpr(){return this.parsePipe()}parsePipe(){let e=this.parseComma();for(;this.match("PIPE");){let r=this.parseComma();e={type:"Pipe",left:e,right:r}}return e}parseComma(){let e=this.parseVarBind();for(;this.match("COMMA");){let r=this.parseVarBind();e={type:"Comma",left:e,right:r}}return e}parseVarBind(){let e=this.parseUpdate();if(this.match("AS")){let r=this.expect("IDENT","Expected variable name after 'as'"),n=r.value;if(!n.startsWith("$"))throw new Error(`Variable name must start with $ at position ${r.pos}`);this.expect("PIPE","Expected '|' after variable binding");let s=this.parseExpr();return{type:"VarBind",name:n,value:e,body:s}}return e}parseUpdate(){let e=this.parseAlt(),r={ASSIGN:"=",UPDATE_ADD:"+=",UPDATE_SUB:"-=",UPDATE_MUL:"*=",UPDATE_DIV:"/=",UPDATE_MOD:"%=",UPDATE_ALT:"//=",UPDATE_PIPE:"|="},n=this.match("ASSIGN","UPDATE_ADD","UPDATE_SUB","UPDATE_MUL","UPDATE_DIV","UPDATE_MOD","UPDATE_ALT","UPDATE_PIPE");if(n){let s=this.parseVarBind();return{type:"UpdateOp",op:r[n.type],path:e,value:s}}return e}parseAlt(){let e=this.parseOr();for(;this.match("ALT");){let r=this.parseOr();e={type:"BinaryOp",op:"//",left:e,right:r}}return e}parseOr(){let e=this.parseAnd();for(;this.match("OR");){let r=this.parseAnd();e={type:"BinaryOp",op:"or",left:e,right:r}}return e}parseAnd(){let e=this.parseNot();for(;this.match("AND");){let r=this.parseNot();e={type:"BinaryOp",op:"and",left:e,right:r}}return e}parseNot(){return this.parseComparison()}parseComparison(){let e=this.parseAddSub(),r={EQ:"==",NE:"!=",LT:"<",LE:"<=",GT:">",GE:">="},n=this.match("EQ","NE","LT","LE","GT","GE");if(n){let s=this.parseAddSub();e={type:"BinaryOp",op:r[n.type],left:e,right:s}}return e}parseAddSub(){let e=this.parseMulDiv();for(;;)if(this.match("PLUS")){let r=this.parseMulDiv();e={type:"BinaryOp",op:"+",left:e,right:r}}else if(this.match("MINUS")){let r=this.parseMulDiv();e={type:"BinaryOp",op:"-",left:e,right:r}}else break;return e}parseMulDiv(){let e=this.parseUnary();for(;;)if(this.match("STAR")){let r=this.parseUnary();e={type:"BinaryOp",op:"*",left:e,right:r}}else if(this.match("SLASH")){let r=this.parseUnary();e={type:"BinaryOp",op:"/",left:e,right:r}}else if(this.match("PERCENT")){let r=this.parseUnary();e={type:"BinaryOp",op:"%",left:e,right:r}}else break;return e}parseUnary(){return this.match("MINUS")?{type:"UnaryOp",op:"-",operand:this.parseUnary()}:this.parsePostfix()}parsePostfix(){let e=this.parsePrimary();for(;;)if(this.match("QUESTION"))e={type:"Optional",expr:e};else if(this.check("DOT")&&this.peek(1).type==="IDENT")this.advance(),e={type:"Field",name:this.expect("IDENT","Expected field name").value,base:e};else if(this.check("LBRACKET"))if(this.advance(),this.match("RBRACKET"))e={type:"Iterate",base:e};else if(this.check("COLON")){this.advance();let r=this.check("RBRACKET")?void 0:this.parseExpr();this.expect("RBRACKET","Expected ']'"),e={type:"Slice",end:r,base:e}}else{let r=this.parseExpr();if(this.match("COLON")){let n=this.check("RBRACKET")?void 0:this.parseExpr();this.expect("RBRACKET","Expected ']'"),e={type:"Slice",start:r,end:n,base:e}}else this.expect("RBRACKET","Expected ']'"),e={type:"Index",index:r,base:e}}else break;return e}parsePrimary(){if(this.match("DOTDOT"))return{type:"Recurse"};if(this.match("DOT")){if(this.check("LBRACKET")){if(this.advance(),this.match("RBRACKET"))return{type:"Iterate"};if(this.check("COLON")){this.advance();let r=this.check("RBRACKET")?void 0:this.parseExpr();return this.expect("RBRACKET","Expected ']'"),{type:"Slice",end:r}}let e=this.parseExpr();if(this.match("COLON")){let r=this.check("RBRACKET")?void 0:this.parseExpr();return this.expect("RBRACKET","Expected ']'"),{type:"Slice",start:e,end:r}}return this.expect("RBRACKET","Expected ']'"),{type:"Index",index:e}}return this.check("IDENT")?{type:"Field",name:this.advance().value}:{type:"Identity"}}if(this.match("TRUE"))return{type:"Literal",value:!0};if(this.match("FALSE"))return{type:"Literal",value:!1};if(this.match("NULL"))return{type:"Literal",value:null};if(this.check("NUMBER"))return{type:"Literal",value:this.advance().value};if(this.check("STRING")){let r=this.advance().value;return r.includes("\\(")?this.parseStringInterpolation(r):{type:"Literal",value:r}}if(this.match("LBRACKET")){if(this.match("RBRACKET"))return{type:"Array"};let e=this.parseExpr();return this.expect("RBRACKET","Expected ']'"),{type:"Array",elements:e}}if(this.match("LBRACE"))return this.parseObjectConstruction();if(this.match("LPAREN")){let e=this.parseExpr();return this.expect("RPAREN","Expected ')'"),{type:"Paren",expr:e}}if(this.match("IF"))return this.parseIf();if(this.match("TRY")){let e=this.parsePostfix(),r;return this.match("CATCH")&&(r=this.parsePostfix()),{type:"Try",body:e,catch:r}}if(this.match("REDUCE")){let e=this.parsePostfix();this.expect("AS","Expected 'as' after reduce expression");let r=this.expect("IDENT","Expected variable name"),n=r.value;if(!n.startsWith("$"))throw new Error(`Variable name must start with $ at position ${r.pos}`);this.expect("LPAREN","Expected '(' after variable");let s=this.parseExpr();this.expect("SEMICOLON","Expected ';' after init expression");let i=this.parseExpr();return this.expect("RPAREN","Expected ')' after update expression"),{type:"Reduce",expr:e,varName:n,init:s,update:i}}if(this.match("FOREACH")){let e=this.parsePostfix();this.expect("AS","Expected 'as' after foreach expression");let r=this.expect("IDENT","Expected variable name"),n=r.value;if(!n.startsWith("$"))throw new Error(`Variable name must start with $ at position ${r.pos}`);this.expect("LPAREN","Expected '(' after variable");let s=this.parseExpr();this.expect("SEMICOLON","Expected ';' after init expression");let i=this.parseExpr(),o;return this.match("SEMICOLON")&&(o=this.parseExpr()),this.expect("RPAREN","Expected ')' after expressions"),{type:"Foreach",expr:e,varName:n,init:s,update:i,extract:o}}if(this.match("NOT"))return{type:"Call",name:"not",args:[]};if(this.check("IDENT")){let r=this.advance().value;if(r.startsWith("$"))return{type:"VarRef",name:r};if(this.match("LPAREN")){let n=[];if(!this.check("RPAREN"))for(n.push(this.parseExpr());this.match("SEMICOLON");)n.push(this.parseExpr());return this.expect("RPAREN","Expected ')'"),{type:"Call",name:r,args:n}}return{type:"Call",name:r,args:[]}}throw new Error(`Unexpected token ${this.peek().type} at position ${this.peek().pos}`)}parseObjectConstruction(){let e=[];if(!this.check("RBRACE"))do{let r,n;if(this.match("LPAREN"))r=this.parseExpr(),this.expect("RPAREN","Expected ')'"),this.expect("COLON","Expected ':'"),n=this.parseObjectValue();else if(this.check("IDENT")){let s=this.advance().value;this.match("COLON")?(r=s,n=this.parseObjectValue()):(r=s,n={type:"Field",name:s})}else if(this.check("STRING"))r=this.advance().value,this.expect("COLON","Expected ':'"),n=this.parseObjectValue();else throw new Error(`Expected object key at position ${this.peek().pos}`);e.push({key:r,value:n})}while(this.match("COMMA"));return this.expect("RBRACE","Expected '}'"),{type:"Object",entries:e}}parseObjectValue(){let e=this.parseVarBind();for(;this.match("PIPE");){let r=this.parseVarBind();e={type:"Pipe",left:e,right:r}}return e}parseIf(){let e=this.parseExpr();this.expect("THEN","Expected 'then'");let r=this.parseExpr(),n=[];for(;this.match("ELIF");){let i=this.parseExpr();this.expect("THEN","Expected 'then' after elif");let o=this.parseExpr();n.push({cond:i,then:o})}let s;return this.match("ELSE")&&(s=this.parseExpr()),this.expect("END","Expected 'end'"),{type:"Cond",cond:e,then:r,elifs:n,else:s}}parseStringInterpolation(e){let r=[],n="",s=0;for(;s<e.length;)if(e[s]==="\\"&&e[s+1]==="("){n&&(r.push(n),n=""),s+=2;let i=1,o="";for(;s<e.length&&i>0;)e[s]==="("?i++:e[s]===")"&&i--,i>0&&(o+=e[s]),s++;let a=Ql(o),l=new t(a);r.push(l.parse())}else n+=e[s],s++;return n&&r.push(n),{type:"StringInterp",parts:r}}}});var Yl=C(()=>{"use strict";Zl();Jl()});var tc={};$(tc,{jqCommand:()=>D0});function ec(t){let e=[],r=0,n=t.length;for(;r<n;){for(;r<n&&/\s/.test(t[r]);)r++;if(r>=n)break;let s=r,i=t[r];if(i==="{"||i==="["){let o=i,a=i==="{"?"}":"]",l=1,c=!1,u=!1;for(r++;r<n&&l>0;){let f=t[r];u?u=!1:f==="\\"?u=!0:f==='"'?c=!c:c||(f===o?l++:f===a&&l--),r++}if(l!==0)throw new Error(`Unexpected end of JSON input at position ${r} (unclosed ${o})`);e.push(JSON.parse(t.slice(s,r)))}else if(i==='"'){let o=!1;for(r++;r<n;){let a=t[r];if(o)o=!1;else if(a==="\\")o=!0;else if(a==='"'){r++;break}r++}e.push(JSON.parse(t.slice(s,r)))}else if(i==="-"||i>="0"&&i<="9"){for(;r<n&&/[\d.eE+-]/.test(t[r]);)r++;e.push(JSON.parse(t.slice(s,r)))}else if(t.slice(r,r+4)==="true")e.push(!0),r+=4;else if(t.slice(r,r+5)==="false")e.push(!1),r+=5;else if(t.slice(r,r+4)==="null")e.push(null),r+=4;else{let o=t.slice(r,r+10);throw new Error(`Invalid JSON at position ${s}: unexpected '${o.split(/\s/)[0]}'`)}}return e}function kr(t,e,r,n,s,i=0){if(t===null||t===void 0)return"null";if(typeof t=="boolean")return String(t);if(typeof t=="number")return Number.isFinite(t)?String(t):"null";if(typeof t=="string")return r?t:JSON.stringify(t);let o=s?" ":" ";if(Array.isArray(t))return t.length===0?"[]":e?`[${t.map(l=>kr(l,!0,!1,n,s)).join(",")}]`:`[
456
+ ${t.map(l=>o.repeat(i+1)+kr(l,!1,!1,n,s,i+1)).join(`,
457
457
  `)}
458
- ${o.repeat(i)}]`;if(typeof t=="object"){let a=Object.keys(t);return n&&(a=a.sort()),a.length===0?"{}":e?`{${a.map(c=>`${JSON.stringify(c)}:${cr(t[c],!0,!1,n,s)}`).join(",")}}`:`{
459
- ${a.map(c=>{let u=cr(t[c],!1,!1,n,s,i+1);return`${o.repeat(i+1)}${JSON.stringify(c)}: ${u}`}).join(`,
458
+ ${o.repeat(i)}]`;if(typeof t=="object"){let a=Object.keys(t);return n&&(a=a.sort()),a.length===0?"{}":e?`{${a.map(c=>`${JSON.stringify(c)}:${kr(t[c],!0,!1,n,s)}`).join(",")}}`:`{
459
+ ${a.map(c=>{let u=kr(t[c],!1,!1,n,s,i+1);return`${o.repeat(i+1)}${JSON.stringify(c)}: ${u}`}).join(`,
460
460
  `)}
461
- ${o.repeat(i)}}`}return String(t)}var a0,l0,Tl=C(()=>{"use strict";oe();gt();L();Pl();a0={name:"jq",summary:"command-line JSON processor",usage:"jq [OPTIONS] FILTER [FILE]",options:["-r, --raw-output output strings without quotes","-c, --compact compact output (no pretty printing)","-e, --exit-status set exit status based on output","-s, --slurp read entire input into array","-n, --null-input don't read any input","-j, --join-output don't print newlines after each output","-a, --ascii force ASCII output","-S, --sort-keys sort object keys","-C, --color colorize output (ignored)","-M, --monochrome monochrome output (ignored)"," --tab use tabs for indentation"," --help display this help and exit"]};l0={name:"jq",async execute(t,e){if(N(t))return k(a0);let r=!1,n=!1,s=!1,i=!1,o=!1,a=!1,l=!1,c=!1,u=".",f=!1,p=[];for(let h=0;h<t.length;h++){let m=t[h];if(m==="-r"||m==="--raw-output")r=!0;else if(m==="-c"||m==="--compact-output")n=!0;else if(m==="-e"||m==="--exit-status")s=!0;else if(m==="-s"||m==="--slurp")i=!0;else if(m==="-n"||m==="--null-input")o=!0;else if(m==="-j"||m==="--join-output")a=!0;else if(!(m==="-a"||m==="--ascii")){if(m==="-S"||m==="--sort-keys")l=!0;else if(!(m==="-C"||m==="--color")){if(!(m==="-M"||m==="--monochrome"))if(m==="--tab")c=!0;else if(m==="-")p.push("-");else{if(m.startsWith("--"))return P("jq",m);if(m.startsWith("-")){for(let g of m.slice(1))if(g==="r")r=!0;else if(g==="c")n=!0;else if(g==="e")s=!0;else if(g==="s")i=!0;else if(g==="n")o=!0;else if(g==="j")a=!0;else if(g!=="a"){if(g==="S")l=!0;else if(g!=="C"){if(g!=="M")return P("jq",`-${g}`)}}}else f?p.push(m):(u=m,f=!0)}}}}let d=[];if(!o)if(p.length===0||p.length===1&&p[0]==="-")d.push({source:"stdin",content:e.stdin});else{let h=await mt(e,p,{cmdName:"jq",stopOnError:!0});if(h.exitCode!==0)return{stdout:"",stderr:h.stderr,exitCode:2};d=h.files.map(m=>({source:m.filename||"stdin",content:m.content}))}try{let h=$l(u),m=[],g={limits:e.limits?{maxIterations:e.limits.maxJqIterations}:void 0,env:e.env};if(o)m=A(null,h,g);else if(i){let I=[];for(let{content:D}of d){let v=D.trim();v&&I.push(...Fl(v))}m=A(I,h,g)}else for(let{content:I}of d){let D=I.trim();if(!D)continue;let v=Fl(D);for(let $ of v)m.push(...A($,h,g))}let w=m.map(I=>cr(I,n,r,l,c)),E=a?"":`
461
+ ${o.repeat(i)}}`}return String(t)}var O0,D0,rc=C(()=>{"use strict";ie();Nt();L();Yl();O0={name:"jq",summary:"command-line JSON processor",usage:"jq [OPTIONS] FILTER [FILE]",options:["-r, --raw-output output strings without quotes","-c, --compact compact output (no pretty printing)","-e, --exit-status set exit status based on output","-s, --slurp read entire input into array","-n, --null-input don't read any input","-j, --join-output don't print newlines after each output","-a, --ascii force ASCII output","-S, --sort-keys sort object keys","-C, --color colorize output (ignored)","-M, --monochrome monochrome output (ignored)"," --tab use tabs for indentation"," --help display this help and exit"]};D0={name:"jq",async execute(t,e){if(N(t))return k(O0);let r=!1,n=!1,s=!1,i=!1,o=!1,a=!1,l=!1,c=!1,u=".",f=!1,d=[];for(let h=0;h<t.length;h++){let m=t[h];if(m==="-r"||m==="--raw-output")r=!0;else if(m==="-c"||m==="--compact-output")n=!0;else if(m==="-e"||m==="--exit-status")s=!0;else if(m==="-s"||m==="--slurp")i=!0;else if(m==="-n"||m==="--null-input")o=!0;else if(m==="-j"||m==="--join-output")a=!0;else if(!(m==="-a"||m==="--ascii")){if(m==="-S"||m==="--sort-keys")l=!0;else if(!(m==="-C"||m==="--color")){if(!(m==="-M"||m==="--monochrome"))if(m==="--tab")c=!0;else if(m==="-")d.push("-");else{if(m.startsWith("--"))return R("jq",m);if(m.startsWith("-")){for(let g of m.slice(1))if(g==="r")r=!0;else if(g==="c")n=!0;else if(g==="e")s=!0;else if(g==="s")i=!0;else if(g==="n")o=!0;else if(g==="j")a=!0;else if(g!=="a"){if(g==="S")l=!0;else if(g!=="C"){if(g!=="M")return R("jq",`-${g}`)}}}else f?d.push(m):(u=m,f=!0)}}}}let p=[];if(!o)if(d.length===0||d.length===1&&d[0]==="-")p.push({source:"stdin",content:e.stdin});else{let h=await kt(e,d,{cmdName:"jq",stopOnError:!0});if(h.exitCode!==0)return{stdout:"",stderr:h.stderr,exitCode:2};p=h.files.map(m=>({source:m.filename||"stdin",content:m.content}))}try{let h=Xl(u),m=[],g={limits:e.limits?{maxIterations:e.limits.maxJqIterations}:void 0,env:e.env};if(o)m=A(null,h,g);else if(i){let I=[];for(let{content:F}of p){let W=F.trim();W&&I.push(...ec(W))}m=A(I,h,g)}else for(let{content:I}of p){let F=I.trim();if(!F)continue;let W=ec(F);for(let j of W)m.push(...A(j,h,g))}let w=m.map(I=>kr(I,n,r,l,c)),E=a?"":`
462
462
  `,b=w.join(E),S=s&&(m.length===0||m.every(I=>I==null||I===!1))?1:0;return{stdout:b?a?b:`${b}
463
- `:"",stderr:"",exitCode:S}}catch(h){if(h instanceof j)return{stdout:"",stderr:`jq: ${h.message}
464
- `,exitCode:j.EXIT_CODE};let m=h.message;return m.includes("Unknown function")?{stdout:"",stderr:`jq: error: ${m}
463
+ `:"",stderr:"",exitCode:S}}catch(h){if(h instanceof z)return{stdout:"",stderr:`jq: ${h.message}
464
+ `,exitCode:z.EXIT_CODE};let m=h.message;return m.includes("Unknown function")?{stdout:"",stderr:`jq: error: ${m}
465
465
  `,exitCode:3}:{stdout:"",stderr:`jq: parse error: ${m}
466
- `,exitCode:5}}}}});var Ll={};R(Ll,{base64Command:()=>f0});async function Dl(t,e,r){if(e.length===0||e.length===1&&e[0]==="-")return{ok:!0,data:new TextEncoder().encode(t.stdin)};let n=[];for(let a of e){if(a==="-"){n.push(new TextEncoder().encode(t.stdin));continue}try{let l=t.fs.resolvePath(t.cwd,a),c=await t.fs.readFileBuffer(l);n.push(c)}catch{return{ok:!1,error:{stdout:"",stderr:`${r}: ${a}: No such file or directory
467
- `,exitCode:1}}}}let s=n.reduce((a,l)=>a+l.length,0),i=new Uint8Array(s),o=0;for(let a of n)i.set(a,o),o+=a.length;return{ok:!0,data:i}}var c0,u0,f0,Ml=C(()=>{"use strict";ye();L();c0={name:"base64",summary:"base64 encode/decode data and print to standard output",usage:"base64 [OPTION]... [FILE]",options:["-d, --decode decode data","-w, --wrap=COLS wrap encoded lines after COLS character (default 76, 0 to disable)"," --help display this help and exit"]},u0={decode:{short:"d",long:"decode",type:"boolean"},wrap:{short:"w",long:"wrap",type:"number",default:76}};f0={name:"base64",async execute(t,e){if(N(t))return k(c0);let r=z("base64",t,u0);if(!r.ok)return r.error;let n=r.result.flags.decode,s=r.result.flags.wrap,i=r.result.positional;try{if(n){let l=await Dl(e,i,"base64");if(!l.ok)return l.error;let u=new TextDecoder().decode(l.data).replace(/\s/g,""),f=Uint8Array.from(atob(u),d=>d.charCodeAt(0));return{stdout:new TextDecoder().decode(f),stderr:"",exitCode:0}}let o=await Dl(e,i,"base64");if(!o.ok)return o.error;let a=btoa(String.fromCharCode(...o.data));if(s>0){let l=[];for(let c=0;c<a.length;c+=s)l.push(a.slice(c,c+s));a=l.join(`
466
+ `,exitCode:5}}}}});var sc={};$(sc,{base64Command:()=>_0});async function nc(t,e,r){if(e.length===0||e.length===1&&e[0]==="-")return{ok:!0,data:new TextEncoder().encode(t.stdin)};let n=[];for(let a of e){if(a==="-"){n.push(new TextEncoder().encode(t.stdin));continue}try{let l=t.fs.resolvePath(t.cwd,a),c=await t.fs.readFileBuffer(l);n.push(c)}catch{return{ok:!1,error:{stdout:"",stderr:`${r}: ${a}: No such file or directory
467
+ `,exitCode:1}}}}let s=n.reduce((a,l)=>a+l.length,0),i=new Uint8Array(s),o=0;for(let a of n)i.set(a,o),o+=a.length;return{ok:!0,data:i}}var L0,M0,_0,ic=C(()=>{"use strict";Ee();L();L0={name:"base64",summary:"base64 encode/decode data and print to standard output",usage:"base64 [OPTION]... [FILE]",options:["-d, --decode decode data","-w, --wrap=COLS wrap encoded lines after COLS character (default 76, 0 to disable)"," --help display this help and exit"]},M0={decode:{short:"d",long:"decode",type:"boolean"},wrap:{short:"w",long:"wrap",type:"number",default:76}};_0={name:"base64",async execute(t,e){if(N(t))return k(L0);let r=H("base64",t,M0);if(!r.ok)return r.error;let n=r.result.flags.decode,s=r.result.flags.wrap,i=r.result.positional;try{if(n){let l=await nc(e,i,"base64");if(!l.ok)return l.error;let u=new TextDecoder().decode(l.data).replace(/\s/g,""),f=Uint8Array.from(atob(u),p=>p.charCodeAt(0));return{stdout:new TextDecoder().decode(f),stderr:"",exitCode:0}}let o=await nc(e,i,"base64");if(!o.ok)return o.error;let a=btoa(String.fromCharCode(...o.data));if(s>0){let l=[];for(let c=0;c<a.length;c+=s)l.push(a.slice(c,c+s));a=l.join(`
468
468
  `)+(a.length>0?`
469
469
  `:"")}return{stdout:a,stderr:"",exitCode:0}}catch{return{stdout:"",stderr:`base64: invalid input
470
- `,exitCode:1}}}}});var Bl={};R(Bl,{diffCommand:()=>h0});import*as _l from"diff";var p0,d0,h0,Wl=C(()=>{"use strict";ye();L();p0={name:"diff",summary:"compare files line by line",usage:"diff [OPTION]... FILE1 FILE2",options:["-u, --unified output unified diff format (default)","-q, --brief report only whether files differ","-s, --report-identical-files report when files are the same","-i, --ignore-case ignore case differences"," --help display this help and exit"]},d0={unified:{short:"u",long:"unified",type:"boolean"},brief:{short:"q",long:"brief",type:"boolean"},reportSame:{short:"s",long:"report-identical-files",type:"boolean"},ignoreCase:{short:"i",long:"ignore-case",type:"boolean"}},h0={name:"diff",async execute(t,e){if(N(t))return k(p0);let r=z("diff",t,d0);if(!r.ok)return r.error;let n=r.result.flags.brief,s=r.result.flags.reportSame,i=r.result.flags.ignoreCase,o=r.result.positional;if(r.result.flags.unified,o.length<2)return{stdout:"",stderr:`diff: missing operand
470
+ `,exitCode:1}}}}});var ac={};$(ac,{diffCommand:()=>U0});import*as oc from"diff";var B0,W0,U0,lc=C(()=>{"use strict";Ee();L();B0={name:"diff",summary:"compare files line by line",usage:"diff [OPTION]... FILE1 FILE2",options:["-u, --unified output unified diff format (default)","-q, --brief report only whether files differ","-s, --report-identical-files report when files are the same","-i, --ignore-case ignore case differences"," --help display this help and exit"]},W0={unified:{short:"u",long:"unified",type:"boolean"},brief:{short:"q",long:"brief",type:"boolean"},reportSame:{short:"s",long:"report-identical-files",type:"boolean"},ignoreCase:{short:"i",long:"ignore-case",type:"boolean"}},U0={name:"diff",async execute(t,e){if(N(t))return k(B0);let r=H("diff",t,W0);if(!r.ok)return r.error;let n=r.result.flags.brief,s=r.result.flags.reportSame,i=r.result.flags.ignoreCase,o=r.result.positional;if(r.result.flags.unified,o.length<2)return{stdout:"",stderr:`diff: missing operand
471
471
  `,exitCode:2};let a,l,[c,u]=o;try{a=c==="-"?e.stdin:await e.fs.readFile(e.fs.resolvePath(e.cwd,c))}catch{return{stdout:"",stderr:`diff: ${c}: No such file or directory
472
472
  `,exitCode:2}}try{l=u==="-"?e.stdin:await e.fs.readFile(e.fs.resolvePath(e.cwd,u))}catch{return{stdout:"",stderr:`diff: ${u}: No such file or directory
473
- `,exitCode:2}}let f=a,p=l;return i&&(f=f.toLowerCase(),p=p.toLowerCase()),f===p?s?{stdout:`Files ${c} and ${u} are identical
473
+ `,exitCode:2}}let f=a,d=l;return i&&(f=f.toLowerCase(),d=d.toLowerCase()),f===d?s?{stdout:`Files ${c} and ${u} are identical
474
474
  `,stderr:"",exitCode:0}:{stdout:"",stderr:"",exitCode:0}:n?{stdout:`Files ${c} and ${u} differ
475
- `,stderr:"",exitCode:1}:{stdout:_l.createTwoFilesPatch(c,u,a,l,"","",{context:3}),stderr:"",exitCode:1}}}});var Ul={};R(Ul,{dateCommand:()=>E0});function Ie(t,e=2){return String(t).padStart(e,"0")}function x0(t){let e=-t.getTimezoneOffset();return`${e>=0?"+":"-"}${Ie(Math.floor(Math.abs(e)/60))}${Ie(Math.abs(e)%60)}`}function Vr(t,e,r){let n=r?{Y:t.getUTCFullYear(),m:t.getUTCMonth(),D:t.getUTCDate(),H:t.getUTCHours(),M:t.getUTCMinutes(),S:t.getUTCSeconds(),w:t.getUTCDay()}:{Y:t.getFullYear(),m:t.getMonth(),D:t.getDate(),H:t.getHours(),M:t.getMinutes(),S:t.getSeconds(),w:t.getDay()},s="",i=0;for(;i<e.length;){if(e[i]==="%"&&i+1<e.length){let o=e[++i];switch(o){case"%":s+="%";break;case"a":s+=g0[n.w];break;case"b":case"h":s+=y0[n.m];break;case"d":s+=Ie(n.D);break;case"e":s+=String(n.D).padStart(2," ");break;case"F":s+=`${n.Y}-${Ie(n.m+1)}-${Ie(n.D)}`;break;case"H":s+=Ie(n.H);break;case"I":s+=Ie(n.H%12||12);break;case"m":s+=Ie(n.m+1);break;case"M":s+=Ie(n.M);break;case"n":s+=`
476
- `;break;case"p":s+=n.H<12?"AM":"PM";break;case"P":s+=n.H<12?"am":"pm";break;case"R":s+=`${Ie(n.H)}:${Ie(n.M)}`;break;case"s":s+=Math.floor(t.getTime()/1e3);break;case"S":s+=Ie(n.S);break;case"t":s+=" ";break;case"T":s+=`${Ie(n.H)}:${Ie(n.M)}:${Ie(n.S)}`;break;case"u":s+=n.w||7;break;case"w":s+=n.w;break;case"y":s+=Ie(n.Y%100);break;case"Y":s+=n.Y;break;case"z":s+=r?"+0000":x0(t);break;case"Z":s+=r?"UTC":Intl.DateTimeFormat().resolvedOptions().timeZone;break;default:s+=`%${o}`}}else s+=e[i];i++}return s}function w0(t){let e=new Date(t);if(!Number.isNaN(e.getTime()))return e;if(/^\d+$/.test(t))return new Date(Number.parseInt(t,10)*1e3);let r=t.toLowerCase();return r==="now"||r==="today"?new Date:r==="yesterday"?new Date(Date.now()-864e5):r==="tomorrow"?new Date(Date.now()+864e5):null}var m0,g0,y0,E0,jl=C(()=>{"use strict";L();m0={name:"date",summary:"display the current time in the given FORMAT",usage:"date [OPTION]... [+FORMAT]",options:["-d, --date=STRING display time described by STRING","-u, --utc print Coordinated Universal Time (UTC)","-I, --iso-8601 output date/time in ISO 8601 format","-R, --rfc-email output RFC 5322 date format"," --help display this help and exit"]},g0=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],y0=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];E0={name:"date",async execute(t,e){if(N(t))return k(m0);let r=!1,n=null,s=null,i=!1,o=!1;for(let c=0;c<t.length;c++){let u=t[c];if(u==="-u"||u==="--utc")r=!0;else if(u==="-d"||u==="--date")n=t[++c]??"";else if(u.startsWith("--date="))n=u.slice(7);else if(u==="-I"||u==="--iso-8601")i=!0;else if(u==="-R"||u==="--rfc-email")o=!0;else if(u.startsWith("+"))s=u.slice(1);else{if(u.startsWith("--"))return P("date",u);if(u.startsWith("-"))for(let f of u.slice(1))if(f==="u")r=!0;else if(f==="I")i=!0;else if(f==="R")o=!0;else return P("date",`-${f}`)}}let a=n!==null?w0(n):new Date;if(!a)return{stdout:"",stderr:`date: invalid date '${n}'
477
- `,exitCode:1};let l;return s?l=Vr(a,s,r):i?l=Vr(a,"%Y-%m-%dT%H:%M:%S%z",r):o?l=Vr(a,"%a, %d %b %Y %H:%M:%S %z",r):l=Vr(a,"%a %b %e %H:%M:%S %Z %Y",r),{stdout:`${l}
478
- `,stderr:"",exitCode:0}}}});var zl={};R(zl,{sleepCommand:()=>C0});function S0(t){let e=t.match(/^(\d+\.?\d*)(s|m|h|d)?$/);if(!e)return null;let r=parseFloat(e[1]);switch(e[2]||"s"){case"s":return r*1e3;case"m":return r*60*1e3;case"h":return r*60*60*1e3;case"d":return r*24*60*60*1e3;default:return null}}var b0,C0,Hl=C(()=>{"use strict";L();b0={name:"sleep",summary:"delay for a specified amount of time",usage:"sleep NUMBER[SUFFIX]",description:`Pause for NUMBER seconds. SUFFIX may be:
475
+ `,stderr:"",exitCode:1}:{stdout:oc.createTwoFilesPatch(c,u,a,l,"","",{context:3}),stderr:"",exitCode:1}}}});var cc={};$(cc,{dateCommand:()=>V0});function Fe(t,e=2){return String(t).padStart(e,"0")}function G0(t){let e=-t.getTimezoneOffset();return`${e>=0?"+":"-"}${Fe(Math.floor(Math.abs(e)/60))}${Fe(Math.abs(e)%60)}`}function fn(t,e,r){let n=r?{Y:t.getUTCFullYear(),m:t.getUTCMonth(),D:t.getUTCDate(),H:t.getUTCHours(),M:t.getUTCMinutes(),S:t.getUTCSeconds(),w:t.getUTCDay()}:{Y:t.getFullYear(),m:t.getMonth(),D:t.getDate(),H:t.getHours(),M:t.getMinutes(),S:t.getSeconds(),w:t.getDay()},s="",i=0;for(;i<e.length;){if(e[i]==="%"&&i+1<e.length){let o=e[++i];switch(o){case"%":s+="%";break;case"a":s+=j0[n.w];break;case"b":case"h":s+=H0[n.m];break;case"d":s+=Fe(n.D);break;case"e":s+=String(n.D).padStart(2," ");break;case"F":s+=`${n.Y}-${Fe(n.m+1)}-${Fe(n.D)}`;break;case"H":s+=Fe(n.H);break;case"I":s+=Fe(n.H%12||12);break;case"m":s+=Fe(n.m+1);break;case"M":s+=Fe(n.M);break;case"n":s+=`
476
+ `;break;case"p":s+=n.H<12?"AM":"PM";break;case"P":s+=n.H<12?"am":"pm";break;case"R":s+=`${Fe(n.H)}:${Fe(n.M)}`;break;case"s":s+=Math.floor(t.getTime()/1e3);break;case"S":s+=Fe(n.S);break;case"t":s+=" ";break;case"T":s+=`${Fe(n.H)}:${Fe(n.M)}:${Fe(n.S)}`;break;case"u":s+=n.w||7;break;case"w":s+=n.w;break;case"y":s+=Fe(n.Y%100);break;case"Y":s+=n.Y;break;case"z":s+=r?"+0000":G0(t);break;case"Z":s+=r?"UTC":Intl.DateTimeFormat().resolvedOptions().timeZone;break;default:s+=`%${o}`}}else s+=e[i];i++}return s}function q0(t){let e=new Date(t);if(!Number.isNaN(e.getTime()))return e;if(/^\d+$/.test(t))return new Date(Number.parseInt(t,10)*1e3);let r=t.toLowerCase();return r==="now"||r==="today"?new Date:r==="yesterday"?new Date(Date.now()-864e5):r==="tomorrow"?new Date(Date.now()+864e5):null}var z0,j0,H0,V0,uc=C(()=>{"use strict";L();z0={name:"date",summary:"display the current time in the given FORMAT",usage:"date [OPTION]... [+FORMAT]",options:["-d, --date=STRING display time described by STRING","-u, --utc print Coordinated Universal Time (UTC)","-I, --iso-8601 output date/time in ISO 8601 format","-R, --rfc-email output RFC 5322 date format"," --help display this help and exit"]},j0=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],H0=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];V0={name:"date",async execute(t,e){if(N(t))return k(z0);let r=!1,n=null,s=null,i=!1,o=!1;for(let c=0;c<t.length;c++){let u=t[c];if(u==="-u"||u==="--utc")r=!0;else if(u==="-d"||u==="--date")n=t[++c]??"";else if(u.startsWith("--date="))n=u.slice(7);else if(u==="-I"||u==="--iso-8601")i=!0;else if(u==="-R"||u==="--rfc-email")o=!0;else if(u.startsWith("+"))s=u.slice(1);else{if(u.startsWith("--"))return R("date",u);if(u.startsWith("-"))for(let f of u.slice(1))if(f==="u")r=!0;else if(f==="I")i=!0;else if(f==="R")o=!0;else return R("date",`-${f}`)}}let a=n!==null?q0(n):new Date;if(!a)return{stdout:"",stderr:`date: invalid date '${n}'
477
+ `,exitCode:1};let l;return s?l=fn(a,s,r):i?l=fn(a,"%Y-%m-%dT%H:%M:%S%z",r):o?l=fn(a,"%a, %d %b %Y %H:%M:%S %z",r):l=fn(a,"%a %b %e %H:%M:%S %Z %Y",r),{stdout:`${l}
478
+ `,stderr:"",exitCode:0}}}});var fc={};$(fc,{sleepCommand:()=>Q0});function Z0(t){let e=t.match(/^(\d+\.?\d*)(s|m|h|d)?$/);if(!e)return null;let r=parseFloat(e[1]);switch(e[2]||"s"){case"s":return r*1e3;case"m":return r*60*1e3;case"h":return r*60*60*1e3;case"d":return r*24*60*60*1e3;default:return null}}var K0,Q0,dc=C(()=>{"use strict";L();K0={name:"sleep",summary:"delay for a specified amount of time",usage:"sleep NUMBER[SUFFIX]",description:`Pause for NUMBER seconds. SUFFIX may be:
479
479
  s - seconds (default)
480
480
  m - minutes
481
481
  h - hours
482
482
  d - days
483
483
 
484
- NUMBER may be a decimal number.`,options:[" --help display this help and exit"]};C0={name:"sleep",async execute(t,e){if(N(t))return k(b0);if(t.length===0)return{stdout:"",stderr:`sleep: missing operand
485
- `,exitCode:1};let r=0;for(let n of t){let s=S0(n);if(s===null)return{stdout:"",stderr:`sleep: invalid time interval '${n}'
486
- `,exitCode:1};r+=s}return e.sleep?await e.sleep(r):await new Promise(n=>setTimeout(n,r)),{stdout:"",stderr:"",exitCode:0}}}});var Gl={};R(Gl,{timeoutCommand:()=>N0});function k0(t){let e=t.match(/^(\d+\.?\d*)(s|m|h|d)?$/);if(!e)return null;let r=parseFloat(e[1]);switch(e[2]||"s"){case"s":return r*1e3;case"m":return r*60*1e3;case"h":return r*60*60*1e3;case"d":return r*24*60*60*1e3;default:return null}}var A0,N0,ql=C(()=>{"use strict";L();A0={name:"timeout",summary:"run a command with a time limit",usage:"timeout [OPTION] DURATION COMMAND [ARG]...",description:`Start COMMAND, and kill it if still running after DURATION.
484
+ NUMBER may be a decimal number.`,options:[" --help display this help and exit"]};Q0={name:"sleep",async execute(t,e){if(N(t))return k(K0);if(t.length===0)return{stdout:"",stderr:`sleep: missing operand
485
+ `,exitCode:1};let r=0;for(let n of t){let s=Z0(n);if(s===null)return{stdout:"",stderr:`sleep: invalid time interval '${n}'
486
+ `,exitCode:1};r+=s}return e.sleep?await e.sleep(r):await new Promise(n=>setTimeout(n,r)),{stdout:"",stderr:"",exitCode:0}}}});var pc={};$(pc,{timeoutCommand:()=>Y0});function J0(t){let e=t.match(/^(\d+\.?\d*)(s|m|h|d)?$/);if(!e)return null;let r=parseFloat(e[1]);switch(e[2]||"s"){case"s":return r*1e3;case"m":return r*60*1e3;case"h":return r*60*60*1e3;case"d":return r*24*60*60*1e3;default:return null}}var X0,Y0,hc=C(()=>{"use strict";L();X0={name:"timeout",summary:"run a command with a time limit",usage:"timeout [OPTION] DURATION COMMAND [ARG]...",description:`Start COMMAND, and kill it if still running after DURATION.
487
487
 
488
488
  DURATION is a number with optional suffix:
489
489
  s - seconds (default)
490
490
  m - minutes
491
491
  h - hours
492
- d - days`,options:["-k, --kill-after=DURATION send KILL signal after DURATION if still running","-s, --signal=SIGNAL specify signal to send (default: TERM)"," --preserve-status exit with same status as COMMAND, even on timeout"," --foreground run command in foreground"," --help display this help and exit"]};N0={name:"timeout",async execute(t,e){if(N(t))return k(A0);let r=!1,n=0;for(let p=0;p<t.length;p++){let d=t[p];if(d==="--preserve-status")r=!0,n=p+1;else if(d==="--foreground")n=p+1;else if(d==="-k"||d==="--kill-after")p++,n=p+1;else if(d.startsWith("--kill-after="))n=p+1;else if(d==="-s"||d==="--signal")p++,n=p+1;else if(d.startsWith("--signal="))n=p+1;else{if(d.startsWith("--")&&d!=="--")return P("timeout",d);if(d.startsWith("-")&&d.length>1&&d!=="--")if(d.startsWith("-k"))n=p+1;else if(d.startsWith("-s"))n=p+1;else return P("timeout",d);else{n=p;break}}}let s=t.slice(n);if(s.length===0)return{stdout:"",stderr:`timeout: missing operand
493
- `,exitCode:1};let i=s[0],o=k0(i);if(o===null)return{stdout:"",stderr:`timeout: invalid time interval '${i}'
492
+ d - days`,options:["-k, --kill-after=DURATION send KILL signal after DURATION if still running","-s, --signal=SIGNAL specify signal to send (default: TERM)"," --preserve-status exit with same status as COMMAND, even on timeout"," --foreground run command in foreground"," --help display this help and exit"]};Y0={name:"timeout",async execute(t,e){if(N(t))return k(X0);let r=!1,n=0;for(let d=0;d<t.length;d++){let p=t[d];if(p==="--preserve-status")r=!0,n=d+1;else if(p==="--foreground")n=d+1;else if(p==="-k"||p==="--kill-after")d++,n=d+1;else if(p.startsWith("--kill-after="))n=d+1;else if(p==="-s"||p==="--signal")d++,n=d+1;else if(p.startsWith("--signal="))n=d+1;else{if(p.startsWith("--")&&p!=="--")return R("timeout",p);if(p.startsWith("-")&&p.length>1&&p!=="--")if(p.startsWith("-k"))n=d+1;else if(p.startsWith("-s"))n=d+1;else return R("timeout",p);else{n=d;break}}}let s=t.slice(n);if(s.length===0)return{stdout:"",stderr:`timeout: missing operand
493
+ `,exitCode:1};let i=s[0],o=J0(i);if(o===null)return{stdout:"",stderr:`timeout: invalid time interval '${i}'
494
494
  `,exitCode:1};let a=s.slice(1);if(a.length===0)return{stdout:"",stderr:`timeout: missing operand
495
495
  `,exitCode:1};if(!e.exec)return{stdout:"",stderr:`timeout: exec not available
496
- `,exitCode:1};let l=a.map(p=>p.includes(" ")||p.includes(" ")?`'${p.replace(/'/g,"'\\''")}'`:p).join(" "),c=new Promise(p=>{setTimeout(()=>p({timedOut:!0}),o)}),u=e.exec(l,{cwd:e.cwd}).then(p=>({timedOut:!1,result:p})),f=await Promise.race([c,u]);return f.timedOut?{stdout:"",stderr:"",exitCode:124}:f.result}}});var Vl={};R(Vl,{seqCommand:()=>I0});var I0,Kl=C(()=>{"use strict";I0={name:"seq",async execute(t){let e=`
496
+ `,exitCode:1};let l=a.map(d=>d.includes(" ")||d.includes(" ")?`'${d.replace(/'/g,"'\\''")}'`:d).join(" "),c=new Promise(d=>{setTimeout(()=>d({timedOut:!0}),o)}),u=e.exec(l,{cwd:e.cwd}).then(d=>({timedOut:!1,result:d})),f=await Promise.race([c,u]);return f.timedOut?{stdout:"",stderr:"",exitCode:124}:f.result}}});var mc={};$(mc,{seqCommand:()=>eg});var eg,gc=C(()=>{"use strict";eg={name:"seq",async execute(t){let e=`
497
497
  `,r=!1,n=[],s=0;for(;s<t.length;){let h=t[s];if(h==="-s"&&s+1<t.length){e=t[s+1],s+=2;continue}if(h==="-w"){r=!0,s++;continue}if(h==="--"){s++;break}if(h.startsWith("-")&&h!=="-"){if(h.startsWith("-s")&&h.length>2){e=h.slice(2),s++;continue}if((h==="-ws"||h==="-sw")&&(r=!0,s+1<t.length)){e=t[s+1],s+=2;continue}}n.push(h),s++}for(;s<t.length;)n.push(t[s]),s++;if(n.length===0)return{stdout:"",stderr:`seq: missing operand
498
498
  `,exitCode:1};let i=1,o=1,a;if(n.length===1?a=parseFloat(n[0]):n.length===2?(i=parseFloat(n[0]),a=parseFloat(n[1])):(i=parseFloat(n[0]),o=parseFloat(n[1]),a=parseFloat(n[2])),Number.isNaN(i)||Number.isNaN(o)||Number.isNaN(a))return{stdout:"",stderr:`seq: invalid floating point argument: '${n.find(m=>Number.isNaN(parseFloat(m)))}'
499
499
  `,exitCode:1};if(o===0)return{stdout:"",stderr:`seq: invalid Zero increment value: '0'
500
- `,exitCode:1};let l=[],c=h=>{let m=String(h),g=m.indexOf(".");return g===-1?0:m.length-g-1},u=Math.max(c(i),c(o),c(a)),f=1e5,p=0;if(o>0)for(let h=i;h<=a+1e-10&&!(p++>f);h+=o)l.push(u>0?h.toFixed(u):String(Math.round(h)));else for(let h=i;h>=a-1e-10&&!(p++>f);h+=o)l.push(u>0?h.toFixed(u):String(Math.round(h)));if(r&&l.length>0){let h=Math.max(...l.map(m=>m.replace("-","").length));for(let m=0;m<l.length;m++){let g=l[m].startsWith("-"),E=(g?l[m].slice(1):l[m]).padStart(h,"0");l[m]=g?`-${E}`:E}}let d=l.join(e);return{stdout:d?`${d}
501
- `:"",stderr:"",exitCode:0}}}});var Zl={};R(Zl,{exprCommand:()=>v0});function $0(t){if(t.length===1)return t[0];let e=0;function r(){let c=n();for(;e<t.length&&t[e]==="|";){e++;let u=n();if(c!=="0"&&c!=="")return c;c=u}return c}function n(){let c=s();for(;e<t.length&&t[e]==="&";){e++;let u=s();(c==="0"||c===""||u==="0"||u==="")&&(c="0")}return c}function s(){let c=i();for(;e<t.length;){let u=t[e];if(["=","!=","<",">","<=",">="].includes(u)){e++;let f=i(),p=parseInt(c,10),d=parseInt(f,10),h=!Number.isNaN(p)&&!Number.isNaN(d),m;u==="="?m=h?p===d:c===f:u==="!="?m=h?p!==d:c!==f:u==="<"?m=h?p<d:c<f:u===">"?m=h?p>d:c>f:u==="<="?m=h?p<=d:c<=f:m=h?p>=d:c>=f,c=m?"1":"0"}else break}return c}function i(){let c=o();for(;e<t.length;){let u=t[e];if(u==="+"||u==="-"){e++;let f=o(),p=parseInt(c,10),d=parseInt(f,10);if(Number.isNaN(p)||Number.isNaN(d))throw new Error("non-integer argument");c=String(u==="+"?p+d:p-d)}else break}return c}function o(){let c=a();for(;e<t.length;){let u=t[e];if(u==="*"||u==="/"||u==="%"){e++;let f=a(),p=parseInt(c,10),d=parseInt(f,10);if(Number.isNaN(p)||Number.isNaN(d))throw new Error("non-integer argument");if((u==="/"||u==="%")&&d===0)throw new Error("division by zero");u==="*"?c=String(p*d):u==="/"?c=String(Math.trunc(p/d)):c=String(p%d)}else break}return c}function a(){let c=l();for(;e<t.length&&t[e]===":";){e++;let u=l(),f=new RegExp(`^${u}`),p=c.match(f);p?c=p[1]!==void 0?p[1]:String(p[0].length):c="0"}return c}function l(){if(e>=t.length)throw new Error("syntax error");let c=t[e];if(c==="match"){e++;let u=l(),f=l(),p=new RegExp(f),d=u.match(p);return d?d[1]!==void 0?d[1]:String(d[0].length):"0"}if(c==="substr"){e++;let u=l(),f=parseInt(l(),10),p=parseInt(l(),10);if(Number.isNaN(f)||Number.isNaN(p))throw new Error("non-integer argument");return u.substring(f-1,f-1+p)}if(c==="index"){e++;let u=l(),f=l();for(let p=0;p<u.length;p++)if(f.includes(u[p]))return String(p+1);return"0"}if(c==="length"){e++;let u=l();return String(u.length)}if(c==="("){e++;let u=r();if(e>=t.length||t[e]!==")")throw new Error("syntax error");return e++,u}return e++,c}return r()}var v0,Ql=C(()=>{"use strict";v0={name:"expr",async execute(t,e){if(t.length===0)return{stdout:"",stderr:`expr: missing operand
502
- `,exitCode:2};try{let r=$0(t),n=r==="0"||r===""?1:0;return{stdout:`${r}
500
+ `,exitCode:1};let l=[],c=h=>{let m=String(h),g=m.indexOf(".");return g===-1?0:m.length-g-1},u=Math.max(c(i),c(o),c(a)),f=1e5,d=0;if(o>0)for(let h=i;h<=a+1e-10&&!(d++>f);h+=o)l.push(u>0?h.toFixed(u):String(Math.round(h)));else for(let h=i;h>=a-1e-10&&!(d++>f);h+=o)l.push(u>0?h.toFixed(u):String(Math.round(h)));if(r&&l.length>0){let h=Math.max(...l.map(m=>m.replace("-","").length));for(let m=0;m<l.length;m++){let g=l[m].startsWith("-"),E=(g?l[m].slice(1):l[m]).padStart(h,"0");l[m]=g?`-${E}`:E}}let p=l.join(e);return{stdout:p?`${p}
501
+ `:"",stderr:"",exitCode:0}}}});var yc={};$(yc,{exprCommand:()=>tg});function rg(t){if(t.length===1)return t[0];let e=0;function r(){let c=n();for(;e<t.length&&t[e]==="|";){e++;let u=n();if(c!=="0"&&c!=="")return c;c=u}return c}function n(){let c=s();for(;e<t.length&&t[e]==="&";){e++;let u=s();(c==="0"||c===""||u==="0"||u==="")&&(c="0")}return c}function s(){let c=i();for(;e<t.length;){let u=t[e];if(["=","!=","<",">","<=",">="].includes(u)){e++;let f=i(),d=parseInt(c,10),p=parseInt(f,10),h=!Number.isNaN(d)&&!Number.isNaN(p),m;u==="="?m=h?d===p:c===f:u==="!="?m=h?d!==p:c!==f:u==="<"?m=h?d<p:c<f:u===">"?m=h?d>p:c>f:u==="<="?m=h?d<=p:c<=f:m=h?d>=p:c>=f,c=m?"1":"0"}else break}return c}function i(){let c=o();for(;e<t.length;){let u=t[e];if(u==="+"||u==="-"){e++;let f=o(),d=parseInt(c,10),p=parseInt(f,10);if(Number.isNaN(d)||Number.isNaN(p))throw new Error("non-integer argument");c=String(u==="+"?d+p:d-p)}else break}return c}function o(){let c=a();for(;e<t.length;){let u=t[e];if(u==="*"||u==="/"||u==="%"){e++;let f=a(),d=parseInt(c,10),p=parseInt(f,10);if(Number.isNaN(d)||Number.isNaN(p))throw new Error("non-integer argument");if((u==="/"||u==="%")&&p===0)throw new Error("division by zero");u==="*"?c=String(d*p):u==="/"?c=String(Math.trunc(d/p)):c=String(d%p)}else break}return c}function a(){let c=l();for(;e<t.length&&t[e]===":";){e++;let u=l(),f=new RegExp(`^${u}`),d=c.match(f);d?c=d[1]!==void 0?d[1]:String(d[0].length):c="0"}return c}function l(){if(e>=t.length)throw new Error("syntax error");let c=t[e];if(c==="match"){e++;let u=l(),f=l(),d=new RegExp(f),p=u.match(d);return p?p[1]!==void 0?p[1]:String(p[0].length):"0"}if(c==="substr"){e++;let u=l(),f=parseInt(l(),10),d=parseInt(l(),10);if(Number.isNaN(f)||Number.isNaN(d))throw new Error("non-integer argument");return u.substring(f-1,f-1+d)}if(c==="index"){e++;let u=l(),f=l();for(let d=0;d<u.length;d++)if(f.includes(u[d]))return String(d+1);return"0"}if(c==="length"){e++;let u=l();return String(u.length)}if(c==="("){e++;let u=r();if(e>=t.length||t[e]!==")")throw new Error("syntax error");return e++,u}return e++,c}return r()}var tg,xc=C(()=>{"use strict";tg={name:"expr",async execute(t,e){if(t.length===0)return{stdout:"",stderr:`expr: missing operand
502
+ `,exitCode:2};try{let r=rg(t),n=r==="0"||r===""?1:0;return{stdout:`${r}
503
503
  `,stderr:"",exitCode:n}}catch(r){return{stdout:"",stderr:`expr: ${r.message}
504
- `,exitCode:2}}}}});function P0(t){function e(d,h){return d<<h|d>>>32-h}let r=new Uint32Array([3614090360,3905402710,606105819,3250441966,4118548399,1200080426,2821735955,4249261313,1770035416,2336552879,4294925233,2304563134,1804603682,4254626195,2792965006,1236535329,4129170786,3225465664,643717713,3921069994,3593408605,38016083,3634488961,3889429448,568446438,3275163606,4107603335,1163531501,2850285829,4243563512,1735328473,2368359562,4294588738,2272392833,1839030562,4259657740,2763975236,1272893353,4139469664,3200236656,681279174,3936430074,3572445317,76029189,3654602809,3873151461,530742520,3299628645,4096336452,1126891415,2878612391,4237533241,1700485571,2399980690,4293915773,2240044497,1873313359,4264355552,2734768916,1309151649,4149444226,3174756917,718787259,3951481745]),n=[7,12,17,22,7,12,17,22,7,12,17,22,7,12,17,22,5,9,14,20,5,9,14,20,5,9,14,20,5,9,14,20,4,11,16,23,4,11,16,23,4,11,16,23,4,11,16,23,6,10,15,21,6,10,15,21,6,10,15,21,6,10,15,21],s=t.length*8,i=(t.length%64<56?56:120)-t.length%64,o=new Uint8Array(t.length+i+8);o.set(t),o[t.length]=128;let a=new DataView(o.buffer);a.setUint32(o.length-8,s>>>0,!0),a.setUint32(o.length-4,Math.floor(s/4294967296),!0);let l=1732584193,c=4023233417,u=2562383102,f=271733878;for(let d=0;d<o.length;d+=64){let h=new Uint32Array(16);for(let b=0;b<16;b++)h[b]=a.getUint32(d+b*4,!0);let m=l,g=c,w=u,E=f;for(let b=0;b<64;b++){let S,I;b<16?(S=g&w|~g&E,I=b):b<32?(S=E&g|~E&w,I=(5*b+1)%16):b<48?(S=g^w^E,I=(3*b+5)%16):(S=w^(g|~E),I=7*b%16),S=S+m+r[b]+h[I]>>>0,m=E,E=w,w=g,g=g+e(S,n[b])>>>0}l=l+m>>>0,c=c+g>>>0,u=u+w>>>0,f=f+E>>>0}let p=new Uint8Array(16);return new DataView(p.buffer).setUint32(0,l,!0),new DataView(p.buffer).setUint32(4,c,!0),new DataView(p.buffer).setUint32(8,u,!0),new DataView(p.buffer).setUint32(12,f,!0),Array.from(p).map(d=>d.toString(16).padStart(2,"0")).join("")}async function Xl(t,e){if(t==="md5")return P0(e);let r=await globalThis.crypto.subtle.digest(R0[t],new Uint8Array(e).buffer);return Array.from(new Uint8Array(r)).map(n=>n.toString(16).padStart(2,"0")).join("")}function zt(t,e,r){let n={name:t,summary:r,usage:`${t} [OPTION]... [FILE]...`,options:["-c, --check read checksums from FILEs and check them"," --help display this help and exit"]};return{name:t,async execute(s,i){if(N(s))return k(n);let o=!1,a=[];for(let f of s)if(f==="-c"||f==="--check")o=!0;else if(!(f==="-b"||f==="-t"||f==="--binary"||f==="--text")){if(f.startsWith("-")&&f!=="-")return P(t,f);a.push(f)}a.length===0&&a.push("-");let l=async f=>{if(f==="-")return new TextEncoder().encode(i.stdin);try{return await i.fs.readFileBuffer(i.fs.resolvePath(i.cwd,f))}catch{return null}};if(o){let f=0,p="";for(let d of a){let h=d==="-"?i.stdin:await i.fs.readFile(i.fs.resolvePath(i.cwd,d)).catch(()=>null);if(h===null)return{stdout:"",stderr:`${t}: ${d}: No such file or directory
504
+ `,exitCode:2}}}}});function sg(t){function e(p,h){return p<<h|p>>>32-h}let r=new Uint32Array([3614090360,3905402710,606105819,3250441966,4118548399,1200080426,2821735955,4249261313,1770035416,2336552879,4294925233,2304563134,1804603682,4254626195,2792965006,1236535329,4129170786,3225465664,643717713,3921069994,3593408605,38016083,3634488961,3889429448,568446438,3275163606,4107603335,1163531501,2850285829,4243563512,1735328473,2368359562,4294588738,2272392833,1839030562,4259657740,2763975236,1272893353,4139469664,3200236656,681279174,3936430074,3572445317,76029189,3654602809,3873151461,530742520,3299628645,4096336452,1126891415,2878612391,4237533241,1700485571,2399980690,4293915773,2240044497,1873313359,4264355552,2734768916,1309151649,4149444226,3174756917,718787259,3951481745]),n=[7,12,17,22,7,12,17,22,7,12,17,22,7,12,17,22,5,9,14,20,5,9,14,20,5,9,14,20,5,9,14,20,4,11,16,23,4,11,16,23,4,11,16,23,4,11,16,23,6,10,15,21,6,10,15,21,6,10,15,21,6,10,15,21],s=t.length*8,i=(t.length%64<56?56:120)-t.length%64,o=new Uint8Array(t.length+i+8);o.set(t),o[t.length]=128;let a=new DataView(o.buffer);a.setUint32(o.length-8,s>>>0,!0),a.setUint32(o.length-4,Math.floor(s/4294967296),!0);let l=1732584193,c=4023233417,u=2562383102,f=271733878;for(let p=0;p<o.length;p+=64){let h=new Uint32Array(16);for(let b=0;b<16;b++)h[b]=a.getUint32(p+b*4,!0);let m=l,g=c,w=u,E=f;for(let b=0;b<64;b++){let S,I;b<16?(S=g&w|~g&E,I=b):b<32?(S=E&g|~E&w,I=(5*b+1)%16):b<48?(S=g^w^E,I=(3*b+5)%16):(S=w^(g|~E),I=7*b%16),S=S+m+r[b]+h[I]>>>0,m=E,E=w,w=g,g=g+e(S,n[b])>>>0}l=l+m>>>0,c=c+g>>>0,u=u+w>>>0,f=f+E>>>0}let d=new Uint8Array(16);return new DataView(d.buffer).setUint32(0,l,!0),new DataView(d.buffer).setUint32(4,c,!0),new DataView(d.buffer).setUint32(8,u,!0),new DataView(d.buffer).setUint32(12,f,!0),Array.from(d).map(p=>p.toString(16).padStart(2,"0")).join("")}async function wc(t,e){if(t==="md5")return sg(e);let r=await globalThis.crypto.subtle.digest(ng[t],new Uint8Array(e).buffer);return Array.from(new Uint8Array(r)).map(n=>n.toString(16).padStart(2,"0")).join("")}function tr(t,e,r){let n={name:t,summary:r,usage:`${t} [OPTION]... [FILE]...`,options:["-c, --check read checksums from FILEs and check them"," --help display this help and exit"]};return{name:t,async execute(s,i){if(N(s))return k(n);let o=!1,a=[];for(let f of s)if(f==="-c"||f==="--check")o=!0;else if(!(f==="-b"||f==="-t"||f==="--binary"||f==="--text")){if(f.startsWith("-")&&f!=="-")return R(t,f);a.push(f)}a.length===0&&a.push("-");let l=async f=>{if(f==="-")return new TextEncoder().encode(i.stdin);try{return await i.fs.readFileBuffer(i.fs.resolvePath(i.cwd,f))}catch{return null}};if(o){let f=0,d="";for(let p of a){let h=p==="-"?i.stdin:await i.fs.readFile(i.fs.resolvePath(i.cwd,p)).catch(()=>null);if(h===null)return{stdout:"",stderr:`${t}: ${p}: No such file or directory
505
505
  `,exitCode:1};for(let m of h.split(`
506
- `)){let g=m.match(/^([a-fA-F0-9]+)\s+[* ]?(.+)$/);if(!g)continue;let[,w,E]=g,b=await l(E);if(b===null){p+=`${E}: FAILED open or read
507
- `,f++;continue}let S=await Xl(e,b)===w.toLowerCase();p+=`${E}: ${S?"OK":"FAILED"}
508
- `,S||f++}}return f>0&&(p+=`${t}: WARNING: ${f} computed checksum${f>1?"s":""} did NOT match
509
- `),{stdout:p,stderr:"",exitCode:f>0?1:0}}let c="",u=0;for(let f of a){let p=await l(f);if(p===null){c+=`${t}: ${f}: No such file or directory
510
- `,u=1;continue}c+=`${await Xl(e,p)} ${f}
511
- `}return{stdout:c,stderr:"",exitCode:u}}}}var R0,Kr=C(()=>{"use strict";L();R0={sha1:"SHA-1",sha256:"SHA-256"}});var Jl={};R(Jl,{md5sumCommand:()=>F0});var F0,Yl=C(()=>{"use strict";Kr();F0=zt("md5sum","md5","compute MD5 message digest")});var ec={};R(ec,{sha1sumCommand:()=>O0});var O0,tc=C(()=>{"use strict";Kr();O0=zt("sha1sum","sha1","compute SHA1 message digest")});var rc={};R(rc,{sha256sumCommand:()=>T0});var T0,nc=C(()=>{"use strict";Kr();T0=zt("sha256sum","sha256","compute SHA256 message digest")});var sc=Ar(gs=>{gs.read=function(t,e,r,n,s){var i,o,a=s*8-n-1,l=(1<<a)-1,c=l>>1,u=-7,f=r?s-1:0,p=r?-1:1,d=t[e+f];for(f+=p,i=d&(1<<-u)-1,d>>=-u,u+=a;u>0;i=i*256+t[e+f],f+=p,u-=8);for(o=i&(1<<-u)-1,i>>=-u,u+=n;u>0;o=o*256+t[e+f],f+=p,u-=8);if(i===0)i=1-c;else{if(i===l)return o?NaN:(d?-1:1)*(1/0);o=o+Math.pow(2,n),i=i-c}return(d?-1:1)*o*Math.pow(2,i-n)};gs.write=function(t,e,r,n,s,i){var o,a,l,c=i*8-s-1,u=(1<<c)-1,f=u>>1,p=s===23?Math.pow(2,-24)-Math.pow(2,-77):0,d=n?0:i-1,h=n?1:-1,m=e<0||e===0&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,o=u):(o=Math.floor(Math.log(e)/Math.LN2),e*(l=Math.pow(2,-o))<1&&(o--,l*=2),o+f>=1?e+=p/l:e+=p*Math.pow(2,1-f),e*l>=2&&(o++,l/=2),o+f>=u?(a=0,o=u):o+f>=1?(a=(e*l-1)*Math.pow(2,s),o=o+f):(a=e*Math.pow(2,f-1)*Math.pow(2,s),o=0));s>=8;t[r+d]=a&255,d+=h,a/=256,s-=8);for(o=o<<s|a,c+=s;c>0;t[r+d]=o&255,d+=h,o/=256,c-=8);t[r+d-h]|=m*128}});function ic(t,e="utf-8"){switch(e.toLowerCase()){case"utf-8":case"utf8":return typeof globalThis.TextDecoder<"u"?new globalThis.TextDecoder("utf-8").decode(t):L0(t);case"utf-16le":return M0(t);case"ascii":return _0(t);case"latin1":case"iso-8859-1":return B0(t);case"windows-1252":return W0(t);default:throw new RangeError(`Encoding '${e}' not supported`)}}function L0(t){let e="",r=0;for(;r<t.length;){let n=t[r++];if(n<128)e+=String.fromCharCode(n);else if(n<224){let s=t[r++]&63;e+=String.fromCharCode((n&31)<<6|s)}else if(n<240){let s=t[r++]&63,i=t[r++]&63;e+=String.fromCharCode((n&15)<<12|s<<6|i)}else{let s=t[r++]&63,i=t[r++]&63,o=t[r++]&63,a=(n&7)<<18|s<<12|i<<6|o;a-=65536,e+=String.fromCharCode(55296+(a>>10&1023),56320+(a&1023))}}return e}function M0(t){let e="";for(let r=0;r<t.length;r+=2)e+=String.fromCharCode(t[r]|t[r+1]<<8);return e}function _0(t){return String.fromCharCode(...t.map(e=>e&127))}function B0(t){return String.fromCharCode(...t)}function W0(t){let e="";for(let r of t)r>=128&&r<=159&&ys[r]?e+=ys[r]:e+=String.fromCharCode(r);return e}var ys,D0,oc=C(()=>{ys={128:"\u20AC",130:"\u201A",131:"\u0192",132:"\u201E",133:"\u2026",134:"\u2020",135:"\u2021",136:"\u02C6",137:"\u2030",138:"\u0160",139:"\u2039",140:"\u0152",142:"\u017D",145:"\u2018",146:"\u2019",147:"\u201C",148:"\u201D",149:"\u2022",150:"\u2013",151:"\u2014",152:"\u02DC",153:"\u2122",154:"\u0161",155:"\u203A",156:"\u0153",158:"\u017E",159:"\u0178"},D0={};for(let[t,e]of Object.entries(ys))D0[e]=Number.parseInt(t)});function Pe(t){return new DataView(t.buffer,t.byteOffset)}var ac,lc,pe,Ht,ge,cc,uc,fc,Fe,ur=C(()=>{ac=Fi(sc(),1);oc();lc={len:1,get(t,e){return Pe(t).getUint8(e)},put(t,e,r){return Pe(t).setUint8(e,r),e+1}},pe={len:2,get(t,e){return Pe(t).getUint16(e,!0)},put(t,e,r){return Pe(t).setUint16(e,r,!0),e+2}},Ht={len:2,get(t,e){return Pe(t).getUint16(e)},put(t,e,r){return Pe(t).setUint16(e,r),e+2}},ge={len:4,get(t,e){return Pe(t).getUint32(e,!0)},put(t,e,r){return Pe(t).setUint32(e,r,!0),e+4}},cc={len:4,get(t,e){return Pe(t).getUint32(e)},put(t,e,r){return Pe(t).setUint32(e,r),e+4}},uc={len:4,get(t,e){return Pe(t).getInt32(e)},put(t,e,r){return Pe(t).setInt32(e,r),e+4}},fc={len:8,get(t,e){return Pe(t).getBigUint64(e,!0)},put(t,e,r){return Pe(t).setBigUint64(e,r,!0),e+8}},Fe=class{constructor(e,r){this.len=e,this.encoding=r}get(e,r=0){let n=e.subarray(r,r+this.len);return ic(n,this.encoding)}}});var j0,ae,St,fr=C(()=>{j0="End-Of-Stream",ae=class extends Error{constructor(){super(j0),this.name="EndOfStreamError"}},St=class extends Error{constructor(e="The operation was aborted"){super(e),this.name="AbortError"}}});var pc=C(()=>{});var Ct,Zr=C(()=>{fr();Ct=class{constructor(){this.endOfStream=!1,this.interrupted=!1,this.peekQueue=[]}async peek(e,r=!1){let n=await this.read(e,r);return this.peekQueue.push(e.subarray(0,n)),n}async read(e,r=!1){if(e.length===0)return 0;let n=this.readFromPeekBuffer(e);if(this.endOfStream||(n+=await this.readRemainderFromStream(e.subarray(n),r)),n===0&&!r)throw new ae;return n}readFromPeekBuffer(e){let r=e.length,n=0;for(;this.peekQueue.length>0&&r>0;){let s=this.peekQueue.pop();if(!s)throw new Error("peekData should be defined");let i=Math.min(s.length,r);e.set(s.subarray(0,i),n),n+=i,r-=i,i<s.length&&this.peekQueue.push(s.subarray(i))}return n}async readRemainderFromStream(e,r){let n=0;for(;n<e.length&&!this.endOfStream;){if(this.interrupted)throw new St;let s=await this.readFromStream(e.subarray(n),r);if(s===0)break;n+=s}if(!r&&n<e.length)throw new ae;return n}}});var dc=C(()=>{fr();pc();Zr()});var Qr,hc=C(()=>{Zr();Qr=class extends Ct{constructor(e){super(),this.reader=e}async abort(){return this.close()}async close(){this.reader.releaseLock()}}});var pr,xs=C(()=>{hc();pr=class extends Qr{async readFromStream(e,r){if(e.length===0)return 0;let n=await this.reader.read(new Uint8Array(e.length),{min:r?void 0:e.length});return n.done&&(this.endOfStream=n.done),n.value?(e.set(n.value),n.value.length):0}}});var Gt,ws=C(()=>{fr();Zr();Gt=class extends Ct{constructor(e){super(),this.reader=e,this.buffer=null}writeChunk(e,r){let n=Math.min(r.length,e.length);return e.set(r.subarray(0,n)),n<r.length?this.buffer=r.subarray(n):this.buffer=null,n}async readFromStream(e,r){if(e.length===0)return 0;let n=0;for(this.buffer&&(n+=this.writeChunk(e,this.buffer));n<e.length&&!this.endOfStream;){let s=await this.reader.read();if(s.done){this.endOfStream=!0;break}s.value&&(n+=this.writeChunk(e.subarray(n),s.value))}if(!r&&n===0&&this.endOfStream)throw new ae;return n}abort(){return this.interrupted=!0,this.reader.cancel()}async close(){await this.abort(),this.reader.releaseLock()}}});function Es(t){try{let e=t.getReader({mode:"byob"});return e instanceof ReadableStreamDefaultReader?new Gt(e):new pr(e)}catch(e){if(e instanceof TypeError)return new Gt(t.getReader());throw e}}var mc=C(()=>{xs();ws()});var At=C(()=>{fr();dc();xs();ws();mc()});var Ye,dr=C(()=>{At();Ye=class{constructor(e){this.numBuffer=new Uint8Array(8),this.position=0,this.onClose=e?.onClose,e?.abortSignal&&e.abortSignal.addEventListener("abort",()=>{this.abort()})}async readToken(e,r=this.position){let n=new Uint8Array(e.len);if(await this.readBuffer(n,{position:r})<e.len)throw new ae;return e.get(n,0)}async peekToken(e,r=this.position){let n=new Uint8Array(e.len);if(await this.peekBuffer(n,{position:r})<e.len)throw new ae;return e.get(n,0)}async readNumber(e){if(await this.readBuffer(this.numBuffer,{length:e.len})<e.len)throw new ae;return e.get(this.numBuffer,0)}async peekNumber(e){if(await this.peekBuffer(this.numBuffer,{length:e.len})<e.len)throw new ae;return e.get(this.numBuffer,0)}async ignore(e){if(this.fileInfo.size!==void 0){let r=this.fileInfo.size-this.position;if(e>r)return this.position+=r,r}return this.position+=e,e}async close(){await this.abort(),await this.onClose?.()}normalizeOptions(e,r){if(!this.supportsRandomAccess()&&r&&r.position!==void 0&&r.position<this.position)throw new Error("`options.position` must be equal or greater than `tokenizer.position`");return{mayBeLess:!1,offset:0,length:e.length,position:this.position,...r}}abort(){return Promise.resolve()}}});var H0,Xr,gc=C(()=>{dr();At();H0=256e3,Xr=class extends Ye{constructor(e,r){super(r),this.streamReader=e,this.fileInfo=r?.fileInfo??{}}async readBuffer(e,r){let n=this.normalizeOptions(e,r),s=n.position-this.position;if(s>0)return await this.ignore(s),this.readBuffer(e,r);if(s<0)throw new Error("`options.position` must be equal or greater than `tokenizer.position`");if(n.length===0)return 0;let i=await this.streamReader.read(e.subarray(0,n.length),n.mayBeLess);if(this.position+=i,(!r||!r.mayBeLess)&&i<n.length)throw new ae;return i}async peekBuffer(e,r){let n=this.normalizeOptions(e,r),s=0;if(n.position){let i=n.position-this.position;if(i>0){let o=new Uint8Array(n.length+i);return s=await this.peekBuffer(o,{mayBeLess:n.mayBeLess}),e.set(o.subarray(i)),s-i}if(i<0)throw new Error("Cannot peek from a negative offset in a stream")}if(n.length>0){try{s=await this.streamReader.peek(e.subarray(0,n.length),n.mayBeLess)}catch(i){if(r?.mayBeLess&&i instanceof ae)return 0;throw i}if(!n.mayBeLess&&s<n.length)throw new ae}return s}async ignore(e){let r=Math.min(H0,e),n=new Uint8Array(r),s=0;for(;s<e;){let i=e-s,o=await this.readBuffer(n,{length:Math.min(r,i)});if(o<0)return o;s+=o}return s}abort(){return this.streamReader.abort()}async close(){return this.streamReader.close()}supportsRandomAccess(){return!1}}});var Jr,yc=C(()=>{At();dr();Jr=class extends Ye{constructor(e,r){super(r),this.uint8Array=e,this.fileInfo={...r?.fileInfo??{},size:e.length}}async readBuffer(e,r){r?.position&&(this.position=r.position);let n=await this.peekBuffer(e,r);return this.position+=n,n}async peekBuffer(e,r){let n=this.normalizeOptions(e,r),s=Math.min(this.uint8Array.length-n.position,n.length);if(!n.mayBeLess&&s<n.length)throw new ae;return e.set(this.uint8Array.subarray(n.position,n.position+s)),s}close(){return super.close()}supportsRandomAccess(){return!0}setPosition(e){this.position=e}}});var Yr,xc=C(()=>{At();dr();Yr=class extends Ye{constructor(e,r){super(r),this.blob=e,this.fileInfo={...r?.fileInfo??{},size:e.size,mimeType:e.type}}async readBuffer(e,r){r?.position&&(this.position=r.position);let n=await this.peekBuffer(e,r);return this.position+=n,n}async peekBuffer(e,r){let n=this.normalizeOptions(e,r),s=Math.min(this.blob.size-n.position,n.length);if(!n.mayBeLess&&s<n.length)throw new ae;let i=await this.blob.slice(n.position,n.position+s).arrayBuffer();return e.set(new Uint8Array(i)),s}close(){return super.close()}supportsRandomAccess(){return!0}setPosition(e){this.position=e}}});function wc(t,e){let r=Es(t),n=e??{},s=n.onClose;return n.onClose=async()=>{if(await r.close(),s)return s()},new Xr(r,n)}function Ec(t,e){return new Jr(t,e)}function bc(t,e){return new Yr(t,e)}var Sc=C(()=>{At();gc();yc();xc();At();dr()});var Ac=Ar((i1,Cc)=>{var qt=1e3,Vt=qt*60,Kt=Vt*60,kt=Kt*24,q0=kt*7,V0=kt*365.25;Cc.exports=function(t,e){e=e||{};var r=typeof t;if(r==="string"&&t.length>0)return K0(t);if(r==="number"&&isFinite(t))return e.long?Q0(t):Z0(t);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(t))};function K0(t){if(t=String(t),!(t.length>100)){var e=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(t);if(e){var r=parseFloat(e[1]),n=(e[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return r*V0;case"weeks":case"week":case"w":return r*q0;case"days":case"day":case"d":return r*kt;case"hours":case"hour":case"hrs":case"hr":case"h":return r*Kt;case"minutes":case"minute":case"mins":case"min":case"m":return r*Vt;case"seconds":case"second":case"secs":case"sec":case"s":return r*qt;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function Z0(t){var e=Math.abs(t);return e>=kt?Math.round(t/kt)+"d":e>=Kt?Math.round(t/Kt)+"h":e>=Vt?Math.round(t/Vt)+"m":e>=qt?Math.round(t/qt)+"s":t+"ms"}function Q0(t){var e=Math.abs(t);return e>=kt?en(t,e,kt,"day"):e>=Kt?en(t,e,Kt,"hour"):e>=Vt?en(t,e,Vt,"minute"):e>=qt?en(t,e,qt,"second"):t+" ms"}function en(t,e,r,n){var s=e>=r*1.5;return Math.round(t/r)+" "+n+(s?"s":"")}});var Nc=Ar((o1,kc)=>{function X0(t){r.debug=r,r.default=r,r.coerce=l,r.disable=o,r.enable=s,r.enabled=a,r.humanize=Ac(),r.destroy=c,Object.keys(t).forEach(u=>{r[u]=t[u]}),r.names=[],r.skips=[],r.formatters={};function e(u){let f=0;for(let p=0;p<u.length;p++)f=(f<<5)-f+u.charCodeAt(p),f|=0;return r.colors[Math.abs(f)%r.colors.length]}r.selectColor=e;function r(u){let f,p=null,d,h;function m(...g){if(!m.enabled)return;let w=m,E=Number(new Date),b=E-(f||E);w.diff=b,w.prev=f,w.curr=E,f=E,g[0]=r.coerce(g[0]),typeof g[0]!="string"&&g.unshift("%O");let S=0;g[0]=g[0].replace(/%([a-zA-Z%])/g,(D,v)=>{if(D==="%%")return"%";S++;let $=r.formatters[v];if(typeof $=="function"){let V=g[S];D=$.call(w,V),g.splice(S,1),S--}return D}),r.formatArgs.call(w,g),(w.log||r.log).apply(w,g)}return m.namespace=u,m.useColors=r.useColors(),m.color=r.selectColor(u),m.extend=n,m.destroy=r.destroy,Object.defineProperty(m,"enabled",{enumerable:!0,configurable:!1,get:()=>p!==null?p:(d!==r.namespaces&&(d=r.namespaces,h=r.enabled(u)),h),set:g=>{p=g}}),typeof r.init=="function"&&r.init(m),m}function n(u,f){let p=r(this.namespace+(typeof f>"u"?":":f)+u);return p.log=this.log,p}function s(u){r.save(u),r.namespaces=u,r.names=[],r.skips=[];let f=(typeof u=="string"?u:"").trim().replace(/\s+/g,",").split(",").filter(Boolean);for(let p of f)p[0]==="-"?r.skips.push(p.slice(1)):r.names.push(p)}function i(u,f){let p=0,d=0,h=-1,m=0;for(;p<u.length;)if(d<f.length&&(f[d]===u[p]||f[d]==="*"))f[d]==="*"?(h=d,m=p,d++):(p++,d++);else if(h!==-1)d=h+1,m++,p=m;else return!1;for(;d<f.length&&f[d]==="*";)d++;return d===f.length}function o(){let u=[...r.names,...r.skips.map(f=>"-"+f)].join(",");return r.enable(""),u}function a(u){for(let f of r.skips)if(i(u,f))return!1;for(let f of r.names)if(i(u,f))return!0;return!1}function l(u){return u instanceof Error?u.stack||u.message:u}function c(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return r.enable(r.load()),r}kc.exports=X0});var Ic=Ar((Oe,tn)=>{Oe.formatArgs=Y0;Oe.save=eg;Oe.load=tg;Oe.useColors=J0;Oe.storage=rg();Oe.destroy=(()=>{let t=!1;return()=>{t||(t=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();Oe.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function J0(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let t;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&(t=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(t[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function Y0(t){if(t[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+t[0]+(this.useColors?"%c ":" ")+"+"+tn.exports.humanize(this.diff),!this.useColors)return;let e="color: "+this.color;t.splice(1,0,e,"color: inherit");let r=0,n=0;t[0].replace(/%[a-zA-Z%]/g,s=>{s!=="%%"&&(r++,s==="%c"&&(n=r))}),t.splice(n,0,e)}Oe.log=console.debug||console.log||(()=>{});function eg(t){try{t?Oe.storage.setItem("debug",t):Oe.storage.removeItem("debug")}catch{}}function tg(){let t;try{t=Oe.storage.getItem("debug")||Oe.storage.getItem("DEBUG")}catch{}return!t&&typeof process<"u"&&"env"in process&&(t=process.env.DEBUG),t}function rg(){try{return localStorage}catch{}}tn.exports=Nc()(Oe);var{formatters:ng}=tn.exports;ng.j=function(t){try{return JSON.stringify(t)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}});var Nt,bs,vc,$c,Rc,Pc=C(()=>{ur();Nt={LocalFileHeader:67324752,DataDescriptor:134695760,CentralFileHeader:33639248,EndOfCentralDirectory:101010256},bs={get(t){return{signature:ge.get(t,0),compressedSize:ge.get(t,8),uncompressedSize:ge.get(t,12)}},len:16},vc={get(t){let e=pe.get(t,6);return{signature:ge.get(t,0),minVersion:pe.get(t,4),dataDescriptor:!!(e&8),compressedMethod:pe.get(t,8),compressedSize:ge.get(t,18),uncompressedSize:ge.get(t,22),filenameLength:pe.get(t,26),extraFieldLength:pe.get(t,28),filename:null}},len:30},$c={get(t){return{signature:ge.get(t,0),nrOfThisDisk:pe.get(t,4),nrOfThisDiskWithTheStart:pe.get(t,6),nrOfEntriesOnThisDisk:pe.get(t,8),nrOfEntriesOfSize:pe.get(t,10),sizeOfCd:ge.get(t,12),offsetOfStartOfCd:ge.get(t,16),zipFileCommentLength:pe.get(t,20)}},len:22},Rc={get(t){let e=pe.get(t,8);return{signature:ge.get(t,0),minVersion:pe.get(t,6),dataDescriptor:!!(e&8),compressedMethod:pe.get(t,10),compressedSize:ge.get(t,20),uncompressedSize:ge.get(t,24),filenameLength:pe.get(t,28),extraFieldLength:pe.get(t,30),fileCommentLength:pe.get(t,32),relativeOffsetOfLocalHeader:ge.get(t,42),filename:null}},len:46}});function Oc(t){let e=new Uint8Array(ge.len);return ge.put(e,0,t),e}function ig(t,e){let r=t.length,n=e.length;if(n>r)return-1;for(let s=0;s<=r-n;s++){let i=!0;for(let o=0;o<n;o++)if(t[s+o]!==e[o]){i=!1;break}if(i)return s}return-1}function og(t){let e=t.reduce((s,i)=>s+i.length,0),r=new Uint8Array(e),n=0;for(let s of t)r.set(s,n),n+=s.length;return r}var Fc,Qe,Ss,sg,rn,hr,Tc=C(()=>{ur();Fc=Fi(Ic(),1);Pc();Qe=(0,Fc.default)("tokenizer:inflate"),Ss=256*1024,sg=Oc(Nt.DataDescriptor),rn=Oc(Nt.EndOfCentralDirectory),hr=class t{constructor(e){this.tokenizer=e,this.syncBuffer=new Uint8Array(Ss)}async isZip(){return await this.peekSignature()===Nt.LocalFileHeader}peekSignature(){return this.tokenizer.peekToken(ge)}async findEndOfCentralDirectoryLocator(){let e=this.tokenizer,r=Math.min(16*1024,e.fileInfo.size),n=this.syncBuffer.subarray(0,r);await this.tokenizer.readBuffer(n,{position:e.fileInfo.size-r});for(let s=n.length-4;s>=0;s--)if(n[s]===rn[0]&&n[s+1]===rn[1]&&n[s+2]===rn[2]&&n[s+3]===rn[3])return e.fileInfo.size-r+s;return-1}async readCentralDirectory(){if(!this.tokenizer.supportsRandomAccess()){Qe("Cannot reading central-directory without random-read support");return}Qe("Reading central-directory...");let e=this.tokenizer.position,r=await this.findEndOfCentralDirectoryLocator();if(r>0){Qe("Central-directory 32-bit signature found");let n=await this.tokenizer.readToken($c,r),s=[];this.tokenizer.setPosition(n.offsetOfStartOfCd);for(let i=0;i<n.nrOfEntriesOfSize;++i){let o=await this.tokenizer.readToken(Rc);if(o.signature!==Nt.CentralFileHeader)throw new Error("Expected Central-File-Header signature");o.filename=await this.tokenizer.readToken(new Fe(o.filenameLength,"utf-8")),await this.tokenizer.ignore(o.extraFieldLength),await this.tokenizer.ignore(o.fileCommentLength),s.push(o),Qe(`Add central-directory file-entry: n=${i+1}/${s.length}: filename=${s[i].filename}`)}return this.tokenizer.setPosition(e),s}this.tokenizer.setPosition(e)}async unzip(e){let r=await this.readCentralDirectory();if(r)return this.iterateOverCentralDirectory(r,e);let n=!1;do{let s=await this.readLocalFileHeader();if(!s)break;let i=e(s);n=!!i.stop;let o;if(await this.tokenizer.ignore(s.extraFieldLength),s.dataDescriptor&&s.compressedSize===0){let a=[],l=Ss;Qe("Compressed-file-size unknown, scanning for next data-descriptor-signature....");let c=-1;for(;c<0&&l===Ss;){l=await this.tokenizer.peekBuffer(this.syncBuffer,{mayBeLess:!0}),c=ig(this.syncBuffer.subarray(0,l),sg);let u=c>=0?c:l;if(i.handler){let f=new Uint8Array(u);await this.tokenizer.readBuffer(f),a.push(f)}else await this.tokenizer.ignore(u)}Qe(`Found data-descriptor-signature at pos=${this.tokenizer.position}`),i.handler&&await this.inflate(s,og(a),i.handler)}else i.handler?(Qe(`Reading compressed-file-data: ${s.compressedSize} bytes`),o=new Uint8Array(s.compressedSize),await this.tokenizer.readBuffer(o),await this.inflate(s,o,i.handler)):(Qe(`Ignoring compressed-file-data: ${s.compressedSize} bytes`),await this.tokenizer.ignore(s.compressedSize));if(Qe(`Reading data-descriptor at pos=${this.tokenizer.position}`),s.dataDescriptor&&(await this.tokenizer.readToken(bs)).signature!==134695760)throw new Error(`Expected data-descriptor-signature at position ${this.tokenizer.position-bs.len}`)}while(!n)}async iterateOverCentralDirectory(e,r){for(let n of e){let s=r(n);if(s.handler){this.tokenizer.setPosition(n.relativeOffsetOfLocalHeader);let i=await this.readLocalFileHeader();if(i){await this.tokenizer.ignore(i.extraFieldLength);let o=new Uint8Array(n.compressedSize);await this.tokenizer.readBuffer(o),await this.inflate(i,o,s.handler)}}if(s.stop)break}}async inflate(e,r,n){if(e.compressedMethod===0)return n(r);if(e.compressedMethod!==8)throw new Error(`Unsupported ZIP compression method: ${e.compressedMethod}`);Qe(`Decompress filename=${e.filename}, compressed-size=${r.length}`);let s=await t.decompressDeflateRaw(r);return n(s)}static async decompressDeflateRaw(e){let r=new ReadableStream({start(i){i.enqueue(e),i.close()}}),n=new DecompressionStream("deflate-raw"),s=r.pipeThrough(n);try{let o=await new Response(s).arrayBuffer();return new Uint8Array(o)}catch(i){let o=i instanceof Error?`Failed to deflate ZIP entry: ${i.message}`:"Unknown decompression error in ZIP entry";throw new TypeError(o)}}async readLocalFileHeader(){let e=await this.tokenizer.peekToken(ge);if(e===Nt.LocalFileHeader){let r=await this.tokenizer.readToken(vc);return r.filename=await this.tokenizer.readToken(new Fe(r.filenameLength,"utf-8")),r}if(e===Nt.CentralFileHeader)return!1;throw e===3759263696?new Error("Encrypted ZIP"):new Error("Unexpected signature")}}});var mr,Dc=C(()=>{mr=class{constructor(e){this.tokenizer=e}inflate(){let e=this.tokenizer;return new ReadableStream({async pull(r){let n=new Uint8Array(1024),s=await e.readBuffer(n,{mayBeLess:!0});if(s===0){r.close();return}r.enqueue(n.subarray(0,s))}}).pipeThrough(new DecompressionStream("gzip"))}}});var Lc=C(()=>{Tc();Dc()});function Cs(t){let{byteLength:e}=t;if(e===6)return t.getUint16(0)*2**32+t.getUint32(2);if(e===5)return t.getUint8(0)*2**32+t.getUint32(1);if(e===4)return t.getUint32(0);if(e===3)return t.getUint8(0)*2**16+t.getUint16(1);if(e===2)return t.getUint16(0);if(e===1)return t.getUint8(0)}var g1,y1,x1,Mc=C(()=>{g1={utf8:new globalThis.TextDecoder("utf8")},y1=new globalThis.TextEncoder,x1=Array.from({length:256},(t,e)=>e.toString(16).padStart(2,"0"))});function _c(t,e){if(e==="utf-16le"){let r=[];for(let n=0;n<t.length;n++){let s=t.charCodeAt(n);r.push(s&255,s>>8&255)}return r}if(e==="utf-16be"){let r=[];for(let n=0;n<t.length;n++){let s=t.charCodeAt(n);r.push(s>>8&255,s&255)}return r}return[...t].map(r=>r.charCodeAt(0))}function Bc(t,e=0){let r=Number.parseInt(new Fe(6).get(t,148).replace(/\0.*$/,"").trim(),8);if(Number.isNaN(r))return!1;let n=256;for(let s=e;s<e+148;s++)n+=t[s];for(let s=e+156;s<e+512;s++)n+=t[s];return r===n}var Wc,Uc=C(()=>{ur();Wc={get:(t,e)=>t[e+3]&127|t[e+2]<<7|t[e+1]<<14|t[e]<<21,len:4}});var jc,zc,Hc=C(()=>{jc=["jpg","png","apng","gif","webp","flif","xcf","cr2","cr3","orf","arw","dng","nef","rw2","raf","tif","bmp","icns","jxr","psd","indd","zip","tar","rar","gz","bz2","7z","dmg","mp4","mid","mkv","webm","mov","avi","mpg","mp2","mp3","m4a","oga","ogg","ogv","opus","flac","wav","spx","amr","pdf","epub","elf","macho","exe","swf","rtf","wasm","woff","woff2","eot","ttf","otf","ttc","ico","flv","ps","xz","sqlite","nes","crx","xpi","cab","deb","ar","rpm","Z","lz","cfb","mxf","mts","blend","bpg","docx","pptx","xlsx","3gp","3g2","j2c","jp2","jpm","jpx","mj2","aif","qcp","odt","ods","odp","xml","mobi","heic","cur","ktx","ape","wv","dcm","ics","glb","pcap","dsf","lnk","alias","voc","ac3","m4v","m4p","m4b","f4v","f4p","f4b","f4a","mie","asf","ogm","ogx","mpc","arrow","shp","aac","mp1","it","s3m","xm","skp","avif","eps","lzh","pgp","asar","stl","chm","3mf","zst","jxl","vcf","jls","pst","dwg","parquet","class","arj","cpio","ace","avro","icc","fbx","vsdx","vtt","apk","drc","lz4","potx","xltx","dotx","xltm","ott","ots","otp","odg","otg","xlsm","docm","dotm","potm","pptm","jar","jmp","rm","sav","ppsm","ppsx","tar.gz","reg","dat"],zc=["image/jpeg","image/png","image/gif","image/webp","image/flif","image/x-xcf","image/x-canon-cr2","image/x-canon-cr3","image/tiff","image/bmp","image/vnd.ms-photo","image/vnd.adobe.photoshop","application/x-indesign","application/epub+zip","application/x-xpinstall","application/vnd.ms-powerpoint.slideshow.macroenabled.12","application/vnd.oasis.opendocument.text","application/vnd.oasis.opendocument.spreadsheet","application/vnd.oasis.opendocument.presentation","application/vnd.openxmlformats-officedocument.wordprocessingml.document","application/vnd.openxmlformats-officedocument.presentationml.presentation","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet","application/vnd.openxmlformats-officedocument.presentationml.slideshow","application/zip","application/x-tar","application/x-rar-compressed","application/gzip","application/x-bzip2","application/x-7z-compressed","application/x-apple-diskimage","application/vnd.apache.arrow.file","video/mp4","audio/midi","video/matroska","video/webm","video/quicktime","video/vnd.avi","audio/wav","audio/qcelp","audio/x-ms-asf","video/x-ms-asf","application/vnd.ms-asf","video/mpeg","video/3gpp","audio/mpeg","audio/mp4","video/ogg","audio/ogg","audio/ogg; codecs=opus","application/ogg","audio/flac","audio/ape","audio/wavpack","audio/amr","application/pdf","application/x-elf","application/x-mach-binary","application/x-msdownload","application/x-shockwave-flash","application/rtf","application/wasm","font/woff","font/woff2","application/vnd.ms-fontobject","font/ttf","font/otf","font/collection","image/x-icon","video/x-flv","application/postscript","application/eps","application/x-xz","application/x-sqlite3","application/x-nintendo-nes-rom","application/x-google-chrome-extension","application/vnd.ms-cab-compressed","application/x-deb","application/x-unix-archive","application/x-rpm","application/x-compress","application/x-lzip","application/x-cfb","application/x-mie","application/mxf","video/mp2t","application/x-blender","image/bpg","image/j2c","image/jp2","image/jpx","image/jpm","image/mj2","audio/aiff","application/xml","application/x-mobipocket-ebook","image/heif","image/heif-sequence","image/heic","image/heic-sequence","image/icns","image/ktx","application/dicom","audio/x-musepack","text/calendar","text/vcard","text/vtt","model/gltf-binary","application/vnd.tcpdump.pcap","audio/x-dsf","application/x.ms.shortcut","application/x.apple.alias","audio/x-voc","audio/vnd.dolby.dd-raw","audio/x-m4a","image/apng","image/x-olympus-orf","image/x-sony-arw","image/x-adobe-dng","image/x-nikon-nef","image/x-panasonic-rw2","image/x-fujifilm-raf","video/x-m4v","video/3gpp2","application/x-esri-shape","audio/aac","audio/x-it","audio/x-s3m","audio/x-xm","video/MP1S","video/MP2P","application/vnd.sketchup.skp","image/avif","application/x-lzh-compressed","application/pgp-encrypted","application/x-asar","model/stl","application/vnd.ms-htmlhelp","model/3mf","image/jxl","application/zstd","image/jls","application/vnd.ms-outlook","image/vnd.dwg","application/vnd.apache.parquet","application/java-vm","application/x-arj","application/x-cpio","application/x-ace-compressed","application/avro","application/vnd.iccprofile","application/x.autodesk.fbx","application/vnd.visio","application/vnd.android.package-archive","application/vnd.google.draco","application/x-lz4","application/vnd.openxmlformats-officedocument.presentationml.template","application/vnd.openxmlformats-officedocument.spreadsheetml.template","application/vnd.openxmlformats-officedocument.wordprocessingml.template","application/vnd.ms-excel.template.macroenabled.12","application/vnd.oasis.opendocument.text-template","application/vnd.oasis.opendocument.spreadsheet-template","application/vnd.oasis.opendocument.presentation-template","application/vnd.oasis.opendocument.graphics","application/vnd.oasis.opendocument.graphics-template","application/vnd.ms-excel.sheet.macroenabled.12","application/vnd.ms-word.document.macroenabled.12","application/vnd.ms-word.template.macroenabled.12","application/vnd.ms-powerpoint.template.macroenabled.12","application/vnd.ms-powerpoint.presentation.macroenabled.12","application/java-archive","application/vnd.rn-realmedia","application/x-spss-sav","application/x-ms-regedit","application/x-ft-windows-registry-hive","application/x-jmp-data"]});async function Gc(t,e){return new Ns(e).fromBuffer(t)}function ks(t){switch(t=t.toLowerCase(),t){case"application/epub+zip":return{ext:"epub",mime:t};case"application/vnd.oasis.opendocument.text":return{ext:"odt",mime:t};case"application/vnd.oasis.opendocument.text-template":return{ext:"ott",mime:t};case"application/vnd.oasis.opendocument.spreadsheet":return{ext:"ods",mime:t};case"application/vnd.oasis.opendocument.spreadsheet-template":return{ext:"ots",mime:t};case"application/vnd.oasis.opendocument.presentation":return{ext:"odp",mime:t};case"application/vnd.oasis.opendocument.presentation-template":return{ext:"otp",mime:t};case"application/vnd.oasis.opendocument.graphics":return{ext:"odg",mime:t};case"application/vnd.oasis.opendocument.graphics-template":return{ext:"otg",mime:t};case"application/vnd.openxmlformats-officedocument.presentationml.slideshow":return{ext:"ppsx",mime:t};case"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":return{ext:"xlsx",mime:t};case"application/vnd.ms-excel.sheet.macroenabled":return{ext:"xlsm",mime:"application/vnd.ms-excel.sheet.macroenabled.12"};case"application/vnd.openxmlformats-officedocument.spreadsheetml.template":return{ext:"xltx",mime:t};case"application/vnd.ms-excel.template.macroenabled":return{ext:"xltm",mime:"application/vnd.ms-excel.template.macroenabled.12"};case"application/vnd.ms-powerpoint.slideshow.macroenabled":return{ext:"ppsm",mime:"application/vnd.ms-powerpoint.slideshow.macroenabled.12"};case"application/vnd.openxmlformats-officedocument.wordprocessingml.document":return{ext:"docx",mime:t};case"application/vnd.ms-word.document.macroenabled":return{ext:"docm",mime:"application/vnd.ms-word.document.macroenabled.12"};case"application/vnd.openxmlformats-officedocument.wordprocessingml.template":return{ext:"dotx",mime:t};case"application/vnd.ms-word.template.macroenabledtemplate":return{ext:"dotm",mime:"application/vnd.ms-word.template.macroenabled.12"};case"application/vnd.openxmlformats-officedocument.presentationml.template":return{ext:"potx",mime:t};case"application/vnd.ms-powerpoint.template.macroenabled":return{ext:"potm",mime:"application/vnd.ms-powerpoint.template.macroenabled.12"};case"application/vnd.openxmlformats-officedocument.presentationml.presentation":return{ext:"pptx",mime:t};case"application/vnd.ms-powerpoint.presentation.macroenabled":return{ext:"pptm",mime:"application/vnd.ms-powerpoint.presentation.macroenabled.12"};case"application/vnd.ms-visio.drawing":return{ext:"vsdx",mime:"application/vnd.visio"};case"application/vnd.ms-package.3dmanufacturing-3dmodel+xml":return{ext:"3mf",mime:"model/3mf"};default:}}function Xe(t,e,r){r={offset:0,...r};for(let[n,s]of e.entries())if(r.mask){if(s!==(r.mask[n]&t[n+r.offset]))return!1}else if(s!==t[n+r.offset])return!1;return!0}var As,Ns,I1,v1,qc=C(()=>{ur();Sc();Lc();Mc();Uc();Hc();As=4100;Ns=class{constructor(e){this.options={mpegOffsetTolerance:0,...e},this.detectors=[...e?.customDetectors??[],{id:"core",detect:this.detectConfident},{id:"core.imprecise",detect:this.detectImprecise}],this.tokenizerOptions={abortSignal:e?.signal}}async fromTokenizer(e){let r=e.position;for(let n of this.detectors){let s=await n.detect(e);if(s)return s;if(r!==e.position)return}}async fromBuffer(e){if(!(e instanceof Uint8Array||e instanceof ArrayBuffer))throw new TypeError(`Expected the \`input\` argument to be of type \`Uint8Array\` or \`ArrayBuffer\`, got \`${typeof e}\``);let r=e instanceof Uint8Array?e:new Uint8Array(e);if(r?.length>1)return this.fromTokenizer(Ec(r,this.tokenizerOptions))}async fromBlob(e){let r=bc(e,this.tokenizerOptions);try{return await this.fromTokenizer(r)}finally{await r.close()}}async fromStream(e){let r=wc(e,this.tokenizerOptions);try{return await this.fromTokenizer(r)}finally{await r.close()}}async toDetectionStream(e,r){let{sampleSize:n=As}=r,s,i,o=e.getReader({mode:"byob"});try{let{value:c,done:u}=await o.read(new Uint8Array(n));if(i=c,!u&&c)try{s=await this.fromBuffer(c.subarray(0,n))}catch(f){if(!(f instanceof ae))throw f;s=void 0}i=c}finally{o.releaseLock()}let a=new TransformStream({async start(c){c.enqueue(i)},transform(c,u){u.enqueue(c)}}),l=e.pipeThrough(a);return l.fileType=s,l}check(e,r){return Xe(this.buffer,e,r)}checkString(e,r){return this.check(_c(e,r?.encoding),r)}detectConfident=async e=>{if(this.buffer=new Uint8Array(As),e.fileInfo.size===void 0&&(e.fileInfo.size=Number.MAX_SAFE_INTEGER),this.tokenizer=e,await e.peekBuffer(this.buffer,{length:32,mayBeLess:!0}),this.check([66,77]))return{ext:"bmp",mime:"image/bmp"};if(this.check([11,119]))return{ext:"ac3",mime:"audio/vnd.dolby.dd-raw"};if(this.check([120,1]))return{ext:"dmg",mime:"application/x-apple-diskimage"};if(this.check([77,90]))return{ext:"exe",mime:"application/x-msdownload"};if(this.check([37,33]))return await e.peekBuffer(this.buffer,{length:24,mayBeLess:!0}),this.checkString("PS-Adobe-",{offset:2})&&this.checkString(" EPSF-",{offset:14})?{ext:"eps",mime:"application/eps"}:{ext:"ps",mime:"application/postscript"};if(this.check([31,160])||this.check([31,157]))return{ext:"Z",mime:"application/x-compress"};if(this.check([199,113]))return{ext:"cpio",mime:"application/x-cpio"};if(this.check([96,234]))return{ext:"arj",mime:"application/x-arj"};if(this.check([239,187,191]))return this.tokenizer.ignore(3),this.detectConfident(e);if(this.check([71,73,70]))return{ext:"gif",mime:"image/gif"};if(this.check([73,73,188]))return{ext:"jxr",mime:"image/vnd.ms-photo"};if(this.check([31,139,8])){let n=new mr(e).inflate(),s=!0;try{let i;try{i=await this.fromStream(n)}catch{s=!1}if(i&&i.ext==="tar")return{ext:"tar.gz",mime:"application/gzip"}}finally{s&&await n.cancel()}return{ext:"gz",mime:"application/gzip"}}if(this.check([66,90,104]))return{ext:"bz2",mime:"application/x-bzip2"};if(this.checkString("ID3")){await e.ignore(6);let r=await e.readToken(Wc);return e.position+r>e.fileInfo.size?{ext:"mp3",mime:"audio/mpeg"}:(await e.ignore(r),this.fromTokenizer(e))}if(this.checkString("MP+"))return{ext:"mpc",mime:"audio/x-musepack"};if((this.buffer[0]===67||this.buffer[0]===70)&&this.check([87,83],{offset:1}))return{ext:"swf",mime:"application/x-shockwave-flash"};if(this.check([255,216,255]))return this.check([247],{offset:3})?{ext:"jls",mime:"image/jls"}:{ext:"jpg",mime:"image/jpeg"};if(this.check([79,98,106,1]))return{ext:"avro",mime:"application/avro"};if(this.checkString("FLIF"))return{ext:"flif",mime:"image/flif"};if(this.checkString("8BPS"))return{ext:"psd",mime:"image/vnd.adobe.photoshop"};if(this.checkString("MPCK"))return{ext:"mpc",mime:"audio/x-musepack"};if(this.checkString("FORM"))return{ext:"aif",mime:"audio/aiff"};if(this.checkString("icns",{offset:0}))return{ext:"icns",mime:"image/icns"};if(this.check([80,75,3,4])){let r;return await new hr(e).unzip(n=>{switch(n.filename){case"META-INF/mozilla.rsa":return r={ext:"xpi",mime:"application/x-xpinstall"},{stop:!0};case"META-INF/MANIFEST.MF":return r={ext:"jar",mime:"application/java-archive"},{stop:!0};case"mimetype":return{async handler(s){let i=new TextDecoder("utf-8").decode(s).trim();r=ks(i)},stop:!0};case"[Content_Types].xml":return{async handler(s){let i=new TextDecoder("utf-8").decode(s),o=i.indexOf('.main+xml"');if(o===-1){let a="application/vnd.ms-package.3dmanufacturing-3dmodel+xml";i.includes(`ContentType="${a}"`)&&(r=ks(a))}else{i=i.slice(0,Math.max(0,o));let a=i.lastIndexOf('"'),l=i.slice(Math.max(0,a+1));r=ks(l)}},stop:!0};default:return/classes\d*\.dex/.test(n.filename)?(r={ext:"apk",mime:"application/vnd.android.package-archive"},{stop:!0}):{}}}).catch(n=>{if(!(n instanceof ae))throw n}),r??{ext:"zip",mime:"application/zip"}}if(this.checkString("OggS")){await e.ignore(28);let r=new Uint8Array(8);return await e.readBuffer(r),Xe(r,[79,112,117,115,72,101,97,100])?{ext:"opus",mime:"audio/ogg; codecs=opus"}:Xe(r,[128,116,104,101,111,114,97])?{ext:"ogv",mime:"video/ogg"}:Xe(r,[1,118,105,100,101,111,0])?{ext:"ogm",mime:"video/ogg"}:Xe(r,[127,70,76,65,67])?{ext:"oga",mime:"audio/ogg"}:Xe(r,[83,112,101,101,120,32,32])?{ext:"spx",mime:"audio/ogg"}:Xe(r,[1,118,111,114,98,105,115])?{ext:"ogg",mime:"audio/ogg"}:{ext:"ogx",mime:"application/ogg"}}if(this.check([80,75])&&(this.buffer[2]===3||this.buffer[2]===5||this.buffer[2]===7)&&(this.buffer[3]===4||this.buffer[3]===6||this.buffer[3]===8))return{ext:"zip",mime:"application/zip"};if(this.checkString("MThd"))return{ext:"mid",mime:"audio/midi"};if(this.checkString("wOFF")&&(this.check([0,1,0,0],{offset:4})||this.checkString("OTTO",{offset:4})))return{ext:"woff",mime:"font/woff"};if(this.checkString("wOF2")&&(this.check([0,1,0,0],{offset:4})||this.checkString("OTTO",{offset:4})))return{ext:"woff2",mime:"font/woff2"};if(this.check([212,195,178,161])||this.check([161,178,195,212]))return{ext:"pcap",mime:"application/vnd.tcpdump.pcap"};if(this.checkString("DSD "))return{ext:"dsf",mime:"audio/x-dsf"};if(this.checkString("LZIP"))return{ext:"lz",mime:"application/x-lzip"};if(this.checkString("fLaC"))return{ext:"flac",mime:"audio/flac"};if(this.check([66,80,71,251]))return{ext:"bpg",mime:"image/bpg"};if(this.checkString("wvpk"))return{ext:"wv",mime:"audio/wavpack"};if(this.checkString("%PDF"))return{ext:"pdf",mime:"application/pdf"};if(this.check([0,97,115,109]))return{ext:"wasm",mime:"application/wasm"};if(this.check([73,73])){let r=await this.readTiffHeader(!1);if(r)return r}if(this.check([77,77])){let r=await this.readTiffHeader(!0);if(r)return r}if(this.checkString("MAC "))return{ext:"ape",mime:"audio/ape"};if(this.check([26,69,223,163])){async function r(){let a=await e.peekNumber(lc),l=128,c=0;for(;(a&l)===0&&l!==0;)++c,l>>=1;let u=new Uint8Array(c+1);return await e.readBuffer(u),u}async function n(){let a=await r(),l=await r();l[0]^=128>>l.length-1;let c=Math.min(6,l.length),u=new DataView(a.buffer),f=new DataView(l.buffer,l.length-c,c);return{id:Cs(u),len:Cs(f)}}async function s(a){for(;a>0;){let l=await n();if(l.id===17026)return(await e.readToken(new Fe(l.len))).replaceAll(/\00.*$/g,"");await e.ignore(l.len),--a}}let i=await n();switch(await s(i.len)){case"webm":return{ext:"webm",mime:"video/webm"};case"matroska":return{ext:"mkv",mime:"video/matroska"};default:return}}if(this.checkString("SQLi"))return{ext:"sqlite",mime:"application/x-sqlite3"};if(this.check([78,69,83,26]))return{ext:"nes",mime:"application/x-nintendo-nes-rom"};if(this.checkString("Cr24"))return{ext:"crx",mime:"application/x-google-chrome-extension"};if(this.checkString("MSCF")||this.checkString("ISc("))return{ext:"cab",mime:"application/vnd.ms-cab-compressed"};if(this.check([237,171,238,219]))return{ext:"rpm",mime:"application/x-rpm"};if(this.check([197,208,211,198]))return{ext:"eps",mime:"application/eps"};if(this.check([40,181,47,253]))return{ext:"zst",mime:"application/zstd"};if(this.check([127,69,76,70]))return{ext:"elf",mime:"application/x-elf"};if(this.check([33,66,68,78]))return{ext:"pst",mime:"application/vnd.ms-outlook"};if(this.checkString("PAR1")||this.checkString("PARE"))return{ext:"parquet",mime:"application/vnd.apache.parquet"};if(this.checkString("ttcf"))return{ext:"ttc",mime:"font/collection"};if(this.check([207,250,237,254]))return{ext:"macho",mime:"application/x-mach-binary"};if(this.check([4,34,77,24]))return{ext:"lz4",mime:"application/x-lz4"};if(this.checkString("regf"))return{ext:"dat",mime:"application/x-ft-windows-registry-hive"};if(this.checkString("$FL2")||this.checkString("$FL3"))return{ext:"sav",mime:"application/x-spss-sav"};if(this.check([79,84,84,79,0]))return{ext:"otf",mime:"font/otf"};if(this.checkString("#!AMR"))return{ext:"amr",mime:"audio/amr"};if(this.checkString("{\\rtf"))return{ext:"rtf",mime:"application/rtf"};if(this.check([70,76,86,1]))return{ext:"flv",mime:"video/x-flv"};if(this.checkString("IMPM"))return{ext:"it",mime:"audio/x-it"};if(this.checkString("-lh0-",{offset:2})||this.checkString("-lh1-",{offset:2})||this.checkString("-lh2-",{offset:2})||this.checkString("-lh3-",{offset:2})||this.checkString("-lh4-",{offset:2})||this.checkString("-lh5-",{offset:2})||this.checkString("-lh6-",{offset:2})||this.checkString("-lh7-",{offset:2})||this.checkString("-lzs-",{offset:2})||this.checkString("-lz4-",{offset:2})||this.checkString("-lz5-",{offset:2})||this.checkString("-lhd-",{offset:2}))return{ext:"lzh",mime:"application/x-lzh-compressed"};if(this.check([0,0,1,186])){if(this.check([33],{offset:4,mask:[241]}))return{ext:"mpg",mime:"video/MP1S"};if(this.check([68],{offset:4,mask:[196]}))return{ext:"mpg",mime:"video/MP2P"}}if(this.checkString("ITSF"))return{ext:"chm",mime:"application/vnd.ms-htmlhelp"};if(this.check([202,254,186,190]))return{ext:"class",mime:"application/java-vm"};if(this.checkString(".RMF"))return{ext:"rm",mime:"application/vnd.rn-realmedia"};if(this.checkString("DRACO"))return{ext:"drc",mime:"application/vnd.google.draco"};if(this.check([253,55,122,88,90,0]))return{ext:"xz",mime:"application/x-xz"};if(this.checkString("<?xml "))return{ext:"xml",mime:"application/xml"};if(this.check([55,122,188,175,39,28]))return{ext:"7z",mime:"application/x-7z-compressed"};if(this.check([82,97,114,33,26,7])&&(this.buffer[6]===0||this.buffer[6]===1))return{ext:"rar",mime:"application/x-rar-compressed"};if(this.checkString("solid "))return{ext:"stl",mime:"model/stl"};if(this.checkString("AC")){let r=new Fe(4,"latin1").get(this.buffer,2);if(r.match("^d*")&&r>=1e3&&r<=1050)return{ext:"dwg",mime:"image/vnd.dwg"}}if(this.checkString("070707"))return{ext:"cpio",mime:"application/x-cpio"};if(this.checkString("BLENDER"))return{ext:"blend",mime:"application/x-blender"};if(this.checkString("!<arch>"))return await e.ignore(8),await e.readToken(new Fe(13,"ascii"))==="debian-binary"?{ext:"deb",mime:"application/x-deb"}:{ext:"ar",mime:"application/x-unix-archive"};if(this.checkString("WEBVTT")&&[`
512
- `,"\r"," "," ","\0"].some(r=>this.checkString(r,{offset:6})))return{ext:"vtt",mime:"text/vtt"};if(this.check([137,80,78,71,13,10,26,10])){await e.ignore(8);async function r(){return{length:await e.readToken(uc),type:await e.readToken(new Fe(4,"latin1"))}}do{let n=await r();if(n.length<0)return;switch(n.type){case"IDAT":return{ext:"png",mime:"image/png"};case"acTL":return{ext:"apng",mime:"image/apng"};default:await e.ignore(n.length+4)}}while(e.position+8<e.fileInfo.size);return{ext:"png",mime:"image/png"}}if(this.check([65,82,82,79,87,49,0,0]))return{ext:"arrow",mime:"application/vnd.apache.arrow.file"};if(this.check([103,108,84,70,2,0,0,0]))return{ext:"glb",mime:"model/gltf-binary"};if(this.check([102,114,101,101],{offset:4})||this.check([109,100,97,116],{offset:4})||this.check([109,111,111,118],{offset:4})||this.check([119,105,100,101],{offset:4}))return{ext:"mov",mime:"video/quicktime"};if(this.check([73,73,82,79,8,0,0,0,24]))return{ext:"orf",mime:"image/x-olympus-orf"};if(this.checkString("gimp xcf "))return{ext:"xcf",mime:"image/x-xcf"};if(this.checkString("ftyp",{offset:4})&&(this.buffer[8]&96)!==0){let r=new Fe(4,"latin1").get(this.buffer,8).replace("\0"," ").trim();switch(r){case"avif":case"avis":return{ext:"avif",mime:"image/avif"};case"mif1":return{ext:"heic",mime:"image/heif"};case"msf1":return{ext:"heic",mime:"image/heif-sequence"};case"heic":case"heix":return{ext:"heic",mime:"image/heic"};case"hevc":case"hevx":return{ext:"heic",mime:"image/heic-sequence"};case"qt":return{ext:"mov",mime:"video/quicktime"};case"M4V":case"M4VH":case"M4VP":return{ext:"m4v",mime:"video/x-m4v"};case"M4P":return{ext:"m4p",mime:"video/mp4"};case"M4B":return{ext:"m4b",mime:"audio/mp4"};case"M4A":return{ext:"m4a",mime:"audio/x-m4a"};case"F4V":return{ext:"f4v",mime:"video/mp4"};case"F4P":return{ext:"f4p",mime:"video/mp4"};case"F4A":return{ext:"f4a",mime:"audio/mp4"};case"F4B":return{ext:"f4b",mime:"audio/mp4"};case"crx":return{ext:"cr3",mime:"image/x-canon-cr3"};default:return r.startsWith("3g")?r.startsWith("3g2")?{ext:"3g2",mime:"video/3gpp2"}:{ext:"3gp",mime:"video/3gpp"}:{ext:"mp4",mime:"video/mp4"}}}if(this.checkString(`REGEDIT4\r
513
- `))return{ext:"reg",mime:"application/x-ms-regedit"};if(this.check([82,73,70,70])){if(this.checkString("WEBP",{offset:8}))return{ext:"webp",mime:"image/webp"};if(this.check([65,86,73],{offset:8}))return{ext:"avi",mime:"video/vnd.avi"};if(this.check([87,65,86,69],{offset:8}))return{ext:"wav",mime:"audio/wav"};if(this.check([81,76,67,77],{offset:8}))return{ext:"qcp",mime:"audio/qcelp"}}if(this.check([73,73,85,0,24,0,0,0,136,231,116,216]))return{ext:"rw2",mime:"image/x-panasonic-rw2"};if(this.check([48,38,178,117,142,102,207,17,166,217])){async function r(){let n=new Uint8Array(16);return await e.readBuffer(n),{id:n,size:Number(await e.readToken(fc))}}for(await e.ignore(30);e.position+24<e.fileInfo.size;){let n=await r(),s=n.size-24;if(Xe(n.id,[145,7,220,183,183,169,207,17,142,230,0,192,12,32,83,101])){let i=new Uint8Array(16);if(s-=await e.readBuffer(i),Xe(i,[64,158,105,248,77,91,207,17,168,253,0,128,95,92,68,43]))return{ext:"asf",mime:"audio/x-ms-asf"};if(Xe(i,[192,239,25,188,77,91,207,17,168,253,0,128,95,92,68,43]))return{ext:"asf",mime:"video/x-ms-asf"};break}await e.ignore(s)}return{ext:"asf",mime:"application/vnd.ms-asf"}}if(this.check([171,75,84,88,32,49,49,187,13,10,26,10]))return{ext:"ktx",mime:"image/ktx"};if((this.check([126,16,4])||this.check([126,24,4]))&&this.check([48,77,73,69],{offset:4}))return{ext:"mie",mime:"application/x-mie"};if(this.check([39,10,0,0,0,0,0,0,0,0,0,0],{offset:2}))return{ext:"shp",mime:"application/x-esri-shape"};if(this.check([255,79,255,81]))return{ext:"j2c",mime:"image/j2c"};if(this.check([0,0,0,12,106,80,32,32,13,10,135,10]))switch(await e.ignore(20),await e.readToken(new Fe(4,"ascii"))){case"jp2 ":return{ext:"jp2",mime:"image/jp2"};case"jpx ":return{ext:"jpx",mime:"image/jpx"};case"jpm ":return{ext:"jpm",mime:"image/jpm"};case"mjp2":return{ext:"mj2",mime:"image/mj2"};default:return}if(this.check([255,10])||this.check([0,0,0,12,74,88,76,32,13,10,135,10]))return{ext:"jxl",mime:"image/jxl"};if(this.check([254,255]))return this.checkString("<?xml ",{offset:2,encoding:"utf-16be"})?{ext:"xml",mime:"application/xml"}:void 0;if(this.check([208,207,17,224,161,177,26,225]))return{ext:"cfb",mime:"application/x-cfb"};if(await e.peekBuffer(this.buffer,{length:Math.min(256,e.fileInfo.size),mayBeLess:!0}),this.check([97,99,115,112],{offset:36}))return{ext:"icc",mime:"application/vnd.iccprofile"};if(this.checkString("**ACE",{offset:7})&&this.checkString("**",{offset:12}))return{ext:"ace",mime:"application/x-ace-compressed"};if(this.checkString("BEGIN:")){if(this.checkString("VCARD",{offset:6}))return{ext:"vcf",mime:"text/vcard"};if(this.checkString("VCALENDAR",{offset:6}))return{ext:"ics",mime:"text/calendar"}}if(this.checkString("FUJIFILMCCD-RAW"))return{ext:"raf",mime:"image/x-fujifilm-raf"};if(this.checkString("Extended Module:"))return{ext:"xm",mime:"audio/x-xm"};if(this.checkString("Creative Voice File"))return{ext:"voc",mime:"audio/x-voc"};if(this.check([4,0,0,0])&&this.buffer.length>=16){let r=new DataView(this.buffer.buffer).getUint32(12,!0);if(r>12&&this.buffer.length>=r+16)try{let n=new TextDecoder().decode(this.buffer.subarray(16,r+16));if(JSON.parse(n).files)return{ext:"asar",mime:"application/x-asar"}}catch{}}if(this.check([6,14,43,52,2,5,1,1,13,1,2,1,1,2]))return{ext:"mxf",mime:"application/mxf"};if(this.checkString("SCRM",{offset:44}))return{ext:"s3m",mime:"audio/x-s3m"};if(this.check([71])&&this.check([71],{offset:188}))return{ext:"mts",mime:"video/mp2t"};if(this.check([71],{offset:4})&&this.check([71],{offset:196}))return{ext:"mts",mime:"video/mp2t"};if(this.check([66,79,79,75,77,79,66,73],{offset:60}))return{ext:"mobi",mime:"application/x-mobipocket-ebook"};if(this.check([68,73,67,77],{offset:128}))return{ext:"dcm",mime:"application/dicom"};if(this.check([76,0,0,0,1,20,2,0,0,0,0,0,192,0,0,0,0,0,0,70]))return{ext:"lnk",mime:"application/x.ms.shortcut"};if(this.check([98,111,111,107,0,0,0,0,109,97,114,107,0,0,0,0]))return{ext:"alias",mime:"application/x.apple.alias"};if(this.checkString("Kaydara FBX Binary \0"))return{ext:"fbx",mime:"application/x.autodesk.fbx"};if(this.check([76,80],{offset:34})&&(this.check([0,0,1],{offset:8})||this.check([1,0,2],{offset:8})||this.check([2,0,2],{offset:8})))return{ext:"eot",mime:"application/vnd.ms-fontobject"};if(this.check([6,6,237,245,216,29,70,229,189,49,239,231,254,116,183,29]))return{ext:"indd",mime:"application/x-indesign"};if(this.check([255,255,0,0,7,0,0,0,4,0,0,0,1,0,1,0])||this.check([0,0,255,255,0,0,0,7,0,0,0,4,0,1,0,1]))return{ext:"jmp",mime:"application/x-jmp-data"};if(await e.peekBuffer(this.buffer,{length:Math.min(512,e.fileInfo.size),mayBeLess:!0}),this.checkString("ustar",{offset:257})&&(this.checkString("\0",{offset:262})||this.checkString(" ",{offset:262}))||this.check([0,0,0,0,0,0],{offset:257})&&Bc(this.buffer))return{ext:"tar",mime:"application/x-tar"};if(this.check([255,254])){let r="utf-16le";return this.checkString("<?xml ",{offset:2,encoding:r})?{ext:"xml",mime:"application/xml"}:this.check([255,14],{offset:2})&&this.checkString("SketchUp Model",{offset:4,encoding:r})?{ext:"skp",mime:"application/vnd.sketchup.skp"}:this.checkString(`Windows Registry Editor Version 5.00\r
514
- `,{offset:2,encoding:r})?{ext:"reg",mime:"application/x-ms-regedit"}:void 0}if(this.checkString("-----BEGIN PGP MESSAGE-----"))return{ext:"pgp",mime:"application/pgp-encrypted"}};detectImprecise=async e=>{if(this.buffer=new Uint8Array(As),await e.peekBuffer(this.buffer,{length:Math.min(8,e.fileInfo.size),mayBeLess:!0}),this.check([0,0,1,186])||this.check([0,0,1,179]))return{ext:"mpg",mime:"video/mpeg"};if(this.check([0,1,0,0,0]))return{ext:"ttf",mime:"font/ttf"};if(this.check([0,0,1,0]))return{ext:"ico",mime:"image/x-icon"};if(this.check([0,0,2,0]))return{ext:"cur",mime:"image/x-icon"};if(await e.peekBuffer(this.buffer,{length:Math.min(2+this.options.mpegOffsetTolerance,e.fileInfo.size),mayBeLess:!0}),this.buffer.length>=2+this.options.mpegOffsetTolerance)for(let r=0;r<=this.options.mpegOffsetTolerance;++r){let n=this.scanMpeg(r);if(n)return n}};async readTiffTag(e){let r=await this.tokenizer.readToken(e?Ht:pe);switch(this.tokenizer.ignore(10),r){case 50341:return{ext:"arw",mime:"image/x-sony-arw"};case 50706:return{ext:"dng",mime:"image/x-adobe-dng"};default:}}async readTiffIFD(e){let r=await this.tokenizer.readToken(e?Ht:pe);for(let n=0;n<r;++n){let s=await this.readTiffTag(e);if(s)return s}}async readTiffHeader(e){let r=(e?Ht:pe).get(this.buffer,2),n=(e?cc:ge).get(this.buffer,4);if(r===42){if(n>=6){if(this.checkString("CR",{offset:8}))return{ext:"cr2",mime:"image/x-canon-cr2"};if(n>=8){let i=(e?Ht:pe).get(this.buffer,8),o=(e?Ht:pe).get(this.buffer,10);if(i===28&&o===254||i===31&&o===11)return{ext:"nef",mime:"image/x-nikon-nef"}}}return await this.tokenizer.ignore(n),await this.readTiffIFD(e)??{ext:"tif",mime:"image/tiff"}}if(r===43)return{ext:"tif",mime:"image/tiff"}}scanMpeg(e){if(this.check([255,224],{offset:e,mask:[255,224]})){if(this.check([16],{offset:e+1,mask:[22]}))return this.check([8],{offset:e+1,mask:[8]})?{ext:"aac",mime:"audio/aac"}:{ext:"aac",mime:"audio/aac"};if(this.check([2],{offset:e+1,mask:[6]}))return{ext:"mp3",mime:"audio/mpeg"};if(this.check([4],{offset:e+1,mask:[6]}))return{ext:"mp2",mime:"audio/mpeg"};if(this.check([6],{offset:e+1,mask:[6]}))return{ext:"mp1",mime:"audio/mpeg"}}}},I1=new Set(jc),v1=new Set(zc)});var Zc={};R(Zc,{fileCommand:()=>pg});function lg(t,e){if(Kc[t])return Kc[t];let[r,n]=e.split("/"),s=n?.split("+")[0]?.replace(/-/g," ")||t;switch(r){case"image":return`${s.toUpperCase()} image data`;case"audio":return`${s.toUpperCase()} audio`;case"video":return`${s.toUpperCase()} video`;case"font":return`${s} font`;case"model":return`${s} 3D model`;case"application":return n?.includes("zip")||n?.includes("compressed")?`${s} archive data`:n?.includes("executable")?`${s} executable`:`${t.toUpperCase()} data`;default:return`${t.toUpperCase()} data`}}function cg(t){let e=t.split("/").pop()||t;if(e.startsWith(".")&&!e.includes(".",1))return e;let r=e.lastIndexOf(".");return r===-1||r===0?"":e.slice(r).toLowerCase()}function ug(t,e){if(t.startsWith("#!")){let l=t.split(`
506
+ `)){let g=m.match(/^([a-fA-F0-9]+)\s+[* ]?(.+)$/);if(!g)continue;let[,w,E]=g,b=await l(E);if(b===null){d+=`${E}: FAILED open or read
507
+ `,f++;continue}let S=await wc(e,b)===w.toLowerCase();d+=`${E}: ${S?"OK":"FAILED"}
508
+ `,S||f++}}return f>0&&(d+=`${t}: WARNING: ${f} computed checksum${f>1?"s":""} did NOT match
509
+ `),{stdout:d,stderr:"",exitCode:f>0?1:0}}let c="",u=0;for(let f of a){let d=await l(f);if(d===null){c+=`${t}: ${f}: No such file or directory
510
+ `,u=1;continue}c+=`${await wc(e,d)} ${f}
511
+ `}return{stdout:c,stderr:"",exitCode:u}}}}var ng,dn=C(()=>{"use strict";L();ng={sha1:"SHA-1",sha256:"SHA-256"}});var Ec={};$(Ec,{md5sumCommand:()=>ig});var ig,bc=C(()=>{"use strict";dn();ig=tr("md5sum","md5","compute MD5 message digest")});var Sc={};$(Sc,{sha1sumCommand:()=>og});var og,Cc=C(()=>{"use strict";dn();og=tr("sha1sum","sha1","compute SHA1 message digest")});var Ac={};$(Ac,{sha256sumCommand:()=>ag});var ag,kc=C(()=>{"use strict";dn();ag=tr("sha256sum","sha256","compute SHA256 message digest")});var Nc=Ur(Ds=>{Ds.read=function(t,e,r,n,s){var i,o,a=s*8-n-1,l=(1<<a)-1,c=l>>1,u=-7,f=r?s-1:0,d=r?-1:1,p=t[e+f];for(f+=d,i=p&(1<<-u)-1,p>>=-u,u+=a;u>0;i=i*256+t[e+f],f+=d,u-=8);for(o=i&(1<<-u)-1,i>>=-u,u+=n;u>0;o=o*256+t[e+f],f+=d,u-=8);if(i===0)i=1-c;else{if(i===l)return o?NaN:(p?-1:1)*(1/0);o=o+Math.pow(2,n),i=i-c}return(p?-1:1)*o*Math.pow(2,i-n)};Ds.write=function(t,e,r,n,s,i){var o,a,l,c=i*8-s-1,u=(1<<c)-1,f=u>>1,d=s===23?Math.pow(2,-24)-Math.pow(2,-77):0,p=n?0:i-1,h=n?1:-1,m=e<0||e===0&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,o=u):(o=Math.floor(Math.log(e)/Math.LN2),e*(l=Math.pow(2,-o))<1&&(o--,l*=2),o+f>=1?e+=d/l:e+=d*Math.pow(2,1-f),e*l>=2&&(o++,l/=2),o+f>=u?(a=0,o=u):o+f>=1?(a=(e*l-1)*Math.pow(2,s),o=o+f):(a=e*Math.pow(2,f-1)*Math.pow(2,s),o=0));s>=8;t[r+p]=a&255,p+=h,a/=256,s-=8);for(o=o<<s|a,c+=s;c>0;t[r+p]=o&255,p+=h,o/=256,c-=8);t[r+p-h]|=m*128}});function Ic(t,e="utf-8"){switch(e.toLowerCase()){case"utf-8":case"utf8":return typeof globalThis.TextDecoder<"u"?new globalThis.TextDecoder("utf-8").decode(t):cg(t);case"utf-16le":return ug(t);case"ascii":return fg(t);case"latin1":case"iso-8859-1":return dg(t);case"windows-1252":return pg(t);default:throw new RangeError(`Encoding '${e}' not supported`)}}function cg(t){let e="",r=0;for(;r<t.length;){let n=t[r++];if(n<128)e+=String.fromCharCode(n);else if(n<224){let s=t[r++]&63;e+=String.fromCharCode((n&31)<<6|s)}else if(n<240){let s=t[r++]&63,i=t[r++]&63;e+=String.fromCharCode((n&15)<<12|s<<6|i)}else{let s=t[r++]&63,i=t[r++]&63,o=t[r++]&63,a=(n&7)<<18|s<<12|i<<6|o;a-=65536,e+=String.fromCharCode(55296+(a>>10&1023),56320+(a&1023))}}return e}function ug(t){let e="";for(let r=0;r<t.length;r+=2)e+=String.fromCharCode(t[r]|t[r+1]<<8);return e}function fg(t){return String.fromCharCode(...t.map(e=>e&127))}function dg(t){return String.fromCharCode(...t)}function pg(t){let e="";for(let r of t)r>=128&&r<=159&&Ls[r]?e+=Ls[r]:e+=String.fromCharCode(r);return e}var Ls,lg,vc=C(()=>{Ls={128:"\u20AC",130:"\u201A",131:"\u0192",132:"\u201E",133:"\u2026",134:"\u2020",135:"\u2021",136:"\u02C6",137:"\u2030",138:"\u0160",139:"\u2039",140:"\u0152",142:"\u017D",145:"\u2018",146:"\u2019",147:"\u201C",148:"\u201D",149:"\u2022",150:"\u2013",151:"\u2014",152:"\u02DC",153:"\u2122",154:"\u0161",155:"\u203A",156:"\u0153",158:"\u017E",159:"\u0178"},lg={};for(let[t,e]of Object.entries(Ls))lg[e]=Number.parseInt(t)});function _e(t){return new DataView(t.buffer,t.byteOffset)}var $c,Rc,de,rr,ye,Pc,Fc,Tc,Be,Nr=C(()=>{$c=Xi(Nc(),1);vc();Rc={len:1,get(t,e){return _e(t).getUint8(e)},put(t,e,r){return _e(t).setUint8(e,r),e+1}},de={len:2,get(t,e){return _e(t).getUint16(e,!0)},put(t,e,r){return _e(t).setUint16(e,r,!0),e+2}},rr={len:2,get(t,e){return _e(t).getUint16(e)},put(t,e,r){return _e(t).setUint16(e,r),e+2}},ye={len:4,get(t,e){return _e(t).getUint32(e,!0)},put(t,e,r){return _e(t).setUint32(e,r,!0),e+4}},Pc={len:4,get(t,e){return _e(t).getUint32(e)},put(t,e,r){return _e(t).setUint32(e,r),e+4}},Fc={len:4,get(t,e){return _e(t).getInt32(e)},put(t,e,r){return _e(t).setInt32(e,r),e+4}},Tc={len:8,get(t,e){return _e(t).getBigUint64(e,!0)},put(t,e,r){return _e(t).setBigUint64(e,r,!0),e+8}},Be=class{constructor(e,r){this.len=e,this.encoding=r}get(e,r=0){let n=e.subarray(r,r+this.len);return Ic(n,this.encoding)}}});var mg,oe,Tt,Ir=C(()=>{mg="End-Of-Stream",oe=class extends Error{constructor(){super(mg),this.name="EndOfStreamError"}},Tt=class extends Error{constructor(e="The operation was aborted"){super(e),this.name="AbortError"}}});var Oc=C(()=>{});var Ot,pn=C(()=>{Ir();Ot=class{constructor(){this.endOfStream=!1,this.interrupted=!1,this.peekQueue=[]}async peek(e,r=!1){let n=await this.read(e,r);return this.peekQueue.push(e.subarray(0,n)),n}async read(e,r=!1){if(e.length===0)return 0;let n=this.readFromPeekBuffer(e);if(this.endOfStream||(n+=await this.readRemainderFromStream(e.subarray(n),r)),n===0&&!r)throw new oe;return n}readFromPeekBuffer(e){let r=e.length,n=0;for(;this.peekQueue.length>0&&r>0;){let s=this.peekQueue.pop();if(!s)throw new Error("peekData should be defined");let i=Math.min(s.length,r);e.set(s.subarray(0,i),n),n+=i,r-=i,i<s.length&&this.peekQueue.push(s.subarray(i))}return n}async readRemainderFromStream(e,r){let n=0;for(;n<e.length&&!this.endOfStream;){if(this.interrupted)throw new Tt;let s=await this.readFromStream(e.subarray(n),r);if(s===0)break;n+=s}if(!r&&n<e.length)throw new oe;return n}}});var Dc=C(()=>{Ir();Oc();pn()});var hn,Lc=C(()=>{pn();hn=class extends Ot{constructor(e){super(),this.reader=e}async abort(){return this.close()}async close(){this.reader.releaseLock()}}});var vr,Ms=C(()=>{Lc();vr=class extends hn{async readFromStream(e,r){if(e.length===0)return 0;let n=await this.reader.read(new Uint8Array(e.length),{min:r?void 0:e.length});return n.done&&(this.endOfStream=n.done),n.value?(e.set(n.value),n.value.length):0}}});var nr,_s=C(()=>{Ir();pn();nr=class extends Ot{constructor(e){super(),this.reader=e,this.buffer=null}writeChunk(e,r){let n=Math.min(r.length,e.length);return e.set(r.subarray(0,n)),n<r.length?this.buffer=r.subarray(n):this.buffer=null,n}async readFromStream(e,r){if(e.length===0)return 0;let n=0;for(this.buffer&&(n+=this.writeChunk(e,this.buffer));n<e.length&&!this.endOfStream;){let s=await this.reader.read();if(s.done){this.endOfStream=!0;break}s.value&&(n+=this.writeChunk(e.subarray(n),s.value))}if(!r&&n===0&&this.endOfStream)throw new oe;return n}abort(){return this.interrupted=!0,this.reader.cancel()}async close(){await this.abort(),this.reader.releaseLock()}}});function Bs(t){try{let e=t.getReader({mode:"byob"});return e instanceof ReadableStreamDefaultReader?new nr(e):new vr(e)}catch(e){if(e instanceof TypeError)return new nr(t.getReader());throw e}}var Mc=C(()=>{Ms();_s()});var Dt=C(()=>{Ir();Dc();Ms();_s();Mc()});var ct,$r=C(()=>{Dt();ct=class{constructor(e){this.numBuffer=new Uint8Array(8),this.position=0,this.onClose=e?.onClose,e?.abortSignal&&e.abortSignal.addEventListener("abort",()=>{this.abort()})}async readToken(e,r=this.position){let n=new Uint8Array(e.len);if(await this.readBuffer(n,{position:r})<e.len)throw new oe;return e.get(n,0)}async peekToken(e,r=this.position){let n=new Uint8Array(e.len);if(await this.peekBuffer(n,{position:r})<e.len)throw new oe;return e.get(n,0)}async readNumber(e){if(await this.readBuffer(this.numBuffer,{length:e.len})<e.len)throw new oe;return e.get(this.numBuffer,0)}async peekNumber(e){if(await this.peekBuffer(this.numBuffer,{length:e.len})<e.len)throw new oe;return e.get(this.numBuffer,0)}async ignore(e){if(this.fileInfo.size!==void 0){let r=this.fileInfo.size-this.position;if(e>r)return this.position+=r,r}return this.position+=e,e}async close(){await this.abort(),await this.onClose?.()}normalizeOptions(e,r){if(!this.supportsRandomAccess()&&r&&r.position!==void 0&&r.position<this.position)throw new Error("`options.position` must be equal or greater than `tokenizer.position`");return{mayBeLess:!1,offset:0,length:e.length,position:this.position,...r}}abort(){return Promise.resolve()}}});var yg,mn,_c=C(()=>{$r();Dt();yg=256e3,mn=class extends ct{constructor(e,r){super(r),this.streamReader=e,this.fileInfo=r?.fileInfo??{}}async readBuffer(e,r){let n=this.normalizeOptions(e,r),s=n.position-this.position;if(s>0)return await this.ignore(s),this.readBuffer(e,r);if(s<0)throw new Error("`options.position` must be equal or greater than `tokenizer.position`");if(n.length===0)return 0;let i=await this.streamReader.read(e.subarray(0,n.length),n.mayBeLess);if(this.position+=i,(!r||!r.mayBeLess)&&i<n.length)throw new oe;return i}async peekBuffer(e,r){let n=this.normalizeOptions(e,r),s=0;if(n.position){let i=n.position-this.position;if(i>0){let o=new Uint8Array(n.length+i);return s=await this.peekBuffer(o,{mayBeLess:n.mayBeLess}),e.set(o.subarray(i)),s-i}if(i<0)throw new Error("Cannot peek from a negative offset in a stream")}if(n.length>0){try{s=await this.streamReader.peek(e.subarray(0,n.length),n.mayBeLess)}catch(i){if(r?.mayBeLess&&i instanceof oe)return 0;throw i}if(!n.mayBeLess&&s<n.length)throw new oe}return s}async ignore(e){let r=Math.min(yg,e),n=new Uint8Array(r),s=0;for(;s<e;){let i=e-s,o=await this.readBuffer(n,{length:Math.min(r,i)});if(o<0)return o;s+=o}return s}abort(){return this.streamReader.abort()}async close(){return this.streamReader.close()}supportsRandomAccess(){return!1}}});var gn,Bc=C(()=>{Dt();$r();gn=class extends ct{constructor(e,r){super(r),this.uint8Array=e,this.fileInfo={...r?.fileInfo??{},size:e.length}}async readBuffer(e,r){r?.position&&(this.position=r.position);let n=await this.peekBuffer(e,r);return this.position+=n,n}async peekBuffer(e,r){let n=this.normalizeOptions(e,r),s=Math.min(this.uint8Array.length-n.position,n.length);if(!n.mayBeLess&&s<n.length)throw new oe;return e.set(this.uint8Array.subarray(n.position,n.position+s)),s}close(){return super.close()}supportsRandomAccess(){return!0}setPosition(e){this.position=e}}});var yn,Wc=C(()=>{Dt();$r();yn=class extends ct{constructor(e,r){super(r),this.blob=e,this.fileInfo={...r?.fileInfo??{},size:e.size,mimeType:e.type}}async readBuffer(e,r){r?.position&&(this.position=r.position);let n=await this.peekBuffer(e,r);return this.position+=n,n}async peekBuffer(e,r){let n=this.normalizeOptions(e,r),s=Math.min(this.blob.size-n.position,n.length);if(!n.mayBeLess&&s<n.length)throw new oe;let i=await this.blob.slice(n.position,n.position+s).arrayBuffer();return e.set(new Uint8Array(i)),s}close(){return super.close()}supportsRandomAccess(){return!0}setPosition(e){this.position=e}}});function Uc(t,e){let r=Bs(t),n=e??{},s=n.onClose;return n.onClose=async()=>{if(await r.close(),s)return s()},new mn(r,n)}function zc(t,e){return new gn(t,e)}function jc(t,e){return new yn(t,e)}var Hc=C(()=>{Dt();_c();Bc();Wc();Dt();$r()});var qc=Ur((R1,Gc)=>{var sr=1e3,ir=sr*60,or=ir*60,Lt=or*24,wg=Lt*7,Eg=Lt*365.25;Gc.exports=function(t,e){e=e||{};var r=typeof t;if(r==="string"&&t.length>0)return bg(t);if(r==="number"&&isFinite(t))return e.long?Cg(t):Sg(t);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(t))};function bg(t){if(t=String(t),!(t.length>100)){var e=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(t);if(e){var r=parseFloat(e[1]),n=(e[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return r*Eg;case"weeks":case"week":case"w":return r*wg;case"days":case"day":case"d":return r*Lt;case"hours":case"hour":case"hrs":case"hr":case"h":return r*or;case"minutes":case"minute":case"mins":case"min":case"m":return r*ir;case"seconds":case"second":case"secs":case"sec":case"s":return r*sr;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function Sg(t){var e=Math.abs(t);return e>=Lt?Math.round(t/Lt)+"d":e>=or?Math.round(t/or)+"h":e>=ir?Math.round(t/ir)+"m":e>=sr?Math.round(t/sr)+"s":t+"ms"}function Cg(t){var e=Math.abs(t);return e>=Lt?xn(t,e,Lt,"day"):e>=or?xn(t,e,or,"hour"):e>=ir?xn(t,e,ir,"minute"):e>=sr?xn(t,e,sr,"second"):t+" ms"}function xn(t,e,r,n){var s=e>=r*1.5;return Math.round(t/r)+" "+n+(s?"s":"")}});var Kc=Ur((P1,Vc)=>{function Ag(t){r.debug=r,r.default=r,r.coerce=l,r.disable=o,r.enable=s,r.enabled=a,r.humanize=qc(),r.destroy=c,Object.keys(t).forEach(u=>{r[u]=t[u]}),r.names=[],r.skips=[],r.formatters={};function e(u){let f=0;for(let d=0;d<u.length;d++)f=(f<<5)-f+u.charCodeAt(d),f|=0;return r.colors[Math.abs(f)%r.colors.length]}r.selectColor=e;function r(u){let f,d=null,p,h;function m(...g){if(!m.enabled)return;let w=m,E=Number(new Date),b=E-(f||E);w.diff=b,w.prev=f,w.curr=E,f=E,g[0]=r.coerce(g[0]),typeof g[0]!="string"&&g.unshift("%O");let S=0;g[0]=g[0].replace(/%([a-zA-Z%])/g,(F,W)=>{if(F==="%%")return"%";S++;let j=r.formatters[W];if(typeof j=="function"){let pe=g[S];F=j.call(w,pe),g.splice(S,1),S--}return F}),r.formatArgs.call(w,g),(w.log||r.log).apply(w,g)}return m.namespace=u,m.useColors=r.useColors(),m.color=r.selectColor(u),m.extend=n,m.destroy=r.destroy,Object.defineProperty(m,"enabled",{enumerable:!0,configurable:!1,get:()=>d!==null?d:(p!==r.namespaces&&(p=r.namespaces,h=r.enabled(u)),h),set:g=>{d=g}}),typeof r.init=="function"&&r.init(m),m}function n(u,f){let d=r(this.namespace+(typeof f>"u"?":":f)+u);return d.log=this.log,d}function s(u){r.save(u),r.namespaces=u,r.names=[],r.skips=[];let f=(typeof u=="string"?u:"").trim().replace(/\s+/g,",").split(",").filter(Boolean);for(let d of f)d[0]==="-"?r.skips.push(d.slice(1)):r.names.push(d)}function i(u,f){let d=0,p=0,h=-1,m=0;for(;d<u.length;)if(p<f.length&&(f[p]===u[d]||f[p]==="*"))f[p]==="*"?(h=p,m=d,p++):(d++,p++);else if(h!==-1)p=h+1,m++,d=m;else return!1;for(;p<f.length&&f[p]==="*";)p++;return p===f.length}function o(){let u=[...r.names,...r.skips.map(f=>"-"+f)].join(",");return r.enable(""),u}function a(u){for(let f of r.skips)if(i(u,f))return!1;for(let f of r.names)if(i(u,f))return!0;return!1}function l(u){return u instanceof Error?u.stack||u.message:u}function c(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return r.enable(r.load()),r}Vc.exports=Ag});var Zc=Ur((We,wn)=>{We.formatArgs=Ng;We.save=Ig;We.load=vg;We.useColors=kg;We.storage=$g();We.destroy=(()=>{let t=!1;return()=>{t||(t=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();We.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function kg(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let t;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&(t=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(t[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function Ng(t){if(t[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+t[0]+(this.useColors?"%c ":" ")+"+"+wn.exports.humanize(this.diff),!this.useColors)return;let e="color: "+this.color;t.splice(1,0,e,"color: inherit");let r=0,n=0;t[0].replace(/%[a-zA-Z%]/g,s=>{s!=="%%"&&(r++,s==="%c"&&(n=r))}),t.splice(n,0,e)}We.log=console.debug||console.log||(()=>{});function Ig(t){try{t?We.storage.setItem("debug",t):We.storage.removeItem("debug")}catch{}}function vg(){let t;try{t=We.storage.getItem("debug")||We.storage.getItem("DEBUG")}catch{}return!t&&typeof process<"u"&&"env"in process&&(t=process.env.DEBUG),t}function $g(){try{return localStorage}catch{}}wn.exports=Kc()(We);var{formatters:Rg}=wn.exports;Rg.j=function(t){try{return JSON.stringify(t)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}});var Mt,Ws,Qc,Xc,Jc,Yc=C(()=>{Nr();Mt={LocalFileHeader:67324752,DataDescriptor:134695760,CentralFileHeader:33639248,EndOfCentralDirectory:101010256},Ws={get(t){return{signature:ye.get(t,0),compressedSize:ye.get(t,8),uncompressedSize:ye.get(t,12)}},len:16},Qc={get(t){let e=de.get(t,6);return{signature:ye.get(t,0),minVersion:de.get(t,4),dataDescriptor:!!(e&8),compressedMethod:de.get(t,8),compressedSize:ye.get(t,18),uncompressedSize:ye.get(t,22),filenameLength:de.get(t,26),extraFieldLength:de.get(t,28),filename:null}},len:30},Xc={get(t){return{signature:ye.get(t,0),nrOfThisDisk:de.get(t,4),nrOfThisDiskWithTheStart:de.get(t,6),nrOfEntriesOnThisDisk:de.get(t,8),nrOfEntriesOfSize:de.get(t,10),sizeOfCd:ye.get(t,12),offsetOfStartOfCd:ye.get(t,16),zipFileCommentLength:de.get(t,20)}},len:22},Jc={get(t){let e=de.get(t,8);return{signature:ye.get(t,0),minVersion:de.get(t,6),dataDescriptor:!!(e&8),compressedMethod:de.get(t,10),compressedSize:ye.get(t,20),uncompressedSize:ye.get(t,24),filenameLength:de.get(t,28),extraFieldLength:de.get(t,30),fileCommentLength:de.get(t,32),relativeOffsetOfLocalHeader:ye.get(t,42),filename:null}},len:46}});function tu(t){let e=new Uint8Array(ye.len);return ye.put(e,0,t),e}function Fg(t,e){let r=t.length,n=e.length;if(n>r)return-1;for(let s=0;s<=r-n;s++){let i=!0;for(let o=0;o<n;o++)if(t[s+o]!==e[o]){i=!1;break}if(i)return s}return-1}function Tg(t){let e=t.reduce((s,i)=>s+i.length,0),r=new Uint8Array(e),n=0;for(let s of t)r.set(s,n),n+=s.length;return r}var eu,ot,Us,Pg,En,Rr,ru=C(()=>{Nr();eu=Xi(Zc(),1);Yc();ot=(0,eu.default)("tokenizer:inflate"),Us=256*1024,Pg=tu(Mt.DataDescriptor),En=tu(Mt.EndOfCentralDirectory),Rr=class t{constructor(e){this.tokenizer=e,this.syncBuffer=new Uint8Array(Us)}async isZip(){return await this.peekSignature()===Mt.LocalFileHeader}peekSignature(){return this.tokenizer.peekToken(ye)}async findEndOfCentralDirectoryLocator(){let e=this.tokenizer,r=Math.min(16*1024,e.fileInfo.size),n=this.syncBuffer.subarray(0,r);await this.tokenizer.readBuffer(n,{position:e.fileInfo.size-r});for(let s=n.length-4;s>=0;s--)if(n[s]===En[0]&&n[s+1]===En[1]&&n[s+2]===En[2]&&n[s+3]===En[3])return e.fileInfo.size-r+s;return-1}async readCentralDirectory(){if(!this.tokenizer.supportsRandomAccess()){ot("Cannot reading central-directory without random-read support");return}ot("Reading central-directory...");let e=this.tokenizer.position,r=await this.findEndOfCentralDirectoryLocator();if(r>0){ot("Central-directory 32-bit signature found");let n=await this.tokenizer.readToken(Xc,r),s=[];this.tokenizer.setPosition(n.offsetOfStartOfCd);for(let i=0;i<n.nrOfEntriesOfSize;++i){let o=await this.tokenizer.readToken(Jc);if(o.signature!==Mt.CentralFileHeader)throw new Error("Expected Central-File-Header signature");o.filename=await this.tokenizer.readToken(new Be(o.filenameLength,"utf-8")),await this.tokenizer.ignore(o.extraFieldLength),await this.tokenizer.ignore(o.fileCommentLength),s.push(o),ot(`Add central-directory file-entry: n=${i+1}/${s.length}: filename=${s[i].filename}`)}return this.tokenizer.setPosition(e),s}this.tokenizer.setPosition(e)}async unzip(e){let r=await this.readCentralDirectory();if(r)return this.iterateOverCentralDirectory(r,e);let n=!1;do{let s=await this.readLocalFileHeader();if(!s)break;let i=e(s);n=!!i.stop;let o;if(await this.tokenizer.ignore(s.extraFieldLength),s.dataDescriptor&&s.compressedSize===0){let a=[],l=Us;ot("Compressed-file-size unknown, scanning for next data-descriptor-signature....");let c=-1;for(;c<0&&l===Us;){l=await this.tokenizer.peekBuffer(this.syncBuffer,{mayBeLess:!0}),c=Fg(this.syncBuffer.subarray(0,l),Pg);let u=c>=0?c:l;if(i.handler){let f=new Uint8Array(u);await this.tokenizer.readBuffer(f),a.push(f)}else await this.tokenizer.ignore(u)}ot(`Found data-descriptor-signature at pos=${this.tokenizer.position}`),i.handler&&await this.inflate(s,Tg(a),i.handler)}else i.handler?(ot(`Reading compressed-file-data: ${s.compressedSize} bytes`),o=new Uint8Array(s.compressedSize),await this.tokenizer.readBuffer(o),await this.inflate(s,o,i.handler)):(ot(`Ignoring compressed-file-data: ${s.compressedSize} bytes`),await this.tokenizer.ignore(s.compressedSize));if(ot(`Reading data-descriptor at pos=${this.tokenizer.position}`),s.dataDescriptor&&(await this.tokenizer.readToken(Ws)).signature!==134695760)throw new Error(`Expected data-descriptor-signature at position ${this.tokenizer.position-Ws.len}`)}while(!n)}async iterateOverCentralDirectory(e,r){for(let n of e){let s=r(n);if(s.handler){this.tokenizer.setPosition(n.relativeOffsetOfLocalHeader);let i=await this.readLocalFileHeader();if(i){await this.tokenizer.ignore(i.extraFieldLength);let o=new Uint8Array(n.compressedSize);await this.tokenizer.readBuffer(o),await this.inflate(i,o,s.handler)}}if(s.stop)break}}async inflate(e,r,n){if(e.compressedMethod===0)return n(r);if(e.compressedMethod!==8)throw new Error(`Unsupported ZIP compression method: ${e.compressedMethod}`);ot(`Decompress filename=${e.filename}, compressed-size=${r.length}`);let s=await t.decompressDeflateRaw(r);return n(s)}static async decompressDeflateRaw(e){let r=new ReadableStream({start(i){i.enqueue(e),i.close()}}),n=new DecompressionStream("deflate-raw"),s=r.pipeThrough(n);try{let o=await new Response(s).arrayBuffer();return new Uint8Array(o)}catch(i){let o=i instanceof Error?`Failed to deflate ZIP entry: ${i.message}`:"Unknown decompression error in ZIP entry";throw new TypeError(o)}}async readLocalFileHeader(){let e=await this.tokenizer.peekToken(ye);if(e===Mt.LocalFileHeader){let r=await this.tokenizer.readToken(Qc);return r.filename=await this.tokenizer.readToken(new Be(r.filenameLength,"utf-8")),r}if(e===Mt.CentralFileHeader)return!1;throw e===3759263696?new Error("Encrypted ZIP"):new Error("Unexpected signature")}}});var Pr,nu=C(()=>{Pr=class{constructor(e){this.tokenizer=e}inflate(){let e=this.tokenizer;return new ReadableStream({async pull(r){let n=new Uint8Array(1024),s=await e.readBuffer(n,{mayBeLess:!0});if(s===0){r.close();return}r.enqueue(n.subarray(0,s))}}).pipeThrough(new DecompressionStream("gzip"))}}});var su=C(()=>{ru();nu()});function zs(t){let{byteLength:e}=t;if(e===6)return t.getUint16(0)*2**32+t.getUint32(2);if(e===5)return t.getUint8(0)*2**32+t.getUint32(1);if(e===4)return t.getUint32(0);if(e===3)return t.getUint8(0)*2**16+t.getUint16(1);if(e===2)return t.getUint16(0);if(e===1)return t.getUint8(0)}var U1,z1,j1,iu=C(()=>{U1={utf8:new globalThis.TextDecoder("utf8")},z1=new globalThis.TextEncoder,j1=Array.from({length:256},(t,e)=>e.toString(16).padStart(2,"0"))});function ou(t,e){if(e==="utf-16le"){let r=[];for(let n=0;n<t.length;n++){let s=t.charCodeAt(n);r.push(s&255,s>>8&255)}return r}if(e==="utf-16be"){let r=[];for(let n=0;n<t.length;n++){let s=t.charCodeAt(n);r.push(s>>8&255,s&255)}return r}return[...t].map(r=>r.charCodeAt(0))}function au(t,e=0){let r=Number.parseInt(new Be(6).get(t,148).replace(/\0.*$/,"").trim(),8);if(Number.isNaN(r))return!1;let n=256;for(let s=e;s<e+148;s++)n+=t[s];for(let s=e+156;s<e+512;s++)n+=t[s];return r===n}var lu,cu=C(()=>{Nr();lu={get:(t,e)=>t[e+3]&127|t[e+2]<<7|t[e+1]<<14|t[e]<<21,len:4}});var uu,fu,du=C(()=>{uu=["jpg","png","apng","gif","webp","flif","xcf","cr2","cr3","orf","arw","dng","nef","rw2","raf","tif","bmp","icns","jxr","psd","indd","zip","tar","rar","gz","bz2","7z","dmg","mp4","mid","mkv","webm","mov","avi","mpg","mp2","mp3","m4a","oga","ogg","ogv","opus","flac","wav","spx","amr","pdf","epub","elf","macho","exe","swf","rtf","wasm","woff","woff2","eot","ttf","otf","ttc","ico","flv","ps","xz","sqlite","nes","crx","xpi","cab","deb","ar","rpm","Z","lz","cfb","mxf","mts","blend","bpg","docx","pptx","xlsx","3gp","3g2","j2c","jp2","jpm","jpx","mj2","aif","qcp","odt","ods","odp","xml","mobi","heic","cur","ktx","ape","wv","dcm","ics","glb","pcap","dsf","lnk","alias","voc","ac3","m4v","m4p","m4b","f4v","f4p","f4b","f4a","mie","asf","ogm","ogx","mpc","arrow","shp","aac","mp1","it","s3m","xm","skp","avif","eps","lzh","pgp","asar","stl","chm","3mf","zst","jxl","vcf","jls","pst","dwg","parquet","class","arj","cpio","ace","avro","icc","fbx","vsdx","vtt","apk","drc","lz4","potx","xltx","dotx","xltm","ott","ots","otp","odg","otg","xlsm","docm","dotm","potm","pptm","jar","jmp","rm","sav","ppsm","ppsx","tar.gz","reg","dat"],fu=["image/jpeg","image/png","image/gif","image/webp","image/flif","image/x-xcf","image/x-canon-cr2","image/x-canon-cr3","image/tiff","image/bmp","image/vnd.ms-photo","image/vnd.adobe.photoshop","application/x-indesign","application/epub+zip","application/x-xpinstall","application/vnd.ms-powerpoint.slideshow.macroenabled.12","application/vnd.oasis.opendocument.text","application/vnd.oasis.opendocument.spreadsheet","application/vnd.oasis.opendocument.presentation","application/vnd.openxmlformats-officedocument.wordprocessingml.document","application/vnd.openxmlformats-officedocument.presentationml.presentation","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet","application/vnd.openxmlformats-officedocument.presentationml.slideshow","application/zip","application/x-tar","application/x-rar-compressed","application/gzip","application/x-bzip2","application/x-7z-compressed","application/x-apple-diskimage","application/vnd.apache.arrow.file","video/mp4","audio/midi","video/matroska","video/webm","video/quicktime","video/vnd.avi","audio/wav","audio/qcelp","audio/x-ms-asf","video/x-ms-asf","application/vnd.ms-asf","video/mpeg","video/3gpp","audio/mpeg","audio/mp4","video/ogg","audio/ogg","audio/ogg; codecs=opus","application/ogg","audio/flac","audio/ape","audio/wavpack","audio/amr","application/pdf","application/x-elf","application/x-mach-binary","application/x-msdownload","application/x-shockwave-flash","application/rtf","application/wasm","font/woff","font/woff2","application/vnd.ms-fontobject","font/ttf","font/otf","font/collection","image/x-icon","video/x-flv","application/postscript","application/eps","application/x-xz","application/x-sqlite3","application/x-nintendo-nes-rom","application/x-google-chrome-extension","application/vnd.ms-cab-compressed","application/x-deb","application/x-unix-archive","application/x-rpm","application/x-compress","application/x-lzip","application/x-cfb","application/x-mie","application/mxf","video/mp2t","application/x-blender","image/bpg","image/j2c","image/jp2","image/jpx","image/jpm","image/mj2","audio/aiff","application/xml","application/x-mobipocket-ebook","image/heif","image/heif-sequence","image/heic","image/heic-sequence","image/icns","image/ktx","application/dicom","audio/x-musepack","text/calendar","text/vcard","text/vtt","model/gltf-binary","application/vnd.tcpdump.pcap","audio/x-dsf","application/x.ms.shortcut","application/x.apple.alias","audio/x-voc","audio/vnd.dolby.dd-raw","audio/x-m4a","image/apng","image/x-olympus-orf","image/x-sony-arw","image/x-adobe-dng","image/x-nikon-nef","image/x-panasonic-rw2","image/x-fujifilm-raf","video/x-m4v","video/3gpp2","application/x-esri-shape","audio/aac","audio/x-it","audio/x-s3m","audio/x-xm","video/MP1S","video/MP2P","application/vnd.sketchup.skp","image/avif","application/x-lzh-compressed","application/pgp-encrypted","application/x-asar","model/stl","application/vnd.ms-htmlhelp","model/3mf","image/jxl","application/zstd","image/jls","application/vnd.ms-outlook","image/vnd.dwg","application/vnd.apache.parquet","application/java-vm","application/x-arj","application/x-cpio","application/x-ace-compressed","application/avro","application/vnd.iccprofile","application/x.autodesk.fbx","application/vnd.visio","application/vnd.android.package-archive","application/vnd.google.draco","application/x-lz4","application/vnd.openxmlformats-officedocument.presentationml.template","application/vnd.openxmlformats-officedocument.spreadsheetml.template","application/vnd.openxmlformats-officedocument.wordprocessingml.template","application/vnd.ms-excel.template.macroenabled.12","application/vnd.oasis.opendocument.text-template","application/vnd.oasis.opendocument.spreadsheet-template","application/vnd.oasis.opendocument.presentation-template","application/vnd.oasis.opendocument.graphics","application/vnd.oasis.opendocument.graphics-template","application/vnd.ms-excel.sheet.macroenabled.12","application/vnd.ms-word.document.macroenabled.12","application/vnd.ms-word.template.macroenabled.12","application/vnd.ms-powerpoint.template.macroenabled.12","application/vnd.ms-powerpoint.presentation.macroenabled.12","application/java-archive","application/vnd.rn-realmedia","application/x-spss-sav","application/x-ms-regedit","application/x-ft-windows-registry-hive","application/x-jmp-data"]});async function pu(t,e){return new Gs(e).fromBuffer(t)}function Hs(t){switch(t=t.toLowerCase(),t){case"application/epub+zip":return{ext:"epub",mime:t};case"application/vnd.oasis.opendocument.text":return{ext:"odt",mime:t};case"application/vnd.oasis.opendocument.text-template":return{ext:"ott",mime:t};case"application/vnd.oasis.opendocument.spreadsheet":return{ext:"ods",mime:t};case"application/vnd.oasis.opendocument.spreadsheet-template":return{ext:"ots",mime:t};case"application/vnd.oasis.opendocument.presentation":return{ext:"odp",mime:t};case"application/vnd.oasis.opendocument.presentation-template":return{ext:"otp",mime:t};case"application/vnd.oasis.opendocument.graphics":return{ext:"odg",mime:t};case"application/vnd.oasis.opendocument.graphics-template":return{ext:"otg",mime:t};case"application/vnd.openxmlformats-officedocument.presentationml.slideshow":return{ext:"ppsx",mime:t};case"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":return{ext:"xlsx",mime:t};case"application/vnd.ms-excel.sheet.macroenabled":return{ext:"xlsm",mime:"application/vnd.ms-excel.sheet.macroenabled.12"};case"application/vnd.openxmlformats-officedocument.spreadsheetml.template":return{ext:"xltx",mime:t};case"application/vnd.ms-excel.template.macroenabled":return{ext:"xltm",mime:"application/vnd.ms-excel.template.macroenabled.12"};case"application/vnd.ms-powerpoint.slideshow.macroenabled":return{ext:"ppsm",mime:"application/vnd.ms-powerpoint.slideshow.macroenabled.12"};case"application/vnd.openxmlformats-officedocument.wordprocessingml.document":return{ext:"docx",mime:t};case"application/vnd.ms-word.document.macroenabled":return{ext:"docm",mime:"application/vnd.ms-word.document.macroenabled.12"};case"application/vnd.openxmlformats-officedocument.wordprocessingml.template":return{ext:"dotx",mime:t};case"application/vnd.ms-word.template.macroenabledtemplate":return{ext:"dotm",mime:"application/vnd.ms-word.template.macroenabled.12"};case"application/vnd.openxmlformats-officedocument.presentationml.template":return{ext:"potx",mime:t};case"application/vnd.ms-powerpoint.template.macroenabled":return{ext:"potm",mime:"application/vnd.ms-powerpoint.template.macroenabled.12"};case"application/vnd.openxmlformats-officedocument.presentationml.presentation":return{ext:"pptx",mime:t};case"application/vnd.ms-powerpoint.presentation.macroenabled":return{ext:"pptm",mime:"application/vnd.ms-powerpoint.presentation.macroenabled.12"};case"application/vnd.ms-visio.drawing":return{ext:"vsdx",mime:"application/vnd.visio"};case"application/vnd.ms-package.3dmanufacturing-3dmodel+xml":return{ext:"3mf",mime:"model/3mf"};default:}}function at(t,e,r){r={offset:0,...r};for(let[n,s]of e.entries())if(r.mask){if(s!==(r.mask[n]&t[n+r.offset]))return!1}else if(s!==t[n+r.offset])return!1;return!0}var js,Gs,J1,Y1,hu=C(()=>{Nr();Hc();su();iu();cu();du();js=4100;Gs=class{constructor(e){this.options={mpegOffsetTolerance:0,...e},this.detectors=[...e?.customDetectors??[],{id:"core",detect:this.detectConfident},{id:"core.imprecise",detect:this.detectImprecise}],this.tokenizerOptions={abortSignal:e?.signal}}async fromTokenizer(e){let r=e.position;for(let n of this.detectors){let s=await n.detect(e);if(s)return s;if(r!==e.position)return}}async fromBuffer(e){if(!(e instanceof Uint8Array||e instanceof ArrayBuffer))throw new TypeError(`Expected the \`input\` argument to be of type \`Uint8Array\` or \`ArrayBuffer\`, got \`${typeof e}\``);let r=e instanceof Uint8Array?e:new Uint8Array(e);if(r?.length>1)return this.fromTokenizer(zc(r,this.tokenizerOptions))}async fromBlob(e){let r=jc(e,this.tokenizerOptions);try{return await this.fromTokenizer(r)}finally{await r.close()}}async fromStream(e){let r=Uc(e,this.tokenizerOptions);try{return await this.fromTokenizer(r)}finally{await r.close()}}async toDetectionStream(e,r){let{sampleSize:n=js}=r,s,i,o=e.getReader({mode:"byob"});try{let{value:c,done:u}=await o.read(new Uint8Array(n));if(i=c,!u&&c)try{s=await this.fromBuffer(c.subarray(0,n))}catch(f){if(!(f instanceof oe))throw f;s=void 0}i=c}finally{o.releaseLock()}let a=new TransformStream({async start(c){c.enqueue(i)},transform(c,u){u.enqueue(c)}}),l=e.pipeThrough(a);return l.fileType=s,l}check(e,r){return at(this.buffer,e,r)}checkString(e,r){return this.check(ou(e,r?.encoding),r)}detectConfident=async e=>{if(this.buffer=new Uint8Array(js),e.fileInfo.size===void 0&&(e.fileInfo.size=Number.MAX_SAFE_INTEGER),this.tokenizer=e,await e.peekBuffer(this.buffer,{length:32,mayBeLess:!0}),this.check([66,77]))return{ext:"bmp",mime:"image/bmp"};if(this.check([11,119]))return{ext:"ac3",mime:"audio/vnd.dolby.dd-raw"};if(this.check([120,1]))return{ext:"dmg",mime:"application/x-apple-diskimage"};if(this.check([77,90]))return{ext:"exe",mime:"application/x-msdownload"};if(this.check([37,33]))return await e.peekBuffer(this.buffer,{length:24,mayBeLess:!0}),this.checkString("PS-Adobe-",{offset:2})&&this.checkString(" EPSF-",{offset:14})?{ext:"eps",mime:"application/eps"}:{ext:"ps",mime:"application/postscript"};if(this.check([31,160])||this.check([31,157]))return{ext:"Z",mime:"application/x-compress"};if(this.check([199,113]))return{ext:"cpio",mime:"application/x-cpio"};if(this.check([96,234]))return{ext:"arj",mime:"application/x-arj"};if(this.check([239,187,191]))return this.tokenizer.ignore(3),this.detectConfident(e);if(this.check([71,73,70]))return{ext:"gif",mime:"image/gif"};if(this.check([73,73,188]))return{ext:"jxr",mime:"image/vnd.ms-photo"};if(this.check([31,139,8])){let n=new Pr(e).inflate(),s=!0;try{let i;try{i=await this.fromStream(n)}catch{s=!1}if(i&&i.ext==="tar")return{ext:"tar.gz",mime:"application/gzip"}}finally{s&&await n.cancel()}return{ext:"gz",mime:"application/gzip"}}if(this.check([66,90,104]))return{ext:"bz2",mime:"application/x-bzip2"};if(this.checkString("ID3")){await e.ignore(6);let r=await e.readToken(lu);return e.position+r>e.fileInfo.size?{ext:"mp3",mime:"audio/mpeg"}:(await e.ignore(r),this.fromTokenizer(e))}if(this.checkString("MP+"))return{ext:"mpc",mime:"audio/x-musepack"};if((this.buffer[0]===67||this.buffer[0]===70)&&this.check([87,83],{offset:1}))return{ext:"swf",mime:"application/x-shockwave-flash"};if(this.check([255,216,255]))return this.check([247],{offset:3})?{ext:"jls",mime:"image/jls"}:{ext:"jpg",mime:"image/jpeg"};if(this.check([79,98,106,1]))return{ext:"avro",mime:"application/avro"};if(this.checkString("FLIF"))return{ext:"flif",mime:"image/flif"};if(this.checkString("8BPS"))return{ext:"psd",mime:"image/vnd.adobe.photoshop"};if(this.checkString("MPCK"))return{ext:"mpc",mime:"audio/x-musepack"};if(this.checkString("FORM"))return{ext:"aif",mime:"audio/aiff"};if(this.checkString("icns",{offset:0}))return{ext:"icns",mime:"image/icns"};if(this.check([80,75,3,4])){let r;return await new Rr(e).unzip(n=>{switch(n.filename){case"META-INF/mozilla.rsa":return r={ext:"xpi",mime:"application/x-xpinstall"},{stop:!0};case"META-INF/MANIFEST.MF":return r={ext:"jar",mime:"application/java-archive"},{stop:!0};case"mimetype":return{async handler(s){let i=new TextDecoder("utf-8").decode(s).trim();r=Hs(i)},stop:!0};case"[Content_Types].xml":return{async handler(s){let i=new TextDecoder("utf-8").decode(s),o=i.indexOf('.main+xml"');if(o===-1){let a="application/vnd.ms-package.3dmanufacturing-3dmodel+xml";i.includes(`ContentType="${a}"`)&&(r=Hs(a))}else{i=i.slice(0,Math.max(0,o));let a=i.lastIndexOf('"'),l=i.slice(Math.max(0,a+1));r=Hs(l)}},stop:!0};default:return/classes\d*\.dex/.test(n.filename)?(r={ext:"apk",mime:"application/vnd.android.package-archive"},{stop:!0}):{}}}).catch(n=>{if(!(n instanceof oe))throw n}),r??{ext:"zip",mime:"application/zip"}}if(this.checkString("OggS")){await e.ignore(28);let r=new Uint8Array(8);return await e.readBuffer(r),at(r,[79,112,117,115,72,101,97,100])?{ext:"opus",mime:"audio/ogg; codecs=opus"}:at(r,[128,116,104,101,111,114,97])?{ext:"ogv",mime:"video/ogg"}:at(r,[1,118,105,100,101,111,0])?{ext:"ogm",mime:"video/ogg"}:at(r,[127,70,76,65,67])?{ext:"oga",mime:"audio/ogg"}:at(r,[83,112,101,101,120,32,32])?{ext:"spx",mime:"audio/ogg"}:at(r,[1,118,111,114,98,105,115])?{ext:"ogg",mime:"audio/ogg"}:{ext:"ogx",mime:"application/ogg"}}if(this.check([80,75])&&(this.buffer[2]===3||this.buffer[2]===5||this.buffer[2]===7)&&(this.buffer[3]===4||this.buffer[3]===6||this.buffer[3]===8))return{ext:"zip",mime:"application/zip"};if(this.checkString("MThd"))return{ext:"mid",mime:"audio/midi"};if(this.checkString("wOFF")&&(this.check([0,1,0,0],{offset:4})||this.checkString("OTTO",{offset:4})))return{ext:"woff",mime:"font/woff"};if(this.checkString("wOF2")&&(this.check([0,1,0,0],{offset:4})||this.checkString("OTTO",{offset:4})))return{ext:"woff2",mime:"font/woff2"};if(this.check([212,195,178,161])||this.check([161,178,195,212]))return{ext:"pcap",mime:"application/vnd.tcpdump.pcap"};if(this.checkString("DSD "))return{ext:"dsf",mime:"audio/x-dsf"};if(this.checkString("LZIP"))return{ext:"lz",mime:"application/x-lzip"};if(this.checkString("fLaC"))return{ext:"flac",mime:"audio/flac"};if(this.check([66,80,71,251]))return{ext:"bpg",mime:"image/bpg"};if(this.checkString("wvpk"))return{ext:"wv",mime:"audio/wavpack"};if(this.checkString("%PDF"))return{ext:"pdf",mime:"application/pdf"};if(this.check([0,97,115,109]))return{ext:"wasm",mime:"application/wasm"};if(this.check([73,73])){let r=await this.readTiffHeader(!1);if(r)return r}if(this.check([77,77])){let r=await this.readTiffHeader(!0);if(r)return r}if(this.checkString("MAC "))return{ext:"ape",mime:"audio/ape"};if(this.check([26,69,223,163])){async function r(){let a=await e.peekNumber(Rc),l=128,c=0;for(;(a&l)===0&&l!==0;)++c,l>>=1;let u=new Uint8Array(c+1);return await e.readBuffer(u),u}async function n(){let a=await r(),l=await r();l[0]^=128>>l.length-1;let c=Math.min(6,l.length),u=new DataView(a.buffer),f=new DataView(l.buffer,l.length-c,c);return{id:zs(u),len:zs(f)}}async function s(a){for(;a>0;){let l=await n();if(l.id===17026)return(await e.readToken(new Be(l.len))).replaceAll(/\00.*$/g,"");await e.ignore(l.len),--a}}let i=await n();switch(await s(i.len)){case"webm":return{ext:"webm",mime:"video/webm"};case"matroska":return{ext:"mkv",mime:"video/matroska"};default:return}}if(this.checkString("SQLi"))return{ext:"sqlite",mime:"application/x-sqlite3"};if(this.check([78,69,83,26]))return{ext:"nes",mime:"application/x-nintendo-nes-rom"};if(this.checkString("Cr24"))return{ext:"crx",mime:"application/x-google-chrome-extension"};if(this.checkString("MSCF")||this.checkString("ISc("))return{ext:"cab",mime:"application/vnd.ms-cab-compressed"};if(this.check([237,171,238,219]))return{ext:"rpm",mime:"application/x-rpm"};if(this.check([197,208,211,198]))return{ext:"eps",mime:"application/eps"};if(this.check([40,181,47,253]))return{ext:"zst",mime:"application/zstd"};if(this.check([127,69,76,70]))return{ext:"elf",mime:"application/x-elf"};if(this.check([33,66,68,78]))return{ext:"pst",mime:"application/vnd.ms-outlook"};if(this.checkString("PAR1")||this.checkString("PARE"))return{ext:"parquet",mime:"application/vnd.apache.parquet"};if(this.checkString("ttcf"))return{ext:"ttc",mime:"font/collection"};if(this.check([207,250,237,254]))return{ext:"macho",mime:"application/x-mach-binary"};if(this.check([4,34,77,24]))return{ext:"lz4",mime:"application/x-lz4"};if(this.checkString("regf"))return{ext:"dat",mime:"application/x-ft-windows-registry-hive"};if(this.checkString("$FL2")||this.checkString("$FL3"))return{ext:"sav",mime:"application/x-spss-sav"};if(this.check([79,84,84,79,0]))return{ext:"otf",mime:"font/otf"};if(this.checkString("#!AMR"))return{ext:"amr",mime:"audio/amr"};if(this.checkString("{\\rtf"))return{ext:"rtf",mime:"application/rtf"};if(this.check([70,76,86,1]))return{ext:"flv",mime:"video/x-flv"};if(this.checkString("IMPM"))return{ext:"it",mime:"audio/x-it"};if(this.checkString("-lh0-",{offset:2})||this.checkString("-lh1-",{offset:2})||this.checkString("-lh2-",{offset:2})||this.checkString("-lh3-",{offset:2})||this.checkString("-lh4-",{offset:2})||this.checkString("-lh5-",{offset:2})||this.checkString("-lh6-",{offset:2})||this.checkString("-lh7-",{offset:2})||this.checkString("-lzs-",{offset:2})||this.checkString("-lz4-",{offset:2})||this.checkString("-lz5-",{offset:2})||this.checkString("-lhd-",{offset:2}))return{ext:"lzh",mime:"application/x-lzh-compressed"};if(this.check([0,0,1,186])){if(this.check([33],{offset:4,mask:[241]}))return{ext:"mpg",mime:"video/MP1S"};if(this.check([68],{offset:4,mask:[196]}))return{ext:"mpg",mime:"video/MP2P"}}if(this.checkString("ITSF"))return{ext:"chm",mime:"application/vnd.ms-htmlhelp"};if(this.check([202,254,186,190]))return{ext:"class",mime:"application/java-vm"};if(this.checkString(".RMF"))return{ext:"rm",mime:"application/vnd.rn-realmedia"};if(this.checkString("DRACO"))return{ext:"drc",mime:"application/vnd.google.draco"};if(this.check([253,55,122,88,90,0]))return{ext:"xz",mime:"application/x-xz"};if(this.checkString("<?xml "))return{ext:"xml",mime:"application/xml"};if(this.check([55,122,188,175,39,28]))return{ext:"7z",mime:"application/x-7z-compressed"};if(this.check([82,97,114,33,26,7])&&(this.buffer[6]===0||this.buffer[6]===1))return{ext:"rar",mime:"application/x-rar-compressed"};if(this.checkString("solid "))return{ext:"stl",mime:"model/stl"};if(this.checkString("AC")){let r=new Be(4,"latin1").get(this.buffer,2);if(r.match("^d*")&&r>=1e3&&r<=1050)return{ext:"dwg",mime:"image/vnd.dwg"}}if(this.checkString("070707"))return{ext:"cpio",mime:"application/x-cpio"};if(this.checkString("BLENDER"))return{ext:"blend",mime:"application/x-blender"};if(this.checkString("!<arch>"))return await e.ignore(8),await e.readToken(new Be(13,"ascii"))==="debian-binary"?{ext:"deb",mime:"application/x-deb"}:{ext:"ar",mime:"application/x-unix-archive"};if(this.checkString("WEBVTT")&&[`
512
+ `,"\r"," "," ","\0"].some(r=>this.checkString(r,{offset:6})))return{ext:"vtt",mime:"text/vtt"};if(this.check([137,80,78,71,13,10,26,10])){await e.ignore(8);async function r(){return{length:await e.readToken(Fc),type:await e.readToken(new Be(4,"latin1"))}}do{let n=await r();if(n.length<0)return;switch(n.type){case"IDAT":return{ext:"png",mime:"image/png"};case"acTL":return{ext:"apng",mime:"image/apng"};default:await e.ignore(n.length+4)}}while(e.position+8<e.fileInfo.size);return{ext:"png",mime:"image/png"}}if(this.check([65,82,82,79,87,49,0,0]))return{ext:"arrow",mime:"application/vnd.apache.arrow.file"};if(this.check([103,108,84,70,2,0,0,0]))return{ext:"glb",mime:"model/gltf-binary"};if(this.check([102,114,101,101],{offset:4})||this.check([109,100,97,116],{offset:4})||this.check([109,111,111,118],{offset:4})||this.check([119,105,100,101],{offset:4}))return{ext:"mov",mime:"video/quicktime"};if(this.check([73,73,82,79,8,0,0,0,24]))return{ext:"orf",mime:"image/x-olympus-orf"};if(this.checkString("gimp xcf "))return{ext:"xcf",mime:"image/x-xcf"};if(this.checkString("ftyp",{offset:4})&&(this.buffer[8]&96)!==0){let r=new Be(4,"latin1").get(this.buffer,8).replace("\0"," ").trim();switch(r){case"avif":case"avis":return{ext:"avif",mime:"image/avif"};case"mif1":return{ext:"heic",mime:"image/heif"};case"msf1":return{ext:"heic",mime:"image/heif-sequence"};case"heic":case"heix":return{ext:"heic",mime:"image/heic"};case"hevc":case"hevx":return{ext:"heic",mime:"image/heic-sequence"};case"qt":return{ext:"mov",mime:"video/quicktime"};case"M4V":case"M4VH":case"M4VP":return{ext:"m4v",mime:"video/x-m4v"};case"M4P":return{ext:"m4p",mime:"video/mp4"};case"M4B":return{ext:"m4b",mime:"audio/mp4"};case"M4A":return{ext:"m4a",mime:"audio/x-m4a"};case"F4V":return{ext:"f4v",mime:"video/mp4"};case"F4P":return{ext:"f4p",mime:"video/mp4"};case"F4A":return{ext:"f4a",mime:"audio/mp4"};case"F4B":return{ext:"f4b",mime:"audio/mp4"};case"crx":return{ext:"cr3",mime:"image/x-canon-cr3"};default:return r.startsWith("3g")?r.startsWith("3g2")?{ext:"3g2",mime:"video/3gpp2"}:{ext:"3gp",mime:"video/3gpp"}:{ext:"mp4",mime:"video/mp4"}}}if(this.checkString(`REGEDIT4\r
513
+ `))return{ext:"reg",mime:"application/x-ms-regedit"};if(this.check([82,73,70,70])){if(this.checkString("WEBP",{offset:8}))return{ext:"webp",mime:"image/webp"};if(this.check([65,86,73],{offset:8}))return{ext:"avi",mime:"video/vnd.avi"};if(this.check([87,65,86,69],{offset:8}))return{ext:"wav",mime:"audio/wav"};if(this.check([81,76,67,77],{offset:8}))return{ext:"qcp",mime:"audio/qcelp"}}if(this.check([73,73,85,0,24,0,0,0,136,231,116,216]))return{ext:"rw2",mime:"image/x-panasonic-rw2"};if(this.check([48,38,178,117,142,102,207,17,166,217])){async function r(){let n=new Uint8Array(16);return await e.readBuffer(n),{id:n,size:Number(await e.readToken(Tc))}}for(await e.ignore(30);e.position+24<e.fileInfo.size;){let n=await r(),s=n.size-24;if(at(n.id,[145,7,220,183,183,169,207,17,142,230,0,192,12,32,83,101])){let i=new Uint8Array(16);if(s-=await e.readBuffer(i),at(i,[64,158,105,248,77,91,207,17,168,253,0,128,95,92,68,43]))return{ext:"asf",mime:"audio/x-ms-asf"};if(at(i,[192,239,25,188,77,91,207,17,168,253,0,128,95,92,68,43]))return{ext:"asf",mime:"video/x-ms-asf"};break}await e.ignore(s)}return{ext:"asf",mime:"application/vnd.ms-asf"}}if(this.check([171,75,84,88,32,49,49,187,13,10,26,10]))return{ext:"ktx",mime:"image/ktx"};if((this.check([126,16,4])||this.check([126,24,4]))&&this.check([48,77,73,69],{offset:4}))return{ext:"mie",mime:"application/x-mie"};if(this.check([39,10,0,0,0,0,0,0,0,0,0,0],{offset:2}))return{ext:"shp",mime:"application/x-esri-shape"};if(this.check([255,79,255,81]))return{ext:"j2c",mime:"image/j2c"};if(this.check([0,0,0,12,106,80,32,32,13,10,135,10]))switch(await e.ignore(20),await e.readToken(new Be(4,"ascii"))){case"jp2 ":return{ext:"jp2",mime:"image/jp2"};case"jpx ":return{ext:"jpx",mime:"image/jpx"};case"jpm ":return{ext:"jpm",mime:"image/jpm"};case"mjp2":return{ext:"mj2",mime:"image/mj2"};default:return}if(this.check([255,10])||this.check([0,0,0,12,74,88,76,32,13,10,135,10]))return{ext:"jxl",mime:"image/jxl"};if(this.check([254,255]))return this.checkString("<?xml ",{offset:2,encoding:"utf-16be"})?{ext:"xml",mime:"application/xml"}:void 0;if(this.check([208,207,17,224,161,177,26,225]))return{ext:"cfb",mime:"application/x-cfb"};if(await e.peekBuffer(this.buffer,{length:Math.min(256,e.fileInfo.size),mayBeLess:!0}),this.check([97,99,115,112],{offset:36}))return{ext:"icc",mime:"application/vnd.iccprofile"};if(this.checkString("**ACE",{offset:7})&&this.checkString("**",{offset:12}))return{ext:"ace",mime:"application/x-ace-compressed"};if(this.checkString("BEGIN:")){if(this.checkString("VCARD",{offset:6}))return{ext:"vcf",mime:"text/vcard"};if(this.checkString("VCALENDAR",{offset:6}))return{ext:"ics",mime:"text/calendar"}}if(this.checkString("FUJIFILMCCD-RAW"))return{ext:"raf",mime:"image/x-fujifilm-raf"};if(this.checkString("Extended Module:"))return{ext:"xm",mime:"audio/x-xm"};if(this.checkString("Creative Voice File"))return{ext:"voc",mime:"audio/x-voc"};if(this.check([4,0,0,0])&&this.buffer.length>=16){let r=new DataView(this.buffer.buffer).getUint32(12,!0);if(r>12&&this.buffer.length>=r+16)try{let n=new TextDecoder().decode(this.buffer.subarray(16,r+16));if(JSON.parse(n).files)return{ext:"asar",mime:"application/x-asar"}}catch{}}if(this.check([6,14,43,52,2,5,1,1,13,1,2,1,1,2]))return{ext:"mxf",mime:"application/mxf"};if(this.checkString("SCRM",{offset:44}))return{ext:"s3m",mime:"audio/x-s3m"};if(this.check([71])&&this.check([71],{offset:188}))return{ext:"mts",mime:"video/mp2t"};if(this.check([71],{offset:4})&&this.check([71],{offset:196}))return{ext:"mts",mime:"video/mp2t"};if(this.check([66,79,79,75,77,79,66,73],{offset:60}))return{ext:"mobi",mime:"application/x-mobipocket-ebook"};if(this.check([68,73,67,77],{offset:128}))return{ext:"dcm",mime:"application/dicom"};if(this.check([76,0,0,0,1,20,2,0,0,0,0,0,192,0,0,0,0,0,0,70]))return{ext:"lnk",mime:"application/x.ms.shortcut"};if(this.check([98,111,111,107,0,0,0,0,109,97,114,107,0,0,0,0]))return{ext:"alias",mime:"application/x.apple.alias"};if(this.checkString("Kaydara FBX Binary \0"))return{ext:"fbx",mime:"application/x.autodesk.fbx"};if(this.check([76,80],{offset:34})&&(this.check([0,0,1],{offset:8})||this.check([1,0,2],{offset:8})||this.check([2,0,2],{offset:8})))return{ext:"eot",mime:"application/vnd.ms-fontobject"};if(this.check([6,6,237,245,216,29,70,229,189,49,239,231,254,116,183,29]))return{ext:"indd",mime:"application/x-indesign"};if(this.check([255,255,0,0,7,0,0,0,4,0,0,0,1,0,1,0])||this.check([0,0,255,255,0,0,0,7,0,0,0,4,0,1,0,1]))return{ext:"jmp",mime:"application/x-jmp-data"};if(await e.peekBuffer(this.buffer,{length:Math.min(512,e.fileInfo.size),mayBeLess:!0}),this.checkString("ustar",{offset:257})&&(this.checkString("\0",{offset:262})||this.checkString(" ",{offset:262}))||this.check([0,0,0,0,0,0],{offset:257})&&au(this.buffer))return{ext:"tar",mime:"application/x-tar"};if(this.check([255,254])){let r="utf-16le";return this.checkString("<?xml ",{offset:2,encoding:r})?{ext:"xml",mime:"application/xml"}:this.check([255,14],{offset:2})&&this.checkString("SketchUp Model",{offset:4,encoding:r})?{ext:"skp",mime:"application/vnd.sketchup.skp"}:this.checkString(`Windows Registry Editor Version 5.00\r
514
+ `,{offset:2,encoding:r})?{ext:"reg",mime:"application/x-ms-regedit"}:void 0}if(this.checkString("-----BEGIN PGP MESSAGE-----"))return{ext:"pgp",mime:"application/pgp-encrypted"}};detectImprecise=async e=>{if(this.buffer=new Uint8Array(js),await e.peekBuffer(this.buffer,{length:Math.min(8,e.fileInfo.size),mayBeLess:!0}),this.check([0,0,1,186])||this.check([0,0,1,179]))return{ext:"mpg",mime:"video/mpeg"};if(this.check([0,1,0,0,0]))return{ext:"ttf",mime:"font/ttf"};if(this.check([0,0,1,0]))return{ext:"ico",mime:"image/x-icon"};if(this.check([0,0,2,0]))return{ext:"cur",mime:"image/x-icon"};if(await e.peekBuffer(this.buffer,{length:Math.min(2+this.options.mpegOffsetTolerance,e.fileInfo.size),mayBeLess:!0}),this.buffer.length>=2+this.options.mpegOffsetTolerance)for(let r=0;r<=this.options.mpegOffsetTolerance;++r){let n=this.scanMpeg(r);if(n)return n}};async readTiffTag(e){let r=await this.tokenizer.readToken(e?rr:de);switch(this.tokenizer.ignore(10),r){case 50341:return{ext:"arw",mime:"image/x-sony-arw"};case 50706:return{ext:"dng",mime:"image/x-adobe-dng"};default:}}async readTiffIFD(e){let r=await this.tokenizer.readToken(e?rr:de);for(let n=0;n<r;++n){let s=await this.readTiffTag(e);if(s)return s}}async readTiffHeader(e){let r=(e?rr:de).get(this.buffer,2),n=(e?Pc:ye).get(this.buffer,4);if(r===42){if(n>=6){if(this.checkString("CR",{offset:8}))return{ext:"cr2",mime:"image/x-canon-cr2"};if(n>=8){let i=(e?rr:de).get(this.buffer,8),o=(e?rr:de).get(this.buffer,10);if(i===28&&o===254||i===31&&o===11)return{ext:"nef",mime:"image/x-nikon-nef"}}}return await this.tokenizer.ignore(n),await this.readTiffIFD(e)??{ext:"tif",mime:"image/tiff"}}if(r===43)return{ext:"tif",mime:"image/tiff"}}scanMpeg(e){if(this.check([255,224],{offset:e,mask:[255,224]})){if(this.check([16],{offset:e+1,mask:[22]}))return this.check([8],{offset:e+1,mask:[8]})?{ext:"aac",mime:"audio/aac"}:{ext:"aac",mime:"audio/aac"};if(this.check([2],{offset:e+1,mask:[6]}))return{ext:"mp3",mime:"audio/mpeg"};if(this.check([4],{offset:e+1,mask:[6]}))return{ext:"mp2",mime:"audio/mpeg"};if(this.check([6],{offset:e+1,mask:[6]}))return{ext:"mp1",mime:"audio/mpeg"}}}},J1=new Set(uu),Y1=new Set(fu)});var yu={};$(yu,{fileCommand:()=>Bg});function Dg(t,e){if(gu[t])return gu[t];let[r,n]=e.split("/"),s=n?.split("+")[0]?.replace(/-/g," ")||t;switch(r){case"image":return`${s.toUpperCase()} image data`;case"audio":return`${s.toUpperCase()} audio`;case"video":return`${s.toUpperCase()} video`;case"font":return`${s} font`;case"model":return`${s} 3D model`;case"application":return n?.includes("zip")||n?.includes("compressed")?`${s} archive data`:n?.includes("executable")?`${s} executable`:`${t.toUpperCase()} data`;default:return`${t.toUpperCase()} data`}}function Lg(t){let e=t.split("/").pop()||t;if(e.startsWith(".")&&!e.includes(".",1))return e;let r=e.lastIndexOf(".");return r===-1||r===0?"":e.slice(r).toLowerCase()}function Mg(t,e){if(t.startsWith("#!")){let l=t.split(`
515
515
  `)[0];return l.includes("python")?{description:"Python script, ASCII text executable",mime:"text/x-python"}:l.includes("node")||l.includes("bun")||l.includes("deno")?{description:"JavaScript script, ASCII text executable",mime:"text/javascript"}:l.includes("bash")?{description:"Bourne-Again shell script, ASCII text executable",mime:"text/x-shellscript"}:l.includes("sh")?{description:"POSIX shell script, ASCII text executable",mime:"text/x-shellscript"}:l.includes("ruby")?{description:"Ruby script, ASCII text executable",mime:"text/x-ruby"}:l.includes("perl")?{description:"Perl script, ASCII text executable",mime:"text/x-perl"}:{description:"script, ASCII text executable",mime:"text/plain"}}let r=t.trimStart();if(r.startsWith("<?xml"))return{description:"XML document",mime:"application/xml"};if(r.startsWith("<!DOCTYPE html")||r.toLowerCase().startsWith("<html"))return{description:"HTML document",mime:"text/html"};let n=t.includes(`\r
516
- `),s=t.includes("\r")&&!n,i="";n?i=", with CRLF line terminators":s&&(i=", with CR line terminators");let o=cg(e);if(o&&Vc[o]){let l=Vc[o];return l.mime.startsWith("text/")&&i?{description:`${l.description}${i}`,mime:l.mime}:l}let a=!1;for(let l=0;l<Math.min(t.length,8192);l++)if(t.charCodeAt(l)>127){a=!0;break}return a?{description:`UTF-8 Unicode text${i}`,mime:"text/plain; charset=utf-8"}:{description:`ASCII text${i}`,mime:"text/plain"}}async function fg(t,e){if(e.length===0)return{description:"empty",mime:"inode/x-empty"};let r=await Gc(e);if(r)return{description:lg(r.ext,r.mime),mime:r.mime};let n=new TextDecoder("utf-8",{fatal:!1}).decode(e);return ug(n,t)}var ag,Vc,Kc,pg,Qc=C(()=>{"use strict";qc();L();ag={name:"file",summary:"determine file type",usage:"file [OPTION]... FILE...",options:["-b, --brief do not prepend filenames to output","-i, --mime output MIME type strings","-L, --dereference follow symlinks"," --help display this help and exit"]},Vc={".js":{description:"JavaScript source",mime:"text/javascript"},".mjs":{description:"JavaScript module",mime:"text/javascript"},".cjs":{description:"CommonJS module",mime:"text/javascript"},".ts":{description:"TypeScript source",mime:"text/typescript"},".tsx":{description:"TypeScript JSX source",mime:"text/typescript"},".jsx":{description:"JavaScript JSX source",mime:"text/javascript"},".py":{description:"Python script",mime:"text/x-python"},".rb":{description:"Ruby script",mime:"text/x-ruby"},".go":{description:"Go source",mime:"text/x-go"},".rs":{description:"Rust source",mime:"text/x-rust"},".c":{description:"C source",mime:"text/x-c"},".h":{description:"C header",mime:"text/x-c"},".cpp":{description:"C++ source",mime:"text/x-c++"},".hpp":{description:"C++ header",mime:"text/x-c++"},".java":{description:"Java source",mime:"text/x-java"},".sh":{description:"Bourne-Again shell script",mime:"text/x-shellscript"},".bash":{description:"Bourne-Again shell script",mime:"text/x-shellscript"},".zsh":{description:"Zsh shell script",mime:"text/x-shellscript"},".json":{description:"JSON data",mime:"application/json"},".yaml":{description:"YAML data",mime:"text/yaml"},".yml":{description:"YAML data",mime:"text/yaml"},".xml":{description:"XML document",mime:"application/xml"},".csv":{description:"CSV text",mime:"text/csv"},".toml":{description:"TOML data",mime:"text/toml"},".html":{description:"HTML document",mime:"text/html"},".htm":{description:"HTML document",mime:"text/html"},".css":{description:"CSS stylesheet",mime:"text/css"},".svg":{description:"SVG image",mime:"image/svg+xml"},".md":{description:"Markdown document",mime:"text/markdown"},".markdown":{description:"Markdown document",mime:"text/markdown"},".txt":{description:"ASCII text",mime:"text/plain"},".rst":{description:"reStructuredText",mime:"text/x-rst"},".env":{description:"ASCII text",mime:"text/plain"},".gitignore":{description:"ASCII text",mime:"text/plain"},".dockerignore":{description:"ASCII text",mime:"text/plain"}},Kc={jpg:"JPEG image data",jpeg:"JPEG image data",png:"PNG image data",gif:"GIF image data",webp:"WebP image data",bmp:"PC bitmap",ico:"MS Windows icon resource",tif:"TIFF image data",tiff:"TIFF image data",psd:"Adobe Photoshop Document",avif:"AVIF image",heic:"HEIC image",heif:"HEIF image",jxl:"JPEG XL image",icns:"Mac OS X icon",svg:"SVG Scalable Vector Graphics image",pdf:"PDF document",epub:"EPUB document",mobi:"Mobipocket E-book",djvu:"DjVu document",zip:"Zip archive data",gz:"gzip compressed data",gzip:"gzip compressed data",bz2:"bzip2 compressed data",xz:"XZ compressed data",tar:"POSIX tar archive",rar:"RAR archive data","7z":"7-zip archive data",lz:"lzip compressed data",lzma:"LZMA compressed data",zst:"Zstandard compressed data",cab:"Microsoft Cabinet archive",ar:"Unix ar archive",rpm:"RPM package",deb:"Debian binary package",apk:"Android Package",dmg:"Apple disk image",iso:"ISO 9660 CD-ROM filesystem data",vhd:"Microsoft Virtual Hard Disk",vhdx:"Microsoft Virtual Hard Disk (new format)",qcow2:"QEMU QCOW Image",mp3:"Audio file with ID3",m4a:"MPEG-4 audio",aac:"AAC audio",wav:"RIFF (little-endian) data, WAVE audio",flac:"FLAC audio bitstream data",ogg:"Ogg data",oga:"Ogg audio",opus:"Ogg Opus audio",aiff:"AIFF audio",wma:"Windows Media Audio",amr:"AMR audio",mid:"MIDI audio",midi:"MIDI audio",ape:"Monkey's Audio",mp4:"ISO Media, MPEG-4",m4v:"MPEG-4 video",webm:"WebM",avi:"RIFF (little-endian) data, AVI",mov:"ISO Media, Apple QuickTime movie",mkv:"Matroska data",wmv:"Windows Media Video",flv:"Flash Video","3gp":"3GPP multimedia","3g2":"3GPP2 multimedia",ogv:"Ogg video",mts:"MPEG transport stream",m2ts:"MPEG transport stream",ts:"MPEG transport stream",mpg:"MPEG video",mpeg:"MPEG video",exe:"PE32 executable",dll:"PE32 DLL",elf:"ELF executable",mach:"Mach-O executable",wasm:"WebAssembly (wasm) binary module",dex:"Android Dalvik executable",class:"Java class file",swf:"Adobe Flash",doc:"Microsoft Word Document",docx:"Microsoft Word 2007+ Document",xls:"Microsoft Excel Spreadsheet",xlsx:"Microsoft Excel 2007+ Spreadsheet",ppt:"Microsoft PowerPoint Presentation",pptx:"Microsoft PowerPoint 2007+ Presentation",odt:"OpenDocument Text",ods:"OpenDocument Spreadsheet",odp:"OpenDocument Presentation",ttf:"TrueType Font",otf:"OpenType Font",woff:"Web Open Font Format",woff2:"Web Open Font Format 2",eot:"Embedded OpenType font",stl:"Stereolithography CAD",obj:"Wavefront 3D Object",gltf:"GL Transmission Format",glb:"GL Transmission Format (binary)",sqlite:"SQLite 3.x database",mdb:"Microsoft Access Database",xml:"XML document",json:"JSON data",macho:"Mach-O binary",ics:"iCalendar data",vcf:"vCard data",msi:"Microsoft Installer",ps:"PostScript",ai:"Adobe Illustrator",indd:"Adobe InDesign",sketch:"Sketch design file",fig:"Figma design file",xd:"Adobe XD",blend:"Blender",fbx:"Autodesk FBX",lnk:"MS Windows shortcut",alias:"Mac OS alias",torrent:"BitTorrent file",pcap:"pcap capture file",arrow:"Apache Arrow",parquet:"Apache Parquet"};pg={name:"file",async execute(t,e){if(N(t))return k(ag);let r=!1,n=!1,s=[];for(let a of t)if(a.startsWith("--")){if(a==="--brief")r=!0;else if(a==="--mime"||a==="--mime-type")n=!0;else if(a!=="--dereference")return P("file",a)}else if(a.startsWith("-")&&a!=="-"){for(let l of a.slice(1))if(l==="b")r=!0;else if(l==="i")n=!0;else if(l!=="L")return P("file",`-${l}`)}else s.push(a);if(s.length===0)return{stdout:"",stderr:`Usage: file [-bLi] FILE...
517
- `,exitCode:1};let i="",o=0;for(let a of s)try{let l=e.fs.resolvePath(e.cwd,a);if((await e.fs.stat(l)).isDirectory){let d=n?"inode/directory":"directory";i+=r?`${d}
518
- `:`${a}: ${d}
519
- `;continue}let u=await e.fs.readFileBuffer(l),f=await fg(a,u),p=n?f.mime:f.description;i+=r?`${p}
516
+ `),s=t.includes("\r")&&!n,i="";n?i=", with CRLF line terminators":s&&(i=", with CR line terminators");let o=Lg(e);if(o&&mu[o]){let l=mu[o];return l.mime.startsWith("text/")&&i?{description:`${l.description}${i}`,mime:l.mime}:l}let a=!1;for(let l=0;l<Math.min(t.length,8192);l++)if(t.charCodeAt(l)>127){a=!0;break}return a?{description:`UTF-8 Unicode text${i}`,mime:"text/plain; charset=utf-8"}:{description:`ASCII text${i}`,mime:"text/plain"}}async function _g(t,e){if(e.length===0)return{description:"empty",mime:"inode/x-empty"};let r=await pu(e);if(r)return{description:Dg(r.ext,r.mime),mime:r.mime};let n=new TextDecoder("utf-8",{fatal:!1}).decode(e);return Mg(n,t)}var Og,mu,gu,Bg,xu=C(()=>{"use strict";hu();L();Og={name:"file",summary:"determine file type",usage:"file [OPTION]... FILE...",options:["-b, --brief do not prepend filenames to output","-i, --mime output MIME type strings","-L, --dereference follow symlinks"," --help display this help and exit"]},mu={".js":{description:"JavaScript source",mime:"text/javascript"},".mjs":{description:"JavaScript module",mime:"text/javascript"},".cjs":{description:"CommonJS module",mime:"text/javascript"},".ts":{description:"TypeScript source",mime:"text/typescript"},".tsx":{description:"TypeScript JSX source",mime:"text/typescript"},".jsx":{description:"JavaScript JSX source",mime:"text/javascript"},".py":{description:"Python script",mime:"text/x-python"},".rb":{description:"Ruby script",mime:"text/x-ruby"},".go":{description:"Go source",mime:"text/x-go"},".rs":{description:"Rust source",mime:"text/x-rust"},".c":{description:"C source",mime:"text/x-c"},".h":{description:"C header",mime:"text/x-c"},".cpp":{description:"C++ source",mime:"text/x-c++"},".hpp":{description:"C++ header",mime:"text/x-c++"},".java":{description:"Java source",mime:"text/x-java"},".sh":{description:"Bourne-Again shell script",mime:"text/x-shellscript"},".bash":{description:"Bourne-Again shell script",mime:"text/x-shellscript"},".zsh":{description:"Zsh shell script",mime:"text/x-shellscript"},".json":{description:"JSON data",mime:"application/json"},".yaml":{description:"YAML data",mime:"text/yaml"},".yml":{description:"YAML data",mime:"text/yaml"},".xml":{description:"XML document",mime:"application/xml"},".csv":{description:"CSV text",mime:"text/csv"},".toml":{description:"TOML data",mime:"text/toml"},".html":{description:"HTML document",mime:"text/html"},".htm":{description:"HTML document",mime:"text/html"},".css":{description:"CSS stylesheet",mime:"text/css"},".svg":{description:"SVG image",mime:"image/svg+xml"},".md":{description:"Markdown document",mime:"text/markdown"},".markdown":{description:"Markdown document",mime:"text/markdown"},".txt":{description:"ASCII text",mime:"text/plain"},".rst":{description:"reStructuredText",mime:"text/x-rst"},".env":{description:"ASCII text",mime:"text/plain"},".gitignore":{description:"ASCII text",mime:"text/plain"},".dockerignore":{description:"ASCII text",mime:"text/plain"}},gu={jpg:"JPEG image data",jpeg:"JPEG image data",png:"PNG image data",gif:"GIF image data",webp:"WebP image data",bmp:"PC bitmap",ico:"MS Windows icon resource",tif:"TIFF image data",tiff:"TIFF image data",psd:"Adobe Photoshop Document",avif:"AVIF image",heic:"HEIC image",heif:"HEIF image",jxl:"JPEG XL image",icns:"Mac OS X icon",svg:"SVG Scalable Vector Graphics image",pdf:"PDF document",epub:"EPUB document",mobi:"Mobipocket E-book",djvu:"DjVu document",zip:"Zip archive data",gz:"gzip compressed data",gzip:"gzip compressed data",bz2:"bzip2 compressed data",xz:"XZ compressed data",tar:"POSIX tar archive",rar:"RAR archive data","7z":"7-zip archive data",lz:"lzip compressed data",lzma:"LZMA compressed data",zst:"Zstandard compressed data",cab:"Microsoft Cabinet archive",ar:"Unix ar archive",rpm:"RPM package",deb:"Debian binary package",apk:"Android Package",dmg:"Apple disk image",iso:"ISO 9660 CD-ROM filesystem data",vhd:"Microsoft Virtual Hard Disk",vhdx:"Microsoft Virtual Hard Disk (new format)",qcow2:"QEMU QCOW Image",mp3:"Audio file with ID3",m4a:"MPEG-4 audio",aac:"AAC audio",wav:"RIFF (little-endian) data, WAVE audio",flac:"FLAC audio bitstream data",ogg:"Ogg data",oga:"Ogg audio",opus:"Ogg Opus audio",aiff:"AIFF audio",wma:"Windows Media Audio",amr:"AMR audio",mid:"MIDI audio",midi:"MIDI audio",ape:"Monkey's Audio",mp4:"ISO Media, MPEG-4",m4v:"MPEG-4 video",webm:"WebM",avi:"RIFF (little-endian) data, AVI",mov:"ISO Media, Apple QuickTime movie",mkv:"Matroska data",wmv:"Windows Media Video",flv:"Flash Video","3gp":"3GPP multimedia","3g2":"3GPP2 multimedia",ogv:"Ogg video",mts:"MPEG transport stream",m2ts:"MPEG transport stream",ts:"MPEG transport stream",mpg:"MPEG video",mpeg:"MPEG video",exe:"PE32 executable",dll:"PE32 DLL",elf:"ELF executable",mach:"Mach-O executable",wasm:"WebAssembly (wasm) binary module",dex:"Android Dalvik executable",class:"Java class file",swf:"Adobe Flash",doc:"Microsoft Word Document",docx:"Microsoft Word 2007+ Document",xls:"Microsoft Excel Spreadsheet",xlsx:"Microsoft Excel 2007+ Spreadsheet",ppt:"Microsoft PowerPoint Presentation",pptx:"Microsoft PowerPoint 2007+ Presentation",odt:"OpenDocument Text",ods:"OpenDocument Spreadsheet",odp:"OpenDocument Presentation",ttf:"TrueType Font",otf:"OpenType Font",woff:"Web Open Font Format",woff2:"Web Open Font Format 2",eot:"Embedded OpenType font",stl:"Stereolithography CAD",obj:"Wavefront 3D Object",gltf:"GL Transmission Format",glb:"GL Transmission Format (binary)",sqlite:"SQLite 3.x database",mdb:"Microsoft Access Database",xml:"XML document",json:"JSON data",macho:"Mach-O binary",ics:"iCalendar data",vcf:"vCard data",msi:"Microsoft Installer",ps:"PostScript",ai:"Adobe Illustrator",indd:"Adobe InDesign",sketch:"Sketch design file",fig:"Figma design file",xd:"Adobe XD",blend:"Blender",fbx:"Autodesk FBX",lnk:"MS Windows shortcut",alias:"Mac OS alias",torrent:"BitTorrent file",pcap:"pcap capture file",arrow:"Apache Arrow",parquet:"Apache Parquet"};Bg={name:"file",async execute(t,e){if(N(t))return k(Og);let r=!1,n=!1,s=[];for(let a of t)if(a.startsWith("--")){if(a==="--brief")r=!0;else if(a==="--mime"||a==="--mime-type")n=!0;else if(a!=="--dereference")return R("file",a)}else if(a.startsWith("-")&&a!=="-"){for(let l of a.slice(1))if(l==="b")r=!0;else if(l==="i")n=!0;else if(l!=="L")return R("file",`-${l}`)}else s.push(a);if(s.length===0)return{stdout:"",stderr:`Usage: file [-bLi] FILE...
517
+ `,exitCode:1};let i="",o=0;for(let a of s)try{let l=e.fs.resolvePath(e.cwd,a);if((await e.fs.stat(l)).isDirectory){let p=n?"inode/directory":"directory";i+=r?`${p}
520
518
  `:`${a}: ${p}
519
+ `;continue}let u=await e.fs.readFileBuffer(l),f=await _g(a,u),d=n?f.mime:f.description;i+=r?`${d}
520
+ `:`${a}: ${d}
521
521
  `}catch{i+=r?`cannot open
522
522
  `:`${a}: cannot open (No such file or directory)
523
- `,o=1}return{stdout:i,stderr:"",exitCode:o}}}});var Xc={};R(Xc,{htmlToMarkdownCommand:()=>mg});import dg from"turndown";var hg,mg,Jc=C(()=>{"use strict";L();hg={name:"html-to-markdown",summary:"convert HTML to Markdown (BashEnv extension)",usage:"html-to-markdown [OPTION]... [FILE]",description:["Convert HTML content to Markdown format using the turndown library.","This is a non-standard BashEnv extension command, not available in regular bash.","","Read HTML from FILE or standard input and output Markdown to standard output.","Commonly used with curl to convert web pages:"," curl -s https://example.com | html-to-markdown","","Supported HTML elements:"," - Headings (h1-h6) \u2192 # Markdown headings"," - Paragraphs (p) \u2192 Plain text with blank lines"," - Links (a) \u2192 [text](url)"," - Images (img) \u2192 ![alt](src)"," - Bold/Strong \u2192 **text**"," - Italic/Em \u2192 _text_"," - Code (code, pre) \u2192 `inline` or fenced blocks"," - Lists (ul, ol, li) \u2192 - or 1. items"," - Blockquotes \u2192 > quoted text"," - Horizontal rules (hr) \u2192 ---"],options:["-b, --bullet=CHAR bullet character for unordered lists (-, +, or *)","-c, --code=FENCE fence style for code blocks (``` or ~~~)","-r, --hr=STRING string for horizontal rules (default: ---)"," --heading-style=STYLE"," heading style: 'atx' for # headings (default),"," 'setext' for underlined headings (h1/h2 only)"," --help display this help and exit"],examples:["echo '<h1>Hello</h1><p>World</p>' | html-to-markdown","html-to-markdown page.html","curl -s https://example.com | html-to-markdown > page.md"]},mg={name:"html-to-markdown",async execute(t,e){if(N(t))return k(hg);let r="-",n="```",s="---",i="atx",o=[];for(let l=0;l<t.length;l++){let c=t[l];if(c==="-b"||c==="--bullet")r=t[++l]??"-";else if(c.startsWith("--bullet="))r=c.slice(9);else if(c==="-c"||c==="--code")n=t[++l]??"```";else if(c.startsWith("--code="))n=c.slice(7);else if(c==="-r"||c==="--hr")s=t[++l]??"---";else if(c.startsWith("--hr="))s=c.slice(5);else if(c.startsWith("--heading-style=")){let u=c.slice(16);(u==="setext"||u==="atx")&&(i=u)}else if(c==="-")o.push("-");else{if(c.startsWith("--"))return P("html-to-markdown",c);if(c.startsWith("-"))return P("html-to-markdown",c);o.push(c)}}let a;if(o.length===0||o.length===1&&o[0]==="-")a=e.stdin;else try{let l=e.fs.resolvePath(e.cwd,o[0]);a=await e.fs.readFile(l)}catch{return{stdout:"",stderr:`html-to-markdown: ${o[0]}: No such file or directory
524
- `,exitCode:1}}if(!a.trim())return{stdout:"",stderr:"",exitCode:0};try{let l=new dg({bulletListMarker:r,codeBlockStyle:"fenced",fence:n,hr:s,headingStyle:i});return l.remove(["script","style","footer"]),{stdout:`${l.turndown(a).trim()}
523
+ `,o=1}return{stdout:i,stderr:"",exitCode:o}}}});var wu={};$(wu,{htmlToMarkdownCommand:()=>zg});import Wg from"turndown";var Ug,zg,Eu=C(()=>{"use strict";L();Ug={name:"html-to-markdown",summary:"convert HTML to Markdown (BashEnv extension)",usage:"html-to-markdown [OPTION]... [FILE]",description:["Convert HTML content to Markdown format using the turndown library.","This is a non-standard BashEnv extension command, not available in regular bash.","","Read HTML from FILE or standard input and output Markdown to standard output.","Commonly used with curl to convert web pages:"," curl -s https://example.com | html-to-markdown","","Supported HTML elements:"," - Headings (h1-h6) \u2192 # Markdown headings"," - Paragraphs (p) \u2192 Plain text with blank lines"," - Links (a) \u2192 [text](url)"," - Images (img) \u2192 ![alt](src)"," - Bold/Strong \u2192 **text**"," - Italic/Em \u2192 _text_"," - Code (code, pre) \u2192 `inline` or fenced blocks"," - Lists (ul, ol, li) \u2192 - or 1. items"," - Blockquotes \u2192 > quoted text"," - Horizontal rules (hr) \u2192 ---"],options:["-b, --bullet=CHAR bullet character for unordered lists (-, +, or *)","-c, --code=FENCE fence style for code blocks (``` or ~~~)","-r, --hr=STRING string for horizontal rules (default: ---)"," --heading-style=STYLE"," heading style: 'atx' for # headings (default),"," 'setext' for underlined headings (h1/h2 only)"," --help display this help and exit"],examples:["echo '<h1>Hello</h1><p>World</p>' | html-to-markdown","html-to-markdown page.html","curl -s https://example.com | html-to-markdown > page.md"]},zg={name:"html-to-markdown",async execute(t,e){if(N(t))return k(Ug);let r="-",n="```",s="---",i="atx",o=[];for(let l=0;l<t.length;l++){let c=t[l];if(c==="-b"||c==="--bullet")r=t[++l]??"-";else if(c.startsWith("--bullet="))r=c.slice(9);else if(c==="-c"||c==="--code")n=t[++l]??"```";else if(c.startsWith("--code="))n=c.slice(7);else if(c==="-r"||c==="--hr")s=t[++l]??"---";else if(c.startsWith("--hr="))s=c.slice(5);else if(c.startsWith("--heading-style=")){let u=c.slice(16);(u==="setext"||u==="atx")&&(i=u)}else if(c==="-")o.push("-");else{if(c.startsWith("--"))return R("html-to-markdown",c);if(c.startsWith("-"))return R("html-to-markdown",c);o.push(c)}}let a;if(o.length===0||o.length===1&&o[0]==="-")a=e.stdin;else try{let l=e.fs.resolvePath(e.cwd,o[0]);a=await e.fs.readFile(l)}catch{return{stdout:"",stderr:`html-to-markdown: ${o[0]}: No such file or directory
524
+ `,exitCode:1}}if(!a.trim())return{stdout:"",stderr:"",exitCode:0};try{let l=new Wg({bulletListMarker:r,codeBlockStyle:"fenced",fence:n,hr:s,headingStyle:i});return l.remove(["script","style","footer"]),{stdout:`${l.turndown(a).trim()}
525
525
  `,stderr:"",exitCode:0}}catch(l){return{stdout:"",stderr:`html-to-markdown: conversion error: ${l.message}
526
- `,exitCode:1}}}}});var Yc={};R(Yc,{helpCommand:()=>xg});function yg(t){let e=[],r=new Set(t);e.push(`Available commands:
527
- `);let n=[];for(let[s,i]of Object.entries(gg)){let o=i.filter(a=>r.has(a));if(o.length>0){e.push(` ${s}:`),e.push(` ${o.join(", ")}
526
+ `,exitCode:1}}}}});var bu={};$(bu,{helpCommand:()=>Gg});function Hg(t){let e=[],r=new Set(t);e.push(`Available commands:
527
+ `);let n=[];for(let[s,i]of Object.entries(jg)){let o=i.filter(a=>r.has(a));if(o.length>0){e.push(` ${s}:`),e.push(` ${o.join(", ")}
528
528
  `);for(let a of o)r.delete(a)}}for(let s of r)n.push(s);return n.length>0&&(e.push(" Other:"),e.push(` ${n.sort().join(", ")}
529
529
  `)),e.push("Use '<command> --help' for details on a specific command."),`${e.join(`
530
530
  `)}
531
- `}var gg,xg,eu=C(()=>{"use strict";gg={"File operations":["ls","cat","head","tail","wc","touch","mkdir","rm","cp","mv","ln","chmod","stat","readlink"],"Text processing":["grep","sed","awk","sort","uniq","cut","tr","tee","diff"],Search:["find"],"Navigation & paths":["pwd","basename","dirname","tree","du"],"Environment & shell":["echo","printf","env","printenv","export","alias","unalias","history","clear","true","false","bash","sh"],"Data processing":["xargs","jq","base64","date"],Network:["curl","html-to-markdown"]};xg={name:"help",async execute(t,e){if(t.includes("--help")||t.includes("-h"))return{stdout:`help - display available commands
531
+ `}var jg,Gg,Su=C(()=>{"use strict";jg={"File operations":["ls","cat","head","tail","wc","touch","mkdir","rm","cp","mv","ln","chmod","stat","readlink"],"Text processing":["grep","sed","awk","sort","uniq","cut","tr","tee","diff"],Search:["find"],"Navigation & paths":["pwd","basename","dirname","tree","du"],"Environment & shell":["echo","printf","env","printenv","export","alias","unalias","history","clear","true","false","bash","sh"],"Data processing":["xargs","jq","base64","date"],Network:["curl","html-to-markdown"]};Gg={name:"help",async execute(t,e){if(t.includes("--help")||t.includes("-h"))return{stdout:`help - display available commands
532
532
 
533
533
  Usage: help [command]
534
534
 
@@ -537,100 +537,100 @@ Options:
537
537
 
538
538
  If a command name is provided, shows help for that command.
539
539
  Otherwise, lists all available commands.
540
- `,stderr:"",exitCode:0};if(t.length>0&&e.exec){let n=t[0];return e.exec(`${n} --help`,{cwd:e.cwd})}let r=e.getRegisteredCommands?.()??[];return{stdout:yg(r),stderr:"",exitCode:0}}}});var tu={};R(tu,{whichCommand:()=>bg});var wg,Eg,bg,ru=C(()=>{"use strict";ye();L();wg={name:"which",summary:"locate a command",usage:"which [-as] program ...",options:["-a List all instances of executables found","-s No output, just return 0 if found, 1 if not","--help display this help and exit"]},Eg={showAll:{short:"a",type:"boolean"},silent:{short:"s",type:"boolean"}},bg={name:"which",async execute(t,e){if(N(t))return k(wg);let r=z("which",t,Eg);if(!r.ok)return r.error;let n=r.result.flags.showAll,s=r.result.flags.silent,i=r.result.positional;if(i.length===0)return{stdout:"",stderr:"",exitCode:1};let a=(e.env.PATH||"/bin:/usr/bin").split(":"),l="",c=!0;for(let u of i){let f=!1;for(let p of a){if(!p)continue;let d=`${p}/${u}`;if(await e.fs.exists(d)&&(f=!0,s||(l+=`${d}
541
- `),!n))break}f||(c=!1)}return{stdout:l,stderr:"",exitCode:c?0:1}}}});var nu={};R(nu,{tac:()=>Cg});async function Sg(t,e){if(t.length>0&&t[0]!=="-"){let s=t[0].startsWith("/")?t[0]:`${e.cwd}/${t[0]}`;try{let o=(await e.fs.readFile(s)).split(`
540
+ `,stderr:"",exitCode:0};if(t.length>0&&e.exec){let n=t[0];return e.exec(`${n} --help`,{cwd:e.cwd})}let r=e.getRegisteredCommands?.()??[];return{stdout:Hg(r),stderr:"",exitCode:0}}}});var Cu={};$(Cu,{whichCommand:()=>Kg});var qg,Vg,Kg,Au=C(()=>{"use strict";Ee();L();qg={name:"which",summary:"locate a command",usage:"which [-as] program ...",options:["-a List all instances of executables found","-s No output, just return 0 if found, 1 if not","--help display this help and exit"]},Vg={showAll:{short:"a",type:"boolean"},silent:{short:"s",type:"boolean"}},Kg={name:"which",async execute(t,e){if(N(t))return k(qg);let r=H("which",t,Vg);if(!r.ok)return r.error;let n=r.result.flags.showAll,s=r.result.flags.silent,i=r.result.positional;if(i.length===0)return{stdout:"",stderr:"",exitCode:1};let a=(e.env.PATH||"/bin:/usr/bin").split(":"),l="",c=!0;for(let u of i){let f=!1;for(let d of a){if(!d)continue;let p=`${d}/${u}`;if(await e.fs.exists(p)&&(f=!0,s||(l+=`${p}
541
+ `),!n))break}f||(c=!1)}return{stdout:l,stderr:"",exitCode:c?0:1}}}});var ku={};$(ku,{tac:()=>Qg});async function Zg(t,e){if(t.length>0&&t[0]!=="-"){let s=t[0].startsWith("/")?t[0]:`${e.cwd}/${t[0]}`;try{let o=(await e.fs.readFile(s)).split(`
542
542
  `);o[o.length-1]===""&&o.pop();let a=o.reverse();return{stdout:a.length>0?`${a.join(`
543
543
  `)}
544
544
  `:"",stderr:"",exitCode:0}}catch{return{stdout:"",stderr:`tac: ${t[0]}: No such file or directory
545
545
  `,exitCode:1}}}let r=e.stdin.split(`
546
546
  `);r[r.length-1]===""&&r.pop();let n=r.reverse();return{stdout:n.length>0?`${n.join(`
547
547
  `)}
548
- `:"",stderr:"",exitCode:0}}var Cg,su=C(()=>{"use strict";Cg={name:"tac",execute:Sg}});var iu={};R(iu,{hostname:()=>kg});async function Ag(t,e){return{stdout:`localhost
549
- `,stderr:"",exitCode:0}}var kg,ou=C(()=>{"use strict";kg={name:"hostname",execute:Ag}});var au={};R(au,{od:()=>Ig});async function Ng(t,e){let r=t.includes("-c"),n=t.includes("-An")?"none":"octal",s=e.stdin,i=t.filter(l=>!l.startsWith("-")&&l!=="-");if(i.length>0){let l=i[0].startsWith("/")?i[0]:`${e.cwd}/${i[0]}`;try{s=await e.fs.readFile(l)}catch{return{stdout:"",stderr:`od: ${i[0]}: No such file or directory
550
- `,exitCode:1}}}if(r){let l=[];for(let u of s){let f=u.charCodeAt(0);f===0?l.push("\\0"):f===9?l.push("\\t"):f===10?l.push("\\n"):f===13?l.push("\\r"):f===32?l.push(" "):f>=32&&f<127?l.push(` ${u}`):l.push(`\\${f.toString(8).padStart(3,"0")}`)}let c=[];for(let u=0;u<l.length;u+=16){let f=l.slice(u,u+16),p=n==="none"?"":`${u.toString(8).padStart(7,"0")} `;c.push(p+f.join(" "))}return n!=="none"&&c.push(s.length.toString(8).padStart(7,"0")),{stdout:`${c.join(`
548
+ `:"",stderr:"",exitCode:0}}var Qg,Nu=C(()=>{"use strict";Qg={name:"tac",execute:Zg}});var Iu={};$(Iu,{hostname:()=>Jg});async function Xg(t,e){return{stdout:`localhost
549
+ `,stderr:"",exitCode:0}}var Jg,vu=C(()=>{"use strict";Jg={name:"hostname",execute:Xg}});var $u={};$($u,{od:()=>ey});async function Yg(t,e){let r=t.includes("-c"),n=t.includes("-An")?"none":"octal",s=e.stdin,i=t.filter(l=>!l.startsWith("-")&&l!=="-");if(i.length>0){let l=i[0].startsWith("/")?i[0]:`${e.cwd}/${i[0]}`;try{s=await e.fs.readFile(l)}catch{return{stdout:"",stderr:`od: ${i[0]}: No such file or directory
550
+ `,exitCode:1}}}if(r){let l=[];for(let u of s){let f=u.charCodeAt(0);f===0?l.push("\\0"):f===9?l.push("\\t"):f===10?l.push("\\n"):f===13?l.push("\\r"):f===32?l.push(" "):f>=32&&f<127?l.push(` ${u}`):l.push(`\\${f.toString(8).padStart(3,"0")}`)}let c=[];for(let u=0;u<l.length;u+=16){let f=l.slice(u,u+16),d=n==="none"?"":`${u.toString(8).padStart(7,"0")} `;c.push(d+f.join(" "))}return n!=="none"&&c.push(s.length.toString(8).padStart(7,"0")),{stdout:`${c.join(`
551
551
  `)}
552
552
  `,stderr:"",exitCode:0}}let o=[];for(let l of s)o.push(l.charCodeAt(0).toString(8).padStart(3,"0"));let a=[];for(let l=0;l<o.length;l+=8){let c=o.slice(l,l+8),u=n==="none"?"":`${l.toString(8).padStart(7,"0")} `;a.push(u+c.join(" "))}return n!=="none"&&o.length>0&&a.push(s.length.toString(8).padStart(7,"0")),{stdout:a.length>0?`${a.join(`
553
553
  `)}
554
- `:"",stderr:"",exitCode:0}}var Ig,lu=C(()=>{"use strict";Ig={name:"od",execute:Ng}});var sn={};R(sn,{gunzipCommand:()=>Lg,gzipCommand:()=>Dg,zcatCommand:()=>Mg});import{constants as Is,gunzipSync as vs,gzipSync as cu}from"node:zlib";function uu(t){return t.best?Is.Z_BEST_COMPRESSION:t.level8?8:t.level7?7:t.level6?6:t.level5?5:t.level4?4:t.level3?3:t.level2?2:t.fast?Is.Z_BEST_SPEED:Is.Z_DEFAULT_COMPRESSION}function fu(t){if(t.length<10)return{originalName:null,mtime:null,headerSize:0};if(t[0]!==31||t[1]!==139)return{originalName:null,mtime:null,headerSize:0};let e=t[3],r=t[4]|t[5]<<8|t[6]<<16|t[7]<<24,n=10;if(e&4){if(n+2>t.length)return{originalName:null,mtime:null,headerSize:0};let i=t[n]|t[n+1]<<8;n+=2+i}let s=null;if(e&8){let i=n;for(;n<t.length&&t[n]!==0;)n++;n<t.length&&(s=new TextDecoder().decode(t.slice(i,n)),n++)}if(e&16){for(;n<t.length&&t[n]!==0;)n++;n++}return e&2&&(n+=2),{originalName:s,mtime:r>0?new Date(r*1e3):null,headerSize:n}}function Fg(t){if(t.length<4)return 0;let e=t.length;return t[e-4]|t[e-3]<<8|t[e-2]<<16|t[e-1]<<24}function nn(t){return t.length>=2&&t[0]===31&&t[1]===139}async function pu(t,e,r,n,s,i){let o=r.suffix,a,l,c;if(e==="-"||e==="")if(c=new TextEncoder().encode(t.stdin),s){if(!nn(c))return r.quiet?{stdout:"",stderr:"",exitCode:1}:{stdout:"",stderr:`${n}: stdin: not in gzip format
555
- `,exitCode:1};try{let u=vs(c);return{stdout:new TextDecoder().decode(u),stderr:"",exitCode:0}}catch(u){let f=u instanceof Error?u.message:"unknown error";return{stdout:"",stderr:`${n}: stdin: ${f}
556
- `,exitCode:1}}}else{let u=uu(r),f=cu(c,{level:u});return{stdout:String.fromCharCode(...f),stderr:"",exitCode:0}}a=t.fs.resolvePath(t.cwd,e);try{if((await t.fs.stat(a)).isDirectory)return r.recursive?await du(t,a,r,n,s,i):r.quiet?{stdout:"",stderr:"",exitCode:1}:{stdout:"",stderr:`${n}: ${e}: is a directory -- ignored
554
+ `:"",stderr:"",exitCode:0}}var ey,Ru=C(()=>{"use strict";ey={name:"od",execute:Yg}});var Sn={};$(Sn,{gunzipCommand:()=>cy,gzipCommand:()=>ly,zcatCommand:()=>uy});import{constants as qs,gunzipSync as Vs,gzipSync as Pu}from"node:zlib";function Fu(t){return t.best?qs.Z_BEST_COMPRESSION:t.level8?8:t.level7?7:t.level6?6:t.level5?5:t.level4?4:t.level3?3:t.level2?2:t.fast?qs.Z_BEST_SPEED:qs.Z_DEFAULT_COMPRESSION}function Tu(t){if(t.length<10)return{originalName:null,mtime:null,headerSize:0};if(t[0]!==31||t[1]!==139)return{originalName:null,mtime:null,headerSize:0};let e=t[3],r=t[4]|t[5]<<8|t[6]<<16|t[7]<<24,n=10;if(e&4){if(n+2>t.length)return{originalName:null,mtime:null,headerSize:0};let i=t[n]|t[n+1]<<8;n+=2+i}let s=null;if(e&8){let i=n;for(;n<t.length&&t[n]!==0;)n++;n<t.length&&(s=new TextDecoder().decode(t.slice(i,n)),n++)}if(e&16){for(;n<t.length&&t[n]!==0;)n++;n++}return e&2&&(n+=2),{originalName:s,mtime:r>0?new Date(r*1e3):null,headerSize:n}}function iy(t){if(t.length<4)return 0;let e=t.length;return t[e-4]|t[e-3]<<8|t[e-2]<<16|t[e-1]<<24}function bn(t){return t.length>=2&&t[0]===31&&t[1]===139}async function Ou(t,e,r,n,s,i){let o=r.suffix,a,l,c;if(e==="-"||e==="")if(c=new TextEncoder().encode(t.stdin),s){if(!bn(c))return r.quiet?{stdout:"",stderr:"",exitCode:1}:{stdout:"",stderr:`${n}: stdin: not in gzip format
555
+ `,exitCode:1};try{let u=Vs(c);return{stdout:new TextDecoder().decode(u),stderr:"",exitCode:0}}catch(u){let f=u instanceof Error?u.message:"unknown error";return{stdout:"",stderr:`${n}: stdin: ${f}
556
+ `,exitCode:1}}}else{let u=Fu(r),f=Pu(c,{level:u});return{stdout:String.fromCharCode(...f),stderr:"",exitCode:0}}a=t.fs.resolvePath(t.cwd,e);try{if((await t.fs.stat(a)).isDirectory)return r.recursive?await Du(t,a,r,n,s,i):r.quiet?{stdout:"",stderr:"",exitCode:1}:{stdout:"",stderr:`${n}: ${e}: is a directory -- ignored
557
557
  `,exitCode:1}}catch{return{stdout:"",stderr:`${n}: ${e}: No such file or directory
558
558
  `,exitCode:1}}try{c=await t.fs.readFileBuffer(a)}catch{return{stdout:"",stderr:`${n}: ${e}: No such file or directory
559
559
  `,exitCode:1}}if(s){if(!e.endsWith(o))return r.quiet?{stdout:"",stderr:"",exitCode:1}:{stdout:"",stderr:`${n}: ${e}: unknown suffix -- ignored
560
- `,exitCode:1};if(!nn(c))return r.quiet?{stdout:"",stderr:"",exitCode:1}:{stdout:"",stderr:`${n}: ${e}: not in gzip format
561
- `,exitCode:1};let u;try{u=vs(c)}catch(f){let p=f instanceof Error?f.message:"unknown error";return{stdout:"",stderr:`${n}: ${e}: ${p}
562
- `,exitCode:1}}if(i)return{stdout:new TextDecoder().decode(u),stderr:"",exitCode:0};if(r.name){let f=fu(c);f.originalName?l=t.fs.resolvePath(t.cwd,f.originalName):l=a.slice(0,-o.length)}else l=a.slice(0,-o.length);if(!r.force)try{return await t.fs.stat(l),{stdout:"",stderr:`${n}: ${l} already exists; not overwritten
560
+ `,exitCode:1};if(!bn(c))return r.quiet?{stdout:"",stderr:"",exitCode:1}:{stdout:"",stderr:`${n}: ${e}: not in gzip format
561
+ `,exitCode:1};let u;try{u=Vs(c)}catch(f){let d=f instanceof Error?f.message:"unknown error";return{stdout:"",stderr:`${n}: ${e}: ${d}
562
+ `,exitCode:1}}if(i)return{stdout:new TextDecoder().decode(u),stderr:"",exitCode:0};if(r.name){let f=Tu(c);f.originalName?l=t.fs.resolvePath(t.cwd,f.originalName):l=a.slice(0,-o.length)}else l=a.slice(0,-o.length);if(!r.force)try{return await t.fs.stat(l),{stdout:"",stderr:`${n}: ${l} already exists; not overwritten
563
563
  `,exitCode:1}}catch{}if(await t.fs.writeFile(l,u),!r.keep&&!i&&await t.fs.rm(a),r.verbose){let f=c.length>0?((1-c.length/u.length)*100).toFixed(1):"0.0";return{stdout:"",stderr:`${e}: ${f}% -- replaced with ${l.split("/").pop()}
564
564
  `,exitCode:0}}return{stdout:"",stderr:"",exitCode:0}}else{if(e.endsWith(o))return r.quiet?{stdout:"",stderr:"",exitCode:1}:{stdout:"",stderr:`${n}: ${e} already has ${o} suffix -- unchanged
565
- `,exitCode:1};let u=uu(r),f;try{f=cu(c,{level:u})}catch(p){let d=p instanceof Error?p.message:"unknown error";return{stdout:"",stderr:`${n}: ${e}: ${d}
565
+ `,exitCode:1};let u=Fu(r),f;try{f=Pu(c,{level:u})}catch(d){let p=d instanceof Error?d.message:"unknown error";return{stdout:"",stderr:`${n}: ${e}: ${p}
566
566
  `,exitCode:1}}if(i)return{stdout:String.fromCharCode(...f),stderr:"",exitCode:0};if(l=a+o,!r.force)try{return await t.fs.stat(l),{stdout:"",stderr:`${n}: ${l} already exists; not overwritten
567
- `,exitCode:1}}catch{}if(await t.fs.writeFile(l,f),!r.keep&&!i&&await t.fs.rm(a),r.verbose){let p=c.length>0?((1-f.length/c.length)*100).toFixed(1):"0.0";return{stdout:"",stderr:`${e}: ${p}% -- replaced with ${l.split("/").pop()}
568
- `,exitCode:0}}return{stdout:"",stderr:"",exitCode:0}}}async function du(t,e,r,n,s,i){let o=await t.fs.readdir(e),a="",l="",c=0;for(let u of o){let f=t.fs.resolvePath(e,u),p=await t.fs.stat(f);if(p.isDirectory){let d=await du(t,f,r,n,s,i);a+=d.stdout,l+=d.stderr,d.exitCode!==0&&(c=d.exitCode)}else if(p.isFile){let d=r.suffix;if(s&&!u.endsWith(d)||!s&&u.endsWith(d))continue;let h=f.startsWith(`${t.cwd}/`)?f.slice(t.cwd.length+1):f,m=await pu(t,h,r,n,s,i);a+=m.stdout,l+=m.stderr,m.exitCode!==0&&(c=m.exitCode)}}return{stdout:a,stderr:l,exitCode:c}}async function Og(t,e,r,n){let s;if(e==="-"||e==="")s=new TextEncoder().encode(t.stdin);else{let f=t.fs.resolvePath(t.cwd,e);try{s=await t.fs.readFileBuffer(f)}catch{return{stdout:"",stderr:`${n}: ${e}: No such file or directory
569
- `,exitCode:1}}}if(!nn(s))return r.quiet?{stdout:"",stderr:"",exitCode:1}:{stdout:"",stderr:`${n}: ${e}: not in gzip format
570
- `,exitCode:1};let i=s.length,o=Fg(s),a=o>0?((1-i/o)*100).toFixed(1):"0.0",c=fu(s).originalName||(e==="-"?"":e.replace(/\.gz$/,""));return{stdout:`${i.toString().padStart(10)} ${o.toString().padStart(10)} ${a.padStart(5)}% ${c}
571
- `,stderr:"",exitCode:0}}async function Tg(t,e,r,n){let s;if(e==="-"||e==="")s=new TextEncoder().encode(t.stdin);else{let i=t.fs.resolvePath(t.cwd,e);try{s=await t.fs.readFileBuffer(i)}catch{return{stdout:"",stderr:`${n}: ${e}: No such file or directory
572
- `,exitCode:1}}}if(!nn(s))return r.quiet?{stdout:"",stderr:"",exitCode:1}:{stdout:"",stderr:`${n}: ${e}: not in gzip format
573
- `,exitCode:1};try{return vs(s),r.verbose?{stdout:"",stderr:`${e}: OK
567
+ `,exitCode:1}}catch{}if(await t.fs.writeFile(l,f),!r.keep&&!i&&await t.fs.rm(a),r.verbose){let d=c.length>0?((1-f.length/c.length)*100).toFixed(1):"0.0";return{stdout:"",stderr:`${e}: ${d}% -- replaced with ${l.split("/").pop()}
568
+ `,exitCode:0}}return{stdout:"",stderr:"",exitCode:0}}}async function Du(t,e,r,n,s,i){let o=await t.fs.readdir(e),a="",l="",c=0;for(let u of o){let f=t.fs.resolvePath(e,u),d=await t.fs.stat(f);if(d.isDirectory){let p=await Du(t,f,r,n,s,i);a+=p.stdout,l+=p.stderr,p.exitCode!==0&&(c=p.exitCode)}else if(d.isFile){let p=r.suffix;if(s&&!u.endsWith(p)||!s&&u.endsWith(p))continue;let h=f.startsWith(`${t.cwd}/`)?f.slice(t.cwd.length+1):f,m=await Ou(t,h,r,n,s,i);a+=m.stdout,l+=m.stderr,m.exitCode!==0&&(c=m.exitCode)}}return{stdout:a,stderr:l,exitCode:c}}async function oy(t,e,r,n){let s;if(e==="-"||e==="")s=new TextEncoder().encode(t.stdin);else{let f=t.fs.resolvePath(t.cwd,e);try{s=await t.fs.readFileBuffer(f)}catch{return{stdout:"",stderr:`${n}: ${e}: No such file or directory
569
+ `,exitCode:1}}}if(!bn(s))return r.quiet?{stdout:"",stderr:"",exitCode:1}:{stdout:"",stderr:`${n}: ${e}: not in gzip format
570
+ `,exitCode:1};let i=s.length,o=iy(s),a=o>0?((1-i/o)*100).toFixed(1):"0.0",c=Tu(s).originalName||(e==="-"?"":e.replace(/\.gz$/,""));return{stdout:`${i.toString().padStart(10)} ${o.toString().padStart(10)} ${a.padStart(5)}% ${c}
571
+ `,stderr:"",exitCode:0}}async function ay(t,e,r,n){let s;if(e==="-"||e==="")s=new TextEncoder().encode(t.stdin);else{let i=t.fs.resolvePath(t.cwd,e);try{s=await t.fs.readFileBuffer(i)}catch{return{stdout:"",stderr:`${n}: ${e}: No such file or directory
572
+ `,exitCode:1}}}if(!bn(s))return r.quiet?{stdout:"",stderr:"",exitCode:1}:{stdout:"",stderr:`${n}: ${e}: not in gzip format
573
+ `,exitCode:1};try{return Vs(s),r.verbose?{stdout:"",stderr:`${e}: OK
574
574
  `,exitCode:0}:{stdout:"",stderr:"",exitCode:0}}catch(i){let o=i instanceof Error?i.message:"invalid";return{stdout:"",stderr:`${n}: ${e}: ${o}
575
- `,exitCode:1}}}async function $s(t,e,r){let n=r==="zcat"?Rg:r==="gunzip"?$g:vg;if(N(t))return k(n);let s=z(r,t,Pg);if(!s.ok)return s.error.stderr.includes("unrecognized option"),s.error;let i=s.result.flags,o=s.result.positional,a=r==="gunzip"||r==="zcat"||i.decompress||i.uncompress,l=r==="zcat"||i.stdout||i.toStdout;if(i.list){o.length===0&&(o=["-"]);let p=` compressed uncompressed ratio uncompressed_name
576
- `,d="",h=0;for(let m of o){let g=await Og(e,m,i,r);p+=g.stdout,d+=g.stderr,g.exitCode!==0&&(h=g.exitCode)}return{stdout:p,stderr:d,exitCode:h}}if(i.test){o.length===0&&(o=["-"]);let p="",d="",h=0;for(let m of o){let g=await Tg(e,m,i,r);p+=g.stdout,d+=g.stderr,g.exitCode!==0&&(h=g.exitCode)}return{stdout:p,stderr:d,exitCode:h}}o.length===0&&(o=["-"]);let c="",u="",f=0;for(let p of o){let d=await pu(e,p,i,r,a,l);c+=d.stdout,u+=d.stderr,d.exitCode!==0&&(f=d.exitCode)}return{stdout:c,stderr:u,exitCode:f}}var vg,$g,Rg,Pg,Dg,Lg,Mg,on=C(()=>{"use strict";ye();L();vg={name:"gzip",summary:"compress or expand files",usage:"gzip [OPTION]... [FILE]...",description:`Compress FILEs (by default, in-place).
575
+ `,exitCode:1}}}async function Ks(t,e,r){let n=r==="zcat"?ny:r==="gunzip"?ry:ty;if(N(t))return k(n);let s=H(r,t,sy);if(!s.ok)return s.error.stderr.includes("unrecognized option"),s.error;let i=s.result.flags,o=s.result.positional,a=r==="gunzip"||r==="zcat"||i.decompress||i.uncompress,l=r==="zcat"||i.stdout||i.toStdout;if(i.list){o.length===0&&(o=["-"]);let d=` compressed uncompressed ratio uncompressed_name
576
+ `,p="",h=0;for(let m of o){let g=await oy(e,m,i,r);d+=g.stdout,p+=g.stderr,g.exitCode!==0&&(h=g.exitCode)}return{stdout:d,stderr:p,exitCode:h}}if(i.test){o.length===0&&(o=["-"]);let d="",p="",h=0;for(let m of o){let g=await ay(e,m,i,r);d+=g.stdout,p+=g.stderr,g.exitCode!==0&&(h=g.exitCode)}return{stdout:d,stderr:p,exitCode:h}}o.length===0&&(o=["-"]);let c="",u="",f=0;for(let d of o){let p=await Ou(e,d,i,r,a,l);c+=p.stdout,u+=p.stderr,p.exitCode!==0&&(f=p.exitCode)}return{stdout:c,stderr:u,exitCode:f}}var ty,ry,ny,sy,ly,cy,uy,Cn=C(()=>{"use strict";Ee();L();ty={name:"gzip",summary:"compress or expand files",usage:"gzip [OPTION]... [FILE]...",description:`Compress FILEs (by default, in-place).
577
577
 
578
578
  When no FILE is given, or when FILE is -, read from standard input.
579
579
 
580
- With -d, decompress instead.`,options:["-c, --stdout write to standard output, keep original files","-d, --decompress decompress","-f, --force force overwrite of output file","-k, --keep keep (don't delete) input files","-l, --list list compressed file contents","-n, --no-name do not save or restore the original name and timestamp","-N, --name save or restore the original file name and timestamp","-q, --quiet suppress all warnings","-r, --recursive operate recursively on directories","-S, --suffix=SUF use suffix SUF on compressed files (default: .gz)","-t, --test test compressed file integrity","-v, --verbose verbose mode","-1, --fast compress faster","-9, --best compress better"," --help display this help and exit"]},$g={name:"gunzip",summary:"decompress files",usage:"gunzip [OPTION]... [FILE]...",description:`Decompress FILEs (by default, in-place).
580
+ With -d, decompress instead.`,options:["-c, --stdout write to standard output, keep original files","-d, --decompress decompress","-f, --force force overwrite of output file","-k, --keep keep (don't delete) input files","-l, --list list compressed file contents","-n, --no-name do not save or restore the original name and timestamp","-N, --name save or restore the original file name and timestamp","-q, --quiet suppress all warnings","-r, --recursive operate recursively on directories","-S, --suffix=SUF use suffix SUF on compressed files (default: .gz)","-t, --test test compressed file integrity","-v, --verbose verbose mode","-1, --fast compress faster","-9, --best compress better"," --help display this help and exit"]},ry={name:"gunzip",summary:"decompress files",usage:"gunzip [OPTION]... [FILE]...",description:`Decompress FILEs (by default, in-place).
581
581
 
582
- When no FILE is given, or when FILE is -, read from standard input.`,options:["-c, --stdout write to standard output, keep original files","-f, --force force overwrite of output file","-k, --keep keep (don't delete) input files","-l, --list list compressed file contents","-n, --no-name do not restore the original name and timestamp","-N, --name restore the original file name and timestamp","-q, --quiet suppress all warnings","-r, --recursive operate recursively on directories","-S, --suffix=SUF use suffix SUF on compressed files (default: .gz)","-t, --test test compressed file integrity","-v, --verbose verbose mode"," --help display this help and exit"]},Rg={name:"zcat",summary:"decompress files to stdout",usage:"zcat [OPTION]... [FILE]...",description:`Decompress FILEs to standard output.
582
+ When no FILE is given, or when FILE is -, read from standard input.`,options:["-c, --stdout write to standard output, keep original files","-f, --force force overwrite of output file","-k, --keep keep (don't delete) input files","-l, --list list compressed file contents","-n, --no-name do not restore the original name and timestamp","-N, --name restore the original file name and timestamp","-q, --quiet suppress all warnings","-r, --recursive operate recursively on directories","-S, --suffix=SUF use suffix SUF on compressed files (default: .gz)","-t, --test test compressed file integrity","-v, --verbose verbose mode"," --help display this help and exit"]},ny={name:"zcat",summary:"decompress files to stdout",usage:"zcat [OPTION]... [FILE]...",description:`Decompress FILEs to standard output.
583
583
 
584
- When no FILE is given, or when FILE is -, read from standard input.`,options:["-f, --force force; read compressed data even from a terminal","-l, --list list compressed file contents","-q, --quiet suppress all warnings","-S, --suffix=SUF use suffix SUF on compressed files (default: .gz)","-t, --test test compressed file integrity","-v, --verbose verbose mode"," --help display this help and exit"]},Pg={stdout:{short:"c",long:"stdout",type:"boolean"},toStdout:{long:"to-stdout",type:"boolean"},decompress:{short:"d",long:"decompress",type:"boolean"},uncompress:{long:"uncompress",type:"boolean"},force:{short:"f",long:"force",type:"boolean"},keep:{short:"k",long:"keep",type:"boolean"},list:{short:"l",long:"list",type:"boolean"},noName:{short:"n",long:"no-name",type:"boolean"},name:{short:"N",long:"name",type:"boolean"},quiet:{short:"q",long:"quiet",type:"boolean"},recursive:{short:"r",long:"recursive",type:"boolean"},suffix:{short:"S",long:"suffix",type:"string",default:".gz"},test:{short:"t",long:"test",type:"boolean"},verbose:{short:"v",long:"verbose",type:"boolean"},fast:{short:"1",long:"fast",type:"boolean"},level2:{short:"2",type:"boolean"},level3:{short:"3",type:"boolean"},level4:{short:"4",type:"boolean"},level5:{short:"5",type:"boolean"},level6:{short:"6",type:"boolean"},level7:{short:"7",type:"boolean"},level8:{short:"8",type:"boolean"},best:{short:"9",long:"best",type:"boolean"}};Dg={name:"gzip",async execute(t,e){return $s(t,e,"gzip")}},Lg={name:"gunzip",async execute(t,e){return $s(t,e,"gunzip")}},Mg={name:"zcat",async execute(t,e){return $s(t,e,"zcat")}}});function Rs(t){let e=t.indexOf("=");if(e>=0){let r=t.slice(0,e),n=t.slice(e+1);return r?`${encodeURIComponent(r)}=${encodeURIComponent(n)}`:encodeURIComponent(n)}return encodeURIComponent(t)}function Ps(t){let e=t.indexOf("=");if(e<0)return null;let r=t.slice(0,e),n=t.slice(e+1),s,i,o=n.match(/;type=([^;]+)$/);o&&(i=o[1],n=n.slice(0,-o[0].length));let a=n.match(/;filename=([^;]+)/);return a&&(s=a[1],n=n.replace(a[0],"")),(n.startsWith("@")||n.startsWith("<"))&&(s=s??n.slice(1).split("/").pop()),{name:r,value:n,filename:s,contentType:i}}function hu(t,e){let r=`----CurlFormBoundary${Date.now().toString(36)}`,n=[];for(let s of t){let i=s.value;if(i.startsWith("@")||i.startsWith("<")){let a=i.slice(1);i=e.get(a)??""}let o=`--${r}\r
584
+ When no FILE is given, or when FILE is -, read from standard input.`,options:["-f, --force force; read compressed data even from a terminal","-l, --list list compressed file contents","-q, --quiet suppress all warnings","-S, --suffix=SUF use suffix SUF on compressed files (default: .gz)","-t, --test test compressed file integrity","-v, --verbose verbose mode"," --help display this help and exit"]},sy={stdout:{short:"c",long:"stdout",type:"boolean"},toStdout:{long:"to-stdout",type:"boolean"},decompress:{short:"d",long:"decompress",type:"boolean"},uncompress:{long:"uncompress",type:"boolean"},force:{short:"f",long:"force",type:"boolean"},keep:{short:"k",long:"keep",type:"boolean"},list:{short:"l",long:"list",type:"boolean"},noName:{short:"n",long:"no-name",type:"boolean"},name:{short:"N",long:"name",type:"boolean"},quiet:{short:"q",long:"quiet",type:"boolean"},recursive:{short:"r",long:"recursive",type:"boolean"},suffix:{short:"S",long:"suffix",type:"string",default:".gz"},test:{short:"t",long:"test",type:"boolean"},verbose:{short:"v",long:"verbose",type:"boolean"},fast:{short:"1",long:"fast",type:"boolean"},level2:{short:"2",type:"boolean"},level3:{short:"3",type:"boolean"},level4:{short:"4",type:"boolean"},level5:{short:"5",type:"boolean"},level6:{short:"6",type:"boolean"},level7:{short:"7",type:"boolean"},level8:{short:"8",type:"boolean"},best:{short:"9",long:"best",type:"boolean"}};ly={name:"gzip",async execute(t,e){return Ks(t,e,"gzip")}},cy={name:"gunzip",async execute(t,e){return Ks(t,e,"gunzip")}},uy={name:"zcat",async execute(t,e){return Ks(t,e,"zcat")}}});function Zs(t){let e=t.indexOf("=");if(e>=0){let r=t.slice(0,e),n=t.slice(e+1);return r?`${encodeURIComponent(r)}=${encodeURIComponent(n)}`:encodeURIComponent(n)}return encodeURIComponent(t)}function Qs(t){let e=t.indexOf("=");if(e<0)return null;let r=t.slice(0,e),n=t.slice(e+1),s,i,o=n.match(/;type=([^;]+)$/);o&&(i=o[1],n=n.slice(0,-o[0].length));let a=n.match(/;filename=([^;]+)/);return a&&(s=a[1],n=n.replace(a[0],"")),(n.startsWith("@")||n.startsWith("<"))&&(s=s??n.slice(1).split("/").pop()),{name:r,value:n,filename:s,contentType:i}}function Lu(t,e){let r=`----CurlFormBoundary${Date.now().toString(36)}`,n=[];for(let s of t){let i=s.value;if(i.startsWith("@")||i.startsWith("<")){let a=i.slice(1);i=e.get(a)??""}let o=`--${r}\r
585
585
  `;s.filename?(o+=`Content-Disposition: form-data; name="${s.name}"; filename="${s.filename}"\r
586
586
  `,s.contentType&&(o+=`Content-Type: ${s.contentType}\r
587
587
  `)):o+=`Content-Disposition: form-data; name="${s.name}"\r
588
588
  `,o+=`\r
589
589
  ${i}\r
590
590
  `,n.push(o)}return n.push(`--${r}--\r
591
- `),{body:n.join(""),boundary:r}}var Fs=C(()=>{"use strict"});var mu,gu=C(()=>{"use strict";mu={name:"curl",summary:"transfer a URL",usage:"curl [OPTIONS] URL",options:["-X, --request METHOD HTTP method (GET, POST, PUT, DELETE, etc.)","-H, --header HEADER Add header (can be used multiple times)","-d, --data DATA HTTP POST data"," --data-raw DATA HTTP POST data (no @ interpretation)"," --data-binary DATA HTTP POST binary data"," --data-urlencode DATA URL-encode and POST data","-F, --form NAME=VALUE Multipart form data","-u, --user USER:PASS HTTP authentication","-A, --user-agent STR Set User-Agent header","-e, --referer URL Set Referer header","-b, --cookie DATA Send cookies (name=value or @file)","-c, --cookie-jar FILE Save cookies to file","-T, --upload-file FILE Upload file (PUT)","-o, --output FILE Write output to file","-O, --remote-name Write to file named from URL","-I, --head Show headers only (HEAD request)","-i, --include Include response headers in output","-s, --silent Silent mode (no progress)","-S, --show-error Show errors even when silent","-f, --fail Fail silently on HTTP errors (no output)","-L, --location Follow redirects (default)"," --max-redirs NUM Maximum redirects (default: 20)","-m, --max-time SECS Maximum time for request"," --connect-timeout SECS Connection timeout","-w, --write-out FMT Output format after completion","-v, --verbose Verbose output"," --help Display this help and exit","","Note: Network access must be configured via BashEnv network option."," curl is not available by default for security reasons."]}});function yu(t){let e={method:"GET",headers:{},dataBinary:!1,formFields:[],useRemoteName:!1,headOnly:!1,includeHeaders:!1,silent:!1,showError:!1,failSilently:!1,followRedirects:!0,verbose:!1};for(let r=0;r<t.length;r++){let n=t[r];if(n==="-X"||n==="--request")e.method=t[++r]??"GET";else if(n.startsWith("-X"))e.method=n.slice(2);else if(n.startsWith("--request="))e.method=n.slice(10);else if(n==="-H"||n==="--header"){let s=t[++r];if(s){let i=s.indexOf(":");if(i>0){let o=s.slice(0,i).trim(),a=s.slice(i+1).trim();e.headers[o]=a}}}else if(n.startsWith("--header=")){let s=n.slice(9),i=s.indexOf(":");if(i>0){let o=s.slice(0,i).trim(),a=s.slice(i+1).trim();e.headers[o]=a}}else if(n==="-d"||n==="--data"||n==="--data-raw")e.data=t[++r]??"",e.method==="GET"&&(e.method="POST");else if(n.startsWith("-d"))e.data=n.slice(2),e.method==="GET"&&(e.method="POST");else if(n.startsWith("--data="))e.data=n.slice(7),e.method==="GET"&&(e.method="POST");else if(n.startsWith("--data-raw="))e.data=n.slice(11),e.method==="GET"&&(e.method="POST");else if(n==="--data-binary")e.data=t[++r]??"",e.dataBinary=!0,e.method==="GET"&&(e.method="POST");else if(n.startsWith("--data-binary="))e.data=n.slice(14),e.dataBinary=!0,e.method==="GET"&&(e.method="POST");else if(n==="--data-urlencode"){let s=t[++r]??"";e.data=(e.data?`${e.data}&`:"")+Rs(s),e.method==="GET"&&(e.method="POST")}else if(n.startsWith("--data-urlencode=")){let s=n.slice(17);e.data=(e.data?`${e.data}&`:"")+Rs(s),e.method==="GET"&&(e.method="POST")}else if(n==="-F"||n==="--form"){let s=t[++r]??"",i=Ps(s);i&&e.formFields.push(i),e.method==="GET"&&(e.method="POST")}else if(n.startsWith("--form=")){let s=n.slice(7),i=Ps(s);i&&e.formFields.push(i),e.method==="GET"&&(e.method="POST")}else if(n==="-u"||n==="--user")e.user=t[++r];else if(n.startsWith("-u"))e.user=n.slice(2);else if(n.startsWith("--user="))e.user=n.slice(7);else if(n==="-A"||n==="--user-agent")e.headers["User-Agent"]=t[++r]??"";else if(n.startsWith("-A"))e.headers["User-Agent"]=n.slice(2);else if(n.startsWith("--user-agent="))e.headers["User-Agent"]=n.slice(13);else if(n==="-e"||n==="--referer")e.headers.Referer=t[++r]??"";else if(n.startsWith("-e"))e.headers.Referer=n.slice(2);else if(n.startsWith("--referer="))e.headers.Referer=n.slice(10);else if(n==="-b"||n==="--cookie")e.headers.Cookie=t[++r]??"";else if(n.startsWith("-b"))e.headers.Cookie=n.slice(2);else if(n.startsWith("--cookie="))e.headers.Cookie=n.slice(9);else if(n==="-c"||n==="--cookie-jar")e.cookieJar=t[++r];else if(n.startsWith("--cookie-jar="))e.cookieJar=n.slice(13);else if(n==="-T"||n==="--upload-file")e.uploadFile=t[++r],e.method==="GET"&&(e.method="PUT");else if(n.startsWith("--upload-file="))e.uploadFile=n.slice(14),e.method==="GET"&&(e.method="PUT");else if(n==="-m"||n==="--max-time"){let s=parseFloat(t[++r]??"0");!Number.isNaN(s)&&s>0&&(e.timeoutMs=s*1e3)}else if(n.startsWith("--max-time=")){let s=parseFloat(n.slice(11));!Number.isNaN(s)&&s>0&&(e.timeoutMs=s*1e3)}else if(n==="--connect-timeout"){let s=parseFloat(t[++r]??"0");!Number.isNaN(s)&&s>0&&e.timeoutMs===void 0&&(e.timeoutMs=s*1e3)}else if(n.startsWith("--connect-timeout=")){let s=parseFloat(n.slice(18));!Number.isNaN(s)&&s>0&&e.timeoutMs===void 0&&(e.timeoutMs=s*1e3)}else if(n==="-o"||n==="--output")e.outputFile=t[++r];else if(n.startsWith("--output="))e.outputFile=n.slice(9);else if(n==="-O"||n==="--remote-name")e.useRemoteName=!0;else if(n==="-I"||n==="--head")e.headOnly=!0,e.method="HEAD";else if(n==="-i"||n==="--include")e.includeHeaders=!0;else if(n==="-s"||n==="--silent")e.silent=!0;else if(n==="-S"||n==="--show-error")e.showError=!0;else if(n==="-f"||n==="--fail")e.failSilently=!0;else if(n==="-L"||n==="--location")e.followRedirects=!0;else if(n==="--max-redirs")r++;else if(!n.startsWith("--max-redirs="))if(n==="-w"||n==="--write-out")e.writeOut=t[++r];else if(n.startsWith("--write-out="))e.writeOut=n.slice(12);else if(n==="-v"||n==="--verbose")e.verbose=!0;else{if(n.startsWith("--")&&n!=="--")return P("curl",n);if(n.startsWith("-")&&n!=="-")for(let s of n.slice(1))switch(s){case"s":e.silent=!0;break;case"S":e.showError=!0;break;case"f":e.failSilently=!0;break;case"L":e.followRedirects=!0;break;case"I":e.headOnly=!0,e.method="HEAD";break;case"i":e.includeHeaders=!0;break;case"O":e.useRemoteName=!0;break;case"v":e.verbose=!0;break;default:return P("curl",`-${s}`)}else n.startsWith("-")||(e.url=n)}}return e}var xu=C(()=>{"use strict";L();Fs()});function Os(t){return Object.entries(t).map(([e,r])=>`${e}: ${r}`).join(`\r
592
- `)}function wu(t){try{return new URL(t).pathname.split("/").pop()||"index.html"}catch{return"index.html"}}function Ts(t,e){let r=t;return r=r.replace(/%\{http_code\}/g,String(e.status)),r=r.replace(/%\{content_type\}/g,e.headers["content-type"]||""),r=r.replace(/%\{url_effective\}/g,e.url),r=r.replace(/%\{size_download\}/g,String(e.bodyLength)),r=r.replace(/\\n/g,`
593
- `),r}var Eu=C(()=>{"use strict"});var bu={};R(bu,{curlCommand:()=>jg});async function _g(t,e){if(t.uploadFile){let r=e.fs.resolvePath(e.cwd,t.uploadFile);return{body:await e.fs.readFile(r)}}if(t.formFields.length>0){let r=new Map;for(let i of t.formFields)if(i.value.startsWith("@")||i.value.startsWith("<")){let o=e.fs.resolvePath(e.cwd,i.value.slice(1));try{let a=await e.fs.readFile(o);r.set(i.value.slice(1),a)}catch{r.set(i.value.slice(1),"")}}let{body:n,boundary:s}=hu(t.formFields,r);return{body:n,contentType:`multipart/form-data; boundary=${s}`}}return t.data!==void 0?{body:t.data}:{}}function Bg(t,e){let r={...t.headers};if(t.user){let n=Buffer.from(t.user).toString("base64");r.Authorization=`Basic ${n}`}return e&&!r["Content-Type"]&&(r["Content-Type"]=e),r}async function Wg(t,e,r){if(!t.cookieJar)return;let n=e["set-cookie"];if(!n)return;let s=r.fs.resolvePath(r.cwd,t.cookieJar);await r.fs.writeFile(s,n)}function Ug(t,e,r){let n="";if(t.verbose){n+=`> ${t.method} ${r}
591
+ `),{body:n.join(""),boundary:r}}var Xs=C(()=>{"use strict"});var Mu,_u=C(()=>{"use strict";Mu={name:"curl",summary:"transfer a URL",usage:"curl [OPTIONS] URL",options:["-X, --request METHOD HTTP method (GET, POST, PUT, DELETE, etc.)","-H, --header HEADER Add header (can be used multiple times)","-d, --data DATA HTTP POST data"," --data-raw DATA HTTP POST data (no @ interpretation)"," --data-binary DATA HTTP POST binary data"," --data-urlencode DATA URL-encode and POST data","-F, --form NAME=VALUE Multipart form data","-u, --user USER:PASS HTTP authentication","-A, --user-agent STR Set User-Agent header","-e, --referer URL Set Referer header","-b, --cookie DATA Send cookies (name=value or @file)","-c, --cookie-jar FILE Save cookies to file","-T, --upload-file FILE Upload file (PUT)","-o, --output FILE Write output to file","-O, --remote-name Write to file named from URL","-I, --head Show headers only (HEAD request)","-i, --include Include response headers in output","-s, --silent Silent mode (no progress)","-S, --show-error Show errors even when silent","-f, --fail Fail silently on HTTP errors (no output)","-L, --location Follow redirects (default)"," --max-redirs NUM Maximum redirects (default: 20)","-m, --max-time SECS Maximum time for request"," --connect-timeout SECS Connection timeout","-w, --write-out FMT Output format after completion","-v, --verbose Verbose output"," --help Display this help and exit","","Note: Network access must be configured via BashEnv network option."," curl is not available by default for security reasons."]}});function Bu(t){let e={method:"GET",headers:{},dataBinary:!1,formFields:[],useRemoteName:!1,headOnly:!1,includeHeaders:!1,silent:!1,showError:!1,failSilently:!1,followRedirects:!0,verbose:!1};for(let r=0;r<t.length;r++){let n=t[r];if(n==="-X"||n==="--request")e.method=t[++r]??"GET";else if(n.startsWith("-X"))e.method=n.slice(2);else if(n.startsWith("--request="))e.method=n.slice(10);else if(n==="-H"||n==="--header"){let s=t[++r];if(s){let i=s.indexOf(":");if(i>0){let o=s.slice(0,i).trim(),a=s.slice(i+1).trim();e.headers[o]=a}}}else if(n.startsWith("--header=")){let s=n.slice(9),i=s.indexOf(":");if(i>0){let o=s.slice(0,i).trim(),a=s.slice(i+1).trim();e.headers[o]=a}}else if(n==="-d"||n==="--data"||n==="--data-raw")e.data=t[++r]??"",e.method==="GET"&&(e.method="POST");else if(n.startsWith("-d"))e.data=n.slice(2),e.method==="GET"&&(e.method="POST");else if(n.startsWith("--data="))e.data=n.slice(7),e.method==="GET"&&(e.method="POST");else if(n.startsWith("--data-raw="))e.data=n.slice(11),e.method==="GET"&&(e.method="POST");else if(n==="--data-binary")e.data=t[++r]??"",e.dataBinary=!0,e.method==="GET"&&(e.method="POST");else if(n.startsWith("--data-binary="))e.data=n.slice(14),e.dataBinary=!0,e.method==="GET"&&(e.method="POST");else if(n==="--data-urlencode"){let s=t[++r]??"";e.data=(e.data?`${e.data}&`:"")+Zs(s),e.method==="GET"&&(e.method="POST")}else if(n.startsWith("--data-urlencode=")){let s=n.slice(17);e.data=(e.data?`${e.data}&`:"")+Zs(s),e.method==="GET"&&(e.method="POST")}else if(n==="-F"||n==="--form"){let s=t[++r]??"",i=Qs(s);i&&e.formFields.push(i),e.method==="GET"&&(e.method="POST")}else if(n.startsWith("--form=")){let s=n.slice(7),i=Qs(s);i&&e.formFields.push(i),e.method==="GET"&&(e.method="POST")}else if(n==="-u"||n==="--user")e.user=t[++r];else if(n.startsWith("-u"))e.user=n.slice(2);else if(n.startsWith("--user="))e.user=n.slice(7);else if(n==="-A"||n==="--user-agent")e.headers["User-Agent"]=t[++r]??"";else if(n.startsWith("-A"))e.headers["User-Agent"]=n.slice(2);else if(n.startsWith("--user-agent="))e.headers["User-Agent"]=n.slice(13);else if(n==="-e"||n==="--referer")e.headers.Referer=t[++r]??"";else if(n.startsWith("-e"))e.headers.Referer=n.slice(2);else if(n.startsWith("--referer="))e.headers.Referer=n.slice(10);else if(n==="-b"||n==="--cookie")e.headers.Cookie=t[++r]??"";else if(n.startsWith("-b"))e.headers.Cookie=n.slice(2);else if(n.startsWith("--cookie="))e.headers.Cookie=n.slice(9);else if(n==="-c"||n==="--cookie-jar")e.cookieJar=t[++r];else if(n.startsWith("--cookie-jar="))e.cookieJar=n.slice(13);else if(n==="-T"||n==="--upload-file")e.uploadFile=t[++r],e.method==="GET"&&(e.method="PUT");else if(n.startsWith("--upload-file="))e.uploadFile=n.slice(14),e.method==="GET"&&(e.method="PUT");else if(n==="-m"||n==="--max-time"){let s=parseFloat(t[++r]??"0");!Number.isNaN(s)&&s>0&&(e.timeoutMs=s*1e3)}else if(n.startsWith("--max-time=")){let s=parseFloat(n.slice(11));!Number.isNaN(s)&&s>0&&(e.timeoutMs=s*1e3)}else if(n==="--connect-timeout"){let s=parseFloat(t[++r]??"0");!Number.isNaN(s)&&s>0&&e.timeoutMs===void 0&&(e.timeoutMs=s*1e3)}else if(n.startsWith("--connect-timeout=")){let s=parseFloat(n.slice(18));!Number.isNaN(s)&&s>0&&e.timeoutMs===void 0&&(e.timeoutMs=s*1e3)}else if(n==="-o"||n==="--output")e.outputFile=t[++r];else if(n.startsWith("--output="))e.outputFile=n.slice(9);else if(n==="-O"||n==="--remote-name")e.useRemoteName=!0;else if(n==="-I"||n==="--head")e.headOnly=!0,e.method="HEAD";else if(n==="-i"||n==="--include")e.includeHeaders=!0;else if(n==="-s"||n==="--silent")e.silent=!0;else if(n==="-S"||n==="--show-error")e.showError=!0;else if(n==="-f"||n==="--fail")e.failSilently=!0;else if(n==="-L"||n==="--location")e.followRedirects=!0;else if(n==="--max-redirs")r++;else if(!n.startsWith("--max-redirs="))if(n==="-w"||n==="--write-out")e.writeOut=t[++r];else if(n.startsWith("--write-out="))e.writeOut=n.slice(12);else if(n==="-v"||n==="--verbose")e.verbose=!0;else{if(n.startsWith("--")&&n!=="--")return R("curl",n);if(n.startsWith("-")&&n!=="-")for(let s of n.slice(1))switch(s){case"s":e.silent=!0;break;case"S":e.showError=!0;break;case"f":e.failSilently=!0;break;case"L":e.followRedirects=!0;break;case"I":e.headOnly=!0,e.method="HEAD";break;case"i":e.includeHeaders=!0;break;case"O":e.useRemoteName=!0;break;case"v":e.verbose=!0;break;default:return R("curl",`-${s}`)}else n.startsWith("-")||(e.url=n)}}return e}var Wu=C(()=>{"use strict";L();Xs()});function Js(t){return Object.entries(t).map(([e,r])=>`${e}: ${r}`).join(`\r
592
+ `)}function Uu(t){try{return new URL(t).pathname.split("/").pop()||"index.html"}catch{return"index.html"}}function Ys(t,e){let r=t;return r=r.replace(/%\{http_code\}/g,String(e.status)),r=r.replace(/%\{content_type\}/g,e.headers["content-type"]||""),r=r.replace(/%\{url_effective\}/g,e.url),r=r.replace(/%\{size_download\}/g,String(e.bodyLength)),r=r.replace(/\\n/g,`
593
+ `),r}var zu=C(()=>{"use strict"});var ju={};$(ju,{curlCommand:()=>my});async function fy(t,e){if(t.uploadFile){let r=e.fs.resolvePath(e.cwd,t.uploadFile);return{body:await e.fs.readFile(r)}}if(t.formFields.length>0){let r=new Map;for(let i of t.formFields)if(i.value.startsWith("@")||i.value.startsWith("<")){let o=e.fs.resolvePath(e.cwd,i.value.slice(1));try{let a=await e.fs.readFile(o);r.set(i.value.slice(1),a)}catch{r.set(i.value.slice(1),"")}}let{body:n,boundary:s}=Lu(t.formFields,r);return{body:n,contentType:`multipart/form-data; boundary=${s}`}}return t.data!==void 0?{body:t.data}:{}}function dy(t,e){let r={...t.headers};if(t.user){let n=Buffer.from(t.user).toString("base64");r.Authorization=`Basic ${n}`}return e&&!r["Content-Type"]&&(r["Content-Type"]=e),r}async function py(t,e,r){if(!t.cookieJar)return;let n=e["set-cookie"];if(!n)return;let s=r.fs.resolvePath(r.cwd,t.cookieJar);await r.fs.writeFile(s,n)}function hy(t,e,r){let n="";if(t.verbose){n+=`> ${t.method} ${r}
594
594
  `;for(let[s,i]of Object.entries(t.headers))n+=`> ${s}: ${i}
595
595
  `;n+=`>
596
596
  `,n+=`< HTTP/1.1 ${e.status} ${e.statusText}
597
597
  `;for(let[s,i]of Object.entries(e.headers))n+=`< ${s}: ${i}
598
598
  `;n+=`<
599
599
  `}return t.includeHeaders&&!t.verbose&&(n+=`HTTP/1.1 ${e.status} ${e.statusText}\r
600
- `,n+=Os(e.headers),n+=`\r
600
+ `,n+=Js(e.headers),n+=`\r
601
601
  \r
602
602
  `),t.headOnly?t.includeHeaders||t.verbose||(n+=`HTTP/1.1 ${e.status} ${e.statusText}\r
603
- `,n+=Os(e.headers),n+=`\r
604
- `):n+=e.body,t.writeOut&&(n+=Ts(t.writeOut,{status:e.status,headers:e.headers,url:e.url,bodyLength:e.body.length})),n}var jg,Su=C(()=>{"use strict";qe();L();Fs();gu();xu();Eu();jg={name:"curl",async execute(t,e){if(N(t))return k(mu);let r=yu(t);if("exitCode"in r)return r;let n=r;if(!n.url)return{stdout:"",stderr:`curl: no URL specified
603
+ `,n+=Js(e.headers),n+=`\r
604
+ `):n+=e.body,t.writeOut&&(n+=Ys(t.writeOut,{status:e.status,headers:e.headers,url:e.url,bodyLength:e.body.length})),n}var my,Hu=C(()=>{"use strict";rt();L();Xs();_u();Wu();zu();my={name:"curl",async execute(t,e){if(N(t))return k(Mu);let r=Bu(t);if("exitCode"in r)return r;let n=r;if(!n.url)return{stdout:"",stderr:`curl: no URL specified
605
605
  `,exitCode:2};if(!e.fetch)return{stdout:"",stderr:`curl: internal error: fetch not available
606
- `,exitCode:1};let s=n.url;s.match(/^https?:\/\//)||(s=`https://${s}`);try{let{body:i,contentType:o}=await _g(n,e),a=Bg(n,o),l=await e.fetch(s,{method:n.method,headers:Object.keys(a).length>0?a:void 0,body:i,followRedirects:n.followRedirects,timeoutMs:n.timeoutMs});if(await Wg(n,l.headers,e),n.failSilently&&l.status>=400)return{stdout:"",stderr:n.showError||!n.silent?`curl: (22) The requested URL returned error: ${l.status}
607
- `:"",exitCode:22};let c=Ug(n,l,s);if(n.outputFile||n.useRemoteName){let u=n.outputFile||wu(s),f=e.fs.resolvePath(e.cwd,u);await e.fs.writeFile(f,n.headOnly?"":l.body),n.verbose||(c=""),n.writeOut&&(c=Ts(n.writeOut,{status:l.status,headers:l.headers,url:l.url,bodyLength:l.body.length}))}return{stdout:c,stderr:"",exitCode:0}}catch(i){let o=de(i),a=1;return o.includes("Network access denied")?a=7:o.includes("HTTP method")&&o.includes("not allowed")?a=3:o.includes("Redirect target not in allow-list")||o.includes("Too many redirects")?a=47:o.includes("aborted")&&(a=28),{stdout:"",stderr:!n.silent||n.showError?`curl: (${a}) ${o}
608
- `:"",exitCode:a}}}}});var Ds=[{name:"echo",load:async()=>(await Promise.resolve().then(()=>(Ti(),Oi))).echoCommand},{name:"cat",load:async()=>(await Promise.resolve().then(()=>(Li(),Di))).catCommand},{name:"printf",load:async()=>(await Promise.resolve().then(()=>(Wi(),Bi))).printfCommand},{name:"ls",load:async()=>(await Promise.resolve().then(()=>(Hi(),zi))).lsCommand},{name:"mkdir",load:async()=>(await Promise.resolve().then(()=>(qi(),Gi))).mkdirCommand},{name:"touch",load:async()=>(await Promise.resolve().then(()=>(Ki(),Vi))).touchCommand},{name:"rm",load:async()=>(await Promise.resolve().then(()=>(Qi(),Zi))).rmCommand},{name:"cp",load:async()=>(await Promise.resolve().then(()=>(Ji(),Xi))).cpCommand},{name:"mv",load:async()=>(await Promise.resolve().then(()=>(eo(),Yi))).mvCommand},{name:"ln",load:async()=>(await Promise.resolve().then(()=>(ro(),to))).lnCommand},{name:"chmod",load:async()=>(await Promise.resolve().then(()=>(io(),so))).chmodCommand},{name:"pwd",load:async()=>(await Promise.resolve().then(()=>(ao(),oo))).pwdCommand},{name:"readlink",load:async()=>(await Promise.resolve().then(()=>(co(),lo))).readlinkCommand},{name:"head",load:async()=>(await Promise.resolve().then(()=>(ho(),po))).headCommand},{name:"tail",load:async()=>(await Promise.resolve().then(()=>(go(),mo))).tailCommand},{name:"wc",load:async()=>(await Promise.resolve().then(()=>(wo(),xo))).wcCommand},{name:"stat",load:async()=>(await Promise.resolve().then(()=>(So(),bo))).statCommand},{name:"grep",load:async()=>(await Promise.resolve().then(()=>(Tr(),Or))).grepCommand},{name:"fgrep",load:async()=>(await Promise.resolve().then(()=>(Tr(),Or))).fgrepCommand},{name:"egrep",load:async()=>(await Promise.resolve().then(()=>(Tr(),Or))).egrepCommand},{name:"sed",load:async()=>(await Promise.resolve().then(()=>(Oo(),Fo))).sedCommand},{name:"awk",load:async()=>(await Promise.resolve().then(()=>(ra(),ta))).awkCommand2},{name:"sort",load:async()=>(await Promise.resolve().then(()=>(pa(),fa))).sortCommand},{name:"uniq",load:async()=>(await Promise.resolve().then(()=>(ha(),da))).uniqCommand},{name:"comm",load:async()=>(await Promise.resolve().then(()=>(ga(),ma))).commCommand},{name:"cut",load:async()=>(await Promise.resolve().then(()=>(xa(),ya))).cutCommand},{name:"paste",load:async()=>(await Promise.resolve().then(()=>(ba(),Ea))).pasteCommand},{name:"tr",load:async()=>(await Promise.resolve().then(()=>(Aa(),Ca))).trCommand},{name:"rev",load:async()=>(await Promise.resolve().then(()=>(Na(),ka))).rev},{name:"nl",load:async()=>(await Promise.resolve().then(()=>($a(),va))).nl},{name:"fold",load:async()=>(await Promise.resolve().then(()=>(Fa(),Pa))).fold},{name:"expand",load:async()=>(await Promise.resolve().then(()=>(Da(),Ta))).expand},{name:"unexpand",load:async()=>(await Promise.resolve().then(()=>(Ba(),_a))).unexpand},{name:"strings",load:async()=>(await Promise.resolve().then(()=>(za(),ja))).strings},{name:"split",load:async()=>(await Promise.resolve().then(()=>(qa(),Ga))).split},{name:"column",load:async()=>(await Promise.resolve().then(()=>(Za(),Ka))).column},{name:"join",load:async()=>(await Promise.resolve().then(()=>(Xa(),Qa))).join},{name:"tee",load:async()=>(await Promise.resolve().then(()=>(Ya(),Ja))).teeCommand},{name:"find",load:async()=>(await Promise.resolve().then(()=>(il(),sl))).findCommand},{name:"basename",load:async()=>(await Promise.resolve().then(()=>(al(),ol))).basenameCommand},{name:"dirname",load:async()=>(await Promise.resolve().then(()=>(cl(),ll))).dirnameCommand},{name:"tree",load:async()=>(await Promise.resolve().then(()=>(pl(),fl))).treeCommand},{name:"du",load:async()=>(await Promise.resolve().then(()=>(ml(),hl))).duCommand},{name:"env",load:async()=>(await Promise.resolve().then(()=>(ns(),rs))).envCommand},{name:"printenv",load:async()=>(await Promise.resolve().then(()=>(ns(),rs))).printenvCommand},{name:"alias",load:async()=>(await Promise.resolve().then(()=>(is(),ss))).aliasCommand},{name:"unalias",load:async()=>(await Promise.resolve().then(()=>(is(),ss))).unaliasCommand},{name:"history",load:async()=>(await Promise.resolve().then(()=>(xl(),yl))).historyCommand},{name:"xargs",load:async()=>(await Promise.resolve().then(()=>(El(),wl))).xargsCommand},{name:"true",load:async()=>(await Promise.resolve().then(()=>(as(),os))).trueCommand},{name:"false",load:async()=>(await Promise.resolve().then(()=>(as(),os))).falseCommand},{name:"clear",load:async()=>(await Promise.resolve().then(()=>(Sl(),bl))).clearCommand},{name:"bash",load:async()=>(await Promise.resolve().then(()=>(cs(),ls))).bashCommand},{name:"sh",load:async()=>(await Promise.resolve().then(()=>(cs(),ls))).shCommand},{name:"jq",load:async()=>(await Promise.resolve().then(()=>(Tl(),Ol))).jqCommand},{name:"base64",load:async()=>(await Promise.resolve().then(()=>(Ml(),Ll))).base64Command},{name:"diff",load:async()=>(await Promise.resolve().then(()=>(Wl(),Bl))).diffCommand},{name:"date",load:async()=>(await Promise.resolve().then(()=>(jl(),Ul))).dateCommand},{name:"sleep",load:async()=>(await Promise.resolve().then(()=>(Hl(),zl))).sleepCommand},{name:"timeout",load:async()=>(await Promise.resolve().then(()=>(ql(),Gl))).timeoutCommand},{name:"seq",load:async()=>(await Promise.resolve().then(()=>(Kl(),Vl))).seqCommand},{name:"expr",load:async()=>(await Promise.resolve().then(()=>(Ql(),Zl))).exprCommand},{name:"md5sum",load:async()=>(await Promise.resolve().then(()=>(Yl(),Jl))).md5sumCommand},{name:"sha1sum",load:async()=>(await Promise.resolve().then(()=>(tc(),ec))).sha1sumCommand},{name:"sha256sum",load:async()=>(await Promise.resolve().then(()=>(nc(),rc))).sha256sumCommand},{name:"file",load:async()=>(await Promise.resolve().then(()=>(Qc(),Zc))).fileCommand},{name:"html-to-markdown",load:async()=>(await Promise.resolve().then(()=>(Jc(),Xc))).htmlToMarkdownCommand},{name:"help",load:async()=>(await Promise.resolve().then(()=>(eu(),Yc))).helpCommand},{name:"which",load:async()=>(await Promise.resolve().then(()=>(ru(),tu))).whichCommand},{name:"tac",load:async()=>(await Promise.resolve().then(()=>(su(),nu))).tac},{name:"hostname",load:async()=>(await Promise.resolve().then(()=>(ou(),iu))).hostname},{name:"od",load:async()=>(await Promise.resolve().then(()=>(lu(),au))).od},{name:"gzip",load:async()=>(await Promise.resolve().then(()=>(on(),sn))).gzipCommand},{name:"gunzip",load:async()=>(await Promise.resolve().then(()=>(on(),sn))).gunzipCommand},{name:"zcat",load:async()=>(await Promise.resolve().then(()=>(on(),sn))).zcatCommand}],Au=[{name:"curl",load:async()=>(await Promise.resolve().then(()=>(Su(),bu))).curlCommand}],Cu=new Map;function ku(t){return{name:t.name,async execute(e,r){let n=Cu.get(t.name);return n||(n=await t.load(),Cu.set(t.name,n)),n.execute(e,r)}}}function zg(){return Ds.map(t=>t.name)}function Hg(){return Au.map(t=>t.name)}function Nu(t){return(t?Ds.filter(r=>t.includes(r.name)):Ds).map(ku)}function Iu(){return Au.map(ku)}function vu(t){return"load"in t&&typeof t.load=="function"}function Gg(t,e){return{name:t,execute:e}}function $u(t){let e=null;return{name:t.name,async execute(r,n){return e||(e=await t.load()),e.execute(r,n)}}}var qg=new TextEncoder,Vg=new TextDecoder;function Ls(t,e){if(t instanceof Uint8Array)return t;switch(e){case"base64":return Uint8Array.from(atob(t),r=>r.charCodeAt(0));case"hex":{let r=new Uint8Array(t.length/2);for(let n=0;n<t.length;n+=2)r[n/2]=parseInt(t.slice(n,n+2),16);return r}case"binary":case"latin1":return Uint8Array.from(t,r=>r.charCodeAt(0));default:return qg.encode(t)}}function Ru(t,e){switch(e){case"base64":return btoa(String.fromCharCode(...t));case"hex":return Array.from(t).map(r=>r.toString(16).padStart(2,"0")).join("");case"binary":case"latin1":return String.fromCharCode(...t);default:return Vg.decode(t)}}function an(t){if(t!=null)return typeof t=="string"?t:t.encoding??void 0}var ln=new TextEncoder;function Kg(t){return typeof t=="object"&&t!==null&&!(t instanceof Uint8Array)&&"content"in t}var It=class{data=new Map;constructor(e){if(this.data.set("/",{type:"directory",mode:493,mtime:new Date}),e)for(let[r,n]of Object.entries(e))Kg(n)?this.writeFileSync(r,n.content,void 0,{mode:n.mode,mtime:n.mtime}):this.writeFileSync(r,n)}normalizePath(e){if(!e||e==="/")return"/";let r=e.endsWith("/")&&e!=="/"?e.slice(0,-1):e;r.startsWith("/")||(r=`/${r}`);let n=r.split("/").filter(i=>i&&i!=="."),s=[];for(let i of n)i===".."?s.pop():s.push(i);return`/${s.join("/")}`||"/"}dirname(e){let r=this.normalizePath(e);if(r==="/")return"/";let n=r.lastIndexOf("/");return n===0?"/":r.slice(0,n)}ensureParentDirs(e){let r=this.dirname(e);r!=="/"&&(this.data.has(r)||(this.ensureParentDirs(r),this.data.set(r,{type:"directory",mode:493,mtime:new Date})))}writeFileSync(e,r,n,s){let i=this.normalizePath(e);this.ensureParentDirs(i);let o=an(n),a=Ls(r,o);this.data.set(i,{type:"file",content:a,mode:s?.mode??420,mtime:s?.mtime??new Date})}async readFile(e,r){let n=await this.readFileBuffer(e),s=an(r);return Ru(n,s)}async readFileBuffer(e){let r=this.normalizePath(e),n=this.data.get(r),s=r;if(!n)throw new Error(`ENOENT: no such file or directory, open '${e}'`);let i=new Set;for(;n&&n.type==="symlink";){if(i.has(s))throw new Error(`ELOOP: too many levels of symbolic links, open '${e}'`);i.add(s),s=this.resolveSymlink(s,n.target),n=this.data.get(s)}if(!n)throw new Error(`ENOENT: no such file or directory, open '${e}'`);if(n.type!=="file")throw new Error(`EISDIR: illegal operation on a directory, read '${e}'`);return n.content instanceof Uint8Array?n.content:ln.encode(n.content)}async writeFile(e,r,n){this.writeFileSync(e,r,n)}async appendFile(e,r,n){let s=this.normalizePath(e),i=this.data.get(s);if(i&&i.type==="directory")throw new Error(`EISDIR: illegal operation on a directory, write '${e}'`);let o=an(n),a=Ls(r,o);if(i?.type==="file"){let l=i.content instanceof Uint8Array?i.content:ln.encode(i.content),c=new Uint8Array(l.length+a.length);c.set(l),c.set(a,l.length),this.data.set(s,{type:"file",content:c,mode:i.mode,mtime:new Date})}else this.writeFileSync(e,r,n)}async exists(e){return this.data.has(this.normalizePath(e))}async stat(e){let r=this.normalizePath(e),n=this.data.get(r);if(!n)throw new Error(`ENOENT: no such file or directory, stat '${e}'`);if(n.type==="symlink"){let i=this.resolveSymlink(r,n.target),o=this.data.get(i);if(!o)throw new Error(`ENOENT: no such file or directory, stat '${e}'`);n=o}let s=0;return n.type==="file"&&n.content&&(n.content instanceof Uint8Array?s=n.content.length:s=ln.encode(n.content).length),{isFile:n.type==="file",isDirectory:n.type==="directory",isSymbolicLink:!1,mode:n.mode,size:s,mtime:n.mtime||new Date}}async lstat(e){let r=this.normalizePath(e),n=this.data.get(r);if(!n)throw new Error(`ENOENT: no such file or directory, lstat '${e}'`);if(n.type==="symlink")return{isFile:!1,isDirectory:!1,isSymbolicLink:!0,mode:n.mode,size:n.target.length,mtime:n.mtime||new Date};let s=0;return n.type==="file"&&n.content&&(n.content instanceof Uint8Array?s=n.content.length:s=ln.encode(n.content).length),{isFile:n.type==="file",isDirectory:n.type==="directory",isSymbolicLink:!1,mode:n.mode,size:s,mtime:n.mtime||new Date}}resolveSymlink(e,r){if(r.startsWith("/"))return this.normalizePath(r);let n=this.dirname(e);return this.normalizePath(n==="/"?`/${r}`:`${n}/${r}`)}async mkdir(e,r){this.mkdirSync(e,r)}mkdirSync(e,r){let n=this.normalizePath(e);if(this.data.has(n)){if(this.data.get(n)?.type==="file")throw new Error(`EEXIST: file already exists, mkdir '${e}'`);if(!r?.recursive)throw new Error(`EEXIST: directory already exists, mkdir '${e}'`);return}let s=this.dirname(n);if(s!=="/"&&!this.data.has(s))if(r?.recursive)this.mkdirSync(s,{recursive:!0});else throw new Error(`ENOENT: no such file or directory, mkdir '${e}'`);this.data.set(n,{type:"directory",mode:493,mtime:new Date})}async readdir(e){return(await this.readdirWithFileTypes(e)).map(n=>n.name)}async readdirWithFileTypes(e){let r=this.normalizePath(e),n=this.data.get(r);if(!n)throw new Error(`ENOENT: no such file or directory, scandir '${e}'`);if(n.type!=="directory")throw new Error(`ENOTDIR: not a directory, scandir '${e}'`);let s=r==="/"?"/":`${r}/`,i=new Map;for(let[o,a]of this.data.entries())if(o!==r&&o.startsWith(s)){let l=o.slice(s.length),c=l.split("/")[0];c&&!l.includes("/",c.length)&&!i.has(c)&&i.set(c,{name:c,isFile:a.type==="file",isDirectory:a.type==="directory",isSymbolicLink:a.type==="symlink"})}return Array.from(i.values()).sort((o,a)=>o.name<a.name?-1:o.name>a.name?1:0)}async rm(e,r){let n=this.normalizePath(e),s=this.data.get(n);if(!s){if(r?.force)return;throw new Error(`ENOENT: no such file or directory, rm '${e}'`)}if(s.type==="directory"){let i=await this.readdir(n);if(i.length>0){if(!r?.recursive)throw new Error(`ENOTEMPTY: directory not empty, rm '${e}'`);for(let o of i){let a=n==="/"?`/${o}`:`${n}/${o}`;await this.rm(a,r)}}}this.data.delete(n)}async cp(e,r,n){let s=this.normalizePath(e),i=this.normalizePath(r),o=this.data.get(s);if(!o)throw new Error(`ENOENT: no such file or directory, cp '${e}'`);if(o.type==="file")this.ensureParentDirs(i),this.data.set(i,{...o});else if(o.type==="directory"){if(!n?.recursive)throw new Error(`EISDIR: is a directory, cp '${e}'`);await this.mkdir(i,{recursive:!0});let a=await this.readdir(s);for(let l of a){let c=s==="/"?`/${l}`:`${s}/${l}`,u=i==="/"?`/${l}`:`${i}/${l}`;await this.cp(c,u,n)}}}async mv(e,r){await this.cp(e,r,{recursive:!0}),await this.rm(e,{recursive:!0})}getAllPaths(){return Array.from(this.data.keys())}resolvePath(e,r){if(r.startsWith("/"))return this.normalizePath(r);let n=e==="/"?`/${r}`:`${e}/${r}`;return this.normalizePath(n)}async chmod(e,r){let n=this.normalizePath(e),s=this.data.get(n);if(!s)throw new Error(`ENOENT: no such file or directory, chmod '${e}'`);s.mode=r}async symlink(e,r){let n=this.normalizePath(r);if(this.data.has(n))throw new Error(`EEXIST: file already exists, symlink '${r}'`);this.ensureParentDirs(n),this.data.set(n,{type:"symlink",target:e,mode:511,mtime:new Date})}async link(e,r){let n=this.normalizePath(e),s=this.normalizePath(r),i=this.data.get(n);if(!i)throw new Error(`ENOENT: no such file or directory, link '${e}'`);if(i.type!=="file")throw new Error(`EPERM: operation not permitted, link '${e}'`);if(this.data.has(s))throw new Error(`EEXIST: file already exists, link '${r}'`);this.ensureParentDirs(s),this.data.set(s,{type:"file",content:i.content,mode:i.mode,mtime:i.mtime})}async readlink(e){let r=this.normalizePath(e),n=this.data.get(r);if(!n)throw new Error(`ENOENT: no such file or directory, readlink '${e}'`);if(n.type!=="symlink")throw new Error(`EINVAL: invalid argument, readlink '${e}'`);return n.target}};var Pu="5.1.0(1)-release",Fu="Linux version 5.15.0-generic (just-bash) #1 SMP PREEMPT";function gr(){return{pid:process.pid,ppid:process.ppid,uid:process.getuid?.()??1e3,gid:process.getgid?.()??1e3}}function Ou(){let{pid:t,ppid:e,uid:r,gid:n}=gr();return`Name: bash
606
+ `,exitCode:1};let s=n.url;s.match(/^https?:\/\//)||(s=`https://${s}`);try{let{body:i,contentType:o}=await fy(n,e),a=dy(n,o),l=await e.fetch(s,{method:n.method,headers:Object.keys(a).length>0?a:void 0,body:i,followRedirects:n.followRedirects,timeoutMs:n.timeoutMs});if(await py(n,l.headers,e),n.failSilently&&l.status>=400)return{stdout:"",stderr:n.showError||!n.silent?`curl: (22) The requested URL returned error: ${l.status}
607
+ `:"",exitCode:22};let c=hy(n,l,s);if(n.outputFile||n.useRemoteName){let u=n.outputFile||Uu(s),f=e.fs.resolvePath(e.cwd,u);await e.fs.writeFile(f,n.headOnly?"":l.body),n.verbose||(c=""),n.writeOut&&(c=Ys(n.writeOut,{status:l.status,headers:l.headers,url:l.url,bodyLength:l.body.length}))}return{stdout:c,stderr:"",exitCode:0}}catch(i){let o=he(i),a=1;return o.includes("Network access denied")?a=7:o.includes("HTTP method")&&o.includes("not allowed")?a=3:o.includes("Redirect target not in allow-list")||o.includes("Too many redirects")?a=47:o.includes("aborted")&&(a=28),{stdout:"",stderr:!n.silent||n.showError?`curl: (${a}) ${o}
608
+ `:"",exitCode:a}}}}});var ei=[{name:"echo",load:async()=>(await Promise.resolve().then(()=>(Yi(),Ji))).echoCommand},{name:"cat",load:async()=>(await Promise.resolve().then(()=>(to(),eo))).catCommand},{name:"printf",load:async()=>(await Promise.resolve().then(()=>(io(),so))).printfCommand},{name:"ls",load:async()=>(await Promise.resolve().then(()=>(co(),lo))).lsCommand},{name:"mkdir",load:async()=>(await Promise.resolve().then(()=>(fo(),uo))).mkdirCommand},{name:"touch",load:async()=>(await Promise.resolve().then(()=>(ho(),po))).touchCommand},{name:"rm",load:async()=>(await Promise.resolve().then(()=>(go(),mo))).rmCommand},{name:"cp",load:async()=>(await Promise.resolve().then(()=>(xo(),yo))).cpCommand},{name:"mv",load:async()=>(await Promise.resolve().then(()=>(Eo(),wo))).mvCommand},{name:"ln",load:async()=>(await Promise.resolve().then(()=>(So(),bo))).lnCommand},{name:"chmod",load:async()=>(await Promise.resolve().then(()=>(ko(),Ao))).chmodCommand},{name:"pwd",load:async()=>(await Promise.resolve().then(()=>(Io(),No))).pwdCommand},{name:"readlink",load:async()=>(await Promise.resolve().then(()=>($o(),vo))).readlinkCommand},{name:"head",load:async()=>(await Promise.resolve().then(()=>(To(),Fo))).headCommand},{name:"tail",load:async()=>(await Promise.resolve().then(()=>(Do(),Oo))).tailCommand},{name:"wc",load:async()=>(await Promise.resolve().then(()=>(_o(),Mo))).wcCommand},{name:"stat",load:async()=>(await Promise.resolve().then(()=>(Uo(),Wo))).statCommand},{name:"grep",load:async()=>(await Promise.resolve().then(()=>(Xr(),Qr))).grepCommand},{name:"fgrep",load:async()=>(await Promise.resolve().then(()=>(Xr(),Qr))).fgrepCommand},{name:"egrep",load:async()=>(await Promise.resolve().then(()=>(Xr(),Qr))).egrepCommand},{name:"sed",load:async()=>(await Promise.resolve().then(()=>(Jo(),Xo))).sedCommand},{name:"awk",load:async()=>(await Promise.resolve().then(()=>(ba(),Ea))).awkCommand2},{name:"sort",load:async()=>(await Promise.resolve().then(()=>(Pa(),Ra))).sortCommand},{name:"uniq",load:async()=>(await Promise.resolve().then(()=>(Ta(),Fa))).uniqCommand},{name:"comm",load:async()=>(await Promise.resolve().then(()=>(Da(),Oa))).commCommand},{name:"cut",load:async()=>(await Promise.resolve().then(()=>(Ma(),La))).cutCommand},{name:"paste",load:async()=>(await Promise.resolve().then(()=>(Wa(),Ba))).pasteCommand},{name:"tr",load:async()=>(await Promise.resolve().then(()=>(ja(),za))).trCommand},{name:"rev",load:async()=>(await Promise.resolve().then(()=>(Ga(),Ha))).rev},{name:"nl",load:async()=>(await Promise.resolve().then(()=>(Ka(),Va))).nl},{name:"fold",load:async()=>(await Promise.resolve().then(()=>(Xa(),Qa))).fold},{name:"expand",load:async()=>(await Promise.resolve().then(()=>(el(),Ya))).expand},{name:"unexpand",load:async()=>(await Promise.resolve().then(()=>(sl(),nl))).unexpand},{name:"strings",load:async()=>(await Promise.resolve().then(()=>(ll(),al))).strings},{name:"split",load:async()=>(await Promise.resolve().then(()=>(fl(),ul))).split},{name:"column",load:async()=>(await Promise.resolve().then(()=>(hl(),pl))).column},{name:"join",load:async()=>(await Promise.resolve().then(()=>(gl(),ml))).join},{name:"tee",load:async()=>(await Promise.resolve().then(()=>(xl(),yl))).teeCommand},{name:"find",load:async()=>(await Promise.resolve().then(()=>(Il(),Nl))).findCommand},{name:"basename",load:async()=>(await Promise.resolve().then(()=>($l(),vl))).basenameCommand},{name:"dirname",load:async()=>(await Promise.resolve().then(()=>(Pl(),Rl))).dirnameCommand},{name:"tree",load:async()=>(await Promise.resolve().then(()=>(Ol(),Tl))).treeCommand},{name:"du",load:async()=>(await Promise.resolve().then(()=>(Ml(),Ll))).duCommand},{name:"env",load:async()=>(await Promise.resolve().then(()=>(Ss(),bs))).envCommand},{name:"printenv",load:async()=>(await Promise.resolve().then(()=>(Ss(),bs))).printenvCommand},{name:"alias",load:async()=>(await Promise.resolve().then(()=>(As(),Cs))).aliasCommand},{name:"unalias",load:async()=>(await Promise.resolve().then(()=>(As(),Cs))).unaliasCommand},{name:"history",load:async()=>(await Promise.resolve().then(()=>(Wl(),Bl))).historyCommand},{name:"xargs",load:async()=>(await Promise.resolve().then(()=>(zl(),Ul))).xargsCommand},{name:"true",load:async()=>(await Promise.resolve().then(()=>(Ns(),ks))).trueCommand},{name:"false",load:async()=>(await Promise.resolve().then(()=>(Ns(),ks))).falseCommand},{name:"clear",load:async()=>(await Promise.resolve().then(()=>(Hl(),jl))).clearCommand},{name:"bash",load:async()=>(await Promise.resolve().then(()=>(vs(),Is))).bashCommand},{name:"sh",load:async()=>(await Promise.resolve().then(()=>(vs(),Is))).shCommand},{name:"jq",load:async()=>(await Promise.resolve().then(()=>(rc(),tc))).jqCommand},{name:"base64",load:async()=>(await Promise.resolve().then(()=>(ic(),sc))).base64Command},{name:"diff",load:async()=>(await Promise.resolve().then(()=>(lc(),ac))).diffCommand},{name:"date",load:async()=>(await Promise.resolve().then(()=>(uc(),cc))).dateCommand},{name:"sleep",load:async()=>(await Promise.resolve().then(()=>(dc(),fc))).sleepCommand},{name:"timeout",load:async()=>(await Promise.resolve().then(()=>(hc(),pc))).timeoutCommand},{name:"seq",load:async()=>(await Promise.resolve().then(()=>(gc(),mc))).seqCommand},{name:"expr",load:async()=>(await Promise.resolve().then(()=>(xc(),yc))).exprCommand},{name:"md5sum",load:async()=>(await Promise.resolve().then(()=>(bc(),Ec))).md5sumCommand},{name:"sha1sum",load:async()=>(await Promise.resolve().then(()=>(Cc(),Sc))).sha1sumCommand},{name:"sha256sum",load:async()=>(await Promise.resolve().then(()=>(kc(),Ac))).sha256sumCommand},{name:"file",load:async()=>(await Promise.resolve().then(()=>(xu(),yu))).fileCommand},{name:"html-to-markdown",load:async()=>(await Promise.resolve().then(()=>(Eu(),wu))).htmlToMarkdownCommand},{name:"help",load:async()=>(await Promise.resolve().then(()=>(Su(),bu))).helpCommand},{name:"which",load:async()=>(await Promise.resolve().then(()=>(Au(),Cu))).whichCommand},{name:"tac",load:async()=>(await Promise.resolve().then(()=>(Nu(),ku))).tac},{name:"hostname",load:async()=>(await Promise.resolve().then(()=>(vu(),Iu))).hostname},{name:"od",load:async()=>(await Promise.resolve().then(()=>(Ru(),$u))).od},{name:"gzip",load:async()=>(await Promise.resolve().then(()=>(Cn(),Sn))).gzipCommand},{name:"gunzip",load:async()=>(await Promise.resolve().then(()=>(Cn(),Sn))).gunzipCommand},{name:"zcat",load:async()=>(await Promise.resolve().then(()=>(Cn(),Sn))).zcatCommand}],qu=[{name:"curl",load:async()=>(await Promise.resolve().then(()=>(Hu(),ju))).curlCommand}],Gu=new Map;function Vu(t){return{name:t.name,async execute(e,r){let n=Gu.get(t.name);return n||(n=await t.load(),Gu.set(t.name,n)),n.execute(e,r)}}}function gy(){return ei.map(t=>t.name)}function yy(){return qu.map(t=>t.name)}function Ku(t){return(t?ei.filter(r=>t.includes(r.name)):ei).map(Vu)}function Zu(){return qu.map(Vu)}function Qu(t){return"load"in t&&typeof t.load=="function"}function xy(t,e){return{name:t,execute:e}}function Xu(t){let e=null;return{name:t.name,async execute(r,n){return e||(e=await t.load()),e.execute(r,n)}}}var wy=new TextEncoder,Ey=new TextDecoder;function ti(t,e){if(t instanceof Uint8Array)return t;switch(e){case"base64":return Uint8Array.from(atob(t),r=>r.charCodeAt(0));case"hex":{let r=new Uint8Array(t.length/2);for(let n=0;n<t.length;n+=2)r[n/2]=parseInt(t.slice(n,n+2),16);return r}case"binary":case"latin1":return Uint8Array.from(t,r=>r.charCodeAt(0));default:return wy.encode(t)}}function Ju(t,e){switch(e){case"base64":return btoa(String.fromCharCode(...t));case"hex":return Array.from(t).map(r=>r.toString(16).padStart(2,"0")).join("");case"binary":case"latin1":return String.fromCharCode(...t);default:return Ey.decode(t)}}function An(t){if(t!=null)return typeof t=="string"?t:t.encoding??void 0}var kn=new TextEncoder;function by(t){return typeof t=="object"&&t!==null&&!(t instanceof Uint8Array)&&"content"in t}var _t=class{data=new Map;constructor(e){if(this.data.set("/",{type:"directory",mode:493,mtime:new Date}),e)for(let[r,n]of Object.entries(e))by(n)?this.writeFileSync(r,n.content,void 0,{mode:n.mode,mtime:n.mtime}):this.writeFileSync(r,n)}normalizePath(e){if(!e||e==="/")return"/";let r=e.endsWith("/")&&e!=="/"?e.slice(0,-1):e;r.startsWith("/")||(r=`/${r}`);let n=r.split("/").filter(i=>i&&i!=="."),s=[];for(let i of n)i===".."?s.pop():s.push(i);return`/${s.join("/")}`||"/"}dirname(e){let r=this.normalizePath(e);if(r==="/")return"/";let n=r.lastIndexOf("/");return n===0?"/":r.slice(0,n)}ensureParentDirs(e){let r=this.dirname(e);r!=="/"&&(this.data.has(r)||(this.ensureParentDirs(r),this.data.set(r,{type:"directory",mode:493,mtime:new Date})))}writeFileSync(e,r,n,s){let i=this.normalizePath(e);this.ensureParentDirs(i);let o=An(n),a=ti(r,o);this.data.set(i,{type:"file",content:a,mode:s?.mode??420,mtime:s?.mtime??new Date})}async readFile(e,r){let n=await this.readFileBuffer(e),s=An(r);return Ju(n,s)}async readFileBuffer(e){let r=this.normalizePath(e),n=this.data.get(r),s=r;if(!n)throw new Error(`ENOENT: no such file or directory, open '${e}'`);let i=new Set;for(;n&&n.type==="symlink";){if(i.has(s))throw new Error(`ELOOP: too many levels of symbolic links, open '${e}'`);i.add(s),s=this.resolveSymlink(s,n.target),n=this.data.get(s)}if(!n)throw new Error(`ENOENT: no such file or directory, open '${e}'`);if(n.type!=="file")throw new Error(`EISDIR: illegal operation on a directory, read '${e}'`);return n.content instanceof Uint8Array?n.content:kn.encode(n.content)}async writeFile(e,r,n){this.writeFileSync(e,r,n)}async appendFile(e,r,n){let s=this.normalizePath(e),i=this.data.get(s);if(i&&i.type==="directory")throw new Error(`EISDIR: illegal operation on a directory, write '${e}'`);let o=An(n),a=ti(r,o);if(i?.type==="file"){let l=i.content instanceof Uint8Array?i.content:kn.encode(i.content),c=new Uint8Array(l.length+a.length);c.set(l),c.set(a,l.length),this.data.set(s,{type:"file",content:c,mode:i.mode,mtime:new Date})}else this.writeFileSync(e,r,n)}async exists(e){return this.data.has(this.normalizePath(e))}async stat(e){let r=this.normalizePath(e),n=this.data.get(r);if(!n)throw new Error(`ENOENT: no such file or directory, stat '${e}'`);if(n.type==="symlink"){let i=this.resolveSymlink(r,n.target),o=this.data.get(i);if(!o)throw new Error(`ENOENT: no such file or directory, stat '${e}'`);n=o}let s=0;return n.type==="file"&&n.content&&(n.content instanceof Uint8Array?s=n.content.length:s=kn.encode(n.content).length),{isFile:n.type==="file",isDirectory:n.type==="directory",isSymbolicLink:!1,mode:n.mode,size:s,mtime:n.mtime||new Date}}async lstat(e){let r=this.normalizePath(e),n=this.data.get(r);if(!n)throw new Error(`ENOENT: no such file or directory, lstat '${e}'`);if(n.type==="symlink")return{isFile:!1,isDirectory:!1,isSymbolicLink:!0,mode:n.mode,size:n.target.length,mtime:n.mtime||new Date};let s=0;return n.type==="file"&&n.content&&(n.content instanceof Uint8Array?s=n.content.length:s=kn.encode(n.content).length),{isFile:n.type==="file",isDirectory:n.type==="directory",isSymbolicLink:!1,mode:n.mode,size:s,mtime:n.mtime||new Date}}resolveSymlink(e,r){if(r.startsWith("/"))return this.normalizePath(r);let n=this.dirname(e);return this.normalizePath(n==="/"?`/${r}`:`${n}/${r}`)}async mkdir(e,r){this.mkdirSync(e,r)}mkdirSync(e,r){let n=this.normalizePath(e);if(this.data.has(n)){if(this.data.get(n)?.type==="file")throw new Error(`EEXIST: file already exists, mkdir '${e}'`);if(!r?.recursive)throw new Error(`EEXIST: directory already exists, mkdir '${e}'`);return}let s=this.dirname(n);if(s!=="/"&&!this.data.has(s))if(r?.recursive)this.mkdirSync(s,{recursive:!0});else throw new Error(`ENOENT: no such file or directory, mkdir '${e}'`);this.data.set(n,{type:"directory",mode:493,mtime:new Date})}async readdir(e){return(await this.readdirWithFileTypes(e)).map(n=>n.name)}async readdirWithFileTypes(e){let r=this.normalizePath(e),n=this.data.get(r);if(!n)throw new Error(`ENOENT: no such file or directory, scandir '${e}'`);if(n.type!=="directory")throw new Error(`ENOTDIR: not a directory, scandir '${e}'`);let s=r==="/"?"/":`${r}/`,i=new Map;for(let[o,a]of this.data.entries())if(o!==r&&o.startsWith(s)){let l=o.slice(s.length),c=l.split("/")[0];c&&!l.includes("/",c.length)&&!i.has(c)&&i.set(c,{name:c,isFile:a.type==="file",isDirectory:a.type==="directory",isSymbolicLink:a.type==="symlink"})}return Array.from(i.values()).sort((o,a)=>o.name<a.name?-1:o.name>a.name?1:0)}async rm(e,r){let n=this.normalizePath(e),s=this.data.get(n);if(!s){if(r?.force)return;throw new Error(`ENOENT: no such file or directory, rm '${e}'`)}if(s.type==="directory"){let i=await this.readdir(n);if(i.length>0){if(!r?.recursive)throw new Error(`ENOTEMPTY: directory not empty, rm '${e}'`);for(let o of i){let a=n==="/"?`/${o}`:`${n}/${o}`;await this.rm(a,r)}}}this.data.delete(n)}async cp(e,r,n){let s=this.normalizePath(e),i=this.normalizePath(r),o=this.data.get(s);if(!o)throw new Error(`ENOENT: no such file or directory, cp '${e}'`);if(o.type==="file")this.ensureParentDirs(i),this.data.set(i,{...o});else if(o.type==="directory"){if(!n?.recursive)throw new Error(`EISDIR: is a directory, cp '${e}'`);await this.mkdir(i,{recursive:!0});let a=await this.readdir(s);for(let l of a){let c=s==="/"?`/${l}`:`${s}/${l}`,u=i==="/"?`/${l}`:`${i}/${l}`;await this.cp(c,u,n)}}}async mv(e,r){await this.cp(e,r,{recursive:!0}),await this.rm(e,{recursive:!0})}getAllPaths(){return Array.from(this.data.keys())}resolvePath(e,r){if(r.startsWith("/"))return this.normalizePath(r);let n=e==="/"?`/${r}`:`${e}/${r}`;return this.normalizePath(n)}async chmod(e,r){let n=this.normalizePath(e),s=this.data.get(n);if(!s)throw new Error(`ENOENT: no such file or directory, chmod '${e}'`);s.mode=r}async symlink(e,r){let n=this.normalizePath(r);if(this.data.has(n))throw new Error(`EEXIST: file already exists, symlink '${r}'`);this.ensureParentDirs(n),this.data.set(n,{type:"symlink",target:e,mode:511,mtime:new Date})}async link(e,r){let n=this.normalizePath(e),s=this.normalizePath(r),i=this.data.get(n);if(!i)throw new Error(`ENOENT: no such file or directory, link '${e}'`);if(i.type!=="file")throw new Error(`EPERM: operation not permitted, link '${e}'`);if(this.data.has(s))throw new Error(`EEXIST: file already exists, link '${r}'`);this.ensureParentDirs(s),this.data.set(s,{type:"file",content:i.content,mode:i.mode,mtime:i.mtime})}async readlink(e){let r=this.normalizePath(e),n=this.data.get(r);if(!n)throw new Error(`ENOENT: no such file or directory, readlink '${e}'`);if(n.type!=="symlink")throw new Error(`EINVAL: invalid argument, readlink '${e}'`);return n.target}};var Yu="5.1.0(1)-release",ef="Linux version 5.15.0-generic (just-bash) #1 SMP PREEMPT";function Fr(){return{pid:process.pid,ppid:process.ppid,uid:process.getuid?.()??1e3,gid:process.getgid?.()??1e3}}function tf(){let{pid:t,ppid:e,uid:r,gid:n}=Fr();return`Name: bash
609
609
  State: R (running)
610
610
  Pid: ${t}
611
611
  PPid: ${e}
612
612
  Uid: ${r} ${r} ${r} ${r}
613
613
  Gid: ${n} ${n} ${n} ${n}
614
- `}function Zg(t){let e=t;return typeof e.mkdirSync=="function"&&typeof e.writeFileSync=="function"}function Qg(t,e){t.mkdirSync("/bin",{recursive:!0}),t.mkdirSync("/usr/bin",{recursive:!0}),e&&(t.mkdirSync("/home/user",{recursive:!0}),t.mkdirSync("/tmp",{recursive:!0}))}function Xg(t){t.mkdirSync("/dev",{recursive:!0}),t.writeFileSync("/dev/null",""),t.writeFileSync("/dev/zero",new Uint8Array(0)),t.writeFileSync("/dev/stdin",""),t.writeFileSync("/dev/stdout",""),t.writeFileSync("/dev/stderr","")}function Jg(t){t.mkdirSync("/proc/self/fd",{recursive:!0}),t.writeFileSync("/proc/version",`${Fu}
614
+ `}function Sy(t){let e=t;return typeof e.mkdirSync=="function"&&typeof e.writeFileSync=="function"}function Cy(t,e){t.mkdirSync("/bin",{recursive:!0}),t.mkdirSync("/usr/bin",{recursive:!0}),e&&(t.mkdirSync("/home/user",{recursive:!0}),t.mkdirSync("/tmp",{recursive:!0}))}function Ay(t){t.mkdirSync("/dev",{recursive:!0}),t.writeFileSync("/dev/null",""),t.writeFileSync("/dev/zero",new Uint8Array(0)),t.writeFileSync("/dev/stdin",""),t.writeFileSync("/dev/stdout",""),t.writeFileSync("/dev/stderr","")}function ky(t){t.mkdirSync("/proc/self/fd",{recursive:!0}),t.writeFileSync("/proc/version",`${ef}
615
615
  `),t.writeFileSync("/proc/self/exe","/bin/bash"),t.writeFileSync("/proc/self/cmdline","bash\0"),t.writeFileSync("/proc/self/comm",`bash
616
- `),t.writeFileSync("/proc/self/status",Ou()),t.writeFileSync("/proc/self/fd/0","/dev/stdin"),t.writeFileSync("/proc/self/fd/1","/dev/stdout"),t.writeFileSync("/proc/self/fd/2","/dev/stderr")}function Tu(t,e){Zg(t)&&(Qg(t,e),Xg(t),Jg(t))}oe();var Yg=["yq","xan","sqlite3"];function Du(t){return Yg.includes(t)}oe();function Ee(t,e){return{type:"ArithmeticExpression",expression:et(t,e,0).expr}}function et(t,e,r){return ey(t,e,r)}function ey(t,e,r){let{expr:n,pos:s}=un(t,e,r);for(s=he(e,s);e[s]===",";){s++;let{expr:i,pos:o}=un(t,e,s);n={type:"ArithBinary",operator:",",left:n,right:i},s=he(e,o)}return{expr:n,pos:s}}function un(t,e,r){let{expr:n,pos:s}=ty(t,e,r);if(s=he(e,s),e[s]==="?"){s++;let{expr:i,pos:o}=et(t,e,s);if(s=he(e,o),e[s]===":"){s++;let{expr:a,pos:l}=et(t,e,s);return{expr:{type:"ArithTernary",condition:n,consequent:i,alternate:a},pos:l}}}return{expr:n,pos:s}}function ty(t,e,r){let{expr:n,pos:s}=Lu(t,e,r);for(;s=he(e,s),e.slice(s,s+2)==="||";){s+=2;let{expr:i,pos:o}=Lu(t,e,s);n={type:"ArithBinary",operator:"||",left:n,right:i},s=o}return{expr:n,pos:s}}function Lu(t,e,r){let{expr:n,pos:s}=Mu(t,e,r);for(;s=he(e,s),e.slice(s,s+2)==="&&";){s+=2;let{expr:i,pos:o}=Mu(t,e,s);n={type:"ArithBinary",operator:"&&",left:n,right:i},s=o}return{expr:n,pos:s}}function Mu(t,e,r){let{expr:n,pos:s}=_u(t,e,r);for(;s=he(e,s),e[s]==="|"&&e[s+1]!=="|";){s++;let{expr:i,pos:o}=_u(t,e,s);n={type:"ArithBinary",operator:"|",left:n,right:i},s=o}return{expr:n,pos:s}}function _u(t,e,r){let{expr:n,pos:s}=Bu(t,e,r);for(;s=he(e,s),e[s]==="^";){s++;let{expr:i,pos:o}=Bu(t,e,s);n={type:"ArithBinary",operator:"^",left:n,right:i},s=o}return{expr:n,pos:s}}function Bu(t,e,r){let{expr:n,pos:s}=Wu(t,e,r);for(;s=he(e,s),e[s]==="&"&&e[s+1]!=="&";){s++;let{expr:i,pos:o}=Wu(t,e,s);n={type:"ArithBinary",operator:"&",left:n,right:i},s=o}return{expr:n,pos:s}}function Wu(t,e,r){let{expr:n,pos:s}=Uu(t,e,r);for(;s=he(e,s),e.slice(s,s+2)==="=="||e.slice(s,s+2)==="!=";){let i=e.slice(s,s+2);s+=2;let{expr:o,pos:a}=Uu(t,e,s);n={type:"ArithBinary",operator:i,left:n,right:o},s=a}return{expr:n,pos:s}}function Uu(t,e,r){let{expr:n,pos:s}=Ms(t,e,r);for(;;)if(s=he(e,s),e.slice(s,s+2)==="<="||e.slice(s,s+2)===">="){let i=e.slice(s,s+2);s+=2;let{expr:o,pos:a}=Ms(t,e,s);n={type:"ArithBinary",operator:i,left:n,right:o},s=a}else if(e[s]==="<"||e[s]===">"){let i=e[s];s++;let{expr:o,pos:a}=Ms(t,e,s);n={type:"ArithBinary",operator:i,left:n,right:o},s=a}else break;return{expr:n,pos:s}}function Ms(t,e,r){let{expr:n,pos:s}=ju(t,e,r);for(;s=he(e,s),e.slice(s,s+2)==="<<"||e.slice(s,s+2)===">>";){let i=e.slice(s,s+2);s+=2;let{expr:o,pos:a}=ju(t,e,s);n={type:"ArithBinary",operator:i,left:n,right:o},s=a}return{expr:n,pos:s}}function ju(t,e,r){let{expr:n,pos:s}=zu(t,e,r);for(;s=he(e,s),(e[s]==="+"||e[s]==="-")&&e[s+1]!==e[s];){let i=e[s];s++;let{expr:o,pos:a}=zu(t,e,s);n={type:"ArithBinary",operator:i,left:n,right:o},s=a}return{expr:n,pos:s}}function zu(t,e,r){let{expr:n,pos:s}=cn(t,e,r);for(;;)if(s=he(e,s),e[s]==="*"&&e[s+1]!=="*"){s++;let{expr:i,pos:o}=cn(t,e,s);n={type:"ArithBinary",operator:"*",left:n,right:i},s=o}else if(e[s]==="/"||e[s]==="%"){let i=e[s];s++;let{expr:o,pos:a}=cn(t,e,s);n={type:"ArithBinary",operator:i,left:n,right:o},s=a}else break;return{expr:n,pos:s}}function cn(t,e,r){let{expr:n,pos:s}=_s(t,e,r),i=he(e,s);if(e.slice(i,i+2)==="**"){i+=2;let{expr:o,pos:a}=cn(t,e,i);return{expr:{type:"ArithBinary",operator:"**",left:n,right:o},pos:a}}return{expr:n,pos:s}}function _s(t,e,r){let n=he(e,r);if(e.slice(n,n+2)==="++"||e.slice(n,n+2)==="--"){let s=e.slice(n,n+2);n+=2;let{expr:i,pos:o}=_s(t,e,n);return{expr:{type:"ArithUnary",operator:s,operand:i,prefix:!0},pos:o}}if(e[n]==="+"||e[n]==="-"||e[n]==="!"||e[n]==="~"){let s=e[n];n++;let{expr:i,pos:o}=_s(t,e,n);return{expr:{type:"ArithUnary",operator:s,operand:i,prefix:!0},pos:o}}return ny(t,e,n)}function ry(t,e){let r=t[e];return r==="$"||r==="`"}function ny(t,e,r){let{expr:n,pos:s}=Hu(t,e,r),i=[n];for(;ry(e,s);){let{expr:o,pos:a}=Hu(t,e,s);i.push(o),s=a}if(i.length>1&&(n={type:"ArithConcat",parts:i}),s=he(e,s),e.slice(s,s+2)==="++"||e.slice(s,s+2)==="--"){let o=e.slice(s,s+2);return s+=2,{expr:{type:"ArithUnary",operator:o,operand:n,prefix:!1},pos:s}}return{expr:n,pos:s}}function Hu(t,e,r){let n=he(e,r);if(e.slice(n,n+3)==="$(("){n+=3;let s=1,i=n;for(;n<e.length-1&&s>0;)e[n]==="("&&e[n+1]==="("?(s++,n+=2):e[n]===")"&&e[n+1]===")"?(s--,s>0&&(n+=2)):n++;let o=e.slice(i,n),{expr:a}=et(t,o,0);return n+=2,{expr:{type:"ArithNested",expression:a},pos:n}}if(e.slice(n,n+2)==="$("&&e[n+2]!=="("){n+=2;let s=1,i=n;for(;n<e.length&&s>0;)e[n]==="("?s++:e[n]===")"&&s--,s>0&&n++;let o=e.slice(i,n);return n++,{expr:{type:"ArithCommandSubst",command:o},pos:n}}if(e[n]==="`"){n++;let s=n;for(;n<e.length&&e[n]!=="`";)n++;let i=e.slice(s,n);return e[n]==="`"&&n++,{expr:{type:"ArithCommandSubst",command:i},pos:n}}if(e[n]==="("){n++;let{expr:s,pos:i}=et(t,e,n);return n=he(e,i),e[n]===")"&&n++,{expr:{type:"ArithGroup",expression:s},pos:n}}if(/[0-9]/.test(e[n])){let s="",i=!1;for(;n<e.length;){let a=e[n];if(i)if(/[0-9a-zA-Z@_]/.test(a))s+=a,n++;else break;else if(a==="#")i=!0,s+=a,n++;else if(/[0-9a-fA-FxX]/.test(a))s+=a,n++;else break}if(e[n]==="."&&/[0-9]/.test(e[n+1]))throw new xe(`${s}.${e[n+1]}...: syntax error: invalid arithmetic operator`);if(e[n]==="["){let a=e.slice(n).trim();return{expr:{type:"ArithNumberSubscript",number:s,errorToken:a},pos:e.length}}return{expr:{type:"ArithNumber",value:Zt(s)},pos:n}}if(e[n]==="$"&&e[n+1]==="{"){let s=n+2,i=1,o=s;for(;o<e.length&&i>0;)e[o]==="{"?i++:e[o]==="}"&&i--,i>0&&o++;let a=e.slice(s,o),l=o+1;if(e[l]==="#"){let c=l+1;for(;c<e.length&&/[0-9a-zA-Z@_]/.test(e[c]);)c++;let u=e.slice(l+1,c);return{expr:{type:"ArithDynamicBase",baseExpr:a,value:u},pos:c}}if(/[0-9]/.test(e[l])||e[l]==="x"||e[l]==="X"){let c=l;if(e[l]==="x"||e[l]==="X")for(c++;c<e.length&&/[0-9a-fA-F]/.test(e[c]);)c++;else for(;c<e.length&&/[0-9]/.test(e[c]);)c++;let u=e.slice(l,c);return{expr:{type:"ArithDynamicNumber",prefix:a,suffix:u},pos:c}}return n=l,{expr:{type:"ArithBracedExpansion",content:a},pos:n}}if(e[n]==="$"&&n+1<e.length&&/[0-9]/.test(e[n+1])){n++;let s="";for(;n<e.length&&/[0-9]/.test(e[n]);)s+=e[n],n++;return{expr:{type:"ArithVariable",name:s},pos:n}}if(e[n]==="$"&&n+1<e.length&&/[a-zA-Z_]/.test(e[n+1])&&n++,/[a-zA-Z_]/.test(e[n])){let s="";for(;n<e.length&&/[a-zA-Z0-9_]/.test(e[n]);)s+=e[n],n++;if(e[n]==="["){n++;let o;if(e[n]==="'"||e[n]==='"'){let c=e[n];for(n++,o="";n<e.length&&e[n]!==c;)o+=e[n],n++;e[n]===c&&n++,n=he(e,n),e[n]==="]"&&n++}let a;if(o===void 0){let{expr:c,pos:u}=et(t,e,n);a=c,n=u,e[n]==="]"&&n++}if(n=he(e,n),e[n]==="["&&a)return{expr:{type:"ArithDoubleSubscript",array:s,index:a},pos:n};let l=["=","+=","-=","*=","/=","%=","<<=",">>=","&=","|=","^="];for(let c of l)if(e.slice(n,n+c.length)===c&&e.slice(n,n+c.length+1)!=="=="){n+=c.length;let{expr:u,pos:f}=un(t,e,n);return{expr:{type:"ArithAssignment",operator:c,variable:s,subscript:a,stringKey:o,value:u},pos:f}}return{expr:{type:"ArithArrayElement",array:s,index:a,stringKey:o},pos:n}}n=he(e,n);let i=["=","+=","-=","*=","/=","%=","<<=",">>=","&=","|=","^="];for(let o of i)if(e.slice(n,n+o.length)===o&&e.slice(n,n+o.length+1)!=="=="){n+=o.length;let{expr:a,pos:l}=un(t,e,n);return{expr:{type:"ArithAssignment",operator:o,variable:s,value:a},pos:l}}return{expr:{type:"ArithVariable",name:s},pos:n}}return{expr:{type:"ArithNumber",value:0},pos:n}}function Zt(t){if(t.includes("#")){let[e,r]=t.split("#"),n=Number.parseInt(e,10);if(n<2||n>64)return Number.NaN;if(n<=36)return Number.parseInt(r,n);let s=0;for(let i of r){let o;if(i>="0"&&i<="9")o=i.charCodeAt(0)-48;else if(i>="a"&&i<="z")o=i.charCodeAt(0)-97+10;else if(i>="A"&&i<="Z")o=i.charCodeAt(0)-65+36;else if(i==="@")o=62;else if(i==="_")o=63;else return Number.NaN;if(o>=n)return Number.NaN;s=s*n+o}return s}return t.startsWith("0x")||t.startsWith("0X")?Number.parseInt(t.slice(2),16):t.startsWith("0")&&t.length>1&&/^[0-9]+$/.test(t)?/[89]/.test(t)?Number.NaN:Number.parseInt(t,8):Number.parseInt(t,10)}function he(t,e){for(;e<t.length;){if(t[e]==="\\"&&t[e+1]===`
617
- `){e+=2;continue}if(/\s/.test(t[e])){e++;continue}break}return e}var O={script(t){return{type:"Script",statements:t}},statement(t,e=[],r=!1){return{type:"Statement",pipelines:t,operators:e,background:r}},pipeline(t,e=!1){return{type:"Pipeline",commands:t,negated:e}},simpleCommand(t,e=[],r=[],n=[]){return{type:"SimpleCommand",name:t,args:e,assignments:r,redirections:n}},word(t){return{type:"Word",parts:t}},literal(t){return{type:"Literal",value:t}},singleQuoted(t){return{type:"SingleQuoted",value:t}},doubleQuoted(t){return{type:"DoubleQuoted",parts:t}},escaped(t){return{type:"Escaped",value:t}},parameterExpansion(t,e=null){return{type:"ParameterExpansion",parameter:t,operation:e}},commandSubstitution(t,e=!1){return{type:"CommandSubstitution",body:t,legacy:e}},arithmeticExpansion(t){return{type:"ArithmeticExpansion",expression:t}},assignment(t,e,r=!1,n=null){return{type:"Assignment",name:t,value:e,append:r,array:n}},redirection(t,e,r=null){return{type:"Redirection",fd:r,operator:t,target:e}},hereDoc(t,e,r=!1,n=!1){return{type:"HereDoc",delimiter:t,content:e,stripTabs:r,quoted:n}},ifNode(t,e=null,r=[]){return{type:"If",clauses:t,elseBody:e,redirections:r}},forNode(t,e,r,n=[]){return{type:"For",variable:t,words:e,body:r,redirections:n}},whileNode(t,e,r=[]){return{type:"While",condition:t,body:e,redirections:r}},untilNode(t,e,r=[]){return{type:"Until",condition:t,body:e,redirections:r}},caseNode(t,e,r=[]){return{type:"Case",word:t,items:e,redirections:r}},caseItem(t,e,r=";;"){return{type:"CaseItem",patterns:t,body:e,terminator:r}},subshell(t,e=[]){return{type:"Subshell",body:t,redirections:e}},group(t,e=[]){return{type:"Group",body:t,redirections:e}},functionDef(t,e,r=[]){return{type:"FunctionDef",name:t,body:e,redirections:r}},conditionalCommand(t,e=[]){return{type:"ConditionalCommand",expression:t,redirections:e}},arithmeticCommand(t,e=[]){return{type:"ArithmeticCommand",expression:t,redirections:e}}};var y;(function(t){t.EOF="EOF",t.NEWLINE="NEWLINE",t.SEMICOLON="SEMICOLON",t.AMP="AMP",t.PIPE="PIPE",t.PIPE_AMP="PIPE_AMP",t.AND_AND="AND_AND",t.OR_OR="OR_OR",t.BANG="BANG",t.LESS="LESS",t.GREAT="GREAT",t.DLESS="DLESS",t.DGREAT="DGREAT",t.LESSAND="LESSAND",t.GREATAND="GREATAND",t.LESSGREAT="LESSGREAT",t.DLESSDASH="DLESSDASH",t.CLOBBER="CLOBBER",t.TLESS="TLESS",t.AND_GREAT="AND_GREAT",t.AND_DGREAT="AND_DGREAT",t.LPAREN="LPAREN",t.RPAREN="RPAREN",t.LBRACE="LBRACE",t.RBRACE="RBRACE",t.DSEMI="DSEMI",t.SEMI_AND="SEMI_AND",t.SEMI_SEMI_AND="SEMI_SEMI_AND",t.DBRACK_START="DBRACK_START",t.DBRACK_END="DBRACK_END",t.DPAREN_START="DPAREN_START",t.DPAREN_END="DPAREN_END",t.IF="IF",t.THEN="THEN",t.ELSE="ELSE",t.ELIF="ELIF",t.FI="FI",t.FOR="FOR",t.WHILE="WHILE",t.UNTIL="UNTIL",t.DO="DO",t.DONE="DONE",t.CASE="CASE",t.ESAC="ESAC",t.IN="IN",t.FUNCTION="FUNCTION",t.SELECT="SELECT",t.TIME="TIME",t.COPROC="COPROC",t.WORD="WORD",t.NAME="NAME",t.NUMBER="NUMBER",t.ASSIGNMENT_WORD="ASSIGNMENT_WORD",t.COMMENT="COMMENT",t.HEREDOC_CONTENT="HEREDOC_CONTENT"})(y||(y={}));var fn={if:y.IF,then:y.THEN,else:y.ELSE,elif:y.ELIF,fi:y.FI,for:y.FOR,while:y.WHILE,until:y.UNTIL,do:y.DO,done:y.DONE,case:y.CASE,esac:y.ESAC,in:y.IN,function:y.FUNCTION,select:y.SELECT,time:y.TIME,coproc:y.COPROC};function qu(t){let e=t.match(/^[a-zA-Z_][a-zA-Z0-9_]*/);if(!e)return!1;let r=t.slice(e[0].length);if(r===""||r==="+")return!0;if(r[0]==="["){let n=0,s=0;for(;s<r.length;s++)if(r[s]==="[")n++;else if(r[s]==="]"&&(n--,n===0))break;if(n!==0||s>=r.length)return!1;let i=r.slice(s+1);return i===""||i==="+"}return!1}var sy=[[";",";","&",y.SEMI_SEMI_AND],["<","<","<",y.TLESS],["&",">",">",y.AND_DGREAT]],iy=[["[","[",y.DBRACK_START],["]","]",y.DBRACK_END],["(","(",y.DPAREN_START],[")",")",y.DPAREN_END],["&","&",y.AND_AND],["|","|",y.OR_OR],[";",";",y.DSEMI],[";","&",y.SEMI_AND],["|","&",y.PIPE_AMP],[">",">",y.DGREAT],["<","&",y.LESSAND],[">","&",y.GREATAND],["<",">",y.LESSGREAT],[">","|",y.CLOBBER],["&",">",y.AND_GREAT]],oy={"|":y.PIPE,"&":y.AMP,";":y.SEMICOLON,"(":y.LPAREN,")":y.RPAREN,"<":y.LESS,">":y.GREAT};function ay(t){return/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(t)}var pn=class{input;pos=0;line=1;column=1;tokens=[];pendingHeredocs=[];constructor(e){this.input=e}tokenize(){let r=this.input.length,n=this.tokens,s=this.pendingHeredocs;for(;this.pos<r&&(this.skipWhitespace(),!(this.pos>=r));){if(s.length>0&&n.length>0&&n[n.length-1].type===y.NEWLINE){this.readHeredocContent();continue}let i=this.nextToken();i&&n.push(i)}return n.push({type:y.EOF,value:"",start:this.pos,end:this.pos,line:this.line,column:this.column}),n}skipWhitespace(){let e=this.input,r=e.length,n=this.pos,s=this.column,i=this.line;for(;n<r;){let o=e[n];if(o===" "||o===" ")n++,s++;else if(o==="\\"&&e[n+1]===`
616
+ `),t.writeFileSync("/proc/self/status",tf()),t.writeFileSync("/proc/self/fd/0","/dev/stdin"),t.writeFileSync("/proc/self/fd/1","/dev/stdout"),t.writeFileSync("/proc/self/fd/2","/dev/stderr")}function rf(t,e){Sy(t)&&(Cy(t,e),Ay(t),ky(t))}ie();var Ny=["yq","xan","sqlite3"];function nf(t){return Ny.includes(t)}ie();function Ae(t,e){return{type:"ArithmeticExpression",expression:ut(t,e,0).expr}}function ut(t,e,r){return Iy(t,e,r)}function Iy(t,e,r){let{expr:n,pos:s}=In(t,e,r);for(s=me(e,s);e[s]===",";){s++;let{expr:i,pos:o}=In(t,e,s);n={type:"ArithBinary",operator:",",left:n,right:i},s=me(e,o)}return{expr:n,pos:s}}function In(t,e,r){let{expr:n,pos:s}=vy(t,e,r);if(s=me(e,s),e[s]==="?"){s++;let{expr:i,pos:o}=ut(t,e,s);if(s=me(e,o),e[s]===":"){s++;let{expr:a,pos:l}=ut(t,e,s);return{expr:{type:"ArithTernary",condition:n,consequent:i,alternate:a},pos:l}}}return{expr:n,pos:s}}function vy(t,e,r){let{expr:n,pos:s}=sf(t,e,r);for(;s=me(e,s),e.slice(s,s+2)==="||";){s+=2;let{expr:i,pos:o}=sf(t,e,s);n={type:"ArithBinary",operator:"||",left:n,right:i},s=o}return{expr:n,pos:s}}function sf(t,e,r){let{expr:n,pos:s}=of(t,e,r);for(;s=me(e,s),e.slice(s,s+2)==="&&";){s+=2;let{expr:i,pos:o}=of(t,e,s);n={type:"ArithBinary",operator:"&&",left:n,right:i},s=o}return{expr:n,pos:s}}function of(t,e,r){let{expr:n,pos:s}=af(t,e,r);for(;s=me(e,s),e[s]==="|"&&e[s+1]!=="|";){s++;let{expr:i,pos:o}=af(t,e,s);n={type:"ArithBinary",operator:"|",left:n,right:i},s=o}return{expr:n,pos:s}}function af(t,e,r){let{expr:n,pos:s}=lf(t,e,r);for(;s=me(e,s),e[s]==="^";){s++;let{expr:i,pos:o}=lf(t,e,s);n={type:"ArithBinary",operator:"^",left:n,right:i},s=o}return{expr:n,pos:s}}function lf(t,e,r){let{expr:n,pos:s}=cf(t,e,r);for(;s=me(e,s),e[s]==="&"&&e[s+1]!=="&";){s++;let{expr:i,pos:o}=cf(t,e,s);n={type:"ArithBinary",operator:"&",left:n,right:i},s=o}return{expr:n,pos:s}}function cf(t,e,r){let{expr:n,pos:s}=uf(t,e,r);for(;s=me(e,s),e.slice(s,s+2)==="=="||e.slice(s,s+2)==="!=";){let i=e.slice(s,s+2);s+=2;let{expr:o,pos:a}=uf(t,e,s);n={type:"ArithBinary",operator:i,left:n,right:o},s=a}return{expr:n,pos:s}}function uf(t,e,r){let{expr:n,pos:s}=ri(t,e,r);for(;;)if(s=me(e,s),e.slice(s,s+2)==="<="||e.slice(s,s+2)===">="){let i=e.slice(s,s+2);s+=2;let{expr:o,pos:a}=ri(t,e,s);n={type:"ArithBinary",operator:i,left:n,right:o},s=a}else if(e[s]==="<"||e[s]===">"){let i=e[s];s++;let{expr:o,pos:a}=ri(t,e,s);n={type:"ArithBinary",operator:i,left:n,right:o},s=a}else break;return{expr:n,pos:s}}function ri(t,e,r){let{expr:n,pos:s}=ff(t,e,r);for(;s=me(e,s),e.slice(s,s+2)==="<<"||e.slice(s,s+2)===">>";){let i=e.slice(s,s+2);s+=2;let{expr:o,pos:a}=ff(t,e,s);n={type:"ArithBinary",operator:i,left:n,right:o},s=a}return{expr:n,pos:s}}function ff(t,e,r){let{expr:n,pos:s}=df(t,e,r);for(;s=me(e,s),(e[s]==="+"||e[s]==="-")&&e[s+1]!==e[s];){let i=e[s];s++;let{expr:o,pos:a}=df(t,e,s);n={type:"ArithBinary",operator:i,left:n,right:o},s=a}return{expr:n,pos:s}}function df(t,e,r){let{expr:n,pos:s}=Nn(t,e,r);for(;;)if(s=me(e,s),e[s]==="*"&&e[s+1]!=="*"){s++;let{expr:i,pos:o}=Nn(t,e,s);n={type:"ArithBinary",operator:"*",left:n,right:i},s=o}else if(e[s]==="/"||e[s]==="%"){let i=e[s];s++;let{expr:o,pos:a}=Nn(t,e,s);n={type:"ArithBinary",operator:i,left:n,right:o},s=a}else break;return{expr:n,pos:s}}function Nn(t,e,r){let{expr:n,pos:s}=ni(t,e,r),i=me(e,s);if(e.slice(i,i+2)==="**"){i+=2;let{expr:o,pos:a}=Nn(t,e,i);return{expr:{type:"ArithBinary",operator:"**",left:n,right:o},pos:a}}return{expr:n,pos:s}}function ni(t,e,r){let n=me(e,r);if(e.slice(n,n+2)==="++"||e.slice(n,n+2)==="--"){let s=e.slice(n,n+2);n+=2;let{expr:i,pos:o}=ni(t,e,n);return{expr:{type:"ArithUnary",operator:s,operand:i,prefix:!0},pos:o}}if(e[n]==="+"||e[n]==="-"||e[n]==="!"||e[n]==="~"){let s=e[n];n++;let{expr:i,pos:o}=ni(t,e,n);return{expr:{type:"ArithUnary",operator:s,operand:i,prefix:!0},pos:o}}return Ry(t,e,n)}function $y(t,e){let r=t[e];return r==="$"||r==="`"}function Ry(t,e,r){let{expr:n,pos:s}=pf(t,e,r),i=[n];for(;$y(e,s);){let{expr:o,pos:a}=pf(t,e,s);i.push(o),s=a}if(i.length>1&&(n={type:"ArithConcat",parts:i}),s=me(e,s),e.slice(s,s+2)==="++"||e.slice(s,s+2)==="--"){let o=e.slice(s,s+2);return s+=2,{expr:{type:"ArithUnary",operator:o,operand:n,prefix:!1},pos:s}}return{expr:n,pos:s}}function pf(t,e,r){let n=me(e,r);if(e.slice(n,n+3)==="$(("){n+=3;let s=1,i=n;for(;n<e.length-1&&s>0;)e[n]==="("&&e[n+1]==="("?(s++,n+=2):e[n]===")"&&e[n+1]===")"?(s--,s>0&&(n+=2)):n++;let o=e.slice(i,n),{expr:a}=ut(t,o,0);return n+=2,{expr:{type:"ArithNested",expression:a},pos:n}}if(e.slice(n,n+2)==="$("&&e[n+2]!=="("){n+=2;let s=1,i=n;for(;n<e.length&&s>0;)e[n]==="("?s++:e[n]===")"&&s--,s>0&&n++;let o=e.slice(i,n);return n++,{expr:{type:"ArithCommandSubst",command:o},pos:n}}if(e[n]==="`"){n++;let s=n;for(;n<e.length&&e[n]!=="`";)n++;let i=e.slice(s,n);return e[n]==="`"&&n++,{expr:{type:"ArithCommandSubst",command:i},pos:n}}if(e[n]==="("){n++;let{expr:s,pos:i}=ut(t,e,n);return n=me(e,i),e[n]===")"&&n++,{expr:{type:"ArithGroup",expression:s},pos:n}}if(/[0-9]/.test(e[n])){let s="",i=!1;for(;n<e.length;){let a=e[n];if(i)if(/[0-9a-zA-Z@_]/.test(a))s+=a,n++;else break;else if(a==="#")i=!0,s+=a,n++;else if(/[0-9a-fA-FxX]/.test(a))s+=a,n++;else break}if(e[n]==="."&&/[0-9]/.test(e[n+1]))throw new be(`${s}.${e[n+1]}...: syntax error: invalid arithmetic operator`);if(e[n]==="["){let a=e.slice(n).trim();return{expr:{type:"ArithNumberSubscript",number:s,errorToken:a},pos:e.length}}return{expr:{type:"ArithNumber",value:ar(s)},pos:n}}if(e[n]==="$"&&e[n+1]==="{"){let s=n+2,i=1,o=s;for(;o<e.length&&i>0;)e[o]==="{"?i++:e[o]==="}"&&i--,i>0&&o++;let a=e.slice(s,o),l=o+1;if(e[l]==="#"){let c=l+1;for(;c<e.length&&/[0-9a-zA-Z@_]/.test(e[c]);)c++;let u=e.slice(l+1,c);return{expr:{type:"ArithDynamicBase",baseExpr:a,value:u},pos:c}}if(/[0-9]/.test(e[l])||e[l]==="x"||e[l]==="X"){let c=l;if(e[l]==="x"||e[l]==="X")for(c++;c<e.length&&/[0-9a-fA-F]/.test(e[c]);)c++;else for(;c<e.length&&/[0-9]/.test(e[c]);)c++;let u=e.slice(l,c);return{expr:{type:"ArithDynamicNumber",prefix:a,suffix:u},pos:c}}return n=l,{expr:{type:"ArithBracedExpansion",content:a},pos:n}}if(e[n]==="$"&&n+1<e.length&&/[0-9]/.test(e[n+1])){n++;let s="";for(;n<e.length&&/[0-9]/.test(e[n]);)s+=e[n],n++;return{expr:{type:"ArithVariable",name:s},pos:n}}if(e[n]==="$"&&n+1<e.length&&/[a-zA-Z_]/.test(e[n+1])&&n++,/[a-zA-Z_]/.test(e[n])){let s="";for(;n<e.length&&/[a-zA-Z0-9_]/.test(e[n]);)s+=e[n],n++;if(e[n]==="["){n++;let o;if(e[n]==="'"||e[n]==='"'){let c=e[n];for(n++,o="";n<e.length&&e[n]!==c;)o+=e[n],n++;e[n]===c&&n++,n=me(e,n),e[n]==="]"&&n++}let a;if(o===void 0){let{expr:c,pos:u}=ut(t,e,n);a=c,n=u,e[n]==="]"&&n++}if(n=me(e,n),e[n]==="["&&a)return{expr:{type:"ArithDoubleSubscript",array:s,index:a},pos:n};let l=["=","+=","-=","*=","/=","%=","<<=",">>=","&=","|=","^="];for(let c of l)if(e.slice(n,n+c.length)===c&&e.slice(n,n+c.length+1)!=="=="){n+=c.length;let{expr:u,pos:f}=In(t,e,n);return{expr:{type:"ArithAssignment",operator:c,variable:s,subscript:a,stringKey:o,value:u},pos:f}}return{expr:{type:"ArithArrayElement",array:s,index:a,stringKey:o},pos:n}}n=me(e,n);let i=["=","+=","-=","*=","/=","%=","<<=",">>=","&=","|=","^="];for(let o of i)if(e.slice(n,n+o.length)===o&&e.slice(n,n+o.length+1)!=="=="){n+=o.length;let{expr:a,pos:l}=In(t,e,n);return{expr:{type:"ArithAssignment",operator:o,variable:s,value:a},pos:l}}return{expr:{type:"ArithVariable",name:s},pos:n}}return{expr:{type:"ArithNumber",value:0},pos:n}}function ar(t){if(t.includes("#")){let[e,r]=t.split("#"),n=Number.parseInt(e,10);if(n<2||n>64)return Number.NaN;if(n<=36)return Number.parseInt(r,n);let s=0;for(let i of r){let o;if(i>="0"&&i<="9")o=i.charCodeAt(0)-48;else if(i>="a"&&i<="z")o=i.charCodeAt(0)-97+10;else if(i>="A"&&i<="Z")o=i.charCodeAt(0)-65+36;else if(i==="@")o=62;else if(i==="_")o=63;else return Number.NaN;if(o>=n)return Number.NaN;s=s*n+o}return s}return t.startsWith("0x")||t.startsWith("0X")?Number.parseInt(t.slice(2),16):t.startsWith("0")&&t.length>1&&/^[0-9]+$/.test(t)?/[89]/.test(t)?Number.NaN:Number.parseInt(t,8):Number.parseInt(t,10)}function me(t,e){for(;e<t.length;){if(t[e]==="\\"&&t[e+1]===`
617
+ `){e+=2;continue}if(/\s/.test(t[e])){e++;continue}break}return e}var P={script(t){return{type:"Script",statements:t}},statement(t,e=[],r=!1){return{type:"Statement",pipelines:t,operators:e,background:r}},pipeline(t,e=!1){return{type:"Pipeline",commands:t,negated:e}},simpleCommand(t,e=[],r=[],n=[]){return{type:"SimpleCommand",name:t,args:e,assignments:r,redirections:n}},word(t){return{type:"Word",parts:t}},literal(t){return{type:"Literal",value:t}},singleQuoted(t){return{type:"SingleQuoted",value:t}},doubleQuoted(t){return{type:"DoubleQuoted",parts:t}},escaped(t){return{type:"Escaped",value:t}},parameterExpansion(t,e=null){return{type:"ParameterExpansion",parameter:t,operation:e}},commandSubstitution(t,e=!1){return{type:"CommandSubstitution",body:t,legacy:e}},arithmeticExpansion(t){return{type:"ArithmeticExpansion",expression:t}},assignment(t,e,r=!1,n=null){return{type:"Assignment",name:t,value:e,append:r,array:n}},redirection(t,e,r=null){return{type:"Redirection",fd:r,operator:t,target:e}},hereDoc(t,e,r=!1,n=!1){return{type:"HereDoc",delimiter:t,content:e,stripTabs:r,quoted:n}},ifNode(t,e=null,r=[]){return{type:"If",clauses:t,elseBody:e,redirections:r}},forNode(t,e,r,n=[]){return{type:"For",variable:t,words:e,body:r,redirections:n}},whileNode(t,e,r=[]){return{type:"While",condition:t,body:e,redirections:r}},untilNode(t,e,r=[]){return{type:"Until",condition:t,body:e,redirections:r}},caseNode(t,e,r=[]){return{type:"Case",word:t,items:e,redirections:r}},caseItem(t,e,r=";;"){return{type:"CaseItem",patterns:t,body:e,terminator:r}},subshell(t,e=[]){return{type:"Subshell",body:t,redirections:e}},group(t,e=[]){return{type:"Group",body:t,redirections:e}},functionDef(t,e,r=[]){return{type:"FunctionDef",name:t,body:e,redirections:r}},conditionalCommand(t,e=[]){return{type:"ConditionalCommand",expression:t,redirections:e}},arithmeticCommand(t,e=[]){return{type:"ArithmeticCommand",expression:t,redirections:e}}};var y;(function(t){t.EOF="EOF",t.NEWLINE="NEWLINE",t.SEMICOLON="SEMICOLON",t.AMP="AMP",t.PIPE="PIPE",t.PIPE_AMP="PIPE_AMP",t.AND_AND="AND_AND",t.OR_OR="OR_OR",t.BANG="BANG",t.LESS="LESS",t.GREAT="GREAT",t.DLESS="DLESS",t.DGREAT="DGREAT",t.LESSAND="LESSAND",t.GREATAND="GREATAND",t.LESSGREAT="LESSGREAT",t.DLESSDASH="DLESSDASH",t.CLOBBER="CLOBBER",t.TLESS="TLESS",t.AND_GREAT="AND_GREAT",t.AND_DGREAT="AND_DGREAT",t.LPAREN="LPAREN",t.RPAREN="RPAREN",t.LBRACE="LBRACE",t.RBRACE="RBRACE",t.DSEMI="DSEMI",t.SEMI_AND="SEMI_AND",t.SEMI_SEMI_AND="SEMI_SEMI_AND",t.DBRACK_START="DBRACK_START",t.DBRACK_END="DBRACK_END",t.DPAREN_START="DPAREN_START",t.DPAREN_END="DPAREN_END",t.IF="IF",t.THEN="THEN",t.ELSE="ELSE",t.ELIF="ELIF",t.FI="FI",t.FOR="FOR",t.WHILE="WHILE",t.UNTIL="UNTIL",t.DO="DO",t.DONE="DONE",t.CASE="CASE",t.ESAC="ESAC",t.IN="IN",t.FUNCTION="FUNCTION",t.SELECT="SELECT",t.TIME="TIME",t.COPROC="COPROC",t.WORD="WORD",t.NAME="NAME",t.NUMBER="NUMBER",t.ASSIGNMENT_WORD="ASSIGNMENT_WORD",t.COMMENT="COMMENT",t.HEREDOC_CONTENT="HEREDOC_CONTENT"})(y||(y={}));var vn={if:y.IF,then:y.THEN,else:y.ELSE,elif:y.ELIF,fi:y.FI,for:y.FOR,while:y.WHILE,until:y.UNTIL,do:y.DO,done:y.DONE,case:y.CASE,esac:y.ESAC,in:y.IN,function:y.FUNCTION,select:y.SELECT,time:y.TIME,coproc:y.COPROC};function mf(t){let e=t.match(/^[a-zA-Z_][a-zA-Z0-9_]*/);if(!e)return!1;let r=t.slice(e[0].length);if(r===""||r==="+")return!0;if(r[0]==="["){let n=0,s=0;for(;s<r.length;s++)if(r[s]==="[")n++;else if(r[s]==="]"&&(n--,n===0))break;if(n!==0||s>=r.length)return!1;let i=r.slice(s+1);return i===""||i==="+"}return!1}var Py=[[";",";","&",y.SEMI_SEMI_AND],["<","<","<",y.TLESS],["&",">",">",y.AND_DGREAT]],Fy=[["[","[",y.DBRACK_START],["]","]",y.DBRACK_END],["(","(",y.DPAREN_START],[")",")",y.DPAREN_END],["&","&",y.AND_AND],["|","|",y.OR_OR],[";",";",y.DSEMI],[";","&",y.SEMI_AND],["|","&",y.PIPE_AMP],[">",">",y.DGREAT],["<","&",y.LESSAND],[">","&",y.GREATAND],["<",">",y.LESSGREAT],[">","|",y.CLOBBER],["&",">",y.AND_GREAT]],Ty={"|":y.PIPE,"&":y.AMP,";":y.SEMICOLON,"(":y.LPAREN,")":y.RPAREN,"<":y.LESS,">":y.GREAT};function Oy(t){return/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(t)}var $n=class{input;pos=0;line=1;column=1;tokens=[];pendingHeredocs=[];constructor(e){this.input=e}tokenize(){let r=this.input.length,n=this.tokens,s=this.pendingHeredocs;for(;this.pos<r&&(this.skipWhitespace(),!(this.pos>=r));){if(s.length>0&&n.length>0&&n[n.length-1].type===y.NEWLINE){this.readHeredocContent();continue}let i=this.nextToken();i&&n.push(i)}return n.push({type:y.EOF,value:"",start:this.pos,end:this.pos,line:this.line,column:this.column}),n}skipWhitespace(){let e=this.input,r=e.length,n=this.pos,s=this.column,i=this.line;for(;n<r;){let o=e[n];if(o===" "||o===" ")n++,s++;else if(o==="\\"&&e[n+1]===`
618
618
  `)n+=2,i++,s=1;else break}this.pos=n,this.column=s,this.line=i}nextToken(){let e=this.input,r=this.pos,n=this.line,s=this.column,i=e[r],o=e[r+1],a=e[r+2];if(i==="#")return this.readComment(r,n,s);if(i===`
619
619
  `)return this.pos=r+1,this.line++,this.column=1,{type:y.NEWLINE,value:`
620
- `,start:r,end:r+1,line:n,column:s};if(i==="<"&&o==="<"&&a==="-")return this.pos=r+3,this.column=s+3,this.registerHeredocFromLookahead(!0),this.makeToken(y.DLESSDASH,"<<-",r,n,s);for(let[c,u,f,p]of sy)if(i===c&&o===u&&a===f)return this.pos=r+3,this.column=s+3,this.makeToken(p,c+u+f,r,n,s);if(i==="<"&&o==="<")return this.pos=r+2,this.column=s+2,this.registerHeredocFromLookahead(!1),this.makeToken(y.DLESS,"<<",r,n,s);for(let[c,u,f]of iy)if(i===c&&o===u)return this.pos=r+2,this.column=s+2,this.makeToken(f,c+u,r,n,s);let l=oy[i];return l?(this.pos=r+1,this.column=s+1,this.makeToken(l,i,r,n,s)):i==="{"?o==="}"?(this.pos=r+2,this.column=s+2,{type:y.WORD,value:"{}",start:r,end:r+2,line:n,column:s,quoted:!1,singleQuoted:!1}):this.scanBraceExpansion(r)!==null?this.readWordWithBraceExpansion(r,n,s):this.scanLiteralBraceWord(r)!==null?this.readWordWithBraceExpansion(r,n,s):o!==void 0&&o!==" "&&o!==" "&&o!==`
620
+ `,start:r,end:r+1,line:n,column:s};if(i==="<"&&o==="<"&&a==="-")return this.pos=r+3,this.column=s+3,this.registerHeredocFromLookahead(!0),this.makeToken(y.DLESSDASH,"<<-",r,n,s);for(let[c,u,f,d]of Py)if(i===c&&o===u&&a===f)return this.pos=r+3,this.column=s+3,this.makeToken(d,c+u+f,r,n,s);if(i==="<"&&o==="<")return this.pos=r+2,this.column=s+2,this.registerHeredocFromLookahead(!1),this.makeToken(y.DLESS,"<<",r,n,s);for(let[c,u,f]of Fy)if(i===c&&o===u)return this.pos=r+2,this.column=s+2,this.makeToken(f,c+u,r,n,s);let l=Ty[i];return l?(this.pos=r+1,this.column=s+1,this.makeToken(l,i,r,n,s)):i==="{"?o==="}"?(this.pos=r+2,this.column=s+2,{type:y.WORD,value:"{}",start:r,end:r+2,line:n,column:s,quoted:!1,singleQuoted:!1}):this.scanBraceExpansion(r)!==null?this.readWordWithBraceExpansion(r,n,s):this.scanLiteralBraceWord(r)!==null?this.readWordWithBraceExpansion(r,n,s):o!==void 0&&o!==" "&&o!==" "&&o!==`
621
621
  `?this.readWord(r,n,s):(this.pos=r+1,this.column=s+1,this.makeToken(y.LBRACE,"{",r,n,s)):i==="}"?this.isWordCharFollowing(r+1)?this.readWord(r,n,s):(this.pos=r+1,this.column=s+1,this.makeToken(y.RBRACE,"}",r,n,s)):i==="!"?o==="="?(this.pos=r+2,this.column=s+2,this.makeToken(y.WORD,"!=",r,n,s)):(this.pos=r+1,this.column=s+1,this.makeToken(y.BANG,"!",r,n,s)):this.readWord(r,n,s)}makeToken(e,r,n,s,i){return{type:e,value:r,start:n,end:this.pos,line:s,column:i}}readComment(e,r,n){let s=this.input,i=s.length,o=this.pos;for(;o<i&&s[o]!==`
622
622
  `;)o++;let a=s.slice(e,o);return this.pos=o,this.column=n+(o-e),{type:y.COMMENT,value:a,start:e,end:o,line:r,column:n}}readWord(e,r,n){let s=this.input,i=s.length,o=this.pos,a=o;for(;o<i;){let g=s[o];if(g===" "||g===" "||g===`
623
623
  `||g===";"||g==="&"||g==="|"||g==="("||g===")"||g==="<"||g===">"||g==="'"||g==='"'||g==="\\"||g==="$"||g==="`"||g==="{"||g==="}"||g==="~"||g==="*"||g==="?"||g==="[")break;o++}if(o>a){let g=s[o];if(o>=i||g===" "||g===" "||g===`
624
- `||g===";"||g==="&"||g==="|"||g==="("||g===")"||g==="<"||g===">"){let w=s.slice(a,o);if(this.pos=o,this.column=n+(o-a),fn[w])return{type:fn[w],value:w,start:e,end:o,line:r,column:n};let E=w.indexOf("=");return E>0&&qu(w.slice(0,E))?{type:y.ASSIGNMENT_WORD,value:w,start:e,end:o,line:r,column:n}:/^[0-9]+$/.test(w)?{type:y.NUMBER,value:w,start:e,end:o,line:r,column:n}:/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(w)?{type:y.NAME,value:w,start:e,end:o,line:r,column:n,quoted:!1,singleQuoted:!1}:{type:y.WORD,value:w,start:e,end:o,line:r,column:n,quoted:!1,singleQuoted:!1}}}o=this.pos;let l=this.column,c=this.line,u="",f=!1,p=!1,d=!1,h=!1,m=s[o]==='"'||s[o]==="'";for(;o<i;){let g=s[o];if(!d&&!h&&(g===" "||g===" "||g===`
625
- `||g===";"||g==="&"||g==="|"||g==="("||g===")"||g==="<"||g===">"))break;if(g==="$"&&o+1<i&&s[o+1]==="'"&&!d&&!h){for(u+="$'",o+=2,l+=2;o<i&&s[o]!=="'";)s[o]==="\\"&&o+1<i?(u+=s[o]+s[o+1],o+=2,l+=2):(u+=s[o],o++,l++);o<i&&(u+="'",o++,l++);continue}if(g==="$"&&o+1<i&&s[o+1]==='"'&&!d&&!h){o++,l++,h=!0,f=!0,u===""&&(m=!0),o++,l++;continue}if(g==="'"&&!h){d?(d=!1,m||(u+=g)):(d=!0,m?(p=!0,f=!0):u+=g),o++,l++;continue}if(g==='"'&&!d){h?(h=!1,m||(u+=g)):(h=!0,m?f=!0:u+=g),o++,l++;continue}if(g==="\\"&&!d&&o+1<i){let w=s[o+1];if(w===`
624
+ `||g===";"||g==="&"||g==="|"||g==="("||g===")"||g==="<"||g===">"){let w=s.slice(a,o);if(this.pos=o,this.column=n+(o-a),vn[w])return{type:vn[w],value:w,start:e,end:o,line:r,column:n};let E=w.indexOf("=");return E>0&&mf(w.slice(0,E))?{type:y.ASSIGNMENT_WORD,value:w,start:e,end:o,line:r,column:n}:/^[0-9]+$/.test(w)?{type:y.NUMBER,value:w,start:e,end:o,line:r,column:n}:/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(w)?{type:y.NAME,value:w,start:e,end:o,line:r,column:n,quoted:!1,singleQuoted:!1}:{type:y.WORD,value:w,start:e,end:o,line:r,column:n,quoted:!1,singleQuoted:!1}}}o=this.pos;let l=this.column,c=this.line,u="",f=!1,d=!1,p=!1,h=!1,m=s[o]==='"'||s[o]==="'";for(;o<i;){let g=s[o];if(!p&&!h&&(g===" "||g===" "||g===`
625
+ `||g===";"||g==="&"||g==="|"||g==="("||g===")"||g==="<"||g===">"))break;if(g==="$"&&o+1<i&&s[o+1]==="'"&&!p&&!h){for(u+="$'",o+=2,l+=2;o<i&&s[o]!=="'";)s[o]==="\\"&&o+1<i?(u+=s[o]+s[o+1],o+=2,l+=2):(u+=s[o],o++,l++);o<i&&(u+="'",o++,l++);continue}if(g==="$"&&o+1<i&&s[o+1]==='"'&&!p&&!h){o++,l++,h=!0,f=!0,u===""&&(m=!0),o++,l++;continue}if(g==="'"&&!h){p?(p=!1,m||(u+=g)):(p=!0,m?(d=!0,f=!0):u+=g),o++,l++;continue}if(g==='"'&&!p){h?(h=!1,m||(u+=g)):(h=!0,m?f=!0:u+=g),o++,l++;continue}if(g==="\\"&&!p&&o+1<i){let w=s[o+1];if(w===`
626
626
  `){o+=2,c++,l=1;continue}if(h){if(w==='"'||w==="\\"||w==="$"||w==="`"||w===`
627
- `){w==="$"||w==="`"?u+=g+w:u+=w,o+=2,l+=2;continue}}else{w==='"'||w==="'"?u+=g+w:u+=w,o+=2,l+=2;continue}}if(g==="$"&&o+1<i&&s[o+1]==="("){u+=g,o++,l++,u+=s[o],o++,l++;let w=1,E=!1,b=!1,S=0,I=!1,D="",v=s[o]==="(";for(;w>0&&o<i;){let $=s[o];if(u+=$,E)$==="'"&&(E=!1);else if(b)$==="\\"&&o+1<i?(u+=s[o+1],o++,l++):$==='"'&&(b=!1);else if($==="'")E=!0,D="";else if($==='"')b=!0,D="";else if($==="\\"&&o+1<i)u+=s[o+1],o++,l++,D="";else if($==="#"&&!v&&(D===""||/\s/.test(s[o-1]||""))){for(;o+1<i&&s[o+1]!==`
628
- `;)o++,l++,u+=s[o];D=""}else/[a-zA-Z_]/.test($)?D+=$:(D==="case"?(S++,I=!1):D==="in"&&S>0?I=!0:D==="esac"&&S>0&&(S--,I=!1),D="",$==="("?o>0&&s[o-1]==="$"?w++:I||w++:$===")"?I?I=!1:w--:$===";"&&S>0&&o+1<i&&s[o+1]===";"&&(I=!0));$===`
629
- `&&(c++,l=0,D=""),o++,l++}continue}if(g==="$"&&o+1<i&&s[o+1]==="["){u+=g,o++,l++,u+=s[o],o++,l++;let w=1;for(;w>0&&o<i;){let E=s[o];u+=E,E==="["?w++:E==="]"?w--:E===`
627
+ `){w==="$"||w==="`"?u+=g+w:u+=w,o+=2,l+=2;continue}}else{w==='"'||w==="'"?u+=g+w:u+=w,o+=2,l+=2;continue}}if(g==="$"&&o+1<i&&s[o+1]==="("){u+=g,o++,l++,u+=s[o],o++,l++;let w=1,E=!1,b=!1,S=0,I=!1,F="",W=s[o]==="(";for(;w>0&&o<i;){let j=s[o];if(u+=j,E)j==="'"&&(E=!1);else if(b)j==="\\"&&o+1<i?(u+=s[o+1],o++,l++):j==='"'&&(b=!1);else if(j==="'")E=!0,F="";else if(j==='"')b=!0,F="";else if(j==="\\"&&o+1<i)u+=s[o+1],o++,l++,F="";else if(j==="#"&&!W&&(F===""||/\s/.test(s[o-1]||""))){for(;o+1<i&&s[o+1]!==`
628
+ `;)o++,l++,u+=s[o];F=""}else/[a-zA-Z_]/.test(j)?F+=j:(F==="case"?(S++,I=!1):F==="in"&&S>0?I=!0:F==="esac"&&S>0&&(S--,I=!1),F="",j==="("?o>0&&s[o-1]==="$"?w++:I||w++:j===")"?I?I=!1:w--:j===";"&&S>0&&o+1<i&&s[o+1]===";"&&(I=!0));j===`
629
+ `&&(c++,l=0,F=""),o++,l++}continue}if(g==="$"&&o+1<i&&s[o+1]==="["){u+=g,o++,l++,u+=s[o],o++,l++;let w=1;for(;w>0&&o<i;){let E=s[o];u+=E,E==="["?w++:E==="]"?w--:E===`
630
630
  `&&(c++,l=0),o++,l++}continue}if(g==="$"&&o+1<i&&s[o+1]==="{"){u+=g,o++,l++,u+=s[o],o++,l++;let w=1;for(;w>0&&o<i;){let E=s[o];u+=E,E==="{"?w++:E==="}"?w--:E===`
631
631
  `&&(c++,l=0),o++,l++}continue}if(g==="$"&&o+1<i){let w=s[o+1];if(w==="#"||w==="?"||w==="$"||w==="!"||w==="@"||w==="*"||w==="-"||w>="0"&&w<="9"){u+=g+w,o+=2,l+=2;continue}}if(g==="`"){for(u+=g,o++,l++;o<i&&s[o]!=="`";){let w=s[o];u+=w,w==="\\"&&o+1<i&&(u+=s[o+1],o++,l++),w===`
632
632
  `&&(c++,l=0),o++,l++}o<i&&(u+=s[o],o++,l++);continue}u+=g,o++,g===`
633
- `?(c++,l=1):l++}if(this.pos=o,this.column=l,this.line=c,u==="")return{type:y.WORD,value:"",start:e,end:o,line:r,column:n,quoted:f,singleQuoted:p};if(!f&&fn[u])return{type:fn[u],value:u,start:e,end:o,line:r,column:n};if(!m){let g=u.indexOf("=");if(g>0&&qu(u.slice(0,g)))return{type:y.ASSIGNMENT_WORD,value:u,start:e,end:o,line:r,column:n,quoted:f,singleQuoted:p}}return/^[0-9]+$/.test(u)?{type:y.NUMBER,value:u,start:e,end:o,line:r,column:n}:ay(u)?{type:y.NAME,value:u,start:e,end:o,line:r,column:n,quoted:f,singleQuoted:p}:{type:y.WORD,value:u,start:e,end:o,line:r,column:n,quoted:f,singleQuoted:p}}readHeredocContent(){for(;this.pendingHeredocs.length>0;){let e=this.pendingHeredocs.shift();if(!e)break;let r=this.pos,n=this.line,s=this.column,i="";for(;this.pos<this.input.length;){let o=this.pos,a="";for(;this.pos<this.input.length&&this.input[this.pos]!==`
633
+ `?(c++,l=1):l++}if(this.pos=o,this.column=l,this.line=c,u==="")return{type:y.WORD,value:"",start:e,end:o,line:r,column:n,quoted:f,singleQuoted:d};if(!f&&vn[u])return{type:vn[u],value:u,start:e,end:o,line:r,column:n};if(!m){let g=u.indexOf("=");if(g>0&&mf(u.slice(0,g)))return{type:y.ASSIGNMENT_WORD,value:u,start:e,end:o,line:r,column:n,quoted:f,singleQuoted:d}}return/^[0-9]+$/.test(u)?{type:y.NUMBER,value:u,start:e,end:o,line:r,column:n}:Oy(u)?{type:y.NAME,value:u,start:e,end:o,line:r,column:n,quoted:f,singleQuoted:d}:{type:y.WORD,value:u,start:e,end:o,line:r,column:n,quoted:f,singleQuoted:d}}readHeredocContent(){for(;this.pendingHeredocs.length>0;){let e=this.pendingHeredocs.shift();if(!e)break;let r=this.pos,n=this.line,s=this.column,i="";for(;this.pos<this.input.length;){let o=this.pos,a="";for(;this.pos<this.input.length&&this.input[this.pos]!==`
634
634
  `;)a+=this.input[this.pos],this.pos++,this.column++;if((e.stripTabs?a.replace(/^\t+/,""):a)===e.delimiter){this.pos<this.input.length&&this.input[this.pos]===`
635
635
  `&&(this.pos++,this.line++,this.column=1);break}i+=a,this.pos<this.input.length&&this.input[this.pos]===`
636
636
  `&&(i+=`
@@ -638,48 +638,48 @@ Gid: ${n} ${n} ${n} ${n}
638
638
  `||r===";"||r==="&"||r==="|"||r==="("||r===")"||r==="<"||r===">")}readWordWithBraceExpansion(e,r,n){let s=this.input,i=s.length,o=e,a=n;for(;o<i;){let c=s[o];if(c===" "||c===" "||c===`
639
639
  `||c===";"||c==="&"||c==="|"||c==="("||c===")"||c==="<"||c===">")break;if(c==="{"){if(this.scanBraceExpansion(o)!==null){let f=1;for(o++,a++;o<i&&f>0;)s[o]==="{"?f++:s[o]==="}"&&f--,o++,a++;continue}o++,a++;continue}if(c==="}"){o++,a++;continue}if(c==="$"&&o+1<i&&s[o+1]==="("){o++,a++,o++,a++;let u=1;for(;u>0&&o<i;)s[o]==="("?u++:s[o]===")"&&u--,o++,a++;continue}if(c==="$"&&o+1<i&&s[o+1]==="{"){o++,a++,o++,a++;let u=1;for(;u>0&&o<i;)s[o]==="{"?u++:s[o]==="}"&&u--,o++,a++;continue}if(c==="`"){for(o++,a++;o<i&&s[o]!=="`";)s[o]==="\\"&&o+1<i?(o+=2,a+=2):(o++,a++);o<i&&(o++,a++);continue}o++,a++}let l=s.slice(e,o);return this.pos=o,this.column=a,{type:y.WORD,value:l,start:e,end:o,line:r,column:n,quoted:!1,singleQuoted:!1}}scanBraceExpansion(e){let r=this.input,n=r.length,s=e+1,i=1,o=!1,a=!1;for(;s<n&&i>0;){let l=r[s];if(l==="{")i++,s++;else if(l==="}")i--,s++;else if(l===","&&i===1)o=!0,s++;else if(l==="."&&s+1<n&&r[s+1]===".")a=!0,s+=2;else{if(l===" "||l===" "||l===`
640
640
  `||l===";"||l==="&"||l==="|")return null;s++}}return i===0&&(o||a)?r.slice(e,s):null}scanLiteralBraceWord(e){let r=this.input,n=r.length,s=e+1,i=1;for(;s<n&&i>0;){let o=r[s];if(o==="{")i++,s++;else if(o==="}"){if(i--,i===0)return r.slice(e,s+1);s++}else{if(o===" "||o===" "||o===`
641
- `||o===";"||o==="&"||o==="|")return null;s++}}return null}};var Bs=1e6,Ws=1e5,Vu=1e6,Ku=new Set([y.LESS,y.GREAT,y.DLESS,y.DGREAT,y.LESSAND,y.GREATAND,y.LESSGREAT,y.DLESSDASH,y.CLOBBER,y.TLESS,y.AND_GREAT,y.AND_DGREAT]),Zu=new Set([y.LESS,y.GREAT,y.DLESS,y.DGREAT,y.LESSAND,y.GREATAND,y.LESSGREAT,y.DLESSDASH,y.CLOBBER,y.TLESS]),tt=class extends Error{line;column;token;constructor(e,r,n,s=void 0){super(`Parse error at ${r}:${n}: ${e}`),this.line=r,this.column=n,this.token=s,this.name="ParseException"}};function Xu(t,e,r){let n=r+1;for(;n<e.length&&/[a-zA-Z0-9_-]/.test(e[n]);)n++;return n}function Us(t,e,r,n,s){let i=1,o=r+1;for(;o<e.length&&i>0;)e[o]===n?i++:e[o]===s&&i--,i>0&&o++;return i===0?o:-1}function vt(t,e,r){let n=r,s=1;for(;n<e.length&&s>0;){let i=e[n];if(i==="\\"&&n+1<e.length){n+=2;continue}if(i==="'"){let o=e.indexOf("'",n+1);if(o!==-1){n=o+1;continue}}if(i==='"'){for(n++;n<e.length&&e[n]!=='"';)e[n]==="\\"&&n+1<e.length?n+=2:n++;n<e.length&&n++;continue}i==="{"?s++:i==="}"&&s--,s>0&&n++}return n}function Ju(t,e,r){let n=r,s=!1;for(;n<e.length;){let i=e[n];if(i==="/"&&s||i==="}")break;if(i==="'"){let o=e.indexOf("'",n+1);if(o!==-1){n=o+1,s=!0;continue}}if(i==='"'){for(n++;n<e.length&&e[n]!=='"';)e[n]==="\\"&&n+1<e.length?n+=2:n++;n<e.length&&n++,s=!0;continue}i==="\\"?(n+=2,s=!0):(n++,s=!0)}return n}function Yu(t,e,r){let n=r,s="";for(;n<e.length;){let i=e[n];if(i==="*"||i==="?")s+=i,n++;else if(i==="["){let o=ly(e,n);o===-1?(s+=i,n++):(s+=e.slice(n,o+1),n=o+1)}else break}return{pattern:s,endIndex:n}}function ly(t,e){let r=e+1;for(r<t.length&&t[r]==="^"&&r++,r<t.length&&t[r]==="]"&&r++;r<t.length;){let n=t[r];if(n==="\\"&&r+1<t.length){r+=2;continue}if(n==="]")return r;if(n==='"'||n==="$"||n==="`")return-1;if(n==="'"){let s=t.indexOf("'",r+1);if(s!==-1){r=s+1;continue}}if(n==="["&&r+1<t.length&&t[r+1]===":"){let s=t.indexOf(":]",r+2);if(s!==-1){r=s+2;continue}}if(n==="["&&r+1<t.length&&(t[r+1]==="."||t[r+1]==="=")){let i=`${t[r+1]}]`,o=t.indexOf(i,r+2);if(o!==-1){r=o+2;continue}}r++}return-1}function ef(t,e,r){let n="",s=r;for(;s<e.length&&e[s]!=="'";){let i=e[s];if(i==="\\"&&s+1<e.length)switch(e[s+1]){case"n":n+=`
642
- `,s+=2;break;case"t":n+=" ",s+=2;break;case"r":n+="\r",s+=2;break;case"\\":n+="\\",s+=2;break;case"'":n+="'",s+=2;break;case'"':n+='"',s+=2;break;case"a":n+="\x07",s+=2;break;case"b":n+="\b",s+=2;break;case"e":case"E":n+="\x1B",s+=2;break;case"f":n+="\f",s+=2;break;case"v":n+="\v",s+=2;break;case"x":{let a=e.slice(s+2,s+4),l=parseInt(a,16);Number.isNaN(l)?(n+="\\x",s+=2):(n+=String.fromCharCode(l),s+=4);break}case"u":{let a=e.slice(s+2,s+6),l=parseInt(a,16);Number.isNaN(l)?(n+="\\u",s+=2):(n+=String.fromCharCode(l),s+=6);break}case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":{let a="",l=s+1;for(;l<e.length&&l<s+4&&/[0-7]/.test(e[l]);)a+=e[l],l++;let c=parseInt(a,8);n+=String.fromCharCode(c),s=l;break}default:n+=i,s++}else n+=i,s++}return s<e.length&&e[s]==="'"&&s++,{part:O.literal(n),endIndex:s}}function js(t,e){let r=e.trim();return r===""?{type:"ArithmeticExpression",expression:{type:"ArithNumber",value:0}}:Ee(t,r)}function Qu(t){let e=[],r="",n=0;for(let s=0;s<t.length;s++){let i=t[s];i==="{"?(n++,r+=i):i==="}"?(n--,r+=i):i===","&&n===0?(e.push(r),r=""):r+=i}return e.push(r),e}function tf(t,e,r,n){let s=Us(t,e,r,"{","}");if(s===-1)return null;let i=e.slice(r+1,s),o=i.match(/^(-?\d+)\.\.(-?\d+)(?:\.\.(-?\d+))?$/);if(o)return{part:{type:"BraceExpansion",items:[{type:"Range",start:Number.parseInt(o[1],10),end:Number.parseInt(o[2],10),step:o[3]?Number.parseInt(o[3],10):void 0,startStr:o[1],endStr:o[2]}]},endIndex:s+1};let a=i.match(/^([a-zA-Z])\.\.([a-zA-Z])(?:\.\.(-?\d+))?$/);return a?{part:{type:"BraceExpansion",items:[{type:"Range",start:a[1],end:a[2],step:a[3]?Number.parseInt(a[3],10):void 0}]},endIndex:s+1}:i.includes(",")&&n?{part:{type:"BraceExpansion",items:Qu(i).map(u=>({type:"Word",word:O.word(n(t,u,!1,!1,!1))}))},endIndex:s+1}:i.includes(",")?{part:{type:"BraceExpansion",items:Qu(i).map(u=>({type:"Word",word:O.word([O.literal(u)])}))},endIndex:s+1}:null}function rf(t,e){let r="";for(let n of e.parts)switch(n.type){case"Literal":case"SingleQuoted":case"Escaped":r+=n.value;break;case"DoubleQuoted":r+='"';for(let s of n.parts)s.type==="Literal"||s.type==="Escaped"?r+=s.value:s.type==="ParameterExpansion"&&(r+=`\${${s.parameter}}`);r+='"';break;case"ParameterExpansion":r+=`\${${n.parameter}}`;break;case"Glob":r+=n.pattern;break;default:r+=n.type}return r}function nf(t,e){return{[y.LESS]:"<",[y.GREAT]:">",[y.DGREAT]:">>",[y.LESSAND]:"<&",[y.GREATAND]:">&",[y.LESSGREAT]:"<>",[y.CLOBBER]:">|",[y.TLESS]:"<<<",[y.AND_GREAT]:"&>",[y.AND_DGREAT]:"&>>",[y.DLESS]:"<",[y.DLESSDASH]:"<"}[e]||">"}function dn(t){let e=t.current(),r=e.type;if(r===y.NUMBER){let n=t.peek(1);return e.end!==n.start?!1:Zu.has(n.type)}return Ku.has(r)}function hn(t){let e=null;t.check(y.NUMBER)&&(e=Number.parseInt(t.advance().value,10));let r=t.advance(),n=nf(t,r.type);if(r.type===y.DLESS||r.type===y.DLESSDASH)return cy(t,n,e,r.type===y.DLESSDASH);t.isWord()||t.error("Expected redirection target");let s=t.parseWord();return O.redirection(n,s,e)}function cy(t,e,r,n){t.isWord()||t.error("Expected here-document delimiter");let s=t.advance(),i=s.value,o=s.quoted||!1;(i.startsWith("'")&&i.endsWith("'")||i.startsWith('"')&&i.endsWith('"'))&&(i=i.slice(1,-1));let a=O.redirection(n?"<<-":"<<",O.hereDoc(i,O.word([]),n,o),r);return t.addPendingHeredoc(a,i,n,o),a}function of(t){let e=t.current().line,r=[],n=null,s=[],i=[];for(;t.check(y.ASSIGNMENT_WORD);)t.checkIterationLimit(),r.push(uy(t));for(;dn(t);)t.checkIterationLimit(),i.push(hn(t));for(t.isWord()&&(n=t.parseWord());(!t.isStatementEnd()||t.check(y.RBRACE))&&!t.check(y.PIPE,y.PIPE_AMP);)if(t.checkIterationLimit(),dn(t))i.push(hn(t));else if(t.check(y.RBRACE)){let a=t.advance();s.push(t.parseWordFromString(a.value,!1,!1))}else if(t.isWord())s.push(t.parseWord());else if(t.check(y.ASSIGNMENT_WORD)){let a=t.advance(),l=a.value,c=l.endsWith("="),u=l.endsWith("=(");if((c||u)&&(u||t.check(y.LPAREN))){let f=u?l.slice(0,-2):l.slice(0,-1);u||t.expect(y.LPAREN);let p=zs(t);t.expect(y.RPAREN);let d=p.map(m=>rf(t,m)),h=`${f}=(${d.join(" ")})`;s.push(t.parseWordFromString(h,!1,!1))}else s.push(t.parseWordFromString(l,a.quoted,a.singleQuoted))}else if(t.check(y.LPAREN))t.error("syntax error near unexpected token `('");else break;let o=O.simpleCommand(n,s,r,i);return o.line=e,o}function uy(t){let e=t.expect(y.ASSIGNMENT_WORD),r=e.value,n=r.match(/^[a-zA-Z_][a-zA-Z0-9_]*/);n||t.error(`Invalid assignment: ${r}`);let s=n[0],i,o=s.length;if(r[o]==="["){let f=0,p=o+1;for(;o<r.length;o++)if(r[o]==="[")f++;else if(r[o]==="]"&&(f--,f===0))break;f!==0&&t.error(`Invalid assignment: ${r}`),i=r.slice(p,o),o++}let a=r[o]==="+";a&&o++,r[o]!=="="&&t.error(`Invalid assignment: ${r}`),o++;let l=r.slice(o);if(l==="("){let f=zs(t);t.expect(y.RPAREN);let p=i!==void 0?`${s}[${i}]`:s;return O.assignment(p,null,a,f)}if(l===""&&t.check(y.LPAREN)){let f=t.current();if(e.end===f.start){t.advance();let p=zs(t);t.expect(y.RPAREN);let d=i!==void 0?`${s}[${i}]`:s;return O.assignment(d,null,a,p)}}let c=l?t.parseWordFromString(l,e.quoted,e.singleQuoted,!0):null,u=i!==void 0?`${s}[${i}]`:s;return O.assignment(u,c,a,null)}function zs(t){let e=[];for(t.skipNewlines();!t.check(y.RPAREN,y.EOF);)t.checkIterationLimit(),t.isWord()?e.push(t.parseWord()):t.advance(),t.skipNewlines();return e}function Hs(t){t.expect(y.IF);let e=[],r=t.parseCompoundList();t.expect(y.THEN);let n=t.parseCompoundList();if(n.length===0){let o=t.check(y.FI)?"fi":t.check(y.ELSE)?"else":t.check(y.ELIF)?"elif":"fi";t.error(`syntax error near unexpected token \`${o}'`)}for(e.push({condition:r,body:n});t.check(y.ELIF);){t.advance();let o=t.parseCompoundList();t.expect(y.THEN);let a=t.parseCompoundList();if(a.length===0){let l=t.check(y.FI)?"fi":t.check(y.ELSE)?"else":t.check(y.ELIF)?"elif":"fi";t.error(`syntax error near unexpected token \`${l}'`)}e.push({condition:o,body:a})}let s=null;t.check(y.ELSE)&&(t.advance(),s=t.parseCompoundList(),s.length===0&&t.error("syntax error near unexpected token `fi'")),t.expect(y.FI);let i=t.parseOptionalRedirections();return O.ifNode(e,s,i)}function Gs(t){if(t.expect(y.FOR),t.check(y.DPAREN_START))return py(t);t.isWord()||t.error("Expected variable name in for loop");let r=t.advance().value,n=null;if(t.skipNewlines(),t.check(y.IN))for(t.advance(),n=[];!t.check(y.SEMICOLON,y.NEWLINE,y.DO,y.EOF)&&t.isWord();)n.push(t.parseWord());t.check(y.SEMICOLON)&&t.advance(),t.skipNewlines(),t.expect(y.DO);let s=t.parseCompoundList();t.expect(y.DONE);let i=t.parseOptionalRedirections();return O.forNode(r,n,s,i)}function py(t){t.expect(y.DPAREN_START);let e=null,r=null,n=null,s=["","",""],i=0,o=0;for(;!t.check(y.DPAREN_END,y.EOF);){let c=t.advance();if(c.type===y.SEMICOLON&&o===0){if(i++,i>2)break}else c.value==="("&&o++,c.value===")"&&o--,s[i]+=c.value}t.expect(y.DPAREN_END),s[0].trim()&&(e=Ee(t,s[0].trim())),s[1].trim()&&(r=Ee(t,s[1].trim())),s[2].trim()&&(n=Ee(t,s[2].trim())),t.skipNewlines(),t.check(y.SEMICOLON)&&t.advance(),t.skipNewlines(),t.expect(y.DO);let a=t.parseCompoundList();t.expect(y.DONE);let l=t.parseOptionalRedirections();return{type:"CStyleFor",init:e,condition:r,update:n,body:a,redirections:l}}function qs(t){t.expect(y.WHILE);let e=t.parseCompoundList();t.expect(y.DO);let r=t.parseCompoundList();r.length===0&&t.error("syntax error near unexpected token `done'"),t.expect(y.DONE);let n=t.parseOptionalRedirections();return O.whileNode(e,r,n)}function Vs(t){t.expect(y.UNTIL);let e=t.parseCompoundList();t.expect(y.DO);let r=t.parseCompoundList();r.length===0&&t.error("syntax error near unexpected token `done'"),t.expect(y.DONE);let n=t.parseOptionalRedirections();return O.untilNode(e,r,n)}function Ks(t){t.expect(y.CASE),t.isWord()||t.error("Expected word after 'case'");let e=t.parseWord();t.skipNewlines(),t.expect(y.IN),t.skipNewlines();let r=[];for(;!t.check(y.ESAC,y.EOF);){t.checkIterationLimit();let s=t.getPos(),i=dy(t);if(i&&r.push(i),t.skipNewlines(),t.getPos()===s&&!i)break}t.expect(y.ESAC);let n=t.parseOptionalRedirections();return O.caseNode(e,r,n)}function dy(t){t.check(y.LPAREN)&&t.advance();let e=[];for(;t.isWord()&&(e.push(t.parseWord()),t.check(y.PIPE));)t.advance();if(e.length===0)return null;t.expect(y.RPAREN),t.skipNewlines();let r=[];for(;!t.check(y.DSEMI,y.SEMI_AND,y.SEMI_SEMI_AND,y.ESAC,y.EOF);){t.checkIterationLimit(),t.isWord()&&t.peek(1).type===y.RPAREN&&t.error("syntax error near unexpected token `)'"),t.check(y.LPAREN)&&t.peek(1).type===y.WORD&&t.error(`syntax error near unexpected token \`${t.peek(1).value}'`);let s=t.getPos(),i=t.parseStatement();if(i&&r.push(i),t.skipSeparators(!1),t.getPos()===s&&!i)break}let n=";;";return t.check(y.DSEMI)?(t.advance(),n=";;"):t.check(y.SEMI_AND)?(t.advance(),n=";&"):t.check(y.SEMI_SEMI_AND)&&(t.advance(),n=";;&"),O.caseItem(e,r,n)}function Zs(t){t.peek(1).type,y.LPAREN,t.expect(y.LPAREN),t.check(y.LPAREN)&&t.advance();let e=t.parseCompoundList();t.expect(y.RPAREN);let r=t.parseOptionalRedirections();return O.subshell(e,r)}function Qs(t){t.expect(y.LBRACE);let e=t.parseCompoundList();t.expect(y.RBRACE);let r=t.parseOptionalRedirections();return O.group(e,r)}var my=["-a","-b","-c","-d","-e","-f","-g","-h","-k","-p","-r","-s","-t","-u","-w","-x","-G","-L","-N","-O","-S","-z","-n","-o","-v","-R"],gy=["==","!=","=~","<",">","-eq","-ne","-lt","-le","-gt","-ge","-nt","-ot","-ef"];function Js(t){return t.skipNewlines(),yy(t)}function yy(t){let e=af(t);for(t.skipNewlines();t.check(y.OR_OR);){t.advance(),t.skipNewlines();let r=af(t);e={type:"CondOr",left:e,right:r},t.skipNewlines()}return e}function af(t){let e=Xs(t);for(t.skipNewlines();t.check(y.AND_AND);){t.advance(),t.skipNewlines();let r=Xs(t);e={type:"CondAnd",left:e,right:r},t.skipNewlines()}return e}function Xs(t){return t.skipNewlines(),t.check(y.BANG)?(t.advance(),t.skipNewlines(),{type:"CondNot",operand:Xs(t)}):xy(t)}function xy(t){if(t.check(y.LPAREN)){t.advance();let e=Js(t);return t.expect(y.RPAREN),{type:"CondGroup",expression:e}}if(t.isWord()){let e=t.current(),r=e.value;if(my.includes(r)&&!e.quoted&&(t.advance(),t.check(y.DBRACK_END)&&t.error(`Expected operand after ${r}`),t.isWord())){let s=t.parseWord();return{type:"CondUnary",operator:r,operand:s}}let n=t.parseWord();if(t.isWord()&&gy.includes(t.current().value)){let s=t.advance().value,i=t.parseWord();return{type:"CondBinary",operator:s,left:n,right:i}}if(t.check(y.LESS)){t.advance();let s=t.parseWord();return{type:"CondBinary",operator:"<",left:n,right:s}}if(t.check(y.GREAT)){t.advance();let s=t.parseWord();return{type:"CondBinary",operator:">",left:n,right:s}}if(t.isWord()&&t.current().value==="="){t.advance();let s=t.parseWord();return{type:"CondBinary",operator:"==",left:n,right:s}}return{type:"CondWord",word:n}}t.error("Expected conditional expression")}function Ey(t,e,r){let n=r+1,s=e[n];if("@*#?$!-0123456789".includes(s))return{part:O.parameterExpansion(s),endIndex:n+1};let i="";for(;n<e.length&&/[a-zA-Z0-9_]/.test(e[n]);)i+=e[n],n++;return{part:O.parameterExpansion(i),endIndex:n}}function by(t,e,r,n=!1){let s=r+2,i=!1;e[s]==="!"&&(i=!0,s++);let o=!1;e[s]==="#"&&!/[}:#%/^,]/.test(e[s+1]||"}")&&(o=!0,s++);let a="",l=e[s];if(/[@*#?$!-]/.test(l)&&!/[a-zA-Z0-9_]/.test(e[s+1]||""))a=l,s++;else for(;s<e.length&&/[a-zA-Z0-9_]/.test(e[s]);)a+=e[s],s++;if(e[s]==="["){let u=Us(t,e,s,"[","]");a+=e.slice(s,u+1),s=u+1}a===""&&!i&&!o&&e[s]!=="}"&&t.error(`\${${e[s]}}: bad substitution`);let c=null;if(i){let u=a.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[([@*])\]$/);if(u)c={type:"ArrayKeys",array:u[1],star:u[2]==="*"},a="";else if(e[s]==="*"||e[s]==="@"){let f=e[s];s++,c={type:"VarNamePrefix",prefix:a,star:f==="*"},a=""}else c={type:"Indirection"}}else if(o)if(e[s]===":")for(c={type:"LengthSliceError"};s<e.length&&e[s]!=="}";)s++;else e[s]!=="}"&&/[-+=?]/.test(e[s])?t.error(`\${#${a}${e.slice(s,e.indexOf("}",s))}}: bad substitution`):c={type:"Length"};if(!c&&s<e.length&&e[s]!=="}"){let u=Sy(t,e,s,a,n);c=u.operation,s=u.endIndex}if(s<e.length&&e[s]!=="}"){let u=e[s];if(!/[:\-+=?#%/^,@[]/.test(u)){let f=s;for(;f<e.length&&e[f]!=="}";)f++;let p=e.slice(r,f+1);t.error(`\${${p.slice(2,-1)}}: bad substitution`)}}for(;s<e.length&&e[s]!=="}";)s++;return{part:O.parameterExpansion(a,c),endIndex:s+1}}function Sy(t,e,r,n,s=!1){let i=r,o=e[i],a=e[i+1]||"";if(o===":"){let l=a;if("-=?+".includes(l)){i+=2;let w=vt(t,e,i),E=e.slice(i,w),b=at(t,E,!1,!1,!0,!1,s),S=O.word(b.length>0?b:[O.literal("")]);if(l==="-")return{operation:{type:"DefaultValue",word:S,checkEmpty:!0},endIndex:w};if(l==="=")return{operation:{type:"AssignDefault",word:S,checkEmpty:!0},endIndex:w};if(l==="?")return{operation:{type:"ErrorIfUnset",word:S,checkEmpty:!0},endIndex:w};if(l==="+")return{operation:{type:"UseAlternative",word:S,checkEmpty:!0},endIndex:w}}i++;let c=vt(t,e,i),u=e.slice(i,c),f=-1,p=0,d=0;for(let g=0;g<u.length;g++){let w=u[g];if(w==="("||w==="[")p++;else if(w===")"||w==="]")p--;else if(w==="?"&&p===0)d++;else if(w===":"&&p===0)if(d>0)d--;else{f=g;break}}let h=f>=0?u.slice(0,f):u,m=f>=0?u.slice(f+1):null;return{operation:{type:"Substring",offset:js(t,h),length:m?js(t,m):null},endIndex:c}}if("-=?+".includes(o)){i++;let l=vt(t,e,i),c=e.slice(i,l),u=at(t,c,!1,!1,!0,!1,s),f=O.word(u.length>0?u:[O.literal("")]);if(o==="-")return{operation:{type:"DefaultValue",word:f,checkEmpty:!1},endIndex:l};if(o==="=")return{operation:{type:"AssignDefault",word:f,checkEmpty:!1},endIndex:l};if(o==="?")return{operation:{type:"ErrorIfUnset",word:c?f:null,checkEmpty:!1},endIndex:l};if(o==="+")return{operation:{type:"UseAlternative",word:f,checkEmpty:!1},endIndex:l}}if(o==="#"||o==="%"){let l=a===o,c=o==="#"?"prefix":"suffix";i+=l?2:1;let u=vt(t,e,i),f=e.slice(i,u),p=at(t,f,!1,!1,!1);return{operation:{type:"PatternRemoval",pattern:O.word(p.length>0?p:[O.literal("")]),side:c,greedy:l},endIndex:u}}if(o==="/"){let l=a==="/";i+=l?2:1;let c=null;e[i]==="#"?(c="start",i++):e[i]==="%"&&(c="end",i++);let u=Ju(t,e,i),f=e.slice(i,u),p=at(t,f,!1,!1,!1),d=O.word(p.length>0?p:[O.literal("")]),h=null,m=u;if(e[u]==="/"){let g=u+1,w=vt(t,e,g),E=e.slice(g,w),b=at(t,E,!1,!1,!1);h=O.word(b.length>0?b:[O.literal("")]),m=w}return{operation:{type:"PatternReplacement",pattern:d,replacement:h,all:l,anchor:c},endIndex:m}}if(o==="^"||o===","){let l=a===o,c=o==="^"?"upper":"lower";i+=l?2:1;let u=vt(t,e,i),f=e.slice(i,u),p=f?O.word([O.literal(f)]):null;return{operation:{type:"CaseModification",direction:c,all:l,pattern:p},endIndex:u}}return o==="@"&&/[QPaAEK]/.test(a)?{operation:{type:"Transform",operator:a},endIndex:i+2}:{operation:null,endIndex:i}}function Ys(t,e,r,n=!1){let s=r+1;if(s>=e.length)return{part:O.literal("$"),endIndex:s};let i=e[s];if(i==="("&&e[s+1]==="(")return t.parseArithmeticExpansion(e,r);if(i==="["){let o=1,a=s+1;for(;a<e.length&&o>0;)e[a]==="["?o++:e[a]==="]"&&o--,o>0&&a++;if(o===0){let l=e.slice(s+1,a),c=Ee(t,l);return{part:O.arithmeticExpansion(c),endIndex:a+1}}}return i==="("?t.parseCommandSubstitution(e,r):i==="{"?by(t,e,r,n):/[a-zA-Z_0-9@*#?$!-]/.test(i)?Ey(t,e,r):{part:O.literal("$"),endIndex:s}}function Cy(t,e){let r=[],n=0,s="",i=()=>{s&&(r.push(O.literal(s)),s="")};for(;n<e.length;){let o=e[n];if(o==="\\"&&n+1<e.length){let a=e[n+1];if(a==="$"||a==="`"){s+=a,n+=2;continue}s+=o,n++;continue}if(o==="$"){i();let{part:a,endIndex:l}=Ys(t,e,n,!0);a&&r.push(a),n=l;continue}if(o==="`"){i();let{part:a,endIndex:l}=t.parseBacktickSubstitution(e,n,!0);r.push(a),n=l;continue}s+=o,n++}return i(),r}function Ay(t,e,r){let n=[],s=r,i="",o=()=>{i&&(n.push(O.literal(i)),i="")};for(;s<e.length&&e[s]!=='"';){let a=e[s];if(a==="\\"&&s+1<e.length){let l=e[s+1];if('"\\$`\n'.includes(l)){i+=l,s+=2;continue}i+=a,s++;continue}if(a==="$"){o();let{part:l,endIndex:c}=Ys(t,e,s,!0);l&&n.push(l),s=c;continue}if(a==="`"){o();let{part:l,endIndex:c}=t.parseBacktickSubstitution(e,s,!0);n.push(l),s=c;continue}i+=a,s++}return o(),{part:O.doubleQuoted(n),endIndex:s}}function at(t,e,r=!1,n=!1,s=!1,i=!1,o=!1){if(n)return[O.singleQuoted(e)];if(r){let f=Cy(t,e);return[O.doubleQuoted(f)]}let a=[],l=0,c="",u=()=>{c&&(a.push(O.literal(c)),c="")};for(;l<e.length;){let f=e[l];if(f==="\\"&&l+1<e.length){let p=e[l+1];(i?p==="$"||p==="`"||p==="\\"||p===`
643
- `:p==="$"||p==="`"||p==="\\"||p==='"'||p===`
644
- `)?c+=p:c+=`\\${p}`,l+=2;continue}if(f==="'"&&!o&&!i){u();let p=e.indexOf("'",l+1);if(p===-1){c+=e.slice(l);break}a.push(O.singleQuoted(e.slice(l+1,p))),l=p+1;continue}if(f==='"'&&!i){u();let{part:p,endIndex:d}=Ay(t,e,l+1);a.push(p),l=d+1;continue}if(f==="$"&&e[l+1]==="'"){u();let{part:p,endIndex:d}=ef(t,e,l+2);a.push(p),l=d;continue}if(f==="$"){u();let{part:p,endIndex:d}=Ys(t,e,l);p&&a.push(p),l=d;continue}if(f==="`"){u();let{part:p,endIndex:d}=t.parseBacktickSubstitution(e,l);a.push(p),l=d;continue}if(f==="~"){let p=l>0?e[l-1]:"";if(l===0||p==="="||s&&p===":"){let h=Xu(t,e,l),m=e[h];if(m===void 0||m==="/"||m===":"){u();let g=e.slice(l+1,h)||null;a.push({type:"TildeExpansion",user:g}),l=h;continue}}}if(f==="*"||f==="?"||f==="["){u();let{pattern:p,endIndex:d}=Yu(t,e,l);a.push({type:"Glob",pattern:p}),l=d;continue}if(f==="{"&&!s){let p=tf(t,e,l,at);if(p){u(),a.push(p.part),l=p.endIndex;continue}}c+=f,l++}return u(),a}var Se=class t{tokens=[];pos=0;pendingHeredocs=[];parseIterations=0;checkIterationLimit(){if(this.parseIterations++,this.parseIterations>Vu)throw new tt("Maximum parse iterations exceeded (possible infinite loop)",this.current().line,this.current().column)}parse(e){if(e.length>Bs)throw new tt(`Input too large: ${e.length} bytes exceeds limit of ${Bs}`,1,1);let r=new pn(e);if(this.tokens=r.tokenize(),this.tokens.length>Ws)throw new tt(`Too many tokens: ${this.tokens.length} exceeds limit of ${Ws}`,1,1);return this.pos=0,this.pendingHeredocs=[],this.parseIterations=0,this.parseScript()}parseTokens(e){return this.tokens=e,this.pos=0,this.pendingHeredocs=[],this.parseScript()}current(){return this.tokens[this.pos]||this.tokens[this.tokens.length-1]}peek(e=0){return this.tokens[this.pos+e]||this.tokens[this.tokens.length-1]}advance(){let e=this.current();return this.pos<this.tokens.length-1&&this.pos++,e}getPos(){return this.pos}check(e,r,n,s,...i){let o=this.tokens[this.pos]?.type;return o===e||r!==void 0&&o===r||n!==void 0&&o===n||s!==void 0&&o===s?!0:i.length>0?i.includes(o):!1}expect(e,r){if(this.check(e))return this.advance();let n=this.current();throw new tt(r||`Expected ${e}, got ${n.type}`,n.line,n.column,n)}error(e){let r=this.current();throw new tt(e,r.line,r.column,r)}skipNewlines(){for(;this.check(y.NEWLINE,y.COMMENT);)this.check(y.NEWLINE)?(this.advance(),this.processHeredocs()):this.advance()}skipSeparators(e=!0){for(;;){if(this.check(y.NEWLINE)){this.advance(),this.processHeredocs();continue}if(this.check(y.SEMICOLON,y.COMMENT)){this.advance();continue}if(e&&this.check(y.DSEMI,y.SEMI_AND,y.SEMI_SEMI_AND)){this.advance();continue}break}}addPendingHeredoc(e,r,n,s){this.pendingHeredocs.push({redirect:e,delimiter:r,stripTabs:n,quoted:s})}processHeredocs(){for(let e of this.pendingHeredocs)if(this.check(y.HEREDOC_CONTENT)){let r=this.advance(),n;e.quoted?n=O.word([O.literal(r.value)]):n=this.parseWordFromString(r.value,!1,!1,!1,!0),e.redirect.target=O.hereDoc(e.delimiter,n,e.stripTabs,e.quoted)}this.pendingHeredocs=[]}isStatementEnd(){return this.check(y.EOF,y.NEWLINE,y.SEMICOLON,y.AMP,y.AND_AND,y.OR_OR,y.RPAREN,y.RBRACE,y.DSEMI,y.SEMI_AND,y.SEMI_SEMI_AND)}isCommandStart(){let e=this.current().type;return e===y.WORD||e===y.NAME||e===y.NUMBER||e===y.ASSIGNMENT_WORD||e===y.IF||e===y.FOR||e===y.WHILE||e===y.UNTIL||e===y.CASE||e===y.LPAREN||e===y.LBRACE||e===y.DPAREN_START||e===y.DBRACK_START||e===y.FUNCTION||e===y.BANG||e===y.IN||e===y.LESS||e===y.GREAT||e===y.DLESS||e===y.DGREAT||e===y.LESSAND||e===y.GREATAND||e===y.LESSGREAT||e===y.DLESSDASH||e===y.CLOBBER||e===y.TLESS||e===y.AND_GREAT||e===y.AND_DGREAT}parseScript(){let e=[],n=0;for(this.skipNewlines();!this.check(y.EOF);){n++,n>1e4&&this.error("Parser stuck: too many iterations (>10000)"),this.checkUnexpectedToken();let s=this.pos,i=this.parseStatement();i&&e.push(i),this.skipSeparators(!1),this.check(y.DSEMI,y.SEMI_AND,y.SEMI_SEMI_AND)&&this.error(`syntax error near unexpected token \`${this.current().value}'`),this.pos===s&&!this.check(y.EOF)&&this.advance()}return O.script(e)}checkUnexpectedToken(){let e=this.current().type,r=this.current().value;(e===y.DO||e===y.DONE||e===y.THEN||e===y.ELSE||e===y.ELIF||e===y.FI||e===y.ESAC)&&this.error(`syntax error near unexpected token \`${r}'`),(e===y.RBRACE||e===y.RPAREN)&&this.error(`syntax error near unexpected token \`${r}'`),(e===y.DSEMI||e===y.SEMI_AND||e===y.SEMI_SEMI_AND)&&this.error(`syntax error near unexpected token \`${r}'`),e===y.SEMICOLON&&this.error(`syntax error near unexpected token \`${r}'`)}parseStatement(){if(this.skipNewlines(),!this.isCommandStart())return null;let e=[],r=[],n=!1,s=this.parsePipeline();for(e.push(s);this.check(y.AND_AND,y.OR_OR);){let i=this.advance();r.push(i.type===y.AND_AND?"&&":"||"),this.skipNewlines();let o=this.parsePipeline();e.push(o)}return this.check(y.AMP)&&(this.advance(),n=!0),O.statement(e,r,n)}parsePipeline(){let e=0;for(;this.check(y.BANG);)this.advance(),e++;let r=e%2===1,n=[],s=this.parseCommand();for(n.push(s);this.check(y.PIPE,y.PIPE_AMP);){let i=this.advance();this.skipNewlines();let o=this.parseCommand();i.type===y.PIPE_AMP&&o.type==="SimpleCommand"&&o.redirections.unshift(O.redirection(">&",O.word([O.literal("1")]),2)),n.push(o)}return O.pipeline(n,r)}parseCommand(){return this.check(y.IF)?Hs(this):this.check(y.FOR)?Gs(this):this.check(y.WHILE)?qs(this):this.check(y.UNTIL)?Vs(this):this.check(y.CASE)?Ks(this):this.check(y.LPAREN)?Zs(this):this.check(y.LBRACE)?Qs(this):this.check(y.DPAREN_START)?this.parseArithmeticCommand():this.check(y.DBRACK_START)?this.parseConditionalCommand():this.check(y.FUNCTION)?this.parseFunctionDef():this.check(y.NAME,y.WORD)&&this.peek(1).type===y.LPAREN&&this.peek(2).type===y.RPAREN?this.parseFunctionDef():of(this)}isWord(){let e=this.current().type;return e===y.WORD||e===y.NAME||e===y.NUMBER||e===y.IF||e===y.FOR||e===y.WHILE||e===y.UNTIL||e===y.CASE||e===y.FUNCTION||e===y.ELSE||e===y.ELIF||e===y.FI||e===y.THEN||e===y.DO||e===y.DONE||e===y.ESAC||e===y.IN||e===y.SELECT||e===y.TIME||e===y.COPROC||e===y.BANG}parseWord(){let e=this.advance();return this.parseWordFromString(e.value,e.quoted,e.singleQuoted)}parseWordFromString(e,r=!1,n=!1,s=!1,i=!1){let o=at(this,e,r,n,s,i);return O.word(o)}parseCommandSubstitution(e,r){let n=r+2,s=1,i=n,o=!1,a=!1,l=0,c=!1,u="";for(;i<e.length&&s>0;){let h=e[i];o?h==="'"&&(o=!1):a?h==="\\"&&i+1<e.length?i++:h==='"'&&(a=!1):h==="'"?(o=!0,u=""):h==='"'?(a=!0,u=""):h==="\\"&&i+1<e.length?(i++,u=""):/[a-zA-Z_]/.test(h)?u+=h:(u==="case"?(l++,c=!1):u==="in"&&l>0?c=!0:u==="esac"&&l>0&&(l--,c=!1),u="",h==="("?i>0&&e[i-1]==="$"?s++:c||s++:h===")"?c?c=!1:s--:h===";"&&l>0&&i+1<e.length&&e[i+1]===";"&&(c=!0)),s>0&&i++}s>0&&this.error("unexpected EOF while looking for matching `)'");let f=e.slice(n,i),d=new t().parse(f);return{part:O.commandSubstitution(d,!1),endIndex:i+1}}parseBacktickSubstitution(e,r,n=!1){let i=r+1,o="";for(;i<e.length&&e[i]!=="`";)if(e[i]==="\\"){let c=e[i+1];c==="$"||c==="`"||c==="\\"||c===`
641
+ `||o===";"||o==="&"||o==="|")return null;s++}}return null}};var si=1e6,ii=1e5,gf=1e6,yf=new Set([y.LESS,y.GREAT,y.DLESS,y.DGREAT,y.LESSAND,y.GREATAND,y.LESSGREAT,y.DLESSDASH,y.CLOBBER,y.TLESS,y.AND_GREAT,y.AND_DGREAT]),xf=new Set([y.LESS,y.GREAT,y.DLESS,y.DGREAT,y.LESSAND,y.GREATAND,y.LESSGREAT,y.DLESSDASH,y.CLOBBER,y.TLESS]),ft=class extends Error{line;column;token;constructor(e,r,n,s=void 0){super(`Parse error at ${r}:${n}: ${e}`),this.line=r,this.column=n,this.token=s,this.name="ParseException"}};function Ef(t,e,r){let n=r+1;for(;n<e.length&&/[a-zA-Z0-9_-]/.test(e[n]);)n++;return n}function oi(t,e,r,n,s){let i=1,o=r+1;for(;o<e.length&&i>0;)e[o]===n?i++:e[o]===s&&i--,i>0&&o++;return i===0?o:-1}function Bt(t,e,r){let n=r,s=1;for(;n<e.length&&s>0;){let i=e[n];if(i==="\\"&&n+1<e.length){n+=2;continue}if(i==="'"){let o=e.indexOf("'",n+1);if(o!==-1){n=o+1;continue}}if(i==='"'){for(n++;n<e.length&&e[n]!=='"';)e[n]==="\\"&&n+1<e.length?n+=2:n++;n<e.length&&n++;continue}i==="{"?s++:i==="}"&&s--,s>0&&n++}return n}function bf(t,e,r){let n=r,s=!1;for(;n<e.length;){let i=e[n];if(i==="/"&&s||i==="}")break;if(i==="'"){let o=e.indexOf("'",n+1);if(o!==-1){n=o+1,s=!0;continue}}if(i==='"'){for(n++;n<e.length&&e[n]!=='"';)e[n]==="\\"&&n+1<e.length?n+=2:n++;n<e.length&&n++,s=!0;continue}i==="\\"?(n+=2,s=!0):(n++,s=!0)}return n}function Sf(t,e,r){let n=r,s="";for(;n<e.length;){let i=e[n];if(i==="*"||i==="?")s+=i,n++;else if(i==="["){let o=Dy(e,n);o===-1?(s+=i,n++):(s+=e.slice(n,o+1),n=o+1)}else break}return{pattern:s,endIndex:n}}function Dy(t,e){let r=e+1;for(r<t.length&&t[r]==="^"&&r++,r<t.length&&t[r]==="]"&&r++;r<t.length;){let n=t[r];if(n==="\\"&&r+1<t.length){r+=2;continue}if(n==="]")return r;if(n==='"'||n==="$"||n==="`")return-1;if(n==="'"){let s=t.indexOf("'",r+1);if(s!==-1){r=s+1;continue}}if(n==="["&&r+1<t.length&&t[r+1]===":"){let s=t.indexOf(":]",r+2);if(s!==-1){r=s+2;continue}}if(n==="["&&r+1<t.length&&(t[r+1]==="."||t[r+1]==="=")){let i=`${t[r+1]}]`,o=t.indexOf(i,r+2);if(o!==-1){r=o+2;continue}}r++}return-1}function Cf(t,e,r){let n="",s=r;for(;s<e.length&&e[s]!=="'";){let i=e[s];if(i==="\\"&&s+1<e.length)switch(e[s+1]){case"n":n+=`
642
+ `,s+=2;break;case"t":n+=" ",s+=2;break;case"r":n+="\r",s+=2;break;case"\\":n+="\\",s+=2;break;case"'":n+="'",s+=2;break;case'"':n+='"',s+=2;break;case"a":n+="\x07",s+=2;break;case"b":n+="\b",s+=2;break;case"e":case"E":n+="\x1B",s+=2;break;case"f":n+="\f",s+=2;break;case"v":n+="\v",s+=2;break;case"x":{let a=e.slice(s+2,s+4),l=parseInt(a,16);Number.isNaN(l)?(n+="\\x",s+=2):(n+=String.fromCharCode(l),s+=4);break}case"u":{let a=e.slice(s+2,s+6),l=parseInt(a,16);Number.isNaN(l)?(n+="\\u",s+=2):(n+=String.fromCharCode(l),s+=6);break}case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":{let a="",l=s+1;for(;l<e.length&&l<s+4&&/[0-7]/.test(e[l]);)a+=e[l],l++;let c=parseInt(a,8);n+=String.fromCharCode(c),s=l;break}default:n+=i,s++}else n+=i,s++}return s<e.length&&e[s]==="'"&&s++,{part:P.literal(n),endIndex:s}}function ai(t,e){let r=e.trim();return r===""?{type:"ArithmeticExpression",expression:{type:"ArithNumber",value:0}}:Ae(t,r)}function wf(t){let e=[],r="",n=0;for(let s=0;s<t.length;s++){let i=t[s];i==="{"?(n++,r+=i):i==="}"?(n--,r+=i):i===","&&n===0?(e.push(r),r=""):r+=i}return e.push(r),e}function Af(t,e,r,n){let s=oi(t,e,r,"{","}");if(s===-1)return null;let i=e.slice(r+1,s),o=i.match(/^(-?\d+)\.\.(-?\d+)(?:\.\.(-?\d+))?$/);if(o)return{part:{type:"BraceExpansion",items:[{type:"Range",start:Number.parseInt(o[1],10),end:Number.parseInt(o[2],10),step:o[3]?Number.parseInt(o[3],10):void 0,startStr:o[1],endStr:o[2]}]},endIndex:s+1};let a=i.match(/^([a-zA-Z])\.\.([a-zA-Z])(?:\.\.(-?\d+))?$/);return a?{part:{type:"BraceExpansion",items:[{type:"Range",start:a[1],end:a[2],step:a[3]?Number.parseInt(a[3],10):void 0}]},endIndex:s+1}:i.includes(",")&&n?{part:{type:"BraceExpansion",items:wf(i).map(u=>({type:"Word",word:P.word(n(t,u,!1,!1,!1))}))},endIndex:s+1}:i.includes(",")?{part:{type:"BraceExpansion",items:wf(i).map(u=>({type:"Word",word:P.word([P.literal(u)])}))},endIndex:s+1}:null}function kf(t,e){let r="";for(let n of e.parts)switch(n.type){case"Literal":case"SingleQuoted":case"Escaped":r+=n.value;break;case"DoubleQuoted":r+='"';for(let s of n.parts)s.type==="Literal"||s.type==="Escaped"?r+=s.value:s.type==="ParameterExpansion"&&(r+=`\${${s.parameter}}`);r+='"';break;case"ParameterExpansion":r+=`\${${n.parameter}}`;break;case"Glob":r+=n.pattern;break;default:r+=n.type}return r}function Nf(t,e){return{[y.LESS]:"<",[y.GREAT]:">",[y.DGREAT]:">>",[y.LESSAND]:"<&",[y.GREATAND]:">&",[y.LESSGREAT]:"<>",[y.CLOBBER]:">|",[y.TLESS]:"<<<",[y.AND_GREAT]:"&>",[y.AND_DGREAT]:"&>>",[y.DLESS]:"<",[y.DLESSDASH]:"<"}[e]||">"}function Rn(t){let e=t.current(),r=e.type;if(r===y.NUMBER){let n=t.peek(1);return e.end!==n.start?!1:xf.has(n.type)}return yf.has(r)}function Pn(t){let e=null;t.check(y.NUMBER)&&(e=Number.parseInt(t.advance().value,10));let r=t.advance(),n=Nf(t,r.type);if(r.type===y.DLESS||r.type===y.DLESSDASH)return Ly(t,n,e,r.type===y.DLESSDASH);t.isWord()||t.error("Expected redirection target");let s=t.parseWord();return P.redirection(n,s,e)}function Ly(t,e,r,n){t.isWord()||t.error("Expected here-document delimiter");let s=t.advance(),i=s.value,o=s.quoted||!1;(i.startsWith("'")&&i.endsWith("'")||i.startsWith('"')&&i.endsWith('"'))&&(i=i.slice(1,-1));let a=P.redirection(n?"<<-":"<<",P.hereDoc(i,P.word([]),n,o),r);return t.addPendingHeredoc(a,i,n,o),a}function vf(t){let e=t.current().line,r=[],n=null,s=[],i=[];for(;t.check(y.ASSIGNMENT_WORD);)t.checkIterationLimit(),r.push(My(t));for(;Rn(t);)t.checkIterationLimit(),i.push(Pn(t));for(t.isWord()&&(n=t.parseWord());(!t.isStatementEnd()||t.check(y.RBRACE))&&!t.check(y.PIPE,y.PIPE_AMP);)if(t.checkIterationLimit(),Rn(t))i.push(Pn(t));else if(t.check(y.RBRACE)){let a=t.advance();s.push(t.parseWordFromString(a.value,!1,!1))}else if(t.isWord())s.push(t.parseWord());else if(t.check(y.ASSIGNMENT_WORD)){let a=t.advance(),l=a.value,c=l.endsWith("="),u=l.endsWith("=(");if((c||u)&&(u||t.check(y.LPAREN))){let f=u?l.slice(0,-2):l.slice(0,-1);u||t.expect(y.LPAREN);let d=li(t);t.expect(y.RPAREN);let p=d.map(m=>kf(t,m)),h=`${f}=(${p.join(" ")})`;s.push(t.parseWordFromString(h,!1,!1))}else s.push(t.parseWordFromString(l,a.quoted,a.singleQuoted))}else if(t.check(y.LPAREN))t.error("syntax error near unexpected token `('");else break;let o=P.simpleCommand(n,s,r,i);return o.line=e,o}function My(t){let e=t.expect(y.ASSIGNMENT_WORD),r=e.value,n=r.match(/^[a-zA-Z_][a-zA-Z0-9_]*/);n||t.error(`Invalid assignment: ${r}`);let s=n[0],i,o=s.length;if(r[o]==="["){let f=0,d=o+1;for(;o<r.length;o++)if(r[o]==="[")f++;else if(r[o]==="]"&&(f--,f===0))break;f!==0&&t.error(`Invalid assignment: ${r}`),i=r.slice(d,o),o++}let a=r[o]==="+";a&&o++,r[o]!=="="&&t.error(`Invalid assignment: ${r}`),o++;let l=r.slice(o);if(l==="("){let f=li(t);t.expect(y.RPAREN);let d=i!==void 0?`${s}[${i}]`:s;return P.assignment(d,null,a,f)}if(l===""&&t.check(y.LPAREN)){let f=t.current();if(e.end===f.start){t.advance();let d=li(t);t.expect(y.RPAREN);let p=i!==void 0?`${s}[${i}]`:s;return P.assignment(p,null,a,d)}}let c=l?t.parseWordFromString(l,e.quoted,e.singleQuoted,!0):null,u=i!==void 0?`${s}[${i}]`:s;return P.assignment(u,c,a,null)}function li(t){let e=[];for(t.skipNewlines();!t.check(y.RPAREN,y.EOF);)t.checkIterationLimit(),t.isWord()?e.push(t.parseWord()):t.advance(),t.skipNewlines();return e}function ci(t){t.expect(y.IF);let e=[],r=t.parseCompoundList();t.expect(y.THEN);let n=t.parseCompoundList();if(n.length===0){let o=t.check(y.FI)?"fi":t.check(y.ELSE)?"else":t.check(y.ELIF)?"elif":"fi";t.error(`syntax error near unexpected token \`${o}'`)}for(e.push({condition:r,body:n});t.check(y.ELIF);){t.advance();let o=t.parseCompoundList();t.expect(y.THEN);let a=t.parseCompoundList();if(a.length===0){let l=t.check(y.FI)?"fi":t.check(y.ELSE)?"else":t.check(y.ELIF)?"elif":"fi";t.error(`syntax error near unexpected token \`${l}'`)}e.push({condition:o,body:a})}let s=null;t.check(y.ELSE)&&(t.advance(),s=t.parseCompoundList(),s.length===0&&t.error("syntax error near unexpected token `fi'")),t.expect(y.FI);let i=t.parseOptionalRedirections();return P.ifNode(e,s,i)}function ui(t){if(t.expect(y.FOR),t.check(y.DPAREN_START))return By(t);t.isWord()||t.error("Expected variable name in for loop");let r=t.advance().value,n=null;if(t.skipNewlines(),t.check(y.IN))for(t.advance(),n=[];!t.check(y.SEMICOLON,y.NEWLINE,y.DO,y.EOF)&&t.isWord();)n.push(t.parseWord());t.check(y.SEMICOLON)&&t.advance(),t.skipNewlines(),t.expect(y.DO);let s=t.parseCompoundList();t.expect(y.DONE);let i=t.parseOptionalRedirections();return P.forNode(r,n,s,i)}function By(t){t.expect(y.DPAREN_START);let e=null,r=null,n=null,s=["","",""],i=0,o=0;for(;!t.check(y.DPAREN_END,y.EOF);){let c=t.advance();if(c.type===y.SEMICOLON&&o===0){if(i++,i>2)break}else c.value==="("&&o++,c.value===")"&&o--,s[i]+=c.value}t.expect(y.DPAREN_END),s[0].trim()&&(e=Ae(t,s[0].trim())),s[1].trim()&&(r=Ae(t,s[1].trim())),s[2].trim()&&(n=Ae(t,s[2].trim())),t.skipNewlines(),t.check(y.SEMICOLON)&&t.advance(),t.skipNewlines(),t.expect(y.DO);let a=t.parseCompoundList();t.expect(y.DONE);let l=t.parseOptionalRedirections();return{type:"CStyleFor",init:e,condition:r,update:n,body:a,redirections:l}}function fi(t){t.expect(y.WHILE);let e=t.parseCompoundList();t.expect(y.DO);let r=t.parseCompoundList();r.length===0&&t.error("syntax error near unexpected token `done'"),t.expect(y.DONE);let n=t.parseOptionalRedirections();return P.whileNode(e,r,n)}function di(t){t.expect(y.UNTIL);let e=t.parseCompoundList();t.expect(y.DO);let r=t.parseCompoundList();r.length===0&&t.error("syntax error near unexpected token `done'"),t.expect(y.DONE);let n=t.parseOptionalRedirections();return P.untilNode(e,r,n)}function pi(t){t.expect(y.CASE),t.isWord()||t.error("Expected word after 'case'");let e=t.parseWord();t.skipNewlines(),t.expect(y.IN),t.skipNewlines();let r=[];for(;!t.check(y.ESAC,y.EOF);){t.checkIterationLimit();let s=t.getPos(),i=Wy(t);if(i&&r.push(i),t.skipNewlines(),t.getPos()===s&&!i)break}t.expect(y.ESAC);let n=t.parseOptionalRedirections();return P.caseNode(e,r,n)}function Wy(t){t.check(y.LPAREN)&&t.advance();let e=[];for(;t.isWord()&&(e.push(t.parseWord()),t.check(y.PIPE));)t.advance();if(e.length===0)return null;t.expect(y.RPAREN),t.skipNewlines();let r=[];for(;!t.check(y.DSEMI,y.SEMI_AND,y.SEMI_SEMI_AND,y.ESAC,y.EOF);){t.checkIterationLimit(),t.isWord()&&t.peek(1).type===y.RPAREN&&t.error("syntax error near unexpected token `)'"),t.check(y.LPAREN)&&t.peek(1).type===y.WORD&&t.error(`syntax error near unexpected token \`${t.peek(1).value}'`);let s=t.getPos(),i=t.parseStatement();if(i&&r.push(i),t.skipSeparators(!1),t.getPos()===s&&!i)break}let n=";;";return t.check(y.DSEMI)?(t.advance(),n=";;"):t.check(y.SEMI_AND)?(t.advance(),n=";&"):t.check(y.SEMI_SEMI_AND)&&(t.advance(),n=";;&"),P.caseItem(e,r,n)}function hi(t){t.peek(1).type,y.LPAREN,t.expect(y.LPAREN),t.check(y.LPAREN)&&t.advance();let e=t.parseCompoundList();t.expect(y.RPAREN);let r=t.parseOptionalRedirections();return P.subshell(e,r)}function mi(t){t.expect(y.LBRACE);let e=t.parseCompoundList();t.expect(y.RBRACE);let r=t.parseOptionalRedirections();return P.group(e,r)}var zy=["-a","-b","-c","-d","-e","-f","-g","-h","-k","-p","-r","-s","-t","-u","-w","-x","-G","-L","-N","-O","-S","-z","-n","-o","-v","-R"],jy=["==","!=","=~","<",">","-eq","-ne","-lt","-le","-gt","-ge","-nt","-ot","-ef"];function yi(t){return t.skipNewlines(),Hy(t)}function Hy(t){let e=$f(t);for(t.skipNewlines();t.check(y.OR_OR);){t.advance(),t.skipNewlines();let r=$f(t);e={type:"CondOr",left:e,right:r},t.skipNewlines()}return e}function $f(t){let e=gi(t);for(t.skipNewlines();t.check(y.AND_AND);){t.advance(),t.skipNewlines();let r=gi(t);e={type:"CondAnd",left:e,right:r},t.skipNewlines()}return e}function gi(t){return t.skipNewlines(),t.check(y.BANG)?(t.advance(),t.skipNewlines(),{type:"CondNot",operand:gi(t)}):Gy(t)}function Gy(t){if(t.check(y.LPAREN)){t.advance();let e=yi(t);return t.expect(y.RPAREN),{type:"CondGroup",expression:e}}if(t.isWord()){let e=t.current(),r=e.value;if(zy.includes(r)&&!e.quoted&&(t.advance(),t.check(y.DBRACK_END)&&t.error(`Expected operand after ${r}`),t.isWord())){let s=t.parseWord();return{type:"CondUnary",operator:r,operand:s}}let n=t.parseWord();if(t.isWord()&&jy.includes(t.current().value)){let s=t.advance().value,i=t.parseWord();return{type:"CondBinary",operator:s,left:n,right:i}}if(t.check(y.LESS)){t.advance();let s=t.parseWord();return{type:"CondBinary",operator:"<",left:n,right:s}}if(t.check(y.GREAT)){t.advance();let s=t.parseWord();return{type:"CondBinary",operator:">",left:n,right:s}}if(t.isWord()&&t.current().value==="="){t.advance();let s=t.parseWord();return{type:"CondBinary",operator:"==",left:n,right:s}}return{type:"CondWord",word:n}}t.error("Expected conditional expression")}function Vy(t,e,r){let n=r+1,s=e[n];if("@*#?$!-0123456789".includes(s))return{part:P.parameterExpansion(s),endIndex:n+1};let i="";for(;n<e.length&&/[a-zA-Z0-9_]/.test(e[n]);)i+=e[n],n++;return{part:P.parameterExpansion(i),endIndex:n}}function Ky(t,e,r,n=!1){let s=r+2,i=!1;e[s]==="!"&&(i=!0,s++);let o=!1;e[s]==="#"&&!/[}:#%/^,]/.test(e[s+1]||"}")&&(o=!0,s++);let a="",l=e[s];if(/[@*#?$!-]/.test(l)&&!/[a-zA-Z0-9_]/.test(e[s+1]||""))a=l,s++;else for(;s<e.length&&/[a-zA-Z0-9_]/.test(e[s]);)a+=e[s],s++;if(e[s]==="["){let u=oi(t,e,s,"[","]");a+=e.slice(s,u+1),s=u+1}a===""&&!i&&!o&&e[s]!=="}"&&t.error(`\${${e[s]}}: bad substitution`);let c=null;if(i){let u=a.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[([@*])\]$/);if(u)c={type:"ArrayKeys",array:u[1],star:u[2]==="*"},a="";else if(e[s]==="*"||e[s]==="@"){let f=e[s];s++,c={type:"VarNamePrefix",prefix:a,star:f==="*"},a=""}else c={type:"Indirection"}}else if(o)if(e[s]===":")for(c={type:"LengthSliceError"};s<e.length&&e[s]!=="}";)s++;else e[s]!=="}"&&/[-+=?]/.test(e[s])?t.error(`\${#${a}${e.slice(s,e.indexOf("}",s))}}: bad substitution`):c={type:"Length"};if(!c&&s<e.length&&e[s]!=="}"){let u=Zy(t,e,s,a,n);c=u.operation,s=u.endIndex}if(s<e.length&&e[s]!=="}"){let u=e[s];if(!/[:\-+=?#%/^,@[]/.test(u)){let f=s;for(;f<e.length&&e[f]!=="}";)f++;let d=e.slice(r,f+1);t.error(`\${${d.slice(2,-1)}}: bad substitution`)}}for(;s<e.length&&e[s]!=="}";)s++;return{part:P.parameterExpansion(a,c),endIndex:s+1}}function Zy(t,e,r,n,s=!1){let i=r,o=e[i],a=e[i+1]||"";if(o===":"){let l=a;if("-=?+".includes(l)){i+=2;let w=Bt(t,e,i),E=e.slice(i,w),b=yt(t,E,!1,!1,!0,!1,s),S=P.word(b.length>0?b:[P.literal("")]);if(l==="-")return{operation:{type:"DefaultValue",word:S,checkEmpty:!0},endIndex:w};if(l==="=")return{operation:{type:"AssignDefault",word:S,checkEmpty:!0},endIndex:w};if(l==="?")return{operation:{type:"ErrorIfUnset",word:S,checkEmpty:!0},endIndex:w};if(l==="+")return{operation:{type:"UseAlternative",word:S,checkEmpty:!0},endIndex:w}}i++;let c=Bt(t,e,i),u=e.slice(i,c),f=-1,d=0,p=0;for(let g=0;g<u.length;g++){let w=u[g];if(w==="("||w==="[")d++;else if(w===")"||w==="]")d--;else if(w==="?"&&d===0)p++;else if(w===":"&&d===0)if(p>0)p--;else{f=g;break}}let h=f>=0?u.slice(0,f):u,m=f>=0?u.slice(f+1):null;return{operation:{type:"Substring",offset:ai(t,h),length:m?ai(t,m):null},endIndex:c}}if("-=?+".includes(o)){i++;let l=Bt(t,e,i),c=e.slice(i,l),u=yt(t,c,!1,!1,!0,!1,s),f=P.word(u.length>0?u:[P.literal("")]);if(o==="-")return{operation:{type:"DefaultValue",word:f,checkEmpty:!1},endIndex:l};if(o==="=")return{operation:{type:"AssignDefault",word:f,checkEmpty:!1},endIndex:l};if(o==="?")return{operation:{type:"ErrorIfUnset",word:c?f:null,checkEmpty:!1},endIndex:l};if(o==="+")return{operation:{type:"UseAlternative",word:f,checkEmpty:!1},endIndex:l}}if(o==="#"||o==="%"){let l=a===o,c=o==="#"?"prefix":"suffix";i+=l?2:1;let u=Bt(t,e,i),f=e.slice(i,u),d=yt(t,f,!1,!1,!1);return{operation:{type:"PatternRemoval",pattern:P.word(d.length>0?d:[P.literal("")]),side:c,greedy:l},endIndex:u}}if(o==="/"){let l=a==="/";i+=l?2:1;let c=null;e[i]==="#"?(c="start",i++):e[i]==="%"&&(c="end",i++);let u=bf(t,e,i),f=e.slice(i,u),d=yt(t,f,!1,!1,!1),p=P.word(d.length>0?d:[P.literal("")]),h=null,m=u;if(e[u]==="/"){let g=u+1,w=Bt(t,e,g),E=e.slice(g,w),b=yt(t,E,!1,!1,!1);h=P.word(b.length>0?b:[P.literal("")]),m=w}return{operation:{type:"PatternReplacement",pattern:p,replacement:h,all:l,anchor:c},endIndex:m}}if(o==="^"||o===","){let l=a===o,c=o==="^"?"upper":"lower";i+=l?2:1;let u=Bt(t,e,i),f=e.slice(i,u),d=f?P.word([P.literal(f)]):null;return{operation:{type:"CaseModification",direction:c,all:l,pattern:d},endIndex:u}}return o==="@"&&/[QPaAEK]/.test(a)?{operation:{type:"Transform",operator:a},endIndex:i+2}:{operation:null,endIndex:i}}function xi(t,e,r,n=!1){let s=r+1;if(s>=e.length)return{part:P.literal("$"),endIndex:s};let i=e[s];if(i==="("&&e[s+1]==="(")return t.parseArithmeticExpansion(e,r);if(i==="["){let o=1,a=s+1;for(;a<e.length&&o>0;)e[a]==="["?o++:e[a]==="]"&&o--,o>0&&a++;if(o===0){let l=e.slice(s+1,a),c=Ae(t,l);return{part:P.arithmeticExpansion(c),endIndex:a+1}}}return i==="("?t.parseCommandSubstitution(e,r):i==="{"?Ky(t,e,r,n):/[a-zA-Z_0-9@*#?$!-]/.test(i)?Vy(t,e,r):{part:P.literal("$"),endIndex:s}}function Qy(t,e){let r=[],n=0,s="",i=()=>{s&&(r.push(P.literal(s)),s="")};for(;n<e.length;){let o=e[n];if(o==="\\"&&n+1<e.length){let a=e[n+1];if(a==="$"||a==="`"){s+=a,n+=2;continue}s+=o,n++;continue}if(o==="$"){i();let{part:a,endIndex:l}=xi(t,e,n,!0);a&&r.push(a),n=l;continue}if(o==="`"){i();let{part:a,endIndex:l}=t.parseBacktickSubstitution(e,n,!0);r.push(a),n=l;continue}s+=o,n++}return i(),r}function Xy(t,e,r){let n=[],s=r,i="",o=()=>{i&&(n.push(P.literal(i)),i="")};for(;s<e.length&&e[s]!=='"';){let a=e[s];if(a==="\\"&&s+1<e.length){let l=e[s+1];if('"\\$`\n'.includes(l)){i+=l,s+=2;continue}i+=a,s++;continue}if(a==="$"){o();let{part:l,endIndex:c}=xi(t,e,s,!0);l&&n.push(l),s=c;continue}if(a==="`"){o();let{part:l,endIndex:c}=t.parseBacktickSubstitution(e,s,!0);n.push(l),s=c;continue}i+=a,s++}return o(),{part:P.doubleQuoted(n),endIndex:s}}function yt(t,e,r=!1,n=!1,s=!1,i=!1,o=!1){if(n)return[P.singleQuoted(e)];if(r){let f=Qy(t,e);return[P.doubleQuoted(f)]}let a=[],l=0,c="",u=()=>{c&&(a.push(P.literal(c)),c="")};for(;l<e.length;){let f=e[l];if(f==="\\"&&l+1<e.length){let d=e[l+1];(i?d==="$"||d==="`"||d==="\\"||d===`
643
+ `:d==="$"||d==="`"||d==="\\"||d==='"'||d===`
644
+ `)?c+=d:c+=`\\${d}`,l+=2;continue}if(f==="'"&&!o&&!i){u();let d=e.indexOf("'",l+1);if(d===-1){c+=e.slice(l);break}a.push(P.singleQuoted(e.slice(l+1,d))),l=d+1;continue}if(f==='"'&&!i){u();let{part:d,endIndex:p}=Xy(t,e,l+1);a.push(d),l=p+1;continue}if(f==="$"&&e[l+1]==="'"){u();let{part:d,endIndex:p}=Cf(t,e,l+2);a.push(d),l=p;continue}if(f==="$"){u();let{part:d,endIndex:p}=xi(t,e,l);d&&a.push(d),l=p;continue}if(f==="`"){u();let{part:d,endIndex:p}=t.parseBacktickSubstitution(e,l);a.push(d),l=p;continue}if(f==="~"){let d=l>0?e[l-1]:"";if(l===0||d==="="||s&&d===":"){let h=Ef(t,e,l),m=e[h];if(m===void 0||m==="/"||m===":"){u();let g=e.slice(l+1,h)||null;a.push({type:"TildeExpansion",user:g}),l=h;continue}}}if(f==="*"||f==="?"||f==="["){u();let{pattern:d,endIndex:p}=Sf(t,e,l);a.push({type:"Glob",pattern:d}),l=p;continue}if(f==="{"&&!s){let d=Af(t,e,l,yt);if(d){u(),a.push(d.part),l=d.endIndex;continue}}c+=f,l++}return u(),a}var ve=class t{tokens=[];pos=0;pendingHeredocs=[];parseIterations=0;checkIterationLimit(){if(this.parseIterations++,this.parseIterations>gf)throw new ft("Maximum parse iterations exceeded (possible infinite loop)",this.current().line,this.current().column)}parse(e){if(e.length>si)throw new ft(`Input too large: ${e.length} bytes exceeds limit of ${si}`,1,1);let r=new $n(e);if(this.tokens=r.tokenize(),this.tokens.length>ii)throw new ft(`Too many tokens: ${this.tokens.length} exceeds limit of ${ii}`,1,1);return this.pos=0,this.pendingHeredocs=[],this.parseIterations=0,this.parseScript()}parseTokens(e){return this.tokens=e,this.pos=0,this.pendingHeredocs=[],this.parseScript()}current(){return this.tokens[this.pos]||this.tokens[this.tokens.length-1]}peek(e=0){return this.tokens[this.pos+e]||this.tokens[this.tokens.length-1]}advance(){let e=this.current();return this.pos<this.tokens.length-1&&this.pos++,e}getPos(){return this.pos}check(e,r,n,s,...i){let o=this.tokens[this.pos]?.type;return o===e||r!==void 0&&o===r||n!==void 0&&o===n||s!==void 0&&o===s?!0:i.length>0?i.includes(o):!1}expect(e,r){if(this.check(e))return this.advance();let n=this.current();throw new ft(r||`Expected ${e}, got ${n.type}`,n.line,n.column,n)}error(e){let r=this.current();throw new ft(e,r.line,r.column,r)}skipNewlines(){for(;this.check(y.NEWLINE,y.COMMENT);)this.check(y.NEWLINE)?(this.advance(),this.processHeredocs()):this.advance()}skipSeparators(e=!0){for(;;){if(this.check(y.NEWLINE)){this.advance(),this.processHeredocs();continue}if(this.check(y.SEMICOLON,y.COMMENT)){this.advance();continue}if(e&&this.check(y.DSEMI,y.SEMI_AND,y.SEMI_SEMI_AND)){this.advance();continue}break}}addPendingHeredoc(e,r,n,s){this.pendingHeredocs.push({redirect:e,delimiter:r,stripTabs:n,quoted:s})}processHeredocs(){for(let e of this.pendingHeredocs)if(this.check(y.HEREDOC_CONTENT)){let r=this.advance(),n;e.quoted?n=P.word([P.literal(r.value)]):n=this.parseWordFromString(r.value,!1,!1,!1,!0),e.redirect.target=P.hereDoc(e.delimiter,n,e.stripTabs,e.quoted)}this.pendingHeredocs=[]}isStatementEnd(){return this.check(y.EOF,y.NEWLINE,y.SEMICOLON,y.AMP,y.AND_AND,y.OR_OR,y.RPAREN,y.RBRACE,y.DSEMI,y.SEMI_AND,y.SEMI_SEMI_AND)}isCommandStart(){let e=this.current().type;return e===y.WORD||e===y.NAME||e===y.NUMBER||e===y.ASSIGNMENT_WORD||e===y.IF||e===y.FOR||e===y.WHILE||e===y.UNTIL||e===y.CASE||e===y.LPAREN||e===y.LBRACE||e===y.DPAREN_START||e===y.DBRACK_START||e===y.FUNCTION||e===y.BANG||e===y.IN||e===y.LESS||e===y.GREAT||e===y.DLESS||e===y.DGREAT||e===y.LESSAND||e===y.GREATAND||e===y.LESSGREAT||e===y.DLESSDASH||e===y.CLOBBER||e===y.TLESS||e===y.AND_GREAT||e===y.AND_DGREAT}parseScript(){let e=[],n=0;for(this.skipNewlines();!this.check(y.EOF);){n++,n>1e4&&this.error("Parser stuck: too many iterations (>10000)"),this.checkUnexpectedToken();let s=this.pos,i=this.parseStatement();i&&e.push(i),this.skipSeparators(!1),this.check(y.DSEMI,y.SEMI_AND,y.SEMI_SEMI_AND)&&this.error(`syntax error near unexpected token \`${this.current().value}'`),this.pos===s&&!this.check(y.EOF)&&this.advance()}return P.script(e)}checkUnexpectedToken(){let e=this.current().type,r=this.current().value;(e===y.DO||e===y.DONE||e===y.THEN||e===y.ELSE||e===y.ELIF||e===y.FI||e===y.ESAC)&&this.error(`syntax error near unexpected token \`${r}'`),(e===y.RBRACE||e===y.RPAREN)&&this.error(`syntax error near unexpected token \`${r}'`),(e===y.DSEMI||e===y.SEMI_AND||e===y.SEMI_SEMI_AND)&&this.error(`syntax error near unexpected token \`${r}'`),e===y.SEMICOLON&&this.error(`syntax error near unexpected token \`${r}'`)}parseStatement(){if(this.skipNewlines(),!this.isCommandStart())return null;let e=[],r=[],n=!1,s=this.parsePipeline();for(e.push(s);this.check(y.AND_AND,y.OR_OR);){let i=this.advance();r.push(i.type===y.AND_AND?"&&":"||"),this.skipNewlines();let o=this.parsePipeline();e.push(o)}return this.check(y.AMP)&&(this.advance(),n=!0),P.statement(e,r,n)}parsePipeline(){let e=0;for(;this.check(y.BANG);)this.advance(),e++;let r=e%2===1,n=[],s=this.parseCommand();for(n.push(s);this.check(y.PIPE,y.PIPE_AMP);){let i=this.advance();this.skipNewlines();let o=this.parseCommand();i.type===y.PIPE_AMP&&o.type==="SimpleCommand"&&o.redirections.unshift(P.redirection(">&",P.word([P.literal("1")]),2)),n.push(o)}return P.pipeline(n,r)}parseCommand(){return this.check(y.IF)?ci(this):this.check(y.FOR)?ui(this):this.check(y.WHILE)?fi(this):this.check(y.UNTIL)?di(this):this.check(y.CASE)?pi(this):this.check(y.LPAREN)?hi(this):this.check(y.LBRACE)?mi(this):this.check(y.DPAREN_START)?this.parseArithmeticCommand():this.check(y.DBRACK_START)?this.parseConditionalCommand():this.check(y.FUNCTION)?this.parseFunctionDef():this.check(y.NAME,y.WORD)&&this.peek(1).type===y.LPAREN&&this.peek(2).type===y.RPAREN?this.parseFunctionDef():vf(this)}isWord(){let e=this.current().type;return e===y.WORD||e===y.NAME||e===y.NUMBER||e===y.IF||e===y.FOR||e===y.WHILE||e===y.UNTIL||e===y.CASE||e===y.FUNCTION||e===y.ELSE||e===y.ELIF||e===y.FI||e===y.THEN||e===y.DO||e===y.DONE||e===y.ESAC||e===y.IN||e===y.SELECT||e===y.TIME||e===y.COPROC||e===y.BANG}parseWord(){let e=this.advance();return this.parseWordFromString(e.value,e.quoted,e.singleQuoted)}parseWordFromString(e,r=!1,n=!1,s=!1,i=!1){let o=yt(this,e,r,n,s,i);return P.word(o)}parseCommandSubstitution(e,r){let n=r+2,s=1,i=n,o=!1,a=!1,l=0,c=!1,u="";for(;i<e.length&&s>0;){let h=e[i];o?h==="'"&&(o=!1):a?h==="\\"&&i+1<e.length?i++:h==='"'&&(a=!1):h==="'"?(o=!0,u=""):h==='"'?(a=!0,u=""):h==="\\"&&i+1<e.length?(i++,u=""):/[a-zA-Z_]/.test(h)?u+=h:(u==="case"?(l++,c=!1):u==="in"&&l>0?c=!0:u==="esac"&&l>0&&(l--,c=!1),u="",h==="("?i>0&&e[i-1]==="$"?s++:c||s++:h===")"?c?c=!1:s--:h===";"&&l>0&&i+1<e.length&&e[i+1]===";"&&(c=!0)),s>0&&i++}s>0&&this.error("unexpected EOF while looking for matching `)'");let f=e.slice(n,i),p=new t().parse(f);return{part:P.commandSubstitution(p,!1),endIndex:i+1}}parseBacktickSubstitution(e,r,n=!1){let i=r+1,o="";for(;i<e.length&&e[i]!=="`";)if(e[i]==="\\"){let c=e[i+1];c==="$"||c==="`"||c==="\\"||c===`
645
645
  `||n&&c==='"'?(c!==`
646
- `&&(o+=c),i+=2):(o+=e[i],i++)}else o+=e[i],i++;i>=e.length&&this.error("unexpected EOF while looking for matching ``'");let l=new t().parse(o);return{part:O.commandSubstitution(l,!0),endIndex:i+1}}parseArithmeticExpansion(e,r){let n=r+3,s=1,i=0,o=n;for(;o<e.length-1&&s>0;)e[o]==="$"&&e[o+1]==="("?e[o+2]==="("?(s++,o+=3):(i++,o+=2):e[o]==="("&&e[o+1]==="("?(s++,o+=2):e[o]===")"&&e[o+1]===")"?i>0?(i--,o++):(s--,s>0&&(o+=2)):e[o]==="("?(i++,o++):(e[o]===")"&&i>0&&i--,o++);let a=e.slice(n,o),l=this.parseArithmeticExpression(a);return{part:O.arithmeticExpansion(l),endIndex:o+2}}parseArithmeticCommand(){this.expect(y.DPAREN_START);let e="",r=1,n=0,s=!1,i=!1;for(;r>0&&!this.check(y.EOF);){if(s){if(s=!1,n>0){n--,e+=")";continue}if(this.check(y.RPAREN)){r--,i=!0,this.advance();continue}if(this.check(y.DPAREN_END)){r--,i=!0;continue}e+=")";continue}this.check(y.DPAREN_START)?(r++,e+="((",this.advance()):this.check(y.DPAREN_END)?n>=2?(n-=2,e+="))",this.advance()):n===1?(n--,e+=")",s=!0,this.advance()):(r--,i=!0,r>0&&(e+="))"),this.advance()):this.check(y.LPAREN)?(n++,e+="(",this.advance()):this.check(y.RPAREN)?(n>0&&n--,e+=")",this.advance()):(e+=this.current().value,this.advance())}i||this.expect(y.DPAREN_END);let o=this.parseArithmeticExpression(e.trim()),a=this.parseOptionalRedirections();return O.arithmeticCommand(o,a)}parseConditionalCommand(){this.expect(y.DBRACK_START);let e=Js(this);this.expect(y.DBRACK_END);let r=this.parseOptionalRedirections();return O.conditionalCommand(e,r)}parseFunctionDef(){let e;this.check(y.FUNCTION)?(this.advance(),e=this.expect(y.NAME,"Expected function name").value,this.check(y.LPAREN)&&(this.advance(),this.expect(y.RPAREN))):(e=this.advance().value,this.expect(y.LPAREN),this.expect(y.RPAREN)),this.skipNewlines();let r=this.parseCompoundCommandBody(),n=this.parseOptionalRedirections();return O.functionDef(e,r,n)}parseCompoundCommandBody(){if(this.check(y.LBRACE))return Qs(this);if(this.check(y.LPAREN))return Zs(this);if(this.check(y.IF))return Hs(this);if(this.check(y.FOR))return Gs(this);if(this.check(y.WHILE))return qs(this);if(this.check(y.UNTIL))return Vs(this);if(this.check(y.CASE))return Ks(this);this.error("Expected compound command for function body")}parseCompoundList(){let e=[];for(this.skipNewlines();!this.check(y.EOF,y.FI,y.ELSE,y.ELIF,y.THEN,y.DO,y.DONE,y.ESAC,y.RPAREN,y.RBRACE,y.DSEMI,y.SEMI_AND,y.SEMI_SEMI_AND)&&this.isCommandStart();){this.checkIterationLimit();let r=this.pos,n=this.parseStatement();if(n&&e.push(n),this.skipSeparators(),this.pos===r&&!n)break}return e}parseOptionalRedirections(){let e=[];for(;dn(this);){this.checkIterationLimit();let r=this.pos;if(e.push(hn(this)),this.pos===r)break}return e}parseArithmeticExpression(e){return Ee(this,e)}};function lt(t){return new Se().parse(t)}oe();ht();var Qt=class{fs;cwd;constructor(e,r){this.fs=e,this.cwd=r}isGlobPattern(e){return e.includes("*")||e.includes("?")||/\[.*\]/.test(e)}async expandArgs(e,r){let n=e.map((o,a)=>(r?.[a]??!1)||!this.isGlobPattern(o)?null:this.expand(o)),s=await Promise.all(n.map(o=>o||Promise.resolve(null))),i=[];for(let o=0;o<e.length;o++){let a=s[o];a===null?i.push(e[o]):a.length>0?i.push(...a):i.push(e[o])}return i}async expand(e){return e.includes("**")?this.expandRecursive(e):this.expandSimple(e)}async expandSimple(e){let r=[],n=e.lastIndexOf("/"),s,i;n===-1?(s=this.cwd,i=e):(s=e.slice(0,n)||"/",i=e.slice(n+1));let o=this.fs.resolvePath(this.cwd,s);try{let a=await this.fs.readdir(o);for(let l of a)if(this.matchPattern(l,i)){let c=n===-1?l:`${s}/${l}`;r.push(c)}}catch{}return r.sort()}async expandRecursive(e){let r=[],n=e.indexOf("**"),s=e.slice(0,n).replace(/\/$/,"")||".",o=e.slice(n+2).replace(/^\//,"");return await this.walkDirectory(s,o,r),r.sort()}async walkDirectory(e,r,n){let s=this.fs.resolvePath(this.cwd,e);try{if(this.fs.readdirWithFileTypes){let i=await this.fs.readdirWithFileTypes(s),o=[],a=[];for(let l of i){let c=e==="."?l.name:`${e}/${l.name}`;l.isDirectory?a.push(c):r&&this.matchPattern(l.name,r)&&o.push(c)}n.push(...o);for(let l=0;l<a.length;l+=100){let c=a.slice(l,l+100);await Promise.all(c.map(u=>this.walkDirectory(u,r,n)))}}else{let i=await this.fs.readdir(s),o=[];for(let l=0;l<i.length;l+=100){let c=i.slice(l,l+100),u=await Promise.all(c.map(async f=>{let p=e==="."?f:`${e}/${f}`,d=this.fs.resolvePath(this.cwd,p);try{let h=await this.fs.stat(d);return{name:f,path:p,isDirectory:h.isDirectory}}catch{return null}}));o.push(...u.filter(f=>f!==null))}for(let l of o)!l.isDirectory&&r&&this.matchPattern(l.name,r)&&n.push(l.path);let a=o.filter(l=>l.isDirectory);for(let l=0;l<a.length;l+=100){let c=a.slice(l,l+100);await Promise.all(c.map(u=>this.walkDirectory(u.path,r,n)))}}}catch{}}matchPattern(e,r){return this.patternToRegex(r).test(e)}patternToRegex(e){let r="^";for(let n=0;n<e.length;n++){let s=e[n];if(s==="*")r+=".*";else if(s==="?")r+=".";else if(s==="["){let i=n+1,o="[";for(i<e.length&&(e[i]==="^"||e[i]==="!")&&(o+="^",i++),i<e.length&&e[i]==="]"&&(o+="\\]",i++);i<e.length&&e[i]!=="]";){if(e[i]==="["&&i+1<e.length&&e[i+1]===":"){let a=e.indexOf(":]",i+2);if(a!==-1){let l=e.slice(i+2,a),c=this.posixClassToRegex(l);o+=c,i=a+2;continue}}if(e[i]==="\\"&&i+1<e.length){o+=`\\${e[i+1]}`,i+=2;continue}e[i]==="-"?o+="\\-":o+=e[i],i++}o+="]",r+=o,n=i}else if(s==="\\"&&n+1<e.length){let i=e[n+1];/[.+^${}()|\\*?[\]]/.test(i)?r+=`\\${i}`:r+=i,n++}else/[.+^${}()|]/.test(s)?r+=`\\${s}`:r+=s}return r+="$",new RegExp(r)}posixClassToRegex(e){return{alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"!-~",lower:"a-z",print:" -~",punct:"!-/:-@\\[-`{-~",space:" \\t\\n\\r\\f\\v",upper:"A-Z",word:"a-zA-Z0-9_",xdigit:"0-9a-fA-F"}[e]||""}};oe();function je(t){switch(t.type){case"ArithCommandSubst":return!0;case"ArithNested":return je(t.expression);case"ArithBinary":return je(t.left)||je(t.right);case"ArithUnary":return je(t.operand);case"ArithTernary":return je(t.condition)||je(t.consequent)||je(t.alternate);case"ArithAssignment":return je(t.value);case"ArithGroup":return je(t.expression);case"ArithArrayElement":return t.index?je(t.index):!1;case"ArithConcat":return t.parts.some(je);default:return!1}}function ei(t){let e=t.operation;return e?!!("word"in e&&e.word&&rt(e.word)||e.type==="PatternReplacement"&&(e.pattern&&rt(e.pattern)||e.replacement&&rt(e.replacement))||e.type==="PatternRemoval"&&e.pattern&&rt(e.pattern)):!1}function mn(t){switch(t.type){case"CommandSubstitution":return!0;case"ArithmeticExpansion":return je(t.expression.expression);case"DoubleQuoted":return t.parts.some(mn);case"BraceExpansion":return t.items.some(e=>e.type==="Word"&&rt(e.word));case"ParameterExpansion":return ei(t);default:return!1}}function rt(t){return t.parts.some(mn)}function ti(t){if(!t.operation)return!1;let e=t.operation,r;if((e.type==="DefaultValue"||e.type==="AssignDefault"||e.type==="UseAlternative"||e.type==="ErrorIfUnset")&&(r=e.word?.parts),!r)return!1;for(let n of r)if(n.type==="DoubleQuoted"||n.type==="SingleQuoted")return!0;return!1}function lf(t){let e=!1,r=!1,n=!1,s=!1,i=!1;for(let o of t){if((o.type==="SingleQuoted"||o.type==="DoubleQuoted")&&(e=!0,o.type==="DoubleQuoted"))for(let a of o.parts)a.type==="ParameterExpansion"&&a.parameter.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[[@*]\]$/)&&!a.operation&&(s=!0);o.type==="CommandSubstitution"&&(r=!0),o.type==="ParameterExpansion"&&(i=!0,(o.parameter==="@"||o.parameter==="*")&&(n=!0),ti(o)&&(e=!0))}return{hasQuoted:e,hasCommandSub:r,hasArrayVar:n,hasArrayAtExpansion:s,hasParamExpansion:i}}function Ny(t,e,r,n,s){let i=r??1;i===0&&(i=1);let o=Math.abs(i),a=[],l=0;n?.match(/^-?0\d/)&&(l=Math.max(l,n.replace(/^-/,"").length)),s?.match(/^-?0\d/)&&(l=Math.max(l,s.replace(/^-/,"").length));let c=u=>{if(l>0){let f=u<0,p=String(Math.abs(u)).padStart(l,"0");return f?`-${p}`:p}return String(u)};if(t<=e)for(let u=t,f=0;u<=e&&f<1e4;u+=o,f++)a.push(c(u));else for(let u=t,f=0;u>=e&&f<1e4;u-=o,f++)a.push(c(u));return a}function Iy(t,e,r){let n=r??1;n===0&&(n=1);let s=t.charCodeAt(0),i=e.charCodeAt(0),o=Math.abs(n),a=t>="A"&&t<="Z",l=t>="a"&&t<="z",c=e>="A"&&e<="Z",u=e>="a"&&e<="z";if(a&&u||l&&c)return null;let f=[];if(s<=i)for(let p=s,d=0;p<=i&&d<1e4;p+=o,d++)f.push(String.fromCharCode(p));else for(let p=s,d=0;p>=i&&d<1e4;p-=o,d++)f.push(String.fromCharCode(p));return f}function yr(t,e,r,n,s){let i=r!==void 0?`..${r}`:"";return typeof t=="number"&&typeof e=="number"?{expanded:Ny(t,e,r,n,s),literal:`{${t}..${e}${i}}`}:typeof t=="string"&&typeof e=="string"?{expanded:Iy(t,e,r),literal:`{${t}..${e}${i}}`}:{expanded:null,literal:`{${t}..${e}${i}}`}}function Me(t,e){let r="",n=0;for(;n<t.length;){let s=t[n];if(s==="\\")if(n+1<t.length){let i=t[n+1];/[\\^$.|+(){}[\]*?]/.test(i)?r+=`\\${i}`:r+=i,n+=2}else r+="\\\\",n++;else if(s==="*")r+=e?".*":".*?",n++;else if(s==="?")r+=".",n++;else if(s==="["){let i=vy(t,n);if(i===-1)r+="\\[",n++;else{let o=t.slice(n+1,i);r+=$y(o),n=i+1}}else/[\^$.|+(){}]/.test(s)?(r+=`\\${s}`,n++):(r+=s,n++)}return r}function vy(t,e){let r=e+1;for(r<t.length&&t[r]==="^"&&r++,r<t.length&&t[r]==="]"&&r++;r<t.length;){if(t[r]==="\\"&&r+1<t.length){r+=2;continue}if(t[r]==="]")return r;if(t[r]==="'"){let n=t.indexOf("'",r+1);if(n!==-1){r=n+1;continue}}if(t[r]==="["&&r+1<t.length&&t[r+1]===":"){let n=t.indexOf(":]",r+2);if(n!==-1){r=n+2;continue}}r++}return-1}function $y(t){let e="[",r=0;for((t[0]==="^"||t[0]==="!")&&(e+="^",r++);r<t.length;){if(t[r]==="'"){let s=t.indexOf("'",r+1);if(s!==-1){let i=t.slice(r+1,s);for(let o of i)o==="\\"?e+="\\\\":o==="]"?e+="\\]":o==="^"&&e==="["?e+="\\^":e+=o;r=s+1;continue}}if(t[r]==="["&&r+1<t.length&&t[r+1]===":"){let s=t.indexOf(":]",r+2);if(s!==-1){let i=t.slice(r+2,s);e+=Py(i),r=s+2;continue}}let n=t[r];n==="\\"?r+1<t.length?(e+=`\\${t[r+1]}`,r+=2):(e+="\\\\",r++):n==="-"&&r>0&&r<t.length-1?(e+="-",r++):n==="^"&&r===0?(e+="^",r++):(n==="]"&&r===0?e+="\\]":e+=n,r++)}return e+="]",e}var Ry={alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"!-~",lower:"a-z",print:" -~",punct:"!-/:-@\\[-`{-~",space:" \\t\\n\\r\\f\\v",upper:"A-Z",word:"a-zA-Z0-9_",xdigit:"0-9A-Fa-f"};function Py(t){return Ry[t]??""}oe();function xr(t,e){let r=`${e}_`,n=[];for(let s of Object.keys(t.state.env))if(s.startsWith(r)){let i=s.slice(r.length),o=Number.parseInt(i,10);!Number.isNaN(o)&&String(o)===i&&n.push(o)}return n.sort((s,i)=>s-i)}function wr(t,e){let r=`${e}_`;for(let n of Object.keys(t.state.env))n.startsWith(r)&&delete t.state.env[n]}function ri(t,e){let r=`${e}_`,n=[];for(let s of Object.keys(t.state.env))if(s.startsWith(r)&&!s.includes("__")){let i=s.slice(r.length);n.push(i)}return n.sort()}function cf(t){return t.startsWith("'")&&t.endsWith("'")||t.startsWith('"')&&t.endsWith('"')?t.slice(1,-1):t}function gn(t){return t.IFS??`
647
- `}function uf(t){return t.IFS===""}function Er(t){return t.split("").map(e=>/[\\^$.*+?()[\]{}|-]/.test(e)?`\\${e}`:e===" "?"\\t":e===`
648
- `?"\\n":e).join("")}function Fy(t,e){let r=Er(t);return new RegExp(`[${r}]+`,e)}function Oy(t){let e=Er(t);return new RegExp(`^[${e}]+`)}function Ty(t){let e=Er(t);return new RegExp(`[${e}]+$`)}function Xt(t){let e=t.IFS;return e===void 0?" ":e[0]||""}function ff(t,e){if(e==="")return{words:[t],wordStarts:[0]};let r=[],n=[],s=Fy(e,"g"),i=0,o=t.match(Oy(e));o&&(i=o[0].length),s.lastIndex=i;let a=s.exec(t);for(;a!==null;)a.index>i&&(n.push(i),r.push(t.substring(i,a.index))),i=s.lastIndex,a=s.exec(t);return i<t.length&&(n.push(i),r.push(t.substring(i))),{words:r,wordStarts:n}}function pf(t,e){return e===""?t:t.replace(Ty(e),"")}function be(t,e){return t.state.associativeArrays?.has(e)?ri(t,e).map(i=>[i,t.state.env[`${e}_${i}`]]):xr(t,e).map(s=>[s,t.state.env[`${e}_${s}`]])}function df(t,e){return t.state.associativeArrays?.has(e)?ri(t,e).length>0:xr(t,e).length>0}function ze(t,e,r=!0,n=!1){switch(e){case"?":return String(t.state.lastExitCode);case"$":return String(process.pid);case"#":return t.state.env["#"]||"0";case"@":return t.state.env["@"]||"";case"_":return t.state.lastArg;case"-":{let o="";return t.state.options.errexit&&(o+="e"),t.state.options.nounset&&(o+="u"),t.state.options.verbose&&(o+="v"),t.state.options.xtrace&&(o+="x"),t.state.options.pipefail&&(o+="p"),o}case"*":{let o=Number.parseInt(t.state.env["#"]||"0",10);if(o===0)return"";let a=[];for(let l=1;l<=o;l++)a.push(t.state.env[String(l)]||"");return a.join(Xt(t.state.env))}case"0":return t.state.env[0]||"bash";case"PWD":return t.state.env.PWD!==void 0?t.state.env.PWD:"";case"OLDPWD":return t.state.env.OLDPWD!==void 0?t.state.env.OLDPWD:"";case"PPID":{let{ppid:o}=gr();return String(o)}case"UID":{let{uid:o}=gr();return String(o)}case"EUID":return String(process.geteuid?.()??gr().uid);case"RANDOM":return String(Math.floor(Math.random()*32768));case"SECONDS":return String(Math.floor((Date.now()-t.state.startTime)/1e3));case"BASH_VERSION":return Pu;case"!":return String(t.state.lastBackgroundPid);case"LINENO":return String(t.state.currentLine)}if(/^[a-zA-Z_][a-zA-Z0-9_]*\[\]$/.test(e))throw new Je(`\${${e}}`);let s=e.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[(.+)\]$/);if(s){let o=s[1],a=s[2];if(a==="@"||a==="*"){let f=be(t,o);if(f.length>0)return f.map(([,d])=>d).join(" ");let p=t.state.env[o];return p!==void 0?p:""}if(t.state.associativeArrays?.has(o)){let f=cf(a),p=t.state.env[`${o}_${f}`];if(p===void 0&&r&&t.state.options.nounset)throw new Ue(`${o}[${a}]`);return p||""}let c;if(/^-?\d+$/.test(a))c=Number.parseInt(a,10);else try{let f=new Se,p=Ee(f,a);c=ee(t,p.expression)}catch{let f=t.state.env[a];c=f?Number.parseInt(f,10):0,Number.isNaN(c)&&(c=0)}if(c<0){let f=be(t,o);if(f.length===0)return t.state.expansionStderr=(t.state.expansionStderr||"")+`bash: ${o}: bad array subscript
649
- `,"";let d=Math.max(...f.map(([m])=>typeof m=="number"?m:0))+1+c;return d<0?(t.state.expansionStderr=(t.state.expansionStderr||"")+`bash: ${o}: bad array subscript
650
- `,""):t.state.env[`${o}_${d}`]||""}let u=t.state.env[`${o}_${c}`];if(u===void 0&&r&&t.state.options.nounset)throw new Ue(`${o}[${c}]`);return u||""}if(/^[1-9][0-9]*$/.test(e)){let o=t.state.env[e];if(o===void 0&&r&&t.state.options.nounset)throw new Ue(e);return o||""}let i=t.state.env[e];if(i===void 0&&r&&t.state.options.nounset)throw new Ue(e);return i||""}async function hf(t,e,r,n,s){let i=[];for(let u of e){let f=u.type==="ParameterExpansion"||u.type==="CommandSubstitution"||u.type==="ArithmeticExpansion";if(u.type==="ParameterExpansion"&&ti(u)){let p=await s(t,u);i.push({value:p,splittable:!1})}else{let p=await s(t,u);i.push({value:p,splittable:f})}}if(!i.some(u=>u.splittable&&new RegExp(`[${n}]`).test(u.value))){let u=i.map(f=>f.value).join("");return u?[u]:[]}let a=new RegExp(`[${n}]+`),l=[],c="";for(let u=0;u<i.length;u++){let f=i[u];if(!f.splittable)c+=f.value;else{let p=f.value.split(a);for(let d=0;d<p.length;d++)d===0?c+=p[d]:(c!==""&&l.push(c),c=p[d])}}return c!==""&&l.push(c),l}function _e(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function mf(t){switch(t.type){case"Literal":return t.value;case"SingleQuoted":return t.value;case"Escaped":return t.value;default:return null}}function gf(t){switch(t.type){case"SingleQuoted":case"Escaped":case"DoubleQuoted":return!0;case"Literal":return t.value==="";default:return!1}}function ni(t){if(t==="")return"''";if(!/['\\\n\r\t\x00-\x1f\x7f]/.test(t))return`'${t}'`;let e="$'";for(let r of t)switch(r){case"'":e+="\\'";break;case"\\":e+="\\\\";break;case`
651
- `:e+="\\n";break;case"\r":e+="\\r";break;case" ":e+="\\t";break;default:{let n=r.charCodeAt(0);n<32||n===127?e+=`\\x${n.toString(16).padStart(2,"0")}`:e+=r}}return`${e}'`}function $t(t,e,r=!1){return e.map(n=>nt(t,n,r)).join("")}async function Rt(t,e,r=!1){let n=[];for(let s of e)n.push(await He(t,s));return n.join("")}function Dy(t){return gf(t)}function yf(t){if(t.parts.length===0)return!0;for(let e of t.parts)if(!Dy(e))return!1;return!0}function xf(t){return t.replace(/([*?[\]\\])/g,"\\$1")}function wf(t,e,r=!1){let n=mf(e);if(n!==null)return n;switch(e.type){case"ParameterExpansion":return Af(t,e,r);case"TildeExpansion":return r?e.user===null?"~":`~${e.user}`:e.user===null?t.state.env.HOME||"/home/user":e.user==="root"?"/root":`~${e.user}`;case"Glob":return e.pattern;default:return null}}function nt(t,e,r=!1){let n=wf(t,e,r);if(n!==null)return n;switch(e.type){case"DoubleQuoted":{let s=[];for(let i of e.parts)s.push(nt(t,i,!0));return s.join("")}case"ArithmeticExpansion":return String(ee(t,e.expression.expression));case"BraceExpansion":{let s=[];for(let i of e.items)if(i.type==="Range"){let o=yr(i.start,i.end,i.step,i.startStr,i.endStr);if(o.expanded)s.push(...o.expanded);else return o.literal}else s.push(yn(t,i.word));return s.join(" ")}default:return""}}function yn(t,e){let r=e.parts,n=r.length;if(n===1)return nt(t,r[0]);let s=[];for(let i=0;i<n;i++)s.push(nt(t,r[i]));return s.join("")}async function le(t,e){return rt(e)?Cf(t,e):yn(t,e)}function xn(t){for(let e of t)if(e.type==="BraceExpansion"||e.type==="DoubleQuoted"&&xn(e.parts))return!0;return!1}function Ly(t){for(let e of t){if(e.type==="BraceExpansion"){for(let r of e.items)if(r.type==="Word"&&rt(r.word))return!0}if(mn(e))return!0}return!1}var Ef=1e4,Jt=1e5;function bf(t,e,r={count:0}){if(r.count>Jt)return[[]];let n=[[]];for(let s of e)if(s.type==="BraceExpansion"){let i=[],o=!1,a="";for(let u of s.items)if(u.type==="Range"){let f=yr(u.start,u.end,u.step,u.startStr,u.endStr);if(f.expanded)for(let p of f.expanded)r.count++,i.push(p);else{o=!0,a=f.literal;break}}else{let f=bf(t,u.word.parts,r);for(let p of f)r.count++,i.push(p.join(""))}if(o){for(let u of n)r.count++,u.push(a);continue}if(n.length*i.length>Ef||r.count>Jt)return n;let c=[];for(let u of n)for(let f of i){if(r.count++,r.count>Jt)return c.length>0?c:n;c.push([...u,f])}n=c}else{let i=nt(t,s);for(let o of n)r.count++,o.push(i)}return n}function My(t,e){let r=e.parts;return xn(r)?bf(t,r).map(s=>s.join("")):[yn(t,e)]}async function Sf(t,e,r={count:0}){if(r.count>Jt)return[[]];let n=[[]];for(let s of e)if(s.type==="BraceExpansion"){let i=[],o=!1,a="";for(let u of s.items)if(u.type==="Range"){let f=yr(u.start,u.end,u.step,u.startStr,u.endStr);if(f.expanded)for(let p of f.expanded)r.count++,i.push(p);else{o=!0,a=f.literal;break}}else{let f=await Sf(t,u.word.parts,r);for(let p of f)r.count++,i.push(p.join(""))}if(o){for(let u of n)r.count++,u.push(a);continue}if(n.length*i.length>Ef||r.count>Jt)return n;let c=[];for(let u of n)for(let f of i){if(r.count++,r.count>Jt)return c.length>0?c:n;c.push([...u,f])}n=c}else{let i=await He(t,s);for(let o of n)r.count++,o.push(i)}return n}async function _y(t,e){let r=e.parts;return xn(r)?(await Sf(t,r)).map(s=>s.join("")):[await le(t,e)]}async function br(t,e){let r=e.parts,{hasQuoted:n,hasCommandSub:s,hasArrayVar:i,hasArrayAtExpansion:o,hasParamExpansion:a}=lf(r),c=xn(r)?Ly(r)?await _y(t,e):My(t,e):null;if(c&&c.length>1){let p=[];for(let d of c)if(!n&&/[*?[]/.test(d)){let m=await new Qt(t.fs,t.state.cwd).expand(d);m.length>0?p.push(...m):p.push(d)}else p.push(d);return{values:p,quoted:!1}}if(o&&r.length===1&&r[0].type==="DoubleQuoted"){let p=r[0];if(p.parts.length===1&&p.parts[0].type==="ParameterExpansion"){let h=p.parts[0].parameter.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[[@]\]$/);if(h){let m=h[1],g=be(t,m);if(g.length>0)return{values:g.map(([,E])=>E),quoted:!0};let w=t.state.env[m];return w!==void 0?{values:[w],quoted:!0}:{values:[],quoted:!0}}}}if(r.length===1&&r[0].type==="DoubleQuoted"){let p=r[0],d=-1,h=!1;for(let m=0;m<p.parts.length;m++){let g=p.parts[m];if(g.type==="ParameterExpansion"&&(g.parameter==="@"||g.parameter==="*")){d=m,h=g.parameter==="*";break}}if(d!==-1){let m=p.parts[d];m.type==="ParameterExpansion"&&m.operation&&(d=-1)}if(d!==-1){let m=Number.parseInt(t.state.env["#"]||"0",10),g="";for(let S=0;S<d;S++)g+=await He(t,p.parts[S]);let w="";for(let S=d+1;S<p.parts.length;S++)w+=await He(t,p.parts[S]);if(m===0){if(h)return{values:[g+w],quoted:!0};let S=g+w;return{values:S?[S]:[],quoted:!0}}let E=[];for(let S=1;S<=m;S++)E.push(t.state.env[String(S)]||"");if(h){let S=Xt(t.state.env);return{values:[g+E.join(S)+w],quoted:!0}}return E.length===1?{values:[g+E[0]+w],quoted:!0}:{values:[g+E[0],...E.slice(1,-1),E[E.length-1]+w],quoted:!0}}}if((s||i||a)&&!uf(t.state.env)){let p=gn(t.state.env),d=Er(p),h=await hf(t,r,p,d,He),m=[],g=new Qt(t.fs,t.state.cwd);for(let w of h)if(/[*?[]/.test(w)){let E=await g.expand(w);E.length>0?m.push(...E):m.push(w)}else m.push(w);return{values:m,quoted:!1}}let f=rt(e)?await Cf(t,e):yn(t,e);if(!n&&/[*?[]/.test(f)){let d=await new Qt(t.fs,t.state.cwd).expand(f);if(d.length>0)return{values:d,quoted:!1}}return f===""&&!n?{values:[],quoted:!1}:{values:[f],quoted:n}}async function Cf(t,e){let r=e.parts,n=r.length;if(n===1)return He(t,r[0]);let s=[];for(let i=0;i<n;i++)s.push(await He(t,r[i]));return s.join("")}async function He(t,e){if(e.type==="ParameterExpansion"&&ei(e))return By(t,e);let r=wf(t,e);if(r!==null)return r;switch(e.type){case"DoubleQuoted":{let n=[];for(let s of e.parts)n.push(await He(t,s));return n.join("")}case"CommandSubstitution":try{let n=await t.executeScript(e.body);return t.state.lastExitCode=n.exitCode,t.state.env["?"]=String(n.exitCode),n.stdout.replace(/\n+$/,"")}catch(n){if(n instanceof j)throw n;if(n instanceof ie)return t.state.lastExitCode=n.exitCode,t.state.env["?"]=String(n.exitCode),n.stdout.replace(/\n+$/,"");throw n}case"ArithmeticExpansion":return String(await te(t,e.expression.expression));case"BraceExpansion":{let n=[];for(let s of e.items)if(s.type==="Range"){let i=yr(s.start,s.end,s.step,s.startStr,s.endStr);if(i.expanded)n.push(...i.expanded);else return i.literal}else n.push(await le(t,s.word));return n.join(" ")}default:return""}}function Af(t,e,r=!1){let{parameter:n,operation:s}=e,i=s&&(s.type==="DefaultValue"||s.type==="AssignDefault"||s.type==="UseAlternative"||s.type==="ErrorIfUnset"),o=ze(t,n,!i);if(!s)return o;let a=!(n in t.state.env),l=o==="";switch(s.type){case"DefaultValue":return(a||s.checkEmpty&&l)&&s.word?$t(t,s.word.parts,r):o;case"AssignDefault":{if((a||s.checkEmpty&&l)&&s.word){let u=$t(t,s.word.parts,r),f=n.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[(.+)\]$/);if(f){let[,p,d]=f,h;if(/^\d+$/.test(d))h=Number.parseInt(d,10);else{try{let g=new Se,w=Ee(g,d);h=ee(t,w.expression)}catch{let g=t.state.env[d];h=g?Number.parseInt(g,10):0}Number.isNaN(h)&&(h=0)}t.state.env[`${p}_${h}`]=u;let m=Number.parseInt(t.state.env[`${p}__length`]||"0",10);h>=m&&(t.state.env[`${p}__length`]=String(h+1))}else t.state.env[n]=u;return u}return o}case"ErrorIfUnset":{if(a||s.checkEmpty&&l){let u=s.word?$t(t,s.word.parts,r):`${n}: parameter null or not set`;throw new ie(1,"",`bash: ${u}
652
- `)}return o}case"UseAlternative":return!(a||s.checkEmpty&&l)&&s.word?$t(t,s.word.parts,r):"";case"Length":{let c=n.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[[@*]\]$/);if(c){let u=be(t,c[1]);return String(u.length)}if(/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(n)&&df(t,n)){let u=t.state.env[`${n}_0`]||"";return String(u.length)}return String(o.length)}case"LengthSliceError":throw new Je(n);case"Substring":{let c=s.offset?ee(t,s.offset.expression):0,u=s.length?ee(t,s.length.expression):void 0;if(n==="@"||n==="*"){let h=(t.state.env["@"]||"").split(" ").filter(E=>E),m=t.state.env[0]||"bash",g=c===0?[m,...h]:h,w=c===0?0:c-1;if(w<0||w>=g.length)return"";if(u!==void 0){let E=u<0?g.length+u:w+u;return g.slice(w,Math.max(w,E)).join(" ")}return g.slice(w).join(" ")}let f=n.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[[@*]\]$/);if(f){let m=be(t,f[1]).map(([,w])=>w),g=c;if(g<0&&(g=m.length+g,g<0))return"";if(u!==void 0){if(u<0){let w=m.length+u;return m.slice(g,Math.max(g,w)).join(" ")}return m.slice(g,g+u).join(" ")}return m.slice(g).join(" ")}let p=[...o],d=c;if(d<0&&(d=Math.max(0,p.length+d)),u!==void 0){if(u<0){let h=p.length+u;return p.slice(d,Math.max(d,h)).join("")}return p.slice(d,d+u).join("")}return p.slice(d).join("")}case"PatternRemoval":{let c="";if(s.pattern)for(let f of s.pattern.parts)if(f.type==="Glob")c+=Me(f.pattern,s.greedy);else if(f.type==="Literal")c+=Me(f.value,s.greedy);else if(f.type==="SingleQuoted"||f.type==="Escaped")c+=_e(f.value);else if(f.type==="DoubleQuoted"){let p=$t(t,f.parts);c+=_e(p)}else if(f.type==="ParameterExpansion"){let p=nt(t,f);c+=Me(p,s.greedy)}else{let p=nt(t,f);c+=_e(p)}if(s.side==="prefix")return o.replace(new RegExp(`^${c}`),"");let u=new RegExp(`${c}$`);if(s.greedy)return o.replace(u,"");for(let f=o.length;f>=0;f--){let p=o.slice(f);if(u.test(p))return o.slice(0,f)}return o}case"PatternReplacement":{let c="";if(s.pattern)for(let p of s.pattern.parts)if(p.type==="Glob")c+=Me(p.pattern,!0);else if(p.type==="Literal")c+=Me(p.value,!0);else if(p.type==="SingleQuoted"||p.type==="Escaped")c+=_e(p.value);else if(p.type==="DoubleQuoted"){let d=$t(t,p.parts);c+=_e(d)}else if(p.type==="ParameterExpansion"){let d=nt(t,p);c+=Me(d,!0)}else{let d=nt(t,p);c+=_e(d)}let u=s.replacement?$t(t,s.replacement.parts):"";if(c==="")return o;s.anchor==="start"?c=`^${c}`:s.anchor==="end"&&(c=`${c}$`);let f=s.all?"g":"";try{let p=new RegExp(c,f);if(s.all){let d="",h=0,m=p.exec(o);for(;m!==null&&!(m[0].length===0&&m.index===o.length);)d+=o.slice(h,m.index)+u,h=m.index+m[0].length,m[0].length===0&&h++,m=p.exec(o);return d+=o.slice(h),d}return o.replace(p,u)}catch{return o}}case"CaseModification":return s.direction==="upper"?s.all?o.toUpperCase():o.charAt(0).toUpperCase()+o.slice(1):s.all?o.toLowerCase():o.charAt(0).toLowerCase()+o.slice(1);case"Transform":{let c=n.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[[@*]\]$/);if(c&&s.operator==="Q")return be(t,c[1]).map(([,p])=>ni(p)).join(" ");switch(s.operator){case"Q":return ni(o);case"P":return o;case"a":return"";case"A":return`${n}=${ni(o)}`;case"E":return o.replace(/\\([\\abefnrtv'"?])/g,(u,f)=>{switch(f){case"\\":return"\\";case"a":return"\x07";case"b":return"\b";case"e":return"\x1B";case"f":return"\f";case"n":return`
653
- `;case"r":return"\r";case"t":return" ";case"v":return"\v";case"'":return"'";case'"':return'"';case"?":return"?";default:return f}});case"K":return"";default:return o}}case"Indirection":return ze(t,o);case"ArrayKeys":{let u=be(t,s.array).map(([f])=>String(f));return s.star?u.join(Xt(t.state.env)):u.join(" ")}case"VarNamePrefix":{let c=Object.keys(t.state.env).filter(u=>u.startsWith(s.prefix)&&!u.includes("__")).sort();return s.star?c.join(Xt(t.state.env)):c.join(" ")}default:return o}}async function By(t,e,r=!1){let{parameter:n,operation:s}=e,i=s&&(s.type==="DefaultValue"||s.type==="AssignDefault"||s.type==="UseAlternative"||s.type==="ErrorIfUnset"),o=ze(t,n,!i);if(!s)return o;let a=!(n in t.state.env),l=o==="";switch(s.type){case"DefaultValue":return(a||s.checkEmpty&&l)&&s.word?Rt(t,s.word.parts,r):o;case"AssignDefault":{if((a||s.checkEmpty&&l)&&s.word){let u=await Rt(t,s.word.parts,r),f=n.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[(.+)\]$/);if(f){let[,p,d]=f,h;if(/^\d+$/.test(d))h=Number.parseInt(d,10);else{try{let g=new Se,w=Ee(g,d);h=await te(t,w.expression)}catch{let g=t.state.env[d];h=g?Number.parseInt(g,10):0}Number.isNaN(h)&&(h=0)}t.state.env[`${p}_${h}`]=u;let m=Number.parseInt(t.state.env[`${p}__length`]||"0",10);h>=m&&(t.state.env[`${p}__length`]=String(h+1))}else t.state.env[n]=u;return u}return o}case"ErrorIfUnset":{if(a||s.checkEmpty&&l){let u=s.word?await Rt(t,s.word.parts,r):`${n}: parameter null or not set`;throw new ie(1,"",`bash: ${u}
654
- `)}return o}case"UseAlternative":return!(a||s.checkEmpty&&l)&&s.word?Rt(t,s.word.parts,r):"";case"PatternRemoval":{let c="";if(s.pattern)for(let f of s.pattern.parts)if(f.type==="Glob")c+=Me(f.pattern,s.greedy);else if(f.type==="Literal")c+=Me(f.value,s.greedy);else if(f.type==="SingleQuoted"||f.type==="Escaped")c+=_e(f.value);else if(f.type==="DoubleQuoted"){let p=await Rt(t,f.parts);c+=_e(p)}else if(f.type==="ParameterExpansion"){let p=await He(t,f);c+=Me(p,s.greedy)}else{let p=await He(t,f);c+=_e(p)}if(s.side==="prefix")return o.replace(new RegExp(`^${c}`),"");let u=new RegExp(`${c}$`);if(s.greedy)return o.replace(u,"");for(let f=o.length;f>=0;f--){let p=o.slice(f);if(u.test(p))return o.slice(0,f)}return o}case"PatternReplacement":{let c="";if(s.pattern)for(let p of s.pattern.parts)if(p.type==="Glob")c+=Me(p.pattern,!0);else if(p.type==="Literal")c+=Me(p.value,!0);else if(p.type==="SingleQuoted"||p.type==="Escaped")c+=_e(p.value);else if(p.type==="DoubleQuoted"){let d=await Rt(t,p.parts);c+=_e(d)}else if(p.type==="ParameterExpansion"){let d=await He(t,p);c+=Me(d,!0)}else{let d=await He(t,p);c+=_e(d)}let u=s.replacement?await Rt(t,s.replacement.parts):"";if(c==="")return o;s.anchor==="start"?c=`^${c}`:s.anchor==="end"&&(c=`${c}$`);let f=s.all?"g":"";try{let p=new RegExp(c,f);if(s.all){let d="",h=0,m=p.exec(o);for(;m!==null&&!(m[0].length===0&&m.index===o.length);)d+=o.slice(h,m.index)+u,h=m.index+m[0].length,m[0].length===0&&h++,m=p.exec(o);return d+=o.slice(h),d}return o.replace(p,u)}catch{return o}}default:return Af(t,e,r)}}function si(t,e,r){switch(r){case"+":return t+e;case"-":return t-e;case"*":return t*e;case"/":return e!==0?Math.trunc(t/e):0;case"%":return e!==0?t%e:0;case"**":if(e<0)throw new xe("exponent less than 0");return t**e;case"<<":return t<<e;case">>":return t>>e;case"<":return t<e?1:0;case"<=":return t<=e?1:0;case">":return t>e?1:0;case">=":return t>=e?1:0;case"==":return t===e?1:0;case"!=":return t!==e?1:0;case"&":return t&e;case"|":return t|e;case"^":return t^e;case",":return e;default:return 0}}function kf(t,e,r){switch(r){case"=":return e;case"+=":return t+e;case"-=":return t-e;case"*=":return t*e;case"/=":return e!==0?Math.trunc(t/e):0;case"%=":return e!==0?t%e:0;case"<<=":return t<<e;case">>=":return t>>e;case"&=":return t&e;case"|=":return t|e;case"^=":return t^e;default:return e}}function ii(t,e){switch(e){case"-":return-t;case"+":return+t;case"!":return t===0?1:0;case"~":return~t;default:return t}}function Wy(t,e){let r=t.state.env[e];if(r!==void 0)return r;let n=t.state.env[`${e}_0`];return n!==void 0?n:ze(t,e)}function Yt(t){if(!t)return 0;let e=Number.parseInt(t,10);if(!Number.isNaN(e)&&/^-?\d+$/.test(t.trim()))return e;let r=t.trim();if(!r)return 0;try{let n=new Se,{expr:s,pos:i}=et(n,r,0);if(i<r.length){let o=r.slice(i).trim().split(/\s+/)[0];throw new xe(`${r}: syntax error in expression (error token is "${o}")`)}return s.type==="ArithNumber"?s.value:e||0}catch(n){if(n instanceof xe)throw n;let s=r.split(/\s+/).slice(1)[0]||r;throw new xe(`${r}: syntax error in expression (error token is "${s}")`)}}function wn(t,e,r=new Set){if(r.has(e))return 0;r.add(e);let n=Wy(t,e);if(!n)return 0;let s=Number.parseInt(n,10);if(!Number.isNaN(s)&&/^-?\d+$/.test(n.trim()))return s;let i=n.trim();if(/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(i))return wn(t,i,r);try{let o=new Se,{expr:a}=et(o,i,0);return Ge(t,a,r)}catch{return 0}}function Ge(t,e,r){switch(e.type){case"ArithNumber":if(Number.isNaN(e.value))throw new xe("value too great for base");return e.value;case"ArithVariable":return wn(t,e.name,r);case"ArithBinary":{if(e.operator==="||")return Ge(t,e.left,r)||Ge(t,e.right,r)?1:0;if(e.operator==="&&")return Ge(t,e.left,r)&&Ge(t,e.right,r)?1:0;let n=Ge(t,e.left,r),s=Ge(t,e.right,r);return si(n,s,e.operator)}case"ArithUnary":{let n=Ge(t,e.operand,r);return ii(n,e.operator)}case"ArithTernary":return Ge(t,e.condition,r)?Ge(t,e.consequent,r):Ge(t,e.alternate,r);case"ArithGroup":return Ge(t,e.expression,r);default:return ee(t,e)}}function ct(t,e){if(e.startsWith("#")){let f=e.slice(1),p=t.state.env[f]||"";return String(p.length)}if(e.startsWith("!")){let f=e.slice(1),p=t.state.env[f]||"";return t.state.env[p]||""}let r=[":-",":=",":?",":+","-","=","?","+"],n=-1,s="";for(let f of r){let p=e.indexOf(f);p>0&&(n===-1||p<n)&&(n=p,s=f)}if(n===-1)return ze(t,e);let i=e.slice(0,n),o=e.slice(n+s.length),a=t.state.env[i],l=a===void 0,c=a==="",u=s.startsWith(":");switch(s){case":-":case"-":return l||u&&c?o:a||"";case":=":case"=":return l||u&&c?(t.state.env[i]=o,o):a||"";case":+":case"+":return!(l||u&&c)?o:"";case":?":case"?":{if(l||u&&c)throw new Error(o||`${i}: parameter null or not set`);return a||""}default:return a||""}}function ee(t,e){switch(e.type){case"ArithNumber":if(Number.isNaN(e.value))throw new xe("value too great for base");return e.value;case"ArithVariable":return wn(t,e.name);case"ArithNested":return ee(t,e.expression);case"ArithCommandSubst":return 0;case"ArithBracedExpansion":{let r=ct(t,e.content);return Number.parseInt(r,10)||0}case"ArithDynamicBase":{let r=ct(t,e.baseExpr),n=Number.parseInt(r,10);if(n<2||n>64)return 0;let s=`${n}#${e.value}`;return Zt(s)}case"ArithDynamicNumber":{let n=ct(t,e.prefix)+e.suffix;return Zt(n)}case"ArithArrayElement":{let r=t.state.associativeArrays?.has(e.array),n;if(e.stringKey!==void 0)n=`${e.array}_${e.stringKey}`;else if(r&&e.index?.type==="ArithVariable")n=`${e.array}_${e.index.name}`;else if(e.index){let i=ee(t,e.index);if(i<0){let a=be(t,e.array);if(a.length===0)return t.state.expansionStderr=(t.state.expansionStderr||"")+`bash: ${e.array}: bad array subscript
646
+ `&&(o+=c),i+=2):(o+=e[i],i++)}else o+=e[i],i++;i>=e.length&&this.error("unexpected EOF while looking for matching ``'");let l=new t().parse(o);return{part:P.commandSubstitution(l,!0),endIndex:i+1}}parseArithmeticExpansion(e,r){let n=r+3,s=1,i=0,o=n;for(;o<e.length-1&&s>0;)e[o]==="$"&&e[o+1]==="("?e[o+2]==="("?(s++,o+=3):(i++,o+=2):e[o]==="("&&e[o+1]==="("?(s++,o+=2):e[o]===")"&&e[o+1]===")"?i>0?(i--,o++):(s--,s>0&&(o+=2)):e[o]==="("?(i++,o++):(e[o]===")"&&i>0&&i--,o++);let a=e.slice(n,o),l=this.parseArithmeticExpression(a);return{part:P.arithmeticExpansion(l),endIndex:o+2}}parseArithmeticCommand(){this.expect(y.DPAREN_START);let e="",r=1,n=0,s=!1,i=!1;for(;r>0&&!this.check(y.EOF);){if(s){if(s=!1,n>0){n--,e+=")";continue}if(this.check(y.RPAREN)){r--,i=!0,this.advance();continue}if(this.check(y.DPAREN_END)){r--,i=!0;continue}e+=")";continue}this.check(y.DPAREN_START)?(r++,e+="((",this.advance()):this.check(y.DPAREN_END)?n>=2?(n-=2,e+="))",this.advance()):n===1?(n--,e+=")",s=!0,this.advance()):(r--,i=!0,r>0&&(e+="))"),this.advance()):this.check(y.LPAREN)?(n++,e+="(",this.advance()):this.check(y.RPAREN)?(n>0&&n--,e+=")",this.advance()):(e+=this.current().value,this.advance())}i||this.expect(y.DPAREN_END);let o=this.parseArithmeticExpression(e.trim()),a=this.parseOptionalRedirections();return P.arithmeticCommand(o,a)}parseConditionalCommand(){this.expect(y.DBRACK_START);let e=yi(this);this.expect(y.DBRACK_END);let r=this.parseOptionalRedirections();return P.conditionalCommand(e,r)}parseFunctionDef(){let e;this.check(y.FUNCTION)?(this.advance(),e=this.expect(y.NAME,"Expected function name").value,this.check(y.LPAREN)&&(this.advance(),this.expect(y.RPAREN))):(e=this.advance().value,this.expect(y.LPAREN),this.expect(y.RPAREN)),this.skipNewlines();let r=this.parseCompoundCommandBody(),n=this.parseOptionalRedirections();return P.functionDef(e,r,n)}parseCompoundCommandBody(){if(this.check(y.LBRACE))return mi(this);if(this.check(y.LPAREN))return hi(this);if(this.check(y.IF))return ci(this);if(this.check(y.FOR))return ui(this);if(this.check(y.WHILE))return fi(this);if(this.check(y.UNTIL))return di(this);if(this.check(y.CASE))return pi(this);this.error("Expected compound command for function body")}parseCompoundList(){let e=[];for(this.skipNewlines();!this.check(y.EOF,y.FI,y.ELSE,y.ELIF,y.THEN,y.DO,y.DONE,y.ESAC,y.RPAREN,y.RBRACE,y.DSEMI,y.SEMI_AND,y.SEMI_SEMI_AND)&&this.isCommandStart();){this.checkIterationLimit();let r=this.pos,n=this.parseStatement();if(n&&e.push(n),this.skipSeparators(),this.pos===r&&!n)break}return e}parseOptionalRedirections(){let e=[];for(;Rn(this);){this.checkIterationLimit();let r=this.pos;if(e.push(Pn(this)),this.pos===r)break}return e}parseArithmeticExpression(e){return Ae(this,e)}};function xt(t){return new ve().parse(t)}ie();Ht();var lr=class{fs;cwd;constructor(e,r){this.fs=e,this.cwd=r}isGlobPattern(e){return e.includes("*")||e.includes("?")||/\[.*\]/.test(e)}async expandArgs(e,r){let n=e.map((o,a)=>(r?.[a]??!1)||!this.isGlobPattern(o)?null:this.expand(o)),s=await Promise.all(n.map(o=>o||Promise.resolve(null))),i=[];for(let o=0;o<e.length;o++){let a=s[o];a===null?i.push(e[o]):a.length>0?i.push(...a):i.push(e[o])}return i}async expand(e){return e.includes("**")?this.expandRecursive(e):this.expandSimple(e)}async expandSimple(e){let r=[],n=e.lastIndexOf("/"),s,i;n===-1?(s=this.cwd,i=e):(s=e.slice(0,n)||"/",i=e.slice(n+1));let o=this.fs.resolvePath(this.cwd,s);try{let a=await this.fs.readdir(o);for(let l of a)if(this.matchPattern(l,i)){let c=n===-1?l:`${s}/${l}`;r.push(c)}}catch{}return r.sort()}async expandRecursive(e){let r=[],n=e.indexOf("**"),s=e.slice(0,n).replace(/\/$/,"")||".",o=e.slice(n+2).replace(/^\//,"");return await this.walkDirectory(s,o,r),r.sort()}async walkDirectory(e,r,n){let s=this.fs.resolvePath(this.cwd,e);try{if(this.fs.readdirWithFileTypes){let i=await this.fs.readdirWithFileTypes(s),o=[],a=[];for(let l of i){let c=e==="."?l.name:`${e}/${l.name}`;l.isDirectory?a.push(c):r&&this.matchPattern(l.name,r)&&o.push(c)}n.push(...o);for(let l=0;l<a.length;l+=100){let c=a.slice(l,l+100);await Promise.all(c.map(u=>this.walkDirectory(u,r,n)))}}else{let i=await this.fs.readdir(s),o=[];for(let l=0;l<i.length;l+=100){let c=i.slice(l,l+100),u=await Promise.all(c.map(async f=>{let d=e==="."?f:`${e}/${f}`,p=this.fs.resolvePath(this.cwd,d);try{let h=await this.fs.stat(p);return{name:f,path:d,isDirectory:h.isDirectory}}catch{return null}}));o.push(...u.filter(f=>f!==null))}for(let l of o)!l.isDirectory&&r&&this.matchPattern(l.name,r)&&n.push(l.path);let a=o.filter(l=>l.isDirectory);for(let l=0;l<a.length;l+=100){let c=a.slice(l,l+100);await Promise.all(c.map(u=>this.walkDirectory(u.path,r,n)))}}}catch{}}matchPattern(e,r){return this.patternToRegex(r).test(e)}patternToRegex(e){let r="^";for(let n=0;n<e.length;n++){let s=e[n];if(s==="*")r+=".*";else if(s==="?")r+=".";else if(s==="["){let i=n+1,o="[";for(i<e.length&&(e[i]==="^"||e[i]==="!")&&(o+="^",i++),i<e.length&&e[i]==="]"&&(o+="\\]",i++);i<e.length&&e[i]!=="]";){if(e[i]==="["&&i+1<e.length&&e[i+1]===":"){let a=e.indexOf(":]",i+2);if(a!==-1){let l=e.slice(i+2,a),c=this.posixClassToRegex(l);o+=c,i=a+2;continue}}if(e[i]==="\\"&&i+1<e.length){o+=`\\${e[i+1]}`,i+=2;continue}e[i]==="-"?o+="\\-":o+=e[i],i++}o+="]",r+=o,n=i}else if(s==="\\"&&n+1<e.length){let i=e[n+1];/[.+^${}()|\\*?[\]]/.test(i)?r+=`\\${i}`:r+=i,n++}else/[.+^${}()|]/.test(s)?r+=`\\${s}`:r+=s}return r+="$",new RegExp(r)}posixClassToRegex(e){return{alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"!-~",lower:"a-z",print:" -~",punct:"!-/:-@\\[-`{-~",space:" \\t\\n\\r\\f\\v",upper:"A-Z",word:"a-zA-Z0-9_",xdigit:"0-9a-fA-F"}[e]||""}};ie();function Je(t){switch(t.type){case"ArithCommandSubst":return!0;case"ArithNested":return Je(t.expression);case"ArithBinary":return Je(t.left)||Je(t.right);case"ArithUnary":return Je(t.operand);case"ArithTernary":return Je(t.condition)||Je(t.consequent)||Je(t.alternate);case"ArithAssignment":return Je(t.value);case"ArithGroup":return Je(t.expression);case"ArithArrayElement":return t.index?Je(t.index):!1;case"ArithConcat":return t.parts.some(Je);default:return!1}}function wi(t){let e=t.operation;return e?!!("word"in e&&e.word&&dt(e.word)||e.type==="PatternReplacement"&&(e.pattern&&dt(e.pattern)||e.replacement&&dt(e.replacement))||e.type==="PatternRemoval"&&e.pattern&&dt(e.pattern)):!1}function Fn(t){switch(t.type){case"CommandSubstitution":return!0;case"ArithmeticExpansion":return Je(t.expression.expression);case"DoubleQuoted":return t.parts.some(Fn);case"BraceExpansion":return t.items.some(e=>e.type==="Word"&&dt(e.word));case"ParameterExpansion":return wi(t);default:return!1}}function dt(t){return t.parts.some(Fn)}function Ei(t){if(!t.operation)return!1;let e=t.operation,r;if((e.type==="DefaultValue"||e.type==="AssignDefault"||e.type==="UseAlternative"||e.type==="ErrorIfUnset")&&(r=e.word?.parts),!r)return!1;for(let n of r)if(n.type==="DoubleQuoted"||n.type==="SingleQuoted")return!0;return!1}function Rf(t){let e=!1,r=!1,n=!1,s=!1,i=!1;for(let o of t){if((o.type==="SingleQuoted"||o.type==="DoubleQuoted")&&(e=!0,o.type==="DoubleQuoted"))for(let a of o.parts)a.type==="ParameterExpansion"&&a.parameter.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[[@*]\]$/)&&!a.operation&&(s=!0);o.type==="CommandSubstitution"&&(r=!0),o.type==="ParameterExpansion"&&(i=!0,(o.parameter==="@"||o.parameter==="*")&&(n=!0),Ei(o)&&(e=!0))}return{hasQuoted:e,hasCommandSub:r,hasArrayVar:n,hasArrayAtExpansion:s,hasParamExpansion:i}}function Yy(t,e,r,n,s){let i=r??1;i===0&&(i=1);let o=Math.abs(i),a=[],l=0;n?.match(/^-?0\d/)&&(l=Math.max(l,n.replace(/^-/,"").length)),s?.match(/^-?0\d/)&&(l=Math.max(l,s.replace(/^-/,"").length));let c=u=>{if(l>0){let f=u<0,d=String(Math.abs(u)).padStart(l,"0");return f?`-${d}`:d}return String(u)};if(t<=e)for(let u=t,f=0;u<=e&&f<1e4;u+=o,f++)a.push(c(u));else for(let u=t,f=0;u>=e&&f<1e4;u-=o,f++)a.push(c(u));return a}function ex(t,e,r){let n=r??1;n===0&&(n=1);let s=t.charCodeAt(0),i=e.charCodeAt(0),o=Math.abs(n),a=t>="A"&&t<="Z",l=t>="a"&&t<="z",c=e>="A"&&e<="Z",u=e>="a"&&e<="z";if(a&&u||l&&c)return null;let f=[];if(s<=i)for(let d=s,p=0;d<=i&&p<1e4;d+=o,p++)f.push(String.fromCharCode(d));else for(let d=s,p=0;d>=i&&p<1e4;d-=o,p++)f.push(String.fromCharCode(d));return f}function Tr(t,e,r,n,s){let i=r!==void 0?`..${r}`:"";return typeof t=="number"&&typeof e=="number"?{expanded:Yy(t,e,r,n,s),literal:`{${t}..${e}${i}}`}:typeof t=="string"&&typeof e=="string"?{expanded:ex(t,e,r),literal:`{${t}..${e}${i}}`}:{expanded:null,literal:`{${t}..${e}${i}}`}}function Ge(t,e){let r="",n=0;for(;n<t.length;){let s=t[n];if(s==="\\")if(n+1<t.length){let i=t[n+1];/[\\^$.|+(){}[\]*?]/.test(i)?r+=`\\${i}`:r+=i,n+=2}else r+="\\\\",n++;else if(s==="*")r+=e?".*":".*?",n++;else if(s==="?")r+=".",n++;else if(s==="["){let i=tx(t,n);if(i===-1)r+="\\[",n++;else{let o=t.slice(n+1,i);r+=rx(o),n=i+1}}else/[\^$.|+(){}]/.test(s)?(r+=`\\${s}`,n++):(r+=s,n++)}return r}function tx(t,e){let r=e+1;for(r<t.length&&t[r]==="^"&&r++,r<t.length&&t[r]==="]"&&r++;r<t.length;){if(t[r]==="\\"&&r+1<t.length){r+=2;continue}if(t[r]==="]")return r;if(t[r]==="'"){let n=t.indexOf("'",r+1);if(n!==-1){r=n+1;continue}}if(t[r]==="["&&r+1<t.length&&t[r+1]===":"){let n=t.indexOf(":]",r+2);if(n!==-1){r=n+2;continue}}r++}return-1}function rx(t){let e="[",r=0;for((t[0]==="^"||t[0]==="!")&&(e+="^",r++);r<t.length;){if(t[r]==="'"){let s=t.indexOf("'",r+1);if(s!==-1){let i=t.slice(r+1,s);for(let o of i)o==="\\"?e+="\\\\":o==="]"?e+="\\]":o==="^"&&e==="["?e+="\\^":e+=o;r=s+1;continue}}if(t[r]==="["&&r+1<t.length&&t[r+1]===":"){let s=t.indexOf(":]",r+2);if(s!==-1){let i=t.slice(r+2,s);e+=sx(i),r=s+2;continue}}let n=t[r];n==="\\"?r+1<t.length?(e+=`\\${t[r+1]}`,r+=2):(e+="\\\\",r++):n==="-"&&r>0&&r<t.length-1?(e+="-",r++):n==="^"&&r===0?(e+="^",r++):(n==="]"&&r===0?e+="\\]":e+=n,r++)}return e+="]",e}var nx={alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"!-~",lower:"a-z",print:" -~",punct:"!-/:-@\\[-`{-~",space:" \\t\\n\\r\\f\\v",upper:"A-Z",word:"a-zA-Z0-9_",xdigit:"0-9A-Fa-f"};function sx(t){return nx[t]??""}ie();function Or(t,e){let r=`${e}_`,n=[];for(let s of Object.keys(t.state.env))if(s.startsWith(r)){let i=s.slice(r.length),o=Number.parseInt(i,10);!Number.isNaN(o)&&String(o)===i&&n.push(o)}return n.sort((s,i)=>s-i)}function Dr(t,e){let r=`${e}_`;for(let n of Object.keys(t.state.env))n.startsWith(r)&&delete t.state.env[n]}function bi(t,e){let r=`${e}_`,n=[];for(let s of Object.keys(t.state.env))if(s.startsWith(r)&&!s.includes("__")){let i=s.slice(r.length);n.push(i)}return n.sort()}function Pf(t){return t.startsWith("'")&&t.endsWith("'")||t.startsWith('"')&&t.endsWith('"')?t.slice(1,-1):t}function Tn(t){return t.IFS??`
647
+ `}function Ff(t){return t.IFS===""}function Lr(t){return t.split("").map(e=>/[\\^$.*+?()[\]{}|-]/.test(e)?`\\${e}`:e===" "?"\\t":e===`
648
+ `?"\\n":e).join("")}function ix(t,e){let r=Lr(t);return new RegExp(`[${r}]+`,e)}function ox(t){let e=Lr(t);return new RegExp(`^[${e}]+`)}function ax(t){let e=Lr(t);return new RegExp(`[${e}]+$`)}function cr(t){let e=t.IFS;return e===void 0?" ":e[0]||""}function Tf(t,e){if(e==="")return{words:[t],wordStarts:[0]};let r=[],n=[],s=ix(e,"g"),i=0,o=t.match(ox(e));o&&(i=o[0].length),s.lastIndex=i;let a=s.exec(t);for(;a!==null;)a.index>i&&(n.push(i),r.push(t.substring(i,a.index))),i=s.lastIndex,a=s.exec(t);return i<t.length&&(n.push(i),r.push(t.substring(i))),{words:r,wordStarts:n}}function Of(t,e){return e===""?t:t.replace(ax(e),"")}function ke(t,e){return t.state.associativeArrays?.has(e)?bi(t,e).map(i=>[i,t.state.env[`${e}_${i}`]]):Or(t,e).map(s=>[s,t.state.env[`${e}_${s}`]])}function Df(t,e){return t.state.associativeArrays?.has(e)?bi(t,e).length>0:Or(t,e).length>0}function Ye(t,e,r=!0,n=!1){switch(e){case"?":return String(t.state.lastExitCode);case"$":return String(process.pid);case"#":return t.state.env["#"]||"0";case"@":return t.state.env["@"]||"";case"_":return t.state.lastArg;case"-":{let o="";return t.state.options.errexit&&(o+="e"),t.state.options.nounset&&(o+="u"),t.state.options.verbose&&(o+="v"),t.state.options.xtrace&&(o+="x"),t.state.options.pipefail&&(o+="p"),o}case"*":{let o=Number.parseInt(t.state.env["#"]||"0",10);if(o===0)return"";let a=[];for(let l=1;l<=o;l++)a.push(t.state.env[String(l)]||"");return a.join(cr(t.state.env))}case"0":return t.state.env[0]||"bash";case"PWD":return t.state.env.PWD!==void 0?t.state.env.PWD:"";case"OLDPWD":return t.state.env.OLDPWD!==void 0?t.state.env.OLDPWD:"";case"PPID":{let{ppid:o}=Fr();return String(o)}case"UID":{let{uid:o}=Fr();return String(o)}case"EUID":return String(process.geteuid?.()??Fr().uid);case"RANDOM":return String(Math.floor(Math.random()*32768));case"SECONDS":return String(Math.floor((Date.now()-t.state.startTime)/1e3));case"BASH_VERSION":return Yu;case"!":return String(t.state.lastBackgroundPid);case"LINENO":return String(t.state.currentLine)}if(/^[a-zA-Z_][a-zA-Z0-9_]*\[\]$/.test(e))throw new lt(`\${${e}}`);let s=e.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[(.+)\]$/);if(s){let o=s[1],a=s[2];if(a==="@"||a==="*"){let f=ke(t,o);if(f.length>0)return f.map(([,p])=>p).join(" ");let d=t.state.env[o];return d!==void 0?d:""}if(t.state.associativeArrays?.has(o)){let f=Pf(a),d=t.state.env[`${o}_${f}`];if(d===void 0&&r&&t.state.options.nounset)throw new Qe(`${o}[${a}]`);return d||""}let c;if(/^-?\d+$/.test(a))c=Number.parseInt(a,10);else try{let f=new ve,d=Ae(f,a);c=X(t,d.expression)}catch{let f=t.state.env[a];c=f?Number.parseInt(f,10):0,Number.isNaN(c)&&(c=0)}if(c<0){let f=ke(t,o);if(f.length===0)return t.state.expansionStderr=(t.state.expansionStderr||"")+`bash: ${o}: bad array subscript
649
+ `,"";let p=Math.max(...f.map(([m])=>typeof m=="number"?m:0))+1+c;return p<0?(t.state.expansionStderr=(t.state.expansionStderr||"")+`bash: ${o}: bad array subscript
650
+ `,""):t.state.env[`${o}_${p}`]||""}let u=t.state.env[`${o}_${c}`];if(u===void 0&&r&&t.state.options.nounset)throw new Qe(`${o}[${c}]`);return u||""}if(/^[1-9][0-9]*$/.test(e)){let o=t.state.env[e];if(o===void 0&&r&&t.state.options.nounset)throw new Qe(e);return o||""}let i=t.state.env[e];if(i===void 0&&r&&t.state.options.nounset)throw new Qe(e);return i||""}async function Lf(t,e,r,n,s){let i=[];for(let u of e){let f=u.type==="ParameterExpansion"||u.type==="CommandSubstitution"||u.type==="ArithmeticExpansion";if(u.type==="ParameterExpansion"&&Ei(u)){let d=await s(t,u);i.push({value:d,splittable:!1})}else{let d=await s(t,u);i.push({value:d,splittable:f})}}if(!i.some(u=>u.splittable&&new RegExp(`[${n}]`).test(u.value))){let u=i.map(f=>f.value).join("");return u?[u]:[]}let a=new RegExp(`[${n}]+`),l=[],c="";for(let u=0;u<i.length;u++){let f=i[u];if(!f.splittable)c+=f.value;else{let d=f.value.split(a);for(let p=0;p<d.length;p++)p===0?c+=d[p]:(c!==""&&l.push(c),c=d[p])}}return c!==""&&l.push(c),l}function qe(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Mf(t){switch(t.type){case"Literal":return t.value;case"SingleQuoted":return t.value;case"Escaped":return t.value;default:return null}}function _f(t){switch(t.type){case"SingleQuoted":case"Escaped":case"DoubleQuoted":return!0;case"Literal":return t.value==="";default:return!1}}function Si(t){if(t==="")return"''";if(!/['\\\n\r\t\x00-\x1f\x7f]/.test(t))return`'${t}'`;let e="$'";for(let r of t)switch(r){case"'":e+="\\'";break;case"\\":e+="\\\\";break;case`
651
+ `:e+="\\n";break;case"\r":e+="\\r";break;case" ":e+="\\t";break;default:{let n=r.charCodeAt(0);n<32||n===127?e+=`\\x${n.toString(16).padStart(2,"0")}`:e+=r}}return`${e}'`}function Wt(t,e,r=!1){return e.map(n=>pt(t,n,r)).join("")}async function Ut(t,e,r=!1){let n=[];for(let s of e)n.push(await et(t,s));return n.join("")}function lx(t){return _f(t)}function Bf(t){if(t.parts.length===0)return!0;for(let e of t.parts)if(!lx(e))return!1;return!0}function Wf(t){return t.replace(/([*?[\]\\])/g,"\\$1")}function Uf(t,e,r=!1){let n=Mf(e);if(n!==null)return n;switch(e.type){case"ParameterExpansion":return qf(t,e,r);case"TildeExpansion":return r?e.user===null?"~":`~${e.user}`:e.user===null?t.state.env.HOME||"/home/user":e.user==="root"?"/root":`~${e.user}`;case"Glob":return e.pattern;default:return null}}function pt(t,e,r=!1){let n=Uf(t,e,r);if(n!==null)return n;switch(e.type){case"DoubleQuoted":{let s=[];for(let i of e.parts)s.push(pt(t,i,!0));return s.join("")}case"ArithmeticExpansion":return String(X(t,e.expression.expression));case"BraceExpansion":{let s=[];for(let i of e.items)if(i.type==="Range"){let o=Tr(i.start,i.end,i.step,i.startStr,i.endStr);if(o.expanded)s.push(...o.expanded);else return o.literal}else s.push(On(t,i.word));return s.join(" ")}default:return""}}function On(t,e){let r=e.parts,n=r.length;if(n===1)return pt(t,r[0]);let s=[];for(let i=0;i<n;i++)s.push(pt(t,r[i]));return s.join("")}async function ae(t,e){return dt(e)?Gf(t,e):On(t,e)}function Dn(t){for(let e of t)if(e.type==="BraceExpansion"||e.type==="DoubleQuoted"&&Dn(e.parts))return!0;return!1}function cx(t){for(let e of t){if(e.type==="BraceExpansion"){for(let r of e.items)if(r.type==="Word"&&dt(r.word))return!0}if(Fn(e))return!0}return!1}var zf=1e4,ur=1e5;function jf(t,e,r={count:0}){if(r.count>ur)return[[]];let n=[[]];for(let s of e)if(s.type==="BraceExpansion"){let i=[],o=!1,a="";for(let u of s.items)if(u.type==="Range"){let f=Tr(u.start,u.end,u.step,u.startStr,u.endStr);if(f.expanded)for(let d of f.expanded)r.count++,i.push(d);else{o=!0,a=f.literal;break}}else{let f=jf(t,u.word.parts,r);for(let d of f)r.count++,i.push(d.join(""))}if(o){for(let u of n)r.count++,u.push(a);continue}if(n.length*i.length>zf||r.count>ur)return n;let c=[];for(let u of n)for(let f of i){if(r.count++,r.count>ur)return c.length>0?c:n;c.push([...u,f])}n=c}else{let i=pt(t,s);for(let o of n)r.count++,o.push(i)}return n}function ux(t,e){let r=e.parts;return Dn(r)?jf(t,r).map(s=>s.join("")):[On(t,e)]}async function Hf(t,e,r={count:0}){if(r.count>ur)return[[]];let n=[[]];for(let s of e)if(s.type==="BraceExpansion"){let i=[],o=!1,a="";for(let u of s.items)if(u.type==="Range"){let f=Tr(u.start,u.end,u.step,u.startStr,u.endStr);if(f.expanded)for(let d of f.expanded)r.count++,i.push(d);else{o=!0,a=f.literal;break}}else{let f=await Hf(t,u.word.parts,r);for(let d of f)r.count++,i.push(d.join(""))}if(o){for(let u of n)r.count++,u.push(a);continue}if(n.length*i.length>zf||r.count>ur)return n;let c=[];for(let u of n)for(let f of i){if(r.count++,r.count>ur)return c.length>0?c:n;c.push([...u,f])}n=c}else{let i=await et(t,s);for(let o of n)r.count++,o.push(i)}return n}async function fx(t,e){let r=e.parts;return Dn(r)?(await Hf(t,r)).map(s=>s.join("")):[await ae(t,e)]}async function Mr(t,e){let r=e.parts,{hasQuoted:n,hasCommandSub:s,hasArrayVar:i,hasArrayAtExpansion:o,hasParamExpansion:a}=Rf(r),c=Dn(r)?cx(r)?await fx(t,e):ux(t,e):null;if(c&&c.length>1){let d=[];for(let p of c)if(!n&&/[*?[]/.test(p)){let m=await new lr(t.fs,t.state.cwd).expand(p);m.length>0?d.push(...m):d.push(p)}else d.push(p);return{values:d,quoted:!1}}if(o&&r.length===1&&r[0].type==="DoubleQuoted"){let d=r[0];if(d.parts.length===1&&d.parts[0].type==="ParameterExpansion"){let h=d.parts[0].parameter.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[[@]\]$/);if(h){let m=h[1],g=ke(t,m);if(g.length>0)return{values:g.map(([,E])=>E),quoted:!0};let w=t.state.env[m];return w!==void 0?{values:[w],quoted:!0}:{values:[],quoted:!0}}}}if(r.length===1&&r[0].type==="DoubleQuoted"){let d=r[0],p=-1,h=!1;for(let m=0;m<d.parts.length;m++){let g=d.parts[m];if(g.type==="ParameterExpansion"&&(g.parameter==="@"||g.parameter==="*")){p=m,h=g.parameter==="*";break}}if(p!==-1){let m=d.parts[p];m.type==="ParameterExpansion"&&m.operation&&(p=-1)}if(p!==-1){let m=Number.parseInt(t.state.env["#"]||"0",10),g="";for(let S=0;S<p;S++)g+=await et(t,d.parts[S]);let w="";for(let S=p+1;S<d.parts.length;S++)w+=await et(t,d.parts[S]);if(m===0){if(h)return{values:[g+w],quoted:!0};let S=g+w;return{values:S?[S]:[],quoted:!0}}let E=[];for(let S=1;S<=m;S++)E.push(t.state.env[String(S)]||"");if(h){let S=cr(t.state.env);return{values:[g+E.join(S)+w],quoted:!0}}return E.length===1?{values:[g+E[0]+w],quoted:!0}:{values:[g+E[0],...E.slice(1,-1),E[E.length-1]+w],quoted:!0}}}if((s||i||a)&&!Ff(t.state.env)){let d=Tn(t.state.env),p=Lr(d),h=await Lf(t,r,d,p,et),m=[],g=new lr(t.fs,t.state.cwd);for(let w of h)if(/[*?[]/.test(w)){let E=await g.expand(w);E.length>0?m.push(...E):m.push(w)}else m.push(w);return{values:m,quoted:!1}}let f=dt(e)?await Gf(t,e):On(t,e);if(!n&&/[*?[]/.test(f)){let p=await new lr(t.fs,t.state.cwd).expand(f);if(p.length>0)return{values:p,quoted:!1}}return f===""&&!n?{values:[],quoted:!1}:{values:[f],quoted:n}}async function Gf(t,e){let r=e.parts,n=r.length;if(n===1)return et(t,r[0]);let s=[];for(let i=0;i<n;i++)s.push(await et(t,r[i]));return s.join("")}async function et(t,e){if(e.type==="ParameterExpansion"&&wi(e))return dx(t,e);let r=Uf(t,e);if(r!==null)return r;switch(e.type){case"DoubleQuoted":{let n=[];for(let s of e.parts)n.push(await et(t,s));return n.join("")}case"CommandSubstitution":try{let n=await t.executeScript(e.body);return t.state.lastExitCode=n.exitCode,t.state.env["?"]=String(n.exitCode),n.stdout.replace(/\n+$/,"")}catch(n){if(n instanceof z)throw n;if(n instanceof se)return t.state.lastExitCode=n.exitCode,t.state.env["?"]=String(n.exitCode),n.stdout.replace(/\n+$/,"");throw n}case"ArithmeticExpansion":return String(await J(t,e.expression.expression));case"BraceExpansion":{let n=[];for(let s of e.items)if(s.type==="Range"){let i=Tr(s.start,s.end,s.step,s.startStr,s.endStr);if(i.expanded)n.push(...i.expanded);else return i.literal}else n.push(await ae(t,s.word));return n.join(" ")}default:return""}}function qf(t,e,r=!1){let{parameter:n,operation:s}=e,i=s&&(s.type==="DefaultValue"||s.type==="AssignDefault"||s.type==="UseAlternative"||s.type==="ErrorIfUnset"),o=Ye(t,n,!i);if(!s)return o;let a=!(n in t.state.env),l=o==="";switch(s.type){case"DefaultValue":return(a||s.checkEmpty&&l)&&s.word?Wt(t,s.word.parts,r):o;case"AssignDefault":{if((a||s.checkEmpty&&l)&&s.word){let u=Wt(t,s.word.parts,r),f=n.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[(.+)\]$/);if(f){let[,d,p]=f,h;if(/^\d+$/.test(p))h=Number.parseInt(p,10);else{try{let g=new ve,w=Ae(g,p);h=X(t,w.expression)}catch{let g=t.state.env[p];h=g?Number.parseInt(g,10):0}Number.isNaN(h)&&(h=0)}t.state.env[`${d}_${h}`]=u;let m=Number.parseInt(t.state.env[`${d}__length`]||"0",10);h>=m&&(t.state.env[`${d}__length`]=String(h+1))}else t.state.env[n]=u;return u}return o}case"ErrorIfUnset":{if(a||s.checkEmpty&&l){let u=s.word?Wt(t,s.word.parts,r):`${n}: parameter null or not set`;throw new se(1,"",`bash: ${u}
652
+ `)}return o}case"UseAlternative":return!(a||s.checkEmpty&&l)&&s.word?Wt(t,s.word.parts,r):"";case"Length":{let c=n.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[[@*]\]$/);if(c){let u=ke(t,c[1]);return String(u.length)}if(/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(n)&&Df(t,n)){let u=t.state.env[`${n}_0`]||"";return String(u.length)}return String(o.length)}case"LengthSliceError":throw new lt(n);case"Substring":{let c=s.offset?X(t,s.offset.expression):0,u=s.length?X(t,s.length.expression):void 0;if(n==="@"||n==="*"){let h=(t.state.env["@"]||"").split(" ").filter(E=>E),m=t.state.env[0]||"bash",g=c===0?[m,...h]:h,w=c===0?0:c-1;if(w<0||w>=g.length)return"";if(u!==void 0){let E=u<0?g.length+u:w+u;return g.slice(w,Math.max(w,E)).join(" ")}return g.slice(w).join(" ")}let f=n.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[[@*]\]$/);if(f){let m=ke(t,f[1]).map(([,w])=>w),g=c;if(g<0&&(g=m.length+g,g<0))return"";if(u!==void 0){if(u<0){let w=m.length+u;return m.slice(g,Math.max(g,w)).join(" ")}return m.slice(g,g+u).join(" ")}return m.slice(g).join(" ")}let d=[...o],p=c;if(p<0&&(p=Math.max(0,d.length+p)),u!==void 0){if(u<0){let h=d.length+u;return d.slice(p,Math.max(p,h)).join("")}return d.slice(p,p+u).join("")}return d.slice(p).join("")}case"PatternRemoval":{let c="";if(s.pattern)for(let f of s.pattern.parts)if(f.type==="Glob")c+=Ge(f.pattern,s.greedy);else if(f.type==="Literal")c+=Ge(f.value,s.greedy);else if(f.type==="SingleQuoted"||f.type==="Escaped")c+=qe(f.value);else if(f.type==="DoubleQuoted"){let d=Wt(t,f.parts);c+=qe(d)}else if(f.type==="ParameterExpansion"){let d=pt(t,f);c+=Ge(d,s.greedy)}else{let d=pt(t,f);c+=qe(d)}if(s.side==="prefix")return o.replace(new RegExp(`^${c}`),"");let u=new RegExp(`${c}$`);if(s.greedy)return o.replace(u,"");for(let f=o.length;f>=0;f--){let d=o.slice(f);if(u.test(d))return o.slice(0,f)}return o}case"PatternReplacement":{let c="";if(s.pattern)for(let d of s.pattern.parts)if(d.type==="Glob")c+=Ge(d.pattern,!0);else if(d.type==="Literal")c+=Ge(d.value,!0);else if(d.type==="SingleQuoted"||d.type==="Escaped")c+=qe(d.value);else if(d.type==="DoubleQuoted"){let p=Wt(t,d.parts);c+=qe(p)}else if(d.type==="ParameterExpansion"){let p=pt(t,d);c+=Ge(p,!0)}else{let p=pt(t,d);c+=qe(p)}let u=s.replacement?Wt(t,s.replacement.parts):"";if(c==="")return o;s.anchor==="start"?c=`^${c}`:s.anchor==="end"&&(c=`${c}$`);let f=s.all?"g":"";try{let d=new RegExp(c,f);if(s.all){let p="",h=0,m=d.exec(o);for(;m!==null&&!(m[0].length===0&&m.index===o.length);)p+=o.slice(h,m.index)+u,h=m.index+m[0].length,m[0].length===0&&h++,m=d.exec(o);return p+=o.slice(h),p}return o.replace(d,u)}catch{return o}}case"CaseModification":return s.direction==="upper"?s.all?o.toUpperCase():o.charAt(0).toUpperCase()+o.slice(1):s.all?o.toLowerCase():o.charAt(0).toLowerCase()+o.slice(1);case"Transform":{let c=n.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[[@*]\]$/);if(c&&s.operator==="Q")return ke(t,c[1]).map(([,d])=>Si(d)).join(" ");switch(s.operator){case"Q":return Si(o);case"P":return o;case"a":return"";case"A":return`${n}=${Si(o)}`;case"E":return o.replace(/\\([\\abefnrtv'"?])/g,(u,f)=>{switch(f){case"\\":return"\\";case"a":return"\x07";case"b":return"\b";case"e":return"\x1B";case"f":return"\f";case"n":return`
653
+ `;case"r":return"\r";case"t":return" ";case"v":return"\v";case"'":return"'";case'"':return'"';case"?":return"?";default:return f}});case"K":return"";default:return o}}case"Indirection":return Ye(t,o);case"ArrayKeys":{let u=ke(t,s.array).map(([f])=>String(f));return s.star?u.join(cr(t.state.env)):u.join(" ")}case"VarNamePrefix":{let c=Object.keys(t.state.env).filter(u=>u.startsWith(s.prefix)&&!u.includes("__")).sort();return s.star?c.join(cr(t.state.env)):c.join(" ")}default:return o}}async function dx(t,e,r=!1){let{parameter:n,operation:s}=e,i=s&&(s.type==="DefaultValue"||s.type==="AssignDefault"||s.type==="UseAlternative"||s.type==="ErrorIfUnset"),o=Ye(t,n,!i);if(!s)return o;let a=!(n in t.state.env),l=o==="";switch(s.type){case"DefaultValue":return(a||s.checkEmpty&&l)&&s.word?Ut(t,s.word.parts,r):o;case"AssignDefault":{if((a||s.checkEmpty&&l)&&s.word){let u=await Ut(t,s.word.parts,r),f=n.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[(.+)\]$/);if(f){let[,d,p]=f,h;if(/^\d+$/.test(p))h=Number.parseInt(p,10);else{try{let g=new ve,w=Ae(g,p);h=await J(t,w.expression)}catch{let g=t.state.env[p];h=g?Number.parseInt(g,10):0}Number.isNaN(h)&&(h=0)}t.state.env[`${d}_${h}`]=u;let m=Number.parseInt(t.state.env[`${d}__length`]||"0",10);h>=m&&(t.state.env[`${d}__length`]=String(h+1))}else t.state.env[n]=u;return u}return o}case"ErrorIfUnset":{if(a||s.checkEmpty&&l){let u=s.word?await Ut(t,s.word.parts,r):`${n}: parameter null or not set`;throw new se(1,"",`bash: ${u}
654
+ `)}return o}case"UseAlternative":return!(a||s.checkEmpty&&l)&&s.word?Ut(t,s.word.parts,r):"";case"PatternRemoval":{let c="";if(s.pattern)for(let f of s.pattern.parts)if(f.type==="Glob")c+=Ge(f.pattern,s.greedy);else if(f.type==="Literal")c+=Ge(f.value,s.greedy);else if(f.type==="SingleQuoted"||f.type==="Escaped")c+=qe(f.value);else if(f.type==="DoubleQuoted"){let d=await Ut(t,f.parts);c+=qe(d)}else if(f.type==="ParameterExpansion"){let d=await et(t,f);c+=Ge(d,s.greedy)}else{let d=await et(t,f);c+=qe(d)}if(s.side==="prefix")return o.replace(new RegExp(`^${c}`),"");let u=new RegExp(`${c}$`);if(s.greedy)return o.replace(u,"");for(let f=o.length;f>=0;f--){let d=o.slice(f);if(u.test(d))return o.slice(0,f)}return o}case"PatternReplacement":{let c="";if(s.pattern)for(let d of s.pattern.parts)if(d.type==="Glob")c+=Ge(d.pattern,!0);else if(d.type==="Literal")c+=Ge(d.value,!0);else if(d.type==="SingleQuoted"||d.type==="Escaped")c+=qe(d.value);else if(d.type==="DoubleQuoted"){let p=await Ut(t,d.parts);c+=qe(p)}else if(d.type==="ParameterExpansion"){let p=await et(t,d);c+=Ge(p,!0)}else{let p=await et(t,d);c+=qe(p)}let u=s.replacement?await Ut(t,s.replacement.parts):"";if(c==="")return o;s.anchor==="start"?c=`^${c}`:s.anchor==="end"&&(c=`${c}$`);let f=s.all?"g":"";try{let d=new RegExp(c,f);if(s.all){let p="",h=0,m=d.exec(o);for(;m!==null&&!(m[0].length===0&&m.index===o.length);)p+=o.slice(h,m.index)+u,h=m.index+m[0].length,m[0].length===0&&h++,m=d.exec(o);return p+=o.slice(h),p}return o.replace(d,u)}catch{return o}}default:return qf(t,e,r)}}function Ci(t,e,r){switch(r){case"+":return t+e;case"-":return t-e;case"*":return t*e;case"/":return e!==0?Math.trunc(t/e):0;case"%":return e!==0?t%e:0;case"**":if(e<0)throw new be("exponent less than 0");return t**e;case"<<":return t<<e;case">>":return t>>e;case"<":return t<e?1:0;case"<=":return t<=e?1:0;case">":return t>e?1:0;case">=":return t>=e?1:0;case"==":return t===e?1:0;case"!=":return t!==e?1:0;case"&":return t&e;case"|":return t|e;case"^":return t^e;case",":return e;default:return 0}}function Vf(t,e,r){switch(r){case"=":return e;case"+=":return t+e;case"-=":return t-e;case"*=":return t*e;case"/=":return e!==0?Math.trunc(t/e):0;case"%=":return e!==0?t%e:0;case"<<=":return t<<e;case">>=":return t>>e;case"&=":return t&e;case"|=":return t|e;case"^=":return t^e;default:return e}}function Ai(t,e){switch(e){case"-":return-t;case"+":return+t;case"!":return t===0?1:0;case"~":return~t;default:return t}}function px(t,e){let r=t.state.env[e];if(r!==void 0)return r;let n=t.state.env[`${e}_0`];return n!==void 0?n:Ye(t,e)}function fr(t){if(!t)return 0;let e=Number.parseInt(t,10);if(!Number.isNaN(e)&&/^-?\d+$/.test(t.trim()))return e;let r=t.trim();if(!r)return 0;try{let n=new ve,{expr:s,pos:i}=ut(n,r,0);if(i<r.length){let o=r.slice(i).trim().split(/\s+/)[0];throw new be(`${r}: syntax error in expression (error token is "${o}")`)}return s.type==="ArithNumber"?s.value:e||0}catch(n){if(n instanceof be)throw n;let s=r.split(/\s+/).slice(1)[0]||r;throw new be(`${r}: syntax error in expression (error token is "${s}")`)}}function Ln(t,e,r=new Set){if(r.has(e))return 0;r.add(e);let n=px(t,e);if(!n)return 0;let s=Number.parseInt(n,10);if(!Number.isNaN(s)&&/^-?\d+$/.test(n.trim()))return s;let i=n.trim();if(/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(i))return Ln(t,i,r);try{let o=new ve,{expr:a}=ut(o,i,0);return tt(t,a,r)}catch{return 0}}function tt(t,e,r){switch(e.type){case"ArithNumber":if(Number.isNaN(e.value))throw new be("value too great for base");return e.value;case"ArithVariable":return Ln(t,e.name,r);case"ArithBinary":{if(e.operator==="||")return tt(t,e.left,r)||tt(t,e.right,r)?1:0;if(e.operator==="&&")return tt(t,e.left,r)&&tt(t,e.right,r)?1:0;let n=tt(t,e.left,r),s=tt(t,e.right,r);return Ci(n,s,e.operator)}case"ArithUnary":{let n=tt(t,e.operand,r);return Ai(n,e.operator)}case"ArithTernary":return tt(t,e.condition,r)?tt(t,e.consequent,r):tt(t,e.alternate,r);case"ArithGroup":return tt(t,e.expression,r);default:return X(t,e)}}function wt(t,e){if(e.startsWith("#")){let f=e.slice(1),d=t.state.env[f]||"";return String(d.length)}if(e.startsWith("!")){let f=e.slice(1),d=t.state.env[f]||"";return t.state.env[d]||""}let r=[":-",":=",":?",":+","-","=","?","+"],n=-1,s="";for(let f of r){let d=e.indexOf(f);d>0&&(n===-1||d<n)&&(n=d,s=f)}if(n===-1)return Ye(t,e);let i=e.slice(0,n),o=e.slice(n+s.length),a=t.state.env[i],l=a===void 0,c=a==="",u=s.startsWith(":");switch(s){case":-":case"-":return l||u&&c?o:a||"";case":=":case"=":return l||u&&c?(t.state.env[i]=o,o):a||"";case":+":case"+":return!(l||u&&c)?o:"";case":?":case"?":{if(l||u&&c)throw new Error(o||`${i}: parameter null or not set`);return a||""}default:return a||""}}function X(t,e){switch(e.type){case"ArithNumber":if(Number.isNaN(e.value))throw new be("value too great for base");return e.value;case"ArithVariable":return Ln(t,e.name);case"ArithNested":return X(t,e.expression);case"ArithCommandSubst":return 0;case"ArithBracedExpansion":{let r=wt(t,e.content);return Number.parseInt(r,10)||0}case"ArithDynamicBase":{let r=wt(t,e.baseExpr),n=Number.parseInt(r,10);if(n<2||n>64)return 0;let s=`${n}#${e.value}`;return ar(s)}case"ArithDynamicNumber":{let n=wt(t,e.prefix)+e.suffix;return ar(n)}case"ArithArrayElement":{let r=t.state.associativeArrays?.has(e.array),n;if(e.stringKey!==void 0)n=`${e.array}_${e.stringKey}`;else if(r&&e.index?.type==="ArithVariable")n=`${e.array}_${e.index.name}`;else if(e.index){let i=X(t,e.index);if(i<0){let a=ke(t,e.array);if(a.length===0)return t.state.expansionStderr=(t.state.expansionStderr||"")+`bash: ${e.array}: bad array subscript
655
655
  `,0;let c=Math.max(...a.map(([u])=>typeof u=="number"?u:0))+1+i;if(c<0)return t.state.expansionStderr=(t.state.expansionStderr||"")+`bash: ${e.array}: bad array subscript
656
- `,0;i=c}n=`${e.array}_${i}`;let o=t.state.env[n];if(o!==void 0)return Yt(o);if(i===0){let a=t.state.env[e.array];if(a!==void 0)return Yt(a)}if(t.state.options.nounset&&!Object.keys(t.state.env).some(l=>l===e.array||l.startsWith(`${e.array}_`)))throw new Ue(`${e.array}[${i}]`);return 0}else return 0;let s=t.state.env[n];return s!==void 0?Yt(s):0}case"ArithDoubleSubscript":throw new xe("double subscript","","");case"ArithNumberSubscript":throw new xe(`${e.number}${e.errorToken}: syntax error: invalid arithmetic operator (error token is "${e.errorToken}")`);case"ArithBinary":{if(e.operator==="||")return ee(t,e.left)||ee(t,e.right)?1:0;if(e.operator==="&&")return ee(t,e.left)&&ee(t,e.right)?1:0;let r=ee(t,e.left),n=ee(t,e.right);return si(r,n,e.operator)}case"ArithUnary":{let r=ee(t,e.operand);if(e.operator==="++"||e.operator==="--"){if(e.operand.type==="ArithVariable"){let n=e.operand.name,s=Number.parseInt(ze(t,n),10)||0,i=e.operator==="++"?s+1:s-1;return t.state.env[n]=String(i),e.prefix?i:s}if(e.operand.type==="ArithArrayElement"){let n=e.operand.array,s=t.state.associativeArrays?.has(n),i;if(e.operand.stringKey!==void 0)i=`${n}_${e.operand.stringKey}`;else if(s&&e.operand.index?.type==="ArithVariable")i=`${n}_${e.operand.index.name}`;else if(e.operand.index){let l=ee(t,e.operand.index);i=`${n}_${l}`}else return r;let o=Number.parseInt(t.state.env[i]||"0",10)||0,a=e.operator==="++"?o+1:o-1;return t.state.env[i]=String(a),e.prefix?a:o}return r}return ii(r,e.operator)}case"ArithTernary":return ee(t,e.condition)?ee(t,e.consequent):ee(t,e.alternate);case"ArithAssignment":{let r=e.variable,n=r;if(e.stringKey!==void 0)n=`${r}_${e.stringKey}`;else if(e.subscript){let a=t.state.associativeArrays?.has(r);if(a&&e.subscript.type==="ArithVariable")n=`${r}_${e.subscript.name}`;else if(a){let l=ee(t,e.subscript);n=`${r}_${l}`}else{let l=ee(t,e.subscript);if(l<0){let c=be(t,r);c.length>0&&(l=Math.max(...c.map(([f])=>typeof f=="number"?f:0))+1+l)}n=`${r}_${l}`}}let s=Number.parseInt(t.state.env[n]||"0",10)||0,i=ee(t,e.value),o=kf(s,i,e.operator);return t.state.env[n]=String(o),o}case"ArithGroup":return ee(t,e.expression);case"ArithConcat":{let r="";for(let n of e.parts)r+=Nf(t,n);return Number.parseInt(r,10)||0}default:return 0}}function Nf(t,e){switch(e.type){case"ArithNumber":return String(e.value);case"ArithVariable":return ze(t,e.name);case"ArithBracedExpansion":return ct(t,e.content);case"ArithCommandSubst":return"0";case"ArithConcat":{let r="";for(let n of e.parts)r+=Nf(t,n);return r}default:return String(ee(t,e))}}async function te(t,e){switch(e.type){case"ArithNumber":if(Number.isNaN(e.value))throw new xe("value too great for base");return e.value;case"ArithVariable":return wn(t,e.name);case"ArithNested":return te(t,e.expression);case"ArithCommandSubst":{if(t.execFn){let n=(await t.execFn(e.command)).stdout.trim();return Number.parseInt(n,10)||0}return 0}case"ArithBracedExpansion":{let r=ct(t,e.content);return Number.parseInt(r,10)||0}case"ArithDynamicBase":{let r=ct(t,e.baseExpr),n=Number.parseInt(r,10);if(n<2||n>64)return 0;let s=`${n}#${e.value}`;return Zt(s)}case"ArithDynamicNumber":{let n=ct(t,e.prefix)+e.suffix;return Zt(n)}case"ArithArrayElement":{let r=t.state.associativeArrays?.has(e.array),n;if(e.stringKey!==void 0)n=`${e.array}_${e.stringKey}`;else if(r&&e.index?.type==="ArithVariable")n=`${e.array}_${e.index.name}`;else if(e.index){let i=await te(t,e.index);n=`${e.array}_${i}`;let o=t.state.env[n];if(o!==void 0)return Yt(o);if(i===0){let a=t.state.env[e.array];if(a!==void 0)return Yt(a)}if(t.state.options.nounset&&!Object.keys(t.state.env).some(l=>l===e.array||l.startsWith(`${e.array}_`)))throw new Ue(`${e.array}[${i}]`);return 0}else return 0;let s=t.state.env[n];return s!==void 0?Yt(s):0}case"ArithDoubleSubscript":throw new xe("double subscript","","");case"ArithNumberSubscript":throw new xe(`${e.number}${e.errorToken}: syntax error: invalid arithmetic operator (error token is "${e.errorToken}")`);case"ArithBinary":{if(e.operator==="||")return await te(t,e.left)||await te(t,e.right)?1:0;if(e.operator==="&&")return await te(t,e.left)&&await te(t,e.right)?1:0;let r=await te(t,e.left),n=await te(t,e.right);return si(r,n,e.operator)}case"ArithUnary":{let r=await te(t,e.operand);if(e.operator==="++"||e.operator==="--"){if(e.operand.type==="ArithVariable"){let n=e.operand.name,s=Number.parseInt(ze(t,n),10)||0,i=e.operator==="++"?s+1:s-1;return t.state.env[n]=String(i),e.prefix?i:s}if(e.operand.type==="ArithArrayElement"){let n=e.operand.array,s=t.state.associativeArrays?.has(n),i;if(e.operand.stringKey!==void 0)i=`${n}_${e.operand.stringKey}`;else if(s&&e.operand.index?.type==="ArithVariable")i=`${n}_${e.operand.index.name}`;else if(e.operand.index){let l=await te(t,e.operand.index);i=`${n}_${l}`}else return r;let o=Number.parseInt(t.state.env[i]||"0",10)||0,a=e.operator==="++"?o+1:o-1;return t.state.env[i]=String(a),e.prefix?a:o}return r}return ii(r,e.operator)}case"ArithTernary":return await te(t,e.condition)?await te(t,e.consequent):await te(t,e.alternate);case"ArithAssignment":{let r=e.variable,n=r;if(e.stringKey!==void 0)n=`${r}_${e.stringKey}`;else if(e.subscript){let a=t.state.associativeArrays?.has(r);if(a&&e.subscript.type==="ArithVariable")n=`${r}_${e.subscript.name}`;else if(a){let l=await te(t,e.subscript);n=`${r}_${l}`}else{let l=await te(t,e.subscript);if(l<0){let c=be(t,r);c.length>0&&(l=Math.max(...c.map(([f])=>typeof f=="number"?f:0))+1+l)}n=`${r}_${l}`}}let s=Number.parseInt(t.state.env[n]||"0",10)||0,i=await te(t,e.value),o=kf(s,i,e.operator);return t.state.env[n]=String(o),o}case"ArithGroup":return await te(t,e.expression);case"ArithConcat":{let r="";for(let n of e.parts)r+=await If(t,n);return Number.parseInt(r,10)||0}default:return 0}}async function If(t,e){switch(e.type){case"ArithNumber":return String(e.value);case"ArithVariable":return ze(t,e.name);case"ArithBracedExpansion":return ct(t,e.content);case"ArithCommandSubst":return t.execFn?(await t.execFn(e.command)).stdout.trim():"0";case"ArithConcat":{let r="";for(let n of e.parts)r+=await If(t,n);return r}default:return String(await te(t,e))}}oe();oe();var Q=Object.freeze({stdout:"",stderr:"",exitCode:0});function Be(t=""){return{stdout:t,stderr:"",exitCode:0}}function U(t,e=1){return{stdout:"",stderr:t,exitCode:e}}function _(t,e,r){return{stdout:t,stderr:e,exitCode:r}}function we(t){return{stdout:"",stderr:"",exitCode:t?0:1}}function st(t,e,r="",n=""){throw new j(t,e,r,n)}function oi(t,e){if(t.state.loopDepth===0){if(t.state.parentHasLoopContext)throw new Ze;return Q}let r=1;if(e.length>0){let n=Number.parseInt(e[0],10);if(Number.isNaN(n)||n<1)throw new ie(128,"",`bash: break: ${e[0]}: numeric argument required
657
- `);r=n}throw new Ae(r)}async function ai(t,e){let r,n=!1,s=!1,i=0;for(;i<e.length;)if(e[i]==="--"){i++;break}else if(e[i]==="-L")s=!1,i++;else if(e[i]==="-P")s=!0,i++;else if(e[i].startsWith("-")&&e[i]!=="-")i++;else break;let o=e.slice(i);if(o.length===0||o[0]==="~"?r=t.state.env.HOME||"/":o[0]==="-"?(r=t.state.previousDir,n=!0):r=o[0],!r.startsWith("/")&&!r.startsWith("./")&&!r.startsWith("../")&&r!=="."&&r!==".."){let f=t.state.env.CDPATH;if(f){let p=f.split(":").filter(d=>d);for(let d of p){let h=d.startsWith("/")?`${d}/${r}`:`${t.state.cwd}/${d}/${r}`;try{if((await t.fs.stat(h)).isDirectory){r=h,n=!0;break}}catch{}}}}let l=(r.startsWith("/")?r:`${t.state.cwd}/${r}`).split("/").filter(f=>f&&f!=="."),c="";for(let f of l)if(f==="..")c=c.split("/").slice(0,-1).join("/")||"/";else{c=c?`${c}/${f}`:`/${f}`;try{if(!(await t.fs.stat(c)).isDirectory)return U(`bash: cd: ${r}: Not a directory
656
+ `,0;i=c}n=`${e.array}_${i}`;let o=t.state.env[n];if(o!==void 0)return fr(o);if(i===0){let a=t.state.env[e.array];if(a!==void 0)return fr(a)}if(t.state.options.nounset&&!Object.keys(t.state.env).some(l=>l===e.array||l.startsWith(`${e.array}_`)))throw new Qe(`${e.array}[${i}]`);return 0}else return 0;let s=t.state.env[n];return s!==void 0?fr(s):0}case"ArithDoubleSubscript":throw new be("double subscript","","");case"ArithNumberSubscript":throw new be(`${e.number}${e.errorToken}: syntax error: invalid arithmetic operator (error token is "${e.errorToken}")`);case"ArithBinary":{if(e.operator==="||")return X(t,e.left)||X(t,e.right)?1:0;if(e.operator==="&&")return X(t,e.left)&&X(t,e.right)?1:0;let r=X(t,e.left),n=X(t,e.right);return Ci(r,n,e.operator)}case"ArithUnary":{let r=X(t,e.operand);if(e.operator==="++"||e.operator==="--"){if(e.operand.type==="ArithVariable"){let n=e.operand.name,s=Number.parseInt(Ye(t,n),10)||0,i=e.operator==="++"?s+1:s-1;return t.state.env[n]=String(i),e.prefix?i:s}if(e.operand.type==="ArithArrayElement"){let n=e.operand.array,s=t.state.associativeArrays?.has(n),i;if(e.operand.stringKey!==void 0)i=`${n}_${e.operand.stringKey}`;else if(s&&e.operand.index?.type==="ArithVariable")i=`${n}_${e.operand.index.name}`;else if(e.operand.index){let l=X(t,e.operand.index);i=`${n}_${l}`}else return r;let o=Number.parseInt(t.state.env[i]||"0",10)||0,a=e.operator==="++"?o+1:o-1;return t.state.env[i]=String(a),e.prefix?a:o}return r}return Ai(r,e.operator)}case"ArithTernary":return X(t,e.condition)?X(t,e.consequent):X(t,e.alternate);case"ArithAssignment":{let r=e.variable,n=r;if(e.stringKey!==void 0)n=`${r}_${e.stringKey}`;else if(e.subscript){let a=t.state.associativeArrays?.has(r);if(a&&e.subscript.type==="ArithVariable")n=`${r}_${e.subscript.name}`;else if(a){let l=X(t,e.subscript);n=`${r}_${l}`}else{let l=X(t,e.subscript);if(l<0){let c=ke(t,r);c.length>0&&(l=Math.max(...c.map(([f])=>typeof f=="number"?f:0))+1+l)}n=`${r}_${l}`}}let s=Number.parseInt(t.state.env[n]||"0",10)||0,i=X(t,e.value),o=Vf(s,i,e.operator);return t.state.env[n]=String(o),o}case"ArithGroup":return X(t,e.expression);case"ArithConcat":{let r="";for(let n of e.parts)r+=Kf(t,n);return Number.parseInt(r,10)||0}default:return 0}}function Kf(t,e){switch(e.type){case"ArithNumber":return String(e.value);case"ArithVariable":return Ye(t,e.name);case"ArithBracedExpansion":return wt(t,e.content);case"ArithCommandSubst":return"0";case"ArithConcat":{let r="";for(let n of e.parts)r+=Kf(t,n);return r}default:return String(X(t,e))}}async function J(t,e){switch(e.type){case"ArithNumber":if(Number.isNaN(e.value))throw new be("value too great for base");return e.value;case"ArithVariable":return Ln(t,e.name);case"ArithNested":return J(t,e.expression);case"ArithCommandSubst":{if(t.execFn){let n=(await t.execFn(e.command)).stdout.trim();return Number.parseInt(n,10)||0}return 0}case"ArithBracedExpansion":{let r=wt(t,e.content);return Number.parseInt(r,10)||0}case"ArithDynamicBase":{let r=wt(t,e.baseExpr),n=Number.parseInt(r,10);if(n<2||n>64)return 0;let s=`${n}#${e.value}`;return ar(s)}case"ArithDynamicNumber":{let n=wt(t,e.prefix)+e.suffix;return ar(n)}case"ArithArrayElement":{let r=t.state.associativeArrays?.has(e.array),n;if(e.stringKey!==void 0)n=`${e.array}_${e.stringKey}`;else if(r&&e.index?.type==="ArithVariable")n=`${e.array}_${e.index.name}`;else if(e.index){let i=await J(t,e.index);n=`${e.array}_${i}`;let o=t.state.env[n];if(o!==void 0)return fr(o);if(i===0){let a=t.state.env[e.array];if(a!==void 0)return fr(a)}if(t.state.options.nounset&&!Object.keys(t.state.env).some(l=>l===e.array||l.startsWith(`${e.array}_`)))throw new Qe(`${e.array}[${i}]`);return 0}else return 0;let s=t.state.env[n];return s!==void 0?fr(s):0}case"ArithDoubleSubscript":throw new be("double subscript","","");case"ArithNumberSubscript":throw new be(`${e.number}${e.errorToken}: syntax error: invalid arithmetic operator (error token is "${e.errorToken}")`);case"ArithBinary":{if(e.operator==="||")return await J(t,e.left)||await J(t,e.right)?1:0;if(e.operator==="&&")return await J(t,e.left)&&await J(t,e.right)?1:0;let r=await J(t,e.left),n=await J(t,e.right);return Ci(r,n,e.operator)}case"ArithUnary":{let r=await J(t,e.operand);if(e.operator==="++"||e.operator==="--"){if(e.operand.type==="ArithVariable"){let n=e.operand.name,s=Number.parseInt(Ye(t,n),10)||0,i=e.operator==="++"?s+1:s-1;return t.state.env[n]=String(i),e.prefix?i:s}if(e.operand.type==="ArithArrayElement"){let n=e.operand.array,s=t.state.associativeArrays?.has(n),i;if(e.operand.stringKey!==void 0)i=`${n}_${e.operand.stringKey}`;else if(s&&e.operand.index?.type==="ArithVariable")i=`${n}_${e.operand.index.name}`;else if(e.operand.index){let l=await J(t,e.operand.index);i=`${n}_${l}`}else return r;let o=Number.parseInt(t.state.env[i]||"0",10)||0,a=e.operator==="++"?o+1:o-1;return t.state.env[i]=String(a),e.prefix?a:o}return r}return Ai(r,e.operator)}case"ArithTernary":return await J(t,e.condition)?await J(t,e.consequent):await J(t,e.alternate);case"ArithAssignment":{let r=e.variable,n=r;if(e.stringKey!==void 0)n=`${r}_${e.stringKey}`;else if(e.subscript){let a=t.state.associativeArrays?.has(r);if(a&&e.subscript.type==="ArithVariable")n=`${r}_${e.subscript.name}`;else if(a){let l=await J(t,e.subscript);n=`${r}_${l}`}else{let l=await J(t,e.subscript);if(l<0){let c=ke(t,r);c.length>0&&(l=Math.max(...c.map(([f])=>typeof f=="number"?f:0))+1+l)}n=`${r}_${l}`}}let s=Number.parseInt(t.state.env[n]||"0",10)||0,i=await J(t,e.value),o=Vf(s,i,e.operator);return t.state.env[n]=String(o),o}case"ArithGroup":return await J(t,e.expression);case"ArithConcat":{let r="";for(let n of e.parts)r+=await Zf(t,n);return Number.parseInt(r,10)||0}default:return 0}}async function Zf(t,e){switch(e.type){case"ArithNumber":return String(e.value);case"ArithVariable":return Ye(t,e.name);case"ArithBracedExpansion":return wt(t,e.content);case"ArithCommandSubst":return t.execFn?(await t.execFn(e.command)).stdout.trim():"0";case"ArithConcat":{let r="";for(let n of e.parts)r+=await Zf(t,n);return r}default:return String(await J(t,e))}}ie();ie();var Z=Object.freeze({stdout:"",stderr:"",exitCode:0});function Ve(t=""){return{stdout:t,stderr:"",exitCode:0}}function U(t,e=1){return{stdout:"",stderr:t,exitCode:e}}function M(t,e,r){return{stdout:t,stderr:e,exitCode:r}}function Se(t){return{stdout:"",stderr:"",exitCode:t?0:1}}function ht(t,e,r="",n=""){throw new z(t,e,r,n)}function ki(t,e){if(t.state.loopDepth===0){if(t.state.parentHasLoopContext)throw new it;return Z}let r=1;if(e.length>0){let n=Number.parseInt(e[0],10);if(Number.isNaN(n)||n<1)throw new se(128,"",`bash: break: ${e[0]}: numeric argument required
657
+ `);r=n}throw new $e(r)}async function Ni(t,e){let r,n=!1,s=!1,i=0;for(;i<e.length;)if(e[i]==="--"){i++;break}else if(e[i]==="-L")s=!1,i++;else if(e[i]==="-P")s=!0,i++;else if(e[i].startsWith("-")&&e[i]!=="-")i++;else break;let o=e.slice(i);if(o.length===0||o[0]==="~"?r=t.state.env.HOME||"/":o[0]==="-"?(r=t.state.previousDir,n=!0):r=o[0],!r.startsWith("/")&&!r.startsWith("./")&&!r.startsWith("../")&&r!=="."&&r!==".."){let f=t.state.env.CDPATH;if(f){let d=f.split(":").filter(p=>p);for(let p of d){let h=p.startsWith("/")?`${p}/${r}`:`${t.state.cwd}/${p}/${r}`;try{if((await t.fs.stat(h)).isDirectory){r=h,n=!0;break}}catch{}}}}let l=(r.startsWith("/")?r:`${t.state.cwd}/${r}`).split("/").filter(f=>f&&f!=="."),c="";for(let f of l)if(f==="..")c=c.split("/").slice(0,-1).join("/")||"/";else{c=c?`${c}/${f}`:`/${f}`;try{if(!(await t.fs.stat(c)).isDirectory)return U(`bash: cd: ${r}: Not a directory
658
658
  `)}catch{return U(`bash: cd: ${r}: No such file or directory
659
- `)}}let u=c||"/";return t.state.previousDir=t.state.cwd,t.state.cwd=u,t.state.env.PWD=t.state.cwd,t.state.env.OLDPWD=t.state.previousDir,Be(n?`${u}
660
- `:"")}oe();function li(t,e){if(t.state.loopDepth===0){if(t.state.parentHasLoopContext)throw new Ze;return Q}if(e.length>1)throw new Ae(1);let r=1;if(e.length>0){let n=Number.parseInt(e[0],10);if(Number.isNaN(n)||n<1)return U(`bash: continue: ${e[0]}: numeric argument required
661
- `);r=n}throw new Re(r)}function Pt(t,e){t.state.readonlyVars=t.state.readonlyVars||new Set,t.state.readonlyVars.add(e)}function Uy(t,e){return t.state.readonlyVars?.has(e)??!1}function ut(t,e,r="bash"){return Uy(t,e)?U(`${r}: ${e}: readonly variable
662
- `):null}function vf(t){let e=t.match(/^([a-zA-Z_][a-zA-Z0-9_]*)=\((.*)\)$/s);if(e)return{name:e[1],isArray:!0,arrayElements:ci(e[2])};if(t.includes("=")){let r=t.indexOf("=");return{name:t.slice(0,r),isArray:!1,value:t.slice(r+1)}}return{name:t,isArray:!1}}function $f(t,e,r={}){let{name:n,isArray:s,arrayElements:i,value:o}=e,{makeReadonly:a=!1,checkReadonly:l=!0}=r;if(l){let c=ut(t,n);if(c)return c}if(s&&i){for(let c=0;c<i.length;c++)t.state.env[`${n}_${c}`]=i[c];t.state.env[`${n}__length`]=String(i.length)}else o!==void 0&&(t.state.env[n]=o);return a&&Pt(t,n),null}function ui(t,e){let r=!1,n=!1,s=!1,i=!1,o=!1,a=[];for(let l=0;l<e.length;l++){let c=e[l];if(c==="-a")r=!0;else if(c==="-A")n=!0;else if(c==="-r")s=!0;else if(c==="-x")i=!0;else if(c==="-p")o=!0;else if(c==="--"){a.push(...e.slice(l+1));break}else if(c.startsWith("-"))for(let u of c.slice(1))u==="a"?r=!0:u==="A"?n=!0:u==="r"?s=!0:u==="x"?i=!0:u==="p"&&(o=!0);else a.push(c)}if(o&&a.length>0){let l="";for(let c of a){let u=t.state.env[c];if(u!==void 0){let f=u.replace(/\\/g,"\\\\").replace(/"/g,'\\"');l+=`declare -- ${c}="${f}"
663
- `}}return Be(l)}if(a.length===0&&!o){let l="",c=Object.entries(t.state.env).filter(([u])=>!u.startsWith("BASH_")).sort(([u],[f])=>u.localeCompare(f));for(let[u,f]of c){let p=f.replace(/'/g,"'\\''");l+=`declare -- ${u}='${p}'
664
- `}return Be(l)}for(let l of a){let c=l.match(/^([a-zA-Z_][a-zA-Z0-9_]*)=\((.*)\)$/s);if(c){let u=c[1],f=c[2];if(n&&(t.state.associativeArrays??=new Set,t.state.associativeArrays.add(u)),n&&f.includes("[")){let p=jy(f);for(let[d,h]of p)t.state.env[`${u}_${d}`]=h}else{let p=ci(f);for(let d=0;d<p.length;d++)t.state.env[`${u}_${d}`]=p[d];t.state.env[`${u}__length`]=String(p.length)}s&&Pt(t,u);continue}if(l.includes("=")){let u=l.indexOf("="),f=l.slice(0,u),p=l.slice(u+1),d=ut(t,f);if(d)return d;t.state.env[f]=p,s&&Pt(t,f)}else{let u=l;n&&(t.state.associativeArrays??=new Set,t.state.associativeArrays.add(u));let f=Object.keys(t.state.env).some(p=>p.startsWith(`${u}_`)&&!p.startsWith(`${u}__length`));!(u in t.state.env)&&!f&&(r||n?t.state.env[`${u}__length`]="0":t.state.env[u]=""),s&&Pt(t,u)}}return Q}function ci(t){let e=[],r="",n=!1,s=!1,i=!1;for(let o of t){if(i){r+=o,i=!1;continue}if(o==="\\"){i=!0;continue}if(o==="'"&&!s){n=!n;continue}if(o==='"'&&!n){s=!s;continue}if((o===" "||o===" "||o===`
665
- `)&&!n&&!s){r&&(e.push(r),r="");continue}r+=o}return r&&e.push(r),e}function jy(t){let e=[],r=0;for(;r<t.length;){for(;r<t.length&&/\s/.test(t[r]);)r++;if(r>=t.length)break;if(t[r]!=="["){r++;continue}r++;let n="";if(t[r]==="'"||t[r]==='"'){let i=t[r];for(r++;r<t.length&&t[r]!==i;)n+=t[r],r++;t[r]===i&&r++}else for(;r<t.length&&t[r]!=="]"&&t[r]!=="=";)n+=t[r],r++;for(;r<t.length&&t[r]!=="]";)r++;if(t[r]==="]"&&r++,t[r]!=="=")continue;r++;let s="";if(t[r]==="'"||t[r]==='"'){let i=t[r];for(r++;r<t.length&&t[r]!==i;)t[r]==="\\"&&r+1<t.length&&r++,s+=t[r],r++;t[r]===i&&r++}else for(;r<t.length&&!/\s/.test(t[r]);)s+=t[r],r++;e.push([n,s])}return e}function fi(t,e){let r=!1,n=!1,s=[];for(let i=0;i<e.length;i++){let o=e[i];if(o==="-a")r=!0;else if(o==="-A")n=!0;else if(o==="-p"){if(e.length===1){let a="";for(let l of t.state.readonlyVars||[]){let c=t.state.env[l];c!==void 0&&(a+=`declare -r ${l}="${c}"
666
- `)}return Be(a)}}else if(o==="--"){s.push(...e.slice(i+1));break}else o.startsWith("-")||s.push(o)}for(let i of s){let o=vf(i);if(o.value===void 0&&!o.isArray){Pt(t,o.name);continue}let a=$f(t,o,{makeReadonly:!0});if(a)return a}return Q}oe();async function pi(t,e){let r=e;if(r.length>0){let s=r[0];if(s==="--")r=r.slice(1);else if(s.startsWith("-")&&s!=="-"&&s.length>1)return U(`bash: eval: ${s}: invalid option
659
+ `)}}let u=c||"/";return t.state.previousDir=t.state.cwd,t.state.cwd=u,t.state.env.PWD=t.state.cwd,t.state.env.OLDPWD=t.state.previousDir,Ve(n?`${u}
660
+ `:"")}ie();function Ii(t,e){if(t.state.loopDepth===0){if(t.state.parentHasLoopContext)throw new it;return Z}if(e.length>1)throw new $e(1);let r=1;if(e.length>0){let n=Number.parseInt(e[0],10);if(Number.isNaN(n)||n<1)return U(`bash: continue: ${e[0]}: numeric argument required
661
+ `);r=n}throw new Me(r)}function zt(t,e){t.state.readonlyVars=t.state.readonlyVars||new Set,t.state.readonlyVars.add(e)}function hx(t,e){return t.state.readonlyVars?.has(e)??!1}function Et(t,e,r="bash"){return hx(t,e)?U(`${r}: ${e}: readonly variable
662
+ `):null}function Qf(t){let e=t.match(/^([a-zA-Z_][a-zA-Z0-9_]*)=\((.*)\)$/s);if(e)return{name:e[1],isArray:!0,arrayElements:vi(e[2])};if(t.includes("=")){let r=t.indexOf("=");return{name:t.slice(0,r),isArray:!1,value:t.slice(r+1)}}return{name:t,isArray:!1}}function Xf(t,e,r={}){let{name:n,isArray:s,arrayElements:i,value:o}=e,{makeReadonly:a=!1,checkReadonly:l=!0}=r;if(l){let c=Et(t,n);if(c)return c}if(s&&i){for(let c=0;c<i.length;c++)t.state.env[`${n}_${c}`]=i[c];t.state.env[`${n}__length`]=String(i.length)}else o!==void 0&&(t.state.env[n]=o);return a&&zt(t,n),null}function $i(t,e){let r=!1,n=!1,s=!1,i=!1,o=!1,a=[];for(let l=0;l<e.length;l++){let c=e[l];if(c==="-a")r=!0;else if(c==="-A")n=!0;else if(c==="-r")s=!0;else if(c==="-x")i=!0;else if(c==="-p")o=!0;else if(c==="--"){a.push(...e.slice(l+1));break}else if(c.startsWith("-"))for(let u of c.slice(1))u==="a"?r=!0:u==="A"?n=!0:u==="r"?s=!0:u==="x"?i=!0:u==="p"&&(o=!0);else a.push(c)}if(o&&a.length>0){let l="";for(let c of a){let u=t.state.env[c];if(u!==void 0){let f=u.replace(/\\/g,"\\\\").replace(/"/g,'\\"');l+=`declare -- ${c}="${f}"
663
+ `}}return Ve(l)}if(a.length===0&&!o){let l="",c=Object.entries(t.state.env).filter(([u])=>!u.startsWith("BASH_")).sort(([u],[f])=>u.localeCompare(f));for(let[u,f]of c){let d=f.replace(/'/g,"'\\''");l+=`declare -- ${u}='${d}'
664
+ `}return Ve(l)}for(let l of a){let c=l.match(/^([a-zA-Z_][a-zA-Z0-9_]*)=\((.*)\)$/s);if(c){let u=c[1],f=c[2];if(n&&(t.state.associativeArrays??=new Set,t.state.associativeArrays.add(u)),n&&f.includes("[")){let d=mx(f);for(let[p,h]of d)t.state.env[`${u}_${p}`]=h}else{let d=vi(f);for(let p=0;p<d.length;p++)t.state.env[`${u}_${p}`]=d[p];t.state.env[`${u}__length`]=String(d.length)}s&&zt(t,u);continue}if(l.includes("=")){let u=l.indexOf("="),f=l.slice(0,u),d=l.slice(u+1),p=Et(t,f);if(p)return p;t.state.env[f]=d,s&&zt(t,f)}else{let u=l;n&&(t.state.associativeArrays??=new Set,t.state.associativeArrays.add(u));let f=Object.keys(t.state.env).some(d=>d.startsWith(`${u}_`)&&!d.startsWith(`${u}__length`));!(u in t.state.env)&&!f&&(r||n?t.state.env[`${u}__length`]="0":t.state.env[u]=""),s&&zt(t,u)}}return Z}function vi(t){let e=[],r="",n=!1,s=!1,i=!1;for(let o of t){if(i){r+=o,i=!1;continue}if(o==="\\"){i=!0;continue}if(o==="'"&&!s){n=!n;continue}if(o==='"'&&!n){s=!s;continue}if((o===" "||o===" "||o===`
665
+ `)&&!n&&!s){r&&(e.push(r),r="");continue}r+=o}return r&&e.push(r),e}function mx(t){let e=[],r=0;for(;r<t.length;){for(;r<t.length&&/\s/.test(t[r]);)r++;if(r>=t.length)break;if(t[r]!=="["){r++;continue}r++;let n="";if(t[r]==="'"||t[r]==='"'){let i=t[r];for(r++;r<t.length&&t[r]!==i;)n+=t[r],r++;t[r]===i&&r++}else for(;r<t.length&&t[r]!=="]"&&t[r]!=="=";)n+=t[r],r++;for(;r<t.length&&t[r]!=="]";)r++;if(t[r]==="]"&&r++,t[r]!=="=")continue;r++;let s="";if(t[r]==="'"||t[r]==='"'){let i=t[r];for(r++;r<t.length&&t[r]!==i;)t[r]==="\\"&&r+1<t.length&&r++,s+=t[r],r++;t[r]===i&&r++}else for(;r<t.length&&!/\s/.test(t[r]);)s+=t[r],r++;e.push([n,s])}return e}function Ri(t,e){let r=!1,n=!1,s=[];for(let i=0;i<e.length;i++){let o=e[i];if(o==="-a")r=!0;else if(o==="-A")n=!0;else if(o==="-p"){if(e.length===1){let a="";for(let l of t.state.readonlyVars||[]){let c=t.state.env[l];c!==void 0&&(a+=`declare -r ${l}="${c}"
666
+ `)}return Ve(a)}}else if(o==="--"){s.push(...e.slice(i+1));break}else o.startsWith("-")||s.push(o)}for(let i of s){let o=Qf(i);if(o.value===void 0&&!o.isArray){zt(t,o.name);continue}let a=Xf(t,o,{makeReadonly:!0});if(a)return a}return Z}ie();async function Pi(t,e){let r=e;if(r.length>0){let s=r[0];if(s==="--")r=r.slice(1);else if(s.startsWith("-")&&s!=="-"&&s.length>1)return U(`bash: eval: ${s}: invalid option
667
667
  eval: usage: eval [arg ...]
668
- `,2)}if(r.length===0)return Q;let n=r.join(" ");if(n.trim()==="")return Q;try{let s=lt(n);return t.executeScript(s)}catch(s){if(s instanceof Ae||s instanceof Re||s instanceof ke||s instanceof ie)throw s;if(s.name==="ParseException")return U(`bash: eval: ${s.message}
669
- `);throw s}}oe();function di(t,e){let r,n="";if(e.length===0)r=t.state.lastExitCode;else{let s=e[0],i=Number.parseInt(s,10);s===""||Number.isNaN(i)||!/^-?\d+$/.test(s)?(n=`bash: exit: ${s}: numeric argument required
670
- `,r=2):r=(i%256+256)%256}throw new ie(r,"",n)}function hi(t,e){let r=!1,n=[];for(let o of e)o==="-n"?r=!0:o==="-p"||o==="--"||n.push(o);if(n.length===0&&!r){let o="",a=Object.entries(t.state.env).filter(([l])=>!l.startsWith("BASH_ALIAS_")).sort(([l],[c])=>l.localeCompare(c));for(let[l,c]of a){let u=c.replace(/'/g,"'\\''");o+=`declare -x ${l}='${u}'
671
- `}return Be(o)}if(r){for(let o of n){let a=o.split("=")[0];delete t.state.env[a]}return Q}let s="",i=0;for(let o of n){let a,l;if(o.includes("=")){let c=o.indexOf("=");a=o.slice(0,c),l=o.slice(c+1)}else a=o;if(!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(a)){s+=`bash: export: \`${o}': not a valid identifier
672
- `,i=1;continue}l!==void 0?t.state.env[a]=l:a in t.state.env||(t.state.env[a]="")}return _("",s,i)}function zy(t){let e=[],r="",n=0;for(let s of t){for(let i of s)i==="("?n++:i===")"&&n--;r?r+=` ${s}`:r=s,n===0&&(e.push(r),r="")}return r&&e.push(r),e}async function mi(t,e){if(e.length===0)return U(`bash: let: expression expected
673
- `);let r=zy(e),n=0;for(let s of r)try{let o=lt(`(( ${s} ))`).statements[0];if(o&&o.pipelines.length>0&&o.pipelines[0].commands.length>0){let a=o.pipelines[0].commands[0];a.type==="ArithmeticCommand"&&(n=await te(t,a.expression.expression))}}catch(i){return U(`bash: let: ${s}: ${i.message}
674
- `)}return _("","",n===0?1:0)}function Hy(t,e){let r=t.state.env.HOME||"/home/user";return e.split(":").map(i=>i==="~"?r:i==="~root"?"/root":i.startsWith("~/")?r+i.slice(1):i.startsWith("~root/")?`/root${i.slice(5)}`:i).join(":")}function gi(t,e){if(t.state.localScopes.length===0)return U(`bash: local: can only be used in a function
675
- `);let r=t.state.localScopes[t.state.localScopes.length-1],n="",s=0;for(let i of e){let o,a;if(i.includes("=")){let l=i.indexOf("=");o=i.slice(0,l),a=Hy(t,i.slice(l+1))}else o=i;if(!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(o)){n+=`bash: local: \`${i}': not a valid identifier
676
- `,s=1;continue}r.has(o)||r.set(o,t.state.env[o]),a!==void 0&&(t.state.env[o]=a)}return _("",n,s)}function yi(t,e,r){let n=`
668
+ `,2)}if(r.length===0)return Z;let n=r.join(" ");if(n.trim()==="")return Z;try{let s=xt(n);return t.executeScript(s)}catch(s){if(s instanceof $e||s instanceof Me||s instanceof Re||s instanceof se)throw s;if(s.name==="ParseException")return U(`bash: eval: ${s.message}
669
+ `);throw s}}ie();function Fi(t,e){let r,n="";if(e.length===0)r=t.state.lastExitCode;else{let s=e[0],i=Number.parseInt(s,10);s===""||Number.isNaN(i)||!/^-?\d+$/.test(s)?(n=`bash: exit: ${s}: numeric argument required
670
+ `,r=2):r=(i%256+256)%256}throw new se(r,"",n)}function Ti(t,e){let r=!1,n=[];for(let o of e)o==="-n"?r=!0:o==="-p"||o==="--"||n.push(o);if(n.length===0&&!r){let o="",a=Object.entries(t.state.env).filter(([l])=>!l.startsWith("BASH_ALIAS_")).sort(([l],[c])=>l.localeCompare(c));for(let[l,c]of a){let u=c.replace(/'/g,"'\\''");o+=`declare -x ${l}='${u}'
671
+ `}return Ve(o)}if(r){for(let o of n){let a=o.split("=")[0];delete t.state.env[a]}return Z}let s="",i=0;for(let o of n){let a,l;if(o.includes("=")){let c=o.indexOf("=");a=o.slice(0,c),l=o.slice(c+1)}else a=o;if(!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(a)){s+=`bash: export: \`${o}': not a valid identifier
672
+ `,i=1;continue}l!==void 0?t.state.env[a]=l:a in t.state.env||(t.state.env[a]="")}return M("",s,i)}function gx(t){let e=[],r="",n=0;for(let s of t){for(let i of s)i==="("?n++:i===")"&&n--;r?r+=` ${s}`:r=s,n===0&&(e.push(r),r="")}return r&&e.push(r),e}async function Oi(t,e){if(e.length===0)return U(`bash: let: expression expected
673
+ `);let r=gx(e),n=0;for(let s of r)try{let o=xt(`(( ${s} ))`).statements[0];if(o&&o.pipelines.length>0&&o.pipelines[0].commands.length>0){let a=o.pipelines[0].commands[0];a.type==="ArithmeticCommand"&&(n=await J(t,a.expression.expression))}}catch(i){return U(`bash: let: ${s}: ${i.message}
674
+ `)}return M("","",n===0?1:0)}function yx(t,e){let r=t.state.env.HOME||"/home/user";return e.split(":").map(i=>i==="~"?r:i==="~root"?"/root":i.startsWith("~/")?r+i.slice(1):i.startsWith("~root/")?`/root${i.slice(5)}`:i).join(":")}function Di(t,e){if(t.state.localScopes.length===0)return U(`bash: local: can only be used in a function
675
+ `);let r=t.state.localScopes[t.state.localScopes.length-1],n="",s=0;for(let i of e){let o,a;if(i.includes("=")){let l=i.indexOf("=");o=i.slice(0,l),a=yx(t,i.slice(l+1))}else o=i;if(!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(o)){n+=`bash: local: \`${i}': not a valid identifier
676
+ `,s=1;continue}r.has(o)||r.set(o,t.state.env[o]),a!==void 0&&(t.state.env[o]=a)}return M("",n,s)}function Li(t,e,r){let n=`
677
677
  `,s=0,i=0,o=0,a=!1,l="MAPFILE",c=0;for(;c<e.length;){let m=e[c];m==="-d"&&c+1<e.length?(n=e[c+1]||`
678
- `,c+=2):m==="-n"&&c+1<e.length?(s=Number.parseInt(e[c+1],10)||0,c+=2):m==="-O"&&c+1<e.length?(i=Number.parseInt(e[c+1],10)||0,c+=2):m==="-s"&&c+1<e.length?(o=Number.parseInt(e[c+1],10)||0,c+=2):m==="-t"?(a=!0,c++):m==="-u"||m==="-C"||m==="-c"?c+=2:(m.startsWith("-")||(l=m),c++)}let u=r;!u&&t.state.groupStdin!==void 0&&(u=t.state.groupStdin);let f=[],p=u,d=0,h=0;for(;p.length>0;){let m=p.indexOf(n);if(m===-1){p.length>0&&(h<o?h++:(s===0||d<s)&&(f.push(p),d++));break}let g=p.substring(0,m);if(a||(g+=n),p=p.substring(m+n.length),h<o){h++;continue}if(s>0&&d>=s)break;f.push(g),d++}wr(t,l);for(let m=0;m<f.length;m++)t.state.env[`${l}_${i+m}`]=f[m];return f.length>0&&(t.state.env[`${l}__length`]=String(i+f.length)),t.state.groupStdin!==void 0&&!r&&(t.state.groupStdin=""),_("","",0)}function xi(t,e,r){let n=!1,s=`
679
- `,i="",o=-1,a=null,l=[],c=0,u=!1;for(;c<e.length;){let E=e[c];E==="-r"?n=!0:E==="-d"&&c+1<e.length?(s=e[c+1],c++):E==="-p"&&c+1<e.length?(i=e[c+1],c++):E==="-n"&&c+1<e.length?(o=Number.parseInt(e[c+1],10),(Number.isNaN(o)||o<0)&&(u=!0,o=0),c++):E==="-a"&&c+1<e.length?(a=e[c+1],c++):E==="-t"?c+1<e.length&&!e[c+1].startsWith("-")&&c++:E==="-s"||E.startsWith("-")||l.push(E),c++}if(u)return _("","",1);l.length===0&&a===null&&l.push("REPLY");let f=r;!f&&t.state.groupStdin!==void 0&&(f=t.state.groupStdin);let p="",d=0,h=!0;if(o>=0){for(let E=0;E<f.length&&E<o;E++){let b=f[E];if(b===s){d=E+1;break}p+=b,d=E+1}t.state.groupStdin!==void 0&&!r&&(t.state.groupStdin=f.substring(d))}else{let E=f;for(d=0;;){let b=E.indexOf(s);if(b!==-1){let S=E.substring(0,b);if(d+=b+s.length,E=E.substring(b+s.length),!n&&S.endsWith("\\")){p+=S.slice(0,-1);continue}p+=S,h=!0;break}else if(E.length>0){p+=E,d+=E.length,h=!1,E="";break}else{if(p.length===0){for(let S of l)t.state.env[S]="";return a&&wr(t,a),_("","",1)}h=!1;break}}t.state.groupStdin!==void 0&&!r&&(t.state.groupStdin=f.substring(d))}if(s===`
680
- `&&p.endsWith(`
681
- `)&&(p=p.slice(0,-1)),n||(p=p.replace(/\\(.)/g,"$1")),l.length===1&&l[0]==="REPLY")return t.state.env.REPLY=p,_("","",h?0:1);let m=gn(t.state.env),{words:g,wordStarts:w}=ff(p,m);if(a){wr(t,a);for(let E=0;E<g.length;E++)t.state.env[`${a}_${E}`]=g[E];return _("","",h?0:1)}for(let E=0;E<l.length;E++){let b=l[E];if(E<l.length-1)t.state.env[b]=g[E]??"";else if(E<w.length){let S=pf(p.substring(w[E]),m);t.state.env[b]=S}else t.state.env[b]=""}return _("","",h?0:1)}oe();function wi(t,e){if(t.state.callDepth===0&&t.state.sourceDepth===0)return U("bash: return: can only `return' from a function or sourced script\n");let r=t.state.lastExitCode;if(e.length>0){let n=e[0],s=Number.parseInt(n,10);if(n===""||Number.isNaN(s)||!/^-?\d+$/.test(n))return U(`bash: return: ${n}: numeric argument required
682
- `,2);r=(s%256+256)%256}throw new ke(r)}function Gy(t){return/^[a-zA-Z0-9_/.:-]*$/.test(t)?t:`'${t.replace(/'/g,"'\\''")}'`}var En=`set: usage: set [-eux] [+eux] [-o option] [+o option]
678
+ `,c+=2):m==="-n"&&c+1<e.length?(s=Number.parseInt(e[c+1],10)||0,c+=2):m==="-O"&&c+1<e.length?(i=Number.parseInt(e[c+1],10)||0,c+=2):m==="-s"&&c+1<e.length?(o=Number.parseInt(e[c+1],10)||0,c+=2):m==="-t"?(a=!0,c++):m==="-u"||m==="-C"||m==="-c"?c+=2:(m.startsWith("-")||(l=m),c++)}let u=r;!u&&t.state.groupStdin!==void 0&&(u=t.state.groupStdin);let f=[],d=u,p=0,h=0;for(;d.length>0;){let m=d.indexOf(n);if(m===-1){d.length>0&&(h<o?h++:(s===0||p<s)&&(f.push(d),p++));break}let g=d.substring(0,m);if(a||(g+=n),d=d.substring(m+n.length),h<o){h++;continue}if(s>0&&p>=s)break;f.push(g),p++}Dr(t,l);for(let m=0;m<f.length;m++)t.state.env[`${l}_${i+m}`]=f[m];return f.length>0&&(t.state.env[`${l}__length`]=String(i+f.length)),t.state.groupStdin!==void 0&&!r&&(t.state.groupStdin=""),M("","",0)}function Mi(t,e,r){let n=!1,s=`
679
+ `,i="",o=-1,a=null,l=[],c=0,u=!1;for(;c<e.length;){let E=e[c];E==="-r"?n=!0:E==="-d"&&c+1<e.length?(s=e[c+1],c++):E==="-p"&&c+1<e.length?(i=e[c+1],c++):E==="-n"&&c+1<e.length?(o=Number.parseInt(e[c+1],10),(Number.isNaN(o)||o<0)&&(u=!0,o=0),c++):E==="-a"&&c+1<e.length?(a=e[c+1],c++):E==="-t"?c+1<e.length&&!e[c+1].startsWith("-")&&c++:E==="-s"||E.startsWith("-")||l.push(E),c++}if(u)return M("","",1);l.length===0&&a===null&&l.push("REPLY");let f=r;!f&&t.state.groupStdin!==void 0&&(f=t.state.groupStdin);let d="",p=0,h=!0;if(o>=0){for(let E=0;E<f.length&&E<o;E++){let b=f[E];if(b===s){p=E+1;break}d+=b,p=E+1}t.state.groupStdin!==void 0&&!r&&(t.state.groupStdin=f.substring(p))}else{let E=f;for(p=0;;){let b=E.indexOf(s);if(b!==-1){let S=E.substring(0,b);if(p+=b+s.length,E=E.substring(b+s.length),!n&&S.endsWith("\\")){d+=S.slice(0,-1);continue}d+=S,h=!0;break}else if(E.length>0){d+=E,p+=E.length,h=!1,E="";break}else{if(d.length===0){for(let S of l)t.state.env[S]="";return a&&Dr(t,a),M("","",1)}h=!1;break}}t.state.groupStdin!==void 0&&!r&&(t.state.groupStdin=f.substring(p))}if(s===`
680
+ `&&d.endsWith(`
681
+ `)&&(d=d.slice(0,-1)),n||(d=d.replace(/\\(.)/g,"$1")),l.length===1&&l[0]==="REPLY")return t.state.env.REPLY=d,M("","",h?0:1);let m=Tn(t.state.env),{words:g,wordStarts:w}=Tf(d,m);if(a){Dr(t,a);for(let E=0;E<g.length;E++)t.state.env[`${a}_${E}`]=g[E];return M("","",h?0:1)}for(let E=0;E<l.length;E++){let b=l[E];if(E<l.length-1)t.state.env[b]=g[E]??"";else if(E<w.length){let S=Of(d.substring(w[E]),m);t.state.env[b]=S}else t.state.env[b]=""}return M("","",h?0:1)}ie();function _i(t,e){if(t.state.callDepth===0&&t.state.sourceDepth===0)return U("bash: return: can only `return' from a function or sourced script\n");let r=t.state.lastExitCode;if(e.length>0){let n=e[0],s=Number.parseInt(n,10);if(n===""||Number.isNaN(s)||!/^-?\d+$/.test(n))return U(`bash: return: ${n}: numeric argument required
682
+ `,2);r=(s%256+256)%256}throw new Re(r)}function xx(t){return/^[a-zA-Z0-9_/.:-]*$/.test(t)?t:`'${t.replace(/'/g,"'\\''")}'`}var Mn=`set: usage: set [-eux] [+eux] [-o option] [+o option]
683
683
  Options:
684
684
  -e Exit immediately if a command exits with non-zero status
685
685
  +e Disable -e
@@ -695,68 +695,68 @@ Options:
695
695
  +o pipefail Disable pipefail
696
696
  -o xtrace Same as -x
697
697
  +o xtrace Disable xtrace
698
- `,Rf={e:"errexit",u:"nounset",x:"xtrace",v:"verbose",f:null,h:null,C:null,n:null,a:null,b:null,m:null,B:null,H:null,P:null,T:null,E:null,p:null},Pf={errexit:"errexit",pipefail:"pipefail",nounset:"nounset",xtrace:"xtrace",verbose:"verbose",noclobber:null,noglob:null,noexec:null,allexport:null,notify:null,monitor:null,braceexpand:null,histexpand:null,physical:null,functrace:null,errtrace:null,privileged:null,hashall:null,posix:null,vi:null,emacs:null,ignoreeof:null,"interactive-comments":null,keyword:null,onecmd:null},Ff=["errexit","nounset","pipefail","verbose","xtrace"],Of=["allexport","braceexpand","emacs","errtrace","functrace","hashall","histexpand","history","ignoreeof","interactive-comments","keyword","monitor","noclobber","noexec","noglob","nolog","notify","onecmd","physical","posix","privileged","vi"];function Tf(t,e,r){e!==null&&(t.state.options[e]=r)}function qy(t,e){return e+1<t.length&&!t[e+1].startsWith("-")&&!t[e+1].startsWith("+")}function bi(t,e){if(e.includes("--help"))return Be(En);if(e.length===0){let n=Object.entries(t.state.env).filter(([s])=>/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(s)).sort(([s],[i])=>s.localeCompare(i)).map(([s,i])=>`${s}=${Gy(i)}`).join(`
699
- `);return Be(n?`${n}
700
- `:"")}let r=0;for(;r<e.length;){let n=e[r];if((n==="-o"||n==="+o")&&qy(e,r)){let s=e[r+1];if(!(s in Pf))return U(`bash: set: ${s}: invalid option name
701
- ${En}`);Tf(t,Pf[s],n==="-o"),r+=2;continue}if(n==="-o"){let s=Ff.map(a=>`${a.padEnd(16)}${t.state.options[a]?"on":"off"}`),i=Of.map(a=>`${a.padEnd(16)}off`),o=[...s,...i].sort();return Be(`${o.join(`
698
+ `,Jf={e:"errexit",u:"nounset",x:"xtrace",v:"verbose",f:null,h:null,C:null,n:null,a:null,b:null,m:null,B:null,H:null,P:null,T:null,E:null,p:null},Yf={errexit:"errexit",pipefail:"pipefail",nounset:"nounset",xtrace:"xtrace",verbose:"verbose",noclobber:null,noglob:null,noexec:null,allexport:null,notify:null,monitor:null,braceexpand:null,histexpand:null,physical:null,functrace:null,errtrace:null,privileged:null,hashall:null,posix:null,vi:null,emacs:null,ignoreeof:null,"interactive-comments":null,keyword:null,onecmd:null},ed=["errexit","nounset","pipefail","verbose","xtrace"],td=["allexport","braceexpand","emacs","errtrace","functrace","hashall","histexpand","history","ignoreeof","interactive-comments","keyword","monitor","noclobber","noexec","noglob","nolog","notify","onecmd","physical","posix","privileged","vi"];function rd(t,e,r){e!==null&&(t.state.options[e]=r)}function wx(t,e){return e+1<t.length&&!t[e+1].startsWith("-")&&!t[e+1].startsWith("+")}function Wi(t,e){if(e.includes("--help"))return Ve(Mn);if(e.length===0){let n=Object.entries(t.state.env).filter(([s])=>/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(s)).sort(([s],[i])=>s.localeCompare(i)).map(([s,i])=>`${s}=${xx(i)}`).join(`
699
+ `);return Ve(n?`${n}
700
+ `:"")}let r=0;for(;r<e.length;){let n=e[r];if((n==="-o"||n==="+o")&&wx(e,r)){let s=e[r+1];if(!(s in Yf))return U(`bash: set: ${s}: invalid option name
701
+ ${Mn}`);rd(t,Yf[s],n==="-o"),r+=2;continue}if(n==="-o"){let s=ed.map(a=>`${a.padEnd(16)}${t.state.options[a]?"on":"off"}`),i=td.map(a=>`${a.padEnd(16)}off`),o=[...s,...i].sort();return Ve(`${o.join(`
702
702
  `)}
703
- `)}if(n==="+o"){let s=Ff.map(a=>`set ${t.state.options[a]?"-o":"+o"} ${a}`),i=Of.map(a=>`set +o ${a}`),o=[...s,...i].sort();return Be(`${o.join(`
703
+ `)}if(n==="+o"){let s=ed.map(a=>`set ${t.state.options[a]?"-o":"+o"} ${a}`),i=td.map(a=>`set +o ${a}`),o=[...s,...i].sort();return Ve(`${o.join(`
704
704
  `)}
705
- `)}if(n.length>1&&(n[0]==="-"||n[0]==="+")&&n[1]!=="-"){let s=n[0]==="-";for(let i=1;i<n.length;i++){let o=n[i];if(!(o in Rf))return U(`bash: set: ${n[0]}${o}: invalid option
706
- ${En}`);Tf(t,Rf[o],s)}r++;continue}if(n==="--")return Ei(t,e.slice(r+1)),Q;if(n==="-"){if(t.state.options.xtrace=!1,t.state.options.verbose=!1,r+1<e.length)return Ei(t,e.slice(r+1)),Q;r++;continue}if(n==="+"){r++;continue}return n.startsWith("-")||n.startsWith("+")?U(`bash: set: ${n}: invalid option
707
- ${En}`):(Ei(t,e.slice(r)),Q)}return Q}function Ei(t,e){let r=1;for(;t.state.env[String(r)]!==void 0;)delete t.state.env[String(r)],r++;for(let n=0;n<e.length;n++)t.state.env[String(n+1)]=e[n];t.state.env["#"]=String(e.length),t.state.env["@"]=e.join(" "),t.state.env["*"]=e.join(" ")}function Si(t,e){let r=1;if(e.length>0){let o=Number.parseInt(e[0],10);if(Number.isNaN(o)||o<0)return U(`bash: shift: ${e[0]}: numeric argument required
705
+ `)}if(n.length>1&&(n[0]==="-"||n[0]==="+")&&n[1]!=="-"){let s=n[0]==="-";for(let i=1;i<n.length;i++){let o=n[i];if(!(o in Jf))return U(`bash: set: ${n[0]}${o}: invalid option
706
+ ${Mn}`);rd(t,Jf[o],s)}r++;continue}if(n==="--")return Bi(t,e.slice(r+1)),Z;if(n==="-"){if(t.state.options.xtrace=!1,t.state.options.verbose=!1,r+1<e.length)return Bi(t,e.slice(r+1)),Z;r++;continue}if(n==="+"){r++;continue}return n.startsWith("-")||n.startsWith("+")?U(`bash: set: ${n}: invalid option
707
+ ${Mn}`):(Bi(t,e.slice(r)),Z)}return Z}function Bi(t,e){let r=1;for(;t.state.env[String(r)]!==void 0;)delete t.state.env[String(r)],r++;for(let n=0;n<e.length;n++)t.state.env[String(n+1)]=e[n];t.state.env["#"]=String(e.length),t.state.env["@"]=e.join(" "),t.state.env["*"]=e.join(" ")}function Ui(t,e){let r=1;if(e.length>0){let o=Number.parseInt(e[0],10);if(Number.isNaN(o)||o<0)return U(`bash: shift: ${e[0]}: numeric argument required
708
708
  `);r=o}let n=Number.parseInt(t.state.env["#"]||"0",10);if(r>n)return U(`bash: shift: shift count out of range
709
- `);if(r===0)return Q;let s=[];for(let o=1;o<=n;o++)s.push(t.state.env[String(o)]||"");let i=s.slice(r);for(let o=1;o<=n;o++)delete t.state.env[String(o)];for(let o=0;o<i.length;o++)t.state.env[String(o+1)]=i[o];return t.state.env["#"]=String(i.length),t.state.env["@"]=i.join(" "),Q}oe();async function Ci(t,e){let r=e;if(r.length>0&&r[0]==="--"&&(r=r.slice(1)),r.length===0)return _("",`bash: source: filename argument required
709
+ `);if(r===0)return Z;let s=[];for(let o=1;o<=n;o++)s.push(t.state.env[String(o)]||"");let i=s.slice(r);for(let o=1;o<=n;o++)delete t.state.env[String(o)];for(let o=0;o<i.length;o++)t.state.env[String(o+1)]=i[o];return t.state.env["#"]=String(i.length),t.state.env["@"]=i.join(" "),Z}ie();async function zi(t,e){let r=e;if(r.length>0&&r[0]==="--"&&(r=r.slice(1)),r.length===0)return M("",`bash: source: filename argument required
710
710
  `,2);let n=r[0],s=null,i=null;if(n.includes("/")){let l=t.fs.resolvePath(t.state.cwd,n);try{i=await t.fs.readFile(l),s=l}catch{}}else{let c=(t.state.env.PATH||"").split(":").filter(u=>u);for(let u of c){let f=t.fs.resolvePath(t.state.cwd,`${u}/${n}`);try{if((await t.fs.stat(f)).isDirectory)continue;i=await t.fs.readFile(f),s=f;break}catch{}}if(i===null){let u=t.fs.resolvePath(t.state.cwd,n);try{i=await t.fs.readFile(u),s=u}catch{}}}if(i===null)return U(`bash: ${n}: No such file or directory
711
- `);let o={};if(r.length>1){for(let c=1;c<=9;c++)o[String(c)]=t.state.env[String(c)];o["#"]=t.state.env["#"],o["@"]=t.state.env["@"];let l=r.slice(1);t.state.env["#"]=String(l.length),t.state.env["@"]=l.join(" ");for(let c=0;c<l.length&&c<9;c++)t.state.env[String(c+1)]=l[c];for(let c=l.length+1;c<=9;c++)delete t.state.env[String(c)]}let a=()=>{if(t.state.sourceDepth--,r.length>1)for(let[l,c]of Object.entries(o))c===void 0?delete t.state.env[l]:t.state.env[l]=c};t.state.sourceDepth++;try{let l=lt(i),c=await t.executeScript(l);return a(),c}catch(l){if(a(),l instanceof ie)throw l;if(l instanceof ke)return _(l.stdout,l.stderr,l.exitCode);if(l.name==="ParseException")return U(`bash: ${n}: ${l.message}
712
- `);throw l}}function Ai(t,e){let r="variable",n="",s=0;for(let i of e){if(i==="-v"){r="variable";continue}if(i==="-f"){r="function";continue}if(r==="function"){t.state.functions.delete(i);continue}let o=i.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[(.+)\]$/);if(o){let a=o[1],l=o[2];if(l==="@"||l==="*"){let u=be(t,a);for(let[f]of u)delete t.state.env[`${a}_${f}`];delete t.state.env[a];continue}let c;if(/^-?\d+$/.test(l))c=Number.parseInt(l,10);else{let u=t.state.env[l];c=u?Number.parseInt(u,10):0,Number.isNaN(c)&&(c=0)}if(c<0){let u=be(t,a),f=u.length;if(f===0){n+=`bash: unset: [${c}]: bad array subscript
713
- `,s=1;continue}let p=f+c;if(p<0){n+=`bash: unset: [${c}]: bad array subscript
714
- `,s=1;continue}let d=u[p][0];delete t.state.env[`${a}_${d}`];continue}delete t.state.env[`${a}_${c}`];continue}delete t.state.env[i],t.state.functions.delete(i)}return _("",n,s)}function ki(t,e){return t.fs.resolvePath(t.state.cwd,e)}var Vy=["-e","-a","-f","-d","-r","-w","-x","-s","-L","-h","-k","-g","-u","-G","-O","-b","-c","-p","-S","-t","-N"];function bn(t){return Vy.includes(t)}async function Sn(t,e,r){let n=ki(t,r);switch(e){case"-e":case"-a":return t.fs.exists(n);case"-f":return await t.fs.exists(n)?(await t.fs.stat(n)).isFile:!1;case"-d":return await t.fs.exists(n)?(await t.fs.stat(n)).isDirectory:!1;case"-r":case"-w":case"-x":return t.fs.exists(n);case"-s":return await t.fs.exists(n)?(await t.fs.stat(n)).size>0:!1;case"-L":case"-h":try{return(await t.fs.lstat(n)).isSymbolicLink}catch{return!1}case"-k":return await t.fs.exists(n)?((await t.fs.stat(n)).mode&512)!==0:!1;case"-g":return await t.fs.exists(n)?((await t.fs.stat(n)).mode&1024)!==0:!1;case"-u":return await t.fs.exists(n)?((await t.fs.stat(n)).mode&2048)!==0:!1;case"-G":case"-O":return t.fs.exists(n);case"-b":return!1;case"-c":return["/dev/null","/dev/zero","/dev/random","/dev/urandom","/dev/tty","/dev/stdin","/dev/stdout","/dev/stderr"].some(i=>n===i||n.endsWith(i));case"-p":return!1;case"-S":return!1;case"-t":return!1;case"-N":return t.fs.exists(n);default:return!1}}var Ky=["-nt","-ot","-ef"];function Cn(t){return Ky.includes(t)}async function An(t,e,r,n){let s=ki(t,r),i=ki(t,n);switch(e){case"-nt":try{let o=await t.fs.stat(s),a=await t.fs.stat(i);return o.mtime>a.mtime}catch{return!1}case"-ot":try{let o=await t.fs.stat(s),a=await t.fs.stat(i);return o.mtime<a.mtime}catch{return!1}case"-ef":try{if(!await t.fs.exists(s)||!await t.fs.exists(i))return!1;let o=t.fs.resolvePath(t.state.cwd,s),a=t.fs.resolvePath(t.state.cwd,i);return o===a}catch{return!1}default:return!1}}var Zy=new Set(["-eq","-ne","-lt","-le","-gt","-ge"]);function kn(t){return Zy.has(t)}function Nn(t,e,r){switch(t){case"-eq":return e===r;case"-ne":return e!==r;case"-lt":return e<r;case"-le":return e<=r;case"-gt":return e>r;case"-ge":return e>=r}}function In(t){return t==="="||t==="=="||t==="!="}function vn(t,e,r,n=!1){let s=n?$n(e,r):e===r;return t==="!="?!s:s}var Qy=new Set(["-z","-n"]);function Rn(t){return Qy.has(t)}function Pn(t,e){switch(t){case"-z":return e==="";case"-n":return e!==""}}function Fn(t,e){let r=e.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[(.+)\]$/);if(r){let n=r[1],s=r[2];s=s.replace(/\$([a-zA-Z_][a-zA-Z0-9_]*)/g,(o,a)=>t.state.env[a]||"");let i;if(/^-?\d+$/.test(s))i=Number.parseInt(s,10);else try{let o=Function(`"use strict"; return (${s})`)();i=typeof o=="number"?Math.floor(o):0}catch{let o=t.state.env[s];i=o?Number.parseInt(o,10):0}if(i<0){let o=xr(t,n);if(o.length===0||(i=Math.max(...o)+1+i,i<0))return!1}return`${n}_${i}`in t.state.env}return e in t.state.env}async function ft(t,e){switch(e.type){case"CondBinary":{let r=await le(t,e.left),n=await le(t,e.right),s=e.right.parts.length>0&&e.right.parts.every(i=>i.type==="SingleQuoted"||i.type==="DoubleQuoted"||i.type==="Escaped");if(In(e.operator))return vn(e.operator,r,n,!s);if(kn(e.operator))return Nn(e.operator,Lf(t,r),Lf(t,n));if(Cn(e.operator))return An(t,e.operator,r,n);switch(e.operator){case"=~":try{let i=new RegExp(n),o=r.match(i);if(o){t.state.env.BASH_REMATCH=o[0];for(let a=1;a<o.length;a++)t.state.env[`BASH_REMATCH_${a}`]=o[a]||""}return o!==null}catch{throw new Error("syntax error in regular expression")}case"<":return r<n;case">":return r>n;default:return!1}}case"CondUnary":{let r=await le(t,e.operand);return bn(e.operator)?Sn(t,e.operator,r):Rn(e.operator)?Pn(e.operator,r):e.operator==="-v"?Fn(t,r):e.operator==="-o"?Ii(t,r):!1}case"CondNot":return!await ft(t,e.operand);case"CondAnd":return await ft(t,e.left)?await ft(t,e.right):!1;case"CondOr":return await ft(t,e.left)?!0:await ft(t,e.right);case"CondGroup":return await ft(t,e.expression);case"CondWord":return await le(t,e.word)!=="";default:return!1}}async function er(t,e){if(e.length===0)return _("","",1);if(e.length===1)return we(!!e[0]);if(e.length===2){let n=e[0],s=e[1];return n==="("?U(`test: '(' without matching ')'
715
- `,2):bn(n)?we(await Sn(t,n,s)):Rn(n)?we(Pn(n,s)):n==="!"?we(!s):n==="-v"?we(Fn(t,s)):n==="-o"?we(Ii(t,s)):n==="="||n==="=="||n==="!="||n==="<"||n===">"||n==="-eq"||n==="-ne"||n==="-lt"||n==="-le"||n==="-gt"||n==="-ge"||n==="-nt"||n==="-ot"||n==="-ef"?U(`test: ${n}: unary operator expected
716
- `,2):_("","",1)}if(e.length===3){let n=e[0],s=e[1],i=e[2];if(In(s))return we(vn(s,n,i));if(kn(s)){let o=On(n),a=On(i);return!o.valid||!a.valid?_("","",2):we(Nn(s,o.value,a.value))}if(Cn(s))return we(await An(t,s,n,i));switch(s){case"-a":return we(n!==""&&i!=="");case"-o":return we(n!==""||i!=="");case">":return we(n>i);case"<":return we(n<i)}if(n==="!"){let o=await er(t,[s,i]);return _("",o.stderr,o.exitCode===0?1:o.exitCode===1?0:o.exitCode)}if(n==="("&&i===")")return we(s!=="")}if(e.length===4){if(e[0]==="!"){let n=await er(t,e.slice(1));return _("",n.stderr,n.exitCode===0?1:n.exitCode===1?0:n.exitCode)}if(e[0]==="("&&e[3]===")")return er(t,[e[1],e[2]])}let r=await _f(t,e,0);return r.pos<e.length?U(`test: too many arguments
717
- `,2):we(r.value)}async function _f(t,e,r){return Xy(t,e,r)}async function Xy(t,e,r){let{value:n,pos:s}=await Df(t,e,r);for(;e[s]==="-o";){let i=await Df(t,e,s+1);n=n||i.value,s=i.pos}return{value:n,pos:s}}async function Df(t,e,r){let{value:n,pos:s}=await Ni(t,e,r);for(;e[s]==="-a";){let i=await Ni(t,e,s+1);n=n&&i.value,s=i.pos}return{value:n,pos:s}}async function Ni(t,e,r){if(e[r]==="!"){let{value:n,pos:s}=await Ni(t,e,r+1);return{value:!n,pos:s}}return Jy(t,e,r)}async function Jy(t,e,r){let n=e[r];if(n==="("){let{value:i,pos:o}=await _f(t,e,r+1);return{value:i,pos:e[o]===")"?o+1:o}}if(bn(n)){let i=e[r+1]??"";return{value:await Sn(t,n,i),pos:r+2}}if(Rn(n)){let i=e[r+1]??"";return{value:Pn(n,i),pos:r+2}}if(n==="-v"){let i=e[r+1]??"";return{value:Fn(t,i),pos:r+2}}if(n==="-o"){let i=e[r+1]??"";return{value:Ii(t,i),pos:r+2}}let s=e[r+1];if(In(s)){let i=n,o=e[r+2]??"";return{value:vn(s,i,o),pos:r+3}}if(kn(s)){let i=On(n),o=On(e[r+2]??"0");return!i.valid||!o.valid?{value:!1,pos:r+3}:{value:Nn(s,i.value,o.value),pos:r+3}}if(Cn(s)){let i=n,o=e[r+2]??"";return{value:await An(t,s,i,o),pos:r+3}}return{value:n!==void 0&&n!=="",pos:r+1}}function $n(t,e){let r="^";for(let n=0;n<e.length;n++){let s=e[n];if(s==="\\")if(n+1<e.length){let i=e[n+1];/[\\^$.|+(){}[\]*?]/.test(i)?r+=`\\${i}`:r+=i,n++}else r+="\\\\";else if(s==="*")r+=".*";else if(s==="?")r+=".";else if(s==="["){let i=e.indexOf("]",n+1);i!==-1?(r+=e.slice(n,i+1),n=i):r+="\\["}else/[\\^$.|+(){}]/.test(s)?r+=`\\${s}`:r+=s}return r+="$",new RegExp(r).test(t)}function Ii(t,e){let n={errexit:()=>t.state.options.errexit===!0,nounset:()=>t.state.options.nounset===!0,pipefail:()=>t.state.options.pipefail===!0,xtrace:()=>t.state.options.xtrace===!0,e:()=>t.state.options.errexit===!0,u:()=>t.state.options.nounset===!0,x:()=>t.state.options.xtrace===!0}[e];return n?n():!1}function Lf(t,e){if(e=e.trim(),e==="")return 0;if(/^[+-]?(\d+#[a-zA-Z0-9@_]+|0[xX][0-9a-fA-F]+|0[0-7]+|\d+)$/.test(e))return Mf(e);try{let r=new Se,n=Ee(r,e);return ee(t,n.expression)}catch{return Mf(e)}}function Yy(t,e){let r=0;for(let n of t){let s;if(n>="0"&&n<="9")s=n.charCodeAt(0)-48;else if(n>="a"&&n<="z")s=n.charCodeAt(0)-97+10;else if(n>="A"&&n<="Z")s=n.charCodeAt(0)-65+36;else if(n==="@")s=62;else if(n==="_")s=63;else return Number.NaN;if(s>=e)return Number.NaN;r=r*e+s}return r}function Mf(t){if(t=t.trim(),t==="")return 0;let e=!1;t.startsWith("-")?(e=!0,t=t.slice(1)):t.startsWith("+")&&(t=t.slice(1));let r,n=t.match(/^(\d+)#([a-zA-Z0-9@_]+)$/);if(n){let s=Number.parseInt(n[1],10);s>=2&&s<=64?r=Yy(n[2],s):r=0}else/^0[xX][0-9a-fA-F]+$/.test(t)?r=Number.parseInt(t,16):/^0[0-7]+$/.test(t)?r=Number.parseInt(t,8):r=Number.parseInt(t,10);return Number.isNaN(r)&&(r=0),e?-r:r}function On(t){if(t=t.trim(),t==="")return{value:0,valid:!0};let e=!1;if(t.startsWith("-")?(e=!0,t=t.slice(1)):t.startsWith("+")&&(t=t.slice(1)),!/^\d+$/.test(t))return{value:0,valid:!1};let r=Number.parseInt(t,10);return Number.isNaN(r)?{value:0,valid:!1}:{value:e?-r:r,valid:!0}}oe();async function vi(t,e){let r=t.state.inCondition;t.state.inCondition=!0;let n="",s="",i=0;try{for(let o of e){let a=await t.executeStatement(o);n+=a.stdout,s+=a.stderr,i=a.exitCode}}finally{t.state.inCondition=r}return{stdout:n,stderr:s,exitCode:i}}oe();qe();function Sr(t,e,r,n){if(t instanceof Ae)return e+=t.stdout,r+=t.stderr,t.levels>1&&n>1?(t.levels--,t.stdout=e,t.stderr=r,{action:"rethrow",stdout:e,stderr:r,error:t}):{action:"break",stdout:e,stderr:r};if(t instanceof Re)return e+=t.stdout,r+=t.stderr,t.levels>1&&n>1?(t.levels--,t.stdout=e,t.stderr=r,{action:"rethrow",stdout:e,stderr:r,error:t}):{action:"continue",stdout:e,stderr:r};if(t instanceof ke||t instanceof Ke||t instanceof ie||t instanceof j)return t.prependOutput(e,r),{action:"rethrow",stdout:e,stderr:r,error:t};let s=de(t);return{action:"error",stdout:e,stderr:`${r}${s}
718
- `,exitCode:1}}oe();qe();async function Tn(t,e,r="",n=""){let s=r,i=n,o=0;try{for(let a of e){let l=await t.executeStatement(a);s+=l.stdout,i+=l.stderr,o=l.exitCode}}catch(a){if(Dr(a)||a instanceof Ke||a instanceof ie||a instanceof j||a instanceof Ze)throw a.prependOutput(s,i),a;return{stdout:s,stderr:`${i}${de(a)}
719
- `,exitCode:1}}return{stdout:s,stderr:i,exitCode:o}}async function Bf(t,e){let r="",n="";for(let s of e.clauses){let i=await vi(t,s.condition);if(r+=i.stdout,n+=i.stderr,i.exitCode===0)return Tn(t,s.body,r,n)}return e.elseBody?Tn(t,e.elseBody,r,n):_(r,n,0)}async function Wf(t,e){let r="",n="",s=0,i=0;if(!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(e.variable))return U(`bash: \`${e.variable}': not a valid identifier
720
- `);let o=[];if(e.words===null)o=(t.state.env["@"]||"").split(" ").filter(Boolean);else if(e.words.length===0)o=[];else for(let a of e.words){let l=await br(t,a);o.push(...l.values)}t.state.loopDepth++;try{for(let a of o){i++,i>t.limits.maxLoopIterations&&st(`for loop: too many iterations (${t.limits.maxLoopIterations}), increase executionLimits.maxLoopIterations`,"iterations",r,n),t.state.env[e.variable]=a;try{for(let l of e.body){let c=await t.executeStatement(l);r+=c.stdout,n+=c.stderr,s=c.exitCode}}catch(l){let c=Sr(l,r,n,t.state.loopDepth);if(r=c.stdout,n=c.stderr,c.action==="break")break;if(c.action==="continue")continue;if(c.action==="error")return _(r,n,c.exitCode??1);throw c.error}}}finally{t.state.loopDepth--}return _(r,n,s)}async function Uf(t,e){let r="",n="",s=0,i=0;e.init&&await te(t,e.init.expression),t.state.loopDepth++;try{for(;i++,i>t.limits.maxLoopIterations&&st(`for loop: too many iterations (${t.limits.maxLoopIterations}), increase executionLimits.maxLoopIterations`,"iterations",r,n),!(e.condition&&await te(t,e.condition.expression)===0);){try{for(let o of e.body){let a=await t.executeStatement(o);r+=a.stdout,n+=a.stderr,s=a.exitCode}}catch(o){let a=Sr(o,r,n,t.state.loopDepth);if(r=a.stdout,n=a.stderr,a.action==="break")break;if(a.action==="continue"){e.update&&await te(t,e.update.expression);continue}if(a.action==="error")return _(r,n,a.exitCode??1);throw a.error}e.update&&await te(t,e.update.expression)}}finally{t.state.loopDepth--}return _(r,n,s)}async function jf(t,e,r=""){let n="",s="",i=0,o=0,a=r;for(let c of e.redirections)if((c.operator==="<<"||c.operator==="<<-")&&c.target.type==="HereDoc"){let u=c.target,f=await le(t,u.content);u.stripTabs&&(f=f.split(`
721
- `).map(p=>p.replace(/^\t+/,"")).join(`
722
- `)),a=f}else if(c.operator==="<<<"&&c.target.type==="Word")a=`${await le(t,c.target)}
723
- `;else if(c.operator==="<"&&c.target.type==="Word")try{let u=await le(t,c.target),f=t.fs.resolvePath(t.state.cwd,u);a=await t.fs.readFile(f)}catch{let u=await le(t,c.target);return U(`bash: ${u}: No such file or directory
724
- `)}let l=t.state.groupStdin;a&&(t.state.groupStdin=a),t.state.loopDepth++;try{for(;;){o++,o>t.limits.maxLoopIterations&&st(`while loop: too many iterations (${t.limits.maxLoopIterations}), increase executionLimits.maxLoopIterations`,"iterations",n,s);let c=0,u=!1,f=!1,p=t.state.inCondition;t.state.inCondition=!0;try{for(let d of e.condition){let h=await t.executeStatement(d);n+=h.stdout,s+=h.stderr,c=h.exitCode}}catch(d){if(d instanceof Ae){if(n+=d.stdout,s+=d.stderr,d.levels>1&&t.state.loopDepth>1)throw d.levels--,d.stdout=n,d.stderr=s,t.state.inCondition=p,d;u=!0}else if(d instanceof Re){if(n+=d.stdout,s+=d.stderr,d.levels>1&&t.state.loopDepth>1)throw d.levels--,d.stdout=n,d.stderr=s,t.state.inCondition=p,d;f=!0}else throw t.state.inCondition=p,d}finally{t.state.inCondition=p}if(u)break;if(!f){if(c!==0)break;try{for(let d of e.body){let h=await t.executeStatement(d);n+=h.stdout,s+=h.stderr,i=h.exitCode}}catch(d){let h=Sr(d,n,s,t.state.loopDepth);if(n=h.stdout,s=h.stderr,h.action==="break")break;if(h.action==="continue")continue;if(h.action==="error")return _(n,s,h.exitCode??1);throw h.error}}}}finally{t.state.loopDepth--,t.state.groupStdin=l}return _(n,s,i)}async function zf(t,e){let r="",n="",s=0,i=0;t.state.loopDepth++;try{for(;;){i++,i>t.limits.maxLoopIterations&&st(`until loop: too many iterations (${t.limits.maxLoopIterations}), increase executionLimits.maxLoopIterations`,"iterations",r,n);let o=await vi(t,e.condition);if(r+=o.stdout,n+=o.stderr,o.exitCode===0)break;try{for(let a of e.body){let l=await t.executeStatement(a);r+=l.stdout,n+=l.stderr,s=l.exitCode}}catch(a){let l=Sr(a,r,n,t.state.loopDepth);if(r=l.stdout,n=l.stderr,l.action==="break")break;if(l.action==="continue")continue;if(l.action==="error")return _(r,n,l.exitCode??1);throw l.error}}}finally{t.state.loopDepth--}return _(r,n,s)}async function Hf(t,e){let r="",n="",s=0,i=await le(t,e.word),o=!1;for(let a=0;a<e.items.length;a++){let l=e.items[a],c=o;if(!o)for(let u of l.patterns){let f=await le(t,u);if(yf(u)&&(f=xf(f)),$n(i,f)){c=!0;break}}if(c){let u=await Tn(t,l.body,r,n);if(r=u.stdout,n=u.stderr,s=u.exitCode,l.terminator===";;")break;l.terminator===";&"?o=!0:o=!1}else o=!1}return _(r,n,s)}oe();oe();function Gf(t,e){return t.state.functions.set(e.name,e),Q}async function qf(t,e,r){t.state.callDepth++,t.state.callDepth>t.limits.maxCallDepth&&(t.state.callDepth--,st(`${e.name}: maximum recursion depth (${t.limits.maxCallDepth}) exceeded, increase executionLimits.maxCallDepth`,"recursion")),t.state.localScopes.push(new Map);let n={};for(let i=0;i<r.length;i++)n[String(i+1)]=t.state.env[String(i+1)],t.state.env[String(i+1)]=r[i];n["@"]=t.state.env["@"],n["#"]=t.state.env["#"],t.state.env["@"]=r.join(" "),t.state.env["#"]=String(r.length);let s=()=>{let i=t.state.localScopes.pop();if(i)for(let[o,a]of i)a===void 0?delete t.state.env[o]:t.state.env[o]=a;for(let[o,a]of Object.entries(n))a===void 0?delete t.state.env[o]:t.state.env[o]=a;t.state.callDepth--};try{let i=await t.executeCommand(e.body,"");return s(),i}catch(i){if(s(),i instanceof ke)return _(i.stdout,i.stderr,i.exitCode);throw i}}qe();async function Vf(t,e,r){let{stdout:n,stderr:s,exitCode:i}=e;for(let o of r){if(o.target.type==="HereDoc")continue;let a=await le(t,o.target);switch(o.operator){case">":{let l=o.fd??1;if(l===1){let c=t.fs.resolvePath(t.state.cwd,a);try{if((await t.fs.stat(c)).isDirectory){s+=`bash: ${a}: Is a directory
711
+ `);let o={};if(r.length>1){for(let c=1;c<=9;c++)o[String(c)]=t.state.env[String(c)];o["#"]=t.state.env["#"],o["@"]=t.state.env["@"];let l=r.slice(1);t.state.env["#"]=String(l.length),t.state.env["@"]=l.join(" ");for(let c=0;c<l.length&&c<9;c++)t.state.env[String(c+1)]=l[c];for(let c=l.length+1;c<=9;c++)delete t.state.env[String(c)]}let a=()=>{if(t.state.sourceDepth--,r.length>1)for(let[l,c]of Object.entries(o))c===void 0?delete t.state.env[l]:t.state.env[l]=c};t.state.sourceDepth++;try{let l=xt(i),c=await t.executeScript(l);return a(),c}catch(l){if(a(),l instanceof se)throw l;if(l instanceof Re)return M(l.stdout,l.stderr,l.exitCode);if(l.name==="ParseException")return U(`bash: ${n}: ${l.message}
712
+ `);throw l}}function ji(t,e){let r="variable",n="",s=0;for(let i of e){if(i==="-v"){r="variable";continue}if(i==="-f"){r="function";continue}if(r==="function"){t.state.functions.delete(i);continue}let o=i.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[(.+)\]$/);if(o){let a=o[1],l=o[2];if(l==="@"||l==="*"){let u=ke(t,a);for(let[f]of u)delete t.state.env[`${a}_${f}`];delete t.state.env[a];continue}let c;if(/^-?\d+$/.test(l))c=Number.parseInt(l,10);else{let u=t.state.env[l];c=u?Number.parseInt(u,10):0,Number.isNaN(c)&&(c=0)}if(c<0){let u=ke(t,a),f=u.length;if(f===0){n+=`bash: unset: [${c}]: bad array subscript
713
+ `,s=1;continue}let d=f+c;if(d<0){n+=`bash: unset: [${c}]: bad array subscript
714
+ `,s=1;continue}let p=u[d][0];delete t.state.env[`${a}_${p}`];continue}delete t.state.env[`${a}_${c}`];continue}delete t.state.env[i],t.state.functions.delete(i)}return M("",n,s)}function Hi(t,e){return t.fs.resolvePath(t.state.cwd,e)}var Ex=["-e","-a","-f","-d","-r","-w","-x","-s","-L","-h","-k","-g","-u","-G","-O","-b","-c","-p","-S","-t","-N"];function _n(t){return Ex.includes(t)}async function Bn(t,e,r){let n=Hi(t,r);switch(e){case"-e":case"-a":return t.fs.exists(n);case"-f":return await t.fs.exists(n)?(await t.fs.stat(n)).isFile:!1;case"-d":return await t.fs.exists(n)?(await t.fs.stat(n)).isDirectory:!1;case"-r":case"-w":case"-x":return t.fs.exists(n);case"-s":return await t.fs.exists(n)?(await t.fs.stat(n)).size>0:!1;case"-L":case"-h":try{return(await t.fs.lstat(n)).isSymbolicLink}catch{return!1}case"-k":return await t.fs.exists(n)?((await t.fs.stat(n)).mode&512)!==0:!1;case"-g":return await t.fs.exists(n)?((await t.fs.stat(n)).mode&1024)!==0:!1;case"-u":return await t.fs.exists(n)?((await t.fs.stat(n)).mode&2048)!==0:!1;case"-G":case"-O":return t.fs.exists(n);case"-b":return!1;case"-c":return["/dev/null","/dev/zero","/dev/random","/dev/urandom","/dev/tty","/dev/stdin","/dev/stdout","/dev/stderr"].some(i=>n===i||n.endsWith(i));case"-p":return!1;case"-S":return!1;case"-t":return!1;case"-N":return t.fs.exists(n);default:return!1}}var bx=["-nt","-ot","-ef"];function Wn(t){return bx.includes(t)}async function Un(t,e,r,n){let s=Hi(t,r),i=Hi(t,n);switch(e){case"-nt":try{let o=await t.fs.stat(s),a=await t.fs.stat(i);return o.mtime>a.mtime}catch{return!1}case"-ot":try{let o=await t.fs.stat(s),a=await t.fs.stat(i);return o.mtime<a.mtime}catch{return!1}case"-ef":try{if(!await t.fs.exists(s)||!await t.fs.exists(i))return!1;let o=t.fs.resolvePath(t.state.cwd,s),a=t.fs.resolvePath(t.state.cwd,i);return o===a}catch{return!1}default:return!1}}var Sx=new Set(["-eq","-ne","-lt","-le","-gt","-ge"]);function zn(t){return Sx.has(t)}function jn(t,e,r){switch(t){case"-eq":return e===r;case"-ne":return e!==r;case"-lt":return e<r;case"-le":return e<=r;case"-gt":return e>r;case"-ge":return e>=r}}function Hn(t){return t==="="||t==="=="||t==="!="}function Gn(t,e,r,n=!1){let s=n?qn(e,r):e===r;return t==="!="?!s:s}var Cx=new Set(["-z","-n"]);function Vn(t){return Cx.has(t)}function Kn(t,e){switch(t){case"-z":return e==="";case"-n":return e!==""}}function Zn(t,e){let r=e.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[(.+)\]$/);if(r){let n=r[1],s=r[2];s=s.replace(/\$([a-zA-Z_][a-zA-Z0-9_]*)/g,(o,a)=>t.state.env[a]||"");let i;if(/^-?\d+$/.test(s))i=Number.parseInt(s,10);else try{let o=Function(`"use strict"; return (${s})`)();i=typeof o=="number"?Math.floor(o):0}catch{let o=t.state.env[s];i=o?Number.parseInt(o,10):0}if(i<0){let o=Or(t,n);if(o.length===0||(i=Math.max(...o)+1+i,i<0))return!1}return`${n}_${i}`in t.state.env}return e in t.state.env}async function bt(t,e){switch(e.type){case"CondBinary":{let r=await ae(t,e.left),n=await ae(t,e.right),s=e.right.parts.length>0&&e.right.parts.every(i=>i.type==="SingleQuoted"||i.type==="DoubleQuoted"||i.type==="Escaped");if(Hn(e.operator))return Gn(e.operator,r,n,!s);if(zn(e.operator))return jn(e.operator,sd(t,r),sd(t,n));if(Wn(e.operator))return Un(t,e.operator,r,n);switch(e.operator){case"=~":try{let i=new RegExp(n),o=r.match(i);if(o){t.state.env.BASH_REMATCH=o[0];for(let a=1;a<o.length;a++)t.state.env[`BASH_REMATCH_${a}`]=o[a]||""}return o!==null}catch{throw new Error("syntax error in regular expression")}case"<":return r<n;case">":return r>n;default:return!1}}case"CondUnary":{let r=await ae(t,e.operand);return _n(e.operator)?Bn(t,e.operator,r):Vn(e.operator)?Kn(e.operator,r):e.operator==="-v"?Zn(t,r):e.operator==="-o"?qi(t,r):!1}case"CondNot":return!await bt(t,e.operand);case"CondAnd":return await bt(t,e.left)?await bt(t,e.right):!1;case"CondOr":return await bt(t,e.left)?!0:await bt(t,e.right);case"CondGroup":return await bt(t,e.expression);case"CondWord":return await ae(t,e.word)!=="";default:return!1}}async function dr(t,e){if(e.length===0)return M("","",1);if(e.length===1)return Se(!!e[0]);if(e.length===2){let n=e[0],s=e[1];return n==="("?U(`test: '(' without matching ')'
715
+ `,2):_n(n)?Se(await Bn(t,n,s)):Vn(n)?Se(Kn(n,s)):n==="!"?Se(!s):n==="-v"?Se(Zn(t,s)):n==="-o"?Se(qi(t,s)):n==="="||n==="=="||n==="!="||n==="<"||n===">"||n==="-eq"||n==="-ne"||n==="-lt"||n==="-le"||n==="-gt"||n==="-ge"||n==="-nt"||n==="-ot"||n==="-ef"?U(`test: ${n}: unary operator expected
716
+ `,2):M("","",1)}if(e.length===3){let n=e[0],s=e[1],i=e[2];if(Hn(s))return Se(Gn(s,n,i));if(zn(s)){let o=Qn(n),a=Qn(i);return!o.valid||!a.valid?M("","",2):Se(jn(s,o.value,a.value))}if(Wn(s))return Se(await Un(t,s,n,i));switch(s){case"-a":return Se(n!==""&&i!=="");case"-o":return Se(n!==""||i!=="");case">":return Se(n>i);case"<":return Se(n<i)}if(n==="!"){let o=await dr(t,[s,i]);return M("",o.stderr,o.exitCode===0?1:o.exitCode===1?0:o.exitCode)}if(n==="("&&i===")")return Se(s!=="")}if(e.length===4){if(e[0]==="!"){let n=await dr(t,e.slice(1));return M("",n.stderr,n.exitCode===0?1:n.exitCode===1?0:n.exitCode)}if(e[0]==="("&&e[3]===")")return dr(t,[e[1],e[2]])}let r=await od(t,e,0);return r.pos<e.length?U(`test: too many arguments
717
+ `,2):Se(r.value)}async function od(t,e,r){return Ax(t,e,r)}async function Ax(t,e,r){let{value:n,pos:s}=await nd(t,e,r);for(;e[s]==="-o";){let i=await nd(t,e,s+1);n=n||i.value,s=i.pos}return{value:n,pos:s}}async function nd(t,e,r){let{value:n,pos:s}=await Gi(t,e,r);for(;e[s]==="-a";){let i=await Gi(t,e,s+1);n=n&&i.value,s=i.pos}return{value:n,pos:s}}async function Gi(t,e,r){if(e[r]==="!"){let{value:n,pos:s}=await Gi(t,e,r+1);return{value:!n,pos:s}}return kx(t,e,r)}async function kx(t,e,r){let n=e[r];if(n==="("){let{value:i,pos:o}=await od(t,e,r+1);return{value:i,pos:e[o]===")"?o+1:o}}if(_n(n)){let i=e[r+1]??"";return{value:await Bn(t,n,i),pos:r+2}}if(Vn(n)){let i=e[r+1]??"";return{value:Kn(n,i),pos:r+2}}if(n==="-v"){let i=e[r+1]??"";return{value:Zn(t,i),pos:r+2}}if(n==="-o"){let i=e[r+1]??"";return{value:qi(t,i),pos:r+2}}let s=e[r+1];if(Hn(s)){let i=n,o=e[r+2]??"";return{value:Gn(s,i,o),pos:r+3}}if(zn(s)){let i=Qn(n),o=Qn(e[r+2]??"0");return!i.valid||!o.valid?{value:!1,pos:r+3}:{value:jn(s,i.value,o.value),pos:r+3}}if(Wn(s)){let i=n,o=e[r+2]??"";return{value:await Un(t,s,i,o),pos:r+3}}return{value:n!==void 0&&n!=="",pos:r+1}}function qn(t,e){let r="^";for(let n=0;n<e.length;n++){let s=e[n];if(s==="\\")if(n+1<e.length){let i=e[n+1];/[\\^$.|+(){}[\]*?]/.test(i)?r+=`\\${i}`:r+=i,n++}else r+="\\\\";else if(s==="*")r+=".*";else if(s==="?")r+=".";else if(s==="["){let i=e.indexOf("]",n+1);i!==-1?(r+=e.slice(n,i+1),n=i):r+="\\["}else/[\\^$.|+(){}]/.test(s)?r+=`\\${s}`:r+=s}return r+="$",new RegExp(r).test(t)}function qi(t,e){let n={errexit:()=>t.state.options.errexit===!0,nounset:()=>t.state.options.nounset===!0,pipefail:()=>t.state.options.pipefail===!0,xtrace:()=>t.state.options.xtrace===!0,e:()=>t.state.options.errexit===!0,u:()=>t.state.options.nounset===!0,x:()=>t.state.options.xtrace===!0}[e];return n?n():!1}function sd(t,e){if(e=e.trim(),e==="")return 0;if(/^[+-]?(\d+#[a-zA-Z0-9@_]+|0[xX][0-9a-fA-F]+|0[0-7]+|\d+)$/.test(e))return id(e);try{let r=new ve,n=Ae(r,e);return X(t,n.expression)}catch{return id(e)}}function Nx(t,e){let r=0;for(let n of t){let s;if(n>="0"&&n<="9")s=n.charCodeAt(0)-48;else if(n>="a"&&n<="z")s=n.charCodeAt(0)-97+10;else if(n>="A"&&n<="Z")s=n.charCodeAt(0)-65+36;else if(n==="@")s=62;else if(n==="_")s=63;else return Number.NaN;if(s>=e)return Number.NaN;r=r*e+s}return r}function id(t){if(t=t.trim(),t==="")return 0;let e=!1;t.startsWith("-")?(e=!0,t=t.slice(1)):t.startsWith("+")&&(t=t.slice(1));let r,n=t.match(/^(\d+)#([a-zA-Z0-9@_]+)$/);if(n){let s=Number.parseInt(n[1],10);s>=2&&s<=64?r=Nx(n[2],s):r=0}else/^0[xX][0-9a-fA-F]+$/.test(t)?r=Number.parseInt(t,16):/^0[0-7]+$/.test(t)?r=Number.parseInt(t,8):r=Number.parseInt(t,10);return Number.isNaN(r)&&(r=0),e?-r:r}function Qn(t){if(t=t.trim(),t==="")return{value:0,valid:!0};let e=!1;if(t.startsWith("-")?(e=!0,t=t.slice(1)):t.startsWith("+")&&(t=t.slice(1)),!/^\d+$/.test(t))return{value:0,valid:!1};let r=Number.parseInt(t,10);return Number.isNaN(r)?{value:0,valid:!1}:{value:e?-r:r,valid:!0}}ie();async function Vi(t,e){let r=t.state.inCondition;t.state.inCondition=!0;let n="",s="",i=0;try{for(let o of e){let a=await t.executeStatement(o);n+=a.stdout,s+=a.stderr,i=a.exitCode}}finally{t.state.inCondition=r}return{stdout:n,stderr:s,exitCode:i}}ie();rt();function _r(t,e,r,n){if(t instanceof $e)return e+=t.stdout,r+=t.stderr,t.levels>1&&n>1?(t.levels--,t.stdout=e,t.stderr=r,{action:"rethrow",stdout:e,stderr:r,error:t}):{action:"break",stdout:e,stderr:r};if(t instanceof Me)return e+=t.stdout,r+=t.stderr,t.levels>1&&n>1?(t.levels--,t.stdout=e,t.stderr=r,{action:"rethrow",stdout:e,stderr:r,error:t}):{action:"continue",stdout:e,stderr:r};if(t instanceof Re||t instanceof st||t instanceof se||t instanceof z)return t.prependOutput(e,r),{action:"rethrow",stdout:e,stderr:r,error:t};let s=he(t);return{action:"error",stdout:e,stderr:`${r}${s}
718
+ `,exitCode:1}}ie();rt();async function Xn(t,e,r="",n=""){let s=r,i=n,o=0;try{for(let a of e){let l=await t.executeStatement(a);s+=l.stdout,i+=l.stderr,o=l.exitCode}}catch(a){if(Jr(a)||a instanceof st||a instanceof se||a instanceof z||a instanceof it)throw a.prependOutput(s,i),a;return{stdout:s,stderr:`${i}${he(a)}
719
+ `,exitCode:1}}return{stdout:s,stderr:i,exitCode:o}}async function ad(t,e){let r="",n="";for(let s of e.clauses){let i=await Vi(t,s.condition);if(r+=i.stdout,n+=i.stderr,i.exitCode===0)return Xn(t,s.body,r,n)}return e.elseBody?Xn(t,e.elseBody,r,n):M(r,n,0)}async function ld(t,e){let r="",n="",s=0,i=0;if(!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(e.variable))return U(`bash: \`${e.variable}': not a valid identifier
720
+ `);let o=[];if(e.words===null)o=(t.state.env["@"]||"").split(" ").filter(Boolean);else if(e.words.length===0)o=[];else for(let a of e.words){let l=await Mr(t,a);o.push(...l.values)}t.state.loopDepth++;try{for(let a of o){i++,i>t.limits.maxLoopIterations&&ht(`for loop: too many iterations (${t.limits.maxLoopIterations}), increase executionLimits.maxLoopIterations`,"iterations",r,n),t.state.env[e.variable]=a;try{for(let l of e.body){let c=await t.executeStatement(l);r+=c.stdout,n+=c.stderr,s=c.exitCode}}catch(l){let c=_r(l,r,n,t.state.loopDepth);if(r=c.stdout,n=c.stderr,c.action==="break")break;if(c.action==="continue")continue;if(c.action==="error")return M(r,n,c.exitCode??1);throw c.error}}}finally{t.state.loopDepth--}return M(r,n,s)}async function cd(t,e){let r="",n="",s=0,i=0;e.init&&await J(t,e.init.expression),t.state.loopDepth++;try{for(;i++,i>t.limits.maxLoopIterations&&ht(`for loop: too many iterations (${t.limits.maxLoopIterations}), increase executionLimits.maxLoopIterations`,"iterations",r,n),!(e.condition&&await J(t,e.condition.expression)===0);){try{for(let o of e.body){let a=await t.executeStatement(o);r+=a.stdout,n+=a.stderr,s=a.exitCode}}catch(o){let a=_r(o,r,n,t.state.loopDepth);if(r=a.stdout,n=a.stderr,a.action==="break")break;if(a.action==="continue"){e.update&&await J(t,e.update.expression);continue}if(a.action==="error")return M(r,n,a.exitCode??1);throw a.error}e.update&&await J(t,e.update.expression)}}finally{t.state.loopDepth--}return M(r,n,s)}async function ud(t,e,r=""){let n="",s="",i=0,o=0,a=r;for(let c of e.redirections)if((c.operator==="<<"||c.operator==="<<-")&&c.target.type==="HereDoc"){let u=c.target,f=await ae(t,u.content);u.stripTabs&&(f=f.split(`
721
+ `).map(d=>d.replace(/^\t+/,"")).join(`
722
+ `)),a=f}else if(c.operator==="<<<"&&c.target.type==="Word")a=`${await ae(t,c.target)}
723
+ `;else if(c.operator==="<"&&c.target.type==="Word")try{let u=await ae(t,c.target),f=t.fs.resolvePath(t.state.cwd,u);a=await t.fs.readFile(f)}catch{let u=await ae(t,c.target);return U(`bash: ${u}: No such file or directory
724
+ `)}let l=t.state.groupStdin;a&&(t.state.groupStdin=a),t.state.loopDepth++;try{for(;;){o++,o>t.limits.maxLoopIterations&&ht(`while loop: too many iterations (${t.limits.maxLoopIterations}), increase executionLimits.maxLoopIterations`,"iterations",n,s);let c=0,u=!1,f=!1,d=t.state.inCondition;t.state.inCondition=!0;try{for(let p of e.condition){let h=await t.executeStatement(p);n+=h.stdout,s+=h.stderr,c=h.exitCode}}catch(p){if(p instanceof $e){if(n+=p.stdout,s+=p.stderr,p.levels>1&&t.state.loopDepth>1)throw p.levels--,p.stdout=n,p.stderr=s,t.state.inCondition=d,p;u=!0}else if(p instanceof Me){if(n+=p.stdout,s+=p.stderr,p.levels>1&&t.state.loopDepth>1)throw p.levels--,p.stdout=n,p.stderr=s,t.state.inCondition=d,p;f=!0}else throw t.state.inCondition=d,p}finally{t.state.inCondition=d}if(u)break;if(!f){if(c!==0)break;try{for(let p of e.body){let h=await t.executeStatement(p);n+=h.stdout,s+=h.stderr,i=h.exitCode}}catch(p){let h=_r(p,n,s,t.state.loopDepth);if(n=h.stdout,s=h.stderr,h.action==="break")break;if(h.action==="continue")continue;if(h.action==="error")return M(n,s,h.exitCode??1);throw h.error}}}}finally{t.state.loopDepth--,t.state.groupStdin=l}return M(n,s,i)}async function fd(t,e){let r="",n="",s=0,i=0;t.state.loopDepth++;try{for(;;){i++,i>t.limits.maxLoopIterations&&ht(`until loop: too many iterations (${t.limits.maxLoopIterations}), increase executionLimits.maxLoopIterations`,"iterations",r,n);let o=await Vi(t,e.condition);if(r+=o.stdout,n+=o.stderr,o.exitCode===0)break;try{for(let a of e.body){let l=await t.executeStatement(a);r+=l.stdout,n+=l.stderr,s=l.exitCode}}catch(a){let l=_r(a,r,n,t.state.loopDepth);if(r=l.stdout,n=l.stderr,l.action==="break")break;if(l.action==="continue")continue;if(l.action==="error")return M(r,n,l.exitCode??1);throw l.error}}}finally{t.state.loopDepth--}return M(r,n,s)}async function dd(t,e){let r="",n="",s=0,i=await ae(t,e.word),o=!1;for(let a=0;a<e.items.length;a++){let l=e.items[a],c=o;if(!o)for(let u of l.patterns){let f=await ae(t,u);if(Bf(u)&&(f=Wf(f)),qn(i,f)){c=!0;break}}if(c){let u=await Xn(t,l.body,r,n);if(r=u.stdout,n=u.stderr,s=u.exitCode,l.terminator===";;")break;l.terminator===";&"?o=!0:o=!1}else o=!1}return M(r,n,s)}ie();ie();function pd(t,e){return t.state.functions.set(e.name,e),Z}async function hd(t,e,r){t.state.callDepth++,t.state.callDepth>t.limits.maxCallDepth&&(t.state.callDepth--,ht(`${e.name}: maximum recursion depth (${t.limits.maxCallDepth}) exceeded, increase executionLimits.maxCallDepth`,"recursion")),t.state.localScopes.push(new Map);let n={};for(let i=0;i<r.length;i++)n[String(i+1)]=t.state.env[String(i+1)],t.state.env[String(i+1)]=r[i];n["@"]=t.state.env["@"],n["#"]=t.state.env["#"],t.state.env["@"]=r.join(" "),t.state.env["#"]=String(r.length);let s=()=>{let i=t.state.localScopes.pop();if(i)for(let[o,a]of i)a===void 0?delete t.state.env[o]:t.state.env[o]=a;for(let[o,a]of Object.entries(n))a===void 0?delete t.state.env[o]:t.state.env[o]=a;t.state.callDepth--};try{let i=await t.executeCommand(e.body,"");return s(),i}catch(i){if(s(),i instanceof Re)return M(i.stdout,i.stderr,i.exitCode);throw i}}rt();async function md(t,e,r){let{stdout:n,stderr:s,exitCode:i}=e;for(let o of r){if(o.target.type==="HereDoc")continue;let a=await ae(t,o.target);switch(o.operator){case">":{let l=o.fd??1;if(l===1){let c=t.fs.resolvePath(t.state.cwd,a);try{if((await t.fs.stat(c)).isDirectory){s+=`bash: ${a}: Is a directory
725
725
  `,i=1,n="";break}}catch{}await t.fs.writeFile(c,n),n=""}else if(l===2)if(a==="/dev/null")s="";else{let c=t.fs.resolvePath(t.state.cwd,a);try{if((await t.fs.stat(c)).isDirectory){s+=`bash: ${a}: Is a directory
726
726
  `,i=1;break}}catch{}await t.fs.writeFile(c,s),s=""}break}case">>":{let l=o.fd??1;if(l===1){let c=t.fs.resolvePath(t.state.cwd,a);try{if((await t.fs.stat(c)).isDirectory){s+=`bash: ${a}: Is a directory
727
727
  `,i=1,n="";break}}catch{}await t.fs.appendFile(c,n),n=""}else if(l===2){let c=t.fs.resolvePath(t.state.cwd,a);try{if((await t.fs.stat(c)).isDirectory){s+=`bash: ${a}: Is a directory
728
728
  `,i=1;break}}catch{}await t.fs.appendFile(c,s),s=""}break}case">&":{let l=o.fd??1;a==="2"||a==="&2"?l===1&&(s+=n,n=""):(a==="1"||a==="&1")&&(n+=s,s="");break}case"&>":{let l=t.fs.resolvePath(t.state.cwd,a);try{if((await t.fs.stat(l)).isDirectory){s=`bash: ${a}: Is a directory
729
729
  `,i=1,n="";break}}catch{}await t.fs.writeFile(l,n+s),n="",s="";break}case"&>>":{let l=t.fs.resolvePath(t.state.cwd,a);try{if((await t.fs.stat(l)).isDirectory){s=`bash: ${a}: Is a directory
730
- `,i=1,n="";break}}catch{}await t.fs.appendFile(l,n+s),n="",s="";break}}}return _(n,s,i)}var Cr=class{ctx;constructor(e,r){this.ctx={state:r,fs:e.fs,commands:e.commands,limits:e.limits,execFn:e.exec,executeScript:this.executeScript.bind(this),executeStatement:this.executeStatement.bind(this),executeCommand:this.executeCommand.bind(this),fetch:e.fetch,sleep:e.sleep}}async executeScript(e){let r="",n="",s=0;for(let i of e.statements)try{let o=await this.executeStatement(i);r+=o.stdout,n+=o.stderr,s=o.exitCode,this.ctx.state.lastExitCode=s,this.ctx.state.env["?"]=String(s)}catch(o){if(o instanceof ie)throw o.prependOutput(r,n),o;if(o instanceof j)throw o;if(o instanceof Ke)return r+=o.stdout,n+=o.stderr,s=o.exitCode,this.ctx.state.lastExitCode=s,this.ctx.state.env["?"]=String(s),{stdout:r,stderr:n,exitCode:s,env:{...this.ctx.state.env}};if(o instanceof Ue)return r+=o.stdout,n+=o.stderr,s=1,this.ctx.state.lastExitCode=s,this.ctx.state.env["?"]=String(s),{stdout:r,stderr:n,exitCode:s,env:{...this.ctx.state.env}};if(o instanceof Je)return r+=o.stdout,n+=o.stderr,s=1,this.ctx.state.lastExitCode=s,this.ctx.state.env["?"]=String(s),{stdout:r,stderr:n,exitCode:s,env:{...this.ctx.state.env}};if(o instanceof Ae||o instanceof Re){if(this.ctx.state.loopDepth>0)throw o.prependOutput(r,n),o;r+=o.stdout,n+=o.stderr;continue}throw o instanceof ke&&o.prependOutput(r,n),o}return{stdout:r,stderr:n,exitCode:s,env:{...this.ctx.state.env}}}async executeStatement(e){this.ctx.state.commandCount++,this.ctx.state.commandCount>this.ctx.limits.maxCommandCount&&st(`too many commands executed (>${this.ctx.limits.maxCommandCount}), increase executionLimits.maxCommandCount`,"commands");let r="",n="",s=0,i=-1,o=!1;for(let a=0;a<e.pipelines.length;a++){let l=e.pipelines[a],c=a>0?e.operators[a-1]:null;if(c==="&&"&&s!==0||c==="||"&&s===0)continue;let u=await this.executePipeline(l);r+=u.stdout,n+=u.stderr,s=u.exitCode,i=a,o=l.negated,this.ctx.state.lastExitCode=s,this.ctx.state.env["?"]=String(s)}if(this.ctx.state.options.errexit&&s!==0&&i===e.pipelines.length-1&&!o&&!this.ctx.state.inCondition)throw new Ke(s,r,n);return _(r,n,s)}async executePipeline(e){let r="",n=Q,s=0,i=[];for(let o=0;o<e.commands.length;o++){let a=e.commands[o],l=o===e.commands.length-1,c;try{c=await this.executeCommand(a,r)}catch(u){if(u instanceof Je)c={stdout:u.stdout,stderr:u.stderr,exitCode:1};else if(u instanceof ie&&e.commands.length>1)c={stdout:u.stdout,stderr:u.stderr,exitCode:u.exitCode};else throw u}i.push(c.exitCode),c.exitCode!==0&&(s=c.exitCode),l?n=c:(r=c.stdout,n={stdout:"",stderr:c.stderr,exitCode:c.exitCode})}for(let o of Object.keys(this.ctx.state.env))o.startsWith("PIPESTATUS_")&&delete this.ctx.state.env[o];for(let o=0;o<i.length;o++)this.ctx.state.env[`PIPESTATUS_${o}`]=String(i[o]);return this.ctx.state.env.PIPESTATUS__length=String(i.length),this.ctx.state.options.pipefail&&s!==0&&(n={...n,exitCode:s}),e.negated&&(n={...n,exitCode:n.exitCode===0?1:0}),n}async executeCommand(e,r){switch(e.type){case"SimpleCommand":return this.executeSimpleCommand(e,r);case"If":return Bf(this.ctx,e);case"For":return Wf(this.ctx,e);case"CStyleFor":return Uf(this.ctx,e);case"While":return jf(this.ctx,e,r);case"Until":return zf(this.ctx,e);case"Case":return Hf(this.ctx,e);case"Subshell":return this.executeSubshell(e,r);case"Group":return this.executeGroup(e,r);case"FunctionDef":return Gf(this.ctx,e);case"ArithmeticCommand":return this.executeArithmeticCommand(e);case"ConditionalCommand":return this.executeConditionalCommand(e);default:return Q}}async executeSimpleCommand(e,r){try{return await this.executeSimpleCommandInner(e,r)}catch(n){if(n instanceof xe)return U(n.stderr);throw n}}async executeSimpleCommandInner(e,r){e.line!==void 0&&(this.ctx.state.currentLine=e.line),this.ctx.state.expansionStderr="";let n={};for(let l of e.assignments){let c=l.name;if(l.array){if(/\[.+\]$/.test(c))return _("",`bash: ${c}: cannot assign list to array member
731
- `,1);let m=ut(this.ctx,c);if(m)return m;let g=[];for(let E of l.array){let b=await br(this.ctx,E);g.push(...b.values)}let w=0;if(l.append){let E=be(this.ctx,c);E.length>0&&(w=Math.max(...E.map(([S])=>typeof S=="number"?S:0))+1)}else{let E=`${c}_`;for(let b of Object.keys(this.ctx.state.env))b.startsWith(E)&&!b.includes("__")&&delete this.ctx.state.env[b]}for(let E=0;E<g.length;E++)this.ctx.state.env[`${c}_${w+E}`]=g[E];l.append||(this.ctx.state.env[`${c}__length`]=String(g.length));continue}let u=l.value?await le(this.ctx,l.value):"";if(c.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[\]$/))return _("",`bash: ${c}: bad array subscript
732
- `,1);let p=c.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[(.+)\]$/);if(p){let m=p[1],g=p[2],w=ut(this.ctx,m);if(w)return w;let E=this.ctx.state.associativeArrays?.has(m),b;if(E){let I;if(g.startsWith("'")&&g.endsWith("'"))I=g.slice(1,-1);else if(g.startsWith('"')&&g.endsWith('"')){let D=g.slice(1,-1),$=new Se().parseWordFromString(D,!0,!1);I=await le(this.ctx,$)}else if(g.includes("$")){let v=new Se().parseWordFromString(g,!1,!1);I=await le(this.ctx,v)}else I=g;b=`${m}_${I}`}else{let I;if(/^-?\d+$/.test(g))I=Number.parseInt(g,10);else{try{let D=new Se,v=Ee(D,g);I=ee(this.ctx,v.expression)}catch{let D=this.ctx.state.env[g];I=D?Number.parseInt(D,10):0}Number.isNaN(I)&&(I=0)}if(I<0){let D=be(this.ctx,m);if(D.length===0)return _("",`bash: ${m}[${g}]: bad array subscript
733
- `,1);if(I=Math.max(...D.map(([$])=>typeof $=="number"?$:0))+1+I,I<0)return _("",`bash: ${m}[${g}]: bad array subscript
734
- `,1)}b=`${m}_${I}`}let S=l.append?(this.ctx.state.env[b]||"")+u:u;e.name?(n[b]=this.ctx.state.env[b],this.ctx.state.env[b]=S):this.ctx.state.env[b]=S;continue}let d=ut(this.ctx,c);if(d)return d;let h=l.append?(this.ctx.state.env[c]||"")+u:u;e.name?(n[c]=this.ctx.state.env[c],this.ctx.state.env[c]=h):this.ctx.state.env[c]=h}if(!e.name)return _("","",this.ctx.state.lastExitCode);for(let l of e.redirections){if((l.operator==="<<"||l.operator==="<<-")&&l.target.type==="HereDoc"){let c=l.target,u=await le(this.ctx,c.content);c.stripTabs&&(u=u.split(`
730
+ `,i=1,n="";break}}catch{}await t.fs.appendFile(l,n+s),n="",s="";break}}}return M(n,s,i)}var Br=class{ctx;constructor(e,r){this.ctx={state:r,fs:e.fs,commands:e.commands,limits:e.limits,execFn:e.exec,executeScript:this.executeScript.bind(this),executeStatement:this.executeStatement.bind(this),executeCommand:this.executeCommand.bind(this),fetch:e.fetch,sleep:e.sleep,trace:e.trace}}async executeScript(e){let r="",n="",s=0;for(let i of e.statements)try{let o=await this.executeStatement(i);r+=o.stdout,n+=o.stderr,s=o.exitCode,this.ctx.state.lastExitCode=s,this.ctx.state.env["?"]=String(s)}catch(o){if(o instanceof se)throw o.prependOutput(r,n),o;if(o instanceof z)throw o;if(o instanceof st)return r+=o.stdout,n+=o.stderr,s=o.exitCode,this.ctx.state.lastExitCode=s,this.ctx.state.env["?"]=String(s),{stdout:r,stderr:n,exitCode:s,env:{...this.ctx.state.env}};if(o instanceof Qe)return r+=o.stdout,n+=o.stderr,s=1,this.ctx.state.lastExitCode=s,this.ctx.state.env["?"]=String(s),{stdout:r,stderr:n,exitCode:s,env:{...this.ctx.state.env}};if(o instanceof lt)return r+=o.stdout,n+=o.stderr,s=1,this.ctx.state.lastExitCode=s,this.ctx.state.env["?"]=String(s),{stdout:r,stderr:n,exitCode:s,env:{...this.ctx.state.env}};if(o instanceof $e||o instanceof Me){if(this.ctx.state.loopDepth>0)throw o.prependOutput(r,n),o;r+=o.stdout,n+=o.stderr;continue}throw o instanceof Re&&o.prependOutput(r,n),o}return{stdout:r,stderr:n,exitCode:s,env:{...this.ctx.state.env}}}async executeStatement(e){this.ctx.state.commandCount++,this.ctx.state.commandCount>this.ctx.limits.maxCommandCount&&ht(`too many commands executed (>${this.ctx.limits.maxCommandCount}), increase executionLimits.maxCommandCount`,"commands");let r="",n="",s=0,i=-1,o=!1;for(let a=0;a<e.pipelines.length;a++){let l=e.pipelines[a],c=a>0?e.operators[a-1]:null;if(c==="&&"&&s!==0||c==="||"&&s===0)continue;let u=await this.executePipeline(l);r+=u.stdout,n+=u.stderr,s=u.exitCode,i=a,o=l.negated,this.ctx.state.lastExitCode=s,this.ctx.state.env["?"]=String(s)}if(this.ctx.state.options.errexit&&s!==0&&i===e.pipelines.length-1&&!o&&!this.ctx.state.inCondition)throw new st(s,r,n);return M(r,n,s)}async executePipeline(e){let r="",n=Z,s=0,i=[];for(let o=0;o<e.commands.length;o++){let a=e.commands[o],l=o===e.commands.length-1,c;try{c=await this.executeCommand(a,r)}catch(u){if(u instanceof lt)c={stdout:u.stdout,stderr:u.stderr,exitCode:1};else if(u instanceof se&&e.commands.length>1)c={stdout:u.stdout,stderr:u.stderr,exitCode:u.exitCode};else throw u}i.push(c.exitCode),c.exitCode!==0&&(s=c.exitCode),l?n=c:(r=c.stdout,n={stdout:"",stderr:c.stderr,exitCode:c.exitCode})}for(let o of Object.keys(this.ctx.state.env))o.startsWith("PIPESTATUS_")&&delete this.ctx.state.env[o];for(let o=0;o<i.length;o++)this.ctx.state.env[`PIPESTATUS_${o}`]=String(i[o]);return this.ctx.state.env.PIPESTATUS__length=String(i.length),this.ctx.state.options.pipefail&&s!==0&&(n={...n,exitCode:s}),e.negated&&(n={...n,exitCode:n.exitCode===0?1:0}),n}async executeCommand(e,r){switch(e.type){case"SimpleCommand":return this.executeSimpleCommand(e,r);case"If":return ad(this.ctx,e);case"For":return ld(this.ctx,e);case"CStyleFor":return cd(this.ctx,e);case"While":return ud(this.ctx,e,r);case"Until":return fd(this.ctx,e);case"Case":return dd(this.ctx,e);case"Subshell":return this.executeSubshell(e,r);case"Group":return this.executeGroup(e,r);case"FunctionDef":return pd(this.ctx,e);case"ArithmeticCommand":return this.executeArithmeticCommand(e);case"ConditionalCommand":return this.executeConditionalCommand(e);default:return Z}}async executeSimpleCommand(e,r){try{return await this.executeSimpleCommandInner(e,r)}catch(n){if(n instanceof be)return U(n.stderr);throw n}}async executeSimpleCommandInner(e,r){e.line!==void 0&&(this.ctx.state.currentLine=e.line),this.ctx.state.expansionStderr="";let n={};for(let l of e.assignments){let c=l.name;if(l.array){if(/\[.+\]$/.test(c))return M("",`bash: ${c}: cannot assign list to array member
731
+ `,1);let m=Et(this.ctx,c);if(m)return m;let g=[];for(let E of l.array){let b=await Mr(this.ctx,E);g.push(...b.values)}let w=0;if(l.append){let E=ke(this.ctx,c);E.length>0&&(w=Math.max(...E.map(([S])=>typeof S=="number"?S:0))+1)}else{let E=`${c}_`;for(let b of Object.keys(this.ctx.state.env))b.startsWith(E)&&!b.includes("__")&&delete this.ctx.state.env[b]}for(let E=0;E<g.length;E++)this.ctx.state.env[`${c}_${w+E}`]=g[E];l.append||(this.ctx.state.env[`${c}__length`]=String(g.length));continue}let u=l.value?await ae(this.ctx,l.value):"";if(c.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[\]$/))return M("",`bash: ${c}: bad array subscript
732
+ `,1);let d=c.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[(.+)\]$/);if(d){let m=d[1],g=d[2],w=Et(this.ctx,m);if(w)return w;let E=this.ctx.state.associativeArrays?.has(m),b;if(E){let I;if(g.startsWith("'")&&g.endsWith("'"))I=g.slice(1,-1);else if(g.startsWith('"')&&g.endsWith('"')){let F=g.slice(1,-1),j=new ve().parseWordFromString(F,!0,!1);I=await ae(this.ctx,j)}else if(g.includes("$")){let W=new ve().parseWordFromString(g,!1,!1);I=await ae(this.ctx,W)}else I=g;b=`${m}_${I}`}else{let I;if(/^-?\d+$/.test(g))I=Number.parseInt(g,10);else{try{let F=new ve,W=Ae(F,g);I=X(this.ctx,W.expression)}catch{let F=this.ctx.state.env[g];I=F?Number.parseInt(F,10):0}Number.isNaN(I)&&(I=0)}if(I<0){let F=ke(this.ctx,m);if(F.length===0)return M("",`bash: ${m}[${g}]: bad array subscript
733
+ `,1);if(I=Math.max(...F.map(([j])=>typeof j=="number"?j:0))+1+I,I<0)return M("",`bash: ${m}[${g}]: bad array subscript
734
+ `,1)}b=`${m}_${I}`}let S=l.append?(this.ctx.state.env[b]||"")+u:u;e.name?(n[b]=this.ctx.state.env[b],this.ctx.state.env[b]=S):this.ctx.state.env[b]=S;continue}let p=Et(this.ctx,c);if(p)return p;let h=l.append?(this.ctx.state.env[c]||"")+u:u;e.name?(n[c]=this.ctx.state.env[c],this.ctx.state.env[c]=h):this.ctx.state.env[c]=h}if(!e.name)return M("","",this.ctx.state.lastExitCode);for(let l of e.redirections){if((l.operator==="<<"||l.operator==="<<-")&&l.target.type==="HereDoc"){let c=l.target,u=await ae(this.ctx,c.content);c.stripTabs&&(u=u.split(`
735
735
  `).map(f=>f.replace(/^\t+/,"")).join(`
736
- `)),r=u;continue}if(l.operator==="<<<"&&l.target.type==="Word"){r=`${await le(this.ctx,l.target)}
737
- `;continue}if(l.operator==="<"&&l.target.type==="Word")try{let c=await le(this.ctx,l.target),u=this.ctx.fs.resolvePath(this.ctx.state.cwd,c);r=await this.ctx.fs.readFile(u)}catch{let c=await le(this.ctx,l.target);for(let[u,f]of Object.entries(n))f===void 0?delete this.ctx.state.env[u]:this.ctx.state.env[u]=f;return U(`bash: ${c}: No such file or directory
738
- `)}}let s=await le(this.ctx,e.name),i=[],o=[];for(let l of e.args){let c=await br(this.ctx,l);for(let u of c.values)i.push(u),o.push(c.quoted)}if(!s){if(e.name.parts.every(c=>c.type==="CommandSubstitution"||c.type==="ParameterExpansion"||c.type==="ArithmeticExpansion")){if(i.length>0){let c=i.shift();return o.shift(),await this.runCommand(c,i,o,r)}return _("","",this.ctx.state.lastExitCode)}return U(`bash: : command not found
739
- `,127)}let a=await this.runCommand(s,i,o,r);a=await Vf(this.ctx,a,e.redirections),this.ctx.state.lastArg=i.length>0?i[i.length-1]:s;for(let[l,c]of Object.entries(n))c===void 0?delete this.ctx.state.env[l]:this.ctx.state.env[l]=c;return this.ctx.state.expansionStderr&&(a={...a,stderr:this.ctx.state.expansionStderr+a.stderr},this.ctx.state.expansionStderr=""),a}async runCommand(e,r,n,s,i=!1){if(e==="cd")return await ai(this.ctx,r);if(e==="export")return hi(this.ctx,r);if(e==="unset")return Ai(this.ctx,r);if(e==="exit")return di(this.ctx,r);if(e==="local")return gi(this.ctx,r);if(e==="set")return bi(this.ctx,r);if(e==="break")return oi(this.ctx,r);if(e==="continue")return li(this.ctx,r);if(e==="return")return wi(this.ctx,r);if(e==="eval")return pi(this.ctx,r);if(e==="shift")return Si(this.ctx,r);if(e==="source"||e===".")return Ci(this.ctx,r);if(e==="read")return xi(this.ctx,r,s);if(e==="mapfile"||e==="readarray")return yi(this.ctx,r,s);if(e==="declare"||e==="typeset")return ui(this.ctx,r);if(e==="readonly")return fi(this.ctx,r);if(!i){let u=this.ctx.state.functions.get(e);if(u)return qf(this.ctx,u,r)}if(e===":"||e==="true")return Q;if(e==="false")return we(!1);if(e==="let")return mi(this.ctx,r);if(e==="command"){if(r.length===0)return Q;let u=r;for(;u.length>0&&u[0].startsWith("-");)u=u.slice(1);if(u.length===0)return Q;let[f,...p]=u;return this.runCommand(f,p,[],s,!0)}if(e==="builtin"){if(r.length===0)return Q;let[u,...f]=r;return this.runCommand(u,f,[],s)}if(e==="shopt")return Q;if(e==="exec"){if(r.length===0)return Q;let[u,...f]=r;return this.runCommand(u,f,[],s)}if(e==="wait")return Q;if(e==="type")return this.handleType(r);if(e==="[["){let u=r.lastIndexOf("]]");if(u!==-1){let f=r.slice(0,u);return er(this.ctx,f)}return U("bash: [[: missing `]]'\n",2)}if(e==="["||e==="test"){let u=r;if(e==="["){if(r[r.length-1]!=="]")return U("[: missing `]'\n",2);u=r.slice(0,-1)}return er(this.ctx,u)}let o=await this.resolveCommand(e);if(!o)return Du(e)?U(`bash: ${e}: command not available in browser environments. Exclude '${e}' from your commands or use the Node.js bundle.
736
+ `)),r=u;continue}if(l.operator==="<<<"&&l.target.type==="Word"){r=`${await ae(this.ctx,l.target)}
737
+ `;continue}if(l.operator==="<"&&l.target.type==="Word")try{let c=await ae(this.ctx,l.target),u=this.ctx.fs.resolvePath(this.ctx.state.cwd,c);r=await this.ctx.fs.readFile(u)}catch{let c=await ae(this.ctx,l.target);for(let[u,f]of Object.entries(n))f===void 0?delete this.ctx.state.env[u]:this.ctx.state.env[u]=f;return U(`bash: ${c}: No such file or directory
738
+ `)}}let s=await ae(this.ctx,e.name),i=[],o=[];for(let l of e.args){let c=await Mr(this.ctx,l);for(let u of c.values)i.push(u),o.push(c.quoted)}if(!s){if(e.name.parts.every(c=>c.type==="CommandSubstitution"||c.type==="ParameterExpansion"||c.type==="ArithmeticExpansion")){if(i.length>0){let c=i.shift();return o.shift(),await this.runCommand(c,i,o,r)}return M("","",this.ctx.state.lastExitCode)}return U(`bash: : command not found
739
+ `,127)}let a=await this.runCommand(s,i,o,r);a=await md(this.ctx,a,e.redirections),this.ctx.state.lastArg=i.length>0?i[i.length-1]:s;for(let[l,c]of Object.entries(n))c===void 0?delete this.ctx.state.env[l]:this.ctx.state.env[l]=c;return this.ctx.state.expansionStderr&&(a={...a,stderr:this.ctx.state.expansionStderr+a.stderr},this.ctx.state.expansionStderr=""),a}async runCommand(e,r,n,s,i=!1){if(e==="cd")return await Ni(this.ctx,r);if(e==="export")return Ti(this.ctx,r);if(e==="unset")return ji(this.ctx,r);if(e==="exit")return Fi(this.ctx,r);if(e==="local")return Di(this.ctx,r);if(e==="set")return Wi(this.ctx,r);if(e==="break")return ki(this.ctx,r);if(e==="continue")return Ii(this.ctx,r);if(e==="return")return _i(this.ctx,r);if(e==="eval")return Pi(this.ctx,r);if(e==="shift")return Ui(this.ctx,r);if(e==="source"||e===".")return zi(this.ctx,r);if(e==="read")return Mi(this.ctx,r,s);if(e==="mapfile"||e==="readarray")return Li(this.ctx,r,s);if(e==="declare"||e==="typeset")return $i(this.ctx,r);if(e==="readonly")return Ri(this.ctx,r);if(!i){let u=this.ctx.state.functions.get(e);if(u)return hd(this.ctx,u,r)}if(e===":"||e==="true")return Z;if(e==="false")return Se(!1);if(e==="let")return Oi(this.ctx,r);if(e==="command"){if(r.length===0)return Z;let u=r;for(;u.length>0&&u[0].startsWith("-");)u=u.slice(1);if(u.length===0)return Z;let[f,...d]=u;return this.runCommand(f,d,[],s,!0)}if(e==="builtin"){if(r.length===0)return Z;let[u,...f]=r;return this.runCommand(u,f,[],s)}if(e==="shopt")return Z;if(e==="exec"){if(r.length===0)return Z;let[u,...f]=r;return this.runCommand(u,f,[],s)}if(e==="wait")return Z;if(e==="type")return this.handleType(r);if(e==="[["){let u=r.lastIndexOf("]]");if(u!==-1){let f=r.slice(0,u);return dr(this.ctx,f)}return U("bash: [[: missing `]]'\n",2)}if(e==="["||e==="test"){let u=r;if(e==="["){if(r[r.length-1]!=="]")return U("[: missing `]'\n",2);u=r.slice(0,-1)}return dr(this.ctx,u)}let o=await this.resolveCommand(e);if(!o)return nf(e)?U(`bash: ${e}: command not available in browser environments. Exclude '${e}' from your commands or use the Node.js bundle.
740
740
  `,127):U(`bash: ${e}: command not found
741
- `,127);let{cmd:a,path:l}=o,c={fs:this.ctx.fs,cwd:this.ctx.state.cwd,env:this.ctx.state.env,stdin:s,limits:this.ctx.limits,exec:this.ctx.execFn,fetch:this.ctx.fetch,getRegisteredCommands:()=>Array.from(this.ctx.commands.keys()),sleep:this.ctx.sleep};try{return await a.execute(r,c)}catch(u){return U(`${e}: ${de(u)}
741
+ `,127);let{cmd:a,path:l}=o,c={fs:this.ctx.fs,cwd:this.ctx.state.cwd,env:this.ctx.state.env,stdin:s,limits:this.ctx.limits,exec:this.ctx.execFn,fetch:this.ctx.fetch,getRegisteredCommands:()=>Array.from(this.ctx.commands.keys()),sleep:this.ctx.sleep,trace:this.ctx.trace};try{return await a.execute(r,c)}catch(u){return U(`${e}: ${he(u)}
742
742
  `)}}async resolveCommand(e){if(e.includes("/")){let i=this.ctx.fs.resolvePath(this.ctx.state.cwd,e);if(!await this.ctx.fs.exists(i))return null;let o=i.split("/").pop()||e,a=this.ctx.commands.get(o);return a?{cmd:a,path:i}:null}let n=(this.ctx.state.env.PATH||"/bin:/usr/bin").split(":");for(let i of n){if(!i)continue;let o=`${i}/${e}`;if(await this.ctx.fs.exists(o)){let a=this.ctx.commands.get(e);if(a)return{cmd:a,path:o}}}if(!await this.ctx.fs.exists("/bin")){let i=this.ctx.commands.get(e);if(i)return{cmd:i,path:`/bin/${e}`}}return null}async findCommandInPath(e){let r=[],s=(this.ctx.state.env.PATH||"/bin:/usr/bin").split(":");for(let i of s){if(!i)continue;let o=`${i}/${e}`;await this.ctx.fs.exists(o)&&r.push(o)}return r}handleType(e){let r=new Set(["if","then","else","elif","fi","case","esac","for","select","while","until","do","done","in","function","{","}","time","[[","]]","!"]),n=new Set(["cd","export","unset","exit","local","set","break","continue","return","eval","shift","source",".","read","declare","typeset","readonly",":","true","false","let","command","builtin","shopt","exec","wait","type","[","test"]),s="",i="",o=0;for(let a of e)r.has(a)?s+=`${a} is a shell keyword
743
743
  `:n.has(a)?s+=`${a} is a shell builtin
744
744
  `:this.ctx.state.functions.has(a)?s+=`${a} is a function
745
745
  `:this.ctx.commands.has(a)?s+=`${a} is /bin/${a}
746
746
  `:(i+=`bash: type: ${a}: not found
747
- `,o=1);return _(s,i,o)}async executeSubshell(e,r=""){let n={...this.ctx.state.env},s=this.ctx.state.cwd,i=this.ctx.state.loopDepth,o=this.ctx.state.parentHasLoopContext;this.ctx.state.parentHasLoopContext=i>0,this.ctx.state.loopDepth=0;let a=this.ctx.state.groupStdin;r&&(this.ctx.state.groupStdin=r);let l="",c="",u=0;try{for(let f of e.body){let p=await this.executeStatement(f);l+=p.stdout,c+=p.stderr,u=p.exitCode}}catch(f){if(this.ctx.state.env=n,this.ctx.state.cwd=s,this.ctx.state.loopDepth=i,this.ctx.state.parentHasLoopContext=o,this.ctx.state.groupStdin=a,f instanceof j)throw f;if(f instanceof Ze)return l+=f.stdout,c+=f.stderr,_(l,c,0);if(f instanceof Ae||f instanceof Re)return l+=f.stdout,c+=f.stderr,_(l,c,0);if(f instanceof ie)return l+=f.stdout,c+=f.stderr,_(l,c,f.exitCode);if(f instanceof ke)return l+=f.stdout,c+=f.stderr,_(l,c,f.exitCode);if(f instanceof Ke)throw f.stdout=l+f.stdout,f.stderr=c+f.stderr,f;return _(l,`${c}${de(f)}
748
- `,1)}return this.ctx.state.env=n,this.ctx.state.cwd=s,this.ctx.state.loopDepth=i,this.ctx.state.parentHasLoopContext=o,this.ctx.state.groupStdin=a,_(l,c,u)}async executeGroup(e,r=""){let n="",s="",i=0,o=this.ctx.state.groupStdin;r&&(this.ctx.state.groupStdin=r);try{for(let a of e.body){let l=await this.executeStatement(a);n+=l.stdout,s+=l.stderr,i=l.exitCode}}catch(a){if(this.ctx.state.groupStdin=o,a instanceof j)throw a;if(Dr(a)||a instanceof Ke||a instanceof ie)throw a.prependOutput(n,s),a;return _(n,`${s}${de(a)}
749
- `,1)}return this.ctx.state.groupStdin=o,_(n,s,i)}async executeArithmeticCommand(e){try{let r=await te(this.ctx,e.expression.expression);return we(r!==0)}catch(r){return U(`bash: arithmetic expression: ${r.message}
750
- `)}}async executeConditionalCommand(e){try{let r=await ft(this.ctx,e.expression);return we(r)}catch(r){return U(`bash: conditional expression: ${r.message}
751
- `,2)}}};var pt={maxCallDepth:100,maxCommandCount:1e4,maxLoopIterations:1e4,maxAwkIterations:1e4,maxSedIterations:1e4,maxJqIterations:1e4,maxSqliteTimeoutMs:5e3};function Kf(t){return t?{maxCallDepth:t.maxCallDepth??pt.maxCallDepth,maxCommandCount:t.maxCommandCount??pt.maxCommandCount,maxLoopIterations:t.maxLoopIterations??pt.maxLoopIterations,maxAwkIterations:t.maxAwkIterations??pt.maxAwkIterations,maxSedIterations:t.maxSedIterations??pt.maxSedIterations,maxJqIterations:t.maxJqIterations??pt.maxJqIterations,maxSqliteTimeoutMs:t.maxSqliteTimeoutMs??pt.maxSqliteTimeoutMs}:{...pt}}function Zf(t){try{let e=new URL(t);return{origin:e.origin,pathname:e.pathname,href:e.href}}catch{return null}}function ex(t){let e=Zf(t);return e?{origin:e.origin,pathPrefix:e.pathname}:null}function tx(t,e){let r=Zf(t);if(!r)return!1;let n=ex(e);return!n||r.origin!==n.origin?!1:n.pathPrefix==="/"||n.pathPrefix===""?!0:r.pathname.startsWith(n.pathPrefix)}function $i(t,e){return!e||e.length===0?!1:e.some(r=>tx(t,r))}var tr=class extends Error{constructor(e){super(`Network access denied: URL not in allow-list: ${e}`),this.name="NetworkAccessDeniedError"}},rr=class extends Error{constructor(e){super(`Too many redirects (max: ${e})`),this.name="TooManyRedirectsError"}},nr=class extends Error{constructor(e){super(`Redirect target not in allow-list: ${e}`),this.name="RedirectNotAllowedError"}},Dn=class extends Error{constructor(e,r){super(`HTTP method '${e}' not allowed. Allowed methods: ${r.join(", ")}`),this.name="MethodNotAllowedError"}};var rx=20,nx=3e4,sx=["GET","HEAD"],ix=new Set(["GET","HEAD","OPTIONS"]),ox=new Set([301,302,303,307,308]);function Ri(t){let e=t.maxRedirects??rx,r=t.timeoutMs??nx,n=t.dangerouslyAllowFullInternetAccess?["GET","HEAD","POST","PUT","DELETE","PATCH","OPTIONS"]:t.allowedMethods??sx;function s(a){if(!t.dangerouslyAllowFullInternetAccess&&!$i(a,t.allowedUrlPrefixes??[]))throw new tr(a)}function i(a){if(t.dangerouslyAllowFullInternetAccess)return;let l=a.toUpperCase();if(!n.includes(l))throw new Dn(l,n)}async function o(a,l={}){let c=l.method?.toUpperCase()??"GET";s(a),i(c);let u=a,f=0,p=l.followRedirects??!0,d=l.timeoutMs!==void 0?Math.min(l.timeoutMs,r):r;for(;;){let h=new AbortController,m=setTimeout(()=>h.abort(),d);try{let g={method:c,headers:l.headers,signal:h.signal,redirect:"manual"};l.body&&!ix.has(c)&&(g.body=l.body);let w=await fetch(u,g);if(ox.has(w.status)&&p){let E=w.headers.get("location");if(!E)return await Qf(w,u);let b=new URL(E,u).href;if(!t.dangerouslyAllowFullInternetAccess&&!$i(b,t.allowedUrlPrefixes??[]))throw new nr(b);if(f++,f>e)throw new rr(e);u=b;continue}return await Qf(w,u)}finally{clearTimeout(m)}}}return o}async function Qf(t,e){let r={};return t.headers.forEach((n,s)=>{r[s.toLowerCase()]=n}),{status:t.status,statusText:t.statusText,headers:r,body:await t.text(),url:e}}var Pi=class{fs;commands=new Map;useDefaultLayout=!1;limits;secureFetch;sleepFn;logger;state;constructor(e={}){let r=e.fs??new It(e.files);this.fs=r,this.useDefaultLayout=!e.cwd&&!e.files;let n=e.cwd||(this.useDefaultLayout?"/home/user":"/"),s={HOME:this.useDefaultLayout?"/home/user":"/",PATH:"/bin:/usr/bin",IFS:`
752
- `,OSTYPE:"linux-gnu",MACHTYPE:"x86_64-pc-linux-gnu",HOSTTYPE:"x86_64",PWD:n,OLDPWD:n,...e.env};if(this.limits=Kf({...e.executionLimits,...e.maxCallDepth!==void 0&&{maxCallDepth:e.maxCallDepth},...e.maxCommandCount!==void 0&&{maxCommandCount:e.maxCommandCount},...e.maxLoopIterations!==void 0&&{maxLoopIterations:e.maxLoopIterations}}),e.network&&(this.secureFetch=Ri(e.network)),this.sleepFn=e.sleep,this.logger=e.logger,this.state={env:s,cwd:n,previousDir:"/home/user",functions:new Map,localScopes:[],callDepth:0,sourceDepth:0,commandCount:0,lastExitCode:0,lastArg:"",startTime:Date.now(),lastBackgroundPid:0,currentLine:1,options:{errexit:!1,pipefail:!1,nounset:!1,xtrace:!1,verbose:!1},inCondition:!1,loopDepth:0},Tu(r,this.useDefaultLayout),n!=="/"&&r instanceof It)try{r.mkdirSync(n,{recursive:!0})}catch{}for(let i of Nu(e.commands))this.registerCommand(i);if(e.network)for(let i of Iu())this.registerCommand(i);if(e.customCommands)for(let i of e.customCommands)vu(i)?this.registerCommand($u(i)):this.registerCommand(i)}registerCommand(e){this.commands.set(e.name,e);let r=this.fs;if(typeof r.writeFileSync=="function")try{r.writeFileSync(`/bin/${e.name}`,`#!/bin/bash
747
+ `,o=1);return M(s,i,o)}async executeSubshell(e,r=""){let n={...this.ctx.state.env},s=this.ctx.state.cwd,i=this.ctx.state.loopDepth,o=this.ctx.state.parentHasLoopContext;this.ctx.state.parentHasLoopContext=i>0,this.ctx.state.loopDepth=0;let a=this.ctx.state.groupStdin;r&&(this.ctx.state.groupStdin=r);let l="",c="",u=0;try{for(let f of e.body){let d=await this.executeStatement(f);l+=d.stdout,c+=d.stderr,u=d.exitCode}}catch(f){if(this.ctx.state.env=n,this.ctx.state.cwd=s,this.ctx.state.loopDepth=i,this.ctx.state.parentHasLoopContext=o,this.ctx.state.groupStdin=a,f instanceof z)throw f;if(f instanceof it)return l+=f.stdout,c+=f.stderr,M(l,c,0);if(f instanceof $e||f instanceof Me)return l+=f.stdout,c+=f.stderr,M(l,c,0);if(f instanceof se)return l+=f.stdout,c+=f.stderr,M(l,c,f.exitCode);if(f instanceof Re)return l+=f.stdout,c+=f.stderr,M(l,c,f.exitCode);if(f instanceof st)throw f.stdout=l+f.stdout,f.stderr=c+f.stderr,f;return M(l,`${c}${he(f)}
748
+ `,1)}return this.ctx.state.env=n,this.ctx.state.cwd=s,this.ctx.state.loopDepth=i,this.ctx.state.parentHasLoopContext=o,this.ctx.state.groupStdin=a,M(l,c,u)}async executeGroup(e,r=""){let n="",s="",i=0,o=this.ctx.state.groupStdin;r&&(this.ctx.state.groupStdin=r);try{for(let a of e.body){let l=await this.executeStatement(a);n+=l.stdout,s+=l.stderr,i=l.exitCode}}catch(a){if(this.ctx.state.groupStdin=o,a instanceof z)throw a;if(Jr(a)||a instanceof st||a instanceof se)throw a.prependOutput(n,s),a;return M(n,`${s}${he(a)}
749
+ `,1)}return this.ctx.state.groupStdin=o,M(n,s,i)}async executeArithmeticCommand(e){try{let r=await J(this.ctx,e.expression.expression);return Se(r!==0)}catch(r){return U(`bash: arithmetic expression: ${r.message}
750
+ `)}}async executeConditionalCommand(e){try{let r=await bt(this.ctx,e.expression);return Se(r)}catch(r){return U(`bash: conditional expression: ${r.message}
751
+ `,2)}}};var St={maxCallDepth:100,maxCommandCount:1e4,maxLoopIterations:1e4,maxAwkIterations:1e4,maxSedIterations:1e4,maxJqIterations:1e4,maxSqliteTimeoutMs:5e3};function gd(t){return t?{maxCallDepth:t.maxCallDepth??St.maxCallDepth,maxCommandCount:t.maxCommandCount??St.maxCommandCount,maxLoopIterations:t.maxLoopIterations??St.maxLoopIterations,maxAwkIterations:t.maxAwkIterations??St.maxAwkIterations,maxSedIterations:t.maxSedIterations??St.maxSedIterations,maxJqIterations:t.maxJqIterations??St.maxJqIterations,maxSqliteTimeoutMs:t.maxSqliteTimeoutMs??St.maxSqliteTimeoutMs}:{...St}}function yd(t){try{let e=new URL(t);return{origin:e.origin,pathname:e.pathname,href:e.href}}catch{return null}}function Ix(t){let e=yd(t);return e?{origin:e.origin,pathPrefix:e.pathname}:null}function vx(t,e){let r=yd(t);if(!r)return!1;let n=Ix(e);return!n||r.origin!==n.origin?!1:n.pathPrefix==="/"||n.pathPrefix===""?!0:r.pathname.startsWith(n.pathPrefix)}function Ki(t,e){return!e||e.length===0?!1:e.some(r=>vx(t,r))}var pr=class extends Error{constructor(e){super(`Network access denied: URL not in allow-list: ${e}`),this.name="NetworkAccessDeniedError"}},hr=class extends Error{constructor(e){super(`Too many redirects (max: ${e})`),this.name="TooManyRedirectsError"}},mr=class extends Error{constructor(e){super(`Redirect target not in allow-list: ${e}`),this.name="RedirectNotAllowedError"}},Jn=class extends Error{constructor(e,r){super(`HTTP method '${e}' not allowed. Allowed methods: ${r.join(", ")}`),this.name="MethodNotAllowedError"}};var $x=20,Rx=3e4,Px=["GET","HEAD"],Fx=new Set(["GET","HEAD","OPTIONS"]),Tx=new Set([301,302,303,307,308]);function Zi(t){let e=t.maxRedirects??$x,r=t.timeoutMs??Rx,n=t.dangerouslyAllowFullInternetAccess?["GET","HEAD","POST","PUT","DELETE","PATCH","OPTIONS"]:t.allowedMethods??Px;function s(a){if(!t.dangerouslyAllowFullInternetAccess&&!Ki(a,t.allowedUrlPrefixes??[]))throw new pr(a)}function i(a){if(t.dangerouslyAllowFullInternetAccess)return;let l=a.toUpperCase();if(!n.includes(l))throw new Jn(l,n)}async function o(a,l={}){let c=l.method?.toUpperCase()??"GET";s(a),i(c);let u=a,f=0,d=l.followRedirects??!0,p=l.timeoutMs!==void 0?Math.min(l.timeoutMs,r):r;for(;;){let h=new AbortController,m=setTimeout(()=>h.abort(),p);try{let g={method:c,headers:l.headers,signal:h.signal,redirect:"manual"};l.body&&!Fx.has(c)&&(g.body=l.body);let w=await fetch(u,g);if(Tx.has(w.status)&&d){let E=w.headers.get("location");if(!E)return await xd(w,u);let b=new URL(E,u).href;if(!t.dangerouslyAllowFullInternetAccess&&!Ki(b,t.allowedUrlPrefixes??[]))throw new mr(b);if(f++,f>e)throw new hr(e);u=b;continue}return await xd(w,u)}finally{clearTimeout(m)}}}return o}async function xd(t,e){let r={};return t.headers.forEach((n,s)=>{r[s.toLowerCase()]=n}),{status:t.status,statusText:t.statusText,headers:r,body:await t.text(),url:e}}var Qi=class{fs;commands=new Map;useDefaultLayout=!1;limits;secureFetch;sleepFn;traceFn;logger;state;constructor(e={}){let r=e.fs??new _t(e.files);this.fs=r,this.useDefaultLayout=!e.cwd&&!e.files;let n=e.cwd||(this.useDefaultLayout?"/home/user":"/"),s={HOME:this.useDefaultLayout?"/home/user":"/",PATH:"/bin:/usr/bin",IFS:`
752
+ `,OSTYPE:"linux-gnu",MACHTYPE:"x86_64-pc-linux-gnu",HOSTTYPE:"x86_64",PWD:n,OLDPWD:n,...e.env};if(this.limits=gd({...e.executionLimits,...e.maxCallDepth!==void 0&&{maxCallDepth:e.maxCallDepth},...e.maxCommandCount!==void 0&&{maxCommandCount:e.maxCommandCount},...e.maxLoopIterations!==void 0&&{maxLoopIterations:e.maxLoopIterations}}),e.network&&(this.secureFetch=Zi(e.network)),this.sleepFn=e.sleep,this.traceFn=e.trace,this.logger=e.logger,this.state={env:s,cwd:n,previousDir:"/home/user",functions:new Map,localScopes:[],callDepth:0,sourceDepth:0,commandCount:0,lastExitCode:0,lastArg:"",startTime:Date.now(),lastBackgroundPid:0,currentLine:1,options:{errexit:!1,pipefail:!1,nounset:!1,xtrace:!1,verbose:!1},inCondition:!1,loopDepth:0},rf(r,this.useDefaultLayout),n!=="/"&&r instanceof _t)try{r.mkdirSync(n,{recursive:!0})}catch{}for(let i of Ku(e.commands))this.registerCommand(i);if(e.network)for(let i of Zu())this.registerCommand(i);if(e.customCommands)for(let i of e.customCommands)Qu(i)?this.registerCommand(Xu(i)):this.registerCommand(i)}registerCommand(e){this.commands.set(e.name,e);let r=this.fs;if(typeof r.writeFileSync=="function")try{r.writeFileSync(`/bin/${e.name}`,`#!/bin/bash
753
753
  # Built-in command: ${e.name}
754
754
  `)}catch{}}logResult(e){return this.logger&&(e.stdout&&this.logger.debug("stdout",{output:e.stdout}),e.stderr&&this.logger.info("stderr",{output:e.stderr}),this.logger.info("exit",{exitCode:e.exitCode})),e}async exec(e,r){if(this.state.callDepth===0&&(this.state.commandCount=0),this.state.commandCount++,this.state.commandCount>this.limits.maxCommandCount)return{stdout:"",stderr:`bash: maximum command count (${this.limits.maxCommandCount}) exceeded (possible infinite loop). Increase with executionLimits.maxCommandCount option.
755
755
  `,exitCode:1,env:{...this.state.env,...r?.env}};if(!e.trim())return{stdout:"",stderr:"",exitCode:0,env:{...this.state.env,...r?.env}};this.logger?.info("exec",{command:e});let n=r?.cwd??this.state.cwd,s={...this.state,env:{...this.state.env,...r?.env,...r?.cwd?{PWD:r.cwd}:{}},cwd:n,functions:new Map(this.state.functions),localScopes:[...this.state.localScopes],options:{...this.state.options}},i=e;r?.rawScript||(i=e.split(`
756
756
  `).map(a=>a.trimStart()).join(`
757
- `));try{let o=lt(i),a={fs:this.fs,commands:this.commands,limits:this.limits,exec:this.exec.bind(this),fetch:this.secureFetch,sleep:this.sleepFn},c=await new Cr(a,s).executeScript(o);return this.logResult(c)}catch(o){if(o instanceof ie)return this.logResult({stdout:o.stdout,stderr:o.stderr,exitCode:o.exitCode,env:{...this.state.env,...r?.env}});if(o instanceof xe)return this.logResult({stdout:o.stdout,stderr:o.stderr,exitCode:1,env:{...this.state.env,...r?.env}});if(o instanceof j)return this.logResult({stdout:o.stdout,stderr:o.stderr,exitCode:j.EXIT_CODE,env:{...this.state.env,...r?.env}});if(o.name==="ParseException")return this.logResult({stdout:"",stderr:`bash: syntax error: ${o.message}
757
+ `));try{let o=xt(i),a={fs:this.fs,commands:this.commands,limits:this.limits,exec:this.exec.bind(this),fetch:this.secureFetch,sleep:this.sleepFn,trace:this.traceFn},c=await new Br(a,s).executeScript(o);return this.logResult(c)}catch(o){if(o instanceof se)return this.logResult({stdout:o.stdout,stderr:o.stderr,exitCode:o.exitCode,env:{...this.state.env,...r?.env}});if(o instanceof be)return this.logResult({stdout:o.stdout,stderr:o.stderr,exitCode:1,env:{...this.state.env,...r?.env}});if(o instanceof z)return this.logResult({stdout:o.stdout,stderr:o.stderr,exitCode:z.EXIT_CODE,env:{...this.state.env,...r?.env}});if(o.name==="ParseException")return this.logResult({stdout:"",stderr:`bash: syntax error: ${o.message}
758
758
  `,exitCode:2,env:{...this.state.env,...r?.env}});if(o instanceof RangeError)return this.logResult({stdout:"",stderr:`bash: ${o.message}
759
- `,exitCode:1,env:{...this.state.env,...r?.env}});throw o}}async readFile(e){return this.fs.readFile(this.fs.resolvePath(this.state.cwd,e))}async writeFile(e,r){return this.fs.writeFile(this.fs.resolvePath(this.state.cwd,e),r)}getCwd(){return this.state.cwd}getEnv(){return{...this.state.env}}};export{Pi as Bash,It as InMemoryFs,tr as NetworkAccessDeniedError,nr as RedirectNotAllowedError,rr as TooManyRedirectsError,Gg as defineCommand,zg as getCommandNames,Hg as getNetworkCommandNames};
759
+ `,exitCode:1,env:{...this.state.env,...r?.env}});throw o}}async readFile(e){return this.fs.readFile(this.fs.resolvePath(this.state.cwd,e))}async writeFile(e,r){return this.fs.writeFile(this.fs.resolvePath(this.state.cwd,e),r)}getCwd(){return this.state.cwd}getEnv(){return{...this.state.env}}};export{Qi as Bash,_t as InMemoryFs,pr as NetworkAccessDeniedError,mr as RedirectNotAllowedError,hr as TooManyRedirectsError,xy as defineCommand,gy as getCommandNames,yy as getNetworkCommandNames};
760
760
  /*! Bundled license information:
761
761
 
762
762
  ieee754/index.js: