UNPKG

projen

Version:

CDK for software projects

14,897 lines 736 kB
"use strict";
var __getOwnPropNames = Object.getOwnPropertyNames;
var __commonJS = (cb, mod) => function __require() {
  return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
};

// npm/script/_dnt.polyfills.js
var require_dnt_polyfills = __commonJS({
  "npm/script/_dnt.polyfills.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    if (!Object.hasOwn) {
      Object.defineProperty(Object, "hasOwn", {
        value: function(object, property) {
          if (object == null) {
            throw new TypeError("Cannot convert undefined or null to object");
          }
          return Object.prototype.hasOwnProperty.call(Object(object), property);
        },
        configurable: true,
        enumerable: false,
        writable: true
      });
    }
    if (Promise.withResolvers === void 0) {
      Promise.withResolvers = () => {
        const out = {};
        out.promise = new Promise((resolve_, reject_) => {
          out.resolve = resolve_;
          out.reject = reject_;
        });
        return out;
      };
    }
    function findLastIndex(self, callbackfn, that) {
      const boundFunc = that === void 0 ? callbackfn : callbackfn.bind(that);
      let index = self.length - 1;
      while (index >= 0) {
        const result = boundFunc(self[index], index, self);
        if (result) {
          return index;
        }
        index--;
      }
      return -1;
    }
    function findLast(self, callbackfn, that) {
      const index = self.findLastIndex(callbackfn, that);
      return index === -1 ? void 0 : self[index];
    }
    if (!Array.prototype.findLastIndex) {
      Array.prototype.findLastIndex = function(callbackfn, that) {
        return findLastIndex(this, callbackfn, that);
      };
    }
    if (!Array.prototype.findLast) {
      Array.prototype.findLast = function(callbackfn, that) {
        return findLast(this, callbackfn, that);
      };
    }
    if (!Uint8Array.prototype.findLastIndex) {
      Uint8Array.prototype.findLastIndex = function(callbackfn, that) {
        return findLastIndex(this, callbackfn, that);
      };
    }
    if (!Uint8Array.prototype.findLast) {
      Uint8Array.prototype.findLast = function(callbackfn, that) {
        return findLast(this, callbackfn, that);
      };
    }
    var { MAX_SAFE_INTEGER } = Number;
    var iteratorSymbol = Symbol.iterator;
    var asyncIteratorSymbol = Symbol.asyncIterator;
    var IntrinsicArray = Array;
    var tooLongErrorMessage = "Input is too long and exceeded Number.MAX_SAFE_INTEGER times.";
    function isConstructor(obj) {
      if (obj != null) {
        const prox = new Proxy(obj, {
          construct() {
            return prox;
          }
        });
        try {
          new prox();
          return true;
        } catch (err) {
          return false;
        }
      } else {
        return false;
      }
    }
    async function fromAsync(items, mapfn, thisArg) {
      const itemsAreIterable = asyncIteratorSymbol in items || iteratorSymbol in items;
      if (itemsAreIterable) {
        const result = isConstructor(this) ? new this() : IntrinsicArray(0);
        let i = 0;
        for await (const v of items) {
          if (i > MAX_SAFE_INTEGER) {
            throw TypeError(tooLongErrorMessage);
          } else if (mapfn) {
            result[i] = await mapfn.call(thisArg, v, i);
          } else {
            result[i] = v;
          }
          i++;
        }
        result.length = i;
        return result;
      } else {
        const { length } = items;
        const result = isConstructor(this) ? new this(length) : IntrinsicArray(length);
        let i = 0;
        while (i < length) {
          if (i > MAX_SAFE_INTEGER) {
            throw TypeError(tooLongErrorMessage);
          }
          const v = await items[i];
          if (mapfn) {
            result[i] = await mapfn.call(thisArg, v, i);
          } else {
            result[i] = v;
          }
          i++;
        }
        result.length = i;
        return result;
      }
    }
    if (!Array.fromAsync) {
      Array.fromAsync = fromAsync;
    }
  }
});

// npm/script/_dnt.shims.js
var require_dnt_shims = __commonJS({
  "npm/script/_dnt.shims.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.dntGlobalThis = exports2.TransformStream = exports2.TextDecoderStream = exports2.WritableStream = exports2.ReadableStream = exports2.TextDecoder = void 0;
    var node_util_12 = require("node:util");
    var node_util_2 = require("node:util");
    Object.defineProperty(exports2, "TextDecoder", { enumerable: true, get: function() {
      return node_util_2.TextDecoder;
    } });
    var web_1 = require("node:stream/web");
    var web_2 = require("node:stream/web");
    Object.defineProperty(exports2, "ReadableStream", { enumerable: true, get: function() {
      return web_2.ReadableStream;
    } });
    Object.defineProperty(exports2, "WritableStream", { enumerable: true, get: function() {
      return web_2.WritableStream;
    } });
    Object.defineProperty(exports2, "TextDecoderStream", { enumerable: true, get: function() {
      return web_2.TextDecoderStream;
    } });
    Object.defineProperty(exports2, "TransformStream", { enumerable: true, get: function() {
      return web_2.TransformStream;
    } });
    var dntGlobals = {
      TextDecoder: node_util_12.TextDecoder,
      ReadableStream: web_1.ReadableStream,
      WritableStream: web_1.WritableStream,
      TextDecoderStream: web_1.TextDecoderStream,
      TransformStream: web_1.TransformStream
    };
    exports2.dntGlobalThis = createMergeProxy(globalThis, dntGlobals);
    function createMergeProxy(baseObj, extObj) {
      return new Proxy(baseObj, {
        get(_target, prop, _receiver) {
          if (prop in extObj) {
            return extObj[prop];
          } else {
            return baseObj[prop];
          }
        },
        set(_target, prop, value) {
          if (prop in extObj) {
            delete extObj[prop];
          }
          baseObj[prop] = value;
          return true;
        },
        deleteProperty(_target, prop) {
          let success = false;
          if (prop in extObj) {
            delete extObj[prop];
            success = true;
          }
          if (prop in baseObj) {
            delete baseObj[prop];
            success = true;
          }
          return success;
        },
        ownKeys(_target) {
          const baseKeys = Reflect.ownKeys(baseObj);
          const extKeys = Reflect.ownKeys(extObj);
          const extKeysSet = new Set(extKeys);
          return [...baseKeys.filter((k) => !extKeysSet.has(k)), ...extKeys];
        },
        defineProperty(_target, prop, desc) {
          if (prop in extObj) {
            delete extObj[prop];
          }
          Reflect.defineProperty(baseObj, prop, desc);
          return true;
        },
        getOwnPropertyDescriptor(_target, prop) {
          if (prop in extObj) {
            return Reflect.getOwnPropertyDescriptor(extObj, prop);
          } else {
            return Reflect.getOwnPropertyDescriptor(baseObj, prop);
          }
        },
        has(_target, prop) {
          return prop in extObj || prop in baseObj;
        }
      });
    }
  }
});

// npm/script/deps/jsr.io/@std/fmt/1.0.10/colors.js
var require_colors = __commonJS({
  "npm/script/deps/jsr.io/@std/fmt/1.0.10/colors.js"(exports2) {
    "use strict";
    var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) {
      if (k2 === void 0)
        k2 = k;
      var desc = Object.getOwnPropertyDescriptor(m, k);
      if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m[k];
        } };
      }
      Object.defineProperty(o, k2, desc);
    } : function(o, m, k, k2) {
      if (k2 === void 0)
        k2 = k;
      o[k2] = m[k];
    });
    var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) {
      Object.defineProperty(o, "default", { enumerable: true, value: v });
    } : function(o, v) {
      o["default"] = v;
    });
    var __importStar2 = exports2 && exports2.__importStar || /* @__PURE__ */ function() {
      var ownKeys = function(o) {
        ownKeys = Object.getOwnPropertyNames || function(o2) {
          var ar = [];
          for (var k in o2)
            if (Object.prototype.hasOwnProperty.call(o2, k))
              ar[ar.length] = k;
          return ar;
        };
        return ownKeys(o);
      };
      return function(mod) {
        if (mod && mod.__esModule)
          return mod;
        var result = {};
        if (mod != null) {
          for (var k = ownKeys(mod), i = 0; i < k.length; i++)
            if (k[i] !== "default")
              __createBinding2(result, mod, k[i]);
        }
        __setModuleDefault2(result, mod);
        return result;
      };
    }();
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.setColorEnabled = setColorEnabled;
    exports2.getColorEnabled = getColorEnabled;
    exports2.reset = reset;
    exports2.bold = bold;
    exports2.dim = dim;
    exports2.italic = italic;
    exports2.underline = underline;
    exports2.inverse = inverse;
    exports2.hidden = hidden;
    exports2.strikethrough = strikethrough;
    exports2.black = black;
    exports2.red = red;
    exports2.green = green;
    exports2.yellow = yellow;
    exports2.blue = blue;
    exports2.magenta = magenta;
    exports2.cyan = cyan;
    exports2.white = white;
    exports2.gray = gray;
    exports2.brightBlack = brightBlack;
    exports2.brightRed = brightRed;
    exports2.brightGreen = brightGreen;
    exports2.brightYellow = brightYellow;
    exports2.brightBlue = brightBlue;
    exports2.brightMagenta = brightMagenta;
    exports2.brightCyan = brightCyan;
    exports2.brightWhite = brightWhite;
    exports2.bgBlack = bgBlack;
    exports2.bgRed = bgRed;
    exports2.bgGreen = bgGreen;
    exports2.bgYellow = bgYellow;
    exports2.bgBlue = bgBlue;
    exports2.bgMagenta = bgMagenta;
    exports2.bgCyan = bgCyan;
    exports2.bgWhite = bgWhite;
    exports2.bgBrightBlack = bgBrightBlack;
    exports2.bgBrightRed = bgBrightRed;
    exports2.bgBrightGreen = bgBrightGreen;
    exports2.bgBrightYellow = bgBrightYellow;
    exports2.bgBrightBlue = bgBrightBlue;
    exports2.bgBrightMagenta = bgBrightMagenta;
    exports2.bgBrightCyan = bgBrightCyan;
    exports2.bgBrightWhite = bgBrightWhite;
    exports2.rgb8 = rgb8;
    exports2.bgRgb8 = bgRgb8;
    exports2.rgb24 = rgb24;
    exports2.bgRgb24 = bgRgb24;
    exports2.stripAnsiCode = stripAnsiCode;
    var dntShim = __importStar2(require_dnt_shims());
    var { Deno } = dntShim.dntGlobalThis;
    var noColor = typeof Deno?.noColor === "boolean" ? Deno.noColor : false;
    var enabled = !noColor;
    function setColorEnabled(value) {
      if (Deno?.noColor) {
        return;
      }
      enabled = value;
    }
    function getColorEnabled() {
      return enabled;
    }
    function code(open, close) {
      return {
        open: `\x1B[${open.join(";")}m`,
        close: `\x1B[${close}m`,
        regexp: new RegExp(`\\x1b\\[${close}m`, "g")
      };
    }
    function run(str, code2) {
      return enabled ? `${code2.open}${str.replace(code2.regexp, code2.open)}${code2.close}` : str;
    }
    function reset(str) {
      return run(str, code([0], 0));
    }
    function bold(str) {
      return run(str, code([1], 22));
    }
    function dim(str) {
      return run(str, code([2], 22));
    }
    function italic(str) {
      return run(str, code([3], 23));
    }
    function underline(str) {
      return run(str, code([4], 24));
    }
    function inverse(str) {
      return run(str, code([7], 27));
    }
    function hidden(str) {
      return run(str, code([8], 28));
    }
    function strikethrough(str) {
      return run(str, code([9], 29));
    }
    function black(str) {
      return run(str, code([30], 39));
    }
    function red(str) {
      return run(str, code([31], 39));
    }
    function green(str) {
      return run(str, code([32], 39));
    }
    function yellow(str) {
      return run(str, code([33], 39));
    }
    function blue(str) {
      return run(str, code([34], 39));
    }
    function magenta(str) {
      return run(str, code([35], 39));
    }
    function cyan(str) {
      return run(str, code([36], 39));
    }
    function white(str) {
      return run(str, code([37], 39));
    }
    function gray(str) {
      return brightBlack(str);
    }
    function brightBlack(str) {
      return run(str, code([90], 39));
    }
    function brightRed(str) {
      return run(str, code([91], 39));
    }
    function brightGreen(str) {
      return run(str, code([92], 39));
    }
    function brightYellow(str) {
      return run(str, code([93], 39));
    }
    function brightBlue(str) {
      return run(str, code([94], 39));
    }
    function brightMagenta(str) {
      return run(str, code([95], 39));
    }
    function brightCyan(str) {
      return run(str, code([96], 39));
    }
    function brightWhite(str) {
      return run(str, code([97], 39));
    }
    function bgBlack(str) {
      return run(str, code([40], 49));
    }
    function bgRed(str) {
      return run(str, code([41], 49));
    }
    function bgGreen(str) {
      return run(str, code([42], 49));
    }
    function bgYellow(str) {
      return run(str, code([43], 49));
    }
    function bgBlue(str) {
      return run(str, code([44], 49));
    }
    function bgMagenta(str) {
      return run(str, code([45], 49));
    }
    function bgCyan(str) {
      return run(str, code([46], 49));
    }
    function bgWhite(str) {
      return run(str, code([47], 49));
    }
    function bgBrightBlack(str) {
      return run(str, code([100], 49));
    }
    function bgBrightRed(str) {
      return run(str, code([101], 49));
    }
    function bgBrightGreen(str) {
      return run(str, code([102], 49));
    }
    function bgBrightYellow(str) {
      return run(str, code([103], 49));
    }
    function bgBrightBlue(str) {
      return run(str, code([104], 49));
    }
    function bgBrightMagenta(str) {
      return run(str, code([105], 49));
    }
    function bgBrightCyan(str) {
      return run(str, code([106], 49));
    }
    function bgBrightWhite(str) {
      return run(str, code([107], 49));
    }
    function clampAndTruncate(n, max = 255, min = 0) {
      return Math.trunc(Math.max(Math.min(n, max), min));
    }
    function rgb8(str, color) {
      return run(str, code([38, 5, clampAndTruncate(color)], 39));
    }
    function bgRgb8(str, color) {
      return run(str, code([48, 5, clampAndTruncate(color)], 49));
    }
    function rgb24(str, color) {
      if (typeof color === "number") {
        return run(str, code([38, 2, color >> 16 & 255, color >> 8 & 255, color & 255], 39));
      }
      return run(str, code([
        38,
        2,
        clampAndTruncate(color.r),
        clampAndTruncate(color.g),
        clampAndTruncate(color.b)
      ], 39));
    }
    function bgRgb24(str, color) {
      if (typeof color === "number") {
        return run(str, code([48, 2, color >> 16 & 255, color >> 8 & 255, color & 255], 49));
      }
      return run(str, code([
        48,
        2,
        clampAndTruncate(color.r),
        clampAndTruncate(color.g),
        clampAndTruncate(color.b)
      ], 49));
    }
    var ANSI_REGEXP = new RegExp([
      "[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)",
      "(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TXZcf-nq-uy=><~]))"
    ].join("|"), "g");
    function stripAnsiCode(string) {
      return string.replace(ANSI_REGEXP, "");
    }
  }
});

// npm/script/deps/jsr.io/@david/which/0.7.1/mod.js
var require_mod = __commonJS({
  "npm/script/deps/jsr.io/@david/which/0.7.1/mod.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.RealEnvironment = void 0;
    exports2.which = which;
    exports2.whichSync = whichSync;
    var denoGlobal = globalThis.Deno;
    var nodeProcess = globalThis.process;
    var nodeFs;
    function getNodeFs() {
      return nodeFs ??= nodeProcess.getBuiltinModule("node:fs");
    }
    var RealEnvironment = class {
      env(key) {
        if (denoGlobal?.env) {
          return denoGlobal.env.get(key);
        }
        return nodeProcess.env[key];
      }
      async stat(path) {
        if (denoGlobal?.stat) {
          return await denoGlobal.stat(path);
        }
        const info = await getNodeFs().promises.stat(path);
        return { isFile: info.isFile() };
      }
      statSync(path) {
        if (denoGlobal?.statSync) {
          return denoGlobal.statSync(path);
        }
        const info = getNodeFs().statSync(path);
        return { isFile: info.isFile() };
      }
      async lstat(path) {
        if (denoGlobal?.lstat) {
          return await denoGlobal.lstat(path);
        }
        const info = await getNodeFs().promises.lstat(path);
        return { isFile: info.isFile(), isSymlink: info.isSymbolicLink() };
      }
      lstatSync(path) {
        if (denoGlobal?.lstatSync) {
          return denoGlobal.lstatSync(path);
        }
        const info = getNodeFs().lstatSync(path);
        return { isFile: info.isFile(), isSymlink: info.isSymbolicLink() };
      }
      async readLink(path) {
        if (denoGlobal?.readLink) {
          return await denoGlobal.readLink(path);
        }
        return await getNodeFs().promises.readlink(path);
      }
      readLinkSync(path) {
        if (denoGlobal?.readLinkSync) {
          return denoGlobal.readLinkSync(path);
        }
        return getNodeFs().readlinkSync(path);
      }
      get isWindows() {
        if (denoGlobal?.build?.os) {
          return denoGlobal.build.os === "windows";
        }
        return nodeProcess.platform === "win32";
      }
    };
    exports2.RealEnvironment = RealEnvironment;
    async function which(command, environment = new RealEnvironment()) {
      if (commandHasPathSeparator(command, environment.isWindows)) {
        if (await pathMatches(environment, command)) {
          return command;
        }
        const pathExts = getPathExts(command, environment);
        if (pathExts == null) {
          return void 0;
        }
        for (const pathExt of pathExts) {
          const filePath = command + pathExt;
          if (await pathMatches(environment, filePath)) {
            return filePath;
          }
        }
        return void 0;
      }
      const systemInfo = getSystemInfo(command, environment);
      if (systemInfo == null) {
        return void 0;
      }
      for (const pathItem of systemInfo.pathItems) {
        const filePath = pathItem + command;
        if (systemInfo.pathExts) {
          environment.requestPermission?.(pathItem);
          for (const pathExt of systemInfo.pathExts) {
            const filePath2 = pathItem + command + pathExt;
            if (await pathMatches(environment, filePath2)) {
              return filePath2;
            }
          }
        } else if (await pathMatches(environment, filePath)) {
          return filePath;
        }
      }
      return void 0;
    }
    async function pathMatches(environment, path) {
      try {
        return (await environment.stat(path)).isFile;
      } catch (statErr) {
        if (isDenoPermissionDeniedError(statErr)) {
          throw statErr;
        }
        if (environment.isWindows && isEaccesError(statErr)) {
          return await followSymlinkChain(environment, path);
        }
        return false;
      }
    }
    async function followSymlinkChain(environment, path) {
      let current = path;
      for (let hops = 0; hops < 40; hops++) {
        let info;
        try {
          info = await environment.lstat(current);
        } catch (err) {
          if (isDenoPermissionDeniedError(err)) {
            throw err;
          }
          return false;
        }
        if (info.isFile)
          return true;
        if (!info.isSymlink)
          return false;
        let target;
        try {
          target = await environment.readLink(current);
        } catch (err) {
          if (isDenoPermissionDeniedError(err)) {
            throw err;
          }
          return false;
        }
        current = resolveLinkTarget(current, target);
      }
      return false;
    }
    function whichSync(command, environment = new RealEnvironment()) {
      if (commandHasPathSeparator(command, environment.isWindows)) {
        if (pathMatchesSync(environment, command)) {
          return command;
        }
        const pathExts = getPathExts(command, environment);
        if (pathExts == null) {
          return void 0;
        }
        for (const pathExt of pathExts) {
          const filePath = command + pathExt;
          if (pathMatchesSync(environment, filePath)) {
            return filePath;
          }
        }
        return void 0;
      }
      const systemInfo = getSystemInfo(command, environment);
      if (systemInfo == null) {
        return void 0;
      }
      for (const pathItem of systemInfo.pathItems) {
        const filePath = pathItem + command;
        if (systemInfo.pathExts) {
          environment.requestPermission?.(pathItem);
          for (const pathExt of systemInfo.pathExts) {
            const filePath2 = pathItem + command + pathExt;
            if (pathMatchesSync(environment, filePath2)) {
              return filePath2;
            }
          }
        } else if (pathMatchesSync(environment, filePath)) {
          return filePath;
        }
      }
      return void 0;
    }
    function pathMatchesSync(environment, path) {
      try {
        return environment.statSync(path).isFile;
      } catch (statErr) {
        if (isDenoPermissionDeniedError(statErr)) {
          throw statErr;
        }
        if (environment.isWindows && isEaccesError(statErr)) {
          return followSymlinkChainSync(environment, path);
        }
        return false;
      }
    }
    function followSymlinkChainSync(environment, path) {
      let current = path;
      for (let hops = 0; hops < 40; hops++) {
        let info;
        try {
          info = environment.lstatSync(current);
        } catch (err) {
          if (isDenoPermissionDeniedError(err)) {
            throw err;
          }
          return false;
        }
        if (info.isFile)
          return true;
        if (!info.isSymlink)
          return false;
        let target;
        try {
          target = environment.readLinkSync(current);
        } catch (err) {
          if (isDenoPermissionDeniedError(err)) {
            throw err;
          }
          return false;
        }
        current = resolveLinkTarget(current, target);
      }
      return false;
    }
    function resolveLinkTarget(linkPath, target) {
      if (isAbsolutePath(target)) {
        return target;
      }
      const sepIdx = Math.max(linkPath.lastIndexOf("/"), linkPath.lastIndexOf("\\"));
      const dir = sepIdx >= 0 ? linkPath.slice(0, sepIdx + 1) : "";
      return dir + target;
    }
    function isAbsolutePath(p) {
      if (p.startsWith("/") || p.startsWith("\\"))
        return true;
      return /^[A-Za-z]:[\\/]/.test(p);
    }
    function isEaccesError(err) {
      return err != null && typeof err === "object" && "code" in err && err.code === "EACCES";
    }
    function isDenoPermissionDeniedError(err) {
      const permissionDeniedError = denoGlobal?.errors?.PermissionDenied;
      return permissionDeniedError != null && err instanceof permissionDeniedError;
    }
    function getSystemInfo(command, environment) {
      const isWindows = environment.isWindows;
      const path = environment.env("PATH");
      const pathSeparator = isWindows ? "\\" : "/";
      if (path == null) {
        return void 0;
      }
      return {
        pathItems: splitEnvValue(path, isWindows).map((item) => normalizeDir(item, pathSeparator)),
        pathExts: getPathExts(command, environment),
        isNameMatch: isWindows ? (a, b) => a.toLowerCase() === b.toLowerCase() : (a, b) => a === b
      };
    }
    function getPathExts(command, environment) {
      if (!environment.isWindows) {
        return void 0;
      }
      const pathExtText = environment.env("PATHEXT") ?? ".EXE;.CMD;.BAT;.COM";
      const pathExts = splitEnvValue(pathExtText, true);
      const lowerCaseCommand = command.toLowerCase();
      for (const pathExt of pathExts) {
        if (lowerCaseCommand.endsWith(pathExt.toLowerCase())) {
          return void 0;
        }
      }
      return pathExts;
    }
    function commandHasPathSeparator(command, isWindows) {
      return command.includes("/") || isWindows && command.includes("\\");
    }
    function splitEnvValue(value, isWindows) {
      const envValueSeparator = isWindows ? ";" : ":";
      return value.split(envValueSeparator).map((item) => item.trim()).filter((item) => item.length > 0);
    }
    function normalizeDir(dirPath, pathSeparator) {
      if (pathSeparator === "\\" && dirPath.includes("/")) {
        dirPath = normalizeWindowsSeparators(dirPath, pathSeparator);
      }
      if (!dirPath.endsWith(pathSeparator)) {
        dirPath += pathSeparator;
      }
      return dirPath;
    }
    function normalizeWindowsSeparators(dirPath, pathSeparator) {
      const isUncRoot = /^[/\\]{2}/.test(dirPath);
      const head = isUncRoot ? pathSeparator + pathSeparator : "";
      const rest = isUncRoot ? dirPath.slice(2) : dirPath;
      return head + rest.replaceAll("/", pathSeparator).replace(/\\+/g, pathSeparator);
    }
  }
});

// npm/script/deps/jsr.io/@david/path/0.3.2/path.js
var require_path = __commonJS({
  "npm/script/deps/jsr.io/@david/path/0.3.2/path.js"(exports2) {
    "use strict";
    var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) {
      if (k2 === void 0)
        k2 = k;
      var desc = Object.getOwnPropertyDescriptor(m, k);
      if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m[k];
        } };
      }
      Object.defineProperty(o, k2, desc);
    } : function(o, m, k, k2) {
      if (k2 === void 0)
        k2 = k;
      o[k2] = m[k];
    });
    var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) {
      Object.defineProperty(o, "default", { enumerable: true, value: v });
    } : function(o, v) {
      o["default"] = v;
    });
    var __importStar2 = exports2 && exports2.__importStar || /* @__PURE__ */ function() {
      var ownKeys = function(o) {
        ownKeys = Object.getOwnPropertyNames || function(o2) {
          var ar = [];
          for (var k in o2)
            if (Object.prototype.hasOwnProperty.call(o2, k))
              ar[ar.length] = k;
          return ar;
        };
        return ownKeys(o);
      };
      return function(mod) {
        if (mod && mod.__esModule)
          return mod;
        var result = {};
        if (mod != null) {
          for (var k = ownKeys(mod), i = 0; i < k.length; i++)
            if (k[i] !== "default")
              __createBinding2(result, mod, k[i]);
        }
        __setModuleDefault2(result, mod);
        return result;
      };
    }();
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.basename = basename3;
    exports2.dirname = dirname3;
    exports2.extname = extname3;
    exports2.fromFileUrl = fromFileUrl3;
    exports2.isAbsolute = isAbsolute3;
    exports2.join = join3;
    exports2.normalize = normalize3;
    exports2.relative = relative3;
    exports2.resolve = resolve3;
    exports2.toFileUrl = toFileUrl3;
    var dntShim = __importStar2(require_dnt_shims());
    function checkWindows() {
      const global = dntShim.dntGlobalThis;
      const platform = global.process?.platform;
      if (typeof platform === "string")
        return platform.startsWith("win");
      const os = global.Deno?.build?.os;
      if (typeof os === "string")
        return os === "windows";
      return global.navigator?.platform?.startsWith("Win") ?? false;
    }
    var isWindows = checkWindows();
    function assertPath(path) {
      if (typeof path !== "string") {
        throw new TypeError(`Path must be a string, received "${JSON.stringify(path)}"`);
      }
    }
    function stripSuffix(name, suffix) {
      if (suffix.length >= name.length) {
        return name;
      }
      const lenDiff = name.length - suffix.length;
      for (let i = suffix.length - 1; i >= 0; --i) {
        if (name.charCodeAt(lenDiff + i) !== suffix.charCodeAt(i)) {
          return name;
        }
      }
      return name.slice(0, -suffix.length);
    }
    function lastPathSegment(path, isSep, start = 0) {
      let matchedNonSeparator = false;
      let end = path.length;
      for (let i = path.length - 1; i >= start; --i) {
        if (isSep(path.charCodeAt(i))) {
          if (matchedNonSeparator) {
            start = i + 1;
            break;
          }
        } else if (!matchedNonSeparator) {
          matchedNonSeparator = true;
          end = i + 1;
        }
      }
      return path.slice(start, end);
    }
    function assertArgs(path, suffix) {
      assertPath(path);
      if (path.length === 0)
        return path;
      if (typeof suffix !== "string") {
        throw new TypeError(`Suffix must be a string, received "${JSON.stringify(suffix)}"`);
      }
    }
    function assertArg(url) {
      url = url instanceof URL ? url : new URL(url);
      if (url.protocol !== "file:") {
        throw new TypeError(`URL must be a file URL: received "${url.protocol}"`);
      }
      return url;
    }
    function fromFileUrl(url) {
      url = assertArg(url);
      return decodeURIComponent(url.pathname.replace(/%(?![0-9A-Fa-f]{2})/g, "%25"));
    }
    function stripTrailingSeparators(segment, isSep) {
      if (segment.length <= 1) {
        return segment;
      }
      let end = segment.length;
      for (let i = segment.length - 1; i > 0; i--) {
        if (isSep(segment.charCodeAt(i))) {
          end = i;
        } else {
          break;
        }
      }
      return segment.slice(0, end);
    }
    var CHAR_UPPERCASE_A = 65;
    var CHAR_LOWERCASE_A = 97;
    var CHAR_UPPERCASE_Z = 90;
    var CHAR_LOWERCASE_Z = 122;
    var CHAR_DOT = 46;
    var CHAR_FORWARD_SLASH = 47;
    var CHAR_BACKWARD_SLASH = 92;
    var CHAR_COLON = 58;
    function isPosixPathSeparator(code) {
      return code === CHAR_FORWARD_SLASH;
    }
    function basename(path, suffix = "") {
      if (path instanceof URL) {
        path = fromFileUrl(path);
      }
      assertArgs(path, suffix);
      const lastSegment = lastPathSegment(path, isPosixPathSeparator);
      const strippedSegment = stripTrailingSeparators(lastSegment, isPosixPathSeparator);
      return suffix ? stripSuffix(strippedSegment, suffix) : strippedSegment;
    }
    function isPosixPathSeparator2(code) {
      return code === CHAR_FORWARD_SLASH;
    }
    function isPathSeparator(code) {
      return code === CHAR_FORWARD_SLASH || code === CHAR_BACKWARD_SLASH;
    }
    function isWindowsDeviceRoot(code) {
      return code >= CHAR_LOWERCASE_A && code <= CHAR_LOWERCASE_Z || code >= CHAR_UPPERCASE_A && code <= CHAR_UPPERCASE_Z;
    }
    function fromFileUrl2(url) {
      url = assertArg(url);
      let path = decodeURIComponent(url.pathname.replace(/\//g, "\\").replace(/%(?![0-9A-Fa-f]{2})/g, "%25")).replace(/^\\*([A-Za-z]:)(\\|$)/, "$1\\");
      if (url.hostname !== "") {
        path = `\\\\${url.hostname}${path}`;
      }
      return path;
    }
    function basename2(path, suffix = "") {
      if (path instanceof URL) {
        path = fromFileUrl2(path);
      }
      assertArgs(path, suffix);
      let start = 0;
      if (path.length >= 2) {
        const drive = path.charCodeAt(0);
        if (isWindowsDeviceRoot(drive)) {
          if (path.charCodeAt(1) === CHAR_COLON)
            start = 2;
        }
      }
      const lastSegment = lastPathSegment(path, isPathSeparator, start);
      const strippedSegment = stripTrailingSeparators(lastSegment, isPathSeparator);
      return suffix ? stripSuffix(strippedSegment, suffix) : strippedSegment;
    }
    function basename3(path, suffix = "") {
      return isWindows ? basename2(path, suffix) : basename(path, suffix);
    }
    function assertArg2(path) {
      assertPath(path);
      if (path.length === 0)
        return ".";
    }
    function dirname(path) {
      if (path instanceof URL) {
        path = fromFileUrl(path);
      }
      assertArg2(path);
      let end = -1;
      let matchedNonSeparator = false;
      for (let i = path.length - 1; i >= 1; --i) {
        if (isPosixPathSeparator(path.charCodeAt(i))) {
          if (matchedNonSeparator) {
            end = i;
            break;
          }
        } else {
          matchedNonSeparator = true;
        }
      }
      if (end === -1) {
        return isPosixPathSeparator(path.charCodeAt(0)) ? "/" : ".";
      }
      return stripTrailingSeparators(path.slice(0, end), isPosixPathSeparator);
    }
    function dirname2(path) {
      if (path instanceof URL) {
        path = fromFileUrl2(path);
      }
      assertArg2(path);
      const len = path.length;
      let rootEnd = -1;
      let end = -1;
      let matchedSlash = true;
      let offset = 0;
      const code = path.charCodeAt(0);
      if (len > 1) {
        if (isPathSeparator(code)) {
          rootEnd = offset = 1;
          if (isPathSeparator(path.charCodeAt(1))) {
            let j = 2;
            let last = j;
            for (; j < len; ++j) {
              if (isPathSeparator(path.charCodeAt(j)))
                break;
            }
            if (j < len && j !== last) {
              last = j;
              for (; j < len; ++j) {
                if (!isPathSeparator(path.charCodeAt(j)))
                  break;
              }
              if (j < len && j !== last) {
                last = j;
                for (; j < len; ++j) {
                  if (isPathSeparator(path.charCodeAt(j)))
                    break;
                }
                if (j === len) {
                  return path;
                }
                if (j !== last) {
                  rootEnd = offset = j + 1;
                }
              }
            }
          }
        } else if (isWindowsDeviceRoot(code)) {
          if (path.charCodeAt(1) === CHAR_COLON) {
            rootEnd = offset = 2;
            if (len > 2) {
              if (isPathSeparator(path.charCodeAt(2)))
                rootEnd = offset = 3;
            }
          }
        }
      } else if (isPathSeparator(code)) {
        return path;
      }
      for (let i = len - 1; i >= offset; --i) {
        if (isPathSeparator(path.charCodeAt(i))) {
          if (!matchedSlash) {
            end = i;
            break;
          }
        } else {
          matchedSlash = false;
        }
      }
      if (end === -1) {
        if (rootEnd === -1)
          return ".";
        else
          end = rootEnd;
      }
      return stripTrailingSeparators(path.slice(0, end), isPosixPathSeparator2);
    }
    function dirname3(path) {
      return isWindows ? dirname2(path) : dirname(path);
    }
    function extname(path) {
      if (path instanceof URL) {
        path = fromFileUrl(path);
      }
      assertPath(path);
      let startDot = -1;
      let startPart = 0;
      let end = -1;
      let matchedSlash = true;
      let preDotState = 0;
      for (let i = path.length - 1; i >= 0; --i) {
        const code = path.charCodeAt(i);
        if (isPosixPathSeparator(code)) {
          if (!matchedSlash) {
            startPart = i + 1;
            break;
          }
          continue;
        }
        if (end === -1) {
          matchedSlash = false;
          end = i + 1;
        }
        if (code === CHAR_DOT) {
          if (startDot === -1)
            startDot = i;
          else if (preDotState !== 1)
            preDotState = 1;
        } else if (startDot !== -1) {
          preDotState = -1;
        }
      }
      if (startDot === -1 || end === -1 || // We saw a non-dot character immediately before the dot
      preDotState === 0 || // The (right-most) trimmed path component is exactly '..'
      preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {
        return "";
      }
      return path.slice(startDot, end);
    }
    function extname2(path) {
      if (path instanceof URL) {
        path = fromFileUrl2(path);
      }
      assertPath(path);
      let start = 0;
      let startDot = -1;
      let startPart = 0;
      let end = -1;
      let matchedSlash = true;
      let preDotState = 0;
      if (path.length >= 2 && path.charCodeAt(1) === CHAR_COLON && isWindowsDeviceRoot(path.charCodeAt(0))) {
        start = startPart = 2;
      }
      for (let i = path.length - 1; i >= start; --i) {
        const code = path.charCodeAt(i);
        if (isPathSeparator(code)) {
          if (!matchedSlash) {
            startPart = i + 1;
            break;
          }
          continue;
        }
        if (end === -1) {
          matchedSlash = false;
          end = i + 1;
        }
        if (code === CHAR_DOT) {
          if (startDot === -1)
            startDot = i;
          else if (preDotState !== 1)
            preDotState = 1;
        } else if (startDot !== -1) {
          preDotState = -1;
        }
      }
      if (startDot === -1 || end === -1 || // We saw a non-dot character immediately before the dot
      preDotState === 0 || // The (right-most) trimmed path component is exactly '..'
      preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {
        return "";
      }
      return path.slice(startDot, end);
    }
    function extname3(path) {
      return isWindows ? extname2(path) : extname(path);
    }
    function fromFileUrl3(url) {
      return isWindows ? fromFileUrl2(url) : fromFileUrl(url);
    }
    function isAbsolute(path) {
      assertPath(path);
      return path.length > 0 && isPosixPathSeparator(path.charCodeAt(0));
    }
    function isAbsolute2(path) {
      assertPath(path);
      const len = path.length;
      if (len === 0)
        return false;
      const code = path.charCodeAt(0);
      if (isPathSeparator(code)) {
        return true;
      } else if (isWindowsDeviceRoot(code)) {
        if (len > 2 && path.charCodeAt(1) === CHAR_COLON) {
          if (isPathSeparator(path.charCodeAt(2)))
            return true;
        }
      }
      return false;
    }
    function isAbsolute3(path) {
      return isWindows ? isAbsolute2(path) : isAbsolute(path);
    }
    function assertArg4(path) {
      assertPath(path);
      if (path.length === 0)
        return ".";
    }
    function normalizeString(path, allowAboveRoot, separator, isPathSeparator2) {
      let res = "";
      let lastSegmentLength = 0;
      let lastSlash = -1;
      let dots = 0;
      let code;
      for (let i = 0; i <= path.length; ++i) {
        if (i < path.length)
          code = path.charCodeAt(i);
        else if (isPathSeparator2(code))
          break;
        else
          code = CHAR_FORWARD_SLASH;
        if (isPathSeparator2(code)) {
          if (lastSlash === i - 1 || dots === 1) {
          } else if (lastSlash !== i - 1 && dots === 2) {
            if (res.length < 2 || lastSegmentLength !== 2 || res.charCodeAt(res.length - 1) !== CHAR_DOT || res.charCodeAt(res.length - 2) !== CHAR_DOT) {
              if (res.length > 2) {
                const lastSlashIndex = res.lastIndexOf(separator);
                if (lastSlashIndex === -1) {
                  res = "";
                  lastSegmentLength = 0;
                } else {
                  res = res.slice(0, lastSlashIndex);
                  lastSegmentLength = res.length - 1 - res.lastIndexOf(separator);
                }
                lastSlash = i;
                dots = 0;
                continue;
              } else if (res.length === 2 || res.length === 1) {
                res = "";
                lastSegmentLength = 0;
                lastSlash = i;
                dots = 0;
                continue;
              }
            }
            if (allowAboveRoot) {
              if (res.length > 0)
                res += `${separator}..`;
              else
                res = "..";
              lastSegmentLength = 2;
            }
          } else {
            if (res.length > 0)
              res += separator + path.slice(lastSlash + 1, i);
            else
              res = path.slice(lastSlash + 1, i);
            lastSegmentLength = i - lastSlash - 1;
          }
          lastSlash = i;
          dots = 0;
        } else if (code === CHAR_DOT && dots !== -1) {
          ++dots;
        } else {
          dots = -1;
        }
      }
      return res;
    }
    function normalize(path) {
      if (path instanceof URL) {
        path = fromFileUrl(path);
      }
      assertArg4(path);
      const isAbsolute4 = isPosixPathSeparator(path.charCodeAt(0));
      const trailingSeparator = isPosixPathSeparator(path.charCodeAt(path.length - 1));
      path = normalizeString(path, !isAbsolute4, "/", isPosixPathSeparator);
      if (path.length === 0 && !isAbsolute4)
        path = ".";
      if (path.length > 0 && trailingSeparator)
        path += "/";
      if (isAbsolute4)
        return `/${path}`;
      return path;
    }
    function join(path, ...paths) {
      if (path === void 0)
        return ".";
      if (path instanceof URL) {
        path = fromFileUrl(path);
      }
      paths = path ? [
        path,
        ...paths
      ] : paths;
      paths.forEach((path2) => assertPath(path2));
      const joined = paths.filter((path2) => path2.length > 0).join("/");
      return joined === "" ? "." : normalize(joined);
    }
    function normalize2(path) {
      if (path instanceof URL) {
        path = fromFileUrl2(path);
      }
      assertArg4(path);
      const len = path.length;
      let rootEnd = 0;
      let device;
      let isAbsolute4 = false;
      const code = path.charCodeAt(0);
      if (len > 1) {
        if (isPathSeparator(code)) {
          isAbsolute4 = true;
          if (isPathSeparator(path.charCodeAt(1))) {
            let j = 2;
            let last = j;
            for (; j < len; ++j) {
              if (isPathSeparator(path.charCodeAt(j)))
                break;
            }
            if (j < len && j !== last) {
              const firstPart = path.slice(last, j);
              last = j;
              for (; j < len; ++j) {
                if (!isPathSeparator(path.charCodeAt(j)))
                  break;
              }
              if (j < len && j !== last) {
                last = j;
                for (; j < len; ++j) {
                  if (isPathSeparator(path.charCodeAt(j)))
                    break;
                }
                if (j === len) {
                  return `\\\\${firstPart}\\${path.slice(last)}\\`;
                } else if (j !== last) {
                  device = `\\\\${firstPart}\\${path.slice(last, j)}`;
                  rootEnd = j;
                }
              }
            }
          } else {
            rootEnd = 1;
          }
        } else if (isWindowsDeviceRoot(code)) {
          if (path.charCodeAt(1) === CHAR_COLON) {
            device = path.slice(0, 2);
            rootEnd = 2;
            if (len > 2) {
              if (isPathSeparator(path.charCodeAt(2))) {
                isAbsolute4 = true;
                rootEnd = 3;
              }
            }
          }
        }
      } else if (isPathSeparator(code)) {
        return "\\";
      }
      let tail;
      if (rootEnd < len) {
        tail = normalizeString(path.slice(rootEnd), !isAbsolute4, "\\", isPathSeparator);
      } else {
        tail = "";
      }
      if (tail.length === 0 && !isAbsolute4)
        tail = ".";
      if (tail.length > 0 && isPathSeparator(path.charCodeAt(len - 1))) {
        tail += "\\";
      }
      if (device === void 0) {
        if (isAbsolute4) {
          if (tail.length > 0)
            return `\\${tail}`;
          else
            return "\\";
        }
        return tail;
      } else if (isAbsolute4) {
        if (tail.length > 0)
          return `${device}\\${tail}`;
        else
          return `${device}\\`;
      }
      return device + tail;
    }
    function join2(path, ...paths) {
      if (path instanceof URL) {
        path = fromFileUrl2(path);
      }
      paths = path ? [
        path,
        ...paths
      ] : paths;
      paths.forEach((path2) => assertPath(path2));
      paths = paths.filter((path2) => path2.length > 0);
      if (paths.length === 0)
        return ".";
      let needsReplace = true;
      let slashCount = 0;
      const firstPart = paths[0];
      if (isPathSeparator(firstPart.charCodeAt(0))) {
        ++slashCount;
        const firstLen = firstPart.length;
        if (firstLen > 1) {
          if (isPathSeparator(firstPart.charCodeAt(1))) {
            ++slashCount;
            if (firstLen > 2) {
              if (isPathSeparator(firstPart.charCodeAt(2)))
                ++slashCount;
              else {
                needsReplace = false;
              }
            }
          }
        }
      }
      let joined = paths.join("\\");
      if (needsReplace) {
        for (; slashCount < joined.length; ++slashCount) {
          if (!isPathSeparator(joined.charCodeAt(slashCount)))
            break;
        }
        if (slashCount >= 2)
          joined = `\\${joined.slice(slashCount)}`;
      }
      return normalize2(joined);
    }
    function join3(path, ...paths) {
      return isWindows ? join2(path, ...paths) : join(path, ...paths);
    }
    function normalize3(path) {
      return isWindows ? normalize2(path) : normalize(path);
    }
    function cwd(errorMessage) {
      const global = dntShim.dntGlobalThis;
      const getCwd = global.process?.cwd ?? global.Deno?.cwd;
      if (typeof getCwd !== "function") {
        throw new TypeError(errorMessage);
      }
      return getCwd();
    }
    function resolve(...pathSegments) {
      let resolvedPath = "";
      let resolvedAbsolute = false;
      for (let i = pathSegments.length - 1; i >= -1 && !resolvedAbsolute; i--) {
        let path;
        if (i >= 0)
          path = pathSegments[i];
        else {
          path = cwd("Resolved a relative path without a current working directory (CWD)");
        }
        assertPath(path);
        if (path.length === 0) {
          continue;
        }
        resolvedPath = `${path}/${resolvedPath}`;
        resolvedAbsolute = isPosixPathSeparator(path.charCodeAt(0));
      }
      resolvedPath = normalizeString(resolvedPath, !resolvedAbsolute, "/", isPosixPathSeparator);
      if (resolvedAbsolute) {
        if (resolvedPath.length > 0)
          return `/${resolvedPath}`;
        else
          return "/";
      } else if (resolvedPath.length > 0)
        return resolvedPath;
      else
        return ".";
    }
    function assertArgs2(from, to) {
      assertPath(from);
      assertPath(to);
      if (from === to)
        return "";
    }
    function relative(from, to) {
      assertArgs2(from, to);
      from = resolve(from);
      to = resolve(to);
      if (from === to)
        return "";
      let fromStart = 1;
      const fromEnd = from.length;
      for (; fromStart < fromEnd; ++fromStart) {
        if (!isPosixPathSeparator(from.charCodeAt(fromStart)))
          break;
      }
      const fromLen = fromEnd - fromStart;
      let toStart = 1;
      const toEnd = to.length;
      for (; toStart < toEnd; ++toStart) {
        if (!isPosixPathSeparator(to.charCodeAt(toStart)))
          break;
      }
      const toLen = toEnd - toStart;
      const length = fromLen < toLen ? fromLen : toLen;
      let lastCommonSep = -1;
      let i = 0;
      for (; i <= length; ++i) {
        if (i === length) {
          if (toLen > length) {
            if (isPosixPathSeparator(to.charCodeAt(toStart + i))) {
              return to.slice(toStart + i + 1);
            } else if (i === 0) {
              return to.slice(toStart + i);
            }
          } else if (fromLen > length) {
            if (isPosixPathSeparator(from.charCodeAt(fromStart + i))) {
              lastCommonSep = i;
            } else if (i === 0) {
              lastCommonSep = 0;
            }
          }
          break;
        }
        const fromCode = from.charCodeAt(fromStart + i);
        const toCode = to.charCodeAt(toStart + i);
        if (fromCode !== toCode)
          break;
        else if (isPosixPathSeparator(fromCode))
          lastCommonSep = i;
      }
      let out = "";
      for (i = fromStart + lastCommonSep + 1; i <= fromEnd; ++i) {
        if (i === fromEnd || isPosixPathSeparator(from.charCodeAt(i))) {
          if (out.length === 0)
            out += "..";
          else
            out += "/..";
        }
      }
      if (out.length > 0)
        return out + to.slice(toStart + lastCommonSep);
      else {
        toStart += lastCommonSep;
        if (isPosixPathSeparator(to.charCodeAt(toStart)))
          ++toStart;
        return to.slice(toStart);
      }
    }
    function resolve2(...pathSegments) {
      let resolvedDevice = "";
      let resolvedTail = "";
      let resolvedAbsolute = false;
      for (let i = pathSegments.length - 1; i >= -1; i--) {
        let path;
        if (i >= 0) {
          path = pathSegments[i];
        } else if (!resolvedDevice) {
          path = cwd("Resolved a drive-letter-less path without a current working directory (CWD)");
        } else {
          path = cwd("Resolved a relative path without a current working directory (CWD)");
          if (path === void 0 || path.slice(0, 3).toLowerCase() !== `${resolvedDevice.toLowerCase()}\\`) {
            path = `${resolvedDevice}\\`;
          }
        }
        assertPath(path);
        const len = path.length;
        if (len === 0)
          continue;
        let rootEnd = 0;
        let device = "";
        let isAbsolute4 = false;
        const code = path.charCodeAt(0);
        if (len > 1) {
          if (isPathSeparator(code)) {
            isAbsolute4 = true;
            if (isPathSeparator(path.charCodeAt(1))) {
              let j = 2;
              let last = j;
              for (; j < len; ++j) {
                if (isPathSeparator(path.charCodeAt(j)))
                  break;
              }
              if (j < len && j !== last) {
                const firstPart = path.slice(last, j);
                last = j;
                for (; j < len; ++j) {
                  if (!isPathSeparator(path.charCodeAt(j)))
                    break;
                }
                if (j < len && j !== last) {
                  last = j;
                  for (; j < len; ++j) {
                    if (isPathSeparator(path.charCodeAt(j)))
                      break;
                  }
                  if (j === len) {
                    device = `\\\\${firstPart}\\${path.slice(last)}`;
                    rootEnd = j;
                  } else if (j !== last) {
                    device = `\\\\${firstPart}\\${path.slice(last, j)}`;
                    rootEnd = j;
                  }
                }
              }
            } else {
              rootEnd = 1;
            }
          } else if (isWindowsDeviceRoot(code)) {
            if (path.charCodeAt(1) === CHAR_COLON) {
              device = path.slice(0, 2);
              rootEnd = 2;
              if (len > 2) {
                if (isPathSeparator(path.charCodeAt(2))) {
                  isAbsolute4 = true;
                  rootEnd = 3;
                }
              }
            }
          }
        } else if (isPathSeparator(code)) {
          rootEnd = 1;
          isAbsolute4 = true;
        }
        if (device.length > 0 && resolvedDevice.length > 0 && device.toLowerCase() !== resolvedDevice.toLowerCase()) {
          continue;
        }
        if (resolvedDevice.length === 0 && device.length > 0) {
          resolvedDevice = device;
        }
        if (!resolvedAbsolute) {
          resolvedTail = `${path.slice(rootEnd)}\\${resolvedTail}`;
          resolvedAbsolute = isAbsolute4;
        }
        if (resolvedAbsolute && resolvedDevice.length > 0)
          break;
      }
      resolvedTail = normalizeString(resolvedTail, !resolvedAbsolute, "\\", isPathSeparator);
      return resolvedDevice + (resolvedAbsolute ? "\\" : "") + resolvedTail || ".";
    }
    function relative2(from, to) {
      assertArgs2(from, to);
      const fromOrig = resolve2(from);
      const toOrig = resolve2(to);
      if (fromOrig === toOrig)
        return "";
      from = fromOrig.toLowerCase();
      to = toOrig.toLowerCase();
      if (from === to)
        return "";
      let fromStart = 0;
      let fromEnd = from.length;
      for (; fromStart < fromEnd; ++fromStart) {
        if (from.charCodeAt(fromStart) !== CHAR_BACKWARD_SLASH)
          break;
      }
      for (; fromEnd - 1 > fromStart; --fromEnd) {
        if (from.charCodeAt(fromEnd - 1) !== CHAR_BACKWARD_SLASH)
          break;
      }
      const fromLen = fromEnd - fromStart;
      let toStart = 0;
      let toEnd = to.length;
      for (; toStart < toEnd; ++toStart) {
        if (to.charCodeAt(toStart) !== CHAR_BACKWARD_SLASH)
          break;
      }
      for (; toEnd - 1 > toStart; --toEnd) {
        if (to.charCodeAt(toEnd - 1) !== CHAR_BACKWARD_SLASH)
          break;
      }
      const toLen = toEnd - toStart;
      const length = fromLen < toLen ? fromLen : toLen;
      let lastCommonSep = -1;
      let i = 0;
      for (; i <= length; ++i) {
        if (i === length) {
          if (toLen > length) {
            if (to.charCodeAt(toStart + i) === CHAR_BACKWARD_SLASH) {
              return toOrig.slice(toStart + i + 1);
            } else if (i === 2) {
              return toOrig.slice(toStart + i);
            }
          }
          if (fromLen > length) {
            if (from.charCodeAt(fromStart + i) === CHAR_BACKWARD_SLASH) {
              lastCommonSep = i;
            } else if (i === 2) {
              lastCommonSep = 3;
            }
          }
          break;
        }
        const fromCode = from.charCodeAt(fromStart + i);
        const toCode = to.charCodeAt(toStart + i);
        if (fromCode !== toCode)
          break;
        else if (fromCode === CHAR_BACKWARD_SLASH)
          lastCommonSep = i;
      }
      if (i !== length && lastCommonSep === -1) {
        return toOrig;
      }
      let out = "";
      if (lastCommonSep === -1)
        lastCommonSep = 0;
      for (i = fromStart + lastCommonSep + 1; i <= fromEnd; ++i) {
        if (i === fromEnd || from.charCodeAt(i) === CHAR_BACKWARD_SLASH) {
          if (out.length === 0)
            out += "..";
          else
            out += "\\..";
        }
      }
      if (out.length > 0) {
        return out + toOrig.slice(toStart + lastCommonSep, toEnd);
      } else {
        toStart += lastCommonSep;
        if (toOrig.charCodeAt(toStart) === CHAR_BACKWARD_SLASH)
          ++toStart;
        return toOrig.slice(toStart, toEnd);
      }
    }
    function relative3(from, to) {
      return isWindows ? relative2(from, to) : relative(from, to);
    }
    function resolve3(...pathSegments) {
      return isWindows ? resolve2(...pathSegments) : resolve(...pathSegments);
    }
    var WHITESPACE_ENCODINGS = {
      "	": "%09",
      "\n": "%0A",
      "\v": "%0B",
      "\f": "%0C",
      "\r": "%0D",
      " ": "%20"
    };
    function encodeWhitespace(string) {
      return string.replaceAll(/[\s]/g, (c) => {
        return WHITESPACE_ENCODINGS[c] ?? c;
      });
    }
    function toFileUrl(path) {
      if (!isAbsolute(path)) {
        throw new TypeError(`Path must be absolute: received "${path}"`);
      }
      const url = new URL("file:///");
      url.pathname = encodeWhitespace(path.replace(/%/g, "%25").replace(/\\/g, "%5C"));
      return url;
    }
    function toFileUrl2(path) {
      if (!isAbsolute2(path)) {
        throw new TypeError(`Path must be absolute: received "${path}"`);
      }
      const [, hostname, pathname] = path.match(/^(?:[/\\]{2}([^/\\]+)(?=[/\\](?:[^/\\]|$)))?(.*)/);
      const url = new URL("file:///");
      url.pathname = encodeWhitespace(pathname.replace(/%/g, "%25"));
      if (hostname !== void 0 && hostname !== "localhost") {
        url.hostname = hostname;
        if (!url.hostname) {
          throw new TypeError(`Invalid hostname: "${url.hostname}"`);
        }
      }
      return url;
    }
    function toFileUrl3(path) {
      return isWindows ? toFileUrl2(path) : toFileUrl(path);
    }
  }
});

// npm/script/deps/jsr.io/@david/path/0.3.2/_fs.js
var require_fs = __commonJS({
  "npm/script/deps/jsr.io/@david/path/0.3.2/_fs.js"(exports2) {
    "use strict";
    var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) {
      if (k2 === void 0)
        k2 = k;
      var desc = Object.getOwnPropertyDescriptor(m, k);
      if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m[k];
        } };
      }
      Object.defineProperty(o, k2, desc);
    } : function(o, m, k, k2) {
      if (k2 === void 0)
        k2 = k;
      o[k2] = m[k];
    });
    var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) {
      Object.defineProperty(o, "default", { enumerable: true, value: v });
    } : function(o, v) {
      o["default"] = v;
    });
    var __importStar2 = exports2 && exports2.__importStar || /* @__PURE__ */ function() {
      var ownKeys = function(o) {
        ownKeys = Object.getOwnPropertyNames || function(o2) {
          var ar = [];
          for (var k in o2)
            if (Object.prototype.hasOwnProperty.call(o2, k))
              ar[ar.length] = k;
          return ar;
        };
        return ownKeys(o);
      };
      return function(mod) {
        if (mod && mod.__esModule)
          return mod;
        var result = {};
        if (mod != null) {
          for (var k = ownKeys(mod), i = 0; i < k.length; i++)
            if (k[i] !== "default")
              __createBinding2(result, mod, k[i]);
        }
        __setModuleDefault2(result, mod);
        return result;
      };
    }();
    var __importDefault = exports2 && exports2.__importDefault || function(mod) {
      return mod && mod.__esModule ? mod : { "default": mod };
    };
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.FsFile = void 0;
    exports2.isNotFoundError = isNotFoundError;
    exports2.createNotFoundError = createNotFoundError;
    exports2.isWindows = isWindows;
    exports2.stat = stat;
    exports2.statSync = statSync;
    exports2.lstat = lstat;
    exports2.lstatSync = lstatSync;
    exports2.realPath = realPath;
    exports2.realPathSync = realPathSync;
    exports2.mkdirFn = mkdirFn;
    exports2.mkdirSyncFn = mkdirSyncFn;
    exports2.linkFn = linkFn;
    exports2.linkSyncFn = linkSyncFn;
    exports2.symlinkFn = symlinkFn;
    exports2.symlinkSyncFn = symlinkSyncFn;
    exports2.readDir = readDir;
    exports2.readDirSync = readDirSync;
    exports2.readFile = readFile;
    exports2.readFileSync = readFileSync;
    exports2.readTextFile = readTextFile;
    exports2.readTextFileSync = readTextFileSync;
    exports2.chmod = chmod;
    exports2.chmodSync = chmodSync;
    exports2.chown = chown;
    exports2.chownSync = chownSync;
    exports2.openFile = openFile;
    exports2.openFileSync = openFileSync;
    exports2.createFile = createFile;
    exports2.createFileSync = createFileSync;
    exports2.remove = remove;
    exports2.removeSync = removeSync;
    exports2.copyFileFn = copyFileFn;
    exports2.copyFileSyncFn = copyFileSyncFn;
    exports2.renameFn = renameFn;
    exports2.renameSyncFn = renameSyncFn;
    exports2.ensureDir = ensureDir;
    exports2.ensureDirSync = ensureDirSync;
    exports2.ensureFile = ensureFile;
    exports2.ensureFileSync = ensureFileSync;
    exports2.emptyDir = emptyDir;
    exports2.emptyDirSync = emptyDirSync;
    exports2.copy = copy;
    exports2.copySync = copySync;
    var dntShim = __importStar2(require_dnt_shims());
    var node_fs_1 = __importDefault(require("node:fs"));
    var promises_1 = __importDefault(require("node:fs/promises"));
    var node_path_1 = require("node:path");
    function isNotFoundError(err) {
      return err?.code === "ENOENT";
    }
    function createNotFoundError(message) {
      const err = new Error(message);
      err.code = "ENOENT";
      return err;
    }
    function isWindows() {
      return process.platform === "win32";
    }
    var FsFile = class {
      /** @internal */
      _fd;
      /** @internal */
      constructor(fd) {
        this._fd = fd;
      }
      /** Writes data to the file, resolving to the number of bytes written.
       *
       * Strings are encoded as UTF-8.
       */
      write(data) {
        const bytes = typeof data === "string" ? new TextEncoder().encode(data) : data;
        return new Promise((resolve, reject) => {
          node_fs_1.default.write(this._fd, bytes, 0, bytes.length, null, (err, written) => {
            if (err)
              reject(err);
            else
              resolve(written);
          });
        });
      }
      /** Synchronously writes data to the file, returning the number of bytes written.
       *
       * Strings are encoded as UTF-8.
       */
      writeSync(data) {
        const bytes = typeof data === "string" ? new TextEncoder().encode(data) : data;
        return node_fs_1.default.writeSync(this._fd, bytes, 0, bytes.length);
      }
      /** Reads into `buf`, resolving to the number of bytes read (0 at EOF). */
      read(buf) {
        return new Promise((resolve, reject) => {
          node_fs_1.default.read(this._fd, buf, 0, buf.length, null, (err, bytesRead) => {
            if (err)
              reject(err);
            else
              resolve(bytesRead);
          });
        });
      }
      /** Synchronously reads into `buf`, returning the number of bytes read (0 at EOF). */
      readSync(buf) {
        return node_fs_1.default.readSync(this._fd, buf, 0, buf.length, null);
      }
      /** Closes the file handle. */
      close() {
        node_fs_1.default.closeSync(this._fd);
      }
      /** A writable stream that writes to this file. */
      get writable() {
        const fd = this._fd;
        return new dntShim.WritableStream({
          write(chunk) {
            return new Promise((resolve, reject) => {
              node_fs_1.default.write(fd, chunk, 0, chunk.length, null, (err) => {
                if (err)
                  reject(err);
                else
                  resolve();
              });
            });
          }
        });
      }
      /** A readable stream that reads from this file. */
      get readable() {
        const fd = this._fd;
        return new dntShim.ReadableStream({
          pull(controller) {
            return new Promise((resolve, reject) => {
              const buf = new Uint8Array(16384);
              node_fs_1.default.read(fd, buf, 0, buf.length, null, (err, bytesRead) => {
                if (err) {
                  reject(err);
                  return;
                }
                if (bytesRead === 0) {
                  controller.close();
                } else {
                  controller.enqueue(buf.subarray(0, bytesRead));
                }
                resolve();
              });
            });
          }
        });
      }
    };
    exports2.FsFile = FsFile;
    function stat(path) {
      return promises_1.default.stat(path);
    }
    function statSync(path) {
      return node_fs_1.default.statSync(path);
    }
    function lstat(path) {
      return promises_1.default.lstat(path);
    }
    function lstatSync(path) {
      return node_fs_1.default.lstatSync(path);
    }
    function realPath(path) {
      return promises_1.default.realpath(path);
    }
    function realPathSync(path) {
      return node_fs_1.default.realpathSync(path);
    }
    async function mkdirFn(path, options) {
      await promises_1.default.mkdir(path, options);
    }
    function mkdirSyncFn(path, options) {
      node_fs_1.default.mkdirSync(path, options);
    }
    async function linkFn(oldPath, newPath) {
      await promises_1.default.link(oldPath, newPath);
    }
    function linkSyncFn(oldPath, newPath) {
      node_fs_1.default.linkSync(oldPath, newPath);
    }
    async function symlinkFn(target, path, type) {
      await promises_1.default.symlink(target, path, type?.type);
    }
    function symlinkSyncFn(target, path, type) {
      node_fs_1.default.symlinkSync(target, path, type?.type);
    }
    async function* readDir(path) {
      const entries = await promises_1.default.readdir(path, { withFileTypes: true });
      yield* entries;
    }
    function* readDirSync(path) {
      yield* node_fs_1.default.readdirSync(path, { withFileTypes: true });
    }
    async function readFile(path, options) {
      return new Uint8Array(await promises_1.default.readFile(path, { signal: options?.signal }));
    }
    function readFileSync(path) {
      return new Uint8Array(node_fs_1.default.readFileSync(path));
    }
    function readTextFile(path, options) {
      return promises_1.default.readFile(path, {
        encoding: "utf8",
        signal: options?.signal
      });
    }
    function readTextFileSync(path) {
      return node_fs_1.default.readFileSync(path, "utf8");
    }
    async function chmod(path, mode) {
      await promises_1.default.chmod(path, mode);
    }
    function chmodSync(path, mode) {
      node_fs_1.default.chmodSync(path, mode);
    }
    async function chown(path, uid, gid) {
      await promises_1.default.chown(path, uid ?? -1, gid ?? -1);
    }
    function chownSync(path, uid, gid) {
      node_fs_1.default.chownSync(path, uid ?? -1, gid ?? -1);
    }
    function openFile(path, options) {
      return new Promise((resolve, reject) => {
        node_fs_1.default.open(path, openOptionsToFlags(options), options?.mode, (err, fd) => {
          if (err)
            reject(err);
          else
            resolve(new FsFile(fd));
        });
      });
    }
    function openFileSync(path, options) {
      const fd = node_fs_1.default.openSync(path, openOptionsToFlags(options), options?.mode);
      return new FsFile(fd);
    }
    function createFile(path) {
      return openFile(path, {
        write: true,
        create: true,
        truncate: true,
        read: true
      });
    }
    function createFileSync(path) {
      return openFileSync(path, {
        write: true,
        create: true,
        truncate: true,
        read: true
      });
    }
    async function remove(path, options) {
      if (options?.recursive) {
        await promises_1.default.rm(path, { recursive: true });
        return;
      }
      const info = await promises_1.default.lstat(path);
      if (info.isDirectory()) {
        await promises_1.default.rmdir(path);
      } else {
        await promises_1.default.unlink(path);
      }
    }
    function removeSync(path, options) {
      if (options?.recursive) {
        node_fs_1.default.rmSync(path, { recursive: true });
        return;
      }
      const info = node_fs_1.default.lstatSync(path);
      if (info.isDirectory()) {
        node_fs_1.default.rmdirSync(path);
      } else {
        node_fs_1.default.unlinkSync(path);
      }
    }
    async function copyFileFn(src, dest) {
      await promises_1.default.copyFile(src, dest);
    }
    function copyFileSyncFn(src, dest) {
      node_fs_1.default.copyFileSync(src, dest);
    }
    async function renameFn(oldPath, newPath) {
      await promises_1.default.rename(oldPath, newPath);
    }
    function renameSyncFn(oldPath, newPath) {
      node_fs_1.default.renameSync(oldPath, newPath);
    }
    async function ensureDir(path) {
      await mkdirFn(path, { recursive: true });
    }
    function ensureDirSync(path) {
      mkdirSyncFn(path, { recursive: true });
    }
    async function ensureFile(path) {
      const info = await lstatOrUndefined(path);
      if (info != null) {
        if (info.isFile())
          return;
        throw new Error(`Path '${path}' already exists and is not a file.`);
      }
      await mkdirFn((0, node_path_1.dirname)(path), { recursive: true });
      (await createFile(path)).close();
    }
    function ensureFileSync(path) {
      const info = lstatOrUndefinedSync(path);
      if (info != null) {
        if (info.isFile())
          return;
        throw new Error(`Path '${path}' already exists and is not a file.`);
      }
      mkdirSyncFn((0, node_path_1.dirname)(path), { recursive: true });
      createFileSync(path).close();
    }
    async function emptyDir(path) {
      try {
        const entries = [];
        for await (const entry of readDir(path)) {
          entries.push(entry);
        }
        for (const entry of entries) {
          await remove((0, node_path_1.join)(path, entry.name), { recursive: true });
        }
      } catch (err) {
        if (!isNotFoundError(err))
          throw err;
        await mkdirFn(path, { recursive: true });
      }
    }
    function emptyDirSync(path) {
      try {
        const entries = [...readDirSync(path)];
        for (const entry of entries) {
          removeSync((0, node_path_1.join)(path, entry.name), { recursive: true });
        }
      } catch (err) {
        if (!isNotFoundError(err))
          throw err;
        mkdirSyncFn(path, { recursive: true });
      }
    }
    async function copy(src, dest, options) {
      const overwrite = options?.overwrite ?? false;
      const srcInfo = await stat(src);
      await copyRecursive(src, dest, srcInfo, overwrite);
    }
    function copySync(src, dest, options) {
      const overwrite = options?.overwrite ?? false;
      const srcInfo = statSync(src);
      copyRecursiveSync(src, dest, srcInfo, overwrite);
    }
    async function copyRecursive(src, dest, srcInfo, overwrite) {
      let destInfo = await lstatOrUndefined(dest);
      if (destInfo != null && !overwrite) {
        throw new Error(`'${dest}' already exists.`);
      }
      if (srcInfo.isDirectory()) {
        if (destInfo != null && !destInfo.isDirectory()) {
          await remove(dest);
          destInfo = void 0;
        }
        if (destInfo == null) {
          await mkdirFn(dest, { recursive: true });
        }
        for await (const entry of readDir(src)) {
          const srcChild = (0, node_path_1.join)(src, entry.name);
          const destChild = (0, node_path_1.join)(dest, entry.name);
          const childInfo = await stat(srcChild);
          await copyRecursive(srcChild, destChild, childInfo, overwrite);
        }
      } else {
        if (destInfo != null && destInfo.isDirectory()) {
          throw new Error(`Cannot overwrite directory '${dest}' with file '${src}'.`);
        }
        await copyFileFn(src, dest);
      }
    }
    function copyRecursiveSync(src, dest, srcInfo, overwrite) {
      let destInfo = lstatOrUndefinedSync(dest);
      if (destInfo != null && !overwrite) {
        throw new Error(`'${dest}' already exists.`);
      }
      if (srcInfo.isDirectory()) {
        if (destInfo != null && !destInfo.isDirectory()) {
          removeSync(dest);
          destInfo = void 0;
        }
        if (destInfo == null) {
          mkdirSyncFn(dest, { recursive: true });
        }
        for (const entry of readDirSync(src)) {
          const srcChild = (0, node_path_1.join)(src, entry.name);
          const destChild = (0, node_path_1.join)(dest, entry.name);
          const childInfo = statSync(srcChild);
          copyRecursiveSync(srcChild, destChild, childInfo, overwrite);
        }
      } else {
        if (destInfo != null && destInfo.isDirectory()) {
          throw new Error(`Cannot overwrite directory '${dest}' with file '${src}'.`);
        }
        copyFileSyncFn(src, dest);
      }
    }
    async function lstatOrUndefined(path) {
      try {
        return await lstat(path);
      } catch (err) {
        if (isNotFoundError(err))
          return void 0;
        throw err;
      }
    }
    function lstatOrUndefinedSync(path) {
      try {
        return lstatSync(path);
      } catch (err) {
        if (isNotFoundError(err))
          return void 0;
        throw err;
      }
    }
    function openOptionsToFlags(options) {
      const C = node_fs_1.default.constants;
      if (!options)
        return C.O_RDONLY;
      const { read, write, append, truncate, create, createNew } = options;
      const needsWrite = write || append || create || createNew;
      let flags;
      if (read && needsWrite)
        flags = C.O_RDWR;
      else if (needsWrite)
        flags = C.O_WRONLY;
      else
        flags = C.O_RDONLY;
      if (append)
        flags |= C.O_APPEND;
      if (truncate)
        flags |= C.O_TRUNC;
      if (createNew)
        flags |= C.O_CREAT | C.O_EXCL;
      else if (create)
        flags |= C.O_CREAT;
      return flags;
    }
  }
});

// npm/script/deps/jsr.io/@david/path/0.3.2/mod.js
var require_mod2 = __commonJS({
  "npm/script/deps/jsr.io/@david/path/0.3.2/mod.js"(exports2) {
    "use strict";
    var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) {
      if (k2 === void 0)
        k2 = k;
      var desc = Object.getOwnPropertyDescriptor(m, k);
      if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m[k];
        } };
      }
      Object.defineProperty(o, k2, desc);
    } : function(o, m, k, k2) {
      if (k2 === void 0)
        k2 = k;
      o[k2] = m[k];
    });
    var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) {
      Object.defineProperty(o, "default", { enumerable: true, value: v });
    } : function(o, v) {
      o["default"] = v;
    });
    var __importStar2 = exports2 && exports2.__importStar || /* @__PURE__ */ function() {
      var ownKeys = function(o) {
        ownKeys = Object.getOwnPropertyNames || function(o2) {
          var ar = [];
          for (var k in o2)
            if (Object.prototype.hasOwnProperty.call(o2, k))
              ar[ar.length] = k;
          return ar;
        };
        return ownKeys(o);
      };
      return function(mod) {
        if (mod && mod.__esModule)
          return mod;
        var result = {};
        if (mod != null) {
          for (var k = ownKeys(mod), i = 0; i < k.length; i++)
            if (k[i] !== "default")
              __createBinding2(result, mod, k[i]);
        }
        __setModuleDefault2(result, mod);
        return result;
      };
    }();
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.FsFileWrapper = exports2.Path = exports2.FsFile = void 0;
    exports2.path = path;
    var dntShim = __importStar2(require_dnt_shims());
    var path_js_1 = require_path();
    var _fs = __importStar2(require_fs());
    var _fs_js_1 = require_fs();
    Object.defineProperty(exports2, "FsFile", { enumerable: true, get: function() {
      return _fs_js_1.FsFile;
    } });
    function path(path2) {
      return new Path(path2);
    }
    exports2.default = path;
    var Path = class _Path {
      #path;
      #knownResolved = false;
      /** This is a special symbol that allows different versions of
       * `Path` API to match on `instanceof` checks. Ideally
       * people shouldn't be mixing versions, but if it happens then
       * this will maybe reduce some bugs.
       * @internal
       */
      static instanceofSymbol = Symbol.for("@david/path.Path");
      /** Creates a new path from the provided string, URL, or another Path. */
      constructor(path2) {
        if (path2 instanceof URL) {
          this.#path = (0, path_js_1.fromFileUrl)(path2);
        } else if (path2 instanceof _Path) {
          this.#path = path2.toString();
        } else if (typeof path2 === "string") {
          if (path2.startsWith("file://")) {
            this.#path = (0, path_js_1.fromFileUrl)(path2);
          } else {
            this.#path = path2;
          }
        } else {
          throw new Error(`Invalid path argument: ${path2}

Provide a URL, string, or another Path.`);
        }
      }
      /** @internal */
      static [Symbol.hasInstance](instance) {
        return instance?.constructor?.instanceofSymbol === _Path.instanceofSymbol;
      }
      /** @internal */
      [Symbol.for("Deno.customInspect")]() {
        return `Path("${this.#path}")`;
      }
      /** @internal */
      [Symbol.for("nodejs.util.inspect.custom")]() {
        return `Path("${this.#path}")`;
      }
      /** Gets the string representation of this path. */
      toString() {
        return this.#path;
      }
      /** Resolves the path and gets the file URL. */
      toFileUrl() {
        const resolvedPath = this.resolve();
        return (0, path_js_1.toFileUrl)(resolvedPath.toString());
      }
      /** If this path reference is the same as another one. */
      equals(otherPath) {
        return this.resolve().toString() === otherPath.resolve().toString();
      }
      /** Follows symlinks and gets if this path is a directory. */
      isDirSync() {
        return this.statSync()?.isDirectory() ?? false;
      }
      /** Follows symlinks and gets if this path is a file. */
      isFileSync() {
        return this.statSync()?.isFile() ?? false;
      }
      /** Gets if this path is a symlink. */
      isSymlinkSync() {
        return this.lstatSync()?.isSymbolicLink() ?? false;
      }
      /** Gets if this path is an absolute path. */
      isAbsolute() {
        return (0, path_js_1.isAbsolute)(this.#path);
      }
      /** Gets if this path is relative. */
      isRelative() {
        return !this.isAbsolute();
      }
      /** Joins the provided path segments onto this path. */
      join(...pathSegments) {
        return new _Path((0, path_js_1.join)(this.#path, ...pathSegments));
      }
      /** Resolves this path to an absolute path along with the provided path segments. */
      resolve(...pathSegments) {
        if (this.#knownResolved && pathSegments.length === 0) {
          return this;
        }
        const resolvedPath = (0, path_js_1.resolve)(this.#path, ...pathSegments);
        if (pathSegments.length === 0 && resolvedPath === this.#path) {
          this.#knownResolved = true;
          return this;
        } else {
          const pathRef = new _Path(resolvedPath);
          pathRef.#knownResolved = true;
          return pathRef;
        }
      }
      /**
       * Normalizes the `path`, resolving `'..'` and `'.'` segments.
       * Note that resolving these segments does not necessarily mean that all will be eliminated.
       * A `'..'` at the top-level will be preserved, and an empty path is canonically `'.'`.
       */
      normalize() {
        return new _Path((0, path_js_1.normalize)(this.#path));
      }
      /** Resolves the file info of this path following symlinks. */
      async stat() {
        try {
          return await _fs.stat(this.#path);
        } catch (err) {
          if (_fs.isNotFoundError(err)) {
            return void 0;
          } else {
            throw err;
          }
        }
      }
      /** Synchronously resolves the file info of this path following symlinks. */
      statSync() {
        try {
          return _fs.statSync(this.#path);
        } catch (err) {
          if (_fs.isNotFoundError(err)) {
            return void 0;
          } else {
            throw err;
          }
        }
      }
      /** Resolves the file info of this path without following symlinks. */
      async lstat() {
        try {
          return await _fs.lstat(this.#path);
        } catch (err) {
          if (_fs.isNotFoundError(err)) {
            return void 0;
          } else {
            throw err;
          }
        }
      }
      /** Synchronously resolves the file info of this path without following symlinks. */
      lstatSync() {
        try {
          return _fs.lstatSync(this.#path);
        } catch (err) {
          if (_fs.isNotFoundError(err)) {
            return void 0;
          } else {
            throw err;
          }
        }
      }
      /**
       * Gets the directory path. In most cases, it is recommended
       * to use `.parent()` instead since it will give you a `PathRef`.
       */
      dirname() {
        return (0, path_js_1.dirname)(this.#path);
      }
      /** Gets the file or directory name of the path. */
      basename() {
        return (0, path_js_1.basename)(this.#path);
      }
      /** Resolves the path getting all its ancestor directories in order. */
      *ancestors() {
        let ancestor = this.parent();
        while (ancestor != null) {
          yield ancestor;
          ancestor = ancestor.parent();
        }
      }
      /** Iterates over the components of a path. */
      *components() {
        const path2 = this.normalize();
        let last_index = 0;
        if (path2.#path.startsWith("\\\\?\\")) {
          last_index = nextSlash(path2.#path, 4);
          if (last_index === -1) {
            yield path2.#path;
            return;
          } else {
            yield path2.#path.substring(0, last_index);
            last_index += 1;
          }
        } else if (path2.#path.startsWith("/")) {
          last_index += 1;
        }
        while (true) {
          const index = nextSlash(path2.#path, last_index);
          if (index < 0) {
            const part = path2.#path.substring(last_index);
            if (part.length > 0) {
              yield part;
            }
            return;
          }
          yield path2.#path.substring(last_index, index);
          last_index = index + 1;
        }
        function nextSlash(path3, start) {
          for (let i = start; i < path3.length; i++) {
            const c = path3.charCodeAt(i);
            if (c === 47 || c === 92) {
              return i;
            }
          }
          return -1;
        }
      }
      // This is private because this doesn't handle stuff like `\\?\` at the start
      // so it's only used internally with #endsWith for perf. API consumers should
      // use .components()
      *#rcomponents() {
        const path2 = this.normalize();
        let last_index = void 0;
        while (last_index == null || last_index > 0) {
          const index = nextSlash(path2.#path, last_index == null ? void 0 : last_index - 1);
          if (index < 0) {
            const part2 = path2.#path.substring(0, last_index);
            if (part2.length > 0) {
              yield part2;
            }
            return;
          }
          const part = path2.#path.substring(index + 1, last_index);
          if (last_index != null || part.length > 0) {
            yield part;
          }
          last_index = index;
        }
        function nextSlash(path3, start) {
          for (let i = start ?? path3.length - 1; i >= 0; i--) {
            const c = path3.charCodeAt(i);
            if (c === 47 || c === 92) {
              return i;
            }
          }
          return -1;
        }
      }
      /** Gets if the provided path starts with the specified Path, URL, or string.
       *
       * This verifies based on matching the components.
       *
       * ```
       * assert(new Path("/a/b/c").startsWith("/a/b"));
       * assert(!new Path("/example").endsWith("/exam"));
       * ```
       */
      startsWith(path2) {
        const startsWithComponents = ensurePath(path2).components();
        for (const component of this.components()) {
          const next = startsWithComponents.next();
          if (next.done) {
            return true;
          }
          if (next.value !== component) {
            return false;
          }
        }
        return startsWithComponents.next().done ?? true;
      }
      /** Gets if the provided path ends with the specified Path, URL, or string.
       *
       * This verifies based on matching the components.
       *
       * ```
       * assert(new Path("/a/b/c").endsWith("b/c"));
       * assert(!new Path("/a/b/example").endsWith("ple"));
       * ```
       */
      endsWith(path2) {
        const endsWithComponents = ensurePath(path2).#rcomponents();
        for (const component of this.#rcomponents()) {
          const next = endsWithComponents.next();
          if (next.done) {
            return true;
          }
          if (next.value !== component) {
            return false;
          }
        }
        return endsWithComponents.next().done ?? true;
      }
      /** Gets the parent directory or returns undefined if the parent is the root directory. */
      parent() {
        const resolvedPath = this.resolve();
        const dirname = resolvedPath.dirname();
        if (dirname === resolvedPath.#path) {
          return void 0;
        } else {
          return new _Path(dirname);
        }
      }
      /** Gets the parent or throws if the current directory was the root. */
      parentOrThrow() {
        const parent = this.parent();
        if (parent == null) {
          throw new Error(`Cannot get the parent directory of '${this.#path}'.`);
        }
        return parent;
      }
      /**
       * Returns the extension of the path with leading period or undefined
       * if there is no extension.
       */
      extname() {
        const extName = (0, path_js_1.extname)(this.#path);
        return extName.length === 0 ? void 0 : extName;
      }
      /** Gets a new path reference with the provided extension. */
      withExtname(ext) {
        const currentExt = this.extname();
        const hasLeadingPeriod = ext.charCodeAt(0) === /* period */
        46;
        if (!hasLeadingPeriod && ext.length !== 0) {
          ext = "." + ext;
        }
        return new _Path(this.#path.substring(0, this.#path.length - (currentExt?.length ?? 0)) + ext);
      }
      /** Gets a new path reference with the provided file or directory name. */
      withBasename(basename) {
        const currentBaseName = this.basename();
        return new _Path(this.#path.substring(0, this.#path.length - currentBaseName.length) + basename);
      }
      /** Gets the relative path from this path to the specified path. */
      relative(to) {
        const toPathRef = ensurePath(to);
        return (0, path_js_1.relative)(this.resolve().#path, toPathRef.resolve().toString());
      }
      /** Gets if the path exists. Beware of TOCTOU issues. */
      exists() {
        return this.lstat().then((info) => info != null);
      }
      /** Synchronously gets if the path exists. Beware of TOCTOU issues. */
      existsSync() {
        return this.lstatSync() != null;
      }
      /** Resolves to the absolute normalized path, with symbolic links resolved. */
      realPath() {
        return _fs.realPath(this.#path).then((path2) => new _Path(path2));
      }
      /** Synchronously resolves to the absolute normalized path, with symbolic links resolved. */
      realPathSync() {
        return new _Path(_fs.realPathSync(this.#path));
      }
      /** Creates a directory at this path.
       * @remarks By default, this is recursive.
       */
      async mkdir(options) {
        await _fs.mkdirFn(this.#path, {
          recursive: true,
          ...options
        });
        return this;
      }
      /** Synchronously creates a directory at this path.
       * @remarks By default, this is recursive.
       */
      mkdirSync(options) {
        _fs.mkdirSyncFn(this.#path, {
          recursive: true,
          ...options
        });
        return this;
      }
      async symlinkTo(target, opts) {
        await createSymlink(this.#resolveCreateSymlinkOpts(target, opts));
      }
      symlinkToSync(target, opts) {
        createSymlinkSync(this.#resolveCreateSymlinkOpts(target, opts));
      }
      #resolveCreateSymlinkOpts(target, opts) {
        if (opts?.kind == null) {
          if (typeof target === "string") {
            return {
              fromPath: this.resolve(),
              targetPath: ensurePath(target),
              text: target,
              type: opts?.type
            };
          } else {
            throw new Error("Please specify if this symlink is absolute or relative. Otherwise provide the target text.");
          }
        }
        const targetPath = ensurePath(target).resolve();
        if (opts?.kind === "relative") {
          const fromPath = this.resolve();
          const relativePath = fromPath.parentOrThrow().relative(targetPath);
          return {
            fromPath,
            targetPath,
            text: relativePath,
            type: opts?.type
          };
        } else {
          return {
            fromPath: this.resolve(),
            targetPath,
            text: targetPath.toString(),
            type: opts?.type
          };
        }
      }
      /**
       * Creates a hardlink to the provided target path.
       */
      async linkTo(targetPath) {
        const targetPathRef = ensurePath(targetPath).resolve();
        await _fs.linkFn(targetPathRef.toString(), this.resolve().toString());
      }
      /**
       * Synchronously creates a hardlink to the provided target path.
       */
      linkToSync(targetPath) {
        const targetPathRef = ensurePath(targetPath).resolve();
        _fs.linkSyncFn(targetPathRef.toString(), this.resolve().toString());
      }
      /** Reads the entries in the directory. */
      async *readDir() {
        const dir = this.resolve();
        for await (const entry of _fs.readDir(dir.#path)) {
          const out = entry;
          out.path = dir.join(entry.name);
          yield out;
        }
      }
      /** Synchronously reads the entries in the directory. */
      *readDirSync() {
        const dir = this.resolve();
        for (const entry of _fs.readDirSync(dir.#path)) {
          const out = entry;
          out.path = dir.join(entry.name);
          yield out;
        }
      }
      /** Reads only the directory file paths, not including symlinks. */
      async *readDirFilePaths() {
        const dir = this.resolve();
        for await (const entry of _fs.readDir(dir.#path)) {
          if (entry.isFile()) {
            yield dir.join(entry.name);
          }
        }
      }
      /** Synchronously reads only the directory file paths, not including symlinks. */
      *readDirFilePathsSync() {
        const dir = this.resolve();
        for (const entry of _fs.readDirSync(dir.#path)) {
          if (entry.isFile()) {
            yield dir.join(entry.name);
          }
        }
      }
      /** Reads the bytes from the file. */
      readBytes(options) {
        return _fs.readFile(this.#path, options);
      }
      /** Synchronously reads the bytes from the file. */
      readBytesSync() {
        return _fs.readFileSync(this.#path);
      }
      /** Calls `.readBytes()`, but returns undefined if the path doesn't exist. */
      readMaybeBytes(options) {
        return notFoundToUndefined(() => this.readBytes(options));
      }
      /** Calls `.readBytesSync()`, but returns undefined if the path doesn't exist. */
      readMaybeBytesSync() {
        return notFoundToUndefinedSync(() => this.readBytesSync());
      }
      /** Reads the text from the file. */
      readText(options) {
        return _fs.readTextFile(this.#path, options);
      }
      /** Synchronously reads the text from the file. */
      readTextSync() {
        return _fs.readTextFileSync(this.#path);
      }
      /** Calls `.readText()`, but returns undefined when the path doesn't exist.
       * @remarks This still errors for other kinds of errors reading a file.
       */
      readMaybeText(options) {
        return notFoundToUndefined(() => this.readText(options));
      }
      /** Calls `.readTextSync()`, but returns undefined when the path doesn't exist.
       * @remarks This still errors for other kinds of errors reading a file.
       */
      readMaybeTextSync() {
        return notFoundToUndefinedSync(() => this.readTextSync());
      }
      /** Reads the file's text and returns an array of its lines.
       *
       * Lines are split at `\n` or `\r\n`. Line terminators are not included.
       * A trailing blank line caused by a final line ending is excluded (matches
       * [Rust's `str::lines`](https://doc.rust-lang.org/std/primitive.str.html#method.lines)).
       */
      async lines(options) {
        return [...splitLines(await this.readText(options))];
      }
      /** Synchronously reads the file's text and returns an array of its lines.
       *
       * See `.lines()` for the splitting semantics.
       */
      linesSync() {
        return [...splitLines(this.readTextSync())];
      }
      /** Streams the file and iterates over its lines without loading it all into memory.
       *
       * See `.lines()` for the splitting semantics.
       */
      async *linesIter(options) {
        const file = await _fs.openFile(this.#path, { read: true });
        try {
          const decoder = new dntShim.TextDecoder();
          const chunk = new Uint8Array(16384);
          let buffer = "";
          while (true) {
            options?.signal?.throwIfAborted();
            const n = await file.read(chunk);
            if (n === 0)
              break;
            buffer += decoder.decode(chunk.subarray(0, n), { stream: true });
            let start = 0;
            while (true) {
              const nl = buffer.indexOf("\n", start);
              if (nl === -1)
                break;
              const end = nl > start && buffer.charCodeAt(nl - 1) === 13 ? nl - 1 : nl;
              yield buffer.substring(start, end);
              start = nl + 1;
            }
            if (start > 0)
              buffer = buffer.substring(start);
          }
          buffer += decoder.decode();
          if (buffer !== "")
            yield buffer;
        } finally {
          try {
            file.close();
          } catch {
          }
        }
      }
      /** Synchronously streams the file and iterates over its lines without
       * loading it all into memory.
       *
       * See `.lines()` for the splitting semantics.
       */
      *linesIterSync() {
        const file = _fs.openFileSync(this.#path, { read: true });
        try {
          const decoder = new dntShim.TextDecoder();
          const chunk = new Uint8Array(16384);
          let buffer = "";
          while (true) {
            const n = file.readSync(chunk);
            if (n === 0)
              break;
            buffer += decoder.decode(chunk.subarray(0, n), { stream: true });
            let start = 0;
            while (true) {
              const nl = buffer.indexOf("\n", start);
              if (nl === -1)
                break;
              const end = nl > start && buffer.charCodeAt(nl - 1) === 13 ? nl - 1 : nl;
              yield buffer.substring(start, end);
              start = nl + 1;
            }
            if (start > 0)
              buffer = buffer.substring(start);
          }
          buffer += decoder.decode();
          if (buffer !== "")
            yield buffer;
        } finally {
          try {
            file.close();
          } catch {
          }
        }
      }
      /** Reads and parses the file as JSON, throwing if it doesn't exist or is not valid JSON. */
      async readJson(options) {
        return this.#parseJson(await this.readText(options));
      }
      /** Synchronously reads and parses the file as JSON, throwing if it doesn't
       * exist or is not valid JSON. */
      readJsonSync() {
        return this.#parseJson(this.readTextSync());
      }
      #parseJson(text) {
        try {
          return JSON.parse(text);
        } catch (err) {
          throw new Error(`Failed parsing JSON in '${this.toString()}'.`, {
            cause: err
          });
        }
      }
      /**
       * Calls `.readJson()`, but returns undefined if the file doesn't exist.
       * @remarks This method will still throw if the file cannot be parsed as JSON.
       */
      readMaybeJson(options) {
        return notFoundToUndefined(() => this.readJson(options));
      }
      /**
       * Calls `.readJsonSync()`, but returns undefined if the file doesn't exist.
       * @remarks This method will still throw if the file cannot be parsed as JSON.
       */
      readMaybeJsonSync() {
        return notFoundToUndefinedSync(() => this.readJsonSync());
      }
      /** Writes out the provided bytes or text to the file.
       *
       * Strings are encoded as UTF-8.
       */
      async write(data, options) {
        const bytes = typeof data === "string" ? new TextEncoder().encode(data) : data;
        await this.#withFileForWriting(options, (file) => {
          return writeAll(file, bytes, options?.signal);
        });
        return this;
      }
      /** Synchronously writes out the provided bytes or text to the file.
       *
       * Strings are encoded as UTF-8.
       */
      writeSync(data, options) {
        const bytes = typeof data === "string" ? new TextEncoder().encode(data) : data;
        this.#withFileForWritingSync(options, (file) => {
          writeAllSync(file, bytes, options?.signal);
        });
        return this;
      }
      /** Writes the provided text to the file.
       * @deprecated Use `.write(text)` instead — `write` now accepts strings.
       */
      writeText(text, options) {
        return this.write(text, options);
      }
      /** Synchronously writes the provided text to the file.
       * @deprecated Use `.writeSync(text)` instead — `writeSync` now accepts strings.
       */
      writeTextSync(text, options) {
        return this.writeSync(text, options);
      }
      /** Writes out the provided object as compact JSON. */
      async writeJson(obj, options) {
        await this.write(JSON.stringify(obj) + "\n", options);
        return this;
      }
      /** Synchronously writes out the provided object as compact JSON. */
      writeJsonSync(obj, options) {
        this.writeSync(JSON.stringify(obj) + "\n", options);
        return this;
      }
      /** Writes out the provided object as formatted JSON. */
      async writeJsonPretty(obj, options) {
        await this.write(JSON.stringify(obj, void 0, 2) + "\n", options);
        return this;
      }
      /** Synchronously writes out the provided object as formatted JSON. */
      writeJsonPrettySync(obj, options) {
        this.writeSync(JSON.stringify(obj, void 0, 2) + "\n", options);
        return this;
      }
      /** Appends the provided bytes or text to the file.
       *
       * Strings are encoded as UTF-8.
       */
      async append(data, options) {
        const bytes = typeof data === "string" ? new TextEncoder().encode(data) : data;
        await this.#withFileForAppending(options, (file) => writeAll(file, bytes, options?.signal));
        return this;
      }
      /** Synchronously appends the provided bytes or text to the file.
       *
       * Strings are encoded as UTF-8.
       */
      appendSync(data, options) {
        const bytes = typeof data === "string" ? new TextEncoder().encode(data) : data;
        this.#withFileForAppendingSync(options, (file) => {
          writeAllSync(file, bytes, options?.signal);
        });
        return this;
      }
      #withFileForAppending(options, action) {
        return this.#withFileForWriting({
          append: true,
          ...options
        }, action);
      }
      async #withFileForWriting(options, action) {
        const file = await this.#openFileMaybeCreatingDirectory({
          write: true,
          create: true,
          truncate: options?.append !== true,
          ...options
        });
        try {
          return await action(file);
        } finally {
          try {
            file.close();
          } catch {
          }
        }
      }
      /** Opens a file, but handles if the directory does not exist. */
      async #openFileMaybeCreatingDirectory(options) {
        const resolvedPath = this.resolve();
        try {
          return await resolvedPath.open(options);
        } catch (err) {
          if (_fs.isNotFoundError(err)) {
            const parent = resolvedPath.parent();
            if (parent != null) {
              try {
                await parent.mkdir();
              } catch {
                throw err;
              }
            }
            return await resolvedPath.open(options);
          } else {
            throw err;
          }
        }
      }
      #withFileForAppendingSync(options, action) {
        return this.#withFileForWritingSync({
          append: true,
          ...options
        }, action);
      }
      #withFileForWritingSync(options, action) {
        const file = this.#openFileForWritingSync(options);
        try {
          return action(file);
        } finally {
          try {
            file.close();
          } catch {
          }
        }
      }
      /** Opens a file for writing, but handles if the directory does not exist. */
      #openFileForWritingSync(options) {
        return this.#openFileMaybeCreatingDirectorySync({
          write: true,
          create: true,
          truncate: options?.append !== true,
          ...options
        });
      }
      /** Opens a file for writing, but handles if the directory does not exist. */
      #openFileMaybeCreatingDirectorySync(options) {
        try {
          return this.openSync(options);
        } catch (err) {
          if (_fs.isNotFoundError(err)) {
            const parent = this.resolve().parent();
            if (parent != null) {
              try {
                parent.mkdirSync();
              } catch {
                throw err;
              }
            }
            return this.openSync(options);
          } else {
            throw err;
          }
        }
      }
      /** Changes the permissions of the file or directory. */
      async chmod(mode) {
        await _fs.chmod(this.#path, mode);
        return this;
      }
      /** Synchronously changes the permissions of the file or directory. */
      chmodSync(mode) {
        _fs.chmodSync(this.#path, mode);
        return this;
      }
      /** Changes the ownership permissions of the file. */
      async chown(uid, gid) {
        await _fs.chown(this.#path, uid, gid);
        return this;
      }
      /** Synchronously changes the ownership permissions of the file. */
      chownSync(uid, gid) {
        _fs.chownSync(this.#path, uid, gid);
        return this;
      }
      /** Creates a new file or opens the existing one. */
      create() {
        return _fs.createFile(this.#path).then((file) => createFsFileWrapper(file));
      }
      /** Synchronously creates a new file or opens the existing one. */
      createSync() {
        return createFsFileWrapper(_fs.createFileSync(this.#path));
      }
      /** Creates a file throwing if a file previously existed. */
      createNew() {
        return this.open({
          createNew: true,
          read: true,
          write: true
        });
      }
      /** Synchronously creates a file throwing if a file previously existed. */
      createNewSync() {
        return this.openSync({
          createNew: true,
          read: true,
          write: true
        });
      }
      /** Opens a file. */
      open(options) {
        return _fs.openFile(this.#path, options).then((file) => createFsFileWrapper(file));
      }
      /** Opens a file synchronously. */
      openSync(options) {
        return createFsFileWrapper(_fs.openFileSync(this.#path, options));
      }
      /** Removes the file or directory from the file system. */
      async remove(options) {
        await _fs.remove(this.#path, options);
        return this;
      }
      /** Removes the file or directory from the file system synchronously. */
      removeSync(options) {
        _fs.removeSync(this.#path, options);
        return this;
      }
      /** Removes the file or directory from the file system, but doesn't throw
       * when the file doesn't exist.
       */
      async ensureRemove(options) {
        try {
          return await this.remove(options);
        } catch (err) {
          if (_fs.isNotFoundError(err)) {
            return this;
          } else {
            throw err;
          }
        }
      }
      /** Removes the file or directory from the file system, but doesn't throw
       * when the file doesn't exist.
       */
      ensureRemoveSync(options) {
        try {
          return this.removeSync(options);
        } catch (err) {
          if (_fs.isNotFoundError(err)) {
            return this;
          } else {
            throw err;
          }
        }
      }
      /**
       * Ensures that a directory is empty.
       * Deletes directory contents if the directory is not empty.
       * If the directory does not exist, it is created.
       * The directory itself is not deleted.
       */
      async emptyDir() {
        await _fs.emptyDir(this.toString());
        return this;
      }
      /** Synchronous version of `emptyDir()` */
      emptyDirSync() {
        _fs.emptyDirSync(this.toString());
        return this;
      }
      /** Ensures that the directory exists.
       * If the directory structure does not exist, it is created. Like mkdir -p.
       */
      async ensureDir() {
        await _fs.ensureDir(this.toString());
        return this;
      }
      /** Synchronously ensures that the directory exists.
       * If the directory structure does not exist, it is created. Like mkdir -p.
       */
      ensureDirSync() {
        _fs.ensureDirSync(this.toString());
        return this;
      }
      /**
       * Ensures that the file exists.
       * If the file that is requested to be created is in directories that do
       * not exist these directories are created. If the file already exists,
       * it is NOTMODIFIED.
       */
      async ensureFile() {
        await _fs.ensureFile(this.toString());
        return this;
      }
      /**
       * Synchronously ensures that the file exists.
       * If the file that is requested to be created is in directories that do
       * not exist these directories are created. If the file already exists,
       * it is NOTMODIFIED.
       */
      ensureFileSync() {
        _fs.ensureFileSync(this.toString());
        return this;
      }
      /** Copies a file or directory to the provided destination.
       * @returns The destination path.
       */
      async copy(destinationPath, options) {
        const pathRef = ensurePath(destinationPath);
        await _fs.copy(this.#path, pathRef.toString(), options);
        return pathRef;
      }
      /** Copies a file or directory to the provided destination synchronously.
       * @returns The destination path.
       */
      copySync(destinationPath, options) {
        const pathRef = ensurePath(destinationPath);
        _fs.copySync(this.#path, pathRef.toString(), options);
        return pathRef;
      }
      /**
       * Copies the file or directory to the specified directory.
       * @returns The destination path.
       */
      copyToDir(destinationDirPath, options) {
        const destinationPath = ensurePath(destinationDirPath).join(this.basename());
        return this.copy(destinationPath, options);
      }
      /**
       * Copies the file or directory to the specified directory synchronously.
       * @returns The destination path.
       */
      copyToDirSync(destinationDirPath, options) {
        const destinationPath = ensurePath(destinationDirPath).join(this.basename());
        return this.copySync(destinationPath, options);
      }
      /**
       * Copies the file to the specified destination path.
       * @returns The destination path.
       */
      copyFile(destinationPath) {
        const pathRef = ensurePath(destinationPath);
        return _fs.copyFileFn(this.#path, pathRef.toString()).then(() => pathRef);
      }
      /**
       * Copies the file to the destination path synchronously.
       * @returns The destination path.
       */
      copyFileSync(destinationPath) {
        const pathRef = ensurePath(destinationPath);
        _fs.copyFileSyncFn(this.#path, pathRef.toString());
        return pathRef;
      }
      /**
       * Copies the file to the specified directory.
       * @returns The destination path.
       */
      copyFileToDir(destinationDirPath) {
        const destinationPath = ensurePath(destinationDirPath).join(this.basename());
        return this.copyFile(destinationPath);
      }
      /**
       * Copies the file to the specified directory synchronously.
       * @returns The destination path.
       */
      copyFileToDirSync(destinationDirPath) {
        const destinationPath = ensurePath(destinationDirPath).join(this.basename());
        return this.copyFileSync(destinationPath);
      }
      /**
       * Moves the file or directory returning a promise that resolves to
       * the renamed path.
       * @returns The destination path.
       */
      rename(newPath) {
        const pathRef = ensurePath(newPath);
        return _fs.renameFn(this.#path, pathRef.toString()).then(() => pathRef);
      }
      /**
       * Moves the file or directory returning the renamed path synchronously.
       * @returns The destination path.
       */
      renameSync(newPath) {
        const pathRef = ensurePath(newPath);
        _fs.renameSyncFn(this.#path, pathRef.toString());
        return pathRef;
      }
      /**
       * Moves the file or directory to the specified directory.
       * @returns The destination path.
       */
      renameToDir(destinationDirPath) {
        const destinationPath = ensurePath(destinationDirPath).join(this.basename());
        return this.rename(destinationPath);
      }
      /**
       * Moves the file or directory to the specified directory synchronously.
       * @returns The destination path.
       */
      renameToDirSync(destinationDirPath) {
        const destinationPath = ensurePath(destinationDirPath).join(this.basename());
        return this.renameSync(destinationPath);
      }
      /** Opens the file and pipes it to the writable stream. */
      async pipeTo(dest, options) {
        const file = await _fs.openFile(this.#path, { read: true });
        try {
          await file.readable.pipeTo(dest, options);
        } finally {
          try {
            file.close();
          } catch {
          }
        }
        return this;
      }
    };
    exports2.Path = Path;
    function ensurePath(path2) {
      return path2 instanceof Path ? path2 : new Path(path2);
    }
    function createFsFileWrapper(file) {
      Object.setPrototypeOf(file, FsFileWrapper.prototype);
      return file;
    }
    var FsFileWrapper = class extends _fs.FsFile {
      /** Writes the provided text to this file, looping to handle partial writes. */
      writeText(text) {
        return this.writeBytes(new TextEncoder().encode(text));
      }
      /** Synchronously writes the provided text to this file, looping to handle partial writes. */
      writeTextSync(text) {
        return this.writeBytesSync(new TextEncoder().encode(text));
      }
      /** Writes all the provided bytes to this file, looping to handle partial writes. */
      async writeBytes(bytes) {
        let nwritten = 0;
        while (nwritten < bytes.length) {
          nwritten += await this.write(bytes.subarray(nwritten));
        }
        return this;
      }
      /** Synchronously writes all the provided bytes to this file, looping to handle partial writes. */
      writeBytesSync(bytes) {
        let nwritten = 0;
        while (nwritten < bytes.length) {
          nwritten += this.writeSync(bytes.subarray(nwritten));
        }
        return this;
      }
      /** Writes all the provided data to this file, dispatching to `.writeText` or `.writeBytes` based on input type. */
      writeAll(data) {
        return typeof data === "string" ? this.writeText(data) : this.writeBytes(data);
      }
      /** Synchronously writes all the provided data to this file, dispatching to `.writeTextSync` or `.writeBytesSync` based on input type. */
      writeAllSync(data) {
        return typeof data === "string" ? this.writeTextSync(data) : this.writeBytesSync(data);
      }
    };
    exports2.FsFileWrapper = FsFileWrapper;
    async function createSymlink(opts) {
      let kind = opts.type;
      if (kind == null && _fs.isWindows()) {
        const info = await opts.targetPath.lstat();
        if (info?.isDirectory()) {
          kind = "dir";
        } else if (info?.isFile()) {
          kind = "file";
        } else {
          throw _fs.createNotFoundError(`The target path '${opts.targetPath}' did not exist or path kind could not be determined. When the path doesn't exist, you need to specify a symlink type on Windows.`);
        }
      }
      await _fs.symlinkFn(opts.text, opts.fromPath.toString(), kind == null ? void 0 : {
        type: kind
      });
    }
    function createSymlinkSync(opts) {
      let kind = opts.type;
      if (kind == null && _fs.isWindows()) {
        const info = opts.targetPath.lstatSync();
        if (info?.isDirectory()) {
          kind = "dir";
        } else if (info?.isFile()) {
          kind = "file";
        } else {
          throw _fs.createNotFoundError(`The target path '${opts.targetPath}' did not exist or path kind could not be determined. When the path doesn't exist, you need to specify a symlink type on Windows.`);
        }
      }
      _fs.symlinkSyncFn(opts.text, opts.fromPath.toString(), kind == null ? void 0 : {
        type: kind
      });
    }
    async function notFoundToUndefined(action) {
      try {
        return await action();
      } catch (err) {
        if (_fs.isNotFoundError(err)) {
          return void 0;
        } else {
          throw err;
        }
      }
    }
    function notFoundToUndefinedSync(action) {
      try {
        return action();
      } catch (err) {
        if (_fs.isNotFoundError(err)) {
          return void 0;
        } else {
          throw err;
        }
      }
    }
    async function writeAll(writer, data, signal) {
      let nwritten = 0;
      while (nwritten < data.length) {
        signal?.throwIfAborted();
        nwritten += await writer.write(data.subarray(nwritten));
      }
    }
    function writeAllSync(writer, data, signal) {
      let nwritten = 0;
      while (nwritten < data.length) {
        signal?.throwIfAborted();
        nwritten += writer.writeSync(data.subarray(nwritten));
      }
    }
    function* splitLines(text) {
      if (text === "")
        return;
      let start = 0;
      while (true) {
        const nl = text.indexOf("\n", start);
        if (nl === -1) {
          if (start < text.length)
            yield text.substring(start);
          return;
        }
        const end = nl > start && text.charCodeAt(nl - 1) === 13 ? nl - 1 : nl;
        yield text.substring(start, end);
        start = nl + 1;
        if (start === text.length)
          return;
      }
    }
  }
});

// npm/script/deps/jsr.io/@david/console-static-text/0.3.4/lib/rs_lib.internal.js
var require_rs_lib_internal = __commonJS({
  "npm/script/deps/jsr.io/@david/console-static-text/0.3.4/lib/rs_lib.internal.js"(exports2, module2) {
    "use strict";
    var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) {
      if (k2 === void 0)
        k2 = k;
      var desc = Object.getOwnPropertyDescriptor(m, k);
      if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m[k];
        } };
      }
      Object.defineProperty(o, k2, desc);
    } : function(o, m, k, k2) {
      if (k2 === void 0)
        k2 = k;
      o[k2] = m[k];
    });
    var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) {
      Object.defineProperty(o, "default", { enumerable: true, value: v });
    } : function(o, v) {
      o["default"] = v;
    });
    var __importStar2 = exports2 && exports2.__importStar || /* @__PURE__ */ function() {
      var ownKeys = function(o) {
        ownKeys = Object.getOwnPropertyNames || function(o2) {
          var ar = [];
          for (var k in o2)
            if (Object.prototype.hasOwnProperty.call(o2, k))
              ar[ar.length] = k;
          return ar;
        };
        return ownKeys(o);
      };
      return function(mod) {
        if (mod && mod.__esModule)
          return mod;
        var result = {};
        if (mod != null) {
          for (var k = ownKeys(mod), i = 0; i < k.length; i++)
            if (k[i] !== "default")
              __createBinding2(result, mod, k[i]);
        }
        __setModuleDefault2(result, mod);
        return result;
      };
    }();
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.StaticTextContainer = void 0;
    exports2.__wbg_set_wasm = __wbg_set_wasm;
    exports2.static_text_render_once = static_text_render_once;
    exports2.strip_ansi_codes = strip_ansi_codes;
    exports2.__wbg_buffer_609cc3eee51ed158 = __wbg_buffer_609cc3eee51ed158;
    exports2.__wbg_call_672a4d21634d4a24 = __wbg_call_672a4d21634d4a24;
    exports2.__wbg_done_769e5ede4b31c67b = __wbg_done_769e5ede4b31c67b;
    exports2.__wbg_entries_3265d4158b33e5dc = __wbg_entries_3265d4158b33e5dc;
    exports2.__wbg_get_67b2ba62fc30de12 = __wbg_get_67b2ba62fc30de12;
    exports2.__wbg_get_b9b93047fe3cf45b = __wbg_get_b9b93047fe3cf45b;
    exports2.__wbg_instanceof_ArrayBuffer_e14585432e3737fc = __wbg_instanceof_ArrayBuffer_e14585432e3737fc;
    exports2.__wbg_instanceof_Map_f3469ce2244d2430 = __wbg_instanceof_Map_f3469ce2244d2430;
    exports2.__wbg_instanceof_Uint8Array_17156bcf118086a9 = __wbg_instanceof_Uint8Array_17156bcf118086a9;
    exports2.__wbg_isArray_a1eab7e0d067391b = __wbg_isArray_a1eab7e0d067391b;
    exports2.__wbg_isSafeInteger_343e2beeeece1bb0 = __wbg_isSafeInteger_343e2beeeece1bb0;
    exports2.__wbg_iterator_9a24c88df860dc65 = __wbg_iterator_9a24c88df860dc65;
    exports2.__wbg_length_a446193dc22c12f8 = __wbg_length_a446193dc22c12f8;
    exports2.__wbg_length_e2d2a49132c1b256 = __wbg_length_e2d2a49132c1b256;
    exports2.__wbg_new_a12002a7f91c75be = __wbg_new_a12002a7f91c75be;
    exports2.__wbg_next_25feadfc0913fea9 = __wbg_next_25feadfc0913fea9;
    exports2.__wbg_next_6574e1a8a62d1055 = __wbg_next_6574e1a8a62d1055;
    exports2.__wbg_set_65595bdd868b3009 = __wbg_set_65595bdd868b3009;
    exports2.__wbg_value_cd1ffa7b1ab794f1 = __wbg_value_cd1ffa7b1ab794f1;
    exports2.__wbindgen_bigint_from_i64 = __wbindgen_bigint_from_i64;
    exports2.__wbindgen_bigint_from_u64 = __wbindgen_bigint_from_u64;
    exports2.__wbindgen_bigint_get_as_i64 = __wbindgen_bigint_get_as_i64;
    exports2.__wbindgen_boolean_get = __wbindgen_boolean_get;
    exports2.__wbindgen_debug_string = __wbindgen_debug_string;
    exports2.__wbindgen_error_new = __wbindgen_error_new;
    exports2.__wbindgen_in = __wbindgen_in;
    exports2.__wbindgen_init_externref_table = __wbindgen_init_externref_table;
    exports2.__wbindgen_is_bigint = __wbindgen_is_bigint;
    exports2.__wbindgen_is_function = __wbindgen_is_function;
    exports2.__wbindgen_is_object = __wbindgen_is_object;
    exports2.__wbindgen_jsval_eq = __wbindgen_jsval_eq;
    exports2.__wbindgen_jsval_loose_eq = __wbindgen_jsval_loose_eq;
    exports2.__wbindgen_memory = __wbindgen_memory;
    exports2.__wbindgen_number_get = __wbindgen_number_get;
    exports2.__wbindgen_string_get = __wbindgen_string_get;
    exports2.__wbindgen_throw = __wbindgen_throw;
    var dntShim = __importStar2(require_dnt_shims());
    var wasm;
    function __wbg_set_wasm(val) {
      wasm = val;
    }
    function addToExternrefTable0(obj) {
      const idx = wasm.__externref_table_alloc();
      wasm.__wbindgen_export_2.set(idx, obj);
      return idx;
    }
    function handleError(f, args) {
      try {
        return f.apply(this, args);
      } catch (e) {
        const idx = addToExternrefTable0(e);
        wasm.__wbindgen_exn_store(idx);
      }
    }
    function isLikeNone(x) {
      return x === void 0 || x === null;
    }
    var cachedDataViewMemory0 = null;
    function getDataViewMemory0() {
      if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || cachedDataViewMemory0.buffer.detached === void 0 && cachedDataViewMemory0.buffer !== wasm.memory.buffer) {
        cachedDataViewMemory0 = new DataView(wasm.memory.buffer);
      }
      return cachedDataViewMemory0;
    }
    function debugString(val) {
      const type = typeof val;
      if (type == "number" || type == "boolean" || val == null) {
        return `${val}`;
      }
      if (type == "string") {
        return `"${val}"`;
      }
      if (type == "symbol") {
        const description = val.description;
        if (description == null) {
          return "Symbol";
        } else {
          return `Symbol(${description})`;
        }
      }
      if (type == "function") {
        const name = val.name;
        if (typeof name == "string" && name.length > 0) {
          return `Function(${name})`;
        } else {
          return "Function";
        }
      }
      if (Array.isArray(val)) {
        const length = val.length;
        let debug = "[";
        if (length > 0) {
          debug += debugString(val[0]);
        }
        for (let i = 1; i < length; i++) {
          debug += ", " + debugString(val[i]);
        }
        debug += "]";
        return debug;
      }
      const builtInMatches = /\[object ([^\]]+)\]/.exec(toString.call(val));
      let className;
      if (builtInMatches && builtInMatches.length > 1) {
        className = builtInMatches[1];
      } else {
        return toString.call(val);
      }
      if (className == "Object") {
        try {
          return "Object(" + JSON.stringify(val) + ")";
        } catch (_) {
          return "Object";
        }
      }
      if (val instanceof Error) {
        return `${val.name}: ${val.message}
${val.stack}`;
      }
      return className;
    }
    var WASM_VECTOR_LEN = 0;
    var cachedUint8ArrayMemory0 = null;
    function getUint8ArrayMemory0() {
      if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {
        cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer);
      }
      return cachedUint8ArrayMemory0;
    }
    var lTextEncoder = typeof TextEncoder === "undefined" ? (0, module2.require)("util").TextEncoder : TextEncoder;
    var cachedTextEncoder = new lTextEncoder("utf-8");
    var encodeString = typeof cachedTextEncoder.encodeInto === "function" ? function(arg, view) {
      return cachedTextEncoder.encodeInto(arg, view);
    } : function(arg, view) {
      const buf = cachedTextEncoder.encode(arg);
      view.set(buf);
      return {
        read: arg.length,
        written: buf.length
      };
    };
    function passStringToWasm0(arg, malloc, realloc) {
      if (realloc === void 0) {
        const buf = cachedTextEncoder.encode(arg);
        const ptr2 = malloc(buf.length, 1) >>> 0;
        getUint8ArrayMemory0().subarray(ptr2, ptr2 + buf.length).set(buf);
        WASM_VECTOR_LEN = buf.length;
        return ptr2;
      }
      let len = arg.length;
      let ptr = malloc(len, 1) >>> 0;
      const mem = getUint8ArrayMemory0();
      let offset = 0;
      for (; offset < len; offset++) {
        const code = arg.charCodeAt(offset);
        if (code > 127)
          break;
        mem[ptr + offset] = code;
      }
      if (offset !== len) {
        if (offset !== 0) {
          arg = arg.slice(offset);
        }
        ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0;
        const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len);
        const ret = encodeString(arg, view);
        offset += ret.written;
        ptr = realloc(ptr, len, offset, 1) >>> 0;
      }
      WASM_VECTOR_LEN = offset;
      return ptr;
    }
    var lTextDecoder = typeof dntShim.TextDecoder === "undefined" ? (0, module2.require)("util").TextDecoder : dntShim.TextDecoder;
    var cachedTextDecoder = new lTextDecoder("utf-8", {
      ignoreBOM: true,
      fatal: true
    });
    cachedTextDecoder.decode();
    function getStringFromWasm0(ptr, len) {
      ptr = ptr >>> 0;
      return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));
    }
    function takeFromExternrefTable0(idx) {
      const value = wasm.__wbindgen_export_2.get(idx);
      wasm.__externref_table_dealloc(idx);
      return value;
    }
    function static_text_render_once(items, cols, rows) {
      const ret = wasm.static_text_render_once(items, isLikeNone(cols) ? 4294967297 : cols >>> 0, isLikeNone(rows) ? 4294967297 : rows >>> 0);
      if (ret[3]) {
        throw takeFromExternrefTable0(ret[2]);
      }
      let v1;
      if (ret[0] !== 0) {
        v1 = getStringFromWasm0(ret[0], ret[1]).slice();
        wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
      }
      return v1;
    }
    function strip_ansi_codes(text) {
      let deferred2_0;
      let deferred2_1;
      try {
        const ptr0 = passStringToWasm0(text, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
        const len0 = WASM_VECTOR_LEN;
        const ret = wasm.strip_ansi_codes(ptr0, len0);
        deferred2_0 = ret[0];
        deferred2_1 = ret[1];
        return getStringFromWasm0(ret[0], ret[1]);
      } finally {
        wasm.__wbindgen_free(deferred2_0, deferred2_1, 1);
      }
    }
    var StaticTextContainerFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {
    }, unregister: () => {
    } } : new FinalizationRegistry((ptr) => wasm.__wbg_statictextcontainer_free(ptr >>> 0, 1));
    var StaticTextContainer = class {
      __destroy_into_raw() {
        const ptr = this.__wbg_ptr;
        this.__wbg_ptr = 0;
        StaticTextContainerFinalization.unregister(this);
        return ptr;
      }
      free() {
        const ptr = this.__destroy_into_raw();
        wasm.__wbg_statictextcontainer_free(ptr, 0);
      }
      constructor() {
        const ret = wasm.statictextcontainer_new();
        this.__wbg_ptr = ret >>> 0;
        StaticTextContainerFinalization.register(this, this.__wbg_ptr, this);
        return this;
      }
      /**
       * @param {any} items
       * @param {number | null} [cols]
       * @param {number | null} [rows]
       * @returns {string | undefined}
       */
      render_text(items, cols, rows) {
        const ret = wasm.statictextcontainer_render_text(this.__wbg_ptr, items, isLikeNone(cols) ? 4294967297 : cols >>> 0, isLikeNone(rows) ? 4294967297 : rows >>> 0);
        if (ret[3]) {
          throw takeFromExternrefTable0(ret[2]);
        }
        let v1;
        if (ret[0] !== 0) {
          v1 = getStringFromWasm0(ret[0], ret[1]).slice();
          wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
        }
        return v1;
      }
      /**
       * @param {number | null} [cols]
       * @param {number | null} [rows]
       * @returns {string | undefined}
       */
      clear_text(cols, rows) {
        const ret = wasm.statictextcontainer_clear_text(this.__wbg_ptr, isLikeNone(cols) ? 4294967297 : cols >>> 0, isLikeNone(rows) ? 4294967297 : rows >>> 0);
        let v1;
        if (ret[0] !== 0) {
          v1 = getStringFromWasm0(ret[0], ret[1]).slice();
          wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
        }
        return v1;
      }
    };
    exports2.StaticTextContainer = StaticTextContainer;
    function __wbg_buffer_609cc3eee51ed158(arg0) {
      const ret = arg0.buffer;
      return ret;
    }
    function __wbg_call_672a4d21634d4a24() {
      return handleError(function(arg0, arg1) {
        const ret = arg0.call(arg1);
        return ret;
      }, arguments);
    }
    function __wbg_done_769e5ede4b31c67b(arg0) {
      const ret = arg0.done;
      return ret;
    }
    function __wbg_entries_3265d4158b33e5dc(arg0) {
      const ret = Object.entries(arg0);
      return ret;
    }
    function __wbg_get_67b2ba62fc30de12() {
      return handleError(function(arg0, arg1) {
        const ret = Reflect.get(arg0, arg1);
        return ret;
      }, arguments);
    }
    function __wbg_get_b9b93047fe3cf45b(arg0, arg1) {
      const ret = arg0[arg1 >>> 0];
      return ret;
    }
    function __wbg_instanceof_ArrayBuffer_e14585432e3737fc(arg0) {
      let result;
      try {
        result = arg0 instanceof ArrayBuffer;
      } catch (_) {
        result = false;
      }
      const ret = result;
      return ret;
    }
    function __wbg_instanceof_Map_f3469ce2244d2430(arg0) {
      let result;
      try {
        result = arg0 instanceof Map;
      } catch (_) {
        result = false;
      }
      const ret = result;
      return ret;
    }
    function __wbg_instanceof_Uint8Array_17156bcf118086a9(arg0) {
      let result;
      try {
        result = arg0 instanceof Uint8Array;
      } catch (_) {
        result = false;
      }
      const ret = result;
      return ret;
    }
    function __wbg_isArray_a1eab7e0d067391b(arg0) {
      const ret = Array.isArray(arg0);
      return ret;
    }
    function __wbg_isSafeInteger_343e2beeeece1bb0(arg0) {
      const ret = Number.isSafeInteger(arg0);
      return ret;
    }
    function __wbg_iterator_9a24c88df860dc65() {
      const ret = Symbol.iterator;
      return ret;
    }
    function __wbg_length_a446193dc22c12f8(arg0) {
      const ret = arg0.length;
      return ret;
    }
    function __wbg_length_e2d2a49132c1b256(arg0) {
      const ret = arg0.length;
      return ret;
    }
    function __wbg_new_a12002a7f91c75be(arg0) {
      const ret = new Uint8Array(arg0);
      return ret;
    }
    function __wbg_next_25feadfc0913fea9(arg0) {
      const ret = arg0.next;
      return ret;
    }
    function __wbg_next_6574e1a8a62d1055() {
      return handleError(function(arg0) {
        const ret = arg0.next();
        return ret;
      }, arguments);
    }
    function __wbg_set_65595bdd868b3009(arg0, arg1, arg2) {
      arg0.set(arg1, arg2 >>> 0);
    }
    function __wbg_value_cd1ffa7b1ab794f1(arg0) {
      const ret = arg0.value;
      return ret;
    }
    function __wbindgen_bigint_from_i64(arg0) {
      const ret = arg0;
      return ret;
    }
    function __wbindgen_bigint_from_u64(arg0) {
      const ret = BigInt.asUintN(64, arg0);
      return ret;
    }
    function __wbindgen_bigint_get_as_i64(arg0, arg1) {
      const v = arg1;
      const ret = typeof v === "bigint" ? v : void 0;
      getDataViewMemory0().setBigInt64(arg0 + 8 * 1, isLikeNone(ret) ? BigInt(0) : ret, true);
      getDataViewMemory0().setInt32(arg0 + 4 * 0, !isLikeNone(ret), true);
    }
    function __wbindgen_boolean_get(arg0) {
      const v = arg0;
      const ret = typeof v === "boolean" ? v ? 1 : 0 : 2;
      return ret;
    }
    function __wbindgen_debug_string(arg0, arg1) {
      const ret = debugString(arg1);
      const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
      const len1 = WASM_VECTOR_LEN;
      getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);
      getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);
    }
    function __wbindgen_error_new(arg0, arg1) {
      const ret = new Error(getStringFromWasm0(arg0, arg1));
      return ret;
    }
    function __wbindgen_in(arg0, arg1) {
      const ret = arg0 in arg1;
      return ret;
    }
    function __wbindgen_init_externref_table() {
      const table = wasm.__wbindgen_export_2;
      const offset = table.grow(4);
      table.set(0, void 0);
      table.set(offset + 0, void 0);
      table.set(offset + 1, null);
      table.set(offset + 2, true);
      table.set(offset + 3, false);
    }
    function __wbindgen_is_bigint(arg0) {
      const ret = typeof arg0 === "bigint";
      return ret;
    }
    function __wbindgen_is_function(arg0) {
      const ret = typeof arg0 === "function";
      return ret;
    }
    function __wbindgen_is_object(arg0) {
      const val = arg0;
      const ret = typeof val === "object" && val !== null;
      return ret;
    }
    function __wbindgen_jsval_eq(arg0, arg1) {
      const ret = arg0 === arg1;
      return ret;
    }
    function __wbindgen_jsval_loose_eq(arg0, arg1) {
      const ret = arg0 == arg1;
      return ret;
    }
    function __wbindgen_memory() {
      const ret = wasm.memory;
      return ret;
    }
    function __wbindgen_number_get(arg0, arg1) {
      const obj = arg1;
      const ret = typeof obj === "number" ? obj : void 0;
      getDataViewMemory0().setFloat64(arg0 + 8 * 1, isLikeNone(ret) ? 0 : ret, true);
      getDataViewMemory0().setInt32(arg0 + 4 * 0, !isLikeNone(ret), true);
    }
    function __wbindgen_string_get(arg0, arg1) {
      const obj = arg1;
      const ret = typeof obj === "string" ? obj : void 0;
      var ptr1 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
      var len1 = WASM_VECTOR_LEN;
      getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);
      getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);
    }
    function __wbindgen_throw(arg0, arg1) {
      throw new Error(getStringFromWasm0(arg0, arg1));
    }
  }
});

// npm/script/deps/jsr.io/@david/console-static-text/0.3.4/lib/rs_lib.js
var require_rs_lib = __commonJS({
  "npm/script/deps/jsr.io/@david/console-static-text/0.3.4/lib/rs_lib.js"(exports2) {
    "use strict";
    var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) {
      if (k2 === void 0)
        k2 = k;
      var desc = Object.getOwnPropertyDescriptor(m, k);
      if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m[k];
        } };
      }
      Object.defineProperty(o, k2, desc);
    } : function(o, m, k, k2) {
      if (k2 === void 0)
        k2 = k;
      o[k2] = m[k];
    });
    var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) {
      Object.defineProperty(o, "default", { enumerable: true, value: v });
    } : function(o, v) {
      o["default"] = v;
    });
    var __importStar2 = exports2 && exports2.__importStar || /* @__PURE__ */ function() {
      var ownKeys = function(o) {
        ownKeys = Object.getOwnPropertyNames || function(o2) {
          var ar = [];
          for (var k in o2)
            if (Object.prototype.hasOwnProperty.call(o2, k))
              ar[ar.length] = k;
          return ar;
        };
        return ownKeys(o);
      };
      return function(mod) {
        if (mod && mod.__esModule)
          return mod;
        var result = {};
        if (mod != null) {
          for (var k = ownKeys(mod), i = 0; i < k.length; i++)
            if (k[i] !== "default")
              __createBinding2(result, mod, k[i]);
        }
        __setModuleDefault2(result, mod);
        return result;
      };
    }();
    var __exportStar = exports2 && exports2.__exportStar || function(m, exports3) {
      for (var p in m)
        if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p))
          __createBinding2(exports3, m, p);
    };
    Object.defineProperty(exports2, "__esModule", { value: true });
    var imports = __importStar2(require_rs_lib_internal());
    var bytes = base64decode("AGFzbQEAAAABpwIrYAJ/fwBgAn9/AX9gA39/fwF/YAN/f38AYAF/AGABfwF/YAFvAX9gBX9/f39/AGAEf39/fwBgAW8Bb2AEf39/fwF/YAJ/bwBgBn9/f39/fwBgAAR/f39/YAACf39gAm9vAX9gAAF/YAV/f39/fwF/YAF+AW9gAAFvYAJvbwFvYAAAYAZ/f39/f38Bf2ADf35/AGACf34AYAJvfwFvYAJ/fwFvYANvb38AYAh/f39/f39/fwBgCX9/f39/f35+fgBgB39/f39/f38Bf2ADf35+AGACf3wAYAR/b3x8BH9/f39gA298fAR/f39/YAN/fHwCf39gAn9/An9/YAV/f31/fwBgBH99f38AYAV/f35/fwBgBH9+f38AYAV/f3x/fwBgBH98f38AApcOJBQuL3JzX2xpYi5pbnRlcm5hbC5qcxpfX3diZ19nZXRfYjliOTMwNDdmZTNjZjQ1YgAZFC4vcnNfbGliLmludGVybmFsLmpzGV9fd2JpbmRnZW5fanN2YWxfbG9vc2VfZXEADxQuL3JzX2xpYi5pbnRlcm5hbC5qcyxfX3diZ19pbnN0YW5jZW9mX1VpbnQ4QXJyYXlfMTcxNTZiY2YxMTgwODZhOQAGFC4vcnNfbGliLmludGVybmFsLmpzLV9fd2JnX2luc3RhbmNlb2ZfQXJyYXlCdWZmZXJfZTE0NTg1NDMyZTM3MzdmYwAGFC4vcnNfbGliLmludGVybmFsLmpzGl9fd2JnX25ld19hMTIwMDJhN2Y5MWM3NWJlAAkULi9yc19saWIuaW50ZXJuYWwuanMWX193YmluZGdlbl9ib29sZWFuX2dldAAGFC4vcnNfbGliLmludGVybmFsLmpzFV9fd2JpbmRnZW5fbnVtYmVyX2dldAALFC4vcnNfbGliLmludGVybmFsLmpzFV9fd2JpbmRnZW5fc3RyaW5nX2dldAALFC4vcnNfbGliLmludGVybmFsLmpzFF9fd2JpbmRnZW5fZXJyb3JfbmV3ABoULi9yc19saWIuaW50ZXJuYWwuanMdX193YmdfbGVuZ3RoX2UyZDJhNDkxMzJjMWIyNTYABhQuL3JzX2xpYi5pbnRlcm5hbC5qcxRfX3diaW5kZ2VuX2lzX2JpZ2ludAAGFC4vcnNfbGliLmludGVybmFsLmpzJF9fd2JnX2lzU2FmZUludGVnZXJfMzQzZTJiZWVlZWNlMWJiMAAGFC4vcnNfbGliLmludGVybmFsLmpzGl9fd2JpbmRnZW5fYmlnaW50X2Zyb21faTY0ABIULi9yc19saWIuaW50ZXJuYWwuanMaX193YmluZGdlbl9iaWdpbnRfZnJvbV91NjQAEhQuL3JzX2xpYi5pbnRlcm5hbC5qcxRfX3diaW5kZ2VuX2lzX29iamVjdAAGFC4vcnNfbGliLmludGVybmFsLmpzH19fd2JnX2l0ZXJhdG9yXzlhMjRjODhkZjg2MGRjNjUAExQuL3JzX2xpYi5pbnRlcm5hbC5qcw1fX3diaW5kZ2VuX2luAA8ULi9yc19saWIuaW50ZXJuYWwuanMlX193YmdfaW5zdGFuY2VvZl9NYXBfZjM0NjljZTIyNDRkMjQzMAAGFC4vcnNfbGliLmludGVybmFsLmpzHl9fd2JnX2VudHJpZXNfMzI2NWQ0MTU4YjMzZTVkYwAJFC4vcnNfbGliLmludGVybmFsLmpzE19fd2JpbmRnZW5fanN2YWxfZXEADxQuL3JzX2xpYi5pbnRlcm5hbC5qcxZfX3diaW5kZ2VuX2lzX2Z1bmN0aW9uAAYULi9yc19saWIuaW50ZXJuYWwuanMbX193YmdfbmV4dF82NTc0ZTFhOGE2MmQxMDU1AAkULi9yc19saWIuaW50ZXJuYWwuanMbX193YmdfZG9uZV83NjllNWVkZTRiMzFjNjdiAAYULi9yc19saWIuaW50ZXJuYWwuanMcX193YmdfdmFsdWVfY2QxZmZhN2IxYWI3OTRmMQAJFC4vcnNfbGliLmludGVybmFsLmpzGl9fd2JnX2dldF82N2IyYmE2MmZjMzBkZTEyABQULi9yc19saWIuaW50ZXJuYWwuanMbX193YmdfY2FsbF82NzJhNGQyMTYzNGQ0YTI0ABQULi9yc19saWIuaW50ZXJuYWwuanMbX193YmdfbmV4dF8yNWZlYWRmYzA5MTNmZWE5AAkULi9yc19saWIuaW50ZXJuYWwuanMeX193YmdfaXNBcnJheV9hMWVhYjdlMGQwNjczOTFiAAYULi9yc19saWIuaW50ZXJuYWwuanMdX193YmdfbGVuZ3RoX2E0NDYxOTNkYzIyYzEyZjgABhQuL3JzX2xpYi5pbnRlcm5hbC5qcxFfX3diaW5kZ2VuX21lbW9yeQATFC4vcnNfbGliLmludGVybmFsLmpzHV9fd2JnX2J1ZmZlcl82MDljYzNlZWU1MWVkMTU4AAkULi9yc19saWIuaW50ZXJuYWwuanMaX193Ymdfc2V0XzY1NTk1YmRkODY4YjMwMDkAGxQuL3JzX2xpYi5pbnRlcm5hbC5qcxBfX3diaW5kZ2VuX3Rocm93AAAULi9yc19saWIuaW50ZXJuYWwuanMcX193YmluZGdlbl9iaWdpbnRfZ2V0X2FzX2k2NAALFC4vcnNfbGliLmludGVybmFsLmpzF19fd2JpbmRnZW5fZGVidWdfc3RyaW5nAAsULi9yc19saWIuaW50ZXJuYWwuanMfX193YmluZGdlbl9pbml0X2V4dGVybnJlZl90YWJsZQAVA4UCgwIFHAEABwADCAIBAwEKAQMABAMAARYCAwMAAgIAHRABAAACAB4XDAMDDAEBAAEIAQAHAwAHABUBAwMAAAgABAUCBwAAAQAMCAEIDAUAAR8HAAADAwgDAAIEAgABCAAAAAMBAAADAwQABAMDAAgAAAcBBAEAAAAHBAACAwMAAwMABwADGBggAwEBEAQDAAQEAwEBBQUAAAADEQEEAQQBCiEAIgAAASMEJAAAAAAEFgoDBxElJykDAQgEBAIBBAQEAQEEBQEAAQEABAABBAQEAQEBAQEBAgADBAQHAQQFEAMBAQAFAAQBBQAAAwMAAAAEAQAABQUAAAAAAAAFBQUFAAcICggXBAkCcAE2Nm8AgAEFAwEAEQYJAX8BQYCAwAALB/ACDwZtZW1vcnkCAB5fX3diZ19zdGF0aWN0ZXh0Y29udGFpbmVyX2ZyZWUAXhdzdGF0aWN0ZXh0Y29udGFpbmVyX25ldwCsAR9zdGF0aWN0ZXh0Y29udGFpbmVyX3JlbmRlcl90ZXh0AMIBHnN0YXRpY3RleHRjb250YWluZXJfY2xlYXJfdGV4dADIARdzdGF0aWNfdGV4dF9yZW5kZXJfb25jZQDEARBzdHJpcF9hbnNpX2NvZGVzAMoBFF9fd2JpbmRnZW5fZXhuX3N0b3JlAPoBF19fZXh0ZXJucmVmX3RhYmxlX2FsbG9jAEETX193YmluZGdlbl9leHBvcnRfMgEBEV9fd2JpbmRnZW5fbWFsbG9jALwBEl9f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EIYBIANBNGogAUG4mcAAEJ0BDAELA0AgA0HMAGoQtgEiBkGAgMQARwRAIANBCGogBhB9IAMoAghBAXFFDQEgBSADKAIMIgEgBGoiBEkEQCADQYABaiIEIANBkAFqEIYBIANBNGogBEGomcAAEJ0BIANBADYCnAEgAyAGIANBnAFqEJ4BIAQgAygCACADKAIEEIwBIANBmAFqIANBiAFqKAIANgIAIAMgAykCgAE3A5ABIAEhBAwCBSADQZABaiAGEIUBDAILAAsLIAMoApgBBEAgA0GAAWoiASADQZABahCGASADQTRqIAFBmJnAABCdAQUgAygCkAEgAygClAEQjgILDAALAAsgA0HYAGogAiABENgBA0AgA0EYaiADQdgAahBGIAMoAhgiAUUNBiADQZABaiIEIAEgAygCHBCMASADQYABaiIBIAQQhgEgA0E0aiABQciZwAAQnQEMAAsACyAEKQIEIQ4gASAKaiILIAc2AgAgC0EEaiAONwIAIAZBEGshBiAFQRBqIQUgAUEMaiEBIAhBAWohCCAEQRBqIQQMAQsLDAQLDAMLIAAgASkCADcCACABQoCAgIDAADcCACAAQQhqIAFBCGoiACgCADYCACAAQQA2AgAMAQsgA0GIAWoiBCADQTxqKAIANgIAIAMgAykCNDcDgAECQCAOQoCAgIAQg1ANACADKAKIASIGIA5CMIinIgFNDQAgA0EANgKIASADIAMoAoQBIgU2AlggAyABNgJoIAMgBiABayIBNgJkIAMgBSABQQR0ajYCXCADIANBgAFqNgJgIANB2ABqEGELIAAgAykDgAE3AgAgAEEIaiAEKAIANgIAIAMoAkAgAhDqASAHIAoQjgIgCSEBA0AgCARAIAEoAgAgAUEEaigCABCOAiAIQQFrIQggAUEMaiEBDAELCyAMIAlBBEEMEHcLIANBoAFqJAAPCyADQQA2AmggA0EBNgJcIANByJXAADYCWCADQgQ3AmAgA0HYAGpB9JbAABDGAQALzAoBBX8jAEEQayIGJAACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAJB/wFxQQFrDg8ACgsCAQwZBhEHEggYGAkZCyAAQQA6AIEKIABBADYC8AEgAEEAOwH+CSAAQQA6AOQBIABBADYC4AEM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IAAoAugBIAJBH3FBBnRyNgLoAUEDIQMMCAsgAsBBQEgiBEEBdCEDCyAERQ0EIAAgACgC6AEgAkE/cUEMdHI2AugBDAYLQQULIQMgACAAKALoASACQQ9xQQx0cjYC6AEMBAtBByEDCyAAIAAoAugBIAJBB3FBEnRyNgLoAQwCCyAAQQA2AugBIAEoAhQhAiABLQAYQQFGBEAgAUEAOgAYIAEgAkEDazYCDAsgAEEMOgCACiABIAI2AhAMAQsgACAAKALoASACQT9xQQZ0cjYC6AFBAyEDCyAAIAM6AOwBC6MEAQd/IwBBoAprIgMkACADQQBBgAH8CwAgA0EANgLwASADQQw6AIAKIANBgAFqQQBB5QD8CwAgA0EAOgCBCiADQQA2AvQBIANCADcC+AkgA0EAOgDsASADQQA2AugBIANCADcClAogA0IANwKMCiADQQA6AJwKIANCgICAgMAANwKECgNAAkACQCACBEAgAyADKAKYCkEBajYCmAogAS0AACEEIAMtAIAKIgdBD0YEQCADIANBhApqIAQQOgwDCyAEQfaZwQBqLQAAIgVFBEAgB0EIdCAEckH2mcEAai0AACEFCyAFQfABcUEEdiEIIAVBD3EiBkUEQCADIANBhApqIAggBBArDAMLQQghCQJAAkACQCAHQQlrDgUAAgICAQILQQ4hCQsgAyADQYQKaiAJIAQQKwsgBUEPTQ0BIAMgA0GECmogCCAEECsMAQsgAyADKAKYCjYClAogA0GECmogAy0AnAoQjgEgAEEIaiADQYwKaigCADYCACAAIAMpAoQKNwIAIANBoApqJAAPCwJAAkACQAJAAkAgBkEFaw4JAgQEBAACBAQDAQsgAyADQYQKakEGIAQQKwwDCyAGQQFHDQILIANBADoAgQogA0EANgLwASADQQA7Af4JIANBADoA5AEgA0EANgLgAQwBCyADKAL0AQRAIANBADYC9AELIANBADYC+AkLIAMgBjoAgAoLIAFBAWohASACQQFrIQIMAAsAC/kDAQJ/IAAgAWohAgJAAkAgACgCBCIDQQFxDQAgA0ECcUUNASAAKAIAIgMgAWohASAAIANrIgBBgMDBACgCAEYEQCACKAIEQQNxQQNHDQFB+L/BACABNgIAIAIgAigCBEF+cTYCBCAAIAFBAXI2AgQgAiABNgIADAILIAAgAxBE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ADYCGCAAQgQ3AiAgAEEYakGQu8EAEMYBAAv2AQECfyMAQTBrIgIkAAJAIAApAwBC////////////AINCgICAgICAgPj/AFoEQCACQQE2AhQgAkHA08AANgIQIAJCATcCHCACQR42AiwgAiAANgIoIAIgAkEoajYCGCABKAIAIAEoAgQgAkEQahD3ASEDDAELIAJBADoADCACIAE2AghBASEDIAJBATYCFCACQcDTwAA2AhAgAkIBNwIcIAJBHjYCLCACIAA2AiggAiACQShqNgIYIAJBCGogAkEQahD2AQ0AIAItAAxFBEAgASgCAEHI08AAQQIgASgCBCgCDBECAA0BC0EAIQMLIAJBMGokACADC/gBAQN/IwBBIGsiAyQAAkACf0EAIAEgASACaiICSw0AGkEAQQggAiAAKAIAIgRBAXQiASABIAJJGyIBIAFBCE0bIgFBAEgNABogAyAEBH8gAyAENgIcIAMgACgCBDYCFEEBBUEACzYCGCADQQhqIQICfwJAIANBFGoiBCgCBEUNACAEKAIIIgVFDQAgBCgCACAFQQEgARAwDAELIAEQJAshBCACIAE2AgggAiAEQQEgBBs2AgQgAiAERTYCACADKAIIQQFHDQEgAygCEBogAygCDAtB1JLAABDnAQALIAMoAgwhAiAAIAE2AgAgACACNgIEIANBIGokAAuzAQEDfyMAQRBrIgUkACABKAIIIgMgAksEQCABKAIEIAJBA3RqIgQoAgQhASAEKAIAIQQgACADIAJBAWpLBH8gBUEANgIMIAVBDSAFQQxqEJ4BQQAhAiAFKAIEIgMgAU0EQCAEQQAgBSgCACADIAQgASADa2ogAxDRARshAgsgAiAEIAIbIQQgASADQQAgAhtrBSABCzYCBCAAIAQ2AgAgBUEQaiQADwsgAiADQZiawAAQdgALsQEAAkAgAEGAAU8EQCAAQYAQSQ0BIABBgIAETwRAIAEgAEE/cUGAAXI6AAMgASAAQRJ2QfABcjoAACABIABBBnZBP3FBgAFyOgACIAEgAEEMdkE/cUGAAXI6AAEPCyABIABBP3FBgAFyOgACIAEgAEEMdkHgAXI6AAAgASAAQQZ2QT9xQYABcjoAAQ8LIAEgADoAAA8LIAEgAEE/cUGAAXI6AAEgASAAQQZ2QcABcjoAAAu+AQICfwF+IwBBIGsiAiQAIAAQ/gEgAEEIayEDAkACQCABRQRAIAMoAgBBAUcNAiACQRhqIABBHGopAgA3AwAgAkEQaiAAQRRqKQIANwMAIAJBCGogAEEMaikCADcDACAAKQIEIQQgA0EANgIAIAIgBDcDAAJAIANBf0YNACAAQQRrIgAgACgCAEEBayIANgIAIAANACADQSwQgAELIAIQmgEMAQsgAxDbAQsgAkEgaiQADwtBldDAAEE/EJQCAAupAQICfwF+IwBBEGsiBCQAIAACfwJAIAIgA2pBAWtBACACa3GtIAGtfiIGQiCIUARAIAanIgNBgICAgHggAmtNDQELIABBADYCBEEBDAELIANFBEAgACACNgIIIABBADYCBEEADAELIARBCGogAiADENIBIAQoAggiBQRAIAAgBTYCCCAAIAE2AgRBAAwBCyAAIAM2AgggACACNgIEQQELNgIAIARBEGokAAvCAQEFfyMAQRBrIgMkACABKAIMIQICQAJAAkACQAJAAkAgASgCBA4CAAECCyACDQFBASECQQAhAQwCCyACDQAgASgCACICKAIEIQEgAigCACECDAELIAAgARBTDAELIANBBGogAUEBQQEQXyADKAIIIQQgAygCBEEBRg0BIAMoAgwhBSABBEAgBSACIAH8CgAACyAAIAE2AgggACAFNgIEIAAgBDYCAAsgA0EQaiQADwsgAygCDCEGIARBxM7AABDnAQALrQEBBX8gACgCBCEBIAAoAgAhAiAAQoSAgIDAADcCAAJAIAEgAkYNACABIAJrQQR2IQEDQCABRQ0BIAIoAgAgAkEEaigCABCOAiABQQFrIQEgAkEQaiECDAALAAsgACgCECICBEACQCAAKAIMIgMgACgCCCIAKAIIIgFGDQAgAkEEdCIERQ0AIAAoAgQiBSABQQR0aiAFIANBBHRqIAT8CgAACyAAIAEgAmo2AggLC5kBAQJ/AkAgAEEJayIBQRhPBEBBACEBIABBgAFJDQECQCAAQQh2IgIEQCACQTBHBEAgAkEgRg0CIAJBFkcNBCAAQYAtRiEBDAQLIABBgOAARiEBDAMLIABB/wFxQfegwABqLQAAIQEMAgsgAEH/AXFB96DAAGotAABBAnFBAXYhAQwBC0EAQZ+AgAQgAXZBAXFrIQELIAFBAXELlAEBBX8jAEEQayIDJAACQCACQQdNBEAgAiEEIAEhBQNAIARFBEBBACEGDAMLIARBAWshBEEBIQYgBS0AACAFQQFqIQVBLkcNAAsMAQsgA0EIakEuIAEgAhBRIAMoAghBAUYhBgsgACAGIAAtAARyOgAEIAAoAgAiACgCACABIAIgAEEEaigCACgCDBECACADQRBqJAALhAECAn8BfiMAQRBrIgUkAAJAAkAgAiADakEBa0EAIAJrca0gAa1+IgdCIIhQRQ0AIAenIgNBgICAgHggAmtLDQAgA0UEQEEAIQEMAgsgBUEIaiACIAMQ0gEgAiEGIAUoAggiAg0BCyAGIAQQ5wEACyAAIAI2AgQgACABNgIAIAVBEGokAAurAQIEfwFvIwBBEGsiAyQAAkAgAS0ABARAQQIhBAwBCyABKAIAJQEQFSEGEEEiAiAGJgEgA0EIahDJAUEBIQQgAygCDCACIAMoAghBAXEiBRshAiAFBEAgAUEBOgAEIAIhAQwBCwJ/IAIlARAWRQRAIAIlARAXIQYQQSIBIAYmAUEADAELIAFBAToABEECCyEEIAIQ+wELIAAgATYCBCAAIAQ2AgAgA0EQaiQAC40BAQF/IwBBEGsiAiQAAkAgASgCACIBJQEQAgRAIAJBBGogARBvIABBCGogAkEMaigCADYCACAAIAIpAgQ3AgAMAQsgASUBEAMEQCACQQRqIAEQ5QEiARBvIABBCGogAkEMaigCADYCACAAIAIpAgQ3AgAgARD7AQwBCyAAQYCAgIB4NgIACyACQRBqJAALjQEBBH8jAEEQayICJAACf0EBIAEoAgAiA0EnIAEoAgQiBSgCECIBEQEADQAaIAIgACgCAEGBAhAuAkAgAi0ADSIAQYEBTwRAIAMgAigCACABEQEARQ0BQQEMAgsgAyACIAItAAwiBGogACAEayAFKAIMEQIARQ0AQQEMAQsgA0EnIAERAQALIAJBEGokAAuqAQECfyMAQRBrIgIkAAJAAkACQAJAAkACQEEVIAEoAgBBgICAgHhzIgMgA0EVTxtBDGsOBAECAwQACyABIAJBD2pB+MrAABBFIQEgAEGAgICAeDYCACAAIAE2AgQMBAsgACABKAIIIAEoAgwQjQEMAwsgACABKAIEIAEoAggQjQEMAgsgACABKAIIIAEoAgwQNQwBCyAAIAEoAgQgASgCCBA1CyACQRBqJAALlwEBA38jAEEgayIGJAACQCABBEAgBkEUaiIHIAEgAyAEIAUgAigCEBEHACAAIAYoAhwiASAGKAIUSQR/IAZBCGogByABQQRBBBBXIAYoAggiAUGBgICAeEcNAiAGKAIcBSABCzYCBCAAIAYoAhg2AgAgBkEgaiQADwtB5NDAAEEyEJQCAAsgBigCDCEIIAFB1NDAABDnAQALjgEBAn8jAEEQayIEJAACfyADKAIEBEAgAygCCCIFRQRAIARBCGogASACENIBIAQoAgghAyAEKAIMDAILIAMoAgAgBSABIAIQMCEDIAIMAQsgBCABIAIQ0gEgBCgCACEDIAQoAgQLIQUgACADIAEgAxs2AgQgACADRTYCACAAIAUgAiADGzYCCCAEQRBqJAALlwEBAX8jAEFAaiICJAAgAkIANwM4IAJBOGogACgCACUBECIgAiACKAI8IgA2AjQgAiACKAI4NgIwIAIgADYCLCACQQo2AiggAkECNgIQIAJBlLzBADYCDCACQgE3AhggAiACQSxqNgIkIAIgAkEkajYCFCABKAIAIAEoAgQgAkEMahA5IAIoAiwgAigCMBCKAiACQUBrJAALhQEBA38jAEEQayIEJAACQCADQQdNBEAgAUH/AXEhBkEAIQEDQCABIANGBEAgAyEBDAMLIAYgASACai0AAEYEQEEBIQUMAwUgAUEBaiEBDAELAAsACyAEQQhqIAEgAiADEFEgBCgCDCEBIAQoAgghBQsgACAFNgIAIAAgATYCBCAEQRBqJAALfQACQCADIARLDQACQCADRQ0AIAIgA00EQCACIANHDQIMAQsgASADaiwAAEG/f0wNAQsCQCAERQ0AIAIgBE0EQCACIARGDQEMAgsgASAEaiwAAEG/f0wNAQsgACAEIANrNgIEIAAgASADajYCAA8LIAEgAiADIAQgBRD8AQALjQEBAn8CQAJAAkACQAJAAkACQAJAAkAgAEEKdiIBQQhrDgUBAgMIBAALAkAgAUH8AGsOAgUGAAsgAUUNBgwHC0EBIQEMBQtBAiEBDAQLQQMhAQwDC0EEIQEMAgtBBSEBDAELQQYhAQsgAEEDdkH/AHEgAUEHdHJBgJHBAGotAAAgAEEHcXYhAgsgAkEBcQumAQIGfwFvIwBBEGsiAiQAIAJBBGogARCgAkEBQQEQXyACKAIIIQMgAigCBEEBRgRAIAIoAgwaIANBmNHAABDnAQALIAIoAgwhBBAdIQgQQSIFIAgmASAFJQEQHiEIEEEiBiAIJgEgBhDlASEHIAYQ+wEgByUBIAElASAEEB8gBxD7ASAFEPsBIAAgARCgAjYCCCAAIAQ2AgQgACADNgIAIAJBEGokAAt6AQJ/IAEvAQAhAwJAAkACQAJAIAAvAQBBAUYEQCADQQFxRQ0EIAAvAQIgAS8BAkcNBAwBCyADQQFxDQELIAEvAQQhAiAALwEEQQFHDQEgAkEBcUUNACAALwEGIAEvAQZGIQIMAgtBACECDAELIAJBAXMhAgsgAkEBcQtiAQR+IAAgAkL/////D4MiAyABQv////8PgyIEfiIFIAQgAkIgiCICfiIEIAMgAUIgiCIGfnwiAUIghnwiAzcDACAAIAMgBVStIAIgBn4gASAEVK1CIIYgAUIgiIR8fDcDCAt8AQF/IwBBQGoiBSQAIAUgATYCDCAFIAA2AgggBSADNgIUIAUgAjYCECAFQQI2AhwgBUH0tcAANgIYIAVCAjcCJCAFIAVBEGqtQoCAgICwAYQ3AzggBSAFQQhqrUKAgICAwAGENwMwIAUgBUEwajYCICAFQRhqIAQQxgEAC3YBBX8jAEEQayICJAAgASgCACEEIAEoAgQhBSACQQhqIAEQWAJAIAIoAghBAXFFBEBBgIDEACEDDAELIAIoAgwhAyABIAEoAgAgASgCCCIGIAVqIAQgASgCBGprajYCCAsgACADNgIEIAAgBjYCACACQRBqJAALbgECfwJAIAAoAmAgAC0AZCIDayICQR9NBEAgACACaiADQQFqOgBAIAAoAmAiAkEgSQ0BIAJBIEGMlcAAEHYACyACQSBB/JTAABB2AAsgACACQQF0aiABOwEAIABBADoAZCAAIAAoAmBBAWo2AmALewECfyMAQRBrIgMkAEHUvMEAQdS8wQAoAgAiBEEBajYCAAJAIARBAEgNAAJAQaDAwQAtAABFBEBBnMDBAEGcwMEAKAIAQQFqNgIAQdC8wQAoAgBBAE4NAQwCCyADQQhqIAAgAREAAAALQaDAwQBBADoAACACRQ0AAAsAC2sBAX8jAEEwayIDJAAgAyABNgIEIAMgADYCACADQQI2AgwgA0HItMAANgIIIANCAjcCFCADIAOtQoCAgIDQAYQ3AyggAyADQQRqrUKAgICA0AGENwMgIAMgA0EgajYCECADQQhqIAIQxgEAC14BAX8jAEEQayIEJAACfyAARQRAQQAhACAEQQxqDAELIAQgAjYCDCAAIANsIQAgBEEIagsgADYCAAJAIAQoAgwiAEUNACAEKAIIIgJFDQAgASACEIABCyAEQRBqJAALbQEDfyMAQRBrIgMkAAJAIAAgASgCCCIEIAEoAgBJBH8gA0EIaiABIARBAUEBEFcgAygCCCIEQYGAgIB4Rw0BIAEoAggFIAQLNgIEIAAgASgCBDYCACADQRBqJAAPCyADKAIMIQUgBCACEOcBAAunAQEDfyAAKAIIIgMgACgCAEYEQCMAQRBrIgIkACACQQhqIAAgACgCAEEIQSAQVCACKAIIIgRBgYCAgHhHBEAgAigCDBogBEGUzsAAEOcBAAsgAkEQaiQACyAAIANBAWo2AgggACgCBCADQQV0aiIAIAEpAwA3AwAgAEEIaiABQQhqKQMANwMAIABBEGogAUEQaikDADcDACAAQRhqIAFBGGopAwA3AwALEAAgACABIAJBkIDAABCkAgtyAQF/AkACQAJAAkACQAJAQRUgACgCAEGAgICAeHMiASABQRVPGw4VAQEBAQEBAQEBAQEBBQEFAQECAQMEAAsgABCwAQsPCyAAQQRqEPABDwsgAEEEahDwAQ8LIABBBGoQsQEPCyAAKAIEIAAoAggQigILEAAgACABIAJB0MzAABCkAgtcAQJ/IwBBEGsiAiQAAn8CQCABQf8ATwRAIAFBnwFLDQFBAAwCC0EBIQMgAUEfSwwBCyACQQhqIAEQQyACLQAIIQNBAQshASAAIAM2AgQgACABNgIAIAJBEGokAAtfAQF/IwBBEGsiAiQAIAIgADYCCCACIAAgAWo2AgxBACEAA0AgAkEIahC2ASIBQYCAxABGRQRAIAIgARB9IAIoAgRBASACKAIAQQFxGyAAaiEADAELCyACQRBqJAAgAAtUAQF/IwBBEGsiBCQAAn8gAEUEQEEAIQAgBEEMagwBCyAEIAI2AgwgACADbCEAIARBCGoLIAA2AgAgBCgCDCIABEAgASAEKAIIEPgBCyAEQRBqJAALXQECfwJAIABBBGsoAgAiAkF4cSIDQQRBCCACQQNxIgIbIAFqTwRAIAJBACADIAFBJ2pLGw0BIAAQNA8LQdbTwABBLkGE1MAAEKkBAAtBlNTAAEEuQcTUwAAQqQEAC3QBAn9BgICAgHghAgJ/IAEoAgBBgICAgHhHBEAgACABLwEOQQAgAS8BDBs7AQwgASgCCCEDIAEoAgQMAQsgACABKAIMNgIMIAEoAgghA0GBgICAeCECQYCAgIB4CyEBIAAgAzYCCCAAIAE2AgQgACACNgIAC04BAX8gACgCFCECIAAtABgEQCAAQQA6ABggAAJ/QX8gAUGAAUkNABpBfiABQYAQSQ0AGkF9QXwgAUGAgARJGwsgAmo2AgwLIAAgAjYCEAtiAQJ/IwBBEGsiAyQAIANBADYCDCADQQogA0EMahCeASADKAIEIQQgACACNgIQIABBADYCDCAAIAI2AgggACABNgIEIAAgBDoAGCAAQQo2AgAgACADKAIMNgIUIANBEGokAAtdAQF/IwBBMGsiAiQAIAIgATYCDCACIAA2AgggAkECNgIUIAJBlM3AADYCECACQgE3AhwgAkEONgIsIAIgAkEoajYCGCACIAJBCGo2AiggAkEQahC1ASACQTBqJAALUAECfyAAKAIIIQIgAAJ/QQEgAUGAAUkNABpBAiABQYAQSQ0AGkEDQQQgAUGAgARJGwsiAxDMASABIAAoAgQgACgCCGoQXSAAIAIgA2o2AggLXgEDfyMAQRBrIgIkACACQQRqIAEoAgQgAUEIaiIDKAIAEEsgACACKAIIIgQgAigCDBAmNgIMIAAgASkCADcCACAAQQhqIAMoAgA2AgAgAigCBCAEEOoBIAJBEGokAAtbAQF/IwBBMGsiAyQAIAMgATYCDCADIAA2AgggA0EBNgIUIANBwNPAADYCECADQgE3AhwgAyADQQhqrUKAgICAwAGENwMoIAMgA0EoajYCGCADQRBqIAIQxgEAC5YBAQN/IAAoAggiBCAAKAIARgRAIwBBEGsiAyQAIANBCGogACAAKAIAQQFBBEEYEEwgAygCCCIFQYGAgIB4RwRAIAMoAgwaIAUgAhDnAQALIANBEGokAAsgACAEQQFqNgIIIAAoAgQgBEEYbGoiACABKQIANwIAIABBCGogAUEIaikCADcCACAAQRBqIAFBEGopAgA3AgALWwEEfyAAKAIIIQIgACgCBCIDIQEDQCACBEAgASABKAIAQYGAgIB4RkECdGoiBCgCACAEQQRqKAIAEOwBIAJBAWshAiABQRBqIQEMAQsLIAAoAgAgA0EEQRAQfwtaAQF/IwBBEGsiAiQAIAACfyABKAIAQYGAgIB4RgRAIAEoAgQhAUEBDAELIAJBCGogARCYASACKAIIIQEgACACKAIMNgIIQQALNgIAIAAgATYCBCACQRBqJAALZQEBfwJAIABBhAFPBEAgANBvJgEQWSAAQci8wQAoAgAiAUkNASAAIAFrIgBBwLzBACgCAE8NAUG8vMEAKAIAIABBAnRqQcS8wQAoAgA2AgBBxLzBACAANgIAQQBBBBCTAgsPCwALWAEDfyMAQRBrIgMkACADQQhqIAJBAUEBQcTOwAAQZCADKAIIIQUgAygCDCEEIAIEQCAEIAEgAvwKAAALIAAgAjYCCCAAIAQ2AgQgACAFNgIAIANBEGokAAtZAQN/IwBBEGsiAyQAIANBCGogAkEBQQFBxM7AABCSASADKAIIIQUgAygCDCEEIAIEQCAEIAEgAvwKAAALIAAgAjYCCCAAIAQ2AgQgACAFNgIAIANBEGokAAuWAQEFfyAAKAIMIgQgACgCECIFSQRAIAAoAggiAyAAKAIARgRAIwBBEGsiAiQAIAJBCGogACAAKAIAQQFBBEEMEEwgAigCCCIGQYGAgIB4RwRAIAIoAgwaIAZBgJjAABDnAQALIAJBEGokAAsgACADQQFqNgIIIAAoAgQgA0EMbGoiACABOgAIIAAgBTYCBCAAIAQ2AgALC5cBAQN/IAAoAggiBSAAKAIARgRAIwBBEGsiBCQAIARBCGogACAAKAIAQQFBBEEIEEwgBCgCCCIGQYGAgIB4RwRAIAQoAgwaIAZB+JjAABDnAQALIARBEGokAAsgACAFQQFqNgIIIAAoAgQgBUEDdGoiBCACNgIEIAQgATYCACAAIAAoAhAgAmo2AhAgACAAKAIUIANqNgIUC1gBAX8jAEEwayICJAAgAiABNgIMIAJBAjYCFCACQdSYwAA2AhAgAkIBNwIcIAJBDTYCLCACIAJBKGo2AhggAiACQQxqNgIoIAAgAkEQahCWASACQTBqJAALWQECfyABEP4BIAFBCGsiAiACKAIAQQFqIgM2AgACQCADBEAgASgCAA0BIAAgAjYCCCAAIAE2AgQgAUF/NgIAIAAgAUEEajYCAA8LAAtBu7vBAEHPABCUAgALUwECfyMAQRBrIgUkACAFQQRqIAEgAiADEF8gBSgCCCEBIAUoAgRBAUYEQCAFKAIMIQYgASAEEOcBAAsgACAFKAIMNgIEIAAgATYCACAFQRBqJAALUwAjAEEgayIAJAAgAEEBNgIEIABB1JfAADYCACAAQgE3AgwgAEEONgIcIABBvJfAADYCGCAAIABBGGo2AgggASgCACABKAIEIAAQOSAAQSBqJAALTgECfyAAKAIMIAAoAgQiAWtBGG4hAgNAIAIEQCABKAIAIAFBBGooAgAQjwIgAkEBayECIAFBGGohAQwBCwsgACgCCCAAKAIAQQRBGBB3C0gCAX8CfiMAQSBrIgIkACACIAApAwAiAyADQj+HIgSFIAR9IAJBDGoQSCABIANCAFlBAUEAIAIoAgAgAigCBBA4IAJBIGokAAtYAQF/IAEoAgwhAgJAAkACQAJAIAEoAgQOAgABAgsgAg0BQQEhAUEAIQIMAgsgAg0AIAEoAgAiASgCBCECIAEoAgAhAQwBCyAAIAEQUw8LIAAgASACEIwBC0gBAn8jAEEQayICJAAgASgCAAR/IAJBCGogARCkASACKAIMIQMgAigCCEEBcQVBAAshASAAIAM2AgQgACABNgIAIAJBEGokAAtIAQJ/IwBBEGsiAiQAIAAgASgCAEGAgICAeEcEfyACQQhqIAEQmwEgAigCCCEDIAIoAgwFQQALNgIEIAAgAzYCACACQRBqJAALSAACQCADRQ0AAkAgAiADTQRAIAIgA0cNAQwCCyABIANqLAAAQb9/Sg0BCyABIAJBACADIAQQ/AEACyAAIAM2AgQgACABNgIAC1IBBH8gACgCFCEBIAAoAhgiAygCACICBEAgASACEQQACyADKAIEIgIEQCADKAIIIQQgASACEIABCyAAKAIEIgEgACgCCBDFASAAKAIAIAEQkAILSQEBfyMAQSBrIgIkACACQRhqIAFBCGooAgA2AgAgAiABKQIANwMQIAJBCGogAkEQakHU0MAAEHggACACKQMINwMAIAJBIGokAAtHAQF/IAAoAgAgACgCCCIDayACSQRAIAAgAyACEFsgACgCCCEDCyACBEAgACgCBCADaiABIAL8CgAACyAAIAIgA2o2AghBAAuGAQEDfyAAKAIIIgQgACgCAEYEQCMAQRBrIgMkACADQQhqIAAgACgCAEEBQQRBEBBMIAMoAggiBUGBgICAeEcEQCADKAIMGiAFIAIQ5wEACyADQRBqJAALIAAgBEEBajYCCCAAKAIEIARBBHRqIgAgASkCADcCACAAQQhqIAFBCGopAgA3AgALOQAgASACEF0gAAJ/QQEgAUGAAUkNABpBAiABQYAQSQ0AGkEDQQQgAUGAgARJGws2AgQgACACNgIAC4cBAQN/IAAoAggiAyAAKAIARgRAIwBBEGsiAiQAIAJBCGogACAAKAIAQQRBEBBUIAIoAggiBEGBgICAeEcEQCACKAIMGiAEQcTLwAAQ5wEACyACQRBqJAALIAAgA0EBajYCCCAAKAIEIANBBHRqIgAgASkCADcCACAAQQhqIAFBCGopAgA3AgALDQAgACABIAJBBRClAgsNACAAIAEgAkEGEKUCC4cBAQN/IAAoAggiAyAAKAIARgRAIwBBEGsiAiQAIAJBCGogACAAKAIAQQhBEBBUIAIoAggiBEGBgICAeEcEQCACKAIMGiAEQbTOwAAQ5wEACyACQRBqJAALIAAgA0EBajYCCCAAKAIEIANBBHRqIgAgASkDADcDACAAQQhqIAFBCGopAwA3AwALSAECfyMAQRBrIgUkACAFQQhqIAAgASACIAMgBBBMIAUoAggiAEGBgICAeEcEQCAFKAIMIQYgAEGUl8AAEOcBAAsgBUEQaiQAC0IBAX8gASgCBCICIAEoAghPBH9BAAUgASACQQFqNgIEIAEoAgAoAgAgAhDiASEBQQELIQIgACABNgIEIAAgAjYCAAtEAQF/IwBBIGsiAyQAIAMgAjYCHCADIAE2AhggAyACNgIUIANBCGogA0EUakGkvMEAEHggACADKQMINwMAIANBIGokAAsLACAAIAFBARCmAgsLACAAIAFBAhCmAgtHAQJ/IwBBIGsiAiQAIAJBAzoACCACIAE5AxAgAkEIaiACQR9qQaTNwAAQeiEDIABBgYCAgHg2AgAgACADNgIEIAJBIGokAAtCAQF/IwBBIGsiAyQAIANBADYCECADQQE2AgQgA0IENwIIIAMgATYCHCADIAA2AhggAyADQRhqNgIAIAMgAhDGAQALOQEBfyMAQSBrIgIkACACQQhqIAAoAgAgAkEWahBKIAFBAUEBQQAgAigCCCACKAIMEDggAkEgaiQAC/pPAxl/FX4BfCABKAIIIgZBgICAAXEhBCAAKwMAITAgBkGAgICAAXFFBEACfyABIQUg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ACAIQQFxaiIINgIAIAAgAUkgACAIS3IhCCACQQRqIQIgB0EEaiEHIARBAWsiBA0ACyAIRQ0RCyADIAY2AvwBIAlBAmohCQsgDiAGIAYgDkkbIgBBKU8NDSAAQQJ0IQICQAJAAkADQCACRQ0BIAJBBGsiAiADQdwAamooAgAiASACIANByARqaigCACIERg0ACyABIARPDQEgBiEADAILIANByARqIgEgASACakYNACAGIQAMAQsgAARAQQEhCCADQcgEaiEHIANB3ABqIQIgACEEA0AgAiACKAIAIgYgBygCAEF/c2oiASAIQQFxaiIINgIAIAEgBkkgASAIS3IhCCACQQRqIQIgB0EEaiEHIARBAWsiBA0ACyAIRQ0RCyADIAA2AvwBIAlBAWohCQsgCkERRg0EIANBywBqIApqIAlBMGo6AAAgAygCoAMiESAAIAAgEUkbIgJBKU8NECAKQQFqIQkgAkECdCECAn8CQANAIAJFDQEgAkEEayICIANB3ABqaigCACIBIAIgA0GAAmpqKAIAIgRGDQALIAEgBEsgASAESWsMAQtBf0EAIANBgAJqIgEgASACakcbCyEYIANB3AlqIANB3ABqQaQB/AoAAAJAAkAgAygCxAQiBiADKAL8CiIBIAEgBkkbIgFBKE0EQCABDQFBACEBDAILDBALQQAhCCADQaQDaiEHIANB3AlqIQIgASEEA0AgAiACKAIAIhkgBygCAGoiFiAIQQFxaiIINgIAIBYgGUkgCCAWSXIhCCACQQRqIQIgB0EEaiEHIARBAWsiBA0ACyAIRQ0AIAFBKEYNEiADQdwJaiABQQJ0akEBNgIAIAFBAWohAQsgAyABNgL8CiABIA4gASAOSxsiAkEpTw0QIAJBAnQhAiAMIBhKIghFAn8CQANAIAJFDQEgAkEEayICIANByARqaigCACIBIAIgA0HcCWpqKAIAIgRGDQALIAEgBEsgASAESWsMAQtBf0EAIANB3AlqIgEgASACakcbCyIBIAxOcUUEQCABIAxIDQMMCgtBACEBIAMCf0EAIABFDQAaIABBAnQiByADQdwAaiICakIAIRwDQCACIAI1AgBCCn4gHHwiGz4CACACQQRqIQIgG0IgiCEcIAdBBGsiBw0ACyAAIBtCgICAgBBUDQAaIABBKEYNEiAcPgIAIABBAWoLIgg2AvwBAkAgEUUNACARQQJ0IgcgA0GAAmoiAmpCACEcA0AgAiACNQIAQgp+IBx8Ihs+AgAgAkEEaiECIBtCIIghHCAHQQRrIgcNAAsgG0KAgICAEFQEQCARIQEMAQsgEUEoRg0SIBw+AgAgEUEBaiEBCyADIAE2AqADAkAgBkUEQEEAIQYMAQsgBkECdCIHIANBpANqIgJqQgAhHANAIAIgAjUCAEIKfiAcfCIbPgIAIAJBBGohAiAbQiCIIRwgB0EEayIHDQALIBtCgICAgBBUDQAgBkEoRg0SIBw+AgAgBkEBaiEGCyADIAY2AsQEIA8gCCAIIA9JGyIAQShNDQALCwwLCyAIRQ0FIANB3ABqQQEQLRogAygC6AUiACADKAL8ASIBIAAgAUsbIgJBKU8NDSACQQJ0IQIgA0HYAGohAANAIAJFDQMgACACaigCACIBIAJBBGsiAiADQcgEamooAgAiBEYNAAsgASAESQ0GDAULIAZBKEH0x8AAEIwCAAtBEUERQeikwAAQdgALIANByARqIgAgACACakcNAwwCCwwHCwwICyADQcsAaiAJaiEEQX8hByAJIQICQANAIAIiAEUNASAHQQFqIQcgAkEBayICIANBywBqIgFqLQAAQTlGDQALIAEgAmoiBCAELQAAQQFqOgAAIAdFIAAgCktyDQEgACABakEwIAf8CwAMAQsgA0ExOgBLAkAgCgRAIAoEQCADQcwAakEwIAr8CwALIApBD0sNAQsgBEEwOgAAIAtBAWohCyAKQQJqIQkMAgsgCUERQfikwAAQdgALIApBEUkNACAJQRFBiKXAABCMAgALIANBCGogA0HLAGogCSALQQAgA0HcCWoQSSADKAIMIQEgAygCCAshACADIAE2AsQIIAMgADYCwAggAyANNgK8CCADIBI2ArgIIAUgA0G4CGoQNyADQYALaiQADAYLIANBADYC3AkjAEEQayIBJAAgASADQbgIajYCDCABIANBkAdqNgIIIwBB8ABrIgAkACAAQdi0wAA2AgwgACABQQhqNgIIIABB2LTAADYCFCAAIAFBDGo2AhAgAEECNgIcIABB6LTAADYCGAJAIANB3AlqIgEoAgAEQCAAQTBqIAFBEGopAgA3AwAgAEEoaiABQQhqKQIANwMAIAAgASkCADcDICAAQQQ2AlwgAEHQtcAANgJYIABCBDcC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IQJBACEDDAILIAMNACACKAIAIgIoAgQhAyACKAIAIQIMAQsgAEGAgICAeDYCACAAIAE2AgwgASgCCCIBLQAIIQIgAS0ACRogAEEfIAIQdQALIAAgAzYCBCAAIAI2AgAgASgCCCIBLQAIIQIgAS0ACRogAEEgIAIQdQALLAAgACAALQAEIAFBLkZyOgAEIAAoAgAiACgCACABIABBBGooAgAoAhARAQALoAIBA38jAEEQayIEJAAjAEFAaiIDJAAgA0EIaiAAEJEBIAMoAgghACADIAL8AzsBGiADIAJEAAAQAAAA8EFiOwEYIAMgAfwDOwEWIAMgAUQAABAAAADwQWI7ARQgA0EcaiAAIANBFGoQKgJAAkAgAygCJCIABEAgA0EoaiIFQYiZwABBBBCMASAAQQFrIgBFDQEgA0E0aiAAEJABIAUgAygCOCIAIAMoAjwQgQIgAygCNCAAEI4CDAELIANBgICAgHg2AigMAQsgA0EoakGMmcAAQZOZwAAQugELIANBHGoQ4QEgAygCDEEANgIAIAMoAhAQ2wEgAyADQShqEJgBIAQgAykDADcCACADQUBrJAAgBCgCACAEKAIEIARBEGokAAstAQF+QajAwQApAwAhAUGowMEAQgA3AwAgACABQiCIPgIEIAAgAadBAUY2AgALigEBBH8jAEEQayIDJAAjAEEwayICJAAgAkEQaiAAIAEQpQEgAkEkaiACKAIQIgAgAigCFCIBEEsgAkEYaiIEIAIoAigiBSACKAIsEI0BIAIoAiQgBRDsASABIAAQigIgAkEIaiAEEJsBIAMgAikDCDcCACACQTBqJAAgAygCACADKAIEIANBEGokAAspAQJ/IAFBABDiASECIAFBARDiASEDIAEQ+wEgACADNgIEIAAgAjYCAAskAQF/IAAoAgAgACgCCCICayABSQRAIAAgAiABQQFBARCjAQsLJAEBfyAAKAIAIAAoAggiAmsgAUkEQCAAIAIgAUEEQRAQowELCyoAIAAgASgCDDsBBiAAIAEoAgg7AQQgACABKAIEOwECIAAgASgCADsBAAskACAAIAAoAgBBgICAgHhGQQJ0aiIAKAIAIABBBGooAgAQigILJQAgAEUEQEHk0MAAQTIQlAIACyAAIAIgAyAEIAUgASgCEBERAAtTAQJ/IAEgA0YEf0EAIQMCQCABRQ0A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LXdpZHRoLTAuMS4xNFxzcmNcdGFibGVzLnJzAFY6XC5jYWNoZVxjYXJnb1xyZWdpc3RyeVxzcmNcaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Zcd2FzbS1iaW5kZ2VuLTAuMi4xMDBcc3JjXGNvbnZlcnRcc2xpY2VzLnJzAEM6XFVzZXJzXGRhdmlkXC5ydXN0dXBcdG9vbGNoYWluc1xzdGFibGUteDg2XzY0LXBjLXdpbmRvd3MtbXN2Y1xsaWIvcnVzdGxpYi9zcmMvcnVzdFxsaWJyYXJ5L2FsbG9jL3NyYy9zdHIucnMAQzpcVXNlcnNcZGF2aWRcLnJ1c3R1cFx0b29sY2hhaW5zXHN0YWJsZS14ODZfNjQtcGMtd2luZG93cy1tc3ZjXGxpYi9ydXN0bGliL3NyYy9ydXN0XGxpYnJhcnkvY29yZS9zcmMvaXRlci90cmFpdHMvaXRlcmF0b3IucnMAQzpcVXNlcnNcZGF2aWRcLnJ1c3R1cFx0b29sY2hhaW5zXHN0YWJsZS14ODZfNjQtcGMtd2luZG93cy1tc3ZjXGxpYi9ydXN0bGliL3NyYy9ydXN0XGxpYnJhcnkvY29yZS9zcmMvc3RyL3BhdHRlcm4ucnMAbGlicmFyeS9jb3JlL3NyYy9udW0vZmx0MmRlYy9zdHJhdGVneS9kcmFnb24ucnMAbGlicmFyeS9jb3JlL3NyYy9udW0vYmlnbnVtLnJzAFY6XC5jYWNoZVxjYXJnb1xyZWdpc3RyeVxzcmNcaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2ZcY29uc29sZV9zdGF0aWNfdGV4dC0wLjkuMFxzcmNcYW5zaS5ycwBDOlxVc2Vyc1xkYXZpZFwucnVzdHVwXHRvb2xjaGFpbnNcc3RhYmxlLXg4Nl82NC1wYy13aW5kb3dzLW1zdmNcbGliL3J1c3RsaWIvc3JjL3J1c3RcbGlicmFyeS9hbGxvYy9zcmMvc3RyaW5nLnJzAFY6XC5jYWNoZVxjYXJnb1xyZWdpc3RyeVxzcmNcaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Zcc2VyZGUtMS4wLjIxOVxzcmNcZGVcdmFsdWUucnMAbGlicmFyeS9jb3JlL3NyYy91bmljb2RlL3ByaW50YWJsZS5ycwBWOlwuY2FjaGVcY2FyZ29ccmVnaXN0cnlcc3JjXGluZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmXHNlcmRlLTEuMC4yMTlcc3JjXHByaXZhdGVcZGUucnMAQzpcVXNlcnNcZGF2aWRcLnJ1c3R1cFx0b29sY2hhaW5zXHN0YWJsZS14ODZfNjQtcGMtd2luZG93cy1tc3ZjXGxpYi9ydXN0bGliL3NyYy9ydXN0XGxpYnJhcnkvYWxsb2Mvc3JjL3NsaWNlLnJzAFY6XC5jYWNoZVxjYXJnb1xyZWdpc3RyeVxzcmNcaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2ZcY29uc29sZV9zdGF0aWNfdGV4dC0wLjkuMFxzcmNcd29yZC5ycwBsaWJyYXJ5L2NvcmUvc3JjL2ZtdC9tb2QucnMAbGlicmFyeS9jb3JlL3NyYy9zdHIvbW9kLnJzAEM6XFVzZXJzXGRhdmlkXC5ydXN0dXBcdG9vbGNoYWluc1xzdGFibGUteDg2XzY0LXBjLXdpbmRvd3MtbXN2Y1xsaWIvcnVzdGxpYi9zcmMvcnVzdFxsaWJyYXJ5L2NvcmUvc3JjL3NsaWNlL21vZC5ycwBDOlxVc2Vyc1xkYXZpZFwucnVzdHVwXHRvb2xjaGFpbnNcc3RhYmxlLXg4Nl82NC1wYy13aW5kb3dzLW1zdmNcbGliL3J1c3RsaWIvc3JjL3J1c3RcbGlicmFyeS9hbGxvYy9zcmMvcmF3X3ZlYy9tb2QucnMAbGlicmFyeS9jb3JlL3NyYy9udW0vZmx0MmRlYy9tb2QucnMAL3J1c3QvZGVwcy9kbG1hbGxvYy0wLjIuOS9zcmMvZGxtYWxsb2MucnMAVjpcLmNhY2hlXGNhcmdvXHJlZ2lzdHJ5XHNyY1xpbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zlxqcy1zeXMtMC4zLjc3XHNyY1xsaWIucnMAVjpcLmNhY2hlXGNhcmdvXHJlZ2lzdHJ5XHNyY1xpbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3ZlxvbmNlX2NlbGwtMS4yMS4zXHNyY1xsaWIucnMAVjpcLmNhY2hlXGNhcmdvXHJlZ2lzdHJ5XHNyY1xpbmRleC5jcmF0ZXMu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ZWZnAmgCaWprbAICbW5vcAJxcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnR1AgICAgICAnZ3OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTl4OTk5OTk5OTk5eXoCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAns5OXw5OX0CAgICAgICAgICAgICAgICAgICfgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAn8CAgKAgYICAgICAgICAgICAgICAgKDhAICAgICAgICAgKFhnUCAocCAgKIAgICAgICAomKAgICAgICAgICAgICAouMAo2OAo+QkZKTlJWWApcCApiZmpsCAgICAgICAgICOTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5nB0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAnQICAgKenwIEAgUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0CAh4CAgICAgICHyAhIiMCJCUmJygpAioCAgICoKGio6Slpi6nqKmqq6ytMwICAgICAq4CAjU2NwI4OTo7PD0+rzk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OUwCAgICArBOT7GFhnUCAocCAgKIAgICAgICAomKAgICAgICAgICAgICAouMsrOOAo+QkZKTlJWWApcCApiZmpsCAgICAgICAgICVVV1VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVAEG84sAACylVVVVVFQBQVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVAQBB7+LAAAvEARBBEFVVVVVVV1VVVVVVVVVVVVFVVQAAQFT13VVVVVVVVVVVFQAAAAAAVVVVVfxdVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVUFABQAFARQVVVVVVVVVRVRVVVVVVVVVQAAAAAAAEBVVVVVVVVVVVXVV1VVVVVVVVVVVVVVBQAAVFVVVVVVVVVVVVVVVVUVAABVVVFVVVVVVQUQAAABAVBVVVVVVVVVVVVVAVVVVVVV/////39VVVVQVQAAVVVVVVVVVVVVVQUAQcDkwAALmARAVVVVVVVVVVVVVVVVVUVUAQBUUQEAVVUFVVVVVVVVVVFVVVVVVVVVVVVVVVVVVUQBVFVRVRVVVQVVVVVVVVVFQVVVVVVVVVVVVVVVVVVVVEEVFFBRVVVVVVVVVVBRVVVBVVVVVVVVVVVVVVVVVVVUARBUUVVVVVUFVVVVVVUFAFFVVVVVVVVVVVVVVVVVVQQBVFVRVQFVVQVVVVVVVVVVRVVVVVVVVVVVVVVVVVVVRVRVVVFVFVVVVVVVVVVVVVVUVFVVVVVVVVVVVVVVVVUEVAUEUFVBVVUFVVVVVVVVVVFVVVVVVVVVVVVVVVVVVRREBQRQVUFVVQVVVVVVVVVVUFVVVVVVVVVVVVVVVVUVRAFUVUFVFVVVBVVVVVVVVVVRVVVVVVVVVVVVVVVVVVVVVVVFFQVEVRVVVVVVVVVVVVVVVVVVVVVVVVVVVVEAQFVVFQBAVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVUQAAVFVVAEBVVVVVVVVVVVVVVVVVVVVVVVVQVVVVVVVVEVFVVVVVVVVVVVVVVVVVAQAAQAAEVQEAAAEAAAAAAAAAAFRVRVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVUBBABBQVVVVVVVVVAFVFVVVQFUVVVFQVVRVVVVUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVaqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqgBBgOnAAAuQA1VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVAVVVVVVVVVVVVVVVVQVUVVVVVVVVBVVVVVVVVVUFVVVVVVVVVQVVVVV///33//3XX3fW1ddVEABQVUUBAABVV1FVVVVVVVVVVVVVFQBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVUFVVVVVVVVVVVFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVUAVVFVFVQFVVVVVVVVVVVVVVVVVVVVVVVVVVVVXFRRVVVVVVVVVVVVVVVVVVUUAQEQBAFQVAAAUVVVVVVVVVVVVVVVVAAAAAAAAAEBVVVVVVVVVVVVVVVUAVVVVVVVVVVVVVVVVAABQBVVVVVVVVVVVVRUAAFVVVVBVVVVVVVVVBVAQUFVVVVVVVVVVVVVVVVVFUBFQVVVVVVVVVVVVVVVVVVUAAAVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVUAAAAAEAFRRVVRQVVVVVVVVVVVVVVVVVVVVVVUAQaDswAALkwhVVRUAVVVVVVVVBUBVVVVVVVVVVVVVVVUAAAAAVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVAAAAAAAAAABUVVVVVVVVVVVV9VVVVWlVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVf1X11VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV9VVVVVVVfVVVVVVVVVVVVVVVV////VVVVVVVVVVVVVdVVVVVV1VVVVV1V9VVVVVV9VV9VdVVXVVVVVXVV9V11XVVd9VVVVVVVVVVXVVVVVVVVVVV31d9VVVVVVVVVVVVVVVVVVVX9VVVVVVVVV1VV1VVVVVVVVVVVVVVVVVVVVVVVVVVVVVXVV1VVVVVVVVVVVVVVVVddVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVRVQVVVVVVVVVVVVVVVVVVVV/f///////////////19V1VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVUAAAAAAAAAAKqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqVVVVqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqpaVVVVVVVVqqqqqqqqqqqqqqqqqqoKAKqqqmqpqqqqqqqqqqqqqqqqqqqqqqqqqqpqgaqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqpVqaqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqKqqqqqqqqqqqmqqqqqqqqqqqqqqqqqqqqqqqqqqqqpVVZWqqqqqqqqqqqqqqmqqqqqqqqqqqqqqVVWqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqVVVVVVVVVVVVVVVVVVVVVaqqqlaqqqqqqqqqqqqqqqqqalVVVVVVVVVVVVVVVVVfVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVFUAAAFBVVVVVVVVVBVVVVVVVVVVVVVVVVVVVVVVVVVVVUFVVVUVFFVVVVVVVVUFVVFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVQVVVVVVVVAAAAAFBVRRVVVVVVVVVVVVUFAFBVVVVVVRUAAFBVVVWqqqqqqqqqVkBVVVVVVVVVVVVVVRUFUFBVVVVVVVVVVVVRVVVVVVVVVVVVVVVVVVVVVQFAQUFVVRVVVVRVVVVVVVVVVVVVVVRVVVVVVVVVVVVVVVUEFFQFUVVVVVVVVVVVVVVQVUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVRVFFVVVVVqqqqqqqqqqqqVVVVAAAAAABAFQBBv/TAAAvhDFVVVVVVVVVVRVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVQAAAPCqqlpVAAAAAKqqqqqqqqqqaqqqqqpqqlVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVRWpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqpWVVVVVVVVVVVVVVVVVVUFVFVVVVVVVVVVVVVVVVVVVapqVVUAAFRVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVBUBVAUFVAFVVVVVVVVVVVVVAFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVQVVVVVVVVdVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVAFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVFVRVVVVVVVVVVVVVVVVVVVVVVVVVAVVVVVVVVVVVVVVVVVVVVVVVBQAAVFVVVVVVVVVVVVVVBVBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVRVVVVVVVVVVVVVVVVVQAAAEBVVVVVVVVVVVVVFFRVFVBVVVVVVVVVVVVVVRVAQVVFVVVVVVVVVVVVVVVVVVVVQFVVVVVVVVVVFQABAFRVVVVVVVVVVVVVVVVVVRVVVVVQVVVVVVVVVVVVVVVVBQBABVUBFFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVFVAEVUVRVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVUVFQBAVVVVVVVQVVVVVVVVVVVVVVVVVRVEVFVVVVUVVVVVBQBUAFRVVVVVVVVVVVVVVVVVVVVVAAAFRFVVVVVVRVVVVVVVVVVVVVVVVVVVVVVVVVVVFABEEQRVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVRUFUFUQVFVVVVVVVVBVVVVVVVVVVVVVVVVVVVVVVVVVVRUAQBFUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVRVRABBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVAQUQAFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVFQAAQVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVFUVBBFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVUABVVUVVVVVVVVVQEAQFVVVVVVVVVVVRUABEBVFVVVAUABVVVVVVVVVVVVVQAAAABAUFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVUAQAAQVVVVVVVVVVVVVVVVVVVVVVVVVVUFAAAAAAAFAARBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVAUBFEAAAVVVVVVVVVVVVVVVVVVVVVVVVUBFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVUVVFVVQFVVVVVVVVVVVVVVVQVAVURVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVBUAAABQVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVUAVFVVVVVVVVVVVVVVVVVVAEBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVFVVVVVVVVVVVVVVVVVVVVRVAVVVVVVVVVVVVVVVVVVVVVVVVVapUVVVaVVVVqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqVVWqqqqqqqqqqqqqqqqqqqqqqqqqqqpaVVVVVVVVVVVVVaqqVlVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVaqpqmmqqqqqqqqqqmpVVVVlVVVVVVVVVWpZVVVVqlVVqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqpVVVVVVVVVVUEAVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVUAQauBwQALdVAAAAAAAEBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVURUAUAAAAAQAEAVVVVVVVVVQVQVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVBVRVVVVVVVVVVVVVVVVVVQBBrYLBAAsCQBUAQbuCwQALxQZUVVFVVVVUVVVVVRUAAQAAAFVVVVVVVVVVVVVVVVVVVVVVVVVVAEAAAAAAFAAQBEBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVRVVVVVVVVVVVVVVVVVVVVQBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVAFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVQBAVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVAEBVVVVVVVVVVVVVVVVVVVdVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV1VVVVVVVVVVVVVVVVVVVVXX9/39VVVVVVVVVVVVVVVVVVVVVVVX1////////blVVVaqquqqqqqrq+r+/VaqqVlVfVVVVqlpVVVVVVVX//////////1dVVf3/3///////////////////////9///////VVVV/////////////3/V/1VVVf////9XV///////////////////////f/f/////////////////////////////////////////////////////////////1////////////////////19VVdV/////////VVVVVXVVVVVVVVV9VVVVV1VVVVVVVVVVVVVVVVVVVVVVVVVV1f///////////////////////////1VVVVVVVVVVVVVVVf//////////////////////X1VXf/1V/1VV1VdV//9XVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV////VVdVVVVVVVX//////////////3///9//////////////////////////////////////////////////////////////VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVf///1f//1dV///////////////f/19V9f///1X//1dV//9XVaqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqpaVVVVVVVVVVVZllVhqqVZqlVVVVVVlVVVVVVVVVWVVVUAQY6JwQALAQMAQZyJwQAL7AdVVVVVVZVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVRUAlmpaWmqqBUCmWZVlVVVVVVVVVVUAAAAAVVZVValWVVVVVVVVVVVVVlVVVVVVVVVVAAAAAAAAAABUVVVVlVlZVVVlVVVpVVVVVVVVVVVVVVWVVpVqqqqqVaqqWlVVVVlVqqqqVVVVVWVVVVpVVVVVpWVWVVVVlVVVVVVVVaaWmpZZWWWplqqqZlWqVVpZVVpWZVVVVWqqpaVaVVVVpapaVVVZWVVVWVVVVVVVlVVVVVVVVVVVVVVVVVVVVVVVVVVVZVX1VVVVaVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVaqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqaqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqVaqqqqqqqqqqqlVVVaqqqqqlWlVVmqpaVaWlVVpapZalWlVVVaVaVZVVVVV9VWlZpVVfVWZVVVVVVVVVVWZV////VVVVmppqmlVVVdVVVVVV1VVVpV1V9VVVVVW9Va+quqqrqqqaVbqq+q66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uLgoKCgoCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJcABB9qXBAAuAAXBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcABwAABwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwAEGSp8EACwEMAEH2p8EAC4ABcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwAHAAAHBwcHAgICAgICAgICAgICAgICAgBgYGBgYGBgYGBgYGBgYGBgkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCXAAQfapwQALgAFwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHAAcAAAcHBwcCcnJycnJycnJycnJycnJyewsLCwsLCwsLCwsLAGBgYGCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJcABB9qvBAAuAAdDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0ADQAADQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NBwAEGSrcEACwEMAEH2rcEAC4ABUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQAFAAAFBQUFArKysrKysrKysrKysrKysrTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEwFTExMTExMTA5MTAFMDQ4OTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTHAAQfavwQALgAFQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFAAUAAAUFBQUCAgICAgICAgICAgICAgICBMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMcABB9rHBAAudAVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUABQAABQUFBQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAUFBQUFBQUFBQUFBQUFBQUABQUFBQUFBQUFBQAFAAQbizwQALM////////////////////////////////////////////////////////////////////wBB9rPBAAuAA3BwcHBwcHAMcHBwcHBwcHBwcHBwcHBwcABwAABwcHBwkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHAAcAAAcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcABBkrfBAAsBDABB9rnBAAu7AlRyaWVkIHRvIHNocmluayB0byBhIGxhcmdlciBjYXBhY2l0eQAA9lwQACQAAAAnBxAAdgAAALkCAAAJAAAATGF6eSBpbnN0YW5jZSBoYXMgcHJldmlvdXNseSBiZWVuIHBvaXNvbmVkAAA0XRAAKgAAAEIIEABaAAAACAMAABkAAAByZWVudHJhbnQgaW5pdAAAeF0QAA4AAABCCBAAWgAAAHoCAAANAAAAbnVsbCBwb2ludGVyIHBhc3NlZCB0byBydXN0cmVjdXJzaXZlIHVzZSBvZiBhbiBvYmplY3QgZGV0ZWN0ZWQgd2hpY2ggd291bGQgbGVhZCB0byB1bnNhZmUgYWxpYXNpbmcgaW4gcnVzdEpzVmFsdWUoKQAKXhAACAAAABJeEAABAAAA2gEQAGkAAADoAAAAAQBBzLzBAAsBNQBwCXByb2R1Y2VycwIIbGFuZ3VhZ2UBBFJ1c3QADHByb2Nlc3NlZC1ieQMFcnVzdGMdMS44OS4wICgyOTQ4Mzg4M2UgMjAyNS0wOC0wNCkGd2FscnVzBjAuMjMuMwx3YXNtLWJpbmRnZW4HMC4yLjEwMAB8D3RhcmdldF9mZWF0dXJlcwcrD211dGFibGUtZ2xvYmFscysTbm9udHJhcHBpbmctZnB0b2ludCsLYnVsay1tZW1vcnkrCHNpZ24tZXh0Kw9yZWZlcmVuY2UtdHlwZXMrCm11bHRpdmFsdWUrD2J1bGstbWVtb3J5LW9wdA==");
    var wasmModule = new WebAssembly.Module(bytes);
    var wasm = new WebAssembly.Instance(wasmModule, {
      "./rs_lib.internal.js": imports
    });
    __exportStar(require_rs_lib_internal(), exports2);
    var rs_lib_internal_js_1 = require_rs_lib_internal();
    (0, rs_lib_internal_js_1.__wbg_set_wasm)(wasm.exports);
    wasm.exports.__wbindgen_start();
    function base64decode(b64) {
      const binString = atob(b64);
      const size = binString.length;
      const bytes2 = new Uint8Array(size);
      for (let i = 0; i < size; i++) {
        bytes2[i] = binString.charCodeAt(i);
      }
      return bytes2;
    }
  }
});

// npm/script/deps/jsr.io/@david/console-static-text/0.3.4/mod.js
var require_mod3 = __commonJS({
  "npm/script/deps/jsr.io/@david/console-static-text/0.3.4/mod.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.renderInterval = exports2.staticText = exports2.RenderInterval = exports2.StaticTextContainer = exports2.StaticTextScope = void 0;
    exports2.renderTextItems = renderTextItems;
    exports2.maybeConsoleSize = maybeConsoleSize;
    exports2.stripAnsiCodes = stripAnsiCodes;
    var rs_lib_js_1 = require_rs_lib();
    var scopesSymbol = Symbol();
    var getItemsSymbol = Symbol();
    var renderOnceSymbol = Symbol();
    var onItemsChangedEventsSymbol = Symbol();
    var StaticTextScope = class {
      #container;
      #items = [];
      constructor(container) {
        this.#container = container;
        this.#container[scopesSymbol].push(this);
      }
      [Symbol.dispose]() {
        this.#items.length = 0;
        const index = this.#container[scopesSymbol].indexOf(this);
        if (index >= 0) {
          this.#container[scopesSymbol].splice(index, 1);
          this.#container.refresh();
          this.#notifyContainerOnItemsChanged();
        }
      }
      [getItemsSymbol]() {
        return this.#items;
      }
      setText(textOrItems) {
        if (typeof textOrItems === "string") {
          if (textOrItems.length === 0) {
            textOrItems = [];
          } else {
            textOrItems = [{ text: textOrItems }];
          }
        } else if (textOrItems instanceof Function) {
          textOrItems = [{ text: textOrItems }];
        }
        this.#items = textOrItems;
        this.#notifyContainerOnItemsChanged();
      }
      #notifyContainerOnItemsChanged() {
        for (const onChanged of this.#container[onItemsChangedEventsSymbol]) {
          onChanged();
        }
      }
      logAbove(textOrItems, size) {
        this.#container.logAbove(textOrItems, size);
      }
      /** Forces a refresh of the container. */
      refresh(size) {
        this.#container.refresh(size);
      }
    };
    exports2.StaticTextScope = StaticTextScope;
    var StaticTextContainer = class {
      #container = new rs_lib_js_1.StaticTextContainer();
      [scopesSymbol] = [];
      #getConsoleSize;
      #onWriteText;
      [onItemsChangedEventsSymbol] = [];
      constructor(onWriteText, getConsoleSize) {
        this.#onWriteText = onWriteText;
        this.#getConsoleSize = getConsoleSize;
      }
      /** If any scope has text or items. */
      hasText() {
        return this[scopesSymbol].some((s) => s[getItemsSymbol]().length > 0);
      }
      /** Creates a scope which can be used to set the text for. */
      createScope() {
        return new StaticTextScope(this);
      }
      /** Gets the containers current console size. */
      getConsoleSize() {
        return this.#getConsoleSize();
      }
      logAbove(textOrItems, size) {
        size ??= this.getConsoleSize();
        let detailedItem;
        if (typeof textOrItems === "string") {
          if (textOrItems.length === 0) {
            detailedItem = [];
          } else {
            detailedItem = [{ text: textOrItems }];
          }
        } else {
          detailedItem = Array.from(resolveItems(textOrItems, size));
        }
        this.withTempClear(() => {
          this[renderOnceSymbol](detailedItem, size);
        }, size);
      }
      /** Clears the displayed text for the provided action. */
      withTempClear(action, size) {
        size ??= this.getConsoleSize();
        this.clear(size);
        try {
          action();
        } finally {
          this.refresh(size);
        }
      }
      /** Clears the text and flushes it to the console. */
      clear(size) {
        const newText = this.renderClearText(size);
        if (newText != null) {
          this.#onWriteText(newText);
        }
      }
      /** Refreshes the static text (writes it to the console). */
      refresh(size) {
        const newText = this.renderRefreshText(size);
        if (newText != null) {
          this.#onWriteText(newText);
        }
      }
      /**
       * Renders the clear text.
       *
       * Note: this is a low level method. Prefer calling `.clear()` instead.
       */
      renderClearText(size) {
        size = size ?? this.#getConsoleSize();
        return this.#container.clear_text(size?.columns, size?.rows);
      }
      /**
       * Renders the next text that should be displayed.
       *
       * Note: This is a low level method. Prefer calling `.refresh()` instead.
       */
      renderRefreshText(size) {
        size ??= this.#getConsoleSize();
        const items = Array.from(this.#resolveItems(size));
        return this.#container.render_text(items, size?.columns, size?.rows);
      }
      *#resolveItems(size) {
        for (const provider of this[scopesSymbol]) {
          for (const item of provider[getItemsSymbol]()) {
            yield* resolveItem(item, size);
          }
        }
      }
      [renderOnceSymbol](items, size) {
        const newText = (0, rs_lib_js_1.static_text_render_once)(items, size?.columns, void 0);
        if (newText != null) {
          this.#onWriteText(newText + "\r\n");
        }
      }
    };
    exports2.StaticTextContainer = StaticTextContainer;
    var encoder = new TextEncoder();
    var RenderInterval = class {
      #count = 0;
      #intervalId = void 0;
      #container;
      #intervalMs = 60;
      #containerSubscription;
      #disposed = false;
      /**
       * Constructs a new `RenderInterval` from the provided `StaticTextContainer`.
       * @param container Container to render every `intervalMs`.
       */
      constructor(container) {
        this.#container = container;
      }
      [Symbol.dispose]() {
        this.#markStop();
        this.#disposed = true;
      }
      /** Gets how often this interval will refresh the output.
       * @default `60`
       */
      get intervalMs() {
        return this.#intervalMs;
      }
      /** Sets how often this should refresh the output. */
      set intervalMs(value) {
        if (this.#intervalMs === value) {
          return;
        }
        this.#intervalMs = value;
        if (this.#intervalId != null) {
          this.#stopInterval();
          this.#startInterval();
        }
      }
      /**
       * Starts the render task returning a disposable for stopping it.
       *
       * Note that it's perfectly fine to just start this and never dispose it.
       * The underlying interval won't run if there's no items in the container.
       */
      start() {
        if (this.#disposed) {
          throw new Error("Cannot call .start() on a disposed RenderInterval.");
        }
        if (this.#count === 0) {
          this.#markStart();
        }
        this.#count++;
        let hasCalled = false;
        return {
          [Symbol.dispose]: () => {
            if (!hasCalled && !this.#disposed) {
              hasCalled = true;
              this.#count--;
              if (this.#count === 0) {
                this.#markStop();
                this.#container.refresh();
              }
            }
          }
        };
      }
      #markStart() {
        this.#addSubscriptionToContainer();
        if (this.#container.hasText()) {
          this.#container.refresh();
        }
      }
      #markStop() {
        this.#removeSubscriptionFromContainer();
        this.#stopInterval();
      }
      #startInterval() {
        this.#container.refresh();
        this.#intervalId = setInterval(() => {
          this.#container.refresh();
        }, this.#intervalMs);
      }
      #stopInterval() {
        if (this.#intervalId == null) {
          return;
        }
        clearInterval(this.#intervalId);
        this.#intervalId = void 0;
      }
      #addSubscriptionToContainer() {
        let lastValue = this.#container.hasText();
        this.#containerSubscription = () => {
          const hasItems = this.#container.hasText();
          if (hasItems != lastValue) {
            lastValue = hasItems;
            if (hasItems) {
              this.#startInterval();
            } else {
              this.#stopInterval();
              this.#container.refresh();
            }
          }
        };
        this.#container[onItemsChangedEventsSymbol].push(this.#containerSubscription);
      }
      #removeSubscriptionFromContainer() {
        if (!this.#containerSubscription) {
          return;
        }
        const events = this.#container[onItemsChangedEventsSymbol];
        const removeIndex = events.indexOf(this.#containerSubscription);
        if (removeIndex >= 0) {
          events.splice(removeIndex, 1);
          this.#containerSubscription = void 0;
        }
      }
    };
    exports2.RenderInterval = RenderInterval;
    exports2.staticText = new StaticTextContainer((text) => {
      process.stderr.write(encoder.encode(text));
    }, () => maybeConsoleSize());
    exports2.renderInterval = new RenderInterval(exports2.staticText);
    function renderTextItems(items, size) {
      size ??= maybeConsoleSize();
      const wasmItems = Array.from(resolveItems(items, size));
      return (0, rs_lib_js_1.static_text_render_once)(wasmItems, size?.columns, size?.rows) ?? "";
    }
    function maybeConsoleSize() {
      try {
        for (const stream of [process.stdout, process.stderr]) {
          if (stream.isTTY) {
            return {
              columns: stream.columns,
              rows: stream.rows
            };
          }
        }
        return void 0;
      } catch {
        return void 0;
      }
    }
    function stripAnsiCodes(text) {
      return (0, rs_lib_js_1.strip_ansi_codes)(text);
    }
    function* resolveDeferred(deferred, size) {
      const value = deferred(size);
      if (value instanceof Array) {
        yield* resolveItems(value, size);
      } else {
        yield* resolveItem(value, size);
      }
    }
    function* resolveItems(value, size) {
      for (const item of value) {
        yield* resolveItem(item, size);
      }
    }
    function* resolveItem(item, size) {
      if (typeof item === "string") {
        if (item.length > 0) {
          yield { text: item };
        }
      } else if (item instanceof Function) {
        yield* resolveDeferred(item, size);
      } else if (item.text instanceof Function) {
        const hangingIndent = item.hangingIndent ?? 0;
        for (const value of resolveDeferred(item.text, size)) {
          yield {
            ...value,
            hangingIndent: hangingIndent + (value.hangingIndent ?? 0)
          };
        }
      } else if (item.text.length > 0) {
        yield item;
      }
    }
  }
});

// npm/script/deps/jsr.io/@std/bytes/1.0.6/copy.js
var require_copy = __commonJS({
  "npm/script/deps/jsr.io/@std/bytes/1.0.6/copy.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.copy = copy;
    function copy(src, dst, offset = 0) {
      offset = Math.max(0, Math.min(offset, dst.byteLength));
      const dstBytesAvailable = dst.byteLength - offset;
      if (src.byteLength > dstBytesAvailable) {
        src = src.subarray(0, dstBytesAvailable);
      }
      dst.set(src, offset);
      return src.byteLength;
    }
  }
});

// npm/script/deps/jsr.io/@std/io/0.225.3/buffer.js
var require_buffer = __commonJS({
  "npm/script/deps/jsr.io/@std/io/0.225.3/buffer.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.Buffer = void 0;
    var copy_js_1 = require_copy();
    var MIN_READ = 32 * 1024;
    var MAX_SIZE = 2 ** 32 - 2;
    var Buffer2 = class {
      #buf;
      // contents are the bytes buf[off : len(buf)]
      #off = 0;
      // read at buf[off], write at buf[buf.byteLength]
      /**
       * Constructs a new instance with the specified {@linkcode ArrayBuffer} as its
       * initial contents.
       *
       * @param ab The ArrayBuffer to use as the initial contents of the buffer.
       */
      constructor(ab) {
        if (ab === void 0) {
          this.#buf = new Uint8Array(0);
        } else if (ab instanceof SharedArrayBuffer) {
          this.#buf = new Uint8Array(ab);
        } else {
          this.#buf = new Uint8Array(ab);
        }
      }
      /**
       * Returns a slice holding the unread portion of the buffer.
       *
       * The slice is valid for use only until the next buffer modification (that
       * is, only until the next call to a method like `read()`, `write()`,
       * `reset()`, or `truncate()`). If `options.copy` is false the slice aliases the buffer content at
       * least until the next buffer modification, so immediate changes to the
       * slice will affect the result of future reads.
       *
       * @example Usage
       * ```ts
       * import { Buffer } from "@std/io/buffer";
       * import { assertEquals } from "@std/assert/equals";
       *
       * const buf = new Buffer();
       * await buf.write(new TextEncoder().encode("Hello, world!"));
       *
       * const slice = buf.bytes();
       * assertEquals(new TextDecoder().decode(slice), "Hello, world!");
       * ```
       *
       * @param options The options for the slice.
       * @returns A slice holding the unread portion of the buffer.
       */
      bytes(options = { copy: true }) {
        if (options.copy === false)
          return this.#buf.subarray(this.#off);
        return this.#buf.slice(this.#off);
      }
      /**
       * Returns whether the unread portion of the buffer is empty.
       *
       * @example Usage
       * ```ts
       * import { Buffer } from "@std/io/buffer";
       * import { assertEquals } from "@std/assert/equals";
       *
       * const buf = new Buffer();
       * assertEquals(buf.empty(), true);
       * await buf.write(new TextEncoder().encode("Hello, world!"));
       * assertEquals(buf.empty(), false);
       * ```
       *
       * @returns `true` if the unread portion of the buffer is empty, `false`
       *          otherwise.
       */
      empty() {
        return this.#buf.byteLength <= this.#off;
      }
      /**
       * A read only number of bytes of the unread portion of the buffer.
       *
       * @example Usage
       * ```ts
       * import { Buffer } from "@std/io/buffer";
       * import { assertEquals } from "@std/assert/equals";
       *
       * const buf = new Buffer();
       * await buf.write(new TextEncoder().encode("Hello, world!"));
       *
       * assertEquals(buf.length, 13);
       * ```
       *
       * @returns The number of bytes of the unread portion of the buffer.
       */
      get length() {
        return this.#buf.byteLength - this.#off;
      }
      /**
       * The read only capacity of the buffer's underlying byte slice, that is,
       * the total space allocated for the buffer's data.
       *
       * @example Usage
       * ```ts
       * import { Buffer } from "@std/io/buffer";
       * import { assertEquals } from "@std/assert/equals";
       *
       * const buf = new Buffer();
       * assertEquals(buf.capacity, 0);
       * await buf.write(new TextEncoder().encode("Hello, world!"));
       * assertEquals(buf.capacity, 13);
       * ```
       *
       * @returns The capacity of the buffer.
       */
      get capacity() {
        return this.#buf.buffer.byteLength;
      }
      /**
       * Discards all but the first `n` unread bytes from the buffer but
       * continues to use the same allocated storage. It throws if `n` is
       * negative or greater than the length of the buffer.
       *
       * @example Usage
       * ```ts
       * import { Buffer } from "@std/io/buffer";
       * import { assertEquals } from "@std/assert/equals";
       *
       * const buf = new Buffer();
       * await buf.write(new TextEncoder().encode("Hello, world!"));
       * buf.truncate(6);
       * assertEquals(buf.length, 6);
       * ```
       *
       * @param n The number of bytes to keep.
       */
      truncate(n) {
        if (n === 0) {
          this.reset();
          return;
        }
        if (n < 0 || n > this.length) {
          throw new Error("Buffer truncation out of range");
        }
        this.#reslice(this.#off + n);
      }
      /**
       * Resets the contents
       *
       * @example Usage
       * ```ts
       * import { Buffer } from "@std/io/buffer";
       * import { assertEquals } from "@std/assert/equals";
       *
       * const buf = new Buffer();
       * await buf.write(new TextEncoder().encode("Hello, world!"));
       * buf.reset();
       * assertEquals(buf.length, 0);
       * ```
       */
      reset() {
        this.#reslice(0);
        this.#off = 0;
      }
      #tryGrowByReslice(n) {
        const l = this.#buf.byteLength;
        if (n <= this.capacity - l) {
          this.#reslice(l + n);
          return l;
        }
        return -1;
      }
      #reslice(len) {
        if (len > this.#buf.buffer.byteLength) {
          throw new RangeError("Length is greater than buffer capacity");
        }
        this.#buf = new Uint8Array(this.#buf.buffer, 0, len);
      }
      /**
       * Reads the next `p.length` bytes from the buffer or until the buffer is
       * drained. Returns the number of bytes read. If the buffer has no data to
       * return, the return is EOF (`null`).
       *
       * @example Usage
       * ```ts
       * import { Buffer } from "@std/io/buffer";
       * import { assertEquals } from "@std/assert/equals";
       *
       * const buf = new Buffer();
       * await buf.write(new TextEncoder().encode("Hello, world!"));
       *
       * const data = new Uint8Array(5);
       * const res = await buf.read(data);
       *
       * assertEquals(res, 5);
       * assertEquals(new TextDecoder().decode(data), "Hello");
       * ```
       *
       * @param p The buffer to read data into.
       * @returns The number of bytes read.
       */
      readSync(p) {
        if (this.empty()) {
          this.reset();
          if (p.byteLength === 0) {
            return 0;
          }
          return null;
        }
        const nread = (0, copy_js_1.copy)(this.#buf.subarray(this.#off), p);
        this.#off += nread;
        return nread;
      }
      /**
       * Reads the next `p.length` bytes from the buffer or until the buffer is
       * drained. Resolves to the number of bytes read. If the buffer has no
       * data to return, resolves to EOF (`null`).
       *
       * NOTE: This methods reads bytes synchronously; it's provided for
       * compatibility with `Reader` interfaces.
       *
       * @example Usage
       * ```ts
       * import { Buffer } from "@std/io/buffer";
       * import { assertEquals } from "@std/assert/equals";
       *
       * const buf = new Buffer();
       * await buf.write(new TextEncoder().encode("Hello, world!"));
       *
       * const data = new Uint8Array(5);
       * const res = await buf.read(data);
       *
       * assertEquals(res, 5);
       * assertEquals(new TextDecoder().decode(data), "Hello");
       * ```
       *
       * @param p The buffer to read data into.
       * @returns The number of bytes read.
       */
      read(p) {
        const rr = this.readSync(p);
        return Promise.resolve(rr);
      }
      /**
       * Writes the given data to the buffer.
       *
       * @example Usage
       * ```ts
       * import { Buffer } from "@std/io/buffer";
       * import { assertEquals } from "@std/assert/equals";
       *
       * const buf = new Buffer();
       * const data = new TextEncoder().encode("Hello, world!");
       * buf.writeSync(data);
       *
       * const slice = buf.bytes();
       * assertEquals(new TextDecoder().decode(slice), "Hello, world!");
       * ```
       *
       * @param p The data to write to the buffer.
       * @returns The number of bytes written.
       */
      writeSync(p) {
        const m = this.#grow(p.byteLength);
        return (0, copy_js_1.copy)(p, this.#buf, m);
      }
      /**
       * Writes the given data to the buffer. Resolves to the number of bytes
       * written.
       *
       * > [!NOTE]
       * > This methods writes bytes synchronously; it's provided for compatibility
       * > with the {@linkcode Writer} interface.
       *
       * @example Usage
       * ```ts
       * import { Buffer } from "@std/io/buffer";
       * import { assertEquals } from "@std/assert/equals";
       *
       * const buf = new Buffer();
       * const data = new TextEncoder().encode("Hello, world!");
       * await buf.write(data);
       *
       * const slice = buf.bytes();
       * assertEquals(new TextDecoder().decode(slice), "Hello, world!");
       * ```
       *
       * @param p The data to write to the buffer.
       * @returns The number of bytes written.
       */
      write(p) {
        const n = this.writeSync(p);
        return Promise.resolve(n);
      }
      #grow(n) {
        const m = this.length;
        if (m === 0 && this.#off !== 0) {
          this.reset();
        }
        const i = this.#tryGrowByReslice(n);
        if (i >= 0) {
          return i;
        }
        const c = this.capacity;
        if (n <= Math.floor(c / 2) - m) {
          (0, copy_js_1.copy)(this.#buf.subarray(this.#off), this.#buf);
        } else if (c + n > MAX_SIZE) {
          throw new Error(`The buffer cannot be grown beyond the maximum size of "${MAX_SIZE}"`);
        } else {
          const buf = new Uint8Array(Math.min(2 * c + n, MAX_SIZE));
          (0, copy_js_1.copy)(this.#buf.subarray(this.#off), buf);
          this.#buf = buf;
        }
        this.#off = 0;
        this.#reslice(Math.min(m + n, MAX_SIZE));
        return m;
      }
      /** Grows the buffer's capacity, if necessary, to guarantee space for
       * another `n` bytes. After `.grow(n)`, at least `n` bytes can be written to
       * the buffer without another allocation. If `n` is negative, `.grow()` will
       * throw. If the buffer can't grow it will throw an error.
       *
       * Based on Go Lang's
       * {@link https://golang.org/pkg/bytes/#Buffer.Grow | Buffer.Grow}.
       *
       * @example Usage
       * ```ts
       * import { Buffer } from "@std/io/buffer";
       * import { assertEquals } from "@std/assert/equals";
       *
       * const buf = new Buffer();
       * buf.grow(10);
       * assertEquals(buf.capacity, 10);
       * ```
       *
       * @param n The number of bytes to grow the buffer by.
       */
      grow(n) {
        if (n < 0) {
          throw new Error("Buffer growth cannot be negative");
        }
        const m = this.#grow(n);
        this.#reslice(m);
      }
      /**
       * Reads data from `r` until EOF (`null`) and appends it to the buffer,
       * growing the buffer as needed. It resolves to the number of bytes read.
       * If the buffer becomes too large, `.readFrom()` will reject with an error.
       *
       * Based on Go Lang's
       * {@link https://golang.org/pkg/bytes/#Buffer.ReadFrom | Buffer.ReadFrom}.
       *
       * @example Usage
       * ```ts
       * import { Buffer } from "@std/io/buffer";
       * import { assertEquals } from "@std/assert/equals";
       *
       * const buf = new Buffer();
       * const r = new Buffer(new TextEncoder().encode("Hello, world!"));
       * const n = await buf.readFrom(r);
       *
       * assertEquals(n, 13);
       * ```
       *
       * @param r The reader to read from.
       * @returns The number of bytes read.
       */
      async readFrom(r) {
        let n = 0;
        const tmp = new Uint8Array(MIN_READ);
        while (true) {
          const shouldGrow = this.capacity - this.length < MIN_READ;
          const buf = shouldGrow ? tmp : new Uint8Array(this.#buf.buffer, this.length);
          const nread = await r.read(buf);
          if (nread === null) {
            return n;
          }
          if (shouldGrow)
            this.writeSync(buf.subarray(0, nread));
          else
            this.#reslice(this.length + nread);
          n += nread;
        }
      }
      /** Reads data from `r` until EOF (`null`) and appends it to the buffer,
       * growing the buffer as needed. It returns the number of bytes read. If the
       * buffer becomes too large, `.readFromSync()` will throw an error.
       *
       * Based on Go Lang's
       * {@link https://golang.org/pkg/bytes/#Buffer.ReadFrom | Buffer.ReadFrom}.
       *
       * @example Usage
       * ```ts
       * import { Buffer } from "@std/io/buffer";
       * import { assertEquals } from "@std/assert/equals";
       *
       * const buf = new Buffer();
       * const r = new Buffer(new TextEncoder().encode("Hello, world!"));
       * const n = buf.readFromSync(r);
       *
       * assertEquals(n, 13);
       * ```
       *
       * @param r The reader to read from.
       * @returns The number of bytes read.
       */
      readFromSync(r) {
        let n = 0;
        const tmp = new Uint8Array(MIN_READ);
        while (true) {
          const shouldGrow = this.capacity - this.length < MIN_READ;
          const buf = shouldGrow ? tmp : new Uint8Array(this.#buf.buffer, this.length);
          const nread = r.readSync(buf);
          if (nread === null) {
            return n;
          }
          if (shouldGrow)
            this.writeSync(buf.subarray(0, nread));
          else
            this.#reslice(this.length + nread);
          n += nread;
        }
      }
    };
    exports2.Buffer = Buffer2;
  }
});

// npm/script/deps/jsr.io/@std/io/0.225.3/write_all.js
var require_write_all = __commonJS({
  "npm/script/deps/jsr.io/@std/io/0.225.3/write_all.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.writeAll = writeAll;
    exports2.writeAllSync = writeAllSync;
    async function writeAll(writer, data) {
      let nwritten = 0;
      while (nwritten < data.length) {
        nwritten += await writer.write(data.subarray(nwritten));
      }
    }
    function writeAllSync(writer, data) {
      let nwritten = 0;
      while (nwritten < data.length) {
        nwritten += writer.writeSync(data.subarray(nwritten));
      }
    }
  }
});

// npm/script/deps/jsr.io/@std/io/0.225.3/reader_from_stream_reader.js
var require_reader_from_stream_reader = __commonJS({
  "npm/script/deps/jsr.io/@std/io/0.225.3/reader_from_stream_reader.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.readerFromStreamReader = readerFromStreamReader;
    var buffer_js_1 = require_buffer();
    var write_all_js_1 = require_write_all();
    function readerFromStreamReader(streamReader) {
      const buffer = new buffer_js_1.Buffer();
      return {
        async read(p) {
          if (buffer.empty()) {
            const res = await streamReader.read();
            if (res.done) {
              return null;
            }
            await (0, write_all_js_1.writeAll)(buffer, res.value);
          }
          return buffer.read(p);
        }
      };
    }
  }
});

// npm/script/deps/jsr.io/@david/shell/0.6.0/src/fsFile.js
var require_fsFile = __commonJS({
  "npm/script/deps/jsr.io/@david/shell/0.6.0/src/fsFile.js"(exports2) {
    "use strict";
    var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) {
      if (k2 === void 0)
        k2 = k;
      var desc = Object.getOwnPropertyDescriptor(m, k);
      if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m[k];
        } };
      }
      Object.defineProperty(o, k2, desc);
    } : function(o, m, k, k2) {
      if (k2 === void 0)
        k2 = k;
      o[k2] = m[k];
    });
    var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) {
      Object.defineProperty(o, "default", { enumerable: true, value: v });
    } : function(o, v) {
      o["default"] = v;
    });
    var __importStar2 = exports2 && exports2.__importStar || /* @__PURE__ */ function() {
      var ownKeys = function(o) {
        ownKeys = Object.getOwnPropertyNames || function(o2) {
          var ar = [];
          for (var k in o2)
            if (Object.prototype.hasOwnProperty.call(o2, k))
              ar[ar.length] = k;
          return ar;
        };
        return ownKeys(o);
      };
      return function(mod) {
        if (mod && mod.__esModule)
          return mod;
        var result = {};
        if (mod != null) {
          for (var k = ownKeys(mod), i = 0; i < k.length; i++)
            if (k[i] !== "default")
              __createBinding2(result, mod, k[i]);
        }
        __setModuleDefault2(result, mod);
        return result;
      };
    }();
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.FsFile = void 0;
    exports2.open = open;
    exports2.create = create;
    exports2.writeSyncAll = writeSyncAll;
    exports2.writeAll = writeAll;
    var dntShim = __importStar2(require_dnt_shims());
    var fs = __importStar2(require("node:fs"));
    var node_timers_1 = require("node:timers");
    var nodeUtil = __importStar2(require("node:util"));
    var openAsync = nodeUtil.promisify(fs.open);
    var FsFile = class {
      #fd;
      /** Wraps an existing open file descriptor. */
      constructor(fd) {
        this.#fd = fd;
      }
      /** Reads up to `p.length` bytes into `p`, returning the number of bytes
       * read or `null` on EOF. */
      read(p) {
        return new Promise((resolve, reject) => {
          fs.read(this.#fd, p, 0, p.length, null, (err, bytesRead) => {
            if (err)
              reject(err);
            else
              resolve(bytesRead === 0 ? null : bytesRead);
          });
        });
      }
      /** Synchronous variant of {@link FsFile.read}. */
      readSync(p) {
        const bytesRead = fs.readSync(this.#fd, p);
        return bytesRead === 0 ? null : bytesRead;
      }
      /** Writes the provided bytes to the file, returning the number of bytes
       * written. */
      write(p) {
        return writeAll(this.#fd, p);
      }
      /** Synchronous variant of {@link FsFile.write}. */
      writeSync(p) {
        return writeSyncAll(this.#fd, p);
      }
      /** Closes the underlying file descriptor. */
      close() {
        try {
          fs.closeSync(this.#fd);
        } catch {
        }
      }
      /** A `WritableStream` that writes to this file. */
      get writable() {
        const write = this.write.bind(this);
        return new dntShim.WritableStream({
          async write(chunk) {
            await write(chunk);
          }
        });
      }
      /** Closes the file when used with `using` declarations. */
      [Symbol.dispose]() {
        this.close();
      }
    };
    exports2.FsFile = FsFile;
    async function open(filePath, options) {
      const fd = await openAsync(filePath, openOptionsToFlags(options));
      return new FsFile(fd);
    }
    async function create(filePath) {
      const fd = await openAsync(filePath, fs.constants.O_WRONLY | fs.constants.O_CREAT | fs.constants.O_TRUNC);
      return new FsFile(fd);
    }
    function openOptionsToFlags(options) {
      let flags = options.read && options.write ? fs.constants.O_RDWR : options.write ? fs.constants.O_WRONLY : fs.constants.O_RDONLY;
      if (options.create)
        flags |= fs.constants.O_CREAT;
      if (options.truncate)
        flags |= fs.constants.O_TRUNC;
      if (options.append)
        flags |= fs.constants.O_APPEND;
      return flags;
    }
    function writeSyncAll(fd, data) {
      let offset = 0;
      while (offset < data.length) {
        try {
          const n = fs.writeSync(fd, data, offset, data.length - offset);
          if (n <= 0)
            break;
          offset += n;
        } catch (err) {
          if (err?.code === "EAGAIN" || err?.code === "EWOULDBLOCK")
            continue;
          throw err;
        }
      }
      return offset;
    }
    async function writeAll(fd, data) {
      let offset = 0;
      while (offset < data.length) {
        const n = await writeOnce(fd, data, offset);
        if (n <= 0)
          break;
        offset += n;
      }
      return offset;
    }
    function writeOnce(fd, data, offset) {
      return new Promise((resolve, reject) => {
        const attempt = () => {
          fs.write(fd, data, offset, data.length - offset, null, (err, bytesWritten) => {
            if (err) {
              if (err.code === "EAGAIN" || err.code === "EWOULDBLOCK")
                (0, node_timers_1.setImmediate)(attempt);
              else
                reject(err);
            } else {
              resolve(bytesWritten);
            }
          });
        };
        attempt();
      });
    }
  }
});

// npm/script/deps/jsr.io/@david/shell/0.6.0/src/common.js
var require_common = __commonJS({
  "npm/script/deps/jsr.io/@david/shell/0.6.0/src/common.js"(exports2) {
    "use strict";
    var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) {
      if (k2 === void 0)
        k2 = k;
      var desc = Object.getOwnPropertyDescriptor(m, k);
      if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m[k];
        } };
      }
      Object.defineProperty(o, k2, desc);
    } : function(o, m, k, k2) {
      if (k2 === void 0)
        k2 = k;
      o[k2] = m[k];
    });
    var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) {
      Object.defineProperty(o, "default", { enumerable: true, value: v });
    } : function(o, v) {
      o["default"] = v;
    });
    var __importStar2 = exports2 && exports2.__importStar || /* @__PURE__ */ function() {
      var ownKeys = function(o) {
        ownKeys = Object.getOwnPropertyNames || function(o2) {
          var ar = [];
          for (var k in o2)
            if (Object.prototype.hasOwnProperty.call(o2, k))
              ar[ar.length] = k;
          return ar;
        };
        return ownKeys(o);
      };
      return function(mod) {
        if (mod && mod.__esModule)
          return mod;
        var result = {};
        if (mod != null) {
          for (var k = ownKeys(mod), i = 0; i < k.length; i++)
            if (k[i] !== "default")
              __createBinding2(result, mod, k[i]);
        }
        __setModuleDefault2(result, mod);
        return result;
      };
    }();
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.LoggerTreeBox = exports2.TreeBox = exports2.Box = exports2.symbols = exports2.isWindows = void 0;
    exports2.getRealEnvVars = getRealEnvVars;
    exports2.delayToMs = delayToMs;
    exports2.resolvePath = resolvePath;
    exports2.safeLstat = safeLstat;
    exports2.getExecutableShebangFromPath = getExecutableShebangFromPath;
    exports2.getExecutableShebang = getExecutableShebang;
    exports2.abortSignalToPromise = abortSignalToPromise;
    exports2.errorToString = errorToString;
    var dntShim = __importStar2(require_dnt_shims());
    var fs = __importStar2(require("node:fs"));
    var path = __importStar2(require("node:path"));
    var mod_js_12 = require_mod3();
    var fsFile_js_1 = require_fsFile();
    exports2.isWindows = process.platform === "win32";
    function getRealEnvVars() {
      const result = {};
      for (const [key, value] of Object.entries(process.env)) {
        if (value !== void 0) {
          result[key] = value;
        }
      }
      return result;
    }
    exports2.symbols = {
      writable: Symbol.for("dax.writableStream"),
      readable: Symbol.for("dax.readableStream")
    };
    function delayToMs(delay) {
      if (typeof delay === "number") {
        return delay;
      } else if (typeof delay === "string") {
        const msMatch = delay.match(/^([0-9]+)ms$/);
        if (msMatch != null) {
          return parseInt(msMatch[1], 10);
        }
        const secondsMatch = delay.match(/^([0-9]+\.?[0-9]*)s$/);
        if (secondsMatch != null) {
          return Math.round(parseFloat(secondsMatch[1]) * 1e3);
        }
        const minutesMatch = delay.match(/^([0-9]+\.?[0-9]*)m$/);
        if (minutesMatch != null) {
          return Math.round(parseFloat(minutesMatch[1]) * 1e3 * 60);
        }
        const minutesSecondsMatch = delay.match(/^([0-9]+\.?[0-9]*)m([0-9]+\.?[0-9]*)s$/);
        if (minutesSecondsMatch != null) {
          return Math.round(parseFloat(minutesSecondsMatch[1]) * 1e3 * 60 + parseFloat(minutesSecondsMatch[2]) * 1e3);
        }
        const hoursMatch = delay.match(/^([0-9]+\.?[0-9]*)h$/);
        if (hoursMatch != null) {
          return Math.round(parseFloat(hoursMatch[1]) * 1e3 * 60 * 60);
        }
        const hoursMinutesMatch = delay.match(/^([0-9]+\.?[0-9]*)h([0-9]+\.?[0-9]*)m$/);
        if (hoursMinutesMatch != null) {
          return Math.round(parseFloat(hoursMinutesMatch[1]) * 1e3 * 60 * 60 + parseFloat(hoursMinutesMatch[2]) * 1e3 * 60);
        }
        const hoursMinutesSecondsMatch = delay.match(/^([0-9]+\.?[0-9]*)h([0-9]+\.?[0-9]*)m([0-9]+\.?[0-9]*)s$/);
        if (hoursMinutesSecondsMatch != null) {
          return Math.round(parseFloat(hoursMinutesSecondsMatch[1]) * 1e3 * 60 * 60 + parseFloat(hoursMinutesSecondsMatch[2]) * 1e3 * 60 + parseFloat(hoursMinutesSecondsMatch[3]) * 1e3);
        }
      }
      throw new Error(`Unknown delay value: ${delay}`);
    }
    function resolvePath(cwd, arg) {
      return path.resolve(path.isAbsolute(arg) ? arg : path.join(cwd, arg));
    }
    var Box = class {
      value;
      constructor(value) {
        this.value = value;
      }
    };
    exports2.Box = Box;
    var TreeBox = class _TreeBox {
      #value;
      constructor(value) {
        this.#value = value;
      }
      getValue() {
        let tree = this;
        while (tree.#value instanceof _TreeBox) {
          tree = tree.#value;
        }
        return tree.#value;
      }
      setValue(value) {
        this.#value = value;
      }
      createChild() {
        return new _TreeBox(this);
      }
    };
    exports2.TreeBox = TreeBox;
    var LoggerTreeBox = class extends TreeBox {
      getValue() {
        const innerValue = super.getValue();
        return (...args) => {
          return mod_js_12.staticText.withTempClear(() => {
            innerValue(...args);
          });
        };
      }
    };
    exports2.LoggerTreeBox = LoggerTreeBox;
    async function safeLstat(path2) {
      try {
        return await fs.promises.lstat(path2);
      } catch (err) {
        if (err?.code === "ENOENT") {
          return void 0;
        } else {
          throw err;
        }
      }
    }
    async function getExecutableShebangFromPath(path2) {
      try {
        const file = await (0, fsFile_js_1.open)(path2, { read: true });
        try {
          return await getExecutableShebang(file);
        } finally {
          try {
            file.close();
          } catch {
          }
        }
      } catch (err) {
        if (err?.code === "ENOENT") {
          return false;
        }
        throw err;
      }
    }
    var decoder = new dntShim.TextDecoder();
    async function getExecutableShebang(reader) {
      const text = "#!/usr/bin/env ";
      const buffer = new Uint8Array(text.length);
      const bytesReadCount = await reader.read(buffer);
      if (bytesReadCount !== text.length || decoder.decode(buffer) !== text) {
        return void 0;
      }
      const line = (await readFirstLine(reader)).trim();
      if (line.length === 0) {
        return void 0;
      }
      const dashS = "-S ";
      if (line.startsWith(dashS)) {
        return {
          stringSplit: true,
          command: line.slice(dashS.length)
        };
      } else {
        return {
          stringSplit: false,
          command: line
        };
      }
    }
    async function readFirstLine(reader) {
      const chunkSize = 1024;
      const chunkBuffer = new Uint8Array(chunkSize);
      const collectedChunks = [];
      let totalLength = 0;
      while (true) {
        const bytesRead = await reader.read(chunkBuffer);
        if (bytesRead == null || bytesRead === 0) {
          break;
        }
        const currentChunk = chunkBuffer.subarray(0, bytesRead);
        const newlineIndex = currentChunk.indexOf(10);
        if (newlineIndex !== -1) {
          collectedChunks.push(currentChunk.subarray(0, newlineIndex));
          totalLength += newlineIndex;
          break;
        } else {
          collectedChunks.push(currentChunk);
          totalLength += bytesRead;
        }
      }
      const finalBytes = new Uint8Array(totalLength);
      let offset = 0;
      for (const chunk of collectedChunks) {
        finalBytes.set(chunk, offset);
        offset += chunk.length;
      }
      return new dntShim.TextDecoder().decode(finalBytes);
    }
    function abortSignalToPromise(signal) {
      const { resolve, promise } = Promise.withResolvers();
      const listener = () => {
        signal.removeEventListener("abort", listener);
        resolve();
      };
      signal.addEventListener("abort", listener);
      return {
        [Symbol.dispose]() {
          signal.removeEventListener("abort", listener);
        },
        promise
      };
    }
    var nodeErrorPrefix = /^E[A-Z0-9_]+: /;
    function errorToString(err) {
      const message = err instanceof Error ? err.message : String(err);
      return message.replace(nodeErrorPrefix, "");
    }
  }
});

// npm/script/deps/jsr.io/@david/shell/0.6.0/src/commands/args.js
var require_args = __commonJS({
  "npm/script/deps/jsr.io/@david/shell/0.6.0/src/commands/args.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.parseArgKinds = parseArgKinds;
    exports2.bailUnsupported = bailUnsupported;
    function parseArgKinds(flags) {
      const result = [];
      let had_dash_dash = false;
      for (const arg of flags) {
        if (had_dash_dash) {
          result.push({ arg, kind: "Arg" });
        } else if (arg == "-") {
          result.push({ arg: "-", kind: "Arg" });
        } else if (arg == "--") {
          had_dash_dash = true;
        } else if (arg.startsWith("--")) {
          result.push({ arg: arg.replace(/^--/, ""), kind: "LongFlag" });
        } else if (arg.startsWith("-")) {
          const flags2 = arg.replace(/^-/, "");
          if (!isNaN(parseFloat(flags2))) {
            result.push({ arg, kind: "Arg" });
          } else {
            for (const c of flags2) {
              result.push({ arg: c, kind: "ShortFlag" });
            }
          }
        } else {
          result.push({ arg, kind: "Arg" });
        }
      }
      return result;
    }
    function bailUnsupported(arg) {
      switch (arg.kind) {
        case "Arg":
          throw Error(`unsupported argument: ${arg.arg}`);
        case "ShortFlag":
          throw Error(`unsupported flag: -${arg.arg}`);
        case "LongFlag":
          throw Error(`unsupported flag: --${arg.arg}`);
      }
    }
  }
});

// npm/script/deps/jsr.io/@david/shell/0.6.0/src/commands/cat.js
var require_cat = __commonJS({
  "npm/script/deps/jsr.io/@david/shell/0.6.0/src/commands/cat.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.catCommand = catCommand;
    exports2.parseCatArgs = parseCatArgs;
    var common_js_12 = require_common();
    var fsFile_js_1 = require_fsFile();
    var args_js_1 = require_args();
    async function catCommand(context) {
      try {
        const code = await executeCat(context);
        return { code };
      } catch (err) {
        return context.error(`cat: ${(0, common_js_12.errorToString)(err)}`);
      }
    }
    async function executeCat(context) {
      const flags = parseCatArgs(context.args);
      let exitCode = 0;
      const buf = new Uint8Array(1024);
      for (const path of flags.paths) {
        if (path === "-") {
          if (typeof context.stdin === "object") {
            while (!context.signal.aborted) {
              const size = await context.stdin.read(buf);
              if (!size || size === 0) {
                break;
              } else {
                const maybePromise = context.stdout.write(buf.slice(0, size));
                if (maybePromise instanceof Promise) {
                  await maybePromise;
                }
              }
            }
            exitCode = context.signal.abortedExitCode ?? 0;
          } else {
            const _assertValue = context.stdin;
            throw new Error(`not supported. stdin was '${context.stdin}'`);
          }
        } else {
          let file;
          try {
            file = await (0, fsFile_js_1.open)((0, common_js_12.resolvePath)(context.cwd, path), { read: true });
            while (!context.signal.aborted) {
              const size = await file.read(buf);
              if (!size || size === 0) {
                break;
              } else {
                const maybePromise = context.stdout.write(buf.slice(0, size));
                if (maybePromise instanceof Promise) {
                  await maybePromise;
                }
              }
            }
            exitCode = context.signal.abortedExitCode ?? 0;
          } catch (err) {
            const maybePromise = context.stderr.writeLine(`cat ${path}: ${(0, common_js_12.errorToString)(err)}`);
            if (maybePromise instanceof Promise) {
              await maybePromise;
            }
            exitCode = 1;
          } finally {
            file?.close();
          }
        }
      }
      return exitCode;
    }
    function parseCatArgs(args) {
      const paths = [];
      for (const arg of (0, args_js_1.parseArgKinds)(args)) {
        if (arg.kind === "Arg") {
          paths.push(arg.arg);
        } else {
          (0, args_js_1.bailUnsupported)(arg);
        }
      }
      if (paths.length === 0) {
        paths.push("-");
      }
      return { paths };
    }
  }
});

// npm/script/deps/jsr.io/@david/shell/0.6.0/src/commands/cd.js
var require_cd = __commonJS({
  "npm/script/deps/jsr.io/@david/shell/0.6.0/src/commands/cd.js"(exports2) {
    "use strict";
    var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) {
      if (k2 === void 0)
        k2 = k;
      var desc = Object.getOwnPropertyDescriptor(m, k);
      if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m[k];
        } };
      }
      Object.defineProperty(o, k2, desc);
    } : function(o, m, k, k2) {
      if (k2 === void 0)
        k2 = k;
      o[k2] = m[k];
    });
    var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) {
      Object.defineProperty(o, "default", { enumerable: true, value: v });
    } : function(o, v) {
      o["default"] = v;
    });
    var __importStar2 = exports2 && exports2.__importStar || /* @__PURE__ */ function() {
      var ownKeys = function(o) {
        ownKeys = Object.getOwnPropertyNames || function(o2) {
          var ar = [];
          for (var k in o2)
            if (Object.prototype.hasOwnProperty.call(o2, k))
              ar[ar.length] = k;
          return ar;
        };
        return ownKeys(o);
      };
      return function(mod) {
        if (mod && mod.__esModule)
          return mod;
        var result = {};
        if (mod != null) {
          for (var k = ownKeys(mod), i = 0; i < k.length; i++)
            if (k[i] !== "default")
              __createBinding2(result, mod, k[i]);
        }
        __setModuleDefault2(result, mod);
        return result;
      };
    }();
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.cdCommand = cdCommand;
    var fs = __importStar2(require("node:fs"));
    var common_js_12 = require_common();
    async function cdCommand(context) {
      try {
        const dir = await executeCd(context.cwd, context.args);
        return {
          code: 0,
          changes: [{
            kind: "cd",
            dir
          }]
        };
      } catch (err) {
        return context.error(`cd: ${(0, common_js_12.errorToString)(err)}`);
      }
    }
    async function executeCd(cwd, args) {
      const arg = parseArgs(args);
      const result = (0, common_js_12.resolvePath)(cwd, arg);
      if (!await isDirectory(result)) {
        throw new Error(`${result}: Not a directory`);
      }
      return result;
    }
    async function isDirectory(path) {
      try {
        return (await fs.promises.stat(path)).isDirectory();
      } catch (err) {
        if (err?.code === "ENOENT") {
          return false;
        } else {
          throw err;
        }
      }
    }
    function parseArgs(args) {
      if (args.length === 0) {
        throw new Error("expected at least 1 argument");
      } else if (args.length > 1) {
        throw new Error("too many arguments");
      } else {
        return args[0];
      }
    }
  }
});

// npm/script/deps/jsr.io/@david/shell/0.6.0/src/commands/cpMv.js
var require_cpMv = __commonJS({
  "npm/script/deps/jsr.io/@david/shell/0.6.0/src/commands/cpMv.js"(exports2) {
    "use strict";
    var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) {
      if (k2 === void 0)
        k2 = k;
      var desc = Object.getOwnPropertyDescriptor(m, k);
      if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m[k];
        } };
      }
      Object.defineProperty(o, k2, desc);
    } : function(o, m, k, k2) {
      if (k2 === void 0)
        k2 = k;
      o[k2] = m[k];
    });
    var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) {
      Object.defineProperty(o, "default", { enumerable: true, value: v });
    } : function(o, v) {
      o["default"] = v;
    });
    var __importStar2 = exports2 && exports2.__importStar || /* @__PURE__ */ function() {
      var ownKeys = function(o) {
        ownKeys = Object.getOwnPropertyNames || function(o2) {
          var ar = [];
          for (var k in o2)
            if (Object.prototype.hasOwnProperty.call(o2, k))
              ar[ar.length] = k;
          return ar;
        };
        return ownKeys(o);
      };
      return function(mod) {
        if (mod && mod.__esModule)
          return mod;
        var result = {};
        if (mod != null) {
          for (var k = ownKeys(mod), i = 0; i < k.length; i++)
            if (k[i] !== "default")
              __createBinding2(result, mod, k[i]);
        }
        __setModuleDefault2(result, mod);
        return result;
      };
    }();
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.cpCommand = cpCommand;
    exports2.parseCpArgs = parseCpArgs;
    exports2.mvCommand = mvCommand;
    exports2.parseMvArgs = parseMvArgs;
    var fs = __importStar2(require("node:fs"));
    var path = __importStar2(require("node:path"));
    var common_js_12 = require_common();
    var args_js_1 = require_args();
    async function cpCommand(context) {
      try {
        await executeCp(context.cwd, context.args);
        return { code: 0 };
      } catch (err) {
        return context.error(`cp: ${(0, common_js_12.errorToString)(err)}`);
      }
    }
    async function executeCp(cwd, args) {
      const flags = await parseCpArgs(cwd, args);
      for (const { from, to } of flags.operations) {
        await doCopyOperation(flags, from, to);
      }
    }
    async function parseCpArgs(cwd, args) {
      const paths = [];
      let recursive = false;
      for (const arg of (0, args_js_1.parseArgKinds)(args)) {
        if (arg.kind === "Arg")
          paths.push(arg.arg);
        else if (arg.arg === "recursive" && arg.kind === "LongFlag" || arg.arg === "r" && arg.kind == "ShortFlag" || arg.arg === "R" && arg.kind === "ShortFlag") {
          recursive = true;
        } else
          (0, args_js_1.bailUnsupported)(arg);
      }
      if (paths.length === 0)
        throw Error("missing file operand");
      else if (paths.length === 1)
        throw Error(`missing destination file operand after '${paths[0]}'`);
      return { recursive, operations: await getCopyAndMoveOperations(cwd, paths) };
    }
    async function doCopyOperation(flags, from, to) {
      const fromInfo = await (0, common_js_12.safeLstat)(from.path);
      if (fromInfo?.isDirectory()) {
        if (flags.recursive) {
          const toInfo = await (0, common_js_12.safeLstat)(to.path);
          if (toInfo?.isFile()) {
            throw Error("destination was a file");
          } else if (toInfo?.isSymbolicLink()) {
            throw Error("no support for copying to symlinks");
          } else if (fromInfo.isSymbolicLink()) {
            throw Error("no support for copying from symlinks");
          } else {
            await fs.promises.cp(from.path, to.path, { recursive: true });
          }
        } else {
          throw Error("source was a directory; maybe specify -r");
        }
      } else {
        await fs.promises.copyFile(from.path, to.path);
      }
    }
    async function mvCommand(context) {
      try {
        await executeMove(context.cwd, context.args);
        return { code: 0 };
      } catch (err) {
        return context.error(`mv: ${(0, common_js_12.errorToString)(err)}`);
      }
    }
    async function executeMove(cwd, args) {
      const flags = await parseMvArgs(cwd, args);
      for (const { from, to } of flags.operations) {
        await fs.promises.rename(from.path, to.path);
      }
    }
    async function parseMvArgs(cwd, args) {
      const paths = [];
      for (const arg of (0, args_js_1.parseArgKinds)(args)) {
        if (arg.kind === "Arg")
          paths.push(arg.arg);
        else
          (0, args_js_1.bailUnsupported)(arg);
      }
      if (paths.length === 0)
        throw Error("missing operand");
      else if (paths.length === 1)
        throw Error(`missing destination file operand after '${paths[0]}'`);
      return { operations: await getCopyAndMoveOperations(cwd, paths) };
    }
    async function getCopyAndMoveOperations(cwd, paths) {
      const specified_destination = paths.splice(paths.length - 1, 1)[0];
      const destination = (0, common_js_12.resolvePath)(cwd, specified_destination);
      const fromArgs = paths;
      const operations = [];
      if (fromArgs.length > 1) {
        if (!await (0, common_js_12.safeLstat)(destination).then((p) => p?.isDirectory())) {
          throw Error(`target '${specified_destination}' is not a directory`);
        }
        for (const from of fromArgs) {
          const fromPath = (0, common_js_12.resolvePath)(cwd, from);
          const toPath = path.join(destination, path.basename(fromPath));
          operations.push({
            from: {
              specified: from,
              path: fromPath
            },
            to: {
              specified: specified_destination,
              path: toPath
            }
          });
        }
      } else {
        const fromPath = (0, common_js_12.resolvePath)(cwd, fromArgs[0]);
        const toPath = await (0, common_js_12.safeLstat)(destination).then((p) => p?.isDirectory()) ? calculateDestinationPath(destination, fromPath) : destination;
        operations.push({
          from: {
            specified: fromArgs[0],
            path: fromPath
          },
          to: {
            specified: specified_destination,
            path: toPath
          }
        });
      }
      return operations;
    }
    function calculateDestinationPath(destination, from) {
      return path.join(destination, path.basename(from));
    }
  }
});

// npm/script/deps/jsr.io/@david/shell/0.6.0/src/commands/echo.js
var require_echo = __commonJS({
  "npm/script/deps/jsr.io/@david/shell/0.6.0/src/commands/echo.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.echoCommand = echoCommand;
    var common_js_12 = require_common();
    function echoCommand(context) {
      try {
        const maybePromise = context.stdout.writeLine(context.args.join(" "));
        if (maybePromise instanceof Promise) {
          return maybePromise.then(() => ({ code: 0 })).catch((err) => handleFailure(context, err));
        } else {
          return { code: 0 };
        }
      } catch (err) {
        return handleFailure(context, err);
      }
    }
    function handleFailure(context, err) {
      return context.error(`echo: ${(0, common_js_12.errorToString)(err)}`);
    }
  }
});

// npm/script/deps/jsr.io/@david/shell/0.6.0/src/commands/exit.js
var require_exit = __commonJS({
  "npm/script/deps/jsr.io/@david/shell/0.6.0/src/commands/exit.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.exitCommand = exitCommand;
    var common_js_12 = require_common();
    function exitCommand(context) {
      try {
        const code = parseArgs(context.args);
        return {
          kind: "exit",
          code
        };
      } catch (err) {
        return context.error(2, `exit: ${(0, common_js_12.errorToString)(err)}`);
      }
    }
    function parseArgs(args) {
      if (args.length === 0)
        return 1;
      if (args.length > 1)
        throw new Error("too many arguments");
      const exitCode = parseInt(args[0], 10);
      if (isNaN(exitCode))
        throw new Error("numeric argument required.");
      if (exitCode < 0) {
        const code = -exitCode % 256;
        return 256 - code;
      }
      return exitCode % 256;
    }
  }
});

// npm/script/deps/jsr.io/@david/shell/0.6.0/src/commands/export.js
var require_export = __commonJS({
  "npm/script/deps/jsr.io/@david/shell/0.6.0/src/commands/export.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.exportCommand = exportCommand;
    function exportCommand(context) {
      const changes = [];
      for (const arg of context.args) {
        const equalsIndex = arg.indexOf("=");
        if (equalsIndex >= 0) {
          changes.push({
            kind: "envvar",
            name: arg.substring(0, equalsIndex),
            value: arg.substring(equalsIndex + 1)
          });
        }
      }
      return {
        code: 0,
        changes
      };
    }
  }
});

// npm/script/deps/jsr.io/@david/shell/0.6.0/src/commands/mkdir.js
var require_mkdir = __commonJS({
  "npm/script/deps/jsr.io/@david/shell/0.6.0/src/commands/mkdir.js"(exports2) {
    "use strict";
    var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) {
      if (k2 === void 0)
        k2 = k;
      var desc = Object.getOwnPropertyDescriptor(m, k);
      if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m[k];
        } };
      }
      Object.defineProperty(o, k2, desc);
    } : function(o, m, k, k2) {
      if (k2 === void 0)
        k2 = k;
      o[k2] = m[k];
    });
    var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) {
      Object.defineProperty(o, "default", { enumerable: true, value: v });
    } : function(o, v) {
      o["default"] = v;
    });
    var __importStar2 = exports2 && exports2.__importStar || /* @__PURE__ */ function() {
      var ownKeys = function(o) {
        ownKeys = Object.getOwnPropertyNames || function(o2) {
          var ar = [];
          for (var k in o2)
            if (Object.prototype.hasOwnProperty.call(o2, k))
              ar[ar.length] = k;
          return ar;
        };
        return ownKeys(o);
      };
      return function(mod) {
        if (mod && mod.__esModule)
          return mod;
        var result = {};
        if (mod != null) {
          for (var k = ownKeys(mod), i = 0; i < k.length; i++)
            if (k[i] !== "default")
              __createBinding2(result, mod, k[i]);
        }
        __setModuleDefault2(result, mod);
        return result;
      };
    }();
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.mkdirCommand = mkdirCommand;
    exports2.parseArgs = parseArgs;
    var fs = __importStar2(require("node:fs"));
    var common_js_12 = require_common();
    var common_js_22 = require_common();
    var args_js_1 = require_args();
    async function mkdirCommand(context) {
      try {
        await executeMkdir(context.cwd, context.args);
        return { code: 0 };
      } catch (err) {
        return context.error(`mkdir: ${(0, common_js_12.errorToString)(err)}`);
      }
    }
    async function executeMkdir(cwd, args) {
      const flags = parseArgs(args);
      for (const specifiedPath of flags.paths) {
        const path = (0, common_js_12.resolvePath)(cwd, specifiedPath);
        const info = await (0, common_js_22.safeLstat)(path);
        if (info?.isFile() || !flags.parents && info?.isDirectory()) {
          throw Error(`cannot create directory '${specifiedPath}': File exists`);
        }
        if (flags.parents) {
          await fs.promises.mkdir(path, { recursive: true });
        } else {
          await fs.promises.mkdir(path);
        }
      }
    }
    function parseArgs(args) {
      const result = {
        parents: false,
        paths: []
      };
      for (const arg of (0, args_js_1.parseArgKinds)(args)) {
        if (arg.arg === "parents" && arg.kind === "LongFlag" || arg.arg === "p" && arg.kind == "ShortFlag") {
          result.parents = true;
        } else {
          if (arg.kind !== "Arg")
            (0, args_js_1.bailUnsupported)(arg);
          result.paths.push(arg.arg.trim());
        }
      }
      if (result.paths.length === 0) {
        throw Error("missing operand");
      }
      return result;
    }
  }
});

// npm/script/deps/jsr.io/@david/shell/0.6.0/src/commands/printenv.js
var require_printenv = __commonJS({
  "npm/script/deps/jsr.io/@david/shell/0.6.0/src/commands/printenv.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.printEnvCommand = printEnvCommand;
    var common_js_12 = require_common();
    function printEnvCommand(context) {
      let args;
      if (common_js_12.isWindows) {
        args = context.args.map((arg) => arg.toUpperCase());
      } else {
        args = context.args;
      }
      try {
        const result = executePrintEnv(context.env, args);
        const code = args.some((arg) => context.env[arg] === void 0) ? 1 : 0;
        const maybePromise = context.stdout.writeLine(result);
        if (maybePromise instanceof Promise) {
          return maybePromise.then(() => ({ code })).catch((err) => handleError(context, err));
        } else {
          return { code };
        }
      } catch (err) {
        return handleError(context, err);
      }
    }
    function handleError(context, err) {
      return context.error(`printenv: ${(0, common_js_12.errorToString)(err)}`);
    }
    function executePrintEnv(env, args) {
      if (args.length === 0) {
        return Object.entries(env).map(([key, val]) => `${common_js_12.isWindows ? key.toUpperCase() : key}=${val}`).join("\n");
      } else {
        if (common_js_12.isWindows) {
          args = args.map((arg) => arg.toUpperCase());
        }
        return Object.entries(env).filter(([key]) => args.includes(key)).map(([_key, val]) => val).join("\n");
      }
    }
  }
});

// npm/script/deps/jsr.io/@david/shell/0.6.0/src/commands/pwd.js
var require_pwd = __commonJS({
  "npm/script/deps/jsr.io/@david/shell/0.6.0/src/commands/pwd.js"(exports2) {
    "use strict";
    var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) {
      if (k2 === void 0)
        k2 = k;
      var desc = Object.getOwnPropertyDescriptor(m, k);
      if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m[k];
        } };
      }
      Object.defineProperty(o, k2, desc);
    } : function(o, m, k, k2) {
      if (k2 === void 0)
        k2 = k;
      o[k2] = m[k];
    });
    var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) {
      Object.defineProperty(o, "default", { enumerable: true, value: v });
    } : function(o, v) {
      o["default"] = v;
    });
    var __importStar2 = exports2 && exports2.__importStar || /* @__PURE__ */ function() {
      var ownKeys = function(o) {
        ownKeys = Object.getOwnPropertyNames || function(o2) {
          var ar = [];
          for (var k in o2)
            if (Object.prototype.hasOwnProperty.call(o2, k))
              ar[ar.length] = k;
          return ar;
        };
        return ownKeys(o);
      };
      return function(mod) {
        if (mod && mod.__esModule)
          return mod;
        var result = {};
        if (mod != null) {
          for (var k = ownKeys(mod), i = 0; i < k.length; i++)
            if (k[i] !== "default")
              __createBinding2(result, mod, k[i]);
        }
        __setModuleDefault2(result, mod);
        return result;
      };
    }();
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.pwdCommand = pwdCommand;
    exports2.parseArgs = parseArgs;
    var path = __importStar2(require("node:path"));
    var common_js_12 = require_common();
    var args_js_1 = require_args();
    function pwdCommand(context) {
      try {
        const output = executePwd(context.cwd, context.args);
        const maybePromise = context.stdout.writeLine(output);
        const result = { code: 0 };
        if (maybePromise instanceof Promise) {
          return maybePromise.then(() => result).catch((err) => handleError(context, err));
        } else {
          return result;
        }
      } catch (err) {
        return handleError(context, err);
      }
    }
    function handleError(context, err) {
      return context.error(`pwd: ${(0, common_js_12.errorToString)(err)}`);
    }
    function executePwd(cwd, args) {
      const flags = parseArgs(args);
      if (flags.logical) {
        return path.resolve(cwd);
      } else {
        return cwd;
      }
    }
    function parseArgs(args) {
      let logical = false;
      for (const arg of (0, args_js_1.parseArgKinds)(args)) {
        if (arg.arg === "L" && arg.kind === "ShortFlag") {
          logical = true;
        } else if (arg.arg === "P" && arg.kind == "ShortFlag") {
        } else if (arg.kind === "Arg") {
        } else {
          (0, args_js_1.bailUnsupported)(arg);
        }
      }
      return { logical };
    }
  }
});

// npm/script/deps/jsr.io/@david/shell/0.6.0/src/commands/rm.js
var require_rm = __commonJS({
  "npm/script/deps/jsr.io/@david/shell/0.6.0/src/commands/rm.js"(exports2) {
    "use strict";
    var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) {
      if (k2 === void 0)
        k2 = k;
      var desc = Object.getOwnPropertyDescriptor(m, k);
      if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m[k];
        } };
      }
      Object.defineProperty(o, k2, desc);
    } : function(o, m, k, k2) {
      if (k2 === void 0)
        k2 = k;
      o[k2] = m[k];
    });
    var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) {
      Object.defineProperty(o, "default", { enumerable: true, value: v });
    } : function(o, v) {
      o["default"] = v;
    });
    var __importStar2 = exports2 && exports2.__importStar || /* @__PURE__ */ function() {
      var ownKeys = function(o) {
        ownKeys = Object.getOwnPropertyNames || function(o2) {
          var ar = [];
          for (var k in o2)
            if (Object.prototype.hasOwnProperty.call(o2, k))
              ar[ar.length] = k;
          return ar;
        };
        return ownKeys(o);
      };
      return function(mod) {
        if (mod && mod.__esModule)
          return mod;
        var result = {};
        if (mod != null) {
          for (var k = ownKeys(mod), i = 0; i < k.length; i++)
            if (k[i] !== "default")
              __createBinding2(result, mod, k[i]);
        }
        __setModuleDefault2(result, mod);
        return result;
      };
    }();
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.rmCommand = rmCommand;
    exports2.parseArgs = parseArgs;
    var fs = __importStar2(require("node:fs"));
    var common_js_12 = require_common();
    var args_js_1 = require_args();
    async function rmCommand(context) {
      try {
        await executeRemove(context.cwd, context.args);
        return { code: 0 };
      } catch (err) {
        return context.error(`rm: ${(0, common_js_12.errorToString)(err)}`);
      }
    }
    async function executeRemove(cwd, args) {
      const flags = parseArgs(args);
      await Promise.all(flags.paths.map((specifiedPath) => {
        if (specifiedPath.length === 0) {
          throw new Error("Bug in dax. Specified path should have not been empty.");
        }
        const path = (0, common_js_12.resolvePath)(cwd, specifiedPath);
        if (path === "/") {
          throw new Error("Cannot delete root directory. Maybe bug in dax? Please report this.");
        }
        return removePath(path, flags.recursive).catch((err) => {
          if (flags.force && err?.code === "ENOENT") {
            return Promise.resolve();
          } else {
            return Promise.reject(err);
          }
        });
      }));
    }
    async function removePath(filePath, recursive) {
      if (recursive) {
        await fs.promises.rm(filePath, { recursive: true });
        return;
      }
      try {
        await fs.promises.rm(filePath);
      } catch (err) {
        if (err?.code !== "EISDIR" && err?.code !== "ERR_FS_EISDIR") {
          throw err;
        }
        await fs.promises.rmdir(filePath);
      }
    }
    function parseArgs(args) {
      const result = {
        recursive: false,
        force: false,
        dir: false,
        paths: []
      };
      for (const arg of (0, args_js_1.parseArgKinds)(args)) {
        if (arg.arg === "recursive" && arg.kind === "LongFlag" || arg.arg === "r" && arg.kind == "ShortFlag" || arg.arg === "R" && arg.kind === "ShortFlag") {
          result.recursive = true;
        } else if (arg.arg == "dir" && arg.kind === "LongFlag" || arg.arg == "d" && arg.kind === "ShortFlag") {
          result.dir = true;
        } else if (arg.arg == "force" && arg.kind === "LongFlag" || arg.arg == "f" && arg.kind === "ShortFlag") {
          result.force = true;
        } else {
          if (arg.kind !== "Arg")
            bailUnsupported(arg);
          result.paths.push(arg.arg.trim());
        }
      }
      if (result.paths.length === 0) {
        throw Error("missing operand");
      }
      return result;
    }
    function bailUnsupported(arg) {
      switch (arg.kind) {
        case "Arg":
          throw Error(`unsupported argument: ${arg.arg}`);
        case "ShortFlag":
          throw Error(`unsupported flag: -${arg.arg}`);
        case "LongFlag":
          throw Error(`unsupported flag: --${arg.arg}`);
      }
    }
  }
});

// npm/script/deps/jsr.io/@david/shell/0.6.0/src/commands/set.js
var require_set = __commonJS({
  "npm/script/deps/jsr.io/@david/shell/0.6.0/src/commands/set.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.setCommand = setCommand;
    var NAMED_OPTIONS = [
      ["errexit", "errexit"],
      ["pipefail", "pipefail"]
    ];
    var SHORT_FLAGS = {
      e: "errexit"
    };
    function findNamedOption(name) {
      return NAMED_OPTIONS.find(([n]) => n === name)?.[1];
    }
    function findShortFlag(arg) {
      if (arg.length !== 2)
        return void 0;
      const sign = arg[0];
      if (sign !== "-" && sign !== "+")
        return void 0;
      return SHORT_FLAGS[arg[1]];
    }
    function setCommand(context) {
      const args = context.args;
      if (args.length === 0) {
        return { code: 0 };
      }
      if (args.length === 1 && args[0] === "-o") {
        const opts = context.shellOptions;
        for (const [name, flag] of NAMED_OPTIONS) {
          context.stdout.writeLine(`${name}	${opts[flag] ? "on" : "off"}`);
        }
        return { code: 0 };
      }
      if (args.length === 1 && args[0] === "+o") {
        const opts = context.shellOptions;
        for (const [name, flag] of NAMED_OPTIONS) {
          context.stdout.writeLine(`set ${opts[flag] ? "-o" : "+o"} ${name}`);
        }
        return { code: 0 };
      }
      const changes = [];
      let i = 0;
      while (i < args.length) {
        const arg = args[i];
        if ((arg === "-o" || arg === "+o") && i + 1 < args.length) {
          const enable = arg === "-o";
          const optionName = args[i + 1];
          const option = findNamedOption(optionName);
          if (option == null) {
            return context.error(`set: unknown option: ${optionName}`);
          }
          changes.push({ kind: "setoption", option, value: enable });
          i += 2;
        } else {
          const option = findShortFlag(arg);
          if (option == null) {
            return context.error(`set: invalid option: ${arg}`);
          }
          changes.push({ kind: "setoption", option, value: arg.startsWith("-") });
          i += 1;
        }
      }
      return { code: 0, changes };
    }
  }
});

// npm/script/deps/jsr.io/@david/shell/0.6.0/src/commands/shopt.js
var require_shopt = __commonJS({
  "npm/script/deps/jsr.io/@david/shell/0.6.0/src/commands/shopt.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.shoptCommand = shoptCommand;
    var SHOPT_OPTIONS = ["nullglob", "failglob", "globstar"];
    function isShoptOption(name) {
      return SHOPT_OPTIONS.includes(name);
    }
    function invalidOptionError(context, name) {
      return context.error(`shopt: ${name}: invalid shell option name`);
    }
    function shoptCommand(context) {
      const args = context.args;
      let mode;
      let optionArgs = args;
      if (args.length > 0) {
        if (args[0] === "-s") {
          mode = true;
          optionArgs = args.slice(1);
        } else if (args[0] === "-u") {
          mode = false;
          optionArgs = args.slice(1);
        }
      }
      const options = [];
      for (const arg of optionArgs) {
        if (!isShoptOption(arg)) {
          return invalidOptionError(context, arg);
        }
        options.push(arg);
      }
      if (mode !== void 0) {
        const changes = options.map((option) => ({
          kind: "setoption",
          option,
          value: mode
        }));
        return { code: 0, changes };
      }
      const currentOptions = context.shellOptions;
      if (options.length === 0) {
        context.stdout.writeLine(`failglob	${currentOptions.failglob ? "on" : "off"}`);
        context.stdout.writeLine(`globstar	${currentOptions.globstar ? "on" : "off"}`);
        context.stdout.writeLine(`nullglob	${currentOptions.nullglob ? "on" : "off"}`);
        return { code: 0 };
      } else {
        let anyOff = false;
        for (const opt of options) {
          const isOn = currentOptions[opt];
          if (!isOn) {
            anyOff = true;
          }
          context.stdout.writeLine(`${opt}	${isOn ? "on" : "off"}`);
        }
        return { code: anyOff ? 1 : 0 };
      }
    }
  }
});

// npm/script/deps/jsr.io/@david/shell/0.6.0/src/result.js
var require_result = __commonJS({
  "npm/script/deps/jsr.io/@david/shell/0.6.0/src/result.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.getAbortedResult = getAbortedResult;
    function getAbortedResult() {
      return {
        kind: "exit",
        code: 124
        // same as timeout command
      };
    }
  }
});

// npm/script/deps/jsr.io/@david/shell/0.6.0/src/commands/sleep.js
var require_sleep = __commonJS({
  "npm/script/deps/jsr.io/@david/shell/0.6.0/src/commands/sleep.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.sleepCommand = sleepCommand;
    var common_js_12 = require_common();
    var result_js_1 = require_result();
    async function sleepCommand(context) {
      try {
        const ms = parseArgs(context.args);
        await new Promise((resolve) => {
          const timeoutId = setTimeout(finish, ms);
          context.signal.addListener(signalListener);
          function signalListener(_signal) {
            if (context.signal.aborted) {
              finish();
            }
          }
          function finish() {
            resolve();
            clearInterval(timeoutId);
            context.signal.removeListener(signalListener);
          }
        });
        if (context.signal.aborted) {
          return (0, result_js_1.getAbortedResult)();
        }
        return { code: 0 };
      } catch (err) {
        return context.error(`sleep: ${(0, common_js_12.errorToString)(err)}`);
      }
    }
    function parseArgs(args) {
      let totalTimeMs = 0;
      if (args.length === 0) {
        throw new Error("missing operand");
      }
      for (const arg of args) {
        if (arg.startsWith("-")) {
          throw new Error(`unsupported: ${arg}`);
        }
        const value = parseFloat(arg);
        if (isNaN(value)) {
          throw new Error(`error parsing argument '${arg}' to number.`);
        }
        totalTimeMs = value * 1e3;
      }
      return totalTimeMs;
    }
  }
});

// npm/script/deps/jsr.io/@david/shell/0.6.0/src/commands/test.js
var require_test = __commonJS({
  "npm/script/deps/jsr.io/@david/shell/0.6.0/src/commands/test.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.testCommand = testCommand;
    var common_js_12 = require_common();
    async function testCommand(context) {
      try {
        const [testFlag, testPath] = parseArgs(context.cwd, context.args);
        let result;
        switch (testFlag) {
          case "-f":
            result = (await (0, common_js_12.safeLstat)(testPath))?.isFile() ?? false;
            break;
          case "-d":
            result = (await (0, common_js_12.safeLstat)(testPath))?.isDirectory() ?? false;
            break;
          case "-e":
            result = await (0, common_js_12.safeLstat)(testPath) != null;
            break;
          case "-s":
            result = ((await (0, common_js_12.safeLstat)(testPath))?.size ?? 0) > 0;
            break;
          case "-L":
            result = (await (0, common_js_12.safeLstat)(testPath))?.isSymbolicLink() ?? false;
            break;
          default:
            throw new Error("unsupported test type");
        }
        return { code: result ? 0 : 1 };
      } catch (err) {
        return context.error(2, `test: ${(0, common_js_12.errorToString)(err)}`);
      }
    }
    function parseArgs(cwd, args) {
      if (args.length !== 2) {
        throw new Error("expected 2 arguments");
      }
      if (args[0] == null || !args[0].startsWith("-")) {
        throw new Error("missing test type flag");
      }
      return [args[0], (0, common_js_12.resolvePath)(cwd, args[1])];
    }
  }
});

// npm/script/deps/jsr.io/@david/shell/0.6.0/src/commands/touch.js
var require_touch = __commonJS({
  "npm/script/deps/jsr.io/@david/shell/0.6.0/src/commands/touch.js"(exports2) {
    "use strict";
    var __addDisposableResource = exports2 && exports2.__addDisposableResource || function(env, value, async) {
      if (value !== null && value !== void 0) {
        if (typeof value !== "object" && typeof value !== "function")
          throw new TypeError("Object expected.");
        var dispose, inner;
        if (async) {
          if (!Symbol.asyncDispose)
            throw new TypeError("Symbol.asyncDispose is not defined.");
          dispose = value[Symbol.asyncDispose];
        }
        if (dispose === void 0) {
          if (!Symbol.dispose)
            throw new TypeError("Symbol.dispose is not defined.");
          dispose = value[Symbol.dispose];
          if (async)
            inner = dispose;
        }
        if (typeof dispose !== "function")
          throw new TypeError("Object not disposable.");
        if (inner)
          dispose = function() {
            try {
              inner.call(this);
            } catch (e) {
              return Promise.reject(e);
            }
          };
        env.stack.push({ value, dispose, async });
      } else if (async) {
        env.stack.push({ async: true });
      }
      return value;
    };
    var __disposeResources = exports2 && exports2.__disposeResources || /* @__PURE__ */ function(SuppressedError2) {
      return function(env) {
        function fail(e) {
          env.error = env.hasError ? new SuppressedError2(e, env.error, "An error was suppressed during disposal.") : e;
          env.hasError = true;
        }
        var r, s = 0;
        function next() {
          while (r = env.stack.pop()) {
            try {
              if (!r.async && s === 1)
                return s = 0, env.stack.push(r), Promise.resolve().then(next);
              if (r.dispose) {
                var result = r.dispose.call(r.value);
                if (r.async)
                  return s |= 2, Promise.resolve(result).then(next, function(e) {
                    fail(e);
                    return next();
                  });
              } else
                s |= 1;
            } catch (e) {
              fail(e);
            }
          }
          if (s === 1)
            return env.hasError ? Promise.reject(env.error) : Promise.resolve();
          if (env.hasError)
            throw env.error;
        }
        return next();
      };
    }(typeof SuppressedError === "function" ? SuppressedError : function(error, suppressed, message) {
      var e = new Error(message);
      return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
    });
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.touchCommand = touchCommand;
    exports2.parseArgs = parseArgs;
    var node_path_1 = require("node:path");
    var common_js_12 = require_common();
    var fsFile_js_1 = require_fsFile();
    var args_js_1 = require_args();
    async function touchCommand(context) {
      try {
        await executetouch(context.args, context.cwd);
        return { code: 0 };
      } catch (err) {
        return context.error(`touch: ${(0, common_js_12.errorToString)(err)}`);
      }
    }
    async function executetouch(args, cwd) {
      const flags = parseArgs(args);
      for (const path of flags.paths) {
        const env_1 = { stack: [], error: void 0, hasError: false };
        try {
          const _f = __addDisposableResource(env_1, await (0, fsFile_js_1.create)((0, node_path_1.join)(cwd, path)), false);
        } catch (e_1) {
          env_1.error = e_1;
          env_1.hasError = true;
        } finally {
          __disposeResources(env_1);
        }
      }
    }
    function parseArgs(args) {
      const paths = [];
      for (const arg of (0, args_js_1.parseArgKinds)(args)) {
        if (arg.kind === "Arg")
          paths.push(arg.arg);
        else
          (0, args_js_1.bailUnsupported)(arg);
      }
      if (paths.length === 0)
        throw Error("missing file operand");
      return { paths };
    }
  }
});

// npm/script/deps/jsr.io/@david/shell/0.6.0/src/commands/unset.js
var require_unset = __commonJS({
  "npm/script/deps/jsr.io/@david/shell/0.6.0/src/commands/unset.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.unsetCommand = unsetCommand;
    var common_js_12 = require_common();
    function unsetCommand(context) {
      try {
        return {
          code: 0,
          changes: parseNames(context.args).map((name) => ({ kind: "unsetvar", name }))
        };
      } catch (err) {
        return context.error(`unset: ${(0, common_js_12.errorToString)(err)}`);
      }
    }
    function parseNames(args) {
      if (args[0] === "-f") {
        throw Error(`unsupported flag: -f`);
      } else if (args[0] === "-v") {
        return args.slice(1);
      } else {
        return args;
      }
    }
  }
});

// npm/script/deps/jsr.io/@david/shell/0.6.0/src/lineRingBuffer.js
var require_lineRingBuffer = __commonJS({
  "npm/script/deps/jsr.io/@david/shell/0.6.0/src/lineRingBuffer.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.LineRingBuffer = void 0;
    var LineRingBuffer = class {
      capacity;
      #buffer;
      #size = 0;
      #head = 0;
      constructor(capacity) {
        this.capacity = Math.max(1, capacity);
        this.#buffer = new Array(this.capacity);
      }
      get size() {
        return this.#size;
      }
      push(item) {
        this.#buffer[this.#head] = item;
        this.#head = (this.#head + 1) % this.capacity;
        if (this.#size < this.capacity)
          this.#size++;
      }
      /** Iterate every retained item, oldest first. */
      *[Symbol.iterator]() {
        const start = this.#size < this.capacity ? 0 : this.#head;
        for (let i = 0; i < this.#size; i++) {
          yield this.#buffer[(start + i) % this.capacity];
        }
      }
      /** Iterate the last `n` retained items, oldest first. */
      *takeLast(n) {
        const count = Math.min(Math.max(0, n), this.#size);
        const start = (this.#head - count + this.capacity) % this.capacity;
        for (let i = 0; i < count; i++) {
          yield this.#buffer[(start + i) % this.capacity];
        }
      }
    };
    exports2.LineRingBuffer = LineRingBuffer;
  }
});

// npm/script/deps/jsr.io/@david/shell/0.6.0/src/pipes.js
var require_pipes = __commonJS({
  "npm/script/deps/jsr.io/@david/shell/0.6.0/src/pipes.js"(exports2) {
    "use strict";
    var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) {
      if (k2 === void 0)
        k2 = k;
      var desc = Object.getOwnPropertyDescriptor(m, k);
      if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m[k];
        } };
      }
      Object.defineProperty(o, k2, desc);
    } : function(o, m, k, k2) {
      if (k2 === void 0)
        k2 = k;
      o[k2] = m[k];
    });
    var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) {
      Object.defineProperty(o, "default", { enumerable: true, value: v });
    } : function(o, v) {
      o["default"] = v;
    });
    var __importStar2 = exports2 && exports2.__importStar || /* @__PURE__ */ function() {
      var ownKeys = function(o) {
        ownKeys = Object.getOwnPropertyNames || function(o2) {
          var ar = [];
          for (var k in o2)
            if (Object.prototype.hasOwnProperty.call(o2, k))
              ar[ar.length] = k;
          return ar;
        };
        return ownKeys(o);
      };
      return function(mod) {
        if (mod && mod.__esModule)
          return mod;
        var result = {};
        if (mod != null) {
          for (var k = ownKeys(mod), i = 0; i < k.length; i++)
            if (k[i] !== "default")
              __createBinding2(result, mod, k[i]);
        }
        __setModuleDefault2(result, mod);
        return result;
      };
    }();
    var __addDisposableResource = exports2 && exports2.__addDisposableResource || function(env, value, async) {
      if (value !== null && value !== void 0) {
        if (typeof value !== "object" && typeof value !== "function")
          throw new TypeError("Object expected.");
        var dispose, inner;
        if (async) {
          if (!Symbol.asyncDispose)
            throw new TypeError("Symbol.asyncDispose is not defined.");
          dispose = value[Symbol.asyncDispose];
        }
        if (dispose === void 0) {
          if (!Symbol.dispose)
            throw new TypeError("Symbol.dispose is not defined.");
          dispose = value[Symbol.dispose];
          if (async)
            inner = dispose;
        }
        if (typeof dispose !== "function")
          throw new TypeError("Object not disposable.");
        if (inner)
          dispose = function() {
            try {
              inner.call(this);
            } catch (e) {
              return Promise.reject(e);
            }
          };
        env.stack.push({ value, dispose, async });
      } else if (async) {
        env.stack.push({ async: true });
      }
      return value;
    };
    var __disposeResources = exports2 && exports2.__disposeResources || /* @__PURE__ */ function(SuppressedError2) {
      return function(env) {
        function fail(e) {
          env.error = env.hasError ? new SuppressedError2(e, env.error, "An error was suppressed during disposal.") : e;
          env.hasError = true;
        }
        var r, s = 0;
        function next() {
          while (r = env.stack.pop()) {
            try {
              if (!r.async && s === 1)
                return s = 0, env.stack.push(r), Promise.resolve().then(next);
              if (r.dispose) {
                var result = r.dispose.call(r.value);
                if (r.async)
                  return s |= 2, Promise.resolve(result).then(next, function(e) {
                    fail(e);
                    return next();
                  });
              } else
                s |= 1;
            } catch (e) {
              fail(e);
            }
          }
          if (s === 1)
            return env.hasError ? Promise.reject(env.error) : Promise.resolve();
          if (env.hasError)
            throw env.error;
        }
        return next();
      };
    }(typeof SuppressedError === "function" ? SuppressedError : function(error, suppressed, message) {
      var e = new Error(message);
      return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
    });
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.PipeSequencePipe = exports2.PipedBuffer = exports2.InheritTailWriter = exports2.DEFAULT_ERROR_TAIL_BYTES = exports2.DEFAULT_INHERIT_TAIL_ERROR_LINES = exports2.DEFAULT_INHERIT_TAIL_LINES = exports2.InheritStaticTextBypassWriter = exports2.ErrorTailCaptureWriterSync = exports2.ErrorTailCaptureWriter = exports2.CapturingBufferWriterSync = exports2.CapturingBufferWriter = exports2.ShellPipeWriter = exports2.NullPipeWriter = exports2.NullPipeReader = exports2.TailRenderer = void 0;
    exports2.formatTailHeader = formatTailHeader;
    exports2.formatRanHeader = formatRanHeader;
    exports2.pipeReaderToWritable = pipeReaderToWritable;
    exports2.pipeReadableToWriterSync = pipeReadableToWriterSync;
    var dntShim = __importStar2(require_dnt_shims());
    var mod_js_12 = require_mod3();
    var colors2 = __importStar2(require_colors());
    var buffer_js_1 = require_buffer();
    var write_all_js_1 = require_write_all();
    var common_js_12 = require_common();
    var lineRingBuffer_js_1 = require_lineRingBuffer();
    var TAIL_INDENT = "  ";
    function indentTailLine(line) {
      return { text: TAIL_INDENT + line, hangingIndent: TAIL_INDENT.length };
    }
    var TailRenderer = class {
      container;
      #scope;
      #intervalScope;
      #segments = [];
      // single deferred installed on the scope while at least one segment is
      // active. `setText` is called only on the empty↔non-empty transition, so
      // appendLines/setHeader become pure field writes — items get rebuilt at
      // draw time (≈16 Hz via renderInterval) instead of per write.
      #deferredItems;
      constructor(options = {}) {
        this.container = options.container ?? mod_js_12.staticText;
        this.#scope = this.container.createScope();
        const interval = options.interval === null ? void 0 : options.interval ?? mod_js_12.renderInterval;
        this.#intervalScope = interval?.start();
        this.#deferredItems = [(size) => this.#buildItems(size)];
      }
      [Symbol.dispose]() {
        this.#intervalScope?.[Symbol.dispose]();
        this.#scope[Symbol.dispose]();
      }
      /** @internal */
      register(seg) {
        const wasEmpty = this.#segments.length === 0;
        this.#segments.push(seg);
        if (wasEmpty)
          this.#scope.setText(this.#deferredItems);
      }
      /** @internal */
      unregister(seg) {
        const idx = this.#segments.indexOf(seg);
        if (idx !== -1)
          this.#segments.splice(idx, 1);
        if (this.#segments.length === 0)
          this.#scope.setText([]);
      }
      /** @internal */
      logAbove(items) {
        this.#scope.logAbove(items);
      }
      #buildItems(size) {
        const items = [];
        const ctx = { size };
        for (const seg of this.#segments) {
          if (seg.headerFn != null) {
            const text = seg.headerFn(ctx);
            items.push(seg.headerVerbatim ? truncateHeaderToWidth(text, size) : formatTailHeader(text, size));
          }
          for (const line of seg.lines.takeLast(seg.visibleLineCount(ctx)))
            items.push(indentTailLine(line));
        }
        return items;
      }
    };
    exports2.TailRenderer = TailRenderer;
    var defaultTailRenderer = new TailRenderer();
    var encoder = new TextEncoder();
    var NullPipeReader = class {
      read(_p) {
        return Promise.resolve(null);
      }
    };
    exports2.NullPipeReader = NullPipeReader;
    var NullPipeWriter = class {
      writeSync(p) {
        return p.length;
      }
    };
    exports2.NullPipeWriter = NullPipeWriter;
    var ShellPipeWriter = class {
      #kind;
      #inner;
      constructor(kind, inner) {
        this.#kind = kind;
        this.#inner = inner;
      }
      get kind() {
        return this.#kind;
      }
      get inner() {
        return this.#inner;
      }
      write(p) {
        if ("write" in this.#inner) {
          return this.#inner.write(p);
        } else {
          return this.#inner.writeSync(p);
        }
      }
      writeAll(data) {
        if ("write" in this.#inner) {
          return (0, write_all_js_1.writeAll)(this.#inner, data);
        } else {
          return (0, write_all_js_1.writeAllSync)(this.#inner, data);
        }
      }
      writeText(text) {
        return this.writeAll(encoder.encode(text));
      }
      writeLine(text) {
        return this.writeText(text + "\n");
      }
    };
    exports2.ShellPipeWriter = ShellPipeWriter;
    var CapturingBufferWriter = class {
      #buffer;
      #innerWriter;
      constructor(innerWriter, buffer) {
        this.#innerWriter = innerWriter;
        this.#buffer = buffer;
      }
      getBuffer() {
        return this.#buffer;
      }
      async write(p) {
        const nWritten = await this.#innerWriter.write(p);
        this.#buffer.writeSync(p.slice(0, nWritten));
        return nWritten;
      }
    };
    exports2.CapturingBufferWriter = CapturingBufferWriter;
    var CapturingBufferWriterSync = class {
      #buffer;
      #innerWriter;
      constructor(innerWriter, buffer) {
        this.#innerWriter = innerWriter;
        this.#buffer = buffer;
      }
      getBuffer() {
        return this.#buffer;
      }
      writeSync(p) {
        const nWritten = this.#innerWriter.writeSync(p);
        this.#buffer.writeSync(p.slice(0, nWritten));
        return nWritten;
      }
    };
    exports2.CapturingBufferWriterSync = CapturingBufferWriterSync;
    var ErrorTailCaptureWriter = class {
      ring;
      #innerWriter;
      constructor(innerWriter, ring) {
        this.#innerWriter = innerWriter;
        this.ring = ring;
      }
      async write(p) {
        const nWritten = await this.#innerWriter.write(p);
        this.ring.push(p.subarray(0, nWritten));
        return nWritten;
      }
    };
    exports2.ErrorTailCaptureWriter = ErrorTailCaptureWriter;
    var ErrorTailCaptureWriterSync = class {
      ring;
      #innerWriter;
      constructor(innerWriter, ring) {
        this.#innerWriter = innerWriter;
        this.ring = ring;
      }
      writeSync(p) {
        const nWritten = this.#innerWriter.writeSync(p);
        this.ring.push(p.subarray(0, nWritten));
        return nWritten;
      }
    };
    exports2.ErrorTailCaptureWriterSync = ErrorTailCaptureWriterSync;
    var lineFeedCharCode = "\n".charCodeAt(0);
    var InheritStaticTextBypassWriter = class {
      #buffer;
      #innerWriter;
      constructor(innerWriter) {
        this.#innerWriter = innerWriter;
        this.#buffer = new buffer_js_1.Buffer();
      }
      writeSync(p) {
        const index = p.findLastIndex((v) => v === lineFeedCharCode);
        if (index === -1) {
          this.#buffer.writeSync(p);
        } else {
          this.#buffer.writeSync(p.slice(0, index + 1));
          this.flush();
          this.#buffer.writeSync(p.slice(index + 1));
        }
        return p.byteLength;
      }
      flush() {
        const bytes = this.#buffer.bytes({ copy: false });
        mod_js_12.staticText.withTempClear(() => {
          (0, write_all_js_1.writeAllSync)(this.#innerWriter, bytes);
        });
        this.#buffer.reset();
      }
    };
    exports2.InheritStaticTextBypassWriter = InheritStaticTextBypassWriter;
    exports2.DEFAULT_INHERIT_TAIL_LINES = 5;
    exports2.DEFAULT_INHERIT_TAIL_ERROR_LINES = 80;
    exports2.DEFAULT_ERROR_TAIL_BYTES = 8 * 1024;
    function makeMaxLinesResolver(value) {
      if (typeof value === "function")
        return value;
      if (typeof value === "number") {
        if (!Number.isFinite(value)) {
          throw new TypeError(`Invalid tailDisplay maxLines: ${value}`);
        }
        const n = Math.max(1, Math.floor(value));
        return () => n;
      }
      const match = /^(\d+(?:\.\d+)?)%$/.exec(value);
      if (!match)
        throw new TypeError(`Invalid tailDisplay maxLines: ${JSON.stringify(value)}`);
      const fraction = parseFloat(match[1]) / 100;
      return ({ size }) => {
        if (size?.rows == null)
          return exports2.DEFAULT_INHERIT_TAIL_LINES;
        return Math.max(1, Math.floor(size.rows * fraction));
      };
    }
    function normalizeHeaderText(text) {
      if (text == null)
        return void 0;
      const trimmed = text.replace(/\s+/g, " ").trim();
      return trimmed.length > 0 ? trimmed : void 0;
    }
    function truncateHeaderToWidth(text, size) {
      const cols = size?.columns ?? 80;
      const visible = (0, mod_js_12.stripAnsiCodes)(text);
      if (visible.length <= cols)
        return text;
      return visible.slice(0, Math.max(1, cols - 1)) + "\u2026";
    }
    var InheritTailState = class {
      resolveMaxLines;
      lines;
      enabled;
      /** Per-draw callback that produces the header text. `undefined` means
       * "no header" (live tail renders no label). Percentages, raw strings and
       * user callbacks are all normalized into this single shape upstream. */
      headerFn;
      /** When true, the header is rendered verbatim instead of being framed
       * with the built-in `Running <text>` / `Ran <text>` styling. Set when
       * the user supplies a custom header string or function. */
      headerVerbatim = false;
      /** Always-present fallback shown on the error path, even if the live
       * header is hidden or customized — so error scrollback is unambiguous
       * about which command failed. */
      errorHeader;
      promoteHeaderOnSuccess = false;
      #refCount = 0;
      #disposed = false;
      #errored = false;
      #trailingLines = [];
      #registered = false;
      #totalLinesSeen = 0;
      renderer;
      constructor(renderer, maxLines, isTty, maxErrorLines = exports2.DEFAULT_INHERIT_TAIL_ERROR_LINES) {
        this.renderer = renderer;
        this.resolveMaxLines = makeMaxLinesResolver(maxLines);
        const initial = this.resolveMaxLines({ size: renderer.container.getConsoleSize() });
        this.lines = new lineRingBuffer_js_1.LineRingBuffer(Math.max(initial, maxErrorLines));
        this.enabled = isTty;
      }
      get omittedLineCount() {
        return Math.max(0, this.#totalLinesSeen - this.lines.size);
      }
      /** Visible output rows after subtracting the header (if any) from the
       * total `maxLines` budget. Floors to 1 so a headered segment always shows
       * at least one line. */
      visibleLineCount(ctx) {
        const total = this.resolveMaxLines(ctx);
        return Math.max(1, this.headerFn != null ? total - 1 : total);
      }
      addRef() {
        this.#refCount++;
        if (this.enabled && !this.#registered && !this.#disposed) {
          this.renderer.register(this);
          this.#registered = true;
        }
      }
      setHeader(header, options) {
        if (header == null) {
          this.headerFn = void 0;
        } else if (typeof header === "string") {
          const trimmed = normalizeHeaderText(header);
          this.headerFn = trimmed != null ? () => trimmed : void 0;
        } else {
          this.headerFn = header;
        }
        this.headerVerbatim = options?.verbatim ?? false;
      }
      appendLines(newLines) {
        if (this.#disposed)
          return;
        this.#totalLinesSeen += newLines.length;
        for (const line of newLines)
          this.lines.push(line);
      }
      release(errored, trailing) {
        if (this.#disposed)
          return;
        if (errored)
          this.#errored = true;
        if (trailing.length > 0)
          this.#trailingLines.push(...trailing);
        this.#refCount--;
        if (this.#refCount > 0)
          return;
        this.#disposed = true;
        if (!this.enabled)
          return;
        this.renderer.unregister(this);
        this.#flushAbove();
      }
      #flushAbove() {
        const preserved = [];
        if (this.#errored) {
          if (this.errorHeader != null) {
            preserved.push(`${colors2.white(">")} ${colors2.blue(this.errorHeader)}`);
          } else if (this.headerFn != null) {
            const headerFn = this.headerFn;
            preserved.push((size) => `${colors2.white(">")} ${colors2.blue(headerFn({ size }))}`);
          }
          const omitted = this.omittedLineCount;
          if (omitted > 0) {
            const noun = omitted === 1 ? "line" : "lines";
            preserved.push(indentTailLine(colors2.dim(`...${omitted} ${noun} omitted...`)));
          }
          for (const line of this.lines)
            preserved.push(indentTailLine(line));
          for (const line of this.#trailingLines)
            preserved.push(indentTailLine(line));
        } else if (this.promoteHeaderOnSuccess && this.headerFn != null) {
          const headerFn = this.headerFn;
          const verbatim = this.headerVerbatim;
          preserved.push((size) => {
            const text = headerFn({ size });
            return verbatim ? truncateHeaderToWidth(text, size) : formatRanHeader(text, size);
          });
        }
        if (preserved.length > 0)
          this.renderer.logAbove(preserved);
      }
    };
    var InheritTailWriter = class _InheritTailWriter {
      #innerWriter;
      #state;
      #decoder = new dntShim.TextDecoder();
      #pending = "";
      #finalized = false;
      constructor(innerWriter, optionsOrSibling = {}) {
        this.#innerWriter = innerWriter;
        if (optionsOrSibling instanceof _InheritTailWriter) {
          this.#state = optionsOrSibling.#state;
        } else {
          const opts = optionsOrSibling;
          const renderer = opts.renderer ?? defaultTailRenderer;
          const maxLines = opts.maxLines ?? exports2.DEFAULT_INHERIT_TAIL_LINES;
          const isTty = opts.isTty ?? isStderrTty();
          const state = new InheritTailState(renderer, maxLines, isTty);
          if (opts.header !== void 0) {
            state.setHeader(opts.header, { verbatim: opts.headerVerbatim });
          }
          if (opts.errorHeader !== void 0) {
            state.errorHeader = normalizeHeaderText(opts.errorHeader);
          }
          if (opts.promoteHeaderOnSuccess !== void 0) {
            state.promoteHeaderOnSuccess = opts.promoteHeaderOnSuccess;
          }
          this.#state = state;
        }
        this.#state.addRef();
      }
      /** Snapshot of the live tail (last visible-window retained lines, oldest
       * first). The visible-window size is `maxLines - 1` when a header is shown
       * (recomputed from the current console size for percentage / callback
       * `maxLines`). */
      get tailLines() {
        const size = this.#state.renderer.container.getConsoleSize();
        return Array.from(this.#state.lines.takeLast(this.#state.visibleLineCount({ size })));
      }
      /** Number of completed lines that were dropped from the retained ring
       * buffer because its capacity is bounded. Rendered as
       * `...N lines omitted...` above the retained tail when the command fails. */
      get omittedLineCount() {
        return this.#state.omittedLineCount;
      }
      /**
       * Sets a label rendered above the tail lines that identifies what this
       * scrolling region is showing. Accepts a literal string (collapsed to
       * a single line) or a per-draw callback that receives the current
       * `{ size }`. `undefined` removes the header. Long text is truncated to
       * the terminal width.
       *
       * When `options.verbatim` is true, the text is rendered as-is (no
       * built-in `Running` / `Ran` framing). Used by `.tailDisplay({ header })`
       * so the caller has full control over styling.
       */
      setHeader(header, options) {
        this.#state.setHeader(header, options);
      }
      /**
       * Sets the command label preserved on the error scrollback path even
       * when the live header is hidden or customized — so `> <command>` is
       * always shown when a tailed command fails, regardless of `.tailDisplay`
       * header config.
       */
      setErrorHeader(text) {
        this.#state.errorHeader = normalizeHeaderText(text);
      }
      /**
       * Controls whether the `Ran <command>` header is promoted to scrollback
       * on successful finalize. Defaults to `false` — on success the live tail
       * clears silently unless the caller opts in (command.ts enables it when
       * `.printCommand()` was set, so the command stays visible in scrollback).
       * The error-path header (`> <command>` + retained tail) is always emitted
       * regardless of this flag since it's diagnostic.
       */
      setPromoteHeaderOnSuccess(value) {
        this.#state.promoteHeaderOnSuccess = value;
      }
      writeSync(p) {
        if (this.#finalized) {
          return p.length;
        }
        if (!this.#state.enabled) {
          return this.#innerWriter.writeSync(p);
        }
        this.#pending += this.#decoder.decode(p, { stream: true });
        const lastNewline = this.#pending.lastIndexOf("\n");
        if (lastNewline !== -1) {
          const complete = this.#pending.slice(0, lastNewline);
          this.#pending = this.#pending.slice(lastNewline + 1);
          this.#state.appendLines(complete.split("\n").map(stripTrailingCR));
        }
        return p.length;
      }
      /**
       * Clears the scrolling region. Called on successful command completion.
       *
       * If a header was set it's promoted to scrollback via `logAbove` before
       * the scope is disposed, so "which commands ran" remains visible after
       * the transient tail clears. When multiple writers share a scope the
       * scope is only disposed once all of them have finalized.
       *
       * Any partial pending line is still passed to `release` so that — if a
       * sibling writer subsequently errors — the success side's last partial
       * line is preserved in the error scrollback. The success path itself
       * never renders trailing lines, so there's no visual cost when no
       * sibling errors.
       */
      finalize() {
        if (this.#finalized)
          return;
        this.#finalized = true;
        const trailing = [];
        if (this.#pending.length > 0) {
          trailing.push(stripTrailingCR(this.#pending));
          this.#pending = "";
        }
        this.#state.release(false, trailing);
      }
      [Symbol.dispose]() {
        this.finalize();
      }
      /**
       * Promotes the header + retained tail above the static region before
       * clearing it. Called when the command errored so the user has visible
       * context. When multiple writers share a scope, any writer finalizing
       * for error causes the shared region to use the error path once all
       * writers have finalized.
       */
      finalizeForError() {
        if (this.#finalized)
          return;
        this.#finalized = true;
        const trailing = [];
        if (this.#pending.length > 0) {
          trailing.push(stripTrailingCR(this.#pending));
          this.#pending = "";
        }
        this.#state.release(true, trailing);
      }
    };
    exports2.InheritTailWriter = InheritTailWriter;
    function stripTrailingCR(line) {
      return line.endsWith("\r") ? line.slice(0, -1) : line;
    }
    function isStderrTty() {
      return Boolean(process.stderr.isTTY);
    }
    function formatTailHeader(text, size) {
      return renderTailHeader(text, size, "Running", colors2.cyan);
    }
    function formatRanHeader(text, size) {
      return renderTailHeader(text, size, "Ran", colors2.green);
    }
    function renderTailHeader(text, size, status, statusColor) {
      const maxColumns = size?.columns ?? 80;
      const overhead = status.length + 1;
      const budget = Math.max(10, maxColumns - overhead);
      const display = text.length > budget ? text.slice(0, budget - 1) + "\u2026" : text;
      return `${colors2.bold(statusColor(status))} ${display}`;
    }
    var PipedBuffer = class {
      #inner;
      #hasSet = false;
      constructor() {
        this.#inner = new buffer_js_1.Buffer();
      }
      getBuffer() {
        if (this.#inner instanceof buffer_js_1.Buffer) {
          return this.#inner;
        } else {
          return void 0;
        }
      }
      setError(err) {
        if ("setError" in this.#inner) {
          this.#inner.setError(err);
        }
      }
      close() {
        if ("close" in this.#inner) {
          this.#inner.close();
        }
      }
      writeSync(p) {
        return this.#inner.writeSync(p);
      }
      setListener(listener) {
        if (this.#hasSet) {
          throw new Error("Piping to multiple outputs is currently not supported.");
        }
        if (this.#inner instanceof buffer_js_1.Buffer) {
          (0, write_all_js_1.writeAllSync)(listener, this.#inner.bytes({ copy: false }));
        }
        this.#inner = listener;
        this.#hasSet = true;
      }
    };
    exports2.PipedBuffer = PipedBuffer;
    var PipeSequencePipe = class {
      #inner = new buffer_js_1.Buffer();
      #readListener;
      #closed = false;
      close() {
        this.#readListener?.();
        this.#closed = true;
      }
      writeSync(p) {
        const value = this.#inner.writeSync(p);
        if (this.#readListener !== void 0) {
          const listener = this.#readListener;
          this.#readListener = void 0;
          listener();
        }
        return value;
      }
      read(p) {
        if (this.#readListener !== void 0) {
          throw new Error("Misuse of PipeSequencePipe");
        }
        if (this.#inner.length === 0) {
          if (this.#closed) {
            return Promise.resolve(null);
          } else {
            return new Promise((resolve) => {
              this.#readListener = () => {
                resolve(this.#inner.readSync(p));
              };
            });
          }
        } else {
          return Promise.resolve(this.#inner.readSync(p));
        }
      }
    };
    exports2.PipeSequencePipe = PipeSequencePipe;
    async function pipeReaderToWritable(reader, writable, signal) {
      const env_1 = { stack: [], error: void 0, hasError: false };
      try {
        const abortedPromise = __addDisposableResource(env_1, (0, common_js_12.abortSignalToPromise)(signal), false);
        const writer = writable.getWriter();
        try {
          while (!signal.aborted) {
            const buffer = new Uint8Array(1024);
            const length = await Promise.race([abortedPromise.promise, reader.read(buffer)]);
            if (length === 0 || length == null) {
              break;
            }
            await writer.write(buffer.subarray(0, length));
          }
        } finally {
          await writer.close();
        }
      } catch (e_1) {
        env_1.error = e_1;
        env_1.hasError = true;
      } finally {
        __disposeResources(env_1);
      }
    }
    async function pipeReadableToWriterSync(readable, writer, signal) {
      const reader = readable.getReader();
      while (!signal.aborted) {
        const result = await reader.read();
        if (result.done) {
          break;
        }
        const maybePromise = writer.writeAll(result.value);
        if (maybePromise) {
          await maybePromise;
        }
      }
    }
  }
});

// npm/script/deps/jsr.io/@david/shell/0.6.0/src/spawn.js
var require_spawn = __commonJS({
  "npm/script/deps/jsr.io/@david/shell/0.6.0/src/spawn.js"(exports2) {
    "use strict";
    var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) {
      if (k2 === void 0)
        k2 = k;
      var desc = Object.getOwnPropertyDescriptor(m, k);
      if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m[k];
        } };
      }
      Object.defineProperty(o, k2, desc);
    } : function(o, m, k, k2) {
      if (k2 === void 0)
        k2 = k;
      o[k2] = m[k];
    });
    var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) {
      Object.defineProperty(o, "default", { enumerable: true, value: v });
    } : function(o, v) {
      o["default"] = v;
    });
    var __importStar2 = exports2 && exports2.__importStar || /* @__PURE__ */ function() {
      var ownKeys = function(o) {
        ownKeys = Object.getOwnPropertyNames || function(o2) {
          var ar = [];
          for (var k in o2)
            if (Object.prototype.hasOwnProperty.call(o2, k))
              ar[ar.length] = k;
          return ar;
        };
        return ownKeys(o);
      };
      return function(mod) {
        if (mod && mod.__esModule)
          return mod;
        var result = {};
        if (mod != null) {
          for (var k = ownKeys(mod), i = 0; i < k.length; i++)
            if (k[i] !== "default")
              __createBinding2(result, mod, k[i]);
        }
        __setModuleDefault2(result, mod);
        return result;
      };
    }();
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.spawnCommand = spawnCommand;
    var cp = __importStar2(require("node:child_process"));
    var node_stream_1 = require("node:stream");
    var command_js_1 = require_command();
    var common_js_12 = require_common();
    function spawnCommand(path, options) {
      let receivedSignal;
      const isWindowsBatch = common_js_12.isWindows && /\.(cmd|bat)$/i.test(path);
      const child = cp.spawn(isWindowsBatch ? "cmd.exe" : path, isWindowsBatch ? getWindowsBatchArgs(path, options.args) : options.args, {
        cwd: options.cwd,
        env: options.env,
        // cmd.exe parses its command line differently than the
        // `CommandLineToArgvW` convention that Node's default escaping assumes, so
        // escape the arguments ourselves (see `getWindowsBatchArgs`) and tell Node
        // to pass them through verbatim. Without this, a `.cmd`/`.bat` path or
        // argument containing a space is split by cmd.exe.
        windowsVerbatimArguments: isWindowsBatch,
        stdio: [
          toNodeStdio(options.stdin),
          toNodeStdio(options.stdout),
          toNodeStdio(options.stderr)
        ]
      });
      const exitResolvers = Promise.withResolvers();
      child.on("exit", (code) => {
        if (code == null && receivedSignal != null) {
          exitResolvers.resolve((0, command_js_1.getSignalAbortCode)(receivedSignal) ?? 1);
        } else {
          exitResolvers.resolve(code ?? 0);
        }
      });
      child.on("error", (err) => {
        exitResolvers.reject(err);
      });
      return {
        stdin() {
          return node_stream_1.Writable.toWeb(child.stdin);
        },
        kill(signo) {
          receivedSignal = signo;
          child.kill(signo);
        },
        waitExitCode() {
          return exitResolvers.promise;
        },
        stdout() {
          return node_stream_1.Readable.toWeb(child.stdout);
        },
        stderr() {
          return node_stream_1.Readable.toWeb(child.stderr);
        }
      };
    }
    function getWindowsBatchArgs(path, args) {
      const doubleEscapeMetaChars = /node_modules[\\/]\.bin[\\/][^\\/]+\.cmd$/i.test(path);
      const command = [
        escapeCmdCommand(path),
        ...args.map((arg) => escapeCmdArgument(arg, doubleEscapeMetaChars))
      ].join(" ");
      return ["/d", "/s", "/c", `"${command}"`];
    }
    var cmdMetaCharsRegex = /([()\][%!^"`<>&|;, *?])/g;
    function escapeCmdCommand(arg) {
      return arg.replace(cmdMetaCharsRegex, "^$1");
    }
    function escapeCmdArgument(arg, doubleEscapeMetaChars) {
      arg = arg.replace(/(?=(\\+?)?)\1"/g, '$1$1\\"');
      arg = arg.replace(/(?=(\\+?)?)\1$/, "$1$1");
      arg = `"${arg}"`;
      arg = arg.replace(cmdMetaCharsRegex, "^$1");
      if (doubleEscapeMetaChars) {
        arg = arg.replace(cmdMetaCharsRegex, "^$1");
      }
      return arg;
    }
    function toNodeStdio(stdio) {
      switch (stdio) {
        case "inherit":
          return "inherit";
        case "null":
          return "ignore";
        case "piped":
          return "pipe";
      }
    }
  }
});

// npm/script/deps/jsr.io/@david/shell/0.6.0/src/commands/executable.js
var require_executable = __commonJS({
  "npm/script/deps/jsr.io/@david/shell/0.6.0/src/commands/executable.js"(exports2) {
    "use strict";
    var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) {
      if (k2 === void 0)
        k2 = k;
      var desc = Object.getOwnPropertyDescriptor(m, k);
      if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m[k];
        } };
      }
      Object.defineProperty(o, k2, desc);
    } : function(o, m, k, k2) {
      if (k2 === void 0)
        k2 = k;
      o[k2] = m[k];
    });
    var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) {
      Object.defineProperty(o, "default", { enumerable: true, value: v });
    } : function(o, v) {
      o["default"] = v;
    });
    var __importStar2 = exports2 && exports2.__importStar || /* @__PURE__ */ function() {
      var ownKeys = function(o) {
        ownKeys = Object.getOwnPropertyNames || function(o2) {
          var ar = [];
          for (var k in o2)
            if (Object.prototype.hasOwnProperty.call(o2, k))
              ar[ar.length] = k;
          return ar;
        };
        return ownKeys(o);
      };
      return function(mod) {
        if (mod && mod.__esModule)
          return mod;
        var result = {};
        if (mod != null) {
          for (var k = ownKeys(mod), i = 0; i < k.length; i++)
            if (k[i] !== "default")
              __createBinding2(result, mod, k[i]);
        }
        __setModuleDefault2(result, mod);
        return result;
      };
    }();
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.createExecutableCommand = createExecutableCommand;
    var fs = __importStar2(require("node:fs"));
    var common_js_12 = require_common();
    var pipes_js_1 = require_pipes();
    var spawn_js_1 = require_spawn();
    var neverAbortedSignal = new AbortController().signal;
    function createExecutableCommand(resolvedPath, options) {
      const prependArgs = options?.args;
      return async function executeCommandAtPath(context) {
        const pipeStringVals = {
          stdin: getStdioStringValue(context.stdin),
          stdout: getStdioStringValue(context.stdout.kind),
          stderr: getStdioStringValue(context.stderr.kind)
        };
        let p;
        const cwd = context.cwd;
        const args = prependArgs != null && prependArgs.length > 0 ? [...prependArgs, ...context.args] : context.args;
        try {
          p = (0, spawn_js_1.spawnCommand)(resolvedPath, {
            args,
            cwd,
            env: context.env,
            ...pipeStringVals
          });
        } catch (err) {
          throw checkMapCwdNotExistsError(cwd, err);
        }
        const listener = (signal) => p.kill(signal);
        context.signal.addListener(listener);
        const completeController = new AbortController();
        const completeSignal = completeController.signal;
        let stdinError;
        const stdinPromise = writeStdin(context.stdin, p, completeSignal).catch(async (err) => {
          if (completeSignal.aborted) {
            return;
          }
          const maybePromise = context.stderr.writeLine(`stdin pipe broken. ${(0, common_js_12.errorToString)(err)}`);
          if (maybePromise != null) {
            await maybePromise;
          }
          stdinError = err;
          try {
            p.kill("SIGKILL");
          } catch (err2) {
            const code = err2?.code;
            if (code !== "EACCES" && code !== "EPERM" && code !== "ENOENT") {
              throw err2;
            }
          }
        });
        try {
          const readStdoutTask = pipeStringVals.stdout === "piped" ? readStdOutOrErr(p.stdout(), context.stdout) : Promise.resolve();
          const readStderrTask = pipeStringVals.stderr === "piped" ? readStdOutOrErr(p.stderr(), context.stderr) : Promise.resolve();
          const [exitCode] = await Promise.all([
            p.waitExitCode().catch((err) => Promise.reject(checkMapCwdNotExistsError(cwd, err))),
            readStdoutTask,
            readStderrTask
          ]);
          if (stdinError != null) {
            return {
              code: 1,
              kind: "exit"
            };
          } else {
            return { code: exitCode };
          }
        } finally {
          completeController.abort();
          context.signal.removeListener(listener);
          await stdinPromise;
        }
      };
    }
    async function writeStdin(stdin, p, signal) {
      if (typeof stdin === "string") {
        return;
      }
      const processStdin = p.stdin();
      await (0, pipes_js_1.pipeReaderToWritable)(stdin, processStdin, signal);
      try {
        await processStdin.close();
      } catch {
      }
    }
    async function readStdOutOrErr(readable, writer) {
      if (typeof writer === "string") {
        return;
      }
      await (0, pipes_js_1.pipeReadableToWriterSync)(readable, writer, neverAbortedSignal);
    }
    function getStdioStringValue(value) {
      if (value === "inheritPiped") {
        return "piped";
      } else if (value === "inherit" || value === "null" || value === "piped") {
        return value;
      } else {
        return "piped";
      }
    }
    function checkMapCwdNotExistsError(cwd, err) {
      if (err.code === "ENOENT" && !fs.existsSync(cwd)) {
        throw new Error(`Failed to launch command because the cwd does not exist (${cwd}).`, {
          cause: err
        });
      } else {
        throw err;
      }
    }
  }
});

// npm/script/deps/jsr.io/@std/internal/1.0.14/_os.js
var require_os = __commonJS({
  "npm/script/deps/jsr.io/@std/internal/1.0.14/_os.js"(exports2) {
    "use strict";
    var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) {
      if (k2 === void 0)
        k2 = k;
      var desc = Object.getOwnPropertyDescriptor(m, k);
      if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m[k];
        } };
      }
      Object.defineProperty(o, k2, desc);
    } : function(o, m, k, k2) {
      if (k2 === void 0)
        k2 = k;
      o[k2] = m[k];
    });
    var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) {
      Object.defineProperty(o, "default", { enumerable: true, value: v });
    } : function(o, v) {
      o["default"] = v;
    });
    var __importStar2 = exports2 && exports2.__importStar || /* @__PURE__ */ function() {
      var ownKeys = function(o) {
        ownKeys = Object.getOwnPropertyNames || function(o2) {
          var ar = [];
          for (var k in o2)
            if (Object.prototype.hasOwnProperty.call(o2, k))
              ar[ar.length] = k;
          return ar;
        };
        return ownKeys(o);
      };
      return function(mod) {
        if (mod && mod.__esModule)
          return mod;
        var result = {};
        if (mod != null) {
          for (var k = ownKeys(mod), i = 0; i < k.length; i++)
            if (k[i] !== "default")
              __createBinding2(result, mod, k[i]);
        }
        __setModuleDefault2(result, mod);
        return result;
      };
    }();
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.checkWindows = checkWindows;
    var dntShim = __importStar2(require_dnt_shims());
    function checkWindows() {
      const global = dntShim.dntGlobalThis;
      const platform = global.process?.platform;
      if (typeof platform === "string")
        return platform.startsWith("win");
      const os = global.Deno?.build?.os;
      if (typeof os === "string")
        return os === "windows";
      return global.navigator?.platform?.startsWith("Win") ?? false;
    }
  }
});

// npm/script/deps/jsr.io/@std/internal/1.0.14/os.js
var require_os2 = __commonJS({
  "npm/script/deps/jsr.io/@std/internal/1.0.14/os.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.isWindows = void 0;
    var _os_js_1 = require_os();
    exports2.isWindows = (0, _os_js_1.checkWindows)();
  }
});

// npm/script/deps/jsr.io/@std/path/1.1.6/_common/glob_to_reg_exp.js
var require_glob_to_reg_exp = __commonJS({
  "npm/script/deps/jsr.io/@std/path/1.1.6/_common/glob_to_reg_exp.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2._globToRegExp = _globToRegExp;
    var REG_EXP_ESCAPE_CHARS = [
      "!",
      "$",
      "(",
      ")",
      "*",
      "+",
      ".",
      "=",
      "?",
      "[",
      "\\",
      "^",
      "{",
      "|"
    ];
    var RANGE_ESCAPE_CHARS = ["-", "\\", "]"];
    function _globToRegExp(c, glob, {
      extended = true,
      globstar: globstarOption = true,
      // os = osType,
      caseInsensitive = false
    } = {}) {
      if (glob === "") {
        return /(?!)/;
      }
      let newLength = glob.length;
      for (; newLength > 1 && c.seps.includes(glob[newLength - 1]); newLength--)
        ;
      glob = glob.slice(0, newLength);
      let regExpString = "";
      for (let j = 0; j < glob.length; ) {
        let segment = "";
        const groupStack = [];
        let inRange = false;
        let inEscape = false;
        let endsWithSep = false;
        let i = j;
        for (; i < glob.length && !(c.seps.includes(glob[i]) && groupStack.length === 0); i++) {
          if (inEscape) {
            inEscape = false;
            const escapeChars = inRange ? RANGE_ESCAPE_CHARS : REG_EXP_ESCAPE_CHARS;
            segment += escapeChars.includes(glob[i]) ? `\\${glob[i]}` : glob[i];
            continue;
          }
          if (glob[i] === c.escapePrefix) {
            inEscape = true;
            continue;
          }
          if (glob[i] === "[") {
            if (!inRange) {
              inRange = true;
              segment += "[";
              if (glob[i + 1] === "!") {
                i++;
                segment += "^";
              } else if (glob[i + 1] === "^") {
                i++;
                segment += "\\^";
              }
              continue;
            } else if (glob[i + 1] === ":") {
              let k = i + 1;
              let value = "";
              while (glob[k + 1] !== void 0 && glob[k + 1] !== ":") {
                value += glob[k + 1];
                k++;
              }
              if (glob[k + 1] === ":" && glob[k + 2] === "]") {
                i = k + 2;
                if (value === "alnum")
                  segment += "\\dA-Za-z";
                else if (value === "alpha")
                  segment += "A-Za-z";
                else if (value === "ascii")
                  segment += "\0-\x7F";
                else if (value === "blank")
                  segment += "	 ";
                else if (value === "cntrl")
                  segment += "\0-\x7F";
                else if (value === "digit")
                  segment += "\\d";
                else if (value === "graph")
                  segment += "!-~";
                else if (value === "lower")
                  segment += "a-z";
                else if (value === "print")
                  segment += " -~";
                else if (value === "punct") {
                  segment += `!"#$%&'()*+,\\-./:;<=>?@[\\\\\\]^_\u2018{|}~`;
                } else if (value === "space")
                  segment += "\\s\v";
                else if (value === "upper")
                  segment += "A-Z";
                else if (value === "word")
                  segment += "\\w";
                else if (value === "xdigit")
                  segment += "\\dA-Fa-f";
                continue;
              }
            }
          }
          if (glob[i] === "]" && inRange) {
            inRange = false;
            segment += "]";
            continue;
          }
          if (inRange) {
            segment += glob[i];
            continue;
          }
          if (glob[i] === ")" && groupStack.length > 0 && groupStack[groupStack.length - 1] !== "BRACE") {
            segment += ")";
            const type = groupStack.pop();
            if (type === "!") {
              segment += c.wildcard;
            } else if (type !== "@") {
              segment += type;
            }
            continue;
          }
          if (glob[i] === "|" && groupStack.length > 0 && groupStack[groupStack.length - 1] !== "BRACE") {
            segment += "|";
            continue;
          }
          if (glob[i] === "+" && extended && glob[i + 1] === "(") {
            i++;
            groupStack.push("+");
            segment += "(?:";
            continue;
          }
          if (glob[i] === "@" && extended && glob[i + 1] === "(") {
            i++;
            groupStack.push("@");
            segment += "(?:";
            continue;
          }
          if (glob[i] === "?") {
            if (extended && glob[i + 1] === "(") {
              i++;
              groupStack.push("?");
              segment += "(?:";
            } else {
              segment += ".";
            }
            continue;
          }
          if (glob[i] === "!" && extended && glob[i + 1] === "(") {
            i++;
            groupStack.push("!");
            segment += "(?!";
            continue;
          }
          if (glob[i] === "{") {
            groupStack.push("BRACE");
            segment += "(?:";
            continue;
          }
          if (glob[i] === "}" && groupStack[groupStack.length - 1] === "BRACE") {
            groupStack.pop();
            segment += ")";
            continue;
          }
          if (glob[i] === "," && groupStack[groupStack.length - 1] === "BRACE") {
            segment += "|";
            continue;
          }
          if (glob[i] === "*") {
            if (extended && glob[i + 1] === "(") {
              i++;
              groupStack.push("*");
              segment += "(?:";
            } else {
              const prevChar = glob[i - 1];
              let numStars = 1;
              while (glob[i + 1] === "*") {
                i++;
                numStars++;
              }
              const nextChar = glob[i + 1];
              if (globstarOption && numStars === 2 && [...c.seps, void 0].includes(prevChar) && [...c.seps, void 0].includes(nextChar)) {
                segment += c.globstar;
                endsWithSep = true;
              } else {
                segment += c.wildcard;
              }
            }
            continue;
          }
          segment += REG_EXP_ESCAPE_CHARS.includes(glob[i]) ? `\\${glob[i]}` : glob[i];
        }
        if (groupStack.length > 0 || inRange || inEscape) {
          segment = "";
          for (const c2 of glob.slice(j, i)) {
            segment += REG_EXP_ESCAPE_CHARS.includes(c2) ? `\\${c2}` : c2;
            endsWithSep = false;
          }
        }
        regExpString += segment;
        if (!endsWithSep) {
          regExpString += i < glob.length ? c.sep : c.sepMaybe;
          endsWithSep = true;
        }
        while (c.seps.includes(glob[i]))
          i++;
        j = i;
      }
      regExpString = `^${regExpString}$`;
      return new RegExp(regExpString, caseInsensitive ? "i" : "");
    }
  }
});

// npm/script/deps/jsr.io/@std/path/1.1.6/posix/glob_to_regexp.js
var require_glob_to_regexp = __commonJS({
  "npm/script/deps/jsr.io/@std/path/1.1.6/posix/glob_to_regexp.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.globToRegExp = globToRegExp;
    var glob_to_reg_exp_js_1 = require_glob_to_reg_exp();
    var constants = {
      sep: "/+",
      sepMaybe: "/*",
      seps: ["/"],
      globstar: "(?:[^/]*(?:/|$)+)*",
      wildcard: "[^/]*",
      escapePrefix: "\\"
    };
    function globToRegExp(glob, options = {}) {
      return (0, glob_to_reg_exp_js_1._globToRegExp)(constants, glob, options);
    }
  }
});

// npm/script/deps/jsr.io/@std/path/1.1.6/windows/glob_to_regexp.js
var require_glob_to_regexp2 = __commonJS({
  "npm/script/deps/jsr.io/@std/path/1.1.6/windows/glob_to_regexp.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.globToRegExp = globToRegExp;
    var glob_to_reg_exp_js_1 = require_glob_to_reg_exp();
    var constants = {
      sep: "(?:\\\\|/)+",
      sepMaybe: "(?:\\\\|/)*",
      seps: ["\\", "/"],
      globstar: "(?:[^\\\\/]*(?:\\\\|/|$)+)*",
      wildcard: "[^\\\\/]*",
      escapePrefix: "`"
    };
    function globToRegExp(glob, options = {}) {
      return (0, glob_to_reg_exp_js_1._globToRegExp)(constants, glob, options);
    }
  }
});

// npm/script/deps/jsr.io/@std/path/1.1.6/glob_to_regexp.js
var require_glob_to_regexp3 = __commonJS({
  "npm/script/deps/jsr.io/@std/path/1.1.6/glob_to_regexp.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.globToRegExp = globToRegExp;
    var os_js_1 = require_os2();
    var glob_to_regexp_js_1 = require_glob_to_regexp();
    var glob_to_regexp_js_2 = require_glob_to_regexp2();
    function globToRegExp(glob, options = {}) {
      return os_js_1.isWindows ? (0, glob_to_regexp_js_2.globToRegExp)(glob, options) : (0, glob_to_regexp_js_1.globToRegExp)(glob, options);
    }
  }
});

// npm/script/deps/jsr.io/@david/shell/0.6.0/src/glob.js
var require_glob = __commonJS({
  "npm/script/deps/jsr.io/@david/shell/0.6.0/src/glob.js"(exports2) {
    "use strict";
    var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) {
      if (k2 === void 0)
        k2 = k;
      var desc = Object.getOwnPropertyDescriptor(m, k);
      if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m[k];
        } };
      }
      Object.defineProperty(o, k2, desc);
    } : function(o, m, k, k2) {
      if (k2 === void 0)
        k2 = k;
      o[k2] = m[k];
    });
    var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) {
      Object.defineProperty(o, "default", { enumerable: true, value: v });
    } : function(o, v) {
      o["default"] = v;
    });
    var __importStar2 = exports2 && exports2.__importStar || /* @__PURE__ */ function() {
      var ownKeys = function(o) {
        ownKeys = Object.getOwnPropertyNames || function(o2) {
          var ar = [];
          for (var k in o2)
            if (Object.prototype.hasOwnProperty.call(o2, k))
              ar[ar.length] = k;
          return ar;
        };
        return ownKeys(o);
      };
      return function(mod) {
        if (mod && mod.__esModule)
          return mod;
        var result = {};
        if (mod != null) {
          for (var k = ownKeys(mod), i = 0; i < k.length; i++)
            if (k[i] !== "default")
              __createBinding2(result, mod, k[i]);
        }
        __setModuleDefault2(result, mod);
        return result;
      };
    }();
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.expandGlob = expandGlob;
    var fs = __importStar2(require("node:fs"));
    var nodePath = __importStar2(require("node:path"));
    var glob_to_regexp_js_1 = require_glob_to_regexp3();
    var common_js_12 = require_common();
    async function* expandGlob(pattern, options) {
      const opts = {
        caseInsensitive: options.caseInsensitive ?? false,
        globstar: options.globstar ?? true,
        followSymlinks: options.followSymlinks ?? false,
        includeDirs: options.includeDirs ?? true
      };
      let startDir;
      let remaining;
      if (nodePath.isAbsolute(pattern)) {
        const parsed = nodePath.parse(pattern);
        startDir = parsed.root;
        remaining = pattern.slice(parsed.root.length);
      } else {
        startDir = options.root;
        remaining = pattern;
      }
      const sepRe = common_js_12.isWindows ? /[/\\]/ : /\//;
      const segments = remaining.split(sepRe).filter((s) => s.length > 0);
      yield* walkSegments(startDir, segments, 0, opts);
    }
    async function* walkSegments(dir, segments, index, opts) {
      if (index >= segments.length) {
        return;
      }
      const segment = segments[index];
      const isLast = index === segments.length - 1;
      if (segment === "**" && opts.globstar) {
        yield* walkSegments(dir, segments, index + 1, opts);
        let entries2;
        try {
          entries2 = await fs.promises.readdir(dir, { withFileTypes: true });
        } catch {
          return;
        }
        for (const entry of entries2) {
          const entryPath = nodePath.join(dir, entry.name);
          if (await isDirectory(entry, entryPath, opts.followSymlinks)) {
            yield* walkSegments(entryPath, segments, index, opts);
          }
        }
        return;
      }
      if (!hasGlobChar(segment)) {
        const nextPath = nodePath.join(dir, segment);
        let stat;
        try {
          stat = await fs.promises.stat(nextPath);
        } catch (err) {
          if (err?.code !== "ENOENT" || !opts.caseInsensitive || common_js_12.isWindows) {
            return;
          }
          let entries2;
          try {
            entries2 = await fs.promises.readdir(dir, { withFileTypes: true });
          } catch {
            return;
          }
          const lowered = segment.toLowerCase();
          for (const entry of entries2) {
            if (entry.name.toLowerCase() !== lowered)
              continue;
            yield* yieldOrDescend(nodePath.join(dir, entry.name), entry, segments, index, isLast, opts);
          }
          return;
        }
        if (isLast) {
          if (stat.isFile() || stat.isDirectory() && opts.includeDirs) {
            yield { path: nextPath };
          }
        } else if (stat.isDirectory()) {
          yield* walkSegments(nextPath, segments, index + 1, opts);
        }
        return;
      }
      const regex = (0, glob_to_regexp_js_1.globToRegExp)(segment, {
        caseInsensitive: opts.caseInsensitive,
        globstar: opts.globstar
      });
      let entries;
      try {
        entries = await fs.promises.readdir(dir, { withFileTypes: true });
      } catch {
        return;
      }
      for (const entry of entries) {
        if (!regex.test(entry.name))
          continue;
        yield* yieldOrDescend(nodePath.join(dir, entry.name), entry, segments, index, isLast, opts);
      }
    }
    async function* yieldOrDescend(entryPath, entry, segments, index, isLast, opts) {
      let isFile = entry.isFile();
      let isDir = entry.isDirectory();
      if (entry.isSymbolicLink()) {
        if (opts.followSymlinks) {
          try {
            const s = await fs.promises.stat(entryPath);
            isFile = s.isFile();
            isDir = s.isDirectory();
          } catch {
            return;
          }
        } else if (isLast) {
          isFile = true;
        }
      }
      if (isLast) {
        if (isFile || isDir && opts.includeDirs) {
          yield { path: entryPath };
        }
      } else if (isDir) {
        yield* walkSegments(entryPath, segments, index + 1, opts);
      }
    }
    async function isDirectory(entry, entryPath, followSymlinks) {
      if (entry.isDirectory())
        return true;
      if (followSymlinks && entry.isSymbolicLink()) {
        try {
          return (await fs.promises.stat(entryPath)).isDirectory();
        } catch {
          return false;
        }
      }
      return false;
    }
    function hasGlobChar(segment) {
      for (let i = 0; i < segment.length; i++) {
        const ch = segment[i];
        if (ch === "*" || ch === "?" || ch === "[")
          return true;
      }
      return false;
    }
  }
});

// npm/script/deps/jsr.io/@david/shell/0.6.0/src/lib/rs_lib.internal.js
var require_rs_lib_internal2 = __commonJS({
  "npm/script/deps/jsr.io/@david/shell/0.6.0/src/lib/rs_lib.internal.js"(exports2, module2) {
    "use strict";
    var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) {
      if (k2 === void 0)
        k2 = k;
      var desc = Object.getOwnPropertyDescriptor(m, k);
      if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m[k];
        } };
      }
      Object.defineProperty(o, k2, desc);
    } : function(o, m, k, k2) {
      if (k2 === void 0)
        k2 = k;
      o[k2] = m[k];
    });
    var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) {
      Object.defineProperty(o, "default", { enumerable: true, value: v });
    } : function(o, v) {
      o["default"] = v;
    });
    var __importStar2 = exports2 && exports2.__importStar || /* @__PURE__ */ function() {
      var ownKeys = function(o) {
        ownKeys = Object.getOwnPropertyNames || function(o2) {
          var ar = [];
          for (var k in o2)
            if (Object.prototype.hasOwnProperty.call(o2, k))
              ar[ar.length] = k;
          return ar;
        };
        return ownKeys(o);
      };
      return function(mod) {
        if (mod && mod.__esModule)
          return mod;
        var result = {};
        if (mod != null) {
          for (var k = ownKeys(mod), i = 0; i < k.length; i++)
            if (k[i] !== "default")
              __createBinding2(result, mod, k[i]);
        }
        __setModuleDefault2(result, mod);
        return result;
      };
    }();
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.__wbg_set_wasm = __wbg_set_wasm;
    exports2.parse = parse;
    exports2.__wbg_error_7534b8e9a36f1ab4 = __wbg_error_7534b8e9a36f1ab4;
    exports2.__wbg_new_405e22f390576ce2 = __wbg_new_405e22f390576ce2;
    exports2.__wbg_new_78feb108b6472713 = __wbg_new_78feb108b6472713;
    exports2.__wbg_new_8a6f238a6ece86ea = __wbg_new_8a6f238a6ece86ea;
    exports2.__wbg_set_37837023f3d740e8 = __wbg_set_37837023f3d740e8;
    exports2.__wbg_set_3f1d0b984ed272ed = __wbg_set_3f1d0b984ed272ed;
    exports2.__wbg_stack_0ed75d68575b0f3c = __wbg_stack_0ed75d68575b0f3c;
    exports2.__wbindgen_debug_string = __wbindgen_debug_string;
    exports2.__wbindgen_init_externref_table = __wbindgen_init_externref_table;
    exports2.__wbindgen_number_new = __wbindgen_number_new;
    exports2.__wbindgen_string_new = __wbindgen_string_new;
    exports2.__wbindgen_throw = __wbindgen_throw;
    var dntShim = __importStar2(require_dnt_shims());
    var wasm;
    function __wbg_set_wasm(val) {
      wasm = val;
    }
    var lTextDecoder = typeof dntShim.TextDecoder === "undefined" ? (0, module2.require)("util").TextDecoder : dntShim.TextDecoder;
    var cachedTextDecoder = new lTextDecoder("utf-8", { ignoreBOM: true, fatal: true });
    cachedTextDecoder.decode();
    var cachedUint8ArrayMemory0 = null;
    function getUint8ArrayMemory0() {
      if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {
        cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer);
      }
      return cachedUint8ArrayMemory0;
    }
    function getStringFromWasm0(ptr, len) {
      ptr = ptr >>> 0;
      return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));
    }
    var WASM_VECTOR_LEN = 0;
    var lTextEncoder = typeof TextEncoder === "undefined" ? (0, module2.require)("util").TextEncoder : TextEncoder;
    var cachedTextEncoder = new lTextEncoder("utf-8");
    var encodeString = typeof cachedTextEncoder.encodeInto === "function" ? function(arg, view) {
      return cachedTextEncoder.encodeInto(arg, view);
    } : function(arg, view) {
      const buf = cachedTextEncoder.encode(arg);
      view.set(buf);
      return {
        read: arg.length,
        written: buf.length
      };
    };
    function passStringToWasm0(arg, malloc, realloc) {
      if (realloc === void 0) {
        const buf = cachedTextEncoder.encode(arg);
        const ptr2 = malloc(buf.length, 1) >>> 0;
        getUint8ArrayMemory0().subarray(ptr2, ptr2 + buf.length).set(buf);
        WASM_VECTOR_LEN = buf.length;
        return ptr2;
      }
      let len = arg.length;
      let ptr = malloc(len, 1) >>> 0;
      const mem = getUint8ArrayMemory0();
      let offset = 0;
      for (; offset < len; offset++) {
        const code = arg.charCodeAt(offset);
        if (code > 127)
          break;
        mem[ptr + offset] = code;
      }
      if (offset !== len) {
        if (offset !== 0) {
          arg = arg.slice(offset);
        }
        ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0;
        const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len);
        const ret = encodeString(arg, view);
        offset += ret.written;
        ptr = realloc(ptr, len, offset, 1) >>> 0;
      }
      WASM_VECTOR_LEN = offset;
      return ptr;
    }
    var cachedDataViewMemory0 = null;
    function getDataViewMemory0() {
      if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || cachedDataViewMemory0.buffer.detached === void 0 && cachedDataViewMemory0.buffer !== wasm.memory.buffer) {
        cachedDataViewMemory0 = new DataView(wasm.memory.buffer);
      }
      return cachedDataViewMemory0;
    }
    function debugString(val) {
      const type = typeof val;
      if (type == "number" || type == "boolean" || val == null) {
        return `${val}`;
      }
      if (type == "string") {
        return `"${val}"`;
      }
      if (type == "symbol") {
        const description = val.description;
        if (description == null) {
          return "Symbol";
        } else {
          return `Symbol(${description})`;
        }
      }
      if (type == "function") {
        const name = val.name;
        if (typeof name == "string" && name.length > 0) {
          return `Function(${name})`;
        } else {
          return "Function";
        }
      }
      if (Array.isArray(val)) {
        const length = val.length;
        let debug = "[";
        if (length > 0) {
          debug += debugString(val[0]);
        }
        for (let i = 1; i < length; i++) {
          debug += ", " + debugString(val[i]);
        }
        debug += "]";
        return debug;
      }
      const builtInMatches = /\[object ([^\]]+)\]/.exec(toString.call(val));
      let className;
      if (builtInMatches && builtInMatches.length > 1) {
        className = builtInMatches[1];
      } else {
        return toString.call(val);
      }
      if (className == "Object") {
        try {
          return "Object(" + JSON.stringify(val) + ")";
        } catch (_) {
          return "Object";
        }
      }
      if (val instanceof Error) {
        return `${val.name}: ${val.message}
${val.stack}`;
      }
      return className;
    }
    function takeFromExternrefTable0(idx) {
      const value = wasm.__wbindgen_export_3.get(idx);
      wasm.__externref_table_dealloc(idx);
      return value;
    }
    function parse(command) {
      const ptr0 = passStringToWasm0(command, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
      const len0 = WASM_VECTOR_LEN;
      const ret = wasm.parse(ptr0, len0);
      if (ret[2]) {
        throw takeFromExternrefTable0(ret[1]);
      }
      return takeFromExternrefTable0(ret[0]);
    }
    function __wbg_error_7534b8e9a36f1ab4(arg0, arg1) {
      let deferred0_0;
      let deferred0_1;
      try {
        deferred0_0 = arg0;
        deferred0_1 = arg1;
        console.error(getStringFromWasm0(arg0, arg1));
      } finally {
        wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);
      }
    }
    function __wbg_new_405e22f390576ce2() {
      const ret = new Object();
      return ret;
    }
    function __wbg_new_78feb108b6472713() {
      const ret = new Array();
      return ret;
    }
    function __wbg_new_8a6f238a6ece86ea() {
      const ret = new Error();
      return ret;
    }
    function __wbg_set_37837023f3d740e8(arg0, arg1, arg2) {
      arg0[arg1 >>> 0] = arg2;
    }
    function __wbg_set_3f1d0b984ed272ed(arg0, arg1, arg2) {
      arg0[arg1] = arg2;
    }
    function __wbg_stack_0ed75d68575b0f3c(arg0, arg1) {
      const ret = arg1.stack;
      const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
      const len1 = WASM_VECTOR_LEN;
      getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);
      getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);
    }
    function __wbindgen_debug_string(arg0, arg1) {
      const ret = debugString(arg1);
      const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
      const len1 = WASM_VECTOR_LEN;
      getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);
      getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);
    }
    function __wbindgen_init_externref_table() {
      const table = wasm.__wbindgen_export_3;
      const offset = table.grow(4);
      table.set(0, void 0);
      table.set(offset + 0, void 0);
      table.set(offset + 1, null);
      table.set(offset + 2, true);
      table.set(offset + 3, false);
    }
    function __wbindgen_number_new(arg0) {
      const ret = arg0;
      return ret;
    }
    function __wbindgen_string_new(arg0, arg1) {
      const ret = getStringFromWasm0(arg0, arg1);
      return ret;
    }
    function __wbindgen_throw(arg0, arg1) {
      throw new Error(getStringFromWasm0(arg0, arg1));
    }
  }
});

// npm/script/deps/jsr.io/@david/shell/0.6.0/src/lib/rs_lib.js
var require_rs_lib2 = __commonJS({
  "npm/script/deps/jsr.io/@david/shell/0.6.0/src/lib/rs_lib.js"(exports2) {
    "use strict";
    var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) {
      if (k2 === void 0)
        k2 = k;
      var desc = Object.getOwnPropertyDescriptor(m, k);
      if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m[k];
        } };
      }
      Object.defineProperty(o, k2, desc);
    } : function(o, m, k, k2) {
      if (k2 === void 0)
        k2 = k;
      o[k2] = m[k];
    });
    var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) {
      Object.defineProperty(o, "default", { enumerable: true, value: v });
    } : function(o, v) {
      o["default"] = v;
    });
    var __importStar2 = exports2 && exports2.__importStar || /* @__PURE__ */ function() {
      var ownKeys = function(o) {
        ownKeys = Object.getOwnPropertyNames || function(o2) {
          var ar = [];
          for (var k in o2)
            if (Object.prototype.hasOwnProperty.call(o2, k))
              ar[ar.length] = k;
          return ar;
        };
        return ownKeys(o);
      };
      return function(mod) {
        if (mod && mod.__esModule)
          return mod;
        var result = {};
        if (mod != null) {
          for (var k = ownKeys(mod), i = 0; i < k.length; i++)
            if (k[i] !== "default")
              __createBinding2(result, mod, k[i]);
        }
        __setModuleDefault2(result, mod);
        return result;
      };
    }();
    var __exportStar = exports2 && exports2.__exportStar || function(m, exports3) {
      for (var p in m)
        if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p))
          __createBinding2(exports3, m, p);
    };
    Object.defineProperty(exports2, "__esModule", { value: true });
    var imports = __importStar2(require_rs_lib_internal2());
    var bytes = base64decode("AGFzbQEAAAAB5QEiYAN/f38AYAJ/fwBgAn9/AX9gAX8AYAN/f38Bf2AEf39/fwBgBX9/f39/AGAEf39/fwF/YAF/AX9gBX9/f39/AX9gAAFvYAAAYAABf2ACf28AYAZ/f39/f38AYAADf39/YAJ/fwFvYANvf28AYANvb28AYAF8AW9gAn9+AGAHf39/f39/fwBgB39/f39/f38Bf2ADf35+AGADf39+AX9gBH9/f34AYAJ/fwN/f39gBn9/f39/fwF/YAV/f35/fwBgBH9+f38AYAV/f31/fwBgBH99f38AYAV/f3x/fwBgBH98f38AAssEDBQuL3JzX2xpYi5pbnRlcm5hbC5qcxVfX3diaW5kZ2VuX3N0cmluZ19uZXcAEBQuL3JzX2xpYi5pbnRlcm5hbC5qcxpfX3diZ19uZXdfNDA1ZTIyZjM5MDU3NmNlMgAKFC4vcnNfbGliLmludGVybmFsLmpzGl9fd2JnX25ld183OGZlYjEwOGI2NDcyNzEzAAoULi9yc19saWIuaW50ZXJuYWwuanMaX193Ymdfc2V0XzM3ODM3MDIzZjNkNzQwZTgAERQuL3JzX2xpYi5pbnRlcm5hbC5qcxpfX3diZ19zZXRfM2YxZDBiOTg0ZWQyNzJlZAASFC4vcnNfbGliLmludGVybmFsLmpzFV9fd2JpbmRnZW5fbnVtYmVyX25ldwATFC4vcnNfbGliLmludGVybmFsLmpzF19fd2JpbmRnZW5fZGVidWdfc3RyaW5nAA0ULi9yc19saWIuaW50ZXJuYWwuanMaX193YmdfbmV3XzhhNmYyMzhhNmVjZTg2ZWEAChQuL3JzX2xpYi5pbnRlcm5hbC5qcxxfX3diZ19zdGFja18wZWQ3NWQ2ODU3NWIwZjNjAA0ULi9yc19saWIuaW50ZXJuYWwuanMcX193YmdfZXJyb3JfNzUzNGI4ZTlhMzZmMWFiNAABFC4vcnNfbGliLmludGVybmFsLmpzEF9fd2JpbmRnZW5fdGhyb3cAARQuL3JzX2xpYi5pbnRlcm5hbC5qcx9fX3diaW5kZ2VuX2luaXRfZXh0ZXJucmVmX3RhYmxlAAsDhQKDAgUIAAAAAAYEAgcAAAYAAwYCAAQABAkAABQAABUBBQwAAgECAAEWAAQAAAABAgACAgACAQIBBQ4BAAAABgMBAAsABQAABQEAAQYBAgEAAgYEBQAEAAAIAQECAAUFDgUEFwYGGAEFAQEFAAEAAAUBAAYFAQABAwEBAwAFBgYBBAADBhkEAwAABAIBAAMBAwYDAAMAAwMAAgEFAwMIAQUAAAkAAgYAAQMCBgYHAwMDAQYaAQEDAwcHAAMbBhweIAkCAgUDBQAFAwQCAwMDAgEAAAECAgICAwMBAwECAAADAwIGAwgBDAwCAAIDAAEBAQEBAQQDAAADAQEBAQEBAwILAQMBBQUECQJwATg4bwCAAQUDAQARBgkBfwFBgIDAAAsHlwEIBm1lbW9yeQIABXBhcnNlALsBD19fd2JpbmRnZW5fZnJlZQDmARFfX3diaW5kZ2VuX21hbGxvYwCtARJfX3diaW5kZ2VuX3JlYWxsb2MAtQETX193YmluZGdlbl9leHBvcnRfMwEBGV9fZXh0ZXJucmVmX3RhYmxlX2RlYWxsb2MAgwEQX193YmluZGdlbl9zdGFydAALCWcBAEEBCzeIAlahAfEBygHqAfMB8QEusgEUPfMBxAHJAWjFAckB0gHOAcUBxQHHAcgBxgGLAlnNAY4BOt0B3AH9AfwBP94B3AEekwHfAZIBO+UB+AH2AdMBsAH3AYoCwwFkQFOMAtYBDAEKCpbyA4MC4TICJ38HfiMAQaAEayIEJAAgBCABNgK4AiAEIAE2ArQCIAQgATYCsAIgBCABNgKsAiAEQYHAADsBqAIgBEKggICAEDcCoAIgBEGBuAE7AZwCIARC3ICAgBA3ApQCIARBgcgAOwGQAiAEQqSAgIAQNwKIAiAEQYH8ATsBhAIgBEEBNgKAAiAEQoKAgIDgDzcC+AEgBEGDtcAANgL0ASAEQQM2AvABIARBgLXAADYC7AEgBEECNgLoASAEQYW1wAA2AuQBIARBgc4AOwHcASAEQqeAgIAQNwLUASAEQYG4ATsB0AEgBELcgICAEDcCyAEgBEGB0gA7AcQBIARCqYCAgBA3ArwBIARBgbgBOwG4ASAEQtyAgIAQNwKwASAEQYHQADsBrAEgBEKogICAEDcCpAEgBEGBuAE7AaABIARC3ICAgBA3ApgBIARBgcQAOwGUASAEQqKAgIAQNwKMASAEQYG4ATsBiAEgBELcgICAEDcCgAEgBEGBwAE7AXwgBELggICAEDcCdCAEQYG4ATsBcCAEQtyAgIAQNwJoIARBgfwBOwFkIARC/oCAgBA3AlwgBEGBuAE7AVggBELcgICAEDcCUCAEIAEtAAA6AOABIARBADYC0AIgBEKAgICAwAA3AsgCIARBjANqIR0gBEGAA2ohHiAEQZQCaiEfIARBiAJqISAgBEH8AWohISAEQewBaiEiIARByAFqISMgBEGwAWohJCAEQZgBaiElIARBgAFqISYgBEHoAGohJyAEQegDaiEXIAMhASACIQoDQAJAAkACfwJAAkACQAJAAkAgAUUEQEEAIQEMAQsgBEHoAmoiBiAiIAogARBwAkACQAJAAn8CQAJAIAQoAugCIgVFBEAgBCgC7AIiBQ0IIAYgBCgC5AEgBCgC6AEgCiABEHsgBCgC6AIiBQ0BIAQoAuwCIgUNCCAEQYHIADsB2AMgBEKkgICAEDcC0AMgBiAEQdADaiAKIAEQTSAEKALoAiEGAkAgBCgC8AJBgIDEAEYEQCAGIQUMAQsgBCgC7AIhCyAEIAY2ApQEIAQgBiALajYCmARBACEFIARBlARqEKYBIg1BgIDEAEYNACAEIA02AogEQcC0wABBAyANEF5FDQAgBEECNgLsAiAEQeC0wAA2AugCIARCATcC9AIgBEEMNgLEAyAEIARBwANqNgLwAiAEIARBiARqNgLAAyAEQeADaiAEQegCahCIAUEUEO0BIgUgCzYCECAFIAY2AgwgBUEIaiAXKAIANgIAIAUgBCkC4AM3AgALIARB/ANqIQcgBQ0FIARBgdAAOwGUAyAEQqiAgIAQNwKMAyAEQYHIADsBiAMgBEKkgICAEDcCgAMgBEGByAA7AfwCIARCpICAgBA3AvQCIARBgbgBOwHwAiAEQtyAgIAQNwLoAiAEQdADaiAEQegCaiAKIAEQUCAEKALQAyEFIAQoAtgDIgZBgIDEAEYEQCAFBEBBgIDEACEGDAYLIARB4ANqIB4gCiABEE0gBCgC4AMhBSAEKALoAyINQYCAxABGBEAgBSEIQYCAxAAMBQsgBEHgA2oiCCAFIAQoAuQDIgYQRCAEKALgAw0DIAQoAuQDIg5FBEAgCCAdIAUgBhBNIAQoAuADIQ4CQCAEKALoA0GAgMQARgRAQQEhCwwBCyAORSELIAQoAuQDIQ4LQQAhCEEAEPQBQYCAxAAgC0UNBRoLIA4Q9AEgBiEYIAUhCCANDAQLIAQoAtQDIhghDQwECyAEKALsAiEBQQAhDEEEIQcgBSEKQQQhG0EAIRAMDAsgBCgC7AIhAUEAIRBB1LXAACEMQQEhByAFIQpBASEbDAsLQQAhCEGAgMQACyEGQQAQ9AEgBkGAgMQARwRAIBghDSAIIQUMAQtBgIDEACEGIAgEQCAIIQUMAQsgBEGIBGogBEHQAGogCiABEFAgBCgCiAQhBQJAAkACQAJAAkACQAJAAkACQAJAAkAgBCgCkAQiBkGAgMQARgRAQYCAxAAhBiAFDQsgBEGUBGogJyAKIAEQUCAEKAKUBCEFIAQoApwEIgZBgIDEAEcNAUGAgMQAIQYgBQ0KIARBwANqICYgCiABEFAgBCgCwAMhBSAEKALIAyIGQYCAxABHDQJBgIDEACEGIAUNCSAEQdADaiAlIAogARBQIAQoAtADIQUgBCgC2AMiBkGAgMQARw0DQYCAxAAhBiAFDQggBEHgA2ogJCAKIAEQUCAEKALgAyEFIAQoAugDIgZBgIDEAEcNBEGAgMQAIQYgBQ0HIARB6AJqICMgCiABEFAgBCgC6AIhBSAEKALwAiIGQYCAxABHDQVBgIDEACEGDAYLIAQoAowEIQ0MCgsgBCgCmAQhDQwICyAEKALEAyENDAYLIAQoAtQDIQ0MBAsgBCgC5AMhDQwCCyAELQDgAQRAQYCAxAAhBkEAIQUMAQsgBCgC7AIhDQtBABD0AQtBABD0AQtBABD0AQtBABD0AQtBABD0AQsgCBD0AQtBABD0ASAGQYCAxABGDQAgBEEANgL8AyAEQfADaiEHDAELIAkhDUEFIQYLIAcgBjYCAAJAIAQoAvwDIgdBBUYEQCAFDQMgBEHoAmogCiABEDwgBCgC8AIiBUGAgICAeEYEf0EFBSAEKQL0AiIrQiCIpyEQIAQoAuwCIRogK6chGyAFIRNBAwshByAEKALoAiEFQQAQ9AEgB0EFRwRAIAUhCiAaIQEgEyEMIA0hCQwJCyAFRQ0BDAMLIAQoAvADIQxBACEQIAUhCiANIgEhCQwHCyAEQegCaiIJIAogARAXIAQoAugCIQUCfwJAAkAgBCgC8AIiBkGAgICAeEYEQCAFDQUgCSAhIAogARBNIAQoAugCIQUgBCgC8AJBgIDEAEcNASAFDQUgCSAgIAogARBNIAQoAugCIQUgBCgC8AIiBkGAgMQARg0CIAkgBSAEKALsAhBEIAQoAugCIgVFBEAgBCgC7AIhBQwDCyAEIAY2AuADIAQoAvQCIQYgBCgC7AIhCCAEQdADaiEHIAQoAvACDAMLIAQpAvQCIS1BAyEHIAUhCiAGIQwgBCgC7AIMCAtBAiEHIAUhCiAEKALsAgwHC0GAgMQAIQYgBEHgA2ohB0EACyEJIAcgBjYCAAJAAkACQAJAAkACQCAEKALgA0GAgMQARgRAIAUNCCAEQegCaiAfIAogARBQIAQoAugCIQUCfyAEKALwAiIGQYCAxABGBEBBBSEGIARB2AJqDAELIAQoAqwCLQAARQRAQQUhBkEAIQUgBEHYAmoMAQsgBCgC7AIhKCAEQQA2AtgCIARB1AJqCyAGNgIAIAQoAtgCIgdBBUcNCyAFDQggBCgCsAItAABBAUcNASAEQQA2AugCIARByABqQfsAIARB6AJqEJUBIARBQGsgBCgCSCAEKAJMIAogARC6ASAEKAJAIglFDQEgBCgCRCEGQQAhDiAEQQA2AvACIARCgICAgMAANwLoAiAJQQFqIQ8gBkEBayEZQQQhB0EAIQUDQEEAIQsDQCAFIAZPBEAgBCgC6AIgBxCDAgwECwJAAkACQAJAIAUgCWotAAAiCEEiRwRAIAhBJ0cEQAJAIAhBLEcEQCAIQdwARgRAQQJBASAFQQFqIAZJGyAFaiEFDAkLAkAgCEH7AGsOAwACBQILIAVBAWohBSALQQFqIQsMCAsgC0UNBAsgBUEBaiEFDAYLAn8CQANAIAUgGUcEQCAFIA9qIAVBAWoiCCEFLQAAQSdHDQEMAgsLIAYhCCAZDAELIAhBAWsLQQJqIAggBiAISxshBQwFCyAFQQFqIQUDQCAFIAZJIghFDQQgBSAJai0AACIRQdwARwR/IBFBIkYNBSAFQQFqBSAFQQJqIAVBAWoiBSAFIAZJGwshBQwACwALIAtFDQEgBUEBaiEFIAtBAWshCwwDCyAEKALoAiAORgRAIwBBEGsiCCQAIAhBCGogBEHoAmoiCyALKAIAQQFBBEEEEEIgCCgCCCILQYGAgIB4RwRAIAgoAgwaIAtB8LbAABDbAQALIAhBEGokACAEKALsAiEHCyAHIA5BAnRqIAU2AgAgBCAOQQFqIg42AvACIAVBAWohBQwDCyAEQThqIAkgBiAFQdC2wAAQjAEgBCgCPCEPIAQoAjghESAEQTBqIAkgBiAFQQFqQeC2wAAQhwEgBCgC6AIiKUGAgICAeEYNBCAEKAI0IQsgBCgCMCEFIAQoAuwCIRkCQAJAIAQpAuwCIitC/////w9WBEAgK0IgiKchDiArpyEIDAELIARB6AJqIgYgESAPQYC3wABBAhASIARBAzYCuAMgBEEBOwGwAyAEIA82AqwDIARBADYCqAMgBEEoaiAGEFcCQCAEKAIoIglFDQAgBCgCLCEHIARBIGogBhBXIAQoAiAiCEUNACAEKAIkIRQgBEEYaiAGEFcgB0UgFEVyDQAgBCgCHCESIAQoAhghBiAEQcADaiAJIAcQHyAEQdADaiAIIBQQHwJAAkACQCAELQDAA0EBRg0AIAQtANADDQAgBCkD2AMhLyAEKQPIAyErIAYEfiAEQeADaiAGIBIQHyAELQDgA0EBRg0EIAQpA+gDIixQDQQgLCAsQj+HIi6FIC59BUIBCyEsIC8gK30iLiAuQj+HIi6FIC59ICyAQsCEPVYNAyAEQQA2ApAEIARCgICAgMAANwKIBAJAICsgL1UEQANAICsgL1MNAkEQEO0BIQYgBEHgA2ogKxAkIAZBADYCACAGIAQpAuADNwIEIAZBDGogFygCADYCACAEQQE2ApwEIAQgBjYCmAQgBEEBNgKUBCAEQYgEaiAEQZQEakGEt8AAEJABICsgLH0hKwwACwALA0AgKyAvVQ0BQRAQ7QEhBiAEQeADaiArECQgBkEANgIAIAYgBCkC4AM3AgQgBkEMaiAXKAIANgIAIARBATYCnAQgBCAGNgKYBCAEQQE2ApQEIARBiARqIARBlARqQZS3wAAQkAEgKyAsfCErDAALAAsgBCkCjAQhKyAEKAKIBCEGDAELIAYNAiAEQfADaiAJIAcgCWoQOSAEQfwDaiAIIAggFGoQOSAEKAL4A0EBRwRAIAQoAvQDIQkMAgsgBCgC9AMhCSAEKAKEBEEBRw0BIAkoAgAiBiAEKAKABCIqKAIAIhRyQf8ASw0BIARBADYCkAQgBEKAgICAwAA3AogEAkAgBiAUTQRAQQAhBwNAIAdBAXENAiAGQf8BcSISIBRB/wFxIghLDQJBEBDtASEHIARB4ANqIBIQgQEgB0EANgIAIAcgBCkC4AM3AgQgB0EMaiAXKAIANgIAIARBATYCnAQgBCAHNgKYBCAEQQE2ApQEIARBiARqIARBlARqQdS3wAAQkAEgCCASTSEHIAYgCCASS2ohBgwACwALQQAhBwNAIAdBAXENASAGQf8BcSISIBRB/wFxIghJDQFBEBDtASEHIARB4ANqIBIQgQEgB0EANgIAIAcgBCkC4AM3AgQgB0EMaiAXKAIANgIAIARBATYCnAQgBCAHNgKYBCAEQQE2ApQEIARBiARqIARBlARqQcS3wAAQkAEgCCASTyEHIAYgCCASSWshBgwACwALIAQpAowEISsgBCgCiAQhBiAEKAL8AyAqEIMCIAQoAvADIAkQgwILIAZBgICAgHhGDQEgCyEVICshMAwDCyAEKAL8AyAEKAKABBCDAiAEKALwAyAJEIMCCyAZIQggDg0AQYCAgIB4IQZBACEFDAELIARBEGogDkEBakEEQQhB4LXAABBtQQAhBiAEQQA2AtgDIAQgBCkDEDcC0AMgDkECdCEJA0ACQAJAAkAgCQRAIAgoAgAiByAGSQ0DIAZFDQIgBiAPSQ0BIAYgD0cNAwwCCyAEQQhqIBEgDyAGQfC1wAAQhwEgBEHQA2ogBCgCCCAEKAIMQYC2wAAQowEgBCAEKALYAyIGQQRBDEGQtsAAEG0gBEEANgLoAyAEIAQpAwA3AuADIAZBA3QhByAEKALQAyEJIAQoAtQDIg4hBgNAAkAgBwRAIAYoAgQhDyAGKAIAIQggBEEBOgDAAyAEQegCaiAEQcADaiAIIA8QDAJ/IAQoAvACIg9BgICAgHhGBEAgBCgC6AIMAQsgBCAEKQL0AjcC4AIgBCAPNgLcAiAEKALsAkUNAiAEQdwCahCkAUEACyEFIA4gCRCEAiAEQeADahCeAUGAgICAeCEGDAcLIA4gCRCEAiAEKQLkAyEwIAQoAuADIQYgCyEVDAYLIAZBCGohBiAEQeADaiAEQdwCakGgtsAAEJABIAdBCGshBwwACwALIAYgEWosAABBv39MDQELAkAgB0UNACAHIA9PBEAgByAPRg0BDAILIAcgEWosAABBv39MDQELIAhBBGohCCAEQdADaiAGIBFqIAcgBmtBwLbAABCjASAJQQRrIQkgB0EBaiEGDAELCyARIA8gBiAHQbC2wAAQ6wEACyApIBkQgwIgBkGAgICAeEYEQCAFRQ0FQQUhBwwIC0EQEO0BIhwgMDcCCCAcIAY2AgQgHEEFNgIAQQQhByAEQQQ2AuADQQEhDCAEQQE2AtADIBUhFgwFCyAFIAhqIQUMAAsACwALQQEhByAFIQogCSEMIAQ1AtADIDFCgICAgHCDhCItITEgCAwLCyAEQegCaiAKIAEQZSAEKALoAiEIAkAgBCgC8AIiCUGAgMQARgRAQQUhBiAEQeADaiEHIAghBQwBCyAEKALsAgJAIAQoArQCLQAAQQFGBEBBBSEGIARB4ANqIQdBACEFIAkQYQ0CQdW1wABBCiAJEF4NAgwBCyAJQSJHDQBBBSEGIARB4ANqIQdBACEFDAELIARBADYC4AMgBEHQA2ohByAIIQUhFiAJIQYLIAcgBjYCACAEKALgAyIHQQVHBEAgBCgC0AMhDAwBC0EFIQcgBQ0CIAQoArgCLQAAQQFGDQFBACEFDAILIBytQoCAgIAQhCEtIBYhBgwDCyAEQegCaiAKIAEQDiAEKALoAiEFIAQoAvACIgtBgICAgHhHDQELIAEhBgwBCyAEKALsAiEGIAQpAvQCIStBEBDtASIJICs3AgggCSALNgIEQQQhByAJQQQ2AgAgCa1CgICAgBCEIS1BASEMC0EAEPQBIAdBBUcEQCAFIQogBgwGCyAFDQELIAQoAsgCIgVBgICAgHhGBEAgCiEFDAILIAQpAswCIStBACEGIARBADYC2AMgBEKAgICAwAA3AtADIARBADYCdCAEIAU2AmwgBCArpyIFNgJoIAQgBTYCZCAEIAUgK0IgiKdBBHRqIhU2AnAgBEHkA2ohGiAEQfACaiEJIARB2ABqIRMDQEEGIQwCQANAIARBBjYCVAJAAkACQAJAAkACQAJAAkAgDEEGRgRAIAUgFUYNAiAEIAVBEGoiCDYCaCAFKAIAIgxBBUYNAiAJIAUpAgQ3AgAgCUEIaiAFQQxqKAIANgIAIAQgBjYC6AIgBCAGQQFqIhA2AnQgCCEFDAELIAkgEykCADcCACAJQQhqIBNBCGooAgA2AgAgBCANNgLoAiAEIAw2AuwCIAYhECANIQYgDEEFRg0CCyAEKAL4AiEYIAQoAvQCIRYgBCgC8AIhCCAMQQFrDgQDBgQFAgsgBEEFNgLsAgsgBEHoAmoQ0QEgACAEKQLQAzcCCCAAIAE2AgQgACAKNgIAIABBEGogBEHYA2ooAgA2AgAgBEHQAGoQmAEMCgsgBEHQA2ogCBB1DAULIBogCCAWEIQBIARBATYC4AMgBEHQA2ogBEHgA2pBiLXAABCRAQwECyAEIBg2AuwDIAQgFjYC6AMgBCAINgLkAyAEQQM2AuADIARB0ANqIARB4ANqQcS1wAAQkQEMAwsgBCAYNgLEAiAEIBY2AsACIAQgCDYCvAIgBEHQA2ogBEG8AmoQcQwCCyAGBEAgBEHQA2pB/gAQdQwCCwJ/IAUgFUYEQEEFIQwgECEGIBUMAQsgBCAFQRBqIgg2AmggBSgCACIMQQVGBEAgECEGQQUhDCAIDAELIARB6ANqIAVBDGooAgA2AgAgBCAFKQIENwPgAyAEIBBBAWoiBjYCdCAQIQ0gCAshBSAEQdAAahDjASATIAQpA+ADNwIAIBNBCGogBEHoA2ooAgA2AgAgBCANNgJQIAQgDDYCVAJAIAxBBUcEQCAMDQEgBCgCWEEvRw0BCyAEQQI2AuADIARB0ANqIARB4ANqQZi1wAAQkQEMAQsLIAAgAiADQai1wABBHBCzASAEQdAAahCYASAEQdADahCkAQwECyAQIQYMAAsACyAEKALQAiEBIAQoAswCIgIhDANAIAEEQCABQQFrIQEgDBC+ASAMQRBqIQwMAQsLIAQoAsgCIAIQggILIABBgICAgHg2AgggACAFNgIACyAEQaAEaiQADwsgBCgC1AIhDCAFIQogKAshASANIQkMAQsgG60gEK1CIIaEIS0gDCETIAEhGgsgBCgC0AIiBiAEKALIAkYEQCMAQRBrIgUkACAFQQhqIARByAJqIgsgCygCAEEBQQRBEBBCIAUoAggiC0GBgICAeEcEQCAFKAIMGiALQaitwAAQ2wEACyAFQRBqJAALIAQoAswCIAZBBHRqIgUgLTcCCCAFIAw2AgQgBSAHNgIAIAQgBkEBajYC0AIMAAsAC4sjAgh/AX4CQAJAAkACQAJAAkACQCAAQfUBTwRAIABBzP97Sw0FIABBC2oiAUF4cSEFQZzHwAAoAgAiCEUNBEEfIQdBACAFayEEIABB9P//B00EQCAFQQYgAUEIdmciAGt2QQFxIABBAXRrQT5qIQcLIAdBAnRBgMTAAGooAgAiAkUEQEEAIQBBACEBDAILQQAhACAFQRkgB0EBdmtBACAHQR9HG3QhA0EAIQEDQAJAIAIoAgRBeHEiBiAFSQ0AIAYgBWsiBiAETw0AIAIhASAGIgQNAEEAIQQgASEADAQLIAIoAhQiBiAAIAYgAiADQR12QQRxaigCECICRxsgACAGGyEAIANBAXQhAyACDQALDAELQZjHwAAoAgAiAkEQIABBC2pB+ANxIABBC0kbIgVBA3YiAHYiAUEDcQRAAkAgAUF/c0EBcSAAaiIFQQN0IgBBkMXAAGoiAyAAQZjFwABqKAIAIgEoAggiBEcEQCAEIAM2AgwgAyAENgIIDAELQZjHwAAgAkF+IAV3cTYCAAsgASAAQQNyNgIEIAAgAWoiACAAKAIEQQFyNgIEIAFBCGoPCyAFQaDHwAAoAgBNDQMCQAJAIAFFBEBBnMfAACgCACIARQ0GIABoQQJ0QYDEwABqKAIAIgEoAgRBeHEgBWshBCABIQIDQAJAIAEoAhAiAA0AIAEoAhQiAA0AIAIoAhghBwJAAkAgAiACKAIMIgBGBEAgAkEUQRAgAigCFCIAG2ooAgAiAQ0BQQAhAAwCCyACKAIIIgEgADYCDCAAIAE2AggMAQsgAkEUaiACQRBqIAAbIQMDQCADIQYgASIAQRRqIABBEGogACgCFCIBGyEDIABBFEEQIAEbaigCACIBDQALIAZBADYCAAsgB0UNBAJAIAIoAhxBAnRBgMTAAGoiASgCACACRwRAIAIgBygCEEcEQCAHIAA2AhQgAA0CDAcLIAcgADYCECAADQEMBgsgASAANgIAIABFDQQLIAAgBzYCGCACKAIQIgEEQCAAIAE2AhAgASAANgIYCyACKAIUIgFFDQQgACABNgIUIAEgADYCGAwECyAAKAIEQXhxIAVrIgEgBCABIARJIgEbIQQgACACIAEbIQIgACEBDAALAAsCQEECIAB0IgNBACADa3IgASAAdHFoIgZBA3QiAEGQxcAAaiIDIABBmMXAAGooAgAiASgCCCIERwRAIAQgAzYCDCADIAQ2AggMAQtBmMfAACACQX4gBndxNgIACyABIAVBA3I2AgQgASAFaiIGIAAgBWsiBEEBcjYCBCAAIAFqIAQ2AgBBoMfAACgCACICBEAgAkF4cUGQxcAAaiEAQajHwAAoAgAhAwJ/QZjHwAAoAgAiBUEBIAJBA3Z0IgJxRQRAQZjHwAAgAiAFcjYCACAADAELIAAoAggLIQIgACADNgIIIAIgAzYCDCADIAA2AgwgAyACNgIIC0Gox8AAIAY2AgBBoMfAACAENgIAIAFBCGoPC0Gcx8AAQZzHwAAoAgBBfiACKAIcd3E2AgALAkACQCAEQRBPBEAgAiAFQQNyNgIEIAIgBWoiBSAEQQFyNgIEIAQgBWogBDYCAEGgx8AAKAIAIgNFDQEgA0F4cUGQxcAAaiEAQajHwAAoAgAhAQJ/QZjHwAAoAgAiBkEBIANBA3Z0IgNxRQRAQZjHwAAgAyAGcjYCACAADAELIAAoAggLIQMgACABNgIIIAMgATYCDCABIAA2AgwgASADNgIIDAELIAIgBCAFaiIAQQNyNgIEIAAgAmoiACAAKAIEQQFyNgIEDAELQajHwAAgBTYCAEGgx8AAIAQ2AgALIAJBCGoPCyAAIAFyRQRAQQAhAUECIAd0IgBBACAAa3IgCHEiAEUNAyAAaEECdEGAxMAAaigCACEACyAARQ0BCwNAIAAgASAAKAIEQXhxIgMgBWsiBiAESSIHGyEIIAAoAhAiAkUEQCAAKAIUIQILIAEgCCADIAVJIgAbIQEgBCAGIAQgBxsgABshBCACIgANAAsLIAFFDQAgBUGgx8AAKAIAIgBNIAQgACAFa09xDQAgASgCGCEHAkACQCABIAEoAgwiAEYEQCABQRRBECABKAIUIgAbaigCACICDQFBACEADAILIAEoAggiAiAANgIMIAAgAjYCCAwBCyABQRRqIAFBEGogABshAwNAIAMhBiACIgBBFGogAEEQaiAAKAIUIgIbIQMgAEEUQRAgAhtqKAIAIgINAAsgBkEANgIACyAHRQ0DAkAgASgCHEECdEGAxMAAaiICKAIAIAFHBEAgASAHKAIQRwRAIAcgADYCFCAADQIMBgsgByAANgIQIAANAQwFCyACIAA2AgAgAEUNAwsgACAHNgIYIAEoAhAiAgRAIAAgAjYCECACIAA2AhgLIAEoAhQiAkUNAyAAIAI2AhQgAiAANgIYDAMLAkACQAJAAkACQCAFQaDHwAAoAgAiAUsEQCAFQaTHwAAoAgAiAE8EQEEAIQQgBUGvgARqIgBBEHZAACIBQX9GIgMNByABQRB0IgJFDQdBsMfAAEEAIABBgIB8cSADGyIEQbDHwAAoAgBqIgA2AgBBtMfAACAAQbTHwAAoAgAiASAAIAFLGzYCAAJAAkBBrMfAACgCACIDBEBBgMXAACEAA0AgACgCACIBIAAoAgQiBmogAkYNAiAAKAIIIgANAAsMAgtBvMfAACgCACIAQQAgACACTRtFBEBBvMfAACACNgIAC0HAx8AAQf8fNgIAQYTFwAAgBDYCAEGAxcAAIAI2AgBBnMXAAEGQxcAANgIAQaTFwABBmMXAADYCAEGYxcAAQZDFwAA2AgBBrMXAAEGgxcAANgIAQaDFwABBmMXAADYCAEG0xcAAQajFwAA2AgBBqMXAAEGgxcAANgIAQbzFwABBsMXAADYCAEGwxcAAQajFwAA2AgBBxMXAAEG4xcAANgIAQbjFwABBsMXAADYCAEHMxcAAQcDFwAA2AgBBwMXAAEG4xcAANgIAQdTFwABByMXAADYCAEHIxcAAQcDFwAA2AgBBjMXAAEEANgIAQdzFwABB0MXAADYCAEHQxcAAQcjFwAA2AgBB2MXAAEHQxcAANgIAQeTFwABB2MXAADYCAEHgxcAAQdjFwAA2AgBB7MXAAEHgxcAANgIAQejFwABB4MXAADYCAEH0xcAAQejFwAA2AgBB8MXAAEHoxcAANgIAQfzFwABB8MXAADYCAEH4xcAAQfDFwAA2AgBBhMbAAEH4xcAANgIAQYDGwABB+MXAADYCAEGMxsAAQYDGwAA2AgBBiMbAAEGAxsAANgIAQZTGwABBiMbAADYCAEGQxsAAQYjGwAA2AgBBnMbAAEGQxsAANgIAQaTGwABBmMbAADYCAEGYxsAAQZDGwAA2AgBBrMbAAEGgxsAANgIAQaDGwABBmMbAADYCAEG0xsAAQajGwAA2AgBBqMbAAEGgxsAANgIAQbzGwABBsMbAADYCAEGwxsAAQajGwAA2AgBBxMbAAEG4xsAANgIAQbjGwABBsMbAADYCAEHMxsAAQcDGwAA2AgBBwMbAAEG4xsAANgIAQdTGwABByMbAADYCAEHIxsAAQcDGwAA2AgBB3MbAAEHQxsAANgIAQdDGwABByMbAADYCAEHkxsAAQdjGwAA2AgBB2MbAAEHQxsAANgIAQezGwABB4MbAADYCAEHgxsAAQdjGwAA2AgBB9MbAAEHoxsAANgIAQejGwABB4MbAADYCAEH8xsAAQfDGwAA2AgBB8MbAAEHoxsAANgIAQYTHwABB+MbAADYCAEH4xsAAQfDGwAA2AgBBjMfAAEGAx8AANgIAQYDHwABB+MbAADYCAEGUx8AAQYjHwAA2AgBBiMfAAEGAx8AANgIAQazHwAAgAjYCAEGQx8AAQYjHwAA2AgBBpMfAACAEQShrIgA2AgAgAiAAQQFyNgIEIAAgAmpBKDYCBEG4x8AAQYCAgAE2AgAMCAsgAiADTSABIANLcg0AIAAoAgxFDQMLQbzHwABBvMfAACgCACIAIAIgACACSRs2AgAgAiAEaiEBQYDFwAAhAAJAAkADQCABIAAoAgAiBkcEQCAAKAIIIgANAQwCCwsgACgCDEUNAQtBgMXAACEAA0ACQCADIAAoAgAiAU8EQCADIAEgACgCBGoiBkkNAQsgACgCCCEADAELC0Gsx8AAIAI2AgBBpMfAACAEQShrIgA2AgAgAiAAQQFyNgIEIAAgAmpBKDYCBEG4x8AAQYCAgAE2AgAgAyAGQSBrQXhxQQhrIgAgACADQRBqSRsiAUEbNgIEQYDFwAApAgAhCSABQRBqQYjFwAApAgA3AgAgASAJNwIIQYTFwAAgBDYCAEGAxcAAIAI2AgBBiMXAACABQQhqNgIAQYzFwABBADYCACABQRxqIQADQCAAQQc2AgAgAEEEaiIAIAZJDQALIAEgA0YNByABIAEoAgRBfnE2AgQgAyABIANrIgBBAXI2AgQgASAANgIAIABBgAJPBEAgAyAAEDcMCAsgAEH4AXFBkMXAAGohAQJ/QZjHwAAoAgAiAkEBIABBA3Z0IgBxRQRAQZjHwAAgACACcjYCACABDAELIAEoAggLIQAgASADNgIIIAAgAzYCDCADIAE2AgwgAyAANgIIDAcLIAAgAjYCACAAIAAoAgQgBGo2AgQgAiAFQQNyNgIEIAZBD2pBeHFBCGsiBCACIAVqIgNrIQUgBEGsx8AAKAIARg0DIARBqMfAACgCAEYNBCAEKAIEIgFBA3FBAUYEQCAEIAFBeHEiABAwIAAgBWohBSAAIARqIgQoAgQhAQsgBCABQX5xNgIEIAMgBUEBcjYCBCADIAVqIAU2AgAgBUGAAk8EQCADIAUQNwwGCyAFQfgBcUGQxcAAaiEAAn9BmMfAACgCACIBQQEgBUEDdnQiBHFFBEBBmMfAACABIARyNgIAIAAMAQsgACgCCAshBSAAIAM2AgggBSADNgIMIAMgADYCDCADIAU2AggMBQtBpMfAACAAIAVrIgE2AgBBrMfAAEGsx8AAKAIAIgAgBWoiAjYCACACIAFBAXI2AgQgACAFQQNyNgIEIABBCGohBAwGC0Gox8AAKAIAIQACQCABIAVrIgJBD00EQEGox8AAQQA2AgBBoMfAAEEANgIAIAAgAUEDcjYCBCAAIAFqIgEgASgCBEEBcjYCBAwBC0Ggx8AAIAI2AgBBqMfAACAAIAVqIgM2AgAgAyACQQFyNgIEIAAgAWogAjYCACAAIAVBA3I2AgQLIABBCGoPCyAAIAQgBmo2AgRBrMfAAEGsx8AAKAIAIgBBD2pBeHEiAUEIayICNgIAQaTHwABBpMfAACgCACAEaiIDIAAgAWtqQQhqIgE2AgAgAiABQQFyNgIEIAAgA2pBKDYCBEG4x8AAQYCAgAE2AgAMAwtBrMfAACADNgIAQaTHwABBpMfAACgCACAFaiIANgIAIAMgAEEBcjYCBAwBC0Gox8AAIAM2AgBBoMfAAEGgx8AAKAIAIAVqIgA2AgAgAyAAQQFyNgIEIAAgA2ogADYCAAsgAkEIag8LQQAhBEGkx8AAKAIAIgAgBU0NAEGkx8AAIAAgBWsiATYCAEGsx8AAQazHwAAoAgAiACAFaiICNgIAIAIgAUEBcjYCBCAAIAVBA3I2AgQgAEEIag8LIAQPC0Gcx8AAQZzHwAAoAgBBfiABKAIcd3E2AgALAkAgBEEQTwRAIAEgBUEDcjYCBCABIAVqIgIgBEEBcjYCBCACIARqIAQ2AgAgBEGAAk8EQCACIAQQNwwCCyAEQfgBcUGQxcAAaiEAAn9BmMfAACgCACIDQQEgBEEDdnQiBHFFBEBBmMfAACADIARyNgIAIAAMAQsgACgCCAshBCAAIAI2AgggBCACNgIMIAIgADYCDCACIAQ2AggMAQsgASAEIAVqIgBBA3I2AgQgACABaiIAIAAoAgRBAXI2AgQLIAFBCGoLnxQCCn8BfiMAQbACayIDJAAgA0EANgKYASADQoCAgIDAADcCkAEgA0GkAWohCSADQYwCaiEMAkACQAJAAkADQAJ/AkACfwJAIAIEQCADIAI2AqQCIAMgATYCoAIgA0EeNgKcAiADQYKxwAA2ApgCIANBgc4AOwGUAiADQqeAgIAQNwKMAiADQYHOADsBiAIgA0KngICAEDcCgAIgA0HgAGogA0GAAmogASACEE0gAygCYCIEIAMoAmhBgIDEAEYNAhogAygCZCEIQQAhBQNAIAUgCEYEQCAIIQUMAwsgBCAFai0AAEEnRg0CIAVBAWohBQwACwALQQAhAiADKQKUASENIAMoApABIQQMBwsgA0HYAGogBCAIIAVBxKzAABCHASADKAJcIQcgAygCWCEGIANB0ABqIAQgCCAFQdSswAAQjAEgByAGRQ0AGiADKAJUIQUgAygCUCEIIANB4ABqIAwgBiAHEEEgAygCYCIEIAMoAmhBgIDEAEYNABogAygCZCEHIAQNASAHCyEEQYCAgIB4IQUgA0G0AWoMAQtBEBDtASEKIANBgAJqIAggBRCEASAKQQA2AgAgCiADKQKAAjcCBCAKQQxqIANBiAJqKAIANgIAQQEhBSADQQE2ArQBIAchCyADQbABagsgBTYCAAJAAkACfwJAAkAgAygCtAEiB0GAgICAeEYEQCAEDQcgA0KigICAEDcCgAIgA0GBxAA7AYgCIANB4ABqIANBgAJqIAEgAhBNIAMoAmAhBiADKAJoQYCAxABGBEAgA0GAgICAeDYCpAEgAyAGNgKcAUGAgICAeAwECyADKAJkIQcgA0EANgLAASADQoCAgIDAADcCuAEgA0EANgJoIAMgBjYCYCADIAYgB2o2AmQDQEEAIQRBgYDEACEFA0AgA0GBgMQANgJwAn8gBUGBgMQARwRAIAMoAmwMAQsgA0HIAGogA0HgAGoQciADKAJMIQUgAygCSAshCAJAAkACQAJAAkAgBUEiaw4DAwQBAAsgBUHgAEYNASAFQYCAxABHDQMgA0GcAWogASACQZCzwABBHhCzASADQbgBahCkAQwICyAEQQFxDQIgAygCcCIEQYGAxABGBEAgA0EgaiADQeAAahByIAMgAygCJCIENgJwIAMgAygCIDYCbAsgBEEoRw0CIANBGGogBiAHIAhBoLHAABCMASADQYACaiADKAIYIAMoAhwQNCADKAKIAiIEQYCAgIB4RgRAIANBgICAgHg2AqQBIAMgAygCgAI2ApwBDAcLIAMgAykCjAI3AsgBIAMgBDYCxAEgA0G4AWogA0HEAWoQcSADQRBqIAYgByAIQbCxwAAQhwEgA0GAAmogAygCECADKAIUEDwgAygCgAIhBgJAAkAgAygCiAIiBEGAgICAeEYEQCAGDQFBACEFDAILIAMoAoQCIQcgAyADKQKMAjcCiAIgAyAENgKEAiADQQM2AoACIANBuAFqIANBgAJqQfyxwAAQkQEgA0GBgMQANgJwIANBADYCaCADIAY2AmAgAyAGIAdqNgJkDAYLIANB3AFqIgQgBigCCEE+ahCnASAEQcCxwABB/LHAABCsASAEQeSswABB5qzAABCsASAEIAYoAgQgBigCCBD1ASAGKQIMIQ1BFBDtASIFIA03AgwgBUEIaiADQeQBaigCADYCACAFIAMpAtwBNwIAIAYQ1QELIANBgICAgHg2AqQBIAMgBTYCnAEMBgsgBEEBcQ0BIANBMGogBiAHIAhBjLLAABCMASADQYACaiADKAIwIAMoAjQQNCADKAKIAiIEQYCAgIB4RgRAIANBgICAgHg2AqQBIAMgAygCgAI2ApwBDAYLIAMgAykCjAI3AtQBIAMgBDYC0AEgA0G4AWogA0HQAWoQcSADQShqIAYgByAIQZyywAAQhwEgA0GAAmogAygCKCADKAIsEBcgAygCgAIhBgJAAkAgAygCiAIiBEGAgICAeEYEQCAGDQFBACEFDAILIAMoAoQCIQcgAyADKQKMAjcCiAIgAyAENgKEAiADQQM2AoACIANBuAFqIANBgAJqQeCywAAQkQEgA0GBgMQANgJwIANBADYCaCADIAY2AmAgAyAGIAdqNgJkDAULIANB6AFqIgQgBigCCEEzahCnASAEQayywABB3bLAABCsASAEQeSswABB5qzAABCsASAEIAYoAgQgBigCCBD1ASAGKQIMIQ1BFBDtASIFIA03AgwgBUEIaiADQfABaigCADYCACAFIAMpAugBNwIAIAYQ1QELIANBgICAgHg2AqQBIAMgBTYCnAEMBQsgBEEBcQ0AIANBQGsgBiAHIAhB8LLAABCMASADQYACaiADKAJAIAMoAkQQNCADKAKIAiIEQYCAgIB4RgRAIANBgICAgHg2AqQBIAMgAygCgAI2ApwBDAULIAMgAykCjAI3AvgBIAMgBDYC9AEgA0E4aiAGIAcgCEEBakGAs8AAEIcBIAMoAjwhByADKAI4IQQgAygCwAEEQCADQbgBaiADQfQBahBxIAkgAykCuAE3AgAgCUEIaiADQcABaigCADYCACADIAc2AqABIAMgBDYCnAEMBgsgCSADKQL0ATcCACAJQQhqIANB/AFqKAIANgIAIAMgBzYCoAEgAyAENgKcAQwECyAFQdwARiEEIAMoAnAhBQwACwALAAsgAyAKNgKoASADIAc2AqQBIAMgCzYCoAEgAyAENgKcASADIAMoArABNgKsAQwDCyADQbgBahCkAQsgAygCpAELQQAQ9AEgAygCnAEhBEGAgICAeEYNAQsgBCEBIAMoAqABIQIgA0GQAWogCRCUAQwBCwsgBEUNAQsgA0GQAWoQpQFBgICAgHghAkEIIQUMAgsgAykClAEhDSADKAKQASEEQQAQ9AELQQghBSAEQYCAgIB4RgRAIAEhBEGAgICAeCECDAELIAMgBDYCgAIgAyANNwKEAiANQv////8PWARAIANBgAJqEKUBQQAhBEGAgICAeCECDAELIANBADYCgAEgA0EANgJwIAMgBDYCaCADIA2nIgQ2AmQgAyAENgJgIAMgBCANQiCIp0EMbGo2AmwgA0GcAWogA0HgAGoiBRBRAkAgAygCnAFBBkcEQCADQYACaiIIIAUQbyADQQhqQQQgAygCgAJBAWoiBEF/IAQbIgQgBEEETRtBBEEQQcSrwAAQbSADQaQBaikCACENIAMoAgghBCADKAIMIgsgAykCnAE3AgAgC0EIaiANNwIAIANB/AFqIgdBATYCACADIAs2AvgBIAMgBDYC9AEgCCAFQTD8CgAAIANB9AFqIAgQYiAAQQhqIgRBCGogBygCADYCACAEIAMpAvQBNwIADAELIABBADYCECAAQoCAgIDAADcCCCADQeAAahCAAQtBBCEFIAEhBAsgACAENgIAIAAgBWogAjYCACADQbACaiQAC6MOAg9/An4jAEHQAmsiAyQAIAMgAjYCjAIgAyABNgKIAiADQSk2AoQCIANB0LnAADYCgAIgA0GB0gA7AfwBIANCqYCAgBA3AvQBIANBgdAAOwHwASADQqiAgIAQNwLoASADQdwAaiIGIANB6AFqIAEgAhBNIAMoAlwhBAJAAkACQAJAAkACQCADKAJkQYCAxABGDQAgBiAEIAMoAmAQMiADKAJgIQQgAygCXCIFRQ0AIAYgBSAEECIgAygCXCEEIAMoAmQiBUGAgICAeEYNACADKAJgIQcgAyADKQJoIhI3AowBIAMgBTYCiAEgBiADQfQBaiAEIAcQQSADKAJcIQQgAygCZEGAgMQARw0BIANBiAFqEOgBCyAEDQIgA0HoAWoiBiABIAIQGSADKALoASEEIAMoAvABIgJBgICAgHhGDQIgAygC7AEhASADIAMpAvQBIhI3AmAgAyACNgJcIAYgBCABEBEgAygC6AEhBCADKALwASIBQYCAgIB4RwRAIAMoAuwBIQcgAyADKQL0ASITNwLsASADIAE2AugBIBNC/////w9WDQIgBhCeAUEAIQQLIANB3ABqEJ8BDAILIAMoAmAhB0EMEO0BIgIgEjcCBCACIAU2AgAgAq0hEkGAgICAeCECCyADIBM3AvgBIAMgATYC9AEgAyASNwLsASADIAI2AugBIANB3ABqIAQgBxA2IAMoAmAhBCADKAJcIghFBEAgA0HoAWoQuAEMAQtBBCEKIANBnAFqIANB7AFqIgFBEGooAgA2AgAgA0GUAWogAUEIaikCADcCACADIAEpAgA3AowBIAMgAjYCiAEgA0EANgK0AiADQoCAgIDAADcCrAIgA0HkAGohDyADQeAAaiEJIANB9AFqIQxBBCEGIAQhBSAIIQECfwJAA0AgBQRAIANB6AFqIhAgASAFEBYgAygC6AEhAgJAIAMoAvABIg5BA0cEQCADKALsASEHIAlBEGoiDSAMQRBqKAIANgIAIAlBCGoiESAMQQhqKQIANwIAIAkgDCkCADcCACADIA42AlwgECACIAcQNiADKALsASECIAMoAugBIgcNASAPEOEBCyACRQ0DIANBrAJqEJoBIAIMBAsgA0HIAmoiBSANKAIANgIAIANBwAJqIg0gESkCADcDACADIAkpAgA3A7gCIAMoAqwCIAtGBEAgA0GsAmoQlgEgAygCsAIhBgsgBiAKaiIBQQRrIA42AgAgASADKQO4AjcCACABQQhqIA0pAwA3AgAgAUEQaiAFKAIANgIAIAMgC0EBaiILNgK0AiAKQRhqIQogAiEFIAchAQwBCwtBACEFCyADKQKwAiESIAEgAygCrAIiAkGAgICAeEYNABogAyACNgLoASADIBI3AuwBIBJC/////x9YBEBBAyEEIBJCgICAgBBaBEAgAyASQiCIp0EBayICNgLwASADQagBaiASpyACQRhsaiICQQxqKQIANwMAIANBsAFqIAJBFGooAgA2AgAgAyACKQIENwOgASACKAIAIQQLIANB3AFqIANBmAFqKQIANwIAIANB1AFqIANBkAFqKQIANwIAIANBwAFqIANBqAFqKQMANwMAIANByAFqIANBsAFqKAIANgIAIAMgAykCiAE3AswBIAMgAykDoAE3A7gBIANB6AFqEJoBIARBBEcNAyABIQQMAgtBFBDtASIBIAQ2AhAgASAINgIMIAFBLzYCCCABQeevwAA2AgQgAUGAgICAeDYCACADQegBahCaASABCyEEIANBiAFqELgBCyAAQQU2AgggACAENgIADAELIANBCGogA0G4AWoiBkEs/AoAACADIAQ2AgQgA0GIAWogASAFEEUgAygCiAEhAgJAAkACQCADLQCQASIHQQJGBEAgAg0DIAMoAgghAiADQTRqIAZBBHJBKPwKAABBABD0AQwBCyADQegBaiACIAMoAowBIgQQDyADKALoASEBIAMoAvABIghBBUYEQCABDQJBFBDtASIBIAQ2AhAgASACNgIMIAFBLTYCCCABQbqvwAA2AgQgAUGAgICAeDYCACABIQIMAwsgAygC7AEhBSADQdwAaiADQfQBakEs/AoAAEHkABDtASICIANBBGpBMPwKAAAgAiAINgIwIAJBNGogA0HcAGpBLPwKAAAgAiAHOgBgQQQhBAsgACACNgIMIAAgBDYCCCAAIAU2AgQgACABNgIAIABBEGogA0E0akEo/AoAAAwCCyADQaACaiICIAEoAghBL2oQpwEgAkG6r8AAQeevwAAQrAEgAkHkrMAAQeaswAAQrAEgAiABKAIEIAEoAggQ9QEgASkCDCESQRQQ7QEiAiASNwIMIAJBCGogA0GoAmooAgA2AgAgAiADKQKgAjcCACABENUBCyAAQQU2AgggACACNgIAIANBBGoQvwELIANB0AJqJAALzwoCBn8CfiMAQYACayIDJAAgA0H4AGoiByABIAIQGSADKAJ4IQQCQAJAAkACQAJAAkACfwJAAkACQAJAAkAgAygCgAEiBUGAgICAeEcEQCADKAJ8IQYgAyADKQKEASIJNwJ8IAMgBTYCeCAJQv////8PVg0BIAcQnwFBACEECyADQQg2AswBIAMgBDYCxAEMAQsgAyAFNgJAIAMgCTcCRCADQfgAaiAEIAYQESADKAJ4IQQCQAJAIAMoAoABIgVBgICAgHhGBEAgA0EINgLMASADIAQ2AsQBDAELIAMoAnwhBiADIAMpAoQBIgo3AnwgAyAFNgJ4IApCgICAgBBUDQEgA0EINgLMAUEAIQQgA0EANgLEASADQfgAahCeAQsgA0FAaxCfAQwB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BwwDCyAAQQM2AgggACAENgIADAMLDAELQQAhBwsgAygCLCEIIANBgcwAOwEwIANCpoCAgBA3AiggA0EEaiADQShqIAQgCBBNQYCAxAAhBiADKAIEIQECfyADQTxqIAMoAgwiDEGAgMQARg0AGiADQQRqIAEgAygCCBBYIAMoAgQiAUUEQCADKAIIIQEgA0E8agwBCyADIAw2AjwgAygCDCEGIAMoAgghCSADQThqCyAGNgIAIAMCfiADKAI8QYCAxABGBEACQCABDQAgA0EEaiIGIAQgCBA2IAMoAgghASADKAIEIgRFDQAgBiAEIAEQJSADKAIEIQFBgYCAgHggAygCDCIEIARBgYCAgHhMGyIEQYGAgIB4Rg0AIAMoAgghCSADKQIQDAILIABBAzYCCCAAIAE2AgAMAgtBgICAgHghBCADNQI4CyINNwIIIAMgBDYCBCAEQYCAgIB4RiANQv////8PVnJFBEBBFBDtASIBIAI2AhAgASAFNgIMIAFBFzYCCCABQciwwAA2AgQgAUGAgICAeDYCACAAQQM2AgggACABNgIAIANBBGoQ4QEMAQsgACADKQIENwIQIAAgBzoAHCAAIAo2AgwgACALNgIIIAAgCTYCBCAAIAE2AgAgAEEYaiADQQxqKAIANgIACyADQUBrJAAL5AYBB38jAEHAAWsiAyQAIANC4ICAgBA3AoABIANBgcABOwGIASADQThqIANBgAFqIAEgAhBNIAMoAjghBAJAIAMoAkBBgIDEAEYEQCAAQYCAgIB4NgIIIAAgBDYCAAwBCyADKAI8IQYgA0EANgI0IAMgBDYCLCADIAQgBmo2AjADQAJAIANBIGogA0EsahByAkAgAygCJCIHQeAARwRAIAdBgIDEAEcNAUEUEO0BIgQgAjYCECAEIAE2AgwgBEEaNgIIIARBnLjAADYCBCAEQYCAgIB4NgIAIABBgICAgHg2AgggACAENgIADAQLIAVBAXFFDQELIAdB3ABGIQUMAQsLIANBGGogBCAGIAMoAiAiB0G4uMAAEIwBIAMoAhwhAiADKAIYIQFBACEFIANBEGpBAEEBQQFB1KvAABBtIANBADYCeCADIAMpAxA3AnAgA0GAAWogASACQci4wABBAhASA0AgA0E4aiADQYABahAtIAMoAjhBAUdFBEAgASAFaiEIIAMoAkAhBSAD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CyAEDQQLIAAgAykCDDcCCCAAIAI2AgQgACABNgIAIABBEGogA0EUaigCADYCAAwECyADQShqIgIgC0EQaigCADYCACADQSBqIgggC0EIaikCADcDACADIAspAgA3AxggAygCDCAJRgRAIANBDGoQlgEgAygCECEMCyAKIAxqIgFBBGsgBjYCACABIAMpAxg3AgAgAUEIaiAIKQMANwIAIAFBEGogAigCADYCACADIAlBAWoiCTYCFCAKQRhqIQogBCECIAUhAQwBCwsgACADKQIMNwIIIABBADYCBCAAIAE2AgAgAEEQaiADQRRqKAIANgIADAELIABBgICAgHg2AgggACAENgIAIANBDGoQnwELIANB4ABqJAAL/gUBBX8gAEEIayIBIABBBGsoAgAiA0F4cSIAaiECAkACQCADQQFxDQAgA0ECcUUNASABKAIAIgMgAGohACABIANrIgFBqMfAACgCAEYEQCACKAIEQQNxQQNHDQFBoMfAACAANgIAIAIgAigCBEF+cTYCBCABIABBAXI2AgQgAiAANgIADwsgASADEDALAkACQAJAAkACQCACKAIEIgNBAnFFBEAgAkGsx8AAKAIARg0CIAJBqMfAACgCAEYNAyACIANBeHEiAhAwIAEgACACaiIAQQFyNgIEIAAgAWogADYCACABQajHwAAoAgBHDQFBoMfAACAANgIADwsgAiADQX5xNgIEIAEgAEEBcjYCBCAAIAFqIAA2AgALIABBgAJJDQIgASAAEDdBACEBQcDHwABBwMfAACgCAEEBayIANgIAIAANBEGIxcAAKAIAIgAEQANAIAFBAWohASAAKAIIIgANAAsLQcDHwABB/x8gASABQf8fTRs2AgAPC0Gsx8AAIAE2AgBBpMfAAEGkx8AAKAIAIABqIgA2AgAgASAAQQFyNgIEQajHwAAoAgAgAUYEQEGgx8AAQQA2AgBBqMfAAEEANgIACyAAQbjHwAAoAgAiA00NA0Gsx8AAKAIAIgJFDQNBACEAQaTHwAAoAgAiBEEpSQ0CQYDFwAAhAQNAIAIgASgCACIFTwRAIAIgBSABKAIEakkNBAsgASgCCCEBDAALAAtBqMfAACABNgIAQaDHwABBoMfAACgCACAAaiIANgIAIAEgAEEBcjYCBCAAIAFqIAA2AgAPCyAAQfgBcUGQxcAAaiECAn9B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AWshBSACrSADQgp+fCEDDAALAAsgACADNwMIQQAMAQsgAEEBOgABQQELOgAAIAZBIGokAAu6BAEIfyMAQRBrIgMkACADIAE2AgQgAyAANgIAIANCoICAgA43AggCfwJAAkACQCACKAIQIgkEQCACKAIUIgANAQwCCyACKAIMIgBFDQEgAigCCCIBIABBA3RqIQQgAEEBa0H/////AXFBAWohBiACKAIAIQADQAJAIABBBGooAgAiBUUNACADKAIAIAAoAgAgBSADKAIEKAIMEQQARQ0AQQEMBQtBASABKAIAIAMgAUEEaigCABECAA0EGiAAQQhqIQAgBCABQQhqIgFHDQALDAILIABBGGwhCiAAQQFrQf////8BcUEBaiEGIAIoAgghBCACKAIAIQADQAJAIABBBGooAgAiAUUNACADKAIAIAAoAgAgASADKAIEKAIMEQQARQ0AQQEMBAtBACEHQQAhCAJAAkACQCAFIAlqIgFBCGovAQBBAWsOAgECAAsgAUEKai8BACEIDAELIAQgAUEMaigCAEEDdGovAQQhCAsCQAJAAkAgAS8BAEEBaw4CAQIACyABQQJqLwEAIQcMAQsgBCABQQRqKAIAQQN0ai8BBCEHCyADIAc7AQ4gAyAIOwEMIAMgAUEUaigCADYCCEEBIAQgAUEQaigCAEEDdGoiASgCACADIAEoAgQRAgANAxogAEEIaiEAIAVBGGoiBSAKRw0ACwwBCwsCQCAGIAIoAgRPDQAgAygCACACKAIAIAZBA3RqIgAoAgAgACgCBCADKAIEKAIMEQQARQ0AQQEMAQtBAAsgA0EQaiQAC64EAgd/AX4gACgCCCIGQYCAgAFxIgpBFXYgBGohCQJAIAZBgICABHFFBEBBACEBDAELIAIEQCABIQUgAiEIA0AgByAFLAAAQb9/SmohByAFQQFqIQUgCEEBayIIDQALCyAHIAlqIQkLQStBgIDEACAKGyEKAkAgAC8BDCIIIAlLBEACQAJAIAZBgICACHFFBEAgCCAJayEJQQAhBUEAIQgCQAJAAkAgBkEddkEDcUEBaw4DAAEAAgsgCSEIDAELIAlB/v8DcUEBdiEICyAGQf///wBxIQsgACgCBCEGIAAoAgAhAANAIAVB//8DcSAIQf//A3FPDQJBASEHIAVBAWohBSAAIAsgBigCEBECAEUNAAsMBAsgACAAKQIIIgynQYCAgP95cUGwgICAAnI2AghBASEHIAAoAgAiBiAAKAIEIgsgCiABIAIQqwENA0EAIQUgCCAJa0H//wNxIQEDQCAFQf//A3EgAU8NAiAFQQFqIQUgBkEwIAsoAhARAgBFDQALDAMLQQEhByAAIAYgCiABIAIQqwENAiAAIAMgBCAGKAIMEQQADQIgCSAIa0H//wNxIQFBACEFA0AgASAFQf//A3FNBEBBAA8LIAVBAWohBSAAIAsgBigCEBECAEUNAAsMAgsgBiADIAQgCygCDBEEAA0BIAAgDDcCCEEADwtBASEHIAAoAgAiBSAAKAIEIgAgCiABIAIQqwENACAFIAMgBCAAKAIMEQQAIQcLIAcLjwQBBn8jAEGAAWsiAyQAIANBxABqIAEgAhAyIAMoAkghAgJAIAMoAkQiAUUEQCAAQYCAgIB4NgIIIAAgAjYCAAwBCyADQQA2AgwgA0KAgICAwAA3AgQgA0HMAGohCANAAkAgAkUNACADQcQAaiABIAIQECADKAJEIQQCQAJAAkACQAJAIAMoAkxBCEYEQCAERQ0EIABBgICAgHg2AgggACAENgIADAELIAMoAkghASADQRBqIAhBNPwKAAAgA0HEAGogBCABEDYgAygCSCECAkAgAygCRCIERQRAIABBgICAgHg2AgggACACNgIADAELIANBxABqIAQgAhAjIAMoAkQhASADLQBMIgdBAkcNAyABRQ0CIABBgICAgHg2AgggACABNgIACyADQRBqEI8BCyADQQRqEOgBDAYLQQAhBUEAEPQBQQAhByAEIQEMAgsgAy0ATSEFIAMoAkghAgwBC0EAEPQBIAIhBgwBCyAHQQFxIgQgAnIEQCADIAVBAXE6AHkgAyAEOgB4IANBxABqIgQgA0EQakE0/AoAACADQQRqIAQQogEMAgsgA0EAOgB4IAMgBUEBcSIEOgB5IANBxABqIgUgA0EQakE0/AoAACADQQRqIAUQogEgBA0BCwsgACADKQIENwIIIAAgBjYCBCAAIAE2AgAgAEEQaiADQQxqKAIANgIACyADQYABaiQAC74EAQZ/IwBB0ABrIgMkACADEEggA0GBzAA7ASggA0KmgICAEDcDICADQThqIgYgA0EgaiABIAIQTSADKAI4IQQCQAJ/AkACQCADKAJAIgdBgIDEAEcE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CjcDACAFIAk3AwggBSgCAEEBcUUNAQwCCyAEIAEoAhQgASgCGBBbDQELQYCAxAAhBCAHIQYgAiEHIAMhCAsgACAINgIEIAAgBzYCACAGIAQQ7gEgBUEgaiQAC7cBAgJ/AX4jAEEgayIDJAAgA0EMaiABIAIQJSADKAIMIQICQCADKAIUIgFBgICAgHhGBEAgAEGAgICAeDYCCAwBCyADKAIQIQQgAyADKQIYIgU3AhAgAyABNgIMIABBCGohASAFQoCAgIAQWgRAIAEgAykCDDcCACAAIAQ2AgQgAUEIaiADQRRqKAIANgIADAELIAFBgICAgHg2AgAgA0EMahCkAUEAIQILIAAgAjYCACADQSBqJAALmQEBA38jAEHgAGsiAyQAAn8CQCACQYABTwRAIANBADYCECADQQhqIAIgA0EQahCVASADKAIIIQIgAygCDCIEIAFPDQEgBEEBRwRAIANBIGoiBSAAIAEgAiAEEBIgA0EUaiAFEC0gAygCFAwDCyACLQAAIAAgARAzDAILIAIgACABEDMMAQsgAiAEIAAgARDAAQsgA0HgAGokAAu2AQIEfwF+IwBBIGsiAyQAIANBDGoiBSABIAIQDiADKAIMIQQCQCADKAIUIgZBgICAgHhGBEAgBEUEQCADQQE6AAwgACAFIAEgAhAMDAILIABBgICAgHg2AgggACAENgIADAELIAMoAhAhAiADKQIYIQdBEBDtASIBIAc3AgggASAGNgIEIAFBBDYCACAAQQE2AhAgACABNgIMIABBATYCCCAAIAI2AgQgACAENgIACyADQSBqJAALsQEBA38jAEEQayIEJAAgBCABNgIIIAQgASACajYCDAJAAkAgBEEIahCmASIDQYCAxABGDQAgAxBhDQAgA0H8AEYgA0EmayIFQRVNQQBBASAFdEGNgIABcRtyDQBBFBDtASIDIAI2AhAgAyABNgIMIANBFTYCCCADQfm6wAA2AgQgA0GAgICAeDYCACAAIAM2AgQgAEEANgIADAELIAAgAjYCBCAAIAE2AgALIARBEGokAAuZAQECfwJAIABBCWsiAUEYTwRAQQAhASAAQYABSQ0BAkAgAEEIdiICBEAgAkEwRwRAIAJBIEYNAiACQRZHDQQgAEGALUYhAQwECyAAQYDgAEYhAQwDCyAAQf8BcUGGvMAAai0AACEBDAILIABB/wFxQYa8wABqLQAAQQJxQQF2IQEMAQtBAEGfgIAEIAF2QQFxayEBCyABQQFxC5gBAQN/IwBBIGsiAiQAA0ACQCACQQRqIAEQUSACKAIEQQZGDQAgACgCCCIDIAAoAgBGBEAgAkEUaiABEG8gACACKAIUQQFqIgRBfyAEGxC8AQsgACADQQFqNgIIIAAoAgQgA0EEdGoiAyACKQIENwIAIANBCGogAkEMaikCADcCAAwBCwsgAkEEahDgASABEIABIAJBIGokAAucAQECfyMAQRBrIgMkAAJAIAEoAgAEQAJAIAEoAgQiAiABKAIMRwRAIAEgAkEQajYCBCADQQhqIAJBDGooAgA2AgAgAyACKQIENwMAIAIoAgAiAkEGRw0BCyABEOwBIAFBADYCAEEGIQILIAAgAjYCACAAIAMpAwA3AgQgAEEMaiADQQhqKAIANgIADAELIABBBjYCAAsgA0EQaiQAC48BAQF/IwBBIGsiAiQAAn8gACgCAEGAgICAeEcEQCABKAIAIAAoAgQgACgCCCABKAIEKAIMEQQADAELIAJBEGogACgCDCgCACIAQQhqKQIANwMAIAJBGGogAEEQaikCADcDACACIAApAgA3AwggASgCBCEAIAIoAgwaIAEoAgAgACACQQhqECALIAJBIGokAAuPAQECfyMAQRBrIgMkACADIAE2AgggAyABIAJqNgIMAkAgA0EIahCmASIEQYCAxABHBEAgAyABIAICf0EBIARBgAFJDQAaQQIgBEGAEEkNABpBA0EEIARBgIAESRsLQbitwAAQhwEgACADKQMANwIADAELIABBADYCAEGAgMQAIQQLIAAgBDYCCCADQRBqJAALjgEBAn8jAEEQayIEJAACfyADKAIEBEAgAygCCCIFRQRAIARBCGogASACEMIBIAQoAgghAyAEKAIMDAILIAMoAgAgBSABIAIQFSEDIAIMAQsgBCABIAIQwgEgBCgCACEDIAQoAgQLIQUgACADIAEgAxs2AgQgACADRTYCACAAIAUgAiADGzYCCCAEQRBqJAALmgEBAn8jAEEQayIEJAAgBCABKAIgIAEoAiQgAiADEHsCQAJAAkAgBCgCACICRQRAIAQoAgQhAQwBCyAEKAIMIQMgBCgCCCEFIAQgASACIAQoAgQQcyAEKAIEIQEgBCgCACICDQELIABBADYCACAAIAE2AgQMAQsgACADNgIMIAAgBTYCCCAAIAE2AgQgACACNgIACyAEQRBqJAALkAEBA38jAEEgayIGJAACQCABBEAgBkEUaiIHIAEgAyAEIAUgAigCEBEGACAAIAYoAhwiASAGKAIUSQR/IAZBCGogByABQQRBBBBHIAYoAggiAUGBgICAeEcNAiAGKAIcBSABCzYCBCAAIAYoAhg2AgAgBkEgaiQADwsQiQIACyAGKAIMIQggAUHEu8AAENsBAAuAAQIBfgF/AkACQCABrSADrX4iBEIgiKcNACAEpyIBIAJBAWtqIgUgAUkNACAFQQAgAmtxIgEgA0EIamoiAyABSQ0BQYCAgIB4IAJrIANPBEAgACABNgIIIAAgAzYCBCAAIAI2AgAPCyAAQQA2AgAPCyAAQQA2AgAPCyAAQQA2AgALkQEBAX8jAEFAaiIDJAAgA0IANwM4IANBOGogACgCACUBEAYgAyADKAI8IgA2AjQgAyADKAI4NgIwIAMgADYCLCADQQg2AiggA0ECNgIQIANBnMPAADYCDCADQgE3AhggAyADQSxqNgIkIAMgA0EkajYCFCABIAIgA0EMahAgIAMoAiwgAygCMBD7ASADQUBrJAALTwEDfiAAIAFC/////w+DIgNCCn4iBEIAIgMgAUIgiEIKfnwiAUIghnwiBTcDACAAIAQgBVatIAEgA1StQiCGIAFCIIiEfCACQgp+fDcDCAt8AQF/IwBBQGoiBSQAIAUgATYCDCAFIAA2AgggBSADNgIUIAUgAjYCECAFQQI2AhwgBUGQmcAANgIYIAVCAjcCJCAFIAVBEGqtQoCAgIDgAIQ3AzggBSAFQQhqrUKAgICA8ACENwMwIAUgBUEwajYCICAFQRhqIAQQuQEAC2gCAX8BfgJAAkAgAiADakEBa0EAIAJrca0gAa1+IgZCIIhQRQ0AIAanIgNBgICAgHggAmtLDQAgA0UEQEEAIQEMAgsgAyACIgUQywEiAg0BCyAFIAQQ2wEACyAAIAI2AgQgACABNgIAC3UBAn8gASACp3EhA0EIIQQDfyAAIANqKQAAQoCBgoSIkKDAgH+DIgJQBH8gAyAEaiABcSEDIARBCGohBAwBBSAAIAJ6p0EDdiADaiABcSIDaiwAAEEATgR/IAApAwBCgIGChIiQoMCAf4N6p0EDdgUgAwsLCwt1AQF/IAEoAiwgASgCJGtBBHZBACABKAIgGyABKAIcIAEoAhRrQQR2QQAgASgCEBtqIQICfwJAIAEoAgBFDQAgASgCDCABKAIERg0AIAAgAjYCAEEAIQJBBAwBCyAAQQE2AgQgACACNgIAQQgLIABqIAI2AgALgAEBAn8jAEEQayIEJAAgBCABKAIAIAEoAgQgAiADEHsCQCAEKAIARQRAIAQoAgQiBUUEQCAAIAEoAgggASgCDCACIAMQe0EAEPQBDAILIABBADYCACAAIAU2AgQMAQsgACAEKQIANwIAIABBCGogBEEIaikCADcCAAsgBEEQaiQAC3cBBH8jAEEQayICJAAgAiABKAIANgIIIAIgASgCBCIDNgIAIAIgAzYCBCAAIAEoAggiARC8ASAAKAIIIQQgAUEEdCIFBEAgACgCBCAEQQR0aiADIAX8CgAACyAAIAEgBGo2AgggAiADNgIMIAIQnAEgAkEQaiQAC3YBBX8jAEEQayICJAAgASgCACEEIAEoAgQhBSACQQhqIAEQSQJAIAIoAghBAXFFBEBBgIDEACEDDAELIAIoAgwhAyABIAEoAgAgASgCCCIGIAVqIAQgASgCBGprajYCCAsgACADNgIEIAAgBjYCACACQRBqJAALcAECfyMAQRBrIgQkACAEQQhqIgUgASACIAMQXCAEKAIMIQMCQAJAIAQoAggiAQRAIAUgASADEDIgBCgCDCEDIAQoAggiAQ0BCyAAQQA2AgAgACADNgIEDAELIAAgAzYCBCAAIAE2AgALIARBEGokAAtuAQJ/IwBBEGsiAyQAIANBCGoiBCABIAIQYCADKAIMIQICQAJAIAMoAggiAQRAIAQgASACEDYgAygCDCECIAMoAggiAQ0BCyAAQQA2AgAgACACNgIEDAELIAAgAjYCBCAAIAE2AgALIANBEGokAAttAQN/IwBBEGsiAiQAAkACQAJAIAAoAggiA0UNACAAKAIEIANBBHRqIgNBEGsiBEUNACAEKAIARQ0BCyACQQRqIAEQgQEgAkEANgIAIAAgAkHwtMAAEJEBDAELIANBDGsgARCCAQsgAkEQaiQAC20BA38jAEEQayIDJAACQCAAIAEoAggiBCABKAIASQR/IANBCGogASAEQQFBARBHIAMoAggiBEGBgICAeEcNASABKAIIBSAECzYCBCAA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bGoiACABKQIANwIAIABBCGogAUEIaigCADYCAAs5ACABIAIQVSAAAn9BASABQYABSQ0AGkECIAFBgBBJDQAaQQNBBCABQYCABEkbCzYCBCAAIAI2AgALSwECfyMAQRBrIgEkACABQQhqIAAgACgCAEEBQQRBGBBCIAEoAggiAEGBgICAeEcEQCABKAIMIQIgAEGorcAAENsBAAsgAUEQaiQAC0gBAn8jAEEQayICJAAgAkEIaiAAIAAoAgBBAUEEQQwQQiACKAIIIgBBgYCAgHhHBEAgAigCDCEDIAAgARDbAQALIAJBEGokAAtFAQJ/IAAoAiAgACgCGCIBa0EEdiECA0AgAgRAIAJBAWshAiABEL4BIAFBEGohAQwBCwsgACgCHCAAKAIUEIICIAAQ4wELSAECfyMAQRBrIgUkACAFQQhqIAAgASACIAMgBBBCIAUoAggiAEGBgICAeEcEQCAFKAIMIQYgAEHgvsAAENsBAAsgBUEQaiQAC0EBA38gACgCBCIDQQhqIQEgACgCCCECA0AgAgRAIAJBAWshAiABEOEBIAFBGGohAQwBCwsgACgCACADQQRBGBB4C0QBAX8jAEEgayIDJAAgAyACNgIcIAMgATYCGCADIAI2AhQgA0EIaiADQRRqQazDwAAQdiAAIAMpAwg3AwAgA0EgaiQAC0ABAn8gACgCDCAAKAIEIgFrQQR2IQIDQCACBEAgAkEBayECIAEQiwEgAUEQaiEBDAELCyAAKAIIIAAoAgAQggILQgEBfyMAQSBrIgMkACADQQA2AhAgA0EBNgIEIANCBDcCCCADIAE2AhwgAyAANgIYIAMgA0EYajYCACADIAIQuQEACz4BA38gACgCCCEBIAAoAgQiAyECA0AgAQRAIAFBAWshASACEKQBIAJBDGohAgwBCwsgACgCACADQQRBDBB4Cz4BA38gACgCCCEBIAAoAgQiAyECA0AgAQRAIAFBAWshASACENQBIAJBGGohAgwBCwsgACgCACADQQRBGBB4CzsBAX8DQCACBEAgACgAACEDIAAgASgAADYAACABIAM2AAAgAkEBayECIAFBBGohASAAQQRqIQAMAQsLCzcBAX8jAEEgayICJAAgAkEIaiAAKAIAIAJBFmoQNSABQQFBACACKAIIIAIoAgwQISACQSBqJAALdwEDfyAAKAIIIgMgACgCAEYEQCMAQRBrIgIkACACQQhqIAAgACgCAEEBQQRBOBBCIAIoAggiBEGBgICAeEcEQCACKAIMGiAEQayuwAAQ2wEACyACQRBqJAALIAAoAgQgA0E4bGogAUE4/AoAACAAIANBAWo2AggLegEDfyAAKAIIIgUgACgCAEYEQCMAQRBrIgQkACAEQQhqIAAgACgCAEEBQQRBCBBCIAQoAggiBkGBgICAeEcEQCAEKAIMGiAGIAMQ2wEACyAEQRBqJAALIAAgBUEBajYCCCAAKAIEIAVBA3RqIgAgAjYCBCAAIAE2AgALOwEDfyAAKAIIIQEgACgCBCIDIQIDQCABBEAgAUEBayEBIAIQiwEgAkEQaiECDAELCyAAKAIAIAMQggILOwEDfyAAKAIIIQEgACgCBCIDIQIDQCABBEAgAUEBayEBIAIQpAEgAkEMaiECDAELCyAAKAIAIAMQgQILNAECfyMAQRBrIgEkACABQQhqIAAQSSABKAIIIQAgASgCDCABQRBqJABBgIDEACAAQQFxGws9AgF/AX4jAEEQayICJAAgAkEIaiABQQFBAUHUq8AAEG0gAikDCCEDIABBADYCCCAAIAM3AgAgAkEQaiQAC0MBAX9BFBDtASIEIAI2AhAgBCABNgIMIABBgICAgHg2AgggACAENgIAIARBCGogA0EIaigCADYCACAEIAMpAgA3AgALNwEBfyMAQRBrIgMkACADQQhqIAEgAhArIAMoAgwhASAAIAMoAgg2AgAgACABNgIEIANBEGokAAs1AQF/IAAgAiABayICEEMgACgCCCEDIAIEQCAAKAIEIANqIAEgAvwKAAALIAAgAiADajYCCAs4AAJAIAJBgIDEAEYNACAAIAIgASgCEBECAEUNAEEBDwsgA0UEQEEADwsgACADIAQgASgCDBEEAAs2AQF/IAAgAiABayICEL0BIAAoAgghAyACBEAgACgCBCADaiABIAL8CgAACyAAIAIgA2o2AggLLwACQCABaUEBRyAAQYCAgIB4IAFrS3INACAABEAgACABEMsBIgFFDQELIAEPCwALNAEBfyMAQRBrIgUkACAFQQhqIAMgBBDaASAFKAIMIQMgACABIAIQHCADEM8BIAVBEGokAAs3AQF/IwBBEGsiAyQAIANBCGogASACENkBIAMoAgwhASAAQdOLwABBBBAcIAEQzwEgA0EQaiQACzwBAn8gASgCBCECIAEoAgAhA0EIEA0iAUUEQAALIAEgAjYCBCABIAM2AgAgAEGgwcAANgIEIAAgATYCAAs3AQF/IwBBIGsiASQAIAFBADYCGCABQQE2AgwgAUHoj8AANgIIIAFCBDcCECABQQhqIAAQuQEACzwBAX9BASECAkAgACgCACABEDgNACABKAIAQYC3wABBAiABKAIEKAIMEQQADQAgACgCBCABEDghAgsgAgtCAQF/QRQQ7QEiBSACNgIQIAUgATYCDCAFIAQ2AgggBSADNgIEIAVBgICAgHg2AgAgAEGAgICAeDYCCCAAIAU2AgALPgEBf0EUEO0BIgUgAjYCECAFIAE2AgwgBSAENgIIIAUgAzYCBCAFQYCAgIB4NgIAIABBCDYCCCAAIAU2AgALLQACQCADaUEBRyABQYCAgIB4IANrS3INACAAIAEgAyACEBUiAEUNACAADwsACy8BAX8gACgCCCEBIAAoAgQhAANAIAEEQCABQQFrIQEgABCPASAAQThqIQAMAQsLCywAIAAoAgBBBEcEQCAAEL8BDwsgACgCBCIAEL8BIABBMGoQtwEgAEHkABB9Cy8AIAAoAgBBgICAgHhHBEAgABCfASAAQQxqEJ4BDwsgACgCBCIAEOgBIABBDBB9C/oBAgJ/AX4jAEEQayICJAAgAkEBOwEMIAIgATYCCCACIAA2AgQjAEEQayIBJAAgAkEEaiIAKQIAIQQgASAANgIMIAEgBDcCBCMAQRBrIgAkACABQQRqIgEoAgAiAigCDCEDAkACQAJAAkAgAigCBA4CAAECCyADDQFBASECQQAhAwwCCyADDQAgAigCACICKAIEIQMgAigCACECDAELIABBgICAgHg2AgAgACABNgIMIABBzMHAACABKAIEIAEoAggiAC0ACCAALQAJEFQACyAAIAM2AgQgACACNgIAIABBsMHAACABKAIEIAEoAggiAC0ACCAALQAJEFQACygAIAMgBCABIAIQwQEhASAAIAQgAms2AgQgACACIANqQQAgARs2AgALrwgBCH8jAEEQayIDJAAjAEGQAWsiAiQAIAJBKGogACABEJsBIAIoAiwhByACKAIoIQgCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAQfDDwAAtAABBAWsOAwQDAQALQfDDwABBAjoAAEH8w8AAKAIAQf////8HcQRAQcTHwAAoAgANAgtB9MPAACgCAA0HQfDDwABBAzoAAEH4w8AAQQE2AgALIAJBIGogCCAHEC8gAkHIAGogAigCICIBIAIoAiQiBBAiIAIoAkghACACKAJQQYCAgIB4Rw0DIABFDQQgAkGIAWogAEEQaigCADYCACACQYABaiAAQQhqKQIANwMAIAIgACkCADcDeCACQTBqIAEgBCACQfgAahApIAAQhwIMBQsgAkEANgKIASACQQE2AnwgAkH4wMAANgJ4IAJCBDcCgAEgAkH4AGpBgMHAABC5AQALIAJBADYCiAEgAkEBNgJ8IAJB6I7AADYCeAwICyACQQA2AogBIAJBATYCfCACQaiOwAA2AngMBwsgAkHQAGohBSACKAJYIQYgAkEYaiAAIAIoAkwiCRAvAkAgAigCHARAIAIgCTYCiAEgAiAANgKEASACQRU2AoABIAJB+brAADYCfCACQYCAgIB4NgJ4IAJBMGogASAEIAJB+ABqECkMAQsgBgRAIAJBPGogBUEIaigCADYCACACQYGAgIB4NgIwIAIgBSkCADcCNAwFCyACQTBqQeytwABBDhCEASACQYCAgIB4NgI8CyAFEOgBDAELIAIgBDYCiAEgAiABNgKEASACQRU2AoABIAJB+brAADYCfCACQYCAgIB4NgJ4IAJBMGogASAEIAJB+ABqECkLIAIoAjBBgYCAgHhGDQEgAkHYAGogAkFAaykCADcDACACQdAAaiACQThqKQIANwMAIAIgAikCMDcDSCACQQI2AnQgAiACQcgAajYCcCACQgE3AoQBIAJBATYCfCACQai+wAA2AnggAiACQfAAajYCgAEgAkHkAGogAkH4AGoQPiACQRBqIAIoAmgiASACKAJsENoBIAIoAhQhACACKAJkIAEQ+QEgAigCSCIBQYCAgIB4RwRAIAEgAigCTBD5AQsgAigCVCIBQYCAgIB4RwRAIAEgAigCWBD5AQtBASEBDAILAAsgAigCOCEEIAIoAjRBACEBIAJBADYCeCACQQhqIAJBNGoiBiACQfgAahB6IAIoAgwhACACKAIIQQFxDQEgBhC2ASAEEPoBCyAHIAgQ+QEgAyABNgIIIAMgAEEAIAEbNgIEIANBACAAIAEbNgIAIAJBkAFqJAAMAgsgAiAANgJ4QYCPwABBKyACQfgAakHwjsAAQayPwAAQbAALIAJCBDcCgAEgAkH4AGpB7I3AABC5AQALIAMoAgAgAygCBCADKAIIIANBEGokAAskAQF/IAAoAgAgACgCCCICayABSQRAIAAgAiABQQRBEBCZAQsLJAEBfyAAKAIAIAAoAggiAmsgAUkEQCAAIAIgAUEBQQEQmQELCygAAkACQAJAIAAoAgAOBAEBAQIACyAAQQRqEKQBCw8LIABBBGoQ6AELHQAgAEEYahC4ASAAKAIAQQNHBEAgAEEIahDhAQsLGQEBfyABIANGBH8gACACIAEQiQEFQQELRQsZAQF/IAEgA08EfyACIAAgAxCJAQVBAQtFCx4AIAIEQCACIAEQywEhAQsgACACNgIEIAAgATYCAAslAQF/IAAoAgAiAUGAgICAeHJBgICAgHhHBEAgACgCBCABEH0LCx4AIABFBEAQiQIACyAAIAIgAyAEIAUgASgCEBEJAAscACAARQRAEIkCAAsgACACIAMgBCABKAIQEQUACxwAIABFBEAQiQIACyAAIAIgAyAEIAEoAhARHQALHAAgAEUEQBCJAgALIAAgAiADIAQgASgCEBEfAAscACAARQRAEIkCAAsgACACIAMgBCABKAIQESEACxwAIABFBEAQiQIACyAAIAIgAyAEIAEoAhARBwALGwAgASAAKAIAIgBBBGooAgAgAEEIaigCABATCxUAIAFBCU8EQCABIAAQLA8LIAAQDQsZACAAIAEgAhAcQYIBQYMBIANBAXEbEM8BCxcBAX8gACgCACIBBEAgACgCBCABEH0LCxoAIABFBEAQiQIACyAAIAIgAyABKAIQEQAACxwBAW8gACUBIAElASABEIMBIAIlASACEIMBEAQLIAEBbyADuBAFIQQQKiIDIAQmASAAIAEgAhAcIAMQzwELFQAgACgCBEEFRwRAIABBBGoQvgELCxgAIABFBEAQiQIACyAAIAIgASgCEBECAAscACABKAIAIAAoAgAgACgCBCABKAIEKAIMEQQACxcAIAAoAgAgACgCBBD5ASAAQQxqEKQBCxcAIAAoAgAgAEEEaigCABDiASAAEIcCCxwAIABBADYCECAAQgA3AgggAEKAgICAwAA3AgALFgEBbyAAIAEQACECECoiACACJgEgAAsNACABBEAgACABEH0LCxQAIAAg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fQsNACABQYaYwABBGBATCwwAQdS7wABBMhAKAAsMACAAIAEpAgA3AwALCgAgACgCABDpAQsJACAAQQA2AgALuQEBBH8jAEEgayIEJAACQAJ/QQAgASABIAJqIgJLDQAaQQBBCCACIAAoAgAiAUEBdCIFIAIgBUsbIgIgAkEITRsiBUEASA0AGkEAIQIgBCABBH8gBCABNgIcIAQgACgCBDYCFEEBBUEACzYCGCAEQQhqIAUgBEEUahCKASAEKAIIQQFHDQEgBCgCECEAIAQoAgwLIAAhByADENsBAAsgBCgCDCEBIAAgBTYCACAAIAE2AgQgBEEgaiQAC2YBAX8jAEEwayIEJAAgBCABNgIEIAQgADYCACAEQQI2AgwgBCADNgIIIARCAjcCFCAEIARBBGqtQoCAgIAwhDcDKCAEIAStQoCAgIAwhDcDICAEIARBIGo2AhAgBEEIaiACELkBAAsLjUIKAEGAgMAACwv//////////wAAEABBmIDAAAv1D2xpYnJhcnkvYWxsb2Mvc3JjL2ZtdC5ycwBWOlwuY2FjaGVcY2FyZ29ccmVnaXN0cnlcc3JjXGluZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmXHdhc20tYmluZGdlbi0wLjIuMTAwXHNyY1xjb252ZXJ0XHNsaWNlcy5ycwB+XC5ydXN0dXBcdG9vbGNoYWluc1xzdGFibGUteDg2XzY0LXBjLXdpbmRvd3MtbXN2Y1xsaWIvcnVzdGxpYi9zcmMvcnVzdFxsaWJyYXJ5L2NvcmUvc3JjL2l0ZXIvdHJhaXRzL2l0ZXJhdG9yLnJzAFY6XC5jYWNoZVxjYXJnb1xnaXRcY2hlY2tvdXRzXGRlbm9fdGFza19zaGVsbC01OTZlMGM0MmFiZDJkZmIzXGMxYTFjZjhcc3JjXHBhcnNlci5ycwB+XC5ydXN0dXBcdG9vbGNoYWluc1xzdGFibGUteDg2XzY0LXBjLXdpbmRvd3MtbXN2Y1xsaWIvcnVzdGxpYi9zcmMvcnVzdFxsaWJyYXJ5L2NvcmUvc3JjL3N0ci9wYXR0ZXJuLnJzAH5cLnJ1c3R1cFx0b29sY2hhaW5zXHN0YWJsZS14ODZfNjQtcGMtd2luZG93cy1tc3ZjXGxpYi9ydXN0bGliL3NyYy9ydXN0XGxpYnJhcnkvYWxsb2Mvc3JjL3N0cmluZy5ycwBsaWJyYXJ5L3N0ZC9zcmMvcGFuaWNraW5nLnJzAGxpYnJhcnkvY29yZS9zcmMvdW5pY29kZS9wcmludGFibGUucnMAflwucnVzdHVwXHRvb2xjaGFpbnNcc3RhYmxlLXg4Nl82NC1wYy13aW5kb3dzLW1zdmNcbGliL3J1c3RsaWIvc3JjL3J1c3RcbGlicmFyeS9hbGxvYy9zcmMvc2xpY2UucnMAL3J1c3QvZGVwcy9oYXNoYnJvd24tMC4xNS40L3NyYy9yYXcvbW9kLnJzAGxpYnJhcnkvY29yZS9zcmMvc3RyL21vZC5ycwB+XC5ydXN0dXBcdG9vbGNoYWluc1xzdGFibGUteDg2XzY0LXBjLXdpbmRvd3MtbXN2Y1xsaWIvcnVzdGxpYi9zcmMvcnVzdFxsaWJyYXJ5L2FsbG9jL3NyYy9yYXdfdmVjL21vZC5ycwAvcnVzdGMvMjk0ODM4ODNlZWQ2OWQ1ZmI0ZGIwMTk2NGNkZjJhZjRkODZlOWNiMi9saWJyYXJ5L2FsbG9jL3NyYy9yYXdfdmVjL21vZC5ycwAvcnVzdC9kZXBzL2RsbWFsbG9jLTAuMi45L3NyYy9kbG1hbGxvYy5ycwBzcmNccnNfbGliXHNyY1xsaWIucnMAVjpcLmNhY2hlXGNhcmdvXHJlZ2lzdHJ5XHNyY1xpbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zlxjb25zb2xlX2Vycm9yX3BhbmljX2hvb2stMC4xLjdcc3JjXGxpYi5ycwBWOlwuY2FjaGVcY2FyZ29ccmVnaXN0cnlcc3JjXGluZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmXHNlcmRlLXdhc20tYmluZGdlbi0wLjYuNVxzcmNcbGliLnJzAFY6XC5jYWNoZVxjYXJnb1xyZWdpc3RyeVxzcmNcaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Zcb25jZV9jZWxsLTEuMjEuNFxzcmNcbGliLnJzAFY6XC5jYWNoZVxjYXJnb1xyZWdpc3RyeVxzcmNcaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2ZcbW9uY2gtMC42LjBcc3JjXGxpYi5ycwB7BBAAYgAAADUAAAAOAAAAaXNBc3luY2VuZHNMaW5lc2VxdWVuY2VhbmRvcnN0ZG91dHN0ZG91dFN0ZGVycm5hbWV2YWx1ZWtpbmR3b3JkZmRDb21tYW5kaW5uZXJyZWRpcmVjdFBpcGVsaW5lbmVnYXRlZG1heWJlRmRvcGlvRmlsZVNlcXVlbmNlU2hlbGxWYXJzaGVsbFZhcnBpcGVsaW5lQm9vbGVhbkxpc3Rib29sZWFuTGlzdHRleHR2YXJpYWJsZXRpbGRlY29tbWFuZHF1b3RlZGJyYWNlaW5wdXRvdXRwdXRjdXJyZW50bmV4dENvbW1hbmRJbm5lclNpbXBsZXNpbXBsZVN1YnNoZWxsc3Vic2hlbGxQaXBlU2VxdWVuY2VQaXBlbGluZUlubmVycGlwZVNlcXVlbmNlZW52VmFyc2FyZ3NpdGVtc292ZXJ3cml0ZWFwcGVuZAAAEwQQAGgAAACVAAAADgAAAE9uY2UgaW5zdGFuY2UgaGFzIHByZXZpb3VzbHkgYmVlbiBwb2lzb25lZAAA/AYQACoAAABvbmUtdGltZSBpbml0aWFsaXphdGlvbiBtYXkgbm90IGJlIHBlcmZvcm1lZCByZWN1cnNpdmVseTAHEAA4AAAAGgAAAAQAAAAEAAAAGwAAAGNhbGxlZCBgUmVzdWx0Ojp1bndyYXAoKWAgb24gYW4gYEVycmAgdmFsdWUA/QMQABYAAAAIAAAAOAAAABwAAAAMAAAABAAAAB0AAAAeAAAAHwAAAGNhcGFjaXR5IG92ZXJmbG93AAAA1AcQABEAAACyAxAAIQAAAC4CAAARAAAAEAIQABwAAADoAQAAFwBBmJDAAAuFAQEAAAAgAAAAYSBmb3JtYXR0aW5nIHRyYWl0IGltcGxlbWVudGF0aW9uIHJldHVybmVkIGFuIGVycm9yIHdoZW4gdGhlIHVuZGVybHlpbmcgc3RyZWFtIGRpZCBub3QAABgAEAAZAAAAigIAAA4AAAAhAAAADAAAAAQAAAAiAAAAIwAAACQAQaiRwAAL7CoBAAAAJQAAAGEgRGlzcGxheSBpbXBsZW1lbnRhdGlvbiByZXR1cm5lZCBhbiBlcnJvciB1bmV4cGVjdGVkbHkAyAEQAGQAAAAOCwAADgAAAEVycm9yCgpTdGFjazoKCgBwAAcALQEBAQIBAgEBSAswFRABZQcCBgICAQQjAR4bWws6CQkBGAQBCQEDAQUrAzsJKhgBIDcBAQEECAQBAwcKAh0BOgEBAQIECAEJAQoCGgECAjkBBAIEAgIDAwEeAgMBCwI5AQQFAQIEARQCFgYBAToBAQIBBAgBBwMKAh4BOwEBAQwBCQEoAQMBNwEBAwUDAQQHAgsCHQE6AQICAQEDAwEEBwILAhwCOQIBAQIECAEJAQoCHQFIAQQBAgMBAQgBUQECBwwIYgECCQsHSQIbAQEBAQE3DgEFAQIFCwEkCQFmBAEGAQICAhkCBAMQBA0BAgIGAQ8BAAMABBwDHQIeAkACAQcIAQILCQEtAwEBdQIiAXYDBAIJAQYD2wICAToBAQcBAQEBAggGCgIBMB8xBDAKBAMmCQwCIAQCBjgBAQIDAQEFOAgCApgDAQ0BBwQBBgEDAsZAAAHDIQADjQFgIAAGaQIABAEKIAJQAgABAwEEARkCBQGXAhoSDQEmCBkLAQEsAzABAgQCAgIBJAFDBgICAgIMAQgBLwEzAQEDAgIFAgEBKgIIAe4BAgEEAQABABAQEAACAAHiAZUFAAMBAgUEKAMEAaUCAARBBQACTwRGCzEEewE2DykBAgIKAzEEAgIHAT0DJAUBCD4BDAI0CQEBCAQCAV8DAgQGAQIBnQEDCBUCOQIBAQEBDAEJAQ4HAwVDAQIGAQECAQEDBAMBAQ4CVQgCAwEBFwFRAQIGAQECAQECAQLrAQIEBgIBAhsCVQgCAQECagEBAQIIZQEBAQIEAQUACQEC9QEKBAQBkAQCAgQBIAooBgIECAEJBgIDLg0BAgAHAQYBAVIWAgcBAgECegYDAQECAQcBAUgCAwEBAQACCwI0BQUDFwEAAQYPAAwDAwAFOwcAAT8EUQELAgACAC4CFwAFAwYICAIHHgSUAwA3BDIIAQ4BFgUBDwAHARECBwECAQVkAaAHAAE9BAAE/gIAB20HAGCA8AAwMTIzNDU2Nzg5YWJjZGVmUmVmQ2VsbCBhbHJlYWR5IGJvcnJvd2VkY2FsbGVkIGBPcHRpb246OnVud3JhcCgpYCBvbiBhIGBOb25lYCB2YWx1ZWluZGV4IG91dCBvZiBib3VuZHM6IHRoZSBsZW4gaXMgIGJ1dCB0aGUgaW5kZXggaXMgAEkMEAAgAAAAaQwQABIAAAA6IAAAAQAAAAAAAACMDBAAAgAAAAAAAAAMAAAABAAA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AAsAAAB8Jg0KCkV4cGVjdGVkIGNvbW1hbmQgZm9sbG93aW5nIGJvb2xlYW4gb3BlcmF0b3IuQ2Fubm90IHNldCBtdWx0aXBsZSBlbnZpcm9ubWVudCB2YXJpYWJsZXMgd2hlbiB0aGVyZSBpcyBubyBmb2xsb3dpbmcgY29tbWFuZC5FeHBlY3RlZCBjb21tYW5kIGZvbGxvd2luZyBwaXBlbGluZSBvcGVyYXRvci5NdWx0aXBsZSByZWRpcmVjdHMgYXJlIGN1cnJlbnRseSBub3Qgc3VwcG9ydGVkLgAACwEQAFUAAAA+AgAACAAAAFVuc3VwcG9ydGVkIHJlc2VydmVkIHdvcmQuIT4+Pnw+RXhwZWN0ZWQgcmVkaXJlY3QgcGF0aC5JbnZhbGlkIGVudmlyb25tZW50IHZhcmlhYmxlIHZhbHVlLkV4cGVjdGVkIGNsb3Npbmcgc2luZ2xlIHF1b3RlLgsBEABVAAAAOQMAACQAAAALARAAVQAAADsDAAAgAAAARmFpbGVkIHBhcnNpbmcgY29tbWFuZCBzdWJzdGl0dXRpb24gaW4gZG91YmxlIHF1b3RlZCBzdHJpbmcuCwEQAFUAAABAAwAAFwAAAAsBEABVAAAARQMAACQAAAALARAAVQAAAEcDAAAgAAAARmFpbGVkIHBhcnNpbmcgYmFja3RpY2tzIGluIGRvdWJsZSBxdW90ZWQgc3RyaW5nLgAAAAsBEABVAAAATAMAABcAAAALARAAVQAAAFEDAAAhAAAACwEQAFUAAABUAwAAEQAAAEV4cGVjdGVkIGNsb3NpbmcgZG91YmxlIHF1b3RlLkZhaWxlZCBwYXJzaW5nIHdpdGhpbiBkb3VibGUgcXVvdGVzLiBVbmV4cGVjdGVkIGNoYXJhY3RlcjogAAAArhkQADsAAABDb3VsZCBub3QgZGV0ZXJtaW5lIGV4cHJlc3Npb24uRmFpbGVkIHBhcnNpbmcgd2l0aGluIGRvdWJsZSBxdW90ZXMuIBMaEAAlAAAAJCMqJCBpcyBjdXJyZW50bHkgbm90IHN1cHBvcnRlZC5DGhAAAQAAAEQaEAAcAAAACwEQAFUAAACrAwAADgAAAFwNClwKJD8ACwEQAFUAAAAFBAAAEgAAAAsBEABVAAAA+AMAABYAAABVbnN1cHBvcnRlZCB0aWxkZSBl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");
    var wasmModule = new WebAssembly.Module(bytes);
    var wasm = new WebAssembly.Instance(wasmModule, {
      "./rs_lib.internal.js": imports
    });
    __exportStar(require_rs_lib_internal2(), exports2);
    var rs_lib_internal_js_1 = require_rs_lib_internal2();
    (0, rs_lib_internal_js_1.__wbg_set_wasm)(wasm.exports);
    wasm.exports.__wbindgen_start();
    function base64decode(b64) {
      const binString = atob(b64);
      const size = binString.length;
      const bytes2 = new Uint8Array(size);
      for (let i = 0; i < size; i++) {
        bytes2[i] = binString.charCodeAt(i);
      }
      return bytes2;
    }
  }
});

// npm/script/deps/jsr.io/@david/shell/0.6.0/src/streams.js
var require_streams = __commonJS({
  "npm/script/deps/jsr.io/@david/shell/0.6.0/src/streams.js"(exports2) {
    "use strict";
    var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) {
      if (k2 === void 0)
        k2 = k;
      var desc = Object.getOwnPropertyDescriptor(m, k);
      if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m[k];
        } };
      }
      Object.defineProperty(o, k2, desc);
    } : function(o, m, k, k2) {
      if (k2 === void 0)
        k2 = k;
      o[k2] = m[k];
    });
    var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) {
      Object.defineProperty(o, "default", { enumerable: true, value: v });
    } : function(o, v) {
      o["default"] = v;
    });
    var __importStar2 = exports2 && exports2.__importStar || /* @__PURE__ */ function() {
      var ownKeys = function(o) {
        ownKeys = Object.getOwnPropertyNames || function(o2) {
          var ar = [];
          for (var k in o2)
            if (Object.prototype.hasOwnProperty.call(o2, k))
              ar[ar.length] = k;
          return ar;
        };
        return ownKeys(o);
      };
      return function(mod) {
        if (mod && mod.__esModule)
          return mod;
        var result = {};
        if (mod != null) {
          for (var k = ownKeys(mod), i = 0; i < k.length; i++)
            if (k[i] !== "default")
              __createBinding2(result, mod, k[i]);
        }
        __setModuleDefault2(result, mod);
        return result;
      };
    }();
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.stderr = exports2.stdout = exports2.stdin = void 0;
    var dntShim = __importStar2(require_dnt_shims());
    var fsFile_js_1 = require_fsFile();
    var cachedStdinReadable;
    function getStdinReadable() {
      if (cachedStdinReadable !== void 0)
        return cachedStdinReadable;
      const abortController = new AbortController();
      return cachedStdinReadable = new dntShim.ReadableStream({
        async pull(controller) {
          const buf = new Uint8Array(16 * 1024);
          let bytesRead;
          try {
            bytesRead = await readStdin(buf, abortController.signal);
          } catch (err) {
            if (abortController.signal.aborted)
              return;
            throw err;
          }
          if (bytesRead === null)
            controller.close();
          else
            controller.enqueue(buf.subarray(0, bytesRead));
        },
        cancel() {
          abortController.abort();
          cachedStdinReadable = void 0;
        }
      });
    }
    exports2.stdin = {
      read(p, options) {
        const signal = options?.signal;
        signal?.throwIfAborted();
        return readStdin(p, signal);
      },
      // todo: remove this as it's unused
      get readable() {
        return getStdinReadable();
      },
      setRaw(mode) {
        if (process.stdin.isTTY) {
          process.stdin.setRawMode(mode);
        }
      },
      isTerminal() {
        return process.stdin.isTTY ?? false;
      }
    };
    exports2.stdout = {
      writeSync(p) {
        return (0, fsFile_js_1.writeSyncAll)(1, p);
      },
      isTerminal() {
        return process.stdout.isTTY ?? false;
      }
    };
    function readStdin(p, signal) {
      const stream = process.stdin;
      return new Promise((resolve, reject) => {
        const onReadable = () => {
          const chunk = stream.read();
          if (chunk === null)
            return;
          cleanup();
          const len = Math.min(chunk.length, p.length);
          p.set(chunk.subarray(0, len));
          if (chunk.length > len)
            stream.unshift(chunk.subarray(len));
          resolve(len);
        };
        const onEnd = () => {
          cleanup();
          resolve(null);
        };
        const onError = (err) => {
          cleanup();
          reject(err);
        };
        const onAbort = () => {
          cleanup();
          reject(signal.reason);
        };
        const cleanup = () => {
          stream.off("readable", onReadable);
          stream.off("end", onEnd);
          stream.off("error", onError);
          signal?.removeEventListener("abort", onAbort);
        };
        stream.on("readable", onReadable);
        stream.on("end", onEnd);
        stream.on("error", onError);
        signal?.addEventListener("abort", onAbort, { once: true });
        onReadable();
      });
    }
    exports2.stderr = {
      writeSync(p) {
        return (0, fsFile_js_1.writeSyncAll)(2, p);
      },
      isTerminal() {
        return process.stderr.isTTY ?? false;
      }
    };
  }
});

// npm/script/deps/jsr.io/@david/shell/0.6.0/src/shell.js
var require_shell = __commonJS({
  "npm/script/deps/jsr.io/@david/shell/0.6.0/src/shell.js"(exports2) {
    "use strict";
    var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) {
      if (k2 === void 0)
        k2 = k;
      var desc = Object.getOwnPropertyDescriptor(m, k);
      if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m[k];
        } };
      }
      Object.defineProperty(o, k2, desc);
    } : function(o, m, k, k2) {
      if (k2 === void 0)
        k2 = k;
      o[k2] = m[k];
    });
    var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) {
      Object.defineProperty(o, "default", { enumerable: true, value: v });
    } : function(o, v) {
      o["default"] = v;
    });
    var __importStar2 = exports2 && exports2.__importStar || /* @__PURE__ */ function() {
      var ownKeys = function(o) {
        ownKeys = Object.getOwnPropertyNames || function(o2) {
          var ar = [];
          for (var k in o2)
            if (Object.prototype.hasOwnProperty.call(o2, k))
              ar[ar.length] = k;
          return ar;
        };
        return ownKeys(o);
      };
      return function(mod) {
        if (mod && mod.__esModule)
          return mod;
        var result = {};
        if (mod != null) {
          for (var k = ownKeys(mod), i = 0; i < k.length; i++)
            if (k[i] !== "default")
              __createBinding2(result, mod, k[i]);
        }
        __setModuleDefault2(result, mod);
        return result;
      };
    }();
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.whichRealEnv = exports2.WhichEnv = exports2.Context = exports2.StreamFds = void 0;
    exports2.parseCommand = parseCommand;
    exports2.spawn = spawn;
    exports2.whichFromContext = whichFromContext;
    var dntShim = __importStar2(require_dnt_shims());
    var path = __importStar2(require("node:path"));
    var mod_js_12 = require_mod();
    var executable_js_1 = require_executable();
    var common_js_12 = require_common();
    var fsFile_js_1 = require_fsFile();
    var glob_js_1 = require_glob();
    var wasmInstance = __importStar2(require_rs_lib2());
    var pipes_js_1 = require_pipes();
    var buffer_js_1 = require_buffer();
    var result_js_1 = require_result();
    var streams_js_1 = require_streams();
    var ShellEvaluateError = class extends Error {
    };
    var RealEnv = class {
      setCwd(cwd) {
        process.chdir(cwd);
      }
      getCwd() {
        return process.cwd();
      }
      setEnvVar(key, value) {
        if (value == null) {
          delete process.env[key];
        } else {
          process.env[key] = value;
        }
      }
      getEnvVar(key) {
        return process.env[key];
      }
      getEnvVars() {
        return (0, common_js_12.getRealEnvVars)();
      }
      clone() {
        return cloneEnv(this);
      }
    };
    var ShellEnv = class {
      #cwd;
      #envVars = {};
      setCwd(cwd) {
        this.#cwd = cwd;
      }
      getCwd() {
        if (this.#cwd == null) {
          throw new Error("The cwd must be initialized.");
        }
        return this.#cwd;
      }
      setEnvVar(key, value) {
        if (common_js_12.isWindows) {
          key = key.toUpperCase();
        }
        if (value == null) {
          delete this.#envVars[key];
        } else {
          this.#envVars[key] = value;
        }
      }
      getEnvVar(key) {
        if (common_js_12.isWindows) {
          key = key.toUpperCase();
        }
        return this.#envVars[key];
      }
      getEnvVars() {
        return { ...this.#envVars };
      }
      clone() {
        return cloneEnv(this);
      }
    };
    var RealEnvWriteOnly = class {
      real = new RealEnv();
      shell = new ShellEnv();
      setCwd(cwd) {
        this.real.setCwd(cwd);
        this.shell.setCwd(cwd);
      }
      getCwd() {
        return this.shell.getCwd();
      }
      setEnvVar(key, value) {
        this.real.setEnvVar(key, value);
        this.shell.setEnvVar(key, value);
      }
      getEnvVar(key) {
        return this.shell.getEnvVar(key);
      }
      getEnvVars() {
        return this.shell.getEnvVars();
      }
      clone() {
        return cloneEnv(this);
      }
    };
    function initializeEnv(env, opts) {
      env.setCwd(opts.cwd);
      for (const [key, value] of Object.entries(opts.env)) {
        env.setEnvVar(key, value);
      }
    }
    function cloneEnv(env) {
      const result = new ShellEnv();
      initializeEnv(result, {
        cwd: env.getCwd(),
        env: env.getEnvVars()
      });
      return result;
    }
    var StreamFds = class {
      #readers = /* @__PURE__ */ new Map();
      #writers = /* @__PURE__ */ new Map();
      insertReader(fd, stream) {
        this.#readers.set(fd, stream);
      }
      insertWriter(fd, stream) {
        this.#writers.set(fd, stream);
      }
      getReader(fd) {
        return this.#readers.get(fd)?.();
      }
      getWriter(fd) {
        return this.#writers.get(fd)?.();
      }
    };
    exports2.StreamFds = StreamFds;
    var Context = class _Context {
      stdin;
      stdout;
      stderr;
      #env;
      #shellVars;
      #shellOptions;
      #static;
      constructor(opts) {
        this.stdin = opts.stdin;
        this.stdout = opts.stdout;
        this.stderr = opts.stderr;
        this.#env = opts.env;
        this.#shellVars = opts.shellVars;
        this.#shellOptions = opts.shellOptions;
        this.#static = opts.static;
      }
      get signal() {
        return this.#static.signal;
      }
      applyChanges(changes) {
        if (changes == null) {
          return;
        }
        for (const change of changes) {
          switch (change.kind) {
            case "cd":
              this.#env.setCwd(change.dir);
              break;
            case "envvar":
              this.setEnvVar(change.name, change.value);
              break;
            case "shellvar":
              this.setShellVar(change.name, change.value);
              break;
            case "unsetvar":
              this.setShellVar(change.name, void 0);
              this.setEnvVar(change.name, void 0);
              break;
            case "setoption":
              this.setShellOption(change.option, change.value);
              break;
            default: {
              const _assertNever = change;
              throw new Error(`Not implemented env change: ${change}`);
            }
          }
        }
      }
      setEnvVar(key, value) {
        if (common_js_12.isWindows) {
          key = key.toUpperCase();
        }
        if (key === "PWD") {
          if (value != null && path.isAbsolute(value)) {
            this.#env.setCwd(path.resolve(value));
          }
        } else {
          delete this.#shellVars[key];
          this.#env.setEnvVar(key, value);
        }
      }
      setShellVar(key, value) {
        if (common_js_12.isWindows) {
          key = key.toUpperCase();
        }
        if (this.#env.getEnvVar(key) != null || key === "PWD") {
          this.setEnvVar(key, value);
        } else if (value == null) {
          delete this.#shellVars[key];
        } else {
          this.#shellVars[key] = value;
        }
      }
      getEnvVars() {
        return this.#env.getEnvVars();
      }
      getCwd() {
        return this.#env.getCwd();
      }
      getVar(key) {
        if (common_js_12.isWindows) {
          key = key.toUpperCase();
        }
        if (key === "PWD") {
          return this.#env.getCwd();
        }
        return this.#env.getEnvVar(key) ?? this.#shellVars[key];
      }
      getCommand(command) {
        return this.#static.commands[command] ?? null;
      }
      getShellOptions() {
        return this.#shellOptions;
      }
      setShellOption(option, value) {
        this.#shellOptions[option] = value;
      }
      getFdReader(fd) {
        return this.#static.fds?.getReader(fd);
      }
      getFdWriter(fd) {
        return this.#static.fds?.getWriter(fd);
      }
      asCommandContext(args) {
        const context = this;
        return {
          get args() {
            return args;
          },
          get cwd() {
            return context.getCwd();
          },
          get env() {
            return context.getEnvVars();
          },
          get stdin() {
            return context.stdin;
          },
          get stdout() {
            return context.stdout;
          },
          get stderr() {
            return context.stderr;
          },
          get signal() {
            return context.signal;
          },
          get shellOptions() {
            return context.getShellOptions();
          },
          error(codeOrText, maybeText) {
            return context.error(codeOrText, maybeText);
          }
        };
      }
      error(codeOrText, maybeText) {
        let code;
        let text;
        if (typeof codeOrText === "number") {
          code = codeOrText;
          text = maybeText;
        } else {
          code = 1;
          text = codeOrText;
        }
        const maybePromise = this.stderr.writeLine(text);
        if (maybePromise instanceof Promise) {
          return maybePromise.then(() => ({ code }));
        } else {
          return { code };
        }
      }
      withInner(opts) {
        return new _Context({
          stdin: opts.stdin ?? this.stdin,
          stdout: opts.stdout ?? this.stdout,
          stderr: opts.stderr ?? this.stderr,
          env: this.#env.clone(),
          shellVars: { ...this.#shellVars },
          shellOptions: this.#shellOptions,
          static: this.#static
        });
      }
      clone() {
        return new _Context({
          stdin: this.stdin,
          stdout: this.stdout,
          stderr: this.stderr,
          env: this.#env.clone(),
          shellVars: { ...this.#shellVars },
          shellOptions: this.#shellOptions,
          static: this.#static
        });
      }
    };
    exports2.Context = Context;
    function parseCommand(command) {
      return wasmInstance.parse(command);
    }
    function getDefaultShellOptions(list) {
      return {
        nullglob: false,
        failglob: false,
        // default: pass unmatched globs through literally
        pipefail: false,
        globstar: true,
        // default: ** matches recursively
        questionGlob: false,
        // default: ? is literal
        // on by default for multi-line input so a failing line stops the rest;
        // single-line `a; b` keeps running through failures.
        errexit: isMultiLine(list)
      };
    }
    function isMultiLine(list) {
      return list.items.some((item) => item.endsLine);
    }
    async function spawn(list, opts) {
      const env = opts.exportEnv ? opts.clearedEnv ? new RealEnvWriteOnly() : new RealEnv() : new ShellEnv();
      initializeEnv(env, opts);
      const defaultOptions = getDefaultShellOptions(list);
      const context = new Context({
        env,
        stdin: opts.stdin,
        stdout: opts.stdout,
        stderr: opts.stderr,
        shellVars: {},
        shellOptions: {
          ...defaultOptions,
          ...opts.shellOptions
        },
        static: {
          commands: opts.commands,
          fds: opts.fds,
          signal: opts.signal
        }
      });
      const result = await executeSequentialList(list, context);
      return result.code;
    }
    async function executeSequentialList(list, context) {
      let finalExitCode = 0;
      const finalChanges = [];
      for (const item of list.items) {
        if (item.isAsync) {
          throw new Error("Async commands are not supported. Run a command concurrently in the JS code instead.");
        }
        const result = await executeSequence(item.sequence, context);
        switch (result.kind) {
          case void 0:
            if (result.changes) {
              context.applyChanges(result.changes);
              finalChanges.push(...result.changes);
            }
            finalExitCode = result.code;
            break;
          case "exit":
            return result;
          default: {
            const _assertNever = result;
          }
        }
        if (finalExitCode !== 0 && context.getShellOptions().errexit) {
          break;
        }
      }
      return {
        code: finalExitCode,
        changes: finalChanges
      };
    }
    function executeSequence(sequence, context) {
      if (context.signal.aborted) {
        return Promise.resolve((0, result_js_1.getAbortedResult)());
      }
      switch (sequence.kind) {
        case "pipeline":
          return executePipeline(sequence, context);
        case "booleanList":
          return executeBooleanList(sequence, context);
        case "shellVar":
          return executeShellVar(sequence, context);
        default: {
          const _assertNever = sequence;
          throw new Error(`Not implemented: ${sequence}`);
        }
      }
    }
    function executePipeline(pipeline, context) {
      const output = executePipelineInner(pipeline.inner, context);
      if (pipeline.negated) {
        return Promise.resolve(output).then((result) => {
          return {
            ...result,
            code: result.code === 0 ? 1 : 0
          };
        });
      }
      return output;
    }
    async function executeBooleanList(list, context) {
      const changes = [];
      const firstResult = await executeSequence(list.current, context.clone());
      let exitCode = 0;
      switch (firstResult.kind) {
        case "exit":
          return firstResult;
        case void 0:
          if (firstResult.changes) {
            context.applyChanges(firstResult.changes);
            changes.push(...firstResult.changes);
          }
          exitCode = firstResult.code;
          break;
        default: {
          const _assertNever = firstResult;
          throw new Error("Not handled.");
        }
      }
      const next = findNextSequence(list, exitCode);
      if (next == null) {
        return {
          code: exitCode,
          changes
        };
      } else {
        const nextResult = await executeSequence(next, context.clone());
        switch (nextResult.kind) {
          case "exit":
            return nextResult;
          case void 0:
            if (nextResult.changes) {
              changes.push(...nextResult.changes);
            }
            return {
              code: nextResult.code,
              changes
            };
          default: {
            const _assertNever = nextResult;
            throw new Error("Not Implemented");
          }
        }
      }
      function findNextSequence(current, exitCode2) {
        if (opMovesNextForExitCode(current.op, exitCode2)) {
          return current.next;
        } else {
          let next2 = current.next;
          while (next2.kind === "booleanList") {
            if (opMovesNextForExitCode(next2.op, exitCode2)) {
              return next2.next;
            } else {
              next2 = next2.next;
            }
          }
          return void 0;
        }
      }
      function opMovesNextForExitCode(op, exitCode2) {
        switch (op) {
          case "or":
            return exitCode2 !== 0;
          case "and":
            return exitCode2 === 0;
        }
      }
    }
    async function executeShellVar(sequence, context) {
      const value = await evaluateWord(sequence.value, context);
      return {
        code: 0,
        changes: [{
          kind: "shellvar",
          name: sequence.name,
          value
        }]
      };
    }
    function executePipelineInner(inner, context) {
      switch (inner.kind) {
        case "command":
          return executeCommand(inner, context);
        case "pipeSequence":
          return executePipeSequence(inner, context);
        default: {
          const _assertNever = inner;
          throw new Error(`Not implemented: ${inner.kind}`);
        }
      }
    }
    async function executeCommand(command, context) {
      if (command.redirect != null) {
        const redirectResult = await resolveRedirectPipe(command.redirect, context);
        let redirectPipe;
        if (redirectResult.kind === "input") {
          const { pipe } = redirectResult;
          context = context.withInner({
            stdin: pipe
          });
          redirectPipe = pipe;
        } else if (redirectResult.kind === "output") {
          const { pipe, toFd } = redirectResult;
          const writer = new pipes_js_1.ShellPipeWriter("piped", pipe);
          redirectPipe = pipe;
          if (toFd === 1) {
            context = context.withInner({
              stdout: writer
            });
          } else if (toFd === 2) {
            context = context.withInner({
              stderr: writer
            });
          } else if (toFd === "&") {
            context = context.withInner({
              stdout: writer
            }).withInner({
              stderr: writer
            });
          } else {
            const _assertNever = toFd;
            throw new Error(`Not handled fd: ${toFd}`);
          }
        } else {
          return redirectResult;
        }
        const result = await executeCommandInner(command.inner, context);
        try {
          if (isAsyncDisposable(redirectPipe)) {
            await redirectPipe[Symbol.asyncDispose]();
          } else if (isDisposable(redirectPipe)) {
            redirectPipe[Symbol.dispose]();
          }
        } catch (err) {
          if (result.code === 0) {
            return context.error(`failed disposing redirected pipe. ${(0, common_js_12.errorToString)(err)}`);
          }
        }
        return result;
      } else {
        return executeCommandInner(command.inner, context);
      }
    }
    async function resolveRedirectPipe(redirect, context) {
      function handleFileOpenError(outputPath, err) {
        return context.error(`failed opening file for redirect (${outputPath}). ${(0, common_js_12.errorToString)(err)}`);
      }
      const toFd = resolveRedirectToFd(redirect, context);
      if (typeof toFd !== "number" && toFd !== "&") {
        return toFd;
      }
      const { ioFile } = redirect;
      if (ioFile.kind === "fd") {
        switch (redirect.op.kind) {
          case "input": {
            if (ioFile.value === 0) {
              return {
                kind: "input",
                pipe: getStdinReader(context.stdin)
              };
            } else if (ioFile.value === 1 || ioFile.value === 2) {
              return context.error(`redirecting stdout or stderr to a command input is not supported`);
            } else {
              const pipe = context.getFdReader(ioFile.value);
              if (pipe == null) {
                return context.error(`could not find fd reader: ${ioFile.value}`);
              } else {
                return {
                  kind: "input",
                  pipe
                };
              }
            }
          }
          case "output": {
            if (ioFile.value === 0) {
              return context.error(`redirecting output to stdin is not supported`);
            } else if (ioFile.value === 1) {
              return {
                kind: "output",
                pipe: context.stdout.inner,
                toFd
              };
            } else if (ioFile.value === 2) {
              return {
                kind: "output",
                pipe: context.stderr.inner,
                toFd
              };
            } else {
              const pipe = context.getFdWriter(ioFile.value);
              if (pipe == null) {
                return context.error(`could not find fd: ${ioFile.value}`);
              } else {
                return {
                  kind: "output",
                  pipe,
                  toFd
                };
              }
            }
          }
          default: {
            const _assertNever = redirect.op;
            throw new Error("not implemented redirect op.");
          }
        }
      } else if (ioFile.kind === "word") {
        const words = await evaluateWordParts(ioFile.value, context);
        if (words.length === 0) {
          return context.error("redirect path must be 1 argument, but found 0");
        } else if (words.length > 1) {
          return context.error(`redirect path must be 1 argument, but found ${words.length} (${words.join(" ")}). Did you mean to quote it (ex. "${words.join(" ")}")?`);
        }
        switch (redirect.op.kind) {
          case "input": {
            const outputPath = path.isAbsolute(words[0]) ? words[0] : path.join(context.getCwd(), words[0]);
            try {
              const file = await (0, fsFile_js_1.open)(outputPath, {
                read: true
              });
              return {
                kind: "input",
                pipe: file
              };
            } catch (err) {
              return handleFileOpenError(outputPath, err);
            }
          }
          case "output": {
            if (words[0] === "/dev/null") {
              return {
                kind: "output",
                pipe: new pipes_js_1.NullPipeWriter(),
                toFd
              };
            }
            const outputPath = path.isAbsolute(words[0]) ? words[0] : path.join(context.getCwd(), words[0]);
            try {
              const file = await (0, fsFile_js_1.open)(outputPath, {
                write: true,
                create: true,
                append: redirect.op.value === "append",
                truncate: redirect.op.value !== "append"
              });
              return {
                kind: "output",
                pipe: file,
                toFd
              };
            } catch (err) {
              return handleFileOpenError(outputPath, err);
            }
          }
          default: {
            const _assertNever = redirect.op;
            throw new Error("not implemented redirect op.");
          }
        }
      } else {
        const _assertNever = ioFile;
        throw new Error("not implemented redirect io file.");
      }
    }
    function getStdinReader(stdin) {
      if (stdin === "inherit") {
        return streams_js_1.stdin;
      } else if (stdin === "null") {
        return new pipes_js_1.NullPipeReader();
      } else {
        return stdin;
      }
    }
    function resolveRedirectToFd(redirect, context) {
      const maybeFd = redirect.maybeFd;
      if (maybeFd == null) {
        return 1;
      }
      if (maybeFd.kind === "stdoutStderr") {
        return "&";
      }
      if (maybeFd.fd !== 1 && maybeFd.fd !== 2) {
        return context.error(`only redirecting to stdout (1) and stderr (2) is supported`);
      } else {
        return maybeFd.fd;
      }
    }
    function executeCommandInner(command, context) {
      switch (command.kind) {
        case "simple":
          return executeSimpleCommand(command, context);
        case "subshell":
          return executeSubshell(command, context);
        default: {
          const _assertNever = command;
          throw new Error(`Not implemented: ${command.kind}`);
        }
      }
    }
    async function executeSimpleCommand(command, parentContext) {
      const context = parentContext.clone();
      try {
        for (const envVar of command.envVars) {
          context.setEnvVar(envVar.name, await evaluateWord(envVar.value, context));
        }
        const commandArgs = await evaluateArgs(command.args, context);
        return await executeCommandArgs(commandArgs, context);
      } catch (err) {
        if (err instanceof ShellEvaluateError) {
          return context.error(err.message);
        } else {
          throw err;
        }
      }
    }
    function executeCommandArgs(commandArgs, context) {
      const commandName = commandArgs.shift();
      const command = context.getCommand(commandName);
      if (command != null) {
        return Promise.resolve(command(context.asCommandContext(commandArgs)));
      }
      const unresolvedCommand = {
        name: commandName,
        baseDir: context.getCwd()
      };
      return executeUnresolvedCommand(unresolvedCommand, commandArgs, context);
    }
    async function executeUnresolvedCommand(unresolvedCommand, commandArgs, context) {
      const resolvedCommand = await resolveCommand(unresolvedCommand, context);
      if (resolvedCommand === false) {
        context.stderr.writeLine(`dax: ${unresolvedCommand.name}: command not found`);
        return { code: 127 };
      }
      if (resolvedCommand.kind === "shebang") {
        return executeUnresolvedCommand(resolvedCommand.command, [...resolvedCommand.args, ...commandArgs], context);
      }
      const _assertIsPath = resolvedCommand.kind;
      return (0, executable_js_1.createExecutableCommand)(resolvedCommand.path)(context.asCommandContext(commandArgs));
    }
    async function executeSubshell(subshell, context) {
      const result = await executeSequentialList(subshell, context);
      return { code: result.code };
    }
    async function pipeReaderToWriterSync(reader, writer, signal) {
      const buffer = new Uint8Array(1024);
      while (!signal.aborted) {
        const bytesRead = await reader.read(buffer);
        if (bytesRead == null || bytesRead === 0) {
          break;
        }
        const maybePromise = writer.writeAll(buffer.slice(0, bytesRead));
        if (maybePromise) {
          await maybePromise;
        }
      }
    }
    function pipeCommandPipeReaderToWriterSync(reader, writer, signal) {
      switch (reader) {
        case "inherit":
          return pipeReaderToWriterSync(streams_js_1.stdin, writer, signal);
        case "null":
          return Promise.resolve();
        default: {
          return pipeReaderToWriterSync(reader, writer, signal);
        }
      }
    }
    async function resolveCommand(unresolvedCommand, context) {
      if (unresolvedCommand.name.includes("/") || common_js_12.isWindows && unresolvedCommand.name.includes("\\")) {
        const absolutePath = path.isAbsolute(unresolvedCommand.name) ? unresolvedCommand.name : path.resolve(unresolvedCommand.baseDir, unresolvedCommand.name);
        const commandPath2 = await whichFromContext(absolutePath, context);
        if (commandPath2 == null) {
          return false;
        }
        const result = await (0, common_js_12.getExecutableShebangFromPath)(commandPath2);
        if (result === false) {
          return false;
        } else if (result != null) {
          const args = await parseShebangArgs(result, context);
          const name = args.shift();
          args.push(commandPath2);
          return {
            kind: "shebang",
            command: {
              name,
              baseDir: path.dirname(commandPath2)
            },
            args
          };
        } else {
          const _assertUndefined = result;
          return {
            kind: "path",
            path: commandPath2
          };
        }
      }
      const commandPath = await whichFromContext(unresolvedCommand.name, context);
      if (commandPath == null) {
        return false;
      }
      return {
        kind: "path",
        path: commandPath
      };
    }
    var WhichEnv = class extends mod_js_12.RealEnvironment {
      /** Requests read permission for the provided directory under Deno. */
      requestPermission(folderPath) {
        const denoGlobal = globalThis.Deno;
        denoGlobal?.permissions?.requestSync?.({
          name: "read",
          path: folderPath
        });
      }
    };
    exports2.WhichEnv = WhichEnv;
    exports2.whichRealEnv = new WhichEnv();
    async function whichFromContext(commandName, context) {
      return await (0, mod_js_12.which)(commandName, {
        isWindows: common_js_12.isWindows,
        stat: exports2.whichRealEnv.stat,
        lstat: exports2.whichRealEnv.lstat,
        readLink: exports2.whichRealEnv.readLink,
        env(key) {
          return context.getVar(key);
        },
        requestPermission: exports2.whichRealEnv.requestPermission
      });
    }
    async function executePipeSequence(sequence, context) {
      const waitTasks = [];
      let lastOutput = context.stdin;
      let nextInner = sequence;
      while (nextInner != null) {
        let innerCommand;
        switch (nextInner.kind) {
          case "pipeSequence":
            switch (nextInner.op) {
              case "stdout": {
                innerCommand = nextInner.current;
                break;
              }
              case "stdoutstderr": {
                return context.error(`piping to both stdout and stderr is not implemented (ex. |&)`);
              }
              default: {
                const _assertNever = nextInner.op;
                return context.error(`not implemented pipe sequence op: ${nextInner.op}`);
              }
            }
            nextInner = nextInner.next;
            break;
          case "command":
            innerCommand = nextInner;
            nextInner = void 0;
            break;
        }
        const buffer = new pipes_js_1.PipeSequencePipe();
        const newContext = context.withInner({
          stdout: new pipes_js_1.ShellPipeWriter("piped", buffer),
          stdin: lastOutput
        });
        const commandPromise = executeCommand(innerCommand, newContext);
        waitTasks.push(commandPromise);
        commandPromise.finally(() => {
          buffer.close();
        });
        lastOutput = buffer;
      }
      waitTasks.push(pipeCommandPipeReaderToWriterSync(lastOutput, context.stdout, context.signal).then(() => ({ code: 0 })));
      const results = await Promise.all(waitTasks);
      const shellOptions = context.getShellOptions();
      let exitCode;
      if (shellOptions.pipefail) {
        exitCode = 0;
        for (let i = results.length - 1; i >= 0; i--) {
          const code = results[i].code;
          if (code !== 0) {
            exitCode = code;
            break;
          }
        }
      } else {
        exitCode = results[results.length - 2].code;
      }
      return { code: exitCode };
    }
    async function parseShebangArgs(info, context) {
      function throwUnsupported() {
        throw new Error("Unsupported shebang. Please report this as a bug.");
      }
      if (!info.stringSplit) {
        return [info.command];
      }
      const command = parseCommand(info.command);
      if (command.items.length !== 1) {
        throwUnsupported();
      }
      const item = command.items[0];
      if (item.sequence.kind !== "pipeline" || item.isAsync) {
        throwUnsupported();
      }
      const sequence = item.sequence;
      if (sequence.negated) {
        throwUnsupported();
      }
      if (sequence.inner.kind !== "command" || sequence.inner.redirect != null) {
        throwUnsupported();
      }
      const innerCommand = sequence.inner.inner;
      if (innerCommand.kind !== "simple") {
        throwUnsupported();
      }
      if (innerCommand.envVars.length > 0) {
        throwUnsupported();
      }
      return await evaluateArgs(innerCommand.args, context);
    }
    async function evaluateArgs(args, context) {
      const result = [];
      for (const arg of args) {
        result.push(...await evaluateWordParts(arg, context));
      }
      return result;
    }
    async function evaluateWord(word, context) {
      const result = await evaluateWordParts(word, context);
      return result.join(" ");
    }
    async function evaluateWordParts(wordParts, context) {
      const result = [];
      for (const expanded of expandBraces(wordParts)) {
        result.push(...await evaluateWordPartsInner(expanded, context, false));
      }
      return result;
    }
    function expandBraces(parts) {
      let results = [[]];
      for (const part of parts) {
        if (part.kind === "brace") {
          const expanded = part.value.flatMap((word) => expandBraces(word));
          if (expanded.length === 0) {
            continue;
          }
          const next = [];
          for (const prefix of results) {
            for (const alt of expanded) {
              next.push([...prefix, ...alt]);
            }
          }
          results = next;
        } else {
          for (const r of results) {
            r.push(part);
          }
        }
      }
      return results;
    }
    async function evaluateWordPartsInner(wordParts, context, quoted) {
      function hasGlobChar(text, questionGlob) {
        for (let i = 0; i < text.length; i++) {
          switch (text[i]) {
            case "?":
              if (questionGlob)
                return true;
              break;
            case "*":
            case "[":
              return true;
            default:
              break;
          }
        }
        return false;
      }
      function textPartsToString(textParts) {
        return textParts.map((p) => p.value).join("");
      }
      async function evaluateWordText(textParts, isQuoted) {
        const questionGlob = context.getShellOptions().questionGlob;
        if (!isQuoted && textParts.some((part) => part.kind === "text" && hasGlobChar(part.value, questionGlob))) {
          let currentText2 = "";
          const globEscapeChar = common_js_12.isWindows ? "`" : "\\";
          for (const textPart of textParts) {
            switch (textPart.kind) {
              case "quoted":
                for (let i = 0; i < textPart.value.length; i++) {
                  const char = textPart.value[i];
                  switch (char) {
                    case "?":
                    case "*":
                    case "[":
                    case "]":
                    case "{":
                    case "}":
                      currentText2 += `${globEscapeChar}${char}`;
                      break;
                    default:
                      currentText2 += char;
                      break;
                  }
                }
                break;
              case "text": {
                const textPartValue = textPart.value.replaceAll("[]]", `${globEscapeChar}]`).replaceAll("[[]", `${globEscapeChar}[`);
                for (let i = 0; i < textPartValue.length; i++) {
                  const char = textPartValue[i];
                  switch (char) {
                    case "?":
                      if (!questionGlob) {
                        currentText2 += `${globEscapeChar}${char}`;
                      } else {
                        currentText2 += char;
                      }
                      break;
                    case "{":
                    case "}":
                      currentText2 += `${globEscapeChar}${char}`;
                      break;
                    default:
                      currentText2 += char;
                      break;
                  }
                }
                break;
              }
              default: {
                const _assertNever = textPart;
                break;
              }
            }
          }
          const cwd = context.getCwd();
          const shellOptions = context.getShellOptions();
          const isAbsolute = path.isAbsolute(currentText2);
          let patternText = currentText2;
          if (!shellOptions.globstar && currentText2.includes("**")) {
            while (patternText.includes("**")) {
              patternText = patternText.replace("**", "*");
            }
          }
          const pattern = isAbsolute ? patternText : path.join(cwd, patternText);
          const entries = await Array.fromAsync((0, glob_js_1.expandGlob)(pattern, {
            // be the same on all operating systems
            caseInsensitive: true,
            followSymlinks: false,
            globstar: shellOptions.globstar,
            root: cwd,
            includeDirs: false
          }));
          entries.sort((a, b) => a.path < b.path ? -1 : a.path > b.path ? 1 : 0);
          if (entries.length === 0) {
            if (shellOptions.failglob) {
              throw new ShellEvaluateError(`glob: no matches found '${pattern}' (run \`shopt -u failglob\` to pass unmatched glob patterns literally)`);
            } else if (shellOptions.nullglob) {
              return [];
            } else {
              return [textPartsToString(textParts)];
            }
          }
          if (isAbsolute) {
            return entries.map((e) => e.path);
          } else {
            return entries.map((e) => path.relative(cwd, e.path));
          }
        } else {
          return [textPartsToString(textParts)];
        }
      }
      const result = [];
      let currentText = [];
      for (const stringPart of wordParts) {
        let evaluationResult = void 0;
        switch (stringPart.kind) {
          case "text":
            currentText.push(stringPart);
            break;
          case "variable":
            evaluationResult = context.getVar(stringPart.value);
            break;
          case "quoted": {
            const text = (await evaluateWordPartsInner(stringPart.value, context, true)).join(" ");
            currentText.push({
              kind: "quoted",
              value: text
            });
            continue;
          }
          case "tilde": {
            const envVarName = common_js_12.isWindows ? "USERPROFILE" : "HOME";
            const homeDirEnv = context.getVar(envVarName);
            if (homeDirEnv == null) {
              throw new Error(`Failed resolving home directory for tilde expansion ('${envVarName}' env var not set).`);
            }
            evaluationResult = homeDirEnv;
            break;
          }
          case "command":
            evaluationResult = await evaluateCommandSubstitution(stringPart.value, context);
            break;
          case "brace":
            throw new Error("brace parts must be expanded before evaluation");
        }
        if (evaluationResult != null) {
          const parts = evaluationResult.split(" ").map((t) => ({
            kind: "text",
            value: t.trim()
          })).filter((t) => t.value.length > 0);
          if (parts.length > 0) {
            currentText.push(...parts.splice(0, 1));
            if (parts.length > 0) {
              result.push(...await evaluateWordText(currentText, quoted));
              for (const part of parts.splice(0, parts.length - 1)) {
                result.push(...await evaluateWordText([part], quoted));
              }
              currentText = parts;
            }
          }
        }
      }
      if (currentText.length !== 0) {
        result.push(...await evaluateWordText(currentText, quoted));
      }
      return result;
    }
    async function evaluateCommandSubstitution(list, context) {
      const buffer = new buffer_js_1.Buffer();
      const subContext = context.withInner({
        stdout: new pipes_js_1.ShellPipeWriter("piped", buffer)
      });
      await executeSequentialList(list, subContext);
      const text = new dntShim.TextDecoder().decode(buffer.bytes({ copy: false }));
      return text.replace(/\s+/g, " ").trim();
    }
    function isDisposable(value) {
      return value != null && typeof value[Symbol.dispose] === "function";
    }
    function isAsyncDisposable(value) {
      return value != null && typeof value[Symbol.asyncDispose] === "function";
    }
  }
});

// npm/script/deps/jsr.io/@david/shell/0.6.0/src/commands/which.js
var require_which = __commonJS({
  "npm/script/deps/jsr.io/@david/shell/0.6.0/src/commands/which.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.whichCommand = whichCommand;
    exports2.parseArgs = parseArgs;
    var common_js_12 = require_common();
    var shell_js_1 = require_shell();
    var args_js_1 = require_args();
    async function whichCommand(context) {
      try {
        return await executeWhich(context);
      } catch (err) {
        return context.error(`which: ${(0, common_js_12.errorToString)(err)}`);
      }
    }
    async function executeWhich(context) {
      let flags;
      try {
        flags = parseArgs(context.args);
      } catch (err) {
        return await context.error(2, `which: ${(0, common_js_12.errorToString)(err)}`);
      }
      if (flags.commandName == null) {
        return { code: 1 };
      }
      const path = await (0, shell_js_1.whichFromContext)(flags.commandName, {
        getVar(key) {
          return context.env[key];
        }
      });
      if (path != null) {
        await context.stdout.writeLine(path);
        return { code: 0 };
      } else {
        return { code: 1 };
      }
    }
    function parseArgs(args) {
      let commandName;
      for (const arg of (0, args_js_1.parseArgKinds)(args)) {
        if (arg.kind === "Arg") {
          if (commandName != null) {
            throw Error("unsupported too many arguments");
          }
          commandName = arg.arg;
        } else {
          bailUnsupported(arg);
        }
      }
      return {
        commandName
      };
    }
    function bailUnsupported(arg) {
      switch (arg.kind) {
        case "Arg":
          throw Error(`unsupported argument: ${arg.arg}`);
        case "ShortFlag":
          throw Error(`unsupported flag: -${arg.arg}`);
        case "LongFlag":
          throw Error(`unsupported flag: --${arg.arg}`);
      }
    }
  }
});

// npm/script/deps/jsr.io/@david/shell/0.6.0/src/byteRingBuffer.js
var require_byteRingBuffer = __commonJS({
  "npm/script/deps/jsr.io/@david/shell/0.6.0/src/byteRingBuffer.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.ByteRingBuffer = void 0;
    var ByteRingBuffer = class {
      capacity;
      #buffer;
      #size = 0;
      /** Index of the next byte to write — equivalently, the oldest retained
       * byte once the ring has wrapped. */
      #head = 0;
      constructor(capacity) {
        this.capacity = Math.max(1, Math.floor(capacity));
        this.#buffer = new Uint8Array(this.capacity);
      }
      get size() {
        return this.#size;
      }
      push(data) {
        if (data.length === 0)
          return;
        if (data.length >= this.capacity) {
          this.#buffer.set(data.subarray(data.length - this.capacity), 0);
          this.#size = this.capacity;
          this.#head = 0;
          return;
        }
        const tail = this.capacity - this.#head;
        if (data.length <= tail) {
          this.#buffer.set(data, this.#head);
        } else {
          this.#buffer.set(data.subarray(0, tail), this.#head);
          this.#buffer.set(data.subarray(tail), 0);
        }
        this.#head = (this.#head + data.length) % this.capacity;
        this.#size = Math.min(this.#size + data.length, this.capacity);
      }
      /** Return the retained bytes, oldest first, as a freshly allocated array. */
      toBytes() {
        const out = new Uint8Array(this.#size);
        if (this.#size === 0)
          return out;
        const start = this.#size < this.capacity ? 0 : this.#head;
        const tail = this.capacity - start;
        if (this.#size <= tail) {
          out.set(this.#buffer.subarray(start, start + this.#size));
        } else {
          out.set(this.#buffer.subarray(start, this.capacity), 0);
          out.set(this.#buffer.subarray(0, this.#size - tail), tail);
        }
        return out;
      }
    };
    exports2.ByteRingBuffer = ByteRingBuffer;
  }
});

// npm/script/deps/jsr.io/@david/shell/0.6.0/src/command.js
var require_command = __commonJS({
  "npm/script/deps/jsr.io/@david/shell/0.6.0/src/command.js"(exports2) {
    "use strict";
    var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) {
      if (k2 === void 0)
        k2 = k;
      var desc = Object.getOwnPropertyDescriptor(m, k);
      if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m[k];
        } };
      }
      Object.defineProperty(o, k2, desc);
    } : function(o, m, k, k2) {
      if (k2 === void 0)
        k2 = k;
      o[k2] = m[k];
    });
    var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) {
      Object.defineProperty(o, "default", { enumerable: true, value: v });
    } : function(o, v) {
      o["default"] = v;
    });
    var __importStar2 = exports2 && exports2.__importStar || /* @__PURE__ */ function() {
      var ownKeys = function(o) {
        ownKeys = Object.getOwnPropertyNames || function(o2) {
          var ar = [];
          for (var k in o2)
            if (Object.prototype.hasOwnProperty.call(o2, k))
              ar[ar.length] = k;
          return ar;
        };
        return ownKeys(o);
      };
      return function(mod) {
        if (mod && mod.__esModule)
          return mod;
        var result = {};
        if (mod != null) {
          for (var k = ownKeys(mod), i = 0; i < k.length; i++)
            if (k[i] !== "default")
              __createBinding2(result, mod, k[i]);
        }
        __setModuleDefault2(result, mod);
        return result;
      };
    }();
    var _a;
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.KillSignal = exports2.KillController = exports2.RawArg = exports2.CommandResult = exports2.ShellError = exports2.CommandChild = exports2.CommandBuilder = exports2.setCommandTextStateSymbol = exports2.getRegisteredCommandNamesSymbol = void 0;
    exports2.parseAndSpawnCommand = parseAndSpawnCommand;
    exports2.escapeArg = escapeArg;
    exports2.rawArg = rawArg;
    exports2.getSignalAbortCode = getSignalAbortCode;
    exports2.template = template;
    exports2.templateRaw = templateRaw;
    var dntShim = __importStar2(require_dnt_shims());
    var mod_js_12 = require_mod2();
    var mod_js_22 = require_mod3();
    var colors2 = __importStar2(require_colors());
    var buffer_js_1 = require_buffer();
    var reader_from_stream_reader_js_1 = require_reader_from_stream_reader();
    var path = __importStar2(require("node:path"));
    var node_url_1 = require("node:url");
    var cat_js_1 = require_cat();
    var cd_js_1 = require_cd();
    var cpMv_js_1 = require_cpMv();
    var echo_js_1 = require_echo();
    var exit_js_1 = require_exit();
    var export_js_1 = require_export();
    var mkdir_js_1 = require_mkdir();
    var printenv_js_1 = require_printenv();
    var pwd_js_1 = require_pwd();
    var rm_js_1 = require_rm();
    var set_js_1 = require_set();
    var shopt_js_1 = require_shopt();
    var sleep_js_1 = require_sleep();
    var test_js_1 = require_test();
    var touch_js_1 = require_touch();
    var unset_js_1 = require_unset();
    var which_js_1 = require_which();
    var common_js_12 = require_common();
    var streams_js_1 = require_streams();
    var byteRingBuffer_js_1 = require_byteRingBuffer();
    var pipes_js_1 = require_pipes();
    var shell_js_1 = require_shell();
    var shell_js_2 = require_shell();
    var Deferred = class {
      #create;
      constructor(create) {
        this.#create = create;
      }
      create() {
        return this.#create();
      }
    };
    var textDecoder = new dntShim.TextDecoder();
    var builtInCommands = {
      cd: cd_js_1.cdCommand,
      printenv: printenv_js_1.printEnvCommand,
      echo: echo_js_1.echoCommand,
      cat: cat_js_1.catCommand,
      exit: exit_js_1.exitCommand,
      export: export_js_1.exportCommand,
      set: set_js_1.setCommand,
      shopt: shopt_js_1.shoptCommand,
      sleep: sleep_js_1.sleepCommand,
      test: test_js_1.testCommand,
      rm: rm_js_1.rmCommand,
      mkdir: mkdir_js_1.mkdirCommand,
      cp: cpMv_js_1.cpCommand,
      mv: cpMv_js_1.mvCommand,
      pwd: pwd_js_1.pwdCommand,
      touch: touch_js_1.touchCommand,
      true: () => ({ code: 0 }),
      false: () => ({ code: 1 }),
      // POSIX null command: discards its arguments and always exits 0
      ":": () => ({ code: 0 }),
      unset: unset_js_1.unsetCommand,
      which: which_js_1.whichCommand
    };
    exports2.getRegisteredCommandNamesSymbol = Symbol();
    exports2.setCommandTextStateSymbol = Symbol();
    var CommandBuilder = class {
      #state = {
        command: void 0,
        combinedStdoutStderr: false,
        stdin: "inherit",
        stdout: {
          kind: "inherit"
        },
        stderr: {
          kind: "inherit"
        },
        tailDisplay: false,
        errorTail: false,
        noThrow: false,
        env: {},
        cwd: void 0,
        commands: { ...builtInCommands },
        clearEnv: false,
        exportEnv: false,
        printCommand: false,
        printCommandLogger: new common_js_12.LoggerTreeBox(
          // deno-lint-ignore no-console
          (cmd) => console.error(colors2.white(">"), colors2.blue(cmd))
        ),
        timeout: void 0,
        signal: void 0,
        encoding: void 0,
        shellOptions: {},
        beforeCommand: void 0,
        beforeCommandSync: void 0
      };
      #getClonedState() {
        const state = this.#state;
        return {
          // be explicit here in order to evaluate each property on a case by case basis
          command: state.command,
          combinedStdoutStderr: state.combinedStdoutStderr,
          stdin: state.stdin,
          stdout: {
            kind: state.stdout.kind,
            options: state.stdout.options
          },
          stderr: {
            kind: state.stderr.kind,
            options: state.stderr.options
          },
          tailDisplay: state.tailDisplay === false ? false : { ...state.tailDisplay },
          errorTail: state.errorTail === false ? false : { ...state.errorTail },
          noThrow: state.noThrow instanceof Array ? [...state.noThrow] : state.noThrow,
          env: { ...state.env },
          cwd: state.cwd,
          commands: { ...state.commands },
          clearEnv: state.clearEnv,
          exportEnv: state.exportEnv,
          printCommand: state.printCommand,
          printCommandLogger: state.printCommandLogger.createChild(),
          timeout: state.timeout,
          signal: state.signal,
          encoding: state.encoding,
          shellOptions: { ...state.shellOptions },
          beforeCommand: state.beforeCommand,
          beforeCommandSync: state.beforeCommandSync
        };
      }
      #newWithState(action) {
        const builder = new _a();
        const state = this.#getClonedState();
        action(state);
        builder.#state = state;
        return builder;
      }
      /** Spawns the command and returns a promise resolving to the command result.
       *
       * Allows awaiting a `CommandBuilder` directly without calling `.spawn()`.
       */
      then(onfulfilled, onrejected) {
        const callerStack = captureCallerStack(this.then);
        return this.#resolveStateForSpawn().then((state) => parseAndSpawnCommand(state, callerStack).then(onfulfilled).catch(onrejected));
      }
      /**
       * Explicit way to spawn a command.
       *
       * This is an alias for awaiting the command builder or calling `.then(...)`
       */
      spawn() {
        if (this.#state.beforeCommand != null && this.#state.beforeCommand.length > 0) {
          throw new Error(".spawn() cannot be used when .beforeCommand() hooks are registered; await the builder, call .then(), or use .beforeCommandSync() instead.");
        }
        const callerStack = captureCallerStack(this.spawn);
        return parseAndSpawnCommand(this.#runSyncHooks(), callerStack);
      }
      #runSyncHooks() {
        const callbacks = this.#state.beforeCommandSync;
        if (callbacks == null || callbacks.length === 0) {
          return this.#getClonedState();
        }
        let builder = this.#newWithState((state) => {
          state.beforeCommandSync = void 0;
        });
        for (const cb of callbacks) {
          const result = cb(builder);
          if (result instanceof _a) {
            builder = result;
          }
        }
        return builder.#getClonedState();
      }
      async #resolveStateForSpawn() {
        let builder;
        {
          const syncState = this.#runSyncHooks();
          builder = new _a();
          builder.#state = syncState;
        }
        const callbacks = this.#state.beforeCommand;
        if (callbacks == null || callbacks.length === 0) {
          return builder.#getClonedState();
        }
        builder = builder.#newWithState((state) => {
          state.beforeCommand = void 0;
        });
        for (const cb of callbacks) {
          const proxy = wrapCommandBuilderNonThenable(builder);
          const result = await cb(proxy);
          builder = unwrapCommandBuilder(result) ?? builder;
        }
        return builder.#getClonedState();
      }
      /**
       * Register a command.
       */
      registerCommand(command, handleFn) {
        validateCommandName(command);
        return this.#newWithState((state) => {
          state.commands[command] = handleFn;
        });
      }
      /**
       * Register multilple commands.
       */
      registerCommands(commands) {
        let command = this;
        for (const [key, value] of Object.entries(commands)) {
          command = command.registerCommand(key, value);
        }
        return command;
      }
      /**
       * Unregister a command.
       */
      unregisterCommand(command) {
        return this.#newWithState((state) => {
          delete state.commands[command];
        });
      }
      /** Sets the raw command to execute. */
      command(command) {
        return this.#newWithState((state) => {
          if (command instanceof Array) {
            command = command.map(escapeArg).join(" ");
          }
          state.command = {
            text: command,
            fds: void 0
          };
        });
      }
      noThrow(value, ...additional) {
        return this.#newWithState((state) => {
          if (typeof value === "boolean" || value == null) {
            state.noThrow = value ?? true;
          } else {
            state.noThrow = [value, ...additional];
          }
        });
      }
      /** Registers a callback that runs just before each command is spawned.
       *
       * The callback receives the current builder and may return a (possibly
       * modified) builder to use for the spawn. Useful for asynchronously
       * resolving values such as auth tokens or env vars.
       *
       * ```ts
       * $`./build.sh`.beforeCommand(async (builder) => {
       *   return builder.env("AUTH_TOKEN", await getAccessToken());
       * });
       * ```
       *
       * Multiple `.beforeCommand(...)` calls compose: each registered callback runs
       * in the order it was added, with the builder produced by the previous one.
       *
       * The builder passed to the callback is in a special "passthrough" mode so
       * its `.then(...)` resolves with the builder itself (instead of spawning) —
       * this is what makes `return builder.env(...)` from an `async` function
       * safe. If you construct a fresh `new CommandBuilder()` inside the callback,
       * return it as `{ commandBuilder: ... }` to avoid an accidental spawn.
       *
       * Hooks are only resolved when the builder is awaited (or `.then()` is
       * called). Calling `.spawn()` on a builder with registered hooks throws.
       */
      beforeCommand(callback) {
        return this.#newWithState((state) => {
          state.beforeCommand = state.beforeCommand == null ? [callback] : [...state.beforeCommand, callback];
        });
      }
      /** Synchronous variant of {@link beforeCommand}. Unlike `.beforeCommand`,
       * sync hooks also run on the `.spawn()` path, so they're suitable when you
       * need streaming via `.spawn().stdout()` etc.
       *
       * The callback must return synchronously (`CommandBuilder` or nothing). The
       * thenable-unwrapping concern doesn't apply here because the return value
       * never passes through Promise machinery — `return builder.env(...)` is just
       * a function return.
       *
       * ```ts
       * const child = $`./build.sh`
       *   .beforeCommandSync((builder) => builder.env("BUILD_ID", crypto.randomUUID()))
       *   .spawn();
       * ```
       *
       * Sync hooks always run before async hooks during a single resolution pass.
       */
      beforeCommandSync(callback) {
        return this.#newWithState((state) => {
          state.beforeCommandSync = state.beforeCommandSync == null ? [callback] : [...state.beforeCommandSync, callback];
        });
      }
      /** Sets the signal that will be passed to all commands
       * created with this command builder.
       *
       * Accepts a `KillSignal` or a standard `AbortSignal`. When an
       * `AbortSignal` is provided it is internally bridged to a
       * `KillSignal` that sends `SIGTERM` on abort.
       */
      signal(signal) {
        return this.#newWithState((state) => {
          const killSignal = signal instanceof KillSignal ? signal : killSignalFromAbortSignal(signal);
          if (state.signal != null) {
            state.signal.linkChild(killSignal);
          }
          state.signal = killSignal;
        });
      }
      /**
       * Whether to capture a combined buffer of both stdout and stderr.
       *
       * This will set both stdout and stderr to "piped" if not already "piped"
       * or "inheritPiped".
       */
      captureCombined(value = true) {
        return this.#newWithState((state) => {
          state.combinedStdoutStderr = value;
          if (value) {
            if (state.stdout.kind !== "piped" && state.stdout.kind !== "inheritPiped") {
              state.stdout.kind = "piped";
            }
            if (state.stderr.kind !== "piped" && state.stderr.kind !== "inheritPiped") {
              state.stderr.kind = "piped";
            }
          }
        });
      }
      /**
       * Sets the stdin to use for the command.
       *
       * @remarks If multiple launches of a command occurs, then stdin will only be
       * read from the first consumed reader or readable stream and error otherwise.
       * For this reason, if you are setting stdin to something other than "inherit" or
       * "null", then it's recommended to set this each time you spawn a command.
       */
      stdin(reader) {
        return this.#newWithState((state) => {
          if (reader === "inherit" || reader === "null") {
            state.stdin = reader;
          } else if (reader instanceof Uint8Array) {
            state.stdin = new Deferred(() => new buffer_js_1.Buffer(reader));
          } else if (reader instanceof mod_js_12.Path) {
            state.stdin = new Deferred(async () => {
              const file = await reader.open();
              return file.readable;
            });
          } else if (reader instanceof _a) {
            state.stdin = new Deferred(() => {
              return reader.stdout("piped").spawn().stdout();
            });
          } else if (isAwaitableReadable(reader)) {
            const awaitable = reader;
            state.stdin = new Deferred(async () => {
              const body = await awaitable;
              if (!(body?.readable instanceof dntShim.ReadableStream)) {
                throw new TypeError("When passing an awaitable to stdin, the resolved value must have a `readable` ReadableStream.");
              }
              return body.readable;
            });
          } else {
            state.stdin = new common_js_12.Box(reader);
          }
        });
      }
      /**
       * Sets the stdin string to use for a command.
       *
       * @remarks See the remarks on stdin. The same applies here.
       */
      stdinText(text) {
        return this.stdin(new TextEncoder().encode(text));
      }
      stdout(kind, options) {
        return this.#newWithState((state) => {
          if (state.combinedStdoutStderr && kind !== "piped" && kind !== "inheritPiped") {
            throw new TypeError("Cannot set stdout's kind to anything but 'piped' or 'inheritPiped' when combined is true.");
          }
          if (options?.signal != null) {
            throw new TypeError("Setting a signal for a stdout WritableStream is not yet supported.");
          }
          state.stdout = {
            kind,
            options
          };
        });
      }
      stderr(kind, options) {
        return this.#newWithState((state) => {
          if (state.combinedStdoutStderr && kind !== "piped" && kind !== "inheritPiped") {
            throw new TypeError("Cannot set stderr's kind to anything but 'piped' or 'inheritPiped' when combined is true.");
          }
          if (options?.signal != null) {
            throw new TypeError("Setting a signal for a stderr WritableStream is not yet supported.");
          }
          state.stderr = {
            kind,
            options
          };
        });
      }
      tailDisplay(valueOrOptions = true) {
        return this.#newWithState((state) => {
          if (valueOrOptions === false) {
            state.tailDisplay = false;
          } else if (valueOrOptions === true) {
            state.tailDisplay = {};
          } else {
            state.tailDisplay = { ...valueOrOptions };
          }
        });
      }
      errorTail(valueOrOptions = true) {
        return this.#newWithState((state) => {
          if (valueOrOptions === false) {
            state.errorTail = false;
          } else if (valueOrOptions === true) {
            state.errorTail = {};
          } else {
            state.errorTail = { ...valueOrOptions };
          }
        });
      }
      /** Pipes the current command to the provided command returning the
       * provided command builder. When chaining, it's important to call this
       * after you are done configuring the current command or else you will
       * start modifying the provided command instead.
       *
       * @example
       * ```ts
       * const lineCount = await $`echo 1 && echo 2`
       *  .pipe($`wc -l`)
       *  .text();
       * ```
       */
      pipe(builder) {
        return builder.stdin(this.stdout("piped"));
      }
      env(nameOrItems, value) {
        return this.#newWithState((state) => {
          if (typeof nameOrItems === "string") {
            setEnv(state, nameOrItems, value);
          } else {
            for (const [key, value2] of Object.entries(nameOrItems)) {
              setEnv(state, key, value2);
            }
          }
        });
        function setEnv(state, key, value2) {
          if (common_js_12.isWindows) {
            key = key.toUpperCase();
          }
          state.env[key] = value2;
        }
      }
      /** Sets the current working directory to use when executing this command. */
      cwd(dirPath) {
        return this.#newWithState((state) => {
          state.cwd = dirPath instanceof URL ? (0, node_url_1.fileURLToPath)(dirPath) : dirPath instanceof mod_js_12.Path ? dirPath.resolve().toString() : path.resolve(dirPath);
        });
      }
      /**
       * Exports the environment of the command to the executing process.
       *
       * So for example, changing the directory in a command or exporting
       * an environment variable will actually change the environment
       * of the executing process.
       *
       * ```ts
       * await $`cd src && export SOME_VALUE=5`;
       * console.log(process.env["SOME_VALUE"]); // 5
       * console.log(process.cwd()); // will be in the src directory
       * ```
       */
      exportEnv(value = true) {
        return this.#newWithState((state) => {
          state.exportEnv = value;
        });
      }
      /**
       * Clear environmental variables from parent process.
       *
       * Doesn't guarantee that only `env` variables are present, as the OS may
       * set environmental variables for processes.
       */
      clearEnv(value = true) {
        return this.#newWithState((state) => {
          state.clearEnv = value;
        });
      }
      /**
       * Prints the command text before executing the command.
       *
       * For example:
       *
       * ```ts
       * const text = "example";
       * await $`echo ${text}`.printCommand();
       * ```
       *
       * Outputs:
       *
       * ```
       * > echo example
       * example
       * ```
       */
      printCommand(value = true) {
        return this.#newWithState((state) => {
          state.printCommand = value;
        });
      }
      /**
       * Mutates the command builder to change the logger used
       * for `printCommand()`.
       */
      setPrintCommandLogger(logger) {
        this.#state.printCommandLogger.setValue(logger);
      }
      /**
       * Ensures stdout and stderr are piped if they have the default behaviour or are inherited.
       *
       * ```ts
       * // ensure both stdout and stderr is not logged to the console
       * await $`echo 1`.quiet();
       * // ensure stdout is not logged to the console
       * await $`echo 1`.quiet("stdout");
       * // ensure stderr is not logged to the console
       * await $`echo 1`.quiet("stderr");
       * ```
       */
      quiet(kind = "combined") {
        kind = kind === "both" ? "combined" : kind;
        return this.#newWithState((state) => {
          if (kind === "combined" || kind === "stdout") {
            state.stdout.kind = getQuietKind(state.stdout.kind);
          }
          if (kind === "combined" || kind === "stderr") {
            state.stderr.kind = getQuietKind(state.stderr.kind);
          }
        });
        function getQuietKind(kind2) {
          if (typeof kind2 === "object") {
            return kind2;
          }
          switch (kind2) {
            case "inheritPiped":
            case "inherit":
              return "piped";
            case "null":
            case "piped":
              return kind2;
            default: {
              const _assertNever = kind2;
              throw new TypeError(`Unhandled kind ${kind2}.`);
            }
          }
        }
      }
      /**
       * Specifies a timeout for the command. The command will exit with
       * exit code `124` (timeout) if it times out.
       *
       * Note that when using `.noThrow()` this won't cause an error to
       * be thrown when timing out.
       */
      timeout(delay) {
        return this.#newWithState((state) => {
          state.timeout = delay == null ? void 0 : (0, common_js_12.delayToMs)(delay);
        });
      }
      /**
       * Sets stdout as quiet, spawns the command, and gets stdout as a Uint8Array.
       *
       * Shorthand for:
       *
       * ```ts
       * const data = (await $`command`.quiet("stdout")).stdoutBytes;
       * ```
       */
      async bytes(kind = "stdout") {
        const command = kind === "combined" ? this.quiet(kind).captureCombined() : this.quiet(kind);
        return (await command)[`${kind}Bytes`];
      }
      /**
       * Sets the text decoder encoding to use for decoding stdout and stderr.
       *
       * This can be useful when the command output uses a specific character encoding
       * that differs from the default UTF-8 encoding.
       */
      encoding(encoding) {
        return this.#newWithState((state) => {
          state.encoding = encoding;
        });
      }
      /**
       * Sets whether pipefail is enabled. When enabled, a pipeline's exit code
       * is the rightmost non-zero exit code, or 0 if all commands succeed.
       *
       * ```ts
       * // without pipefail (default): exit code is from the last command (grep)
       * const code1 = await $`false | grep foo`.noThrow().code(); // 1 (grep's exit code)
       *
       * // with pipefail: exit code is from the first failing command
       * const code2 = await $`false | grep foo`.pipefail().noThrow().code(); // 1 (false's exit code)
       * ```
       */
      pipefail(value = true) {
        return this.#newWithState((state) => {
          state.shellOptions.pipefail = value;
        });
      }
      /**
       * Sets whether nullglob is enabled. When enabled, a glob pattern that
       * matches no files expands to nothing (empty) rather than being passed
       * through literally.
       *
       * Note: This also disables failglob since nullglob and failglob are
       * mutually exclusive behaviors.
       *
       * ```ts
       * // without nullglob (default): passes pattern literally
       * await $`echo *.nonexistent`; // outputs "*.nonexistent"
       *
       * // with nullglob: expands to nothing
       * await $`echo *.nonexistent`.nullglob(); // outputs empty line
       * ```
       */
      nullglob(value = true) {
        return this.#newWithState((state) => {
          state.shellOptions.nullglob = value;
          if (value) {
            state.shellOptions.failglob = false;
          }
        });
      }
      /**
       * Sets whether failglob is enabled. When enabled, a glob pattern
       * that matches no files causes an error. When disabled (the default),
       * unmatched patterns are passed through literally.
       *
       * ```ts
       * // without failglob (default): passes pattern literally
       * await $`echo *.nonexistent`; // outputs "*.nonexistent"
       *
       * // with failglob: throws error if no matches
       * await $`echo *.nonexistent`.failglob(); // Error: glob: no matches found
       * ```
       */
      failglob(value = true) {
        return this.#newWithState((state) => {
          state.shellOptions.failglob = value;
        });
      }
      /**
       * Sets whether globstar is enabled. When enabled (the default), the pattern `**`
       * used in a pathname expansion context will match all files and zero or more
       * directories and subdirectories. When disabled, `**` is treated as `*`.
       *
       * ```ts
       * // with globstar (default): ** matches recursively
       * await $`echo **\/*.ts`; // matches all .ts files in all subdirectories
       *
       * // without globstar: ** is treated as *
       * await $`echo **\/*.ts`.globstar(false); // matches only .ts files one level deep
       * ```
       */
      globstar(value = true) {
        return this.#newWithState((state) => {
          state.shellOptions.globstar = value;
        });
      }
      /**
       * Sets whether questionGlob is enabled. When enabled, `?` matches any
       * single character in glob patterns. When disabled (the default), `?` is
       * treated literally.
       *
       * This option is only available via the builder API, not via `shopt` or `set`.
       *
       * ```ts
       * // without questionGlob (default): ? is literal
       * await $`echo a?c`; // outputs "a?c"
       *
       * // with questionGlob: ? matches any single character
       * await $`echo a?c`.questionGlob(); // matches files like "abc", "axc", etc.
       * ```
       */
      questionGlob(value = true) {
        return this.#newWithState((state) => {
          state.shellOptions.questionGlob = value;
        });
      }
      /**
       * Sets the provided stream (stdout by default) as quiet, spawns the command, and gets the stream as a string without the last newline.
       * Can be used to get stdout, stderr, or both.
       *
       * Shorthand for:
       *
       * ```ts
       * const data = (await $`command`.quiet("stdout")).stdout.replace(/\r?\n$/, "");
       * ```
       */
      async text(kind = "stdout") {
        return (await this.#textRaw(kind)).replace(/\r?\n$/, "");
      }
      /**
       * Gets the text as an array of lines.
       *
       * Lines are split the same way as {@link CommandBuilder.linesIter} (matches
       * [Rust's `str::lines`](https://doc.rust-lang.org/std/primitive.str.html#method.lines)):
       * line terminators are not included, a trailing blank line caused by a final
       * line ending is excluded, and empty output yields no lines.
       */
      async lines(kind = "stdout") {
        return splitLines(await this.#textRaw(kind));
      }
      async #textRaw(kind) {
        const command = kind === "combined" ? this.quiet(kind).captureCombined() : this.quiet(kind);
        return (await command)[kind];
      }
      /**
       * Streams the command's output and iterates over its lines without
       * buffering everything into memory.
       *
       * Lines are split at `\n` or `\r\n`. Line terminators are not included.
       * A trailing blank line caused by a final line ending is excluded (matches
       * [Rust's `str::lines`](https://doc.rust-lang.org/std/primitive.str.html#method.lines)).
       *
       * If iteration is abandoned before the end of the output is reached, the
       * child process is killed.
       *
       * ```ts
       * for await (const line of $`cat big.txt`.linesIter()) {
       *   console.log(line);
       * }
       * ```
       */
      linesIter(kind = "stdout") {
        const child = this.quiet(kind).spawn();
        return iterateLines(child, kind);
      }
      /**
       * Sets stream (stdout by default) as quiet, spawns the command, and gets stream as JSON.
       *
       * Shorthand for:
       *
       * ```ts
       * const data = (await $`command`.quiet("stdout")).stdoutJson;
       * ```
       */
      async json(kind = "stdout") {
        return (await this.quiet(kind))[`${kind}Json`];
      }
      /**
       * Helper to get the exit code without throwing on non-zero exit codes.
       *
       * Shorthand for:
       *
       * ```ts
       * const code = (await $`command`.noThrow()).code;
       * ```
       */
      async code() {
        const result = await this.noThrow();
        return result.code;
      }
      /** @internal */
      [exports2.getRegisteredCommandNamesSymbol]() {
        return Object.keys(this.#state.commands);
      }
      /** @internal */
      [exports2.setCommandTextStateSymbol](textState) {
        return this.#newWithState((state) => {
          state.command = textState;
        });
      }
    };
    exports2.CommandBuilder = CommandBuilder;
    _a = CommandBuilder;
    var CommandChild = class extends Promise {
      #pipedStdoutBuffer;
      #pipedStderrBuffer;
      #killSignalController;
      /** @internal */
      constructor(executor, options = { pipedStderrBuffer: void 0, pipedStdoutBuffer: void 0, killSignalController: void 0 }) {
        super(executor);
        this.#pipedStdoutBuffer = options.pipedStdoutBuffer;
        this.#pipedStderrBuffer = options.pipedStderrBuffer;
        this.#killSignalController = options.killSignalController;
      }
      /** Send a signal to the executing command's child process. Note that SIGTERM,
       * SIGKILL, SIGABRT, SIGQUIT, SIGINT, or SIGSTOP will cause the entire command
       * to be considered "aborted" and if part of a command runs after this has occurred
       * it will return a 124 exit code. Other signals will just be forwarded to the command.
       *
       * Defaults to "SIGTERM".
       */
      kill(signal) {
        this.#killSignalController?.kill(signal);
      }
      /** Returns a `ReadableStream` of the running child's stdout. Requires the
       * stdout to have been set to `"piped"`. May only be consumed once. */
      stdout() {
        const buffer = this.#pipedStdoutBuffer;
        this.#assertBufferStreamable("stdout", buffer);
        this.#pipedStdoutBuffer = "consumed";
        this.catch(() => {
        });
        return this.#bufferToStream(buffer);
      }
      /** Returns a `ReadableStream` of the running child's stderr. Requires the
       * stderr to have been set to `"piped"`. May only be consumed once. */
      stderr() {
        const buffer = this.#pipedStderrBuffer;
        this.#assertBufferStreamable("stderr", buffer);
        this.#pipedStderrBuffer = "consumed";
        this.catch(() => {
        });
        return this.#bufferToStream(buffer);
      }
      #assertBufferStreamable(name, buffer) {
        if (buffer == null) {
          throw new Error(`No pipe available. Ensure ${name} is "piped" (not "inheritPiped") and combinedOutput is not enabled.`);
        }
        if (buffer === "consumed") {
          throw new Error(`Streamable ${name} was already consumed. Use the previously acquired stream instead.`);
        }
      }
      #bufferToStream(buffer) {
        const self = this;
        return new dntShim.ReadableStream({
          start(controller) {
            buffer.setListener({
              writeSync(data) {
                controller.enqueue(data);
                return data.length;
              },
              setError(err) {
                controller.error(err);
              },
              close() {
                controller.close();
              }
            });
          },
          cancel(_reason) {
            self.kill();
          }
        });
      }
    };
    exports2.CommandChild = CommandChild;
    function parseAndSpawnCommand(state, callerStack) {
      if (state.command == null) {
        throw new Error("A command must be set before it can be spawned.");
      }
      if (state.printCommand) {
        const tailHidesCommand = state.tailDisplay !== false && state.tailDisplay.header !== false;
        if (!tailHidesCommand) {
          state.printCommandLogger.getValue()(state.command.text);
        }
      }
      const disposables = [];
      const asyncDisposables = [];
      const parentSignal = state.signal;
      const killSignalController = new KillController();
      if (parentSignal != null) {
        const parentSignalListener = (signal2) => {
          killSignalController.kill(signal2);
        };
        parentSignal.addListener(parentSignalListener);
        if (parentSignal.aborted) {
          killSignalController.kill("SIGTERM");
        }
        disposables.push({
          [Symbol.dispose]() {
            parentSignal.removeListener(parentSignalListener);
          }
        });
      }
      let timedOut = false;
      if (state.timeout != null) {
        const timeoutId = setTimeout(() => {
          timedOut = true;
          killSignalController.kill();
        }, state.timeout);
        disposables.push({
          [Symbol.dispose]() {
            clearTimeout(timeoutId);
          }
        });
      }
      const resolvedTailWriterOptions = state.tailDisplay !== false ? resolveTailWriterOptions(state.tailDisplay, state.command.text, Boolean(state.printCommand)) : void 0;
      const [stdoutBuffer, stderrBuffer, combinedBuffer, tailWriters] = getBuffers();
      const errorTail = state.errorTail;
      const errorTailMaxBytes = errorTail === false ? 0 : errorTail.maxBytes ?? pipes_js_1.DEFAULT_ERROR_TAIL_BYTES;
      const errorTailCombined = errorTail !== false && errorTail.combined === true;
      const captureStdout = shouldCaptureForErrorTail(errorTail, "stdout", state.stdout.kind);
      const captureStderr = shouldCaptureForErrorTail(errorTail, "stderr", state.stderr.kind);
      let stdoutErrorRing;
      let stderrErrorRing;
      let combinedErrorRing;
      if (errorTailCombined && (captureStdout || captureStderr)) {
        combinedErrorRing = new byteRingBuffer_js_1.ByteRingBuffer(errorTailMaxBytes);
        if (captureStdout)
          stdoutErrorRing = combinedErrorRing;
        if (captureStderr)
          stderrErrorRing = combinedErrorRing;
      } else {
        if (captureStdout)
          stdoutErrorRing = new byteRingBuffer_js_1.ByteRingBuffer(errorTailMaxBytes);
        if (captureStderr)
          stderrErrorRing = new byteRingBuffer_js_1.ByteRingBuffer(errorTailMaxBytes);
      }
      const tailEnabled = state.tailDisplay !== false;
      const stdoutShellKind = resolveShellKind(state.stdout.kind, tailEnabled, stdoutErrorRing != null);
      const stderrShellKind = resolveShellKind(state.stderr.kind, tailEnabled, stderrErrorRing != null);
      const stdoutInner = stdoutBuffer === "null" ? new pipes_js_1.NullPipeWriter() : stdoutBuffer === "inherit" ? streams_js_1.stdout : stdoutBuffer;
      const stderrInner = stderrBuffer === "null" ? new pipes_js_1.NullPipeWriter() : stderrBuffer === "inherit" ? streams_js_1.stderr : stderrBuffer;
      const stdout = new pipes_js_1.ShellPipeWriter(stdoutShellKind, stdoutErrorRing != null ? wrapWithErrorTailCapture(stdoutInner, stdoutErrorRing) : stdoutInner);
      const stderr = new pipes_js_1.ShellPipeWriter(stderrShellKind, stderrErrorRing != null ? wrapWithErrorTailCapture(stderrInner, stderrErrorRing) : stderrInner);
      const { text: commandText, fds } = state.command;
      const signal = killSignalController.signal;
      return new CommandChild(async (resolve, reject) => {
        try {
          const list = (0, shell_js_1.parseCommand)(commandText);
          const stdin = await takeStdin();
          let code = await (0, shell_js_1.spawn)(list, {
            stdin: stdin instanceof dntShim.ReadableStream ? (0, reader_from_stream_reader_js_1.readerFromStreamReader)(stdin.getReader()) : stdin,
            stdout,
            stderr,
            env: buildEnv(state.env, state.clearEnv),
            commands: state.commands,
            cwd: state.cwd ?? process.cwd(),
            exportEnv: state.exportEnv,
            clearedEnv: state.clearEnv,
            signal,
            fds,
            shellOptions: state.shellOptions
          });
          if (code !== 0) {
            if (timedOut) {
              code = 124;
            }
            const noThrow = state.noThrow instanceof Array ? state.noThrow.includes(code) : state.noThrow;
            if (!noThrow) {
              if (stdin instanceof dntShim.ReadableStream) {
                if (!stdin.locked) {
                  stdin.cancel();
                }
              }
              throw new ShellError({
                exitCode: code,
                timedOut,
                aborted: signal.aborted,
                stdoutRing: stdoutErrorRing,
                stderrRing: stderrErrorRing,
                combinedRing: combinedErrorRing
              });
            }
          }
          for (const tw of tailWriters)
            tw.finalize();
          const result = new CommandResult(code, finalizeCommandResultBuffer(stdoutBuffer), finalizeCommandResultBuffer(stderrBuffer), combinedBuffer instanceof buffer_js_1.Buffer ? combinedBuffer : void 0, state.encoding);
          const maybeError = await cleanupDisposablesAndMaybeGetError(void 0);
          if (maybeError) {
            attachCallerStack(maybeError, callerStack);
            reject(maybeError);
          } else {
            resolve(result);
          }
        } catch (err) {
          for (const tw of tailWriters)
            tw.finalizeForError();
          finalizeCommandResultBufferForError(stdoutBuffer, err);
          finalizeCommandResultBufferForError(stderrBuffer, err);
          const rejectErr = await cleanupDisposablesAndMaybeGetError(err);
          attachCallerStack(rejectErr, callerStack);
          reject(rejectErr);
        }
      }, {
        pipedStdoutBuffer: stdoutBuffer instanceof pipes_js_1.PipedBuffer ? stdoutBuffer : void 0,
        pipedStderrBuffer: stderrBuffer instanceof pipes_js_1.PipedBuffer ? stderrBuffer : void 0,
        killSignalController
      });
      async function cleanupDisposablesAndMaybeGetError(maybeError) {
        const errors = [];
        if (maybeError) {
          errors.push(maybeError);
        }
        for (const disposable of disposables) {
          try {
            disposable[Symbol.dispose]();
          } catch (err) {
            errors.push(err);
          }
        }
        if (asyncDisposables.length > 0) {
          await Promise.all(asyncDisposables.map(async (d) => {
            try {
              await d[Symbol.asyncDispose]();
            } catch (err) {
              errors.push(err);
            }
          }));
        }
        if (errors.length === 1) {
          return errors[0];
        } else if (errors.length > 1) {
          return new AggregateError(errors);
        } else {
          return void 0;
        }
      }
      async function takeStdin() {
        if (state.stdin instanceof common_js_12.Box) {
          const stdin = state.stdin.value;
          if (stdin === "consumed") {
            throw new Error("Cannot spawn command. Stdin was already consumed when a previous command using the same stdin was spawned. You need to call `.stdin(...)` again with a new value before spawning.");
          }
          state.stdin.value = "consumed";
          return stdin;
        } else if (state.stdin instanceof Deferred) {
          const stdin = await state.stdin.create();
          if (stdin instanceof dntShim.ReadableStream) {
            asyncDisposables.push({
              async [Symbol.asyncDispose]() {
                if (!stdin.locked) {
                  await stdin.cancel();
                }
              }
            });
          }
          return stdin;
        } else {
          return state.stdin;
        }
      }
      function getBuffers() {
        const hasProgressBars = mod_js_22.staticText.hasText();
        const tailOpts = resolvedTailWriterOptions;
        const stdoutTail = tailOpts && canTail(state.stdout.kind) ? new pipes_js_1.InheritTailWriter(streams_js_1.stdout, tailOpts) : void 0;
        const stderrTail = tailOpts && canTail(state.stderr.kind) ? stdoutTail != null ? new pipes_js_1.InheritTailWriter(streams_js_1.stderr, stdoutTail) : new pipes_js_1.InheritTailWriter(streams_js_1.stderr, tailOpts) : void 0;
        const tailWriters2 = [];
        if (stdoutTail != null)
          tailWriters2.push(stdoutTail);
        if (stderrTail != null)
          tailWriters2.push(stderrTail);
        const stdoutBuffer2 = getOutputBuffer(streams_js_1.stdout, state.stdout, stdoutTail);
        const stderrBuffer2 = getOutputBuffer(streams_js_1.stderr, state.stderr, stderrTail);
        if (state.combinedStdoutStderr) {
          if (typeof stdoutBuffer2 === "string" || typeof stderrBuffer2 === "string") {
            throw new Error("Internal programming error. Expected writers for stdout and stderr.");
          }
          const combinedBuffer2 = new buffer_js_1.Buffer();
          return [
            getCapturingBuffer(stdoutBuffer2, combinedBuffer2),
            getCapturingBuffer(stderrBuffer2, combinedBuffer2),
            combinedBuffer2,
            tailWriters2
          ];
        }
        return [stdoutBuffer2, stderrBuffer2, void 0, tailWriters2];
        function canTail(kind) {
          return kind === "inherit" || kind === "inheritPiped";
        }
        function getCapturingBuffer(buffer, combinedBuffer2) {
          if ("write" in buffer) {
            return new pipes_js_1.CapturingBufferWriter(buffer, combinedBuffer2);
          } else {
            return new pipes_js_1.CapturingBufferWriterSync(buffer, combinedBuffer2);
          }
        }
        function getOutputBuffer(inheritWriter, { kind, options }, tail) {
          if (typeof kind === "object") {
            if (kind instanceof mod_js_12.Path) {
              const file = kind.openSync({ write: true, truncate: true, create: true });
              disposables.push({
                [Symbol.dispose]() {
                  file.close();
                }
              });
              return file;
            } else if (kind instanceof dntShim.WritableStream) {
              const streamWriter = kind.getWriter();
              asyncDisposables.push({
                async [Symbol.asyncDispose]() {
                  streamWriter.releaseLock();
                  if (!options?.preventClose) {
                    try {
                      await kind.close();
                    } catch {
                    }
                  }
                }
              });
              return writerFromStreamWriter(streamWriter);
            } else {
              return kind;
            }
          }
          switch (kind) {
            case "inherit":
              if (tail != null) {
                return tail;
              } else if (hasProgressBars) {
                return new pipes_js_1.InheritStaticTextBypassWriter(inheritWriter);
              } else {
                return "inherit";
              }
            case "piped":
              return new pipes_js_1.PipedBuffer();
            case "inheritPiped":
              return new pipes_js_1.CapturingBufferWriterSync(tail ?? inheritWriter, new buffer_js_1.Buffer());
            case "null":
              return "null";
            default: {
              const _assertNever = kind;
              throw new TypeError("Unhandled.");
            }
          }
        }
      }
      function finalizeCommandResultBuffer(buffer) {
        if (buffer instanceof pipes_js_1.CapturingBufferWriterSync || buffer instanceof pipes_js_1.CapturingBufferWriter) {
          return buffer.getBuffer();
        } else if (buffer instanceof pipes_js_1.InheritStaticTextBypassWriter) {
          buffer.flush();
          return "inherit";
        } else if (buffer instanceof pipes_js_1.InheritTailWriter) {
          return "inherit";
        } else if (buffer instanceof pipes_js_1.PipedBuffer) {
          buffer.close();
          return buffer.getBuffer() ?? "streamed";
        } else if (typeof buffer === "object") {
          return "streamed";
        } else {
          return buffer;
        }
      }
      function finalizeCommandResultBufferForError(buffer, error) {
        if (buffer instanceof pipes_js_1.InheritStaticTextBypassWriter) {
          buffer.flush();
        } else if (buffer instanceof pipes_js_1.PipedBuffer) {
          buffer.setError(error);
        }
      }
    }
    var ShellError = class extends Error {
      name = "ShellError";
      /** The process exit code. */
      exitCode;
      /** Whether the command was killed because its timeout elapsed. */
      timedOut;
      /** Whether the command was aborted via its kill signal. */
      aborted;
      /** Captured trailing stdout text from the error-tail ring buffer.
       * Empty string when stdout was not captured (e.g. routed to the
       * terminal, or errorTail disabled for stdout). */
      stdout;
      /** Captured trailing stderr text from the error-tail ring buffer.
       * Empty string when stderr was not captured. */
      stderr;
      #cachedMessage;
      #baseMessage;
      /** @internal */
      constructor(options) {
        super();
        this.exitCode = options.exitCode;
        this.timedOut = options.timedOut;
        this.aborted = options.aborted;
        if (options.timedOut) {
          this.#baseMessage = `Timed out with exit code: ${options.exitCode}`;
        } else if (options.aborted) {
          this.#baseMessage = `Aborted with exit code: ${options.exitCode}`;
        } else {
          this.#baseMessage = `Exited with code: ${options.exitCode}`;
        }
        if (options.combinedRing != null && options.combinedRing.size > 0) {
          const combined = textDecoder.decode(options.combinedRing.toBytes());
          this.stdout = combined;
          this.stderr = combined;
        } else {
          this.stdout = options.stdoutRing != null && options.stdoutRing.size > 0 ? textDecoder.decode(options.stdoutRing.toBytes()) : "";
          this.stderr = options.stderrRing != null && options.stderrRing.size > 0 ? textDecoder.decode(options.stderrRing.toBytes()) : "";
        }
        delete this.message;
      }
      get message() {
        if (this.#cachedMessage == null) {
          this.#cachedMessage = this.#baseMessage + formatErrorTailSuffix(this.stdout, this.stderr);
        }
        return this.#cachedMessage;
      }
      set message(value) {
        this.#cachedMessage = value;
      }
    };
    exports2.ShellError = ShellError;
    var CommandResult = class {
      #stdout;
      #stderr;
      #combined;
      #textDecoder;
      /** The exit code. */
      code;
      /** @internal */
      constructor(code, stdout, stderr, combined, encoding) {
        this.code = code;
        this.#stdout = stdout;
        this.#stderr = stderr;
        this.#combined = combined;
        this.#textDecoder = encoding ? new dntShim.TextDecoder(encoding) : textDecoder;
      }
      #memoizedStdout;
      /** Raw decoded stdout text. */
      get stdout() {
        if (!this.#memoizedStdout) {
          this.#memoizedStdout = this.#textDecoder.decode(this.stdoutBytes);
        }
        return this.#memoizedStdout;
      }
      #memoizedStdoutJson;
      /**
       * Stdout text as JSON.
       *
       * @remarks Will throw if it can't be parsed as JSON.
       */
      get stdoutJson() {
        if (this.#memoizedStdoutJson == null) {
          this.#memoizedStdoutJson = JSON.parse(this.stdout);
        }
        return this.#memoizedStdoutJson;
      }
      /** Raw stdout bytes. */
      get stdoutBytes() {
        if (this.#stdout === "streamed") {
          throw new Error(`Stdout was streamed to another source and is no longer available.`);
        }
        if (typeof this.#stdout === "string") {
          throw new Error(`Stdout was not piped (was ${this.#stdout}). Call .stdout("piped") or .stdout("inheritPiped") when building the command.`);
        }
        return this.#stdout.bytes({ copy: false });
      }
      #memoizedStderr;
      /** Raw decoded stdout text. */
      get stderr() {
        if (!this.#memoizedStderr) {
          this.#memoizedStderr = this.#textDecoder.decode(this.stderrBytes);
        }
        return this.#memoizedStderr;
      }
      #memoizedStderrJson;
      /**
       * Stderr text as JSON.
       *
       * @remarks Will throw if it can't be parsed as JSON.
       */
      get stderrJson() {
        if (this.#memoizedStderrJson == null) {
          this.#memoizedStderrJson = JSON.parse(this.stderr);
        }
        return this.#memoizedStderrJson;
      }
      /** Raw stderr bytes. */
      get stderrBytes() {
        if (this.#stderr === "streamed") {
          throw new Error(`Stderr was streamed to another source and is no longer available.`);
        }
        if (typeof this.#stderr === "string") {
          throw new Error(`Stderr was not piped (was ${this.#stderr}). Call .stderr("piped") or .stderr("inheritPiped") when building the command.`);
        }
        return this.#stderr.bytes({ copy: false });
      }
      #memoizedCombined;
      /** Raw combined stdout and stderr text. */
      get combined() {
        if (!this.#memoizedCombined) {
          this.#memoizedCombined = textDecoder.decode(this.combinedBytes);
        }
        return this.#memoizedCombined;
      }
      /** Raw combined stdout and stderr bytes. */
      get combinedBytes() {
        if (this.#combined == null) {
          throw new Error("Stdout and stderr were not combined. Call .captureCombined() when building the command.");
        }
        return this.#combined.bytes({ copy: false });
      }
    };
    exports2.CommandResult = CommandResult;
    function shouldCaptureForErrorTail(errorTail, stream, kind) {
      if (errorTail === false)
        return false;
      if (errorTail[stream] === false)
        return false;
      if (kind === "inherit" || kind === "inheritPiped")
        return false;
      return true;
    }
    function resolveShellKind(userKind, tailEnabled, errorTailEnabled) {
      if (!tailEnabled && !errorTailEnabled)
        return userKind;
      if (userKind === "inherit")
        return "inheritPiped";
      if (userKind === "null" && errorTailEnabled)
        return "piped";
      return userKind;
    }
    function wrapWithErrorTailCapture(inner, ring) {
      if ("write" in inner) {
        return new pipes_js_1.ErrorTailCaptureWriter(inner, ring);
      }
      return new pipes_js_1.ErrorTailCaptureWriterSync(inner, ring);
    }
    function formatErrorTailSuffix(stdoutText, stderrText) {
      if (stdoutText.length === 0 && stderrText.length === 0)
        return "";
      if (stdoutText === stderrText) {
        return `

${stripTrailingNewline(stdoutText)}`;
      }
      let suffix = "";
      if (stderrText.length > 0 && stdoutText.length > 0) {
        suffix += `

stderr:
${stripTrailingNewline(stderrText)}`;
        suffix += `

stdout:
${stripTrailingNewline(stdoutText)}`;
      } else if (stderrText.length > 0) {
        suffix += `

${stripTrailingNewline(stderrText)}`;
      } else {
        suffix += `

${stripTrailingNewline(stdoutText)}`;
      }
      return suffix;
    }
    function stripTrailingNewline(text) {
      if (text.endsWith("\r\n"))
        return text.slice(0, -2);
      if (text.endsWith("\n"))
        return text.slice(0, -1);
      return text;
    }
    function resolveTailWriterOptions(display, command, promoteHeaderOnSuccess) {
      const headerOpt = display.header;
      let header;
      let headerVerbatim = false;
      if (headerOpt === false) {
        header = void 0;
      } else if (typeof headerOpt === "function") {
        header = ({ size }) => headerOpt({ command, size });
        headerVerbatim = true;
      } else if (typeof headerOpt === "string") {
        header = headerOpt;
        headerVerbatim = true;
      } else {
        header = command;
      }
      return {
        maxLines: display.maxLines,
        header,
        headerVerbatim,
        errorHeader: command,
        promoteHeaderOnSuccess
      };
    }
    function buildEnv(env, clearEnv) {
      const result = clearEnv ? {} : (0, common_js_12.getRealEnvVars)();
      for (const [key, value] of Object.entries(env)) {
        if (value == null) {
          delete result[key];
        } else {
          result[key] = value;
        }
      }
      return result;
    }
    function escapeArg(arg) {
      if (/^[A-Za-z0-9]+$/.test(arg)) {
        return arg;
      } else {
        return `'${arg.replaceAll("'", `'"'"'`)}'`;
      }
    }
    var RawArg = class {
      #value;
      /** Creates a new `RawArg` wrapping the provided value. */
      constructor(value) {
        this.#value = value;
      }
      /** The wrapped value that will be used as-is during template substitution. */
      get value() {
        return this.#value;
      }
    };
    exports2.RawArg = RawArg;
    function rawArg(arg) {
      return new RawArg(arg);
    }
    function validateCommandName(command) {
      if (command.match(/^[a-zA-Z0-9-_]+$/) == null) {
        throw new TypeError("Invalid command name");
      }
    }
    var SHELL_SIGNAL_CTOR_SYMBOL = Symbol();
    var KillController = class {
      #state;
      #killSignal;
      constructor() {
        this.#state = {
          abortedCode: void 0,
          listeners: []
        };
        this.#killSignal = new KillSignal(SHELL_SIGNAL_CTOR_SYMBOL, this.#state);
      }
      /** The associated `KillSignal` to attach to commands. */
      get signal() {
        return this.#killSignal;
      }
      /** Send a signal to the downstream child process. Note that SIGTERM,
       * SIGKILL, SIGABRT, SIGQUIT, SIGINT, or SIGSTOP will cause all the commands
       * to be considered "aborted" and will return a 124 exit code, while other
       * signals will just be forwarded to the commands.
       */
      kill(signal = "SIGTERM") {
        sendSignalToState(this.#state, signal);
      }
    };
    exports2.KillController = KillController;
    var KillSignal = class {
      #state;
      /** @internal */
      constructor(symbol, state) {
        if (symbol !== SHELL_SIGNAL_CTOR_SYMBOL) {
          throw new Error("Constructing instances of KillSignal is not permitted.");
        }
        this.#state = state;
      }
      /** Returns if the command signal has ever received a SIGTERM,
       * SIGKILL, SIGABRT, SIGQUIT, SIGINT, or SIGSTOP
       */
      get aborted() {
        return this.#state.abortedCode !== void 0;
      }
      /** Gets the exit code to use if aborted. */
      get abortedExitCode() {
        return this.#state.abortedCode;
      }
      /**
       * Causes the provided kill signal to be triggered when this
       * signal receives a signal.
       */
      linkChild(killSignal) {
        const listener = (signal) => {
          sendSignalToState(killSignal.#state, signal);
        };
        this.addListener(listener);
        return {
          unsubscribe: () => {
            this.removeListener(listener);
          }
        };
      }
      /** Registers a listener that will be invoked whenever a signal is sent. */
      addListener(listener) {
        this.#state.listeners.push(listener);
      }
      /** Removes a previously registered listener. */
      removeListener(listener) {
        const index = this.#state.listeners.indexOf(listener);
        if (index >= 0) {
          this.#state.listeners.splice(index, 1);
        }
      }
    };
    exports2.KillSignal = KillSignal;
    function killSignalFromAbortSignal(abortSignal) {
      const controller = new KillController();
      if (abortSignal.aborted) {
        controller.kill("SIGTERM");
      } else {
        abortSignal.addEventListener("abort", () => {
          controller.kill("SIGTERM");
        }, { once: true });
      }
      return controller.signal;
    }
    function sendSignalToState(state, signal) {
      const code = getSignalAbortCode(signal);
      if (code !== void 0) {
        state.abortedCode = code;
      }
      for (const listener of state.listeners) {
        listener(signal);
      }
    }
    function getSignalAbortCode(signal) {
      switch (signal) {
        case "SIGTERM":
          return 128 + 15;
        case "SIGKILL":
          return 128 + 9;
        case "SIGABRT":
          return 128 + 6;
        case "SIGQUIT":
          return 128 + 3;
        case "SIGINT":
          return 128 + 2;
        case "SIGSTOP":
          return 128 + 19;
        default:
          return void 0;
      }
    }
    function template(strings, exprs) {
      return templateInner(strings, exprs, escapeArg);
    }
    function templateRaw(strings, exprs) {
      return templateInner(strings, exprs, void 0);
    }
    function templateInner(strings, exprs, escape) {
      let nextStreamFd = 3;
      let text = "";
      let streams;
      const exprsCount = exprs.length;
      for (let i = 0; i < Math.max(strings.length, exprs.length); i++) {
        if (strings.length > i) {
          text += strings[i];
        }
        if (exprs.length > i) {
          try {
            const expr = exprs[i];
            if (expr == null) {
              throw "Expression was null or undefined.";
            }
            const inputOrOutputRedirect = detectInputOrOutputRedirect(text);
            if (inputOrOutputRedirect === "<") {
              if (expr instanceof mod_js_12.Path) {
                text += templateLiteralExprToString(expr, escape);
              } else if (typeof expr === "string") {
                handleReadableStream(() => new dntShim.ReadableStream({
                  start(controller) {
                    controller.enqueue(new TextEncoder().encode(expr));
                    controller.close();
                  }
                }));
              } else if (expr instanceof dntShim.ReadableStream) {
                handleReadableStream(() => expr);
              } else if (expr?.[common_js_12.symbols.readable]) {
                handleReadableStream(() => {
                  const stream = expr[common_js_12.symbols.readable]?.();
                  if (!(stream instanceof dntShim.ReadableStream)) {
                    throw new TypeError(`Expected a ReadableStream or an object with a [$.symbols.readable] method that returns a ReadableStream at expression ${i + 1}/${exprsCount}.`);
                  }
                  return stream;
                });
              } else if (expr instanceof mod_js_12.FsFileWrapper) {
                handleReadableStream(() => expr.readable);
              } else if (expr instanceof Uint8Array) {
                handleReadableStream(() => {
                  return new dntShim.ReadableStream({
                    start(controller) {
                      controller.enqueue(expr);
                      controller.close();
                    }
                  });
                });
              } else if (expr instanceof Response) {
                handleReadableStream(() => {
                  return expr.body ?? new dntShim.ReadableStream({
                    start(controller) {
                      controller.close();
                    }
                  });
                });
              } else if (expr instanceof Function) {
                handleReadableStream(() => {
                  try {
                    const result = expr();
                    if (!(result instanceof dntShim.ReadableStream)) {
                      throw new TypeError("Function did not return a ReadableStream.");
                    }
                    return result;
                  } catch (err) {
                    throw new Error(`Error getting ReadableStream from function at expression ${i + 1}/${exprsCount}. ${(0, common_js_12.errorToString)(err)}`);
                  }
                });
              } else {
                throw new TypeError("Unsupported object provided to input redirect.");
              }
            } else if (inputOrOutputRedirect === ">") {
              if (expr instanceof mod_js_12.Path) {
                text += templateLiteralExprToString(expr, escape);
              } else if (expr instanceof dntShim.WritableStream) {
                handleWritableStream(() => expr);
              } else if (expr instanceof Uint8Array) {
                let pos = 0;
                handleWritableStream(() => {
                  return new dntShim.WritableStream({
                    write(chunk) {
                      const nextPos = chunk.length + pos;
                      if (nextPos > expr.length) {
                        const chunkLength = expr.length - pos;
                        expr.set(chunk.slice(0, chunkLength), pos);
                        throw new Error(`Overflow writing ${nextPos} bytes to Uint8Array (length: ${exprsCount}).`);
                      }
                      expr.set(chunk, pos);
                      pos = nextPos;
                    }
                  });
                });
              } else if (expr instanceof mod_js_12.FsFileWrapper) {
                handleWritableStream(() => expr.writable);
              } else if (expr?.[common_js_12.symbols.writable]) {
                handleWritableStream(() => {
                  const stream = expr[common_js_12.symbols.writable]?.();
                  if (!(stream instanceof dntShim.WritableStream)) {
                    throw new TypeError(`Expected a WritableStream or an object with a [$.symbols.writable] method that returns a WritableStream at expression ${i + 1}/${exprsCount}.`);
                  }
                  return stream;
                });
              } else if (expr instanceof Function) {
                handleWritableStream(() => {
                  try {
                    const result = expr();
                    if (!(result instanceof dntShim.WritableStream)) {
                      throw new TypeError("Function did not return a WritableStream.");
                    }
                    return result;
                  } catch (err) {
                    throw new Error(`Error getting WritableStream from function at expression ${i + 1}/${exprsCount}. ${(0, common_js_12.errorToString)(err)}`);
                  }
                });
              } else if (typeof expr === "string") {
                throw new TypeError("Cannot provide strings to output redirects. Did you mean to provide a path instead via the `$.path(...)` API?");
              } else {
                throw new TypeError("Unsupported object provided to output redirect.");
              }
            } else {
              text += templateLiteralExprToString(expr, escape);
            }
          } catch (err) {
            const startMessage = exprsCount === 1 ? "Failed resolving expression in command." : `Failed resolving expression ${i + 1}/${exprsCount} in command.`;
            const message = `${startMessage} ${(0, common_js_12.errorToString)(err)}`;
            if (err instanceof TypeError) {
              throw new TypeError(message);
            } else {
              throw new Error(message);
            }
          }
        }
      }
      return {
        text,
        fds: streams
      };
      function handleReadableStream(createStream) {
        streams ??= new shell_js_2.StreamFds();
        const fd = nextStreamFd++;
        streams.insertReader(fd, () => {
          const reader = createStream().getReader();
          return {
            ...(0, reader_from_stream_reader_js_1.readerFromStreamReader)(reader),
            [Symbol.dispose]() {
              reader.releaseLock();
            }
          };
        });
        text = text.trimEnd() + "&" + fd;
      }
      function handleWritableStream(createStream) {
        streams ??= new shell_js_2.StreamFds();
        const fd = nextStreamFd++;
        streams.insertWriter(fd, () => {
          const stream = createStream();
          const writer = stream.getWriter();
          return {
            ...writerFromStreamWriter(writer),
            async [Symbol.asyncDispose]() {
              writer.releaseLock();
              try {
                await stream.close();
              } catch {
              }
            }
          };
        });
        text = text.trimEnd() + "&" + fd;
      }
    }
    function detectInputOrOutputRedirect(text) {
      text = text.trimEnd();
      if (text.endsWith(">")) {
        return ">";
      } else if (text.endsWith("<")) {
        return "<";
      } else {
        return void 0;
      }
    }
    function templateLiteralExprToString(expr, escape) {
      let result;
      if (typeof expr === "string") {
        result = expr;
      } else if (expr instanceof Array) {
        return expr.map((e) => templateLiteralExprToString(e, escape)).join(" ");
      } else if (expr instanceof CommandResult) {
        result = expr.stdout.replace(/\r?\n$/, "");
      } else if (expr instanceof CommandBuilder) {
        throw new TypeError("Providing a command builder is not yet supported (https://github.com/dsherret/dax/issues/239). Await the command builder's text before using it in an expression (ex. await $`cmd`.text()).");
      } else if (expr instanceof RawArg) {
        return templateLiteralExprToString(expr.value, void 0);
      } else if (typeof expr === "object" && expr.toString === Object.prototype.toString) {
        if (expr instanceof Promise) {
          throw new TypeError("Provided object was a Promise. Please await it before providing it.");
        } else {
          throw new TypeError("Provided object does not override `toString()`.");
        }
      } else {
        result = `${expr}`;
      }
      return escape ? escape(result) : result;
    }
    function writerFromStreamWriter(streamWriter) {
      return {
        async write(p) {
          await streamWriter.ready;
          await streamWriter.write(p);
          return p.length;
        }
      };
    }
    function isAwaitableReadable(value) {
      return value != null && (typeof value === "object" || typeof value === "function") && typeof value.then === "function";
    }
    function captureCallerStack(skipUpTo) {
      const captureFn = Error.captureStackTrace;
      if (captureFn == null) {
        return new Error().stack;
      }
      const holder = {};
      captureFn(holder, skipUpTo);
      return holder.stack;
    }
    var proxyToCommandBuilder = /* @__PURE__ */ new WeakMap();
    function wrapCommandBuilderNonThenable(builder) {
      const proxy = new Proxy(builder, {
        get(target, prop, _receiver) {
          if (prop === "then")
            return void 0;
          const value = Reflect.get(target, prop, target);
          if (typeof value === "function") {
            return (...args) => {
              const result = value.apply(target, args);
              if (result instanceof CommandBuilder) {
                return wrapCommandBuilderNonThenable(result);
              }
              return result;
            };
          }
          return value;
        }
      });
      proxyToCommandBuilder.set(proxy, builder);
      return proxy;
    }
    function unwrapCommandBuilder(result) {
      if (!(result instanceof CommandBuilder))
        return void 0;
      return proxyToCommandBuilder.get(result) ?? result;
    }
    function attachCallerStack(err, callerStack) {
      if (callerStack == null || !(err instanceof Error)) {
        return;
      }
      const newlineIdx = callerStack.indexOf("\n");
      if (newlineIdx === -1)
        return;
      const frames = callerStack.slice(newlineIdx + 1);
      if (frames.length === 0)
        return;
      err.stack = err.stack == null ? frames : `${err.stack}
${frames}`;
    }
    function splitLines(text) {
      const lines = [];
      let start = 0;
      while (true) {
        const nl = text.indexOf("\n", start);
        if (nl === -1)
          break;
        const end = nl > start && text.charCodeAt(nl - 1) === 13 ? nl - 1 : nl;
        lines.push(text.substring(start, end));
        start = nl + 1;
      }
      if (start < text.length)
        lines.push(text.substring(start));
      return lines;
    }
    async function* iterateLines(child, kind) {
      const stream = kind === "stdout" ? child.stdout() : child.stderr();
      const reader = stream.getReader();
      const decoder = new dntShim.TextDecoder();
      let buffer = "";
      let completed = false;
      try {
        while (true) {
          const { done, value } = await reader.read();
          if (done)
            break;
          if (value.length === 0)
            continue;
          buffer += decoder.decode(value, { stream: true });
          let start = 0;
          while (true) {
            const nl = buffer.indexOf("\n", start);
            if (nl === -1)
              break;
            const end = nl > start && buffer.charCodeAt(nl - 1) === 13 ? nl - 1 : nl;
            yield buffer.substring(start, end);
            start = nl + 1;
          }
          if (start > 0)
            buffer = buffer.substring(start);
        }
        buffer += decoder.decode();
        if (buffer !== "")
          yield buffer;
        completed = true;
      } finally {
        try {
          await reader.cancel();
        } catch {
        }
        if (!completed) {
          child.kill();
          try {
            await child;
          } catch {
          }
        } else {
          await child;
        }
      }
    }
  }
});

// npm/script/deps/jsr.io/@david/shell/0.6.0/src/dollar.js
var require_dollar = __commonJS({
  "npm/script/deps/jsr.io/@david/shell/0.6.0/src/dollar.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.$ = void 0;
    exports2.build$ = build$2;
    var command_js_1 = require_command();
    var common_js_12 = require_common();
    function build$FromState2(state) {
      const tag = (strings, ...exprs) => state.commandBuilder.getValue()[command_js_1.setCommandTextStateSymbol]((0, command_js_1.template)(strings, exprs));
      const result = Object.assign(tag, {
        escapeArg: command_js_1.escapeArg,
        rawArg: command_js_1.rawArg,
        raw(strings, ...exprs) {
          return state.commandBuilder.getValue()[command_js_1.setCommandTextStateSymbol]((0, command_js_1.templateRaw)(strings, exprs));
        },
        build$(opts = {}) {
          return build$FromState2({
            commandBuilder: resolveCommandBuilder(opts.commandBuilder, state.commandBuilder),
            extras: { ...state.extras, ...opts.extras }
          });
        }
      }, state.extras ?? {});
      return result;
    }
    function resolveCommandBuilder(value, parent) {
      if (value instanceof command_js_1.CommandBuilder) {
        return new common_js_12.TreeBox(value);
      } else if (typeof value === "function") {
        const base = parent != null ? parent.getValue() : new command_js_1.CommandBuilder();
        return new common_js_12.TreeBox(value(base));
      } else {
        return parent != null ? parent.createChild() : new common_js_12.TreeBox(new command_js_1.CommandBuilder());
      }
    }
    function build$2(opts = {}) {
      return build$FromState2({
        commandBuilder: resolveCommandBuilder(opts.commandBuilder, void 0),
        extras: opts.extras
      });
    }
    exports2.$ = build$2();
  }
});

// npm/script/deps/jsr.io/@david/shell/0.6.0/mod.js
var require_mod4 = __commonJS({
  "npm/script/deps/jsr.io/@david/shell/0.6.0/mod.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.Path = exports2.FsFileWrapper = exports2.delayToMs = exports2.open = exports2.FsFile = exports2.create = exports2.build$ = exports2.$ = exports2.stdout = exports2.stdin = exports2.stderr = exports2.createExecutableCommand = exports2.whichRealEnv = exports2.WhichEnv = exports2.ShellError = exports2.rawArg = exports2.RawArg = exports2.KillSignal = exports2.KillController = exports2.escapeArg = exports2.CommandResult = exports2.CommandChild = exports2.CommandBuilder = void 0;
    var command_js_1 = require_command();
    Object.defineProperty(exports2, "CommandBuilder", { enumerable: true, get: function() {
      return command_js_1.CommandBuilder;
    } });
    Object.defineProperty(exports2, "CommandChild", { enumerable: true, get: function() {
      return command_js_1.CommandChild;
    } });
    Object.defineProperty(exports2, "CommandResult", { enumerable: true, get: function() {
      return command_js_1.CommandResult;
    } });
    Object.defineProperty(exports2, "escapeArg", { enumerable: true, get: function() {
      return command_js_1.escapeArg;
    } });
    Object.defineProperty(exports2, "KillController", { enumerable: true, get: function() {
      return command_js_1.KillController;
    } });
    Object.defineProperty(exports2, "KillSignal", { enumerable: true, get: function() {
      return command_js_1.KillSignal;
    } });
    Object.defineProperty(exports2, "RawArg", { enumerable: true, get: function() {
      return command_js_1.RawArg;
    } });
    Object.defineProperty(exports2, "rawArg", { enumerable: true, get: function() {
      return command_js_1.rawArg;
    } });
    Object.defineProperty(exports2, "ShellError", { enumerable: true, get: function() {
      return command_js_1.ShellError;
    } });
    var shell_js_1 = require_shell();
    Object.defineProperty(exports2, "WhichEnv", { enumerable: true, get: function() {
      return shell_js_1.WhichEnv;
    } });
    Object.defineProperty(exports2, "whichRealEnv", { enumerable: true, get: function() {
      return shell_js_1.whichRealEnv;
    } });
    var executable_js_1 = require_executable();
    Object.defineProperty(exports2, "createExecutableCommand", { enumerable: true, get: function() {
      return executable_js_1.createExecutableCommand;
    } });
    var streams_js_1 = require_streams();
    Object.defineProperty(exports2, "stderr", { enumerable: true, get: function() {
      return streams_js_1.stderr;
    } });
    Object.defineProperty(exports2, "stdin", { enumerable: true, get: function() {
      return streams_js_1.stdin;
    } });
    Object.defineProperty(exports2, "stdout", { enumerable: true, get: function() {
      return streams_js_1.stdout;
    } });
    var dollar_js_1 = require_dollar();
    Object.defineProperty(exports2, "$", { enumerable: true, get: function() {
      return dollar_js_1.$;
    } });
    Object.defineProperty(exports2, "build$", { enumerable: true, get: function() {
      return dollar_js_1.build$;
    } });
    var dollar_js_2 = require_dollar();
    exports2.default = dollar_js_2.$;
    var fsFile_js_1 = require_fsFile();
    Object.defineProperty(exports2, "create", { enumerable: true, get: function() {
      return fsFile_js_1.create;
    } });
    Object.defineProperty(exports2, "FsFile", { enumerable: true, get: function() {
      return fsFile_js_1.FsFile;
    } });
    Object.defineProperty(exports2, "open", { enumerable: true, get: function() {
      return fsFile_js_1.open;
    } });
    var common_js_12 = require_common();
    Object.defineProperty(exports2, "delayToMs", { enumerable: true, get: function() {
      return common_js_12.delayToMs;
    } });
    var mod_js_12 = require_mod2();
    Object.defineProperty(exports2, "FsFileWrapper", { enumerable: true, get: function() {
      return mod_js_12.FsFileWrapper;
    } });
    Object.defineProperty(exports2, "Path", { enumerable: true, get: function() {
      return mod_js_12.Path;
    } });
  }
});

// npm/script/deps/jsr.io/@david/shell/0.6.0/internal.js
var require_internal = __commonJS({
  "npm/script/deps/jsr.io/@david/shell/0.6.0/internal.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.TreeBox = exports2.symbols = exports2.LoggerTreeBox = exports2.Box = exports2.templateRaw = exports2.template = exports2.setCommandTextStateSymbol = exports2.getRegisteredCommandNamesSymbol = void 0;
    var command_js_1 = require_command();
    Object.defineProperty(exports2, "getRegisteredCommandNamesSymbol", { enumerable: true, get: function() {
      return command_js_1.getRegisteredCommandNamesSymbol;
    } });
    Object.defineProperty(exports2, "setCommandTextStateSymbol", { enumerable: true, get: function() {
      return command_js_1.setCommandTextStateSymbol;
    } });
    Object.defineProperty(exports2, "template", { enumerable: true, get: function() {
      return command_js_1.template;
    } });
    Object.defineProperty(exports2, "templateRaw", { enumerable: true, get: function() {
      return command_js_1.templateRaw;
    } });
    var common_js_12 = require_common();
    Object.defineProperty(exports2, "Box", { enumerable: true, get: function() {
      return common_js_12.Box;
    } });
    Object.defineProperty(exports2, "LoggerTreeBox", { enumerable: true, get: function() {
      return common_js_12.LoggerTreeBox;
    } });
    Object.defineProperty(exports2, "symbols", { enumerable: true, get: function() {
      return common_js_12.symbols;
    } });
    Object.defineProperty(exports2, "TreeBox", { enumerable: true, get: function() {
      return common_js_12.TreeBox;
    } });
  }
});

// npm/script/src/common.js
var require_common2 = __commonJS({
  "npm/script/src/common.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.TimeoutError = void 0;
    exports2.delayToIterator = delayToIterator;
    exports2.formatMillis = formatMillis;
    exports2.filterEmptyRecordValues = filterEmptyRecordValues;
    exports2.getFileNameFromUrl = getFileNameFromUrl;
    var mod_js_12 = require_mod4();
    var TimeoutError = class extends Error {
      constructor(message) {
        super(message);
      }
      get name() {
        return "TimeoutError";
      }
    };
    exports2.TimeoutError = TimeoutError;
    function delayToIterator(delay) {
      if (typeof delay !== "number" && typeof delay !== "string") {
        return delay;
      }
      const ms = (0, mod_js_12.delayToMs)(delay);
      return {
        next() {
          return ms;
        }
      };
    }
    function formatMillis(ms) {
      if (ms < 1e3) {
        return `${formatValue(ms)} millisecond${ms === 1 ? "" : "s"}`;
      } else if (ms < 60 * 1e3) {
        const s = ms / 1e3;
        return `${formatValue(s)} ${pluralize("second", s)}`;
      } else {
        const mins = ms / 60 / 1e3;
        return `${formatValue(mins)} ${pluralize("minute", mins)}`;
      }
      function formatValue(value) {
        const text = value.toFixed(2);
        if (text.endsWith(".00")) {
          return value.toFixed(0);
        } else if (text.endsWith("0")) {
          return value.toFixed(1);
        } else {
          return text;
        }
      }
      function pluralize(text, value) {
        const suffix = value === 1 ? "" : "s";
        return text + suffix;
      }
    }
    function filterEmptyRecordValues(record) {
      const result = {};
      for (const [key, value] of Object.entries(record)) {
        if (value != null) {
          result[key] = value;
        }
      }
      return result;
    }
    function getFileNameFromUrl(url) {
      const parsedUrl = url instanceof URL ? url : new URL(url);
      const fileName = parsedUrl.pathname.split("/").at(-1);
      return fileName?.length === 0 ? void 0 : fileName;
    }
  }
});

// npm/script/src/console/logger.js
var require_logger = __commonJS({
  "npm/script/src/console/logger.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.logger = exports2.LoggerRefreshItemKind = void 0;
    var utils_js_1 = require_utils();
    var mod_js_12 = require_mod3();
    var staticTextScope = mod_js_12.staticText.createScope();
    var _renderScope = mod_js_12.renderInterval.start();
    var LoggerRefreshItemKind;
    (function(LoggerRefreshItemKind2) {
      LoggerRefreshItemKind2[LoggerRefreshItemKind2["ProgressBars"] = 0] = "ProgressBars";
      LoggerRefreshItemKind2[LoggerRefreshItemKind2["Selection"] = 1] = "Selection";
    })(LoggerRefreshItemKind || (exports2.LoggerRefreshItemKind = LoggerRefreshItemKind = {}));
    var refreshItems = {
      [LoggerRefreshItemKind.ProgressBars]: void 0,
      [LoggerRefreshItemKind.Selection]: void 0
    };
    function setItems(kind, items, size) {
      refreshItems[kind] = items;
      refresh(size);
    }
    function refresh(size) {
      if (!utils_js_1.isOutputTty) {
        return;
      }
      const items = Object.values(refreshItems).flatMap((items2) => items2 ?? []);
      staticTextScope.setText(items);
      mod_js_12.staticText.refresh(size);
    }
    var logger = {
      setItems,
      logOnce(items, size) {
        staticTextScope.logAbove(items, size);
      },
      withTempClear(action) {
        mod_js_12.staticText.withTempClear(action);
      }
    };
    exports2.logger = logger;
  }
});

// npm/script/src/console/ttyFallback.js
var require_ttyFallback = __commonJS({
  "npm/script/src/console/ttyFallback.js"(exports2) {
    "use strict";
    var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) {
      if (k2 === void 0)
        k2 = k;
      var desc = Object.getOwnPropertyDescriptor(m, k);
      if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m[k];
        } };
      }
      Object.defineProperty(o, k2, desc);
    } : function(o, m, k, k2) {
      if (k2 === void 0)
        k2 = k;
      o[k2] = m[k];
    });
    var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) {
      Object.defineProperty(o, "default", { enumerable: true, value: v });
    } : function(o, v) {
      o["default"] = v;
    });
    var __importStar2 = exports2 && exports2.__importStar || /* @__PURE__ */ function() {
      var ownKeys = function(o) {
        ownKeys = Object.getOwnPropertyNames || function(o2) {
          var ar = [];
          for (var k in o2)
            if (Object.prototype.hasOwnProperty.call(o2, k))
              ar[ar.length] = k;
          return ar;
        };
        return ownKeys(o);
      };
      return function(mod) {
        if (mod && mod.__esModule)
          return mod;
        var result = {};
        if (mod != null) {
          for (var k = ownKeys(mod), i = 0; i < k.length; i++)
            if (k[i] !== "default")
              __createBinding2(result, mod, k[i]);
        }
        __setModuleDefault2(result, mod);
        return result;
      };
    }();
    var __importDefault = exports2 && exports2.__importDefault || function(mod) {
      return mod && mod.__esModule ? mod : { "default": mod };
    };
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.ttyStdin = void 0;
    exports2.hasFallbackTty = hasFallbackTty;
    var fs = __importStar2(require("node:fs"));
    var tty = __importStar2(require("node:tty"));
    var node_process_1 = __importDefault(require("node:process"));
    var cached;
    function tryOpen() {
      if (cached !== void 0)
        return cached;
      try {
        const path = node_process_1.default.platform === "win32" ? "\\\\.\\CONIN$" : "/dev/tty";
        const fd = fs.openSync(path, "r+");
        const stream = new tty.ReadStream(fd);
        cached = { fd, stream };
      } catch {
        cached = null;
      }
      return cached;
    }
    function hasFallbackTty() {
      return tryOpen() != null;
    }
    exports2.ttyStdin = {
      read(p, options) {
        const signal = options?.signal;
        signal?.throwIfAborted();
        const handle = tryOpen();
        if (handle == null)
          return Promise.reject(new Error("No controlling terminal available."));
        return readTty(handle.stream, p, signal);
      },
      setRaw(mode) {
        const handle = tryOpen();
        if (handle == null)
          return;
        handle.stream.setRawMode(mode);
      }
    };
    function readTty(stream, p, signal) {
      return new Promise((resolve, reject) => {
        const onReadable = () => {
          const chunk = stream.read();
          if (chunk === null)
            return;
          cleanup();
          const len = Math.min(chunk.length, p.length);
          p.set(chunk.subarray(0, len));
          if (chunk.length > len)
            stream.unshift(chunk.subarray(len));
          resolve(len);
        };
        const onEnd = () => {
          cleanup();
          resolve(null);
        };
        const onError = (err) => {
          cleanup();
          reject(err);
        };
        const onAbort = () => {
          cleanup();
          reject(signal.reason);
        };
        const cleanup = () => {
          stream.off("readable", onReadable);
          stream.off("end", onEnd);
          stream.off("error", onError);
          signal?.removeEventListener("abort", onAbort);
        };
        stream.on("readable", onReadable);
        stream.on("end", onEnd);
        stream.on("error", onError);
        signal?.addEventListener("abort", onAbort, { once: true });
        onReadable();
      });
    }
  }
});

// npm/script/src/console/utils.js
var require_utils = __commonJS({
  "npm/script/src/console/utils.js"(exports2) {
    "use strict";
    var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) {
      if (k2 === void 0)
        k2 = k;
      var desc = Object.getOwnPropertyDescriptor(m, k);
      if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m[k];
        } };
      }
      Object.defineProperty(o, k2, desc);
    } : function(o, m, k, k2) {
      if (k2 === void 0)
        k2 = k;
      o[k2] = m[k];
    });
    var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) {
      Object.defineProperty(o, "default", { enumerable: true, value: v });
    } : function(o, v) {
      o["default"] = v;
    });
    var __importStar2 = exports2 && exports2.__importStar || /* @__PURE__ */ function() {
      var ownKeys = function(o) {
        ownKeys = Object.getOwnPropertyNames || function(o2) {
          var ar = [];
          for (var k in o2)
            if (Object.prototype.hasOwnProperty.call(o2, k))
              ar[ar.length] = k;
          return ar;
        };
        return ownKeys(o);
      };
      return function(mod) {
        if (mod && mod.__esModule)
          return mod;
        var result = {};
        if (mod != null) {
          for (var k = ownKeys(mod), i = 0; i < k.length; i++)
            if (k[i] !== "default")
              __createBinding2(result, mod, k[i]);
        }
        __setModuleDefault2(result, mod);
        return result;
      };
    }();
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.SelectionItem = exports2.isOutputTty = exports2.Keys = void 0;
    exports2.readKeys = readKeys;
    exports2.hideCursor = hideCursor;
    exports2.showCursor = showCursor;
    exports2.setNotTtyForTesting = setNotTtyForTesting;
    exports2.resultOrExit = resultOrExit;
    exports2.undefinedOnAbort = undefinedOnAbort;
    exports2.createSelection = createSelection;
    var dntShim = __importStar2(require_dnt_shims());
    var logger_js_1 = require_logger();
    var mod_js_12 = require_mod3();
    var mod_js_22 = require_mod4();
    var ttyFallback_js_1 = require_ttyFallback();
    var encoder = new TextEncoder();
    function resolvePromptInput() {
      if (isTerminal(mod_js_22.stdin))
        return mod_js_22.stdin;
      if ((0, ttyFallback_js_1.hasFallbackTty)())
        return ttyFallback_js_1.ttyStdin;
      return void 0;
    }
    var Keys;
    (function(Keys2) {
      Keys2[Keys2["Up"] = 0] = "Up";
      Keys2[Keys2["Down"] = 1] = "Down";
      Keys2[Keys2["Left"] = 2] = "Left";
      Keys2[Keys2["Right"] = 3] = "Right";
      Keys2[Keys2["Enter"] = 4] = "Enter";
      Keys2[Keys2["Space"] = 5] = "Space";
      Keys2[Keys2["Backspace"] = 6] = "Backspace";
    })(Keys || (exports2.Keys = Keys = {}));
    async function* readKeys(reader, signal) {
      const decoder = new dntShim.TextDecoder();
      while (true) {
        const buf = new Uint8Array(8);
        const byteCount = await reader.read(buf, { signal });
        if (byteCount == null) {
          break;
        }
        if (byteCount === 3) {
          if (buf[0] === 27 && buf[1] === 91) {
            if (buf[2] === 65) {
              yield Keys.Up;
              continue;
            } else if (buf[2] === 66) {
              yield Keys.Down;
              continue;
            } else if (buf[2] === 67) {
              yield Keys.Right;
              continue;
            } else if (buf[2] === 68) {
              yield Keys.Left;
              continue;
            }
          }
        } else if (byteCount === 1) {
          if (buf[0] === 3) {
            break;
          } else if (buf[0] === 13) {
            yield Keys.Enter;
            continue;
          } else if (buf[0] === 14) {
            yield Keys.Down;
            continue;
          } else if (buf[0] === 16) {
            yield Keys.Up;
            continue;
          } else if (buf[0] === 32) {
            yield Keys.Space;
            continue;
          } else if (buf[0] === 127) {
            yield Keys.Backspace;
            continue;
          }
        }
        const text = (0, mod_js_12.stripAnsiCodes)(decoder.decode(buf.slice(0, byteCount ?? 0), { stream: true }));
        if (text.length > 0) {
          yield text;
        }
      }
    }
    function hideCursor() {
      mod_js_22.stderr.writeSync(encoder.encode("\x1B[?25l"));
    }
    function showCursor() {
      mod_js_22.stderr.writeSync(encoder.encode("\x1B[?25h"));
    }
    exports2.isOutputTty = (0, mod_js_12.maybeConsoleSize)() != null && isTerminal(mod_js_22.stderr);
    function setNotTtyForTesting() {
      exports2.isOutputTty = false;
    }
    function isTerminal(pipe) {
      if (typeof pipe.isTerminal === "function") {
        return pipe.isTerminal();
      } else {
        throw new Error("Unsupported pipe.");
      }
    }
    function resultOrExit(result) {
      if (result == null) {
        process.exit(130);
      } else {
        return result;
      }
    }
    function undefinedOnAbort(signal, p) {
      if (signal == null)
        return p;
      return p.catch((err) => {
        if (signal.aborted && err === signal.reason)
          return void 0;
        throw err;
      });
    }
    var SelectionItem = class {
      index;
      value;
      constructor(index, value) {
        this.index = index;
        this.value = value;
      }
      [Symbol.toPrimitive](hint) {
        return hint === "string" ? String(this.index) : this.index;
      }
      toString() {
        return String(this.index);
      }
      valueOf() {
        return this.index;
      }
    };
    exports2.SelectionItem = SelectionItem;
    function createSelection(options) {
      const input = exports2.isOutputTty ? resolvePromptInput() : void 0;
      if (input == null) {
        throw new Error(`Cannot prompt when not a tty. (Prompt: '${options.message}')`);
      }
      if ((0, mod_js_12.maybeConsoleSize)() == null) {
        throw new Error(`Cannot prompt when can't get console size. (Prompt: '${options.message}')`);
      }
      const { signal } = options;
      if (signal?.aborted) {
        return Promise.reject(signal.reason);
      }
      return ensureSingleSelection(input, async () => {
        logger_js_1.logger.setItems(logger_js_1.LoggerRefreshItemKind.Selection, options.render());
        try {
          for await (const key of readKeys(input, signal)) {
            const keyResult = options.onKey(key);
            if (keyResult != null)
              return keyResult;
            logger_js_1.logger.setItems(logger_js_1.LoggerRefreshItemKind.Selection, options.render());
          }
          return void 0;
        } finally {
          const size = {
            columns: process.stdout.columns ?? 80,
            rows: process.stdout.rows ?? 24
          };
          logger_js_1.logger.setItems(logger_js_1.LoggerRefreshItemKind.Selection, [], size);
          if (options.noClear) {
            logger_js_1.logger.logOnce(options.render(), size);
          }
        }
      });
    }
    var lastPromise = Promise.resolve();
    function ensureSingleSelection(input, action) {
      const currentLastPromise = lastPromise;
      const currentPromise = (async () => {
        try {
          await currentLastPromise;
        } catch {
        }
        hideCursor();
        try {
          input.setRaw(true);
          try {
            return await action();
          } finally {
            input.setRaw(false);
          }
        } finally {
          showCursor();
        }
      })();
      lastPromise = currentPromise;
      return currentPromise;
    }
  }
});

// npm/script/src/console/alert.js
var require_alert = __commonJS({
  "npm/script/src/console/alert.js"(exports2) {
    "use strict";
    var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) {
      if (k2 === void 0)
        k2 = k;
      var desc = Object.getOwnPropertyDescriptor(m, k);
      if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m[k];
        } };
      }
      Object.defineProperty(o, k2, desc);
    } : function(o, m, k, k2) {
      if (k2 === void 0)
        k2 = k;
      o[k2] = m[k];
    });
    var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) {
      Object.defineProperty(o, "default", { enumerable: true, value: v });
    } : function(o, v) {
      o["default"] = v;
    });
    var __importStar2 = exports2 && exports2.__importStar || /* @__PURE__ */ function() {
      var ownKeys = function(o) {
        ownKeys = Object.getOwnPropertyNames || function(o2) {
          var ar = [];
          for (var k in o2)
            if (Object.prototype.hasOwnProperty.call(o2, k))
              ar[ar.length] = k;
          return ar;
        };
        return ownKeys(o);
      };
      return function(mod) {
        if (mod && mod.__esModule)
          return mod;
        var result = {};
        if (mod != null) {
          for (var k = ownKeys(mod), i = 0; i < k.length; i++)
            if (k[i] !== "default")
              __createBinding2(result, mod, k[i]);
        }
        __setModuleDefault2(result, mod);
        return result;
      };
    }();
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.alert = alert;
    exports2.innerAlert = innerAlert;
    var colors2 = __importStar2(require_colors());
    var utils_js_1 = require_utils();
    function alert(optsOrMessage, options) {
      const opts = typeof optsOrMessage === "string" ? { message: optsOrMessage, ...options } : optsOrMessage;
      return (0, utils_js_1.createSelection)({
        message: opts.message,
        noClear: opts.noClear,
        signal: opts.signal,
        ...innerAlert(opts)
      }).then(utils_js_1.resultOrExit).then(() => void 0);
    }
    function innerAlert(opts) {
      const requireEnter = opts.requireEnter ?? false;
      const drawState = {
        title: opts.message,
        requireEnter,
        hasCompleted: false
      };
      return {
        render: () => render(drawState),
        onKey: (key) => {
          if (!requireEnter || key === utils_js_1.Keys.Enter) {
            drawState.hasCompleted = true;
            return true;
          }
          return void 0;
        }
      };
    }
    function render(state) {
      const hint = state.hasCompleted ? "" : state.requireEnter ? " [press enter]" : " [press any key]";
      return [
        colors2.bold(colors2.blue(state.title)) + colors2.dim(hint)
      ];
    }
  }
});

// npm/script/src/console/confirm.js
var require_confirm = __commonJS({
  "npm/script/src/console/confirm.js"(exports2) {
    "use strict";
    var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) {
      if (k2 === void 0)
        k2 = k;
      var desc = Object.getOwnPropertyDescriptor(m, k);
      if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m[k];
        } };
      }
      Object.defineProperty(o, k2, desc);
    } : function(o, m, k, k2) {
      if (k2 === void 0)
        k2 = k;
      o[k2] = m[k];
    });
    var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) {
      Object.defineProperty(o, "default", { enumerable: true, value: v });
    } : function(o, v) {
      o["default"] = v;
    });
    var __importStar2 = exports2 && exports2.__importStar || /* @__PURE__ */ function() {
      var ownKeys = function(o) {
        ownKeys = Object.getOwnPropertyNames || function(o2) {
          var ar = [];
          for (var k in o2)
            if (Object.prototype.hasOwnProperty.call(o2, k))
              ar[ar.length] = k;
          return ar;
        };
        return ownKeys(o);
      };
      return function(mod) {
        if (mod && mod.__esModule)
          return mod;
        var result = {};
        if (mod != null) {
          for (var k = ownKeys(mod), i = 0; i < k.length; i++)
            if (k[i] !== "default")
              __createBinding2(result, mod, k[i]);
        }
        __setModuleDefault2(result, mod);
        return result;
      };
    }();
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.confirm = confirm;
    exports2.maybeConfirm = maybeConfirm;
    exports2.innerConfirm = innerConfirm;
    var colors2 = __importStar2(require_colors());
    var utils_js_1 = require_utils();
    function confirm(optsOrMessage, options) {
      return maybeConfirm(optsOrMessage, options).then(utils_js_1.resultOrExit);
    }
    function maybeConfirm(optsOrMessage, options) {
      const opts = typeof optsOrMessage === "string" ? { message: optsOrMessage, ...options } : optsOrMessage;
      return (0, utils_js_1.undefinedOnAbort)(opts.signal, (0, utils_js_1.createSelection)({
        message: opts.message,
        noClear: opts.noClear,
        signal: opts.signal,
        ...innerConfirm(opts)
      }));
    }
    function innerConfirm(opts) {
      const drawState = {
        title: opts.message,
        default: opts.default,
        inputText: "",
        hasCompleted: false
      };
      return {
        render: () => render(drawState),
        onKey: (key) => {
          switch (key) {
            case "Y":
            case "y":
              drawState.inputText = "Y";
              break;
            case "N":
            case "n":
              drawState.inputText = "N";
              break;
            case utils_js_1.Keys.Backspace:
              drawState.inputText = "";
              break;
            case utils_js_1.Keys.Enter:
              if (drawState.inputText.length === 0) {
                if (drawState.default == null) {
                  return void 0;
                }
                drawState.inputText = drawState.default ? "Y" : "N";
              }
              drawState.hasCompleted = true;
              return drawState.inputText === "Y" ? true : drawState.inputText === "N" ? false : drawState.default;
          }
        }
      };
    }
    function render(state) {
      return [
        colors2.bold(colors2.blue(state.title)) + " " + (state.hasCompleted ? "" : state.default == null ? "(Y/N) " : state.default ? "(Y/n) " : "(y/N) ") + state.inputText + (state.hasCompleted ? "" : "\u2588")
        // (block character)
      ];
    }
  }
});

// npm/script/src/console/multiSelect.js
var require_multiSelect = __commonJS({
  "npm/script/src/console/multiSelect.js"(exports2) {
    "use strict";
    var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) {
      if (k2 === void 0)
        k2 = k;
      var desc = Object.getOwnPropertyDescriptor(m, k);
      if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m[k];
        } };
      }
      Object.defineProperty(o, k2, desc);
    } : function(o, m, k, k2) {
      if (k2 === void 0)
        k2 = k;
      o[k2] = m[k];
    });
    var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) {
      Object.defineProperty(o, "default", { enumerable: true, value: v });
    } : function(o, v) {
      o["default"] = v;
    });
    var __importStar2 = exports2 && exports2.__importStar || /* @__PURE__ */ function() {
      var ownKeys = function(o) {
        ownKeys = Object.getOwnPropertyNames || function(o2) {
          var ar = [];
          for (var k in o2)
            if (Object.prototype.hasOwnProperty.call(o2, k))
              ar[ar.length] = k;
          return ar;
        };
        return ownKeys(o);
      };
      return function(mod) {
        if (mod && mod.__esModule)
          return mod;
        var result = {};
        if (mod != null) {
          for (var k = ownKeys(mod), i = 0; i < k.length; i++)
            if (k[i] !== "default")
              __createBinding2(result, mod, k[i]);
        }
        __setModuleDefault2(result, mod);
        return result;
      };
    }();
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.multiSelect = multiSelect;
    exports2.maybeMultiSelect = maybeMultiSelect;
    exports2.innerMultiSelect = innerMultiSelect;
    var colors2 = __importStar2(require_colors());
    var utils_js_1 = require_utils();
    function multiSelect(opts) {
      return maybeMultiSelect(opts).then(utils_js_1.resultOrExit);
    }
    function maybeMultiSelect(opts) {
      if (opts.options.length === 0) {
        throw new Error(`You must provide at least one option. (Prompt: '${opts.message}')`);
      }
      return (0, utils_js_1.undefinedOnAbort)(opts.signal, (0, utils_js_1.createSelection)({
        message: opts.message,
        noClear: opts.noClear,
        signal: opts.signal,
        ...innerMultiSelect(opts)
      }));
    }
    function innerMultiSelect(opts) {
      const drawState = {
        title: opts.message,
        activeIndex: 0,
        items: opts.options.map((option) => {
          if (typeof option === "string") {
            option = {
              text: option
            };
          }
          return {
            selected: option.selected ?? false,
            text: option.text
          };
        }),
        hasCompleted: false
      };
      return {
        render: () => render(drawState),
        onKey: (key) => {
          switch (key) {
            case utils_js_1.Keys.Up:
              if (drawState.activeIndex === 0) {
                drawState.activeIndex = drawState.items.length - 1;
              } else {
                drawState.activeIndex--;
              }
              break;
            case utils_js_1.Keys.Down:
              drawState.activeIndex = (drawState.activeIndex + 1) % drawState.items.length;
              break;
            case utils_js_1.Keys.Space: {
              const item = drawState.items[drawState.activeIndex];
              item.selected = !item.selected;
              break;
            }
            case utils_js_1.Keys.Enter:
              drawState.hasCompleted = true;
              return drawState.items.map((item, index) => [item, index]).filter(([item]) => item.selected).map(([item, index]) => new utils_js_1.SelectionItem(index, item.text));
          }
          return void 0;
        }
      };
    }
    function render(state) {
      const items = [];
      items.push(colors2.bold(colors2.blue(state.title)));
      if (state.hasCompleted) {
        if (state.items.some((i) => i.selected)) {
          for (const item of state.items) {
            if (item.selected) {
              items.push({
                text: ` - ${item.text}`,
                indent: 3
              });
            }
          }
        } else {
          items.push(colors2.italic(" <None>"));
        }
      } else {
        for (const [i, item] of state.items.entries()) {
          const prefix = i === state.activeIndex ? "> " : "  ";
          items.push({
            text: `${prefix}[${item.selected ? "x" : " "}] ${item.text}`,
            indent: 6
          });
        }
      }
      return items;
    }
  }
});

// npm/script/src/console/progress.js
var require_progress = __commonJS({
  "npm/script/src/console/progress.js"(exports2) {
    "use strict";
    var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) {
      if (k2 === void 0)
        k2 = k;
      var desc = Object.getOwnPropertyDescriptor(m, k);
      if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m[k];
        } };
      }
      Object.defineProperty(o, k2, desc);
    } : function(o, m, k, k2) {
      if (k2 === void 0)
        k2 = k;
      o[k2] = m[k];
    });
    var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) {
      Object.defineProperty(o, "default", { enumerable: true, value: v });
    } : function(o, v) {
      o["default"] = v;
    });
    var __importStar2 = exports2 && exports2.__importStar || /* @__PURE__ */ function() {
      var ownKeys = function(o) {
        ownKeys = Object.getOwnPropertyNames || function(o2) {
          var ar = [];
          for (var k in o2)
            if (Object.prototype.hasOwnProperty.call(o2, k))
              ar[ar.length] = k;
          return ar;
        };
        return ownKeys(o);
      };
      return function(mod) {
        if (mod && mod.__esModule)
          return mod;
        var result = {};
        if (mod != null) {
          for (var k = ownKeys(mod), i = 0; i < k.length; i++)
            if (k[i] !== "default")
              __createBinding2(result, mod, k[i]);
        }
        __setModuleDefault2(result, mod);
        return result;
      };
    }();
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.ProgressBar = void 0;
    exports2.renderProgressBar = renderProgressBar;
    exports2.isShowingProgressBars = isShowingProgressBars;
    exports2.humanDownloadSize = humanDownloadSize;
    var colors2 = __importStar2(require_colors());
    var mod_js_12 = require_mod3();
    var utils_js_1 = require_utils();
    var logger_js_1 = require_logger();
    var ProgressBar = class {
      #state;
      #pb;
      #withCount = 0;
      #onLog;
      #noClear;
      /** @internal */
      constructor(onLog, opts) {
        if (arguments.length !== 2) {
          throw new Error("Invalid usage. Create the progress bar via `$.progress`.");
        }
        this.#onLog = onLog;
        this.#state = {
          message: opts.message,
          prefix: opts.prefix,
          length: opts.length,
          currentPos: 0,
          tickCount: 0,
          hasCompleted: false,
          kind: "raw"
        };
        this.#pb = addProgressBar((size) => {
          this.#state.tickCount++;
          return renderProgressBar(this.#state, size);
        });
        this.#noClear = opts.noClear ?? false;
        this.#logIfNonInteractive();
      }
      /** Sets the prefix message/word, which will be displayed in green. */
      prefix(prefix) {
        this.#state.prefix = prefix;
        if (prefix != null && prefix.length > 0) {
          this.#logIfNonInteractive();
        }
        return this;
      }
      /** Sets the message the progress bar will display after the prefix in white. */
      message(message) {
        this.#state.message = message;
        if (message != null && message.length > 0) {
          this.#logIfNonInteractive();
        }
        return this;
      }
      /** Sets how to format the length values. */
      kind(kind) {
        this.#state.kind = kind;
        return this;
      }
      #logIfNonInteractive() {
        if (utils_js_1.isOutputTty) {
          return;
        }
        let text = this.#state.prefix ?? "";
        if (text.length > 0) {
          text += " ";
        }
        text += this.#state.message ?? "";
        if (text.length > 0) {
          this.#onLog(text);
        }
      }
      /** Sets the current position of the progress bar. */
      position(position) {
        this.#state.currentPos = position;
        return this;
      }
      /** Increments the position of the progress bar. */
      increment(inc = 1) {
        this.#state.currentPos += inc;
        return this;
      }
      /** Sets the total length of the progress bar. */
      length(size) {
        this.#state.length = size;
        return this;
      }
      /** Whether the progress bar should output a summary when finished. */
      noClear(value = true) {
        this.#noClear = value;
        return this;
      }
      /** Forces a render to the console. */
      forceRender() {
        return mod_js_12.staticText.refresh();
      }
      /** Finish showing the progress bar. */
      finish() {
        if (removeProgressBar(this.#pb)) {
          this.#state.hasCompleted = true;
          if (this.#noClear) {
            const size = (0, mod_js_12.maybeConsoleSize)();
            const text = (0, mod_js_12.renderTextItems)(renderProgressBar(this.#state, size), size);
            this.#onLog(text);
          }
        }
      }
      with(action) {
        this.#withCount++;
        let wasAsync = false;
        try {
          const result = action();
          if (result instanceof Promise) {
            wasAsync = true;
            return result.finally(() => {
              this.#decrementWith();
            });
          } else {
            return result;
          }
        } finally {
          if (!wasAsync) {
            this.#decrementWith();
          }
        }
      }
      #decrementWith() {
        this.#withCount--;
        if (this.#withCount === 0) {
          this.finish();
        }
      }
    };
    exports2.ProgressBar = ProgressBar;
    var tickStrings = ["\u280B", "\u2819", "\u2839", "\u2838", "\u283C", "\u2834", "\u2826", "\u2827", "\u2807", "\u280F"];
    function renderProgressBar(state, size) {
      if (state.hasCompleted) {
        let text = "";
        if (state.prefix != null) {
          text += colors2.green(state.prefix);
        }
        if (state.message != null) {
          if (text.length > 0) {
            text += " ";
          }
          text += state.message;
        }
        return text.length > 0 ? [text] : [];
      } else if (state.length == null || state.length === 0) {
        let text = colors2.green(tickStrings[Math.abs(state.tickCount) % tickStrings.length]);
        if (state.prefix != null) {
          text += ` ${colors2.green(state.prefix)}`;
        }
        if (state.message != null) {
          text += ` ${state.message}`;
        }
        if (state.currentPos > 0) {
          const currentPosText = state.kind === "bytes" ? humanDownloadSize(state.currentPos) : state.currentPos.toString();
          text += ` (${currentPosText}/?)`;
        }
        return [text];
      } else {
        let firstLine = "";
        if (state.prefix != null) {
          firstLine += colors2.green(state.prefix);
        }
        if (state.message != null) {
          if (firstLine.length > 0) {
            firstLine += " ";
          }
          firstLine += state.message;
        }
        const percent = Math.min(state.currentPos / state.length, 1);
        const currentPosText = state.kind === "bytes" ? humanDownloadSize(state.currentPos, state.length) : state.currentPos.toString();
        const lengthText = state.kind === "bytes" ? humanDownloadSize(state.length) : state.length.toString();
        const maxWidth = size == null ? 75 : Math.max(10, Math.min(75, size.columns - 5));
        const sameLineTextWidth = 6 + lengthText.length * 2 + state.length.toString().length * 2;
        const totalBars = Math.max(1, maxWidth - sameLineTextWidth);
        const completedBars = Math.floor(totalBars * percent);
        let secondLine = "";
        secondLine += "[";
        if (completedBars != totalBars) {
          if (completedBars > 0) {
            secondLine += colors2.cyan("#".repeat(completedBars - 1) + ">");
          }
          secondLine += colors2.blue("-".repeat(totalBars - completedBars));
        } else {
          secondLine += colors2.cyan("#".repeat(completedBars));
        }
        secondLine += `] (${currentPosText}/${lengthText})`;
        const result = [];
        if (firstLine.length > 0) {
          result.push(firstLine);
        }
        result.push(secondLine);
        return result;
      }
    }
    var progressBars = [];
    function addProgressBar(render) {
      progressBars.push(render);
      refresh();
      return render;
    }
    function removeProgressBar(pb) {
      const index = progressBars.indexOf(pb);
      if (index === -1) {
        return false;
      }
      progressBars.splice(index, 1);
      refresh();
      return true;
    }
    function refresh() {
      logger_js_1.logger.setItems(logger_js_1.LoggerRefreshItemKind.ProgressBars, progressBars);
    }
    function isShowingProgressBars() {
      return utils_js_1.isOutputTty && progressBars.length > 0;
    }
    var units = ["B", "KiB", "MiB", "GiB", "TiB", "PiB", "EiB", "ZiB", "YiB"];
    function humanDownloadSize(byteCount, totalBytes) {
      const exponentBasis = totalBytes ?? byteCount;
      const exponent = Math.min(units.length - 1, Math.floor(Math.log(exponentBasis) / Math.log(1024)));
      const unit = units[exponent];
      const prettyBytes = (Math.floor(byteCount / Math.pow(1024, exponent) * 100) / 100).toFixed(exponent === 0 ? 0 : 2);
      return `${prettyBytes} ${unit}`;
    }
  }
});

// npm/script/src/console/prompt.js
var require_prompt = __commonJS({
  "npm/script/src/console/prompt.js"(exports2) {
    "use strict";
    var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) {
      if (k2 === void 0)
        k2 = k;
      var desc = Object.getOwnPropertyDescriptor(m, k);
      if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m[k];
        } };
      }
      Object.defineProperty(o, k2, desc);
    } : function(o, m, k, k2) {
      if (k2 === void 0)
        k2 = k;
      o[k2] = m[k];
    });
    var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) {
      Object.defineProperty(o, "default", { enumerable: true, value: v });
    } : function(o, v) {
      o["default"] = v;
    });
    var __importStar2 = exports2 && exports2.__importStar || /* @__PURE__ */ function() {
      var ownKeys = function(o) {
        ownKeys = Object.getOwnPropertyNames || function(o2) {
          var ar = [];
          for (var k in o2)
            if (Object.prototype.hasOwnProperty.call(o2, k))
              ar[ar.length] = k;
          return ar;
        };
        return ownKeys(o);
      };
      return function(mod) {
        if (mod && mod.__esModule)
          return mod;
        var result = {};
        if (mod != null) {
          for (var k = ownKeys(mod), i = 0; i < k.length; i++)
            if (k[i] !== "default")
              __createBinding2(result, mod, k[i]);
        }
        __setModuleDefault2(result, mod);
        return result;
      };
    }();
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.prompt = prompt;
    exports2.maybePrompt = maybePrompt;
    exports2.innerPrompt = innerPrompt;
    var colors2 = __importStar2(require_colors());
    var utils_js_1 = require_utils();
    var defaultMask = { char: "*", lastVisible: false };
    function prompt(optsOrMessage, options) {
      return maybePrompt(optsOrMessage, options).then(utils_js_1.resultOrExit);
    }
    function maybePrompt(optsOrMessage, options) {
      const opts = typeof optsOrMessage === "string" ? {
        message: optsOrMessage,
        ...options
      } : optsOrMessage;
      return (0, utils_js_1.undefinedOnAbort)(opts.signal, (0, utils_js_1.createSelection)({
        message: opts.message,
        noClear: opts.noClear,
        signal: opts.signal,
        ...innerPrompt(opts)
      }));
    }
    function innerPrompt(opts) {
      let mask = opts.mask ?? false;
      if (mask && typeof mask === "boolean") {
        mask = defaultMask;
      }
      const drawState = {
        title: opts.message,
        inputText: opts.default ?? "",
        mask,
        hasCompleted: false
      };
      return {
        render: () => render(drawState),
        onKey: (key) => {
          if (typeof key === "string") {
            drawState.inputText += key;
          } else {
            switch (key) {
              case utils_js_1.Keys.Space:
                drawState.inputText += " ";
                break;
              case utils_js_1.Keys.Backspace:
                drawState.inputText = drawState.inputText.slice(0, -1);
                break;
              case utils_js_1.Keys.Enter:
                drawState.hasCompleted = true;
                return drawState.inputText;
            }
          }
          return void 0;
        }
      };
    }
    function render(state) {
      let { inputText } = state;
      if (state.mask) {
        const char = state.mask.char ?? defaultMask.char;
        const lastVisible = state.mask.lastVisible ?? defaultMask.lastVisible;
        const shouldShowLast = lastVisible && !state.hasCompleted;
        const safeLengthMinusOne = Math.max(0, inputText.length - 1);
        const masked = char.repeat(shouldShowLast ? safeLengthMinusOne : inputText.length);
        const unmasked = shouldShowLast ? inputText.slice(safeLengthMinusOne) : "";
        inputText = `${masked}${unmasked}`;
      }
      return [
        colors2.bold(colors2.blue(state.title)) + " " + inputText + (state.hasCompleted ? "" : "\u2588")
        // (block character)
      ];
    }
  }
});

// npm/script/src/console/select.js
var require_select = __commonJS({
  "npm/script/src/console/select.js"(exports2) {
    "use strict";
    var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) {
      if (k2 === void 0)
        k2 = k;
      var desc = Object.getOwnPropertyDescriptor(m, k);
      if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m[k];
        } };
      }
      Object.defineProperty(o, k2, desc);
    } : function(o, m, k, k2) {
      if (k2 === void 0)
        k2 = k;
      o[k2] = m[k];
    });
    var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) {
      Object.defineProperty(o, "default", { enumerable: true, value: v });
    } : function(o, v) {
      o["default"] = v;
    });
    var __importStar2 = exports2 && exports2.__importStar || /* @__PURE__ */ function() {
      var ownKeys = function(o) {
        ownKeys = Object.getOwnPropertyNames || function(o2) {
          var ar = [];
          for (var k in o2)
            if (Object.prototype.hasOwnProperty.call(o2, k))
              ar[ar.length] = k;
          return ar;
        };
        return ownKeys(o);
      };
      return function(mod) {
        if (mod && mod.__esModule)
          return mod;
        var result = {};
        if (mod != null) {
          for (var k = ownKeys(mod), i = 0; i < k.length; i++)
            if (k[i] !== "default")
              __createBinding2(result, mod, k[i]);
        }
        __setModuleDefault2(result, mod);
        return result;
      };
    }();
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.select = select;
    exports2.maybeSelect = maybeSelect;
    exports2.innerSelect = innerSelect;
    var colors2 = __importStar2(require_colors());
    var utils_js_1 = require_utils();
    function select(opts) {
      return maybeSelect(opts).then(utils_js_1.resultOrExit);
    }
    function maybeSelect(opts) {
      if (opts.options.length < 1) {
        throw new Error(`You must provide at least one option. (Prompt: '${opts.message}')`);
      }
      return (0, utils_js_1.undefinedOnAbort)(opts.signal, (0, utils_js_1.createSelection)({
        message: opts.message,
        noClear: opts.noClear,
        signal: opts.signal,
        ...innerSelect(opts)
      }));
    }
    function innerSelect(opts) {
      const drawState = {
        title: opts.message,
        activeIndex: (opts.initialIndex ?? 0) % opts.options.length,
        items: opts.options,
        hasCompleted: false
      };
      return {
        render: () => render(drawState),
        onKey: (key) => {
          switch (key) {
            case utils_js_1.Keys.Up:
              if (drawState.activeIndex === 0) {
                drawState.activeIndex = drawState.items.length - 1;
              } else {
                drawState.activeIndex--;
              }
              break;
            case utils_js_1.Keys.Down:
              drawState.activeIndex = (drawState.activeIndex + 1) % drawState.items.length;
              break;
            case utils_js_1.Keys.Enter:
              drawState.hasCompleted = true;
              return new utils_js_1.SelectionItem(drawState.activeIndex, drawState.items[drawState.activeIndex]);
          }
        }
      };
    }
    function render(state) {
      const items = [];
      items.push(colors2.bold(colors2.blue(state.title)));
      if (state.hasCompleted) {
        items.push({
          text: ` - ${state.items[state.activeIndex]}`,
          indent: 3
        });
      } else {
        for (const [i, text] of state.items.entries()) {
          const prefix = i === state.activeIndex ? "> " : "  ";
          items.push({
            text: `${prefix}${text}`,
            indent: 4
          });
        }
      }
      return items;
    }
  }
});

// npm/script/src/console/mod.js
var require_mod5 = __commonJS({
  "npm/script/src/console/mod.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.select = exports2.maybeSelect = exports2.prompt = exports2.maybePrompt = exports2.ProgressBar = exports2.isShowingProgressBars = exports2.SelectionItem = exports2.multiSelect = exports2.maybeMultiSelect = exports2.maybeConfirm = exports2.confirm = exports2.alert = void 0;
    var alert_js_1 = require_alert();
    Object.defineProperty(exports2, "alert", { enumerable: true, get: function() {
      return alert_js_1.alert;
    } });
    var confirm_js_1 = require_confirm();
    Object.defineProperty(exports2, "confirm", { enumerable: true, get: function() {
      return confirm_js_1.confirm;
    } });
    Object.defineProperty(exports2, "maybeConfirm", { enumerable: true, get: function() {
      return confirm_js_1.maybeConfirm;
    } });
    var multiSelect_js_1 = require_multiSelect();
    Object.defineProperty(exports2, "maybeMultiSelect", { enumerable: true, get: function() {
      return multiSelect_js_1.maybeMultiSelect;
    } });
    Object.defineProperty(exports2, "multiSelect", { enumerable: true, get: function() {
      return multiSelect_js_1.multiSelect;
    } });
    var utils_js_1 = require_utils();
    Object.defineProperty(exports2, "SelectionItem", { enumerable: true, get: function() {
      return utils_js_1.SelectionItem;
    } });
    var progress_js_1 = require_progress();
    Object.defineProperty(exports2, "isShowingProgressBars", { enumerable: true, get: function() {
      return progress_js_1.isShowingProgressBars;
    } });
    Object.defineProperty(exports2, "ProgressBar", { enumerable: true, get: function() {
      return progress_js_1.ProgressBar;
    } });
    var prompt_js_1 = require_prompt();
    Object.defineProperty(exports2, "maybePrompt", { enumerable: true, get: function() {
      return prompt_js_1.maybePrompt;
    } });
    Object.defineProperty(exports2, "prompt", { enumerable: true, get: function() {
      return prompt_js_1.prompt;
    } });
    var select_js_1 = require_select();
    Object.defineProperty(exports2, "maybeSelect", { enumerable: true, get: function() {
      return select_js_1.maybeSelect;
    } });
    Object.defineProperty(exports2, "select", { enumerable: true, get: function() {
      return select_js_1.select;
    } });
  }
});

// npm/script/src/request.js
var require_request = __commonJS({
  "npm/script/src/request.js"(exports2) {
    "use strict";
    var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) {
      if (k2 === void 0)
        k2 = k;
      var desc = Object.getOwnPropertyDescriptor(m, k);
      if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m[k];
        } };
      }
      Object.defineProperty(o, k2, desc);
    } : function(o, m, k, k2) {
      if (k2 === void 0)
        k2 = k;
      o[k2] = m[k];
    });
    var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) {
      Object.defineProperty(o, "default", { enumerable: true, value: v });
    } : function(o, v) {
      o["default"] = v;
    });
    var __importStar2 = exports2 && exports2.__importStar || /* @__PURE__ */ function() {
      var ownKeys = function(o) {
        ownKeys = Object.getOwnPropertyNames || function(o2) {
          var ar = [];
          for (var k in o2)
            if (Object.prototype.hasOwnProperty.call(o2, k))
              ar[ar.length] = k;
          return ar;
        };
        return ownKeys(o);
      };
      return function(mod) {
        if (mod && mod.__esModule)
          return mod;
        var result = {};
        if (mod != null) {
          for (var k = ownKeys(mod), i = 0; i < k.length; i++)
            if (k[i] !== "default")
              __createBinding2(result, mod, k[i]);
        }
        __setModuleDefault2(result, mod);
        return result;
      };
    }();
    var _a;
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.RequestResponse = exports2.RequestBuilder = exports2.withProgressBarFactorySymbol = void 0;
    exports2.makeRequest = makeRequest;
    var dntShim = __importStar2(require_dnt_shims());
    var mod_js_12 = require_mod2();
    var mod_js_22 = require_mod4();
    var internal_js_12 = require_internal();
    var common_js_12 = require_common2();
    exports2.withProgressBarFactorySymbol = Symbol();
    var RequestBuilder = class {
      #state = void 0;
      #getClonedState() {
        const state = this.#state;
        if (state == null) {
          return this.#getDefaultState();
        }
        return {
          // be explicit here in order to force evaluation
          // of each property on a case by case basis
          noThrow: typeof state.noThrow === "boolean" ? state.noThrow : [...state.noThrow],
          url: state.url,
          body: state.body,
          cache: state.cache,
          headers: state.headers,
          integrity: state.integrity,
          keepalive: state.keepalive,
          method: state.method,
          mode: state.mode,
          redirect: state.redirect,
          referrer: state.referrer,
          referrerPolicy: state.referrerPolicy,
          progressBarFactory: state.progressBarFactory,
          progressOptions: state.progressOptions == null ? void 0 : {
            ...state.progressOptions
          },
          onProgress: [...state.onProgress],
          timeout: state.timeout,
          signal: state.signal,
          beforeRequest: state.beforeRequest
        };
      }
      #getDefaultState() {
        return {
          noThrow: false,
          url: void 0,
          body: void 0,
          cache: void 0,
          headers: {},
          integrity: void 0,
          keepalive: void 0,
          method: void 0,
          mode: void 0,
          redirect: void 0,
          referrer: void 0,
          referrerPolicy: void 0,
          progressBarFactory: void 0,
          progressOptions: void 0,
          onProgress: [],
          timeout: void 0,
          signal: void 0,
          beforeRequest: void 0
        };
      }
      #newWithState(action) {
        const builder = new _a();
        const state = this.#getClonedState();
        action(state);
        builder.#state = state;
        return builder;
      }
      [internal_js_12.symbols.readable]() {
        const self = this;
        let streamReader;
        let response;
        let wasCancelled = false;
        let cancelledReason;
        return new dntShim.ReadableStream({
          async start() {
            response = await self.fetch();
            const readable = response.readable;
            if (wasCancelled) {
              await readable.cancel(cancelledReason);
            } else {
              streamReader = readable.getReader();
            }
          },
          async pull(controller) {
            try {
              const { done, value } = await streamReader.read();
              if (done || value == null) {
                if (response?.signal?.aborted) {
                  controller.error(response?.signal?.reason);
                } else {
                  controller.close();
                }
              } else {
                controller.enqueue(value);
              }
            } catch (err) {
              try {
                streamReader?.releaseLock();
              } catch {
              }
              try {
                await response?.cancelBody();
              } catch {
              }
              throw err;
            }
          },
          async cancel(reason) {
            wasCancelled = true;
            cancelledReason = reason;
            try {
              if (streamReader != null) {
                await streamReader.cancel(reason);
              }
            } catch {
            }
            try {
              await response?.cancelBody();
            } catch {
            }
          }
        });
      }
      then(onfulfilled, onrejected) {
        return this.fetch().then(onfulfilled).catch(onrejected);
      }
      /** Fetches and gets the response. */
      fetch() {
        return this.#resolveStateForRequest().then(makeRequest).catch((err) => {
          if (err instanceof common_js_12.TimeoutError) {
            Error.captureStackTrace(err, common_js_12.TimeoutError);
          }
          return Promise.reject(err);
        });
      }
      async #resolveStateForRequest() {
        const callbacks = this.#state?.beforeRequest;
        if (callbacks == null || callbacks.length === 0) {
          return this.#getClonedState();
        }
        let builder = this.#newWithState((state) => {
          state.beforeRequest = void 0;
        });
        for (const cb of callbacks) {
          const proxy = wrapNonThenable(builder);
          const result = await cb(proxy);
          builder = unwrapBuilder(result) ?? builder;
        }
        return builder.#getClonedState();
      }
      /** Specifies the URL to send the request to. */
      url(value) {
        return this.#newWithState((state) => {
          state.url = value;
        });
      }
      header(nameOrItems, value) {
        return this.#newWithState((state) => {
          if (typeof nameOrItems === "string") {
            setHeader(state, nameOrItems, value);
          } else {
            for (const [name, value2] of Object.entries(nameOrItems)) {
              setHeader(state, name, value2);
            }
          }
        });
        function setHeader(state, name, value2) {
          name = name.toUpperCase();
          state.headers[name] = value2;
        }
      }
      noThrow(value, ...additional) {
        return this.#newWithState((state) => {
          if (typeof value === "boolean" || value == null) {
            state.noThrow = value ?? true;
          } else {
            state.noThrow = [value, ...additional];
          }
        });
      }
      body(value) {
        return this.#newWithState((state) => {
          state.body = value;
        });
      }
      cache(value) {
        return this.#newWithState((state) => {
          state.cache = value;
        });
      }
      integrity(value) {
        return this.#newWithState((state) => {
          state.integrity = value;
        });
      }
      keepalive(value) {
        return this.#newWithState((state) => {
          state.keepalive = value;
        });
      }
      method(value) {
        return this.#newWithState((state) => {
          state.method = value;
        });
      }
      mode(value) {
        return this.#newWithState((state) => {
          state.mode = value;
        });
      }
      /** @internal */
      [exports2.withProgressBarFactorySymbol](factory) {
        return this.#newWithState((state) => {
          state.progressBarFactory = factory;
        });
      }
      redirect(value) {
        return this.#newWithState((state) => {
          state.redirect = value;
        });
      }
      referrer(value) {
        return this.#newWithState((state) => {
          state.referrer = value;
        });
      }
      referrerPolicy(value) {
        return this.#newWithState((state) => {
          state.referrerPolicy = value;
        });
      }
      showProgress(value) {
        return this.#newWithState((state) => {
          if (value === true || value == null) {
            state.progressOptions = { noClear: false };
          } else if (value === false) {
            state.progressOptions = void 0;
          } else {
            state.progressOptions = {
              noClear: value.noClear ?? false
            };
          }
        });
      }
      /** Adds a callback that is invoked as bytes are received from the response body.
       *
       * The callback fires once per chunk read from the network with the cumulative
       * number of bytes received and the total expected size (from the `content-length`
       * header, or `undefined` if the server didn't provide one). Multiple callbacks
       * may be registered by calling this method repeatedly; each is invoked in the
       * order it was added.
       */
      onProgress(callback) {
        return this.#newWithState((state) => {
          state.onProgress.push(callback);
        });
      }
      /** Timeout the request after the specified delay throwing a `TimeoutError`. */
      timeout(delay) {
        return this.#newWithState((state) => {
          state.timeout = delay == null ? void 0 : (0, mod_js_22.delayToMs)(delay);
        });
      }
      /** Sets an abort signal for the request. When the signal is
       * aborted, the request will be cancelled.
       */
      signal(signal) {
        return this.#newWithState((state) => {
          state.signal = signal;
        });
      }
      /** Registers a callback that runs just before each request is sent.
       *
       * The callback receives the current builder and may return a (possibly
       * modified) builder to use for the request. Useful for asynchronously
       * resolving values such as auth tokens.
       *
       * ```ts
       * $.request(url).beforeRequest(async (builder) => {
       *   return builder.header("Authorization", `Bearer ${await getAccessToken()}`);
       * });
       * ```
       *
       * Multiple `.beforeRequest(...)` calls compose: each registered callback runs
       * in the order it was added, with the builder produced by the previous one.
       *
       * The builder passed to the callback is in a special "passthrough" mode so
       * its `.then(...)` resolves with the builder itself (instead of fetching) —
       * this is what makes `return builder.header(...)` from an `async` function
       * safe. If you construct a fresh `new RequestBuilder()` inside the callback,
       * return it as `{ requestBuilder: ... }` to avoid accidental fetching.
       */
      beforeRequest(callback) {
        return this.#newWithState((state) => {
          state.beforeRequest = state.beforeRequest == null ? [callback] : [...state.beforeRequest, callback];
        });
      }
      /** Fetches and gets the response as an array buffer. */
      async arrayBuffer() {
        const response = await this.fetch();
        return response.arrayBuffer();
      }
      /** Fetches and gets the response as a blob. */
      async blob() {
        const response = await this.fetch();
        return response.blob();
      }
      /** Fetches and gets the response as form data. */
      async formData() {
        const response = await this.fetch();
        return response.formData();
      }
      /** Fetches and gets the response as JSON additionally setting
       * a JSON accept header if not set. */
      async json() {
        let builder = this;
        const acceptHeaderName = "ACCEPT";
        if (builder.#state == null || !Object.hasOwn(builder.#state.headers, acceptHeaderName)) {
          builder = builder.header(acceptHeaderName, "application/json");
        }
        const response = await builder.fetch();
        return response.json();
      }
      /** Fetches and gets the response as text. */
      async text() {
        const response = await this.fetch();
        return response.text();
      }
      /** Pipes the response body to the provided writable stream. */
      async pipeTo(dest, options) {
        const response = await this.fetch();
        return await response.pipeTo(dest, options);
      }
      async pipeToPath(filePathOrOptions, maybeOptions) {
        const { filePath, options } = resolvePipeToPathParams(filePathOrOptions, maybeOptions, this.#state?.url);
        const response = await this.fetch();
        return await response.pipeToPath(filePath, options);
      }
      /** Pipes the response body through the provided transform. */
      async pipeThrough(transform) {
        const response = await this.fetch();
        return response.pipeThrough(transform);
      }
    };
    exports2.RequestBuilder = RequestBuilder;
    _a = RequestBuilder;
    var RequestResponse = class {
      #response;
      #downloadResponse;
      #originalUrl;
      #abortController;
      /** @internal */
      constructor(opts) {
        this.#originalUrl = opts.originalUrl;
        this.#response = opts.response;
        this.#abortController = opts.abortController;
        if (opts.response.body == null) {
          opts.abortController.clearTimeout();
        }
        if (opts.progressBar != null || opts.onProgress.length > 0) {
          const pb = opts.progressBar;
          const onProgress = opts.onProgress;
          const total = opts.contentLength;
          this.#downloadResponse = new Response(new dntShim.ReadableStream({
            async start(controller) {
              const reader = opts.response.body?.getReader();
              if (reader == null) {
                return;
              }
              let loaded = 0;
              let lockReleased = false;
              try {
                while (true) {
                  const { done, value } = await reader.read();
                  if (done || value == null) {
                    break;
                  }
                  loaded += value.byteLength;
                  pb?.increment(value.byteLength);
                  if (onProgress.length > 0) {
                    const event = { loaded, total };
                    for (const callback of onProgress) {
                      callback(event);
                    }
                  }
                  controller.enqueue(value);
                }
                const signal = opts.abortController.controller.signal;
                if (signal.aborted) {
                  controller.error(signal.reason);
                } else {
                  controller.close();
                }
              } catch (err) {
                try {
                  reader.releaseLock();
                  lockReleased = true;
                } catch {
                }
                try {
                  await opts.response.body?.cancel(err);
                } catch {
                }
                throw err;
              } finally {
                if (!lockReleased) {
                  try {
                    reader.releaseLock();
                  } catch {
                  }
                }
                pb?.finish();
              }
            },
            async cancel(reason) {
              try {
                await opts.response.body?.cancel(reason);
              } catch {
              }
            }
          }));
        } else {
          this.#downloadResponse = opts.response;
        }
      }
      /** Raw response. */
      get response() {
        return this.#response;
      }
      /** Response headers. */
      get headers() {
        return this.#response.headers;
      }
      /** If the response had a 2xx code. */
      get ok() {
        return this.#response.ok;
      }
      /** If the response is the result of a redirect. */
      get redirected() {
        return this.#response.redirected;
      }
      /** The underlying `AbortSignal` used to abort the request body
       * when a timeout is reached or when the `.abort()` method is called. */
      get signal() {
        return this.#abortController.controller.signal;
      }
      /** Status code of the response. */
      get status() {
        return this.#response.status;
      }
      /** Status text of the response. */
      get statusText() {
        return this.#response.statusText;
      }
      /** URL of the response. */
      get url() {
        return this.#response.url;
      }
      /** Aborts  */
      abort(reason) {
        this.#abortController?.controller.abort(reason);
      }
      /**
       * Throws if the response doesn't have a 2xx code.
       *
       * This might be useful if the request was built with `.noThrow()`, but
       * otherwise this is called automatically for any non-2xx response codes.
       *
       * Note: this does not consume the body. If you don't intend to read the
       * body, call `cancelBody()` first to release the underlying resources.
       */
      throwIfNotOk() {
        if (!this.ok) {
          throw new Error(`Error making request to ${this.#originalUrl}: ${this.statusText}`);
        }
      }
      /**
       * Cancels the response body, releasing the underlying resources.
       *
       * Useful in conjunction with `.noThrow()` and `throwIfNotOk()` when you
       * don't intend to read the body.
       */
      cancelBody() {
        return this.#withReturnHandling(async () => {
          await this.#response.body?.cancel();
        });
      }
      /**
       * Respose body as an array buffer.
       *
       * Note: Returns `undefined` when `.noThrow(404)` and status code is 404.
       */
      arrayBuffer() {
        return this.#withReturnHandling(async () => {
          if (this.#response.status === 404) {
            await this.#response.body?.cancel();
            return void 0;
          }
          return this.#downloadResponse.arrayBuffer();
        });
      }
      /**
       * Response body as a blog.
       *
       * Note: Returns `undefined` when `.noThrow(404)` and status code is 404.
       */
      blob() {
        return this.#withReturnHandling(async () => {
          if (this.#response.status === 404) {
            await this.#response.body?.cancel();
            return void 0;
          }
          return await this.#downloadResponse.blob();
        });
      }
      /**
       * Response body as a form data.
       *
       * Note: Returns `undefined` when `.noThrow(404)` and status code is 404.
       */
      formData() {
        return this.#withReturnHandling(async () => {
          if (this.#response.status === 404) {
            await this.#response.body?.cancel();
            return void 0;
          }
          return await this.#downloadResponse.formData();
        });
      }
      /**
       * Respose body as JSON.
       *
       * Note: Returns `undefined` when `.noThrow(404)` and status code is 404.
       */
      json() {
        return this.#withReturnHandling(async () => {
          if (this.#response.status === 404) {
            await this.#response.body?.cancel();
            return void 0;
          }
          return await this.#downloadResponse.json();
        });
      }
      /**
       * Respose body as text.
       *
       * Note: Returns `undefined` when `.noThrow(404)` and status code is 404.
       */
      text() {
        return this.#withReturnHandling(async () => {
          if (this.#response.status === 404) {
            await this.#response.body?.cancel();
            return void 0;
          }
          return await this.#downloadResponse.text();
        });
      }
      /** Pipes the response body to the provided writable stream. */
      pipeTo(dest, options) {
        return this.#withReturnHandling(() => this.readable.pipeTo(dest, options));
      }
      async pipeToPath(filePathOrOptions, maybeOptions) {
        const { filePath, options } = resolvePipeToPathParams(filePathOrOptions, maybeOptions, this.#originalUrl);
        const body = this.readable;
        try {
          const file = await filePath.open({
            write: true,
            create: true,
            truncate: true,
            ...options ?? {}
          });
          try {
            await body.pipeTo(file.writable, {
              preventClose: true
            });
            await file.writable.close();
          } finally {
            try {
              file.close();
            } catch {
            }
            this.#abortController?.clearTimeout();
          }
        } catch (err) {
          await this.#response.body?.cancel();
          throw err;
        }
        return filePath;
      }
      /** Pipes the response body through the provided transform. */
      pipeThrough(transform) {
        return this.readable.pipeThrough(transform);
      }
      get readable() {
        const body = this.#downloadResponse.body;
        if (body == null) {
          throw new Error("Response had no body.");
        }
        return body;
      }
      async #withReturnHandling(action) {
        try {
          return await action();
        } catch (err) {
          if (err instanceof common_js_12.TimeoutError) {
            Error.captureStackTrace(err);
          }
          try {
            await this.#response.body?.cancel(err);
          } catch {
          }
          throw err;
        } finally {
          this.#abortController.clearTimeout();
        }
      }
    };
    exports2.RequestResponse = RequestResponse;
    async function makeRequest(state) {
      if (state.url == null) {
        throw new Error("You must specify a URL before fetching.");
      }
      const abortController = getAbortController();
      let response;
      try {
        response = await fetch(state.url, {
          body: state.body,
          // @ts-ignore not supported in Node.js yet?
          cache: state.cache,
          headers: (0, common_js_12.filterEmptyRecordValues)(state.headers),
          integrity: state.integrity,
          keepalive: state.keepalive,
          method: state.method,
          mode: state.mode,
          redirect: state.redirect,
          referrer: state.referrer,
          referrerPolicy: state.referrerPolicy,
          signal: abortController.controller.signal
        });
      } catch (err) {
        abortController.clearTimeout();
        throw err;
      }
      const contentLength = getContentLength();
      const result = new RequestResponse({
        response,
        originalUrl: state.url.toString(),
        progressBar: getProgressBar(contentLength),
        onProgress: state.onProgress,
        contentLength,
        abortController
      });
      const shouldThrowOnError = !response.ok && (!state.noThrow || state.noThrow instanceof Array && !state.noThrow.includes(response.status));
      if (shouldThrowOnError) {
        try {
          await result.cancelBody();
        } catch {
        }
        result.throwIfNotOk();
      }
      return result;
      function getProgressBar(contentLength2) {
        if (state.progressOptions == null || state.progressBarFactory == null) {
          return void 0;
        }
        return state.progressBarFactory(`Download ${state.url}`).noClear(state.progressOptions.noClear).kind("bytes").length(contentLength2);
      }
      function getContentLength() {
        const contentLength2 = response.headers.get("content-length");
        if (contentLength2 == null) {
          return void 0;
        }
        const length = parseInt(contentLength2, 10);
        return isNaN(length) ? void 0 : length;
      }
      function getAbortController() {
        const baseController = getTimeoutAbortController() ?? {
          controller: new AbortController(),
          clearTimeout() {
          }
        };
        if (state.signal == null) {
          return baseController;
        }
        if (state.signal.aborted) {
          baseController.controller.abort(state.signal.reason);
          return baseController;
        }
        const onAbort = () => {
          baseController.controller.abort(state.signal.reason);
        };
        state.signal.addEventListener("abort", onAbort, { once: true });
        const originalClearTimeout = baseController.clearTimeout;
        return {
          controller: baseController.controller,
          clearTimeout() {
            originalClearTimeout();
            state.signal?.removeEventListener("abort", onAbort);
          }
        };
      }
      function getTimeoutAbortController() {
        if (state.timeout == null) {
          return void 0;
        }
        const timeout = state.timeout;
        const controller = new AbortController();
        const timeoutId = setTimeout(() => controller.abort(new common_js_12.TimeoutError(`Request timed out after ${(0, common_js_12.formatMillis)(timeout)}.`)), timeout);
        return {
          controller,
          clearTimeout() {
            clearTimeout(timeoutId);
          }
        };
      }
    }
    var proxyToBuilder = /* @__PURE__ */ new WeakMap();
    function wrapNonThenable(builder) {
      const proxy = new Proxy(builder, {
        get(target, prop, _receiver) {
          if (prop === "then")
            return void 0;
          const value = Reflect.get(target, prop, target);
          if (typeof value === "function") {
            return (...args) => {
              const result = value.apply(target, args);
              if (result instanceof RequestBuilder) {
                return wrapNonThenable(result);
              }
              return result;
            };
          }
          return value;
        }
      });
      proxyToBuilder.set(proxy, builder);
      return proxy;
    }
    function unwrapBuilder(result) {
      if (!(result instanceof RequestBuilder))
        return void 0;
      return proxyToBuilder.get(result) ?? result;
    }
    function resolvePipeToPathParams(pathOrOptions, maybeOptions, originalUrl) {
      let filePath;
      let options;
      if (typeof pathOrOptions === "string" || pathOrOptions instanceof URL) {
        filePath = new mod_js_12.Path(pathOrOptions).resolve();
        options = maybeOptions;
      } else if (pathOrOptions instanceof mod_js_12.Path) {
        filePath = pathOrOptions.resolve();
        options = maybeOptions;
      } else if (typeof pathOrOptions === "object") {
        options = pathOrOptions;
      } else if (pathOrOptions === void 0) {
        options = maybeOptions;
      }
      if (filePath === void 0) {
        filePath = new mod_js_12.Path(getFileNameFromUrlOrThrow(originalUrl));
      } else if (filePath.isDirSync()) {
        filePath = filePath.join(getFileNameFromUrlOrThrow(originalUrl));
      }
      filePath = filePath.resolve();
      return {
        filePath,
        options
      };
      function getFileNameFromUrlOrThrow(url) {
        const fileName = url == null ? void 0 : (0, common_js_12.getFileNameFromUrl)(url);
        if (fileName == null) {
          throw new Error("Could not derive the path from the request URL. Please explicitly provide a path.");
        }
        return fileName;
      }
    }
  }
});

// npm/script/src/vendor/outdent.js
var require_outdent = __commonJS({
  "npm/script/src/vendor/outdent.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.outdent = void 0;
    function extend(target, source) {
      for (const prop in source) {
        if (Object.hasOwn(source, prop)) {
          target[prop] = source[prop];
        }
      }
      return target;
    }
    var reLeadingNewline = /^[ \t]*(?:\r\n|\r|\n)/;
    var reTrailingNewline = /(?:\r\n|\r|\n)[ \t]*$/;
    var reStartsWithNewlineOrIsEmpty = /^(?:[\r\n]|$)/;
    var reDetectIndentation = /(?:\r\n|\r|\n)([ \t]*)(?:[^ \t\r\n]|$)/;
    var reOnlyWhitespaceWithAtLeastOneNewline = /^[ \t]*[\r\n][ \t\r\n]*$/;
    function _outdentArray(strings, firstInterpolatedValueSetsIndentationLevel, options) {
      let indentationLevel = 0;
      const match = strings[0].match(reDetectIndentation);
      if (match) {
        indentationLevel = match[1].length;
      }
      const reSource = `(\\r\\n|\\r|\\n).{0,${indentationLevel}}`;
      const reMatchIndent = new RegExp(reSource, "g");
      if (firstInterpolatedValueSetsIndentationLevel) {
        strings = strings.slice(1);
      }
      const { newline, trimLeadingNewline, trimTrailingNewline } = options;
      const normalizeNewlines = typeof newline === "string";
      const l = strings.length;
      const outdentedStrings = strings.map((v, i) => {
        v = v.replace(reMatchIndent, "$1");
        if (i === 0 && trimLeadingNewline) {
          v = v.replace(reLeadingNewline, "");
        }
        if (i === l - 1 && trimTrailingNewline) {
          v = v.replace(reTrailingNewline, "");
        }
        if (normalizeNewlines) {
          v = v.replace(/\r\n|\n|\r/g, (_) => newline);
        }
        return v;
      });
      return outdentedStrings;
    }
    function concatStringsAndValues(strings, values) {
      let ret = "";
      for (let i = 0, l = strings.length; i < l; i++) {
        ret += strings[i];
        if (i < l - 1) {
          ret += values[i];
        }
      }
      return ret;
    }
    function isTemplateStringsArray(v) {
      return Object.hasOwn(v, "raw") && Object.hasOwn(v, "length");
    }
    function createInstance(options) {
      const arrayAutoIndentCache = /* @__PURE__ */ new WeakMap();
      const arrayFirstInterpSetsIndentCache = /* @__PURE__ */ new WeakMap();
      function outdent(stringsOrOptions, ...values) {
        if (isTemplateStringsArray(stringsOrOptions)) {
          const strings = stringsOrOptions;
          const firstInterpolatedValueSetsIndentationLevel = (values[0] === outdent || values[0] === defaultOutdent) && reOnlyWhitespaceWithAtLeastOneNewline.test(strings[0]) && reStartsWithNewlineOrIsEmpty.test(strings[1]);
          const cache = firstInterpolatedValueSetsIndentationLevel ? arrayFirstInterpSetsIndentCache : arrayAutoIndentCache;
          let renderedArray = cache.get(strings);
          if (!renderedArray) {
            renderedArray = _outdentArray(strings, firstInterpolatedValueSetsIndentationLevel, options);
            cache.set(strings, renderedArray);
          }
          if (values.length === 0) {
            return renderedArray[0];
          }
          const rendered = concatStringsAndValues(renderedArray, firstInterpolatedValueSetsIndentationLevel ? values.slice(1) : values);
          return rendered;
        } else {
          return createInstance(extend(extend({}, options), stringsOrOptions || {}));
        }
      }
      const fullOutdent = extend(outdent, {
        string(str) {
          return _outdentArray([str], false, options)[0];
        }
      });
      return fullOutdent;
    }
    var defaultOutdent = createInstance({
      trimLeadingNewline: true,
      trimTrailingNewline: true
    });
    exports2.outdent = defaultOutdent;
  }
});

// npm/script/mod.js
var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) {
  if (k2 === void 0)
    k2 = k;
  var desc = Object.getOwnPropertyDescriptor(m, k);
  if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
    desc = { enumerable: true, get: function() {
      return m[k];
    } };
  }
  Object.defineProperty(o, k2, desc);
} : function(o, m, k, k2) {
  if (k2 === void 0)
    k2 = k;
  o[k2] = m[k];
});
var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) {
  Object.defineProperty(o, "default", { enumerable: true, value: v });
} : function(o, v) {
  o["default"] = v;
});
var __importStar = exports && exports.__importStar || /* @__PURE__ */ function() {
  var ownKeys = function(o) {
    ownKeys = Object.getOwnPropertyNames || function(o2) {
      var ar = [];
      for (var k in o2)
        if (Object.prototype.hasOwnProperty.call(o2, k))
          ar[ar.length] = k;
      return ar;
    };
    return ownKeys(o);
  };
  return function(mod) {
    if (mod && mod.__esModule)
      return mod;
    var result = {};
    if (mod != null) {
      for (var k = ownKeys(mod), i = 0; i < k.length; i++)
        if (k[i] !== "default")
          __createBinding(result, mod, k[i]);
    }
    __setModuleDefault(result, mod);
    return result;
  };
}();
Object.defineProperty(exports, "__esModule", { value: true });
exports.$ = exports.RequestResponse = exports.RequestBuilder = exports.PathRef = exports.SelectionItem = exports.TimeoutError = exports.RawArg = exports.KillSignal = exports.KillController = exports.createExecutableCommand = exports.CommandResult = exports.CommandChild = exports.CommandBuilder = exports.Path = exports.FsFileWrapper = void 0;
exports.build$ = build$;
require_dnt_polyfills();
var colors = __importStar(require_colors());
var mod_js_1 = require_mod();
var mod_js_2 = require_mod4();
var internal_js_1 = require_internal();
var common_js_1 = require_common2();
var mod_js_3 = require_mod5();
var mod_js_4 = require_mod3();
var mod_js_5 = require_mod2();
var node_util_1 = require("node:util");
var request_js_1 = require_request();
var outdent_js_1 = require_outdent();
var mod_js_6 = require_mod2();
Object.defineProperty(exports, "FsFileWrapper", { enumerable: true, get: function() {
  return mod_js_6.FsFileWrapper;
} });
Object.defineProperty(exports, "Path", { enumerable: true, get: function() {
  return mod_js_6.Path;
} });
var mod_js_7 = require_mod4();
Object.defineProperty(exports, "CommandBuilder", { enumerable: true, get: function() {
  return mod_js_7.CommandBuilder;
} });
Object.defineProperty(exports, "CommandChild", { enumerable: true, get: function() {
  return mod_js_7.CommandChild;
} });
Object.defineProperty(exports, "CommandResult", { enumerable: true, get: function() {
  return mod_js_7.CommandResult;
} });
Object.defineProperty(exports, "createExecutableCommand", { enumerable: true, get: function() {
  return mod_js_7.createExecutableCommand;
} });
Object.defineProperty(exports, "KillController", { enumerable: true, get: function() {
  return mod_js_7.KillController;
} });
Object.defineProperty(exports, "KillSignal", { enumerable: true, get: function() {
  return mod_js_7.KillSignal;
} });
Object.defineProperty(exports, "RawArg", { enumerable: true, get: function() {
  return mod_js_7.RawArg;
} });
var common_js_2 = require_common2();
Object.defineProperty(exports, "TimeoutError", { enumerable: true, get: function() {
  return common_js_2.TimeoutError;
} });
var mod_js_8 = require_mod5();
Object.defineProperty(exports, "SelectionItem", { enumerable: true, get: function() {
  return mod_js_8.SelectionItem;
} });
var PathRef = mod_js_5.Path;
exports.PathRef = PathRef;
var request_js_2 = require_request();
Object.defineProperty(exports, "RequestBuilder", { enumerable: true, get: function() {
  return request_js_2.RequestBuilder;
} });
Object.defineProperty(exports, "RequestResponse", { enumerable: true, get: function() {
  return request_js_2.RequestResponse;
} });
function sleep(delay) {
  const ms = (0, mod_js_2.delayToMs)(delay);
  return new Promise((resolve) => setTimeout(resolve, ms));
}
async function withRetries($local, errorLogger, opts) {
  const delayIterator = (0, common_js_1.delayToIterator)(opts.delay);
  for (let i = 0; i < opts.count; i++) {
    if (i > 0) {
      const nextDelay = delayIterator.next();
      if (!opts.quiet) {
        $local.logWarn(`Failed. Trying again in ${(0, common_js_1.formatMillis)(nextDelay)}...`);
      }
      await sleep(nextDelay);
      if (!opts.quiet) {
        $local.logStep(`Retrying attempt ${i + 1}/${opts.count}...`);
      }
    }
    try {
      return await opts.action();
    } catch (err) {
      errorLogger(err);
    }
  }
  throw new Error(`Failed after ${opts.count} attempts.`);
}
function buildInitial$State(opts) {
  return {
    commandBuilder: new internal_js_1.TreeBox(resolveCommandBuilder()),
    requestBuilder: resolveRequestBuilder(),
    // deno-lint-ignore no-console
    infoLogger: new internal_js_1.LoggerTreeBox(console.error),
    // deno-lint-ignore no-console
    warnLogger: new internal_js_1.LoggerTreeBox(console.error),
    // deno-lint-ignore no-console
    errorLogger: new internal_js_1.LoggerTreeBox(console.error),
    indentLevel: new internal_js_1.Box(0),
    extras: opts.extras
  };
  function resolveCommandBuilder() {
    if (opts.commandBuilder instanceof mod_js_2.CommandBuilder) {
      return opts.commandBuilder;
    } else if (opts.commandBuilder instanceof Function) {
      return opts.commandBuilder(new mod_js_2.CommandBuilder());
    } else {
      const _assertUndefined = opts.commandBuilder;
      return new mod_js_2.CommandBuilder();
    }
  }
  function resolveRequestBuilder() {
    if (opts.requestBuilder instanceof request_js_1.RequestBuilder) {
      return opts.requestBuilder;
    } else if (opts.requestBuilder instanceof Function) {
      return opts.requestBuilder(new request_js_1.RequestBuilder());
    } else {
      const _assertUndefined = opts.requestBuilder;
      return new request_js_1.RequestBuilder();
    }
  }
}
var helperObject = {
  path: createPath,
  escapeArg: mod_js_2.escapeArg,
  stripAnsi(text) {
    return (0, mod_js_4.stripAnsiCodes)(text);
  },
  dedent: outdent_js_1.outdent,
  sleep,
  which(commandName) {
    return (0, mod_js_1.which)(commandName, mod_js_2.whichRealEnv);
  },
  whichSync(commandName) {
    return (0, mod_js_1.whichSync)(commandName, mod_js_2.whichRealEnv);
  }
};
function build$FromState(state) {
  const logDepthObj = {
    get logDepth() {
      return state.indentLevel.value;
    },
    set logDepth(value) {
      if (value < 0 || value % 1 !== 0) {
        throw new Error("Expected a positive integer.");
      }
      state.indentLevel.value = value;
    }
  };
  const result = Object.assign((strings, ...exprs) => {
    const textState = (0, internal_js_1.template)(strings, exprs);
    return state.commandBuilder.getValue()[internal_js_1.setCommandTextStateSymbol](textState);
  }, helperObject, logDepthObj, {
    build$(opts = {}) {
      return build$FromState({
        commandBuilder: resolveCommandBuilder(),
        requestBuilder: resolveRequestBuilder(),
        errorLogger: state.errorLogger.createChild(),
        infoLogger: state.infoLogger.createChild(),
        warnLogger: state.warnLogger.createChild(),
        indentLevel: state.indentLevel,
        extras: {
          ...state.extras,
          ...opts.extras
        }
      });
      function resolveCommandBuilder() {
        if (opts.commandBuilder instanceof mod_js_2.CommandBuilder) {
          return new internal_js_1.TreeBox(opts.commandBuilder);
        } else if (opts.commandBuilder instanceof Function) {
          return new internal_js_1.TreeBox(opts.commandBuilder(state.commandBuilder.getValue()));
        } else {
          const _assertUndefined = opts.commandBuilder;
          return state.commandBuilder.createChild();
        }
      }
      function resolveRequestBuilder() {
        if (opts.requestBuilder instanceof request_js_1.RequestBuilder) {
          return opts.requestBuilder;
        } else if (opts.requestBuilder instanceof Function) {
          return opts.requestBuilder(state.requestBuilder);
        } else {
          const _assertUndefined = opts.requestBuilder;
          return state.requestBuilder;
        }
      }
    },
    log(...data) {
      state.infoLogger.getValue()(getLogText(data));
    },
    logLight(...data) {
      state.infoLogger.getValue()(colors.gray(getLogText(data)));
    },
    logStep(firstArg, ...data) {
      logStep(firstArg, data, (t) => colors.bold(colors.green(t)), state.infoLogger.getValue());
    },
    logError(firstArg, ...data) {
      logStep(firstArg, data, (t) => colors.bold(colors.red(t)), state.errorLogger.getValue());
    },
    logWarn(firstArg, ...data) {
      logStep(firstArg, data, (t) => colors.bold(colors.yellow(t)), state.warnLogger.getValue());
    },
    logGroup(labelOrAction, maybeAction) {
      const label = typeof labelOrAction === "string" ? labelOrAction : void 0;
      if (label) {
        state.infoLogger.getValue()(getLogText([label]));
      }
      state.indentLevel.value++;
      const action = label != null ? maybeAction : labelOrAction;
      if (action != null) {
        let wasPromise = false;
        try {
          const result2 = action();
          if (result2 instanceof Promise) {
            wasPromise = true;
            return result2.finally(() => {
              if (state.indentLevel.value > 0) {
                state.indentLevel.value--;
              }
            });
          } else {
            return result2;
          }
        } finally {
          if (!wasPromise) {
            if (state.indentLevel.value > 0) {
              state.indentLevel.value--;
            }
          }
        }
      }
    },
    logGroupEnd() {
      if (state.indentLevel.value > 0) {
        state.indentLevel.value--;
      }
    },
    commandExists(commandName) {
      if (state.commandBuilder.getValue()[internal_js_1.getRegisteredCommandNamesSymbol]().includes(commandName)) {
        return Promise.resolve(true);
      }
      return helperObject.which(commandName).then((c) => c != null);
    },
    commandExistsSync(commandName) {
      if (state.commandBuilder.getValue()[internal_js_1.getRegisteredCommandNamesSymbol]().includes(commandName)) {
        return true;
      }
      return helperObject.whichSync(commandName) != null;
    },
    alert: mod_js_3.alert,
    maybeConfirm: mod_js_3.maybeConfirm,
    confirm: mod_js_3.confirm,
    maybeSelect: mod_js_3.maybeSelect,
    select: mod_js_3.select,
    maybeMultiSelect: mod_js_3.maybeMultiSelect,
    multiSelect: mod_js_3.multiSelect,
    maybePrompt: mod_js_3.maybePrompt,
    prompt: mod_js_3.prompt,
    progress(messageOrText, options) {
      const opts = typeof messageOrText === "string" ? (() => {
        const words = messageOrText.split(" ");
        return {
          prefix: words[0],
          message: words.length > 1 ? words.slice(1).join(" ") : void 0,
          ...options
        };
      })() : messageOrText;
      return new mod_js_3.ProgressBar((...data) => {
        state.infoLogger.getValue()(...data);
      }, opts);
    },
    setInfoLogger(logger) {
      state.infoLogger.setValue(logger);
    },
    setWarnLogger(logger) {
      state.warnLogger.setValue(logger);
    },
    setErrorLogger(logger) {
      state.errorLogger.setValue(logger);
      const commandBuilder = state.commandBuilder.getValue();
      commandBuilder.setPrintCommandLogger((cmd) => logger(colors.white(">"), colors.blue(cmd)));
      state.commandBuilder.setValue(commandBuilder);
    },
    setPrintCommand(value) {
      const commandBuilder = state.commandBuilder.getValue().printCommand(value);
      state.commandBuilder.setValue(commandBuilder);
    },
    setTailDisplay(value) {
      const builder = state.commandBuilder.getValue();
      const commandBuilder = typeof value === "boolean" ? builder.tailDisplay(value) : builder.tailDisplay(value);
      state.commandBuilder.setValue(commandBuilder);
    },
    setErrorTail(value) {
      const builder = state.commandBuilder.getValue();
      const commandBuilder = typeof value === "boolean" ? builder.errorTail(value) : builder.errorTail(value);
      state.commandBuilder.setValue(commandBuilder);
    },
    symbols: internal_js_1.symbols,
    request(url) {
      return state.requestBuilder.url(url);
    },
    raw(strings, ...exprs) {
      const textState = (0, internal_js_1.templateRaw)(strings, exprs);
      return state.commandBuilder.getValue()[internal_js_1.setCommandTextStateSymbol](textState);
    },
    rawArg: mod_js_2.rawArg,
    withRetries(opts) {
      return withRetries(result, state.errorLogger.getValue(), opts);
    },
    all(values, transform) {
      const items = Array.from(values);
      const count = Math.max(1, items.length);
      const maxLines = ({ size }) => Math.max(3, Math.floor((size?.rows ?? 24) * 0.9 / count));
      return Promise.all(items.map((value) => {
        if (value instanceof mod_js_2.CommandBuilder) {
          const configured = value.tailDisplay({ maxLines });
          return transform ? transform(configured) : configured;
        }
        return value;
      }));
    }
  }, state.extras);
  const keyName = "logDepth";
  Object.defineProperty(result, keyName, Object.getOwnPropertyDescriptor(logDepthObj, keyName));
  state.requestBuilder = state.requestBuilder[request_js_1.withProgressBarFactorySymbol]((message) => result.progress(message));
  return result;
  function getLogText(data) {
    const combinedText = data.map((d) => {
      const typeofD = typeof d;
      if (typeofD !== "object" && typeofD !== "undefined") {
        return d;
      } else {
        return (0, node_util_1.inspect)(d, { colors: true });
      }
    }).join(" ");
    if (state.indentLevel.value === 0) {
      return combinedText;
    } else {
      const indentText = "  ".repeat(state.indentLevel.value);
      return combinedText.split(/\n/).map((l) => `${indentText}${l}`).join("\n");
    }
  }
  function logStep(firstArg, data, colourize, logger) {
    if (data.length === 0) {
      let i = 0;
      while (i < firstArg.length && firstArg[i] === " ") {
        i++;
      }
      while (i < firstArg.length && firstArg[i] !== " ") {
        i++;
      }
      firstArg = colourize(firstArg.substring(0, i)) + firstArg.substring(i);
    } else {
      firstArg = colourize(firstArg);
    }
    logger(getLogText([firstArg, ...data]));
  }
}
function build$(options = {}) {
  return build$FromState(buildInitial$State({
    isGlobal: false,
    ...options
  }));
}
exports.$ = build$FromState(buildInitial$State({
  isGlobal: true
}));
exports.default = exports.$;
function createPath(path) {
  if (path instanceof mod_js_5.Path) {
    return path;
  } else {
    return new mod_js_5.Path(path);
  }
}