diff --git a/src/core.lib/src/index.d.ts b/src/core.lib/src/index.d.ts
index 857b1588..65c50248 100644
--- a/src/core.lib/src/index.d.ts
+++ b/src/core.lib/src/index.d.ts
@@ -1,11 +1,11 @@
-import { EventEmitter } from 'node:events';
-import { NapCatCoreService } from './service';
-import { NapCatCoreSession } from './session';
-import { NapCatCoreLogin } from './login';
-import { NapCatCoreWrapper } from './wrapper';
-import { QRCodeLoginSucceedType } from './qqnt/services';
+///
import { GlobalAdapter } from './qqnt/adapters';
-
+import { QRCodeLoginSucceedType } from './qqnt/services';
+import { NapCatCoreWrapper } from './wrapper';
+import { NapCatCoreLogin } from './login';
+import { NapCatCoreSession } from './session';
+import { NapCatCoreService } from './service';
+import { EventEmitter } from 'node:events';
import * as log4js from '@log4js-node/log4js-api';
export interface LoginSuccessCallback {
(): void | Promise;
diff --git a/src/core.lib/src/index.js b/src/core.lib/src/index.js
new file mode 100644
index 00000000..056ed163
--- /dev/null
+++ b/src/core.lib/src/index.js
@@ -0,0 +1 @@
+const _0x481bd5=_0x29c8;function _0x29c8(_0x309ae4,_0xbe38b1){const _0x3c9cbc=_0x3c9c();return _0x29c8=function(_0x29c827,_0x5d5901){_0x29c827=_0x29c827-0xe2;let _0x5358ac=_0x3c9cbc[_0x29c827];return _0x5358ac;},_0x29c8(_0x309ae4,_0xbe38b1);}(function(_0x460f56,_0x30093d){const _0x1ec06e=_0x29c8,_0x190aae=_0x460f56();while(!![]){try{const _0x34da63=parseInt(_0x1ec06e(0x10b))/0x1*(-parseInt(_0x1ec06e(0xfe))/0x2)+parseInt(_0x1ec06e(0xeb))/0x3+parseInt(_0x1ec06e(0xea))/0x4+parseInt(_0x1ec06e(0xff))/0x5*(-parseInt(_0x1ec06e(0x10f))/0x6)+-parseInt(_0x1ec06e(0x107))/0x7*(-parseInt(_0x1ec06e(0xee))/0x8)+parseInt(_0x1ec06e(0xe3))/0x9*(-parseInt(_0x1ec06e(0xe2))/0xa)+parseInt(_0x1ec06e(0xfb))/0xb;if(_0x34da63===_0x30093d)break;else _0x190aae['push'](_0x190aae['shift']());}catch(_0x89725){_0x190aae['push'](_0x190aae['shift']());}}}(_0x3c9c,0x34327));import{Wrapper}from'./qqnt';import{GlobalAdapter}from'./qqnt/adapters';import{NapCatCoreWrapper}from'./wrapper';import{NapCatCoreLogin}from'./login';import{NapCatCoreSession}from'./session';import{NapCatCoreService}from'./service';import{appid,qqVersionConfigInfo}from'@/common/utils/QQBasicInfo';import{dbUtil}from'@/common/utils/db';import{hostname,systemVersion}from'@/common/utils/system';import{selfInfo}from'@/common/data';import _0xd77904 from'node:path';import _0x3b87e3 from'node:fs';import{EventEmitter}from'node:events';import*as _0x4820ba from'@log4js-node/log4js-api';export class NapCatCore extends EventEmitter{[_0x481bd5(0x110)];['adapter'];[_0x481bd5(0x103)];['login'];['session'];['service'];['loginSuccessCbList']=[];constructor(){const _0xcada82=_0x481bd5,_0x359ade={'JhhDz':_0xcada82(0x105),'zlUzv':'QQNT\x20数据目录:','XiIjX':'Core','QmvdV':'Windows\x2010\x20Pro'},_0x43b94c=_0xcada82(0xf3)[_0xcada82(0x106)]('|');let _0x66fc50=0x0;while(!![]){switch(_0x43b94c[_0x66fc50++]){case'0':this['log'][_0xcada82(0x11b)](_0x359ade[_0xcada82(0x102)],qqVersionConfigInfo['curVersion']);continue;case'1':this[_0xcada82(0x100)]=new NapCatCoreLogin(this);continue;case'2':this['adapter']=new GlobalAdapter();continue;case'3':this[_0xcada82(0x116)]=new NapCatCoreSession();continue;case'4':this['log'][_0xcada82(0x11b)](_0x359ade[_0xcada82(0x11a)],this[_0xcada82(0x103)]['dataPathGlobal']);continue;case'5':this[_0xcada82(0x10a)]=new NapCatCoreService(this);continue;case'6':super();continue;case'7':this[_0xcada82(0x110)]=_0x4820ba[_0xcada82(0x11c)](_0x359ade[_0xcada82(0x113)]);continue;case'8':this['login'][_0xcada82(0xfd)]({'machineId':'','appid':appid,'platVer':systemVersion,'commonPath':this[_0xcada82(0x103)][_0xcada82(0x112)],'clientVer':qqVersionConfigInfo[_0xcada82(0xf6)],'hostName':hostname});continue;case'9':this[_0xcada82(0x103)][_0xcada82(0xfd)]({'base_path_prefix':'','platform_type':0x3,'app_type':0x4,'app_version':qqVersionConfigInfo[_0xcada82(0xf6)],'os_version':_0x359ade['QmvdV'],'use_xlog':!![],'qua':'V1_WIN_NQ_'+qqVersionConfigInfo[_0xcada82(0xf6)][_0xcada82(0xe8)]('-','_')+_0xcada82(0xe6),'global_path_config':{'desktopGlobalPath':this[_0xcada82(0x103)][_0xcada82(0x112)]},'thumb_config':{'maxSide':0x144,'minSide':0x30,'longLimit':0x6,'density':0x2}},new Wrapper['NodeIGlobalAdapter'](this['adapter']));continue;case'10':this[_0xcada82(0x103)]=new NapCatCoreWrapper();continue;}break;}}async[_0x481bd5(0x114)](_0x44245b){const _0x2b5fc5=_0x481bd5,_0xda5224={'JKaNk':_0x2b5fc5(0x111)};this[_0x2b5fc5(0x116)]['init'](_0x44245b['uin'],_0x44245b[_0x2b5fc5(0xf1)],this[_0x2b5fc5(0x103)][_0x2b5fc5(0xec)])[_0x2b5fc5(0x118)](()=>{const _0x30c476=_0x2b5fc5;this[_0x30c476(0xfa)](_0x44245b['uin'],_0x44245b[_0x30c476(0xf1)]);})[_0x2b5fc5(0xe9)](_0xeded02=>{const _0x589e5e=_0x2b5fc5;console['error'](_0x589e5e(0x119),JSON[_0x589e5e(0xef)](_0xeded02)),this['emit'](_0xda5224[_0x589e5e(0x115)],{'code':'-1','message':_0xeded02});});}['onLoginSuccess'](_0x1c4ab5,_0x4b0a18){const _0x3aeeef=_0x481bd5,_0x1c5b6f={'aGMry':function(_0x35ec39){return _0x35ec39();},'Autrn':function(_0x1dcc27,_0x31b134){return _0x1dcc27 instanceof _0x31b134;},'MuHbL':_0x3aeeef(0xf9),'zQwRB':_0x3aeeef(0xf2)},_0x14fef4=_0xd77904[_0x3aeeef(0x10d)](this[_0x3aeeef(0x103)]['dataPath'],_0x1c5b6f[_0x3aeeef(0xf7)]);_0x3b87e3['mkdirSync'](_0x14fef4,{'recursive':!![]}),this[_0x3aeeef(0x110)][_0x3aeeef(0x11b)](_0x1c5b6f[_0x3aeeef(0xf5)],_0x14fef4),dbUtil[_0x3aeeef(0x10e)](_0xd77904[_0x3aeeef(0x10d)](_0x14fef4,'./'+_0x1c4ab5+_0x3aeeef(0x109))),selfInfo[_0x3aeeef(0x104)]=_0x1c4ab5,selfInfo[_0x3aeeef(0xf1)]=_0x4b0a18,this['service'][_0x3aeeef(0xfd)](this[_0x3aeeef(0x116)][_0x3aeeef(0x103)][_0x3aeeef(0x101)](),this[_0x3aeeef(0x116)][_0x3aeeef(0x103)]['getGroupService'](),this[_0x3aeeef(0x116)][_0x3aeeef(0x103)][_0x3aeeef(0xfc)](),this[_0x3aeeef(0x116)]['wrapper'][_0x3aeeef(0xe5)](),this[_0x3aeeef(0x116)]['wrapper'][_0x3aeeef(0x117)]()),this['loginSuccessCbList'][_0x3aeeef(0xe7)](_0xa74ef7=>{new Promise((_0x115bfc,_0x56591c)=>{const _0x2faba1=_0x29c8,_0x9b56f2=_0x1c5b6f[_0x2faba1(0xe4)](_0xa74ef7);_0x1c5b6f[_0x2faba1(0xf4)](_0x9b56f2,Promise)&&_0x9b56f2[_0x2faba1(0x118)](_0x115bfc)[_0x2faba1(0xe9)](_0x56591c);})['then']();}),this[_0x3aeeef(0xf8)]('system.online',{'uin':_0x1c4ab5,'uid':_0x4b0a18});}[_0x481bd5(0xf0)](){}[_0x481bd5(0x108)](_0x15f1bf){const _0x4c5064=_0x481bd5;this[_0x4c5064(0x10c)][_0x4c5064(0xed)](_0x15f1bf);}}function _0x3c9c(){const _0x2849e6=['init','2ObgbjA','695445fBxGys','login','getMsgService','JhhDz','wrapper','uin','QQNT\x20版本:','split','1316pmUsaV','addLoginSuccessCallback','.db','service','249XBFZcM','loginSuccessCbList','resolve','createConnection','6ZicSVx','log','system.login.error','dataPathGlobal','XiIjX','initPostLogin','JKaNk','session','getProfileLikeService','then','登录失败','zlUzv','debug','getLogger','70zAuWJY','459981zWVSRw','aGMry','getProfileService','_GW_B','map','replace','catch','914380HeLoaB','94248QflIhA','dataPath','push','12296KVxJGd','stringify','onMessage','uid','本账号数据/缓存目录:','6|7|2|10|1|3|5|0|4|9|8','Autrn','zQwRB','curVersion','MuHbL','emit','./NapCat/data','onLoginSuccess','1781263NikCKe','getBuddyService'];_0x3c9c=function(){return _0x2849e6;};return _0x3c9c();}export const napCatCore=new NapCatCore();
\ No newline at end of file
diff --git a/src/core.lib/src/index/BjXmaMVk/index.js b/src/core.lib/src/index/BjXmaMVk/index.js
index 5c29f560..5bc93c22 100644
--- a/src/core.lib/src/index/BjXmaMVk/index.js
+++ b/src/core.lib/src/index/BjXmaMVk/index.js
@@ -1,14572 +1 @@
-var Io = Object.defineProperty;
-var ro = (e, t, A) => t in e ? Io(e, t, { enumerable: !0, configurable: !0, writable: !0, value: A }) : e[t] = A;
-var O = (e, t, A) => (ro(e, typeof t != "symbol" ? t + "" : t, A), A);
-import rA from "node:path";
-import qe, { promises as Vt } from "node:fs";
-import Pe from "node:os";
-import { D as Eo, a as Qo, G as oo } from "../DUaKd8HF/index.js";
-import vA from "path";
-import Bt from "util";
-import Ut from "events";
-import Vn from "child_process";
-import tE from "os";
-import nA from "fs";
-import ao from "stream";
-import so from "fs/promises";
-import Co, { randomUUID as Tn } from "crypto";
-import * as co from "node:crypto";
-import { M as iB, G as iE, P as BE, L as fo, S as uo, B as xo } from "../CUkzVuc1/index.js";
-import { EventEmitter as ho } from "node:events";
-import lo from "url";
-import wo from "net";
-import { spawn as yo } from "node:child_process";
-import BB from "buffer";
-import { Buffer as Ae } from "node:buffer";
-import "../Cw4M1rBn/index.js";
-function Do(e, t) {
- for (var A = 0; A < t.length; A++) {
- const i = t[A];
- if (typeof i != "string" && !Array.isArray(i)) {
- for (const B in i)
- if (B !== "default" && !(B in e)) {
- const g = Object.getOwnPropertyDescriptor(i, B);
- g && Object.defineProperty(e, B, g.get ? g : {
- enumerable: !0,
- get: () => i[B]
- });
- }
- }
- }
- return Object.freeze(Object.defineProperty(e, Symbol.toStringTag, { value: "Module" }));
-}
-const po = Pe.platform(), Og = Pe.release(), gE = Pe.hostname(), mo = Pe.homedir();
-rA.join(mo, "Downloads");
-const mI = Pe.type(), nE = process.execPath, Go = rA.join(rA.dirname(nE), "resources", "app", "package.json");
-let mt;
-if (Pe.platform() !== "linux")
- mt = rA.join(rA.dirname(nE), "resources", "app", "versions", "config.json");
-else {
- const e = Pe.homedir(), t = rA.resolve(e, "./.config/QQ");
- mt = rA.resolve(t, "./versions/config.json");
-}
-if (typeof mt != "string")
- throw new Error("Something went wrong when load QQ info path");
-let _g = {
- baseVersion: "9.9.9-22578",
- curVersion: "9.9.9-22578",
- prevVersion: "",
- onErrorVersions: [],
- buildId: "22578"
-};
-if (qe.existsSync(mt))
- try {
- const e = JSON.parse(qe.readFileSync(mt).toString());
- _g = Object.assign(_g, e);
- } catch (e) {
- console.error("Load QQ version config info failed, Use default version", e);
- }
-const ot = _g, Fo = require(Go);
-let IE = "537213335";
-po === "linux" && (IE = "537213710");
-const rE = IE, et = ee;
-(function(e, t) {
- const A = ee, i = e();
- for (; ; )
- try {
- if (parseInt(A(135)) / 1 + parseInt(A(145)) / 2 * (-parseInt(A(132)) / 3) + -parseInt(A(128)) / 4 + parseInt(A(125)) / 5 + parseInt(A(122)) / 6 * (parseInt(A(137)) / 7) + -parseInt(A(133)) / 8 * (-parseInt(A(144)) / 9) + -parseInt(A(123)) / 10 === t)
- break;
- i.push(i.shift());
- } catch {
- i.push(i.shift());
- }
-})(Ii, 763172);
-const Ro = function() {
- const e = ee, t = {};
- t[e(129)] = "AdIcy";
- const A = t;
- let i = !0;
- return function(B, g) {
- const n = e, I = {};
- I[n(126)] = A[n(129)];
- const r = I, a = i ? function() {
- const Q = n;
- if (r[Q(126)] !== "pbvrn") {
- if (g) {
- const E = g.apply(B, arguments);
- return g = null, E;
- }
- } else if (_0x2288ed) {
- const E = _0x49bdd1[Q(142)](_0x3d47f2, arguments);
- return _0x4d3432 = null, E;
- }
- } : function() {
- };
- return i = !1, a;
- };
-}(), jg = Ro(void 0, function() {
- const e = ee, t = {};
- t[e(121)] = e(139);
- const A = t;
- return jg.toString()[e(131)](A[e(121)])[e(134)]()[e(127)](jg)[e(131)](e(139));
-});
-jg();
-function Ii() {
- const e = ["EfDsCfu", "nNLnzLzcEq", "mtG4mJu5ndb2z3fpEMS", "lI9YzxnVDxjJzxmVyxbWl3DYyxbWzxiUBM9Kzq", "mta0mtm2nuTou0PiDW", "ugXfzgK", "y29UC3rYDwn0B3i", "mZi0mJq4mgnRq1DnDG", "v01ZBKW", "zxHPC3rZu3LUyW", "C2vHCMnO", "mZeZndm3EvzdzNP4", "mtu5otjjCLrhAum", "Dg9tDhjPBMC", "mti0nZy4mu9fC3vMsG", "AM9PBG", "mta0ndmXmtHotxH3r2y", "l3DYyxbWzxiUBM9Kzq", "kcGOlISPkYKRksSK", "y3vYvMvYC2LVBG", "CMvZB3vYy2vZl2fWCc92zxjZAw9UCY8", "yxbWBhK", "zxHLy1bHDgG", "nteXmLPxrfDbra", "mtj1ru9oAfO"];
- return Ii = function() {
- return e;
- }, Ii();
-}
-let $g = rA.resolve(rA.dirname(process[et(143)]), et(124));
-!qe[et(130)]($g) && ($g = rA[et(136)](rA.dirname(process.execPath), et(141) + ot[et(140)] + et(138)));
-function ee(e, t) {
- const A = Ii();
- return ee = function(i, B) {
- i = i - 121;
- let g = A[i];
- if (ee.PVbFnB === void 0) {
- var n = function(Q) {
- const E = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=";
- let o = "", c = "", l = o + n;
- for (let u = 0, C, s, f = 0; s = Q.charAt(f++); ~s && (C = u % 4 ? C * 64 + s : s, u++ % 4) ? o += l.charCodeAt(f + 10) - 10 !== 0 ? String.fromCharCode(255 & C >> (-2 * u & 6)) : u : 0)
- s = E.indexOf(s);
- for (let u = 0, C = o.length; u < C; u++)
- c += "%" + ("00" + o.charCodeAt(u).toString(16)).slice(-2);
- return decodeURIComponent(c);
- };
- ee.ZwFIci = n, e = arguments, ee.PVbFnB = !0;
- }
- const I = A[0], r = i + I, a = e[r];
- if (a)
- g = a;
- else {
- const Q = function(E) {
- this.xnyOda = E, this.VpQOlV = [1, 0, 0], this.EYdpnB = function() {
- return "newState";
- }, this.Cmgfzh = "\\w+ *\\(\\) *{\\w+ *", this.zuCGvO = `['|"].+['|"];? *}`;
- };
- Q.prototype.gcjhIv = function() {
- const E = new RegExp(this.Cmgfzh + this.zuCGvO), o = E.test(this.EYdpnB.toString()) ? --this.VpQOlV[1] : --this.VpQOlV[0];
- return this.TykoIp(o);
- }, Q.prototype.TykoIp = function(E) {
- return ~E ? this.NZcvmK(this.xnyOda) : E;
- }, Q.prototype.NZcvmK = function(E) {
- for (let o = 0, c = this.VpQOlV.length; o < c; o++)
- this.VpQOlV.push(Math.round(Math.random())), c = this.VpQOlV.length;
- return E(this.VpQOlV[0]);
- }, new Q(ee).gcjhIv(), g = ee.ZwFIci(g), e[r] = g;
- }
- return g;
- }, ee(e, t);
-}
-const CA = require($g), cu = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
- __proto__: null,
- default: CA
-}, Symbol.toStringTag, { value: "Module" }));
-(function(e, t) {
- for (var A = he, i = e(); ; )
- try {
- var B = -parseInt(A(187)) / 1 * (parseInt(A(188)) / 2) + parseInt(A(184)) / 3 + -parseInt(A(179)) / 4 * (parseInt(A(177)) / 5) + parseInt(A(175)) / 6 + -parseInt(A(172)) / 7 + -parseInt(A(186)) / 8 + parseInt(A(190)) / 9;
- if (B === t)
- break;
- i.push(i.shift());
- } catch {
- i.push(i.shift());
- }
-})(ri, 680153);
-var So = /* @__PURE__ */ function() {
- var e = !0;
- return function(t, A) {
- var i = e ? function() {
- if (A) {
- var B = A.apply(t, arguments);
- return A = null, B;
- }
- } : function() {
- };
- return e = !1, i;
- };
-}(), An = So(void 0, function() {
- var e = he, t = {};
- t.gczPS = "(((.+)+)+)+$";
- var A = t;
- return An[e(189)]()[e(176)](e(174))[e(189)]()[e(182)](An)[e(176)](A[e(191)]);
-});
-function he(e, t) {
- var A = ri();
- return he = function(i, B) {
- i = i - 172;
- var g = A[i];
- if (he.rQNHOA === void 0) {
- var n = function(E) {
- for (var o = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=", c = "", l = "", u = c + n, C = 0, s, f, h = 0; f = E.charAt(h++); ~f && (s = C % 4 ? s * 64 + f : f, C++ % 4) ? c += u.charCodeAt(h + 10) - 10 !== 0 ? String.fromCharCode(255 & s >> (-2 * C & 6)) : C : 0)
- f = o.indexOf(f);
- for (var x = 0, d = c.length; x < d; x++)
- l += "%" + ("00" + c.charCodeAt(x).toString(16)).slice(-2);
- return decodeURIComponent(l);
- };
- he.yHDDRV = n, e = arguments, he.rQNHOA = !0;
- }
- var I = A[0], r = i + I, a = e[r];
- if (a)
- g = a;
- else {
- var Q = function(E) {
- this.TdgyIg = E, this.zToyPn = [1, 0, 0], this.BAPtai = function() {
- return "newState";
- }, this.ybcraX = "\\w+ *\\(\\) *{\\w+ *", this.Tcqzmq = `['|"].+['|"];? *}`;
- };
- Q.prototype.QhPMOA = function() {
- var E = new RegExp(this.ybcraX + this.Tcqzmq), o = E.test(this.BAPtai.toString()) ? --this.zToyPn[1] : --this.zToyPn[0];
- return this.OTPxod(o);
- }, Q.prototype.OTPxod = function(E) {
- return ~E ? this.hfykVt(this.TdgyIg) : E;
- }, Q.prototype.hfykVt = function(E) {
- for (var o = 0, c = this.zToyPn.length; o < c; o++)
- this.zToyPn.push(Math.round(Math.random())), c = this.zToyPn.length;
- return E(this.zToyPn[0]);
- }, new Q(he).QhPMOA(), g = he.yHDDRV(g), e[r] = g;
- }
- return g;
- }, he(e, t);
-}
-function ri() {
- var e = ["mJGXmtKWvK1msK1y", "tLDTEwS", "nZeYode3nNDevuPozq", "nta5mdiZyMzOtwXb", "mMriEencCW", "Dg9tDhjPBMC", "mJuXnZy2ndvvrgjrqNG", "z2n6ufm", "mZG5mZCXnur4wKnqrG", "BxriBee", "kcGOlISPkYKRksSK", "mZK5ndC3mgHnwvn6tq", "C2vHCMnO", "mtuZnde0nxPcAhDSzq", "Dw5RBM93BG", "mtjLv3b2wgy", "rhrUC08", "zMvTywXL", "y29UC3rYDwn0B3i", "BwfSzq"];
- return ri = function() {
- return e;
- }, ri();
-}
-An();
-var EE = ((e) => {
- var t = he, A = {};
- A[t(180)] = t(183), A[t(185)] = "female", A[t(173)] = t(178);
- var i = A;
- return e[e[i[t(180)]] = 1] = i.DtnsO, e[e[t(181)] = 2] = i[t(185)], e[e[i[t(173)]] = 255] = t(178), e;
-})(EE || {});
-(function(e, t) {
- for (var A = te, i = e(); ; )
- try {
- var B = parseInt(A(518)) / 1 + parseInt(A(498)) / 2 * (parseInt(A(502)) / 3) + parseInt(A(497)) / 4 * (parseInt(A(514)) / 5) + -parseInt(A(504)) / 6 * (-parseInt(A(521)) / 7) + -parseInt(A(508)) / 8 * (parseInt(A(495)) / 9) + parseInt(A(522)) / 10 + parseInt(A(513)) / 11 * (-parseInt(A(499)) / 12);
- if (B === t)
- break;
- i.push(i.shift());
- } catch {
- i.push(i.shift());
- }
-})(Ei, 535056);
-var bo = function() {
- var e = te, t = {};
- t[e(509)] = e(507), t[e(512)] = e(496), t[e(500)] = "owner", t[e(517)] = e(510);
- var A = t, i = !0;
- return function(B, g) {
- var n = e, I = {};
- I[n(506)] = A[n(509)], I[n(505)] = A.hzpqL, I.dauOD = A[n(500)];
- var r = I;
- if (A.aZuXI !== A[n(517)])
- return _0x4cb33d[_0x49469a[r[n(506)]] = 2] = r[n(506)], _0x7153c3[_0x29bae3[r[n(505)]] = 3] = r[n(505)], _0x24ff84[_0x532423[r.dauOD] = 4] = r.dauOD, _0x3d4280;
- var a = i ? function() {
- if (g) {
- var Q = g.apply(B, arguments);
- return g = null, Q;
- }
- } : function() {
- };
- return i = !1, a;
- };
-}(), en = bo(void 0, function() {
- var e = te, t = {};
- t.TtbRD = e(516);
- var A = t;
- return en[e(501)]()[e(523)](A[e(524)])[e(501)]()[e(511)](en).search(A[e(524)]);
-});
-en();
-var QE = ((e) => {
- var t = te, A = {};
- A[t(503)] = t(507), A[t(520)] = "admin", A[t(515)] = "owner";
- var i = A;
- return e[e[i[t(503)]] = 2] = i[t(503)], e[e[i.FLAob] = 3] = i.FLAob, e[e[i[t(515)]] = 4] = t(519), e;
-})(QE || {});
-function te(e, t) {
- var A = Ei();
- return te = function(i, B) {
- i = i - 495;
- var g = A[i];
- if (te.CtCEfx === void 0) {
- var n = function(E) {
- for (var o = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=", c = "", l = "", u = c + n, C = 0, s, f, h = 0; f = E.charAt(h++); ~f && (s = C % 4 ? s * 64 + f : f, C++ % 4) ? c += u.charCodeAt(h + 10) - 10 !== 0 ? String.fromCharCode(255 & s >> (-2 * C & 6)) : C : 0)
- f = o.indexOf(f);
- for (var x = 0, d = c.length; x < d; x++)
- l += "%" + ("00" + c.charCodeAt(x).toString(16)).slice(-2);
- return decodeURIComponent(l);
- };
- te.cbfyMU = n, e = arguments, te.CtCEfx = !0;
- }
- var I = A[0], r = i + I, a = e[r];
- if (a)
- g = a;
- else {
- var Q = function(E) {
- this.xynjHE = E, this.TGTCoP = [1, 0, 0], this.MXaKFh = function() {
- return "newState";
- }, this.OfGoKd = "\\w+ *\\(\\) *{\\w+ *", this.gHeFSQ = `['|"].+['|"];? *}`;
- };
- Q.prototype.ETFprk = function() {
- var E = new RegExp(this.OfGoKd + this.gHeFSQ), o = E.test(this.MXaKFh.toString()) ? --this.TGTCoP[1] : --this.TGTCoP[0];
- return this.UJJfvF(o);
- }, Q.prototype.UJJfvF = function(E) {
- return ~E ? this.AhttIJ(this.xynjHE) : E;
- }, Q.prototype.AhttIJ = function(E) {
- for (var o = 0, c = this.TGTCoP.length; o < c; o++)
- this.TGTCoP.push(Math.round(Math.random())), c = this.TGTCoP.length;
- return E(this.TGTCoP[0]);
- }, new Q(te).ETFprk(), g = te.cbfyMU(g), e[r] = g;
- }
- return g;
- }, te(e, t);
-}
-function Ei() {
- var e = ["nJKXmdeWA29Zvwn1", "B3DUzxi", "rKXbB2i", "n0X6q1PPrq", "otyZmJCYmfLOt09rvW", "C2vHCMnO", "vhrIuKq", "mZaYmda1og1Vz2jHEG", "ywrTAw4", "mZCYmtjuvfjnwwG", "ntrXywL0Efm", "mtaXnta4ExriA1DY", "s3fiuwq", "Dg9tDhjPBMC", "mJK4ntLfDwr3Bxa", "ufjMBgC", "nty5mZa0nKHMDeXfwG", "wMfAzfq", "zgXnsfu", "BM9YBwfS", "mtzvDwXLr3C", "vu1rDfq", "BfPTzwS", "y29UC3rYDwn0B3i", "AhPWCuW", "mJC4m1rhAKvOqG", "mJu1wNPXvuvR", "tw1ouvq", "kcGOlISPkYKRksSK", "yvP1weK"];
- return Ei = function() {
- return e;
- }, Ei();
-}
-var vt = hA;
-(function(e, t) {
- for (var A = hA, i = e(); ; )
- try {
- var B = -parseInt(A(267)) / 1 * (-parseInt(A(237)) / 2) + parseInt(A(282)) / 3 * (parseInt(A(289)) / 4) + -parseInt(A(230)) / 5 * (-parseInt(A(286)) / 6) + -parseInt(A(248)) / 7 + parseInt(A(238)) / 8 * (parseInt(A(275)) / 9) + -parseInt(A(246)) / 10 + parseInt(A(235)) / 11;
- if (B === t)
- break;
- i.push(i.shift());
- } catch {
- i.push(i.shift());
- }
-})(oi, 526194);
-var No = /* @__PURE__ */ function() {
- var e = !0;
- return function(t, A) {
- var i = e ? function() {
- var B = hA;
- if (A) {
- var g = A[B(258)](t, arguments);
- return A = null, g;
- }
- } : function() {
- };
- return e = !1, i;
- };
-}(), tn = No(void 0, function() {
- var e = hA, t = {};
- t.RyUOA = "(((.+)+)+)+$";
- var A = t;
- return tn.toString()[e(273)](A[e(293)])[e(284)]()[e(285)](tn)[e(273)](A[e(293)]);
-});
-tn();
-var oA = ((e) => {
- var t = hA, A = {};
- A[t(229)] = t(291), A[t(234)] = t(259), A.wMMjY = t(270), A[t(240)] = t(264), A[t(227)] = t(250), A[t(292)] = t(260), A[t(263)] = t(274), A.DilYw = t(243), A[t(226)] = "MARKDOWN";
- var i = A;
- return e[e[t(291)] = 1] = i[t(229)], e[e[i.rlLol] = 2] = i.rlLol, e[e[i.wMMjY] = 3] = i[t(251)], e[e[i.gblpc] = 4] = i[t(240)], e[e[i[t(227)]] = 5] = "VIDEO", e[e[i.DfIHC] = 6] = i.DfIHC, e[e[t(274)] = 7] = i[t(263)], e[e[i.DilYw] = 10] = i[t(247)], e[e[t(253)] = 14] = i[t(226)], e;
-})(oA || {}), Qi = ((e) => {
- var t = hA, A = {};
- A[t(279)] = t(252), A[t(242)] = t(276);
- var i = A;
- return e[e[t(252)] = 2e3] = i[t(279)], e[e[i[t(242)]] = 1e3] = i[t(242)], e;
-})(Qi || {}), oE = ((e) => {
- var t = hA, A = {};
- A[t(249)] = "normal", A[t(254)] = t(236);
- var i = A;
- return e[e[i[t(249)]] = 0] = i[t(249)], e[e[i.vxQBB] = 1] = t(236), e;
-})(oE || {});
-function hA(e, t) {
- var A = oi();
- return hA = function(i, B) {
- i = i - 226;
- var g = A[i];
- if (hA.EepwqD === void 0) {
- var n = function(E) {
- for (var o = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=", c = "", l = "", u = c + n, C = 0, s, f, h = 0; f = E.charAt(h++); ~f && (s = C % 4 ? s * 64 + f : f, C++ % 4) ? c += u.charCodeAt(h + 10) - 10 !== 0 ? String.fromCharCode(255 & s >> (-2 * C & 6)) : C : 0)
- f = o.indexOf(f);
- for (var x = 0, d = c.length; x < d; x++)
- l += "%" + ("00" + c.charCodeAt(x).toString(16)).slice(-2);
- return decodeURIComponent(l);
- };
- hA.YgHKCI = n, e = arguments, hA.EepwqD = !0;
- }
- var I = A[0], r = i + I, a = e[r];
- if (a)
- g = a;
- else {
- var Q = function(E) {
- this.dOFaCp = E, this.vHeJRd = [1, 0, 0], this.gDXhBL = function() {
- return "newState";
- }, this.gzuvUm = "\\w+ *\\(\\) *{\\w+ *", this.VgEuik = `['|"].+['|"];? *}`;
- };
- Q.prototype.KJmgfQ = function() {
- var E = new RegExp(this.gzuvUm + this.VgEuik), o = E.test(this.gDXhBL.toString()) ? --this.vHeJRd[1] : --this.vHeJRd[0];
- return this.jbPKvt(o);
- }, Q.prototype.jbPKvt = function(E) {
- return ~E ? this.RiRJtr(this.dOFaCp) : E;
- }, Q.prototype.RiRJtr = function(E) {
- for (var o = 0, c = this.vHeJRd.length; o < c; o++)
- this.vHeJRd.push(Math.round(Math.random())), c = this.vHeJRd.length;
- return E(this.vHeJRd[0]);
- }, new Q(hA).KJmgfQ(), g = hA.YgHKCI(g), e[r] = g;
- }
- return g;
- }, hA(e, t);
-}
-var Pn = ((e) => {
- var t = hA, A = {};
- A[t(283)] = t(281), A.nEEUp = "atUser";
- var i = A;
- return e[e[i[t(283)]] = 0] = i[t(283)], e[e[t(265)] = 1] = "atAll", e[e[i[t(256)]] = 2] = t(280), e;
-})(Pn || {}), aE = ((e) => {
- var t = hA, A = {};
- A[t(244)] = t(287), A.hJXvp = t(257), A[t(233)] = "temp";
- var i = A;
- return e[e[i[t(244)]] = 1] = i.EAbEY, e[e[i[t(245)]] = 2] = i[t(245)], e[e[i[t(233)]] = 100] = i[t(233)], e;
-})(aE || {});
-const Uo = vt(288), vo = "https://multimedia.nt.qq.com.cn";
-function oi() {
- var e = ["zuPduLy", "su5wsvrfx05fv19nru1crvi", "DgfdDuK", "CMXmB2W", "mte5nZm0nJDnBMTRwMm", "zMfJzq", "mtG0nZm4zNzdA1fk", "mtyWognwBgvIsa", "A0fNBuO", "z2jSCgm", "y0nLsNq", "tM9qrNq", "qvjl", "rufIrvK", "AePyDNa", "ntK1mZG1meLuChr2Da", "rgLSwxC", "ntu2mdG4nhzhz3fzBa", "r25xwvm", "vKLeru8", "D01nALK", "z2LM", "tufss0rpv04", "DNHrqKi", "uLbt", "BKvfvxa", "z3jVDxa", "yxbWBhK", "ueLd", "rKfdrq", "ruTgqK4", "BM9YBwfS", "rKj2yNq", "ufru", "yxrbBgW", "zgLJzq", "mu5wvMDyAq", "ChnrwKy", "yMfU", "rKLmrq", "BM9YBwfSmG", "tuvnqKvsx05fv19usvrmrq", "C2vHCMnO", "uKvqtfK", "ntC2oxLnBNjZCa", "ANbN", "yLDsBeq", "Cfjeu3q", "zunNCLi", "yxrvC2vY", "BM90qxq", "oda3nJm5C2zHsvLv", "z09esvq", "Dg9tDhjPBMC", "y29UC3rYDwn0B3i", "nLDzvu5ptq", "zNjPzw5K", "Ahr0Chm6lY9Ny2HHDc5XCgLJlMnU", "nfflwgPhCa", "BwvTyMvYsw5JCMvHC2u", "vevyva", "rgzjsem", "uNLvt0e", "DM5ArMu", "tMn2Eeu", "vLrmqxa", "AgDqAfC", "mty4ntm1nxvoC2XZyq"];
- return oi = function() {
- return e;
- }, oi();
-}
-var sE = ((e) => {
- var t = vt, A = {};
- A.psQZF = t(232), A[t(278)] = t(272);
- var i = A;
- return e[e[t(232)] = 12] = i[t(268)], e[e[t(272)] = 17] = i[t(278)], e;
-})(sE || {}), pt = ((e) => {
- var t = vt, A = {};
- A.nJCja = t(262), A[t(241)] = t(271), A[t(277)] = t(266);
- var i = A;
- return e[e[i.nJCja] = 1] = t(262), e[e[i.cCeJt] = 2] = t(271), e[e[i.bWRlD] = 3] = i[t(277)], e;
-})(pt || {}), ai = ((e) => {
- var t = vt, A = {};
- A[t(261)] = t(266);
- var i = A;
- return e[e[i.EKFBN] = 358] = i.EKFBN, e[e[t(255)] = 359] = t(255), e;
-})(ai || {}), CE = ((e) => {
- var t = vt, A = {};
- A.eJCRV = t(290), A[t(228)] = "kicked", A[t(239)] = t(269);
- var i = A;
- return e[e[i[t(231)]] = 1] = i.eJCRV, e[e[i[t(228)]] = 3] = i[t(228)], e[e[i[t(239)]] = 8] = i[t(239)], e;
-})(CE || {});
-(function(e, t) {
- for (var A = bA, i = e(); ; )
- try {
- var B = -parseInt(A(347)) / 1 * (parseInt(A(344)) / 2) + -parseInt(A(345)) / 3 * (parseInt(A(342)) / 4) + parseInt(A(354)) / 5 + parseInt(A(322)) / 6 + parseInt(A(337)) / 7 + parseInt(A(332)) / 8 * (-parseInt(A(349)) / 9) + parseInt(A(333)) / 10;
- if (B === t)
- break;
- i.push(i.shift());
- } catch {
- i.push(i.shift());
- }
-})(si, 263944);
-var Ho = /* @__PURE__ */ function() {
- var e = !0;
- return function(t, A) {
- var i = e ? function() {
- var B = bA;
- if (A) {
- var g = A[B(351)](t, arguments);
- return A = null, g;
- }
- } : function() {
- };
- return e = !1, i;
- };
-}(), Bn = Ho(void 0, function() {
- var e = bA, t = {};
- t[e(326)] = e(330);
- var A = t;
- return Bn[e(335)]()[e(325)](A[e(326)])[e(335)]().constructor(Bn)[e(325)](A[e(326)]);
-});
-Bn();
-var cE = ((e) => {
- var t = bA, A = {};
- A[t(340)] = "3|1|6|5|7|2|0|4", A[t(317)] = "ADMIN_UNSET", A[t(324)] = t(350), A[t(339)] = t(323), A[t(352)] = t(315), A[t(343)] = t(334), A.XLhGY = t(321), A[t(336)] = t(338);
- for (var i = A, B = i[t(340)][t(355)]("|"), g = 0; ; ) {
- switch (B[g++]) {
- case "0":
- e[e[i.ROaLr] = 12] = i.ROaLr;
- continue;
- case "1":
- e[e[i[t(324)]] = 4] = i[t(324)];
- continue;
- case "2":
- e[e[i[t(339)]] = 11] = "MEMBER_EXIT";
- continue;
- case "3":
- e[e[t(315)] = 1] = i[t(352)];
- continue;
- case "4":
- return e;
- case "5":
- e[e.ADMIN_SET = 8] = i[t(343)];
- continue;
- case "6":
- e[e[i[t(341)]] = 7] = "JOIN_REQUEST";
- continue;
- case "7":
- e[e[i[t(336)]] = 9] = t(338);
- continue;
- }
- break;
- }
-})(cE || {});
-function bA(e, t) {
- var A = si();
- return bA = function(i, B) {
- i = i - 315;
- var g = A[i];
- if (bA.HjDlYM === void 0) {
- var n = function(E) {
- for (var o = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=", c = "", l = "", u = c + n, C = 0, s, f, h = 0; f = E.charAt(h++); ~f && (s = C % 4 ? s * 64 + f : f, C++ % 4) ? c += u.charCodeAt(h + 10) - 10 !== 0 ? String.fromCharCode(255 & s >> (-2 * C & 6)) : C : 0)
- f = o.indexOf(f);
- for (var x = 0, d = c.length; x < d; x++)
- l += "%" + ("00" + c.charCodeAt(x).toString(16)).slice(-2);
- return decodeURIComponent(l);
- };
- bA.gBlzQh = n, e = arguments, bA.HjDlYM = !0;
- }
- var I = A[0], r = i + I, a = e[r];
- if (a)
- g = a;
- else {
- var Q = function(E) {
- this.DjZSUm = E, this.SPzhPt = [1, 0, 0], this.ZCdvkp = function() {
- return "newState";
- }, this.kuGmus = "\\w+ *\\(\\) *{\\w+ *", this.UlKTjj = `['|"].+['|"];? *}`;
- };
- Q.prototype.ikxmOB = function() {
- var E = new RegExp(this.kuGmus + this.UlKTjj), o = E.test(this.ZCdvkp.toString()) ? --this.SPzhPt[1] : --this.SPzhPt[0];
- return this.MHmijQ(o);
- }, Q.prototype.MHmijQ = function(E) {
- return ~E ? this.ujftGJ(this.DjZSUm) : E;
- }, Q.prototype.ujftGJ = function(E) {
- for (var o = 0, c = this.SPzhPt.length; o < c; o++)
- this.SPzhPt.push(Math.round(Math.random())), c = this.SPzhPt.length;
- return E(this.SPzhPt[0]);
- }, new Q(bA).ikxmOB(), g = bA.gBlzQh(g), e[r] = g;
- }
- return g;
- }, bA(e, t);
-}
-function si() {
- var e = ["mZuYnK5wBgXlqG", "v0fjvf9iqu5eteu", "ote5odbzwergALy", "su5wsvrfrf9kt0Lo", "yxbWBhK", "AvjqwMK", "qvbquK9wrq", "ndC4ndCWC01owgD5", "C3bSAxq", "su5wsvrfx01f", "suDot1jf", "uK9Hthi", "uKvkrunu", "vwL3tg4", "sfLAB0i", "sK9jtL9srvfvrvnu", "mJu1nJeZmKj1yKz0wa", "tuvnqKvsx0vysvq", "ueHVDKy", "C2vHCMnO", "DLzdBgO", "CuHbEMC", "wenAwu8", "yxbWCM92zq", "kcGOlISPkYKRksSK", "CMvQzwn0", "odHoAKTizKi", "nZa3mJGXmgnnrgzACa", "qurnsu5Fu0vu", "Dg9tDhjPBMC", "qLzpt3q", "mZK4ntmXzMP0wMrR", "s0Lds19nru1crvi", "ww9huwi", "sKrZDNu", "weXOr1K", "mtG0odu2yNDRr1r3", "ruH6t28", "mJGWAKrKvvPm", "mJDszMvWqK4", "uuTgBNO"];
- return si = function() {
- return e;
- }, si();
-}
-var fE = ((e) => {
- var t = bA, A = {};
- A.qHAzg = t(316), A[t(319)] = t(348), A[t(346)] = t(353);
- var i = A;
- return e[e[t(316)] = 0] = i[t(327)], e[e[i[t(319)]] = 1] = i[t(319)], e[e[i.QKFnz] = 2] = i[t(346)], e[e[t(318)] = 3] = "REJECT", e;
-})(fE || {}), uE = ((e) => {
- var t = bA, A = {};
- A[t(328)] = t(329), A[t(320)] = t(331);
- var i = A;
- return e[e[i[t(328)]] = 1] = i[t(328)], e[e[i[t(320)]] = 2] = i[t(320)], e;
-})(uE || {});
-function qA(e, t) {
- var A = Ci();
- return qA = function(i, B) {
- i = i - 250;
- var g = A[i];
- if (qA.emnxPk === void 0) {
- var n = function(E) {
- for (var o = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=", c = "", l = "", u = c + n, C = 0, s, f, h = 0; f = E.charAt(h++); ~f && (s = C % 4 ? s * 64 + f : f, C++ % 4) ? c += u.charCodeAt(h + 10) - 10 !== 0 ? String.fromCharCode(255 & s >> (-2 * C & 6)) : C : 0)
- f = o.indexOf(f);
- for (var x = 0, d = c.length; x < d; x++)
- l += "%" + ("00" + c.charCodeAt(x).toString(16)).slice(-2);
- return decodeURIComponent(l);
- };
- qA.qpklNX = n, e = arguments, qA.emnxPk = !0;
- }
- var I = A[0], r = i + I, a = e[r];
- if (a)
- g = a;
- else {
- var Q = function(E) {
- this.KuRbhf = E, this.cOdDNQ = [1, 0, 0], this.klJCId = function() {
- return "newState";
- }, this.JCjQUH = "\\w+ *\\(\\) *{\\w+ *", this.dGHVtE = `['|"].+['|"];? *}`;
- };
- Q.prototype.neVudu = function() {
- var E = new RegExp(this.JCjQUH + this.dGHVtE), o = E.test(this.klJCId.toString()) ? --this.cOdDNQ[1] : --this.cOdDNQ[0];
- return this.DeQjsr(o);
- }, Q.prototype.DeQjsr = function(E) {
- return ~E ? this.xUbvgx(this.KuRbhf) : E;
- }, Q.prototype.xUbvgx = function(E) {
- for (var o = 0, c = this.cOdDNQ.length; o < c; o++)
- this.cOdDNQ.push(Math.round(Math.random())), c = this.cOdDNQ.length;
- return E(this.cOdDNQ[0]);
- }, new Q(qA).neVudu(), g = qA.qpklNX(g), e[r] = g;
- }
- return g;
- }, qA(e, t);
-}
-function Ci() {
- var e = ["C2vHCMnO", "whLgAwe", "mJq1mtK4mvrVsuzxEq", "AM11teK", "mZm3mgLZvwDSEa", "nJiWmZq0uennD0n6", "mZu2nZyZmgzjwu1dDW", "owz0D0f4Aq", "rKfez1O", "yxbWBhK", "BLnYu3y", "uerZuM0", "B0jMv1y", "mZm0nZDdt0HAEha", "qvvesu8", "mtCYnZyXnuvVAgPZyG", "AvnAEgu", "kcGOlISPkYKRksSK", "tuX3tvK", "z2Pru0y", "nJHqtwjuwNe", "vKLeru8", "su1br0u", "t1rirvi", "y29UC3rYDwn0B3i", "mJaWEu1HEeHO", "mZuYnJq0yxPnrhnv", "Dg9tDhjPBMC"];
- return Ci = function() {
- return e;
- }, Ci();
-}
-(function(e, t) {
- for (var A = qA, i = e(); ; )
- try {
- var B = -parseInt(A(262)) / 1 * (-parseInt(A(255)) / 2) + parseInt(A(271)) / 3 * (parseInt(A(250)) / 4) + -parseInt(A(273)) / 5 + -parseInt(A(256)) / 6 + parseInt(A(260)) / 7 + -parseInt(A(263)) / 8 * (-parseInt(A(265)) / 9) + -parseInt(A(264)) / 10;
- if (B === t)
- break;
- i.push(i.shift());
- } catch {
- i.push(i.shift());
- }
-})(Ci, 193469);
-var Yo = function() {
- var e = qA, t = {};
- t[e(277)] = function(B, g) {
- return B === g;
- }, t[e(274)] = "BdiDT";
- var A = t, i = !0;
- return function(B, g) {
- var n = i ? function() {
- var I = qA, r = {};
- r[I(261)] = "(((.+)+)+)+$";
- var a = r;
- if (A[I(277)](A.iSZxe, A.iSZxe)) {
- if (g) {
- var Q = g[I(267)](B, arguments);
- return g = null, Q;
- }
- } else
- return _0x148fa2[I(257)]()[I(258)](a[I(261)])[I(257)]()[I(254)](_0x4ceb31).search(a[I(261)]);
- } : function() {
- };
- return i = !1, n;
- };
-}(), gn = Yo(void 0, function() {
- var e = qA, t = {};
- t[e(270)] = e(275);
- var A = t;
- return gn.toString()[e(258)](A[e(270)]).toString()[e(254)](gn)[e(258)](A[e(270)]);
-});
-gn();
-var xE = ((e) => {
- var t = qA, A = {};
- A[t(259)] = t(252), A[t(268)] = t(251), A[t(269)] = t(272), A[t(266)] = "DOCUMENT", A[t(276)] = t(253);
- var i = A;
- return e[e[t(252)] = 0] = i.XyFia, e[e[i[t(268)]] = 1] = i[t(268)], e[e[i[t(269)]] = 2] = i[t(269)], e[e[i[t(266)]] = 3] = i[t(266)], e[e[i[t(276)]] = 4] = t(253), e;
-})(xE || {}), it = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : {};
-function gB(e) {
- return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, "default") ? e.default : e;
-}
-function Lo(e) {
- if (e.__esModule)
- return e;
- var t = e.default;
- if (typeof t == "function") {
- var A = function i() {
- return this instanceof i ? Reflect.construct(t, arguments, this.constructor) : t.apply(this, arguments);
- };
- A.prototype = t.prototype;
- } else
- A = {};
- return Object.defineProperty(A, "__esModule", { value: !0 }), Object.keys(e).forEach(function(i) {
- var B = Object.getOwnPropertyDescriptor(e, i);
- Object.defineProperty(A, i, B.get ? B : {
- enumerable: !0,
- get: function() {
- return e[i];
- }
- });
- }), A;
-}
-var MB = { exports: {} }, kB, GI;
-function Mo() {
- if (GI)
- return kB;
- GI = 1, kB = i, i.sync = B;
- var e = nA;
- function t(g, n) {
- var I = n.pathExt !== void 0 ? n.pathExt : process.env.PATHEXT;
- if (!I || (I = I.split(";"), I.indexOf("") !== -1))
- return !0;
- for (var r = 0; r < I.length; r++) {
- var a = I[r].toLowerCase();
- if (a && g.substr(-a.length).toLowerCase() === a)
- return !0;
- }
- return !1;
- }
- function A(g, n, I) {
- return !g.isSymbolicLink() && !g.isFile() ? !1 : t(n, I);
- }
- function i(g, n, I) {
- e.stat(g, function(r, a) {
- I(r, r ? !1 : A(a, g, n));
- });
- }
- function B(g, n) {
- return A(e.statSync(g), g, n);
- }
- return kB;
-}
-var KB, FI;
-function ko() {
- if (FI)
- return KB;
- FI = 1, KB = t, t.sync = A;
- var e = nA;
- function t(g, n, I) {
- e.stat(g, function(r, a) {
- I(r, r ? !1 : i(a, n));
- });
- }
- function A(g, n) {
- return i(e.statSync(g), n);
- }
- function i(g, n) {
- return g.isFile() && B(g, n);
- }
- function B(g, n) {
- var I = g.mode, r = g.uid, a = g.gid, Q = n.uid !== void 0 ? n.uid : process.getuid && process.getuid(), E = n.gid !== void 0 ? n.gid : process.getgid && process.getgid(), o = parseInt("100", 8), c = parseInt("010", 8), l = parseInt("001", 8), u = o | c, C = I & l || I & c && a === E || I & o && r === Q || I & u && Q === 0;
- return C;
- }
- return KB;
-}
-var JB, RI;
-function Ko() {
- if (RI)
- return JB;
- RI = 1;
- var e;
- process.platform === "win32" || it.TESTING_WINDOWS ? e = Mo() : e = ko(), JB = t, t.sync = A;
- function t(i, B, g) {
- if (typeof B == "function" && (g = B, B = {}), !g) {
- if (typeof Promise != "function")
- throw new TypeError("callback not provided");
- return new Promise(function(n, I) {
- t(i, B || {}, function(r, a) {
- r ? I(r) : n(a);
- });
- });
- }
- e(i, B || {}, function(n, I) {
- n && (n.code === "EACCES" || B && B.ignoreErrors) && (n = null, I = !1), g(n, I);
- });
- }
- function A(i, B) {
- try {
- return e.sync(i, B || {});
- } catch (g) {
- if (B && B.ignoreErrors || g.code === "EACCES")
- return !1;
- throw g;
- }
- }
- return JB;
-}
-var WB, SI;
-function Jo() {
- if (SI)
- return WB;
- SI = 1, WB = n, n.sync = I;
- var e = process.platform === "win32" || process.env.OSTYPE === "cygwin" || process.env.OSTYPE === "msys", t = vA, A = e ? ";" : ":", i = Ko();
- function B(r) {
- var a = new Error("not found: " + r);
- return a.code = "ENOENT", a;
- }
- function g(r, a) {
- var Q = a.colon || A, E = a.path || process.env.PATH || "", o = [""];
- E = E.split(Q);
- var c = "";
- return e && (E.unshift(process.cwd()), c = a.pathExt || process.env.PATHEXT || ".EXE;.CMD;.BAT;.COM", o = c.split(Q), r.indexOf(".") !== -1 && o[0] !== "" && o.unshift("")), (r.match(/\//) || e && r.match(/\\/)) && (E = [""]), {
- env: E,
- ext: o,
- extExe: c
- };
- }
- function n(r, a, Q) {
- typeof a == "function" && (Q = a, a = {});
- var E = g(r, a), o = E.env, c = E.ext, l = E.extExe, u = [];
- (function C(s, f) {
- if (s === f)
- return a.all && u.length ? Q(null, u) : Q(B(r));
- var h = o[s];
- h.charAt(0) === '"' && h.slice(-1) === '"' && (h = h.slice(1, -1));
- var x = t.join(h, r);
- !h && /^\.[\\\/]/.test(r) && (x = r.slice(0, 2) + x), function d(m, H) {
- if (m === H)
- return C(s + 1, f);
- var v = c[m];
- i(x + v, { pathExt: l }, function(N, M) {
- if (!N && M)
- if (a.all)
- u.push(x + v);
- else
- return Q(null, x + v);
- return d(m + 1, H);
- });
- }(0, c.length);
- })(0, o.length);
- }
- function I(r, a) {
- a = a || {};
- for (var Q = g(r, a), E = Q.env, o = Q.ext, c = Q.extExe, l = [], u = 0, C = E.length; u < C; u++) {
- var s = E[u];
- s.charAt(0) === '"' && s.slice(-1) === '"' && (s = s.slice(1, -1));
- var f = t.join(s, r);
- !s && /^\.[\\\/]/.test(r) && (f = r.slice(0, 2) + f);
- for (var h = 0, x = o.length; h < x; h++) {
- var d = f + o[h], m;
- try {
- if (m = i.sync(d, { pathExt: c }), m)
- if (a.all)
- l.push(d);
- else
- return d;
- } catch {
- }
- }
- }
- if (a.all && l.length)
- return l;
- if (a.nothrow)
- return null;
- throw B(r);
- }
- return WB;
-}
-var bI;
-function Ne() {
- if (bI)
- return MB.exports;
- bI = 1, Vn.exec;
- var e = tE.platform().match(/win(32|64)/), t = Jo(), A = /\r\n|\r|\n/g, i = /^\[?(.*?)\]?$/, B = /[,]/, g = {};
- function n(r) {
- var a = {};
- r = r.replace(/=\s+/g, "=").trim();
- for (var Q = r.split(" "), E = 0; E < Q.length; E++) {
- var o = Q[E].split("=", 2), c = o[0], l = o[1];
- if (typeof l > "u")
- return null;
- a[c] = l;
- }
- return a;
- }
- var I = MB.exports = {
- isWindows: e,
- streamRegexp: i,
- /**
- * Copy an object keys into another one
- *
- * @param {Object} source source object
- * @param {Object} dest destination object
- * @private
- */
- copy: function(r, a) {
- Object.keys(r).forEach(function(Q) {
- a[Q] = r[Q];
- });
- },
- /**
- * Create an argument list
- *
- * Returns a function that adds new arguments to the list.
- * It also has the following methods:
- * - clear() empties the argument list
- * - get() returns the argument list
- * - find(arg, count) finds 'arg' in the list and return the following 'count' items, or undefined if not found
- * - remove(arg, count) remove 'arg' in the list as well as the following 'count' items
- *
- * @private
- */
- args: function() {
- var r = [], a = function() {
- arguments.length === 1 && Array.isArray(arguments[0]) ? r = r.concat(arguments[0]) : r = r.concat([].slice.call(arguments));
- };
- return a.clear = function() {
- r = [];
- }, a.get = function() {
- return r;
- }, a.find = function(Q, E) {
- var o = r.indexOf(Q);
- if (o !== -1)
- return r.slice(o + 1, o + 1 + (E || 0));
- }, a.remove = function(Q, E) {
- var o = r.indexOf(Q);
- o !== -1 && r.splice(o, (E || 0) + 1);
- }, a.clone = function() {
- var Q = I.args();
- return Q(r), Q;
- }, a;
- },
- /**
- * Generate filter strings
- *
- * @param {String[]|Object[]} filters filter specifications. When using objects,
- * each must have the following properties:
- * @param {String} filters.filter filter name
- * @param {String|Array} [filters.inputs] (array of) input stream specifier(s) for the filter,
- * defaults to ffmpeg automatically choosing the first unused matching streams
- * @param {String|Array} [filters.outputs] (array of) output stream specifier(s) for the filter,
- * defaults to ffmpeg automatically assigning the output to the output file
- * @param {Object|String|Array} [filters.options] filter options, can be omitted to not set any options
- * @return String[]
- * @private
- */
- makeFilterStrings: function(r) {
- return r.map(function(a) {
- if (typeof a == "string")
- return a;
- var Q = "";
- return Array.isArray(a.inputs) ? Q += a.inputs.map(function(E) {
- return E.replace(i, "[$1]");
- }).join("") : typeof a.inputs == "string" && (Q += a.inputs.replace(i, "[$1]")), Q += a.filter, a.options && (typeof a.options == "string" || typeof a.options == "number" ? Q += "=" + a.options : Array.isArray(a.options) ? Q += "=" + a.options.map(function(E) {
- return typeof E == "string" && E.match(B) ? "'" + E + "'" : E;
- }).join(":") : Object.keys(a.options).length && (Q += "=" + Object.keys(a.options).map(function(E) {
- var o = a.options[E];
- return typeof o == "string" && o.match(B) && (o = "'" + o + "'"), E + "=" + o;
- }).join(":"))), Array.isArray(a.outputs) ? Q += a.outputs.map(function(E) {
- return E.replace(i, "[$1]");
- }).join("") : typeof a.outputs == "string" && (Q += a.outputs.replace(i, "[$1]")), Q;
- });
- },
- /**
- * Search for an executable
- *
- * Uses 'which' or 'where' depending on platform
- *
- * @param {String} name executable name
- * @param {Function} callback callback with signature (err, path)
- * @private
- */
- which: function(r, a) {
- if (r in g)
- return a(null, g[r]);
- t(r, function(Q, E) {
- if (Q)
- return a(null, g[r] = "");
- a(null, g[r] = E);
- });
- },
- /**
- * Convert a [[hh:]mm:]ss[.xxx] timemark into seconds
- *
- * @param {String} timemark timemark string
- * @return Number
- * @private
- */
- timemarkToSeconds: function(r) {
- if (typeof r == "number")
- return r;
- if (r.indexOf(":") === -1 && r.indexOf(".") >= 0)
- return Number(r);
- var a = r.split(":"), Q = Number(a.pop());
- return a.length && (Q += Number(a.pop()) * 60), a.length && (Q += Number(a.pop()) * 3600), Q;
- },
- /**
- * Extract codec data from ffmpeg stderr and emit 'codecData' event if appropriate
- * Call it with an initially empty codec object once with each line of stderr output until it returns true
- *
- * @param {FfmpegCommand} command event emitter
- * @param {String} stderrLine ffmpeg stderr output line
- * @param {Object} codecObject object used to accumulate codec data between calls
- * @return {Boolean} true if codec data is complete (and event was emitted), false otherwise
- * @private
- */
- extractCodecData: function(r, a, Q) {
- var E = /Input #[0-9]+, ([^ ]+),/, o = /Duration\: ([^,]+)/, c = /Audio\: (.*)/, l = /Video\: (.*)/;
- "inputStack" in Q || (Q.inputStack = [], Q.inputIndex = -1, Q.inInput = !1);
- var u = Q.inputStack, C = Q.inputIndex, s = Q.inInput, f, h, x, d;
- if (f = a.match(E))
- s = Q.inInput = !0, C = Q.inputIndex = Q.inputIndex + 1, u[C] = { format: f[1], audio: "", video: "", duration: "" };
- else if (s && (h = a.match(o)))
- u[C].duration = h[1];
- else if (s && (x = a.match(c)))
- x = x[1].split(", "), u[C].audio = x[0], u[C].audio_details = x;
- else if (s && (d = a.match(l)))
- d = d[1].split(", "), u[C].video = d[0], u[C].video_details = d;
- else if (/Output #\d+/.test(a))
- s = Q.inInput = !1;
- else if (/Stream mapping:|Press (\[q\]|ctrl-c) to stop/.test(a))
- return r.emit.apply(r, ["codecData"].concat(u)), !0;
- return !1;
- },
- /**
- * Extract progress data from ffmpeg stderr and emit 'progress' event if appropriate
- *
- * @param {FfmpegCommand} command event emitter
- * @param {String} stderrLine ffmpeg stderr data
- * @private
- */
- extractProgress: function(r, a) {
- var Q = n(a);
- if (Q) {
- var E = {
- frames: parseInt(Q.frame, 10),
- currentFps: parseInt(Q.fps, 10),
- currentKbps: Q.bitrate ? parseFloat(Q.bitrate.replace("kbits/s", "")) : 0,
- targetSize: parseInt(Q.size || Q.Lsize, 10),
- timemark: Q.time
- };
- if (r._ffprobeData && r._ffprobeData.format && r._ffprobeData.format.duration) {
- var o = Number(r._ffprobeData.format.duration);
- isNaN(o) || (E.percent = I.timemarkToSeconds(E.timemark) / o * 100);
- }
- r.emit("progress", E);
- }
- },
- /**
- * Extract error message(s) from ffmpeg stderr
- *
- * @param {String} stderr ffmpeg stderr data
- * @return {String}
- * @private
- */
- extractError: function(r) {
- return r.split(A).reduce(function(a, Q) {
- return Q.charAt(0) === " " || Q.charAt(0) === "[" ? [] : (a.push(Q), a);
- }, []).join(`
-`);
- },
- /**
- * Creates a line ring buffer object with the following methods:
- * - append(str) : appends a string or buffer
- * - get() : returns the whole string
- * - close() : prevents further append() calls and does a last call to callbacks
- * - callback(cb) : calls cb for each line (incl. those already in the ring)
- *
- * @param {Numebr} maxLines maximum number of lines to store (<= 0 for unlimited)
- */
- linesRing: function(r) {
- var a = [], Q = [], E = null, o = !1, c = r - 1;
- function l(u) {
- a.forEach(function(C) {
- C(u);
- });
- }
- return {
- callback: function(u) {
- Q.forEach(function(C) {
- u(C);
- }), a.push(u);
- },
- append: function(u) {
- if (!o && (u instanceof Buffer && (u = "" + u), !(!u || u.length === 0))) {
- var C = u.split(A);
- C.length === 1 ? E !== null ? E = E + C.shift() : E = C.shift() : (E !== null && (E = E + C.shift(), l(E), Q.push(E)), E = C.pop(), C.forEach(function(s) {
- l(s), Q.push(s);
- }), c > -1 && Q.length > c && Q.splice(0, Q.length - c));
- }
- },
- get: function() {
- return E !== null ? Q.concat([E]).join(`
-`) : Q.join(`
-`);
- },
- close: function() {
- o || (E !== null && (l(E), Q.push(E), c > -1 && Q.length > c && Q.shift(), E = null), o = !0);
- }
- };
- }
- };
- return MB.exports;
-}
-var qB, NI;
-function Wo() {
- if (NI)
- return qB;
- NI = 1;
- var e = Ne();
- return qB = function(t) {
- t.mergeAdd = t.addInput = t.input = function(A) {
- var i = !1, B = !1;
- if (typeof A != "string") {
- if (!("readable" in A) || !A.readable)
- throw new Error("Invalid input");
- var g = this._inputs.some(function(I) {
- return I.isStream;
- });
- if (g)
- throw new Error("Only one input stream is supported");
- B = !0, A.pause();
- } else {
- var n = A.match(/^([a-z]{2,}):/i);
- i = !n || n[0] === "file";
- }
- return this._inputs.push(this._currentInput = {
- source: A,
- isFile: i,
- isStream: B,
- options: e.args()
- }), this;
- }, t.withInputFormat = t.inputFormat = t.fromFormat = function(A) {
- if (!this._currentInput)
- throw new Error("No input specified");
- return this._currentInput.options("-f", A), this;
- }, t.withInputFps = t.withInputFPS = t.withFpsInput = t.withFPSInput = t.inputFPS = t.inputFps = t.fpsInput = t.FPSInput = function(A) {
- if (!this._currentInput)
- throw new Error("No input specified");
- return this._currentInput.options("-r", A), this;
- }, t.nativeFramerate = t.withNativeFramerate = t.native = function() {
- if (!this._currentInput)
- throw new Error("No input specified");
- return this._currentInput.options("-re"), this;
- }, t.setStartTime = t.seekInput = function(A) {
- if (!this._currentInput)
- throw new Error("No input specified");
- return this._currentInput.options("-ss", A), this;
- }, t.loop = function(A) {
- if (!this._currentInput)
- throw new Error("No input specified");
- return this._currentInput.options("-loop", "1"), typeof A < "u" && this.duration(A), this;
- };
- }, qB;
-}
-var ZB, UI;
-function qo() {
- if (UI)
- return ZB;
- UI = 1;
- var e = Ne();
- return ZB = function(t) {
- t.withNoAudio = t.noAudio = function() {
- return this._currentOutput.audio.clear(), this._currentOutput.audioFilters.clear(), this._currentOutput.audio("-an"), this;
- }, t.withAudioCodec = t.audioCodec = function(A) {
- return this._currentOutput.audio("-acodec", A), this;
- }, t.withAudioBitrate = t.audioBitrate = function(A) {
- return this._currentOutput.audio("-b:a", ("" + A).replace(/k?$/, "k")), this;
- }, t.withAudioChannels = t.audioChannels = function(A) {
- return this._currentOutput.audio("-ac", A), this;
- }, t.withAudioFrequency = t.audioFrequency = function(A) {
- return this._currentOutput.audio("-ar", A), this;
- }, t.withAudioQuality = t.audioQuality = function(A) {
- return this._currentOutput.audio("-aq", A), this;
- }, t.withAudioFilter = t.withAudioFilters = t.audioFilter = t.audioFilters = function(A) {
- return arguments.length > 1 && (A = [].slice.call(arguments)), Array.isArray(A) || (A = [A]), this._currentOutput.audioFilters(e.makeFilterStrings(A)), this;
- };
- }, ZB;
-}
-var VB, vI;
-function Zo() {
- if (vI)
- return VB;
- vI = 1;
- var e = Ne();
- return VB = function(t) {
- t.withNoVideo = t.noVideo = function() {
- return this._currentOutput.video.clear(), this._currentOutput.videoFilters.clear(), this._currentOutput.video("-vn"), this;
- }, t.withVideoCodec = t.videoCodec = function(A) {
- return this._currentOutput.video("-vcodec", A), this;
- }, t.withVideoBitrate = t.videoBitrate = function(A, i) {
- return A = ("" + A).replace(/k?$/, "k"), this._currentOutput.video("-b:v", A), i && this._currentOutput.video(
- "-maxrate",
- A,
- "-minrate",
- A,
- "-bufsize",
- "3M"
- ), this;
- }, t.withVideoFilter = t.withVideoFilters = t.videoFilter = t.videoFilters = function(A) {
- return arguments.length > 1 && (A = [].slice.call(arguments)), Array.isArray(A) || (A = [A]), this._currentOutput.videoFilters(e.makeFilterStrings(A)), this;
- }, t.withOutputFps = t.withOutputFPS = t.withFpsOutput = t.withFPSOutput = t.withFps = t.withFPS = t.outputFPS = t.outputFps = t.fpsOutput = t.FPSOutput = t.fps = t.FPS = function(A) {
- return this._currentOutput.video("-r", A), this;
- }, t.takeFrames = t.withFrames = t.frames = function(A) {
- return this._currentOutput.video("-vframes", A), this;
- };
- }, VB;
-}
-var TB, HI;
-function Vo() {
- if (HI)
- return TB;
- HI = 1;
- function e(A, i, B, g) {
- return [
- /*
- In both cases, we first have to scale the input to match the requested size.
- When using computed width/height, we truncate them to multiples of 2
- */
- {
- filter: "scale",
- options: {
- w: "if(gt(a," + B + ")," + A + ",trunc(" + i + "*a/2)*2)",
- h: "if(lt(a," + B + ")," + i + ",trunc(" + A + "/a/2)*2)"
- }
- },
- /*
- Then we pad the scaled input to match the target size
- (here iw and ih refer to the padding input, i.e the scaled output)
- */
- {
- filter: "pad",
- options: {
- w: A,
- h: i,
- x: "if(gt(a," + B + "),0,(" + A + "-iw)/2)",
- y: "if(lt(a," + B + "),0,(" + i + "-ih)/2)",
- color: g
- }
- }
- ];
- }
- function t(A, i, B) {
- var g = A.sizeData = A.sizeData || {};
- if (g[i] = B, !("size" in g))
- return [];
- var n = g.size.match(/([0-9]+)x([0-9]+)/), I = g.size.match(/([0-9]+)x\?/), r = g.size.match(/\?x([0-9]+)/), a = g.size.match(/\b([0-9]{1,3})%/), Q, E, o;
- if (a) {
- var c = Number(a[1]) / 100;
- return [{
- filter: "scale",
- options: {
- w: "trunc(iw*" + c + "/2)*2",
- h: "trunc(ih*" + c + "/2)*2"
- }
- }];
- } else {
- if (n)
- return Q = Math.round(Number(n[1]) / 2) * 2, E = Math.round(Number(n[2]) / 2) * 2, o = Q / E, g.pad ? e(Q, E, o, g.pad) : [{ filter: "scale", options: { w: Q, h: E } }];
- if (I || r)
- return "aspect" in g ? (Q = I ? I[1] : Math.round(Number(r[1]) * g.aspect), E = r ? r[1] : Math.round(Number(I[1]) / g.aspect), Q = Math.round(Q / 2) * 2, E = Math.round(E / 2) * 2, g.pad ? e(Q, E, g.aspect, g.pad) : [{ filter: "scale", options: { w: Q, h: E } }]) : I ? [{
- filter: "scale",
- options: {
- w: Math.round(Number(I[1]) / 2) * 2,
- h: "trunc(ow/a/2)*2"
- }
- }] : [{
- filter: "scale",
- options: {
- w: "trunc(oh*a/2)*2",
- h: Math.round(Number(r[1]) / 2) * 2
- }
- }];
- throw new Error("Invalid size specified: " + g.size);
- }
- }
- return TB = function(A) {
- A.keepPixelAspect = // Only for compatibility, this is not about keeping _pixel_ aspect ratio
- A.keepDisplayAspect = A.keepDisplayAspectRatio = A.keepDAR = function() {
- return this.videoFilters([
- {
- filter: "scale",
- options: {
- w: "if(gt(sar,1),iw*sar,iw)",
- h: "if(lt(sar,1),ih/sar,ih)"
- }
- },
- {
- filter: "setsar",
- options: "1"
- }
- ]);
- }, A.withSize = A.setSize = A.size = function(i) {
- var B = t(this._currentOutput, "size", i);
- return this._currentOutput.sizeFilters.clear(), this._currentOutput.sizeFilters(B), this;
- }, A.withAspect = A.withAspectRatio = A.setAspect = A.setAspectRatio = A.aspect = A.aspectRatio = function(i) {
- var B = Number(i);
- if (isNaN(B)) {
- var g = i.match(/^(\d+):(\d+)$/);
- if (g)
- B = Number(g[1]) / Number(g[2]);
- else
- throw new Error("Invalid aspect ratio: " + i);
- }
- var n = t(this._currentOutput, "aspect", B);
- return this._currentOutput.sizeFilters.clear(), this._currentOutput.sizeFilters(n), this;
- }, A.applyAutopadding = A.applyAutoPadding = A.applyAutopad = A.applyAutoPad = A.withAutopadding = A.withAutoPadding = A.withAutopad = A.withAutoPad = A.autoPad = A.autopad = function(i, B) {
- typeof i == "string" && (B = i, i = !0), typeof i > "u" && (i = !0);
- var g = t(this._currentOutput, "pad", i ? B || "black" : !1);
- return this._currentOutput.sizeFilters.clear(), this._currentOutput.sizeFilters(g), this;
- };
- }, TB;
-}
-var PB, YI;
-function To() {
- if (YI)
- return PB;
- YI = 1;
- var e = Ne();
- return PB = function(t) {
- t.addOutput = t.output = function(A, i) {
- var B = !1;
- if (!A && this._currentOutput)
- throw new Error("Invalid output");
- if (A && typeof A != "string") {
- if (!("writable" in A) || !A.writable)
- throw new Error("Invalid output");
- } else if (typeof A == "string") {
- var g = A.match(/^([a-z]{2,}):/i);
- B = !g || g[0] === "file";
- }
- if (A && !("target" in this._currentOutput))
- this._currentOutput.target = A, this._currentOutput.isFile = B, this._currentOutput.pipeopts = i || {};
- else {
- if (A && typeof A != "string") {
- var n = this._outputs.some(function(r) {
- return typeof r.target != "string";
- });
- if (n)
- throw new Error("Only one output stream is supported");
- }
- this._outputs.push(this._currentOutput = {
- target: A,
- isFile: B,
- flags: {},
- pipeopts: i || {}
- });
- var I = this;
- ["audio", "audioFilters", "video", "videoFilters", "sizeFilters", "options"].forEach(function(r) {
- I._currentOutput[r] = e.args();
- }), A || delete this._currentOutput.target;
- }
- return this;
- }, t.seekOutput = t.seek = function(A) {
- return this._currentOutput.options("-ss", A), this;
- }, t.withDuration = t.setDuration = t.duration = function(A) {
- return this._currentOutput.options("-t", A), this;
- }, t.toFormat = t.withOutputFormat = t.outputFormat = t.format = function(A) {
- return this._currentOutput.options("-f", A), this;
- }, t.map = function(A) {
- return this._currentOutput.options("-map", A.replace(e.streamRegexp, "[$1]")), this;
- }, t.updateFlvMetadata = t.flvmeta = function() {
- return this._currentOutput.flags.flvmeta = !0, this;
- };
- }, PB;
-}
-var XB, LI;
-function Po() {
- if (LI)
- return XB;
- LI = 1;
- var e = Ne();
- return XB = function(t) {
- t.addInputOption = t.addInputOptions = t.withInputOption = t.withInputOptions = t.inputOption = t.inputOptions = function(A) {
- if (!this._currentInput)
- throw new Error("No input specified");
- var i = !0;
- return arguments.length > 1 && (A = [].slice.call(arguments), i = !1), Array.isArray(A) || (A = [A]), this._currentInput.options(A.reduce(function(B, g) {
- var n = String(g).split(" ");
- return i && n.length === 2 ? B.push(n[0], n[1]) : B.push(g), B;
- }, [])), this;
- }, t.addOutputOption = t.addOutputOptions = t.addOption = t.addOptions = t.withOutputOption = t.withOutputOptions = t.withOption = t.withOptions = t.outputOption = t.outputOptions = function(A) {
- var i = !0;
- return arguments.length > 1 && (A = [].slice.call(arguments), i = !1), Array.isArray(A) || (A = [A]), this._currentOutput.options(A.reduce(function(B, g) {
- var n = String(g).split(" ");
- return i && n.length === 2 ? B.push(n[0], n[1]) : B.push(g), B;
- }, [])), this;
- }, t.filterGraph = t.complexFilter = function(A, i) {
- if (this._complexFilters.clear(), Array.isArray(A) || (A = [A]), this._complexFilters("-filter_complex", e.makeFilterStrings(A).join(";")), Array.isArray(i)) {
- var B = this;
- i.forEach(function(g) {
- B._complexFilters("-map", g.replace(e.streamRegexp, "[$1]"));
- });
- } else
- typeof i == "string" && this._complexFilters("-map", i.replace(e.streamRegexp, "[$1]"));
- return this;
- };
- }, XB;
-}
-function Xn(e) {
- throw new Error('Could not dynamically require "' + e + '". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.');
-}
-var zB, MI;
-function Xo() {
- if (MI)
- return zB;
- MI = 1;
- var e = vA;
- return zB = function(t) {
- t.usingPreset = t.preset = function(A) {
- if (typeof A == "function")
- A(this);
- else
- try {
- var i = e.join(this.options.presets, A), B = Xn(i);
- if (typeof B.load == "function")
- B.load(this);
- else
- throw new Error("preset " + i + " has no load() function");
- } catch (g) {
- throw new Error("preset " + i + " could not be loaded: " + g.message);
- }
- return this;
- };
- }, zB;
-}
-function hE(e, ...t) {
- return (...A) => e(...t, ...A);
-}
-function Ht(e) {
- return function(...t) {
- var A = t.pop();
- return e.call(this, t, A);
- };
-}
-var zo = typeof queueMicrotask == "function" && queueMicrotask, dE = typeof setImmediate == "function" && setImmediate, lE = typeof process == "object" && typeof process.nextTick == "function";
-function wE(e) {
- setTimeout(e, 0);
-}
-function yE(e) {
- return (t, ...A) => e(() => t(...A));
-}
-var Dt;
-zo ? Dt = queueMicrotask : dE ? Dt = setImmediate : lE ? Dt = process.nextTick : Dt = wE;
-var Ze = yE(Dt);
-function Gt(e) {
- return Yt(e) ? function(...t) {
- const A = t.pop(), i = e.apply(this, t);
- return kI(i, A);
- } : Ht(function(t, A) {
- var i;
- try {
- i = e.apply(this, t);
- } catch (B) {
- return A(B);
- }
- if (i && typeof i.then == "function")
- return kI(i, A);
- A(null, i);
- });
-}
-function kI(e, t) {
- return e.then((A) => {
- KI(t, null, A);
- }, (A) => {
- KI(t, A && (A instanceof Error || A.message) ? A : new Error(A));
- });
-}
-function KI(e, t, A) {
- try {
- e(t, A);
- } catch (i) {
- Ze((B) => {
- throw B;
- }, i);
- }
-}
-function Yt(e) {
- return e[Symbol.toStringTag] === "AsyncFunction";
-}
-function Oo(e) {
- return e[Symbol.toStringTag] === "AsyncGenerator";
-}
-function _o(e) {
- return typeof e[Symbol.asyncIterator] == "function";
-}
-function eA(e) {
- if (typeof e != "function")
- throw new Error("expected a function");
- return Yt(e) ? Gt(e) : e;
-}
-function AA(e, t) {
- if (t || (t = e.length), !t)
- throw new Error("arity is undefined");
- function A(...i) {
- return typeof i[t - 1] == "function" ? e.apply(this, i) : new Promise((B, g) => {
- i[t - 1] = (n, ...I) => {
- if (n)
- return g(n);
- B(I.length > 1 ? I : I[0]);
- }, e.apply(this, i);
- });
- }
- return A;
-}
-function DE(e) {
- return function(A, ...i) {
- return AA(function(g) {
- var n = this;
- return e(A, (I, r) => {
- eA(I).apply(n, i.concat(r));
- }, g);
- });
- };
-}
-function zn(e, t, A, i) {
- t = t || [];
- var B = [], g = 0, n = eA(A);
- return e(t, (I, r, a) => {
- var Q = g++;
- n(I, (E, o) => {
- B[Q] = o, a(E);
- });
- }, (I) => {
- i(I, B);
- });
-}
-function nB(e) {
- return e && typeof e.length == "number" && e.length >= 0 && e.length % 1 === 0;
-}
-const jo = {};
-var IB = jo;
-function Xe(e) {
- function t(...A) {
- if (e !== null) {
- var i = e;
- e = null, i.apply(this, A);
- }
- }
- return Object.assign(t, e), t;
-}
-function $o(e) {
- return e[Symbol.iterator] && e[Symbol.iterator]();
-}
-function Aa(e) {
- var t = -1, A = e.length;
- return function() {
- return ++t < A ? { value: e[t], key: t } : null;
- };
-}
-function ea(e) {
- var t = -1;
- return function() {
- var i = e.next();
- return i.done ? null : (t++, { value: i.value, key: t });
- };
-}
-function ta(e) {
- var t = e ? Object.keys(e) : [], A = -1, i = t.length;
- return function B() {
- var g = t[++A];
- return g === "__proto__" ? B() : A < i ? { value: e[g], key: g } : null;
- };
-}
-function ia(e) {
- if (nB(e))
- return Aa(e);
- var t = $o(e);
- return t ? ea(t) : ta(e);
-}
-function ze(e) {
- return function(...t) {
- if (e === null)
- throw new Error("Callback was already called.");
- var A = e;
- e = null, A.apply(this, t);
- };
-}
-function JI(e, t, A, i) {
- let B = !1, g = !1, n = !1, I = 0, r = 0;
- function a() {
- I >= t || n || B || (n = !0, e.next().then(({ value: o, done: c }) => {
- if (!(g || B)) {
- if (n = !1, c) {
- B = !0, I <= 0 && i(null);
- return;
- }
- I++, A(o, r, Q), r++, a();
- }
- }).catch(E));
- }
- function Q(o, c) {
- if (I -= 1, !g) {
- if (o)
- return E(o);
- if (o === !1) {
- B = !0, g = !0;
- return;
- }
- if (c === IB || B && I <= 0)
- return B = !0, i(null);
- a();
- }
- }
- function E(o) {
- g || (n = !1, B = !0, i(o));
- }
- a();
-}
-var Ce = (e) => (t, A, i) => {
- if (i = Xe(i), e <= 0)
- throw new RangeError("concurrency limit cannot be less than 1");
- if (!t)
- return i(null);
- if (Oo(t))
- return JI(t, e, A, i);
- if (_o(t))
- return JI(t[Symbol.asyncIterator](), e, A, i);
- var B = ia(t), g = !1, n = !1, I = 0, r = !1;
- function a(E, o) {
- if (!n)
- if (I -= 1, E)
- g = !0, i(E);
- else if (E === !1)
- g = !0, n = !0;
- else {
- if (o === IB || g && I <= 0)
- return g = !0, i(null);
- r || Q();
- }
- }
- function Q() {
- for (r = !0; I < e && !g; ) {
- var E = B();
- if (E === null) {
- g = !0, I <= 0 && i(null);
- return;
- }
- I += 1, A(E.value, E.key, ze(a));
- }
- r = !1;
- }
- Q();
-};
-function Ba(e, t, A, i) {
- return Ce(t)(e, eA(A), i);
-}
-var Ct = AA(Ba, 4);
-function ga(e, t, A) {
- A = Xe(A);
- var i = 0, B = 0, { length: g } = e, n = !1;
- g === 0 && A(null);
- function I(r, a) {
- r === !1 && (n = !0), n !== !0 && (r ? A(r) : (++B === g || a === IB) && A(null));
- }
- for (; i < g; i++)
- t(e[i], i, ze(I));
-}
-function na(e, t, A) {
- return Ct(e, 1 / 0, t, A);
-}
-function Ia(e, t, A) {
- var i = nB(e) ? ga : na;
- return i(e, eA(t), A);
-}
-var HA = AA(Ia, 3);
-function ra(e, t, A) {
- return zn(HA, e, t, A);
-}
-var rB = AA(ra, 3), pE = DE(rB);
-function Ea(e, t, A) {
- return Ct(e, 1, t, A);
-}
-var se = AA(Ea, 3);
-function Qa(e, t, A) {
- return zn(se, e, t, A);
-}
-var On = AA(Qa, 3), mE = DE(On);
-const xt = Symbol("promiseCallback");
-function ct() {
- let e, t;
- function A(i, ...B) {
- if (i)
- return t(i);
- e(B.length > 1 ? B : B[0]);
- }
- return A[xt] = new Promise((i, B) => {
- e = i, t = B;
- }), A;
-}
-function _n(e, t, A) {
- typeof t != "number" && (A = t, t = null), A = Xe(A || ct());
- var i = Object.keys(e).length;
- if (!i)
- return A(null);
- t || (t = i);
- var B = {}, g = 0, n = !1, I = !1, r = /* @__PURE__ */ Object.create(null), a = [], Q = [], E = {};
- Object.keys(e).forEach((h) => {
- var x = e[h];
- if (!Array.isArray(x)) {
- o(h, [x]), Q.push(h);
- return;
- }
- var d = x.slice(0, x.length - 1), m = d.length;
- if (m === 0) {
- o(h, x), Q.push(h);
- return;
- }
- E[h] = m, d.forEach((H) => {
- if (!e[H])
- throw new Error("async.auto task `" + h + "` has a non-existent dependency `" + H + "` in " + d.join(", "));
- l(H, () => {
- m--, m === 0 && o(h, x);
- });
- });
- }), s(), c();
- function o(h, x) {
- a.push(() => C(h, x));
- }
- function c() {
- if (!n) {
- if (a.length === 0 && g === 0)
- return A(null, B);
- for (; a.length && g < t; ) {
- var h = a.shift();
- h();
- }
- }
- }
- function l(h, x) {
- var d = r[h];
- d || (d = r[h] = []), d.push(x);
- }
- function u(h) {
- var x = r[h] || [];
- x.forEach((d) => d()), c();
- }
- function C(h, x) {
- if (!I) {
- var d = ze((H, ...v) => {
- if (g--, H === !1) {
- n = !0;
- return;
- }
- if (v.length < 2 && ([v] = v), H) {
- var N = {};
- if (Object.keys(B).forEach((M) => {
- N[M] = B[M];
- }), N[h] = v, I = !0, r = /* @__PURE__ */ Object.create(null), n)
- return;
- A(H, N);
- } else
- B[h] = v, u(h);
- });
- g++;
- var m = eA(x[x.length - 1]);
- x.length > 1 ? m(B, d) : m(d);
- }
- }
- function s() {
- for (var h, x = 0; Q.length; )
- h = Q.pop(), x++, f(h).forEach((d) => {
- --E[d] === 0 && Q.push(d);
- });
- if (x !== i)
- throw new Error(
- "async.auto cannot execute tasks due to a recursive dependency"
- );
- }
- function f(h) {
- var x = [];
- return Object.keys(e).forEach((d) => {
- const m = e[d];
- Array.isArray(m) && m.indexOf(h) >= 0 && x.push(d);
- }), x;
- }
- return A[xt];
-}
-var oa = /^(?:async\s+)?(?:function)?\s*\w*\s*\(\s*([^)]+)\s*\)(?:\s*{)/, aa = /^(?:async\s+)?\(?\s*([^)=]+)\s*\)?(?:\s*=>)/, sa = /,/, Ca = /(=.+)?(\s*)$/;
-function ca(e) {
- let t = "", A = 0, i = e.indexOf("*/");
- for (; A < e.length; )
- if (e[A] === "/" && e[A + 1] === "/") {
- let B = e.indexOf(`
-`, A);
- A = B === -1 ? e.length : B;
- } else if (i !== -1 && e[A] === "/" && e[A + 1] === "*") {
- let B = e.indexOf("*/", A);
- B !== -1 ? (A = B + 2, i = e.indexOf("*/", A)) : (t += e[A], A++);
- } else
- t += e[A], A++;
- return t;
-}
-function fa(e) {
- const t = ca(e.toString());
- let A = t.match(oa);
- if (A || (A = t.match(aa)), !A)
- throw new Error(`could not parse args in autoInject
-Source:
-` + t);
- let [, i] = A;
- return i.replace(/\s/g, "").split(sa).map((B) => B.replace(Ca, "").trim());
-}
-function GE(e, t) {
- var A = {};
- return Object.keys(e).forEach((i) => {
- var B = e[i], g, n = Yt(B), I = !n && B.length === 1 || n && B.length === 0;
- if (Array.isArray(B))
- g = [...B], B = g.pop(), A[i] = g.concat(g.length > 0 ? r : B);
- else if (I)
- A[i] = B;
- else {
- if (g = fa(B), B.length === 0 && !n && g.length === 0)
- throw new Error("autoInject task functions require explicit parameters.");
- n || g.pop(), A[i] = g.concat(r);
- }
- function r(a, Q) {
- var E = g.map((o) => a[o]);
- E.push(Q), eA(B)(...E);
- }
- }), _n(A, t);
-}
-class ua {
- constructor() {
- this.head = this.tail = null, this.length = 0;
- }
- removeLink(t) {
- return t.prev ? t.prev.next = t.next : this.head = t.next, t.next ? t.next.prev = t.prev : this.tail = t.prev, t.prev = t.next = null, this.length -= 1, t;
- }
- empty() {
- for (; this.head; )
- this.shift();
- return this;
- }
- insertAfter(t, A) {
- A.prev = t, A.next = t.next, t.next ? t.next.prev = A : this.tail = A, t.next = A, this.length += 1;
- }
- insertBefore(t, A) {
- A.prev = t.prev, A.next = t, t.prev ? t.prev.next = A : this.head = A, t.prev = A, this.length += 1;
- }
- unshift(t) {
- this.head ? this.insertBefore(this.head, t) : WI(this, t);
- }
- push(t) {
- this.tail ? this.insertAfter(this.tail, t) : WI(this, t);
- }
- shift() {
- return this.head && this.removeLink(this.head);
- }
- pop() {
- return this.tail && this.removeLink(this.tail);
- }
- toArray() {
- return [...this];
- }
- *[Symbol.iterator]() {
- for (var t = this.head; t; )
- yield t.data, t = t.next;
- }
- remove(t) {
- for (var A = this.head; A; ) {
- var { next: i } = A;
- t(A) && this.removeLink(A), A = i;
- }
- return this;
- }
-}
-function WI(e, t) {
- e.length = 1, e.head = e.tail = t;
-}
-function jn(e, t, A) {
- if (t == null)
- t = 1;
- else if (t === 0)
- throw new RangeError("Concurrency must not be zero");
- var i = eA(e), B = 0, g = [];
- const n = {
- error: [],
- drain: [],
- saturated: [],
- unsaturated: [],
- empty: []
- };
- function I(f, h) {
- n[f].push(h);
- }
- function r(f, h) {
- const x = (...d) => {
- a(f, x), h(...d);
- };
- n[f].push(x);
- }
- function a(f, h) {
- if (!f)
- return Object.keys(n).forEach((x) => n[x] = []);
- if (!h)
- return n[f] = [];
- n[f] = n[f].filter((x) => x !== h);
- }
- function Q(f, ...h) {
- n[f].forEach((x) => x(...h));
- }
- var E = !1;
- function o(f, h, x, d) {
- if (d != null && typeof d != "function")
- throw new Error("task callback must be a function");
- s.started = !0;
- var m, H;
- function v(M, ...Z) {
- if (M)
- return x ? H(M) : m();
- if (Z.length <= 1)
- return m(Z[0]);
- m(Z);
- }
- var N = s._createTaskItem(
- f,
- x ? v : d || v
- );
- if (h ? s._tasks.unshift(N) : s._tasks.push(N), E || (E = !0, Ze(() => {
- E = !1, s.process();
- })), x || !d)
- return new Promise((M, Z) => {
- m = M, H = Z;
- });
- }
- function c(f) {
- return function(h, ...x) {
- B -= 1;
- for (var d = 0, m = f.length; d < m; d++) {
- var H = f[d], v = g.indexOf(H);
- v === 0 ? g.shift() : v > 0 && g.splice(v, 1), H.callback(h, ...x), h != null && Q("error", h, H.data);
- }
- B <= s.concurrency - s.buffer && Q("unsaturated"), s.idle() && Q("drain"), s.process();
- };
- }
- function l(f) {
- return f.length === 0 && s.idle() ? (Ze(() => Q("drain")), !0) : !1;
- }
- const u = (f) => (h) => {
- if (!h)
- return new Promise((x, d) => {
- r(f, (m, H) => {
- if (m)
- return d(m);
- x(H);
- });
- });
- a(f), I(f, h);
- };
- var C = !1, s = {
- _tasks: new ua(),
- _createTaskItem(f, h) {
- return {
- data: f,
- callback: h
- };
- },
- *[Symbol.iterator]() {
- yield* s._tasks[Symbol.iterator]();
- },
- concurrency: t,
- payload: A,
- buffer: t / 4,
- started: !1,
- paused: !1,
- push(f, h) {
- return Array.isArray(f) ? l(f) ? void 0 : f.map((x) => o(x, !1, !1, h)) : o(f, !1, !1, h);
- },
- pushAsync(f, h) {
- return Array.isArray(f) ? l(f) ? void 0 : f.map((x) => o(x, !1, !0, h)) : o(f, !1, !0, h);
- },
- kill() {
- a(), s._tasks.empty();
- },
- unshift(f, h) {
- return Array.isArray(f) ? l(f) ? void 0 : f.map((x) => o(x, !0, !1, h)) : o(f, !0, !1, h);
- },
- unshiftAsync(f, h) {
- return Array.isArray(f) ? l(f) ? void 0 : f.map((x) => o(x, !0, !0, h)) : o(f, !0, !0, h);
- },
- remove(f) {
- s._tasks.remove(f);
- },
- process() {
- if (!C) {
- for (C = !0; !s.paused && B < s.concurrency && s._tasks.length; ) {
- var f = [], h = [], x = s._tasks.length;
- s.payload && (x = Math.min(x, s.payload));
- for (var d = 0; d < x; d++) {
- var m = s._tasks.shift();
- f.push(m), g.push(m), h.push(m.data);
- }
- B += 1, s._tasks.length === 0 && Q("empty"), B === s.concurrency && Q("saturated");
- var H = ze(c(f));
- i(h, H);
- }
- C = !1;
- }
- },
- length() {
- return s._tasks.length;
- },
- running() {
- return B;
- },
- workersList() {
- return g;
- },
- idle() {
- return s._tasks.length + B === 0;
- },
- pause() {
- s.paused = !0;
- },
- resume() {
- s.paused !== !1 && (s.paused = !1, Ze(s.process));
- }
- };
- return Object.defineProperties(s, {
- saturated: {
- writable: !1,
- value: u("saturated")
- },
- unsaturated: {
- writable: !1,
- value: u("unsaturated")
- },
- empty: {
- writable: !1,
- value: u("empty")
- },
- drain: {
- writable: !1,
- value: u("drain")
- },
- error: {
- writable: !1,
- value: u("error")
- }
- }), s;
-}
-function FE(e, t) {
- return jn(e, 1, t);
-}
-function RE(e, t, A) {
- return jn(e, t, A);
-}
-function xa(e, t, A, i) {
- i = Xe(i);
- var B = eA(A);
- return se(e, (g, n, I) => {
- B(t, g, (r, a) => {
- t = a, I(r);
- });
- }, (g) => i(g, t));
-}
-var Ve = AA(xa, 4);
-function $n(...e) {
- var t = e.map(eA);
- return function(...A) {
- var i = this, B = A[A.length - 1];
- return typeof B == "function" ? A.pop() : B = ct(), Ve(
- t,
- A,
- (g, n, I) => {
- n.apply(i, g.concat((r, ...a) => {
- I(r, a);
- }));
- },
- (g, n) => B(g, ...n)
- ), B[xt];
- };
-}
-function SE(...e) {
- return $n(...e.reverse());
-}
-function ha(e, t, A, i) {
- return zn(Ce(t), e, A, i);
-}
-var Lt = AA(ha, 4);
-function da(e, t, A, i) {
- var B = eA(A);
- return Lt(e, t, (g, n) => {
- B(g, (I, ...r) => I ? n(I) : n(I, r));
- }, (g, n) => {
- for (var I = [], r = 0; r < n.length; r++)
- n[r] && (I = I.concat(...n[r]));
- return i(g, I);
- });
-}
-var ft = AA(da, 4);
-function la(e, t, A) {
- return ft(e, 1 / 0, t, A);
-}
-var ci = AA(la, 3);
-function wa(e, t, A) {
- return ft(e, 1, t, A);
-}
-var fi = AA(wa, 3);
-function bE(...e) {
- return function(...t) {
- var A = t.pop();
- return A(null, ...e);
- };
-}
-function Ue(e, t) {
- return (A, i, B, g) => {
- var n = !1, I;
- const r = eA(B);
- A(i, (a, Q, E) => {
- r(a, (o, c) => {
- if (o || o === !1)
- return E(o);
- if (e(c) && !I)
- return n = !0, I = t(!0, a), E(null, IB);
- E();
- });
- }, (a) => {
- if (a)
- return g(a);
- g(null, n ? I : t(!1));
- });
- };
-}
-function ya(e, t, A) {
- return Ue((i) => i, (i, B) => B)(HA, e, t, A);
-}
-var ui = AA(ya, 3);
-function Da(e, t, A, i) {
- return Ue((B) => B, (B, g) => g)(Ce(t), e, A, i);
-}
-var xi = AA(Da, 4);
-function pa(e, t, A) {
- return Ue((i) => i, (i, B) => B)(Ce(1), e, t, A);
-}
-var hi = AA(pa, 3);
-function NE(e) {
- return (t, ...A) => eA(t)(...A, (i, ...B) => {
- typeof console == "object" && (i ? console.error && console.error(i) : console[e] && B.forEach((g) => console[e](g)));
- });
-}
-var UE = NE("dir");
-function ma(e, t, A) {
- A = ze(A);
- var i = eA(e), B = eA(t), g;
- function n(r, ...a) {
- if (r)
- return A(r);
- r !== !1 && (g = a, B(...a, I));
- }
- function I(r, a) {
- if (r)
- return A(r);
- if (r !== !1) {
- if (!a)
- return A(null, ...g);
- i(n);
- }
- }
- return I(null, !0);
-}
-var Ft = AA(ma, 3);
-function vE(e, t, A) {
- const i = eA(t);
- return Ft(e, (...B) => {
- const g = B.pop();
- i(...B, (n, I) => g(n, !I));
- }, A);
-}
-function HE(e) {
- return (t, A, i) => e(t, i);
-}
-function Ga(e, t, A) {
- return HA(e, HE(eA(t)), A);
-}
-var di = AA(Ga, 3);
-function Fa(e, t, A, i) {
- return Ce(t)(e, HE(eA(A)), i);
-}
-var Rt = AA(Fa, 4);
-function Ra(e, t, A) {
- return Rt(e, 1, t, A);
-}
-var St = AA(Ra, 3);
-function AI(e) {
- return Yt(e) ? e : function(...t) {
- var A = t.pop(), i = !0;
- t.push((...B) => {
- i ? Ze(() => A(...B)) : A(...B);
- }), e.apply(this, t), i = !1;
- };
-}
-function Sa(e, t, A) {
- return Ue((i) => !i, (i) => !i)(HA, e, t, A);
-}
-var li = AA(Sa, 3);
-function ba(e, t, A, i) {
- return Ue((B) => !B, (B) => !B)(Ce(t), e, A, i);
-}
-var wi = AA(ba, 4);
-function Na(e, t, A) {
- return Ue((i) => !i, (i) => !i)(se, e, t, A);
-}
-var yi = AA(Na, 3);
-function Ua(e, t, A, i) {
- var B = new Array(t.length);
- e(t, (g, n, I) => {
- A(g, (r, a) => {
- B[n] = !!a, I(r);
- });
- }, (g) => {
- if (g)
- return i(g);
- for (var n = [], I = 0; I < t.length; I++)
- B[I] && n.push(t[I]);
- i(null, n);
- });
-}
-function va(e, t, A, i) {
- var B = [];
- e(t, (g, n, I) => {
- A(g, (r, a) => {
- if (r)
- return I(r);
- a && B.push({ index: n, value: g }), I(r);
- });
- }, (g) => {
- if (g)
- return i(g);
- i(null, B.sort((n, I) => n.index - I.index).map((n) => n.value));
- });
-}
-function EB(e, t, A, i) {
- var B = nB(t) ? Ua : va;
- return B(e, t, eA(A), i);
-}
-function Ha(e, t, A) {
- return EB(HA, e, t, A);
-}
-var Di = AA(Ha, 3);
-function Ya(e, t, A, i) {
- return EB(Ce(t), e, A, i);
-}
-var pi = AA(Ya, 4);
-function La(e, t, A) {
- return EB(se, e, t, A);
-}
-var mi = AA(La, 3);
-function Ma(e, t) {
- var A = ze(t), i = eA(AI(e));
- function B(g) {
- if (g)
- return A(g);
- g !== !1 && i(B);
- }
- return B();
-}
-var YE = AA(Ma, 2);
-function ka(e, t, A, i) {
- var B = eA(A);
- return Lt(e, t, (g, n) => {
- B(g, (I, r) => I ? n(I) : n(I, { key: r, val: g }));
- }, (g, n) => {
- for (var I = {}, { hasOwnProperty: r } = Object.prototype, a = 0; a < n.length; a++)
- if (n[a]) {
- var { key: Q } = n[a], { val: E } = n[a];
- r.call(I, Q) ? I[Q].push(E) : I[Q] = [E];
- }
- return i(g, I);
- });
-}
-var QB = AA(ka, 4);
-function LE(e, t, A) {
- return QB(e, 1 / 0, t, A);
-}
-function ME(e, t, A) {
- return QB(e, 1, t, A);
-}
-var kE = NE("log");
-function Ka(e, t, A, i) {
- i = Xe(i);
- var B = {}, g = eA(A);
- return Ce(t)(e, (n, I, r) => {
- g(n, I, (a, Q) => {
- if (a)
- return r(a);
- B[I] = Q, r(a);
- });
- }, (n) => i(n, B));
-}
-var oB = AA(Ka, 4);
-function KE(e, t, A) {
- return oB(e, 1 / 0, t, A);
-}
-function JE(e, t, A) {
- return oB(e, 1, t, A);
-}
-function WE(e, t = (A) => A) {
- var A = /* @__PURE__ */ Object.create(null), i = /* @__PURE__ */ Object.create(null), B = eA(e), g = Ht((n, I) => {
- var r = t(...n);
- r in A ? Ze(() => I(null, ...A[r])) : r in i ? i[r].push(I) : (i[r] = [I], B(...n, (a, ...Q) => {
- a || (A[r] = Q);
- var E = i[r];
- delete i[r];
- for (var o = 0, c = E.length; o < c; o++)
- E[o](a, ...Q);
- }));
- });
- return g.memo = A, g.unmemoized = e, g;
-}
-var ti;
-lE ? ti = process.nextTick : dE ? ti = setImmediate : ti = wE;
-var qE = yE(ti), eI = AA((e, t, A) => {
- var i = nB(t) ? [] : {};
- e(t, (B, g, n) => {
- eA(B)((I, ...r) => {
- r.length < 2 && ([r] = r), i[g] = r, n(I);
- });
- }, (B) => A(B, i));
-}, 3);
-function ZE(e, t) {
- return eI(HA, e, t);
-}
-function VE(e, t, A) {
- return eI(Ce(t), e, A);
-}
-function tI(e, t) {
- var A = eA(e);
- return jn((i, B) => {
- A(i[0], B);
- }, t, 1);
-}
-class Ja {
- constructor() {
- this.heap = [], this.pushCount = Number.MIN_SAFE_INTEGER;
- }
- get length() {
- return this.heap.length;
- }
- empty() {
- return this.heap = [], this;
- }
- percUp(t) {
- let A;
- for (; t > 0 && OB(this.heap[t], this.heap[A = qI(t)]); ) {
- let i = this.heap[t];
- this.heap[t] = this.heap[A], this.heap[A] = i, t = A;
- }
- }
- percDown(t) {
- let A;
- for (; (A = Wa(t)) < this.heap.length && (A + 1 < this.heap.length && OB(this.heap[A + 1], this.heap[A]) && (A = A + 1), !OB(this.heap[t], this.heap[A])); ) {
- let i = this.heap[t];
- this.heap[t] = this.heap[A], this.heap[A] = i, t = A;
- }
- }
- push(t) {
- t.pushCount = ++this.pushCount, this.heap.push(t), this.percUp(this.heap.length - 1);
- }
- unshift(t) {
- return this.heap.push(t);
- }
- shift() {
- let [t] = this.heap;
- return this.heap[0] = this.heap[this.heap.length - 1], this.heap.pop(), this.percDown(0), t;
- }
- toArray() {
- return [...this];
- }
- *[Symbol.iterator]() {
- for (let t = 0; t < this.heap.length; t++)
- yield this.heap[t].data;
- }
- remove(t) {
- let A = 0;
- for (let i = 0; i < this.heap.length; i++)
- t(this.heap[i]) || (this.heap[A] = this.heap[i], A++);
- this.heap.splice(A);
- for (let i = qI(this.heap.length - 1); i >= 0; i--)
- this.percDown(i);
- return this;
- }
-}
-function Wa(e) {
- return (e << 1) + 1;
-}
-function qI(e) {
- return (e + 1 >> 1) - 1;
-}
-function OB(e, t) {
- return e.priority !== t.priority ? e.priority < t.priority : e.pushCount < t.pushCount;
-}
-function TE(e, t) {
- var A = tI(e, t), {
- push: i,
- pushAsync: B
- } = A;
- A._tasks = new Ja(), A._createTaskItem = ({ data: n, priority: I }, r) => ({
- data: n,
- priority: I,
- callback: r
- });
- function g(n, I) {
- return Array.isArray(n) ? n.map((r) => ({ data: r, priority: I })) : { data: n, priority: I };
- }
- return A.push = function(n, I = 0, r) {
- return i(g(n, I), r);
- }, A.pushAsync = function(n, I = 0, r) {
- return B(g(n, I), r);
- }, delete A.unshift, delete A.unshiftAsync, A;
-}
-function qa(e, t) {
- if (t = Xe(t), !Array.isArray(e))
- return t(new TypeError("First argument to race must be an array of functions"));
- if (!e.length)
- return t();
- for (var A = 0, i = e.length; A < i; A++)
- eA(e[A])(t);
-}
-var PE = AA(qa, 2);
-function Gi(e, t, A, i) {
- var B = [...e].reverse();
- return Ve(B, t, A, i);
-}
-function Fi(e) {
- var t = eA(e);
- return Ht(function(i, B) {
- return i.push((g, ...n) => {
- let I = {};
- if (g && (I.error = g), n.length > 0) {
- var r = n;
- n.length <= 1 && ([r] = n), I.value = r;
- }
- B(null, I);
- }), t.apply(this, i);
- });
-}
-function XE(e) {
- var t;
- return Array.isArray(e) ? t = e.map(Fi) : (t = {}, Object.keys(e).forEach((A) => {
- t[A] = Fi.call(this, e[A]);
- })), t;
-}
-function iI(e, t, A, i) {
- const B = eA(A);
- return EB(e, t, (g, n) => {
- B(g, (I, r) => {
- n(I, !r);
- });
- }, i);
-}
-function Za(e, t, A) {
- return iI(HA, e, t, A);
-}
-var zE = AA(Za, 3);
-function Va(e, t, A, i) {
- return iI(Ce(t), e, A, i);
-}
-var OE = AA(Va, 4);
-function Ta(e, t, A) {
- return iI(se, e, t, A);
-}
-var _E = AA(Ta, 3);
-function jE(e) {
- return function() {
- return e;
- };
-}
-const nn = 5, $E = 0;
-function Ri(e, t, A) {
- var i = {
- times: nn,
- intervalFunc: jE($E)
- };
- if (arguments.length < 3 && typeof e == "function" ? (A = t || ct(), t = e) : (Pa(i, e), A = A || ct()), typeof t != "function")
- throw new Error("Invalid arguments for async.retry");
- var B = eA(t), g = 1;
- function n() {
- B((I, ...r) => {
- I !== !1 && (I && g++ < i.times && (typeof i.errorFilter != "function" || i.errorFilter(I)) ? setTimeout(n, i.intervalFunc(g - 1)) : A(I, ...r));
- });
- }
- return n(), A[xt];
-}
-function Pa(e, t) {
- if (typeof t == "object")
- e.times = +t.times || nn, e.intervalFunc = typeof t.interval == "function" ? t.interval : jE(+t.interval || $E), e.errorFilter = t.errorFilter;
- else if (typeof t == "number" || typeof t == "string")
- e.times = +t || nn;
- else
- throw new Error("Invalid arguments for async.retry");
-}
-function AQ(e, t) {
- t || (t = e, e = null);
- let A = e && e.arity || t.length;
- Yt(t) && (A += 1);
- var i = eA(t);
- return Ht((B, g) => {
- (B.length < A - 1 || g == null) && (B.push(g), g = ct());
- function n(I) {
- i(...B, I);
- }
- return e ? Ri(e, n, g) : Ri(n, g), g[xt];
- });
-}
-function eQ(e, t) {
- return eI(se, e, t);
-}
-function Xa(e, t, A) {
- return Ue(Boolean, (i) => i)(HA, e, t, A);
-}
-var Si = AA(Xa, 3);
-function za(e, t, A, i) {
- return Ue(Boolean, (B) => B)(Ce(t), e, A, i);
-}
-var bi = AA(za, 4);
-function Oa(e, t, A) {
- return Ue(Boolean, (i) => i)(se, e, t, A);
-}
-var Ni = AA(Oa, 3);
-function _a(e, t, A) {
- var i = eA(t);
- return rB(e, (g, n) => {
- i(g, (I, r) => {
- if (I)
- return n(I);
- n(I, { value: g, criteria: r });
- });
- }, (g, n) => {
- if (g)
- return A(g);
- A(null, n.sort(B).map((I) => I.value));
- });
- function B(g, n) {
- var I = g.criteria, r = n.criteria;
- return I < r ? -1 : I > r ? 1 : 0;
- }
-}
-var tQ = AA(_a, 3);
-function iQ(e, t, A) {
- var i = eA(e);
- return Ht((B, g) => {
- var n = !1, I;
- function r() {
- var a = e.name || "anonymous", Q = new Error('Callback function "' + a + '" timed out.');
- Q.code = "ETIMEDOUT", A && (Q.info = A), n = !0, g(Q);
- }
- B.push((...a) => {
- n || (g(...a), clearTimeout(I));
- }), I = setTimeout(r, t), i(...B);
- });
-}
-function ja(e) {
- for (var t = Array(e); e--; )
- t[e] = e;
- return t;
-}
-function aB(e, t, A, i) {
- var B = eA(A);
- return Lt(ja(e), t, B, i);
-}
-function BQ(e, t, A) {
- return aB(e, 1 / 0, t, A);
-}
-function gQ(e, t, A) {
- return aB(e, 1, t, A);
-}
-function nQ(e, t, A, i) {
- arguments.length <= 3 && typeof t == "function" && (i = A, A = t, t = Array.isArray(e) ? [] : {}), i = Xe(i || ct());
- var B = eA(A);
- return HA(e, (g, n, I) => {
- B(t, g, n, I);
- }, (g) => i(g, t)), i[xt];
-}
-function $a(e, t) {
- var A = null, i;
- return St(e, (B, g) => {
- eA(B)((n, ...I) => {
- if (n === !1)
- return g(n);
- I.length < 2 ? [i] = I : i = I, A = n, g(n ? null : {});
- });
- }, () => t(A, i));
-}
-var IQ = AA($a);
-function rQ(e) {
- return (...t) => (e.unmemoized || e)(...t);
-}
-function As(e, t, A) {
- A = ze(A);
- var i = eA(t), B = eA(e), g = [];
- function n(r, ...a) {
- if (r)
- return A(r);
- g = a, r !== !1 && B(I);
- }
- function I(r, a) {
- if (r)
- return A(r);
- if (r !== !1) {
- if (!a)
- return A(null, ...g);
- i(n);
- }
- }
- return B(I);
-}
-var bt = AA(As, 3);
-function EQ(e, t, A) {
- const i = eA(e);
- return bt((B) => i((g, n) => B(g, !n)), t, A);
-}
-function es(e, t) {
- if (t = Xe(t), !Array.isArray(e))
- return t(new Error("First argument to waterfall must be an array of functions"));
- if (!e.length)
- return t();
- var A = 0;
- function i(g) {
- var n = eA(e[A++]);
- n(...g, ze(B));
- }
- function B(g, ...n) {
- if (g !== !1) {
- if (g || A === e.length)
- return t(g, ...n);
- i(n);
- }
- }
- i([]);
-}
-var QQ = AA(es), ts = {
- apply: hE,
- applyEach: pE,
- applyEachSeries: mE,
- asyncify: Gt,
- auto: _n,
- autoInject: GE,
- cargo: FE,
- cargoQueue: RE,
- compose: SE,
- concat: ci,
- concatLimit: ft,
- concatSeries: fi,
- constant: bE,
- detect: ui,
- detectLimit: xi,
- detectSeries: hi,
- dir: UE,
- doUntil: vE,
- doWhilst: Ft,
- each: di,
- eachLimit: Rt,
- eachOf: HA,
- eachOfLimit: Ct,
- eachOfSeries: se,
- eachSeries: St,
- ensureAsync: AI,
- every: li,
- everyLimit: wi,
- everySeries: yi,
- filter: Di,
- filterLimit: pi,
- filterSeries: mi,
- forever: YE,
- groupBy: LE,
- groupByLimit: QB,
- groupBySeries: ME,
- log: kE,
- map: rB,
- mapLimit: Lt,
- mapSeries: On,
- mapValues: KE,
- mapValuesLimit: oB,
- mapValuesSeries: JE,
- memoize: WE,
- nextTick: qE,
- parallel: ZE,
- parallelLimit: VE,
- priorityQueue: TE,
- queue: tI,
- race: PE,
- reduce: Ve,
- reduceRight: Gi,
- reflect: Fi,
- reflectAll: XE,
- reject: zE,
- rejectLimit: OE,
- rejectSeries: _E,
- retry: Ri,
- retryable: AQ,
- seq: $n,
- series: eQ,
- setImmediate: Ze,
- some: Si,
- someLimit: bi,
- someSeries: Ni,
- sortBy: tQ,
- timeout: iQ,
- times: BQ,
- timesLimit: aB,
- timesSeries: gQ,
- transform: nQ,
- tryEach: IQ,
- unmemoize: rQ,
- until: EQ,
- waterfall: QQ,
- whilst: bt,
- // aliases
- all: li,
- allLimit: wi,
- allSeries: yi,
- any: Si,
- anyLimit: bi,
- anySeries: Ni,
- find: ui,
- findLimit: xi,
- findSeries: hi,
- flatMap: ci,
- flatMapLimit: ft,
- flatMapSeries: fi,
- forEach: di,
- forEachSeries: St,
- forEachLimit: Rt,
- forEachOf: HA,
- forEachOfSeries: se,
- forEachOfLimit: Ct,
- inject: Ve,
- foldl: Ve,
- foldr: Gi,
- select: Di,
- selectLimit: pi,
- selectSeries: mi,
- wrapSync: Gt,
- during: bt,
- doDuring: Ft
-};
-const is = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
- __proto__: null,
- all: li,
- allLimit: wi,
- allSeries: yi,
- any: Si,
- anyLimit: bi,
- anySeries: Ni,
- apply: hE,
- applyEach: pE,
- applyEachSeries: mE,
- asyncify: Gt,
- auto: _n,
- autoInject: GE,
- cargo: FE,
- cargoQueue: RE,
- compose: SE,
- concat: ci,
- concatLimit: ft,
- concatSeries: fi,
- constant: bE,
- default: ts,
- detect: ui,
- detectLimit: xi,
- detectSeries: hi,
- dir: UE,
- doDuring: Ft,
- doUntil: vE,
- doWhilst: Ft,
- during: bt,
- each: di,
- eachLimit: Rt,
- eachOf: HA,
- eachOfLimit: Ct,
- eachOfSeries: se,
- eachSeries: St,
- ensureAsync: AI,
- every: li,
- everyLimit: wi,
- everySeries: yi,
- filter: Di,
- filterLimit: pi,
- filterSeries: mi,
- find: ui,
- findLimit: xi,
- findSeries: hi,
- flatMap: ci,
- flatMapLimit: ft,
- flatMapSeries: fi,
- foldl: Ve,
- foldr: Gi,
- forEach: di,
- forEachLimit: Rt,
- forEachOf: HA,
- forEachOfLimit: Ct,
- forEachOfSeries: se,
- forEachSeries: St,
- forever: YE,
- groupBy: LE,
- groupByLimit: QB,
- groupBySeries: ME,
- inject: Ve,
- log: kE,
- map: rB,
- mapLimit: Lt,
- mapSeries: On,
- mapValues: KE,
- mapValuesLimit: oB,
- mapValuesSeries: JE,
- memoize: WE,
- nextTick: qE,
- parallel: ZE,
- parallelLimit: VE,
- priorityQueue: TE,
- queue: tI,
- race: PE,
- reduce: Ve,
- reduceRight: Gi,
- reflect: Fi,
- reflectAll: XE,
- reject: zE,
- rejectLimit: OE,
- rejectSeries: _E,
- retry: Ri,
- retryable: AQ,
- select: Di,
- selectLimit: pi,
- selectSeries: mi,
- seq: $n,
- series: eQ,
- setImmediate: Ze,
- some: Si,
- someLimit: bi,
- someSeries: Ni,
- sortBy: tQ,
- timeout: iQ,
- times: BQ,
- timesLimit: aB,
- timesSeries: gQ,
- transform: nQ,
- tryEach: IQ,
- unmemoize: rQ,
- until: EQ,
- waterfall: QQ,
- whilst: bt,
- wrapSync: Gt
-}, Symbol.toStringTag, { value: "Module" })), BI = /* @__PURE__ */ Lo(is);
-var _B, ZI;
-function Bs() {
- if (ZI)
- return _B;
- ZI = 1;
- var e = Vn.spawn, t = BI, A = Ne();
- function i(B) {
- B._inputs[0].isStream || B.ffprobe(0, function(n, I) {
- B._ffprobeData = I;
- });
- }
- return _B = function(B) {
- B._spawnFfmpeg = function(g, n, I, r) {
- typeof n == "function" && (r = I, I = n, n = {}), typeof r > "u" && (r = I, I = function() {
- });
- var a = "stdoutLines" in n ? n.stdoutLines : this.options.stdoutLines;
- this._getFfmpegPath(function(Q, E) {
- if (Q)
- return r(Q);
- if (!E || E.length === 0)
- return r(new Error("Cannot find ffmpeg"));
- n.niceness && n.niceness !== 0 && !A.isWindows && (g.unshift("-n", n.niceness, E), E = "nice");
- var o = A.linesRing(a), c = !1, l = A.linesRing(a), u = !1, C = e(E, g, n);
- C.stderr && C.stderr.setEncoding("utf8"), C.on("error", function(x) {
- r(x);
- });
- var s = null;
- function f(x) {
- x && (s = x), h && (c || !n.captureStdout) && u && r(s, o, l);
- }
- var h = !1;
- C.on("exit", function(x, d) {
- h = !0, d ? f(new Error("ffmpeg was killed with signal " + d)) : x ? f(new Error("ffmpeg exited with code " + x)) : f();
- }), n.captureStdout && (C.stdout.on("data", function(x) {
- o.append(x);
- }), C.stdout.on("close", function() {
- o.close(), c = !0, f();
- })), C.stderr.on("data", function(x) {
- l.append(x);
- }), C.stderr.on("close", function() {
- l.close(), u = !0, f();
- }), I(C, o, l);
- });
- }, B._getArguments = function() {
- var g = this._complexFilters.get(), n = this._outputs.some(function(I) {
- return I.isFile;
- });
- return [].concat(
- // Inputs and input options
- this._inputs.reduce(function(I, r) {
- var a = typeof r.source == "string" ? r.source : "pipe:0";
- return I.concat(
- r.options.get(),
- ["-i", a]
- );
- }, []),
- // Global options
- this._global.get(),
- // Overwrite if we have file outputs
- n ? ["-y"] : [],
- // Complex filters
- g,
- // Outputs, filters and output options
- this._outputs.reduce(function(I, r) {
- var a = A.makeFilterStrings(r.sizeFilters.get()), Q = r.audioFilters.get(), E = r.videoFilters.get().concat(a), o;
- return r.target ? typeof r.target == "string" ? o = [r.target] : o = ["pipe:1"] : o = [], I.concat(
- r.audio.get(),
- Q.length ? ["-filter:a", Q.join(",")] : [],
- r.video.get(),
- E.length ? ["-filter:v", E.join(",")] : [],
- r.options.get(),
- o
- );
- }, [])
- );
- }, B._prepare = function(g, n) {
- var I = this;
- t.waterfall([
- // Check codecs and formats
- function(r) {
- I._checkCapabilities(r);
- },
- // Read metadata if required
- function(r) {
- if (!n)
- return r();
- I.ffprobe(0, function(a, Q) {
- a || (I._ffprobeData = Q), r();
- });
- },
- // Check for flvtool2/flvmeta if necessary
- function(r) {
- var a = I._outputs.some(function(Q) {
- return Q.flags.flvmeta && !Q.isFile && (I.logger.warn("Updating flv metadata is only supported for files"), Q.flags.flvmeta = !1), Q.flags.flvmeta;
- });
- a ? I._getFlvtoolPath(function(Q) {
- r(Q);
- }) : r();
- },
- // Build argument list
- function(r) {
- var a;
- try {
- a = I._getArguments();
- } catch (Q) {
- return r(Q);
- }
- r(null, a);
- },
- // Add "-strict experimental" option where needed
- function(r, a) {
- I.availableEncoders(function(Q, E) {
- for (var o = 0; o < r.length; o++)
- (r[o] === "-acodec" || r[o] === "-vcodec") && (o++, r[o] in E && E[r[o]].experimental && (r.splice(o + 1, 0, "-strict", "experimental"), o += 2));
- a(null, r);
- });
- }
- ], g), n || (this.listeners("progress").length > 0 ? i(this) : this.once("newListener", function(r) {
- r === "progress" && i(this);
- }));
- }, B.exec = B.execute = B.run = function() {
- var g = this, n = this._outputs.some(function(E) {
- return "target" in E;
- });
- if (!n)
- throw new Error("No output specified");
- var I = this._outputs.filter(function(E) {
- return typeof E.target != "string";
- })[0], r = this._inputs.filter(function(E) {
- return typeof E.source != "string";
- })[0], a = !1;
- function Q(E, o, c) {
- a || (a = !0, E ? g.emit("error", E, o, c) : g.emit("end", o, c));
- }
- g._prepare(function(E, o) {
- if (E)
- return Q(E);
- g._spawnFfmpeg(
- o,
- {
- captureStdout: !I,
- niceness: g.options.niceness,
- cwd: g.options.cwd
- },
- function(l, u, C) {
- if (g.ffmpegProc = l, g.emit("start", "ffmpeg " + o.join(" ")), r && (r.source.on("error", function(h) {
- var x = new Error("Input stream error: " + h.message);
- x.inputStreamError = h, Q(x), l.kill();
- }), r.source.resume(), r.source.pipe(l.stdin), l.stdin.on("error", function() {
- })), g.options.timeout && setTimeout(function() {
- var h = "process ran into a timeout (" + g.options.timeout + "s)";
- Q(new Error(h), u.get(), C.get()), l.kill();
- }, g.options.timeout * 1e3), I && (l.stdout.pipe(I.target, I.pipeopts), I.target.on("close", function() {
- g.logger.debug("Output stream closed, scheduling kill for ffmpeg process"), setTimeout(function() {
- Q(new Error("Output stream closed")), l.kill();
- }, 20);
- }), I.target.on("error", function(h) {
- g.logger.debug("Output stream error, killing ffmpeg process");
- var x = new Error("Output stream error: " + h.message);
- x.outputStreamError = h, Q(x, u.get(), C.get()), l.kill("SIGKILL");
- })), C) {
- if (g.listeners("stderr").length && C.callback(function(h) {
- g.emit("stderr", h);
- }), g.listeners("codecData").length) {
- var s = !1, f = {};
- C.callback(function(h) {
- s || (s = A.extractCodecData(g, h, f));
- });
- }
- g.listeners("progress").length && C.callback(function(h) {
- A.extractProgress(g, h);
- });
- }
- },
- function(l, u, C) {
- if (delete g.ffmpegProc, l)
- l.message.match(/ffmpeg exited with code/) && (l.message += ": " + A.extractError(C.get())), Q(l, u.get(), C.get());
- else {
- var s = g._outputs.filter(function(f) {
- return f.flags.flvmeta;
- });
- s.length ? g._getFlvtoolPath(function(f, h) {
- if (f)
- return Q(f);
- t.each(
- s,
- function(x, d) {
- e(h, ["-U", x.target]).on("error", function(m) {
- d(new Error("Error running " + h + " on " + x.target + ": " + m.message));
- }).on("exit", function(m, H) {
- m !== 0 || H ? d(
- new Error(h + " " + (H ? "received signal " + H : "exited with code " + m)) + " when running on " + x.target
- ) : d();
- });
- },
- function(x) {
- x ? Q(x) : Q(null, u.get(), C.get());
- }
- );
- }) : Q(null, u.get(), C.get());
- }
- }
- );
- });
- }, B.renice = function(g) {
- if (!A.isWindows && (g = g || 0, (g < -20 || g > 20) && this.logger.warn("Invalid niceness value: " + g + ", must be between -20 and 20"), g = Math.min(20, Math.max(-20, g)), this.options.niceness = g, this.ffmpegProc)) {
- var n = this.logger, I = this.ffmpegProc.pid, r = e("renice", [g, "-p", I]);
- r.on("error", function(a) {
- n.warn("could not renice process " + I + ": " + a.message);
- }), r.on("exit", function(a, Q) {
- Q ? n.warn("could not renice process " + I + ": renice was killed by signal " + Q) : a ? n.warn("could not renice process " + I + ": renice exited with " + a) : n.info("successfully reniced process " + I + " to " + g + " niceness");
- });
- }
- return this;
- }, B.kill = function(g) {
- return this.ffmpegProc ? this.ffmpegProc.kill(g || "SIGKILL") : this.logger.warn("No running ffmpeg process, cannot send signal"), this;
- };
- }, _B;
-}
-var jB, VI;
-function gs() {
- if (VI)
- return jB;
- VI = 1;
- var e = nA, t = vA, A = BI, i = Ne(), B = /^\s*([D ])([E ])([VAS])([S ])([D ])([T ]) ([^ ]+) +(.*)$/, g = /^\s*([D\.])([E\.])([VAS])([I\.])([L\.])([S\.]) ([^ ]+) +(.*)$/, n = /\(encoders:([^\)]+)\)/, I = /\(decoders:([^\)]+)\)/, r = /^\s*([VAS\.])([F\.])([S\.])([X\.])([B\.])([D\.]) ([^ ]+) +(.*)$/, a = /^\s*([D ])([E ]) ([^ ]+) +(.*)$/, Q = /\r\n|\r|\n/, E = /^(?: [T\.][S\.][C\.] )?([^ ]+) +(AA?|VV?|\|)->(AA?|VV?|\|) +(.*)$/, o = {};
- return jB = function(c) {
- c.setFfmpegPath = function(l) {
- return o.ffmpegPath = l, this;
- }, c.setFfprobePath = function(l) {
- return o.ffprobePath = l, this;
- }, c.setFlvtoolPath = function(l) {
- return o.flvtoolPath = l, this;
- }, c._forgetPaths = function() {
- delete o.ffmpegPath, delete o.ffprobePath, delete o.flvtoolPath;
- }, c._getFfmpegPath = function(l) {
- if ("ffmpegPath" in o)
- return l(null, o.ffmpegPath);
- A.waterfall([
- // Try FFMPEG_PATH
- function(u) {
- process.env.FFMPEG_PATH ? e.exists(process.env.FFMPEG_PATH, function(C) {
- C ? u(null, process.env.FFMPEG_PATH) : u(null, "");
- }) : u(null, "");
- },
- // Search in the PATH
- function(u, C) {
- if (u.length)
- return C(null, u);
- i.which("ffmpeg", function(s, f) {
- C(s, f);
- });
- }
- ], function(u, C) {
- u ? l(u) : l(null, o.ffmpegPath = C || "");
- });
- }, c._getFfprobePath = function(l) {
- var u = this;
- if ("ffprobePath" in o)
- return l(null, o.ffprobePath);
- A.waterfall([
- // Try FFPROBE_PATH
- function(C) {
- process.env.FFPROBE_PATH ? e.exists(process.env.FFPROBE_PATH, function(s) {
- C(null, s ? process.env.FFPROBE_PATH : "");
- }) : C(null, "");
- },
- // Search in the PATH
- function(C, s) {
- if (C.length)
- return s(null, C);
- i.which("ffprobe", function(f, h) {
- s(f, h);
- });
- },
- // Search in the same directory as ffmpeg
- function(C, s) {
- if (C.length)
- return s(null, C);
- u._getFfmpegPath(function(f, h) {
- if (f)
- s(f);
- else if (h.length) {
- var x = i.isWindows ? "ffprobe.exe" : "ffprobe", d = t.join(t.dirname(h), x);
- e.exists(d, function(m) {
- s(null, m ? d : "");
- });
- } else
- s(null, "");
- });
- }
- ], function(C, s) {
- C ? l(C) : l(null, o.ffprobePath = s || "");
- });
- }, c._getFlvtoolPath = function(l) {
- if ("flvtoolPath" in o)
- return l(null, o.flvtoolPath);
- A.waterfall([
- // Try FLVMETA_PATH
- function(u) {
- process.env.FLVMETA_PATH ? e.exists(process.env.FLVMETA_PATH, function(C) {
- u(null, C ? process.env.FLVMETA_PATH : "");
- }) : u(null, "");
- },
- // Try FLVTOOL2_PATH
- function(u, C) {
- if (u.length)
- return C(null, u);
- process.env.FLVTOOL2_PATH ? e.exists(process.env.FLVTOOL2_PATH, function(s) {
- C(null, s ? process.env.FLVTOOL2_PATH : "");
- }) : C(null, "");
- },
- // Search for flvmeta in the PATH
- function(u, C) {
- if (u.length)
- return C(null, u);
- i.which("flvmeta", function(s, f) {
- C(s, f);
- });
- },
- // Search for flvtool2 in the PATH
- function(u, C) {
- if (u.length)
- return C(null, u);
- i.which("flvtool2", function(s, f) {
- C(s, f);
- });
- }
- ], function(u, C) {
- u ? l(u) : l(null, o.flvtoolPath = C || "");
- });
- }, c.availableFilters = c.getAvailableFilters = function(l) {
- if ("filters" in o)
- return l(null, o.filters);
- this._spawnFfmpeg(["-filters"], { captureStdout: !0, stdoutLines: 0 }, function(u, C) {
- if (u)
- return l(u);
- var s = C.get(), f = s.split(`
-`), h = {}, x = { A: "audio", V: "video", "|": "none" };
- f.forEach(function(d) {
- var m = d.match(E);
- m && (h[m[1]] = {
- description: m[4],
- input: x[m[2].charAt(0)],
- multipleInputs: m[2].length > 1,
- output: x[m[3].charAt(0)],
- multipleOutputs: m[3].length > 1
- });
- }), l(null, o.filters = h);
- });
- }, c.availableCodecs = c.getAvailableCodecs = function(l) {
- if ("codecs" in o)
- return l(null, o.codecs);
- this._spawnFfmpeg(["-codecs"], { captureStdout: !0, stdoutLines: 0 }, function(u, C) {
- if (u)
- return l(u);
- var s = C.get(), f = s.split(Q), h = {};
- f.forEach(function(x) {
- var d = x.match(B);
- if (d && d[7] !== "=" && (h[d[7]] = {
- type: { V: "video", A: "audio", S: "subtitle" }[d[3]],
- description: d[8],
- canDecode: d[1] === "D",
- canEncode: d[2] === "E",
- drawHorizBand: d[4] === "S",
- directRendering: d[5] === "D",
- weirdFrameTruncation: d[6] === "T"
- }), d = x.match(g), d && d[7] !== "=") {
- var m = h[d[7]] = {
- type: { V: "video", A: "audio", S: "subtitle" }[d[3]],
- description: d[8],
- canDecode: d[1] === "D",
- canEncode: d[2] === "E",
- intraFrameOnly: d[4] === "I",
- isLossy: d[5] === "L",
- isLossless: d[6] === "S"
- }, H = m.description.match(n);
- H = H ? H[1].trim().split(" ") : [];
- var v = m.description.match(I);
- if (v = v ? v[1].trim().split(" ") : [], H.length || v.length) {
- var N = {};
- i.copy(m, N), delete N.canEncode, delete N.canDecode, H.forEach(function(M) {
- h[M] = {}, i.copy(N, h[M]), h[M].canEncode = !0;
- }), v.forEach(function(M) {
- M in h || (h[M] = {}, i.copy(N, h[M])), h[M].canDecode = !0;
- });
- }
- }
- }), l(null, o.codecs = h);
- });
- }, c.availableEncoders = c.getAvailableEncoders = function(l) {
- if ("encoders" in o)
- return l(null, o.encoders);
- this._spawnFfmpeg(["-encoders"], { captureStdout: !0, stdoutLines: 0 }, function(u, C) {
- if (u)
- return l(u);
- var s = C.get(), f = s.split(Q), h = {};
- f.forEach(function(x) {
- var d = x.match(r);
- d && d[7] !== "=" && (h[d[7]] = {
- type: { V: "video", A: "audio", S: "subtitle" }[d[1]],
- description: d[8],
- frameMT: d[2] === "F",
- sliceMT: d[3] === "S",
- experimental: d[4] === "X",
- drawHorizBand: d[5] === "B",
- directRendering: d[6] === "D"
- });
- }), l(null, o.encoders = h);
- });
- }, c.availableFormats = c.getAvailableFormats = function(l) {
- if ("formats" in o)
- return l(null, o.formats);
- this._spawnFfmpeg(["-formats"], { captureStdout: !0, stdoutLines: 0 }, function(u, C) {
- if (u)
- return l(u);
- var s = C.get(), f = s.split(Q), h = {};
- f.forEach(function(x) {
- var d = x.match(a);
- d && d[3].split(",").forEach(function(m) {
- m in h || (h[m] = {
- description: d[4],
- canDemux: !1,
- canMux: !1
- }), d[1] === "D" && (h[m].canDemux = !0), d[2] === "E" && (h[m].canMux = !0);
- });
- }), l(null, o.formats = h);
- });
- }, c._checkCapabilities = function(l) {
- var u = this;
- A.waterfall([
- // Get available formats
- function(C) {
- u.availableFormats(C);
- },
- // Check whether specified formats are available
- function(C, s) {
- var f;
- if (f = u._outputs.reduce(function(h, x) {
- var d = x.options.find("-f", 1);
- return d && (!(d[0] in C) || !C[d[0]].canMux) && h.push(d), h;
- }, []), f.length === 1)
- return s(new Error("Output format " + f[0] + " is not available"));
- if (f.length > 1)
- return s(new Error("Output formats " + f.join(", ") + " are not available"));
- if (f = u._inputs.reduce(function(h, x) {
- var d = x.options.find("-f", 1);
- return d && (!(d[0] in C) || !C[d[0]].canDemux) && h.push(d[0]), h;
- }, []), f.length === 1)
- return s(new Error("Input format " + f[0] + " is not available"));
- if (f.length > 1)
- return s(new Error("Input formats " + f.join(", ") + " are not available"));
- s();
- },
- // Get available codecs
- function(C) {
- u.availableEncoders(C);
- },
- // Check whether specified codecs are available and add strict experimental options if needed
- function(C, s) {
- var f;
- if (f = u._outputs.reduce(function(h, x) {
- var d = x.audio.find("-acodec", 1);
- return d && d[0] !== "copy" && (!(d[0] in C) || C[d[0]].type !== "audio") && h.push(d[0]), h;
- }, []), f.length === 1)
- return s(new Error("Audio codec " + f[0] + " is not available"));
- if (f.length > 1)
- return s(new Error("Audio codecs " + f.join(", ") + " are not available"));
- if (f = u._outputs.reduce(function(h, x) {
- var d = x.video.find("-vcodec", 1);
- return d && d[0] !== "copy" && (!(d[0] in C) || C[d[0]].type !== "video") && h.push(d[0]), h;
- }, []), f.length === 1)
- return s(new Error("Video codec " + f[0] + " is not available"));
- if (f.length > 1)
- return s(new Error("Video codecs " + f.join(", ") + " are not available"));
- s();
- }
- ], l);
- };
- }, jB;
-}
-var $B, TI;
-function ns() {
- if (TI)
- return $B;
- TI = 1;
- var e = Vn.spawn;
- function t(B) {
- return B.match(/^TAG:/);
- }
- function A(B) {
- return B.match(/^DISPOSITION:/);
- }
- function i(B) {
- var g = B.split(/\r\n|\r|\n/);
- g = g.filter(function(E) {
- return E.length > 0;
- });
- var n = {
- streams: [],
- format: {},
- chapters: []
- };
- function I(E) {
- for (var o = {}, c = g.shift(); typeof c < "u"; ) {
- if (c.toLowerCase() == "[/" + E + "]")
- return o;
- if (c.match(/^\[/)) {
- c = g.shift();
- continue;
- }
- var l = c.match(/^([^=]+)=(.*)$/);
- l && (!l[1].match(/^TAG:/) && l[2].match(/^[0-9]+(\.[0-9]+)?$/) ? o[l[1]] = Number(l[2]) : o[l[1]] = l[2]), c = g.shift();
- }
- return o;
- }
- for (var r = g.shift(); typeof r < "u"; ) {
- if (r.match(/^\[stream/i)) {
- var a = I("stream");
- n.streams.push(a);
- } else if (r.match(/^\[chapter/i)) {
- var Q = I("chapter");
- n.chapters.push(Q);
- } else
- r.toLowerCase() === "[format]" && (n.format = I("format"));
- r = g.shift();
- }
- return n;
- }
- return $B = function(B) {
- B.ffprobe = function() {
- var g, n = null, I = [], r, r = arguments[arguments.length - 1], a = !1;
- function Q(E, o) {
- a || (a = !0, r(E, o));
- }
- switch (arguments.length) {
- case 3:
- n = arguments[0], I = arguments[1];
- break;
- case 2:
- typeof arguments[0] == "number" ? n = arguments[0] : Array.isArray(arguments[0]) && (I = arguments[0]);
- break;
- }
- if (n === null) {
- if (!this._currentInput)
- return Q(new Error("No input specified"));
- g = this._currentInput;
- } else if (g = this._inputs[n], !g)
- return Q(new Error("Invalid input index"));
- this._getFfprobePath(function(E, o) {
- if (E)
- return Q(E);
- if (!o)
- return Q(new Error("Cannot find ffprobe"));
- var c = "", l = !1, u = "", C = !1, s = g.isStream ? "pipe:0" : g.source, f = e(o, ["-show_streams", "-show_format"].concat(I, s));
- g.isStream && (f.stdin.on("error", function(m) {
- ["ECONNRESET", "EPIPE"].indexOf(m.code) >= 0 || Q(m);
- }), f.stdin.on("close", function() {
- g.source.pause(), g.source.unpipe(f.stdin);
- }), g.source.pipe(f.stdin)), f.on("error", r);
- var h = null;
- function x(m) {
- if (m && (h = m), d && l && C) {
- if (h)
- return u && (h.message += `
-` + u), Q(h);
- var H = i(c);
- [H.format].concat(H.streams).forEach(function(v) {
- if (v) {
- var N = Object.keys(v).filter(t);
- N.length && (v.tags = v.tags || {}, N.forEach(function(Z) {
- v.tags[Z.substr(4)] = v[Z], delete v[Z];
- }));
- var M = Object.keys(v).filter(A);
- M.length && (v.disposition = v.disposition || {}, M.forEach(function(Z) {
- v.disposition[Z.substr(12)] = v[Z], delete v[Z];
- }));
- }
- }), Q(null, H);
- }
- }
- var d = !1;
- f.on("exit", function(m, H) {
- d = !0, m ? x(new Error("ffprobe exited with code " + m)) : H ? x(new Error("ffprobe was killed with signal " + H)) : x();
- }), f.stdout.on("data", function(m) {
- c += m;
- }), f.stdout.on("close", function() {
- l = !0, x();
- }), f.stderr.on("data", function(m) {
- u += m;
- }), f.stderr.on("close", function() {
- C = !0, x();
- });
- });
- };
- }, $B;
-}
-var Ag, PI;
-function Is() {
- if (PI)
- return Ag;
- PI = 1;
- var e = nA, t = vA, A = ao.PassThrough, i = BI, B = Ne();
- return Ag = function(n) {
- n.saveToFile = n.save = function(I) {
- return this.output(I).run(), this;
- }, n.writeToStream = n.pipe = n.stream = function(I, r) {
- if (I && !("writable" in I) && (r = I, I = void 0), !I) {
- if (process.version.match(/v0\.8\./))
- throw new Error("PassThrough stream is not supported on node v0.8");
- I = new A();
- }
- return this.output(I, r).run(), I;
- }, n.takeScreenshots = n.thumbnail = n.thumbnails = n.screenshot = n.screenshots = function(I, r) {
- var a = this, Q = this._currentInput.source;
- if (I = I || { count: 1 }, typeof I == "number" && (I = {
- count: I
- }), "folder" in I || (I.folder = r || "."), "timestamps" in I && (I.timemarks = I.timestamps), !("timemarks" in I)) {
- if (!I.count)
- throw new Error("Cannot take screenshots: neither a count nor a timemark list are specified");
- var E = 100 / (1 + I.count);
- I.timemarks = [];
- for (var o = 0; o < I.count; o++)
- I.timemarks.push(E * (o + 1) + "%");
- }
- if ("size" in I) {
- var c = I.size.match(/^(\d+)x(\d+)$/), l = I.size.match(/^(\d+)x\?$/), u = I.size.match(/^\?x(\d+)$/), C = I.size.match(/^(\d+)%$/);
- if (!c && !l && !u && !C)
- throw new Error("Invalid size parameter: " + I.size);
- }
- var s;
- function f(h) {
- s ? h(null, s) : a.ffprobe(function(x, d) {
- s = d, h(x, d);
- });
- }
- return i.waterfall([
- // Compute percent timemarks if any
- function(x) {
- if (I.timemarks.some(function(d) {
- return ("" + d).match(/^[\d.]+%$/);
- })) {
- if (typeof Q != "string")
- return x(new Error("Cannot compute screenshot timemarks with an input stream, please specify fixed timemarks"));
- f(function(d, m) {
- if (d)
- x(d);
- else {
- var H = m.streams.reduce(function(N, M) {
- return M.codec_type === "video" && M.width * M.height > N.width * N.height ? M : N;
- }, { width: 0, height: 0 });
- if (H.width === 0)
- return x(new Error("No video stream in input, cannot take screenshots"));
- var v = Number(H.duration);
- if (isNaN(v) && (v = Number(m.format.duration)), isNaN(v))
- return x(new Error("Could not get input duration, please specify fixed timemarks"));
- I.timemarks = I.timemarks.map(function(N) {
- return ("" + N).match(/^([\d.]+)%$/) ? v * parseFloat(N) / 100 : N;
- }), x();
- }
- });
- } else
- x();
- },
- // Turn all timemarks into numbers and sort them
- function(x) {
- I.timemarks = I.timemarks.map(function(d) {
- return B.timemarkToSeconds(d);
- }).sort(function(d, m) {
- return d - m;
- }), x();
- },
- // Add '_%i' to pattern when requesting multiple screenshots and no variable token is present
- function(x) {
- var d = I.filename || "tn.png";
- if (d.indexOf(".") === -1 && (d += ".png"), I.timemarks.length > 1 && !d.match(/%(s|0*i)/)) {
- var m = t.extname(d);
- d = t.join(t.dirname(d), t.basename(d, m) + "_%i" + m);
- }
- x(null, d);
- },
- // Replace filename tokens (%f, %b) in pattern
- function(x, d) {
- if (x.match(/%[bf]/)) {
- if (typeof Q != "string")
- return d(new Error("Cannot replace %f or %b when using an input stream"));
- x = x.replace(/%f/g, t.basename(Q)).replace(/%b/g, t.basename(Q, t.extname(Q)));
- }
- d(null, x);
- },
- // Compute size if needed
- function(x, d) {
- if (x.match(/%[whr]/)) {
- if (c)
- return d(null, x, c[1], c[2]);
- f(function(m, H) {
- if (m)
- return d(new Error("Could not determine video resolution to replace %w, %h or %r"));
- var v = H.streams.reduce(function(Z, V) {
- return V.codec_type === "video" && V.width * V.height > Z.width * Z.height ? V : Z;
- }, { width: 0, height: 0 });
- if (v.width === 0)
- return d(new Error("No video stream in input, cannot replace %w, %h or %r"));
- var N = v.width, M = v.height;
- l ? (M = M * Number(l[1]) / N, N = Number(l[1])) : u ? (N = N * Number(u[1]) / M, M = Number(u[1])) : C && (N = N * Number(C[1]) / 100, M = M * Number(C[1]) / 100), d(null, x, Math.round(N / 2) * 2, Math.round(M / 2) * 2);
- });
- } else
- d(null, x, -1, -1);
- },
- // Replace size tokens (%w, %h, %r) in pattern
- function(x, d, m, H) {
- x = x.replace(/%r/g, "%wx%h").replace(/%w/g, d).replace(/%h/g, m), H(null, x);
- },
- // Replace variable tokens in pattern (%s, %i) and generate filename list
- function(x, d) {
- var m = I.timemarks.map(function(H, v) {
- return x.replace(/%s/g, B.timemarkToSeconds(H)).replace(/%(0*)i/g, function(N, M) {
- var Z = "" + (v + 1);
- return M.substr(0, Math.max(0, M.length + 1 - Z.length)) + Z;
- });
- });
- a.emit("filenames", m), d(null, m);
- },
- // Create output directory
- function(x, d) {
- e.exists(I.folder, function(m) {
- m ? d(null, x) : e.mkdir(I.folder, function(H) {
- H ? d(H) : d(null, x);
- });
- });
- }
- ], function(x, d) {
- if (x)
- return a.emit("error", x);
- var m = I.timemarks.length, H, v = [H = {
- filter: "split",
- options: m,
- outputs: []
- }];
- if ("size" in I) {
- a.size(I.size);
- var N = a._currentOutput.sizeFilters.get().map(function(EA, _) {
- return _ > 0 && (EA.inputs = "size" + (_ - 1)), EA.outputs = "size" + _, EA;
- });
- H.inputs = "size" + (N.length - 1), v = N.concat(v), a._currentOutput.sizeFilters.clear();
- }
- for (var M = 0, Z = 0; Z < m; Z++) {
- var V = "screen" + Z;
- H.outputs.push(V), Z === 0 && (M = I.timemarks[Z], a.seekInput(M)), a.output(t.join(I.folder, d[Z])).frames(1).map(V), Z > 0 && a.seek(I.timemarks[Z] - M);
- }
- a.complexFilter(v), a.run();
- }), this;
- }, n.mergeToFile = n.concatenate = n.concat = function(I, r) {
- var a = this._inputs.filter(function(E) {
- return !E.isStream;
- })[0], Q = this;
- return this.ffprobe(this._inputs.indexOf(a), function(E, o) {
- if (E)
- return Q.emit("error", E);
- var c = o.streams.some(function(u) {
- return u.codec_type === "audio";
- }), l = o.streams.some(function(u) {
- return u.codec_type === "video";
- });
- Q.output(I, r).complexFilter({
- filter: "concat",
- options: {
- n: Q._inputs.length,
- v: l ? 1 : 0,
- a: c ? 1 : 0
- }
- }).run();
- }), this;
- };
- }, Ag;
-}
-var eg, XI;
-function zI() {
- if (XI)
- return eg;
- XI = 1;
- var e = vA, t = Bt, A = Ut.EventEmitter, i = Ne();
- function B(g, n) {
- if (!(this instanceof B))
- return new B(g, n);
- A.call(this), typeof g == "object" && !("readable" in g) ? n = g : (n = n || {}, n.source = g), this._inputs = [], n.source && this.input(n.source), this._outputs = [], this.output();
- var I = this;
- ["_global", "_complexFilters"].forEach(function(r) {
- I[r] = i.args();
- }), n.stdoutLines = "stdoutLines" in n ? n.stdoutLines : 100, n.presets = n.presets || n.preset || e.join(__dirname, "presets"), n.niceness = n.niceness || n.priority || 0, this.options = n, this.logger = n.logger || {
- debug: function() {
- },
- info: function() {
- },
- warn: function() {
- },
- error: function() {
- }
- };
- }
- return t.inherits(B, A), eg = B, B.prototype.clone = function() {
- var g = new B(), n = this;
- return g.options = this.options, g.logger = this.logger, g._inputs = this._inputs.map(function(I) {
- return {
- source: I.source,
- options: I.options.clone()
- };
- }), "target" in this._outputs[0] ? (g._outputs = [], g.output()) : (g._outputs = [
- g._currentOutput = {
- flags: {}
- }
- ], ["audio", "audioFilters", "video", "videoFilters", "sizeFilters", "options"].forEach(function(I) {
- g._currentOutput[I] = n._currentOutput[I].clone();
- }), this._currentOutput.sizeData && (g._currentOutput.sizeData = {}, i.copy(this._currentOutput.sizeData, g._currentOutput.sizeData)), i.copy(this._currentOutput.flags, g._currentOutput.flags)), ["_global", "_complexFilters"].forEach(function(I) {
- g[I] = n[I].clone();
- }), g;
- }, Wo()(B.prototype), qo()(B.prototype), Zo()(B.prototype), Vo()(B.prototype), To()(B.prototype), Po()(B.prototype), Xo()(B.prototype), Bs()(B.prototype), gs()(B.prototype), B.setFfmpegPath = function(g) {
- new B().setFfmpegPath(g);
- }, B.setFfprobePath = function(g) {
- new B().setFfprobePath(g);
- }, B.setFlvtoolPath = function(g) {
- new B().setFlvtoolPath(g);
- }, B.availableFilters = B.getAvailableFilters = function(g) {
- new B().availableFilters(g);
- }, B.availableCodecs = B.getAvailableCodecs = function(g) {
- new B().availableCodecs(g);
- }, B.availableFormats = B.getAvailableFormats = function(g) {
- new B().availableFormats(g);
- }, B.availableEncoders = B.getAvailableEncoders = function(g) {
- new B().availableEncoders(g);
- }, ns()(B.prototype), B.ffprobe = function(g) {
- var n = new B(g);
- n.ffprobe.apply(n, Array.prototype.slice.call(arguments, 1));
- }, Is()(B.prototype), eg;
-}
-var rs = (process.env.FLUENTFFMPEG_COV, zI());
-const In = /* @__PURE__ */ gB(rs);
-function BA(...e) {
- console.log(...e);
-}
-var oQ = { exports: {} }, rn = { exports: {} }, Tt = vA.sep || "/", Es = Qs;
-function Qs(e) {
- if (typeof e != "string" || e.length <= 7 || e.substring(0, 7) != "file://")
- throw new TypeError("must pass in a file:// URI to convert to a file path");
- var t = decodeURI(e.substring(7)), A = t.indexOf("/"), i = t.substring(0, A), B = t.substring(A + 1);
- return i == "localhost" && (i = ""), i && (i = Tt + Tt + i), B = B.replace(/^(.+)\|/, "$1:"), Tt == "\\" && (B = B.replace(/\//g, "\\")), /^.+\:/.test(B) || (B = Tt + B), i + B;
-}
-(function(e, t) {
- var A = nA, i = vA, B = Es, g = i.join, n = i.dirname, I = A.accessSync && function(Q) {
- try {
- A.accessSync(Q);
- } catch {
- return !1;
- }
- return !0;
- } || A.existsSync || i.existsSync, r = {
- arrow: process.env.NODE_BINDINGS_ARROW || " → ",
- compiled: process.env.NODE_BINDINGS_COMPILED_DIR || "compiled",
- platform: process.platform,
- arch: process.arch,
- nodePreGyp: "node-v" + process.versions.modules + "-" + process.platform + "-" + process.arch,
- version: process.versions.node,
- bindings: "bindings.node",
- try: [
- // node-gyp's linked version in the "build" dir
- ["module_root", "build", "bindings"],
- // node-waf and gyp_addon (a.k.a node-gyp)
- ["module_root", "build", "Debug", "bindings"],
- ["module_root", "build", "Release", "bindings"],
- // Debug files, for development (legacy behavior, remove for node v0.9)
- ["module_root", "out", "Debug", "bindings"],
- ["module_root", "Debug", "bindings"],
- // Release files, but manually compiled (legacy behavior, remove for node v0.9)
- ["module_root", "out", "Release", "bindings"],
- ["module_root", "Release", "bindings"],
- // Legacy from node-waf, node <= 0.4.x
- ["module_root", "build", "default", "bindings"],
- // Production "Release" buildtype binary (meh...)
- ["module_root", "compiled", "version", "platform", "arch", "bindings"],
- // node-qbs builds
- ["module_root", "addon-build", "release", "install-root", "bindings"],
- ["module_root", "addon-build", "debug", "install-root", "bindings"],
- ["module_root", "addon-build", "default", "install-root", "bindings"],
- // node-pre-gyp path ./lib/binding/{node_abi}-{platform}-{arch}
- ["module_root", "lib", "binding", "nodePreGyp", "bindings"]
- ]
- };
- function a(Q) {
- typeof Q == "string" ? Q = { bindings: Q } : Q || (Q = {}), Object.keys(r).map(function(f) {
- f in Q || (Q[f] = r[f]);
- }), Q.module_root || (Q.module_root = t.getRoot(t.getFileName())), i.extname(Q.bindings) != ".node" && (Q.bindings += ".node");
- for (var E = typeof __webpack_require__ == "function" ? __non_webpack_require__ : Xn, o = [], c = 0, l = Q.try.length, u, C, s; c < l; c++) {
- u = g.apply(
- null,
- Q.try[c].map(function(f) {
- return Q[f] || f;
- })
- ), o.push(u);
- try {
- return C = Q.path ? E.resolve(u) : E(u), Q.path || (C.path = u), C;
- } catch (f) {
- if (f.code !== "MODULE_NOT_FOUND" && f.code !== "QUALIFIED_PATH_RESOLUTION_FAILED" && !/not find/i.test(f.message))
- throw f;
- }
- }
- throw s = new Error(
- `Could not locate the bindings file. Tried:
-` + o.map(function(f) {
- return Q.arrow + f;
- }).join(`
-`)
- ), s.tries = o, s;
- }
- e.exports = t = a, t.getFileName = function(E) {
- var o = Error.prepareStackTrace, c = Error.stackTraceLimit, l = {}, u;
- Error.stackTraceLimit = 10, Error.prepareStackTrace = function(s, f) {
- for (var h = 0, x = f.length; h < x; h++)
- if (u = f[h].getFileName(), u !== __filename)
- if (E) {
- if (u !== E)
- return;
- } else
- return;
- }, Error.captureStackTrace(l), l.stack, Error.prepareStackTrace = o, Error.stackTraceLimit = c;
- var C = "file://";
- return u.indexOf(C) === 0 && (u = B(u)), u;
- }, t.getRoot = function(E) {
- for (var o = n(E), c; ; ) {
- if (o === "." && (o = process.cwd()), I(g(o, "package.json")) || I(g(o, "node_modules")))
- return o;
- if (c === o)
- throw new Error(
- 'Could not find module root given file: "' + E + '". Do you have a `package.json` file? '
- );
- c = o, o = g(o, "..");
- }
- };
-})(rn, rn.exports);
-var os = rn.exports, as = os("node_sqlite3.node"), tg = {}, OI;
-function ss() {
- if (OI)
- return tg;
- OI = 1;
- const e = Bt;
- function t(i, B, g) {
- const n = i[B];
- i[B] = function() {
- const I = new Error(), r = i.constructor.name + "#" + B + "(" + Array.prototype.slice.call(arguments).map(function(Q) {
- return e.inspect(Q, !1, 0);
- }).join(", ") + ")";
- typeof g > "u" && (g = -1), g < 0 && (g += arguments.length);
- const a = arguments[g];
- return typeof arguments[g] == "function" && (arguments[g] = function() {
- const E = arguments[0];
- return E && E.stack && !E.__augmented && (E.stack = A(E).join(`
-`), E.stack += `
---> in ` + r, E.stack += `
-` + A(I).slice(1).join(`
-`), E.__augmented = !0), a.apply(this, arguments);
- }), n.apply(this, arguments);
- };
- }
- tg.extendTrace = t;
- function A(i) {
- return i.stack.split(`
-`).filter(function(B) {
- return B.indexOf(__filename) < 0;
- });
- }
- return tg;
-}
-(function(e, t) {
- const A = vA, i = as, B = Ut.EventEmitter;
- e.exports = i;
- function g(o) {
- return function(c) {
- let l;
- const u = Array.prototype.slice.call(arguments, 1);
- if (typeof u[u.length - 1] == "function") {
- const s = u[u.length - 1];
- l = function(f) {
- f && s(f);
- };
- }
- const C = new r(this, c, l);
- return o.call(this, C, u);
- };
- }
- function n(o, c) {
- for (const l in c.prototype)
- o.prototype[l] = c.prototype[l];
- }
- i.cached = {
- Database: function(o, c, l) {
- if (o === "" || o === ":memory:")
- return new I(o, c, l);
- let u;
- if (o = A.resolve(o), !i.cached.objects[o])
- u = i.cached.objects[o] = new I(o, c, l);
- else {
- u = i.cached.objects[o];
- const C = typeof c == "number" ? l : c;
- if (typeof C == "function") {
- let s = function() {
- C.call(u, null);
- };
- u.open ? process.nextTick(s) : u.once("open", s);
- }
- }
- return u;
- },
- objects: {}
- };
- const I = i.Database, r = i.Statement, a = i.Backup;
- n(I, B), n(r, B), n(a, B), I.prototype.prepare = g(function(o, c) {
- return c.length ? o.bind.apply(o, c) : o;
- }), I.prototype.run = g(function(o, c) {
- return o.run.apply(o, c).finalize(), this;
- }), I.prototype.get = g(function(o, c) {
- return o.get.apply(o, c).finalize(), this;
- }), I.prototype.all = g(function(o, c) {
- return o.all.apply(o, c).finalize(), this;
- }), I.prototype.each = g(function(o, c) {
- return o.each.apply(o, c).finalize(), this;
- }), I.prototype.map = g(function(o, c) {
- return o.map.apply(o, c).finalize(), this;
- }), I.prototype.backup = function() {
- let o;
- return arguments.length <= 2 ? o = new a(this, arguments[0], "main", "main", !0, arguments[1]) : o = new a(this, arguments[0], arguments[1], arguments[2], arguments[3], arguments[4]), o.retryErrors = [i.BUSY, i.LOCKED], o;
- }, r.prototype.map = function() {
- const o = Array.prototype.slice.call(arguments), c = o.pop();
- return o.push(function(l, u) {
- if (l)
- return c(l);
- const C = {};
- if (u.length) {
- const s = Object.keys(u[0]), f = s[0];
- if (s.length > 2)
- for (let h = 0; h < u.length; h++)
- C[u[h][f]] = u[h];
- else {
- const h = s[1];
- for (let x = 0; x < u.length; x++)
- C[u[x][f]] = u[x][h];
- }
- }
- c(l, C);
- }), this.all.apply(this, o);
- };
- let Q = !1;
- const E = ["trace", "profile", "change"];
- I.prototype.addListener = I.prototype.on = function(o) {
- const c = B.prototype.addListener.apply(this, arguments);
- return E.indexOf(o) >= 0 && this.configure(o, !0), c;
- }, I.prototype.removeListener = function(o) {
- const c = B.prototype.removeListener.apply(this, arguments);
- return E.indexOf(o) >= 0 && !this._events[o] && this.configure(o, !1), c;
- }, I.prototype.removeAllListeners = function(o) {
- const c = B.prototype.removeAllListeners.apply(this, arguments);
- return E.indexOf(o) >= 0 && this.configure(o, !1), c;
- }, i.verbose = function() {
- if (!Q) {
- const o = ss();
- [
- "prepare",
- "get",
- "run",
- "all",
- "each",
- "map",
- "close",
- "exec"
- ].forEach(function(c) {
- o.extendTrace(I.prototype, c);
- }), [
- "bind",
- "get",
- "run",
- "all",
- "each",
- "map",
- "reset",
- "finalize"
- ].forEach(function(c) {
- o.extendTrace(r.prototype, c);
- }), Q = !0;
- }
- return i;
- };
-})(oQ);
-var Cs = oQ.exports;
-const ig = /* @__PURE__ */ gB(Cs);
-class cs {
- constructor() {
- O(this, "db");
- }
- createConnection(t) {
- this.db || (this.db = new ig.Database(t, ig.OPEN_READWRITE | ig.OPEN_CREATE, (A) => {
- if (A) {
- BA("Could not connect to database", A);
- return;
- }
- this.createTable();
- }));
- }
- createTable() {
- throw new Error("Method not implemented.");
- }
- close() {
- var t;
- (t = this.db) == null || t.close();
- }
-}
-class fs extends cs {
- constructor() {
- super();
- O(this, "msgCache", /* @__PURE__ */ new Map());
- const A = 1e3 * 60 * 10;
- setInterval(() => {
- BA("清理消息缓存"), this.msgCache.forEach((i, B) => {
- Date.now() - parseInt(i.msgTime) * 1e3 > A && this.msgCache.delete(B);
- });
- }, A);
- }
- createTable() {
- this.db.run(`
- CREATE TABLE IF NOT EXISTS msgs (
- id INTEGER PRIMARY KEY AUTOINCREMENT,
- long_id TEXT NOT NULL UNIQUE,
- seq INTEGER NOT NULL,
- peer_uid TEXT NOT NULL,
- msg TEXT NOT NULL
- )`, function(g) {
- g && BA("Could not create table", g);
- }), this.db.run(`
- CREATE TABLE IF NOT EXISTS files (
- id INTEGER PRIMARY KEY AUTOINCREMENT,
- name TEXT NOT NULL,
- path TEXT NOT NULL,
- url TEXT,
- size INTEGER NOT NULL,
- uuid TEXT,
- elementType INTEGER,
- element TEXT NOT NULL,
- elementId TEXT NOT NULL,
- msgId TEXT NOT NULL
- )`, function(g) {
- g && BA("Could not create table files", g);
- }), this.db.run(`
- CREATE TABLE IF NOT EXISTS temp_uins (
- id INTEGER PRIMARY KEY AUTOINCREMENT,
- uid TEXT,
- uin TEXT
- )`, function(g) {
- g && BA("Could not create table temp_uins", g);
- });
- }
- async getMsg(A, i) {
- const B = this.db.prepare(A);
- return new Promise((g, n) => {
- B.get(...i, (I, r) => {
- I && (BA("Could not get msg by short id", I), g(null));
- try {
- const a = JSON.parse(r.msg);
- return a.id = r.id, g(a);
- } catch {
- return g(null);
- }
- });
- });
- }
- async getMsgByShortId(A) {
- return this.getMsg("SELECT * FROM msgs WHERE id = ?", [A]);
- }
- async getMsgByLongId(A) {
- return this.msgCache.has(A) ? this.msgCache.get(A) : this.getMsg("SELECT * FROM msgs WHERE long_id = ?", [A]);
- }
- async getMsgBySeq(A, i) {
- return this.getMsg("SELECT * FROM msgs WHERE peer_uid = ? AND seq = ?", [A, i]);
- }
- async addMsg(A, i = !0) {
- BA("正在记录消息到数据库", A.msgId);
- const B = await this.getMsgByLongId(A.msgId);
- if (B)
- return i && this.updateMsg(A).then(), B.id;
- const g = this.db.prepare("INSERT INTO msgs (long_id, seq, peer_uid, msg) VALUES (?, ?, ?, ?)");
- return new Promise((n, I) => {
- const r = this;
- g.run(A.msgId, A.msgSeq, A.peerUid, JSON.stringify(A), function(a) {
- a ? a.errno === 19 ? r.getMsgByLongId(A.msgId).then((Q) => {
- Q ? (r.msgCache.set(Q.msgId, Q), n(Q.id)) : (BA("db could not get msg by long id", a), n(-1));
- }) : (BA("db could not add msg", a), n(-1)) : (A.id = this.lastID, r.msgCache.set(A.msgId, A), n(this.lastID));
- });
- });
- }
- async updateMsg(A) {
- const i = this.msgCache.get(A.msgId);
- i && Object.assign(i, A);
- const B = this.db.prepare("UPDATE msgs SET msg = ?, seq = ? WHERE long_id = ?");
- try {
- B.run(JSON.stringify(A), A.msgSeq, A.msgId);
- } catch (g) {
- BA("updateMsg db error", g);
- }
- }
- async addFileCache(A) {
- const i = this.db.prepare("INSERT INTO files (name, path, url, size, uuid, elementType ,element, elementId, msgId) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)");
- return new Promise((B, g) => {
- i.run(
- A.name,
- A.path,
- A.url,
- A.size,
- A.uuid,
- A.elementType,
- JSON.stringify(A.element),
- A.elementId,
- A.msgId,
- function(n) {
- n && (BA("db could not add file", n), g(n)), B(null);
- }
- );
- });
- }
- async getFileCache(A, i) {
- const B = this.db.prepare(A);
- return new Promise((g, n) => {
- B.get(...i, (I, r) => {
- I && (BA("db could not get file cache", I), n(I)), r && (r.element = JSON.parse(r.element)), g(r);
- });
- });
- }
- async getFileCacheByName(A) {
- return this.getFileCache("SELECT * FROM files WHERE name = ?", [A]);
- }
- async getFileCacheByUuid(A) {
- return this.getFileCache("SELECT * FROM files WHERE uuid = ?", [A]);
- }
- // todo: 是否所有的文件都有uuid?语音消息有没有uuid?
- async updateFileCache(A) {
- const i = this.db.prepare("UPDATE files SET path = ?, url = ? WHERE uuid = ?");
- return new Promise((B, g) => {
- i.run(A.path, A.url, A.uuid, function(n) {
- n && (BA("db could not update file cache", n), g(n)), B(null);
- });
- });
- }
- // 被动收到的临时会话消息uin->uid
- async getReceivedTempUinMap() {
- const A = "SELECT * FROM temp_uins";
- return new Promise((i, B) => {
- this.db.all(A, (g, n) => {
- g && (BA("db could not get temp uin map", g), B(g));
- const I = {};
- n.forEach((r) => {
- I[r.uin] = r.uid;
- }), i(I);
- });
- });
- }
- // 通过uin获取临时会话消息uid
- async getUidByTempUin(A) {
- const i = "SELECT * FROM temp_uins WHERE uin = ?";
- return new Promise((B, g) => {
- this.db.get(i, [A], (n, I) => {
- n && (BA("db could not get temp uin map", n), g(n)), B(I == null ? void 0 : I.uid);
- });
- });
- }
- async addTempUin(A, i) {
- if (!await this.getUidByTempUin(A)) {
- const g = this.db.prepare("INSERT INTO temp_uins (uin, uid) VALUES (?, ?)");
- return new Promise((n, I) => {
- g.run(A, i, function(r) {
- r && (BA("db could not add temp uin", r), I(r)), n(null);
- });
- });
- }
- }
-}
-const ii = new fs();
-var gI = {}, En = { exports: {} }, aQ = Ut.EventEmitter, Bg, _I;
-function us() {
- if (_I)
- return Bg;
- _I = 1;
- function e(l, u) {
- var C = Object.keys(l);
- if (Object.getOwnPropertySymbols) {
- var s = Object.getOwnPropertySymbols(l);
- u && (s = s.filter(function(f) {
- return Object.getOwnPropertyDescriptor(l, f).enumerable;
- })), C.push.apply(C, s);
- }
- return C;
- }
- function t(l) {
- for (var u = 1; u < arguments.length; u++) {
- var C = arguments[u] != null ? arguments[u] : {};
- u % 2 ? e(Object(C), !0).forEach(function(s) {
- A(l, s, C[s]);
- }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(l, Object.getOwnPropertyDescriptors(C)) : e(Object(C)).forEach(function(s) {
- Object.defineProperty(l, s, Object.getOwnPropertyDescriptor(C, s));
- });
- }
- return l;
- }
- function A(l, u, C) {
- return u = n(u), u in l ? Object.defineProperty(l, u, { value: C, enumerable: !0, configurable: !0, writable: !0 }) : l[u] = C, l;
- }
- function i(l, u) {
- if (!(l instanceof u))
- throw new TypeError("Cannot call a class as a function");
- }
- function B(l, u) {
- for (var C = 0; C < u.length; C++) {
- var s = u[C];
- s.enumerable = s.enumerable || !1, s.configurable = !0, "value" in s && (s.writable = !0), Object.defineProperty(l, n(s.key), s);
- }
- }
- function g(l, u, C) {
- return u && B(l.prototype, u), C && B(l, C), Object.defineProperty(l, "prototype", { writable: !1 }), l;
- }
- function n(l) {
- var u = I(l, "string");
- return typeof u == "symbol" ? u : String(u);
- }
- function I(l, u) {
- if (typeof l != "object" || l === null)
- return l;
- var C = l[Symbol.toPrimitive];
- if (C !== void 0) {
- var s = C.call(l, u || "default");
- if (typeof s != "object")
- return s;
- throw new TypeError("@@toPrimitive must return a primitive value.");
- }
- return (u === "string" ? String : Number)(l);
- }
- var r = BB, a = r.Buffer, Q = Bt, E = Q.inspect, o = E && E.custom || "inspect";
- function c(l, u, C) {
- a.prototype.copy.call(l, u, C);
- }
- return Bg = /* @__PURE__ */ function() {
- function l() {
- i(this, l), this.head = null, this.tail = null, this.length = 0;
- }
- return g(l, [{
- key: "push",
- value: function(C) {
- var s = {
- data: C,
- next: null
- };
- this.length > 0 ? this.tail.next = s : this.head = s, this.tail = s, ++this.length;
- }
- }, {
- key: "unshift",
- value: function(C) {
- var s = {
- data: C,
- next: this.head
- };
- this.length === 0 && (this.tail = s), this.head = s, ++this.length;
- }
- }, {
- key: "shift",
- value: function() {
- if (this.length !== 0) {
- var C = this.head.data;
- return this.length === 1 ? this.head = this.tail = null : this.head = this.head.next, --this.length, C;
- }
- }
- }, {
- key: "clear",
- value: function() {
- this.head = this.tail = null, this.length = 0;
- }
- }, {
- key: "join",
- value: function(C) {
- if (this.length === 0)
- return "";
- for (var s = this.head, f = "" + s.data; s = s.next; )
- f += C + s.data;
- return f;
- }
- }, {
- key: "concat",
- value: function(C) {
- if (this.length === 0)
- return a.alloc(0);
- for (var s = a.allocUnsafe(C >>> 0), f = this.head, h = 0; f; )
- c(f.data, s, h), h += f.data.length, f = f.next;
- return s;
- }
- // Consumes a specified amount of bytes or characters from the buffered data.
- }, {
- key: "consume",
- value: function(C, s) {
- var f;
- return C < this.head.data.length ? (f = this.head.data.slice(0, C), this.head.data = this.head.data.slice(C)) : C === this.head.data.length ? f = this.shift() : f = s ? this._getString(C) : this._getBuffer(C), f;
- }
- }, {
- key: "first",
- value: function() {
- return this.head.data;
- }
- // Consumes a specified amount of characters from the buffered data.
- }, {
- key: "_getString",
- value: function(C) {
- var s = this.head, f = 1, h = s.data;
- for (C -= h.length; s = s.next; ) {
- var x = s.data, d = C > x.length ? x.length : C;
- if (d === x.length ? h += x : h += x.slice(0, C), C -= d, C === 0) {
- d === x.length ? (++f, s.next ? this.head = s.next : this.head = this.tail = null) : (this.head = s, s.data = x.slice(d));
- break;
- }
- ++f;
- }
- return this.length -= f, h;
- }
- // Consumes a specified amount of bytes from the buffered data.
- }, {
- key: "_getBuffer",
- value: function(C) {
- var s = a.allocUnsafe(C), f = this.head, h = 1;
- for (f.data.copy(s), C -= f.data.length; f = f.next; ) {
- var x = f.data, d = C > x.length ? x.length : C;
- if (x.copy(s, s.length - C, 0, d), C -= d, C === 0) {
- d === x.length ? (++h, f.next ? this.head = f.next : this.head = this.tail = null) : (this.head = f, f.data = x.slice(d));
- break;
- }
- ++h;
- }
- return this.length -= h, s;
- }
- // Make sure the linked list only shows the minimal necessary information.
- }, {
- key: o,
- value: function(C, s) {
- return E(this, t(t({}, s), {}, {
- // Only inspect one level.
- depth: 0,
- // It should not recurse.
- customInspect: !1
- }));
- }
- }]), l;
- }(), Bg;
-}
-function xs(e, t) {
- var A = this, i = this._readableState && this._readableState.destroyed, B = this._writableState && this._writableState.destroyed;
- return i || B ? (t ? t(e) : e && (this._writableState ? this._writableState.errorEmitted || (this._writableState.errorEmitted = !0, process.nextTick(Qn, this, e)) : process.nextTick(Qn, this, e)), this) : (this._readableState && (this._readableState.destroyed = !0), this._writableState && (this._writableState.destroyed = !0), this._destroy(e || null, function(g) {
- !t && g ? A._writableState ? A._writableState.errorEmitted ? process.nextTick(Bi, A) : (A._writableState.errorEmitted = !0, process.nextTick(jI, A, g)) : process.nextTick(jI, A, g) : t ? (process.nextTick(Bi, A), t(g)) : process.nextTick(Bi, A);
- }), this);
-}
-function jI(e, t) {
- Qn(e, t), Bi(e);
-}
-function Bi(e) {
- e._writableState && !e._writableState.emitClose || e._readableState && !e._readableState.emitClose || e.emit("close");
-}
-function hs() {
- this._readableState && (this._readableState.destroyed = !1, this._readableState.reading = !1, this._readableState.ended = !1, this._readableState.endEmitted = !1), this._writableState && (this._writableState.destroyed = !1, this._writableState.ended = !1, this._writableState.ending = !1, this._writableState.finalCalled = !1, this._writableState.prefinished = !1, this._writableState.finished = !1, this._writableState.errorEmitted = !1);
-}
-function Qn(e, t) {
- e.emit("error", t);
-}
-function ds(e, t) {
- var A = e._readableState, i = e._writableState;
- A && A.autoDestroy || i && i.autoDestroy ? e.destroy(t) : e.emit("error", t);
-}
-var sQ = {
- destroy: xs,
- undestroy: hs,
- errorOrDestroy: ds
-}, gt = {};
-function ls(e, t) {
- e.prototype = Object.create(t.prototype), e.prototype.constructor = e, e.__proto__ = t;
-}
-var CQ = {};
-function OA(e, t, A) {
- A || (A = Error);
- function i(g, n, I) {
- return typeof t == "string" ? t : t(g, n, I);
- }
- var B = /* @__PURE__ */ function(g) {
- ls(n, g);
- function n(I, r, a) {
- return g.call(this, i(I, r, a)) || this;
- }
- return n;
- }(A);
- B.prototype.name = A.name, B.prototype.code = e, CQ[e] = B;
-}
-function $I(e, t) {
- if (Array.isArray(e)) {
- var A = e.length;
- return e = e.map(function(i) {
- return String(i);
- }), A > 2 ? "one of ".concat(t, " ").concat(e.slice(0, A - 1).join(", "), ", or ") + e[A - 1] : A === 2 ? "one of ".concat(t, " ").concat(e[0], " or ").concat(e[1]) : "of ".concat(t, " ").concat(e[0]);
- } else
- return "of ".concat(t, " ").concat(String(e));
-}
-function ws(e, t, A) {
- return e.substr(!A || A < 0 ? 0 : +A, t.length) === t;
-}
-function ys(e, t, A) {
- return (A === void 0 || A > e.length) && (A = e.length), e.substring(A - t.length, A) === t;
-}
-function Ds(e, t, A) {
- return typeof A != "number" && (A = 0), A + t.length > e.length ? !1 : e.indexOf(t, A) !== -1;
-}
-OA("ERR_INVALID_OPT_VALUE", function(e, t) {
- return 'The value "' + t + '" is invalid for option "' + e + '"';
-}, TypeError);
-OA("ERR_INVALID_ARG_TYPE", function(e, t, A) {
- var i;
- typeof t == "string" && ws(t, "not ") ? (i = "must not be", t = t.replace(/^not /, "")) : i = "must be";
- var B;
- if (ys(e, " argument"))
- B = "The ".concat(e, " ").concat(i, " ").concat($I(t, "type"));
- else {
- var g = Ds(e, ".") ? "property" : "argument";
- B = 'The "'.concat(e, '" ').concat(g, " ").concat(i, " ").concat($I(t, "type"));
- }
- return B += ". Received type ".concat(typeof A), B;
-}, TypeError);
-OA("ERR_STREAM_PUSH_AFTER_EOF", "stream.push() after EOF");
-OA("ERR_METHOD_NOT_IMPLEMENTED", function(e) {
- return "The " + e + " method is not implemented";
-});
-OA("ERR_STREAM_PREMATURE_CLOSE", "Premature close");
-OA("ERR_STREAM_DESTROYED", function(e) {
- return "Cannot call " + e + " after a stream was destroyed";
-});
-OA("ERR_MULTIPLE_CALLBACK", "Callback called multiple times");
-OA("ERR_STREAM_CANNOT_PIPE", "Cannot pipe, not readable");
-OA("ERR_STREAM_WRITE_AFTER_END", "write after end");
-OA("ERR_STREAM_NULL_VALUES", "May not write null values to stream", TypeError);
-OA("ERR_UNKNOWN_ENCODING", function(e) {
- return "Unknown encoding: " + e;
-}, TypeError);
-OA("ERR_STREAM_UNSHIFT_AFTER_END_EVENT", "stream.unshift() after end event");
-gt.codes = CQ;
-var ps = gt.codes.ERR_INVALID_OPT_VALUE;
-function ms(e, t, A) {
- return e.highWaterMark != null ? e.highWaterMark : t ? e[A] : null;
-}
-function Gs(e, t, A, i) {
- var B = ms(t, i, A);
- if (B != null) {
- if (!(isFinite(B) && Math.floor(B) === B) || B < 0) {
- var g = i ? A : "highWaterMark";
- throw new ps(g, B);
- }
- return Math.floor(B);
- }
- return e.objectMode ? 16 : 16 * 1024;
-}
-var cQ = {
- getHighWaterMark: Gs
-}, on = { exports: {} };
-typeof Object.create == "function" ? on.exports = function(t, A) {
- A && (t.super_ = A, t.prototype = Object.create(A.prototype, {
- constructor: {
- value: t,
- enumerable: !1,
- writable: !0,
- configurable: !0
- }
- }));
-} : on.exports = function(t, A) {
- if (A) {
- t.super_ = A;
- var i = function() {
- };
- i.prototype = A.prototype, t.prototype = new i(), t.prototype.constructor = t;
- }
-};
-var ht = on.exports, Fs = Rs;
-function Rs(e, t) {
- if (gg("noDeprecation"))
- return e;
- var A = !1;
- function i() {
- if (!A) {
- if (gg("throwDeprecation"))
- throw new Error(t);
- gg("traceDeprecation") ? console.trace(t) : console.warn(t), A = !0;
- }
- return e.apply(this, arguments);
- }
- return i;
-}
-function gg(e) {
- try {
- if (!it.localStorage)
- return !1;
- } catch {
- return !1;
- }
- var t = it.localStorage[e];
- return t == null ? !1 : String(t).toLowerCase() === "true";
-}
-var ng, Ar;
-function fQ() {
- if (Ar)
- return ng;
- Ar = 1, ng = v;
- function e(R) {
- var F = this;
- this.next = null, this.entry = null, this.finish = function() {
- Oe(F, R);
- };
- }
- var t;
- v.WritableState = m;
- var A = {
- deprecate: Fs
- }, i = aQ, B = BB.Buffer, g = (typeof it < "u" ? it : typeof window < "u" ? window : typeof self < "u" ? self : {}).Uint8Array || function() {
- };
- function n(R) {
- return B.from(R);
- }
- function I(R) {
- return B.isBuffer(R) || R instanceof g;
- }
- var r = sQ, a = cQ, Q = a.getHighWaterMark, E = gt.codes, o = E.ERR_INVALID_ARG_TYPE, c = E.ERR_METHOD_NOT_IMPLEMENTED, l = E.ERR_MULTIPLE_CALLBACK, u = E.ERR_STREAM_CANNOT_PIPE, C = E.ERR_STREAM_DESTROYED, s = E.ERR_STREAM_NULL_VALUES, f = E.ERR_STREAM_WRITE_AFTER_END, h = E.ERR_UNKNOWN_ENCODING, x = r.errorOrDestroy;
- ht(v, i);
- function d() {
- }
- function m(R, F, Y) {
- t = t || ut(), R = R || {}, typeof Y != "boolean" && (Y = F instanceof t), this.objectMode = !!R.objectMode, Y && (this.objectMode = this.objectMode || !!R.writableObjectMode), this.highWaterMark = Q(this, R, "writableHighWaterMark", Y), this.finalCalled = !1, this.needDrain = !1, this.ending = !1, this.ended = !1, this.finished = !1, this.destroyed = !1;
- var P = R.decodeStrings === !1;
- this.decodeStrings = !P, this.defaultEncoding = R.defaultEncoding || "utf8", this.length = 0, this.writing = !1, this.corked = 0, this.sync = !0, this.bufferProcessing = !1, this.onwrite = function(j) {
- cA(F, j);
- }, this.writecb = null, this.writelen = 0, this.bufferedRequest = null, this.lastBufferedRequest = null, this.pendingcb = 0, this.prefinished = !1, this.errorEmitted = !1, this.emitClose = R.emitClose !== !1, this.autoDestroy = !!R.autoDestroy, this.bufferedRequestCount = 0, this.corkedRequestsFree = new e(this);
- }
- m.prototype.getBuffer = function() {
- for (var F = this.bufferedRequest, Y = []; F; )
- Y.push(F), F = F.next;
- return Y;
- }, function() {
- try {
- Object.defineProperty(m.prototype, "buffer", {
- get: A.deprecate(function() {
- return this.getBuffer();
- }, "_writableState.buffer is deprecated. Use _writableState.getBuffer instead.", "DEP0003")
- });
- } catch {
- }
- }();
- var H;
- typeof Symbol == "function" && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] == "function" ? (H = Function.prototype[Symbol.hasInstance], Object.defineProperty(v, Symbol.hasInstance, {
- value: function(F) {
- return H.call(this, F) ? !0 : this !== v ? !1 : F && F._writableState instanceof m;
- }
- })) : H = function(F) {
- return F instanceof this;
- };
- function v(R) {
- t = t || ut();
- var F = this instanceof t;
- if (!F && !H.call(v, this))
- return new v(R);
- this._writableState = new m(R, this, F), this.writable = !0, R && (typeof R.write == "function" && (this._write = R.write), typeof R.writev == "function" && (this._writev = R.writev), typeof R.destroy == "function" && (this._destroy = R.destroy), typeof R.final == "function" && (this._final = R.final)), i.call(this);
- }
- v.prototype.pipe = function() {
- x(this, new u());
- };
- function N(R, F) {
- var Y = new f();
- x(R, Y), process.nextTick(F, Y);
- }
- function M(R, F, Y, P) {
- var j;
- return Y === null ? j = new s() : typeof Y != "string" && !F.objectMode && (j = new o("chunk", ["string", "Buffer"], Y)), j ? (x(R, j), process.nextTick(P, j), !1) : !0;
- }
- v.prototype.write = function(R, F, Y) {
- var P = this._writableState, j = !1, D = !P.objectMode && I(R);
- return D && !B.isBuffer(R) && (R = n(R)), typeof F == "function" && (Y = F, F = null), D ? F = "buffer" : F || (F = P.defaultEncoding), typeof Y != "function" && (Y = d), P.ending ? N(this, Y) : (D || M(this, P, R, Y)) && (P.pendingcb++, j = V(this, P, D, R, F, Y)), j;
- }, v.prototype.cork = function() {
- this._writableState.corked++;
- }, v.prototype.uncork = function() {
- var R = this._writableState;
- R.corked && (R.corked--, !R.writing && !R.corked && !R.bufferProcessing && R.bufferedRequest && _A(this, R));
- }, v.prototype.setDefaultEncoding = function(F) {
- if (typeof F == "string" && (F = F.toLowerCase()), !(["hex", "utf8", "utf-8", "ascii", "binary", "base64", "ucs2", "ucs-2", "utf16le", "utf-16le", "raw"].indexOf((F + "").toLowerCase()) > -1))
- throw new h(F);
- return this._writableState.defaultEncoding = F, this;
- }, Object.defineProperty(v.prototype, "writableBuffer", {
- // making it explicit this property is not enumerable
- // because otherwise some prototype manipulation in
- // userland will fail
- enumerable: !1,
- get: function() {
- return this._writableState && this._writableState.getBuffer();
- }
- });
- function Z(R, F, Y) {
- return !R.objectMode && R.decodeStrings !== !1 && typeof F == "string" && (F = B.from(F, Y)), F;
- }
- Object.defineProperty(v.prototype, "writableHighWaterMark", {
- // making it explicit this property is not enumerable
- // because otherwise some prototype manipulation in
- // userland will fail
- enumerable: !1,
- get: function() {
- return this._writableState.highWaterMark;
- }
- });
- function V(R, F, Y, P, j, D) {
- if (!Y) {
- var w = Z(F, P, j);
- P !== w && (Y = !0, j = "buffer", P = w);
- }
- var S = F.objectMode ? 1 : P.length;
- F.length += S;
- var U = F.length < F.highWaterMark;
- if (U || (F.needDrain = !0), F.writing || F.corked) {
- var X = F.lastBufferedRequest;
- F.lastBufferedRequest = {
- chunk: P,
- encoding: j,
- isBuf: Y,
- callback: D,
- next: null
- }, X ? X.next = F.lastBufferedRequest : F.bufferedRequest = F.lastBufferedRequest, F.bufferedRequestCount += 1;
- } else
- EA(R, F, !1, S, P, j, D);
- return U;
- }
- function EA(R, F, Y, P, j, D, w) {
- F.writelen = P, F.writecb = w, F.writing = !0, F.sync = !0, F.destroyed ? F.onwrite(new C("write")) : Y ? R._writev(j, F.onwrite) : R._write(j, D, F.onwrite), F.sync = !1;
- }
- function _(R, F, Y, P, j) {
- --F.pendingcb, Y ? (process.nextTick(j, P), process.nextTick(MA, R, F), R._writableState.errorEmitted = !0, x(R, P)) : (j(P), R._writableState.errorEmitted = !0, x(R, P), MA(R, F));
- }
- function gA(R) {
- R.writing = !1, R.writecb = null, R.length -= R.writelen, R.writelen = 0;
- }
- function cA(R, F) {
- var Y = R._writableState, P = Y.sync, j = Y.writecb;
- if (typeof j != "function")
- throw new l();
- if (gA(Y), F)
- _(R, Y, P, F, j);
- else {
- var D = pe(Y) || R.destroyed;
- !D && !Y.corked && !Y.bufferProcessing && Y.bufferedRequest && _A(R, Y), P ? process.nextTick(sA, R, Y, D, j) : sA(R, Y, D, j);
- }
- }
- function sA(R, F, Y, P) {
- Y || LA(R, F), F.pendingcb--, P(), MA(R, F);
- }
- function LA(R, F) {
- F.length === 0 && F.needDrain && (F.needDrain = !1, R.emit("drain"));
- }
- function _A(R, F) {
- F.bufferProcessing = !0;
- var Y = F.bufferedRequest;
- if (R._writev && Y && Y.next) {
- var P = F.bufferedRequestCount, j = new Array(P), D = F.corkedRequestsFree;
- D.entry = Y;
- for (var w = 0, S = !0; Y; )
- j[w] = Y, Y.isBuf || (S = !1), Y = Y.next, w += 1;
- j.allBuffers = S, EA(R, F, !0, F.length, j, "", D.finish), F.pendingcb++, F.lastBufferedRequest = null, D.next ? (F.corkedRequestsFree = D.next, D.next = null) : F.corkedRequestsFree = new e(F), F.bufferedRequestCount = 0;
- } else {
- for (; Y; ) {
- var U = Y.chunk, X = Y.encoding, k = Y.callback, iA = F.objectMode ? 1 : U.length;
- if (EA(R, F, !1, iA, U, X, k), Y = Y.next, F.bufferedRequestCount--, F.writing)
- break;
- }
- Y === null && (F.lastBufferedRequest = null);
- }
- F.bufferedRequest = Y, F.bufferProcessing = !1;
- }
- v.prototype._write = function(R, F, Y) {
- Y(new c("_write()"));
- }, v.prototype._writev = null, v.prototype.end = function(R, F, Y) {
- var P = this._writableState;
- return typeof R == "function" ? (Y = R, R = null, F = null) : typeof F == "function" && (Y = F, F = null), R != null && this.write(R, F), P.corked && (P.corked = 1, this.uncork()), P.ending || ve(this, P, Y), this;
- }, Object.defineProperty(v.prototype, "writableLength", {
- // making it explicit this property is not enumerable
- // because otherwise some prototype manipulation in
- // userland will fail
- enumerable: !1,
- get: function() {
- return this._writableState.length;
- }
- });
- function pe(R) {
- return R.ending && R.length === 0 && R.bufferedRequest === null && !R.finished && !R.writing;
- }
- function ce(R, F) {
- R._final(function(Y) {
- F.pendingcb--, Y && x(R, Y), F.prefinished = !0, R.emit("prefinish"), MA(R, F);
- });
- }
- function yA(R, F) {
- !F.prefinished && !F.finalCalled && (typeof R._final == "function" && !F.destroyed ? (F.pendingcb++, F.finalCalled = !0, process.nextTick(ce, R, F)) : (F.prefinished = !0, R.emit("prefinish")));
- }
- function MA(R, F) {
- var Y = pe(F);
- if (Y && (yA(R, F), F.pendingcb === 0 && (F.finished = !0, R.emit("finish"), F.autoDestroy))) {
- var P = R._readableState;
- (!P || P.autoDestroy && P.endEmitted) && R.destroy();
- }
- return Y;
- }
- function ve(R, F, Y) {
- F.ending = !0, MA(R, F), Y && (F.finished ? process.nextTick(Y) : R.once("finish", Y)), F.ended = !0, R.writable = !1;
- }
- function Oe(R, F, Y) {
- var P = R.entry;
- for (R.entry = null; P; ) {
- var j = P.callback;
- F.pendingcb--, j(Y), P = P.next;
- }
- F.corkedRequestsFree.next = R;
- }
- return Object.defineProperty(v.prototype, "destroyed", {
- // making it explicit this property is not enumerable
- // because otherwise some prototype manipulation in
- // userland will fail
- enumerable: !1,
- get: function() {
- return this._writableState === void 0 ? !1 : this._writableState.destroyed;
- },
- set: function(F) {
- this._writableState && (this._writableState.destroyed = F);
- }
- }), v.prototype.destroy = r.destroy, v.prototype._undestroy = r.undestroy, v.prototype._destroy = function(R, F) {
- F(R);
- }, ng;
-}
-var Ig, er;
-function ut() {
- if (er)
- return Ig;
- er = 1;
- var e = Object.keys || function(a) {
- var Q = [];
- for (var E in a)
- Q.push(E);
- return Q;
- };
- Ig = n;
- var t = xQ(), A = fQ();
- ht(n, t);
- for (var i = e(A.prototype), B = 0; B < i.length; B++) {
- var g = i[B];
- n.prototype[g] || (n.prototype[g] = A.prototype[g]);
- }
- function n(a) {
- if (!(this instanceof n))
- return new n(a);
- t.call(this, a), A.call(this, a), this.allowHalfOpen = !0, a && (a.readable === !1 && (this.readable = !1), a.writable === !1 && (this.writable = !1), a.allowHalfOpen === !1 && (this.allowHalfOpen = !1, this.once("end", I)));
- }
- Object.defineProperty(n.prototype, "writableHighWaterMark", {
- // making it explicit this property is not enumerable
- // because otherwise some prototype manipulation in
- // userland will fail
- enumerable: !1,
- get: function() {
- return this._writableState.highWaterMark;
- }
- }), Object.defineProperty(n.prototype, "writableBuffer", {
- // making it explicit this property is not enumerable
- // because otherwise some prototype manipulation in
- // userland will fail
- enumerable: !1,
- get: function() {
- return this._writableState && this._writableState.getBuffer();
- }
- }), Object.defineProperty(n.prototype, "writableLength", {
- // making it explicit this property is not enumerable
- // because otherwise some prototype manipulation in
- // userland will fail
- enumerable: !1,
- get: function() {
- return this._writableState.length;
- }
- });
- function I() {
- this._writableState.ended || process.nextTick(r, this);
- }
- function r(a) {
- a.end();
- }
- return Object.defineProperty(n.prototype, "destroyed", {
- // making it explicit this property is not enumerable
- // because otherwise some prototype manipulation in
- // userland will fail
- enumerable: !1,
- get: function() {
- return this._readableState === void 0 || this._writableState === void 0 ? !1 : this._readableState.destroyed && this._writableState.destroyed;
- },
- set: function(Q) {
- this._readableState === void 0 || this._writableState === void 0 || (this._readableState.destroyed = Q, this._writableState.destroyed = Q);
- }
- }), Ig;
-}
-var rg = {}, Pt = { exports: {} };
-/*! safe-buffer. MIT License. Feross Aboukhadijeh */
-var tr;
-function Ss() {
- return tr || (tr = 1, function(e, t) {
- var A = BB, i = A.Buffer;
- function B(n, I) {
- for (var r in n)
- I[r] = n[r];
- }
- i.from && i.alloc && i.allocUnsafe && i.allocUnsafeSlow ? e.exports = A : (B(A, t), t.Buffer = g);
- function g(n, I, r) {
- return i(n, I, r);
- }
- g.prototype = Object.create(i.prototype), B(i, g), g.from = function(n, I, r) {
- if (typeof n == "number")
- throw new TypeError("Argument must not be a number");
- return i(n, I, r);
- }, g.alloc = function(n, I, r) {
- if (typeof n != "number")
- throw new TypeError("Argument must be a number");
- var a = i(n);
- return I !== void 0 ? typeof r == "string" ? a.fill(I, r) : a.fill(I) : a.fill(0), a;
- }, g.allocUnsafe = function(n) {
- if (typeof n != "number")
- throw new TypeError("Argument must be a number");
- return i(n);
- }, g.allocUnsafeSlow = function(n) {
- if (typeof n != "number")
- throw new TypeError("Argument must be a number");
- return A.SlowBuffer(n);
- };
- }(Pt, Pt.exports)), Pt.exports;
-}
-var ir;
-function Br() {
- if (ir)
- return rg;
- ir = 1;
- var e = Ss().Buffer, t = e.isEncoding || function(s) {
- switch (s = "" + s, s && s.toLowerCase()) {
- case "hex":
- case "utf8":
- case "utf-8":
- case "ascii":
- case "binary":
- case "base64":
- case "ucs2":
- case "ucs-2":
- case "utf16le":
- case "utf-16le":
- case "raw":
- return !0;
- default:
- return !1;
- }
- };
- function A(s) {
- if (!s)
- return "utf8";
- for (var f; ; )
- switch (s) {
- case "utf8":
- case "utf-8":
- return "utf8";
- case "ucs2":
- case "ucs-2":
- case "utf16le":
- case "utf-16le":
- return "utf16le";
- case "latin1":
- case "binary":
- return "latin1";
- case "base64":
- case "ascii":
- case "hex":
- return s;
- default:
- if (f)
- return;
- s = ("" + s).toLowerCase(), f = !0;
- }
- }
- function i(s) {
- var f = A(s);
- if (typeof f != "string" && (e.isEncoding === t || !t(s)))
- throw new Error("Unknown encoding: " + s);
- return f || s;
- }
- rg.StringDecoder = B;
- function B(s) {
- this.encoding = i(s);
- var f;
- switch (this.encoding) {
- case "utf16le":
- this.text = E, this.end = o, f = 4;
- break;
- case "utf8":
- this.fillLast = r, f = 4;
- break;
- case "base64":
- this.text = c, this.end = l, f = 3;
- break;
- default:
- this.write = u, this.end = C;
- return;
- }
- this.lastNeed = 0, this.lastTotal = 0, this.lastChar = e.allocUnsafe(f);
- }
- B.prototype.write = function(s) {
- if (s.length === 0)
- return "";
- var f, h;
- if (this.lastNeed) {
- if (f = this.fillLast(s), f === void 0)
- return "";
- h = this.lastNeed, this.lastNeed = 0;
- } else
- h = 0;
- return h < s.length ? f ? f + this.text(s, h) : this.text(s, h) : f || "";
- }, B.prototype.end = Q, B.prototype.text = a, B.prototype.fillLast = function(s) {
- if (this.lastNeed <= s.length)
- return s.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed), this.lastChar.toString(this.encoding, 0, this.lastTotal);
- s.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, s.length), this.lastNeed -= s.length;
- };
- function g(s) {
- return s <= 127 ? 0 : s >> 5 === 6 ? 2 : s >> 4 === 14 ? 3 : s >> 3 === 30 ? 4 : s >> 6 === 2 ? -1 : -2;
- }
- function n(s, f, h) {
- var x = f.length - 1;
- if (x < h)
- return 0;
- var d = g(f[x]);
- return d >= 0 ? (d > 0 && (s.lastNeed = d - 1), d) : --x < h || d === -2 ? 0 : (d = g(f[x]), d >= 0 ? (d > 0 && (s.lastNeed = d - 2), d) : --x < h || d === -2 ? 0 : (d = g(f[x]), d >= 0 ? (d > 0 && (d === 2 ? d = 0 : s.lastNeed = d - 3), d) : 0));
- }
- function I(s, f, h) {
- if ((f[0] & 192) !== 128)
- return s.lastNeed = 0, "�";
- if (s.lastNeed > 1 && f.length > 1) {
- if ((f[1] & 192) !== 128)
- return s.lastNeed = 1, "�";
- if (s.lastNeed > 2 && f.length > 2 && (f[2] & 192) !== 128)
- return s.lastNeed = 2, "�";
- }
- }
- function r(s) {
- var f = this.lastTotal - this.lastNeed, h = I(this, s);
- if (h !== void 0)
- return h;
- if (this.lastNeed <= s.length)
- return s.copy(this.lastChar, f, 0, this.lastNeed), this.lastChar.toString(this.encoding, 0, this.lastTotal);
- s.copy(this.lastChar, f, 0, s.length), this.lastNeed -= s.length;
- }
- function a(s, f) {
- var h = n(this, s, f);
- if (!this.lastNeed)
- return s.toString("utf8", f);
- this.lastTotal = h;
- var x = s.length - (h - this.lastNeed);
- return s.copy(this.lastChar, 0, x), s.toString("utf8", f, x);
- }
- function Q(s) {
- var f = s && s.length ? this.write(s) : "";
- return this.lastNeed ? f + "�" : f;
- }
- function E(s, f) {
- if ((s.length - f) % 2 === 0) {
- var h = s.toString("utf16le", f);
- if (h) {
- var x = h.charCodeAt(h.length - 1);
- if (x >= 55296 && x <= 56319)
- return this.lastNeed = 2, this.lastTotal = 4, this.lastChar[0] = s[s.length - 2], this.lastChar[1] = s[s.length - 1], h.slice(0, -1);
- }
- return h;
- }
- return this.lastNeed = 1, this.lastTotal = 2, this.lastChar[0] = s[s.length - 1], s.toString("utf16le", f, s.length - 1);
- }
- function o(s) {
- var f = s && s.length ? this.write(s) : "";
- if (this.lastNeed) {
- var h = this.lastTotal - this.lastNeed;
- return f + this.lastChar.toString("utf16le", 0, h);
- }
- return f;
- }
- function c(s, f) {
- var h = (s.length - f) % 3;
- return h === 0 ? s.toString("base64", f) : (this.lastNeed = 3 - h, this.lastTotal = 3, h === 1 ? this.lastChar[0] = s[s.length - 1] : (this.lastChar[0] = s[s.length - 2], this.lastChar[1] = s[s.length - 1]), s.toString("base64", f, s.length - h));
- }
- function l(s) {
- var f = s && s.length ? this.write(s) : "";
- return this.lastNeed ? f + this.lastChar.toString("base64", 0, 3 - this.lastNeed) : f;
- }
- function u(s) {
- return s.toString(this.encoding);
- }
- function C(s) {
- return s && s.length ? this.write(s) : "";
- }
- return rg;
-}
-var gr = gt.codes.ERR_STREAM_PREMATURE_CLOSE;
-function bs(e) {
- var t = !1;
- return function() {
- if (!t) {
- t = !0;
- for (var A = arguments.length, i = new Array(A), B = 0; B < A; B++)
- i[B] = arguments[B];
- e.apply(this, i);
- }
- };
-}
-function Ns() {
-}
-function Us(e) {
- return e.setHeader && typeof e.abort == "function";
-}
-function uQ(e, t, A) {
- if (typeof t == "function")
- return uQ(e, null, t);
- t || (t = {}), A = bs(A || Ns);
- var i = t.readable || t.readable !== !1 && e.readable, B = t.writable || t.writable !== !1 && e.writable, g = function() {
- e.writable || I();
- }, n = e._writableState && e._writableState.finished, I = function() {
- B = !1, n = !0, i || A.call(e);
- }, r = e._readableState && e._readableState.endEmitted, a = function() {
- i = !1, r = !0, B || A.call(e);
- }, Q = function(l) {
- A.call(e, l);
- }, E = function() {
- var l;
- if (i && !r)
- return (!e._readableState || !e._readableState.ended) && (l = new gr()), A.call(e, l);
- if (B && !n)
- return (!e._writableState || !e._writableState.ended) && (l = new gr()), A.call(e, l);
- }, o = function() {
- e.req.on("finish", I);
- };
- return Us(e) ? (e.on("complete", I), e.on("abort", E), e.req ? o() : e.on("request", o)) : B && !e._writableState && (e.on("end", g), e.on("close", g)), e.on("end", a), e.on("finish", I), t.error !== !1 && e.on("error", Q), e.on("close", E), function() {
- e.removeListener("complete", I), e.removeListener("abort", E), e.removeListener("request", o), e.req && e.req.removeListener("finish", I), e.removeListener("end", g), e.removeListener("close", g), e.removeListener("finish", I), e.removeListener("end", a), e.removeListener("error", Q), e.removeListener("close", E);
- };
-}
-var nI = uQ, Eg, nr;
-function vs() {
- if (nr)
- return Eg;
- nr = 1;
- var e;
- function t(h, x, d) {
- return x = A(x), x in h ? Object.defineProperty(h, x, { value: d, enumerable: !0, configurable: !0, writable: !0 }) : h[x] = d, h;
- }
- function A(h) {
- var x = i(h, "string");
- return typeof x == "symbol" ? x : String(x);
- }
- function i(h, x) {
- if (typeof h != "object" || h === null)
- return h;
- var d = h[Symbol.toPrimitive];
- if (d !== void 0) {
- var m = d.call(h, x || "default");
- if (typeof m != "object")
- return m;
- throw new TypeError("@@toPrimitive must return a primitive value.");
- }
- return (x === "string" ? String : Number)(h);
- }
- var B = nI, g = Symbol("lastResolve"), n = Symbol("lastReject"), I = Symbol("error"), r = Symbol("ended"), a = Symbol("lastPromise"), Q = Symbol("handlePromise"), E = Symbol("stream");
- function o(h, x) {
- return {
- value: h,
- done: x
- };
- }
- function c(h) {
- var x = h[g];
- if (x !== null) {
- var d = h[E].read();
- d !== null && (h[a] = null, h[g] = null, h[n] = null, x(o(d, !1)));
- }
- }
- function l(h) {
- process.nextTick(c, h);
- }
- function u(h, x) {
- return function(d, m) {
- h.then(function() {
- if (x[r]) {
- d(o(void 0, !0));
- return;
- }
- x[Q](d, m);
- }, m);
- };
- }
- var C = Object.getPrototypeOf(function() {
- }), s = Object.setPrototypeOf((e = {
- get stream() {
- return this[E];
- },
- next: function() {
- var x = this, d = this[I];
- if (d !== null)
- return Promise.reject(d);
- if (this[r])
- return Promise.resolve(o(void 0, !0));
- if (this[E].destroyed)
- return new Promise(function(N, M) {
- process.nextTick(function() {
- x[I] ? M(x[I]) : N(o(void 0, !0));
- });
- });
- var m = this[a], H;
- if (m)
- H = new Promise(u(m, this));
- else {
- var v = this[E].read();
- if (v !== null)
- return Promise.resolve(o(v, !1));
- H = new Promise(this[Q]);
- }
- return this[a] = H, H;
- }
- }, t(e, Symbol.asyncIterator, function() {
- return this;
- }), t(e, "return", function() {
- var x = this;
- return new Promise(function(d, m) {
- x[E].destroy(null, function(H) {
- if (H) {
- m(H);
- return;
- }
- d(o(void 0, !0));
- });
- });
- }), e), C), f = function(x) {
- var d, m = Object.create(s, (d = {}, t(d, E, {
- value: x,
- writable: !0
- }), t(d, g, {
- value: null,
- writable: !0
- }), t(d, n, {
- value: null,
- writable: !0
- }), t(d, I, {
- value: null,
- writable: !0
- }), t(d, r, {
- value: x._readableState.endEmitted,
- writable: !0
- }), t(d, Q, {
- value: function(v, N) {
- var M = m[E].read();
- M ? (m[a] = null, m[g] = null, m[n] = null, v(o(M, !1))) : (m[g] = v, m[n] = N);
- },
- writable: !0
- }), d));
- return m[a] = null, B(x, function(H) {
- if (H && H.code !== "ERR_STREAM_PREMATURE_CLOSE") {
- var v = m[n];
- v !== null && (m[a] = null, m[g] = null, m[n] = null, v(H)), m[I] = H;
- return;
- }
- var N = m[g];
- N !== null && (m[a] = null, m[g] = null, m[n] = null, N(o(void 0, !0))), m[r] = !0;
- }), x.on("readable", l.bind(null, m)), m;
- };
- return Eg = f, Eg;
-}
-var Qg, Ir;
-function Hs() {
- return Ir || (Ir = 1, Qg = function() {
- throw new Error("Readable.from is not available in the browser");
- }), Qg;
-}
-var og, rr;
-function xQ() {
- if (rr)
- return og;
- rr = 1, og = N;
- var e;
- N.ReadableState = v, Ut.EventEmitter;
- var t = function(w, S) {
- return w.listeners(S).length;
- }, A = aQ, i = BB.Buffer, B = (typeof it < "u" ? it : typeof window < "u" ? window : typeof self < "u" ? self : {}).Uint8Array || function() {
- };
- function g(D) {
- return i.from(D);
- }
- function n(D) {
- return i.isBuffer(D) || D instanceof B;
- }
- var I = Bt, r;
- I && I.debuglog ? r = I.debuglog("stream") : r = function() {
- };
- var a = us(), Q = sQ, E = cQ, o = E.getHighWaterMark, c = gt.codes, l = c.ERR_INVALID_ARG_TYPE, u = c.ERR_STREAM_PUSH_AFTER_EOF, C = c.ERR_METHOD_NOT_IMPLEMENTED, s = c.ERR_STREAM_UNSHIFT_AFTER_END_EVENT, f, h, x;
- ht(N, A);
- var d = Q.errorOrDestroy, m = ["error", "close", "destroy", "pause", "resume"];
- function H(D, w, S) {
- if (typeof D.prependListener == "function")
- return D.prependListener(w, S);
- !D._events || !D._events[w] ? D.on(w, S) : Array.isArray(D._events[w]) ? D._events[w].unshift(S) : D._events[w] = [S, D._events[w]];
- }
- function v(D, w, S) {
- e = e || ut(), D = D || {}, typeof S != "boolean" && (S = w instanceof e), this.objectMode = !!D.objectMode, S && (this.objectMode = this.objectMode || !!D.readableObjectMode), this.highWaterMark = o(this, D, "readableHighWaterMark", S), this.buffer = new a(), this.length = 0, this.pipes = null, this.pipesCount = 0, this.flowing = null, this.ended = !1, this.endEmitted = !1, this.reading = !1, this.sync = !0, this.needReadable = !1, this.emittedReadable = !1, this.readableListening = !1, this.resumeScheduled = !1, this.paused = !0, this.emitClose = D.emitClose !== !1, this.autoDestroy = !!D.autoDestroy, this.destroyed = !1, this.defaultEncoding = D.defaultEncoding || "utf8", this.awaitDrain = 0, this.readingMore = !1, this.decoder = null, this.encoding = null, D.encoding && (f || (f = Br().StringDecoder), this.decoder = new f(D.encoding), this.encoding = D.encoding);
- }
- function N(D) {
- if (e = e || ut(), !(this instanceof N))
- return new N(D);
- var w = this instanceof e;
- this._readableState = new v(D, this, w), this.readable = !0, D && (typeof D.read == "function" && (this._read = D.read), typeof D.destroy == "function" && (this._destroy = D.destroy)), A.call(this);
- }
- Object.defineProperty(N.prototype, "destroyed", {
- // making it explicit this property is not enumerable
- // because otherwise some prototype manipulation in
- // userland will fail
- enumerable: !1,
- get: function() {
- return this._readableState === void 0 ? !1 : this._readableState.destroyed;
- },
- set: function(w) {
- this._readableState && (this._readableState.destroyed = w);
- }
- }), N.prototype.destroy = Q.destroy, N.prototype._undestroy = Q.undestroy, N.prototype._destroy = function(D, w) {
- w(D);
- }, N.prototype.push = function(D, w) {
- var S = this._readableState, U;
- return S.objectMode ? U = !0 : typeof D == "string" && (w = w || S.defaultEncoding, w !== S.encoding && (D = i.from(D, w), w = ""), U = !0), M(this, D, w, !1, U);
- }, N.prototype.unshift = function(D) {
- return M(this, D, null, !0, !1);
- };
- function M(D, w, S, U, X) {
- r("readableAddChunk", w);
- var k = D._readableState;
- if (w === null)
- k.reading = !1, cA(D, k);
- else {
- var iA;
- if (X || (iA = V(k, w)), iA)
- d(D, iA);
- else if (k.objectMode || w && w.length > 0)
- if (typeof w != "string" && !k.objectMode && Object.getPrototypeOf(w) !== i.prototype && (w = g(w)), U)
- k.endEmitted ? d(D, new s()) : Z(D, k, w, !0);
- else if (k.ended)
- d(D, new u());
- else {
- if (k.destroyed)
- return !1;
- k.reading = !1, k.decoder && !S ? (w = k.decoder.write(w), k.objectMode || w.length !== 0 ? Z(D, k, w, !1) : _A(D, k)) : Z(D, k, w, !1);
- }
- else
- U || (k.reading = !1, _A(D, k));
- }
- return !k.ended && (k.length < k.highWaterMark || k.length === 0);
- }
- function Z(D, w, S, U) {
- w.flowing && w.length === 0 && !w.sync ? (w.awaitDrain = 0, D.emit("data", S)) : (w.length += w.objectMode ? 1 : S.length, U ? w.buffer.unshift(S) : w.buffer.push(S), w.needReadable && sA(D)), _A(D, w);
- }
- function V(D, w) {
- var S;
- return !n(w) && typeof w != "string" && w !== void 0 && !D.objectMode && (S = new l("chunk", ["string", "Buffer", "Uint8Array"], w)), S;
- }
- N.prototype.isPaused = function() {
- return this._readableState.flowing === !1;
- }, N.prototype.setEncoding = function(D) {
- f || (f = Br().StringDecoder);
- var w = new f(D);
- this._readableState.decoder = w, this._readableState.encoding = this._readableState.decoder.encoding;
- for (var S = this._readableState.buffer.head, U = ""; S !== null; )
- U += w.write(S.data), S = S.next;
- return this._readableState.buffer.clear(), U !== "" && this._readableState.buffer.push(U), this._readableState.length = U.length, this;
- };
- var EA = 1073741824;
- function _(D) {
- return D >= EA ? D = EA : (D--, D |= D >>> 1, D |= D >>> 2, D |= D >>> 4, D |= D >>> 8, D |= D >>> 16, D++), D;
- }
- function gA(D, w) {
- return D <= 0 || w.length === 0 && w.ended ? 0 : w.objectMode ? 1 : D !== D ? w.flowing && w.length ? w.buffer.head.data.length : w.length : (D > w.highWaterMark && (w.highWaterMark = _(D)), D <= w.length ? D : w.ended ? w.length : (w.needReadable = !0, 0));
- }
- N.prototype.read = function(D) {
- r("read", D), D = parseInt(D, 10);
- var w = this._readableState, S = D;
- if (D !== 0 && (w.emittedReadable = !1), D === 0 && w.needReadable && ((w.highWaterMark !== 0 ? w.length >= w.highWaterMark : w.length > 0) || w.ended))
- return r("read: emitReadable", w.length, w.ended), w.length === 0 && w.ended ? Y(this) : sA(this), null;
- if (D = gA(D, w), D === 0 && w.ended)
- return w.length === 0 && Y(this), null;
- var U = w.needReadable;
- r("need readable", U), (w.length === 0 || w.length - D < w.highWaterMark) && (U = !0, r("length less than watermark", U)), w.ended || w.reading ? (U = !1, r("reading or ended", U)) : U && (r("do read"), w.reading = !0, w.sync = !0, w.length === 0 && (w.needReadable = !0), this._read(w.highWaterMark), w.sync = !1, w.reading || (D = gA(S, w)));
- var X;
- return D > 0 ? X = F(D, w) : X = null, X === null ? (w.needReadable = w.length <= w.highWaterMark, D = 0) : (w.length -= D, w.awaitDrain = 0), w.length === 0 && (w.ended || (w.needReadable = !0), S !== D && w.ended && Y(this)), X !== null && this.emit("data", X), X;
- };
- function cA(D, w) {
- if (r("onEofChunk"), !w.ended) {
- if (w.decoder) {
- var S = w.decoder.end();
- S && S.length && (w.buffer.push(S), w.length += w.objectMode ? 1 : S.length);
- }
- w.ended = !0, w.sync ? sA(D) : (w.needReadable = !1, w.emittedReadable || (w.emittedReadable = !0, LA(D)));
- }
- }
- function sA(D) {
- var w = D._readableState;
- r("emitReadable", w.needReadable, w.emittedReadable), w.needReadable = !1, w.emittedReadable || (r("emitReadable", w.flowing), w.emittedReadable = !0, process.nextTick(LA, D));
- }
- function LA(D) {
- var w = D._readableState;
- r("emitReadable_", w.destroyed, w.length, w.ended), !w.destroyed && (w.length || w.ended) && (D.emit("readable"), w.emittedReadable = !1), w.needReadable = !w.flowing && !w.ended && w.length <= w.highWaterMark, R(D);
- }
- function _A(D, w) {
- w.readingMore || (w.readingMore = !0, process.nextTick(pe, D, w));
- }
- function pe(D, w) {
- for (; !w.reading && !w.ended && (w.length < w.highWaterMark || w.flowing && w.length === 0); ) {
- var S = w.length;
- if (r("maybeReadMore read 0"), D.read(0), S === w.length)
- break;
- }
- w.readingMore = !1;
- }
- N.prototype._read = function(D) {
- d(this, new C("_read()"));
- }, N.prototype.pipe = function(D, w) {
- var S = this, U = this._readableState;
- switch (U.pipesCount) {
- case 0:
- U.pipes = D;
- break;
- case 1:
- U.pipes = [U.pipes, D];
- break;
- default:
- U.pipes.push(D);
- break;
- }
- U.pipesCount += 1, r("pipe count=%d opts=%j", U.pipesCount, w);
- var X = (!w || w.end !== !1) && D !== process.stdout && D !== process.stderr, k = X ? kA : me;
- U.endEmitted ? process.nextTick(k) : S.once("end", k), D.on("unpipe", iA);
- function iA(fe, Ye) {
- r("onunpipe"), fe === S && Ye && Ye.hasUnpiped === !1 && (Ye.hasUnpiped = !0, mA());
- }
- function kA() {
- r("onend"), D.end();
- }
- var He = ce(S);
- D.on("drain", He);
- var _e = !1;
- function mA() {
- r("cleanup"), D.removeListener("close", je), D.removeListener("finish", $e), D.removeListener("drain", He), D.removeListener("error", GA), D.removeListener("unpipe", iA), S.removeListener("end", kA), S.removeListener("end", me), S.removeListener("data", nt), _e = !0, U.awaitDrain && (!D._writableState || D._writableState.needDrain) && He();
- }
- S.on("data", nt);
- function nt(fe) {
- r("ondata");
- var Ye = D.write(fe);
- r("dest.write", Ye), Ye === !1 && ((U.pipesCount === 1 && U.pipes === D || U.pipesCount > 1 && j(U.pipes, D) !== -1) && !_e && (r("false write response, pause", U.awaitDrain), U.awaitDrain++), S.pause());
- }
- function GA(fe) {
- r("onerror", fe), me(), D.removeListener("error", GA), t(D, "error") === 0 && d(D, fe);
- }
- H(D, "error", GA);
- function je() {
- D.removeListener("finish", $e), me();
- }
- D.once("close", je);
- function $e() {
- r("onfinish"), D.removeListener("close", je), me();
- }
- D.once("finish", $e);
- function me() {
- r("unpipe"), S.unpipe(D);
- }
- return D.emit("pipe", S), U.flowing || (r("pipe resume"), S.resume()), D;
- };
- function ce(D) {
- return function() {
- var S = D._readableState;
- r("pipeOnDrain", S.awaitDrain), S.awaitDrain && S.awaitDrain--, S.awaitDrain === 0 && t(D, "data") && (S.flowing = !0, R(D));
- };
- }
- N.prototype.unpipe = function(D) {
- var w = this._readableState, S = {
- hasUnpiped: !1
- };
- if (w.pipesCount === 0)
- return this;
- if (w.pipesCount === 1)
- return D && D !== w.pipes ? this : (D || (D = w.pipes), w.pipes = null, w.pipesCount = 0, w.flowing = !1, D && D.emit("unpipe", this, S), this);
- if (!D) {
- var U = w.pipes, X = w.pipesCount;
- w.pipes = null, w.pipesCount = 0, w.flowing = !1;
- for (var k = 0; k < X; k++)
- U[k].emit("unpipe", this, {
- hasUnpiped: !1
- });
- return this;
- }
- var iA = j(w.pipes, D);
- return iA === -1 ? this : (w.pipes.splice(iA, 1), w.pipesCount -= 1, w.pipesCount === 1 && (w.pipes = w.pipes[0]), D.emit("unpipe", this, S), this);
- }, N.prototype.on = function(D, w) {
- var S = A.prototype.on.call(this, D, w), U = this._readableState;
- return D === "data" ? (U.readableListening = this.listenerCount("readable") > 0, U.flowing !== !1 && this.resume()) : D === "readable" && !U.endEmitted && !U.readableListening && (U.readableListening = U.needReadable = !0, U.flowing = !1, U.emittedReadable = !1, r("on readable", U.length, U.reading), U.length ? sA(this) : U.reading || process.nextTick(MA, this)), S;
- }, N.prototype.addListener = N.prototype.on, N.prototype.removeListener = function(D, w) {
- var S = A.prototype.removeListener.call(this, D, w);
- return D === "readable" && process.nextTick(yA, this), S;
- }, N.prototype.removeAllListeners = function(D) {
- var w = A.prototype.removeAllListeners.apply(this, arguments);
- return (D === "readable" || D === void 0) && process.nextTick(yA, this), w;
- };
- function yA(D) {
- var w = D._readableState;
- w.readableListening = D.listenerCount("readable") > 0, w.resumeScheduled && !w.paused ? w.flowing = !0 : D.listenerCount("data") > 0 && D.resume();
- }
- function MA(D) {
- r("readable nexttick read 0"), D.read(0);
- }
- N.prototype.resume = function() {
- var D = this._readableState;
- return D.flowing || (r("resume"), D.flowing = !D.readableListening, ve(this, D)), D.paused = !1, this;
- };
- function ve(D, w) {
- w.resumeScheduled || (w.resumeScheduled = !0, process.nextTick(Oe, D, w));
- }
- function Oe(D, w) {
- r("resume", w.reading), w.reading || D.read(0), w.resumeScheduled = !1, D.emit("resume"), R(D), w.flowing && !w.reading && D.read(0);
- }
- N.prototype.pause = function() {
- return r("call pause flowing=%j", this._readableState.flowing), this._readableState.flowing !== !1 && (r("pause"), this._readableState.flowing = !1, this.emit("pause")), this._readableState.paused = !0, this;
- };
- function R(D) {
- var w = D._readableState;
- for (r("flow", w.flowing); w.flowing && D.read() !== null; )
- ;
- }
- N.prototype.wrap = function(D) {
- var w = this, S = this._readableState, U = !1;
- D.on("end", function() {
- if (r("wrapped end"), S.decoder && !S.ended) {
- var iA = S.decoder.end();
- iA && iA.length && w.push(iA);
- }
- w.push(null);
- }), D.on("data", function(iA) {
- if (r("wrapped data"), S.decoder && (iA = S.decoder.write(iA)), !(S.objectMode && iA == null) && !(!S.objectMode && (!iA || !iA.length))) {
- var kA = w.push(iA);
- kA || (U = !0, D.pause());
- }
- });
- for (var X in D)
- this[X] === void 0 && typeof D[X] == "function" && (this[X] = /* @__PURE__ */ function(kA) {
- return function() {
- return D[kA].apply(D, arguments);
- };
- }(X));
- for (var k = 0; k < m.length; k++)
- D.on(m[k], this.emit.bind(this, m[k]));
- return this._read = function(iA) {
- r("wrapped _read", iA), U && (U = !1, D.resume());
- }, this;
- }, typeof Symbol == "function" && (N.prototype[Symbol.asyncIterator] = function() {
- return h === void 0 && (h = vs()), h(this);
- }), Object.defineProperty(N.prototype, "readableHighWaterMark", {
- // making it explicit this property is not enumerable
- // because otherwise some prototype manipulation in
- // userland will fail
- enumerable: !1,
- get: function() {
- return this._readableState.highWaterMark;
- }
- }), Object.defineProperty(N.prototype, "readableBuffer", {
- // making it explicit this property is not enumerable
- // because otherwise some prototype manipulation in
- // userland will fail
- enumerable: !1,
- get: function() {
- return this._readableState && this._readableState.buffer;
- }
- }), Object.defineProperty(N.prototype, "readableFlowing", {
- // making it explicit this property is not enumerable
- // because otherwise some prototype manipulation in
- // userland will fail
- enumerable: !1,
- get: function() {
- return this._readableState.flowing;
- },
- set: function(w) {
- this._readableState && (this._readableState.flowing = w);
- }
- }), N._fromList = F, Object.defineProperty(N.prototype, "readableLength", {
- // making it explicit this property is not enumerable
- // because otherwise some prototype manipulation in
- // userland will fail
- enumerable: !1,
- get: function() {
- return this._readableState.length;
- }
- });
- function F(D, w) {
- if (w.length === 0)
- return null;
- var S;
- return w.objectMode ? S = w.buffer.shift() : !D || D >= w.length ? (w.decoder ? S = w.buffer.join("") : w.buffer.length === 1 ? S = w.buffer.first() : S = w.buffer.concat(w.length), w.buffer.clear()) : S = w.buffer.consume(D, w.decoder), S;
- }
- function Y(D) {
- var w = D._readableState;
- r("endReadable", w.endEmitted), w.endEmitted || (w.ended = !0, process.nextTick(P, w, D));
- }
- function P(D, w) {
- if (r("endReadableNT", D.endEmitted, D.length), !D.endEmitted && D.length === 0 && (D.endEmitted = !0, w.readable = !1, w.emit("end"), D.autoDestroy)) {
- var S = w._writableState;
- (!S || S.autoDestroy && S.finished) && w.destroy();
- }
- }
- typeof Symbol == "function" && (N.from = function(D, w) {
- return x === void 0 && (x = Hs()), x(N, D, w);
- });
- function j(D, w) {
- for (var S = 0, U = D.length; S < U; S++)
- if (D[S] === w)
- return S;
- return -1;
- }
- return og;
-}
-var hQ = be, sB = gt.codes, Ys = sB.ERR_METHOD_NOT_IMPLEMENTED, Ls = sB.ERR_MULTIPLE_CALLBACK, Ms = sB.ERR_TRANSFORM_ALREADY_TRANSFORMING, ks = sB.ERR_TRANSFORM_WITH_LENGTH_0, CB = ut();
-ht(be, CB);
-function Ks(e, t) {
- var A = this._transformState;
- A.transforming = !1;
- var i = A.writecb;
- if (i === null)
- return this.emit("error", new Ls());
- A.writechunk = null, A.writecb = null, t != null && this.push(t), i(e);
- var B = this._readableState;
- B.reading = !1, (B.needReadable || B.length < B.highWaterMark) && this._read(B.highWaterMark);
-}
-function be(e) {
- if (!(this instanceof be))
- return new be(e);
- CB.call(this, e), this._transformState = {
- afterTransform: Ks.bind(this),
- needTransform: !1,
- transforming: !1,
- writecb: null,
- writechunk: null,
- writeencoding: null
- }, this._readableState.needReadable = !0, this._readableState.sync = !1, e && (typeof e.transform == "function" && (this._transform = e.transform), typeof e.flush == "function" && (this._flush = e.flush)), this.on("prefinish", Js);
-}
-function Js() {
- var e = this;
- typeof this._flush == "function" && !this._readableState.destroyed ? this._flush(function(t, A) {
- Er(e, t, A);
- }) : Er(this, null, null);
-}
-be.prototype.push = function(e, t) {
- return this._transformState.needTransform = !1, CB.prototype.push.call(this, e, t);
-};
-be.prototype._transform = function(e, t, A) {
- A(new Ys("_transform()"));
-};
-be.prototype._write = function(e, t, A) {
- var i = this._transformState;
- if (i.writecb = A, i.writechunk = e, i.writeencoding = t, !i.transforming) {
- var B = this._readableState;
- (i.needTransform || B.needReadable || B.length < B.highWaterMark) && this._read(B.highWaterMark);
- }
-};
-be.prototype._read = function(e) {
- var t = this._transformState;
- t.writechunk !== null && !t.transforming ? (t.transforming = !0, this._transform(t.writechunk, t.writeencoding, t.afterTransform)) : t.needTransform = !0;
-};
-be.prototype._destroy = function(e, t) {
- CB.prototype._destroy.call(this, e, function(A) {
- t(A);
- });
-};
-function Er(e, t, A) {
- if (t)
- return e.emit("error", t);
- if (A != null && e.push(A), e._writableState.length)
- throw new ks();
- if (e._transformState.transforming)
- throw new Ms();
- return e.push(null);
-}
-var Ws = Nt, dQ = hQ;
-ht(Nt, dQ);
-function Nt(e) {
- if (!(this instanceof Nt))
- return new Nt(e);
- dQ.call(this, e);
-}
-Nt.prototype._transform = function(e, t, A) {
- A(null, e);
-};
-var ag;
-function qs(e) {
- var t = !1;
- return function() {
- t || (t = !0, e.apply(void 0, arguments));
- };
-}
-var lQ = gt.codes, Zs = lQ.ERR_MISSING_ARGS, Vs = lQ.ERR_STREAM_DESTROYED;
-function Qr(e) {
- if (e)
- throw e;
-}
-function Ts(e) {
- return e.setHeader && typeof e.abort == "function";
-}
-function Ps(e, t, A, i) {
- i = qs(i);
- var B = !1;
- e.on("close", function() {
- B = !0;
- }), ag === void 0 && (ag = nI), ag(e, {
- readable: t,
- writable: A
- }, function(n) {
- if (n)
- return i(n);
- B = !0, i();
- });
- var g = !1;
- return function(n) {
- if (!B && !g) {
- if (g = !0, Ts(e))
- return e.abort();
- if (typeof e.destroy == "function")
- return e.destroy();
- i(n || new Vs("pipe"));
- }
- };
-}
-function or(e) {
- e();
-}
-function Xs(e, t) {
- return e.pipe(t);
-}
-function zs(e) {
- return !e.length || typeof e[e.length - 1] != "function" ? Qr : e.pop();
-}
-function Os() {
- for (var e = arguments.length, t = new Array(e), A = 0; A < e; A++)
- t[A] = arguments[A];
- var i = zs(t);
- if (Array.isArray(t[0]) && (t = t[0]), t.length < 2)
- throw new Zs("streams");
- var B, g = t.map(function(n, I) {
- var r = I < t.length - 1, a = I > 0;
- return Ps(n, r, a, function(Q) {
- B || (B = Q), Q && g.forEach(or), !r && (g.forEach(or), i(B));
- });
- });
- return t.reduce(Xs);
-}
-var _s = Os;
-(function(e, t) {
- t = e.exports = xQ(), t.Stream = t, t.Readable = t, t.Writable = fQ(), t.Duplex = ut(), t.Transform = hQ, t.PassThrough = Ws, t.finished = nI, t.pipeline = _s;
-})(En, En.exports);
-var js = En.exports;
-Object.defineProperty(gI, "__esModule", { value: !0 });
-var wQ = gI.ReadableWebToNodeStream = void 0;
-const $s = js;
-class A0 extends $s.Readable {
- /**
- *
- * @param stream ReadableStream: https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream
- */
- constructor(t) {
- super(), this.bytesRead = 0, this.released = !1, this.reader = t.getReader();
- }
- /**
- * Implementation of readable._read(size).
- * When readable._read() is called, if data is available from the resource,
- * the implementation should begin pushing that data into the read queue
- * https://nodejs.org/api/stream.html#stream_readable_read_size_1
- */
- async _read() {
- if (this.released) {
- this.push(null);
- return;
- }
- this.pendingRead = this.reader.read();
- const t = await this.pendingRead;
- delete this.pendingRead, t.done || this.released ? this.push(null) : (this.bytesRead += t.value.length, this.push(t.value));
- }
- /**
- * If there is no unresolved read call to Web-API ReadableStream immediately returns;
- * otherwise will wait until the read is resolved.
- */
- async waitForReadToComplete() {
- this.pendingRead && await this.pendingRead;
- }
- /**
- * Close wrapper
- */
- async close() {
- await this.syncAndRelease();
- }
- async syncAndRelease() {
- this.released = !0, await this.waitForReadToComplete(), await this.reader.releaseLock();
- }
-}
-wQ = gI.ReadableWebToNodeStream = A0;
-function pA(e) {
- return new DataView(e.buffer, e.byteOffset);
-}
-const e0 = {
- len: 1,
- get(e, t) {
- return pA(e).getUint8(t);
- },
- put(e, t, A) {
- return pA(e).setUint8(t, A), t + 1;
- }
-}, sg = {
- len: 2,
- get(e, t) {
- return pA(e).getUint16(t, !0);
- },
- put(e, t, A) {
- return pA(e).setUint16(t, A, !0), t + 2;
- }
-}, Cg = {
- len: 2,
- get(e, t) {
- return pA(e).getUint16(t);
- },
- put(e, t, A) {
- return pA(e).setUint16(t, A), t + 2;
- }
-}, t0 = {
- len: 4,
- get(e, t) {
- return pA(e).getUint32(t, !0);
- },
- put(e, t, A) {
- return pA(e).setUint32(t, A, !0), t + 4;
- }
-}, i0 = {
- len: 4,
- get(e, t) {
- return pA(e).getUint32(t);
- },
- put(e, t, A) {
- return pA(e).setUint32(t, A), t + 4;
- }
-}, B0 = {
- len: 4,
- get(e, t) {
- return pA(e).getInt32(t);
- },
- put(e, t, A) {
- return pA(e).setInt32(t, A), t + 4;
- }
-}, g0 = {
- len: 8,
- get(e, t) {
- return pA(e).getBigUint64(t, !0);
- },
- put(e, t, A) {
- return pA(e).setBigUint64(t, A, !0), t + 8;
- }
-};
-class rt {
- constructor(t, A) {
- this.len = t, this.encoding = A;
- }
- get(t, A) {
- return Ae.from(t).toString(this.encoding, A, A + this.len);
- }
-}
-const n0 = "End-Of-Stream";
-class UA extends Error {
- constructor() {
- super(n0);
- }
-}
-class I0 {
- constructor() {
- this.resolve = () => null, this.reject = () => null, this.promise = new Promise((t, A) => {
- this.reject = A, this.resolve = t;
- });
- }
-}
-const r0 = 1 * 1024 * 1024;
-class E0 {
- constructor(t) {
- if (this.s = t, this.deferred = null, this.endOfStream = !1, this.peekQueue = [], !t.read || !t.once)
- throw new Error("Expected an instance of stream.Readable");
- this.s.once("end", () => this.reject(new UA())), this.s.once("error", (A) => this.reject(A)), this.s.once("close", () => this.reject(new Error("Stream closed")));
- }
- /**
- * Read ahead (peek) from stream. Subsequent read or peeks will return the same data
- * @param uint8Array - Uint8Array (or Buffer) to store data read from stream in
- * @param offset - Offset target
- * @param length - Number of bytes to read
- * @returns Number of bytes peeked
- */
- async peek(t, A, i) {
- const B = await this.read(t, A, i);
- return this.peekQueue.push(t.subarray(A, A + B)), B;
- }
- /**
- * Read chunk from stream
- * @param buffer - Target Uint8Array (or Buffer) to store data read from stream in
- * @param offset - Offset target
- * @param length - Number of bytes to read
- * @returns Number of bytes read
- */
- async read(t, A, i) {
- if (i === 0)
- return 0;
- if (this.peekQueue.length === 0 && this.endOfStream)
- throw new UA();
- let B = i, g = 0;
- for (; this.peekQueue.length > 0 && B > 0; ) {
- const n = this.peekQueue.pop();
- if (!n)
- throw new Error("peekData should be defined");
- const I = Math.min(n.length, B);
- t.set(n.subarray(0, I), A + g), g += I, B -= I, I < n.length && this.peekQueue.push(n.subarray(I));
- }
- for (; B > 0 && !this.endOfStream; ) {
- const n = Math.min(B, r0), I = await this.readFromStream(t, A + g, n);
- if (g += I, I < n)
- break;
- B -= I;
- }
- return g;
- }
- /**
- * Read chunk from stream
- * @param buffer Target Uint8Array (or Buffer) to store data read from stream in
- * @param offset Offset target
- * @param length Number of bytes to read
- * @returns Number of bytes read
- */
- async readFromStream(t, A, i) {
- const B = this.s.read(i);
- if (B)
- return t.set(B, A), B.length;
- {
- const g = {
- buffer: t,
- offset: A,
- length: i,
- deferred: new I0()
- };
- return this.deferred = g.deferred, this.s.once("readable", () => {
- this.readDeferred(g);
- }), g.deferred.promise;
- }
- }
- /**
- * Process deferred read request
- * @param request Deferred read request
- */
- readDeferred(t) {
- const A = this.s.read(t.length);
- A ? (t.buffer.set(A, t.offset), t.deferred.resolve(A.length), this.deferred = null) : this.s.once("readable", () => {
- this.readDeferred(t);
- });
- }
- reject(t) {
- this.endOfStream = !0, this.deferred && (this.deferred.reject(t), this.deferred = null);
- }
-}
-class yQ {
- constructor(t) {
- this.position = 0, this.numBuffer = new Uint8Array(8), this.fileInfo = t || {};
- }
- /**
- * Read a token from the tokenizer-stream
- * @param token - The token to read
- * @param position - If provided, the desired position in the tokenizer-stream
- * @returns Promise with token data
- */
- async readToken(t, A = this.position) {
- const i = Ae.alloc(t.len);
- if (await this.readBuffer(i, { position: A }) < t.len)
- throw new UA();
- return t.get(i, 0);
- }
- /**
- * Peek a token from the tokenizer-stream.
- * @param token - Token to peek from the tokenizer-stream.
- * @param position - Offset where to begin reading within the file. If position is null, data will be read from the current file position.
- * @returns Promise with token data
- */
- async peekToken(t, A = this.position) {
- const i = Ae.alloc(t.len);
- if (await this.peekBuffer(i, { position: A }) < t.len)
- throw new UA();
- return t.get(i, 0);
- }
- /**
- * Read a numeric token from the stream
- * @param token - Numeric token
- * @returns Promise with number
- */
- async readNumber(t) {
- if (await this.readBuffer(this.numBuffer, { length: t.len }) < t.len)
- throw new UA();
- return t.get(this.numBuffer, 0);
- }
- /**
- * Read a numeric token from the stream
- * @param token - Numeric token
- * @returns Promise with number
- */
- async peekNumber(t) {
- if (await this.peekBuffer(this.numBuffer, { length: t.len }) < t.len)
- throw new UA();
- return t.get(this.numBuffer, 0);
- }
- /**
- * Ignore number of bytes, advances the pointer in under tokenizer-stream.
- * @param length - Number of bytes to ignore
- * @return resolves the number of bytes ignored, equals length if this available, otherwise the number of bytes available
- */
- async ignore(t) {
- if (this.fileInfo.size !== void 0) {
- const A = this.fileInfo.size - this.position;
- if (t > A)
- return this.position += A, A;
- }
- return this.position += t, t;
- }
- async close() {
- }
- normalizeOptions(t, A) {
- if (A && A.position !== void 0 && A.position < this.position)
- throw new Error("`options.position` must be equal or greater than `tokenizer.position`");
- return A ? {
- mayBeLess: A.mayBeLess === !0,
- offset: A.offset ? A.offset : 0,
- length: A.length ? A.length : t.length - (A.offset ? A.offset : 0),
- position: A.position ? A.position : this.position
- } : {
- mayBeLess: !1,
- offset: 0,
- length: t.length,
- position: this.position
- };
- }
-}
-const Q0 = 256e3;
-class o0 extends yQ {
- constructor(t, A) {
- super(A), this.streamReader = new E0(t);
- }
- /**
- * Get file information, an HTTP-client may implement this doing a HEAD request
- * @return Promise with file information
- */
- async getFileInfo() {
- return this.fileInfo;
- }
- /**
- * Read buffer from tokenizer
- * @param uint8Array - Target Uint8Array to fill with data read from the tokenizer-stream
- * @param options - Read behaviour options
- * @returns Promise with number of bytes read
- */
- async readBuffer(t, A) {
- const i = this.normalizeOptions(t, A), B = i.position - this.position;
- if (B > 0)
- return await this.ignore(B), this.readBuffer(t, A);
- if (B < 0)
- throw new Error("`options.position` must be equal or greater than `tokenizer.position`");
- if (i.length === 0)
- return 0;
- const g = await this.streamReader.read(t, i.offset, i.length);
- if (this.position += g, (!A || !A.mayBeLess) && g < i.length)
- throw new UA();
- return g;
- }
- /**
- * Peek (read ahead) buffer from tokenizer
- * @param uint8Array - Uint8Array (or Buffer) to write data to
- * @param options - Read behaviour options
- * @returns Promise with number of bytes peeked
- */
- async peekBuffer(t, A) {
- const i = this.normalizeOptions(t, A);
- let B = 0;
- if (i.position) {
- const g = i.position - this.position;
- if (g > 0) {
- const n = new Uint8Array(i.length + g);
- return B = await this.peekBuffer(n, { mayBeLess: i.mayBeLess }), t.set(n.subarray(g), i.offset), B - g;
- } else if (g < 0)
- throw new Error("Cannot peek from a negative offset in a stream");
- }
- if (i.length > 0) {
- try {
- B = await this.streamReader.peek(t, i.offset, i.length);
- } catch (g) {
- if (A && A.mayBeLess && g instanceof UA)
- return 0;
- throw g;
- }
- if (!i.mayBeLess && B < i.length)
- throw new UA();
- }
- return B;
- }
- async ignore(t) {
- const A = Math.min(Q0, t), i = new Uint8Array(A);
- let B = 0;
- for (; B < t; ) {
- const g = t - B, n = await this.readBuffer(i, { length: Math.min(A, g) });
- if (n < 0)
- return n;
- B += n;
- }
- return B;
- }
-}
-class a0 extends yQ {
- /**
- * Construct BufferTokenizer
- * @param uint8Array - Uint8Array to tokenize
- * @param fileInfo - Pass additional file information to the tokenizer
- */
- constructor(t, A) {
- super(A), this.uint8Array = t, this.fileInfo.size = this.fileInfo.size ? this.fileInfo.size : t.length;
- }
- /**
- * Read buffer from tokenizer
- * @param uint8Array - Uint8Array to tokenize
- * @param options - Read behaviour options
- * @returns {Promise}
- */
- async readBuffer(t, A) {
- if (A && A.position) {
- if (A.position < this.position)
- throw new Error("`options.position` must be equal or greater than `tokenizer.position`");
- this.position = A.position;
- }
- const i = await this.peekBuffer(t, A);
- return this.position += i, i;
- }
- /**
- * Peek (read ahead) buffer from tokenizer
- * @param uint8Array
- * @param options - Read behaviour options
- * @returns {Promise}
- */
- async peekBuffer(t, A) {
- const i = this.normalizeOptions(t, A), B = Math.min(this.uint8Array.length - i.position, i.length);
- if (!i.mayBeLess && B < i.length)
- throw new UA();
- return t.set(this.uint8Array.subarray(i.position, i.position + B), i.offset), B;
- }
- async close() {
- }
-}
-function s0(e, t) {
- return t = t || {}, new o0(e, t);
-}
-function C0(e, t) {
- return new a0(e, t);
-}
-function c0(e) {
- return [...e].map((t) => t.charCodeAt(0));
-}
-function f0(e, t = 0) {
- const A = Number.parseInt(e.toString("utf8", 148, 154).replace(/\0.*$/, "").trim(), 8);
- if (Number.isNaN(A))
- return !1;
- let i = 8 * 32;
- for (let B = t; B < t + 148; B++)
- i += e[B];
- for (let B = t + 156; B < t + 512; B++)
- i += e[B];
- return A === i;
-}
-const u0 = {
- get: (e, t) => e[t + 3] & 127 | e[t + 2] << 7 | e[t + 1] << 14 | e[t] << 21,
- len: 4
-}, x0 = [
- "jpg",
- "png",
- "apng",
- "gif",
- "webp",
- "flif",
- "xcf",
- "cr2",
- "cr3",
- "orf",
- "arw",
- "dng",
- "nef",
- "rw2",
- "raf",
- "tif",
- "bmp",
- "icns",
- "jxr",
- "psd",
- "indd",
- "zip",
- "tar",
- "rar",
- "gz",
- "bz2",
- "7z",
- "dmg",
- "mp4",
- "mid",
- "mkv",
- "webm",
- "mov",
- "avi",
- "mpg",
- "mp2",
- "mp3",
- "m4a",
- "oga",
- "ogg",
- "ogv",
- "opus",
- "flac",
- "wav",
- "spx",
- "amr",
- "pdf",
- "epub",
- "elf",
- "macho",
- "exe",
- "swf",
- "rtf",
- "wasm",
- "woff",
- "woff2",
- "eot",
- "ttf",
- "otf",
- "ico",
- "flv",
- "ps",
- "xz",
- "sqlite",
- "nes",
- "crx",
- "xpi",
- "cab",
- "deb",
- "ar",
- "rpm",
- "Z",
- "lz",
- "cfb",
- "mxf",
- "mts",
- "blend",
- "bpg",
- "docx",
- "pptx",
- "xlsx",
- "3gp",
- "3g2",
- "j2c",
- "jp2",
- "jpm",
- "jpx",
- "mj2",
- "aif",
- "qcp",
- "odt",
- "ods",
- "odp",
- "xml",
- "mobi",
- "heic",
- "cur",
- "ktx",
- "ape",
- "wv",
- "dcm",
- "ics",
- "glb",
- "pcap",
- "dsf",
- "lnk",
- "alias",
- "voc",
- "ac3",
- "m4v",
- "m4p",
- "m4b",
- "f4v",
- "f4p",
- "f4b",
- "f4a",
- "mie",
- "asf",
- "ogm",
- "ogx",
- "mpc",
- "arrow",
- "shp",
- "aac",
- "mp1",
- "it",
- "s3m",
- "xm",
- "ai",
- "skp",
- "avif",
- "eps",
- "lzh",
- "pgp",
- "asar",
- "stl",
- "chm",
- "3mf",
- "zst",
- "jxl",
- "vcf",
- "jls",
- "pst",
- "dwg",
- "parquet",
- "class",
- "arj",
- "cpio",
- "ace",
- "avro",
- "icc",
- "fbx"
-], h0 = [
- "image/jpeg",
- "image/png",
- "image/gif",
- "image/webp",
- "image/flif",
- "image/x-xcf",
- "image/x-canon-cr2",
- "image/x-canon-cr3",
- "image/tiff",
- "image/bmp",
- "image/vnd.ms-photo",
- "image/vnd.adobe.photoshop",
- "application/x-indesign",
- "application/epub+zip",
- "application/x-xpinstall",
- "application/vnd.oasis.opendocument.text",
- "application/vnd.oasis.opendocument.spreadsheet",
- "application/vnd.oasis.opendocument.presentation",
- "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
- "application/vnd.openxmlformats-officedocument.presentationml.presentation",
- "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
- "application/zip",
- "application/x-tar",
- "application/x-rar-compressed",
- "application/gzip",
- "application/x-bzip2",
- "application/x-7z-compressed",
- "application/x-apple-diskimage",
- "application/x-apache-arrow",
- "video/mp4",
- "audio/midi",
- "video/x-matroska",
- "video/webm",
- "video/quicktime",
- "video/vnd.avi",
- "audio/wav",
- "audio/qcelp",
- "audio/x-ms-asf",
- "video/x-ms-asf",
- "application/vnd.ms-asf",
- "video/mpeg",
- "video/3gpp",
- "audio/mpeg",
- "audio/mp4",
- // RFC 4337
- "audio/opus",
- "video/ogg",
- "audio/ogg",
- "application/ogg",
- "audio/x-flac",
- "audio/ape",
- "audio/wavpack",
- "audio/amr",
- "application/pdf",
- "application/x-elf",
- "application/x-mach-binary",
- "application/x-msdownload",
- "application/x-shockwave-flash",
- "application/rtf",
- "application/wasm",
- "font/woff",
- "font/woff2",
- "application/vnd.ms-fontobject",
- "font/ttf",
- "font/otf",
- "image/x-icon",
- "video/x-flv",
- "application/postscript",
- "application/eps",
- "application/x-xz",
- "application/x-sqlite3",
- "application/x-nintendo-nes-rom",
- "application/x-google-chrome-extension",
- "application/vnd.ms-cab-compressed",
- "application/x-deb",
- "application/x-unix-archive",
- "application/x-rpm",
- "application/x-compress",
- "application/x-lzip",
- "application/x-cfb",
- "application/x-mie",
- "application/mxf",
- "video/mp2t",
- "application/x-blender",
- "image/bpg",
- "image/j2c",
- "image/jp2",
- "image/jpx",
- "image/jpm",
- "image/mj2",
- "audio/aiff",
- "application/xml",
- "application/x-mobipocket-ebook",
- "image/heif",
- "image/heif-sequence",
- "image/heic",
- "image/heic-sequence",
- "image/icns",
- "image/ktx",
- "application/dicom",
- "audio/x-musepack",
- "text/calendar",
- "text/vcard",
- "model/gltf-binary",
- "application/vnd.tcpdump.pcap",
- "audio/x-dsf",
- // Non-standard
- "application/x.ms.shortcut",
- // Invented by us
- "application/x.apple.alias",
- // Invented by us
- "audio/x-voc",
- "audio/vnd.dolby.dd-raw",
- "audio/x-m4a",
- "image/apng",
- "image/x-olympus-orf",
- "image/x-sony-arw",
- "image/x-adobe-dng",
- "image/x-nikon-nef",
- "image/x-panasonic-rw2",
- "image/x-fujifilm-raf",
- "video/x-m4v",
- "video/3gpp2",
- "application/x-esri-shape",
- "audio/aac",
- "audio/x-it",
- "audio/x-s3m",
- "audio/x-xm",
- "video/MP1S",
- "video/MP2P",
- "application/vnd.sketchup.skp",
- "image/avif",
- "application/x-lzh-compressed",
- "application/pgp-encrypted",
- "application/x-asar",
- "model/stl",
- "application/vnd.ms-htmlhelp",
- "model/3mf",
- "image/jxl",
- "application/zstd",
- "image/jls",
- "application/vnd.ms-outlook",
- "image/vnd.dwg",
- "application/x-parquet",
- "application/java-vm",
- "application/x-arj",
- "application/x-cpio",
- "application/x-ace-compressed",
- "application/avro",
- "application/vnd.iccprofile",
- "application/x.autodesk.fbx"
- // Invented by us
-], ar = 4100;
-async function d0(e) {
- return new cB().fromStream(e);
-}
-async function l0(e) {
- return new cB().fromBuffer(e);
-}
-function ue(e, t, A) {
- A = {
- offset: 0,
- ...A
- };
- for (const [i, B] of t.entries())
- if (A.mask) {
- if (B !== (A.mask[i] & e[i + A.offset]))
- return !1;
- } else if (B !== e[i + A.offset])
- return !1;
- return !0;
-}
-async function w0(e) {
- return new cB().fromTokenizer(e);
-}
-class cB {
- constructor(t) {
- this.detectors = t == null ? void 0 : t.customDetectors, this.fromTokenizer = this.fromTokenizer.bind(this), this.fromBuffer = this.fromBuffer.bind(this), this.parse = this.parse.bind(this);
- }
- async fromTokenizer(t) {
- const A = t.position;
- for (const i of this.detectors || []) {
- const B = await i(t);
- if (B)
- return B;
- if (A !== t.position)
- return;
- }
- return this.parse(t);
- }
- async fromBuffer(t) {
- if (!(t instanceof Uint8Array || t instanceof ArrayBuffer))
- throw new TypeError(`Expected the \`input\` argument to be of type \`Uint8Array\` or \`Buffer\` or \`ArrayBuffer\`, got \`${typeof t}\``);
- const A = t instanceof Uint8Array ? t : new Uint8Array(t);
- if ((A == null ? void 0 : A.length) > 1)
- return this.fromTokenizer(C0(A));
- }
- async fromBlob(t) {
- const A = await t.arrayBuffer();
- return this.fromBuffer(new Uint8Array(A));
- }
- async fromStream(t) {
- const A = await s0(t);
- try {
- return await this.fromTokenizer(A);
- } finally {
- await A.close();
- }
- }
- async toDetectionStream(t, A = {}) {
- const { default: i } = await import("node:stream"), { sampleSize: B = ar } = A;
- return new Promise((g, n) => {
- t.on("error", n), t.once("readable", () => {
- (async () => {
- try {
- const I = new i.PassThrough(), r = i.pipeline ? i.pipeline(t, I, () => {
- }) : t.pipe(I), a = t.read(B) ?? t.read() ?? Ae.alloc(0);
- try {
- I.fileType = await this.fromBuffer(a);
- } catch (Q) {
- Q instanceof UA ? I.fileType = void 0 : n(Q);
- }
- g(r);
- } catch (I) {
- n(I);
- }
- })();
- });
- });
- }
- check(t, A) {
- return ue(this.buffer, t, A);
- }
- checkString(t, A) {
- return this.check(c0(t), A);
- }
- async parse(t) {
- if (this.buffer = Ae.alloc(ar), t.fileInfo.size === void 0 && (t.fileInfo.size = Number.MAX_SAFE_INTEGER), this.tokenizer = t, await t.peekBuffer(this.buffer, { length: 12, mayBeLess: !0 }), this.check([66, 77]))
- return {
- ext: "bmp",
- mime: "image/bmp"
- };
- if (this.check([11, 119]))
- return {
- ext: "ac3",
- mime: "audio/vnd.dolby.dd-raw"
- };
- if (this.check([120, 1]))
- return {
- ext: "dmg",
- mime: "application/x-apple-diskimage"
- };
- if (this.check([77, 90]))
- return {
- ext: "exe",
- mime: "application/x-msdownload"
- };
- if (this.check([37, 33]))
- return await t.peekBuffer(this.buffer, { length: 24, mayBeLess: !0 }), this.checkString("PS-Adobe-", { offset: 2 }) && this.checkString(" EPSF-", { offset: 14 }) ? {
- ext: "eps",
- mime: "application/eps"
- } : {
- ext: "ps",
- mime: "application/postscript"
- };
- if (this.check([31, 160]) || this.check([31, 157]))
- return {
- ext: "Z",
- mime: "application/x-compress"
- };
- if (this.check([199, 113]))
- return {
- ext: "cpio",
- mime: "application/x-cpio"
- };
- if (this.check([96, 234]))
- return {
- ext: "arj",
- mime: "application/x-arj"
- };
- if (this.check([239, 187, 191]))
- return this.tokenizer.ignore(3), this.parse(t);
- if (this.check([71, 73, 70]))
- return {
- ext: "gif",
- mime: "image/gif"
- };
- if (this.check([73, 73, 188]))
- return {
- ext: "jxr",
- mime: "image/vnd.ms-photo"
- };
- if (this.check([31, 139, 8]))
- return {
- ext: "gz",
- mime: "application/gzip"
- };
- if (this.check([66, 90, 104]))
- return {
- ext: "bz2",
- mime: "application/x-bzip2"
- };
- if (this.checkString("ID3")) {
- await t.ignore(6);
- const A = await t.readToken(u0);
- return t.position + A > t.fileInfo.size ? {
- ext: "mp3",
- mime: "audio/mpeg"
- } : (await t.ignore(A), this.fromTokenizer(t));
- }
- if (this.checkString("MP+"))
- return {
- ext: "mpc",
- mime: "audio/x-musepack"
- };
- if ((this.buffer[0] === 67 || this.buffer[0] === 70) && this.check([87, 83], { offset: 1 }))
- return {
- ext: "swf",
- mime: "application/x-shockwave-flash"
- };
- if (this.check([255, 216, 255]))
- return this.check([247], { offset: 3 }) ? {
- ext: "jls",
- mime: "image/jls"
- } : {
- ext: "jpg",
- mime: "image/jpeg"
- };
- if (this.check([79, 98, 106, 1]))
- return {
- ext: "avro",
- mime: "application/avro"
- };
- if (this.checkString("FLIF"))
- return {
- ext: "flif",
- mime: "image/flif"
- };
- if (this.checkString("8BPS"))
- return {
- ext: "psd",
- mime: "image/vnd.adobe.photoshop"
- };
- if (this.checkString("WEBP", { offset: 8 }))
- return {
- ext: "webp",
- mime: "image/webp"
- };
- if (this.checkString("MPCK"))
- return {
- ext: "mpc",
- mime: "audio/x-musepack"
- };
- if (this.checkString("FORM"))
- return {
- ext: "aif",
- mime: "audio/aiff"
- };
- if (this.checkString("icns", { offset: 0 }))
- return {
- ext: "icns",
- mime: "image/icns"
- };
- if (this.check([80, 75, 3, 4])) {
- try {
- for (; t.position + 30 < t.fileInfo.size; ) {
- await t.readBuffer(this.buffer, { length: 30 });
- const A = {
- compressedSize: this.buffer.readUInt32LE(18),
- uncompressedSize: this.buffer.readUInt32LE(22),
- filenameLength: this.buffer.readUInt16LE(26),
- extraFieldLength: this.buffer.readUInt16LE(28)
- };
- if (A.filename = await t.readToken(new rt(A.filenameLength, "utf-8")), await t.ignore(A.extraFieldLength), A.filename === "META-INF/mozilla.rsa")
- return {
- ext: "xpi",
- mime: "application/x-xpinstall"
- };
- if (A.filename.endsWith(".rels") || A.filename.endsWith(".xml"))
- switch (A.filename.split("/")[0]) {
- case "_rels":
- break;
- case "word":
- return {
- ext: "docx",
- mime: "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
- };
- case "ppt":
- return {
- ext: "pptx",
- mime: "application/vnd.openxmlformats-officedocument.presentationml.presentation"
- };
- case "xl":
- return {
- ext: "xlsx",
- mime: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
- };
- default:
- break;
- }
- if (A.filename.startsWith("xl/"))
- return {
- ext: "xlsx",
- mime: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
- };
- if (A.filename.startsWith("3D/") && A.filename.endsWith(".model"))
- return {
- ext: "3mf",
- mime: "model/3mf"
- };
- if (A.filename === "mimetype" && A.compressedSize === A.uncompressedSize) {
- let i = await t.readToken(new rt(A.compressedSize, "utf-8"));
- switch (i = i.trim(), i) {
- case "application/epub+zip":
- return {
- ext: "epub",
- mime: "application/epub+zip"
- };
- case "application/vnd.oasis.opendocument.text":
- return {
- ext: "odt",
- mime: "application/vnd.oasis.opendocument.text"
- };
- case "application/vnd.oasis.opendocument.spreadsheet":
- return {
- ext: "ods",
- mime: "application/vnd.oasis.opendocument.spreadsheet"
- };
- case "application/vnd.oasis.opendocument.presentation":
- return {
- ext: "odp",
- mime: "application/vnd.oasis.opendocument.presentation"
- };
- default:
- }
- }
- if (A.compressedSize === 0) {
- let i = -1;
- for (; i < 0 && t.position < t.fileInfo.size; )
- await t.peekBuffer(this.buffer, { mayBeLess: !0 }), i = this.buffer.indexOf("504B0304", 0, "hex"), await t.ignore(i >= 0 ? i : this.buffer.length);
- } else
- await t.ignore(A.compressedSize);
- }
- } catch (A) {
- if (!(A instanceof UA))
- throw A;
- }
- return {
- ext: "zip",
- mime: "application/zip"
- };
- }
- if (this.checkString("OggS")) {
- await t.ignore(28);
- const A = Ae.alloc(8);
- return await t.readBuffer(A), ue(A, [79, 112, 117, 115, 72, 101, 97, 100]) ? {
- ext: "opus",
- mime: "audio/opus"
- } : ue(A, [128, 116, 104, 101, 111, 114, 97]) ? {
- ext: "ogv",
- mime: "video/ogg"
- } : ue(A, [1, 118, 105, 100, 101, 111, 0]) ? {
- ext: "ogm",
- mime: "video/ogg"
- } : ue(A, [127, 70, 76, 65, 67]) ? {
- ext: "oga",
- mime: "audio/ogg"
- } : ue(A, [83, 112, 101, 101, 120, 32, 32]) ? {
- ext: "spx",
- mime: "audio/ogg"
- } : ue(A, [1, 118, 111, 114, 98, 105, 115]) ? {
- ext: "ogg",
- mime: "audio/ogg"
- } : {
- ext: "ogx",
- mime: "application/ogg"
- };
- }
- if (this.check([80, 75]) && (this.buffer[2] === 3 || this.buffer[2] === 5 || this.buffer[2] === 7) && (this.buffer[3] === 4 || this.buffer[3] === 6 || this.buffer[3] === 8))
- return {
- ext: "zip",
- mime: "application/zip"
- };
- if (this.checkString("ftyp", { offset: 4 }) && this.buffer[8] & 96) {
- const A = this.buffer.toString("binary", 8, 12).replace("\0", " ").trim();
- switch (A) {
- case "avif":
- case "avis":
- return { ext: "avif", mime: "image/avif" };
- case "mif1":
- return { ext: "heic", mime: "image/heif" };
- case "msf1":
- return { ext: "heic", mime: "image/heif-sequence" };
- case "heic":
- case "heix":
- return { ext: "heic", mime: "image/heic" };
- case "hevc":
- case "hevx":
- return { ext: "heic", mime: "image/heic-sequence" };
- case "qt":
- return { ext: "mov", mime: "video/quicktime" };
- case "M4V":
- case "M4VH":
- case "M4VP":
- return { ext: "m4v", mime: "video/x-m4v" };
- case "M4P":
- return { ext: "m4p", mime: "video/mp4" };
- case "M4B":
- return { ext: "m4b", mime: "audio/mp4" };
- case "M4A":
- return { ext: "m4a", mime: "audio/x-m4a" };
- case "F4V":
- return { ext: "f4v", mime: "video/mp4" };
- case "F4P":
- return { ext: "f4p", mime: "video/mp4" };
- case "F4A":
- return { ext: "f4a", mime: "audio/mp4" };
- case "F4B":
- return { ext: "f4b", mime: "audio/mp4" };
- case "crx":
- return { ext: "cr3", mime: "image/x-canon-cr3" };
- default:
- return A.startsWith("3g") ? A.startsWith("3g2") ? { ext: "3g2", mime: "video/3gpp2" } : { ext: "3gp", mime: "video/3gpp" } : { ext: "mp4", mime: "video/mp4" };
- }
- }
- if (this.checkString("MThd"))
- return {
- ext: "mid",
- mime: "audio/midi"
- };
- if (this.checkString("wOFF") && (this.check([0, 1, 0, 0], { offset: 4 }) || this.checkString("OTTO", { offset: 4 })))
- return {
- ext: "woff",
- mime: "font/woff"
- };
- if (this.checkString("wOF2") && (this.check([0, 1, 0, 0], { offset: 4 }) || this.checkString("OTTO", { offset: 4 })))
- return {
- ext: "woff2",
- mime: "font/woff2"
- };
- if (this.check([212, 195, 178, 161]) || this.check([161, 178, 195, 212]))
- return {
- ext: "pcap",
- mime: "application/vnd.tcpdump.pcap"
- };
- if (this.checkString("DSD "))
- return {
- ext: "dsf",
- mime: "audio/x-dsf"
- // Non-standard
- };
- if (this.checkString("LZIP"))
- return {
- ext: "lz",
- mime: "application/x-lzip"
- };
- if (this.checkString("fLaC"))
- return {
- ext: "flac",
- mime: "audio/x-flac"
- };
- if (this.check([66, 80, 71, 251]))
- return {
- ext: "bpg",
- mime: "image/bpg"
- };
- if (this.checkString("wvpk"))
- return {
- ext: "wv",
- mime: "audio/wavpack"
- };
- if (this.checkString("%PDF")) {
- try {
- await t.ignore(1350);
- const A = 10 * 1024 * 1024, i = Ae.alloc(Math.min(A, t.fileInfo.size));
- if (await t.readBuffer(i, { mayBeLess: !0 }), i.includes(Ae.from("AIPrivateData")))
- return {
- ext: "ai",
- mime: "application/postscript"
- };
- } catch (A) {
- if (!(A instanceof UA))
- throw A;
- }
- return {
- ext: "pdf",
- mime: "application/pdf"
- };
- }
- if (this.check([0, 97, 115, 109]))
- return {
- ext: "wasm",
- mime: "application/wasm"
- };
- if (this.check([73, 73])) {
- const A = await this.readTiffHeader(!1);
- if (A)
- return A;
- }
- if (this.check([77, 77])) {
- const A = await this.readTiffHeader(!0);
- if (A)
- return A;
- }
- if (this.checkString("MAC "))
- return {
- ext: "ape",
- mime: "audio/ape"
- };
- if (this.check([26, 69, 223, 163])) {
- async function A() {
- const I = await t.peekNumber(e0);
- let r = 128, a = 0;
- for (; !(I & r) && r !== 0; )
- ++a, r >>= 1;
- const Q = Ae.alloc(a + 1);
- return await t.readBuffer(Q), Q;
- }
- async function i() {
- const I = await A(), r = await A();
- r[0] ^= 128 >> r.length - 1;
- const a = Math.min(6, r.length);
- return {
- id: I.readUIntBE(0, I.length),
- len: r.readUIntBE(r.length - a, a)
- };
- }
- async function B(I) {
- for (; I > 0; ) {
- const r = await i();
- if (r.id === 17026)
- return (await t.readToken(new rt(r.len, "utf-8"))).replaceAll(/\00.*$/g, "");
- await t.ignore(r.len), --I;
- }
- }
- const g = await i();
- switch (await B(g.len)) {
- case "webm":
- return {
- ext: "webm",
- mime: "video/webm"
- };
- case "matroska":
- return {
- ext: "mkv",
- mime: "video/x-matroska"
- };
- default:
- return;
- }
- }
- if (this.check([82, 73, 70, 70])) {
- if (this.check([65, 86, 73], { offset: 8 }))
- return {
- ext: "avi",
- mime: "video/vnd.avi"
- };
- if (this.check([87, 65, 86, 69], { offset: 8 }))
- return {
- ext: "wav",
- mime: "audio/wav"
- };
- if (this.check([81, 76, 67, 77], { offset: 8 }))
- return {
- ext: "qcp",
- mime: "audio/qcelp"
- };
- }
- if (this.checkString("SQLi"))
- return {
- ext: "sqlite",
- mime: "application/x-sqlite3"
- };
- if (this.check([78, 69, 83, 26]))
- return {
- ext: "nes",
- mime: "application/x-nintendo-nes-rom"
- };
- if (this.checkString("Cr24"))
- return {
- ext: "crx",
- mime: "application/x-google-chrome-extension"
- };
- if (this.checkString("MSCF") || this.checkString("ISc("))
- return {
- ext: "cab",
- mime: "application/vnd.ms-cab-compressed"
- };
- if (this.check([237, 171, 238, 219]))
- return {
- ext: "rpm",
- mime: "application/x-rpm"
- };
- if (this.check([197, 208, 211, 198]))
- return {
- ext: "eps",
- mime: "application/eps"
- };
- if (this.check([40, 181, 47, 253]))
- return {
- ext: "zst",
- mime: "application/zstd"
- };
- if (this.check([127, 69, 76, 70]))
- return {
- ext: "elf",
- mime: "application/x-elf"
- };
- if (this.check([33, 66, 68, 78]))
- return {
- ext: "pst",
- mime: "application/vnd.ms-outlook"
- };
- if (this.checkString("PAR1"))
- return {
- ext: "parquet",
- mime: "application/x-parquet"
- };
- if (this.check([207, 250, 237, 254]))
- return {
- ext: "macho",
- mime: "application/x-mach-binary"
- };
- if (this.check([79, 84, 84, 79, 0]))
- return {
- ext: "otf",
- mime: "font/otf"
- };
- if (this.checkString("#!AMR"))
- return {
- ext: "amr",
- mime: "audio/amr"
- };
- if (this.checkString("{\\rtf"))
- return {
- ext: "rtf",
- mime: "application/rtf"
- };
- if (this.check([70, 76, 86, 1]))
- return {
- ext: "flv",
- mime: "video/x-flv"
- };
- if (this.checkString("IMPM"))
- return {
- ext: "it",
- mime: "audio/x-it"
- };
- if (this.checkString("-lh0-", { offset: 2 }) || this.checkString("-lh1-", { offset: 2 }) || this.checkString("-lh2-", { offset: 2 }) || this.checkString("-lh3-", { offset: 2 }) || this.checkString("-lh4-", { offset: 2 }) || this.checkString("-lh5-", { offset: 2 }) || this.checkString("-lh6-", { offset: 2 }) || this.checkString("-lh7-", { offset: 2 }) || this.checkString("-lzs-", { offset: 2 }) || this.checkString("-lz4-", { offset: 2 }) || this.checkString("-lz5-", { offset: 2 }) || this.checkString("-lhd-", { offset: 2 }))
- return {
- ext: "lzh",
- mime: "application/x-lzh-compressed"
- };
- if (this.check([0, 0, 1, 186])) {
- if (this.check([33], { offset: 4, mask: [241] }))
- return {
- ext: "mpg",
- // May also be .ps, .mpeg
- mime: "video/MP1S"
- };
- if (this.check([68], { offset: 4, mask: [196] }))
- return {
- ext: "mpg",
- // May also be .mpg, .m2p, .vob or .sub
- mime: "video/MP2P"
- };
- }
- if (this.checkString("ITSF"))
- return {
- ext: "chm",
- mime: "application/vnd.ms-htmlhelp"
- };
- if (this.check([202, 254, 186, 190]))
- return {
- ext: "class",
- mime: "application/java-vm"
- };
- if (this.check([253, 55, 122, 88, 90, 0]))
- return {
- ext: "xz",
- mime: "application/x-xz"
- };
- if (this.checkString("= 1e3 && A <= 1050)
- return {
- ext: "dwg",
- mime: "image/vnd.dwg"
- };
- }
- if (this.checkString("070707"))
- return {
- ext: "cpio",
- mime: "application/x-cpio"
- };
- if (this.checkString("BLENDER"))
- return {
- ext: "blend",
- mime: "application/x-blender"
- };
- if (this.checkString("!"))
- return await t.ignore(8), await t.readToken(new rt(13, "ascii")) === "debian-binary" ? {
- ext: "deb",
- mime: "application/x-deb"
- } : {
- ext: "ar",
- mime: "application/x-unix-archive"
- };
- if (this.checkString("**ACE", { offset: 7 }) && (await t.peekBuffer(this.buffer, { length: 14, mayBeLess: !0 }), this.checkString("**", { offset: 12 })))
- return {
- ext: "ace",
- mime: "application/x-ace-compressed"
- };
- if (this.check([137, 80, 78, 71, 13, 10, 26, 10])) {
- await t.ignore(8);
- async function A() {
- return {
- length: await t.readToken(B0),
- type: await t.readToken(new rt(4, "binary"))
- };
- }
- do {
- const i = await A();
- if (i.length < 0)
- return;
- switch (i.type) {
- case "IDAT":
- return {
- ext: "png",
- mime: "image/png"
- };
- case "acTL":
- return {
- ext: "apng",
- mime: "image/apng"
- };
- default:
- await t.ignore(i.length + 4);
- }
- } while (t.position + 8 < t.fileInfo.size);
- return {
- ext: "png",
- mime: "image/png"
- };
- }
- if (this.check([65, 82, 82, 79, 87, 49, 0, 0]))
- return {
- ext: "arrow",
- mime: "application/x-apache-arrow"
- };
- if (this.check([103, 108, 84, 70, 2, 0, 0, 0]))
- return {
- ext: "glb",
- mime: "model/gltf-binary"
- };
- if (this.check([102, 114, 101, 101], { offset: 4 }) || this.check([109, 100, 97, 116], { offset: 4 }) || this.check([109, 111, 111, 118], { offset: 4 }) || this.check([119, 105, 100, 101], { offset: 4 }))
- return {
- ext: "mov",
- mime: "video/quicktime"
- };
- if (this.check([73, 73, 82, 79, 8, 0, 0, 0, 24]))
- return {
- ext: "orf",
- mime: "image/x-olympus-orf"
- };
- if (this.checkString("gimp xcf "))
- return {
- ext: "xcf",
- mime: "image/x-xcf"
- };
- if (this.check([73, 73, 85, 0, 24, 0, 0, 0, 136, 231, 116, 216]))
- return {
- ext: "rw2",
- mime: "image/x-panasonic-rw2"
- };
- if (this.check([48, 38, 178, 117, 142, 102, 207, 17, 166, 217])) {
- async function A() {
- const i = Ae.alloc(16);
- return await t.readBuffer(i), {
- id: i,
- size: Number(await t.readToken(g0))
- };
- }
- for (await t.ignore(30); t.position + 24 < t.fileInfo.size; ) {
- const i = await A();
- let B = i.size - 24;
- if (ue(i.id, [145, 7, 220, 183, 183, 169, 207, 17, 142, 230, 0, 192, 12, 32, 83, 101])) {
- const g = Ae.alloc(16);
- if (B -= await t.readBuffer(g), ue(g, [64, 158, 105, 248, 77, 91, 207, 17, 168, 253, 0, 128, 95, 92, 68, 43]))
- return {
- ext: "asf",
- mime: "audio/x-ms-asf"
- };
- if (ue(g, [192, 239, 25, 188, 77, 91, 207, 17, 168, 253, 0, 128, 95, 92, 68, 43]))
- return {
- ext: "asf",
- mime: "video/x-ms-asf"
- };
- break;
- }
- await t.ignore(B);
- }
- return {
- ext: "asf",
- mime: "application/vnd.ms-asf"
- };
- }
- if (this.check([171, 75, 84, 88, 32, 49, 49, 187, 13, 10, 26, 10]))
- return {
- ext: "ktx",
- mime: "image/ktx"
- };
- if ((this.check([126, 16, 4]) || this.check([126, 24, 4])) && this.check([48, 77, 73, 69], { offset: 4 }))
- return {
- ext: "mie",
- mime: "application/x-mie"
- };
- if (this.check([39, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], { offset: 2 }))
- return {
- ext: "shp",
- mime: "application/x-esri-shape"
- };
- if (this.check([255, 79, 255, 81]))
- return {
- ext: "j2c",
- mime: "image/j2c"
- };
- if (this.check([0, 0, 0, 12, 106, 80, 32, 32, 13, 10, 135, 10]))
- switch (await t.ignore(20), await t.readToken(new rt(4, "ascii"))) {
- case "jp2 ":
- return {
- ext: "jp2",
- mime: "image/jp2"
- };
- case "jpx ":
- return {
- ext: "jpx",
- mime: "image/jpx"
- };
- case "jpm ":
- return {
- ext: "jpm",
- mime: "image/jpm"
- };
- case "mjp2":
- return {
- ext: "mj2",
- mime: "image/mj2"
- };
- default:
- return;
- }
- if (this.check([255, 10]) || this.check([0, 0, 0, 12, 74, 88, 76, 32, 13, 10, 135, 10]))
- return {
- ext: "jxl",
- mime: "image/jxl"
- };
- if (this.check([254, 255]))
- return this.check([0, 60, 0, 63, 0, 120, 0, 109, 0, 108], { offset: 2 }) ? {
- ext: "xml",
- mime: "application/xml"
- } : void 0;
- if (this.check([0, 0, 1, 186]) || this.check([0, 0, 1, 179]))
- return {
- ext: "mpg",
- mime: "video/mpeg"
- };
- if (this.check([0, 1, 0, 0, 0]))
- return {
- ext: "ttf",
- mime: "font/ttf"
- };
- if (this.check([0, 0, 1, 0]))
- return {
- ext: "ico",
- mime: "image/x-icon"
- };
- if (this.check([0, 0, 2, 0]))
- return {
- ext: "cur",
- mime: "image/x-icon"
- };
- if (this.check([208, 207, 17, 224, 161, 177, 26, 225]))
- return {
- ext: "cfb",
- mime: "application/x-cfb"
- };
- if (await t.peekBuffer(this.buffer, { length: Math.min(256, t.fileInfo.size), mayBeLess: !0 }), this.check([97, 99, 115, 112], { offset: 36 }))
- return {
- ext: "icc",
- mime: "application/vnd.iccprofile"
- };
- if (this.checkString("BEGIN:")) {
- if (this.checkString("VCARD", { offset: 6 }))
- return {
- ext: "vcf",
- mime: "text/vcard"
- };
- if (this.checkString("VCALENDAR", { offset: 6 }))
- return {
- ext: "ics",
- mime: "text/calendar"
- };
- }
- if (this.checkString("FUJIFILMCCD-RAW"))
- return {
- ext: "raf",
- mime: "image/x-fujifilm-raf"
- };
- if (this.checkString("Extended Module:"))
- return {
- ext: "xm",
- mime: "audio/x-xm"
- };
- if (this.checkString("Creative Voice File"))
- return {
- ext: "voc",
- mime: "audio/x-voc"
- };
- if (this.check([4, 0, 0, 0]) && this.buffer.length >= 16) {
- const A = this.buffer.readUInt32LE(12);
- if (A > 12 && this.buffer.length >= A + 16)
- try {
- const i = this.buffer.slice(16, A + 16).toString();
- if (JSON.parse(i).files)
- return {
- ext: "asar",
- mime: "application/x-asar"
- };
- } catch {
- }
- }
- if (this.check([6, 14, 43, 52, 2, 5, 1, 1, 13, 1, 2, 1, 1, 2]))
- return {
- ext: "mxf",
- mime: "application/mxf"
- };
- if (this.checkString("SCRM", { offset: 44 }))
- return {
- ext: "s3m",
- mime: "audio/x-s3m"
- };
- if (this.check([71]) && this.check([71], { offset: 188 }))
- return {
- ext: "mts",
- mime: "video/mp2t"
- };
- if (this.check([71], { offset: 4 }) && this.check([71], { offset: 196 }))
- return {
- ext: "mts",
- mime: "video/mp2t"
- };
- if (this.check([66, 79, 79, 75, 77, 79, 66, 73], { offset: 60 }))
- return {
- ext: "mobi",
- mime: "application/x-mobipocket-ebook"
- };
- if (this.check([68, 73, 67, 77], { offset: 128 }))
- return {
- ext: "dcm",
- mime: "application/dicom"
- };
- if (this.check([76, 0, 0, 0, 1, 20, 2, 0, 0, 0, 0, 0, 192, 0, 0, 0, 0, 0, 0, 70]))
- return {
- ext: "lnk",
- mime: "application/x.ms.shortcut"
- // Invented by us
- };
- if (this.check([98, 111, 111, 107, 0, 0, 0, 0, 109, 97, 114, 107, 0, 0, 0, 0]))
- return {
- ext: "alias",
- mime: "application/x.apple.alias"
- // Invented by us
- };
- if (this.checkString("Kaydara FBX Binary \0"))
- return {
- ext: "fbx",
- mime: "application/x.autodesk.fbx"
- // Invented by us
- };
- if (this.check([76, 80], { offset: 34 }) && (this.check([0, 0, 1], { offset: 8 }) || this.check([1, 0, 2], { offset: 8 }) || this.check([2, 0, 2], { offset: 8 })))
- return {
- ext: "eot",
- mime: "application/vnd.ms-fontobject"
- };
- if (this.check([6, 6, 237, 245, 216, 29, 70, 229, 189, 49, 239, 231, 254, 116, 183, 29]))
- return {
- ext: "indd",
- mime: "application/x-indesign"
- };
- if (await t.peekBuffer(this.buffer, { length: Math.min(512, t.fileInfo.size), mayBeLess: !0 }), f0(this.buffer))
- return {
- ext: "tar",
- mime: "application/x-tar"
- };
- if (this.check([255, 254]))
- return this.check([60, 0, 63, 0, 120, 0, 109, 0, 108, 0], { offset: 2 }) ? {
- ext: "xml",
- mime: "application/xml"
- } : this.check([255, 14, 83, 0, 107, 0, 101, 0, 116, 0, 99, 0, 104, 0, 85, 0, 112, 0, 32, 0, 77, 0, 111, 0, 100, 0, 101, 0, 108, 0], { offset: 2 }) ? {
- ext: "skp",
- mime: "application/vnd.sketchup.skp"
- } : void 0;
- if (this.checkString("-----BEGIN PGP MESSAGE-----"))
- return {
- ext: "pgp",
- mime: "application/pgp-encrypted"
- };
- if (this.buffer.length >= 2 && this.check([255, 224], { offset: 0, mask: [255, 224] })) {
- if (this.check([16], { offset: 1, mask: [22] }))
- return this.check([8], { offset: 1, mask: [8] }) ? {
- ext: "aac",
- mime: "audio/aac"
- } : {
- ext: "aac",
- mime: "audio/aac"
- };
- if (this.check([2], { offset: 1, mask: [6] }))
- return {
- ext: "mp3",
- mime: "audio/mpeg"
- };
- if (this.check([4], { offset: 1, mask: [6] }))
- return {
- ext: "mp2",
- mime: "audio/mpeg"
- };
- if (this.check([6], { offset: 1, mask: [6] }))
- return {
- ext: "mp1",
- mime: "audio/mpeg"
- };
- }
- }
- async readTiffTag(t) {
- const A = await this.tokenizer.readToken(t ? Cg : sg);
- switch (this.tokenizer.ignore(10), A) {
- case 50341:
- return {
- ext: "arw",
- mime: "image/x-sony-arw"
- };
- case 50706:
- return {
- ext: "dng",
- mime: "image/x-adobe-dng"
- };
- }
- }
- async readTiffIFD(t) {
- const A = await this.tokenizer.readToken(t ? Cg : sg);
- for (let i = 0; i < A; ++i) {
- const B = await this.readTiffTag(t);
- if (B)
- return B;
- }
- }
- async readTiffHeader(t) {
- const A = (t ? Cg : sg).get(this.buffer, 2), i = (t ? i0 : t0).get(this.buffer, 4);
- if (A === 42) {
- if (i >= 6) {
- if (this.checkString("CR", { offset: 8 }))
- return {
- ext: "cr2",
- mime: "image/x-canon-cr2"
- };
- if (i >= 8 && (this.check([28, 0, 254, 0], { offset: 8 }) || this.check([31, 0, 11, 0], { offset: 8 })))
- return {
- ext: "nef",
- mime: "image/x-nikon-nef"
- };
- }
- return await this.tokenizer.ignore(i), await this.readTiffIFD(t) ?? {
- ext: "tif",
- mime: "image/tiff"
- };
- }
- if (A === 43)
- return {
- ext: "tif",
- mime: "image/tiff"
- };
- }
-}
-async function y0(e, t = {}) {
- return new cB().toDetectionStream(e, t);
-}
-new Set(x0);
-new Set(h0);
-async function D0(e) {
- const t = new wQ(e), A = await d0(t);
- return await t.close(), A;
-}
-const p0 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
- __proto__: null,
- fileTypeFromBuffer: l0,
- fileTypeFromStream: D0,
- fileTypeFromTokenizer: w0,
- fileTypeStream: y0
-}, Symbol.toStringTag, { value: "Module" }));
-let Xt;
-const m0 = new Uint8Array(16);
-function G0() {
- if (!Xt && (Xt = typeof crypto < "u" && crypto.getRandomValues && crypto.getRandomValues.bind(crypto), !Xt))
- throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");
- return Xt(m0);
-}
-const fA = [];
-for (let e = 0; e < 256; ++e)
- fA.push((e + 256).toString(16).slice(1));
-function F0(e, t = 0) {
- return fA[e[t + 0]] + fA[e[t + 1]] + fA[e[t + 2]] + fA[e[t + 3]] + "-" + fA[e[t + 4]] + fA[e[t + 5]] + "-" + fA[e[t + 6]] + fA[e[t + 7]] + "-" + fA[e[t + 8]] + fA[e[t + 9]] + "-" + fA[e[t + 10]] + fA[e[t + 11]] + fA[e[t + 12]] + fA[e[t + 13]] + fA[e[t + 14]] + fA[e[t + 15]];
-}
-const R0 = typeof crypto < "u" && crypto.randomUUID && crypto.randomUUID.bind(crypto), sr = {
- randomUUID: R0
-};
-function S0(e, t, A) {
- if (sr.randomUUID && !t && !e)
- return sr.randomUUID();
- e = e || {};
- const i = e.random || (e.rng || G0)();
- if (i[6] = i[6] & 15 | 64, i[8] = i[8] & 63 | 128, t) {
- A = A || 0;
- for (let B = 0; B < 16; ++B)
- t[A + B] = i[B];
- return t;
- }
- return F0(i);
-}
-const b0 = () => {
- const e = rA.join(tA.wrapper.dataPath, "NapCat");
- return nA.mkdirSync(e, { recursive: !0 }), e;
-}, N0 = () => {
- const e = rA.join(b0(), "temp");
- return nA.existsSync(e) || nA.mkdirSync(e, { recursive: !0 }), e;
-};
-function U0(e) {
- const t = Buffer.alloc(4), A = nA.openSync(e, "r");
- return nA.readSync(A, t, 0, 4, 0), nA.closeSync(A), t.toString() === "GIF8";
-}
-function DQ(e) {
- return new Promise((t, A) => {
- const i = nA.createReadStream(e), B = Co.createHash("md5");
- i.on("data", (g) => {
- B.update(g);
- }), i.on("end", () => {
- const g = B.digest("hex");
- t(g);
- }), i.on("error", (g) => {
- A(g);
- });
- });
-}
-const v0 = "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", H0 = Buffer.from(v0, "base64");
-async function Y0(e) {
- const t = nA.statSync(e).size;
- return new Promise((A, i) => {
- const B = process.env.FFMPEG_PATH;
- B && In.setFfmpegPath(B), In(e).ffprobe((g, n) => {
- if (g)
- i(g);
- else {
- const I = n.streams.find((r) => r.codec_type === "video");
- if (I)
- console.log(`视频尺寸: ${I.width}x${I.height}`);
- else
- return i("未找到视频流信息。");
- A({
- width: I.width,
- height: I.height,
- time: parseInt(I.duration),
- format: n.format.format_name,
- size: t,
- filePath: e
- });
- }
- });
- });
-}
-var L0 = (() => {
- var e = import.meta.url;
- return async function(t = {}) {
- var A = t, i, B;
- A.ready = new Promise((y, p) => {
- i = y, B = p;
- });
- var g = Object.assign({}, A), n = typeof window == "object", I = typeof importScripts == "function", r = typeof process == "object" && typeof process.versions == "object" && typeof process.versions.node == "string", a = "", Q, E, o;
- if (r) {
- let { createRequire: y } = await import("module");
- var c = y(import.meta.url), l = c("fs"), u = c("path");
- I ? a = u.dirname(a) + "/" : a = c("url").fileURLToPath(new URL("data:text/javascript;base64,dmFyIE1vZHVsZT0oKCk9Pnt2YXIgX3NjcmlwdERpcj1pbXBvcnQubWV0YS51cmw7cmV0dXJuIGFzeW5jIGZ1bmN0aW9uKG1vZHVsZUFyZz17fSl7dmFyIGY9bW9kdWxlQXJnLGFhLHI7Zi5yZWFkeT1uZXcgUHJvbWlzZSgoYSxiKT0+e2FhPWEscj1ifSk7dmFyIGJhPU9iamVjdC5hc3NpZ24oe30sZiksY2E9dHlwZW9mIHdpbmRvdz09Im9iamVjdCIsdD10eXBlb2YgaW1wb3J0U2NyaXB0cz09ImZ1bmN0aW9uIixkYT10eXBlb2YgcHJvY2Vzcz09Im9iamVjdCImJnR5cGVvZiBwcm9jZXNzLnZlcnNpb25zPT0ib2JqZWN0IiYmdHlwZW9mIHByb2Nlc3MudmVyc2lvbnMubm9kZT09InN0cmluZyIsdT0iIixlYSx2LEE7aWYoZGEpe2xldHtjcmVhdGVSZXF1aXJlOmF9PWF3YWl0IGltcG9ydCgibW9kdWxlIik7dmFyIHJlcXVpcmUyPWEoaW1wb3J0Lm1ldGEudXJsKSxmcz1yZXF1aXJlMigiZnMiKSxmYT1yZXF1aXJlMigicGF0aCIpO3Q/dT1mYS5kaXJuYW1lKHUpKyIvIjp1PXJlcXVpcmUyKCJ1cmwiKS5maWxlVVJMVG9QYXRoKG5ldyBVUkwoIi4vIixpbXBvcnQubWV0YS51cmwpKSxlYT0oYixjKT0+KGI9QihiKT9uZXcgVVJMKGIpOmZhLm5vcm1hbGl6ZShiKSxmcy5yZWFkRmlsZVN5bmMoYixjP3ZvaWQgMDoidXRmOCIpKSxBPWI9PihiPWVhKGIsITApLGIuYnVmZmVyfHwoYj1uZXcgVWludDhBcnJheShiKSksYiksdj0oYixjLGQsZT0hMCk9PntiPUIoYik/bmV3IFVSTChiKTpmYS5ub3JtYWxpemUoYiksZnMucmVhZEZpbGUoYixlP3ZvaWQgMDoidXRmOCIsKGgsbCk9PntoP2QoaCk6YyhlP2wuYnVmZmVyOmwpfSl9LHByb2Nlc3MuYXJndi5zbGljZSgyKX1lbHNlKGNhfHx0KSYmKHQ/dT1zZWxmLmxvY2F0aW9uLmhyZWY6dHlwZW9mIGRvY3VtZW50PCJ1IiYmZG9jdW1lbnQuY3VycmVudFNjcmlwdCYmKHU9ZG9jdW1lbnQuY3VycmVudFNjcmlwdC5zcmMpLF9zY3JpcHREaXImJih1PV9zY3JpcHREaXIpLHUuc3RhcnRzV2l0aCgiYmxvYjoiKT91PSIiOnU9dS5zdWJzdHIoMCx1LnJlcGxhY2UoL1s/I10uKi8sIiIpLmxhc3RJbmRleE9mKCIvIikrMSksZWE9YT0+e3ZhciBiPW5ldyBYTUxIdHRwUmVxdWVzdDtyZXR1cm4gYi5vcGVuKCJHRVQiLGEsITEpLGIuc2VuZChudWxsKSxiLnJlc3BvbnNlVGV4dH0sdCYmKEE9YT0+e3ZhciBiPW5ldyBYTUxIdHRwUmVxdWVzdDtyZXR1cm4gYi5vcGVuKCJHRVQiLGEsITEpLGIucmVzcG9uc2VUeXBlPSJhcnJheWJ1ZmZlciIsYi5zZW5kKG51bGwpLG5ldyBVaW50OEFycmF5KGIucmVzcG9uc2UpfSksdj0oYSxiLGMpPT57dmFyIGQ9bmV3IFhNTEh0dHBSZXF1ZXN0O2Qub3BlbigiR0VUIixhLCEwKSxkLnJlc3BvbnNlVHlwZT0iYXJyYXlidWZmZXIiLGQub25sb2FkPSgpPT57ZC5zdGF0dXM9PTIwMHx8ZC5zdGF0dXM9PTAmJmQucmVzcG9uc2U/YihkLnJlc3BvbnNlKTpjKCl9LGQub25lcnJvcj1jLGQuc2VuZChudWxsKX0pO2YucHJpbnR8fGNvbnNvbGUubG9nLmJpbmQoY29uc29sZSk7dmFyIEM9Zi5wcmludEVycnx8Y29uc29sZS5lcnJvci5iaW5kKGNvbnNvbGUpO09iamVjdC5hc3NpZ24oZixiYSksYmE9bnVsbDt2YXIgRDtmLndhc21CaW5hcnkmJihEPWYud2FzbUJpbmFyeSk7dmFyIEYsaGE9ITEsaWEsRyxILEksSixMLGphLGthO2Z1bmN0aW9uIGxhKCl7dmFyIGE9Ri5idWZmZXI7Zi5IRUFQOD1pYT1uZXcgSW50OEFycmF5KGEpLGYuSEVBUDE2PUg9bmV3IEludDE2QXJyYXkoYSksZi5IRUFQVTg9Rz1uZXcgVWludDhBcnJheShhKSxmLkhFQVBVMTY9ST1uZXcgVWludDE2QXJyYXkoYSksZi5IRUFQMzI9Sj1uZXcgSW50MzJBcnJheShhKSxmLkhFQVBVMzI9TD1uZXcgVWludDMyQXJyYXkoYSksZi5IRUFQRjMyPWphPW5ldyBGbG9hdDMyQXJyYXkoYSksZi5IRUFQRjY0PWthPW5ldyBGbG9hdDY0QXJyYXkoYSl9dmFyIG1hPVtdLG5hPVtdLG9hPVtdO2Z1bmN0aW9uIHFhKCl7dmFyIGE9Zi5wcmVSdW4uc2hpZnQoKTttYS51bnNoaWZ0KGEpfXZhciBNPTAscmE9bnVsbCxOPW51bGw7ZnVuY3Rpb24gc2EoYSl7dGhyb3cgZi5vbkFib3J0Py4oYSksYT0iQWJvcnRlZCgiK2ErIikiLEMoYSksaGE9ITAsYT1uZXcgV2ViQXNzZW1ibHkuUnVudGltZUVycm9yKGErIi4gQnVpbGQgd2l0aCAtc0FTU0VSVElPTlMgZm9yIG1vcmUgaW5mby4iKSxyKGEpLGF9dmFyIHRhPWE9PmEuc3RhcnRzV2l0aCgiZGF0YTphcHBsaWNhdGlvbi9vY3RldC1zdHJlYW07YmFzZTY0LCIpLEI9YT0+YS5zdGFydHNXaXRoKCJmaWxlOi8vIiksTztpZihmLmxvY2F0ZUZpbGUpe2lmKE89InNpbGtfd2FzbS53YXNtIiwhdGEoTykpe3ZhciB1YT1PO089Zi5sb2NhdGVGaWxlP2YubG9jYXRlRmlsZSh1YSx1KTp1K3VhfX1lbHNlIE89bmV3IFVSTCgic2lsa193YXNtLndhc20iLGltcG9ydC5tZXRhLnVybCkuaHJlZjtmdW5jdGlvbiB2YShhKXtpZihhPT1PJiZEKXJldHVybiBuZXcgVWludDhBcnJheShEKTtpZihBKXJldHVybiBBKGEpO3Rocm93ImJvdGggYXN5bmMgYW5kIHN5bmMgZmV0Y2hpbmcgb2YgdGhlIHdhc20gZmFpbGVkIn1mdW5jdGlvbiB3YShhKXtpZighRCYmKGNhfHx0KSl7aWYodHlwZW9mIGZldGNoPT0iZnVuY3Rpb24iJiYhQihhKSlyZXR1cm4gZmV0Y2goYSx7Y3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oYj0+e2lmKCFiLm9rKXRocm93YGZhaWxlZCB0byBsb2FkIHdhc20gYmluYXJ5IGZpbGUgYXQgJyR7YX0nYDtyZXR1cm4gYi5hcnJheUJ1ZmZlcigpfSkuY2F0Y2goKCk9PnZhKGEpKTtpZih2KXJldHVybiBuZXcgUHJvbWlzZSgoYixjKT0+e3YoYSxkPT5iKG5ldyBVaW50OEFycmF5KGQpKSxjKX0pfXJldHVybiBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT52YShhKSl9ZnVuY3Rpb24geGEoYSxiLGMpe3JldHVybiB3YShhKS50aGVuKGQ9PldlYkFzc2VtYmx5Lmluc3RhbnRpYXRlKGQsYikpLnRoZW4oYyxkPT57QyhgZmFpbGVkIHRvIGFzeW5jaHJvbm91c2x5IHByZXBhcmUgd2FzbTogJHtkfWApLHNhKGQpfSl9ZnVuY3Rpb24geWEoYSxiKXt2YXIgYz1PO3JldHVybiBEfHx0eXBlb2YgV2ViQXNzZW1ibHkuaW5zdGFudGlhdGVTdHJlYW1pbmchPSJmdW5jdGlvbiJ8fHRhKGMpfHxCKGMpfHxkYXx8dHlwZW9mIGZldGNoIT0iZnVuY3Rpb24iP3hhKGMsYSxiKTpmZXRjaChjLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihkPT5XZWJBc3NlbWJseS5pbnN0YW50aWF0ZVN0cmVhbWluZyhkLGEpLnRoZW4oYixmdW5jdGlvbihlKXtyZXR1cm4gQyhgd2FzbSBzdHJlYW1pbmcgY29tcGlsZSBmYWlsZWQ6ICR7ZX1gKSxDKCJmYWxsaW5nIGJhY2sgdG8gQXJyYXlCdWZmZXIgaW5zdGFudGlhdGlvbiIpLHhhKGMsYSxiKX0pKX12YXIgemE9YT0+e2Zvcig7MDxhLmxlbmd0aDspYS5zaGlmdCgpKGYpfTtjbGFzcyBBYXtjb25zdHJ1Y3RvcihhKXt0aGlzLkM9YS0yNH19dmFyIEJhPTAsQ2E9MCxEYSxQPWE9Pntmb3IodmFyIGI9IiI7R1thXTspYis9RGFbR1thKytdXTtyZXR1cm4gYn0sUT17fSxSPXt9LFM9e30sVCxFYT1hPT57dGhyb3cgbmV3IFQoYSl9LEZhLEdhPShhLGIpPT57ZnVuY3Rpb24gYyhnKXtpZihnPWIoZyksZy5sZW5ndGghPT1kLmxlbmd0aCl0aHJvdyBuZXcgRmEoIk1pc21hdGNoZWQgdHlwZSBjb252ZXJ0ZXIgY291bnQiKTtmb3IodmFyIG09MDttPGQubGVuZ3RoOysrbSlVKGRbbV0sZ1ttXSl9dmFyIGQ9W107ZC5mb3JFYWNoKGZ1bmN0aW9uKGcpe1NbZ109YX0pO3ZhciBlPUFycmF5KGEubGVuZ3RoKSxoPVtdLGw9MDthLmZvckVhY2goKGcsbSk9PntSLmhhc093blByb3BlcnR5KGcpP2VbbV09UltnXTooaC5wdXNoKGcpLFEuaGFzT3duUHJvcGVydHkoZyl8fChRW2ddPVtdKSxRW2ddLnB1c2goKCk9PntlW21dPVJbZ10sKytsLGw9PT1oLmxlbmd0aCYmYyhlKX0pKX0pLGgubGVuZ3RoPT09MCYmYyhlKX07ZnVuY3Rpb24gSGEoYSxiLGM9e30pe3ZhciBkPWIubmFtZTtpZighYSl0aHJvdyBuZXcgVChgdHlwZSAiJHtkfSIgbXVzdCBoYXZlIGEgcG9zaXRpdmUgaW50ZWdlciB0eXBlaWQgcG9pbnRlcmApO2lmKFIuaGFzT3duUHJvcGVydHkoYSkpe2lmKGMuRilyZXR1cm47dGhyb3cgbmV3IFQoYENhbm5vdCByZWdpc3RlciB0eXBlICcke2R9JyB0d2ljZWApfVJbYV09YixkZWxldGUgU1thXSxRLmhhc093blByb3BlcnR5KGEpJiYoYj1RW2FdLGRlbGV0ZSBRW2FdLGIuZm9yRWFjaChlPT5lKCkpKX1mdW5jdGlvbiBVKGEsYixjPXt9KXtpZighKCJhcmdQYWNrQWR2YW5jZSJpbiBiKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJyZWdpc3RlclR5cGUgcmVnaXN0ZXJlZEluc3RhbmNlIHJlcXVpcmVzIGFyZ1BhY2tBZHZhbmNlIik7cmV0dXJuIEhhKGEsYixjKX12YXIgSWE9W10sVj1bXSxKYT1hPT57OTxhJiYtLVZbYSsxXT09PTAmJihWW2FdPXZvaWQgMCxJYS5wdXNoKGEpKX0sS2E9YT0+e2lmKCFhKXRocm93IG5ldyBUKCJDYW5ub3QgdXNlIGRlbGV0ZWQgdmFsLiBoYW5kbGUgPSAiK2EpO3JldHVybiBWW2FdfSxMYT1hPT57c3dpdGNoKGEpe2Nhc2Ugdm9pZCAwOnJldHVybiAyO2Nhc2UgbnVsbDpyZXR1cm4gNDtjYXNlITA6cmV0dXJuIDY7Y2FzZSExOnJldHVybiA4O2RlZmF1bHQ6bGV0IGI9SWEucG9wKCl8fFYubGVuZ3RoO3JldHVybiBWW2JdPWEsVltiKzFdPTEsYn19O2Z1bmN0aW9uIE1hKGEpe3JldHVybiB0aGlzLmZyb21XaXJlVHlwZShMW2E+PjJdKX12YXIgTmE9e25hbWU6ImVtc2NyaXB0ZW46OnZhbCIsZnJvbVdpcmVUeXBlOmE9Pnt2YXIgYj1LYShhKTtyZXR1cm4gSmEoYSksYn0sdG9XaXJlVHlwZTooYSxiKT0+TGEoYiksYXJnUGFja0FkdmFuY2U6OCxyZWFkVmFsdWVGcm9tUG9pbnRlcjpNYSxCOm51bGx9LE9hPShhLGIpPT57c3dpdGNoKGIpe2Nhc2UgNDpyZXR1cm4gZnVuY3Rpb24oYyl7cmV0dXJuIHRoaXMuZnJvbVdpcmVUeXBlKGphW2M+PjJdKX07Y2FzZSA4OnJldHVybiBmdW5jdGlvbihjKXtyZXR1cm4gdGhpcy5mcm9tV2lyZVR5cGUoa2FbYz4+M10pfTtkZWZhdWx0OnRocm93IG5ldyBUeXBlRXJyb3IoYGludmFsaWQgZmxvYXQgd2lkdGggKCR7Yn0pOiAke2F9YCl9fSxXPShhLGIpPT5PYmplY3QuZGVmaW5lUHJvcGVydHkoYiwibmFtZSIse3ZhbHVlOmF9KSxQYT1hPT57Zm9yKDthLmxlbmd0aDspe3ZhciBiPWEucG9wKCk7YS5wb3AoKShiKX19O2Z1bmN0aW9uIFFhKGEpe2Zvcih2YXIgYj0xO2I8YS5sZW5ndGg7KytiKWlmKGFbYl0hPT1udWxsJiZhW2JdLkI9PT12b2lkIDApcmV0dXJuITA7cmV0dXJuITF9ZnVuY3Rpb24gUmEoYSl7dmFyIGI9RnVuY3Rpb247aWYoIShiIGluc3RhbmNlb2YgRnVuY3Rpb24pKXRocm93IG5ldyBUeXBlRXJyb3IoYG5ld18gY2FsbGVkIHdpdGggY29uc3RydWN0b3IgdHlwZSAke3R5cGVvZiBifSB3aGljaCBpcyBub3QgYSBmdW5jdGlvbmApO3ZhciBjPVcoYi5uYW1lfHwidW5rbm93bkZ1bmN0aW9uTmFtZSIsZnVuY3Rpb24oKXt9KTtyZXR1cm4gYy5wcm90b3R5cGU9Yi5wcm90b3R5cGUsYz1uZXcgYyxhPWIuYXBwbHkoYyxhKSxhIGluc3RhbmNlb2YgT2JqZWN0P2E6Y31mb3IodmFyIFNhPShhLGIpPT57aWYoZlthXS5BPT09dm9pZCAwKXt2YXIgYz1mW2FdO2ZbYV09ZnVuY3Rpb24oLi4uZCl7aWYoIWZbYV0uQS5oYXNPd25Qcm9wZXJ0eShkLmxlbmd0aCkpdGhyb3cgbmV3IFQoYEZ1bmN0aW9uICcke2J9JyBjYWxsZWQgd2l0aCBhbiBpbnZhbGlkIG51bWJlciBvZiBhcmd1bWVudHMgKCR7ZC5sZW5ndGh9KSAtIGV4cGVjdHMgb25lIG9mICgke2ZbYV0uQX0pIWApO3JldHVybiBmW2FdLkFbZC5sZW5ndGhdLmFwcGx5KHRoaXMsZCl9LGZbYV0uQT1bXSxmW2FdLkFbYy5EXT1jfX0sVGE9KGEsYixjKT0+e2lmKGYuaGFzT3duUHJvcGVydHkoYSkpe2lmKGM9PT12b2lkIDB8fGZbYV0uQSE9PXZvaWQgMCYmZlthXS5BW2NdIT09dm9pZCAwKXRocm93IG5ldyBUKGBDYW5ub3QgcmVnaXN0ZXIgcHVibGljIG5hbWUgJyR7YX0nIHR3aWNlYCk7aWYoU2EoYSxhKSxmLmhhc093blByb3BlcnR5KGMpKXRocm93IG5ldyBUKGBDYW5ub3QgcmVnaXN0ZXIgbXVsdGlwbGUgb3ZlcmxvYWRzIG9mIGEgZnVuY3Rpb24gd2l0aCB0aGUgc2FtZSBudW1iZXIgb2YgYXJndW1lbnRzICgke2N9KSFgKTtmW2FdLkFbY109Yn1lbHNlIGZbYV09YixjIT09dm9pZCAwJiYoZlthXS5IPWMpfSxVYT0oYSxiKT0+e2Zvcih2YXIgYz1bXSxkPTA7ZDxhO2QrKyljLnB1c2goTFtiKzQqZD4+Ml0pO3JldHVybiBjfSxYPVtdLFhhLFlhPWE9Pnt2YXIgYj1YW2FdO3JldHVybiBifHwoYT49WC5sZW5ndGgmJihYLmxlbmd0aD1hKzEpLFhbYV09Yj1YYS5nZXQoYSkpLGJ9LFphPShhLGIsYz1bXSk9PmEuaW5jbHVkZXMoImoiKT8oMCxmWyJkeW5DYWxsXyIrYV0pKGIsLi4uYyk6WWEoYikoLi4uYyksJGE9KGEsYik9PiguLi5jKT0+WmEoYSxiLGMpLGFiPShhLGIpPT57YT1QKGEpO3ZhciBjPWEuaW5jbHVkZXMoImoiKT8kYShhLGIpOllhKGIpO2lmKHR5cGVvZiBjIT0iZnVuY3Rpb24iKXRocm93IG5ldyBUKGB1bmtub3duIGZ1bmN0aW9uIHBvaW50ZXIgd2l0aCBzaWduYXR1cmUgJHthfTogJHtifWApO3JldHVybiBjfSxiYixkYj1hPT57YT1jYihhKTt2YXIgYj1QKGEpO3JldHVybiBZKGEpLGJ9LGViPShhLGIpPT57ZnVuY3Rpb24gYyhoKXtlW2hdfHxSW2hdfHwoU1toXT9TW2hdLmZvckVhY2goYyk6KGQucHVzaChoKSxlW2hdPSEwKSl9dmFyIGQ9W10sZT17fTt0aHJvdyBiLmZvckVhY2goYyksbmV3IGJiKGAke2F9OiBgK2QubWFwKGRiKS5qb2luKFsiLCAiXSkpfSxmYj1hPT57YT1hLnRyaW0oKTtsZXQgYj1hLmluZGV4T2YoIigiKTtyZXR1cm4gYiE9PS0xP2Euc3Vic3RyKDAsYik6YX0sZ2I9KGEsYixjKT0+e3N3aXRjaChiKXtjYXNlIDE6cmV0dXJuIGM/ZD0+aWFbZF06ZD0+R1tkXTtjYXNlIDI6cmV0dXJuIGM/ZD0+SFtkPj4xXTpkPT5JW2Q+PjFdO2Nhc2UgNDpyZXR1cm4gYz9kPT5KW2Q+PjJdOmQ9PkxbZD4+Ml07ZGVmYXVsdDp0aHJvdyBuZXcgVHlwZUVycm9yKGBpbnZhbGlkIGludGVnZXIgd2lkdGggKCR7Yn0pOiAke2F9YCl9fSxoYj10eXBlb2YgVGV4dERlY29kZXI8InUiP25ldyBUZXh0RGVjb2RlcigidXRmOCIpOnZvaWQgMCxpYj10eXBlb2YgVGV4dERlY29kZXI8InUiP25ldyBUZXh0RGVjb2RlcigidXRmLTE2bGUiKTp2b2lkIDAsamI9KGEsYik9Pntmb3IodmFyIGM9YT4+MSxkPWMrYi8yOyEoYz49ZCkmJklbY107KSsrYztpZihjPDw9MSwzMjxjLWEmJmliKXJldHVybiBpYi5kZWNvZGUoRy5zdWJhcnJheShhLGMpKTtmb3IoYz0iIixkPTA7IShkPj1iLzIpOysrZCl7dmFyIGU9SFthKzIqZD4+MV07aWYoZT09MClicmVhaztjKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGUpfXJldHVybiBjfSxrYj0oYSxiLGMpPT57aWYoYz8/PTIxNDc0ODM2NDcsMj5jKXJldHVybiAwO2MtPTI7dmFyIGQ9YjtjPWM8MiphLmxlbmd0aD9jLzI6YS5sZW5ndGg7Zm9yKHZhciBlPTA7ZTxjOysrZSlIW2I+PjFdPWEuY2hhckNvZGVBdChlKSxiKz0yO3JldHVybiBIW2I+PjFdPTAsYi1kfSxsYj1hPT4yKmEubGVuZ3RoLG1iPShhLGIpPT57Zm9yKHZhciBjPTAsZD0iIjshKGM+PWIvNCk7KXt2YXIgZT1KW2ErNCpjPj4yXTtpZihlPT0wKWJyZWFrOysrYyw2NTUzNjw9ZT8oZS09NjU1MzYsZCs9U3RyaW5nLmZyb21DaGFyQ29kZSg1NTI5NnxlPj4xMCw1NjMyMHxlJjEwMjMpKTpkKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGUpfXJldHVybiBkfSxuYj0oYSxiLGMpPT57aWYoYz8/PTIxNDc0ODM2NDcsND5jKXJldHVybiAwO3ZhciBkPWI7Yz1kK2MtNDtmb3IodmFyIGU9MDtlPGEubGVuZ3RoOysrZSl7dmFyIGg9YS5jaGFyQ29kZUF0KGUpO2lmKDU1Mjk2PD1oJiY1NzM0Mz49aCl7dmFyIGw9YS5jaGFyQ29kZUF0KCsrZSk7aD02NTUzNisoKGgmMTAyMyk8PDEwKXxsJjEwMjN9aWYoSltiPj4yXT1oLGIrPTQsYis0PmMpYnJlYWt9cmV0dXJuIEpbYj4+Ml09MCxiLWR9LG9iPWE9Pntmb3IodmFyIGI9MCxjPTA7YzxhLmxlbmd0aDsrK2Mpe3ZhciBkPWEuY2hhckNvZGVBdChjKTs1NTI5Njw9ZCYmNTczNDM+PWQmJisrYyxiKz00fXJldHVybiBifSxwYj1bXSxxYj1hPT57dmFyIGI9cGIubGVuZ3RoO3JldHVybiBwYi5wdXNoKGEpLGJ9LHJiPShhLGIpPT57dmFyIGM9UlthXTtpZihjPT09dm9pZCAwKXRocm93IGE9YCR7Yn0gaGFzIHVua25vd24gdHlwZSAke2RiKGEpfWAsbmV3IFQoYSk7cmV0dXJuIGN9LHNiPShhLGIpPT57Zm9yKHZhciBjPUFycmF5KGEpLGQ9MDtkPGE7KytkKWNbZF09cmIoTFtiKzQqZD4+Ml0sInBhcmFtZXRlciAiK2QpO3JldHVybiBjfSx0Yj0oYSxiLGMpPT57dmFyIGQ9W107cmV0dXJuIGE9YS50b1dpcmVUeXBlKGQsYyksZC5sZW5ndGgmJihMW2I+PjJdPUxhKGQpKSxhfSx1Yj1BcnJheSgyNTYpLHZiPTA7MjU2PnZiOysrdmIpdWJbdmJdPVN0cmluZy5mcm9tQ2hhckNvZGUodmIpO0RhPXViLFQ9Zi5CaW5kaW5nRXJyb3I9Y2xhc3MgZXh0ZW5kcyBFcnJvcntjb25zdHJ1Y3RvcihhKXtzdXBlcihhKSx0aGlzLm5hbWU9IkJpbmRpbmdFcnJvciJ9fSxGYT1mLkludGVybmFsRXJyb3I9Y2xhc3MgZXh0ZW5kcyBFcnJvcntjb25zdHJ1Y3RvcihhKXtzdXBlcihhKSx0aGlzLm5hbWU9IkludGVybmFsRXJyb3IifX0sVi5wdXNoKDAsMSx2b2lkIDAsMSxudWxsLDEsITAsMSwhMSwxKSxmLmNvdW50X2VtdmFsX2hhbmRsZXM9KCk9PlYubGVuZ3RoLzItNS1JYS5sZW5ndGgsYmI9Zi5VbmJvdW5kVHlwZUVycm9yPSgoYSxiKT0+e3ZhciBjPVcoYixmdW5jdGlvbihkKXt0aGlzLm5hbWU9Yix0aGlzLm1lc3NhZ2U9ZCxkPUVycm9yKGQpLnN0YWNrLGQhPT12b2lkIDAmJih0aGlzLnN0YWNrPXRoaXMudG9TdHJpbmcoKStgCmArZC5yZXBsYWNlKC9eRXJyb3IoOlteXG5dKik/XG4vLCIiKSl9KTtyZXR1cm4gYy5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShhLnByb3RvdHlwZSksYy5wcm90b3R5cGUuY29uc3RydWN0b3I9YyxjLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLm1lc3NhZ2U9PT12b2lkIDA/dGhpcy5uYW1lOmAke3RoaXMubmFtZX06ICR7dGhpcy5tZXNzYWdlfWB9LGN9KShFcnJvciwiVW5ib3VuZFR5cGVFcnJvciIpO3ZhciB4Yj17azooYSxiLGMpPT57dmFyIGQ9bmV3IEFhKGEpO3Rocm93IExbZC5DKzE2Pj4yXT0wLExbZC5DKzQ+PjJdPWIsTFtkLkMrOD4+Ml09YyxCYT1hLENhKyssQmF9LG86KCk9Pnt9LGk6KGEsYixjLGQpPT57Yj1QKGIpLFUoYSx7bmFtZTpiLGZyb21XaXJlVHlwZTpmdW5jdGlvbihlKXtyZXR1cm4hIWV9LHRvV2lyZVR5cGU6ZnVuY3Rpb24oZSxoKXtyZXR1cm4gaD9jOmR9LGFyZ1BhY2tBZHZhbmNlOjgscmVhZFZhbHVlRnJvbVBvaW50ZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuZnJvbVdpcmVUeXBlKEdbZV0pfSxCOm51bGx9KX0sczphPT5VKGEsTmEpLGg6KGEsYixjKT0+e2I9UChiKSxVKGEse25hbWU6Yixmcm9tV2lyZVR5cGU6ZD0+ZCx0b1dpcmVUeXBlOihkLGUpPT5lLGFyZ1BhY2tBZHZhbmNlOjgscmVhZFZhbHVlRnJvbVBvaW50ZXI6T2EoYixjKSxCOm51bGx9KX0sZDooYSxiLGMsZCxlLGgsbCk9Pnt2YXIgZz1VYShiLGMpO2E9UChhKSxhPWZiKGEpLGU9YWIoZCxlKSxUYShhLGZ1bmN0aW9uKCl7ZWIoYENhbm5vdCBjYWxsICR7YX0gZHVlIHRvIHVuYm91bmQgdHlwZXNgLGcpfSxiLTEpLEdhKGcsbT0+e3ZhciBrPVttWzBdLG51bGxdLmNvbmNhdChtLnNsaWNlKDEpKTttPWE7dmFyIG49YSxxPWUscD1rLmxlbmd0aDtpZigyPnApdGhyb3cgbmV3IFQoImFyZ1R5cGVzIGFycmF5IHNpemUgbWlzbWF0Y2ghIE11c3QgYXQgbGVhc3QgZ2V0IHJldHVybiB2YWx1ZSBhbmQgJ3RoaXMnIHR5cGVzISIpO3ZhciB4PWtbMV0hPT1udWxsJiYhMSxFPVFhKGspLHk9a1swXS5uYW1lIT09InZvaWQiO3E9W24sRWEscSxoLFBhLGtbMF0sa1sxXV07Zm9yKHZhciB3PTA7dzxwLTI7Kyt3KXEucHVzaChrW3crMl0pO2lmKCFFKWZvcih3PXg/MToyO3c8ay5sZW5ndGg7Kyt3KWtbd10uQiE9PW51bGwmJnEucHVzaChrW3ddLkIpO0U9UWEoayksdz1rLmxlbmd0aDt2YXIgej0iIixLPSIiO2ZvcihwPTA7cDx3LTI7KytwKXorPShwIT09MD8iLCAiOiIiKSsiYXJnIitwLEsrPShwIT09MD8iLCAiOiIiKSsiYXJnIitwKyJXaXJlZCI7ej1gCiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICgke3p9KSB7CiAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggIT09ICR7dy0yfSkgewogICAgICAgICAgdGhyb3dCaW5kaW5nRXJyb3IoJ2Z1bmN0aW9uICcgKyBodW1hbk5hbWUgKyAnIGNhbGxlZCB3aXRoICcgKyBhcmd1bWVudHMubGVuZ3RoICsgJyBhcmd1bWVudHMsIGV4cGVjdGVkICR7dy0yfScpOwogICAgICAgIH1gLEUmJih6Kz1gdmFyIGRlc3RydWN0b3JzID0gW107CmApO3ZhciBWYT1FPyJkZXN0cnVjdG9ycyI6Im51bGwiLHBhPSJodW1hbk5hbWUgdGhyb3dCaW5kaW5nRXJyb3IgaW52b2tlciBmbiBydW5EZXN0cnVjdG9ycyByZXRUeXBlIGNsYXNzUGFyYW0iLnNwbGl0KCIgIik7Zm9yKHgmJih6Kz0idmFyIHRoaXNXaXJlZCA9IGNsYXNzUGFyYW1bJ3RvV2lyZVR5cGUnXSgiK1ZhK2AsIHRoaXMpOwpgKSxwPTA7cDx3LTI7KytwKXorPSJ2YXIgYXJnIitwKyJXaXJlZCA9IGFyZ1R5cGUiK3ArIlsndG9XaXJlVHlwZSddKCIrVmErIiwgYXJnIitwK2ApOwpgLHBhLnB1c2goImFyZ1R5cGUiK3ApO2lmKHgmJihLPSJ0aGlzV2lyZWQiKygwPEsubGVuZ3RoPyIsICI6IiIpK0spLHorPSh5fHxsPyJ2YXIgcnYgPSAiOiIiKSsiaW52b2tlcihmbiIrKDA8Sy5sZW5ndGg/IiwgIjoiIikrSytgKTsKYCxFKXorPWBydW5EZXN0cnVjdG9ycyhkZXN0cnVjdG9ycyk7CmA7ZWxzZSBmb3IocD14PzE6MjtwPGsubGVuZ3RoOysrcCl4PXA9PT0xPyJ0aGlzV2lyZWQiOiJhcmciKyhwLTIpKyJXaXJlZCIsa1twXS5CIT09bnVsbCYmKHorPWAke3h9X2R0b3IoJHt4fSk7CmAscGEucHVzaChgJHt4fV9kdG9yYCkpO3kmJih6Kz1gdmFyIHJldCA9IHJldFR5cGVbJ2Zyb21XaXJlVHlwZSddKHJ2KTsKcmV0dXJuIHJldDsKYCk7bGV0W1dhLHpiXT1bcGEseitgfQpgXTtpZihXYS5wdXNoKHpiKSxrPVJhKFdhKSguLi5xKSxuPVcobixrKSxrPWItMSwhZi5oYXNPd25Qcm9wZXJ0eShtKSl0aHJvdyBuZXcgRmEoIlJlcGxhY2luZyBub25leGlzdGVudCBwdWJsaWMgc3ltYm9sIik7cmV0dXJuIGZbbV0uQSE9PXZvaWQgMCYmayE9PXZvaWQgMD9mW21dLkFba109bjooZlttXT1uLGZbbV0uRD1rKSxbXX0pfSxiOihhLGIsYyxkLGUpPT57aWYoYj1QKGIpLGU9PT0tMSYmKGU9NDI5NDk2NzI5NSksZT1nPT5nLGQ9PT0wKXt2YXIgaD0zMi04KmM7ZT1nPT5nPDxoPj4+aH12YXIgbD1iLmluY2x1ZGVzKCJ1bnNpZ25lZCIpP2Z1bmN0aW9uKGcsbSl7cmV0dXJuIG0+Pj4wfTpmdW5jdGlvbihnLG0pe3JldHVybiBtfTtVKGEse25hbWU6Yixmcm9tV2lyZVR5cGU6ZSx0b1dpcmVUeXBlOmwsYXJnUGFja0FkdmFuY2U6OCxyZWFkVmFsdWVGcm9tUG9pbnRlcjpnYihiLGMsZCE9PTApLEI6bnVsbH0pfSxhOihhLGIsYyk9PntmdW5jdGlvbiBkKGgpe3JldHVybiBuZXcgZShpYS5idWZmZXIsTFtoKzQ+PjJdLExbaD4+Ml0pfXZhciBlPVtJbnQ4QXJyYXksVWludDhBcnJheSxJbnQxNkFycmF5LFVpbnQxNkFycmF5LEludDMyQXJyYXksVWludDMyQXJyYXksRmxvYXQzMkFycmF5LEZsb2F0NjRBcnJheV1bYl07Yz1QKGMpLFUoYSx7bmFtZTpjLGZyb21XaXJlVHlwZTpkLGFyZ1BhY2tBZHZhbmNlOjgscmVhZFZhbHVlRnJvbVBvaW50ZXI6ZH0se0Y6ITB9KX0sZzooYSxiKT0+e2I9UChiKTt2YXIgYz1iPT09InN0ZDo6c3RyaW5nIjtVKGEse25hbWU6Yixmcm9tV2lyZVR5cGU6ZnVuY3Rpb24oZCl7dmFyIGU9TFtkPj4yXSxoPWQrNDtpZihjKWZvcih2YXIgbD1oLGc9MDtnPD1lOysrZyl7dmFyIG09aCtnO2lmKGc9PWV8fEdbbV09PTApe2lmKGwpe3ZhciBrPWwsbj1HLHE9aysobS1sKTtmb3IobD1rO25bbF0mJiEobD49cSk7KSsrbDtpZigxNjxsLWsmJm4uYnVmZmVyJiZoYilrPWhiLmRlY29kZShuLnN1YmFycmF5KGssbCkpO2Vsc2V7Zm9yKHE9IiI7azxsOyl7dmFyIHA9bltrKytdO2lmKHAmMTI4KXt2YXIgeD1uW2srK10mNjM7aWYoKHAmMjI0KT09MTkyKXErPVN0cmluZy5mcm9tQ2hhckNvZGUoKHAmMzEpPDw2fHgpO2Vsc2V7dmFyIEU9bltrKytdJjYzO3A9KHAmMjQwKT09MjI0PyhwJjE1KTw8MTJ8eDw8NnxFOihwJjcpPDwxOHx4PDwxMnxFPDw2fG5baysrXSY2Myw2NTUzNj5wP3ErPVN0cmluZy5mcm9tQ2hhckNvZGUocCk6KHAtPTY1NTM2LHErPVN0cmluZy5mcm9tQ2hhckNvZGUoNTUyOTZ8cD4+MTAsNTYzMjB8cCYxMDIzKSl9fWVsc2UgcSs9U3RyaW5nLmZyb21DaGFyQ29kZShwKX1rPXF9fWVsc2Ugaz0iIjtpZih5PT09dm9pZCAwKXZhciB5PWs7ZWxzZSB5Kz0iXDAiLHkrPWs7bD1tKzF9fWVsc2V7Zm9yKHk9QXJyYXkoZSksZz0wO2c8ZTsrK2cpeVtnXT1TdHJpbmcuZnJvbUNoYXJDb2RlKEdbaCtnXSk7eT15LmpvaW4oIiIpfXJldHVybiBZKGQpLHl9LHRvV2lyZVR5cGU6ZnVuY3Rpb24oZCxlKXtlIGluc3RhbmNlb2YgQXJyYXlCdWZmZXImJihlPW5ldyBVaW50OEFycmF5KGUpKTt2YXIgaCxsPXR5cGVvZiBlPT0ic3RyaW5nIjtpZighKGx8fGUgaW5zdGFuY2VvZiBVaW50OEFycmF5fHxlIGluc3RhbmNlb2YgVWludDhDbGFtcGVkQXJyYXl8fGUgaW5zdGFuY2VvZiBJbnQ4QXJyYXkpKXRocm93IG5ldyBUKCJDYW5ub3QgcGFzcyBub24tc3RyaW5nIHRvIHN0ZDo6c3RyaW5nIik7dmFyIGc7aWYoYyYmbClmb3IoaD1nPTA7aDxlLmxlbmd0aDsrK2gpe3ZhciBtPWUuY2hhckNvZGVBdChoKTsxMjc+PW0/ZysrOjIwNDc+PW0/Zys9Mjo1NTI5Njw9bSYmNTczNDM+PW0/KGcrPTQsKytoKTpnKz0zfWVsc2UgZz1lLmxlbmd0aDtpZihoPWcsZz13Yig0K2grMSksbT1nKzQsTFtnPj4yXT1oLGMmJmwpe2lmKGw9bSxtPWgrMSxoPUcsMDxtKXttPWwrbS0xO2Zvcih2YXIgaz0wO2s8ZS5sZW5ndGg7KytrKXt2YXIgbj1lLmNoYXJDb2RlQXQoayk7aWYoNTUyOTY8PW4mJjU3MzQzPj1uKXt2YXIgcT1lLmNoYXJDb2RlQXQoKytrKTtuPTY1NTM2KygobiYxMDIzKTw8MTApfHEmMTAyM31pZigxMjc+PW4pe2lmKGw+PW0pYnJlYWs7aFtsKytdPW59ZWxzZXtpZigyMDQ3Pj1uKXtpZihsKzE+PW0pYnJlYWs7aFtsKytdPTE5MnxuPj42fWVsc2V7aWYoNjU1MzU+PW4pe2lmKGwrMj49bSlicmVhaztoW2wrK109MjI0fG4+PjEyfWVsc2V7aWYobCszPj1tKWJyZWFrO2hbbCsrXT0yNDB8bj4+MTgsaFtsKytdPTEyOHxuPj4xMiY2M31oW2wrK109MTI4fG4+PjYmNjN9aFtsKytdPTEyOHxuJjYzfX1oW2xdPTB9fWVsc2UgaWYobClmb3IobD0wO2w8aDsrK2wpe2lmKGs9ZS5jaGFyQ29kZUF0KGwpLDI1NTxrKXRocm93IFkobSksbmV3IFQoIlN0cmluZyBoYXMgVVRGLTE2IGNvZGUgdW5pdHMgdGhhdCBkbyBub3QgZml0IGluIDggYml0cyIpO0dbbStsXT1rfWVsc2UgZm9yKGw9MDtsPGg7KytsKUdbbStsXT1lW2xdO3JldHVybiBkIT09bnVsbCYmZC5wdXNoKFksZyksZ30sYXJnUGFja0FkdmFuY2U6OCxyZWFkVmFsdWVGcm9tUG9pbnRlcjpNYSxCKGQpe1koZCl9fSl9LGU6KGEsYixjKT0+e2lmKGM9UChjKSxiPT09Mil2YXIgZD1qYixlPWtiLGg9bGIsbD1nPT5JW2c+PjFdO2Vsc2UgYj09PTQmJihkPW1iLGU9bmIsaD1vYixsPWc9PkxbZz4+Ml0pO1UoYSx7bmFtZTpjLGZyb21XaXJlVHlwZTpnPT57Zm9yKHZhciBtPUxbZz4+Ml0sayxuPWcrNCxxPTA7cTw9bTsrK3Epe3ZhciBwPWcrNCtxKmI7KHE9PW18fGwocCk9PTApJiYobj1kKG4scC1uKSxrPT09dm9pZCAwP2s9bjooays9IlwwIixrKz1uKSxuPXArYil9cmV0dXJuIFkoZyksa30sdG9XaXJlVHlwZTooZyxtKT0+e2lmKHR5cGVvZiBtIT0ic3RyaW5nIil0aHJvdyBuZXcgVChgQ2Fubm90IHBhc3Mgbm9uLXN0cmluZyB0byBDKysgc3RyaW5nIHR5cGUgJHtjfWApO3ZhciBrPWgobSksbj13Yig0K2srYik7cmV0dXJuIExbbj4+Ml09ay9iLGUobSxuKzQsaytiKSxnIT09bnVsbCYmZy5wdXNoKFksbiksbn0sYXJnUGFja0FkdmFuY2U6OCxyZWFkVmFsdWVGcm9tUG9pbnRlcjpNYSxCKGcpe1koZyl9fSl9LGo6KGEsYik9PntiPVAoYiksVShhLHtHOiEwLG5hbWU6YixhcmdQYWNrQWR2YW5jZTowLGZyb21XaXJlVHlwZTooKT0+e30sdG9XaXJlVHlwZTooKT0+e319KX0sbTooYSxiLGMsZCk9PihhPXBiW2FdLGI9S2EoYiksYShudWxsLGIsYyxkKSksYzpKYSxuOihhLGIsYyk9PntiPXNiKGEsYik7dmFyIGQ9Yi5zaGlmdCgpO2EtLTt2YXIgZT1gcmV0dXJuIGZ1bmN0aW9uIChvYmosIGZ1bmMsIGRlc3RydWN0b3JzUmVmLCBhcmdzKSB7CmAsaD0wLGw9W107Yz09PTAmJmwucHVzaCgib2JqIik7Zm9yKHZhciBnPVsicmV0VHlwZSJdLG09W2RdLGs9MDtrPGE7KytrKWwucHVzaCgiYXJnIitrKSxnLnB1c2goImFyZ1R5cGUiK2spLG0ucHVzaChiW2tdKSxlKz1gICB2YXIgYXJnJHtrfSA9IGFyZ1R5cGUke2t9LnJlYWRWYWx1ZUZyb21Qb2ludGVyKGFyZ3Mke2g/IisiK2g6IiJ9KTsKYCxoKz1iW2tdLmFyZ1BhY2tBZHZhbmNlO3JldHVybiBlKz1gICB2YXIgcnYgPSAke2M9PT0xPyJuZXcgZnVuYyI6ImZ1bmMuY2FsbCJ9KCR7bC5qb2luKCIsICIpfSk7CmAsZC5HfHwoZy5wdXNoKCJlbXZhbF9yZXR1cm5WYWx1ZSIpLG0ucHVzaCh0YiksZSs9YCAgcmV0dXJuIGVtdmFsX3JldHVyblZhbHVlKHJldFR5cGUsIGRlc3RydWN0b3JzUmVmLCBydik7CmApLGcucHVzaChlK2B9OwpgKSxhPVJhKGcpKC4uLm0pLGM9YG1ldGhvZENhbGxlcjwoJHtiLm1hcChuPT5uLm5hbWUpLmpvaW4oIiwgIil9KSA9PiAke2QubmFtZX0+YCxxYihXKGMsYSkpfSxmOmE9Pns5PGEmJihWW2ErMV0rPTEpfSxsOmE9Pnt2YXIgYj1LYShhKTtQYShiKSxKYShhKX0sdDooYSxiKT0+KGE9cmIoYSwiX2VtdmFsX3Rha2VfdmFsdWUiKSxhPWEucmVhZFZhbHVlRnJvbVBvaW50ZXIoYiksTGEoYSkpLHA6KCk9PntzYSgiIil9LHI6KGEsYixjKT0+Ry5jb3B5V2l0aGluKGEsYixiK2MpLHE6YT0+e3ZhciBiPUcubGVuZ3RoO2lmKGE+Pj49MCwyMTQ3NDgzNjQ4PGEpcmV0dXJuITE7Zm9yKHZhciBjPTE7ND49YztjKj0yKXt2YXIgZD1iKigxKy4yL2MpO2Q9TWF0aC5taW4oZCxhKzEwMDY2MzI5Nik7dmFyIGU9TWF0aDtkPU1hdGgubWF4KGEsZCk7YTp7ZT0oZS5taW4uY2FsbChlLDIxNDc0ODM2NDgsZCsoNjU1MzYtZCU2NTUzNiklNjU1MzYpLUYuYnVmZmVyLmJ5dGVMZW5ndGgrNjU1MzUpLzY1NTM2O3RyeXtGLmdyb3coZSksbGEoKTt2YXIgaD0xO2JyZWFrIGF9Y2F0Y2h7fWg9dm9pZCAwfWlmKGgpcmV0dXJuITB9cmV0dXJuITF9fSxaPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gYShjKXtyZXR1cm4gWj1jLmV4cG9ydHMsRj1aLnUsbGEoKSxYYT1aLncsbmEudW5zaGlmdChaLnYpLE0tLSxmLm1vbml0b3JSdW5EZXBlbmRlbmNpZXM/LihNKSxNPT0wJiYocmEhPT1udWxsJiYoY2xlYXJJbnRlcnZhbChyYSkscmE9bnVsbCksTiYmKGM9TixOPW51bGwsYygpKSksWn12YXIgYj17YTp4Yn07aWYoTSsrLGYubW9uaXRvclJ1bkRlcGVuZGVuY2llcz8uKE0pLGYuaW5zdGFudGlhdGVXYXNtKXRyeXtyZXR1cm4gZi5pbnN0YW50aWF0ZVdhc20oYixhKX1jYXRjaChjKXtDKGBNb2R1bGUuaW5zdGFudGlhdGVXYXNtIGNhbGxiYWNrIGZhaWxlZCB3aXRoIGVycm9yOiAke2N9YCkscihjKX1yZXR1cm4geWEoYixmdW5jdGlvbihjKXthKGMuaW5zdGFuY2UpfSkuY2F0Y2gocikse319KCksd2I9YT0+KHdiPVoueCkoYSksWT1hPT4oWT1aLnkpKGEpLGNiPWE9PihjYj1aLnopKGEpLHliO049ZnVuY3Rpb24gQWIoKXt5Ynx8QmIoKSx5Ynx8KE49QWIpfTtmdW5jdGlvbiBCYigpe2Z1bmN0aW9uIGEoKXtpZigheWImJih5Yj0hMCxmLmNhbGxlZFJ1bj0hMCwhaGEpKXtpZih6YShuYSksYWEoZiksZi5vblJ1bnRpbWVJbml0aWFsaXplZCYmZi5vblJ1bnRpbWVJbml0aWFsaXplZCgpLGYucG9zdFJ1bilmb3IodHlwZW9mIGYucG9zdFJ1bj09ImZ1bmN0aW9uIiYmKGYucG9zdFJ1bj1bZi5wb3N0UnVuXSk7Zi5wb3N0UnVuLmxlbmd0aDspe3ZhciBiPWYucG9zdFJ1bi5zaGlmdCgpO29hLnVuc2hpZnQoYil9emEob2EpfX1pZighKDA8TSkpe2lmKGYucHJlUnVuKWZvcih0eXBlb2YgZi5wcmVSdW49PSJmdW5jdGlvbiImJihmLnByZVJ1bj1bZi5wcmVSdW5dKTtmLnByZVJ1bi5sZW5ndGg7KXFhKCk7emEobWEpLDA8TXx8KGYuc2V0U3RhdHVzPyhmLnNldFN0YXR1cygiUnVubmluZy4uLiIpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Zi5zZXRTdGF0dXMoIiIpfSwxKSxhKCl9LDEpKTphKCkpfX1pZihmLnByZUluaXQpZm9yKHR5cGVvZiBmLnByZUluaXQ9PSJmdW5jdGlvbiImJihmLnByZUluaXQ9W2YucHJlSW5pdF0pOzA8Zi5wcmVJbml0Lmxlbmd0aDspZi5wcmVJbml0LnBvcCgpKCk7cmV0dXJuIEJiKCksbW9kdWxlQXJnLnJlYWR5fX0pKCksc2lsa193YXNtX2RlZmF1bHQ9TW9kdWxlO2Z1bmN0aW9uIGlzV2F2RmlsZShmaWxlRGF0YSl7dHJ5e2xldCBjaHVua3M9dW5wYWNrV2F2RmlsZUNodW5rcyhmaWxlRGF0YSksZm10PWRlY29kZUZvcm1hdENodW5rKGNodW5rcy5nZXQoImZtdCIpKSxkYXRhPWNodW5rcy5nZXQoImRhdGEiKTtyZXR1cm4gZ2V0V2F2RmlsZVR5cGUoZm10KSx2ZXJpZnlEYXRhQ2h1bmtMZW5ndGgoZGF0YSxmbXQpLCEwfWNhdGNoe3JldHVybiExfX12YXIgYXVkaW9FbmNvZGluZ05hbWVzPVsiaW50IiwiZmxvYXQiXSx3YXZGaWxlVHlwZUF1ZGlvRW5jb2RpbmdzPVswLDAsMCwxXTtmdW5jdGlvbiBkZWNvZGVXYXZGaWxlKGZpbGVEYXRhKXtsZXQgY2h1bmtzPXVucGFja1dhdkZpbGVDaHVua3MoZmlsZURhdGEpLGZtdD1kZWNvZGVGb3JtYXRDaHVuayhjaHVua3MuZ2V0KCJmbXQiKSksZGF0YT1jaHVua3MuZ2V0KCJkYXRhIiksd2F2RmlsZVR5cGU9Z2V0V2F2RmlsZVR5cGUoZm10KSxhdWRpb0VuY29kaW5nPXdhdkZpbGVUeXBlQXVkaW9FbmNvZGluZ3Nbd2F2RmlsZVR5cGVdLHdhdkZpbGVUeXBlTmFtZT1hdWRpb0VuY29kaW5nTmFtZXNbYXVkaW9FbmNvZGluZ10rZm10LmJpdHNQZXJTYW1wbGU7cmV0dXJuIHZlcmlmeURhdGFDaHVua0xlbmd0aChkYXRhLGZtdCkse2NoYW5uZWxEYXRhOmRlY29kZURhdGFDaHVuayhkYXRhLGZtdCx3YXZGaWxlVHlwZSksc2FtcGxlUmF0ZTpmbXQuc2FtcGxlUmF0ZSxudW1iZXJPZkNoYW5uZWxzOmZtdC5udW1iZXJPZkNoYW5uZWxzLGF1ZGlvRW5jb2RpbmcsYml0c1BlclNhbXBsZTpmbXQuYml0c1BlclNhbXBsZSx3YXZGaWxlVHlwZU5hbWV9fWZ1bmN0aW9uIHVucGFja1dhdkZpbGVDaHVua3MoZmlsZURhdGEpe2xldCBkYXRhVmlldztmaWxlRGF0YSBpbnN0YW5jZW9mIEFycmF5QnVmZmVyP2RhdGFWaWV3PW5ldyBEYXRhVmlldyhmaWxlRGF0YSk6ZGF0YVZpZXc9bmV3IERhdGFWaWV3KGZpbGVEYXRhLmJ1ZmZlcixmaWxlRGF0YS5ieXRlT2Zmc2V0LGZpbGVEYXRhLmJ5dGVMZW5ndGgpO2xldCBmaWxlTGVuZ3RoPWRhdGFWaWV3LmJ5dGVMZW5ndGg7aWYoZmlsZUxlbmd0aDwyMCl0aHJvdyBuZXcgRXJyb3IoIldBViBmaWxlIGlzIHRvbyBzaG9ydC4iKTtpZihnZXRTdHJpbmcoZGF0YVZpZXcsMCw0KSE9IlJJRkYiKXRocm93IG5ldyBFcnJvcigiTm90IGEgdmFsaWQgV0FWIGZpbGUgKG5vIFJJRkYgaGVhZGVyKS4iKTtsZXQgbWFpbkNodW5rTGVuZ3RoPWRhdGFWaWV3LmdldFVpbnQzMig0LCEwKTtpZig4K21haW5DaHVua0xlbmd0aCE9ZmlsZUxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoYE1haW4gY2h1bmsgbGVuZ3RoIG9mIFdBViBmaWxlICgkezgrbWFpbkNodW5rTGVuZ3RofSkgZG9lcyBub3QgbWF0Y2ggZmlsZSBzaXplICgke2ZpbGVMZW5ndGh9KS5gKTtpZihnZXRTdHJpbmcoZGF0YVZpZXcsOCw0KSE9IldBVkUiKXRocm93IG5ldyBFcnJvcigiUklGRiBmaWxlIGlzIG5vdCBhIFdBViBmaWxlLiIpO2xldCBjaHVua3M9bmV3IE1hcCxmaWxlT2Zmc2V0PTEyO2Zvcig7ZmlsZU9mZnNldDxmaWxlTGVuZ3RoOyl7aWYoZmlsZU9mZnNldCs4PmZpbGVMZW5ndGgpdGhyb3cgbmV3IEVycm9yKGBJbmNvbXBsZXRlIGNodW5rIHByZWZpeCBpbiBXQVYgZmlsZSBhdCBvZmZzZXQgJHtmaWxlT2Zmc2V0fS5gKTtsZXQgY2h1bmtJZD1nZXRTdHJpbmcoZGF0YVZpZXcsZmlsZU9mZnNldCw0KS50cmltKCksY2h1bmtMZW5ndGg9ZGF0YVZpZXcuZ2V0VWludDMyKGZpbGVPZmZzZXQrNCwhMCk7aWYoZmlsZU9mZnNldCs4K2NodW5rTGVuZ3RoPmZpbGVMZW5ndGgpdGhyb3cgbmV3IEVycm9yKGBJbmNvbXBsZXRlIGNodW5rIGRhdGEgaW4gV0FWIGZpbGUgYXQgb2Zmc2V0ICR7ZmlsZU9mZnNldH0uYCk7bGV0IGNodW5rRGF0YT1uZXcgRGF0YVZpZXcoZGF0YVZpZXcuYnVmZmVyLGRhdGFWaWV3LmJ5dGVPZmZzZXQrZmlsZU9mZnNldCs4LGNodW5rTGVuZ3RoKTtjaHVua3Muc2V0KGNodW5rSWQsY2h1bmtEYXRhKTtsZXQgcGFkTGVuZ3RoPWNodW5rTGVuZ3RoJTI7ZmlsZU9mZnNldCs9OCtjaHVua0xlbmd0aCtwYWRMZW5ndGh9cmV0dXJuIGNodW5rc31mdW5jdGlvbiBnZXRTdHJpbmcoZGF0YVZpZXcsb2Zmc2V0LGxlbmd0aCl7bGV0IGE9bmV3IFVpbnQ4QXJyYXkoZGF0YVZpZXcuYnVmZmVyLGRhdGFWaWV3LmJ5dGVPZmZzZXQrb2Zmc2V0LGxlbmd0aCk7cmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCxhKX1mdW5jdGlvbiBnZXRJbnQyNChkYXRhVmlldyxvZmZzZXQpe2xldCBiMD1kYXRhVmlldy5nZXRJbnQ4KG9mZnNldCsyKSo2NTUzNixiMTI9ZGF0YVZpZXcuZ2V0VWludDE2KG9mZnNldCwhMCk7cmV0dXJuIGIwK2IxMn1mdW5jdGlvbiBkZWNvZGVGb3JtYXRDaHVuayhkYXRhVmlldyl7aWYoIWRhdGFWaWV3KXRocm93IG5ldyBFcnJvcigiTm8gZm9ybWF0IGNodW5rIGZvdW5kIGluIFdBViBmaWxlLiIpO2lmKGRhdGFWaWV3LmJ5dGVMZW5ndGg8MTYpdGhyb3cgbmV3IEVycm9yKCJGb3JtYXQgY2h1bmsgb2YgV0FWIGZpbGUgaXMgdG9vIHNob3J0LiIpO2xldCBmbXQ9e307cmV0dXJuIGZtdC5mb3JtYXRDb2RlPWRhdGFWaWV3LmdldFVpbnQxNigwLCEwKSxmbXQubnVtYmVyT2ZDaGFubmVscz1kYXRhVmlldy5nZXRVaW50MTYoMiwhMCksZm10LnNhbXBsZVJhdGU9ZGF0YVZpZXcuZ2V0VWludDMyKDQsITApLGZtdC5ieXRlc1BlclNlYz1kYXRhVmlldy5nZXRVaW50MzIoOCwhMCksZm10LmJ5dGVzUGVyRnJhbWU9ZGF0YVZpZXcuZ2V0VWludDE2KDEyLCEwKSxmbXQuYml0c1BlclNhbXBsZT1kYXRhVmlldy5nZXRVaW50MTYoMTQsITApLGZtdH1mdW5jdGlvbiBnZXRXYXZGaWxlVHlwZShmbXQpe2lmKGZtdC5udW1iZXJPZkNoYW5uZWxzPDF8fGZtdC5udW1iZXJPZkNoYW5uZWxzPjk5OSl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgbnVtYmVyIG9mIGNoYW5uZWxzIGluIFdBViBmaWxlLiIpO2xldCBieXRlc1BlclNhbXBsZT1NYXRoLmNlaWwoZm10LmJpdHNQZXJTYW1wbGUvOCksZXhwZWN0ZWRCeXRlc1BlckZyYW1lPWZtdC5udW1iZXJPZkNoYW5uZWxzKmJ5dGVzUGVyU2FtcGxlO2lmKGZtdC5mb3JtYXRDb2RlPT0xJiZmbXQuYml0c1BlclNhbXBsZT49MSYmZm10LmJpdHNQZXJTYW1wbGU8PTgmJmZtdC5ieXRlc1BlckZyYW1lPT1leHBlY3RlZEJ5dGVzUGVyRnJhbWUpcmV0dXJuIDA7aWYoZm10LmZvcm1hdENvZGU9PTEmJmZtdC5iaXRzUGVyU2FtcGxlPj05JiZmbXQuYml0c1BlclNhbXBsZTw9MTYmJmZtdC5ieXRlc1BlckZyYW1lPT1leHBlY3RlZEJ5dGVzUGVyRnJhbWUpcmV0dXJuIDE7aWYoZm10LmZvcm1hdENvZGU9PTEmJmZtdC5iaXRzUGVyU2FtcGxlPj0xNyYmZm10LmJpdHNQZXJTYW1wbGU8PTI0JiZmbXQuYnl0ZXNQZXJGcmFtZT09ZXhwZWN0ZWRCeXRlc1BlckZyYW1lKXJldHVybiAyO2lmKGZtdC5mb3JtYXRDb2RlPT0zJiZmbXQuYml0c1BlclNhbXBsZT09MzImJmZtdC5ieXRlc1BlckZyYW1lPT1leHBlY3RlZEJ5dGVzUGVyRnJhbWUpcmV0dXJuIDM7dGhyb3cgbmV3IEVycm9yKGBVbnN1cHBvcnRlZCBXQVYgZmlsZSB0eXBlLCBmb3JtYXRDb2RlPSR7Zm10LmZvcm1hdENvZGV9LCBiaXRzUGVyU2FtcGxlPSR7Zm10LmJpdHNQZXJTYW1wbGV9LCBieXRlc1BlckZyYW1lPSR7Zm10LmJ5dGVzUGVyRnJhbWV9LCBudW1iZXJPZkNoYW5uZWxzPSR7Zm10Lm51bWJlck9mQ2hhbm5lbHN9LmApfWZ1bmN0aW9uIGRlY29kZURhdGFDaHVuayhkYXRhLGZtdCx3YXZGaWxlVHlwZSl7c3dpdGNoKHdhdkZpbGVUeXBlKXtjYXNlIDA6cmV0dXJuIGRlY29kZURhdGFDaHVua191aW50OChkYXRhLGZtdCk7Y2FzZSAxOnJldHVybiBkZWNvZGVEYXRhQ2h1bmtfaW50MTYoZGF0YSxmbXQpO2Nhc2UgMjpyZXR1cm4gZGVjb2RlRGF0YUNodW5rX2ludDI0KGRhdGEsZm10KTtjYXNlIDM6cmV0dXJuIGRlY29kZURhdGFDaHVua19mbG9hdDMyKGRhdGEsZm10KTtkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiTm8gZGVjb2Rlci4iKX19ZnVuY3Rpb24gZGVjb2RlRGF0YUNodW5rX2ludDE2KGRhdGEsZm10KXtsZXQgY2hhbm5lbERhdGE9YWxsb2NhdGVDaGFubmVsRGF0YUFycmF5cyhkYXRhLmJ5dGVMZW5ndGgsZm10KSxudW1iZXJPZkNoYW5uZWxzPWZtdC5udW1iZXJPZkNoYW5uZWxzLG51bWJlck9mRnJhbWVzPWNoYW5uZWxEYXRhWzBdLmxlbmd0aCxvZmZzPTA7Zm9yKGxldCBmcmFtZU5vPTA7ZnJhbWVObzxudW1iZXJPZkZyYW1lcztmcmFtZU5vKyspZm9yKGxldCBjaGFubmVsTm89MDtjaGFubmVsTm88bnVtYmVyT2ZDaGFubmVscztjaGFubmVsTm8rKyl7bGV0IHNhbXBsZVZhbHVlRmxvYXQ9ZGF0YS5nZXRJbnQxNihvZmZzLCEwKS8zMjc2ODtjaGFubmVsRGF0YVtjaGFubmVsTm9dW2ZyYW1lTm9dPXNhbXBsZVZhbHVlRmxvYXQsb2Zmcys9Mn1yZXR1cm4gY2hhbm5lbERhdGF9ZnVuY3Rpb24gZGVjb2RlRGF0YUNodW5rX3VpbnQ4KGRhdGEsZm10KXtsZXQgY2hhbm5lbERhdGE9YWxsb2NhdGVDaGFubmVsRGF0YUFycmF5cyhkYXRhLmJ5dGVMZW5ndGgsZm10KSxudW1iZXJPZkNoYW5uZWxzPWZtdC5udW1iZXJPZkNoYW5uZWxzLG51bWJlck9mRnJhbWVzPWNoYW5uZWxEYXRhWzBdLmxlbmd0aCxvZmZzPTA7Zm9yKGxldCBmcmFtZU5vPTA7ZnJhbWVObzxudW1iZXJPZkZyYW1lcztmcmFtZU5vKyspZm9yKGxldCBjaGFubmVsTm89MDtjaGFubmVsTm88bnVtYmVyT2ZDaGFubmVscztjaGFubmVsTm8rKyl7bGV0IHNhbXBsZVZhbHVlRmxvYXQ9KGRhdGEuZ2V0VWludDgob2ZmcyktMTI4KS8xMjg7Y2hhbm5lbERhdGFbY2hhbm5lbE5vXVtmcmFtZU5vXT1zYW1wbGVWYWx1ZUZsb2F0LG9mZnMrPTF9cmV0dXJuIGNoYW5uZWxEYXRhfWZ1bmN0aW9uIGRlY29kZURhdGFDaHVua19pbnQyNChkYXRhLGZtdCl7bGV0IGNoYW5uZWxEYXRhPWFsbG9jYXRlQ2hhbm5lbERhdGFBcnJheXMoZGF0YS5ieXRlTGVuZ3RoLGZtdCksbnVtYmVyT2ZDaGFubmVscz1mbXQubnVtYmVyT2ZDaGFubmVscyxudW1iZXJPZkZyYW1lcz1jaGFubmVsRGF0YVswXS5sZW5ndGgsb2Zmcz0wO2ZvcihsZXQgZnJhbWVObz0wO2ZyYW1lTm88bnVtYmVyT2ZGcmFtZXM7ZnJhbWVObysrKWZvcihsZXQgY2hhbm5lbE5vPTA7Y2hhbm5lbE5vPG51bWJlck9mQ2hhbm5lbHM7Y2hhbm5lbE5vKyspe2xldCBzYW1wbGVWYWx1ZUZsb2F0PWdldEludDI0KGRhdGEsb2ZmcykvODM4ODYwODtjaGFubmVsRGF0YVtjaGFubmVsTm9dW2ZyYW1lTm9dPXNhbXBsZVZhbHVlRmxvYXQsb2Zmcys9M31yZXR1cm4gY2hhbm5lbERhdGF9ZnVuY3Rpb24gZGVjb2RlRGF0YUNodW5rX2Zsb2F0MzIoZGF0YSxmbXQpe2xldCBjaGFubmVsRGF0YT1hbGxvY2F0ZUNoYW5uZWxEYXRhQXJyYXlzKGRhdGEuYnl0ZUxlbmd0aCxmbXQpLG51bWJlck9mQ2hhbm5lbHM9Zm10Lm51bWJlck9mQ2hhbm5lbHMsbnVtYmVyT2ZGcmFtZXM9Y2hhbm5lbERhdGFbMF0ubGVuZ3RoLG9mZnM9MDtmb3IobGV0IGZyYW1lTm89MDtmcmFtZU5vPG51bWJlck9mRnJhbWVzO2ZyYW1lTm8rKylmb3IobGV0IGNoYW5uZWxObz0wO2NoYW5uZWxObzxudW1iZXJPZkNoYW5uZWxzO2NoYW5uZWxObysrKXtsZXQgc2FtcGxlVmFsdWVGbG9hdD1kYXRhLmdldEZsb2F0MzIob2ZmcywhMCk7Y2hhbm5lbERhdGFbY2hhbm5lbE5vXVtmcmFtZU5vXT1zYW1wbGVWYWx1ZUZsb2F0LG9mZnMrPTR9cmV0dXJuIGNoYW5uZWxEYXRhfWZ1bmN0aW9uIGFsbG9jYXRlQ2hhbm5lbERhdGFBcnJheXMoZGF0YUxlbmd0aCxmbXQpe2xldCBudW1iZXJPZkZyYW1lcz1NYXRoLmZsb29yKGRhdGFMZW5ndGgvZm10LmJ5dGVzUGVyRnJhbWUpLGNoYW5uZWxEYXRhPW5ldyBBcnJheShmbXQubnVtYmVyT2ZDaGFubmVscyk7Zm9yKGxldCBjaGFubmVsTm89MDtjaGFubmVsTm88Zm10Lm51bWJlck9mQ2hhbm5lbHM7Y2hhbm5lbE5vKyspY2hhbm5lbERhdGFbY2hhbm5lbE5vXT1uZXcgRmxvYXQzMkFycmF5KG51bWJlck9mRnJhbWVzKTtyZXR1cm4gY2hhbm5lbERhdGF9ZnVuY3Rpb24gdmVyaWZ5RGF0YUNodW5rTGVuZ3RoKGRhdGEsZm10KXtpZighZGF0YSl0aHJvdyBuZXcgRXJyb3IoIk5vIGRhdGEgY2h1bmsgZm91bmQgaW4gV0FWIGZpbGUuIik7aWYoZGF0YS5ieXRlTGVuZ3RoJWZtdC5ieXRlc1BlckZyYW1lIT0wKXRocm93IG5ldyBFcnJvcigiV0FWIGZpbGUgZGF0YSBjaHVuayBsZW5ndGggaXMgbm90IGEgbXVsdGlwbGUgb2YgZnJhbWUgc2l6ZS4iKX1mdW5jdGlvbiBnZXRXYXZGaWxlSW5mbyhmaWxlRGF0YSl7bGV0IGNodW5rcz11bnBhY2tXYXZGaWxlQ2h1bmtzKGZpbGVEYXRhKSxjaHVua0luZm89Z2V0Q2h1bmtJbmZvKGNodW5rcyksZm10PWRlY29kZUZvcm1hdENodW5rKGNodW5rcy5nZXQoImZtdCIpKTtyZXR1cm57Y2h1bmtJbmZvLGZtdH19ZnVuY3Rpb24gZ2V0Q2h1bmtJbmZvKGNodW5rcyl7bGV0IGNodW5rSW5mbz1bXTtmb3IobGV0IGUgb2YgY2h1bmtzKXtsZXQgY2k9e307Y2kuY2h1bmtJZD1lWzBdLGNpLmRhdGFPZmZzZXQ9ZVsxXS5ieXRlT2Zmc2V0LGNpLmRhdGFMZW5ndGg9ZVsxXS5ieXRlTGVuZ3RoLGNodW5rSW5mby5wdXNoKGNpKX1yZXR1cm4gY2h1bmtJbmZvLnNvcnQoKGUxLGUyKT0+ZTEuZGF0YU9mZnNldC1lMi5kYXRhT2Zmc2V0KSxjaHVua0luZm99ZnVuY3Rpb24gY29uY2F0KGxpc3QsbGVuZ3RoKXtpZihsaXN0Lmxlbmd0aD09PTApcmV0dXJuIG5ldyBVaW50OEFycmF5O2lmKGxlbmd0aD09PXZvaWQgMCl7bGVuZ3RoPTA7Zm9yKGxldCBpPTA7aTxsaXN0Lmxlbmd0aDtpKyspbGlzdFtpXS5sZW5ndGgmJihsZW5ndGgrPWxpc3RbaV0ubGVuZ3RoKX1sZXQgYnVmZmVyPW5ldyBVaW50OEFycmF5KGxlbmd0aCkscG9zPTA7Zm9yKGxldCBpPTA7aTxsaXN0Lmxlbmd0aDtpKyspe2xldCBidWY9bGlzdFtpXTtwb3MrPV9jb3B5QWN0dWFsKGJ1ZixidWZmZXIscG9zLDAsYnVmLmxlbmd0aCl9cmV0dXJuIHBvczxsZW5ndGgmJmJ1ZmZlci5maWxsKDAscG9zLGxlbmd0aCksYnVmZmVyfWZ1bmN0aW9uIF9jb3B5QWN0dWFsKHNvdXJjZSx0YXJnZXQsdGFyZ2V0U3RhcnQsc291cmNlU3RhcnQsc291cmNlRW5kKXtzb3VyY2VFbmQtc291cmNlU3RhcnQ+dGFyZ2V0Lmxlbmd0aC10YXJnZXRTdGFydCYmKHNvdXJjZUVuZD1zb3VyY2VTdGFydCt0YXJnZXQubGVuZ3RoLXRhcmdldFN0YXJ0KTtsZXQgbmI9c291cmNlRW5kLXNvdXJjZVN0YXJ0LHNvdXJjZUxlbj1zb3VyY2UubGVuZ3RoLXNvdXJjZVN0YXJ0O3JldHVybiBuYj5zb3VyY2VMZW4mJihuYj1zb3VyY2VMZW4pLChzb3VyY2VTdGFydCE9PTB8fHNvdXJjZUVuZDxzb3VyY2UubGVuZ3RoKSYmKHNvdXJjZT1uZXcgVWludDhBcnJheShzb3VyY2UuYnVmZmVyLHNvdXJjZS5ieXRlT2Zmc2V0K3NvdXJjZVN0YXJ0LG5iKSksdGFyZ2V0LnNldChzb3VyY2UsdGFyZ2V0U3RhcnQpLG5ifWZ1bmN0aW9uIGVuc3VyZU1vbm9QY20oY2hhbm5lbERhdGEpe2xldHtsZW5ndGg6bnVtYmVyT2ZDaGFubmVsc309Y2hhbm5lbERhdGE7aWYobnVtYmVyT2ZDaGFubmVscz09PTEpcmV0dXJuIGNoYW5uZWxEYXRhWzBdO2xldCBtb25vRGF0YT1uZXcgRmxvYXQzMkFycmF5KGNoYW5uZWxEYXRhWzBdLmxlbmd0aCk7Zm9yKGxldCBpPTA7aTxtb25vRGF0YS5sZW5ndGg7aSsrKXtsZXQgc3VtPTA7Zm9yKGxldCBqPTA7ajxudW1iZXJPZkNoYW5uZWxzO2orKylzdW0rPWNoYW5uZWxEYXRhW2pdW2ldO21vbm9EYXRhW2ldPXN1bS9udW1iZXJPZkNoYW5uZWxzfXJldHVybiBtb25vRGF0YX1mdW5jdGlvbiBlbnN1cmVTMTZsZVBjbShpbnB1dCl7bGV0IG51bWJlck9mRnJhbWVzPWlucHV0Lmxlbmd0aCxieXRlc1BlclNhbXBsZT1NYXRoLmNlaWwoMTYvOCksZmlsZUxlbmd0aD1udW1iZXJPZkZyYW1lcypieXRlc1BlclNhbXBsZSxhcnJheUJ1ZmZlcj1uZXcgQXJyYXlCdWZmZXIoZmlsZUxlbmd0aCksaW50MTZBcnJheT1uZXcgSW50MTZBcnJheShhcnJheUJ1ZmZlcik7Zm9yKGxldCBvZmZzZXQ9MDtvZmZzZXQ8bnVtYmVyT2ZGcmFtZXM7b2Zmc2V0Kyspe2xldCBzYW1wbGVWYWx1ZUZsb2F0PWlucHV0W29mZnNldF0sc2FtcGxlVmFsdWVJbnQxNj1mbG9hdFRvU2lnbmVkSW50MTYoc2FtcGxlVmFsdWVGbG9hdCk7aW50MTZBcnJheVtvZmZzZXRdPXNhbXBsZVZhbHVlSW50MTZ9cmV0dXJuIGFycmF5QnVmZmVyfWZ1bmN0aW9uIGZsb2F0VG9TaWduZWRJbnQxNih2KXtyZXR1cm4gdio9MzI3Njgsdj1+fnYsdj4zMjc2Nz8zMjc2Nzp2fWFzeW5jIGZ1bmN0aW9uIGVuY29kZShpbnB1dCxzYW1wbGVSYXRlKXtsZXQgaW5zdGFuY2U9YXdhaXQgc2lsa193YXNtX2RlZmF1bHQoKSxidWZmZXI9QXJyYXlCdWZmZXIuaXNWaWV3KGlucHV0KT9pbnB1dC5idWZmZXI6aW5wdXQ7aWYoaXNXYXZGaWxlKGlucHV0KSl7bGV0e2NoYW5uZWxEYXRhLHNhbXBsZVJhdGU6d2F2U2FtcGxlUmF0ZX09ZGVjb2RlV2F2RmlsZShpbnB1dCk7c2FtcGxlUmF0ZXx8PXdhdlNhbXBsZVJhdGUsYnVmZmVyPWVuc3VyZVMxNmxlUGNtKGVuc3VyZU1vbm9QY20oY2hhbm5lbERhdGEpKX1sZXQgYXJyPVtdLG91dHB1dExlbmd0aD0wLHJldD1pbnN0YW5jZS5zaWxrX2VuY29kZShidWZmZXIsYnVmZmVyLmJ5dGVMZW5ndGgsc2FtcGxlUmF0ZSxjaHVuaz0+e291dHB1dExlbmd0aCs9Y2h1bmsubGVuZ3RoLGFyci5wdXNoKGNodW5rLnNsaWNlKCkpfSk7aWYocmV0PT09MCl0aHJvdyBuZXcgRXJyb3IoInNpbGsgZW5jb2RpbmcgZmFpbHVyZSIpO2xldCBsYXN0PWFyci5wb3AoKTtyZXR1cm4gbGFzdCYmKGFyci5wdXNoKGxhc3Quc2xpY2UoMCwtMSkpLG91dHB1dExlbmd0aC0tKSx7ZGF0YTpjb25jYXQoYXJyLG91dHB1dExlbmd0aCksZHVyYXRpb246cmV0fX1hc3luYyBmdW5jdGlvbiBkZWNvZGUoaW5wdXQsc2FtcGxlUmF0ZSl7bGV0IGluc3RhbmNlPWF3YWl0IHNpbGtfd2FzbV9kZWZhdWx0KCksYnVmZmVyPUFycmF5QnVmZmVyLmlzVmlldyhpbnB1dCk/aW5wdXQuYnVmZmVyOmlucHV0LGFycj1bXSxvdXRwdXRMZW5ndGg9MCxyZXQ9aW5zdGFuY2Uuc2lsa19kZWNvZGUoYnVmZmVyLGJ1ZmZlci5ieXRlTGVuZ3RoLHNhbXBsZVJhdGUsY2h1bms9PntvdXRwdXRMZW5ndGgrPWNodW5rLmxlbmd0aCxhcnIucHVzaChjaHVuay5zbGljZSgpKX0pO2lmKHJldD09PTApdGhyb3cgbmV3IEVycm9yKCJzaWxrIGRlY29kaW5nIGZhaWx1cmUiKTtyZXR1cm57ZGF0YTpjb25jYXQoYXJyLG91dHB1dExlbmd0aCksZHVyYXRpb246cmV0fX1mdW5jdGlvbiBnZXREdXJhdGlvbihzaWxrLGZyYW1lTXM9MjApe2xldCBidWZmZXI9QXJyYXlCdWZmZXIuaXNWaWV3KHNpbGspP3NpbGsuYnVmZmVyOnNpbGssb2Zmc2V0PXNpbGtbMF09PT0yPzEwOjksYmxvY2tzPTAsdmlldz1uZXcgRGF0YVZpZXcoYnVmZmVyKTtmb3IoO29mZnNldDx2aWV3LmJ5dGVMZW5ndGg7KXtsZXQgc2l6ZT12aWV3LmdldFVpbnQxNihvZmZzZXQsITApO2Jsb2Nrcys9MSxvZmZzZXQrPXNpemUrMn1yZXR1cm4gYmxvY2tzKmZyYW1lTXN9ZnVuY3Rpb24gaXNXYXYoZmlsZURhdGEpe3JldHVybiBpc1dhdkZpbGUoZmlsZURhdGEpfWZ1bmN0aW9uIGdldFdhdkZpbGVJbmZvMihmaWxlRGF0YSl7cmV0dXJuIGdldFdhdkZpbGVJbmZvKGZpbGVEYXRhKX1leHBvcnR7ZGVjb2RlLGVuY29kZSxnZXREdXJhdGlvbixnZXRXYXZGaWxlSW5mbzIgYXMgZ2V0V2F2RmlsZUluZm8saXNXYXZ9Owo=", import.meta.url)), Q = (p, G) => (p = ce(p) ? new URL(p) : u.normalize(p), l.readFileSync(p, G ? void 0 : "utf8")), o = (p) => (p = Q(p, !0), p.buffer || (p = new Uint8Array(p)), p), E = (p, G, b, L = !0) => {
- p = ce(p) ? new URL(p) : u.normalize(p), l.readFile(p, L ? void 0 : "utf8", (J, q) => {
- J ? b(J) : G(L ? q.buffer : q);
- });
- }, process.argv.slice(2);
- } else
- (n || I) && (I ? a = self.location.href : typeof document < "u" && document.currentScript && (a = document.currentScript.src), e && (a = e), a.startsWith("blob:") ? a = "" : a = a.substr(0, a.replace(/[?#].*/, "").lastIndexOf("/") + 1), Q = (y) => {
- var p = new XMLHttpRequest();
- return p.open("GET", y, !1), p.send(null), p.responseText;
- }, I && (o = (y) => {
- var p = new XMLHttpRequest();
- return p.open("GET", y, !1), p.responseType = "arraybuffer", p.send(null), new Uint8Array(p.response);
- }), E = (y, p, G) => {
- var b = new XMLHttpRequest();
- b.open("GET", y, !0), b.responseType = "arraybuffer", b.onload = () => {
- b.status == 200 || b.status == 0 && b.response ? p(b.response) : G();
- }, b.onerror = G, b.send(null);
- });
- A.print || console.log.bind(console);
- var C = A.printErr || console.error.bind(console);
- Object.assign(A, g), g = null;
- var s;
- A.wasmBinary && (s = A.wasmBinary);
- var f, h = !1, x, d, m, H, v, N, M, Z;
- function V() {
- var y = f.buffer;
- A.HEAP8 = x = new Int8Array(y), A.HEAP16 = m = new Int16Array(y), A.HEAPU8 = d = new Uint8Array(y), A.HEAPU16 = H = new Uint16Array(y), A.HEAP32 = v = new Int32Array(y), A.HEAPU32 = N = new Uint32Array(y), A.HEAPF32 = M = new Float32Array(y), A.HEAPF64 = Z = new Float64Array(y);
- }
- var EA = [], _ = [], gA = [];
- function cA() {
- var y = A.preRun.shift();
- EA.unshift(y);
- }
- var sA = 0, LA = null;
- function _A(y) {
- var p;
- throw (p = A.onAbort) == null || p.call(A, y), y = "Aborted(" + y + ")", C(y), h = !0, y = new WebAssembly.RuntimeError(y + ". Build with -sASSERTIONS for more info."), B(y), y;
- }
- var pe = (y) => y.startsWith("data:application/octet-stream;base64,"), ce = (y) => y.startsWith("file://"), yA;
- if (A.locateFile) {
- if (yA = "silk_wasm.wasm", !pe(yA)) {
- var MA = yA;
- yA = A.locateFile ? A.locateFile(MA, a) : a + MA;
- }
- } else
- yA = new URL("data:application/wasm;base64,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DQALIBhBEHVBiq5/bCAYQf//A3FB9tEAbEEQdmtBgBBqEB4hBEHREBAeIQACfyAAQYAIEB4iBcEiBiALKAKIswEiA0H//wNxbEEQdSADQRB1IAZsaiAFQQ91QQFqQQF1IANsaiIDaiIFQQBOBEBBgICAgHggBSAAIANxQQBIGwwBC0H/////ByAFIAAgA3JBAE4bCyEDIA1B/////wcgBMEiACANKAKEASIFQRB1bCAFIARBD3VBAWpBAXUiBGxqIAVB//8DcSAAbEEQdWoiBSAFQf////8HTxs2AoQBIA1B/////wcgDSgCiAEiBUEQdSAAbCAEIAVsaiAFQf//A3EgAGxBEHVqIgUgBUH/////B08bNgKIASANQf////8HIA0oAowBIgVBEHUgAGwgBCAFbGogBUH//wNxIABsQRB1aiIFIAVB/////wdPGzYCjAEgDUH/////B0H/////ByANKAKAASIFQRB1IABsIAQgBWxqIAVB//8DcSAAbEEQdWoiACAAQf////8HTxsgA2oiACAAQQBIGyIANgKAASALAn8gCygClLMBQRB0QRF1QQFqQQF1IgQgACALKAKIswEiAGsiBUH//wNxbEEQdSAEIAVBEHVsaiIEIABqIgVBAE4EQEGAgICAeCAFIAAgBHFBAEgbDAELQf////8HIAUgACAEckEAThsLNgKIswEgDUH/////ByANKAKEASADaiIAIABBAEgbIgA2AoQBIAsCfyALKAKUswFBEHRBEXVBAWpBAXUiBCAAIAsoAoizASIAayIFQf//A3FsQRB1IAQgBUEQdWxqIgQgAGoiBUEASARAQf////8HIAUgACAEckEAThsMAQtBgICAgHggBSAAIARxQQBIGws2AoizASANQf////8HIA0oAogBIANqIgAgAEEASBsiADYCiAEgCwJ/IAsoApSzAUEQdEERdUEBakEBdSIEIAAgCygCiLMBIgBrIgVB//8DcWxBEHUgBCAFQRB1bGoiBCAAaiIFQQBIBEBB/////wcgBSAAIARyQQBOGwwBC0GAgICAeCAFIAAgBHFBAEgbCzYCiLMBIA1B/////wcgDSgCjAEgA2oiACAAQQBIGyIANgKMASALAn8gCygClLMBQRB0IgNBEXVBAWpBAXUiBCAAIAsoAoizASIAayIFQf//A3FsQRB1IAQgBUEQ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KAIAIgYgCkHcqwFqKAIAIgcgBSAKQcyxAWooAgAiChAdIAMoAgwhCSAaIAAgFSAUIAYgByAFIAoQHSADKAIMIR8gGCAAIA8gFiAGIAcgBSAKEB0gAygCDCEZIBMgACAMIA4gBiAHIAUgChAdIARB/v///wdB/v///wcgAygCDEH/////ByAZQf////8HIB9B/////wcgCSAJQQBIG2oiACAAQQBIG2oiACAAQQBIG2oiACAAQf7///8HThsgAEEASBsiAEoEQCANIAMpAxA3AgwgDSADKQMYNwIUIA0gETYCCCAAIQQLIAAgEEgNAiARQQJJIUogEUEBaiERIEoNAAsMAQsgA0EQaiIEIANBDGoiACAIIBdBwLEBKAIAIgZB3KsBKAIAIgcgBUHMsQEoAgAiChAdIAMoAgwhCSAEQQRyIhAgACAIQQpqIg4gF0HkAGoiDCAGIAcgBSAKEB0gAygCDCERIARBCHIiFiAAIAhBFGoiDyAXQcgBaiIUIAYgByAFIAoQHSADKAIMIRogBEEMciIVIAAgCEEeaiITIBdBrAJqIhggBiAHIAUgChAdIAMoAgwhHyANIAMpAxg3AhQgDSADKQMQNwIMIA1BADYCCCAEIAAgCCAXQcSxASgCACIEQeCrASgCACIGIAVB0LEBKAIAIgcQHSADKAIMIQogECAAIA4gDCAEIAYgBSAHEB0gAygCDCEZIBYgACAPIBQgBCAGIAUgBxAdIAMoAgwhHiAVIAAgEyAYIAQgBiAFIAcQHUH+////B0H+////ByAfQf////8HIBpB/////wcgEUH/////ByAJIAlBAEgbaiIAIABBAEgbaiIAIABBAEgbaiIAIABB/v///wdOGyAAQQBIGyERAkAgAygCDEH/////ByAeQf////8HIBlB/////wcgCiAKQQBIG2oiACAAQQBIG2oiACAAQQBIG2oiAEEASA0AIAAgEU4NACANIAMpAxA3AgwgDSADKQMYNwIUIA1BATYCCEH+////ByAAIABB/v///wdOGyERCyADQRBqIANBDGoiACAIIBdByLEBKAIAIgRB5KsBKAIAIgYgBUHUsQEoAgAiBxAdIAMoAgwhCiAQIAAgDiAMIAQgBiAFIAcQHSADKAIMIQkgFiAAIA8gFCAEIAYgBSAHEB0gAygCDCEQIBUgACATIBggBCAGIAUg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AtSQAQwBCyALQoCAgIAQNwLckAEgC0EANgLUkAELIAsoAux+RQRAIAtCgAg3AgAgC0EANgIQIAtCgICAgPD/PzcCCCALQQA2AvB+CyALIBtBkCdqIAsgC0GMkQFqEEggMCAwIAsoAtB2IgBBAXRqIAsoAsh2QQVsIABqQQF0EDYgCyAbKAL4JzYCrHYgGygCiCghAEEAIQMgC0EANgKcdyALIAA2ArR2IAsoAhBFBEAgCygC7H5BAWohAwsgCyADNgLsfgJAIAsoAuh2IANBFGxMBEAgC0EDIAtBgP8AaiIAIAsoApCPASIEQX9zQQFxIgZBiAhsaigChAgiB0EBRkEBdCAAIARBiAhsaigChAhBAkYiBRtB4JoBEBUgCyAbQYwnahAnGgJAIBsoAownIAIuAQBMBEAgCxBJIAEgC0EUaiAbKAKMJyIDEBQhCAJAIAVFIAdBAUdxDQAgAi4BACAAIAQgBiAFG0GICGxqIgEoAoAIIgQgA2pIDQAgAyAIaiABIAQQFBogASgCgAggA2ohAwsgAiADOwEAIAAgCygCkI8BQYgIbGogG0EQaiAbLgEOIgEQFBogACALKAKQjwEiAkGICGxqIgAgATYCgAggACAbKAKMKDYChAggCyACQX9zQQFxNgKQjwEMAQtBACEDIAJBADsBAEF8ITMLIAtBADYC7H4MAQsgAkEAOwEAIAtBAUHgmgEQFSALIBtBjCdqECcaIBsoAownIQMLIAsoAvB+IQAgCyADNgLwfiALQeQAIAsoApCzASADIABrQcA+bCALKALkdm1qIgBBFGtBACAAQRROGyAAQfgAShs2ApCzASALKAIQIQAgCygClLMBQbQBTgRAIAtB/////wcgCygCgJEBIgFBFGogAUFrTBs2AoCRAQsgG0GwLGokAEF3IDMgABsLmBMBFH8gASgCBCEIAkAgA0EATA0AIAgoAgQgAigCACADbEEBdGohCSADQQRPBEAgA0H8////B3EhCgNAIAAgBEECdGogCSAEQQF0ai4BADYCACAAIARBAXIiC0ECdGogCSALQQF0ai4BADYCACAAIARBAnIiC0ECdGogCSALQQF0ai4BADYCACAAIARBA3IiC0ECdGogCSALQQF0ai4BADYCACAEQQRqIQQgBkEEaiIGIApHDQALCyADQQNxIgZFDQADQCAAIARBAnRq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C/AGdW5zaWduZWQgc2hvcnQAdW5zaWduZWQgaW50AGZsb2F0AHVpbnQ2NF90AHVuc2lnbmVkIGNoYXIAc3RkOjpleGNlcHRpb24AYm9vbAB1bnNpZ25lZCBsb25nAHN0ZDo6d3N0cmluZwBiYXNpY19zdHJpbmcAc3RkOjpzdHJpbmcAc3RkOjp1MTZzdHJpbmcAc3RkOjp1MzJzdHJpbmcAZG91YmxlAHNpbGtfZW5jb2RlAHNpbGtfZGVjb2RlAHZvaWQAZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8c2hvcnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIHNob3J0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIGludD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8ZmxvYXQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDhfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDE2X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDE2X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQ2NF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ2NF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8Y2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgY2hhcj4Ac3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgY2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8c2lnbmVkIGNoYXI+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGxvbmc+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIGxvbmc+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGRvdWJsZT4AAiMhU0lMS19WMwBBgA8LxQHgcAAA1AcAAOBw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9hYmLAGg9h4lJgHK9ickIQH19jEjGwEh9zsiFQFN90chDwF691MgCQGn92AfAwHV928e/AAD+H4d9gAy+I8c7wBh+KAb6ACQ+LMa4gDA+McZ2wDx+NwY1AAi+fMXzABT+QsXxQCE+SQWvgC1+T8VtwDn+VwUrwAZ+noTqABM+pkSoAB++roRmACx+t0QkQDj+gIQiQAW+ygPgQBJ+1AOeQB8+3oNcQCv+6YMaQDi+9QLYQAV/AQLWQBI/DYKUQB7/GkJSQCt/J8ITy9MJisgvBtfGL0VnhPfEWoQLQ8cDi8NXwyoCwQLcgruCXYJCQmmCEsI9gepB2EHHgfgBqYGAEGypQELFwIA////////AAAAAAEAAQAAAAEAAAABAEHUpQELAQEAQeClAQsJAQAAAAAAAAABAEH0pQELeP//AgABAAAAAQABAAAAAAD/////AAAAAAAAAAD3//n/+v/7//v//P/8//3//f/+//7//v////////8AAAAAAAABAAEAAAABAAIAAgACAAMAAwAEAAQABQAGAAUABgAIAP3//v/+//7//////////////wAAAAD//wBB+KYBC0EBAAAAAAAAAAEAAQAAAAEAAQACAAEAAgACAAIAAgADAAMAAwACAAIAAgACAAEAAgABAAEAAAABAAEAAAAAAAAAAQBBxqcBC58B//8AAAAA//////////////7//v/+/wkACAAGAAUABgAFAAQABAADAAMAAgACAAIAAQAAAAEAAQAAAAAAAAD////////+//7//v/9//3//P/8//v/+//6//n//v8GAP//BQD//wUA/v8HAPz/CAD//wYA//8GAPz/CQD3/wwA/f8HAP7/BwD5/w0AEAAYACIACQAFAAAAAAAAUlSf//8BAEHyqAELFOTAv9Su3EXkxerz8An2Qvo3/f//AEGSqQELkAHKYr53fovCnbmnwrBjuQPBlMjuzvXUqNpP4PHlfevj8K/1U/nU/P//AAAAAAAAAABeE98kDTXmRJNUt2F5bU92ln4ahpCN8pRum0GhDKfFrGyy6bcvvQvCocbcyubOxdKY1j3a1d1s4YjkleeL6nztZvAK85f1+/dM+kf8Jv7//wAAAQAAAAMAAAAKAAAAAisAQbCqAQsUGgDsAEEBRQFTAVgBagF7AZwBogEAQdCqAQuWAVgA5wDtAPQALAE1ATkBRAFFAVUBWgFfAWABYAFiAWQBbwGJAYwBlgEAAAAAAAAAAO4A+AD/AAEBAgESARwBNwE9AUYBRgFHAVMBXQFeAV8BYAFjAWYBbgFzAXsBfwGDAYQBiQGKAYoBlwGZAZwBnAGdAaYBqgGwAbIBwQHGAccBcFQAAJBUAADAVAAAMFUAAFBVAACAVQBB8KsBC2RSAtgDGAv9A50CCgAjADAB//8XAEr9gwf7EZ8LHwmFCWgMwg6UB+EB1gDS/74eNhH3/YD80hI1IVcGifxI/WoMUBnS/jkEBQJXAuoDNwIwAuX3vvxoEqz+gAObBXz9mQ+c/fH3AEHgrAEL9QR3BmYLiRPCC+8GcQDGAFgDsACyALX8rwmyHvsUPgI7AOwU4B0iC8X+AA/zEn8ZLwYv+1QG4AYaCVQH/Qff/T4HEC4LBs3+pP2xAvkU0hOpEAkCzfplJkEYRfvd+lsaySZ++iICdQBw//oKcQZ4FBAVlA15Cdr/eQIOAD/+mhTbDVX/nv+LAZojjAZMA3T8Aw+dIkP8wgWMAVsaAxW3/vUEsf4OC7kQDgHK/94F6RX+Ip0XCwiO/t8BkxReFpYEdRSI+24ZxwEAAgAAAAAAAAAA6v6fAYEkwhtR/hL8Fw80JXQSmfxG/BASyi3NA9T+i/+aG4sgpwd7/FECVA22FzITHwY2AM3/SjGEELT8VQzWEm0UCQnNAgz/iQR2NwsDRQA+++MVXjID9+kDfP94DzYlQQIOB5/5byL0KGz2fwPrAMIB2wSbArUBvwO69ZEqRCLE+HQJ/ge9IksR3/kXALMbpCD7+uQFk/tDA+4dmxfwCrcBhwEIK80IUgUE/DwLfDSvDzT0JAR+9cg0vRWO+nT6Rx+dLGj/ePmD/E8LSjwu+p8A4vusAbAvWiHw8uwG6PqpHSkYMQINAkn7AxqPK277twFrCocSNwmLFYcLCB3lHhr/5Pm4/1wIZRVvBSwG3AHg+ig+fgj9+2kWuQG9CfsHxQrkANX/CwcHGpgb9BHeI30HOP/LAED9By9LFVz7HgL2BvD7XidZHTH1vvVDHjsjPgCuBusAF/+KC6kqmwdmKv4K0ASR/94A2wjaCiUwnACG+Xr0nx/KPwwB1vFDACMIDh+w/4D2BgK+/7YGnwGrLPBVAABgVgAAMFcAAAoAAAAUAAAAKABB4LEBCxSZeWZmAEAzM2YmmhkzE8wMPQqaCQBBgbIBC5AEIAAA/h8AAPYfAADqHwAA2B8AAMIfAACoHwAAiB8AAGIfAAA6HwAACh8AANgeAACgHgAAYh4AACIeAADcHQAAkB0AAEIdAADuHAAAlhwAADocAADYGwAAchsAAAobAACcGgAAKhoAALQZAAA6GQAAvBgAADwYAAC2FwAALhcAAKAWAAAQFgAAfhUAAOgUAABOFAAAsBMAABATAABuEgAAyBEAAB4RAAB0EAAAxg8AABYPAABkDgAArg0AAPgMAABADAAAhAsAAMgKAAAKCgAASgkAAIoIAADGBwAAAgcAAD4GAAB4BQAAsgQAAOoDAAAiAwAAWgIAAJIBAADKAAAAAAAAADb///9u/v//pv3//978//8W/P//Tvv//4j6///C+f///vj//zr4//929///tvb///b1//849f//fPT//8Dz//8I8///UvL//5zx///q8P//OvD//4zv///i7v//OO7//5Lt///w7P//UOz//7Lr//8Y6///gur///Dp//9g6f//0uj//0ro///E5///ROf//8bm//9M5v//1uX//2Tl///25P//juT//yjk///G4///auP//xLj//++4v//cOL//yTi///e4f//nuH//2Dh//8o4f//9uD//8bg//+e4P//eOD//1jg//8+4P//KOD//xbg//8K4P//AuD//wDg//8AAJKSRqC0rP//AAACAEGitgELJlbhLu+W8///AACqR4Oci6r//wAApljXXrOK//8AALMXLxzSMv//AEHStgELgwISAC0AXgC1AEABBwIJA0UEvAV1B3EJtQtJDjQRfRQpGDwcwCDAJT0rNDGkN5Y+EUYLTmlWGV8WaF1x3nqHhFaORphCoiSsxLUIv9jHEdCQ10jeNuRb6brtYfFo9Or2+vil+vj7Af3Q/W3+4f4y/2r/kP+r/7//z//d/+n/9P///wAA1gBFAu0ESAlQD24W0B3pJJUr7DEQOBk+E0QFSu5PxVWGWzlh5maEbAdyb3fQfEGCy4dojQqTq5hHnsqjG6k6rj2zMrgSvdPBdcb3yk3Pb9Nk10DbDd/I4mPm0+kU7Rzw4fJc9Yj3Zfny+jP8Mv3//aD+Gv9v/6f/yv/h//H///8gAEHiuAEL4wI2CRAPbxsQPELP/+Zz8ED1CvjN+Qn73vuH/A/9fv3a/Rz+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AbYAkgCQAKYAzwAFAUIBhAHCAQQCRgJ9AsYC+gI1A0ADgAObA94CxAEvAdgAqgCZAJ4AtgDcABIBUQGWAekBQwKpAoADKwOAA8ADmwMABH0AkwCqAMoA6AAJAScBTAFwAZYBuwHjAQgCMwJeAoYCwALjAvUC4wEdAegAyAC+AMEAzgDgAPQACgEhATsBVAFvAYoBqQHOAfABGwIxAl4BYwKsAT8B8gDKALIArAC0AMcA5QAMATkBbAGmAeIBGgJbAqsC4wJKAvUBwgFsATQBCAHnANQAzADMANIA3gDxAAkBJwFGAWoBkQG1AdUBQQEAQaLQAQtS1QetMTlPYHqKjfiymeGA9v//AABpIcFbv4zXtA/Rx9wP57n6//8EAAAAAAAAAEIBpwDHAKQA7wCyAJ0A5wAwAbwAiQCZAKsAzAAdASkB7QBmAQBBgtEBC0Dsf///AAAhJabb//8AAP0PzH0Y8f//AADtCE8/br7A9///AACtBuYkGn3I2YT5//8AAFcGShtVVUWxC+e6+v//AEHS0QELZrN///8AAO4xEM7//wAA7xKZf+Pt//8AAMQJmUN1u4n3//8AADMHWSijfonYFfv//wAAzQWWG9lTlqnH5m/8//8AAAAA6RLNOTd8A8J97/////8AAAAAAABgH79UdqD92////////wBBwtIBC64BZ3///wAAbzjgxv//AACdGEt/4ef//wAA3gvQSNm2hPX//wAA0gYcKf1+6dcW+///AADSBNgYC1PAqgPpJf3//wAA/ANtEc42Hn4xyNDxTP7//wAAUwNrDRYnyVpdn5TYIfbk/v//AAAAABsI4RvfQgt7hrdj5ej5/////wAAAAAAAOwONC3+WZ2TAcs77////////wAAAAAAAAAA4hq8Qex2LK8V4P//////////AEH60wELwgJtJ7NZe5ea1P////////////8AAAAAAABEfv//AADgO2HB//8AADIdWH5j4v//AABoD/pLNLGx8f//AAAiCbIts36b0vb4//8AAOIFohsSVdyn7eVO/P//AAADBIoRLzgIfiTHEPET/v//AAD4As4L4CXgWvmhddsV9+P+//8AAEMC0AjZGhVBz3x6vAvoxvpQ////AADQAfcGPRTtL7dexZvy0D7wT/yC////AABuATQFKA85JJlIDn1os1PdmPSD/cv///8AAB4BKQQRDDkbRDcbYYKVG8bG5tj3Q/7J////AAAAAOIB2ge2FKgoLErqd3Kq2dOc7Xf6CP//////AAAAAAAA7gPLDbEe8DnfX7CNu7kz3nfz6vz///////8AAAAAAAAAAEcHVhPqKVRL1XKmoW/Ma+la+f//////////AEHG1gELGtEJehyXONNe8ImgtCHaN/L/////////////AEHs1gELGhYOZSVMSftvHJ1ayBTq////////////////AEGU1wELQQ8TIzNQW92M88Cz5///////////////////AAAAAAAAAwAHAAwAEgAZACEAKgA0AD8ASwBYAGYAdQCFAJYAqAC7AEHg1wELhg3Qk1CQm43oiZuHr4rhhviF4IQrupGvB6YrnamWPp3bk3uR846SqVmsd6gSoL2X8Z1slaOTHY8X507ZXsrJu+yvIL1Rq7amuqC8NAAAjDwAAFxEAAAAAAAALEwAAPxMAADyTAAA6EwAAN5MAADeTAAAAE0AAPZMAADsTAAA4kwAAOJMAAC4fpp5mnlmZrh+M3NOU3QzX18yMTJiYXNpY19zdHJpbmdJaE5TXzExY2hhcl90cmFpdHNJaEVFTlNfOWFsbG9jYXRvckloRUVFRQAARHEAAHBsAABOU3QzX18yMTJiYXNpY19zdHJpbmdJd05TXzExY2hhcl90cmFpdHNJd0VFTlNfOWFsbG9jYXRvckl3RUVFRQAARHEAALhsAABOU3QzX18yMTJiYXNpY19zdHJpbmdJRHNOU18xMWNoYXJfdHJhaXRzSURzRUVOU185YWxsb2NhdG9ySURzRUVFRQAAAERxAAAAbQAATlN0M19fMjEyYmFzaWNfc3RyaW5nSURpTlNfMTFjaGFyX3RyYWl0c0lEaUVFTlNfOWFsbG9jYXRvcklEaUVFRUUAAABEcQAATG0AAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWNFRQAARHEAAJhtAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lhRUUAAERxAADAbQAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJc0VFAABEcQAA6G0AAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SXRFRQAARHEAABBuAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lpRUUAAERxAAA4bgAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJakVFAABEcQAAYG4AAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWxFRQAARHEAAIhuAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0ltRUUAAERxAACwbgAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJeEVFAABEcQAA2G4AAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SXlFRQAARHEAAABvAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lmRUUAAERxAAAobwAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJZEVFAABEcQAAUG8AAE4xMF9fY3h4YWJpdjExNl9fc2hpbV90eXBlX2luZm9FAAAAAGxxAAB4bwAAYHIAAE4xMF9fY3h4YWJpdjExN19fY2xhc3NfdHlwZV9pbmZvRQAAAGxxAACobwAAnG8AAE4xMF9fY3h4YWJpdjExN19fcGJhc2VfdHlwZV9pbmZvRQAAAGxxAADYbwAAnG8AAE4xMF9fY3h4YWJpdjExOV9fcG9pbnRlcl90eXBlX2luZm9FAGxxAAAIcAAA/G8AAAAAAAB8cAAAEQAAABIAAAATAAAAFAAAABUAAABOMTBfX2N4eGFiaXYxMjNfX2Z1bmRhbWVudGFsX3R5cGVfaW5mb0UAbHEAAFRwAACcbwAAdgAAAEBwAACIcAAAYgAAAEBwAACUcAAAYwAAAEBwAACgcAAAaAAAAEBwAACscAAAYQAAAEBwAAC4cAAAcwAAAEBwAADEcAAAdAAAAEBwAADQcAAAaQAAAEBwAADccAAAagAAAEBwAADocAAAbAAAAEBwAAD0cAAAbQAAAEBwAAAAcQAAeAAAAEBwAAAMcQAAeQAAAEBwAAAYcQAAZgAAAEBwAAAkcQAAZAAAAEBwAAAwcQAAAAAAAMxvAAARAAAAFgAAABMAAAAUAAAAFwAAABgAAAAZAAAAGgAAAAAAAAC0cQAAEQAAABsAAAATAAAAFAAAABcAAAAcAAAAHQAAAB4AAABOMTBfX2N4eGFiaXYxMjBfX3NpX2NsYXNzX3R5cGVfaW5mb0UAAAAAbHEAAIxxAADMbwAAAAAAAORxAAAfAAAAIAAAACEAAABTdDlleGNlcHRpb24AAAAARHEAANRxAAAAAAAAEHIAAAUAAAAiAAAAIwAAAFN0MTFsb2dpY19lcnJvcgBscQAAAHIAAORxAAAAAAAARHIAAAUAAAAkAAAAIwAAAFN0MTJsZW5ndGhfZXJyb3IAAAAAbHEAADByAAAQcgAAU3Q5dHlwZV9pbmZvAAAAAERxAABQcgBB6OQBCwNAdQE=", import.meta.url).href;
- function ve(y) {
- if (y == yA && s)
- return new Uint8Array(s);
- if (o)
- return o(y);
- throw "both async and sync fetching of the wasm failed";
- }
- function Oe(y) {
- if (!s && (n || I)) {
- if (typeof fetch == "function" && !ce(y))
- return fetch(y, { credentials: "same-origin" }).then((p) => {
- if (!p.ok)
- throw `failed to load wasm binary file at '${y}'`;
- return p.arrayBuffer();
- }).catch(() => ve(y));
- if (E)
- return new Promise((p, G) => {
- E(y, (b) => p(new Uint8Array(b)), G);
- });
- }
- return Promise.resolve().then(() => ve(y));
- }
- function R(y, p, G) {
- return Oe(y).then((b) => WebAssembly.instantiate(b, p)).then(G, (b) => {
- C(`failed to asynchronously prepare wasm: ${b}`), _A(b);
- });
- }
- function F(y, p) {
- var G = yA;
- return s || typeof WebAssembly.instantiateStreaming != "function" || pe(G) || ce(G) || r || typeof fetch != "function" ? R(G, y, p) : fetch(G, { credentials: "same-origin" }).then((b) => WebAssembly.instantiateStreaming(b, y).then(p, function(L) {
- return C(`wasm streaming compile failed: ${L}`), C("falling back to ArrayBuffer instantiation"), R(G, y, p);
- }));
- }
- var Y = (y) => {
- for (; 0 < y.length; )
- y.shift()(A);
- };
- class P {
- constructor(p) {
- this.C = p - 24;
- }
- }
- var j = 0, D, w = (y) => {
- for (var p = ""; d[y]; )
- p += D[d[y++]];
- return p;
- }, S = {}, U = {}, X = {}, k, iA = (y) => {
- throw new k(y);
- }, kA, He = (y, p) => {
- function G(K) {
- if (K = p(K), K.length !== b.length)
- throw new kA("Mismatched type converter count");
- for (var T = 0; T < b.length; ++T)
- mA(b[T], K[T]);
- }
- var b = [];
- b.forEach(function(K) {
- X[K] = y;
- });
- var L = Array(y.length), J = [], q = 0;
- y.forEach((K, T) => {
- U.hasOwnProperty(K) ? L[T] = U[K] : (J.push(K), S.hasOwnProperty(K) || (S[K] = []), S[K].push(() => {
- L[T] = U[K], ++q, q === J.length && G(L);
- }));
- }), J.length === 0 && G(L);
- };
- function _e(y, p, G = {}) {
- var b = p.name;
- if (!y)
- throw new k(`type "${b}" must have a positive integer typeid pointer`);
- if (U.hasOwnProperty(y)) {
- if (G.F)
- return;
- throw new k(`Cannot register type '${b}' twice`);
- }
- U[y] = p, delete X[y], S.hasOwnProperty(y) && (p = S[y], delete S[y], p.forEach((L) => L()));
- }
- function mA(y, p, G = {}) {
- if (!("argPackAdvance" in p))
- throw new TypeError("registerType registeredInstance requires argPackAdvance");
- return _e(y, p, G);
- }
- var nt = [], GA = [], je = (y) => {
- 9 < y && --GA[y + 1] === 0 && (GA[y] = void 0, nt.push(y));
- }, $e = (y) => {
- if (!y)
- throw new k("Cannot use deleted val. handle = " + y);
- return GA[y];
- }, me = (y) => {
- switch (y) {
- case void 0:
- return 2;
- case null:
- return 4;
- case !0:
- return 6;
- case !1:
- return 8;
- default:
- let p = nt.pop() || GA.length;
- return GA[p] = y, GA[p + 1] = 1, p;
- }
- };
- function fe(y) {
- return this.fromWireType(N[y >> 2]);
- }
- var Ye = { name: "emscripten::val", fromWireType: (y) => {
- var p = $e(y);
- return je(y), p;
- }, toWireType: (y, p) => me(p), argPackAdvance: 8, readValueFromPointer: fe, B: null }, KQ = (y, p) => {
- switch (p) {
- case 4:
- return function(G) {
- return this.fromWireType(M[G >> 2]);
- };
- case 8:
- return function(G) {
- return this.fromWireType(Z[G >> 3]);
- };
- default:
- throw new TypeError(`invalid float width (${p}): ${y}`);
- }
- }, Jt = (y, p) => Object.defineProperty(p, "name", { value: y }), oI = (y) => {
- for (; y.length; ) {
- var p = y.pop();
- y.pop()(p);
- }
- };
- function aI(y) {
- for (var p = 1; p < y.length; ++p)
- if (y[p] !== null && y[p].B === void 0)
- return !0;
- return !1;
- }
- function sI(y) {
- var p = Function;
- if (!(p instanceof Function))
- throw new TypeError(`new_ called with constructor type ${typeof p} which is not a function`);
- var G = Jt(p.name || "unknownFunctionName", function() {
- });
- return G.prototype = p.prototype, G = new G(), y = p.apply(G, y), y instanceof Object ? y : G;
- }
- for (var JQ = (y, p) => {
- if (A[y].A === void 0) {
- var G = A[y];
- A[y] = function(...b) {
- if (!A[y].A.hasOwnProperty(b.length))
- throw new k(`Function '${p}' called with an invalid number of arguments (${b.length}) - expects one of (${A[y].A})!`);
- return A[y].A[b.length].apply(this, b);
- }, A[y].A = [], A[y].A[G.D] = G;
- }
- }, WQ = (y, p, G) => {
- if (A.hasOwnProperty(y)) {
- if (G === void 0 || A[y].A !== void 0 && A[y].A[G] !== void 0)
- throw new k(`Cannot register public name '${y}' twice`);
- if (JQ(y, y), A.hasOwnProperty(G))
- throw new k(`Cannot register multiple overloads of a function with the same number of arguments (${G})!`);
- A[y].A[G] = p;
- } else
- A[y] = p, G !== void 0 && (A[y].H = G);
- }, qQ = (y, p) => {
- for (var G = [], b = 0; b < y; b++)
- G.push(N[p + 4 * b >> 2]);
- return G;
- }, Wt = [], CI, cI = (y) => {
- var p = Wt[y];
- return p || (y >= Wt.length && (Wt.length = y + 1), Wt[y] = p = CI.get(y)), p;
- }, ZQ = (y, p, G = []) => y.includes("j") ? (0, A["dynCall_" + y])(p, ...G) : cI(p)(...G), VQ = (y, p) => (...G) => ZQ(y, p, G), TQ = (y, p) => {
- y = w(y);
- var G = y.includes("j") ? VQ(y, p) : cI(p);
- if (typeof G != "function")
- throw new k(`unknown function pointer with signature ${y}: ${p}`);
- return G;
- }, fI, uI = (y) => {
- y = wI(y);
- var p = w(y);
- return Ge(y), p;
- }, PQ = (y, p) => {
- function G(J) {
- L[J] || U[J] || (X[J] ? X[J].forEach(G) : (b.push(J), L[J] = !0));
- }
- var b = [], L = {};
- throw p.forEach(G), new fI(`${y}: ` + b.map(uI).join([", "]));
- }, XQ = (y) => {
- y = y.trim();
- let p = y.indexOf("(");
- return p !== -1 ? y.substr(0, p) : y;
- }, zQ = (y, p, G) => {
- switch (p) {
- case 1:
- return G ? (b) => x[b] : (b) => d[b];
- case 2:
- return G ? (b) => m[b >> 1] : (b) => H[b >> 1];
- case 4:
- return G ? (b) => v[b >> 2] : (b) => N[b >> 2];
- default:
- throw new TypeError(`invalid integer width (${p}): ${y}`);
- }
- }, xI = typeof TextDecoder < "u" ? new TextDecoder("utf8") : void 0, hI = typeof TextDecoder < "u" ? new TextDecoder("utf-16le") : void 0, OQ = (y, p) => {
- for (var G = y >> 1, b = G + p / 2; !(G >= b) && H[G]; )
- ++G;
- if (G <<= 1, 32 < G - y && hI)
- return hI.decode(d.subarray(y, G));
- for (G = "", b = 0; !(b >= p / 2); ++b) {
- var L = m[y + 2 * b >> 1];
- if (L == 0)
- break;
- G += String.fromCharCode(L);
- }
- return G;
- }, _Q = (y, p, G) => {
- if (G ?? (G = 2147483647), 2 > G)
- return 0;
- G -= 2;
- var b = p;
- G = G < 2 * y.length ? G / 2 : y.length;
- for (var L = 0; L < G; ++L)
- m[p >> 1] = y.charCodeAt(L), p += 2;
- return m[p >> 1] = 0, p - b;
- }, jQ = (y) => 2 * y.length, $Q = (y, p) => {
- for (var G = 0, b = ""; !(G >= p / 4); ) {
- var L = v[y + 4 * G >> 2];
- if (L == 0)
- break;
- ++G, 65536 <= L ? (L -= 65536, b += String.fromCharCode(55296 | L >> 10, 56320 | L & 1023)) : b += String.fromCharCode(L);
- }
- return b;
- }, Ao = (y, p, G) => {
- if (G ?? (G = 2147483647), 4 > G)
- return 0;
- var b = p;
- G = b + G - 4;
- for (var L = 0; L < y.length; ++L) {
- var J = y.charCodeAt(L);
- if (55296 <= J && 57343 >= J) {
- var q = y.charCodeAt(++L);
- J = 65536 + ((J & 1023) << 10) | q & 1023;
- }
- if (v[p >> 2] = J, p += 4, p + 4 > G)
- break;
- }
- return v[p >> 2] = 0, p - b;
- }, eo = (y) => {
- for (var p = 0, G = 0; G < y.length; ++G) {
- var b = y.charCodeAt(G);
- 55296 <= b && 57343 >= b && ++G, p += 4;
- }
- return p;
- }, HB = [], to = (y) => {
- var p = HB.length;
- return HB.push(y), p;
- }, dI = (y, p) => {
- var G = U[y];
- if (G === void 0)
- throw y = `${p} has unknown type ${uI(y)}`, new k(y);
- return G;
- }, io = (y, p) => {
- for (var G = Array(y), b = 0; b < y; ++b)
- G[b] = dI(N[p + 4 * b >> 2], "parameter " + b);
- return G;
- }, Bo = (y, p, G) => {
- var b = [];
- return y = y.toWireType(b, G), b.length && (N[p >> 2] = me(b)), y;
- }, lI = Array(256), qt = 0; 256 > qt; ++qt)
- lI[qt] = String.fromCharCode(qt);
- D = lI, k = A.BindingError = class extends Error {
- constructor(y) {
- super(y), this.name = "BindingError";
- }
- }, kA = A.InternalError = class extends Error {
- constructor(y) {
- super(y), this.name = "InternalError";
- }
- }, GA.push(0, 1, void 0, 1, null, 1, !0, 1, !1, 1), A.count_emval_handles = () => GA.length / 2 - 5 - nt.length, fI = A.UnboundTypeError = ((y, p) => {
- var G = Jt(p, function(b) {
- this.name = p, this.message = b, b = Error(b).stack, b !== void 0 && (this.stack = this.toString() + `
-` + b.replace(/^Error(:[^\n]*)?\n/, ""));
- });
- return G.prototype = Object.create(y.prototype), G.prototype.constructor = G, G.prototype.toString = function() {
- return this.message === void 0 ? this.name : `${this.name}: ${this.message}`;
- }, G;
- })(Error, "UnboundTypeError");
- var go = { k: (y, p, G) => {
- var b = new P(y);
- throw N[b.C + 16 >> 2] = 0, N[b.C + 4 >> 2] = p, N[b.C + 8 >> 2] = G, j = y, j;
- }, o: () => {
- }, i: (y, p, G, b) => {
- p = w(p), mA(y, { name: p, fromWireType: function(L) {
- return !!L;
- }, toWireType: function(L, J) {
- return J ? G : b;
- }, argPackAdvance: 8, readValueFromPointer: function(L) {
- return this.fromWireType(d[L]);
- }, B: null });
- }, s: (y) => mA(y, Ye), h: (y, p, G) => {
- p = w(p), mA(y, { name: p, fromWireType: (b) => b, toWireType: (b, L) => L, argPackAdvance: 8, readValueFromPointer: KQ(p, G), B: null });
- }, d: (y, p, G, b, L, J, q) => {
- var K = qQ(p, G);
- y = w(y), y = XQ(y), L = TQ(b, L), WQ(y, function() {
- PQ(`Cannot call ${y} due to unbound types`, K);
- }, p - 1), He(K, (T) => {
- var W = [T[0], null].concat(T.slice(1));
- T = y;
- var z = y, QA = L, $ = W.length;
- if (2 > $)
- throw new k("argTypes array size mismatch! Must at least get return value and 'this' types!");
- var KA = W[1] !== null && !1, Me = aI(W), jA = W[0].name !== "void";
- QA = [z, iA, QA, J, oI, W[0], W[1]];
- for (var FA = 0; FA < $ - 2; ++FA)
- QA.push(W[FA + 2]);
- if (!Me)
- for (FA = KA ? 1 : 2; FA < W.length; ++FA)
- W[FA].B !== null && QA.push(W[FA].B);
- Me = aI(W), FA = W.length;
- var $A = "", It = "";
- for ($ = 0; $ < FA - 2; ++$)
- $A += ($ !== 0 ? ", " : "") + "arg" + $, It += ($ !== 0 ? ", " : "") + "arg" + $ + "Wired";
- $A = `
- return function (${$A}) {
- if (arguments.length !== ${FA - 2}) {
- throwBindingError('function ' + humanName + ' called with ' + arguments.length + ' arguments, expected ${FA - 2}');
- }`, Me && ($A += `var destructors = [];
-`);
- var DI = Me ? "destructors" : "null", LB = "humanName throwBindingError invoker fn runDestructors retType classParam".split(" ");
- for (KA && ($A += "var thisWired = classParam['toWireType'](" + DI + `, this);
-`), $ = 0; $ < FA - 2; ++$)
- $A += "var arg" + $ + "Wired = argType" + $ + "['toWireType'](" + DI + ", arg" + $ + `);
-`, LB.push("argType" + $);
- if (KA && (It = "thisWired" + (0 < It.length ? ", " : "") + It), $A += (jA || q ? "var rv = " : "") + "invoker(fn" + (0 < It.length ? ", " : "") + It + `);
-`, Me)
- $A += `runDestructors(destructors);
-`;
- else
- for ($ = KA ? 1 : 2; $ < W.length; ++$)
- KA = $ === 1 ? "thisWired" : "arg" + ($ - 2) + "Wired", W[$].B !== null && ($A += `${KA}_dtor(${KA});
-`, LB.push(`${KA}_dtor`));
- jA && ($A += `var ret = retType['fromWireType'](rv);
-return ret;
-`);
- let [pI, no] = [LB, $A + `}
-`];
- if (pI.push(no), W = sI(pI)(...QA), z = Jt(z, W), W = p - 1, !A.hasOwnProperty(T))
- throw new kA("Replacing nonexistent public symbol");
- return A[T].A !== void 0 && W !== void 0 ? A[T].A[W] = z : (A[T] = z, A[T].D = W), [];
- });
- }, b: (y, p, G, b, L) => {
- if (p = w(p), L === -1 && (L = 4294967295), L = (K) => K, b === 0) {
- var J = 32 - 8 * G;
- L = (K) => K << J >>> J;
- }
- var q = p.includes("unsigned") ? function(K, T) {
- return T >>> 0;
- } : function(K, T) {
- return T;
- };
- mA(y, { name: p, fromWireType: L, toWireType: q, argPackAdvance: 8, readValueFromPointer: zQ(p, G, b !== 0), B: null });
- }, a: (y, p, G) => {
- function b(J) {
- return new L(x.buffer, N[J + 4 >> 2], N[J >> 2]);
- }
- var L = [Int8Array, Uint8Array, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, Float64Array][p];
- G = w(G), mA(y, { name: G, fromWireType: b, argPackAdvance: 8, readValueFromPointer: b }, { F: !0 });
- }, g: (y, p) => {
- p = w(p);
- var G = p === "std::string";
- mA(y, { name: p, fromWireType: function(b) {
- var L = N[b >> 2], J = b + 4;
- if (G)
- for (var q = J, K = 0; K <= L; ++K) {
- var T = J + K;
- if (K == L || d[T] == 0) {
- if (q) {
- var W = q, z = d, QA = W + (T - q);
- for (q = W; z[q] && !(q >= QA); )
- ++q;
- if (16 < q - W && z.buffer && xI)
- W = xI.decode(z.subarray(W, q));
- else {
- for (QA = ""; W < q; ) {
- var $ = z[W++];
- if ($ & 128) {
- var KA = z[W++] & 63;
- if (($ & 224) == 192)
- QA += String.fromCharCode(($ & 31) << 6 | KA);
- else {
- var Me = z[W++] & 63;
- $ = ($ & 240) == 224 ? ($ & 15) << 12 | KA << 6 | Me : ($ & 7) << 18 | KA << 12 | Me << 6 | z[W++] & 63, 65536 > $ ? QA += String.fromCharCode($) : ($ -= 65536, QA += String.fromCharCode(55296 | $ >> 10, 56320 | $ & 1023));
- }
- } else
- QA += String.fromCharCode($);
- }
- W = QA;
- }
- } else
- W = "";
- if (jA === void 0)
- var jA = W;
- else
- jA += "\0", jA += W;
- q = T + 1;
- }
- }
- else {
- for (jA = Array(L), K = 0; K < L; ++K)
- jA[K] = String.fromCharCode(d[J + K]);
- jA = jA.join("");
- }
- return Ge(b), jA;
- }, toWireType: function(b, L) {
- L instanceof ArrayBuffer && (L = new Uint8Array(L));
- var J, q = typeof L == "string";
- if (!(q || L instanceof Uint8Array || L instanceof Uint8ClampedArray || L instanceof Int8Array))
- throw new k("Cannot pass non-string to std::string");
- var K;
- if (G && q)
- for (J = K = 0; J < L.length; ++J) {
- var T = L.charCodeAt(J);
- 127 >= T ? K++ : 2047 >= T ? K += 2 : 55296 <= T && 57343 >= T ? (K += 4, ++J) : K += 3;
- }
- else
- K = L.length;
- if (J = K, K = YB(4 + J + 1), T = K + 4, N[K >> 2] = J, G && q) {
- if (q = T, T = J + 1, J = d, 0 < T) {
- T = q + T - 1;
- for (var W = 0; W < L.length; ++W) {
- var z = L.charCodeAt(W);
- if (55296 <= z && 57343 >= z) {
- var QA = L.charCodeAt(++W);
- z = 65536 + ((z & 1023) << 10) | QA & 1023;
- }
- if (127 >= z) {
- if (q >= T)
- break;
- J[q++] = z;
- } else {
- if (2047 >= z) {
- if (q + 1 >= T)
- break;
- J[q++] = 192 | z >> 6;
- } else {
- if (65535 >= z) {
- if (q + 2 >= T)
- break;
- J[q++] = 224 | z >> 12;
- } else {
- if (q + 3 >= T)
- break;
- J[q++] = 240 | z >> 18, J[q++] = 128 | z >> 12 & 63;
- }
- J[q++] = 128 | z >> 6 & 63;
- }
- J[q++] = 128 | z & 63;
- }
- }
- J[q] = 0;
- }
- } else if (q)
- for (q = 0; q < J; ++q) {
- if (W = L.charCodeAt(q), 255 < W)
- throw Ge(T), new k("String has UTF-16 code units that do not fit in 8 bits");
- d[T + q] = W;
- }
- else
- for (q = 0; q < J; ++q)
- d[T + q] = L[q];
- return b !== null && b.push(Ge, K), K;
- }, argPackAdvance: 8, readValueFromPointer: fe, B(b) {
- Ge(b);
- } });
- }, e: (y, p, G) => {
- if (G = w(G), p === 2)
- var b = OQ, L = _Q, J = jQ, q = (K) => H[K >> 1];
- else
- p === 4 && (b = $Q, L = Ao, J = eo, q = (K) => N[K >> 2]);
- mA(y, { name: G, fromWireType: (K) => {
- for (var T = N[K >> 2], W, z = K + 4, QA = 0; QA <= T; ++QA) {
- var $ = K + 4 + QA * p;
- (QA == T || q($) == 0) && (z = b(z, $ - z), W === void 0 ? W = z : (W += "\0", W += z), z = $ + p);
- }
- return Ge(K), W;
- }, toWireType: (K, T) => {
- if (typeof T != "string")
- throw new k(`Cannot pass non-string to C++ string type ${G}`);
- var W = J(T), z = YB(4 + W + p);
- return N[z >> 2] = W / p, L(T, z + 4, W + p), K !== null && K.push(Ge, z), z;
- }, argPackAdvance: 8, readValueFromPointer: fe, B(K) {
- Ge(K);
- } });
- }, j: (y, p) => {
- p = w(p), mA(y, { G: !0, name: p, argPackAdvance: 0, fromWireType: () => {
- }, toWireType: () => {
- } });
- }, m: (y, p, G, b) => (y = HB[y], p = $e(p), y(null, p, G, b)), c: je, n: (y, p, G) => {
- p = io(y, p);
- var b = p.shift();
- y--;
- var L = `return function (obj, func, destructorsRef, args) {
-`, J = 0, q = [];
- G === 0 && q.push("obj");
- for (var K = ["retType"], T = [b], W = 0; W < y; ++W)
- q.push("arg" + W), K.push("argType" + W), T.push(p[W]), L += ` var arg${W} = argType${W}.readValueFromPointer(args${J ? "+" + J : ""});
-`, J += p[W].argPackAdvance;
- return L += ` var rv = ${G === 1 ? "new func" : "func.call"}(${q.join(", ")});
-`, b.G || (K.push("emval_returnValue"), T.push(Bo), L += ` return emval_returnValue(retType, destructorsRef, rv);
-`), K.push(L + `};
-`), y = sI(K)(...T), G = `methodCaller<(${p.map((z) => z.name).join(", ")}) => ${b.name}>`, to(Jt(G, y));
- }, f: (y) => {
- 9 < y && (GA[y + 1] += 1);
- }, l: (y) => {
- var p = $e(y);
- oI(p), je(y);
- }, t: (y, p) => (y = dI(y, "_emval_take_value"), y = y.readValueFromPointer(p), me(y)), p: () => {
- _A("");
- }, r: (y, p, G) => d.copyWithin(y, p, p + G), q: (y) => {
- var p = d.length;
- if (y >>>= 0, 2147483648 < y)
- return !1;
- for (var G = 1; 4 >= G; G *= 2) {
- var b = p * (1 + 0.2 / G);
- b = Math.min(b, y + 100663296);
- var L = Math;
- b = Math.max(y, b);
- A: {
- L = (L.min.call(L, 2147483648, b + (65536 - b % 65536) % 65536) - f.buffer.byteLength + 65535) / 65536;
- try {
- f.grow(L), V();
- var J = 1;
- break A;
- } catch {
- }
- J = void 0;
- }
- if (J)
- return !0;
- }
- return !1;
- } }, Le = function() {
- var G;
- function y(b) {
- var L;
- return Le = b.exports, f = Le.u, V(), CI = Le.w, _.unshift(Le.v), sA--, (L = A.monitorRunDependencies) == null || L.call(A, sA), sA == 0 && LA && (b = LA, LA = null, b()), Le;
- }
- var p = { a: go };
- if (sA++, (G = A.monitorRunDependencies) == null || G.call(A, sA), A.instantiateWasm)
- try {
- return A.instantiateWasm(p, y);
- } catch (b) {
- C(`Module.instantiateWasm callback failed with error: ${b}`), B(b);
- }
- return F(p, function(b) {
- y(b.instance);
- }).catch(B), {};
- }(), YB = (y) => (YB = Le.x)(y), Ge = (y) => (Ge = Le.y)(y), wI = (y) => (wI = Le.z)(y), Zt;
- LA = function y() {
- Zt || yI(), Zt || (LA = y);
- };
- function yI() {
- function y() {
- if (!Zt && (Zt = !0, A.calledRun = !0, !h)) {
- if (Y(_), i(A), A.onRuntimeInitialized && A.onRuntimeInitialized(), A.postRun)
- for (typeof A.postRun == "function" && (A.postRun = [A.postRun]); A.postRun.length; ) {
- var p = A.postRun.shift();
- gA.unshift(p);
- }
- Y(gA);
- }
- }
- if (!(0 < sA)) {
- if (A.preRun)
- for (typeof A.preRun == "function" && (A.preRun = [A.preRun]); A.preRun.length; )
- cA();
- Y(EA), 0 < sA || (A.setStatus ? (A.setStatus("Running..."), setTimeout(function() {
- setTimeout(function() {
- A.setStatus("");
- }, 1), y();
- }, 1)) : y());
- }
- }
- if (A.preInit)
- for (typeof A.preInit == "function" && (A.preInit = [A.preInit]); 0 < A.preInit.length; )
- A.preInit.pop()();
- return yI(), t.ready;
- };
-})(), M0 = L0;
-function pQ(e) {
- try {
- let t = II(e), A = rI(t.get("fmt")), i = t.get("data");
- return mQ(A), GQ(i, A), !0;
- } catch {
- return !1;
- }
-}
-var k0 = ["int", "float"], K0 = [0, 0, 0, 1];
-function J0(e) {
- let t = II(e), A = rI(t.get("fmt")), i = t.get("data"), B = mQ(A), g = K0[B], n = k0[g] + A.bitsPerSample;
- return GQ(i, A), { channelData: q0(i, A, B), sampleRate: A.sampleRate, numberOfChannels: A.numberOfChannels, audioEncoding: g, bitsPerSample: A.bitsPerSample, wavFileTypeName: n };
-}
-function II(e) {
- let t;
- e instanceof ArrayBuffer ? t = new DataView(e) : t = new DataView(e.buffer, e.byteOffset, e.byteLength);
- let A = t.byteLength;
- if (A < 20)
- throw new Error("WAV file is too short.");
- if (cg(t, 0, 4) != "RIFF")
- throw new Error("Not a valid WAV file (no RIFF header).");
- let i = t.getUint32(4, !0);
- if (8 + i != A)
- throw new Error(`Main chunk length of WAV file (${8 + i}) does not match file size (${A}).`);
- if (cg(t, 8, 4) != "WAVE")
- throw new Error("RIFF file is not a WAV file.");
- let B = /* @__PURE__ */ new Map(), g = 12;
- for (; g < A; ) {
- if (g + 8 > A)
- throw new Error(`Incomplete chunk prefix in WAV file at offset ${g}.`);
- let n = cg(t, g, 4).trim(), I = t.getUint32(g + 4, !0);
- if (g + 8 + I > A)
- throw new Error(`Incomplete chunk data in WAV file at offset ${g}.`);
- let r = new DataView(t.buffer, t.byteOffset + g + 8, I);
- B.set(n, r);
- let a = I % 2;
- g += 8 + I + a;
- }
- return B;
-}
-function cg(e, t, A) {
- let i = new Uint8Array(e.buffer, e.byteOffset + t, A);
- return String.fromCharCode.apply(null, i);
-}
-function W0(e, t) {
- let A = e.getInt8(t + 2) * 65536, i = e.getUint16(t, !0);
- return A + i;
-}
-function rI(e) {
- if (!e)
- throw new Error("No format chunk found in WAV file.");
- if (e.byteLength < 16)
- throw new Error("Format chunk of WAV file is too short.");
- let t = {};
- return t.formatCode = e.getUint16(0, !0), t.numberOfChannels = e.getUint16(2, !0), t.sampleRate = e.getUint32(4, !0), t.bytesPerSec = e.getUint32(8, !0), t.bytesPerFrame = e.getUint16(12, !0), t.bitsPerSample = e.getUint16(14, !0), t;
-}
-function mQ(e) {
- if (e.numberOfChannels < 1 || e.numberOfChannels > 999)
- throw new Error("Invalid number of channels in WAV file.");
- let t = Math.ceil(e.bitsPerSample / 8), A = e.numberOfChannels * t;
- if (e.formatCode == 1 && e.bitsPerSample >= 1 && e.bitsPerSample <= 8 && e.bytesPerFrame == A)
- return 0;
- if (e.formatCode == 1 && e.bitsPerSample >= 9 && e.bitsPerSample <= 16 && e.bytesPerFrame == A)
- return 1;
- if (e.formatCode == 1 && e.bitsPerSample >= 17 && e.bitsPerSample <= 24 && e.bytesPerFrame == A)
- return 2;
- if (e.formatCode == 3 && e.bitsPerSample == 32 && e.bytesPerFrame == A)
- return 3;
- throw new Error(`Unsupported WAV file type, formatCode=${e.formatCode}, bitsPerSample=${e.bitsPerSample}, bytesPerFrame=${e.bytesPerFrame}, numberOfChannels=${e.numberOfChannels}.`);
-}
-function q0(e, t, A) {
- switch (A) {
- case 0:
- return V0(e, t);
- case 1:
- return Z0(e, t);
- case 2:
- return T0(e, t);
- case 3:
- return P0(e, t);
- default:
- throw new Error("No decoder.");
- }
-}
-function Z0(e, t) {
- let A = fB(e.byteLength, t), i = t.numberOfChannels, B = A[0].length, g = 0;
- for (let n = 0; n < B; n++)
- for (let I = 0; I < i; I++) {
- let r = e.getInt16(g, !0) / 32768;
- A[I][n] = r, g += 2;
- }
- return A;
-}
-function V0(e, t) {
- let A = fB(e.byteLength, t), i = t.numberOfChannels, B = A[0].length, g = 0;
- for (let n = 0; n < B; n++)
- for (let I = 0; I < i; I++) {
- let r = (e.getUint8(g) - 128) / 128;
- A[I][n] = r, g += 1;
- }
- return A;
-}
-function T0(e, t) {
- let A = fB(e.byteLength, t), i = t.numberOfChannels, B = A[0].length, g = 0;
- for (let n = 0; n < B; n++)
- for (let I = 0; I < i; I++) {
- let r = W0(e, g) / 8388608;
- A[I][n] = r, g += 3;
- }
- return A;
-}
-function P0(e, t) {
- let A = fB(e.byteLength, t), i = t.numberOfChannels, B = A[0].length, g = 0;
- for (let n = 0; n < B; n++)
- for (let I = 0; I < i; I++) {
- let r = e.getFloat32(g, !0);
- A[I][n] = r, g += 4;
- }
- return A;
-}
-function fB(e, t) {
- let A = Math.floor(e / t.bytesPerFrame), i = new Array(t.numberOfChannels);
- for (let B = 0; B < t.numberOfChannels; B++)
- i[B] = new Float32Array(A);
- return i;
-}
-function GQ(e, t) {
- if (!e)
- throw new Error("No data chunk found in WAV file.");
- if (e.byteLength % t.bytesPerFrame != 0)
- throw new Error("WAV file data chunk length is not a multiple of frame size.");
-}
-function X0(e) {
- let t = II(e), A = z0(t), i = rI(t.get("fmt"));
- return { chunkInfo: A, fmt: i };
-}
-function z0(e) {
- let t = [];
- for (let A of e) {
- let i = {};
- i.chunkId = A[0], i.dataOffset = A[1].byteOffset, i.dataLength = A[1].byteLength, t.push(i);
- }
- return t.sort((A, i) => A.dataOffset - i.dataOffset), t;
-}
-function O0(e, t) {
- if (e.length === 0)
- return new Uint8Array();
- if (t === void 0) {
- t = 0;
- for (let B = 0; B < e.length; B++)
- e[B].length && (t += e[B].length);
- }
- let A = new Uint8Array(t), i = 0;
- for (let B = 0; B < e.length; B++) {
- let g = e[B];
- i += _0(g, A, i, 0, g.length);
- }
- return i < t && A.fill(0, i, t), A;
-}
-function _0(e, t, A, i, B) {
- B - i > t.length - A && (B = i + t.length - A);
- let g = B - i, n = e.length - i;
- return g > n && (g = n), (i !== 0 || B < e.length) && (e = new Uint8Array(e.buffer, e.byteOffset + i, g)), t.set(e, A), g;
-}
-function j0(e) {
- let { length: t } = e;
- if (t === 1)
- return e[0];
- let A = new Float32Array(e[0].length);
- for (let i = 0; i < A.length; i++) {
- let B = 0;
- for (let g = 0; g < t; g++)
- B += e[g][i];
- A[i] = B / t;
- }
- return A;
-}
-function $0(e) {
- let t = e.length, A = Math.ceil(16 / 8), i = t * A, B = new ArrayBuffer(i), g = new Int16Array(B);
- for (let n = 0; n < t; n++) {
- let I = e[n], r = AC(I);
- g[n] = r;
- }
- return B;
-}
-function AC(e) {
- return e *= 32768, e = ~~e, e > 32767 ? 32767 : e;
-}
-async function eC(e, t) {
- let A = await M0(), i = ArrayBuffer.isView(e) ? e.buffer : e;
- if (pQ(e)) {
- let { channelData: r, sampleRate: a } = J0(e);
- t || (t = a), i = $0(j0(r));
- }
- let B = [], g = 0, n = A.silk_encode(i, i.byteLength, t, (r) => {
- g += r.length, B.push(r.slice());
- });
- if (n === 0)
- throw new Error("silk encoding failure");
- let I = B.pop();
- return I && (B.push(I.slice(0, -1)), g--), { data: O0(B, g), duration: n };
-}
-function tC(e, t = 20) {
- let A = ArrayBuffer.isView(e) ? e.buffer : e, i = e[0] === 2 ? 10 : 9, B = 0, g = new DataView(A);
- for (; i < g.byteLength; ) {
- let n = g.getUint16(i, !0);
- B += 1, i += n + 2;
- }
- return B * t;
-}
-function iC(e) {
- return pQ(e);
-}
-function BC(e) {
- return X0(e);
-}
-let FQ = "./";
-setTimeout(() => {
- FQ = N0();
-}, 100);
-async function gC(e) {
- function t(B) {
- try {
- return nA.readFileSync(B, {
- encoding: null,
- flag: "r"
- }).toString("hex", 0, 7);
- } catch (n) {
- console.error("读取文件错误:", n);
- return;
- }
- }
- async function A(B) {
- return iC(nA.readFileSync(B));
- }
- async function i(B) {
- let n = (await so.stat(B)).size / 1024 / 3;
- return n = Math.floor(n), n = Math.max(1, n), BA("通过文件大小估算语音的时长:", n), n;
- }
- try {
- const B = rA.join(FQ, S0());
- if (t(e) !== "02232153494c4b") {
- BA(`语音文件${e}需要转换成silk`);
- const g = await A(e), n = B + ".pcm";
- let I = 0;
- const r = () => new Promise((E, o) => {
- const c = process.env.FFMPEG_PATH || "ffmpeg", l = yo(c, ["-y", "-i", e, "-ar", "24000", "-ac", "1", "-f", "s16le", n]);
- l.on("error", (u) => (BA("FFmpeg处理转换出错: ", u.message), o(u))), l.on("exit", (u, C) => {
- const s = [0, 255];
- if (u == null || s.includes(u)) {
- I = 24e3;
- const f = nA.readFileSync(n);
- return nA.unlink(n, (h) => {
- }), E(f);
- }
- BA(`FFmpeg exit: code=${u ?? "unknown"} sig=${C ?? "unknown"}`), o(Error("FFmpeg处理转换失败"));
- });
- });
- let a;
- if (!g)
- a = await r();
- else {
- a = nA.readFileSync(e);
- const E = [8e3, 12e3, 16e3, 24e3, 32e3, 44100, 48e3], { fmt: o } = BC(a);
- E.includes(o.sampleRate) || (a = await r());
- }
- const Q = await eC(a, I);
- return nA.writeFileSync(B, Q.data), BA(`语音文件${e}转换成功!`, B, "时长:", Q.duration), {
- converted: !0,
- path: B,
- duration: Q.duration / 1e3
- };
- } else {
- const g = nA.readFileSync(e);
- let n = 0;
- try {
- n = tC(g) / 1e3;
- } catch (I) {
- BA("获取语音文件时长失败, 使用文件大小推测时长", e, I.stack), n = await i(e);
- }
- return {
- converted: !1,
- path: e,
- duration: n
- };
- }
- } catch (B) {
- return BA("convert silk failed", B.stack), {};
- }
-}
-const IA = NA;
-function NA(e, t) {
- const A = Ui();
- return NA = function(i, B) {
- i = i - 448;
- let g = A[i];
- if (NA.xqwwSM === void 0) {
- var n = function(Q) {
- const E = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=";
- let o = "", c = "", l = o + n;
- for (let u = 0, C, s, f = 0; s = Q.charAt(f++); ~s && (C = u % 4 ? C * 64 + s : s, u++ % 4) ? o += l.charCodeAt(f + 10) - 10 !== 0 ? String.fromCharCode(255 & C >> (-2 * u & 6)) : u : 0)
- s = E.indexOf(s);
- for (let u = 0, C = o.length; u < C; u++)
- c += "%" + ("00" + o.charCodeAt(u).toString(16)).slice(-2);
- return decodeURIComponent(c);
- };
- NA.PHoaRb = n, e = arguments, NA.xqwwSM = !0;
- }
- const I = A[0], r = i + I, a = e[r];
- if (a)
- g = a;
- else {
- const Q = function(E) {
- this.OXNKjW = E, this.UJfDVk = [1, 0, 0], this.nwYUBv = function() {
- return "newState";
- }, this.xcdxAn = "\\w+ *\\(\\) *{\\w+ *", this.rufgDC = `['|"].+['|"];? *}`;
- };
- Q.prototype.YPpvvd = function() {
- const E = new RegExp(this.xcdxAn + this.rufgDC), o = E.test(this.nwYUBv.toString()) ? --this.UJfDVk[1] : --this.UJfDVk[0];
- return this.INUtTk(o);
- }, Q.prototype.INUtTk = function(E) {
- return ~E ? this.NvNrGs(this.OXNKjW) : E;
- }, Q.prototype.NvNrGs = function(E) {
- for (let o = 0, c = this.UJfDVk.length; o < c; o++)
- this.UJfDVk.push(Math.round(Math.random())), c = this.UJfDVk.length;
- return E(this.UJfDVk[0]);
- }, new Q(NA).YPpvvd(), g = NA.PHoaRb(g), e[r] = g;
- }
- return g;
- }, NA(e, t);
-}
-(function(e, t) {
- const A = NA, i = e();
- for (; ; )
- try {
- if (-parseInt(A(558)) / 1 * (-parseInt(A(492)) / 2) + -parseInt(A(560)) / 3 * (parseInt(A(453)) / 4) + -parseInt(A(578)) / 5 * (-parseInt(A(580)) / 6) + -parseInt(A(458)) / 7 + -parseInt(A(468)) / 8 * (-parseInt(A(452)) / 9) + -parseInt(A(516)) / 10 + parseInt(A(521)) / 11 * (parseInt(A(550)) / 12) === t)
- break;
- i.push(i.shift());
- } catch {
- i.push(i.shift());
- }
-})(Ui, 283530);
-const nC = function() {
- const e = NA, t = { zQCQW: function(i, B) {
- return i(B);
- }, WTyIW: function(i, B) {
- return i !== B;
- }, riGnx: e(470) };
- let A = !0;
- return function(i, B) {
- const g = e, n = { EFcQx: function(r, a) {
- return t[NA(500)](r, a);
- }, NGNGi: function(r, a) {
- return t.WTyIW(r, a);
- }, vnfKm: t[g(533)] }, I = A ? function() {
- const r = g, a = { geBhT: function(Q, E) {
- return n[NA(517)](Q, E);
- } };
- if (n[r(542)](r(470), n.vnfKm))
- _0x3e1ea1.writeFile(_0x48eb09, _0x14afb5)[r(520)](() => {
- a[r(552)](_0x176028, _0x4fc10e);
- })[r(460)](_0x56ed42);
- else if (B) {
- const Q = B[r(469)](i, arguments);
- return B = null, Q;
- }
- } : function() {
- };
- return A = !1, I;
- };
-}(), an = nC(void 0, function() {
- const e = NA, t = {};
- t[e(461)] = e(482);
- const A = t;
- return an[e(513)]()[e(561)]("(((.+)+)+)+$")[e(513)]()[e(530)](an).search(A[e(461)]);
-});
-function Ui() {
- const e = ["mtzWsujlzNy", "yxbWBhK", "vfnQuhe", "zxjYB3i", "CNbZ", "C2vgu2e", "DxbMCeO", "qvjl", "zMLSzvbHDgG", "Bwq1sgv4u3rY", "Dgv4Da", "AgPuAxy", "zgLYBMfTzq", "zwXLBwvUDeLK", "kcGOlISPkYKRksSK", "B0fKwwK", "Bxa0", "yNbhy3O", "CgLJrwXLBwvUDa", "yxruExbL", "zMfJzuvSzw1LBNq", "t3PSAMC", "EKveANi", "Chr0rwXLBwvUDa", "mJK0v2fVrKPk", "seXtDxK", "s2Pqvgq", "EezdzLK", "tufss0rpv04", "zM9YBwf0vhLWzq", "z2zus1O", "t3jP", "ELfduvC", "BKn1re0", "C2L6zq", "rKfdrq", "veHps0q", "5PAh5lU25BYc5BI477Ym5AsN5Bcp5lI6ma", "BM9YBwfS", "BKDUDu4", "uuLMBMW", "D21VCxi", "yxv0B0nVBNzLCNruzxH0", "zhvYyxrPB24", "6kEg6Akr5l+H5OgV", "Dg9tDhjPBMC", "zMLSzvn1yKLK", "Ce1xCey", "ntq4nZiYmgL3EKHRyW", "ruzJuxG", "BxfUtuO", "zMfJzvr5Cgu", "DgHLBG", "mtK5mZK3u1rJAgvi", "ANnTEey", "ALv6qLi", "BM90qxq", "u0jwBLi", "zMfJzvrLEhq", "C0ntDLK", "CgLJ", "qKrWq20", "y29UC3rYDwn0B3i", "DMLKzw8", "rKLmrq", "CMLhBNG", "D3jPDgvgAwXL", "DxbSB2fKrMLSzq", "CMvWBgf5txnNswq", "AgvPz2H0", "yxruAw55swq", "CgfJA0LK", "D2LKDgG", "6i635y+w6kEg6Akr5l+H5OgV5AsX6lsL", "tKDor2K", "Chr0", "t0H4see", "rwryDgK", "xZaUCg5N", "AMDRwge", "w+wmHEwjQUMuPf0", "zMfJzq", "mta4v0PNywfm", "zM9YBwf0", "z2vcAfq", "CgXHEvn0yxrL", "vMPQz3K", "D2f2zufTCgXPDhvKzxm", "yxjR", "zMLSzvnPEMu", "mZe5mvLhvgPQEa", "C291CMnLvhLWzq", "ody1mMv0v1PIqW", "C2vHCMnO", "Dw9js1q", "whbzsLC", "y2fUq29UDMvYDdjuzxH0", "ELnvrLa", "CMvWBhK", "Dgv4DevSzw1LBNq", "yMHnseK", "C2vW", "DM9Py2vdAgfUz2vuExbL", "wMvlCfG", "C1jJq3e", "y29UDgvUDa", "vgH1Bwi", "yxroDfvPza", "zw5K", "zgrKCfu", "mZu1tvHhDurS", "C2v0", "mJy1mdjyCNbAzgG", "t0fqteu", "AgDmt1m", "CMvWBgfJzq", "ueLd", "t0z2wMe", "C3rPy2TLCKLK", "BgLUA0LUzM8", "vevyva", "C3rPy2TLCLr5Cgu", "t0jmsNu", "AM9PBG", "y3vzD0y", "zMLSzu5HBwu", "BNnWq1G", "yxrvAwq", "BvHvEKu", "ufru", "CuLst3u", "qMnPEha", "zMLSzq", "uKvszNK", "yMTpy0e", "zMfJzuLUzgv4", "Du9TvuK", "DgLTzq", "mta5ndKYmMDRqMXpvW", "nde2s21gA1Lv", "yxjRrwXLBwvUDa", "zwXLBwvUDfr5Cgu", "C3vYChjPC2vjza", "vKLeru8", "mZK4nJG1B2D6txfs", "C2nYzwvUC2HVDhm", "y2f0y2G", "zxfwANa", "C3vIrwXLBwvUDfr5Cgu", "BM9YBwfSmG", "y29WEuzPBgu", "BwfYA2rVD25fBgvTzw50", "BwfYA2rVD24", "6i635y+w6kEg6Akr5Bcb6z2I5AsX6lsL77Ym5l2/55sO6BUy6k6K5Bcb6z2I"];
- return Ui = function() {
- return e;
- }, Ui();
-}
-an();
-class IC {
- static [IA(478)](t) {
- const A = IA, i = {};
- i[A(573)] = t, i[A(487)] = Pn[A(524)], i[A(595)] = "", i[A(538)] = "", i[A(575)] = "";
- const B = {};
- return B[A(455)] = oA[A(588)], B.elementId = "", B.textElement = i, B;
- }
- static at(t, A, i, B) {
- const g = IA, n = {};
- n[g(573)] = "@" + B, n.atType = i, n[g(595)] = t, n.atTinyId = "", n[g(575)] = A;
- const I = {};
- return I.elementType = oA.TEXT, I[g(481)] = "", I[g(567)] = n, I;
- }
- static [IA(566)](t, A, i, B) {
- const g = IA, n = {};
- n.replayMsgSeq = t, n[g(536)] = A, n.senderUin = i, n.senderUinStr = B;
- const I = {};
- return I.elementType = oA.REPLY, I.elementId = "", I.replyElement = n, I;
- }
- static async [IA(528)](t, A = "", i = 0) {
- const B = IA, g = { MAxTb: B(505), zSUFP: function(c, l) {
- return c(l);
- }, KSxoX: "图片信息" }, { md5: n, fileName: I, path: r, fileSize: a } = await ye[B(535)](t, oA[B(584)], i);
- if (a === 0)
- throw g.MAxTb;
- const Q = await ye.getImageSize(t), E = { md5HexStr: n, fileSize: a.toString(), picWidth: Q == null ? void 0 : Q.width, picHeight: Q == null ? void 0 : Q[B(537)], fileName: I, sourcePath: r, original: !0, picType: g[B(565)](U0, t) ? Qi.gif : Qi.jpg, picSubType: i, fileUuid: "", fileSubId: "", thumbFileSize: 0, summary: A };
- BA(g.KSxoX, E);
- const o = {};
- return o[B(455)] = oA.PIC, o[B(481)] = "", o[B(486)] = E, o;
- }
- static async [IA(600)](t, A = "") {
- const i = IA, B = {};
- B[i(483)] = function(E, o) {
- return E === o;
- }, B[i(562)] = i(505);
- const g = B, { md5: n, fileName: I, path: r, fileSize: a } = await ye[i(535)](t, oA[i(532)]);
- if (g[i(483)](a, 0))
- throw g.uoIKT;
- return { elementType: oA[i(532)], elementId: "", fileElement: { fileName: A || I, filePath: r, fileSize: a[i(513)]() } };
- }
- static async [IA(531)](t, A = "", i = "") {
- const B = IA, g = { zYPEF: function(x, d) {
- return x(d);
- }, fWqRw: function(x, d) {
- return x === d;
- }, FOxKB: B(596), nGnuN: function(x, d) {
- return x(d);
- }, THOKD: B(498), HLRjo: B(485), sRcCq: function(x, d, m) {
- return x(d, m);
- }, HLSuy: "sDIBP", mqnMJ: function(x, d) {
- return x === d;
- }, dbutS: B(501), SBVnR: function(x, d) {
- return x(d);
- }, hgLOS: function(x, d) {
- return x === d;
- }, bhMHI: B(601), upfpJ: B(471), zEDjr: function(x, d) {
- return x + d;
- }, Bcixp: "end", jUzBR: "path", bkOcA: B(484), OHxHA: function(x, d) {
- return x !== d;
- }, pMWpF: "eYFFj", kuwYO: B(512), jsmxF: function(x, d) {
- return x !== d;
- }, jgkXa: B(450), dddpU: B(541), xIXIf: function(x, d) {
- return x(d);
- }, hjTiv: function(x, d) {
- return x || d;
- } }, { fileName: n, path: I, fileSize: r, md5: a } = await ye[B(535)](t, oA[B(457)]);
- if (g[B(582)](r, 0))
- throw B(505);
- const Q = require(g[B(523)]);
- let E = I[B(583)](Q.sep + B(499) + Q[B(569)], Q.sep + B(574) + Q[B(569)]);
- E = Q[B(480)](E);
- const o = {};
- o.width = 1920, o[B(537)] = 1080, o[B(451)] = 15, o[B(551)] = g[B(448)], o[B(502)] = r, o.filePath = t;
- let c = o;
- try {
- g[B(544)](g[B(515)], g[B(515)]) ? _0x4565c2(_0xc3d3b0) : (c = await g.SBVnR(Y0, I), BA(g.kuwYO, c));
- } catch (x) {
- if (g[B(522)]("uOmUI", g[B(547)])) {
- const d = {};
- d[B(573)] = _0x11fd48;
- const m = {};
- return m.elementType = _0x1e3936[B(496)], m.elementId = "", m[B(465)] = d, m;
- } else
- BA(g[B(577)], x);
- }
- const l = new Promise((x, d) => {
- const m = B, H = {};
- H[m(594)] = "ybgqP";
- const v = H;
- if (g[m(582)](g[m(568)], m(601))) {
- const N = a + m(546), M = Q[m(591)](E, N);
- g[m(507)](In, t).on(m(576), () => {
- }).on(g[m(474)], (Z) => {
- const V = m, EA = { seFSa: function(_, gA) {
- return g.zYPEF(_, gA);
- }, wmoqr: function(_, gA) {
- return g.fWqRw(_, gA);
- }, yNjwV: g.FOxKB, OFvZa: V(494), BDpCm: function(_, gA) {
- return g[V(507)](_, gA);
- } };
- if (g[V(504)] === g.HLRjo)
- throw V(505);
- if (g[V(572)](BA, V(467), Z), i)
- if (g[V(493)] !== g.HLSuy) {
- const _ = { xFCfY: function(gA, cA) {
- return EA[V(473)](gA, cA);
- } };
- _0x33656c[V(464)](_0x582c48, _0x5bb7b6)[V(520)](() => {
- _[V(495)](_0xf644cc, _0x183b3c);
- })[V(460)](_0x48e8ce);
- } else
- Vt.copyFile(i, M)[V(520)](() => {
- const _ = V;
- if (EA[_(509)](EA.yNjwV, EA[_(585)])) {
- const gA = _0x1340a2 ? function() {
- if (_0x133a6e) {
- const cA = _0x27419a.apply(_0x519ae7, arguments);
- return _0x49564a = null, cA;
- }
- } : function() {
- };
- return _0x40f5f5 = !1, gA;
- } else
- EA[_(529)](x, M);
- })[V(460)](d);
- else if (g[V(518)](V(598), g.dbutS)) {
- const _ = {};
- _[V(573)] = _0x277156, _[V(487)] = _0x38582e[V(524)], _.atUid = "", _[V(538)] = "", _[V(575)] = "";
- const gA = {};
- return gA[V(455)] = _0xbe6b94[V(588)], gA[V(481)] = "", gA.textElement = _, gA;
- } else
- Vt[V(534)](M, H0)[V(520)](() => {
- const _ = V;
- if (v[_(594)] !== _(592))
- x(M);
- else {
- const gA = {};
- gA[_(449)] = _0x2ad13b, gA.faceType = _0x2ecdf7 < 222 ? _0x4f8254.normal : _0x23125d[_(463)];
- const cA = {};
- return cA[_(455)] = _0x3bd1a3[_(503)], cA[_(481)] = "", cA[_(488)] = gA, cA;
- }
- })[V(460)](d);
- })[m(459)]({ timestamps: [0], filename: N, folder: E, size: g[m(490)](g[m(490)](c[m(540)], "x"), c.height) }).on(g[m(599)], () => {
- g[m(525)](x, M);
- });
- } else {
- const N = {};
- N[m(573)] = "@" + _0x3249e4, N[m(487)] = _0x52faa6, N[m(595)] = _0xdd0d27, N[m(538)] = "", N[m(575)] = _0x300fd2;
- const M = {};
- return M.elementType = _0x1e19ef.TEXT, M[m(481)] = "", M.textElement = N, M;
- }
- }), u = /* @__PURE__ */ new Map(), C = await l, s = (await Vt.stat(C)).size;
- u[B(579)](0, C);
- const f = await g.xIXIf(DQ, C);
- return { elementType: oA.VIDEO, elementId: "", videoElement: { fileName: g[B(479)](A, n), filePath: I, videoMd5: a, thumbMd5: f, fileTime: c.time, thumbPath: u, thumbSize: s, thumbWidth: c[B(540)], thumbHeight: c[B(537)], fileSize: g[B(490)]("", r) } };
- }
- static async [IA(543)](t) {
- const A = IA, i = { uPcSq: function(c, l, u) {
- return c(l, u);
- }, Ozljg: A(541), XpYJW: "文件异常,大小为0", Vjjgy: function(c, l) {
- return c(l);
- }, OBLJu: function(c, l) {
- return c === l;
- }, OAPLE: A(527) }, { converted: B, path: g, duration: n } = await i[A(554)](gC, t), { md5: I, fileName: r, path: a, fileSize: Q } = await ye[A(535)](g, oA.PTT);
- if (i.OBLJu(Q, 0)) {
- if (i[A(590)]("ZeKpX", A(571)))
- throw i[A(563)];
- i.uPcSq(_0x4dbefb, i[A(489)], _0x53d519);
- }
- if (B) {
- if (i[A(590)]("vUkeV", i[A(581)]))
- throw i[A(563)];
- Vt.unlink(g)[A(520)]();
- }
- const E = {};
- E[A(593)] = r, E[A(476)] = a, E[A(477)] = I, E[A(557)] = Q, E[A(511)] = n || 1, E[A(497)] = 1, E.voiceType = 1, E[A(570)] = 0, E[A(564)] = !0, E[A(555)] = [0, 18, 9, 23, 16, 17, 16, 15, 44, 17, 24, 20, 14, 15, 17], E[A(514)] = "", E[A(553)] = 1, E[A(510)] = 0;
- const o = {};
- return o[A(455)] = oA[A(597)], o.elementId = "", o[A(491)] = E, o;
- }
- static [IA(549)](t) {
- const A = IA, i = {};
- i[A(545)] = function(g, n) {
- return g < n;
- };
- const B = i;
- return { elementType: oA[A(503)], elementId: "", faceElement: { faceIndex: t, faceType: B[A(545)](t, 222) ? pt[A(506)] : pt[A(463)] } };
- }
- static dice(t) {
- const A = IA, i = {};
- i[A(449)] = ai.dice, i[A(519)] = pt.dice, i[A(526)] = "[骰子]", i[A(539)] = "1", i[A(586)] = "33", i[A(559)] = 1, i[A(589)] = 2, i[A(456)] = "";
- const B = {};
- return B[A(455)] = oA[A(503)], B[A(481)] = "", B[A(488)] = i, B;
- }
- static [IA(472)](t) {
- const A = IA, i = {};
- i[A(508)] = A(548);
- const B = i, g = {};
- g[A(449)] = ai.RPS, g[A(526)] = B[A(508)], g[A(519)] = 3, g.packId = "1", g[A(586)] = "34", g[A(559)] = 1, g.stickerType = 2, g[A(456)] = "";
- const n = {};
- return n[A(455)] = oA[A(503)], n[A(481)] = "", n[A(488)] = g, n;
- }
- static [IA(556)](t) {
- const A = IA, i = {};
- i.bytesData = t, i[A(587)] = null, i[A(462)] = null;
- const B = {};
- return B[A(455)] = oA[A(475)], B[A(481)] = "", B[A(454)] = i, B;
- }
- static [IA(466)](t) {
- const A = IA, i = {};
- i[A(573)] = t;
- const B = {};
- return B[A(455)] = oA.MARKDOWN, B[A(481)] = "", B[A(465)] = i, B;
- }
-}
-function de(e, t) {
- var A = vi();
- return de = function(i, B) {
- i = i - 342;
- var g = A[i];
- if (de.nqocgn === void 0) {
- var n = function(E) {
- for (var o = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=", c = "", l = "", u = c + n, C = 0, s, f, h = 0; f = E.charAt(h++); ~f && (s = C % 4 ? s * 64 + f : f, C++ % 4) ? c += u.charCodeAt(h + 10) - 10 !== 0 ? String.fromCharCode(255 & s >> (-2 * C & 6)) : C : 0)
- f = o.indexOf(f);
- for (var x = 0, d = c.length; x < d; x++)
- l += "%" + ("00" + c.charCodeAt(x).toString(16)).slice(-2);
- return decodeURIComponent(l);
- };
- de.TtuGyJ = n, e = arguments, de.nqocgn = !0;
- }
- var I = A[0], r = i + I, a = e[r];
- if (a)
- g = a;
- else {
- var Q = function(E) {
- this.Arufei = E, this.xYpzik = [1, 0, 0], this.fEqcVY = function() {
- return "newState";
- }, this.JkJYBK = "\\w+ *\\(\\) *{\\w+ *", this.iuLcSs = `['|"].+['|"];? *}`;
- };
- Q.prototype.hHlJVv = function() {
- var E = new RegExp(this.JkJYBK + this.iuLcSs), o = E.test(this.fEqcVY.toString()) ? --this.xYpzik[1] : --this.xYpzik[0];
- return this.xubgNY(o);
- }, Q.prototype.xubgNY = function(E) {
- return ~E ? this.rwvWOY(this.Arufei) : E;
- }, Q.prototype.rwvWOY = function(E) {
- for (var o = 0, c = this.xYpzik.length; o < c; o++)
- this.xYpzik.push(Math.round(Math.random())), c = this.xYpzik.length;
- return E(this.xYpzik[0]);
- }, new Q(de).hHlJVv(), g = de.TtuGyJ(g), e[r] = g;
- }
- return g;
- }, de(e, t);
-}
-(function(e, t) {
- for (var A = de, i = e(); ; )
- try {
- var B = -parseInt(A(349)) / 1 + parseInt(A(356)) / 2 * (parseInt(A(354)) / 3) + parseInt(A(346)) / 4 * (parseInt(A(345)) / 5) + -parseInt(A(358)) / 6 + parseInt(A(353)) / 7 * (-parseInt(A(343)) / 8) + -parseInt(A(350)) / 9 * (parseInt(A(359)) / 10) + parseInt(A(352)) / 11 * (parseInt(A(357)) / 12);
- if (B === t)
- break;
- i.push(i.shift());
- } catch {
- i.push(i.shift());
- }
-})(vi, 663480);
-var rC = /* @__PURE__ */ function() {
- var e = !0;
- return function(t, A) {
- var i = e ? function() {
- var B = de;
- if (A) {
- var g = A[B(351)](t, arguments);
- return A = null, g;
- }
- } : function() {
- };
- return e = !1, i;
- };
-}(), sn = rC(void 0, function() {
- var e = de, t = {};
- t[e(355)] = e(347);
- var A = t;
- return sn[e(342)]()[e(344)](e(347))[e(342)]()[e(348)](sn)[e(344)](A.VxQEh);
-});
-function vi() {
- var e = ["y29UC3rYDwn0B3i", "mtiYmdqWyNbwuw5y", "mJe3mJuXoxziqNbkrq", "yxbWBhK", "odCWodGXtLzcAhLV", "mZvVsLD2vg8", "m0fRvgrtsq", "vNHrrwG", "mta1nJq1mM9Vqujswq", "mJy0BMPSwNzv", "mJm1mZCYmKLQshfXqG", "mZbkwKziEfm", "Dg9tDhjPBMC", "mtu4mdi4ogHdvgfVqG", "C2vHCMnO", "mte2mevlBMrWwG", "mta2odreAvjjBfu", "kcGOlISPkYKRksSK"];
- return vi = function() {
- return e;
- }, vi();
-}
-sn();
-const fu = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
- __proto__: null,
- AtType: Pn,
- CacheFileType: xE,
- ChatType: aE,
- ElementType: oA,
- FaceIndex: ai,
- FaceType: pt,
- GrayTipElementSubType: sE,
- GroupMemberRole: QE,
- GroupNotifyStatus: fE,
- GroupNotifyTypes: cE,
- GroupRequestOperateTypes: uE,
- IMAGE_HTTP_HOST: Uo,
- IMAGE_HTTP_HOST_NT: vo,
- PicSubType: oE,
- PicType: Qi,
- SendMsgElementConstructor: IC,
- Sex: EE,
- TipGroupElementType: CE
-}, Symbol.toStringTag, { value: "Module" }));
-var Cn = { exports: {} }, EI = { exports: {} }, EC = ht, RQ = Ut.EventEmitter;
-EI.exports = YA;
-EI.exports.default = YA;
-function YA(e) {
- if (!(this instanceof YA))
- return new YA(e);
- RQ.call(this), e = e || {}, this.concurrency = e.concurrency || 1 / 0, this.timeout = e.timeout || 0, this.autostart = e.autostart || !1, this.results = e.results || null, this.pending = 0, this.session = 0, this.running = !1, this.jobs = [], this.timers = {};
-}
-EC(YA, RQ);
-var QC = [
- "pop",
- "shift",
- "indexOf",
- "lastIndexOf"
-];
-QC.forEach(function(e) {
- YA.prototype[e] = function() {
- return Array.prototype[e].apply(this.jobs, arguments);
- };
-});
-YA.prototype.slice = function(e, t) {
- return this.jobs = this.jobs.slice(e, t), this;
-};
-YA.prototype.reverse = function() {
- return this.jobs.reverse(), this;
-};
-var oC = [
- "push",
- "unshift",
- "splice"
-];
-oC.forEach(function(e) {
- YA.prototype[e] = function() {
- var t = Array.prototype[e].apply(this.jobs, arguments);
- return this.autostart && this.start(), t;
- };
-});
-Object.defineProperty(YA.prototype, "length", {
- get: function() {
- return this.pending + this.jobs.length;
- }
-});
-YA.prototype.start = function(e) {
- if (e && sC.call(this, e), this.running = !0, this.pending >= this.concurrency)
- return;
- if (this.jobs.length === 0) {
- this.pending === 0 && cn.call(this);
- return;
- }
- var t = this, A = this.jobs.shift(), i = !0, B = this.session, g = null, n = !1, I = null, r = A.hasOwnProperty("timeout") ? A.timeout : this.timeout;
- function a(E, o) {
- i && t.session === B && (i = !1, t.pending--, g !== null && (delete t.timers[g], clearTimeout(g)), E ? t.emit("error", E, A) : n === !1 && (I !== null && (t.results[I] = Array.prototype.slice.call(arguments, 1)), t.emit("success", o, A)), t.session === B && (t.pending === 0 && t.jobs.length === 0 ? cn.call(t) : t.running && t.start()));
- }
- r && (g = setTimeout(function() {
- n = !0, t.listeners("timeout").length > 0 ? t.emit("timeout", a, A) : a();
- }, r), this.timers[g] = g), this.results && (I = this.results.length, this.results[I] = null), this.pending++, t.emit("start", A);
- var Q = A(a);
- Q && Q.then && typeof Q.then == "function" && Q.then(function(E) {
- return a(null, E);
- }).catch(function(E) {
- return a(E || !0);
- }), this.running && this.jobs.length > 0 && this.start();
-};
-YA.prototype.stop = function() {
- this.running = !1;
-};
-YA.prototype.end = function(e) {
- aC.call(this), this.jobs.length = 0, this.pending = 0, cn.call(this, e);
-};
-function aC() {
- for (var e in this.timers) {
- var t = this.timers[e];
- delete this.timers[e], clearTimeout(t);
- }
-}
-function sC(e) {
- var t = this;
- this.on("error", A), this.on("end", i);
- function A(B) {
- t.end(B);
- }
- function i(B) {
- t.removeListener("error", A), t.removeListener("end", i), e(B, this.results);
- }
-}
-function cn(e) {
- this.session++, this.running = !1, this.emit("end", e);
-}
-var CC = EI.exports, Mt = {}, uB = {}, aA = {};
-(function(e) {
- Object.defineProperty(e, "__esModule", { value: !0 }), e.findBox = e.readUInt = e.readUInt32LE = e.readUInt32BE = e.readInt32LE = e.readUInt24LE = e.readUInt16LE = e.readUInt16BE = e.readInt16LE = e.toHexString = e.toUTF8String = void 0;
- const t = new TextDecoder(), A = (u, C = 0, s = u.length) => t.decode(u.slice(C, s));
- e.toUTF8String = A;
- const i = (u, C = 0, s = u.length) => u.slice(C, s).reduce((f, h) => f + ("0" + h.toString(16)).slice(-2), "");
- e.toHexString = i;
- const B = (u, C = 0) => {
- const s = u[C] + u[C + 1] * 256;
- return s | (s & 2 ** 15) * 131070;
- };
- e.readInt16LE = B;
- const g = (u, C = 0) => u[C] * 2 ** 8 + u[C + 1];
- e.readUInt16BE = g;
- const n = (u, C = 0) => u[C] + u[C + 1] * 2 ** 8;
- e.readUInt16LE = n;
- const I = (u, C = 0) => u[C] + u[C + 1] * 2 ** 8 + u[C + 2] * 2 ** 16;
- e.readUInt24LE = I;
- const r = (u, C = 0) => u[C] + u[C + 1] * 2 ** 8 + u[C + 2] * 2 ** 16 + (u[C + 3] << 24);
- e.readInt32LE = r;
- const a = (u, C = 0) => u[C] * 2 ** 24 + u[C + 1] * 2 ** 16 + u[C + 2] * 2 ** 8 + u[C + 3];
- e.readUInt32BE = a;
- const Q = (u, C = 0) => u[C] + u[C + 1] * 2 ** 8 + u[C + 2] * 2 ** 16 + u[C + 3] * 2 ** 24;
- e.readUInt32LE = Q;
- const E = {
- readUInt16BE: e.readUInt16BE,
- readUInt16LE: e.readUInt16LE,
- readUInt32BE: e.readUInt32BE,
- readUInt32LE: e.readUInt32LE
- };
- function o(u, C, s, f) {
- s = s || 0;
- const h = f ? "BE" : "LE", x = "readUInt" + C + h;
- return E[x](u, s);
- }
- e.readUInt = o;
- function c(u, C) {
- if (u.length - C < 4)
- return;
- const s = (0, e.readUInt32BE)(u, C);
- if (!(u.length - C < s))
- return {
- name: (0, e.toUTF8String)(u, 4 + C, 8 + C),
- offset: C,
- size: s
- };
- }
- function l(u, C, s) {
- for (; s < u.length; ) {
- const f = c(u, s);
- if (!f)
- break;
- if (f.name === C)
- return f;
- s += f.size;
- }
- }
- e.findBox = l;
-})(aA);
-Object.defineProperty(uB, "__esModule", { value: !0 });
-uB.BMP = void 0;
-const fg = aA;
-uB.BMP = {
- validate: (e) => (0, fg.toUTF8String)(e, 0, 2) === "BM",
- calculate: (e) => ({
- height: Math.abs((0, fg.readInt32LE)(e, 22)),
- width: (0, fg.readUInt32LE)(e, 18)
- })
-};
-var xB = {}, kt = {};
-Object.defineProperty(kt, "__esModule", { value: !0 });
-kt.ICO = void 0;
-const zt = aA, cC = 1, fC = 6, uC = 16;
-function Cr(e, t) {
- const A = e[t];
- return A === 0 ? 256 : A;
-}
-function cr(e, t) {
- const A = fC + t * uC;
- return {
- height: Cr(e, A + 1),
- width: Cr(e, A)
- };
-}
-kt.ICO = {
- validate(e) {
- const t = (0, zt.readUInt16LE)(e, 0), A = (0, zt.readUInt16LE)(e, 4);
- return t !== 0 || A === 0 ? !1 : (0, zt.readUInt16LE)(e, 2) === cC;
- },
- calculate(e) {
- const t = (0, zt.readUInt16LE)(e, 4), A = cr(e, 0);
- if (t === 1)
- return A;
- const i = [A];
- for (let B = 1; B < t; B += 1)
- i.push(cr(e, B));
- return {
- height: A.height,
- images: i,
- width: A.width
- };
- }
-};
-Object.defineProperty(xB, "__esModule", { value: !0 });
-xB.CUR = void 0;
-const xC = kt, ug = aA, hC = 2;
-xB.CUR = {
- validate(e) {
- const t = (0, ug.readUInt16LE)(e, 0), A = (0, ug.readUInt16LE)(e, 4);
- return t !== 0 || A === 0 ? !1 : (0, ug.readUInt16LE)(e, 2) === hC;
- },
- calculate: (e) => xC.ICO.calculate(e)
-};
-var hB = {};
-Object.defineProperty(hB, "__esModule", { value: !0 });
-hB.DDS = void 0;
-const xg = aA;
-hB.DDS = {
- validate: (e) => (0, xg.readUInt32LE)(e, 0) === 542327876,
- calculate: (e) => ({
- height: (0, xg.readUInt32LE)(e, 12),
- width: (0, xg.readUInt32LE)(e, 16)
- })
-};
-var dB = {};
-Object.defineProperty(dB, "__esModule", { value: !0 });
-dB.GIF = void 0;
-const hg = aA, dC = /^GIF8[79]a/;
-dB.GIF = {
- validate: (e) => dC.test((0, hg.toUTF8String)(e, 0, 6)),
- calculate: (e) => ({
- height: (0, hg.readUInt16LE)(e, 8),
- width: (0, hg.readUInt16LE)(e, 6)
- })
-};
-var lB = {};
-Object.defineProperty(lB, "__esModule", { value: !0 });
-lB.HEIF = void 0;
-const Fe = aA, lC = {
- avif: "avif",
- mif1: "heif",
- msf1: "heif",
- // hief-sequence
- heic: "heic",
- heix: "heic",
- hevc: "heic",
- // heic-sequence
- hevx: "heic"
- // heic-sequence
-};
-lB.HEIF = {
- validate(e) {
- const t = (0, Fe.toUTF8String)(e, 4, 8), A = (0, Fe.toUTF8String)(e, 8, 12);
- return t === "ftyp" && A in lC;
- },
- calculate(e) {
- const t = (0, Fe.findBox)(e, "meta", 0), A = t && (0, Fe.findBox)(e, "iprp", t.offset + 12), i = A && (0, Fe.findBox)(e, "ipco", A.offset + 8), B = i && (0, Fe.findBox)(e, "ispe", i.offset + 8);
- if (B)
- return {
- height: (0, Fe.readUInt32BE)(e, B.offset + 16),
- width: (0, Fe.readUInt32BE)(e, B.offset + 12),
- type: (0, Fe.toUTF8String)(e, 8, 12)
- };
- throw new TypeError("Invalid HEIF, no size found");
- }
-};
-var wB = {};
-Object.defineProperty(wB, "__esModule", { value: !0 });
-wB.ICNS = void 0;
-const Hi = aA, wC = 8, yC = 4, DC = 4, pC = {
- ICON: 32,
- "ICN#": 32,
- // m => 16 x 16
- "icm#": 16,
- icm4: 16,
- icm8: 16,
- // s => 16 x 16
- "ics#": 16,
- ics4: 16,
- ics8: 16,
- is32: 16,
- s8mk: 16,
- icp4: 16,
- // l => 32 x 32
- icl4: 32,
- icl8: 32,
- il32: 32,
- l8mk: 32,
- icp5: 32,
- ic11: 32,
- // h => 48 x 48
- ich4: 48,
- ich8: 48,
- ih32: 48,
- h8mk: 48,
- // . => 64 x 64
- icp6: 64,
- ic12: 32,
- // t => 128 x 128
- it32: 128,
- t8mk: 128,
- ic07: 128,
- // . => 256 x 256
- ic08: 256,
- ic13: 256,
- // . => 512 x 512
- ic09: 512,
- ic14: 512,
- // . => 1024 x 1024
- ic10: 1024
-};
-function fr(e, t) {
- const A = t + DC;
- return [
- (0, Hi.toUTF8String)(e, t, A),
- (0, Hi.readUInt32BE)(e, A)
- ];
-}
-function ur(e) {
- const t = pC[e];
- return { width: t, height: t, type: e };
-}
-wB.ICNS = {
- validate: (e) => (0, Hi.toUTF8String)(e, 0, 4) === "icns",
- calculate(e) {
- const t = e.length, A = (0, Hi.readUInt32BE)(e, yC);
- let i = wC, B = fr(e, i), g = ur(B[0]);
- if (i += B[1], i === A)
- return g;
- const n = {
- height: g.height,
- images: [g],
- width: g.width
- };
- for (; i < A && i < t; )
- B = fr(e, i), g = ur(B[0]), i += B[1], n.images.push(g);
- return n;
- }
-};
-var yB = {};
-Object.defineProperty(yB, "__esModule", { value: !0 });
-yB.J2C = void 0;
-const dg = aA;
-yB.J2C = {
- // TODO: this doesn't seem right. SIZ marker doesn't have to be right after the SOC
- validate: (e) => (0, dg.toHexString)(e, 0, 4) === "ff4fff51",
- calculate: (e) => ({
- height: (0, dg.readUInt32BE)(e, 12),
- width: (0, dg.readUInt32BE)(e, 8)
- })
-};
-var DB = {};
-Object.defineProperty(DB, "__esModule", { value: !0 });
-DB.JP2 = void 0;
-const ke = aA;
-DB.JP2 = {
- validate(e) {
- if ((0, ke.readUInt32BE)(e, 4) !== 1783636e3 || (0, ke.readUInt32BE)(e, 0) < 1)
- return !1;
- const t = (0, ke.findBox)(e, "ftyp", 0);
- return t ? (0, ke.readUInt32BE)(e, t.offset + 4) === 1718909296 : !1;
- },
- calculate(e) {
- const t = (0, ke.findBox)(e, "jp2h", 0), A = t && (0, ke.findBox)(e, "ihdr", t.offset + 8);
- if (A)
- return {
- height: (0, ke.readUInt32BE)(e, A.offset + 8),
- width: (0, ke.readUInt32BE)(e, A.offset + 12)
- };
- throw new TypeError("Unsupported JPEG 2000 format");
- }
-};
-var pB = {};
-Object.defineProperty(pB, "__esModule", { value: !0 });
-pB.JPG = void 0;
-const ae = aA, mC = "45786966", GC = 2, fn = 6, FC = 2, RC = "4d4d", SC = "4949", xr = 12, bC = 2;
-function NC(e) {
- return (0, ae.toHexString)(e, 2, 6) === mC;
-}
-function UC(e, t) {
- return {
- height: (0, ae.readUInt16BE)(e, t),
- width: (0, ae.readUInt16BE)(e, t + 2)
- };
-}
-function vC(e, t) {
- const i = fn + 8, B = (0, ae.readUInt)(e, 16, i, t);
- for (let g = 0; g < B; g++) {
- const n = i + bC + g * xr, I = n + xr;
- if (n > e.length)
- return;
- const r = e.slice(n, I);
- if ((0, ae.readUInt)(r, 16, 0, t) === 274)
- return (0, ae.readUInt)(r, 16, 2, t) !== 3 || (0, ae.readUInt)(r, 32, 4, t) !== 1 ? void 0 : (0, ae.readUInt)(r, 16, 8, t);
- }
-}
-function HC(e, t) {
- const A = e.slice(GC, t), i = (0, ae.toHexString)(A, fn, fn + FC), B = i === RC;
- if (B || i === SC)
- return vC(A, B);
-}
-function YC(e, t) {
- if (t > e.length)
- throw new TypeError("Corrupt JPG, exceeded buffer limits");
-}
-pB.JPG = {
- validate: (e) => (0, ae.toHexString)(e, 0, 2) === "ffd8",
- calculate(e) {
- e = e.slice(4);
- let t, A;
- for (; e.length; ) {
- const i = (0, ae.readUInt16BE)(e, 0);
- if (e[i] !== 255) {
- e = e.slice(1);
- continue;
- }
- if (NC(e) && (t = HC(e, i)), YC(e, i), A = e[i + 1], A === 192 || A === 193 || A === 194) {
- const B = UC(e, i + 5);
- return t ? {
- height: B.height,
- orientation: t,
- width: B.width
- } : B;
- }
- e = e.slice(i + 2);
- }
- throw new TypeError("Invalid JPG, no size found");
- }
-};
-var mB = {};
-Object.defineProperty(mB, "__esModule", { value: !0 });
-mB.KTX = void 0;
-const lg = aA;
-mB.KTX = {
- validate: (e) => {
- const t = (0, lg.toUTF8String)(e, 1, 7);
- return ["KTX 11", "KTX 20"].includes(t);
- },
- calculate: (e) => {
- const t = e[5] === 49 ? "ktx" : "ktx2", A = t === "ktx" ? 36 : 20;
- return {
- height: (0, lg.readUInt32LE)(e, A + 4),
- width: (0, lg.readUInt32LE)(e, A),
- type: t
- };
- }
-};
-var GB = {};
-Object.defineProperty(GB, "__esModule", { value: !0 });
-GB.PNG = void 0;
-const Ke = aA, LC = `PNG\r
-
-`, MC = "IHDR", hr = "CgBI";
-GB.PNG = {
- validate(e) {
- if (LC === (0, Ke.toUTF8String)(e, 1, 8)) {
- let t = (0, Ke.toUTF8String)(e, 12, 16);
- if (t === hr && (t = (0, Ke.toUTF8String)(e, 28, 32)), t !== MC)
- throw new TypeError("Invalid PNG");
- return !0;
- }
- return !1;
- },
- calculate(e) {
- return (0, Ke.toUTF8String)(e, 12, 16) === hr ? {
- height: (0, Ke.readUInt32BE)(e, 36),
- width: (0, Ke.readUInt32BE)(e, 32)
- } : {
- height: (0, Ke.readUInt32BE)(e, 20),
- width: (0, Ke.readUInt32BE)(e, 16)
- };
- }
-};
-var FB = {};
-Object.defineProperty(FB, "__esModule", { value: !0 });
-FB.PNM = void 0;
-const wg = aA, dr = {
- P1: "pbm/ascii",
- P2: "pgm/ascii",
- P3: "ppm/ascii",
- P4: "pbm",
- P5: "pgm",
- P6: "ppm",
- P7: "pam",
- PF: "pfm"
-}, lr = {
- default: (e) => {
- let t = [];
- for (; e.length > 0; ) {
- const A = e.shift();
- if (A[0] !== "#") {
- t = A.split(" ");
- break;
- }
- }
- if (t.length === 2)
- return {
- height: parseInt(t[1], 10),
- width: parseInt(t[0], 10)
- };
- throw new TypeError("Invalid PNM");
- },
- pam: (e) => {
- const t = {};
- for (; e.length > 0; ) {
- const A = e.shift();
- if (A.length > 16 || A.charCodeAt(0) > 128)
- continue;
- const [i, B] = A.split(" ");
- if (i && B && (t[i.toLowerCase()] = parseInt(B, 10)), t.height && t.width)
- break;
- }
- if (t.height && t.width)
- return {
- height: t.height,
- width: t.width
- };
- throw new TypeError("Invalid PAM");
- }
-};
-FB.PNM = {
- validate: (e) => (0, wg.toUTF8String)(e, 0, 2) in dr,
- calculate(e) {
- const t = (0, wg.toUTF8String)(e, 0, 2), A = dr[t], i = (0, wg.toUTF8String)(e, 3).split(/[\r\n]+/);
- return (lr[A] || lr.default)(i);
- }
-};
-var RB = {};
-Object.defineProperty(RB, "__esModule", { value: !0 });
-RB.PSD = void 0;
-const yg = aA;
-RB.PSD = {
- validate: (e) => (0, yg.toUTF8String)(e, 0, 4) === "8BPS",
- calculate: (e) => ({
- height: (0, yg.readUInt32BE)(e, 14),
- width: (0, yg.readUInt32BE)(e, 18)
- })
-};
-var SB = {};
-Object.defineProperty(SB, "__esModule", { value: !0 });
-SB.SVG = void 0;
-const wr = aA, SQ = /