@map-audio/pam-mcp-server 1.27.0 → 1.28.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +31 -10
- package/dist/bridge.d.ts +5 -1
- package/dist/bridge.js +41 -40
- package/dist/bridge.js.map +1 -1
- package/dist/daemon.d.ts +32 -0
- package/dist/daemon.js +871 -0
- package/dist/daemon.js.map +7 -0
- package/dist/drumSynth.d.ts +12 -0
- package/dist/drumSynth.js +14 -2
- package/dist/drumSynth.js.map +1 -1
- package/dist/drumSynthEngines.json +9 -1
- package/dist/{fgemma-format.d.ts → functiongemma-format.d.ts} +25 -7
- package/dist/{fgemma-format.js → functiongemma-format.js} +34 -11
- package/dist/functiongemma-format.js.map +1 -0
- package/dist/functiongemma-grammar.d.ts +14 -0
- package/dist/functiongemma-grammar.js +140 -0
- package/dist/functiongemma-grammar.js.map +1 -0
- package/dist/functiongemma-params.d.ts +33 -0
- package/dist/functiongemma-params.js +128 -0
- package/dist/functiongemma-params.js.map +1 -0
- package/dist/{fgemma-runner.d.ts → functiongemma-runner.d.ts} +8 -5
- package/dist/{fgemma-runner.js → functiongemma-runner.js} +87 -21
- package/dist/functiongemma-runner.js.map +1 -0
- package/dist/generativePlayerPresets.json +9 -0
- package/dist/generativePlayers.json +14 -0
- package/dist/launcher.d.ts +2 -0
- package/dist/launcher.js +36 -0
- package/dist/launcher.js.map +1 -0
- package/dist/manifest-mfx.json +12920 -277
- package/dist/manifest-msq.json +1989 -107
- package/dist/manifest.d.ts +2 -0
- package/dist/manifest.js +7 -27
- package/dist/manifest.js.map +1 -1
- package/dist/manifest.json +24194 -345
- package/dist/mfxCombos.d.ts +2 -0
- package/dist/mfxCombos.js +179 -56
- package/dist/mfxCombos.js.map +1 -1
- package/dist/midiFile.d.ts +19 -5
- package/dist/midiFile.js +21 -13
- package/dist/midiFile.js.map +1 -1
- package/dist/mixAssist.js +3 -2
- package/dist/mixAssist.js.map +1 -1
- package/dist/players.d.ts +22 -0
- package/dist/players.js +70 -0
- package/dist/players.js.map +1 -1
- package/dist/productProfile.d.ts +4 -4
- package/dist/productProfile.js +10 -1
- package/dist/productProfile.js.map +1 -1
- package/dist/qwen-format.d.ts +85 -0
- package/dist/qwen-format.js +355 -0
- package/dist/qwen-format.js.map +1 -0
- package/dist/registration.mjs +41 -0
- package/dist/server.js +1309 -187
- package/dist/server.js.map +1 -1
- package/dist/variationSessionKeys.json +6 -4
- package/package.json +13 -7
- package/dist/fgemma-format.js.map +0 -1
- package/dist/fgemma-runner.js.map +0 -1
- package/dist/manifest-cell1.json +0 -12968
package/dist/manifest.d.ts
CHANGED
|
@@ -56,6 +56,8 @@ export declare function loadManifest(productOverride?: string): Promise<Manifest
|
|
|
56
56
|
export declare function getParameterIndex(): Promise<Map<string, ManifestParameter>>;
|
|
57
57
|
export declare function getParametersByCell(cellId: string): Promise<ManifestParameter[]>;
|
|
58
58
|
export declare function getGlobalParameters(): Promise<ManifestParameter[]>;
|
|
59
|
+
/** <base>/Export for the active product, the folder the plugin's exportFolderPath names. */
|
|
60
|
+
export declare function productExportDir(): Promise<string>;
|
|
59
61
|
export declare function findPresetDirs(strict?: boolean): Promise<string[]>;
|
|
60
62
|
export declare function resolvePresetPath(presetPath: string): Promise<string>;
|
|
61
63
|
export declare function walkPresets(dir: string, prefix?: string): Promise<{
|
package/dist/manifest.js
CHANGED
|
@@ -2,6 +2,7 @@ import { readFile, readdir, stat } from "node:fs/promises";
|
|
|
2
2
|
import { resolve, dirname, join, basename, extname, sep } from "node:path";
|
|
3
3
|
import { fileURLToPath } from "node:url";
|
|
4
4
|
import { homedir } from "node:os";
|
|
5
|
+
import { readBridgeRegistrations } from "./registration.mjs";
|
|
5
6
|
/**
|
|
6
7
|
* Cell effect names for THIS product, derived from the manifest's
|
|
7
8
|
* `cell1_<name>Enabled` keys.
|
|
@@ -34,10 +35,8 @@ export function cellEffectOrder(manifest) {
|
|
|
34
35
|
}
|
|
35
36
|
let cachedManifest = new Map();
|
|
36
37
|
let paramIndex = new Map();
|
|
37
|
-
const DISCOVERY_FILE = resolve(homedir(), ".pam-mcp-bridge.json");
|
|
38
38
|
const MANIFEST_BY_PRODUCT = {
|
|
39
39
|
pam: "manifest.json",
|
|
40
|
-
cell1: "manifest-cell1.json",
|
|
41
40
|
mfx: "manifest-mfx.json",
|
|
42
41
|
msq: "manifest-msq.json",
|
|
43
42
|
};
|
|
@@ -52,8 +51,6 @@ function getProjectRoot() {
|
|
|
52
51
|
}
|
|
53
52
|
function normalizeProduct(product) {
|
|
54
53
|
const p = (product ?? "").trim().toLowerCase();
|
|
55
|
-
if (p.includes("cell1") || p.includes("cell 1"))
|
|
56
|
-
return "cell1";
|
|
57
54
|
if (p.includes("mfx"))
|
|
58
55
|
return "mfx";
|
|
59
56
|
if (p.includes("msq"))
|
|
@@ -69,26 +66,7 @@ export function setActiveProductHint(product) {
|
|
|
69
66
|
activeProductHint = product;
|
|
70
67
|
}
|
|
71
68
|
async function discoverProductFromBridge() {
|
|
72
|
-
|
|
73
|
-
const raw = await readFile(DISCOVERY_FILE, "utf-8");
|
|
74
|
-
const data = JSON.parse(raw);
|
|
75
|
-
const entries = Array.isArray(data) ? data : [data];
|
|
76
|
-
const alive = entries.find((entry) => {
|
|
77
|
-
if (!entry || typeof entry.pid !== "number" || entry.pid <= 0)
|
|
78
|
-
return false;
|
|
79
|
-
try {
|
|
80
|
-
process.kill(entry.pid, 0);
|
|
81
|
-
return true;
|
|
82
|
-
}
|
|
83
|
-
catch (err) {
|
|
84
|
-
return err.code === "EPERM";
|
|
85
|
-
}
|
|
86
|
-
});
|
|
87
|
-
return typeof alive?.product === "string" ? alive.product : undefined;
|
|
88
|
-
}
|
|
89
|
-
catch {
|
|
90
|
-
return undefined;
|
|
91
|
-
}
|
|
69
|
+
return (await readBridgeRegistrations())[0]?.product;
|
|
92
70
|
}
|
|
93
71
|
async function findManifestCandidates(productOverride) {
|
|
94
72
|
if (process.env.PAM_MANIFEST_PATH) {
|
|
@@ -124,7 +102,7 @@ export async function loadManifest(productOverride) {
|
|
|
124
102
|
}
|
|
125
103
|
}
|
|
126
104
|
throw new Error("PAM manifest not found. Set PAM_PROJECT_ROOT to the PAM repo root, " +
|
|
127
|
-
"PAM_MANIFEST_PRODUCT to pam|
|
|
105
|
+
"PAM_MANIFEST_PRODUCT to pam|mfx|msq, or PAM_MANIFEST_PATH to the manifest file location. " +
|
|
128
106
|
"Live tools (set_parameters, trigger_midi, etc.) work without the manifest.");
|
|
129
107
|
}
|
|
130
108
|
export async function getParameterIndex() {
|
|
@@ -153,7 +131,6 @@ export async function getGlobalParameters() {
|
|
|
153
131
|
// pointed MFX's list_presets / read_preset at PAM's presets.
|
|
154
132
|
const PRESET_FOLDER_BY_PRODUCT = {
|
|
155
133
|
pam: "PAM",
|
|
156
|
-
cell1: "CELL1",
|
|
157
134
|
mfx: "MFX",
|
|
158
135
|
msq: "MSQ",
|
|
159
136
|
};
|
|
@@ -161,7 +138,6 @@ const PRESET_FOLDER_BY_PRODUCT = {
|
|
|
161
138
|
// patch is meaningless to the sampler and vice versa.
|
|
162
139
|
const REPO_PRESET_DIR_BY_PRODUCT = {
|
|
163
140
|
pam: ["installer", "prepared-presets", "Presets"],
|
|
164
|
-
cell1: ["installer", "prepared-presets", "Presets"],
|
|
165
141
|
mfx: ["installer", "mfx-factory-presets", "Presets"],
|
|
166
142
|
msq: ["installer", "msq-factory-presets", "Presets"],
|
|
167
143
|
};
|
|
@@ -179,6 +155,10 @@ async function resolveActiveProduct() {
|
|
|
179
155
|
process.env.PAM_MCP_PRODUCT;
|
|
180
156
|
return normalizeProduct(envProduct ?? activeProductHint ?? (await discoverProductFromBridge()));
|
|
181
157
|
}
|
|
158
|
+
/** <base>/Export for the active product, the folder the plugin's exportFolderPath names. */
|
|
159
|
+
export async function productExportDir() {
|
|
160
|
+
return resolve(dirname(getUserPresetsDir(await resolveActiveProduct())), "Export");
|
|
161
|
+
}
|
|
182
162
|
export async function findPresetDirs(strict = false) {
|
|
183
163
|
const product = await resolveActiveProduct();
|
|
184
164
|
const dirs = [];
|
package/dist/manifest.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAyC7D;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe,CAAC,QAA+B;IAC7D,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,KAAK,MAAM,CAAC,IAAI,QAAQ,CAAC,cAAc,IAAI,EAAE,EAAE,CAAC;QAC9C,MAAM,CAAC,GAAG,+BAA+B,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;QAChE,IAAI,CAAC,CAAC;YAAE,SAAS;QACjB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;AAC3B,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,eAAe,CAAC,QAA+B;IAC7D,MAAM,GAAG,GAAG,QAAQ,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,KAAK,mBAAmB,CAAC,EAAE,YAAY,CAAC;IAC1G,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACvD,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACpG,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,CAAC,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IACnF,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC;IACrD,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AACrE,CAAC;AAED,IAAI,cAAc,GAAG,IAAI,GAAG,EAAoB,CAAC;AACjD,IAAI,UAAU,GAAG,IAAI,GAAG,EAA0C,CAAC;AAEnE,MAAM,mBAAmB,GAA2B;IAClD,GAAG,EAAE,eAAe;IACpB,GAAG,EAAE,mBAAmB;IACxB,GAAG,EAAE,mBAAmB;CACzB,CAAC;AAEF,SAAS,cAAc;IACrB,iEAAiE;IACjE,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QACjC,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAC/C,CAAC;IACD,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1D,oDAAoD;IACpD,OAAO,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC9C,CAAC;AAED,SAAS,gBAAgB,CAAC,OAA2B;IACnD,MAAM,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC/C,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACpC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACpC,OAAO,KAAK,CAAC;AACf,CAAC;AAED,0EAA0E;AAC1E,6EAA6E;AAC7E,0EAA0E;AAC1E,wDAAwD;AACxD,IAAI,iBAAqC,CAAC;AAE1C,MAAM,UAAU,oBAAoB,CAAC,OAA2B;IAC9D,iBAAiB,GAAG,OAAO,CAAC;AAC9B,CAAC;AAED,KAAK,UAAU,yBAAyB;IACtC,OAAO,CAAC,MAAM,uBAAuB,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;AACvD,CAAC;AAED,KAAK,UAAU,sBAAsB,CAAC,eAAwB;IAC5D,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC;QAClC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,UAAU,GACd,OAAO,CAAC,GAAG,CAAC,oBAAoB;QAChC,OAAO,CAAC,GAAG,CAAC,WAAW;QACvB,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;IAC9B,MAAM,OAAO,GAAG,gBAAgB,CAC9B,eAAe,IAAI,UAAU,IAAI,iBAAiB,IAAI,CAAC,MAAM,yBAAyB,EAAE,CAAC,CAC1F,CAAC;IACF,MAAM,YAAY,GAAG,mBAAmB,CAAC,OAAO,CAAC,IAAI,mBAAmB,CAAC,GAAG,CAAC;IAC7E,MAAM,IAAI,GAAG,cAAc,EAAE,CAAC;IAC9B,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAE1D,OAAO;QACL,OAAO,CAAC,IAAI,EAAE,YAAY,CAAC;QAC3B,OAAO,CAAC,SAAS,EAAE,YAAY,CAAC;KACjC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,eAAwB;IACzD,MAAM,UAAU,GAAG,MAAM,sBAAsB,CAAC,eAAe,CAAC,CAAC;IACjE,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC5C,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAE1B,KAAK,MAAM,YAAY,IAAI,UAAU,EAAE,CAAC;QACtC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;YAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAa,CAAC;YAC7C,cAAc,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YACvC,OAAO,QAAQ,CAAC;QAClB,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;IACH,CAAC;IACD,MAAM,IAAI,KAAK,CACb,qEAAqE;QACrE,2FAA2F;QAC3F,4EAA4E,CAC7E,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB;IAGrC,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;IACtC,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC;IACpD,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACxC,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAC1B,MAAM,KAAK,GAAG,IAAI,GAAG,EAA6B,CAAC;IACnD,KAAK,MAAM,CAAC,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;QACpC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAC1B,CAAC;IACD,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAChC,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,MAAc;IAEd,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;IACtC,OAAO,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB;IACvC,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;IACtC,OAAO,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACpD,CAAC;AAED,iFAAiF;AACjF,+EAA+E;AAC/E,6DAA6D;AAC7D,MAAM,wBAAwB,GAA2B;IACvD,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;CACX,CAAC;AAEF,6EAA6E;AAC7E,sDAAsD;AACtD,MAAM,0BAA0B,GAA6B;IAC3D,GAAG,EAAE,CAAC,WAAW,EAAE,kBAAkB,EAAE,SAAS,CAAC;IACjD,GAAG,EAAE,CAAC,WAAW,EAAE,qBAAqB,EAAE,SAAS,CAAC;IACpD,GAAG,EAAE,CAAC,WAAW,EAAE,qBAAqB,EAAE,SAAS,CAAC;CACrD,CAAC;AAEF,SAAS,iBAAiB,CAAC,OAAe;IACxC,MAAM,MAAM,GAAG,wBAAwB,CAAC,OAAO,CAAC,IAAI,wBAAwB,CAAC,GAAG,CAAC;IACjF,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjC,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,OAAO,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;IACnF,CAAC;IACD,OAAO,OAAO,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;AAC9F,CAAC;AAED,qFAAqF;AACrF,KAAK,UAAU,oBAAoB;IACjC,MAAM,UAAU,GACd,OAAO,CAAC,GAAG,CAAC,oBAAoB;QAChC,OAAO,CAAC,GAAG,CAAC,WAAW;QACvB,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;IAC9B,OAAO,gBAAgB,CAAC,UAAU,IAAI,iBAAiB,IAAI,CAAC,MAAM,yBAAyB,EAAE,CAAC,CAAC,CAAC;AAClG,CAAC;AAED,4FAA4F;AAC5F,MAAM,CAAC,KAAK,UAAU,gBAAgB;IACpC,OAAO,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,MAAM,oBAAoB,EAAE,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;AACrF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,MAAM,GAAG,KAAK;IACjD,MAAM,OAAO,GAAG,MAAM,oBAAoB,EAAE,CAAC;IAC7C,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,MAAM,YAAY,GAAG,0BAA0B,CAAC,OAAO,CAAC,IAAI,0BAA0B,CAAC,GAAG,CAAC;IAC3F,MAAM,WAAW,GAAG,OAAO,CAAC,cAAc,EAAE,EAAE,GAAG,YAAY,CAAC,CAAC;IAC/D,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,WAAW,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACzB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,MAAM,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;YAAE,MAAM,KAAK,CAAC;IAChF,CAAC;IACD,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAC/C,MAAM,IAAI,CAAC,WAAW,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACzB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,MAAM,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;YAAE,MAAM,KAAK,CAAC;IAChF,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,UAAkB;IACxD,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,CAAC;IACxC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;QAC3C,6EAA6E;QAC7E,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,SAAS,KAAK,GAAG;YAAE,SAAS;QACpE,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,SAAS,CAAC,CAAC;YACtB,OAAO,SAAS,CAAC;QACnB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;gBAAE,MAAM,KAAK,CAAC;QACtE,CAAC;IACH,CAAC;IACD,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,qBAAqB,UAAU,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;AACxF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,GAAW,EACX,MAAM,GAAG,EAAE;IAEX,MAAM,OAAO,GAA2D,EAAE,CAAC;IAC3E,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5D,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACvC,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;YAChE,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;gBACxB,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;YAC1D,CAAC;iBAAM,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC7C,OAAO,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC;oBACrC,YAAY,EAAE,OAAO;iBACtB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,yBAAyB;IAC3B,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
|