echogarden 0.1.8 → 0.1.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -2
- package/data/lexicons/{heteronyms.json → heteronyms.en.json} +22 -1
- package/data/schemas/options.json +29 -1
- package/dist/api/APIOptions.d.ts +2 -0
- package/dist/api/Alignment.d.ts +4 -8
- package/dist/api/Alignment.js.map +1 -1
- package/dist/api/Recognition.d.ts +4 -8
- package/dist/api/Recognition.js.map +1 -1
- package/dist/api/Synthesis.d.ts +8 -5
- package/dist/api/Synthesis.js +29 -9
- package/dist/api/Synthesis.js.map +1 -1
- package/dist/api/Translation.d.ts +4 -8
- package/dist/api/Translation.js.map +1 -1
- package/dist/audio/AudioPlayer.js +4 -4
- package/dist/audio/AudioPlayer.js.map +1 -1
- package/dist/cli/CLI.js +15 -3
- package/dist/cli/CLI.js.map +1 -1
- package/dist/server/Client.d.ts +22 -0
- package/dist/server/Client.js +246 -0
- package/dist/server/Client.js.map +1 -0
- package/dist/server/Server.d.ts +10 -1
- package/dist/server/Server.js +98 -14
- package/dist/server/Server.js.map +1 -1
- package/dist/server/ServerStarter.d.ts +1 -0
- package/dist/server/ServerStarter.js +10 -0
- package/dist/server/ServerStarter.js.map +1 -0
- package/dist/server/Worker.d.ts +57 -0
- package/dist/server/Worker.js +143 -0
- package/dist/server/Worker.js.map +1 -0
- package/dist/synthesis/EspeakTTS.js +5 -6
- package/dist/synthesis/EspeakTTS.js.map +1 -1
- package/dist/synthesis/FliteTTS.d.ts +1 -1
- package/dist/synthesis/FliteTTS.js +2 -2
- package/dist/synthesis/FliteTTS.js.map +1 -1
- package/dist/synthesis/MicrosoftEdgeTTS.js +4 -8
- package/dist/synthesis/MicrosoftEdgeTTS.js.map +1 -1
- package/dist/synthesis/VitsTTS.d.ts +2 -2
- package/dist/synthesis/VitsTTS.js +47 -38
- package/dist/synthesis/VitsTTS.js.map +1 -1
- package/dist/utilities/FileDownloader.js.map +1 -1
- package/dist/utilities/Locale.js +2 -1
- package/dist/utilities/Locale.js.map +1 -1
- package/dist/utilities/Queue.d.ts +8 -0
- package/dist/utilities/Queue.js +14 -0
- package/dist/utilities/Queue.js.map +1 -0
- package/dist/utilities/Utilities.d.ts +2 -1
- package/dist/utilities/Utilities.js +12 -8
- package/dist/utilities/Utilities.js.map +1 -1
- package/docs/CLI.md +0 -1
- package/docs/Engines.md +1 -1
- package/docs/Roadmap.md +7 -9
- package/docs/Technical.md +3 -1
- package/package.json +13 -12
package/dist/cli/CLI.js
CHANGED
|
@@ -18,6 +18,8 @@ import { formatLanguageCodeWithName } from '../utilities/Locale.js';
|
|
|
18
18
|
import { ensureAndGetPackagesDir, loadPackage } from '../utilities/PackageManager.js';
|
|
19
19
|
import { removePackage } from '../utilities/PackageManager.js';
|
|
20
20
|
import { appName } from '../api/Globals.js';
|
|
21
|
+
import { startWebSocketServer } from '../server/Server.js';
|
|
22
|
+
import { runClientWebSocketTest } from '../server/Client.js';
|
|
21
23
|
const log = logToStderr;
|
|
22
24
|
export async function start() {
|
|
23
25
|
setupUnhandledExceptionListeners();
|
|
@@ -178,6 +180,10 @@ async function startWithArgs(parsedArgs) {
|
|
|
178
180
|
await listPackages(parsedArgs.commandArgs, parsedArgs.options);
|
|
179
181
|
break;
|
|
180
182
|
}
|
|
183
|
+
case 'serve': {
|
|
184
|
+
await startServer(parsedArgs.commandArgs, parsedArgs.options);
|
|
185
|
+
break;
|
|
186
|
+
}
|
|
181
187
|
default: {
|
|
182
188
|
log(`Unknown command: ${parsedArgs.command}`);
|
|
183
189
|
process.exit(1);
|
|
@@ -231,7 +237,7 @@ async function speak(command, commandArgs, cliOptions) {
|
|
|
231
237
|
}
|
|
232
238
|
else if (command == "speak-url") {
|
|
233
239
|
const url = mainArg;
|
|
234
|
-
if (!url.startsWith("http://")
|
|
240
|
+
if (!url.startsWith("http://") && !url.startsWith("https://")) {
|
|
235
241
|
throw new Error(`'${url}' is not a valid URL. Only 'http://' and 'https://' protocols are supported`);
|
|
236
242
|
}
|
|
237
243
|
const { fetchDocumentText } = await import("../utilities/WebReader.js");
|
|
@@ -609,14 +615,20 @@ async function uninstallPackages(commandArgs, cliOptions) {
|
|
|
609
615
|
}
|
|
610
616
|
}
|
|
611
617
|
async function listPackages(commandArgs, cliOptions) {
|
|
612
|
-
if (commandArgs.length > 0) {
|
|
613
|
-
}
|
|
614
618
|
const packagesDir = await ensureAndGetPackagesDir();
|
|
615
619
|
const packageNames = await readdir(packagesDir);
|
|
616
620
|
packageNames.sort();
|
|
617
621
|
log(`Total of ${packageNames.length} packages installed in '${packagesDir}'\n`);
|
|
618
622
|
log(packageNames.join("\n"));
|
|
619
623
|
}
|
|
624
|
+
async function startServer(commandArgs, cliOptions) {
|
|
625
|
+
const options = await cliOptionsMapToOptionsObject(cliOptions, "ServerOptions");
|
|
626
|
+
async function onServerStarted(serverOptions) {
|
|
627
|
+
// Run a test routine (early development)
|
|
628
|
+
await runClientWebSocketTest(serverOptions.port, serverOptions.secure);
|
|
629
|
+
}
|
|
630
|
+
await startWebSocketServer(options, onServerStarted);
|
|
631
|
+
}
|
|
620
632
|
async function cliOptionsMapToOptionsObject(cliOptionsMap, optionsRoot, additionalOptionsSchema) {
|
|
621
633
|
const optionsSchema = await getOptionsSchema();
|
|
622
634
|
const resultingObj = {};
|
package/dist/cli/CLI.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CLI.js","sourceRoot":"","sources":["../../src/cli/CLI.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,eAAe,CAAA;AACpC,OAAO,EAAgB,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAChE,OAAO,EAAE,iBAAiB,EAAE,6BAA6B,EAAE,4BAA4B,EAAE,WAAW,EAAoC,gCAAgC,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAA;AACnO,OAAO,EAAE,uBAAuB,EAAwB,MAAM,uBAAuB,CAAA;AACrF,OAAO,EAAoB,eAAe,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAE3F,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAY,iBAAiB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AACtJ,OAAO,EAAmB,eAAe,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AACtH,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAC/C,OAAO,EAAE,kBAAkB,EAAuB,MAAM,+BAA+B,CAAA;AACvF,OAAa,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,WAAW,CAAA;AACpD,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAC9F,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AACjF,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAA;AAC5D,OAAO,EAAY,uBAAuB,EAAE,uBAAuB,EAAE,qCAAqC,EAAE,MAAM,0BAA0B,CAAA;AAC5I,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,QAAQ,EAAE,OAAO,EAAE,sBAAsB,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AACpK,OAAO,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAA;AAEnE,OAAO,EAAE,uBAAuB,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAA;AACrF,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAE3C,MAAM,GAAG,GAAG,WAAW,CAAA;AAEvB,MAAM,CAAC,KAAK,UAAU,KAAK;IAC1B,gCAAgC,EAAE,CAAA;IAClC,oCAAoC;IAEpC,IAAI,IAAkB,CAAA;IAEtB,IAAI;QACH,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QACzC,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAA;QAE9B,IAAI,CAAC,OAAO,EAAE;YACb,GAAG,CAAC,4BAA4B,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;YACzD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;SACf;QAED,IAAI,GAAG,iBAAiB,CAAC,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;QAEvD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;YAChC,MAAM,iBAAiB,GAAG,KAAK,OAAO,SAAS,CAAA;YAC/C,MAAM,qBAAqB,GAAG,iBAAiB,GAAG,OAAO,CAAA;YAEzD,IAAI,UAAU,CAAC,iBAAiB,CAAC,EAAE;gBAClC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAA;aAC7C;iBAAM,IAAI,UAAU,CAAC,qBAAqB,CAAC,EAAE;gBAC7C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,qBAAqB,CAAC,CAAA;aACjD;SACD;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;YAC/B,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAA;YAClD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;YAE7B,IAAI,gBAAkC,CAAA;YAEtC,IAAI,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;gBACvC,gBAAgB,GAAG,MAAM,eAAe,CAAC,cAAc,CAAC,CAAA;aACxD;iBAAM,IAAI,cAAc,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE;gBACnD,gBAAgB,GAAG,MAAM,mBAAmB,CAAC,cAAc,CAAC,CAAA;aAC5D;iBAAM;gBACN,MAAM,IAAI,KAAK,CAAC,0BAA0B,cAAc,oFAAoF,CAAC,CAAA;aAC7I;YAED,IAAI,WAAW,GAAG,IAAI,CAAC,OAAO,CAAA;YAE9B,IAAI,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;gBACrC,WAAW,GAAG,OAAO,CAAA;aACrB;YAED,MAAM,UAAU,GAAG,gBAAgB,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,IAAI,GAAG,EAAkB,CAAA;YAEjF,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE;gBACxC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;aAC1B;YAED,IAAI,CAAC,OAAO,GAAG,UAAU,CAAA;SACzB;KACD;IAAC,OAAO,CAAM,EAAE;QAChB,GAAG,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA;QAC1B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;KACf;IAED,IAAI,SAAS,GAAG,KAAK,CAAA;IACrB,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;QAC9B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAE5B,SAAS,GAAG,IAAI,CAAA;KAChB;IAED,IAAI;QACH,MAAM,aAAa,CAAC,IAAI,CAAC,CAAA;KACzB;IAAC,OAAO,CAAM,EAAE;QAChB,IAAI,SAAS,EAAE;YACd,GAAG,CAAC,CAAC,CAAC,CAAA;SACN;aAAM;YACN,GAAG,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA;SAC1B;QAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;KACf;IAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AAChB,CAAC;AAED,MAAM,cAAc,GAAG,GAAG,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAA;AAE1D,MAAM,WAAW,GAAG;IACnB,GAAG,cAAc,IAAI,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,sCAAsC;IACvF,4BAA4B;IAC5B,GAAG,cAAc,IAAI,KAAK,CAAC,aAAa,CAAC,YAAY,CAAC,2CAA2C;IACjG,iCAAiC;IACjC,GAAG,cAAc,IAAI,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,qCAAqC;IAC1F,2BAA2B;IAC3B,GAAG,cAAc,IAAI,KAAK,CAAC,aAAa,CAAC,iBAAiB,CAAC,6CAA6C;IACxG,+FAA+F;IAC/F,GAAG,cAAc,IAAI,KAAK,CAAC,aAAa,CAAC,YAAY,CAAC,2CAA2C;IACjG,6BAA6B;IAC7B,GAAG,cAAc,IAAI,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,yDAAyD;IAC1G,sCAAsC;IACtC,GAAG,cAAc,IAAI,KAAK,CAAC,aAAa,CAAC,kBAAkB,CAAC,2CAA2C;IACvG,4BAA4B;IAC5B,GAAG,cAAc,IAAI,KAAK,CAAC,aAAa,CAAC,wBAAwB,CAAC,yBAAyB;IAC3F,qCAAqC;IACrC,GAAG,cAAc,IAAI,KAAK,CAAC,aAAa,CAAC,sBAAsB,CAAC,yBAAyB;IACzF,uCAAuC;IACvC,GAAG,cAAc,IAAI,KAAK,CAAC,aAAa,CAAC,uBAAuB,CAAC,2CAA2C;IAC5G,2CAA2C;IAC3C,GAAG,cAAc,IAAI,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,2CAA2C;IAC9F,0BAA0B;IAC1B,GAAG,cAAc,IAAI,KAAK,CAAC,aAAa,CAAC,aAAa,CAAC,0BAA0B;IACjF,4CAA4C;IAC5C,GAAG,cAAc,IAAI,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,kCAAkC;IACrF,+CAA+C;IAC/C,GAAG,cAAc,IAAI,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,kCAAkC;IACvF,iDAAiD;IACjD,GAAG,cAAc,IAAI,KAAK,CAAC,aAAa,CAAC,eAAe,CAAC,kCAAkC;IAC3F,wCAAwC;CACxC,CAAA;AAED,KAAK,UAAU,aAAa,CAAC,UAAwB;IACpD,QAAQ,UAAU,CAAC,OAAO,EAAE;QAC3B,KAAK,OAAO,CAAC;QACb,KAAK,YAAY,CAAC;QAClB,KAAK,WAAW,CAAC;QACjB,KAAK,iBAAiB,CAAC,CAAC;YACvB,MAAM,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,WAAW,EAAE,UAAU,CAAC,OAAO,CAAC,CAAA;YAC3E,MAAK;SACL;QAED,KAAK,YAAY,CAAC,CAAC;YAClB,MAAM,UAAU,CAAC,UAAU,CAAC,WAAW,EAAE,UAAU,CAAC,OAAO,CAAC,CAAA;YAC5D,MAAK;SACL;QAED,KAAK,OAAO,CAAC,CAAC;YACb,MAAM,KAAK,CAAC,UAAU,CAAC,WAAW,EAAE,UAAU,CAAC,OAAO,CAAC,CAAA;YACvD,MAAK;SACL;QAED,KAAK,kBAAkB,CAAC,CAAC;YACxB,MAAM,eAAe,CAAC,UAAU,CAAC,WAAW,EAAE,UAAU,CAAC,OAAO,CAAC,CAAA;YACjE,MAAK;SACL;QAED,KAAK,iBAAiB,CAAC,CAAC;YACvB,MAAM,cAAc,CAAC,UAAU,CAAC,WAAW,EAAE,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;YACxE,MAAK;SACL;QAED,KAAK,wBAAwB,CAAC,CAAC;YAC9B,MAAM,cAAc,CAAC,UAAU,CAAC,WAAW,EAAE,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;YAC1E,MAAK;SACL;QAED,KAAK,sBAAsB,CAAC,CAAC;YAC5B,MAAM,cAAc,CAAC,UAAU,CAAC,WAAW,EAAE,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;YACxE,MAAK;SACL;QAED,KAAK,uBAAuB,CAAC,CAAC;YAC7B,MAAM,mBAAmB,CAAC,UAAU,CAAC,WAAW,EAAE,UAAU,CAAC,OAAO,CAAC,CAAA;YACrE,MAAK;SACL;QAED,KAAK,SAAS,CAAC,CAAC;YACf,MAAM,OAAO,CAAC,UAAU,CAAC,WAAW,EAAE,UAAU,CAAC,OAAO,CAAC,CAAA;YACzD,MAAK;SACL;QAED,KAAK,aAAa,CAAC,CAAC;YACnB,MAAM,aAAa,CAAC,UAAU,CAAC,WAAW,EAAE,UAAU,CAAC,OAAO,CAAC,CAAA;YAC/D,MAAK;SACL;QAED,KAAK,SAAS,CAAC,CAAC;YACf,MAAM,eAAe,CAAC,UAAU,CAAC,WAAW,EAAE,UAAU,CAAC,OAAO,CAAC,CAAA;YACjE,MAAK;SACL;QAED,KAAK,WAAW,CAAC,CAAC;YACjB,MAAM,iBAAiB,CAAC,UAAU,CAAC,WAAW,EAAE,UAAU,CAAC,OAAO,CAAC,CAAA;YACnE,MAAK;SACL;QAED,KAAK,eAAe,CAAC,CAAC;YACrB,MAAM,YAAY,CAAC,UAAU,CAAC,WAAW,EAAE,UAAU,CAAC,OAAO,CAAC,CAAA;YAC9D,MAAK;SACL;QAED,OAAO,CAAC,CAAC;YACR,GAAG,CAAC,oBAAoB,UAAU,CAAC,OAAO,EAAE,CAAC,CAAA;YAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;SACf;KACD;AACF,CAAC;AAID,KAAK,UAAU,KAAK,CAAC,OAAqB,EAAE,WAAqB,EAAE,UAA+B;IACjG,MAAM,cAAc,GAAG,IAAI,MAAM,EAAE,CAAA;IAEnC,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAA;IAC9B,MAAM,eAAe,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAE5C,IAAI,OAAO,IAAI,SAAS,EAAE;QACzB,IAAI,OAAO,IAAI,OAAO,EAAE;YACvB,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAA;SAC7E;aAAM,IAAI,OAAO,IAAI,YAAY,EAAE;YACnC,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAA;SAClF;aAAM,IAAI,OAAO,IAAI,WAAW,EAAE;YAClC,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAA;SAChF;aAAM,IAAI,OAAO,IAAI,iBAAiB,EAAE;YACxC,MAAM,IAAI,KAAK,CAAC,+FAA+F,CAAC,CAAA;SAChH;QAED,OAAM;KACN;IAED,IAAI,YAAsB,CAAA;IAE1B,IAAI,OAAO,IAAI,OAAO,EAAE;QACvB,YAAY,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAA;KACzC;SAAM,IAAI,OAAO,IAAI,YAAY,EAAE;QACnC,MAAM,UAAU,GAAG,OAAO,CAAA;QAE1B,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE;YAC5B,MAAM,IAAI,KAAK,CAAC,0BAA0B,UAAU,kBAAkB,CAAC,CAAA;SACvE;QAED,MAAM,mBAAmB,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAA;QACxD,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAA;QAErE,IAAI,mBAAmB,IAAI,KAAK,EAAE;YACjC,YAAY,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAA;SAC7C;aAAM,IAAI,mBAAmB,IAAI,MAAM,IAAI,mBAAmB,IAAI,KAAK,EAAE;YACzE,MAAM,WAAW,GAAG,MAAM,iBAAiB,CAAC,WAAW,CAAC,CAAA;YACxD,YAAY,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAA;SAC7C;aAAM,IAAI,mBAAmB,IAAI,KAAK,IAAI,mBAAmB,IAAI,KAAK,EAAE;YACxE,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAA;YACrE,YAAY,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;SACxE;aAAM;YACN,MAAM,IAAI,KAAK,CAAC,wFAAwF,CAAC,CAAA;SACzG;KACD;SAAM,IAAI,OAAO,IAAI,WAAW,EAAE;QAClC,MAAM,GAAG,GAAG,OAAO,CAAA;QAEnB,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE;YAC9D,MAAM,IAAI,KAAK,CAAC,IAAI,GAAG,6EAA6E,CAAC,CAAA;SACrG;QAED,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAA;QACvE,MAAM,cAAc,GAAG,MAAM,iBAAiB,CAAC,GAAG,CAAC,CAAA;QAEnD,YAAY,GAAG,iBAAiB,CAAC,cAAc,CAAC,CAAA;KAChD;SAAM,IAAI,OAAO,IAAI,iBAAiB,EAAE;QACxC,MAAM,EAAE,qBAAqB,EAAE,GAAG,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAA;QACjF,IAAI,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;QAEzC,IAAI,CAAC,QAAQ,EAAE;YACd,QAAQ,GAAG,IAAI,CAAA;YACf,UAAU,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;SACpC;QAED,YAAY,GAAG,MAAM,qBAAqB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;KAC7D;SAAM;QACN,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;KAClC;IAED,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,oBAAoB,CAAC,eAAe,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;IAE7F,MAAM,uBAAuB,GAAG,IAAI,GAAG,EAAgC,CAAA;IACvE,uBAAuB,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;IAExD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;QAC1D,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,eAAe,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,CAAA;KACxD;IAED,MAAM,OAAO,GAAyB,MAAM,4BAA4B,CAAC,UAAU,EAAE,kBAAkB,EAAE,uBAAuB,CAAC,CAAA;IAEjI,KAAK,UAAU,SAAS,CAAC,WAA0C;QAClE,IAAI,mBAAmB,EAAE;YACxB,cAAc,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAA;SACxD;QAED,MAAM,0BAA0B,CAAC,eAAe,EAAE,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,QAAQ,EAAE,WAAW,CAAC,UAAU,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAA;QAE9K,cAAc,CAAC,GAAG,EAAE,CAAA;QAEpB,IAAK,OAAe,CAAC,IAAI,EAAE;YAC1B,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,WAAW,CAAC,iBAAiB,CAAC,CAAA;YACnG,MAAM,mBAAmB,GAAG,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC,gBAAgB,CAAC,QAAS,CAAC,CAAA;YAExG,MAAM,qBAAqB,CAAC,kBAAkB,EAAE,mBAAmB,EAAE,WAAW,CAAC,UAAU,CAAC,CAAA;SAC5F;IACF,CAAC;IAED,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,GAAG,MAAM,GAAG,CAAC,kBAAkB,CAAC,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,CAAA;IAEhH,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;QAC/B,cAAc,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAA;KAC9C;IAED,KAAK,MAAM,UAAU,IAAI,eAAe,EAAE;QACzC,MAAM,gBAAgB,GAAG,UAAU,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAA;QAEjE,IAAI,gBAAgB,EAAE;YACrB,SAAQ;SACR;QAED,MAAM,SAAS,GAAG,YAAY,CAAC,UAAU,CAAC,CAAA;QAC1C,MAAM,SAAS,CAAC,gBAAgB,EAAE,QAAQ,EAAE,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;KACtE;IAED,cAAc,CAAC,GAAG,EAAE,CAAA;AACrB,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,WAAqB,EAAE,UAA+B;IAC/E,MAAM,cAAc,GAAG,IAAI,MAAM,EAAE,CAAA;IAEnC,MAAM,cAAc,GAAG,WAAW,CAAC,CAAC,CAAC,CAAA;IACrC,MAAM,eAAe,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAE5C,IAAI,cAAc,IAAI,SAAS,EAAE;QAChC,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAA;KACrF;IAED,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE;QAChC,MAAM,IAAI,KAAK,CAAC,gCAAgC,cAAc,kBAAkB,CAAC,CAAA;KACjF;IAED,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,oBAAoB,CAAC,eAAe,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;IAE7F,MAAM,uBAAuB,GAAG,IAAI,GAAG,EAAgC,CAAA;IACvE,uBAAuB,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;IAExD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;QAC1D,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,eAAe,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,CAAA;KACxD;IAED,MAAM,OAAO,GAA2B,MAAM,4BAA4B,CAAC,UAAU,EAAE,oBAAoB,EAAE,uBAAuB,CAAC,CAAA;IAErI,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,MAAM,GAAG,CAAC,aAAa,CAAC,cAAc,EAAE,OAAO,CAAC,CAAA;IAE3F,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;QAC/B,cAAc,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAA;KAC9C;IAED,KAAK,MAAM,UAAU,IAAI,eAAe,EAAE;QACzC,MAAM,gBAAgB,GAAG,UAAU,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAA;QAEjE,IAAI,gBAAgB,EAAE;YACrB,SAAQ;SACR;QAED,MAAM,SAAS,GAAG,YAAY,CAAC,UAAU,CAAC,CAAA;QAE1C,MAAM,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAA;KAC/C;IAED,IAAK,OAAe,CAAC,IAAI,EAAE;QAC1B,MAAM,eAAe,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAA;QAErD,MAAM,qBAAqB,CAAC,eAAe,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAA;KAClE;IAED,cAAc,CAAC,GAAG,EAAE,CAAA;AACrB,CAAC;AAED,KAAK,UAAU,KAAK,CAAC,WAAqB,EAAE,UAA+B;IAC1E,MAAM,cAAc,GAAG,IAAI,MAAM,EAAE,CAAA;IAEnC,MAAM,aAAa,GAAG,WAAW,CAAC,CAAC,CAAC,CAAA;IACpC,MAAM,eAAe,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAE5C,IAAI,aAAa,IAAI,SAAS,EAAE;QAC/B,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAA;KAC7E;IAED,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE;QAC/B,MAAM,IAAI,KAAK,CAAC,0BAA0B,aAAa,kBAAkB,CAAC,CAAA;KAC1E;IAED,MAAM,sBAAsB,GAAG,WAAW,CAAC,CAAC,CAAC,CAAA;IAE7C,IAAI,sBAAsB,IAAI,SAAS,EAAE;QACxC,MAAM,IAAI,KAAK,CAAC,gFAAgF,CAAC,CAAA;KACjG;IAED,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,EAAE;QACxC,MAAM,IAAI,KAAK,CAAC,6BAA6B,sBAAsB,kBAAkB,CAAC,CAAA;KACtF;IAED,MAAM,sBAAsB,GAAG,gBAAgB,CAAC,sBAAsB,CAAC,CAAA;IACvE,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,sBAAsB,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAA;IAEjF,IAAI,IAAY,CAAA;IAEhB,IAAI,sBAAsB,IAAI,KAAK,EAAE;QACpC,IAAI,GAAG,WAAW,CAAA;KAClB;SAAM,IAAI,sBAAsB,IAAI,MAAM,IAAI,sBAAsB,IAAI,KAAK,EAAE;QAC/E,IAAI,GAAG,MAAM,iBAAiB,CAAC,WAAW,CAAC,CAAA;KAC3C;SAAM,IAAI,sBAAsB,IAAI,KAAK,IAAI,sBAAsB,IAAI,KAAK,EAAE;QAC9E,IAAI,GAAG,eAAe,CAAC,WAAW,CAAC,CAAA;KACnC;SAAM;QACN,MAAM,IAAI,KAAK,CAAC,0FAA0F,CAAC,CAAA;KAC3G;IAED,MAAM,uBAAuB,GAAG,IAAI,GAAG,EAAgC,CAAA;IACvE,uBAAuB,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;IAExD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;QAC1D,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,eAAe,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,CAAA;KACxD;IAED,MAAM,OAAO,GAAyB,MAAM,4BAA4B,CAAC,UAAU,EAAE,kBAAkB,EAAE,uBAAuB,CAAC,CAAA;IAEjI,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,oBAAoB,CAAC,eAAe,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;IAE7F,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,MAAM,GAAG,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;IAE1G,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,qCAAqC,CAAC,YAAY,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAA;IAE3G,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;QAC/B,cAAc,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAA;KAC9C;IAED,IAAI,mBAAmB,EAAE;QACxB,KAAK,IAAI,YAAY,GAAG,CAAC,EAAE,YAAY,GAAG,eAAe,CAAC,MAAM,EAAE,YAAY,EAAE,EAAE;YACjF,MAAM,YAAY,GAAG,eAAe,CAAC,YAAY,CAAC,CAAA;YAClD,MAAM,YAAY,GAAG,mBAAmB,CAAC,QAAQ,EAAE,YAAY,CAAC,SAAS,EAAE,YAAY,CAAC,OAAO,CAAC,CAAA;YAChG,MAAM,gBAAgB,GAAG,uBAAuB,CAAC,YAAY,CAAC,QAAS,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,CAAA;YAEjG,MAAM,0BAA0B,CAAC,eAAe,EAAE,YAAY,EAAE,eAAe,CAAC,MAAM,EAAE,YAAY,EAAE,gBAAgB,EAAE,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;SACpJ;KACD;IAED,KAAK,MAAM,UAAU,IAAI,eAAe,EAAE;QACzC,MAAM,gBAAgB,GAAG,UAAU,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAA;QAEjE,IAAI,gBAAgB,EAAE;YACrB,SAAQ;SACR;QAED,MAAM,SAAS,GAAG,YAAY,CAAC,UAAU,CAAC,CAAA;QAE1C,MAAM,SAAS,CAAC,QAAQ,EAAE,eAAe,EAAE,UAAU,CAAC,CAAA;KACtD;IAED,IAAK,OAAe,CAAC,IAAI,EAAE;QAC1B,MAAM,eAAe,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAA;QAErD,MAAM,YAAY,GAAG,eAAe,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,YAAY,CAAC,QAAS,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC,aAAa,CAAC,QAAS,CAAC,CAAA;QAEtI,MAAM,qBAAqB,CAAC,eAAe,EAAE,YAAY,EAAE,UAAU,CAAC,CAAA;KACtE;IAED,cAAc,CAAC,GAAG,EAAE,CAAA;AACrB,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,WAAqB,EAAE,UAA+B;IACpF,MAAM,cAAc,GAAG,IAAI,MAAM,EAAE,CAAA;IAEnC,MAAM,aAAa,GAAG,WAAW,CAAC,CAAC,CAAC,CAAA;IACpC,MAAM,eAAe,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAE5C,IAAI,aAAa,IAAI,SAAS,EAAE;QAC/B,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAA;KACxF;IAED,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE;QAC/B,MAAM,IAAI,KAAK,CAAC,yBAAyB,aAAa,kBAAkB,CAAC,CAAA;KACzE;IAED,MAAM,oBAAoB,CAAC,eAAe,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;IAE7D,MAAM,uBAAuB,GAAG,IAAI,GAAG,EAAgC,CAAA;IACvE,uBAAuB,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;IAExD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;QAC1D,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,eAAe,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,CAAA;KACxD;IAED,MAAM,OAAO,GAAiC,MAAM,4BAA4B,CAAC,UAAU,EAAE,0BAA0B,EAAE,uBAAuB,CAAC,CAAA;IAEjJ,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,MAAM,GAAG,CAAC,mBAAmB,CAAC,aAAa,EAAE,OAAO,CAAC,CAAA;IAEhH,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;QAC/B,cAAc,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAA;KAC9C;IAED,KAAK,MAAM,UAAU,IAAI,eAAe,EAAE;QACzC,MAAM,gBAAgB,GAAG,UAAU,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAA;QAEjE,IAAI,gBAAgB,EAAE;YACrB,SAAQ;SACR;QAED,MAAM,SAAS,GAAG,YAAY,CAAC,UAAU,CAAC,CAAA;QAE1C,MAAM,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAA;KAC/C;IAED,IAAK,OAAe,CAAC,IAAI,EAAE;QAC1B,MAAM,eAAe,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAA;QAErD,MAAM,qBAAqB,CAAC,eAAe,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAA;KAClE;AACF,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,WAAqB,EAAE,UAA+B,EAAE,IAAgC;IACrH,MAAM,cAAc,GAAG,IAAI,MAAM,EAAE,CAAA;IAEnC,MAAM,aAAa,GAAG,WAAW,CAAC,CAAC,CAAC,CAAA;IACpC,MAAM,eAAe,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAE5C,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE;QAC/B,MAAM,IAAI,KAAK,CAAC,yBAAyB,aAAa,kBAAkB,CAAC,CAAA;KACzE;IAED,MAAM,oBAAoB,CAAC,eAAe,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;IAE/D,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,aAAa,CAAC,CAAA;IAC1D,MAAM,yBAAyB,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAA;IAEvD,IAAI,OAAqC,CAAA;IAEzC,IAAI,IAAI,IAAI,MAAM,IAAI,CAAC,IAAI,IAAI,MAAM,IAAI,yBAAyB,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,EAAE;QACjG,IAAI,aAAa,IAAI,SAAS,EAAE;YAC/B,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC,CAAA;SAC5F;QAED,IAAI,CAAC,yBAAyB,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE;YAC5D,MAAM,IAAI,KAAK,CAAC,gEAAgE,kBAAkB,GAAG,CAAC,CAAA;SACtG;QAED,MAAM,OAAO,GAAqC,MAAM,4BAA4B,CAAC,UAAU,EAAE,8BAA8B,CAAC,CAAA;QAEhI,IAAI,IAAI,GAAG,MAAM,QAAQ,CAAC,aAAa,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAA;QAE/D,IAAI,kBAAkB,IAAI,KAAK,IAAI,kBAAkB,IAAI,KAAK,EAAE;YAC/D,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC,CAAA;SAC5B;QAED,MAAM,EAAE,gBAAgB,EAAE,6BAA6B,EAAE,GAAG,MAAM,GAAG,CAAC,kBAAkB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QAEvG,OAAO,GAAG,6BAA6B,CAAA;KACvC;SAAM;QACN,IAAI,aAAa,IAAI,SAAS,EAAE;YAC/B,MAAM,IAAI,KAAK,CAAC,mFAAmF,CAAC,CAAA;SACpG;QAED,MAAM,OAAO,GAAuC,MAAM,4BAA4B,CAAC,UAAU,EAAE,gCAAgC,CAAC,CAAA;QAEpI,MAAM,EAAE,gBAAgB,EAAE,6BAA6B,EAAE,GAAG,MAAM,GAAG,CAAC,wBAAwB,CAAC,aAAa,EAAE,OAAO,CAAC,CAAA;QAEtH,OAAO,GAAG,6BAA6B,CAAA;KACvC;IAED,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;QAC/B,cAAc,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAA;QAE9C,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,0BAA0B,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAE1I,KAAK,MAAM,UAAU,IAAI,eAAe,EAAE;YACzC,MAAM,SAAS,GAAG,YAAY,CAAC,UAAU,CAAC,CAAA;YAE1C,MAAM,SAAS,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,OAAc,EAAE,aAAa,CAAC,CAAA;SACtE;KACD;SAAM;QACN,MAAM,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,0BAA0B,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAEvJ,GAAG,CAAC,EAAE,CAAC,CAAA;QACP,GAAG,CAAC,aAAa,CAAC,CAAA;KAClB;AACF,CAAC;AAED,KAAK,UAAU,mBAAmB,CAAC,WAAqB,EAAE,UAA+B;IACxF,MAAM,cAAc,GAAG,IAAI,MAAM,EAAE,CAAA;IAEnC,MAAM,aAAa,GAAG,WAAW,CAAC,CAAC,CAAC,CAAA;IACpC,MAAM,eAAe,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAE5C,IAAI,aAAa,IAAI,SAAS,EAAE;QAC/B,MAAM,IAAI,KAAK,CAAC,4EAA4E,CAAC,CAAA;KAC7F;IAED,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE;QAC/B,MAAM,IAAI,KAAK,CAAC,gCAAgC,aAAa,kBAAkB,CAAC,CAAA;KAChF;IAED,MAAM,oBAAoB,CAAC,eAAe,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;IAE9D,MAAM,uBAAuB,GAAG,IAAI,GAAG,EAAgC,CAAA;IACvE,uBAAuB,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;IAExD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;QAC1D,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,eAAe,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,CAAA;KACxD;IAED,MAAM,OAAO,GAAmB,MAAM,4BAA4B,CAAC,UAAU,EAAE,YAAY,EAAE,uBAAuB,CAAC,CAAA;IACrH,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,MAAM,GAAG,CAAC,uBAAuB,CAAC,aAAa,EAAE,OAAO,CAAC,CAAA;IAExF,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;QAC/B,cAAc,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAA;KAC9C;IAED,KAAK,MAAM,UAAU,IAAI,eAAe,EAAE;QACzC,MAAM,gBAAgB,GAAG,UAAU,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAA;QAEjE,IAAI,gBAAgB,EAAE;YACrB,SAAQ;SACR;QAED,MAAM,SAAS,GAAG,YAAY,CAAC,UAAU,CAAC,CAAA;QAE1C,MAAM,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAA;KACvC;IAED,IAAK,OAAe,CAAC,IAAI,EAAE;QAC1B,MAAM,eAAe,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAA;QAErD,MAAM,qBAAqB,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAA;KACtD;IAED,cAAc,CAAC,GAAG,EAAE,CAAA;AACrB,CAAC;AAED,KAAK,UAAU,OAAO,CAAC,WAAqB,EAAE,UAA+B;IAC5E,MAAM,cAAc,GAAG,IAAI,MAAM,EAAE,CAAA;IAEnC,MAAM,aAAa,GAAG,WAAW,CAAC,CAAC,CAAC,CAAA;IACpC,MAAM,eAAe,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAE5C,IAAI,aAAa,IAAI,SAAS,EAAE;QAC/B,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAA;KACjF;IAED,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE;QAC/B,MAAM,IAAI,KAAK,CAAC,gCAAgC,aAAa,kBAAkB,CAAC,CAAA;KAChF;IAED,MAAM,oBAAoB,CAAC,eAAe,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAA;IAE/D,MAAM,uBAAuB,GAAG,IAAI,GAAG,EAAgC,CAAA;IACvE,uBAAuB,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;IAExD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;QAC1D,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,eAAe,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,CAAA;KACxD;IAED,MAAM,OAAO,GAAyB,MAAM,4BAA4B,CAAC,UAAU,EAAE,kBAAkB,EAAE,uBAAuB,CAAC,CAAA;IACjI,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,WAAW,CAAC,aAAa,EAAE,OAAO,CAAC,CAAA;IAEjE,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;QAC/B,cAAc,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAA;KAC9C;IAED,KAAK,MAAM,QAAQ,IAAI,eAAe,EAAE;QACvC,MAAM,SAAS,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAA;QAExC,MAAM,SAAS,CAAC,WAAW,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;KACpC;IAED,IAAK,OAAe,CAAC,IAAI,EAAE;QAC1B,MAAM,gBAAgB,CAAC,WAAW,CAAC,CAAA;KACnC;IAED,cAAc,CAAC,GAAG,EAAE,CAAA;AACrB,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,WAAqB,EAAE,UAA+B;IAClF,MAAM,cAAc,GAAG,IAAI,MAAM,EAAE,CAAA;IAEnC,MAAM,YAAY,GAAG,WAAW,CAAC,CAAC,CAAC,CAAA;IACnC,MAAM,eAAe,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAE5C,IAAI,YAAY,IAAI,SAAS,EAAE;QAC9B,MAAM,aAAa,GAAG,MAAM,gBAAgB,EAAE,CAAA;QAC9C,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,uBAAuB,CAAC,CAAC,yBAAyB,EAAE,QAAQ,CAAC,EAAE,aAAa,CAAC,CAAA;QAE9G,MAAM,IAAI,KAAK,CAAC,gFAAgF,cAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;KAC7H;IAED,MAAM,oBAAoB,CAAC,eAAe,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;IAE/D,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;IAEtC,MAAM,OAAO,GAAgC,MAAM,4BAA4B,CAAC,UAAU,EAAE,yBAAyB,CAAC,CAAA;IAEtH,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,GAAG,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAA;IAEzD,MAAM,aAAa,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;QAC3C,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAA;QAC3B,MAAM,kBAAkB,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,0BAA0B,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC3G,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAA;QAE/B,IAAI,SAAS,GAAG,SAAS,QAAQ,gBAAgB,kBAAkB,aAAa,UAAU,EAAE,CAAA;QAE5F,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,CAAA;QAEvC,IAAI,YAAY,EAAE;YACjB,SAAS,IAAI,oBAAoB,YAAY,EAAE,CAAA;SAC/C;QAED,OAAO,SAAS,CAAA;IACjB,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAEf,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;QAC/B,cAAc,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAA;QAE9C,KAAK,MAAM,QAAQ,IAAI,eAAe,EAAE;YACvC,MAAM,SAAS,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAA;YAExC,MAAM,SAAS,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,SAAgB,EAAE,aAAa,CAAC,CAAA;SACxE;KACD;SAAM;QACN,GAAG,CAAC,aAAa,CAAC,CAAA;KAClB;AACF,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,WAAqB,EAAE,UAA+B;IACpF,IAAI,WAAW,CAAC,MAAM,IAAI,CAAC,EAAE;QAC5B,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAA;KAC7C;IAED,MAAM,kBAAkB,GAAa,EAAE,CAAA;IAEvC,KAAK,MAAM,WAAW,IAAI,WAAW,EAAE;QACtC,IAAI;YACH,MAAM,WAAW,CAAC,WAAW,CAAC,CAAA;SAC9B;QAAC,OAAO,CAAC,EAAE;YACX,GAAG,CAAC,6BAA6B,WAAW,KAAK,CAAC,EAAE,CAAC,CAAA;YACrD,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;SACpC;KACD;IAED,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE;QAClC,IAAI,kBAAkB,CAAC,MAAM,IAAI,CAAC,EAAE;YACnC,GAAG,CAAC,eAAe,kBAAkB,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAA;SAC7D;aAAM;YACN,GAAG,CAAC,gBAAgB,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAA;SACtE;KACD;AACF,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,WAAqB,EAAE,UAA+B;IACtF,IAAI,WAAW,CAAC,MAAM,IAAI,CAAC,EAAE;QAC5B,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAA;KAC7C;IAED,MAAM,kBAAkB,GAAa,EAAE,CAAA;IAEvC,KAAK,MAAM,WAAW,IAAI,WAAW,EAAE;QACtC,IAAI;YACH,MAAM,aAAa,CAAC,WAAW,CAAC,CAAA;SAChC;QAAC,OAAO,CAAC,EAAE;YACX,GAAG,CAAC,+BAA+B,WAAW,KAAK,CAAC,EAAE,CAAC,CAAA;YACvD,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;SACpC;KACD;IAED,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE;QAClC,GAAG,CAAC,gBAAgB,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAA;KACxE;AACF,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,WAAqB,EAAE,UAA+B;IACjF,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;KAC3B;IAED,MAAM,WAAW,GAAG,MAAM,uBAAuB,EAAE,CAAA;IAEnD,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,CAAA;IAE/C,YAAY,CAAC,IAAI,EAAE,CAAA;IAEnB,GAAG,CAAC,YAAY,YAAY,CAAC,MAAM,2BAA2B,WAAW,KAAK,CAAC,CAAA;IAE/E,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;AAC7B,CAAC;AAED,KAAK,UAAU,4BAA4B,CAAC,aAAkC,EAAE,WAA6B,EAAE,uBAA2D;IACzK,MAAM,aAAa,GAAG,MAAM,gBAAgB,EAAE,CAAA;IAC9C,MAAM,YAAY,GAAQ,EAAE,CAAA;IAE5B,SAAS,cAAc,CAAC,IAAc,EAAE,KAAU;QACjD,IAAI,aAAa,GAAG,YAAY,CAAA;QAEhC,KAAK,IAAI,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE;YAC1D,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAA;YAE1B,IAAI,QAAQ,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;gBAChC,aAAa,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;aAC1B;iBAAM;gBACN,IAAI,CAAC,CAAC,GAAG,IAAI,aAAa,CAAC,EAAE;oBAC5B,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,CAAA;iBACvB;gBAED,aAAa,GAAG,aAAa,CAAC,GAAG,CAAC,CAAA;aAClC;SACD;IACF,CAAC;IAED,KAAK,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,aAAa,EAAE;QACvC,IAAI,SAAS,GAAG,KAAK,CAAA;QAErB,IAAI,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;YAC1B,SAAS,GAAG,IAAI,CAAA;YAChB,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YAElB,IAAI,KAAK,EAAE;gBACV,MAAM,IAAI,KAAK,CAAC,yBAAyB,GAAG,wBAAwB,CAAC,CAAA;aACrE;SACD;QAED,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAE3B,IAAI,UAAkB,CAAA;QACtB,IAAI,UAA6B,CAAA;QAEjC,IAAI,uBAAuB,IAAI,uBAAuB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YAChE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,uBAAuB,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC,CAAA;SAC5E;aAAM;YACN,MAAM,YAAY,GAAG,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,CAAC;YAC5C,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,uBAAuB,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC,CAAA;SAC/F;QAED,IAAI,WAAgB,CAAA;QAEpB,IAAI,UAAU,IAAI,SAAS,EAAE;YAC5B,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,EAAE,EAAE;gBACjC,WAAW,GAAG,CAAC,SAAS,CAAA;aACxB;iBAAM,IAAI,KAAK,IAAI,MAAM,EAAE;gBAC3B,WAAW,GAAG,IAAI,CAAA;aAClB;iBAAM,IAAI,KAAK,IAAI,OAAO,EAAE;gBAC5B,WAAW,GAAG,KAAK,CAAA;aACnB;iBAAM;gBACN,MAAM,IAAI,KAAK,CAAC,iBAAiB,GAAG,oEAAoE,KAAK,IAAI,CAAC,CAAA;aAClH;SACD;aAAM,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,EAAE,EAAE;YACxC,MAAM,IAAI,KAAK,CAAC,4CAA4C,GAAG,qBAAqB,UAAU,GAAG,CAAC,CAAA;SAClG;aAAM,IAAI,SAAS,EAAE;YACrB,MAAM,IAAI,KAAK,CAAC,iBAAiB,GAAG,oEAAoE,CAAC,CAAA;SACzG;aAAM,IAAI,UAAU,IAAI,QAAQ,EAAE;YAClC,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC,CAAA;YAE/B,IAAI,KAAK,CAAC,WAAW,CAAC,EAAE;gBACvB,MAAM,IAAI,KAAK,CAAC,iBAAiB,GAAG,mBAAmB,KAAK,iCAAiC,CAAC,CAAA;aAC9F;SACD;aAAM;YACN,WAAW,GAAG,KAAK,CAAA;SACnB;QAED,IAAI,UAAU,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;YACpD,MAAM,IAAI,KAAK,CAAC,iBAAiB,GAAG,oBAAoB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;SAChF;QAED,cAAc,CAAC,IAAI,EAAE,WAAW,CAAC,CAAA;KACjC;IAED,OAAO,YAAY,CAAA;AACpB,CAAC;AAED,IAAI,mBAAwB,CAAA;AAC5B,MAAM,CAAC,KAAK,UAAU,gBAAgB;IACrC,IAAI,CAAC,mBAAmB,EAAE;QACzB,mBAAmB,GAAG,MAAM,oBAAoB,CAAC,sBAAsB,CAAC,2BAA2B,CAAC,CAAC,CAAA;KACrG;IAED,OAAO,mBAAmB,CAAA;AAC3B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,eAAyB,EAAE,kBAA2B,EAAE,qBAA8B,EAAE,qBAA8B;IAChK,MAAM,uBAAuB,GAAa,EAAE,CAAA;IAE5C,IAAI,kBAAkB,EAAE;QACvB,uBAAuB,CAAC,IAAI,CAAC,GAAG,kCAAkC,CAAC,CAAA;KACnE;IAED,IAAI,qBAAqB,EAAE;QAC1B,uBAAuB,CAAC,IAAI,CAAC,GAAG,+BAA+B,CAAC,CAAA;KAChE;IAED,IAAI,qBAAqB,EAAE;QAC1B,uBAAuB,CAAC,IAAI,CAAC,GAAG,+BAA+B,CAAC,CAAA;KAChE;IAED,IAAI,mBAAmB,GAAG,KAAK,CAAA;IAE/B,KAAK,MAAM,cAAc,IAAI,eAAe,EAAE;QAC7C,MAAM,aAAa,GAAG,gBAAgB,CAAC,cAAc,CAAC,CAAA;QAEtD,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE;YACrD,IAAI,SAAS,GAAG,EAAE,CAAA;YAClB,SAAS,IAAI,gCAAgC,cAAc,8CAA8C,CAAA;YACzG,SAAS,IAAI,+BAA+B,CAAA;YAE5C,IAAI,kBAAkB,EAAE;gBACvB,SAAS,IAAI,GAAG,4BAA4B,CAAC,kCAAkC,CAAC,4BAA4B,CAAA;aAC5G;YAED,IAAI,qBAAqB,EAAE;gBAC1B,SAAS,IAAI,GAAG,4BAA4B,CAAC,+BAA+B,CAAC,+BAA+B,CAAA;aAC5G;YAED,IAAI,qBAAqB,EAAE;gBAC1B,SAAS,IAAI,GAAG,4BAA4B,CAAC,+BAA+B,CAAC,+BAA+B,CAAA;aAC5G;YAED,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,CAAA;SAC1B;QAED,MAAM,gBAAgB,GAAG,cAAc,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAA;QAErE,IAAI,gBAAgB,EAAE;YACrB,IAAI,gBAAgB,CAAC,CAAC,CAAC,IAAI,SAAS,EAAE;gBACrC,MAAM,IAAI,KAAK,CAAC,oCAAoC,gBAAgB,CAAC,CAAC,CAAC,8HAA8H,CAAC,CAAA;aACtM;YAED,mBAAmB,GAAG,IAAI,CAAA;SAC1B;KACD;IAED,OAAO,EAAE,mBAAmB,EAAE,CAAA;AAC/B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAAC,eAAyB,EAAE,KAAa,EAAE,KAAa,EAAE,KAAe,EAAE,QAAkB,EAAE,IAAY,EAAE,QAAgB;IAC5K,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;IAE7D,MAAM,YAAY,GAAG,CAAC,MAAM,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;IAEzG,MAAM,kBAAkB,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAA;IAExD,IAAI,WAAmB,CAAA;IAEvB,MAAM,SAAS,GAAG,EAAE,CAAA;IAEpB,IAAI,kBAAkB,CAAC,MAAM,GAAG,SAAS,EAAE;QAC1C,WAAW,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,IAAI,EAAE,CAAA;KAC/D;SAAM;QACN,WAAW,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,KAAK,CAAA;KAC3E;IAED,KAAK,MAAM,cAAc,IAAI,eAAe,EAAE;QAC7C,MAAM,gBAAgB,GAAG,cAAc,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAA;QAErE,IAAI,CAAC,gBAAgB,EAAE;YACtB,SAAQ;SACR;QAED,MAAM,eAAe,GAAG,cAAc,CAAC,OAAO,CAAC,sBAAsB,EAAE,GAAG,6BAA6B,CAAC,KAAK,GAAG,CAAC,EAAE,UAAU,CAAC,MAAM,WAAW,KAAK,CAAC,CAAA;QAErJ,MAAM,SAAS,GAAG,YAAY,CAAC,eAAe,CAAC,CAAA;QAC/C,MAAM,SAAS,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAA;KACtC;AACF,CAAC;AAID,SAAS,YAAY,CAAC,cAAsB;IAC3C,MAAM,OAAO,GAAG,SAAS,CAAC,cAAc,CAAC,CAAC,GAAG,IAAI,IAAI,CAAA;IACrD,MAAM,aAAa,GAAG,gBAAgB,CAAC,cAAc,CAAC,CAAA;IAEtD,IAAI,SAAoB,CAAA;IAExB,IAAI,aAAa,IAAI,KAAK,EAAE;QAC3B,SAAS,GAAG,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE;YAC3C,MAAM,SAAS,CAAC,OAAO,CAAC,CAAA;YACxB,OAAO,aAAa,CAAC,cAAc,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAA;QAClE,CAAC,CAAA;KACD;SAAM,IAAI,aAAa,IAAI,MAAM,EAAE;QACnC,SAAS,GAAG,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE;YAC3C,MAAM,SAAS,CAAC,OAAO,CAAC,CAAA;YAExB,MAAM,eAAe,GAAG,uBAAuB,CAAC,QAAQ,CAAC,CAAA;YACzD,OAAO,aAAa,CAAC,cAAc,EAAE,sBAAsB,CAAC,eAAe,CAAC,CAAC,CAAA;QAC9E,CAAC,CAAA;KACD;SAAM,IAAI,aAAa,IAAI,KAAK,EAAE;QAClC,SAAS,GAAG,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE;YAC5D,MAAM,SAAS,CAAC,OAAO,CAAC,CAAA;YAExB,eAAe,GAAG,UAAU,CAAC,eAAe,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAA;YAEhE,MAAM,SAAS,GAAG,mBAAmB,CAAC,QAAQ,EAAE,eAAe,EAAE,KAAK,CAAC,CAAA;YAEvE,OAAO,aAAa,CAAC,cAAc,EAAE,SAAS,CAAC,CAAA;QAChD,CAAC,CAAA;KACD;SAAM,IAAI,aAAa,IAAI,KAAK,EAAE;QAClC,SAAS,GAAG,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE;YAC5D,MAAM,SAAS,CAAC,OAAO,CAAC,CAAA;YAExB,eAAe,GAAG,UAAU,CAAC,eAAe,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAA;YAEnE,MAAM,SAAS,GAAG,mBAAmB,CAAC,QAAQ,EAAE,eAAe,EAAE,KAAK,CAAC,CAAA;YAEvE,OAAO,aAAa,CAAC,cAAc,EAAE,SAAS,CAAC,CAAA;QAChD,CAAC,CAAA;KACD;SAAM,IAAI,aAAa,IAAI,KAAK,EAAE;QAClC,SAAS,GAAG,KAAK,EAAE,KAAK,EAAE,EAAE;YAC3B,MAAM,SAAS,CAAC,OAAO,CAAC,CAAA;YAExB,OAAO,aAAa,CAAC,cAAc,EAAE,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAA;QAC9D,CAAC,CAAA;KACD;SAAM,IAAI,kCAAkC,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE;QACtE,SAAS,GAAG,KAAK,EAAE,KAAK,EAAE,EAAE;YAC3B,IAAI,aAAkC,CAAA;YAEtC,IAAI,aAAa,IAAI,KAAK,EAAE;gBAC3B,aAAa,GAAG;oBACf,MAAM,EAAE,KAAK;oBACb,KAAK,EAAE,YAAY;oBACnB,OAAO,EAAE,EAAE;oBACX,aAAa,EAAE,EAAE;iBACjB,CAAA;aACD;iBAAM,IAAI,aAAa,IAAI,MAAM,EAAE;gBACnC,aAAa,GAAG;oBACf,KAAK,EAAE,SAAS;oBAChB,OAAO,EAAE,EAAE;oBACX,aAAa,EAAE,EAAE;iBACjB,CAAA;aACD;iBAAM,IAAI,aAAa,IAAI,KAAK,EAAE;gBAClC,aAAa,GAAG;oBACf,MAAM,EAAE,KAAK;oBACb,KAAK,EAAE,KAAK;oBACZ,OAAO,EAAE,EAAE;oBACX,aAAa,EAAE,CAAC,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,0BAA0B,CAAC;iBACjF,CAAA;aACD;iBAAM,IAAI,aAAa,IAAI,KAAK,EAAE;gBAClC,aAAa,GAAG;oBACf,KAAK,EAAE,WAAW;oBAClB,OAAO,EAAE,EAAE;oBACX,aAAa,EAAE,EAAE;iBACjB,CAAA;aACD;iBAAM,IAAI,aAAa,IAAI,MAAM,EAAE;gBACnC,aAAa,GAAG;oBACf,MAAM,EAAE,MAAM;oBACd,aAAa,EAAE,CAAC,oBAAoB,EAAE,GAAG,CAAC;iBAC1C,CAAA;aACD;iBAAM;gBACN,aAAa,GAAG;oBACf,MAAM,EAAE,aAAa;oBACrB,aAAa,EAAE,EAAE;iBACjB,CAAA;aACD;YAED,aAAa,CAAC,QAAQ,GAAG,cAAc,CAAA;YAEvC,MAAM,SAAS,CAAC,OAAO,CAAC,CAAA;YAExB,MAAM,kBAAkB,CAAC,KAAK,EAAE,aAAa,CAAC,CAAA;YAE9C,OAAM;QACP,CAAC,CAAA;KACD;SAAM;QACN,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAA;KAC7C;IAED,OAAO,SAAS,CAAA;AACjB,CAAC;AAED,MAAM,+BAA+B,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;AACvD,MAAM,+BAA+B,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;AACtD,MAAM,kCAAkC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;AAEvF,MAAM,sBAAsB,GAAG,iBAAiB,CAAA"}
|
|
1
|
+
{"version":3,"file":"CLI.js","sourceRoot":"","sources":["../../src/cli/CLI.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
+
import { WebSocket } from 'ws';
|
|
3
|
+
import { RequestVoiceListResult, SynthesisOptions, SynthesisSegmentEvent, SynthesizeSegmentsResult, VoiceListRequestOptions } from "../api/Synthesis.js";
|
|
4
|
+
import { RawAudio } from '../audio/AudioUtilities.js';
|
|
5
|
+
import { AlignmentOptions, AlignmentResult } from '../api/Alignment.js';
|
|
6
|
+
import { RecognitionOptions, RecognitionResult } from '../api/Recognition.js';
|
|
7
|
+
import { SpeechTranslationOptions, SpeechTranslationResult } from '../api/Translation.js';
|
|
8
|
+
import { Worker as WorkerThread } from 'node:worker_threads';
|
|
9
|
+
export declare class Client {
|
|
10
|
+
sendMessage: (message: any) => void;
|
|
11
|
+
responseListeners: Map<string, (message: string) => void>;
|
|
12
|
+
constructor(sourceChannel: WebSocket | WorkerThread);
|
|
13
|
+
synthesizeSegments(segments: string[], options: SynthesisOptions, onSegment?: SynthesisSegmentEvent, onSentence?: SynthesisSegmentEvent): Promise<SynthesizeSegmentsResult>;
|
|
14
|
+
requestVoiceList(options: VoiceListRequestOptions): Promise<RequestVoiceListResult>;
|
|
15
|
+
recognize(inputRawAudio: RawAudio, options: RecognitionOptions): Promise<RecognitionResult>;
|
|
16
|
+
align(inputRawAudio: RawAudio, transcript: string, options: AlignmentOptions): Promise<AlignmentResult>;
|
|
17
|
+
translateSpeech(inputRawAudio: RawAudio, options: SpeechTranslationOptions): Promise<SpeechTranslationResult>;
|
|
18
|
+
sendRequest(request: any, onResponse: (message: any) => void, onErrorResponse: (error: any) => void): void;
|
|
19
|
+
onMessage(incomingMessage: any): void;
|
|
20
|
+
}
|
|
21
|
+
export declare function runClientWebSocketTest(serverPort: number, secure: boolean): Promise<void>;
|
|
22
|
+
export declare function runClientWorkerThreadTest(): Promise<void>;
|
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
import { WebSocket } from 'ws';
|
|
2
|
+
import { encode as encodeMsgPack, decode as decodeMsgPack } from 'msgpack-lite';
|
|
3
|
+
import { getRandomHexString, logToStderr } from '../utilities/Utilities.js';
|
|
4
|
+
import { OpenPromise } from '../utilities/OpenPromise.js';
|
|
5
|
+
import { Worker as WorkerThread } from 'node:worker_threads';
|
|
6
|
+
import { resolveToModuleRootDir } from '../utilities/FileSystem.js';
|
|
7
|
+
import { playAudioWithTimeline } from '../audio/AudioPlayer.js';
|
|
8
|
+
const log = logToStderr;
|
|
9
|
+
export class Client {
|
|
10
|
+
sendMessage;
|
|
11
|
+
responseListeners = new Map();
|
|
12
|
+
constructor(sourceChannel) {
|
|
13
|
+
if (sourceChannel instanceof WebSocket) {
|
|
14
|
+
sourceChannel.on("message", (messageData, isBinary) => {
|
|
15
|
+
if (!isBinary) {
|
|
16
|
+
log(`Received an unexpected string WebSocket message: '${messageData.toString("utf-8")}'`);
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
let incomingMessage;
|
|
20
|
+
try {
|
|
21
|
+
incomingMessage = decodeMsgPack(messageData);
|
|
22
|
+
}
|
|
23
|
+
catch (e) {
|
|
24
|
+
log(`Failed to decode incoming message. Reason: ${e}`);
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
this.onMessage(incomingMessage);
|
|
28
|
+
});
|
|
29
|
+
this.sendMessage = (outgoingMessage) => {
|
|
30
|
+
const encodedMessage = encodeMsgPack(outgoingMessage);
|
|
31
|
+
sourceChannel.send(encodedMessage);
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
else if (sourceChannel instanceof WorkerThread) {
|
|
35
|
+
sourceChannel.on("message", (message) => {
|
|
36
|
+
this.onMessage(message);
|
|
37
|
+
});
|
|
38
|
+
sourceChannel.on("error", (e) => {
|
|
39
|
+
throw e;
|
|
40
|
+
});
|
|
41
|
+
this.sendMessage = (outgoingMessage) => {
|
|
42
|
+
sourceChannel.postMessage(outgoingMessage);
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
throw new Error(`Invalid source: not a WebSocket or WorkerThread object`);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
async synthesizeSegments(segments, options, onSegment, onSentence) {
|
|
50
|
+
const requestOpenPromise = new OpenPromise();
|
|
51
|
+
const requestMessage = {
|
|
52
|
+
messageType: "SynthesizeSegmentsRequest",
|
|
53
|
+
segments,
|
|
54
|
+
options
|
|
55
|
+
};
|
|
56
|
+
function onResponse(responseMessage) {
|
|
57
|
+
if (responseMessage.messageType == "SynthesizeSegmentsResponse") {
|
|
58
|
+
requestOpenPromise.resolve(responseMessage);
|
|
59
|
+
}
|
|
60
|
+
else if (responseMessage.messageType == "SynthesisSegmentEvent" && onSegment) {
|
|
61
|
+
onSegment(responseMessage);
|
|
62
|
+
}
|
|
63
|
+
else if (responseMessage.messageType == "SynthesisSentenceEvent" && onSentence) {
|
|
64
|
+
onSentence(responseMessage);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
function onError(e) {
|
|
68
|
+
requestOpenPromise.reject(e);
|
|
69
|
+
}
|
|
70
|
+
try {
|
|
71
|
+
this.sendRequest(requestMessage, onResponse, onError);
|
|
72
|
+
}
|
|
73
|
+
catch (e) {
|
|
74
|
+
onError(e);
|
|
75
|
+
}
|
|
76
|
+
return requestOpenPromise.promise;
|
|
77
|
+
}
|
|
78
|
+
async requestVoiceList(options) {
|
|
79
|
+
const requestOpenPromise = new OpenPromise();
|
|
80
|
+
const requestMessage = {
|
|
81
|
+
messageType: "VoiceListRequest",
|
|
82
|
+
options
|
|
83
|
+
};
|
|
84
|
+
function onResponse(responseMessage) {
|
|
85
|
+
if (responseMessage.messageType == "VoiceListResponse") {
|
|
86
|
+
requestOpenPromise.resolve(responseMessage);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
function onError(e) {
|
|
90
|
+
requestOpenPromise.reject(e);
|
|
91
|
+
}
|
|
92
|
+
try {
|
|
93
|
+
this.sendRequest(requestMessage, onResponse, onError);
|
|
94
|
+
}
|
|
95
|
+
catch (e) {
|
|
96
|
+
onError(e);
|
|
97
|
+
}
|
|
98
|
+
return requestOpenPromise.promise;
|
|
99
|
+
}
|
|
100
|
+
async recognize(inputRawAudio, options) {
|
|
101
|
+
const requestOpenPromise = new OpenPromise();
|
|
102
|
+
const requestMessage = {
|
|
103
|
+
messageType: "RecognitionRequest",
|
|
104
|
+
inputRawAudio,
|
|
105
|
+
options
|
|
106
|
+
};
|
|
107
|
+
function onResponse(responseMessage) {
|
|
108
|
+
if (responseMessage.messageType == "RecognitionResponse") {
|
|
109
|
+
requestOpenPromise.resolve(responseMessage);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
function onError(e) {
|
|
113
|
+
requestOpenPromise.reject(e);
|
|
114
|
+
}
|
|
115
|
+
try {
|
|
116
|
+
this.sendRequest(requestMessage, onResponse, onError);
|
|
117
|
+
}
|
|
118
|
+
catch (e) {
|
|
119
|
+
onError(e);
|
|
120
|
+
}
|
|
121
|
+
return requestOpenPromise.promise;
|
|
122
|
+
}
|
|
123
|
+
async align(inputRawAudio, transcript, options) {
|
|
124
|
+
const requestOpenPromise = new OpenPromise();
|
|
125
|
+
const requestMessage = {
|
|
126
|
+
messageType: "AlignmentRequest",
|
|
127
|
+
inputRawAudio,
|
|
128
|
+
transcript,
|
|
129
|
+
options
|
|
130
|
+
};
|
|
131
|
+
function onResponse(responseMessage) {
|
|
132
|
+
if (responseMessage.messageType == "AlignmentResponse") {
|
|
133
|
+
requestOpenPromise.resolve(responseMessage);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
function onError(e) {
|
|
137
|
+
requestOpenPromise.reject(e);
|
|
138
|
+
}
|
|
139
|
+
try {
|
|
140
|
+
this.sendRequest(requestMessage, onResponse, onError);
|
|
141
|
+
}
|
|
142
|
+
catch (e) {
|
|
143
|
+
onError(e);
|
|
144
|
+
}
|
|
145
|
+
return requestOpenPromise.promise;
|
|
146
|
+
}
|
|
147
|
+
async translateSpeech(inputRawAudio, options) {
|
|
148
|
+
const requestOpenPromise = new OpenPromise();
|
|
149
|
+
const requestMessage = {
|
|
150
|
+
messageType: "SpeechTranslationRequest",
|
|
151
|
+
inputRawAudio,
|
|
152
|
+
options
|
|
153
|
+
};
|
|
154
|
+
function onResponse(responseMessage) {
|
|
155
|
+
if (responseMessage.messageType == "SpeechTranslationResponse") {
|
|
156
|
+
requestOpenPromise.resolve(responseMessage);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
function onError(e) {
|
|
160
|
+
requestOpenPromise.reject(e);
|
|
161
|
+
}
|
|
162
|
+
try {
|
|
163
|
+
this.sendRequest(requestMessage, onResponse, onError);
|
|
164
|
+
}
|
|
165
|
+
catch (e) {
|
|
166
|
+
onError(e);
|
|
167
|
+
}
|
|
168
|
+
return requestOpenPromise.promise;
|
|
169
|
+
}
|
|
170
|
+
sendRequest(request, onResponse, onErrorResponse) {
|
|
171
|
+
const requestId = getRandomHexString();
|
|
172
|
+
request = {
|
|
173
|
+
requestId,
|
|
174
|
+
...request
|
|
175
|
+
};
|
|
176
|
+
this.sendMessage(request);
|
|
177
|
+
function onResponseMessage(message) {
|
|
178
|
+
if (message.messageType == "Error") {
|
|
179
|
+
onErrorResponse(message.error);
|
|
180
|
+
}
|
|
181
|
+
else {
|
|
182
|
+
onResponse(message);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
this.responseListeners.set(requestId, onResponseMessage);
|
|
186
|
+
}
|
|
187
|
+
onMessage(incomingMessage) {
|
|
188
|
+
const requestId = incomingMessage.requestId;
|
|
189
|
+
if (!requestId) {
|
|
190
|
+
log("Received a WebSocket message without a request ID");
|
|
191
|
+
return;
|
|
192
|
+
}
|
|
193
|
+
const listener = this.responseListeners.get(requestId);
|
|
194
|
+
if (listener) {
|
|
195
|
+
listener(incomingMessage);
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
export async function runClientWebSocketTest(serverPort, secure) {
|
|
200
|
+
const ws = new WebSocket(`${secure ? "wss" : "ws"}://localhost:${serverPort}`, {
|
|
201
|
+
rejectUnauthorized: false
|
|
202
|
+
});
|
|
203
|
+
ws.on("open", async () => {
|
|
204
|
+
const client = new Client(ws);
|
|
205
|
+
const voiceListResult = await client.requestVoiceList({
|
|
206
|
+
engine: "pico"
|
|
207
|
+
});
|
|
208
|
+
log(voiceListResult);
|
|
209
|
+
const synthesisResult1 = await client.synthesizeSegments(["Hello world! How are you?", "Do you like turtles?"], {}, async (eventData) => {
|
|
210
|
+
log("onSegment (call 1)");
|
|
211
|
+
}, async (eventData) => {
|
|
212
|
+
log("onSentence (call 1)");
|
|
213
|
+
});
|
|
214
|
+
//log(synthesisResult1.timeline)
|
|
215
|
+
const wordTimeline = synthesisResult1.timeline.flatMap(segmentEntry => segmentEntry.timeline).flatMap(sentenceEntry => sentenceEntry.timeline);
|
|
216
|
+
const transcript = synthesisResult1.timeline.map(segmenEntry => segmenEntry.text).join("\n\n");
|
|
217
|
+
await playAudioWithTimeline(synthesisResult1.synthesizedAudio, wordTimeline, transcript);
|
|
218
|
+
await client.synthesizeSegments(["Hey! What's up?", "See ya."], {}, async (eventData) => {
|
|
219
|
+
log("onSegment (call 2)");
|
|
220
|
+
}, async (eventData) => {
|
|
221
|
+
log("onSentence (call 2)");
|
|
222
|
+
});
|
|
223
|
+
//log(synthesisResult2)
|
|
224
|
+
//ws.close()
|
|
225
|
+
});
|
|
226
|
+
}
|
|
227
|
+
export async function runClientWorkerThreadTest() {
|
|
228
|
+
const worker = new WorkerThread(resolveToModuleRootDir("dist/server/Worker.js"));
|
|
229
|
+
const client = new Client(worker);
|
|
230
|
+
const voiceListResult = await client.requestVoiceList({
|
|
231
|
+
engine: "pico"
|
|
232
|
+
});
|
|
233
|
+
log(voiceListResult);
|
|
234
|
+
await client.synthesizeSegments(["Hello world! How are you?", "Do you like turtles?"], {}, async (eventData) => {
|
|
235
|
+
log("onSegment (call 1)");
|
|
236
|
+
}, async (eventData) => {
|
|
237
|
+
log("onSentence (call 1)");
|
|
238
|
+
});
|
|
239
|
+
//log(synthesisResult1)
|
|
240
|
+
await client.synthesizeSegments(["Hey! What's up?", "See ya."], {}, async (eventData) => {
|
|
241
|
+
log("onSegment (call 2)");
|
|
242
|
+
}, async (eventData) => {
|
|
243
|
+
log("onSentence (call 2)");
|
|
244
|
+
});
|
|
245
|
+
}
|
|
246
|
+
//# sourceMappingURL=Client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Client.js","sourceRoot":"","sources":["../../src/server/Client.ts"],"names":[],"mappings":"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"}
|
package/dist/server/Server.d.ts
CHANGED
|
@@ -1 +1,10 @@
|
|
|
1
|
-
export
|
|
1
|
+
export declare function startWebSocketServer(serverOptions: ServerOptions, onStarted: (options: ServerOptions) => void): Promise<void>;
|
|
2
|
+
export interface ServerOptions {
|
|
3
|
+
port?: number;
|
|
4
|
+
secure?: boolean;
|
|
5
|
+
certPath?: string;
|
|
6
|
+
keyPath?: string;
|
|
7
|
+
deflate?: boolean;
|
|
8
|
+
maxPayload?: number;
|
|
9
|
+
}
|
|
10
|
+
export declare const defaultServerOptions: ServerOptions;
|
package/dist/server/Server.js
CHANGED
|
@@ -1,18 +1,102 @@
|
|
|
1
|
-
import { WebSocketServer } from 'ws';
|
|
2
|
-
import { encode as encodeMsgPack } from 'msgpack-lite';
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
1
|
+
import { WebSocketServer, WebSocket } from 'ws';
|
|
2
|
+
import { encode as encodeMsgPack, decode as decodeMsgPack } from 'msgpack-lite';
|
|
3
|
+
import { Worker } from 'node:worker_threads';
|
|
4
|
+
import { logToStderr } from '../utilities/Utilities.js';
|
|
5
|
+
import { OpenPromise } from '../utilities/OpenPromise.js';
|
|
6
|
+
import { resolveToModuleRootDir, readFile, existsSync } from '../utilities/FileSystem.js';
|
|
7
|
+
import { extendDeep } from '../utilities/ObjectUtilities.js';
|
|
8
|
+
const log = logToStderr;
|
|
9
|
+
export async function startWebSocketServer(serverOptions, onStarted) {
|
|
10
|
+
serverOptions = extendDeep(defaultServerOptions, serverOptions);
|
|
11
|
+
const wsServerOptions = {
|
|
12
|
+
perMessageDeflate: serverOptions.deflate,
|
|
13
|
+
maxPayload: serverOptions.maxPayload
|
|
14
|
+
};
|
|
15
|
+
if (serverOptions.secure) {
|
|
16
|
+
if (!serverOptions.certPath || !existsSync(serverOptions.certPath)) {
|
|
17
|
+
throw new Error(`No valid certificate file path was given`);
|
|
18
|
+
}
|
|
19
|
+
if (!serverOptions.keyPath || !existsSync(serverOptions.keyPath)) {
|
|
20
|
+
throw new Error(`No valid key file path was given`);
|
|
21
|
+
}
|
|
22
|
+
const { createServer } = await import('https');
|
|
23
|
+
const httpsServer = createServer({
|
|
24
|
+
cert: await readFile(serverOptions.certPath),
|
|
25
|
+
key: await readFile(serverOptions.keyPath)
|
|
13
26
|
});
|
|
14
|
-
|
|
27
|
+
httpsServer.listen(serverOptions.port);
|
|
28
|
+
wsServerOptions.server = httpsServer;
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
wsServerOptions.port = serverOptions.port;
|
|
32
|
+
}
|
|
33
|
+
const wss = new WebSocketServer(wsServerOptions);
|
|
34
|
+
const requestIdToWebSocket = new Map();
|
|
35
|
+
const worker = new Worker(resolveToModuleRootDir("dist/server/Worker.js"));
|
|
36
|
+
worker.on("message", (message) => {
|
|
37
|
+
if (!message.requestId) {
|
|
38
|
+
throw new Error("Worker message doesn't have a request ID");
|
|
39
|
+
}
|
|
40
|
+
const ws = requestIdToWebSocket.get(message.requestId);
|
|
41
|
+
if (!ws || ws.readyState != WebSocket.OPEN) {
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
const encodedWorkerMessage = encodeMsgPack(message);
|
|
45
|
+
ws.send(encodedWorkerMessage);
|
|
15
46
|
});
|
|
47
|
+
const serverOpenPromise = new OpenPromise;
|
|
48
|
+
wss.on("listening", () => {
|
|
49
|
+
log(`Started Echogarden WebSocket server on port ${serverOptions.port}`);
|
|
50
|
+
onStarted(serverOptions);
|
|
51
|
+
});
|
|
52
|
+
wss.on("close", () => {
|
|
53
|
+
serverOpenPromise.resolve();
|
|
54
|
+
});
|
|
55
|
+
wss.on('connection', async (ws, req) => {
|
|
56
|
+
log(`Accepted incoming connection from ${req.socket.remoteAddress}`);
|
|
57
|
+
ws.on('message', (messageData, isBinary) => {
|
|
58
|
+
if (!isBinary) {
|
|
59
|
+
log(`Received an unexpected string WebSocket message: '${messageData.toString("utf-8")}'`);
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
let incomingMessage;
|
|
63
|
+
try {
|
|
64
|
+
incomingMessage = decodeMsgPack(messageData);
|
|
65
|
+
}
|
|
66
|
+
catch (e) {
|
|
67
|
+
log(`Failed to decode binary WebSocket message. Reason: ${e}`);
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
const requestId = incomingMessage.requestId;
|
|
71
|
+
if (!requestId) {
|
|
72
|
+
log("Received a WebSocket message without a request ID");
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
requestIdToWebSocket.set(requestId, ws);
|
|
76
|
+
worker.postMessage(incomingMessage);
|
|
77
|
+
});
|
|
78
|
+
ws.on('error', (e) => {
|
|
79
|
+
log(e);
|
|
80
|
+
});
|
|
81
|
+
ws.on("close", () => {
|
|
82
|
+
const keysToDelete = [];
|
|
83
|
+
requestIdToWebSocket.forEach((value, key) => {
|
|
84
|
+
if (value == ws) {
|
|
85
|
+
keysToDelete.push(key);
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
keysToDelete.forEach(key => requestIdToWebSocket.delete(key));
|
|
89
|
+
log(`Incoming connection from ${req.socket.remoteAddress} was closed`);
|
|
90
|
+
});
|
|
91
|
+
});
|
|
92
|
+
return serverOpenPromise.promise;
|
|
16
93
|
}
|
|
17
|
-
|
|
94
|
+
export const defaultServerOptions = {
|
|
95
|
+
port: 4000,
|
|
96
|
+
secure: false,
|
|
97
|
+
certPath: undefined,
|
|
98
|
+
keyPath: undefined,
|
|
99
|
+
deflate: true,
|
|
100
|
+
maxPayload: 1000 * 1000000 // 1GB
|
|
101
|
+
};
|
|
18
102
|
//# sourceMappingURL=Server.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Server.js","sourceRoot":"","sources":["../../src/server/Server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"Server.js","sourceRoot":"","sources":["../../src/server/Server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { logToStderr, setupProgramTerminationListeners, setupUnhandledExceptionListeners } from '../utilities/Utilities.js';
|
|
2
|
+
import { startWebSocketServer } from './Server.js';
|
|
3
|
+
const log = logToStderr;
|
|
4
|
+
setupUnhandledExceptionListeners();
|
|
5
|
+
setupProgramTerminationListeners(() => {
|
|
6
|
+
log('');
|
|
7
|
+
});
|
|
8
|
+
await startWebSocketServer({}, (options) => {
|
|
9
|
+
});
|
|
10
|
+
//# sourceMappingURL=ServerStarter.js.map
|