@evitcastudio/kit 3.3.1 → 3.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,8 +2,8 @@
2
2
  // @bun
3
3
 
4
4
  /*!
5
- * @evitcastudio/kit@3.3.1 git+https://github.com/EvitcaStudio/Kit.git
6
- * Compiled Wed, 09 Sep 2026 16:18:17 UTC
5
+ * @evitcastudio/kit@3.4.0 git+https://github.com/EvitcaStudio/Kit.git
6
+ * Compiled Fri, 11 Sep 2026 03:52:37 UTC
7
7
  * Copyright (c) 2026 Jared Bates, Evitca Studio, "doubleactii"
8
8
  *
9
9
  * @evitcastudio/kit is licensed under the MIT License.
@@ -1943,497 +1943,7 @@ var {
1943
1943
 
1944
1944
  // src/cli/resource-builder.ts
1945
1945
  import { promises as fs2, existsSync as existsSync2 } from "fs";
1946
- import { join as join4, extname as extname3, basename as basename3, resolve as resolve3, relative as relative3 } from "path";
1947
-
1948
- // node_modules/chalk/source/vendor/ansi-styles/index.js
1949
- var ANSI_BACKGROUND_OFFSET = 10;
1950
- var wrapAnsi16 = (offset = 0) => (code) => `\x1B[${code + offset}m`;
1951
- var wrapAnsi256 = (offset = 0) => (code) => `\x1B[${38 + offset};5;${code}m`;
1952
- var wrapAnsi16m = (offset = 0) => (red, green, blue) => `\x1B[${38 + offset};2;${red};${green};${blue}m`;
1953
- var styles = {
1954
- modifier: {
1955
- reset: [0, 0],
1956
- bold: [1, 22],
1957
- dim: [2, 22],
1958
- italic: [3, 23],
1959
- underline: [4, 24],
1960
- overline: [53, 55],
1961
- inverse: [7, 27],
1962
- hidden: [8, 28],
1963
- strikethrough: [9, 29]
1964
- },
1965
- color: {
1966
- black: [30, 39],
1967
- red: [31, 39],
1968
- green: [32, 39],
1969
- yellow: [33, 39],
1970
- blue: [34, 39],
1971
- magenta: [35, 39],
1972
- cyan: [36, 39],
1973
- white: [37, 39],
1974
- blackBright: [90, 39],
1975
- gray: [90, 39],
1976
- grey: [90, 39],
1977
- redBright: [91, 39],
1978
- greenBright: [92, 39],
1979
- yellowBright: [93, 39],
1980
- blueBright: [94, 39],
1981
- magentaBright: [95, 39],
1982
- cyanBright: [96, 39],
1983
- whiteBright: [97, 39]
1984
- },
1985
- bgColor: {
1986
- bgBlack: [40, 49],
1987
- bgRed: [41, 49],
1988
- bgGreen: [42, 49],
1989
- bgYellow: [43, 49],
1990
- bgBlue: [44, 49],
1991
- bgMagenta: [45, 49],
1992
- bgCyan: [46, 49],
1993
- bgWhite: [47, 49],
1994
- bgBlackBright: [100, 49],
1995
- bgGray: [100, 49],
1996
- bgGrey: [100, 49],
1997
- bgRedBright: [101, 49],
1998
- bgGreenBright: [102, 49],
1999
- bgYellowBright: [103, 49],
2000
- bgBlueBright: [104, 49],
2001
- bgMagentaBright: [105, 49],
2002
- bgCyanBright: [106, 49],
2003
- bgWhiteBright: [107, 49]
2004
- }
2005
- };
2006
- var modifierNames = Object.keys(styles.modifier);
2007
- var foregroundColorNames = Object.keys(styles.color);
2008
- var backgroundColorNames = Object.keys(styles.bgColor);
2009
- var colorNames = [...foregroundColorNames, ...backgroundColorNames];
2010
- function assembleStyles() {
2011
- const codes = new Map;
2012
- for (const [groupName, group] of Object.entries(styles)) {
2013
- for (const [styleName, style] of Object.entries(group)) {
2014
- styles[styleName] = {
2015
- open: `\x1B[${style[0]}m`,
2016
- close: `\x1B[${style[1]}m`
2017
- };
2018
- group[styleName] = styles[styleName];
2019
- codes.set(style[0], style[1]);
2020
- }
2021
- Object.defineProperty(styles, groupName, {
2022
- value: group,
2023
- enumerable: false
2024
- });
2025
- }
2026
- Object.defineProperty(styles, "codes", {
2027
- value: codes,
2028
- enumerable: false
2029
- });
2030
- styles.color.close = "\x1B[39m";
2031
- styles.bgColor.close = "\x1B[49m";
2032
- styles.color.ansi = wrapAnsi16();
2033
- styles.color.ansi256 = wrapAnsi256();
2034
- styles.color.ansi16m = wrapAnsi16m();
2035
- styles.bgColor.ansi = wrapAnsi16(ANSI_BACKGROUND_OFFSET);
2036
- styles.bgColor.ansi256 = wrapAnsi256(ANSI_BACKGROUND_OFFSET);
2037
- styles.bgColor.ansi16m = wrapAnsi16m(ANSI_BACKGROUND_OFFSET);
2038
- Object.defineProperties(styles, {
2039
- rgbToAnsi256: {
2040
- value(red, green, blue) {
2041
- if (red === green && green === blue) {
2042
- if (red < 8) {
2043
- return 16;
2044
- }
2045
- if (red > 248) {
2046
- return 231;
2047
- }
2048
- return Math.round((red - 8) / 247 * 24) + 232;
2049
- }
2050
- return 16 + 36 * Math.round(red / 255 * 5) + 6 * Math.round(green / 255 * 5) + Math.round(blue / 255 * 5);
2051
- },
2052
- enumerable: false
2053
- },
2054
- hexToRgb: {
2055
- value(hex) {
2056
- const matches = /[a-f\d]{6}|[a-f\d]{3}/i.exec(hex.toString(16));
2057
- if (!matches) {
2058
- return [0, 0, 0];
2059
- }
2060
- let [colorString] = matches;
2061
- if (colorString.length === 3) {
2062
- colorString = [...colorString].map((character) => character + character).join("");
2063
- }
2064
- const integer = Number.parseInt(colorString, 16);
2065
- return [
2066
- integer >> 16 & 255,
2067
- integer >> 8 & 255,
2068
- integer & 255
2069
- ];
2070
- },
2071
- enumerable: false
2072
- },
2073
- hexToAnsi256: {
2074
- value: (hex) => styles.rgbToAnsi256(...styles.hexToRgb(hex)),
2075
- enumerable: false
2076
- },
2077
- ansi256ToAnsi: {
2078
- value(code) {
2079
- if (code < 8) {
2080
- return 30 + code;
2081
- }
2082
- if (code < 16) {
2083
- return 90 + (code - 8);
2084
- }
2085
- let red;
2086
- let green;
2087
- let blue;
2088
- if (code >= 232) {
2089
- red = ((code - 232) * 10 + 8) / 255;
2090
- green = red;
2091
- blue = red;
2092
- } else {
2093
- code -= 16;
2094
- const remainder = code % 36;
2095
- red = Math.floor(code / 36) / 5;
2096
- green = Math.floor(remainder / 6) / 5;
2097
- blue = remainder % 6 / 5;
2098
- }
2099
- const value = Math.max(red, green, blue) * 2;
2100
- if (value === 0) {
2101
- return 30;
2102
- }
2103
- let result = 30 + (Math.round(blue) << 2 | Math.round(green) << 1 | Math.round(red));
2104
- if (value === 2) {
2105
- result += 60;
2106
- }
2107
- return result;
2108
- },
2109
- enumerable: false
2110
- },
2111
- rgbToAnsi: {
2112
- value: (red, green, blue) => styles.ansi256ToAnsi(styles.rgbToAnsi256(red, green, blue)),
2113
- enumerable: false
2114
- },
2115
- hexToAnsi: {
2116
- value: (hex) => styles.ansi256ToAnsi(styles.hexToAnsi256(hex)),
2117
- enumerable: false
2118
- }
2119
- });
2120
- return styles;
2121
- }
2122
- var ansiStyles = assembleStyles();
2123
- var ansi_styles_default = ansiStyles;
2124
-
2125
- // node_modules/chalk/source/vendor/supports-color/index.js
2126
- import process2 from "process";
2127
- import os from "os";
2128
- import tty from "tty";
2129
- function hasFlag(flag, argv = globalThis.Deno ? globalThis.Deno.args : process2.argv) {
2130
- const prefix = flag.startsWith("-") ? "" : flag.length === 1 ? "-" : "--";
2131
- const position = argv.indexOf(prefix + flag);
2132
- const terminatorPosition = argv.indexOf("--");
2133
- return position !== -1 && (terminatorPosition === -1 || position < terminatorPosition);
2134
- }
2135
- var { env } = process2;
2136
- var flagForceColor;
2137
- if (hasFlag("no-color") || hasFlag("no-colors") || hasFlag("color=false") || hasFlag("color=never")) {
2138
- flagForceColor = 0;
2139
- } else if (hasFlag("color") || hasFlag("colors") || hasFlag("color=true") || hasFlag("color=always")) {
2140
- flagForceColor = 1;
2141
- }
2142
- function envForceColor() {
2143
- if ("FORCE_COLOR" in env) {
2144
- if (env.FORCE_COLOR === "true") {
2145
- return 1;
2146
- }
2147
- if (env.FORCE_COLOR === "false") {
2148
- return 0;
2149
- }
2150
- return env.FORCE_COLOR.length === 0 ? 1 : Math.min(Number.parseInt(env.FORCE_COLOR, 10), 3);
2151
- }
2152
- }
2153
- function translateLevel(level) {
2154
- if (level === 0) {
2155
- return false;
2156
- }
2157
- return {
2158
- level,
2159
- hasBasic: true,
2160
- has256: level >= 2,
2161
- has16m: level >= 3
2162
- };
2163
- }
2164
- function _supportsColor(haveStream, { streamIsTTY, sniffFlags = true } = {}) {
2165
- const noFlagForceColor = envForceColor();
2166
- if (noFlagForceColor !== undefined) {
2167
- flagForceColor = noFlagForceColor;
2168
- }
2169
- const forceColor = sniffFlags ? flagForceColor : noFlagForceColor;
2170
- if (forceColor === 0) {
2171
- return 0;
2172
- }
2173
- if (sniffFlags) {
2174
- if (hasFlag("color=16m") || hasFlag("color=full") || hasFlag("color=truecolor")) {
2175
- return 3;
2176
- }
2177
- if (hasFlag("color=256")) {
2178
- return 2;
2179
- }
2180
- }
2181
- if ("TF_BUILD" in env && "AGENT_NAME" in env) {
2182
- return 1;
2183
- }
2184
- if (haveStream && !streamIsTTY && forceColor === undefined) {
2185
- return 0;
2186
- }
2187
- const min = forceColor || 0;
2188
- if (env.TERM === "dumb") {
2189
- return min;
2190
- }
2191
- if (process2.platform === "win32") {
2192
- const osRelease = os.release().split(".");
2193
- if (Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) {
2194
- return Number(osRelease[2]) >= 14931 ? 3 : 2;
2195
- }
2196
- return 1;
2197
- }
2198
- if ("CI" in env) {
2199
- if (["GITHUB_ACTIONS", "GITEA_ACTIONS", "CIRCLECI"].some((key) => (key in env))) {
2200
- return 3;
2201
- }
2202
- if (["TRAVIS", "APPVEYOR", "GITLAB_CI", "BUILDKITE", "DRONE"].some((sign) => (sign in env)) || env.CI_NAME === "codeship") {
2203
- return 1;
2204
- }
2205
- return min;
2206
- }
2207
- if ("TEAMCITY_VERSION" in env) {
2208
- return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;
2209
- }
2210
- if (env.COLORTERM === "truecolor") {
2211
- return 3;
2212
- }
2213
- if (env.TERM === "xterm-kitty") {
2214
- return 3;
2215
- }
2216
- if (env.TERM === "xterm-ghostty") {
2217
- return 3;
2218
- }
2219
- if (env.TERM === "wezterm") {
2220
- return 3;
2221
- }
2222
- if ("TERM_PROGRAM" in env) {
2223
- const version = Number.parseInt((env.TERM_PROGRAM_VERSION || "").split(".")[0], 10);
2224
- switch (env.TERM_PROGRAM) {
2225
- case "iTerm.app": {
2226
- return version >= 3 ? 3 : 2;
2227
- }
2228
- case "Apple_Terminal": {
2229
- return 2;
2230
- }
2231
- }
2232
- }
2233
- if (/-256(color)?$/i.test(env.TERM)) {
2234
- return 2;
2235
- }
2236
- if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {
2237
- return 1;
2238
- }
2239
- if ("COLORTERM" in env) {
2240
- return 1;
2241
- }
2242
- return min;
2243
- }
2244
- function createSupportsColor(stream, options = {}) {
2245
- const level = _supportsColor(stream, {
2246
- streamIsTTY: stream && stream.isTTY,
2247
- ...options
2248
- });
2249
- return translateLevel(level);
2250
- }
2251
- var supportsColor = {
2252
- stdout: createSupportsColor({ isTTY: tty.isatty(1) }),
2253
- stderr: createSupportsColor({ isTTY: tty.isatty(2) })
2254
- };
2255
- var supports_color_default = supportsColor;
2256
-
2257
- // node_modules/chalk/source/utilities.js
2258
- function stringReplaceAll(string, substring, replacer) {
2259
- let index = string.indexOf(substring);
2260
- if (index === -1) {
2261
- return string;
2262
- }
2263
- const substringLength = substring.length;
2264
- let endIndex = 0;
2265
- let returnValue = "";
2266
- do {
2267
- returnValue += string.slice(endIndex, index) + substring + replacer;
2268
- endIndex = index + substringLength;
2269
- index = string.indexOf(substring, endIndex);
2270
- } while (index !== -1);
2271
- returnValue += string.slice(endIndex);
2272
- return returnValue;
2273
- }
2274
- function stringEncaseCRLFWithFirstIndex(string, prefix, postfix, index) {
2275
- let endIndex = 0;
2276
- let returnValue = "";
2277
- do {
2278
- const gotCR = string[index - 1] === "\r";
2279
- returnValue += string.slice(endIndex, gotCR ? index - 1 : index) + prefix + (gotCR ? `\r
2280
- ` : `
2281
- `) + postfix;
2282
- endIndex = index + 1;
2283
- index = string.indexOf(`
2284
- `, endIndex);
2285
- } while (index !== -1);
2286
- returnValue += string.slice(endIndex);
2287
- return returnValue;
2288
- }
2289
-
2290
- // node_modules/chalk/source/index.js
2291
- var { stdout: stdoutColor, stderr: stderrColor } = supports_color_default;
2292
- var GENERATOR = Symbol("GENERATOR");
2293
- var STYLER = Symbol("STYLER");
2294
- var IS_EMPTY = Symbol("IS_EMPTY");
2295
- var levelMapping = [
2296
- "ansi",
2297
- "ansi",
2298
- "ansi256",
2299
- "ansi16m"
2300
- ];
2301
- var styles2 = Object.create(null);
2302
- var applyOptions = (object, options = {}) => {
2303
- if (options.level && !(Number.isInteger(options.level) && options.level >= 0 && options.level <= 3)) {
2304
- throw new Error("The `level` option should be an integer from 0 to 3");
2305
- }
2306
- const colorLevel = stdoutColor ? stdoutColor.level : 0;
2307
- object.level = options.level === undefined ? colorLevel : options.level;
2308
- };
2309
- var chalkFactory = (options) => {
2310
- const chalk = (...strings) => strings.join(" ");
2311
- applyOptions(chalk, options);
2312
- Object.setPrototypeOf(chalk, createChalk.prototype);
2313
- return chalk;
2314
- };
2315
- function createChalk(options) {
2316
- return chalkFactory(options);
2317
- }
2318
- Object.setPrototypeOf(createChalk.prototype, Function.prototype);
2319
- for (const [styleName, style] of Object.entries(ansi_styles_default)) {
2320
- styles2[styleName] = {
2321
- get() {
2322
- const builder = createBuilder(this, createStyler(style.open, style.close, this[STYLER]), this[IS_EMPTY]);
2323
- Object.defineProperty(this, styleName, { value: builder });
2324
- return builder;
2325
- }
2326
- };
2327
- }
2328
- styles2.visible = {
2329
- get() {
2330
- const builder = createBuilder(this, this[STYLER], true);
2331
- Object.defineProperty(this, "visible", { value: builder });
2332
- return builder;
2333
- }
2334
- };
2335
- var getModelAnsi = (model, level, type, ...arguments_) => {
2336
- if (model === "rgb") {
2337
- if (level === "ansi16m") {
2338
- return ansi_styles_default[type].ansi16m(...arguments_);
2339
- }
2340
- if (level === "ansi256") {
2341
- return ansi_styles_default[type].ansi256(ansi_styles_default.rgbToAnsi256(...arguments_));
2342
- }
2343
- return ansi_styles_default[type].ansi(ansi_styles_default.rgbToAnsi(...arguments_));
2344
- }
2345
- if (model === "hex") {
2346
- return getModelAnsi("rgb", level, type, ...ansi_styles_default.hexToRgb(...arguments_));
2347
- }
2348
- return ansi_styles_default[type][model](...arguments_);
2349
- };
2350
- var usedModels = ["rgb", "hex", "ansi256"];
2351
- for (const model of usedModels) {
2352
- styles2[model] = {
2353
- get() {
2354
- const { level } = this;
2355
- return function(...arguments_) {
2356
- const styler = createStyler(getModelAnsi(model, levelMapping[level], "color", ...arguments_), ansi_styles_default.color.close, this[STYLER]);
2357
- return createBuilder(this, styler, this[IS_EMPTY]);
2358
- };
2359
- }
2360
- };
2361
- const bgModel = "bg" + model[0].toUpperCase() + model.slice(1);
2362
- styles2[bgModel] = {
2363
- get() {
2364
- const { level } = this;
2365
- return function(...arguments_) {
2366
- const styler = createStyler(getModelAnsi(model, levelMapping[level], "bgColor", ...arguments_), ansi_styles_default.bgColor.close, this[STYLER]);
2367
- return createBuilder(this, styler, this[IS_EMPTY]);
2368
- };
2369
- }
2370
- };
2371
- }
2372
- var proto = Object.defineProperties(() => {
2373
- }, {
2374
- ...styles2,
2375
- level: {
2376
- enumerable: true,
2377
- get() {
2378
- return this[GENERATOR].level;
2379
- },
2380
- set(level) {
2381
- this[GENERATOR].level = level;
2382
- }
2383
- }
2384
- });
2385
- var createStyler = (open, close, parent) => {
2386
- let openAll;
2387
- let closeAll;
2388
- if (parent === undefined) {
2389
- openAll = open;
2390
- closeAll = close;
2391
- } else {
2392
- openAll = parent.openAll + open;
2393
- closeAll = close + parent.closeAll;
2394
- }
2395
- return {
2396
- open,
2397
- close,
2398
- openAll,
2399
- closeAll,
2400
- parent
2401
- };
2402
- };
2403
- var createBuilder = (self, _styler, _isEmpty) => {
2404
- const builder = (...arguments_) => applyStyle(builder, arguments_.length === 1 ? "" + arguments_[0] : arguments_.join(" "));
2405
- Object.setPrototypeOf(builder, proto);
2406
- builder[GENERATOR] = self;
2407
- builder[STYLER] = _styler;
2408
- builder[IS_EMPTY] = _isEmpty;
2409
- return builder;
2410
- };
2411
- var applyStyle = (self, string) => {
2412
- if (self.level <= 0 || !string) {
2413
- return self[IS_EMPTY] ? "" : string;
2414
- }
2415
- let styler = self[STYLER];
2416
- if (styler === undefined) {
2417
- return string;
2418
- }
2419
- const { openAll, closeAll } = styler;
2420
- if (string.includes("\x1B")) {
2421
- while (styler !== undefined) {
2422
- string = stringReplaceAll(string, styler.close, styler.open);
2423
- styler = styler.parent;
2424
- }
2425
- }
2426
- const lfIndex = string.indexOf(`
2427
- `);
2428
- if (lfIndex !== -1) {
2429
- string = stringEncaseCRLFWithFirstIndex(string, closeAll, openAll, lfIndex);
2430
- }
2431
- return openAll + string + closeAll;
2432
- };
2433
- Object.defineProperties(createChalk.prototype, styles2);
2434
- var chalk = createChalk();
2435
- var chalkStderr = createChalk({ level: stderrColor ? stderrColor.level : 0 });
2436
- var source_default = chalk;
1946
+ import { join as join4, extname as extname3, basename as basename3, resolve as resolve4, relative as relative3 } from "path";
2437
1947
 
2438
1948
  // node_modules/chokidar/index.js
2439
1949
  import { EventEmitter } from "events";
@@ -4099,17 +3609,11 @@ function v4(options, buf, offset) {
4099
3609
  return native_default.randomUUID();
4100
3610
  }
4101
3611
  options = options || {};
4102
- const rnds = options.random ?? options.rng?.() ?? rng();
4103
- if (rnds.length < 16) {
4104
- throw new Error("Random bytes length must be >= 16");
4105
- }
3612
+ const rnds = options.random || (options.rng || rng)();
4106
3613
  rnds[6] = rnds[6] & 15 | 64;
4107
3614
  rnds[8] = rnds[8] & 63 | 128;
4108
3615
  if (buf) {
4109
3616
  offset = offset || 0;
4110
- if (offset < 0 || offset + 16 > buf.length) {
4111
- throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`);
4112
- }
4113
3617
  for (let i = 0;i < 16; ++i) {
4114
3618
  buf[offset + i] = rnds[i];
4115
3619
  }
@@ -9206,435 +8710,955 @@ Inflate$1.prototype.push = function(data, flush_mode) {
9206
8710
  }
9207
8711
  }
9208
8712
  }
9209
- if (status === Z_OK && last_avail_out === 0)
9210
- continue;
9211
- if (status === Z_STREAM_END) {
9212
- status = inflate_1$2.inflateEnd(this.strm);
9213
- this.onEnd(status);
9214
- this.ended = true;
9215
- return true;
9216
- }
9217
- if (strm.avail_in === 0)
9218
- break;
8713
+ if (status === Z_OK && last_avail_out === 0)
8714
+ continue;
8715
+ if (status === Z_STREAM_END) {
8716
+ status = inflate_1$2.inflateEnd(this.strm);
8717
+ this.onEnd(status);
8718
+ this.ended = true;
8719
+ return true;
8720
+ }
8721
+ if (strm.avail_in === 0)
8722
+ break;
8723
+ }
8724
+ return true;
8725
+ };
8726
+ Inflate$1.prototype.onData = function(chunk) {
8727
+ this.chunks.push(chunk);
8728
+ };
8729
+ Inflate$1.prototype.onEnd = function(status) {
8730
+ if (status === Z_OK) {
8731
+ if (this.options.to === "string") {
8732
+ this.result = this.chunks.join("");
8733
+ } else {
8734
+ this.result = common.flattenChunks(this.chunks);
8735
+ }
8736
+ }
8737
+ this.chunks = [];
8738
+ this.err = status;
8739
+ this.msg = this.strm.msg;
8740
+ };
8741
+ function inflate$1(input, options) {
8742
+ const inflator = new Inflate$1(options);
8743
+ inflator.push(input);
8744
+ if (inflator.err)
8745
+ throw inflator.msg || messages[inflator.err];
8746
+ return inflator.result;
8747
+ }
8748
+ function inflateRaw$1(input, options) {
8749
+ options = options || {};
8750
+ options.raw = true;
8751
+ return inflate$1(input, options);
8752
+ }
8753
+ var Inflate_1$1 = Inflate$1;
8754
+ var inflate_2 = inflate$1;
8755
+ var inflateRaw_1$1 = inflateRaw$1;
8756
+ var ungzip$1 = inflate$1;
8757
+ var constants = constants$2;
8758
+ var inflate_1$1 = {
8759
+ Inflate: Inflate_1$1,
8760
+ inflate: inflate_2,
8761
+ inflateRaw: inflateRaw_1$1,
8762
+ ungzip: ungzip$1,
8763
+ constants
8764
+ };
8765
+ var { Deflate, deflate, deflateRaw, gzip } = deflate_1$1;
8766
+ var { Inflate, inflate, inflateRaw, ungzip } = inflate_1$1;
8767
+ var Deflate_1 = Deflate;
8768
+ var deflate_1 = deflate;
8769
+ var deflateRaw_1 = deflateRaw;
8770
+ var gzip_1 = gzip;
8771
+ var Inflate_1 = Inflate;
8772
+ var inflate_1 = inflate;
8773
+ var inflateRaw_1 = inflateRaw;
8774
+ var ungzip_1 = ungzip;
8775
+ var constants_1 = constants$2;
8776
+ var pako = {
8777
+ Deflate: Deflate_1,
8778
+ deflate: deflate_1,
8779
+ deflateRaw: deflateRaw_1,
8780
+ gzip: gzip_1,
8781
+ Inflate: Inflate_1,
8782
+ inflate: inflate_1,
8783
+ inflateRaw: inflateRaw_1,
8784
+ ungzip: ungzip_1,
8785
+ constants: constants_1
8786
+ };
8787
+
8788
+ class VYI {
8789
+ static version = "4.1.0";
8790
+ static logger = new Logger;
8791
+ icons = new Map;
8792
+ name = "failed-to-find-vyi-name";
8793
+ formatVersion = 1;
8794
+ constructor(pVyiData) {
8795
+ VYI.logger.registerType("Vyi-module", "#ff6600");
8796
+ if (pVyiData) {
8797
+ this.parse(pVyiData);
8798
+ }
8799
+ }
8800
+ parse(pVyiData) {
8801
+ if (!pVyiData)
8802
+ return this;
8803
+ try {
8804
+ let vyi;
8805
+ if (typeof pVyiData === "string") {
8806
+ try {
8807
+ vyi = JSON.parse(pVyiData);
8808
+ } catch (pError) {
8809
+ if (!pVyiData.includes(".vyr") && !pVyiData.includes(".vyi")) {
8810
+ vyi = pVyiData;
8811
+ if (!vyi) {
8812
+ throw new Error("Non vyi data found from binary string");
8813
+ }
8814
+ } else {
8815
+ try {
8816
+ vyi = JSON.parse(pVyiData);
8817
+ } catch (e) {
8818
+ const isNodeEnv = typeof window === "undefined";
8819
+ if (isNodeEnv) {
8820
+ vyi = this.readFileAndGetVYI(pVyiData);
8821
+ } else {
8822
+ throw new Error("Invalid string input - not valid JSON or file path");
8823
+ }
8824
+ }
8825
+ }
8826
+ }
8827
+ } else if (pVyiData instanceof VYI) {
8828
+ vyi = pVyiData.export();
8829
+ } else if (pVyiData instanceof Object && !Array.isArray(pVyiData) && !(pVyiData instanceof ArrayBuffer || pVyiData instanceof Uint8Array)) {
8830
+ vyi = pVyiData;
8831
+ } else if (pVyiData instanceof ArrayBuffer || pVyiData instanceof Uint8Array) {
8832
+ vyi = this.handleBinaryData(pVyiData);
8833
+ } else {
8834
+ throw new Error("Error processing: Invalid input type provided.");
8835
+ }
8836
+ if (!vyi || (!vyi.v || !vyi.i) && !vyi.icons) {
8837
+ throw new Error("Non vyi data found.");
8838
+ }
8839
+ this.processVyiData(vyi);
8840
+ } catch (pError) {
8841
+ VYI.logger.prefix("Vyi-module").error(`${pError.message}`);
8842
+ }
8843
+ return this;
8844
+ }
8845
+ readFile(pVyiData) {
8846
+ try {
8847
+ const encoder = new TextEncoder;
8848
+ const binaryData = encoder.encode(pVyiData);
8849
+ const decompressed = pako.inflate(binaryData, { to: "string" });
8850
+ return JSON.parse(decompressed);
8851
+ } catch (error) {
8852
+ console.error("File reading failed:", error);
8853
+ return null;
8854
+ }
8855
+ }
8856
+ readFileAndGetVYI(pURL) {
8857
+ const fs = () => ({});
8858
+ const data = fs.readFileSync(pURL);
8859
+ return this.handleBinaryData(data);
8860
+ }
8861
+ async fetchAndParseJSON(pURL) {
8862
+ try {
8863
+ const response = await fetch(pURL);
8864
+ const jsonData = await response.json();
8865
+ return jsonData;
8866
+ } catch (pError) {
8867
+ throw new Error(`Failed to fetch or parse JSON from URL: ${pError}`);
8868
+ }
8869
+ }
8870
+ handleBinaryData(pBinaryData) {
8871
+ const byteArray = pBinaryData instanceof ArrayBuffer ? new Uint8Array(pBinaryData) : pBinaryData;
8872
+ try {
8873
+ const decompressed = pako.inflate(byteArray, { to: "string" });
8874
+ if (!decompressed)
8875
+ return null;
8876
+ return JSON.parse(decompressed);
8877
+ } catch (pError) {
8878
+ try {
8879
+ const decodedText = new TextDecoder().decode(byteArray);
8880
+ if (!decodedText)
8881
+ return null;
8882
+ return JSON.parse(decodedText);
8883
+ } catch (pDecodeError) {
8884
+ console.error("Decoding failed:", pDecodeError);
8885
+ return null;
8886
+ }
8887
+ }
8888
+ }
8889
+ processVyiData(pVyi) {
8890
+ this.icons.clear();
8891
+ const icons = pVyi.i || pVyi.icons;
8892
+ this.formatVersion = pVyi.v ?? "format not found";
8893
+ if (Array.isArray(icons)) {
8894
+ icons.forEach((pIconData) => {
8895
+ if (!Array.isArray(pIconData) && typeof pIconData === "object") {
8896
+ const convertedIconData = this.convertOldIconData(pIconData);
8897
+ this.addIcon(convertedIconData);
8898
+ } else {
8899
+ this.addIcon(pIconData);
8900
+ }
8901
+ });
8902
+ } else {
8903
+ VYI.logger.prefix("Vyi-module").error("Invalid .vyi file! Cannot parse icons.");
8904
+ }
8905
+ }
8906
+ convertOldIconData(pOldData) {
8907
+ const frames = Array.isArray(pOldData.frames) ? pOldData.frames.map((f) => [f.data, f.delay]) : [];
8908
+ const states = Array.isArray(pOldData.states) ? pOldData.states.map((s) => {
8909
+ const stateFrames = Array.isArray(s.frames) ? s.frames.map((f) => [f.data, f.delay]) : [];
8910
+ return [s.name, s.data, s.delay || 100, stateFrames];
8911
+ }) : [];
8912
+ return [
8913
+ pOldData.name || "",
8914
+ pOldData.w || 32,
8915
+ pOldData.h || 32,
8916
+ pOldData.delay || 100,
8917
+ pOldData.data || "",
8918
+ frames,
8919
+ states
8920
+ ];
8921
+ }
8922
+ addIcon(pIconData) {
8923
+ if (!pIconData) {
8924
+ VYI.logger.prefix("Vyi-module").error("No icon data passed!");
8925
+ return;
8926
+ }
8927
+ if (!(pIconData instanceof Icon) && !Array.isArray(pIconData)) {
8928
+ VYI.logger.prefix("Vyi-module").error("Invalid icon data type passed!");
8929
+ return;
8930
+ }
8931
+ const icon = pIconData instanceof Icon ? pIconData : new Icon(pIconData);
8932
+ this.icons.set(icon.id, icon);
8933
+ icon.setVyi(this);
8934
+ return icon;
8935
+ }
8936
+ removeIcon(pIcon) {
8937
+ if (!pIcon)
8938
+ return;
8939
+ if (pIcon instanceof Icon) {
8940
+ if (this.icons.delete(pIcon.id)) {
8941
+ pIcon.removeVyi();
8942
+ }
8943
+ }
8944
+ }
8945
+ removeIconByName(pName) {
8946
+ const icon = this.getIcon(pName);
8947
+ if (icon) {
8948
+ this.removeIcon(icon);
8949
+ }
8950
+ }
8951
+ removeIconById(pId) {
8952
+ const icon = this.getIconById(pId);
8953
+ if (icon) {
8954
+ this.removeIcon(icon);
8955
+ }
8956
+ }
8957
+ getIconNames() {
8958
+ const iconNames = this.getIcons().map((pIcon) => pIcon.name);
8959
+ return iconNames;
8960
+ }
8961
+ getIcon(pName) {
8962
+ if (typeof pName === "string") {
8963
+ const icons = this.getIcons();
8964
+ for (let i = icons.length - 1;i >= 0; i--) {
8965
+ const icon = icons[i];
8966
+ if (icon.getName() === pName) {
8967
+ return icon;
8968
+ }
8969
+ }
8970
+ } else {
8971
+ VYI.logger.prefix("Vyi-module").error("Invalid name type used!");
8972
+ }
9219
8973
  }
9220
- return true;
9221
- };
9222
- Inflate$1.prototype.onData = function(chunk) {
9223
- this.chunks.push(chunk);
9224
- };
9225
- Inflate$1.prototype.onEnd = function(status) {
9226
- if (status === Z_OK) {
9227
- if (this.options.to === "string") {
9228
- this.result = this.chunks.join("");
8974
+ getIconCount() {
8975
+ return this.icons.size;
8976
+ }
8977
+ getIconById(pId) {
8978
+ if (!pId)
8979
+ return;
8980
+ const icon = this.icons.get(pId) || this.getIcons().find((pIcon) => pIcon.states.has(pId))?.getStateById(pId);
8981
+ return icon;
8982
+ }
8983
+ getIcons() {
8984
+ return Array.from(this.icons.values());
8985
+ }
8986
+ rename(pName) {
8987
+ if (typeof pName === "string") {
8988
+ this.name = pName;
9229
8989
  } else {
9230
- this.result = common.flattenChunks(this.chunks);
8990
+ VYI.logger.prefix("Vyi-module").error("Invalid name type used!");
9231
8991
  }
9232
8992
  }
9233
- this.chunks = [];
9234
- this.err = status;
9235
- this.msg = this.strm.msg;
9236
- };
9237
- function inflate$1(input, options) {
9238
- const inflator = new Inflate$1(options);
9239
- inflator.push(input);
9240
- if (inflator.err)
9241
- throw inflator.msg || messages[inflator.err];
9242
- return inflator.result;
9243
- }
9244
- function inflateRaw$1(input, options) {
9245
- options = options || {};
9246
- options.raw = true;
9247
- return inflate$1(input, options);
8993
+ getName() {
8994
+ return this.name;
8995
+ }
8996
+ export(pCompressed) {
8997
+ const vyi = {
8998
+ v: this.formatVersion,
8999
+ i: this.getIcons().map((pIcon) => pIcon.export())
9000
+ };
9001
+ if (pCompressed) {
9002
+ const binaryData = new TextEncoder().encode(JSON.stringify(vyi));
9003
+ const compressed = pako.deflate(binaryData);
9004
+ return compressed;
9005
+ }
9006
+ return vyi;
9007
+ }
9248
9008
  }
9249
- var Inflate_1$1 = Inflate$1;
9250
- var inflate_2 = inflate$1;
9251
- var inflateRaw_1$1 = inflateRaw$1;
9252
- var ungzip$1 = inflate$1;
9253
- var constants = constants$2;
9254
- var inflate_1$1 = {
9255
- Inflate: Inflate_1$1,
9256
- inflate: inflate_2,
9257
- inflateRaw: inflateRaw_1$1,
9258
- ungzip: ungzip$1,
9259
- constants
9260
- };
9261
- var { Deflate, deflate, deflateRaw, gzip } = deflate_1$1;
9262
- var { Inflate, inflate, inflateRaw, ungzip } = inflate_1$1;
9263
- var Deflate_1 = Deflate;
9264
- var deflate_1 = deflate;
9265
- var deflateRaw_1 = deflateRaw;
9266
- var gzip_1 = gzip;
9267
- var Inflate_1 = Inflate;
9268
- var inflate_1 = inflate;
9269
- var inflateRaw_1 = inflateRaw;
9270
- var ungzip_1 = ungzip;
9271
- var constants_1 = constants$2;
9272
- var pako = {
9273
- Deflate: Deflate_1,
9274
- deflate: deflate_1,
9275
- deflateRaw: deflateRaw_1,
9276
- gzip: gzip_1,
9277
- Inflate: Inflate_1,
9278
- inflate: inflate_1,
9279
- inflateRaw: inflateRaw_1,
9280
- ungzip: ungzip_1,
9281
- constants: constants_1
9282
- };
9009
+ var WORKER_CODE = `/*!
9010
+ * vyi@4.1.0 https://github.com/EvitcaStudio/vyi
9011
+ * Compiled Sun, 21 Jun 2026 10:57:24 UTC
9012
+ * Copyright (c) 2026 Evitca Studio, "doubleactii"
9013
+ *
9014
+ * vyi is privately licensed.
9015
+ */
9016
+ var a0=((Q)=>typeof require!=="undefined"?require:typeof Proxy!=="undefined"?new Proxy(Q,{get:(W,J)=>(typeof require!=="undefined"?require:W)[J]}):Q)(function(Q){if(typeof require!=="undefined")return require.apply(this,arguments);throw Error('Dynamic require of "'+Q+'" is not supported')});/*!
9017
+ * logger@1.0.0 https://github.com/EvitcaStudio/Logger
9018
+ * Compiled Mon, 10 Nov 2025 05:36:23 UTC
9019
+ * Copyright (c) 2025 Evitca Studio, "doubleactii"
9020
+ *
9021
+ * logger is privately licensed.
9022
+ */class eQ{RESET;BRIGHT;DIM;UNDERSCORE;BLINK;REVERSE;HIDDEN;FG_BLACK;FG_RED;FG_GREEN;FG_YELLOW;FG_BLUE;FG_MAGENTA;FG_CYAN;FG_WHITE;FG_GRAY;BG_BLACK;BG_RED;BG_GREEN;BG_YELLOW;BG_BLUE;BG_MAGENTA;BG_CYAN;BG_WHITE;BG_GRAY;TYPE_SPACER_LENGTH;types;currentType;SPACE_CHAR;FG_COLORS;BG_COLORS;constructor(Q){this.RESET="\\x1B[0m",this.BRIGHT="\\x1B[1m",this.DIM="\\x1B[2m",this.UNDERSCORE="\\x1B[4m",this.BLINK="\\x1B[5m",this.REVERSE="\\x1B[7m",this.HIDDEN="\\x1B[8m",this.FG_BLACK="\\x1B[30m",this.FG_RED="\\x1B[31m",this.FG_GREEN="\\x1B[32m",this.FG_YELLOW="\\x1B[33m",this.FG_BLUE="\\x1B[34m",this.FG_MAGENTA="\\x1B[35m",this.FG_CYAN="\\x1B[36m",this.FG_WHITE="\\x1B[37m",this.FG_GRAY="\\x1B[90m",this.BG_BLACK="\\x1B[40m",this.BG_RED="\\x1B[41m",this.BG_GREEN="\\x1B[42m",this.BG_YELLOW="\\x1B[43m",this.BG_BLUE="\\x1B[44m",this.BG_MAGENTA="\\x1B[45m",this.BG_CYAN="\\x1B[46m",this.BG_WHITE="\\x1B[47m",this.BG_GRAY="\\x1B[100m",this.TYPE_SPACER_LENGTH=13,this.types={default:this.FG_WHITE},this.currentType="",this.SPACE_CHAR=" ",this.FG_COLORS={};for(let W=0;W<=255;W++)this.FG_COLORS[W]="\\x1B[38;5;"+W+"m";this.BG_COLORS={};for(let W=0;W<=255;W++)this.BG_COLORS[W]="\\x1B[48;5;"+W+"m";if(Array.isArray(Q))this.registerTypes(Q)}prefix(Q){if(typeof Q==="string")this.currentType=Q;return this}message(Q="log",...W){let J=this.currentType?this.currentType:"";if(J.length===0)console[Q](...W);else{let G=J.length>=this.TYPE_SPACER_LENGTH,q=this.types[J.toLowerCase()]?this.types[J.toLowerCase()]:this.types.default,z=q.includes("\\x1B");if(!z)q=\`color: \${q}\`;if(typeof globalThis.window!=="undefined")if(z)console[Q](q+J+this.SPACE_CHAR.repeat(Math.max(this.TYPE_SPACER_LENGTH-J.length,G?1:0))+"|"+this.RESET,...W);else console[Q]("%c"+J+this.SPACE_CHAR.repeat(Math.max(this.TYPE_SPACER_LENGTH-J.length,G?1:0))+"|",q,...W);else console[Q](q+J+this.SPACE_CHAR.repeat(Math.max(this.TYPE_SPACER_LENGTH-J.length,G?1:0))+"|"+this.RESET,...W)}this.currentType=""}log(...Q){this.message("log",...Q)}info(...Q){this.message("info",...Q)}error(...Q){this.message("error",...Q)}warn(...Q){this.message("warn",...Q)}assert(...Q){console.assert(...Q)}debug(...Q){this.message("debug",...Q)}count(Q){console.count(Q)}countReset(Q){console.countReset(Q)}table(Q,W){console.table(Q,W)}time(Q="default"){this.message("time",Q)}timeLog(Q="default",...W){this.message("timeLog",Q,...W)}timeEnd(Q="default"){this.message("timeEnd",Q)}trace(...Q){this.message("trace",...Q)}group(Q=""){this.message("group",Q)}groupCollapsed(Q=""){this.message("groupCollapsed",Q)}groupEnd(){console.groupEnd()}clear(){console.clear()}registerType(Q,W){if(this.types[Q.toLowerCase()])return;if(typeof Q==="string"&&typeof W==="string")this.types[Q.toLowerCase()]=W}registerTypes(Q){if(Array.isArray(Q))for(let W=0;W<Q.length;W++)this.registerType(Q[W].type,Q[W].ansi)}unregisterType(Q){let W=Q.toLowerCase();if(this.types[W])delete this.types[W]}}class n{delay=100;dataURL="";index=0;parent=null;static defaultDelay=100;constructor(Q){if(Q)this.parse(Q)}parse(Q){if(!Q)return;let W=Q[0],J=Q[1]?Q[1]:this.parent?this.parent.getDelay():null;if(this.setDataURL(W),J)this.setDelay(J)}setParent(Q){if(!Q||this.parent)return;if(Q instanceof T){if(this.parent=Q,!this.getDelay())this.setDelay(this.parent.getDelay())}}removeParent(){this.parent=null}setDelay(Q){if(typeof Q==="number")this.delay=Q;else w.logger.prefix("Vyi-module").error("Invalid delay type!");return this}getDelay(){return this.delay}getIndex(){return this.index}setDataURL(Q){if(typeof Q==="string")this.dataURL=Q.replace(/^data:image\\/[a-z]+;base64,/,"");else w.logger.prefix("Vyi-module").error("Invalid data url type!");return this}getDataURL(){return this.dataURL}getWidth(){if(!this.parent)return;return this.parent.width}getHeight(){if(!this.parent)return;return this.parent.height}getSize(){if(!this.parent)return;return{width:this.parent.width,height:this.parent.height}}getVyi(){return this?.parent?.vyi}getParent(){return this.parent}export(){let Q=[this.getDataURL()];if(this.getDelay()!==n.defaultDelay)Q[1]=this.getDelay()||n.defaultDelay;return Q}}/*!
9023
+ * icon-point@2.1.0 https://github.com/EvitcaStudio/IconPoint
9024
+ * Compiled Mon, 10 Nov 2025 09:52:21 UTC
9025
+ * Copyright (c) 2025 Evitca Studio, "doubleactii"
9026
+ *
9027
+ * icon-point is privately licensed.
9028
+ *//*!
9029
+ * logger@1.0.0 https://github.com/EvitcaStudio/Logger
9030
+ * Compiled Mon, 10 Nov 2025 05:36:23 UTC
9031
+ * Copyright (c) 2025 Evitca Studio, "doubleactii"
9032
+ *
9033
+ * logger is privately licensed.
9034
+ */class SJ{RESET;BRIGHT;DIM;UNDERSCORE;BLINK;REVERSE;HIDDEN;FG_BLACK;FG_RED;FG_GREEN;FG_YELLOW;FG_BLUE;FG_MAGENTA;FG_CYAN;FG_WHITE;FG_GRAY;BG_BLACK;BG_RED;BG_GREEN;BG_YELLOW;BG_BLUE;BG_MAGENTA;BG_CYAN;BG_WHITE;BG_GRAY;TYPE_SPACER_LENGTH;types;currentType;SPACE_CHAR;FG_COLORS;BG_COLORS;constructor(Q){this.RESET="\\x1B[0m",this.BRIGHT="\\x1B[1m",this.DIM="\\x1B[2m",this.UNDERSCORE="\\x1B[4m",this.BLINK="\\x1B[5m",this.REVERSE="\\x1B[7m",this.HIDDEN="\\x1B[8m",this.FG_BLACK="\\x1B[30m",this.FG_RED="\\x1B[31m",this.FG_GREEN="\\x1B[32m",this.FG_YELLOW="\\x1B[33m",this.FG_BLUE="\\x1B[34m",this.FG_MAGENTA="\\x1B[35m",this.FG_CYAN="\\x1B[36m",this.FG_WHITE="\\x1B[37m",this.FG_GRAY="\\x1B[90m",this.BG_BLACK="\\x1B[40m",this.BG_RED="\\x1B[41m",this.BG_GREEN="\\x1B[42m",this.BG_YELLOW="\\x1B[43m",this.BG_BLUE="\\x1B[44m",this.BG_MAGENTA="\\x1B[45m",this.BG_CYAN="\\x1B[46m",this.BG_WHITE="\\x1B[47m",this.BG_GRAY="\\x1B[100m",this.TYPE_SPACER_LENGTH=13,this.types={default:this.FG_WHITE},this.currentType="",this.SPACE_CHAR=" ",this.FG_COLORS={};for(let W=0;W<=255;W++)this.FG_COLORS[W]="\\x1B[38;5;"+W+"m";this.BG_COLORS={};for(let W=0;W<=255;W++)this.BG_COLORS[W]="\\x1B[48;5;"+W+"m";if(Array.isArray(Q))this.registerTypes(Q)}prefix(Q){if(typeof Q==="string")this.currentType=Q;return this}message(Q="log",...W){let J=this.currentType?this.currentType:"";if(J.length===0)console[Q](...W);else{let G=J.length>=this.TYPE_SPACER_LENGTH,q=this.types[J.toLowerCase()]?this.types[J.toLowerCase()]:this.types.default,z=q.includes("\\x1B");if(!z)q=\`color: \${q}\`;if(typeof globalThis.window!=="undefined")if(z)console[Q](q+J+this.SPACE_CHAR.repeat(Math.max(this.TYPE_SPACER_LENGTH-J.length,G?1:0))+"|"+this.RESET,...W);else console[Q]("%c"+J+this.SPACE_CHAR.repeat(Math.max(this.TYPE_SPACER_LENGTH-J.length,G?1:0))+"|",q,...W);else console[Q](q+J+this.SPACE_CHAR.repeat(Math.max(this.TYPE_SPACER_LENGTH-J.length,G?1:0))+"|"+this.RESET,...W)}this.currentType=""}log(...Q){this.message("log",...Q)}info(...Q){this.message("info",...Q)}error(...Q){this.message("error",...Q)}warn(...Q){this.message("warn",...Q)}assert(...Q){console.assert(...Q)}debug(...Q){this.message("debug",...Q)}count(Q){console.count(Q)}countReset(Q){console.countReset(Q)}table(Q,W){console.table(Q,W)}time(Q="default"){this.message("time",Q)}timeLog(Q="default",...W){this.message("timeLog",Q,...W)}timeEnd(Q="default"){this.message("timeEnd",Q)}trace(...Q){this.message("trace",...Q)}group(Q=""){this.message("group",Q)}groupCollapsed(Q=""){this.message("groupCollapsed",Q)}groupEnd(){console.groupEnd()}clear(){console.clear()}registerType(Q,W){if(this.types[Q.toLowerCase()])return;if(typeof Q==="string"&&typeof W==="string")this.types[Q.toLowerCase()]=W}registerTypes(Q){if(Array.isArray(Q))for(let W=0;W<Q.length;W++)this.registerType(Q[W].type,Q[W].ansi)}unregisterType(Q){let W=Q.toLowerCase();if(this.types[W])delete this.types[W]}}class E{static defaultOffset={x:0,y:0};static defaultAnchor={x:0.5,y:0.5};static version="2.1.0";static logger=new SJ;iconPoint={x:0,y:0};originalPoint={x:0,y:0};positionalPoint;point={x:0,y:0};bounds={width:32,height:32};id;constructor(Q,W,J,j){let{width:G,height:q}=W;this.bounds.width=G,this.bounds.height=q,this.positionalPoint=Q,this.originalPoint={...J},this.id=j||"",E.logger.registerType("IconPointModule","#ff6600"),this.setPoint(J)}getPoint(Q=0,W=E.defaultOffset,J=E.defaultAnchor){let j=this.positionalPoint.x+W.x+this.bounds.width*J.x,G=this.positionalPoint.y+W.y+this.bounds.height*J.y,q=this.positionalPoint.x+W.x-1+this.iconPoint.x,z=this.positionalPoint.y+W.y-1+this.iconPoint.y,U=q-j,Y=z-G,X=U*Math.cos(Q)-Y*-Math.sin(Q),K=U*-Math.sin(Q)+Y*Math.cos(Q),P=X+j,k=K+G;return this.point.x=P,this.point.y=k,this.point}getPointFromExternalPoint(Q,W=0,J=E.defaultOffset,j=E.defaultAnchor){let G=Q.x+J.x+this.bounds.width*j.x,q=Q.y+J.y+this.bounds.height*j.y,z=Q.x+J.x-1+this.iconPoint.x,U=Q.y+J.y-1+this.iconPoint.y,Y=z-G,X=U-q,K=Y*Math.cos(W)-X*-Math.sin(W),P=Y*-Math.sin(W)+X*Math.cos(W),k=K+G,V=P+q;return this.point.x=k,this.point.y=V,this.point}setPoint(Q){let{x:W,y:J,isNormalized:j}=Q;this.iconPoint.x=j?W*this.bounds.width:W,this.iconPoint.y=j?J*this.bounds.height:J}resetPoint(){this.setPoint(this.originalPoint)}updateBounds(Q){let{width:W,height:J}=Q;this.bounds.width=W,this.bounds.height=J}transformX(Q){let W=Math.abs(Q*this.bounds.width);this.iconPoint.x=W-this.originalPoint.x}transformY(Q){let W=Math.abs(Q*this.bounds.height);this.iconPoint.y=W-this.originalPoint.y}transform(Q){this.transformX(Q.x),this.transformY(Q.y)}getId(){return this.id}export(){return{...this.bounds,...this.iconPoint,id:this.id}}}class tQ{bounds={};add(Q,W){this.bounds[Q]=W}remove(Q){delete this.bounds[Q]}update(Q,W){if(this.bounds[Q])this.bounds[Q]={...this.bounds[Q],...W}}rename(Q,W){if(this.bounds[Q])this.bounds[W]=this.bounds[Q],delete this.bounds[Q]}get(Q){return this.bounds[Q]}getAll(){return{...this.bounds}}getIdsByShape(Q){return Object.keys(this.bounds).filter((W)=>this.bounds[W].type===Q)}exportAll(){return this.getAll()}clearAll(){this.bounds={}}loadBounds(Q){this.clearAll(),Object.entries(Q).forEach(([W,J])=>{this.add(W,J)})}}class T{states=new Map;frames=new Map;width=32;height=32;dataURL="";delay=100;name="";parent=null;vyi=null;id="";static reservedIds=new Set;iconPoints=new Set;boundsManager=new tQ;static reservedIconPointIds=new Set(["center","top-left","top-right","bottom-left","bottom-right","top-middle","bottom-middle","left-middle","right-middle"]);static generateId(){let Q=()=>{return Math.floor(Math.random()*4294967295).toString(16).padStart(8,"0")},W=Q();while(this.reservedIds.has(W))W=Q();return this.reservedIds.add(W),W}constructor(Q){if(Q)this.parse(Q);this.assignId()}setParent(Q){if(!Q||this.parent)return;if(Q instanceof T)this.parent=Q}removeParent(){if(this.parent)this.parent=null,this.vyi=null}setVyi(Q){if(!Q)return;if(Q instanceof w){if(this.vyi=Q,this.getStateCount()>0)this.getStates().forEach((j)=>{j.setParent(this),j.setVyi(Q)});this.getFrames().forEach((J)=>J.setParent(this))}}removeVyi(){this.vyi=null}assignId(){this.id=T.generateId()}getId(){return this.id}getVyi(){return this.vyi}getParent(){return this.parent}getStateCount(){return this.states.size}getFrameCount(){return this.frames.size}parse(Q){if(!Q)return;let W=Q[0],J=Q[1],j=Q[2],G=Q[3],q=Q[4],z=Q[5],U=Q[6],Y=Q[7],X=Q[8];if(this.rename(W),this.setSize(J,j),this.setDelay(G),this.setDataURL(q),Array.isArray(z))z.forEach((K)=>{this.addFrame(K)});if(Array.isArray(U))U.forEach((K)=>{let P=new T(void 0),k=K[0],V=K[1],Z=K[2],M=K[3],$=K[4];if(P.rename(k),P.setSize(J,j),P.setDelay(Z),P.setDataURL(V),Array.isArray(M))M.forEach((C)=>{P.addFrame(C)});if($&&typeof $==="object")P.boundsManager.loadBounds($);this.addState(P)});if(Array.isArray(Y))Y.forEach((K)=>{let{x:P,y:k,width:V,height:Z,id:M}=K;if(T.reservedIconPointIds.has(M))return;this.addIconPoint({x:0,y:0},{width:V,height:Z},{x:P,y:k},M)});if(X&&typeof X==="object")this.boundsManager.loadBounds(X);this.resetInitialIconPoints()}resetInitialIconPoints(){let Q=this.getWidth(),W=this.getHeight();Array.from(T.reservedIconPointIds).forEach((k)=>{let V=Array.from(this.iconPoints).find((Z)=>Z.getId()===k);if(!V)return;this.iconPoints.delete(V)});let J={x:1,y:1},j=new E(J,{width:Q,height:W},{x:Math.round(Q/2),y:Math.round(W/2)},"center"),G=new E(J,{width:Q,height:W},{x:1,y:1},"top-left"),q=new E(J,{width:Q,height:W},{x:Q,y:1},"top-right"),z=new E(J,{width:Q,height:W},{x:1,y:W},"bottom-left"),U=new E(J,{width:Q,height:W},{x:Q,y:W},"bottom-right"),Y=new E(J,{width:Q,height:W},{x:Math.round(Q/2),y:1},"top-middle"),X=new E(J,{width:Q,height:W},{x:Math.round(Q/2),y:W},"bottom-middle"),K=new E(J,{width:Q,height:W},{x:1,y:Math.round(W/2)},"left-middle"),P=new E(J,{width:Q,height:W},{x:Q,y:Math.round(W/2)},"right-middle");this.iconPoints.add(j),this.iconPoints.add(G),this.iconPoints.add(q),this.iconPoints.add(z),this.iconPoints.add(U),this.iconPoints.add(Y),this.iconPoints.add(X),this.iconPoints.add(K),this.iconPoints.add(P)}addIconPoint(Q,W,J,j){if(T.reservedIconPointIds.has(j)){w.logger.prefix("Vyi-module").error(\`The id \${j} is reserved and cannot be used for additional icon points.\`);return}let G=new E(Q,W,J,j);return this.iconPoints.add(G),G}removeIconPoint(Q){for(let W of this.iconPoints)if(W.getId()===Q&&!T.reservedIconPointIds.has(Q)){this.iconPoints.delete(W);break}}getIconPointExportById(Q){for(let W of this.iconPoints)if(W.getId()===Q)return W.export();return}getIconPointsExport(){let Q=[];return this.iconPoints.forEach((W)=>Q.push(W.export())),Q}getIconPointById(Q){for(let W of this.iconPoints)if(W.getId()===Q)return W;return}getIconPoints(){let Q=[];return this.iconPoints.forEach((W)=>Q.push(W)),Q}getBoundsExport(){return this.boundsManager.exportAll()}getBoundsById(Q){return this.boundsManager.get(Q)}getIdsByShape(Q){return this.boundsManager.getIdsByShape(Q)}setBounds(Q,W){return this.boundsManager.add(Q,W),this}removeBounds(Q){return this.boundsManager.remove(Q),this}updateBounds(Q,W){return this.boundsManager.update(Q,W),this}setSize(Q,W){if(typeof Q==="number")this.width=Q;if(typeof W==="number")this.height=W;return this}getWidth(){return this.width}getHeight(){return this.height}getSize(){return{width:this.width,height:this.height}}setDataURL(Q){if(typeof Q==="string")this.dataURL=Q.replace(/^data:image\\/[a-z]+;base64,/,"");else w.logger.prefix("Vyi-module").error("Invalid data url type!");return this}getDataURL(){return this.dataURL}setDelay(Q){if(typeof Q==="number")this.delay=Q;else w.logger.prefix("Vyi-module").error("Invalid delay type!");return this}getDelay(){return this.delay}rename(Q){if(typeof Q==="string")try{this.name=decodeURIComponent(Q)}catch{this.name=Q}else w.logger.prefix("Vyi-module").error("Invalid type for pName!");return this}getName(){return this.name}setAllFrameDelays(Q){if(typeof Q==="number")this.setDelay(Q),this.getFrames().forEach((W)=>W.setDelay(Q));else w.logger.prefix("Vyi-module").error("Invalid type for pDelay!");return this}addFrame(Q){if(!Q){w.logger.prefix("Vyi-module").error("No frame data passed!");return}if(!(Q instanceof n)&&!Array.isArray(Q)){w.logger.prefix("Vyi-module").error("Invalid frame data type passed!");return}let W=Q instanceof n?Q:new n(Q);return W.setParent(this),this.frames.set(this.frames.size,W),this.indexFrames(),W}removeFrame(Q){if(!Q)return this;if(Q instanceof n){if(this.frames.delete(Q.index))Q.removeParent(),this.indexFrames()}return this}removeFrameByIndex(Q){let W=this.getFrame(Q);if(W)this.removeFrame(W);return this}indexFrames(){let Q=this.getFrames();this.frames.clear(),Q.forEach((W,J)=>{W.index=J,this.frames.set(J,W)})}reorderFrame(Q,W){if(typeof Q==="number"&&typeof W==="number"){let J=this.getFrame(W),j=Q===-1?this:this.getFrame(Q);if(j&&J){let G=j.getDataURL(),q=j.getDelay(),z=J.getDataURL(),U=J.getDelay();j.setDataURL(z),j.setDelay(U),J.setDataURL(G),J.setDelay(q)}else w.logger.prefix("Vyi-module").error("There was no frame found at pCurrentIndex, or there was no frame found at pIndex!")}else w.logger.prefix("Vyi-module").error("Invalid type used!");return this}getFrame(Q){return this.frames.get(Q)}getFrames(){return Array.from(this.frames.values())}getFramesData(){return this.getFrames().map((W)=>W.export())}addState(Q){if(!Q){w.logger.prefix("Vyi-module").error("No icon data passed!");return}if(!(Q instanceof T)&&!Array.isArray(Q)){w.logger.prefix("Vyi-module").error("Invalid icon data type passed!");return}let W=Q instanceof T?Q:new T(this.convertStateDataToIconData(Q));if(W.getWidth()!==this.getWidth()||W.getHeight()!==this.getHeight()){w.logger.prefix("Vyi-module").error("State dimensions do not match parent!");return}if(W.setParent(this),this.vyi)W.setVyi(this.vyi);return this.states.set(W.id,W),W}removeState(Q){if(Q instanceof T){if(this.states.delete(Q.id))Q.removeParent()}return this}removeStateByName(Q){let W=this.getState(Q);if(W)this.removeState(W);return this}removeStateById(Q){let W=this.getStateById(Q);if(W)this.removeState(W);return this}getState(Q){if(typeof Q==="string"){let W=this.getStates();for(let J=W.length-1;J>=0;J--){let j=W[J];if(j.getName()===Q)return j}return}else{w.logger.prefix("Vyi-module").error("Invalid name type used!");return}}getStateById(Q){if(!Q)return;return this.states.get(Q)}getStates(){return Array.from(this.states.values())}getStateNames(){return this.getStates().map((Q)=>Q.getName())}getStatesData(){return this.getStates().map((W)=>W.exportAsState())}exportAsState(){let Q=[this.getName(),this.getDataURL(),this.getDelay(),this.getFrames().map((J)=>J.export())],W=this.getBoundsExport();if(Object.keys(W).length>0)Q[4]=W;return Q}convertStateDataToIconData(Q){return[Q[0],this.getWidth(),this.getHeight(),Q[2],Q[1],Q[3]]}export(){let Q=[this.getName(),this.getWidth(),this.getHeight(),this.getDelay(),this.getDataURL(),this.getFramesData()];if(this.states.size>0)Q[6]=this.getStatesData();return Q[7]=this.getIconPointsExport(),Q[8]=this.getBoundsExport(),Q}}/*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */function HQ(Q){let W=Q.length;while(--W>=0)Q[W]=0}var e0=0,H0=1,t0=2,s0=3,Q5=258,vJ=29,yQ=256,RQ=yQ+1+vJ,YQ=30,gJ=19,P0=2*RQ+1,WQ=15,sQ=16,J5=7,RJ=256,B0=16,C0=17,$0=18,FJ=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),pQ=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),W5=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),L0=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),j5=512,r=new Array((RQ+2)*2);HQ(r);var NQ=new Array(YQ*2);HQ(NQ);var xQ=new Array(j5);HQ(xQ);var OQ=new Array(Q5-s0+1);HQ(OQ);var xJ=new Array(vJ);HQ(xJ);var lQ=new Array(YQ);HQ(lQ);function QJ(Q,W,J,j,G){this.static_tree=Q,this.extra_bits=W,this.extra_base=J,this.elems=j,this.max_length=G,this.has_stree=Q&&Q.length}var N0,v0,g0;function JJ(Q,W){this.dyn_tree=Q,this.max_code=0,this.stat_desc=W}var R0=(Q)=>{return Q<256?xQ[Q]:xQ[256+(Q>>>7)]},MQ=(Q,W)=>{Q.pending_buf[Q.pending++]=W&255,Q.pending_buf[Q.pending++]=W>>>8&255},f=(Q,W,J)=>{if(Q.bi_valid>sQ-J)Q.bi_buf|=W<<Q.bi_valid&65535,MQ(Q,Q.bi_buf),Q.bi_buf=W>>sQ-Q.bi_valid,Q.bi_valid+=J-sQ;else Q.bi_buf|=W<<Q.bi_valid&65535,Q.bi_valid+=J},p=(Q,W,J)=>{f(Q,J[W*2],J[W*2+1])},x0=(Q,W)=>{let J=0;do J|=Q&1,Q>>>=1,J<<=1;while(--W>0);return J>>>1},q5=(Q)=>{if(Q.bi_valid===16)MQ(Q,Q.bi_buf),Q.bi_buf=0,Q.bi_valid=0;else if(Q.bi_valid>=8)Q.pending_buf[Q.pending++]=Q.bi_buf&255,Q.bi_buf>>=8,Q.bi_valid-=8},G5=(Q,W)=>{let{dyn_tree:J,max_code:j}=W,G=W.stat_desc.static_tree,q=W.stat_desc.has_stree,z=W.stat_desc.extra_bits,U=W.stat_desc.extra_base,Y=W.stat_desc.max_length,X,K,P,k,V,Z,M=0;for(k=0;k<=WQ;k++)Q.bl_count[k]=0;J[Q.heap[Q.heap_max]*2+1]=0;for(X=Q.heap_max+1;X<P0;X++){if(K=Q.heap[X],k=J[J[K*2+1]*2+1]+1,k>Y)k=Y,M++;if(J[K*2+1]=k,K>j)continue;if(Q.bl_count[k]++,V=0,K>=U)V=z[K-U];if(Z=J[K*2],Q.opt_len+=Z*(k+V),q)Q.static_len+=Z*(G[K*2+1]+V)}if(M===0)return;do{k=Y-1;while(Q.bl_count[k]===0)k--;Q.bl_count[k]--,Q.bl_count[k+1]+=2,Q.bl_count[Y]--,M-=2}while(M>0);for(k=Y;k!==0;k--){K=Q.bl_count[k];while(K!==0){if(P=Q.heap[--X],P>j)continue;if(J[P*2+1]!==k)Q.opt_len+=(k-J[P*2+1])*J[P*2],J[P*2+1]=k;K--}}},O0=(Q,W,J)=>{let j=new Array(WQ+1),G=0,q,z;for(q=1;q<=WQ;q++)G=G+J[q-1]<<1,j[q]=G;for(z=0;z<=W;z++){let U=Q[z*2+1];if(U===0)continue;Q[z*2]=x0(j[U]++,U)}},X5=()=>{let Q,W,J,j,G,q=new Array(WQ+1);J=0;for(j=0;j<vJ-1;j++){xJ[j]=J;for(Q=0;Q<1<<FJ[j];Q++)OQ[J++]=j}OQ[J-1]=j,G=0;for(j=0;j<16;j++){lQ[j]=G;for(Q=0;Q<1<<pQ[j];Q++)xQ[G++]=j}G>>=7;for(;j<YQ;j++){lQ[j]=G<<7;for(Q=0;Q<1<<pQ[j]-7;Q++)xQ[256+G++]=j}for(W=0;W<=WQ;W++)q[W]=0;Q=0;while(Q<=143)r[Q*2+1]=8,Q++,q[8]++;while(Q<=255)r[Q*2+1]=9,Q++,q[9]++;while(Q<=279)r[Q*2+1]=7,Q++,q[7]++;while(Q<=287)r[Q*2+1]=8,Q++,q[8]++;O0(r,RQ+1,q);for(Q=0;Q<YQ;Q++)NQ[Q*2+1]=5,NQ[Q*2]=x0(Q,5);N0=new QJ(r,FJ,yQ+1,RQ,WQ),v0=new QJ(NQ,pQ,0,YQ,WQ),g0=new QJ(new Array(0),W5,0,gJ,J5)},M0=(Q)=>{let W;for(W=0;W<RQ;W++)Q.dyn_ltree[W*2]=0;for(W=0;W<YQ;W++)Q.dyn_dtree[W*2]=0;for(W=0;W<gJ;W++)Q.bl_tree[W*2]=0;Q.dyn_ltree[RJ*2]=1,Q.opt_len=Q.static_len=0,Q.sym_next=Q.matches=0},w0=(Q)=>{if(Q.bi_valid>8)MQ(Q,Q.bi_buf);else if(Q.bi_valid>0)Q.pending_buf[Q.pending++]=Q.bi_buf;Q.bi_buf=0,Q.bi_valid=0},TJ=(Q,W,J,j)=>{let G=W*2,q=J*2;return Q[G]<Q[q]||Q[G]===Q[q]&&j[W]<=j[J]},WJ=(Q,W,J)=>{let j=Q.heap[J],G=J<<1;while(G<=Q.heap_len){if(G<Q.heap_len&&TJ(W,Q.heap[G+1],Q.heap[G],Q.depth))G++;if(TJ(W,j,Q.heap[G],Q.depth))break;Q.heap[J]=Q.heap[G],J=G,G<<=1}Q.heap[J]=j},yJ=(Q,W,J)=>{let j,G,q=0,z,U;if(Q.sym_next!==0)do if(j=Q.pending_buf[Q.sym_buf+q++]&255,j+=(Q.pending_buf[Q.sym_buf+q++]&255)<<8,G=Q.pending_buf[Q.sym_buf+q++],j===0)p(Q,G,W);else{if(z=OQ[G],p(Q,z+yQ+1,W),U=FJ[z],U!==0)G-=xJ[z],f(Q,G,U);if(j--,z=R0(j),p(Q,z,J),U=pQ[z],U!==0)j-=lQ[z],f(Q,j,U)}while(q<Q.sym_next);p(Q,RJ,W)},ZJ=(Q,W)=>{let J=W.dyn_tree,j=W.stat_desc.static_tree,G=W.stat_desc.has_stree,q=W.stat_desc.elems,z,U,Y=-1,X;Q.heap_len=0,Q.heap_max=P0;for(z=0;z<q;z++)if(J[z*2]!==0)Q.heap[++Q.heap_len]=Y=z,Q.depth[z]=0;else J[z*2+1]=0;while(Q.heap_len<2)if(X=Q.heap[++Q.heap_len]=Y<2?++Y:0,J[X*2]=1,Q.depth[X]=0,Q.opt_len--,G)Q.static_len-=j[X*2+1];W.max_code=Y;for(z=Q.heap_len>>1;z>=1;z--)WJ(Q,J,z);X=q;do z=Q.heap[1],Q.heap[1]=Q.heap[Q.heap_len--],WJ(Q,J,1),U=Q.heap[1],Q.heap[--Q.heap_max]=z,Q.heap[--Q.heap_max]=U,J[X*2]=J[z*2]+J[U*2],Q.depth[X]=(Q.depth[z]>=Q.depth[U]?Q.depth[z]:Q.depth[U])+1,J[z*2+1]=J[U*2+1]=X,Q.heap[1]=X++,WJ(Q,J,1);while(Q.heap_len>=2);Q.heap[--Q.heap_max]=Q.heap[1],G5(Q,W),O0(J,Y,Q.bl_count)},DJ=(Q,W,J)=>{let j,G=-1,q,z=W[1],U=0,Y=7,X=4;if(z===0)Y=138,X=3;W[(J+1)*2+1]=65535;for(j=0;j<=J;j++){if(q=z,z=W[(j+1)*2+1],++U<Y&&q===z)continue;else if(U<X)Q.bl_tree[q*2]+=U;else if(q!==0){if(q!==G)Q.bl_tree[q*2]++;Q.bl_tree[B0*2]++}else if(U<=10)Q.bl_tree[C0*2]++;else Q.bl_tree[$0*2]++;if(U=0,G=q,z===0)Y=138,X=3;else if(q===z)Y=6,X=3;else Y=7,X=4}},EJ=(Q,W,J)=>{let j,G=-1,q,z=W[1],U=0,Y=7,X=4;if(z===0)Y=138,X=3;for(j=0;j<=J;j++){if(q=z,z=W[(j+1)*2+1],++U<Y&&q===z)continue;else if(U<X)do p(Q,q,Q.bl_tree);while(--U!==0);else if(q!==0){if(q!==G)p(Q,q,Q.bl_tree),U--;p(Q,B0,Q.bl_tree),f(Q,U-3,2)}else if(U<=10)p(Q,C0,Q.bl_tree),f(Q,U-3,3);else p(Q,$0,Q.bl_tree),f(Q,U-11,7);if(U=0,G=q,z===0)Y=138,X=3;else if(q===z)Y=6,X=3;else Y=7,X=4}},U5=(Q)=>{let W;DJ(Q,Q.dyn_ltree,Q.l_desc.max_code),DJ(Q,Q.dyn_dtree,Q.d_desc.max_code),ZJ(Q,Q.bl_desc);for(W=gJ-1;W>=3;W--)if(Q.bl_tree[L0[W]*2+1]!==0)break;return Q.opt_len+=3*(W+1)+5+5+4,W},z5=(Q,W,J,j)=>{let G;f(Q,W-257,5),f(Q,J-1,5),f(Q,j-4,4);for(G=0;G<j;G++)f(Q,Q.bl_tree[L0[G]*2+1],3);EJ(Q,Q.dyn_ltree,W-1),EJ(Q,Q.dyn_dtree,J-1)},K5=(Q)=>{let W=4093624447,J;for(J=0;J<=31;J++,W>>>=1)if(W&1&&Q.dyn_ltree[J*2]!==0)return 0;if(Q.dyn_ltree[18]!==0||Q.dyn_ltree[20]!==0||Q.dyn_ltree[26]!==0)return 1;for(J=32;J<yQ;J++)if(Q.dyn_ltree[J*2]!==0)return 1;return 0},IJ=!1,V5=(Q)=>{if(!IJ)X5(),IJ=!0;Q.l_desc=new JJ(Q.dyn_ltree,N0),Q.d_desc=new JJ(Q.dyn_dtree,v0),Q.bl_desc=new JJ(Q.bl_tree,g0),Q.bi_buf=0,Q.bi_valid=0,M0(Q)},A0=(Q,W,J,j)=>{if(f(Q,(e0<<1)+(j?1:0),3),w0(Q),MQ(Q,J),MQ(Q,~J),J)Q.pending_buf.set(Q.window.subarray(W,W+J),Q.pending);Q.pending+=J},k5=(Q)=>{f(Q,H0<<1,3),p(Q,RJ,r),q5(Q)},Y5=(Q,W,J,j)=>{let G,q,z=0;if(Q.level>0){if(Q.strm.data_type===2)Q.strm.data_type=K5(Q);if(ZJ(Q,Q.l_desc),ZJ(Q,Q.d_desc),z=U5(Q),G=Q.opt_len+3+7>>>3,q=Q.static_len+3+7>>>3,q<=G)G=q}else G=q=J+5;if(J+4<=G&&W!==-1)A0(Q,W,J,j);else if(Q.strategy===4||q===G)f(Q,(H0<<1)+(j?1:0),3),yJ(Q,r,NQ);else f(Q,(t0<<1)+(j?1:0),3),z5(Q,Q.l_desc.max_code+1,Q.d_desc.max_code+1,z+1),yJ(Q,Q.dyn_ltree,Q.dyn_dtree);if(M0(Q),j)w0(Q)},F5=(Q,W,J)=>{if(Q.pending_buf[Q.sym_buf+Q.sym_next++]=W,Q.pending_buf[Q.sym_buf+Q.sym_next++]=W>>8,Q.pending_buf[Q.sym_buf+Q.sym_next++]=J,W===0)Q.dyn_ltree[J*2]++;else Q.matches++,W--,Q.dyn_ltree[(OQ[J]+yQ+1)*2]++,Q.dyn_dtree[R0(W)*2]++;return Q.sym_next===Q.sym_end},Z5=V5,H5=A0,P5=Y5,B5=F5,C5=k5,$5={_tr_init:Z5,_tr_stored_block:H5,_tr_flush_block:P5,_tr_tally:B5,_tr_align:C5},L5=(Q,W,J,j)=>{let G=Q&65535|0,q=Q>>>16&65535|0,z=0;while(J!==0){z=J>2000?2000:J,J-=z;do G=G+W[j++]|0,q=q+G|0;while(--z);G%=65521,q%=65521}return G|q<<16|0},wQ=L5,N5=()=>{let Q,W=[];for(var J=0;J<256;J++){Q=J;for(var j=0;j<8;j++)Q=Q&1?3988292384^Q>>>1:Q>>>1;W[J]=Q}return W},v5=new Uint32Array(N5()),g5=(Q,W,J,j)=>{let G=v5,q=j+J;Q^=-1;for(let z=j;z<q;z++)Q=Q>>>8^G[(Q^W[z])&255];return Q^-1},D=g5,GQ={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},zQ={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8},{_tr_init:R5,_tr_stored_block:HJ,_tr_flush_block:x5,_tr_tally:t,_tr_align:O5}=$5,{Z_NO_FLUSH:s,Z_PARTIAL_FLUSH:M5,Z_FULL_FLUSH:w5,Z_FINISH:c,Z_BLOCK:bJ,Z_OK:I,Z_STREAM_END:fJ,Z_STREAM_ERROR:l,Z_DATA_ERROR:A5,Z_BUF_ERROR:jJ,Z_DEFAULT_COMPRESSION:S5,Z_FILTERED:T5,Z_HUFFMAN_ONLY:uQ,Z_RLE:y5,Z_FIXED:D5,Z_DEFAULT_STRATEGY:E5,Z_UNKNOWN:I5,Z_DEFLATED:rQ}=zQ,b5=9,f5=15,u5=8,h5=29,c5=256,PJ=c5+1+h5,m5=30,d5=19,p5=2*PJ+1,l5=15,v=3,e=258,_=e+v+1,_5=32,FQ=42,OJ=57,BJ=69,CJ=73,$J=91,LJ=103,jQ=113,$Q=666,b=1,PQ=2,XQ=3,BQ=4,i5=3,qQ=(Q,W)=>{return Q.msg=GQ[W],W},uJ=(Q)=>{return Q*2-(Q>4?9:0)},a=(Q)=>{let W=Q.length;while(--W>=0)Q[W]=0},r5=(Q)=>{let W,J,j,G=Q.w_size;W=Q.hash_size,j=W;do J=Q.head[--j],Q.head[j]=J>=G?J-G:0;while(--W);W=G,j=W;do J=Q.prev[--j],Q.prev[j]=J>=G?J-G:0;while(--W)},o5=(Q,W,J)=>(W<<Q.hash_shift^J)&Q.hash_mask,QQ=o5,u=(Q)=>{let W=Q.state,J=W.pending;if(J>Q.avail_out)J=Q.avail_out;if(J===0)return;if(Q.output.set(W.pending_buf.subarray(W.pending_out,W.pending_out+J),Q.next_out),Q.next_out+=J,W.pending_out+=J,Q.total_out+=J,Q.avail_out-=J,W.pending-=J,W.pending===0)W.pending_out=0},h=(Q,W)=>{x5(Q,Q.block_start>=0?Q.block_start:-1,Q.strstart-Q.block_start,W),Q.block_start=Q.strstart,u(Q.strm)},x=(Q,W)=>{Q.pending_buf[Q.pending++]=W},CQ=(Q,W)=>{Q.pending_buf[Q.pending++]=W>>>8&255,Q.pending_buf[Q.pending++]=W&255},NJ=(Q,W,J,j)=>{let G=Q.avail_in;if(G>j)G=j;if(G===0)return 0;if(Q.avail_in-=G,W.set(Q.input.subarray(Q.next_in,Q.next_in+G),J),Q.state.wrap===1)Q.adler=wQ(Q.adler,W,G,J);else if(Q.state.wrap===2)Q.adler=D(Q.adler,W,G,J);return Q.next_in+=G,Q.total_in+=G,G},S0=(Q,W)=>{let{max_chain_length:J,strstart:j}=Q,G,q,z=Q.prev_length,U=Q.nice_match,Y=Q.strstart>Q.w_size-_?Q.strstart-(Q.w_size-_):0,X=Q.window,K=Q.w_mask,P=Q.prev,k=Q.strstart+e,V=X[j+z-1],Z=X[j+z];if(Q.prev_length>=Q.good_match)J>>=2;if(U>Q.lookahead)U=Q.lookahead;do{if(G=W,X[G+z]!==Z||X[G+z-1]!==V||X[G]!==X[j]||X[++G]!==X[j+1])continue;j+=2,G++;do;while(X[++j]===X[++G]&&X[++j]===X[++G]&&X[++j]===X[++G]&&X[++j]===X[++G]&&X[++j]===X[++G]&&X[++j]===X[++G]&&X[++j]===X[++G]&&X[++j]===X[++G]&&j<k);if(q=e-(k-j),j=k-e,q>z){if(Q.match_start=W,z=q,q>=U)break;V=X[j+z-1],Z=X[j+z]}}while((W=P[W&K])>Y&&--J!==0);if(z<=Q.lookahead)return z;return Q.lookahead},ZQ=(Q)=>{let W=Q.w_size,J,j,G;do{if(j=Q.window_size-Q.lookahead-Q.strstart,Q.strstart>=W+(W-_)){if(Q.window.set(Q.window.subarray(W,W+W-j),0),Q.match_start-=W,Q.strstart-=W,Q.block_start-=W,Q.insert>Q.strstart)Q.insert=Q.strstart;r5(Q),j+=W}if(Q.strm.avail_in===0)break;if(J=NJ(Q.strm,Q.window,Q.strstart+Q.lookahead,j),Q.lookahead+=J,Q.lookahead+Q.insert>=v){G=Q.strstart-Q.insert,Q.ins_h=Q.window[G],Q.ins_h=QQ(Q,Q.ins_h,Q.window[G+1]);while(Q.insert)if(Q.ins_h=QQ(Q,Q.ins_h,Q.window[G+v-1]),Q.prev[G&Q.w_mask]=Q.head[Q.ins_h],Q.head[Q.ins_h]=G,G++,Q.insert--,Q.lookahead+Q.insert<v)break}}while(Q.lookahead<_&&Q.strm.avail_in!==0)},T0=(Q,W)=>{let J=Q.pending_buf_size-5>Q.w_size?Q.w_size:Q.pending_buf_size-5,j,G,q,z=0,U=Q.strm.avail_in;do{if(j=65535,q=Q.bi_valid+42>>3,Q.strm.avail_out<q)break;if(q=Q.strm.avail_out-q,G=Q.strstart-Q.block_start,j>G+Q.strm.avail_in)j=G+Q.strm.avail_in;if(j>q)j=q;if(j<J&&(j===0&&W!==c||W===s||j!==G+Q.strm.avail_in))break;if(z=W===c&&j===G+Q.strm.avail_in?1:0,HJ(Q,0,0,z),Q.pending_buf[Q.pending-4]=j,Q.pending_buf[Q.pending-3]=j>>8,Q.pending_buf[Q.pending-2]=~j,Q.pending_buf[Q.pending-1]=~j>>8,u(Q.strm),G){if(G>j)G=j;Q.strm.output.set(Q.window.subarray(Q.block_start,Q.block_start+G),Q.strm.next_out),Q.strm.next_out+=G,Q.strm.avail_out-=G,Q.strm.total_out+=G,Q.block_start+=G,j-=G}if(j)NJ(Q.strm,Q.strm.output,Q.strm.next_out,j),Q.strm.next_out+=j,Q.strm.avail_out-=j,Q.strm.total_out+=j}while(z===0);if(U-=Q.strm.avail_in,U){if(U>=Q.w_size)Q.matches=2,Q.window.set(Q.strm.input.subarray(Q.strm.next_in-Q.w_size,Q.strm.next_in),0),Q.strstart=Q.w_size,Q.insert=Q.strstart;else{if(Q.window_size-Q.strstart<=U){if(Q.strstart-=Q.w_size,Q.window.set(Q.window.subarray(Q.w_size,Q.w_size+Q.strstart),0),Q.matches<2)Q.matches++;if(Q.insert>Q.strstart)Q.insert=Q.strstart}Q.window.set(Q.strm.input.subarray(Q.strm.next_in-U,Q.strm.next_in),Q.strstart),Q.strstart+=U,Q.insert+=U>Q.w_size-Q.insert?Q.w_size-Q.insert:U}Q.block_start=Q.strstart}if(Q.high_water<Q.strstart)Q.high_water=Q.strstart;if(z)return BQ;if(W!==s&&W!==c&&Q.strm.avail_in===0&&Q.strstart===Q.block_start)return PQ;if(q=Q.window_size-Q.strstart,Q.strm.avail_in>q&&Q.block_start>=Q.w_size){if(Q.block_start-=Q.w_size,Q.strstart-=Q.w_size,Q.window.set(Q.window.subarray(Q.w_size,Q.w_size+Q.strstart),0),Q.matches<2)Q.matches++;if(q+=Q.w_size,Q.insert>Q.strstart)Q.insert=Q.strstart}if(q>Q.strm.avail_in)q=Q.strm.avail_in;if(q)NJ(Q.strm,Q.window,Q.strstart,q),Q.strstart+=q,Q.insert+=q>Q.w_size-Q.insert?Q.w_size-Q.insert:q;if(Q.high_water<Q.strstart)Q.high_water=Q.strstart;if(q=Q.bi_valid+42>>3,q=Q.pending_buf_size-q>65535?65535:Q.pending_buf_size-q,J=q>Q.w_size?Q.w_size:q,G=Q.strstart-Q.block_start,G>=J||(G||W===c)&&W!==s&&Q.strm.avail_in===0&&G<=q)j=G>q?q:G,z=W===c&&Q.strm.avail_in===0&&j===G?1:0,HJ(Q,Q.block_start,j,z),Q.block_start+=j,u(Q.strm);return z?XQ:b},qJ=(Q,W)=>{let J,j;for(;;){if(Q.lookahead<_){if(ZQ(Q),Q.lookahead<_&&W===s)return b;if(Q.lookahead===0)break}if(J=0,Q.lookahead>=v)Q.ins_h=QQ(Q,Q.ins_h,Q.window[Q.strstart+v-1]),J=Q.prev[Q.strstart&Q.w_mask]=Q.head[Q.ins_h],Q.head[Q.ins_h]=Q.strstart;if(J!==0&&Q.strstart-J<=Q.w_size-_)Q.match_length=S0(Q,J);if(Q.match_length>=v)if(j=t(Q,Q.strstart-Q.match_start,Q.match_length-v),Q.lookahead-=Q.match_length,Q.match_length<=Q.max_lazy_match&&Q.lookahead>=v){Q.match_length--;do Q.strstart++,Q.ins_h=QQ(Q,Q.ins_h,Q.window[Q.strstart+v-1]),J=Q.prev[Q.strstart&Q.w_mask]=Q.head[Q.ins_h],Q.head[Q.ins_h]=Q.strstart;while(--Q.match_length!==0);Q.strstart++}else Q.strstart+=Q.match_length,Q.match_length=0,Q.ins_h=Q.window[Q.strstart],Q.ins_h=QQ(Q,Q.ins_h,Q.window[Q.strstart+1]);else j=t(Q,0,Q.window[Q.strstart]),Q.lookahead--,Q.strstart++;if(j){if(h(Q,!1),Q.strm.avail_out===0)return b}}if(Q.insert=Q.strstart<v-1?Q.strstart:v-1,W===c){if(h(Q,!0),Q.strm.avail_out===0)return XQ;return BQ}if(Q.sym_next){if(h(Q,!1),Q.strm.avail_out===0)return b}return PQ},VQ=(Q,W)=>{let J,j,G;for(;;){if(Q.lookahead<_){if(ZQ(Q),Q.lookahead<_&&W===s)return b;if(Q.lookahead===0)break}if(J=0,Q.lookahead>=v)Q.ins_h=QQ(Q,Q.ins_h,Q.window[Q.strstart+v-1]),J=Q.prev[Q.strstart&Q.w_mask]=Q.head[Q.ins_h],Q.head[Q.ins_h]=Q.strstart;if(Q.prev_length=Q.match_length,Q.prev_match=Q.match_start,Q.match_length=v-1,J!==0&&Q.prev_length<Q.max_lazy_match&&Q.strstart-J<=Q.w_size-_){if(Q.match_length=S0(Q,J),Q.match_length<=5&&(Q.strategy===T5||Q.match_length===v&&Q.strstart-Q.match_start>4096))Q.match_length=v-1}if(Q.prev_length>=v&&Q.match_length<=Q.prev_length){G=Q.strstart+Q.lookahead-v,j=t(Q,Q.strstart-1-Q.prev_match,Q.prev_length-v),Q.lookahead-=Q.prev_length-1,Q.prev_length-=2;do if(++Q.strstart<=G)Q.ins_h=QQ(Q,Q.ins_h,Q.window[Q.strstart+v-1]),J=Q.prev[Q.strstart&Q.w_mask]=Q.head[Q.ins_h],Q.head[Q.ins_h]=Q.strstart;while(--Q.prev_length!==0);if(Q.match_available=0,Q.match_length=v-1,Q.strstart++,j){if(h(Q,!1),Q.strm.avail_out===0)return b}}else if(Q.match_available){if(j=t(Q,0,Q.window[Q.strstart-1]),j)h(Q,!1);if(Q.strstart++,Q.lookahead--,Q.strm.avail_out===0)return b}else Q.match_available=1,Q.strstart++,Q.lookahead--}if(Q.match_available)j=t(Q,0,Q.window[Q.strstart-1]),Q.match_available=0;if(Q.insert=Q.strstart<v-1?Q.strstart:v-1,W===c){if(h(Q,!0),Q.strm.avail_out===0)return XQ;return BQ}if(Q.sym_next){if(h(Q,!1),Q.strm.avail_out===0)return b}return PQ},n5=(Q,W)=>{let J,j,G,q,z=Q.window;for(;;){if(Q.lookahead<=e){if(ZQ(Q),Q.lookahead<=e&&W===s)return b;if(Q.lookahead===0)break}if(Q.match_length=0,Q.lookahead>=v&&Q.strstart>0){if(G=Q.strstart-1,j=z[G],j===z[++G]&&j===z[++G]&&j===z[++G]){q=Q.strstart+e;do;while(j===z[++G]&&j===z[++G]&&j===z[++G]&&j===z[++G]&&j===z[++G]&&j===z[++G]&&j===z[++G]&&j===z[++G]&&G<q);if(Q.match_length=e-(q-G),Q.match_length>Q.lookahead)Q.match_length=Q.lookahead}}if(Q.match_length>=v)J=t(Q,1,Q.match_length-v),Q.lookahead-=Q.match_length,Q.strstart+=Q.match_length,Q.match_length=0;else J=t(Q,0,Q.window[Q.strstart]),Q.lookahead--,Q.strstart++;if(J){if(h(Q,!1),Q.strm.avail_out===0)return b}}if(Q.insert=0,W===c){if(h(Q,!0),Q.strm.avail_out===0)return XQ;return BQ}if(Q.sym_next){if(h(Q,!1),Q.strm.avail_out===0)return b}return PQ},a5=(Q,W)=>{let J;for(;;){if(Q.lookahead===0){if(ZQ(Q),Q.lookahead===0){if(W===s)return b;break}}if(Q.match_length=0,J=t(Q,0,Q.window[Q.strstart]),Q.lookahead--,Q.strstart++,J){if(h(Q,!1),Q.strm.avail_out===0)return b}}if(Q.insert=0,W===c){if(h(Q,!0),Q.strm.avail_out===0)return XQ;return BQ}if(Q.sym_next){if(h(Q,!1),Q.strm.avail_out===0)return b}return PQ};function d(Q,W,J,j,G){this.good_length=Q,this.max_lazy=W,this.nice_length=J,this.max_chain=j,this.func=G}var LQ=[new d(0,0,0,0,T0),new d(4,4,8,4,qJ),new d(4,5,16,8,qJ),new d(4,6,32,32,qJ),new d(4,4,16,16,VQ),new d(8,16,32,32,VQ),new d(8,16,128,128,VQ),new d(8,32,128,256,VQ),new d(32,128,258,1024,VQ),new d(32,258,258,4096,VQ)],e5=(Q)=>{Q.window_size=2*Q.w_size,a(Q.head),Q.max_lazy_match=LQ[Q.level].max_lazy,Q.good_match=LQ[Q.level].good_length,Q.nice_match=LQ[Q.level].nice_length,Q.max_chain_length=LQ[Q.level].max_chain,Q.strstart=0,Q.block_start=0,Q.lookahead=0,Q.insert=0,Q.match_length=Q.prev_length=v-1,Q.match_available=0,Q.ins_h=0};function t5(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=rQ,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(p5*2),this.dyn_dtree=new Uint16Array((2*m5+1)*2),this.bl_tree=new Uint16Array((2*d5+1)*2),a(this.dyn_ltree),a(this.dyn_dtree),a(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(l5+1),this.heap=new Uint16Array(2*PJ+1),a(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*PJ+1),a(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}var DQ=(Q)=>{if(!Q)return 1;let W=Q.state;if(!W||W.strm!==Q||W.status!==FQ&&W.status!==OJ&&W.status!==BJ&&W.status!==CJ&&W.status!==$J&&W.status!==LJ&&W.status!==jQ&&W.status!==$Q)return 1;return 0},y0=(Q)=>{if(DQ(Q))return qQ(Q,l);Q.total_in=Q.total_out=0,Q.data_type=I5;let W=Q.state;if(W.pending=0,W.pending_out=0,W.wrap<0)W.wrap=-W.wrap;return W.status=W.wrap===2?OJ:W.wrap?FQ:jQ,Q.adler=W.wrap===2?0:1,W.last_flush=-2,R5(W),I},D0=(Q)=>{let W=y0(Q);if(W===I)e5(Q.state);return W},s5=(Q,W)=>{if(DQ(Q)||Q.state.wrap!==2)return l;return Q.state.gzhead=W,I},E0=(Q,W,J,j,G,q)=>{if(!Q)return l;let z=1;if(W===S5)W=6;if(j<0)z=0,j=-j;else if(j>15)z=2,j-=16;if(G<1||G>b5||J!==rQ||j<8||j>15||W<0||W>9||q<0||q>D5||j===8&&z!==1)return qQ(Q,l);if(j===8)j=9;let U=new t5;return Q.state=U,U.strm=Q,U.status=FQ,U.wrap=z,U.gzhead=null,U.w_bits=j,U.w_size=1<<U.w_bits,U.w_mask=U.w_size-1,U.hash_bits=G+7,U.hash_size=1<<U.hash_bits,U.hash_mask=U.hash_size-1,U.hash_shift=~~((U.hash_bits+v-1)/v),U.window=new Uint8Array(U.w_size*2),U.head=new Uint16Array(U.hash_size),U.prev=new Uint16Array(U.w_size),U.lit_bufsize=1<<G+6,U.pending_buf_size=U.lit_bufsize*4,U.pending_buf=new Uint8Array(U.pending_buf_size),U.sym_buf=U.lit_bufsize,U.sym_end=(U.lit_bufsize-1)*3,U.level=W,U.strategy=q,U.method=J,D0(Q)},Q8=(Q,W)=>{return E0(Q,W,rQ,f5,u5,E5)},J8=(Q,W)=>{if(DQ(Q)||W>bJ||W<0)return Q?qQ(Q,l):l;let J=Q.state;if(!Q.output||Q.avail_in!==0&&!Q.input||J.status===$Q&&W!==c)return qQ(Q,Q.avail_out===0?jJ:l);let j=J.last_flush;if(J.last_flush=W,J.pending!==0){if(u(Q),Q.avail_out===0)return J.last_flush=-1,I}else if(Q.avail_in===0&&uJ(W)<=uJ(j)&&W!==c)return qQ(Q,jJ);if(J.status===$Q&&Q.avail_in!==0)return qQ(Q,jJ);if(J.status===FQ&&J.wrap===0)J.status=jQ;if(J.status===FQ){let G=rQ+(J.w_bits-8<<4)<<8,q=-1;if(J.strategy>=uQ||J.level<2)q=0;else if(J.level<6)q=1;else if(J.level===6)q=2;else q=3;if(G|=q<<6,J.strstart!==0)G|=_5;if(G+=31-G%31,CQ(J,G),J.strstart!==0)CQ(J,Q.adler>>>16),CQ(J,Q.adler&65535);if(Q.adler=1,J.status=jQ,u(Q),J.pending!==0)return J.last_flush=-1,I}if(J.status===OJ)if(Q.adler=0,x(J,31),x(J,139),x(J,8),!J.gzhead){if(x(J,0),x(J,0),x(J,0),x(J,0),x(J,0),x(J,J.level===9?2:J.strategy>=uQ||J.level<2?4:0),x(J,i5),J.status=jQ,u(Q),J.pending!==0)return J.last_flush=-1,I}else{if(x(J,(J.gzhead.text?1:0)+(J.gzhead.hcrc?2:0)+(!J.gzhead.extra?0:4)+(!J.gzhead.name?0:8)+(!J.gzhead.comment?0:16)),x(J,J.gzhead.time&255),x(J,J.gzhead.time>>8&255),x(J,J.gzhead.time>>16&255),x(J,J.gzhead.time>>24&255),x(J,J.level===9?2:J.strategy>=uQ||J.level<2?4:0),x(J,J.gzhead.os&255),J.gzhead.extra&&J.gzhead.extra.length)x(J,J.gzhead.extra.length&255),x(J,J.gzhead.extra.length>>8&255);if(J.gzhead.hcrc)Q.adler=D(Q.adler,J.pending_buf,J.pending,0);J.gzindex=0,J.status=BJ}if(J.status===BJ){if(J.gzhead.extra){let G=J.pending,q=(J.gzhead.extra.length&65535)-J.gzindex;while(J.pending+q>J.pending_buf_size){let U=J.pending_buf_size-J.pending;if(J.pending_buf.set(J.gzhead.extra.subarray(J.gzindex,J.gzindex+U),J.pending),J.pending=J.pending_buf_size,J.gzhead.hcrc&&J.pending>G)Q.adler=D(Q.adler,J.pending_buf,J.pending-G,G);if(J.gzindex+=U,u(Q),J.pending!==0)return J.last_flush=-1,I;G=0,q-=U}let z=new Uint8Array(J.gzhead.extra);if(J.pending_buf.set(z.subarray(J.gzindex,J.gzindex+q),J.pending),J.pending+=q,J.gzhead.hcrc&&J.pending>G)Q.adler=D(Q.adler,J.pending_buf,J.pending-G,G);J.gzindex=0}J.status=CJ}if(J.status===CJ){if(J.gzhead.name){let G=J.pending,q;do{if(J.pending===J.pending_buf_size){if(J.gzhead.hcrc&&J.pending>G)Q.adler=D(Q.adler,J.pending_buf,J.pending-G,G);if(u(Q),J.pending!==0)return J.last_flush=-1,I;G=0}if(J.gzindex<J.gzhead.name.length)q=J.gzhead.name.charCodeAt(J.gzindex++)&255;else q=0;x(J,q)}while(q!==0);if(J.gzhead.hcrc&&J.pending>G)Q.adler=D(Q.adler,J.pending_buf,J.pending-G,G);J.gzindex=0}J.status=$J}if(J.status===$J){if(J.gzhead.comment){let G=J.pending,q;do{if(J.pending===J.pending_buf_size){if(J.gzhead.hcrc&&J.pending>G)Q.adler=D(Q.adler,J.pending_buf,J.pending-G,G);if(u(Q),J.pending!==0)return J.last_flush=-1,I;G=0}if(J.gzindex<J.gzhead.comment.length)q=J.gzhead.comment.charCodeAt(J.gzindex++)&255;else q=0;x(J,q)}while(q!==0);if(J.gzhead.hcrc&&J.pending>G)Q.adler=D(Q.adler,J.pending_buf,J.pending-G,G)}J.status=LJ}if(J.status===LJ){if(J.gzhead.hcrc){if(J.pending+2>J.pending_buf_size){if(u(Q),J.pending!==0)return J.last_flush=-1,I}x(J,Q.adler&255),x(J,Q.adler>>8&255),Q.adler=0}if(J.status=jQ,u(Q),J.pending!==0)return J.last_flush=-1,I}if(Q.avail_in!==0||J.lookahead!==0||W!==s&&J.status!==$Q){let G=J.level===0?T0(J,W):J.strategy===uQ?a5(J,W):J.strategy===y5?n5(J,W):LQ[J.level].func(J,W);if(G===XQ||G===BQ)J.status=$Q;if(G===b||G===XQ){if(Q.avail_out===0)J.last_flush=-1;return I}if(G===PQ){if(W===M5)O5(J);else if(W!==bJ){if(HJ(J,0,0,!1),W===w5){if(a(J.head),J.lookahead===0)J.strstart=0,J.block_start=0,J.insert=0}}if(u(Q),Q.avail_out===0)return J.last_flush=-1,I}}if(W!==c)return I;if(J.wrap<=0)return fJ;if(J.wrap===2)x(J,Q.adler&255),x(J,Q.adler>>8&255),x(J,Q.adler>>16&255),x(J,Q.adler>>24&255),x(J,Q.total_in&255),x(J,Q.total_in>>8&255),x(J,Q.total_in>>16&255),x(J,Q.total_in>>24&255);else CQ(J,Q.adler>>>16),CQ(J,Q.adler&65535);if(u(Q),J.wrap>0)J.wrap=-J.wrap;return J.pending!==0?I:fJ},W8=(Q)=>{if(DQ(Q))return l;let W=Q.state.status;return Q.state=null,W===jQ?qQ(Q,A5):I},j8=(Q,W)=>{let J=W.length;if(DQ(Q))return l;let j=Q.state,G=j.wrap;if(G===2||G===1&&j.status!==FQ||j.lookahead)return l;if(G===1)Q.adler=wQ(Q.adler,W,J,0);if(j.wrap=0,J>=j.w_size){if(G===0)a(j.head),j.strstart=0,j.block_start=0,j.insert=0;let Y=new Uint8Array(j.w_size);Y.set(W.subarray(J-j.w_size,J),0),W=Y,J=j.w_size}let{avail_in:q,next_in:z,input:U}=Q;Q.avail_in=J,Q.next_in=0,Q.input=W,ZQ(j);while(j.lookahead>=v){let Y=j.strstart,X=j.lookahead-(v-1);do j.ins_h=QQ(j,j.ins_h,j.window[Y+v-1]),j.prev[Y&j.w_mask]=j.head[j.ins_h],j.head[j.ins_h]=Y,Y++;while(--X);j.strstart=Y,j.lookahead=v-1,ZQ(j)}return j.strstart+=j.lookahead,j.block_start=j.strstart,j.insert=j.lookahead,j.lookahead=0,j.match_length=j.prev_length=v-1,j.match_available=0,Q.next_in=z,Q.input=U,Q.avail_in=q,j.wrap=G,I},q8=Q8,G8=E0,X8=D0,U8=y0,z8=s5,K8=J8,V8=W8,k8=j8,Y8="pako deflate (from Nodeca project)",vQ={deflateInit:q8,deflateInit2:G8,deflateReset:X8,deflateResetKeep:U8,deflateSetHeader:z8,deflate:K8,deflateEnd:V8,deflateSetDictionary:k8,deflateInfo:Y8},F8=(Q,W)=>{return Object.prototype.hasOwnProperty.call(Q,W)},Z8=function(Q){let W=Array.prototype.slice.call(arguments,1);while(W.length){let J=W.shift();if(!J)continue;if(typeof J!=="object")throw new TypeError(J+"must be non-object");for(let j in J)if(F8(J,j))Q[j]=J[j]}return Q},H8=(Q)=>{let W=0;for(let j=0,G=Q.length;j<G;j++)W+=Q[j].length;let J=new Uint8Array(W);for(let j=0,G=0,q=Q.length;j<q;j++){let z=Q[j];J.set(z,G),G+=z.length}return J},oQ={assign:Z8,flattenChunks:H8},I0=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(Q){I0=!1}var AQ=new Uint8Array(256);for(let Q=0;Q<256;Q++)AQ[Q]=Q>=252?6:Q>=248?5:Q>=240?4:Q>=224?3:Q>=192?2:1;AQ[254]=AQ[254]=1;var P8=(Q)=>{if(typeof TextEncoder==="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(Q);let W,J,j,G,q,z=Q.length,U=0;for(G=0;G<z;G++){if(J=Q.charCodeAt(G),(J&64512)===55296&&G+1<z){if(j=Q.charCodeAt(G+1),(j&64512)===56320)J=65536+(J-55296<<10)+(j-56320),G++}U+=J<128?1:J<2048?2:J<65536?3:4}W=new Uint8Array(U);for(q=0,G=0;q<U;G++){if(J=Q.charCodeAt(G),(J&64512)===55296&&G+1<z){if(j=Q.charCodeAt(G+1),(j&64512)===56320)J=65536+(J-55296<<10)+(j-56320),G++}if(J<128)W[q++]=J;else if(J<2048)W[q++]=192|J>>>6,W[q++]=128|J&63;else if(J<65536)W[q++]=224|J>>>12,W[q++]=128|J>>>6&63,W[q++]=128|J&63;else W[q++]=240|J>>>18,W[q++]=128|J>>>12&63,W[q++]=128|J>>>6&63,W[q++]=128|J&63}return W},B8=(Q,W)=>{if(W<65534){if(Q.subarray&&I0)return String.fromCharCode.apply(null,Q.length===W?Q:Q.subarray(0,W))}let J="";for(let j=0;j<W;j++)J+=String.fromCharCode(Q[j]);return J},C8=(Q,W)=>{let J=W||Q.length;if(typeof TextDecoder==="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(Q.subarray(0,W));let j,G,q=new Array(J*2);for(G=0,j=0;j<J;){let z=Q[j++];if(z<128){q[G++]=z;continue}let U=AQ[z];if(U>4){q[G++]=65533,j+=U-1;continue}z&=U===2?31:U===3?15:7;while(U>1&&j<J)z=z<<6|Q[j++]&63,U--;if(U>1){q[G++]=65533;continue}if(z<65536)q[G++]=z;else z-=65536,q[G++]=55296|z>>10&1023,q[G++]=56320|z&1023}return B8(q,G)},$8=(Q,W)=>{if(W=W||Q.length,W>Q.length)W=Q.length;let J=W-1;while(J>=0&&(Q[J]&192)===128)J--;if(J<0)return W;if(J===0)return W;return J+AQ[Q[J]]>W?J:W},SQ={string2buf:P8,buf2string:C8,utf8border:$8};function L8(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}var b0=L8,f0=Object.prototype.toString,{Z_NO_FLUSH:N8,Z_SYNC_FLUSH:v8,Z_FULL_FLUSH:g8,Z_FINISH:R8,Z_OK:_Q,Z_STREAM_END:x8,Z_DEFAULT_COMPRESSION:O8,Z_DEFAULT_STRATEGY:M8,Z_DEFLATED:w8}=zQ;function EQ(Q){this.options=oQ.assign({level:O8,method:w8,chunkSize:16384,windowBits:15,memLevel:8,strategy:M8},Q||{});let W=this.options;if(W.raw&&W.windowBits>0)W.windowBits=-W.windowBits;else if(W.gzip&&W.windowBits>0&&W.windowBits<16)W.windowBits+=16;this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new b0,this.strm.avail_out=0;let J=vQ.deflateInit2(this.strm,W.level,W.method,W.windowBits,W.memLevel,W.strategy);if(J!==_Q)throw new Error(GQ[J]);if(W.header)vQ.deflateSetHeader(this.strm,W.header);if(W.dictionary){let j;if(typeof W.dictionary==="string")j=SQ.string2buf(W.dictionary);else if(f0.call(W.dictionary)==="[object ArrayBuffer]")j=new Uint8Array(W.dictionary);else j=W.dictionary;if(J=vQ.deflateSetDictionary(this.strm,j),J!==_Q)throw new Error(GQ[J]);this._dict_set=!0}}EQ.prototype.push=function(Q,W){let J=this.strm,j=this.options.chunkSize,G,q;if(this.ended)return!1;if(W===~~W)q=W;else q=W===!0?R8:N8;if(typeof Q==="string")J.input=SQ.string2buf(Q);else if(f0.call(Q)==="[object ArrayBuffer]")J.input=new Uint8Array(Q);else J.input=Q;J.next_in=0,J.avail_in=J.input.length;for(;;){if(J.avail_out===0)J.output=new Uint8Array(j),J.next_out=0,J.avail_out=j;if((q===v8||q===g8)&&J.avail_out<=6){this.onData(J.output.subarray(0,J.next_out)),J.avail_out=0;continue}if(G=vQ.deflate(J,q),G===x8){if(J.next_out>0)this.onData(J.output.subarray(0,J.next_out));return G=vQ.deflateEnd(this.strm),this.onEnd(G),this.ended=!0,G===_Q}if(J.avail_out===0){this.onData(J.output);continue}if(q>0&&J.next_out>0){this.onData(J.output.subarray(0,J.next_out)),J.avail_out=0;continue}if(J.avail_in===0)break}return!0};EQ.prototype.onData=function(Q){this.chunks.push(Q)};EQ.prototype.onEnd=function(Q){if(Q===_Q)this.result=oQ.flattenChunks(this.chunks);this.chunks=[],this.err=Q,this.msg=this.strm.msg};function MJ(Q,W){let J=new EQ(W);if(J.push(Q,!0),J.err)throw J.msg||GQ[J.err];return J.result}function A8(Q,W){return W=W||{},W.raw=!0,MJ(Q,W)}function S8(Q,W){return W=W||{},W.gzip=!0,MJ(Q,W)}var T8=EQ,y8=MJ,D8=A8,E8=S8,I8=zQ,b8={Deflate:T8,deflate:y8,deflateRaw:D8,gzip:E8,constants:I8},hQ=16209,f8=16191,u8=function Q(W,J){let j,G,q,z,U,Y,X,K,P,k,V,Z,M,$,C,O,L,F,R,y,H,A,g,B,N=W.state;j=W.next_in,g=W.input,G=j+(W.avail_in-5),q=W.next_out,B=W.output,z=q-(J-W.avail_out),U=q+(W.avail_out-257),Y=N.dmax,X=N.wsize,K=N.whave,P=N.wnext,k=N.window,V=N.hold,Z=N.bits,M=N.lencode,$=N.distcode,C=(1<<N.lenbits)-1,O=(1<<N.distbits)-1;Q:do{if(Z<15)V+=g[j++]<<Z,Z+=8,V+=g[j++]<<Z,Z+=8;L=M[V&C];J:for(;;){if(F=L>>>24,V>>>=F,Z-=F,F=L>>>16&255,F===0)B[q++]=L&65535;else if(F&16){if(R=L&65535,F&=15,F){if(Z<F)V+=g[j++]<<Z,Z+=8;R+=V&(1<<F)-1,V>>>=F,Z-=F}if(Z<15)V+=g[j++]<<Z,Z+=8,V+=g[j++]<<Z,Z+=8;L=$[V&O];W:for(;;){if(F=L>>>24,V>>>=F,Z-=F,F=L>>>16&255,F&16){if(y=L&65535,F&=15,Z<F){if(V+=g[j++]<<Z,Z+=8,Z<F)V+=g[j++]<<Z,Z+=8}if(y+=V&(1<<F)-1,y>Y){W.msg="invalid distance too far back",N.mode=hQ;break Q}if(V>>>=F,Z-=F,F=q-z,y>F){if(F=y-F,F>K){if(N.sane){W.msg="invalid distance too far back",N.mode=hQ;break Q}}if(H=0,A=k,P===0){if(H+=X-F,F<R){R-=F;do B[q++]=k[H++];while(--F);H=q-y,A=B}}else if(P<F){if(H+=X+P-F,F-=P,F<R){R-=F;do B[q++]=k[H++];while(--F);if(H=0,P<R){F=P,R-=F;do B[q++]=k[H++];while(--F);H=q-y,A=B}}}else if(H+=P-F,F<R){R-=F;do B[q++]=k[H++];while(--F);H=q-y,A=B}while(R>2)B[q++]=A[H++],B[q++]=A[H++],B[q++]=A[H++],R-=3;if(R){if(B[q++]=A[H++],R>1)B[q++]=A[H++]}}else{H=q-y;do B[q++]=B[H++],B[q++]=B[H++],B[q++]=B[H++],R-=3;while(R>2);if(R){if(B[q++]=B[H++],R>1)B[q++]=B[H++]}}}else if((F&64)===0){L=$[(L&65535)+(V&(1<<F)-1)];continue W}else{W.msg="invalid distance code",N.mode=hQ;break Q}break}}else if((F&64)===0){L=M[(L&65535)+(V&(1<<F)-1)];continue J}else if(F&32){N.mode=f8;break Q}else{W.msg="invalid literal/length code",N.mode=hQ;break Q}break}}while(j<G&&q<U);R=Z>>3,j-=R,Z-=R<<3,V&=(1<<Z)-1,W.next_in=j,W.next_out=q,W.avail_in=j<G?5+(G-j):5-(j-G),W.avail_out=q<U?257+(U-q):257-(q-U),N.hold=V,N.bits=Z;return},kQ=15,hJ=852,cJ=592,mJ=0,GJ=1,dJ=2,h8=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),c8=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78]),m8=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),d8=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]),p8=(Q,W,J,j,G,q,z,U)=>{let Y=U.bits,X=0,K=0,P=0,k=0,V=0,Z=0,M=0,$=0,C=0,O=0,L,F,R,y,H,A=null,g,B=new Uint16Array(kQ+1),N=new Uint16Array(kQ+1),JQ=null,AJ,bQ,fQ;for(X=0;X<=kQ;X++)B[X]=0;for(K=0;K<j;K++)B[W[J+K]]++;V=Y;for(k=kQ;k>=1;k--)if(B[k]!==0)break;if(V>k)V=k;if(k===0)return G[q++]=20971520,G[q++]=20971520,U.bits=1,0;for(P=1;P<k;P++)if(B[P]!==0)break;if(V<P)V=P;$=1;for(X=1;X<=kQ;X++)if($<<=1,$-=B[X],$<0)return-1;if($>0&&(Q===mJ||k!==1))return-1;N[1]=0;for(X=1;X<kQ;X++)N[X+1]=N[X]+B[X];for(K=0;K<j;K++)if(W[J+K]!==0)z[N[W[J+K]]++]=K;if(Q===mJ)A=JQ=z,g=20;else if(Q===GJ)A=h8,JQ=c8,g=257;else A=m8,JQ=d8,g=0;if(O=0,K=0,X=P,H=q,Z=V,M=0,R=-1,C=1<<V,y=C-1,Q===GJ&&C>hJ||Q===dJ&&C>cJ)return 1;for(;;){if(AJ=X-M,z[K]+1<g)bQ=0,fQ=z[K];else if(z[K]>=g)bQ=JQ[z[K]-g],fQ=A[z[K]-g];else bQ=96,fQ=0;L=1<<X-M,F=1<<Z,P=F;do F-=L,G[H+(O>>M)+F]=AJ<<24|bQ<<16|fQ|0;while(F!==0);L=1<<X-1;while(O&L)L>>=1;if(L!==0)O&=L-1,O+=L;else O=0;if(K++,--B[X]===0){if(X===k)break;X=W[J+z[K]]}if(X>V&&(O&y)!==R){if(M===0)M=V;H+=P,Z=X-M,$=1<<Z;while(Z+M<k){if($-=B[Z+M],$<=0)break;Z++,$<<=1}if(C+=1<<Z,Q===GJ&&C>hJ||Q===dJ&&C>cJ)return 1;R=O&y,G[R]=V<<24|Z<<16|H-q|0}}if(O!==0)G[H+O]=X-M<<24|4194304|0;return U.bits=V,0},gQ=p8,l8=0,u0=1,h0=2,{Z_FINISH:pJ,Z_BLOCK:_8,Z_TREES:cQ,Z_OK:UQ,Z_STREAM_END:i8,Z_NEED_DICT:r8,Z_STREAM_ERROR:m,Z_DATA_ERROR:c0,Z_MEM_ERROR:m0,Z_BUF_ERROR:o8,Z_DEFLATED:lJ}=zQ,nQ=16180,_J=16181,iJ=16182,rJ=16183,oJ=16184,nJ=16185,aJ=16186,eJ=16187,tJ=16188,sJ=16189,iQ=16190,i=16191,XJ=16192,Q0=16193,UJ=16194,J0=16195,W0=16196,j0=16197,q0=16198,mQ=16199,dQ=16200,G0=16201,X0=16202,U0=16203,z0=16204,K0=16205,zJ=16206,V0=16207,k0=16208,S=16209,d0=16210,p0=16211,n8=852,a8=592,e8=15,t8=e8,Y0=(Q)=>{return(Q>>>24&255)+(Q>>>8&65280)+((Q&65280)<<8)+((Q&255)<<24)};function s8(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}var KQ=(Q)=>{if(!Q)return 1;let W=Q.state;if(!W||W.strm!==Q||W.mode<nQ||W.mode>p0)return 1;return 0},l0=(Q)=>{if(KQ(Q))return m;let W=Q.state;if(Q.total_in=Q.total_out=W.total=0,Q.msg="",W.wrap)Q.adler=W.wrap&1;return W.mode=nQ,W.last=0,W.havedict=0,W.flags=-1,W.dmax=32768,W.head=null,W.hold=0,W.bits=0,W.lencode=W.lendyn=new Int32Array(n8),W.distcode=W.distdyn=new Int32Array(a8),W.sane=1,W.back=-1,UQ},_0=(Q)=>{if(KQ(Q))return m;let W=Q.state;return W.wsize=0,W.whave=0,W.wnext=0,l0(Q)},i0=(Q,W)=>{let J;if(KQ(Q))return m;let j=Q.state;if(W<0)J=0,W=-W;else if(J=(W>>4)+5,W<48)W&=15;if(W&&(W<8||W>15))return m;if(j.window!==null&&j.wbits!==W)j.window=null;return j.wrap=J,j.wbits=W,_0(Q)},r0=(Q,W)=>{if(!Q)return m;let J=new s8;Q.state=J,J.strm=Q,J.window=null,J.mode=nQ;let j=i0(Q,W);if(j!==UQ)Q.state=null;return j},Q1=(Q)=>{return r0(Q,t8)},F0=!0,KJ,VJ,J1=(Q)=>{if(F0){KJ=new Int32Array(512),VJ=new Int32Array(32);let W=0;while(W<144)Q.lens[W++]=8;while(W<256)Q.lens[W++]=9;while(W<280)Q.lens[W++]=7;while(W<288)Q.lens[W++]=8;gQ(u0,Q.lens,0,288,KJ,0,Q.work,{bits:9}),W=0;while(W<32)Q.lens[W++]=5;gQ(h0,Q.lens,0,32,VJ,0,Q.work,{bits:5}),F0=!1}Q.lencode=KJ,Q.lenbits=9,Q.distcode=VJ,Q.distbits=5},o0=(Q,W,J,j)=>{let G,q=Q.state;if(q.window===null)q.wsize=1<<q.wbits,q.wnext=0,q.whave=0,q.window=new Uint8Array(q.wsize);if(j>=q.wsize)q.window.set(W.subarray(J-q.wsize,J),0),q.wnext=0,q.whave=q.wsize;else{if(G=q.wsize-q.wnext,G>j)G=j;if(q.window.set(W.subarray(J-j,J-j+G),q.wnext),j-=G,j)q.window.set(W.subarray(J-j,J),0),q.wnext=j,q.whave=q.wsize;else{if(q.wnext+=G,q.wnext===q.wsize)q.wnext=0;if(q.whave<q.wsize)q.whave+=G}}return 0},W1=(Q,W)=>{let J,j,G,q,z,U,Y,X,K,P,k,V,Z,M,$=0,C,O,L,F,R,y,H,A,g=new Uint8Array(4),B,N,JQ=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(KQ(Q)||!Q.output||!Q.input&&Q.avail_in!==0)return m;if(J=Q.state,J.mode===i)J.mode=XJ;z=Q.next_out,G=Q.output,Y=Q.avail_out,q=Q.next_in,j=Q.input,U=Q.avail_in,X=J.hold,K=J.bits,P=U,k=Y,A=UQ;Q:for(;;)switch(J.mode){case nQ:if(J.wrap===0){J.mode=XJ;break}while(K<16){if(U===0)break Q;U--,X+=j[q++]<<K,K+=8}if(J.wrap&2&&X===35615){if(J.wbits===0)J.wbits=15;J.check=0,g[0]=X&255,g[1]=X>>>8&255,J.check=D(J.check,g,2,0),X=0,K=0,J.mode=_J;break}if(J.head)J.head.done=!1;if(!(J.wrap&1)||(((X&255)<<8)+(X>>8))%31){Q.msg="incorrect header check",J.mode=S;break}if((X&15)!==lJ){Q.msg="unknown compression method",J.mode=S;break}if(X>>>=4,K-=4,H=(X&15)+8,J.wbits===0)J.wbits=H;if(H>15||H>J.wbits){Q.msg="invalid window size",J.mode=S;break}J.dmax=1<<J.wbits,J.flags=0,Q.adler=J.check=1,J.mode=X&512?sJ:i,X=0,K=0;break;case _J:while(K<16){if(U===0)break Q;U--,X+=j[q++]<<K,K+=8}if(J.flags=X,(J.flags&255)!==lJ){Q.msg="unknown compression method",J.mode=S;break}if(J.flags&57344){Q.msg="unknown header flags set",J.mode=S;break}if(J.head)J.head.text=X>>8&1;if(J.flags&512&&J.wrap&4)g[0]=X&255,g[1]=X>>>8&255,J.check=D(J.check,g,2,0);X=0,K=0,J.mode=iJ;case iJ:while(K<32){if(U===0)break Q;U--,X+=j[q++]<<K,K+=8}if(J.head)J.head.time=X;if(J.flags&512&&J.wrap&4)g[0]=X&255,g[1]=X>>>8&255,g[2]=X>>>16&255,g[3]=X>>>24&255,J.check=D(J.check,g,4,0);X=0,K=0,J.mode=rJ;case rJ:while(K<16){if(U===0)break Q;U--,X+=j[q++]<<K,K+=8}if(J.head)J.head.xflags=X&255,J.head.os=X>>8;if(J.flags&512&&J.wrap&4)g[0]=X&255,g[1]=X>>>8&255,J.check=D(J.check,g,2,0);X=0,K=0,J.mode=oJ;case oJ:if(J.flags&1024){while(K<16){if(U===0)break Q;U--,X+=j[q++]<<K,K+=8}if(J.length=X,J.head)J.head.extra_len=X;if(J.flags&512&&J.wrap&4)g[0]=X&255,g[1]=X>>>8&255,J.check=D(J.check,g,2,0);X=0,K=0}else if(J.head)J.head.extra=null;J.mode=nJ;case nJ:if(J.flags&1024){if(V=J.length,V>U)V=U;if(V){if(J.head){if(H=J.head.extra_len-J.length,!J.head.extra)J.head.extra=new Uint8Array(J.head.extra_len);J.head.extra.set(j.subarray(q,q+V),H)}if(J.flags&512&&J.wrap&4)J.check=D(J.check,j,V,q);U-=V,q+=V,J.length-=V}if(J.length)break Q}J.length=0,J.mode=aJ;case aJ:if(J.flags&2048){if(U===0)break Q;V=0;do if(H=j[q+V++],J.head&&H&&J.length<65536)J.head.name+=String.fromCharCode(H);while(H&&V<U);if(J.flags&512&&J.wrap&4)J.check=D(J.check,j,V,q);if(U-=V,q+=V,H)break Q}else if(J.head)J.head.name=null;J.length=0,J.mode=eJ;case eJ:if(J.flags&4096){if(U===0)break Q;V=0;do if(H=j[q+V++],J.head&&H&&J.length<65536)J.head.comment+=String.fromCharCode(H);while(H&&V<U);if(J.flags&512&&J.wrap&4)J.check=D(J.check,j,V,q);if(U-=V,q+=V,H)break Q}else if(J.head)J.head.comment=null;J.mode=tJ;case tJ:if(J.flags&512){while(K<16){if(U===0)break Q;U--,X+=j[q++]<<K,K+=8}if(J.wrap&4&&X!==(J.check&65535)){Q.msg="header crc mismatch",J.mode=S;break}X=0,K=0}if(J.head)J.head.hcrc=J.flags>>9&1,J.head.done=!0;Q.adler=J.check=0,J.mode=i;break;case sJ:while(K<32){if(U===0)break Q;U--,X+=j[q++]<<K,K+=8}Q.adler=J.check=Y0(X),X=0,K=0,J.mode=iQ;case iQ:if(J.havedict===0)return Q.next_out=z,Q.avail_out=Y,Q.next_in=q,Q.avail_in=U,J.hold=X,J.bits=K,r8;Q.adler=J.check=1,J.mode=i;case i:if(W===_8||W===cQ)break Q;case XJ:if(J.last){X>>>=K&7,K-=K&7,J.mode=zJ;break}while(K<3){if(U===0)break Q;U--,X+=j[q++]<<K,K+=8}switch(J.last=X&1,X>>>=1,K-=1,X&3){case 0:J.mode=Q0;break;case 1:if(J1(J),J.mode=mQ,W===cQ){X>>>=2,K-=2;break Q}break;case 2:J.mode=W0;break;case 3:Q.msg="invalid block type",J.mode=S}X>>>=2,K-=2;break;case Q0:X>>>=K&7,K-=K&7;while(K<32){if(U===0)break Q;U--,X+=j[q++]<<K,K+=8}if((X&65535)!==(X>>>16^65535)){Q.msg="invalid stored block lengths",J.mode=S;break}if(J.length=X&65535,X=0,K=0,J.mode=UJ,W===cQ)break Q;case UJ:J.mode=J0;case J0:if(V=J.length,V){if(V>U)V=U;if(V>Y)V=Y;if(V===0)break Q;G.set(j.subarray(q,q+V),z),U-=V,q+=V,Y-=V,z+=V,J.length-=V;break}J.mode=i;break;case W0:while(K<14){if(U===0)break Q;U--,X+=j[q++]<<K,K+=8}if(J.nlen=(X&31)+257,X>>>=5,K-=5,J.ndist=(X&31)+1,X>>>=5,K-=5,J.ncode=(X&15)+4,X>>>=4,K-=4,J.nlen>286||J.ndist>30){Q.msg="too many length or distance symbols",J.mode=S;break}J.have=0,J.mode=j0;case j0:while(J.have<J.ncode){while(K<3){if(U===0)break Q;U--,X+=j[q++]<<K,K+=8}J.lens[JQ[J.have++]]=X&7,X>>>=3,K-=3}while(J.have<19)J.lens[JQ[J.have++]]=0;if(J.lencode=J.lendyn,J.lenbits=7,B={bits:J.lenbits},A=gQ(l8,J.lens,0,19,J.lencode,0,J.work,B),J.lenbits=B.bits,A){Q.msg="invalid code lengths set",J.mode=S;break}J.have=0,J.mode=q0;case q0:while(J.have<J.nlen+J.ndist){for(;;){if($=J.lencode[X&(1<<J.lenbits)-1],C=$>>>24,O=$>>>16&255,L=$&65535,C<=K)break;if(U===0)break Q;U--,X+=j[q++]<<K,K+=8}if(L<16)X>>>=C,K-=C,J.lens[J.have++]=L;else{if(L===16){N=C+2;while(K<N){if(U===0)break Q;U--,X+=j[q++]<<K,K+=8}if(X>>>=C,K-=C,J.have===0){Q.msg="invalid bit length repeat",J.mode=S;break}H=J.lens[J.have-1],V=3+(X&3),X>>>=2,K-=2}else if(L===17){N=C+3;while(K<N){if(U===0)break Q;U--,X+=j[q++]<<K,K+=8}X>>>=C,K-=C,H=0,V=3+(X&7),X>>>=3,K-=3}else{N=C+7;while(K<N){if(U===0)break Q;U--,X+=j[q++]<<K,K+=8}X>>>=C,K-=C,H=0,V=11+(X&127),X>>>=7,K-=7}if(J.have+V>J.nlen+J.ndist){Q.msg="invalid bit length repeat",J.mode=S;break}while(V--)J.lens[J.have++]=H}}if(J.mode===S)break;if(J.lens[256]===0){Q.msg="invalid code -- missing end-of-block",J.mode=S;break}if(J.lenbits=9,B={bits:J.lenbits},A=gQ(u0,J.lens,0,J.nlen,J.lencode,0,J.work,B),J.lenbits=B.bits,A){Q.msg="invalid literal/lengths set",J.mode=S;break}if(J.distbits=6,J.distcode=J.distdyn,B={bits:J.distbits},A=gQ(h0,J.lens,J.nlen,J.ndist,J.distcode,0,J.work,B),J.distbits=B.bits,A){Q.msg="invalid distances set",J.mode=S;break}if(J.mode=mQ,W===cQ)break Q;case mQ:J.mode=dQ;case dQ:if(U>=6&&Y>=258){if(Q.next_out=z,Q.avail_out=Y,Q.next_in=q,Q.avail_in=U,J.hold=X,J.bits=K,u8(Q,k),z=Q.next_out,G=Q.output,Y=Q.avail_out,q=Q.next_in,j=Q.input,U=Q.avail_in,X=J.hold,K=J.bits,J.mode===i)J.back=-1;break}J.back=0;for(;;){if($=J.lencode[X&(1<<J.lenbits)-1],C=$>>>24,O=$>>>16&255,L=$&65535,C<=K)break;if(U===0)break Q;U--,X+=j[q++]<<K,K+=8}if(O&&(O&240)===0){F=C,R=O,y=L;for(;;){if($=J.lencode[y+((X&(1<<F+R)-1)>>F)],C=$>>>24,O=$>>>16&255,L=$&65535,F+C<=K)break;if(U===0)break Q;U--,X+=j[q++]<<K,K+=8}X>>>=F,K-=F,J.back+=F}if(X>>>=C,K-=C,J.back+=C,J.length=L,O===0){J.mode=K0;break}if(O&32){J.back=-1,J.mode=i;break}if(O&64){Q.msg="invalid literal/length code",J.mode=S;break}J.extra=O&15,J.mode=G0;case G0:if(J.extra){N=J.extra;while(K<N){if(U===0)break Q;U--,X+=j[q++]<<K,K+=8}J.length+=X&(1<<J.extra)-1,X>>>=J.extra,K-=J.extra,J.back+=J.extra}J.was=J.length,J.mode=X0;case X0:for(;;){if($=J.distcode[X&(1<<J.distbits)-1],C=$>>>24,O=$>>>16&255,L=$&65535,C<=K)break;if(U===0)break Q;U--,X+=j[q++]<<K,K+=8}if((O&240)===0){F=C,R=O,y=L;for(;;){if($=J.distcode[y+((X&(1<<F+R)-1)>>F)],C=$>>>24,O=$>>>16&255,L=$&65535,F+C<=K)break;if(U===0)break Q;U--,X+=j[q++]<<K,K+=8}X>>>=F,K-=F,J.back+=F}if(X>>>=C,K-=C,J.back+=C,O&64){Q.msg="invalid distance code",J.mode=S;break}J.offset=L,J.extra=O&15,J.mode=U0;case U0:if(J.extra){N=J.extra;while(K<N){if(U===0)break Q;U--,X+=j[q++]<<K,K+=8}J.offset+=X&(1<<J.extra)-1,X>>>=J.extra,K-=J.extra,J.back+=J.extra}if(J.offset>J.dmax){Q.msg="invalid distance too far back",J.mode=S;break}J.mode=z0;case z0:if(Y===0)break Q;if(V=k-Y,J.offset>V){if(V=J.offset-V,V>J.whave){if(J.sane){Q.msg="invalid distance too far back",J.mode=S;break}}if(V>J.wnext)V-=J.wnext,Z=J.wsize-V;else Z=J.wnext-V;if(V>J.length)V=J.length;M=J.window}else M=G,Z=z-J.offset,V=J.length;if(V>Y)V=Y;Y-=V,J.length-=V;do G[z++]=M[Z++];while(--V);if(J.length===0)J.mode=dQ;break;case K0:if(Y===0)break Q;G[z++]=J.length,Y--,J.mode=dQ;break;case zJ:if(J.wrap){while(K<32){if(U===0)break Q;U--,X|=j[q++]<<K,K+=8}if(k-=Y,Q.total_out+=k,J.total+=k,J.wrap&4&&k)Q.adler=J.check=J.flags?D(J.check,G,k,z-k):wQ(J.check,G,k,z-k);if(k=Y,J.wrap&4&&(J.flags?X:Y0(X))!==J.check){Q.msg="incorrect data check",J.mode=S;break}X=0,K=0}J.mode=V0;case V0:if(J.wrap&&J.flags){while(K<32){if(U===0)break Q;U--,X+=j[q++]<<K,K+=8}if(J.wrap&4&&X!==(J.total&4294967295)){Q.msg="incorrect length check",J.mode=S;break}X=0,K=0}J.mode=k0;case k0:A=i8;break Q;case S:A=c0;break Q;case d0:return m0;case p0:default:return m}if(Q.next_out=z,Q.avail_out=Y,Q.next_in=q,Q.avail_in=U,J.hold=X,J.bits=K,J.wsize||k!==Q.avail_out&&J.mode<S&&(J.mode<zJ||W!==pJ)){if(o0(Q,Q.output,Q.next_out,k-Q.avail_out));}if(P-=Q.avail_in,k-=Q.avail_out,Q.total_in+=P,Q.total_out+=k,J.total+=k,J.wrap&4&&k)Q.adler=J.check=J.flags?D(J.check,G,k,Q.next_out-k):wQ(J.check,G,k,Q.next_out-k);if(Q.data_type=J.bits+(J.last?64:0)+(J.mode===i?128:0)+(J.mode===mQ||J.mode===UJ?256:0),(P===0&&k===0||W===pJ)&&A===UQ)A=o8;return A},j1=(Q)=>{if(KQ(Q))return m;let W=Q.state;if(W.window)W.window=null;return Q.state=null,UQ},q1=(Q,W)=>{if(KQ(Q))return m;let J=Q.state;if((J.wrap&2)===0)return m;return J.head=W,W.done=!1,UQ},G1=(Q,W)=>{let J=W.length,j,G,q;if(KQ(Q))return m;if(j=Q.state,j.wrap!==0&&j.mode!==iQ)return m;if(j.mode===iQ){if(G=1,G=wQ(G,W,J,0),G!==j.check)return c0}if(q=o0(Q,W,J,J),q)return j.mode=d0,m0;return j.havedict=1,UQ},X1=_0,U1=i0,z1=l0,K1=Q1,V1=r0,k1=W1,Y1=j1,F1=q1,Z1=G1,H1="pako inflate (from Nodeca project)",o={inflateReset:X1,inflateReset2:U1,inflateResetKeep:z1,inflateInit:K1,inflateInit2:V1,inflate:k1,inflateEnd:Y1,inflateGetHeader:F1,inflateSetDictionary:Z1,inflateInfo:H1};function P1(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}var B1=P1,n0=Object.prototype.toString,{Z_NO_FLUSH:C1,Z_FINISH:$1,Z_OK:TQ,Z_STREAM_END:kJ,Z_NEED_DICT:YJ,Z_STREAM_ERROR:L1,Z_DATA_ERROR:Z0,Z_MEM_ERROR:N1}=zQ;function IQ(Q){this.options=oQ.assign({chunkSize:65536,windowBits:15,to:""},Q||{});let W=this.options;if(W.raw&&W.windowBits>=0&&W.windowBits<16){if(W.windowBits=-W.windowBits,W.windowBits===0)W.windowBits=-15}if(W.windowBits>=0&&W.windowBits<16&&!(Q&&Q.windowBits))W.windowBits+=32;if(W.windowBits>15&&W.windowBits<48){if((W.windowBits&15)===0)W.windowBits|=15}this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new b0,this.strm.avail_out=0;let J=o.inflateInit2(this.strm,W.windowBits);if(J!==TQ)throw new Error(GQ[J]);if(this.header=new B1,o.inflateGetHeader(this.strm,this.header),W.dictionary){if(typeof W.dictionary==="string")W.dictionary=SQ.string2buf(W.dictionary);else if(n0.call(W.dictionary)==="[object ArrayBuffer]")W.dictionary=new Uint8Array(W.dictionary);if(W.raw){if(J=o.inflateSetDictionary(this.strm,W.dictionary),J!==TQ)throw new Error(GQ[J])}}}IQ.prototype.push=function(Q,W){let J=this.strm,j=this.options.chunkSize,G=this.options.dictionary,q,z,U;if(this.ended)return!1;if(W===~~W)z=W;else z=W===!0?$1:C1;if(n0.call(Q)==="[object ArrayBuffer]")J.input=new Uint8Array(Q);else J.input=Q;J.next_in=0,J.avail_in=J.input.length;for(;;){if(J.avail_out===0)J.output=new Uint8Array(j),J.next_out=0,J.avail_out=j;if(q=o.inflate(J,z),q===YJ&&G){if(q=o.inflateSetDictionary(J,G),q===TQ)q=o.inflate(J,z);else if(q===Z0)q=YJ}while(J.avail_in>0&&q===kJ&&J.state.wrap>0&&Q[J.next_in]!==0)o.inflateReset(J),q=o.inflate(J,z);switch(q){case L1:case Z0:case YJ:case N1:return this.onEnd(q),this.ended=!0,!1}if(U=J.avail_out,J.next_out){if(J.avail_out===0||q===kJ)if(this.options.to==="string"){let Y=SQ.utf8border(J.output,J.next_out),X=J.next_out-Y,K=SQ.buf2string(J.output,Y);if(J.next_out=X,J.avail_out=j-X,X)J.output.set(J.output.subarray(Y,Y+X),0);this.onData(K)}else this.onData(J.output.length===J.next_out?J.output:J.output.subarray(0,J.next_out))}if(q===TQ&&U===0)continue;if(q===kJ)return q=o.inflateEnd(this.strm),this.onEnd(q),this.ended=!0,!0;if(J.avail_in===0)break}return!0};IQ.prototype.onData=function(Q){this.chunks.push(Q)};IQ.prototype.onEnd=function(Q){if(Q===TQ)if(this.options.to==="string")this.result=this.chunks.join("");else this.result=oQ.flattenChunks(this.chunks);this.chunks=[],this.err=Q,this.msg=this.strm.msg};function wJ(Q,W){let J=new IQ(W);if(J.push(Q),J.err)throw J.msg||GQ[J.err];return J.result}function v1(Q,W){return W=W||{},W.raw=!0,wJ(Q,W)}var g1=IQ,R1=wJ,x1=v1,O1=wJ,M1=zQ,w1={Inflate:g1,inflate:R1,inflateRaw:x1,ungzip:O1,constants:M1},{Deflate:A1,deflate:S1,deflateRaw:T1,gzip:y1}=b8,{Inflate:D1,inflate:E1,inflateRaw:I1,ungzip:b1}=w1,f1=A1,u1=S1,h1=T1,c1=y1,m1=D1,d1=E1,p1=I1,l1=b1,_1=zQ,aQ={Deflate:f1,deflate:u1,deflateRaw:h1,gzip:c1,Inflate:m1,inflate:d1,inflateRaw:p1,ungzip:l1,constants:_1};class w{static version="4.1.0";static logger=new eQ;icons=new Map;name="failed-to-find-vyi-name";formatVersion=1;constructor(Q){if(w.logger.registerType("Vyi-module","#ff6600"),Q)this.parse(Q)}parse(Q){if(!Q)return this;try{let W;if(typeof Q==="string")try{W=JSON.parse(Q)}catch(J){if(!Q.includes(".vyr")&&!Q.includes(".vyi")){if(W=Q,!W)throw new Error("Non vyi data found from binary string")}else try{W=JSON.parse(Q)}catch(j){if(typeof window==="undefined")W=this.readFileAndGetVYI(Q);else throw new Error("Invalid string input - not valid JSON or file path")}}else if(Q instanceof w)W=Q.export();else if(Q instanceof Object&&!Array.isArray(Q)&&!(Q instanceof ArrayBuffer||Q instanceof Uint8Array))W=Q;else if(Q instanceof ArrayBuffer||Q instanceof Uint8Array)W=this.handleBinaryData(Q);else throw new Error("Error processing: Invalid input type provided.");if(!W||(!W.v||!W.i)&&!W.icons)throw new Error("Non vyi data found.");this.processVyiData(W)}catch(W){w.logger.prefix("Vyi-module").error(\`\${W.message}\`)}return this}readFile(Q){try{let J=new TextEncoder().encode(Q),j=aQ.inflate(J,{to:"string"});return JSON.parse(j)}catch(W){return console.error("File reading failed:",W),null}}readFileAndGetVYI(Q){let J=(()=>({})).readFileSync(Q);return this.handleBinaryData(J)}async fetchAndParseJSON(Q){try{return await(await fetch(Q)).json()}catch(W){throw new Error(\`Failed to fetch or parse JSON from URL: \${W}\`)}}handleBinaryData(Q){let W=Q instanceof ArrayBuffer?new Uint8Array(Q):Q;try{let J=aQ.inflate(W,{to:"string"});if(!J)return null;return JSON.parse(J)}catch(J){try{let j=new TextDecoder().decode(W);if(!j)return null;return JSON.parse(j)}catch(j){return console.error("Decoding failed:",j),null}}}processVyiData(Q){this.icons.clear();let W=Q.i||Q.icons;if(this.formatVersion=Q.v??"format not found",Array.isArray(W))W.forEach((J)=>{if(!Array.isArray(J)&&typeof J==="object"){let j=this.convertOldIconData(J);this.addIcon(j)}else this.addIcon(J)});else w.logger.prefix("Vyi-module").error("Invalid .vyi file! Cannot parse icons.")}convertOldIconData(Q){let W=Array.isArray(Q.frames)?Q.frames.map((j)=>[j.data,j.delay]):[],J=Array.isArray(Q.states)?Q.states.map((j)=>{let G=Array.isArray(j.frames)?j.frames.map((q)=>[q.data,q.delay]):[];return[j.name,j.data,j.delay||100,G]}):[];return[Q.name||"",Q.w||32,Q.h||32,Q.delay||100,Q.data||"",W,J]}addIcon(Q){if(!Q){w.logger.prefix("Vyi-module").error("No icon data passed!");return}if(!(Q instanceof T)&&!Array.isArray(Q)){w.logger.prefix("Vyi-module").error("Invalid icon data type passed!");return}let W=Q instanceof T?Q:new T(Q);return this.icons.set(W.id,W),W.setVyi(this),W}removeIcon(Q){if(!Q)return;if(Q instanceof T){if(this.icons.delete(Q.id))Q.removeVyi()}}removeIconByName(Q){let W=this.getIcon(Q);if(W)this.removeIcon(W)}removeIconById(Q){let W=this.getIconById(Q);if(W)this.removeIcon(W)}getIconNames(){return this.getIcons().map((W)=>W.name)}getIcon(Q){if(typeof Q==="string"){let W=this.getIcons();for(let J=W.length-1;J>=0;J--){let j=W[J];if(j.getName()===Q)return j}}else w.logger.prefix("Vyi-module").error("Invalid name type used!")}getIconCount(){return this.icons.size}getIconById(Q){if(!Q)return;return this.icons.get(Q)||this.getIcons().find((J)=>J.states.has(Q))?.getStateById(Q)}getIcons(){return Array.from(this.icons.values())}rename(Q){if(typeof Q==="string")this.name=Q;else w.logger.prefix("Vyi-module").error("Invalid name type used!")}getName(){return this.name}export(Q){let W={v:this.formatVersion,i:this.getIcons().map((J)=>J.export())};if(Q){let J=new TextEncoder().encode(JSON.stringify(W));return aQ.deflate(J)}return W}}self.onmessage=function(Q){let{id:W,type:J,data:j}=Q.data;try{if(J==="parse"){let q=new w(j).export();self.postMessage({id:W,success:!0,data:q})}}catch(G){let q=G instanceof Error?G.message:"Unknown error";console.error("Worker error:",G),self.postMessage({id:W,success:!1,error:q})}};
9035
+ `;
9036
+ var WORKER_BLOB = new Blob([WORKER_CODE], { type: "application/javascript" });
9037
+ var WORKER_SCRIPT_URL = URL.createObjectURL(WORKER_BLOB);
9283
9038
 
9284
- class VYI {
9285
- static version = "4.1.0";
9286
- static logger = new Logger;
9287
- icons = new Map;
9288
- name = "failed-to-find-vyi-name";
9289
- formatVersion = 1;
9290
- constructor(pVyiData) {
9291
- VYI.logger.registerType("Vyi-module", "#ff6600");
9292
- if (pVyiData) {
9293
- this.parse(pVyiData);
9039
+ class WorkerPool {
9040
+ static instance = null;
9041
+ workers = [];
9042
+ availableWorkers = [];
9043
+ maxWorkers;
9044
+ messageId = 0;
9045
+ pendingMessages = new Map;
9046
+ waitQueue = [];
9047
+ constructor(maxWorkers = navigator.hardwareConcurrency || 4) {
9048
+ this.maxWorkers = maxWorkers;
9049
+ this.initializeWorkers();
9050
+ }
9051
+ static getInstance(maxWorkers) {
9052
+ if (!WorkerPool.instance) {
9053
+ WorkerPool.instance = new WorkerPool(maxWorkers);
9294
9054
  }
9055
+ return WorkerPool.instance;
9295
9056
  }
9296
- parse(pVyiData) {
9297
- if (!pVyiData)
9298
- return this;
9299
- try {
9300
- let vyi;
9301
- if (typeof pVyiData === "string") {
9302
- try {
9303
- vyi = JSON.parse(pVyiData);
9304
- } catch (pError) {
9305
- if (!pVyiData.includes(".vyr") && !pVyiData.includes(".vyi")) {
9306
- vyi = pVyiData;
9307
- if (!vyi) {
9308
- throw new Error("Non vyi data found from binary string");
9309
- }
9310
- } else {
9311
- try {
9312
- vyi = JSON.parse(pVyiData);
9313
- } catch (e) {
9314
- const isNodeEnv = typeof window === "undefined";
9315
- if (isNodeEnv) {
9316
- vyi = this.readFileAndGetVYI(pVyiData);
9317
- } else {
9318
- throw new Error("Invalid string input - not valid JSON or file path");
9319
- }
9320
- }
9321
- }
9057
+ static destroy() {
9058
+ if (WorkerPool.instance) {
9059
+ WorkerPool.instance.terminate();
9060
+ WorkerPool.instance = null;
9061
+ }
9062
+ }
9063
+ initializeWorkers() {
9064
+ for (let i = 0;i < this.maxWorkers; i++) {
9065
+ const worker = this.createWorker();
9066
+ this.workers.push(worker);
9067
+ this.availableWorkers.push(worker);
9068
+ }
9069
+ }
9070
+ createWorker() {
9071
+ const worker = new Worker(WORKER_SCRIPT_URL, { type: "module" });
9072
+ worker.onmessage = (event) => {
9073
+ const { id, success, data, error } = event.data;
9074
+ const pending = this.pendingMessages.get(id);
9075
+ if (pending) {
9076
+ this.pendingMessages.delete(id);
9077
+ if (success) {
9078
+ pending.resolve(data);
9079
+ } else {
9080
+ pending.reject(new Error(error));
9322
9081
  }
9323
- } else if (pVyiData instanceof VYI) {
9324
- vyi = pVyiData.export();
9325
- } else if (pVyiData instanceof Object && !Array.isArray(pVyiData) && !(pVyiData instanceof ArrayBuffer || pVyiData instanceof Uint8Array)) {
9326
- vyi = pVyiData;
9327
- } else if (pVyiData instanceof ArrayBuffer || pVyiData instanceof Uint8Array) {
9328
- vyi = this.handleBinaryData(pVyiData);
9329
- } else {
9330
- throw new Error("Error processing: Invalid input type provided.");
9331
9082
  }
9332
- if (!vyi || (!vyi.v || !vyi.i) && !vyi.icons) {
9333
- throw new Error("Non vyi data found.");
9083
+ };
9084
+ worker.onerror = (error) => {
9085
+ console.error("Worker error:", error);
9086
+ for (const [id, pending] of this.pendingMessages) {
9087
+ pending.reject(new Error(`Worker error: ${error.message}`));
9334
9088
  }
9335
- this.processVyiData(vyi);
9336
- } catch (pError) {
9337
- VYI.logger.prefix("Vyi-module").error(`${pError.message}`);
9089
+ this.pendingMessages.clear();
9090
+ };
9091
+ return worker;
9092
+ }
9093
+ async getWorker() {
9094
+ if (this.availableWorkers.length > 0) {
9095
+ return this.availableWorkers.pop();
9096
+ }
9097
+ if (this.workers.length === 0) {
9098
+ throw new Error("Workers have been terminated. Create a new VyiWorker instance to continue.");
9099
+ }
9100
+ return new Promise((resolve3) => {
9101
+ this.waitQueue.push(resolve3);
9102
+ });
9103
+ }
9104
+ returnWorker(worker) {
9105
+ if (this.waitQueue.length > 0) {
9106
+ const resolve3 = this.waitQueue.shift();
9107
+ resolve3(worker);
9108
+ } else if (this.workers.includes(worker)) {
9109
+ this.availableWorkers.push(worker);
9338
9110
  }
9339
- return this;
9340
9111
  }
9341
- readFile(pVyiData) {
9342
- try {
9343
- const encoder = new TextEncoder;
9344
- const binaryData = encoder.encode(pVyiData);
9345
- const decompressed = pako.inflate(binaryData, { to: "string" });
9346
- return JSON.parse(decompressed);
9347
- } catch (error) {
9348
- console.error("File reading failed:", error);
9349
- return null;
9112
+ async sendMessage(worker, type, data) {
9113
+ const id = `${this.messageId++}`;
9114
+ return new Promise((resolve3, reject) => {
9115
+ this.pendingMessages.set(id, { resolve: resolve3, reject });
9116
+ worker.postMessage({ id, type, data });
9117
+ setTimeout(() => {
9118
+ if (this.pendingMessages.has(id)) {
9119
+ this.pendingMessages.delete(id);
9120
+ reject(new Error("Worker message timeout"));
9121
+ }
9122
+ }, 30000);
9123
+ });
9124
+ }
9125
+ terminate() {
9126
+ for (const worker of this.workers) {
9127
+ worker.terminate();
9128
+ }
9129
+ this.workers = [];
9130
+ this.availableWorkers = [];
9131
+ for (const [id, pending] of this.pendingMessages) {
9132
+ pending.reject(new Error("Worker terminated"));
9350
9133
  }
9134
+ this.pendingMessages.clear();
9351
9135
  }
9352
- readFileAndGetVYI(pURL) {
9353
- const fs = () => ({});
9354
- const data = fs.readFileSync(pURL);
9355
- return this.handleBinaryData(data);
9136
+ }
9137
+
9138
+ // src/cli/app-bundler.ts
9139
+ import { promises as fs, existsSync } from "fs";
9140
+ import { join as join3, dirname as dirname3, extname as extname2, resolve as resolve3 } from "path";
9141
+
9142
+ // node_modules/chalk/source/vendor/ansi-styles/index.js
9143
+ var ANSI_BACKGROUND_OFFSET = 10;
9144
+ var wrapAnsi16 = (offset = 0) => (code) => `\x1B[${code + offset}m`;
9145
+ var wrapAnsi256 = (offset = 0) => (code) => `\x1B[${38 + offset};5;${code}m`;
9146
+ var wrapAnsi16m = (offset = 0) => (red, green, blue) => `\x1B[${38 + offset};2;${red};${green};${blue}m`;
9147
+ var styles = {
9148
+ modifier: {
9149
+ reset: [0, 0],
9150
+ bold: [1, 22],
9151
+ dim: [2, 22],
9152
+ italic: [3, 23],
9153
+ underline: [4, 24],
9154
+ overline: [53, 55],
9155
+ inverse: [7, 27],
9156
+ hidden: [8, 28],
9157
+ strikethrough: [9, 29]
9158
+ },
9159
+ color: {
9160
+ black: [30, 39],
9161
+ red: [31, 39],
9162
+ green: [32, 39],
9163
+ yellow: [33, 39],
9164
+ blue: [34, 39],
9165
+ magenta: [35, 39],
9166
+ cyan: [36, 39],
9167
+ white: [37, 39],
9168
+ blackBright: [90, 39],
9169
+ gray: [90, 39],
9170
+ grey: [90, 39],
9171
+ redBright: [91, 39],
9172
+ greenBright: [92, 39],
9173
+ yellowBright: [93, 39],
9174
+ blueBright: [94, 39],
9175
+ magentaBright: [95, 39],
9176
+ cyanBright: [96, 39],
9177
+ whiteBright: [97, 39]
9178
+ },
9179
+ bgColor: {
9180
+ bgBlack: [40, 49],
9181
+ bgRed: [41, 49],
9182
+ bgGreen: [42, 49],
9183
+ bgYellow: [43, 49],
9184
+ bgBlue: [44, 49],
9185
+ bgMagenta: [45, 49],
9186
+ bgCyan: [46, 49],
9187
+ bgWhite: [47, 49],
9188
+ bgBlackBright: [100, 49],
9189
+ bgGray: [100, 49],
9190
+ bgGrey: [100, 49],
9191
+ bgRedBright: [101, 49],
9192
+ bgGreenBright: [102, 49],
9193
+ bgYellowBright: [103, 49],
9194
+ bgBlueBright: [104, 49],
9195
+ bgMagentaBright: [105, 49],
9196
+ bgCyanBright: [106, 49],
9197
+ bgWhiteBright: [107, 49]
9356
9198
  }
9357
- async fetchAndParseJSON(pURL) {
9358
- try {
9359
- const response = await fetch(pURL);
9360
- const jsonData = await response.json();
9361
- return jsonData;
9362
- } catch (pError) {
9363
- throw new Error(`Failed to fetch or parse JSON from URL: ${pError}`);
9199
+ };
9200
+ var modifierNames = Object.keys(styles.modifier);
9201
+ var foregroundColorNames = Object.keys(styles.color);
9202
+ var backgroundColorNames = Object.keys(styles.bgColor);
9203
+ var colorNames = [...foregroundColorNames, ...backgroundColorNames];
9204
+ function assembleStyles() {
9205
+ const codes = new Map;
9206
+ for (const [groupName, group] of Object.entries(styles)) {
9207
+ for (const [styleName, style] of Object.entries(group)) {
9208
+ styles[styleName] = {
9209
+ open: `\x1B[${style[0]}m`,
9210
+ close: `\x1B[${style[1]}m`
9211
+ };
9212
+ group[styleName] = styles[styleName];
9213
+ codes.set(style[0], style[1]);
9364
9214
  }
9215
+ Object.defineProperty(styles, groupName, {
9216
+ value: group,
9217
+ enumerable: false
9218
+ });
9365
9219
  }
9366
- handleBinaryData(pBinaryData) {
9367
- const byteArray = pBinaryData instanceof ArrayBuffer ? new Uint8Array(pBinaryData) : pBinaryData;
9368
- try {
9369
- const decompressed = pako.inflate(byteArray, { to: "string" });
9370
- if (!decompressed)
9371
- return null;
9372
- return JSON.parse(decompressed);
9373
- } catch (pError) {
9374
- try {
9375
- const decodedText = new TextDecoder().decode(byteArray);
9376
- if (!decodedText)
9377
- return null;
9378
- return JSON.parse(decodedText);
9379
- } catch (pDecodeError) {
9380
- console.error("Decoding failed:", pDecodeError);
9381
- return null;
9382
- }
9220
+ Object.defineProperty(styles, "codes", {
9221
+ value: codes,
9222
+ enumerable: false
9223
+ });
9224
+ styles.color.close = "\x1B[39m";
9225
+ styles.bgColor.close = "\x1B[49m";
9226
+ styles.color.ansi = wrapAnsi16();
9227
+ styles.color.ansi256 = wrapAnsi256();
9228
+ styles.color.ansi16m = wrapAnsi16m();
9229
+ styles.bgColor.ansi = wrapAnsi16(ANSI_BACKGROUND_OFFSET);
9230
+ styles.bgColor.ansi256 = wrapAnsi256(ANSI_BACKGROUND_OFFSET);
9231
+ styles.bgColor.ansi16m = wrapAnsi16m(ANSI_BACKGROUND_OFFSET);
9232
+ Object.defineProperties(styles, {
9233
+ rgbToAnsi256: {
9234
+ value(red, green, blue) {
9235
+ if (red === green && green === blue) {
9236
+ if (red < 8) {
9237
+ return 16;
9238
+ }
9239
+ if (red > 248) {
9240
+ return 231;
9241
+ }
9242
+ return Math.round((red - 8) / 247 * 24) + 232;
9243
+ }
9244
+ return 16 + 36 * Math.round(red / 255 * 5) + 6 * Math.round(green / 255 * 5) + Math.round(blue / 255 * 5);
9245
+ },
9246
+ enumerable: false
9247
+ },
9248
+ hexToRgb: {
9249
+ value(hex) {
9250
+ const matches = /[a-f\d]{6}|[a-f\d]{3}/i.exec(hex.toString(16));
9251
+ if (!matches) {
9252
+ return [0, 0, 0];
9253
+ }
9254
+ let [colorString] = matches;
9255
+ if (colorString.length === 3) {
9256
+ colorString = [...colorString].map((character) => character + character).join("");
9257
+ }
9258
+ const integer = Number.parseInt(colorString, 16);
9259
+ return [
9260
+ integer >> 16 & 255,
9261
+ integer >> 8 & 255,
9262
+ integer & 255
9263
+ ];
9264
+ },
9265
+ enumerable: false
9266
+ },
9267
+ hexToAnsi256: {
9268
+ value: (hex) => styles.rgbToAnsi256(...styles.hexToRgb(hex)),
9269
+ enumerable: false
9270
+ },
9271
+ ansi256ToAnsi: {
9272
+ value(code) {
9273
+ if (code < 8) {
9274
+ return 30 + code;
9275
+ }
9276
+ if (code < 16) {
9277
+ return 90 + (code - 8);
9278
+ }
9279
+ let red;
9280
+ let green;
9281
+ let blue;
9282
+ if (code >= 232) {
9283
+ red = ((code - 232) * 10 + 8) / 255;
9284
+ green = red;
9285
+ blue = red;
9286
+ } else {
9287
+ code -= 16;
9288
+ const remainder = code % 36;
9289
+ red = Math.floor(code / 36) / 5;
9290
+ green = Math.floor(remainder / 6) / 5;
9291
+ blue = remainder % 6 / 5;
9292
+ }
9293
+ const value = Math.max(red, green, blue) * 2;
9294
+ if (value === 0) {
9295
+ return 30;
9296
+ }
9297
+ let result = 30 + (Math.round(blue) << 2 | Math.round(green) << 1 | Math.round(red));
9298
+ if (value === 2) {
9299
+ result += 60;
9300
+ }
9301
+ return result;
9302
+ },
9303
+ enumerable: false
9304
+ },
9305
+ rgbToAnsi: {
9306
+ value: (red, green, blue) => styles.ansi256ToAnsi(styles.rgbToAnsi256(red, green, blue)),
9307
+ enumerable: false
9308
+ },
9309
+ hexToAnsi: {
9310
+ value: (hex) => styles.ansi256ToAnsi(styles.hexToAnsi256(hex)),
9311
+ enumerable: false
9312
+ }
9313
+ });
9314
+ return styles;
9315
+ }
9316
+ var ansiStyles = assembleStyles();
9317
+ var ansi_styles_default = ansiStyles;
9318
+
9319
+ // node_modules/chalk/source/vendor/supports-color/index.js
9320
+ import process2 from "process";
9321
+ import os from "os";
9322
+ import tty from "tty";
9323
+ function hasFlag(flag, argv = globalThis.Deno ? globalThis.Deno.args : process2.argv) {
9324
+ const prefix = flag.startsWith("-") ? "" : flag.length === 1 ? "-" : "--";
9325
+ const position = argv.indexOf(prefix + flag);
9326
+ const terminatorPosition = argv.indexOf("--");
9327
+ return position !== -1 && (terminatorPosition === -1 || position < terminatorPosition);
9328
+ }
9329
+ var { env } = process2;
9330
+ var flagForceColor;
9331
+ if (hasFlag("no-color") || hasFlag("no-colors") || hasFlag("color=false") || hasFlag("color=never")) {
9332
+ flagForceColor = 0;
9333
+ } else if (hasFlag("color") || hasFlag("colors") || hasFlag("color=true") || hasFlag("color=always")) {
9334
+ flagForceColor = 1;
9335
+ }
9336
+ function envForceColor() {
9337
+ if ("FORCE_COLOR" in env) {
9338
+ if (env.FORCE_COLOR === "true") {
9339
+ return 1;
9383
9340
  }
9384
- }
9385
- processVyiData(pVyi) {
9386
- this.icons.clear();
9387
- const icons = pVyi.i || pVyi.icons;
9388
- this.formatVersion = pVyi.v ?? "format not found";
9389
- if (Array.isArray(icons)) {
9390
- icons.forEach((pIconData) => {
9391
- if (!Array.isArray(pIconData) && typeof pIconData === "object") {
9392
- const convertedIconData = this.convertOldIconData(pIconData);
9393
- this.addIcon(convertedIconData);
9394
- } else {
9395
- this.addIcon(pIconData);
9396
- }
9397
- });
9398
- } else {
9399
- VYI.logger.prefix("Vyi-module").error("Invalid .vyi file! Cannot parse icons.");
9341
+ if (env.FORCE_COLOR === "false") {
9342
+ return 0;
9400
9343
  }
9344
+ return env.FORCE_COLOR.length === 0 ? 1 : Math.min(Number.parseInt(env.FORCE_COLOR, 10), 3);
9401
9345
  }
9402
- convertOldIconData(pOldData) {
9403
- const frames = Array.isArray(pOldData.frames) ? pOldData.frames.map((f) => [f.data, f.delay]) : [];
9404
- const states = Array.isArray(pOldData.states) ? pOldData.states.map((s) => {
9405
- const stateFrames = Array.isArray(s.frames) ? s.frames.map((f) => [f.data, f.delay]) : [];
9406
- return [s.name, s.data, s.delay || 100, stateFrames];
9407
- }) : [];
9408
- return [
9409
- pOldData.name || "",
9410
- pOldData.w || 32,
9411
- pOldData.h || 32,
9412
- pOldData.delay || 100,
9413
- pOldData.data || "",
9414
- frames,
9415
- states
9416
- ];
9346
+ }
9347
+ function translateLevel(level) {
9348
+ if (level === 0) {
9349
+ return false;
9417
9350
  }
9418
- addIcon(pIconData) {
9419
- if (!pIconData) {
9420
- VYI.logger.prefix("Vyi-module").error("No icon data passed!");
9421
- return;
9351
+ return {
9352
+ level,
9353
+ hasBasic: true,
9354
+ has256: level >= 2,
9355
+ has16m: level >= 3
9356
+ };
9357
+ }
9358
+ function _supportsColor(haveStream, { streamIsTTY, sniffFlags = true } = {}) {
9359
+ const noFlagForceColor = envForceColor();
9360
+ if (noFlagForceColor !== undefined) {
9361
+ flagForceColor = noFlagForceColor;
9362
+ }
9363
+ const forceColor = sniffFlags ? flagForceColor : noFlagForceColor;
9364
+ if (forceColor === 0) {
9365
+ return 0;
9366
+ }
9367
+ if (sniffFlags) {
9368
+ if (hasFlag("color=16m") || hasFlag("color=full") || hasFlag("color=truecolor")) {
9369
+ return 3;
9422
9370
  }
9423
- if (!(pIconData instanceof Icon) && !Array.isArray(pIconData)) {
9424
- VYI.logger.prefix("Vyi-module").error("Invalid icon data type passed!");
9425
- return;
9371
+ if (hasFlag("color=256")) {
9372
+ return 2;
9426
9373
  }
9427
- const icon = pIconData instanceof Icon ? pIconData : new Icon(pIconData);
9428
- this.icons.set(icon.id, icon);
9429
- icon.setVyi(this);
9430
- return icon;
9431
9374
  }
9432
- removeIcon(pIcon) {
9433
- if (!pIcon)
9434
- return;
9435
- if (pIcon instanceof Icon) {
9436
- if (this.icons.delete(pIcon.id)) {
9437
- pIcon.removeVyi();
9438
- }
9439
- }
9375
+ if ("TF_BUILD" in env && "AGENT_NAME" in env) {
9376
+ return 1;
9440
9377
  }
9441
- removeIconByName(pName) {
9442
- const icon = this.getIcon(pName);
9443
- if (icon) {
9444
- this.removeIcon(icon);
9445
- }
9378
+ if (haveStream && !streamIsTTY && forceColor === undefined) {
9379
+ return 0;
9446
9380
  }
9447
- removeIconById(pId) {
9448
- const icon = this.getIconById(pId);
9449
- if (icon) {
9450
- this.removeIcon(icon);
9451
- }
9381
+ const min = forceColor || 0;
9382
+ if (env.TERM === "dumb") {
9383
+ return min;
9452
9384
  }
9453
- getIconNames() {
9454
- const iconNames = this.getIcons().map((pIcon) => pIcon.name);
9455
- return iconNames;
9385
+ if (process2.platform === "win32") {
9386
+ const osRelease = os.release().split(".");
9387
+ if (Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) {
9388
+ return Number(osRelease[2]) >= 14931 ? 3 : 2;
9389
+ }
9390
+ return 1;
9456
9391
  }
9457
- getIcon(pName) {
9458
- if (typeof pName === "string") {
9459
- const icons = this.getIcons();
9460
- for (let i = icons.length - 1;i >= 0; i--) {
9461
- const icon = icons[i];
9462
- if (icon.getName() === pName) {
9463
- return icon;
9464
- }
9465
- }
9466
- } else {
9467
- VYI.logger.prefix("Vyi-module").error("Invalid name type used!");
9392
+ if ("CI" in env) {
9393
+ if (["GITHUB_ACTIONS", "GITEA_ACTIONS", "CIRCLECI"].some((key) => (key in env))) {
9394
+ return 3;
9395
+ }
9396
+ if (["TRAVIS", "APPVEYOR", "GITLAB_CI", "BUILDKITE", "DRONE"].some((sign) => (sign in env)) || env.CI_NAME === "codeship") {
9397
+ return 1;
9468
9398
  }
9399
+ return min;
9469
9400
  }
9470
- getIconCount() {
9471
- return this.icons.size;
9401
+ if ("TEAMCITY_VERSION" in env) {
9402
+ return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;
9472
9403
  }
9473
- getIconById(pId) {
9474
- if (!pId)
9475
- return;
9476
- const icon = this.icons.get(pId) || this.getIcons().find((pIcon) => pIcon.states.has(pId))?.getStateById(pId);
9477
- return icon;
9404
+ if (env.COLORTERM === "truecolor") {
9405
+ return 3;
9478
9406
  }
9479
- getIcons() {
9480
- return Array.from(this.icons.values());
9407
+ if (env.TERM === "xterm-kitty") {
9408
+ return 3;
9481
9409
  }
9482
- rename(pName) {
9483
- if (typeof pName === "string") {
9484
- this.name = pName;
9485
- } else {
9486
- VYI.logger.prefix("Vyi-module").error("Invalid name type used!");
9410
+ if ("TERM_PROGRAM" in env) {
9411
+ const version = Number.parseInt((env.TERM_PROGRAM_VERSION || "").split(".")[0], 10);
9412
+ switch (env.TERM_PROGRAM) {
9413
+ case "iTerm.app": {
9414
+ return version >= 3 ? 3 : 2;
9415
+ }
9416
+ case "Apple_Terminal": {
9417
+ return 2;
9418
+ }
9487
9419
  }
9488
9420
  }
9489
- getName() {
9490
- return this.name;
9421
+ if (/-256(color)?$/i.test(env.TERM)) {
9422
+ return 2;
9491
9423
  }
9492
- export(pCompressed) {
9493
- const vyi = {
9494
- v: this.formatVersion,
9495
- i: this.getIcons().map((pIcon) => pIcon.export())
9496
- };
9497
- if (pCompressed) {
9498
- const binaryData = new TextEncoder().encode(JSON.stringify(vyi));
9499
- const compressed = pako.deflate(binaryData);
9500
- return compressed;
9501
- }
9502
- return vyi;
9424
+ if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {
9425
+ return 1;
9503
9426
  }
9427
+ if ("COLORTERM" in env) {
9428
+ return 1;
9429
+ }
9430
+ return min;
9504
9431
  }
9505
- var WORKER_CODE = `/*!
9506
- * vyi@4.1.0 https://github.com/EvitcaStudio/vyi
9507
- * Compiled Sun, 21 Jun 2026 10:57:24 UTC
9508
- * Copyright (c) 2026 Evitca Studio, "doubleactii"
9509
- *
9510
- * vyi is privately licensed.
9511
- */
9512
- var a0=((Q)=>typeof require!=="undefined"?require:typeof Proxy!=="undefined"?new Proxy(Q,{get:(W,J)=>(typeof require!=="undefined"?require:W)[J]}):Q)(function(Q){if(typeof require!=="undefined")return require.apply(this,arguments);throw Error('Dynamic require of "'+Q+'" is not supported')});/*!
9513
- * logger@1.0.0 https://github.com/EvitcaStudio/Logger
9514
- * Compiled Mon, 10 Nov 2025 05:36:23 UTC
9515
- * Copyright (c) 2025 Evitca Studio, "doubleactii"
9516
- *
9517
- * logger is privately licensed.
9518
- */class eQ{RESET;BRIGHT;DIM;UNDERSCORE;BLINK;REVERSE;HIDDEN;FG_BLACK;FG_RED;FG_GREEN;FG_YELLOW;FG_BLUE;FG_MAGENTA;FG_CYAN;FG_WHITE;FG_GRAY;BG_BLACK;BG_RED;BG_GREEN;BG_YELLOW;BG_BLUE;BG_MAGENTA;BG_CYAN;BG_WHITE;BG_GRAY;TYPE_SPACER_LENGTH;types;currentType;SPACE_CHAR;FG_COLORS;BG_COLORS;constructor(Q){this.RESET="\\x1B[0m",this.BRIGHT="\\x1B[1m",this.DIM="\\x1B[2m",this.UNDERSCORE="\\x1B[4m",this.BLINK="\\x1B[5m",this.REVERSE="\\x1B[7m",this.HIDDEN="\\x1B[8m",this.FG_BLACK="\\x1B[30m",this.FG_RED="\\x1B[31m",this.FG_GREEN="\\x1B[32m",this.FG_YELLOW="\\x1B[33m",this.FG_BLUE="\\x1B[34m",this.FG_MAGENTA="\\x1B[35m",this.FG_CYAN="\\x1B[36m",this.FG_WHITE="\\x1B[37m",this.FG_GRAY="\\x1B[90m",this.BG_BLACK="\\x1B[40m",this.BG_RED="\\x1B[41m",this.BG_GREEN="\\x1B[42m",this.BG_YELLOW="\\x1B[43m",this.BG_BLUE="\\x1B[44m",this.BG_MAGENTA="\\x1B[45m",this.BG_CYAN="\\x1B[46m",this.BG_WHITE="\\x1B[47m",this.BG_GRAY="\\x1B[100m",this.TYPE_SPACER_LENGTH=13,this.types={default:this.FG_WHITE},this.currentType="",this.SPACE_CHAR=" ",this.FG_COLORS={};for(let W=0;W<=255;W++)this.FG_COLORS[W]="\\x1B[38;5;"+W+"m";this.BG_COLORS={};for(let W=0;W<=255;W++)this.BG_COLORS[W]="\\x1B[48;5;"+W+"m";if(Array.isArray(Q))this.registerTypes(Q)}prefix(Q){if(typeof Q==="string")this.currentType=Q;return this}message(Q="log",...W){let J=this.currentType?this.currentType:"";if(J.length===0)console[Q](...W);else{let G=J.length>=this.TYPE_SPACER_LENGTH,q=this.types[J.toLowerCase()]?this.types[J.toLowerCase()]:this.types.default,z=q.includes("\\x1B");if(!z)q=\`color: \${q}\`;if(typeof globalThis.window!=="undefined")if(z)console[Q](q+J+this.SPACE_CHAR.repeat(Math.max(this.TYPE_SPACER_LENGTH-J.length,G?1:0))+"|"+this.RESET,...W);else console[Q]("%c"+J+this.SPACE_CHAR.repeat(Math.max(this.TYPE_SPACER_LENGTH-J.length,G?1:0))+"|",q,...W);else console[Q](q+J+this.SPACE_CHAR.repeat(Math.max(this.TYPE_SPACER_LENGTH-J.length,G?1:0))+"|"+this.RESET,...W)}this.currentType=""}log(...Q){this.message("log",...Q)}info(...Q){this.message("info",...Q)}error(...Q){this.message("error",...Q)}warn(...Q){this.message("warn",...Q)}assert(...Q){console.assert(...Q)}debug(...Q){this.message("debug",...Q)}count(Q){console.count(Q)}countReset(Q){console.countReset(Q)}table(Q,W){console.table(Q,W)}time(Q="default"){this.message("time",Q)}timeLog(Q="default",...W){this.message("timeLog",Q,...W)}timeEnd(Q="default"){this.message("timeEnd",Q)}trace(...Q){this.message("trace",...Q)}group(Q=""){this.message("group",Q)}groupCollapsed(Q=""){this.message("groupCollapsed",Q)}groupEnd(){console.groupEnd()}clear(){console.clear()}registerType(Q,W){if(this.types[Q.toLowerCase()])return;if(typeof Q==="string"&&typeof W==="string")this.types[Q.toLowerCase()]=W}registerTypes(Q){if(Array.isArray(Q))for(let W=0;W<Q.length;W++)this.registerType(Q[W].type,Q[W].ansi)}unregisterType(Q){let W=Q.toLowerCase();if(this.types[W])delete this.types[W]}}class n{delay=100;dataURL="";index=0;parent=null;static defaultDelay=100;constructor(Q){if(Q)this.parse(Q)}parse(Q){if(!Q)return;let W=Q[0],J=Q[1]?Q[1]:this.parent?this.parent.getDelay():null;if(this.setDataURL(W),J)this.setDelay(J)}setParent(Q){if(!Q||this.parent)return;if(Q instanceof T){if(this.parent=Q,!this.getDelay())this.setDelay(this.parent.getDelay())}}removeParent(){this.parent=null}setDelay(Q){if(typeof Q==="number")this.delay=Q;else w.logger.prefix("Vyi-module").error("Invalid delay type!");return this}getDelay(){return this.delay}getIndex(){return this.index}setDataURL(Q){if(typeof Q==="string")this.dataURL=Q.replace(/^data:image\\/[a-z]+;base64,/,"");else w.logger.prefix("Vyi-module").error("Invalid data url type!");return this}getDataURL(){return this.dataURL}getWidth(){if(!this.parent)return;return this.parent.width}getHeight(){if(!this.parent)return;return this.parent.height}getSize(){if(!this.parent)return;return{width:this.parent.width,height:this.parent.height}}getVyi(){return this?.parent?.vyi}getParent(){return this.parent}export(){let Q=[this.getDataURL()];if(this.getDelay()!==n.defaultDelay)Q[1]=this.getDelay()||n.defaultDelay;return Q}}/*!
9519
- * icon-point@2.1.0 https://github.com/EvitcaStudio/IconPoint
9520
- * Compiled Mon, 10 Nov 2025 09:52:21 UTC
9521
- * Copyright (c) 2025 Evitca Studio, "doubleactii"
9522
- *
9523
- * icon-point is privately licensed.
9524
- *//*!
9525
- * logger@1.0.0 https://github.com/EvitcaStudio/Logger
9526
- * Compiled Mon, 10 Nov 2025 05:36:23 UTC
9527
- * Copyright (c) 2025 Evitca Studio, "doubleactii"
9528
- *
9529
- * logger is privately licensed.
9530
- */class SJ{RESET;BRIGHT;DIM;UNDERSCORE;BLINK;REVERSE;HIDDEN;FG_BLACK;FG_RED;FG_GREEN;FG_YELLOW;FG_BLUE;FG_MAGENTA;FG_CYAN;FG_WHITE;FG_GRAY;BG_BLACK;BG_RED;BG_GREEN;BG_YELLOW;BG_BLUE;BG_MAGENTA;BG_CYAN;BG_WHITE;BG_GRAY;TYPE_SPACER_LENGTH;types;currentType;SPACE_CHAR;FG_COLORS;BG_COLORS;constructor(Q){this.RESET="\\x1B[0m",this.BRIGHT="\\x1B[1m",this.DIM="\\x1B[2m",this.UNDERSCORE="\\x1B[4m",this.BLINK="\\x1B[5m",this.REVERSE="\\x1B[7m",this.HIDDEN="\\x1B[8m",this.FG_BLACK="\\x1B[30m",this.FG_RED="\\x1B[31m",this.FG_GREEN="\\x1B[32m",this.FG_YELLOW="\\x1B[33m",this.FG_BLUE="\\x1B[34m",this.FG_MAGENTA="\\x1B[35m",this.FG_CYAN="\\x1B[36m",this.FG_WHITE="\\x1B[37m",this.FG_GRAY="\\x1B[90m",this.BG_BLACK="\\x1B[40m",this.BG_RED="\\x1B[41m",this.BG_GREEN="\\x1B[42m",this.BG_YELLOW="\\x1B[43m",this.BG_BLUE="\\x1B[44m",this.BG_MAGENTA="\\x1B[45m",this.BG_CYAN="\\x1B[46m",this.BG_WHITE="\\x1B[47m",this.BG_GRAY="\\x1B[100m",this.TYPE_SPACER_LENGTH=13,this.types={default:this.FG_WHITE},this.currentType="",this.SPACE_CHAR=" ",this.FG_COLORS={};for(let W=0;W<=255;W++)this.FG_COLORS[W]="\\x1B[38;5;"+W+"m";this.BG_COLORS={};for(let W=0;W<=255;W++)this.BG_COLORS[W]="\\x1B[48;5;"+W+"m";if(Array.isArray(Q))this.registerTypes(Q)}prefix(Q){if(typeof Q==="string")this.currentType=Q;return this}message(Q="log",...W){let J=this.currentType?this.currentType:"";if(J.length===0)console[Q](...W);else{let G=J.length>=this.TYPE_SPACER_LENGTH,q=this.types[J.toLowerCase()]?this.types[J.toLowerCase()]:this.types.default,z=q.includes("\\x1B");if(!z)q=\`color: \${q}\`;if(typeof globalThis.window!=="undefined")if(z)console[Q](q+J+this.SPACE_CHAR.repeat(Math.max(this.TYPE_SPACER_LENGTH-J.length,G?1:0))+"|"+this.RESET,...W);else console[Q]("%c"+J+this.SPACE_CHAR.repeat(Math.max(this.TYPE_SPACER_LENGTH-J.length,G?1:0))+"|",q,...W);else console[Q](q+J+this.SPACE_CHAR.repeat(Math.max(this.TYPE_SPACER_LENGTH-J.length,G?1:0))+"|"+this.RESET,...W)}this.currentType=""}log(...Q){this.message("log",...Q)}info(...Q){this.message("info",...Q)}error(...Q){this.message("error",...Q)}warn(...Q){this.message("warn",...Q)}assert(...Q){console.assert(...Q)}debug(...Q){this.message("debug",...Q)}count(Q){console.count(Q)}countReset(Q){console.countReset(Q)}table(Q,W){console.table(Q,W)}time(Q="default"){this.message("time",Q)}timeLog(Q="default",...W){this.message("timeLog",Q,...W)}timeEnd(Q="default"){this.message("timeEnd",Q)}trace(...Q){this.message("trace",...Q)}group(Q=""){this.message("group",Q)}groupCollapsed(Q=""){this.message("groupCollapsed",Q)}groupEnd(){console.groupEnd()}clear(){console.clear()}registerType(Q,W){if(this.types[Q.toLowerCase()])return;if(typeof Q==="string"&&typeof W==="string")this.types[Q.toLowerCase()]=W}registerTypes(Q){if(Array.isArray(Q))for(let W=0;W<Q.length;W++)this.registerType(Q[W].type,Q[W].ansi)}unregisterType(Q){let W=Q.toLowerCase();if(this.types[W])delete this.types[W]}}class E{static defaultOffset={x:0,y:0};static defaultAnchor={x:0.5,y:0.5};static version="2.1.0";static logger=new SJ;iconPoint={x:0,y:0};originalPoint={x:0,y:0};positionalPoint;point={x:0,y:0};bounds={width:32,height:32};id;constructor(Q,W,J,j){let{width:G,height:q}=W;this.bounds.width=G,this.bounds.height=q,this.positionalPoint=Q,this.originalPoint={...J},this.id=j||"",E.logger.registerType("IconPointModule","#ff6600"),this.setPoint(J)}getPoint(Q=0,W=E.defaultOffset,J=E.defaultAnchor){let j=this.positionalPoint.x+W.x+this.bounds.width*J.x,G=this.positionalPoint.y+W.y+this.bounds.height*J.y,q=this.positionalPoint.x+W.x-1+this.iconPoint.x,z=this.positionalPoint.y+W.y-1+this.iconPoint.y,U=q-j,Y=z-G,X=U*Math.cos(Q)-Y*-Math.sin(Q),K=U*-Math.sin(Q)+Y*Math.cos(Q),P=X+j,k=K+G;return this.point.x=P,this.point.y=k,this.point}getPointFromExternalPoint(Q,W=0,J=E.defaultOffset,j=E.defaultAnchor){let G=Q.x+J.x+this.bounds.width*j.x,q=Q.y+J.y+this.bounds.height*j.y,z=Q.x+J.x-1+this.iconPoint.x,U=Q.y+J.y-1+this.iconPoint.y,Y=z-G,X=U-q,K=Y*Math.cos(W)-X*-Math.sin(W),P=Y*-Math.sin(W)+X*Math.cos(W),k=K+G,V=P+q;return this.point.x=k,this.point.y=V,this.point}setPoint(Q){let{x:W,y:J,isNormalized:j}=Q;this.iconPoint.x=j?W*this.bounds.width:W,this.iconPoint.y=j?J*this.bounds.height:J}resetPoint(){this.setPoint(this.originalPoint)}updateBounds(Q){let{width:W,height:J}=Q;this.bounds.width=W,this.bounds.height=J}transformX(Q){let W=Math.abs(Q*this.bounds.width);this.iconPoint.x=W-this.originalPoint.x}transformY(Q){let W=Math.abs(Q*this.bounds.height);this.iconPoint.y=W-this.originalPoint.y}transform(Q){this.transformX(Q.x),this.transformY(Q.y)}getId(){return this.id}export(){return{...this.bounds,...this.iconPoint,id:this.id}}}class tQ{bounds={};add(Q,W){this.bounds[Q]=W}remove(Q){delete this.bounds[Q]}update(Q,W){if(this.bounds[Q])this.bounds[Q]={...this.bounds[Q],...W}}rename(Q,W){if(this.bounds[Q])this.bounds[W]=this.bounds[Q],delete this.bounds[Q]}get(Q){return this.bounds[Q]}getAll(){return{...this.bounds}}getIdsByShape(Q){return Object.keys(this.bounds).filter((W)=>this.bounds[W].type===Q)}exportAll(){return this.getAll()}clearAll(){this.bounds={}}loadBounds(Q){this.clearAll(),Object.entries(Q).forEach(([W,J])=>{this.add(W,J)})}}class T{states=new Map;frames=new Map;width=32;height=32;dataURL="";delay=100;name="";parent=null;vyi=null;id="";static reservedIds=new Set;iconPoints=new Set;boundsManager=new tQ;static reservedIconPointIds=new Set(["center","top-left","top-right","bottom-left","bottom-right","top-middle","bottom-middle","left-middle","right-middle"]);static generateId(){let Q=()=>{return Math.floor(Math.random()*4294967295).toString(16).padStart(8,"0")},W=Q();while(this.reservedIds.has(W))W=Q();return this.reservedIds.add(W),W}constructor(Q){if(Q)this.parse(Q);this.assignId()}setParent(Q){if(!Q||this.parent)return;if(Q instanceof T)this.parent=Q}removeParent(){if(this.parent)this.parent=null,this.vyi=null}setVyi(Q){if(!Q)return;if(Q instanceof w){if(this.vyi=Q,this.getStateCount()>0)this.getStates().forEach((j)=>{j.setParent(this),j.setVyi(Q)});this.getFrames().forEach((J)=>J.setParent(this))}}removeVyi(){this.vyi=null}assignId(){this.id=T.generateId()}getId(){return this.id}getVyi(){return this.vyi}getParent(){return this.parent}getStateCount(){return this.states.size}getFrameCount(){return this.frames.size}parse(Q){if(!Q)return;let W=Q[0],J=Q[1],j=Q[2],G=Q[3],q=Q[4],z=Q[5],U=Q[6],Y=Q[7],X=Q[8];if(this.rename(W),this.setSize(J,j),this.setDelay(G),this.setDataURL(q),Array.isArray(z))z.forEach((K)=>{this.addFrame(K)});if(Array.isArray(U))U.forEach((K)=>{let P=new T(void 0),k=K[0],V=K[1],Z=K[2],M=K[3],$=K[4];if(P.rename(k),P.setSize(J,j),P.setDelay(Z),P.setDataURL(V),Array.isArray(M))M.forEach((C)=>{P.addFrame(C)});if($&&typeof $==="object")P.boundsManager.loadBounds($);this.addState(P)});if(Array.isArray(Y))Y.forEach((K)=>{let{x:P,y:k,width:V,height:Z,id:M}=K;if(T.reservedIconPointIds.has(M))return;this.addIconPoint({x:0,y:0},{width:V,height:Z},{x:P,y:k},M)});if(X&&typeof X==="object")this.boundsManager.loadBounds(X);this.resetInitialIconPoints()}resetInitialIconPoints(){let Q=this.getWidth(),W=this.getHeight();Array.from(T.reservedIconPointIds).forEach((k)=>{let V=Array.from(this.iconPoints).find((Z)=>Z.getId()===k);if(!V)return;this.iconPoints.delete(V)});let J={x:1,y:1},j=new E(J,{width:Q,height:W},{x:Math.round(Q/2),y:Math.round(W/2)},"center"),G=new E(J,{width:Q,height:W},{x:1,y:1},"top-left"),q=new E(J,{width:Q,height:W},{x:Q,y:1},"top-right"),z=new E(J,{width:Q,height:W},{x:1,y:W},"bottom-left"),U=new E(J,{width:Q,height:W},{x:Q,y:W},"bottom-right"),Y=new E(J,{width:Q,height:W},{x:Math.round(Q/2),y:1},"top-middle"),X=new E(J,{width:Q,height:W},{x:Math.round(Q/2),y:W},"bottom-middle"),K=new E(J,{width:Q,height:W},{x:1,y:Math.round(W/2)},"left-middle"),P=new E(J,{width:Q,height:W},{x:Q,y:Math.round(W/2)},"right-middle");this.iconPoints.add(j),this.iconPoints.add(G),this.iconPoints.add(q),this.iconPoints.add(z),this.iconPoints.add(U),this.iconPoints.add(Y),this.iconPoints.add(X),this.iconPoints.add(K),this.iconPoints.add(P)}addIconPoint(Q,W,J,j){if(T.reservedIconPointIds.has(j)){w.logger.prefix("Vyi-module").error(\`The id \${j} is reserved and cannot be used for additional icon points.\`);return}let G=new E(Q,W,J,j);return this.iconPoints.add(G),G}removeIconPoint(Q){for(let W of this.iconPoints)if(W.getId()===Q&&!T.reservedIconPointIds.has(Q)){this.iconPoints.delete(W);break}}getIconPointExportById(Q){for(let W of this.iconPoints)if(W.getId()===Q)return W.export();return}getIconPointsExport(){let Q=[];return this.iconPoints.forEach((W)=>Q.push(W.export())),Q}getIconPointById(Q){for(let W of this.iconPoints)if(W.getId()===Q)return W;return}getIconPoints(){let Q=[];return this.iconPoints.forEach((W)=>Q.push(W)),Q}getBoundsExport(){return this.boundsManager.exportAll()}getBoundsById(Q){return this.boundsManager.get(Q)}getIdsByShape(Q){return this.boundsManager.getIdsByShape(Q)}setBounds(Q,W){return this.boundsManager.add(Q,W),this}removeBounds(Q){return this.boundsManager.remove(Q),this}updateBounds(Q,W){return this.boundsManager.update(Q,W),this}setSize(Q,W){if(typeof Q==="number")this.width=Q;if(typeof W==="number")this.height=W;return this}getWidth(){return this.width}getHeight(){return this.height}getSize(){return{width:this.width,height:this.height}}setDataURL(Q){if(typeof Q==="string")this.dataURL=Q.replace(/^data:image\\/[a-z]+;base64,/,"");else w.logger.prefix("Vyi-module").error("Invalid data url type!");return this}getDataURL(){return this.dataURL}setDelay(Q){if(typeof Q==="number")this.delay=Q;else w.logger.prefix("Vyi-module").error("Invalid delay type!");return this}getDelay(){return this.delay}rename(Q){if(typeof Q==="string")try{this.name=decodeURIComponent(Q)}catch{this.name=Q}else w.logger.prefix("Vyi-module").error("Invalid type for pName!");return this}getName(){return this.name}setAllFrameDelays(Q){if(typeof Q==="number")this.setDelay(Q),this.getFrames().forEach((W)=>W.setDelay(Q));else w.logger.prefix("Vyi-module").error("Invalid type for pDelay!");return this}addFrame(Q){if(!Q){w.logger.prefix("Vyi-module").error("No frame data passed!");return}if(!(Q instanceof n)&&!Array.isArray(Q)){w.logger.prefix("Vyi-module").error("Invalid frame data type passed!");return}let W=Q instanceof n?Q:new n(Q);return W.setParent(this),this.frames.set(this.frames.size,W),this.indexFrames(),W}removeFrame(Q){if(!Q)return this;if(Q instanceof n){if(this.frames.delete(Q.index))Q.removeParent(),this.indexFrames()}return this}removeFrameByIndex(Q){let W=this.getFrame(Q);if(W)this.removeFrame(W);return this}indexFrames(){let Q=this.getFrames();this.frames.clear(),Q.forEach((W,J)=>{W.index=J,this.frames.set(J,W)})}reorderFrame(Q,W){if(typeof Q==="number"&&typeof W==="number"){let J=this.getFrame(W),j=Q===-1?this:this.getFrame(Q);if(j&&J){let G=j.getDataURL(),q=j.getDelay(),z=J.getDataURL(),U=J.getDelay();j.setDataURL(z),j.setDelay(U),J.setDataURL(G),J.setDelay(q)}else w.logger.prefix("Vyi-module").error("There was no frame found at pCurrentIndex, or there was no frame found at pIndex!")}else w.logger.prefix("Vyi-module").error("Invalid type used!");return this}getFrame(Q){return this.frames.get(Q)}getFrames(){return Array.from(this.frames.values())}getFramesData(){return this.getFrames().map((W)=>W.export())}addState(Q){if(!Q){w.logger.prefix("Vyi-module").error("No icon data passed!");return}if(!(Q instanceof T)&&!Array.isArray(Q)){w.logger.prefix("Vyi-module").error("Invalid icon data type passed!");return}let W=Q instanceof T?Q:new T(this.convertStateDataToIconData(Q));if(W.getWidth()!==this.getWidth()||W.getHeight()!==this.getHeight()){w.logger.prefix("Vyi-module").error("State dimensions do not match parent!");return}if(W.setParent(this),this.vyi)W.setVyi(this.vyi);return this.states.set(W.id,W),W}removeState(Q){if(Q instanceof T){if(this.states.delete(Q.id))Q.removeParent()}return this}removeStateByName(Q){let W=this.getState(Q);if(W)this.removeState(W);return this}removeStateById(Q){let W=this.getStateById(Q);if(W)this.removeState(W);return this}getState(Q){if(typeof Q==="string"){let W=this.getStates();for(let J=W.length-1;J>=0;J--){let j=W[J];if(j.getName()===Q)return j}return}else{w.logger.prefix("Vyi-module").error("Invalid name type used!");return}}getStateById(Q){if(!Q)return;return this.states.get(Q)}getStates(){return Array.from(this.states.values())}getStateNames(){return this.getStates().map((Q)=>Q.getName())}getStatesData(){return this.getStates().map((W)=>W.exportAsState())}exportAsState(){let Q=[this.getName(),this.getDataURL(),this.getDelay(),this.getFrames().map((J)=>J.export())],W=this.getBoundsExport();if(Object.keys(W).length>0)Q[4]=W;return Q}convertStateDataToIconData(Q){return[Q[0],this.getWidth(),this.getHeight(),Q[2],Q[1],Q[3]]}export(){let Q=[this.getName(),this.getWidth(),this.getHeight(),this.getDelay(),this.getDataURL(),this.getFramesData()];if(this.states.size>0)Q[6]=this.getStatesData();return Q[7]=this.getIconPointsExport(),Q[8]=this.getBoundsExport(),Q}}/*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */function HQ(Q){let W=Q.length;while(--W>=0)Q[W]=0}var e0=0,H0=1,t0=2,s0=3,Q5=258,vJ=29,yQ=256,RQ=yQ+1+vJ,YQ=30,gJ=19,P0=2*RQ+1,WQ=15,sQ=16,J5=7,RJ=256,B0=16,C0=17,$0=18,FJ=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),pQ=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),W5=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),L0=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),j5=512,r=new Array((RQ+2)*2);HQ(r);var NQ=new Array(YQ*2);HQ(NQ);var xQ=new Array(j5);HQ(xQ);var OQ=new Array(Q5-s0+1);HQ(OQ);var xJ=new Array(vJ);HQ(xJ);var lQ=new Array(YQ);HQ(lQ);function QJ(Q,W,J,j,G){this.static_tree=Q,this.extra_bits=W,this.extra_base=J,this.elems=j,this.max_length=G,this.has_stree=Q&&Q.length}var N0,v0,g0;function JJ(Q,W){this.dyn_tree=Q,this.max_code=0,this.stat_desc=W}var R0=(Q)=>{return Q<256?xQ[Q]:xQ[256+(Q>>>7)]},MQ=(Q,W)=>{Q.pending_buf[Q.pending++]=W&255,Q.pending_buf[Q.pending++]=W>>>8&255},f=(Q,W,J)=>{if(Q.bi_valid>sQ-J)Q.bi_buf|=W<<Q.bi_valid&65535,MQ(Q,Q.bi_buf),Q.bi_buf=W>>sQ-Q.bi_valid,Q.bi_valid+=J-sQ;else Q.bi_buf|=W<<Q.bi_valid&65535,Q.bi_valid+=J},p=(Q,W,J)=>{f(Q,J[W*2],J[W*2+1])},x0=(Q,W)=>{let J=0;do J|=Q&1,Q>>>=1,J<<=1;while(--W>0);return J>>>1},q5=(Q)=>{if(Q.bi_valid===16)MQ(Q,Q.bi_buf),Q.bi_buf=0,Q.bi_valid=0;else if(Q.bi_valid>=8)Q.pending_buf[Q.pending++]=Q.bi_buf&255,Q.bi_buf>>=8,Q.bi_valid-=8},G5=(Q,W)=>{let{dyn_tree:J,max_code:j}=W,G=W.stat_desc.static_tree,q=W.stat_desc.has_stree,z=W.stat_desc.extra_bits,U=W.stat_desc.extra_base,Y=W.stat_desc.max_length,X,K,P,k,V,Z,M=0;for(k=0;k<=WQ;k++)Q.bl_count[k]=0;J[Q.heap[Q.heap_max]*2+1]=0;for(X=Q.heap_max+1;X<P0;X++){if(K=Q.heap[X],k=J[J[K*2+1]*2+1]+1,k>Y)k=Y,M++;if(J[K*2+1]=k,K>j)continue;if(Q.bl_count[k]++,V=0,K>=U)V=z[K-U];if(Z=J[K*2],Q.opt_len+=Z*(k+V),q)Q.static_len+=Z*(G[K*2+1]+V)}if(M===0)return;do{k=Y-1;while(Q.bl_count[k]===0)k--;Q.bl_count[k]--,Q.bl_count[k+1]+=2,Q.bl_count[Y]--,M-=2}while(M>0);for(k=Y;k!==0;k--){K=Q.bl_count[k];while(K!==0){if(P=Q.heap[--X],P>j)continue;if(J[P*2+1]!==k)Q.opt_len+=(k-J[P*2+1])*J[P*2],J[P*2+1]=k;K--}}},O0=(Q,W,J)=>{let j=new Array(WQ+1),G=0,q,z;for(q=1;q<=WQ;q++)G=G+J[q-1]<<1,j[q]=G;for(z=0;z<=W;z++){let U=Q[z*2+1];if(U===0)continue;Q[z*2]=x0(j[U]++,U)}},X5=()=>{let Q,W,J,j,G,q=new Array(WQ+1);J=0;for(j=0;j<vJ-1;j++){xJ[j]=J;for(Q=0;Q<1<<FJ[j];Q++)OQ[J++]=j}OQ[J-1]=j,G=0;for(j=0;j<16;j++){lQ[j]=G;for(Q=0;Q<1<<pQ[j];Q++)xQ[G++]=j}G>>=7;for(;j<YQ;j++){lQ[j]=G<<7;for(Q=0;Q<1<<pQ[j]-7;Q++)xQ[256+G++]=j}for(W=0;W<=WQ;W++)q[W]=0;Q=0;while(Q<=143)r[Q*2+1]=8,Q++,q[8]++;while(Q<=255)r[Q*2+1]=9,Q++,q[9]++;while(Q<=279)r[Q*2+1]=7,Q++,q[7]++;while(Q<=287)r[Q*2+1]=8,Q++,q[8]++;O0(r,RQ+1,q);for(Q=0;Q<YQ;Q++)NQ[Q*2+1]=5,NQ[Q*2]=x0(Q,5);N0=new QJ(r,FJ,yQ+1,RQ,WQ),v0=new QJ(NQ,pQ,0,YQ,WQ),g0=new QJ(new Array(0),W5,0,gJ,J5)},M0=(Q)=>{let W;for(W=0;W<RQ;W++)Q.dyn_ltree[W*2]=0;for(W=0;W<YQ;W++)Q.dyn_dtree[W*2]=0;for(W=0;W<gJ;W++)Q.bl_tree[W*2]=0;Q.dyn_ltree[RJ*2]=1,Q.opt_len=Q.static_len=0,Q.sym_next=Q.matches=0},w0=(Q)=>{if(Q.bi_valid>8)MQ(Q,Q.bi_buf);else if(Q.bi_valid>0)Q.pending_buf[Q.pending++]=Q.bi_buf;Q.bi_buf=0,Q.bi_valid=0},TJ=(Q,W,J,j)=>{let G=W*2,q=J*2;return Q[G]<Q[q]||Q[G]===Q[q]&&j[W]<=j[J]},WJ=(Q,W,J)=>{let j=Q.heap[J],G=J<<1;while(G<=Q.heap_len){if(G<Q.heap_len&&TJ(W,Q.heap[G+1],Q.heap[G],Q.depth))G++;if(TJ(W,j,Q.heap[G],Q.depth))break;Q.heap[J]=Q.heap[G],J=G,G<<=1}Q.heap[J]=j},yJ=(Q,W,J)=>{let j,G,q=0,z,U;if(Q.sym_next!==0)do if(j=Q.pending_buf[Q.sym_buf+q++]&255,j+=(Q.pending_buf[Q.sym_buf+q++]&255)<<8,G=Q.pending_buf[Q.sym_buf+q++],j===0)p(Q,G,W);else{if(z=OQ[G],p(Q,z+yQ+1,W),U=FJ[z],U!==0)G-=xJ[z],f(Q,G,U);if(j--,z=R0(j),p(Q,z,J),U=pQ[z],U!==0)j-=lQ[z],f(Q,j,U)}while(q<Q.sym_next);p(Q,RJ,W)},ZJ=(Q,W)=>{let J=W.dyn_tree,j=W.stat_desc.static_tree,G=W.stat_desc.has_stree,q=W.stat_desc.elems,z,U,Y=-1,X;Q.heap_len=0,Q.heap_max=P0;for(z=0;z<q;z++)if(J[z*2]!==0)Q.heap[++Q.heap_len]=Y=z,Q.depth[z]=0;else J[z*2+1]=0;while(Q.heap_len<2)if(X=Q.heap[++Q.heap_len]=Y<2?++Y:0,J[X*2]=1,Q.depth[X]=0,Q.opt_len--,G)Q.static_len-=j[X*2+1];W.max_code=Y;for(z=Q.heap_len>>1;z>=1;z--)WJ(Q,J,z);X=q;do z=Q.heap[1],Q.heap[1]=Q.heap[Q.heap_len--],WJ(Q,J,1),U=Q.heap[1],Q.heap[--Q.heap_max]=z,Q.heap[--Q.heap_max]=U,J[X*2]=J[z*2]+J[U*2],Q.depth[X]=(Q.depth[z]>=Q.depth[U]?Q.depth[z]:Q.depth[U])+1,J[z*2+1]=J[U*2+1]=X,Q.heap[1]=X++,WJ(Q,J,1);while(Q.heap_len>=2);Q.heap[--Q.heap_max]=Q.heap[1],G5(Q,W),O0(J,Y,Q.bl_count)},DJ=(Q,W,J)=>{let j,G=-1,q,z=W[1],U=0,Y=7,X=4;if(z===0)Y=138,X=3;W[(J+1)*2+1]=65535;for(j=0;j<=J;j++){if(q=z,z=W[(j+1)*2+1],++U<Y&&q===z)continue;else if(U<X)Q.bl_tree[q*2]+=U;else if(q!==0){if(q!==G)Q.bl_tree[q*2]++;Q.bl_tree[B0*2]++}else if(U<=10)Q.bl_tree[C0*2]++;else Q.bl_tree[$0*2]++;if(U=0,G=q,z===0)Y=138,X=3;else if(q===z)Y=6,X=3;else Y=7,X=4}},EJ=(Q,W,J)=>{let j,G=-1,q,z=W[1],U=0,Y=7,X=4;if(z===0)Y=138,X=3;for(j=0;j<=J;j++){if(q=z,z=W[(j+1)*2+1],++U<Y&&q===z)continue;else if(U<X)do p(Q,q,Q.bl_tree);while(--U!==0);else if(q!==0){if(q!==G)p(Q,q,Q.bl_tree),U--;p(Q,B0,Q.bl_tree),f(Q,U-3,2)}else if(U<=10)p(Q,C0,Q.bl_tree),f(Q,U-3,3);else p(Q,$0,Q.bl_tree),f(Q,U-11,7);if(U=0,G=q,z===0)Y=138,X=3;else if(q===z)Y=6,X=3;else Y=7,X=4}},U5=(Q)=>{let W;DJ(Q,Q.dyn_ltree,Q.l_desc.max_code),DJ(Q,Q.dyn_dtree,Q.d_desc.max_code),ZJ(Q,Q.bl_desc);for(W=gJ-1;W>=3;W--)if(Q.bl_tree[L0[W]*2+1]!==0)break;return Q.opt_len+=3*(W+1)+5+5+4,W},z5=(Q,W,J,j)=>{let G;f(Q,W-257,5),f(Q,J-1,5),f(Q,j-4,4);for(G=0;G<j;G++)f(Q,Q.bl_tree[L0[G]*2+1],3);EJ(Q,Q.dyn_ltree,W-1),EJ(Q,Q.dyn_dtree,J-1)},K5=(Q)=>{let W=4093624447,J;for(J=0;J<=31;J++,W>>>=1)if(W&1&&Q.dyn_ltree[J*2]!==0)return 0;if(Q.dyn_ltree[18]!==0||Q.dyn_ltree[20]!==0||Q.dyn_ltree[26]!==0)return 1;for(J=32;J<yQ;J++)if(Q.dyn_ltree[J*2]!==0)return 1;return 0},IJ=!1,V5=(Q)=>{if(!IJ)X5(),IJ=!0;Q.l_desc=new JJ(Q.dyn_ltree,N0),Q.d_desc=new JJ(Q.dyn_dtree,v0),Q.bl_desc=new JJ(Q.bl_tree,g0),Q.bi_buf=0,Q.bi_valid=0,M0(Q)},A0=(Q,W,J,j)=>{if(f(Q,(e0<<1)+(j?1:0),3),w0(Q),MQ(Q,J),MQ(Q,~J),J)Q.pending_buf.set(Q.window.subarray(W,W+J),Q.pending);Q.pending+=J},k5=(Q)=>{f(Q,H0<<1,3),p(Q,RJ,r),q5(Q)},Y5=(Q,W,J,j)=>{let G,q,z=0;if(Q.level>0){if(Q.strm.data_type===2)Q.strm.data_type=K5(Q);if(ZJ(Q,Q.l_desc),ZJ(Q,Q.d_desc),z=U5(Q),G=Q.opt_len+3+7>>>3,q=Q.static_len+3+7>>>3,q<=G)G=q}else G=q=J+5;if(J+4<=G&&W!==-1)A0(Q,W,J,j);else if(Q.strategy===4||q===G)f(Q,(H0<<1)+(j?1:0),3),yJ(Q,r,NQ);else f(Q,(t0<<1)+(j?1:0),3),z5(Q,Q.l_desc.max_code+1,Q.d_desc.max_code+1,z+1),yJ(Q,Q.dyn_ltree,Q.dyn_dtree);if(M0(Q),j)w0(Q)},F5=(Q,W,J)=>{if(Q.pending_buf[Q.sym_buf+Q.sym_next++]=W,Q.pending_buf[Q.sym_buf+Q.sym_next++]=W>>8,Q.pending_buf[Q.sym_buf+Q.sym_next++]=J,W===0)Q.dyn_ltree[J*2]++;else Q.matches++,W--,Q.dyn_ltree[(OQ[J]+yQ+1)*2]++,Q.dyn_dtree[R0(W)*2]++;return Q.sym_next===Q.sym_end},Z5=V5,H5=A0,P5=Y5,B5=F5,C5=k5,$5={_tr_init:Z5,_tr_stored_block:H5,_tr_flush_block:P5,_tr_tally:B5,_tr_align:C5},L5=(Q,W,J,j)=>{let G=Q&65535|0,q=Q>>>16&65535|0,z=0;while(J!==0){z=J>2000?2000:J,J-=z;do G=G+W[j++]|0,q=q+G|0;while(--z);G%=65521,q%=65521}return G|q<<16|0},wQ=L5,N5=()=>{let Q,W=[];for(var J=0;J<256;J++){Q=J;for(var j=0;j<8;j++)Q=Q&1?3988292384^Q>>>1:Q>>>1;W[J]=Q}return W},v5=new Uint32Array(N5()),g5=(Q,W,J,j)=>{let G=v5,q=j+J;Q^=-1;for(let z=j;z<q;z++)Q=Q>>>8^G[(Q^W[z])&255];return Q^-1},D=g5,GQ={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},zQ={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8},{_tr_init:R5,_tr_stored_block:HJ,_tr_flush_block:x5,_tr_tally:t,_tr_align:O5}=$5,{Z_NO_FLUSH:s,Z_PARTIAL_FLUSH:M5,Z_FULL_FLUSH:w5,Z_FINISH:c,Z_BLOCK:bJ,Z_OK:I,Z_STREAM_END:fJ,Z_STREAM_ERROR:l,Z_DATA_ERROR:A5,Z_BUF_ERROR:jJ,Z_DEFAULT_COMPRESSION:S5,Z_FILTERED:T5,Z_HUFFMAN_ONLY:uQ,Z_RLE:y5,Z_FIXED:D5,Z_DEFAULT_STRATEGY:E5,Z_UNKNOWN:I5,Z_DEFLATED:rQ}=zQ,b5=9,f5=15,u5=8,h5=29,c5=256,PJ=c5+1+h5,m5=30,d5=19,p5=2*PJ+1,l5=15,v=3,e=258,_=e+v+1,_5=32,FQ=42,OJ=57,BJ=69,CJ=73,$J=91,LJ=103,jQ=113,$Q=666,b=1,PQ=2,XQ=3,BQ=4,i5=3,qQ=(Q,W)=>{return Q.msg=GQ[W],W},uJ=(Q)=>{return Q*2-(Q>4?9:0)},a=(Q)=>{let W=Q.length;while(--W>=0)Q[W]=0},r5=(Q)=>{let W,J,j,G=Q.w_size;W=Q.hash_size,j=W;do J=Q.head[--j],Q.head[j]=J>=G?J-G:0;while(--W);W=G,j=W;do J=Q.prev[--j],Q.prev[j]=J>=G?J-G:0;while(--W)},o5=(Q,W,J)=>(W<<Q.hash_shift^J)&Q.hash_mask,QQ=o5,u=(Q)=>{let W=Q.state,J=W.pending;if(J>Q.avail_out)J=Q.avail_out;if(J===0)return;if(Q.output.set(W.pending_buf.subarray(W.pending_out,W.pending_out+J),Q.next_out),Q.next_out+=J,W.pending_out+=J,Q.total_out+=J,Q.avail_out-=J,W.pending-=J,W.pending===0)W.pending_out=0},h=(Q,W)=>{x5(Q,Q.block_start>=0?Q.block_start:-1,Q.strstart-Q.block_start,W),Q.block_start=Q.strstart,u(Q.strm)},x=(Q,W)=>{Q.pending_buf[Q.pending++]=W},CQ=(Q,W)=>{Q.pending_buf[Q.pending++]=W>>>8&255,Q.pending_buf[Q.pending++]=W&255},NJ=(Q,W,J,j)=>{let G=Q.avail_in;if(G>j)G=j;if(G===0)return 0;if(Q.avail_in-=G,W.set(Q.input.subarray(Q.next_in,Q.next_in+G),J),Q.state.wrap===1)Q.adler=wQ(Q.adler,W,G,J);else if(Q.state.wrap===2)Q.adler=D(Q.adler,W,G,J);return Q.next_in+=G,Q.total_in+=G,G},S0=(Q,W)=>{let{max_chain_length:J,strstart:j}=Q,G,q,z=Q.prev_length,U=Q.nice_match,Y=Q.strstart>Q.w_size-_?Q.strstart-(Q.w_size-_):0,X=Q.window,K=Q.w_mask,P=Q.prev,k=Q.strstart+e,V=X[j+z-1],Z=X[j+z];if(Q.prev_length>=Q.good_match)J>>=2;if(U>Q.lookahead)U=Q.lookahead;do{if(G=W,X[G+z]!==Z||X[G+z-1]!==V||X[G]!==X[j]||X[++G]!==X[j+1])continue;j+=2,G++;do;while(X[++j]===X[++G]&&X[++j]===X[++G]&&X[++j]===X[++G]&&X[++j]===X[++G]&&X[++j]===X[++G]&&X[++j]===X[++G]&&X[++j]===X[++G]&&X[++j]===X[++G]&&j<k);if(q=e-(k-j),j=k-e,q>z){if(Q.match_start=W,z=q,q>=U)break;V=X[j+z-1],Z=X[j+z]}}while((W=P[W&K])>Y&&--J!==0);if(z<=Q.lookahead)return z;return Q.lookahead},ZQ=(Q)=>{let W=Q.w_size,J,j,G;do{if(j=Q.window_size-Q.lookahead-Q.strstart,Q.strstart>=W+(W-_)){if(Q.window.set(Q.window.subarray(W,W+W-j),0),Q.match_start-=W,Q.strstart-=W,Q.block_start-=W,Q.insert>Q.strstart)Q.insert=Q.strstart;r5(Q),j+=W}if(Q.strm.avail_in===0)break;if(J=NJ(Q.strm,Q.window,Q.strstart+Q.lookahead,j),Q.lookahead+=J,Q.lookahead+Q.insert>=v){G=Q.strstart-Q.insert,Q.ins_h=Q.window[G],Q.ins_h=QQ(Q,Q.ins_h,Q.window[G+1]);while(Q.insert)if(Q.ins_h=QQ(Q,Q.ins_h,Q.window[G+v-1]),Q.prev[G&Q.w_mask]=Q.head[Q.ins_h],Q.head[Q.ins_h]=G,G++,Q.insert--,Q.lookahead+Q.insert<v)break}}while(Q.lookahead<_&&Q.strm.avail_in!==0)},T0=(Q,W)=>{let J=Q.pending_buf_size-5>Q.w_size?Q.w_size:Q.pending_buf_size-5,j,G,q,z=0,U=Q.strm.avail_in;do{if(j=65535,q=Q.bi_valid+42>>3,Q.strm.avail_out<q)break;if(q=Q.strm.avail_out-q,G=Q.strstart-Q.block_start,j>G+Q.strm.avail_in)j=G+Q.strm.avail_in;if(j>q)j=q;if(j<J&&(j===0&&W!==c||W===s||j!==G+Q.strm.avail_in))break;if(z=W===c&&j===G+Q.strm.avail_in?1:0,HJ(Q,0,0,z),Q.pending_buf[Q.pending-4]=j,Q.pending_buf[Q.pending-3]=j>>8,Q.pending_buf[Q.pending-2]=~j,Q.pending_buf[Q.pending-1]=~j>>8,u(Q.strm),G){if(G>j)G=j;Q.strm.output.set(Q.window.subarray(Q.block_start,Q.block_start+G),Q.strm.next_out),Q.strm.next_out+=G,Q.strm.avail_out-=G,Q.strm.total_out+=G,Q.block_start+=G,j-=G}if(j)NJ(Q.strm,Q.strm.output,Q.strm.next_out,j),Q.strm.next_out+=j,Q.strm.avail_out-=j,Q.strm.total_out+=j}while(z===0);if(U-=Q.strm.avail_in,U){if(U>=Q.w_size)Q.matches=2,Q.window.set(Q.strm.input.subarray(Q.strm.next_in-Q.w_size,Q.strm.next_in),0),Q.strstart=Q.w_size,Q.insert=Q.strstart;else{if(Q.window_size-Q.strstart<=U){if(Q.strstart-=Q.w_size,Q.window.set(Q.window.subarray(Q.w_size,Q.w_size+Q.strstart),0),Q.matches<2)Q.matches++;if(Q.insert>Q.strstart)Q.insert=Q.strstart}Q.window.set(Q.strm.input.subarray(Q.strm.next_in-U,Q.strm.next_in),Q.strstart),Q.strstart+=U,Q.insert+=U>Q.w_size-Q.insert?Q.w_size-Q.insert:U}Q.block_start=Q.strstart}if(Q.high_water<Q.strstart)Q.high_water=Q.strstart;if(z)return BQ;if(W!==s&&W!==c&&Q.strm.avail_in===0&&Q.strstart===Q.block_start)return PQ;if(q=Q.window_size-Q.strstart,Q.strm.avail_in>q&&Q.block_start>=Q.w_size){if(Q.block_start-=Q.w_size,Q.strstart-=Q.w_size,Q.window.set(Q.window.subarray(Q.w_size,Q.w_size+Q.strstart),0),Q.matches<2)Q.matches++;if(q+=Q.w_size,Q.insert>Q.strstart)Q.insert=Q.strstart}if(q>Q.strm.avail_in)q=Q.strm.avail_in;if(q)NJ(Q.strm,Q.window,Q.strstart,q),Q.strstart+=q,Q.insert+=q>Q.w_size-Q.insert?Q.w_size-Q.insert:q;if(Q.high_water<Q.strstart)Q.high_water=Q.strstart;if(q=Q.bi_valid+42>>3,q=Q.pending_buf_size-q>65535?65535:Q.pending_buf_size-q,J=q>Q.w_size?Q.w_size:q,G=Q.strstart-Q.block_start,G>=J||(G||W===c)&&W!==s&&Q.strm.avail_in===0&&G<=q)j=G>q?q:G,z=W===c&&Q.strm.avail_in===0&&j===G?1:0,HJ(Q,Q.block_start,j,z),Q.block_start+=j,u(Q.strm);return z?XQ:b},qJ=(Q,W)=>{let J,j;for(;;){if(Q.lookahead<_){if(ZQ(Q),Q.lookahead<_&&W===s)return b;if(Q.lookahead===0)break}if(J=0,Q.lookahead>=v)Q.ins_h=QQ(Q,Q.ins_h,Q.window[Q.strstart+v-1]),J=Q.prev[Q.strstart&Q.w_mask]=Q.head[Q.ins_h],Q.head[Q.ins_h]=Q.strstart;if(J!==0&&Q.strstart-J<=Q.w_size-_)Q.match_length=S0(Q,J);if(Q.match_length>=v)if(j=t(Q,Q.strstart-Q.match_start,Q.match_length-v),Q.lookahead-=Q.match_length,Q.match_length<=Q.max_lazy_match&&Q.lookahead>=v){Q.match_length--;do Q.strstart++,Q.ins_h=QQ(Q,Q.ins_h,Q.window[Q.strstart+v-1]),J=Q.prev[Q.strstart&Q.w_mask]=Q.head[Q.ins_h],Q.head[Q.ins_h]=Q.strstart;while(--Q.match_length!==0);Q.strstart++}else Q.strstart+=Q.match_length,Q.match_length=0,Q.ins_h=Q.window[Q.strstart],Q.ins_h=QQ(Q,Q.ins_h,Q.window[Q.strstart+1]);else j=t(Q,0,Q.window[Q.strstart]),Q.lookahead--,Q.strstart++;if(j){if(h(Q,!1),Q.strm.avail_out===0)return b}}if(Q.insert=Q.strstart<v-1?Q.strstart:v-1,W===c){if(h(Q,!0),Q.strm.avail_out===0)return XQ;return BQ}if(Q.sym_next){if(h(Q,!1),Q.strm.avail_out===0)return b}return PQ},VQ=(Q,W)=>{let J,j,G;for(;;){if(Q.lookahead<_){if(ZQ(Q),Q.lookahead<_&&W===s)return b;if(Q.lookahead===0)break}if(J=0,Q.lookahead>=v)Q.ins_h=QQ(Q,Q.ins_h,Q.window[Q.strstart+v-1]),J=Q.prev[Q.strstart&Q.w_mask]=Q.head[Q.ins_h],Q.head[Q.ins_h]=Q.strstart;if(Q.prev_length=Q.match_length,Q.prev_match=Q.match_start,Q.match_length=v-1,J!==0&&Q.prev_length<Q.max_lazy_match&&Q.strstart-J<=Q.w_size-_){if(Q.match_length=S0(Q,J),Q.match_length<=5&&(Q.strategy===T5||Q.match_length===v&&Q.strstart-Q.match_start>4096))Q.match_length=v-1}if(Q.prev_length>=v&&Q.match_length<=Q.prev_length){G=Q.strstart+Q.lookahead-v,j=t(Q,Q.strstart-1-Q.prev_match,Q.prev_length-v),Q.lookahead-=Q.prev_length-1,Q.prev_length-=2;do if(++Q.strstart<=G)Q.ins_h=QQ(Q,Q.ins_h,Q.window[Q.strstart+v-1]),J=Q.prev[Q.strstart&Q.w_mask]=Q.head[Q.ins_h],Q.head[Q.ins_h]=Q.strstart;while(--Q.prev_length!==0);if(Q.match_available=0,Q.match_length=v-1,Q.strstart++,j){if(h(Q,!1),Q.strm.avail_out===0)return b}}else if(Q.match_available){if(j=t(Q,0,Q.window[Q.strstart-1]),j)h(Q,!1);if(Q.strstart++,Q.lookahead--,Q.strm.avail_out===0)return b}else Q.match_available=1,Q.strstart++,Q.lookahead--}if(Q.match_available)j=t(Q,0,Q.window[Q.strstart-1]),Q.match_available=0;if(Q.insert=Q.strstart<v-1?Q.strstart:v-1,W===c){if(h(Q,!0),Q.strm.avail_out===0)return XQ;return BQ}if(Q.sym_next){if(h(Q,!1),Q.strm.avail_out===0)return b}return PQ},n5=(Q,W)=>{let J,j,G,q,z=Q.window;for(;;){if(Q.lookahead<=e){if(ZQ(Q),Q.lookahead<=e&&W===s)return b;if(Q.lookahead===0)break}if(Q.match_length=0,Q.lookahead>=v&&Q.strstart>0){if(G=Q.strstart-1,j=z[G],j===z[++G]&&j===z[++G]&&j===z[++G]){q=Q.strstart+e;do;while(j===z[++G]&&j===z[++G]&&j===z[++G]&&j===z[++G]&&j===z[++G]&&j===z[++G]&&j===z[++G]&&j===z[++G]&&G<q);if(Q.match_length=e-(q-G),Q.match_length>Q.lookahead)Q.match_length=Q.lookahead}}if(Q.match_length>=v)J=t(Q,1,Q.match_length-v),Q.lookahead-=Q.match_length,Q.strstart+=Q.match_length,Q.match_length=0;else J=t(Q,0,Q.window[Q.strstart]),Q.lookahead--,Q.strstart++;if(J){if(h(Q,!1),Q.strm.avail_out===0)return b}}if(Q.insert=0,W===c){if(h(Q,!0),Q.strm.avail_out===0)return XQ;return BQ}if(Q.sym_next){if(h(Q,!1),Q.strm.avail_out===0)return b}return PQ},a5=(Q,W)=>{let J;for(;;){if(Q.lookahead===0){if(ZQ(Q),Q.lookahead===0){if(W===s)return b;break}}if(Q.match_length=0,J=t(Q,0,Q.window[Q.strstart]),Q.lookahead--,Q.strstart++,J){if(h(Q,!1),Q.strm.avail_out===0)return b}}if(Q.insert=0,W===c){if(h(Q,!0),Q.strm.avail_out===0)return XQ;return BQ}if(Q.sym_next){if(h(Q,!1),Q.strm.avail_out===0)return b}return PQ};function d(Q,W,J,j,G){this.good_length=Q,this.max_lazy=W,this.nice_length=J,this.max_chain=j,this.func=G}var LQ=[new d(0,0,0,0,T0),new d(4,4,8,4,qJ),new d(4,5,16,8,qJ),new d(4,6,32,32,qJ),new d(4,4,16,16,VQ),new d(8,16,32,32,VQ),new d(8,16,128,128,VQ),new d(8,32,128,256,VQ),new d(32,128,258,1024,VQ),new d(32,258,258,4096,VQ)],e5=(Q)=>{Q.window_size=2*Q.w_size,a(Q.head),Q.max_lazy_match=LQ[Q.level].max_lazy,Q.good_match=LQ[Q.level].good_length,Q.nice_match=LQ[Q.level].nice_length,Q.max_chain_length=LQ[Q.level].max_chain,Q.strstart=0,Q.block_start=0,Q.lookahead=0,Q.insert=0,Q.match_length=Q.prev_length=v-1,Q.match_available=0,Q.ins_h=0};function t5(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=rQ,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(p5*2),this.dyn_dtree=new Uint16Array((2*m5+1)*2),this.bl_tree=new Uint16Array((2*d5+1)*2),a(this.dyn_ltree),a(this.dyn_dtree),a(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(l5+1),this.heap=new Uint16Array(2*PJ+1),a(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*PJ+1),a(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}var DQ=(Q)=>{if(!Q)return 1;let W=Q.state;if(!W||W.strm!==Q||W.status!==FQ&&W.status!==OJ&&W.status!==BJ&&W.status!==CJ&&W.status!==$J&&W.status!==LJ&&W.status!==jQ&&W.status!==$Q)return 1;return 0},y0=(Q)=>{if(DQ(Q))return qQ(Q,l);Q.total_in=Q.total_out=0,Q.data_type=I5;let W=Q.state;if(W.pending=0,W.pending_out=0,W.wrap<0)W.wrap=-W.wrap;return W.status=W.wrap===2?OJ:W.wrap?FQ:jQ,Q.adler=W.wrap===2?0:1,W.last_flush=-2,R5(W),I},D0=(Q)=>{let W=y0(Q);if(W===I)e5(Q.state);return W},s5=(Q,W)=>{if(DQ(Q)||Q.state.wrap!==2)return l;return Q.state.gzhead=W,I},E0=(Q,W,J,j,G,q)=>{if(!Q)return l;let z=1;if(W===S5)W=6;if(j<0)z=0,j=-j;else if(j>15)z=2,j-=16;if(G<1||G>b5||J!==rQ||j<8||j>15||W<0||W>9||q<0||q>D5||j===8&&z!==1)return qQ(Q,l);if(j===8)j=9;let U=new t5;return Q.state=U,U.strm=Q,U.status=FQ,U.wrap=z,U.gzhead=null,U.w_bits=j,U.w_size=1<<U.w_bits,U.w_mask=U.w_size-1,U.hash_bits=G+7,U.hash_size=1<<U.hash_bits,U.hash_mask=U.hash_size-1,U.hash_shift=~~((U.hash_bits+v-1)/v),U.window=new Uint8Array(U.w_size*2),U.head=new Uint16Array(U.hash_size),U.prev=new Uint16Array(U.w_size),U.lit_bufsize=1<<G+6,U.pending_buf_size=U.lit_bufsize*4,U.pending_buf=new Uint8Array(U.pending_buf_size),U.sym_buf=U.lit_bufsize,U.sym_end=(U.lit_bufsize-1)*3,U.level=W,U.strategy=q,U.method=J,D0(Q)},Q8=(Q,W)=>{return E0(Q,W,rQ,f5,u5,E5)},J8=(Q,W)=>{if(DQ(Q)||W>bJ||W<0)return Q?qQ(Q,l):l;let J=Q.state;if(!Q.output||Q.avail_in!==0&&!Q.input||J.status===$Q&&W!==c)return qQ(Q,Q.avail_out===0?jJ:l);let j=J.last_flush;if(J.last_flush=W,J.pending!==0){if(u(Q),Q.avail_out===0)return J.last_flush=-1,I}else if(Q.avail_in===0&&uJ(W)<=uJ(j)&&W!==c)return qQ(Q,jJ);if(J.status===$Q&&Q.avail_in!==0)return qQ(Q,jJ);if(J.status===FQ&&J.wrap===0)J.status=jQ;if(J.status===FQ){let G=rQ+(J.w_bits-8<<4)<<8,q=-1;if(J.strategy>=uQ||J.level<2)q=0;else if(J.level<6)q=1;else if(J.level===6)q=2;else q=3;if(G|=q<<6,J.strstart!==0)G|=_5;if(G+=31-G%31,CQ(J,G),J.strstart!==0)CQ(J,Q.adler>>>16),CQ(J,Q.adler&65535);if(Q.adler=1,J.status=jQ,u(Q),J.pending!==0)return J.last_flush=-1,I}if(J.status===OJ)if(Q.adler=0,x(J,31),x(J,139),x(J,8),!J.gzhead){if(x(J,0),x(J,0),x(J,0),x(J,0),x(J,0),x(J,J.level===9?2:J.strategy>=uQ||J.level<2?4:0),x(J,i5),J.status=jQ,u(Q),J.pending!==0)return J.last_flush=-1,I}else{if(x(J,(J.gzhead.text?1:0)+(J.gzhead.hcrc?2:0)+(!J.gzhead.extra?0:4)+(!J.gzhead.name?0:8)+(!J.gzhead.comment?0:16)),x(J,J.gzhead.time&255),x(J,J.gzhead.time>>8&255),x(J,J.gzhead.time>>16&255),x(J,J.gzhead.time>>24&255),x(J,J.level===9?2:J.strategy>=uQ||J.level<2?4:0),x(J,J.gzhead.os&255),J.gzhead.extra&&J.gzhead.extra.length)x(J,J.gzhead.extra.length&255),x(J,J.gzhead.extra.length>>8&255);if(J.gzhead.hcrc)Q.adler=D(Q.adler,J.pending_buf,J.pending,0);J.gzindex=0,J.status=BJ}if(J.status===BJ){if(J.gzhead.extra){let G=J.pending,q=(J.gzhead.extra.length&65535)-J.gzindex;while(J.pending+q>J.pending_buf_size){let U=J.pending_buf_size-J.pending;if(J.pending_buf.set(J.gzhead.extra.subarray(J.gzindex,J.gzindex+U),J.pending),J.pending=J.pending_buf_size,J.gzhead.hcrc&&J.pending>G)Q.adler=D(Q.adler,J.pending_buf,J.pending-G,G);if(J.gzindex+=U,u(Q),J.pending!==0)return J.last_flush=-1,I;G=0,q-=U}let z=new Uint8Array(J.gzhead.extra);if(J.pending_buf.set(z.subarray(J.gzindex,J.gzindex+q),J.pending),J.pending+=q,J.gzhead.hcrc&&J.pending>G)Q.adler=D(Q.adler,J.pending_buf,J.pending-G,G);J.gzindex=0}J.status=CJ}if(J.status===CJ){if(J.gzhead.name){let G=J.pending,q;do{if(J.pending===J.pending_buf_size){if(J.gzhead.hcrc&&J.pending>G)Q.adler=D(Q.adler,J.pending_buf,J.pending-G,G);if(u(Q),J.pending!==0)return J.last_flush=-1,I;G=0}if(J.gzindex<J.gzhead.name.length)q=J.gzhead.name.charCodeAt(J.gzindex++)&255;else q=0;x(J,q)}while(q!==0);if(J.gzhead.hcrc&&J.pending>G)Q.adler=D(Q.adler,J.pending_buf,J.pending-G,G);J.gzindex=0}J.status=$J}if(J.status===$J){if(J.gzhead.comment){let G=J.pending,q;do{if(J.pending===J.pending_buf_size){if(J.gzhead.hcrc&&J.pending>G)Q.adler=D(Q.adler,J.pending_buf,J.pending-G,G);if(u(Q),J.pending!==0)return J.last_flush=-1,I;G=0}if(J.gzindex<J.gzhead.comment.length)q=J.gzhead.comment.charCodeAt(J.gzindex++)&255;else q=0;x(J,q)}while(q!==0);if(J.gzhead.hcrc&&J.pending>G)Q.adler=D(Q.adler,J.pending_buf,J.pending-G,G)}J.status=LJ}if(J.status===LJ){if(J.gzhead.hcrc){if(J.pending+2>J.pending_buf_size){if(u(Q),J.pending!==0)return J.last_flush=-1,I}x(J,Q.adler&255),x(J,Q.adler>>8&255),Q.adler=0}if(J.status=jQ,u(Q),J.pending!==0)return J.last_flush=-1,I}if(Q.avail_in!==0||J.lookahead!==0||W!==s&&J.status!==$Q){let G=J.level===0?T0(J,W):J.strategy===uQ?a5(J,W):J.strategy===y5?n5(J,W):LQ[J.level].func(J,W);if(G===XQ||G===BQ)J.status=$Q;if(G===b||G===XQ){if(Q.avail_out===0)J.last_flush=-1;return I}if(G===PQ){if(W===M5)O5(J);else if(W!==bJ){if(HJ(J,0,0,!1),W===w5){if(a(J.head),J.lookahead===0)J.strstart=0,J.block_start=0,J.insert=0}}if(u(Q),Q.avail_out===0)return J.last_flush=-1,I}}if(W!==c)return I;if(J.wrap<=0)return fJ;if(J.wrap===2)x(J,Q.adler&255),x(J,Q.adler>>8&255),x(J,Q.adler>>16&255),x(J,Q.adler>>24&255),x(J,Q.total_in&255),x(J,Q.total_in>>8&255),x(J,Q.total_in>>16&255),x(J,Q.total_in>>24&255);else CQ(J,Q.adler>>>16),CQ(J,Q.adler&65535);if(u(Q),J.wrap>0)J.wrap=-J.wrap;return J.pending!==0?I:fJ},W8=(Q)=>{if(DQ(Q))return l;let W=Q.state.status;return Q.state=null,W===jQ?qQ(Q,A5):I},j8=(Q,W)=>{let J=W.length;if(DQ(Q))return l;let j=Q.state,G=j.wrap;if(G===2||G===1&&j.status!==FQ||j.lookahead)return l;if(G===1)Q.adler=wQ(Q.adler,W,J,0);if(j.wrap=0,J>=j.w_size){if(G===0)a(j.head),j.strstart=0,j.block_start=0,j.insert=0;let Y=new Uint8Array(j.w_size);Y.set(W.subarray(J-j.w_size,J),0),W=Y,J=j.w_size}let{avail_in:q,next_in:z,input:U}=Q;Q.avail_in=J,Q.next_in=0,Q.input=W,ZQ(j);while(j.lookahead>=v){let Y=j.strstart,X=j.lookahead-(v-1);do j.ins_h=QQ(j,j.ins_h,j.window[Y+v-1]),j.prev[Y&j.w_mask]=j.head[j.ins_h],j.head[j.ins_h]=Y,Y++;while(--X);j.strstart=Y,j.lookahead=v-1,ZQ(j)}return j.strstart+=j.lookahead,j.block_start=j.strstart,j.insert=j.lookahead,j.lookahead=0,j.match_length=j.prev_length=v-1,j.match_available=0,Q.next_in=z,Q.input=U,Q.avail_in=q,j.wrap=G,I},q8=Q8,G8=E0,X8=D0,U8=y0,z8=s5,K8=J8,V8=W8,k8=j8,Y8="pako deflate (from Nodeca project)",vQ={deflateInit:q8,deflateInit2:G8,deflateReset:X8,deflateResetKeep:U8,deflateSetHeader:z8,deflate:K8,deflateEnd:V8,deflateSetDictionary:k8,deflateInfo:Y8},F8=(Q,W)=>{return Object.prototype.hasOwnProperty.call(Q,W)},Z8=function(Q){let W=Array.prototype.slice.call(arguments,1);while(W.length){let J=W.shift();if(!J)continue;if(typeof J!=="object")throw new TypeError(J+"must be non-object");for(let j in J)if(F8(J,j))Q[j]=J[j]}return Q},H8=(Q)=>{let W=0;for(let j=0,G=Q.length;j<G;j++)W+=Q[j].length;let J=new Uint8Array(W);for(let j=0,G=0,q=Q.length;j<q;j++){let z=Q[j];J.set(z,G),G+=z.length}return J},oQ={assign:Z8,flattenChunks:H8},I0=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(Q){I0=!1}var AQ=new Uint8Array(256);for(let Q=0;Q<256;Q++)AQ[Q]=Q>=252?6:Q>=248?5:Q>=240?4:Q>=224?3:Q>=192?2:1;AQ[254]=AQ[254]=1;var P8=(Q)=>{if(typeof TextEncoder==="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(Q);let W,J,j,G,q,z=Q.length,U=0;for(G=0;G<z;G++){if(J=Q.charCodeAt(G),(J&64512)===55296&&G+1<z){if(j=Q.charCodeAt(G+1),(j&64512)===56320)J=65536+(J-55296<<10)+(j-56320),G++}U+=J<128?1:J<2048?2:J<65536?3:4}W=new Uint8Array(U);for(q=0,G=0;q<U;G++){if(J=Q.charCodeAt(G),(J&64512)===55296&&G+1<z){if(j=Q.charCodeAt(G+1),(j&64512)===56320)J=65536+(J-55296<<10)+(j-56320),G++}if(J<128)W[q++]=J;else if(J<2048)W[q++]=192|J>>>6,W[q++]=128|J&63;else if(J<65536)W[q++]=224|J>>>12,W[q++]=128|J>>>6&63,W[q++]=128|J&63;else W[q++]=240|J>>>18,W[q++]=128|J>>>12&63,W[q++]=128|J>>>6&63,W[q++]=128|J&63}return W},B8=(Q,W)=>{if(W<65534){if(Q.subarray&&I0)return String.fromCharCode.apply(null,Q.length===W?Q:Q.subarray(0,W))}let J="";for(let j=0;j<W;j++)J+=String.fromCharCode(Q[j]);return J},C8=(Q,W)=>{let J=W||Q.length;if(typeof TextDecoder==="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(Q.subarray(0,W));let j,G,q=new Array(J*2);for(G=0,j=0;j<J;){let z=Q[j++];if(z<128){q[G++]=z;continue}let U=AQ[z];if(U>4){q[G++]=65533,j+=U-1;continue}z&=U===2?31:U===3?15:7;while(U>1&&j<J)z=z<<6|Q[j++]&63,U--;if(U>1){q[G++]=65533;continue}if(z<65536)q[G++]=z;else z-=65536,q[G++]=55296|z>>10&1023,q[G++]=56320|z&1023}return B8(q,G)},$8=(Q,W)=>{if(W=W||Q.length,W>Q.length)W=Q.length;let J=W-1;while(J>=0&&(Q[J]&192)===128)J--;if(J<0)return W;if(J===0)return W;return J+AQ[Q[J]]>W?J:W},SQ={string2buf:P8,buf2string:C8,utf8border:$8};function L8(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}var b0=L8,f0=Object.prototype.toString,{Z_NO_FLUSH:N8,Z_SYNC_FLUSH:v8,Z_FULL_FLUSH:g8,Z_FINISH:R8,Z_OK:_Q,Z_STREAM_END:x8,Z_DEFAULT_COMPRESSION:O8,Z_DEFAULT_STRATEGY:M8,Z_DEFLATED:w8}=zQ;function EQ(Q){this.options=oQ.assign({level:O8,method:w8,chunkSize:16384,windowBits:15,memLevel:8,strategy:M8},Q||{});let W=this.options;if(W.raw&&W.windowBits>0)W.windowBits=-W.windowBits;else if(W.gzip&&W.windowBits>0&&W.windowBits<16)W.windowBits+=16;this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new b0,this.strm.avail_out=0;let J=vQ.deflateInit2(this.strm,W.level,W.method,W.windowBits,W.memLevel,W.strategy);if(J!==_Q)throw new Error(GQ[J]);if(W.header)vQ.deflateSetHeader(this.strm,W.header);if(W.dictionary){let j;if(typeof W.dictionary==="string")j=SQ.string2buf(W.dictionary);else if(f0.call(W.dictionary)==="[object ArrayBuffer]")j=new Uint8Array(W.dictionary);else j=W.dictionary;if(J=vQ.deflateSetDictionary(this.strm,j),J!==_Q)throw new Error(GQ[J]);this._dict_set=!0}}EQ.prototype.push=function(Q,W){let J=this.strm,j=this.options.chunkSize,G,q;if(this.ended)return!1;if(W===~~W)q=W;else q=W===!0?R8:N8;if(typeof Q==="string")J.input=SQ.string2buf(Q);else if(f0.call(Q)==="[object ArrayBuffer]")J.input=new Uint8Array(Q);else J.input=Q;J.next_in=0,J.avail_in=J.input.length;for(;;){if(J.avail_out===0)J.output=new Uint8Array(j),J.next_out=0,J.avail_out=j;if((q===v8||q===g8)&&J.avail_out<=6){this.onData(J.output.subarray(0,J.next_out)),J.avail_out=0;continue}if(G=vQ.deflate(J,q),G===x8){if(J.next_out>0)this.onData(J.output.subarray(0,J.next_out));return G=vQ.deflateEnd(this.strm),this.onEnd(G),this.ended=!0,G===_Q}if(J.avail_out===0){this.onData(J.output);continue}if(q>0&&J.next_out>0){this.onData(J.output.subarray(0,J.next_out)),J.avail_out=0;continue}if(J.avail_in===0)break}return!0};EQ.prototype.onData=function(Q){this.chunks.push(Q)};EQ.prototype.onEnd=function(Q){if(Q===_Q)this.result=oQ.flattenChunks(this.chunks);this.chunks=[],this.err=Q,this.msg=this.strm.msg};function MJ(Q,W){let J=new EQ(W);if(J.push(Q,!0),J.err)throw J.msg||GQ[J.err];return J.result}function A8(Q,W){return W=W||{},W.raw=!0,MJ(Q,W)}function S8(Q,W){return W=W||{},W.gzip=!0,MJ(Q,W)}var T8=EQ,y8=MJ,D8=A8,E8=S8,I8=zQ,b8={Deflate:T8,deflate:y8,deflateRaw:D8,gzip:E8,constants:I8},hQ=16209,f8=16191,u8=function Q(W,J){let j,G,q,z,U,Y,X,K,P,k,V,Z,M,$,C,O,L,F,R,y,H,A,g,B,N=W.state;j=W.next_in,g=W.input,G=j+(W.avail_in-5),q=W.next_out,B=W.output,z=q-(J-W.avail_out),U=q+(W.avail_out-257),Y=N.dmax,X=N.wsize,K=N.whave,P=N.wnext,k=N.window,V=N.hold,Z=N.bits,M=N.lencode,$=N.distcode,C=(1<<N.lenbits)-1,O=(1<<N.distbits)-1;Q:do{if(Z<15)V+=g[j++]<<Z,Z+=8,V+=g[j++]<<Z,Z+=8;L=M[V&C];J:for(;;){if(F=L>>>24,V>>>=F,Z-=F,F=L>>>16&255,F===0)B[q++]=L&65535;else if(F&16){if(R=L&65535,F&=15,F){if(Z<F)V+=g[j++]<<Z,Z+=8;R+=V&(1<<F)-1,V>>>=F,Z-=F}if(Z<15)V+=g[j++]<<Z,Z+=8,V+=g[j++]<<Z,Z+=8;L=$[V&O];W:for(;;){if(F=L>>>24,V>>>=F,Z-=F,F=L>>>16&255,F&16){if(y=L&65535,F&=15,Z<F){if(V+=g[j++]<<Z,Z+=8,Z<F)V+=g[j++]<<Z,Z+=8}if(y+=V&(1<<F)-1,y>Y){W.msg="invalid distance too far back",N.mode=hQ;break Q}if(V>>>=F,Z-=F,F=q-z,y>F){if(F=y-F,F>K){if(N.sane){W.msg="invalid distance too far back",N.mode=hQ;break Q}}if(H=0,A=k,P===0){if(H+=X-F,F<R){R-=F;do B[q++]=k[H++];while(--F);H=q-y,A=B}}else if(P<F){if(H+=X+P-F,F-=P,F<R){R-=F;do B[q++]=k[H++];while(--F);if(H=0,P<R){F=P,R-=F;do B[q++]=k[H++];while(--F);H=q-y,A=B}}}else if(H+=P-F,F<R){R-=F;do B[q++]=k[H++];while(--F);H=q-y,A=B}while(R>2)B[q++]=A[H++],B[q++]=A[H++],B[q++]=A[H++],R-=3;if(R){if(B[q++]=A[H++],R>1)B[q++]=A[H++]}}else{H=q-y;do B[q++]=B[H++],B[q++]=B[H++],B[q++]=B[H++],R-=3;while(R>2);if(R){if(B[q++]=B[H++],R>1)B[q++]=B[H++]}}}else if((F&64)===0){L=$[(L&65535)+(V&(1<<F)-1)];continue W}else{W.msg="invalid distance code",N.mode=hQ;break Q}break}}else if((F&64)===0){L=M[(L&65535)+(V&(1<<F)-1)];continue J}else if(F&32){N.mode=f8;break Q}else{W.msg="invalid literal/length code",N.mode=hQ;break Q}break}}while(j<G&&q<U);R=Z>>3,j-=R,Z-=R<<3,V&=(1<<Z)-1,W.next_in=j,W.next_out=q,W.avail_in=j<G?5+(G-j):5-(j-G),W.avail_out=q<U?257+(U-q):257-(q-U),N.hold=V,N.bits=Z;return},kQ=15,hJ=852,cJ=592,mJ=0,GJ=1,dJ=2,h8=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),c8=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78]),m8=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),d8=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]),p8=(Q,W,J,j,G,q,z,U)=>{let Y=U.bits,X=0,K=0,P=0,k=0,V=0,Z=0,M=0,$=0,C=0,O=0,L,F,R,y,H,A=null,g,B=new Uint16Array(kQ+1),N=new Uint16Array(kQ+1),JQ=null,AJ,bQ,fQ;for(X=0;X<=kQ;X++)B[X]=0;for(K=0;K<j;K++)B[W[J+K]]++;V=Y;for(k=kQ;k>=1;k--)if(B[k]!==0)break;if(V>k)V=k;if(k===0)return G[q++]=20971520,G[q++]=20971520,U.bits=1,0;for(P=1;P<k;P++)if(B[P]!==0)break;if(V<P)V=P;$=1;for(X=1;X<=kQ;X++)if($<<=1,$-=B[X],$<0)return-1;if($>0&&(Q===mJ||k!==1))return-1;N[1]=0;for(X=1;X<kQ;X++)N[X+1]=N[X]+B[X];for(K=0;K<j;K++)if(W[J+K]!==0)z[N[W[J+K]]++]=K;if(Q===mJ)A=JQ=z,g=20;else if(Q===GJ)A=h8,JQ=c8,g=257;else A=m8,JQ=d8,g=0;if(O=0,K=0,X=P,H=q,Z=V,M=0,R=-1,C=1<<V,y=C-1,Q===GJ&&C>hJ||Q===dJ&&C>cJ)return 1;for(;;){if(AJ=X-M,z[K]+1<g)bQ=0,fQ=z[K];else if(z[K]>=g)bQ=JQ[z[K]-g],fQ=A[z[K]-g];else bQ=96,fQ=0;L=1<<X-M,F=1<<Z,P=F;do F-=L,G[H+(O>>M)+F]=AJ<<24|bQ<<16|fQ|0;while(F!==0);L=1<<X-1;while(O&L)L>>=1;if(L!==0)O&=L-1,O+=L;else O=0;if(K++,--B[X]===0){if(X===k)break;X=W[J+z[K]]}if(X>V&&(O&y)!==R){if(M===0)M=V;H+=P,Z=X-M,$=1<<Z;while(Z+M<k){if($-=B[Z+M],$<=0)break;Z++,$<<=1}if(C+=1<<Z,Q===GJ&&C>hJ||Q===dJ&&C>cJ)return 1;R=O&y,G[R]=V<<24|Z<<16|H-q|0}}if(O!==0)G[H+O]=X-M<<24|4194304|0;return U.bits=V,0},gQ=p8,l8=0,u0=1,h0=2,{Z_FINISH:pJ,Z_BLOCK:_8,Z_TREES:cQ,Z_OK:UQ,Z_STREAM_END:i8,Z_NEED_DICT:r8,Z_STREAM_ERROR:m,Z_DATA_ERROR:c0,Z_MEM_ERROR:m0,Z_BUF_ERROR:o8,Z_DEFLATED:lJ}=zQ,nQ=16180,_J=16181,iJ=16182,rJ=16183,oJ=16184,nJ=16185,aJ=16186,eJ=16187,tJ=16188,sJ=16189,iQ=16190,i=16191,XJ=16192,Q0=16193,UJ=16194,J0=16195,W0=16196,j0=16197,q0=16198,mQ=16199,dQ=16200,G0=16201,X0=16202,U0=16203,z0=16204,K0=16205,zJ=16206,V0=16207,k0=16208,S=16209,d0=16210,p0=16211,n8=852,a8=592,e8=15,t8=e8,Y0=(Q)=>{return(Q>>>24&255)+(Q>>>8&65280)+((Q&65280)<<8)+((Q&255)<<24)};function s8(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}var KQ=(Q)=>{if(!Q)return 1;let W=Q.state;if(!W||W.strm!==Q||W.mode<nQ||W.mode>p0)return 1;return 0},l0=(Q)=>{if(KQ(Q))return m;let W=Q.state;if(Q.total_in=Q.total_out=W.total=0,Q.msg="",W.wrap)Q.adler=W.wrap&1;return W.mode=nQ,W.last=0,W.havedict=0,W.flags=-1,W.dmax=32768,W.head=null,W.hold=0,W.bits=0,W.lencode=W.lendyn=new Int32Array(n8),W.distcode=W.distdyn=new Int32Array(a8),W.sane=1,W.back=-1,UQ},_0=(Q)=>{if(KQ(Q))return m;let W=Q.state;return W.wsize=0,W.whave=0,W.wnext=0,l0(Q)},i0=(Q,W)=>{let J;if(KQ(Q))return m;let j=Q.state;if(W<0)J=0,W=-W;else if(J=(W>>4)+5,W<48)W&=15;if(W&&(W<8||W>15))return m;if(j.window!==null&&j.wbits!==W)j.window=null;return j.wrap=J,j.wbits=W,_0(Q)},r0=(Q,W)=>{if(!Q)return m;let J=new s8;Q.state=J,J.strm=Q,J.window=null,J.mode=nQ;let j=i0(Q,W);if(j!==UQ)Q.state=null;return j},Q1=(Q)=>{return r0(Q,t8)},F0=!0,KJ,VJ,J1=(Q)=>{if(F0){KJ=new Int32Array(512),VJ=new Int32Array(32);let W=0;while(W<144)Q.lens[W++]=8;while(W<256)Q.lens[W++]=9;while(W<280)Q.lens[W++]=7;while(W<288)Q.lens[W++]=8;gQ(u0,Q.lens,0,288,KJ,0,Q.work,{bits:9}),W=0;while(W<32)Q.lens[W++]=5;gQ(h0,Q.lens,0,32,VJ,0,Q.work,{bits:5}),F0=!1}Q.lencode=KJ,Q.lenbits=9,Q.distcode=VJ,Q.distbits=5},o0=(Q,W,J,j)=>{let G,q=Q.state;if(q.window===null)q.wsize=1<<q.wbits,q.wnext=0,q.whave=0,q.window=new Uint8Array(q.wsize);if(j>=q.wsize)q.window.set(W.subarray(J-q.wsize,J),0),q.wnext=0,q.whave=q.wsize;else{if(G=q.wsize-q.wnext,G>j)G=j;if(q.window.set(W.subarray(J-j,J-j+G),q.wnext),j-=G,j)q.window.set(W.subarray(J-j,J),0),q.wnext=j,q.whave=q.wsize;else{if(q.wnext+=G,q.wnext===q.wsize)q.wnext=0;if(q.whave<q.wsize)q.whave+=G}}return 0},W1=(Q,W)=>{let J,j,G,q,z,U,Y,X,K,P,k,V,Z,M,$=0,C,O,L,F,R,y,H,A,g=new Uint8Array(4),B,N,JQ=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(KQ(Q)||!Q.output||!Q.input&&Q.avail_in!==0)return m;if(J=Q.state,J.mode===i)J.mode=XJ;z=Q.next_out,G=Q.output,Y=Q.avail_out,q=Q.next_in,j=Q.input,U=Q.avail_in,X=J.hold,K=J.bits,P=U,k=Y,A=UQ;Q:for(;;)switch(J.mode){case nQ:if(J.wrap===0){J.mode=XJ;break}while(K<16){if(U===0)break Q;U--,X+=j[q++]<<K,K+=8}if(J.wrap&2&&X===35615){if(J.wbits===0)J.wbits=15;J.check=0,g[0]=X&255,g[1]=X>>>8&255,J.check=D(J.check,g,2,0),X=0,K=0,J.mode=_J;break}if(J.head)J.head.done=!1;if(!(J.wrap&1)||(((X&255)<<8)+(X>>8))%31){Q.msg="incorrect header check",J.mode=S;break}if((X&15)!==lJ){Q.msg="unknown compression method",J.mode=S;break}if(X>>>=4,K-=4,H=(X&15)+8,J.wbits===0)J.wbits=H;if(H>15||H>J.wbits){Q.msg="invalid window size",J.mode=S;break}J.dmax=1<<J.wbits,J.flags=0,Q.adler=J.check=1,J.mode=X&512?sJ:i,X=0,K=0;break;case _J:while(K<16){if(U===0)break Q;U--,X+=j[q++]<<K,K+=8}if(J.flags=X,(J.flags&255)!==lJ){Q.msg="unknown compression method",J.mode=S;break}if(J.flags&57344){Q.msg="unknown header flags set",J.mode=S;break}if(J.head)J.head.text=X>>8&1;if(J.flags&512&&J.wrap&4)g[0]=X&255,g[1]=X>>>8&255,J.check=D(J.check,g,2,0);X=0,K=0,J.mode=iJ;case iJ:while(K<32){if(U===0)break Q;U--,X+=j[q++]<<K,K+=8}if(J.head)J.head.time=X;if(J.flags&512&&J.wrap&4)g[0]=X&255,g[1]=X>>>8&255,g[2]=X>>>16&255,g[3]=X>>>24&255,J.check=D(J.check,g,4,0);X=0,K=0,J.mode=rJ;case rJ:while(K<16){if(U===0)break Q;U--,X+=j[q++]<<K,K+=8}if(J.head)J.head.xflags=X&255,J.head.os=X>>8;if(J.flags&512&&J.wrap&4)g[0]=X&255,g[1]=X>>>8&255,J.check=D(J.check,g,2,0);X=0,K=0,J.mode=oJ;case oJ:if(J.flags&1024){while(K<16){if(U===0)break Q;U--,X+=j[q++]<<K,K+=8}if(J.length=X,J.head)J.head.extra_len=X;if(J.flags&512&&J.wrap&4)g[0]=X&255,g[1]=X>>>8&255,J.check=D(J.check,g,2,0);X=0,K=0}else if(J.head)J.head.extra=null;J.mode=nJ;case nJ:if(J.flags&1024){if(V=J.length,V>U)V=U;if(V){if(J.head){if(H=J.head.extra_len-J.length,!J.head.extra)J.head.extra=new Uint8Array(J.head.extra_len);J.head.extra.set(j.subarray(q,q+V),H)}if(J.flags&512&&J.wrap&4)J.check=D(J.check,j,V,q);U-=V,q+=V,J.length-=V}if(J.length)break Q}J.length=0,J.mode=aJ;case aJ:if(J.flags&2048){if(U===0)break Q;V=0;do if(H=j[q+V++],J.head&&H&&J.length<65536)J.head.name+=String.fromCharCode(H);while(H&&V<U);if(J.flags&512&&J.wrap&4)J.check=D(J.check,j,V,q);if(U-=V,q+=V,H)break Q}else if(J.head)J.head.name=null;J.length=0,J.mode=eJ;case eJ:if(J.flags&4096){if(U===0)break Q;V=0;do if(H=j[q+V++],J.head&&H&&J.length<65536)J.head.comment+=String.fromCharCode(H);while(H&&V<U);if(J.flags&512&&J.wrap&4)J.check=D(J.check,j,V,q);if(U-=V,q+=V,H)break Q}else if(J.head)J.head.comment=null;J.mode=tJ;case tJ:if(J.flags&512){while(K<16){if(U===0)break Q;U--,X+=j[q++]<<K,K+=8}if(J.wrap&4&&X!==(J.check&65535)){Q.msg="header crc mismatch",J.mode=S;break}X=0,K=0}if(J.head)J.head.hcrc=J.flags>>9&1,J.head.done=!0;Q.adler=J.check=0,J.mode=i;break;case sJ:while(K<32){if(U===0)break Q;U--,X+=j[q++]<<K,K+=8}Q.adler=J.check=Y0(X),X=0,K=0,J.mode=iQ;case iQ:if(J.havedict===0)return Q.next_out=z,Q.avail_out=Y,Q.next_in=q,Q.avail_in=U,J.hold=X,J.bits=K,r8;Q.adler=J.check=1,J.mode=i;case i:if(W===_8||W===cQ)break Q;case XJ:if(J.last){X>>>=K&7,K-=K&7,J.mode=zJ;break}while(K<3){if(U===0)break Q;U--,X+=j[q++]<<K,K+=8}switch(J.last=X&1,X>>>=1,K-=1,X&3){case 0:J.mode=Q0;break;case 1:if(J1(J),J.mode=mQ,W===cQ){X>>>=2,K-=2;break Q}break;case 2:J.mode=W0;break;case 3:Q.msg="invalid block type",J.mode=S}X>>>=2,K-=2;break;case Q0:X>>>=K&7,K-=K&7;while(K<32){if(U===0)break Q;U--,X+=j[q++]<<K,K+=8}if((X&65535)!==(X>>>16^65535)){Q.msg="invalid stored block lengths",J.mode=S;break}if(J.length=X&65535,X=0,K=0,J.mode=UJ,W===cQ)break Q;case UJ:J.mode=J0;case J0:if(V=J.length,V){if(V>U)V=U;if(V>Y)V=Y;if(V===0)break Q;G.set(j.subarray(q,q+V),z),U-=V,q+=V,Y-=V,z+=V,J.length-=V;break}J.mode=i;break;case W0:while(K<14){if(U===0)break Q;U--,X+=j[q++]<<K,K+=8}if(J.nlen=(X&31)+257,X>>>=5,K-=5,J.ndist=(X&31)+1,X>>>=5,K-=5,J.ncode=(X&15)+4,X>>>=4,K-=4,J.nlen>286||J.ndist>30){Q.msg="too many length or distance symbols",J.mode=S;break}J.have=0,J.mode=j0;case j0:while(J.have<J.ncode){while(K<3){if(U===0)break Q;U--,X+=j[q++]<<K,K+=8}J.lens[JQ[J.have++]]=X&7,X>>>=3,K-=3}while(J.have<19)J.lens[JQ[J.have++]]=0;if(J.lencode=J.lendyn,J.lenbits=7,B={bits:J.lenbits},A=gQ(l8,J.lens,0,19,J.lencode,0,J.work,B),J.lenbits=B.bits,A){Q.msg="invalid code lengths set",J.mode=S;break}J.have=0,J.mode=q0;case q0:while(J.have<J.nlen+J.ndist){for(;;){if($=J.lencode[X&(1<<J.lenbits)-1],C=$>>>24,O=$>>>16&255,L=$&65535,C<=K)break;if(U===0)break Q;U--,X+=j[q++]<<K,K+=8}if(L<16)X>>>=C,K-=C,J.lens[J.have++]=L;else{if(L===16){N=C+2;while(K<N){if(U===0)break Q;U--,X+=j[q++]<<K,K+=8}if(X>>>=C,K-=C,J.have===0){Q.msg="invalid bit length repeat",J.mode=S;break}H=J.lens[J.have-1],V=3+(X&3),X>>>=2,K-=2}else if(L===17){N=C+3;while(K<N){if(U===0)break Q;U--,X+=j[q++]<<K,K+=8}X>>>=C,K-=C,H=0,V=3+(X&7),X>>>=3,K-=3}else{N=C+7;while(K<N){if(U===0)break Q;U--,X+=j[q++]<<K,K+=8}X>>>=C,K-=C,H=0,V=11+(X&127),X>>>=7,K-=7}if(J.have+V>J.nlen+J.ndist){Q.msg="invalid bit length repeat",J.mode=S;break}while(V--)J.lens[J.have++]=H}}if(J.mode===S)break;if(J.lens[256]===0){Q.msg="invalid code -- missing end-of-block",J.mode=S;break}if(J.lenbits=9,B={bits:J.lenbits},A=gQ(u0,J.lens,0,J.nlen,J.lencode,0,J.work,B),J.lenbits=B.bits,A){Q.msg="invalid literal/lengths set",J.mode=S;break}if(J.distbits=6,J.distcode=J.distdyn,B={bits:J.distbits},A=gQ(h0,J.lens,J.nlen,J.ndist,J.distcode,0,J.work,B),J.distbits=B.bits,A){Q.msg="invalid distances set",J.mode=S;break}if(J.mode=mQ,W===cQ)break Q;case mQ:J.mode=dQ;case dQ:if(U>=6&&Y>=258){if(Q.next_out=z,Q.avail_out=Y,Q.next_in=q,Q.avail_in=U,J.hold=X,J.bits=K,u8(Q,k),z=Q.next_out,G=Q.output,Y=Q.avail_out,q=Q.next_in,j=Q.input,U=Q.avail_in,X=J.hold,K=J.bits,J.mode===i)J.back=-1;break}J.back=0;for(;;){if($=J.lencode[X&(1<<J.lenbits)-1],C=$>>>24,O=$>>>16&255,L=$&65535,C<=K)break;if(U===0)break Q;U--,X+=j[q++]<<K,K+=8}if(O&&(O&240)===0){F=C,R=O,y=L;for(;;){if($=J.lencode[y+((X&(1<<F+R)-1)>>F)],C=$>>>24,O=$>>>16&255,L=$&65535,F+C<=K)break;if(U===0)break Q;U--,X+=j[q++]<<K,K+=8}X>>>=F,K-=F,J.back+=F}if(X>>>=C,K-=C,J.back+=C,J.length=L,O===0){J.mode=K0;break}if(O&32){J.back=-1,J.mode=i;break}if(O&64){Q.msg="invalid literal/length code",J.mode=S;break}J.extra=O&15,J.mode=G0;case G0:if(J.extra){N=J.extra;while(K<N){if(U===0)break Q;U--,X+=j[q++]<<K,K+=8}J.length+=X&(1<<J.extra)-1,X>>>=J.extra,K-=J.extra,J.back+=J.extra}J.was=J.length,J.mode=X0;case X0:for(;;){if($=J.distcode[X&(1<<J.distbits)-1],C=$>>>24,O=$>>>16&255,L=$&65535,C<=K)break;if(U===0)break Q;U--,X+=j[q++]<<K,K+=8}if((O&240)===0){F=C,R=O,y=L;for(;;){if($=J.distcode[y+((X&(1<<F+R)-1)>>F)],C=$>>>24,O=$>>>16&255,L=$&65535,F+C<=K)break;if(U===0)break Q;U--,X+=j[q++]<<K,K+=8}X>>>=F,K-=F,J.back+=F}if(X>>>=C,K-=C,J.back+=C,O&64){Q.msg="invalid distance code",J.mode=S;break}J.offset=L,J.extra=O&15,J.mode=U0;case U0:if(J.extra){N=J.extra;while(K<N){if(U===0)break Q;U--,X+=j[q++]<<K,K+=8}J.offset+=X&(1<<J.extra)-1,X>>>=J.extra,K-=J.extra,J.back+=J.extra}if(J.offset>J.dmax){Q.msg="invalid distance too far back",J.mode=S;break}J.mode=z0;case z0:if(Y===0)break Q;if(V=k-Y,J.offset>V){if(V=J.offset-V,V>J.whave){if(J.sane){Q.msg="invalid distance too far back",J.mode=S;break}}if(V>J.wnext)V-=J.wnext,Z=J.wsize-V;else Z=J.wnext-V;if(V>J.length)V=J.length;M=J.window}else M=G,Z=z-J.offset,V=J.length;if(V>Y)V=Y;Y-=V,J.length-=V;do G[z++]=M[Z++];while(--V);if(J.length===0)J.mode=dQ;break;case K0:if(Y===0)break Q;G[z++]=J.length,Y--,J.mode=dQ;break;case zJ:if(J.wrap){while(K<32){if(U===0)break Q;U--,X|=j[q++]<<K,K+=8}if(k-=Y,Q.total_out+=k,J.total+=k,J.wrap&4&&k)Q.adler=J.check=J.flags?D(J.check,G,k,z-k):wQ(J.check,G,k,z-k);if(k=Y,J.wrap&4&&(J.flags?X:Y0(X))!==J.check){Q.msg="incorrect data check",J.mode=S;break}X=0,K=0}J.mode=V0;case V0:if(J.wrap&&J.flags){while(K<32){if(U===0)break Q;U--,X+=j[q++]<<K,K+=8}if(J.wrap&4&&X!==(J.total&4294967295)){Q.msg="incorrect length check",J.mode=S;break}X=0,K=0}J.mode=k0;case k0:A=i8;break Q;case S:A=c0;break Q;case d0:return m0;case p0:default:return m}if(Q.next_out=z,Q.avail_out=Y,Q.next_in=q,Q.avail_in=U,J.hold=X,J.bits=K,J.wsize||k!==Q.avail_out&&J.mode<S&&(J.mode<zJ||W!==pJ)){if(o0(Q,Q.output,Q.next_out,k-Q.avail_out));}if(P-=Q.avail_in,k-=Q.avail_out,Q.total_in+=P,Q.total_out+=k,J.total+=k,J.wrap&4&&k)Q.adler=J.check=J.flags?D(J.check,G,k,Q.next_out-k):wQ(J.check,G,k,Q.next_out-k);if(Q.data_type=J.bits+(J.last?64:0)+(J.mode===i?128:0)+(J.mode===mQ||J.mode===UJ?256:0),(P===0&&k===0||W===pJ)&&A===UQ)A=o8;return A},j1=(Q)=>{if(KQ(Q))return m;let W=Q.state;if(W.window)W.window=null;return Q.state=null,UQ},q1=(Q,W)=>{if(KQ(Q))return m;let J=Q.state;if((J.wrap&2)===0)return m;return J.head=W,W.done=!1,UQ},G1=(Q,W)=>{let J=W.length,j,G,q;if(KQ(Q))return m;if(j=Q.state,j.wrap!==0&&j.mode!==iQ)return m;if(j.mode===iQ){if(G=1,G=wQ(G,W,J,0),G!==j.check)return c0}if(q=o0(Q,W,J,J),q)return j.mode=d0,m0;return j.havedict=1,UQ},X1=_0,U1=i0,z1=l0,K1=Q1,V1=r0,k1=W1,Y1=j1,F1=q1,Z1=G1,H1="pako inflate (from Nodeca project)",o={inflateReset:X1,inflateReset2:U1,inflateResetKeep:z1,inflateInit:K1,inflateInit2:V1,inflate:k1,inflateEnd:Y1,inflateGetHeader:F1,inflateSetDictionary:Z1,inflateInfo:H1};function P1(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}var B1=P1,n0=Object.prototype.toString,{Z_NO_FLUSH:C1,Z_FINISH:$1,Z_OK:TQ,Z_STREAM_END:kJ,Z_NEED_DICT:YJ,Z_STREAM_ERROR:L1,Z_DATA_ERROR:Z0,Z_MEM_ERROR:N1}=zQ;function IQ(Q){this.options=oQ.assign({chunkSize:65536,windowBits:15,to:""},Q||{});let W=this.options;if(W.raw&&W.windowBits>=0&&W.windowBits<16){if(W.windowBits=-W.windowBits,W.windowBits===0)W.windowBits=-15}if(W.windowBits>=0&&W.windowBits<16&&!(Q&&Q.windowBits))W.windowBits+=32;if(W.windowBits>15&&W.windowBits<48){if((W.windowBits&15)===0)W.windowBits|=15}this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new b0,this.strm.avail_out=0;let J=o.inflateInit2(this.strm,W.windowBits);if(J!==TQ)throw new Error(GQ[J]);if(this.header=new B1,o.inflateGetHeader(this.strm,this.header),W.dictionary){if(typeof W.dictionary==="string")W.dictionary=SQ.string2buf(W.dictionary);else if(n0.call(W.dictionary)==="[object ArrayBuffer]")W.dictionary=new Uint8Array(W.dictionary);if(W.raw){if(J=o.inflateSetDictionary(this.strm,W.dictionary),J!==TQ)throw new Error(GQ[J])}}}IQ.prototype.push=function(Q,W){let J=this.strm,j=this.options.chunkSize,G=this.options.dictionary,q,z,U;if(this.ended)return!1;if(W===~~W)z=W;else z=W===!0?$1:C1;if(n0.call(Q)==="[object ArrayBuffer]")J.input=new Uint8Array(Q);else J.input=Q;J.next_in=0,J.avail_in=J.input.length;for(;;){if(J.avail_out===0)J.output=new Uint8Array(j),J.next_out=0,J.avail_out=j;if(q=o.inflate(J,z),q===YJ&&G){if(q=o.inflateSetDictionary(J,G),q===TQ)q=o.inflate(J,z);else if(q===Z0)q=YJ}while(J.avail_in>0&&q===kJ&&J.state.wrap>0&&Q[J.next_in]!==0)o.inflateReset(J),q=o.inflate(J,z);switch(q){case L1:case Z0:case YJ:case N1:return this.onEnd(q),this.ended=!0,!1}if(U=J.avail_out,J.next_out){if(J.avail_out===0||q===kJ)if(this.options.to==="string"){let Y=SQ.utf8border(J.output,J.next_out),X=J.next_out-Y,K=SQ.buf2string(J.output,Y);if(J.next_out=X,J.avail_out=j-X,X)J.output.set(J.output.subarray(Y,Y+X),0);this.onData(K)}else this.onData(J.output.length===J.next_out?J.output:J.output.subarray(0,J.next_out))}if(q===TQ&&U===0)continue;if(q===kJ)return q=o.inflateEnd(this.strm),this.onEnd(q),this.ended=!0,!0;if(J.avail_in===0)break}return!0};IQ.prototype.onData=function(Q){this.chunks.push(Q)};IQ.prototype.onEnd=function(Q){if(Q===TQ)if(this.options.to==="string")this.result=this.chunks.join("");else this.result=oQ.flattenChunks(this.chunks);this.chunks=[],this.err=Q,this.msg=this.strm.msg};function wJ(Q,W){let J=new IQ(W);if(J.push(Q),J.err)throw J.msg||GQ[J.err];return J.result}function v1(Q,W){return W=W||{},W.raw=!0,wJ(Q,W)}var g1=IQ,R1=wJ,x1=v1,O1=wJ,M1=zQ,w1={Inflate:g1,inflate:R1,inflateRaw:x1,ungzip:O1,constants:M1},{Deflate:A1,deflate:S1,deflateRaw:T1,gzip:y1}=b8,{Inflate:D1,inflate:E1,inflateRaw:I1,ungzip:b1}=w1,f1=A1,u1=S1,h1=T1,c1=y1,m1=D1,d1=E1,p1=I1,l1=b1,_1=zQ,aQ={Deflate:f1,deflate:u1,deflateRaw:h1,gzip:c1,Inflate:m1,inflate:d1,inflateRaw:p1,ungzip:l1,constants:_1};class w{static version="4.1.0";static logger=new eQ;icons=new Map;name="failed-to-find-vyi-name";formatVersion=1;constructor(Q){if(w.logger.registerType("Vyi-module","#ff6600"),Q)this.parse(Q)}parse(Q){if(!Q)return this;try{let W;if(typeof Q==="string")try{W=JSON.parse(Q)}catch(J){if(!Q.includes(".vyr")&&!Q.includes(".vyi")){if(W=Q,!W)throw new Error("Non vyi data found from binary string")}else try{W=JSON.parse(Q)}catch(j){if(typeof window==="undefined")W=this.readFileAndGetVYI(Q);else throw new Error("Invalid string input - not valid JSON or file path")}}else if(Q instanceof w)W=Q.export();else if(Q instanceof Object&&!Array.isArray(Q)&&!(Q instanceof ArrayBuffer||Q instanceof Uint8Array))W=Q;else if(Q instanceof ArrayBuffer||Q instanceof Uint8Array)W=this.handleBinaryData(Q);else throw new Error("Error processing: Invalid input type provided.");if(!W||(!W.v||!W.i)&&!W.icons)throw new Error("Non vyi data found.");this.processVyiData(W)}catch(W){w.logger.prefix("Vyi-module").error(\`\${W.message}\`)}return this}readFile(Q){try{let J=new TextEncoder().encode(Q),j=aQ.inflate(J,{to:"string"});return JSON.parse(j)}catch(W){return console.error("File reading failed:",W),null}}readFileAndGetVYI(Q){let J=(()=>({})).readFileSync(Q);return this.handleBinaryData(J)}async fetchAndParseJSON(Q){try{return await(await fetch(Q)).json()}catch(W){throw new Error(\`Failed to fetch or parse JSON from URL: \${W}\`)}}handleBinaryData(Q){let W=Q instanceof ArrayBuffer?new Uint8Array(Q):Q;try{let J=aQ.inflate(W,{to:"string"});if(!J)return null;return JSON.parse(J)}catch(J){try{let j=new TextDecoder().decode(W);if(!j)return null;return JSON.parse(j)}catch(j){return console.error("Decoding failed:",j),null}}}processVyiData(Q){this.icons.clear();let W=Q.i||Q.icons;if(this.formatVersion=Q.v??"format not found",Array.isArray(W))W.forEach((J)=>{if(!Array.isArray(J)&&typeof J==="object"){let j=this.convertOldIconData(J);this.addIcon(j)}else this.addIcon(J)});else w.logger.prefix("Vyi-module").error("Invalid .vyi file! Cannot parse icons.")}convertOldIconData(Q){let W=Array.isArray(Q.frames)?Q.frames.map((j)=>[j.data,j.delay]):[],J=Array.isArray(Q.states)?Q.states.map((j)=>{let G=Array.isArray(j.frames)?j.frames.map((q)=>[q.data,q.delay]):[];return[j.name,j.data,j.delay||100,G]}):[];return[Q.name||"",Q.w||32,Q.h||32,Q.delay||100,Q.data||"",W,J]}addIcon(Q){if(!Q){w.logger.prefix("Vyi-module").error("No icon data passed!");return}if(!(Q instanceof T)&&!Array.isArray(Q)){w.logger.prefix("Vyi-module").error("Invalid icon data type passed!");return}let W=Q instanceof T?Q:new T(Q);return this.icons.set(W.id,W),W.setVyi(this),W}removeIcon(Q){if(!Q)return;if(Q instanceof T){if(this.icons.delete(Q.id))Q.removeVyi()}}removeIconByName(Q){let W=this.getIcon(Q);if(W)this.removeIcon(W)}removeIconById(Q){let W=this.getIconById(Q);if(W)this.removeIcon(W)}getIconNames(){return this.getIcons().map((W)=>W.name)}getIcon(Q){if(typeof Q==="string"){let W=this.getIcons();for(let J=W.length-1;J>=0;J--){let j=W[J];if(j.getName()===Q)return j}}else w.logger.prefix("Vyi-module").error("Invalid name type used!")}getIconCount(){return this.icons.size}getIconById(Q){if(!Q)return;return this.icons.get(Q)||this.getIcons().find((J)=>J.states.has(Q))?.getStateById(Q)}getIcons(){return Array.from(this.icons.values())}rename(Q){if(typeof Q==="string")this.name=Q;else w.logger.prefix("Vyi-module").error("Invalid name type used!")}getName(){return this.name}export(Q){let W={v:this.formatVersion,i:this.getIcons().map((J)=>J.export())};if(Q){let J=new TextEncoder().encode(JSON.stringify(W));return aQ.deflate(J)}return W}}self.onmessage=function(Q){let{id:W,type:J,data:j}=Q.data;try{if(J==="parse"){let q=new w(j).export();self.postMessage({id:W,success:!0,data:q})}}catch(G){let q=G instanceof Error?G.message:"Unknown error";console.error("Worker error:",G),self.postMessage({id:W,success:!1,error:q})}};
9531
- `;
9532
- var WORKER_BLOB = new Blob([WORKER_CODE], { type: "application/javascript" });
9533
- var WORKER_SCRIPT_URL = URL.createObjectURL(WORKER_BLOB);
9432
+ function createSupportsColor(stream, options = {}) {
9433
+ const level = _supportsColor(stream, {
9434
+ streamIsTTY: stream && stream.isTTY,
9435
+ ...options
9436
+ });
9437
+ return translateLevel(level);
9438
+ }
9439
+ var supportsColor = {
9440
+ stdout: createSupportsColor({ isTTY: tty.isatty(1) }),
9441
+ stderr: createSupportsColor({ isTTY: tty.isatty(2) })
9442
+ };
9443
+ var supports_color_default = supportsColor;
9534
9444
 
9535
- class WorkerPool {
9536
- static instance = null;
9537
- workers = [];
9538
- availableWorkers = [];
9539
- maxWorkers;
9540
- messageId = 0;
9541
- pendingMessages = new Map;
9542
- waitQueue = [];
9543
- constructor(maxWorkers = navigator.hardwareConcurrency || 4) {
9544
- this.maxWorkers = maxWorkers;
9545
- this.initializeWorkers();
9445
+ // node_modules/chalk/source/utilities.js
9446
+ function stringReplaceAll(string, substring, replacer) {
9447
+ let index = string.indexOf(substring);
9448
+ if (index === -1) {
9449
+ return string;
9450
+ }
9451
+ const substringLength = substring.length;
9452
+ let endIndex = 0;
9453
+ let returnValue = "";
9454
+ do {
9455
+ returnValue += string.slice(endIndex, index) + substring + replacer;
9456
+ endIndex = index + substringLength;
9457
+ index = string.indexOf(substring, endIndex);
9458
+ } while (index !== -1);
9459
+ returnValue += string.slice(endIndex);
9460
+ return returnValue;
9461
+ }
9462
+ function stringEncaseCRLFWithFirstIndex(string, prefix, postfix, index) {
9463
+ let endIndex = 0;
9464
+ let returnValue = "";
9465
+ do {
9466
+ const gotCR = string[index - 1] === "\r";
9467
+ returnValue += string.slice(endIndex, gotCR ? index - 1 : index) + prefix + (gotCR ? `\r
9468
+ ` : `
9469
+ `) + postfix;
9470
+ endIndex = index + 1;
9471
+ index = string.indexOf(`
9472
+ `, endIndex);
9473
+ } while (index !== -1);
9474
+ returnValue += string.slice(endIndex);
9475
+ return returnValue;
9476
+ }
9477
+
9478
+ // node_modules/chalk/source/index.js
9479
+ var { stdout: stdoutColor, stderr: stderrColor } = supports_color_default;
9480
+ var GENERATOR = Symbol("GENERATOR");
9481
+ var STYLER = Symbol("STYLER");
9482
+ var IS_EMPTY = Symbol("IS_EMPTY");
9483
+ var levelMapping = [
9484
+ "ansi",
9485
+ "ansi",
9486
+ "ansi256",
9487
+ "ansi16m"
9488
+ ];
9489
+ var styles2 = Object.create(null);
9490
+ var applyOptions = (object, options = {}) => {
9491
+ if (options.level && !(Number.isInteger(options.level) && options.level >= 0 && options.level <= 3)) {
9492
+ throw new Error("The `level` option should be an integer from 0 to 3");
9546
9493
  }
9547
- static getInstance(maxWorkers) {
9548
- if (!WorkerPool.instance) {
9549
- WorkerPool.instance = new WorkerPool(maxWorkers);
9494
+ const colorLevel = stdoutColor ? stdoutColor.level : 0;
9495
+ object.level = options.level === undefined ? colorLevel : options.level;
9496
+ };
9497
+ var chalkFactory = (options) => {
9498
+ const chalk = (...strings2) => strings2.join(" ");
9499
+ applyOptions(chalk, options);
9500
+ Object.setPrototypeOf(chalk, createChalk.prototype);
9501
+ return chalk;
9502
+ };
9503
+ function createChalk(options) {
9504
+ return chalkFactory(options);
9505
+ }
9506
+ Object.setPrototypeOf(createChalk.prototype, Function.prototype);
9507
+ for (const [styleName, style] of Object.entries(ansi_styles_default)) {
9508
+ styles2[styleName] = {
9509
+ get() {
9510
+ const builder = createBuilder(this, createStyler(style.open, style.close, this[STYLER]), this[IS_EMPTY]);
9511
+ Object.defineProperty(this, styleName, { value: builder });
9512
+ return builder;
9550
9513
  }
9551
- return WorkerPool.instance;
9514
+ };
9515
+ }
9516
+ styles2.visible = {
9517
+ get() {
9518
+ const builder = createBuilder(this, this[STYLER], true);
9519
+ Object.defineProperty(this, "visible", { value: builder });
9520
+ return builder;
9552
9521
  }
9553
- static destroy() {
9554
- if (WorkerPool.instance) {
9555
- WorkerPool.instance.terminate();
9556
- WorkerPool.instance = null;
9522
+ };
9523
+ var getModelAnsi = (model, level, type, ...arguments_) => {
9524
+ if (model === "rgb") {
9525
+ if (level === "ansi16m") {
9526
+ return ansi_styles_default[type].ansi16m(...arguments_);
9557
9527
  }
9558
- }
9559
- initializeWorkers() {
9560
- for (let i = 0;i < this.maxWorkers; i++) {
9561
- const worker = this.createWorker();
9562
- this.workers.push(worker);
9563
- this.availableWorkers.push(worker);
9528
+ if (level === "ansi256") {
9529
+ return ansi_styles_default[type].ansi256(ansi_styles_default.rgbToAnsi256(...arguments_));
9564
9530
  }
9531
+ return ansi_styles_default[type].ansi(ansi_styles_default.rgbToAnsi(...arguments_));
9565
9532
  }
9566
- createWorker() {
9567
- const worker = new Worker(WORKER_SCRIPT_URL, { type: "module" });
9568
- worker.onmessage = (event) => {
9569
- const { id, success, data, error } = event.data;
9570
- const pending = this.pendingMessages.get(id);
9571
- if (pending) {
9572
- this.pendingMessages.delete(id);
9573
- if (success) {
9574
- pending.resolve(data);
9575
- } else {
9576
- pending.reject(new Error(error));
9577
- }
9578
- }
9579
- };
9580
- worker.onerror = (error) => {
9581
- console.error("Worker error:", error);
9582
- for (const [id, pending] of this.pendingMessages) {
9583
- pending.reject(new Error(`Worker error: ${error.message}`));
9584
- }
9585
- this.pendingMessages.clear();
9586
- };
9587
- return worker;
9533
+ if (model === "hex") {
9534
+ return getModelAnsi("rgb", level, type, ...ansi_styles_default.hexToRgb(...arguments_));
9588
9535
  }
9589
- async getWorker() {
9590
- if (this.availableWorkers.length > 0) {
9591
- return this.availableWorkers.pop();
9536
+ return ansi_styles_default[type][model](...arguments_);
9537
+ };
9538
+ var usedModels = ["rgb", "hex", "ansi256"];
9539
+ for (const model of usedModels) {
9540
+ styles2[model] = {
9541
+ get() {
9542
+ const { level } = this;
9543
+ return function(...arguments_) {
9544
+ const styler = createStyler(getModelAnsi(model, levelMapping[level], "color", ...arguments_), ansi_styles_default.color.close, this[STYLER]);
9545
+ return createBuilder(this, styler, this[IS_EMPTY]);
9546
+ };
9592
9547
  }
9593
- if (this.workers.length === 0) {
9594
- throw new Error("Workers have been terminated. Create a new VyiWorker instance to continue.");
9548
+ };
9549
+ const bgModel = "bg" + model[0].toUpperCase() + model.slice(1);
9550
+ styles2[bgModel] = {
9551
+ get() {
9552
+ const { level } = this;
9553
+ return function(...arguments_) {
9554
+ const styler = createStyler(getModelAnsi(model, levelMapping[level], "bgColor", ...arguments_), ansi_styles_default.bgColor.close, this[STYLER]);
9555
+ return createBuilder(this, styler, this[IS_EMPTY]);
9556
+ };
9595
9557
  }
9596
- return new Promise((resolve3) => {
9597
- this.waitQueue.push(resolve3);
9598
- });
9599
- }
9600
- returnWorker(worker) {
9601
- if (this.waitQueue.length > 0) {
9602
- const resolve3 = this.waitQueue.shift();
9603
- resolve3(worker);
9604
- } else if (this.workers.includes(worker)) {
9605
- this.availableWorkers.push(worker);
9558
+ };
9559
+ }
9560
+ var proto = Object.defineProperties(() => {
9561
+ }, {
9562
+ ...styles2,
9563
+ level: {
9564
+ enumerable: true,
9565
+ get() {
9566
+ return this[GENERATOR].level;
9567
+ },
9568
+ set(level) {
9569
+ this[GENERATOR].level = level;
9606
9570
  }
9607
9571
  }
9608
- async sendMessage(worker, type, data) {
9609
- const id = `${this.messageId++}`;
9610
- return new Promise((resolve3, reject) => {
9611
- this.pendingMessages.set(id, { resolve: resolve3, reject });
9612
- worker.postMessage({ id, type, data });
9613
- setTimeout(() => {
9614
- if (this.pendingMessages.has(id)) {
9615
- this.pendingMessages.delete(id);
9616
- reject(new Error("Worker message timeout"));
9617
- }
9618
- }, 30000);
9619
- });
9572
+ });
9573
+ var createStyler = (open2, close, parent) => {
9574
+ let openAll;
9575
+ let closeAll;
9576
+ if (parent === undefined) {
9577
+ openAll = open2;
9578
+ closeAll = close;
9579
+ } else {
9580
+ openAll = parent.openAll + open2;
9581
+ closeAll = close + parent.closeAll;
9620
9582
  }
9621
- terminate() {
9622
- for (const worker of this.workers) {
9623
- worker.terminate();
9624
- }
9625
- this.workers = [];
9626
- this.availableWorkers = [];
9627
- for (const [id, pending] of this.pendingMessages) {
9628
- pending.reject(new Error("Worker terminated"));
9583
+ return {
9584
+ open: open2,
9585
+ close,
9586
+ openAll,
9587
+ closeAll,
9588
+ parent
9589
+ };
9590
+ };
9591
+ var createBuilder = (self, _styler, _isEmpty) => {
9592
+ const builder = (...arguments_) => applyStyle(builder, arguments_.length === 1 ? "" + arguments_[0] : arguments_.join(" "));
9593
+ Object.setPrototypeOf(builder, proto);
9594
+ builder[GENERATOR] = self;
9595
+ builder[STYLER] = _styler;
9596
+ builder[IS_EMPTY] = _isEmpty;
9597
+ return builder;
9598
+ };
9599
+ var applyStyle = (self, string) => {
9600
+ if (self.level <= 0 || !string) {
9601
+ return self[IS_EMPTY] ? "" : string;
9602
+ }
9603
+ let styler = self[STYLER];
9604
+ if (styler === undefined) {
9605
+ return string;
9606
+ }
9607
+ const { openAll, closeAll } = styler;
9608
+ if (string.includes("\x1B")) {
9609
+ while (styler !== undefined) {
9610
+ string = stringReplaceAll(string, styler.close, styler.open);
9611
+ styler = styler.parent;
9629
9612
  }
9630
- this.pendingMessages.clear();
9631
9613
  }
9632
- }
9614
+ const lfIndex = string.indexOf(`
9615
+ `);
9616
+ if (lfIndex !== -1) {
9617
+ string = stringEncaseCRLFWithFirstIndex(string, closeAll, openAll, lfIndex);
9618
+ }
9619
+ return openAll + string + closeAll;
9620
+ };
9621
+ Object.defineProperties(createChalk.prototype, styles2);
9622
+ var chalk = createChalk();
9623
+ var chalkStderr = createChalk({ level: stderrColor ? stderrColor.level : 0 });
9624
+ var source_default = chalk;
9633
9625
 
9634
9626
  // src/cli/app-bundler.ts
9635
- import { promises as fs, existsSync } from "fs";
9636
- import { join as join3, dirname as dirname3, extname as extname2 } from "path";
9637
9627
  var Bun2 = globalThis.Bun;
9628
+
9629
+ // src/cli/theme.ts
9630
+ var theme = {
9631
+ brand: source_default.hex("#10B981"),
9632
+ brandBold: source_default.bold.hex("#10B981"),
9633
+ brandLight: source_default.hex("#34D399"),
9634
+ brandMuted: source_default.hex("#059669"),
9635
+ accent: source_default.bold.hex("#2DD4BF"),
9636
+ success: source_default.bold.hex("#10B981"),
9637
+ successIcon: source_default.bold.hex("#34D399"),
9638
+ warning: source_default.bold.hex("#FBBF24"),
9639
+ warningMuted: source_default.hex("#FCD34D"),
9640
+ error: source_default.bold.hex("#F43F5E"),
9641
+ errorText: source_default.hex("#FB7185"),
9642
+ info: source_default.hex("#38BDF8"),
9643
+ infoBold: source_default.bold.hex("#38BDF8"),
9644
+ alert: source_default.bold.hex("#FBBF24"),
9645
+ title: source_default.bold.white,
9646
+ text: source_default.hex("#F1F5F9"),
9647
+ secondary: source_default.hex("#94A3B8"),
9648
+ muted: source_default.hex("#64748B"),
9649
+ highlight: source_default.bold.hex("#F8FAFC"),
9650
+ url: source_default.bold.hex("#38BDF8").underline,
9651
+ bracket: source_default.hex("#64748B"),
9652
+ divider: source_default.hex("#334155"),
9653
+ bullet: source_default.hex("#10B981")("\u203A"),
9654
+ stepNumber: source_default.bold.hex("#10B981"),
9655
+ white: source_default.white,
9656
+ whiteBold: source_default.white.bold,
9657
+ dim: source_default.hex("#94A3B8"),
9658
+ gray: source_default.hex("#94A3B8")
9659
+ };
9660
+
9661
+ // src/cli/app-bundler.ts
9638
9662
  function detectArchitecture(pSrcDir) {
9639
9663
  const hasClientEntry = existsSync(join3(pSrcDir, "client", "index.ts"));
9640
9664
  const hasServerEntry = existsSync(join3(pSrcDir, "server", "index.ts"));
@@ -9727,6 +9751,7 @@ async function bundleApp(pProjectRoot, pOutDir, pOptions = {}) {
9727
9751
  const startStamp = Date.now();
9728
9752
  const clientResult = await Bun2.build({
9729
9753
  entrypoints: [join3(srcDir, "index.ts")],
9754
+ root: pProjectRoot,
9730
9755
  naming: {
9731
9756
  entry: "index.[ext]",
9732
9757
  chunk: "[name]-[hash].[ext]",
@@ -9740,7 +9765,21 @@ async function bundleApp(pProjectRoot, pOutDir, pOptions = {}) {
9740
9765
  identifiers: shouldObfuscate,
9741
9766
  syntax: true,
9742
9767
  whitespace: true
9743
- } : false
9768
+ } : false,
9769
+ plugins: [
9770
+ {
9771
+ name: "kit-project-resolver",
9772
+ setup(build) {
9773
+ build.onResolve({ filter: /^resource\.json$/ }, () => {
9774
+ const resourcePath = resolve3(pProjectRoot, "resource.json");
9775
+ if (existsSync(resourcePath)) {
9776
+ return { path: resourcePath };
9777
+ }
9778
+ return;
9779
+ });
9780
+ }
9781
+ }
9782
+ ]
9744
9783
  });
9745
9784
  if (!clientResult.success) {
9746
9785
  console.error(clientResult.logs);
@@ -9757,7 +9796,7 @@ async function bundleApp(pProjectRoot, pOutDir, pOptions = {}) {
9757
9796
  }
9758
9797
  const elapsed = Date.now() - startStamp;
9759
9798
  if (isVerbose) {
9760
- console.log(source_default.hex("#ffa552")(`[Kit CLI] Singleplayer Client Build took: ${elapsed}ms`));
9799
+ console.log(theme.info(`[Kit CLI] Singleplayer Client Build took: ${elapsed}ms`));
9761
9800
  }
9762
9801
  return { architecture: "single", clientBuildTime: elapsed, success: true };
9763
9802
  }
@@ -9770,6 +9809,7 @@ async function bundleApp(pProjectRoot, pOutDir, pOptions = {}) {
9770
9809
  const clientStart = Date.now();
9771
9810
  const clientResult = await Bun2.build({
9772
9811
  entrypoints: [clientEntry],
9812
+ root: pProjectRoot,
9773
9813
  naming: {
9774
9814
  entry: "index.[ext]",
9775
9815
  chunk: "[name]-[hash].[ext]",
@@ -9783,7 +9823,21 @@ async function bundleApp(pProjectRoot, pOutDir, pOptions = {}) {
9783
9823
  identifiers: shouldObfuscate,
9784
9824
  syntax: true,
9785
9825
  whitespace: true
9786
- } : false
9826
+ } : false,
9827
+ plugins: [
9828
+ {
9829
+ name: "kit-project-resolver",
9830
+ setup(build) {
9831
+ build.onResolve({ filter: /^resource\.json$/ }, () => {
9832
+ const resourcePath = resolve3(pProjectRoot, "resource.json");
9833
+ if (existsSync(resourcePath)) {
9834
+ return { path: resourcePath };
9835
+ }
9836
+ return;
9837
+ });
9838
+ }
9839
+ }
9840
+ ]
9787
9841
  });
9788
9842
  if (!clientResult.success) {
9789
9843
  console.error(clientResult.logs);
@@ -9801,6 +9855,7 @@ async function bundleApp(pProjectRoot, pOutDir, pOptions = {}) {
9801
9855
  const serverStart = Date.now();
9802
9856
  const serverResult = await Bun2.build({
9803
9857
  entrypoints: [serverEntry],
9858
+ root: pProjectRoot,
9804
9859
  naming: {
9805
9860
  entry: "server.[ext]",
9806
9861
  chunk: "[name]-[hash].[ext]",
@@ -9814,7 +9869,21 @@ async function bundleApp(pProjectRoot, pOutDir, pOptions = {}) {
9814
9869
  identifiers: shouldObfuscate,
9815
9870
  syntax: true,
9816
9871
  whitespace: true
9817
- } : false
9872
+ } : false,
9873
+ plugins: [
9874
+ {
9875
+ name: "kit-project-resolver",
9876
+ setup(build) {
9877
+ build.onResolve({ filter: /^resource\.json$/ }, () => {
9878
+ const resourcePath = resolve3(pProjectRoot, "resource.json");
9879
+ if (existsSync(resourcePath)) {
9880
+ return { path: resourcePath };
9881
+ }
9882
+ return;
9883
+ });
9884
+ }
9885
+ }
9886
+ ]
9818
9887
  });
9819
9888
  if (!serverResult.success) {
9820
9889
  console.error(serverResult.logs);
@@ -9832,10 +9901,10 @@ async function bundleApp(pProjectRoot, pOutDir, pOptions = {}) {
9832
9901
  }
9833
9902
  if (isVerbose) {
9834
9903
  if (clientElapsed) {
9835
- console.log(source_default.hex("#ffa552")(`[Kit CLI] Multiplayer Client Build took: ${clientElapsed}ms`));
9904
+ console.log(theme.info(`[Kit CLI] Multiplayer Client Build took: ${clientElapsed}ms`));
9836
9905
  }
9837
9906
  if (serverElapsed) {
9838
- console.log(source_default.hex("#ffa552")(`[Kit CLI] Multiplayer Server Build took: ${serverElapsed}ms`));
9907
+ console.log(theme.info(`[Kit CLI] Multiplayer Server Build took: ${serverElapsed}ms`));
9839
9908
  }
9840
9909
  }
9841
9910
  return {
@@ -9847,16 +9916,21 @@ async function bundleApp(pProjectRoot, pOutDir, pOptions = {}) {
9847
9916
  }
9848
9917
  return { architecture: "none", success: true };
9849
9918
  } catch (pError) {
9850
- console.error(source_default.hex("#c42847")(`[Kit CLI Build Error] ${pError}`));
9919
+ console.error(theme.error(`[Kit CLI Build Error] ${pError}`));
9920
+ if (pError?.logs) {
9921
+ console.error(pError.logs);
9922
+ } else if (pError?.errors) {
9923
+ console.error(pError.errors);
9924
+ }
9851
9925
  return { architecture, success: false };
9852
9926
  }
9853
9927
  }
9854
9928
 
9855
9929
  // src/cli/resource-builder.ts
9856
9930
  var log = console.log;
9857
- var info = source_default.hex("#ffa552");
9858
- var error = source_default.hex("#c42847");
9859
- var alert = source_default.hex("#EFF2C0");
9931
+ var info = theme.info;
9932
+ var error = theme.error;
9933
+ var alert = theme.alert;
9860
9934
  var RESOURCE_TYPES = ["interface", "icon", "map", "sound", "macros"];
9861
9935
  var VALID_EXTENSIONS = ["vyint", "vyi", "vym", "vymac", "mp3", "aac", "wav", "m4a", "ogg", "flac"];
9862
9936
  var resourceJSON = initializeResourceJSON();
@@ -9913,7 +9987,7 @@ async function processDirectory(pDirectoryPath) {
9913
9987
  const contents = await fs2.readdir(pDirectoryPath);
9914
9988
  for (const item of contents) {
9915
9989
  const itemPath = join4(pDirectoryPath, item);
9916
- if (resolve3(itemPath) === resourceOutDirectory) {
9990
+ if (resolve4(itemPath) === resourceOutDirectory) {
9917
9991
  continue;
9918
9992
  }
9919
9993
  const stats = await fs2.stat(itemPath);
@@ -10145,10 +10219,12 @@ async function clearResourceTypeDirectories(pBaseDirectory) {
10145
10219
  try {
10146
10220
  const directoryExists = await fs2.stat(pBaseDirectory).then((stat4) => stat4.isDirectory()).catch(() => false);
10147
10221
  if (directoryExists) {
10148
- await fs2.rm(pBaseDirectory, { recursive: true });
10222
+ await fs2.rm(pBaseDirectory, { recursive: true, force: true });
10149
10223
  }
10150
10224
  } catch (pError) {
10151
- log(`${error(`[Error]`)} clearing resource directory: ${pError}`);
10225
+ if (pError?.code !== "ENOENT") {
10226
+ log(`${error(`[Error]`)} clearing resource directory: ${pError}`);
10227
+ }
10152
10228
  }
10153
10229
  }
10154
10230
  async function copyFile(pSource, pDestinationDir, pNewName) {
@@ -10206,9 +10282,9 @@ async function runWatch() {
10206
10282
  if (shouldBundleApp && existsSync2(srcDir) && srcDir !== resourceInDirectory) {
10207
10283
  pathsToWatch.push(srcDir);
10208
10284
  }
10209
- const displayPaths = pathsToWatch.map((p) => source_default.bold(relative3(projectRootDirectory, p) || p)).join(", ");
10210
- console.log(source_default.cyan(`
10211
- Watching for changes in: ${displayPaths}`));
10285
+ const displayPaths = pathsToWatch.map((p) => theme.highlight(relative3(projectRootDirectory, p) || p)).join(", ");
10286
+ console.log(`
10287
+ ${theme.brandBold("Watching for changes in:")} ${displayPaths}`);
10212
10288
  let debounceTimer = null;
10213
10289
  let isRebuilding = false;
10214
10290
  let queuedChange = null;
@@ -10222,8 +10298,8 @@ Watching for changes in: ${displayPaths}`));
10222
10298
  }
10223
10299
  isRebuilding = true;
10224
10300
  try {
10225
- console.log(source_default.dim(`
10226
- File changed: ${pFilename}, rebuilding...`));
10301
+ console.log(`
10302
+ ${theme.accent("\u203A")} ${theme.title("File changed:")} ${theme.highlight(pFilename)} ${theme.secondary("(rebuilding...)")}`);
10227
10303
  await runBuild();
10228
10304
  } finally {
10229
10305
  isRebuilding = false;
@@ -10260,7 +10336,7 @@ File changed: ${pFilename}, rebuilding...`));
10260
10336
  try {
10261
10337
  const stats = await fs2.stat(pFilePath);
10262
10338
  if (stats.isFile()) {
10263
- fileStats.set(resolve3(pFilePath), { mtime: stats.mtimeMs, size: stats.size });
10339
+ fileStats.set(resolve4(pFilePath), { mtime: stats.mtimeMs, size: stats.size });
10264
10340
  }
10265
10341
  } catch {
10266
10342
  }
@@ -10295,7 +10371,7 @@ File changed: ${pFilename}, rebuilding...`));
10295
10371
  watcher.on("all", async (event, filePath) => {
10296
10372
  if (event === "addDir" || event === "unlinkDir")
10297
10373
  return;
10298
- const absPath = resolve3(filePath);
10374
+ const absPath = resolve4(filePath);
10299
10375
  if (event === "unlink") {
10300
10376
  fileStats.delete(absPath);
10301
10377
  const relativePath2 = relative3(projectRootDirectory, filePath).replace(/\\/g, "/");
@@ -10322,8 +10398,8 @@ async function processResources({ inDirectory, outDirectory, manifestPath, watch
10322
10398
  projectRootDirectory = process.cwd();
10323
10399
  const resolvedIn = inDirectory || (existsSync2(join4(projectRootDirectory, "src", "resources")) ? "src/resources" : "");
10324
10400
  const resolvedOut = outDirectory || "dist";
10325
- resourceInDirectory = resolvedIn ? resolve3(resolvedIn) : "";
10326
- resourceOutDirectory = resolvedOut ? resolve3(resolvedOut) : "";
10401
+ resourceInDirectory = resolvedIn ? resolve4(resolvedIn) : "";
10402
+ resourceOutDirectory = resolvedOut ? resolve4(resolvedOut) : "";
10327
10403
  customManifestPath = manifestPath;
10328
10404
  isVerbose = verbose;
10329
10405
  ignoringSound = ignoreSound;
@@ -11410,7 +11486,7 @@ import os2 from "os";
11410
11486
  // package.json
11411
11487
  var package_default = {
11412
11488
  name: "@evitcastudio/kit",
11413
- version: "3.3.1",
11489
+ version: "3.4.0",
11414
11490
  author: "doubleactii 56242467+doubleactii@users.noreply.github.com (https://evitcastudio.com)",
11415
11491
  main: "./lib/index.js",
11416
11492
  types: "./lib/index.d.ts",
@@ -11420,6 +11496,10 @@ var package_default = {
11420
11496
  ".": {
11421
11497
  import: "./lib/index.js",
11422
11498
  types: "./lib/index.d.ts"
11499
+ },
11500
+ "./camera": {
11501
+ import: "./lib/plugins/camera/index.js",
11502
+ types: "./lib/plugins/camera/index.d.ts"
11423
11503
  }
11424
11504
  },
11425
11505
  description: "A single-player/multiplayer framework for the Vylocity Game Engine.",
@@ -11470,6 +11550,7 @@ var package_default = {
11470
11550
  },
11471
11551
  dependencies: {
11472
11552
  "@clack/prompts": "^1.1.0",
11553
+ "@evitcastudio/lens": "^4.3.0",
11473
11554
  chalk: "^5.4.0",
11474
11555
  chokidar: "^5.0.0",
11475
11556
  commander: "^12.1.0",
@@ -11497,6 +11578,8 @@ function getGitUser() {
11497
11578
  }
11498
11579
  }
11499
11580
  function checkBun() {
11581
+ if (typeof Bun !== "undefined")
11582
+ return true;
11500
11583
  const result = spawnSync("bun", ["--version"], { stdio: "ignore", shell: true });
11501
11584
  return !result.error && result.status === 0;
11502
11585
  }
@@ -11540,16 +11623,16 @@ function copyTemplate(pSrc, pDest, pProjectName, pVersion, pAuthor) {
11540
11623
  }
11541
11624
  }
11542
11625
  async function processInit(pOptions) {
11543
- Wt2(source_default.cyan(`Kit CLI v${package_default.version}`));
11626
+ Wt2(theme.brand(`Kit CLI v${package_default.version}`));
11544
11627
  if (!checkBun()) {
11545
11628
  Vt2(`Kit requires the Bun runtime to build and run projects.
11546
- You can download it manually at ${source_default.cyan("https://bun.sh/")}`, "Bun Not Found");
11629
+ You can download it manually at ${theme.brand("https://bun.sh/")}`, "Bun Not Found");
11547
11630
  const install = await Rt({
11548
11631
  message: "Would you like to install Bun automatically now?",
11549
11632
  initialValue: true
11550
11633
  });
11551
11634
  if (Ct(install) || !install) {
11552
- Nt(`Please install Bun manually to use Kit: ${source_default.cyan("https://bun.sh/")}
11635
+ Nt(`Please install Bun manually to use Kit: ${theme.brand("https://bun.sh/")}
11553
11636
  Note: Kit projects cannot build or run without Bun.`);
11554
11637
  process.exit(1);
11555
11638
  }
@@ -11558,7 +11641,7 @@ Note: Kit projects cannot build or run without Bun.`);
11558
11641
  const success = installBun();
11559
11642
  if (!success) {
11560
11643
  sInstall.stop(source_default.red("Automatic installation failed."));
11561
- Vt2(`Please install Bun manually: ${source_default.cyan("https://bun.sh/")}`, "Manual Installation Required");
11644
+ Vt2(`Please install Bun manually: ${theme.brand("https://bun.sh/")}`, "Manual Installation Required");
11562
11645
  process.exit(1);
11563
11646
  }
11564
11647
  sInstall.stop();
@@ -11617,7 +11700,7 @@ Note: Kit projects cannot build or run without Bun.`);
11617
11700
  if (fs3.existsSync(projectDir)) {
11618
11701
  if (isInteractive) {
11619
11702
  const overwrite = await Rt({
11620
- message: `Directory ${source_default.cyan(projectName)} already exists. Overwrite?`,
11703
+ message: `Directory ${theme.brand(projectName)} already exists. Overwrite?`,
11621
11704
  initialValue: false
11622
11705
  });
11623
11706
  if (Ct(overwrite) || !overwrite) {
@@ -11631,7 +11714,7 @@ Error: Destination directory '${projectName}' already exists. Use --force (-f) t
11631
11714
  }
11632
11715
  }
11633
11716
  const s = be();
11634
- s.start(`Scaffolding ${source_default.cyan(projectName)}...`);
11717
+ s.start(`Scaffolding ${theme.brand(projectName)}...`);
11635
11718
  try {
11636
11719
  const projectPath = path.join(process.cwd(), projectName);
11637
11720
  if (fs3.existsSync(projectPath)) {
@@ -11668,24 +11751,24 @@ Error: Destination directory '${projectName}' already exists. Use --force (-f) t
11668
11751
  installSpinner.start("Installing project dependencies with Bun...");
11669
11752
  const installResult = spawnSync("bun", ["install"], { cwd: projectPath, stdio: "ignore", shell: true });
11670
11753
  if (installResult.status === 0) {
11671
- installSpinner.stop(source_default.green("Dependencies installed successfully!"));
11754
+ installSpinner.stop(theme.success("Dependencies installed successfully!"));
11672
11755
  } else {
11673
- installSpinner.stop(source_default.yellow("Dependency installation finished with warnings."));
11756
+ installSpinner.stop(theme.warning("Dependency installation finished with warnings."));
11674
11757
  }
11675
11758
  }
11676
- console.log(`${source_default.cyan("\u2502")}`);
11677
- console.log(`${source_default.cyan("\u2502")} ${source_default.white.bold("Next steps:")}`);
11678
- console.log(`${source_default.cyan("\u2502")} ${source_default.dim("1.")} cd ${source_default.cyan(projectName)}`);
11759
+ console.log(`${theme.brand("\u2502")}`);
11760
+ console.log(`${theme.brand("\u2502")} ${theme.title("Next steps:")}`);
11761
+ console.log(`${theme.brand("\u2502")} ${theme.stepNumber("1.")} cd ${theme.brandBold(projectName)}`);
11679
11762
  if (!shouldInstall) {
11680
- console.log(`${source_default.cyan("\u2502")} ${source_default.dim("2.")} bun install`);
11681
- console.log(`${source_default.cyan("\u2502")} ${source_default.dim("3.")} bun run build`);
11763
+ console.log(`${theme.brand("\u2502")} ${theme.stepNumber("2.")} bun install`);
11764
+ console.log(`${theme.brand("\u2502")} ${theme.stepNumber("3.")} bun run build`);
11682
11765
  } else {
11683
- console.log(`${source_default.cyan("\u2502")} ${source_default.dim("2.")} bun run build`);
11766
+ console.log(`${theme.brand("\u2502")} ${theme.stepNumber("2.")} bun run build`);
11684
11767
  }
11685
- console.log(`${source_default.cyan("\u2502")}`);
11686
- Gt(source_default.green.bold("Happy coding!"));
11768
+ console.log(`${theme.brand("\u2502")}`);
11769
+ Gt(theme.brandBold("Happy coding!"));
11687
11770
  } catch (pError) {
11688
- s.stop(source_default.red("Scaffolding failed."));
11771
+ s.stop(theme.error("Scaffolding failed."));
11689
11772
  if (projectName) {
11690
11773
  const projectPath = path.join(process.cwd(), projectName);
11691
11774
  if (fs3.existsSync(projectPath)) {
@@ -11699,29 +11782,38 @@ Error: Destination directory '${projectName}' already exists. Use --force (-f) t
11699
11782
 
11700
11783
  // src/cli/doctor.ts
11701
11784
  import { spawnSync as spawnSync2 } from "child_process";
11702
- import { existsSync as existsSync3, readFileSync } from "fs";
11785
+ import { existsSync as existsSync3, readdirSync, readFileSync } from "fs";
11703
11786
  import { join as join5 } from "path";
11704
11787
  async function processDoctor(pOptions = {}) {
11705
11788
  const isVerbose2 = Boolean(pOptions.verbose);
11706
11789
  const results = [];
11707
11790
  console.log(`
11708
- ${source_default.cyan.bold("Kit Doctor")} ${source_default.dim("-")} Environment & Project Health Check
11791
+ ${theme.brandBold("Kit Doctor")} ${source_default.dim("-")} Environment & Project Health Check
11709
11792
  `);
11710
- const bunCheck = spawnSync2("bun", ["--version"], { encoding: "utf8", shell: true });
11711
- if (!bunCheck.error && bunCheck.status === 0) {
11793
+ if (typeof Bun !== "undefined") {
11712
11794
  results.push({
11713
11795
  category: "Runtime",
11714
11796
  title: "Bun Runtime",
11715
11797
  passed: true,
11716
- details: `Installed version v${bunCheck.stdout.trim()}`
11798
+ details: `v${Bun.version}`
11717
11799
  });
11718
11800
  } else {
11719
- results.push({
11720
- category: "Runtime",
11721
- title: "Bun Runtime",
11722
- passed: false,
11723
- details: "Bun is not installed or not in PATH. Download at https://bun.sh/"
11724
- });
11801
+ const bunCheck = spawnSync2("bun", ["--version"], { encoding: "utf8", shell: true });
11802
+ if (!bunCheck.error && bunCheck.status === 0) {
11803
+ results.push({
11804
+ category: "Runtime",
11805
+ title: "Bun Runtime",
11806
+ passed: true,
11807
+ details: `v${bunCheck.stdout.trim()}`
11808
+ });
11809
+ } else {
11810
+ results.push({
11811
+ category: "Runtime",
11812
+ title: "Bun Runtime",
11813
+ passed: false,
11814
+ details: "Bun is not installed or not in PATH. Download at https://bun.sh/"
11815
+ });
11816
+ }
11725
11817
  }
11726
11818
  const gitCheck = spawnSync2("git", ["--version"], { encoding: "utf8", shell: true });
11727
11819
  if (!gitCheck.error && gitCheck.status === 0) {
@@ -11746,28 +11838,44 @@ async function processDoctor(pOptions = {}) {
11746
11838
  try {
11747
11839
  const rawPkg = readFileSync(pkgPath, "utf8");
11748
11840
  const pkg = JSON.parse(rawPkg);
11749
- const hasKitDependency = Boolean(pkg.dependencies && pkg.dependencies["@evitcastudio/kit"] || pkg.devDependencies && pkg.devDependencies["@evitcastudio/kit"] || pkg.name === "@evitcastudio/kit");
11841
+ const isKitCoreRepo = pkg.name === "@evitcastudio/kit";
11842
+ const kitVersionSpec = pkg.dependencies?.["@evitcastudio/kit"] || pkg.devDependencies?.["@evitcastudio/kit"];
11843
+ const hasKitDependency = Boolean(kitVersionSpec || isKitCoreRepo);
11750
11844
  results.push({
11751
11845
  category: "Project",
11752
11846
  title: "package.json configuration",
11753
11847
  passed: true,
11754
- details: `Project name: ${pkg.name || "unnamed"}`
11848
+ details: `${pkg.name || "unnamed"}${pkg.version ? ` v${pkg.version}` : ""}`
11755
11849
  });
11850
+ let kitDependencyDetails = "Missing @evitcastudio/kit dependency in package.json";
11851
+ if (isKitCoreRepo) {
11852
+ kitDependencyDetails = "Core Framework Repository";
11853
+ } else if (kitVersionSpec) {
11854
+ kitDependencyDetails = `@evitcastudio/kit: ${kitVersionSpec}`;
11855
+ }
11756
11856
  results.push({
11757
11857
  category: "Project",
11758
11858
  title: "Kit framework dependency",
11759
11859
  passed: hasKitDependency,
11760
- details: hasKitDependency ? "Found @evitcastudio/kit in project configuration" : "Missing @evitcastudio/kit dependency in package.json"
11860
+ details: kitDependencyDetails
11761
11861
  });
11762
- const isKitCoreRepo = pkg.name === "@evitcastudio/kit";
11763
11862
  if (!isKitCoreRepo) {
11764
11863
  const resourcesDir = join5(cwd, "src", "resources");
11765
11864
  const hasResources = existsSync3(resourcesDir);
11865
+ let assetDetails = "src/resources directory not found";
11866
+ if (hasResources) {
11867
+ try {
11868
+ const items = readdirSync(resourcesDir, { recursive: true });
11869
+ assetDetails = `Ready (${items.length} asset${items.length === 1 ? "" : "s"})`;
11870
+ } catch {
11871
+ assetDetails = "Asset directory present";
11872
+ }
11873
+ }
11766
11874
  results.push({
11767
11875
  category: "Project",
11768
11876
  title: "Asset Directory (src/resources)",
11769
11877
  passed: hasResources,
11770
- details: hasResources ? "Asset directory present" : "src/resources not found"
11878
+ details: assetDetails
11771
11879
  });
11772
11880
  }
11773
11881
  const hasClientEntry = existsSync3(join5(cwd, "src", "client", "index.ts"));
@@ -11811,11 +11919,11 @@ async function processDoctor(pOptions = {}) {
11811
11919
  const buildPipelinePassed = hasBuildScript || hasKitBuildScript;
11812
11920
  let buildDetails = "No build pipeline configured";
11813
11921
  if (hasKitBuildScript && hasBuildScript) {
11814
- buildDetails = "Kit CLI build pipeline with bun-build.ts present";
11922
+ buildDetails = 'Native CLI build ("kit build") + bun-build.ts';
11815
11923
  } else if (hasKitBuildScript) {
11816
- buildDetails = "Kit CLI native build pipeline configured";
11924
+ buildDetails = 'Native CLI build ("kit build")';
11817
11925
  } else if (hasBuildScript) {
11818
- buildDetails = "Legacy bun-build.ts present";
11926
+ buildDetails = "Legacy build script (bun-build.ts)";
11819
11927
  }
11820
11928
  results.push({
11821
11929
  category: "Project",
@@ -11833,11 +11941,12 @@ async function processDoctor(pOptions = {}) {
11833
11941
  }
11834
11942
  let allPassed = true;
11835
11943
  for (const res of results) {
11836
- const icon = res.passed ? source_default.green("\u2713") : source_default.red("\u2717");
11837
- const titleText = res.passed ? source_default.white(res.title) : source_default.red.bold(res.title);
11838
- console.log(` ${icon} [${source_default.cyan(res.category)}] ${titleText}`);
11839
- if (res.details && (!res.passed || isVerbose2)) {
11840
- console.log(` ${source_default.dim(res.details)}`);
11944
+ const icon = res.passed ? theme.successIcon("\u2713") : theme.error("\u2717");
11945
+ const categoryBadge = `${theme.bracket("[")}${theme.brandBold(res.category)}${theme.bracket("]")}`;
11946
+ const titleText = res.passed ? theme.title(res.title) : theme.error(res.title);
11947
+ console.log(` ${icon} ${categoryBadge} ${titleText}`);
11948
+ if (res.details) {
11949
+ console.log(` ${theme.secondary(res.details)}`);
11841
11950
  }
11842
11951
  if (!res.passed) {
11843
11952
  allPassed = false;
@@ -11846,10 +11955,10 @@ async function processDoctor(pOptions = {}) {
11846
11955
  console.log(`
11847
11956
  `);
11848
11957
  if (allPassed) {
11849
- console.log(` ${source_default.green.bold("All doctor diagnostics passed!")}
11958
+ console.log(` ${theme.successIcon("\u2714")} ${theme.brandBold("All doctor diagnostics passed!")}
11850
11959
  `);
11851
11960
  } else {
11852
- console.log(` ${source_default.yellow.bold("Some issues were detected. Check the items above.")}
11961
+ console.log(` ${theme.warning("\u25B2 Some issues were detected. Check the items above.")}
11853
11962
  `);
11854
11963
  }
11855
11964
  return allPassed;
@@ -11888,13 +11997,13 @@ export class ${pClassName} extends KitPlugin {
11888
11997
  async function processCreate(pOptions) {
11889
11998
  const { type, name, verbose } = pOptions;
11890
11999
  if (!type || !name) {
11891
- console.error(source_default.red(`
12000
+ console.error(theme.error(`
11892
12001
  Error: Both type and name are required. Usage: kit create <type> <name>`));
11893
12002
  process.exit(1);
11894
12003
  }
11895
12004
  const normalizedType = type.toLowerCase();
11896
12005
  if (normalizedType !== "plugin") {
11897
- console.error(source_default.red(`
12006
+ console.error(theme.error(`
11898
12007
  Error: Unknown create type '${type}'. Supported types: 'plugin'`));
11899
12008
  process.exit(1);
11900
12009
  }
@@ -11906,21 +12015,21 @@ Error: Unknown create type '${type}'. Supported types: 'plugin'`));
11906
12015
  await fs4.mkdir(pluginsDir, { recursive: true });
11907
12016
  const fileExists = await fs4.stat(targetPath).then(() => true).catch(() => false);
11908
12017
  if (fileExists) {
11909
- console.error(source_default.red(`
12018
+ console.error(theme.error(`
11910
12019
  Error: File already exists at ${targetPath}`));
11911
12020
  process.exit(1);
11912
12021
  }
11913
12022
  const sourceCode = generatePluginSource(className, className);
11914
12023
  await fs4.writeFile(targetPath, sourceCode, "utf8");
11915
12024
  console.log(`
11916
- ${source_default.green("\u2713")} Created plugin ${source_default.cyan(className)} at ${source_default.dim(targetPath)}
12025
+ ${theme.successIcon("\u2713")} Created plugin ${theme.brandBold(className)} at ${theme.secondary(targetPath)}
11917
12026
  `);
11918
12027
  if (verbose) {
11919
- console.log(source_default.dim(sourceCode));
12028
+ console.log(theme.secondary(sourceCode));
11920
12029
  }
11921
12030
  } catch (pError) {
11922
12031
  const message = pError instanceof Error ? pError.message : String(pError);
11923
- console.error(source_default.red(`
12032
+ console.error(theme.error(`
11924
12033
  Error creating plugin: ${message}`));
11925
12034
  process.exit(1);
11926
12035
  }
@@ -11928,7 +12037,7 @@ Error creating plugin: ${message}`));
11928
12037
 
11929
12038
  // src/cli/host.ts
11930
12039
  import { existsSync as existsSync4, readFileSync as readFileSync2 } from "fs";
11931
- import { join as join7, resolve as resolve4 } from "path";
12040
+ import { join as join7, resolve as resolve5 } from "path";
11932
12041
  import { networkInterfaces } from "os";
11933
12042
  function getNetworkAddress() {
11934
12043
  const interfaces = networkInterfaces();
@@ -11948,11 +12057,11 @@ async function processHost(pOptions = {}) {
11948
12057
  const cwd = process.cwd();
11949
12058
  const defaultPort = 8090;
11950
12059
  const port = pOptions.port || defaultPort;
11951
- const distDir = pOptions.directory ? resolve4(pOptions.directory) : join7(cwd, "dist");
12060
+ const distDir = pOptions.directory ? resolve5(pOptions.directory) : join7(cwd, "dist");
11952
12061
  const architecture = detectArchitecture(join7(cwd, "src"));
11953
12062
  if (!existsSync4(distDir)) {
11954
12063
  const message = `Target directory "${distDir}" does not exist. Run "kit build" or use "kit host -b" first.`;
11955
- console.error(source_default.red(`
12064
+ console.error(theme.error(`
11956
12065
  [Kit Host] ${message}
11957
12066
  `));
11958
12067
  return { success: false, message };
@@ -11961,14 +12070,14 @@ async function processHost(pOptions = {}) {
11961
12070
  const serverJsPath = join7(distDir, "server.js");
11962
12071
  if (!existsSync4(serverJsPath)) {
11963
12072
  const message = `Cannot host multiplayer project: "${serverJsPath}" was not found. Please compile the server first using "kit build".`;
11964
- console.error(source_default.red(`
12073
+ console.error(theme.error(`
11965
12074
  [Kit Host] ${message}
11966
12075
  `));
11967
12076
  return { success: false, message };
11968
12077
  }
11969
- console.log(source_default.cyan(`
11970
- Starting Multiplayer Server from ${source_default.bold(distDir)}...
11971
- `));
12078
+ console.log(`
12079
+ ${theme.brandBold("Kit Multiplayer Server")} ${theme.muted("\u2500")} ${theme.secondary(distDir)}
12080
+ `);
11972
12081
  let serverSettingsPort = port;
11973
12082
  const settingsPath = join7(distDir, "settings.json");
11974
12083
  if (existsSync4(settingsPath)) {
@@ -11985,7 +12094,15 @@ Starting Multiplayer Server from ${source_default.bold(distDir)}...
11985
12094
  stderr: "inherit",
11986
12095
  stdin: "inherit"
11987
12096
  });
11988
- console.log(source_default.green(`\u2713 Multiplayer server process spawned (configured port: ${serverSettingsPort})`));
12097
+ console.log(` ${theme.successIcon("\u2713")} ${theme.title("Multiplayer server process spawned")} ${theme.secondary(`(configured port: ${serverSettingsPort})`)}`);
12098
+ console.log(` ${theme.title("Local:")} ${theme.url(`http://localhost:${serverSettingsPort}`)}`);
12099
+ const lanIp2 = getNetworkAddress();
12100
+ if (lanIp2 !== "localhost") {
12101
+ console.log(` ${theme.title("Network:")} ${theme.url(`http://${lanIp2}:${serverSettingsPort}`)}`);
12102
+ }
12103
+ console.log(theme.muted(`
12104
+ Press Ctrl+C to stop the server
12105
+ `));
11989
12106
  process.on("SIGINT", () => {
11990
12107
  proc.kill();
11991
12108
  process.exit(0);
@@ -12000,7 +12117,7 @@ Starting Multiplayer Server from ${source_default.bold(distDir)}...
12000
12117
  const indexPath = join7(distDir, "index.html");
12001
12118
  if (!existsSync4(indexPath)) {
12002
12119
  const message = `Missing entrypoint: "${indexPath}" was not found in dist. Run "kit build" or use "kit host -b" to compile.`;
12003
- console.error(source_default.red(`
12120
+ console.error(theme.error(`
12004
12121
  [Kit Host] ${message}
12005
12122
  `));
12006
12123
  return { success: false, message };
@@ -12014,26 +12131,26 @@ Starting Multiplayer Server from ${source_default.bold(distDir)}...
12014
12131
  const file = Bun.file(join7(distDir, target));
12015
12132
  if (!await file.exists()) {
12016
12133
  if (pOptions.verbose) {
12017
- console.warn(source_default.yellow(`[Kit Host] 404 Not Found: ${target}`));
12134
+ console.warn(theme.warning(`[Kit Host] 404 Not Found: ${target}`));
12018
12135
  }
12019
12136
  return new Response("Not Found", { status: 404 });
12020
12137
  }
12021
12138
  return new Response(file);
12022
12139
  }
12023
12140
  });
12024
- console.log(source_default.cyan(`
12025
- Kit Game Host Server
12026
- `));
12027
- console.log(` ${source_default.bold("Local:")} ${source_default.green(`http://localhost:${server.port}`)}`);
12141
+ console.log(`
12142
+ ${theme.brandBold("Kit Game Host Server")}
12143
+ `);
12144
+ console.log(` ${theme.title("Local:")} ${theme.url(`http://localhost:${server.port}`)}`);
12028
12145
  if (lanIp !== "localhost") {
12029
- console.log(` ${source_default.bold("Network:")} ${source_default.green(`http://${lanIp}:${server.port}`)}`);
12146
+ console.log(` ${theme.title("Network:")} ${theme.url(`http://${lanIp}:${server.port}`)}`);
12030
12147
  }
12031
- console.log(source_default.dim(`
12032
- Serving files from: ${distDir}`));
12033
- console.log(source_default.dim(`Press Ctrl+C to stop the server
12148
+ console.log(theme.secondary(`
12149
+ Serving files from: ${distDir}`));
12150
+ console.log(theme.muted(` Press Ctrl+C to stop the server
12034
12151
  `));
12035
12152
  process.on("SIGINT", () => {
12036
- console.log(source_default.yellow(`
12153
+ console.log(theme.warning(`
12037
12154
  Shutting down host server...`));
12038
12155
  server.stop();
12039
12156
  process.exit(0);
@@ -12077,20 +12194,20 @@ var formatHelp = (pCmd) => {
12077
12194
  const isRoot = pCmd === program2;
12078
12195
  const desc = pCmd.description() || package_default["cli-description"];
12079
12196
  let output = `
12080
- ${source_default.cyan("Kit CLI")} ${source_default.dim("-")} ${source_default.white(desc)}
12197
+ ${theme.brandBold("Kit CLI")} ${theme.muted("\u2500")} ${theme.title(desc)}
12081
12198
  `;
12082
- output += ` ${source_default.gray("Version")} ${source_default.green(package_default.version)}
12199
+ output += ` ${theme.secondary("Version")} ${theme.brandBold(`v${package_default.version}`)}
12083
12200
 
12084
12201
  `;
12085
- const usage = pCmd.usage() || (isRoot ? `${source_default.dim("<command>")} ${source_default.dim("[options]")}` : `${source_default.dim("[options]")}`);
12086
- output += ` ${source_default.white.bold("Usage:")} ${source_default.cyan("kit")} ${!isRoot ? source_default.cyan(pCmd.name() + " ") : ""}${usage}
12202
+ const usage = pCmd.usage() || (isRoot ? `${theme.secondary("<command>")} ${theme.muted("[options]")}` : `${theme.muted("[options]")}`);
12203
+ output += ` ${theme.title("Usage:")} ${theme.brandBold("kit")} ${!isRoot ? theme.brand(pCmd.name() + " ") : ""}${usage}
12087
12204
 
12088
12205
  `;
12089
12206
  if (isRoot) {
12090
- output += ` ${source_default.white.bold("Commands:")}
12207
+ output += ` ${theme.title("Commands:")}
12091
12208
  `;
12092
12209
  pCmd.commands.filter((cmd) => cmd.name() !== "help").forEach((cmd) => {
12093
- output += ` ${source_default.green(cmd.name().padEnd(12))} ${source_default.dim(cmd.description())}
12210
+ output += ` ${theme.brandBold(cmd.name().padEnd(14))} ${theme.secondary(cmd.description())}
12094
12211
  `;
12095
12212
  });
12096
12213
  output += `
@@ -12104,10 +12221,10 @@ var formatHelp = (pCmd) => {
12104
12221
  return true;
12105
12222
  });
12106
12223
  if (options.length > 0) {
12107
- output += ` ${source_default.white.bold(isRoot ? "Options:" : "Command Options:")}
12224
+ output += ` ${theme.title(isRoot ? "Options:" : "Command Options:")}
12108
12225
  `;
12109
12226
  options.forEach((opt) => {
12110
- output += ` ${source_default.yellow(opt.flags.padEnd(20))} ${source_default.dim(opt.description)}
12227
+ output += ` ${theme.warningMuted(opt.flags.padEnd(24))} ${theme.secondary(opt.description)}
12111
12228
  `;
12112
12229
  });
12113
12230
  output += `
@@ -12120,10 +12237,10 @@ var formatHelp = (pCmd) => {
12120
12237
  return true;
12121
12238
  });
12122
12239
  if (globalOptions.length > 0) {
12123
- output += ` ${source_default.white.bold("Global Options:")}
12240
+ output += ` ${theme.title("Global Options:")}
12124
12241
  `;
12125
12242
  globalOptions.forEach((opt) => {
12126
- output += ` ${source_default.yellow(opt.flags.padEnd(20))} ${source_default.dim(opt.description)}
12243
+ output += ` ${theme.warningMuted(opt.flags.padEnd(24))} ${theme.secondary(opt.description)}
12127
12244
  `;
12128
12245
  });
12129
12246
  output += `
@@ -12132,43 +12249,43 @@ var formatHelp = (pCmd) => {
12132
12249
  }
12133
12250
  const name = pCmd.name();
12134
12251
  if (isRoot || name === "init" || name === "build" || name === "create" || name === "doctor") {
12135
- output += ` ${source_default.white.bold("Examples:")}
12252
+ output += ` ${theme.title("Examples:")}
12136
12253
  `;
12137
12254
  if (isRoot || name === "init") {
12138
- output += ` ${source_default.cyan("kit init")}
12255
+ output += ` ${theme.brand("kit init")}
12139
12256
  `;
12140
- output += ` ${source_default.cyan("kit init my-game --single --install")}
12257
+ output += ` ${theme.brand("kit init my-game --single --install")}
12141
12258
  `;
12142
12259
  }
12143
12260
  if (isRoot || name === "build") {
12144
- output += ` ${source_default.cyan("kit build --in ./src/resources --out ./dist")}
12261
+ output += ` ${theme.brand("kit build --in ./src/resources --out ./dist")}
12145
12262
  `;
12146
- output += ` ${source_default.cyan("kit build --in ./src/resources --out ./dist --watch")}
12263
+ output += ` ${theme.brand("kit build --in ./src/resources --out ./dist --watch")}
12147
12264
  `;
12148
12265
  }
12149
12266
  if (isRoot || name === "create") {
12150
- output += ` ${source_default.cyan("kit create plugin Inventory")}
12267
+ output += ` ${theme.brand("kit create plugin Inventory")}
12151
12268
  `;
12152
12269
  }
12153
12270
  if (isRoot || name === "doctor") {
12154
- output += ` ${source_default.cyan("kit doctor")}
12271
+ output += ` ${theme.brand("kit doctor")}
12155
12272
  `;
12156
12273
  }
12157
12274
  if (isRoot || name === "host") {
12158
- output += ` ${source_default.cyan("kit host")}
12275
+ output += ` ${theme.brand("kit host")}
12159
12276
  `;
12160
- output += ` ${source_default.cyan("kit host -p 8080 -b")}
12277
+ output += ` ${theme.brand("kit host -p 8080 -b")}
12161
12278
  `;
12162
12279
  }
12163
12280
  if (isRoot) {
12164
- output += ` ${source_default.cyan("kit build --help")}
12281
+ output += ` ${theme.brand("kit build --help")}
12165
12282
  `;
12166
12283
  }
12167
12284
  output += `
12168
12285
  `;
12169
12286
  }
12170
12287
  if (isRoot) {
12171
- output += ` ${source_default.white("Tip:")} ${source_default.dim("Use ")}${source_default.cyan("kit <command> --help")}${source_default.dim(" or ")}${source_default.cyan("kit help <command>")}${source_default.dim(" to see specific options for any command.")}
12288
+ output += ` ${theme.accent("Tip:")} ${theme.secondary("Use ")}${theme.brandBold("kit <command> --help")}${theme.secondary(" to view detailed options for any command.")}
12172
12289
  `;
12173
12290
  }
12174
12291
  return output;