From afff406d929692f2c1efabe2b5a6be237f9cddcf Mon Sep 17 00:00:00 2001 From: monkey-w1n5t0n Date: Sat, 11 Apr 2026 07:34:41 +0200 Subject: [PATCH] feat(playground): add Modular audio mode with shared mod pool New "Modular" engine in a-immersive with three hot-swappable Faust sub-engines (subtractive/additive/fm) sharing a common modulation pool: 16 ADSR slots + 32 LFO slots (single-knob sine->tri->square->saw wavemorph) routed through a 48-source x 10-destination matrix per engine. Per-connection scalar amounts in [-1, 1], summed at each destination. Default MLP output count is 512 (32 mod-source params + 480 matrix cells); model reinits on sub-engine swap, count change, or engine-param exposure toggle. Faust layer: - mod-pool.lib: shared ADSR/LFO/source-bus library - gen-modular-dsp.py: byte-reproducible generator (source of truth) - modular-subtractive: faithful Minimoog (3 osc, ladder filter, no envs) - modular-additive: 64-partial, spectral shape + formants, no envs/LFOs - modular-fm: 4-op matrix + self-feedback, no envs - All three share d08=amp, d09=pan conventions - MODULAR_DESTINATIONS.md: authoritative destination table JS layer: - ModularEngine: self-contained SynthEngine with getState/setState, setSubEngine, setModSourceCount, setExposeEngineParam - modular-ui: drawer with sub-engine toggle, ADSR/LFO count steppers, per-slot enable switches, matrix grid editor (tap-cycle, long-press precise, right-click menu, negative amounts), preset overlay - modular-presets: 6 named presets (Slow pad, Plucky bass, Crystal, DX bell, Morphing drone + default) - a-app.js: Modular mode registered, paramMeta:change -> resizeMLP, modular DSP state persisted under modularDspState, window.__nisps debug hooks for programmatic control Tests: tests/e2e/modular-mode.spec.js (11 Playwright tests, all passing including DSP state survives reload, sub-engine swap keeps paramCount, preset apply verification). Also fixes a pre-existing build.sh bug where the -e flag caused faust to overwrite .wasm outputs with expanded DSP source text, leaving additive/fm-matrix/eoc-* committed as invalid WebAssembly. Rebuilt all affected engines with the corrected script. Added an early-message buffer to faust-worklet-processor.js so setParam calls arriving before wasm instantiation are queued rather than dropped (needed when the user configures modular state before clicking Start Audio). --- .gitignore | 3 + package-lock.json | 78 + playground/faust/MODULAR_DESTINATIONS.md | 45 + playground/faust/additive.json | 759 +-------- playground/faust/additive.wasm | Bin 338508 -> 94610 bytes playground/faust/build.sh | 40 +- playground/faust/eoc-compressor.json | 2 +- playground/faust/eoc-compressor.wasm | Bin 7922 -> 7859 bytes playground/faust/eoc-delay.json | 132 +- playground/faust/eoc-delay.wasm | Bin 81521 -> 10699 bytes playground/faust/eoc-eq.json | 2 +- playground/faust/eoc-eq.wasm | Bin 14116 -> 14053 bytes playground/faust/eoc-master.json | 93 +- playground/faust/eoc-master.wasm | Bin 93053 -> 8739 bytes playground/faust/eoc-reverb.json | 2 +- playground/faust/eoc-reverb.wasm | Bin 17662 -> 17599 bytes playground/faust/eoc-saturation.json | 89 +- playground/faust/eoc-saturation.wasm | Bin 7111 -> 8239 bytes playground/faust/faust-worklet-processor.js | 64 +- playground/faust/fm-matrix.json | 2 +- playground/faust/fm-matrix.wasm | Bin 1863689 -> 46317 bytes playground/faust/gen-modular-dsp.py | 722 ++++++++ playground/faust/mod-pool.lib | 435 +++++ .../faust/modular-additive-processor.js | 257 +++ playground/faust/modular-additive.dsp | 1209 ++++++++++++++ playground/faust/modular-additive.json | 1 + playground/faust/modular-additive.wasm | Bin 0 -> 350703 bytes playground/faust/modular-fm-processor.js | 257 +++ playground/faust/modular-fm.dsp | 1195 ++++++++++++++ playground/faust/modular-fm.json | 1 + playground/faust/modular-fm.wasm | Bin 0 -> 312509 bytes .../faust/modular-subtractive-processor.js | 261 +++ .../faust/modular-subtractive-smoke.html | 255 +++ playground/faust/modular-subtractive.dsp | 1192 ++++++++++++++ playground/faust/modular-subtractive.json | 1 + playground/faust/modular-subtractive.wasm | Bin 0 -> 316409 bytes playground/js/a-app.js | 153 ++ playground/js/synth/modular-engine.js | 839 ++++++++++ playground/js/synth/modular-presets.js | 285 ++++ playground/js/ui/modular-ui.js | 1466 +++++++++++++++++ tests/e2e/modular-mode.spec.js | 263 +++ 41 files changed, 9000 insertions(+), 1103 deletions(-) create mode 100644 package-lock.json create mode 100644 playground/faust/MODULAR_DESTINATIONS.md create mode 100644 playground/faust/gen-modular-dsp.py create mode 100644 playground/faust/mod-pool.lib create mode 100644 playground/faust/modular-additive-processor.js create mode 100644 playground/faust/modular-additive.dsp create mode 100644 playground/faust/modular-additive.json create mode 100644 playground/faust/modular-additive.wasm create mode 100644 playground/faust/modular-fm-processor.js create mode 100644 playground/faust/modular-fm.dsp create mode 100644 playground/faust/modular-fm.json create mode 100644 playground/faust/modular-fm.wasm create mode 100644 playground/faust/modular-subtractive-processor.js create mode 100644 playground/faust/modular-subtractive-smoke.html create mode 100644 playground/faust/modular-subtractive.dsp create mode 100644 playground/faust/modular-subtractive.json create mode 100644 playground/faust/modular-subtractive.wasm create mode 100644 playground/js/synth/modular-engine.js create mode 100644 playground/js/synth/modular-presets.js create mode 100644 playground/js/ui/modular-ui.js create mode 100644 tests/e2e/modular-mode.spec.js diff --git a/.gitignore b/.gitignore index 462374b..ffa6182 100644 --- a/.gitignore +++ b/.gitignore @@ -25,6 +25,9 @@ *.la *.a *.lib +# Exception: Faust shared library files (text source, .lib extension by +# Faust convention) should be tracked. +!playground/faust/*.lib # Executables *.exe diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..157f9ef --- /dev/null +++ b/package-lock.json @@ -0,0 +1,78 @@ +{ + "name": "memlnaut-nisps-tests", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "memlnaut-nisps-tests", + "version": "1.0.0", + "devDependencies": { + "@playwright/test": "^1.59.1" + } + }, + "node_modules/@playwright/test": { + "version": "1.59.1", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.59.1.tgz", + "integrity": "sha512-PG6q63nQg5c9rIi4/Z5lR5IVF7yU5MqmKaPOe0HSc0O2cX1fPi96sUQu5j7eo4gKCkB2AnNGoWt7y4/Xx3Kcqg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "playwright": "1.59.1" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/playwright": { + "version": "1.59.1", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.59.1.tgz", + "integrity": "sha512-C8oWjPR3F81yljW9o5OxcWzfh6avkVwDD2VYdwIGqTkl+OGFISgypqzfu7dOe4QNLL2aqcWBmI3PMtLIK233lw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "playwright-core": "1.59.1" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "fsevents": "2.3.2" + } + }, + "node_modules/playwright-core": { + "version": "1.59.1", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.59.1.tgz", + "integrity": "sha512-HBV/RJg81z5BiiZ9yPzIiClYV/QMsDCKUyogwH9p3MCP6IYjUFu/MActgYAvK0oWyV9NlwM3GLBjADyWgydVyg==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "playwright-core": "cli.js" + }, + "engines": { + "node": ">=18" + } + } + } +} diff --git a/playground/faust/MODULAR_DESTINATIONS.md b/playground/faust/MODULAR_DESTINATIONS.md new file mode 100644 index 0000000..0f7d2cf --- /dev/null +++ b/playground/faust/MODULAR_DESTINATIONS.md @@ -0,0 +1,45 @@ +# Modular engines — modulation destination table + +Each of the three `modular-*` Faust engines exposes a 48-source × 10-destination +modulation matrix. All engines import `mod-pool.lib` (16 ADSRs + 32 LFOs = 48 +sources) and bind those sources to engine-specific destinations via the +`MM_Matrix/sNN_dNN_` slider labels. + +The destination index (`dNN`) is consistent per engine but NOT consistent across +engines — `d08` happens to be `amp` for all three because the generator places +the master amplitude destination in the same slot for every engine, which makes +it easy for Phase B to wire up a default ADSR1→amp patch regardless of the +active engine. + +| Engine | d00 | d01 | d02 | d03 | d04 | d05 | d06 | d07 | d08 | d09 | +|-------------|-------|-------------|-------------|----------------|------------|------------------|-----------------|----------------|-----|-----| +| subtractive | pitch | osc2_detune | osc3_detune | osc_mix_bal | noise_level| cutoff | resonance | filter_env_amt | amp | pan | +| additive | pitch | bright | tilt | inharmonicity | odd_even | formant_ctr | formant_depth | noise_mix | amp | pan | +| fm | pitch | op1_level | op2_level | op3_level | op4_level | cross_mod_global | feedback_global | global_ratio | amp | pan | + +## Conventions + +- **Source index** (`sNN`): 00..15 = ADSR slots 1..16, 16..47 = LFO slots 1..32. +- **Amount range**: each matrix slider is `[-1.0, +1.0]`, default 0 (no route). +- **`amp` destination** (d08): always the master amplitude destination for the + engine. Without any source routed here, the voice is either silent + (subtractive — the mod_amp signal multiplies into the VCA) or produces a + sustained tone at the engine's natural level (additive and fm — still gated + through mod_amp; without a route the amp signal is 0). **Route ADSR1 → d08 + for a standard VCA envelope in all three engines.** +- **`pitch` destination** (d00): always semitones, ±12 per mod unit. +- **`pan` destination** (d09): added to the master pan knob, clamped to [-1,1]. + +## Notes + +- `additive.bright` is a progressive high-partial boost/cut (replaces the old + brightness envelope in the non-modular `additive.dsp`). At mod=0, it is + unity; at mod=+1 it boosts top partials, at -1 it cuts them. +- `additive.formant_ctr` shifts BOTH formant centre frequencies by the same + amount (up to ±8 harmonics) so you can "move" the vocal shape with an LFO or + envelope. +- `fm.cross_mod_global` and `fm.feedback_global` are `(1 + mod)` multipliers + applied to the respective matrix cells BEFORE the feedback loop is closed, + so a mod of +1 doubles FM depth and -1 zeroes it out. +- `fm.global_ratio` is an ADDITIVE offset on all four operator ratios (±8), + clamped to ≥0.01. This can behave like a pitch-bend when animated slowly. diff --git a/playground/faust/additive.json b/playground/faust/additive.json index c2e316a..78fe7b9 100644 --- a/playground/faust/additive.json +++ b/playground/faust/additive.json @@ -1,758 +1 @@ -{ - "name": "additive", - "filename": "additive.dsp", - "version": "2.83.1", - "compile_options": "-lang cpp -fpga-mem-th 4 -ct 1 -es 1 -mcd 16 -mdd 1024 -mdy 33 -single -ftz 0", - "library_list": ["/nix/store/fnjbalzgc6pjm8la292cczxqbr00qmav-faust-2.83.1/share/faust/stdfaust.lib","/nix/store/fnjbalzgc6pjm8la292cczxqbr00qmav-faust-2.83.1/share/faust/envelopes.lib","/nix/store/fnjbalzgc6pjm8la292cczxqbr00qmav-faust-2.83.1/share/faust/maths.lib","/nix/store/fnjbalzgc6pjm8la292cczxqbr00qmav-faust-2.83.1/share/faust/platform.lib","/nix/store/fnjbalzgc6pjm8la292cczxqbr00qmav-faust-2.83.1/share/faust/oscillators.lib","/nix/store/fnjbalzgc6pjm8la292cczxqbr00qmav-faust-2.83.1/share/faust/basics.lib","/nix/store/fnjbalzgc6pjm8la292cczxqbr00qmav-faust-2.83.1/share/faust/noises.lib","/nix/store/fnjbalzgc6pjm8la292cczxqbr00qmav-faust-2.83.1/share/faust/filters.lib","/nix/store/fnjbalzgc6pjm8la292cczxqbr00qmav-faust-2.83.1/share/faust/signals.lib"], - "include_pathnames": ["/nix/store/fnjbalzgc6pjm8la292cczxqbr00qmav-faust-2.83.1/share/faust","/usr/local/share/faust","/usr/share/faust",".","/home/w1n5t0n/src/MEMLNaut-NISPS/.claude/worktrees/agent-ae51af34/.claude/worktrees/agent-a667e616/playground/faust"], - "size": 1908, - "inputs": 0, - "outputs": 2, - "meta": [ - { "basics.lib/name": "Faust Basic Element Library" }, - { "basics.lib/version": "1.22.0" }, - { "compile_options": "-lang cpp -fpga-mem-th 4 -ct 1 -es 1 -mcd 16 -mdd 1024 -mdy 33 -single -ftz 0" }, - { "envelopes.lib/adsr:author": "Yann Orlarey and Andrey Bundin" }, - { "envelopes.lib/author": "GRAME" }, - { "envelopes.lib/copyright": "GRAME" }, - { "envelopes.lib/license": "LGPL with exception" }, - { "envelopes.lib/name": "Faust Envelope Library" }, - { "envelopes.lib/version": "1.3.0" }, - { "filename": "additive.dsp" }, - { "filters.lib/lowpass0_highpass1": "MIT-style STK-4.3 license" }, - { "filters.lib/lowpass0_highpass1:author": "Julius O. Smith III" }, - { "filters.lib/lowpass:author": "Julius O. Smith III" }, - { "filters.lib/lowpass:copyright": "Copyright (C) 2003-2019 by Julius O. Smith III " }, - { "filters.lib/lowpass:license": "MIT-style STK-4.3 license" }, - { "filters.lib/name": "Faust Filters Library" }, - { "filters.lib/tf1:author": "Julius O. Smith III" }, - { "filters.lib/tf1:copyright": "Copyright (C) 2003-2019 by Julius O. Smith III " }, - { "filters.lib/tf1:license": "MIT-style STK-4.3 license" }, - { "filters.lib/tf1s:author": "Julius O. Smith III" }, - { "filters.lib/tf1s:copyright": "Copyright (C) 2003-2019 by Julius O. Smith III " }, - { "filters.lib/tf1s:license": "MIT-style STK-4.3 license" }, - { "filters.lib/version": "1.7.1" }, - { "maths.lib/author": "GRAME" }, - { "maths.lib/copyright": "GRAME" }, - { "maths.lib/license": "LGPL with exception" }, - { "maths.lib/name": "Faust Math Library" }, - { "maths.lib/version": "2.9.0" }, - { "name": "additive" }, - { "noises.lib/name": "Faust Noise Generator Library" }, - { "noises.lib/version": "1.5.0" }, - { "oscillators.lib/name": "Faust Oscillator Library" }, - { "oscillators.lib/version": "1.6.0" }, - { "platform.lib/name": "Generic Platform Library" }, - { "platform.lib/version": "1.3.0" }, - { "signals.lib/name": "Faust Signal Routing Library" }, - { "signals.lib/version": "1.6.0" } - ], - "ui": [ - { - "type": "vgroup", - "label": "additive", - "items": [ - { - "type": "hslider", - "label": "0_Hidden/freq", - "varname": "fHslider19", - "shortname": "0_Hidden_freq", - "address": "/additive/0_Hidden_freq", - "meta": [ - { "hidden": "1" }, - { "unit": "Hz" } - ], - "init": 220, - "min": 20, - "max": 4000, - "step": 0.01 - }, - { - "type": "button", - "label": "0_Hidden/gate", - "varname": "fButton0", - "shortname": "0_Hidden_gate", - "address": "/additive/0_Hidden_gate", - "meta": [ - { "hidden": "1" } - ] - }, - { - "type": "hslider", - "label": "1_Spectral Shape/00_h1_amp", - "varname": "fHslider41", - "shortname": "1_Spectral_Shape_00_h1_amp", - "address": "/additive/1_Spectral_Shape_00_h1_amp", - "meta": [ - { "tooltip": "H1 amplitude" } - ], - "init": 0.8, - "min": 0, - "max": 1, - "step": 0.001 - }, - { - "type": "hslider", - "label": "1_Spectral Shape/01_h2_amp", - "varname": "fHslider40", - "shortname": "1_Spectral_Shape_01_h2_amp", - "address": "/additive/1_Spectral_Shape_01_h2_amp", - "meta": [ - { "tooltip": "H2 amplitude" } - ], - "init": 0.5, - "min": 0, - "max": 1, - "step": 0.001 - }, - { - "type": "hslider", - "label": "1_Spectral Shape/02_h3_amp", - "varname": "fHslider39", - "shortname": "1_Spectral_Shape_02_h3_amp", - "address": "/additive/1_Spectral_Shape_02_h3_amp", - "meta": [ - { "tooltip": "H3 amplitude" } - ], - "init": 0.35, - "min": 0, - "max": 1, - "step": 0.001 - }, - { - "type": "hslider", - "label": "1_Spectral Shape/03_h4_amp", - "varname": "fHslider38", - "shortname": "1_Spectral_Shape_03_h4_amp", - "address": "/additive/1_Spectral_Shape_03_h4_amp", - "meta": [ - { "tooltip": "H4 amplitude" } - ], - "init": 0.25, - "min": 0, - "max": 1, - "step": 0.001 - }, - { - "type": "hslider", - "label": "1_Spectral Shape/04_h5_amp", - "varname": "fHslider37", - "shortname": "1_Spectral_Shape_04_h5_amp", - "address": "/additive/1_Spectral_Shape_04_h5_amp", - "meta": [ - { "tooltip": "H5 amplitude" } - ], - "init": 0.18, - "min": 0, - "max": 1, - "step": 0.001 - }, - { - "type": "hslider", - "label": "1_Spectral Shape/05_h6_amp", - "varname": "fHslider36", - "shortname": "1_Spectral_Shape_05_h6_amp", - "address": "/additive/1_Spectral_Shape_05_h6_amp", - "meta": [ - { "tooltip": "H6 amplitude" } - ], - "init": 0.12, - "min": 0, - "max": 1, - "step": 0.001 - }, - { - "type": "hslider", - "label": "1_Spectral Shape/06_h7_amp", - "varname": "fHslider35", - "shortname": "1_Spectral_Shape_06_h7_amp", - "address": "/additive/1_Spectral_Shape_06_h7_amp", - "meta": [ - { "tooltip": "H7 amplitude" } - ], - "init": 0.08, - "min": 0, - "max": 1, - "step": 0.001 - }, - { - "type": "hslider", - "label": "1_Spectral Shape/07_h8_amp", - "varname": "fHslider34", - "shortname": "1_Spectral_Shape_07_h8_amp", - "address": "/additive/1_Spectral_Shape_07_h8_amp", - "meta": [ - { "tooltip": "H8 amplitude" } - ], - "init": 0.06, - "min": 0, - "max": 1, - "step": 0.001 - }, - { - "type": "hslider", - "label": "1_Spectral Shape/08_h9_16_amp", - "varname": "fHslider33", - "shortname": "1_Spectral_Shape_08_h9_16_amp", - "address": "/additive/1_Spectral_Shape_08_h9_16_amp", - "meta": [ - { "tooltip": "H9-16 group amp" } - ], - "init": 0.05, - "min": 0, - "max": 1, - "step": 0.001 - }, - { - "type": "hslider", - "label": "1_Spectral Shape/09_h17_32_amp", - "varname": "fHslider32", - "shortname": "1_Spectral_Shape_09_h17_32_amp", - "address": "/additive/1_Spectral_Shape_09_h17_32_amp", - "meta": [ - { "tooltip": "H17-32 group amp" } - ], - "init": 0.025, - "min": 0, - "max": 1, - "step": 0.001 - }, - { - "type": "hslider", - "label": "1_Spectral Shape/10_h33_64_amp", - "varname": "fHslider30", - "shortname": "1_Spectral_Shape_10_h33_64_amp", - "address": "/additive/1_Spectral_Shape_10_h33_64_amp", - "meta": [ - { "tooltip": "H33-64 group amp" } - ], - "init": 0.01, - "min": 0, - "max": 1, - "step": 0.001 - }, - { - "type": "hslider", - "label": "1_Spectral Shape/11_spectral_tilt", - "varname": "fHslider29", - "shortname": "1_Spectral_Shape_11_spectral_tilt", - "address": "/additive/1_Spectral_Shape_11_spectral_tilt", - "meta": [ - { "tooltip": "Global tilt" } - ], - "init": 0, - "min": -1, - "max": 1, - "step": 0.001 - }, - { - "type": "hslider", - "label": "1_Spectral Shape/12_inharmonicity", - "varname": "fHslider20", - "shortname": "1_Spectral_Shape_12_inharmonicity", - "address": "/additive/1_Spectral_Shape_12_inharmonicity", - "meta": [ - { "tooltip": "Inharmonicity" } - ], - "init": 0, - "min": 0, - "max": 0.15, - "step": 0.0001 - }, - { - "type": "hslider", - "label": "1_Spectral Shape/13_odd_even", - "varname": "fHslider31", - "shortname": "1_Spectral_Shape_13_odd_even", - "address": "/additive/1_Spectral_Shape_13_odd_even", - "meta": [ - { "tooltip": "Odd/even balance" } - ], - "init": 0.5, - "min": 0, - "max": 1, - "step": 0.001 - }, - { - "type": "hslider", - "label": "2_Temporal/00_attack", - "varname": "fHslider8", - "shortname": "2_Temporal_00_attack", - "address": "/additive/2_Temporal_00_attack", - "meta": [ - { "scale": "log" }, - { "tooltip": "Attack" } - ], - "init": 0.01, - "min": 0.001, - "max": 5, - "step": 0.001 - }, - { - "type": "hslider", - "label": "2_Temporal/01_decay", - "varname": "fHslider9", - "shortname": "2_Temporal_01_decay", - "address": "/additive/2_Temporal_01_decay", - "meta": [ - { "tooltip": "Decay" } - ], - "init": 0.3, - "min": 0.001, - "max": 10, - "step": 0.001 - }, - { - "type": "hslider", - "label": "2_Temporal/02_sustain", - "varname": "fHslider10", - "shortname": "2_Temporal_02_sustain", - "address": "/additive/2_Temporal_02_sustain", - "meta": [ - { "tooltip": "Sustain" } - ], - "init": 0.7, - "min": 0, - "max": 1, - "step": 0.001 - }, - { - "type": "hslider", - "label": "2_Temporal/03_release", - "varname": "fHslider7", - "shortname": "2_Temporal_03_release", - "address": "/additive/2_Temporal_03_release", - "meta": [ - { "tooltip": "Release" } - ], - "init": 0.5, - "min": 0.01, - "max": 10, - "step": 0.001 - }, - { - "type": "hslider", - "label": "2_Temporal/04_brightness_attack", - "varname": "fHslider1", - "shortname": "2_Temporal_04_brightness_attack", - "address": "/additive/2_Temporal_04_brightness_attack", - "meta": [ - { "scale": "log" }, - { "tooltip": "Bright A" } - ], - "init": 0.005, - "min": 0.001, - "max": 5, - "step": 0.001 - }, - { - "type": "hslider", - "label": "2_Temporal/05_brightness_decay", - "varname": "fHslider2", - "shortname": "2_Temporal_05_brightness_decay", - "address": "/additive/2_Temporal_05_brightness_decay", - "meta": [ - { "tooltip": "Bright D" } - ], - "init": 0.15, - "min": 0.001, - "max": 5, - "step": 0.001 - }, - { - "type": "hslider", - "label": "2_Temporal/06_brightness_sustain", - "varname": "fHslider3", - "shortname": "2_Temporal_06_brightness_sustain", - "address": "/additive/2_Temporal_06_brightness_sustain", - "meta": [ - { "tooltip": "Bright S" } - ], - "init": 0.4, - "min": 0, - "max": 1, - "step": 0.001 - }, - { - "type": "hslider", - "label": "2_Temporal/07_brightness_release", - "varname": "fHslider0", - "shortname": "2_Temporal_07_brightness_release", - "address": "/additive/2_Temporal_07_brightness_release", - "meta": [ - { "tooltip": "Bright R" } - ], - "init": 0.3, - "min": 0.01, - "max": 5, - "step": 0.001 - }, - { - "type": "hslider", - "label": "2_Temporal/08_spectral_flux_rate", - "varname": "fHslider22", - "shortname": "2_Temporal_08_spectral_flux_rate", - "address": "/additive/2_Temporal_08_spectral_flux_rate", - "meta": [ - { "tooltip": "Flux rate" } - ], - "init": 0.5, - "min": 0, - "max": 10, - "step": 0.01 - }, - { - "type": "hslider", - "label": "2_Temporal/09_spectral_flux_depth", - "varname": "fHslider23", - "shortname": "2_Temporal_09_spectral_flux_depth", - "address": "/additive/2_Temporal_09_spectral_flux_depth", - "meta": [ - { "tooltip": "Flux depth" } - ], - "init": 0.1, - "min": 0, - "max": 1, - "step": 0.001 - }, - { - "type": "hslider", - "label": "3_Phase/00_phase_random", - "varname": "fHslider11", - "shortname": "3_Phase_00_phase_random", - "address": "/additive/3_Phase_00_phase_random", - "meta": [ - { "tooltip": "Phase randomisation" } - ], - "init": 0, - "min": 0, - "max": 1, - "step": 0.001 - }, - { - "type": "hslider", - "label": "3_Phase/01_phase_walk_rate", - "varname": "fHslider21", - "shortname": "3_Phase_01_phase_walk_rate", - "address": "/additive/3_Phase_01_phase_walk_rate", - "meta": [ - { "tooltip": "Phase walk rate" } - ], - "init": 0, - "min": 0, - "max": 5, - "step": 0.001 - }, - { - "type": "hslider", - "label": "3_Phase/02_beating_depth", - "varname": "fHslider13", - "shortname": "3_Phase_02_beating_depth", - "address": "/additive/3_Phase_02_beating_depth", - "meta": [ - { "tooltip": "Beating depth" } - ], - "init": 0, - "min": 0, - "max": 0.02, - "step": 0.0001 - }, - { - "type": "hslider", - "label": "3_Phase/03_beating_rate", - "varname": "fHslider12", - "shortname": "3_Phase_03_beating_rate", - "address": "/additive/3_Phase_03_beating_rate", - "meta": [ - { "tooltip": "Beating rate" } - ], - "init": 1, - "min": 0, - "max": 10, - "step": 0.01 - }, - { - "type": "hslider", - "label": "3_Phase/04_stereo_phase_spread", - "varname": "fHslider48", - "shortname": "3_Phase_04_stereo_phase_spread", - "address": "/additive/3_Phase_04_stereo_phase_spread", - "meta": [ - { "tooltip": "Stereo spread" } - ], - "init": 0.1, - "min": 0, - "max": 1, - "step": 0.001 - }, - { - "type": "hslider", - "label": "3_Phase/05_noise_floor", - "varname": "fHslider43", - "shortname": "3_Phase_05_noise_floor", - "address": "/additive/3_Phase_05_noise_floor", - "meta": [ - { "tooltip": "Noise floor" } - ], - "init": 0, - "min": 0, - "max": 0.2, - "step": 0.001 - }, - { - "type": "hslider", - "label": "3_Phase/06_noise_color", - "varname": "fHslider42", - "shortname": "3_Phase_06_noise_color", - "address": "/additive/3_Phase_06_noise_color", - "meta": [ - { "tooltip": "Noise colour" } - ], - "init": 0.5, - "min": 0, - "max": 1, - "step": 0.001 - }, - { - "type": "hslider", - "label": "3_Phase/07_sub_harmonic", - "varname": "fHslider44", - "shortname": "3_Phase_07_sub_harmonic", - "address": "/additive/3_Phase_07_sub_harmonic", - "meta": [ - { "tooltip": "Sub-harmonic" } - ], - "init": 0, - "min": 0, - "max": 1, - "step": 0.001 - }, - { - "type": "hslider", - "label": "4_Modulation/00_vibrato_rate", - "varname": "fHslider15", - "shortname": "4_Modulation_00_vibrato_rate", - "address": "/additive/4_Modulation_00_vibrato_rate", - "meta": [ - { "tooltip": "Vibrato rate" } - ], - "init": 5, - "min": 0, - "max": 10, - "step": 0.01 - }, - { - "type": "hslider", - "label": "4_Modulation/01_vibrato_depth", - "varname": "fHslider16", - "shortname": "4_Modulation_01_vibrato_depth", - "address": "/additive/4_Modulation_01_vibrato_depth", - "meta": [ - { "tooltip": "Vibrato depth" } - ], - "init": 0, - "min": 0, - "max": 0.05, - "step": 0.0001 - }, - { - "type": "hslider", - "label": "4_Modulation/02_vibrato_delay", - "varname": "fHslider14", - "shortname": "4_Modulation_02_vibrato_delay", - "address": "/additive/4_Modulation_02_vibrato_delay", - "meta": [ - { "tooltip": "Vibrato delay" } - ], - "init": 0.3, - "min": 0, - "max": 2, - "step": 0.001 - }, - { - "type": "hslider", - "label": "4_Modulation/03_tremolo_rate", - "varname": "fHslider5", - "shortname": "4_Modulation_03_tremolo_rate", - "address": "/additive/4_Modulation_03_tremolo_rate", - "meta": [ - { "tooltip": "Tremolo rate" } - ], - "init": 4, - "min": 0, - "max": 20, - "step": 0.01 - }, - { - "type": "hslider", - "label": "4_Modulation/04_tremolo_depth", - "varname": "fHslider6", - "shortname": "4_Modulation_04_tremolo_depth", - "address": "/additive/4_Modulation_04_tremolo_depth", - "meta": [ - { "tooltip": "Tremolo depth" } - ], - "init": 0, - "min": 0, - "max": 1, - "step": 0.001 - }, - { - "type": "hslider", - "label": "4_Modulation/05_drift_rate", - "varname": "fHslider24", - "shortname": "4_Modulation_05_drift_rate", - "address": "/additive/4_Modulation_05_drift_rate", - "meta": [ - { "tooltip": "Drift rate" } - ], - "init": 0, - "min": 0, - "max": 2, - "step": 0.001 - }, - { - "type": "hslider", - "label": "4_Modulation/06_drift_depth", - "varname": "fHslider25", - "shortname": "4_Modulation_06_drift_depth", - "address": "/additive/4_Modulation_06_drift_depth", - "meta": [ - { "tooltip": "Drift depth" } - ], - "init": 0, - "min": 0, - "max": 0.3, - "step": 0.001 - }, - { - "type": "hslider", - "label": "4_Modulation/07_formant1_freq", - "varname": "fHslider27", - "shortname": "4_Modulation_07_formant1_freq", - "address": "/additive/4_Modulation_07_formant1_freq", - "meta": [ - { "tooltip": "Formant 1 freq" } - ], - "init": 3, - "min": 1, - "max": 16, - "step": 0.01 - }, - { - "type": "hslider", - "label": "4_Modulation/08_formant2_freq", - "varname": "fHslider26", - "shortname": "4_Modulation_08_formant2_freq", - "address": "/additive/4_Modulation_08_formant2_freq", - "meta": [ - { "tooltip": "Formant 2 freq" } - ], - "init": 6, - "min": 1, - "max": 16, - "step": 0.01 - }, - { - "type": "hslider", - "label": "4_Modulation/09_formant_depth", - "varname": "fHslider28", - "shortname": "4_Modulation_09_formant_depth", - "address": "/additive/4_Modulation_09_formant_depth", - "meta": [ - { "tooltip": "Formant depth" } - ], - "init": 0, - "min": 0, - "max": 1, - "step": 0.001 - }, - { - "type": "hslider", - "label": "5_Master/00_level", - "varname": "fHslider47", - "shortname": "5_Master_00_level", - "address": "/additive/5_Master_00_level", - "meta": [ - { "tooltip": "Output level" } - ], - "init": 0.7, - "min": 0, - "max": 1, - "step": 0.001 - }, - { - "type": "hslider", - "label": "5_Master/01_vel_sens", - "varname": "fHslider46", - "shortname": "5_Master_01_vel_sens", - "address": "/additive/5_Master_01_vel_sens", - "meta": [ - { "tooltip": "Velocity sens" } - ], - "init": 0.5, - "min": 0, - "max": 1, - "step": 0.001 - }, - { - "type": "hslider", - "label": "5_Master/02_vel_brightness", - "varname": "fHslider4", - "shortname": "5_Master_02_vel_brightness", - "address": "/additive/5_Master_02_vel_brightness", - "meta": [ - { "tooltip": "Vel bright" } - ], - "init": 0.3, - "min": 0, - "max": 1, - "step": 0.001 - }, - { - "type": "hslider", - "label": "5_Master/03_pitch_glide", - "varname": "fHslider17", - "shortname": "5_Master_03_pitch_glide", - "address": "/additive/5_Master_03_pitch_glide", - "meta": [ - { "tooltip": "Portamento" } - ], - "init": 0, - "min": 0, - "max": 10, - "step": 0.01 - }, - { - "type": "hslider", - "label": "5_Master/04_saturation", - "varname": "fHslider45", - "shortname": "5_Master_04_saturation", - "address": "/additive/5_Master_04_saturation", - "meta": [ - { "tooltip": "Saturation" } - ], - "init": 0, - "min": 0, - "max": 1, - "step": 0.001 - }, - { - "type": "hslider", - "label": "5_Master/05_fine_tune", - "varname": "fHslider18", - "shortname": "5_Master_05_fine_tune", - "address": "/additive/5_Master_05_fine_tune", - "meta": [ - { "tooltip": "Cents" }, - { "unit": "ct" } - ], - "init": 0, - "min": -50, - "max": 50, - "step": 0.1 - } - ] - } - ] -} \ No newline at end of file +{"name": "additive","filename": "additive.dsp","version": "2.79.3","compile_options": "-lang wasm -ct 1 -cn additive -es 1 -mcd 16 -mdd 1024 -mdy 33 -single -ftz 0","library_list": ["/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust/stdfaust.lib","/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust/envelopes.lib","/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust/maths.lib","/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust/platform.lib","/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust/oscillators.lib","/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust/basics.lib","/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust/noises.lib","/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust/filters.lib","/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust/signals.lib"],"include_pathnames": ["/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust","/usr/local/share/faust","/usr/share/faust",".","/home/w1n5t0n/src/MEMLNaut-NISPS/playground/faust"],"size": 264068,"code": "Ly8gYWRkaXRpdmUuZHNwIOKAlCBGdWxsIDQ4LXBhcmFtZXRlciBhZGRpdGl2ZSBzeW50aGVzaXNlciBmb3IgTUVNTE5hdXQgTklTUFMgcGxheWdyb3VuZAovLwovLyA2NCBoYXJtb25pYyBzaW5lIGJhbmtzIHdpdGggc3BlY3RyYWwtZGVzY3JpcHRvciBwYXJhbWV0cmlzYXRpb24uCi8vIEFsbCA0OCBwYXJhbXMgYXJlIGRlc2lnbmVkIGZvciBjb250aW51b3VzIE1MIGV4cGxvcmF0aW9uIHZpYSBOSVNQUy4KLy8KLy8gUGFyYW1ldGVyIG9yZGVyIG1hdGNoZXMgTklTUFMgb3V0cHV0IGluZGljZXMgMOKAkzQ3OgovLyAgIEdyb3VwIDEg4oCUIFNwZWN0cmFsIFNoYXBlICgw4oCTMTMpOiAgaGFybW9uaWMgYmFuayArIHRpbHQgKyBpbmhhcm1vbmljaXR5ICsgb2RkL2V2ZW4KLy8gICBHcm91cCAyIOKAlCBUZW1wb3JhbCAgICAgICAoMTTigJMyMyk6IGdsb2JhbCBBRFNSICsgYnJpZ2h0bmVzcyBBRFNSICsgc3BlY3RyYWwgZmx1eAovLyAgIEdyb3VwIDMg4oCUIFBoYXNlICAgICAgICAgICgyNOKAkzMxKTogcGhhc2UgcmFuZG9taXNhdGlvbiwgYmVhdGluZywgc3RlcmVvLCBub2lzZSwgc3ViCi8vICAgR3JvdXAgNCDigJQgTW9kdWxhdGlvbiAgICAgKDMy4oCTNDEpOiB2aWJyYXRvLCB0cmVtb2xvLCBkcmlmdCwgZm9ybWFudHMKLy8gICBHcm91cCA1IOKAlCBNYXN0ZXIgICAgICAgICAoNDLigJM0Nyk6IGxldmVsLCB2ZWxvY2l0eSwgZ2xpZGUsIHNhdHVyYXRpb24sIGZpbmUtdHVuZQovLwovLyBHcm91cHMgYXJlIHByZWZpeGVkICIxXyIsICIyXyIgZXRjLiwgYW5kIGVhY2ggcGFyYW1ldGVyIGlzIHByZWZpeGVkICIwMF8iLAovLyAiMDFfIiBldGMuLCBzbyB0aGF0IEZhdXN0J3MgYWxwaGFiZXRpY2FsIEpTT04gb3JkZXJpbmcgbWF0Y2hlcyB0aGUgc3BlYy4KLy8gVGhlIGZhdXN0SnNvblRvUGFyYW1NZXRhIHBhcnNlciBzdHJpcHMgbnVtZXJpYyBwcmVmaXhlcyBhbmQgIlsuLi5dIiBtZXRhZGF0YQovLyBmcm9tIGxhYmVscyB0byBwcm9kdWNlIGNsZWFuIG5hbWVzLgovLwovLyBIaWRkZW4gY29udHJvbHMgKG5vdCBpbiBwYXJhbU1ldGEg4oCUIHdvcmtsZXQgZHJpdmVzIHRoZW0gZGlyZWN0bHkpOgovLyAgIGZyZXEgIOKAlCBmdW5kYW1lbnRhbCBmcmVxdWVuY3kgSHogKG5vdGVPbikKLy8gICBnYXRlICDigJQgZ2F0ZSBzaWduYWwgMC8xICAgICAgICAgIChub3RlT24vbm90ZU9mZikKLy8KLy8gQnVpbGQ6Ci8vICAgZmF1c3QgLWxhbmcgd2FzbSAtY24gYWRkaXRpdmUgLWUgYWRkaXRpdmUuZHNwIC1vIGFkZGl0aXZlLndhc20KLy8gICBmYXVzdCAtanNvbiBhZGRpdGl2ZS5kc3AgLW8gL2Rldi9udWxsICAocHJvZHVjZXMgYWRkaXRpdmUuZHNwLmpzb24pCi8vCmltcG9ydCgic3RkZmF1c3QubGliIik7CgovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLy8gSGlkZGVuIGNvbnRyb2xzCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpmcmVxID0gaHNsaWRlcigiMF9IaWRkZW4vZnJlcVtoaWRkZW46MV1bdW5pdDpIel0iLCAyMjAsIDIwLCA0MDAwLCAwLjAxKTsKZ2F0ZSA9IGJ1dHRvbigiMF9IaWRkZW4vZ2F0ZVtoaWRkZW46MV0iKTsKCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQovLyBHcm91cCAxIOKAlCBTcGVjdHJhbCBTaGFwZSAocGFyYW1zIDDigJMxMykKLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmgxX2FtcCAgICAgICAgPSBoc2xpZGVyKCIxX1NwZWN0cmFsIFNoYXBlLzAwX2gxX2FtcFt0b29sdGlwOkgxIGFtcGxpdHVkZV0iLCAgICAgICAgMC44LCAgIDAsICAgIDEsICAgICAwLjAwMSk7CmgyX2FtcCAgICAgICAgPSBoc2xpZGVyKCIxX1NwZWN0cmFsIFNoYXBlLzAxX2gyX2FtcFt0b29sdGlwOkgyIGFtcGxpdHVkZV0iLCAgICAgICAgMC41LCAgIDAsICAgIDEsICAgICAwLjAwMSk7CmgzX2FtcCAgICAgICAgPSBoc2xpZGVyKCIxX1NwZWN0cmFsIFNoYXBlLzAyX2gzX2FtcFt0b29sdGlwOkgzIGFtcGxpdHVkZV0iLCAgICAgICAgMC4zNSwgIDAsICAgIDEsICAgICAwLjAwMSk7Cmg0X2FtcCAgICAgICAgPSBoc2xpZGVyKCIxX1NwZWN0cmFsIFNoYXBlLzAzX2g0X2FtcFt0b29sdGlwOkg0IGFtcGxpdHVkZV0iLCAgICAgICAgMC4yNSwgIDAsICAgIDEsICAgICAwLjAwMSk7Cmg1X2FtcCAgICAgICAgPSBoc2xpZGVyKCIxX1NwZWN0cmFsIFNoYXBlLzA0X2g1X2FtcFt0b29sdGlwOkg1IGFtcGxpdHVkZV0iLCAgICAgICAgMC4xOCwgIDAsICAgIDEsICAgICAwLjAwMSk7Cmg2X2FtcCAgICAgICAgPSBoc2xpZGVyKCIxX1NwZWN0cmFsIFNoYXBlLzA1X2g2X2FtcFt0b29sdGlwOkg2IGFtcGxpdHVkZV0iLCAgICAgICAgMC4xMiwgIDAsICAgIDEsICAgICAwLjAwMSk7Cmg3X2FtcCAgICAgICAgPSBoc2xpZGVyKCIxX1NwZWN0cmFsIFNoYXBlLzA2X2g3X2FtcFt0b29sdGlwOkg3IGFtcGxpdHVkZV0iLCAgICAgICAgMC4wOCwgIDAsICAgIDEsICAgICAwLjAwMSk7Cmg4X2FtcCAgICAgICAgPSBoc2xpZGVyKCIxX1NwZWN0cmFsIFNoYXBlLzA3X2g4X2FtcFt0b29sdGlwOkg4IGFtcGxpdHVkZV0iLCAgICAgICAgMC4wNiwgIDAsICAgIDEsICAgICAwLjAwMSk7Cmg5XzE2X2FtcCAgICAgPSBoc2xpZGVyKCIxX1NwZWN0cmFsIFNoYXBlLzA4X2g5XzE2X2FtcFt0b29sdGlwOkg5LTE2IGdyb3VwIGFtcF0iLCAgMC4wNSwgIDAsICAgIDEsICAgICAwLjAwMSk7CmgxN18zMl9hbXAgICAgPSBoc2xpZGVyKCIxX1NwZWN0cmFsIFNoYXBlLzA5X2gxN18zMl9hbXBbdG9vbHRpcDpIMTctMzIgZ3JvdXAgYW1wXSIsMC4wMjUsIDAsICAgIDEsICAgICAwLjAwMSk7CmgzM182NF9hbXAgICAgPSBoc2xpZGVyKCIxX1NwZWN0cmFsIFNoYXBlLzEwX2gzM182NF9hbXBbdG9vbHRpcDpIMzMtNjQgZ3JvdXAgYW1wXSIsMC4wMSwgIDAsICAgIDEsICAgICAwLjAwMSk7CnNwZWN0cmFsX3RpbHQgPSBoc2xpZGVyKCIxX1NwZWN0cmFsIFNoYXBlLzExX3NwZWN0cmFsX3RpbHRbdG9vbHRpcDpHbG9iYWwgdGlsdF0iLCAgMCwgICAgLTEsICAgIDEsICAgICAwLjAwMSk7CmluaGFybW9uaWNpdHkgPSBoc2xpZGVyKCIxX1NwZWN0cmFsIFNoYXBlLzEyX2luaGFybW9uaWNpdHlbdG9vbHRpcDpJbmhhcm1vbmljaXR5XSIsIDAsICAgIDAsICAgIDAuMTUsICAwLjAwMDEpOwpvZGRfZXZlbiAgICAgID0gaHNsaWRlcigiMV9TcGVjdHJhbCBTaGFwZS8xM19vZGRfZXZlblt0b29sdGlwOk9kZC9ldmVuIGJhbGFuY2VdIiwgIDAuNSwgICAwLCAgICAxLCAgICAgMC4wMDEpOwoKLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi8vIEdyb3VwIDIg4oCUIFRlbXBvcmFsIChwYXJhbXMgMTTigJMyMykKLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmF0dGFjayAgICAgICAgICAgICA9IGhzbGlkZXIoIjJfVGVtcG9yYWwvMDBfYXR0YWNrW3NjYWxlOmxvZ11bdG9vbHRpcDpBdHRhY2tdIiwgICAgICAgICAgICAgMC4wMSwgIDAuMDAxLCA1LCAgIDAuMDAxKTsKZGVjYXkgICAgICAgICAgICAgID0gaHNsaWRlcigiMl9UZW1wb3JhbC8wMV9kZWNheVt0b29sdGlwOkRlY2F5XSIsICAgICAgICAgICAgICAgICAgICAgICAgICAgMC4zLCAgIDAuMDAxLCAxMCwgIDAuMDAxKTsKc3VzdGFpbiAgICAgICAgICAgID0gaHNsaWRlcigiMl9UZW1wb3JhbC8wMl9zdXN0YWluW3Rvb2x0aXA6U3VzdGFpbl0iLCAgICAgICAgICAgICAgICAgICAgICAgMC43LCAgIDAsICAgICAxLCAgIDAuMDAxKTsKcmVsZWFzZSAgICAgICAgICAgID0gaHNsaWRlcigiMl9UZW1wb3JhbC8wM19yZWxlYXNlW3Rvb2x0aXA6UmVsZWFzZV0iLCAgICAgICAgICAgICAgICAgICAgICAgMC41LCAgIDAuMDEsICAxMCwgIDAuMDAxKTsKYnJpZ2h0bmVzc19hdHRhY2sgID0gaHNsaWRlcigiMl9UZW1wb3JhbC8wNF9icmlnaHRuZXNzX2F0dGFja1tzY2FsZTpsb2ddW3Rvb2x0aXA6QnJpZ2h0IEFdIiwgMC4wMDUsIDAuMDAxLCA1LCAgIDAuMDAxKTsKYnJpZ2h0bmVzc19kZWNheSAgID0gaHNsaWRlcigiMl9UZW1wb3JhbC8wNV9icmlnaHRuZXNzX2RlY2F5W3Rvb2x0aXA6QnJpZ2h0IERdIiwgICAgICAgICAgICAgMC4xNSwgIDAuMDAxLCA1LCAgIDAuMDAxKTsKYnJpZ2h0bmVzc19zdXN0YWluID0gaHNsaWRlcigiMl9UZW1wb3JhbC8wNl9icmlnaHRuZXNzX3N1c3RhaW5bdG9vbHRpcDpCcmlnaHQgU10iLCAgICAgICAgICAgMC40LCAgIDAsICAgICAxLCAgIDAuMDAxKTsKYnJpZ2h0bmVzc19yZWxlYXNlID0gaHNsaWRlcigiMl9UZW1wb3JhbC8wN19icmlnaHRuZXNzX3JlbGVhc2VbdG9vbHRpcDpCcmlnaHQgUl0iLCAgICAgICAgICAgMC4zLCAgIDAuMDEsICA1LCAgIDAuMDAxKTsKc3BlY3RyYWxfZmx1eF9yYXRlID0gaHNsaWRlcigiMl9UZW1wb3JhbC8wOF9zcGVjdHJhbF9mbHV4X3JhdGVbdG9vbHRpcDpGbHV4IHJhdGVdIiwgICAgICAgICAgMC41LCAgIDAsICAgICAxMCwgIDAuMDEpOwpzcGVjdHJhbF9mbHV4X2RlcHRoPSBoc2xpZGVyKCIyX1RlbXBvcmFsLzA5X3NwZWN0cmFsX2ZsdXhfZGVwdGhbdG9vbHRpcDpGbHV4IGRlcHRoXSIsICAgICAgICAwLjEsICAgMCwgICAgIDEsICAgMC4wMDEpOwoKLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi8vIEdyb3VwIDMg4oCUIFBoYXNlICYgQ29oZXJlbmNlIChwYXJhbXMgMjTigJMzMSkKLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnBoYXNlX3JhbmRvbSAgICAgICA9IGhzbGlkZXIoIjNfUGhhc2UvMDBfcGhhc2VfcmFuZG9tW3Rvb2x0aXA6UGhhc2UgcmFuZG9taXNhdGlvbl0iLCAgICAgIDAsICAgMCwgICAgMSwgICAgMC4wMDEpOwpwaGFzZV93YWxrX3JhdGUgICAgPSBoc2xpZGVyKCIzX1BoYXNlLzAxX3BoYXNlX3dhbGtfcmF0ZVt0b29sdGlwOlBoYXNlIHdhbGsgcmF0ZV0iLCAgICAgICAgMCwgICAwLCAgICA1LCAgICAwLjAwMSk7CmJlYXRpbmdfZGVwdGggICAgICA9IGhzbGlkZXIoIjNfUGhhc2UvMDJfYmVhdGluZ19kZXB0aFt0b29sdGlwOkJlYXRpbmcgZGVwdGhdIiwgICAgICAgICAgICAwLCAgIDAsICAgIDAuMDIsIDAuMDAwMSk7CmJlYXRpbmdfcmF0ZSAgICAgICA9IGhzbGlkZXIoIjNfUGhhc2UvMDNfYmVhdGluZ19yYXRlW3Rvb2x0aXA6QmVhdGluZyByYXRlXSIsICAgICAgICAgICAgICAxLCAgIDAsICAgIDEwLCAgIDAuMDEpOwpzdGVyZW9fcGhhc2Vfc3ByZWFkPSBoc2xpZGVyKCIzX1BoYXNlLzA0X3N0ZXJlb19waGFzZV9zcHJlYWRbdG9vbHRpcDpTdGVyZW8gc3ByZWFkXSIsICAgICAgMC4xLCAwLCAgICAxLCAgICAwLjAwMSk7Cm5vaXNlX2Zsb29yICAgICAgICA9IGhzbGlkZXIoIjNfUGhhc2UvMDVfbm9pc2VfZmxvb3JbdG9vbHRpcDpOb2lzZSBmbG9vcl0iLCAgICAgICAgICAgICAgICAwLCAgIDAsICAgIDAuMiwgIDAuMDAxKTsKbm9pc2VfY29sb3IgICAgICAgID0gaHNsaWRlcigiM19QaGFzZS8wNl9ub2lzZV9jb2xvclt0b29sdGlwOk5vaXNlIGNvbG91cl0iLCAgICAgICAgICAgICAgIDAuNSwgMCwgICAgMSwgICAgMC4wMDEpOwpzdWJfaGFybW9uaWMgICAgICAgPSBoc2xpZGVyKCIzX1BoYXNlLzA3X3N1Yl9oYXJtb25pY1t0b29sdGlwOlN1Yi1oYXJtb25pY10iLCAgICAgICAgICAgICAgMCwgICAwLCAgICAxLCAgICAwLjAwMSk7CgovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLy8gR3JvdXAgNCDigJQgTW9kdWxhdGlvbiAocGFyYW1zIDMy4oCTNDEpCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQp2aWJyYXRvX3JhdGUgID0gaHNsaWRlcigiNF9Nb2R1bGF0aW9uLzAwX3ZpYnJhdG9fcmF0ZVt0b29sdGlwOlZpYnJhdG8gcmF0ZV0iLCAgIDUsICAgMCwgIDEwLCAgIDAuMDEpOwp2aWJyYXRvX2RlcHRoID0gaHNsaWRlcigiNF9Nb2R1bGF0aW9uLzAxX3ZpYnJhdG9fZGVwdGhbdG9vbHRpcDpWaWJyYXRvIGRlcHRoXSIsIDAsICAgMCwgIDAuMDUsIDAuMDAwMSk7CnZpYnJhdG9fZGVsYXkgPSBoc2xpZGVyKCI0X01vZHVsYXRpb24vMDJfdmlicmF0b19kZWxheVt0b29sdGlwOlZpYnJhdG8gZGVsYXldIiwgMC4zLCAwLCAgMiwgICAgMC4wMDEpOwp0cmVtb2xvX3JhdGUgID0gaHNsaWRlcigiNF9Nb2R1bGF0aW9uLzAzX3RyZW1vbG9fcmF0ZVt0b29sdGlwOlRyZW1vbG8gcmF0ZV0iLCAgIDQsICAgMCwgIDIwLCAgIDAuMDEpOwp0cmVtb2xvX2RlcHRoID0gaHNsaWRlcigiNF9Nb2R1bGF0aW9uLzA0X3RyZW1vbG9fZGVwdGhbdG9vbHRpcDpUcmVtb2xvIGRlcHRoXSIsIDAsICAgMCwgIDEsICAgIDAuMDAxKTsKZHJpZnRfcmF0ZSAgICA9IGhzbGlkZXIoIjRfTW9kdWxhdGlvbi8wNV9kcmlmdF9yYXRlW3Rvb2x0aXA6RHJpZnQgcmF0ZV0iLCAgICAgICAwLCAgIDAsICAyLCAgICAwLjAwMSk7CmRyaWZ0X2RlcHRoICAgPSBoc2xpZGVyKCI0X01vZHVsYXRpb24vMDZfZHJpZnRfZGVwdGhbdG9vbHRpcDpEcmlmdCBkZXB0aF0iLCAgICAgMCwgICAwLCAgMC4zLCAgMC4wMDEpOwpmb3JtYW50MV9mcmVxID0gaHNsaWRlcigiNF9Nb2R1bGF0aW9uLzA3X2Zvcm1hbnQxX2ZyZXFbdG9vbHRpcDpGb3JtYW50IDEgZnJlcV0iLDMsICAgMSwgIDE2LCAgIDAuMDEpOwpmb3JtYW50Ml9mcmVxID0gaHNsaWRlcigiNF9Nb2R1bGF0aW9uLzA4X2Zvcm1hbnQyX2ZyZXFbdG9vbHRpcDpGb3JtYW50IDIgZnJlcV0iLDYsICAgMSwgIDE2LCAgIDAuMDEpOwpmb3JtYW50X2RlcHRoID0gaHNsaWRlcigiNF9Nb2R1bGF0aW9uLzA5X2Zvcm1hbnRfZGVwdGhbdG9vbHRpcDpGb3JtYW50IGRlcHRoXSIsIDAsICAgMCwgIDEsICAgIDAuMDAxKTsKCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQovLyBHcm91cCA1IOKAlCBNYXN0ZXIgKHBhcmFtcyA0MuKAkzQ3KQovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KbGV2ZWwgICAgICA9IGhzbGlkZXIoIjVfTWFzdGVyLzAwX2xldmVsW3Rvb2x0aXA6T3V0cHV0IGxldmVsXSIsICAgICAgIDAuNywgIDAsICAgMSwgICAwLjAwMSk7CnZlbF9zZW5zICAgPSBoc2xpZGVyKCI1X01hc3Rlci8wMV92ZWxfc2Vuc1t0b29sdGlwOlZlbG9jaXR5IHNlbnNdIiwgICAwLjUsICAwLCAgIDEsICAgMC4wMDEpOwp2ZWxfYnJpZ2h0ID0gaHNsaWRlcigiNV9NYXN0ZXIvMDJfdmVsX2JyaWdodG5lc3NbdG9vbHRpcDpWZWwgYnJpZ2h0XSIsMC4zLCAgMCwgICAxLCAgIDAuMDAxKTsKcGl0Y2hfZ2xpZGU9IGhzbGlkZXIoIjVfTWFzdGVyLzAzX3BpdGNoX2dsaWRlW3Rvb2x0aXA6UG9ydGFtZW50b10iLCAgIDAsICAgIDAsICAgMTAsICAwLjAxKTsKc2F0dXJhdGlvbiA9IGhzbGlkZXIoIjVfTWFzdGVyLzA0X3NhdHVyYXRpb25bdG9vbHRpcDpTYXR1cmF0aW9uXSIsICAgIDAsICAgIDAsICAgMSwgICAwLjAwMSk7CmZpbmVfdHVuZSAgPSBoc2xpZGVyKCI1X01hc3Rlci8wNV9maW5lX3R1bmVbdW5pdDpjdF1bdG9vbHRpcDpDZW50c10iLCAwLCAgIC01MCwgIDUwLCAgMC4xKTsKCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQovLyBJbnRlcm5hbCBjb25zdGFudHMKLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk4gID0gNjQ7ClBJID0gbWEuUEk7CgovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLy8gUGl0Y2gg4oCUIHBvcnRhbWVudG8gKyBmaW5lIHR1bmUKLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmdsaWRlX3RhdSAgID0gMC4wMDAxICsgcGl0Y2hfZ2xpZGUgKiAwLjI7CmZpbmVfcmF0aW8gID0gcG93KDIuMCwgZmluZV90dW5lIC8gMTIwMC4wKTsKZnJlcV9zbW9vdGggPSBmcmVxICogZmluZV9yYXRpbyA6IHNpLnNtb290aChiYS50YXUycG9sZShnbGlkZV90YXUpKTsKCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQovLyBWaWJyYXRvIExGTyDigJQgZGVsYXllZCBvbnNldCB2aWEgc2xvdy1hdHRhY2sgZW52ZWxvcGUKLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnZpYnJhdG9fZW52ID0gZW4uYWRzcih2aWJyYXRvX2RlbGF5LCAwLjAxLCAxLjAsIDAuNSwgZ2F0ZSk7CnZpYnJhdG9fbGZvID0gb3Mub3NjKHZpYnJhdG9fcmF0ZSkgKiB2aWJyYXRvX2RlcHRoICogdmlicmF0b19lbnY7CgovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLy8gVHJlbW9sbyBMRk8KLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnRyZW1vbG9fbGZvID0gMS4wIC0gdHJlbW9sb19kZXB0aCAqIDAuNSAqICgxLjAgKyBvcy5vc2ModHJlbW9sb19yYXRlKSk7CgovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLy8gR2xvYmFsIGFtcGxpdHVkZSBBRFNSCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQphbXBfZW52ID0gZW4uYWRzcihhdHRhY2ssIGRlY2F5LCBzdXN0YWluLCByZWxlYXNlLCBnYXRlKTsKCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQovLyBCcmlnaHRuZXNzIGVudmVsb3BlIOKAlCBjb250cm9scyBoaWdoIGhhcm1vbmljIGFtcGxpdHVkZSBvdmVyIHRpbWUKLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmJyaWdodF9lbnYgICA9IGVuLmFkc3IoYnJpZ2h0bmVzc19hdHRhY2ssIGJyaWdodG5lc3NfZGVjYXksCiAgICAgICAgICAgICAgICAgICAgICAgIGJyaWdodG5lc3Nfc3VzdGFpbiwgYnJpZ2h0bmVzc19yZWxlYXNlLCBnYXRlKTsKYnJpZ2h0X2JsZW5kKGspID0gZmxvYXQoayAtIDEpIC8gZmxvYXQoTiAtIDEpOwpicmlnaHRfZmFjdG9yKGspID0gMS4wIC0gYnJpZ2h0X2JsZW5kKGspICsgYnJpZ2h0X2JsZW5kKGspICogYnJpZ2h0X2VudjsKCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQovLyBTcGVjdHJhbCBmbHV4IOKAlCBzbG93IExGTyBvbiB1cHBlciBoYXJtb25pYyBhbXBsaXR1ZGVzCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpmbHV4X2xmbyA9IG9zLm9zYyhzcGVjdHJhbF9mbHV4X3JhdGUpOwpmbHV4X2ZhY3RvcihrKSA9IGJhLmlmKGsgPiA4LAogICAgICAgICAgICAgICAgICAgMS4wICsgc3BlY3RyYWxfZmx1eF9kZXB0aCAqIGZsdXhfbGZvICogYnJpZ2h0X2JsZW5kKGspLAogICAgICAgICAgICAgICAgICAgMS4wKTsKCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQovLyBEcmlmdCDigJQgc2xvdyByYW5kb20gd2FsayBvbiBwZXItcGFydGlhbCBhbXBsaXR1ZGVzCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpkcmlmdF9sZm8oaykgPSBuby5ub2lzZSAqIChmbG9hdChrICUgNyArIDEpIC8gNy4wKQogICAgICAgICAgICAgICA6IGZpLmxvd3Bhc3MoMSwgbWF4KDAuMSwgZHJpZnRfcmF0ZSAqIDIuMCkpCiAgICAgICAgICAgICAgIDogKihkcmlmdF9kZXB0aCk7CmRyaWZ0X2ZhY3RvcihrKSA9IDEuMCArIGRyaWZ0X2xmbyhrKTsKCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQovLyBQZXItaGFybW9uaWMgYmFzZSBhbXBsaXR1ZGUgZnJvbSBncm91cCBzbGlkZXJzCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpncm91cF9hbXAoaykgPQogIGJhLmlmKGsgPT0gMSwgaDFfYW1wLAogIGJhLmlmKGsgPT0gMiwgaDJfYW1wLAogIGJhLmlmKGsgPT0gMywgaDNfYW1wLAogIGJhLmlmKGsgPT0gNCwgaDRfYW1wLAogIGJhLmlmKGsgPT0gNSwgaDVfYW1wLAogIGJhLmlmKGsgPT0gNiwgaDZfYW1wLAogIGJhLmlmKGsgPT0gNywgaDdfYW1wLAogIGJhLmlmKGsgPT0gOCwgaDhfYW1wLAogIGJhLmlmKGsgPD0gMTYsIGg5XzE2X2FtcCwKICBiYS5pZihrIDw9IDMyLCBoMTdfMzJfYW1wLAogICAgICAgICAgICAgICAgIGgzM182NF9hbXApKSkpKSkpKSkpOwoKLy8gU3BlY3RyYWwgdGlsdDogYW1wICo9IGtedGlsdCAoaz0xIGlzIGFsd2F5cyB1bml0eSkKdGlsdF9mYWN0b3IoaykgPSBwb3coZmxvYXQoayksIHNwZWN0cmFsX3RpbHQpOwoKLy8gT2RkL2V2ZW4gYmFsYW5jZTogw5cyIHNvIHVuaXR5IGdhaW4gYXQgb2RkX2V2ZW49MC41Cm9kZF93ZWlnaHQgID0gKDEuMCAtIG9kZF9ldmVuKSAqIDIuMDsKZXZlbl93ZWlnaHQgPSBvZGRfZXZlbiAqIDIuMDsKb2RkX2V2ZW5fZmFjdG9yKGspID0gYmEuaWYoayAlIDIgPT0gMCwgZXZlbl93ZWlnaHQsIG9kZF93ZWlnaHQpOwoKLy8gQ29tYmluZWQgcmF3IGFtcGxpdHVkZQpoYXJtX2FtcF9yYXcoaykgPSBncm91cF9hbXAoaykgKiB0aWx0X2ZhY3RvcihrKSAqIG9kZF9ldmVuX2ZhY3RvcihrKTsKCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQovLyBGb3JtYW50IHNoYXBpbmcg4oCUIHR3byBHYXVzc2lhbiBidW1wcyBpbiBoYXJtb25pYy1pbmRleCBzcGFjZQovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc2lnbWFfc3EgPSAxLjUgKiAxLjU7CmZvcm1hbnRfYnVtcChrLCBjdHIpID0gZXhwKC0wLjUgKiAoZmxvYXQoaykgLSBjdHIpICogKGZsb2F0KGspIC0gY3RyKSAvIHNpZ21hX3NxKTsKZm9ybWFudF9mYWN0b3IoaykgPQogIDEuMCArIGZvcm1hbnRfZGVwdGggKiAoZm9ybWFudF9idW1wKGssIGZvcm1hbnQxX2ZyZXEpICsgZm9ybWFudF9idW1wKGssIGZvcm1hbnQyX2ZyZXEpKTsKCmhhcm1fYW1wKGspID0gaGFybV9hbXBfcmF3KGspICogZm9ybWFudF9mYWN0b3Ioayk7CgovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLy8gSW5oYXJtb25pYyBwYXJ0aWFsIGZyZXF1ZW5jeTogZnJlcV9rID0gaypmMCooMSArIEIqKGteMiAtIDEpKQovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KaGFybV9mcmVxKGspID0gZnJlcV9zbW9vdGggKiBmbG9hdChrKQogICAgICAgICAgICAgICAqICgxLjAgKyBpbmhhcm1vbmljaXR5ICogKGZsb2F0KGspICogZmxvYXQoaykgLSAxLjApKTsKCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQovLyBQaGFzZSByYW5kb21pc2F0aW9uIOKAlCBhZGRzIHBlci1oYXJtb25pYyBub2lzZSB0byB0aGUgb3NjaWxsYXRvciBmcmVxdWVuY3ksCi8vIGdyYWR1YWxseSBkZXBoYXNpbmcgcGFydGlhbHMgKHBoYXNlX3JhbmRvbT0wOiBwaGFzZS1sb2NrZWQsID0xOiByYW5kb20pCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpwaGFzZV9yYW5kX2xmbyhrKSA9IG5vLm5vaXNlICogKGZsb2F0KChrICogMTcgKyAzKSAlIDMxICsgMSkgLyAzMS4wKQogICAgICAgICAgICAgICAgICAgIDogc2kuc21vb3RoKGJhLnRhdTJwb2xlKDAuMDUpKQogICAgICAgICAgICAgICAgICAgIDogKihwaGFzZV9yYW5kb20gKiBoYXJtX2ZyZXEoaykgKiAwLjAxKTsKCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQovLyBQaGFzZSByYW5kb20gd2FsayDigJQgc2xvd2VyIGluZGVwZW5kZW50IGRyaWZ0IHBlciBwYXJ0aWFsCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpwaGFzZV93YWxrKGspID0gbm8ubm9pc2UgKiAoZmxvYXQoayAlIDcgKyAxKSAvIDcuMCkKICAgICAgICAgICAgICAgIDogc2kuc21vb3RoKGJhLnRhdTJwb2xlKDAuMSkpCiAgICAgICAgICAgICAgICA6ICoocGhhc2Vfd2Fsa19yYXRlKTsKCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQovLyBJbnRlci1wYXJ0aWFsIGJlYXRpbmcg4oCUIHNpbnVzb2lkYWwgZGV0dW5pbmcgc3RhZ2dlcgovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KYmVhdGluZ19vZmZzZXQoaykgPSBiZWF0aW5nX2RlcHRoCiAgICAgICAgICAgICAgICAgICAgKiBvcy5vc2MoYmVhdGluZ19yYXRlICogZmxvYXQoayAlIDMgKyAxKSAqIDAuNykKICAgICAgICAgICAgICAgICAgICAqIGhhcm1fZnJlcShrKTsKCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQovLyBTdGVyZW8gc3ByZWFkIOKAlCBSIGNoYW5uZWwgZ2V0cyBhIHNtYWxsIHBlci1oYXJtb25pYyBwaXRjaCBvZmZzZXQKLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN0ZXJlb19zcHJlYWRfZnJlcShrKSA9IHN0ZXJlb19waGFzZV9zcHJlYWQgKiBmbG9hdChrKSAqIDAuMDE7CgovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLy8gQWRkaXRpdmUgb3NjaWxsYXRvciBzdW1zIOKAlCBMIGFuZCBSCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQphZGRpdGl2ZV9MID0gc3VtKGssIE4sCiAgaGFybV9hbXAoaysxKSAqIGJyaWdodF9mYWN0b3IoaysxKSAqIGZsdXhfZmFjdG9yKGsrMSkgKiBkcmlmdF9mYWN0b3IoaysxKSAqCiAgb3Mub3NjKCAgaGFybV9mcmVxKGsrMSkgKiAoMS4wICsgdmlicmF0b19sZm8pCiAgICAgICAgICsgYmVhdGluZ19vZmZzZXQoaysxKQogICAgICAgICArIHBoYXNlX3JhbmRfbGZvKGsrMSkKICAgICAgICAgKyBwaGFzZV93YWxrKGsrMSkKICApCik7CgphZGRpdGl2ZV9SID0gc3VtKGssIE4sCiAgaGFybV9hbXAoaysxKSAqIGJyaWdodF9mYWN0b3IoaysxKSAqIGZsdXhfZmFjdG9yKGsrMSkgKiBkcmlmdF9mYWN0b3IoaysxKSAqCiAgb3Mub3NjKCAgaGFybV9mcmVxKGsrMSkgKiAoMS4wICsgdmlicmF0b19sZm8gKyBzdGVyZW9fc3ByZWFkX2ZyZXEoaysxKSkKICAgICAgICAgKyBiZWF0aW5nX29mZnNldChrKzEpCiAgICAgICAgICsgcGhhc2VfcmFuZF9sZm8oaysxKQogICAgICAgICArIHBoYXNlX3dhbGsoaysxKQogICkKKTsKCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQovLyBTdWItaGFybW9uaWMgKDAuNcOXIGZ1bmRhbWVudGFsKQovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViX29zYyA9IHN1Yl9oYXJtb25pYyAqIG9zLm9zYyhmcmVxX3Ntb290aCAqIDAuNSk7CgovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLy8gTm9pc2UgZmxvb3Ig4oCUIGNvbG91cmVkIHZpYSBvbmUtcG9sZSBMUCAobm9pc2VfY29sb3I9MOKGkndoaXRlLCA9MeKGkmRhcmspCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpub2lzZV9scF9jdXRvZmYgPSAyMDAuMCArICgxLjAgLSBub2lzZV9jb2xvcikgKiAxOTgwMC4wOwpub2lzZV9zaWduYWwgICAgPSBuby5ub2lzZSA6IGZpLmxvd3Bhc3MoMSwgbm9pc2VfbHBfY3V0b2ZmKTsKbm9pc2Vfb3V0ICAgICAgID0gbm9pc2VfZmxvb3IgKiBub2lzZV9zaWduYWw7CgovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLy8gU29mdC1jbGlwIHNhdHVyYXRpb24g4oCUIHRhbmggd2F2ZXNoYXBlcgovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KZHJpdmUgICAgICAgPSAxLjAgKyBzYXR1cmF0aW9uICogOS4wOwpzb2Z0Y2xpcCh4KSA9IG1hLnRhbmgoeCAqIGRyaXZlKSAvIGRyaXZlOwoKLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi8vIE91dHB1dCBnYWluCi8vIHZlbF9icmlnaHQgbW9kdWxhdGVzIGhvdyBtdWNoIHRoZSBicmlnaHRuZXNzIGVudmVsb3BlIGJvb3N0cyB0aGUgb3ZlcmFsbAovLyBsZXZlbCBkdXJpbmcgbm90ZSBvbnNldCAoY291cGxlcyB2ZWxvY2l0eSBzZW5zaXRpdml0eSB0byBicmlnaHRuZXNzKS4KLy8gSGVyZSBpdCBhY3RzIGFzIGEgc3VidGxlIG1pZC10ZXJtIGdhaW4gc2hhcGVyIHZpYSB0aGUgYnJpZ2h0X2VudiBzaWduYWwuCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQp2ZWxfYnJpZ2h0X2Jvb3N0ID0gMS4wICsgdmVsX2JyaWdodCAqIGJyaWdodF9lbnYgKiAwLjM7Cm91dF9nYWluID0gbGV2ZWwgKiAoMS4wIC0gdmVsX3NlbnMgKiAwLjMpICogdmVsX2JyaWdodF9ib29zdDsKCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQovLyBGaW5hbCBhc3NlbWJseQovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc2lnbmFsX0wgPSAoYWRkaXRpdmVfTCArIHN1Yl9vc2MgKyBub2lzZV9vdXQpICogYW1wX2VudiAqIHRyZW1vbG9fbGZvICogb3V0X2dhaW47CnNpZ25hbF9SID0gKGFkZGl0aXZlX1IgKyBzdWJfb3NjICsgbm9pc2Vfb3V0KSAqIGFtcF9lbnYgKiB0cmVtb2xvX2xmbyAqIG91dF9nYWluOwoKcHJvY2VzcyA9IHNvZnRjbGlwKHNpZ25hbF9MKSwgc29mdGNsaXAoc2lnbmFsX1IpOwo=","inputs": 0,"outputs": 2,"meta": [ { "basics.lib/name": "Faust Basic Element Library" },{ "basics.lib/version": "1.21.0" },{ "compile_options": "-lang wasm -ct 1 -cn additive -es 1 -mcd 16 -mdd 1024 -mdy 33 -single -ftz 0" },{ "envelopes.lib/adsr:author": "Yann Orlarey and Andrey Bundin" },{ "envelopes.lib/author": "GRAME" },{ "envelopes.lib/copyright": "GRAME" },{ "envelopes.lib/license": "LGPL with exception" },{ "envelopes.lib/name": "Faust Envelope Library" },{ "envelopes.lib/version": "1.3.0" },{ "filename": "additive.dsp" },{ "filters.lib/lowpass0_highpass1": "MIT-style STK-4.3 license" },{ "filters.lib/lowpass0_highpass1:author": "Julius O. Smith III" },{ "filters.lib/lowpass:author": "Julius O. Smith III" },{ "filters.lib/lowpass:copyright": "Copyright (C) 2003-2019 by Julius O. Smith III " },{ "filters.lib/lowpass:license": "MIT-style STK-4.3 license" },{ "filters.lib/name": "Faust Filters Library" },{ "filters.lib/tf1:author": "Julius O. Smith III" },{ "filters.lib/tf1:copyright": "Copyright (C) 2003-2019 by Julius O. Smith III " },{ "filters.lib/tf1:license": "MIT-style STK-4.3 license" },{ "filters.lib/tf1s:author": "Julius O. Smith III" },{ "filters.lib/tf1s:copyright": "Copyright (C) 2003-2019 by Julius O. Smith III " },{ "filters.lib/tf1s:license": "MIT-style STK-4.3 license" },{ "filters.lib/version": "1.7.1" },{ "maths.lib/author": "GRAME" },{ "maths.lib/copyright": "GRAME" },{ "maths.lib/license": "LGPL with exception" },{ "maths.lib/name": "Faust Math Library" },{ "maths.lib/version": "2.8.1" },{ "name": "additive" },{ "noises.lib/name": "Faust Noise Generator Library" },{ "noises.lib/version": "1.4.1" },{ "oscillators.lib/name": "Faust Oscillator Library" },{ "oscillators.lib/version": "1.6.0" },{ "platform.lib/name": "Generic Platform Library" },{ "platform.lib/version": "1.3.0" },{ "signals.lib/name": "Faust Signal Routing Library" },{ "signals.lib/version": "1.6.0" }],"ui": [ {"type": "vgroup","label": "additive","items": [ {"type": "hslider","label": "0_Hidden/freq","varname": "fHslider19","shortname": "0_Hidden_freq","address": "/additive/0_Hidden_freq","index": 262336,"meta": [{ "hidden": "1" },{ "unit": "Hz" }],"init": 220,"min": 20,"max": 4000,"step": 0.01},{"type": "button","label": "0_Hidden/gate","varname": "fButton0","shortname": "0_Hidden_gate","address": "/additive/0_Hidden_gate","index": 262152,"meta": [{ "hidden": "1" }]},{"type": "hslider","label": "1_Spectral Shape/00_h1_amp","varname": "fHslider41","shortname": "1_Spectral_Shape_00_h1_amp","address": "/additive/1_Spectral_Shape_00_h1_amp","index": 263488,"meta": [{ "tooltip": "H1 amplitude" }],"init": 0.8,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "1_Spectral Shape/01_h2_amp","varname": "fHslider40","shortname": "1_Spectral_Shape_01_h2_amp","address": "/additive/1_Spectral_Shape_01_h2_amp","index": 263476,"meta": [{ "tooltip": "H2 amplitude" }],"init": 0.5,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "1_Spectral Shape/02_h3_amp","varname": "fHslider39","shortname": "1_Spectral_Shape_02_h3_amp","address": "/additive/1_Spectral_Shape_02_h3_amp","index": 263464,"meta": [{ "tooltip": "H3 amplitude" }],"init": 0.35,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "1_Spectral Shape/03_h4_amp","varname": "fHslider38","shortname": "1_Spectral_Shape_03_h4_amp","address": "/additive/1_Spectral_Shape_03_h4_amp","index": 263452,"meta": [{ "tooltip": "H4 amplitude" }],"init": 0.25,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "1_Spectral Shape/04_h5_amp","varname": "fHslider37","shortname": "1_Spectral_Shape_04_h5_amp","address": "/additive/1_Spectral_Shape_04_h5_amp","index": 263440,"meta": [{ "tooltip": "H5 amplitude" }],"init": 0.18,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "1_Spectral Shape/05_h6_amp","varname": "fHslider36","shortname": "1_Spectral_Shape_05_h6_amp","address": "/additive/1_Spectral_Shape_05_h6_amp","index": 263428,"meta": [{ "tooltip": "H6 amplitude" }],"init": 0.12,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "1_Spectral Shape/06_h7_amp","varname": "fHslider35","shortname": "1_Spectral_Shape_06_h7_amp","address": "/additive/1_Spectral_Shape_06_h7_amp","index": 263416,"meta": [{ "tooltip": "H7 amplitude" }],"init": 0.08,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "1_Spectral Shape/07_h8_amp","varname": "fHslider34","shortname": "1_Spectral_Shape_07_h8_amp","address": "/additive/1_Spectral_Shape_07_h8_amp","index": 263404,"meta": [{ "tooltip": "H8 amplitude" }],"init": 0.06,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "1_Spectral Shape/08_h9_16_amp","varname": "fHslider33","shortname": "1_Spectral_Shape_08_h9_16_amp","address": "/additive/1_Spectral_Shape_08_h9_16_amp","index": 263336,"meta": [{ "tooltip": "H9-16 group amp" }],"init": 0.05,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "1_Spectral Shape/09_h17_32_amp","varname": "fHslider32","shortname": "1_Spectral_Shape_09_h17_32_amp","address": "/additive/1_Spectral_Shape_09_h17_32_amp","index": 263204,"meta": [{ "tooltip": "H17-32 group amp" }],"init": 0.025,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "1_Spectral Shape/10_h33_64_amp","varname": "fHslider30","shortname": "1_Spectral_Shape_10_h33_64_amp","address": "/additive/1_Spectral_Shape_10_h33_64_amp","index": 262436,"meta": [{ "tooltip": "H33-64 group amp" }],"init": 0.01,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "1_Spectral Shape/11_spectral_tilt","varname": "fHslider29","shortname": "1_Spectral_Shape_11_spectral_tilt","address": "/additive/1_Spectral_Shape_11_spectral_tilt","index": 262432,"meta": [{ "tooltip": "Global tilt" }],"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "1_Spectral Shape/12_inharmonicity","varname": "fHslider20","shortname": "1_Spectral_Shape_12_inharmonicity","address": "/additive/1_Spectral_Shape_12_inharmonicity","index": 262348,"meta": [{ "tooltip": "Inharmonicity" }],"init": 0,"min": 0,"max": 0.15,"step": 0.0001},{"type": "hslider","label": "1_Spectral Shape/13_odd_even","varname": "fHslider31","shortname": "1_Spectral_Shape_13_odd_even","address": "/additive/1_Spectral_Shape_13_odd_even","index": 262440,"meta": [{ "tooltip": "Odd/even balance" }],"init": 0.5,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "2_Temporal/00_attack","varname": "fHslider8","shortname": "2_Temporal_00_attack","address": "/additive/2_Temporal_00_attack","index": 262232,"meta": [{ "scale": "log" },{ "tooltip": "Attack" }],"init": 0.01,"min": 0.001,"max": 5,"step": 0.001},{"type": "hslider","label": "2_Temporal/01_decay","varname": "fHslider9","shortname": "2_Temporal_01_decay","address": "/additive/2_Temporal_01_decay","index": 262236,"meta": [{ "tooltip": "Decay" }],"init": 0.3,"min": 0.001,"max": 10,"step": 0.001},{"type": "hslider","label": "2_Temporal/02_sustain","varname": "fHslider10","shortname": "2_Temporal_02_sustain","address": "/additive/2_Temporal_02_sustain","index": 262240,"meta": [{ "tooltip": "Sustain" }],"init": 0.7,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "2_Temporal/03_release","varname": "fHslider7","shortname": "2_Temporal_03_release","address": "/additive/2_Temporal_03_release","index": 262228,"meta": [{ "tooltip": "Release" }],"init": 0.5,"min": 0.01,"max": 10,"step": 0.001},{"type": "hslider","label": "2_Temporal/04_brightness_attack","varname": "fHslider1","shortname": "2_Temporal_04_brightness_attack","address": "/additive/2_Temporal_04_brightness_attack","index": 262192,"meta": [{ "scale": "log" },{ "tooltip": "Bright A" }],"init": 0.005,"min": 0.001,"max": 5,"step": 0.001},{"type": "hslider","label": "2_Temporal/05_brightness_decay","varname": "fHslider2","shortname": "2_Temporal_05_brightness_decay","address": "/additive/2_Temporal_05_brightness_decay","index": 262196,"meta": [{ "tooltip": "Bright D" }],"init": 0.15,"min": 0.001,"max": 5,"step": 0.001},{"type": "hslider","label": "2_Temporal/06_brightness_sustain","varname": "fHslider3","shortname": "2_Temporal_06_brightness_sustain","address": "/additive/2_Temporal_06_brightness_sustain","index": 262200,"meta": [{ "tooltip": "Bright S" }],"init": 0.4,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "2_Temporal/07_brightness_release","varname": "fHslider0","shortname": "2_Temporal_07_brightness_release","address": "/additive/2_Temporal_07_brightness_release","index": 262172,"meta": [{ "tooltip": "Bright R" }],"init": 0.3,"min": 0.01,"max": 5,"step": 0.001},{"type": "hslider","label": "2_Temporal/08_spectral_flux_rate","varname": "fHslider22","shortname": "2_Temporal_08_spectral_flux_rate","address": "/additive/2_Temporal_08_spectral_flux_rate","index": 262384,"meta": [{ "tooltip": "Flux rate" }],"init": 0.5,"min": 0,"max": 10,"step": 0.01},{"type": "hslider","label": "2_Temporal/09_spectral_flux_depth","varname": "fHslider23","shortname": "2_Temporal_09_spectral_flux_depth","address": "/additive/2_Temporal_09_spectral_flux_depth","index": 262396,"meta": [{ "tooltip": "Flux depth" }],"init": 0.1,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "3_Phase/00_phase_random","varname": "fHslider11","shortname": "3_Phase_00_phase_random","address": "/additive/3_Phase_00_phase_random","index": 262280,"meta": [{ "tooltip": "Phase randomisation" }],"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "3_Phase/01_phase_walk_rate","varname": "fHslider21","shortname": "3_Phase_01_phase_walk_rate","address": "/additive/3_Phase_01_phase_walk_rate","index": 262372,"meta": [{ "tooltip": "Phase walk rate" }],"init": 0,"min": 0,"max": 5,"step": 0.001},{"type": "hslider","label": "3_Phase/02_beating_depth","varname": "fHslider13","shortname": "3_Phase_02_beating_depth","address": "/additive/3_Phase_02_beating_depth","index": 262300,"meta": [{ "tooltip": "Beating depth" }],"init": 0,"min": 0,"max": 0.02,"step": 0.0001},{"type": "hslider","label": "3_Phase/03_beating_rate","varname": "fHslider12","shortname": "3_Phase_03_beating_rate","address": "/additive/3_Phase_03_beating_rate","index": 262284,"meta": [{ "tooltip": "Beating rate" }],"init": 1,"min": 0,"max": 10,"step": 0.01},{"type": "hslider","label": "3_Phase/04_stereo_phase_spread","varname": "fHslider48","shortname": "3_Phase_04_stereo_phase_spread","address": "/additive/3_Phase_04_stereo_phase_spread","index": 263536,"meta": [{ "tooltip": "Stereo spread" }],"init": 0.1,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "3_Phase/05_noise_floor","varname": "fHslider43","shortname": "3_Phase_05_noise_floor","address": "/additive/3_Phase_05_noise_floor","index": 263504,"meta": [{ "tooltip": "Noise floor" }],"init": 0,"min": 0,"max": 0.2,"step": 0.001},{"type": "hslider","label": "3_Phase/06_noise_color","varname": "fHslider42","shortname": "3_Phase_06_noise_color","address": "/additive/3_Phase_06_noise_color","index": 263492,"meta": [{ "tooltip": "Noise colour" }],"init": 0.5,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "3_Phase/07_sub_harmonic","varname": "fHslider44","shortname": "3_Phase_07_sub_harmonic","address": "/additive/3_Phase_07_sub_harmonic","index": 263520,"meta": [{ "tooltip": "Sub-harmonic" }],"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "4_Modulation/00_vibrato_rate","varname": "fHslider15","shortname": "4_Modulation_00_vibrato_rate","address": "/additive/4_Modulation_00_vibrato_rate","index": 262312,"meta": [{ "tooltip": "Vibrato rate" }],"init": 5,"min": 0,"max": 10,"step": 0.01},{"type": "hslider","label": "4_Modulation/01_vibrato_depth","varname": "fHslider16","shortname": "4_Modulation_01_vibrato_depth","address": "/additive/4_Modulation_01_vibrato_depth","index": 262324,"meta": [{ "tooltip": "Vibrato depth" }],"init": 0,"min": 0,"max": 0.05,"step": 0.0001},{"type": "hslider","label": "4_Modulation/02_vibrato_delay","varname": "fHslider14","shortname": "4_Modulation_02_vibrato_delay","address": "/additive/4_Modulation_02_vibrato_delay","index": 262308,"meta": [{ "tooltip": "Vibrato delay" }],"init": 0.3,"min": 0,"max": 2,"step": 0.001},{"type": "hslider","label": "4_Modulation/03_tremolo_rate","varname": "fHslider5","shortname": "4_Modulation_03_tremolo_rate","address": "/additive/4_Modulation_03_tremolo_rate","index": 262208,"meta": [{ "tooltip": "Tremolo rate" }],"init": 4,"min": 0,"max": 20,"step": 0.01},{"type": "hslider","label": "4_Modulation/04_tremolo_depth","varname": "fHslider6","shortname": "4_Modulation_04_tremolo_depth","address": "/additive/4_Modulation_04_tremolo_depth","index": 262224,"meta": [{ "tooltip": "Tremolo depth" }],"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "4_Modulation/05_drift_rate","varname": "fHslider24","shortname": "4_Modulation_05_drift_rate","address": "/additive/4_Modulation_05_drift_rate","index": 262400,"meta": [{ "tooltip": "Drift rate" }],"init": 0,"min": 0,"max": 2,"step": 0.001},{"type": "hslider","label": "4_Modulation/06_drift_depth","varname": "fHslider25","shortname": "4_Modulation_06_drift_depth","address": "/additive/4_Modulation_06_drift_depth","index": 262416,"meta": [{ "tooltip": "Drift depth" }],"init": 0,"min": 0,"max": 0.3,"step": 0.001},{"type": "hslider","label": "4_Modulation/07_formant1_freq","varname": "fHslider27","shortname": "4_Modulation_07_formant1_freq","address": "/additive/4_Modulation_07_formant1_freq","index": 262424,"meta": [{ "tooltip": "Formant 1 freq" }],"init": 3,"min": 1,"max": 16,"step": 0.01},{"type": "hslider","label": "4_Modulation/08_formant2_freq","varname": "fHslider26","shortname": "4_Modulation_08_formant2_freq","address": "/additive/4_Modulation_08_formant2_freq","index": 262420,"meta": [{ "tooltip": "Formant 2 freq" }],"init": 6,"min": 1,"max": 16,"step": 0.01},{"type": "hslider","label": "4_Modulation/09_formant_depth","varname": "fHslider28","shortname": "4_Modulation_09_formant_depth","address": "/additive/4_Modulation_09_formant_depth","index": 262428,"meta": [{ "tooltip": "Formant depth" }],"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "5_Master/00_level","varname": "fHslider47","shortname": "5_Master_00_level","address": "/additive/5_Master_00_level","index": 263532,"meta": [{ "tooltip": "Output level" }],"init": 0.7,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "5_Master/01_vel_sens","varname": "fHslider46","shortname": "5_Master_01_vel_sens","address": "/additive/5_Master_01_vel_sens","index": 263528,"meta": [{ "tooltip": "Velocity sens" }],"init": 0.5,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "5_Master/02_vel_brightness","varname": "fHslider4","shortname": "5_Master_02_vel_brightness","address": "/additive/5_Master_02_vel_brightness","index": 262204,"meta": [{ "tooltip": "Vel bright" }],"init": 0.3,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "5_Master/03_pitch_glide","varname": "fHslider17","shortname": "5_Master_03_pitch_glide","address": "/additive/5_Master_03_pitch_glide","index": 262328,"meta": [{ "tooltip": "Portamento" }],"init": 0,"min": 0,"max": 10,"step": 0.01},{"type": "hslider","label": "5_Master/04_saturation","varname": "fHslider45","shortname": "5_Master_04_saturation","address": "/additive/5_Master_04_saturation","index": 263524,"meta": [{ "tooltip": "Saturation" }],"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "5_Master/05_fine_tune","varname": "fHslider18","shortname": "5_Master_05_fine_tune","address": "/additive/5_Master_05_fine_tune","index": 262332,"meta": [{ "tooltip": "Cents" },{ "unit": "ct" }],"init": 0,"min": -50,"max": 50,"step": 0.1}]}]} \ No newline at end of file diff --git a/playground/faust/additive.wasm b/playground/faust/additive.wasm index 36b038bb56e2a041747f44e77040cb76d71bb0b1..84a582a431034938805b22a259af525d11b6d07f 100644 GIT binary patch literal 94610 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 V;+f%l(Pszx$@eFWfBzHz{U3@a@vr~@ literal 338508 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 diff --git a/playground/faust/build.sh b/playground/faust/build.sh index fd3a308..b92dbcf 100755 --- a/playground/faust/build.sh +++ b/playground/faust/build.sh @@ -68,30 +68,32 @@ for DSP in "${DSP_FILES[@]}"; do NAME="$(basename "$DSP" .dsp)" echo "Compiling $NAME.dsp ..." + # Faust -o is interpreted relative to -O (so we must cd into SCRIPT_DIR + # and pass just the filename). Class names (-cn) must be valid C identifiers, + # so dash characters are replaced with underscores. + CLASSNAME="$(echo "$NAME" | tr '-' '_')" + # Step 1: emit WASM binary + JS glue # -lang wasm — target WebAssembly # -cn — class name prefix in generated JS - # -e — export all DSP metadata into the WASM module # -O — output directory - faust -lang wasm \ - -cn "$NAME" \ - -e \ - -O "$SCRIPT_DIR" \ - "$DSP" \ - -o "$SCRIPT_DIR/${NAME}.wasm" + # + # NB: do NOT pass -e here. In Faust 2.79, -e means "export expanded DSP + # (textual)" — it causes the .wasm output to be Faust source text, not a + # real WebAssembly binary. This script historically used -e by mistake. + ( cd "$SCRIPT_DIR" && \ + faust -lang wasm \ + -cn "$CLASSNAME" \ + -O "$SCRIPT_DIR" \ + "${NAME}.dsp" \ + -o "${NAME}.wasm" ) - # Step 2: emit the standalone JSON descriptor (separate pass so the JSON - # is always present even if the WASM glue is regenerated). - # -json produces .json next to the source. - faust -json "$DSP" -o /dev/null 2>/dev/null || \ - faust -lang codebox -json "$DSP" -o /dev/null 2>/dev/null || true - - # Faust places the JSON next to the .dsp; rename to sit next to outputs. - if [ -f "${DSP}.json" ]; then - mv "${DSP}.json" "$SCRIPT_DIR/${NAME}.json" - elif [ -f "$SCRIPT_DIR/${NAME}.json" ]; then - : # already in the right place (some faust versions) - else + # Note: `faust -lang wasm -O . foo.dsp -o foo.wasm` already writes + # foo.json alongside foo.wasm with the wasm-native descriptor (including + # numeric `index` fields that workers use as setParamValue zone addresses). + # The old standalone `-json` pass produced a smaller JSON WITHOUT the + # `index` field, which is the wrong shape for workers — don't run it. + if [ ! -f "$SCRIPT_DIR/${NAME}.json" ]; then echo " WARNING: ${NAME}.json not produced — check faust version" fi diff --git a/playground/faust/eoc-compressor.json b/playground/faust/eoc-compressor.json index c2a096b..827bf86 100644 --- a/playground/faust/eoc-compressor.json +++ b/playground/faust/eoc-compressor.json @@ -1 +1 @@ -{"name": "eoc-compressor","filename": "eoc-compressor.dsp","version": "2.83.1","compile_options": "-lang wasm -fpga-mem-th 4 -ct 1 -cn eoc_compressor -es 1 -mcd 16 -mdd 1024 -mdy 33 -single -ftz 0","library_list": ["/nix/store/fnjbalzgc6pjm8la292cczxqbr00qmav-faust-2.83.1/share/faust/stdfaust.lib","/nix/store/fnjbalzgc6pjm8la292cczxqbr00qmav-faust-2.83.1/share/faust/basics.lib","/nix/store/fnjbalzgc6pjm8la292cczxqbr00qmav-faust-2.83.1/share/faust/compressors.lib","/nix/store/fnjbalzgc6pjm8la292cczxqbr00qmav-faust-2.83.1/share/faust/analyzers.lib","/nix/store/fnjbalzgc6pjm8la292cczxqbr00qmav-faust-2.83.1/share/faust/signals.lib","/nix/store/fnjbalzgc6pjm8la292cczxqbr00qmav-faust-2.83.1/share/faust/maths.lib","/nix/store/fnjbalzgc6pjm8la292cczxqbr00qmav-faust-2.83.1/share/faust/platform.lib"],"include_pathnames": ["/nix/store/fnjbalzgc6pjm8la292cczxqbr00qmav-faust-2.83.1/share/faust","/usr/local/share/faust","/usr/share/faust",".","/home/w1n5t0n/src/MEMLNaut-NISPS/.claude/worktrees/agent-a42cfe12/playground/faust"],"size": 68,"code": "Ly8gZW9jLWNvbXByZXNzb3IuZHNwIOKAlCBTdGVyZW8gZmVlZC1mb3J3YXJkIGNvbXByZXNzb3IgZm9yIE1FTUxOYXV0IEVPQyBjaGFpbgovLwovLyA3IHBhcmFtczogdGhyZXNob2xkLCByYXRpbywgYXR0YWNrLCByZWxlYXNlLCBrbmVlLCBtYWtldXAsIG1peAovLwovLyBDb21waWxlOgovLyAgIGZhdXN0IC1sYW5nIHdhc20gLWNuIGVvY19jb21wcmVzc29yIC1lIGVvYy1jb21wcmVzc29yLmRzcCAtbyBlb2MtY29tcHJlc3Nvci53YXNtIC1qc29uCgppbXBvcnQoInN0ZGZhdXN0LmxpYiIpOwoKdGhyZXNob2xkID0gaHNsaWRlcigidGhyZXNob2xkW3VuaXQ6ZEJdIiwgLTI0LjAsIC02MC4wLCAgIDAuMCwgIDAuMSk7CnJhdGlvICAgICA9IGhzbGlkZXIoInJhdGlvIiwgICAgICAgICAgICAgICAgNC4wLCAgIDEuMCwgIDIwLjAsICAwLjEpOwphdHRhY2sgICAgPSBoc2xpZGVyKCJhdHRhY2tbdW5pdDptc10iLCAgICAgMTAuMCwgICAwLjEsIDIwMC4wLCAgMC4xKTsKcmVsZWFzZSAgID0gaHNsaWRlcigicmVsZWFzZVt1bml0Om1zXSIsICAgMTAwLjAsICAxMC4wLCAyMDAwLjAsIDEuMCk7CmtuZWUgICAgICA9IGhzbGlkZXIoImtuZWVbdW5pdDpkQl0iLCAgICAgICAgNi4wLCAgIDAuMCwgIDI0LjAsICAwLjEpOwptYWtldXAgICAgPSBoc2xpZGVyKCJtYWtldXBbdW5pdDpkQl0iLCAgICAgIDAuMCwgICAwLjAsICAyNC4wLCAgMC4xKTsKbWl4ICAgICAgID0gaHNsaWRlcigibWl4IiwgICAgICAgICAgICAgICAgICAxLjAsICAgMC4wLCAgIDEuMCwgIDAuMDAxKTsKCi8vIENvbnZlcnQgbXMgdG8gc2Vjb25kcyBmb3IgRmF1c3QKYXR0YWNrU2VjICA9IGF0dGFjayAgLyAxMDAwLjA7CnJlbGVhc2VTZWMgPSByZWxlYXNlIC8gMTAwMC4wOwoKLy8gU29mdC1rbmVlIHRocmVzaG9sZCBhZGp1c3RtZW50IChzaGlmdCB0aHJlc2hvbGQgZG93biBieSBoYWxmIHRoZSBrbmVlKQp0aHJlc2hLbmVlID0gdGhyZXNob2xkIC0ga25lZSAvIDIuMDsKCi8vIE1ha2V1cCBnYWluIGFzIGxpbmVhciBtdWx0aXBsaWVyCm1ha2V1cExpbiA9IGJhLmRiMmxpbmVhcihtYWtldXApOwoKLy8gQ29tcHJlc3NvciBvbiBhIHNpbmdsZSBjaGFubmVsIHdpdGggbWFrZXVwIGFwcGxpZWQKY29tcENoKHgpID0gY28uY29tcHJlc3Nvcl9tb25vKHJhdGlvLCB0aHJlc2hLbmVlLCBhdHRhY2tTZWMsIHJlbGVhc2VTZWMsIHgpICogbWFrZXVwTGluOwoKLy8gUGFyYWxsZWwgY29tcHJlc3Npb24gKGRyeS93ZXQgYmxlbmQpCnBhcmFsbGVsQ29tcCh4KSA9ICgxLjAgLSBtaXgpICogeCArIG1peCAqIGNvbXBDaCh4KTsKCnByb2Nlc3MgPSBwYXJhbGxlbENvbXAsIHBhcmFsbGVsQ29tcDsK","inputs": 2,"outputs": 2,"meta": [ { "analyzers.lib/amp_follower_ar:author": "Jonatan Liljedahl, revised by Romain Michon" },{ "analyzers.lib/name": "Faust Analyzer Library" },{ "analyzers.lib/version": "1.3.0" },{ "basics.lib/name": "Faust Basic Element Library" },{ "basics.lib/version": "1.22.0" },{ "compile_options": "-lang wasm -fpga-mem-th 4 -ct 1 -cn eoc_compressor -es 1 -mcd 16 -mdd 1024 -mdy 33 -single -ftz 0" },{ "compressors.lib/compression_gain_mono:author": "Julius O. Smith III" },{ "compressors.lib/compression_gain_mono:copyright": "Copyright (C) 2014-2020 by Julius O. Smith III " },{ "compressors.lib/compression_gain_mono:license": "MIT-style STK-4.3 license" },{ "compressors.lib/compressor_lad_mono:author": "Julius O. Smith III" },{ "compressors.lib/compressor_lad_mono:copyright": "Copyright (C) 2014-2020 by Julius O. Smith III " },{ "compressors.lib/compressor_lad_mono:license": "MIT-style STK-4.3 license" },{ "compressors.lib/compressor_mono:author": "Julius O. Smith III" },{ "compressors.lib/compressor_mono:copyright": "Copyright (C) 2014-2020 by Julius O. Smith III " },{ "compressors.lib/compressor_mono:license": "MIT-style STK-4.3 license" },{ "compressors.lib/name": "Faust Compressor Effect Library" },{ "compressors.lib/version": "1.6.0" },{ "filename": "eoc-compressor.dsp" },{ "maths.lib/author": "GRAME" },{ "maths.lib/copyright": "GRAME" },{ "maths.lib/license": "LGPL with exception" },{ "maths.lib/name": "Faust Math Library" },{ "maths.lib/version": "2.9.0" },{ "name": "eoc-compressor" },{ "platform.lib/name": "Generic Platform Library" },{ "platform.lib/version": "1.3.0" },{ "signals.lib/name": "Faust Signal Routing Library" },{ "signals.lib/onePoleSwitching:author": "Jonatan Liljedahl, revised by Dario Sanfilippo" },{ "signals.lib/onePoleSwitching:licence": "STK-4.3" },{ "signals.lib/version": "1.6.0" }],"ui": [ {"type": "vgroup","label": "eoc-compressor","items": [ {"type": "hslider","label": "attack","varname": "fHslider0","shortname": "attack","address": "/eoc-compressor/attack","index": 0,"meta": [{ "unit": "ms" }],"init": 10,"min": 0.1,"max": 200,"step": 0.1},{"type": "hslider","label": "knee","varname": "fHslider3","shortname": "knee","address": "/eoc-compressor/knee","index": 28,"meta": [{ "unit": "dB" }],"init": 6,"min": 0,"max": 24,"step": 0.1},{"type": "hslider","label": "makeup","varname": "fHslider5","shortname": "makeup","address": "/eoc-compressor/makeup","index": 44,"meta": [{ "unit": "dB" }],"init": 0,"min": 0,"max": 24,"step": 0.1},{"type": "hslider","label": "mix","varname": "fHslider6","shortname": "mix","address": "/eoc-compressor/mix","index": 48,"init": 1,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "ratio","varname": "fHslider4","shortname": "ratio","address": "/eoc-compressor/ratio","index": 32,"init": 4,"min": 1,"max": 20,"step": 0.1},{"type": "hslider","label": "release","varname": "fHslider2","shortname": "release","address": "/eoc-compressor/release","index": 16,"meta": [{ "unit": "ms" }],"init": 100,"min": 10,"max": 2000,"step": 1},{"type": "hslider","label": "threshold","varname": "fHslider1","shortname": "threshold","address": "/eoc-compressor/threshold","index": 12,"meta": [{ "unit": "dB" }],"init": -24,"min": -60,"max": 0,"step": 0.1}]}]} \ No newline at end of file +{"name": "eoc-compressor","filename": "eoc-compressor.dsp","version": "2.79.3","compile_options": "-lang wasm -ct 1 -cn eoc_compressor -es 1 -mcd 16 -mdd 1024 -mdy 33 -single -ftz 0","library_list": ["/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust/stdfaust.lib","/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust/basics.lib","/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust/compressors.lib","/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust/analyzers.lib","/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust/signals.lib","/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust/maths.lib","/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust/platform.lib"],"include_pathnames": ["/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust","/usr/local/share/faust","/usr/share/faust",".","/home/w1n5t0n/src/MEMLNaut-NISPS/playground/faust"],"size": 68,"code": "Ly8gZW9jLWNvbXByZXNzb3IuZHNwIOKAlCBTdGVyZW8gZmVlZC1mb3J3YXJkIGNvbXByZXNzb3IgZm9yIE1FTUxOYXV0IEVPQyBjaGFpbgovLwovLyA3IHBhcmFtczogdGhyZXNob2xkLCByYXRpbywgYXR0YWNrLCByZWxlYXNlLCBrbmVlLCBtYWtldXAsIG1peAovLwovLyBDb21waWxlOgovLyAgIGZhdXN0IC1sYW5nIHdhc20gLWNuIGVvY19jb21wcmVzc29yIC1lIGVvYy1jb21wcmVzc29yLmRzcCAtbyBlb2MtY29tcHJlc3Nvci53YXNtIC1qc29uCgppbXBvcnQoInN0ZGZhdXN0LmxpYiIpOwoKdGhyZXNob2xkID0gaHNsaWRlcigidGhyZXNob2xkW3VuaXQ6ZEJdIiwgLTI0LjAsIC02MC4wLCAgIDAuMCwgIDAuMSk7CnJhdGlvICAgICA9IGhzbGlkZXIoInJhdGlvIiwgICAgICAgICAgICAgICAgNC4wLCAgIDEuMCwgIDIwLjAsICAwLjEpOwphdHRhY2sgICAgPSBoc2xpZGVyKCJhdHRhY2tbdW5pdDptc10iLCAgICAgMTAuMCwgICAwLjEsIDIwMC4wLCAgMC4xKTsKcmVsZWFzZSAgID0gaHNsaWRlcigicmVsZWFzZVt1bml0Om1zXSIsICAgMTAwLjAsICAxMC4wLCAyMDAwLjAsIDEuMCk7CmtuZWUgICAgICA9IGhzbGlkZXIoImtuZWVbdW5pdDpkQl0iLCAgICAgICAgNi4wLCAgIDAuMCwgIDI0LjAsICAwLjEpOwptYWtldXAgICAgPSBoc2xpZGVyKCJtYWtldXBbdW5pdDpkQl0iLCAgICAgIDAuMCwgICAwLjAsICAyNC4wLCAgMC4xKTsKbWl4ICAgICAgID0gaHNsaWRlcigibWl4IiwgICAgICAgICAgICAgICAgICAxLjAsICAgMC4wLCAgIDEuMCwgIDAuMDAxKTsKCi8vIENvbnZlcnQgbXMgdG8gc2Vjb25kcyBmb3IgRmF1c3QKYXR0YWNrU2VjICA9IGF0dGFjayAgLyAxMDAwLjA7CnJlbGVhc2VTZWMgPSByZWxlYXNlIC8gMTAwMC4wOwoKLy8gU29mdC1rbmVlIHRocmVzaG9sZCBhZGp1c3RtZW50IChzaGlmdCB0aHJlc2hvbGQgZG93biBieSBoYWxmIHRoZSBrbmVlKQp0aHJlc2hLbmVlID0gdGhyZXNob2xkIC0ga25lZSAvIDIuMDsKCi8vIE1ha2V1cCBnYWluIGFzIGxpbmVhciBtdWx0aXBsaWVyCm1ha2V1cExpbiA9IGJhLmRiMmxpbmVhcihtYWtldXApOwoKLy8gQ29tcHJlc3NvciBvbiBhIHNpbmdsZSBjaGFubmVsIHdpdGggbWFrZXVwIGFwcGxpZWQKY29tcENoKHgpID0gY28uY29tcHJlc3Nvcl9tb25vKHJhdGlvLCB0aHJlc2hLbmVlLCBhdHRhY2tTZWMsIHJlbGVhc2VTZWMsIHgpICogbWFrZXVwTGluOwoKLy8gUGFyYWxsZWwgY29tcHJlc3Npb24gKGRyeS93ZXQgYmxlbmQpCnBhcmFsbGVsQ29tcCh4KSA9ICgxLjAgLSBtaXgpICogeCArIG1peCAqIGNvbXBDaCh4KTsKCnByb2Nlc3MgPSBwYXJhbGxlbENvbXAsIHBhcmFsbGVsQ29tcDsK","inputs": 2,"outputs": 2,"meta": [ { "analyzers.lib/amp_follower_ar:author": "Jonatan Liljedahl, revised by Romain Michon" },{ "analyzers.lib/name": "Faust Analyzer Library" },{ "analyzers.lib/version": "1.2.0" },{ "basics.lib/name": "Faust Basic Element Library" },{ "basics.lib/version": "1.21.0" },{ "compile_options": "-lang wasm -ct 1 -cn eoc_compressor -es 1 -mcd 16 -mdd 1024 -mdy 33 -single -ftz 0" },{ "compressors.lib/compression_gain_mono:author": "Julius O. Smith III" },{ "compressors.lib/compression_gain_mono:copyright": "Copyright (C) 2014-2020 by Julius O. Smith III " },{ "compressors.lib/compression_gain_mono:license": "MIT-style STK-4.3 license" },{ "compressors.lib/compressor_lad_mono:author": "Julius O. Smith III" },{ "compressors.lib/compressor_lad_mono:copyright": "Copyright (C) 2014-2020 by Julius O. Smith III " },{ "compressors.lib/compressor_lad_mono:license": "MIT-style STK-4.3 license" },{ "compressors.lib/compressor_mono:author": "Julius O. Smith III" },{ "compressors.lib/compressor_mono:copyright": "Copyright (C) 2014-2020 by Julius O. Smith III " },{ "compressors.lib/compressor_mono:license": "MIT-style STK-4.3 license" },{ "compressors.lib/name": "Faust Compressor Effect Library" },{ "compressors.lib/version": "1.6.0" },{ "filename": "eoc-compressor.dsp" },{ "maths.lib/author": "GRAME" },{ "maths.lib/copyright": "GRAME" },{ "maths.lib/license": "LGPL with exception" },{ "maths.lib/name": "Faust Math Library" },{ "maths.lib/version": "2.8.1" },{ "name": "eoc-compressor" },{ "platform.lib/name": "Generic Platform Library" },{ "platform.lib/version": "1.3.0" },{ "signals.lib/name": "Faust Signal Routing Library" },{ "signals.lib/onePoleSwitching:author": "Jonatan Liljedahl, revised by Dario Sanfilippo" },{ "signals.lib/onePoleSwitching:licence": "STK-4.3" },{ "signals.lib/version": "1.6.0" }],"ui": [ {"type": "vgroup","label": "eoc-compressor","items": [ {"type": "hslider","label": "attack","varname": "fHslider0","shortname": "attack","address": "/eoc-compressor/attack","index": 0,"meta": [{ "unit": "ms" }],"init": 10,"min": 0.1,"max": 200,"step": 0.1},{"type": "hslider","label": "knee","varname": "fHslider3","shortname": "knee","address": "/eoc-compressor/knee","index": 28,"meta": [{ "unit": "dB" }],"init": 6,"min": 0,"max": 24,"step": 0.1},{"type": "hslider","label": "makeup","varname": "fHslider5","shortname": "makeup","address": "/eoc-compressor/makeup","index": 44,"meta": [{ "unit": "dB" }],"init": 0,"min": 0,"max": 24,"step": 0.1},{"type": "hslider","label": "mix","varname": "fHslider6","shortname": "mix","address": "/eoc-compressor/mix","index": 48,"init": 1,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "ratio","varname": "fHslider4","shortname": "ratio","address": "/eoc-compressor/ratio","index": 32,"init": 4,"min": 1,"max": 20,"step": 0.1},{"type": "hslider","label": "release","varname": "fHslider2","shortname": "release","address": "/eoc-compressor/release","index": 16,"meta": [{ "unit": "ms" }],"init": 100,"min": 10,"max": 2000,"step": 1},{"type": "hslider","label": "threshold","varname": "fHslider1","shortname": "threshold","address": "/eoc-compressor/threshold","index": 12,"meta": [{ "unit": "dB" }],"init": -24,"min": -60,"max": 0,"step": 0.1}]}]} \ No newline at end of file diff --git a/playground/faust/eoc-compressor.wasm b/playground/faust/eoc-compressor.wasm index 965376fc812a30061912c97e53c043e03346ec71..90a88da5b9baa6189c207b6f34d692f788d2f5a5 100644 GIT binary patch delta 477 zcmexlyV-Wb88+TW>l+#v7#SQHxNqxMPZpGrnEa8=fW_QW&v>#byV7JwVfV>%+2wRA zvkD86jS|h0jB*Vus>;iY(u-4a3X3yM4027&^9l-d(-KRIOLUF&z&c;BtCOh1hC`J^ z9eo^HB7!pW=GX&S*4wlTbLL;bbmhjm?h2 Q$61&y^b9w1OFU--0RJkX&j0`b delta 533 zcmdmN`^k3088)7U8yXrI7#SQHxMvwmzQN|nVqvUjI9Zili8rkvJyAC|HCMMJL&0Q{ zu;=7Hb~)X&ysV_eoT~I>vx2N#i=0FwOQYoEs*1v-A_IfM+{7~7w8YZl5?v!burW8; z)k)N$%b`l5j(QF)5_MeT&>&HVHm4eiI_fx8NYrtj(~d+PR$K`RddWG7r75ZU<@rU~ zB}J*J#rlcqsd**3i6%zLX{m-rn`d&pV4rL!!8N&C$dA!z@+~0^)QH_Ae3FIPQqN%X I8S&?A0KmtzjQ{`u diff --git a/playground/faust/eoc-delay.json b/playground/faust/eoc-delay.json index 5e5a39b..1373391 100644 --- a/playground/faust/eoc-delay.json +++ b/playground/faust/eoc-delay.json @@ -1,131 +1 @@ -{ - "name": "eoc-delay", - "filename": "eoc-delay.dsp", - "version": "2.83.1", - "compile_options": "-lang cpp -fpga-mem-th 4 -ct 1 -es 1 -mcd 16 -mdd 1024 -mdy 33 -single -ftz 0", - "library_list": ["/nix/store/fnjbalzgc6pjm8la292cczxqbr00qmav-faust-2.83.1/share/faust/stdfaust.lib","/nix/store/fnjbalzgc6pjm8la292cczxqbr00qmav-faust-2.83.1/share/faust/maths.lib","/nix/store/fnjbalzgc6pjm8la292cczxqbr00qmav-faust-2.83.1/share/faust/platform.lib","/nix/store/fnjbalzgc6pjm8la292cczxqbr00qmav-faust-2.83.1/share/faust/basics.lib","/nix/store/fnjbalzgc6pjm8la292cczxqbr00qmav-faust-2.83.1/share/faust/delays.lib","/nix/store/fnjbalzgc6pjm8la292cczxqbr00qmav-faust-2.83.1/share/faust/filters.lib"], - "include_pathnames": ["/nix/store/fnjbalzgc6pjm8la292cczxqbr00qmav-faust-2.83.1/share/faust","/usr/local/share/faust","/usr/share/faust",".","/home/w1n5t0n/src/MEMLNaut-NISPS/.claude/worktrees/agent-a8d5e213/playground/faust"], - "size": 1048656, - "inputs": 2, - "outputs": 2, - "meta": [ - { "basics.lib/name": "Faust Basic Element Library" }, - { "basics.lib/version": "1.22.0" }, - { "compile_options": "-lang cpp -fpga-mem-th 4 -ct 1 -es 1 -mcd 16 -mdd 1024 -mdy 33 -single -ftz 0" }, - { "delays.lib/name": "Faust Delay Library" }, - { "delays.lib/version": "1.2.0" }, - { "filename": "eoc-delay.dsp" }, - { "filters.lib/lowpass0_highpass1": "MIT-style STK-4.3 license" }, - { "filters.lib/lowpass0_highpass1:author": "Julius O. Smith III" }, - { "filters.lib/lowpass:author": "Julius O. Smith III" }, - { "filters.lib/lowpass:copyright": "Copyright (C) 2003-2019 by Julius O. Smith III " }, - { "filters.lib/lowpass:license": "MIT-style STK-4.3 license" }, - { "filters.lib/name": "Faust Filters Library" }, - { "filters.lib/tf1:author": "Julius O. Smith III" }, - { "filters.lib/tf1:copyright": "Copyright (C) 2003-2019 by Julius O. Smith III " }, - { "filters.lib/tf1:license": "MIT-style STK-4.3 license" }, - { "filters.lib/tf1s:author": "Julius O. Smith III" }, - { "filters.lib/tf1s:copyright": "Copyright (C) 2003-2019 by Julius O. Smith III " }, - { "filters.lib/tf1s:license": "MIT-style STK-4.3 license" }, - { "filters.lib/version": "1.7.1" }, - { "maths.lib/author": "GRAME" }, - { "maths.lib/copyright": "GRAME" }, - { "maths.lib/license": "LGPL with exception" }, - { "maths.lib/name": "Faust Math Library" }, - { "maths.lib/version": "2.9.0" }, - { "name": "eoc-delay" }, - { "platform.lib/name": "Generic Platform Library" }, - { "platform.lib/version": "1.3.0" } - ], - "ui": [ - { - "type": "vgroup", - "label": "eoc-delay", - "items": [ - { - "type": "hslider", - "label": "feedback", - "varname": "fHslider1", - "shortname": "feedback", - "address": "/eoc-delay/feedback", - "init": 0.3, - "min": 0, - "max": 0.95, - "step": 0.001 - }, - { - "type": "hslider", - "label": "lp_cutoff", - "varname": "fHslider3", - "shortname": "lp_cutoff", - "address": "/eoc-delay/lp_cutoff", - "meta": [ - { "unit": "Hz" } - ], - "init": 8000, - "min": 500, - "max": 20000, - "step": 1 - }, - { - "type": "hslider", - "label": "mix", - "varname": "fHslider5", - "shortname": "mix", - "address": "/eoc-delay/mix", - "init": 0.3, - "min": 0, - "max": 1, - "step": 0.001 - }, - { - "type": "hslider", - "label": "ping_pong", - "varname": "fHslider0", - "shortname": "ping_pong", - "address": "/eoc-delay/ping_pong", - "init": 0, - "min": 0, - "max": 1, - "step": 0.001 - }, - { - "type": "hslider", - "label": "spread", - "varname": "fHslider4", - "shortname": "spread", - "address": "/eoc-delay/spread", - "init": 0.5, - "min": 0, - "max": 1, - "step": 0.001 - }, - { - "type": "nentry", - "label": "sync", - "varname": "fEntry0", - "shortname": "sync", - "address": "/eoc-delay/sync", - "init": 0, - "min": 0, - "max": 3, - "step": 1 - }, - { - "type": "hslider", - "label": "time", - "varname": "fHslider2", - "shortname": "time", - "address": "/eoc-delay/time", - "meta": [ - { "unit": "ms" } - ], - "init": 250, - "min": 1, - "max": 2000, - "step": 0.1 - } - ] - } - ] -} \ No newline at end of file +{"name": "eoc-delay","filename": "eoc-delay.dsp","version": "2.79.3","compile_options": "-lang wasm -ct 1 -cn eoc_delay -es 1 -mcd 16 -mdd 1024 -mdy 33 -single -ftz 0","library_list": ["/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust/stdfaust.lib","/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust/maths.lib","/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust/platform.lib","/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust/basics.lib","/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust/delays.lib","/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust/filters.lib"],"include_pathnames": ["/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust","/usr/local/share/faust","/usr/share/faust",".","/home/w1n5t0n/src/MEMLNaut-NISPS/playground/faust"],"size": 1048656,"code": "Ly8gZW9jLWRlbGF5LmRzcCDigJQgU3RlcmVvIGRlbGF5IGVmZmVjdCBmb3IgdGhlIEVPQyByYWNrLgovLwovLyBQYXJhbWV0ZXJzICg3KToKLy8gICB0aW1lICAgICAgWzI1MG1zLCAxLTIwMDBtc10gICBkZWxheSB0aW1lIChtcykgd2hlbiBzeW5jPTAKLy8gICBmZWVkYmFjayAgWzAuMywgIDAtMC45NV0gICAgICBmZWVkYmFjayBhbW91bnQKLy8gICBscF9jdXRvZmYgWzgwMDAsIDUwMC0yMDAwMF0gICBMUCBmaWx0ZXIgY3V0b2ZmIG9uIGZlZWRiYWNrIHBhdGggKEh6KQovLyAgIHBpbmdfcG9uZyBbMC4wLCAgMC0xXSAgICAgICAgIDA9bm9ybWFsIHN0ZXJlbywgMT1mdWxsIHBpbmctcG9uZyBMPC0+UgovLyAgIHNwcmVhZCAgICBbMC41LCAgMC0xXSAgICAgICAgIHN0ZXJlbyB3aWR0aCBvZiBkZWxheSB0YWlscwovLyAgIHN5bmMgICAgICBbMF0gICAgICAgICAgICAgICAgIG5lbnRyeTogMD1mcmVlLCAxPWhhbGYsIDI9cXVhcnRlciwgMz1laWdodGggKDEyMGJwbSkKLy8gICBtaXggICAgICAgWzAuMywgIDAtMV0gICAgICAgICBkcnkvd2V0IG1peAoKaW1wb3J0KCJzdGRmYXVzdC5saWIiKTsKCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQovLyBVSQovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCnRpbWUgICAgICA9IGhzbGlkZXIoInRpbWVbdW5pdDptc10iLCAgICAgIDI1MCwgMSwgICAyMDAwLCAgMC4xKTsKZmVlZGJhY2sgID0gaHNsaWRlcigiZmVlZGJhY2siLCAgICAgICAgICAgMC4zLCAwLCAgIDAuOTUsICAwLjAwMSk7CmxwX2N1dG9mZiA9IGhzbGlkZXIoImxwX2N1dG9mZlt1bml0Okh6XSIsIDgwMDAsIDUwMCwgMjAwMDAsIDEpOwpwaW5nX3BvbmcgPSBoc2xpZGVyKCJwaW5nX3BvbmciLCAgICAgICAgICAwLjAsIDAsICAgMSwgICAgIDAuMDAxKTsKc3ByZWFkICAgID0gaHNsaWRlcigic3ByZWFkIiwgICAgICAgICAgICAgMC41LCAwLCAgIDEsICAgICAwLjAwMSk7CnN5bmMgICAgICA9IG5lbnRyeSgic3luYyIsICAgICAgICAgICAgICAgIDAsICAgMCwgICAzLCAgICAgMSk7Cm1peCAgICAgICA9IGhzbGlkZXIoIm1peCIsICAgICAgICAgICAgICAgIDAuMywgMCwgICAxLCAgICAgMC4wMDEpOwoKLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi8vIERlcml2ZWQgZGVsYXkgdGltZTogZnJlZSBvciB0ZW1wby1zeW5jZWQgYXQgMTIwYnBtCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKYnBtID0gMTIwLjA7CmJlYXRfbXMgPSA2MDAwMC4wIC8gYnBtOwoKc3luY190aW1lX21zID0KICAgIGJhLmlmKHN5bmMgPCAwLjUsIHRpbWUsCiAgICBiYS5pZihzeW5jIDwgMS41LCBiZWF0X21zICogMi4wLAogICAgYmEuaWYoc3luYyA8IDIuNSwgYmVhdF9tcywKICAgICAgICAgICAgICAgICAgICAgIGJlYXRfbXMgKiAwLjUpKSk7CgovLyBGaXhlZCBtYXggZGVsYXk6IDk2MDAwIHNhbXBsZXMgKDFzIGF0IDk2a0h6LCBjb3ZlcnMgYWxsIHRlbXBvcyBmb3IgZWlnaHRoIG5vdGVzIGF0IDMwYnBtKykKbWF4X2RlbGF5X3NhbXAgPSA5NjAwMDsKCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQovLyBTdGVyZW8gcGluZy1wb25nIGRlbGF5LgovLyBVc2VzIGYgfiAoXywgXykgcGF0dGVybiBmb3Igc3RlcmVvIGZlZWRiYWNrIGxvb3AuCi8vIGRlLmRlbGF5IHVzZWQgZm9yIHZhcmlhYmxlIGRlbGF5IChubyBMUCBvbiBmZWVkYmFjayBwYXRoIGluc2lkZSB0aGUgbG9vcCDigJQKLy8gTFAgaXMgYXBwbGllZCB0byB0aGUgd2hvbGUgd2V0IHNpZ25hbCBmb3IgZWZmaWNpZW5jeSkuCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKZFNhbXAgPSBpbnQoc3luY190aW1lX21zICogZmxvYXQobWEuU1IpIC8gMTAwMC4wKTsKCmRlbGF5Q29yZShpbkwsIGluUiwgZmJMLCBmYlIpID0gd2V0TCwgd2V0Ugp3aXRoIHsKICAgIHBwICA9IHBpbmdfcG9uZzsKICAgIGZiICA9IGZlZWRiYWNrOwogICAgbWl4TCA9IGluTCArIChmYkwgKiAoMS4wIC0gcHApICsgZmJSICogcHApICogZmI7CiAgICBtaXhSID0gaW5SICsgKGZiUiAqICgxLjAgLSBwcCkgKyBmYkwgKiBwcCkgKiBmYjsKICAgIHdldEwgPSBkZS5kZWxheShtYXhfZGVsYXlfc2FtcCwgZFNhbXAsIG1peEwpOwogICAgd2V0UiA9IGRlLmRlbGF5KG1heF9kZWxheV9zYW1wLCBkU2FtcCwgbWl4Uik7Cn07CgpzdGVyZW9EZWxheSA9IChfLCBfKSA6IGRlbGF5Q29yZSB+IChfLCBfKTsKCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQovLyBQb3N0LWRlbGF5IExQIGZpbHRlciAodG9uZSBzaGFwaW5nIG9uIHRoZSBmZWVkYmFjayB0YWlsKQovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCmRlbGF5TFAoeCkgPSBmaS5sb3dwYXNzKDEsIGxwX2N1dG9mZiwgeCk7CgovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLy8gTWlkLXNpZGUgc3RlcmVvIHNwcmVhZAovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCm1zU3ByZWFkKGluTCwgaW5SKSA9IG91dEwsIG91dFIKd2l0aCB7CiAgICB3ICAgID0gc3ByZWFkOwogICAgbWlkICA9IChpbkwgKyBpblIpICogMC41OwogICAgc2lkZSA9IChpbkwgLSBpblIpICogMC41OwogICAgb3V0TCA9IG1pZCArIHNpZGUgKiB3ICogMi4wOwogICAgb3V0UiA9IG1pZCAtIHNpZGUgKiB3ICogMi4wOwp9OwoKLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi8vIE1haW4gcHJvY2VzczogZHJ5L3dldCBtaXgKLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgovLyBEZWxheSArIExQICsgc3ByZWFkIG9uIHR3byBzaWduYWxzCmRlbGF5QW5kUHJvY2VzcyhpbkwsIGluUikgPSB3aWRlTCwgd2lkZVIKd2l0aCB7CiAgICB3ZXRMMCA9IHN0ZXJlb0RlbGF5KGluTCwgaW5SKSA6IF8sITsKICAgIHdldFIwID0gc3RlcmVvRGVsYXkoaW5MLCBpblIpIDogISxfOwogICAgd2V0TDEgPSBkZWxheUxQKHdldEwwKTsKICAgIHdldFIxID0gZGVsYXlMUCh3ZXRSMCk7CiAgICB3aWRlTCA9IG1zU3ByZWFkKHdldEwxLCB3ZXRSMSkgOiBfLCE7CiAgICB3aWRlUiA9IG1zU3ByZWFkKHdldEwxLCB3ZXRSMSkgOiAhLF87Cn07Cgpwcm9jZXNzKGluTCwgaW5SKSA9IG91dEwsIG91dFIKd2l0aCB7CiAgICB3aWRlTCA9IGRlbGF5QW5kUHJvY2VzcyhpbkwsIGluUikgOiBfLCE7CiAgICB3aWRlUiA9IGRlbGF5QW5kUHJvY2VzcyhpbkwsIGluUikgOiAhLF87CiAgICBvdXRMID0gaW5MICogKDEuMCAtIG1peCkgKyB3aWRlTCAqIG1peDsKICAgIG91dFIgPSBpblIgKiAoMS4wIC0gbWl4KSArIHdpZGVSICogbWl4Owp9Owo=","inputs": 2,"outputs": 2,"meta": [ { "basics.lib/name": "Faust Basic Element Library" },{ "basics.lib/version": "1.21.0" },{ "compile_options": "-lang wasm -ct 1 -cn eoc_delay -es 1 -mcd 16 -mdd 1024 -mdy 33 -single -ftz 0" },{ "delays.lib/name": "Faust Delay Library" },{ "delays.lib/version": "1.1.0" },{ "filename": "eoc-delay.dsp" },{ "filters.lib/lowpass0_highpass1": "MIT-style STK-4.3 license" },{ "filters.lib/lowpass0_highpass1:author": "Julius O. Smith III" },{ "filters.lib/lowpass:author": "Julius O. Smith III" },{ "filters.lib/lowpass:copyright": "Copyright (C) 2003-2019 by Julius O. Smith III " },{ "filters.lib/lowpass:license": "MIT-style STK-4.3 license" },{ "filters.lib/name": "Faust Filters Library" },{ "filters.lib/tf1:author": "Julius O. Smith III" },{ "filters.lib/tf1:copyright": "Copyright (C) 2003-2019 by Julius O. Smith III " },{ "filters.lib/tf1:license": "MIT-style STK-4.3 license" },{ "filters.lib/tf1s:author": "Julius O. Smith III" },{ "filters.lib/tf1s:copyright": "Copyright (C) 2003-2019 by Julius O. Smith III " },{ "filters.lib/tf1s:license": "MIT-style STK-4.3 license" },{ "filters.lib/version": "1.7.1" },{ "maths.lib/author": "GRAME" },{ "maths.lib/copyright": "GRAME" },{ "maths.lib/license": "LGPL with exception" },{ "maths.lib/name": "Faust Math Library" },{ "maths.lib/version": "2.8.1" },{ "name": "eoc-delay" },{ "platform.lib/name": "Generic Platform Library" },{ "platform.lib/version": "1.3.0" }],"ui": [ {"type": "vgroup","label": "eoc-delay","items": [ {"type": "hslider","label": "feedback","varname": "fHslider1","shortname": "feedback","address": "/eoc-delay/feedback","index": 4,"init": 0.3,"min": 0,"max": 0.95,"step": 0.001},{"type": "hslider","label": "lp_cutoff","varname": "fHslider3","shortname": "lp_cutoff","address": "/eoc-delay/lp_cutoff","index": 1048624,"meta": [{ "unit": "Hz" }],"init": 8000,"min": 500,"max": 20000,"step": 1},{"type": "hslider","label": "mix","varname": "fHslider5","shortname": "mix","address": "/eoc-delay/mix","index": 1048652,"init": 0.3,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "ping_pong","varname": "fHslider0","shortname": "ping_pong","address": "/eoc-delay/ping_pong","index": 0,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "spread","varname": "fHslider4","shortname": "spread","address": "/eoc-delay/spread","index": 1048648,"init": 0.5,"min": 0,"max": 1,"step": 0.001},{"type": "nentry","label": "sync","varname": "fEntry0","shortname": "sync","address": "/eoc-delay/sync","index": 524300,"init": 0,"min": 0,"max": 3,"step": 1},{"type": "hslider","label": "time","varname": "fHslider2","shortname": "time","address": "/eoc-delay/time","index": 524304,"meta": [{ "unit": "ms" }],"init": 250,"min": 1,"max": 2000,"step": 0.1}]}]} \ No newline at end of file diff --git a/playground/faust/eoc-delay.wasm b/playground/faust/eoc-delay.wasm index edb2113fb36728366f48e6ad5216df2e6d9a8e2e..bfcc5f29afa9b0420c200881de69564cfacaed3f 100644 GIT binary patch literal 10699 zcmcgyTW=#rb|$IIT&TI&Yp;Pkwe;k8M^cj%WztF3A}NY&QPfDH#9LsDyPK_Mi`^uL z-MktDDG3rRl1;LhkvG{S5Brb@KLp4Hc`$+iF@glhLl6Xc&40)b*q684?Yc?pZh+YKgWN*PyOfqbN&aT{%7MZ z&G1I;u4v%nt{SO1*W>@7TTC| z2XaTYin7_&d<*nkkgc|<9m!a}IBzr!$9LO+Kxzr^mm#5QKZg{^L*Pq1gw4pIitFY~(8%!OUozKMPy@`4_1L8chX*!OJfmE-_xUpE3<>VPSSGcp$C~G#FFz!*|G3y%ev3N)i4NHS6mP#+ zW@eb%3T#1;J7=WHJHou%dp7|k-VfYP{PLH#o+bj$87=>7=&&RNg?BH7yTUt{&o7_H z0#ME+6>c}i)L<41{QN>le1YFfeE#NQi}87f_`Eye;}O5a=?hYqkLGY?=Uo(w;~Tz*ejgkgm5 zk?L;??+M@Mx(m1XC=_9%FFcDdmHlU%Frbf^WAhl9k3T`^7>UfEuyKs^;ZN8$7J$sc z9XQ$Y9cl!>nVsKS3M~2I3c=rJFi8X+O!a`D3!hK$34S`p2f;t&G?3!*LU<7TlkxOJ zKM_5=8~j(G&F5b{2NL}F1@MD^Pvb4&W704C$wLxLf}gwqXW;YU(DCFyTlS;5xVSwL zjyN%L=nLdbF9^_r01eKN&oOcwJU}%~K1bwp7`)1V-d*sOPne%sF;6SzX>ewP1xEkn z1?U%M=og57fd*&j7a9FmM87ygzex0pG&rFT{+DZL!M{nSCMUi4jVwbLxjlyd;m>{= z3;a2oYQ6n?ACWWQ37(380P_ERAZ@v0pT`K+!JkYH>yF@i7{u>(@PFKWJo{tiU;ON6 zKa2$sAl)&<8`dACVia3g{}<^P#RyLGaf|{1`g|o~!PH*a`E$X)Aozk0t_=DX1V08@ z(%~K^1mFO{;FteS9^^~-f`6a>Y^5n%+R8`5iq=wBYnmw!S01gL8m9Kr_*%_wW3H!l zY@^krCE>LX<7*L&QU1b`C#|-FDVye2O}VKHeI#CCRds|A{x${d@r3OmtZFumS!zuP zZKAEA6~i0U8w!z#uxcAk-PDBDQ)eWI*upfFj@%hOF%8=R|KDC&ZyJMj+i7*Q_2Jpm zwi=cuOdeLsyLF{h6szUk zk(AOSx#L!j_L5RbQ7(l{DV0D!p_fKdD4z+9_EL$#-m%orZzml!BobYtS{l@~f=6F> z)L}!fh3lqbBu82)dUkM}@OWC)Qn697cFyD>@l15{!@e$UC!Bn0Bf4KCezae5iY^KH z;vuDZ=<%@Co%mU;eAKI274Xm@OTw16Px|?kI7Gjn-(hm)Pryem4WOH(S0Y7G30EyC z6Yolys#z@^8DtA7o2=I|x}HndH*<$%6YQT&wiT;(s)DvUOe&DA550BpACwE+9!$>d zL|n1rL#4E1OWA$0p{YQh{Bg*tl?E6iKC0vL$seS|ADocw*&h3SoLRlf^`$*R*X}Xq zn~cb%BT-HzdsSm%^GeCIRd$vn_kL8d@}3P9Zigv(*ZeJ-hyz_A6vhMDAm)afGGDlXWTpZO>QCluaM()_orHoilN{P;1;XD4Z zb59lv{QSTB{R&XIdDK=)C!XEnQl>sqGG+t5+LG8@QK^-p?b>#maAuHiaGwJXQ#g|X zaFa?ff9HO)F(8`(_hvP-Td#y|;7Zix>^|&C=cpS~a}$0pU-%zkoB28L*nNC_VuOEw z?+kbI01X16kg&QtuxeNR@L9mdGkY;SH`;9;`n zifw7`l{{JeB!2+U!I&rFReqc7%VYU>jvwHYVKq&8$P8CYhdR#Cu9T4nGNw~SoT)Z< z&1xapQ;nopCEO1~EH@BsrF@8(DfKJOBC1TFDAk) zm%x@%Dy9=H*^`}dD9&?FQ2w`J}FtlXeyM$ZhY8q|A;; zbFx_9gv@73q-v_oyk23s4z))a=R4#zN3~=&ZM__sD??8ihgP&T4m(3@v)N$rW= zj>u%!tj#f%O#=If@zeF-$eqhn4K_DbOCmln>?tL4OcByo0Bx ztJwtPwn?6X1fBRZ=_Y;X#tPI`^#aS`r6_1@J%>F{jKova=>xelLY;Jtpz@ot`~;T=bX4P4v9R>(Q&KIIRl53>!+`4ivG zWkPjrC(ij5Z#$_kB6-1;!bFxuBqhZf+Az-&AOyue;)ccfe`Y|=ZIhsg-btB4z3 z4e4P7{@!5mAjRShVY01IjG=svn$n}=@tXNR#U;Yq zPV;zA-(^k)hdJVv?z7xD#d|=!-5h`#qaJ~rg*?RtUaPu#F~6GNh4aF@Mv~JP8v0`+ ziCCVVS?BuW*Q`s__jY1lj==Yj_*s?W)i=Z>w?E0r?Rxl{^Ln+czsg!yUT&WrzCq>P z{G2CDBF=Vk&JN3;JTH4Te9FeQz1o4r7CIw3!rF_T>+j=E(HHQ}|3+nS8um_rB8a&=+nYNndq^w5eHI(-HRgC-W8I z*`wJ-Q=jldYvItE=#qTrpYgdQlP|?r#NVdthbv-F5zmM{k^0q_6@0s?&&c?~+i%OZ zEk3CmdYyV9*mNZ?9k1HX5Z4Wb#Ytk+U=S~*A^bH z2?fh=>VhOmuV(SB*Qu@cumkz&9%LouJqYioeq9KQVq`TehT?)U6t0m*_|3DHy``!h zOJ1XYB7kd!+L~7D{_r(odbaq6hMM)v9sVu<%Hd8M);SG*V~fz58?pv%^(`%drS`W` z&Avh1>~E{w3@ATb3%QOoz64vJpd)jX$fsYLpEmckNnEaaV%4RcbruGZ1MOfg) zy-?TSk$uG(w%LVHk8Y0WvelFo%_NvlBtedFG>ct+37?Hu)NRwKX`SgMrr?!UW=$JFtPM(72E`$9E%Io^GU!@Z zL`SAsaV;LjCXUu-526@CB6^*~X8VcSby}yV*NaRy%`+lT(_b(1G=(QLyM7BpbT6eM zId-`gE7=jeiQP3atzx1`+Ay`EtjiQbl%)q(v#-<2G6vV{6TPYrr@UShJ~yL76g9$Y z%pV#{D6W0I?c2C-f6{I>_3LG&EBG1PPt#v7@ic`eH>~DK?AdkfF5gUEyWP>`+V#S2 zToraqe7&UOX-`b%A{()ZuxoJSE8hJYahs^VI`r=-#_+X=P4$YbX`*?_tS;dzIbFEec5fiazQX_(veu#)(=)G literal 81521 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 diff --git a/playground/faust/eoc-eq.json b/playground/faust/eoc-eq.json index 55bef69..5ab4f90 100644 --- a/playground/faust/eoc-eq.json +++ b/playground/faust/eoc-eq.json @@ -1 +1 @@ -{"name": "eoc-eq","filename": "eoc-eq.dsp","version": "2.83.1","compile_options": "-lang wasm -fpga-mem-th 4 -ct 1 -cn eoc_eq -es 1 -mcd 16 -mdd 1024 -mdy 33 -single -ftz 0","library_list": ["/nix/store/fnjbalzgc6pjm8la292cczxqbr00qmav-faust-2.83.1/share/faust/stdfaust.lib","/nix/store/fnjbalzgc6pjm8la292cczxqbr00qmav-faust-2.83.1/share/faust/filters.lib","/nix/store/fnjbalzgc6pjm8la292cczxqbr00qmav-faust-2.83.1/share/faust/analyzers.lib","/nix/store/fnjbalzgc6pjm8la292cczxqbr00qmav-faust-2.83.1/share/faust/basics.lib","/nix/store/fnjbalzgc6pjm8la292cczxqbr00qmav-faust-2.83.1/share/faust/maths.lib","/nix/store/fnjbalzgc6pjm8la292cczxqbr00qmav-faust-2.83.1/share/faust/platform.lib"],"include_pathnames": ["/nix/store/fnjbalzgc6pjm8la292cczxqbr00qmav-faust-2.83.1/share/faust","/usr/local/share/faust","/usr/share/faust",".","/home/w1n5t0n/src/MEMLNaut-NISPS/.claude/worktrees/agent-a42cfe12/playground/faust"],"size": 296,"code": "Ly8gZW9jLWVxLmRzcCDigJQgNC1iYW5kIHBhcmFtZXRyaWMgRVEgZm9yIE1FTUxOYXV0IEVPQyBjaGFpbgovLwovLyBCYW5kIDE6IExvdyBTaGVsZiAgKGRlZmF1bHQgODAgSHosIHJhbmdlIDIw4oCTNTAwKQovLyBCYW5kIDI6IExvdy1NaWQgYmVsbCAoZGVmYXVsdCA0MDAgSHosIHJhbmdlIDEwMOKAkzIwMDApCi8vIEJhbmQgMzogSGlnaC1NaWQgYmVsbCAoZGVmYXVsdCAyNTAwIEh6LCByYW5nZSA1MDDigJM4MDAwKQovLyBCYW5kIDQ6IEhpZ2ggU2hlbGYgKGRlZmF1bHQgODAwMCBIeiwgcmFuZ2UgMjAwMOKAkzIwMDAwKQovLwovLyBDb21waWxlOgovLyAgIGZhdXN0IC1sYW5nIHdhc20gLWNuIGVvY19lcSAtZSBlb2MtZXEuZHNwIC1vIGVvYy1lcS53YXNtIC1qc29uCgppbXBvcnQoInN0ZGZhdXN0LmxpYiIpOwoKLy8gQmFuZCAxIOKAlCBMb3cgU2hlbGYKZnJlcTEgID0gaHNsaWRlcigiQmFuZCAxIChMb3cgU2hlbGYpL2ZyZXExW3VuaXQ6SHpdIiwgIDgwLCAgICAyMCwgICAgNTAwLCAgIDAuMSk7CmdhaW4xICA9IGhzbGlkZXIoIkJhbmQgMSAoTG93IFNoZWxmKS9nYWluMVt1bml0OmRCXSIsICAgMCwgICAtMTIsICAgIDEyLCAgICAwLjEpOwpxMSAgICAgPSBoc2xpZGVyKCJCYW5kIDEgKExvdyBTaGVsZikvcTEiLCAgICAgICAgICAgICAgIDEuMCwgICAwLjEsICAxMC4wLCAgMC4wMSk7CgovLyBCYW5kIDIg4oCUIExvdy1NaWQgYmVsbApmcmVxMiAgPSBoc2xpZGVyKCJCYW5kIDIgKExvdy1NaWQpL2ZyZXEyW3VuaXQ6SHpdIiwgICA0MDAsICAgMTAwLCAgMjAwMCwgICAxLjApOwpnYWluMiAgPSBoc2xpZGVyKCJCYW5kIDIgKExvdy1NaWQpL2dhaW4yW3VuaXQ6ZEJdIiwgICAgIDAsICAgLTEyLCAgICAxMiwgICAgMC4xKTsKcTIgICAgID0gaHNsaWRlcigiQmFuZCAyIChMb3ctTWlkKS9xMiIsICAgICAgICAgICAgICAgICAxLjAsICAgMC4xLCAgMTAuMCwgIDAuMDEpOwoKLy8gQmFuZCAzIOKAlCBIaWdoLU1pZCBiZWxsCmZyZXEzICA9IGhzbGlkZXIoIkJhbmQgMyAoSGlnaC1NaWQpL2ZyZXEzW3VuaXQ6SHpdIiwgMjUwMCwgICA1MDAsICA4MDAwLCAgIDEuMCk7CmdhaW4zICA9IGhzbGlkZXIoIkJhbmQgMyAoSGlnaC1NaWQpL2dhaW4zW3VuaXQ6ZEJdIiwgICAgMCwgICAtMTIsICAgIDEyLCAgICAwLjEpOwpxMyAgICAgPSBoc2xpZGVyKCJCYW5kIDMgKEhpZ2gtTWlkKS9xMyIsICAgICAgICAgICAgICAgIDEuMCwgICAwLjEsICAxMC4wLCAgMC4wMSk7CgovLyBCYW5kIDQg4oCUIEhpZ2ggU2hlbGYKZnJlcTQgID0gaHNsaWRlcigiQmFuZCA0IChIaWdoIFNoZWxmKS9mcmVxNFt1bml0Okh6XSIsIDgwMDAsIDIwMDAsIDIwMDAwLCAgMTAuMCk7CmdhaW40ICA9IGhzbGlkZXIoIkJhbmQgNCAoSGlnaCBTaGVsZikvZ2FpbjRbdW5pdDpkQl0iLCAgICAwLCAgLTEyLCAgICAxMiwgICAgMC4xKTsKcTQgICAgID0gaHNsaWRlcigiQmFuZCA0IChIaWdoIFNoZWxmKS9xNCIsICAgICAgICAgICAgICAgMS4wLCAgIDAuMSwgIDEwLjAsICAwLjAxKTsKCmVxQ2hhaW4gPSBmaS5sb3dfc2hlbGYoZ2FpbjEsIGZyZXExKSA6CiAgICAgICAgICAgZmkucGVha19lcShnYWluMiwgZnJlcTIsIHEyKSA6CiAgICAgICAgICAgZmkucGVha19lcShnYWluMywgZnJlcTMsIHEzKSA6CiAgICAgICAgICAgZmkuaGlnaF9zaGVsZihnYWluNCwgZnJlcTQpOwoKcHJvY2VzcyA9IGVxQ2hhaW4sIGVxQ2hhaW47Cg==","inputs": 2,"outputs": 2,"meta": [ { "analyzers.lib/name": "Faust Analyzer Library" },{ "analyzers.lib/version": "1.3.0" },{ "basics.lib/name": "Faust Basic Element Library" },{ "basics.lib/version": "1.22.0" },{ "compile_options": "-lang wasm -fpga-mem-th 4 -ct 1 -cn eoc_eq -es 1 -mcd 16 -mdd 1024 -mdy 33 -single -ftz 0" },{ "filename": "eoc-eq.dsp" },{ "filters.lib/filterbank:author": "Julius O. Smith III" },{ "filters.lib/filterbank:copyright": "Copyright (C) 2003-2019 by Julius O. Smith III " },{ "filters.lib/filterbank:license": "MIT-style STK-4.3 license" },{ "filters.lib/fir:author": "Julius O. Smith III" },{ "filters.lib/fir:copyright": "Copyright (C) 2003-2019 by Julius O. Smith III " },{ "filters.lib/fir:license": "MIT-style STK-4.3 license" },{ "filters.lib/highpass:author": "Julius O. Smith III" },{ "filters.lib/highpass:copyright": "Copyright (C) 2003-2019 by Julius O. Smith III " },{ "filters.lib/highshelf:author": "Julius O. Smith III" },{ "filters.lib/highshelf:copyright": "Copyright (C) 2003-2019 by Julius O. Smith III " },{ "filters.lib/highshelf:license": "MIT-style STK-4.3 license" },{ "filters.lib/iir:author": "Julius O. Smith III" },{ "filters.lib/iir:copyright": "Copyright (C) 2003-2019 by Julius O. Smith III " },{ "filters.lib/iir:license": "MIT-style STK-4.3 license" },{ "filters.lib/low_shelf:author": "Julius O. Smith III" },{ "filters.lib/low_shelf:copyright": "Copyright (C) 2003-2019 by Julius O. Smith III " },{ "filters.lib/low_shelf:license": "MIT-style STK-4.3 license" },{ "filters.lib/lowpass0_highpass1": "Copyright (C) 2003-2019 by Julius O. Smith III " },{ "filters.lib/lowpass0_highpass1:author": "Julius O. Smith III" },{ "filters.lib/lowpass:author": "Julius O. Smith III" },{ "filters.lib/lowpass:copyright": "Copyright (C) 2003-2019 by Julius O. Smith III " },{ "filters.lib/lowpass:license": "MIT-style STK-4.3 license" },{ "filters.lib/lowshelf:author": "Julius O. Smith III" },{ "filters.lib/lowshelf:copyright": "Copyright (C) 2003-2019 by Julius O. Smith III " },{ "filters.lib/lowshelf:license": "MIT-style STK-4.3 license" },{ "filters.lib/name": "Faust Filters Library" },{ "filters.lib/peak_eq:author": "Julius O. Smith III" },{ "filters.lib/peak_eq:copyright": "Copyright (C) 2003-2019 by Julius O. Smith III " },{ "filters.lib/peak_eq:license": "MIT-style STK-4.3 license" },{ "filters.lib/tf1:author": "Julius O. Smith III" },{ "filters.lib/tf1:copyright": "Copyright (C) 2003-2019 by Julius O. Smith III " },{ "filters.lib/tf1:license": "MIT-style STK-4.3 license" },{ "filters.lib/tf1s:author": "Julius O. Smith III" },{ "filters.lib/tf1s:copyright": "Copyright (C) 2003-2019 by Julius O. Smith III " },{ "filters.lib/tf1s:license": "MIT-style STK-4.3 license" },{ "filters.lib/tf2:author": "Julius O. Smith III" },{ "filters.lib/tf2:copyright": "Copyright (C) 2003-2019 by Julius O. Smith III " },{ "filters.lib/tf2:license": "MIT-style STK-4.3 license" },{ "filters.lib/tf2s:author": "Julius O. Smith III" },{ "filters.lib/tf2s:copyright": "Copyright (C) 2003-2019 by Julius O. Smith III " },{ "filters.lib/tf2s:license": "MIT-style STK-4.3 license" },{ "filters.lib/version": "1.7.1" },{ "maths.lib/author": "GRAME" },{ "maths.lib/copyright": "GRAME" },{ "maths.lib/license": "LGPL with exception" },{ "maths.lib/name": "Faust Math Library" },{ "maths.lib/version": "2.9.0" },{ "name": "eoc-eq" },{ "platform.lib/name": "Generic Platform Library" },{ "platform.lib/version": "1.3.0" }],"ui": [ {"type": "vgroup","label": "eoc-eq","items": [ {"type": "hslider","label": "Band 1 (Low Shelf)/freq1","varname": "fHslider7","shortname": "Band_1_Low_Shelf_freq1","address": "/eoc-eq/Band_1__Low_Shelf__freq1","index": 44,"meta": [{ "unit": "Hz" }],"init": 80,"min": 20,"max": 500,"step": 0.1},{"type": "hslider","label": "Band 1 (Low Shelf)/gain1","varname": "fHslider8","shortname": "Band_1_Low_Shelf_gain1","address": "/eoc-eq/Band_1__Low_Shelf__gain1","index": 76,"meta": [{ "unit": "dB" }],"init": 0,"min": -12,"max": 12,"step": 0.1},{"type": "hslider","label": "Band 2 (Low-Mid)/freq2","varname": "fHslider5","shortname": "Band_2_Low_Mid_freq2","address": "/eoc-eq/Band_2__Low-Mid__freq2","index": 36,"meta": [{ "unit": "Hz" }],"init": 400,"min": 100,"max": 2000,"step": 1},{"type": "hslider","label": "Band 2 (Low-Mid)/gain2","varname": "fHslider4","shortname": "Band_2_Low_Mid_gain2","address": "/eoc-eq/Band_2__Low-Mid__gain2","index": 32,"meta": [{ "unit": "dB" }],"init": 0,"min": -12,"max": 12,"step": 0.1},{"type": "hslider","label": "Band 2 (Low-Mid)/q2","varname": "fHslider6","shortname": "Band_2_Low_Mid_q2","address": "/eoc-eq/Band_2__Low-Mid__q2","index": 40,"init": 1,"min": 0.1,"max": 10,"step": 0.01},{"type": "hslider","label": "Band 3 (High-Mid)/freq3","varname": "fHslider2","shortname": "Band_3_High_Mid_freq3","address": "/eoc-eq/Band_3__High-Mid__freq3","index": 20,"meta": [{ "unit": "Hz" }],"init": 2500,"min": 500,"max": 8000,"step": 1},{"type": "hslider","label": "Band 3 (High-Mid)/gain3","varname": "fHslider1","shortname": "Band_3_High_Mid_gain3","address": "/eoc-eq/Band_3__High-Mid__gain3","index": 16,"meta": [{ "unit": "dB" }],"init": 0,"min": -12,"max": 12,"step": 0.1},{"type": "hslider","label": "Band 3 (High-Mid)/q3","varname": "fHslider3","shortname": "Band_3_High_Mid_q3","address": "/eoc-eq/Band_3__High-Mid__q3","index": 28,"init": 1,"min": 0.1,"max": 10,"step": 0.01},{"type": "hslider","label": "Band 4 (High Shelf)/freq4","varname": "fHslider0","shortname": "Band_4_High_Shelf_freq4","address": "/eoc-eq/Band_4__High_Shelf__freq4","index": 0,"meta": [{ "unit": "Hz" }],"init": 8000,"min": 2000,"max": 20000,"step": 10},{"type": "hslider","label": "Band 4 (High Shelf)/gain4","varname": "fHslider9","shortname": "Band_4_High_Shelf_gain4","address": "/eoc-eq/Band_4__High_Shelf__gain4","index": 152,"meta": [{ "unit": "dB" }],"init": 0,"min": -12,"max": 12,"step": 0.1}]}]} \ No newline at end of file +{"name": "eoc-eq","filename": "eoc-eq.dsp","version": "2.79.3","compile_options": "-lang wasm -ct 1 -cn eoc_eq -es 1 -mcd 16 -mdd 1024 -mdy 33 -single -ftz 0","library_list": ["/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust/stdfaust.lib","/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust/filters.lib","/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust/analyzers.lib","/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust/basics.lib","/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust/maths.lib","/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust/platform.lib"],"include_pathnames": ["/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust","/usr/local/share/faust","/usr/share/faust",".","/home/w1n5t0n/src/MEMLNaut-NISPS/playground/faust"],"size": 296,"code": "Ly8gZW9jLWVxLmRzcCDigJQgNC1iYW5kIHBhcmFtZXRyaWMgRVEgZm9yIE1FTUxOYXV0IEVPQyBjaGFpbgovLwovLyBCYW5kIDE6IExvdyBTaGVsZiAgKGRlZmF1bHQgODAgSHosIHJhbmdlIDIw4oCTNTAwKQovLyBCYW5kIDI6IExvdy1NaWQgYmVsbCAoZGVmYXVsdCA0MDAgSHosIHJhbmdlIDEwMOKAkzIwMDApCi8vIEJhbmQgMzogSGlnaC1NaWQgYmVsbCAoZGVmYXVsdCAyNTAwIEh6LCByYW5nZSA1MDDigJM4MDAwKQovLyBCYW5kIDQ6IEhpZ2ggU2hlbGYgKGRlZmF1bHQgODAwMCBIeiwgcmFuZ2UgMjAwMOKAkzIwMDAwKQovLwovLyBDb21waWxlOgovLyAgIGZhdXN0IC1sYW5nIHdhc20gLWNuIGVvY19lcSAtZSBlb2MtZXEuZHNwIC1vIGVvYy1lcS53YXNtIC1qc29uCgppbXBvcnQoInN0ZGZhdXN0LmxpYiIpOwoKLy8gQmFuZCAxIOKAlCBMb3cgU2hlbGYKZnJlcTEgID0gaHNsaWRlcigiQmFuZCAxIChMb3cgU2hlbGYpL2ZyZXExW3VuaXQ6SHpdIiwgIDgwLCAgICAyMCwgICAgNTAwLCAgIDAuMSk7CmdhaW4xICA9IGhzbGlkZXIoIkJhbmQgMSAoTG93IFNoZWxmKS9nYWluMVt1bml0OmRCXSIsICAgMCwgICAtMTIsICAgIDEyLCAgICAwLjEpOwpxMSAgICAgPSBoc2xpZGVyKCJCYW5kIDEgKExvdyBTaGVsZikvcTEiLCAgICAgICAgICAgICAgIDEuMCwgICAwLjEsICAxMC4wLCAgMC4wMSk7CgovLyBCYW5kIDIg4oCUIExvdy1NaWQgYmVsbApmcmVxMiAgPSBoc2xpZGVyKCJCYW5kIDIgKExvdy1NaWQpL2ZyZXEyW3VuaXQ6SHpdIiwgICA0MDAsICAgMTAwLCAgMjAwMCwgICAxLjApOwpnYWluMiAgPSBoc2xpZGVyKCJCYW5kIDIgKExvdy1NaWQpL2dhaW4yW3VuaXQ6ZEJdIiwgICAgIDAsICAgLTEyLCAgICAxMiwgICAgMC4xKTsKcTIgICAgID0gaHNsaWRlcigiQmFuZCAyIChMb3ctTWlkKS9xMiIsICAgICAgICAgICAgICAgICAxLjAsICAgMC4xLCAgMTAuMCwgIDAuMDEpOwoKLy8gQmFuZCAzIOKAlCBIaWdoLU1pZCBiZWxsCmZyZXEzICA9IGhzbGlkZXIoIkJhbmQgMyAoSGlnaC1NaWQpL2ZyZXEzW3VuaXQ6SHpdIiwgMjUwMCwgICA1MDAsICA4MDAwLCAgIDEuMCk7CmdhaW4zICA9IGhzbGlkZXIoIkJhbmQgMyAoSGlnaC1NaWQpL2dhaW4zW3VuaXQ6ZEJdIiwgICAgMCwgICAtMTIsICAgIDEyLCAgICAwLjEpOwpxMyAgICAgPSBoc2xpZGVyKCJCYW5kIDMgKEhpZ2gtTWlkKS9xMyIsICAgICAgICAgICAgICAgIDEuMCwgICAwLjEsICAxMC4wLCAgMC4wMSk7CgovLyBCYW5kIDQg4oCUIEhpZ2ggU2hlbGYKZnJlcTQgID0gaHNsaWRlcigiQmFuZCA0IChIaWdoIFNoZWxmKS9mcmVxNFt1bml0Okh6XSIsIDgwMDAsIDIwMDAsIDIwMDAwLCAgMTAuMCk7CmdhaW40ICA9IGhzbGlkZXIoIkJhbmQgNCAoSGlnaCBTaGVsZikvZ2FpbjRbdW5pdDpkQl0iLCAgICAwLCAgLTEyLCAgICAxMiwgICAgMC4xKTsKcTQgICAgID0gaHNsaWRlcigiQmFuZCA0IChIaWdoIFNoZWxmKS9xNCIsICAgICAgICAgICAgICAgMS4wLCAgIDAuMSwgIDEwLjAsICAwLjAxKTsKCmVxQ2hhaW4gPSBmaS5sb3dfc2hlbGYoZ2FpbjEsIGZyZXExKSA6CiAgICAgICAgICAgZmkucGVha19lcShnYWluMiwgZnJlcTIsIHEyKSA6CiAgICAgICAgICAgZmkucGVha19lcShnYWluMywgZnJlcTMsIHEzKSA6CiAgICAgICAgICAgZmkuaGlnaF9zaGVsZihnYWluNCwgZnJlcTQpOwoKcHJvY2VzcyA9IGVxQ2hhaW4sIGVxQ2hhaW47Cg==","inputs": 2,"outputs": 2,"meta": [ { "analyzers.lib/name": "Faust Analyzer Library" },{ "analyzers.lib/version": "1.2.0" },{ "basics.lib/name": "Faust Basic Element Library" },{ "basics.lib/version": "1.21.0" },{ "compile_options": "-lang wasm -ct 1 -cn eoc_eq -es 1 -mcd 16 -mdd 1024 -mdy 33 -single -ftz 0" },{ "filename": "eoc-eq.dsp" },{ "filters.lib/filterbank:author": "Julius O. Smith III" },{ "filters.lib/filterbank:copyright": "Copyright (C) 2003-2019 by Julius O. Smith III " },{ "filters.lib/filterbank:license": "MIT-style STK-4.3 license" },{ "filters.lib/fir:author": "Julius O. Smith III" },{ "filters.lib/fir:copyright": "Copyright (C) 2003-2019 by Julius O. Smith III " },{ "filters.lib/fir:license": "MIT-style STK-4.3 license" },{ "filters.lib/highpass:author": "Julius O. Smith III" },{ "filters.lib/highpass:copyright": "Copyright (C) 2003-2019 by Julius O. Smith III " },{ "filters.lib/highshelf:author": "Julius O. Smith III" },{ "filters.lib/highshelf:copyright": "Copyright (C) 2003-2019 by Julius O. Smith III " },{ "filters.lib/highshelf:license": "MIT-style STK-4.3 license" },{ "filters.lib/iir:author": "Julius O. Smith III" },{ "filters.lib/iir:copyright": "Copyright (C) 2003-2019 by Julius O. Smith III " },{ "filters.lib/iir:license": "MIT-style STK-4.3 license" },{ "filters.lib/low_shelf:author": "Julius O. Smith III" },{ "filters.lib/low_shelf:copyright": "Copyright (C) 2003-2019 by Julius O. Smith III " },{ "filters.lib/low_shelf:license": "MIT-style STK-4.3 license" },{ "filters.lib/lowpass0_highpass1": "Copyright (C) 2003-2019 by Julius O. Smith III " },{ "filters.lib/lowpass0_highpass1:author": "Julius O. Smith III" },{ "filters.lib/lowpass:author": "Julius O. Smith III" },{ "filters.lib/lowpass:copyright": "Copyright (C) 2003-2019 by Julius O. Smith III " },{ "filters.lib/lowpass:license": "MIT-style STK-4.3 license" },{ "filters.lib/lowshelf:author": "Julius O. Smith III" },{ "filters.lib/lowshelf:copyright": "Copyright (C) 2003-2019 by Julius O. Smith III " },{ "filters.lib/lowshelf:license": "MIT-style STK-4.3 license" },{ "filters.lib/name": "Faust Filters Library" },{ "filters.lib/peak_eq:author": "Julius O. Smith III" },{ "filters.lib/peak_eq:copyright": "Copyright (C) 2003-2019 by Julius O. Smith III " },{ "filters.lib/peak_eq:license": "MIT-style STK-4.3 license" },{ "filters.lib/tf1:author": "Julius O. Smith III" },{ "filters.lib/tf1:copyright": "Copyright (C) 2003-2019 by Julius O. Smith III " },{ "filters.lib/tf1:license": "MIT-style STK-4.3 license" },{ "filters.lib/tf1s:author": "Julius O. Smith III" },{ "filters.lib/tf1s:copyright": "Copyright (C) 2003-2019 by Julius O. Smith III " },{ "filters.lib/tf1s:license": "MIT-style STK-4.3 license" },{ "filters.lib/tf2:author": "Julius O. Smith III" },{ "filters.lib/tf2:copyright": "Copyright (C) 2003-2019 by Julius O. Smith III " },{ "filters.lib/tf2:license": "MIT-style STK-4.3 license" },{ "filters.lib/tf2s:author": "Julius O. Smith III" },{ "filters.lib/tf2s:copyright": "Copyright (C) 2003-2019 by Julius O. Smith III " },{ "filters.lib/tf2s:license": "MIT-style STK-4.3 license" },{ "filters.lib/version": "1.7.1" },{ "maths.lib/author": "GRAME" },{ "maths.lib/copyright": "GRAME" },{ "maths.lib/license": "LGPL with exception" },{ "maths.lib/name": "Faust Math Library" },{ "maths.lib/version": "2.8.1" },{ "name": "eoc-eq" },{ "platform.lib/name": "Generic Platform Library" },{ "platform.lib/version": "1.3.0" }],"ui": [ {"type": "vgroup","label": "eoc-eq","items": [ {"type": "hslider","label": "Band 1 (Low Shelf)/freq1","varname": "fHslider7","shortname": "Band_1_Low_Shelf_freq1","address": "/eoc-eq/Band_1__Low_Shelf__freq1","index": 44,"meta": [{ "unit": "Hz" }],"init": 80,"min": 20,"max": 500,"step": 0.1},{"type": "hslider","label": "Band 1 (Low Shelf)/gain1","varname": "fHslider8","shortname": "Band_1_Low_Shelf_gain1","address": "/eoc-eq/Band_1__Low_Shelf__gain1","index": 76,"meta": [{ "unit": "dB" }],"init": 0,"min": -12,"max": 12,"step": 0.1},{"type": "hslider","label": "Band 2 (Low-Mid)/freq2","varname": "fHslider5","shortname": "Band_2_Low_Mid_freq2","address": "/eoc-eq/Band_2__Low-Mid__freq2","index": 36,"meta": [{ "unit": "Hz" }],"init": 400,"min": 100,"max": 2000,"step": 1},{"type": "hslider","label": "Band 2 (Low-Mid)/gain2","varname": "fHslider4","shortname": "Band_2_Low_Mid_gain2","address": "/eoc-eq/Band_2__Low-Mid__gain2","index": 32,"meta": [{ "unit": "dB" }],"init": 0,"min": -12,"max": 12,"step": 0.1},{"type": "hslider","label": "Band 2 (Low-Mid)/q2","varname": "fHslider6","shortname": "Band_2_Low_Mid_q2","address": "/eoc-eq/Band_2__Low-Mid__q2","index": 40,"init": 1,"min": 0.1,"max": 10,"step": 0.01},{"type": "hslider","label": "Band 3 (High-Mid)/freq3","varname": "fHslider2","shortname": "Band_3_High_Mid_freq3","address": "/eoc-eq/Band_3__High-Mid__freq3","index": 20,"meta": [{ "unit": "Hz" }],"init": 2500,"min": 500,"max": 8000,"step": 1},{"type": "hslider","label": "Band 3 (High-Mid)/gain3","varname": "fHslider1","shortname": "Band_3_High_Mid_gain3","address": "/eoc-eq/Band_3__High-Mid__gain3","index": 16,"meta": [{ "unit": "dB" }],"init": 0,"min": -12,"max": 12,"step": 0.1},{"type": "hslider","label": "Band 3 (High-Mid)/q3","varname": "fHslider3","shortname": "Band_3_High_Mid_q3","address": "/eoc-eq/Band_3__High-Mid__q3","index": 28,"init": 1,"min": 0.1,"max": 10,"step": 0.01},{"type": "hslider","label": "Band 4 (High Shelf)/freq4","varname": "fHslider0","shortname": "Band_4_High_Shelf_freq4","address": "/eoc-eq/Band_4__High_Shelf__freq4","index": 0,"meta": [{ "unit": "Hz" }],"init": 8000,"min": 2000,"max": 20000,"step": 10},{"type": "hslider","label": "Band 4 (High Shelf)/gain4","varname": "fHslider9","shortname": "Band_4_High_Shelf_gain4","address": "/eoc-eq/Band_4__High_Shelf__gain4","index": 152,"meta": [{ "unit": "dB" }],"init": 0,"min": -12,"max": 12,"step": 0.1}]}]} \ No newline at end of file diff --git a/playground/faust/eoc-eq.wasm b/playground/faust/eoc-eq.wasm index 8deaf08bb7832788b48a70980bfa2a858f92fc6e..9640bf6362632354c60f478f5c979f3452ec96c2 100644 GIT binary patch delta 427 zcmZ3I_cV8dl@Rx`lMM|Fj0}zp-18^93R$t4Tk07r=}cZAuQ2(%y#3_QLUOv5S%n43 zMu}!gM!5zSRpsSH>BT8Ig~gdB2Dzr?c?AW!X^Ex9CAvm>Aib0Agw;vZF-cgBL>*6s zHAvK9C8A2Ajvf&e5_Q}au_IAOqNvE^7*U_iCq>IR8I2}8$cHl;PM#sJvH84wGB2}* Lp5bOw-S?aTBRY{d delta 486 zcmaEwyCiRel@RySlMM|Fj0}zp-1jEC3R$sP80#4-=}az=SKv)6NKe$wP0iIU$xtwv z+$Zli`H7I6ZdzVeQesY3da_wTR<1=(qLHOha&lEgVN#KSL1AuUnQmHQX>p0JksipT z$@;?TBPaUKBQIv diff --git a/playground/faust/eoc-master.json b/playground/faust/eoc-master.json index 0e31d68..10b9dad 100644 --- a/playground/faust/eoc-master.json +++ b/playground/faust/eoc-master.json @@ -1,92 +1 @@ -{ - "name": "eoc-master", - "filename": "eoc-master.dsp", - "version": "2.83.1", - "compile_options": "-lang cpp -fpga-mem-th 4 -ct 1 -es 1 -mcd 16 -mdd 1024 -mdy 33 -single -ftz 0", - "library_list": ["/nix/store/fnjbalzgc6pjm8la292cczxqbr00qmav-faust-2.83.1/share/faust/stdfaust.lib","/nix/store/fnjbalzgc6pjm8la292cczxqbr00qmav-faust-2.83.1/share/faust/filters.lib","/nix/store/fnjbalzgc6pjm8la292cczxqbr00qmav-faust-2.83.1/share/faust/maths.lib","/nix/store/fnjbalzgc6pjm8la292cczxqbr00qmav-faust-2.83.1/share/faust/platform.lib","/nix/store/fnjbalzgc6pjm8la292cczxqbr00qmav-faust-2.83.1/share/faust/basics.lib"], - "include_pathnames": ["/nix/store/fnjbalzgc6pjm8la292cczxqbr00qmav-faust-2.83.1/share/faust","/usr/local/share/faust","/usr/share/faust",".","/home/w1n5t0n/src/MEMLNaut-NISPS/.claude/worktrees/agent-a8d5e213/playground/faust"], - "size": 88, - "inputs": 2, - "outputs": 2, - "meta": [ - { "basics.lib/name": "Faust Basic Element Library" }, - { "basics.lib/version": "1.22.0" }, - { "compile_options": "-lang cpp -fpga-mem-th 4 -ct 1 -es 1 -mcd 16 -mdd 1024 -mdy 33 -single -ftz 0" }, - { "filename": "eoc-master.dsp" }, - { "filters.lib/highpass:author": "Julius O. Smith III" }, - { "filters.lib/highpass:copyright": "Copyright (C) 2003-2019 by Julius O. Smith III " }, - { "filters.lib/lowpass0_highpass1": "Copyright (C) 2003-2019 by Julius O. Smith III " }, - { "filters.lib/lowpass0_highpass1:author": "Julius O. Smith III" }, - { "filters.lib/name": "Faust Filters Library" }, - { "filters.lib/tf1:author": "Julius O. Smith III" }, - { "filters.lib/tf1:copyright": "Copyright (C) 2003-2019 by Julius O. Smith III " }, - { "filters.lib/tf1:license": "MIT-style STK-4.3 license" }, - { "filters.lib/tf1s:author": "Julius O. Smith III" }, - { "filters.lib/tf1s:copyright": "Copyright (C) 2003-2019 by Julius O. Smith III " }, - { "filters.lib/tf1s:license": "MIT-style STK-4.3 license" }, - { "filters.lib/version": "1.7.1" }, - { "maths.lib/author": "GRAME" }, - { "maths.lib/copyright": "GRAME" }, - { "maths.lib/license": "LGPL with exception" }, - { "maths.lib/name": "Faust Math Library" }, - { "maths.lib/version": "2.9.0" }, - { "name": "eoc-master" }, - { "platform.lib/name": "Generic Platform Library" }, - { "platform.lib/version": "1.3.0" } - ], - "ui": [ - { - "type": "vgroup", - "label": "eoc-master", - "items": [ - { - "type": "nentry", - "label": "dc_block", - "varname": "fEntry0", - "shortname": "dc_block", - "address": "/eoc-master/dc_block", - "init": 1, - "min": 0, - "max": 1, - "step": 1 - }, - { - "type": "hslider", - "label": "gain", - "varname": "fHslider2", - "shortname": "gain", - "address": "/eoc-master/gain", - "init": 1, - "min": 0, - "max": 2, - "step": 0.001 - }, - { - "type": "hslider", - "label": "limiter_thresh", - "varname": "fHslider0", - "shortname": "limiter_thresh", - "address": "/eoc-master/limiter_thresh", - "meta": [ - { "unit": "dB" } - ], - "init": -1, - "min": -12, - "max": 0, - "step": 0.1 - }, - { - "type": "hslider", - "label": "width", - "varname": "fHslider1", - "shortname": "width", - "address": "/eoc-master/width", - "init": 1, - "min": 0, - "max": 2, - "step": 0.001 - } - ] - } - ] -} \ No newline at end of file +{"name": "eoc-master","filename": "eoc-master.dsp","version": "2.79.3","compile_options": "-lang wasm -ct 1 -cn eoc_master -es 1 -mcd 16 -mdd 1024 -mdy 33 -single -ftz 0","library_list": ["/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust/stdfaust.lib","/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust/filters.lib","/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust/maths.lib","/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust/platform.lib","/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust/basics.lib"],"include_pathnames": ["/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust","/usr/local/share/faust","/usr/share/faust",".","/home/w1n5t0n/src/MEMLNaut-NISPS/playground/faust"],"size": 88,"code": "Ly8gZW9jLW1hc3Rlci5kc3Ag4oCUIE1hc3RlciBidXMgZWZmZWN0IGZvciB0aGUgRU9DIHJhY2suCi8vCi8vIFBhcmFtZXRlcnMgKDQpOgovLyAgIGdhaW4gICAgICAgICAgICBbMS4wLCAgMC0yXSAgICAgICAgb3V0cHV0IGdhaW4gbXVsdGlwbGllcgovLyAgIHdpZHRoICAgICAgICAgICBbMS4wLCAgMC0yXSAgICAgICAgc3RlcmVvIHdpZHRoOiAwPW1vbm8sIDE9bm9ybWFsLCAyPWV4dHJhLXdpZGUKLy8gICBsaW1pdGVyX3RocmVzaCAgWy0xLjAsIC0xMiB0byAwXSAgIGJyaWNrLXdhbGwgbGltaXRlciB0aHJlc2hvbGQgKGRCKQovLyAgIGRjX2Jsb2NrICAgICAgICBbMV0gICAgICAgICAgICAgICAgbmVudHJ5OiAwPW9mZiwgMT1vbiDigJQgREMgYmxvY2tpbmcgZmlsdGVyCgppbXBvcnQoInN0ZGZhdXN0LmxpYiIpOwoKLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi8vIFVJCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKZ2FpbiAgICAgICAgICAgPSBoc2xpZGVyKCJnYWluIiwgICAgICAgICAgICAgICAgICAxLjAsICAwLCAgICAyLCAgIDAuMDAxKTsKd2lkdGggICAgICAgICAgPSBoc2xpZGVyKCJ3aWR0aCIsICAgICAgICAgICAgICAgICAxLjAsICAwLCAgICAyLCAgIDAuMDAxKTsKbGltaXRlcl90aHJlc2ggPSBoc2xpZGVyKCJsaW1pdGVyX3RocmVzaFt1bml0OmRCXSIsIC0xLjAsIC0xMiwgMCwgMC4xKTsKZGNfYmxvY2tfb24gICAgPSBuZW50cnkoImRjX2Jsb2NrIiwgICAgICAgICAgICAgICAxLCAgICAwLCAgICAxLCAgIDEpOwoKLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi8vIERDIGJsb2NraW5nIGZpbHRlciAofjEwSHogb25lLXBvbGUgSFApCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKZGNCbG9jayhvbiwgeCkgPSBvbiAqIGZpLmhpZ2hwYXNzKDEsIDEwLjAsIHgpICsgKDEuMCAtIG9uKSAqIHg7CgovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLy8gU3RlcmVvIHdpZHRoIHZpYSBtaWQtc2lkZSBwcm9jZXNzaW5nCi8vICAgd2lkdGggPSAwOiBtb25vIChzaWRlIHJlbW92ZWQpCi8vICAgd2lkdGggPSAxOiBvcmlnaW5hbCBzdGVyZW8KLy8gICB3aWR0aCA9IDI6IGVuaGFuY2VkIHN0ZXJlbyAoZG91YmxlZCBzaWRlcykKLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpzdGVyZW9XaWR0aChpbkwsIGluUikgPSBvdXRMLCBvdXRSCndpdGggewogICAgdyAgICA9IHdpZHRoOwogICAgbWlkICA9IChpbkwgKyBpblIpICogMC41OwogICAgc2lkZSA9IChpbkwgLSBpblIpICogMC41OwogICAgb3V0TCA9IG1pZCArIHNpZGUgKiB3OwogICAgb3V0UiA9IG1pZCAtIHNpZGUgKiB3Owp9OwoKLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi8vIEJyaWNrLXdhbGwgbGltaXRlcjogcGVhay1mb2xsb3dpbmcgZ2FpbiByZWR1Y3Rpb24uCi8vIFVzZXMgYSBsZWFreSBlbnZlbG9wZSBmb2xsb3dlciB3aXRoIGZhc3QgYXR0YWNrICh+MC41bXMpIGFuZCBzbG93IHJlbGVhc2UgKH4xMDBtcykuCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKdGhyZXNoTGluID0gYmEuZGIybGluZWFyKGxpbWl0ZXJfdGhyZXNoKTsKCi8vIExlYWt5LXBlYWsgZW52ZWxvcGUgZm9sbG93ZXI6IGV4cG9uZW50aWFsIHJlbGVhc2UgfjEwMG1zCi8vIFRha2VzIGEgc2lnbmFsLCBvdXRwdXRzIGl0cyBwZWFrIGVudmVsb3BlCnJlbGVhc2VDb2VmZiA9IGV4cCgtMS4wIC8gKGZsb2F0KG1hLlNSKSAqIDAuMTAwKSk7CgpwZWFrRW52ID0gYWJzIDogKCsgfiAqKHJlbGVhc2VDb2VmZikpOwoKLy8gR2FpbiByZWR1Y3Rpb246IGNsYW1wIHRvIHRocmVzaG9sZApsaW1pdGVyR1IoZW52KSA9IHRocmVzaExpbiAvIG1heCh0aHJlc2hMaW4sIGVudik7CgovLyBTdGVyZW8gbGltaXRlcjogbGlua2VkIEwvUiBnYWluIHJlZHVjdGlvbiBmcm9tIG1heCBvZiBib3RoIHBlYWtzCmxpbWl0ZXIoaW5MLCBpblIpID0gaW5MICogZ3IsIGluUiAqIGdyCndpdGggewogICAgZW52TCA9IHBlYWtFbnYoaW5MKTsKICAgIGVudlIgPSBwZWFrRW52KGluUik7CiAgICBwZWFrU3RlcmVvID0gbWF4KGVudkwsIGVudlIpOwogICAgZ3IgPSBsaW1pdGVyR1IocGVha1N0ZXJlbyk7Cn07CgovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLy8gTWFpbiBwcm9jZXNzCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKcHJvY2VzcyhpbkwsIGluUikgPSBvdXRMLCBvdXRSCndpdGggewogICAgLy8gMS4gREMgYmxvY2sKICAgIGRjTCA9IGRjQmxvY2soZGNfYmxvY2tfb24sIGluTCk7CiAgICBkY1IgPSBkY0Jsb2NrKGRjX2Jsb2NrX29uLCBpblIpOwogICAgLy8gMi4gR2FpbgogICAgZ0wgPSBkY0wgKiBnYWluOwogICAgZ1IgPSBkY1IgKiBnYWluOwogICAgLy8gMy4gU3RlcmVvIHdpZHRoCiAgICB3TCA9IHN0ZXJlb1dpZHRoKGdMLCBnUikgOiBfLCE7CiAgICB3UiA9IHN0ZXJlb1dpZHRoKGdMLCBnUikgOiAhLF87CiAgICAvLyA0LiBMaW1pdGVyCiAgICBvdXRMID0gbGltaXRlcih3TCwgd1IpIDogXywhOwogICAgb3V0UiA9IGxpbWl0ZXIod0wsIHdSKSA6ICEsXzsKfTsK","inputs": 2,"outputs": 2,"meta": [ { "basics.lib/name": "Faust Basic Element Library" },{ "basics.lib/version": "1.21.0" },{ "compile_options": "-lang wasm -ct 1 -cn eoc_master -es 1 -mcd 16 -mdd 1024 -mdy 33 -single -ftz 0" },{ "filename": "eoc-master.dsp" },{ "filters.lib/highpass:author": "Julius O. Smith III" },{ "filters.lib/highpass:copyright": "Copyright (C) 2003-2019 by Julius O. Smith III " },{ "filters.lib/lowpass0_highpass1": "Copyright (C) 2003-2019 by Julius O. Smith III " },{ "filters.lib/lowpass0_highpass1:author": "Julius O. Smith III" },{ "filters.lib/name": "Faust Filters Library" },{ "filters.lib/tf1:author": "Julius O. Smith III" },{ "filters.lib/tf1:copyright": "Copyright (C) 2003-2019 by Julius O. Smith III " },{ "filters.lib/tf1:license": "MIT-style STK-4.3 license" },{ "filters.lib/tf1s:author": "Julius O. Smith III" },{ "filters.lib/tf1s:copyright": "Copyright (C) 2003-2019 by Julius O. Smith III " },{ "filters.lib/tf1s:license": "MIT-style STK-4.3 license" },{ "filters.lib/version": "1.7.1" },{ "maths.lib/author": "GRAME" },{ "maths.lib/copyright": "GRAME" },{ "maths.lib/license": "LGPL with exception" },{ "maths.lib/name": "Faust Math Library" },{ "maths.lib/version": "2.8.1" },{ "name": "eoc-master" },{ "platform.lib/name": "Generic Platform Library" },{ "platform.lib/version": "1.3.0" }],"ui": [ {"type": "vgroup","label": "eoc-master","items": [ {"type": "nentry","label": "dc_block","varname": "fEntry0","shortname": "dc_block","address": "/eoc-master/dc_block","index": 40,"init": 1,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "gain","varname": "fHslider2","shortname": "gain","address": "/eoc-master/gain","index": 64,"init": 1,"min": 0,"max": 2,"step": 0.001},{"type": "hslider","label": "limiter_thresh","varname": "fHslider0","shortname": "limiter_thresh","address": "/eoc-master/limiter_thresh","index": 0,"meta": [{ "unit": "dB" }],"init": -1,"min": -12,"max": 0,"step": 0.1},{"type": "hslider","label": "width","varname": "fHslider1","shortname": "width","address": "/eoc-master/width","index": 60,"init": 1,"min": 0,"max": 2,"step": 0.001}]}]} \ No newline at end of file diff --git a/playground/faust/eoc-master.wasm b/playground/faust/eoc-master.wasm index 449d0ee3cc90e548f17a34a6124c17cd408e6ca7..ae6eef722480689fbff94b0fd6eaca7109887359 100644 GIT binary patch literal 8739 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" },{ "filters.lib/allpass_comb:license": "MIT-style STK-4.3 license" },{ "filters.lib/lowpass0_highpass1": "MIT-style STK-4.3 license" },{ "filters.lib/lowpass0_highpass1:author": "Julius O. Smith III" },{ "filters.lib/lowpass:author": "Julius O. Smith III" },{ "filters.lib/lowpass:copyright": "Copyright (C) 2003-2019 by Julius O. Smith III " },{ "filters.lib/lowpass:license": "MIT-style STK-4.3 license" },{ "filters.lib/name": "Faust Filters Library" },{ "filters.lib/tf1:author": "Julius O. Smith III" },{ "filters.lib/tf1:copyright": "Copyright (C) 2003-2019 by Julius O. Smith III " },{ "filters.lib/tf1:license": "MIT-style STK-4.3 license" },{ "filters.lib/tf1s:author": "Julius O. Smith III" },{ "filters.lib/tf1s:copyright": "Copyright (C) 2003-2019 by Julius O. Smith III " },{ "filters.lib/tf1s:license": "MIT-style STK-4.3 license" },{ "filters.lib/version": "1.7.1" },{ "maths.lib/author": "GRAME" },{ "maths.lib/copyright": "GRAME" },{ "maths.lib/license": "LGPL with exception" },{ "maths.lib/name": "Faust Math Library" },{ "maths.lib/version": "2.9.0" },{ "name": "eoc-reverb" },{ "platform.lib/name": "Generic Platform Library" },{ "platform.lib/version": "1.3.0" },{ "reverbs.lib/name": "Faust Reverb Library" },{ "reverbs.lib/version": "1.5.1" },{ "routes.lib/hadamard:author": "Remy Muller, revised by Romain Michon" },{ "routes.lib/name": "Faust Signal Routing Library" },{ "routes.lib/version": "1.2.0" },{ "signals.lib/name": "Faust Signal Routing Library" },{ "signals.lib/version": "1.6.0" }],"ui": [ {"type": "vgroup","label": "eoc-reverb","items": [ {"type": "hslider","label": "decay","varname": "fHslider0","shortname": "decay","address": "/eoc-reverb/decay","index": 0,"meta": [{ "unit": "s" }],"init": 3,"min": 0.1,"max": 20,"step": 0.1},{"type": "hslider","label": "diffusion","varname": "fHslider4","shortname": "diffusion","address": "/eoc-reverb/diffusion","index": 262212,"init": 0.7,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "hi_damp","varname": "fHslider1","shortname": "hi_damp","address": "/eoc-reverb/hi_damp","index": 20,"init": 0.5,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "lo_damp","varname": "fHslider2","shortname": "lo_damp","address": "/eoc-reverb/lo_damp","index": 28,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "mix","varname": "fHslider7","shortname": "mix","address": "/eoc-reverb/mix","index": 2048500,"init": 0.2,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "predelay","varname": "fHslider5","shortname": "predelay","address": "/eoc-reverb/predelay","index": 393288,"meta": [{ "unit": "ms" }],"init": 0,"min": 0,"max": 100,"step": 0.5},{"type": "hslider","label": "size","varname": "fHslider3","shortname": "size","address": "/eoc-reverb/size","index": 44,"init": 0.5,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "width","varname": "fHslider6","shortname": "width","address": "/eoc-reverb/width","index": 2048496,"init": 0.8,"min": 0,"max": 1,"step": 0.001}]}]} \ No newline at end of file +{"name": "eoc-reverb","filename": "eoc-reverb.dsp","version": "2.79.3","compile_options": "-lang wasm -ct 1 -cn eoc_reverb -es 1 -mcd 16 -mdd 1024 -mdy 33 -single -ftz 0","library_list": ["/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust/stdfaust.lib","/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust/maths.lib","/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust/platform.lib","/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust/reverbs.lib","/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust/delays.lib","/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust/basics.lib","/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust/signals.lib","/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust/filters.lib","/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust/routes.lib"],"include_pathnames": ["/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust","/usr/local/share/faust","/usr/share/faust",".","/home/w1n5t0n/src/MEMLNaut-NISPS/playground/faust"],"size": 2048504,"code": "Ly8gZW9jLXJldmVyYi5kc3Ag4oCUIFN0ZXJlbyByZXZlcmIgZm9yIE1FTUxOYXV0IEVPQyBjaGFpbgovLwovLyA5IHBhcmFtczogcHJlZGVsYXksIHNpemUsIGRpZmZ1c2lvbiwgaGlfZGFtcCwgbG9fZGFtcCwgZGVjYXksIG1peCwgd2lkdGgsIG1vZF9yYXRlCi8vCi8vIFVzZXMgcmUueml0YV9yZXYxX3N0ZXJlbyBmb3IgdGhlIGNvcmUgcmV2ZXJiIGFsZ29yaXRobS4KLy8KLy8gQ29tcGlsZToKLy8gICBmYXVzdCAtbGFuZyB3YXNtIC1jbiBlb2NfcmV2ZXJiIC1qc29uIGVvYy1yZXZlcmIuZHNwIC1vIGVvYy1yZXZlcmIud2FzbQoKaW1wb3J0KCJzdGRmYXVzdC5saWIiKTsKCnByZWRlbGF5ID0gaHNsaWRlcigicHJlZGVsYXlbdW5pdDptc10iLCAgMC4wLCAgIDAuMCwgIDEwMC4wLCAgMC41KTsKc2l6ZSAgICAgPSBoc2xpZGVyKCJzaXplIiwgICAgICAgICAgICAgIDAuNSwgICAwLjAsICAgIDEuMCwgIDAuMDAxKTsKZGlmZnVzaW9uPSBoc2xpZGVyKCJkaWZmdXNpb24iLCAgICAgICAgIDAuNywgICAwLjAsICAgIDEuMCwgIDAuMDAxKTsKaGlfZGFtcCAgPSBoc2xpZGVyKCJoaV9kYW1wIiwgICAgICAgICAgIDAuNSwgICAwLjAsICAgIDEuMCwgIDAuMDAxKTsKbG9fZGFtcCAgPSBoc2xpZGVyKCJsb19kYW1wIiwgICAgICAgICAgIDAuMCwgICAwLjAsICAgIDEuMCwgIDAuMDAxKTsKZGVjYXkgICAgPSBoc2xpZGVyKCJkZWNheVt1bml0OnNdIiwgICAgICAzLjAsICAgMC4xLCAgIDIwLjAsICAwLjEpOwptaXggICAgICA9IGhzbGlkZXIoIm1peCIsICAgICAgICAgICAgICAgMC4yLCAgIDAuMCwgICAgMS4wLCAgMC4wMDEpOwp3aWR0aCAgICA9IGhzbGlkZXIoIndpZHRoIiwgICAgICAgICAgICAgMC44LCAgIDAuMCwgICAgMS4wLCAgMC4wMDEpOwptb2RfcmF0ZSA9IGhzbGlkZXIoIm1vZF9yYXRlW3VuaXQ6SHpdIiwgMC41LCAgIDAuMCwgICAgNS4wLCAgMC4wMSk7CgovLyBQcmUtZGVsYXkgaW4gc2FtcGxlcyAobWluaW11bSAxKQpwZFNhbXBzID0gbWF4KDEsIGludChwcmVkZWxheSAvIDEwMDAuMCAqIG1hLlNSKSk7CgovLyBGcmVxdWVuY3kgY3Jvc3NvdmVycyBmb3Igeml0YQpmMSAgID0gMjAwLjAgKyBsb19kYW1wICogMTgwMC4wOwpmMiAgID0gMjAwMDAuMCAtIGhpX2RhbXAgKiAxODAwMC4wOwoKLy8gUmV2ZXJiIGRlY2F5IHRpbWVzIHNjYWxlZCBieSBzaXplCnQ2MGRjID0gZGVjYXkgKiAoMS4wICsgc2l6ZSAqIDAuNSk7CnQ2MG0gID0gZGVjYXk7CgovLyBQcmUtZGVsYXk6IHNpbmdsZSBjaGFubmVsCnByZWRlbGF5TGluZSA9IF8gQCBwZFNhbXBzOwoKLy8gV2lkdGggcHJvY2Vzc2luZzogTS9TIGVuY29kZS1zY2FsZS1kZWNvZGUKLy8gTCBSIOKGkiBMJyBSJyB3aGVyZSBzaWRlIGNoYW5uZWxzIHNjYWxlZCBieSB3aWR0aAp3aWR0aEwobCwgcikgPSAobCArIHIpICogMC41ICsgKGwgLSByKSAqIDAuNSAqIHdpZHRoOwp3aWR0aFIobCwgcikgPSAobCArIHIpICogMC41IC0gKGwgLSByKSAqIDAuNSAqIHdpZHRoOwoKLy8gV2V0IHNpZ25hbCB0aHJvdWdoIHByZWRlbGF5LCBkaWZmdXNpb24gc2NhbGUsIGFuZCB6aXRhIHJldmVyYgp3ZXRMKGluTCwgaW5SKSA9IChyZS56aXRhX3JldjFfc3RlcmVvKDAuMCwgZjEsIGYyLCB0NjBkYywgdDYwbSwgMTkyMDAwLjAsCiAgICAgICAgICAgICAgICAgICAgaW5MICogZGlmZnVzaW9uIEAgcGRTYW1wcywKICAgICAgICAgICAgICAgICAgICBpblIgKiBkaWZmdXNpb24gQCBwZFNhbXBzKSkgOiB3aWR0aEw7Cgp3ZXRSKGluTCwgaW5SKSA9IChyZS56aXRhX3JldjFfc3RlcmVvKDAuMCwgZjEsIGYyLCB0NjBkYywgdDYwbSwgMTkyMDAwLjAsCiAgICAgICAgICAgICAgICAgICAgaW5MICogZGlmZnVzaW9uIEAgcGRTYW1wcywKICAgICAgICAgICAgICAgICAgICBpblIgKiBkaWZmdXNpb24gQCBwZFNhbXBzKSkgOiB3aWR0aFI7Cgpwcm9jZXNzKGluTCwgaW5SKSA9CiAgICBpbkwgKiAoMS4wIC0gbWl4KSArIHdldEwoaW5MLCBpblIpICogbWl4LAogICAgaW5SICogKDEuMCAtIG1peCkgKyB3ZXRSKGluTCwgaW5SKSAqIG1peDsK","inputs": 2,"outputs": 2,"meta": [ { "basics.lib/name": "Faust Basic Element Library" },{ "basics.lib/version": "1.21.0" },{ "compile_options": "-lang wasm -ct 1 -cn eoc_reverb -es 1 -mcd 16 -mdd 1024 -mdy 33 -single -ftz 0" },{ "delays.lib/name": "Faust Delay Library" },{ "delays.lib/version": "1.1.0" },{ "filename": "eoc-reverb.dsp" },{ "filters.lib/allpass_comb:author": "Julius O. Smith III" },{ "filters.lib/allpass_comb:copyright": "Copyright (C) 2003-2019 by Julius O. Smith III " },{ "filters.lib/allpass_comb:license": "MIT-style STK-4.3 license" },{ "filters.lib/lowpass0_highpass1": "MIT-style STK-4.3 license" },{ "filters.lib/lowpass0_highpass1:author": "Julius O. Smith III" },{ "filters.lib/lowpass:author": "Julius O. Smith III" },{ "filters.lib/lowpass:copyright": "Copyright (C) 2003-2019 by Julius O. Smith III " },{ "filters.lib/lowpass:license": "MIT-style STK-4.3 license" },{ "filters.lib/name": "Faust Filters Library" },{ "filters.lib/tf1:author": "Julius O. Smith III" },{ "filters.lib/tf1:copyright": "Copyright (C) 2003-2019 by Julius O. Smith III " },{ "filters.lib/tf1:license": "MIT-style STK-4.3 license" },{ "filters.lib/tf1s:author": "Julius O. Smith III" },{ "filters.lib/tf1s:copyright": "Copyright (C) 2003-2019 by Julius O. Smith III " },{ "filters.lib/tf1s:license": "MIT-style STK-4.3 license" },{ "filters.lib/version": "1.7.1" },{ "maths.lib/author": "GRAME" },{ "maths.lib/copyright": "GRAME" },{ "maths.lib/license": "LGPL with exception" },{ "maths.lib/name": "Faust Math Library" },{ "maths.lib/version": "2.8.1" },{ "name": "eoc-reverb" },{ "platform.lib/name": "Generic Platform Library" },{ "platform.lib/version": "1.3.0" },{ "reverbs.lib/name": "Faust Reverb Library" },{ "reverbs.lib/version": "1.4.0" },{ "routes.lib/hadamard:author": "Remy Muller, revised by Romain Michon" },{ "routes.lib/name": "Faust Signal Routing Library" },{ "routes.lib/version": "1.2.0" },{ "signals.lib/name": "Faust Signal Routing Library" },{ "signals.lib/version": "1.6.0" }],"ui": [ {"type": "vgroup","label": "eoc-reverb","items": [ {"type": "hslider","label": "decay","varname": "fHslider0","shortname": "decay","address": "/eoc-reverb/decay","index": 0,"meta": [{ "unit": "s" }],"init": 3,"min": 0.1,"max": 20,"step": 0.1},{"type": "hslider","label": "diffusion","varname": "fHslider4","shortname": "diffusion","address": "/eoc-reverb/diffusion","index": 262212,"init": 0.7,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "hi_damp","varname": "fHslider1","shortname": "hi_damp","address": "/eoc-reverb/hi_damp","index": 20,"init": 0.5,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "lo_damp","varname": "fHslider2","shortname": "lo_damp","address": "/eoc-reverb/lo_damp","index": 28,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "mix","varname": "fHslider7","shortname": "mix","address": "/eoc-reverb/mix","index": 2048500,"init": 0.2,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "predelay","varname": "fHslider5","shortname": "predelay","address": "/eoc-reverb/predelay","index": 393288,"meta": [{ "unit": "ms" }],"init": 0,"min": 0,"max": 100,"step": 0.5},{"type": "hslider","label": "size","varname": "fHslider3","shortname": "size","address": "/eoc-reverb/size","index": 44,"init": 0.5,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "width","varname": "fHslider6","shortname": "width","address": "/eoc-reverb/width","index": 2048496,"init": 0.8,"min": 0,"max": 1,"step": 0.001}]}]} \ No newline at end of file diff --git a/playground/faust/eoc-reverb.wasm b/playground/faust/eoc-reverb.wasm index 6357d1b7e61346cf5cc7c0678aad3e01d836c792..4b92e7a9d5f687e10f6aa59a6bd161e519fc6b09 100644 GIT binary patch delta 593 zcmey@$+*9haYMg4_v&2@4GfG7jttyOCeKoLVllVWGoJiFU1_qQMxt(IR$)Q1QKDIr zQLceSRe5<)dT~llVR5F3L9S_eUO|CwT4HH&iLQ|zSl4_FbrN-a)=(i)hl?hucFfRJ zBhil6nyMt~u+<_}N52-Su6jhW4pVI#68$kxJ7KfDjuAJb;p8B54PX**o_xmKo6}Iw mKuMuir&?k1Ms=CZHWn(Z%ocivlap-^Fq`NZY*w?o!3F^S{>i%l delta 640 zcmdnr$@s66aYMg4_p4nE4GfG7jttz7C(lxMVzDsRGo1WDU5PiXAU#nxH#JwcBtyYu zl18#_T3%LCVop_hvROe^u0>9wk)=^`a#clPQjvi{VQylXZdzh#afz;x9@vNp8tNqK zc%q>~q7G9{Qtjx}R3p)jJDRE_>d@07RY!vssjj+AvJN$E8xsA|ubrTvmzknpdKmXkwI{mTG9U`JJ{gH>1&HC36k*1miln*W8=YX!A{T4_0PN UJ%h" }, - { "filters.lib/lowpass0_highpass1:author": "Julius O. Smith III" }, - { "filters.lib/lowpass:author": "Julius O. Smith III" }, - { "filters.lib/lowpass:copyright": "Copyright (C) 2003-2019 by Julius O. Smith III " }, - { "filters.lib/lowpass:license": "MIT-style STK-4.3 license" }, - { "filters.lib/name": "Faust Filters Library" }, - { "filters.lib/tf1:author": "Julius O. Smith III" }, - { "filters.lib/tf1:copyright": "Copyright (C) 2003-2019 by Julius O. Smith III " }, - { "filters.lib/tf1:license": "MIT-style STK-4.3 license" }, - { "filters.lib/tf1s:author": "Julius O. Smith III" }, - { "filters.lib/tf1s:copyright": "Copyright (C) 2003-2019 by Julius O. Smith III " }, - { "filters.lib/tf1s:license": "MIT-style STK-4.3 license" }, - { "filters.lib/version": "1.7.1" }, - { "maths.lib/author": "GRAME" }, - { "maths.lib/copyright": "GRAME" }, - { "maths.lib/license": "LGPL with exception" }, - { "maths.lib/name": "Faust Math Library" }, - { "maths.lib/version": "2.9.0" }, - { "name": "eoc-saturation" }, - { "platform.lib/name": "Generic Platform Library" }, - { "platform.lib/version": "1.3.0" } - ], - "ui": [ - { - "type": "vgroup", - "label": "eoc-saturation", - "items": [ - { - "type": "hslider", - "label": "character", - "varname": "fHslider1", - "shortname": "character", - "address": "/eoc-saturation/character", - "init": 0, - "min": 0, - "max": 1, - "step": 0.001 - }, - { - "type": "hslider", - "label": "drive", - "varname": "fHslider0", - "shortname": "drive", - "address": "/eoc-saturation/drive", - "init": 0, - "min": 0, - "max": 1, - "step": 0.001 - }, - { - "type": "hslider", - "label": "mix", - "varname": "fHslider3", - "shortname": "mix", - "address": "/eoc-saturation/mix", - "init": 1, - "min": 0, - "max": 1, - "step": 0.001 - }, - { - "type": "hslider", - "label": "tone", - "varname": "fHslider2", - "shortname": "tone", - "address": "/eoc-saturation/tone", - "init": 0.5, - "min": 0, - "max": 1, - "step": 0.001 - } - ] - } - ] -} \ No newline at end of file +{"name": "eoc-saturation","filename": "eoc-saturation.dsp","version": "2.79.3","compile_options": "-lang wasm -ct 1 -cn eoc_saturation -es 1 -mcd 16 -mdd 1024 -mdy 33 -single -ftz 0","library_list": ["/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust/stdfaust.lib","/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust/maths.lib","/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust/filters.lib","/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust/platform.lib"],"include_pathnames": ["/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust","/usr/local/share/faust","/usr/share/faust",".","/home/w1n5t0n/src/MEMLNaut-NISPS/playground/faust"],"size": 56,"code": "Ly8gZW9jLXNhdHVyYXRpb24uZHNwIOKAlCBTdGVyZW8gc2F0dXJhdGlvbiBlZmZlY3QgZm9yIHRoZSBFT0MgcmFjay4KLy8KLy8gUGFyYW1ldGVycyAoNCk6Ci8vICAgZHJpdmUgICAgIFswLjAsIDAtMV0gICAwPWNsZWFuLCAxPWZ1bGwgZHJpdmUKLy8gICBjaGFyYWN0ZXIgWzAuMCwgMC0xXSAgIDA9c29mdC1jbGlwL3RhbmgsIDAuNT10YXBlL2FzeW1tZXRyaWMsIDE9aGFyZC1jbGlwCi8vICAgdG9uZSAgICAgIFswLjUsIDAtMV0gICBwb3N0LXNhdHVyYXRpb24gdG9uZTogMD1kYXJrIChMUCksIDE9YnJpZ2h0IChIUCBibGVuZCkKLy8gICBtaXggICAgICAgWzEuMCwgMC0xXSAgIGRyeS93ZXQgZm9yIHBhcmFsbGVsIHNhdHVyYXRpb24KCmltcG9ydCgic3RkZmF1c3QubGliIik7CgovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLy8gVUkKLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpkcml2ZSAgICAgPSBoc2xpZGVyKCJkcml2ZSIsICAgICAwLjAsIDAsIDEsIDAuMDAxKTsKY2hhcmFjdGVyID0gaHNsaWRlcigiY2hhcmFjdGVyIiwgMC4wLCAwLCAxLCAwLjAwMSk7CnRvbmUgICAgICA9IGhzbGlkZXIoInRvbmUiLCAgICAgIDAuNSwgMCwgMSwgMC4wMDEpOwptaXggICAgICAgPSBoc2xpZGVyKCJtaXgiLCAgICAgICAxLjAsIDAsIDEsIDAuMDAxKTsKCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQovLyBTYXR1cmF0aW9uIHNoYXBlcwovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCmRyaXZlR2FpbiA9IDEuMCArIGRyaXZlICogMTUuMDsgICAvLyAxeCB0byAxNnggZ2FpbiBiZWZvcmUgY2xpcHBpbmcKCi8vIFNvZnQgY2xpcDogdGFuaApzb2Z0Q2xpcCh4KSA9IG1hLnRhbmgoeCk7CgovLyBUYXBlOiBhc3ltbWV0cmljIHdhdmVzaGFwZXIg4oCUIHNsaWdodGx5IGhhcmRlciBjbGlwcGluZyBvbiBwb3NpdGl2ZSBwZWFrcwovLyBCbGVuZHMgdGFuaCB3aXRoIGEgZ2VudGxlIHNlY29uZC1oYXJtb25pYyBiaWFzCnRhcGVDbGlwKHgpID0gc29mdENsaXAoeCAqIDEuMikgKiAwLjU1ICsgc29mdENsaXAoeCkgKiAwLjQ1ICsgeCAqIHggKiAwLjA0ICogKDEuMCAtIHNvZnRDbGlwKGFicyh4KSkpOwoKLy8gSGFyZCBjbGlwOiBzaW1wbGUgc2F0dXJhdGUKaGFyZENsaXAoeCkgPSBtYXgoLTEuMCwgbWluKDEuMCwgeCkpOwoKLy8gQ2hhcmFjdGVyIGNyb3NzZmFkZSBiZXR3ZWVuIHRoZSB0aHJlZSBzaGFwZXM6Ci8vICAgYz0wLjAgIOKGkiBzb2Z0ICh0YW5oKQovLyAgIGM9MC41ICDihpIgdGFwZSAoYXN5bW1ldHJpYykKLy8gICBjPTEuMCAg4oaSIGhhcmQgY2xpcApzYXR1cmF0ZShjLCB4KSA9CiAgICBzb2Z0Q2xpcCh4KSAqIChtYXgoMC4wLCAxLjAgLSBjICogMi4wKSkgKwogICAgdGFwZUNsaXAoeCkgKiAoMS4wIC0gYWJzKGMgLSAwLjUpICogMi4wKSArCiAgICBoYXJkQ2xpcCh4KSAqIG1heCgwLjAsIChjIC0gMC41KSAqIDIuMCk7CgovLyBBcHBseSBkcml2ZSwgc2F0dXJhdGUsIGFuZCBub3JtYWxpc2Ugb3V0cHV0IGxldmVsCnByb2Nlc3NDaGFubmVsKHgpID0gc2F0dXJhdGUoY2hhcmFjdGVyLCB4ICogZHJpdmVHYWluKSAvIG1heCgwLjAwMSwgc3FydChkcml2ZUdhaW4pKTsKCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQovLyBUb25lIGNvbnRyb2w6IExQL0hQIGJsZW5kIHZpYSBvbmUtcG9sZSBmaWx0ZXJzCi8vCi8vIHRvbmU9MC4wICDihpIgZGFyayAoNDAwSHogTFApCi8vIHRvbmU9MC41ICDihpIgZmxhdCAocGFzc3Rocm91Z2gpCi8vIHRvbmU9MS4wICDihpIgYnJpZ2h0ICg4a0h6IEhQIGJsZW5kKQovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCnRvbmVGcmVxTFAgPSA0MDAuMCArIHRvbmUgKiAxOTYwMC4wOyAgIC8vIDQwMEh6IHRvIDIwa0h6IChmdWxseSBvcGVuIGF0IHRvbmU9MSkKdG9uZUZyZXFIUCA9IDIwMC4wICsgdG9uZSAqIDc4MDAuMDsgICAgLy8gMjAwSHogdG8gOGtIegoKYXBwbHlUb25lKHgpID0gZmkubG93cGFzcygxLCB0b25lRnJlcUxQLCB4KTsKCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQovLyBNYWluIHByb2Nlc3M6IHN0ZXJlbyBzYXR1cmF0aW9uIHdpdGggcGFyYWxsZWwgZHJ5L3dldCBtaXgKLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpwcm9jZXNzKGluTCwgaW5SKSA9IG91dEwsIG91dFIKd2l0aCB7CiAgICB3ZXRMID0gYXBwbHlUb25lKHByb2Nlc3NDaGFubmVsKGluTCkpOwogICAgd2V0UiA9IGFwcGx5VG9uZShwcm9jZXNzQ2hhbm5lbChpblIpKTsKICAgIG91dEwgPSBpbkwgKiAoMS4wIC0gbWl4KSArIHdldEwgKiBtaXg7CiAgICBvdXRSID0gaW5SICogKDEuMCAtIG1peCkgKyB3ZXRSICogbWl4Owp9Owo=","inputs": 2,"outputs": 2,"meta": [ { "compile_options": "-lang wasm -ct 1 -cn eoc_saturation -es 1 -mcd 16 -mdd 1024 -mdy 33 -single -ftz 0" },{ "filename": "eoc-saturation.dsp" },{ "filters.lib/lowpass0_highpass1": "Copyright (C) 2003-2019 by Julius O. Smith III " },{ "filters.lib/lowpass0_highpass1:author": "Julius O. Smith III" },{ "filters.lib/lowpass:author": "Julius O. Smith III" },{ "filters.lib/lowpass:copyright": "Copyright (C) 2003-2019 by Julius O. Smith III " },{ "filters.lib/lowpass:license": "MIT-style STK-4.3 license" },{ "filters.lib/name": "Faust Filters Library" },{ "filters.lib/tf1:author": "Julius O. Smith III" },{ "filters.lib/tf1:copyright": "Copyright (C) 2003-2019 by Julius O. Smith III " },{ "filters.lib/tf1:license": "MIT-style STK-4.3 license" },{ "filters.lib/tf1s:author": "Julius O. Smith III" },{ "filters.lib/tf1s:copyright": "Copyright (C) 2003-2019 by Julius O. Smith III " },{ "filters.lib/tf1s:license": "MIT-style STK-4.3 license" },{ "filters.lib/version": "1.7.1" },{ "maths.lib/author": "GRAME" },{ "maths.lib/copyright": "GRAME" },{ "maths.lib/license": "LGPL with exception" },{ "maths.lib/name": "Faust Math Library" },{ "maths.lib/version": "2.8.1" },{ "name": "eoc-saturation" },{ "platform.lib/name": "Generic Platform Library" },{ "platform.lib/version": "1.3.0" }],"ui": [ {"type": "vgroup","label": "eoc-saturation","items": [ {"type": "hslider","label": "character","varname": "fHslider1","shortname": "character","address": "/eoc-saturation/character","index": 4,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "drive","varname": "fHslider0","shortname": "drive","address": "/eoc-saturation/drive","index": 0,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "mix","varname": "fHslider3","shortname": "mix","address": "/eoc-saturation/mix","index": 36,"init": 1,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "tone","varname": "fHslider2","shortname": "tone","address": "/eoc-saturation/tone","index": 16,"init": 0.5,"min": 0,"max": 1,"step": 0.001}]}]} \ No newline at end of file diff --git a/playground/faust/eoc-saturation.wasm b/playground/faust/eoc-saturation.wasm index ee4405d0e08d82e2e868c4eeea282f68d5316695..db88369eba4fe96b9311d9eb8f3d2520b1b0de8e 100644 GIT binary patch literal 8239 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 GefGcILcl8k literal 7111 zcmeHLTTk3L6n^ioILcE}5>Ju=7AT9hstTeD+G^?JN|DFokf7X%Juvj4zkQFLD{VlX zAsrRO!z4~@pYMF<=98Iome7*J4KGEUXJGhbZ%RDl-J5wm!}7F<6CUJ+#03HjN5t7> z!od-YCg89Pc+LVr<)Wl&2~4thIT121`6SG)W;FSF$##pYbT6U)zR%d#<@Ky|-RqRz zI3ZmK=~SSTS)5Ju3vd#eUBWFDDL7oocRKlGE(&n+@87D$J++f~R?_k=D5#8FFxJ*d zL};E$E95lS>Jb$F0F*ZpRElbgM{xX+aKbo|==w*HrXwL036)`9rr$xK0z9KB2jfRC z_iSA28KC8ZB)=`F5N;5~mysHw(LdzHU5Sqp%nug$t~+&n*V~8L9ei3O@j}2q1TNB8 zMsRw13Wry@_=~YJr9?=YpdpN;97a~SS2?cS0M&xRYpFrLx$cOmQlMlW)%gtwncEWSdXCC zC_}M6#r6#G$RGEP5M9i4>NZ((^6&fekG)9fR`k62@S@fWXD6S};8tZdUox&ws6nay zcs$3_IuMMV3M~(x>=U;qZ>Uc7rke_RWhIS;9c+N}HNaLkpgMJ6Dn(4-_7g}%tj=H?HY~0?LV74OW zWqiX?NVR=Hi0$p5WGw|RTUs6t!f=r>b@-cMl2Zv-Q=_mNTlS$cEs2h7!>|xrORZGz zfEgaMl;KhID7fFl)?8A${3Vnu+atcFxf(f_?Cez5K^wOo>S%7jzAo9WRnQL7z8*^x z^xkNqP&w7CRTDEF0L~KM_Wj?(x`La&qXN)fuiK#4>hptAENfH zidiM!bSi{#nJejOoar0pN0V{u(zs8c&A6HZIuMIXW2&_a2}%>!rEGM@#|i#|!vixw zGhwN75kkfCF7fxK-X5lzZEo`|*T;K{D)X$WUN}2c0x_%icX3l4a+(5ObR4#Mi)(yb zqX4vDLWZ9`SkR;yXA;5-nidIu0Uek8+J>gK^%Sp7uk^=VYGR@;tIlj!*qdtu(GPaJENKCZ1L*bLTHs;z-5cY%$Bu8eM= zOZl~3;7F9l=>kVm28-+pUG`uXIFcq<9ow*bV$f6v<4_kklCEgA=hg*|#9VhIuU+8a oH|%Q{`1F4EwF_+icln*aI{IFE?E-(dZ^F(yPv`)o6G0gXeJQUCw| diff --git a/playground/faust/faust-worklet-processor.js b/playground/faust/faust-worklet-processor.js index 493ec39..b3ce032 100644 --- a/playground/faust/faust-worklet-processor.js +++ b/playground/faust/faust-worklet-processor.js @@ -26,9 +26,47 @@ class FaustWorkletProcessor extends AudioWorkletProcessor { this._ready = false; this._paramValues = {}; // index → current value (raw Faust units) + // Messages that arrive before init() finishes are buffered here and + // drained by _drainPendingMessages() in order once the subclass sets + // _ready = true. Subclasses with extended _handleMessage() should call + // _queueIfNotReady(msg) as their first line to participate. + this._pendingMessages = []; + this.port.onmessage = (e) => this._handleMessage(e.data); } + // --------------------------------------------------------------------------- + // Pre-ready message buffering + // --------------------------------------------------------------------------- + + /** + * Returns true if the message was queued (processor not ready yet). + * Subclasses should call this at the top of their _handleMessage override + * after the 'init' special case, before touching _dspInst. + */ + _queueIfNotReady(msg) { + if (this._ready) return false; + if (!msg || msg.type === 'init') return false; + this._pendingMessages.push(msg); + return true; + } + + /** Drain all buffered pre-ready messages, in arrival order. */ + _drainPendingMessages() { + if (this._pendingMessages.length === 0) return; + const pending = this._pendingMessages; + this._pendingMessages = []; + for (const msg of pending) { + try { this._handleMessage(msg); } + catch (err) { + this.port.postMessage({ + type: 'error', + message: 'drain failed: ' + String(err), + }); + } + } + } + // --------------------------------------------------------------------------- // Message handler (runs in worklet thread) // --------------------------------------------------------------------------- @@ -36,18 +74,22 @@ class FaustWorkletProcessor extends AudioWorkletProcessor { _handleMessage(msg) { if (!msg || !msg.type) return; - switch (msg.type) { - case 'init': - this._initWasm(msg.wasmBytes, msg.sampleRate || sampleRate) - .then(() => { - this._ready = true; - this.port.postMessage({ type: 'ready' }); - }) - .catch((err) => { - this.port.postMessage({ type: 'error', message: String(err) }); - }); - break; + if (msg.type === 'init') { + this._initWasm(msg.wasmBytes, msg.sampleRate || sampleRate) + .then(() => { + this._ready = true; + this.port.postMessage({ type: 'ready' }); + this._drainPendingMessages(); + }) + .catch((err) => { + this.port.postMessage({ type: 'error', message: String(err) }); + }); + return; + } + if (this._queueIfNotReady(msg)) return; + + switch (msg.type) { case 'setParam': this._paramValues[msg.index] = msg.value; this._onSetParam(msg.index, msg.value); diff --git a/playground/faust/fm-matrix.json b/playground/faust/fm-matrix.json index dd05eba..0cbea0e 100644 --- a/playground/faust/fm-matrix.json +++ b/playground/faust/fm-matrix.json @@ -1 +1 @@ -{"name": "fm-matrix","filename": "fm-matrix.dsp","version": "2.83.1","compile_options": "-lang wasm -fpga-mem-th 4 -ct 1 -cn fm_matrix -es 1 -mcd 16 -mdd 1024 -mdy 33 -single -ftz 0","library_list": ["/nix/store/fnjbalzgc6pjm8la292cczxqbr00qmav-faust-2.83.1/share/faust/stdfaust.lib","/nix/store/fnjbalzgc6pjm8la292cczxqbr00qmav-faust-2.83.1/share/faust/signals.lib","/nix/store/fnjbalzgc6pjm8la292cczxqbr00qmav-faust-2.83.1/share/faust/maths.lib","/nix/store/fnjbalzgc6pjm8la292cczxqbr00qmav-faust-2.83.1/share/faust/platform.lib","/nix/store/fnjbalzgc6pjm8la292cczxqbr00qmav-faust-2.83.1/share/faust/envelopes.lib","/nix/store/fnjbalzgc6pjm8la292cczxqbr00qmav-faust-2.83.1/share/faust/oscillators.lib","/nix/store/fnjbalzgc6pjm8la292cczxqbr00qmav-faust-2.83.1/share/faust/filters.lib","/nix/store/fnjbalzgc6pjm8la292cczxqbr00qmav-faust-2.83.1/share/faust/basics.lib"],"include_pathnames": ["/nix/store/fnjbalzgc6pjm8la292cczxqbr00qmav-faust-2.83.1/share/faust","/usr/local/share/faust","/usr/share/faust",".","/home/w1n5t0n/src/MEMLNaut-NISPS/playground/faust"],"size": 344892,"code": "Ly8gZm0tbWF0cml4LmRzcCDigJQgRnVsbCA1Ni1wYXJhbWV0ZXIgNC1vcGVyYXRvciBGTSBzeW50aGVzaXplciB3aXRoIGNvbnRpbnVvdXMgcm91dGluZyBtYXRyaXgKLy8KLy8gRGVzaWduOiA0IG9wZXJhdG9ycyB3aXRoIGZ1bGx5IGNvbnRpbnVvdXMgTsOXTiBjcm9zcy1tb2R1bGF0aW9uIG1hdHJpeC4KLy8gTm8gZml4ZWQgYWxnb3JpdGhtIHNsb3RzIOKAlCB0aGUgYWxnb3JpdGhtIGVtZXJnZXMgZnJvbSBtb2R1bGF0aW9uIGluZGV4IHZhbHVlcy4KLy8gV2hlbiBhbGwgcm91dGluZyBtYXRyaXggaW5kaWNlcyBhcmUgbmVhciAwOiBhZGRpdGl2ZSBzeW50aGVzaXMuCi8vIEFzIGluZGljZXMgZ3JvdzogaW5jcmVhc2luZ2x5IGNvbXBsZXggRk0gdGltYnJlcyBlbWVyZ2UuCi8vCi8vIFBhcmFtZXRlciBvcmRlcmluZyAoNTYgdG90YWwsIG1hcHMgdG8gTUxQIG91dHB1dCBpbmRpY2VzIDDigJM1NSk6Ci8vICAgMOKAkzIzOiAgT3BlcmF0b3IgQ29yZSDDlyA0IChyYXRpbywgbGV2ZWwsIGF0dGFjaywgZGVjYXksIHN1c3RhaW4sIHJlbGVhc2UpCi8vICAgMjTigJMzNTogQ3Jvc3MtTW9kdWxhdGlvbiBNYXRyaXggKDEyIGRpcmVjdGVkIHBhaXJzKQovLyAgIDM24oCTMzk6IFNlbGYtRmVlZGJhY2sgw5cgNAovLyAgIDQw4oCTNDc6IEdsb2JhbCBNb2R1bGF0aW9uIChMRk8sIHBpdGNoIGVudiwgdmVsb2NpdHkpCi8vICAgNDjigJM1NTogTWFzdGVyIChsZXZlbCwgdmVsIHNlbnMsIGdsaWRlLCBmaW5lIHR1bmUsIHdhdmVmb3JtIGJsZW5kLCBzdGVyZW8gc3ByZWFkLAovLyAgICAgICAgICAgb3V0cHV0IHNhdHVyYXRpb24sIG91dHB1dCBIUCkKLy8KLy8gSGlkZGVuIHBhcmFtcyAobm90IGluIHRoZSA1Ni1wYXJhbSBOSVNQUyBsaXN0KToKLy8gICBmcmVxICDigJQgc2V0IGJ5IG5vdGVPbiAoSHopCi8vICAgZ2F0ZSAg4oCUIHNldCBieSBub3RlT24vbm90ZU9mZiAoMC8xKQovLyAgIF92ZWwgIOKAlCBzZXQgYnkgbm90ZU9uICh2ZWxvY2l0eSAw4oCTMSkKLy8KLy8gRk0gaW1wbGVtZW50YXRpb246IGVhY2ggb3BlcmF0b3IgcGhhc2UtbW9kdWxhdGVzIG90aGVycyB2aWEgYSAxLXNhbXBsZSBkZWxheWVkCi8vIGZlZWRiYWNrIGJ1cy4gVGhlIDQgb3BlcmF0b3Igb3V0cHV0cyBhcmUgY29sbGVjdGVkIGludG8gYSA0LWNoYW5uZWwgYnVzIGFuZAovLyBsb29wZWQgdmlhIH4uIFRoaXMgaXMgdGhlIHN0YW5kYXJkIEZhdXN0IEZNIHBhdHRlcm4uCi8vCi8vIEJ1aWxkOgovLyAgIG5peC1zaGVsbCAtcCBmYXVzdCAtLXJ1biBcCi8vICAgICAiZmF1c3QgLWxhbmcgd2FzbSAtY24gZm1fbWF0cml4IGZtLW1hdHJpeC5kc3AgLW8gZm0tbWF0cml4Lndhc20iCgppbXBvcnQoInN0ZGZhdXN0LmxpYiIpOwoKLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi8vIEhpZGRlbiBjb250cm9sIHBhcmFtcyAoZHJpdmVuIGJ5IG5vdGVPbi9ub3RlT2ZmLCBub3QgTklTUFMpCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKZnJlcSA9IGhzbGlkZXIoIk1hc3Rlci9mcmVxW2hpZGRlbjoxXVt1bml0Okh6XSIsIDIyMCwgMjAsIDQwMDAsIDAuMDEpOwpnYXRlID0gYnV0dG9uKCJNYXN0ZXIvZ2F0ZVtoaWRkZW46MV0iKTsKdmVsICA9IGhzbGlkZXIoIk1hc3Rlci9fdmVsW2hpZGRlbjoxXSIsIDAuNywgMC4wLCAxLjAsIDAuMDAxKSA6IHNpLnNtb287CgovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLy8gR3JvdXAgMSDigJQgT3BlcmF0b3IgQ29yZSDDlyA0ICAocGFyYW1zIDDigJMyMykKLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpvcDFfcmF0aW8gICA9IGhzbGlkZXIoIk9wZXJhdG9ycy9PcCAxL29wMV9yYXRpbyIsICAgMS4wLCAwLjEyNSwgMTYuMCwgMC4wMDEpIDogc2kuc21vbzsKb3AxX2xldmVsICAgPSBoc2xpZGVyKCJPcGVyYXRvcnMvT3AgMS9vcDFfbGV2ZWwiLCAgIDAuOCwgMC4wLCAgIDEuMCwgIDAuMDAxKSA6IHNpLnNtb287Cm9wMV9hdHRhY2sgID0gaHNsaWRlcigiT3BlcmF0b3JzL09wIDEvb3AxX2F0dGFjayIsICAwLjAxLCAwLjAwMSwgNS4wLCAwLjAwMSk7Cm9wMV9kZWNheSAgID0gaHNsaWRlcigiT3BlcmF0b3JzL09wIDEvb3AxX2RlY2F5IiwgICAwLjMsIDAuMDAxLCAxMC4wLCAwLjAwMSk7Cm9wMV9zdXN0YWluID0gaHNsaWRlcigiT3BlcmF0b3JzL09wIDEvb3AxX3N1c3RhaW4iLCAwLjcsIDAuMCwgICAxLjAsICAwLjAwMSk7Cm9wMV9yZWxlYXNlID0gaHNsaWRlcigiT3BlcmF0b3JzL09wIDEvb3AxX3JlbGVhc2UiLCAwLjUsIDAuMDEsICAxMC4wLCAwLjAwMSk7CgpvcDJfcmF0aW8gICA9IGhzbGlkZXIoIk9wZXJhdG9ycy9PcCAyL29wMl9yYXRpbyIsICAgMi4wLCAwLjEyNSwgMTYuMCwgMC4wMDEpIDogc2kuc21vbzsKb3AyX2xldmVsICAgPSBoc2xpZGVyKCJPcGVyYXRvcnMvT3AgMi9vcDJfbGV2ZWwiLCAgIDAuNiwgMC4wLCAgIDEuMCwgIDAuMDAxKSA6IHNpLnNtb287Cm9wMl9hdHRhY2sgID0gaHNsaWRlcigiT3BlcmF0b3JzL09wIDIvb3AyX2F0dGFjayIsICAwLjAxLCAwLjAwMSwgNS4wLCAwLjAwMSk7Cm9wMl9kZWNheSAgID0gaHNsaWRlcigiT3BlcmF0b3JzL09wIDIvb3AyX2RlY2F5IiwgICAwLjMsIDAuMDAxLCAxMC4wLCAwLjAwMSk7Cm9wMl9zdXN0YWluID0gaHNsaWRlcigiT3BlcmF0b3JzL09wIDIvb3AyX3N1c3RhaW4iLCAwLjcsIDAuMCwgICAxLjAsICAwLjAwMSk7Cm9wMl9yZWxlYXNlID0gaHNsaWRlcigiT3BlcmF0b3JzL09wIDIvb3AyX3JlbGVhc2UiLCAwLjUsIDAuMDEsICAxMC4wLCAwLjAwMSk7CgpvcDNfcmF0aW8gICA9IGhzbGlkZXIoIk9wZXJhdG9ycy9PcCAzL29wM19yYXRpbyIsICAgMy4wLCAwLjEyNSwgMTYuMCwgMC4wMDEpIDogc2kuc21vbzsKb3AzX2xldmVsICAgPSBoc2xpZGVyKCJPcGVyYXRvcnMvT3AgMy9vcDNfbGV2ZWwiLCAgIDAuNCwgMC4wLCAgIDEuMCwgIDAuMDAxKSA6IHNpLnNtb287Cm9wM19hdHRhY2sgID0gaHNsaWRlcigiT3BlcmF0b3JzL09wIDMvb3AzX2F0dGFjayIsICAwLjAxLCAwLjAwMSwgNS4wLCAwLjAwMSk7Cm9wM19kZWNheSAgID0gaHNsaWRlcigiT3BlcmF0b3JzL09wIDMvb3AzX2RlY2F5IiwgICAwLjMsIDAuMDAxLCAxMC4wLCAwLjAwMSk7Cm9wM19zdXN0YWluID0gaHNsaWRlcigiT3BlcmF0b3JzL09wIDMvb3AzX3N1c3RhaW4iLCAwLjcsIDAuMCwgICAxLjAsICAwLjAwMSk7Cm9wM19yZWxlYXNlID0gaHNsaWRlcigiT3BlcmF0b3JzL09wIDMvb3AzX3JlbGVhc2UiLCAwLjUsIDAuMDEsICAxMC4wLCAwLjAwMSk7CgpvcDRfcmF0aW8gICA9IGhzbGlkZXIoIk9wZXJhdG9ycy9PcCA0L29wNF9yYXRpbyIsICAgMC41LCAwLjEyNSwgMTYuMCwgMC4wMDEpIDogc2kuc21vbzsKb3A0X2xldmVsICAgPSBoc2xpZGVyKCJPcGVyYXRvcnMvT3AgNC9vcDRfbGV2ZWwiLCAgIDAuMywgMC4wLCAgIDEuMCwgIDAuMDAxKSA6IHNpLnNtb287Cm9wNF9hdHRhY2sgID0gaHNsaWRlcigiT3BlcmF0b3JzL09wIDQvb3A0X2F0dGFjayIsICAwLjAxLCAwLjAwMSwgNS4wLCAwLjAwMSk7Cm9wNF9kZWNheSAgID0gaHNsaWRlcigiT3BlcmF0b3JzL09wIDQvb3A0X2RlY2F5IiwgICAwLjMsIDAuMDAxLCAxMC4wLCAwLjAwMSk7Cm9wNF9zdXN0YWluID0gaHNsaWRlcigiT3BlcmF0b3JzL09wIDQvb3A0X3N1c3RhaW4iLCAwLjcsIDAuMCwgICAxLjAsICAwLjAwMSk7Cm9wNF9yZWxlYXNlID0gaHNsaWRlcigiT3BlcmF0b3JzL09wIDQvb3A0X3JlbGVhc2UiLCAwLjUsIDAuMDEsICAxMC4wLCAwLjAwMSk7CgovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLy8gR3JvdXAgMiDigJQgQ3Jvc3MtTW9kdWxhdGlvbiBNYXRyaXggKHBhcmFtcyAyNOKAkzM1KQovLyBtWFkgPSBvcCBYIG1vZHVsYXRlcyBvcCBZIChYJ3Mgb3V0cHV0IGlzIGFkZGVkIHRvIFkncyBwaGFzZSkKLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgptMTIgPSBoc2xpZGVyKCJNYXRyaXgvbTEyIiwgMC4wLCAwLjAsIDEwLjAsIDAuMDAxKSA6IHNpLnNtb287Cm0xMyA9IGhzbGlkZXIoIk1hdHJpeC9tMTMiLCAwLjAsIDAuMCwgMTAuMCwgMC4wMDEpIDogc2kuc21vbzsKbTE0ID0gaHNsaWRlcigiTWF0cml4L20xNCIsIDAuMCwgMC4wLCAxMC4wLCAwLjAwMSkgOiBzaS5zbW9vOwptMjEgPSBoc2xpZGVyKCJNYXRyaXgvbTIxIiwgMS4wLCAwLjAsIDEwLjAsIDAuMDAxKSA6IHNpLnNtb287Cm0yMyA9IGhzbGlkZXIoIk1hdHJpeC9tMjMiLCAwLjAsIDAuMCwgMTAuMCwgMC4wMDEpIDogc2kuc21vbzsKbTI0ID0gaHNsaWRlcigiTWF0cml4L20yNCIsIDAuMCwgMC4wLCAxMC4wLCAwLjAwMSkgOiBzaS5zbW9vOwptMzEgPSBoc2xpZGVyKCJNYXRyaXgvbTMxIiwgMC4wLCAwLjAsIDEwLjAsIDAuMDAxKSA6IHNpLnNtb287Cm0zMiA9IGhzbGlkZXIoIk1hdHJpeC9tMzIiLCAwLjAsIDAuMCwgMTAuMCwgMC4wMDEpIDogc2kuc21vbzsKbTM0ID0gaHNsaWRlcigiTWF0cml4L20zNCIsIDAuMCwgMC4wLCAxMC4wLCAwLjAwMSkgOiBzaS5zbW9vOwptNDEgPSBoc2xpZGVyKCJNYXRyaXgvbTQxIiwgMC4wLCAwLjAsIDEwLjAsIDAuMDAxKSA6IHNpLnNtb287Cm00MiA9IGhzbGlkZXIoIk1hdHJpeC9tNDIiLCAwLjAsIDAuMCwgMTAuMCwgMC4wMDEpIDogc2kuc21vbzsKbTQzID0gaHNsaWRlcigiTWF0cml4L200MyIsIDAuMCwgMC4wLCAxMC4wLCAwLjAwMSkgOiBzaS5zbW9vOwoKLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi8vIEdyb3VwIDMg4oCUIFNlbGYtRmVlZGJhY2sgw5cgNCAgKHBhcmFtcyAzNuKAkzM5KQovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCmZiMSA9IGhzbGlkZXIoIkZlZWRiYWNrL2ZiMSIsIDAuMCwgMC4wLCAxLjAsIDAuMDAxKSA6IHNpLnNtb287CmZiMiA9IGhzbGlkZXIoIkZlZWRiYWNrL2ZiMiIsIDAuMCwgMC4wLCAxLjAsIDAuMDAxKSA6IHNpLnNtb287CmZiMyA9IGhzbGlkZXIoIkZlZWRiYWNrL2ZiMyIsIDAuMCwgMC4wLCAxLjAsIDAuMDAxKSA6IHNpLnNtb287CmZiNCA9IGhzbGlkZXIoIkZlZWRiYWNrL2ZiNCIsIDAuMCwgMC4wLCAxLjAsIDAuMDAxKSA6IHNpLnNtb287CgovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLy8gR3JvdXAgNCDigJQgR2xvYmFsIE1vZHVsYXRpb24gIChwYXJhbXMgNDDigJM0NykKLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpsZm9fcmF0ZSAgICAgICAgID0gaHNsaWRlcigiR2xvYmFsL2xmb19yYXRlIiwgICAgICAgICA1LjAsICAgMC4wMSwgIDIwLjAsICAwLjAwMSk7Cmxmb19kZXB0aCAgICAgICAgPSBoc2xpZGVyKCJHbG9iYWwvbGZvX2RlcHRoIiwgICAgICAgIDAuMCwgICAwLjAsICAgMS4wLCAgIDAuMDAxKSA6IHNpLnNtb287Cmxmb19waXRjaCAgICAgICAgPSBoc2xpZGVyKCJHbG9iYWwvbGZvX3BpdGNoIiwgICAgICAgIDAuNSwgICAwLjAsICAgMS4wLCAgIDAuMDAxKSA6IHNpLnNtb287Cmxmb19sZXZlbHMgICAgICAgPSBoc2xpZGVyKCJHbG9iYWwvbGZvX2xldmVscyIsICAgICAgIDAuNSwgICAwLjAsICAgMS4wLCAgIDAuMDAxKSA6IHNpLnNtb287Cmxmb193YXZlZm9ybSAgICAgPSBoc2xpZGVyKCJHbG9iYWwvbGZvX3dhdmVmb3JtIiwgICAgIDAuMCwgICAwLjAsICAgMS4wLCAgIDAuMDAxKTsKcGl0Y2hfZW52X2Ftb3VudCA9IGhzbGlkZXIoIkdsb2JhbC9waXRjaF9lbnZfYW1vdW50IiwgMC4wLCAgIDAuMCwgICAxLjAsICAgMC4wMDEpIDogc2kuc21vbzsKcGl0Y2hfZW52X2RlY2F5ICA9IGhzbGlkZXIoIkdsb2JhbC9waXRjaF9lbnZfZGVjYXkiLCAgMC4xLCAgIDAuMDAxLCAyLjAsICAgMC4wMDEpOwp2ZWxfaW5kZXhfc2NhbGUgID0gaHNsaWRlcigiR2xvYmFsL3ZlbF9pbmRleF9zY2FsZSIsICAwLjAsICAgMC4wLCAgIDEuMCwgICAwLjAwMSkgOiBzaS5zbW9vOwoKLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi8vIEdyb3VwIDUg4oCUIE1hc3RlciAgKHBhcmFtcyA0OOKAkzU1KQovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCm1hc3Rlcl9sZXZlbCAgICAgICA9IGhzbGlkZXIoIk1hc3Rlci9sZXZlbCIsICAgICAgICAgICAgICAwLjcsICAwLjAsICAgMS4wLCAgIDAuMDAxKSA6IHNpLnNtb287CnZlbF9zZW5zICAgICAgICAgICA9IGhzbGlkZXIoIk1hc3Rlci92ZWxfc2VucyIsICAgICAgICAgICAwLjUsICAwLjAsICAgMS4wLCAgIDAuMDAxKTsKcGl0Y2hfZ2xpZGUgICAgICAgID0gaHNsaWRlcigiTWFzdGVyL3BpdGNoX2dsaWRlIiwgICAgICAgIDAuMCwgIDAuMCwgICAxMC4wLCAgMC4wMDEpOwpmaW5lX3R1bmUgICAgICAgICAgPSBoc2xpZGVyKCJNYXN0ZXIvZmluZV90dW5lW3VuaXQ6Y2VudHNdIiwgMC4wLCAtNTAuMCwgNTAuMCwgMC4wMSk7CndhdmVmb3JtX2JsZW5kICAgICA9IGhzbGlkZXIoIk1hc3Rlci93YXZlZm9ybV9ibGVuZCIsICAgICAwLjAsICAwLjAsICAgMS4wLCAgIDAuMDAxKSA6IHNpLnNtb287CnN0ZXJlb19zcHJlYWQgICAgICA9IGhzbGlkZXIoIk1hc3Rlci9zdGVyZW9fc3ByZWFkIiwgICAgICAwLjEsICAwLjAsICAgMS4wLCAgIDAuMDAxKSA6IHNpLnNtb287Cm91dHB1dF9zYXR1cmF0aW9uICA9IGhzbGlkZXIoIk1hc3Rlci9vdXRwdXRfc2F0dXJhdGlvbiIsICAwLjAsICAwLjAsICAgMS4wLCAgIDAuMDAxKSA6IHNpLnNtb287Cm91dHB1dF9ocCAgICAgICAgICA9IGhzbGlkZXIoIk1hc3Rlci9vdXRwdXRfaHBbdW5pdDpIel0iLCAyMC4wLCAyMC4wLCAyMDAuMCwgIDAuMSk7CgovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLy8gRGVyaXZlZCB2YWx1ZXMKLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgovLyBDZW50cyDihpIgZnJlcXVlbmN5IHJhdGlvCmNlbnQycmF0aW8oYykgPSBwb3coMi4wLCBjIC8gMTIwMC4wKTsKCi8vIEJhc2UgZnJlcXVlbmN5IHdpdGggZmluZS10dW5lCmJhc2VfZnJlcSA9IGZyZXEgKiBjZW50MnJhdGlvKGZpbmVfdHVuZSk7CgovLyBWZWxvY2l0eSBnYWluOiBibGVuZCBiZXR3ZWVuIDEuMCAobm8gdmVsb2NpdHkpIGFuZCBhY3R1YWwgdmVsb2NpdHkKdmVsX2dhaW4gPSAoMS4wIC0gdmVsX3NlbnMpICsgdmVsX3NlbnMgKiB2ZWw7CgovLyBWZWxvY2l0eS1zY2FsZWQgRk0gaW5kZXggbXVsdGlwbGllcgovLyB2ZWxfaW5kZXhfc2NhbGU9MDogdmVsb2NpdHkgZG9lc24ndCBhZmZlY3QgRk0gaW5kaWNlcwovLyB2ZWxfaW5kZXhfc2NhbGU9MTogRk0gaW5kaWNlcyBhcmUgZnVsbHkgc2NhbGVkIGJ5IHZlbG9jaXR5CnZlbF9pZHhfbXVsdCA9ICgxLjAgLSB2ZWxfaW5kZXhfc2NhbGUpICsgdmVsX2luZGV4X3NjYWxlICogdmVsOwoKLy8gTEZPOiA0IHdhdmVmb3JtcyBjcm9zc2ZhZGVkCi8vIFNlZ21lbnRzOiBbMCwwLjMzMyk9c2luZeKGknRyaSwgWzAuMzMzLDAuNjY3KT10cmnihpJzYXcsIFswLjY2NywxXT1zYXfihpJzcXVhcmUKbGZvX3NpZyA9CiAgYmEuaWYobGZvX3dhdmVmb3JtIDwgMC4zMzMsCiAgICAoMS4wIC0gbGZvX3dhdmVmb3JtKjMuMCkgKiBvcy5vc2MobGZvX3JhdGUpICAgICAgKyBsZm9fd2F2ZWZvcm0qMy4wICAgICAgKiBvcy50cmlhbmdsZShsZm9fcmF0ZSksCiAgICBiYS5pZihsZm9fd2F2ZWZvcm0gPCAwLjY2NywKICAgICAgKDEuMCAtIChsZm9fd2F2ZWZvcm0tMC4zMzMpKjMuMCkgKiBvcy50cmlhbmdsZShsZm9fcmF0ZSkgKyAobGZvX3dhdmVmb3JtLTAuMzMzKSozLjAgKiBvcy5zYXd0b290aChsZm9fcmF0ZSksCiAgICAgICgxLjAgLSAobGZvX3dhdmVmb3JtLTAuNjY3KSozLjApICogb3Muc2F3dG9vdGgobGZvX3JhdGUpICsgKGxmb193YXZlZm9ybS0wLjY2NykqMy4wICogb3Muc3F1YXJlKGxmb19yYXRlKSkpOwoKLy8gUGl0Y2ggZW52ZWxvcGU6IGZhc3QgYXR0YWNrLCBjb25maWd1cmFibGUgZGVjYXksIHRyaWdnZXJlZCBieSBnYXRlCnBpdGNoX2VudiA9IGVuLmFyKDAuMDAxLCBwaXRjaF9lbnZfZGVjYXksIGdhdGUpOwoKLy8gTW9kdWxhdGVkIGZyZXF1ZW5jeTogZmluZS10dW5lICsgTEZPIHBpdGNoICsgcGl0Y2ggZW52ZWxvcGUKLy8gTEZPIHBpdGNoOiDCsTAuMDgzMyBzZW1pdG9uZXMgcGVyIHVuaXQgZGVwdGggKHN1YnRsZSB2aWJyYXRvKQovLyBQaXRjaCBlbnY6IHVwIHRvICsxIG9jdGF2ZSAocmF0aW8gKzEuMCA9ICtvY3RhdmUpCmxmb19waXRjaF9vZmZzZXQgPSBsZm9fc2lnICogbGZvX2RlcHRoICogbGZvX3BpdGNoICogMC4wMDgzOyAgIC8vIH4wLjEgc2VtaXRvbmUgbWF4CnBpdGNoX2Vudl9vZmZzZXQgPSBwaXRjaF9lbnYgKiBwaXRjaF9lbnZfYW1vdW50OyAgICAgICAgICAgICAgICAgLy8gMC4uMSBvY3QKbW9kX2ZyZXEgPSBiYXNlX2ZyZXEgKiBwb3coMi4wLCBsZm9fcGl0Y2hfb2Zmc2V0ICsgcGl0Y2hfZW52X29mZnNldCk7CgovLyBMRk8gbGV2ZWwgbW9kdWxhdGlvbiAodHJlbW9sbyk6IDEuMCB3aGVuIGRlcHRoPTAsIGRpcHMgdG8gKDEtMC41KmRlcHRoKmxmb19sZXZlbHMpIGF0IHRyb3VnaApsZm9fbGV2ZWxfZmFjdG9yID0gMS4wIC0gbGZvX2RlcHRoICogbGZvX2xldmVscyAqIDAuNSAqICgxLjAgLSBsZm9fc2lnKSAqIDAuNTsKCi8vIFBlci1vcGVyYXRvciBvc2NpbGxhdG9yOiBibGVuZCBzaW5lICgwKSDihpIgdHJpYW5nbGUgKDEpCm9wX29zYyhmKSA9ICgxLjAgLSB3YXZlZm9ybV9ibGVuZCkgKiBvcy5vc2MoZikgKyB3YXZlZm9ybV9ibGVuZCAqIG9zLnRyaWFuZ2xlKGYpOwoKLy8gUGVyLW9wZXJhdG9yIEFEU1IgZW52ZWxvcGVzCmVudjEgPSBlbi5hZHNyKG9wMV9hdHRhY2ssIG9wMV9kZWNheSwgb3AxX3N1c3RhaW4sIG9wMV9yZWxlYXNlLCBnYXRlKTsKZW52MiA9IGVuLmFkc3Iob3AyX2F0dGFjaywgb3AyX2RlY2F5LCBvcDJfc3VzdGFpbiwgb3AyX3JlbGVhc2UsIGdhdGUpOwplbnYzID0gZW4uYWRzcihvcDNfYXR0YWNrLCBvcDNfZGVjYXksIG9wM19zdXN0YWluLCBvcDNfcmVsZWFzZSwgZ2F0ZSk7CmVudjQgPSBlbi5hZHNyKG9wNF9hdHRhY2ssIG9wNF9kZWNheSwgb3A0X3N1c3RhaW4sIG9wNF9yZWxlYXNlLCBnYXRlKTsKCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQovLyA0LU9wZXJhdG9yIEZNIFJvdXRpbmcKLy8KLy8gSW1wbGVtZW50YXRpb24gc3RyYXRlZ3k6IGJ1aWxkIGEgcmVjdXJzaXZlIDQtY2hhbm5lbCBidXMgdXNpbmcgfgovLyBUaGUgYnVzIGNhcnJpZXMgKG9wMV9vdXQsIG9wMl9vdXQsIG9wM19vdXQsIG9wNF9vdXQpIHdpdGggMS1zYW1wbGUgZGVsYXkuCi8vIEVhY2ggZnJhbWUsIHdlIGNvbXB1dGUgbmV3IG91dHB1dHMgZnJvbSBkZWxheWVkIHByZXZpb3VzIG91dHB1dHMuCi8vCi8vIGZtYnVzOiAoZDEsZDIsZDMsZDQpIOKGkiAob3AxX291dCxvcDJfb3V0LG9wM19vdXQsb3A0X291dCkKLy8gd2hlcmUgZE4gYXJlIHRoZSAxLXNhbXBsZS1kZWxheWVkIHByZXZpb3VzIG91dHB1dHMgKHZpYSB+KQovLwovLyBGTSBwaGFzZSBkZXZpYXRpb246IGRldmlhdGlvbl9oeiA9IGluZGV4ICogbW9kdWxhdG9yX291dCAqIGNhcnJpZXJfZnJlcQovLyBUaGlzIGlzIHRoZSBzdGFuZGFyZCAiZnJlcXVlbmN5IG1vZHVsYXRpb24iIGZvcm11bGEgd2hlcmUgbW9kdWxhdG9yX291dCDiiIggWy0xLDFdCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKZm1idXMoZDEsZDIsZDMsZDQpID0KICBvcDFfb3V0LCBvcDJfb3V0LCBvcDNfb3V0LCBvcDRfb3V0CndpdGggewogIC8vIEVmZmVjdGl2ZSBpbmRpY2VzIHNjYWxlZCBieSB2ZWxvY2l0eQogIG0xMmUgPSBtMTIgKiB2ZWxfaWR4X211bHQ7ICBtMTNlID0gbTEzICogdmVsX2lkeF9tdWx0OyAgbTE0ZSA9IG0xNCAqIHZlbF9pZHhfbXVsdDsKICBtMjFlID0gbTIxICogdmVsX2lkeF9tdWx0OyAgbTIzZSA9IG0yMyAqIHZlbF9pZHhfbXVsdDsgIG0yNGUgPSBtMjQgKiB2ZWxfaWR4X211bHQ7CiAgbTMxZSA9IG0zMSAqIHZlbF9pZHhfbXVsdDsgIG0zMmUgPSBtMzIgKiB2ZWxfaWR4X211bHQ7ICBtMzRlID0gbTM0ICogdmVsX2lkeF9tdWx0OwogIG00MWUgPSBtNDEgKiB2ZWxfaWR4X211bHQ7ICBtNDJlID0gbTQyICogdmVsX2lkeF9tdWx0OyAgbTQzZSA9IG00MyAqIHZlbF9pZHhfbXVsdDsKICBmYjFlID0gZmIxICogdmVsX2lkeF9tdWx0OyAgZmIyZSA9IGZiMiAqIHZlbF9pZHhfbXVsdDsKICBmYjNlID0gZmIzICogdmVsX2lkeF9tdWx0OyAgZmI0ZSA9IGZiNCAqIHZlbF9pZHhfbXVsdDsKCiAgZjEgPSBtb2RfZnJlcSAqIG9wMV9yYXRpbzsKICBmMiA9IG1vZF9mcmVxICogb3AyX3JhdGlvOwogIGYzID0gbW9kX2ZyZXEgKiBvcDNfcmF0aW87CiAgZjQgPSBtb2RfZnJlcSAqIG9wNF9yYXRpbzsKCiAgb3AxX291dCA9IGVudjEgKiBvcDFfbGV2ZWwgKiBsZm9fbGV2ZWxfZmFjdG9yICogdmVsX2dhaW4gKgogICAgb3Bfb3NjKGYxICsgKG0yMWUqZDIgKyBtMzFlKmQzICsgbTQxZSpkNCArIGZiMWUqZDEpICogZjEpOwoKICBvcDJfb3V0ID0gZW52MiAqIG9wMl9sZXZlbCAqIGxmb19sZXZlbF9mYWN0b3IgKiB2ZWxfZ2FpbiAqCiAgICBvcF9vc2MoZjIgKyAobTEyZSpkMSArIG0zMmUqZDMgKyBtNDJlKmQ0ICsgZmIyZSpkMikgKiBmMik7CgogIG9wM19vdXQgPSBlbnYzICogb3AzX2xldmVsICogbGZvX2xldmVsX2ZhY3RvciAqIHZlbF9nYWluICoKICAgIG9wX29zYyhmMyArIChtMTNlKmQxICsgbTIzZSpkMiArIG00M2UqZDQgKyBmYjNlKmQzKSAqIGYzKTsKCiAgb3A0X291dCA9IGVudjQgKiBvcDRfbGV2ZWwgKiBsZm9fbGV2ZWxfZmFjdG9yICogdmVsX2dhaW4gKgogICAgb3Bfb3NjKGY0ICsgKG0xNGUqZDEgKyBtMjRlKmQyICsgbTM0ZSpkMyArIGZiNGUqZDQpICogZjQpOwp9OwoKLy8gUm91dGUgNC1jaGFubmVsIGJ1cyB0aHJvdWdoIGZlZWRiYWNrIGxvb3AgKGludHJvZHVjZXMgbWFuZGF0b3J5IDEtc2FtcGxlIGRlbGF5KQovLyBPdXRwdXQgb2YgZm1idXMgaXMgKG9wMSxvcDIsb3AzLG9wNCk7IHN1bSBhbGwgZm9yIGF1ZGlvIG91dApmbV9vdXQgPSAoZm1idXMgfiAoc2kuYnVzKDQpKSkgOiAoXywgXywgXywgXykgOj4gXzsKCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQovLyBQb3N0LXByb2Nlc3NpbmcKLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgovLyBTb2Z0IGNsaXA6IHRhbmggYXBwcm94aW1hdGlvbiAoZHJpdmUgY29udHJvbGxlZCBieSBvdXRwdXRfc2F0dXJhdGlvbikKLy8gQXQgMDogbGluZWFyIHBhc3N0aHJvdWdoLiBBdCAxOiBjbGlwcyBhdCDCsX4wLjYKc29mdF9jbGlwKHgpID0geCAvIG1heCgwLjAwMSwgMS4wICsgb3V0cHV0X3NhdHVyYXRpb24gKiBhYnMoeCkpOwoKLy8gU3RlcmVvIHNwcmVhZCB2aWEgc2xpZ2h0IHBpdGNoIGRldHVuaW5nIEwgdnMgUgpzcHJlYWRfY2VudHMgPSBzdGVyZW9fc3ByZWFkICogNS4wOyAgIC8vIMKxNSBjZW50cyBtYXgKCi8vIEhQIGZpbHRlciByZW1vdmVzIERDIG9mZnNldCBmcm9tIGhlYXZ5IGZlZWRiYWNrIEZNCmhwX291dCh4KSA9IGZpLmhpZ2hwYXNzKDEsIG91dHB1dF9ocCwgeCk7CgovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLy8gcHJvY2VzczogbW9ubyBGTSBzdW0g4oaSIHNjYWxlIOKGkiBzb2Z0LWNsaXAg4oaSIEhQIOKGkiBzdGVyZW8gc3ByZWFkCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKcHJvY2VzcyA9CiAgZm1fb3V0CiAgOiAqKG1hc3Rlcl9sZXZlbCAqIDAuMjUpICAgICAgIC8vIDQgb3BzIHN1bW1pbmc6IHNjYWxlIHRvIHNhZmUgcmFuZ2UKICA6IHNvZnRfY2xpcAogIDogaHBfb3V0CiAgPDogKihjZW50MnJhdGlvKHNwcmVhZF9jZW50cykpLCAqKGNlbnQycmF0aW8oMC4wIC0gc3ByZWFkX2NlbnRzKSk7Cg==","inputs": 0,"outputs": 2,"meta": [ { "basics.lib/name": "Faust Basic Element Library" },{ "basics.lib/version": "1.22.0" },{ "compile_options": "-lang wasm -fpga-mem-th 4 -ct 1 -cn fm_matrix -es 1 -mcd 16 -mdd 1024 -mdy 33 -single -ftz 0" },{ "envelopes.lib/adsr:author": "Yann Orlarey and Andrey Bundin" },{ "envelopes.lib/ar:author": "Yann Orlarey, Stéphane Letz" },{ "envelopes.lib/author": "GRAME" },{ "envelopes.lib/copyright": "GRAME" },{ "envelopes.lib/license": "LGPL with exception" },{ "envelopes.lib/name": "Faust Envelope Library" },{ "envelopes.lib/version": "1.3.0" },{ "filename": "fm-matrix.dsp" },{ "filters.lib/highpass:author": "Julius O. Smith III" },{ "filters.lib/highpass:copyright": "Copyright (C) 2003-2019 by Julius O. Smith III " },{ "filters.lib/lowpass0_highpass1": "Copyright (C) 2003-2019 by Julius O. Smith III " },{ "filters.lib/lowpass0_highpass1:author": "Julius O. Smith III" },{ "filters.lib/name": "Faust Filters Library" },{ "filters.lib/pole:author": "Julius O. Smith III" },{ "filters.lib/pole:copyright": "Copyright (C) 2003-2019 by Julius O. Smith III " },{ "filters.lib/pole:license": "MIT-style STK-4.3 license" },{ "filters.lib/tf1:author": "Julius O. Smith III" },{ "filters.lib/tf1:copyright": "Copyright (C) 2003-2019 by Julius O. Smith III " },{ "filters.lib/tf1:license": "MIT-style STK-4.3 license" },{ "filters.lib/tf1s:author": "Julius O. Smith III" },{ "filters.lib/tf1s:copyright": "Copyright (C) 2003-2019 by Julius O. Smith III " },{ "filters.lib/tf1s:license": "MIT-style STK-4.3 license" },{ "filters.lib/version": "1.7.1" },{ "maths.lib/author": "GRAME" },{ "maths.lib/copyright": "GRAME" },{ "maths.lib/license": "LGPL with exception" },{ "maths.lib/name": "Faust Math Library" },{ "maths.lib/version": "2.9.0" },{ "name": "fm-matrix" },{ "oscillators.lib/lf_sawpos:author": "Bart Brouns, revised by Stéphane Letz" },{ "oscillators.lib/lf_sawpos:licence": "STK-4.3" },{ "oscillators.lib/name": "Faust Oscillator Library" },{ "oscillators.lib/saw2ptr:author": "Julius O. Smith III" },{ "oscillators.lib/saw2ptr:license": "STK-4.3" },{ "oscillators.lib/sawN:author": "Julius O. Smith III" },{ "oscillators.lib/sawN:license": "STK-4.3" },{ "oscillators.lib/version": "1.6.0" },{ "platform.lib/name": "Generic Platform Library" },{ "platform.lib/version": "1.3.0" },{ "signals.lib/name": "Faust Signal Routing Library" },{ "signals.lib/version": "1.6.0" }],"ui": [ {"type": "vgroup","label": "fm-matrix","items": [ {"type": "hslider","label": "Feedback/fb1","varname": "fHslider3","shortname": "Feedback_fb1","address": "/fm-matrix/Feedback_fb1","index": 262200,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "Feedback/fb2","varname": "fHslider26","shortname": "Feedback_fb2","address": "/fm-matrix/Feedback_fb2","index": 295312,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "Feedback/fb3","varname": "fHslider36","shortname": "Feedback_fb3","address": "/fm-matrix/Feedback_fb3","index": 311824,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "Feedback/fb4","varname": "fHslider46","shortname": "Feedback_fb4","address": "/fm-matrix/Feedback_fb4","index": 328336,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "Global/lfo_depth","varname": "fHslider14","shortname": "Global_lfo_depth","address": "/fm-matrix/Global_lfo_depth","index": 278784,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "Global/lfo_levels","varname": "fHslider20","shortname": "Global_lfo_levels","address": "/fm-matrix/Global_lfo_levels","index": 295248,"init": 0.5,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "Global/lfo_pitch","varname": "fHslider13","shortname": "Global_lfo_pitch","address": "/fm-matrix/Global_lfo_pitch","index": 278772,"init": 0.5,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "Global/lfo_rate","varname": "fHslider12","shortname": "Global_lfo_rate","address": "/fm-matrix/Global_lfo_rate","index": 262320,"init": 5,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "Global/lfo_waveform","varname": "fHslider11","shortname": "Global_lfo_waveform","address": "/fm-matrix/Global_lfo_waveform","index": 262316,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "Global/pitch_env_amount","varname": "fHslider10","shortname": "Global_pitch_env_amount","address": "/fm-matrix/Global_pitch_env_amount","index": 262304,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "Global/pitch_env_decay","varname": "fHslider9","shortname": "Global_pitch_env_decay","address": "/fm-matrix/Global_pitch_env_decay","index": 262300,"init": 0.1,"min": 0.001,"max": 2,"step": 0.001},{"type": "hslider","label": "Global/vel_index_scale","varname": "fHslider8","shortname": "Global_vel_index_scale","address": "/fm-matrix/Global_vel_index_scale","index": 262260,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "Master/_vel","varname": "fHslider7","shortname": "Master_vel","address": "/fm-matrix/Master__vel","index": 262248,"meta": [{ "hidden": "1" }],"init": 0.7,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "Master/fine_tune","varname": "fHslider16","shortname": "Master_fine_tune","address": "/fm-matrix/Master_fine_tune","index": 278808,"meta": [{ "unit": "cents" }],"init": 0,"min": -50,"max": 50,"step": 0.01},{"type": "hslider","label": "Master/freq","varname": "fHslider17","shortname": "Master_freq","address": "/fm-matrix/Master_freq","index": 278812,"meta": [{ "hidden": "1" },{ "unit": "Hz" }],"init": 220,"min": 20,"max": 4000,"step": 0.01},{"type": "button","label": "Master/gate","varname": "fButton0","shortname": "Master_gate","address": "/fm-matrix/Master_gate","index": 262272,"meta": [{ "hidden": "1" }]},{"type": "hslider","label": "Master/level","varname": "fHslider2","shortname": "Master_level","address": "/fm-matrix/Master_level","index": 262188,"init": 0.7,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "Master/output_hp","varname": "fHslider1","shortname": "Master_output_hp","address": "/fm-matrix/Master_output_hp","index": 262180,"meta": [{ "unit": "Hz" }],"init": 20,"min": 20,"max": 200,"step": 0.1},{"type": "hslider","label": "Master/output_saturation","varname": "fHslider56","shortname": "Master_output_saturation","address": "/fm-matrix/Master_output_saturation","index": 344848,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "Master/stereo_spread","varname": "fHslider0","shortname": "Master_stereo_spread","address": "/fm-matrix/Master_stereo_spread","index": 262168,"init": 0.1,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "Master/vel_sens","varname": "fHslider19","shortname": "Master_vel_sens","address": "/fm-matrix/Master_vel_sens","index": 295244,"init": 0.5,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "Master/waveform_blend","varname": "fHslider18","shortname": "Master_waveform_blend","address": "/fm-matrix/Master_waveform_blend","index": 295224,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "Matrix/m12","varname": "fHslider29","shortname": "Matrix_m12","address": "/fm-matrix/Matrix_m12","index": 295348,"init": 0,"min": 0,"max": 10,"step": 0.001},{"type": "hslider","label": "Matrix/m13","varname": "fHslider39","shortname": "Matrix_m13","address": "/fm-matrix/Matrix_m13","index": 311860,"init": 0,"min": 0,"max": 10,"step": 0.001},{"type": "hslider","label": "Matrix/m14","varname": "fHslider49","shortname": "Matrix_m14","address": "/fm-matrix/Matrix_m14","index": 328372,"init": 0,"min": 0,"max": 10,"step": 0.001},{"type": "hslider","label": "Matrix/m21","varname": "fHslider6","shortname": "Matrix_m21","address": "/fm-matrix/Matrix_m21","index": 262236,"init": 1,"min": 0,"max": 10,"step": 0.001},{"type": "hslider","label": "Matrix/m23","varname": "fHslider38","shortname": "Matrix_m23","address": "/fm-matrix/Matrix_m23","index": 311848,"init": 0,"min": 0,"max": 10,"step": 0.001},{"type": "hslider","label": "Matrix/m24","varname": "fHslider48","shortname": "Matrix_m24","address": "/fm-matrix/Matrix_m24","index": 328360,"init": 0,"min": 0,"max": 10,"step": 0.001},{"type": "hslider","label": "Matrix/m31","varname": "fHslider5","shortname": "Matrix_m31","address": "/fm-matrix/Matrix_m31","index": 262224,"init": 0,"min": 0,"max": 10,"step": 0.001},{"type": "hslider","label": "Matrix/m32","varname": "fHslider28","shortname": "Matrix_m32","address": "/fm-matrix/Matrix_m32","index": 295336,"init": 0,"min": 0,"max": 10,"step": 0.001},{"type": "hslider","label": "Matrix/m34","varname": "fHslider47","shortname": "Matrix_m34","address": "/fm-matrix/Matrix_m34","index": 328348,"init": 0,"min": 0,"max": 10,"step": 0.001},{"type": "hslider","label": "Matrix/m41","varname": "fHslider4","shortname": "Matrix_m41","address": "/fm-matrix/Matrix_m41","index": 262212,"init": 0,"min": 0,"max": 10,"step": 0.001},{"type": "hslider","label": "Matrix/m42","varname": "fHslider27","shortname": "Matrix_m42","address": "/fm-matrix/Matrix_m42","index": 295324,"init": 0,"min": 0,"max": 10,"step": 0.001},{"type": "hslider","label": "Matrix/m43","varname": "fHslider37","shortname": "Matrix_m43","address": "/fm-matrix/Matrix_m43","index": 311836,"init": 0,"min": 0,"max": 10,"step": 0.001},{"type": "hslider","label": "Operators/Op 1/op1_attack","varname": "fHslider22","shortname": "Operators_Op_1_op1_attack","address": "/fm-matrix/Operators_Op_1_op1_attack","index": 295280,"init": 0.01,"min": 0.001,"max": 5,"step": 0.001},{"type": "hslider","label": "Operators/Op 1/op1_decay","varname": "fHslider23","shortname": "Operators_Op_1_op1_decay","address": "/fm-matrix/Operators_Op_1_op1_decay","index": 295284,"init": 0.3,"min": 0.001,"max": 10,"step": 0.001},{"type": "hslider","label": "Operators/Op 1/op1_level","varname": "fHslider25","shortname": "Operators_Op_1_op1_level","address": "/fm-matrix/Operators_Op_1_op1_level","index": 295292,"init": 0.8,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "Operators/Op 1/op1_ratio","varname": "fHslider15","shortname": "Operators_Op_1_op1_ratio","address": "/fm-matrix/Operators_Op_1_op1_ratio","index": 278796,"init": 1,"min": 0.125,"max": 16,"step": 0.001},{"type": "hslider","label": "Operators/Op 1/op1_release","varname": "fHslider21","shortname": "Operators_Op_1_op1_release","address": "/fm-matrix/Operators_Op_1_op1_release","index": 295268,"init": 0.5,"min": 0.01,"max": 10,"step": 0.001},{"type": "hslider","label": "Operators/Op 1/op1_sustain","varname": "fHslider24","shortname": "Operators_Op_1_op1_sustain","address": "/fm-matrix/Operators_Op_1_op1_sustain","index": 295288,"init": 0.7,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "Operators/Op 2/op2_attack","varname": "fHslider32","shortname": "Operators_Op_2_op2_attack","address": "/fm-matrix/Operators_Op_2_op2_attack","index": 311792,"init": 0.01,"min": 0.001,"max": 5,"step": 0.001},{"type": "hslider","label": "Operators/Op 2/op2_decay","varname": "fHslider33","shortname": "Operators_Op_2_op2_decay","address": "/fm-matrix/Operators_Op_2_op2_decay","index": 311796,"init": 0.3,"min": 0.001,"max": 10,"step": 0.001},{"type": "hslider","label": "Operators/Op 2/op2_level","varname": "fHslider35","shortname": "Operators_Op_2_op2_level","address": "/fm-matrix/Operators_Op_2_op2_level","index": 311804,"init": 0.6,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "Operators/Op 2/op2_ratio","varname": "fHslider30","shortname": "Operators_Op_2_op2_ratio","address": "/fm-matrix/Operators_Op_2_op2_ratio","index": 295360,"init": 2,"min": 0.125,"max": 16,"step": 0.001},{"type": "hslider","label": "Operators/Op 2/op2_release","varname": "fHslider31","shortname": "Operators_Op_2_op2_release","address": "/fm-matrix/Operators_Op_2_op2_release","index": 311788,"init": 0.5,"min": 0.01,"max": 10,"step": 0.001},{"type": "hslider","label": "Operators/Op 2/op2_sustain","varname": "fHslider34","shortname": "Operators_Op_2_op2_sustain","address": "/fm-matrix/Operators_Op_2_op2_sustain","index": 311800,"init": 0.7,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "Operators/Op 3/op3_attack","varname": "fHslider42","shortname": "Operators_Op_3_op3_attack","address": "/fm-matrix/Operators_Op_3_op3_attack","index": 328304,"init": 0.01,"min": 0.001,"max": 5,"step": 0.001},{"type": "hslider","label": "Operators/Op 3/op3_decay","varname": "fHslider43","shortname": "Operators_Op_3_op3_decay","address": "/fm-matrix/Operators_Op_3_op3_decay","index": 328308,"init": 0.3,"min": 0.001,"max": 10,"step": 0.001},{"type": "hslider","label": "Operators/Op 3/op3_level","varname": "fHslider45","shortname": "Operators_Op_3_op3_level","address": "/fm-matrix/Operators_Op_3_op3_level","index": 328316,"init": 0.4,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "Operators/Op 3/op3_ratio","varname": "fHslider40","shortname": "Operators_Op_3_op3_ratio","address": "/fm-matrix/Operators_Op_3_op3_ratio","index": 311872,"init": 3,"min": 0.125,"max": 16,"step": 0.001},{"type": "hslider","label": "Operators/Op 3/op3_release","varname": "fHslider41","shortname": "Operators_Op_3_op3_release","address": "/fm-matrix/Operators_Op_3_op3_release","index": 328300,"init": 0.5,"min": 0.01,"max": 10,"step": 0.001},{"type": "hslider","label": "Operators/Op 3/op3_sustain","varname": "fHslider44","shortname": "Operators_Op_3_op3_sustain","address": "/fm-matrix/Operators_Op_3_op3_sustain","index": 328312,"init": 0.7,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "Operators/Op 4/op4_attack","varname": "fHslider52","shortname": "Operators_Op_4_op4_attack","address": "/fm-matrix/Operators_Op_4_op4_attack","index": 344816,"init": 0.01,"min": 0.001,"max": 5,"step": 0.001},{"type": "hslider","label": "Operators/Op 4/op4_decay","varname": "fHslider53","shortname": "Operators_Op_4_op4_decay","address": "/fm-matrix/Operators_Op_4_op4_decay","index": 344820,"init": 0.3,"min": 0.001,"max": 10,"step": 0.001},{"type": "hslider","label": "Operators/Op 4/op4_level","varname": "fHslider55","shortname": "Operators_Op_4_op4_level","address": "/fm-matrix/Operators_Op_4_op4_level","index": 344828,"init": 0.3,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "Operators/Op 4/op4_ratio","varname": "fHslider50","shortname": "Operators_Op_4_op4_ratio","address": "/fm-matrix/Operators_Op_4_op4_ratio","index": 328384,"init": 0.5,"min": 0.125,"max": 16,"step": 0.001},{"type": "hslider","label": "Operators/Op 4/op4_release","varname": "fHslider51","shortname": "Operators_Op_4_op4_release","address": "/fm-matrix/Operators_Op_4_op4_release","index": 344812,"init": 0.5,"min": 0.01,"max": 10,"step": 0.001},{"type": "hslider","label": "Operators/Op 4/op4_sustain","varname": "fHslider54","shortname": "Operators_Op_4_op4_sustain","address": "/fm-matrix/Operators_Op_4_op4_sustain","index": 344824,"init": 0.7,"min": 0,"max": 1,"step": 0.001}]}]} \ No newline at end of file +{"name": "fm-matrix","filename": "fm-matrix.dsp","version": "2.79.3","compile_options": "-lang wasm -ct 1 -cn fm_matrix -es 1 -mcd 16 -mdd 1024 -mdy 33 -single -ftz 0","library_list": ["/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust/stdfaust.lib","/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust/signals.lib","/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust/maths.lib","/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust/platform.lib","/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust/envelopes.lib","/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust/oscillators.lib","/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust/filters.lib","/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust/basics.lib"],"include_pathnames": ["/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust","/usr/local/share/faust","/usr/share/faust",".","/home/w1n5t0n/src/MEMLNaut-NISPS/playground/faust"],"size": 344892,"code": "Ly8gZm0tbWF0cml4LmRzcCDigJQgRnVsbCA1Ni1wYXJhbWV0ZXIgNC1vcGVyYXRvciBGTSBzeW50aGVzaXplciB3aXRoIGNvbnRpbnVvdXMgcm91dGluZyBtYXRyaXgKLy8KLy8gRGVzaWduOiA0IG9wZXJhdG9ycyB3aXRoIGZ1bGx5IGNvbnRpbnVvdXMgTsOXTiBjcm9zcy1tb2R1bGF0aW9uIG1hdHJpeC4KLy8gTm8gZml4ZWQgYWxnb3JpdGhtIHNsb3RzIOKAlCB0aGUgYWxnb3JpdGhtIGVtZXJnZXMgZnJvbSBtb2R1bGF0aW9uIGluZGV4IHZhbHVlcy4KLy8gV2hlbiBhbGwgcm91dGluZyBtYXRyaXggaW5kaWNlcyBhcmUgbmVhciAwOiBhZGRpdGl2ZSBzeW50aGVzaXMuCi8vIEFzIGluZGljZXMgZ3JvdzogaW5jcmVhc2luZ2x5IGNvbXBsZXggRk0gdGltYnJlcyBlbWVyZ2UuCi8vCi8vIFBhcmFtZXRlciBvcmRlcmluZyAoNTYgdG90YWwsIG1hcHMgdG8gTUxQIG91dHB1dCBpbmRpY2VzIDDigJM1NSk6Ci8vICAgMOKAkzIzOiAgT3BlcmF0b3IgQ29yZSDDlyA0IChyYXRpbywgbGV2ZWwsIGF0dGFjaywgZGVjYXksIHN1c3RhaW4sIHJlbGVhc2UpCi8vICAgMjTigJMzNTogQ3Jvc3MtTW9kdWxhdGlvbiBNYXRyaXggKDEyIGRpcmVjdGVkIHBhaXJzKQovLyAgIDM24oCTMzk6IFNlbGYtRmVlZGJhY2sgw5cgNAovLyAgIDQw4oCTNDc6IEdsb2JhbCBNb2R1bGF0aW9uIChMRk8sIHBpdGNoIGVudiwgdmVsb2NpdHkpCi8vICAgNDjigJM1NTogTWFzdGVyIChsZXZlbCwgdmVsIHNlbnMsIGdsaWRlLCBmaW5lIHR1bmUsIHdhdmVmb3JtIGJsZW5kLCBzdGVyZW8gc3ByZWFkLAovLyAgICAgICAgICAgb3V0cHV0IHNhdHVyYXRpb24sIG91dHB1dCBIUCkKLy8KLy8gSGlkZGVuIHBhcmFtcyAobm90IGluIHRoZSA1Ni1wYXJhbSBOSVNQUyBsaXN0KToKLy8gICBmcmVxICDigJQgc2V0IGJ5IG5vdGVPbiAoSHopCi8vICAgZ2F0ZSAg4oCUIHNldCBieSBub3RlT24vbm90ZU9mZiAoMC8xKQovLyAgIF92ZWwgIOKAlCBzZXQgYnkgbm90ZU9uICh2ZWxvY2l0eSAw4oCTMSkKLy8KLy8gRk0gaW1wbGVtZW50YXRpb246IGVhY2ggb3BlcmF0b3IgcGhhc2UtbW9kdWxhdGVzIG90aGVycyB2aWEgYSAxLXNhbXBsZSBkZWxheWVkCi8vIGZlZWRiYWNrIGJ1cy4gVGhlIDQgb3BlcmF0b3Igb3V0cHV0cyBhcmUgY29sbGVjdGVkIGludG8gYSA0LWNoYW5uZWwgYnVzIGFuZAovLyBsb29wZWQgdmlhIH4uIFRoaXMgaXMgdGhlIHN0YW5kYXJkIEZhdXN0IEZNIHBhdHRlcm4uCi8vCi8vIEJ1aWxkOgovLyAgIG5peC1zaGVsbCAtcCBmYXVzdCAtLXJ1biBcCi8vICAgICAiZmF1c3QgLWxhbmcgd2FzbSAtY24gZm1fbWF0cml4IGZtLW1hdHJpeC5kc3AgLW8gZm0tbWF0cml4Lndhc20iCgppbXBvcnQoInN0ZGZhdXN0LmxpYiIpOwoKLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi8vIEhpZGRlbiBjb250cm9sIHBhcmFtcyAoZHJpdmVuIGJ5IG5vdGVPbi9ub3RlT2ZmLCBub3QgTklTUFMpCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKZnJlcSA9IGhzbGlkZXIoIk1hc3Rlci9mcmVxW2hpZGRlbjoxXVt1bml0Okh6XSIsIDIyMCwgMjAsIDQwMDAsIDAuMDEpOwpnYXRlID0gYnV0dG9uKCJNYXN0ZXIvZ2F0ZVtoaWRkZW46MV0iKTsKdmVsICA9IGhzbGlkZXIoIk1hc3Rlci9fdmVsW2hpZGRlbjoxXSIsIDAuNywgMC4wLCAxLjAsIDAuMDAxKSA6IHNpLnNtb287CgovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLy8gR3JvdXAgMSDigJQgT3BlcmF0b3IgQ29yZSDDlyA0ICAocGFyYW1zIDDigJMyMykKLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpvcDFfcmF0aW8gICA9IGhzbGlkZXIoIk9wZXJhdG9ycy9PcCAxL29wMV9yYXRpbyIsICAgMS4wLCAwLjEyNSwgMTYuMCwgMC4wMDEpIDogc2kuc21vbzsKb3AxX2xldmVsICAgPSBoc2xpZGVyKCJPcGVyYXRvcnMvT3AgMS9vcDFfbGV2ZWwiLCAgIDAuOCwgMC4wLCAgIDEuMCwgIDAuMDAxKSA6IHNpLnNtb287Cm9wMV9hdHRhY2sgID0gaHNsaWRlcigiT3BlcmF0b3JzL09wIDEvb3AxX2F0dGFjayIsICAwLjAxLCAwLjAwMSwgNS4wLCAwLjAwMSk7Cm9wMV9kZWNheSAgID0gaHNsaWRlcigiT3BlcmF0b3JzL09wIDEvb3AxX2RlY2F5IiwgICAwLjMsIDAuMDAxLCAxMC4wLCAwLjAwMSk7Cm9wMV9zdXN0YWluID0gaHNsaWRlcigiT3BlcmF0b3JzL09wIDEvb3AxX3N1c3RhaW4iLCAwLjcsIDAuMCwgICAxLjAsICAwLjAwMSk7Cm9wMV9yZWxlYXNlID0gaHNsaWRlcigiT3BlcmF0b3JzL09wIDEvb3AxX3JlbGVhc2UiLCAwLjUsIDAuMDEsICAxMC4wLCAwLjAwMSk7CgpvcDJfcmF0aW8gICA9IGhzbGlkZXIoIk9wZXJhdG9ycy9PcCAyL29wMl9yYXRpbyIsICAgMi4wLCAwLjEyNSwgMTYuMCwgMC4wMDEpIDogc2kuc21vbzsKb3AyX2xldmVsICAgPSBoc2xpZGVyKCJPcGVyYXRvcnMvT3AgMi9vcDJfbGV2ZWwiLCAgIDAuNiwgMC4wLCAgIDEuMCwgIDAuMDAxKSA6IHNpLnNtb287Cm9wMl9hdHRhY2sgID0gaHNsaWRlcigiT3BlcmF0b3JzL09wIDIvb3AyX2F0dGFjayIsICAwLjAxLCAwLjAwMSwgNS4wLCAwLjAwMSk7Cm9wMl9kZWNheSAgID0gaHNsaWRlcigiT3BlcmF0b3JzL09wIDIvb3AyX2RlY2F5IiwgICAwLjMsIDAuMDAxLCAxMC4wLCAwLjAwMSk7Cm9wMl9zdXN0YWluID0gaHNsaWRlcigiT3BlcmF0b3JzL09wIDIvb3AyX3N1c3RhaW4iLCAwLjcsIDAuMCwgICAxLjAsICAwLjAwMSk7Cm9wMl9yZWxlYXNlID0gaHNsaWRlcigiT3BlcmF0b3JzL09wIDIvb3AyX3JlbGVhc2UiLCAwLjUsIDAuMDEsICAxMC4wLCAwLjAwMSk7CgpvcDNfcmF0aW8gICA9IGhzbGlkZXIoIk9wZXJhdG9ycy9PcCAzL29wM19yYXRpbyIsICAgMy4wLCAwLjEyNSwgMTYuMCwgMC4wMDEpIDogc2kuc21vbzsKb3AzX2xldmVsICAgPSBoc2xpZGVyKCJPcGVyYXRvcnMvT3AgMy9vcDNfbGV2ZWwiLCAgIDAuNCwgMC4wLCAgIDEuMCwgIDAuMDAxKSA6IHNpLnNtb287Cm9wM19hdHRhY2sgID0gaHNsaWRlcigiT3BlcmF0b3JzL09wIDMvb3AzX2F0dGFjayIsICAwLjAxLCAwLjAwMSwgNS4wLCAwLjAwMSk7Cm9wM19kZWNheSAgID0gaHNsaWRlcigiT3BlcmF0b3JzL09wIDMvb3AzX2RlY2F5IiwgICAwLjMsIDAuMDAxLCAxMC4wLCAwLjAwMSk7Cm9wM19zdXN0YWluID0gaHNsaWRlcigiT3BlcmF0b3JzL09wIDMvb3AzX3N1c3RhaW4iLCAwLjcsIDAuMCwgICAxLjAsICAwLjAwMSk7Cm9wM19yZWxlYXNlID0gaHNsaWRlcigiT3BlcmF0b3JzL09wIDMvb3AzX3JlbGVhc2UiLCAwLjUsIDAuMDEsICAxMC4wLCAwLjAwMSk7CgpvcDRfcmF0aW8gICA9IGhzbGlkZXIoIk9wZXJhdG9ycy9PcCA0L29wNF9yYXRpbyIsICAgMC41LCAwLjEyNSwgMTYuMCwgMC4wMDEpIDogc2kuc21vbzsKb3A0X2xldmVsICAgPSBoc2xpZGVyKCJPcGVyYXRvcnMvT3AgNC9vcDRfbGV2ZWwiLCAgIDAuMywgMC4wLCAgIDEuMCwgIDAuMDAxKSA6IHNpLnNtb287Cm9wNF9hdHRhY2sgID0gaHNsaWRlcigiT3BlcmF0b3JzL09wIDQvb3A0X2F0dGFjayIsICAwLjAxLCAwLjAwMSwgNS4wLCAwLjAwMSk7Cm9wNF9kZWNheSAgID0gaHNsaWRlcigiT3BlcmF0b3JzL09wIDQvb3A0X2RlY2F5IiwgICAwLjMsIDAuMDAxLCAxMC4wLCAwLjAwMSk7Cm9wNF9zdXN0YWluID0gaHNsaWRlcigiT3BlcmF0b3JzL09wIDQvb3A0X3N1c3RhaW4iLCAwLjcsIDAuMCwgICAxLjAsICAwLjAwMSk7Cm9wNF9yZWxlYXNlID0gaHNsaWRlcigiT3BlcmF0b3JzL09wIDQvb3A0X3JlbGVhc2UiLCAwLjUsIDAuMDEsICAxMC4wLCAwLjAwMSk7CgovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLy8gR3JvdXAgMiDigJQgQ3Jvc3MtTW9kdWxhdGlvbiBNYXRyaXggKHBhcmFtcyAyNOKAkzM1KQovLyBtWFkgPSBvcCBYIG1vZHVsYXRlcyBvcCBZIChYJ3Mgb3V0cHV0IGlzIGFkZGVkIHRvIFkncyBwaGFzZSkKLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgptMTIgPSBoc2xpZGVyKCJNYXRyaXgvbTEyIiwgMC4wLCAwLjAsIDEwLjAsIDAuMDAxKSA6IHNpLnNtb287Cm0xMyA9IGhzbGlkZXIoIk1hdHJpeC9tMTMiLCAwLjAsIDAuMCwgMTAuMCwgMC4wMDEpIDogc2kuc21vbzsKbTE0ID0gaHNsaWRlcigiTWF0cml4L20xNCIsIDAuMCwgMC4wLCAxMC4wLCAwLjAwMSkgOiBzaS5zbW9vOwptMjEgPSBoc2xpZGVyKCJNYXRyaXgvbTIxIiwgMS4wLCAwLjAsIDEwLjAsIDAuMDAxKSA6IHNpLnNtb287Cm0yMyA9IGhzbGlkZXIoIk1hdHJpeC9tMjMiLCAwLjAsIDAuMCwgMTAuMCwgMC4wMDEpIDogc2kuc21vbzsKbTI0ID0gaHNsaWRlcigiTWF0cml4L20yNCIsIDAuMCwgMC4wLCAxMC4wLCAwLjAwMSkgOiBzaS5zbW9vOwptMzEgPSBoc2xpZGVyKCJNYXRyaXgvbTMxIiwgMC4wLCAwLjAsIDEwLjAsIDAuMDAxKSA6IHNpLnNtb287Cm0zMiA9IGhzbGlkZXIoIk1hdHJpeC9tMzIiLCAwLjAsIDAuMCwgMTAuMCwgMC4wMDEpIDogc2kuc21vbzsKbTM0ID0gaHNsaWRlcigiTWF0cml4L20zNCIsIDAuMCwgMC4wLCAxMC4wLCAwLjAwMSkgOiBzaS5zbW9vOwptNDEgPSBoc2xpZGVyKCJNYXRyaXgvbTQxIiwgMC4wLCAwLjAsIDEwLjAsIDAuMDAxKSA6IHNpLnNtb287Cm00MiA9IGhzbGlkZXIoIk1hdHJpeC9tNDIiLCAwLjAsIDAuMCwgMTAuMCwgMC4wMDEpIDogc2kuc21vbzsKbTQzID0gaHNsaWRlcigiTWF0cml4L200MyIsIDAuMCwgMC4wLCAxMC4wLCAwLjAwMSkgOiBzaS5zbW9vOwoKLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi8vIEdyb3VwIDMg4oCUIFNlbGYtRmVlZGJhY2sgw5cgNCAgKHBhcmFtcyAzNuKAkzM5KQovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCmZiMSA9IGhzbGlkZXIoIkZlZWRiYWNrL2ZiMSIsIDAuMCwgMC4wLCAxLjAsIDAuMDAxKSA6IHNpLnNtb287CmZiMiA9IGhzbGlkZXIoIkZlZWRiYWNrL2ZiMiIsIDAuMCwgMC4wLCAxLjAsIDAuMDAxKSA6IHNpLnNtb287CmZiMyA9IGhzbGlkZXIoIkZlZWRiYWNrL2ZiMyIsIDAuMCwgMC4wLCAxLjAsIDAuMDAxKSA6IHNpLnNtb287CmZiNCA9IGhzbGlkZXIoIkZlZWRiYWNrL2ZiNCIsIDAuMCwgMC4wLCAxLjAsIDAuMDAxKSA6IHNpLnNtb287CgovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLy8gR3JvdXAgNCDigJQgR2xvYmFsIE1vZHVsYXRpb24gIChwYXJhbXMgNDDigJM0NykKLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpsZm9fcmF0ZSAgICAgICAgID0gaHNsaWRlcigiR2xvYmFsL2xmb19yYXRlIiwgICAgICAgICA1LjAsICAgMC4wMSwgIDIwLjAsICAwLjAwMSk7Cmxmb19kZXB0aCAgICAgICAgPSBoc2xpZGVyKCJHbG9iYWwvbGZvX2RlcHRoIiwgICAgICAgIDAuMCwgICAwLjAsICAgMS4wLCAgIDAuMDAxKSA6IHNpLnNtb287Cmxmb19waXRjaCAgICAgICAgPSBoc2xpZGVyKCJHbG9iYWwvbGZvX3BpdGNoIiwgICAgICAgIDAuNSwgICAwLjAsICAgMS4wLCAgIDAuMDAxKSA6IHNpLnNtb287Cmxmb19sZXZlbHMgICAgICAgPSBoc2xpZGVyKCJHbG9iYWwvbGZvX2xldmVscyIsICAgICAgIDAuNSwgICAwLjAsICAgMS4wLCAgIDAuMDAxKSA6IHNpLnNtb287Cmxmb193YXZlZm9ybSAgICAgPSBoc2xpZGVyKCJHbG9iYWwvbGZvX3dhdmVmb3JtIiwgICAgIDAuMCwgICAwLjAsICAgMS4wLCAgIDAuMDAxKTsKcGl0Y2hfZW52X2Ftb3VudCA9IGhzbGlkZXIoIkdsb2JhbC9waXRjaF9lbnZfYW1vdW50IiwgMC4wLCAgIDAuMCwgICAxLjAsICAgMC4wMDEpIDogc2kuc21vbzsKcGl0Y2hfZW52X2RlY2F5ICA9IGhzbGlkZXIoIkdsb2JhbC9waXRjaF9lbnZfZGVjYXkiLCAgMC4xLCAgIDAuMDAxLCAyLjAsICAgMC4wMDEpOwp2ZWxfaW5kZXhfc2NhbGUgID0gaHNsaWRlcigiR2xvYmFsL3ZlbF9pbmRleF9zY2FsZSIsICAwLjAsICAgMC4wLCAgIDEuMCwgICAwLjAwMSkgOiBzaS5zbW9vOwoKLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi8vIEdyb3VwIDUg4oCUIE1hc3RlciAgKHBhcmFtcyA0OOKAkzU1KQovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCm1hc3Rlcl9sZXZlbCAgICAgICA9IGhzbGlkZXIoIk1hc3Rlci9sZXZlbCIsICAgICAgICAgICAgICAwLjcsICAwLjAsICAgMS4wLCAgIDAuMDAxKSA6IHNpLnNtb287CnZlbF9zZW5zICAgICAgICAgICA9IGhzbGlkZXIoIk1hc3Rlci92ZWxfc2VucyIsICAgICAgICAgICAwLjUsICAwLjAsICAgMS4wLCAgIDAuMDAxKTsKcGl0Y2hfZ2xpZGUgICAgICAgID0gaHNsaWRlcigiTWFzdGVyL3BpdGNoX2dsaWRlIiwgICAgICAgIDAuMCwgIDAuMCwgICAxMC4wLCAgMC4wMDEpOwpmaW5lX3R1bmUgICAgICAgICAgPSBoc2xpZGVyKCJNYXN0ZXIvZmluZV90dW5lW3VuaXQ6Y2VudHNdIiwgMC4wLCAtNTAuMCwgNTAuMCwgMC4wMSk7CndhdmVmb3JtX2JsZW5kICAgICA9IGhzbGlkZXIoIk1hc3Rlci93YXZlZm9ybV9ibGVuZCIsICAgICAwLjAsICAwLjAsICAgMS4wLCAgIDAuMDAxKSA6IHNpLnNtb287CnN0ZXJlb19zcHJlYWQgICAgICA9IGhzbGlkZXIoIk1hc3Rlci9zdGVyZW9fc3ByZWFkIiwgICAgICAwLjEsICAwLjAsICAgMS4wLCAgIDAuMDAxKSA6IHNpLnNtb287Cm91dHB1dF9zYXR1cmF0aW9uICA9IGhzbGlkZXIoIk1hc3Rlci9vdXRwdXRfc2F0dXJhdGlvbiIsICAwLjAsICAwLjAsICAgMS4wLCAgIDAuMDAxKSA6IHNpLnNtb287Cm91dHB1dF9ocCAgICAgICAgICA9IGhzbGlkZXIoIk1hc3Rlci9vdXRwdXRfaHBbdW5pdDpIel0iLCAyMC4wLCAyMC4wLCAyMDAuMCwgIDAuMSk7CgovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLy8gRGVyaXZlZCB2YWx1ZXMKLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgovLyBDZW50cyDihpIgZnJlcXVlbmN5IHJhdGlvCmNlbnQycmF0aW8oYykgPSBwb3coMi4wLCBjIC8gMTIwMC4wKTsKCi8vIEJhc2UgZnJlcXVlbmN5IHdpdGggZmluZS10dW5lCmJhc2VfZnJlcSA9IGZyZXEgKiBjZW50MnJhdGlvKGZpbmVfdHVuZSk7CgovLyBWZWxvY2l0eSBnYWluOiBibGVuZCBiZXR3ZWVuIDEuMCAobm8gdmVsb2NpdHkpIGFuZCBhY3R1YWwgdmVsb2NpdHkKdmVsX2dhaW4gPSAoMS4wIC0gdmVsX3NlbnMpICsgdmVsX3NlbnMgKiB2ZWw7CgovLyBWZWxvY2l0eS1zY2FsZWQgRk0gaW5kZXggbXVsdGlwbGllcgovLyB2ZWxfaW5kZXhfc2NhbGU9MDogdmVsb2NpdHkgZG9lc24ndCBhZmZlY3QgRk0gaW5kaWNlcwovLyB2ZWxfaW5kZXhfc2NhbGU9MTogRk0gaW5kaWNlcyBhcmUgZnVsbHkgc2NhbGVkIGJ5IHZlbG9jaXR5CnZlbF9pZHhfbXVsdCA9ICgxLjAgLSB2ZWxfaW5kZXhfc2NhbGUpICsgdmVsX2luZGV4X3NjYWxlICogdmVsOwoKLy8gTEZPOiA0IHdhdmVmb3JtcyBjcm9zc2ZhZGVkCi8vIFNlZ21lbnRzOiBbMCwwLjMzMyk9c2luZeKGknRyaSwgWzAuMzMzLDAuNjY3KT10cmnihpJzYXcsIFswLjY2NywxXT1zYXfihpJzcXVhcmUKbGZvX3NpZyA9CiAgYmEuaWYobGZvX3dhdmVmb3JtIDwgMC4zMzMsCiAgICAoMS4wIC0gbGZvX3dhdmVmb3JtKjMuMCkgKiBvcy5vc2MobGZvX3JhdGUpICAgICAgKyBsZm9fd2F2ZWZvcm0qMy4wICAgICAgKiBvcy50cmlhbmdsZShsZm9fcmF0ZSksCiAgICBiYS5pZihsZm9fd2F2ZWZvcm0gPCAwLjY2NywKICAgICAgKDEuMCAtIChsZm9fd2F2ZWZvcm0tMC4zMzMpKjMuMCkgKiBvcy50cmlhbmdsZShsZm9fcmF0ZSkgKyAobGZvX3dhdmVmb3JtLTAuMzMzKSozLjAgKiBvcy5zYXd0b290aChsZm9fcmF0ZSksCiAgICAgICgxLjAgLSAobGZvX3dhdmVmb3JtLTAuNjY3KSozLjApICogb3Muc2F3dG9vdGgobGZvX3JhdGUpICsgKGxmb193YXZlZm9ybS0wLjY2NykqMy4wICogb3Muc3F1YXJlKGxmb19yYXRlKSkpOwoKLy8gUGl0Y2ggZW52ZWxvcGU6IGZhc3QgYXR0YWNrLCBjb25maWd1cmFibGUgZGVjYXksIHRyaWdnZXJlZCBieSBnYXRlCnBpdGNoX2VudiA9IGVuLmFyKDAuMDAxLCBwaXRjaF9lbnZfZGVjYXksIGdhdGUpOwoKLy8gTW9kdWxhdGVkIGZyZXF1ZW5jeTogZmluZS10dW5lICsgTEZPIHBpdGNoICsgcGl0Y2ggZW52ZWxvcGUKLy8gTEZPIHBpdGNoOiDCsTAuMDgzMyBzZW1pdG9uZXMgcGVyIHVuaXQgZGVwdGggKHN1YnRsZSB2aWJyYXRvKQovLyBQaXRjaCBlbnY6IHVwIHRvICsxIG9jdGF2ZSAocmF0aW8gKzEuMCA9ICtvY3RhdmUpCmxmb19waXRjaF9vZmZzZXQgPSBsZm9fc2lnICogbGZvX2RlcHRoICogbGZvX3BpdGNoICogMC4wMDgzOyAgIC8vIH4wLjEgc2VtaXRvbmUgbWF4CnBpdGNoX2Vudl9vZmZzZXQgPSBwaXRjaF9lbnYgKiBwaXRjaF9lbnZfYW1vdW50OyAgICAgICAgICAgICAgICAgLy8gMC4uMSBvY3QKbW9kX2ZyZXEgPSBiYXNlX2ZyZXEgKiBwb3coMi4wLCBsZm9fcGl0Y2hfb2Zmc2V0ICsgcGl0Y2hfZW52X29mZnNldCk7CgovLyBMRk8gbGV2ZWwgbW9kdWxhdGlvbiAodHJlbW9sbyk6IDEuMCB3aGVuIGRlcHRoPTAsIGRpcHMgdG8gKDEtMC41KmRlcHRoKmxmb19sZXZlbHMpIGF0IHRyb3VnaApsZm9fbGV2ZWxfZmFjdG9yID0gMS4wIC0gbGZvX2RlcHRoICogbGZvX2xldmVscyAqIDAuNSAqICgxLjAgLSBsZm9fc2lnKSAqIDAuNTsKCi8vIFBlci1vcGVyYXRvciBvc2NpbGxhdG9yOiBibGVuZCBzaW5lICgwKSDihpIgdHJpYW5nbGUgKDEpCm9wX29zYyhmKSA9ICgxLjAgLSB3YXZlZm9ybV9ibGVuZCkgKiBvcy5vc2MoZikgKyB3YXZlZm9ybV9ibGVuZCAqIG9zLnRyaWFuZ2xlKGYpOwoKLy8gUGVyLW9wZXJhdG9yIEFEU1IgZW52ZWxvcGVzCmVudjEgPSBlbi5hZHNyKG9wMV9hdHRhY2ssIG9wMV9kZWNheSwgb3AxX3N1c3RhaW4sIG9wMV9yZWxlYXNlLCBnYXRlKTsKZW52MiA9IGVuLmFkc3Iob3AyX2F0dGFjaywgb3AyX2RlY2F5LCBvcDJfc3VzdGFpbiwgb3AyX3JlbGVhc2UsIGdhdGUpOwplbnYzID0gZW4uYWRzcihvcDNfYXR0YWNrLCBvcDNfZGVjYXksIG9wM19zdXN0YWluLCBvcDNfcmVsZWFzZSwgZ2F0ZSk7CmVudjQgPSBlbi5hZHNyKG9wNF9hdHRhY2ssIG9wNF9kZWNheSwgb3A0X3N1c3RhaW4sIG9wNF9yZWxlYXNlLCBnYXRlKTsKCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQovLyA0LU9wZXJhdG9yIEZNIFJvdXRpbmcKLy8KLy8gSW1wbGVtZW50YXRpb24gc3RyYXRlZ3k6IGJ1aWxkIGEgcmVjdXJzaXZlIDQtY2hhbm5lbCBidXMgdXNpbmcgfgovLyBUaGUgYnVzIGNhcnJpZXMgKG9wMV9vdXQsIG9wMl9vdXQsIG9wM19vdXQsIG9wNF9vdXQpIHdpdGggMS1zYW1wbGUgZGVsYXkuCi8vIEVhY2ggZnJhbWUsIHdlIGNvbXB1dGUgbmV3IG91dHB1dHMgZnJvbSBkZWxheWVkIHByZXZpb3VzIG91dHB1dHMuCi8vCi8vIGZtYnVzOiAoZDEsZDIsZDMsZDQpIOKGkiAob3AxX291dCxvcDJfb3V0LG9wM19vdXQsb3A0X291dCkKLy8gd2hlcmUgZE4gYXJlIHRoZSAxLXNhbXBsZS1kZWxheWVkIHByZXZpb3VzIG91dHB1dHMgKHZpYSB+KQovLwovLyBGTSBwaGFzZSBkZXZpYXRpb246IGRldmlhdGlvbl9oeiA9IGluZGV4ICogbW9kdWxhdG9yX291dCAqIGNhcnJpZXJfZnJlcQovLyBUaGlzIGlzIHRoZSBzdGFuZGFyZCAiZnJlcXVlbmN5IG1vZHVsYXRpb24iIGZvcm11bGEgd2hlcmUgbW9kdWxhdG9yX291dCDiiIggWy0xLDFdCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKZm1idXMoZDEsZDIsZDMsZDQpID0KICBvcDFfb3V0LCBvcDJfb3V0LCBvcDNfb3V0LCBvcDRfb3V0CndpdGggewogIC8vIEVmZmVjdGl2ZSBpbmRpY2VzIHNjYWxlZCBieSB2ZWxvY2l0eQogIG0xMmUgPSBtMTIgKiB2ZWxfaWR4X211bHQ7ICBtMTNlID0gbTEzICogdmVsX2lkeF9tdWx0OyAgbTE0ZSA9IG0xNCAqIHZlbF9pZHhfbXVsdDsKICBtMjFlID0gbTIxICogdmVsX2lkeF9tdWx0OyAgbTIzZSA9IG0yMyAqIHZlbF9pZHhfbXVsdDsgIG0yNGUgPSBtMjQgKiB2ZWxfaWR4X211bHQ7CiAgbTMxZSA9IG0zMSAqIHZlbF9pZHhfbXVsdDsgIG0zMmUgPSBtMzIgKiB2ZWxfaWR4X211bHQ7ICBtMzRlID0gbTM0ICogdmVsX2lkeF9tdWx0OwogIG00MWUgPSBtNDEgKiB2ZWxfaWR4X211bHQ7ICBtNDJlID0gbTQyICogdmVsX2lkeF9tdWx0OyAgbTQzZSA9IG00MyAqIHZlbF9pZHhfbXVsdDsKICBmYjFlID0gZmIxICogdmVsX2lkeF9tdWx0OyAgZmIyZSA9IGZiMiAqIHZlbF9pZHhfbXVsdDsKICBmYjNlID0gZmIzICogdmVsX2lkeF9tdWx0OyAgZmI0ZSA9IGZiNCAqIHZlbF9pZHhfbXVsdDsKCiAgZjEgPSBtb2RfZnJlcSAqIG9wMV9yYXRpbzsKICBmMiA9IG1vZF9mcmVxICogb3AyX3JhdGlvOwogIGYzID0gbW9kX2ZyZXEgKiBvcDNfcmF0aW87CiAgZjQgPSBtb2RfZnJlcSAqIG9wNF9yYXRpbzsKCiAgb3AxX291dCA9IGVudjEgKiBvcDFfbGV2ZWwgKiBsZm9fbGV2ZWxfZmFjdG9yICogdmVsX2dhaW4gKgogICAgb3Bfb3NjKGYxICsgKG0yMWUqZDIgKyBtMzFlKmQzICsgbTQxZSpkNCArIGZiMWUqZDEpICogZjEpOwoKICBvcDJfb3V0ID0gZW52MiAqIG9wMl9sZXZlbCAqIGxmb19sZXZlbF9mYWN0b3IgKiB2ZWxfZ2FpbiAqCiAgICBvcF9vc2MoZjIgKyAobTEyZSpkMSArIG0zMmUqZDMgKyBtNDJlKmQ0ICsgZmIyZSpkMikgKiBmMik7CgogIG9wM19vdXQgPSBlbnYzICogb3AzX2xldmVsICogbGZvX2xldmVsX2ZhY3RvciAqIHZlbF9nYWluICoKICAgIG9wX29zYyhmMyArIChtMTNlKmQxICsgbTIzZSpkMiArIG00M2UqZDQgKyBmYjNlKmQzKSAqIGYzKTsKCiAgb3A0X291dCA9IGVudjQgKiBvcDRfbGV2ZWwgKiBsZm9fbGV2ZWxfZmFjdG9yICogdmVsX2dhaW4gKgogICAgb3Bfb3NjKGY0ICsgKG0xNGUqZDEgKyBtMjRlKmQyICsgbTM0ZSpkMyArIGZiNGUqZDQpICogZjQpOwp9OwoKLy8gUm91dGUgNC1jaGFubmVsIGJ1cyB0aHJvdWdoIGZlZWRiYWNrIGxvb3AgKGludHJvZHVjZXMgbWFuZGF0b3J5IDEtc2FtcGxlIGRlbGF5KQovLyBPdXRwdXQgb2YgZm1idXMgaXMgKG9wMSxvcDIsb3AzLG9wNCk7IHN1bSBhbGwgZm9yIGF1ZGlvIG91dApmbV9vdXQgPSAoZm1idXMgfiAoc2kuYnVzKDQpKSkgOiAoXywgXywgXywgXykgOj4gXzsKCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQovLyBQb3N0LXByb2Nlc3NpbmcKLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgovLyBTb2Z0IGNsaXA6IHRhbmggYXBwcm94aW1hdGlvbiAoZHJpdmUgY29udHJvbGxlZCBieSBvdXRwdXRfc2F0dXJhdGlvbikKLy8gQXQgMDogbGluZWFyIHBhc3N0aHJvdWdoLiBBdCAxOiBjbGlwcyBhdCDCsX4wLjYKc29mdF9jbGlwKHgpID0geCAvIG1heCgwLjAwMSwgMS4wICsgb3V0cHV0X3NhdHVyYXRpb24gKiBhYnMoeCkpOwoKLy8gU3RlcmVvIHNwcmVhZCB2aWEgc2xpZ2h0IHBpdGNoIGRldHVuaW5nIEwgdnMgUgpzcHJlYWRfY2VudHMgPSBzdGVyZW9fc3ByZWFkICogNS4wOyAgIC8vIMKxNSBjZW50cyBtYXgKCi8vIEhQIGZpbHRlciByZW1vdmVzIERDIG9mZnNldCBmcm9tIGhlYXZ5IGZlZWRiYWNrIEZNCmhwX291dCh4KSA9IGZpLmhpZ2hwYXNzKDEsIG91dHB1dF9ocCwgeCk7CgovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLy8gcHJvY2VzczogbW9ubyBGTSBzdW0g4oaSIHNjYWxlIOKGkiBzb2Z0LWNsaXAg4oaSIEhQIOKGkiBzdGVyZW8gc3ByZWFkCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKcHJvY2VzcyA9CiAgZm1fb3V0CiAgOiAqKG1hc3Rlcl9sZXZlbCAqIDAuMjUpICAgICAgIC8vIDQgb3BzIHN1bW1pbmc6IHNjYWxlIHRvIHNhZmUgcmFuZ2UKICA6IHNvZnRfY2xpcAogIDogaHBfb3V0CiAgPDogKihjZW50MnJhdGlvKHNwcmVhZF9jZW50cykpLCAqKGNlbnQycmF0aW8oMC4wIC0gc3ByZWFkX2NlbnRzKSk7Cg==","inputs": 0,"outputs": 2,"meta": [ { "basics.lib/name": "Faust Basic Element Library" },{ "basics.lib/version": "1.21.0" },{ "compile_options": "-lang wasm -ct 1 -cn fm_matrix -es 1 -mcd 16 -mdd 1024 -mdy 33 -single -ftz 0" },{ "envelopes.lib/adsr:author": "Yann Orlarey and Andrey Bundin" },{ "envelopes.lib/ar:author": "Yann Orlarey, Stéphane Letz" },{ "envelopes.lib/author": "GRAME" },{ "envelopes.lib/copyright": "GRAME" },{ "envelopes.lib/license": "LGPL with exception" },{ "envelopes.lib/name": "Faust Envelope Library" },{ "envelopes.lib/version": "1.3.0" },{ "filename": "fm-matrix.dsp" },{ "filters.lib/highpass:author": "Julius O. Smith III" },{ "filters.lib/highpass:copyright": "Copyright (C) 2003-2019 by Julius O. Smith III " },{ "filters.lib/lowpass0_highpass1": "Copyright (C) 2003-2019 by Julius O. Smith III " },{ "filters.lib/lowpass0_highpass1:author": "Julius O. Smith III" },{ "filters.lib/name": "Faust Filters Library" },{ "filters.lib/pole:author": "Julius O. Smith III" },{ "filters.lib/pole:copyright": "Copyright (C) 2003-2019 by Julius O. Smith III " },{ "filters.lib/pole:license": "MIT-style STK-4.3 license" },{ "filters.lib/tf1:author": "Julius O. Smith III" },{ "filters.lib/tf1:copyright": "Copyright (C) 2003-2019 by Julius O. Smith III " },{ "filters.lib/tf1:license": "MIT-style STK-4.3 license" },{ "filters.lib/tf1s:author": "Julius O. Smith III" },{ "filters.lib/tf1s:copyright": "Copyright (C) 2003-2019 by Julius O. Smith III " },{ "filters.lib/tf1s:license": "MIT-style STK-4.3 license" },{ "filters.lib/version": "1.7.1" },{ "maths.lib/author": "GRAME" },{ "maths.lib/copyright": "GRAME" },{ "maths.lib/license": "LGPL with exception" },{ "maths.lib/name": "Faust Math Library" },{ "maths.lib/version": "2.8.1" },{ "name": "fm-matrix" },{ "oscillators.lib/lf_sawpos:author": "Bart Brouns, revised by Stéphane Letz" },{ "oscillators.lib/lf_sawpos:licence": "STK-4.3" },{ "oscillators.lib/name": "Faust Oscillator Library" },{ "oscillators.lib/saw2ptr:author": "Julius O. Smith III" },{ "oscillators.lib/saw2ptr:license": "STK-4.3" },{ "oscillators.lib/sawN:author": "Julius O. Smith III" },{ "oscillators.lib/sawN:license": "STK-4.3" },{ "oscillators.lib/version": "1.6.0" },{ "platform.lib/name": "Generic Platform Library" },{ "platform.lib/version": "1.3.0" },{ "signals.lib/name": "Faust Signal Routing Library" },{ "signals.lib/version": "1.6.0" }],"ui": [ {"type": "vgroup","label": "fm-matrix","items": [ {"type": "hslider","label": "Feedback/fb1","varname": "fHslider3","shortname": "Feedback_fb1","address": "/fm-matrix/Feedback_fb1","index": 262200,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "Feedback/fb2","varname": "fHslider26","shortname": "Feedback_fb2","address": "/fm-matrix/Feedback_fb2","index": 295312,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "Feedback/fb3","varname": "fHslider36","shortname": "Feedback_fb3","address": "/fm-matrix/Feedback_fb3","index": 311824,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "Feedback/fb4","varname": "fHslider46","shortname": "Feedback_fb4","address": "/fm-matrix/Feedback_fb4","index": 328336,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "Global/lfo_depth","varname": "fHslider14","shortname": "Global_lfo_depth","address": "/fm-matrix/Global_lfo_depth","index": 278784,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "Global/lfo_levels","varname": "fHslider20","shortname": "Global_lfo_levels","address": "/fm-matrix/Global_lfo_levels","index": 295248,"init": 0.5,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "Global/lfo_pitch","varname": "fHslider13","shortname": "Global_lfo_pitch","address": "/fm-matrix/Global_lfo_pitch","index": 278772,"init": 0.5,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "Global/lfo_rate","varname": "fHslider12","shortname": "Global_lfo_rate","address": "/fm-matrix/Global_lfo_rate","index": 262320,"init": 5,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "Global/lfo_waveform","varname": "fHslider11","shortname": "Global_lfo_waveform","address": "/fm-matrix/Global_lfo_waveform","index": 262316,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "Global/pitch_env_amount","varname": "fHslider10","shortname": "Global_pitch_env_amount","address": "/fm-matrix/Global_pitch_env_amount","index": 262304,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "Global/pitch_env_decay","varname": "fHslider9","shortname": "Global_pitch_env_decay","address": "/fm-matrix/Global_pitch_env_decay","index": 262300,"init": 0.1,"min": 0.001,"max": 2,"step": 0.001},{"type": "hslider","label": "Global/vel_index_scale","varname": "fHslider8","shortname": "Global_vel_index_scale","address": "/fm-matrix/Global_vel_index_scale","index": 262260,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "Master/_vel","varname": "fHslider7","shortname": "Master_vel","address": "/fm-matrix/Master__vel","index": 262248,"meta": [{ "hidden": "1" }],"init": 0.7,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "Master/fine_tune","varname": "fHslider16","shortname": "Master_fine_tune","address": "/fm-matrix/Master_fine_tune","index": 278808,"meta": [{ "unit": "cents" }],"init": 0,"min": -50,"max": 50,"step": 0.01},{"type": "hslider","label": "Master/freq","varname": "fHslider17","shortname": "Master_freq","address": "/fm-matrix/Master_freq","index": 278812,"meta": [{ "hidden": "1" },{ "unit": "Hz" }],"init": 220,"min": 20,"max": 4000,"step": 0.01},{"type": "button","label": "Master/gate","varname": "fButton0","shortname": "Master_gate","address": "/fm-matrix/Master_gate","index": 262272,"meta": [{ "hidden": "1" }]},{"type": "hslider","label": "Master/level","varname": "fHslider2","shortname": "Master_level","address": "/fm-matrix/Master_level","index": 262188,"init": 0.7,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "Master/output_hp","varname": "fHslider1","shortname": "Master_output_hp","address": "/fm-matrix/Master_output_hp","index": 262180,"meta": [{ "unit": "Hz" }],"init": 20,"min": 20,"max": 200,"step": 0.1},{"type": "hslider","label": "Master/output_saturation","varname": "fHslider56","shortname": "Master_output_saturation","address": "/fm-matrix/Master_output_saturation","index": 344848,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "Master/stereo_spread","varname": "fHslider0","shortname": "Master_stereo_spread","address": "/fm-matrix/Master_stereo_spread","index": 262168,"init": 0.1,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "Master/vel_sens","varname": "fHslider19","shortname": "Master_vel_sens","address": "/fm-matrix/Master_vel_sens","index": 295244,"init": 0.5,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "Master/waveform_blend","varname": "fHslider18","shortname": "Master_waveform_blend","address": "/fm-matrix/Master_waveform_blend","index": 295224,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "Matrix/m12","varname": "fHslider29","shortname": "Matrix_m12","address": "/fm-matrix/Matrix_m12","index": 295348,"init": 0,"min": 0,"max": 10,"step": 0.001},{"type": "hslider","label": "Matrix/m13","varname": "fHslider39","shortname": "Matrix_m13","address": "/fm-matrix/Matrix_m13","index": 311860,"init": 0,"min": 0,"max": 10,"step": 0.001},{"type": "hslider","label": "Matrix/m14","varname": "fHslider49","shortname": "Matrix_m14","address": "/fm-matrix/Matrix_m14","index": 328372,"init": 0,"min": 0,"max": 10,"step": 0.001},{"type": "hslider","label": "Matrix/m21","varname": "fHslider6","shortname": "Matrix_m21","address": "/fm-matrix/Matrix_m21","index": 262236,"init": 1,"min": 0,"max": 10,"step": 0.001},{"type": "hslider","label": "Matrix/m23","varname": "fHslider38","shortname": "Matrix_m23","address": "/fm-matrix/Matrix_m23","index": 311848,"init": 0,"min": 0,"max": 10,"step": 0.001},{"type": "hslider","label": "Matrix/m24","varname": "fHslider48","shortname": "Matrix_m24","address": "/fm-matrix/Matrix_m24","index": 328360,"init": 0,"min": 0,"max": 10,"step": 0.001},{"type": "hslider","label": "Matrix/m31","varname": "fHslider5","shortname": "Matrix_m31","address": "/fm-matrix/Matrix_m31","index": 262224,"init": 0,"min": 0,"max": 10,"step": 0.001},{"type": "hslider","label": "Matrix/m32","varname": "fHslider28","shortname": "Matrix_m32","address": "/fm-matrix/Matrix_m32","index": 295336,"init": 0,"min": 0,"max": 10,"step": 0.001},{"type": "hslider","label": "Matrix/m34","varname": "fHslider47","shortname": "Matrix_m34","address": "/fm-matrix/Matrix_m34","index": 328348,"init": 0,"min": 0,"max": 10,"step": 0.001},{"type": "hslider","label": "Matrix/m41","varname": "fHslider4","shortname": "Matrix_m41","address": "/fm-matrix/Matrix_m41","index": 262212,"init": 0,"min": 0,"max": 10,"step": 0.001},{"type": "hslider","label": "Matrix/m42","varname": "fHslider27","shortname": "Matrix_m42","address": "/fm-matrix/Matrix_m42","index": 295324,"init": 0,"min": 0,"max": 10,"step": 0.001},{"type": "hslider","label": "Matrix/m43","varname": "fHslider37","shortname": "Matrix_m43","address": "/fm-matrix/Matrix_m43","index": 311836,"init": 0,"min": 0,"max": 10,"step": 0.001},{"type": "hslider","label": "Operators/Op 1/op1_attack","varname": "fHslider22","shortname": "Operators_Op_1_op1_attack","address": "/fm-matrix/Operators_Op_1_op1_attack","index": 295280,"init": 0.01,"min": 0.001,"max": 5,"step": 0.001},{"type": "hslider","label": "Operators/Op 1/op1_decay","varname": "fHslider23","shortname": "Operators_Op_1_op1_decay","address": "/fm-matrix/Operators_Op_1_op1_decay","index": 295284,"init": 0.3,"min": 0.001,"max": 10,"step": 0.001},{"type": "hslider","label": "Operators/Op 1/op1_level","varname": "fHslider25","shortname": "Operators_Op_1_op1_level","address": "/fm-matrix/Operators_Op_1_op1_level","index": 295292,"init": 0.8,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "Operators/Op 1/op1_ratio","varname": "fHslider15","shortname": "Operators_Op_1_op1_ratio","address": "/fm-matrix/Operators_Op_1_op1_ratio","index": 278796,"init": 1,"min": 0.125,"max": 16,"step": 0.001},{"type": "hslider","label": "Operators/Op 1/op1_release","varname": "fHslider21","shortname": "Operators_Op_1_op1_release","address": "/fm-matrix/Operators_Op_1_op1_release","index": 295268,"init": 0.5,"min": 0.01,"max": 10,"step": 0.001},{"type": "hslider","label": "Operators/Op 1/op1_sustain","varname": "fHslider24","shortname": "Operators_Op_1_op1_sustain","address": "/fm-matrix/Operators_Op_1_op1_sustain","index": 295288,"init": 0.7,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "Operators/Op 2/op2_attack","varname": "fHslider32","shortname": "Operators_Op_2_op2_attack","address": "/fm-matrix/Operators_Op_2_op2_attack","index": 311792,"init": 0.01,"min": 0.001,"max": 5,"step": 0.001},{"type": "hslider","label": "Operators/Op 2/op2_decay","varname": "fHslider33","shortname": "Operators_Op_2_op2_decay","address": "/fm-matrix/Operators_Op_2_op2_decay","index": 311796,"init": 0.3,"min": 0.001,"max": 10,"step": 0.001},{"type": "hslider","label": "Operators/Op 2/op2_level","varname": "fHslider35","shortname": "Operators_Op_2_op2_level","address": "/fm-matrix/Operators_Op_2_op2_level","index": 311804,"init": 0.6,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "Operators/Op 2/op2_ratio","varname": "fHslider30","shortname": "Operators_Op_2_op2_ratio","address": "/fm-matrix/Operators_Op_2_op2_ratio","index": 295360,"init": 2,"min": 0.125,"max": 16,"step": 0.001},{"type": "hslider","label": "Operators/Op 2/op2_release","varname": "fHslider31","shortname": "Operators_Op_2_op2_release","address": "/fm-matrix/Operators_Op_2_op2_release","index": 311788,"init": 0.5,"min": 0.01,"max": 10,"step": 0.001},{"type": "hslider","label": "Operators/Op 2/op2_sustain","varname": "fHslider34","shortname": "Operators_Op_2_op2_sustain","address": "/fm-matrix/Operators_Op_2_op2_sustain","index": 311800,"init": 0.7,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "Operators/Op 3/op3_attack","varname": "fHslider42","shortname": "Operators_Op_3_op3_attack","address": "/fm-matrix/Operators_Op_3_op3_attack","index": 328304,"init": 0.01,"min": 0.001,"max": 5,"step": 0.001},{"type": "hslider","label": "Operators/Op 3/op3_decay","varname": "fHslider43","shortname": "Operators_Op_3_op3_decay","address": "/fm-matrix/Operators_Op_3_op3_decay","index": 328308,"init": 0.3,"min": 0.001,"max": 10,"step": 0.001},{"type": "hslider","label": "Operators/Op 3/op3_level","varname": "fHslider45","shortname": "Operators_Op_3_op3_level","address": "/fm-matrix/Operators_Op_3_op3_level","index": 328316,"init": 0.4,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "Operators/Op 3/op3_ratio","varname": "fHslider40","shortname": "Operators_Op_3_op3_ratio","address": "/fm-matrix/Operators_Op_3_op3_ratio","index": 311872,"init": 3,"min": 0.125,"max": 16,"step": 0.001},{"type": "hslider","label": "Operators/Op 3/op3_release","varname": "fHslider41","shortname": "Operators_Op_3_op3_release","address": "/fm-matrix/Operators_Op_3_op3_release","index": 328300,"init": 0.5,"min": 0.01,"max": 10,"step": 0.001},{"type": "hslider","label": "Operators/Op 3/op3_sustain","varname": "fHslider44","shortname": "Operators_Op_3_op3_sustain","address": "/fm-matrix/Operators_Op_3_op3_sustain","index": 328312,"init": 0.7,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "Operators/Op 4/op4_attack","varname": "fHslider52","shortname": "Operators_Op_4_op4_attack","address": "/fm-matrix/Operators_Op_4_op4_attack","index": 344816,"init": 0.01,"min": 0.001,"max": 5,"step": 0.001},{"type": "hslider","label": "Operators/Op 4/op4_decay","varname": "fHslider53","shortname": "Operators_Op_4_op4_decay","address": "/fm-matrix/Operators_Op_4_op4_decay","index": 344820,"init": 0.3,"min": 0.001,"max": 10,"step": 0.001},{"type": "hslider","label": "Operators/Op 4/op4_level","varname": "fHslider55","shortname": "Operators_Op_4_op4_level","address": "/fm-matrix/Operators_Op_4_op4_level","index": 344828,"init": 0.3,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "Operators/Op 4/op4_ratio","varname": "fHslider50","shortname": "Operators_Op_4_op4_ratio","address": "/fm-matrix/Operators_Op_4_op4_ratio","index": 328384,"init": 0.5,"min": 0.125,"max": 16,"step": 0.001},{"type": "hslider","label": "Operators/Op 4/op4_release","varname": "fHslider51","shortname": "Operators_Op_4_op4_release","address": "/fm-matrix/Operators_Op_4_op4_release","index": 344812,"init": 0.5,"min": 0.01,"max": 10,"step": 0.001},{"type": "hslider","label": "Operators/Op 4/op4_sustain","varname": "fHslider54","shortname": "Operators_Op_4_op4_sustain","address": "/fm-matrix/Operators_Op_4_op4_sustain","index": 344824,"init": 0.7,"min": 0,"max": 1,"step": 0.001}]}]} \ No newline at end of file diff --git a/playground/faust/fm-matrix.wasm b/playground/faust/fm-matrix.wasm index 55dc38d0d5416b7fb2052ccba1478cf334ca14e1..ecc29c55afe4994e3b651307bcf4def26f83f9b1 100644 GIT binary patch literal 46317 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 literal 1863689 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.dsp") +# title header comment title +# description short audio-path description +# destinations list of (idx, short_name, doc) — exactly 10 entries +# sound_params Faust source for engine sound params (hsliders/buttons) +# signal_flow Faust source for derived signals + process line +# --------------------------------------------------------------------------- + + +# Common hidden-controls block (identical for all engines) +HIDDEN_BLOCK = """\ +// --------------------------------------------------------------------------- +// Hidden controls +// --------------------------------------------------------------------------- +freq = hslider("0_Hidden/freq[hidden:1][unit:Hz]", 220, 20, 4000, 0.01); +gate = button("0_Hidden/gate[hidden:1]"); +vel = hslider("0_Hidden/_vel[hidden:1]", 0.7, 0.0, 1.0, 0.001) : si.smoo; +""" + + +# --------------------------------------------------------------------------- +# Engine 1 — Subtractive (Minimoog-style) +# --------------------------------------------------------------------------- + +SUBTRACTIVE_DESTS = [ + (0, "pitch", "semitones, applied to all osc frequencies"), + (1, "osc2_detune", "cents offset added to osc2 detune knob"), + (2, "osc3_detune", "cents offset added to osc3 detune knob"), + (3, "osc_mix_bal", "-1..+1 crossfades osc1<->osc3"), + (4, "noise_level", "added to noise level knob"), + (5, "cutoff", "+/-5 octaves of filter cutoff modulation"), + (6, "resonance", "added to res knob"), + (7, "filter_env_amt", "second independent +/-5 octave cutoff mod channel"), + (8, "amp", "added to amp knob (route an ADSR here for a VCA env)"), + (9, "pan", "added to pan knob"), +] + +SUBTRACTIVE_PARAMS = """\ +// --------------------------------------------------------------------------- +// Group 1 — Oscillators +// --------------------------------------------------------------------------- +osc1_wave = hslider("1_Oscillators/00_osc1_wave[tooltip:0=saw,0.5=tri,1=square]", 0.0, 0.0, 1.0, 0.001); +osc1_range = hslider("1_Oscillators/01_osc1_range[unit:oct]", 0.0, -2.0, 2.0, 0.01); +osc1_level = hslider("1_Oscillators/02_osc1_level", 0.8, 0.0, 1.0, 0.001); + +osc2_wave = hslider("1_Oscillators/03_osc2_wave[tooltip:0=saw,0.5=tri,1=square]", 0.0, 0.0, 1.0, 0.001); +osc2_range = hslider("1_Oscillators/04_osc2_range[unit:oct]", 0.0, -2.0, 2.0, 0.01); +osc2_detune = hslider("1_Oscillators/05_osc2_detune[unit:ct]", 0.0, -50.0, 50.0, 0.1); +osc2_level = hslider("1_Oscillators/06_osc2_level", 0.6, 0.0, 1.0, 0.001); + +osc3_wave = hslider("1_Oscillators/07_osc3_wave[tooltip:0=saw,0.5=tri,1=square]", 0.5, 0.0, 1.0, 0.001); +osc3_range = hslider("1_Oscillators/08_osc3_range[unit:oct]", -1.0, -2.0, 2.0, 0.01); +osc3_detune = hslider("1_Oscillators/09_osc3_detune[unit:ct]", 0.0, -50.0, 50.0, 0.1); +osc3_level = hslider("1_Oscillators/10_osc3_level", 0.4, 0.0, 1.0, 0.001); +osc3_kb_track = hslider("1_Oscillators/11_osc3_kb_track[tooltip:1=tracks keyboard,0=LFO]", 1.0, 0.0, 1.0, 1.0); + +// --------------------------------------------------------------------------- +// Group 2 — Mixer +// --------------------------------------------------------------------------- +noise_type = hslider("2_Mixer/00_noise_type[tooltip:0=white,1=pink]", 0.0, 0.0, 1.0, 1.0); +noise_level = hslider("2_Mixer/01_noise_level", 0.0, 0.0, 1.0, 0.001); +mixer_drive = hslider("2_Mixer/02_mixer_drive[tooltip:Pre-filter overdrive]", 1.0, 0.5, 4.0, 0.001); + +// --------------------------------------------------------------------------- +// Group 3 — Filter +// --------------------------------------------------------------------------- +cutoff = hslider("3_Filter/00_cutoff[scale:log][unit:Hz]", 1200.0, 20.0, 20000.0, 0.1); +resonance = hslider("3_Filter/01_resonance", 0.3, 0.0, 1.0, 0.001); +filter_kb = hslider("3_Filter/02_filter_kb_track", 0.5, 0.0, 1.0, 0.001); + +// --------------------------------------------------------------------------- +// Group 4 — Master +// --------------------------------------------------------------------------- +master_level = hslider("4_Master/00_master_level", 0.7, 0.0, 1.0, 0.001); +master_glide = hslider("4_Master/01_master_glide[unit:s][scale:log]", 0.0, 0.0, 2.0, 0.001); +master_tune = hslider("4_Master/02_master_tune[unit:ct]", 0.0, -50.0, 50.0, 0.1); +master_pan = hslider("4_Master/03_master_pan", 0.0, -1.0, 1.0, 0.001); +""" + +SUBTRACTIVE_FLOW = """\ +// --------------------------------------------------------------------------- +// Derived signals +// --------------------------------------------------------------------------- + +cent2ratio(c) = pow(2.0, c / 1200.0); +oct2ratio(o) = pow(2.0, o); +semi2ratio(s) = pow(2.0, s / 12.0); + +// Portamento +glide_tau = 0.0001 + master_glide * 1.0; +freq_glided = freq : si.smooth(ba.tau2pole(glide_tau)); + +// Base (glide + master fine tune) +base_freq = freq_glided * cent2ratio(master_tune); + +// --------------------------------------------------------------------------- +// Per-oscillator wavetable (saw → tri → square crossfade) +// 0.0 → saw, 0.5 → triangle, 1.0 → square. Output in [-1,+1]. +// --------------------------------------------------------------------------- +osc_wave(shape, f) = + ba.if(shape < 0.5, + (1.0 - shape*2.0) * os.lf_saw(f) + (shape*2.0) * os.lf_triangle(f), + (1.0 - (shape-0.5)*2.0) * os.lf_triangle(f) + ((shape-0.5)*2.0) * os.lf_squarewave(f)); + +// --------------------------------------------------------------------------- +// Oscillator frequencies (pitch modulation: 1 unit = 12 semitones) +// --------------------------------------------------------------------------- +pitch_ratio = semi2ratio(mod_pitch(gate) * 12.0); + +osc1_freq = base_freq * oct2ratio(osc1_range) * pitch_ratio; +osc2_freq = base_freq * oct2ratio(osc2_range) * pitch_ratio + * cent2ratio(osc2_detune + mod_osc2_detune(gate) * 50.0); +osc3_freq_tracked = base_freq * oct2ratio(osc3_range) * pitch_ratio + * cent2ratio(osc3_detune + mod_osc3_detune(gate) * 50.0); +// When kb_track=0, osc3 becomes a free-running sub/LFO source at ~55 Hz * oct +osc3_freq_untracked = 55.0 * oct2ratio(osc3_range) + * cent2ratio(osc3_detune + mod_osc3_detune(gate) * 50.0); +osc3_freq = osc3_kb_track * osc3_freq_tracked + (1.0 - osc3_kb_track) * osc3_freq_untracked; + +// --------------------------------------------------------------------------- +// Oscillators +// --------------------------------------------------------------------------- +o1 = osc_wave(osc1_wave, osc1_freq); +o2 = osc_wave(osc2_wave, osc2_freq); +o3 = osc_wave(osc3_wave, osc3_freq); + +// Osc mix balance: -1 = all osc1, +1 = all osc3, 0 = both equal. osc2 unaffected. +mix_bal = max(-1.0, min(1.0, mod_osc_mix_bal(gate))); +mix_t = (mix_bal + 1.0) * 0.5; // 0..1 +w_o1 = 1.0 - mix_t; +w_o3 = mix_t; + +// --------------------------------------------------------------------------- +// Noise: white (noise_type<0.5) / pink (else) +// --------------------------------------------------------------------------- +white_noise = no.noise; +pink_noise = no.pink_noise; +noise_raw = ba.if(noise_type < 0.5, white_noise, pink_noise); +noise_lvl = max(0.0, min(1.0, noise_level + mod_noise_level(gate))); + +// --------------------------------------------------------------------------- +// Mixer sum +// --------------------------------------------------------------------------- +mix_sum = + o1 * osc1_level * w_o1 + + o2 * osc2_level + + o3 * osc3_level * w_o3 + + noise_raw * noise_lvl; + +mix_driven = ma.tanh(mix_sum * mixer_drive); + +// --------------------------------------------------------------------------- +// Filter — Moog ladder. Cutoff is modulated in octaves (±5 oct per mod unit). +// --------------------------------------------------------------------------- +cutoff_mod_oct = (mod_cutoff(gate) + mod_filter_env_amt(gate)) * 5.0; +kb_scale = pow(freq_glided / 440.0, filter_kb); // 1.0 at A4 when kb=1 +eff_cutoff_raw = cutoff * kb_scale * oct2ratio(cutoff_mod_oct); +eff_cutoff = max(20.0, min(18000.0, eff_cutoff_raw)); +eff_res = max(0.0, min(0.99, resonance + mod_resonance(gate))); + +filtered = mix_driven : ve.moog_vcf(eff_res, eff_cutoff); + +// --------------------------------------------------------------------------- +// Amp and pan +// --------------------------------------------------------------------------- +// Velocity gain: blend 1.0 (no velocity) -> vel. Referenced here so Faust +// keeps the _vel hidden param alive in the JSON descriptor. +vel_gain = (1.0 - 0.3) + 0.3 * vel; // 30% velocity sensitivity, fixed +amp_val = max(0.0, min(1.0, mod_amp(gate))) * master_level * vel_gain; +pan_val = max(-1.0, min(1.0, master_pan + mod_pan(gate))); + +// equal-power pan +pan_l = cos((pan_val + 1.0) * 0.25 * ma.PI); +pan_r = sin((pan_val + 1.0) * 0.25 * ma.PI); + +signal = filtered * amp_val; +signal_L = signal * pan_l; +signal_R = signal * pan_r; + +process = signal_L, signal_R; +""" + + +# --------------------------------------------------------------------------- +# Engine 2 — Additive (64-partial spectral descriptors) +# --------------------------------------------------------------------------- + +ADDITIVE_DESTS = [ + (0, "pitch", "semitones, applied to the fundamental frequency"), + (1, "bright", "high-partial group amplitude boost/cut (replaces bright env)"), + (2, "tilt", "added to spectral_tilt knob"), + (3, "inharmonicity", "added to inharmonicity knob"), + (4, "odd_even", "added to odd/even balance knob"), + (5, "formant_ctr", "shifts both formant centre frequencies (harmonic index)"), + (6, "formant_depth", "added to formant_depth knob"), + (7, "noise_mix", "added to noise_floor knob (clamped 0..1)"), + (8, "amp", "master amplitude dest (route an ADSR here for a VCA env)"), + (9, "pan", "stereo balance"), +] + +ADDITIVE_PARAMS = """\ +// --------------------------------------------------------------------------- +// Group 1 — Spectral Shape (harmonic bank + descriptors) +// --------------------------------------------------------------------------- +h1_amp = hslider("1_Spectral/00_h1_amp", 0.8, 0.0, 1.0, 0.001); +h2_amp = hslider("1_Spectral/01_h2_amp", 0.5, 0.0, 1.0, 0.001); +h3_amp = hslider("1_Spectral/02_h3_amp", 0.35, 0.0, 1.0, 0.001); +h4_amp = hslider("1_Spectral/03_h4_amp", 0.25, 0.0, 1.0, 0.001); +h5_amp = hslider("1_Spectral/04_h5_amp", 0.18, 0.0, 1.0, 0.001); +h6_amp = hslider("1_Spectral/05_h6_amp", 0.12, 0.0, 1.0, 0.001); +h7_amp = hslider("1_Spectral/06_h7_amp", 0.08, 0.0, 1.0, 0.001); +h8_amp = hslider("1_Spectral/07_h8_amp", 0.06, 0.0, 1.0, 0.001); +h9_16_amp = hslider("1_Spectral/08_h9_16_amp", 0.05, 0.0, 1.0, 0.001); +h17_32_amp = hslider("1_Spectral/09_h17_32_amp", 0.025, 0.0, 1.0, 0.001); +h33_64_amp = hslider("1_Spectral/10_h33_64_amp", 0.01, 0.0, 1.0, 0.001); +spectral_tilt = hslider("1_Spectral/11_spectral_tilt", 0.0, -1.0, 1.0, 0.001); +inharmonicity = hslider("1_Spectral/12_inharmonicity", 0.0, 0.0, 0.15, 0.0001); +odd_even = hslider("1_Spectral/13_odd_even", 0.5, 0.0, 1.0, 0.001); + +// --------------------------------------------------------------------------- +// Group 2 — Formants & Noise +// --------------------------------------------------------------------------- +formant1_freq = hslider("2_Formants/00_formant1_freq[tooltip:Formant 1 harmonic idx]", 3.0, 1.0, 16.0, 0.01); +formant2_freq = hslider("2_Formants/01_formant2_freq[tooltip:Formant 2 harmonic idx]", 6.0, 1.0, 16.0, 0.01); +formant_depth = hslider("2_Formants/02_formant_depth", 0.0, 0.0, 1.0, 0.001); +noise_floor = hslider("2_Formants/03_noise_floor", 0.0, 0.0, 0.2, 0.001); +noise_color = hslider("2_Formants/04_noise_color", 0.5, 0.0, 1.0, 0.001); +sub_harmonic = hslider("2_Formants/05_sub_harmonic", 0.0, 0.0, 1.0, 0.001); + +// --------------------------------------------------------------------------- +// Group 3 — Master +// --------------------------------------------------------------------------- +level = hslider("3_Master/00_level", 0.7, 0.0, 1.0, 0.001); +fine_tune = hslider("3_Master/01_fine_tune[unit:ct]", 0.0, -50.0, 50.0, 0.1); +saturation = hslider("3_Master/02_saturation", 0.0, 0.0, 1.0, 0.001); +stereo_phase_spread= hslider("3_Master/03_stereo_phase_spread",0.1, 0.0, 1.0, 0.001); +master_pan = hslider("3_Master/04_master_pan", 0.0, -1.0, 1.0, 0.001); +""" + +ADDITIVE_FLOW = """\ +// --------------------------------------------------------------------------- +// Derived signals +// --------------------------------------------------------------------------- + +N = 64; +PI = ma.PI; + +cent2ratio(c) = pow(2.0, c / 1200.0); +semi2ratio(s) = pow(2.0, s / 12.0); + +// Pitch: modulation (semitones), no glide +fine_ratio = cent2ratio(fine_tune); +pitch_ratio = semi2ratio(mod_pitch(gate) * 12.0); +base_freq = freq * fine_ratio * pitch_ratio; + +// --------------------------------------------------------------------------- +// Per-harmonic base amplitude from group sliders +// --------------------------------------------------------------------------- +group_amp(k) = + ba.if(k == 1, h1_amp, + ba.if(k == 2, h2_amp, + ba.if(k == 3, h3_amp, + ba.if(k == 4, h4_amp, + ba.if(k == 5, h5_amp, + ba.if(k == 6, h6_amp, + ba.if(k == 7, h7_amp, + ba.if(k == 8, h8_amp, + ba.if(k <= 16, h9_16_amp, + ba.if(k <= 32, h17_32_amp, + h33_64_amp)))))))))); + +// Spectral tilt (modulated) — amp *= k^tilt +eff_tilt = spectral_tilt + mod_tilt(gate); +tilt_factor(k) = pow(float(k), eff_tilt); + +// Odd/even balance (modulated, clamped) +eff_odd_even = max(0.0, min(1.0, odd_even + mod_odd_even(gate))); +odd_weight = (1.0 - eff_odd_even) * 2.0; +even_weight = eff_odd_even * 2.0; +odd_even_factor(k) = ba.if(k % 2 == 0, even_weight, odd_weight); + +// Brightness destination: progressive boost/cut on upper partials. +// bright_blend(k): 0 at k=1, 1 at k=N. mod_bright is [-1,+1]. +// factor(k) = 1 + bright_blend(k) * mod_bright. At mod=0 -> unity (neutral). +bright_blend(k) = float(k - 1) / float(N - 1); +mb = mod_bright(gate); +bright_factor(k) = 1.0 + bright_blend(k) * mb; + +// Inharmonicity (modulated, clamped to keep partials monotonic) +eff_inharm = max(0.0, min(0.2, inharmonicity + mod_inharmonicity(gate) * 0.15)); + +// Formant centres (modulated together — mod_formant_ctr shifts both by same amt) +eff_formant_shift = mod_formant_ctr(gate) * 8.0; // ±8 harmonics +eff_f1 = max(1.0, min(32.0, formant1_freq + eff_formant_shift)); +eff_f2 = max(1.0, min(32.0, formant2_freq + eff_formant_shift)); +eff_formant_depth = max(0.0, min(1.0, formant_depth + mod_formant_depth(gate))); + +// Formant shaping — two Gaussian bumps in harmonic-index space +sigma_sq = 1.5 * 1.5; +formant_bump(k, ctr) = exp(-0.5 * (float(k) - ctr) * (float(k) - ctr) / sigma_sq); +formant_factor(k) = + 1.0 + eff_formant_depth * (formant_bump(k, eff_f1) + formant_bump(k, eff_f2)); + +// Combined per-harmonic amplitude +harm_amp(k) = + group_amp(k) * tilt_factor(k) * odd_even_factor(k) * + bright_factor(k) * formant_factor(k); + +// Inharmonic partial frequency: freq_k = k*f0*(1 + B*(k^2 - 1)) +harm_freq(k) = base_freq * float(k) + * (1.0 + eff_inharm * (float(k) * float(k) - 1.0)); + +// Stereo spread — R channel gets a small per-harmonic pitch offset +stereo_spread_freq(k) = stereo_phase_spread * float(k) * 0.01; + +// --------------------------------------------------------------------------- +// Additive oscillator sums — L and R +// --------------------------------------------------------------------------- +additive_L = sum(k, N, harm_amp(k+1) * os.osc(harm_freq(k+1))); +additive_R = sum(k, N, + harm_amp(k+1) * os.osc(harm_freq(k+1) * (1.0 + stereo_spread_freq(k+1)))); + +// Sub-harmonic (0.5× fundamental) +sub_osc = sub_harmonic * os.osc(base_freq * 0.5); + +// --------------------------------------------------------------------------- +// Noise floor — coloured via one-pole LP +// --------------------------------------------------------------------------- +eff_noise = max(0.0, min(1.0, noise_floor + mod_noise_mix(gate))); +noise_lp_cutoff = 200.0 + (1.0 - noise_color) * 19800.0; +noise_signal = no.noise : fi.lowpass(1, noise_lp_cutoff); +noise_out = eff_noise * noise_signal; + +// --------------------------------------------------------------------------- +// Soft-clip saturation — tanh waveshaper +// --------------------------------------------------------------------------- +drive = 1.0 + saturation * 9.0; +softclip(x) = ma.tanh(x * drive) / drive; + +// --------------------------------------------------------------------------- +// Velocity gain — keeps _vel alive in the JSON descriptor +// --------------------------------------------------------------------------- +vel_gain = (1.0 - 0.3) + 0.3 * vel; + +// --------------------------------------------------------------------------- +// Amplitude and pan (both mod-driven) +// --------------------------------------------------------------------------- +amp_val = max(0.0, min(1.0, mod_amp(gate))) * level * vel_gain; +pan_val = max(-1.0, min(1.0, master_pan + mod_pan(gate))); + +pan_l = cos((pan_val + 1.0) * 0.25 * ma.PI); +pan_r = sin((pan_val + 1.0) * 0.25 * ma.PI); + +raw_L = (additive_L + sub_osc + noise_out) * amp_val; +raw_R = (additive_R + sub_osc + noise_out) * amp_val; + +signal_L = softclip(raw_L) * pan_l; +signal_R = softclip(raw_R) * pan_r; + +process = signal_L, signal_R; +""" + + +# --------------------------------------------------------------------------- +# Engine 3 — FM (4-operator with cross-mod matrix) +# --------------------------------------------------------------------------- + +FM_DESTS = [ + (0, "pitch", "semitones added to the base frequency"), + (1, "op1_level", "added to op1 level knob"), + (2, "op2_level", "added to op2 level knob"), + (3, "op3_level", "added to op3 level knob"), + (4, "op4_level", "added to op4 level knob"), + (5, "cross_mod_global", "global FM depth multiplier on all 12 cross-mod cells"), + (6, "feedback_global", "global feedback multiplier on all 4 self-feedback cells"), + (7, "global_ratio", "additive scale factor on all 4 operator ratios"), + (8, "amp", "master amplitude dest (route an ADSR here for a VCA env)"), + (9, "pan", "stereo balance"), +] + +FM_PARAMS = """\ +// --------------------------------------------------------------------------- +// Group 1 — Operators (ratio & level per op) +// --------------------------------------------------------------------------- +op1_ratio = hslider("1_Operators/00_op1_ratio", 1.0, 0.125, 16.0, 0.001); +op1_level = hslider("1_Operators/01_op1_level", 0.8, 0.0, 1.0, 0.001); +op2_ratio = hslider("1_Operators/02_op2_ratio", 2.0, 0.125, 16.0, 0.001); +op2_level = hslider("1_Operators/03_op2_level", 0.6, 0.0, 1.0, 0.001); +op3_ratio = hslider("1_Operators/04_op3_ratio", 3.0, 0.125, 16.0, 0.001); +op3_level = hslider("1_Operators/05_op3_level", 0.4, 0.0, 1.0, 0.001); +op4_ratio = hslider("1_Operators/06_op4_ratio", 0.5, 0.125, 16.0, 0.001); +op4_level = hslider("1_Operators/07_op4_level", 0.3, 0.0, 1.0, 0.001); + +// --------------------------------------------------------------------------- +// Group 2 — Cross-mod Matrix (mXY = op X modulates op Y) +// --------------------------------------------------------------------------- +m12 = hslider("2_CrossMod/00_m12", 0.0, 0.0, 10.0, 0.001); +m13 = hslider("2_CrossMod/01_m13", 0.0, 0.0, 10.0, 0.001); +m14 = hslider("2_CrossMod/02_m14", 0.0, 0.0, 10.0, 0.001); +m21 = hslider("2_CrossMod/03_m21", 1.0, 0.0, 10.0, 0.001); +m23 = hslider("2_CrossMod/04_m23", 0.0, 0.0, 10.0, 0.001); +m24 = hslider("2_CrossMod/05_m24", 0.0, 0.0, 10.0, 0.001); +m31 = hslider("2_CrossMod/06_m31", 0.0, 0.0, 10.0, 0.001); +m32 = hslider("2_CrossMod/07_m32", 0.0, 0.0, 10.0, 0.001); +m34 = hslider("2_CrossMod/08_m34", 0.0, 0.0, 10.0, 0.001); +m41 = hslider("2_CrossMod/09_m41", 0.0, 0.0, 10.0, 0.001); +m42 = hslider("2_CrossMod/10_m42", 0.0, 0.0, 10.0, 0.001); +m43 = hslider("2_CrossMod/11_m43", 0.0, 0.0, 10.0, 0.001); + +// --------------------------------------------------------------------------- +// Group 3 — Self-feedback +// --------------------------------------------------------------------------- +fb1 = hslider("3_Feedback/00_fb1", 0.0, 0.0, 1.0, 0.001); +fb2 = hslider("3_Feedback/01_fb2", 0.0, 0.0, 1.0, 0.001); +fb3 = hslider("3_Feedback/02_fb3", 0.0, 0.0, 1.0, 0.001); +fb4 = hslider("3_Feedback/03_fb4", 0.0, 0.0, 1.0, 0.001); + +// --------------------------------------------------------------------------- +// Group 4 — Master +// --------------------------------------------------------------------------- +master_level = hslider("4_Master/00_master_level", 0.7, 0.0, 1.0, 0.001); +fine_tune = hslider("4_Master/01_fine_tune[unit:ct]", 0.0, -50.0, 50.0, 0.1); +stereo_spread = hslider("4_Master/02_stereo_spread", 0.1, 0.0, 1.0, 0.001); +output_saturation = hslider("4_Master/03_output_saturation", 0.0, 0.0, 1.0, 0.001); +output_hp = hslider("4_Master/04_output_hp[unit:Hz]",20.0, 20.0, 200.0,0.1); +master_pan = hslider("4_Master/05_master_pan", 0.0, -1.0, 1.0, 0.001); +""" + +FM_FLOW = """\ +// --------------------------------------------------------------------------- +// Derived signals +// --------------------------------------------------------------------------- + +cent2ratio(c) = pow(2.0, c / 1200.0); +semi2ratio(s) = pow(2.0, s / 12.0); + +// Base frequency: fine tune + pitch mod (semitones, ±12) +base_freq = freq * cent2ratio(fine_tune) * semi2ratio(mod_pitch(gate) * 12.0); + +// Velocity gain — keeps _vel alive +vel_gain = (1.0 - 0.3) + 0.3 * vel; + +// --------------------------------------------------------------------------- +// Effective per-operator ratios and levels (mod applied) +// global_ratio mod is an additive ratio offset (±8) +// --------------------------------------------------------------------------- +ratio_offset = mod_global_ratio(gate) * 8.0; +r1 = max(0.01, op1_ratio + ratio_offset); +r2 = max(0.01, op2_ratio + ratio_offset); +r3 = max(0.01, op3_ratio + ratio_offset); +r4 = max(0.01, op4_ratio + ratio_offset); + +lev1 = max(0.0, min(1.0, op1_level + mod_op1_level(gate))); +lev2 = max(0.0, min(1.0, op2_level + mod_op2_level(gate))); +lev3 = max(0.0, min(1.0, op3_level + mod_op3_level(gate))); +lev4 = max(0.0, min(1.0, op4_level + mod_op4_level(gate))); + +// --------------------------------------------------------------------------- +// Global multipliers for cross-mod and feedback. +// (1 + mod) in [0, 2] roughly; clamp to stay sane. +// --------------------------------------------------------------------------- +cross_mul = max(0.0, 1.0 + mod_cross_mod_global(gate)); +fb_mul = max(0.0, 1.0 + mod_feedback_global(gate)); + +m12e = m12 * cross_mul; m13e = m13 * cross_mul; m14e = m14 * cross_mul; +m21e = m21 * cross_mul; m23e = m23 * cross_mul; m24e = m24 * cross_mul; +m31e = m31 * cross_mul; m32e = m32 * cross_mul; m34e = m34 * cross_mul; +m41e = m41 * cross_mul; m42e = m42 * cross_mul; m43e = m43 * cross_mul; + +fb1e = fb1 * fb_mul; +fb2e = fb2 * fb_mul; +fb3e = fb3 * fb_mul; +fb4e = fb4 * fb_mul; + +// --------------------------------------------------------------------------- +// 4-operator FM bus — feedback loop via ~ on a 4-channel bus +// --------------------------------------------------------------------------- +fmbus(d1,d2,d3,d4) = + op1_out, op2_out, op3_out, op4_out +with { + f1 = base_freq * r1; + f2 = base_freq * r2; + f3 = base_freq * r3; + f4 = base_freq * r4; + + op1_out = lev1 * + os.osc(f1 + (m21e*d2 + m31e*d3 + m41e*d4 + fb1e*d1) * f1); + + op2_out = lev2 * + os.osc(f2 + (m12e*d1 + m32e*d3 + m42e*d4 + fb2e*d2) * f2); + + op3_out = lev3 * + os.osc(f3 + (m13e*d1 + m23e*d2 + m43e*d4 + fb3e*d3) * f3); + + op4_out = lev4 * + os.osc(f4 + (m14e*d1 + m24e*d2 + m34e*d3 + fb4e*d4) * f4); +}; + +// Route 4-channel bus through feedback loop, sum all ops +fm_out = (fmbus ~ (si.bus(4))) : (_, _, _, _) :> _; + +// --------------------------------------------------------------------------- +// Post-processing +// --------------------------------------------------------------------------- +soft_clip(x) = x / max(0.001, 1.0 + output_saturation * abs(x)); +hp_out(x) = fi.highpass(1, output_hp, x); + +// Master amplitude destination (route an ADSR here for VCA) +amp_val = max(0.0, min(1.0, mod_amp(gate))) * master_level * vel_gain * 0.25; + +// Pan +pan_val = max(-1.0, min(1.0, master_pan + mod_pan(gate))); +pan_l = cos((pan_val + 1.0) * 0.25 * ma.PI); +pan_r = sin((pan_val + 1.0) * 0.25 * ma.PI); + +// Stereo spread via slight detuning (apply after main FM sum) +spread_cents = stereo_spread * 5.0; +spread_l = cent2ratio(spread_cents); +spread_r = cent2ratio(0.0 - spread_cents); + +mono_post = fm_out * amp_val : soft_clip : hp_out; + +signal_L = mono_post * spread_l * pan_l; +signal_R = mono_post * spread_r * pan_r; + +process = signal_L, signal_R; +""" + + +ENGINES = [ + { + "name": "subtractive", + "title": "Minimoog-style subtractive voice", + "description": "3 oscillators + noise → mixer → moog ladder filter → amp/pan.", + "destinations": SUBTRACTIVE_DESTS, + "sound_params": SUBTRACTIVE_PARAMS, + "signal_flow": SUBTRACTIVE_FLOW, + }, + { + "name": "additive", + "title": "64-partial additive voice", + "description": "64 harmonic sines with spectral descriptors (tilt, odd/even, formants).", + "destinations": ADDITIVE_DESTS, + "sound_params": ADDITIVE_PARAMS, + "signal_flow": ADDITIVE_FLOW, + }, + { + "name": "fm", + "title": "4-operator FM voice", + "description": "4 ops with 12-cell cross-mod matrix and per-op feedback.", + "destinations": FM_DESTS, + "sound_params": FM_PARAMS, + "signal_flow": FM_FLOW, + }, +] + + +# --------------------------------------------------------------------------- +# Shared matrix-emission helpers +# --------------------------------------------------------------------------- + +def src_name(s): + return f"s{s:02d}" + + +def dest_label(d, name): + return f"d{d:02d}_{name}" + + +def amt_slider_line(s, d, name): + label = f"MM_Matrix/{src_name(s)}_{dest_label(d, name)}" + varname = f"amt_{src_name(s)}_{dest_label(d, name)}" + return f'{varname} = hslider("{label}", 0.0, -1.0, 1.0, 0.001);' + + +def dest_expression(d, name): + varname = f"mod_{name}" + lines = [f"{varname}(gate) ="] + for s in range(N_SRC): + amt_var = f"amt_{src_name(s)}_{dest_label(d, name)}" + src_call = f"mp.src{s:02d}(gate)" + if s < N_SRC - 1: + lines.append(f" {src_call} * {amt_var} +") + else: + lines.append(f" {src_call} * {amt_var};") + return "\n".join(lines) + + +def gen_matrix_sliders(dests): + blocks = [] + for (d, name, _doc) in dests: + blocks.append(f"// Matrix column: destination {d} = {name}") + for s in range(N_SRC): + blocks.append(amt_slider_line(s, d, name)) + blocks.append("") + return "\n".join(blocks) + + +def gen_dest_expressions(dests): + blocks = [] + for (d, name, _doc) in dests: + blocks.append(dest_expression(d, name)) + blocks.append("") + return "\n".join(blocks) + + +def emit_engine(cfg, out_dir): + name = cfg["name"] + title = cfg["title"] + description = cfg["description"] + dests = cfg["destinations"] + sound_params = cfg["sound_params"] + signal_flow = cfg["signal_flow"] + + n_dest = len(dests) + assert n_dest == 10, f"engine {name}: expected 10 destinations, got {n_dest}" + + # Header comment with per-engine destination docs + dest_doc_lines = [] + for (d, dname, doc) in dests: + dest_doc_lines.append(f"// {d} {dname:<17} {doc}") + dest_doc = "\n".join(dest_doc_lines) + + header = f"""\ +// modular-{name}.dsp — {title} for the "Modular" mode. +// +// AUTO-GENERATED by gen-modular-dsp.py. DO NOT EDIT BY HAND. +// Regenerate with: +// cd playground/faust && python3 gen-modular-dsp.py +// +// Audio path: {description} +// All envelopes and LFOs come from mod-pool.lib via a 48-source × {n_dest}-dest +// modulation matrix. No internal envs/LFOs. +// +// Modulation destinations ({n_dest}): +{dest_doc} +// +// Hidden controls (driven by noteOn/noteOff, not by the ML engine): +// freq, gate, _vel +// +// Build: +// cd playground/faust && ./build.sh +// +// --------------------------------------------------------------------------- + +import("stdfaust.lib"); +mp = library("mod-pool.lib"); + +{HIDDEN_BLOCK} +{sound_params} +// --------------------------------------------------------------------------- +// Modulation matrix — 48 sources × {n_dest} destinations. +// Each hslider is one "amount" entry in [-1, +1]. Zero = no connection. +// Group "MM_Matrix" so the paramMeta parser can recognise matrix params. +// --------------------------------------------------------------------------- +""" + + parts = [ + header, + gen_matrix_sliders(dests), + "// ---------------------------------------------------------------------------", + "// Destination signals — one per modulation destination. Each is a 48-term", + "// weighted sum of sources × amounts. The `gate` argument is threaded through", + "// so that mp.src??(gate) can drive ADSR envelopes.", + "// ---------------------------------------------------------------------------", + "", + gen_dest_expressions(dests), + signal_flow, + ] + + out_path = os.path.join(out_dir, f"modular-{name}.dsp") + with open(out_path, "w") as f: + f.write("\n".join(parts)) + + n_matrix = N_SRC * n_dest + print(f"Wrote {out_path}") + print(f" destinations: {n_dest}") + print(f" matrix sliders: {n_matrix}") + + +def main(): + out_dir = os.path.dirname(os.path.abspath(__file__)) + for cfg in ENGINES: + emit_engine(cfg, out_dir) + + +if __name__ == "__main__": + main() diff --git a/playground/faust/mod-pool.lib b/playground/faust/mod-pool.lib new file mode 100644 index 0000000..b20cb33 --- /dev/null +++ b/playground/faust/mod-pool.lib @@ -0,0 +1,435 @@ +// mod-pool.lib — Shared modulation pool (ADSRs + LFOs) for the "Modular" mode. +// +// Provides 16 ADSR slots + 32 LFO slots that can be routed through a +// per-engine modulation matrix to any parameter in the host .dsp. +// Engines import this via: +// +// mp = library("mod-pool.lib"); +// sources = mp.sources(gate); // 48-wide parallel bus +// mod_x = sum(s, 48, sources : ba.selector(s, 48) * amount(s)); +// +// PUBLIC API +// ---------- +// +// mp.N_ADSR integer — 16 +// mp.N_LFO integer — 32 +// mp.N_SOURCES integer — 48 (= N_ADSR + N_LFO) +// +// mp.adsrs(gate) bus — 16-wide parallel bus, each element [0,1] +// mp.lfos bus — 32-wide parallel bus, each element [-1,+1] +// mp.sources(gate) bus — 48-wide parallel bus (adsrs(gate), lfos) +// +// PARAMETER NAMESPACE CONVENTION +// ------------------------------ +// All mod-pool sliders live under groups prefixed with "MM_" so that the +// paramMeta parser can segregate them from engine sound params: +// +// MM_ADSR/NN_adsrNN_{attack,decay,sustain,release,enable} (16 slots) +// MM_LFO /NN_lfoNN_{rate,morph,enable} (32 slots) +// +// Engine-side matrix sliders (declared in the engine .dsp, not in this file) +// should follow: +// +// MM_Matrix/sNN_dNN_ (48 * n_dst) +// +// where sNN = source index (0..47; 0..15 = ADSRs, 16..47 = LFOs), +// dNN = destination index, and = short destination label. +// +// MUTING +// ------ +// Each slot has an "enable" hslider (0 or 1). The slot's output is multiplied +// by the enable value so a muted slot contributes 0 at the matrix input. This +// is cheap but does NOT let Faust eliminate the underlying env/LFO compute. +// Compile-time dead-code elimination of unused slots is a future concern. +// +// LFO WAVEMORPH +// ------------- +// A single "morph" slider (0..1) crossfades through four shapes: +// +// [0.000, 0.333) : sine -> triangle +// [0.333, 0.666) : triangle -> square +// [0.666, 1.000] : square -> saw +// +// Implemented via nested ba.if so the chosen pair is a linear crossfade. +// The output is always in [-1,+1]. +// +// --------------------------------------------------------------------------- + +import("stdfaust.lib"); + +// Counts (engine code can reference mp.N_SOURCES etc.) +N_ADSR = 16; +N_LFO = 32; +N_SOURCES = 48; + +// --------------------------------------------------------------------------- +// Per-slot hslider helpers. Unique label per slot index. +// Slot indices are 1-based in labels (adsr01..adsr16, lfo01..lfo32) to keep +// alphabetical ordering stable in the Faust JSON output. +// --------------------------------------------------------------------------- + +// ADSR param factories — declared per-slot because Faust slider labels must +// be string literals known at compile time. One function per slot index. + +adsr01_a = hslider("MM_ADSR/00_adsr01_attack[scale:log]", 0.010, 0.001, 5.0, 0.001); +adsr01_d = hslider("MM_ADSR/00_adsr01_decay", 0.200, 0.001, 10.0, 0.001); +adsr01_s = hslider("MM_ADSR/00_adsr01_sustain", 0.700, 0.0, 1.0, 0.001); +adsr01_r = hslider("MM_ADSR/00_adsr01_release", 0.300, 0.01, 10.0, 0.001); +adsr01_e = hslider("MM_ADSR/00_adsr01_enable", 1.0, 0.0, 1.0, 1.0); + +adsr02_a = hslider("MM_ADSR/01_adsr02_attack[scale:log]", 0.010, 0.001, 5.0, 0.001); +adsr02_d = hslider("MM_ADSR/01_adsr02_decay", 0.200, 0.001, 10.0, 0.001); +adsr02_s = hslider("MM_ADSR/01_adsr02_sustain", 0.700, 0.0, 1.0, 0.001); +adsr02_r = hslider("MM_ADSR/01_adsr02_release", 0.300, 0.01, 10.0, 0.001); +adsr02_e = hslider("MM_ADSR/01_adsr02_enable", 0.0, 0.0, 1.0, 1.0); + +adsr03_a = hslider("MM_ADSR/02_adsr03_attack[scale:log]", 0.010, 0.001, 5.0, 0.001); +adsr03_d = hslider("MM_ADSR/02_adsr03_decay", 0.200, 0.001, 10.0, 0.001); +adsr03_s = hslider("MM_ADSR/02_adsr03_sustain", 0.700, 0.0, 1.0, 0.001); +adsr03_r = hslider("MM_ADSR/02_adsr03_release", 0.300, 0.01, 10.0, 0.001); +adsr03_e = hslider("MM_ADSR/02_adsr03_enable", 0.0, 0.0, 1.0, 1.0); + +adsr04_a = hslider("MM_ADSR/03_adsr04_attack[scale:log]", 0.010, 0.001, 5.0, 0.001); +adsr04_d = hslider("MM_ADSR/03_adsr04_decay", 0.200, 0.001, 10.0, 0.001); +adsr04_s = hslider("MM_ADSR/03_adsr04_sustain", 0.700, 0.0, 1.0, 0.001); +adsr04_r = hslider("MM_ADSR/03_adsr04_release", 0.300, 0.01, 10.0, 0.001); +adsr04_e = hslider("MM_ADSR/03_adsr04_enable", 0.0, 0.0, 1.0, 1.0); + +adsr05_a = hslider("MM_ADSR/04_adsr05_attack[scale:log]", 0.010, 0.001, 5.0, 0.001); +adsr05_d = hslider("MM_ADSR/04_adsr05_decay", 0.200, 0.001, 10.0, 0.001); +adsr05_s = hslider("MM_ADSR/04_adsr05_sustain", 0.700, 0.0, 1.0, 0.001); +adsr05_r = hslider("MM_ADSR/04_adsr05_release", 0.300, 0.01, 10.0, 0.001); +adsr05_e = hslider("MM_ADSR/04_adsr05_enable", 0.0, 0.0, 1.0, 1.0); + +adsr06_a = hslider("MM_ADSR/05_adsr06_attack[scale:log]", 0.010, 0.001, 5.0, 0.001); +adsr06_d = hslider("MM_ADSR/05_adsr06_decay", 0.200, 0.001, 10.0, 0.001); +adsr06_s = hslider("MM_ADSR/05_adsr06_sustain", 0.700, 0.0, 1.0, 0.001); +adsr06_r = hslider("MM_ADSR/05_adsr06_release", 0.300, 0.01, 10.0, 0.001); +adsr06_e = hslider("MM_ADSR/05_adsr06_enable", 0.0, 0.0, 1.0, 1.0); + +adsr07_a = hslider("MM_ADSR/06_adsr07_attack[scale:log]", 0.010, 0.001, 5.0, 0.001); +adsr07_d = hslider("MM_ADSR/06_adsr07_decay", 0.200, 0.001, 10.0, 0.001); +adsr07_s = hslider("MM_ADSR/06_adsr07_sustain", 0.700, 0.0, 1.0, 0.001); +adsr07_r = hslider("MM_ADSR/06_adsr07_release", 0.300, 0.01, 10.0, 0.001); +adsr07_e = hslider("MM_ADSR/06_adsr07_enable", 0.0, 0.0, 1.0, 1.0); + +adsr08_a = hslider("MM_ADSR/07_adsr08_attack[scale:log]", 0.010, 0.001, 5.0, 0.001); +adsr08_d = hslider("MM_ADSR/07_adsr08_decay", 0.200, 0.001, 10.0, 0.001); +adsr08_s = hslider("MM_ADSR/07_adsr08_sustain", 0.700, 0.0, 1.0, 0.001); +adsr08_r = hslider("MM_ADSR/07_adsr08_release", 0.300, 0.01, 10.0, 0.001); +adsr08_e = hslider("MM_ADSR/07_adsr08_enable", 0.0, 0.0, 1.0, 1.0); + +adsr09_a = hslider("MM_ADSR/08_adsr09_attack[scale:log]", 0.010, 0.001, 5.0, 0.001); +adsr09_d = hslider("MM_ADSR/08_adsr09_decay", 0.200, 0.001, 10.0, 0.001); +adsr09_s = hslider("MM_ADSR/08_adsr09_sustain", 0.700, 0.0, 1.0, 0.001); +adsr09_r = hslider("MM_ADSR/08_adsr09_release", 0.300, 0.01, 10.0, 0.001); +adsr09_e = hslider("MM_ADSR/08_adsr09_enable", 0.0, 0.0, 1.0, 1.0); + +adsr10_a = hslider("MM_ADSR/09_adsr10_attack[scale:log]", 0.010, 0.001, 5.0, 0.001); +adsr10_d = hslider("MM_ADSR/09_adsr10_decay", 0.200, 0.001, 10.0, 0.001); +adsr10_s = hslider("MM_ADSR/09_adsr10_sustain", 0.700, 0.0, 1.0, 0.001); +adsr10_r = hslider("MM_ADSR/09_adsr10_release", 0.300, 0.01, 10.0, 0.001); +adsr10_e = hslider("MM_ADSR/09_adsr10_enable", 0.0, 0.0, 1.0, 1.0); + +adsr11_a = hslider("MM_ADSR/10_adsr11_attack[scale:log]", 0.010, 0.001, 5.0, 0.001); +adsr11_d = hslider("MM_ADSR/10_adsr11_decay", 0.200, 0.001, 10.0, 0.001); +adsr11_s = hslider("MM_ADSR/10_adsr11_sustain", 0.700, 0.0, 1.0, 0.001); +adsr11_r = hslider("MM_ADSR/10_adsr11_release", 0.300, 0.01, 10.0, 0.001); +adsr11_e = hslider("MM_ADSR/10_adsr11_enable", 0.0, 0.0, 1.0, 1.0); + +adsr12_a = hslider("MM_ADSR/11_adsr12_attack[scale:log]", 0.010, 0.001, 5.0, 0.001); +adsr12_d = hslider("MM_ADSR/11_adsr12_decay", 0.200, 0.001, 10.0, 0.001); +adsr12_s = hslider("MM_ADSR/11_adsr12_sustain", 0.700, 0.0, 1.0, 0.001); +adsr12_r = hslider("MM_ADSR/11_adsr12_release", 0.300, 0.01, 10.0, 0.001); +adsr12_e = hslider("MM_ADSR/11_adsr12_enable", 0.0, 0.0, 1.0, 1.0); + +adsr13_a = hslider("MM_ADSR/12_adsr13_attack[scale:log]", 0.010, 0.001, 5.0, 0.001); +adsr13_d = hslider("MM_ADSR/12_adsr13_decay", 0.200, 0.001, 10.0, 0.001); +adsr13_s = hslider("MM_ADSR/12_adsr13_sustain", 0.700, 0.0, 1.0, 0.001); +adsr13_r = hslider("MM_ADSR/12_adsr13_release", 0.300, 0.01, 10.0, 0.001); +adsr13_e = hslider("MM_ADSR/12_adsr13_enable", 0.0, 0.0, 1.0, 1.0); + +adsr14_a = hslider("MM_ADSR/13_adsr14_attack[scale:log]", 0.010, 0.001, 5.0, 0.001); +adsr14_d = hslider("MM_ADSR/13_adsr14_decay", 0.200, 0.001, 10.0, 0.001); +adsr14_s = hslider("MM_ADSR/13_adsr14_sustain", 0.700, 0.0, 1.0, 0.001); +adsr14_r = hslider("MM_ADSR/13_adsr14_release", 0.300, 0.01, 10.0, 0.001); +adsr14_e = hslider("MM_ADSR/13_adsr14_enable", 0.0, 0.0, 1.0, 1.0); + +adsr15_a = hslider("MM_ADSR/14_adsr15_attack[scale:log]", 0.010, 0.001, 5.0, 0.001); +adsr15_d = hslider("MM_ADSR/14_adsr15_decay", 0.200, 0.001, 10.0, 0.001); +adsr15_s = hslider("MM_ADSR/14_adsr15_sustain", 0.700, 0.0, 1.0, 0.001); +adsr15_r = hslider("MM_ADSR/14_adsr15_release", 0.300, 0.01, 10.0, 0.001); +adsr15_e = hslider("MM_ADSR/14_adsr15_enable", 0.0, 0.0, 1.0, 1.0); + +adsr16_a = hslider("MM_ADSR/15_adsr16_attack[scale:log]", 0.010, 0.001, 5.0, 0.001); +adsr16_d = hslider("MM_ADSR/15_adsr16_decay", 0.200, 0.001, 10.0, 0.001); +adsr16_s = hslider("MM_ADSR/15_adsr16_sustain", 0.700, 0.0, 1.0, 0.001); +adsr16_r = hslider("MM_ADSR/15_adsr16_release", 0.300, 0.01, 10.0, 0.001); +adsr16_e = hslider("MM_ADSR/15_adsr16_enable", 0.0, 0.0, 1.0, 1.0); + +// Single-slot ADSR expression. The enable multiplier zeros muted slots. +adsr_slot(a, d, s, r, e, gate) = en.adsr(a, d, s, r, gate) : *(e); + +// 16-wide parallel bus of ADSR outputs. Takes the global gate as an argument +// so engines can bind their own gate signal (noteOn/noteOff). +adsrs(gate) = + adsr_slot(adsr01_a, adsr01_d, adsr01_s, adsr01_r, adsr01_e, gate), + adsr_slot(adsr02_a, adsr02_d, adsr02_s, adsr02_r, adsr02_e, gate), + adsr_slot(adsr03_a, adsr03_d, adsr03_s, adsr03_r, adsr03_e, gate), + adsr_slot(adsr04_a, adsr04_d, adsr04_s, adsr04_r, adsr04_e, gate), + adsr_slot(adsr05_a, adsr05_d, adsr05_s, adsr05_r, adsr05_e, gate), + adsr_slot(adsr06_a, adsr06_d, adsr06_s, adsr06_r, adsr06_e, gate), + adsr_slot(adsr07_a, adsr07_d, adsr07_s, adsr07_r, adsr07_e, gate), + adsr_slot(adsr08_a, adsr08_d, adsr08_s, adsr08_r, adsr08_e, gate), + adsr_slot(adsr09_a, adsr09_d, adsr09_s, adsr09_r, adsr09_e, gate), + adsr_slot(adsr10_a, adsr10_d, adsr10_s, adsr10_r, adsr10_e, gate), + adsr_slot(adsr11_a, adsr11_d, adsr11_s, adsr11_r, adsr11_e, gate), + adsr_slot(adsr12_a, adsr12_d, adsr12_s, adsr12_r, adsr12_e, gate), + adsr_slot(adsr13_a, adsr13_d, adsr13_s, adsr13_r, adsr13_e, gate), + adsr_slot(adsr14_a, adsr14_d, adsr14_s, adsr14_r, adsr14_e, gate), + adsr_slot(adsr15_a, adsr15_d, adsr15_s, adsr15_r, adsr15_e, gate), + adsr_slot(adsr16_a, adsr16_d, adsr16_s, adsr16_r, adsr16_e, gate); + +// --------------------------------------------------------------------------- +// LFO slots (32) +// --------------------------------------------------------------------------- + +lfo01_r = hslider("MM_LFO/00_lfo01_rate[scale:log]", 1.0, 0.01, 20.0, 0.001); +lfo01_m = hslider("MM_LFO/00_lfo01_morph", 0.0, 0.0, 1.0, 0.001); +lfo01_e = hslider("MM_LFO/00_lfo01_enable", 0.0, 0.0, 1.0, 1.0); + +lfo02_r = hslider("MM_LFO/01_lfo02_rate[scale:log]", 1.0, 0.01, 20.0, 0.001); +lfo02_m = hslider("MM_LFO/01_lfo02_morph", 0.0, 0.0, 1.0, 0.001); +lfo02_e = hslider("MM_LFO/01_lfo02_enable", 0.0, 0.0, 1.0, 1.0); + +lfo03_r = hslider("MM_LFO/02_lfo03_rate[scale:log]", 1.0, 0.01, 20.0, 0.001); +lfo03_m = hslider("MM_LFO/02_lfo03_morph", 0.0, 0.0, 1.0, 0.001); +lfo03_e = hslider("MM_LFO/02_lfo03_enable", 0.0, 0.0, 1.0, 1.0); + +lfo04_r = hslider("MM_LFO/03_lfo04_rate[scale:log]", 1.0, 0.01, 20.0, 0.001); +lfo04_m = hslider("MM_LFO/03_lfo04_morph", 0.0, 0.0, 1.0, 0.001); +lfo04_e = hslider("MM_LFO/03_lfo04_enable", 0.0, 0.0, 1.0, 1.0); + +lfo05_r = hslider("MM_LFO/04_lfo05_rate[scale:log]", 1.0, 0.01, 20.0, 0.001); +lfo05_m = hslider("MM_LFO/04_lfo05_morph", 0.0, 0.0, 1.0, 0.001); +lfo05_e = hslider("MM_LFO/04_lfo05_enable", 0.0, 0.0, 1.0, 1.0); + +lfo06_r = hslider("MM_LFO/05_lfo06_rate[scale:log]", 1.0, 0.01, 20.0, 0.001); +lfo06_m = hslider("MM_LFO/05_lfo06_morph", 0.0, 0.0, 1.0, 0.001); +lfo06_e = hslider("MM_LFO/05_lfo06_enable", 0.0, 0.0, 1.0, 1.0); + +lfo07_r = hslider("MM_LFO/06_lfo07_rate[scale:log]", 1.0, 0.01, 20.0, 0.001); +lfo07_m = hslider("MM_LFO/06_lfo07_morph", 0.0, 0.0, 1.0, 0.001); +lfo07_e = hslider("MM_LFO/06_lfo07_enable", 0.0, 0.0, 1.0, 1.0); + +lfo08_r = hslider("MM_LFO/07_lfo08_rate[scale:log]", 1.0, 0.01, 20.0, 0.001); +lfo08_m = hslider("MM_LFO/07_lfo08_morph", 0.0, 0.0, 1.0, 0.001); +lfo08_e = hslider("MM_LFO/07_lfo08_enable", 0.0, 0.0, 1.0, 1.0); + +lfo09_r = hslider("MM_LFO/08_lfo09_rate[scale:log]", 1.0, 0.01, 20.0, 0.001); +lfo09_m = hslider("MM_LFO/08_lfo09_morph", 0.0, 0.0, 1.0, 0.001); +lfo09_e = hslider("MM_LFO/08_lfo09_enable", 0.0, 0.0, 1.0, 1.0); + +lfo10_r = hslider("MM_LFO/09_lfo10_rate[scale:log]", 1.0, 0.01, 20.0, 0.001); +lfo10_m = hslider("MM_LFO/09_lfo10_morph", 0.0, 0.0, 1.0, 0.001); +lfo10_e = hslider("MM_LFO/09_lfo10_enable", 0.0, 0.0, 1.0, 1.0); + +lfo11_r = hslider("MM_LFO/10_lfo11_rate[scale:log]", 1.0, 0.01, 20.0, 0.001); +lfo11_m = hslider("MM_LFO/10_lfo11_morph", 0.0, 0.0, 1.0, 0.001); +lfo11_e = hslider("MM_LFO/10_lfo11_enable", 0.0, 0.0, 1.0, 1.0); + +lfo12_r = hslider("MM_LFO/11_lfo12_rate[scale:log]", 1.0, 0.01, 20.0, 0.001); +lfo12_m = hslider("MM_LFO/11_lfo12_morph", 0.0, 0.0, 1.0, 0.001); +lfo12_e = hslider("MM_LFO/11_lfo12_enable", 0.0, 0.0, 1.0, 1.0); + +lfo13_r = hslider("MM_LFO/12_lfo13_rate[scale:log]", 1.0, 0.01, 20.0, 0.001); +lfo13_m = hslider("MM_LFO/12_lfo13_morph", 0.0, 0.0, 1.0, 0.001); +lfo13_e = hslider("MM_LFO/12_lfo13_enable", 0.0, 0.0, 1.0, 1.0); + +lfo14_r = hslider("MM_LFO/13_lfo14_rate[scale:log]", 1.0, 0.01, 20.0, 0.001); +lfo14_m = hslider("MM_LFO/13_lfo14_morph", 0.0, 0.0, 1.0, 0.001); +lfo14_e = hslider("MM_LFO/13_lfo14_enable", 0.0, 0.0, 1.0, 1.0); + +lfo15_r = hslider("MM_LFO/14_lfo15_rate[scale:log]", 1.0, 0.01, 20.0, 0.001); +lfo15_m = hslider("MM_LFO/14_lfo15_morph", 0.0, 0.0, 1.0, 0.001); +lfo15_e = hslider("MM_LFO/14_lfo15_enable", 0.0, 0.0, 1.0, 1.0); + +lfo16_r = hslider("MM_LFO/15_lfo16_rate[scale:log]", 1.0, 0.01, 20.0, 0.001); +lfo16_m = hslider("MM_LFO/15_lfo16_morph", 0.0, 0.0, 1.0, 0.001); +lfo16_e = hslider("MM_LFO/15_lfo16_enable", 0.0, 0.0, 1.0, 1.0); + +lfo17_r = hslider("MM_LFO/16_lfo17_rate[scale:log]", 1.0, 0.01, 20.0, 0.001); +lfo17_m = hslider("MM_LFO/16_lfo17_morph", 0.0, 0.0, 1.0, 0.001); +lfo17_e = hslider("MM_LFO/16_lfo17_enable", 0.0, 0.0, 1.0, 1.0); + +lfo18_r = hslider("MM_LFO/17_lfo18_rate[scale:log]", 1.0, 0.01, 20.0, 0.001); +lfo18_m = hslider("MM_LFO/17_lfo18_morph", 0.0, 0.0, 1.0, 0.001); +lfo18_e = hslider("MM_LFO/17_lfo18_enable", 0.0, 0.0, 1.0, 1.0); + +lfo19_r = hslider("MM_LFO/18_lfo19_rate[scale:log]", 1.0, 0.01, 20.0, 0.001); +lfo19_m = hslider("MM_LFO/18_lfo19_morph", 0.0, 0.0, 1.0, 0.001); +lfo19_e = hslider("MM_LFO/18_lfo19_enable", 0.0, 0.0, 1.0, 1.0); + +lfo20_r = hslider("MM_LFO/19_lfo20_rate[scale:log]", 1.0, 0.01, 20.0, 0.001); +lfo20_m = hslider("MM_LFO/19_lfo20_morph", 0.0, 0.0, 1.0, 0.001); +lfo20_e = hslider("MM_LFO/19_lfo20_enable", 0.0, 0.0, 1.0, 1.0); + +lfo21_r = hslider("MM_LFO/20_lfo21_rate[scale:log]", 1.0, 0.01, 20.0, 0.001); +lfo21_m = hslider("MM_LFO/20_lfo21_morph", 0.0, 0.0, 1.0, 0.001); +lfo21_e = hslider("MM_LFO/20_lfo21_enable", 0.0, 0.0, 1.0, 1.0); + +lfo22_r = hslider("MM_LFO/21_lfo22_rate[scale:log]", 1.0, 0.01, 20.0, 0.001); +lfo22_m = hslider("MM_LFO/21_lfo22_morph", 0.0, 0.0, 1.0, 0.001); +lfo22_e = hslider("MM_LFO/21_lfo22_enable", 0.0, 0.0, 1.0, 1.0); + +lfo23_r = hslider("MM_LFO/22_lfo23_rate[scale:log]", 1.0, 0.01, 20.0, 0.001); +lfo23_m = hslider("MM_LFO/22_lfo23_morph", 0.0, 0.0, 1.0, 0.001); +lfo23_e = hslider("MM_LFO/22_lfo23_enable", 0.0, 0.0, 1.0, 1.0); + +lfo24_r = hslider("MM_LFO/23_lfo24_rate[scale:log]", 1.0, 0.01, 20.0, 0.001); +lfo24_m = hslider("MM_LFO/23_lfo24_morph", 0.0, 0.0, 1.0, 0.001); +lfo24_e = hslider("MM_LFO/23_lfo24_enable", 0.0, 0.0, 1.0, 1.0); + +lfo25_r = hslider("MM_LFO/24_lfo25_rate[scale:log]", 1.0, 0.01, 20.0, 0.001); +lfo25_m = hslider("MM_LFO/24_lfo25_morph", 0.0, 0.0, 1.0, 0.001); +lfo25_e = hslider("MM_LFO/24_lfo25_enable", 0.0, 0.0, 1.0, 1.0); + +lfo26_r = hslider("MM_LFO/25_lfo26_rate[scale:log]", 1.0, 0.01, 20.0, 0.001); +lfo26_m = hslider("MM_LFO/25_lfo26_morph", 0.0, 0.0, 1.0, 0.001); +lfo26_e = hslider("MM_LFO/25_lfo26_enable", 0.0, 0.0, 1.0, 1.0); + +lfo27_r = hslider("MM_LFO/26_lfo27_rate[scale:log]", 1.0, 0.01, 20.0, 0.001); +lfo27_m = hslider("MM_LFO/26_lfo27_morph", 0.0, 0.0, 1.0, 0.001); +lfo27_e = hslider("MM_LFO/26_lfo27_enable", 0.0, 0.0, 1.0, 1.0); + +lfo28_r = hslider("MM_LFO/27_lfo28_rate[scale:log]", 1.0, 0.01, 20.0, 0.001); +lfo28_m = hslider("MM_LFO/27_lfo28_morph", 0.0, 0.0, 1.0, 0.001); +lfo28_e = hslider("MM_LFO/27_lfo28_enable", 0.0, 0.0, 1.0, 1.0); + +lfo29_r = hslider("MM_LFO/28_lfo29_rate[scale:log]", 1.0, 0.01, 20.0, 0.001); +lfo29_m = hslider("MM_LFO/28_lfo29_morph", 0.0, 0.0, 1.0, 0.001); +lfo29_e = hslider("MM_LFO/28_lfo29_enable", 0.0, 0.0, 1.0, 1.0); + +lfo30_r = hslider("MM_LFO/29_lfo30_rate[scale:log]", 1.0, 0.01, 20.0, 0.001); +lfo30_m = hslider("MM_LFO/29_lfo30_morph", 0.0, 0.0, 1.0, 0.001); +lfo30_e = hslider("MM_LFO/29_lfo30_enable", 0.0, 0.0, 1.0, 1.0); + +lfo31_r = hslider("MM_LFO/30_lfo31_rate[scale:log]", 1.0, 0.01, 20.0, 0.001); +lfo31_m = hslider("MM_LFO/30_lfo31_morph", 0.0, 0.0, 1.0, 0.001); +lfo31_e = hslider("MM_LFO/30_lfo31_enable", 0.0, 0.0, 1.0, 1.0); + +lfo32_r = hslider("MM_LFO/31_lfo32_rate[scale:log]", 1.0, 0.01, 20.0, 0.001); +lfo32_m = hslider("MM_LFO/31_lfo32_morph", 0.0, 0.0, 1.0, 0.001); +lfo32_e = hslider("MM_LFO/31_lfo32_enable", 0.0, 0.0, 1.0, 1.0); + +// Wavemorph — 0..1 crossfades sine -> triangle -> square -> saw. +// Uses nested ba.if. Each shape is already in [-1,+1]. +wavemorph(rate, morph) = + ba.if(morph < 0.333, + (1.0 - morph*3.0) * os.osc(rate) + (morph*3.0) * os.lf_triangle(rate), + ba.if(morph < 0.666, + (1.0 - (morph-0.333)*3.0) * os.lf_triangle(rate) + ((morph-0.333)*3.0) * os.lf_squarewave(rate), + (1.0 - (morph-0.666)*3.0) * os.lf_squarewave(rate) + ((morph-0.666)*3.0) * os.lf_saw(rate))); + +lfo_slot(rate, morph, en_flag) = wavemorph(rate, morph) : *(en_flag); + +lfos = + lfo_slot(lfo01_r, lfo01_m, lfo01_e), + lfo_slot(lfo02_r, lfo02_m, lfo02_e), + lfo_slot(lfo03_r, lfo03_m, lfo03_e), + lfo_slot(lfo04_r, lfo04_m, lfo04_e), + lfo_slot(lfo05_r, lfo05_m, lfo05_e), + lfo_slot(lfo06_r, lfo06_m, lfo06_e), + lfo_slot(lfo07_r, lfo07_m, lfo07_e), + lfo_slot(lfo08_r, lfo08_m, lfo08_e), + lfo_slot(lfo09_r, lfo09_m, lfo09_e), + lfo_slot(lfo10_r, lfo10_m, lfo10_e), + lfo_slot(lfo11_r, lfo11_m, lfo11_e), + lfo_slot(lfo12_r, lfo12_m, lfo12_e), + lfo_slot(lfo13_r, lfo13_m, lfo13_e), + lfo_slot(lfo14_r, lfo14_m, lfo14_e), + lfo_slot(lfo15_r, lfo15_m, lfo15_e), + lfo_slot(lfo16_r, lfo16_m, lfo16_e), + lfo_slot(lfo17_r, lfo17_m, lfo17_e), + lfo_slot(lfo18_r, lfo18_m, lfo18_e), + lfo_slot(lfo19_r, lfo19_m, lfo19_e), + lfo_slot(lfo20_r, lfo20_m, lfo20_e), + lfo_slot(lfo21_r, lfo21_m, lfo21_e), + lfo_slot(lfo22_r, lfo22_m, lfo22_e), + lfo_slot(lfo23_r, lfo23_m, lfo23_e), + lfo_slot(lfo24_r, lfo24_m, lfo24_e), + lfo_slot(lfo25_r, lfo25_m, lfo25_e), + lfo_slot(lfo26_r, lfo26_m, lfo26_e), + lfo_slot(lfo27_r, lfo27_m, lfo27_e), + lfo_slot(lfo28_r, lfo28_m, lfo28_e), + lfo_slot(lfo29_r, lfo29_m, lfo29_e), + lfo_slot(lfo30_r, lfo30_m, lfo30_e), + lfo_slot(lfo31_r, lfo31_m, lfo31_e), + lfo_slot(lfo32_r, lfo32_m, lfo32_e); + +// --------------------------------------------------------------------------- +// sources(gate) — concatenated 48-wide mod-source bus. +// Order: adsr01..adsr16, lfo01..lfo32 +// --------------------------------------------------------------------------- + +sources(gate) = adsrs(gate), lfos; + +// --------------------------------------------------------------------------- +// Individual named source functions — 48 total, in canonical order. +// Engines can reference these directly in matrix sums, since each hslider +// inside a matrix amount must have a unique compile-time label. +// +// Canonical source ordering (source index 0..47): +// 0..15 : adsr01..adsr16 +// 16..47 : lfo01..lfo32 +// --------------------------------------------------------------------------- + +src00(gate) = adsr_slot(adsr01_a, adsr01_d, adsr01_s, adsr01_r, adsr01_e, gate); +src01(gate) = adsr_slot(adsr02_a, adsr02_d, adsr02_s, adsr02_r, adsr02_e, gate); +src02(gate) = adsr_slot(adsr03_a, adsr03_d, adsr03_s, adsr03_r, adsr03_e, gate); +src03(gate) = adsr_slot(adsr04_a, adsr04_d, adsr04_s, adsr04_r, adsr04_e, gate); +src04(gate) = adsr_slot(adsr05_a, adsr05_d, adsr05_s, adsr05_r, adsr05_e, gate); +src05(gate) = adsr_slot(adsr06_a, adsr06_d, adsr06_s, adsr06_r, adsr06_e, gate); +src06(gate) = adsr_slot(adsr07_a, adsr07_d, adsr07_s, adsr07_r, adsr07_e, gate); +src07(gate) = adsr_slot(adsr08_a, adsr08_d, adsr08_s, adsr08_r, adsr08_e, gate); +src08(gate) = adsr_slot(adsr09_a, adsr09_d, adsr09_s, adsr09_r, adsr09_e, gate); +src09(gate) = adsr_slot(adsr10_a, adsr10_d, adsr10_s, adsr10_r, adsr10_e, gate); +src10(gate) = adsr_slot(adsr11_a, adsr11_d, adsr11_s, adsr11_r, adsr11_e, gate); +src11(gate) = adsr_slot(adsr12_a, adsr12_d, adsr12_s, adsr12_r, adsr12_e, gate); +src12(gate) = adsr_slot(adsr13_a, adsr13_d, adsr13_s, adsr13_r, adsr13_e, gate); +src13(gate) = adsr_slot(adsr14_a, adsr14_d, adsr14_s, adsr14_r, adsr14_e, gate); +src14(gate) = adsr_slot(adsr15_a, adsr15_d, adsr15_s, adsr15_r, adsr15_e, gate); +src15(gate) = adsr_slot(adsr16_a, adsr16_d, adsr16_s, adsr16_r, adsr16_e, gate); + +src16(gate) = lfo_slot(lfo01_r, lfo01_m, lfo01_e); +src17(gate) = lfo_slot(lfo02_r, lfo02_m, lfo02_e); +src18(gate) = lfo_slot(lfo03_r, lfo03_m, lfo03_e); +src19(gate) = lfo_slot(lfo04_r, lfo04_m, lfo04_e); +src20(gate) = lfo_slot(lfo05_r, lfo05_m, lfo05_e); +src21(gate) = lfo_slot(lfo06_r, lfo06_m, lfo06_e); +src22(gate) = lfo_slot(lfo07_r, lfo07_m, lfo07_e); +src23(gate) = lfo_slot(lfo08_r, lfo08_m, lfo08_e); +src24(gate) = lfo_slot(lfo09_r, lfo09_m, lfo09_e); +src25(gate) = lfo_slot(lfo10_r, lfo10_m, lfo10_e); +src26(gate) = lfo_slot(lfo11_r, lfo11_m, lfo11_e); +src27(gate) = lfo_slot(lfo12_r, lfo12_m, lfo12_e); +src28(gate) = lfo_slot(lfo13_r, lfo13_m, lfo13_e); +src29(gate) = lfo_slot(lfo14_r, lfo14_m, lfo14_e); +src30(gate) = lfo_slot(lfo15_r, lfo15_m, lfo15_e); +src31(gate) = lfo_slot(lfo16_r, lfo16_m, lfo16_e); +src32(gate) = lfo_slot(lfo17_r, lfo17_m, lfo17_e); +src33(gate) = lfo_slot(lfo18_r, lfo18_m, lfo18_e); +src34(gate) = lfo_slot(lfo19_r, lfo19_m, lfo19_e); +src35(gate) = lfo_slot(lfo20_r, lfo20_m, lfo20_e); +src36(gate) = lfo_slot(lfo21_r, lfo21_m, lfo21_e); +src37(gate) = lfo_slot(lfo22_r, lfo22_m, lfo22_e); +src38(gate) = lfo_slot(lfo23_r, lfo23_m, lfo23_e); +src39(gate) = lfo_slot(lfo24_r, lfo24_m, lfo24_e); +src40(gate) = lfo_slot(lfo25_r, lfo25_m, lfo25_e); +src41(gate) = lfo_slot(lfo26_r, lfo26_m, lfo26_e); +src42(gate) = lfo_slot(lfo27_r, lfo27_m, lfo27_e); +src43(gate) = lfo_slot(lfo28_r, lfo28_m, lfo28_e); +src44(gate) = lfo_slot(lfo29_r, lfo29_m, lfo29_e); +src45(gate) = lfo_slot(lfo30_r, lfo30_m, lfo30_e); +src46(gate) = lfo_slot(lfo31_r, lfo31_m, lfo31_e); +src47(gate) = lfo_slot(lfo32_r, lfo32_m, lfo32_e); diff --git a/playground/faust/modular-additive-processor.js b/playground/faust/modular-additive-processor.js new file mode 100644 index 0000000..8048889 --- /dev/null +++ b/playground/faust/modular-additive-processor.js @@ -0,0 +1,257 @@ +/** + * modular-additive-processor.js — AudioWorklet processor for the + * "Modular" mode additive voice (modular-additive.dsp). + * + * Extends FaustWorkletProcessor (faust-worklet-processor.js). + * Loads modular-subtractive.wasm compiled by `faust -lang wasm`. + * + * Param-index strategy: + * modular-additive.dsp has ~700 parameters (25 engine + 80 ADSR + 96 LFO + * + 480 matrix + 3 hidden). Hand-maintained zone tables (additive-processor + * style) do not scale. Instead we use the wasm-native JSON descriptor + * produced by `faust -lang wasm`, which has a numeric `index` field on each + * leaf item. That index is the direct memory offset that setParamValue + * expects as its zone argument — no sentinel scanning, no address strings. + * + * The main thread fetches modular-additive.json, parses it, and passes + * the UI tree to the worklet via the init message. + * + * Calling convention (faust -lang wasm, single-instance): + * init(dsp, sampleRate) dsp is always 0 + * compute(dsp, n, inputs, outputs) + * setParamValue(dsp, zone, value) zone = numeric memory address from JSON + * getParamValue(dsp, zone) -> float + * + * Hidden params (not in the engine's ML-controllable list): + * 0_Hidden/freq — set by noteOn + * 0_Hidden/gate — set by noteOn/noteOff (button, value 0/1) + * 0_Hidden/_vel — set by noteOn + */ + +// Must be imported in AudioWorkletGlobalScope — include faust-worklet-processor.js +// via audioCtx.audioWorklet.addModule() before this file. + +const DSP = 0; +const BLOCK_SIZE = 128; + +class ModularAdditiveProcessor extends FaustWorkletProcessor { + constructor(options) { + super(options); + this._dspInst = null; + this._dspMemory = null; // live Float32Array view + this._sampleRate = 48000; + + // Zone tables, populated once the init message has been processed. + this._paramZones = []; // NISPS index (order from JSON walk) -> zone + this._paramZonesByLabel = {}; // label -> zone (for smoke test) + this._hiddenZones = {}; // {freq, gate, _vel} -> zone + + // Audio output buffer pointers + this._outPtrsAddr = 0; + this._outLAddr = 0; + this._outRAddr = 0; + } + + // --------------------------------------------------------------------------- + // _initWasm — called by FaustWorkletProcessor.handleMessage on 'init'. + // + // Extra fields on the init message: + // uiJson — parsed Faust UI descriptor (the .json file contents) for + // zone discovery. Faust's -lang wasm embeds numeric `index` + // fields that we use directly as zone memory addresses. + // --------------------------------------------------------------------------- + + async _initWasm(wasmBytes, sampleRate, uiJson) { + this._sampleRate = sampleRate; + + const importObj = { + env: { + _sinf: Math.sin, + _cosf: Math.cos, + _tanf: Math.tan, + _expf: Math.exp, + _logf: Math.log, + _log10f: Math.log10, + _powf: Math.pow, + _tanhf: Math.tanh, + _sqrtf: Math.sqrt, + _fabsf: Math.abs, + _floorf: Math.floor, + _ceilf: Math.ceil, + _remainderf: (a, b) => a - Math.round(a / b) * b, + _fmodf: (a, b) => a % b, + _roundf: Math.round, + _truncf: Math.trunc, + _acosf: Math.acos, + _asinf: Math.asin, + _atanf: Math.atan, + _atan2f: Math.atan2, + }, + }; + + const result = await WebAssembly.instantiate(wasmBytes, importObj); + this._dspInst = result.instance; + const ex = this._dspInst.exports; + + // Grow memory by 2 pages (128 KB) so the output buffer region sits past + // Faust's allocated parameter zones. After growth we have at least + // 3 * BLOCK_SIZE * 4 bytes of scratch at the high end of memory. + ex.memory.grow(2); + + this._dspMemory = new Float32Array(ex.memory.buffer); + + // Initialise the DSP instance (single-instance convention: dsp = 0) + ex.init(DSP, sampleRate); + + // Allocate output buffers at the top of WASM memory. + const memBytes = ex.memory.buffer.byteLength; + this._outLAddr = memBytes - BLOCK_SIZE * 4 * 3; + this._outRAddr = this._outLAddr + BLOCK_SIZE * 4; + this._outPtrsAddr = this._outRAddr + BLOCK_SIZE * 4; + + const u32 = new Uint32Array(ex.memory.buffer); + u32[this._outPtrsAddr / 4] = this._outLAddr; + u32[this._outPtrsAddr / 4 + 1] = this._outRAddr; + + // Refresh the float view after any potential reallocation + this._dspMemory = new Float32Array(ex.memory.buffer); + + // Build the zone index from the JSON we were passed. + if (uiJson) { + this._buildZoneIndexFromJson(uiJson); + } else { + console.warn('[ModularAdditiveProcessor] no uiJson in init message — ' + + 'setParam will silently no-op.'); + } + } + + // ------------------------------------------------------------------------- + // _buildZoneIndexFromJson — walk the Faust UI tree and collect numeric + // zone indexes, separating hidden params from the main NISPS-controllable + // list. Preserves the UI tree's traversal order, which matches the order + // the playground's faustJsonToParamMeta() parser will produce. + // ------------------------------------------------------------------------- + + _buildZoneIndexFromJson(faustJson) { + const HIDDEN_TAIL = new Set(['freq', 'gate', '_vel']); + const zones = []; + const byLabel = {}; + const hidden = {}; + + const walk = (items) => { + if (!Array.isArray(items)) return; + for (const item of items) { + const type = item?.type; + if (type === 'hslider' || type === 'vslider' || + type === 'nentry' || type === 'button' || + type === 'checkbox') { + const label = item.label ?? ''; + const idx = item.index; + if (typeof idx !== 'number') continue; + + const hasHiddenMeta = Array.isArray(item.meta) && + item.meta.some(m => m.hidden === '1' || m.hidden === 1); + const tail = label.includes('/') ? label.split('/').pop() : label; + + if (hasHiddenMeta || HIDDEN_TAIL.has(tail)) { + hidden[tail] = idx; + } else { + zones.push(idx); + byLabel[label] = idx; + } + } else if (item?.items) { + walk(item.items); + } + } + }; + + walk(faustJson.ui ?? []); + + this._paramZones = zones; + this._paramZonesByLabel = byLabel; + this._hiddenZones = hidden; + } + + // ------------------------------------------------------------------------- + // _onSetParam — look up the zone by NISPS index and poke the DSP + // ------------------------------------------------------------------------- + + _onSetParam(index, value) { + if (!this._dspInst) return; + const zone = this._paramZones[index]; + if (zone === undefined) return; + this._dspInst.exports.setParamValue(DSP, zone, value); + } + + _onNoteOn(freq, vel) { + if (!this._dspInst) return; + const ex = this._dspInst.exports; + const z = this._hiddenZones; + if (z.freq !== undefined) ex.setParamValue(DSP, z.freq, freq); + if (z._vel !== undefined) ex.setParamValue(DSP, z._vel, vel ?? 0.7); + if (z.gate !== undefined) ex.setParamValue(DSP, z.gate, 1.0); + } + + _onNoteOff(_freq) { + if (!this._dspInst) return; + const z = this._hiddenZones; + if (z.gate !== undefined) { + this._dspInst.exports.setParamValue(DSP, z.gate, 0.0); + } + } + + // ------------------------------------------------------------------------- + // Extended message handling — override for setByLabel + init-with-json + // ------------------------------------------------------------------------- + + _handleMessage(msg) { + if (!msg || !msg.type) return; + + if (msg.type === 'init') { + // Override the base class's init path so we can thread `uiJson` through. + this._initWasm(msg.wasmBytes, msg.sampleRate || sampleRate, msg.uiJson) + .then(() => { + this._ready = true; + this.port.postMessage({ type: 'ready' }); + this._drainPendingMessages(); + }) + .catch((err) => { + this.port.postMessage({ type: 'error', message: String(err) }); + }); + return; + } + + // Buffer anything that arrives before init() finishes. See + // faust-worklet-processor.js._queueIfNotReady. + if (this._queueIfNotReady(msg)) return; + + if (msg.type === 'setByLabel') { + const zone = this._paramZonesByLabel[msg.label]; + if (zone !== undefined) { + this._dspInst.exports.setParamValue(DSP, zone, msg.value); + } + return; + } + + // Delegate everything else (setParam, noteOn, noteOff) to the base class. + super._handleMessage(msg); + } + + // ------------------------------------------------------------------------- + // _renderBlock — call Faust compute, copy output buffers + // ------------------------------------------------------------------------- + + _renderBlock(outL, outR, blockSize) { + if (!this._dspInst || !this._dspMemory) return; + + const ex = this._dspInst.exports; + ex.compute(DSP, blockSize, 0, this._outPtrsAddr); + + const wL = new Float32Array(ex.memory.buffer, this._outLAddr, blockSize); + const wR = new Float32Array(ex.memory.buffer, this._outRAddr, blockSize); + outL.set(wL); + outR.set(wR); + } +} + +registerProcessor('modular-additive-processor', ModularAdditiveProcessor); diff --git a/playground/faust/modular-additive.dsp b/playground/faust/modular-additive.dsp new file mode 100644 index 0000000..5227633 --- /dev/null +++ b/playground/faust/modular-additive.dsp @@ -0,0 +1,1209 @@ +// modular-additive.dsp — 64-partial additive voice for the "Modular" mode. +// +// AUTO-GENERATED by gen-modular-dsp.py. DO NOT EDIT BY HAND. +// Regenerate with: +// cd playground/faust && python3 gen-modular-dsp.py +// +// Audio path: 64 harmonic sines with spectral descriptors (tilt, odd/even, formants). +// All envelopes and LFOs come from mod-pool.lib via a 48-source × 10-dest +// modulation matrix. No internal envs/LFOs. +// +// Modulation destinations (10): +// 0 pitch semitones, applied to the fundamental frequency +// 1 bright high-partial group amplitude boost/cut (replaces bright env) +// 2 tilt added to spectral_tilt knob +// 3 inharmonicity added to inharmonicity knob +// 4 odd_even added to odd/even balance knob +// 5 formant_ctr shifts both formant centre frequencies (harmonic index) +// 6 formant_depth added to formant_depth knob +// 7 noise_mix added to noise_floor knob (clamped 0..1) +// 8 amp master amplitude dest (route an ADSR here for a VCA env) +// 9 pan stereo balance +// +// Hidden controls (driven by noteOn/noteOff, not by the ML engine): +// freq, gate, _vel +// +// Build: +// cd playground/faust && ./build.sh +// +// --------------------------------------------------------------------------- + +import("stdfaust.lib"); +mp = library("mod-pool.lib"); + +// --------------------------------------------------------------------------- +// Hidden controls +// --------------------------------------------------------------------------- +freq = hslider("0_Hidden/freq[hidden:1][unit:Hz]", 220, 20, 4000, 0.01); +gate = button("0_Hidden/gate[hidden:1]"); +vel = hslider("0_Hidden/_vel[hidden:1]", 0.7, 0.0, 1.0, 0.001) : si.smoo; + +// --------------------------------------------------------------------------- +// Group 1 — Spectral Shape (harmonic bank + descriptors) +// --------------------------------------------------------------------------- +h1_amp = hslider("1_Spectral/00_h1_amp", 0.8, 0.0, 1.0, 0.001); +h2_amp = hslider("1_Spectral/01_h2_amp", 0.5, 0.0, 1.0, 0.001); +h3_amp = hslider("1_Spectral/02_h3_amp", 0.35, 0.0, 1.0, 0.001); +h4_amp = hslider("1_Spectral/03_h4_amp", 0.25, 0.0, 1.0, 0.001); +h5_amp = hslider("1_Spectral/04_h5_amp", 0.18, 0.0, 1.0, 0.001); +h6_amp = hslider("1_Spectral/05_h6_amp", 0.12, 0.0, 1.0, 0.001); +h7_amp = hslider("1_Spectral/06_h7_amp", 0.08, 0.0, 1.0, 0.001); +h8_amp = hslider("1_Spectral/07_h8_amp", 0.06, 0.0, 1.0, 0.001); +h9_16_amp = hslider("1_Spectral/08_h9_16_amp", 0.05, 0.0, 1.0, 0.001); +h17_32_amp = hslider("1_Spectral/09_h17_32_amp", 0.025, 0.0, 1.0, 0.001); +h33_64_amp = hslider("1_Spectral/10_h33_64_amp", 0.01, 0.0, 1.0, 0.001); +spectral_tilt = hslider("1_Spectral/11_spectral_tilt", 0.0, -1.0, 1.0, 0.001); +inharmonicity = hslider("1_Spectral/12_inharmonicity", 0.0, 0.0, 0.15, 0.0001); +odd_even = hslider("1_Spectral/13_odd_even", 0.5, 0.0, 1.0, 0.001); + +// --------------------------------------------------------------------------- +// Group 2 — Formants & Noise +// --------------------------------------------------------------------------- +formant1_freq = hslider("2_Formants/00_formant1_freq[tooltip:Formant 1 harmonic idx]", 3.0, 1.0, 16.0, 0.01); +formant2_freq = hslider("2_Formants/01_formant2_freq[tooltip:Formant 2 harmonic idx]", 6.0, 1.0, 16.0, 0.01); +formant_depth = hslider("2_Formants/02_formant_depth", 0.0, 0.0, 1.0, 0.001); +noise_floor = hslider("2_Formants/03_noise_floor", 0.0, 0.0, 0.2, 0.001); +noise_color = hslider("2_Formants/04_noise_color", 0.5, 0.0, 1.0, 0.001); +sub_harmonic = hslider("2_Formants/05_sub_harmonic", 0.0, 0.0, 1.0, 0.001); + +// --------------------------------------------------------------------------- +// Group 3 — Master +// --------------------------------------------------------------------------- +level = hslider("3_Master/00_level", 0.7, 0.0, 1.0, 0.001); +fine_tune = hslider("3_Master/01_fine_tune[unit:ct]", 0.0, -50.0, 50.0, 0.1); +saturation = hslider("3_Master/02_saturation", 0.0, 0.0, 1.0, 0.001); +stereo_phase_spread= hslider("3_Master/03_stereo_phase_spread",0.1, 0.0, 1.0, 0.001); +master_pan = hslider("3_Master/04_master_pan", 0.0, -1.0, 1.0, 0.001); + +// --------------------------------------------------------------------------- +// Modulation matrix — 48 sources × 10 destinations. +// Each hslider is one "amount" entry in [-1, +1]. Zero = no connection. +// Group "MM_Matrix" so the paramMeta parser can recognise matrix params. +// --------------------------------------------------------------------------- + +// Matrix column: destination 0 = pitch +amt_s00_d00_pitch = hslider("MM_Matrix/s00_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s01_d00_pitch = hslider("MM_Matrix/s01_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s02_d00_pitch = hslider("MM_Matrix/s02_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s03_d00_pitch = hslider("MM_Matrix/s03_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s04_d00_pitch = hslider("MM_Matrix/s04_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s05_d00_pitch = hslider("MM_Matrix/s05_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s06_d00_pitch = hslider("MM_Matrix/s06_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s07_d00_pitch = hslider("MM_Matrix/s07_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s08_d00_pitch = hslider("MM_Matrix/s08_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s09_d00_pitch = hslider("MM_Matrix/s09_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s10_d00_pitch = hslider("MM_Matrix/s10_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s11_d00_pitch = hslider("MM_Matrix/s11_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s12_d00_pitch = hslider("MM_Matrix/s12_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s13_d00_pitch = hslider("MM_Matrix/s13_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s14_d00_pitch = hslider("MM_Matrix/s14_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s15_d00_pitch = hslider("MM_Matrix/s15_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s16_d00_pitch = hslider("MM_Matrix/s16_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s17_d00_pitch = hslider("MM_Matrix/s17_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s18_d00_pitch = hslider("MM_Matrix/s18_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s19_d00_pitch = hslider("MM_Matrix/s19_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s20_d00_pitch = hslider("MM_Matrix/s20_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s21_d00_pitch = hslider("MM_Matrix/s21_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s22_d00_pitch = hslider("MM_Matrix/s22_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s23_d00_pitch = hslider("MM_Matrix/s23_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s24_d00_pitch = hslider("MM_Matrix/s24_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s25_d00_pitch = hslider("MM_Matrix/s25_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s26_d00_pitch = hslider("MM_Matrix/s26_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s27_d00_pitch = hslider("MM_Matrix/s27_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s28_d00_pitch = hslider("MM_Matrix/s28_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s29_d00_pitch = hslider("MM_Matrix/s29_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s30_d00_pitch = hslider("MM_Matrix/s30_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s31_d00_pitch = hslider("MM_Matrix/s31_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s32_d00_pitch = hslider("MM_Matrix/s32_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s33_d00_pitch = hslider("MM_Matrix/s33_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s34_d00_pitch = hslider("MM_Matrix/s34_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s35_d00_pitch = hslider("MM_Matrix/s35_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s36_d00_pitch = hslider("MM_Matrix/s36_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s37_d00_pitch = hslider("MM_Matrix/s37_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s38_d00_pitch = hslider("MM_Matrix/s38_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s39_d00_pitch = hslider("MM_Matrix/s39_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s40_d00_pitch = hslider("MM_Matrix/s40_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s41_d00_pitch = hslider("MM_Matrix/s41_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s42_d00_pitch = hslider("MM_Matrix/s42_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s43_d00_pitch = hslider("MM_Matrix/s43_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s44_d00_pitch = hslider("MM_Matrix/s44_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s45_d00_pitch = hslider("MM_Matrix/s45_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s46_d00_pitch = hslider("MM_Matrix/s46_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s47_d00_pitch = hslider("MM_Matrix/s47_d00_pitch", 0.0, -1.0, 1.0, 0.001); + +// Matrix column: destination 1 = bright +amt_s00_d01_bright = hslider("MM_Matrix/s00_d01_bright", 0.0, -1.0, 1.0, 0.001); +amt_s01_d01_bright = hslider("MM_Matrix/s01_d01_bright", 0.0, -1.0, 1.0, 0.001); +amt_s02_d01_bright = hslider("MM_Matrix/s02_d01_bright", 0.0, -1.0, 1.0, 0.001); +amt_s03_d01_bright = hslider("MM_Matrix/s03_d01_bright", 0.0, -1.0, 1.0, 0.001); +amt_s04_d01_bright = hslider("MM_Matrix/s04_d01_bright", 0.0, -1.0, 1.0, 0.001); +amt_s05_d01_bright = hslider("MM_Matrix/s05_d01_bright", 0.0, -1.0, 1.0, 0.001); +amt_s06_d01_bright = hslider("MM_Matrix/s06_d01_bright", 0.0, -1.0, 1.0, 0.001); +amt_s07_d01_bright = hslider("MM_Matrix/s07_d01_bright", 0.0, -1.0, 1.0, 0.001); +amt_s08_d01_bright = hslider("MM_Matrix/s08_d01_bright", 0.0, -1.0, 1.0, 0.001); +amt_s09_d01_bright = hslider("MM_Matrix/s09_d01_bright", 0.0, -1.0, 1.0, 0.001); +amt_s10_d01_bright = hslider("MM_Matrix/s10_d01_bright", 0.0, -1.0, 1.0, 0.001); +amt_s11_d01_bright = hslider("MM_Matrix/s11_d01_bright", 0.0, -1.0, 1.0, 0.001); +amt_s12_d01_bright = hslider("MM_Matrix/s12_d01_bright", 0.0, -1.0, 1.0, 0.001); +amt_s13_d01_bright = hslider("MM_Matrix/s13_d01_bright", 0.0, -1.0, 1.0, 0.001); +amt_s14_d01_bright = hslider("MM_Matrix/s14_d01_bright", 0.0, -1.0, 1.0, 0.001); +amt_s15_d01_bright = hslider("MM_Matrix/s15_d01_bright", 0.0, -1.0, 1.0, 0.001); +amt_s16_d01_bright = hslider("MM_Matrix/s16_d01_bright", 0.0, -1.0, 1.0, 0.001); +amt_s17_d01_bright = hslider("MM_Matrix/s17_d01_bright", 0.0, -1.0, 1.0, 0.001); +amt_s18_d01_bright = hslider("MM_Matrix/s18_d01_bright", 0.0, -1.0, 1.0, 0.001); +amt_s19_d01_bright = hslider("MM_Matrix/s19_d01_bright", 0.0, -1.0, 1.0, 0.001); +amt_s20_d01_bright = hslider("MM_Matrix/s20_d01_bright", 0.0, -1.0, 1.0, 0.001); +amt_s21_d01_bright = hslider("MM_Matrix/s21_d01_bright", 0.0, -1.0, 1.0, 0.001); +amt_s22_d01_bright = hslider("MM_Matrix/s22_d01_bright", 0.0, -1.0, 1.0, 0.001); +amt_s23_d01_bright = hslider("MM_Matrix/s23_d01_bright", 0.0, -1.0, 1.0, 0.001); +amt_s24_d01_bright = hslider("MM_Matrix/s24_d01_bright", 0.0, -1.0, 1.0, 0.001); +amt_s25_d01_bright = hslider("MM_Matrix/s25_d01_bright", 0.0, -1.0, 1.0, 0.001); +amt_s26_d01_bright = hslider("MM_Matrix/s26_d01_bright", 0.0, -1.0, 1.0, 0.001); +amt_s27_d01_bright = hslider("MM_Matrix/s27_d01_bright", 0.0, -1.0, 1.0, 0.001); +amt_s28_d01_bright = hslider("MM_Matrix/s28_d01_bright", 0.0, -1.0, 1.0, 0.001); +amt_s29_d01_bright = hslider("MM_Matrix/s29_d01_bright", 0.0, -1.0, 1.0, 0.001); +amt_s30_d01_bright = hslider("MM_Matrix/s30_d01_bright", 0.0, -1.0, 1.0, 0.001); +amt_s31_d01_bright = hslider("MM_Matrix/s31_d01_bright", 0.0, -1.0, 1.0, 0.001); +amt_s32_d01_bright = hslider("MM_Matrix/s32_d01_bright", 0.0, -1.0, 1.0, 0.001); +amt_s33_d01_bright = hslider("MM_Matrix/s33_d01_bright", 0.0, -1.0, 1.0, 0.001); +amt_s34_d01_bright = hslider("MM_Matrix/s34_d01_bright", 0.0, -1.0, 1.0, 0.001); +amt_s35_d01_bright = hslider("MM_Matrix/s35_d01_bright", 0.0, -1.0, 1.0, 0.001); +amt_s36_d01_bright = hslider("MM_Matrix/s36_d01_bright", 0.0, -1.0, 1.0, 0.001); +amt_s37_d01_bright = hslider("MM_Matrix/s37_d01_bright", 0.0, -1.0, 1.0, 0.001); +amt_s38_d01_bright = hslider("MM_Matrix/s38_d01_bright", 0.0, -1.0, 1.0, 0.001); +amt_s39_d01_bright = hslider("MM_Matrix/s39_d01_bright", 0.0, -1.0, 1.0, 0.001); +amt_s40_d01_bright = hslider("MM_Matrix/s40_d01_bright", 0.0, -1.0, 1.0, 0.001); +amt_s41_d01_bright = hslider("MM_Matrix/s41_d01_bright", 0.0, -1.0, 1.0, 0.001); +amt_s42_d01_bright = hslider("MM_Matrix/s42_d01_bright", 0.0, -1.0, 1.0, 0.001); +amt_s43_d01_bright = hslider("MM_Matrix/s43_d01_bright", 0.0, -1.0, 1.0, 0.001); +amt_s44_d01_bright = hslider("MM_Matrix/s44_d01_bright", 0.0, -1.0, 1.0, 0.001); +amt_s45_d01_bright = hslider("MM_Matrix/s45_d01_bright", 0.0, -1.0, 1.0, 0.001); +amt_s46_d01_bright = hslider("MM_Matrix/s46_d01_bright", 0.0, -1.0, 1.0, 0.001); +amt_s47_d01_bright = hslider("MM_Matrix/s47_d01_bright", 0.0, -1.0, 1.0, 0.001); + +// Matrix column: destination 2 = tilt +amt_s00_d02_tilt = hslider("MM_Matrix/s00_d02_tilt", 0.0, -1.0, 1.0, 0.001); +amt_s01_d02_tilt = hslider("MM_Matrix/s01_d02_tilt", 0.0, -1.0, 1.0, 0.001); +amt_s02_d02_tilt = hslider("MM_Matrix/s02_d02_tilt", 0.0, -1.0, 1.0, 0.001); +amt_s03_d02_tilt = hslider("MM_Matrix/s03_d02_tilt", 0.0, -1.0, 1.0, 0.001); +amt_s04_d02_tilt = hslider("MM_Matrix/s04_d02_tilt", 0.0, -1.0, 1.0, 0.001); +amt_s05_d02_tilt = hslider("MM_Matrix/s05_d02_tilt", 0.0, -1.0, 1.0, 0.001); +amt_s06_d02_tilt = hslider("MM_Matrix/s06_d02_tilt", 0.0, -1.0, 1.0, 0.001); +amt_s07_d02_tilt = hslider("MM_Matrix/s07_d02_tilt", 0.0, -1.0, 1.0, 0.001); +amt_s08_d02_tilt = hslider("MM_Matrix/s08_d02_tilt", 0.0, -1.0, 1.0, 0.001); +amt_s09_d02_tilt = hslider("MM_Matrix/s09_d02_tilt", 0.0, -1.0, 1.0, 0.001); +amt_s10_d02_tilt = hslider("MM_Matrix/s10_d02_tilt", 0.0, -1.0, 1.0, 0.001); +amt_s11_d02_tilt = hslider("MM_Matrix/s11_d02_tilt", 0.0, -1.0, 1.0, 0.001); +amt_s12_d02_tilt = hslider("MM_Matrix/s12_d02_tilt", 0.0, -1.0, 1.0, 0.001); +amt_s13_d02_tilt = hslider("MM_Matrix/s13_d02_tilt", 0.0, -1.0, 1.0, 0.001); +amt_s14_d02_tilt = hslider("MM_Matrix/s14_d02_tilt", 0.0, -1.0, 1.0, 0.001); +amt_s15_d02_tilt = hslider("MM_Matrix/s15_d02_tilt", 0.0, -1.0, 1.0, 0.001); +amt_s16_d02_tilt = hslider("MM_Matrix/s16_d02_tilt", 0.0, -1.0, 1.0, 0.001); +amt_s17_d02_tilt = hslider("MM_Matrix/s17_d02_tilt", 0.0, -1.0, 1.0, 0.001); +amt_s18_d02_tilt = hslider("MM_Matrix/s18_d02_tilt", 0.0, -1.0, 1.0, 0.001); +amt_s19_d02_tilt = hslider("MM_Matrix/s19_d02_tilt", 0.0, -1.0, 1.0, 0.001); +amt_s20_d02_tilt = hslider("MM_Matrix/s20_d02_tilt", 0.0, -1.0, 1.0, 0.001); +amt_s21_d02_tilt = hslider("MM_Matrix/s21_d02_tilt", 0.0, -1.0, 1.0, 0.001); +amt_s22_d02_tilt = hslider("MM_Matrix/s22_d02_tilt", 0.0, -1.0, 1.0, 0.001); +amt_s23_d02_tilt = hslider("MM_Matrix/s23_d02_tilt", 0.0, -1.0, 1.0, 0.001); +amt_s24_d02_tilt = hslider("MM_Matrix/s24_d02_tilt", 0.0, -1.0, 1.0, 0.001); +amt_s25_d02_tilt = hslider("MM_Matrix/s25_d02_tilt", 0.0, -1.0, 1.0, 0.001); +amt_s26_d02_tilt = hslider("MM_Matrix/s26_d02_tilt", 0.0, -1.0, 1.0, 0.001); +amt_s27_d02_tilt = hslider("MM_Matrix/s27_d02_tilt", 0.0, -1.0, 1.0, 0.001); +amt_s28_d02_tilt = hslider("MM_Matrix/s28_d02_tilt", 0.0, -1.0, 1.0, 0.001); +amt_s29_d02_tilt = hslider("MM_Matrix/s29_d02_tilt", 0.0, -1.0, 1.0, 0.001); +amt_s30_d02_tilt = hslider("MM_Matrix/s30_d02_tilt", 0.0, -1.0, 1.0, 0.001); +amt_s31_d02_tilt = hslider("MM_Matrix/s31_d02_tilt", 0.0, -1.0, 1.0, 0.001); +amt_s32_d02_tilt = hslider("MM_Matrix/s32_d02_tilt", 0.0, -1.0, 1.0, 0.001); +amt_s33_d02_tilt = hslider("MM_Matrix/s33_d02_tilt", 0.0, -1.0, 1.0, 0.001); +amt_s34_d02_tilt = hslider("MM_Matrix/s34_d02_tilt", 0.0, -1.0, 1.0, 0.001); +amt_s35_d02_tilt = hslider("MM_Matrix/s35_d02_tilt", 0.0, -1.0, 1.0, 0.001); +amt_s36_d02_tilt = hslider("MM_Matrix/s36_d02_tilt", 0.0, -1.0, 1.0, 0.001); +amt_s37_d02_tilt = hslider("MM_Matrix/s37_d02_tilt", 0.0, -1.0, 1.0, 0.001); +amt_s38_d02_tilt = hslider("MM_Matrix/s38_d02_tilt", 0.0, -1.0, 1.0, 0.001); +amt_s39_d02_tilt = hslider("MM_Matrix/s39_d02_tilt", 0.0, -1.0, 1.0, 0.001); +amt_s40_d02_tilt = hslider("MM_Matrix/s40_d02_tilt", 0.0, -1.0, 1.0, 0.001); +amt_s41_d02_tilt = hslider("MM_Matrix/s41_d02_tilt", 0.0, -1.0, 1.0, 0.001); +amt_s42_d02_tilt = hslider("MM_Matrix/s42_d02_tilt", 0.0, -1.0, 1.0, 0.001); +amt_s43_d02_tilt = hslider("MM_Matrix/s43_d02_tilt", 0.0, -1.0, 1.0, 0.001); +amt_s44_d02_tilt = hslider("MM_Matrix/s44_d02_tilt", 0.0, -1.0, 1.0, 0.001); +amt_s45_d02_tilt = hslider("MM_Matrix/s45_d02_tilt", 0.0, -1.0, 1.0, 0.001); +amt_s46_d02_tilt = hslider("MM_Matrix/s46_d02_tilt", 0.0, -1.0, 1.0, 0.001); +amt_s47_d02_tilt = hslider("MM_Matrix/s47_d02_tilt", 0.0, -1.0, 1.0, 0.001); + +// Matrix column: destination 3 = inharmonicity +amt_s00_d03_inharmonicity = hslider("MM_Matrix/s00_d03_inharmonicity", 0.0, -1.0, 1.0, 0.001); +amt_s01_d03_inharmonicity = hslider("MM_Matrix/s01_d03_inharmonicity", 0.0, -1.0, 1.0, 0.001); +amt_s02_d03_inharmonicity = hslider("MM_Matrix/s02_d03_inharmonicity", 0.0, -1.0, 1.0, 0.001); +amt_s03_d03_inharmonicity = hslider("MM_Matrix/s03_d03_inharmonicity", 0.0, -1.0, 1.0, 0.001); +amt_s04_d03_inharmonicity = hslider("MM_Matrix/s04_d03_inharmonicity", 0.0, -1.0, 1.0, 0.001); +amt_s05_d03_inharmonicity = hslider("MM_Matrix/s05_d03_inharmonicity", 0.0, -1.0, 1.0, 0.001); +amt_s06_d03_inharmonicity = hslider("MM_Matrix/s06_d03_inharmonicity", 0.0, -1.0, 1.0, 0.001); +amt_s07_d03_inharmonicity = hslider("MM_Matrix/s07_d03_inharmonicity", 0.0, -1.0, 1.0, 0.001); +amt_s08_d03_inharmonicity = hslider("MM_Matrix/s08_d03_inharmonicity", 0.0, -1.0, 1.0, 0.001); +amt_s09_d03_inharmonicity = hslider("MM_Matrix/s09_d03_inharmonicity", 0.0, -1.0, 1.0, 0.001); +amt_s10_d03_inharmonicity = hslider("MM_Matrix/s10_d03_inharmonicity", 0.0, -1.0, 1.0, 0.001); +amt_s11_d03_inharmonicity = hslider("MM_Matrix/s11_d03_inharmonicity", 0.0, -1.0, 1.0, 0.001); +amt_s12_d03_inharmonicity = hslider("MM_Matrix/s12_d03_inharmonicity", 0.0, -1.0, 1.0, 0.001); +amt_s13_d03_inharmonicity = hslider("MM_Matrix/s13_d03_inharmonicity", 0.0, -1.0, 1.0, 0.001); +amt_s14_d03_inharmonicity = hslider("MM_Matrix/s14_d03_inharmonicity", 0.0, -1.0, 1.0, 0.001); +amt_s15_d03_inharmonicity = hslider("MM_Matrix/s15_d03_inharmonicity", 0.0, -1.0, 1.0, 0.001); +amt_s16_d03_inharmonicity = hslider("MM_Matrix/s16_d03_inharmonicity", 0.0, -1.0, 1.0, 0.001); +amt_s17_d03_inharmonicity = hslider("MM_Matrix/s17_d03_inharmonicity", 0.0, -1.0, 1.0, 0.001); +amt_s18_d03_inharmonicity = hslider("MM_Matrix/s18_d03_inharmonicity", 0.0, -1.0, 1.0, 0.001); +amt_s19_d03_inharmonicity = hslider("MM_Matrix/s19_d03_inharmonicity", 0.0, -1.0, 1.0, 0.001); +amt_s20_d03_inharmonicity = hslider("MM_Matrix/s20_d03_inharmonicity", 0.0, -1.0, 1.0, 0.001); +amt_s21_d03_inharmonicity = hslider("MM_Matrix/s21_d03_inharmonicity", 0.0, -1.0, 1.0, 0.001); +amt_s22_d03_inharmonicity = hslider("MM_Matrix/s22_d03_inharmonicity", 0.0, -1.0, 1.0, 0.001); +amt_s23_d03_inharmonicity = hslider("MM_Matrix/s23_d03_inharmonicity", 0.0, -1.0, 1.0, 0.001); +amt_s24_d03_inharmonicity = hslider("MM_Matrix/s24_d03_inharmonicity", 0.0, -1.0, 1.0, 0.001); +amt_s25_d03_inharmonicity = hslider("MM_Matrix/s25_d03_inharmonicity", 0.0, -1.0, 1.0, 0.001); +amt_s26_d03_inharmonicity = hslider("MM_Matrix/s26_d03_inharmonicity", 0.0, -1.0, 1.0, 0.001); +amt_s27_d03_inharmonicity = hslider("MM_Matrix/s27_d03_inharmonicity", 0.0, -1.0, 1.0, 0.001); +amt_s28_d03_inharmonicity = hslider("MM_Matrix/s28_d03_inharmonicity", 0.0, -1.0, 1.0, 0.001); +amt_s29_d03_inharmonicity = hslider("MM_Matrix/s29_d03_inharmonicity", 0.0, -1.0, 1.0, 0.001); +amt_s30_d03_inharmonicity = hslider("MM_Matrix/s30_d03_inharmonicity", 0.0, -1.0, 1.0, 0.001); +amt_s31_d03_inharmonicity = hslider("MM_Matrix/s31_d03_inharmonicity", 0.0, -1.0, 1.0, 0.001); +amt_s32_d03_inharmonicity = hslider("MM_Matrix/s32_d03_inharmonicity", 0.0, -1.0, 1.0, 0.001); +amt_s33_d03_inharmonicity = hslider("MM_Matrix/s33_d03_inharmonicity", 0.0, -1.0, 1.0, 0.001); +amt_s34_d03_inharmonicity = hslider("MM_Matrix/s34_d03_inharmonicity", 0.0, -1.0, 1.0, 0.001); +amt_s35_d03_inharmonicity = hslider("MM_Matrix/s35_d03_inharmonicity", 0.0, -1.0, 1.0, 0.001); +amt_s36_d03_inharmonicity = hslider("MM_Matrix/s36_d03_inharmonicity", 0.0, -1.0, 1.0, 0.001); +amt_s37_d03_inharmonicity = hslider("MM_Matrix/s37_d03_inharmonicity", 0.0, -1.0, 1.0, 0.001); +amt_s38_d03_inharmonicity = hslider("MM_Matrix/s38_d03_inharmonicity", 0.0, -1.0, 1.0, 0.001); +amt_s39_d03_inharmonicity = hslider("MM_Matrix/s39_d03_inharmonicity", 0.0, -1.0, 1.0, 0.001); +amt_s40_d03_inharmonicity = hslider("MM_Matrix/s40_d03_inharmonicity", 0.0, -1.0, 1.0, 0.001); +amt_s41_d03_inharmonicity = hslider("MM_Matrix/s41_d03_inharmonicity", 0.0, -1.0, 1.0, 0.001); +amt_s42_d03_inharmonicity = hslider("MM_Matrix/s42_d03_inharmonicity", 0.0, -1.0, 1.0, 0.001); +amt_s43_d03_inharmonicity = hslider("MM_Matrix/s43_d03_inharmonicity", 0.0, -1.0, 1.0, 0.001); +amt_s44_d03_inharmonicity = hslider("MM_Matrix/s44_d03_inharmonicity", 0.0, -1.0, 1.0, 0.001); +amt_s45_d03_inharmonicity = hslider("MM_Matrix/s45_d03_inharmonicity", 0.0, -1.0, 1.0, 0.001); +amt_s46_d03_inharmonicity = hslider("MM_Matrix/s46_d03_inharmonicity", 0.0, -1.0, 1.0, 0.001); +amt_s47_d03_inharmonicity = hslider("MM_Matrix/s47_d03_inharmonicity", 0.0, -1.0, 1.0, 0.001); + +// Matrix column: destination 4 = odd_even +amt_s00_d04_odd_even = hslider("MM_Matrix/s00_d04_odd_even", 0.0, -1.0, 1.0, 0.001); +amt_s01_d04_odd_even = hslider("MM_Matrix/s01_d04_odd_even", 0.0, -1.0, 1.0, 0.001); +amt_s02_d04_odd_even = hslider("MM_Matrix/s02_d04_odd_even", 0.0, -1.0, 1.0, 0.001); +amt_s03_d04_odd_even = hslider("MM_Matrix/s03_d04_odd_even", 0.0, -1.0, 1.0, 0.001); +amt_s04_d04_odd_even = hslider("MM_Matrix/s04_d04_odd_even", 0.0, -1.0, 1.0, 0.001); +amt_s05_d04_odd_even = hslider("MM_Matrix/s05_d04_odd_even", 0.0, -1.0, 1.0, 0.001); +amt_s06_d04_odd_even = hslider("MM_Matrix/s06_d04_odd_even", 0.0, -1.0, 1.0, 0.001); +amt_s07_d04_odd_even = hslider("MM_Matrix/s07_d04_odd_even", 0.0, -1.0, 1.0, 0.001); +amt_s08_d04_odd_even = hslider("MM_Matrix/s08_d04_odd_even", 0.0, -1.0, 1.0, 0.001); +amt_s09_d04_odd_even = hslider("MM_Matrix/s09_d04_odd_even", 0.0, -1.0, 1.0, 0.001); +amt_s10_d04_odd_even = hslider("MM_Matrix/s10_d04_odd_even", 0.0, -1.0, 1.0, 0.001); +amt_s11_d04_odd_even = hslider("MM_Matrix/s11_d04_odd_even", 0.0, -1.0, 1.0, 0.001); +amt_s12_d04_odd_even = hslider("MM_Matrix/s12_d04_odd_even", 0.0, -1.0, 1.0, 0.001); +amt_s13_d04_odd_even = hslider("MM_Matrix/s13_d04_odd_even", 0.0, -1.0, 1.0, 0.001); +amt_s14_d04_odd_even = hslider("MM_Matrix/s14_d04_odd_even", 0.0, -1.0, 1.0, 0.001); +amt_s15_d04_odd_even = hslider("MM_Matrix/s15_d04_odd_even", 0.0, -1.0, 1.0, 0.001); +amt_s16_d04_odd_even = hslider("MM_Matrix/s16_d04_odd_even", 0.0, -1.0, 1.0, 0.001); +amt_s17_d04_odd_even = hslider("MM_Matrix/s17_d04_odd_even", 0.0, -1.0, 1.0, 0.001); +amt_s18_d04_odd_even = hslider("MM_Matrix/s18_d04_odd_even", 0.0, -1.0, 1.0, 0.001); +amt_s19_d04_odd_even = hslider("MM_Matrix/s19_d04_odd_even", 0.0, -1.0, 1.0, 0.001); +amt_s20_d04_odd_even = hslider("MM_Matrix/s20_d04_odd_even", 0.0, -1.0, 1.0, 0.001); +amt_s21_d04_odd_even = hslider("MM_Matrix/s21_d04_odd_even", 0.0, -1.0, 1.0, 0.001); +amt_s22_d04_odd_even = hslider("MM_Matrix/s22_d04_odd_even", 0.0, -1.0, 1.0, 0.001); +amt_s23_d04_odd_even = hslider("MM_Matrix/s23_d04_odd_even", 0.0, -1.0, 1.0, 0.001); +amt_s24_d04_odd_even = hslider("MM_Matrix/s24_d04_odd_even", 0.0, -1.0, 1.0, 0.001); +amt_s25_d04_odd_even = hslider("MM_Matrix/s25_d04_odd_even", 0.0, -1.0, 1.0, 0.001); +amt_s26_d04_odd_even = hslider("MM_Matrix/s26_d04_odd_even", 0.0, -1.0, 1.0, 0.001); +amt_s27_d04_odd_even = hslider("MM_Matrix/s27_d04_odd_even", 0.0, -1.0, 1.0, 0.001); +amt_s28_d04_odd_even = hslider("MM_Matrix/s28_d04_odd_even", 0.0, -1.0, 1.0, 0.001); +amt_s29_d04_odd_even = hslider("MM_Matrix/s29_d04_odd_even", 0.0, -1.0, 1.0, 0.001); +amt_s30_d04_odd_even = hslider("MM_Matrix/s30_d04_odd_even", 0.0, -1.0, 1.0, 0.001); +amt_s31_d04_odd_even = hslider("MM_Matrix/s31_d04_odd_even", 0.0, -1.0, 1.0, 0.001); +amt_s32_d04_odd_even = hslider("MM_Matrix/s32_d04_odd_even", 0.0, -1.0, 1.0, 0.001); +amt_s33_d04_odd_even = hslider("MM_Matrix/s33_d04_odd_even", 0.0, -1.0, 1.0, 0.001); +amt_s34_d04_odd_even = hslider("MM_Matrix/s34_d04_odd_even", 0.0, -1.0, 1.0, 0.001); +amt_s35_d04_odd_even = hslider("MM_Matrix/s35_d04_odd_even", 0.0, -1.0, 1.0, 0.001); +amt_s36_d04_odd_even = hslider("MM_Matrix/s36_d04_odd_even", 0.0, -1.0, 1.0, 0.001); +amt_s37_d04_odd_even = hslider("MM_Matrix/s37_d04_odd_even", 0.0, -1.0, 1.0, 0.001); +amt_s38_d04_odd_even = hslider("MM_Matrix/s38_d04_odd_even", 0.0, -1.0, 1.0, 0.001); +amt_s39_d04_odd_even = hslider("MM_Matrix/s39_d04_odd_even", 0.0, -1.0, 1.0, 0.001); +amt_s40_d04_odd_even = hslider("MM_Matrix/s40_d04_odd_even", 0.0, -1.0, 1.0, 0.001); +amt_s41_d04_odd_even = hslider("MM_Matrix/s41_d04_odd_even", 0.0, -1.0, 1.0, 0.001); +amt_s42_d04_odd_even = hslider("MM_Matrix/s42_d04_odd_even", 0.0, -1.0, 1.0, 0.001); +amt_s43_d04_odd_even = hslider("MM_Matrix/s43_d04_odd_even", 0.0, -1.0, 1.0, 0.001); +amt_s44_d04_odd_even = hslider("MM_Matrix/s44_d04_odd_even", 0.0, -1.0, 1.0, 0.001); +amt_s45_d04_odd_even = hslider("MM_Matrix/s45_d04_odd_even", 0.0, -1.0, 1.0, 0.001); +amt_s46_d04_odd_even = hslider("MM_Matrix/s46_d04_odd_even", 0.0, -1.0, 1.0, 0.001); +amt_s47_d04_odd_even = hslider("MM_Matrix/s47_d04_odd_even", 0.0, -1.0, 1.0, 0.001); + +// Matrix column: destination 5 = formant_ctr +amt_s00_d05_formant_ctr = hslider("MM_Matrix/s00_d05_formant_ctr", 0.0, -1.0, 1.0, 0.001); +amt_s01_d05_formant_ctr = hslider("MM_Matrix/s01_d05_formant_ctr", 0.0, -1.0, 1.0, 0.001); +amt_s02_d05_formant_ctr = hslider("MM_Matrix/s02_d05_formant_ctr", 0.0, -1.0, 1.0, 0.001); +amt_s03_d05_formant_ctr = hslider("MM_Matrix/s03_d05_formant_ctr", 0.0, -1.0, 1.0, 0.001); +amt_s04_d05_formant_ctr = hslider("MM_Matrix/s04_d05_formant_ctr", 0.0, -1.0, 1.0, 0.001); +amt_s05_d05_formant_ctr = hslider("MM_Matrix/s05_d05_formant_ctr", 0.0, -1.0, 1.0, 0.001); +amt_s06_d05_formant_ctr = hslider("MM_Matrix/s06_d05_formant_ctr", 0.0, -1.0, 1.0, 0.001); +amt_s07_d05_formant_ctr = hslider("MM_Matrix/s07_d05_formant_ctr", 0.0, -1.0, 1.0, 0.001); +amt_s08_d05_formant_ctr = hslider("MM_Matrix/s08_d05_formant_ctr", 0.0, -1.0, 1.0, 0.001); +amt_s09_d05_formant_ctr = hslider("MM_Matrix/s09_d05_formant_ctr", 0.0, -1.0, 1.0, 0.001); +amt_s10_d05_formant_ctr = hslider("MM_Matrix/s10_d05_formant_ctr", 0.0, -1.0, 1.0, 0.001); +amt_s11_d05_formant_ctr = hslider("MM_Matrix/s11_d05_formant_ctr", 0.0, -1.0, 1.0, 0.001); +amt_s12_d05_formant_ctr = hslider("MM_Matrix/s12_d05_formant_ctr", 0.0, -1.0, 1.0, 0.001); +amt_s13_d05_formant_ctr = hslider("MM_Matrix/s13_d05_formant_ctr", 0.0, -1.0, 1.0, 0.001); +amt_s14_d05_formant_ctr = hslider("MM_Matrix/s14_d05_formant_ctr", 0.0, -1.0, 1.0, 0.001); +amt_s15_d05_formant_ctr = hslider("MM_Matrix/s15_d05_formant_ctr", 0.0, -1.0, 1.0, 0.001); +amt_s16_d05_formant_ctr = hslider("MM_Matrix/s16_d05_formant_ctr", 0.0, -1.0, 1.0, 0.001); +amt_s17_d05_formant_ctr = hslider("MM_Matrix/s17_d05_formant_ctr", 0.0, -1.0, 1.0, 0.001); +amt_s18_d05_formant_ctr = hslider("MM_Matrix/s18_d05_formant_ctr", 0.0, -1.0, 1.0, 0.001); +amt_s19_d05_formant_ctr = hslider("MM_Matrix/s19_d05_formant_ctr", 0.0, -1.0, 1.0, 0.001); +amt_s20_d05_formant_ctr = hslider("MM_Matrix/s20_d05_formant_ctr", 0.0, -1.0, 1.0, 0.001); +amt_s21_d05_formant_ctr = hslider("MM_Matrix/s21_d05_formant_ctr", 0.0, -1.0, 1.0, 0.001); +amt_s22_d05_formant_ctr = hslider("MM_Matrix/s22_d05_formant_ctr", 0.0, -1.0, 1.0, 0.001); +amt_s23_d05_formant_ctr = hslider("MM_Matrix/s23_d05_formant_ctr", 0.0, -1.0, 1.0, 0.001); +amt_s24_d05_formant_ctr = hslider("MM_Matrix/s24_d05_formant_ctr", 0.0, -1.0, 1.0, 0.001); +amt_s25_d05_formant_ctr = hslider("MM_Matrix/s25_d05_formant_ctr", 0.0, -1.0, 1.0, 0.001); +amt_s26_d05_formant_ctr = hslider("MM_Matrix/s26_d05_formant_ctr", 0.0, -1.0, 1.0, 0.001); +amt_s27_d05_formant_ctr = hslider("MM_Matrix/s27_d05_formant_ctr", 0.0, -1.0, 1.0, 0.001); +amt_s28_d05_formant_ctr = hslider("MM_Matrix/s28_d05_formant_ctr", 0.0, -1.0, 1.0, 0.001); +amt_s29_d05_formant_ctr = hslider("MM_Matrix/s29_d05_formant_ctr", 0.0, -1.0, 1.0, 0.001); +amt_s30_d05_formant_ctr = hslider("MM_Matrix/s30_d05_formant_ctr", 0.0, -1.0, 1.0, 0.001); +amt_s31_d05_formant_ctr = hslider("MM_Matrix/s31_d05_formant_ctr", 0.0, -1.0, 1.0, 0.001); +amt_s32_d05_formant_ctr = hslider("MM_Matrix/s32_d05_formant_ctr", 0.0, -1.0, 1.0, 0.001); +amt_s33_d05_formant_ctr = hslider("MM_Matrix/s33_d05_formant_ctr", 0.0, -1.0, 1.0, 0.001); +amt_s34_d05_formant_ctr = hslider("MM_Matrix/s34_d05_formant_ctr", 0.0, -1.0, 1.0, 0.001); +amt_s35_d05_formant_ctr = hslider("MM_Matrix/s35_d05_formant_ctr", 0.0, -1.0, 1.0, 0.001); +amt_s36_d05_formant_ctr = hslider("MM_Matrix/s36_d05_formant_ctr", 0.0, -1.0, 1.0, 0.001); +amt_s37_d05_formant_ctr = hslider("MM_Matrix/s37_d05_formant_ctr", 0.0, -1.0, 1.0, 0.001); +amt_s38_d05_formant_ctr = hslider("MM_Matrix/s38_d05_formant_ctr", 0.0, -1.0, 1.0, 0.001); +amt_s39_d05_formant_ctr = hslider("MM_Matrix/s39_d05_formant_ctr", 0.0, -1.0, 1.0, 0.001); +amt_s40_d05_formant_ctr = hslider("MM_Matrix/s40_d05_formant_ctr", 0.0, -1.0, 1.0, 0.001); +amt_s41_d05_formant_ctr = hslider("MM_Matrix/s41_d05_formant_ctr", 0.0, -1.0, 1.0, 0.001); +amt_s42_d05_formant_ctr = hslider("MM_Matrix/s42_d05_formant_ctr", 0.0, -1.0, 1.0, 0.001); +amt_s43_d05_formant_ctr = hslider("MM_Matrix/s43_d05_formant_ctr", 0.0, -1.0, 1.0, 0.001); +amt_s44_d05_formant_ctr = hslider("MM_Matrix/s44_d05_formant_ctr", 0.0, -1.0, 1.0, 0.001); +amt_s45_d05_formant_ctr = hslider("MM_Matrix/s45_d05_formant_ctr", 0.0, -1.0, 1.0, 0.001); +amt_s46_d05_formant_ctr = hslider("MM_Matrix/s46_d05_formant_ctr", 0.0, -1.0, 1.0, 0.001); +amt_s47_d05_formant_ctr = hslider("MM_Matrix/s47_d05_formant_ctr", 0.0, -1.0, 1.0, 0.001); + +// Matrix column: destination 6 = formant_depth +amt_s00_d06_formant_depth = hslider("MM_Matrix/s00_d06_formant_depth", 0.0, -1.0, 1.0, 0.001); +amt_s01_d06_formant_depth = hslider("MM_Matrix/s01_d06_formant_depth", 0.0, -1.0, 1.0, 0.001); +amt_s02_d06_formant_depth = hslider("MM_Matrix/s02_d06_formant_depth", 0.0, -1.0, 1.0, 0.001); +amt_s03_d06_formant_depth = hslider("MM_Matrix/s03_d06_formant_depth", 0.0, -1.0, 1.0, 0.001); +amt_s04_d06_formant_depth = hslider("MM_Matrix/s04_d06_formant_depth", 0.0, -1.0, 1.0, 0.001); +amt_s05_d06_formant_depth = hslider("MM_Matrix/s05_d06_formant_depth", 0.0, -1.0, 1.0, 0.001); +amt_s06_d06_formant_depth = hslider("MM_Matrix/s06_d06_formant_depth", 0.0, -1.0, 1.0, 0.001); +amt_s07_d06_formant_depth = hslider("MM_Matrix/s07_d06_formant_depth", 0.0, -1.0, 1.0, 0.001); +amt_s08_d06_formant_depth = hslider("MM_Matrix/s08_d06_formant_depth", 0.0, -1.0, 1.0, 0.001); +amt_s09_d06_formant_depth = hslider("MM_Matrix/s09_d06_formant_depth", 0.0, -1.0, 1.0, 0.001); +amt_s10_d06_formant_depth = hslider("MM_Matrix/s10_d06_formant_depth", 0.0, -1.0, 1.0, 0.001); +amt_s11_d06_formant_depth = hslider("MM_Matrix/s11_d06_formant_depth", 0.0, -1.0, 1.0, 0.001); +amt_s12_d06_formant_depth = hslider("MM_Matrix/s12_d06_formant_depth", 0.0, -1.0, 1.0, 0.001); +amt_s13_d06_formant_depth = hslider("MM_Matrix/s13_d06_formant_depth", 0.0, -1.0, 1.0, 0.001); +amt_s14_d06_formant_depth = hslider("MM_Matrix/s14_d06_formant_depth", 0.0, -1.0, 1.0, 0.001); +amt_s15_d06_formant_depth = hslider("MM_Matrix/s15_d06_formant_depth", 0.0, -1.0, 1.0, 0.001); +amt_s16_d06_formant_depth = hslider("MM_Matrix/s16_d06_formant_depth", 0.0, -1.0, 1.0, 0.001); +amt_s17_d06_formant_depth = hslider("MM_Matrix/s17_d06_formant_depth", 0.0, -1.0, 1.0, 0.001); +amt_s18_d06_formant_depth = hslider("MM_Matrix/s18_d06_formant_depth", 0.0, -1.0, 1.0, 0.001); +amt_s19_d06_formant_depth = hslider("MM_Matrix/s19_d06_formant_depth", 0.0, -1.0, 1.0, 0.001); +amt_s20_d06_formant_depth = hslider("MM_Matrix/s20_d06_formant_depth", 0.0, -1.0, 1.0, 0.001); +amt_s21_d06_formant_depth = hslider("MM_Matrix/s21_d06_formant_depth", 0.0, -1.0, 1.0, 0.001); +amt_s22_d06_formant_depth = hslider("MM_Matrix/s22_d06_formant_depth", 0.0, -1.0, 1.0, 0.001); +amt_s23_d06_formant_depth = hslider("MM_Matrix/s23_d06_formant_depth", 0.0, -1.0, 1.0, 0.001); +amt_s24_d06_formant_depth = hslider("MM_Matrix/s24_d06_formant_depth", 0.0, -1.0, 1.0, 0.001); +amt_s25_d06_formant_depth = hslider("MM_Matrix/s25_d06_formant_depth", 0.0, -1.0, 1.0, 0.001); +amt_s26_d06_formant_depth = hslider("MM_Matrix/s26_d06_formant_depth", 0.0, -1.0, 1.0, 0.001); +amt_s27_d06_formant_depth = hslider("MM_Matrix/s27_d06_formant_depth", 0.0, -1.0, 1.0, 0.001); +amt_s28_d06_formant_depth = hslider("MM_Matrix/s28_d06_formant_depth", 0.0, -1.0, 1.0, 0.001); +amt_s29_d06_formant_depth = hslider("MM_Matrix/s29_d06_formant_depth", 0.0, -1.0, 1.0, 0.001); +amt_s30_d06_formant_depth = hslider("MM_Matrix/s30_d06_formant_depth", 0.0, -1.0, 1.0, 0.001); +amt_s31_d06_formant_depth = hslider("MM_Matrix/s31_d06_formant_depth", 0.0, -1.0, 1.0, 0.001); +amt_s32_d06_formant_depth = hslider("MM_Matrix/s32_d06_formant_depth", 0.0, -1.0, 1.0, 0.001); +amt_s33_d06_formant_depth = hslider("MM_Matrix/s33_d06_formant_depth", 0.0, -1.0, 1.0, 0.001); +amt_s34_d06_formant_depth = hslider("MM_Matrix/s34_d06_formant_depth", 0.0, -1.0, 1.0, 0.001); +amt_s35_d06_formant_depth = hslider("MM_Matrix/s35_d06_formant_depth", 0.0, -1.0, 1.0, 0.001); +amt_s36_d06_formant_depth = hslider("MM_Matrix/s36_d06_formant_depth", 0.0, -1.0, 1.0, 0.001); +amt_s37_d06_formant_depth = hslider("MM_Matrix/s37_d06_formant_depth", 0.0, -1.0, 1.0, 0.001); +amt_s38_d06_formant_depth = hslider("MM_Matrix/s38_d06_formant_depth", 0.0, -1.0, 1.0, 0.001); +amt_s39_d06_formant_depth = hslider("MM_Matrix/s39_d06_formant_depth", 0.0, -1.0, 1.0, 0.001); +amt_s40_d06_formant_depth = hslider("MM_Matrix/s40_d06_formant_depth", 0.0, -1.0, 1.0, 0.001); +amt_s41_d06_formant_depth = hslider("MM_Matrix/s41_d06_formant_depth", 0.0, -1.0, 1.0, 0.001); +amt_s42_d06_formant_depth = hslider("MM_Matrix/s42_d06_formant_depth", 0.0, -1.0, 1.0, 0.001); +amt_s43_d06_formant_depth = hslider("MM_Matrix/s43_d06_formant_depth", 0.0, -1.0, 1.0, 0.001); +amt_s44_d06_formant_depth = hslider("MM_Matrix/s44_d06_formant_depth", 0.0, -1.0, 1.0, 0.001); +amt_s45_d06_formant_depth = hslider("MM_Matrix/s45_d06_formant_depth", 0.0, -1.0, 1.0, 0.001); +amt_s46_d06_formant_depth = hslider("MM_Matrix/s46_d06_formant_depth", 0.0, -1.0, 1.0, 0.001); +amt_s47_d06_formant_depth = hslider("MM_Matrix/s47_d06_formant_depth", 0.0, -1.0, 1.0, 0.001); + +// Matrix column: destination 7 = noise_mix +amt_s00_d07_noise_mix = hslider("MM_Matrix/s00_d07_noise_mix", 0.0, -1.0, 1.0, 0.001); +amt_s01_d07_noise_mix = hslider("MM_Matrix/s01_d07_noise_mix", 0.0, -1.0, 1.0, 0.001); +amt_s02_d07_noise_mix = hslider("MM_Matrix/s02_d07_noise_mix", 0.0, -1.0, 1.0, 0.001); +amt_s03_d07_noise_mix = hslider("MM_Matrix/s03_d07_noise_mix", 0.0, -1.0, 1.0, 0.001); +amt_s04_d07_noise_mix = hslider("MM_Matrix/s04_d07_noise_mix", 0.0, -1.0, 1.0, 0.001); +amt_s05_d07_noise_mix = hslider("MM_Matrix/s05_d07_noise_mix", 0.0, -1.0, 1.0, 0.001); +amt_s06_d07_noise_mix = hslider("MM_Matrix/s06_d07_noise_mix", 0.0, -1.0, 1.0, 0.001); +amt_s07_d07_noise_mix = hslider("MM_Matrix/s07_d07_noise_mix", 0.0, -1.0, 1.0, 0.001); +amt_s08_d07_noise_mix = hslider("MM_Matrix/s08_d07_noise_mix", 0.0, -1.0, 1.0, 0.001); +amt_s09_d07_noise_mix = hslider("MM_Matrix/s09_d07_noise_mix", 0.0, -1.0, 1.0, 0.001); +amt_s10_d07_noise_mix = hslider("MM_Matrix/s10_d07_noise_mix", 0.0, -1.0, 1.0, 0.001); +amt_s11_d07_noise_mix = hslider("MM_Matrix/s11_d07_noise_mix", 0.0, -1.0, 1.0, 0.001); +amt_s12_d07_noise_mix = hslider("MM_Matrix/s12_d07_noise_mix", 0.0, -1.0, 1.0, 0.001); +amt_s13_d07_noise_mix = hslider("MM_Matrix/s13_d07_noise_mix", 0.0, -1.0, 1.0, 0.001); +amt_s14_d07_noise_mix = hslider("MM_Matrix/s14_d07_noise_mix", 0.0, -1.0, 1.0, 0.001); +amt_s15_d07_noise_mix = hslider("MM_Matrix/s15_d07_noise_mix", 0.0, -1.0, 1.0, 0.001); +amt_s16_d07_noise_mix = hslider("MM_Matrix/s16_d07_noise_mix", 0.0, -1.0, 1.0, 0.001); +amt_s17_d07_noise_mix = hslider("MM_Matrix/s17_d07_noise_mix", 0.0, -1.0, 1.0, 0.001); +amt_s18_d07_noise_mix = hslider("MM_Matrix/s18_d07_noise_mix", 0.0, -1.0, 1.0, 0.001); +amt_s19_d07_noise_mix = hslider("MM_Matrix/s19_d07_noise_mix", 0.0, -1.0, 1.0, 0.001); +amt_s20_d07_noise_mix = hslider("MM_Matrix/s20_d07_noise_mix", 0.0, -1.0, 1.0, 0.001); +amt_s21_d07_noise_mix = hslider("MM_Matrix/s21_d07_noise_mix", 0.0, -1.0, 1.0, 0.001); +amt_s22_d07_noise_mix = hslider("MM_Matrix/s22_d07_noise_mix", 0.0, -1.0, 1.0, 0.001); +amt_s23_d07_noise_mix = hslider("MM_Matrix/s23_d07_noise_mix", 0.0, -1.0, 1.0, 0.001); +amt_s24_d07_noise_mix = hslider("MM_Matrix/s24_d07_noise_mix", 0.0, -1.0, 1.0, 0.001); +amt_s25_d07_noise_mix = hslider("MM_Matrix/s25_d07_noise_mix", 0.0, -1.0, 1.0, 0.001); +amt_s26_d07_noise_mix = hslider("MM_Matrix/s26_d07_noise_mix", 0.0, -1.0, 1.0, 0.001); +amt_s27_d07_noise_mix = hslider("MM_Matrix/s27_d07_noise_mix", 0.0, -1.0, 1.0, 0.001); +amt_s28_d07_noise_mix = hslider("MM_Matrix/s28_d07_noise_mix", 0.0, -1.0, 1.0, 0.001); +amt_s29_d07_noise_mix = hslider("MM_Matrix/s29_d07_noise_mix", 0.0, -1.0, 1.0, 0.001); +amt_s30_d07_noise_mix = hslider("MM_Matrix/s30_d07_noise_mix", 0.0, -1.0, 1.0, 0.001); +amt_s31_d07_noise_mix = hslider("MM_Matrix/s31_d07_noise_mix", 0.0, -1.0, 1.0, 0.001); +amt_s32_d07_noise_mix = hslider("MM_Matrix/s32_d07_noise_mix", 0.0, -1.0, 1.0, 0.001); +amt_s33_d07_noise_mix = hslider("MM_Matrix/s33_d07_noise_mix", 0.0, -1.0, 1.0, 0.001); +amt_s34_d07_noise_mix = hslider("MM_Matrix/s34_d07_noise_mix", 0.0, -1.0, 1.0, 0.001); +amt_s35_d07_noise_mix = hslider("MM_Matrix/s35_d07_noise_mix", 0.0, -1.0, 1.0, 0.001); +amt_s36_d07_noise_mix = hslider("MM_Matrix/s36_d07_noise_mix", 0.0, -1.0, 1.0, 0.001); +amt_s37_d07_noise_mix = hslider("MM_Matrix/s37_d07_noise_mix", 0.0, -1.0, 1.0, 0.001); +amt_s38_d07_noise_mix = hslider("MM_Matrix/s38_d07_noise_mix", 0.0, -1.0, 1.0, 0.001); +amt_s39_d07_noise_mix = hslider("MM_Matrix/s39_d07_noise_mix", 0.0, -1.0, 1.0, 0.001); +amt_s40_d07_noise_mix = hslider("MM_Matrix/s40_d07_noise_mix", 0.0, -1.0, 1.0, 0.001); +amt_s41_d07_noise_mix = hslider("MM_Matrix/s41_d07_noise_mix", 0.0, -1.0, 1.0, 0.001); +amt_s42_d07_noise_mix = hslider("MM_Matrix/s42_d07_noise_mix", 0.0, -1.0, 1.0, 0.001); +amt_s43_d07_noise_mix = hslider("MM_Matrix/s43_d07_noise_mix", 0.0, -1.0, 1.0, 0.001); +amt_s44_d07_noise_mix = hslider("MM_Matrix/s44_d07_noise_mix", 0.0, -1.0, 1.0, 0.001); +amt_s45_d07_noise_mix = hslider("MM_Matrix/s45_d07_noise_mix", 0.0, -1.0, 1.0, 0.001); +amt_s46_d07_noise_mix = hslider("MM_Matrix/s46_d07_noise_mix", 0.0, -1.0, 1.0, 0.001); +amt_s47_d07_noise_mix = hslider("MM_Matrix/s47_d07_noise_mix", 0.0, -1.0, 1.0, 0.001); + +// Matrix column: destination 8 = amp +amt_s00_d08_amp = hslider("MM_Matrix/s00_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s01_d08_amp = hslider("MM_Matrix/s01_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s02_d08_amp = hslider("MM_Matrix/s02_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s03_d08_amp = hslider("MM_Matrix/s03_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s04_d08_amp = hslider("MM_Matrix/s04_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s05_d08_amp = hslider("MM_Matrix/s05_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s06_d08_amp = hslider("MM_Matrix/s06_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s07_d08_amp = hslider("MM_Matrix/s07_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s08_d08_amp = hslider("MM_Matrix/s08_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s09_d08_amp = hslider("MM_Matrix/s09_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s10_d08_amp = hslider("MM_Matrix/s10_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s11_d08_amp = hslider("MM_Matrix/s11_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s12_d08_amp = hslider("MM_Matrix/s12_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s13_d08_amp = hslider("MM_Matrix/s13_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s14_d08_amp = hslider("MM_Matrix/s14_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s15_d08_amp = hslider("MM_Matrix/s15_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s16_d08_amp = hslider("MM_Matrix/s16_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s17_d08_amp = hslider("MM_Matrix/s17_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s18_d08_amp = hslider("MM_Matrix/s18_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s19_d08_amp = hslider("MM_Matrix/s19_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s20_d08_amp = hslider("MM_Matrix/s20_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s21_d08_amp = hslider("MM_Matrix/s21_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s22_d08_amp = hslider("MM_Matrix/s22_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s23_d08_amp = hslider("MM_Matrix/s23_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s24_d08_amp = hslider("MM_Matrix/s24_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s25_d08_amp = hslider("MM_Matrix/s25_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s26_d08_amp = hslider("MM_Matrix/s26_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s27_d08_amp = hslider("MM_Matrix/s27_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s28_d08_amp = hslider("MM_Matrix/s28_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s29_d08_amp = hslider("MM_Matrix/s29_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s30_d08_amp = hslider("MM_Matrix/s30_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s31_d08_amp = hslider("MM_Matrix/s31_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s32_d08_amp = hslider("MM_Matrix/s32_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s33_d08_amp = hslider("MM_Matrix/s33_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s34_d08_amp = hslider("MM_Matrix/s34_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s35_d08_amp = hslider("MM_Matrix/s35_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s36_d08_amp = hslider("MM_Matrix/s36_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s37_d08_amp = hslider("MM_Matrix/s37_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s38_d08_amp = hslider("MM_Matrix/s38_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s39_d08_amp = hslider("MM_Matrix/s39_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s40_d08_amp = hslider("MM_Matrix/s40_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s41_d08_amp = hslider("MM_Matrix/s41_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s42_d08_amp = hslider("MM_Matrix/s42_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s43_d08_amp = hslider("MM_Matrix/s43_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s44_d08_amp = hslider("MM_Matrix/s44_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s45_d08_amp = hslider("MM_Matrix/s45_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s46_d08_amp = hslider("MM_Matrix/s46_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s47_d08_amp = hslider("MM_Matrix/s47_d08_amp", 0.0, -1.0, 1.0, 0.001); + +// Matrix column: destination 9 = pan +amt_s00_d09_pan = hslider("MM_Matrix/s00_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s01_d09_pan = hslider("MM_Matrix/s01_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s02_d09_pan = hslider("MM_Matrix/s02_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s03_d09_pan = hslider("MM_Matrix/s03_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s04_d09_pan = hslider("MM_Matrix/s04_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s05_d09_pan = hslider("MM_Matrix/s05_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s06_d09_pan = hslider("MM_Matrix/s06_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s07_d09_pan = hslider("MM_Matrix/s07_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s08_d09_pan = hslider("MM_Matrix/s08_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s09_d09_pan = hslider("MM_Matrix/s09_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s10_d09_pan = hslider("MM_Matrix/s10_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s11_d09_pan = hslider("MM_Matrix/s11_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s12_d09_pan = hslider("MM_Matrix/s12_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s13_d09_pan = hslider("MM_Matrix/s13_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s14_d09_pan = hslider("MM_Matrix/s14_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s15_d09_pan = hslider("MM_Matrix/s15_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s16_d09_pan = hslider("MM_Matrix/s16_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s17_d09_pan = hslider("MM_Matrix/s17_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s18_d09_pan = hslider("MM_Matrix/s18_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s19_d09_pan = hslider("MM_Matrix/s19_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s20_d09_pan = hslider("MM_Matrix/s20_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s21_d09_pan = hslider("MM_Matrix/s21_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s22_d09_pan = hslider("MM_Matrix/s22_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s23_d09_pan = hslider("MM_Matrix/s23_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s24_d09_pan = hslider("MM_Matrix/s24_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s25_d09_pan = hslider("MM_Matrix/s25_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s26_d09_pan = hslider("MM_Matrix/s26_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s27_d09_pan = hslider("MM_Matrix/s27_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s28_d09_pan = hslider("MM_Matrix/s28_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s29_d09_pan = hslider("MM_Matrix/s29_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s30_d09_pan = hslider("MM_Matrix/s30_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s31_d09_pan = hslider("MM_Matrix/s31_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s32_d09_pan = hslider("MM_Matrix/s32_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s33_d09_pan = hslider("MM_Matrix/s33_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s34_d09_pan = hslider("MM_Matrix/s34_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s35_d09_pan = hslider("MM_Matrix/s35_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s36_d09_pan = hslider("MM_Matrix/s36_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s37_d09_pan = hslider("MM_Matrix/s37_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s38_d09_pan = hslider("MM_Matrix/s38_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s39_d09_pan = hslider("MM_Matrix/s39_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s40_d09_pan = hslider("MM_Matrix/s40_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s41_d09_pan = hslider("MM_Matrix/s41_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s42_d09_pan = hslider("MM_Matrix/s42_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s43_d09_pan = hslider("MM_Matrix/s43_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s44_d09_pan = hslider("MM_Matrix/s44_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s45_d09_pan = hslider("MM_Matrix/s45_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s46_d09_pan = hslider("MM_Matrix/s46_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s47_d09_pan = hslider("MM_Matrix/s47_d09_pan", 0.0, -1.0, 1.0, 0.001); + +// --------------------------------------------------------------------------- +// Destination signals — one per modulation destination. Each is a 48-term +// weighted sum of sources × amounts. The `gate` argument is threaded through +// so that mp.src??(gate) can drive ADSR envelopes. +// --------------------------------------------------------------------------- + +mod_pitch(gate) = + mp.src00(gate) * amt_s00_d00_pitch + + mp.src01(gate) * amt_s01_d00_pitch + + mp.src02(gate) * amt_s02_d00_pitch + + mp.src03(gate) * amt_s03_d00_pitch + + mp.src04(gate) * amt_s04_d00_pitch + + mp.src05(gate) * amt_s05_d00_pitch + + mp.src06(gate) * amt_s06_d00_pitch + + mp.src07(gate) * amt_s07_d00_pitch + + mp.src08(gate) * amt_s08_d00_pitch + + mp.src09(gate) * amt_s09_d00_pitch + + mp.src10(gate) * amt_s10_d00_pitch + + mp.src11(gate) * amt_s11_d00_pitch + + mp.src12(gate) * amt_s12_d00_pitch + + mp.src13(gate) * amt_s13_d00_pitch + + mp.src14(gate) * amt_s14_d00_pitch + + mp.src15(gate) * amt_s15_d00_pitch + + mp.src16(gate) * amt_s16_d00_pitch + + mp.src17(gate) * amt_s17_d00_pitch + + mp.src18(gate) * amt_s18_d00_pitch + + mp.src19(gate) * amt_s19_d00_pitch + + mp.src20(gate) * amt_s20_d00_pitch + + mp.src21(gate) * amt_s21_d00_pitch + + mp.src22(gate) * amt_s22_d00_pitch + + mp.src23(gate) * amt_s23_d00_pitch + + mp.src24(gate) * amt_s24_d00_pitch + + mp.src25(gate) * amt_s25_d00_pitch + + mp.src26(gate) * amt_s26_d00_pitch + + mp.src27(gate) * amt_s27_d00_pitch + + mp.src28(gate) * amt_s28_d00_pitch + + mp.src29(gate) * amt_s29_d00_pitch + + mp.src30(gate) * amt_s30_d00_pitch + + mp.src31(gate) * amt_s31_d00_pitch + + mp.src32(gate) * amt_s32_d00_pitch + + mp.src33(gate) * amt_s33_d00_pitch + + mp.src34(gate) * amt_s34_d00_pitch + + mp.src35(gate) * amt_s35_d00_pitch + + mp.src36(gate) * amt_s36_d00_pitch + + mp.src37(gate) * amt_s37_d00_pitch + + mp.src38(gate) * amt_s38_d00_pitch + + mp.src39(gate) * amt_s39_d00_pitch + + mp.src40(gate) * amt_s40_d00_pitch + + mp.src41(gate) * amt_s41_d00_pitch + + mp.src42(gate) * amt_s42_d00_pitch + + mp.src43(gate) * amt_s43_d00_pitch + + mp.src44(gate) * amt_s44_d00_pitch + + mp.src45(gate) * amt_s45_d00_pitch + + mp.src46(gate) * amt_s46_d00_pitch + + mp.src47(gate) * amt_s47_d00_pitch; + +mod_bright(gate) = + mp.src00(gate) * amt_s00_d01_bright + + mp.src01(gate) * amt_s01_d01_bright + + mp.src02(gate) * amt_s02_d01_bright + + mp.src03(gate) * amt_s03_d01_bright + + mp.src04(gate) * amt_s04_d01_bright + + mp.src05(gate) * amt_s05_d01_bright + + mp.src06(gate) * amt_s06_d01_bright + + mp.src07(gate) * amt_s07_d01_bright + + mp.src08(gate) * amt_s08_d01_bright + + mp.src09(gate) * amt_s09_d01_bright + + mp.src10(gate) * amt_s10_d01_bright + + mp.src11(gate) * amt_s11_d01_bright + + mp.src12(gate) * amt_s12_d01_bright + + mp.src13(gate) * amt_s13_d01_bright + + mp.src14(gate) * amt_s14_d01_bright + + mp.src15(gate) * amt_s15_d01_bright + + mp.src16(gate) * amt_s16_d01_bright + + mp.src17(gate) * amt_s17_d01_bright + + mp.src18(gate) * amt_s18_d01_bright + + mp.src19(gate) * amt_s19_d01_bright + + mp.src20(gate) * amt_s20_d01_bright + + mp.src21(gate) * amt_s21_d01_bright + + mp.src22(gate) * amt_s22_d01_bright + + mp.src23(gate) * amt_s23_d01_bright + + mp.src24(gate) * amt_s24_d01_bright + + mp.src25(gate) * amt_s25_d01_bright + + mp.src26(gate) * amt_s26_d01_bright + + mp.src27(gate) * amt_s27_d01_bright + + mp.src28(gate) * amt_s28_d01_bright + + mp.src29(gate) * amt_s29_d01_bright + + mp.src30(gate) * amt_s30_d01_bright + + mp.src31(gate) * amt_s31_d01_bright + + mp.src32(gate) * amt_s32_d01_bright + + mp.src33(gate) * amt_s33_d01_bright + + mp.src34(gate) * amt_s34_d01_bright + + mp.src35(gate) * amt_s35_d01_bright + + mp.src36(gate) * amt_s36_d01_bright + + mp.src37(gate) * amt_s37_d01_bright + + mp.src38(gate) * amt_s38_d01_bright + + mp.src39(gate) * amt_s39_d01_bright + + mp.src40(gate) * amt_s40_d01_bright + + mp.src41(gate) * amt_s41_d01_bright + + mp.src42(gate) * amt_s42_d01_bright + + mp.src43(gate) * amt_s43_d01_bright + + mp.src44(gate) * amt_s44_d01_bright + + mp.src45(gate) * amt_s45_d01_bright + + mp.src46(gate) * amt_s46_d01_bright + + mp.src47(gate) * amt_s47_d01_bright; + +mod_tilt(gate) = + mp.src00(gate) * amt_s00_d02_tilt + + mp.src01(gate) * amt_s01_d02_tilt + + mp.src02(gate) * amt_s02_d02_tilt + + mp.src03(gate) * amt_s03_d02_tilt + + mp.src04(gate) * amt_s04_d02_tilt + + mp.src05(gate) * amt_s05_d02_tilt + + mp.src06(gate) * amt_s06_d02_tilt + + mp.src07(gate) * amt_s07_d02_tilt + + mp.src08(gate) * amt_s08_d02_tilt + + mp.src09(gate) * amt_s09_d02_tilt + + mp.src10(gate) * amt_s10_d02_tilt + + mp.src11(gate) * amt_s11_d02_tilt + + mp.src12(gate) * amt_s12_d02_tilt + + mp.src13(gate) * amt_s13_d02_tilt + + mp.src14(gate) * amt_s14_d02_tilt + + mp.src15(gate) * amt_s15_d02_tilt + + mp.src16(gate) * amt_s16_d02_tilt + + mp.src17(gate) * amt_s17_d02_tilt + + mp.src18(gate) * amt_s18_d02_tilt + + mp.src19(gate) * amt_s19_d02_tilt + + mp.src20(gate) * amt_s20_d02_tilt + + mp.src21(gate) * amt_s21_d02_tilt + + mp.src22(gate) * amt_s22_d02_tilt + + mp.src23(gate) * amt_s23_d02_tilt + + mp.src24(gate) * amt_s24_d02_tilt + + mp.src25(gate) * amt_s25_d02_tilt + + mp.src26(gate) * amt_s26_d02_tilt + + mp.src27(gate) * amt_s27_d02_tilt + + mp.src28(gate) * amt_s28_d02_tilt + + mp.src29(gate) * amt_s29_d02_tilt + + mp.src30(gate) * amt_s30_d02_tilt + + mp.src31(gate) * amt_s31_d02_tilt + + mp.src32(gate) * amt_s32_d02_tilt + + mp.src33(gate) * amt_s33_d02_tilt + + mp.src34(gate) * amt_s34_d02_tilt + + mp.src35(gate) * amt_s35_d02_tilt + + mp.src36(gate) * amt_s36_d02_tilt + + mp.src37(gate) * amt_s37_d02_tilt + + mp.src38(gate) * amt_s38_d02_tilt + + mp.src39(gate) * amt_s39_d02_tilt + + mp.src40(gate) * amt_s40_d02_tilt + + mp.src41(gate) * amt_s41_d02_tilt + + mp.src42(gate) * amt_s42_d02_tilt + + mp.src43(gate) * amt_s43_d02_tilt + + mp.src44(gate) * amt_s44_d02_tilt + + mp.src45(gate) * amt_s45_d02_tilt + + mp.src46(gate) * amt_s46_d02_tilt + + mp.src47(gate) * amt_s47_d02_tilt; + +mod_inharmonicity(gate) = + mp.src00(gate) * amt_s00_d03_inharmonicity + + mp.src01(gate) * amt_s01_d03_inharmonicity + + mp.src02(gate) * amt_s02_d03_inharmonicity + + mp.src03(gate) * amt_s03_d03_inharmonicity + + mp.src04(gate) * amt_s04_d03_inharmonicity + + mp.src05(gate) * amt_s05_d03_inharmonicity + + mp.src06(gate) * amt_s06_d03_inharmonicity + + mp.src07(gate) * amt_s07_d03_inharmonicity + + mp.src08(gate) * amt_s08_d03_inharmonicity + + mp.src09(gate) * amt_s09_d03_inharmonicity + + mp.src10(gate) * amt_s10_d03_inharmonicity + + mp.src11(gate) * amt_s11_d03_inharmonicity + + mp.src12(gate) * amt_s12_d03_inharmonicity + + mp.src13(gate) * amt_s13_d03_inharmonicity + + mp.src14(gate) * amt_s14_d03_inharmonicity + + mp.src15(gate) * amt_s15_d03_inharmonicity + + mp.src16(gate) * amt_s16_d03_inharmonicity + + mp.src17(gate) * amt_s17_d03_inharmonicity + + mp.src18(gate) * amt_s18_d03_inharmonicity + + mp.src19(gate) * amt_s19_d03_inharmonicity + + mp.src20(gate) * amt_s20_d03_inharmonicity + + mp.src21(gate) * amt_s21_d03_inharmonicity + + mp.src22(gate) * amt_s22_d03_inharmonicity + + mp.src23(gate) * amt_s23_d03_inharmonicity + + mp.src24(gate) * amt_s24_d03_inharmonicity + + mp.src25(gate) * amt_s25_d03_inharmonicity + + mp.src26(gate) * amt_s26_d03_inharmonicity + + mp.src27(gate) * amt_s27_d03_inharmonicity + + mp.src28(gate) * amt_s28_d03_inharmonicity + + mp.src29(gate) * amt_s29_d03_inharmonicity + + mp.src30(gate) * amt_s30_d03_inharmonicity + + mp.src31(gate) * amt_s31_d03_inharmonicity + + mp.src32(gate) * amt_s32_d03_inharmonicity + + mp.src33(gate) * amt_s33_d03_inharmonicity + + mp.src34(gate) * amt_s34_d03_inharmonicity + + mp.src35(gate) * amt_s35_d03_inharmonicity + + mp.src36(gate) * amt_s36_d03_inharmonicity + + mp.src37(gate) * amt_s37_d03_inharmonicity + + mp.src38(gate) * amt_s38_d03_inharmonicity + + mp.src39(gate) * amt_s39_d03_inharmonicity + + mp.src40(gate) * amt_s40_d03_inharmonicity + + mp.src41(gate) * amt_s41_d03_inharmonicity + + mp.src42(gate) * amt_s42_d03_inharmonicity + + mp.src43(gate) * amt_s43_d03_inharmonicity + + mp.src44(gate) * amt_s44_d03_inharmonicity + + mp.src45(gate) * amt_s45_d03_inharmonicity + + mp.src46(gate) * amt_s46_d03_inharmonicity + + mp.src47(gate) * amt_s47_d03_inharmonicity; + +mod_odd_even(gate) = + mp.src00(gate) * amt_s00_d04_odd_even + + mp.src01(gate) * amt_s01_d04_odd_even + + mp.src02(gate) * amt_s02_d04_odd_even + + mp.src03(gate) * amt_s03_d04_odd_even + + mp.src04(gate) * amt_s04_d04_odd_even + + mp.src05(gate) * amt_s05_d04_odd_even + + mp.src06(gate) * amt_s06_d04_odd_even + + mp.src07(gate) * amt_s07_d04_odd_even + + mp.src08(gate) * amt_s08_d04_odd_even + + mp.src09(gate) * amt_s09_d04_odd_even + + mp.src10(gate) * amt_s10_d04_odd_even + + mp.src11(gate) * amt_s11_d04_odd_even + + mp.src12(gate) * amt_s12_d04_odd_even + + mp.src13(gate) * amt_s13_d04_odd_even + + mp.src14(gate) * amt_s14_d04_odd_even + + mp.src15(gate) * amt_s15_d04_odd_even + + mp.src16(gate) * amt_s16_d04_odd_even + + mp.src17(gate) * amt_s17_d04_odd_even + + mp.src18(gate) * amt_s18_d04_odd_even + + mp.src19(gate) * amt_s19_d04_odd_even + + mp.src20(gate) * amt_s20_d04_odd_even + + mp.src21(gate) * amt_s21_d04_odd_even + + mp.src22(gate) * amt_s22_d04_odd_even + + mp.src23(gate) * amt_s23_d04_odd_even + + mp.src24(gate) * amt_s24_d04_odd_even + + mp.src25(gate) * amt_s25_d04_odd_even + + mp.src26(gate) * amt_s26_d04_odd_even + + mp.src27(gate) * amt_s27_d04_odd_even + + mp.src28(gate) * amt_s28_d04_odd_even + + mp.src29(gate) * amt_s29_d04_odd_even + + mp.src30(gate) * amt_s30_d04_odd_even + + mp.src31(gate) * amt_s31_d04_odd_even + + mp.src32(gate) * amt_s32_d04_odd_even + + mp.src33(gate) * amt_s33_d04_odd_even + + mp.src34(gate) * amt_s34_d04_odd_even + + mp.src35(gate) * amt_s35_d04_odd_even + + mp.src36(gate) * amt_s36_d04_odd_even + + mp.src37(gate) * amt_s37_d04_odd_even + + mp.src38(gate) * amt_s38_d04_odd_even + + mp.src39(gate) * amt_s39_d04_odd_even + + mp.src40(gate) * amt_s40_d04_odd_even + + mp.src41(gate) * amt_s41_d04_odd_even + + mp.src42(gate) * amt_s42_d04_odd_even + + mp.src43(gate) * amt_s43_d04_odd_even + + mp.src44(gate) * amt_s44_d04_odd_even + + mp.src45(gate) * amt_s45_d04_odd_even + + mp.src46(gate) * amt_s46_d04_odd_even + + mp.src47(gate) * amt_s47_d04_odd_even; + +mod_formant_ctr(gate) = + mp.src00(gate) * amt_s00_d05_formant_ctr + + mp.src01(gate) * amt_s01_d05_formant_ctr + + mp.src02(gate) * amt_s02_d05_formant_ctr + + mp.src03(gate) * amt_s03_d05_formant_ctr + + mp.src04(gate) * amt_s04_d05_formant_ctr + + mp.src05(gate) * amt_s05_d05_formant_ctr + + mp.src06(gate) * amt_s06_d05_formant_ctr + + mp.src07(gate) * amt_s07_d05_formant_ctr + + mp.src08(gate) * amt_s08_d05_formant_ctr + + mp.src09(gate) * amt_s09_d05_formant_ctr + + mp.src10(gate) * amt_s10_d05_formant_ctr + + mp.src11(gate) * amt_s11_d05_formant_ctr + + mp.src12(gate) * amt_s12_d05_formant_ctr + + mp.src13(gate) * amt_s13_d05_formant_ctr + + mp.src14(gate) * amt_s14_d05_formant_ctr + + mp.src15(gate) * amt_s15_d05_formant_ctr + + mp.src16(gate) * amt_s16_d05_formant_ctr + + mp.src17(gate) * amt_s17_d05_formant_ctr + + mp.src18(gate) * amt_s18_d05_formant_ctr + + mp.src19(gate) * amt_s19_d05_formant_ctr + + mp.src20(gate) * amt_s20_d05_formant_ctr + + mp.src21(gate) * amt_s21_d05_formant_ctr + + mp.src22(gate) * amt_s22_d05_formant_ctr + + mp.src23(gate) * amt_s23_d05_formant_ctr + + mp.src24(gate) * amt_s24_d05_formant_ctr + + mp.src25(gate) * amt_s25_d05_formant_ctr + + mp.src26(gate) * amt_s26_d05_formant_ctr + + mp.src27(gate) * amt_s27_d05_formant_ctr + + mp.src28(gate) * amt_s28_d05_formant_ctr + + mp.src29(gate) * amt_s29_d05_formant_ctr + + mp.src30(gate) * amt_s30_d05_formant_ctr + + mp.src31(gate) * amt_s31_d05_formant_ctr + + mp.src32(gate) * amt_s32_d05_formant_ctr + + mp.src33(gate) * amt_s33_d05_formant_ctr + + mp.src34(gate) * amt_s34_d05_formant_ctr + + mp.src35(gate) * amt_s35_d05_formant_ctr + + mp.src36(gate) * amt_s36_d05_formant_ctr + + mp.src37(gate) * amt_s37_d05_formant_ctr + + mp.src38(gate) * amt_s38_d05_formant_ctr + + mp.src39(gate) * amt_s39_d05_formant_ctr + + mp.src40(gate) * amt_s40_d05_formant_ctr + + mp.src41(gate) * amt_s41_d05_formant_ctr + + mp.src42(gate) * amt_s42_d05_formant_ctr + + mp.src43(gate) * amt_s43_d05_formant_ctr + + mp.src44(gate) * amt_s44_d05_formant_ctr + + mp.src45(gate) * amt_s45_d05_formant_ctr + + mp.src46(gate) * amt_s46_d05_formant_ctr + + mp.src47(gate) * amt_s47_d05_formant_ctr; + +mod_formant_depth(gate) = + mp.src00(gate) * amt_s00_d06_formant_depth + + mp.src01(gate) * amt_s01_d06_formant_depth + + mp.src02(gate) * amt_s02_d06_formant_depth + + mp.src03(gate) * amt_s03_d06_formant_depth + + mp.src04(gate) * amt_s04_d06_formant_depth + + mp.src05(gate) * amt_s05_d06_formant_depth + + mp.src06(gate) * amt_s06_d06_formant_depth + + mp.src07(gate) * amt_s07_d06_formant_depth + + mp.src08(gate) * amt_s08_d06_formant_depth + + mp.src09(gate) * amt_s09_d06_formant_depth + + mp.src10(gate) * amt_s10_d06_formant_depth + + mp.src11(gate) * amt_s11_d06_formant_depth + + mp.src12(gate) * amt_s12_d06_formant_depth + + mp.src13(gate) * amt_s13_d06_formant_depth + + mp.src14(gate) * amt_s14_d06_formant_depth + + mp.src15(gate) * amt_s15_d06_formant_depth + + mp.src16(gate) * amt_s16_d06_formant_depth + + mp.src17(gate) * amt_s17_d06_formant_depth + + mp.src18(gate) * amt_s18_d06_formant_depth + + mp.src19(gate) * amt_s19_d06_formant_depth + + mp.src20(gate) * amt_s20_d06_formant_depth + + mp.src21(gate) * amt_s21_d06_formant_depth + + mp.src22(gate) * amt_s22_d06_formant_depth + + mp.src23(gate) * amt_s23_d06_formant_depth + + mp.src24(gate) * amt_s24_d06_formant_depth + + mp.src25(gate) * amt_s25_d06_formant_depth + + mp.src26(gate) * amt_s26_d06_formant_depth + + mp.src27(gate) * amt_s27_d06_formant_depth + + mp.src28(gate) * amt_s28_d06_formant_depth + + mp.src29(gate) * amt_s29_d06_formant_depth + + mp.src30(gate) * amt_s30_d06_formant_depth + + mp.src31(gate) * amt_s31_d06_formant_depth + + mp.src32(gate) * amt_s32_d06_formant_depth + + mp.src33(gate) * amt_s33_d06_formant_depth + + mp.src34(gate) * amt_s34_d06_formant_depth + + mp.src35(gate) * amt_s35_d06_formant_depth + + mp.src36(gate) * amt_s36_d06_formant_depth + + mp.src37(gate) * amt_s37_d06_formant_depth + + mp.src38(gate) * amt_s38_d06_formant_depth + + mp.src39(gate) * amt_s39_d06_formant_depth + + mp.src40(gate) * amt_s40_d06_formant_depth + + mp.src41(gate) * amt_s41_d06_formant_depth + + mp.src42(gate) * amt_s42_d06_formant_depth + + mp.src43(gate) * amt_s43_d06_formant_depth + + mp.src44(gate) * amt_s44_d06_formant_depth + + mp.src45(gate) * amt_s45_d06_formant_depth + + mp.src46(gate) * amt_s46_d06_formant_depth + + mp.src47(gate) * amt_s47_d06_formant_depth; + +mod_noise_mix(gate) = + mp.src00(gate) * amt_s00_d07_noise_mix + + mp.src01(gate) * amt_s01_d07_noise_mix + + mp.src02(gate) * amt_s02_d07_noise_mix + + mp.src03(gate) * amt_s03_d07_noise_mix + + mp.src04(gate) * amt_s04_d07_noise_mix + + mp.src05(gate) * amt_s05_d07_noise_mix + + mp.src06(gate) * amt_s06_d07_noise_mix + + mp.src07(gate) * amt_s07_d07_noise_mix + + mp.src08(gate) * amt_s08_d07_noise_mix + + mp.src09(gate) * amt_s09_d07_noise_mix + + mp.src10(gate) * amt_s10_d07_noise_mix + + mp.src11(gate) * amt_s11_d07_noise_mix + + mp.src12(gate) * amt_s12_d07_noise_mix + + mp.src13(gate) * amt_s13_d07_noise_mix + + mp.src14(gate) * amt_s14_d07_noise_mix + + mp.src15(gate) * amt_s15_d07_noise_mix + + mp.src16(gate) * amt_s16_d07_noise_mix + + mp.src17(gate) * amt_s17_d07_noise_mix + + mp.src18(gate) * amt_s18_d07_noise_mix + + mp.src19(gate) * amt_s19_d07_noise_mix + + mp.src20(gate) * amt_s20_d07_noise_mix + + mp.src21(gate) * amt_s21_d07_noise_mix + + mp.src22(gate) * amt_s22_d07_noise_mix + + mp.src23(gate) * amt_s23_d07_noise_mix + + mp.src24(gate) * amt_s24_d07_noise_mix + + mp.src25(gate) * amt_s25_d07_noise_mix + + mp.src26(gate) * amt_s26_d07_noise_mix + + mp.src27(gate) * amt_s27_d07_noise_mix + + mp.src28(gate) * amt_s28_d07_noise_mix + + mp.src29(gate) * amt_s29_d07_noise_mix + + mp.src30(gate) * amt_s30_d07_noise_mix + + mp.src31(gate) * amt_s31_d07_noise_mix + + mp.src32(gate) * amt_s32_d07_noise_mix + + mp.src33(gate) * amt_s33_d07_noise_mix + + mp.src34(gate) * amt_s34_d07_noise_mix + + mp.src35(gate) * amt_s35_d07_noise_mix + + mp.src36(gate) * amt_s36_d07_noise_mix + + mp.src37(gate) * amt_s37_d07_noise_mix + + mp.src38(gate) * amt_s38_d07_noise_mix + + mp.src39(gate) * amt_s39_d07_noise_mix + + mp.src40(gate) * amt_s40_d07_noise_mix + + mp.src41(gate) * amt_s41_d07_noise_mix + + mp.src42(gate) * amt_s42_d07_noise_mix + + mp.src43(gate) * amt_s43_d07_noise_mix + + mp.src44(gate) * amt_s44_d07_noise_mix + + mp.src45(gate) * amt_s45_d07_noise_mix + + mp.src46(gate) * amt_s46_d07_noise_mix + + mp.src47(gate) * amt_s47_d07_noise_mix; + +mod_amp(gate) = + mp.src00(gate) * amt_s00_d08_amp + + mp.src01(gate) * amt_s01_d08_amp + + mp.src02(gate) * amt_s02_d08_amp + + mp.src03(gate) * amt_s03_d08_amp + + mp.src04(gate) * amt_s04_d08_amp + + mp.src05(gate) * amt_s05_d08_amp + + mp.src06(gate) * amt_s06_d08_amp + + mp.src07(gate) * amt_s07_d08_amp + + mp.src08(gate) * amt_s08_d08_amp + + mp.src09(gate) * amt_s09_d08_amp + + mp.src10(gate) * amt_s10_d08_amp + + mp.src11(gate) * amt_s11_d08_amp + + mp.src12(gate) * amt_s12_d08_amp + + mp.src13(gate) * amt_s13_d08_amp + + mp.src14(gate) * amt_s14_d08_amp + + mp.src15(gate) * amt_s15_d08_amp + + mp.src16(gate) * amt_s16_d08_amp + + mp.src17(gate) * amt_s17_d08_amp + + mp.src18(gate) * amt_s18_d08_amp + + mp.src19(gate) * amt_s19_d08_amp + + mp.src20(gate) * amt_s20_d08_amp + + mp.src21(gate) * amt_s21_d08_amp + + mp.src22(gate) * amt_s22_d08_amp + + mp.src23(gate) * amt_s23_d08_amp + + mp.src24(gate) * amt_s24_d08_amp + + mp.src25(gate) * amt_s25_d08_amp + + mp.src26(gate) * amt_s26_d08_amp + + mp.src27(gate) * amt_s27_d08_amp + + mp.src28(gate) * amt_s28_d08_amp + + mp.src29(gate) * amt_s29_d08_amp + + mp.src30(gate) * amt_s30_d08_amp + + mp.src31(gate) * amt_s31_d08_amp + + mp.src32(gate) * amt_s32_d08_amp + + mp.src33(gate) * amt_s33_d08_amp + + mp.src34(gate) * amt_s34_d08_amp + + mp.src35(gate) * amt_s35_d08_amp + + mp.src36(gate) * amt_s36_d08_amp + + mp.src37(gate) * amt_s37_d08_amp + + mp.src38(gate) * amt_s38_d08_amp + + mp.src39(gate) * amt_s39_d08_amp + + mp.src40(gate) * amt_s40_d08_amp + + mp.src41(gate) * amt_s41_d08_amp + + mp.src42(gate) * amt_s42_d08_amp + + mp.src43(gate) * amt_s43_d08_amp + + mp.src44(gate) * amt_s44_d08_amp + + mp.src45(gate) * amt_s45_d08_amp + + mp.src46(gate) * amt_s46_d08_amp + + mp.src47(gate) * amt_s47_d08_amp; + +mod_pan(gate) = + mp.src00(gate) * amt_s00_d09_pan + + mp.src01(gate) * amt_s01_d09_pan + + mp.src02(gate) * amt_s02_d09_pan + + mp.src03(gate) * amt_s03_d09_pan + + mp.src04(gate) * amt_s04_d09_pan + + mp.src05(gate) * amt_s05_d09_pan + + mp.src06(gate) * amt_s06_d09_pan + + mp.src07(gate) * amt_s07_d09_pan + + mp.src08(gate) * amt_s08_d09_pan + + mp.src09(gate) * amt_s09_d09_pan + + mp.src10(gate) * amt_s10_d09_pan + + mp.src11(gate) * amt_s11_d09_pan + + mp.src12(gate) * amt_s12_d09_pan + + mp.src13(gate) * amt_s13_d09_pan + + mp.src14(gate) * amt_s14_d09_pan + + mp.src15(gate) * amt_s15_d09_pan + + mp.src16(gate) * amt_s16_d09_pan + + mp.src17(gate) * amt_s17_d09_pan + + mp.src18(gate) * amt_s18_d09_pan + + mp.src19(gate) * amt_s19_d09_pan + + mp.src20(gate) * amt_s20_d09_pan + + mp.src21(gate) * amt_s21_d09_pan + + mp.src22(gate) * amt_s22_d09_pan + + mp.src23(gate) * amt_s23_d09_pan + + mp.src24(gate) * amt_s24_d09_pan + + mp.src25(gate) * amt_s25_d09_pan + + mp.src26(gate) * amt_s26_d09_pan + + mp.src27(gate) * amt_s27_d09_pan + + mp.src28(gate) * amt_s28_d09_pan + + mp.src29(gate) * amt_s29_d09_pan + + mp.src30(gate) * amt_s30_d09_pan + + mp.src31(gate) * amt_s31_d09_pan + + mp.src32(gate) * amt_s32_d09_pan + + mp.src33(gate) * amt_s33_d09_pan + + mp.src34(gate) * amt_s34_d09_pan + + mp.src35(gate) * amt_s35_d09_pan + + mp.src36(gate) * amt_s36_d09_pan + + mp.src37(gate) * amt_s37_d09_pan + + mp.src38(gate) * amt_s38_d09_pan + + mp.src39(gate) * amt_s39_d09_pan + + mp.src40(gate) * amt_s40_d09_pan + + mp.src41(gate) * amt_s41_d09_pan + + mp.src42(gate) * amt_s42_d09_pan + + mp.src43(gate) * amt_s43_d09_pan + + mp.src44(gate) * amt_s44_d09_pan + + mp.src45(gate) * amt_s45_d09_pan + + mp.src46(gate) * amt_s46_d09_pan + + mp.src47(gate) * amt_s47_d09_pan; + +// --------------------------------------------------------------------------- +// Derived signals +// --------------------------------------------------------------------------- + +N = 64; +PI = ma.PI; + +cent2ratio(c) = pow(2.0, c / 1200.0); +semi2ratio(s) = pow(2.0, s / 12.0); + +// Pitch: modulation (semitones), no glide +fine_ratio = cent2ratio(fine_tune); +pitch_ratio = semi2ratio(mod_pitch(gate) * 12.0); +base_freq = freq * fine_ratio * pitch_ratio; + +// --------------------------------------------------------------------------- +// Per-harmonic base amplitude from group sliders +// --------------------------------------------------------------------------- +group_amp(k) = + ba.if(k == 1, h1_amp, + ba.if(k == 2, h2_amp, + ba.if(k == 3, h3_amp, + ba.if(k == 4, h4_amp, + ba.if(k == 5, h5_amp, + ba.if(k == 6, h6_amp, + ba.if(k == 7, h7_amp, + ba.if(k == 8, h8_amp, + ba.if(k <= 16, h9_16_amp, + ba.if(k <= 32, h17_32_amp, + h33_64_amp)))))))))); + +// Spectral tilt (modulated) — amp *= k^tilt +eff_tilt = spectral_tilt + mod_tilt(gate); +tilt_factor(k) = pow(float(k), eff_tilt); + +// Odd/even balance (modulated, clamped) +eff_odd_even = max(0.0, min(1.0, odd_even + mod_odd_even(gate))); +odd_weight = (1.0 - eff_odd_even) * 2.0; +even_weight = eff_odd_even * 2.0; +odd_even_factor(k) = ba.if(k % 2 == 0, even_weight, odd_weight); + +// Brightness destination: progressive boost/cut on upper partials. +// bright_blend(k): 0 at k=1, 1 at k=N. mod_bright is [-1,+1]. +// factor(k) = 1 + bright_blend(k) * mod_bright. At mod=0 -> unity (neutral). +bright_blend(k) = float(k - 1) / float(N - 1); +mb = mod_bright(gate); +bright_factor(k) = 1.0 + bright_blend(k) * mb; + +// Inharmonicity (modulated, clamped to keep partials monotonic) +eff_inharm = max(0.0, min(0.2, inharmonicity + mod_inharmonicity(gate) * 0.15)); + +// Formant centres (modulated together — mod_formant_ctr shifts both by same amt) +eff_formant_shift = mod_formant_ctr(gate) * 8.0; // ±8 harmonics +eff_f1 = max(1.0, min(32.0, formant1_freq + eff_formant_shift)); +eff_f2 = max(1.0, min(32.0, formant2_freq + eff_formant_shift)); +eff_formant_depth = max(0.0, min(1.0, formant_depth + mod_formant_depth(gate))); + +// Formant shaping — two Gaussian bumps in harmonic-index space +sigma_sq = 1.5 * 1.5; +formant_bump(k, ctr) = exp(-0.5 * (float(k) - ctr) * (float(k) - ctr) / sigma_sq); +formant_factor(k) = + 1.0 + eff_formant_depth * (formant_bump(k, eff_f1) + formant_bump(k, eff_f2)); + +// Combined per-harmonic amplitude +harm_amp(k) = + group_amp(k) * tilt_factor(k) * odd_even_factor(k) * + bright_factor(k) * formant_factor(k); + +// Inharmonic partial frequency: freq_k = k*f0*(1 + B*(k^2 - 1)) +harm_freq(k) = base_freq * float(k) + * (1.0 + eff_inharm * (float(k) * float(k) - 1.0)); + +// Stereo spread — R channel gets a small per-harmonic pitch offset +stereo_spread_freq(k) = stereo_phase_spread * float(k) * 0.01; + +// --------------------------------------------------------------------------- +// Additive oscillator sums — L and R +// --------------------------------------------------------------------------- +additive_L = sum(k, N, harm_amp(k+1) * os.osc(harm_freq(k+1))); +additive_R = sum(k, N, + harm_amp(k+1) * os.osc(harm_freq(k+1) * (1.0 + stereo_spread_freq(k+1)))); + +// Sub-harmonic (0.5× fundamental) +sub_osc = sub_harmonic * os.osc(base_freq * 0.5); + +// --------------------------------------------------------------------------- +// Noise floor — coloured via one-pole LP +// --------------------------------------------------------------------------- +eff_noise = max(0.0, min(1.0, noise_floor + mod_noise_mix(gate))); +noise_lp_cutoff = 200.0 + (1.0 - noise_color) * 19800.0; +noise_signal = no.noise : fi.lowpass(1, noise_lp_cutoff); +noise_out = eff_noise * noise_signal; + +// --------------------------------------------------------------------------- +// Soft-clip saturation — tanh waveshaper +// --------------------------------------------------------------------------- +drive = 1.0 + saturation * 9.0; +softclip(x) = ma.tanh(x * drive) / drive; + +// --------------------------------------------------------------------------- +// Velocity gain — keeps _vel alive in the JSON descriptor +// --------------------------------------------------------------------------- +vel_gain = (1.0 - 0.3) + 0.3 * vel; + +// --------------------------------------------------------------------------- +// Amplitude and pan (both mod-driven) +// --------------------------------------------------------------------------- +amp_val = max(0.0, min(1.0, mod_amp(gate))) * level * vel_gain; +pan_val = max(-1.0, min(1.0, master_pan + mod_pan(gate))); + +pan_l = cos((pan_val + 1.0) * 0.25 * ma.PI); +pan_r = sin((pan_val + 1.0) * 0.25 * ma.PI); + +raw_L = (additive_L + sub_osc + noise_out) * amp_val; +raw_R = (additive_R + sub_osc + noise_out) * amp_val; + +signal_L = softclip(raw_L) * pan_l; +signal_R = softclip(raw_R) * pan_r; + +process = signal_L, signal_R; diff --git a/playground/faust/modular-additive.json b/playground/faust/modular-additive.json new file mode 100644 index 0000000..86142a6 --- /dev/null +++ b/playground/faust/modular-additive.json @@ -0,0 +1 @@ +{"name": "modular-additive","filename": "modular-additive.dsp","version": "2.79.3","compile_options": "-lang wasm -ct 1 -cn modular_additive -es 1 -mcd 16 -mdd 1024 -mdy 33 -single -ftz 0","library_list": ["/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust/stdfaust.lib","/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust/maths.lib","/home/w1n5t0n/src/MEMLNaut-NISPS/playground/faust/mod-pool.lib","/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust/oscillators.lib","/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust/platform.lib","/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust/basics.lib","/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust/envelopes.lib","/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust/signals.lib","/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust/noises.lib","/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust/filters.lib"],"include_pathnames": ["/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust","/usr/local/share/faust","/usr/share/faust",".","/home/w1n5t0n/src/MEMLNaut-NISPS/playground/faust","/home/w1n5t0n/src/MEMLNaut-NISPS/playground/faust"],"size": 266528,"code": "Ly8gbW9kdWxhci1hZGRpdGl2ZS5kc3Ag4oCUIDY0LXBhcnRpYWwgYWRkaXRpdmUgdm9pY2UgZm9yIHRoZSAiTW9kdWxhciIgbW9kZS4KLy8KLy8gQVVUTy1HRU5FUkFURUQgYnkgZ2VuLW1vZHVsYXItZHNwLnB5LiBETyBOT1QgRURJVCBCWSBIQU5ELgovLyBSZWdlbmVyYXRlIHdpdGg6Ci8vICAgICBjZCBwbGF5Z3JvdW5kL2ZhdXN0ICYmIHB5dGhvbjMgZ2VuLW1vZHVsYXItZHNwLnB5Ci8vCi8vIEF1ZGlvIHBhdGg6IDY0IGhhcm1vbmljIHNpbmVzIHdpdGggc3BlY3RyYWwgZGVzY3JpcHRvcnMgKHRpbHQsIG9kZC9ldmVuLCBmb3JtYW50cykuCi8vIEFsbCBlbnZlbG9wZXMgYW5kIExGT3MgY29tZSBmcm9tIG1vZC1wb29sLmxpYiB2aWEgYSA0OC1zb3VyY2Ugw5cgMTAtZGVzdAovLyBtb2R1bGF0aW9uIG1hdHJpeC4gTm8gaW50ZXJuYWwgZW52cy9MRk9zLgovLwovLyBNb2R1bGF0aW9uIGRlc3RpbmF0aW9ucyAoMTApOgovLyAgICAgMCBwaXRjaCAgICAgICAgICAgICBzZW1pdG9uZXMsIGFwcGxpZWQgdG8gdGhlIGZ1bmRhbWVudGFsIGZyZXF1ZW5jeQovLyAgICAgMSBicmlnaHQgICAgICAgICAgICBoaWdoLXBhcnRpYWwgZ3JvdXAgYW1wbGl0dWRlIGJvb3N0L2N1dCAocmVwbGFjZXMgYnJpZ2h0IGVudikKLy8gICAgIDIgdGlsdCAgICAgICAgICAgICAgYWRkZWQgdG8gc3BlY3RyYWxfdGlsdCBrbm9iCi8vICAgICAzIGluaGFybW9uaWNpdHkgICAgIGFkZGVkIHRvIGluaGFybW9uaWNpdHkga25vYgovLyAgICAgNCBvZGRfZXZlbiAgICAgICAgICBhZGRlZCB0byBvZGQvZXZlbiBiYWxhbmNlIGtub2IKLy8gICAgIDUgZm9ybWFudF9jdHIgICAgICAgc2hpZnRzIGJvdGggZm9ybWFudCBjZW50cmUgZnJlcXVlbmNpZXMgKGhhcm1vbmljIGluZGV4KQovLyAgICAgNiBmb3JtYW50X2RlcHRoICAgICBhZGRlZCB0byBmb3JtYW50X2RlcHRoIGtub2IKLy8gICAgIDcgbm9pc2VfbWl4ICAgICAgICAgYWRkZWQgdG8gbm9pc2VfZmxvb3Iga25vYiAoY2xhbXBlZCAwLi4xKQovLyAgICAgOCBhbXAgICAgICAgICAgICAgICBtYXN0ZXIgYW1wbGl0dWRlIGRlc3QgKHJvdXRlIGFuIEFEU1IgaGVyZSBmb3IgYSBWQ0EgZW52KQovLyAgICAgOSBwYW4gICAgICAgICAgICAgICBzdGVyZW8gYmFsYW5jZQovLwovLyBIaWRkZW4gY29udHJvbHMgKGRyaXZlbiBieSBub3RlT24vbm90ZU9mZiwgbm90IGJ5IHRoZSBNTCBlbmdpbmUpOgovLyAgICAgZnJlcSwgZ2F0ZSwgX3ZlbAovLwovLyBCdWlsZDoKLy8gICAgIGNkIHBsYXlncm91bmQvZmF1c3QgJiYgLi9idWlsZC5zaAovLwovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCmltcG9ydCgic3RkZmF1c3QubGliIik7Cm1wID0gbGlicmFyeSgibW9kLXBvb2wubGliIik7CgovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLy8gSGlkZGVuIGNvbnRyb2xzCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpmcmVxID0gaHNsaWRlcigiMF9IaWRkZW4vZnJlcVtoaWRkZW46MV1bdW5pdDpIel0iLCAyMjAsIDIwLCA0MDAwLCAwLjAxKTsKZ2F0ZSA9IGJ1dHRvbigiMF9IaWRkZW4vZ2F0ZVtoaWRkZW46MV0iKTsKdmVsICA9IGhzbGlkZXIoIjBfSGlkZGVuL192ZWxbaGlkZGVuOjFdIiwgMC43LCAwLjAsIDEuMCwgMC4wMDEpIDogc2kuc21vbzsKCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQovLyBHcm91cCAxIOKAlCBTcGVjdHJhbCBTaGFwZSAoaGFybW9uaWMgYmFuayArIGRlc2NyaXB0b3JzKQovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KaDFfYW1wICAgICAgICA9IGhzbGlkZXIoIjFfU3BlY3RyYWwvMDBfaDFfYW1wIiwgICAgICAgIDAuOCwgICAwLjAsIDEuMCwgMC4wMDEpOwpoMl9hbXAgICAgICAgID0gaHNsaWRlcigiMV9TcGVjdHJhbC8wMV9oMl9hbXAiLCAgICAgICAgMC41LCAgIDAuMCwgMS4wLCAwLjAwMSk7CmgzX2FtcCAgICAgICAgPSBoc2xpZGVyKCIxX1NwZWN0cmFsLzAyX2gzX2FtcCIsICAgICAgICAwLjM1LCAgMC4wLCAxLjAsIDAuMDAxKTsKaDRfYW1wICAgICAgICA9IGhzbGlkZXIoIjFfU3BlY3RyYWwvMDNfaDRfYW1wIiwgICAgICAgIDAuMjUsICAwLjAsIDEuMCwgMC4wMDEpOwpoNV9hbXAgICAgICAgID0gaHNsaWRlcigiMV9TcGVjdHJhbC8wNF9oNV9hbXAiLCAgICAgICAgMC4xOCwgIDAuMCwgMS4wLCAwLjAwMSk7Cmg2X2FtcCAgICAgICAgPSBoc2xpZGVyKCIxX1NwZWN0cmFsLzA1X2g2X2FtcCIsICAgICAgICAwLjEyLCAgMC4wLCAxLjAsIDAuMDAxKTsKaDdfYW1wICAgICAgICA9IGhzbGlkZXIoIjFfU3BlY3RyYWwvMDZfaDdfYW1wIiwgICAgICAgIDAuMDgsICAwLjAsIDEuMCwgMC4wMDEpOwpoOF9hbXAgICAgICAgID0gaHNsaWRlcigiMV9TcGVjdHJhbC8wN19oOF9hbXAiLCAgICAgICAgMC4wNiwgIDAuMCwgMS4wLCAwLjAwMSk7Cmg5XzE2X2FtcCAgICAgPSBoc2xpZGVyKCIxX1NwZWN0cmFsLzA4X2g5XzE2X2FtcCIsICAgICAwLjA1LCAgMC4wLCAxLjAsIDAuMDAxKTsKaDE3XzMyX2FtcCAgICA9IGhzbGlkZXIoIjFfU3BlY3RyYWwvMDlfaDE3XzMyX2FtcCIsICAgIDAuMDI1LCAwLjAsIDEuMCwgMC4wMDEpOwpoMzNfNjRfYW1wICAgID0gaHNsaWRlcigiMV9TcGVjdHJhbC8xMF9oMzNfNjRfYW1wIiwgICAgMC4wMSwgIDAuMCwgMS4wLCAwLjAwMSk7CnNwZWN0cmFsX3RpbHQgPSBoc2xpZGVyKCIxX1NwZWN0cmFsLzExX3NwZWN0cmFsX3RpbHQiLCAwLjAsICAtMS4wLCAxLjAsIDAuMDAxKTsKaW5oYXJtb25pY2l0eSA9IGhzbGlkZXIoIjFfU3BlY3RyYWwvMTJfaW5oYXJtb25pY2l0eSIsIDAuMCwgICAwLjAsIDAuMTUsIDAuMDAwMSk7Cm9kZF9ldmVuICAgICAgPSBoc2xpZGVyKCIxX1NwZWN0cmFsLzEzX29kZF9ldmVuIiwgICAgICAwLjUsICAgMC4wLCAxLjAsIDAuMDAxKTsKCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQovLyBHcm91cCAyIOKAlCBGb3JtYW50cyAmIE5vaXNlCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpmb3JtYW50MV9mcmVxID0gaHNsaWRlcigiMl9Gb3JtYW50cy8wMF9mb3JtYW50MV9mcmVxW3Rvb2x0aXA6Rm9ybWFudCAxIGhhcm1vbmljIGlkeF0iLCAzLjAsIDEuMCwgMTYuMCwgMC4wMSk7CmZvcm1hbnQyX2ZyZXEgPSBoc2xpZGVyKCIyX0Zvcm1hbnRzLzAxX2Zvcm1hbnQyX2ZyZXFbdG9vbHRpcDpGb3JtYW50IDIgaGFybW9uaWMgaWR4XSIsIDYuMCwgMS4wLCAxNi4wLCAwLjAxKTsKZm9ybWFudF9kZXB0aCA9IGhzbGlkZXIoIjJfRm9ybWFudHMvMDJfZm9ybWFudF9kZXB0aCIsIDAuMCwgMC4wLCAxLjAsIDAuMDAxKTsKbm9pc2VfZmxvb3IgICA9IGhzbGlkZXIoIjJfRm9ybWFudHMvMDNfbm9pc2VfZmxvb3IiLCAgIDAuMCwgMC4wLCAwLjIsIDAuMDAxKTsKbm9pc2VfY29sb3IgICA9IGhzbGlkZXIoIjJfRm9ybWFudHMvMDRfbm9pc2VfY29sb3IiLCAgIDAuNSwgMC4wLCAxLjAsIDAuMDAxKTsKc3ViX2hhcm1vbmljICA9IGhzbGlkZXIoIjJfRm9ybWFudHMvMDVfc3ViX2hhcm1vbmljIiwgIDAuMCwgMC4wLCAxLjAsIDAuMDAxKTsKCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQovLyBHcm91cCAzIOKAlCBNYXN0ZXIKLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmxldmVsICAgICAgICAgICAgICA9IGhzbGlkZXIoIjNfTWFzdGVyLzAwX2xldmVsIiwgICAgICAgICAgICAgIDAuNywgIDAuMCwgMS4wLCAwLjAwMSk7CmZpbmVfdHVuZSAgICAgICAgICA9IGhzbGlkZXIoIjNfTWFzdGVyLzAxX2ZpbmVfdHVuZVt1bml0OmN0XSIsIDAuMCwgLTUwLjAsIDUwLjAsIDAuMSk7CnNhdHVyYXRpb24gICAgICAgICA9IGhzbGlkZXIoIjNfTWFzdGVyLzAyX3NhdHVyYXRpb24iLCAgICAgICAgIDAuMCwgIDAuMCwgMS4wLCAwLjAwMSk7CnN0ZXJlb19waGFzZV9zcHJlYWQ9IGhzbGlkZXIoIjNfTWFzdGVyLzAzX3N0ZXJlb19waGFzZV9zcHJlYWQiLDAuMSwgIDAuMCwgMS4wLCAwLjAwMSk7Cm1hc3Rlcl9wYW4gICAgICAgICA9IGhzbGlkZXIoIjNfTWFzdGVyLzA0X21hc3Rlcl9wYW4iLCAgICAgICAgIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CgovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLy8gTW9kdWxhdGlvbiBtYXRyaXgg4oCUIDQ4IHNvdXJjZXMgw5cgMTAgZGVzdGluYXRpb25zLgovLyBFYWNoIGhzbGlkZXIgaXMgb25lICJhbW91bnQiIGVudHJ5IGluIFstMSwgKzFdLiBaZXJvID0gbm8gY29ubmVjdGlvbi4KLy8gR3JvdXAgIk1NX01hdHJpeCIgc28gdGhlIHBhcmFtTWV0YSBwYXJzZXIgY2FuIHJlY29nbmlzZSBtYXRyaXggcGFyYW1zLgovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCi8vIE1hdHJpeCBjb2x1bW46IGRlc3RpbmF0aW9uIDAgPSBwaXRjaAphbXRfczAwX2QwMF9waXRjaCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMDBfZDAwX3BpdGNoIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwMV9kMDBfcGl0Y2ggPSBoc2xpZGVyKCJNTV9NYXRyaXgvczAxX2QwMF9waXRjaCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMDJfZDAwX3BpdGNoID0gaHNsaWRlcigiTU1fTWF0cml4L3MwMl9kMDBfcGl0Y2giLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczAzX2QwMF9waXRjaCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMDNfZDAwX3BpdGNoIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwNF9kMDBfcGl0Y2ggPSBoc2xpZGVyKCJNTV9NYXRyaXgvczA0X2QwMF9waXRjaCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMDVfZDAwX3BpdGNoID0gaHNsaWRlcigiTU1fTWF0cml4L3MwNV9kMDBfcGl0Y2giLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczA2X2QwMF9waXRjaCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMDZfZDAwX3BpdGNoIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwN19kMDBfcGl0Y2ggPSBoc2xpZGVyKCJNTV9NYXRyaXgvczA3X2QwMF9waXRjaCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMDhfZDAwX3BpdGNoID0gaHNsaWRlcigiTU1fTWF0cml4L3MwOF9kMDBfcGl0Y2giLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczA5X2QwMF9waXRjaCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMDlfZDAwX3BpdGNoIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxMF9kMDBfcGl0Y2ggPSBoc2xpZGVyKCJNTV9NYXRyaXgvczEwX2QwMF9waXRjaCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMTFfZDAwX3BpdGNoID0gaHNsaWRlcigiTU1fTWF0cml4L3MxMV9kMDBfcGl0Y2giLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczEyX2QwMF9waXRjaCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMTJfZDAwX3BpdGNoIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxM19kMDBfcGl0Y2ggPSBoc2xpZGVyKCJNTV9NYXRyaXgvczEzX2QwMF9waXRjaCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMTRfZDAwX3BpdGNoID0gaHNsaWRlcigiTU1fTWF0cml4L3MxNF9kMDBfcGl0Y2giLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczE1X2QwMF9waXRjaCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMTVfZDAwX3BpdGNoIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxNl9kMDBfcGl0Y2ggPSBoc2xpZGVyKCJNTV9NYXRyaXgvczE2X2QwMF9waXRjaCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMTdfZDAwX3BpdGNoID0gaHNsaWRlcigiTU1fTWF0cml4L3MxN19kMDBfcGl0Y2giLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczE4X2QwMF9waXRjaCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMThfZDAwX3BpdGNoIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxOV9kMDBfcGl0Y2ggPSBoc2xpZGVyKCJNTV9NYXRyaXgvczE5X2QwMF9waXRjaCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMjBfZDAwX3BpdGNoID0gaHNsaWRlcigiTU1fTWF0cml4L3MyMF9kMDBfcGl0Y2giLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczIxX2QwMF9waXRjaCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMjFfZDAwX3BpdGNoIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyMl9kMDBfcGl0Y2ggPSBoc2xpZGVyKCJNTV9NYXRyaXgvczIyX2QwMF9waXRjaCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMjNfZDAwX3BpdGNoID0gaHNsaWRlcigiTU1fTWF0cml4L3MyM19kMDBfcGl0Y2giLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczI0X2QwMF9waXRjaCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMjRfZDAwX3BpdGNoIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyNV9kMDBfcGl0Y2ggPSBoc2xpZGVyKCJNTV9NYXRyaXgvczI1X2QwMF9waXRjaCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMjZfZDAwX3BpdGNoID0gaHNsaWRlcigiTU1fTWF0cml4L3MyNl9kMDBfcGl0Y2giLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczI3X2QwMF9waXRjaCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMjdfZDAwX3BpdGNoIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyOF9kMDBfcGl0Y2ggPSBoc2xpZGVyKCJNTV9NYXRyaXgvczI4X2QwMF9waXRjaCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMjlfZDAwX3BpdGNoID0gaHNsaWRlcigiTU1fTWF0cml4L3MyOV9kMDBfcGl0Y2giLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczMwX2QwMF9waXRjaCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMzBfZDAwX3BpdGNoIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzMV9kMDBfcGl0Y2ggPSBoc2xpZGVyKCJNTV9NYXRyaXgvczMxX2QwMF9waXRjaCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMzJfZDAwX3BpdGNoID0gaHNsaWRlcigiTU1fTWF0cml4L3MzMl9kMDBfcGl0Y2giLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczMzX2QwMF9waXRjaCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMzNfZDAwX3BpdGNoIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzNF9kMDBfcGl0Y2ggPSBoc2xpZGVyKCJNTV9NYXRyaXgvczM0X2QwMF9waXRjaCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMzVfZDAwX3BpdGNoID0gaHNsaWRlcigiTU1fTWF0cml4L3MzNV9kMDBfcGl0Y2giLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczM2X2QwMF9waXRjaCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMzZfZDAwX3BpdGNoIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzN19kMDBfcGl0Y2ggPSBoc2xpZGVyKCJNTV9NYXRyaXgvczM3X2QwMF9waXRjaCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMzhfZDAwX3BpdGNoID0gaHNsaWRlcigiTU1fTWF0cml4L3MzOF9kMDBfcGl0Y2giLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczM5X2QwMF9waXRjaCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMzlfZDAwX3BpdGNoIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0MF9kMDBfcGl0Y2ggPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQwX2QwMF9waXRjaCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zNDFfZDAwX3BpdGNoID0gaHNsaWRlcigiTU1fTWF0cml4L3M0MV9kMDBfcGl0Y2giLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQyX2QwMF9waXRjaCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zNDJfZDAwX3BpdGNoIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0M19kMDBfcGl0Y2ggPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQzX2QwMF9waXRjaCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zNDRfZDAwX3BpdGNoID0gaHNsaWRlcigiTU1fTWF0cml4L3M0NF9kMDBfcGl0Y2giLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQ1X2QwMF9waXRjaCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zNDVfZDAwX3BpdGNoIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0Nl9kMDBfcGl0Y2ggPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQ2X2QwMF9waXRjaCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zNDdfZDAwX3BpdGNoID0gaHNsaWRlcigiTU1fTWF0cml4L3M0N19kMDBfcGl0Y2giLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwoKLy8gTWF0cml4IGNvbHVtbjogZGVzdGluYXRpb24gMSA9IGJyaWdodAphbXRfczAwX2QwMV9icmlnaHQgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczAwX2QwMV9icmlnaHQiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczAxX2QwMV9icmlnaHQgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczAxX2QwMV9icmlnaHQiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczAyX2QwMV9icmlnaHQgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczAyX2QwMV9icmlnaHQiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczAzX2QwMV9icmlnaHQgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczAzX2QwMV9icmlnaHQiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczA0X2QwMV9icmlnaHQgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczA0X2QwMV9icmlnaHQiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczA1X2QwMV9icmlnaHQgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczA1X2QwMV9icmlnaHQiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczA2X2QwMV9icmlnaHQgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczA2X2QwMV9icmlnaHQiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczA3X2QwMV9icmlnaHQgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczA3X2QwMV9icmlnaHQiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczA4X2QwMV9icmlnaHQgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczA4X2QwMV9icmlnaHQiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczA5X2QwMV9icmlnaHQgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczA5X2QwMV9icmlnaHQiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczEwX2QwMV9icmlnaHQgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczEwX2QwMV9icmlnaHQiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczExX2QwMV9icmlnaHQgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczExX2QwMV9icmlnaHQiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczEyX2QwMV9icmlnaHQgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczEyX2QwMV9icmlnaHQiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczEzX2QwMV9icmlnaHQgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczEzX2QwMV9icmlnaHQiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczE0X2QwMV9icmlnaHQgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczE0X2QwMV9icmlnaHQiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczE1X2QwMV9icmlnaHQgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczE1X2QwMV9icmlnaHQiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczE2X2QwMV9icmlnaHQgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczE2X2QwMV9icmlnaHQiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczE3X2QwMV9icmlnaHQgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczE3X2QwMV9icmlnaHQiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczE4X2QwMV9icmlnaHQgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczE4X2QwMV9icmlnaHQiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczE5X2QwMV9icmlnaHQgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczE5X2QwMV9icmlnaHQiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczIwX2QwMV9icmlnaHQgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczIwX2QwMV9icmlnaHQiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczIxX2QwMV9icmlnaHQgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczIxX2QwMV9icmlnaHQiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczIyX2QwMV9icmlnaHQgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczIyX2QwMV9icmlnaHQiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczIzX2QwMV9icmlnaHQgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczIzX2QwMV9icmlnaHQiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczI0X2QwMV9icmlnaHQgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczI0X2QwMV9icmlnaHQiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczI1X2QwMV9icmlnaHQgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczI1X2QwMV9icmlnaHQiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczI2X2QwMV9icmlnaHQgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczI2X2QwMV9icmlnaHQiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczI3X2QwMV9icmlnaHQgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczI3X2QwMV9icmlnaHQiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczI4X2QwMV9icmlnaHQgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczI4X2QwMV9icmlnaHQiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczI5X2QwMV9icmlnaHQgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczI5X2QwMV9icmlnaHQiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczMwX2QwMV9icmlnaHQgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczMwX2QwMV9icmlnaHQiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczMxX2QwMV9icmlnaHQgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczMxX2QwMV9icmlnaHQiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczMyX2QwMV9icmlnaHQgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczMyX2QwMV9icmlnaHQiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczMzX2QwMV9icmlnaHQgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczMzX2QwMV9icmlnaHQiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczM0X2QwMV9icmlnaHQgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczM0X2QwMV9icmlnaHQiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczM1X2QwMV9icmlnaHQgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczM1X2QwMV9icmlnaHQiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczM2X2QwMV9icmlnaHQgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczM2X2QwMV9icmlnaHQiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczM3X2QwMV9icmlnaHQgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczM3X2QwMV9icmlnaHQiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczM4X2QwMV9icmlnaHQgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczM4X2QwMV9icmlnaHQiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczM5X2QwMV9icmlnaHQgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczM5X2QwMV9icmlnaHQiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQwX2QwMV9icmlnaHQgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQwX2QwMV9icmlnaHQiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQxX2QwMV9icmlnaHQgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQxX2QwMV9icmlnaHQiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQyX2QwMV9icmlnaHQgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQyX2QwMV9icmlnaHQiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQzX2QwMV9icmlnaHQgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQzX2QwMV9icmlnaHQiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQ0X2QwMV9icmlnaHQgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQ0X2QwMV9icmlnaHQiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQ1X2QwMV9icmlnaHQgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQ1X2QwMV9icmlnaHQiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQ2X2QwMV9icmlnaHQgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQ2X2QwMV9icmlnaHQiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQ3X2QwMV9icmlnaHQgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQ3X2QwMV9icmlnaHQiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwoKLy8gTWF0cml4IGNvbHVtbjogZGVzdGluYXRpb24gMiA9IHRpbHQKYW10X3MwMF9kMDJfdGlsdCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMDBfZDAyX3RpbHQiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczAxX2QwMl90aWx0ID0gaHNsaWRlcigiTU1fTWF0cml4L3MwMV9kMDJfdGlsdCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMDJfZDAyX3RpbHQgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczAyX2QwMl90aWx0IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwM19kMDJfdGlsdCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMDNfZDAyX3RpbHQiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczA0X2QwMl90aWx0ID0gaHNsaWRlcigiTU1fTWF0cml4L3MwNF9kMDJfdGlsdCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMDVfZDAyX3RpbHQgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczA1X2QwMl90aWx0IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwNl9kMDJfdGlsdCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMDZfZDAyX3RpbHQiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczA3X2QwMl90aWx0ID0gaHNsaWRlcigiTU1fTWF0cml4L3MwN19kMDJfdGlsdCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMDhfZDAyX3RpbHQgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczA4X2QwMl90aWx0IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwOV9kMDJfdGlsdCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMDlfZDAyX3RpbHQiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczEwX2QwMl90aWx0ID0gaHNsaWRlcigiTU1fTWF0cml4L3MxMF9kMDJfdGlsdCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMTFfZDAyX3RpbHQgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczExX2QwMl90aWx0IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxMl9kMDJfdGlsdCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMTJfZDAyX3RpbHQiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczEzX2QwMl90aWx0ID0gaHNsaWRlcigiTU1fTWF0cml4L3MxM19kMDJfdGlsdCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMTRfZDAyX3RpbHQgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczE0X2QwMl90aWx0IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxNV9kMDJfdGlsdCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMTVfZDAyX3RpbHQiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczE2X2QwMl90aWx0ID0gaHNsaWRlcigiTU1fTWF0cml4L3MxNl9kMDJfdGlsdCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMTdfZDAyX3RpbHQgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczE3X2QwMl90aWx0IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxOF9kMDJfdGlsdCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMThfZDAyX3RpbHQiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczE5X2QwMl90aWx0ID0gaHNsaWRlcigiTU1fTWF0cml4L3MxOV9kMDJfdGlsdCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMjBfZDAyX3RpbHQgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczIwX2QwMl90aWx0IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyMV9kMDJfdGlsdCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMjFfZDAyX3RpbHQiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczIyX2QwMl90aWx0ID0gaHNsaWRlcigiTU1fTWF0cml4L3MyMl9kMDJfdGlsdCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMjNfZDAyX3RpbHQgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczIzX2QwMl90aWx0IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyNF9kMDJfdGlsdCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMjRfZDAyX3RpbHQiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczI1X2QwMl90aWx0ID0gaHNsaWRlcigiTU1fTWF0cml4L3MyNV9kMDJfdGlsdCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMjZfZDAyX3RpbHQgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczI2X2QwMl90aWx0IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyN19kMDJfdGlsdCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMjdfZDAyX3RpbHQiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczI4X2QwMl90aWx0ID0gaHNsaWRlcigiTU1fTWF0cml4L3MyOF9kMDJfdGlsdCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMjlfZDAyX3RpbHQgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczI5X2QwMl90aWx0IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzMF9kMDJfdGlsdCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMzBfZDAyX3RpbHQiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczMxX2QwMl90aWx0ID0gaHNsaWRlcigiTU1fTWF0cml4L3MzMV9kMDJfdGlsdCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMzJfZDAyX3RpbHQgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczMyX2QwMl90aWx0IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzM19kMDJfdGlsdCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMzNfZDAyX3RpbHQiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczM0X2QwMl90aWx0ID0gaHNsaWRlcigiTU1fTWF0cml4L3MzNF9kMDJfdGlsdCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMzVfZDAyX3RpbHQgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczM1X2QwMl90aWx0IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzNl9kMDJfdGlsdCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMzZfZDAyX3RpbHQiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczM3X2QwMl90aWx0ID0gaHNsaWRlcigiTU1fTWF0cml4L3MzN19kMDJfdGlsdCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMzhfZDAyX3RpbHQgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczM4X2QwMl90aWx0IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzOV9kMDJfdGlsdCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMzlfZDAyX3RpbHQiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQwX2QwMl90aWx0ID0gaHNsaWRlcigiTU1fTWF0cml4L3M0MF9kMDJfdGlsdCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zNDFfZDAyX3RpbHQgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQxX2QwMl90aWx0IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0Ml9kMDJfdGlsdCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zNDJfZDAyX3RpbHQiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQzX2QwMl90aWx0ID0gaHNsaWRlcigiTU1fTWF0cml4L3M0M19kMDJfdGlsdCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zNDRfZDAyX3RpbHQgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQ0X2QwMl90aWx0IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0NV9kMDJfdGlsdCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zNDVfZDAyX3RpbHQiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQ2X2QwMl90aWx0ID0gaHNsaWRlcigiTU1fTWF0cml4L3M0Nl9kMDJfdGlsdCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zNDdfZDAyX3RpbHQgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQ3X2QwMl90aWx0IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKCi8vIE1hdHJpeCBjb2x1bW46IGRlc3RpbmF0aW9uIDMgPSBpbmhhcm1vbmljaXR5CmFtdF9zMDBfZDAzX2luaGFybW9uaWNpdHkgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczAwX2QwM19pbmhhcm1vbmljaXR5IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwMV9kMDNfaW5oYXJtb25pY2l0eSA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMDFfZDAzX2luaGFybW9uaWNpdHkiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczAyX2QwM19pbmhhcm1vbmljaXR5ID0gaHNsaWRlcigiTU1fTWF0cml4L3MwMl9kMDNfaW5oYXJtb25pY2l0eSIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMDNfZDAzX2luaGFybW9uaWNpdHkgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczAzX2QwM19pbmhhcm1vbmljaXR5IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwNF9kMDNfaW5oYXJtb25pY2l0eSA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMDRfZDAzX2luaGFybW9uaWNpdHkiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczA1X2QwM19pbmhhcm1vbmljaXR5ID0gaHNsaWRlcigiTU1fTWF0cml4L3MwNV9kMDNfaW5oYXJtb25pY2l0eSIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMDZfZDAzX2luaGFybW9uaWNpdHkgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczA2X2QwM19pbmhhcm1vbmljaXR5IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwN19kMDNfaW5oYXJtb25pY2l0eSA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMDdfZDAzX2luaGFybW9uaWNpdHkiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczA4X2QwM19pbmhhcm1vbmljaXR5ID0gaHNsaWRlcigiTU1fTWF0cml4L3MwOF9kMDNfaW5oYXJtb25pY2l0eSIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMDlfZDAzX2luaGFybW9uaWNpdHkgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczA5X2QwM19pbmhhcm1vbmljaXR5IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxMF9kMDNfaW5oYXJtb25pY2l0eSA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMTBfZDAzX2luaGFybW9uaWNpdHkiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczExX2QwM19pbmhhcm1vbmljaXR5ID0gaHNsaWRlcigiTU1fTWF0cml4L3MxMV9kMDNfaW5oYXJtb25pY2l0eSIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMTJfZDAzX2luaGFybW9uaWNpdHkgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczEyX2QwM19pbmhhcm1vbmljaXR5IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxM19kMDNfaW5oYXJtb25pY2l0eSA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMTNfZDAzX2luaGFybW9uaWNpdHkiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczE0X2QwM19pbmhhcm1vbmljaXR5ID0gaHNsaWRlcigiTU1fTWF0cml4L3MxNF9kMDNfaW5oYXJtb25pY2l0eSIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMTVfZDAzX2luaGFybW9uaWNpdHkgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczE1X2QwM19pbmhhcm1vbmljaXR5IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxNl9kMDNfaW5oYXJtb25pY2l0eSA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMTZfZDAzX2luaGFybW9uaWNpdHkiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczE3X2QwM19pbmhhcm1vbmljaXR5ID0gaHNsaWRlcigiTU1fTWF0cml4L3MxN19kMDNfaW5oYXJtb25pY2l0eSIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMThfZDAzX2luaGFybW9uaWNpdHkgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczE4X2QwM19pbmhhcm1vbmljaXR5IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxOV9kMDNfaW5oYXJtb25pY2l0eSA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMTlfZDAzX2luaGFybW9uaWNpdHkiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczIwX2QwM19pbmhhcm1vbmljaXR5ID0gaHNsaWRlcigiTU1fTWF0cml4L3MyMF9kMDNfaW5oYXJtb25pY2l0eSIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMjFfZDAzX2luaGFybW9uaWNpdHkgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczIxX2QwM19pbmhhcm1vbmljaXR5IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyMl9kMDNfaW5oYXJtb25pY2l0eSA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMjJfZDAzX2luaGFybW9uaWNpdHkiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczIzX2QwM19pbmhhcm1vbmljaXR5ID0gaHNsaWRlcigiTU1fTWF0cml4L3MyM19kMDNfaW5oYXJtb25pY2l0eSIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMjRfZDAzX2luaGFybW9uaWNpdHkgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczI0X2QwM19pbmhhcm1vbmljaXR5IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyNV9kMDNfaW5oYXJtb25pY2l0eSA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMjVfZDAzX2luaGFybW9uaWNpdHkiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczI2X2QwM19pbmhhcm1vbmljaXR5ID0gaHNsaWRlcigiTU1fTWF0cml4L3MyNl9kMDNfaW5oYXJtb25pY2l0eSIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMjdfZDAzX2luaGFybW9uaWNpdHkgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczI3X2QwM19pbmhhcm1vbmljaXR5IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyOF9kMDNfaW5oYXJtb25pY2l0eSA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMjhfZDAzX2luaGFybW9uaWNpdHkiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczI5X2QwM19pbmhhcm1vbmljaXR5ID0gaHNsaWRlcigiTU1fTWF0cml4L3MyOV9kMDNfaW5oYXJtb25pY2l0eSIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMzBfZDAzX2luaGFybW9uaWNpdHkgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczMwX2QwM19pbmhhcm1vbmljaXR5IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzMV9kMDNfaW5oYXJtb25pY2l0eSA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMzFfZDAzX2luaGFybW9uaWNpdHkiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczMyX2QwM19pbmhhcm1vbmljaXR5ID0gaHNsaWRlcigiTU1fTWF0cml4L3MzMl9kMDNfaW5oYXJtb25pY2l0eSIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMzNfZDAzX2luaGFybW9uaWNpdHkgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczMzX2QwM19pbmhhcm1vbmljaXR5IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzNF9kMDNfaW5oYXJtb25pY2l0eSA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMzRfZDAzX2luaGFybW9uaWNpdHkiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczM1X2QwM19pbmhhcm1vbmljaXR5ID0gaHNsaWRlcigiTU1fTWF0cml4L3MzNV9kMDNfaW5oYXJtb25pY2l0eSIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMzZfZDAzX2luaGFybW9uaWNpdHkgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczM2X2QwM19pbmhhcm1vbmljaXR5IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzN19kMDNfaW5oYXJtb25pY2l0eSA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMzdfZDAzX2luaGFybW9uaWNpdHkiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczM4X2QwM19pbmhhcm1vbmljaXR5ID0gaHNsaWRlcigiTU1fTWF0cml4L3MzOF9kMDNfaW5oYXJtb25pY2l0eSIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMzlfZDAzX2luaGFybW9uaWNpdHkgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczM5X2QwM19pbmhhcm1vbmljaXR5IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0MF9kMDNfaW5oYXJtb25pY2l0eSA9IGhzbGlkZXIoIk1NX01hdHJpeC9zNDBfZDAzX2luaGFybW9uaWNpdHkiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQxX2QwM19pbmhhcm1vbmljaXR5ID0gaHNsaWRlcigiTU1fTWF0cml4L3M0MV9kMDNfaW5oYXJtb25pY2l0eSIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zNDJfZDAzX2luaGFybW9uaWNpdHkgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQyX2QwM19pbmhhcm1vbmljaXR5IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0M19kMDNfaW5oYXJtb25pY2l0eSA9IGhzbGlkZXIoIk1NX01hdHJpeC9zNDNfZDAzX2luaGFybW9uaWNpdHkiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQ0X2QwM19pbmhhcm1vbmljaXR5ID0gaHNsaWRlcigiTU1fTWF0cml4L3M0NF9kMDNfaW5oYXJtb25pY2l0eSIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zNDVfZDAzX2luaGFybW9uaWNpdHkgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQ1X2QwM19pbmhhcm1vbmljaXR5IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0Nl9kMDNfaW5oYXJtb25pY2l0eSA9IGhzbGlkZXIoIk1NX01hdHJpeC9zNDZfZDAzX2luaGFybW9uaWNpdHkiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQ3X2QwM19pbmhhcm1vbmljaXR5ID0gaHNsaWRlcigiTU1fTWF0cml4L3M0N19kMDNfaW5oYXJtb25pY2l0eSIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CgovLyBNYXRyaXggY29sdW1uOiBkZXN0aW5hdGlvbiA0ID0gb2RkX2V2ZW4KYW10X3MwMF9kMDRfb2RkX2V2ZW4gPSBoc2xpZGVyKCJNTV9NYXRyaXgvczAwX2QwNF9vZGRfZXZlbiIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMDFfZDA0X29kZF9ldmVuID0gaHNsaWRlcigiTU1fTWF0cml4L3MwMV9kMDRfb2RkX2V2ZW4iLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczAyX2QwNF9vZGRfZXZlbiA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMDJfZDA0X29kZF9ldmVuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwM19kMDRfb2RkX2V2ZW4gPSBoc2xpZGVyKCJNTV9NYXRyaXgvczAzX2QwNF9vZGRfZXZlbiIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMDRfZDA0X29kZF9ldmVuID0gaHNsaWRlcigiTU1fTWF0cml4L3MwNF9kMDRfb2RkX2V2ZW4iLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczA1X2QwNF9vZGRfZXZlbiA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMDVfZDA0X29kZF9ldmVuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwNl9kMDRfb2RkX2V2ZW4gPSBoc2xpZGVyKCJNTV9NYXRyaXgvczA2X2QwNF9vZGRfZXZlbiIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMDdfZDA0X29kZF9ldmVuID0gaHNsaWRlcigiTU1fTWF0cml4L3MwN19kMDRfb2RkX2V2ZW4iLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczA4X2QwNF9vZGRfZXZlbiA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMDhfZDA0X29kZF9ldmVuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwOV9kMDRfb2RkX2V2ZW4gPSBoc2xpZGVyKCJNTV9NYXRyaXgvczA5X2QwNF9vZGRfZXZlbiIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMTBfZDA0X29kZF9ldmVuID0gaHNsaWRlcigiTU1fTWF0cml4L3MxMF9kMDRfb2RkX2V2ZW4iLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczExX2QwNF9vZGRfZXZlbiA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMTFfZDA0X29kZF9ldmVuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxMl9kMDRfb2RkX2V2ZW4gPSBoc2xpZGVyKCJNTV9NYXRyaXgvczEyX2QwNF9vZGRfZXZlbiIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMTNfZDA0X29kZF9ldmVuID0gaHNsaWRlcigiTU1fTWF0cml4L3MxM19kMDRfb2RkX2V2ZW4iLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczE0X2QwNF9vZGRfZXZlbiA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMTRfZDA0X29kZF9ldmVuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxNV9kMDRfb2RkX2V2ZW4gPSBoc2xpZGVyKCJNTV9NYXRyaXgvczE1X2QwNF9vZGRfZXZlbiIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMTZfZDA0X29kZF9ldmVuID0gaHNsaWRlcigiTU1fTWF0cml4L3MxNl9kMDRfb2RkX2V2ZW4iLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczE3X2QwNF9vZGRfZXZlbiA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMTdfZDA0X29kZF9ldmVuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxOF9kMDRfb2RkX2V2ZW4gPSBoc2xpZGVyKCJNTV9NYXRyaXgvczE4X2QwNF9vZGRfZXZlbiIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMTlfZDA0X29kZF9ldmVuID0gaHNsaWRlcigiTU1fTWF0cml4L3MxOV9kMDRfb2RkX2V2ZW4iLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczIwX2QwNF9vZGRfZXZlbiA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMjBfZDA0X29kZF9ldmVuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyMV9kMDRfb2RkX2V2ZW4gPSBoc2xpZGVyKCJNTV9NYXRyaXgvczIxX2QwNF9vZGRfZXZlbiIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMjJfZDA0X29kZF9ldmVuID0gaHNsaWRlcigiTU1fTWF0cml4L3MyMl9kMDRfb2RkX2V2ZW4iLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczIzX2QwNF9vZGRfZXZlbiA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMjNfZDA0X29kZF9ldmVuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyNF9kMDRfb2RkX2V2ZW4gPSBoc2xpZGVyKCJNTV9NYXRyaXgvczI0X2QwNF9vZGRfZXZlbiIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMjVfZDA0X29kZF9ldmVuID0gaHNsaWRlcigiTU1fTWF0cml4L3MyNV9kMDRfb2RkX2V2ZW4iLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczI2X2QwNF9vZGRfZXZlbiA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMjZfZDA0X29kZF9ldmVuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyN19kMDRfb2RkX2V2ZW4gPSBoc2xpZGVyKCJNTV9NYXRyaXgvczI3X2QwNF9vZGRfZXZlbiIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMjhfZDA0X29kZF9ldmVuID0gaHNsaWRlcigiTU1fTWF0cml4L3MyOF9kMDRfb2RkX2V2ZW4iLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczI5X2QwNF9vZGRfZXZlbiA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMjlfZDA0X29kZF9ldmVuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzMF9kMDRfb2RkX2V2ZW4gPSBoc2xpZGVyKCJNTV9NYXRyaXgvczMwX2QwNF9vZGRfZXZlbiIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMzFfZDA0X29kZF9ldmVuID0gaHNsaWRlcigiTU1fTWF0cml4L3MzMV9kMDRfb2RkX2V2ZW4iLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczMyX2QwNF9vZGRfZXZlbiA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMzJfZDA0X29kZF9ldmVuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzM19kMDRfb2RkX2V2ZW4gPSBoc2xpZGVyKCJNTV9NYXRyaXgvczMzX2QwNF9vZGRfZXZlbiIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMzRfZDA0X29kZF9ldmVuID0gaHNsaWRlcigiTU1fTWF0cml4L3MzNF9kMDRfb2RkX2V2ZW4iLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczM1X2QwNF9vZGRfZXZlbiA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMzVfZDA0X29kZF9ldmVuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzNl9kMDRfb2RkX2V2ZW4gPSBoc2xpZGVyKCJNTV9NYXRyaXgvczM2X2QwNF9vZGRfZXZlbiIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMzdfZDA0X29kZF9ldmVuID0gaHNsaWRlcigiTU1fTWF0cml4L3MzN19kMDRfb2RkX2V2ZW4iLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczM4X2QwNF9vZGRfZXZlbiA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMzhfZDA0X29kZF9ldmVuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzOV9kMDRfb2RkX2V2ZW4gPSBoc2xpZGVyKCJNTV9NYXRyaXgvczM5X2QwNF9vZGRfZXZlbiIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zNDBfZDA0X29kZF9ldmVuID0gaHNsaWRlcigiTU1fTWF0cml4L3M0MF9kMDRfb2RkX2V2ZW4iLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQxX2QwNF9vZGRfZXZlbiA9IGhzbGlkZXIoIk1NX01hdHJpeC9zNDFfZDA0X29kZF9ldmVuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0Ml9kMDRfb2RkX2V2ZW4gPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQyX2QwNF9vZGRfZXZlbiIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zNDNfZDA0X29kZF9ldmVuID0gaHNsaWRlcigiTU1fTWF0cml4L3M0M19kMDRfb2RkX2V2ZW4iLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQ0X2QwNF9vZGRfZXZlbiA9IGhzbGlkZXIoIk1NX01hdHJpeC9zNDRfZDA0X29kZF9ldmVuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0NV9kMDRfb2RkX2V2ZW4gPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQ1X2QwNF9vZGRfZXZlbiIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zNDZfZDA0X29kZF9ldmVuID0gaHNsaWRlcigiTU1fTWF0cml4L3M0Nl9kMDRfb2RkX2V2ZW4iLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQ3X2QwNF9vZGRfZXZlbiA9IGhzbGlkZXIoIk1NX01hdHJpeC9zNDdfZDA0X29kZF9ldmVuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKCi8vIE1hdHJpeCBjb2x1bW46IGRlc3RpbmF0aW9uIDUgPSBmb3JtYW50X2N0cgphbXRfczAwX2QwNV9mb3JtYW50X2N0ciA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMDBfZDA1X2Zvcm1hbnRfY3RyIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwMV9kMDVfZm9ybWFudF9jdHIgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczAxX2QwNV9mb3JtYW50X2N0ciIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMDJfZDA1X2Zvcm1hbnRfY3RyID0gaHNsaWRlcigiTU1fTWF0cml4L3MwMl9kMDVfZm9ybWFudF9jdHIiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczAzX2QwNV9mb3JtYW50X2N0ciA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMDNfZDA1X2Zvcm1hbnRfY3RyIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwNF9kMDVfZm9ybWFudF9jdHIgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczA0X2QwNV9mb3JtYW50X2N0ciIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMDVfZDA1X2Zvcm1hbnRfY3RyID0gaHNsaWRlcigiTU1fTWF0cml4L3MwNV9kMDVfZm9ybWFudF9jdHIiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczA2X2QwNV9mb3JtYW50X2N0ciA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMDZfZDA1X2Zvcm1hbnRfY3RyIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwN19kMDVfZm9ybWFudF9jdHIgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczA3X2QwNV9mb3JtYW50X2N0ciIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMDhfZDA1X2Zvcm1hbnRfY3RyID0gaHNsaWRlcigiTU1fTWF0cml4L3MwOF9kMDVfZm9ybWFudF9jdHIiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczA5X2QwNV9mb3JtYW50X2N0ciA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMDlfZDA1X2Zvcm1hbnRfY3RyIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxMF9kMDVfZm9ybWFudF9jdHIgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczEwX2QwNV9mb3JtYW50X2N0ciIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMTFfZDA1X2Zvcm1hbnRfY3RyID0gaHNsaWRlcigiTU1fTWF0cml4L3MxMV9kMDVfZm9ybWFudF9jdHIiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczEyX2QwNV9mb3JtYW50X2N0ciA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMTJfZDA1X2Zvcm1hbnRfY3RyIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxM19kMDVfZm9ybWFudF9jdHIgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczEzX2QwNV9mb3JtYW50X2N0ciIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMTRfZDA1X2Zvcm1hbnRfY3RyID0gaHNsaWRlcigiTU1fTWF0cml4L3MxNF9kMDVfZm9ybWFudF9jdHIiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczE1X2QwNV9mb3JtYW50X2N0ciA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMTVfZDA1X2Zvcm1hbnRfY3RyIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxNl9kMDVfZm9ybWFudF9jdHIgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczE2X2QwNV9mb3JtYW50X2N0ciIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMTdfZDA1X2Zvcm1hbnRfY3RyID0gaHNsaWRlcigiTU1fTWF0cml4L3MxN19kMDVfZm9ybWFudF9jdHIiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczE4X2QwNV9mb3JtYW50X2N0ciA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMThfZDA1X2Zvcm1hbnRfY3RyIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxOV9kMDVfZm9ybWFudF9jdHIgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczE5X2QwNV9mb3JtYW50X2N0ciIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMjBfZDA1X2Zvcm1hbnRfY3RyID0gaHNsaWRlcigiTU1fTWF0cml4L3MyMF9kMDVfZm9ybWFudF9jdHIiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczIxX2QwNV9mb3JtYW50X2N0ciA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMjFfZDA1X2Zvcm1hbnRfY3RyIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyMl9kMDVfZm9ybWFudF9jdHIgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczIyX2QwNV9mb3JtYW50X2N0ciIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMjNfZDA1X2Zvcm1hbnRfY3RyID0gaHNsaWRlcigiTU1fTWF0cml4L3MyM19kMDVfZm9ybWFudF9jdHIiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczI0X2QwNV9mb3JtYW50X2N0ciA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMjRfZDA1X2Zvcm1hbnRfY3RyIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyNV9kMDVfZm9ybWFudF9jdHIgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczI1X2QwNV9mb3JtYW50X2N0ciIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMjZfZDA1X2Zvcm1hbnRfY3RyID0gaHNsaWRlcigiTU1fTWF0cml4L3MyNl9kMDVfZm9ybWFudF9jdHIiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczI3X2QwNV9mb3JtYW50X2N0ciA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMjdfZDA1X2Zvcm1hbnRfY3RyIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyOF9kMDVfZm9ybWFudF9jdHIgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczI4X2QwNV9mb3JtYW50X2N0ciIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMjlfZDA1X2Zvcm1hbnRfY3RyID0gaHNsaWRlcigiTU1fTWF0cml4L3MyOV9kMDVfZm9ybWFudF9jdHIiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczMwX2QwNV9mb3JtYW50X2N0ciA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMzBfZDA1X2Zvcm1hbnRfY3RyIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzMV9kMDVfZm9ybWFudF9jdHIgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczMxX2QwNV9mb3JtYW50X2N0ciIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMzJfZDA1X2Zvcm1hbnRfY3RyID0gaHNsaWRlcigiTU1fTWF0cml4L3MzMl9kMDVfZm9ybWFudF9jdHIiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczMzX2QwNV9mb3JtYW50X2N0ciA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMzNfZDA1X2Zvcm1hbnRfY3RyIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzNF9kMDVfZm9ybWFudF9jdHIgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczM0X2QwNV9mb3JtYW50X2N0ciIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMzVfZDA1X2Zvcm1hbnRfY3RyID0gaHNsaWRlcigiTU1fTWF0cml4L3MzNV9kMDVfZm9ybWFudF9jdHIiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczM2X2QwNV9mb3JtYW50X2N0ciA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMzZfZDA1X2Zvcm1hbnRfY3RyIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzN19kMDVfZm9ybWFudF9jdHIgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczM3X2QwNV9mb3JtYW50X2N0ciIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMzhfZDA1X2Zvcm1hbnRfY3RyID0gaHNsaWRlcigiTU1fTWF0cml4L3MzOF9kMDVfZm9ybWFudF9jdHIiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczM5X2QwNV9mb3JtYW50X2N0ciA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMzlfZDA1X2Zvcm1hbnRfY3RyIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0MF9kMDVfZm9ybWFudF9jdHIgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQwX2QwNV9mb3JtYW50X2N0ciIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zNDFfZDA1X2Zvcm1hbnRfY3RyID0gaHNsaWRlcigiTU1fTWF0cml4L3M0MV9kMDVfZm9ybWFudF9jdHIiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQyX2QwNV9mb3JtYW50X2N0ciA9IGhzbGlkZXIoIk1NX01hdHJpeC9zNDJfZDA1X2Zvcm1hbnRfY3RyIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0M19kMDVfZm9ybWFudF9jdHIgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQzX2QwNV9mb3JtYW50X2N0ciIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zNDRfZDA1X2Zvcm1hbnRfY3RyID0gaHNsaWRlcigiTU1fTWF0cml4L3M0NF9kMDVfZm9ybWFudF9jdHIiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQ1X2QwNV9mb3JtYW50X2N0ciA9IGhzbGlkZXIoIk1NX01hdHJpeC9zNDVfZDA1X2Zvcm1hbnRfY3RyIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0Nl9kMDVfZm9ybWFudF9jdHIgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQ2X2QwNV9mb3JtYW50X2N0ciIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zNDdfZDA1X2Zvcm1hbnRfY3RyID0gaHNsaWRlcigiTU1fTWF0cml4L3M0N19kMDVfZm9ybWFudF9jdHIiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwoKLy8gTWF0cml4IGNvbHVtbjogZGVzdGluYXRpb24gNiA9IGZvcm1hbnRfZGVwdGgKYW10X3MwMF9kMDZfZm9ybWFudF9kZXB0aCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMDBfZDA2X2Zvcm1hbnRfZGVwdGgiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczAxX2QwNl9mb3JtYW50X2RlcHRoID0gaHNsaWRlcigiTU1fTWF0cml4L3MwMV9kMDZfZm9ybWFudF9kZXB0aCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMDJfZDA2X2Zvcm1hbnRfZGVwdGggPSBoc2xpZGVyKCJNTV9NYXRyaXgvczAyX2QwNl9mb3JtYW50X2RlcHRoIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwM19kMDZfZm9ybWFudF9kZXB0aCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMDNfZDA2X2Zvcm1hbnRfZGVwdGgiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczA0X2QwNl9mb3JtYW50X2RlcHRoID0gaHNsaWRlcigiTU1fTWF0cml4L3MwNF9kMDZfZm9ybWFudF9kZXB0aCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMDVfZDA2X2Zvcm1hbnRfZGVwdGggPSBoc2xpZGVyKCJNTV9NYXRyaXgvczA1X2QwNl9mb3JtYW50X2RlcHRoIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwNl9kMDZfZm9ybWFudF9kZXB0aCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMDZfZDA2X2Zvcm1hbnRfZGVwdGgiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczA3X2QwNl9mb3JtYW50X2RlcHRoID0gaHNsaWRlcigiTU1fTWF0cml4L3MwN19kMDZfZm9ybWFudF9kZXB0aCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMDhfZDA2X2Zvcm1hbnRfZGVwdGggPSBoc2xpZGVyKCJNTV9NYXRyaXgvczA4X2QwNl9mb3JtYW50X2RlcHRoIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwOV9kMDZfZm9ybWFudF9kZXB0aCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMDlfZDA2X2Zvcm1hbnRfZGVwdGgiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczEwX2QwNl9mb3JtYW50X2RlcHRoID0gaHNsaWRlcigiTU1fTWF0cml4L3MxMF9kMDZfZm9ybWFudF9kZXB0aCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMTFfZDA2X2Zvcm1hbnRfZGVwdGggPSBoc2xpZGVyKCJNTV9NYXRyaXgvczExX2QwNl9mb3JtYW50X2RlcHRoIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxMl9kMDZfZm9ybWFudF9kZXB0aCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMTJfZDA2X2Zvcm1hbnRfZGVwdGgiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczEzX2QwNl9mb3JtYW50X2RlcHRoID0gaHNsaWRlcigiTU1fTWF0cml4L3MxM19kMDZfZm9ybWFudF9kZXB0aCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMTRfZDA2X2Zvcm1hbnRfZGVwdGggPSBoc2xpZGVyKCJNTV9NYXRyaXgvczE0X2QwNl9mb3JtYW50X2RlcHRoIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxNV9kMDZfZm9ybWFudF9kZXB0aCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMTVfZDA2X2Zvcm1hbnRfZGVwdGgiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczE2X2QwNl9mb3JtYW50X2RlcHRoID0gaHNsaWRlcigiTU1fTWF0cml4L3MxNl9kMDZfZm9ybWFudF9kZXB0aCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMTdfZDA2X2Zvcm1hbnRfZGVwdGggPSBoc2xpZGVyKCJNTV9NYXRyaXgvczE3X2QwNl9mb3JtYW50X2RlcHRoIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxOF9kMDZfZm9ybWFudF9kZXB0aCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMThfZDA2X2Zvcm1hbnRfZGVwdGgiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczE5X2QwNl9mb3JtYW50X2RlcHRoID0gaHNsaWRlcigiTU1fTWF0cml4L3MxOV9kMDZfZm9ybWFudF9kZXB0aCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMjBfZDA2X2Zvcm1hbnRfZGVwdGggPSBoc2xpZGVyKCJNTV9NYXRyaXgvczIwX2QwNl9mb3JtYW50X2RlcHRoIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyMV9kMDZfZm9ybWFudF9kZXB0aCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMjFfZDA2X2Zvcm1hbnRfZGVwdGgiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczIyX2QwNl9mb3JtYW50X2RlcHRoID0gaHNsaWRlcigiTU1fTWF0cml4L3MyMl9kMDZfZm9ybWFudF9kZXB0aCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMjNfZDA2X2Zvcm1hbnRfZGVwdGggPSBoc2xpZGVyKCJNTV9NYXRyaXgvczIzX2QwNl9mb3JtYW50X2RlcHRoIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyNF9kMDZfZm9ybWFudF9kZXB0aCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMjRfZDA2X2Zvcm1hbnRfZGVwdGgiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczI1X2QwNl9mb3JtYW50X2RlcHRoID0gaHNsaWRlcigiTU1fTWF0cml4L3MyNV9kMDZfZm9ybWFudF9kZXB0aCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMjZfZDA2X2Zvcm1hbnRfZGVwdGggPSBoc2xpZGVyKCJNTV9NYXRyaXgvczI2X2QwNl9mb3JtYW50X2RlcHRoIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyN19kMDZfZm9ybWFudF9kZXB0aCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMjdfZDA2X2Zvcm1hbnRfZGVwdGgiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczI4X2QwNl9mb3JtYW50X2RlcHRoID0gaHNsaWRlcigiTU1fTWF0cml4L3MyOF9kMDZfZm9ybWFudF9kZXB0aCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMjlfZDA2X2Zvcm1hbnRfZGVwdGggPSBoc2xpZGVyKCJNTV9NYXRyaXgvczI5X2QwNl9mb3JtYW50X2RlcHRoIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzMF9kMDZfZm9ybWFudF9kZXB0aCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMzBfZDA2X2Zvcm1hbnRfZGVwdGgiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczMxX2QwNl9mb3JtYW50X2RlcHRoID0gaHNsaWRlcigiTU1fTWF0cml4L3MzMV9kMDZfZm9ybWFudF9kZXB0aCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMzJfZDA2X2Zvcm1hbnRfZGVwdGggPSBoc2xpZGVyKCJNTV9NYXRyaXgvczMyX2QwNl9mb3JtYW50X2RlcHRoIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzM19kMDZfZm9ybWFudF9kZXB0aCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMzNfZDA2X2Zvcm1hbnRfZGVwdGgiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczM0X2QwNl9mb3JtYW50X2RlcHRoID0gaHNsaWRlcigiTU1fTWF0cml4L3MzNF9kMDZfZm9ybWFudF9kZXB0aCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMzVfZDA2X2Zvcm1hbnRfZGVwdGggPSBoc2xpZGVyKCJNTV9NYXRyaXgvczM1X2QwNl9mb3JtYW50X2RlcHRoIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzNl9kMDZfZm9ybWFudF9kZXB0aCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMzZfZDA2X2Zvcm1hbnRfZGVwdGgiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczM3X2QwNl9mb3JtYW50X2RlcHRoID0gaHNsaWRlcigiTU1fTWF0cml4L3MzN19kMDZfZm9ybWFudF9kZXB0aCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMzhfZDA2X2Zvcm1hbnRfZGVwdGggPSBoc2xpZGVyKCJNTV9NYXRyaXgvczM4X2QwNl9mb3JtYW50X2RlcHRoIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzOV9kMDZfZm9ybWFudF9kZXB0aCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMzlfZDA2X2Zvcm1hbnRfZGVwdGgiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQwX2QwNl9mb3JtYW50X2RlcHRoID0gaHNsaWRlcigiTU1fTWF0cml4L3M0MF9kMDZfZm9ybWFudF9kZXB0aCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zNDFfZDA2X2Zvcm1hbnRfZGVwdGggPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQxX2QwNl9mb3JtYW50X2RlcHRoIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0Ml9kMDZfZm9ybWFudF9kZXB0aCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zNDJfZDA2X2Zvcm1hbnRfZGVwdGgiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQzX2QwNl9mb3JtYW50X2RlcHRoID0gaHNsaWRlcigiTU1fTWF0cml4L3M0M19kMDZfZm9ybWFudF9kZXB0aCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zNDRfZDA2X2Zvcm1hbnRfZGVwdGggPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQ0X2QwNl9mb3JtYW50X2RlcHRoIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0NV9kMDZfZm9ybWFudF9kZXB0aCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zNDVfZDA2X2Zvcm1hbnRfZGVwdGgiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQ2X2QwNl9mb3JtYW50X2RlcHRoID0gaHNsaWRlcigiTU1fTWF0cml4L3M0Nl9kMDZfZm9ybWFudF9kZXB0aCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zNDdfZDA2X2Zvcm1hbnRfZGVwdGggPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQ3X2QwNl9mb3JtYW50X2RlcHRoIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKCi8vIE1hdHJpeCBjb2x1bW46IGRlc3RpbmF0aW9uIDcgPSBub2lzZV9taXgKYW10X3MwMF9kMDdfbm9pc2VfbWl4ID0gaHNsaWRlcigiTU1fTWF0cml4L3MwMF9kMDdfbm9pc2VfbWl4IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwMV9kMDdfbm9pc2VfbWl4ID0gaHNsaWRlcigiTU1fTWF0cml4L3MwMV9kMDdfbm9pc2VfbWl4IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwMl9kMDdfbm9pc2VfbWl4ID0gaHNsaWRlcigiTU1fTWF0cml4L3MwMl9kMDdfbm9pc2VfbWl4IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwM19kMDdfbm9pc2VfbWl4ID0gaHNsaWRlcigiTU1fTWF0cml4L3MwM19kMDdfbm9pc2VfbWl4IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwNF9kMDdfbm9pc2VfbWl4ID0gaHNsaWRlcigiTU1fTWF0cml4L3MwNF9kMDdfbm9pc2VfbWl4IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwNV9kMDdfbm9pc2VfbWl4ID0gaHNsaWRlcigiTU1fTWF0cml4L3MwNV9kMDdfbm9pc2VfbWl4IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwNl9kMDdfbm9pc2VfbWl4ID0gaHNsaWRlcigiTU1fTWF0cml4L3MwNl9kMDdfbm9pc2VfbWl4IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwN19kMDdfbm9pc2VfbWl4ID0gaHNsaWRlcigiTU1fTWF0cml4L3MwN19kMDdfbm9pc2VfbWl4IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwOF9kMDdfbm9pc2VfbWl4ID0gaHNsaWRlcigiTU1fTWF0cml4L3MwOF9kMDdfbm9pc2VfbWl4IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwOV9kMDdfbm9pc2VfbWl4ID0gaHNsaWRlcigiTU1fTWF0cml4L3MwOV9kMDdfbm9pc2VfbWl4IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxMF9kMDdfbm9pc2VfbWl4ID0gaHNsaWRlcigiTU1fTWF0cml4L3MxMF9kMDdfbm9pc2VfbWl4IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxMV9kMDdfbm9pc2VfbWl4ID0gaHNsaWRlcigiTU1fTWF0cml4L3MxMV9kMDdfbm9pc2VfbWl4IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxMl9kMDdfbm9pc2VfbWl4ID0gaHNsaWRlcigiTU1fTWF0cml4L3MxMl9kMDdfbm9pc2VfbWl4IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxM19kMDdfbm9pc2VfbWl4ID0gaHNsaWRlcigiTU1fTWF0cml4L3MxM19kMDdfbm9pc2VfbWl4IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxNF9kMDdfbm9pc2VfbWl4ID0gaHNsaWRlcigiTU1fTWF0cml4L3MxNF9kMDdfbm9pc2VfbWl4IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxNV9kMDdfbm9pc2VfbWl4ID0gaHNsaWRlcigiTU1fTWF0cml4L3MxNV9kMDdfbm9pc2VfbWl4IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxNl9kMDdfbm9pc2VfbWl4ID0gaHNsaWRlcigiTU1fTWF0cml4L3MxNl9kMDdfbm9pc2VfbWl4IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxN19kMDdfbm9pc2VfbWl4ID0gaHNsaWRlcigiTU1fTWF0cml4L3MxN19kMDdfbm9pc2VfbWl4IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxOF9kMDdfbm9pc2VfbWl4ID0gaHNsaWRlcigiTU1fTWF0cml4L3MxOF9kMDdfbm9pc2VfbWl4IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxOV9kMDdfbm9pc2VfbWl4ID0gaHNsaWRlcigiTU1fTWF0cml4L3MxOV9kMDdfbm9pc2VfbWl4IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyMF9kMDdfbm9pc2VfbWl4ID0gaHNsaWRlcigiTU1fTWF0cml4L3MyMF9kMDdfbm9pc2VfbWl4IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyMV9kMDdfbm9pc2VfbWl4ID0gaHNsaWRlcigiTU1fTWF0cml4L3MyMV9kMDdfbm9pc2VfbWl4IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyMl9kMDdfbm9pc2VfbWl4ID0gaHNsaWRlcigiTU1fTWF0cml4L3MyMl9kMDdfbm9pc2VfbWl4IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyM19kMDdfbm9pc2VfbWl4ID0gaHNsaWRlcigiTU1fTWF0cml4L3MyM19kMDdfbm9pc2VfbWl4IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyNF9kMDdfbm9pc2VfbWl4ID0gaHNsaWRlcigiTU1fTWF0cml4L3MyNF9kMDdfbm9pc2VfbWl4IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyNV9kMDdfbm9pc2VfbWl4ID0gaHNsaWRlcigiTU1fTWF0cml4L3MyNV9kMDdfbm9pc2VfbWl4IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyNl9kMDdfbm9pc2VfbWl4ID0gaHNsaWRlcigiTU1fTWF0cml4L3MyNl9kMDdfbm9pc2VfbWl4IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyN19kMDdfbm9pc2VfbWl4ID0gaHNsaWRlcigiTU1fTWF0cml4L3MyN19kMDdfbm9pc2VfbWl4IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyOF9kMDdfbm9pc2VfbWl4ID0gaHNsaWRlcigiTU1fTWF0cml4L3MyOF9kMDdfbm9pc2VfbWl4IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyOV9kMDdfbm9pc2VfbWl4ID0gaHNsaWRlcigiTU1fTWF0cml4L3MyOV9kMDdfbm9pc2VfbWl4IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzMF9kMDdfbm9pc2VfbWl4ID0gaHNsaWRlcigiTU1fTWF0cml4L3MzMF9kMDdfbm9pc2VfbWl4IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzMV9kMDdfbm9pc2VfbWl4ID0gaHNsaWRlcigiTU1fTWF0cml4L3MzMV9kMDdfbm9pc2VfbWl4IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzMl9kMDdfbm9pc2VfbWl4ID0gaHNsaWRlcigiTU1fTWF0cml4L3MzMl9kMDdfbm9pc2VfbWl4IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzM19kMDdfbm9pc2VfbWl4ID0gaHNsaWRlcigiTU1fTWF0cml4L3MzM19kMDdfbm9pc2VfbWl4IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzNF9kMDdfbm9pc2VfbWl4ID0gaHNsaWRlcigiTU1fTWF0cml4L3MzNF9kMDdfbm9pc2VfbWl4IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzNV9kMDdfbm9pc2VfbWl4ID0gaHNsaWRlcigiTU1fTWF0cml4L3MzNV9kMDdfbm9pc2VfbWl4IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzNl9kMDdfbm9pc2VfbWl4ID0gaHNsaWRlcigiTU1fTWF0cml4L3MzNl9kMDdfbm9pc2VfbWl4IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzN19kMDdfbm9pc2VfbWl4ID0gaHNsaWRlcigiTU1fTWF0cml4L3MzN19kMDdfbm9pc2VfbWl4IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzOF9kMDdfbm9pc2VfbWl4ID0gaHNsaWRlcigiTU1fTWF0cml4L3MzOF9kMDdfbm9pc2VfbWl4IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzOV9kMDdfbm9pc2VfbWl4ID0gaHNsaWRlcigiTU1fTWF0cml4L3MzOV9kMDdfbm9pc2VfbWl4IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0MF9kMDdfbm9pc2VfbWl4ID0gaHNsaWRlcigiTU1fTWF0cml4L3M0MF9kMDdfbm9pc2VfbWl4IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0MV9kMDdfbm9pc2VfbWl4ID0gaHNsaWRlcigiTU1fTWF0cml4L3M0MV9kMDdfbm9pc2VfbWl4IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0Ml9kMDdfbm9pc2VfbWl4ID0gaHNsaWRlcigiTU1fTWF0cml4L3M0Ml9kMDdfbm9pc2VfbWl4IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0M19kMDdfbm9pc2VfbWl4ID0gaHNsaWRlcigiTU1fTWF0cml4L3M0M19kMDdfbm9pc2VfbWl4IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0NF9kMDdfbm9pc2VfbWl4ID0gaHNsaWRlcigiTU1fTWF0cml4L3M0NF9kMDdfbm9pc2VfbWl4IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0NV9kMDdfbm9pc2VfbWl4ID0gaHNsaWRlcigiTU1fTWF0cml4L3M0NV9kMDdfbm9pc2VfbWl4IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0Nl9kMDdfbm9pc2VfbWl4ID0gaHNsaWRlcigiTU1fTWF0cml4L3M0Nl9kMDdfbm9pc2VfbWl4IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0N19kMDdfbm9pc2VfbWl4ID0gaHNsaWRlcigiTU1fTWF0cml4L3M0N19kMDdfbm9pc2VfbWl4IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKCi8vIE1hdHJpeCBjb2x1bW46IGRlc3RpbmF0aW9uIDggPSBhbXAKYW10X3MwMF9kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3MwMF9kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwMV9kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3MwMV9kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwMl9kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3MwMl9kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwM19kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3MwM19kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwNF9kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3MwNF9kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwNV9kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3MwNV9kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwNl9kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3MwNl9kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwN19kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3MwN19kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwOF9kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3MwOF9kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwOV9kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3MwOV9kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxMF9kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3MxMF9kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxMV9kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3MxMV9kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxMl9kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3MxMl9kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxM19kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3MxM19kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxNF9kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3MxNF9kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxNV9kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3MxNV9kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxNl9kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3MxNl9kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxN19kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3MxN19kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxOF9kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3MxOF9kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxOV9kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3MxOV9kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyMF9kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3MyMF9kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyMV9kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3MyMV9kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyMl9kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3MyMl9kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyM19kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3MyM19kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyNF9kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3MyNF9kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyNV9kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3MyNV9kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyNl9kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3MyNl9kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyN19kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3MyN19kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyOF9kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3MyOF9kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyOV9kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3MyOV9kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzMF9kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3MzMF9kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzMV9kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3MzMV9kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzMl9kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3MzMl9kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzM19kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3MzM19kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzNF9kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3MzNF9kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzNV9kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3MzNV9kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzNl9kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3MzNl9kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzN19kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3MzN19kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzOF9kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3MzOF9kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzOV9kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3MzOV9kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0MF9kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3M0MF9kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0MV9kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3M0MV9kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0Ml9kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3M0Ml9kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0M19kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3M0M19kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0NF9kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3M0NF9kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0NV9kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3M0NV9kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0Nl9kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3M0Nl9kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0N19kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3M0N19kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKCi8vIE1hdHJpeCBjb2x1bW46IGRlc3RpbmF0aW9uIDkgPSBwYW4KYW10X3MwMF9kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3MwMF9kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwMV9kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3MwMV9kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwMl9kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3MwMl9kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwM19kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3MwM19kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwNF9kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3MwNF9kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwNV9kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3MwNV9kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwNl9kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3MwNl9kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwN19kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3MwN19kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwOF9kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3MwOF9kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwOV9kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3MwOV9kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxMF9kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3MxMF9kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxMV9kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3MxMV9kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxMl9kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3MxMl9kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxM19kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3MxM19kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxNF9kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3MxNF9kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxNV9kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3MxNV9kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxNl9kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3MxNl9kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxN19kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3MxN19kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxOF9kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3MxOF9kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxOV9kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3MxOV9kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyMF9kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3MyMF9kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyMV9kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3MyMV9kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyMl9kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3MyMl9kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyM19kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3MyM19kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyNF9kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3MyNF9kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyNV9kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3MyNV9kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyNl9kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3MyNl9kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyN19kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3MyN19kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyOF9kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3MyOF9kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyOV9kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3MyOV9kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzMF9kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3MzMF9kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzMV9kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3MzMV9kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzMl9kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3MzMl9kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzM19kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3MzM19kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzNF9kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3MzNF9kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzNV9kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3MzNV9kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzNl9kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3MzNl9kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzN19kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3MzN19kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzOF9kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3MzOF9kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzOV9kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3MzOV9kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0MF9kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3M0MF9kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0MV9kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3M0MV9kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0Ml9kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3M0Ml9kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0M19kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3M0M19kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0NF9kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3M0NF9kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0NV9kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3M0NV9kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0Nl9kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3M0Nl9kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0N19kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3M0N19kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQovLyBEZXN0aW5hdGlvbiBzaWduYWxzIOKAlCBvbmUgcGVyIG1vZHVsYXRpb24gZGVzdGluYXRpb24uIEVhY2ggaXMgYSA0OC10ZXJtCi8vIHdlaWdodGVkIHN1bSBvZiBzb3VyY2VzIMOXIGFtb3VudHMuIFRoZSBgZ2F0ZWAgYXJndW1lbnQgaXMgdGhyZWFkZWQgdGhyb3VnaAovLyBzbyB0aGF0IG1wLnNyYz8/KGdhdGUpIGNhbiBkcml2ZSBBRFNSIGVudmVsb3Blcy4KLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgptb2RfcGl0Y2goZ2F0ZSkgPQogICAgbXAuc3JjMDAoZ2F0ZSkgKiBhbXRfczAwX2QwMF9waXRjaCArCiAgICBtcC5zcmMwMShnYXRlKSAqIGFtdF9zMDFfZDAwX3BpdGNoICsKICAgIG1wLnNyYzAyKGdhdGUpICogYW10X3MwMl9kMDBfcGl0Y2ggKwogICAgbXAuc3JjMDMoZ2F0ZSkgKiBhbXRfczAzX2QwMF9waXRjaCArCiAgICBtcC5zcmMwNChnYXRlKSAqIGFtdF9zMDRfZDAwX3BpdGNoICsKICAgIG1wLnNyYzA1KGdhdGUpICogYW10X3MwNV9kMDBfcGl0Y2ggKwogICAgbXAuc3JjMDYoZ2F0ZSkgKiBhbXRfczA2X2QwMF9waXRjaCArCiAgICBtcC5zcmMwNyhnYXRlKSAqIGFtdF9zMDdfZDAwX3BpdGNoICsKICAgIG1wLnNyYzA4KGdhdGUpICogYW10X3MwOF9kMDBfcGl0Y2ggKwogICAgbXAuc3JjMDkoZ2F0ZSkgKiBhbXRfczA5X2QwMF9waXRjaCArCiAgICBtcC5zcmMxMChnYXRlKSAqIGFtdF9zMTBfZDAwX3BpdGNoICsKICAgIG1wLnNyYzExKGdhdGUpICogYW10X3MxMV9kMDBfcGl0Y2ggKwogICAgbXAuc3JjMTIoZ2F0ZSkgKiBhbXRfczEyX2QwMF9waXRjaCArCiAgICBtcC5zcmMxMyhnYXRlKSAqIGFtdF9zMTNfZDAwX3BpdGNoICsKICAgIG1wLnNyYzE0KGdhdGUpICogYW10X3MxNF9kMDBfcGl0Y2ggKwogICAgbXAuc3JjMTUoZ2F0ZSkgKiBhbXRfczE1X2QwMF9waXRjaCArCiAgICBtcC5zcmMxNihnYXRlKSAqIGFtdF9zMTZfZDAwX3BpdGNoICsKICAgIG1wLnNyYzE3KGdhdGUpICogYW10X3MxN19kMDBfcGl0Y2ggKwogICAgbXAuc3JjMTgoZ2F0ZSkgKiBhbXRfczE4X2QwMF9waXRjaCArCiAgICBtcC5zcmMxOShnYXRlKSAqIGFtdF9zMTlfZDAwX3BpdGNoICsKICAgIG1wLnNyYzIwKGdhdGUpICogYW10X3MyMF9kMDBfcGl0Y2ggKwogICAgbXAuc3JjMjEoZ2F0ZSkgKiBhbXRfczIxX2QwMF9waXRjaCArCiAgICBtcC5zcmMyMihnYXRlKSAqIGFtdF9zMjJfZDAwX3BpdGNoICsKICAgIG1wLnNyYzIzKGdhdGUpICogYW10X3MyM19kMDBfcGl0Y2ggKwogICAgbXAuc3JjMjQoZ2F0ZSkgKiBhbXRfczI0X2QwMF9waXRjaCArCiAgICBtcC5zcmMyNShnYXRlKSAqIGFtdF9zMjVfZDAwX3BpdGNoICsKICAgIG1wLnNyYzI2KGdhdGUpICogYW10X3MyNl9kMDBfcGl0Y2ggKwogICAgbXAuc3JjMjcoZ2F0ZSkgKiBhbXRfczI3X2QwMF9waXRjaCArCiAgICBtcC5zcmMyOChnYXRlKSAqIGFtdF9zMjhfZDAwX3BpdGNoICsKICAgIG1wLnNyYzI5KGdhdGUpICogYW10X3MyOV9kMDBfcGl0Y2ggKwogICAgbXAuc3JjMzAoZ2F0ZSkgKiBhbXRfczMwX2QwMF9waXRjaCArCiAgICBtcC5zcmMzMShnYXRlKSAqIGFtdF9zMzFfZDAwX3BpdGNoICsKICAgIG1wLnNyYzMyKGdhdGUpICogYW10X3MzMl9kMDBfcGl0Y2ggKwogICAgbXAuc3JjMzMoZ2F0ZSkgKiBhbXRfczMzX2QwMF9waXRjaCArCiAgICBtcC5zcmMzNChnYXRlKSAqIGFtdF9zMzRfZDAwX3BpdGNoICsKICAgIG1wLnNyYzM1KGdhdGUpICogYW10X3MzNV9kMDBfcGl0Y2ggKwogICAgbXAuc3JjMzYoZ2F0ZSkgKiBhbXRfczM2X2QwMF9waXRjaCArCiAgICBtcC5zcmMzNyhnYXRlKSAqIGFtdF9zMzdfZDAwX3BpdGNoICsKICAgIG1wLnNyYzM4KGdhdGUpICogYW10X3MzOF9kMDBfcGl0Y2ggKwogICAgbXAuc3JjMzkoZ2F0ZSkgKiBhbXRfczM5X2QwMF9waXRjaCArCiAgICBtcC5zcmM0MChnYXRlKSAqIGFtdF9zNDBfZDAwX3BpdGNoICsKICAgIG1wLnNyYzQxKGdhdGUpICogYW10X3M0MV9kMDBfcGl0Y2ggKwogICAgbXAuc3JjNDIoZ2F0ZSkgKiBhbXRfczQyX2QwMF9waXRjaCArCiAgICBtcC5zcmM0MyhnYXRlKSAqIGFtdF9zNDNfZDAwX3BpdGNoICsKICAgIG1wLnNyYzQ0KGdhdGUpICogYW10X3M0NF9kMDBfcGl0Y2ggKwogICAgbXAuc3JjNDUoZ2F0ZSkgKiBhbXRfczQ1X2QwMF9waXRjaCArCiAgICBtcC5zcmM0NihnYXRlKSAqIGFtdF9zNDZfZDAwX3BpdGNoICsKICAgIG1wLnNyYzQ3KGdhdGUpICogYW10X3M0N19kMDBfcGl0Y2g7Cgptb2RfYnJpZ2h0KGdhdGUpID0KICAgIG1wLnNyYzAwKGdhdGUpICogYW10X3MwMF9kMDFfYnJpZ2h0ICsKICAgIG1wLnNyYzAxKGdhdGUpICogYW10X3MwMV9kMDFfYnJpZ2h0ICsKICAgIG1wLnNyYzAyKGdhdGUpICogYW10X3MwMl9kMDFfYnJpZ2h0ICsKICAgIG1wLnNyYzAzKGdhdGUpICogYW10X3MwM19kMDFfYnJpZ2h0ICsKICAgIG1wLnNyYzA0KGdhdGUpICogYW10X3MwNF9kMDFfYnJpZ2h0ICsKICAgIG1wLnNyYzA1KGdhdGUpICogYW10X3MwNV9kMDFfYnJpZ2h0ICsKICAgIG1wLnNyYzA2KGdhdGUpICogYW10X3MwNl9kMDFfYnJpZ2h0ICsKICAgIG1wLnNyYzA3KGdhdGUpICogYW10X3MwN19kMDFfYnJpZ2h0ICsKICAgIG1wLnNyYzA4KGdhdGUpICogYW10X3MwOF9kMDFfYnJpZ2h0ICsKICAgIG1wLnNyYzA5KGdhdGUpICogYW10X3MwOV9kMDFfYnJpZ2h0ICsKICAgIG1wLnNyYzEwKGdhdGUpICogYW10X3MxMF9kMDFfYnJpZ2h0ICsKICAgIG1wLnNyYzExKGdhdGUpICogYW10X3MxMV9kMDFfYnJpZ2h0ICsKICAgIG1wLnNyYzEyKGdhdGUpICogYW10X3MxMl9kMDFfYnJpZ2h0ICsKICAgIG1wLnNyYzEzKGdhdGUpICogYW10X3MxM19kMDFfYnJpZ2h0ICsKICAgIG1wLnNyYzE0KGdhdGUpICogYW10X3MxNF9kMDFfYnJpZ2h0ICsKICAgIG1wLnNyYzE1KGdhdGUpICogYW10X3MxNV9kMDFfYnJpZ2h0ICsKICAgIG1wLnNyYzE2KGdhdGUpICogYW10X3MxNl9kMDFfYnJpZ2h0ICsKICAgIG1wLnNyYzE3KGdhdGUpICogYW10X3MxN19kMDFfYnJpZ2h0ICsKICAgIG1wLnNyYzE4KGdhdGUpICogYW10X3MxOF9kMDFfYnJpZ2h0ICsKICAgIG1wLnNyYzE5KGdhdGUpICogYW10X3MxOV9kMDFfYnJpZ2h0ICsKICAgIG1wLnNyYzIwKGdhdGUpICogYW10X3MyMF9kMDFfYnJpZ2h0ICsKICAgIG1wLnNyYzIxKGdhdGUpICogYW10X3MyMV9kMDFfYnJpZ2h0ICsKICAgIG1wLnNyYzIyKGdhdGUpICogYW10X3MyMl9kMDFfYnJpZ2h0ICsKICAgIG1wLnNyYzIzKGdhdGUpICogYW10X3MyM19kMDFfYnJpZ2h0ICsKICAgIG1wLnNyYzI0KGdhdGUpICogYW10X3MyNF9kMDFfYnJpZ2h0ICsKICAgIG1wLnNyYzI1KGdhdGUpICogYW10X3MyNV9kMDFfYnJpZ2h0ICsKICAgIG1wLnNyYzI2KGdhdGUpICogYW10X3MyNl9kMDFfYnJpZ2h0ICsKICAgIG1wLnNyYzI3KGdhdGUpICogYW10X3MyN19kMDFfYnJpZ2h0ICsKICAgIG1wLnNyYzI4KGdhdGUpICogYW10X3MyOF9kMDFfYnJpZ2h0ICsKICAgIG1wLnNyYzI5KGdhdGUpICogYW10X3MyOV9kMDFfYnJpZ2h0ICsKICAgIG1wLnNyYzMwKGdhdGUpICogYW10X3MzMF9kMDFfYnJpZ2h0ICsKICAgIG1wLnNyYzMxKGdhdGUpICogYW10X3MzMV9kMDFfYnJpZ2h0ICsKICAgIG1wLnNyYzMyKGdhdGUpICogYW10X3MzMl9kMDFfYnJpZ2h0ICsKICAgIG1wLnNyYzMzKGdhdGUpICogYW10X3MzM19kMDFfYnJpZ2h0ICsKICAgIG1wLnNyYzM0KGdhdGUpICogYW10X3MzNF9kMDFfYnJpZ2h0ICsKICAgIG1wLnNyYzM1KGdhdGUpICogYW10X3MzNV9kMDFfYnJpZ2h0ICsKICAgIG1wLnNyYzM2KGdhdGUpICogYW10X3MzNl9kMDFfYnJpZ2h0ICsKICAgIG1wLnNyYzM3KGdhdGUpICogYW10X3MzN19kMDFfYnJpZ2h0ICsKICAgIG1wLnNyYzM4KGdhdGUpICogYW10X3MzOF9kMDFfYnJpZ2h0ICsKICAgIG1wLnNyYzM5KGdhdGUpICogYW10X3MzOV9kMDFfYnJpZ2h0ICsKICAgIG1wLnNyYzQwKGdhdGUpICogYW10X3M0MF9kMDFfYnJpZ2h0ICsKICAgIG1wLnNyYzQxKGdhdGUpICogYW10X3M0MV9kMDFfYnJpZ2h0ICsKICAgIG1wLnNyYzQyKGdhdGUpICogYW10X3M0Ml9kMDFfYnJpZ2h0ICsKICAgIG1wLnNyYzQzKGdhdGUpICogYW10X3M0M19kMDFfYnJpZ2h0ICsKICAgIG1wLnNyYzQ0KGdhdGUpICogYW10X3M0NF9kMDFfYnJpZ2h0ICsKICAgIG1wLnNyYzQ1KGdhdGUpICogYW10X3M0NV9kMDFfYnJpZ2h0ICsKICAgIG1wLnNyYzQ2KGdhdGUpICogYW10X3M0Nl9kMDFfYnJpZ2h0ICsKICAgIG1wLnNyYzQ3KGdhdGUpICogYW10X3M0N19kMDFfYnJpZ2h0OwoKbW9kX3RpbHQoZ2F0ZSkgPQogICAgbXAuc3JjMDAoZ2F0ZSkgKiBhbXRfczAwX2QwMl90aWx0ICsKICAgIG1wLnNyYzAxKGdhdGUpICogYW10X3MwMV9kMDJfdGlsdCArCiAgICBtcC5zcmMwMihnYXRlKSAqIGFtdF9zMDJfZDAyX3RpbHQgKwogICAgbXAuc3JjMDMoZ2F0ZSkgKiBhbXRfczAzX2QwMl90aWx0ICsKICAgIG1wLnNyYzA0KGdhdGUpICogYW10X3MwNF9kMDJfdGlsdCArCiAgICBtcC5zcmMwNShnYXRlKSAqIGFtdF9zMDVfZDAyX3RpbHQgKwogICAgbXAuc3JjMDYoZ2F0ZSkgKiBhbXRfczA2X2QwMl90aWx0ICsKICAgIG1wLnNyYzA3KGdhdGUpICogYW10X3MwN19kMDJfdGlsdCArCiAgICBtcC5zcmMwOChnYXRlKSAqIGFtdF9zMDhfZDAyX3RpbHQgKwogICAgbXAuc3JjMDkoZ2F0ZSkgKiBhbXRfczA5X2QwMl90aWx0ICsKICAgIG1wLnNyYzEwKGdhdGUpICogYW10X3MxMF9kMDJfdGlsdCArCiAgICBtcC5zcmMxMShnYXRlKSAqIGFtdF9zMTFfZDAyX3RpbHQgKwogICAgbXAuc3JjMTIoZ2F0ZSkgKiBhbXRfczEyX2QwMl90aWx0ICsKICAgIG1wLnNyYzEzKGdhdGUpICogYW10X3MxM19kMDJfdGlsdCArCiAgICBtcC5zcmMxNChnYXRlKSAqIGFtdF9zMTRfZDAyX3RpbHQgKwogICAgbXAuc3JjMTUoZ2F0ZSkgKiBhbXRfczE1X2QwMl90aWx0ICsKICAgIG1wLnNyYzE2KGdhdGUpICogYW10X3MxNl9kMDJfdGlsdCArCiAgICBtcC5zcmMxNyhnYXRlKSAqIGFtdF9zMTdfZDAyX3RpbHQgKwogICAgbXAuc3JjMTgoZ2F0ZSkgKiBhbXRfczE4X2QwMl90aWx0ICsKICAgIG1wLnNyYzE5KGdhdGUpICogYW10X3MxOV9kMDJfdGlsdCArCiAgICBtcC5zcmMyMChnYXRlKSAqIGFtdF9zMjBfZDAyX3RpbHQgKwogICAgbXAuc3JjMjEoZ2F0ZSkgKiBhbXRfczIxX2QwMl90aWx0ICsKICAgIG1wLnNyYzIyKGdhdGUpICogYW10X3MyMl9kMDJfdGlsdCArCiAgICBtcC5zcmMyMyhnYXRlKSAqIGFtdF9zMjNfZDAyX3RpbHQgKwogICAgbXAuc3JjMjQoZ2F0ZSkgKiBhbXRfczI0X2QwMl90aWx0ICsKICAgIG1wLnNyYzI1KGdhdGUpICogYW10X3MyNV9kMDJfdGlsdCArCiAgICBtcC5zcmMyNihnYXRlKSAqIGFtdF9zMjZfZDAyX3RpbHQgKwogICAgbXAuc3JjMjcoZ2F0ZSkgKiBhbXRfczI3X2QwMl90aWx0ICsKICAgIG1wLnNyYzI4KGdhdGUpICogYW10X3MyOF9kMDJfdGlsdCArCiAgICBtcC5zcmMyOShnYXRlKSAqIGFtdF9zMjlfZDAyX3RpbHQgKwogICAgbXAuc3JjMzAoZ2F0ZSkgKiBhbXRfczMwX2QwMl90aWx0ICsKICAgIG1wLnNyYzMxKGdhdGUpICogYW10X3MzMV9kMDJfdGlsdCArCiAgICBtcC5zcmMzMihnYXRlKSAqIGFtdF9zMzJfZDAyX3RpbHQgKwogICAgbXAuc3JjMzMoZ2F0ZSkgKiBhbXRfczMzX2QwMl90aWx0ICsKICAgIG1wLnNyYzM0KGdhdGUpICogYW10X3MzNF9kMDJfdGlsdCArCiAgICBtcC5zcmMzNShnYXRlKSAqIGFtdF9zMzVfZDAyX3RpbHQgKwogICAgbXAuc3JjMzYoZ2F0ZSkgKiBhbXRfczM2X2QwMl90aWx0ICsKICAgIG1wLnNyYzM3KGdhdGUpICogYW10X3MzN19kMDJfdGlsdCArCiAgICBtcC5zcmMzOChnYXRlKSAqIGFtdF9zMzhfZDAyX3RpbHQgKwogICAgbXAuc3JjMzkoZ2F0ZSkgKiBhbXRfczM5X2QwMl90aWx0ICsKICAgIG1wLnNyYzQwKGdhdGUpICogYW10X3M0MF9kMDJfdGlsdCArCiAgICBtcC5zcmM0MShnYXRlKSAqIGFtdF9zNDFfZDAyX3RpbHQgKwogICAgbXAuc3JjNDIoZ2F0ZSkgKiBhbXRfczQyX2QwMl90aWx0ICsKICAgIG1wLnNyYzQzKGdhdGUpICogYW10X3M0M19kMDJfdGlsdCArCiAgICBtcC5zcmM0NChnYXRlKSAqIGFtdF9zNDRfZDAyX3RpbHQgKwogICAgbXAuc3JjNDUoZ2F0ZSkgKiBhbXRfczQ1X2QwMl90aWx0ICsKICAgIG1wLnNyYzQ2KGdhdGUpICogYW10X3M0Nl9kMDJfdGlsdCArCiAgICBtcC5zcmM0NyhnYXRlKSAqIGFtdF9zNDdfZDAyX3RpbHQ7Cgptb2RfaW5oYXJtb25pY2l0eShnYXRlKSA9CiAgICBtcC5zcmMwMChnYXRlKSAqIGFtdF9zMDBfZDAzX2luaGFybW9uaWNpdHkgKwogICAgbXAuc3JjMDEoZ2F0ZSkgKiBhbXRfczAxX2QwM19pbmhhcm1vbmljaXR5ICsKICAgIG1wLnNyYzAyKGdhdGUpICogYW10X3MwMl9kMDNfaW5oYXJtb25pY2l0eSArCiAgICBtcC5zcmMwMyhnYXRlKSAqIGFtdF9zMDNfZDAzX2luaGFybW9uaWNpdHkgKwogICAgbXAuc3JjMDQoZ2F0ZSkgKiBhbXRfczA0X2QwM19pbmhhcm1vbmljaXR5ICsKICAgIG1wLnNyYzA1KGdhdGUpICogYW10X3MwNV9kMDNfaW5oYXJtb25pY2l0eSArCiAgICBtcC5zcmMwNihnYXRlKSAqIGFtdF9zMDZfZDAzX2luaGFybW9uaWNpdHkgKwogICAgbXAuc3JjMDcoZ2F0ZSkgKiBhbXRfczA3X2QwM19pbmhhcm1vbmljaXR5ICsKICAgIG1wLnNyYzA4KGdhdGUpICogYW10X3MwOF9kMDNfaW5oYXJtb25pY2l0eSArCiAgICBtcC5zcmMwOShnYXRlKSAqIGFtdF9zMDlfZDAzX2luaGFybW9uaWNpdHkgKwogICAgbXAuc3JjMTAoZ2F0ZSkgKiBhbXRfczEwX2QwM19pbmhhcm1vbmljaXR5ICsKICAgIG1wLnNyYzExKGdhdGUpICogYW10X3MxMV9kMDNfaW5oYXJtb25pY2l0eSArCiAgICBtcC5zcmMxMihnYXRlKSAqIGFtdF9zMTJfZDAzX2luaGFybW9uaWNpdHkgKwogICAgbXAuc3JjMTMoZ2F0ZSkgKiBhbXRfczEzX2QwM19pbmhhcm1vbmljaXR5ICsKICAgIG1wLnNyYzE0KGdhdGUpICogYW10X3MxNF9kMDNfaW5oYXJtb25pY2l0eSArCiAgICBtcC5zcmMxNShnYXRlKSAqIGFtdF9zMTVfZDAzX2luaGFybW9uaWNpdHkgKwogICAgbXAuc3JjMTYoZ2F0ZSkgKiBhbXRfczE2X2QwM19pbmhhcm1vbmljaXR5ICsKICAgIG1wLnNyYzE3KGdhdGUpICogYW10X3MxN19kMDNfaW5oYXJtb25pY2l0eSArCiAgICBtcC5zcmMxOChnYXRlKSAqIGFtdF9zMThfZDAzX2luaGFybW9uaWNpdHkgKwogICAgbXAuc3JjMTkoZ2F0ZSkgKiBhbXRfczE5X2QwM19pbmhhcm1vbmljaXR5ICsKICAgIG1wLnNyYzIwKGdhdGUpICogYW10X3MyMF9kMDNfaW5oYXJtb25pY2l0eSArCiAgICBtcC5zcmMyMShnYXRlKSAqIGFtdF9zMjFfZDAzX2luaGFybW9uaWNpdHkgKwogICAgbXAuc3JjMjIoZ2F0ZSkgKiBhbXRfczIyX2QwM19pbmhhcm1vbmljaXR5ICsKICAgIG1wLnNyYzIzKGdhdGUpICogYW10X3MyM19kMDNfaW5oYXJtb25pY2l0eSArCiAgICBtcC5zcmMyNChnYXRlKSAqIGFtdF9zMjRfZDAzX2luaGFybW9uaWNpdHkgKwogICAgbXAuc3JjMjUoZ2F0ZSkgKiBhbXRfczI1X2QwM19pbmhhcm1vbmljaXR5ICsKICAgIG1wLnNyYzI2KGdhdGUpICogYW10X3MyNl9kMDNfaW5oYXJtb25pY2l0eSArCiAgICBtcC5zcmMyNyhnYXRlKSAqIGFtdF9zMjdfZDAzX2luaGFybW9uaWNpdHkgKwogICAgbXAuc3JjMjgoZ2F0ZSkgKiBhbXRfczI4X2QwM19pbmhhcm1vbmljaXR5ICsKICAgIG1wLnNyYzI5KGdhdGUpICogYW10X3MyOV9kMDNfaW5oYXJtb25pY2l0eSArCiAgICBtcC5zcmMzMChnYXRlKSAqIGFtdF9zMzBfZDAzX2luaGFybW9uaWNpdHkgKwogICAgbXAuc3JjMzEoZ2F0ZSkgKiBhbXRfczMxX2QwM19pbmhhcm1vbmljaXR5ICsKICAgIG1wLnNyYzMyKGdhdGUpICogYW10X3MzMl9kMDNfaW5oYXJtb25pY2l0eSArCiAgICBtcC5zcmMzMyhnYXRlKSAqIGFtdF9zMzNfZDAzX2luaGFybW9uaWNpdHkgKwogICAgbXAuc3JjMzQoZ2F0ZSkgKiBhbXRfczM0X2QwM19pbmhhcm1vbmljaXR5ICsKICAgIG1wLnNyYzM1KGdhdGUpICogYW10X3MzNV9kMDNfaW5oYXJtb25pY2l0eSArCiAgICBtcC5zcmMzNihnYXRlKSAqIGFtdF9zMzZfZDAzX2luaGFybW9uaWNpdHkgKwogICAgbXAuc3JjMzcoZ2F0ZSkgKiBhbXRfczM3X2QwM19pbmhhcm1vbmljaXR5ICsKICAgIG1wLnNyYzM4KGdhdGUpICogYW10X3MzOF9kMDNfaW5oYXJtb25pY2l0eSArCiAgICBtcC5zcmMzOShnYXRlKSAqIGFtdF9zMzlfZDAzX2luaGFybW9uaWNpdHkgKwogICAgbXAuc3JjNDAoZ2F0ZSkgKiBhbXRfczQwX2QwM19pbmhhcm1vbmljaXR5ICsKICAgIG1wLnNyYzQxKGdhdGUpICogYW10X3M0MV9kMDNfaW5oYXJtb25pY2l0eSArCiAgICBtcC5zcmM0MihnYXRlKSAqIGFtdF9zNDJfZDAzX2luaGFybW9uaWNpdHkgKwogICAgbXAuc3JjNDMoZ2F0ZSkgKiBhbXRfczQzX2QwM19pbmhhcm1vbmljaXR5ICsKICAgIG1wLnNyYzQ0KGdhdGUpICogYW10X3M0NF9kMDNfaW5oYXJtb25pY2l0eSArCiAgICBtcC5zcmM0NShnYXRlKSAqIGFtdF9zNDVfZDAzX2luaGFybW9uaWNpdHkgKwogICAgbXAuc3JjNDYoZ2F0ZSkgKiBhbXRfczQ2X2QwM19pbmhhcm1vbmljaXR5ICsKICAgIG1wLnNyYzQ3KGdhdGUpICogYW10X3M0N19kMDNfaW5oYXJtb25pY2l0eTsKCm1vZF9vZGRfZXZlbihnYXRlKSA9CiAgICBtcC5zcmMwMChnYXRlKSAqIGFtdF9zMDBfZDA0X29kZF9ldmVuICsKICAgIG1wLnNyYzAxKGdhdGUpICogYW10X3MwMV9kMDRfb2RkX2V2ZW4gKwogICAgbXAuc3JjMDIoZ2F0ZSkgKiBhbXRfczAyX2QwNF9vZGRfZXZlbiArCiAgICBtcC5zcmMwMyhnYXRlKSAqIGFtdF9zMDNfZDA0X29kZF9ldmVuICsKICAgIG1wLnNyYzA0KGdhdGUpICogYW10X3MwNF9kMDRfb2RkX2V2ZW4gKwogICAgbXAuc3JjMDUoZ2F0ZSkgKiBhbXRfczA1X2QwNF9vZGRfZXZlbiArCiAgICBtcC5zcmMwNihnYXRlKSAqIGFtdF9zMDZfZDA0X29kZF9ldmVuICsKICAgIG1wLnNyYzA3KGdhdGUpICogYW10X3MwN19kMDRfb2RkX2V2ZW4gKwogICAgbXAuc3JjMDgoZ2F0ZSkgKiBhbXRfczA4X2QwNF9vZGRfZXZlbiArCiAgICBtcC5zcmMwOShnYXRlKSAqIGFtdF9zMDlfZDA0X29kZF9ldmVuICsKICAgIG1wLnNyYzEwKGdhdGUpICogYW10X3MxMF9kMDRfb2RkX2V2ZW4gKwogICAgbXAuc3JjMTEoZ2F0ZSkgKiBhbXRfczExX2QwNF9vZGRfZXZlbiArCiAgICBtcC5zcmMxMihnYXRlKSAqIGFtdF9zMTJfZDA0X29kZF9ldmVuICsKICAgIG1wLnNyYzEzKGdhdGUpICogYW10X3MxM19kMDRfb2RkX2V2ZW4gKwogICAgbXAuc3JjMTQoZ2F0ZSkgKiBhbXRfczE0X2QwNF9vZGRfZXZlbiArCiAgICBtcC5zcmMxNShnYXRlKSAqIGFtdF9zMTVfZDA0X29kZF9ldmVuICsKICAgIG1wLnNyYzE2KGdhdGUpICogYW10X3MxNl9kMDRfb2RkX2V2ZW4gKwogICAgbXAuc3JjMTcoZ2F0ZSkgKiBhbXRfczE3X2QwNF9vZGRfZXZlbiArCiAgICBtcC5zcmMxOChnYXRlKSAqIGFtdF9zMThfZDA0X29kZF9ldmVuICsKICAgIG1wLnNyYzE5KGdhdGUpICogYW10X3MxOV9kMDRfb2RkX2V2ZW4gKwogICAgbXAuc3JjMjAoZ2F0ZSkgKiBhbXRfczIwX2QwNF9vZGRfZXZlbiArCiAgICBtcC5zcmMyMShnYXRlKSAqIGFtdF9zMjFfZDA0X29kZF9ldmVuICsKICAgIG1wLnNyYzIyKGdhdGUpICogYW10X3MyMl9kMDRfb2RkX2V2ZW4gKwogICAgbXAuc3JjMjMoZ2F0ZSkgKiBhbXRfczIzX2QwNF9vZGRfZXZlbiArCiAgICBtcC5zcmMyNChnYXRlKSAqIGFtdF9zMjRfZDA0X29kZF9ldmVuICsKICAgIG1wLnNyYzI1KGdhdGUpICogYW10X3MyNV9kMDRfb2RkX2V2ZW4gKwogICAgbXAuc3JjMjYoZ2F0ZSkgKiBhbXRfczI2X2QwNF9vZGRfZXZlbiArCiAgICBtcC5zcmMyNyhnYXRlKSAqIGFtdF9zMjdfZDA0X29kZF9ldmVuICsKICAgIG1wLnNyYzI4KGdhdGUpICogYW10X3MyOF9kMDRfb2RkX2V2ZW4gKwogICAgbXAuc3JjMjkoZ2F0ZSkgKiBhbXRfczI5X2QwNF9vZGRfZXZlbiArCiAgICBtcC5zcmMzMChnYXRlKSAqIGFtdF9zMzBfZDA0X29kZF9ldmVuICsKICAgIG1wLnNyYzMxKGdhdGUpICogYW10X3MzMV9kMDRfb2RkX2V2ZW4gKwogICAgbXAuc3JjMzIoZ2F0ZSkgKiBhbXRfczMyX2QwNF9vZGRfZXZlbiArCiAgICBtcC5zcmMzMyhnYXRlKSAqIGFtdF9zMzNfZDA0X29kZF9ldmVuICsKICAgIG1wLnNyYzM0KGdhdGUpICogYW10X3MzNF9kMDRfb2RkX2V2ZW4gKwogICAgbXAuc3JjMzUoZ2F0ZSkgKiBhbXRfczM1X2QwNF9vZGRfZXZlbiArCiAgICBtcC5zcmMzNihnYXRlKSAqIGFtdF9zMzZfZDA0X29kZF9ldmVuICsKICAgIG1wLnNyYzM3KGdhdGUpICogYW10X3MzN19kMDRfb2RkX2V2ZW4gKwogICAgbXAuc3JjMzgoZ2F0ZSkgKiBhbXRfczM4X2QwNF9vZGRfZXZlbiArCiAgICBtcC5zcmMzOShnYXRlKSAqIGFtdF9zMzlfZDA0X29kZF9ldmVuICsKICAgIG1wLnNyYzQwKGdhdGUpICogYW10X3M0MF9kMDRfb2RkX2V2ZW4gKwogICAgbXAuc3JjNDEoZ2F0ZSkgKiBhbXRfczQxX2QwNF9vZGRfZXZlbiArCiAgICBtcC5zcmM0MihnYXRlKSAqIGFtdF9zNDJfZDA0X29kZF9ldmVuICsKICAgIG1wLnNyYzQzKGdhdGUpICogYW10X3M0M19kMDRfb2RkX2V2ZW4gKwogICAgbXAuc3JjNDQoZ2F0ZSkgKiBhbXRfczQ0X2QwNF9vZGRfZXZlbiArCiAgICBtcC5zcmM0NShnYXRlKSAqIGFtdF9zNDVfZDA0X29kZF9ldmVuICsKICAgIG1wLnNyYzQ2KGdhdGUpICogYW10X3M0Nl9kMDRfb2RkX2V2ZW4gKwogICAgbXAuc3JjNDcoZ2F0ZSkgKiBhbXRfczQ3X2QwNF9vZGRfZXZlbjsKCm1vZF9mb3JtYW50X2N0cihnYXRlKSA9CiAgICBtcC5zcmMwMChnYXRlKSAqIGFtdF9zMDBfZDA1X2Zvcm1hbnRfY3RyICsKICAgIG1wLnNyYzAxKGdhdGUpICogYW10X3MwMV9kMDVfZm9ybWFudF9jdHIgKwogICAgbXAuc3JjMDIoZ2F0ZSkgKiBhbXRfczAyX2QwNV9mb3JtYW50X2N0ciArCiAgICBtcC5zcmMwMyhnYXRlKSAqIGFtdF9zMDNfZDA1X2Zvcm1hbnRfY3RyICsKICAgIG1wLnNyYzA0KGdhdGUpICogYW10X3MwNF9kMDVfZm9ybWFudF9jdHIgKwogICAgbXAuc3JjMDUoZ2F0ZSkgKiBhbXRfczA1X2QwNV9mb3JtYW50X2N0ciArCiAgICBtcC5zcmMwNihnYXRlKSAqIGFtdF9zMDZfZDA1X2Zvcm1hbnRfY3RyICsKICAgIG1wLnNyYzA3KGdhdGUpICogYW10X3MwN19kMDVfZm9ybWFudF9jdHIgKwogICAgbXAuc3JjMDgoZ2F0ZSkgKiBhbXRfczA4X2QwNV9mb3JtYW50X2N0ciArCiAgICBtcC5zcmMwOShnYXRlKSAqIGFtdF9zMDlfZDA1X2Zvcm1hbnRfY3RyICsKICAgIG1wLnNyYzEwKGdhdGUpICogYW10X3MxMF9kMDVfZm9ybWFudF9jdHIgKwogICAgbXAuc3JjMTEoZ2F0ZSkgKiBhbXRfczExX2QwNV9mb3JtYW50X2N0ciArCiAgICBtcC5zcmMxMihnYXRlKSAqIGFtdF9zMTJfZDA1X2Zvcm1hbnRfY3RyICsKICAgIG1wLnNyYzEzKGdhdGUpICogYW10X3MxM19kMDVfZm9ybWFudF9jdHIgKwogICAgbXAuc3JjMTQoZ2F0ZSkgKiBhbXRfczE0X2QwNV9mb3JtYW50X2N0ciArCiAgICBtcC5zcmMxNShnYXRlKSAqIGFtdF9zMTVfZDA1X2Zvcm1hbnRfY3RyICsKICAgIG1wLnNyYzE2KGdhdGUpICogYW10X3MxNl9kMDVfZm9ybWFudF9jdHIgKwogICAgbXAuc3JjMTcoZ2F0ZSkgKiBhbXRfczE3X2QwNV9mb3JtYW50X2N0ciArCiAgICBtcC5zcmMxOChnYXRlKSAqIGFtdF9zMThfZDA1X2Zvcm1hbnRfY3RyICsKICAgIG1wLnNyYzE5KGdhdGUpICogYW10X3MxOV9kMDVfZm9ybWFudF9jdHIgKwogICAgbXAuc3JjMjAoZ2F0ZSkgKiBhbXRfczIwX2QwNV9mb3JtYW50X2N0ciArCiAgICBtcC5zcmMyMShnYXRlKSAqIGFtdF9zMjFfZDA1X2Zvcm1hbnRfY3RyICsKICAgIG1wLnNyYzIyKGdhdGUpICogYW10X3MyMl9kMDVfZm9ybWFudF9jdHIgKwogICAgbXAuc3JjMjMoZ2F0ZSkgKiBhbXRfczIzX2QwNV9mb3JtYW50X2N0ciArCiAgICBtcC5zcmMyNChnYXRlKSAqIGFtdF9zMjRfZDA1X2Zvcm1hbnRfY3RyICsKICAgIG1wLnNyYzI1KGdhdGUpICogYW10X3MyNV9kMDVfZm9ybWFudF9jdHIgKwogICAgbXAuc3JjMjYoZ2F0ZSkgKiBhbXRfczI2X2QwNV9mb3JtYW50X2N0ciArCiAgICBtcC5zcmMyNyhnYXRlKSAqIGFtdF9zMjdfZDA1X2Zvcm1hbnRfY3RyICsKICAgIG1wLnNyYzI4KGdhdGUpICogYW10X3MyOF9kMDVfZm9ybWFudF9jdHIgKwogICAgbXAuc3JjMjkoZ2F0ZSkgKiBhbXRfczI5X2QwNV9mb3JtYW50X2N0ciArCiAgICBtcC5zcmMzMChnYXRlKSAqIGFtdF9zMzBfZDA1X2Zvcm1hbnRfY3RyICsKICAgIG1wLnNyYzMxKGdhdGUpICogYW10X3MzMV9kMDVfZm9ybWFudF9jdHIgKwogICAgbXAuc3JjMzIoZ2F0ZSkgKiBhbXRfczMyX2QwNV9mb3JtYW50X2N0ciArCiAgICBtcC5zcmMzMyhnYXRlKSAqIGFtdF9zMzNfZDA1X2Zvcm1hbnRfY3RyICsKICAgIG1wLnNyYzM0KGdhdGUpICogYW10X3MzNF9kMDVfZm9ybWFudF9jdHIgKwogICAgbXAuc3JjMzUoZ2F0ZSkgKiBhbXRfczM1X2QwNV9mb3JtYW50X2N0ciArCiAgICBtcC5zcmMzNihnYXRlKSAqIGFtdF9zMzZfZDA1X2Zvcm1hbnRfY3RyICsKICAgIG1wLnNyYzM3KGdhdGUpICogYW10X3MzN19kMDVfZm9ybWFudF9jdHIgKwogICAgbXAuc3JjMzgoZ2F0ZSkgKiBhbXRfczM4X2QwNV9mb3JtYW50X2N0ciArCiAgICBtcC5zcmMzOShnYXRlKSAqIGFtdF9zMzlfZDA1X2Zvcm1hbnRfY3RyICsKICAgIG1wLnNyYzQwKGdhdGUpICogYW10X3M0MF9kMDVfZm9ybWFudF9jdHIgKwogICAgbXAuc3JjNDEoZ2F0ZSkgKiBhbXRfczQxX2QwNV9mb3JtYW50X2N0ciArCiAgICBtcC5zcmM0MihnYXRlKSAqIGFtdF9zNDJfZDA1X2Zvcm1hbnRfY3RyICsKICAgIG1wLnNyYzQzKGdhdGUpICogYW10X3M0M19kMDVfZm9ybWFudF9jdHIgKwogICAgbXAuc3JjNDQoZ2F0ZSkgKiBhbXRfczQ0X2QwNV9mb3JtYW50X2N0ciArCiAgICBtcC5zcmM0NShnYXRlKSAqIGFtdF9zNDVfZDA1X2Zvcm1hbnRfY3RyICsKICAgIG1wLnNyYzQ2KGdhdGUpICogYW10X3M0Nl9kMDVfZm9ybWFudF9jdHIgKwogICAgbXAuc3JjNDcoZ2F0ZSkgKiBhbXRfczQ3X2QwNV9mb3JtYW50X2N0cjsKCm1vZF9mb3JtYW50X2RlcHRoKGdhdGUpID0KICAgIG1wLnNyYzAwKGdhdGUpICogYW10X3MwMF9kMDZfZm9ybWFudF9kZXB0aCArCiAgICBtcC5zcmMwMShnYXRlKSAqIGFtdF9zMDFfZDA2X2Zvcm1hbnRfZGVwdGggKwogICAgbXAuc3JjMDIoZ2F0ZSkgKiBhbXRfczAyX2QwNl9mb3JtYW50X2RlcHRoICsKICAgIG1wLnNyYzAzKGdhdGUpICogYW10X3MwM19kMDZfZm9ybWFudF9kZXB0aCArCiAgICBtcC5zcmMwNChnYXRlKSAqIGFtdF9zMDRfZDA2X2Zvcm1hbnRfZGVwdGggKwogICAgbXAuc3JjMDUoZ2F0ZSkgKiBhbXRfczA1X2QwNl9mb3JtYW50X2RlcHRoICsKICAgIG1wLnNyYzA2KGdhdGUpICogYW10X3MwNl9kMDZfZm9ybWFudF9kZXB0aCArCiAgICBtcC5zcmMwNyhnYXRlKSAqIGFtdF9zMDdfZDA2X2Zvcm1hbnRfZGVwdGggKwogICAgbXAuc3JjMDgoZ2F0ZSkgKiBhbXRfczA4X2QwNl9mb3JtYW50X2RlcHRoICsKICAgIG1wLnNyYzA5KGdhdGUpICogYW10X3MwOV9kMDZfZm9ybWFudF9kZXB0aCArCiAgICBtcC5zcmMxMChnYXRlKSAqIGFtdF9zMTBfZDA2X2Zvcm1hbnRfZGVwdGggKwogICAgbXAuc3JjMTEoZ2F0ZSkgKiBhbXRfczExX2QwNl9mb3JtYW50X2RlcHRoICsKICAgIG1wLnNyYzEyKGdhdGUpICogYW10X3MxMl9kMDZfZm9ybWFudF9kZXB0aCArCiAgICBtcC5zcmMxMyhnYXRlKSAqIGFtdF9zMTNfZDA2X2Zvcm1hbnRfZGVwdGggKwogICAgbXAuc3JjMTQoZ2F0ZSkgKiBhbXRfczE0X2QwNl9mb3JtYW50X2RlcHRoICsKICAgIG1wLnNyYzE1KGdhdGUpICogYW10X3MxNV9kMDZfZm9ybWFudF9kZXB0aCArCiAgICBtcC5zcmMxNihnYXRlKSAqIGFtdF9zMTZfZDA2X2Zvcm1hbnRfZGVwdGggKwogICAgbXAuc3JjMTcoZ2F0ZSkgKiBhbXRfczE3X2QwNl9mb3JtYW50X2RlcHRoICsKICAgIG1wLnNyYzE4KGdhdGUpICogYW10X3MxOF9kMDZfZm9ybWFudF9kZXB0aCArCiAgICBtcC5zcmMxOShnYXRlKSAqIGFtdF9zMTlfZDA2X2Zvcm1hbnRfZGVwdGggKwogICAgbXAuc3JjMjAoZ2F0ZSkgKiBhbXRfczIwX2QwNl9mb3JtYW50X2RlcHRoICsKICAgIG1wLnNyYzIxKGdhdGUpICogYW10X3MyMV9kMDZfZm9ybWFudF9kZXB0aCArCiAgICBtcC5zcmMyMihnYXRlKSAqIGFtdF9zMjJfZDA2X2Zvcm1hbnRfZGVwdGggKwogICAgbXAuc3JjMjMoZ2F0ZSkgKiBhbXRfczIzX2QwNl9mb3JtYW50X2RlcHRoICsKICAgIG1wLnNyYzI0KGdhdGUpICogYW10X3MyNF9kMDZfZm9ybWFudF9kZXB0aCArCiAgICBtcC5zcmMyNShnYXRlKSAqIGFtdF9zMjVfZDA2X2Zvcm1hbnRfZGVwdGggKwogICAgbXAuc3JjMjYoZ2F0ZSkgKiBhbXRfczI2X2QwNl9mb3JtYW50X2RlcHRoICsKICAgIG1wLnNyYzI3KGdhdGUpICogYW10X3MyN19kMDZfZm9ybWFudF9kZXB0aCArCiAgICBtcC5zcmMyOChnYXRlKSAqIGFtdF9zMjhfZDA2X2Zvcm1hbnRfZGVwdGggKwogICAgbXAuc3JjMjkoZ2F0ZSkgKiBhbXRfczI5X2QwNl9mb3JtYW50X2RlcHRoICsKICAgIG1wLnNyYzMwKGdhdGUpICogYW10X3MzMF9kMDZfZm9ybWFudF9kZXB0aCArCiAgICBtcC5zcmMzMShnYXRlKSAqIGFtdF9zMzFfZDA2X2Zvcm1hbnRfZGVwdGggKwogICAgbXAuc3JjMzIoZ2F0ZSkgKiBhbXRfczMyX2QwNl9mb3JtYW50X2RlcHRoICsKICAgIG1wLnNyYzMzKGdhdGUpICogYW10X3MzM19kMDZfZm9ybWFudF9kZXB0aCArCiAgICBtcC5zcmMzNChnYXRlKSAqIGFtdF9zMzRfZDA2X2Zvcm1hbnRfZGVwdGggKwogICAgbXAuc3JjMzUoZ2F0ZSkgKiBhbXRfczM1X2QwNl9mb3JtYW50X2RlcHRoICsKICAgIG1wLnNyYzM2KGdhdGUpICogYW10X3MzNl9kMDZfZm9ybWFudF9kZXB0aCArCiAgICBtcC5zcmMzNyhnYXRlKSAqIGFtdF9zMzdfZDA2X2Zvcm1hbnRfZGVwdGggKwogICAgbXAuc3JjMzgoZ2F0ZSkgKiBhbXRfczM4X2QwNl9mb3JtYW50X2RlcHRoICsKICAgIG1wLnNyYzM5KGdhdGUpICogYW10X3MzOV9kMDZfZm9ybWFudF9kZXB0aCArCiAgICBtcC5zcmM0MChnYXRlKSAqIGFtdF9zNDBfZDA2X2Zvcm1hbnRfZGVwdGggKwogICAgbXAuc3JjNDEoZ2F0ZSkgKiBhbXRfczQxX2QwNl9mb3JtYW50X2RlcHRoICsKICAgIG1wLnNyYzQyKGdhdGUpICogYW10X3M0Ml9kMDZfZm9ybWFudF9kZXB0aCArCiAgICBtcC5zcmM0MyhnYXRlKSAqIGFtdF9zNDNfZDA2X2Zvcm1hbnRfZGVwdGggKwogICAgbXAuc3JjNDQoZ2F0ZSkgKiBhbXRfczQ0X2QwNl9mb3JtYW50X2RlcHRoICsKICAgIG1wLnNyYzQ1KGdhdGUpICogYW10X3M0NV9kMDZfZm9ybWFudF9kZXB0aCArCiAgICBtcC5zcmM0NihnYXRlKSAqIGFtdF9zNDZfZDA2X2Zvcm1hbnRfZGVwdGggKwogICAgbXAuc3JjNDcoZ2F0ZSkgKiBhbXRfczQ3X2QwNl9mb3JtYW50X2RlcHRoOwoKbW9kX25vaXNlX21peChnYXRlKSA9CiAgICBtcC5zcmMwMChnYXRlKSAqIGFtdF9zMDBfZDA3X25vaXNlX21peCArCiAgICBtcC5zcmMwMShnYXRlKSAqIGFtdF9zMDFfZDA3X25vaXNlX21peCArCiAgICBtcC5zcmMwMihnYXRlKSAqIGFtdF9zMDJfZDA3X25vaXNlX21peCArCiAgICBtcC5zcmMwMyhnYXRlKSAqIGFtdF9zMDNfZDA3X25vaXNlX21peCArCiAgICBtcC5zcmMwNChnYXRlKSAqIGFtdF9zMDRfZDA3X25vaXNlX21peCArCiAgICBtcC5zcmMwNShnYXRlKSAqIGFtdF9zMDVfZDA3X25vaXNlX21peCArCiAgICBtcC5zcmMwNihnYXRlKSAqIGFtdF9zMDZfZDA3X25vaXNlX21peCArCiAgICBtcC5zcmMwNyhnYXRlKSAqIGFtdF9zMDdfZDA3X25vaXNlX21peCArCiAgICBtcC5zcmMwOChnYXRlKSAqIGFtdF9zMDhfZDA3X25vaXNlX21peCArCiAgICBtcC5zcmMwOShnYXRlKSAqIGFtdF9zMDlfZDA3X25vaXNlX21peCArCiAgICBtcC5zcmMxMChnYXRlKSAqIGFtdF9zMTBfZDA3X25vaXNlX21peCArCiAgICBtcC5zcmMxMShnYXRlKSAqIGFtdF9zMTFfZDA3X25vaXNlX21peCArCiAgICBtcC5zcmMxMihnYXRlKSAqIGFtdF9zMTJfZDA3X25vaXNlX21peCArCiAgICBtcC5zcmMxMyhnYXRlKSAqIGFtdF9zMTNfZDA3X25vaXNlX21peCArCiAgICBtcC5zcmMxNChnYXRlKSAqIGFtdF9zMTRfZDA3X25vaXNlX21peCArCiAgICBtcC5zcmMxNShnYXRlKSAqIGFtdF9zMTVfZDA3X25vaXNlX21peCArCiAgICBtcC5zcmMxNihnYXRlKSAqIGFtdF9zMTZfZDA3X25vaXNlX21peCArCiAgICBtcC5zcmMxNyhnYXRlKSAqIGFtdF9zMTdfZDA3X25vaXNlX21peCArCiAgICBtcC5zcmMxOChnYXRlKSAqIGFtdF9zMThfZDA3X25vaXNlX21peCArCiAgICBtcC5zcmMxOShnYXRlKSAqIGFtdF9zMTlfZDA3X25vaXNlX21peCArCiAgICBtcC5zcmMyMChnYXRlKSAqIGFtdF9zMjBfZDA3X25vaXNlX21peCArCiAgICBtcC5zcmMyMShnYXRlKSAqIGFtdF9zMjFfZDA3X25vaXNlX21peCArCiAgICBtcC5zcmMyMihnYXRlKSAqIGFtdF9zMjJfZDA3X25vaXNlX21peCArCiAgICBtcC5zcmMyMyhnYXRlKSAqIGFtdF9zMjNfZDA3X25vaXNlX21peCArCiAgICBtcC5zcmMyNChnYXRlKSAqIGFtdF9zMjRfZDA3X25vaXNlX21peCArCiAgICBtcC5zcmMyNShnYXRlKSAqIGFtdF9zMjVfZDA3X25vaXNlX21peCArCiAgICBtcC5zcmMyNihnYXRlKSAqIGFtdF9zMjZfZDA3X25vaXNlX21peCArCiAgICBtcC5zcmMyNyhnYXRlKSAqIGFtdF9zMjdfZDA3X25vaXNlX21peCArCiAgICBtcC5zcmMyOChnYXRlKSAqIGFtdF9zMjhfZDA3X25vaXNlX21peCArCiAgICBtcC5zcmMyOShnYXRlKSAqIGFtdF9zMjlfZDA3X25vaXNlX21peCArCiAgICBtcC5zcmMzMChnYXRlKSAqIGFtdF9zMzBfZDA3X25vaXNlX21peCArCiAgICBtcC5zcmMzMShnYXRlKSAqIGFtdF9zMzFfZDA3X25vaXNlX21peCArCiAgICBtcC5zcmMzMihnYXRlKSAqIGFtdF9zMzJfZDA3X25vaXNlX21peCArCiAgICBtcC5zcmMzMyhnYXRlKSAqIGFtdF9zMzNfZDA3X25vaXNlX21peCArCiAgICBtcC5zcmMzNChnYXRlKSAqIGFtdF9zMzRfZDA3X25vaXNlX21peCArCiAgICBtcC5zcmMzNShnYXRlKSAqIGFtdF9zMzVfZDA3X25vaXNlX21peCArCiAgICBtcC5zcmMzNihnYXRlKSAqIGFtdF9zMzZfZDA3X25vaXNlX21peCArCiAgICBtcC5zcmMzNyhnYXRlKSAqIGFtdF9zMzdfZDA3X25vaXNlX21peCArCiAgICBtcC5zcmMzOChnYXRlKSAqIGFtdF9zMzhfZDA3X25vaXNlX21peCArCiAgICBtcC5zcmMzOShnYXRlKSAqIGFtdF9zMzlfZDA3X25vaXNlX21peCArCiAgICBtcC5zcmM0MChnYXRlKSAqIGFtdF9zNDBfZDA3X25vaXNlX21peCArCiAgICBtcC5zcmM0MShnYXRlKSAqIGFtdF9zNDFfZDA3X25vaXNlX21peCArCiAgICBtcC5zcmM0MihnYXRlKSAqIGFtdF9zNDJfZDA3X25vaXNlX21peCArCiAgICBtcC5zcmM0MyhnYXRlKSAqIGFtdF9zNDNfZDA3X25vaXNlX21peCArCiAgICBtcC5zcmM0NChnYXRlKSAqIGFtdF9zNDRfZDA3X25vaXNlX21peCArCiAgICBtcC5zcmM0NShnYXRlKSAqIGFtdF9zNDVfZDA3X25vaXNlX21peCArCiAgICBtcC5zcmM0NihnYXRlKSAqIGFtdF9zNDZfZDA3X25vaXNlX21peCArCiAgICBtcC5zcmM0NyhnYXRlKSAqIGFtdF9zNDdfZDA3X25vaXNlX21peDsKCm1vZF9hbXAoZ2F0ZSkgPQogICAgbXAuc3JjMDAoZ2F0ZSkgKiBhbXRfczAwX2QwOF9hbXAgKwogICAgbXAuc3JjMDEoZ2F0ZSkgKiBhbXRfczAxX2QwOF9hbXAgKwogICAgbXAuc3JjMDIoZ2F0ZSkgKiBhbXRfczAyX2QwOF9hbXAgKwogICAgbXAuc3JjMDMoZ2F0ZSkgKiBhbXRfczAzX2QwOF9hbXAgKwogICAgbXAuc3JjMDQoZ2F0ZSkgKiBhbXRfczA0X2QwOF9hbXAgKwogICAgbXAuc3JjMDUoZ2F0ZSkgKiBhbXRfczA1X2QwOF9hbXAgKwogICAgbXAuc3JjMDYoZ2F0ZSkgKiBhbXRfczA2X2QwOF9hbXAgKwogICAgbXAuc3JjMDcoZ2F0ZSkgKiBhbXRfczA3X2QwOF9hbXAgKwogICAgbXAuc3JjMDgoZ2F0ZSkgKiBhbXRfczA4X2QwOF9hbXAgKwogICAgbXAuc3JjMDkoZ2F0ZSkgKiBhbXRfczA5X2QwOF9hbXAgKwogICAgbXAuc3JjMTAoZ2F0ZSkgKiBhbXRfczEwX2QwOF9hbXAgKwogICAgbXAuc3JjMTEoZ2F0ZSkgKiBhbXRfczExX2QwOF9hbXAgKwogICAgbXAuc3JjMTIoZ2F0ZSkgKiBhbXRfczEyX2QwOF9hbXAgKwogICAgbXAuc3JjMTMoZ2F0ZSkgKiBhbXRfczEzX2QwOF9hbXAgKwogICAgbXAuc3JjMTQoZ2F0ZSkgKiBhbXRfczE0X2QwOF9hbXAgKwogICAgbXAuc3JjMTUoZ2F0ZSkgKiBhbXRfczE1X2QwOF9hbXAgKwogICAgbXAuc3JjMTYoZ2F0ZSkgKiBhbXRfczE2X2QwOF9hbXAgKwogICAgbXAuc3JjMTcoZ2F0ZSkgKiBhbXRfczE3X2QwOF9hbXAgKwogICAgbXAuc3JjMTgoZ2F0ZSkgKiBhbXRfczE4X2QwOF9hbXAgKwogICAgbXAuc3JjMTkoZ2F0ZSkgKiBhbXRfczE5X2QwOF9hbXAgKwogICAgbXAuc3JjMjAoZ2F0ZSkgKiBhbXRfczIwX2QwOF9hbXAgKwogICAgbXAuc3JjMjEoZ2F0ZSkgKiBhbXRfczIxX2QwOF9hbXAgKwogICAgbXAuc3JjMjIoZ2F0ZSkgKiBhbXRfczIyX2QwOF9hbXAgKwogICAgbXAuc3JjMjMoZ2F0ZSkgKiBhbXRfczIzX2QwOF9hbXAgKwogICAgbXAuc3JjMjQoZ2F0ZSkgKiBhbXRfczI0X2QwOF9hbXAgKwogICAgbXAuc3JjMjUoZ2F0ZSkgKiBhbXRfczI1X2QwOF9hbXAgKwogICAgbXAuc3JjMjYoZ2F0ZSkgKiBhbXRfczI2X2QwOF9hbXAgKwogICAgbXAuc3JjMjcoZ2F0ZSkgKiBhbXRfczI3X2QwOF9hbXAgKwogICAgbXAuc3JjMjgoZ2F0ZSkgKiBhbXRfczI4X2QwOF9hbXAgKwogICAgbXAuc3JjMjkoZ2F0ZSkgKiBhbXRfczI5X2QwOF9hbXAgKwogICAgbXAuc3JjMzAoZ2F0ZSkgKiBhbXRfczMwX2QwOF9hbXAgKwogICAgbXAuc3JjMzEoZ2F0ZSkgKiBhbXRfczMxX2QwOF9hbXAgKwogICAgbXAuc3JjMzIoZ2F0ZSkgKiBhbXRfczMyX2QwOF9hbXAgKwogICAgbXAuc3JjMzMoZ2F0ZSkgKiBhbXRfczMzX2QwOF9hbXAgKwogICAgbXAuc3JjMzQoZ2F0ZSkgKiBhbXRfczM0X2QwOF9hbXAgKwogICAgbXAuc3JjMzUoZ2F0ZSkgKiBhbXRfczM1X2QwOF9hbXAgKwogICAgbXAuc3JjMzYoZ2F0ZSkgKiBhbXRfczM2X2QwOF9hbXAgKwogICAgbXAuc3JjMzcoZ2F0ZSkgKiBhbXRfczM3X2QwOF9hbXAgKwogICAgbXAuc3JjMzgoZ2F0ZSkgKiBhbXRfczM4X2QwOF9hbXAgKwogICAgbXAuc3JjMzkoZ2F0ZSkgKiBhbXRfczM5X2QwOF9hbXAgKwogICAgbXAuc3JjNDAoZ2F0ZSkgKiBhbXRfczQwX2QwOF9hbXAgKwogICAgbXAuc3JjNDEoZ2F0ZSkgKiBhbXRfczQxX2QwOF9hbXAgKwogICAgbXAuc3JjNDIoZ2F0ZSkgKiBhbXRfczQyX2QwOF9hbXAgKwogICAgbXAuc3JjNDMoZ2F0ZSkgKiBhbXRfczQzX2QwOF9hbXAgKwogICAgbXAuc3JjNDQoZ2F0ZSkgKiBhbXRfczQ0X2QwOF9hbXAgKwogICAgbXAuc3JjNDUoZ2F0ZSkgKiBhbXRfczQ1X2QwOF9hbXAgKwogICAgbXAuc3JjNDYoZ2F0ZSkgKiBhbXRfczQ2X2QwOF9hbXAgKwogICAgbXAuc3JjNDcoZ2F0ZSkgKiBhbXRfczQ3X2QwOF9hbXA7Cgptb2RfcGFuKGdhdGUpID0KICAgIG1wLnNyYzAwKGdhdGUpICogYW10X3MwMF9kMDlfcGFuICsKICAgIG1wLnNyYzAxKGdhdGUpICogYW10X3MwMV9kMDlfcGFuICsKICAgIG1wLnNyYzAyKGdhdGUpICogYW10X3MwMl9kMDlfcGFuICsKICAgIG1wLnNyYzAzKGdhdGUpICogYW10X3MwM19kMDlfcGFuICsKICAgIG1wLnNyYzA0KGdhdGUpICogYW10X3MwNF9kMDlfcGFuICsKICAgIG1wLnNyYzA1KGdhdGUpICogYW10X3MwNV9kMDlfcGFuICsKICAgIG1wLnNyYzA2KGdhdGUpICogYW10X3MwNl9kMDlfcGFuICsKICAgIG1wLnNyYzA3KGdhdGUpICogYW10X3MwN19kMDlfcGFuICsKICAgIG1wLnNyYzA4KGdhdGUpICogYW10X3MwOF9kMDlfcGFuICsKICAgIG1wLnNyYzA5KGdhdGUpICogYW10X3MwOV9kMDlfcGFuICsKICAgIG1wLnNyYzEwKGdhdGUpICogYW10X3MxMF9kMDlfcGFuICsKICAgIG1wLnNyYzExKGdhdGUpICogYW10X3MxMV9kMDlfcGFuICsKICAgIG1wLnNyYzEyKGdhdGUpICogYW10X3MxMl9kMDlfcGFuICsKICAgIG1wLnNyYzEzKGdhdGUpICogYW10X3MxM19kMDlfcGFuICsKICAgIG1wLnNyYzE0KGdhdGUpICogYW10X3MxNF9kMDlfcGFuICsKICAgIG1wLnNyYzE1KGdhdGUpICogYW10X3MxNV9kMDlfcGFuICsKICAgIG1wLnNyYzE2KGdhdGUpICogYW10X3MxNl9kMDlfcGFuICsKICAgIG1wLnNyYzE3KGdhdGUpICogYW10X3MxN19kMDlfcGFuICsKICAgIG1wLnNyYzE4KGdhdGUpICogYW10X3MxOF9kMDlfcGFuICsKICAgIG1wLnNyYzE5KGdhdGUpICogYW10X3MxOV9kMDlfcGFuICsKICAgIG1wLnNyYzIwKGdhdGUpICogYW10X3MyMF9kMDlfcGFuICsKICAgIG1wLnNyYzIxKGdhdGUpICogYW10X3MyMV9kMDlfcGFuICsKICAgIG1wLnNyYzIyKGdhdGUpICogYW10X3MyMl9kMDlfcGFuICsKICAgIG1wLnNyYzIzKGdhdGUpICogYW10X3MyM19kMDlfcGFuICsKICAgIG1wLnNyYzI0KGdhdGUpICogYW10X3MyNF9kMDlfcGFuICsKICAgIG1wLnNyYzI1KGdhdGUpICogYW10X3MyNV9kMDlfcGFuICsKICAgIG1wLnNyYzI2KGdhdGUpICogYW10X3MyNl9kMDlfcGFuICsKICAgIG1wLnNyYzI3KGdhdGUpICogYW10X3MyN19kMDlfcGFuICsKICAgIG1wLnNyYzI4KGdhdGUpICogYW10X3MyOF9kMDlfcGFuICsKICAgIG1wLnNyYzI5KGdhdGUpICogYW10X3MyOV9kMDlfcGFuICsKICAgIG1wLnNyYzMwKGdhdGUpICogYW10X3MzMF9kMDlfcGFuICsKICAgIG1wLnNyYzMxKGdhdGUpICogYW10X3MzMV9kMDlfcGFuICsKICAgIG1wLnNyYzMyKGdhdGUpICogYW10X3MzMl9kMDlfcGFuICsKICAgIG1wLnNyYzMzKGdhdGUpICogYW10X3MzM19kMDlfcGFuICsKICAgIG1wLnNyYzM0KGdhdGUpICogYW10X3MzNF9kMDlfcGFuICsKICAgIG1wLnNyYzM1KGdhdGUpICogYW10X3MzNV9kMDlfcGFuICsKICAgIG1wLnNyYzM2KGdhdGUpICogYW10X3MzNl9kMDlfcGFuICsKICAgIG1wLnNyYzM3KGdhdGUpICogYW10X3MzN19kMDlfcGFuICsKICAgIG1wLnNyYzM4KGdhdGUpICogYW10X3MzOF9kMDlfcGFuICsKICAgIG1wLnNyYzM5KGdhdGUpICogYW10X3MzOV9kMDlfcGFuICsKICAgIG1wLnNyYzQwKGdhdGUpICogYW10X3M0MF9kMDlfcGFuICsKICAgIG1wLnNyYzQxKGdhdGUpICogYW10X3M0MV9kMDlfcGFuICsKICAgIG1wLnNyYzQyKGdhdGUpICogYW10X3M0Ml9kMDlfcGFuICsKICAgIG1wLnNyYzQzKGdhdGUpICogYW10X3M0M19kMDlfcGFuICsKICAgIG1wLnNyYzQ0KGdhdGUpICogYW10X3M0NF9kMDlfcGFuICsKICAgIG1wLnNyYzQ1KGdhdGUpICogYW10X3M0NV9kMDlfcGFuICsKICAgIG1wLnNyYzQ2KGdhdGUpICogYW10X3M0Nl9kMDlfcGFuICsKICAgIG1wLnNyYzQ3KGdhdGUpICogYW10X3M0N19kMDlfcGFuOwoKLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi8vIERlcml2ZWQgc2lnbmFscwovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCk4gID0gNjQ7ClBJID0gbWEuUEk7CgpjZW50MnJhdGlvKGMpID0gcG93KDIuMCwgYyAvIDEyMDAuMCk7CnNlbWkycmF0aW8ocykgPSBwb3coMi4wLCBzIC8gMTIuMCk7CgovLyBQaXRjaDogbW9kdWxhdGlvbiAoc2VtaXRvbmVzKSwgbm8gZ2xpZGUKZmluZV9yYXRpbyAgPSBjZW50MnJhdGlvKGZpbmVfdHVuZSk7CnBpdGNoX3JhdGlvID0gc2VtaTJyYXRpbyhtb2RfcGl0Y2goZ2F0ZSkgKiAxMi4wKTsKYmFzZV9mcmVxICAgPSBmcmVxICogZmluZV9yYXRpbyAqIHBpdGNoX3JhdGlvOwoKLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi8vIFBlci1oYXJtb25pYyBiYXNlIGFtcGxpdHVkZSBmcm9tIGdyb3VwIHNsaWRlcnMKLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmdyb3VwX2FtcChrKSA9CiAgYmEuaWYoayA9PSAxLCBoMV9hbXAsCiAgYmEuaWYoayA9PSAyLCBoMl9hbXAsCiAgYmEuaWYoayA9PSAzLCBoM19hbXAsCiAgYmEuaWYoayA9PSA0LCBoNF9hbXAsCiAgYmEuaWYoayA9PSA1LCBoNV9hbXAsCiAgYmEuaWYoayA9PSA2LCBoNl9hbXAsCiAgYmEuaWYoayA9PSA3LCBoN19hbXAsCiAgYmEuaWYoayA9PSA4LCBoOF9hbXAsCiAgYmEuaWYoayA8PSAxNiwgaDlfMTZfYW1wLAogIGJhLmlmKGsgPD0gMzIsIGgxN18zMl9hbXAsCiAgICAgICAgICAgICAgICAgaDMzXzY0X2FtcCkpKSkpKSkpKSk7CgovLyBTcGVjdHJhbCB0aWx0IChtb2R1bGF0ZWQpIOKAlCBhbXAgKj0ga150aWx0CmVmZl90aWx0ID0gc3BlY3RyYWxfdGlsdCArIG1vZF90aWx0KGdhdGUpOwp0aWx0X2ZhY3RvcihrKSA9IHBvdyhmbG9hdChrKSwgZWZmX3RpbHQpOwoKLy8gT2RkL2V2ZW4gYmFsYW5jZSAobW9kdWxhdGVkLCBjbGFtcGVkKQplZmZfb2RkX2V2ZW4gID0gbWF4KDAuMCwgbWluKDEuMCwgb2RkX2V2ZW4gKyBtb2Rfb2RkX2V2ZW4oZ2F0ZSkpKTsKb2RkX3dlaWdodCAgICA9ICgxLjAgLSBlZmZfb2RkX2V2ZW4pICogMi4wOwpldmVuX3dlaWdodCAgID0gZWZmX29kZF9ldmVuICogMi4wOwpvZGRfZXZlbl9mYWN0b3IoaykgPSBiYS5pZihrICUgMiA9PSAwLCBldmVuX3dlaWdodCwgb2RkX3dlaWdodCk7CgovLyBCcmlnaHRuZXNzIGRlc3RpbmF0aW9uOiBwcm9ncmVzc2l2ZSBib29zdC9jdXQgb24gdXBwZXIgcGFydGlhbHMuCi8vIGJyaWdodF9ibGVuZChrKTogMCBhdCBrPTEsIDEgYXQgaz1OLiBtb2RfYnJpZ2h0IGlzIFstMSwrMV0uCi8vIGZhY3RvcihrKSA9IDEgKyBicmlnaHRfYmxlbmQoaykgKiBtb2RfYnJpZ2h0LiBBdCBtb2Q9MCAtPiB1bml0eSAobmV1dHJhbCkuCmJyaWdodF9ibGVuZChrKSAgPSBmbG9hdChrIC0gMSkgLyBmbG9hdChOIC0gMSk7Cm1iICAgICAgICAgICAgICAgPSBtb2RfYnJpZ2h0KGdhdGUpOwpicmlnaHRfZmFjdG9yKGspID0gMS4wICsgYnJpZ2h0X2JsZW5kKGspICogbWI7CgovLyBJbmhhcm1vbmljaXR5IChtb2R1bGF0ZWQsIGNsYW1wZWQgdG8ga2VlcCBwYXJ0aWFscyBtb25vdG9uaWMpCmVmZl9pbmhhcm0gICAgICAgPSBtYXgoMC4wLCBtaW4oMC4yLCBpbmhhcm1vbmljaXR5ICsgbW9kX2luaGFybW9uaWNpdHkoZ2F0ZSkgKiAwLjE1KSk7CgovLyBGb3JtYW50IGNlbnRyZXMgKG1vZHVsYXRlZCB0b2dldGhlciDigJQgbW9kX2Zvcm1hbnRfY3RyIHNoaWZ0cyBib3RoIGJ5IHNhbWUgYW10KQplZmZfZm9ybWFudF9zaGlmdCA9IG1vZF9mb3JtYW50X2N0cihnYXRlKSAqIDguMDsgICAgIC8vIMKxOCBoYXJtb25pY3MKZWZmX2YxICAgICAgICAgICAgPSBtYXgoMS4wLCBtaW4oMzIuMCwgZm9ybWFudDFfZnJlcSArIGVmZl9mb3JtYW50X3NoaWZ0KSk7CmVmZl9mMiAgICAgICAgICAgID0gbWF4KDEuMCwgbWluKDMyLjAsIGZvcm1hbnQyX2ZyZXEgKyBlZmZfZm9ybWFudF9zaGlmdCkpOwplZmZfZm9ybWFudF9kZXB0aCA9IG1heCgwLjAsIG1pbigxLjAsIGZvcm1hbnRfZGVwdGggKyBtb2RfZm9ybWFudF9kZXB0aChnYXRlKSkpOwoKLy8gRm9ybWFudCBzaGFwaW5nIOKAlCB0d28gR2F1c3NpYW4gYnVtcHMgaW4gaGFybW9uaWMtaW5kZXggc3BhY2UKc2lnbWFfc3EgPSAxLjUgKiAxLjU7CmZvcm1hbnRfYnVtcChrLCBjdHIpID0gZXhwKC0wLjUgKiAoZmxvYXQoaykgLSBjdHIpICogKGZsb2F0KGspIC0gY3RyKSAvIHNpZ21hX3NxKTsKZm9ybWFudF9mYWN0b3IoaykgPQogIDEuMCArIGVmZl9mb3JtYW50X2RlcHRoICogKGZvcm1hbnRfYnVtcChrLCBlZmZfZjEpICsgZm9ybWFudF9idW1wKGssIGVmZl9mMikpOwoKLy8gQ29tYmluZWQgcGVyLWhhcm1vbmljIGFtcGxpdHVkZQpoYXJtX2FtcChrKSA9CiAgZ3JvdXBfYW1wKGspICogdGlsdF9mYWN0b3IoaykgKiBvZGRfZXZlbl9mYWN0b3IoaykgKgogIGJyaWdodF9mYWN0b3IoaykgKiBmb3JtYW50X2ZhY3RvcihrKTsKCi8vIEluaGFybW9uaWMgcGFydGlhbCBmcmVxdWVuY3k6IGZyZXFfayA9IGsqZjAqKDEgKyBCKihrXjIgLSAxKSkKaGFybV9mcmVxKGspID0gYmFzZV9mcmVxICogZmxvYXQoaykKICAgICAgICAgICAgICAgKiAoMS4wICsgZWZmX2luaGFybSAqIChmbG9hdChrKSAqIGZsb2F0KGspIC0gMS4wKSk7CgovLyBTdGVyZW8gc3ByZWFkIOKAlCBSIGNoYW5uZWwgZ2V0cyBhIHNtYWxsIHBlci1oYXJtb25pYyBwaXRjaCBvZmZzZXQKc3RlcmVvX3NwcmVhZF9mcmVxKGspID0gc3RlcmVvX3BoYXNlX3NwcmVhZCAqIGZsb2F0KGspICogMC4wMTsKCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQovLyBBZGRpdGl2ZSBvc2NpbGxhdG9yIHN1bXMg4oCUIEwgYW5kIFIKLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmFkZGl0aXZlX0wgPSBzdW0oaywgTiwgaGFybV9hbXAoaysxKSAqIG9zLm9zYyhoYXJtX2ZyZXEoaysxKSkpOwphZGRpdGl2ZV9SID0gc3VtKGssIE4sCiAgaGFybV9hbXAoaysxKSAqIG9zLm9zYyhoYXJtX2ZyZXEoaysxKSAqICgxLjAgKyBzdGVyZW9fc3ByZWFkX2ZyZXEoaysxKSkpKTsKCi8vIFN1Yi1oYXJtb25pYyAoMC41w5cgZnVuZGFtZW50YWwpCnN1Yl9vc2MgPSBzdWJfaGFybW9uaWMgKiBvcy5vc2MoYmFzZV9mcmVxICogMC41KTsKCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQovLyBOb2lzZSBmbG9vciDigJQgY29sb3VyZWQgdmlhIG9uZS1wb2xlIExQCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQplZmZfbm9pc2UgPSBtYXgoMC4wLCBtaW4oMS4wLCBub2lzZV9mbG9vciArIG1vZF9ub2lzZV9taXgoZ2F0ZSkpKTsKbm9pc2VfbHBfY3V0b2ZmID0gMjAwLjAgKyAoMS4wIC0gbm9pc2VfY29sb3IpICogMTk4MDAuMDsKbm9pc2Vfc2lnbmFsICAgID0gbm8ubm9pc2UgOiBmaS5sb3dwYXNzKDEsIG5vaXNlX2xwX2N1dG9mZik7Cm5vaXNlX291dCAgICAgICA9IGVmZl9ub2lzZSAqIG5vaXNlX3NpZ25hbDsKCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQovLyBTb2Z0LWNsaXAgc2F0dXJhdGlvbiDigJQgdGFuaCB3YXZlc2hhcGVyCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpkcml2ZSAgICAgICA9IDEuMCArIHNhdHVyYXRpb24gKiA5LjA7CnNvZnRjbGlwKHgpID0gbWEudGFuaCh4ICogZHJpdmUpIC8gZHJpdmU7CgovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLy8gVmVsb2NpdHkgZ2FpbiDigJQga2VlcHMgX3ZlbCBhbGl2ZSBpbiB0aGUgSlNPTiBkZXNjcmlwdG9yCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQp2ZWxfZ2FpbiA9ICgxLjAgLSAwLjMpICsgMC4zICogdmVsOwoKLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi8vIEFtcGxpdHVkZSBhbmQgcGFuIChib3RoIG1vZC1kcml2ZW4pCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQphbXBfdmFsID0gbWF4KDAuMCwgbWluKDEuMCwgbW9kX2FtcChnYXRlKSkpICogbGV2ZWwgKiB2ZWxfZ2FpbjsKcGFuX3ZhbCA9IG1heCgtMS4wLCBtaW4oMS4wLCBtYXN0ZXJfcGFuICsgbW9kX3BhbihnYXRlKSkpOwoKcGFuX2wgPSBjb3MoKHBhbl92YWwgKyAxLjApICogMC4yNSAqIG1hLlBJKTsKcGFuX3IgPSBzaW4oKHBhbl92YWwgKyAxLjApICogMC4yNSAqIG1hLlBJKTsKCnJhd19MID0gKGFkZGl0aXZlX0wgKyBzdWJfb3NjICsgbm9pc2Vfb3V0KSAqIGFtcF92YWw7CnJhd19SID0gKGFkZGl0aXZlX1IgKyBzdWJfb3NjICsgbm9pc2Vfb3V0KSAqIGFtcF92YWw7CgpzaWduYWxfTCA9IHNvZnRjbGlwKHJhd19MKSAqIHBhbl9sOwpzaWduYWxfUiA9IHNvZnRjbGlwKHJhd19SKSAqIHBhbl9yOwoKcHJvY2VzcyA9IHNpZ25hbF9MLCBzaWduYWxfUjsK","inputs": 0,"outputs": 2,"meta": [ { "basics.lib/name": "Faust Basic Element Library" },{ "basics.lib/version": "1.21.0" },{ "compile_options": "-lang wasm -ct 1 -cn modular_additive -es 1 -mcd 16 -mdd 1024 -mdy 33 -single -ftz 0" },{ "envelopes.lib/adsr:author": "Yann Orlarey and Andrey Bundin" },{ "envelopes.lib/author": "GRAME" },{ "envelopes.lib/copyright": "GRAME" },{ "envelopes.lib/license": "LGPL with exception" },{ "envelopes.lib/name": "Faust Envelope Library" },{ "envelopes.lib/version": "1.3.0" },{ "filename": "modular-additive.dsp" },{ "filters.lib/lowpass0_highpass1": "MIT-style STK-4.3 license" },{ "filters.lib/lowpass0_highpass1:author": "Julius O. Smith III" },{ "filters.lib/lowpass:author": "Julius O. Smith III" },{ "filters.lib/lowpass:copyright": "Copyright (C) 2003-2019 by Julius O. Smith III " },{ "filters.lib/lowpass:license": "MIT-style STK-4.3 license" },{ "filters.lib/name": "Faust Filters Library" },{ "filters.lib/tf1:author": "Julius O. Smith III" },{ "filters.lib/tf1:copyright": "Copyright (C) 2003-2019 by Julius O. Smith III " },{ "filters.lib/tf1:license": "MIT-style STK-4.3 license" },{ "filters.lib/tf1s:author": "Julius O. Smith III" },{ "filters.lib/tf1s:copyright": "Copyright (C) 2003-2019 by Julius O. Smith III " },{ "filters.lib/tf1s:license": "MIT-style STK-4.3 license" },{ "filters.lib/version": "1.7.1" },{ "maths.lib/author": "GRAME" },{ "maths.lib/copyright": "GRAME" },{ "maths.lib/license": "LGPL with exception" },{ "maths.lib/name": "Faust Math Library" },{ "maths.lib/version": "2.8.1" },{ "name": "modular-additive" },{ "noises.lib/name": "Faust Noise Generator Library" },{ "noises.lib/version": "1.4.1" },{ "oscillators.lib/lf_sawpos:author": "Bart Brouns, revised by Stéphane Letz" },{ "oscillators.lib/lf_sawpos:licence": "STK-4.3" },{ "oscillators.lib/lf_triangle:author": "Bart Brouns" },{ "oscillators.lib/lf_triangle:licence": "STK-4.3" },{ "oscillators.lib/name": "Faust Oscillator Library" },{ "oscillators.lib/saw1:author": "Bart Brouns" },{ "oscillators.lib/saw1:licence": "STK-4.3" },{ "oscillators.lib/version": "1.6.0" },{ "platform.lib/name": "Generic Platform Library" },{ "platform.lib/version": "1.3.0" },{ "signals.lib/name": "Faust Signal Routing Library" },{ "signals.lib/version": "1.6.0" }],"ui": [ {"type": "vgroup","label": "modular-additive","items": [ {"type": "hslider","label": "0_Hidden/_vel","varname": "fHslider225","shortname": "0_Hidden_vel","address": "/modular-additive/0_Hidden__vel","index": 263356,"meta": [{ "hidden": "1" }],"init": 0.7,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "0_Hidden/freq","varname": "fHslider373","shortname": "0_Hidden_freq","address": "/modular-additive/0_Hidden_freq","index": 263984,"meta": [{ "hidden": "1" },{ "unit": "Hz" }],"init": 220,"min": 20,"max": 4000,"step": 0.01},{"type": "button","label": "0_Hidden/gate","varname": "fButton0","shortname": "0_Hidden_gate","address": "/modular-additive/0_Hidden_gate","index": 262932,"meta": [{ "hidden": "1" }]},{"type": "hslider","label": "1_Spectral/00_h1_amp","varname": "fHslider679","shortname": "1_Spectral_00_h1_amp","address": "/modular-additive/1_Spectral_00_h1_amp","index": 265984,"init": 0.8,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "1_Spectral/01_h2_amp","varname": "fHslider678","shortname": "1_Spectral_01_h2_amp","address": "/modular-additive/1_Spectral_01_h2_amp","index": 265972,"init": 0.5,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "1_Spectral/02_h3_amp","varname": "fHslider677","shortname": "1_Spectral_02_h3_amp","address": "/modular-additive/1_Spectral_02_h3_amp","index": 265956,"init": 0.35,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "1_Spectral/03_h4_amp","varname": "fHslider676","shortname": "1_Spectral_03_h4_amp","address": "/modular-additive/1_Spectral_03_h4_amp","index": 265940,"init": 0.25,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "1_Spectral/04_h5_amp","varname": "fHslider675","shortname": "1_Spectral_04_h5_amp","address": "/modular-additive/1_Spectral_04_h5_amp","index": 265924,"init": 0.18,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "1_Spectral/05_h6_amp","varname": "fHslider674","shortname": "1_Spectral_05_h6_amp","address": "/modular-additive/1_Spectral_05_h6_amp","index": 265908,"init": 0.12,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "1_Spectral/06_h7_amp","varname": "fHslider673","shortname": "1_Spectral_06_h7_amp","address": "/modular-additive/1_Spectral_06_h7_amp","index": 265892,"init": 0.08,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "1_Spectral/07_h8_amp","varname": "fHslider672","shortname": "1_Spectral_07_h8_amp","address": "/modular-additive/1_Spectral_07_h8_amp","index": 265876,"init": 0.06,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "1_Spectral/08_h9_16_amp","varname": "fHslider671","shortname": "1_Spectral_08_h9_16_amp","address": "/modular-additive/1_Spectral_08_h9_16_amp","index": 265776,"init": 0.05,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "1_Spectral/09_h17_32_amp","varname": "fHslider670","shortname": "1_Spectral_09_h17_32_amp","address": "/modular-additive/1_Spectral_09_h17_32_amp","index": 265580,"init": 0.025,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "1_Spectral/10_h33_64_amp","varname": "fHslider669","shortname": "1_Spectral_10_h33_64_amp","address": "/modular-additive/1_Spectral_10_h33_64_amp","index": 265192,"init": 0.01,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "1_Spectral/11_spectral_tilt","varname": "fHslider619","shortname": "1_Spectral_11_spectral_tilt","address": "/modular-additive/1_Spectral_11_spectral_tilt","index": 264992,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "1_Spectral/12_inharmonicity","varname": "fHslider423","shortname": "1_Spectral_12_inharmonicity","address": "/modular-additive/1_Spectral_12_inharmonicity","index": 264196,"init": 0,"min": 0,"max": 0.15,"step": 0.0001},{"type": "hslider","label": "1_Spectral/13_odd_even","varname": "fHslider668","shortname": "1_Spectral_13_odd_even","address": "/modular-additive/1_Spectral_13_odd_even","index": 265188,"init": 0.5,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "2_Formants/00_formant1_freq","varname": "fHslider473","shortname": "2_Formants_00_formant1_freq","address": "/modular-additive/2_Formants_00_formant1_freq","index": 264408,"meta": [{ "tooltip": "Formant 1 harmonic idx" }],"init": 3,"min": 1,"max": 16,"step": 0.01},{"type": "hslider","label": "2_Formants/01_formant2_freq","varname": "fHslider472","shortname": "2_Formants_01_formant2_freq","address": "/modular-additive/2_Formants_01_formant2_freq","index": 264404,"meta": [{ "tooltip": "Formant 2 harmonic idx" }],"init": 6,"min": 1,"max": 16,"step": 0.01},{"type": "hslider","label": "2_Formants/02_formant_depth","varname": "fHslider522","shortname": "2_Formants_02_formant_depth","address": "/modular-additive/2_Formants_02_formant_depth","index": 264604,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "2_Formants/03_noise_floor","varname": "fHslider322","shortname": "2_Formants_03_noise_floor","address": "/modular-additive/2_Formants_03_noise_floor","index": 263752,"init": 0,"min": 0,"max": 0.2,"step": 0.001},{"type": "hslider","label": "2_Formants/04_noise_color","varname": "fHslider323","shortname": "2_Formants_04_noise_color","address": "/modular-additive/2_Formants_04_noise_color","index": 263756,"init": 0.5,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "2_Formants/05_sub_harmonic","varname": "fHslider374","shortname": "2_Formants_05_sub_harmonic","address": "/modular-additive/2_Formants_05_sub_harmonic","index": 264000,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "3_Master/00_level","varname": "fHslider681","shortname": "3_Master_00_level","address": "/modular-additive/3_Master_00_level","index": 265992,"init": 0.7,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "3_Master/01_fine_tune","varname": "fHslider372","shortname": "3_Master_01_fine_tune","address": "/modular-additive/3_Master_01_fine_tune","index": 263980,"meta": [{ "unit": "ct" }],"init": 0,"min": -50,"max": 50,"step": 0.1},{"type": "hslider","label": "3_Master/02_saturation","varname": "fHslider680","shortname": "3_Master_02_saturation","address": "/modular-additive/3_Master_02_saturation","index": 265988,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "3_Master/03_stereo_phase_spread","varname": "fHslider682","shortname": "3_Master_03_stereo_phase_spread","address": "/modular-additive/3_Master_03_stereo_phase_spread","index": 265996,"init": 0.1,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "3_Master/04_master_pan","varname": "fHslider224","shortname": "3_Master_04_master_pan","address": "/modular-additive/3_Master_04_master_pan","index": 263344,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_ADSR/00_adsr01_attack","varname": "fHslider219","shortname": "MM_ADSR_00_adsr01_attack","address": "/modular-additive/MM_ADSR_00_adsr01_attack","index": 263324,"meta": [{ "scale": "log" }],"init": 0.01,"min": 0.001,"max": 5,"step": 0.001},{"type": "hslider","label": "MM_ADSR/00_adsr01_decay","varname": "fHslider220","shortname": "MM_ADSR_00_adsr01_decay","address": "/modular-additive/MM_ADSR_00_adsr01_decay","index": 263328,"init": 0.2,"min": 0.001,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/00_adsr01_enable","varname": "fHslider223","shortname": "MM_ADSR_00_adsr01_enable","address": "/modular-additive/MM_ADSR_00_adsr01_enable","index": 263340,"init": 1,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_ADSR/00_adsr01_release","varname": "fHslider218","shortname": "MM_ADSR_00_adsr01_release","address": "/modular-additive/MM_ADSR_00_adsr01_release","index": 263320,"init": 0.3,"min": 0.01,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/00_adsr01_sustain","varname": "fHslider221","shortname": "MM_ADSR_00_adsr01_sustain","address": "/modular-additive/MM_ADSR_00_adsr01_sustain","index": 263332,"init": 0.7,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_ADSR/01_adsr02_attack","varname": "fHslider213","shortname": "MM_ADSR_01_adsr02_attack","address": "/modular-additive/MM_ADSR_01_adsr02_attack","index": 263300,"meta": [{ "scale": "log" }],"init": 0.01,"min": 0.001,"max": 5,"step": 0.001},{"type": "hslider","label": "MM_ADSR/01_adsr02_decay","varname": "fHslider214","shortname": "MM_ADSR_01_adsr02_decay","address": "/modular-additive/MM_ADSR_01_adsr02_decay","index": 263304,"init": 0.2,"min": 0.001,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/01_adsr02_enable","varname": "fHslider217","shortname": "MM_ADSR_01_adsr02_enable","address": "/modular-additive/MM_ADSR_01_adsr02_enable","index": 263316,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_ADSR/01_adsr02_release","varname": "fHslider212","shortname": "MM_ADSR_01_adsr02_release","address": "/modular-additive/MM_ADSR_01_adsr02_release","index": 263296,"init": 0.3,"min": 0.01,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/01_adsr02_sustain","varname": "fHslider215","shortname": "MM_ADSR_01_adsr02_sustain","address": "/modular-additive/MM_ADSR_01_adsr02_sustain","index": 263308,"init": 0.7,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_ADSR/02_adsr03_attack","varname": "fHslider207","shortname": "MM_ADSR_02_adsr03_attack","address": "/modular-additive/MM_ADSR_02_adsr03_attack","index": 263276,"meta": [{ "scale": "log" }],"init": 0.01,"min": 0.001,"max": 5,"step": 0.001},{"type": "hslider","label": "MM_ADSR/02_adsr03_decay","varname": "fHslider208","shortname": "MM_ADSR_02_adsr03_decay","address": "/modular-additive/MM_ADSR_02_adsr03_decay","index": 263280,"init": 0.2,"min": 0.001,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/02_adsr03_enable","varname": "fHslider211","shortname": "MM_ADSR_02_adsr03_enable","address": "/modular-additive/MM_ADSR_02_adsr03_enable","index": 263292,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_ADSR/02_adsr03_release","varname": "fHslider206","shortname": "MM_ADSR_02_adsr03_release","address": "/modular-additive/MM_ADSR_02_adsr03_release","index": 263272,"init": 0.3,"min": 0.01,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/02_adsr03_sustain","varname": "fHslider209","shortname": "MM_ADSR_02_adsr03_sustain","address": "/modular-additive/MM_ADSR_02_adsr03_sustain","index": 263284,"init": 0.7,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_ADSR/03_adsr04_attack","varname": "fHslider201","shortname": "MM_ADSR_03_adsr04_attack","address": "/modular-additive/MM_ADSR_03_adsr04_attack","index": 263252,"meta": [{ "scale": "log" }],"init": 0.01,"min": 0.001,"max": 5,"step": 0.001},{"type": "hslider","label": "MM_ADSR/03_adsr04_decay","varname": "fHslider202","shortname": "MM_ADSR_03_adsr04_decay","address": "/modular-additive/MM_ADSR_03_adsr04_decay","index": 263256,"init": 0.2,"min": 0.001,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/03_adsr04_enable","varname": "fHslider205","shortname": "MM_ADSR_03_adsr04_enable","address": "/modular-additive/MM_ADSR_03_adsr04_enable","index": 263268,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_ADSR/03_adsr04_release","varname": "fHslider200","shortname": "MM_ADSR_03_adsr04_release","address": "/modular-additive/MM_ADSR_03_adsr04_release","index": 263248,"init": 0.3,"min": 0.01,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/03_adsr04_sustain","varname": "fHslider203","shortname": "MM_ADSR_03_adsr04_sustain","address": "/modular-additive/MM_ADSR_03_adsr04_sustain","index": 263260,"init": 0.7,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_ADSR/04_adsr05_attack","varname": "fHslider195","shortname": "MM_ADSR_04_adsr05_attack","address": "/modular-additive/MM_ADSR_04_adsr05_attack","index": 263228,"meta": [{ "scale": "log" }],"init": 0.01,"min": 0.001,"max": 5,"step": 0.001},{"type": "hslider","label": "MM_ADSR/04_adsr05_decay","varname": "fHslider196","shortname": "MM_ADSR_04_adsr05_decay","address": "/modular-additive/MM_ADSR_04_adsr05_decay","index": 263232,"init": 0.2,"min": 0.001,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/04_adsr05_enable","varname": "fHslider199","shortname": "MM_ADSR_04_adsr05_enable","address": "/modular-additive/MM_ADSR_04_adsr05_enable","index": 263244,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_ADSR/04_adsr05_release","varname": "fHslider194","shortname": "MM_ADSR_04_adsr05_release","address": "/modular-additive/MM_ADSR_04_adsr05_release","index": 263224,"init": 0.3,"min": 0.01,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/04_adsr05_sustain","varname": "fHslider197","shortname": "MM_ADSR_04_adsr05_sustain","address": "/modular-additive/MM_ADSR_04_adsr05_sustain","index": 263236,"init": 0.7,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_ADSR/05_adsr06_attack","varname": "fHslider189","shortname": "MM_ADSR_05_adsr06_attack","address": "/modular-additive/MM_ADSR_05_adsr06_attack","index": 263204,"meta": [{ "scale": "log" }],"init": 0.01,"min": 0.001,"max": 5,"step": 0.001},{"type": "hslider","label": "MM_ADSR/05_adsr06_decay","varname": "fHslider190","shortname": "MM_ADSR_05_adsr06_decay","address": "/modular-additive/MM_ADSR_05_adsr06_decay","index": 263208,"init": 0.2,"min": 0.001,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/05_adsr06_enable","varname": "fHslider193","shortname": "MM_ADSR_05_adsr06_enable","address": "/modular-additive/MM_ADSR_05_adsr06_enable","index": 263220,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_ADSR/05_adsr06_release","varname": "fHslider188","shortname": "MM_ADSR_05_adsr06_release","address": "/modular-additive/MM_ADSR_05_adsr06_release","index": 263200,"init": 0.3,"min": 0.01,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/05_adsr06_sustain","varname": "fHslider191","shortname": "MM_ADSR_05_adsr06_sustain","address": "/modular-additive/MM_ADSR_05_adsr06_sustain","index": 263212,"init": 0.7,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_ADSR/06_adsr07_attack","varname": "fHslider183","shortname": "MM_ADSR_06_adsr07_attack","address": "/modular-additive/MM_ADSR_06_adsr07_attack","index": 263180,"meta": [{ "scale": "log" }],"init": 0.01,"min": 0.001,"max": 5,"step": 0.001},{"type": "hslider","label": "MM_ADSR/06_adsr07_decay","varname": "fHslider184","shortname": "MM_ADSR_06_adsr07_decay","address": "/modular-additive/MM_ADSR_06_adsr07_decay","index": 263184,"init": 0.2,"min": 0.001,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/06_adsr07_enable","varname": "fHslider187","shortname": "MM_ADSR_06_adsr07_enable","address": "/modular-additive/MM_ADSR_06_adsr07_enable","index": 263196,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_ADSR/06_adsr07_release","varname": "fHslider182","shortname": "MM_ADSR_06_adsr07_release","address": "/modular-additive/MM_ADSR_06_adsr07_release","index": 263176,"init": 0.3,"min": 0.01,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/06_adsr07_sustain","varname": "fHslider185","shortname": "MM_ADSR_06_adsr07_sustain","address": "/modular-additive/MM_ADSR_06_adsr07_sustain","index": 263188,"init": 0.7,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_ADSR/07_adsr08_attack","varname": "fHslider177","shortname": "MM_ADSR_07_adsr08_attack","address": "/modular-additive/MM_ADSR_07_adsr08_attack","index": 263156,"meta": [{ "scale": "log" }],"init": 0.01,"min": 0.001,"max": 5,"step": 0.001},{"type": "hslider","label": "MM_ADSR/07_adsr08_decay","varname": "fHslider178","shortname": "MM_ADSR_07_adsr08_decay","address": "/modular-additive/MM_ADSR_07_adsr08_decay","index": 263160,"init": 0.2,"min": 0.001,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/07_adsr08_enable","varname": "fHslider181","shortname": "MM_ADSR_07_adsr08_enable","address": "/modular-additive/MM_ADSR_07_adsr08_enable","index": 263172,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_ADSR/07_adsr08_release","varname": "fHslider176","shortname": "MM_ADSR_07_adsr08_release","address": "/modular-additive/MM_ADSR_07_adsr08_release","index": 263152,"init": 0.3,"min": 0.01,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/07_adsr08_sustain","varname": "fHslider179","shortname": "MM_ADSR_07_adsr08_sustain","address": "/modular-additive/MM_ADSR_07_adsr08_sustain","index": 263164,"init": 0.7,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_ADSR/08_adsr09_attack","varname": "fHslider171","shortname": "MM_ADSR_08_adsr09_attack","address": "/modular-additive/MM_ADSR_08_adsr09_attack","index": 263132,"meta": [{ "scale": "log" }],"init": 0.01,"min": 0.001,"max": 5,"step": 0.001},{"type": "hslider","label": "MM_ADSR/08_adsr09_decay","varname": "fHslider172","shortname": "MM_ADSR_08_adsr09_decay","address": "/modular-additive/MM_ADSR_08_adsr09_decay","index": 263136,"init": 0.2,"min": 0.001,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/08_adsr09_enable","varname": "fHslider175","shortname": "MM_ADSR_08_adsr09_enable","address": "/modular-additive/MM_ADSR_08_adsr09_enable","index": 263148,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_ADSR/08_adsr09_release","varname": "fHslider170","shortname": "MM_ADSR_08_adsr09_release","address": "/modular-additive/MM_ADSR_08_adsr09_release","index": 263128,"init": 0.3,"min": 0.01,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/08_adsr09_sustain","varname": "fHslider173","shortname": "MM_ADSR_08_adsr09_sustain","address": "/modular-additive/MM_ADSR_08_adsr09_sustain","index": 263140,"init": 0.7,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_ADSR/09_adsr10_attack","varname": "fHslider165","shortname": "MM_ADSR_09_adsr10_attack","address": "/modular-additive/MM_ADSR_09_adsr10_attack","index": 263108,"meta": [{ "scale": "log" }],"init": 0.01,"min": 0.001,"max": 5,"step": 0.001},{"type": "hslider","label": "MM_ADSR/09_adsr10_decay","varname": "fHslider166","shortname": "MM_ADSR_09_adsr10_decay","address": "/modular-additive/MM_ADSR_09_adsr10_decay","index": 263112,"init": 0.2,"min": 0.001,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/09_adsr10_enable","varname": "fHslider169","shortname": "MM_ADSR_09_adsr10_enable","address": "/modular-additive/MM_ADSR_09_adsr10_enable","index": 263124,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_ADSR/09_adsr10_release","varname": "fHslider164","shortname": "MM_ADSR_09_adsr10_release","address": "/modular-additive/MM_ADSR_09_adsr10_release","index": 263104,"init": 0.3,"min": 0.01,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/09_adsr10_sustain","varname": "fHslider167","shortname": "MM_ADSR_09_adsr10_sustain","address": "/modular-additive/MM_ADSR_09_adsr10_sustain","index": 263116,"init": 0.7,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_ADSR/10_adsr11_attack","varname": "fHslider159","shortname": "MM_ADSR_10_adsr11_attack","address": "/modular-additive/MM_ADSR_10_adsr11_attack","index": 263084,"meta": [{ "scale": "log" }],"init": 0.01,"min": 0.001,"max": 5,"step": 0.001},{"type": "hslider","label": "MM_ADSR/10_adsr11_decay","varname": "fHslider160","shortname": "MM_ADSR_10_adsr11_decay","address": "/modular-additive/MM_ADSR_10_adsr11_decay","index": 263088,"init": 0.2,"min": 0.001,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/10_adsr11_enable","varname": "fHslider163","shortname": "MM_ADSR_10_adsr11_enable","address": "/modular-additive/MM_ADSR_10_adsr11_enable","index": 263100,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_ADSR/10_adsr11_release","varname": "fHslider158","shortname": "MM_ADSR_10_adsr11_release","address": "/modular-additive/MM_ADSR_10_adsr11_release","index": 263080,"init": 0.3,"min": 0.01,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/10_adsr11_sustain","varname": "fHslider161","shortname": "MM_ADSR_10_adsr11_sustain","address": "/modular-additive/MM_ADSR_10_adsr11_sustain","index": 263092,"init": 0.7,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_ADSR/11_adsr12_attack","varname": "fHslider153","shortname": "MM_ADSR_11_adsr12_attack","address": "/modular-additive/MM_ADSR_11_adsr12_attack","index": 263060,"meta": [{ "scale": "log" }],"init": 0.01,"min": 0.001,"max": 5,"step": 0.001},{"type": "hslider","label": "MM_ADSR/11_adsr12_decay","varname": "fHslider154","shortname": "MM_ADSR_11_adsr12_decay","address": "/modular-additive/MM_ADSR_11_adsr12_decay","index": 263064,"init": 0.2,"min": 0.001,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/11_adsr12_enable","varname": "fHslider157","shortname": "MM_ADSR_11_adsr12_enable","address": "/modular-additive/MM_ADSR_11_adsr12_enable","index": 263076,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_ADSR/11_adsr12_release","varname": "fHslider152","shortname": "MM_ADSR_11_adsr12_release","address": "/modular-additive/MM_ADSR_11_adsr12_release","index": 263056,"init": 0.3,"min": 0.01,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/11_adsr12_sustain","varname": "fHslider155","shortname": "MM_ADSR_11_adsr12_sustain","address": "/modular-additive/MM_ADSR_11_adsr12_sustain","index": 263068,"init": 0.7,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_ADSR/12_adsr13_attack","varname": "fHslider147","shortname": "MM_ADSR_12_adsr13_attack","address": "/modular-additive/MM_ADSR_12_adsr13_attack","index": 263036,"meta": [{ "scale": "log" }],"init": 0.01,"min": 0.001,"max": 5,"step": 0.001},{"type": "hslider","label": "MM_ADSR/12_adsr13_decay","varname": "fHslider148","shortname": "MM_ADSR_12_adsr13_decay","address": "/modular-additive/MM_ADSR_12_adsr13_decay","index": 263040,"init": 0.2,"min": 0.001,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/12_adsr13_enable","varname": "fHslider151","shortname": "MM_ADSR_12_adsr13_enable","address": "/modular-additive/MM_ADSR_12_adsr13_enable","index": 263052,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_ADSR/12_adsr13_release","varname": "fHslider146","shortname": "MM_ADSR_12_adsr13_release","address": "/modular-additive/MM_ADSR_12_adsr13_release","index": 263032,"init": 0.3,"min": 0.01,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/12_adsr13_sustain","varname": "fHslider149","shortname": "MM_ADSR_12_adsr13_sustain","address": "/modular-additive/MM_ADSR_12_adsr13_sustain","index": 263044,"init": 0.7,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_ADSR/13_adsr14_attack","varname": "fHslider141","shortname": "MM_ADSR_13_adsr14_attack","address": "/modular-additive/MM_ADSR_13_adsr14_attack","index": 263012,"meta": [{ "scale": "log" }],"init": 0.01,"min": 0.001,"max": 5,"step": 0.001},{"type": "hslider","label": "MM_ADSR/13_adsr14_decay","varname": "fHslider142","shortname": "MM_ADSR_13_adsr14_decay","address": "/modular-additive/MM_ADSR_13_adsr14_decay","index": 263016,"init": 0.2,"min": 0.001,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/13_adsr14_enable","varname": "fHslider145","shortname": "MM_ADSR_13_adsr14_enable","address": "/modular-additive/MM_ADSR_13_adsr14_enable","index": 263028,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_ADSR/13_adsr14_release","varname": "fHslider140","shortname": "MM_ADSR_13_adsr14_release","address": "/modular-additive/MM_ADSR_13_adsr14_release","index": 263008,"init": 0.3,"min": 0.01,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/13_adsr14_sustain","varname": "fHslider143","shortname": "MM_ADSR_13_adsr14_sustain","address": "/modular-additive/MM_ADSR_13_adsr14_sustain","index": 263020,"init": 0.7,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_ADSR/14_adsr15_attack","varname": "fHslider135","shortname": "MM_ADSR_14_adsr15_attack","address": "/modular-additive/MM_ADSR_14_adsr15_attack","index": 262988,"meta": [{ "scale": "log" }],"init": 0.01,"min": 0.001,"max": 5,"step": 0.001},{"type": "hslider","label": "MM_ADSR/14_adsr15_decay","varname": "fHslider136","shortname": "MM_ADSR_14_adsr15_decay","address": "/modular-additive/MM_ADSR_14_adsr15_decay","index": 262992,"init": 0.2,"min": 0.001,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/14_adsr15_enable","varname": "fHslider139","shortname": "MM_ADSR_14_adsr15_enable","address": "/modular-additive/MM_ADSR_14_adsr15_enable","index": 263004,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_ADSR/14_adsr15_release","varname": "fHslider134","shortname": "MM_ADSR_14_adsr15_release","address": "/modular-additive/MM_ADSR_14_adsr15_release","index": 262984,"init": 0.3,"min": 0.01,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/14_adsr15_sustain","varname": "fHslider137","shortname": "MM_ADSR_14_adsr15_sustain","address": "/modular-additive/MM_ADSR_14_adsr15_sustain","index": 262996,"init": 0.7,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_ADSR/15_adsr16_attack","varname": "fHslider129","shortname": "MM_ADSR_15_adsr16_attack","address": "/modular-additive/MM_ADSR_15_adsr16_attack","index": 262964,"meta": [{ "scale": "log" }],"init": 0.01,"min": 0.001,"max": 5,"step": 0.001},{"type": "hslider","label": "MM_ADSR/15_adsr16_decay","varname": "fHslider130","shortname": "MM_ADSR_15_adsr16_decay","address": "/modular-additive/MM_ADSR_15_adsr16_decay","index": 262968,"init": 0.2,"min": 0.001,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/15_adsr16_enable","varname": "fHslider133","shortname": "MM_ADSR_15_adsr16_enable","address": "/modular-additive/MM_ADSR_15_adsr16_enable","index": 262980,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_ADSR/15_adsr16_release","varname": "fHslider128","shortname": "MM_ADSR_15_adsr16_release","address": "/modular-additive/MM_ADSR_15_adsr16_release","index": 262952,"init": 0.3,"min": 0.01,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/15_adsr16_sustain","varname": "fHslider131","shortname": "MM_ADSR_15_adsr16_sustain","address": "/modular-additive/MM_ADSR_15_adsr16_sustain","index": 262972,"init": 0.7,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/00_lfo01_enable","varname": "fHslider127","shortname": "MM_LFO_00_lfo01_enable","address": "/modular-additive/MM_LFO_00_lfo01_enable","index": 262928,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/00_lfo01_morph","varname": "fHslider124","shortname": "MM_LFO_00_lfo01_morph","address": "/modular-additive/MM_LFO_00_lfo01_morph","index": 262908,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/00_lfo01_rate","varname": "fHslider125","shortname": "MM_LFO_00_lfo01_rate","address": "/modular-additive/MM_LFO_00_lfo01_rate","index": 262912,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/01_lfo02_enable","varname": "fHslider123","shortname": "MM_LFO_01_lfo02_enable","address": "/modular-additive/MM_LFO_01_lfo02_enable","index": 262904,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/01_lfo02_morph","varname": "fHslider120","shortname": "MM_LFO_01_lfo02_morph","address": "/modular-additive/MM_LFO_01_lfo02_morph","index": 262884,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/01_lfo02_rate","varname": "fHslider121","shortname": "MM_LFO_01_lfo02_rate","address": "/modular-additive/MM_LFO_01_lfo02_rate","index": 262888,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/02_lfo03_enable","varname": "fHslider119","shortname": "MM_LFO_02_lfo03_enable","address": "/modular-additive/MM_LFO_02_lfo03_enable","index": 262880,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/02_lfo03_morph","varname": "fHslider116","shortname": "MM_LFO_02_lfo03_morph","address": "/modular-additive/MM_LFO_02_lfo03_morph","index": 262860,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/02_lfo03_rate","varname": "fHslider117","shortname": "MM_LFO_02_lfo03_rate","address": "/modular-additive/MM_LFO_02_lfo03_rate","index": 262864,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/03_lfo04_enable","varname": "fHslider115","shortname": "MM_LFO_03_lfo04_enable","address": "/modular-additive/MM_LFO_03_lfo04_enable","index": 262856,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/03_lfo04_morph","varname": "fHslider112","shortname": "MM_LFO_03_lfo04_morph","address": "/modular-additive/MM_LFO_03_lfo04_morph","index": 262836,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/03_lfo04_rate","varname": "fHslider113","shortname": "MM_LFO_03_lfo04_rate","address": "/modular-additive/MM_LFO_03_lfo04_rate","index": 262840,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/04_lfo05_enable","varname": "fHslider111","shortname": "MM_LFO_04_lfo05_enable","address": "/modular-additive/MM_LFO_04_lfo05_enable","index": 262832,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/04_lfo05_morph","varname": "fHslider108","shortname": "MM_LFO_04_lfo05_morph","address": "/modular-additive/MM_LFO_04_lfo05_morph","index": 262812,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/04_lfo05_rate","varname": "fHslider109","shortname": "MM_LFO_04_lfo05_rate","address": "/modular-additive/MM_LFO_04_lfo05_rate","index": 262816,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/05_lfo06_enable","varname": "fHslider107","shortname": "MM_LFO_05_lfo06_enable","address": "/modular-additive/MM_LFO_05_lfo06_enable","index": 262808,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/05_lfo06_morph","varname": "fHslider104","shortname": "MM_LFO_05_lfo06_morph","address": "/modular-additive/MM_LFO_05_lfo06_morph","index": 262788,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/05_lfo06_rate","varname": "fHslider105","shortname": "MM_LFO_05_lfo06_rate","address": "/modular-additive/MM_LFO_05_lfo06_rate","index": 262792,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/06_lfo07_enable","varname": "fHslider103","shortname": "MM_LFO_06_lfo07_enable","address": "/modular-additive/MM_LFO_06_lfo07_enable","index": 262784,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/06_lfo07_morph","varname": "fHslider100","shortname": "MM_LFO_06_lfo07_morph","address": "/modular-additive/MM_LFO_06_lfo07_morph","index": 262764,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/06_lfo07_rate","varname": "fHslider101","shortname": "MM_LFO_06_lfo07_rate","address": "/modular-additive/MM_LFO_06_lfo07_rate","index": 262768,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/07_lfo08_enable","varname": "fHslider99","shortname": "MM_LFO_07_lfo08_enable","address": "/modular-additive/MM_LFO_07_lfo08_enable","index": 262760,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/07_lfo08_morph","varname": "fHslider96","shortname": "MM_LFO_07_lfo08_morph","address": "/modular-additive/MM_LFO_07_lfo08_morph","index": 262740,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/07_lfo08_rate","varname": "fHslider97","shortname": "MM_LFO_07_lfo08_rate","address": "/modular-additive/MM_LFO_07_lfo08_rate","index": 262744,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/08_lfo09_enable","varname": "fHslider95","shortname": "MM_LFO_08_lfo09_enable","address": "/modular-additive/MM_LFO_08_lfo09_enable","index": 262736,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/08_lfo09_morph","varname": "fHslider92","shortname": "MM_LFO_08_lfo09_morph","address": "/modular-additive/MM_LFO_08_lfo09_morph","index": 262716,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/08_lfo09_rate","varname": "fHslider93","shortname": "MM_LFO_08_lfo09_rate","address": "/modular-additive/MM_LFO_08_lfo09_rate","index": 262720,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/09_lfo10_enable","varname": "fHslider91","shortname": "MM_LFO_09_lfo10_enable","address": "/modular-additive/MM_LFO_09_lfo10_enable","index": 262712,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/09_lfo10_morph","varname": "fHslider88","shortname": "MM_LFO_09_lfo10_morph","address": "/modular-additive/MM_LFO_09_lfo10_morph","index": 262692,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/09_lfo10_rate","varname": "fHslider89","shortname": "MM_LFO_09_lfo10_rate","address": "/modular-additive/MM_LFO_09_lfo10_rate","index": 262696,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/10_lfo11_enable","varname": "fHslider87","shortname": "MM_LFO_10_lfo11_enable","address": "/modular-additive/MM_LFO_10_lfo11_enable","index": 262688,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/10_lfo11_morph","varname": "fHslider84","shortname": "MM_LFO_10_lfo11_morph","address": "/modular-additive/MM_LFO_10_lfo11_morph","index": 262668,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/10_lfo11_rate","varname": "fHslider85","shortname": "MM_LFO_10_lfo11_rate","address": "/modular-additive/MM_LFO_10_lfo11_rate","index": 262672,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/11_lfo12_enable","varname": "fHslider83","shortname": "MM_LFO_11_lfo12_enable","address": "/modular-additive/MM_LFO_11_lfo12_enable","index": 262664,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/11_lfo12_morph","varname": "fHslider80","shortname": "MM_LFO_11_lfo12_morph","address": "/modular-additive/MM_LFO_11_lfo12_morph","index": 262644,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/11_lfo12_rate","varname": "fHslider81","shortname": "MM_LFO_11_lfo12_rate","address": "/modular-additive/MM_LFO_11_lfo12_rate","index": 262648,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/12_lfo13_enable","varname": "fHslider79","shortname": "MM_LFO_12_lfo13_enable","address": "/modular-additive/MM_LFO_12_lfo13_enable","index": 262640,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/12_lfo13_morph","varname": "fHslider76","shortname": "MM_LFO_12_lfo13_morph","address": "/modular-additive/MM_LFO_12_lfo13_morph","index": 262620,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/12_lfo13_rate","varname": "fHslider77","shortname": "MM_LFO_12_lfo13_rate","address": "/modular-additive/MM_LFO_12_lfo13_rate","index": 262624,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/13_lfo14_enable","varname": "fHslider75","shortname": "MM_LFO_13_lfo14_enable","address": "/modular-additive/MM_LFO_13_lfo14_enable","index": 262616,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/13_lfo14_morph","varname": "fHslider72","shortname": "MM_LFO_13_lfo14_morph","address": "/modular-additive/MM_LFO_13_lfo14_morph","index": 262596,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/13_lfo14_rate","varname": "fHslider73","shortname": "MM_LFO_13_lfo14_rate","address": "/modular-additive/MM_LFO_13_lfo14_rate","index": 262600,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/14_lfo15_enable","varname": "fHslider71","shortname": "MM_LFO_14_lfo15_enable","address": "/modular-additive/MM_LFO_14_lfo15_enable","index": 262592,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/14_lfo15_morph","varname": "fHslider68","shortname": "MM_LFO_14_lfo15_morph","address": "/modular-additive/MM_LFO_14_lfo15_morph","index": 262572,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/14_lfo15_rate","varname": "fHslider69","shortname": "MM_LFO_14_lfo15_rate","address": "/modular-additive/MM_LFO_14_lfo15_rate","index": 262576,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/15_lfo16_enable","varname": "fHslider67","shortname": "MM_LFO_15_lfo16_enable","address": "/modular-additive/MM_LFO_15_lfo16_enable","index": 262568,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/15_lfo16_morph","varname": "fHslider64","shortname": "MM_LFO_15_lfo16_morph","address": "/modular-additive/MM_LFO_15_lfo16_morph","index": 262548,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/15_lfo16_rate","varname": "fHslider65","shortname": "MM_LFO_15_lfo16_rate","address": "/modular-additive/MM_LFO_15_lfo16_rate","index": 262552,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/16_lfo17_enable","varname": "fHslider63","shortname": "MM_LFO_16_lfo17_enable","address": "/modular-additive/MM_LFO_16_lfo17_enable","index": 262544,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/16_lfo17_morph","varname": "fHslider60","shortname": "MM_LFO_16_lfo17_morph","address": "/modular-additive/MM_LFO_16_lfo17_morph","index": 262524,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/16_lfo17_rate","varname": "fHslider61","shortname": "MM_LFO_16_lfo17_rate","address": "/modular-additive/MM_LFO_16_lfo17_rate","index": 262528,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/17_lfo18_enable","varname": "fHslider59","shortname": "MM_LFO_17_lfo18_enable","address": "/modular-additive/MM_LFO_17_lfo18_enable","index": 262520,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/17_lfo18_morph","varname": "fHslider56","shortname": "MM_LFO_17_lfo18_morph","address": "/modular-additive/MM_LFO_17_lfo18_morph","index": 262500,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/17_lfo18_rate","varname": "fHslider57","shortname": "MM_LFO_17_lfo18_rate","address": "/modular-additive/MM_LFO_17_lfo18_rate","index": 262504,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/18_lfo19_enable","varname": "fHslider55","shortname": "MM_LFO_18_lfo19_enable","address": "/modular-additive/MM_LFO_18_lfo19_enable","index": 262496,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/18_lfo19_morph","varname": "fHslider52","shortname": "MM_LFO_18_lfo19_morph","address": "/modular-additive/MM_LFO_18_lfo19_morph","index": 262476,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/18_lfo19_rate","varname": "fHslider53","shortname": "MM_LFO_18_lfo19_rate","address": "/modular-additive/MM_LFO_18_lfo19_rate","index": 262480,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/19_lfo20_enable","varname": "fHslider51","shortname": "MM_LFO_19_lfo20_enable","address": "/modular-additive/MM_LFO_19_lfo20_enable","index": 262472,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/19_lfo20_morph","varname": "fHslider48","shortname": "MM_LFO_19_lfo20_morph","address": "/modular-additive/MM_LFO_19_lfo20_morph","index": 262452,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/19_lfo20_rate","varname": "fHslider49","shortname": "MM_LFO_19_lfo20_rate","address": "/modular-additive/MM_LFO_19_lfo20_rate","index": 262456,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/20_lfo21_enable","varname": "fHslider47","shortname": "MM_LFO_20_lfo21_enable","address": "/modular-additive/MM_LFO_20_lfo21_enable","index": 262448,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/20_lfo21_morph","varname": "fHslider44","shortname": "MM_LFO_20_lfo21_morph","address": "/modular-additive/MM_LFO_20_lfo21_morph","index": 262428,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/20_lfo21_rate","varname": "fHslider45","shortname": "MM_LFO_20_lfo21_rate","address": "/modular-additive/MM_LFO_20_lfo21_rate","index": 262432,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/21_lfo22_enable","varname": "fHslider43","shortname": "MM_LFO_21_lfo22_enable","address": "/modular-additive/MM_LFO_21_lfo22_enable","index": 262424,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/21_lfo22_morph","varname": "fHslider40","shortname": "MM_LFO_21_lfo22_morph","address": "/modular-additive/MM_LFO_21_lfo22_morph","index": 262404,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/21_lfo22_rate","varname": "fHslider41","shortname": "MM_LFO_21_lfo22_rate","address": "/modular-additive/MM_LFO_21_lfo22_rate","index": 262408,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/22_lfo23_enable","varname": "fHslider39","shortname": "MM_LFO_22_lfo23_enable","address": "/modular-additive/MM_LFO_22_lfo23_enable","index": 262400,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/22_lfo23_morph","varname": "fHslider36","shortname": "MM_LFO_22_lfo23_morph","address": "/modular-additive/MM_LFO_22_lfo23_morph","index": 262380,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/22_lfo23_rate","varname": "fHslider37","shortname": "MM_LFO_22_lfo23_rate","address": "/modular-additive/MM_LFO_22_lfo23_rate","index": 262384,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/23_lfo24_enable","varname": "fHslider35","shortname": "MM_LFO_23_lfo24_enable","address": "/modular-additive/MM_LFO_23_lfo24_enable","index": 262376,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/23_lfo24_morph","varname": "fHslider32","shortname": "MM_LFO_23_lfo24_morph","address": "/modular-additive/MM_LFO_23_lfo24_morph","index": 262356,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/23_lfo24_rate","varname": "fHslider33","shortname": "MM_LFO_23_lfo24_rate","address": "/modular-additive/MM_LFO_23_lfo24_rate","index": 262360,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/24_lfo25_enable","varname": "fHslider31","shortname": "MM_LFO_24_lfo25_enable","address": "/modular-additive/MM_LFO_24_lfo25_enable","index": 262352,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/24_lfo25_morph","varname": "fHslider28","shortname": "MM_LFO_24_lfo25_morph","address": "/modular-additive/MM_LFO_24_lfo25_morph","index": 262332,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/24_lfo25_rate","varname": "fHslider29","shortname": "MM_LFO_24_lfo25_rate","address": "/modular-additive/MM_LFO_24_lfo25_rate","index": 262336,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/25_lfo26_enable","varname": "fHslider27","shortname": "MM_LFO_25_lfo26_enable","address": "/modular-additive/MM_LFO_25_lfo26_enable","index": 262328,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/25_lfo26_morph","varname": "fHslider24","shortname": "MM_LFO_25_lfo26_morph","address": "/modular-additive/MM_LFO_25_lfo26_morph","index": 262308,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/25_lfo26_rate","varname": "fHslider25","shortname": "MM_LFO_25_lfo26_rate","address": "/modular-additive/MM_LFO_25_lfo26_rate","index": 262312,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/26_lfo27_enable","varname": "fHslider23","shortname": "MM_LFO_26_lfo27_enable","address": "/modular-additive/MM_LFO_26_lfo27_enable","index": 262304,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/26_lfo27_morph","varname": "fHslider20","shortname": "MM_LFO_26_lfo27_morph","address": "/modular-additive/MM_LFO_26_lfo27_morph","index": 262284,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/26_lfo27_rate","varname": "fHslider21","shortname": "MM_LFO_26_lfo27_rate","address": "/modular-additive/MM_LFO_26_lfo27_rate","index": 262288,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/27_lfo28_enable","varname": "fHslider19","shortname": "MM_LFO_27_lfo28_enable","address": "/modular-additive/MM_LFO_27_lfo28_enable","index": 262280,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/27_lfo28_morph","varname": "fHslider16","shortname": "MM_LFO_27_lfo28_morph","address": "/modular-additive/MM_LFO_27_lfo28_morph","index": 262260,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/27_lfo28_rate","varname": "fHslider17","shortname": "MM_LFO_27_lfo28_rate","address": "/modular-additive/MM_LFO_27_lfo28_rate","index": 262264,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/28_lfo29_enable","varname": "fHslider15","shortname": "MM_LFO_28_lfo29_enable","address": "/modular-additive/MM_LFO_28_lfo29_enable","index": 262256,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/28_lfo29_morph","varname": "fHslider12","shortname": "MM_LFO_28_lfo29_morph","address": "/modular-additive/MM_LFO_28_lfo29_morph","index": 262236,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/28_lfo29_rate","varname": "fHslider13","shortname": "MM_LFO_28_lfo29_rate","address": "/modular-additive/MM_LFO_28_lfo29_rate","index": 262240,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/29_lfo30_enable","varname": "fHslider11","shortname": "MM_LFO_29_lfo30_enable","address": "/modular-additive/MM_LFO_29_lfo30_enable","index": 262232,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/29_lfo30_morph","varname": "fHslider8","shortname": "MM_LFO_29_lfo30_morph","address": "/modular-additive/MM_LFO_29_lfo30_morph","index": 262212,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/29_lfo30_rate","varname": "fHslider9","shortname": "MM_LFO_29_lfo30_rate","address": "/modular-additive/MM_LFO_29_lfo30_rate","index": 262216,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/30_lfo31_enable","varname": "fHslider7","shortname": "MM_LFO_30_lfo31_enable","address": "/modular-additive/MM_LFO_30_lfo31_enable","index": 262208,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/30_lfo31_morph","varname": "fHslider4","shortname": "MM_LFO_30_lfo31_morph","address": "/modular-additive/MM_LFO_30_lfo31_morph","index": 262188,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/30_lfo31_rate","varname": "fHslider5","shortname": "MM_LFO_30_lfo31_rate","address": "/modular-additive/MM_LFO_30_lfo31_rate","index": 262192,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/31_lfo32_enable","varname": "fHslider3","shortname": "MM_LFO_31_lfo32_enable","address": "/modular-additive/MM_LFO_31_lfo32_enable","index": 262184,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/31_lfo32_morph","varname": "fHslider0","shortname": "MM_LFO_31_lfo32_morph","address": "/modular-additive/MM_LFO_31_lfo32_morph","index": 262144,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/31_lfo32_rate","varname": "fHslider1","shortname": "MM_LFO_31_lfo32_rate","address": "/modular-additive/MM_LFO_31_lfo32_rate","index": 262156,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s00_d00_pitch","varname": "fHslider371","shortname": "MM_Matrix_s00_d00_pitch","address": "/modular-additive/MM_Matrix_s00_d00_pitch","index": 263976,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s00_d01_bright","varname": "fHslider570","shortname": "MM_Matrix_s00_d01_bright","address": "/modular-additive/MM_Matrix_s00_d01_bright","index": 264796,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s00_d02_tilt","varname": "fHslider618","shortname": "MM_Matrix_s00_d02_tilt","address": "/modular-additive/MM_Matrix_s00_d02_tilt","index": 264988,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s00_d03_inharmonicity","varname": "fHslider422","shortname": "MM_Matrix_s00_d03_inharmonicity","address": "/modular-additive/MM_Matrix_s00_d03_inharmonicity","index": 264192,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s00_d04_odd_even","varname": "fHslider667","shortname": "MM_Matrix_s00_d04_odd_even","address": "/modular-additive/MM_Matrix_s00_d04_odd_even","index": 265184,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s00_d05_formant_ctr","varname": "fHslider471","shortname": "MM_Matrix_s00_d05_formant_ctr","address": "/modular-additive/MM_Matrix_s00_d05_formant_ctr","index": 264400,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s00_d06_formant_depth","varname": "fHslider521","shortname": "MM_Matrix_s00_d06_formant_depth","address": "/modular-additive/MM_Matrix_s00_d06_formant_depth","index": 264600,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s00_d07_noise_mix","varname": "fHslider321","shortname": "MM_Matrix_s00_d07_noise_mix","address": "/modular-additive/MM_Matrix_s00_d07_noise_mix","index": 263748,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s00_d08_amp","varname": "fHslider273","shortname": "MM_Matrix_s00_d08_amp","address": "/modular-additive/MM_Matrix_s00_d08_amp","index": 263556,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s00_d09_pan","varname": "fHslider222","shortname": "MM_Matrix_s00_d09_pan","address": "/modular-additive/MM_Matrix_s00_d09_pan","index": 263336,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s01_d00_pitch","varname": "fHslider370","shortname": "MM_Matrix_s01_d00_pitch","address": "/modular-additive/MM_Matrix_s01_d00_pitch","index": 263972,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s01_d01_bright","varname": "fHslider569","shortname": "MM_Matrix_s01_d01_bright","address": "/modular-additive/MM_Matrix_s01_d01_bright","index": 264792,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s01_d02_tilt","varname": "fHslider617","shortname": "MM_Matrix_s01_d02_tilt","address": "/modular-additive/MM_Matrix_s01_d02_tilt","index": 264984,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s01_d03_inharmonicity","varname": "fHslider421","shortname": "MM_Matrix_s01_d03_inharmonicity","address": "/modular-additive/MM_Matrix_s01_d03_inharmonicity","index": 264188,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s01_d04_odd_even","varname": "fHslider666","shortname": "MM_Matrix_s01_d04_odd_even","address": "/modular-additive/MM_Matrix_s01_d04_odd_even","index": 265180,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s01_d05_formant_ctr","varname": "fHslider470","shortname": "MM_Matrix_s01_d05_formant_ctr","address": "/modular-additive/MM_Matrix_s01_d05_formant_ctr","index": 264396,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s01_d06_formant_depth","varname": "fHslider520","shortname": "MM_Matrix_s01_d06_formant_depth","address": "/modular-additive/MM_Matrix_s01_d06_formant_depth","index": 264596,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s01_d07_noise_mix","varname": "fHslider320","shortname": "MM_Matrix_s01_d07_noise_mix","address": "/modular-additive/MM_Matrix_s01_d07_noise_mix","index": 263744,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s01_d08_amp","varname": "fHslider272","shortname": "MM_Matrix_s01_d08_amp","address": "/modular-additive/MM_Matrix_s01_d08_amp","index": 263552,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s01_d09_pan","varname": "fHslider216","shortname": "MM_Matrix_s01_d09_pan","address": "/modular-additive/MM_Matrix_s01_d09_pan","index": 263312,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s02_d00_pitch","varname": "fHslider369","shortname": "MM_Matrix_s02_d00_pitch","address": "/modular-additive/MM_Matrix_s02_d00_pitch","index": 263968,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s02_d01_bright","varname": "fHslider568","shortname": "MM_Matrix_s02_d01_bright","address": "/modular-additive/MM_Matrix_s02_d01_bright","index": 264788,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s02_d02_tilt","varname": "fHslider616","shortname": "MM_Matrix_s02_d02_tilt","address": "/modular-additive/MM_Matrix_s02_d02_tilt","index": 264980,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s02_d03_inharmonicity","varname": "fHslider420","shortname": "MM_Matrix_s02_d03_inharmonicity","address": "/modular-additive/MM_Matrix_s02_d03_inharmonicity","index": 264184,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s02_d04_odd_even","varname": "fHslider665","shortname": "MM_Matrix_s02_d04_odd_even","address": "/modular-additive/MM_Matrix_s02_d04_odd_even","index": 265176,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s02_d05_formant_ctr","varname": "fHslider469","shortname": "MM_Matrix_s02_d05_formant_ctr","address": "/modular-additive/MM_Matrix_s02_d05_formant_ctr","index": 264392,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s02_d06_formant_depth","varname": "fHslider519","shortname": "MM_Matrix_s02_d06_formant_depth","address": "/modular-additive/MM_Matrix_s02_d06_formant_depth","index": 264592,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s02_d07_noise_mix","varname": "fHslider319","shortname": "MM_Matrix_s02_d07_noise_mix","address": "/modular-additive/MM_Matrix_s02_d07_noise_mix","index": 263740,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s02_d08_amp","varname": "fHslider271","shortname": "MM_Matrix_s02_d08_amp","address": "/modular-additive/MM_Matrix_s02_d08_amp","index": 263548,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s02_d09_pan","varname": "fHslider210","shortname": "MM_Matrix_s02_d09_pan","address": "/modular-additive/MM_Matrix_s02_d09_pan","index": 263288,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s03_d00_pitch","varname": "fHslider368","shortname": "MM_Matrix_s03_d00_pitch","address": "/modular-additive/MM_Matrix_s03_d00_pitch","index": 263964,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s03_d01_bright","varname": "fHslider567","shortname": "MM_Matrix_s03_d01_bright","address": "/modular-additive/MM_Matrix_s03_d01_bright","index": 264784,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s03_d02_tilt","varname": "fHslider615","shortname": "MM_Matrix_s03_d02_tilt","address": "/modular-additive/MM_Matrix_s03_d02_tilt","index": 264976,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s03_d03_inharmonicity","varname": "fHslider419","shortname": "MM_Matrix_s03_d03_inharmonicity","address": "/modular-additive/MM_Matrix_s03_d03_inharmonicity","index": 264180,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s03_d04_odd_even","varname": "fHslider664","shortname": "MM_Matrix_s03_d04_odd_even","address": "/modular-additive/MM_Matrix_s03_d04_odd_even","index": 265172,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s03_d05_formant_ctr","varname": "fHslider468","shortname": "MM_Matrix_s03_d05_formant_ctr","address": "/modular-additive/MM_Matrix_s03_d05_formant_ctr","index": 264388,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s03_d06_formant_depth","varname": "fHslider518","shortname": "MM_Matrix_s03_d06_formant_depth","address": "/modular-additive/MM_Matrix_s03_d06_formant_depth","index": 264588,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s03_d07_noise_mix","varname": "fHslider318","shortname": "MM_Matrix_s03_d07_noise_mix","address": "/modular-additive/MM_Matrix_s03_d07_noise_mix","index": 263736,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s03_d08_amp","varname": "fHslider270","shortname": "MM_Matrix_s03_d08_amp","address": "/modular-additive/MM_Matrix_s03_d08_amp","index": 263544,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s03_d09_pan","varname": "fHslider204","shortname": "MM_Matrix_s03_d09_pan","address": "/modular-additive/MM_Matrix_s03_d09_pan","index": 263264,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s04_d00_pitch","varname": "fHslider367","shortname": "MM_Matrix_s04_d00_pitch","address": "/modular-additive/MM_Matrix_s04_d00_pitch","index": 263960,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s04_d01_bright","varname": "fHslider566","shortname": "MM_Matrix_s04_d01_bright","address": "/modular-additive/MM_Matrix_s04_d01_bright","index": 264780,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s04_d02_tilt","varname": "fHslider614","shortname": "MM_Matrix_s04_d02_tilt","address": "/modular-additive/MM_Matrix_s04_d02_tilt","index": 264972,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s04_d03_inharmonicity","varname": "fHslider418","shortname": "MM_Matrix_s04_d03_inharmonicity","address": "/modular-additive/MM_Matrix_s04_d03_inharmonicity","index": 264176,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s04_d04_odd_even","varname": "fHslider663","shortname": "MM_Matrix_s04_d04_odd_even","address": "/modular-additive/MM_Matrix_s04_d04_odd_even","index": 265168,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s04_d05_formant_ctr","varname": "fHslider467","shortname": "MM_Matrix_s04_d05_formant_ctr","address": "/modular-additive/MM_Matrix_s04_d05_formant_ctr","index": 264384,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s04_d06_formant_depth","varname": "fHslider517","shortname": "MM_Matrix_s04_d06_formant_depth","address": "/modular-additive/MM_Matrix_s04_d06_formant_depth","index": 264584,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s04_d07_noise_mix","varname": "fHslider317","shortname": "MM_Matrix_s04_d07_noise_mix","address": "/modular-additive/MM_Matrix_s04_d07_noise_mix","index": 263732,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s04_d08_amp","varname": "fHslider269","shortname": "MM_Matrix_s04_d08_amp","address": "/modular-additive/MM_Matrix_s04_d08_amp","index": 263540,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s04_d09_pan","varname": "fHslider198","shortname": "MM_Matrix_s04_d09_pan","address": "/modular-additive/MM_Matrix_s04_d09_pan","index": 263240,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s05_d00_pitch","varname": "fHslider366","shortname": "MM_Matrix_s05_d00_pitch","address": "/modular-additive/MM_Matrix_s05_d00_pitch","index": 263956,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s05_d01_bright","varname": "fHslider565","shortname": "MM_Matrix_s05_d01_bright","address": "/modular-additive/MM_Matrix_s05_d01_bright","index": 264776,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s05_d02_tilt","varname": "fHslider613","shortname": "MM_Matrix_s05_d02_tilt","address": "/modular-additive/MM_Matrix_s05_d02_tilt","index": 264968,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s05_d03_inharmonicity","varname": "fHslider417","shortname": "MM_Matrix_s05_d03_inharmonicity","address": "/modular-additive/MM_Matrix_s05_d03_inharmonicity","index": 264172,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s05_d04_odd_even","varname": "fHslider662","shortname": "MM_Matrix_s05_d04_odd_even","address": "/modular-additive/MM_Matrix_s05_d04_odd_even","index": 265164,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s05_d05_formant_ctr","varname": "fHslider466","shortname": "MM_Matrix_s05_d05_formant_ctr","address": "/modular-additive/MM_Matrix_s05_d05_formant_ctr","index": 264380,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s05_d06_formant_depth","varname": "fHslider516","shortname": "MM_Matrix_s05_d06_formant_depth","address": "/modular-additive/MM_Matrix_s05_d06_formant_depth","index": 264580,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s05_d07_noise_mix","varname": "fHslider316","shortname": "MM_Matrix_s05_d07_noise_mix","address": "/modular-additive/MM_Matrix_s05_d07_noise_mix","index": 263728,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s05_d08_amp","varname": "fHslider268","shortname": "MM_Matrix_s05_d08_amp","address": "/modular-additive/MM_Matrix_s05_d08_amp","index": 263536,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s05_d09_pan","varname": "fHslider192","shortname": "MM_Matrix_s05_d09_pan","address": "/modular-additive/MM_Matrix_s05_d09_pan","index": 263216,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s06_d00_pitch","varname": "fHslider365","shortname": "MM_Matrix_s06_d00_pitch","address": "/modular-additive/MM_Matrix_s06_d00_pitch","index": 263952,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s06_d01_bright","varname": "fHslider564","shortname": "MM_Matrix_s06_d01_bright","address": "/modular-additive/MM_Matrix_s06_d01_bright","index": 264772,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s06_d02_tilt","varname": "fHslider612","shortname": "MM_Matrix_s06_d02_tilt","address": "/modular-additive/MM_Matrix_s06_d02_tilt","index": 264964,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s06_d03_inharmonicity","varname": "fHslider416","shortname": "MM_Matrix_s06_d03_inharmonicity","address": "/modular-additive/MM_Matrix_s06_d03_inharmonicity","index": 264168,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s06_d04_odd_even","varname": "fHslider661","shortname": "MM_Matrix_s06_d04_odd_even","address": "/modular-additive/MM_Matrix_s06_d04_odd_even","index": 265160,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s06_d05_formant_ctr","varname": "fHslider465","shortname": "MM_Matrix_s06_d05_formant_ctr","address": "/modular-additive/MM_Matrix_s06_d05_formant_ctr","index": 264376,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s06_d06_formant_depth","varname": "fHslider515","shortname": "MM_Matrix_s06_d06_formant_depth","address": "/modular-additive/MM_Matrix_s06_d06_formant_depth","index": 264576,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s06_d07_noise_mix","varname": "fHslider315","shortname": "MM_Matrix_s06_d07_noise_mix","address": "/modular-additive/MM_Matrix_s06_d07_noise_mix","index": 263724,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s06_d08_amp","varname": "fHslider267","shortname": "MM_Matrix_s06_d08_amp","address": "/modular-additive/MM_Matrix_s06_d08_amp","index": 263532,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s06_d09_pan","varname": "fHslider186","shortname": "MM_Matrix_s06_d09_pan","address": "/modular-additive/MM_Matrix_s06_d09_pan","index": 263192,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s07_d00_pitch","varname": "fHslider364","shortname": "MM_Matrix_s07_d00_pitch","address": "/modular-additive/MM_Matrix_s07_d00_pitch","index": 263948,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s07_d01_bright","varname": "fHslider563","shortname": "MM_Matrix_s07_d01_bright","address": "/modular-additive/MM_Matrix_s07_d01_bright","index": 264768,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s07_d02_tilt","varname": "fHslider611","shortname": "MM_Matrix_s07_d02_tilt","address": "/modular-additive/MM_Matrix_s07_d02_tilt","index": 264960,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s07_d03_inharmonicity","varname": "fHslider415","shortname": "MM_Matrix_s07_d03_inharmonicity","address": "/modular-additive/MM_Matrix_s07_d03_inharmonicity","index": 264164,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s07_d04_odd_even","varname": "fHslider660","shortname": "MM_Matrix_s07_d04_odd_even","address": "/modular-additive/MM_Matrix_s07_d04_odd_even","index": 265156,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s07_d05_formant_ctr","varname": "fHslider464","shortname": "MM_Matrix_s07_d05_formant_ctr","address": "/modular-additive/MM_Matrix_s07_d05_formant_ctr","index": 264372,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s07_d06_formant_depth","varname": "fHslider514","shortname": "MM_Matrix_s07_d06_formant_depth","address": "/modular-additive/MM_Matrix_s07_d06_formant_depth","index": 264572,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s07_d07_noise_mix","varname": "fHslider314","shortname": "MM_Matrix_s07_d07_noise_mix","address": "/modular-additive/MM_Matrix_s07_d07_noise_mix","index": 263720,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s07_d08_amp","varname": "fHslider266","shortname": "MM_Matrix_s07_d08_amp","address": "/modular-additive/MM_Matrix_s07_d08_amp","index": 263528,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s07_d09_pan","varname": "fHslider180","shortname": "MM_Matrix_s07_d09_pan","address": "/modular-additive/MM_Matrix_s07_d09_pan","index": 263168,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s08_d00_pitch","varname": "fHslider363","shortname": "MM_Matrix_s08_d00_pitch","address": "/modular-additive/MM_Matrix_s08_d00_pitch","index": 263944,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s08_d01_bright","varname": "fHslider562","shortname": "MM_Matrix_s08_d01_bright","address": "/modular-additive/MM_Matrix_s08_d01_bright","index": 264764,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s08_d02_tilt","varname": "fHslider610","shortname": "MM_Matrix_s08_d02_tilt","address": "/modular-additive/MM_Matrix_s08_d02_tilt","index": 264956,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s08_d03_inharmonicity","varname": "fHslider414","shortname": "MM_Matrix_s08_d03_inharmonicity","address": "/modular-additive/MM_Matrix_s08_d03_inharmonicity","index": 264160,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s08_d04_odd_even","varname": "fHslider659","shortname": "MM_Matrix_s08_d04_odd_even","address": "/modular-additive/MM_Matrix_s08_d04_odd_even","index": 265152,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s08_d05_formant_ctr","varname": "fHslider463","shortname": "MM_Matrix_s08_d05_formant_ctr","address": "/modular-additive/MM_Matrix_s08_d05_formant_ctr","index": 264368,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s08_d06_formant_depth","varname": "fHslider513","shortname": "MM_Matrix_s08_d06_formant_depth","address": "/modular-additive/MM_Matrix_s08_d06_formant_depth","index": 264568,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s08_d07_noise_mix","varname": "fHslider313","shortname": "MM_Matrix_s08_d07_noise_mix","address": "/modular-additive/MM_Matrix_s08_d07_noise_mix","index": 263716,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s08_d08_amp","varname": "fHslider265","shortname": "MM_Matrix_s08_d08_amp","address": "/modular-additive/MM_Matrix_s08_d08_amp","index": 263524,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s08_d09_pan","varname": "fHslider174","shortname": "MM_Matrix_s08_d09_pan","address": "/modular-additive/MM_Matrix_s08_d09_pan","index": 263144,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s09_d00_pitch","varname": "fHslider362","shortname": "MM_Matrix_s09_d00_pitch","address": "/modular-additive/MM_Matrix_s09_d00_pitch","index": 263940,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s09_d01_bright","varname": "fHslider561","shortname": "MM_Matrix_s09_d01_bright","address": "/modular-additive/MM_Matrix_s09_d01_bright","index": 264760,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s09_d02_tilt","varname": "fHslider609","shortname": "MM_Matrix_s09_d02_tilt","address": "/modular-additive/MM_Matrix_s09_d02_tilt","index": 264952,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s09_d03_inharmonicity","varname": "fHslider413","shortname": "MM_Matrix_s09_d03_inharmonicity","address": "/modular-additive/MM_Matrix_s09_d03_inharmonicity","index": 264156,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s09_d04_odd_even","varname": "fHslider658","shortname": "MM_Matrix_s09_d04_odd_even","address": "/modular-additive/MM_Matrix_s09_d04_odd_even","index": 265148,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s09_d05_formant_ctr","varname": "fHslider462","shortname": "MM_Matrix_s09_d05_formant_ctr","address": "/modular-additive/MM_Matrix_s09_d05_formant_ctr","index": 264364,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s09_d06_formant_depth","varname": "fHslider512","shortname": "MM_Matrix_s09_d06_formant_depth","address": "/modular-additive/MM_Matrix_s09_d06_formant_depth","index": 264564,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s09_d07_noise_mix","varname": "fHslider312","shortname": "MM_Matrix_s09_d07_noise_mix","address": "/modular-additive/MM_Matrix_s09_d07_noise_mix","index": 263712,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s09_d08_amp","varname": "fHslider264","shortname": "MM_Matrix_s09_d08_amp","address": "/modular-additive/MM_Matrix_s09_d08_amp","index": 263520,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s09_d09_pan","varname": "fHslider168","shortname": "MM_Matrix_s09_d09_pan","address": "/modular-additive/MM_Matrix_s09_d09_pan","index": 263120,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s10_d00_pitch","varname": "fHslider361","shortname": "MM_Matrix_s10_d00_pitch","address": "/modular-additive/MM_Matrix_s10_d00_pitch","index": 263936,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s10_d01_bright","varname": "fHslider560","shortname": "MM_Matrix_s10_d01_bright","address": "/modular-additive/MM_Matrix_s10_d01_bright","index": 264756,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s10_d02_tilt","varname": "fHslider608","shortname": "MM_Matrix_s10_d02_tilt","address": "/modular-additive/MM_Matrix_s10_d02_tilt","index": 264948,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s10_d03_inharmonicity","varname": "fHslider412","shortname": "MM_Matrix_s10_d03_inharmonicity","address": "/modular-additive/MM_Matrix_s10_d03_inharmonicity","index": 264152,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s10_d04_odd_even","varname": "fHslider657","shortname": "MM_Matrix_s10_d04_odd_even","address": "/modular-additive/MM_Matrix_s10_d04_odd_even","index": 265144,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s10_d05_formant_ctr","varname": "fHslider461","shortname": "MM_Matrix_s10_d05_formant_ctr","address": "/modular-additive/MM_Matrix_s10_d05_formant_ctr","index": 264360,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s10_d06_formant_depth","varname": "fHslider511","shortname": "MM_Matrix_s10_d06_formant_depth","address": "/modular-additive/MM_Matrix_s10_d06_formant_depth","index": 264560,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s10_d07_noise_mix","varname": "fHslider311","shortname": "MM_Matrix_s10_d07_noise_mix","address": "/modular-additive/MM_Matrix_s10_d07_noise_mix","index": 263708,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s10_d08_amp","varname": "fHslider263","shortname": "MM_Matrix_s10_d08_amp","address": "/modular-additive/MM_Matrix_s10_d08_amp","index": 263516,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s10_d09_pan","varname": "fHslider162","shortname": "MM_Matrix_s10_d09_pan","address": "/modular-additive/MM_Matrix_s10_d09_pan","index": 263096,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s11_d00_pitch","varname": "fHslider360","shortname": "MM_Matrix_s11_d00_pitch","address": "/modular-additive/MM_Matrix_s11_d00_pitch","index": 263932,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s11_d01_bright","varname": "fHslider559","shortname": "MM_Matrix_s11_d01_bright","address": "/modular-additive/MM_Matrix_s11_d01_bright","index": 264752,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s11_d02_tilt","varname": "fHslider607","shortname": "MM_Matrix_s11_d02_tilt","address": "/modular-additive/MM_Matrix_s11_d02_tilt","index": 264944,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s11_d03_inharmonicity","varname": "fHslider411","shortname": "MM_Matrix_s11_d03_inharmonicity","address": "/modular-additive/MM_Matrix_s11_d03_inharmonicity","index": 264148,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s11_d04_odd_even","varname": "fHslider656","shortname": "MM_Matrix_s11_d04_odd_even","address": "/modular-additive/MM_Matrix_s11_d04_odd_even","index": 265140,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s11_d05_formant_ctr","varname": "fHslider460","shortname": "MM_Matrix_s11_d05_formant_ctr","address": "/modular-additive/MM_Matrix_s11_d05_formant_ctr","index": 264356,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s11_d06_formant_depth","varname": "fHslider510","shortname": "MM_Matrix_s11_d06_formant_depth","address": "/modular-additive/MM_Matrix_s11_d06_formant_depth","index": 264556,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s11_d07_noise_mix","varname": "fHslider310","shortname": "MM_Matrix_s11_d07_noise_mix","address": "/modular-additive/MM_Matrix_s11_d07_noise_mix","index": 263704,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s11_d08_amp","varname": "fHslider262","shortname": "MM_Matrix_s11_d08_amp","address": "/modular-additive/MM_Matrix_s11_d08_amp","index": 263512,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s11_d09_pan","varname": "fHslider156","shortname": "MM_Matrix_s11_d09_pan","address": "/modular-additive/MM_Matrix_s11_d09_pan","index": 263072,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s12_d00_pitch","varname": "fHslider359","shortname": "MM_Matrix_s12_d00_pitch","address": "/modular-additive/MM_Matrix_s12_d00_pitch","index": 263928,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s12_d01_bright","varname": "fHslider558","shortname": "MM_Matrix_s12_d01_bright","address": "/modular-additive/MM_Matrix_s12_d01_bright","index": 264748,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s12_d02_tilt","varname": "fHslider606","shortname": "MM_Matrix_s12_d02_tilt","address": "/modular-additive/MM_Matrix_s12_d02_tilt","index": 264940,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s12_d03_inharmonicity","varname": "fHslider410","shortname": "MM_Matrix_s12_d03_inharmonicity","address": "/modular-additive/MM_Matrix_s12_d03_inharmonicity","index": 264144,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s12_d04_odd_even","varname": "fHslider655","shortname": "MM_Matrix_s12_d04_odd_even","address": "/modular-additive/MM_Matrix_s12_d04_odd_even","index": 265136,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s12_d05_formant_ctr","varname": "fHslider459","shortname": "MM_Matrix_s12_d05_formant_ctr","address": "/modular-additive/MM_Matrix_s12_d05_formant_ctr","index": 264352,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s12_d06_formant_depth","varname": "fHslider509","shortname": "MM_Matrix_s12_d06_formant_depth","address": "/modular-additive/MM_Matrix_s12_d06_formant_depth","index": 264552,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s12_d07_noise_mix","varname": "fHslider309","shortname": "MM_Matrix_s12_d07_noise_mix","address": "/modular-additive/MM_Matrix_s12_d07_noise_mix","index": 263700,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s12_d08_amp","varname": "fHslider261","shortname": "MM_Matrix_s12_d08_amp","address": "/modular-additive/MM_Matrix_s12_d08_amp","index": 263508,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s12_d09_pan","varname": "fHslider150","shortname": "MM_Matrix_s12_d09_pan","address": "/modular-additive/MM_Matrix_s12_d09_pan","index": 263048,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s13_d00_pitch","varname": "fHslider358","shortname": "MM_Matrix_s13_d00_pitch","address": "/modular-additive/MM_Matrix_s13_d00_pitch","index": 263924,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s13_d01_bright","varname": "fHslider557","shortname": "MM_Matrix_s13_d01_bright","address": "/modular-additive/MM_Matrix_s13_d01_bright","index": 264744,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s13_d02_tilt","varname": "fHslider605","shortname": "MM_Matrix_s13_d02_tilt","address": "/modular-additive/MM_Matrix_s13_d02_tilt","index": 264936,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s13_d03_inharmonicity","varname": "fHslider409","shortname": "MM_Matrix_s13_d03_inharmonicity","address": "/modular-additive/MM_Matrix_s13_d03_inharmonicity","index": 264140,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s13_d04_odd_even","varname": "fHslider654","shortname": "MM_Matrix_s13_d04_odd_even","address": "/modular-additive/MM_Matrix_s13_d04_odd_even","index": 265132,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s13_d05_formant_ctr","varname": "fHslider458","shortname": "MM_Matrix_s13_d05_formant_ctr","address": "/modular-additive/MM_Matrix_s13_d05_formant_ctr","index": 264348,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s13_d06_formant_depth","varname": "fHslider508","shortname": "MM_Matrix_s13_d06_formant_depth","address": "/modular-additive/MM_Matrix_s13_d06_formant_depth","index": 264548,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s13_d07_noise_mix","varname": "fHslider308","shortname": "MM_Matrix_s13_d07_noise_mix","address": "/modular-additive/MM_Matrix_s13_d07_noise_mix","index": 263696,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s13_d08_amp","varname": "fHslider260","shortname": "MM_Matrix_s13_d08_amp","address": "/modular-additive/MM_Matrix_s13_d08_amp","index": 263504,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s13_d09_pan","varname": "fHslider144","shortname": "MM_Matrix_s13_d09_pan","address": "/modular-additive/MM_Matrix_s13_d09_pan","index": 263024,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s14_d00_pitch","varname": "fHslider357","shortname": "MM_Matrix_s14_d00_pitch","address": "/modular-additive/MM_Matrix_s14_d00_pitch","index": 263920,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s14_d01_bright","varname": "fHslider556","shortname": "MM_Matrix_s14_d01_bright","address": "/modular-additive/MM_Matrix_s14_d01_bright","index": 264740,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s14_d02_tilt","varname": "fHslider604","shortname": "MM_Matrix_s14_d02_tilt","address": "/modular-additive/MM_Matrix_s14_d02_tilt","index": 264932,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s14_d03_inharmonicity","varname": "fHslider408","shortname": "MM_Matrix_s14_d03_inharmonicity","address": "/modular-additive/MM_Matrix_s14_d03_inharmonicity","index": 264136,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s14_d04_odd_even","varname": "fHslider653","shortname": "MM_Matrix_s14_d04_odd_even","address": "/modular-additive/MM_Matrix_s14_d04_odd_even","index": 265128,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s14_d05_formant_ctr","varname": "fHslider457","shortname": "MM_Matrix_s14_d05_formant_ctr","address": "/modular-additive/MM_Matrix_s14_d05_formant_ctr","index": 264344,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s14_d06_formant_depth","varname": "fHslider507","shortname": "MM_Matrix_s14_d06_formant_depth","address": "/modular-additive/MM_Matrix_s14_d06_formant_depth","index": 264544,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s14_d07_noise_mix","varname": "fHslider307","shortname": "MM_Matrix_s14_d07_noise_mix","address": "/modular-additive/MM_Matrix_s14_d07_noise_mix","index": 263692,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s14_d08_amp","varname": "fHslider259","shortname": "MM_Matrix_s14_d08_amp","address": "/modular-additive/MM_Matrix_s14_d08_amp","index": 263500,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s14_d09_pan","varname": "fHslider138","shortname": "MM_Matrix_s14_d09_pan","address": "/modular-additive/MM_Matrix_s14_d09_pan","index": 263000,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s15_d00_pitch","varname": "fHslider356","shortname": "MM_Matrix_s15_d00_pitch","address": "/modular-additive/MM_Matrix_s15_d00_pitch","index": 263916,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s15_d01_bright","varname": "fHslider555","shortname": "MM_Matrix_s15_d01_bright","address": "/modular-additive/MM_Matrix_s15_d01_bright","index": 264736,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s15_d02_tilt","varname": "fHslider603","shortname": "MM_Matrix_s15_d02_tilt","address": "/modular-additive/MM_Matrix_s15_d02_tilt","index": 264928,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s15_d03_inharmonicity","varname": "fHslider407","shortname": "MM_Matrix_s15_d03_inharmonicity","address": "/modular-additive/MM_Matrix_s15_d03_inharmonicity","index": 264132,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s15_d04_odd_even","varname": "fHslider652","shortname": "MM_Matrix_s15_d04_odd_even","address": "/modular-additive/MM_Matrix_s15_d04_odd_even","index": 265124,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s15_d05_formant_ctr","varname": "fHslider456","shortname": "MM_Matrix_s15_d05_formant_ctr","address": "/modular-additive/MM_Matrix_s15_d05_formant_ctr","index": 264340,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s15_d06_formant_depth","varname": "fHslider506","shortname": "MM_Matrix_s15_d06_formant_depth","address": "/modular-additive/MM_Matrix_s15_d06_formant_depth","index": 264540,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s15_d07_noise_mix","varname": "fHslider306","shortname": "MM_Matrix_s15_d07_noise_mix","address": "/modular-additive/MM_Matrix_s15_d07_noise_mix","index": 263688,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s15_d08_amp","varname": "fHslider258","shortname": "MM_Matrix_s15_d08_amp","address": "/modular-additive/MM_Matrix_s15_d08_amp","index": 263496,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s15_d09_pan","varname": "fHslider132","shortname": "MM_Matrix_s15_d09_pan","address": "/modular-additive/MM_Matrix_s15_d09_pan","index": 262976,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s16_d00_pitch","varname": "fHslider355","shortname": "MM_Matrix_s16_d00_pitch","address": "/modular-additive/MM_Matrix_s16_d00_pitch","index": 263912,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s16_d01_bright","varname": "fHslider554","shortname": "MM_Matrix_s16_d01_bright","address": "/modular-additive/MM_Matrix_s16_d01_bright","index": 264732,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s16_d02_tilt","varname": "fHslider602","shortname": "MM_Matrix_s16_d02_tilt","address": "/modular-additive/MM_Matrix_s16_d02_tilt","index": 264924,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s16_d03_inharmonicity","varname": "fHslider406","shortname": "MM_Matrix_s16_d03_inharmonicity","address": "/modular-additive/MM_Matrix_s16_d03_inharmonicity","index": 264128,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s16_d04_odd_even","varname": "fHslider651","shortname": "MM_Matrix_s16_d04_odd_even","address": "/modular-additive/MM_Matrix_s16_d04_odd_even","index": 265120,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s16_d05_formant_ctr","varname": "fHslider455","shortname": "MM_Matrix_s16_d05_formant_ctr","address": "/modular-additive/MM_Matrix_s16_d05_formant_ctr","index": 264336,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s16_d06_formant_depth","varname": "fHslider505","shortname": "MM_Matrix_s16_d06_formant_depth","address": "/modular-additive/MM_Matrix_s16_d06_formant_depth","index": 264536,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s16_d07_noise_mix","varname": "fHslider305","shortname": "MM_Matrix_s16_d07_noise_mix","address": "/modular-additive/MM_Matrix_s16_d07_noise_mix","index": 263684,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s16_d08_amp","varname": "fHslider257","shortname": "MM_Matrix_s16_d08_amp","address": "/modular-additive/MM_Matrix_s16_d08_amp","index": 263492,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s16_d09_pan","varname": "fHslider126","shortname": "MM_Matrix_s16_d09_pan","address": "/modular-additive/MM_Matrix_s16_d09_pan","index": 262924,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s17_d00_pitch","varname": "fHslider354","shortname": "MM_Matrix_s17_d00_pitch","address": "/modular-additive/MM_Matrix_s17_d00_pitch","index": 263908,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s17_d01_bright","varname": "fHslider553","shortname": "MM_Matrix_s17_d01_bright","address": "/modular-additive/MM_Matrix_s17_d01_bright","index": 264728,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s17_d02_tilt","varname": "fHslider601","shortname": "MM_Matrix_s17_d02_tilt","address": "/modular-additive/MM_Matrix_s17_d02_tilt","index": 264920,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s17_d03_inharmonicity","varname": "fHslider405","shortname": "MM_Matrix_s17_d03_inharmonicity","address": "/modular-additive/MM_Matrix_s17_d03_inharmonicity","index": 264124,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s17_d04_odd_even","varname": "fHslider650","shortname": "MM_Matrix_s17_d04_odd_even","address": "/modular-additive/MM_Matrix_s17_d04_odd_even","index": 265116,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s17_d05_formant_ctr","varname": "fHslider454","shortname": "MM_Matrix_s17_d05_formant_ctr","address": "/modular-additive/MM_Matrix_s17_d05_formant_ctr","index": 264332,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s17_d06_formant_depth","varname": "fHslider504","shortname": "MM_Matrix_s17_d06_formant_depth","address": "/modular-additive/MM_Matrix_s17_d06_formant_depth","index": 264532,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s17_d07_noise_mix","varname": "fHslider304","shortname": "MM_Matrix_s17_d07_noise_mix","address": "/modular-additive/MM_Matrix_s17_d07_noise_mix","index": 263680,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s17_d08_amp","varname": "fHslider256","shortname": "MM_Matrix_s17_d08_amp","address": "/modular-additive/MM_Matrix_s17_d08_amp","index": 263488,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s17_d09_pan","varname": "fHslider122","shortname": "MM_Matrix_s17_d09_pan","address": "/modular-additive/MM_Matrix_s17_d09_pan","index": 262900,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s18_d00_pitch","varname": "fHslider353","shortname": "MM_Matrix_s18_d00_pitch","address": "/modular-additive/MM_Matrix_s18_d00_pitch","index": 263904,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s18_d01_bright","varname": "fHslider552","shortname": "MM_Matrix_s18_d01_bright","address": "/modular-additive/MM_Matrix_s18_d01_bright","index": 264724,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s18_d02_tilt","varname": "fHslider600","shortname": "MM_Matrix_s18_d02_tilt","address": "/modular-additive/MM_Matrix_s18_d02_tilt","index": 264916,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s18_d03_inharmonicity","varname": "fHslider404","shortname": "MM_Matrix_s18_d03_inharmonicity","address": "/modular-additive/MM_Matrix_s18_d03_inharmonicity","index": 264120,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s18_d04_odd_even","varname": "fHslider649","shortname": "MM_Matrix_s18_d04_odd_even","address": "/modular-additive/MM_Matrix_s18_d04_odd_even","index": 265112,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s18_d05_formant_ctr","varname": "fHslider453","shortname": "MM_Matrix_s18_d05_formant_ctr","address": "/modular-additive/MM_Matrix_s18_d05_formant_ctr","index": 264328,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s18_d06_formant_depth","varname": "fHslider503","shortname": "MM_Matrix_s18_d06_formant_depth","address": "/modular-additive/MM_Matrix_s18_d06_formant_depth","index": 264528,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s18_d07_noise_mix","varname": "fHslider303","shortname": "MM_Matrix_s18_d07_noise_mix","address": "/modular-additive/MM_Matrix_s18_d07_noise_mix","index": 263676,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s18_d08_amp","varname": "fHslider255","shortname": "MM_Matrix_s18_d08_amp","address": "/modular-additive/MM_Matrix_s18_d08_amp","index": 263484,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s18_d09_pan","varname": "fHslider118","shortname": "MM_Matrix_s18_d09_pan","address": "/modular-additive/MM_Matrix_s18_d09_pan","index": 262876,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s19_d00_pitch","varname": "fHslider352","shortname": "MM_Matrix_s19_d00_pitch","address": "/modular-additive/MM_Matrix_s19_d00_pitch","index": 263900,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s19_d01_bright","varname": "fHslider551","shortname": "MM_Matrix_s19_d01_bright","address": "/modular-additive/MM_Matrix_s19_d01_bright","index": 264720,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s19_d02_tilt","varname": "fHslider599","shortname": "MM_Matrix_s19_d02_tilt","address": "/modular-additive/MM_Matrix_s19_d02_tilt","index": 264912,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s19_d03_inharmonicity","varname": "fHslider403","shortname": "MM_Matrix_s19_d03_inharmonicity","address": "/modular-additive/MM_Matrix_s19_d03_inharmonicity","index": 264116,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s19_d04_odd_even","varname": "fHslider648","shortname": "MM_Matrix_s19_d04_odd_even","address": "/modular-additive/MM_Matrix_s19_d04_odd_even","index": 265108,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s19_d05_formant_ctr","varname": "fHslider452","shortname": "MM_Matrix_s19_d05_formant_ctr","address": "/modular-additive/MM_Matrix_s19_d05_formant_ctr","index": 264324,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s19_d06_formant_depth","varname": "fHslider502","shortname": "MM_Matrix_s19_d06_formant_depth","address": "/modular-additive/MM_Matrix_s19_d06_formant_depth","index": 264524,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s19_d07_noise_mix","varname": "fHslider302","shortname": "MM_Matrix_s19_d07_noise_mix","address": "/modular-additive/MM_Matrix_s19_d07_noise_mix","index": 263672,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s19_d08_amp","varname": "fHslider254","shortname": "MM_Matrix_s19_d08_amp","address": "/modular-additive/MM_Matrix_s19_d08_amp","index": 263480,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s19_d09_pan","varname": "fHslider114","shortname": "MM_Matrix_s19_d09_pan","address": "/modular-additive/MM_Matrix_s19_d09_pan","index": 262852,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s20_d00_pitch","varname": "fHslider351","shortname": "MM_Matrix_s20_d00_pitch","address": "/modular-additive/MM_Matrix_s20_d00_pitch","index": 263896,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s20_d01_bright","varname": "fHslider550","shortname": "MM_Matrix_s20_d01_bright","address": "/modular-additive/MM_Matrix_s20_d01_bright","index": 264716,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s20_d02_tilt","varname": "fHslider598","shortname": "MM_Matrix_s20_d02_tilt","address": "/modular-additive/MM_Matrix_s20_d02_tilt","index": 264908,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s20_d03_inharmonicity","varname": "fHslider402","shortname": "MM_Matrix_s20_d03_inharmonicity","address": "/modular-additive/MM_Matrix_s20_d03_inharmonicity","index": 264112,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s20_d04_odd_even","varname": "fHslider647","shortname": "MM_Matrix_s20_d04_odd_even","address": "/modular-additive/MM_Matrix_s20_d04_odd_even","index": 265104,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s20_d05_formant_ctr","varname": "fHslider451","shortname": "MM_Matrix_s20_d05_formant_ctr","address": "/modular-additive/MM_Matrix_s20_d05_formant_ctr","index": 264320,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s20_d06_formant_depth","varname": "fHslider501","shortname": "MM_Matrix_s20_d06_formant_depth","address": "/modular-additive/MM_Matrix_s20_d06_formant_depth","index": 264520,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s20_d07_noise_mix","varname": "fHslider301","shortname": "MM_Matrix_s20_d07_noise_mix","address": "/modular-additive/MM_Matrix_s20_d07_noise_mix","index": 263668,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s20_d08_amp","varname": "fHslider253","shortname": "MM_Matrix_s20_d08_amp","address": "/modular-additive/MM_Matrix_s20_d08_amp","index": 263476,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s20_d09_pan","varname": "fHslider110","shortname": "MM_Matrix_s20_d09_pan","address": "/modular-additive/MM_Matrix_s20_d09_pan","index": 262828,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s21_d00_pitch","varname": "fHslider350","shortname": "MM_Matrix_s21_d00_pitch","address": "/modular-additive/MM_Matrix_s21_d00_pitch","index": 263892,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s21_d01_bright","varname": "fHslider549","shortname": "MM_Matrix_s21_d01_bright","address": "/modular-additive/MM_Matrix_s21_d01_bright","index": 264712,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s21_d02_tilt","varname": "fHslider597","shortname": "MM_Matrix_s21_d02_tilt","address": "/modular-additive/MM_Matrix_s21_d02_tilt","index": 264904,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s21_d03_inharmonicity","varname": "fHslider401","shortname": "MM_Matrix_s21_d03_inharmonicity","address": "/modular-additive/MM_Matrix_s21_d03_inharmonicity","index": 264108,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s21_d04_odd_even","varname": "fHslider646","shortname": "MM_Matrix_s21_d04_odd_even","address": "/modular-additive/MM_Matrix_s21_d04_odd_even","index": 265100,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s21_d05_formant_ctr","varname": "fHslider450","shortname": "MM_Matrix_s21_d05_formant_ctr","address": "/modular-additive/MM_Matrix_s21_d05_formant_ctr","index": 264316,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s21_d06_formant_depth","varname": "fHslider500","shortname": "MM_Matrix_s21_d06_formant_depth","address": "/modular-additive/MM_Matrix_s21_d06_formant_depth","index": 264516,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s21_d07_noise_mix","varname": "fHslider300","shortname": "MM_Matrix_s21_d07_noise_mix","address": "/modular-additive/MM_Matrix_s21_d07_noise_mix","index": 263664,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s21_d08_amp","varname": "fHslider252","shortname": "MM_Matrix_s21_d08_amp","address": "/modular-additive/MM_Matrix_s21_d08_amp","index": 263472,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s21_d09_pan","varname": "fHslider106","shortname": "MM_Matrix_s21_d09_pan","address": "/modular-additive/MM_Matrix_s21_d09_pan","index": 262804,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s22_d00_pitch","varname": "fHslider349","shortname": "MM_Matrix_s22_d00_pitch","address": "/modular-additive/MM_Matrix_s22_d00_pitch","index": 263888,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s22_d01_bright","varname": "fHslider548","shortname": "MM_Matrix_s22_d01_bright","address": "/modular-additive/MM_Matrix_s22_d01_bright","index": 264708,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s22_d02_tilt","varname": "fHslider596","shortname": "MM_Matrix_s22_d02_tilt","address": "/modular-additive/MM_Matrix_s22_d02_tilt","index": 264900,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s22_d03_inharmonicity","varname": "fHslider400","shortname": "MM_Matrix_s22_d03_inharmonicity","address": "/modular-additive/MM_Matrix_s22_d03_inharmonicity","index": 264104,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s22_d04_odd_even","varname": "fHslider645","shortname": "MM_Matrix_s22_d04_odd_even","address": "/modular-additive/MM_Matrix_s22_d04_odd_even","index": 265096,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s22_d05_formant_ctr","varname": "fHslider449","shortname": "MM_Matrix_s22_d05_formant_ctr","address": "/modular-additive/MM_Matrix_s22_d05_formant_ctr","index": 264312,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s22_d06_formant_depth","varname": "fHslider499","shortname": "MM_Matrix_s22_d06_formant_depth","address": "/modular-additive/MM_Matrix_s22_d06_formant_depth","index": 264512,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s22_d07_noise_mix","varname": "fHslider299","shortname": "MM_Matrix_s22_d07_noise_mix","address": "/modular-additive/MM_Matrix_s22_d07_noise_mix","index": 263660,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s22_d08_amp","varname": "fHslider251","shortname": "MM_Matrix_s22_d08_amp","address": "/modular-additive/MM_Matrix_s22_d08_amp","index": 263468,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s22_d09_pan","varname": "fHslider102","shortname": "MM_Matrix_s22_d09_pan","address": "/modular-additive/MM_Matrix_s22_d09_pan","index": 262780,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s23_d00_pitch","varname": "fHslider348","shortname": "MM_Matrix_s23_d00_pitch","address": "/modular-additive/MM_Matrix_s23_d00_pitch","index": 263884,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s23_d01_bright","varname": "fHslider547","shortname": "MM_Matrix_s23_d01_bright","address": "/modular-additive/MM_Matrix_s23_d01_bright","index": 264704,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s23_d02_tilt","varname": "fHslider595","shortname": "MM_Matrix_s23_d02_tilt","address": "/modular-additive/MM_Matrix_s23_d02_tilt","index": 264896,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s23_d03_inharmonicity","varname": "fHslider399","shortname": "MM_Matrix_s23_d03_inharmonicity","address": "/modular-additive/MM_Matrix_s23_d03_inharmonicity","index": 264100,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s23_d04_odd_even","varname": "fHslider644","shortname": "MM_Matrix_s23_d04_odd_even","address": "/modular-additive/MM_Matrix_s23_d04_odd_even","index": 265092,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s23_d05_formant_ctr","varname": "fHslider448","shortname": "MM_Matrix_s23_d05_formant_ctr","address": "/modular-additive/MM_Matrix_s23_d05_formant_ctr","index": 264308,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s23_d06_formant_depth","varname": "fHslider498","shortname": "MM_Matrix_s23_d06_formant_depth","address": "/modular-additive/MM_Matrix_s23_d06_formant_depth","index": 264508,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s23_d07_noise_mix","varname": "fHslider298","shortname": "MM_Matrix_s23_d07_noise_mix","address": "/modular-additive/MM_Matrix_s23_d07_noise_mix","index": 263656,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s23_d08_amp","varname": "fHslider250","shortname": "MM_Matrix_s23_d08_amp","address": "/modular-additive/MM_Matrix_s23_d08_amp","index": 263464,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s23_d09_pan","varname": "fHslider98","shortname": "MM_Matrix_s23_d09_pan","address": "/modular-additive/MM_Matrix_s23_d09_pan","index": 262756,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s24_d00_pitch","varname": "fHslider347","shortname": "MM_Matrix_s24_d00_pitch","address": "/modular-additive/MM_Matrix_s24_d00_pitch","index": 263880,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s24_d01_bright","varname": "fHslider546","shortname": "MM_Matrix_s24_d01_bright","address": "/modular-additive/MM_Matrix_s24_d01_bright","index": 264700,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s24_d02_tilt","varname": "fHslider594","shortname": "MM_Matrix_s24_d02_tilt","address": "/modular-additive/MM_Matrix_s24_d02_tilt","index": 264892,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s24_d03_inharmonicity","varname": "fHslider398","shortname": "MM_Matrix_s24_d03_inharmonicity","address": "/modular-additive/MM_Matrix_s24_d03_inharmonicity","index": 264096,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s24_d04_odd_even","varname": "fHslider643","shortname": "MM_Matrix_s24_d04_odd_even","address": "/modular-additive/MM_Matrix_s24_d04_odd_even","index": 265088,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s24_d05_formant_ctr","varname": "fHslider447","shortname": "MM_Matrix_s24_d05_formant_ctr","address": "/modular-additive/MM_Matrix_s24_d05_formant_ctr","index": 264304,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s24_d06_formant_depth","varname": "fHslider497","shortname": "MM_Matrix_s24_d06_formant_depth","address": "/modular-additive/MM_Matrix_s24_d06_formant_depth","index": 264504,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s24_d07_noise_mix","varname": "fHslider297","shortname": "MM_Matrix_s24_d07_noise_mix","address": "/modular-additive/MM_Matrix_s24_d07_noise_mix","index": 263652,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s24_d08_amp","varname": "fHslider249","shortname": "MM_Matrix_s24_d08_amp","address": "/modular-additive/MM_Matrix_s24_d08_amp","index": 263460,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s24_d09_pan","varname": "fHslider94","shortname": "MM_Matrix_s24_d09_pan","address": "/modular-additive/MM_Matrix_s24_d09_pan","index": 262732,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s25_d00_pitch","varname": "fHslider346","shortname": "MM_Matrix_s25_d00_pitch","address": "/modular-additive/MM_Matrix_s25_d00_pitch","index": 263876,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s25_d01_bright","varname": "fHslider545","shortname": "MM_Matrix_s25_d01_bright","address": "/modular-additive/MM_Matrix_s25_d01_bright","index": 264696,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s25_d02_tilt","varname": "fHslider593","shortname": "MM_Matrix_s25_d02_tilt","address": "/modular-additive/MM_Matrix_s25_d02_tilt","index": 264888,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s25_d03_inharmonicity","varname": "fHslider397","shortname": "MM_Matrix_s25_d03_inharmonicity","address": "/modular-additive/MM_Matrix_s25_d03_inharmonicity","index": 264092,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s25_d04_odd_even","varname": "fHslider642","shortname": "MM_Matrix_s25_d04_odd_even","address": "/modular-additive/MM_Matrix_s25_d04_odd_even","index": 265084,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s25_d05_formant_ctr","varname": "fHslider446","shortname": "MM_Matrix_s25_d05_formant_ctr","address": "/modular-additive/MM_Matrix_s25_d05_formant_ctr","index": 264300,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s25_d06_formant_depth","varname": "fHslider496","shortname": "MM_Matrix_s25_d06_formant_depth","address": "/modular-additive/MM_Matrix_s25_d06_formant_depth","index": 264500,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s25_d07_noise_mix","varname": "fHslider296","shortname": "MM_Matrix_s25_d07_noise_mix","address": "/modular-additive/MM_Matrix_s25_d07_noise_mix","index": 263648,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s25_d08_amp","varname": "fHslider248","shortname": "MM_Matrix_s25_d08_amp","address": "/modular-additive/MM_Matrix_s25_d08_amp","index": 263456,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s25_d09_pan","varname": "fHslider90","shortname": "MM_Matrix_s25_d09_pan","address": "/modular-additive/MM_Matrix_s25_d09_pan","index": 262708,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s26_d00_pitch","varname": "fHslider345","shortname": "MM_Matrix_s26_d00_pitch","address": "/modular-additive/MM_Matrix_s26_d00_pitch","index": 263872,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s26_d01_bright","varname": "fHslider544","shortname": "MM_Matrix_s26_d01_bright","address": "/modular-additive/MM_Matrix_s26_d01_bright","index": 264692,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s26_d02_tilt","varname": "fHslider592","shortname": "MM_Matrix_s26_d02_tilt","address": "/modular-additive/MM_Matrix_s26_d02_tilt","index": 264884,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s26_d03_inharmonicity","varname": "fHslider396","shortname": "MM_Matrix_s26_d03_inharmonicity","address": "/modular-additive/MM_Matrix_s26_d03_inharmonicity","index": 264088,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s26_d04_odd_even","varname": "fHslider641","shortname": "MM_Matrix_s26_d04_odd_even","address": "/modular-additive/MM_Matrix_s26_d04_odd_even","index": 265080,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s26_d05_formant_ctr","varname": "fHslider445","shortname": "MM_Matrix_s26_d05_formant_ctr","address": "/modular-additive/MM_Matrix_s26_d05_formant_ctr","index": 264296,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s26_d06_formant_depth","varname": "fHslider495","shortname": "MM_Matrix_s26_d06_formant_depth","address": "/modular-additive/MM_Matrix_s26_d06_formant_depth","index": 264496,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s26_d07_noise_mix","varname": "fHslider295","shortname": "MM_Matrix_s26_d07_noise_mix","address": "/modular-additive/MM_Matrix_s26_d07_noise_mix","index": 263644,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s26_d08_amp","varname": "fHslider247","shortname": "MM_Matrix_s26_d08_amp","address": "/modular-additive/MM_Matrix_s26_d08_amp","index": 263452,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s26_d09_pan","varname": "fHslider86","shortname": "MM_Matrix_s26_d09_pan","address": "/modular-additive/MM_Matrix_s26_d09_pan","index": 262684,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s27_d00_pitch","varname": "fHslider344","shortname": "MM_Matrix_s27_d00_pitch","address": "/modular-additive/MM_Matrix_s27_d00_pitch","index": 263868,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s27_d01_bright","varname": "fHslider543","shortname": "MM_Matrix_s27_d01_bright","address": "/modular-additive/MM_Matrix_s27_d01_bright","index": 264688,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s27_d02_tilt","varname": "fHslider591","shortname": "MM_Matrix_s27_d02_tilt","address": "/modular-additive/MM_Matrix_s27_d02_tilt","index": 264880,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s27_d03_inharmonicity","varname": "fHslider395","shortname": "MM_Matrix_s27_d03_inharmonicity","address": "/modular-additive/MM_Matrix_s27_d03_inharmonicity","index": 264084,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s27_d04_odd_even","varname": "fHslider640","shortname": "MM_Matrix_s27_d04_odd_even","address": "/modular-additive/MM_Matrix_s27_d04_odd_even","index": 265076,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s27_d05_formant_ctr","varname": "fHslider444","shortname": "MM_Matrix_s27_d05_formant_ctr","address": "/modular-additive/MM_Matrix_s27_d05_formant_ctr","index": 264292,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s27_d06_formant_depth","varname": "fHslider494","shortname": "MM_Matrix_s27_d06_formant_depth","address": "/modular-additive/MM_Matrix_s27_d06_formant_depth","index": 264492,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s27_d07_noise_mix","varname": "fHslider294","shortname": "MM_Matrix_s27_d07_noise_mix","address": "/modular-additive/MM_Matrix_s27_d07_noise_mix","index": 263640,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s27_d08_amp","varname": "fHslider246","shortname": "MM_Matrix_s27_d08_amp","address": "/modular-additive/MM_Matrix_s27_d08_amp","index": 263448,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s27_d09_pan","varname": "fHslider82","shortname": "MM_Matrix_s27_d09_pan","address": "/modular-additive/MM_Matrix_s27_d09_pan","index": 262660,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s28_d00_pitch","varname": "fHslider343","shortname": "MM_Matrix_s28_d00_pitch","address": "/modular-additive/MM_Matrix_s28_d00_pitch","index": 263864,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s28_d01_bright","varname": "fHslider542","shortname": "MM_Matrix_s28_d01_bright","address": "/modular-additive/MM_Matrix_s28_d01_bright","index": 264684,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s28_d02_tilt","varname": "fHslider590","shortname": "MM_Matrix_s28_d02_tilt","address": "/modular-additive/MM_Matrix_s28_d02_tilt","index": 264876,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s28_d03_inharmonicity","varname": "fHslider394","shortname": "MM_Matrix_s28_d03_inharmonicity","address": "/modular-additive/MM_Matrix_s28_d03_inharmonicity","index": 264080,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s28_d04_odd_even","varname": "fHslider639","shortname": "MM_Matrix_s28_d04_odd_even","address": "/modular-additive/MM_Matrix_s28_d04_odd_even","index": 265072,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s28_d05_formant_ctr","varname": "fHslider443","shortname": "MM_Matrix_s28_d05_formant_ctr","address": "/modular-additive/MM_Matrix_s28_d05_formant_ctr","index": 264288,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s28_d06_formant_depth","varname": "fHslider493","shortname": "MM_Matrix_s28_d06_formant_depth","address": "/modular-additive/MM_Matrix_s28_d06_formant_depth","index": 264488,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s28_d07_noise_mix","varname": "fHslider293","shortname": "MM_Matrix_s28_d07_noise_mix","address": "/modular-additive/MM_Matrix_s28_d07_noise_mix","index": 263636,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s28_d08_amp","varname": "fHslider245","shortname": "MM_Matrix_s28_d08_amp","address": "/modular-additive/MM_Matrix_s28_d08_amp","index": 263444,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s28_d09_pan","varname": "fHslider78","shortname": "MM_Matrix_s28_d09_pan","address": "/modular-additive/MM_Matrix_s28_d09_pan","index": 262636,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s29_d00_pitch","varname": "fHslider342","shortname": "MM_Matrix_s29_d00_pitch","address": "/modular-additive/MM_Matrix_s29_d00_pitch","index": 263860,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s29_d01_bright","varname": "fHslider541","shortname": "MM_Matrix_s29_d01_bright","address": "/modular-additive/MM_Matrix_s29_d01_bright","index": 264680,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s29_d02_tilt","varname": "fHslider589","shortname": "MM_Matrix_s29_d02_tilt","address": "/modular-additive/MM_Matrix_s29_d02_tilt","index": 264872,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s29_d03_inharmonicity","varname": "fHslider393","shortname": "MM_Matrix_s29_d03_inharmonicity","address": "/modular-additive/MM_Matrix_s29_d03_inharmonicity","index": 264076,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s29_d04_odd_even","varname": "fHslider638","shortname": "MM_Matrix_s29_d04_odd_even","address": "/modular-additive/MM_Matrix_s29_d04_odd_even","index": 265068,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s29_d05_formant_ctr","varname": "fHslider442","shortname": "MM_Matrix_s29_d05_formant_ctr","address": "/modular-additive/MM_Matrix_s29_d05_formant_ctr","index": 264284,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s29_d06_formant_depth","varname": "fHslider492","shortname": "MM_Matrix_s29_d06_formant_depth","address": "/modular-additive/MM_Matrix_s29_d06_formant_depth","index": 264484,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s29_d07_noise_mix","varname": "fHslider292","shortname": "MM_Matrix_s29_d07_noise_mix","address": "/modular-additive/MM_Matrix_s29_d07_noise_mix","index": 263632,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s29_d08_amp","varname": "fHslider244","shortname": "MM_Matrix_s29_d08_amp","address": "/modular-additive/MM_Matrix_s29_d08_amp","index": 263440,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s29_d09_pan","varname": "fHslider74","shortname": "MM_Matrix_s29_d09_pan","address": "/modular-additive/MM_Matrix_s29_d09_pan","index": 262612,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s30_d00_pitch","varname": "fHslider341","shortname": "MM_Matrix_s30_d00_pitch","address": "/modular-additive/MM_Matrix_s30_d00_pitch","index": 263856,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s30_d01_bright","varname": "fHslider540","shortname": "MM_Matrix_s30_d01_bright","address": "/modular-additive/MM_Matrix_s30_d01_bright","index": 264676,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s30_d02_tilt","varname": "fHslider588","shortname": "MM_Matrix_s30_d02_tilt","address": "/modular-additive/MM_Matrix_s30_d02_tilt","index": 264868,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s30_d03_inharmonicity","varname": "fHslider392","shortname": "MM_Matrix_s30_d03_inharmonicity","address": "/modular-additive/MM_Matrix_s30_d03_inharmonicity","index": 264072,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s30_d04_odd_even","varname": "fHslider637","shortname": "MM_Matrix_s30_d04_odd_even","address": "/modular-additive/MM_Matrix_s30_d04_odd_even","index": 265064,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s30_d05_formant_ctr","varname": "fHslider441","shortname": "MM_Matrix_s30_d05_formant_ctr","address": "/modular-additive/MM_Matrix_s30_d05_formant_ctr","index": 264280,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s30_d06_formant_depth","varname": "fHslider491","shortname": "MM_Matrix_s30_d06_formant_depth","address": "/modular-additive/MM_Matrix_s30_d06_formant_depth","index": 264480,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s30_d07_noise_mix","varname": "fHslider291","shortname": "MM_Matrix_s30_d07_noise_mix","address": "/modular-additive/MM_Matrix_s30_d07_noise_mix","index": 263628,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s30_d08_amp","varname": "fHslider243","shortname": "MM_Matrix_s30_d08_amp","address": "/modular-additive/MM_Matrix_s30_d08_amp","index": 263436,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s30_d09_pan","varname": "fHslider70","shortname": "MM_Matrix_s30_d09_pan","address": "/modular-additive/MM_Matrix_s30_d09_pan","index": 262588,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s31_d00_pitch","varname": "fHslider340","shortname": "MM_Matrix_s31_d00_pitch","address": "/modular-additive/MM_Matrix_s31_d00_pitch","index": 263852,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s31_d01_bright","varname": "fHslider539","shortname": "MM_Matrix_s31_d01_bright","address": "/modular-additive/MM_Matrix_s31_d01_bright","index": 264672,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s31_d02_tilt","varname": "fHslider587","shortname": "MM_Matrix_s31_d02_tilt","address": "/modular-additive/MM_Matrix_s31_d02_tilt","index": 264864,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s31_d03_inharmonicity","varname": "fHslider391","shortname": "MM_Matrix_s31_d03_inharmonicity","address": "/modular-additive/MM_Matrix_s31_d03_inharmonicity","index": 264068,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s31_d04_odd_even","varname": "fHslider636","shortname": "MM_Matrix_s31_d04_odd_even","address": "/modular-additive/MM_Matrix_s31_d04_odd_even","index": 265060,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s31_d05_formant_ctr","varname": "fHslider440","shortname": "MM_Matrix_s31_d05_formant_ctr","address": "/modular-additive/MM_Matrix_s31_d05_formant_ctr","index": 264276,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s31_d06_formant_depth","varname": "fHslider490","shortname": "MM_Matrix_s31_d06_formant_depth","address": "/modular-additive/MM_Matrix_s31_d06_formant_depth","index": 264476,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s31_d07_noise_mix","varname": "fHslider290","shortname": "MM_Matrix_s31_d07_noise_mix","address": "/modular-additive/MM_Matrix_s31_d07_noise_mix","index": 263624,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s31_d08_amp","varname": "fHslider242","shortname": "MM_Matrix_s31_d08_amp","address": "/modular-additive/MM_Matrix_s31_d08_amp","index": 263432,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s31_d09_pan","varname": "fHslider66","shortname": "MM_Matrix_s31_d09_pan","address": "/modular-additive/MM_Matrix_s31_d09_pan","index": 262564,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s32_d00_pitch","varname": "fHslider339","shortname": "MM_Matrix_s32_d00_pitch","address": "/modular-additive/MM_Matrix_s32_d00_pitch","index": 263848,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s32_d01_bright","varname": "fHslider538","shortname": "MM_Matrix_s32_d01_bright","address": "/modular-additive/MM_Matrix_s32_d01_bright","index": 264668,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s32_d02_tilt","varname": "fHslider586","shortname": "MM_Matrix_s32_d02_tilt","address": "/modular-additive/MM_Matrix_s32_d02_tilt","index": 264860,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s32_d03_inharmonicity","varname": "fHslider390","shortname": "MM_Matrix_s32_d03_inharmonicity","address": "/modular-additive/MM_Matrix_s32_d03_inharmonicity","index": 264064,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s32_d04_odd_even","varname": "fHslider635","shortname": "MM_Matrix_s32_d04_odd_even","address": "/modular-additive/MM_Matrix_s32_d04_odd_even","index": 265056,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s32_d05_formant_ctr","varname": "fHslider439","shortname": "MM_Matrix_s32_d05_formant_ctr","address": "/modular-additive/MM_Matrix_s32_d05_formant_ctr","index": 264272,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s32_d06_formant_depth","varname": "fHslider489","shortname": "MM_Matrix_s32_d06_formant_depth","address": "/modular-additive/MM_Matrix_s32_d06_formant_depth","index": 264472,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s32_d07_noise_mix","varname": "fHslider289","shortname": "MM_Matrix_s32_d07_noise_mix","address": "/modular-additive/MM_Matrix_s32_d07_noise_mix","index": 263620,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s32_d08_amp","varname": "fHslider241","shortname": "MM_Matrix_s32_d08_amp","address": "/modular-additive/MM_Matrix_s32_d08_amp","index": 263428,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s32_d09_pan","varname": "fHslider62","shortname": "MM_Matrix_s32_d09_pan","address": "/modular-additive/MM_Matrix_s32_d09_pan","index": 262540,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s33_d00_pitch","varname": "fHslider338","shortname": "MM_Matrix_s33_d00_pitch","address": "/modular-additive/MM_Matrix_s33_d00_pitch","index": 263844,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s33_d01_bright","varname": "fHslider537","shortname": "MM_Matrix_s33_d01_bright","address": "/modular-additive/MM_Matrix_s33_d01_bright","index": 264664,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s33_d02_tilt","varname": "fHslider585","shortname": "MM_Matrix_s33_d02_tilt","address": "/modular-additive/MM_Matrix_s33_d02_tilt","index": 264856,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s33_d03_inharmonicity","varname": "fHslider389","shortname": "MM_Matrix_s33_d03_inharmonicity","address": "/modular-additive/MM_Matrix_s33_d03_inharmonicity","index": 264060,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s33_d04_odd_even","varname": "fHslider634","shortname": "MM_Matrix_s33_d04_odd_even","address": "/modular-additive/MM_Matrix_s33_d04_odd_even","index": 265052,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s33_d05_formant_ctr","varname": "fHslider438","shortname": "MM_Matrix_s33_d05_formant_ctr","address": "/modular-additive/MM_Matrix_s33_d05_formant_ctr","index": 264268,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s33_d06_formant_depth","varname": "fHslider488","shortname": "MM_Matrix_s33_d06_formant_depth","address": "/modular-additive/MM_Matrix_s33_d06_formant_depth","index": 264468,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s33_d07_noise_mix","varname": "fHslider288","shortname": "MM_Matrix_s33_d07_noise_mix","address": "/modular-additive/MM_Matrix_s33_d07_noise_mix","index": 263616,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s33_d08_amp","varname": "fHslider240","shortname": "MM_Matrix_s33_d08_amp","address": "/modular-additive/MM_Matrix_s33_d08_amp","index": 263424,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s33_d09_pan","varname": "fHslider58","shortname": "MM_Matrix_s33_d09_pan","address": "/modular-additive/MM_Matrix_s33_d09_pan","index": 262516,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s34_d00_pitch","varname": "fHslider337","shortname": "MM_Matrix_s34_d00_pitch","address": "/modular-additive/MM_Matrix_s34_d00_pitch","index": 263840,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s34_d01_bright","varname": "fHslider536","shortname": "MM_Matrix_s34_d01_bright","address": "/modular-additive/MM_Matrix_s34_d01_bright","index": 264660,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s34_d02_tilt","varname": "fHslider584","shortname": "MM_Matrix_s34_d02_tilt","address": "/modular-additive/MM_Matrix_s34_d02_tilt","index": 264852,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s34_d03_inharmonicity","varname": "fHslider388","shortname": "MM_Matrix_s34_d03_inharmonicity","address": "/modular-additive/MM_Matrix_s34_d03_inharmonicity","index": 264056,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s34_d04_odd_even","varname": "fHslider633","shortname": "MM_Matrix_s34_d04_odd_even","address": "/modular-additive/MM_Matrix_s34_d04_odd_even","index": 265048,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s34_d05_formant_ctr","varname": "fHslider437","shortname": "MM_Matrix_s34_d05_formant_ctr","address": "/modular-additive/MM_Matrix_s34_d05_formant_ctr","index": 264264,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s34_d06_formant_depth","varname": "fHslider487","shortname": "MM_Matrix_s34_d06_formant_depth","address": "/modular-additive/MM_Matrix_s34_d06_formant_depth","index": 264464,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s34_d07_noise_mix","varname": "fHslider287","shortname": "MM_Matrix_s34_d07_noise_mix","address": "/modular-additive/MM_Matrix_s34_d07_noise_mix","index": 263612,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s34_d08_amp","varname": "fHslider239","shortname": "MM_Matrix_s34_d08_amp","address": "/modular-additive/MM_Matrix_s34_d08_amp","index": 263420,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s34_d09_pan","varname": "fHslider54","shortname": "MM_Matrix_s34_d09_pan","address": "/modular-additive/MM_Matrix_s34_d09_pan","index": 262492,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s35_d00_pitch","varname": "fHslider336","shortname": "MM_Matrix_s35_d00_pitch","address": "/modular-additive/MM_Matrix_s35_d00_pitch","index": 263836,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s35_d01_bright","varname": "fHslider535","shortname": "MM_Matrix_s35_d01_bright","address": "/modular-additive/MM_Matrix_s35_d01_bright","index": 264656,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s35_d02_tilt","varname": "fHslider583","shortname": "MM_Matrix_s35_d02_tilt","address": "/modular-additive/MM_Matrix_s35_d02_tilt","index": 264848,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s35_d03_inharmonicity","varname": "fHslider387","shortname": "MM_Matrix_s35_d03_inharmonicity","address": "/modular-additive/MM_Matrix_s35_d03_inharmonicity","index": 264052,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s35_d04_odd_even","varname": "fHslider632","shortname": "MM_Matrix_s35_d04_odd_even","address": "/modular-additive/MM_Matrix_s35_d04_odd_even","index": 265044,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s35_d05_formant_ctr","varname": "fHslider436","shortname": "MM_Matrix_s35_d05_formant_ctr","address": "/modular-additive/MM_Matrix_s35_d05_formant_ctr","index": 264260,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s35_d06_formant_depth","varname": "fHslider486","shortname": "MM_Matrix_s35_d06_formant_depth","address": "/modular-additive/MM_Matrix_s35_d06_formant_depth","index": 264460,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s35_d07_noise_mix","varname": "fHslider286","shortname": "MM_Matrix_s35_d07_noise_mix","address": "/modular-additive/MM_Matrix_s35_d07_noise_mix","index": 263608,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s35_d08_amp","varname": "fHslider238","shortname": "MM_Matrix_s35_d08_amp","address": "/modular-additive/MM_Matrix_s35_d08_amp","index": 263416,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s35_d09_pan","varname": "fHslider50","shortname": "MM_Matrix_s35_d09_pan","address": "/modular-additive/MM_Matrix_s35_d09_pan","index": 262468,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s36_d00_pitch","varname": "fHslider335","shortname": "MM_Matrix_s36_d00_pitch","address": "/modular-additive/MM_Matrix_s36_d00_pitch","index": 263832,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s36_d01_bright","varname": "fHslider534","shortname": "MM_Matrix_s36_d01_bright","address": "/modular-additive/MM_Matrix_s36_d01_bright","index": 264652,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s36_d02_tilt","varname": "fHslider582","shortname": "MM_Matrix_s36_d02_tilt","address": "/modular-additive/MM_Matrix_s36_d02_tilt","index": 264844,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s36_d03_inharmonicity","varname": "fHslider386","shortname": "MM_Matrix_s36_d03_inharmonicity","address": "/modular-additive/MM_Matrix_s36_d03_inharmonicity","index": 264048,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s36_d04_odd_even","varname": "fHslider631","shortname": "MM_Matrix_s36_d04_odd_even","address": "/modular-additive/MM_Matrix_s36_d04_odd_even","index": 265040,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s36_d05_formant_ctr","varname": "fHslider435","shortname": "MM_Matrix_s36_d05_formant_ctr","address": "/modular-additive/MM_Matrix_s36_d05_formant_ctr","index": 264256,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s36_d06_formant_depth","varname": "fHslider485","shortname": "MM_Matrix_s36_d06_formant_depth","address": "/modular-additive/MM_Matrix_s36_d06_formant_depth","index": 264456,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s36_d07_noise_mix","varname": "fHslider285","shortname": "MM_Matrix_s36_d07_noise_mix","address": "/modular-additive/MM_Matrix_s36_d07_noise_mix","index": 263604,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s36_d08_amp","varname": "fHslider237","shortname": "MM_Matrix_s36_d08_amp","address": "/modular-additive/MM_Matrix_s36_d08_amp","index": 263412,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s36_d09_pan","varname": "fHslider46","shortname": "MM_Matrix_s36_d09_pan","address": "/modular-additive/MM_Matrix_s36_d09_pan","index": 262444,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s37_d00_pitch","varname": "fHslider334","shortname": "MM_Matrix_s37_d00_pitch","address": "/modular-additive/MM_Matrix_s37_d00_pitch","index": 263828,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s37_d01_bright","varname": "fHslider533","shortname": "MM_Matrix_s37_d01_bright","address": "/modular-additive/MM_Matrix_s37_d01_bright","index": 264648,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s37_d02_tilt","varname": "fHslider581","shortname": "MM_Matrix_s37_d02_tilt","address": "/modular-additive/MM_Matrix_s37_d02_tilt","index": 264840,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s37_d03_inharmonicity","varname": "fHslider385","shortname": "MM_Matrix_s37_d03_inharmonicity","address": "/modular-additive/MM_Matrix_s37_d03_inharmonicity","index": 264044,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s37_d04_odd_even","varname": "fHslider630","shortname": "MM_Matrix_s37_d04_odd_even","address": "/modular-additive/MM_Matrix_s37_d04_odd_even","index": 265036,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s37_d05_formant_ctr","varname": "fHslider434","shortname": "MM_Matrix_s37_d05_formant_ctr","address": "/modular-additive/MM_Matrix_s37_d05_formant_ctr","index": 264252,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s37_d06_formant_depth","varname": "fHslider484","shortname": "MM_Matrix_s37_d06_formant_depth","address": "/modular-additive/MM_Matrix_s37_d06_formant_depth","index": 264452,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s37_d07_noise_mix","varname": "fHslider284","shortname": "MM_Matrix_s37_d07_noise_mix","address": "/modular-additive/MM_Matrix_s37_d07_noise_mix","index": 263600,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s37_d08_amp","varname": "fHslider236","shortname": "MM_Matrix_s37_d08_amp","address": "/modular-additive/MM_Matrix_s37_d08_amp","index": 263408,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s37_d09_pan","varname": "fHslider42","shortname": "MM_Matrix_s37_d09_pan","address": "/modular-additive/MM_Matrix_s37_d09_pan","index": 262420,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s38_d00_pitch","varname": "fHslider333","shortname": "MM_Matrix_s38_d00_pitch","address": "/modular-additive/MM_Matrix_s38_d00_pitch","index": 263824,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s38_d01_bright","varname": "fHslider532","shortname": "MM_Matrix_s38_d01_bright","address": "/modular-additive/MM_Matrix_s38_d01_bright","index": 264644,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s38_d02_tilt","varname": "fHslider580","shortname": "MM_Matrix_s38_d02_tilt","address": "/modular-additive/MM_Matrix_s38_d02_tilt","index": 264836,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s38_d03_inharmonicity","varname": "fHslider384","shortname": "MM_Matrix_s38_d03_inharmonicity","address": "/modular-additive/MM_Matrix_s38_d03_inharmonicity","index": 264040,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s38_d04_odd_even","varname": "fHslider629","shortname": "MM_Matrix_s38_d04_odd_even","address": "/modular-additive/MM_Matrix_s38_d04_odd_even","index": 265032,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s38_d05_formant_ctr","varname": "fHslider433","shortname": "MM_Matrix_s38_d05_formant_ctr","address": "/modular-additive/MM_Matrix_s38_d05_formant_ctr","index": 264248,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s38_d06_formant_depth","varname": "fHslider483","shortname": "MM_Matrix_s38_d06_formant_depth","address": "/modular-additive/MM_Matrix_s38_d06_formant_depth","index": 264448,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s38_d07_noise_mix","varname": "fHslider283","shortname": "MM_Matrix_s38_d07_noise_mix","address": "/modular-additive/MM_Matrix_s38_d07_noise_mix","index": 263596,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s38_d08_amp","varname": "fHslider235","shortname": "MM_Matrix_s38_d08_amp","address": "/modular-additive/MM_Matrix_s38_d08_amp","index": 263404,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s38_d09_pan","varname": "fHslider38","shortname": "MM_Matrix_s38_d09_pan","address": "/modular-additive/MM_Matrix_s38_d09_pan","index": 262396,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s39_d00_pitch","varname": "fHslider332","shortname": "MM_Matrix_s39_d00_pitch","address": "/modular-additive/MM_Matrix_s39_d00_pitch","index": 263820,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s39_d01_bright","varname": "fHslider531","shortname": "MM_Matrix_s39_d01_bright","address": "/modular-additive/MM_Matrix_s39_d01_bright","index": 264640,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s39_d02_tilt","varname": "fHslider579","shortname": "MM_Matrix_s39_d02_tilt","address": "/modular-additive/MM_Matrix_s39_d02_tilt","index": 264832,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s39_d03_inharmonicity","varname": "fHslider383","shortname": "MM_Matrix_s39_d03_inharmonicity","address": "/modular-additive/MM_Matrix_s39_d03_inharmonicity","index": 264036,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s39_d04_odd_even","varname": "fHslider628","shortname": "MM_Matrix_s39_d04_odd_even","address": "/modular-additive/MM_Matrix_s39_d04_odd_even","index": 265028,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s39_d05_formant_ctr","varname": "fHslider432","shortname": "MM_Matrix_s39_d05_formant_ctr","address": "/modular-additive/MM_Matrix_s39_d05_formant_ctr","index": 264244,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s39_d06_formant_depth","varname": "fHslider482","shortname": "MM_Matrix_s39_d06_formant_depth","address": "/modular-additive/MM_Matrix_s39_d06_formant_depth","index": 264444,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s39_d07_noise_mix","varname": "fHslider282","shortname": "MM_Matrix_s39_d07_noise_mix","address": "/modular-additive/MM_Matrix_s39_d07_noise_mix","index": 263592,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s39_d08_amp","varname": "fHslider234","shortname": "MM_Matrix_s39_d08_amp","address": "/modular-additive/MM_Matrix_s39_d08_amp","index": 263400,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s39_d09_pan","varname": "fHslider34","shortname": "MM_Matrix_s39_d09_pan","address": "/modular-additive/MM_Matrix_s39_d09_pan","index": 262372,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s40_d00_pitch","varname": "fHslider331","shortname": "MM_Matrix_s40_d00_pitch","address": "/modular-additive/MM_Matrix_s40_d00_pitch","index": 263816,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s40_d01_bright","varname": "fHslider530","shortname": "MM_Matrix_s40_d01_bright","address": "/modular-additive/MM_Matrix_s40_d01_bright","index": 264636,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s40_d02_tilt","varname": "fHslider578","shortname": "MM_Matrix_s40_d02_tilt","address": "/modular-additive/MM_Matrix_s40_d02_tilt","index": 264828,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s40_d03_inharmonicity","varname": "fHslider382","shortname": "MM_Matrix_s40_d03_inharmonicity","address": "/modular-additive/MM_Matrix_s40_d03_inharmonicity","index": 264032,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s40_d04_odd_even","varname": "fHslider627","shortname": "MM_Matrix_s40_d04_odd_even","address": "/modular-additive/MM_Matrix_s40_d04_odd_even","index": 265024,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s40_d05_formant_ctr","varname": "fHslider431","shortname": "MM_Matrix_s40_d05_formant_ctr","address": "/modular-additive/MM_Matrix_s40_d05_formant_ctr","index": 264240,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s40_d06_formant_depth","varname": "fHslider481","shortname": "MM_Matrix_s40_d06_formant_depth","address": "/modular-additive/MM_Matrix_s40_d06_formant_depth","index": 264440,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s40_d07_noise_mix","varname": "fHslider281","shortname": "MM_Matrix_s40_d07_noise_mix","address": "/modular-additive/MM_Matrix_s40_d07_noise_mix","index": 263588,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s40_d08_amp","varname": "fHslider233","shortname": "MM_Matrix_s40_d08_amp","address": "/modular-additive/MM_Matrix_s40_d08_amp","index": 263396,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s40_d09_pan","varname": "fHslider30","shortname": "MM_Matrix_s40_d09_pan","address": "/modular-additive/MM_Matrix_s40_d09_pan","index": 262348,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s41_d00_pitch","varname": "fHslider330","shortname": "MM_Matrix_s41_d00_pitch","address": "/modular-additive/MM_Matrix_s41_d00_pitch","index": 263812,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s41_d01_bright","varname": "fHslider529","shortname": "MM_Matrix_s41_d01_bright","address": "/modular-additive/MM_Matrix_s41_d01_bright","index": 264632,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s41_d02_tilt","varname": "fHslider577","shortname": "MM_Matrix_s41_d02_tilt","address": "/modular-additive/MM_Matrix_s41_d02_tilt","index": 264824,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s41_d03_inharmonicity","varname": "fHslider381","shortname": "MM_Matrix_s41_d03_inharmonicity","address": "/modular-additive/MM_Matrix_s41_d03_inharmonicity","index": 264028,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s41_d04_odd_even","varname": "fHslider626","shortname": "MM_Matrix_s41_d04_odd_even","address": "/modular-additive/MM_Matrix_s41_d04_odd_even","index": 265020,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s41_d05_formant_ctr","varname": "fHslider430","shortname": "MM_Matrix_s41_d05_formant_ctr","address": "/modular-additive/MM_Matrix_s41_d05_formant_ctr","index": 264236,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s41_d06_formant_depth","varname": "fHslider480","shortname": "MM_Matrix_s41_d06_formant_depth","address": "/modular-additive/MM_Matrix_s41_d06_formant_depth","index": 264436,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s41_d07_noise_mix","varname": "fHslider280","shortname": "MM_Matrix_s41_d07_noise_mix","address": "/modular-additive/MM_Matrix_s41_d07_noise_mix","index": 263584,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s41_d08_amp","varname": "fHslider232","shortname": "MM_Matrix_s41_d08_amp","address": "/modular-additive/MM_Matrix_s41_d08_amp","index": 263392,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s41_d09_pan","varname": "fHslider26","shortname": "MM_Matrix_s41_d09_pan","address": "/modular-additive/MM_Matrix_s41_d09_pan","index": 262324,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s42_d00_pitch","varname": "fHslider329","shortname": "MM_Matrix_s42_d00_pitch","address": "/modular-additive/MM_Matrix_s42_d00_pitch","index": 263808,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s42_d01_bright","varname": "fHslider528","shortname": "MM_Matrix_s42_d01_bright","address": "/modular-additive/MM_Matrix_s42_d01_bright","index": 264628,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s42_d02_tilt","varname": "fHslider576","shortname": "MM_Matrix_s42_d02_tilt","address": "/modular-additive/MM_Matrix_s42_d02_tilt","index": 264820,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s42_d03_inharmonicity","varname": "fHslider380","shortname": "MM_Matrix_s42_d03_inharmonicity","address": "/modular-additive/MM_Matrix_s42_d03_inharmonicity","index": 264024,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s42_d04_odd_even","varname": "fHslider625","shortname": "MM_Matrix_s42_d04_odd_even","address": "/modular-additive/MM_Matrix_s42_d04_odd_even","index": 265016,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s42_d05_formant_ctr","varname": "fHslider429","shortname": "MM_Matrix_s42_d05_formant_ctr","address": "/modular-additive/MM_Matrix_s42_d05_formant_ctr","index": 264232,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s42_d06_formant_depth","varname": "fHslider479","shortname": "MM_Matrix_s42_d06_formant_depth","address": "/modular-additive/MM_Matrix_s42_d06_formant_depth","index": 264432,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s42_d07_noise_mix","varname": "fHslider279","shortname": "MM_Matrix_s42_d07_noise_mix","address": "/modular-additive/MM_Matrix_s42_d07_noise_mix","index": 263580,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s42_d08_amp","varname": "fHslider231","shortname": "MM_Matrix_s42_d08_amp","address": "/modular-additive/MM_Matrix_s42_d08_amp","index": 263388,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s42_d09_pan","varname": "fHslider22","shortname": "MM_Matrix_s42_d09_pan","address": "/modular-additive/MM_Matrix_s42_d09_pan","index": 262300,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s43_d00_pitch","varname": "fHslider328","shortname": "MM_Matrix_s43_d00_pitch","address": "/modular-additive/MM_Matrix_s43_d00_pitch","index": 263804,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s43_d01_bright","varname": "fHslider527","shortname": "MM_Matrix_s43_d01_bright","address": "/modular-additive/MM_Matrix_s43_d01_bright","index": 264624,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s43_d02_tilt","varname": "fHslider575","shortname": "MM_Matrix_s43_d02_tilt","address": "/modular-additive/MM_Matrix_s43_d02_tilt","index": 264816,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s43_d03_inharmonicity","varname": "fHslider379","shortname": "MM_Matrix_s43_d03_inharmonicity","address": "/modular-additive/MM_Matrix_s43_d03_inharmonicity","index": 264020,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s43_d04_odd_even","varname": "fHslider624","shortname": "MM_Matrix_s43_d04_odd_even","address": "/modular-additive/MM_Matrix_s43_d04_odd_even","index": 265012,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s43_d05_formant_ctr","varname": "fHslider428","shortname": "MM_Matrix_s43_d05_formant_ctr","address": "/modular-additive/MM_Matrix_s43_d05_formant_ctr","index": 264228,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s43_d06_formant_depth","varname": "fHslider478","shortname": "MM_Matrix_s43_d06_formant_depth","address": "/modular-additive/MM_Matrix_s43_d06_formant_depth","index": 264428,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s43_d07_noise_mix","varname": "fHslider278","shortname": "MM_Matrix_s43_d07_noise_mix","address": "/modular-additive/MM_Matrix_s43_d07_noise_mix","index": 263576,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s43_d08_amp","varname": "fHslider230","shortname": "MM_Matrix_s43_d08_amp","address": "/modular-additive/MM_Matrix_s43_d08_amp","index": 263384,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s43_d09_pan","varname": "fHslider18","shortname": "MM_Matrix_s43_d09_pan","address": "/modular-additive/MM_Matrix_s43_d09_pan","index": 262276,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s44_d00_pitch","varname": "fHslider327","shortname": "MM_Matrix_s44_d00_pitch","address": "/modular-additive/MM_Matrix_s44_d00_pitch","index": 263800,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s44_d01_bright","varname": "fHslider526","shortname": "MM_Matrix_s44_d01_bright","address": "/modular-additive/MM_Matrix_s44_d01_bright","index": 264620,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s44_d02_tilt","varname": "fHslider574","shortname": "MM_Matrix_s44_d02_tilt","address": "/modular-additive/MM_Matrix_s44_d02_tilt","index": 264812,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s44_d03_inharmonicity","varname": "fHslider378","shortname": "MM_Matrix_s44_d03_inharmonicity","address": "/modular-additive/MM_Matrix_s44_d03_inharmonicity","index": 264016,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s44_d04_odd_even","varname": "fHslider623","shortname": "MM_Matrix_s44_d04_odd_even","address": "/modular-additive/MM_Matrix_s44_d04_odd_even","index": 265008,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s44_d05_formant_ctr","varname": "fHslider427","shortname": "MM_Matrix_s44_d05_formant_ctr","address": "/modular-additive/MM_Matrix_s44_d05_formant_ctr","index": 264224,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s44_d06_formant_depth","varname": "fHslider477","shortname": "MM_Matrix_s44_d06_formant_depth","address": "/modular-additive/MM_Matrix_s44_d06_formant_depth","index": 264424,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s44_d07_noise_mix","varname": "fHslider277","shortname": "MM_Matrix_s44_d07_noise_mix","address": "/modular-additive/MM_Matrix_s44_d07_noise_mix","index": 263572,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s44_d08_amp","varname": "fHslider229","shortname": "MM_Matrix_s44_d08_amp","address": "/modular-additive/MM_Matrix_s44_d08_amp","index": 263380,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s44_d09_pan","varname": "fHslider14","shortname": "MM_Matrix_s44_d09_pan","address": "/modular-additive/MM_Matrix_s44_d09_pan","index": 262252,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s45_d00_pitch","varname": "fHslider326","shortname": "MM_Matrix_s45_d00_pitch","address": "/modular-additive/MM_Matrix_s45_d00_pitch","index": 263796,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s45_d01_bright","varname": "fHslider525","shortname": "MM_Matrix_s45_d01_bright","address": "/modular-additive/MM_Matrix_s45_d01_bright","index": 264616,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s45_d02_tilt","varname": "fHslider573","shortname": "MM_Matrix_s45_d02_tilt","address": "/modular-additive/MM_Matrix_s45_d02_tilt","index": 264808,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s45_d03_inharmonicity","varname": "fHslider377","shortname": "MM_Matrix_s45_d03_inharmonicity","address": "/modular-additive/MM_Matrix_s45_d03_inharmonicity","index": 264012,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s45_d04_odd_even","varname": "fHslider622","shortname": "MM_Matrix_s45_d04_odd_even","address": "/modular-additive/MM_Matrix_s45_d04_odd_even","index": 265004,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s45_d05_formant_ctr","varname": "fHslider426","shortname": "MM_Matrix_s45_d05_formant_ctr","address": "/modular-additive/MM_Matrix_s45_d05_formant_ctr","index": 264220,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s45_d06_formant_depth","varname": "fHslider476","shortname": "MM_Matrix_s45_d06_formant_depth","address": "/modular-additive/MM_Matrix_s45_d06_formant_depth","index": 264420,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s45_d07_noise_mix","varname": "fHslider276","shortname": "MM_Matrix_s45_d07_noise_mix","address": "/modular-additive/MM_Matrix_s45_d07_noise_mix","index": 263568,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s45_d08_amp","varname": "fHslider228","shortname": "MM_Matrix_s45_d08_amp","address": "/modular-additive/MM_Matrix_s45_d08_amp","index": 263376,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s45_d09_pan","varname": "fHslider10","shortname": "MM_Matrix_s45_d09_pan","address": "/modular-additive/MM_Matrix_s45_d09_pan","index": 262228,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s46_d00_pitch","varname": "fHslider325","shortname": "MM_Matrix_s46_d00_pitch","address": "/modular-additive/MM_Matrix_s46_d00_pitch","index": 263792,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s46_d01_bright","varname": "fHslider524","shortname": "MM_Matrix_s46_d01_bright","address": "/modular-additive/MM_Matrix_s46_d01_bright","index": 264612,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s46_d02_tilt","varname": "fHslider572","shortname": "MM_Matrix_s46_d02_tilt","address": "/modular-additive/MM_Matrix_s46_d02_tilt","index": 264804,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s46_d03_inharmonicity","varname": "fHslider376","shortname": "MM_Matrix_s46_d03_inharmonicity","address": "/modular-additive/MM_Matrix_s46_d03_inharmonicity","index": 264008,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s46_d04_odd_even","varname": "fHslider621","shortname": "MM_Matrix_s46_d04_odd_even","address": "/modular-additive/MM_Matrix_s46_d04_odd_even","index": 265000,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s46_d05_formant_ctr","varname": "fHslider425","shortname": "MM_Matrix_s46_d05_formant_ctr","address": "/modular-additive/MM_Matrix_s46_d05_formant_ctr","index": 264216,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s46_d06_formant_depth","varname": "fHslider475","shortname": "MM_Matrix_s46_d06_formant_depth","address": "/modular-additive/MM_Matrix_s46_d06_formant_depth","index": 264416,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s46_d07_noise_mix","varname": "fHslider275","shortname": "MM_Matrix_s46_d07_noise_mix","address": "/modular-additive/MM_Matrix_s46_d07_noise_mix","index": 263564,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s46_d08_amp","varname": "fHslider227","shortname": "MM_Matrix_s46_d08_amp","address": "/modular-additive/MM_Matrix_s46_d08_amp","index": 263372,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s46_d09_pan","varname": "fHslider6","shortname": "MM_Matrix_s46_d09_pan","address": "/modular-additive/MM_Matrix_s46_d09_pan","index": 262204,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s47_d00_pitch","varname": "fHslider324","shortname": "MM_Matrix_s47_d00_pitch","address": "/modular-additive/MM_Matrix_s47_d00_pitch","index": 263788,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s47_d01_bright","varname": "fHslider523","shortname": "MM_Matrix_s47_d01_bright","address": "/modular-additive/MM_Matrix_s47_d01_bright","index": 264608,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s47_d02_tilt","varname": "fHslider571","shortname": "MM_Matrix_s47_d02_tilt","address": "/modular-additive/MM_Matrix_s47_d02_tilt","index": 264800,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s47_d03_inharmonicity","varname": "fHslider375","shortname": "MM_Matrix_s47_d03_inharmonicity","address": "/modular-additive/MM_Matrix_s47_d03_inharmonicity","index": 264004,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s47_d04_odd_even","varname": "fHslider620","shortname": "MM_Matrix_s47_d04_odd_even","address": "/modular-additive/MM_Matrix_s47_d04_odd_even","index": 264996,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s47_d05_formant_ctr","varname": "fHslider424","shortname": "MM_Matrix_s47_d05_formant_ctr","address": "/modular-additive/MM_Matrix_s47_d05_formant_ctr","index": 264212,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s47_d06_formant_depth","varname": "fHslider474","shortname": "MM_Matrix_s47_d06_formant_depth","address": "/modular-additive/MM_Matrix_s47_d06_formant_depth","index": 264412,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s47_d07_noise_mix","varname": "fHslider274","shortname": "MM_Matrix_s47_d07_noise_mix","address": "/modular-additive/MM_Matrix_s47_d07_noise_mix","index": 263560,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s47_d08_amp","varname": "fHslider226","shortname": "MM_Matrix_s47_d08_amp","address": "/modular-additive/MM_Matrix_s47_d08_amp","index": 263368,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s47_d09_pan","varname": "fHslider2","shortname": "MM_Matrix_s47_d09_pan","address": "/modular-additive/MM_Matrix_s47_d09_pan","index": 262180,"init": 0,"min": -1,"max": 1,"step": 0.001}]}]} \ No newline at end of file diff --git a/playground/faust/modular-additive.wasm b/playground/faust/modular-additive.wasm new file mode 100644 index 0000000000000000000000000000000000000000..c2bddb4fde93e40ad37d2b8a8da092a6c30097d8 GIT binary patch literal 350703 zcmZ^M3w%{sb$)K%3CW19ZEfqn-PgXxscmg-r?ypR#@JS?R;#vZ)jCt1QO9}J8Q+d` z$r}g|k{bvRAV7c%1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+|F_ou_POUIhTpmS+iS0N z_W9OX>z;GCxqID&7v6j|l#q}Rx*Ul_65jKC;ydpoJfHjy{v|vgdOP$sn|DI*JRgz< zdKqLFHn7uuw4p>hSidb(B)#*_+kx3In7CVxmzwnAYd=o;*0*1O^QDAD+kf$=Z@iR{ zWczQt{*#vy-evo5e*d+X65eh5Z@qy2Z%9A&Tj+o9rG(#1nk4f*kq}BwNli=7$Q+fG z{lw^$5*ZAIiUs~C=)2~5%Ga)_Oil6_{ zTPkOW{Dl{O_`<9I^};JZdNCnWKm`T_{A5n`>5pazxMsN60)+t|Js`%^6eLM zUU~6_A0}kK+ml~c1*U!?%Z+_nc6rzDIq{1xzWL%?|M}*NKm7D-Z@u`#mtOexiwUE% zG2}b!Z>GNb;;XO!@Mnn$nd9abz|GU*MJVZ==MuuncqQVMB$)JU;wNfPE0^I^l~^+Mn0ANY*u1cXw;}tVz0K9uuY2FCW&p5j09|x)i&X|(9?;S{JDhZ z5}r(qO6SSMs=1?Iel8M8e*Ni0nJXD{<(zoeu8)Wg11qDWlRlD&9Yn^yPuu;deOh+M zJ~(JH0Mo<|JF0DBek38WDCwQ1QE!8<_?eP}Oic)n7hhBHO0#lFlEn$ciNs07QsQJ{ z8L^xgC05A1>3C(>`KEAuDzTC{jX0e+gIGnJNt{KTE%RpLHOkIg&G9+Jxx{(I8sdE7 z0^&kqjJQbV&B80&&byf7ONh0^rNm{#<-|JT3gSxQDw+2QyxwK!t>^e^;u_*wVgqp< zaXoPZv5~k@=0(>*wvUM5~4_7blWuMw}yyuXLn@7sC%IDUh8 zlX#2RPrOaML%d5IAl{RC--p-#v-95P_ygh~@geaM@i8%yZ1)>O%q8Z@wc-!(`a`SF z=Xe3JkXS@4CXOYJBaSDQ5GTmI2CuN4cOu6p5le}aiDkrcVw6}xoI;!`^S&RiKeF>y za(o(bI&lWEia3)vi#VHDO`Ie1{xM#EV&|R9@p;4=;(X!);zDAKxQMuzxJ2gtQ@sAn z&RfgzrNm{#<-|JT3gSxQDq=lxwaoh@ULUaYuHpDvVgqp_aW8QnaX+z*cz}42cu3~` zOT7Nd&fCuM!^9)Rqr?v4G2(IJ31TPlq|Eyvy#CtGdy3d?ifSNCFT+Hi3KT`6Hh+jf3Wiwa=eIGOdLxbM;uQq zAxwj8mbg^reHO3h?7Yi3zMNP`TtQq( zTt%!Wt|qP_u9bN|fme>5w}Ip9i0g?Ph>gUJ#7)G_#3tevnfH@;{j;5SE62AHn~B?r zJBT}pEyP{K-NZdI@4whNTRFCuxR1D>*hV}+JV-o5Y$qNj9w8njb`Xydj}uQ2JBcTW zr--MCUBolQv&3`6ZsK|31>!|w5AhQ5GVuzrmw1(Ujd-2dN4!D2NxVhuC*CIBA>Jhp z5bqK16CV%wYpR2!!;#9U$?F`rmKEF=~Yi-}{2i53Vi)lY z@htHiv730Fc!7A4*h9QTyiB}8>?K|$UL#&7_7QIoZxU}2`-!)ScZhe11H^m8`@{#t zLE=N=BjRIXgr8B2A?6bEi21|baXGP$ zxPrKnxQbX$Tuodqt|P7|ZXh-iHxf4yHxrwPTZmhU+lbA??Zh3#ox~R6F5+(D z9%3tTFL57nKe3H?fOwF2h}cd%Ogut7O6(vWBOWK7Aa)W@5>F9N6T66Kh-ZoCh~32V z#0$iW#2(@$;$`9$VlVM3@fz_uv5$Czc$0XG*iXDoyhFT893b8!-X}gF4iX;{9}yoD zBk8>V6LX1q#C&1_v5;6qEGCX6jw6mImJlZpClV(SONo<-WyEq~lvqKWLYzvhBu*nv zC(a;N5oZ!-5oZ&tiF1f^iSvjx#QDSp#D&BdaS?GbaS5@OxRkhzxSUu=TtQq(Tt%!W zt|qP_t|c}Q*AdqfHxL_%8;P5Un~6=tEyS(FZNz5ccH$1=PGSpj7jZXn53!ZFm$;9( zpV&q`Ks-o1L~JJ>CLSRkC3X;x5swp35Icz{iKmFCiCx4q#IwY6#BSnw;sxSGVh`~W z@iOrWv6pz2c#U|S*hjoUyh*%8>?htP-XY#44iN7V?-L&o2Z;}fkBE%nU z7I8MQnmC6zmpG4DL!3`sKwL2`6PFNciA#ygh|7s}#1+Jq#8t$4;%ed=;#y(@ zaUF3zaRafDxRJPtxS7~Q+(O(++(v9BZYS;_?j*JlcM*3J_Yhl&dx`sq`-yGD1H^;G zL&SFCVd4?uQDO)281Xpq1hJENl6Z=En%G4=Lp)17N9-n^Cte_4B=!(55ib+35POMN ziPwnNiG9Qy#GAxh#D3y!;vM2$;sEg;@jmeZagg|s_=xzJ7|G=QpO{O`Bjyteh=s%= zVliM7eiA#vJ#HGY##O1^~;tJwQ;woZ2aW!!baV@cdxQ@7&ZBdk0+K8Cy3pr@%lGwH<9C$h^55I#4@q}3|^nL_T?Op5-W&Ph*QP>b9nu` zwXfv(G~#sP3}Thoe;%(dSo@hApGBNatR~J8`~Se}i`ITF$LA4ii1UdH#QsZoec9SC z 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 literal 0 HcmV?d00001 diff --git a/playground/faust/modular-fm-processor.js b/playground/faust/modular-fm-processor.js new file mode 100644 index 0000000..73eafa9 --- /dev/null +++ b/playground/faust/modular-fm-processor.js @@ -0,0 +1,257 @@ +/** + * modular-fm-processor.js — AudioWorklet processor for the + * "Modular" mode 4-operator FM voice (modular-fm.dsp). + * + * Extends FaustWorkletProcessor (faust-worklet-processor.js). + * Loads modular-subtractive.wasm compiled by `faust -lang wasm`. + * + * Param-index strategy: + * modular-fm.dsp has ~690 parameters (30 engine + 80 ADSR + 96 LFO + * + 480 matrix + 3 hidden). Hand-maintained zone tables (additive-processor + * style) do not scale. Instead we use the wasm-native JSON descriptor + * produced by `faust -lang wasm`, which has a numeric `index` field on each + * leaf item. That index is the direct memory offset that setParamValue + * expects as its zone argument — no sentinel scanning, no address strings. + * + * The main thread fetches modular-fm.json, parses it, and passes + * the UI tree to the worklet via the init message. + * + * Calling convention (faust -lang wasm, single-instance): + * init(dsp, sampleRate) dsp is always 0 + * compute(dsp, n, inputs, outputs) + * setParamValue(dsp, zone, value) zone = numeric memory address from JSON + * getParamValue(dsp, zone) -> float + * + * Hidden params (not in the engine's ML-controllable list): + * 0_Hidden/freq — set by noteOn + * 0_Hidden/gate — set by noteOn/noteOff (button, value 0/1) + * 0_Hidden/_vel — set by noteOn + */ + +// Must be imported in AudioWorkletGlobalScope — include faust-worklet-processor.js +// via audioCtx.audioWorklet.addModule() before this file. + +const DSP = 0; +const BLOCK_SIZE = 128; + +class ModularFmProcessor extends FaustWorkletProcessor { + constructor(options) { + super(options); + this._dspInst = null; + this._dspMemory = null; // live Float32Array view + this._sampleRate = 48000; + + // Zone tables, populated once the init message has been processed. + this._paramZones = []; // NISPS index (order from JSON walk) -> zone + this._paramZonesByLabel = {}; // label -> zone (for smoke test) + this._hiddenZones = {}; // {freq, gate, _vel} -> zone + + // Audio output buffer pointers + this._outPtrsAddr = 0; + this._outLAddr = 0; + this._outRAddr = 0; + } + + // --------------------------------------------------------------------------- + // _initWasm — called by FaustWorkletProcessor.handleMessage on 'init'. + // + // Extra fields on the init message: + // uiJson — parsed Faust UI descriptor (the .json file contents) for + // zone discovery. Faust's -lang wasm embeds numeric `index` + // fields that we use directly as zone memory addresses. + // --------------------------------------------------------------------------- + + async _initWasm(wasmBytes, sampleRate, uiJson) { + this._sampleRate = sampleRate; + + const importObj = { + env: { + _sinf: Math.sin, + _cosf: Math.cos, + _tanf: Math.tan, + _expf: Math.exp, + _logf: Math.log, + _log10f: Math.log10, + _powf: Math.pow, + _tanhf: Math.tanh, + _sqrtf: Math.sqrt, + _fabsf: Math.abs, + _floorf: Math.floor, + _ceilf: Math.ceil, + _remainderf: (a, b) => a - Math.round(a / b) * b, + _fmodf: (a, b) => a % b, + _roundf: Math.round, + _truncf: Math.trunc, + _acosf: Math.acos, + _asinf: Math.asin, + _atanf: Math.atan, + _atan2f: Math.atan2, + }, + }; + + const result = await WebAssembly.instantiate(wasmBytes, importObj); + this._dspInst = result.instance; + const ex = this._dspInst.exports; + + // Grow memory by 2 pages (128 KB) so the output buffer region sits past + // Faust's allocated parameter zones. After growth we have at least + // 3 * BLOCK_SIZE * 4 bytes of scratch at the high end of memory. + ex.memory.grow(2); + + this._dspMemory = new Float32Array(ex.memory.buffer); + + // Initialise the DSP instance (single-instance convention: dsp = 0) + ex.init(DSP, sampleRate); + + // Allocate output buffers at the top of WASM memory. + const memBytes = ex.memory.buffer.byteLength; + this._outLAddr = memBytes - BLOCK_SIZE * 4 * 3; + this._outRAddr = this._outLAddr + BLOCK_SIZE * 4; + this._outPtrsAddr = this._outRAddr + BLOCK_SIZE * 4; + + const u32 = new Uint32Array(ex.memory.buffer); + u32[this._outPtrsAddr / 4] = this._outLAddr; + u32[this._outPtrsAddr / 4 + 1] = this._outRAddr; + + // Refresh the float view after any potential reallocation + this._dspMemory = new Float32Array(ex.memory.buffer); + + // Build the zone index from the JSON we were passed. + if (uiJson) { + this._buildZoneIndexFromJson(uiJson); + } else { + console.warn('[ModularFmProcessor] no uiJson in init message — ' + + 'setParam will silently no-op.'); + } + } + + // ------------------------------------------------------------------------- + // _buildZoneIndexFromJson — walk the Faust UI tree and collect numeric + // zone indexes, separating hidden params from the main NISPS-controllable + // list. Preserves the UI tree's traversal order, which matches the order + // the playground's faustJsonToParamMeta() parser will produce. + // ------------------------------------------------------------------------- + + _buildZoneIndexFromJson(faustJson) { + const HIDDEN_TAIL = new Set(['freq', 'gate', '_vel']); + const zones = []; + const byLabel = {}; + const hidden = {}; + + const walk = (items) => { + if (!Array.isArray(items)) return; + for (const item of items) { + const type = item?.type; + if (type === 'hslider' || type === 'vslider' || + type === 'nentry' || type === 'button' || + type === 'checkbox') { + const label = item.label ?? ''; + const idx = item.index; + if (typeof idx !== 'number') continue; + + const hasHiddenMeta = Array.isArray(item.meta) && + item.meta.some(m => m.hidden === '1' || m.hidden === 1); + const tail = label.includes('/') ? label.split('/').pop() : label; + + if (hasHiddenMeta || HIDDEN_TAIL.has(tail)) { + hidden[tail] = idx; + } else { + zones.push(idx); + byLabel[label] = idx; + } + } else if (item?.items) { + walk(item.items); + } + } + }; + + walk(faustJson.ui ?? []); + + this._paramZones = zones; + this._paramZonesByLabel = byLabel; + this._hiddenZones = hidden; + } + + // ------------------------------------------------------------------------- + // _onSetParam — look up the zone by NISPS index and poke the DSP + // ------------------------------------------------------------------------- + + _onSetParam(index, value) { + if (!this._dspInst) return; + const zone = this._paramZones[index]; + if (zone === undefined) return; + this._dspInst.exports.setParamValue(DSP, zone, value); + } + + _onNoteOn(freq, vel) { + if (!this._dspInst) return; + const ex = this._dspInst.exports; + const z = this._hiddenZones; + if (z.freq !== undefined) ex.setParamValue(DSP, z.freq, freq); + if (z._vel !== undefined) ex.setParamValue(DSP, z._vel, vel ?? 0.7); + if (z.gate !== undefined) ex.setParamValue(DSP, z.gate, 1.0); + } + + _onNoteOff(_freq) { + if (!this._dspInst) return; + const z = this._hiddenZones; + if (z.gate !== undefined) { + this._dspInst.exports.setParamValue(DSP, z.gate, 0.0); + } + } + + // ------------------------------------------------------------------------- + // Extended message handling — override for setByLabel + init-with-json + // ------------------------------------------------------------------------- + + _handleMessage(msg) { + if (!msg || !msg.type) return; + + if (msg.type === 'init') { + // Override the base class's init path so we can thread `uiJson` through. + this._initWasm(msg.wasmBytes, msg.sampleRate || sampleRate, msg.uiJson) + .then(() => { + this._ready = true; + this.port.postMessage({ type: 'ready' }); + this._drainPendingMessages(); + }) + .catch((err) => { + this.port.postMessage({ type: 'error', message: String(err) }); + }); + return; + } + + // Buffer anything that arrives before init() finishes. See + // faust-worklet-processor.js._queueIfNotReady. + if (this._queueIfNotReady(msg)) return; + + if (msg.type === 'setByLabel') { + const zone = this._paramZonesByLabel[msg.label]; + if (zone !== undefined) { + this._dspInst.exports.setParamValue(DSP, zone, msg.value); + } + return; + } + + // Delegate everything else (setParam, noteOn, noteOff) to the base class. + super._handleMessage(msg); + } + + // ------------------------------------------------------------------------- + // _renderBlock — call Faust compute, copy output buffers + // ------------------------------------------------------------------------- + + _renderBlock(outL, outR, blockSize) { + if (!this._dspInst || !this._dspMemory) return; + + const ex = this._dspInst.exports; + ex.compute(DSP, blockSize, 0, this._outPtrsAddr); + + const wL = new Float32Array(ex.memory.buffer, this._outLAddr, blockSize); + const wR = new Float32Array(ex.memory.buffer, this._outRAddr, blockSize); + outL.set(wL); + outR.set(wR); + } +} + +registerProcessor('modular-fm-processor', ModularFmProcessor); diff --git a/playground/faust/modular-fm.dsp b/playground/faust/modular-fm.dsp new file mode 100644 index 0000000..c2efbae --- /dev/null +++ b/playground/faust/modular-fm.dsp @@ -0,0 +1,1195 @@ +// modular-fm.dsp — 4-operator FM voice for the "Modular" mode. +// +// AUTO-GENERATED by gen-modular-dsp.py. DO NOT EDIT BY HAND. +// Regenerate with: +// cd playground/faust && python3 gen-modular-dsp.py +// +// Audio path: 4 ops with 12-cell cross-mod matrix and per-op feedback. +// All envelopes and LFOs come from mod-pool.lib via a 48-source × 10-dest +// modulation matrix. No internal envs/LFOs. +// +// Modulation destinations (10): +// 0 pitch semitones added to the base frequency +// 1 op1_level added to op1 level knob +// 2 op2_level added to op2 level knob +// 3 op3_level added to op3 level knob +// 4 op4_level added to op4 level knob +// 5 cross_mod_global global FM depth multiplier on all 12 cross-mod cells +// 6 feedback_global global feedback multiplier on all 4 self-feedback cells +// 7 global_ratio additive scale factor on all 4 operator ratios +// 8 amp master amplitude dest (route an ADSR here for a VCA env) +// 9 pan stereo balance +// +// Hidden controls (driven by noteOn/noteOff, not by the ML engine): +// freq, gate, _vel +// +// Build: +// cd playground/faust && ./build.sh +// +// --------------------------------------------------------------------------- + +import("stdfaust.lib"); +mp = library("mod-pool.lib"); + +// --------------------------------------------------------------------------- +// Hidden controls +// --------------------------------------------------------------------------- +freq = hslider("0_Hidden/freq[hidden:1][unit:Hz]", 220, 20, 4000, 0.01); +gate = button("0_Hidden/gate[hidden:1]"); +vel = hslider("0_Hidden/_vel[hidden:1]", 0.7, 0.0, 1.0, 0.001) : si.smoo; + +// --------------------------------------------------------------------------- +// Group 1 — Operators (ratio & level per op) +// --------------------------------------------------------------------------- +op1_ratio = hslider("1_Operators/00_op1_ratio", 1.0, 0.125, 16.0, 0.001); +op1_level = hslider("1_Operators/01_op1_level", 0.8, 0.0, 1.0, 0.001); +op2_ratio = hslider("1_Operators/02_op2_ratio", 2.0, 0.125, 16.0, 0.001); +op2_level = hslider("1_Operators/03_op2_level", 0.6, 0.0, 1.0, 0.001); +op3_ratio = hslider("1_Operators/04_op3_ratio", 3.0, 0.125, 16.0, 0.001); +op3_level = hslider("1_Operators/05_op3_level", 0.4, 0.0, 1.0, 0.001); +op4_ratio = hslider("1_Operators/06_op4_ratio", 0.5, 0.125, 16.0, 0.001); +op4_level = hslider("1_Operators/07_op4_level", 0.3, 0.0, 1.0, 0.001); + +// --------------------------------------------------------------------------- +// Group 2 — Cross-mod Matrix (mXY = op X modulates op Y) +// --------------------------------------------------------------------------- +m12 = hslider("2_CrossMod/00_m12", 0.0, 0.0, 10.0, 0.001); +m13 = hslider("2_CrossMod/01_m13", 0.0, 0.0, 10.0, 0.001); +m14 = hslider("2_CrossMod/02_m14", 0.0, 0.0, 10.0, 0.001); +m21 = hslider("2_CrossMod/03_m21", 1.0, 0.0, 10.0, 0.001); +m23 = hslider("2_CrossMod/04_m23", 0.0, 0.0, 10.0, 0.001); +m24 = hslider("2_CrossMod/05_m24", 0.0, 0.0, 10.0, 0.001); +m31 = hslider("2_CrossMod/06_m31", 0.0, 0.0, 10.0, 0.001); +m32 = hslider("2_CrossMod/07_m32", 0.0, 0.0, 10.0, 0.001); +m34 = hslider("2_CrossMod/08_m34", 0.0, 0.0, 10.0, 0.001); +m41 = hslider("2_CrossMod/09_m41", 0.0, 0.0, 10.0, 0.001); +m42 = hslider("2_CrossMod/10_m42", 0.0, 0.0, 10.0, 0.001); +m43 = hslider("2_CrossMod/11_m43", 0.0, 0.0, 10.0, 0.001); + +// --------------------------------------------------------------------------- +// Group 3 — Self-feedback +// --------------------------------------------------------------------------- +fb1 = hslider("3_Feedback/00_fb1", 0.0, 0.0, 1.0, 0.001); +fb2 = hslider("3_Feedback/01_fb2", 0.0, 0.0, 1.0, 0.001); +fb3 = hslider("3_Feedback/02_fb3", 0.0, 0.0, 1.0, 0.001); +fb4 = hslider("3_Feedback/03_fb4", 0.0, 0.0, 1.0, 0.001); + +// --------------------------------------------------------------------------- +// Group 4 — Master +// --------------------------------------------------------------------------- +master_level = hslider("4_Master/00_master_level", 0.7, 0.0, 1.0, 0.001); +fine_tune = hslider("4_Master/01_fine_tune[unit:ct]", 0.0, -50.0, 50.0, 0.1); +stereo_spread = hslider("4_Master/02_stereo_spread", 0.1, 0.0, 1.0, 0.001); +output_saturation = hslider("4_Master/03_output_saturation", 0.0, 0.0, 1.0, 0.001); +output_hp = hslider("4_Master/04_output_hp[unit:Hz]",20.0, 20.0, 200.0,0.1); +master_pan = hslider("4_Master/05_master_pan", 0.0, -1.0, 1.0, 0.001); + +// --------------------------------------------------------------------------- +// Modulation matrix — 48 sources × 10 destinations. +// Each hslider is one "amount" entry in [-1, +1]. Zero = no connection. +// Group "MM_Matrix" so the paramMeta parser can recognise matrix params. +// --------------------------------------------------------------------------- + +// Matrix column: destination 0 = pitch +amt_s00_d00_pitch = hslider("MM_Matrix/s00_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s01_d00_pitch = hslider("MM_Matrix/s01_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s02_d00_pitch = hslider("MM_Matrix/s02_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s03_d00_pitch = hslider("MM_Matrix/s03_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s04_d00_pitch = hslider("MM_Matrix/s04_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s05_d00_pitch = hslider("MM_Matrix/s05_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s06_d00_pitch = hslider("MM_Matrix/s06_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s07_d00_pitch = hslider("MM_Matrix/s07_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s08_d00_pitch = hslider("MM_Matrix/s08_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s09_d00_pitch = hslider("MM_Matrix/s09_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s10_d00_pitch = hslider("MM_Matrix/s10_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s11_d00_pitch = hslider("MM_Matrix/s11_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s12_d00_pitch = hslider("MM_Matrix/s12_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s13_d00_pitch = hslider("MM_Matrix/s13_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s14_d00_pitch = hslider("MM_Matrix/s14_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s15_d00_pitch = hslider("MM_Matrix/s15_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s16_d00_pitch = hslider("MM_Matrix/s16_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s17_d00_pitch = hslider("MM_Matrix/s17_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s18_d00_pitch = hslider("MM_Matrix/s18_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s19_d00_pitch = hslider("MM_Matrix/s19_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s20_d00_pitch = hslider("MM_Matrix/s20_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s21_d00_pitch = hslider("MM_Matrix/s21_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s22_d00_pitch = hslider("MM_Matrix/s22_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s23_d00_pitch = hslider("MM_Matrix/s23_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s24_d00_pitch = hslider("MM_Matrix/s24_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s25_d00_pitch = hslider("MM_Matrix/s25_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s26_d00_pitch = hslider("MM_Matrix/s26_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s27_d00_pitch = hslider("MM_Matrix/s27_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s28_d00_pitch = hslider("MM_Matrix/s28_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s29_d00_pitch = hslider("MM_Matrix/s29_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s30_d00_pitch = hslider("MM_Matrix/s30_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s31_d00_pitch = hslider("MM_Matrix/s31_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s32_d00_pitch = hslider("MM_Matrix/s32_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s33_d00_pitch = hslider("MM_Matrix/s33_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s34_d00_pitch = hslider("MM_Matrix/s34_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s35_d00_pitch = hslider("MM_Matrix/s35_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s36_d00_pitch = hslider("MM_Matrix/s36_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s37_d00_pitch = hslider("MM_Matrix/s37_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s38_d00_pitch = hslider("MM_Matrix/s38_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s39_d00_pitch = hslider("MM_Matrix/s39_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s40_d00_pitch = hslider("MM_Matrix/s40_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s41_d00_pitch = hslider("MM_Matrix/s41_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s42_d00_pitch = hslider("MM_Matrix/s42_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s43_d00_pitch = hslider("MM_Matrix/s43_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s44_d00_pitch = hslider("MM_Matrix/s44_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s45_d00_pitch = hslider("MM_Matrix/s45_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s46_d00_pitch = hslider("MM_Matrix/s46_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s47_d00_pitch = hslider("MM_Matrix/s47_d00_pitch", 0.0, -1.0, 1.0, 0.001); + +// Matrix column: destination 1 = op1_level +amt_s00_d01_op1_level = hslider("MM_Matrix/s00_d01_op1_level", 0.0, -1.0, 1.0, 0.001); +amt_s01_d01_op1_level = hslider("MM_Matrix/s01_d01_op1_level", 0.0, -1.0, 1.0, 0.001); +amt_s02_d01_op1_level = hslider("MM_Matrix/s02_d01_op1_level", 0.0, -1.0, 1.0, 0.001); +amt_s03_d01_op1_level = hslider("MM_Matrix/s03_d01_op1_level", 0.0, -1.0, 1.0, 0.001); +amt_s04_d01_op1_level = hslider("MM_Matrix/s04_d01_op1_level", 0.0, -1.0, 1.0, 0.001); +amt_s05_d01_op1_level = hslider("MM_Matrix/s05_d01_op1_level", 0.0, -1.0, 1.0, 0.001); +amt_s06_d01_op1_level = hslider("MM_Matrix/s06_d01_op1_level", 0.0, -1.0, 1.0, 0.001); +amt_s07_d01_op1_level = hslider("MM_Matrix/s07_d01_op1_level", 0.0, -1.0, 1.0, 0.001); +amt_s08_d01_op1_level = hslider("MM_Matrix/s08_d01_op1_level", 0.0, -1.0, 1.0, 0.001); +amt_s09_d01_op1_level = hslider("MM_Matrix/s09_d01_op1_level", 0.0, -1.0, 1.0, 0.001); +amt_s10_d01_op1_level = hslider("MM_Matrix/s10_d01_op1_level", 0.0, -1.0, 1.0, 0.001); +amt_s11_d01_op1_level = hslider("MM_Matrix/s11_d01_op1_level", 0.0, -1.0, 1.0, 0.001); +amt_s12_d01_op1_level = hslider("MM_Matrix/s12_d01_op1_level", 0.0, -1.0, 1.0, 0.001); +amt_s13_d01_op1_level = hslider("MM_Matrix/s13_d01_op1_level", 0.0, -1.0, 1.0, 0.001); +amt_s14_d01_op1_level = hslider("MM_Matrix/s14_d01_op1_level", 0.0, -1.0, 1.0, 0.001); +amt_s15_d01_op1_level = hslider("MM_Matrix/s15_d01_op1_level", 0.0, -1.0, 1.0, 0.001); +amt_s16_d01_op1_level = hslider("MM_Matrix/s16_d01_op1_level", 0.0, -1.0, 1.0, 0.001); +amt_s17_d01_op1_level = hslider("MM_Matrix/s17_d01_op1_level", 0.0, -1.0, 1.0, 0.001); +amt_s18_d01_op1_level = hslider("MM_Matrix/s18_d01_op1_level", 0.0, -1.0, 1.0, 0.001); +amt_s19_d01_op1_level = hslider("MM_Matrix/s19_d01_op1_level", 0.0, -1.0, 1.0, 0.001); +amt_s20_d01_op1_level = hslider("MM_Matrix/s20_d01_op1_level", 0.0, -1.0, 1.0, 0.001); +amt_s21_d01_op1_level = hslider("MM_Matrix/s21_d01_op1_level", 0.0, -1.0, 1.0, 0.001); +amt_s22_d01_op1_level = hslider("MM_Matrix/s22_d01_op1_level", 0.0, -1.0, 1.0, 0.001); +amt_s23_d01_op1_level = hslider("MM_Matrix/s23_d01_op1_level", 0.0, -1.0, 1.0, 0.001); +amt_s24_d01_op1_level = hslider("MM_Matrix/s24_d01_op1_level", 0.0, -1.0, 1.0, 0.001); +amt_s25_d01_op1_level = hslider("MM_Matrix/s25_d01_op1_level", 0.0, -1.0, 1.0, 0.001); +amt_s26_d01_op1_level = hslider("MM_Matrix/s26_d01_op1_level", 0.0, -1.0, 1.0, 0.001); +amt_s27_d01_op1_level = hslider("MM_Matrix/s27_d01_op1_level", 0.0, -1.0, 1.0, 0.001); +amt_s28_d01_op1_level = hslider("MM_Matrix/s28_d01_op1_level", 0.0, -1.0, 1.0, 0.001); +amt_s29_d01_op1_level = hslider("MM_Matrix/s29_d01_op1_level", 0.0, -1.0, 1.0, 0.001); +amt_s30_d01_op1_level = hslider("MM_Matrix/s30_d01_op1_level", 0.0, -1.0, 1.0, 0.001); +amt_s31_d01_op1_level = hslider("MM_Matrix/s31_d01_op1_level", 0.0, -1.0, 1.0, 0.001); +amt_s32_d01_op1_level = hslider("MM_Matrix/s32_d01_op1_level", 0.0, -1.0, 1.0, 0.001); +amt_s33_d01_op1_level = hslider("MM_Matrix/s33_d01_op1_level", 0.0, -1.0, 1.0, 0.001); +amt_s34_d01_op1_level = hslider("MM_Matrix/s34_d01_op1_level", 0.0, -1.0, 1.0, 0.001); +amt_s35_d01_op1_level = hslider("MM_Matrix/s35_d01_op1_level", 0.0, -1.0, 1.0, 0.001); +amt_s36_d01_op1_level = hslider("MM_Matrix/s36_d01_op1_level", 0.0, -1.0, 1.0, 0.001); +amt_s37_d01_op1_level = hslider("MM_Matrix/s37_d01_op1_level", 0.0, -1.0, 1.0, 0.001); +amt_s38_d01_op1_level = hslider("MM_Matrix/s38_d01_op1_level", 0.0, -1.0, 1.0, 0.001); +amt_s39_d01_op1_level = hslider("MM_Matrix/s39_d01_op1_level", 0.0, -1.0, 1.0, 0.001); +amt_s40_d01_op1_level = hslider("MM_Matrix/s40_d01_op1_level", 0.0, -1.0, 1.0, 0.001); +amt_s41_d01_op1_level = hslider("MM_Matrix/s41_d01_op1_level", 0.0, -1.0, 1.0, 0.001); +amt_s42_d01_op1_level = hslider("MM_Matrix/s42_d01_op1_level", 0.0, -1.0, 1.0, 0.001); +amt_s43_d01_op1_level = hslider("MM_Matrix/s43_d01_op1_level", 0.0, -1.0, 1.0, 0.001); +amt_s44_d01_op1_level = hslider("MM_Matrix/s44_d01_op1_level", 0.0, -1.0, 1.0, 0.001); +amt_s45_d01_op1_level = hslider("MM_Matrix/s45_d01_op1_level", 0.0, -1.0, 1.0, 0.001); +amt_s46_d01_op1_level = hslider("MM_Matrix/s46_d01_op1_level", 0.0, -1.0, 1.0, 0.001); +amt_s47_d01_op1_level = hslider("MM_Matrix/s47_d01_op1_level", 0.0, -1.0, 1.0, 0.001); + +// Matrix column: destination 2 = op2_level +amt_s00_d02_op2_level = hslider("MM_Matrix/s00_d02_op2_level", 0.0, -1.0, 1.0, 0.001); +amt_s01_d02_op2_level = hslider("MM_Matrix/s01_d02_op2_level", 0.0, -1.0, 1.0, 0.001); +amt_s02_d02_op2_level = hslider("MM_Matrix/s02_d02_op2_level", 0.0, -1.0, 1.0, 0.001); +amt_s03_d02_op2_level = hslider("MM_Matrix/s03_d02_op2_level", 0.0, -1.0, 1.0, 0.001); +amt_s04_d02_op2_level = hslider("MM_Matrix/s04_d02_op2_level", 0.0, -1.0, 1.0, 0.001); +amt_s05_d02_op2_level = hslider("MM_Matrix/s05_d02_op2_level", 0.0, -1.0, 1.0, 0.001); +amt_s06_d02_op2_level = hslider("MM_Matrix/s06_d02_op2_level", 0.0, -1.0, 1.0, 0.001); +amt_s07_d02_op2_level = hslider("MM_Matrix/s07_d02_op2_level", 0.0, -1.0, 1.0, 0.001); +amt_s08_d02_op2_level = hslider("MM_Matrix/s08_d02_op2_level", 0.0, -1.0, 1.0, 0.001); +amt_s09_d02_op2_level = hslider("MM_Matrix/s09_d02_op2_level", 0.0, -1.0, 1.0, 0.001); +amt_s10_d02_op2_level = hslider("MM_Matrix/s10_d02_op2_level", 0.0, -1.0, 1.0, 0.001); +amt_s11_d02_op2_level = hslider("MM_Matrix/s11_d02_op2_level", 0.0, -1.0, 1.0, 0.001); +amt_s12_d02_op2_level = hslider("MM_Matrix/s12_d02_op2_level", 0.0, -1.0, 1.0, 0.001); +amt_s13_d02_op2_level = hslider("MM_Matrix/s13_d02_op2_level", 0.0, -1.0, 1.0, 0.001); +amt_s14_d02_op2_level = hslider("MM_Matrix/s14_d02_op2_level", 0.0, -1.0, 1.0, 0.001); +amt_s15_d02_op2_level = hslider("MM_Matrix/s15_d02_op2_level", 0.0, -1.0, 1.0, 0.001); +amt_s16_d02_op2_level = hslider("MM_Matrix/s16_d02_op2_level", 0.0, -1.0, 1.0, 0.001); +amt_s17_d02_op2_level = hslider("MM_Matrix/s17_d02_op2_level", 0.0, -1.0, 1.0, 0.001); +amt_s18_d02_op2_level = hslider("MM_Matrix/s18_d02_op2_level", 0.0, -1.0, 1.0, 0.001); +amt_s19_d02_op2_level = hslider("MM_Matrix/s19_d02_op2_level", 0.0, -1.0, 1.0, 0.001); +amt_s20_d02_op2_level = hslider("MM_Matrix/s20_d02_op2_level", 0.0, -1.0, 1.0, 0.001); +amt_s21_d02_op2_level = hslider("MM_Matrix/s21_d02_op2_level", 0.0, -1.0, 1.0, 0.001); +amt_s22_d02_op2_level = hslider("MM_Matrix/s22_d02_op2_level", 0.0, -1.0, 1.0, 0.001); +amt_s23_d02_op2_level = hslider("MM_Matrix/s23_d02_op2_level", 0.0, -1.0, 1.0, 0.001); +amt_s24_d02_op2_level = hslider("MM_Matrix/s24_d02_op2_level", 0.0, -1.0, 1.0, 0.001); +amt_s25_d02_op2_level = hslider("MM_Matrix/s25_d02_op2_level", 0.0, -1.0, 1.0, 0.001); +amt_s26_d02_op2_level = hslider("MM_Matrix/s26_d02_op2_level", 0.0, -1.0, 1.0, 0.001); +amt_s27_d02_op2_level = hslider("MM_Matrix/s27_d02_op2_level", 0.0, -1.0, 1.0, 0.001); +amt_s28_d02_op2_level = hslider("MM_Matrix/s28_d02_op2_level", 0.0, -1.0, 1.0, 0.001); +amt_s29_d02_op2_level = hslider("MM_Matrix/s29_d02_op2_level", 0.0, -1.0, 1.0, 0.001); +amt_s30_d02_op2_level = hslider("MM_Matrix/s30_d02_op2_level", 0.0, -1.0, 1.0, 0.001); +amt_s31_d02_op2_level = hslider("MM_Matrix/s31_d02_op2_level", 0.0, -1.0, 1.0, 0.001); +amt_s32_d02_op2_level = hslider("MM_Matrix/s32_d02_op2_level", 0.0, -1.0, 1.0, 0.001); +amt_s33_d02_op2_level = hslider("MM_Matrix/s33_d02_op2_level", 0.0, -1.0, 1.0, 0.001); +amt_s34_d02_op2_level = hslider("MM_Matrix/s34_d02_op2_level", 0.0, -1.0, 1.0, 0.001); +amt_s35_d02_op2_level = hslider("MM_Matrix/s35_d02_op2_level", 0.0, -1.0, 1.0, 0.001); +amt_s36_d02_op2_level = hslider("MM_Matrix/s36_d02_op2_level", 0.0, -1.0, 1.0, 0.001); +amt_s37_d02_op2_level = hslider("MM_Matrix/s37_d02_op2_level", 0.0, -1.0, 1.0, 0.001); +amt_s38_d02_op2_level = hslider("MM_Matrix/s38_d02_op2_level", 0.0, -1.0, 1.0, 0.001); +amt_s39_d02_op2_level = hslider("MM_Matrix/s39_d02_op2_level", 0.0, -1.0, 1.0, 0.001); +amt_s40_d02_op2_level = hslider("MM_Matrix/s40_d02_op2_level", 0.0, -1.0, 1.0, 0.001); +amt_s41_d02_op2_level = hslider("MM_Matrix/s41_d02_op2_level", 0.0, -1.0, 1.0, 0.001); +amt_s42_d02_op2_level = hslider("MM_Matrix/s42_d02_op2_level", 0.0, -1.0, 1.0, 0.001); +amt_s43_d02_op2_level = hslider("MM_Matrix/s43_d02_op2_level", 0.0, -1.0, 1.0, 0.001); +amt_s44_d02_op2_level = hslider("MM_Matrix/s44_d02_op2_level", 0.0, -1.0, 1.0, 0.001); +amt_s45_d02_op2_level = hslider("MM_Matrix/s45_d02_op2_level", 0.0, -1.0, 1.0, 0.001); +amt_s46_d02_op2_level = hslider("MM_Matrix/s46_d02_op2_level", 0.0, -1.0, 1.0, 0.001); +amt_s47_d02_op2_level = hslider("MM_Matrix/s47_d02_op2_level", 0.0, -1.0, 1.0, 0.001); + +// Matrix column: destination 3 = op3_level +amt_s00_d03_op3_level = hslider("MM_Matrix/s00_d03_op3_level", 0.0, -1.0, 1.0, 0.001); +amt_s01_d03_op3_level = hslider("MM_Matrix/s01_d03_op3_level", 0.0, -1.0, 1.0, 0.001); +amt_s02_d03_op3_level = hslider("MM_Matrix/s02_d03_op3_level", 0.0, -1.0, 1.0, 0.001); +amt_s03_d03_op3_level = hslider("MM_Matrix/s03_d03_op3_level", 0.0, -1.0, 1.0, 0.001); +amt_s04_d03_op3_level = hslider("MM_Matrix/s04_d03_op3_level", 0.0, -1.0, 1.0, 0.001); +amt_s05_d03_op3_level = hslider("MM_Matrix/s05_d03_op3_level", 0.0, -1.0, 1.0, 0.001); +amt_s06_d03_op3_level = hslider("MM_Matrix/s06_d03_op3_level", 0.0, -1.0, 1.0, 0.001); +amt_s07_d03_op3_level = hslider("MM_Matrix/s07_d03_op3_level", 0.0, -1.0, 1.0, 0.001); +amt_s08_d03_op3_level = hslider("MM_Matrix/s08_d03_op3_level", 0.0, -1.0, 1.0, 0.001); +amt_s09_d03_op3_level = hslider("MM_Matrix/s09_d03_op3_level", 0.0, -1.0, 1.0, 0.001); +amt_s10_d03_op3_level = hslider("MM_Matrix/s10_d03_op3_level", 0.0, -1.0, 1.0, 0.001); +amt_s11_d03_op3_level = hslider("MM_Matrix/s11_d03_op3_level", 0.0, -1.0, 1.0, 0.001); +amt_s12_d03_op3_level = hslider("MM_Matrix/s12_d03_op3_level", 0.0, -1.0, 1.0, 0.001); +amt_s13_d03_op3_level = hslider("MM_Matrix/s13_d03_op3_level", 0.0, -1.0, 1.0, 0.001); +amt_s14_d03_op3_level = hslider("MM_Matrix/s14_d03_op3_level", 0.0, -1.0, 1.0, 0.001); +amt_s15_d03_op3_level = hslider("MM_Matrix/s15_d03_op3_level", 0.0, -1.0, 1.0, 0.001); +amt_s16_d03_op3_level = hslider("MM_Matrix/s16_d03_op3_level", 0.0, -1.0, 1.0, 0.001); +amt_s17_d03_op3_level = hslider("MM_Matrix/s17_d03_op3_level", 0.0, -1.0, 1.0, 0.001); +amt_s18_d03_op3_level = hslider("MM_Matrix/s18_d03_op3_level", 0.0, -1.0, 1.0, 0.001); +amt_s19_d03_op3_level = hslider("MM_Matrix/s19_d03_op3_level", 0.0, -1.0, 1.0, 0.001); +amt_s20_d03_op3_level = hslider("MM_Matrix/s20_d03_op3_level", 0.0, -1.0, 1.0, 0.001); +amt_s21_d03_op3_level = hslider("MM_Matrix/s21_d03_op3_level", 0.0, -1.0, 1.0, 0.001); +amt_s22_d03_op3_level = hslider("MM_Matrix/s22_d03_op3_level", 0.0, -1.0, 1.0, 0.001); +amt_s23_d03_op3_level = hslider("MM_Matrix/s23_d03_op3_level", 0.0, -1.0, 1.0, 0.001); +amt_s24_d03_op3_level = hslider("MM_Matrix/s24_d03_op3_level", 0.0, -1.0, 1.0, 0.001); +amt_s25_d03_op3_level = hslider("MM_Matrix/s25_d03_op3_level", 0.0, -1.0, 1.0, 0.001); +amt_s26_d03_op3_level = hslider("MM_Matrix/s26_d03_op3_level", 0.0, -1.0, 1.0, 0.001); +amt_s27_d03_op3_level = hslider("MM_Matrix/s27_d03_op3_level", 0.0, -1.0, 1.0, 0.001); +amt_s28_d03_op3_level = hslider("MM_Matrix/s28_d03_op3_level", 0.0, -1.0, 1.0, 0.001); +amt_s29_d03_op3_level = hslider("MM_Matrix/s29_d03_op3_level", 0.0, -1.0, 1.0, 0.001); +amt_s30_d03_op3_level = hslider("MM_Matrix/s30_d03_op3_level", 0.0, -1.0, 1.0, 0.001); +amt_s31_d03_op3_level = hslider("MM_Matrix/s31_d03_op3_level", 0.0, -1.0, 1.0, 0.001); +amt_s32_d03_op3_level = hslider("MM_Matrix/s32_d03_op3_level", 0.0, -1.0, 1.0, 0.001); +amt_s33_d03_op3_level = hslider("MM_Matrix/s33_d03_op3_level", 0.0, -1.0, 1.0, 0.001); +amt_s34_d03_op3_level = hslider("MM_Matrix/s34_d03_op3_level", 0.0, -1.0, 1.0, 0.001); +amt_s35_d03_op3_level = hslider("MM_Matrix/s35_d03_op3_level", 0.0, -1.0, 1.0, 0.001); +amt_s36_d03_op3_level = hslider("MM_Matrix/s36_d03_op3_level", 0.0, -1.0, 1.0, 0.001); +amt_s37_d03_op3_level = hslider("MM_Matrix/s37_d03_op3_level", 0.0, -1.0, 1.0, 0.001); +amt_s38_d03_op3_level = hslider("MM_Matrix/s38_d03_op3_level", 0.0, -1.0, 1.0, 0.001); +amt_s39_d03_op3_level = hslider("MM_Matrix/s39_d03_op3_level", 0.0, -1.0, 1.0, 0.001); +amt_s40_d03_op3_level = hslider("MM_Matrix/s40_d03_op3_level", 0.0, -1.0, 1.0, 0.001); +amt_s41_d03_op3_level = hslider("MM_Matrix/s41_d03_op3_level", 0.0, -1.0, 1.0, 0.001); +amt_s42_d03_op3_level = hslider("MM_Matrix/s42_d03_op3_level", 0.0, -1.0, 1.0, 0.001); +amt_s43_d03_op3_level = hslider("MM_Matrix/s43_d03_op3_level", 0.0, -1.0, 1.0, 0.001); +amt_s44_d03_op3_level = hslider("MM_Matrix/s44_d03_op3_level", 0.0, -1.0, 1.0, 0.001); +amt_s45_d03_op3_level = hslider("MM_Matrix/s45_d03_op3_level", 0.0, -1.0, 1.0, 0.001); +amt_s46_d03_op3_level = hslider("MM_Matrix/s46_d03_op3_level", 0.0, -1.0, 1.0, 0.001); +amt_s47_d03_op3_level = hslider("MM_Matrix/s47_d03_op3_level", 0.0, -1.0, 1.0, 0.001); + +// Matrix column: destination 4 = op4_level +amt_s00_d04_op4_level = hslider("MM_Matrix/s00_d04_op4_level", 0.0, -1.0, 1.0, 0.001); +amt_s01_d04_op4_level = hslider("MM_Matrix/s01_d04_op4_level", 0.0, -1.0, 1.0, 0.001); +amt_s02_d04_op4_level = hslider("MM_Matrix/s02_d04_op4_level", 0.0, -1.0, 1.0, 0.001); +amt_s03_d04_op4_level = hslider("MM_Matrix/s03_d04_op4_level", 0.0, -1.0, 1.0, 0.001); +amt_s04_d04_op4_level = hslider("MM_Matrix/s04_d04_op4_level", 0.0, -1.0, 1.0, 0.001); +amt_s05_d04_op4_level = hslider("MM_Matrix/s05_d04_op4_level", 0.0, -1.0, 1.0, 0.001); +amt_s06_d04_op4_level = hslider("MM_Matrix/s06_d04_op4_level", 0.0, -1.0, 1.0, 0.001); +amt_s07_d04_op4_level = hslider("MM_Matrix/s07_d04_op4_level", 0.0, -1.0, 1.0, 0.001); +amt_s08_d04_op4_level = hslider("MM_Matrix/s08_d04_op4_level", 0.0, -1.0, 1.0, 0.001); +amt_s09_d04_op4_level = hslider("MM_Matrix/s09_d04_op4_level", 0.0, -1.0, 1.0, 0.001); +amt_s10_d04_op4_level = hslider("MM_Matrix/s10_d04_op4_level", 0.0, -1.0, 1.0, 0.001); +amt_s11_d04_op4_level = hslider("MM_Matrix/s11_d04_op4_level", 0.0, -1.0, 1.0, 0.001); +amt_s12_d04_op4_level = hslider("MM_Matrix/s12_d04_op4_level", 0.0, -1.0, 1.0, 0.001); +amt_s13_d04_op4_level = hslider("MM_Matrix/s13_d04_op4_level", 0.0, -1.0, 1.0, 0.001); +amt_s14_d04_op4_level = hslider("MM_Matrix/s14_d04_op4_level", 0.0, -1.0, 1.0, 0.001); +amt_s15_d04_op4_level = hslider("MM_Matrix/s15_d04_op4_level", 0.0, -1.0, 1.0, 0.001); +amt_s16_d04_op4_level = hslider("MM_Matrix/s16_d04_op4_level", 0.0, -1.0, 1.0, 0.001); +amt_s17_d04_op4_level = hslider("MM_Matrix/s17_d04_op4_level", 0.0, -1.0, 1.0, 0.001); +amt_s18_d04_op4_level = hslider("MM_Matrix/s18_d04_op4_level", 0.0, -1.0, 1.0, 0.001); +amt_s19_d04_op4_level = hslider("MM_Matrix/s19_d04_op4_level", 0.0, -1.0, 1.0, 0.001); +amt_s20_d04_op4_level = hslider("MM_Matrix/s20_d04_op4_level", 0.0, -1.0, 1.0, 0.001); +amt_s21_d04_op4_level = hslider("MM_Matrix/s21_d04_op4_level", 0.0, -1.0, 1.0, 0.001); +amt_s22_d04_op4_level = hslider("MM_Matrix/s22_d04_op4_level", 0.0, -1.0, 1.0, 0.001); +amt_s23_d04_op4_level = hslider("MM_Matrix/s23_d04_op4_level", 0.0, -1.0, 1.0, 0.001); +amt_s24_d04_op4_level = hslider("MM_Matrix/s24_d04_op4_level", 0.0, -1.0, 1.0, 0.001); +amt_s25_d04_op4_level = hslider("MM_Matrix/s25_d04_op4_level", 0.0, -1.0, 1.0, 0.001); +amt_s26_d04_op4_level = hslider("MM_Matrix/s26_d04_op4_level", 0.0, -1.0, 1.0, 0.001); +amt_s27_d04_op4_level = hslider("MM_Matrix/s27_d04_op4_level", 0.0, -1.0, 1.0, 0.001); +amt_s28_d04_op4_level = hslider("MM_Matrix/s28_d04_op4_level", 0.0, -1.0, 1.0, 0.001); +amt_s29_d04_op4_level = hslider("MM_Matrix/s29_d04_op4_level", 0.0, -1.0, 1.0, 0.001); +amt_s30_d04_op4_level = hslider("MM_Matrix/s30_d04_op4_level", 0.0, -1.0, 1.0, 0.001); +amt_s31_d04_op4_level = hslider("MM_Matrix/s31_d04_op4_level", 0.0, -1.0, 1.0, 0.001); +amt_s32_d04_op4_level = hslider("MM_Matrix/s32_d04_op4_level", 0.0, -1.0, 1.0, 0.001); +amt_s33_d04_op4_level = hslider("MM_Matrix/s33_d04_op4_level", 0.0, -1.0, 1.0, 0.001); +amt_s34_d04_op4_level = hslider("MM_Matrix/s34_d04_op4_level", 0.0, -1.0, 1.0, 0.001); +amt_s35_d04_op4_level = hslider("MM_Matrix/s35_d04_op4_level", 0.0, -1.0, 1.0, 0.001); +amt_s36_d04_op4_level = hslider("MM_Matrix/s36_d04_op4_level", 0.0, -1.0, 1.0, 0.001); +amt_s37_d04_op4_level = hslider("MM_Matrix/s37_d04_op4_level", 0.0, -1.0, 1.0, 0.001); +amt_s38_d04_op4_level = hslider("MM_Matrix/s38_d04_op4_level", 0.0, -1.0, 1.0, 0.001); +amt_s39_d04_op4_level = hslider("MM_Matrix/s39_d04_op4_level", 0.0, -1.0, 1.0, 0.001); +amt_s40_d04_op4_level = hslider("MM_Matrix/s40_d04_op4_level", 0.0, -1.0, 1.0, 0.001); +amt_s41_d04_op4_level = hslider("MM_Matrix/s41_d04_op4_level", 0.0, -1.0, 1.0, 0.001); +amt_s42_d04_op4_level = hslider("MM_Matrix/s42_d04_op4_level", 0.0, -1.0, 1.0, 0.001); +amt_s43_d04_op4_level = hslider("MM_Matrix/s43_d04_op4_level", 0.0, -1.0, 1.0, 0.001); +amt_s44_d04_op4_level = hslider("MM_Matrix/s44_d04_op4_level", 0.0, -1.0, 1.0, 0.001); +amt_s45_d04_op4_level = hslider("MM_Matrix/s45_d04_op4_level", 0.0, -1.0, 1.0, 0.001); +amt_s46_d04_op4_level = hslider("MM_Matrix/s46_d04_op4_level", 0.0, -1.0, 1.0, 0.001); +amt_s47_d04_op4_level = hslider("MM_Matrix/s47_d04_op4_level", 0.0, -1.0, 1.0, 0.001); + +// Matrix column: destination 5 = cross_mod_global +amt_s00_d05_cross_mod_global = hslider("MM_Matrix/s00_d05_cross_mod_global", 0.0, -1.0, 1.0, 0.001); +amt_s01_d05_cross_mod_global = hslider("MM_Matrix/s01_d05_cross_mod_global", 0.0, -1.0, 1.0, 0.001); +amt_s02_d05_cross_mod_global = hslider("MM_Matrix/s02_d05_cross_mod_global", 0.0, -1.0, 1.0, 0.001); +amt_s03_d05_cross_mod_global = hslider("MM_Matrix/s03_d05_cross_mod_global", 0.0, -1.0, 1.0, 0.001); +amt_s04_d05_cross_mod_global = hslider("MM_Matrix/s04_d05_cross_mod_global", 0.0, -1.0, 1.0, 0.001); +amt_s05_d05_cross_mod_global = hslider("MM_Matrix/s05_d05_cross_mod_global", 0.0, -1.0, 1.0, 0.001); +amt_s06_d05_cross_mod_global = hslider("MM_Matrix/s06_d05_cross_mod_global", 0.0, -1.0, 1.0, 0.001); +amt_s07_d05_cross_mod_global = hslider("MM_Matrix/s07_d05_cross_mod_global", 0.0, -1.0, 1.0, 0.001); +amt_s08_d05_cross_mod_global = hslider("MM_Matrix/s08_d05_cross_mod_global", 0.0, -1.0, 1.0, 0.001); +amt_s09_d05_cross_mod_global = hslider("MM_Matrix/s09_d05_cross_mod_global", 0.0, -1.0, 1.0, 0.001); +amt_s10_d05_cross_mod_global = hslider("MM_Matrix/s10_d05_cross_mod_global", 0.0, -1.0, 1.0, 0.001); +amt_s11_d05_cross_mod_global = hslider("MM_Matrix/s11_d05_cross_mod_global", 0.0, -1.0, 1.0, 0.001); +amt_s12_d05_cross_mod_global = hslider("MM_Matrix/s12_d05_cross_mod_global", 0.0, -1.0, 1.0, 0.001); +amt_s13_d05_cross_mod_global = hslider("MM_Matrix/s13_d05_cross_mod_global", 0.0, -1.0, 1.0, 0.001); +amt_s14_d05_cross_mod_global = hslider("MM_Matrix/s14_d05_cross_mod_global", 0.0, -1.0, 1.0, 0.001); +amt_s15_d05_cross_mod_global = hslider("MM_Matrix/s15_d05_cross_mod_global", 0.0, -1.0, 1.0, 0.001); +amt_s16_d05_cross_mod_global = hslider("MM_Matrix/s16_d05_cross_mod_global", 0.0, -1.0, 1.0, 0.001); +amt_s17_d05_cross_mod_global = hslider("MM_Matrix/s17_d05_cross_mod_global", 0.0, -1.0, 1.0, 0.001); +amt_s18_d05_cross_mod_global = hslider("MM_Matrix/s18_d05_cross_mod_global", 0.0, -1.0, 1.0, 0.001); +amt_s19_d05_cross_mod_global = hslider("MM_Matrix/s19_d05_cross_mod_global", 0.0, -1.0, 1.0, 0.001); +amt_s20_d05_cross_mod_global = hslider("MM_Matrix/s20_d05_cross_mod_global", 0.0, -1.0, 1.0, 0.001); +amt_s21_d05_cross_mod_global = hslider("MM_Matrix/s21_d05_cross_mod_global", 0.0, -1.0, 1.0, 0.001); +amt_s22_d05_cross_mod_global = hslider("MM_Matrix/s22_d05_cross_mod_global", 0.0, -1.0, 1.0, 0.001); +amt_s23_d05_cross_mod_global = hslider("MM_Matrix/s23_d05_cross_mod_global", 0.0, -1.0, 1.0, 0.001); +amt_s24_d05_cross_mod_global = hslider("MM_Matrix/s24_d05_cross_mod_global", 0.0, -1.0, 1.0, 0.001); +amt_s25_d05_cross_mod_global = hslider("MM_Matrix/s25_d05_cross_mod_global", 0.0, -1.0, 1.0, 0.001); +amt_s26_d05_cross_mod_global = hslider("MM_Matrix/s26_d05_cross_mod_global", 0.0, -1.0, 1.0, 0.001); +amt_s27_d05_cross_mod_global = hslider("MM_Matrix/s27_d05_cross_mod_global", 0.0, -1.0, 1.0, 0.001); +amt_s28_d05_cross_mod_global = hslider("MM_Matrix/s28_d05_cross_mod_global", 0.0, -1.0, 1.0, 0.001); +amt_s29_d05_cross_mod_global = hslider("MM_Matrix/s29_d05_cross_mod_global", 0.0, -1.0, 1.0, 0.001); +amt_s30_d05_cross_mod_global = hslider("MM_Matrix/s30_d05_cross_mod_global", 0.0, -1.0, 1.0, 0.001); +amt_s31_d05_cross_mod_global = hslider("MM_Matrix/s31_d05_cross_mod_global", 0.0, -1.0, 1.0, 0.001); +amt_s32_d05_cross_mod_global = hslider("MM_Matrix/s32_d05_cross_mod_global", 0.0, -1.0, 1.0, 0.001); +amt_s33_d05_cross_mod_global = hslider("MM_Matrix/s33_d05_cross_mod_global", 0.0, -1.0, 1.0, 0.001); +amt_s34_d05_cross_mod_global = hslider("MM_Matrix/s34_d05_cross_mod_global", 0.0, -1.0, 1.0, 0.001); +amt_s35_d05_cross_mod_global = hslider("MM_Matrix/s35_d05_cross_mod_global", 0.0, -1.0, 1.0, 0.001); +amt_s36_d05_cross_mod_global = hslider("MM_Matrix/s36_d05_cross_mod_global", 0.0, -1.0, 1.0, 0.001); +amt_s37_d05_cross_mod_global = hslider("MM_Matrix/s37_d05_cross_mod_global", 0.0, -1.0, 1.0, 0.001); +amt_s38_d05_cross_mod_global = hslider("MM_Matrix/s38_d05_cross_mod_global", 0.0, -1.0, 1.0, 0.001); +amt_s39_d05_cross_mod_global = hslider("MM_Matrix/s39_d05_cross_mod_global", 0.0, -1.0, 1.0, 0.001); +amt_s40_d05_cross_mod_global = hslider("MM_Matrix/s40_d05_cross_mod_global", 0.0, -1.0, 1.0, 0.001); +amt_s41_d05_cross_mod_global = hslider("MM_Matrix/s41_d05_cross_mod_global", 0.0, -1.0, 1.0, 0.001); +amt_s42_d05_cross_mod_global = hslider("MM_Matrix/s42_d05_cross_mod_global", 0.0, -1.0, 1.0, 0.001); +amt_s43_d05_cross_mod_global = hslider("MM_Matrix/s43_d05_cross_mod_global", 0.0, -1.0, 1.0, 0.001); +amt_s44_d05_cross_mod_global = hslider("MM_Matrix/s44_d05_cross_mod_global", 0.0, -1.0, 1.0, 0.001); +amt_s45_d05_cross_mod_global = hslider("MM_Matrix/s45_d05_cross_mod_global", 0.0, -1.0, 1.0, 0.001); +amt_s46_d05_cross_mod_global = hslider("MM_Matrix/s46_d05_cross_mod_global", 0.0, -1.0, 1.0, 0.001); +amt_s47_d05_cross_mod_global = hslider("MM_Matrix/s47_d05_cross_mod_global", 0.0, -1.0, 1.0, 0.001); + +// Matrix column: destination 6 = feedback_global +amt_s00_d06_feedback_global = hslider("MM_Matrix/s00_d06_feedback_global", 0.0, -1.0, 1.0, 0.001); +amt_s01_d06_feedback_global = hslider("MM_Matrix/s01_d06_feedback_global", 0.0, -1.0, 1.0, 0.001); +amt_s02_d06_feedback_global = hslider("MM_Matrix/s02_d06_feedback_global", 0.0, -1.0, 1.0, 0.001); +amt_s03_d06_feedback_global = hslider("MM_Matrix/s03_d06_feedback_global", 0.0, -1.0, 1.0, 0.001); +amt_s04_d06_feedback_global = hslider("MM_Matrix/s04_d06_feedback_global", 0.0, -1.0, 1.0, 0.001); +amt_s05_d06_feedback_global = hslider("MM_Matrix/s05_d06_feedback_global", 0.0, -1.0, 1.0, 0.001); +amt_s06_d06_feedback_global = hslider("MM_Matrix/s06_d06_feedback_global", 0.0, -1.0, 1.0, 0.001); +amt_s07_d06_feedback_global = hslider("MM_Matrix/s07_d06_feedback_global", 0.0, -1.0, 1.0, 0.001); +amt_s08_d06_feedback_global = hslider("MM_Matrix/s08_d06_feedback_global", 0.0, -1.0, 1.0, 0.001); +amt_s09_d06_feedback_global = hslider("MM_Matrix/s09_d06_feedback_global", 0.0, -1.0, 1.0, 0.001); +amt_s10_d06_feedback_global = hslider("MM_Matrix/s10_d06_feedback_global", 0.0, -1.0, 1.0, 0.001); +amt_s11_d06_feedback_global = hslider("MM_Matrix/s11_d06_feedback_global", 0.0, -1.0, 1.0, 0.001); +amt_s12_d06_feedback_global = hslider("MM_Matrix/s12_d06_feedback_global", 0.0, -1.0, 1.0, 0.001); +amt_s13_d06_feedback_global = hslider("MM_Matrix/s13_d06_feedback_global", 0.0, -1.0, 1.0, 0.001); +amt_s14_d06_feedback_global = hslider("MM_Matrix/s14_d06_feedback_global", 0.0, -1.0, 1.0, 0.001); +amt_s15_d06_feedback_global = hslider("MM_Matrix/s15_d06_feedback_global", 0.0, -1.0, 1.0, 0.001); +amt_s16_d06_feedback_global = hslider("MM_Matrix/s16_d06_feedback_global", 0.0, -1.0, 1.0, 0.001); +amt_s17_d06_feedback_global = hslider("MM_Matrix/s17_d06_feedback_global", 0.0, -1.0, 1.0, 0.001); +amt_s18_d06_feedback_global = hslider("MM_Matrix/s18_d06_feedback_global", 0.0, -1.0, 1.0, 0.001); +amt_s19_d06_feedback_global = hslider("MM_Matrix/s19_d06_feedback_global", 0.0, -1.0, 1.0, 0.001); +amt_s20_d06_feedback_global = hslider("MM_Matrix/s20_d06_feedback_global", 0.0, -1.0, 1.0, 0.001); +amt_s21_d06_feedback_global = hslider("MM_Matrix/s21_d06_feedback_global", 0.0, -1.0, 1.0, 0.001); +amt_s22_d06_feedback_global = hslider("MM_Matrix/s22_d06_feedback_global", 0.0, -1.0, 1.0, 0.001); +amt_s23_d06_feedback_global = hslider("MM_Matrix/s23_d06_feedback_global", 0.0, -1.0, 1.0, 0.001); +amt_s24_d06_feedback_global = hslider("MM_Matrix/s24_d06_feedback_global", 0.0, -1.0, 1.0, 0.001); +amt_s25_d06_feedback_global = hslider("MM_Matrix/s25_d06_feedback_global", 0.0, -1.0, 1.0, 0.001); +amt_s26_d06_feedback_global = hslider("MM_Matrix/s26_d06_feedback_global", 0.0, -1.0, 1.0, 0.001); +amt_s27_d06_feedback_global = hslider("MM_Matrix/s27_d06_feedback_global", 0.0, -1.0, 1.0, 0.001); +amt_s28_d06_feedback_global = hslider("MM_Matrix/s28_d06_feedback_global", 0.0, -1.0, 1.0, 0.001); +amt_s29_d06_feedback_global = hslider("MM_Matrix/s29_d06_feedback_global", 0.0, -1.0, 1.0, 0.001); +amt_s30_d06_feedback_global = hslider("MM_Matrix/s30_d06_feedback_global", 0.0, -1.0, 1.0, 0.001); +amt_s31_d06_feedback_global = hslider("MM_Matrix/s31_d06_feedback_global", 0.0, -1.0, 1.0, 0.001); +amt_s32_d06_feedback_global = hslider("MM_Matrix/s32_d06_feedback_global", 0.0, -1.0, 1.0, 0.001); +amt_s33_d06_feedback_global = hslider("MM_Matrix/s33_d06_feedback_global", 0.0, -1.0, 1.0, 0.001); +amt_s34_d06_feedback_global = hslider("MM_Matrix/s34_d06_feedback_global", 0.0, -1.0, 1.0, 0.001); +amt_s35_d06_feedback_global = hslider("MM_Matrix/s35_d06_feedback_global", 0.0, -1.0, 1.0, 0.001); +amt_s36_d06_feedback_global = hslider("MM_Matrix/s36_d06_feedback_global", 0.0, -1.0, 1.0, 0.001); +amt_s37_d06_feedback_global = hslider("MM_Matrix/s37_d06_feedback_global", 0.0, -1.0, 1.0, 0.001); +amt_s38_d06_feedback_global = hslider("MM_Matrix/s38_d06_feedback_global", 0.0, -1.0, 1.0, 0.001); +amt_s39_d06_feedback_global = hslider("MM_Matrix/s39_d06_feedback_global", 0.0, -1.0, 1.0, 0.001); +amt_s40_d06_feedback_global = hslider("MM_Matrix/s40_d06_feedback_global", 0.0, -1.0, 1.0, 0.001); +amt_s41_d06_feedback_global = hslider("MM_Matrix/s41_d06_feedback_global", 0.0, -1.0, 1.0, 0.001); +amt_s42_d06_feedback_global = hslider("MM_Matrix/s42_d06_feedback_global", 0.0, -1.0, 1.0, 0.001); +amt_s43_d06_feedback_global = hslider("MM_Matrix/s43_d06_feedback_global", 0.0, -1.0, 1.0, 0.001); +amt_s44_d06_feedback_global = hslider("MM_Matrix/s44_d06_feedback_global", 0.0, -1.0, 1.0, 0.001); +amt_s45_d06_feedback_global = hslider("MM_Matrix/s45_d06_feedback_global", 0.0, -1.0, 1.0, 0.001); +amt_s46_d06_feedback_global = hslider("MM_Matrix/s46_d06_feedback_global", 0.0, -1.0, 1.0, 0.001); +amt_s47_d06_feedback_global = hslider("MM_Matrix/s47_d06_feedback_global", 0.0, -1.0, 1.0, 0.001); + +// Matrix column: destination 7 = global_ratio +amt_s00_d07_global_ratio = hslider("MM_Matrix/s00_d07_global_ratio", 0.0, -1.0, 1.0, 0.001); +amt_s01_d07_global_ratio = hslider("MM_Matrix/s01_d07_global_ratio", 0.0, -1.0, 1.0, 0.001); +amt_s02_d07_global_ratio = hslider("MM_Matrix/s02_d07_global_ratio", 0.0, -1.0, 1.0, 0.001); +amt_s03_d07_global_ratio = hslider("MM_Matrix/s03_d07_global_ratio", 0.0, -1.0, 1.0, 0.001); +amt_s04_d07_global_ratio = hslider("MM_Matrix/s04_d07_global_ratio", 0.0, -1.0, 1.0, 0.001); +amt_s05_d07_global_ratio = hslider("MM_Matrix/s05_d07_global_ratio", 0.0, -1.0, 1.0, 0.001); +amt_s06_d07_global_ratio = hslider("MM_Matrix/s06_d07_global_ratio", 0.0, -1.0, 1.0, 0.001); +amt_s07_d07_global_ratio = hslider("MM_Matrix/s07_d07_global_ratio", 0.0, -1.0, 1.0, 0.001); +amt_s08_d07_global_ratio = hslider("MM_Matrix/s08_d07_global_ratio", 0.0, -1.0, 1.0, 0.001); +amt_s09_d07_global_ratio = hslider("MM_Matrix/s09_d07_global_ratio", 0.0, -1.0, 1.0, 0.001); +amt_s10_d07_global_ratio = hslider("MM_Matrix/s10_d07_global_ratio", 0.0, -1.0, 1.0, 0.001); +amt_s11_d07_global_ratio = hslider("MM_Matrix/s11_d07_global_ratio", 0.0, -1.0, 1.0, 0.001); +amt_s12_d07_global_ratio = hslider("MM_Matrix/s12_d07_global_ratio", 0.0, -1.0, 1.0, 0.001); +amt_s13_d07_global_ratio = hslider("MM_Matrix/s13_d07_global_ratio", 0.0, -1.0, 1.0, 0.001); +amt_s14_d07_global_ratio = hslider("MM_Matrix/s14_d07_global_ratio", 0.0, -1.0, 1.0, 0.001); +amt_s15_d07_global_ratio = hslider("MM_Matrix/s15_d07_global_ratio", 0.0, -1.0, 1.0, 0.001); +amt_s16_d07_global_ratio = hslider("MM_Matrix/s16_d07_global_ratio", 0.0, -1.0, 1.0, 0.001); +amt_s17_d07_global_ratio = hslider("MM_Matrix/s17_d07_global_ratio", 0.0, -1.0, 1.0, 0.001); +amt_s18_d07_global_ratio = hslider("MM_Matrix/s18_d07_global_ratio", 0.0, -1.0, 1.0, 0.001); +amt_s19_d07_global_ratio = hslider("MM_Matrix/s19_d07_global_ratio", 0.0, -1.0, 1.0, 0.001); +amt_s20_d07_global_ratio = hslider("MM_Matrix/s20_d07_global_ratio", 0.0, -1.0, 1.0, 0.001); +amt_s21_d07_global_ratio = hslider("MM_Matrix/s21_d07_global_ratio", 0.0, -1.0, 1.0, 0.001); +amt_s22_d07_global_ratio = hslider("MM_Matrix/s22_d07_global_ratio", 0.0, -1.0, 1.0, 0.001); +amt_s23_d07_global_ratio = hslider("MM_Matrix/s23_d07_global_ratio", 0.0, -1.0, 1.0, 0.001); +amt_s24_d07_global_ratio = hslider("MM_Matrix/s24_d07_global_ratio", 0.0, -1.0, 1.0, 0.001); +amt_s25_d07_global_ratio = hslider("MM_Matrix/s25_d07_global_ratio", 0.0, -1.0, 1.0, 0.001); +amt_s26_d07_global_ratio = hslider("MM_Matrix/s26_d07_global_ratio", 0.0, -1.0, 1.0, 0.001); +amt_s27_d07_global_ratio = hslider("MM_Matrix/s27_d07_global_ratio", 0.0, -1.0, 1.0, 0.001); +amt_s28_d07_global_ratio = hslider("MM_Matrix/s28_d07_global_ratio", 0.0, -1.0, 1.0, 0.001); +amt_s29_d07_global_ratio = hslider("MM_Matrix/s29_d07_global_ratio", 0.0, -1.0, 1.0, 0.001); +amt_s30_d07_global_ratio = hslider("MM_Matrix/s30_d07_global_ratio", 0.0, -1.0, 1.0, 0.001); +amt_s31_d07_global_ratio = hslider("MM_Matrix/s31_d07_global_ratio", 0.0, -1.0, 1.0, 0.001); +amt_s32_d07_global_ratio = hslider("MM_Matrix/s32_d07_global_ratio", 0.0, -1.0, 1.0, 0.001); +amt_s33_d07_global_ratio = hslider("MM_Matrix/s33_d07_global_ratio", 0.0, -1.0, 1.0, 0.001); +amt_s34_d07_global_ratio = hslider("MM_Matrix/s34_d07_global_ratio", 0.0, -1.0, 1.0, 0.001); +amt_s35_d07_global_ratio = hslider("MM_Matrix/s35_d07_global_ratio", 0.0, -1.0, 1.0, 0.001); +amt_s36_d07_global_ratio = hslider("MM_Matrix/s36_d07_global_ratio", 0.0, -1.0, 1.0, 0.001); +amt_s37_d07_global_ratio = hslider("MM_Matrix/s37_d07_global_ratio", 0.0, -1.0, 1.0, 0.001); +amt_s38_d07_global_ratio = hslider("MM_Matrix/s38_d07_global_ratio", 0.0, -1.0, 1.0, 0.001); +amt_s39_d07_global_ratio = hslider("MM_Matrix/s39_d07_global_ratio", 0.0, -1.0, 1.0, 0.001); +amt_s40_d07_global_ratio = hslider("MM_Matrix/s40_d07_global_ratio", 0.0, -1.0, 1.0, 0.001); +amt_s41_d07_global_ratio = hslider("MM_Matrix/s41_d07_global_ratio", 0.0, -1.0, 1.0, 0.001); +amt_s42_d07_global_ratio = hslider("MM_Matrix/s42_d07_global_ratio", 0.0, -1.0, 1.0, 0.001); +amt_s43_d07_global_ratio = hslider("MM_Matrix/s43_d07_global_ratio", 0.0, -1.0, 1.0, 0.001); +amt_s44_d07_global_ratio = hslider("MM_Matrix/s44_d07_global_ratio", 0.0, -1.0, 1.0, 0.001); +amt_s45_d07_global_ratio = hslider("MM_Matrix/s45_d07_global_ratio", 0.0, -1.0, 1.0, 0.001); +amt_s46_d07_global_ratio = hslider("MM_Matrix/s46_d07_global_ratio", 0.0, -1.0, 1.0, 0.001); +amt_s47_d07_global_ratio = hslider("MM_Matrix/s47_d07_global_ratio", 0.0, -1.0, 1.0, 0.001); + +// Matrix column: destination 8 = amp +amt_s00_d08_amp = hslider("MM_Matrix/s00_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s01_d08_amp = hslider("MM_Matrix/s01_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s02_d08_amp = hslider("MM_Matrix/s02_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s03_d08_amp = hslider("MM_Matrix/s03_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s04_d08_amp = hslider("MM_Matrix/s04_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s05_d08_amp = hslider("MM_Matrix/s05_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s06_d08_amp = hslider("MM_Matrix/s06_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s07_d08_amp = hslider("MM_Matrix/s07_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s08_d08_amp = hslider("MM_Matrix/s08_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s09_d08_amp = hslider("MM_Matrix/s09_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s10_d08_amp = hslider("MM_Matrix/s10_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s11_d08_amp = hslider("MM_Matrix/s11_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s12_d08_amp = hslider("MM_Matrix/s12_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s13_d08_amp = hslider("MM_Matrix/s13_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s14_d08_amp = hslider("MM_Matrix/s14_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s15_d08_amp = hslider("MM_Matrix/s15_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s16_d08_amp = hslider("MM_Matrix/s16_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s17_d08_amp = hslider("MM_Matrix/s17_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s18_d08_amp = hslider("MM_Matrix/s18_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s19_d08_amp = hslider("MM_Matrix/s19_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s20_d08_amp = hslider("MM_Matrix/s20_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s21_d08_amp = hslider("MM_Matrix/s21_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s22_d08_amp = hslider("MM_Matrix/s22_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s23_d08_amp = hslider("MM_Matrix/s23_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s24_d08_amp = hslider("MM_Matrix/s24_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s25_d08_amp = hslider("MM_Matrix/s25_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s26_d08_amp = hslider("MM_Matrix/s26_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s27_d08_amp = hslider("MM_Matrix/s27_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s28_d08_amp = hslider("MM_Matrix/s28_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s29_d08_amp = hslider("MM_Matrix/s29_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s30_d08_amp = hslider("MM_Matrix/s30_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s31_d08_amp = hslider("MM_Matrix/s31_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s32_d08_amp = hslider("MM_Matrix/s32_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s33_d08_amp = hslider("MM_Matrix/s33_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s34_d08_amp = hslider("MM_Matrix/s34_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s35_d08_amp = hslider("MM_Matrix/s35_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s36_d08_amp = hslider("MM_Matrix/s36_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s37_d08_amp = hslider("MM_Matrix/s37_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s38_d08_amp = hslider("MM_Matrix/s38_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s39_d08_amp = hslider("MM_Matrix/s39_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s40_d08_amp = hslider("MM_Matrix/s40_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s41_d08_amp = hslider("MM_Matrix/s41_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s42_d08_amp = hslider("MM_Matrix/s42_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s43_d08_amp = hslider("MM_Matrix/s43_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s44_d08_amp = hslider("MM_Matrix/s44_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s45_d08_amp = hslider("MM_Matrix/s45_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s46_d08_amp = hslider("MM_Matrix/s46_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s47_d08_amp = hslider("MM_Matrix/s47_d08_amp", 0.0, -1.0, 1.0, 0.001); + +// Matrix column: destination 9 = pan +amt_s00_d09_pan = hslider("MM_Matrix/s00_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s01_d09_pan = hslider("MM_Matrix/s01_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s02_d09_pan = hslider("MM_Matrix/s02_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s03_d09_pan = hslider("MM_Matrix/s03_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s04_d09_pan = hslider("MM_Matrix/s04_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s05_d09_pan = hslider("MM_Matrix/s05_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s06_d09_pan = hslider("MM_Matrix/s06_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s07_d09_pan = hslider("MM_Matrix/s07_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s08_d09_pan = hslider("MM_Matrix/s08_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s09_d09_pan = hslider("MM_Matrix/s09_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s10_d09_pan = hslider("MM_Matrix/s10_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s11_d09_pan = hslider("MM_Matrix/s11_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s12_d09_pan = hslider("MM_Matrix/s12_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s13_d09_pan = hslider("MM_Matrix/s13_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s14_d09_pan = hslider("MM_Matrix/s14_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s15_d09_pan = hslider("MM_Matrix/s15_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s16_d09_pan = hslider("MM_Matrix/s16_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s17_d09_pan = hslider("MM_Matrix/s17_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s18_d09_pan = hslider("MM_Matrix/s18_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s19_d09_pan = hslider("MM_Matrix/s19_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s20_d09_pan = hslider("MM_Matrix/s20_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s21_d09_pan = hslider("MM_Matrix/s21_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s22_d09_pan = hslider("MM_Matrix/s22_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s23_d09_pan = hslider("MM_Matrix/s23_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s24_d09_pan = hslider("MM_Matrix/s24_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s25_d09_pan = hslider("MM_Matrix/s25_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s26_d09_pan = hslider("MM_Matrix/s26_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s27_d09_pan = hslider("MM_Matrix/s27_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s28_d09_pan = hslider("MM_Matrix/s28_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s29_d09_pan = hslider("MM_Matrix/s29_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s30_d09_pan = hslider("MM_Matrix/s30_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s31_d09_pan = hslider("MM_Matrix/s31_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s32_d09_pan = hslider("MM_Matrix/s32_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s33_d09_pan = hslider("MM_Matrix/s33_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s34_d09_pan = hslider("MM_Matrix/s34_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s35_d09_pan = hslider("MM_Matrix/s35_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s36_d09_pan = hslider("MM_Matrix/s36_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s37_d09_pan = hslider("MM_Matrix/s37_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s38_d09_pan = hslider("MM_Matrix/s38_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s39_d09_pan = hslider("MM_Matrix/s39_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s40_d09_pan = hslider("MM_Matrix/s40_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s41_d09_pan = hslider("MM_Matrix/s41_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s42_d09_pan = hslider("MM_Matrix/s42_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s43_d09_pan = hslider("MM_Matrix/s43_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s44_d09_pan = hslider("MM_Matrix/s44_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s45_d09_pan = hslider("MM_Matrix/s45_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s46_d09_pan = hslider("MM_Matrix/s46_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s47_d09_pan = hslider("MM_Matrix/s47_d09_pan", 0.0, -1.0, 1.0, 0.001); + +// --------------------------------------------------------------------------- +// Destination signals — one per modulation destination. Each is a 48-term +// weighted sum of sources × amounts. The `gate` argument is threaded through +// so that mp.src??(gate) can drive ADSR envelopes. +// --------------------------------------------------------------------------- + +mod_pitch(gate) = + mp.src00(gate) * amt_s00_d00_pitch + + mp.src01(gate) * amt_s01_d00_pitch + + mp.src02(gate) * amt_s02_d00_pitch + + mp.src03(gate) * amt_s03_d00_pitch + + mp.src04(gate) * amt_s04_d00_pitch + + mp.src05(gate) * amt_s05_d00_pitch + + mp.src06(gate) * amt_s06_d00_pitch + + mp.src07(gate) * amt_s07_d00_pitch + + mp.src08(gate) * amt_s08_d00_pitch + + mp.src09(gate) * amt_s09_d00_pitch + + mp.src10(gate) * amt_s10_d00_pitch + + mp.src11(gate) * amt_s11_d00_pitch + + mp.src12(gate) * amt_s12_d00_pitch + + mp.src13(gate) * amt_s13_d00_pitch + + mp.src14(gate) * amt_s14_d00_pitch + + mp.src15(gate) * amt_s15_d00_pitch + + mp.src16(gate) * amt_s16_d00_pitch + + mp.src17(gate) * amt_s17_d00_pitch + + mp.src18(gate) * amt_s18_d00_pitch + + mp.src19(gate) * amt_s19_d00_pitch + + mp.src20(gate) * amt_s20_d00_pitch + + mp.src21(gate) * amt_s21_d00_pitch + + mp.src22(gate) * amt_s22_d00_pitch + + mp.src23(gate) * amt_s23_d00_pitch + + mp.src24(gate) * amt_s24_d00_pitch + + mp.src25(gate) * amt_s25_d00_pitch + + mp.src26(gate) * amt_s26_d00_pitch + + mp.src27(gate) * amt_s27_d00_pitch + + mp.src28(gate) * amt_s28_d00_pitch + + mp.src29(gate) * amt_s29_d00_pitch + + mp.src30(gate) * amt_s30_d00_pitch + + mp.src31(gate) * amt_s31_d00_pitch + + mp.src32(gate) * amt_s32_d00_pitch + + mp.src33(gate) * amt_s33_d00_pitch + + mp.src34(gate) * amt_s34_d00_pitch + + mp.src35(gate) * amt_s35_d00_pitch + + mp.src36(gate) * amt_s36_d00_pitch + + mp.src37(gate) * amt_s37_d00_pitch + + mp.src38(gate) * amt_s38_d00_pitch + + mp.src39(gate) * amt_s39_d00_pitch + + mp.src40(gate) * amt_s40_d00_pitch + + mp.src41(gate) * amt_s41_d00_pitch + + mp.src42(gate) * amt_s42_d00_pitch + + mp.src43(gate) * amt_s43_d00_pitch + + mp.src44(gate) * amt_s44_d00_pitch + + mp.src45(gate) * amt_s45_d00_pitch + + mp.src46(gate) * amt_s46_d00_pitch + + mp.src47(gate) * amt_s47_d00_pitch; + +mod_op1_level(gate) = + mp.src00(gate) * amt_s00_d01_op1_level + + mp.src01(gate) * amt_s01_d01_op1_level + + mp.src02(gate) * amt_s02_d01_op1_level + + mp.src03(gate) * amt_s03_d01_op1_level + + mp.src04(gate) * amt_s04_d01_op1_level + + mp.src05(gate) * amt_s05_d01_op1_level + + mp.src06(gate) * amt_s06_d01_op1_level + + mp.src07(gate) * amt_s07_d01_op1_level + + mp.src08(gate) * amt_s08_d01_op1_level + + mp.src09(gate) * amt_s09_d01_op1_level + + mp.src10(gate) * amt_s10_d01_op1_level + + mp.src11(gate) * amt_s11_d01_op1_level + + mp.src12(gate) * amt_s12_d01_op1_level + + mp.src13(gate) * amt_s13_d01_op1_level + + mp.src14(gate) * amt_s14_d01_op1_level + + mp.src15(gate) * amt_s15_d01_op1_level + + mp.src16(gate) * amt_s16_d01_op1_level + + mp.src17(gate) * amt_s17_d01_op1_level + + mp.src18(gate) * amt_s18_d01_op1_level + + mp.src19(gate) * amt_s19_d01_op1_level + + mp.src20(gate) * amt_s20_d01_op1_level + + mp.src21(gate) * amt_s21_d01_op1_level + + mp.src22(gate) * amt_s22_d01_op1_level + + mp.src23(gate) * amt_s23_d01_op1_level + + mp.src24(gate) * amt_s24_d01_op1_level + + mp.src25(gate) * amt_s25_d01_op1_level + + mp.src26(gate) * amt_s26_d01_op1_level + + mp.src27(gate) * amt_s27_d01_op1_level + + mp.src28(gate) * amt_s28_d01_op1_level + + mp.src29(gate) * amt_s29_d01_op1_level + + mp.src30(gate) * amt_s30_d01_op1_level + + mp.src31(gate) * amt_s31_d01_op1_level + + mp.src32(gate) * amt_s32_d01_op1_level + + mp.src33(gate) * amt_s33_d01_op1_level + + mp.src34(gate) * amt_s34_d01_op1_level + + mp.src35(gate) * amt_s35_d01_op1_level + + mp.src36(gate) * amt_s36_d01_op1_level + + mp.src37(gate) * amt_s37_d01_op1_level + + mp.src38(gate) * amt_s38_d01_op1_level + + mp.src39(gate) * amt_s39_d01_op1_level + + mp.src40(gate) * amt_s40_d01_op1_level + + mp.src41(gate) * amt_s41_d01_op1_level + + mp.src42(gate) * amt_s42_d01_op1_level + + mp.src43(gate) * amt_s43_d01_op1_level + + mp.src44(gate) * amt_s44_d01_op1_level + + mp.src45(gate) * amt_s45_d01_op1_level + + mp.src46(gate) * amt_s46_d01_op1_level + + mp.src47(gate) * amt_s47_d01_op1_level; + +mod_op2_level(gate) = + mp.src00(gate) * amt_s00_d02_op2_level + + mp.src01(gate) * amt_s01_d02_op2_level + + mp.src02(gate) * amt_s02_d02_op2_level + + mp.src03(gate) * amt_s03_d02_op2_level + + mp.src04(gate) * amt_s04_d02_op2_level + + mp.src05(gate) * amt_s05_d02_op2_level + + mp.src06(gate) * amt_s06_d02_op2_level + + mp.src07(gate) * amt_s07_d02_op2_level + + mp.src08(gate) * amt_s08_d02_op2_level + + mp.src09(gate) * amt_s09_d02_op2_level + + mp.src10(gate) * amt_s10_d02_op2_level + + mp.src11(gate) * amt_s11_d02_op2_level + + mp.src12(gate) * amt_s12_d02_op2_level + + mp.src13(gate) * amt_s13_d02_op2_level + + mp.src14(gate) * amt_s14_d02_op2_level + + mp.src15(gate) * amt_s15_d02_op2_level + + mp.src16(gate) * amt_s16_d02_op2_level + + mp.src17(gate) * amt_s17_d02_op2_level + + mp.src18(gate) * amt_s18_d02_op2_level + + mp.src19(gate) * amt_s19_d02_op2_level + + mp.src20(gate) * amt_s20_d02_op2_level + + mp.src21(gate) * amt_s21_d02_op2_level + + mp.src22(gate) * amt_s22_d02_op2_level + + mp.src23(gate) * amt_s23_d02_op2_level + + mp.src24(gate) * amt_s24_d02_op2_level + + mp.src25(gate) * amt_s25_d02_op2_level + + mp.src26(gate) * amt_s26_d02_op2_level + + mp.src27(gate) * amt_s27_d02_op2_level + + mp.src28(gate) * amt_s28_d02_op2_level + + mp.src29(gate) * amt_s29_d02_op2_level + + mp.src30(gate) * amt_s30_d02_op2_level + + mp.src31(gate) * amt_s31_d02_op2_level + + mp.src32(gate) * amt_s32_d02_op2_level + + mp.src33(gate) * amt_s33_d02_op2_level + + mp.src34(gate) * amt_s34_d02_op2_level + + mp.src35(gate) * amt_s35_d02_op2_level + + mp.src36(gate) * amt_s36_d02_op2_level + + mp.src37(gate) * amt_s37_d02_op2_level + + mp.src38(gate) * amt_s38_d02_op2_level + + mp.src39(gate) * amt_s39_d02_op2_level + + mp.src40(gate) * amt_s40_d02_op2_level + + mp.src41(gate) * amt_s41_d02_op2_level + + mp.src42(gate) * amt_s42_d02_op2_level + + mp.src43(gate) * amt_s43_d02_op2_level + + mp.src44(gate) * amt_s44_d02_op2_level + + mp.src45(gate) * amt_s45_d02_op2_level + + mp.src46(gate) * amt_s46_d02_op2_level + + mp.src47(gate) * amt_s47_d02_op2_level; + +mod_op3_level(gate) = + mp.src00(gate) * amt_s00_d03_op3_level + + mp.src01(gate) * amt_s01_d03_op3_level + + mp.src02(gate) * amt_s02_d03_op3_level + + mp.src03(gate) * amt_s03_d03_op3_level + + mp.src04(gate) * amt_s04_d03_op3_level + + mp.src05(gate) * amt_s05_d03_op3_level + + mp.src06(gate) * amt_s06_d03_op3_level + + mp.src07(gate) * amt_s07_d03_op3_level + + mp.src08(gate) * amt_s08_d03_op3_level + + mp.src09(gate) * amt_s09_d03_op3_level + + mp.src10(gate) * amt_s10_d03_op3_level + + mp.src11(gate) * amt_s11_d03_op3_level + + mp.src12(gate) * amt_s12_d03_op3_level + + mp.src13(gate) * amt_s13_d03_op3_level + + mp.src14(gate) * amt_s14_d03_op3_level + + mp.src15(gate) * amt_s15_d03_op3_level + + mp.src16(gate) * amt_s16_d03_op3_level + + mp.src17(gate) * amt_s17_d03_op3_level + + mp.src18(gate) * amt_s18_d03_op3_level + + mp.src19(gate) * amt_s19_d03_op3_level + + mp.src20(gate) * amt_s20_d03_op3_level + + mp.src21(gate) * amt_s21_d03_op3_level + + mp.src22(gate) * amt_s22_d03_op3_level + + mp.src23(gate) * amt_s23_d03_op3_level + + mp.src24(gate) * amt_s24_d03_op3_level + + mp.src25(gate) * amt_s25_d03_op3_level + + mp.src26(gate) * amt_s26_d03_op3_level + + mp.src27(gate) * amt_s27_d03_op3_level + + mp.src28(gate) * amt_s28_d03_op3_level + + mp.src29(gate) * amt_s29_d03_op3_level + + mp.src30(gate) * amt_s30_d03_op3_level + + mp.src31(gate) * amt_s31_d03_op3_level + + mp.src32(gate) * amt_s32_d03_op3_level + + mp.src33(gate) * amt_s33_d03_op3_level + + mp.src34(gate) * amt_s34_d03_op3_level + + mp.src35(gate) * amt_s35_d03_op3_level + + mp.src36(gate) * amt_s36_d03_op3_level + + mp.src37(gate) * amt_s37_d03_op3_level + + mp.src38(gate) * amt_s38_d03_op3_level + + mp.src39(gate) * amt_s39_d03_op3_level + + mp.src40(gate) * amt_s40_d03_op3_level + + mp.src41(gate) * amt_s41_d03_op3_level + + mp.src42(gate) * amt_s42_d03_op3_level + + mp.src43(gate) * amt_s43_d03_op3_level + + mp.src44(gate) * amt_s44_d03_op3_level + + mp.src45(gate) * amt_s45_d03_op3_level + + mp.src46(gate) * amt_s46_d03_op3_level + + mp.src47(gate) * amt_s47_d03_op3_level; + +mod_op4_level(gate) = + mp.src00(gate) * amt_s00_d04_op4_level + + mp.src01(gate) * amt_s01_d04_op4_level + + mp.src02(gate) * amt_s02_d04_op4_level + + mp.src03(gate) * amt_s03_d04_op4_level + + mp.src04(gate) * amt_s04_d04_op4_level + + mp.src05(gate) * amt_s05_d04_op4_level + + mp.src06(gate) * amt_s06_d04_op4_level + + mp.src07(gate) * amt_s07_d04_op4_level + + mp.src08(gate) * amt_s08_d04_op4_level + + mp.src09(gate) * amt_s09_d04_op4_level + + mp.src10(gate) * amt_s10_d04_op4_level + + mp.src11(gate) * amt_s11_d04_op4_level + + mp.src12(gate) * amt_s12_d04_op4_level + + mp.src13(gate) * amt_s13_d04_op4_level + + mp.src14(gate) * amt_s14_d04_op4_level + + mp.src15(gate) * amt_s15_d04_op4_level + + mp.src16(gate) * amt_s16_d04_op4_level + + mp.src17(gate) * amt_s17_d04_op4_level + + mp.src18(gate) * amt_s18_d04_op4_level + + mp.src19(gate) * amt_s19_d04_op4_level + + mp.src20(gate) * amt_s20_d04_op4_level + + mp.src21(gate) * amt_s21_d04_op4_level + + mp.src22(gate) * amt_s22_d04_op4_level + + mp.src23(gate) * amt_s23_d04_op4_level + + mp.src24(gate) * amt_s24_d04_op4_level + + mp.src25(gate) * amt_s25_d04_op4_level + + mp.src26(gate) * amt_s26_d04_op4_level + + mp.src27(gate) * amt_s27_d04_op4_level + + mp.src28(gate) * amt_s28_d04_op4_level + + mp.src29(gate) * amt_s29_d04_op4_level + + mp.src30(gate) * amt_s30_d04_op4_level + + mp.src31(gate) * amt_s31_d04_op4_level + + mp.src32(gate) * amt_s32_d04_op4_level + + mp.src33(gate) * amt_s33_d04_op4_level + + mp.src34(gate) * amt_s34_d04_op4_level + + mp.src35(gate) * amt_s35_d04_op4_level + + mp.src36(gate) * amt_s36_d04_op4_level + + mp.src37(gate) * amt_s37_d04_op4_level + + mp.src38(gate) * amt_s38_d04_op4_level + + mp.src39(gate) * amt_s39_d04_op4_level + + mp.src40(gate) * amt_s40_d04_op4_level + + mp.src41(gate) * amt_s41_d04_op4_level + + mp.src42(gate) * amt_s42_d04_op4_level + + mp.src43(gate) * amt_s43_d04_op4_level + + mp.src44(gate) * amt_s44_d04_op4_level + + mp.src45(gate) * amt_s45_d04_op4_level + + mp.src46(gate) * amt_s46_d04_op4_level + + mp.src47(gate) * amt_s47_d04_op4_level; + +mod_cross_mod_global(gate) = + mp.src00(gate) * amt_s00_d05_cross_mod_global + + mp.src01(gate) * amt_s01_d05_cross_mod_global + + mp.src02(gate) * amt_s02_d05_cross_mod_global + + mp.src03(gate) * amt_s03_d05_cross_mod_global + + mp.src04(gate) * amt_s04_d05_cross_mod_global + + mp.src05(gate) * amt_s05_d05_cross_mod_global + + mp.src06(gate) * amt_s06_d05_cross_mod_global + + mp.src07(gate) * amt_s07_d05_cross_mod_global + + mp.src08(gate) * amt_s08_d05_cross_mod_global + + mp.src09(gate) * amt_s09_d05_cross_mod_global + + mp.src10(gate) * amt_s10_d05_cross_mod_global + + mp.src11(gate) * amt_s11_d05_cross_mod_global + + mp.src12(gate) * amt_s12_d05_cross_mod_global + + mp.src13(gate) * amt_s13_d05_cross_mod_global + + mp.src14(gate) * amt_s14_d05_cross_mod_global + + mp.src15(gate) * amt_s15_d05_cross_mod_global + + mp.src16(gate) * amt_s16_d05_cross_mod_global + + mp.src17(gate) * amt_s17_d05_cross_mod_global + + mp.src18(gate) * amt_s18_d05_cross_mod_global + + mp.src19(gate) * amt_s19_d05_cross_mod_global + + mp.src20(gate) * amt_s20_d05_cross_mod_global + + mp.src21(gate) * amt_s21_d05_cross_mod_global + + mp.src22(gate) * amt_s22_d05_cross_mod_global + + mp.src23(gate) * amt_s23_d05_cross_mod_global + + mp.src24(gate) * amt_s24_d05_cross_mod_global + + mp.src25(gate) * amt_s25_d05_cross_mod_global + + mp.src26(gate) * amt_s26_d05_cross_mod_global + + mp.src27(gate) * amt_s27_d05_cross_mod_global + + mp.src28(gate) * amt_s28_d05_cross_mod_global + + mp.src29(gate) * amt_s29_d05_cross_mod_global + + mp.src30(gate) * amt_s30_d05_cross_mod_global + + mp.src31(gate) * amt_s31_d05_cross_mod_global + + mp.src32(gate) * amt_s32_d05_cross_mod_global + + mp.src33(gate) * amt_s33_d05_cross_mod_global + + mp.src34(gate) * amt_s34_d05_cross_mod_global + + mp.src35(gate) * amt_s35_d05_cross_mod_global + + mp.src36(gate) * amt_s36_d05_cross_mod_global + + mp.src37(gate) * amt_s37_d05_cross_mod_global + + mp.src38(gate) * amt_s38_d05_cross_mod_global + + mp.src39(gate) * amt_s39_d05_cross_mod_global + + mp.src40(gate) * amt_s40_d05_cross_mod_global + + mp.src41(gate) * amt_s41_d05_cross_mod_global + + mp.src42(gate) * amt_s42_d05_cross_mod_global + + mp.src43(gate) * amt_s43_d05_cross_mod_global + + mp.src44(gate) * amt_s44_d05_cross_mod_global + + mp.src45(gate) * amt_s45_d05_cross_mod_global + + mp.src46(gate) * amt_s46_d05_cross_mod_global + + mp.src47(gate) * amt_s47_d05_cross_mod_global; + +mod_feedback_global(gate) = + mp.src00(gate) * amt_s00_d06_feedback_global + + mp.src01(gate) * amt_s01_d06_feedback_global + + mp.src02(gate) * amt_s02_d06_feedback_global + + mp.src03(gate) * amt_s03_d06_feedback_global + + mp.src04(gate) * amt_s04_d06_feedback_global + + mp.src05(gate) * amt_s05_d06_feedback_global + + mp.src06(gate) * amt_s06_d06_feedback_global + + mp.src07(gate) * amt_s07_d06_feedback_global + + mp.src08(gate) * amt_s08_d06_feedback_global + + mp.src09(gate) * amt_s09_d06_feedback_global + + mp.src10(gate) * amt_s10_d06_feedback_global + + mp.src11(gate) * amt_s11_d06_feedback_global + + mp.src12(gate) * amt_s12_d06_feedback_global + + mp.src13(gate) * amt_s13_d06_feedback_global + + mp.src14(gate) * amt_s14_d06_feedback_global + + mp.src15(gate) * amt_s15_d06_feedback_global + + mp.src16(gate) * amt_s16_d06_feedback_global + + mp.src17(gate) * amt_s17_d06_feedback_global + + mp.src18(gate) * amt_s18_d06_feedback_global + + mp.src19(gate) * amt_s19_d06_feedback_global + + mp.src20(gate) * amt_s20_d06_feedback_global + + mp.src21(gate) * amt_s21_d06_feedback_global + + mp.src22(gate) * amt_s22_d06_feedback_global + + mp.src23(gate) * amt_s23_d06_feedback_global + + mp.src24(gate) * amt_s24_d06_feedback_global + + mp.src25(gate) * amt_s25_d06_feedback_global + + mp.src26(gate) * amt_s26_d06_feedback_global + + mp.src27(gate) * amt_s27_d06_feedback_global + + mp.src28(gate) * amt_s28_d06_feedback_global + + mp.src29(gate) * amt_s29_d06_feedback_global + + mp.src30(gate) * amt_s30_d06_feedback_global + + mp.src31(gate) * amt_s31_d06_feedback_global + + mp.src32(gate) * amt_s32_d06_feedback_global + + mp.src33(gate) * amt_s33_d06_feedback_global + + mp.src34(gate) * amt_s34_d06_feedback_global + + mp.src35(gate) * amt_s35_d06_feedback_global + + mp.src36(gate) * amt_s36_d06_feedback_global + + mp.src37(gate) * amt_s37_d06_feedback_global + + mp.src38(gate) * amt_s38_d06_feedback_global + + mp.src39(gate) * amt_s39_d06_feedback_global + + mp.src40(gate) * amt_s40_d06_feedback_global + + mp.src41(gate) * amt_s41_d06_feedback_global + + mp.src42(gate) * amt_s42_d06_feedback_global + + mp.src43(gate) * amt_s43_d06_feedback_global + + mp.src44(gate) * amt_s44_d06_feedback_global + + mp.src45(gate) * amt_s45_d06_feedback_global + + mp.src46(gate) * amt_s46_d06_feedback_global + + mp.src47(gate) * amt_s47_d06_feedback_global; + +mod_global_ratio(gate) = + mp.src00(gate) * amt_s00_d07_global_ratio + + mp.src01(gate) * amt_s01_d07_global_ratio + + mp.src02(gate) * amt_s02_d07_global_ratio + + mp.src03(gate) * amt_s03_d07_global_ratio + + mp.src04(gate) * amt_s04_d07_global_ratio + + mp.src05(gate) * amt_s05_d07_global_ratio + + mp.src06(gate) * amt_s06_d07_global_ratio + + mp.src07(gate) * amt_s07_d07_global_ratio + + mp.src08(gate) * amt_s08_d07_global_ratio + + mp.src09(gate) * amt_s09_d07_global_ratio + + mp.src10(gate) * amt_s10_d07_global_ratio + + mp.src11(gate) * amt_s11_d07_global_ratio + + mp.src12(gate) * amt_s12_d07_global_ratio + + mp.src13(gate) * amt_s13_d07_global_ratio + + mp.src14(gate) * amt_s14_d07_global_ratio + + mp.src15(gate) * amt_s15_d07_global_ratio + + mp.src16(gate) * amt_s16_d07_global_ratio + + mp.src17(gate) * amt_s17_d07_global_ratio + + mp.src18(gate) * amt_s18_d07_global_ratio + + mp.src19(gate) * amt_s19_d07_global_ratio + + mp.src20(gate) * amt_s20_d07_global_ratio + + mp.src21(gate) * amt_s21_d07_global_ratio + + mp.src22(gate) * amt_s22_d07_global_ratio + + mp.src23(gate) * amt_s23_d07_global_ratio + + mp.src24(gate) * amt_s24_d07_global_ratio + + mp.src25(gate) * amt_s25_d07_global_ratio + + mp.src26(gate) * amt_s26_d07_global_ratio + + mp.src27(gate) * amt_s27_d07_global_ratio + + mp.src28(gate) * amt_s28_d07_global_ratio + + mp.src29(gate) * amt_s29_d07_global_ratio + + mp.src30(gate) * amt_s30_d07_global_ratio + + mp.src31(gate) * amt_s31_d07_global_ratio + + mp.src32(gate) * amt_s32_d07_global_ratio + + mp.src33(gate) * amt_s33_d07_global_ratio + + mp.src34(gate) * amt_s34_d07_global_ratio + + mp.src35(gate) * amt_s35_d07_global_ratio + + mp.src36(gate) * amt_s36_d07_global_ratio + + mp.src37(gate) * amt_s37_d07_global_ratio + + mp.src38(gate) * amt_s38_d07_global_ratio + + mp.src39(gate) * amt_s39_d07_global_ratio + + mp.src40(gate) * amt_s40_d07_global_ratio + + mp.src41(gate) * amt_s41_d07_global_ratio + + mp.src42(gate) * amt_s42_d07_global_ratio + + mp.src43(gate) * amt_s43_d07_global_ratio + + mp.src44(gate) * amt_s44_d07_global_ratio + + mp.src45(gate) * amt_s45_d07_global_ratio + + mp.src46(gate) * amt_s46_d07_global_ratio + + mp.src47(gate) * amt_s47_d07_global_ratio; + +mod_amp(gate) = + mp.src00(gate) * amt_s00_d08_amp + + mp.src01(gate) * amt_s01_d08_amp + + mp.src02(gate) * amt_s02_d08_amp + + mp.src03(gate) * amt_s03_d08_amp + + mp.src04(gate) * amt_s04_d08_amp + + mp.src05(gate) * amt_s05_d08_amp + + mp.src06(gate) * amt_s06_d08_amp + + mp.src07(gate) * amt_s07_d08_amp + + mp.src08(gate) * amt_s08_d08_amp + + mp.src09(gate) * amt_s09_d08_amp + + mp.src10(gate) * amt_s10_d08_amp + + mp.src11(gate) * amt_s11_d08_amp + + mp.src12(gate) * amt_s12_d08_amp + + mp.src13(gate) * amt_s13_d08_amp + + mp.src14(gate) * amt_s14_d08_amp + + mp.src15(gate) * amt_s15_d08_amp + + mp.src16(gate) * amt_s16_d08_amp + + mp.src17(gate) * amt_s17_d08_amp + + mp.src18(gate) * amt_s18_d08_amp + + mp.src19(gate) * amt_s19_d08_amp + + mp.src20(gate) * amt_s20_d08_amp + + mp.src21(gate) * amt_s21_d08_amp + + mp.src22(gate) * amt_s22_d08_amp + + mp.src23(gate) * amt_s23_d08_amp + + mp.src24(gate) * amt_s24_d08_amp + + mp.src25(gate) * amt_s25_d08_amp + + mp.src26(gate) * amt_s26_d08_amp + + mp.src27(gate) * amt_s27_d08_amp + + mp.src28(gate) * amt_s28_d08_amp + + mp.src29(gate) * amt_s29_d08_amp + + mp.src30(gate) * amt_s30_d08_amp + + mp.src31(gate) * amt_s31_d08_amp + + mp.src32(gate) * amt_s32_d08_amp + + mp.src33(gate) * amt_s33_d08_amp + + mp.src34(gate) * amt_s34_d08_amp + + mp.src35(gate) * amt_s35_d08_amp + + mp.src36(gate) * amt_s36_d08_amp + + mp.src37(gate) * amt_s37_d08_amp + + mp.src38(gate) * amt_s38_d08_amp + + mp.src39(gate) * amt_s39_d08_amp + + mp.src40(gate) * amt_s40_d08_amp + + mp.src41(gate) * amt_s41_d08_amp + + mp.src42(gate) * amt_s42_d08_amp + + mp.src43(gate) * amt_s43_d08_amp + + mp.src44(gate) * amt_s44_d08_amp + + mp.src45(gate) * amt_s45_d08_amp + + mp.src46(gate) * amt_s46_d08_amp + + mp.src47(gate) * amt_s47_d08_amp; + +mod_pan(gate) = + mp.src00(gate) * amt_s00_d09_pan + + mp.src01(gate) * amt_s01_d09_pan + + mp.src02(gate) * amt_s02_d09_pan + + mp.src03(gate) * amt_s03_d09_pan + + mp.src04(gate) * amt_s04_d09_pan + + mp.src05(gate) * amt_s05_d09_pan + + mp.src06(gate) * amt_s06_d09_pan + + mp.src07(gate) * amt_s07_d09_pan + + mp.src08(gate) * amt_s08_d09_pan + + mp.src09(gate) * amt_s09_d09_pan + + mp.src10(gate) * amt_s10_d09_pan + + mp.src11(gate) * amt_s11_d09_pan + + mp.src12(gate) * amt_s12_d09_pan + + mp.src13(gate) * amt_s13_d09_pan + + mp.src14(gate) * amt_s14_d09_pan + + mp.src15(gate) * amt_s15_d09_pan + + mp.src16(gate) * amt_s16_d09_pan + + mp.src17(gate) * amt_s17_d09_pan + + mp.src18(gate) * amt_s18_d09_pan + + mp.src19(gate) * amt_s19_d09_pan + + mp.src20(gate) * amt_s20_d09_pan + + mp.src21(gate) * amt_s21_d09_pan + + mp.src22(gate) * amt_s22_d09_pan + + mp.src23(gate) * amt_s23_d09_pan + + mp.src24(gate) * amt_s24_d09_pan + + mp.src25(gate) * amt_s25_d09_pan + + mp.src26(gate) * amt_s26_d09_pan + + mp.src27(gate) * amt_s27_d09_pan + + mp.src28(gate) * amt_s28_d09_pan + + mp.src29(gate) * amt_s29_d09_pan + + mp.src30(gate) * amt_s30_d09_pan + + mp.src31(gate) * amt_s31_d09_pan + + mp.src32(gate) * amt_s32_d09_pan + + mp.src33(gate) * amt_s33_d09_pan + + mp.src34(gate) * amt_s34_d09_pan + + mp.src35(gate) * amt_s35_d09_pan + + mp.src36(gate) * amt_s36_d09_pan + + mp.src37(gate) * amt_s37_d09_pan + + mp.src38(gate) * amt_s38_d09_pan + + mp.src39(gate) * amt_s39_d09_pan + + mp.src40(gate) * amt_s40_d09_pan + + mp.src41(gate) * amt_s41_d09_pan + + mp.src42(gate) * amt_s42_d09_pan + + mp.src43(gate) * amt_s43_d09_pan + + mp.src44(gate) * amt_s44_d09_pan + + mp.src45(gate) * amt_s45_d09_pan + + mp.src46(gate) * amt_s46_d09_pan + + mp.src47(gate) * amt_s47_d09_pan; + +// --------------------------------------------------------------------------- +// Derived signals +// --------------------------------------------------------------------------- + +cent2ratio(c) = pow(2.0, c / 1200.0); +semi2ratio(s) = pow(2.0, s / 12.0); + +// Base frequency: fine tune + pitch mod (semitones, ±12) +base_freq = freq * cent2ratio(fine_tune) * semi2ratio(mod_pitch(gate) * 12.0); + +// Velocity gain — keeps _vel alive +vel_gain = (1.0 - 0.3) + 0.3 * vel; + +// --------------------------------------------------------------------------- +// Effective per-operator ratios and levels (mod applied) +// global_ratio mod is an additive ratio offset (±8) +// --------------------------------------------------------------------------- +ratio_offset = mod_global_ratio(gate) * 8.0; +r1 = max(0.01, op1_ratio + ratio_offset); +r2 = max(0.01, op2_ratio + ratio_offset); +r3 = max(0.01, op3_ratio + ratio_offset); +r4 = max(0.01, op4_ratio + ratio_offset); + +lev1 = max(0.0, min(1.0, op1_level + mod_op1_level(gate))); +lev2 = max(0.0, min(1.0, op2_level + mod_op2_level(gate))); +lev3 = max(0.0, min(1.0, op3_level + mod_op3_level(gate))); +lev4 = max(0.0, min(1.0, op4_level + mod_op4_level(gate))); + +// --------------------------------------------------------------------------- +// Global multipliers for cross-mod and feedback. +// (1 + mod) in [0, 2] roughly; clamp to stay sane. +// --------------------------------------------------------------------------- +cross_mul = max(0.0, 1.0 + mod_cross_mod_global(gate)); +fb_mul = max(0.0, 1.0 + mod_feedback_global(gate)); + +m12e = m12 * cross_mul; m13e = m13 * cross_mul; m14e = m14 * cross_mul; +m21e = m21 * cross_mul; m23e = m23 * cross_mul; m24e = m24 * cross_mul; +m31e = m31 * cross_mul; m32e = m32 * cross_mul; m34e = m34 * cross_mul; +m41e = m41 * cross_mul; m42e = m42 * cross_mul; m43e = m43 * cross_mul; + +fb1e = fb1 * fb_mul; +fb2e = fb2 * fb_mul; +fb3e = fb3 * fb_mul; +fb4e = fb4 * fb_mul; + +// --------------------------------------------------------------------------- +// 4-operator FM bus — feedback loop via ~ on a 4-channel bus +// --------------------------------------------------------------------------- +fmbus(d1,d2,d3,d4) = + op1_out, op2_out, op3_out, op4_out +with { + f1 = base_freq * r1; + f2 = base_freq * r2; + f3 = base_freq * r3; + f4 = base_freq * r4; + + op1_out = lev1 * + os.osc(f1 + (m21e*d2 + m31e*d3 + m41e*d4 + fb1e*d1) * f1); + + op2_out = lev2 * + os.osc(f2 + (m12e*d1 + m32e*d3 + m42e*d4 + fb2e*d2) * f2); + + op3_out = lev3 * + os.osc(f3 + (m13e*d1 + m23e*d2 + m43e*d4 + fb3e*d3) * f3); + + op4_out = lev4 * + os.osc(f4 + (m14e*d1 + m24e*d2 + m34e*d3 + fb4e*d4) * f4); +}; + +// Route 4-channel bus through feedback loop, sum all ops +fm_out = (fmbus ~ (si.bus(4))) : (_, _, _, _) :> _; + +// --------------------------------------------------------------------------- +// Post-processing +// --------------------------------------------------------------------------- +soft_clip(x) = x / max(0.001, 1.0 + output_saturation * abs(x)); +hp_out(x) = fi.highpass(1, output_hp, x); + +// Master amplitude destination (route an ADSR here for VCA) +amp_val = max(0.0, min(1.0, mod_amp(gate))) * master_level * vel_gain * 0.25; + +// Pan +pan_val = max(-1.0, min(1.0, master_pan + mod_pan(gate))); +pan_l = cos((pan_val + 1.0) * 0.25 * ma.PI); +pan_r = sin((pan_val + 1.0) * 0.25 * ma.PI); + +// Stereo spread via slight detuning (apply after main FM sum) +spread_cents = stereo_spread * 5.0; +spread_l = cent2ratio(spread_cents); +spread_r = cent2ratio(0.0 - spread_cents); + +mono_post = fm_out * amp_val : soft_clip : hp_out; + +signal_L = mono_post * spread_l * pan_l; +signal_R = mono_post * spread_r * pan_r; + +process = signal_L, signal_R; diff --git a/playground/faust/modular-fm.json b/playground/faust/modular-fm.json new file mode 100644 index 0000000..cceebc4 --- /dev/null +++ b/playground/faust/modular-fm.json @@ -0,0 +1 @@ +{"name": "modular-fm","filename": "modular-fm.dsp","version": "2.79.3","compile_options": "-lang wasm -ct 1 -cn modular_fm -es 1 -mcd 16 -mdd 1024 -mdy 33 -single -ftz 0","library_list": ["/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust/stdfaust.lib","/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust/maths.lib","/home/w1n5t0n/src/MEMLNaut-NISPS/playground/faust/mod-pool.lib","/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust/oscillators.lib","/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust/platform.lib","/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust/basics.lib","/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust/envelopes.lib","/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust/signals.lib","/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust/filters.lib"],"include_pathnames": ["/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust","/usr/local/share/faust","/usr/share/faust",".","/home/w1n5t0n/src/MEMLNaut-NISPS/playground/faust","/home/w1n5t0n/src/MEMLNaut-NISPS/playground/faust"],"size": 265316,"code": "Ly8gbW9kdWxhci1mbS5kc3Ag4oCUIDQtb3BlcmF0b3IgRk0gdm9pY2UgZm9yIHRoZSAiTW9kdWxhciIgbW9kZS4KLy8KLy8gQVVUTy1HRU5FUkFURUQgYnkgZ2VuLW1vZHVsYXItZHNwLnB5LiBETyBOT1QgRURJVCBCWSBIQU5ELgovLyBSZWdlbmVyYXRlIHdpdGg6Ci8vICAgICBjZCBwbGF5Z3JvdW5kL2ZhdXN0ICYmIHB5dGhvbjMgZ2VuLW1vZHVsYXItZHNwLnB5Ci8vCi8vIEF1ZGlvIHBhdGg6IDQgb3BzIHdpdGggMTItY2VsbCBjcm9zcy1tb2QgbWF0cml4IGFuZCBwZXItb3AgZmVlZGJhY2suCi8vIEFsbCBlbnZlbG9wZXMgYW5kIExGT3MgY29tZSBmcm9tIG1vZC1wb29sLmxpYiB2aWEgYSA0OC1zb3VyY2Ugw5cgMTAtZGVzdAovLyBtb2R1bGF0aW9uIG1hdHJpeC4gTm8gaW50ZXJuYWwgZW52cy9MRk9zLgovLwovLyBNb2R1bGF0aW9uIGRlc3RpbmF0aW9ucyAoMTApOgovLyAgICAgMCBwaXRjaCAgICAgICAgICAgICBzZW1pdG9uZXMgYWRkZWQgdG8gdGhlIGJhc2UgZnJlcXVlbmN5Ci8vICAgICAxIG9wMV9sZXZlbCAgICAgICAgIGFkZGVkIHRvIG9wMSBsZXZlbCBrbm9iCi8vICAgICAyIG9wMl9sZXZlbCAgICAgICAgIGFkZGVkIHRvIG9wMiBsZXZlbCBrbm9iCi8vICAgICAzIG9wM19sZXZlbCAgICAgICAgIGFkZGVkIHRvIG9wMyBsZXZlbCBrbm9iCi8vICAgICA0IG9wNF9sZXZlbCAgICAgICAgIGFkZGVkIHRvIG9wNCBsZXZlbCBrbm9iCi8vICAgICA1IGNyb3NzX21vZF9nbG9iYWwgIGdsb2JhbCBGTSBkZXB0aCBtdWx0aXBsaWVyIG9uIGFsbCAxMiBjcm9zcy1tb2QgY2VsbHMKLy8gICAgIDYgZmVlZGJhY2tfZ2xvYmFsICAgZ2xvYmFsIGZlZWRiYWNrIG11bHRpcGxpZXIgb24gYWxsIDQgc2VsZi1mZWVkYmFjayBjZWxscwovLyAgICAgNyBnbG9iYWxfcmF0aW8gICAgICBhZGRpdGl2ZSBzY2FsZSBmYWN0b3Igb24gYWxsIDQgb3BlcmF0b3IgcmF0aW9zCi8vICAgICA4IGFtcCAgICAgICAgICAgICAgIG1hc3RlciBhbXBsaXR1ZGUgZGVzdCAocm91dGUgYW4gQURTUiBoZXJlIGZvciBhIFZDQSBlbnYpCi8vICAgICA5IHBhbiAgICAgICAgICAgICAgIHN0ZXJlbyBiYWxhbmNlCi8vCi8vIEhpZGRlbiBjb250cm9scyAoZHJpdmVuIGJ5IG5vdGVPbi9ub3RlT2ZmLCBub3QgYnkgdGhlIE1MIGVuZ2luZSk6Ci8vICAgICBmcmVxLCBnYXRlLCBfdmVsCi8vCi8vIEJ1aWxkOgovLyAgICAgY2QgcGxheWdyb3VuZC9mYXVzdCAmJiAuL2J1aWxkLnNoCi8vCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKaW1wb3J0KCJzdGRmYXVzdC5saWIiKTsKbXAgPSBsaWJyYXJ5KCJtb2QtcG9vbC5saWIiKTsKCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQovLyBIaWRkZW4gY29udHJvbHMKLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmZyZXEgPSBoc2xpZGVyKCIwX0hpZGRlbi9mcmVxW2hpZGRlbjoxXVt1bml0Okh6XSIsIDIyMCwgMjAsIDQwMDAsIDAuMDEpOwpnYXRlID0gYnV0dG9uKCIwX0hpZGRlbi9nYXRlW2hpZGRlbjoxXSIpOwp2ZWwgID0gaHNsaWRlcigiMF9IaWRkZW4vX3ZlbFtoaWRkZW46MV0iLCAwLjcsIDAuMCwgMS4wLCAwLjAwMSkgOiBzaS5zbW9vOwoKLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi8vIEdyb3VwIDEg4oCUIE9wZXJhdG9ycyAocmF0aW8gJiBsZXZlbCBwZXIgb3ApCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpvcDFfcmF0aW8gPSBoc2xpZGVyKCIxX09wZXJhdG9ycy8wMF9vcDFfcmF0aW8iLCAxLjAsIDAuMTI1LCAxNi4wLCAwLjAwMSk7Cm9wMV9sZXZlbCA9IGhzbGlkZXIoIjFfT3BlcmF0b3JzLzAxX29wMV9sZXZlbCIsIDAuOCwgMC4wLCAgIDEuMCwgIDAuMDAxKTsKb3AyX3JhdGlvID0gaHNsaWRlcigiMV9PcGVyYXRvcnMvMDJfb3AyX3JhdGlvIiwgMi4wLCAwLjEyNSwgMTYuMCwgMC4wMDEpOwpvcDJfbGV2ZWwgPSBoc2xpZGVyKCIxX09wZXJhdG9ycy8wM19vcDJfbGV2ZWwiLCAwLjYsIDAuMCwgICAxLjAsICAwLjAwMSk7Cm9wM19yYXRpbyA9IGhzbGlkZXIoIjFfT3BlcmF0b3JzLzA0X29wM19yYXRpbyIsIDMuMCwgMC4xMjUsIDE2LjAsIDAuMDAxKTsKb3AzX2xldmVsID0gaHNsaWRlcigiMV9PcGVyYXRvcnMvMDVfb3AzX2xldmVsIiwgMC40LCAwLjAsICAgMS4wLCAgMC4wMDEpOwpvcDRfcmF0aW8gPSBoc2xpZGVyKCIxX09wZXJhdG9ycy8wNl9vcDRfcmF0aW8iLCAwLjUsIDAuMTI1LCAxNi4wLCAwLjAwMSk7Cm9wNF9sZXZlbCA9IGhzbGlkZXIoIjFfT3BlcmF0b3JzLzA3X29wNF9sZXZlbCIsIDAuMywgMC4wLCAgIDEuMCwgIDAuMDAxKTsKCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQovLyBHcm91cCAyIOKAlCBDcm9zcy1tb2QgTWF0cml4IChtWFkgPSBvcCBYIG1vZHVsYXRlcyBvcCBZKQovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KbTEyID0gaHNsaWRlcigiMl9Dcm9zc01vZC8wMF9tMTIiLCAwLjAsIDAuMCwgMTAuMCwgMC4wMDEpOwptMTMgPSBoc2xpZGVyKCIyX0Nyb3NzTW9kLzAxX20xMyIsIDAuMCwgMC4wLCAxMC4wLCAwLjAwMSk7Cm0xNCA9IGhzbGlkZXIoIjJfQ3Jvc3NNb2QvMDJfbTE0IiwgMC4wLCAwLjAsIDEwLjAsIDAuMDAxKTsKbTIxID0gaHNsaWRlcigiMl9Dcm9zc01vZC8wM19tMjEiLCAxLjAsIDAuMCwgMTAuMCwgMC4wMDEpOwptMjMgPSBoc2xpZGVyKCIyX0Nyb3NzTW9kLzA0X20yMyIsIDAuMCwgMC4wLCAxMC4wLCAwLjAwMSk7Cm0yNCA9IGhzbGlkZXIoIjJfQ3Jvc3NNb2QvMDVfbTI0IiwgMC4wLCAwLjAsIDEwLjAsIDAuMDAxKTsKbTMxID0gaHNsaWRlcigiMl9Dcm9zc01vZC8wNl9tMzEiLCAwLjAsIDAuMCwgMTAuMCwgMC4wMDEpOwptMzIgPSBoc2xpZGVyKCIyX0Nyb3NzTW9kLzA3X20zMiIsIDAuMCwgMC4wLCAxMC4wLCAwLjAwMSk7Cm0zNCA9IGhzbGlkZXIoIjJfQ3Jvc3NNb2QvMDhfbTM0IiwgMC4wLCAwLjAsIDEwLjAsIDAuMDAxKTsKbTQxID0gaHNsaWRlcigiMl9Dcm9zc01vZC8wOV9tNDEiLCAwLjAsIDAuMCwgMTAuMCwgMC4wMDEpOwptNDIgPSBoc2xpZGVyKCIyX0Nyb3NzTW9kLzEwX200MiIsIDAuMCwgMC4wLCAxMC4wLCAwLjAwMSk7Cm00MyA9IGhzbGlkZXIoIjJfQ3Jvc3NNb2QvMTFfbTQzIiwgMC4wLCAwLjAsIDEwLjAsIDAuMDAxKTsKCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQovLyBHcm91cCAzIOKAlCBTZWxmLWZlZWRiYWNrCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpmYjEgPSBoc2xpZGVyKCIzX0ZlZWRiYWNrLzAwX2ZiMSIsIDAuMCwgMC4wLCAxLjAsIDAuMDAxKTsKZmIyID0gaHNsaWRlcigiM19GZWVkYmFjay8wMV9mYjIiLCAwLjAsIDAuMCwgMS4wLCAwLjAwMSk7CmZiMyA9IGhzbGlkZXIoIjNfRmVlZGJhY2svMDJfZmIzIiwgMC4wLCAwLjAsIDEuMCwgMC4wMDEpOwpmYjQgPSBoc2xpZGVyKCIzX0ZlZWRiYWNrLzAzX2ZiNCIsIDAuMCwgMC4wLCAxLjAsIDAuMDAxKTsKCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQovLyBHcm91cCA0IOKAlCBNYXN0ZXIKLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCm1hc3Rlcl9sZXZlbCAgICAgID0gaHNsaWRlcigiNF9NYXN0ZXIvMDBfbWFzdGVyX2xldmVsIiwgICAgICAwLjcsICAwLjAsICAxLjAsICAwLjAwMSk7CmZpbmVfdHVuZSAgICAgICAgID0gaHNsaWRlcigiNF9NYXN0ZXIvMDFfZmluZV90dW5lW3VuaXQ6Y3RdIiwgMC4wLCAtNTAuMCwgNTAuMCwgMC4xKTsKc3RlcmVvX3NwcmVhZCAgICAgPSBoc2xpZGVyKCI0X01hc3Rlci8wMl9zdGVyZW9fc3ByZWFkIiwgICAgIDAuMSwgIDAuMCwgIDEuMCwgIDAuMDAxKTsKb3V0cHV0X3NhdHVyYXRpb24gPSBoc2xpZGVyKCI0X01hc3Rlci8wM19vdXRwdXRfc2F0dXJhdGlvbiIsIDAuMCwgIDAuMCwgIDEuMCwgIDAuMDAxKTsKb3V0cHV0X2hwICAgICAgICAgPSBoc2xpZGVyKCI0X01hc3Rlci8wNF9vdXRwdXRfaHBbdW5pdDpIel0iLDIwLjAsIDIwLjAsIDIwMC4wLDAuMSk7Cm1hc3Rlcl9wYW4gICAgICAgID0gaHNsaWRlcigiNF9NYXN0ZXIvMDVfbWFzdGVyX3BhbiIsICAgICAgICAwLjAsIC0xLjAsICAxLjAsICAwLjAwMSk7CgovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLy8gTW9kdWxhdGlvbiBtYXRyaXgg4oCUIDQ4IHNvdXJjZXMgw5cgMTAgZGVzdGluYXRpb25zLgovLyBFYWNoIGhzbGlkZXIgaXMgb25lICJhbW91bnQiIGVudHJ5IGluIFstMSwgKzFdLiBaZXJvID0gbm8gY29ubmVjdGlvbi4KLy8gR3JvdXAgIk1NX01hdHJpeCIgc28gdGhlIHBhcmFtTWV0YSBwYXJzZXIgY2FuIHJlY29nbmlzZSBtYXRyaXggcGFyYW1zLgovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCi8vIE1hdHJpeCBjb2x1bW46IGRlc3RpbmF0aW9uIDAgPSBwaXRjaAphbXRfczAwX2QwMF9waXRjaCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMDBfZDAwX3BpdGNoIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwMV9kMDBfcGl0Y2ggPSBoc2xpZGVyKCJNTV9NYXRyaXgvczAxX2QwMF9waXRjaCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMDJfZDAwX3BpdGNoID0gaHNsaWRlcigiTU1fTWF0cml4L3MwMl9kMDBfcGl0Y2giLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczAzX2QwMF9waXRjaCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMDNfZDAwX3BpdGNoIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwNF9kMDBfcGl0Y2ggPSBoc2xpZGVyKCJNTV9NYXRyaXgvczA0X2QwMF9waXRjaCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMDVfZDAwX3BpdGNoID0gaHNsaWRlcigiTU1fTWF0cml4L3MwNV9kMDBfcGl0Y2giLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczA2X2QwMF9waXRjaCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMDZfZDAwX3BpdGNoIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwN19kMDBfcGl0Y2ggPSBoc2xpZGVyKCJNTV9NYXRyaXgvczA3X2QwMF9waXRjaCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMDhfZDAwX3BpdGNoID0gaHNsaWRlcigiTU1fTWF0cml4L3MwOF9kMDBfcGl0Y2giLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczA5X2QwMF9waXRjaCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMDlfZDAwX3BpdGNoIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxMF9kMDBfcGl0Y2ggPSBoc2xpZGVyKCJNTV9NYXRyaXgvczEwX2QwMF9waXRjaCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMTFfZDAwX3BpdGNoID0gaHNsaWRlcigiTU1fTWF0cml4L3MxMV9kMDBfcGl0Y2giLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczEyX2QwMF9waXRjaCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMTJfZDAwX3BpdGNoIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxM19kMDBfcGl0Y2ggPSBoc2xpZGVyKCJNTV9NYXRyaXgvczEzX2QwMF9waXRjaCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMTRfZDAwX3BpdGNoID0gaHNsaWRlcigiTU1fTWF0cml4L3MxNF9kMDBfcGl0Y2giLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczE1X2QwMF9waXRjaCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMTVfZDAwX3BpdGNoIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxNl9kMDBfcGl0Y2ggPSBoc2xpZGVyKCJNTV9NYXRyaXgvczE2X2QwMF9waXRjaCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMTdfZDAwX3BpdGNoID0gaHNsaWRlcigiTU1fTWF0cml4L3MxN19kMDBfcGl0Y2giLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczE4X2QwMF9waXRjaCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMThfZDAwX3BpdGNoIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxOV9kMDBfcGl0Y2ggPSBoc2xpZGVyKCJNTV9NYXRyaXgvczE5X2QwMF9waXRjaCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMjBfZDAwX3BpdGNoID0gaHNsaWRlcigiTU1fTWF0cml4L3MyMF9kMDBfcGl0Y2giLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczIxX2QwMF9waXRjaCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMjFfZDAwX3BpdGNoIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyMl9kMDBfcGl0Y2ggPSBoc2xpZGVyKCJNTV9NYXRyaXgvczIyX2QwMF9waXRjaCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMjNfZDAwX3BpdGNoID0gaHNsaWRlcigiTU1fTWF0cml4L3MyM19kMDBfcGl0Y2giLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczI0X2QwMF9waXRjaCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMjRfZDAwX3BpdGNoIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyNV9kMDBfcGl0Y2ggPSBoc2xpZGVyKCJNTV9NYXRyaXgvczI1X2QwMF9waXRjaCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMjZfZDAwX3BpdGNoID0gaHNsaWRlcigiTU1fTWF0cml4L3MyNl9kMDBfcGl0Y2giLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczI3X2QwMF9waXRjaCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMjdfZDAwX3BpdGNoIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyOF9kMDBfcGl0Y2ggPSBoc2xpZGVyKCJNTV9NYXRyaXgvczI4X2QwMF9waXRjaCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMjlfZDAwX3BpdGNoID0gaHNsaWRlcigiTU1fTWF0cml4L3MyOV9kMDBfcGl0Y2giLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczMwX2QwMF9waXRjaCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMzBfZDAwX3BpdGNoIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzMV9kMDBfcGl0Y2ggPSBoc2xpZGVyKCJNTV9NYXRyaXgvczMxX2QwMF9waXRjaCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMzJfZDAwX3BpdGNoID0gaHNsaWRlcigiTU1fTWF0cml4L3MzMl9kMDBfcGl0Y2giLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczMzX2QwMF9waXRjaCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMzNfZDAwX3BpdGNoIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzNF9kMDBfcGl0Y2ggPSBoc2xpZGVyKCJNTV9NYXRyaXgvczM0X2QwMF9waXRjaCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMzVfZDAwX3BpdGNoID0gaHNsaWRlcigiTU1fTWF0cml4L3MzNV9kMDBfcGl0Y2giLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczM2X2QwMF9waXRjaCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMzZfZDAwX3BpdGNoIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzN19kMDBfcGl0Y2ggPSBoc2xpZGVyKCJNTV9NYXRyaXgvczM3X2QwMF9waXRjaCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMzhfZDAwX3BpdGNoID0gaHNsaWRlcigiTU1fTWF0cml4L3MzOF9kMDBfcGl0Y2giLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczM5X2QwMF9waXRjaCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMzlfZDAwX3BpdGNoIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0MF9kMDBfcGl0Y2ggPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQwX2QwMF9waXRjaCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zNDFfZDAwX3BpdGNoID0gaHNsaWRlcigiTU1fTWF0cml4L3M0MV9kMDBfcGl0Y2giLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQyX2QwMF9waXRjaCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zNDJfZDAwX3BpdGNoIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0M19kMDBfcGl0Y2ggPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQzX2QwMF9waXRjaCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zNDRfZDAwX3BpdGNoID0gaHNsaWRlcigiTU1fTWF0cml4L3M0NF9kMDBfcGl0Y2giLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQ1X2QwMF9waXRjaCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zNDVfZDAwX3BpdGNoIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0Nl9kMDBfcGl0Y2ggPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQ2X2QwMF9waXRjaCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zNDdfZDAwX3BpdGNoID0gaHNsaWRlcigiTU1fTWF0cml4L3M0N19kMDBfcGl0Y2giLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwoKLy8gTWF0cml4IGNvbHVtbjogZGVzdGluYXRpb24gMSA9IG9wMV9sZXZlbAphbXRfczAwX2QwMV9vcDFfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczAwX2QwMV9vcDFfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczAxX2QwMV9vcDFfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczAxX2QwMV9vcDFfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczAyX2QwMV9vcDFfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczAyX2QwMV9vcDFfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczAzX2QwMV9vcDFfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczAzX2QwMV9vcDFfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczA0X2QwMV9vcDFfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczA0X2QwMV9vcDFfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczA1X2QwMV9vcDFfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczA1X2QwMV9vcDFfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczA2X2QwMV9vcDFfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczA2X2QwMV9vcDFfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczA3X2QwMV9vcDFfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczA3X2QwMV9vcDFfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczA4X2QwMV9vcDFfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczA4X2QwMV9vcDFfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczA5X2QwMV9vcDFfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczA5X2QwMV9vcDFfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczEwX2QwMV9vcDFfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczEwX2QwMV9vcDFfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczExX2QwMV9vcDFfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczExX2QwMV9vcDFfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczEyX2QwMV9vcDFfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczEyX2QwMV9vcDFfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczEzX2QwMV9vcDFfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczEzX2QwMV9vcDFfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczE0X2QwMV9vcDFfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczE0X2QwMV9vcDFfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczE1X2QwMV9vcDFfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczE1X2QwMV9vcDFfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczE2X2QwMV9vcDFfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczE2X2QwMV9vcDFfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczE3X2QwMV9vcDFfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczE3X2QwMV9vcDFfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczE4X2QwMV9vcDFfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczE4X2QwMV9vcDFfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczE5X2QwMV9vcDFfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczE5X2QwMV9vcDFfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczIwX2QwMV9vcDFfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczIwX2QwMV9vcDFfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczIxX2QwMV9vcDFfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczIxX2QwMV9vcDFfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczIyX2QwMV9vcDFfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczIyX2QwMV9vcDFfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczIzX2QwMV9vcDFfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczIzX2QwMV9vcDFfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczI0X2QwMV9vcDFfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczI0X2QwMV9vcDFfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczI1X2QwMV9vcDFfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczI1X2QwMV9vcDFfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczI2X2QwMV9vcDFfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczI2X2QwMV9vcDFfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczI3X2QwMV9vcDFfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczI3X2QwMV9vcDFfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczI4X2QwMV9vcDFfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczI4X2QwMV9vcDFfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczI5X2QwMV9vcDFfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczI5X2QwMV9vcDFfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczMwX2QwMV9vcDFfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczMwX2QwMV9vcDFfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczMxX2QwMV9vcDFfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczMxX2QwMV9vcDFfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczMyX2QwMV9vcDFfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczMyX2QwMV9vcDFfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczMzX2QwMV9vcDFfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczMzX2QwMV9vcDFfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczM0X2QwMV9vcDFfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczM0X2QwMV9vcDFfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczM1X2QwMV9vcDFfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczM1X2QwMV9vcDFfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczM2X2QwMV9vcDFfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczM2X2QwMV9vcDFfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczM3X2QwMV9vcDFfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczM3X2QwMV9vcDFfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczM4X2QwMV9vcDFfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczM4X2QwMV9vcDFfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczM5X2QwMV9vcDFfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczM5X2QwMV9vcDFfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQwX2QwMV9vcDFfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQwX2QwMV9vcDFfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQxX2QwMV9vcDFfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQxX2QwMV9vcDFfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQyX2QwMV9vcDFfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQyX2QwMV9vcDFfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQzX2QwMV9vcDFfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQzX2QwMV9vcDFfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQ0X2QwMV9vcDFfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQ0X2QwMV9vcDFfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQ1X2QwMV9vcDFfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQ1X2QwMV9vcDFfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQ2X2QwMV9vcDFfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQ2X2QwMV9vcDFfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQ3X2QwMV9vcDFfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQ3X2QwMV9vcDFfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwoKLy8gTWF0cml4IGNvbHVtbjogZGVzdGluYXRpb24gMiA9IG9wMl9sZXZlbAphbXRfczAwX2QwMl9vcDJfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczAwX2QwMl9vcDJfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczAxX2QwMl9vcDJfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczAxX2QwMl9vcDJfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczAyX2QwMl9vcDJfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczAyX2QwMl9vcDJfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczAzX2QwMl9vcDJfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczAzX2QwMl9vcDJfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczA0X2QwMl9vcDJfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczA0X2QwMl9vcDJfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczA1X2QwMl9vcDJfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczA1X2QwMl9vcDJfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczA2X2QwMl9vcDJfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczA2X2QwMl9vcDJfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczA3X2QwMl9vcDJfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczA3X2QwMl9vcDJfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczA4X2QwMl9vcDJfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczA4X2QwMl9vcDJfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczA5X2QwMl9vcDJfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczA5X2QwMl9vcDJfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczEwX2QwMl9vcDJfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczEwX2QwMl9vcDJfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczExX2QwMl9vcDJfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczExX2QwMl9vcDJfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczEyX2QwMl9vcDJfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczEyX2QwMl9vcDJfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczEzX2QwMl9vcDJfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczEzX2QwMl9vcDJfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczE0X2QwMl9vcDJfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczE0X2QwMl9vcDJfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczE1X2QwMl9vcDJfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczE1X2QwMl9vcDJfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczE2X2QwMl9vcDJfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczE2X2QwMl9vcDJfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczE3X2QwMl9vcDJfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczE3X2QwMl9vcDJfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczE4X2QwMl9vcDJfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczE4X2QwMl9vcDJfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczE5X2QwMl9vcDJfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczE5X2QwMl9vcDJfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczIwX2QwMl9vcDJfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczIwX2QwMl9vcDJfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczIxX2QwMl9vcDJfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczIxX2QwMl9vcDJfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczIyX2QwMl9vcDJfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczIyX2QwMl9vcDJfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczIzX2QwMl9vcDJfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczIzX2QwMl9vcDJfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczI0X2QwMl9vcDJfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczI0X2QwMl9vcDJfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczI1X2QwMl9vcDJfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczI1X2QwMl9vcDJfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczI2X2QwMl9vcDJfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczI2X2QwMl9vcDJfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczI3X2QwMl9vcDJfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczI3X2QwMl9vcDJfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczI4X2QwMl9vcDJfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczI4X2QwMl9vcDJfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczI5X2QwMl9vcDJfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczI5X2QwMl9vcDJfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczMwX2QwMl9vcDJfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczMwX2QwMl9vcDJfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczMxX2QwMl9vcDJfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczMxX2QwMl9vcDJfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczMyX2QwMl9vcDJfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczMyX2QwMl9vcDJfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczMzX2QwMl9vcDJfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczMzX2QwMl9vcDJfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczM0X2QwMl9vcDJfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczM0X2QwMl9vcDJfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczM1X2QwMl9vcDJfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczM1X2QwMl9vcDJfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczM2X2QwMl9vcDJfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczM2X2QwMl9vcDJfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczM3X2QwMl9vcDJfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczM3X2QwMl9vcDJfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczM4X2QwMl9vcDJfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczM4X2QwMl9vcDJfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczM5X2QwMl9vcDJfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczM5X2QwMl9vcDJfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQwX2QwMl9vcDJfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQwX2QwMl9vcDJfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQxX2QwMl9vcDJfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQxX2QwMl9vcDJfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQyX2QwMl9vcDJfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQyX2QwMl9vcDJfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQzX2QwMl9vcDJfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQzX2QwMl9vcDJfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQ0X2QwMl9vcDJfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQ0X2QwMl9vcDJfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQ1X2QwMl9vcDJfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQ1X2QwMl9vcDJfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQ2X2QwMl9vcDJfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQ2X2QwMl9vcDJfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQ3X2QwMl9vcDJfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQ3X2QwMl9vcDJfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwoKLy8gTWF0cml4IGNvbHVtbjogZGVzdGluYXRpb24gMyA9IG9wM19sZXZlbAphbXRfczAwX2QwM19vcDNfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczAwX2QwM19vcDNfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczAxX2QwM19vcDNfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczAxX2QwM19vcDNfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczAyX2QwM19vcDNfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczAyX2QwM19vcDNfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczAzX2QwM19vcDNfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczAzX2QwM19vcDNfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczA0X2QwM19vcDNfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczA0X2QwM19vcDNfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczA1X2QwM19vcDNfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczA1X2QwM19vcDNfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczA2X2QwM19vcDNfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczA2X2QwM19vcDNfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczA3X2QwM19vcDNfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczA3X2QwM19vcDNfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczA4X2QwM19vcDNfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczA4X2QwM19vcDNfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczA5X2QwM19vcDNfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczA5X2QwM19vcDNfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczEwX2QwM19vcDNfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczEwX2QwM19vcDNfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczExX2QwM19vcDNfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczExX2QwM19vcDNfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczEyX2QwM19vcDNfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczEyX2QwM19vcDNfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczEzX2QwM19vcDNfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczEzX2QwM19vcDNfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczE0X2QwM19vcDNfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczE0X2QwM19vcDNfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczE1X2QwM19vcDNfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczE1X2QwM19vcDNfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczE2X2QwM19vcDNfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczE2X2QwM19vcDNfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczE3X2QwM19vcDNfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczE3X2QwM19vcDNfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczE4X2QwM19vcDNfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczE4X2QwM19vcDNfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczE5X2QwM19vcDNfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczE5X2QwM19vcDNfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczIwX2QwM19vcDNfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczIwX2QwM19vcDNfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczIxX2QwM19vcDNfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczIxX2QwM19vcDNfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczIyX2QwM19vcDNfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczIyX2QwM19vcDNfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczIzX2QwM19vcDNfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczIzX2QwM19vcDNfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczI0X2QwM19vcDNfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczI0X2QwM19vcDNfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczI1X2QwM19vcDNfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczI1X2QwM19vcDNfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczI2X2QwM19vcDNfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczI2X2QwM19vcDNfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczI3X2QwM19vcDNfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczI3X2QwM19vcDNfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczI4X2QwM19vcDNfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczI4X2QwM19vcDNfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczI5X2QwM19vcDNfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczI5X2QwM19vcDNfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczMwX2QwM19vcDNfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczMwX2QwM19vcDNfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczMxX2QwM19vcDNfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczMxX2QwM19vcDNfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczMyX2QwM19vcDNfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczMyX2QwM19vcDNfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczMzX2QwM19vcDNfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczMzX2QwM19vcDNfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczM0X2QwM19vcDNfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczM0X2QwM19vcDNfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczM1X2QwM19vcDNfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczM1X2QwM19vcDNfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczM2X2QwM19vcDNfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczM2X2QwM19vcDNfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczM3X2QwM19vcDNfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczM3X2QwM19vcDNfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczM4X2QwM19vcDNfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczM4X2QwM19vcDNfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczM5X2QwM19vcDNfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczM5X2QwM19vcDNfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQwX2QwM19vcDNfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQwX2QwM19vcDNfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQxX2QwM19vcDNfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQxX2QwM19vcDNfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQyX2QwM19vcDNfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQyX2QwM19vcDNfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQzX2QwM19vcDNfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQzX2QwM19vcDNfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQ0X2QwM19vcDNfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQ0X2QwM19vcDNfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQ1X2QwM19vcDNfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQ1X2QwM19vcDNfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQ2X2QwM19vcDNfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQ2X2QwM19vcDNfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQ3X2QwM19vcDNfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQ3X2QwM19vcDNfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwoKLy8gTWF0cml4IGNvbHVtbjogZGVzdGluYXRpb24gNCA9IG9wNF9sZXZlbAphbXRfczAwX2QwNF9vcDRfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczAwX2QwNF9vcDRfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczAxX2QwNF9vcDRfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczAxX2QwNF9vcDRfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczAyX2QwNF9vcDRfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczAyX2QwNF9vcDRfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczAzX2QwNF9vcDRfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczAzX2QwNF9vcDRfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczA0X2QwNF9vcDRfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczA0X2QwNF9vcDRfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczA1X2QwNF9vcDRfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczA1X2QwNF9vcDRfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczA2X2QwNF9vcDRfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczA2X2QwNF9vcDRfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczA3X2QwNF9vcDRfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczA3X2QwNF9vcDRfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczA4X2QwNF9vcDRfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczA4X2QwNF9vcDRfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczA5X2QwNF9vcDRfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczA5X2QwNF9vcDRfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczEwX2QwNF9vcDRfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczEwX2QwNF9vcDRfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczExX2QwNF9vcDRfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczExX2QwNF9vcDRfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczEyX2QwNF9vcDRfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczEyX2QwNF9vcDRfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczEzX2QwNF9vcDRfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczEzX2QwNF9vcDRfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczE0X2QwNF9vcDRfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczE0X2QwNF9vcDRfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczE1X2QwNF9vcDRfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczE1X2QwNF9vcDRfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczE2X2QwNF9vcDRfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczE2X2QwNF9vcDRfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczE3X2QwNF9vcDRfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczE3X2QwNF9vcDRfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczE4X2QwNF9vcDRfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczE4X2QwNF9vcDRfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczE5X2QwNF9vcDRfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczE5X2QwNF9vcDRfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczIwX2QwNF9vcDRfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczIwX2QwNF9vcDRfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczIxX2QwNF9vcDRfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczIxX2QwNF9vcDRfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczIyX2QwNF9vcDRfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczIyX2QwNF9vcDRfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczIzX2QwNF9vcDRfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczIzX2QwNF9vcDRfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczI0X2QwNF9vcDRfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczI0X2QwNF9vcDRfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczI1X2QwNF9vcDRfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczI1X2QwNF9vcDRfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczI2X2QwNF9vcDRfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczI2X2QwNF9vcDRfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczI3X2QwNF9vcDRfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczI3X2QwNF9vcDRfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczI4X2QwNF9vcDRfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczI4X2QwNF9vcDRfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczI5X2QwNF9vcDRfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczI5X2QwNF9vcDRfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczMwX2QwNF9vcDRfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczMwX2QwNF9vcDRfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczMxX2QwNF9vcDRfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczMxX2QwNF9vcDRfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczMyX2QwNF9vcDRfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczMyX2QwNF9vcDRfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczMzX2QwNF9vcDRfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczMzX2QwNF9vcDRfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczM0X2QwNF9vcDRfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczM0X2QwNF9vcDRfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczM1X2QwNF9vcDRfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczM1X2QwNF9vcDRfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczM2X2QwNF9vcDRfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczM2X2QwNF9vcDRfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczM3X2QwNF9vcDRfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczM3X2QwNF9vcDRfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczM4X2QwNF9vcDRfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczM4X2QwNF9vcDRfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczM5X2QwNF9vcDRfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczM5X2QwNF9vcDRfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQwX2QwNF9vcDRfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQwX2QwNF9vcDRfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQxX2QwNF9vcDRfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQxX2QwNF9vcDRfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQyX2QwNF9vcDRfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQyX2QwNF9vcDRfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQzX2QwNF9vcDRfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQzX2QwNF9vcDRfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQ0X2QwNF9vcDRfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQ0X2QwNF9vcDRfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQ1X2QwNF9vcDRfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQ1X2QwNF9vcDRfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQ2X2QwNF9vcDRfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQ2X2QwNF9vcDRfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQ3X2QwNF9vcDRfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQ3X2QwNF9vcDRfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwoKLy8gTWF0cml4IGNvbHVtbjogZGVzdGluYXRpb24gNSA9IGNyb3NzX21vZF9nbG9iYWwKYW10X3MwMF9kMDVfY3Jvc3NfbW9kX2dsb2JhbCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMDBfZDA1X2Nyb3NzX21vZF9nbG9iYWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczAxX2QwNV9jcm9zc19tb2RfZ2xvYmFsID0gaHNsaWRlcigiTU1fTWF0cml4L3MwMV9kMDVfY3Jvc3NfbW9kX2dsb2JhbCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMDJfZDA1X2Nyb3NzX21vZF9nbG9iYWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczAyX2QwNV9jcm9zc19tb2RfZ2xvYmFsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwM19kMDVfY3Jvc3NfbW9kX2dsb2JhbCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMDNfZDA1X2Nyb3NzX21vZF9nbG9iYWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczA0X2QwNV9jcm9zc19tb2RfZ2xvYmFsID0gaHNsaWRlcigiTU1fTWF0cml4L3MwNF9kMDVfY3Jvc3NfbW9kX2dsb2JhbCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMDVfZDA1X2Nyb3NzX21vZF9nbG9iYWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczA1X2QwNV9jcm9zc19tb2RfZ2xvYmFsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwNl9kMDVfY3Jvc3NfbW9kX2dsb2JhbCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMDZfZDA1X2Nyb3NzX21vZF9nbG9iYWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczA3X2QwNV9jcm9zc19tb2RfZ2xvYmFsID0gaHNsaWRlcigiTU1fTWF0cml4L3MwN19kMDVfY3Jvc3NfbW9kX2dsb2JhbCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMDhfZDA1X2Nyb3NzX21vZF9nbG9iYWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczA4X2QwNV9jcm9zc19tb2RfZ2xvYmFsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwOV9kMDVfY3Jvc3NfbW9kX2dsb2JhbCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMDlfZDA1X2Nyb3NzX21vZF9nbG9iYWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczEwX2QwNV9jcm9zc19tb2RfZ2xvYmFsID0gaHNsaWRlcigiTU1fTWF0cml4L3MxMF9kMDVfY3Jvc3NfbW9kX2dsb2JhbCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMTFfZDA1X2Nyb3NzX21vZF9nbG9iYWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczExX2QwNV9jcm9zc19tb2RfZ2xvYmFsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxMl9kMDVfY3Jvc3NfbW9kX2dsb2JhbCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMTJfZDA1X2Nyb3NzX21vZF9nbG9iYWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczEzX2QwNV9jcm9zc19tb2RfZ2xvYmFsID0gaHNsaWRlcigiTU1fTWF0cml4L3MxM19kMDVfY3Jvc3NfbW9kX2dsb2JhbCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMTRfZDA1X2Nyb3NzX21vZF9nbG9iYWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczE0X2QwNV9jcm9zc19tb2RfZ2xvYmFsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxNV9kMDVfY3Jvc3NfbW9kX2dsb2JhbCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMTVfZDA1X2Nyb3NzX21vZF9nbG9iYWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczE2X2QwNV9jcm9zc19tb2RfZ2xvYmFsID0gaHNsaWRlcigiTU1fTWF0cml4L3MxNl9kMDVfY3Jvc3NfbW9kX2dsb2JhbCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMTdfZDA1X2Nyb3NzX21vZF9nbG9iYWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczE3X2QwNV9jcm9zc19tb2RfZ2xvYmFsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxOF9kMDVfY3Jvc3NfbW9kX2dsb2JhbCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMThfZDA1X2Nyb3NzX21vZF9nbG9iYWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczE5X2QwNV9jcm9zc19tb2RfZ2xvYmFsID0gaHNsaWRlcigiTU1fTWF0cml4L3MxOV9kMDVfY3Jvc3NfbW9kX2dsb2JhbCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMjBfZDA1X2Nyb3NzX21vZF9nbG9iYWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczIwX2QwNV9jcm9zc19tb2RfZ2xvYmFsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyMV9kMDVfY3Jvc3NfbW9kX2dsb2JhbCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMjFfZDA1X2Nyb3NzX21vZF9nbG9iYWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczIyX2QwNV9jcm9zc19tb2RfZ2xvYmFsID0gaHNsaWRlcigiTU1fTWF0cml4L3MyMl9kMDVfY3Jvc3NfbW9kX2dsb2JhbCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMjNfZDA1X2Nyb3NzX21vZF9nbG9iYWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczIzX2QwNV9jcm9zc19tb2RfZ2xvYmFsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyNF9kMDVfY3Jvc3NfbW9kX2dsb2JhbCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMjRfZDA1X2Nyb3NzX21vZF9nbG9iYWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczI1X2QwNV9jcm9zc19tb2RfZ2xvYmFsID0gaHNsaWRlcigiTU1fTWF0cml4L3MyNV9kMDVfY3Jvc3NfbW9kX2dsb2JhbCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMjZfZDA1X2Nyb3NzX21vZF9nbG9iYWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczI2X2QwNV9jcm9zc19tb2RfZ2xvYmFsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyN19kMDVfY3Jvc3NfbW9kX2dsb2JhbCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMjdfZDA1X2Nyb3NzX21vZF9nbG9iYWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczI4X2QwNV9jcm9zc19tb2RfZ2xvYmFsID0gaHNsaWRlcigiTU1fTWF0cml4L3MyOF9kMDVfY3Jvc3NfbW9kX2dsb2JhbCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMjlfZDA1X2Nyb3NzX21vZF9nbG9iYWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczI5X2QwNV9jcm9zc19tb2RfZ2xvYmFsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzMF9kMDVfY3Jvc3NfbW9kX2dsb2JhbCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMzBfZDA1X2Nyb3NzX21vZF9nbG9iYWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczMxX2QwNV9jcm9zc19tb2RfZ2xvYmFsID0gaHNsaWRlcigiTU1fTWF0cml4L3MzMV9kMDVfY3Jvc3NfbW9kX2dsb2JhbCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMzJfZDA1X2Nyb3NzX21vZF9nbG9iYWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczMyX2QwNV9jcm9zc19tb2RfZ2xvYmFsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzM19kMDVfY3Jvc3NfbW9kX2dsb2JhbCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMzNfZDA1X2Nyb3NzX21vZF9nbG9iYWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczM0X2QwNV9jcm9zc19tb2RfZ2xvYmFsID0gaHNsaWRlcigiTU1fTWF0cml4L3MzNF9kMDVfY3Jvc3NfbW9kX2dsb2JhbCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMzVfZDA1X2Nyb3NzX21vZF9nbG9iYWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczM1X2QwNV9jcm9zc19tb2RfZ2xvYmFsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzNl9kMDVfY3Jvc3NfbW9kX2dsb2JhbCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMzZfZDA1X2Nyb3NzX21vZF9nbG9iYWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczM3X2QwNV9jcm9zc19tb2RfZ2xvYmFsID0gaHNsaWRlcigiTU1fTWF0cml4L3MzN19kMDVfY3Jvc3NfbW9kX2dsb2JhbCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMzhfZDA1X2Nyb3NzX21vZF9nbG9iYWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczM4X2QwNV9jcm9zc19tb2RfZ2xvYmFsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzOV9kMDVfY3Jvc3NfbW9kX2dsb2JhbCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMzlfZDA1X2Nyb3NzX21vZF9nbG9iYWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQwX2QwNV9jcm9zc19tb2RfZ2xvYmFsID0gaHNsaWRlcigiTU1fTWF0cml4L3M0MF9kMDVfY3Jvc3NfbW9kX2dsb2JhbCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zNDFfZDA1X2Nyb3NzX21vZF9nbG9iYWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQxX2QwNV9jcm9zc19tb2RfZ2xvYmFsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0Ml9kMDVfY3Jvc3NfbW9kX2dsb2JhbCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zNDJfZDA1X2Nyb3NzX21vZF9nbG9iYWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQzX2QwNV9jcm9zc19tb2RfZ2xvYmFsID0gaHNsaWRlcigiTU1fTWF0cml4L3M0M19kMDVfY3Jvc3NfbW9kX2dsb2JhbCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zNDRfZDA1X2Nyb3NzX21vZF9nbG9iYWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQ0X2QwNV9jcm9zc19tb2RfZ2xvYmFsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0NV9kMDVfY3Jvc3NfbW9kX2dsb2JhbCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zNDVfZDA1X2Nyb3NzX21vZF9nbG9iYWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQ2X2QwNV9jcm9zc19tb2RfZ2xvYmFsID0gaHNsaWRlcigiTU1fTWF0cml4L3M0Nl9kMDVfY3Jvc3NfbW9kX2dsb2JhbCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zNDdfZDA1X2Nyb3NzX21vZF9nbG9iYWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQ3X2QwNV9jcm9zc19tb2RfZ2xvYmFsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKCi8vIE1hdHJpeCBjb2x1bW46IGRlc3RpbmF0aW9uIDYgPSBmZWVkYmFja19nbG9iYWwKYW10X3MwMF9kMDZfZmVlZGJhY2tfZ2xvYmFsID0gaHNsaWRlcigiTU1fTWF0cml4L3MwMF9kMDZfZmVlZGJhY2tfZ2xvYmFsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwMV9kMDZfZmVlZGJhY2tfZ2xvYmFsID0gaHNsaWRlcigiTU1fTWF0cml4L3MwMV9kMDZfZmVlZGJhY2tfZ2xvYmFsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwMl9kMDZfZmVlZGJhY2tfZ2xvYmFsID0gaHNsaWRlcigiTU1fTWF0cml4L3MwMl9kMDZfZmVlZGJhY2tfZ2xvYmFsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwM19kMDZfZmVlZGJhY2tfZ2xvYmFsID0gaHNsaWRlcigiTU1fTWF0cml4L3MwM19kMDZfZmVlZGJhY2tfZ2xvYmFsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwNF9kMDZfZmVlZGJhY2tfZ2xvYmFsID0gaHNsaWRlcigiTU1fTWF0cml4L3MwNF9kMDZfZmVlZGJhY2tfZ2xvYmFsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwNV9kMDZfZmVlZGJhY2tfZ2xvYmFsID0gaHNsaWRlcigiTU1fTWF0cml4L3MwNV9kMDZfZmVlZGJhY2tfZ2xvYmFsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwNl9kMDZfZmVlZGJhY2tfZ2xvYmFsID0gaHNsaWRlcigiTU1fTWF0cml4L3MwNl9kMDZfZmVlZGJhY2tfZ2xvYmFsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwN19kMDZfZmVlZGJhY2tfZ2xvYmFsID0gaHNsaWRlcigiTU1fTWF0cml4L3MwN19kMDZfZmVlZGJhY2tfZ2xvYmFsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwOF9kMDZfZmVlZGJhY2tfZ2xvYmFsID0gaHNsaWRlcigiTU1fTWF0cml4L3MwOF9kMDZfZmVlZGJhY2tfZ2xvYmFsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwOV9kMDZfZmVlZGJhY2tfZ2xvYmFsID0gaHNsaWRlcigiTU1fTWF0cml4L3MwOV9kMDZfZmVlZGJhY2tfZ2xvYmFsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxMF9kMDZfZmVlZGJhY2tfZ2xvYmFsID0gaHNsaWRlcigiTU1fTWF0cml4L3MxMF9kMDZfZmVlZGJhY2tfZ2xvYmFsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxMV9kMDZfZmVlZGJhY2tfZ2xvYmFsID0gaHNsaWRlcigiTU1fTWF0cml4L3MxMV9kMDZfZmVlZGJhY2tfZ2xvYmFsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxMl9kMDZfZmVlZGJhY2tfZ2xvYmFsID0gaHNsaWRlcigiTU1fTWF0cml4L3MxMl9kMDZfZmVlZGJhY2tfZ2xvYmFsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxM19kMDZfZmVlZGJhY2tfZ2xvYmFsID0gaHNsaWRlcigiTU1fTWF0cml4L3MxM19kMDZfZmVlZGJhY2tfZ2xvYmFsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxNF9kMDZfZmVlZGJhY2tfZ2xvYmFsID0gaHNsaWRlcigiTU1fTWF0cml4L3MxNF9kMDZfZmVlZGJhY2tfZ2xvYmFsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxNV9kMDZfZmVlZGJhY2tfZ2xvYmFsID0gaHNsaWRlcigiTU1fTWF0cml4L3MxNV9kMDZfZmVlZGJhY2tfZ2xvYmFsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxNl9kMDZfZmVlZGJhY2tfZ2xvYmFsID0gaHNsaWRlcigiTU1fTWF0cml4L3MxNl9kMDZfZmVlZGJhY2tfZ2xvYmFsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxN19kMDZfZmVlZGJhY2tfZ2xvYmFsID0gaHNsaWRlcigiTU1fTWF0cml4L3MxN19kMDZfZmVlZGJhY2tfZ2xvYmFsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxOF9kMDZfZmVlZGJhY2tfZ2xvYmFsID0gaHNsaWRlcigiTU1fTWF0cml4L3MxOF9kMDZfZmVlZGJhY2tfZ2xvYmFsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxOV9kMDZfZmVlZGJhY2tfZ2xvYmFsID0gaHNsaWRlcigiTU1fTWF0cml4L3MxOV9kMDZfZmVlZGJhY2tfZ2xvYmFsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyMF9kMDZfZmVlZGJhY2tfZ2xvYmFsID0gaHNsaWRlcigiTU1fTWF0cml4L3MyMF9kMDZfZmVlZGJhY2tfZ2xvYmFsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyMV9kMDZfZmVlZGJhY2tfZ2xvYmFsID0gaHNsaWRlcigiTU1fTWF0cml4L3MyMV9kMDZfZmVlZGJhY2tfZ2xvYmFsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyMl9kMDZfZmVlZGJhY2tfZ2xvYmFsID0gaHNsaWRlcigiTU1fTWF0cml4L3MyMl9kMDZfZmVlZGJhY2tfZ2xvYmFsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyM19kMDZfZmVlZGJhY2tfZ2xvYmFsID0gaHNsaWRlcigiTU1fTWF0cml4L3MyM19kMDZfZmVlZGJhY2tfZ2xvYmFsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyNF9kMDZfZmVlZGJhY2tfZ2xvYmFsID0gaHNsaWRlcigiTU1fTWF0cml4L3MyNF9kMDZfZmVlZGJhY2tfZ2xvYmFsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyNV9kMDZfZmVlZGJhY2tfZ2xvYmFsID0gaHNsaWRlcigiTU1fTWF0cml4L3MyNV9kMDZfZmVlZGJhY2tfZ2xvYmFsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyNl9kMDZfZmVlZGJhY2tfZ2xvYmFsID0gaHNsaWRlcigiTU1fTWF0cml4L3MyNl9kMDZfZmVlZGJhY2tfZ2xvYmFsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyN19kMDZfZmVlZGJhY2tfZ2xvYmFsID0gaHNsaWRlcigiTU1fTWF0cml4L3MyN19kMDZfZmVlZGJhY2tfZ2xvYmFsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyOF9kMDZfZmVlZGJhY2tfZ2xvYmFsID0gaHNsaWRlcigiTU1fTWF0cml4L3MyOF9kMDZfZmVlZGJhY2tfZ2xvYmFsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyOV9kMDZfZmVlZGJhY2tfZ2xvYmFsID0gaHNsaWRlcigiTU1fTWF0cml4L3MyOV9kMDZfZmVlZGJhY2tfZ2xvYmFsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzMF9kMDZfZmVlZGJhY2tfZ2xvYmFsID0gaHNsaWRlcigiTU1fTWF0cml4L3MzMF9kMDZfZmVlZGJhY2tfZ2xvYmFsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzMV9kMDZfZmVlZGJhY2tfZ2xvYmFsID0gaHNsaWRlcigiTU1fTWF0cml4L3MzMV9kMDZfZmVlZGJhY2tfZ2xvYmFsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzMl9kMDZfZmVlZGJhY2tfZ2xvYmFsID0gaHNsaWRlcigiTU1fTWF0cml4L3MzMl9kMDZfZmVlZGJhY2tfZ2xvYmFsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzM19kMDZfZmVlZGJhY2tfZ2xvYmFsID0gaHNsaWRlcigiTU1fTWF0cml4L3MzM19kMDZfZmVlZGJhY2tfZ2xvYmFsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzNF9kMDZfZmVlZGJhY2tfZ2xvYmFsID0gaHNsaWRlcigiTU1fTWF0cml4L3MzNF9kMDZfZmVlZGJhY2tfZ2xvYmFsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzNV9kMDZfZmVlZGJhY2tfZ2xvYmFsID0gaHNsaWRlcigiTU1fTWF0cml4L3MzNV9kMDZfZmVlZGJhY2tfZ2xvYmFsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzNl9kMDZfZmVlZGJhY2tfZ2xvYmFsID0gaHNsaWRlcigiTU1fTWF0cml4L3MzNl9kMDZfZmVlZGJhY2tfZ2xvYmFsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzN19kMDZfZmVlZGJhY2tfZ2xvYmFsID0gaHNsaWRlcigiTU1fTWF0cml4L3MzN19kMDZfZmVlZGJhY2tfZ2xvYmFsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzOF9kMDZfZmVlZGJhY2tfZ2xvYmFsID0gaHNsaWRlcigiTU1fTWF0cml4L3MzOF9kMDZfZmVlZGJhY2tfZ2xvYmFsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzOV9kMDZfZmVlZGJhY2tfZ2xvYmFsID0gaHNsaWRlcigiTU1fTWF0cml4L3MzOV9kMDZfZmVlZGJhY2tfZ2xvYmFsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0MF9kMDZfZmVlZGJhY2tfZ2xvYmFsID0gaHNsaWRlcigiTU1fTWF0cml4L3M0MF9kMDZfZmVlZGJhY2tfZ2xvYmFsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0MV9kMDZfZmVlZGJhY2tfZ2xvYmFsID0gaHNsaWRlcigiTU1fTWF0cml4L3M0MV9kMDZfZmVlZGJhY2tfZ2xvYmFsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0Ml9kMDZfZmVlZGJhY2tfZ2xvYmFsID0gaHNsaWRlcigiTU1fTWF0cml4L3M0Ml9kMDZfZmVlZGJhY2tfZ2xvYmFsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0M19kMDZfZmVlZGJhY2tfZ2xvYmFsID0gaHNsaWRlcigiTU1fTWF0cml4L3M0M19kMDZfZmVlZGJhY2tfZ2xvYmFsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0NF9kMDZfZmVlZGJhY2tfZ2xvYmFsID0gaHNsaWRlcigiTU1fTWF0cml4L3M0NF9kMDZfZmVlZGJhY2tfZ2xvYmFsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0NV9kMDZfZmVlZGJhY2tfZ2xvYmFsID0gaHNsaWRlcigiTU1fTWF0cml4L3M0NV9kMDZfZmVlZGJhY2tfZ2xvYmFsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0Nl9kMDZfZmVlZGJhY2tfZ2xvYmFsID0gaHNsaWRlcigiTU1fTWF0cml4L3M0Nl9kMDZfZmVlZGJhY2tfZ2xvYmFsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0N19kMDZfZmVlZGJhY2tfZ2xvYmFsID0gaHNsaWRlcigiTU1fTWF0cml4L3M0N19kMDZfZmVlZGJhY2tfZ2xvYmFsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKCi8vIE1hdHJpeCBjb2x1bW46IGRlc3RpbmF0aW9uIDcgPSBnbG9iYWxfcmF0aW8KYW10X3MwMF9kMDdfZ2xvYmFsX3JhdGlvID0gaHNsaWRlcigiTU1fTWF0cml4L3MwMF9kMDdfZ2xvYmFsX3JhdGlvIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwMV9kMDdfZ2xvYmFsX3JhdGlvID0gaHNsaWRlcigiTU1fTWF0cml4L3MwMV9kMDdfZ2xvYmFsX3JhdGlvIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwMl9kMDdfZ2xvYmFsX3JhdGlvID0gaHNsaWRlcigiTU1fTWF0cml4L3MwMl9kMDdfZ2xvYmFsX3JhdGlvIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwM19kMDdfZ2xvYmFsX3JhdGlvID0gaHNsaWRlcigiTU1fTWF0cml4L3MwM19kMDdfZ2xvYmFsX3JhdGlvIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwNF9kMDdfZ2xvYmFsX3JhdGlvID0gaHNsaWRlcigiTU1fTWF0cml4L3MwNF9kMDdfZ2xvYmFsX3JhdGlvIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwNV9kMDdfZ2xvYmFsX3JhdGlvID0gaHNsaWRlcigiTU1fTWF0cml4L3MwNV9kMDdfZ2xvYmFsX3JhdGlvIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwNl9kMDdfZ2xvYmFsX3JhdGlvID0gaHNsaWRlcigiTU1fTWF0cml4L3MwNl9kMDdfZ2xvYmFsX3JhdGlvIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwN19kMDdfZ2xvYmFsX3JhdGlvID0gaHNsaWRlcigiTU1fTWF0cml4L3MwN19kMDdfZ2xvYmFsX3JhdGlvIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwOF9kMDdfZ2xvYmFsX3JhdGlvID0gaHNsaWRlcigiTU1fTWF0cml4L3MwOF9kMDdfZ2xvYmFsX3JhdGlvIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwOV9kMDdfZ2xvYmFsX3JhdGlvID0gaHNsaWRlcigiTU1fTWF0cml4L3MwOV9kMDdfZ2xvYmFsX3JhdGlvIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxMF9kMDdfZ2xvYmFsX3JhdGlvID0gaHNsaWRlcigiTU1fTWF0cml4L3MxMF9kMDdfZ2xvYmFsX3JhdGlvIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxMV9kMDdfZ2xvYmFsX3JhdGlvID0gaHNsaWRlcigiTU1fTWF0cml4L3MxMV9kMDdfZ2xvYmFsX3JhdGlvIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxMl9kMDdfZ2xvYmFsX3JhdGlvID0gaHNsaWRlcigiTU1fTWF0cml4L3MxMl9kMDdfZ2xvYmFsX3JhdGlvIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxM19kMDdfZ2xvYmFsX3JhdGlvID0gaHNsaWRlcigiTU1fTWF0cml4L3MxM19kMDdfZ2xvYmFsX3JhdGlvIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxNF9kMDdfZ2xvYmFsX3JhdGlvID0gaHNsaWRlcigiTU1fTWF0cml4L3MxNF9kMDdfZ2xvYmFsX3JhdGlvIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxNV9kMDdfZ2xvYmFsX3JhdGlvID0gaHNsaWRlcigiTU1fTWF0cml4L3MxNV9kMDdfZ2xvYmFsX3JhdGlvIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxNl9kMDdfZ2xvYmFsX3JhdGlvID0gaHNsaWRlcigiTU1fTWF0cml4L3MxNl9kMDdfZ2xvYmFsX3JhdGlvIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxN19kMDdfZ2xvYmFsX3JhdGlvID0gaHNsaWRlcigiTU1fTWF0cml4L3MxN19kMDdfZ2xvYmFsX3JhdGlvIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxOF9kMDdfZ2xvYmFsX3JhdGlvID0gaHNsaWRlcigiTU1fTWF0cml4L3MxOF9kMDdfZ2xvYmFsX3JhdGlvIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxOV9kMDdfZ2xvYmFsX3JhdGlvID0gaHNsaWRlcigiTU1fTWF0cml4L3MxOV9kMDdfZ2xvYmFsX3JhdGlvIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyMF9kMDdfZ2xvYmFsX3JhdGlvID0gaHNsaWRlcigiTU1fTWF0cml4L3MyMF9kMDdfZ2xvYmFsX3JhdGlvIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyMV9kMDdfZ2xvYmFsX3JhdGlvID0gaHNsaWRlcigiTU1fTWF0cml4L3MyMV9kMDdfZ2xvYmFsX3JhdGlvIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyMl9kMDdfZ2xvYmFsX3JhdGlvID0gaHNsaWRlcigiTU1fTWF0cml4L3MyMl9kMDdfZ2xvYmFsX3JhdGlvIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyM19kMDdfZ2xvYmFsX3JhdGlvID0gaHNsaWRlcigiTU1fTWF0cml4L3MyM19kMDdfZ2xvYmFsX3JhdGlvIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyNF9kMDdfZ2xvYmFsX3JhdGlvID0gaHNsaWRlcigiTU1fTWF0cml4L3MyNF9kMDdfZ2xvYmFsX3JhdGlvIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyNV9kMDdfZ2xvYmFsX3JhdGlvID0gaHNsaWRlcigiTU1fTWF0cml4L3MyNV9kMDdfZ2xvYmFsX3JhdGlvIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyNl9kMDdfZ2xvYmFsX3JhdGlvID0gaHNsaWRlcigiTU1fTWF0cml4L3MyNl9kMDdfZ2xvYmFsX3JhdGlvIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyN19kMDdfZ2xvYmFsX3JhdGlvID0gaHNsaWRlcigiTU1fTWF0cml4L3MyN19kMDdfZ2xvYmFsX3JhdGlvIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyOF9kMDdfZ2xvYmFsX3JhdGlvID0gaHNsaWRlcigiTU1fTWF0cml4L3MyOF9kMDdfZ2xvYmFsX3JhdGlvIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyOV9kMDdfZ2xvYmFsX3JhdGlvID0gaHNsaWRlcigiTU1fTWF0cml4L3MyOV9kMDdfZ2xvYmFsX3JhdGlvIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzMF9kMDdfZ2xvYmFsX3JhdGlvID0gaHNsaWRlcigiTU1fTWF0cml4L3MzMF9kMDdfZ2xvYmFsX3JhdGlvIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzMV9kMDdfZ2xvYmFsX3JhdGlvID0gaHNsaWRlcigiTU1fTWF0cml4L3MzMV9kMDdfZ2xvYmFsX3JhdGlvIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzMl9kMDdfZ2xvYmFsX3JhdGlvID0gaHNsaWRlcigiTU1fTWF0cml4L3MzMl9kMDdfZ2xvYmFsX3JhdGlvIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzM19kMDdfZ2xvYmFsX3JhdGlvID0gaHNsaWRlcigiTU1fTWF0cml4L3MzM19kMDdfZ2xvYmFsX3JhdGlvIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzNF9kMDdfZ2xvYmFsX3JhdGlvID0gaHNsaWRlcigiTU1fTWF0cml4L3MzNF9kMDdfZ2xvYmFsX3JhdGlvIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzNV9kMDdfZ2xvYmFsX3JhdGlvID0gaHNsaWRlcigiTU1fTWF0cml4L3MzNV9kMDdfZ2xvYmFsX3JhdGlvIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzNl9kMDdfZ2xvYmFsX3JhdGlvID0gaHNsaWRlcigiTU1fTWF0cml4L3MzNl9kMDdfZ2xvYmFsX3JhdGlvIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzN19kMDdfZ2xvYmFsX3JhdGlvID0gaHNsaWRlcigiTU1fTWF0cml4L3MzN19kMDdfZ2xvYmFsX3JhdGlvIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzOF9kMDdfZ2xvYmFsX3JhdGlvID0gaHNsaWRlcigiTU1fTWF0cml4L3MzOF9kMDdfZ2xvYmFsX3JhdGlvIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzOV9kMDdfZ2xvYmFsX3JhdGlvID0gaHNsaWRlcigiTU1fTWF0cml4L3MzOV9kMDdfZ2xvYmFsX3JhdGlvIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0MF9kMDdfZ2xvYmFsX3JhdGlvID0gaHNsaWRlcigiTU1fTWF0cml4L3M0MF9kMDdfZ2xvYmFsX3JhdGlvIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0MV9kMDdfZ2xvYmFsX3JhdGlvID0gaHNsaWRlcigiTU1fTWF0cml4L3M0MV9kMDdfZ2xvYmFsX3JhdGlvIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0Ml9kMDdfZ2xvYmFsX3JhdGlvID0gaHNsaWRlcigiTU1fTWF0cml4L3M0Ml9kMDdfZ2xvYmFsX3JhdGlvIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0M19kMDdfZ2xvYmFsX3JhdGlvID0gaHNsaWRlcigiTU1fTWF0cml4L3M0M19kMDdfZ2xvYmFsX3JhdGlvIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0NF9kMDdfZ2xvYmFsX3JhdGlvID0gaHNsaWRlcigiTU1fTWF0cml4L3M0NF9kMDdfZ2xvYmFsX3JhdGlvIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0NV9kMDdfZ2xvYmFsX3JhdGlvID0gaHNsaWRlcigiTU1fTWF0cml4L3M0NV9kMDdfZ2xvYmFsX3JhdGlvIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0Nl9kMDdfZ2xvYmFsX3JhdGlvID0gaHNsaWRlcigiTU1fTWF0cml4L3M0Nl9kMDdfZ2xvYmFsX3JhdGlvIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0N19kMDdfZ2xvYmFsX3JhdGlvID0gaHNsaWRlcigiTU1fTWF0cml4L3M0N19kMDdfZ2xvYmFsX3JhdGlvIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKCi8vIE1hdHJpeCBjb2x1bW46IGRlc3RpbmF0aW9uIDggPSBhbXAKYW10X3MwMF9kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3MwMF9kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwMV9kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3MwMV9kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwMl9kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3MwMl9kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwM19kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3MwM19kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwNF9kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3MwNF9kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwNV9kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3MwNV9kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwNl9kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3MwNl9kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwN19kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3MwN19kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwOF9kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3MwOF9kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwOV9kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3MwOV9kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxMF9kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3MxMF9kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxMV9kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3MxMV9kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxMl9kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3MxMl9kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxM19kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3MxM19kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxNF9kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3MxNF9kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxNV9kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3MxNV9kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxNl9kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3MxNl9kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxN19kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3MxN19kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxOF9kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3MxOF9kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxOV9kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3MxOV9kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyMF9kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3MyMF9kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyMV9kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3MyMV9kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyMl9kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3MyMl9kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyM19kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3MyM19kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyNF9kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3MyNF9kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyNV9kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3MyNV9kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyNl9kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3MyNl9kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyN19kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3MyN19kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyOF9kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3MyOF9kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyOV9kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3MyOV9kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzMF9kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3MzMF9kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzMV9kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3MzMV9kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzMl9kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3MzMl9kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzM19kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3MzM19kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzNF9kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3MzNF9kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzNV9kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3MzNV9kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzNl9kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3MzNl9kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzN19kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3MzN19kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzOF9kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3MzOF9kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzOV9kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3MzOV9kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0MF9kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3M0MF9kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0MV9kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3M0MV9kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0Ml9kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3M0Ml9kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0M19kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3M0M19kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0NF9kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3M0NF9kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0NV9kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3M0NV9kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0Nl9kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3M0Nl9kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0N19kMDhfYW1wID0gaHNsaWRlcigiTU1fTWF0cml4L3M0N19kMDhfYW1wIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKCi8vIE1hdHJpeCBjb2x1bW46IGRlc3RpbmF0aW9uIDkgPSBwYW4KYW10X3MwMF9kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3MwMF9kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwMV9kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3MwMV9kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwMl9kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3MwMl9kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwM19kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3MwM19kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwNF9kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3MwNF9kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwNV9kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3MwNV9kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwNl9kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3MwNl9kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwN19kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3MwN19kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwOF9kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3MwOF9kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwOV9kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3MwOV9kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxMF9kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3MxMF9kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxMV9kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3MxMV9kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxMl9kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3MxMl9kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxM19kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3MxM19kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxNF9kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3MxNF9kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxNV9kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3MxNV9kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxNl9kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3MxNl9kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxN19kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3MxN19kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxOF9kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3MxOF9kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxOV9kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3MxOV9kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyMF9kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3MyMF9kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyMV9kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3MyMV9kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyMl9kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3MyMl9kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyM19kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3MyM19kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyNF9kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3MyNF9kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyNV9kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3MyNV9kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyNl9kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3MyNl9kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyN19kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3MyN19kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyOF9kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3MyOF9kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyOV9kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3MyOV9kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzMF9kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3MzMF9kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzMV9kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3MzMV9kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzMl9kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3MzMl9kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzM19kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3MzM19kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzNF9kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3MzNF9kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzNV9kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3MzNV9kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzNl9kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3MzNl9kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzN19kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3MzN19kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzOF9kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3MzOF9kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzOV9kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3MzOV9kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0MF9kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3M0MF9kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0MV9kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3M0MV9kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0Ml9kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3M0Ml9kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0M19kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3M0M19kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0NF9kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3M0NF9kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0NV9kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3M0NV9kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0Nl9kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3M0Nl9kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0N19kMDlfcGFuID0gaHNsaWRlcigiTU1fTWF0cml4L3M0N19kMDlfcGFuIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQovLyBEZXN0aW5hdGlvbiBzaWduYWxzIOKAlCBvbmUgcGVyIG1vZHVsYXRpb24gZGVzdGluYXRpb24uIEVhY2ggaXMgYSA0OC10ZXJtCi8vIHdlaWdodGVkIHN1bSBvZiBzb3VyY2VzIMOXIGFtb3VudHMuIFRoZSBgZ2F0ZWAgYXJndW1lbnQgaXMgdGhyZWFkZWQgdGhyb3VnaAovLyBzbyB0aGF0IG1wLnNyYz8/KGdhdGUpIGNhbiBkcml2ZSBBRFNSIGVudmVsb3Blcy4KLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgptb2RfcGl0Y2goZ2F0ZSkgPQogICAgbXAuc3JjMDAoZ2F0ZSkgKiBhbXRfczAwX2QwMF9waXRjaCArCiAgICBtcC5zcmMwMShnYXRlKSAqIGFtdF9zMDFfZDAwX3BpdGNoICsKICAgIG1wLnNyYzAyKGdhdGUpICogYW10X3MwMl9kMDBfcGl0Y2ggKwogICAgbXAuc3JjMDMoZ2F0ZSkgKiBhbXRfczAzX2QwMF9waXRjaCArCiAgICBtcC5zcmMwNChnYXRlKSAqIGFtdF9zMDRfZDAwX3BpdGNoICsKICAgIG1wLnNyYzA1KGdhdGUpICogYW10X3MwNV9kMDBfcGl0Y2ggKwogICAgbXAuc3JjMDYoZ2F0ZSkgKiBhbXRfczA2X2QwMF9waXRjaCArCiAgICBtcC5zcmMwNyhnYXRlKSAqIGFtdF9zMDdfZDAwX3BpdGNoICsKICAgIG1wLnNyYzA4KGdhdGUpICogYW10X3MwOF9kMDBfcGl0Y2ggKwogICAgbXAuc3JjMDkoZ2F0ZSkgKiBhbXRfczA5X2QwMF9waXRjaCArCiAgICBtcC5zcmMxMChnYXRlKSAqIGFtdF9zMTBfZDAwX3BpdGNoICsKICAgIG1wLnNyYzExKGdhdGUpICogYW10X3MxMV9kMDBfcGl0Y2ggKwogICAgbXAuc3JjMTIoZ2F0ZSkgKiBhbXRfczEyX2QwMF9waXRjaCArCiAgICBtcC5zcmMxMyhnYXRlKSAqIGFtdF9zMTNfZDAwX3BpdGNoICsKICAgIG1wLnNyYzE0KGdhdGUpICogYW10X3MxNF9kMDBfcGl0Y2ggKwogICAgbXAuc3JjMTUoZ2F0ZSkgKiBhbXRfczE1X2QwMF9waXRjaCArCiAgICBtcC5zcmMxNihnYXRlKSAqIGFtdF9zMTZfZDAwX3BpdGNoICsKICAgIG1wLnNyYzE3KGdhdGUpICogYW10X3MxN19kMDBfcGl0Y2ggKwogICAgbXAuc3JjMTgoZ2F0ZSkgKiBhbXRfczE4X2QwMF9waXRjaCArCiAgICBtcC5zcmMxOShnYXRlKSAqIGFtdF9zMTlfZDAwX3BpdGNoICsKICAgIG1wLnNyYzIwKGdhdGUpICogYW10X3MyMF9kMDBfcGl0Y2ggKwogICAgbXAuc3JjMjEoZ2F0ZSkgKiBhbXRfczIxX2QwMF9waXRjaCArCiAgICBtcC5zcmMyMihnYXRlKSAqIGFtdF9zMjJfZDAwX3BpdGNoICsKICAgIG1wLnNyYzIzKGdhdGUpICogYW10X3MyM19kMDBfcGl0Y2ggKwogICAgbXAuc3JjMjQoZ2F0ZSkgKiBhbXRfczI0X2QwMF9waXRjaCArCiAgICBtcC5zcmMyNShnYXRlKSAqIGFtdF9zMjVfZDAwX3BpdGNoICsKICAgIG1wLnNyYzI2KGdhdGUpICogYW10X3MyNl9kMDBfcGl0Y2ggKwogICAgbXAuc3JjMjcoZ2F0ZSkgKiBhbXRfczI3X2QwMF9waXRjaCArCiAgICBtcC5zcmMyOChnYXRlKSAqIGFtdF9zMjhfZDAwX3BpdGNoICsKICAgIG1wLnNyYzI5KGdhdGUpICogYW10X3MyOV9kMDBfcGl0Y2ggKwogICAgbXAuc3JjMzAoZ2F0ZSkgKiBhbXRfczMwX2QwMF9waXRjaCArCiAgICBtcC5zcmMzMShnYXRlKSAqIGFtdF9zMzFfZDAwX3BpdGNoICsKICAgIG1wLnNyYzMyKGdhdGUpICogYW10X3MzMl9kMDBfcGl0Y2ggKwogICAgbXAuc3JjMzMoZ2F0ZSkgKiBhbXRfczMzX2QwMF9waXRjaCArCiAgICBtcC5zcmMzNChnYXRlKSAqIGFtdF9zMzRfZDAwX3BpdGNoICsKICAgIG1wLnNyYzM1KGdhdGUpICogYW10X3MzNV9kMDBfcGl0Y2ggKwogICAgbXAuc3JjMzYoZ2F0ZSkgKiBhbXRfczM2X2QwMF9waXRjaCArCiAgICBtcC5zcmMzNyhnYXRlKSAqIGFtdF9zMzdfZDAwX3BpdGNoICsKICAgIG1wLnNyYzM4KGdhdGUpICogYW10X3MzOF9kMDBfcGl0Y2ggKwogICAgbXAuc3JjMzkoZ2F0ZSkgKiBhbXRfczM5X2QwMF9waXRjaCArCiAgICBtcC5zcmM0MChnYXRlKSAqIGFtdF9zNDBfZDAwX3BpdGNoICsKICAgIG1wLnNyYzQxKGdhdGUpICogYW10X3M0MV9kMDBfcGl0Y2ggKwogICAgbXAuc3JjNDIoZ2F0ZSkgKiBhbXRfczQyX2QwMF9waXRjaCArCiAgICBtcC5zcmM0MyhnYXRlKSAqIGFtdF9zNDNfZDAwX3BpdGNoICsKICAgIG1wLnNyYzQ0KGdhdGUpICogYW10X3M0NF9kMDBfcGl0Y2ggKwogICAgbXAuc3JjNDUoZ2F0ZSkgKiBhbXRfczQ1X2QwMF9waXRjaCArCiAgICBtcC5zcmM0NihnYXRlKSAqIGFtdF9zNDZfZDAwX3BpdGNoICsKICAgIG1wLnNyYzQ3KGdhdGUpICogYW10X3M0N19kMDBfcGl0Y2g7Cgptb2Rfb3AxX2xldmVsKGdhdGUpID0KICAgIG1wLnNyYzAwKGdhdGUpICogYW10X3MwMF9kMDFfb3AxX2xldmVsICsKICAgIG1wLnNyYzAxKGdhdGUpICogYW10X3MwMV9kMDFfb3AxX2xldmVsICsKICAgIG1wLnNyYzAyKGdhdGUpICogYW10X3MwMl9kMDFfb3AxX2xldmVsICsKICAgIG1wLnNyYzAzKGdhdGUpICogYW10X3MwM19kMDFfb3AxX2xldmVsICsKICAgIG1wLnNyYzA0KGdhdGUpICogYW10X3MwNF9kMDFfb3AxX2xldmVsICsKICAgIG1wLnNyYzA1KGdhdGUpICogYW10X3MwNV9kMDFfb3AxX2xldmVsICsKICAgIG1wLnNyYzA2KGdhdGUpICogYW10X3MwNl9kMDFfb3AxX2xldmVsICsKICAgIG1wLnNyYzA3KGdhdGUpICogYW10X3MwN19kMDFfb3AxX2xldmVsICsKICAgIG1wLnNyYzA4KGdhdGUpICogYW10X3MwOF9kMDFfb3AxX2xldmVsICsKICAgIG1wLnNyYzA5KGdhdGUpICogYW10X3MwOV9kMDFfb3AxX2xldmVsICsKICAgIG1wLnNyYzEwKGdhdGUpICogYW10X3MxMF9kMDFfb3AxX2xldmVsICsKICAgIG1wLnNyYzExKGdhdGUpICogYW10X3MxMV9kMDFfb3AxX2xldmVsICsKICAgIG1wLnNyYzEyKGdhdGUpICogYW10X3MxMl9kMDFfb3AxX2xldmVsICsKICAgIG1wLnNyYzEzKGdhdGUpICogYW10X3MxM19kMDFfb3AxX2xldmVsICsKICAgIG1wLnNyYzE0KGdhdGUpICogYW10X3MxNF9kMDFfb3AxX2xldmVsICsKICAgIG1wLnNyYzE1KGdhdGUpICogYW10X3MxNV9kMDFfb3AxX2xldmVsICsKICAgIG1wLnNyYzE2KGdhdGUpICogYW10X3MxNl9kMDFfb3AxX2xldmVsICsKICAgIG1wLnNyYzE3KGdhdGUpICogYW10X3MxN19kMDFfb3AxX2xldmVsICsKICAgIG1wLnNyYzE4KGdhdGUpICogYW10X3MxOF9kMDFfb3AxX2xldmVsICsKICAgIG1wLnNyYzE5KGdhdGUpICogYW10X3MxOV9kMDFfb3AxX2xldmVsICsKICAgIG1wLnNyYzIwKGdhdGUpICogYW10X3MyMF9kMDFfb3AxX2xldmVsICsKICAgIG1wLnNyYzIxKGdhdGUpICogYW10X3MyMV9kMDFfb3AxX2xldmVsICsKICAgIG1wLnNyYzIyKGdhdGUpICogYW10X3MyMl9kMDFfb3AxX2xldmVsICsKICAgIG1wLnNyYzIzKGdhdGUpICogYW10X3MyM19kMDFfb3AxX2xldmVsICsKICAgIG1wLnNyYzI0KGdhdGUpICogYW10X3MyNF9kMDFfb3AxX2xldmVsICsKICAgIG1wLnNyYzI1KGdhdGUpICogYW10X3MyNV9kMDFfb3AxX2xldmVsICsKICAgIG1wLnNyYzI2KGdhdGUpICogYW10X3MyNl9kMDFfb3AxX2xldmVsICsKICAgIG1wLnNyYzI3KGdhdGUpICogYW10X3MyN19kMDFfb3AxX2xldmVsICsKICAgIG1wLnNyYzI4KGdhdGUpICogYW10X3MyOF9kMDFfb3AxX2xldmVsICsKICAgIG1wLnNyYzI5KGdhdGUpICogYW10X3MyOV9kMDFfb3AxX2xldmVsICsKICAgIG1wLnNyYzMwKGdhdGUpICogYW10X3MzMF9kMDFfb3AxX2xldmVsICsKICAgIG1wLnNyYzMxKGdhdGUpICogYW10X3MzMV9kMDFfb3AxX2xldmVsICsKICAgIG1wLnNyYzMyKGdhdGUpICogYW10X3MzMl9kMDFfb3AxX2xldmVsICsKICAgIG1wLnNyYzMzKGdhdGUpICogYW10X3MzM19kMDFfb3AxX2xldmVsICsKICAgIG1wLnNyYzM0KGdhdGUpICogYW10X3MzNF9kMDFfb3AxX2xldmVsICsKICAgIG1wLnNyYzM1KGdhdGUpICogYW10X3MzNV9kMDFfb3AxX2xldmVsICsKICAgIG1wLnNyYzM2KGdhdGUpICogYW10X3MzNl9kMDFfb3AxX2xldmVsICsKICAgIG1wLnNyYzM3KGdhdGUpICogYW10X3MzN19kMDFfb3AxX2xldmVsICsKICAgIG1wLnNyYzM4KGdhdGUpICogYW10X3MzOF9kMDFfb3AxX2xldmVsICsKICAgIG1wLnNyYzM5KGdhdGUpICogYW10X3MzOV9kMDFfb3AxX2xldmVsICsKICAgIG1wLnNyYzQwKGdhdGUpICogYW10X3M0MF9kMDFfb3AxX2xldmVsICsKICAgIG1wLnNyYzQxKGdhdGUpICogYW10X3M0MV9kMDFfb3AxX2xldmVsICsKICAgIG1wLnNyYzQyKGdhdGUpICogYW10X3M0Ml9kMDFfb3AxX2xldmVsICsKICAgIG1wLnNyYzQzKGdhdGUpICogYW10X3M0M19kMDFfb3AxX2xldmVsICsKICAgIG1wLnNyYzQ0KGdhdGUpICogYW10X3M0NF9kMDFfb3AxX2xldmVsICsKICAgIG1wLnNyYzQ1KGdhdGUpICogYW10X3M0NV9kMDFfb3AxX2xldmVsICsKICAgIG1wLnNyYzQ2KGdhdGUpICogYW10X3M0Nl9kMDFfb3AxX2xldmVsICsKICAgIG1wLnNyYzQ3KGdhdGUpICogYW10X3M0N19kMDFfb3AxX2xldmVsOwoKbW9kX29wMl9sZXZlbChnYXRlKSA9CiAgICBtcC5zcmMwMChnYXRlKSAqIGFtdF9zMDBfZDAyX29wMl9sZXZlbCArCiAgICBtcC5zcmMwMShnYXRlKSAqIGFtdF9zMDFfZDAyX29wMl9sZXZlbCArCiAgICBtcC5zcmMwMihnYXRlKSAqIGFtdF9zMDJfZDAyX29wMl9sZXZlbCArCiAgICBtcC5zcmMwMyhnYXRlKSAqIGFtdF9zMDNfZDAyX29wMl9sZXZlbCArCiAgICBtcC5zcmMwNChnYXRlKSAqIGFtdF9zMDRfZDAyX29wMl9sZXZlbCArCiAgICBtcC5zcmMwNShnYXRlKSAqIGFtdF9zMDVfZDAyX29wMl9sZXZlbCArCiAgICBtcC5zcmMwNihnYXRlKSAqIGFtdF9zMDZfZDAyX29wMl9sZXZlbCArCiAgICBtcC5zcmMwNyhnYXRlKSAqIGFtdF9zMDdfZDAyX29wMl9sZXZlbCArCiAgICBtcC5zcmMwOChnYXRlKSAqIGFtdF9zMDhfZDAyX29wMl9sZXZlbCArCiAgICBtcC5zcmMwOShnYXRlKSAqIGFtdF9zMDlfZDAyX29wMl9sZXZlbCArCiAgICBtcC5zcmMxMChnYXRlKSAqIGFtdF9zMTBfZDAyX29wMl9sZXZlbCArCiAgICBtcC5zcmMxMShnYXRlKSAqIGFtdF9zMTFfZDAyX29wMl9sZXZlbCArCiAgICBtcC5zcmMxMihnYXRlKSAqIGFtdF9zMTJfZDAyX29wMl9sZXZlbCArCiAgICBtcC5zcmMxMyhnYXRlKSAqIGFtdF9zMTNfZDAyX29wMl9sZXZlbCArCiAgICBtcC5zcmMxNChnYXRlKSAqIGFtdF9zMTRfZDAyX29wMl9sZXZlbCArCiAgICBtcC5zcmMxNShnYXRlKSAqIGFtdF9zMTVfZDAyX29wMl9sZXZlbCArCiAgICBtcC5zcmMxNihnYXRlKSAqIGFtdF9zMTZfZDAyX29wMl9sZXZlbCArCiAgICBtcC5zcmMxNyhnYXRlKSAqIGFtdF9zMTdfZDAyX29wMl9sZXZlbCArCiAgICBtcC5zcmMxOChnYXRlKSAqIGFtdF9zMThfZDAyX29wMl9sZXZlbCArCiAgICBtcC5zcmMxOShnYXRlKSAqIGFtdF9zMTlfZDAyX29wMl9sZXZlbCArCiAgICBtcC5zcmMyMChnYXRlKSAqIGFtdF9zMjBfZDAyX29wMl9sZXZlbCArCiAgICBtcC5zcmMyMShnYXRlKSAqIGFtdF9zMjFfZDAyX29wMl9sZXZlbCArCiAgICBtcC5zcmMyMihnYXRlKSAqIGFtdF9zMjJfZDAyX29wMl9sZXZlbCArCiAgICBtcC5zcmMyMyhnYXRlKSAqIGFtdF9zMjNfZDAyX29wMl9sZXZlbCArCiAgICBtcC5zcmMyNChnYXRlKSAqIGFtdF9zMjRfZDAyX29wMl9sZXZlbCArCiAgICBtcC5zcmMyNShnYXRlKSAqIGFtdF9zMjVfZDAyX29wMl9sZXZlbCArCiAgICBtcC5zcmMyNihnYXRlKSAqIGFtdF9zMjZfZDAyX29wMl9sZXZlbCArCiAgICBtcC5zcmMyNyhnYXRlKSAqIGFtdF9zMjdfZDAyX29wMl9sZXZlbCArCiAgICBtcC5zcmMyOChnYXRlKSAqIGFtdF9zMjhfZDAyX29wMl9sZXZlbCArCiAgICBtcC5zcmMyOShnYXRlKSAqIGFtdF9zMjlfZDAyX29wMl9sZXZlbCArCiAgICBtcC5zcmMzMChnYXRlKSAqIGFtdF9zMzBfZDAyX29wMl9sZXZlbCArCiAgICBtcC5zcmMzMShnYXRlKSAqIGFtdF9zMzFfZDAyX29wMl9sZXZlbCArCiAgICBtcC5zcmMzMihnYXRlKSAqIGFtdF9zMzJfZDAyX29wMl9sZXZlbCArCiAgICBtcC5zcmMzMyhnYXRlKSAqIGFtdF9zMzNfZDAyX29wMl9sZXZlbCArCiAgICBtcC5zcmMzNChnYXRlKSAqIGFtdF9zMzRfZDAyX29wMl9sZXZlbCArCiAgICBtcC5zcmMzNShnYXRlKSAqIGFtdF9zMzVfZDAyX29wMl9sZXZlbCArCiAgICBtcC5zcmMzNihnYXRlKSAqIGFtdF9zMzZfZDAyX29wMl9sZXZlbCArCiAgICBtcC5zcmMzNyhnYXRlKSAqIGFtdF9zMzdfZDAyX29wMl9sZXZlbCArCiAgICBtcC5zcmMzOChnYXRlKSAqIGFtdF9zMzhfZDAyX29wMl9sZXZlbCArCiAgICBtcC5zcmMzOShnYXRlKSAqIGFtdF9zMzlfZDAyX29wMl9sZXZlbCArCiAgICBtcC5zcmM0MChnYXRlKSAqIGFtdF9zNDBfZDAyX29wMl9sZXZlbCArCiAgICBtcC5zcmM0MShnYXRlKSAqIGFtdF9zNDFfZDAyX29wMl9sZXZlbCArCiAgICBtcC5zcmM0MihnYXRlKSAqIGFtdF9zNDJfZDAyX29wMl9sZXZlbCArCiAgICBtcC5zcmM0MyhnYXRlKSAqIGFtdF9zNDNfZDAyX29wMl9sZXZlbCArCiAgICBtcC5zcmM0NChnYXRlKSAqIGFtdF9zNDRfZDAyX29wMl9sZXZlbCArCiAgICBtcC5zcmM0NShnYXRlKSAqIGFtdF9zNDVfZDAyX29wMl9sZXZlbCArCiAgICBtcC5zcmM0NihnYXRlKSAqIGFtdF9zNDZfZDAyX29wMl9sZXZlbCArCiAgICBtcC5zcmM0NyhnYXRlKSAqIGFtdF9zNDdfZDAyX29wMl9sZXZlbDsKCm1vZF9vcDNfbGV2ZWwoZ2F0ZSkgPQogICAgbXAuc3JjMDAoZ2F0ZSkgKiBhbXRfczAwX2QwM19vcDNfbGV2ZWwgKwogICAgbXAuc3JjMDEoZ2F0ZSkgKiBhbXRfczAxX2QwM19vcDNfbGV2ZWwgKwogICAgbXAuc3JjMDIoZ2F0ZSkgKiBhbXRfczAyX2QwM19vcDNfbGV2ZWwgKwogICAgbXAuc3JjMDMoZ2F0ZSkgKiBhbXRfczAzX2QwM19vcDNfbGV2ZWwgKwogICAgbXAuc3JjMDQoZ2F0ZSkgKiBhbXRfczA0X2QwM19vcDNfbGV2ZWwgKwogICAgbXAuc3JjMDUoZ2F0ZSkgKiBhbXRfczA1X2QwM19vcDNfbGV2ZWwgKwogICAgbXAuc3JjMDYoZ2F0ZSkgKiBhbXRfczA2X2QwM19vcDNfbGV2ZWwgKwogICAgbXAuc3JjMDcoZ2F0ZSkgKiBhbXRfczA3X2QwM19vcDNfbGV2ZWwgKwogICAgbXAuc3JjMDgoZ2F0ZSkgKiBhbXRfczA4X2QwM19vcDNfbGV2ZWwgKwogICAgbXAuc3JjMDkoZ2F0ZSkgKiBhbXRfczA5X2QwM19vcDNfbGV2ZWwgKwogICAgbXAuc3JjMTAoZ2F0ZSkgKiBhbXRfczEwX2QwM19vcDNfbGV2ZWwgKwogICAgbXAuc3JjMTEoZ2F0ZSkgKiBhbXRfczExX2QwM19vcDNfbGV2ZWwgKwogICAgbXAuc3JjMTIoZ2F0ZSkgKiBhbXRfczEyX2QwM19vcDNfbGV2ZWwgKwogICAgbXAuc3JjMTMoZ2F0ZSkgKiBhbXRfczEzX2QwM19vcDNfbGV2ZWwgKwogICAgbXAuc3JjMTQoZ2F0ZSkgKiBhbXRfczE0X2QwM19vcDNfbGV2ZWwgKwogICAgbXAuc3JjMTUoZ2F0ZSkgKiBhbXRfczE1X2QwM19vcDNfbGV2ZWwgKwogICAgbXAuc3JjMTYoZ2F0ZSkgKiBhbXRfczE2X2QwM19vcDNfbGV2ZWwgKwogICAgbXAuc3JjMTcoZ2F0ZSkgKiBhbXRfczE3X2QwM19vcDNfbGV2ZWwgKwogICAgbXAuc3JjMTgoZ2F0ZSkgKiBhbXRfczE4X2QwM19vcDNfbGV2ZWwgKwogICAgbXAuc3JjMTkoZ2F0ZSkgKiBhbXRfczE5X2QwM19vcDNfbGV2ZWwgKwogICAgbXAuc3JjMjAoZ2F0ZSkgKiBhbXRfczIwX2QwM19vcDNfbGV2ZWwgKwogICAgbXAuc3JjMjEoZ2F0ZSkgKiBhbXRfczIxX2QwM19vcDNfbGV2ZWwgKwogICAgbXAuc3JjMjIoZ2F0ZSkgKiBhbXRfczIyX2QwM19vcDNfbGV2ZWwgKwogICAgbXAuc3JjMjMoZ2F0ZSkgKiBhbXRfczIzX2QwM19vcDNfbGV2ZWwgKwogICAgbXAuc3JjMjQoZ2F0ZSkgKiBhbXRfczI0X2QwM19vcDNfbGV2ZWwgKwogICAgbXAuc3JjMjUoZ2F0ZSkgKiBhbXRfczI1X2QwM19vcDNfbGV2ZWwgKwogICAgbXAuc3JjMjYoZ2F0ZSkgKiBhbXRfczI2X2QwM19vcDNfbGV2ZWwgKwogICAgbXAuc3JjMjcoZ2F0ZSkgKiBhbXRfczI3X2QwM19vcDNfbGV2ZWwgKwogICAgbXAuc3JjMjgoZ2F0ZSkgKiBhbXRfczI4X2QwM19vcDNfbGV2ZWwgKwogICAgbXAuc3JjMjkoZ2F0ZSkgKiBhbXRfczI5X2QwM19vcDNfbGV2ZWwgKwogICAgbXAuc3JjMzAoZ2F0ZSkgKiBhbXRfczMwX2QwM19vcDNfbGV2ZWwgKwogICAgbXAuc3JjMzEoZ2F0ZSkgKiBhbXRfczMxX2QwM19vcDNfbGV2ZWwgKwogICAgbXAuc3JjMzIoZ2F0ZSkgKiBhbXRfczMyX2QwM19vcDNfbGV2ZWwgKwogICAgbXAuc3JjMzMoZ2F0ZSkgKiBhbXRfczMzX2QwM19vcDNfbGV2ZWwgKwogICAgbXAuc3JjMzQoZ2F0ZSkgKiBhbXRfczM0X2QwM19vcDNfbGV2ZWwgKwogICAgbXAuc3JjMzUoZ2F0ZSkgKiBhbXRfczM1X2QwM19vcDNfbGV2ZWwgKwogICAgbXAuc3JjMzYoZ2F0ZSkgKiBhbXRfczM2X2QwM19vcDNfbGV2ZWwgKwogICAgbXAuc3JjMzcoZ2F0ZSkgKiBhbXRfczM3X2QwM19vcDNfbGV2ZWwgKwogICAgbXAuc3JjMzgoZ2F0ZSkgKiBhbXRfczM4X2QwM19vcDNfbGV2ZWwgKwogICAgbXAuc3JjMzkoZ2F0ZSkgKiBhbXRfczM5X2QwM19vcDNfbGV2ZWwgKwogICAgbXAuc3JjNDAoZ2F0ZSkgKiBhbXRfczQwX2QwM19vcDNfbGV2ZWwgKwogICAgbXAuc3JjNDEoZ2F0ZSkgKiBhbXRfczQxX2QwM19vcDNfbGV2ZWwgKwogICAgbXAuc3JjNDIoZ2F0ZSkgKiBhbXRfczQyX2QwM19vcDNfbGV2ZWwgKwogICAgbXAuc3JjNDMoZ2F0ZSkgKiBhbXRfczQzX2QwM19vcDNfbGV2ZWwgKwogICAgbXAuc3JjNDQoZ2F0ZSkgKiBhbXRfczQ0X2QwM19vcDNfbGV2ZWwgKwogICAgbXAuc3JjNDUoZ2F0ZSkgKiBhbXRfczQ1X2QwM19vcDNfbGV2ZWwgKwogICAgbXAuc3JjNDYoZ2F0ZSkgKiBhbXRfczQ2X2QwM19vcDNfbGV2ZWwgKwogICAgbXAuc3JjNDcoZ2F0ZSkgKiBhbXRfczQ3X2QwM19vcDNfbGV2ZWw7Cgptb2Rfb3A0X2xldmVsKGdhdGUpID0KICAgIG1wLnNyYzAwKGdhdGUpICogYW10X3MwMF9kMDRfb3A0X2xldmVsICsKICAgIG1wLnNyYzAxKGdhdGUpICogYW10X3MwMV9kMDRfb3A0X2xldmVsICsKICAgIG1wLnNyYzAyKGdhdGUpICogYW10X3MwMl9kMDRfb3A0X2xldmVsICsKICAgIG1wLnNyYzAzKGdhdGUpICogYW10X3MwM19kMDRfb3A0X2xldmVsICsKICAgIG1wLnNyYzA0KGdhdGUpICogYW10X3MwNF9kMDRfb3A0X2xldmVsICsKICAgIG1wLnNyYzA1KGdhdGUpICogYW10X3MwNV9kMDRfb3A0X2xldmVsICsKICAgIG1wLnNyYzA2KGdhdGUpICogYW10X3MwNl9kMDRfb3A0X2xldmVsICsKICAgIG1wLnNyYzA3KGdhdGUpICogYW10X3MwN19kMDRfb3A0X2xldmVsICsKICAgIG1wLnNyYzA4KGdhdGUpICogYW10X3MwOF9kMDRfb3A0X2xldmVsICsKICAgIG1wLnNyYzA5KGdhdGUpICogYW10X3MwOV9kMDRfb3A0X2xldmVsICsKICAgIG1wLnNyYzEwKGdhdGUpICogYW10X3MxMF9kMDRfb3A0X2xldmVsICsKICAgIG1wLnNyYzExKGdhdGUpICogYW10X3MxMV9kMDRfb3A0X2xldmVsICsKICAgIG1wLnNyYzEyKGdhdGUpICogYW10X3MxMl9kMDRfb3A0X2xldmVsICsKICAgIG1wLnNyYzEzKGdhdGUpICogYW10X3MxM19kMDRfb3A0X2xldmVsICsKICAgIG1wLnNyYzE0KGdhdGUpICogYW10X3MxNF9kMDRfb3A0X2xldmVsICsKICAgIG1wLnNyYzE1KGdhdGUpICogYW10X3MxNV9kMDRfb3A0X2xldmVsICsKICAgIG1wLnNyYzE2KGdhdGUpICogYW10X3MxNl9kMDRfb3A0X2xldmVsICsKICAgIG1wLnNyYzE3KGdhdGUpICogYW10X3MxN19kMDRfb3A0X2xldmVsICsKICAgIG1wLnNyYzE4KGdhdGUpICogYW10X3MxOF9kMDRfb3A0X2xldmVsICsKICAgIG1wLnNyYzE5KGdhdGUpICogYW10X3MxOV9kMDRfb3A0X2xldmVsICsKICAgIG1wLnNyYzIwKGdhdGUpICogYW10X3MyMF9kMDRfb3A0X2xldmVsICsKICAgIG1wLnNyYzIxKGdhdGUpICogYW10X3MyMV9kMDRfb3A0X2xldmVsICsKICAgIG1wLnNyYzIyKGdhdGUpICogYW10X3MyMl9kMDRfb3A0X2xldmVsICsKICAgIG1wLnNyYzIzKGdhdGUpICogYW10X3MyM19kMDRfb3A0X2xldmVsICsKICAgIG1wLnNyYzI0KGdhdGUpICogYW10X3MyNF9kMDRfb3A0X2xldmVsICsKICAgIG1wLnNyYzI1KGdhdGUpICogYW10X3MyNV9kMDRfb3A0X2xldmVsICsKICAgIG1wLnNyYzI2KGdhdGUpICogYW10X3MyNl9kMDRfb3A0X2xldmVsICsKICAgIG1wLnNyYzI3KGdhdGUpICogYW10X3MyN19kMDRfb3A0X2xldmVsICsKICAgIG1wLnNyYzI4KGdhdGUpICogYW10X3MyOF9kMDRfb3A0X2xldmVsICsKICAgIG1wLnNyYzI5KGdhdGUpICogYW10X3MyOV9kMDRfb3A0X2xldmVsICsKICAgIG1wLnNyYzMwKGdhdGUpICogYW10X3MzMF9kMDRfb3A0X2xldmVsICsKICAgIG1wLnNyYzMxKGdhdGUpICogYW10X3MzMV9kMDRfb3A0X2xldmVsICsKICAgIG1wLnNyYzMyKGdhdGUpICogYW10X3MzMl9kMDRfb3A0X2xldmVsICsKICAgIG1wLnNyYzMzKGdhdGUpICogYW10X3MzM19kMDRfb3A0X2xldmVsICsKICAgIG1wLnNyYzM0KGdhdGUpICogYW10X3MzNF9kMDRfb3A0X2xldmVsICsKICAgIG1wLnNyYzM1KGdhdGUpICogYW10X3MzNV9kMDRfb3A0X2xldmVsICsKICAgIG1wLnNyYzM2KGdhdGUpICogYW10X3MzNl9kMDRfb3A0X2xldmVsICsKICAgIG1wLnNyYzM3KGdhdGUpICogYW10X3MzN19kMDRfb3A0X2xldmVsICsKICAgIG1wLnNyYzM4KGdhdGUpICogYW10X3MzOF9kMDRfb3A0X2xldmVsICsKICAgIG1wLnNyYzM5KGdhdGUpICogYW10X3MzOV9kMDRfb3A0X2xldmVsICsKICAgIG1wLnNyYzQwKGdhdGUpICogYW10X3M0MF9kMDRfb3A0X2xldmVsICsKICAgIG1wLnNyYzQxKGdhdGUpICogYW10X3M0MV9kMDRfb3A0X2xldmVsICsKICAgIG1wLnNyYzQyKGdhdGUpICogYW10X3M0Ml9kMDRfb3A0X2xldmVsICsKICAgIG1wLnNyYzQzKGdhdGUpICogYW10X3M0M19kMDRfb3A0X2xldmVsICsKICAgIG1wLnNyYzQ0KGdhdGUpICogYW10X3M0NF9kMDRfb3A0X2xldmVsICsKICAgIG1wLnNyYzQ1KGdhdGUpICogYW10X3M0NV9kMDRfb3A0X2xldmVsICsKICAgIG1wLnNyYzQ2KGdhdGUpICogYW10X3M0Nl9kMDRfb3A0X2xldmVsICsKICAgIG1wLnNyYzQ3KGdhdGUpICogYW10X3M0N19kMDRfb3A0X2xldmVsOwoKbW9kX2Nyb3NzX21vZF9nbG9iYWwoZ2F0ZSkgPQogICAgbXAuc3JjMDAoZ2F0ZSkgKiBhbXRfczAwX2QwNV9jcm9zc19tb2RfZ2xvYmFsICsKICAgIG1wLnNyYzAxKGdhdGUpICogYW10X3MwMV9kMDVfY3Jvc3NfbW9kX2dsb2JhbCArCiAgICBtcC5zcmMwMihnYXRlKSAqIGFtdF9zMDJfZDA1X2Nyb3NzX21vZF9nbG9iYWwgKwogICAgbXAuc3JjMDMoZ2F0ZSkgKiBhbXRfczAzX2QwNV9jcm9zc19tb2RfZ2xvYmFsICsKICAgIG1wLnNyYzA0KGdhdGUpICogYW10X3MwNF9kMDVfY3Jvc3NfbW9kX2dsb2JhbCArCiAgICBtcC5zcmMwNShnYXRlKSAqIGFtdF9zMDVfZDA1X2Nyb3NzX21vZF9nbG9iYWwgKwogICAgbXAuc3JjMDYoZ2F0ZSkgKiBhbXRfczA2X2QwNV9jcm9zc19tb2RfZ2xvYmFsICsKICAgIG1wLnNyYzA3KGdhdGUpICogYW10X3MwN19kMDVfY3Jvc3NfbW9kX2dsb2JhbCArCiAgICBtcC5zcmMwOChnYXRlKSAqIGFtdF9zMDhfZDA1X2Nyb3NzX21vZF9nbG9iYWwgKwogICAgbXAuc3JjMDkoZ2F0ZSkgKiBhbXRfczA5X2QwNV9jcm9zc19tb2RfZ2xvYmFsICsKICAgIG1wLnNyYzEwKGdhdGUpICogYW10X3MxMF9kMDVfY3Jvc3NfbW9kX2dsb2JhbCArCiAgICBtcC5zcmMxMShnYXRlKSAqIGFtdF9zMTFfZDA1X2Nyb3NzX21vZF9nbG9iYWwgKwogICAgbXAuc3JjMTIoZ2F0ZSkgKiBhbXRfczEyX2QwNV9jcm9zc19tb2RfZ2xvYmFsICsKICAgIG1wLnNyYzEzKGdhdGUpICogYW10X3MxM19kMDVfY3Jvc3NfbW9kX2dsb2JhbCArCiAgICBtcC5zcmMxNChnYXRlKSAqIGFtdF9zMTRfZDA1X2Nyb3NzX21vZF9nbG9iYWwgKwogICAgbXAuc3JjMTUoZ2F0ZSkgKiBhbXRfczE1X2QwNV9jcm9zc19tb2RfZ2xvYmFsICsKICAgIG1wLnNyYzE2KGdhdGUpICogYW10X3MxNl9kMDVfY3Jvc3NfbW9kX2dsb2JhbCArCiAgICBtcC5zcmMxNyhnYXRlKSAqIGFtdF9zMTdfZDA1X2Nyb3NzX21vZF9nbG9iYWwgKwogICAgbXAuc3JjMTgoZ2F0ZSkgKiBhbXRfczE4X2QwNV9jcm9zc19tb2RfZ2xvYmFsICsKICAgIG1wLnNyYzE5KGdhdGUpICogYW10X3MxOV9kMDVfY3Jvc3NfbW9kX2dsb2JhbCArCiAgICBtcC5zcmMyMChnYXRlKSAqIGFtdF9zMjBfZDA1X2Nyb3NzX21vZF9nbG9iYWwgKwogICAgbXAuc3JjMjEoZ2F0ZSkgKiBhbXRfczIxX2QwNV9jcm9zc19tb2RfZ2xvYmFsICsKICAgIG1wLnNyYzIyKGdhdGUpICogYW10X3MyMl9kMDVfY3Jvc3NfbW9kX2dsb2JhbCArCiAgICBtcC5zcmMyMyhnYXRlKSAqIGFtdF9zMjNfZDA1X2Nyb3NzX21vZF9nbG9iYWwgKwogICAgbXAuc3JjMjQoZ2F0ZSkgKiBhbXRfczI0X2QwNV9jcm9zc19tb2RfZ2xvYmFsICsKICAgIG1wLnNyYzI1KGdhdGUpICogYW10X3MyNV9kMDVfY3Jvc3NfbW9kX2dsb2JhbCArCiAgICBtcC5zcmMyNihnYXRlKSAqIGFtdF9zMjZfZDA1X2Nyb3NzX21vZF9nbG9iYWwgKwogICAgbXAuc3JjMjcoZ2F0ZSkgKiBhbXRfczI3X2QwNV9jcm9zc19tb2RfZ2xvYmFsICsKICAgIG1wLnNyYzI4KGdhdGUpICogYW10X3MyOF9kMDVfY3Jvc3NfbW9kX2dsb2JhbCArCiAgICBtcC5zcmMyOShnYXRlKSAqIGFtdF9zMjlfZDA1X2Nyb3NzX21vZF9nbG9iYWwgKwogICAgbXAuc3JjMzAoZ2F0ZSkgKiBhbXRfczMwX2QwNV9jcm9zc19tb2RfZ2xvYmFsICsKICAgIG1wLnNyYzMxKGdhdGUpICogYW10X3MzMV9kMDVfY3Jvc3NfbW9kX2dsb2JhbCArCiAgICBtcC5zcmMzMihnYXRlKSAqIGFtdF9zMzJfZDA1X2Nyb3NzX21vZF9nbG9iYWwgKwogICAgbXAuc3JjMzMoZ2F0ZSkgKiBhbXRfczMzX2QwNV9jcm9zc19tb2RfZ2xvYmFsICsKICAgIG1wLnNyYzM0KGdhdGUpICogYW10X3MzNF9kMDVfY3Jvc3NfbW9kX2dsb2JhbCArCiAgICBtcC5zcmMzNShnYXRlKSAqIGFtdF9zMzVfZDA1X2Nyb3NzX21vZF9nbG9iYWwgKwogICAgbXAuc3JjMzYoZ2F0ZSkgKiBhbXRfczM2X2QwNV9jcm9zc19tb2RfZ2xvYmFsICsKICAgIG1wLnNyYzM3KGdhdGUpICogYW10X3MzN19kMDVfY3Jvc3NfbW9kX2dsb2JhbCArCiAgICBtcC5zcmMzOChnYXRlKSAqIGFtdF9zMzhfZDA1X2Nyb3NzX21vZF9nbG9iYWwgKwogICAgbXAuc3JjMzkoZ2F0ZSkgKiBhbXRfczM5X2QwNV9jcm9zc19tb2RfZ2xvYmFsICsKICAgIG1wLnNyYzQwKGdhdGUpICogYW10X3M0MF9kMDVfY3Jvc3NfbW9kX2dsb2JhbCArCiAgICBtcC5zcmM0MShnYXRlKSAqIGFtdF9zNDFfZDA1X2Nyb3NzX21vZF9nbG9iYWwgKwogICAgbXAuc3JjNDIoZ2F0ZSkgKiBhbXRfczQyX2QwNV9jcm9zc19tb2RfZ2xvYmFsICsKICAgIG1wLnNyYzQzKGdhdGUpICogYW10X3M0M19kMDVfY3Jvc3NfbW9kX2dsb2JhbCArCiAgICBtcC5zcmM0NChnYXRlKSAqIGFtdF9zNDRfZDA1X2Nyb3NzX21vZF9nbG9iYWwgKwogICAgbXAuc3JjNDUoZ2F0ZSkgKiBhbXRfczQ1X2QwNV9jcm9zc19tb2RfZ2xvYmFsICsKICAgIG1wLnNyYzQ2KGdhdGUpICogYW10X3M0Nl9kMDVfY3Jvc3NfbW9kX2dsb2JhbCArCiAgICBtcC5zcmM0NyhnYXRlKSAqIGFtdF9zNDdfZDA1X2Nyb3NzX21vZF9nbG9iYWw7Cgptb2RfZmVlZGJhY2tfZ2xvYmFsKGdhdGUpID0KICAgIG1wLnNyYzAwKGdhdGUpICogYW10X3MwMF9kMDZfZmVlZGJhY2tfZ2xvYmFsICsKICAgIG1wLnNyYzAxKGdhdGUpICogYW10X3MwMV9kMDZfZmVlZGJhY2tfZ2xvYmFsICsKICAgIG1wLnNyYzAyKGdhdGUpICogYW10X3MwMl9kMDZfZmVlZGJhY2tfZ2xvYmFsICsKICAgIG1wLnNyYzAzKGdhdGUpICogYW10X3MwM19kMDZfZmVlZGJhY2tfZ2xvYmFsICsKICAgIG1wLnNyYzA0KGdhdGUpICogYW10X3MwNF9kMDZfZmVlZGJhY2tfZ2xvYmFsICsKICAgIG1wLnNyYzA1KGdhdGUpICogYW10X3MwNV9kMDZfZmVlZGJhY2tfZ2xvYmFsICsKICAgIG1wLnNyYzA2KGdhdGUpICogYW10X3MwNl9kMDZfZmVlZGJhY2tfZ2xvYmFsICsKICAgIG1wLnNyYzA3KGdhdGUpICogYW10X3MwN19kMDZfZmVlZGJhY2tfZ2xvYmFsICsKICAgIG1wLnNyYzA4KGdhdGUpICogYW10X3MwOF9kMDZfZmVlZGJhY2tfZ2xvYmFsICsKICAgIG1wLnNyYzA5KGdhdGUpICogYW10X3MwOV9kMDZfZmVlZGJhY2tfZ2xvYmFsICsKICAgIG1wLnNyYzEwKGdhdGUpICogYW10X3MxMF9kMDZfZmVlZGJhY2tfZ2xvYmFsICsKICAgIG1wLnNyYzExKGdhdGUpICogYW10X3MxMV9kMDZfZmVlZGJhY2tfZ2xvYmFsICsKICAgIG1wLnNyYzEyKGdhdGUpICogYW10X3MxMl9kMDZfZmVlZGJhY2tfZ2xvYmFsICsKICAgIG1wLnNyYzEzKGdhdGUpICogYW10X3MxM19kMDZfZmVlZGJhY2tfZ2xvYmFsICsKICAgIG1wLnNyYzE0KGdhdGUpICogYW10X3MxNF9kMDZfZmVlZGJhY2tfZ2xvYmFsICsKICAgIG1wLnNyYzE1KGdhdGUpICogYW10X3MxNV9kMDZfZmVlZGJhY2tfZ2xvYmFsICsKICAgIG1wLnNyYzE2KGdhdGUpICogYW10X3MxNl9kMDZfZmVlZGJhY2tfZ2xvYmFsICsKICAgIG1wLnNyYzE3KGdhdGUpICogYW10X3MxN19kMDZfZmVlZGJhY2tfZ2xvYmFsICsKICAgIG1wLnNyYzE4KGdhdGUpICogYW10X3MxOF9kMDZfZmVlZGJhY2tfZ2xvYmFsICsKICAgIG1wLnNyYzE5KGdhdGUpICogYW10X3MxOV9kMDZfZmVlZGJhY2tfZ2xvYmFsICsKICAgIG1wLnNyYzIwKGdhdGUpICogYW10X3MyMF9kMDZfZmVlZGJhY2tfZ2xvYmFsICsKICAgIG1wLnNyYzIxKGdhdGUpICogYW10X3MyMV9kMDZfZmVlZGJhY2tfZ2xvYmFsICsKICAgIG1wLnNyYzIyKGdhdGUpICogYW10X3MyMl9kMDZfZmVlZGJhY2tfZ2xvYmFsICsKICAgIG1wLnNyYzIzKGdhdGUpICogYW10X3MyM19kMDZfZmVlZGJhY2tfZ2xvYmFsICsKICAgIG1wLnNyYzI0KGdhdGUpICogYW10X3MyNF9kMDZfZmVlZGJhY2tfZ2xvYmFsICsKICAgIG1wLnNyYzI1KGdhdGUpICogYW10X3MyNV9kMDZfZmVlZGJhY2tfZ2xvYmFsICsKICAgIG1wLnNyYzI2KGdhdGUpICogYW10X3MyNl9kMDZfZmVlZGJhY2tfZ2xvYmFsICsKICAgIG1wLnNyYzI3KGdhdGUpICogYW10X3MyN19kMDZfZmVlZGJhY2tfZ2xvYmFsICsKICAgIG1wLnNyYzI4KGdhdGUpICogYW10X3MyOF9kMDZfZmVlZGJhY2tfZ2xvYmFsICsKICAgIG1wLnNyYzI5KGdhdGUpICogYW10X3MyOV9kMDZfZmVlZGJhY2tfZ2xvYmFsICsKICAgIG1wLnNyYzMwKGdhdGUpICogYW10X3MzMF9kMDZfZmVlZGJhY2tfZ2xvYmFsICsKICAgIG1wLnNyYzMxKGdhdGUpICogYW10X3MzMV9kMDZfZmVlZGJhY2tfZ2xvYmFsICsKICAgIG1wLnNyYzMyKGdhdGUpICogYW10X3MzMl9kMDZfZmVlZGJhY2tfZ2xvYmFsICsKICAgIG1wLnNyYzMzKGdhdGUpICogYW10X3MzM19kMDZfZmVlZGJhY2tfZ2xvYmFsICsKICAgIG1wLnNyYzM0KGdhdGUpICogYW10X3MzNF9kMDZfZmVlZGJhY2tfZ2xvYmFsICsKICAgIG1wLnNyYzM1KGdhdGUpICogYW10X3MzNV9kMDZfZmVlZGJhY2tfZ2xvYmFsICsKICAgIG1wLnNyYzM2KGdhdGUpICogYW10X3MzNl9kMDZfZmVlZGJhY2tfZ2xvYmFsICsKICAgIG1wLnNyYzM3KGdhdGUpICogYW10X3MzN19kMDZfZmVlZGJhY2tfZ2xvYmFsICsKICAgIG1wLnNyYzM4KGdhdGUpICogYW10X3MzOF9kMDZfZmVlZGJhY2tfZ2xvYmFsICsKICAgIG1wLnNyYzM5KGdhdGUpICogYW10X3MzOV9kMDZfZmVlZGJhY2tfZ2xvYmFsICsKICAgIG1wLnNyYzQwKGdhdGUpICogYW10X3M0MF9kMDZfZmVlZGJhY2tfZ2xvYmFsICsKICAgIG1wLnNyYzQxKGdhdGUpICogYW10X3M0MV9kMDZfZmVlZGJhY2tfZ2xvYmFsICsKICAgIG1wLnNyYzQyKGdhdGUpICogYW10X3M0Ml9kMDZfZmVlZGJhY2tfZ2xvYmFsICsKICAgIG1wLnNyYzQzKGdhdGUpICogYW10X3M0M19kMDZfZmVlZGJhY2tfZ2xvYmFsICsKICAgIG1wLnNyYzQ0KGdhdGUpICogYW10X3M0NF9kMDZfZmVlZGJhY2tfZ2xvYmFsICsKICAgIG1wLnNyYzQ1KGdhdGUpICogYW10X3M0NV9kMDZfZmVlZGJhY2tfZ2xvYmFsICsKICAgIG1wLnNyYzQ2KGdhdGUpICogYW10X3M0Nl9kMDZfZmVlZGJhY2tfZ2xvYmFsICsKICAgIG1wLnNyYzQ3KGdhdGUpICogYW10X3M0N19kMDZfZmVlZGJhY2tfZ2xvYmFsOwoKbW9kX2dsb2JhbF9yYXRpbyhnYXRlKSA9CiAgICBtcC5zcmMwMChnYXRlKSAqIGFtdF9zMDBfZDA3X2dsb2JhbF9yYXRpbyArCiAgICBtcC5zcmMwMShnYXRlKSAqIGFtdF9zMDFfZDA3X2dsb2JhbF9yYXRpbyArCiAgICBtcC5zcmMwMihnYXRlKSAqIGFtdF9zMDJfZDA3X2dsb2JhbF9yYXRpbyArCiAgICBtcC5zcmMwMyhnYXRlKSAqIGFtdF9zMDNfZDA3X2dsb2JhbF9yYXRpbyArCiAgICBtcC5zcmMwNChnYXRlKSAqIGFtdF9zMDRfZDA3X2dsb2JhbF9yYXRpbyArCiAgICBtcC5zcmMwNShnYXRlKSAqIGFtdF9zMDVfZDA3X2dsb2JhbF9yYXRpbyArCiAgICBtcC5zcmMwNihnYXRlKSAqIGFtdF9zMDZfZDA3X2dsb2JhbF9yYXRpbyArCiAgICBtcC5zcmMwNyhnYXRlKSAqIGFtdF9zMDdfZDA3X2dsb2JhbF9yYXRpbyArCiAgICBtcC5zcmMwOChnYXRlKSAqIGFtdF9zMDhfZDA3X2dsb2JhbF9yYXRpbyArCiAgICBtcC5zcmMwOShnYXRlKSAqIGFtdF9zMDlfZDA3X2dsb2JhbF9yYXRpbyArCiAgICBtcC5zcmMxMChnYXRlKSAqIGFtdF9zMTBfZDA3X2dsb2JhbF9yYXRpbyArCiAgICBtcC5zcmMxMShnYXRlKSAqIGFtdF9zMTFfZDA3X2dsb2JhbF9yYXRpbyArCiAgICBtcC5zcmMxMihnYXRlKSAqIGFtdF9zMTJfZDA3X2dsb2JhbF9yYXRpbyArCiAgICBtcC5zcmMxMyhnYXRlKSAqIGFtdF9zMTNfZDA3X2dsb2JhbF9yYXRpbyArCiAgICBtcC5zcmMxNChnYXRlKSAqIGFtdF9zMTRfZDA3X2dsb2JhbF9yYXRpbyArCiAgICBtcC5zcmMxNShnYXRlKSAqIGFtdF9zMTVfZDA3X2dsb2JhbF9yYXRpbyArCiAgICBtcC5zcmMxNihnYXRlKSAqIGFtdF9zMTZfZDA3X2dsb2JhbF9yYXRpbyArCiAgICBtcC5zcmMxNyhnYXRlKSAqIGFtdF9zMTdfZDA3X2dsb2JhbF9yYXRpbyArCiAgICBtcC5zcmMxOChnYXRlKSAqIGFtdF9zMThfZDA3X2dsb2JhbF9yYXRpbyArCiAgICBtcC5zcmMxOShnYXRlKSAqIGFtdF9zMTlfZDA3X2dsb2JhbF9yYXRpbyArCiAgICBtcC5zcmMyMChnYXRlKSAqIGFtdF9zMjBfZDA3X2dsb2JhbF9yYXRpbyArCiAgICBtcC5zcmMyMShnYXRlKSAqIGFtdF9zMjFfZDA3X2dsb2JhbF9yYXRpbyArCiAgICBtcC5zcmMyMihnYXRlKSAqIGFtdF9zMjJfZDA3X2dsb2JhbF9yYXRpbyArCiAgICBtcC5zcmMyMyhnYXRlKSAqIGFtdF9zMjNfZDA3X2dsb2JhbF9yYXRpbyArCiAgICBtcC5zcmMyNChnYXRlKSAqIGFtdF9zMjRfZDA3X2dsb2JhbF9yYXRpbyArCiAgICBtcC5zcmMyNShnYXRlKSAqIGFtdF9zMjVfZDA3X2dsb2JhbF9yYXRpbyArCiAgICBtcC5zcmMyNihnYXRlKSAqIGFtdF9zMjZfZDA3X2dsb2JhbF9yYXRpbyArCiAgICBtcC5zcmMyNyhnYXRlKSAqIGFtdF9zMjdfZDA3X2dsb2JhbF9yYXRpbyArCiAgICBtcC5zcmMyOChnYXRlKSAqIGFtdF9zMjhfZDA3X2dsb2JhbF9yYXRpbyArCiAgICBtcC5zcmMyOShnYXRlKSAqIGFtdF9zMjlfZDA3X2dsb2JhbF9yYXRpbyArCiAgICBtcC5zcmMzMChnYXRlKSAqIGFtdF9zMzBfZDA3X2dsb2JhbF9yYXRpbyArCiAgICBtcC5zcmMzMShnYXRlKSAqIGFtdF9zMzFfZDA3X2dsb2JhbF9yYXRpbyArCiAgICBtcC5zcmMzMihnYXRlKSAqIGFtdF9zMzJfZDA3X2dsb2JhbF9yYXRpbyArCiAgICBtcC5zcmMzMyhnYXRlKSAqIGFtdF9zMzNfZDA3X2dsb2JhbF9yYXRpbyArCiAgICBtcC5zcmMzNChnYXRlKSAqIGFtdF9zMzRfZDA3X2dsb2JhbF9yYXRpbyArCiAgICBtcC5zcmMzNShnYXRlKSAqIGFtdF9zMzVfZDA3X2dsb2JhbF9yYXRpbyArCiAgICBtcC5zcmMzNihnYXRlKSAqIGFtdF9zMzZfZDA3X2dsb2JhbF9yYXRpbyArCiAgICBtcC5zcmMzNyhnYXRlKSAqIGFtdF9zMzdfZDA3X2dsb2JhbF9yYXRpbyArCiAgICBtcC5zcmMzOChnYXRlKSAqIGFtdF9zMzhfZDA3X2dsb2JhbF9yYXRpbyArCiAgICBtcC5zcmMzOShnYXRlKSAqIGFtdF9zMzlfZDA3X2dsb2JhbF9yYXRpbyArCiAgICBtcC5zcmM0MChnYXRlKSAqIGFtdF9zNDBfZDA3X2dsb2JhbF9yYXRpbyArCiAgICBtcC5zcmM0MShnYXRlKSAqIGFtdF9zNDFfZDA3X2dsb2JhbF9yYXRpbyArCiAgICBtcC5zcmM0MihnYXRlKSAqIGFtdF9zNDJfZDA3X2dsb2JhbF9yYXRpbyArCiAgICBtcC5zcmM0MyhnYXRlKSAqIGFtdF9zNDNfZDA3X2dsb2JhbF9yYXRpbyArCiAgICBtcC5zcmM0NChnYXRlKSAqIGFtdF9zNDRfZDA3X2dsb2JhbF9yYXRpbyArCiAgICBtcC5zcmM0NShnYXRlKSAqIGFtdF9zNDVfZDA3X2dsb2JhbF9yYXRpbyArCiAgICBtcC5zcmM0NihnYXRlKSAqIGFtdF9zNDZfZDA3X2dsb2JhbF9yYXRpbyArCiAgICBtcC5zcmM0NyhnYXRlKSAqIGFtdF9zNDdfZDA3X2dsb2JhbF9yYXRpbzsKCm1vZF9hbXAoZ2F0ZSkgPQogICAgbXAuc3JjMDAoZ2F0ZSkgKiBhbXRfczAwX2QwOF9hbXAgKwogICAgbXAuc3JjMDEoZ2F0ZSkgKiBhbXRfczAxX2QwOF9hbXAgKwogICAgbXAuc3JjMDIoZ2F0ZSkgKiBhbXRfczAyX2QwOF9hbXAgKwogICAgbXAuc3JjMDMoZ2F0ZSkgKiBhbXRfczAzX2QwOF9hbXAgKwogICAgbXAuc3JjMDQoZ2F0ZSkgKiBhbXRfczA0X2QwOF9hbXAgKwogICAgbXAuc3JjMDUoZ2F0ZSkgKiBhbXRfczA1X2QwOF9hbXAgKwogICAgbXAuc3JjMDYoZ2F0ZSkgKiBhbXRfczA2X2QwOF9hbXAgKwogICAgbXAuc3JjMDcoZ2F0ZSkgKiBhbXRfczA3X2QwOF9hbXAgKwogICAgbXAuc3JjMDgoZ2F0ZSkgKiBhbXRfczA4X2QwOF9hbXAgKwogICAgbXAuc3JjMDkoZ2F0ZSkgKiBhbXRfczA5X2QwOF9hbXAgKwogICAgbXAuc3JjMTAoZ2F0ZSkgKiBhbXRfczEwX2QwOF9hbXAgKwogICAgbXAuc3JjMTEoZ2F0ZSkgKiBhbXRfczExX2QwOF9hbXAgKwogICAgbXAuc3JjMTIoZ2F0ZSkgKiBhbXRfczEyX2QwOF9hbXAgKwogICAgbXAuc3JjMTMoZ2F0ZSkgKiBhbXRfczEzX2QwOF9hbXAgKwogICAgbXAuc3JjMTQoZ2F0ZSkgKiBhbXRfczE0X2QwOF9hbXAgKwogICAgbXAuc3JjMTUoZ2F0ZSkgKiBhbXRfczE1X2QwOF9hbXAgKwogICAgbXAuc3JjMTYoZ2F0ZSkgKiBhbXRfczE2X2QwOF9hbXAgKwogICAgbXAuc3JjMTcoZ2F0ZSkgKiBhbXRfczE3X2QwOF9hbXAgKwogICAgbXAuc3JjMTgoZ2F0ZSkgKiBhbXRfczE4X2QwOF9hbXAgKwogICAgbXAuc3JjMTkoZ2F0ZSkgKiBhbXRfczE5X2QwOF9hbXAgKwogICAgbXAuc3JjMjAoZ2F0ZSkgKiBhbXRfczIwX2QwOF9hbXAgKwogICAgbXAuc3JjMjEoZ2F0ZSkgKiBhbXRfczIxX2QwOF9hbXAgKwogICAgbXAuc3JjMjIoZ2F0ZSkgKiBhbXRfczIyX2QwOF9hbXAgKwogICAgbXAuc3JjMjMoZ2F0ZSkgKiBhbXRfczIzX2QwOF9hbXAgKwogICAgbXAuc3JjMjQoZ2F0ZSkgKiBhbXRfczI0X2QwOF9hbXAgKwogICAgbXAuc3JjMjUoZ2F0ZSkgKiBhbXRfczI1X2QwOF9hbXAgKwogICAgbXAuc3JjMjYoZ2F0ZSkgKiBhbXRfczI2X2QwOF9hbXAgKwogICAgbXAuc3JjMjcoZ2F0ZSkgKiBhbXRfczI3X2QwOF9hbXAgKwogICAgbXAuc3JjMjgoZ2F0ZSkgKiBhbXRfczI4X2QwOF9hbXAgKwogICAgbXAuc3JjMjkoZ2F0ZSkgKiBhbXRfczI5X2QwOF9hbXAgKwogICAgbXAuc3JjMzAoZ2F0ZSkgKiBhbXRfczMwX2QwOF9hbXAgKwogICAgbXAuc3JjMzEoZ2F0ZSkgKiBhbXRfczMxX2QwOF9hbXAgKwogICAgbXAuc3JjMzIoZ2F0ZSkgKiBhbXRfczMyX2QwOF9hbXAgKwogICAgbXAuc3JjMzMoZ2F0ZSkgKiBhbXRfczMzX2QwOF9hbXAgKwogICAgbXAuc3JjMzQoZ2F0ZSkgKiBhbXRfczM0X2QwOF9hbXAgKwogICAgbXAuc3JjMzUoZ2F0ZSkgKiBhbXRfczM1X2QwOF9hbXAgKwogICAgbXAuc3JjMzYoZ2F0ZSkgKiBhbXRfczM2X2QwOF9hbXAgKwogICAgbXAuc3JjMzcoZ2F0ZSkgKiBhbXRfczM3X2QwOF9hbXAgKwogICAgbXAuc3JjMzgoZ2F0ZSkgKiBhbXRfczM4X2QwOF9hbXAgKwogICAgbXAuc3JjMzkoZ2F0ZSkgKiBhbXRfczM5X2QwOF9hbXAgKwogICAgbXAuc3JjNDAoZ2F0ZSkgKiBhbXRfczQwX2QwOF9hbXAgKwogICAgbXAuc3JjNDEoZ2F0ZSkgKiBhbXRfczQxX2QwOF9hbXAgKwogICAgbXAuc3JjNDIoZ2F0ZSkgKiBhbXRfczQyX2QwOF9hbXAgKwogICAgbXAuc3JjNDMoZ2F0ZSkgKiBhbXRfczQzX2QwOF9hbXAgKwogICAgbXAuc3JjNDQoZ2F0ZSkgKiBhbXRfczQ0X2QwOF9hbXAgKwogICAgbXAuc3JjNDUoZ2F0ZSkgKiBhbXRfczQ1X2QwOF9hbXAgKwogICAgbXAuc3JjNDYoZ2F0ZSkgKiBhbXRfczQ2X2QwOF9hbXAgKwogICAgbXAuc3JjNDcoZ2F0ZSkgKiBhbXRfczQ3X2QwOF9hbXA7Cgptb2RfcGFuKGdhdGUpID0KICAgIG1wLnNyYzAwKGdhdGUpICogYW10X3MwMF9kMDlfcGFuICsKICAgIG1wLnNyYzAxKGdhdGUpICogYW10X3MwMV9kMDlfcGFuICsKICAgIG1wLnNyYzAyKGdhdGUpICogYW10X3MwMl9kMDlfcGFuICsKICAgIG1wLnNyYzAzKGdhdGUpICogYW10X3MwM19kMDlfcGFuICsKICAgIG1wLnNyYzA0KGdhdGUpICogYW10X3MwNF9kMDlfcGFuICsKICAgIG1wLnNyYzA1KGdhdGUpICogYW10X3MwNV9kMDlfcGFuICsKICAgIG1wLnNyYzA2KGdhdGUpICogYW10X3MwNl9kMDlfcGFuICsKICAgIG1wLnNyYzA3KGdhdGUpICogYW10X3MwN19kMDlfcGFuICsKICAgIG1wLnNyYzA4KGdhdGUpICogYW10X3MwOF9kMDlfcGFuICsKICAgIG1wLnNyYzA5KGdhdGUpICogYW10X3MwOV9kMDlfcGFuICsKICAgIG1wLnNyYzEwKGdhdGUpICogYW10X3MxMF9kMDlfcGFuICsKICAgIG1wLnNyYzExKGdhdGUpICogYW10X3MxMV9kMDlfcGFuICsKICAgIG1wLnNyYzEyKGdhdGUpICogYW10X3MxMl9kMDlfcGFuICsKICAgIG1wLnNyYzEzKGdhdGUpICogYW10X3MxM19kMDlfcGFuICsKICAgIG1wLnNyYzE0KGdhdGUpICogYW10X3MxNF9kMDlfcGFuICsKICAgIG1wLnNyYzE1KGdhdGUpICogYW10X3MxNV9kMDlfcGFuICsKICAgIG1wLnNyYzE2KGdhdGUpICogYW10X3MxNl9kMDlfcGFuICsKICAgIG1wLnNyYzE3KGdhdGUpICogYW10X3MxN19kMDlfcGFuICsKICAgIG1wLnNyYzE4KGdhdGUpICogYW10X3MxOF9kMDlfcGFuICsKICAgIG1wLnNyYzE5KGdhdGUpICogYW10X3MxOV9kMDlfcGFuICsKICAgIG1wLnNyYzIwKGdhdGUpICogYW10X3MyMF9kMDlfcGFuICsKICAgIG1wLnNyYzIxKGdhdGUpICogYW10X3MyMV9kMDlfcGFuICsKICAgIG1wLnNyYzIyKGdhdGUpICogYW10X3MyMl9kMDlfcGFuICsKICAgIG1wLnNyYzIzKGdhdGUpICogYW10X3MyM19kMDlfcGFuICsKICAgIG1wLnNyYzI0KGdhdGUpICogYW10X3MyNF9kMDlfcGFuICsKICAgIG1wLnNyYzI1KGdhdGUpICogYW10X3MyNV9kMDlfcGFuICsKICAgIG1wLnNyYzI2KGdhdGUpICogYW10X3MyNl9kMDlfcGFuICsKICAgIG1wLnNyYzI3KGdhdGUpICogYW10X3MyN19kMDlfcGFuICsKICAgIG1wLnNyYzI4KGdhdGUpICogYW10X3MyOF9kMDlfcGFuICsKICAgIG1wLnNyYzI5KGdhdGUpICogYW10X3MyOV9kMDlfcGFuICsKICAgIG1wLnNyYzMwKGdhdGUpICogYW10X3MzMF9kMDlfcGFuICsKICAgIG1wLnNyYzMxKGdhdGUpICogYW10X3MzMV9kMDlfcGFuICsKICAgIG1wLnNyYzMyKGdhdGUpICogYW10X3MzMl9kMDlfcGFuICsKICAgIG1wLnNyYzMzKGdhdGUpICogYW10X3MzM19kMDlfcGFuICsKICAgIG1wLnNyYzM0KGdhdGUpICogYW10X3MzNF9kMDlfcGFuICsKICAgIG1wLnNyYzM1KGdhdGUpICogYW10X3MzNV9kMDlfcGFuICsKICAgIG1wLnNyYzM2KGdhdGUpICogYW10X3MzNl9kMDlfcGFuICsKICAgIG1wLnNyYzM3KGdhdGUpICogYW10X3MzN19kMDlfcGFuICsKICAgIG1wLnNyYzM4KGdhdGUpICogYW10X3MzOF9kMDlfcGFuICsKICAgIG1wLnNyYzM5KGdhdGUpICogYW10X3MzOV9kMDlfcGFuICsKICAgIG1wLnNyYzQwKGdhdGUpICogYW10X3M0MF9kMDlfcGFuICsKICAgIG1wLnNyYzQxKGdhdGUpICogYW10X3M0MV9kMDlfcGFuICsKICAgIG1wLnNyYzQyKGdhdGUpICogYW10X3M0Ml9kMDlfcGFuICsKICAgIG1wLnNyYzQzKGdhdGUpICogYW10X3M0M19kMDlfcGFuICsKICAgIG1wLnNyYzQ0KGdhdGUpICogYW10X3M0NF9kMDlfcGFuICsKICAgIG1wLnNyYzQ1KGdhdGUpICogYW10X3M0NV9kMDlfcGFuICsKICAgIG1wLnNyYzQ2KGdhdGUpICogYW10X3M0Nl9kMDlfcGFuICsKICAgIG1wLnNyYzQ3KGdhdGUpICogYW10X3M0N19kMDlfcGFuOwoKLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi8vIERlcml2ZWQgc2lnbmFscwovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCmNlbnQycmF0aW8oYykgPSBwb3coMi4wLCBjIC8gMTIwMC4wKTsKc2VtaTJyYXRpbyhzKSA9IHBvdygyLjAsIHMgLyAxMi4wKTsKCi8vIEJhc2UgZnJlcXVlbmN5OiBmaW5lIHR1bmUgKyBwaXRjaCBtb2QgKHNlbWl0b25lcywgwrExMikKYmFzZV9mcmVxID0gZnJlcSAqIGNlbnQycmF0aW8oZmluZV90dW5lKSAqIHNlbWkycmF0aW8obW9kX3BpdGNoKGdhdGUpICogMTIuMCk7CgovLyBWZWxvY2l0eSBnYWluIOKAlCBrZWVwcyBfdmVsIGFsaXZlCnZlbF9nYWluID0gKDEuMCAtIDAuMykgKyAwLjMgKiB2ZWw7CgovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLy8gRWZmZWN0aXZlIHBlci1vcGVyYXRvciByYXRpb3MgYW5kIGxldmVscyAobW9kIGFwcGxpZWQpCi8vIGdsb2JhbF9yYXRpbyBtb2QgaXMgYW4gYWRkaXRpdmUgcmF0aW8gb2Zmc2V0ICjCsTgpCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpyYXRpb19vZmZzZXQgPSBtb2RfZ2xvYmFsX3JhdGlvKGdhdGUpICogOC4wOwpyMSA9IG1heCgwLjAxLCBvcDFfcmF0aW8gKyByYXRpb19vZmZzZXQpOwpyMiA9IG1heCgwLjAxLCBvcDJfcmF0aW8gKyByYXRpb19vZmZzZXQpOwpyMyA9IG1heCgwLjAxLCBvcDNfcmF0aW8gKyByYXRpb19vZmZzZXQpOwpyNCA9IG1heCgwLjAxLCBvcDRfcmF0aW8gKyByYXRpb19vZmZzZXQpOwoKbGV2MSA9IG1heCgwLjAsIG1pbigxLjAsIG9wMV9sZXZlbCArIG1vZF9vcDFfbGV2ZWwoZ2F0ZSkpKTsKbGV2MiA9IG1heCgwLjAsIG1pbigxLjAsIG9wMl9sZXZlbCArIG1vZF9vcDJfbGV2ZWwoZ2F0ZSkpKTsKbGV2MyA9IG1heCgwLjAsIG1pbigxLjAsIG9wM19sZXZlbCArIG1vZF9vcDNfbGV2ZWwoZ2F0ZSkpKTsKbGV2NCA9IG1heCgwLjAsIG1pbigxLjAsIG9wNF9sZXZlbCArIG1vZF9vcDRfbGV2ZWwoZ2F0ZSkpKTsKCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQovLyBHbG9iYWwgbXVsdGlwbGllcnMgZm9yIGNyb3NzLW1vZCBhbmQgZmVlZGJhY2suCi8vICgxICsgbW9kKSBpbiBbMCwgMl0gcm91Z2hseTsgY2xhbXAgdG8gc3RheSBzYW5lLgovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KY3Jvc3NfbXVsID0gbWF4KDAuMCwgMS4wICsgbW9kX2Nyb3NzX21vZF9nbG9iYWwoZ2F0ZSkpOwpmYl9tdWwgICAgPSBtYXgoMC4wLCAxLjAgKyBtb2RfZmVlZGJhY2tfZ2xvYmFsKGdhdGUpKTsKCm0xMmUgPSBtMTIgKiBjcm9zc19tdWw7ICBtMTNlID0gbTEzICogY3Jvc3NfbXVsOyAgbTE0ZSA9IG0xNCAqIGNyb3NzX211bDsKbTIxZSA9IG0yMSAqIGNyb3NzX211bDsgIG0yM2UgPSBtMjMgKiBjcm9zc19tdWw7ICBtMjRlID0gbTI0ICogY3Jvc3NfbXVsOwptMzFlID0gbTMxICogY3Jvc3NfbXVsOyAgbTMyZSA9IG0zMiAqIGNyb3NzX211bDsgIG0zNGUgPSBtMzQgKiBjcm9zc19tdWw7Cm00MWUgPSBtNDEgKiBjcm9zc19tdWw7ICBtNDJlID0gbTQyICogY3Jvc3NfbXVsOyAgbTQzZSA9IG00MyAqIGNyb3NzX211bDsKCmZiMWUgPSBmYjEgKiBmYl9tdWw7CmZiMmUgPSBmYjIgKiBmYl9tdWw7CmZiM2UgPSBmYjMgKiBmYl9tdWw7CmZiNGUgPSBmYjQgKiBmYl9tdWw7CgovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLy8gNC1vcGVyYXRvciBGTSBidXMg4oCUIGZlZWRiYWNrIGxvb3AgdmlhIH4gb24gYSA0LWNoYW5uZWwgYnVzCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpmbWJ1cyhkMSxkMixkMyxkNCkgPQogIG9wMV9vdXQsIG9wMl9vdXQsIG9wM19vdXQsIG9wNF9vdXQKd2l0aCB7CiAgZjEgPSBiYXNlX2ZyZXEgKiByMTsKICBmMiA9IGJhc2VfZnJlcSAqIHIyOwogIGYzID0gYmFzZV9mcmVxICogcjM7CiAgZjQgPSBiYXNlX2ZyZXEgKiByNDsKCiAgb3AxX291dCA9IGxldjEgKgogICAgb3Mub3NjKGYxICsgKG0yMWUqZDIgKyBtMzFlKmQzICsgbTQxZSpkNCArIGZiMWUqZDEpICogZjEpOwoKICBvcDJfb3V0ID0gbGV2MiAqCiAgICBvcy5vc2MoZjIgKyAobTEyZSpkMSArIG0zMmUqZDMgKyBtNDJlKmQ0ICsgZmIyZSpkMikgKiBmMik7CgogIG9wM19vdXQgPSBsZXYzICoKICAgIG9zLm9zYyhmMyArIChtMTNlKmQxICsgbTIzZSpkMiArIG00M2UqZDQgKyBmYjNlKmQzKSAqIGYzKTsKCiAgb3A0X291dCA9IGxldjQgKgogICAgb3Mub3NjKGY0ICsgKG0xNGUqZDEgKyBtMjRlKmQyICsgbTM0ZSpkMyArIGZiNGUqZDQpICogZjQpOwp9OwoKLy8gUm91dGUgNC1jaGFubmVsIGJ1cyB0aHJvdWdoIGZlZWRiYWNrIGxvb3AsIHN1bSBhbGwgb3BzCmZtX291dCA9IChmbWJ1cyB+IChzaS5idXMoNCkpKSA6IChfLCBfLCBfLCBfKSA6PiBfOwoKLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi8vIFBvc3QtcHJvY2Vzc2luZwovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc29mdF9jbGlwKHgpID0geCAvIG1heCgwLjAwMSwgMS4wICsgb3V0cHV0X3NhdHVyYXRpb24gKiBhYnMoeCkpOwpocF9vdXQoeCkgICAgPSBmaS5oaWdocGFzcygxLCBvdXRwdXRfaHAsIHgpOwoKLy8gTWFzdGVyIGFtcGxpdHVkZSBkZXN0aW5hdGlvbiAocm91dGUgYW4gQURTUiBoZXJlIGZvciBWQ0EpCmFtcF92YWwgPSBtYXgoMC4wLCBtaW4oMS4wLCBtb2RfYW1wKGdhdGUpKSkgKiBtYXN0ZXJfbGV2ZWwgKiB2ZWxfZ2FpbiAqIDAuMjU7CgovLyBQYW4KcGFuX3ZhbCA9IG1heCgtMS4wLCBtaW4oMS4wLCBtYXN0ZXJfcGFuICsgbW9kX3BhbihnYXRlKSkpOwpwYW5fbCAgID0gY29zKChwYW5fdmFsICsgMS4wKSAqIDAuMjUgKiBtYS5QSSk7CnBhbl9yICAgPSBzaW4oKHBhbl92YWwgKyAxLjApICogMC4yNSAqIG1hLlBJKTsKCi8vIFN0ZXJlbyBzcHJlYWQgdmlhIHNsaWdodCBkZXR1bmluZyAoYXBwbHkgYWZ0ZXIgbWFpbiBGTSBzdW0pCnNwcmVhZF9jZW50cyA9IHN0ZXJlb19zcHJlYWQgKiA1LjA7CnNwcmVhZF9sICAgICA9IGNlbnQycmF0aW8oc3ByZWFkX2NlbnRzKTsKc3ByZWFkX3IgICAgID0gY2VudDJyYXRpbygwLjAgLSBzcHJlYWRfY2VudHMpOwoKbW9ub19wb3N0ID0gZm1fb3V0ICogYW1wX3ZhbCA6IHNvZnRfY2xpcCA6IGhwX291dDsKCnNpZ25hbF9MID0gbW9ub19wb3N0ICogc3ByZWFkX2wgKiBwYW5fbDsKc2lnbmFsX1IgPSBtb25vX3Bvc3QgKiBzcHJlYWRfciAqIHBhbl9yOwoKcHJvY2VzcyA9IHNpZ25hbF9MLCBzaWduYWxfUjsK","inputs": 0,"outputs": 2,"meta": [ { "basics.lib/name": "Faust Basic Element Library" },{ "basics.lib/version": "1.21.0" },{ "compile_options": "-lang wasm -ct 1 -cn modular_fm -es 1 -mcd 16 -mdd 1024 -mdy 33 -single -ftz 0" },{ "envelopes.lib/adsr:author": "Yann Orlarey and Andrey Bundin" },{ "envelopes.lib/author": "GRAME" },{ "envelopes.lib/copyright": "GRAME" },{ "envelopes.lib/license": "LGPL with exception" },{ "envelopes.lib/name": "Faust Envelope Library" },{ "envelopes.lib/version": "1.3.0" },{ "filename": "modular-fm.dsp" },{ "filters.lib/highpass:author": "Julius O. Smith III" },{ "filters.lib/highpass:copyright": "Copyright (C) 2003-2019 by Julius O. Smith III " },{ "filters.lib/lowpass0_highpass1": "MIT-style STK-4.3 license" },{ "filters.lib/lowpass0_highpass1:author": "Julius O. Smith III" },{ "filters.lib/name": "Faust Filters Library" },{ "filters.lib/tf1:author": "Julius O. Smith III" },{ "filters.lib/tf1:copyright": "Copyright (C) 2003-2019 by Julius O. Smith III " },{ "filters.lib/tf1:license": "MIT-style STK-4.3 license" },{ "filters.lib/tf1s:author": "Julius O. Smith III" },{ "filters.lib/tf1s:copyright": "Copyright (C) 2003-2019 by Julius O. Smith III " },{ "filters.lib/tf1s:license": "MIT-style STK-4.3 license" },{ "filters.lib/version": "1.7.1" },{ "maths.lib/author": "GRAME" },{ "maths.lib/copyright": "GRAME" },{ "maths.lib/license": "LGPL with exception" },{ "maths.lib/name": "Faust Math Library" },{ "maths.lib/version": "2.8.1" },{ "name": "modular-fm" },{ "oscillators.lib/lf_sawpos:author": "Bart Brouns, revised by Stéphane Letz" },{ "oscillators.lib/lf_sawpos:licence": "STK-4.3" },{ "oscillators.lib/lf_triangle:author": "Bart Brouns" },{ "oscillators.lib/lf_triangle:licence": "STK-4.3" },{ "oscillators.lib/name": "Faust Oscillator Library" },{ "oscillators.lib/saw1:author": "Bart Brouns" },{ "oscillators.lib/saw1:licence": "STK-4.3" },{ "oscillators.lib/version": "1.6.0" },{ "platform.lib/name": "Generic Platform Library" },{ "platform.lib/version": "1.3.0" },{ "signals.lib/name": "Faust Signal Routing Library" },{ "signals.lib/version": "1.6.0" }],"ui": [ {"type": "vgroup","label": "modular-fm","items": [ {"type": "hslider","label": "0_Hidden/_vel","varname": "fHslider225","shortname": "0_Hidden_vel","address": "/modular-fm/0_Hidden__vel","index": 263356,"meta": [{ "hidden": "1" }],"init": 0.7,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "0_Hidden/freq","varname": "fHslider472","shortname": "0_Hidden_freq","address": "/modular-fm/0_Hidden_freq","index": 264352,"meta": [{ "hidden": "1" },{ "unit": "Hz" }],"init": 220,"min": 20,"max": 4000,"step": 0.01},{"type": "button","label": "0_Hidden/gate","varname": "fButton0","shortname": "0_Hidden_gate","address": "/modular-fm/0_Hidden_gate","index": 262932,"meta": [{ "hidden": "1" }]},{"type": "hslider","label": "1_Operators/00_op1_ratio","varname": "fHslider422","shortname": "1_Operators_00_op1_ratio","address": "/modular-fm/1_Operators_00_op1_ratio","index": 264152,"init": 1,"min": 0.125,"max": 16,"step": 0.001},{"type": "hslider","label": "1_Operators/01_op1_level","varname": "fHslider521","shortname": "1_Operators_01_op1_level","address": "/modular-fm/1_Operators_01_op1_level","index": 264556,"init": 0.8,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "1_Operators/02_op2_ratio","varname": "fHslider526","shortname": "1_Operators_02_op2_ratio","address": "/modular-fm/1_Operators_02_op2_ratio","index": 264584,"init": 2,"min": 0.125,"max": 16,"step": 0.001},{"type": "hslider","label": "1_Operators/03_op2_level","varname": "fHslider575","shortname": "1_Operators_03_op2_level","address": "/modular-fm/1_Operators_03_op2_level","index": 264788,"init": 0.6,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "1_Operators/04_op3_ratio","varname": "fHslider580","shortname": "1_Operators_04_op3_ratio","address": "/modular-fm/1_Operators_04_op3_ratio","index": 264816,"init": 3,"min": 0.125,"max": 16,"step": 0.001},{"type": "hslider","label": "1_Operators/05_op3_level","varname": "fHslider629","shortname": "1_Operators_05_op3_level","address": "/modular-fm/1_Operators_05_op3_level","index": 265020,"init": 0.4,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "1_Operators/06_op4_ratio","varname": "fHslider634","shortname": "1_Operators_06_op4_ratio","address": "/modular-fm/1_Operators_06_op4_ratio","index": 265048,"init": 0.5,"min": 0.125,"max": 16,"step": 0.001},{"type": "hslider","label": "1_Operators/07_op4_level","varname": "fHslider683","shortname": "1_Operators_07_op4_level","address": "/modular-fm/1_Operators_07_op4_level","index": 265252,"init": 0.3,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "2_CrossMod/00_m12","varname": "fHslider525","shortname": "2_CrossMod_00_m12","address": "/modular-fm/2_CrossMod_00_m12","index": 264580,"init": 0,"min": 0,"max": 10,"step": 0.001},{"type": "hslider","label": "2_CrossMod/01_m13","varname": "fHslider579","shortname": "2_CrossMod_01_m13","address": "/modular-fm/2_CrossMod_01_m13","index": 264812,"init": 0,"min": 0,"max": 10,"step": 0.001},{"type": "hslider","label": "2_CrossMod/02_m14","varname": "fHslider633","shortname": "2_CrossMod_02_m14","address": "/modular-fm/2_CrossMod_02_m14","index": 265044,"init": 0,"min": 0,"max": 10,"step": 0.001},{"type": "hslider","label": "2_CrossMod/03_m21","varname": "fHslider325","shortname": "2_CrossMod_03_m21","address": "/modular-fm/2_CrossMod_03_m21","index": 263764,"init": 1,"min": 0,"max": 10,"step": 0.001},{"type": "hslider","label": "2_CrossMod/04_m23","varname": "fHslider578","shortname": "2_CrossMod_04_m23","address": "/modular-fm/2_CrossMod_04_m23","index": 264808,"init": 0,"min": 0,"max": 10,"step": 0.001},{"type": "hslider","label": "2_CrossMod/05_m24","varname": "fHslider632","shortname": "2_CrossMod_05_m24","address": "/modular-fm/2_CrossMod_05_m24","index": 265040,"init": 0,"min": 0,"max": 10,"step": 0.001},{"type": "hslider","label": "2_CrossMod/06_m31","varname": "fHslider324","shortname": "2_CrossMod_06_m31","address": "/modular-fm/2_CrossMod_06_m31","index": 263760,"init": 0,"min": 0,"max": 10,"step": 0.001},{"type": "hslider","label": "2_CrossMod/07_m32","varname": "fHslider524","shortname": "2_CrossMod_07_m32","address": "/modular-fm/2_CrossMod_07_m32","index": 264576,"init": 0,"min": 0,"max": 10,"step": 0.001},{"type": "hslider","label": "2_CrossMod/08_m34","varname": "fHslider631","shortname": "2_CrossMod_08_m34","address": "/modular-fm/2_CrossMod_08_m34","index": 265036,"init": 0,"min": 0,"max": 10,"step": 0.001},{"type": "hslider","label": "2_CrossMod/09_m41","varname": "fHslider323","shortname": "2_CrossMod_09_m41","address": "/modular-fm/2_CrossMod_09_m41","index": 263756,"init": 0,"min": 0,"max": 10,"step": 0.001},{"type": "hslider","label": "2_CrossMod/10_m42","varname": "fHslider523","shortname": "2_CrossMod_10_m42","address": "/modular-fm/2_CrossMod_10_m42","index": 264572,"init": 0,"min": 0,"max": 10,"step": 0.001},{"type": "hslider","label": "2_CrossMod/11_m43","varname": "fHslider577","shortname": "2_CrossMod_11_m43","address": "/modular-fm/2_CrossMod_11_m43","index": 264804,"init": 0,"min": 0,"max": 10,"step": 0.001},{"type": "hslider","label": "3_Feedback/00_fb1","varname": "fHslider322","shortname": "3_Feedback_00_fb1","address": "/modular-fm/3_Feedback_00_fb1","index": 263752,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "3_Feedback/01_fb2","varname": "fHslider522","shortname": "3_Feedback_01_fb2","address": "/modular-fm/3_Feedback_01_fb2","index": 264568,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "3_Feedback/02_fb3","varname": "fHslider576","shortname": "3_Feedback_02_fb3","address": "/modular-fm/3_Feedback_02_fb3","index": 264800,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "3_Feedback/03_fb4","varname": "fHslider630","shortname": "3_Feedback_03_fb4","address": "/modular-fm/3_Feedback_03_fb4","index": 265032,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "4_Master/00_master_level","varname": "fHslider684","shortname": "4_Master_00_master_level","address": "/modular-fm/4_Master_00_master_level","index": 265264,"init": 0.7,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "4_Master/01_fine_tune","varname": "fHslider471","shortname": "4_Master_01_fine_tune","address": "/modular-fm/4_Master_01_fine_tune","index": 264348,"meta": [{ "unit": "ct" }],"init": 0,"min": -50,"max": 50,"step": 0.1},{"type": "hslider","label": "4_Master/02_stereo_spread","varname": "fHslider687","shortname": "4_Master_02_stereo_spread","address": "/modular-fm/4_Master_02_stereo_spread","index": 265296,"init": 0.1,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "4_Master/03_output_saturation","varname": "fHslider685","shortname": "4_Master_03_output_saturation","address": "/modular-fm/4_Master_03_output_saturation","index": 265268,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "4_Master/04_output_hp","varname": "fHslider686","shortname": "4_Master_04_output_hp","address": "/modular-fm/4_Master_04_output_hp","index": 265280,"meta": [{ "unit": "Hz" }],"init": 20,"min": 20,"max": 200,"step": 0.1},{"type": "hslider","label": "4_Master/05_master_pan","varname": "fHslider224","shortname": "4_Master_05_master_pan","address": "/modular-fm/4_Master_05_master_pan","index": 263344,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_ADSR/00_adsr01_attack","varname": "fHslider219","shortname": "MM_ADSR_00_adsr01_attack","address": "/modular-fm/MM_ADSR_00_adsr01_attack","index": 263324,"meta": [{ "scale": "log" }],"init": 0.01,"min": 0.001,"max": 5,"step": 0.001},{"type": "hslider","label": "MM_ADSR/00_adsr01_decay","varname": "fHslider220","shortname": "MM_ADSR_00_adsr01_decay","address": "/modular-fm/MM_ADSR_00_adsr01_decay","index": 263328,"init": 0.2,"min": 0.001,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/00_adsr01_enable","varname": "fHslider223","shortname": "MM_ADSR_00_adsr01_enable","address": "/modular-fm/MM_ADSR_00_adsr01_enable","index": 263340,"init": 1,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_ADSR/00_adsr01_release","varname": "fHslider218","shortname": "MM_ADSR_00_adsr01_release","address": "/modular-fm/MM_ADSR_00_adsr01_release","index": 263320,"init": 0.3,"min": 0.01,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/00_adsr01_sustain","varname": "fHslider221","shortname": "MM_ADSR_00_adsr01_sustain","address": "/modular-fm/MM_ADSR_00_adsr01_sustain","index": 263332,"init": 0.7,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_ADSR/01_adsr02_attack","varname": "fHslider213","shortname": "MM_ADSR_01_adsr02_attack","address": "/modular-fm/MM_ADSR_01_adsr02_attack","index": 263300,"meta": [{ "scale": "log" }],"init": 0.01,"min": 0.001,"max": 5,"step": 0.001},{"type": "hslider","label": "MM_ADSR/01_adsr02_decay","varname": "fHslider214","shortname": "MM_ADSR_01_adsr02_decay","address": "/modular-fm/MM_ADSR_01_adsr02_decay","index": 263304,"init": 0.2,"min": 0.001,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/01_adsr02_enable","varname": "fHslider217","shortname": "MM_ADSR_01_adsr02_enable","address": "/modular-fm/MM_ADSR_01_adsr02_enable","index": 263316,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_ADSR/01_adsr02_release","varname": "fHslider212","shortname": "MM_ADSR_01_adsr02_release","address": "/modular-fm/MM_ADSR_01_adsr02_release","index": 263296,"init": 0.3,"min": 0.01,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/01_adsr02_sustain","varname": "fHslider215","shortname": "MM_ADSR_01_adsr02_sustain","address": "/modular-fm/MM_ADSR_01_adsr02_sustain","index": 263308,"init": 0.7,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_ADSR/02_adsr03_attack","varname": "fHslider207","shortname": "MM_ADSR_02_adsr03_attack","address": "/modular-fm/MM_ADSR_02_adsr03_attack","index": 263276,"meta": [{ "scale": "log" }],"init": 0.01,"min": 0.001,"max": 5,"step": 0.001},{"type": "hslider","label": "MM_ADSR/02_adsr03_decay","varname": "fHslider208","shortname": "MM_ADSR_02_adsr03_decay","address": "/modular-fm/MM_ADSR_02_adsr03_decay","index": 263280,"init": 0.2,"min": 0.001,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/02_adsr03_enable","varname": "fHslider211","shortname": "MM_ADSR_02_adsr03_enable","address": "/modular-fm/MM_ADSR_02_adsr03_enable","index": 263292,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_ADSR/02_adsr03_release","varname": "fHslider206","shortname": "MM_ADSR_02_adsr03_release","address": "/modular-fm/MM_ADSR_02_adsr03_release","index": 263272,"init": 0.3,"min": 0.01,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/02_adsr03_sustain","varname": "fHslider209","shortname": "MM_ADSR_02_adsr03_sustain","address": "/modular-fm/MM_ADSR_02_adsr03_sustain","index": 263284,"init": 0.7,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_ADSR/03_adsr04_attack","varname": "fHslider201","shortname": "MM_ADSR_03_adsr04_attack","address": "/modular-fm/MM_ADSR_03_adsr04_attack","index": 263252,"meta": [{ "scale": "log" }],"init": 0.01,"min": 0.001,"max": 5,"step": 0.001},{"type": "hslider","label": "MM_ADSR/03_adsr04_decay","varname": "fHslider202","shortname": "MM_ADSR_03_adsr04_decay","address": "/modular-fm/MM_ADSR_03_adsr04_decay","index": 263256,"init": 0.2,"min": 0.001,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/03_adsr04_enable","varname": "fHslider205","shortname": "MM_ADSR_03_adsr04_enable","address": "/modular-fm/MM_ADSR_03_adsr04_enable","index": 263268,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_ADSR/03_adsr04_release","varname": "fHslider200","shortname": "MM_ADSR_03_adsr04_release","address": "/modular-fm/MM_ADSR_03_adsr04_release","index": 263248,"init": 0.3,"min": 0.01,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/03_adsr04_sustain","varname": "fHslider203","shortname": "MM_ADSR_03_adsr04_sustain","address": "/modular-fm/MM_ADSR_03_adsr04_sustain","index": 263260,"init": 0.7,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_ADSR/04_adsr05_attack","varname": "fHslider195","shortname": "MM_ADSR_04_adsr05_attack","address": "/modular-fm/MM_ADSR_04_adsr05_attack","index": 263228,"meta": [{ "scale": "log" }],"init": 0.01,"min": 0.001,"max": 5,"step": 0.001},{"type": "hslider","label": "MM_ADSR/04_adsr05_decay","varname": "fHslider196","shortname": "MM_ADSR_04_adsr05_decay","address": "/modular-fm/MM_ADSR_04_adsr05_decay","index": 263232,"init": 0.2,"min": 0.001,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/04_adsr05_enable","varname": "fHslider199","shortname": "MM_ADSR_04_adsr05_enable","address": "/modular-fm/MM_ADSR_04_adsr05_enable","index": 263244,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_ADSR/04_adsr05_release","varname": "fHslider194","shortname": "MM_ADSR_04_adsr05_release","address": "/modular-fm/MM_ADSR_04_adsr05_release","index": 263224,"init": 0.3,"min": 0.01,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/04_adsr05_sustain","varname": "fHslider197","shortname": "MM_ADSR_04_adsr05_sustain","address": "/modular-fm/MM_ADSR_04_adsr05_sustain","index": 263236,"init": 0.7,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_ADSR/05_adsr06_attack","varname": "fHslider189","shortname": "MM_ADSR_05_adsr06_attack","address": "/modular-fm/MM_ADSR_05_adsr06_attack","index": 263204,"meta": [{ "scale": "log" }],"init": 0.01,"min": 0.001,"max": 5,"step": 0.001},{"type": "hslider","label": "MM_ADSR/05_adsr06_decay","varname": "fHslider190","shortname": "MM_ADSR_05_adsr06_decay","address": "/modular-fm/MM_ADSR_05_adsr06_decay","index": 263208,"init": 0.2,"min": 0.001,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/05_adsr06_enable","varname": "fHslider193","shortname": "MM_ADSR_05_adsr06_enable","address": "/modular-fm/MM_ADSR_05_adsr06_enable","index": 263220,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_ADSR/05_adsr06_release","varname": "fHslider188","shortname": "MM_ADSR_05_adsr06_release","address": "/modular-fm/MM_ADSR_05_adsr06_release","index": 263200,"init": 0.3,"min": 0.01,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/05_adsr06_sustain","varname": "fHslider191","shortname": "MM_ADSR_05_adsr06_sustain","address": "/modular-fm/MM_ADSR_05_adsr06_sustain","index": 263212,"init": 0.7,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_ADSR/06_adsr07_attack","varname": "fHslider183","shortname": "MM_ADSR_06_adsr07_attack","address": "/modular-fm/MM_ADSR_06_adsr07_attack","index": 263180,"meta": [{ "scale": "log" }],"init": 0.01,"min": 0.001,"max": 5,"step": 0.001},{"type": "hslider","label": "MM_ADSR/06_adsr07_decay","varname": "fHslider184","shortname": "MM_ADSR_06_adsr07_decay","address": "/modular-fm/MM_ADSR_06_adsr07_decay","index": 263184,"init": 0.2,"min": 0.001,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/06_adsr07_enable","varname": "fHslider187","shortname": "MM_ADSR_06_adsr07_enable","address": "/modular-fm/MM_ADSR_06_adsr07_enable","index": 263196,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_ADSR/06_adsr07_release","varname": "fHslider182","shortname": "MM_ADSR_06_adsr07_release","address": "/modular-fm/MM_ADSR_06_adsr07_release","index": 263176,"init": 0.3,"min": 0.01,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/06_adsr07_sustain","varname": "fHslider185","shortname": "MM_ADSR_06_adsr07_sustain","address": "/modular-fm/MM_ADSR_06_adsr07_sustain","index": 263188,"init": 0.7,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_ADSR/07_adsr08_attack","varname": "fHslider177","shortname": "MM_ADSR_07_adsr08_attack","address": "/modular-fm/MM_ADSR_07_adsr08_attack","index": 263156,"meta": [{ "scale": "log" }],"init": 0.01,"min": 0.001,"max": 5,"step": 0.001},{"type": "hslider","label": "MM_ADSR/07_adsr08_decay","varname": "fHslider178","shortname": "MM_ADSR_07_adsr08_decay","address": "/modular-fm/MM_ADSR_07_adsr08_decay","index": 263160,"init": 0.2,"min": 0.001,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/07_adsr08_enable","varname": "fHslider181","shortname": "MM_ADSR_07_adsr08_enable","address": "/modular-fm/MM_ADSR_07_adsr08_enable","index": 263172,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_ADSR/07_adsr08_release","varname": "fHslider176","shortname": "MM_ADSR_07_adsr08_release","address": "/modular-fm/MM_ADSR_07_adsr08_release","index": 263152,"init": 0.3,"min": 0.01,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/07_adsr08_sustain","varname": "fHslider179","shortname": "MM_ADSR_07_adsr08_sustain","address": "/modular-fm/MM_ADSR_07_adsr08_sustain","index": 263164,"init": 0.7,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_ADSR/08_adsr09_attack","varname": "fHslider171","shortname": "MM_ADSR_08_adsr09_attack","address": "/modular-fm/MM_ADSR_08_adsr09_attack","index": 263132,"meta": [{ "scale": "log" }],"init": 0.01,"min": 0.001,"max": 5,"step": 0.001},{"type": "hslider","label": "MM_ADSR/08_adsr09_decay","varname": "fHslider172","shortname": "MM_ADSR_08_adsr09_decay","address": "/modular-fm/MM_ADSR_08_adsr09_decay","index": 263136,"init": 0.2,"min": 0.001,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/08_adsr09_enable","varname": "fHslider175","shortname": "MM_ADSR_08_adsr09_enable","address": "/modular-fm/MM_ADSR_08_adsr09_enable","index": 263148,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_ADSR/08_adsr09_release","varname": "fHslider170","shortname": "MM_ADSR_08_adsr09_release","address": "/modular-fm/MM_ADSR_08_adsr09_release","index": 263128,"init": 0.3,"min": 0.01,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/08_adsr09_sustain","varname": "fHslider173","shortname": "MM_ADSR_08_adsr09_sustain","address": "/modular-fm/MM_ADSR_08_adsr09_sustain","index": 263140,"init": 0.7,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_ADSR/09_adsr10_attack","varname": "fHslider165","shortname": "MM_ADSR_09_adsr10_attack","address": "/modular-fm/MM_ADSR_09_adsr10_attack","index": 263108,"meta": [{ "scale": "log" }],"init": 0.01,"min": 0.001,"max": 5,"step": 0.001},{"type": "hslider","label": "MM_ADSR/09_adsr10_decay","varname": "fHslider166","shortname": "MM_ADSR_09_adsr10_decay","address": "/modular-fm/MM_ADSR_09_adsr10_decay","index": 263112,"init": 0.2,"min": 0.001,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/09_adsr10_enable","varname": "fHslider169","shortname": "MM_ADSR_09_adsr10_enable","address": "/modular-fm/MM_ADSR_09_adsr10_enable","index": 263124,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_ADSR/09_adsr10_release","varname": "fHslider164","shortname": "MM_ADSR_09_adsr10_release","address": "/modular-fm/MM_ADSR_09_adsr10_release","index": 263104,"init": 0.3,"min": 0.01,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/09_adsr10_sustain","varname": "fHslider167","shortname": "MM_ADSR_09_adsr10_sustain","address": "/modular-fm/MM_ADSR_09_adsr10_sustain","index": 263116,"init": 0.7,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_ADSR/10_adsr11_attack","varname": "fHslider159","shortname": "MM_ADSR_10_adsr11_attack","address": "/modular-fm/MM_ADSR_10_adsr11_attack","index": 263084,"meta": [{ "scale": "log" }],"init": 0.01,"min": 0.001,"max": 5,"step": 0.001},{"type": "hslider","label": "MM_ADSR/10_adsr11_decay","varname": "fHslider160","shortname": "MM_ADSR_10_adsr11_decay","address": "/modular-fm/MM_ADSR_10_adsr11_decay","index": 263088,"init": 0.2,"min": 0.001,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/10_adsr11_enable","varname": "fHslider163","shortname": "MM_ADSR_10_adsr11_enable","address": "/modular-fm/MM_ADSR_10_adsr11_enable","index": 263100,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_ADSR/10_adsr11_release","varname": "fHslider158","shortname": "MM_ADSR_10_adsr11_release","address": "/modular-fm/MM_ADSR_10_adsr11_release","index": 263080,"init": 0.3,"min": 0.01,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/10_adsr11_sustain","varname": "fHslider161","shortname": "MM_ADSR_10_adsr11_sustain","address": "/modular-fm/MM_ADSR_10_adsr11_sustain","index": 263092,"init": 0.7,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_ADSR/11_adsr12_attack","varname": "fHslider153","shortname": "MM_ADSR_11_adsr12_attack","address": "/modular-fm/MM_ADSR_11_adsr12_attack","index": 263060,"meta": [{ "scale": "log" }],"init": 0.01,"min": 0.001,"max": 5,"step": 0.001},{"type": "hslider","label": "MM_ADSR/11_adsr12_decay","varname": "fHslider154","shortname": "MM_ADSR_11_adsr12_decay","address": "/modular-fm/MM_ADSR_11_adsr12_decay","index": 263064,"init": 0.2,"min": 0.001,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/11_adsr12_enable","varname": "fHslider157","shortname": "MM_ADSR_11_adsr12_enable","address": "/modular-fm/MM_ADSR_11_adsr12_enable","index": 263076,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_ADSR/11_adsr12_release","varname": "fHslider152","shortname": "MM_ADSR_11_adsr12_release","address": "/modular-fm/MM_ADSR_11_adsr12_release","index": 263056,"init": 0.3,"min": 0.01,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/11_adsr12_sustain","varname": "fHslider155","shortname": "MM_ADSR_11_adsr12_sustain","address": "/modular-fm/MM_ADSR_11_adsr12_sustain","index": 263068,"init": 0.7,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_ADSR/12_adsr13_attack","varname": "fHslider147","shortname": "MM_ADSR_12_adsr13_attack","address": "/modular-fm/MM_ADSR_12_adsr13_attack","index": 263036,"meta": [{ "scale": "log" }],"init": 0.01,"min": 0.001,"max": 5,"step": 0.001},{"type": "hslider","label": "MM_ADSR/12_adsr13_decay","varname": "fHslider148","shortname": "MM_ADSR_12_adsr13_decay","address": "/modular-fm/MM_ADSR_12_adsr13_decay","index": 263040,"init": 0.2,"min": 0.001,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/12_adsr13_enable","varname": "fHslider151","shortname": "MM_ADSR_12_adsr13_enable","address": "/modular-fm/MM_ADSR_12_adsr13_enable","index": 263052,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_ADSR/12_adsr13_release","varname": "fHslider146","shortname": "MM_ADSR_12_adsr13_release","address": "/modular-fm/MM_ADSR_12_adsr13_release","index": 263032,"init": 0.3,"min": 0.01,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/12_adsr13_sustain","varname": "fHslider149","shortname": "MM_ADSR_12_adsr13_sustain","address": "/modular-fm/MM_ADSR_12_adsr13_sustain","index": 263044,"init": 0.7,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_ADSR/13_adsr14_attack","varname": "fHslider141","shortname": "MM_ADSR_13_adsr14_attack","address": "/modular-fm/MM_ADSR_13_adsr14_attack","index": 263012,"meta": [{ "scale": "log" }],"init": 0.01,"min": 0.001,"max": 5,"step": 0.001},{"type": "hslider","label": "MM_ADSR/13_adsr14_decay","varname": "fHslider142","shortname": "MM_ADSR_13_adsr14_decay","address": "/modular-fm/MM_ADSR_13_adsr14_decay","index": 263016,"init": 0.2,"min": 0.001,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/13_adsr14_enable","varname": "fHslider145","shortname": "MM_ADSR_13_adsr14_enable","address": "/modular-fm/MM_ADSR_13_adsr14_enable","index": 263028,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_ADSR/13_adsr14_release","varname": "fHslider140","shortname": "MM_ADSR_13_adsr14_release","address": "/modular-fm/MM_ADSR_13_adsr14_release","index": 263008,"init": 0.3,"min": 0.01,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/13_adsr14_sustain","varname": "fHslider143","shortname": "MM_ADSR_13_adsr14_sustain","address": "/modular-fm/MM_ADSR_13_adsr14_sustain","index": 263020,"init": 0.7,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_ADSR/14_adsr15_attack","varname": "fHslider135","shortname": "MM_ADSR_14_adsr15_attack","address": "/modular-fm/MM_ADSR_14_adsr15_attack","index": 262988,"meta": [{ "scale": "log" }],"init": 0.01,"min": 0.001,"max": 5,"step": 0.001},{"type": "hslider","label": "MM_ADSR/14_adsr15_decay","varname": "fHslider136","shortname": "MM_ADSR_14_adsr15_decay","address": "/modular-fm/MM_ADSR_14_adsr15_decay","index": 262992,"init": 0.2,"min": 0.001,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/14_adsr15_enable","varname": "fHslider139","shortname": "MM_ADSR_14_adsr15_enable","address": "/modular-fm/MM_ADSR_14_adsr15_enable","index": 263004,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_ADSR/14_adsr15_release","varname": "fHslider134","shortname": "MM_ADSR_14_adsr15_release","address": "/modular-fm/MM_ADSR_14_adsr15_release","index": 262984,"init": 0.3,"min": 0.01,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/14_adsr15_sustain","varname": "fHslider137","shortname": "MM_ADSR_14_adsr15_sustain","address": "/modular-fm/MM_ADSR_14_adsr15_sustain","index": 262996,"init": 0.7,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_ADSR/15_adsr16_attack","varname": "fHslider129","shortname": "MM_ADSR_15_adsr16_attack","address": "/modular-fm/MM_ADSR_15_adsr16_attack","index": 262964,"meta": [{ "scale": "log" }],"init": 0.01,"min": 0.001,"max": 5,"step": 0.001},{"type": "hslider","label": "MM_ADSR/15_adsr16_decay","varname": "fHslider130","shortname": "MM_ADSR_15_adsr16_decay","address": "/modular-fm/MM_ADSR_15_adsr16_decay","index": 262968,"init": 0.2,"min": 0.001,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/15_adsr16_enable","varname": "fHslider133","shortname": "MM_ADSR_15_adsr16_enable","address": "/modular-fm/MM_ADSR_15_adsr16_enable","index": 262980,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_ADSR/15_adsr16_release","varname": "fHslider128","shortname": "MM_ADSR_15_adsr16_release","address": "/modular-fm/MM_ADSR_15_adsr16_release","index": 262952,"init": 0.3,"min": 0.01,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/15_adsr16_sustain","varname": "fHslider131","shortname": "MM_ADSR_15_adsr16_sustain","address": "/modular-fm/MM_ADSR_15_adsr16_sustain","index": 262972,"init": 0.7,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/00_lfo01_enable","varname": "fHslider127","shortname": "MM_LFO_00_lfo01_enable","address": "/modular-fm/MM_LFO_00_lfo01_enable","index": 262928,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/00_lfo01_morph","varname": "fHslider124","shortname": "MM_LFO_00_lfo01_morph","address": "/modular-fm/MM_LFO_00_lfo01_morph","index": 262908,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/00_lfo01_rate","varname": "fHslider125","shortname": "MM_LFO_00_lfo01_rate","address": "/modular-fm/MM_LFO_00_lfo01_rate","index": 262912,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/01_lfo02_enable","varname": "fHslider123","shortname": "MM_LFO_01_lfo02_enable","address": "/modular-fm/MM_LFO_01_lfo02_enable","index": 262904,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/01_lfo02_morph","varname": "fHslider120","shortname": "MM_LFO_01_lfo02_morph","address": "/modular-fm/MM_LFO_01_lfo02_morph","index": 262884,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/01_lfo02_rate","varname": "fHslider121","shortname": "MM_LFO_01_lfo02_rate","address": "/modular-fm/MM_LFO_01_lfo02_rate","index": 262888,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/02_lfo03_enable","varname": "fHslider119","shortname": "MM_LFO_02_lfo03_enable","address": "/modular-fm/MM_LFO_02_lfo03_enable","index": 262880,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/02_lfo03_morph","varname": "fHslider116","shortname": "MM_LFO_02_lfo03_morph","address": "/modular-fm/MM_LFO_02_lfo03_morph","index": 262860,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/02_lfo03_rate","varname": "fHslider117","shortname": "MM_LFO_02_lfo03_rate","address": "/modular-fm/MM_LFO_02_lfo03_rate","index": 262864,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/03_lfo04_enable","varname": "fHslider115","shortname": "MM_LFO_03_lfo04_enable","address": "/modular-fm/MM_LFO_03_lfo04_enable","index": 262856,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/03_lfo04_morph","varname": "fHslider112","shortname": "MM_LFO_03_lfo04_morph","address": "/modular-fm/MM_LFO_03_lfo04_morph","index": 262836,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/03_lfo04_rate","varname": "fHslider113","shortname": "MM_LFO_03_lfo04_rate","address": "/modular-fm/MM_LFO_03_lfo04_rate","index": 262840,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/04_lfo05_enable","varname": "fHslider111","shortname": "MM_LFO_04_lfo05_enable","address": "/modular-fm/MM_LFO_04_lfo05_enable","index": 262832,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/04_lfo05_morph","varname": "fHslider108","shortname": "MM_LFO_04_lfo05_morph","address": "/modular-fm/MM_LFO_04_lfo05_morph","index": 262812,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/04_lfo05_rate","varname": "fHslider109","shortname": "MM_LFO_04_lfo05_rate","address": "/modular-fm/MM_LFO_04_lfo05_rate","index": 262816,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/05_lfo06_enable","varname": "fHslider107","shortname": "MM_LFO_05_lfo06_enable","address": "/modular-fm/MM_LFO_05_lfo06_enable","index": 262808,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/05_lfo06_morph","varname": "fHslider104","shortname": "MM_LFO_05_lfo06_morph","address": "/modular-fm/MM_LFO_05_lfo06_morph","index": 262788,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/05_lfo06_rate","varname": "fHslider105","shortname": "MM_LFO_05_lfo06_rate","address": "/modular-fm/MM_LFO_05_lfo06_rate","index": 262792,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/06_lfo07_enable","varname": "fHslider103","shortname": "MM_LFO_06_lfo07_enable","address": "/modular-fm/MM_LFO_06_lfo07_enable","index": 262784,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/06_lfo07_morph","varname": "fHslider100","shortname": "MM_LFO_06_lfo07_morph","address": "/modular-fm/MM_LFO_06_lfo07_morph","index": 262764,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/06_lfo07_rate","varname": "fHslider101","shortname": "MM_LFO_06_lfo07_rate","address": "/modular-fm/MM_LFO_06_lfo07_rate","index": 262768,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/07_lfo08_enable","varname": "fHslider99","shortname": "MM_LFO_07_lfo08_enable","address": "/modular-fm/MM_LFO_07_lfo08_enable","index": 262760,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/07_lfo08_morph","varname": "fHslider96","shortname": "MM_LFO_07_lfo08_morph","address": "/modular-fm/MM_LFO_07_lfo08_morph","index": 262740,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/07_lfo08_rate","varname": "fHslider97","shortname": "MM_LFO_07_lfo08_rate","address": "/modular-fm/MM_LFO_07_lfo08_rate","index": 262744,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/08_lfo09_enable","varname": "fHslider95","shortname": "MM_LFO_08_lfo09_enable","address": "/modular-fm/MM_LFO_08_lfo09_enable","index": 262736,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/08_lfo09_morph","varname": "fHslider92","shortname": "MM_LFO_08_lfo09_morph","address": "/modular-fm/MM_LFO_08_lfo09_morph","index": 262716,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/08_lfo09_rate","varname": "fHslider93","shortname": "MM_LFO_08_lfo09_rate","address": "/modular-fm/MM_LFO_08_lfo09_rate","index": 262720,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/09_lfo10_enable","varname": "fHslider91","shortname": "MM_LFO_09_lfo10_enable","address": "/modular-fm/MM_LFO_09_lfo10_enable","index": 262712,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/09_lfo10_morph","varname": "fHslider88","shortname": "MM_LFO_09_lfo10_morph","address": "/modular-fm/MM_LFO_09_lfo10_morph","index": 262692,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/09_lfo10_rate","varname": "fHslider89","shortname": "MM_LFO_09_lfo10_rate","address": "/modular-fm/MM_LFO_09_lfo10_rate","index": 262696,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/10_lfo11_enable","varname": "fHslider87","shortname": "MM_LFO_10_lfo11_enable","address": "/modular-fm/MM_LFO_10_lfo11_enable","index": 262688,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/10_lfo11_morph","varname": "fHslider84","shortname": "MM_LFO_10_lfo11_morph","address": "/modular-fm/MM_LFO_10_lfo11_morph","index": 262668,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/10_lfo11_rate","varname": "fHslider85","shortname": "MM_LFO_10_lfo11_rate","address": "/modular-fm/MM_LFO_10_lfo11_rate","index": 262672,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/11_lfo12_enable","varname": "fHslider83","shortname": "MM_LFO_11_lfo12_enable","address": "/modular-fm/MM_LFO_11_lfo12_enable","index": 262664,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/11_lfo12_morph","varname": "fHslider80","shortname": "MM_LFO_11_lfo12_morph","address": "/modular-fm/MM_LFO_11_lfo12_morph","index": 262644,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/11_lfo12_rate","varname": "fHslider81","shortname": "MM_LFO_11_lfo12_rate","address": "/modular-fm/MM_LFO_11_lfo12_rate","index": 262648,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/12_lfo13_enable","varname": "fHslider79","shortname": "MM_LFO_12_lfo13_enable","address": "/modular-fm/MM_LFO_12_lfo13_enable","index": 262640,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/12_lfo13_morph","varname": "fHslider76","shortname": "MM_LFO_12_lfo13_morph","address": "/modular-fm/MM_LFO_12_lfo13_morph","index": 262620,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/12_lfo13_rate","varname": "fHslider77","shortname": "MM_LFO_12_lfo13_rate","address": "/modular-fm/MM_LFO_12_lfo13_rate","index": 262624,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/13_lfo14_enable","varname": "fHslider75","shortname": "MM_LFO_13_lfo14_enable","address": "/modular-fm/MM_LFO_13_lfo14_enable","index": 262616,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/13_lfo14_morph","varname": "fHslider72","shortname": "MM_LFO_13_lfo14_morph","address": "/modular-fm/MM_LFO_13_lfo14_morph","index": 262596,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/13_lfo14_rate","varname": "fHslider73","shortname": "MM_LFO_13_lfo14_rate","address": "/modular-fm/MM_LFO_13_lfo14_rate","index": 262600,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/14_lfo15_enable","varname": "fHslider71","shortname": "MM_LFO_14_lfo15_enable","address": "/modular-fm/MM_LFO_14_lfo15_enable","index": 262592,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/14_lfo15_morph","varname": "fHslider68","shortname": "MM_LFO_14_lfo15_morph","address": "/modular-fm/MM_LFO_14_lfo15_morph","index": 262572,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/14_lfo15_rate","varname": "fHslider69","shortname": "MM_LFO_14_lfo15_rate","address": "/modular-fm/MM_LFO_14_lfo15_rate","index": 262576,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/15_lfo16_enable","varname": "fHslider67","shortname": "MM_LFO_15_lfo16_enable","address": "/modular-fm/MM_LFO_15_lfo16_enable","index": 262568,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/15_lfo16_morph","varname": "fHslider64","shortname": "MM_LFO_15_lfo16_morph","address": "/modular-fm/MM_LFO_15_lfo16_morph","index": 262548,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/15_lfo16_rate","varname": "fHslider65","shortname": "MM_LFO_15_lfo16_rate","address": "/modular-fm/MM_LFO_15_lfo16_rate","index": 262552,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/16_lfo17_enable","varname": "fHslider63","shortname": "MM_LFO_16_lfo17_enable","address": "/modular-fm/MM_LFO_16_lfo17_enable","index": 262544,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/16_lfo17_morph","varname": "fHslider60","shortname": "MM_LFO_16_lfo17_morph","address": "/modular-fm/MM_LFO_16_lfo17_morph","index": 262524,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/16_lfo17_rate","varname": "fHslider61","shortname": "MM_LFO_16_lfo17_rate","address": "/modular-fm/MM_LFO_16_lfo17_rate","index": 262528,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/17_lfo18_enable","varname": "fHslider59","shortname": "MM_LFO_17_lfo18_enable","address": "/modular-fm/MM_LFO_17_lfo18_enable","index": 262520,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/17_lfo18_morph","varname": "fHslider56","shortname": "MM_LFO_17_lfo18_morph","address": "/modular-fm/MM_LFO_17_lfo18_morph","index": 262500,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/17_lfo18_rate","varname": "fHslider57","shortname": "MM_LFO_17_lfo18_rate","address": "/modular-fm/MM_LFO_17_lfo18_rate","index": 262504,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/18_lfo19_enable","varname": "fHslider55","shortname": "MM_LFO_18_lfo19_enable","address": "/modular-fm/MM_LFO_18_lfo19_enable","index": 262496,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/18_lfo19_morph","varname": "fHslider52","shortname": "MM_LFO_18_lfo19_morph","address": "/modular-fm/MM_LFO_18_lfo19_morph","index": 262476,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/18_lfo19_rate","varname": "fHslider53","shortname": "MM_LFO_18_lfo19_rate","address": "/modular-fm/MM_LFO_18_lfo19_rate","index": 262480,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/19_lfo20_enable","varname": "fHslider51","shortname": "MM_LFO_19_lfo20_enable","address": "/modular-fm/MM_LFO_19_lfo20_enable","index": 262472,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/19_lfo20_morph","varname": "fHslider48","shortname": "MM_LFO_19_lfo20_morph","address": "/modular-fm/MM_LFO_19_lfo20_morph","index": 262452,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/19_lfo20_rate","varname": "fHslider49","shortname": "MM_LFO_19_lfo20_rate","address": "/modular-fm/MM_LFO_19_lfo20_rate","index": 262456,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/20_lfo21_enable","varname": "fHslider47","shortname": "MM_LFO_20_lfo21_enable","address": "/modular-fm/MM_LFO_20_lfo21_enable","index": 262448,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/20_lfo21_morph","varname": "fHslider44","shortname": "MM_LFO_20_lfo21_morph","address": "/modular-fm/MM_LFO_20_lfo21_morph","index": 262428,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/20_lfo21_rate","varname": "fHslider45","shortname": "MM_LFO_20_lfo21_rate","address": "/modular-fm/MM_LFO_20_lfo21_rate","index": 262432,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/21_lfo22_enable","varname": "fHslider43","shortname": "MM_LFO_21_lfo22_enable","address": "/modular-fm/MM_LFO_21_lfo22_enable","index": 262424,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/21_lfo22_morph","varname": "fHslider40","shortname": "MM_LFO_21_lfo22_morph","address": "/modular-fm/MM_LFO_21_lfo22_morph","index": 262404,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/21_lfo22_rate","varname": "fHslider41","shortname": "MM_LFO_21_lfo22_rate","address": "/modular-fm/MM_LFO_21_lfo22_rate","index": 262408,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/22_lfo23_enable","varname": "fHslider39","shortname": "MM_LFO_22_lfo23_enable","address": "/modular-fm/MM_LFO_22_lfo23_enable","index": 262400,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/22_lfo23_morph","varname": "fHslider36","shortname": "MM_LFO_22_lfo23_morph","address": "/modular-fm/MM_LFO_22_lfo23_morph","index": 262380,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/22_lfo23_rate","varname": "fHslider37","shortname": "MM_LFO_22_lfo23_rate","address": "/modular-fm/MM_LFO_22_lfo23_rate","index": 262384,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/23_lfo24_enable","varname": "fHslider35","shortname": "MM_LFO_23_lfo24_enable","address": "/modular-fm/MM_LFO_23_lfo24_enable","index": 262376,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/23_lfo24_morph","varname": "fHslider32","shortname": "MM_LFO_23_lfo24_morph","address": "/modular-fm/MM_LFO_23_lfo24_morph","index": 262356,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/23_lfo24_rate","varname": "fHslider33","shortname": "MM_LFO_23_lfo24_rate","address": "/modular-fm/MM_LFO_23_lfo24_rate","index": 262360,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/24_lfo25_enable","varname": "fHslider31","shortname": "MM_LFO_24_lfo25_enable","address": "/modular-fm/MM_LFO_24_lfo25_enable","index": 262352,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/24_lfo25_morph","varname": "fHslider28","shortname": "MM_LFO_24_lfo25_morph","address": "/modular-fm/MM_LFO_24_lfo25_morph","index": 262332,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/24_lfo25_rate","varname": "fHslider29","shortname": "MM_LFO_24_lfo25_rate","address": "/modular-fm/MM_LFO_24_lfo25_rate","index": 262336,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/25_lfo26_enable","varname": "fHslider27","shortname": "MM_LFO_25_lfo26_enable","address": "/modular-fm/MM_LFO_25_lfo26_enable","index": 262328,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/25_lfo26_morph","varname": "fHslider24","shortname": "MM_LFO_25_lfo26_morph","address": "/modular-fm/MM_LFO_25_lfo26_morph","index": 262308,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/25_lfo26_rate","varname": "fHslider25","shortname": "MM_LFO_25_lfo26_rate","address": "/modular-fm/MM_LFO_25_lfo26_rate","index": 262312,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/26_lfo27_enable","varname": "fHslider23","shortname": "MM_LFO_26_lfo27_enable","address": "/modular-fm/MM_LFO_26_lfo27_enable","index": 262304,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/26_lfo27_morph","varname": "fHslider20","shortname": "MM_LFO_26_lfo27_morph","address": "/modular-fm/MM_LFO_26_lfo27_morph","index": 262284,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/26_lfo27_rate","varname": "fHslider21","shortname": "MM_LFO_26_lfo27_rate","address": "/modular-fm/MM_LFO_26_lfo27_rate","index": 262288,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/27_lfo28_enable","varname": "fHslider19","shortname": "MM_LFO_27_lfo28_enable","address": "/modular-fm/MM_LFO_27_lfo28_enable","index": 262280,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/27_lfo28_morph","varname": "fHslider16","shortname": "MM_LFO_27_lfo28_morph","address": "/modular-fm/MM_LFO_27_lfo28_morph","index": 262260,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/27_lfo28_rate","varname": "fHslider17","shortname": "MM_LFO_27_lfo28_rate","address": "/modular-fm/MM_LFO_27_lfo28_rate","index": 262264,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/28_lfo29_enable","varname": "fHslider15","shortname": "MM_LFO_28_lfo29_enable","address": "/modular-fm/MM_LFO_28_lfo29_enable","index": 262256,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/28_lfo29_morph","varname": "fHslider12","shortname": "MM_LFO_28_lfo29_morph","address": "/modular-fm/MM_LFO_28_lfo29_morph","index": 262236,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/28_lfo29_rate","varname": "fHslider13","shortname": "MM_LFO_28_lfo29_rate","address": "/modular-fm/MM_LFO_28_lfo29_rate","index": 262240,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/29_lfo30_enable","varname": "fHslider11","shortname": "MM_LFO_29_lfo30_enable","address": "/modular-fm/MM_LFO_29_lfo30_enable","index": 262232,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/29_lfo30_morph","varname": "fHslider8","shortname": "MM_LFO_29_lfo30_morph","address": "/modular-fm/MM_LFO_29_lfo30_morph","index": 262212,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/29_lfo30_rate","varname": "fHslider9","shortname": "MM_LFO_29_lfo30_rate","address": "/modular-fm/MM_LFO_29_lfo30_rate","index": 262216,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/30_lfo31_enable","varname": "fHslider7","shortname": "MM_LFO_30_lfo31_enable","address": "/modular-fm/MM_LFO_30_lfo31_enable","index": 262208,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/30_lfo31_morph","varname": "fHslider4","shortname": "MM_LFO_30_lfo31_morph","address": "/modular-fm/MM_LFO_30_lfo31_morph","index": 262188,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/30_lfo31_rate","varname": "fHslider5","shortname": "MM_LFO_30_lfo31_rate","address": "/modular-fm/MM_LFO_30_lfo31_rate","index": 262192,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/31_lfo32_enable","varname": "fHslider3","shortname": "MM_LFO_31_lfo32_enable","address": "/modular-fm/MM_LFO_31_lfo32_enable","index": 262184,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/31_lfo32_morph","varname": "fHslider0","shortname": "MM_LFO_31_lfo32_morph","address": "/modular-fm/MM_LFO_31_lfo32_morph","index": 262144,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/31_lfo32_rate","varname": "fHslider1","shortname": "MM_LFO_31_lfo32_rate","address": "/modular-fm/MM_LFO_31_lfo32_rate","index": 262156,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s00_d00_pitch","varname": "fHslider470","shortname": "MM_Matrix_s00_d00_pitch","address": "/modular-fm/MM_Matrix_s00_d00_pitch","index": 264344,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s00_d01_op1_level","varname": "fHslider520","shortname": "MM_Matrix_s00_d01_op1_level","address": "/modular-fm/MM_Matrix_s00_d01_op1_level","index": 264552,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s00_d02_op2_level","varname": "fHslider574","shortname": "MM_Matrix_s00_d02_op2_level","address": "/modular-fm/MM_Matrix_s00_d02_op2_level","index": 264784,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s00_d03_op3_level","varname": "fHslider628","shortname": "MM_Matrix_s00_d03_op3_level","address": "/modular-fm/MM_Matrix_s00_d03_op3_level","index": 265016,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s00_d04_op4_level","varname": "fHslider682","shortname": "MM_Matrix_s00_d04_op4_level","address": "/modular-fm/MM_Matrix_s00_d04_op4_level","index": 265248,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s00_d05_cross_mod_global","varname": "fHslider373","shortname": "MM_Matrix_s00_d05_cross_mod_global","address": "/modular-fm/MM_Matrix_s00_d05_cross_mod_global","index": 263956,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s00_d06_feedback_global","varname": "fHslider321","shortname": "MM_Matrix_s00_d06_feedback_global","address": "/modular-fm/MM_Matrix_s00_d06_feedback_global","index": 263748,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s00_d07_global_ratio","varname": "fHslider421","shortname": "MM_Matrix_s00_d07_global_ratio","address": "/modular-fm/MM_Matrix_s00_d07_global_ratio","index": 264148,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s00_d08_amp","varname": "fHslider273","shortname": "MM_Matrix_s00_d08_amp","address": "/modular-fm/MM_Matrix_s00_d08_amp","index": 263556,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s00_d09_pan","varname": "fHslider222","shortname": "MM_Matrix_s00_d09_pan","address": "/modular-fm/MM_Matrix_s00_d09_pan","index": 263336,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s01_d00_pitch","varname": "fHslider469","shortname": "MM_Matrix_s01_d00_pitch","address": "/modular-fm/MM_Matrix_s01_d00_pitch","index": 264340,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s01_d01_op1_level","varname": "fHslider519","shortname": "MM_Matrix_s01_d01_op1_level","address": "/modular-fm/MM_Matrix_s01_d01_op1_level","index": 264548,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s01_d02_op2_level","varname": "fHslider573","shortname": "MM_Matrix_s01_d02_op2_level","address": "/modular-fm/MM_Matrix_s01_d02_op2_level","index": 264780,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s01_d03_op3_level","varname": "fHslider627","shortname": "MM_Matrix_s01_d03_op3_level","address": "/modular-fm/MM_Matrix_s01_d03_op3_level","index": 265012,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s01_d04_op4_level","varname": "fHslider681","shortname": "MM_Matrix_s01_d04_op4_level","address": "/modular-fm/MM_Matrix_s01_d04_op4_level","index": 265244,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s01_d05_cross_mod_global","varname": "fHslider372","shortname": "MM_Matrix_s01_d05_cross_mod_global","address": "/modular-fm/MM_Matrix_s01_d05_cross_mod_global","index": 263952,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s01_d06_feedback_global","varname": "fHslider320","shortname": "MM_Matrix_s01_d06_feedback_global","address": "/modular-fm/MM_Matrix_s01_d06_feedback_global","index": 263744,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s01_d07_global_ratio","varname": "fHslider420","shortname": "MM_Matrix_s01_d07_global_ratio","address": "/modular-fm/MM_Matrix_s01_d07_global_ratio","index": 264144,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s01_d08_amp","varname": "fHslider272","shortname": "MM_Matrix_s01_d08_amp","address": "/modular-fm/MM_Matrix_s01_d08_amp","index": 263552,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s01_d09_pan","varname": "fHslider216","shortname": "MM_Matrix_s01_d09_pan","address": "/modular-fm/MM_Matrix_s01_d09_pan","index": 263312,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s02_d00_pitch","varname": "fHslider468","shortname": "MM_Matrix_s02_d00_pitch","address": "/modular-fm/MM_Matrix_s02_d00_pitch","index": 264336,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s02_d01_op1_level","varname": "fHslider518","shortname": "MM_Matrix_s02_d01_op1_level","address": "/modular-fm/MM_Matrix_s02_d01_op1_level","index": 264544,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s02_d02_op2_level","varname": "fHslider572","shortname": "MM_Matrix_s02_d02_op2_level","address": "/modular-fm/MM_Matrix_s02_d02_op2_level","index": 264776,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s02_d03_op3_level","varname": "fHslider626","shortname": "MM_Matrix_s02_d03_op3_level","address": "/modular-fm/MM_Matrix_s02_d03_op3_level","index": 265008,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s02_d04_op4_level","varname": "fHslider680","shortname": "MM_Matrix_s02_d04_op4_level","address": "/modular-fm/MM_Matrix_s02_d04_op4_level","index": 265240,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s02_d05_cross_mod_global","varname": "fHslider371","shortname": "MM_Matrix_s02_d05_cross_mod_global","address": "/modular-fm/MM_Matrix_s02_d05_cross_mod_global","index": 263948,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s02_d06_feedback_global","varname": "fHslider319","shortname": "MM_Matrix_s02_d06_feedback_global","address": "/modular-fm/MM_Matrix_s02_d06_feedback_global","index": 263740,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s02_d07_global_ratio","varname": "fHslider419","shortname": "MM_Matrix_s02_d07_global_ratio","address": "/modular-fm/MM_Matrix_s02_d07_global_ratio","index": 264140,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s02_d08_amp","varname": "fHslider271","shortname": "MM_Matrix_s02_d08_amp","address": "/modular-fm/MM_Matrix_s02_d08_amp","index": 263548,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s02_d09_pan","varname": "fHslider210","shortname": "MM_Matrix_s02_d09_pan","address": "/modular-fm/MM_Matrix_s02_d09_pan","index": 263288,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s03_d00_pitch","varname": "fHslider467","shortname": "MM_Matrix_s03_d00_pitch","address": "/modular-fm/MM_Matrix_s03_d00_pitch","index": 264332,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s03_d01_op1_level","varname": "fHslider517","shortname": "MM_Matrix_s03_d01_op1_level","address": "/modular-fm/MM_Matrix_s03_d01_op1_level","index": 264540,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s03_d02_op2_level","varname": "fHslider571","shortname": "MM_Matrix_s03_d02_op2_level","address": "/modular-fm/MM_Matrix_s03_d02_op2_level","index": 264772,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s03_d03_op3_level","varname": "fHslider625","shortname": "MM_Matrix_s03_d03_op3_level","address": "/modular-fm/MM_Matrix_s03_d03_op3_level","index": 265004,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s03_d04_op4_level","varname": "fHslider679","shortname": "MM_Matrix_s03_d04_op4_level","address": "/modular-fm/MM_Matrix_s03_d04_op4_level","index": 265236,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s03_d05_cross_mod_global","varname": "fHslider370","shortname": "MM_Matrix_s03_d05_cross_mod_global","address": "/modular-fm/MM_Matrix_s03_d05_cross_mod_global","index": 263944,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s03_d06_feedback_global","varname": "fHslider318","shortname": "MM_Matrix_s03_d06_feedback_global","address": "/modular-fm/MM_Matrix_s03_d06_feedback_global","index": 263736,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s03_d07_global_ratio","varname": "fHslider418","shortname": "MM_Matrix_s03_d07_global_ratio","address": "/modular-fm/MM_Matrix_s03_d07_global_ratio","index": 264136,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s03_d08_amp","varname": "fHslider270","shortname": "MM_Matrix_s03_d08_amp","address": "/modular-fm/MM_Matrix_s03_d08_amp","index": 263544,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s03_d09_pan","varname": "fHslider204","shortname": "MM_Matrix_s03_d09_pan","address": "/modular-fm/MM_Matrix_s03_d09_pan","index": 263264,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s04_d00_pitch","varname": "fHslider466","shortname": "MM_Matrix_s04_d00_pitch","address": "/modular-fm/MM_Matrix_s04_d00_pitch","index": 264328,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s04_d01_op1_level","varname": "fHslider516","shortname": "MM_Matrix_s04_d01_op1_level","address": "/modular-fm/MM_Matrix_s04_d01_op1_level","index": 264536,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s04_d02_op2_level","varname": "fHslider570","shortname": "MM_Matrix_s04_d02_op2_level","address": "/modular-fm/MM_Matrix_s04_d02_op2_level","index": 264768,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s04_d03_op3_level","varname": "fHslider624","shortname": "MM_Matrix_s04_d03_op3_level","address": "/modular-fm/MM_Matrix_s04_d03_op3_level","index": 265000,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s04_d04_op4_level","varname": "fHslider678","shortname": "MM_Matrix_s04_d04_op4_level","address": "/modular-fm/MM_Matrix_s04_d04_op4_level","index": 265232,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s04_d05_cross_mod_global","varname": "fHslider369","shortname": "MM_Matrix_s04_d05_cross_mod_global","address": "/modular-fm/MM_Matrix_s04_d05_cross_mod_global","index": 263940,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s04_d06_feedback_global","varname": "fHslider317","shortname": "MM_Matrix_s04_d06_feedback_global","address": "/modular-fm/MM_Matrix_s04_d06_feedback_global","index": 263732,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s04_d07_global_ratio","varname": "fHslider417","shortname": "MM_Matrix_s04_d07_global_ratio","address": "/modular-fm/MM_Matrix_s04_d07_global_ratio","index": 264132,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s04_d08_amp","varname": "fHslider269","shortname": "MM_Matrix_s04_d08_amp","address": "/modular-fm/MM_Matrix_s04_d08_amp","index": 263540,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s04_d09_pan","varname": "fHslider198","shortname": "MM_Matrix_s04_d09_pan","address": "/modular-fm/MM_Matrix_s04_d09_pan","index": 263240,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s05_d00_pitch","varname": "fHslider465","shortname": "MM_Matrix_s05_d00_pitch","address": "/modular-fm/MM_Matrix_s05_d00_pitch","index": 264324,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s05_d01_op1_level","varname": "fHslider515","shortname": "MM_Matrix_s05_d01_op1_level","address": "/modular-fm/MM_Matrix_s05_d01_op1_level","index": 264532,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s05_d02_op2_level","varname": "fHslider569","shortname": "MM_Matrix_s05_d02_op2_level","address": "/modular-fm/MM_Matrix_s05_d02_op2_level","index": 264764,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s05_d03_op3_level","varname": "fHslider623","shortname": "MM_Matrix_s05_d03_op3_level","address": "/modular-fm/MM_Matrix_s05_d03_op3_level","index": 264996,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s05_d04_op4_level","varname": "fHslider677","shortname": "MM_Matrix_s05_d04_op4_level","address": "/modular-fm/MM_Matrix_s05_d04_op4_level","index": 265228,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s05_d05_cross_mod_global","varname": "fHslider368","shortname": "MM_Matrix_s05_d05_cross_mod_global","address": "/modular-fm/MM_Matrix_s05_d05_cross_mod_global","index": 263936,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s05_d06_feedback_global","varname": "fHslider316","shortname": "MM_Matrix_s05_d06_feedback_global","address": "/modular-fm/MM_Matrix_s05_d06_feedback_global","index": 263728,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s05_d07_global_ratio","varname": "fHslider416","shortname": "MM_Matrix_s05_d07_global_ratio","address": "/modular-fm/MM_Matrix_s05_d07_global_ratio","index": 264128,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s05_d08_amp","varname": "fHslider268","shortname": "MM_Matrix_s05_d08_amp","address": "/modular-fm/MM_Matrix_s05_d08_amp","index": 263536,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s05_d09_pan","varname": "fHslider192","shortname": "MM_Matrix_s05_d09_pan","address": "/modular-fm/MM_Matrix_s05_d09_pan","index": 263216,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s06_d00_pitch","varname": "fHslider464","shortname": "MM_Matrix_s06_d00_pitch","address": "/modular-fm/MM_Matrix_s06_d00_pitch","index": 264320,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s06_d01_op1_level","varname": "fHslider514","shortname": "MM_Matrix_s06_d01_op1_level","address": "/modular-fm/MM_Matrix_s06_d01_op1_level","index": 264528,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s06_d02_op2_level","varname": "fHslider568","shortname": "MM_Matrix_s06_d02_op2_level","address": "/modular-fm/MM_Matrix_s06_d02_op2_level","index": 264760,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s06_d03_op3_level","varname": "fHslider622","shortname": "MM_Matrix_s06_d03_op3_level","address": "/modular-fm/MM_Matrix_s06_d03_op3_level","index": 264992,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s06_d04_op4_level","varname": "fHslider676","shortname": "MM_Matrix_s06_d04_op4_level","address": "/modular-fm/MM_Matrix_s06_d04_op4_level","index": 265224,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s06_d05_cross_mod_global","varname": "fHslider367","shortname": "MM_Matrix_s06_d05_cross_mod_global","address": "/modular-fm/MM_Matrix_s06_d05_cross_mod_global","index": 263932,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s06_d06_feedback_global","varname": "fHslider315","shortname": "MM_Matrix_s06_d06_feedback_global","address": "/modular-fm/MM_Matrix_s06_d06_feedback_global","index": 263724,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s06_d07_global_ratio","varname": "fHslider415","shortname": "MM_Matrix_s06_d07_global_ratio","address": "/modular-fm/MM_Matrix_s06_d07_global_ratio","index": 264124,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s06_d08_amp","varname": "fHslider267","shortname": "MM_Matrix_s06_d08_amp","address": "/modular-fm/MM_Matrix_s06_d08_amp","index": 263532,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s06_d09_pan","varname": "fHslider186","shortname": "MM_Matrix_s06_d09_pan","address": "/modular-fm/MM_Matrix_s06_d09_pan","index": 263192,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s07_d00_pitch","varname": "fHslider463","shortname": "MM_Matrix_s07_d00_pitch","address": "/modular-fm/MM_Matrix_s07_d00_pitch","index": 264316,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s07_d01_op1_level","varname": "fHslider513","shortname": "MM_Matrix_s07_d01_op1_level","address": "/modular-fm/MM_Matrix_s07_d01_op1_level","index": 264524,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s07_d02_op2_level","varname": "fHslider567","shortname": "MM_Matrix_s07_d02_op2_level","address": "/modular-fm/MM_Matrix_s07_d02_op2_level","index": 264756,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s07_d03_op3_level","varname": "fHslider621","shortname": "MM_Matrix_s07_d03_op3_level","address": "/modular-fm/MM_Matrix_s07_d03_op3_level","index": 264988,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s07_d04_op4_level","varname": "fHslider675","shortname": "MM_Matrix_s07_d04_op4_level","address": "/modular-fm/MM_Matrix_s07_d04_op4_level","index": 265220,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s07_d05_cross_mod_global","varname": "fHslider366","shortname": "MM_Matrix_s07_d05_cross_mod_global","address": "/modular-fm/MM_Matrix_s07_d05_cross_mod_global","index": 263928,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s07_d06_feedback_global","varname": "fHslider314","shortname": "MM_Matrix_s07_d06_feedback_global","address": "/modular-fm/MM_Matrix_s07_d06_feedback_global","index": 263720,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s07_d07_global_ratio","varname": "fHslider414","shortname": "MM_Matrix_s07_d07_global_ratio","address": "/modular-fm/MM_Matrix_s07_d07_global_ratio","index": 264120,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s07_d08_amp","varname": "fHslider266","shortname": "MM_Matrix_s07_d08_amp","address": "/modular-fm/MM_Matrix_s07_d08_amp","index": 263528,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s07_d09_pan","varname": "fHslider180","shortname": "MM_Matrix_s07_d09_pan","address": "/modular-fm/MM_Matrix_s07_d09_pan","index": 263168,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s08_d00_pitch","varname": "fHslider462","shortname": "MM_Matrix_s08_d00_pitch","address": "/modular-fm/MM_Matrix_s08_d00_pitch","index": 264312,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s08_d01_op1_level","varname": "fHslider512","shortname": "MM_Matrix_s08_d01_op1_level","address": "/modular-fm/MM_Matrix_s08_d01_op1_level","index": 264520,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s08_d02_op2_level","varname": "fHslider566","shortname": "MM_Matrix_s08_d02_op2_level","address": "/modular-fm/MM_Matrix_s08_d02_op2_level","index": 264752,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s08_d03_op3_level","varname": "fHslider620","shortname": "MM_Matrix_s08_d03_op3_level","address": "/modular-fm/MM_Matrix_s08_d03_op3_level","index": 264984,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s08_d04_op4_level","varname": "fHslider674","shortname": "MM_Matrix_s08_d04_op4_level","address": "/modular-fm/MM_Matrix_s08_d04_op4_level","index": 265216,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s08_d05_cross_mod_global","varname": "fHslider365","shortname": "MM_Matrix_s08_d05_cross_mod_global","address": "/modular-fm/MM_Matrix_s08_d05_cross_mod_global","index": 263924,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s08_d06_feedback_global","varname": "fHslider313","shortname": "MM_Matrix_s08_d06_feedback_global","address": "/modular-fm/MM_Matrix_s08_d06_feedback_global","index": 263716,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s08_d07_global_ratio","varname": "fHslider413","shortname": "MM_Matrix_s08_d07_global_ratio","address": "/modular-fm/MM_Matrix_s08_d07_global_ratio","index": 264116,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s08_d08_amp","varname": "fHslider265","shortname": "MM_Matrix_s08_d08_amp","address": "/modular-fm/MM_Matrix_s08_d08_amp","index": 263524,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s08_d09_pan","varname": "fHslider174","shortname": "MM_Matrix_s08_d09_pan","address": "/modular-fm/MM_Matrix_s08_d09_pan","index": 263144,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s09_d00_pitch","varname": "fHslider461","shortname": "MM_Matrix_s09_d00_pitch","address": "/modular-fm/MM_Matrix_s09_d00_pitch","index": 264308,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s09_d01_op1_level","varname": "fHslider511","shortname": "MM_Matrix_s09_d01_op1_level","address": "/modular-fm/MM_Matrix_s09_d01_op1_level","index": 264516,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s09_d02_op2_level","varname": "fHslider565","shortname": "MM_Matrix_s09_d02_op2_level","address": "/modular-fm/MM_Matrix_s09_d02_op2_level","index": 264748,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s09_d03_op3_level","varname": "fHslider619","shortname": "MM_Matrix_s09_d03_op3_level","address": "/modular-fm/MM_Matrix_s09_d03_op3_level","index": 264980,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s09_d04_op4_level","varname": "fHslider673","shortname": "MM_Matrix_s09_d04_op4_level","address": "/modular-fm/MM_Matrix_s09_d04_op4_level","index": 265212,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s09_d05_cross_mod_global","varname": "fHslider364","shortname": "MM_Matrix_s09_d05_cross_mod_global","address": "/modular-fm/MM_Matrix_s09_d05_cross_mod_global","index": 263920,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s09_d06_feedback_global","varname": "fHslider312","shortname": "MM_Matrix_s09_d06_feedback_global","address": "/modular-fm/MM_Matrix_s09_d06_feedback_global","index": 263712,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s09_d07_global_ratio","varname": "fHslider412","shortname": "MM_Matrix_s09_d07_global_ratio","address": "/modular-fm/MM_Matrix_s09_d07_global_ratio","index": 264112,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s09_d08_amp","varname": "fHslider264","shortname": "MM_Matrix_s09_d08_amp","address": "/modular-fm/MM_Matrix_s09_d08_amp","index": 263520,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s09_d09_pan","varname": "fHslider168","shortname": "MM_Matrix_s09_d09_pan","address": "/modular-fm/MM_Matrix_s09_d09_pan","index": 263120,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s10_d00_pitch","varname": "fHslider460","shortname": "MM_Matrix_s10_d00_pitch","address": "/modular-fm/MM_Matrix_s10_d00_pitch","index": 264304,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s10_d01_op1_level","varname": "fHslider510","shortname": "MM_Matrix_s10_d01_op1_level","address": "/modular-fm/MM_Matrix_s10_d01_op1_level","index": 264512,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s10_d02_op2_level","varname": "fHslider564","shortname": "MM_Matrix_s10_d02_op2_level","address": "/modular-fm/MM_Matrix_s10_d02_op2_level","index": 264744,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s10_d03_op3_level","varname": "fHslider618","shortname": "MM_Matrix_s10_d03_op3_level","address": "/modular-fm/MM_Matrix_s10_d03_op3_level","index": 264976,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s10_d04_op4_level","varname": "fHslider672","shortname": "MM_Matrix_s10_d04_op4_level","address": "/modular-fm/MM_Matrix_s10_d04_op4_level","index": 265208,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s10_d05_cross_mod_global","varname": "fHslider363","shortname": "MM_Matrix_s10_d05_cross_mod_global","address": "/modular-fm/MM_Matrix_s10_d05_cross_mod_global","index": 263916,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s10_d06_feedback_global","varname": "fHslider311","shortname": "MM_Matrix_s10_d06_feedback_global","address": "/modular-fm/MM_Matrix_s10_d06_feedback_global","index": 263708,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s10_d07_global_ratio","varname": "fHslider411","shortname": "MM_Matrix_s10_d07_global_ratio","address": "/modular-fm/MM_Matrix_s10_d07_global_ratio","index": 264108,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s10_d08_amp","varname": "fHslider263","shortname": "MM_Matrix_s10_d08_amp","address": "/modular-fm/MM_Matrix_s10_d08_amp","index": 263516,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s10_d09_pan","varname": "fHslider162","shortname": "MM_Matrix_s10_d09_pan","address": "/modular-fm/MM_Matrix_s10_d09_pan","index": 263096,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s11_d00_pitch","varname": "fHslider459","shortname": "MM_Matrix_s11_d00_pitch","address": "/modular-fm/MM_Matrix_s11_d00_pitch","index": 264300,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s11_d01_op1_level","varname": "fHslider509","shortname": "MM_Matrix_s11_d01_op1_level","address": "/modular-fm/MM_Matrix_s11_d01_op1_level","index": 264508,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s11_d02_op2_level","varname": "fHslider563","shortname": "MM_Matrix_s11_d02_op2_level","address": "/modular-fm/MM_Matrix_s11_d02_op2_level","index": 264740,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s11_d03_op3_level","varname": "fHslider617","shortname": "MM_Matrix_s11_d03_op3_level","address": "/modular-fm/MM_Matrix_s11_d03_op3_level","index": 264972,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s11_d04_op4_level","varname": "fHslider671","shortname": "MM_Matrix_s11_d04_op4_level","address": "/modular-fm/MM_Matrix_s11_d04_op4_level","index": 265204,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s11_d05_cross_mod_global","varname": "fHslider362","shortname": "MM_Matrix_s11_d05_cross_mod_global","address": "/modular-fm/MM_Matrix_s11_d05_cross_mod_global","index": 263912,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s11_d06_feedback_global","varname": "fHslider310","shortname": "MM_Matrix_s11_d06_feedback_global","address": "/modular-fm/MM_Matrix_s11_d06_feedback_global","index": 263704,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s11_d07_global_ratio","varname": "fHslider410","shortname": "MM_Matrix_s11_d07_global_ratio","address": "/modular-fm/MM_Matrix_s11_d07_global_ratio","index": 264104,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s11_d08_amp","varname": "fHslider262","shortname": "MM_Matrix_s11_d08_amp","address": "/modular-fm/MM_Matrix_s11_d08_amp","index": 263512,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s11_d09_pan","varname": "fHslider156","shortname": "MM_Matrix_s11_d09_pan","address": "/modular-fm/MM_Matrix_s11_d09_pan","index": 263072,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s12_d00_pitch","varname": "fHslider458","shortname": "MM_Matrix_s12_d00_pitch","address": "/modular-fm/MM_Matrix_s12_d00_pitch","index": 264296,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s12_d01_op1_level","varname": "fHslider508","shortname": "MM_Matrix_s12_d01_op1_level","address": "/modular-fm/MM_Matrix_s12_d01_op1_level","index": 264504,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s12_d02_op2_level","varname": "fHslider562","shortname": "MM_Matrix_s12_d02_op2_level","address": "/modular-fm/MM_Matrix_s12_d02_op2_level","index": 264736,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s12_d03_op3_level","varname": "fHslider616","shortname": "MM_Matrix_s12_d03_op3_level","address": "/modular-fm/MM_Matrix_s12_d03_op3_level","index": 264968,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s12_d04_op4_level","varname": "fHslider670","shortname": "MM_Matrix_s12_d04_op4_level","address": "/modular-fm/MM_Matrix_s12_d04_op4_level","index": 265200,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s12_d05_cross_mod_global","varname": "fHslider361","shortname": "MM_Matrix_s12_d05_cross_mod_global","address": "/modular-fm/MM_Matrix_s12_d05_cross_mod_global","index": 263908,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s12_d06_feedback_global","varname": "fHslider309","shortname": "MM_Matrix_s12_d06_feedback_global","address": "/modular-fm/MM_Matrix_s12_d06_feedback_global","index": 263700,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s12_d07_global_ratio","varname": "fHslider409","shortname": "MM_Matrix_s12_d07_global_ratio","address": "/modular-fm/MM_Matrix_s12_d07_global_ratio","index": 264100,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s12_d08_amp","varname": "fHslider261","shortname": "MM_Matrix_s12_d08_amp","address": "/modular-fm/MM_Matrix_s12_d08_amp","index": 263508,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s12_d09_pan","varname": "fHslider150","shortname": "MM_Matrix_s12_d09_pan","address": "/modular-fm/MM_Matrix_s12_d09_pan","index": 263048,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s13_d00_pitch","varname": "fHslider457","shortname": "MM_Matrix_s13_d00_pitch","address": "/modular-fm/MM_Matrix_s13_d00_pitch","index": 264292,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s13_d01_op1_level","varname": "fHslider507","shortname": "MM_Matrix_s13_d01_op1_level","address": "/modular-fm/MM_Matrix_s13_d01_op1_level","index": 264500,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s13_d02_op2_level","varname": "fHslider561","shortname": "MM_Matrix_s13_d02_op2_level","address": "/modular-fm/MM_Matrix_s13_d02_op2_level","index": 264732,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s13_d03_op3_level","varname": "fHslider615","shortname": "MM_Matrix_s13_d03_op3_level","address": "/modular-fm/MM_Matrix_s13_d03_op3_level","index": 264964,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s13_d04_op4_level","varname": "fHslider669","shortname": "MM_Matrix_s13_d04_op4_level","address": "/modular-fm/MM_Matrix_s13_d04_op4_level","index": 265196,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s13_d05_cross_mod_global","varname": "fHslider360","shortname": "MM_Matrix_s13_d05_cross_mod_global","address": "/modular-fm/MM_Matrix_s13_d05_cross_mod_global","index": 263904,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s13_d06_feedback_global","varname": "fHslider308","shortname": "MM_Matrix_s13_d06_feedback_global","address": "/modular-fm/MM_Matrix_s13_d06_feedback_global","index": 263696,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s13_d07_global_ratio","varname": "fHslider408","shortname": "MM_Matrix_s13_d07_global_ratio","address": "/modular-fm/MM_Matrix_s13_d07_global_ratio","index": 264096,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s13_d08_amp","varname": "fHslider260","shortname": "MM_Matrix_s13_d08_amp","address": "/modular-fm/MM_Matrix_s13_d08_amp","index": 263504,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s13_d09_pan","varname": "fHslider144","shortname": "MM_Matrix_s13_d09_pan","address": "/modular-fm/MM_Matrix_s13_d09_pan","index": 263024,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s14_d00_pitch","varname": "fHslider456","shortname": "MM_Matrix_s14_d00_pitch","address": "/modular-fm/MM_Matrix_s14_d00_pitch","index": 264288,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s14_d01_op1_level","varname": "fHslider506","shortname": "MM_Matrix_s14_d01_op1_level","address": "/modular-fm/MM_Matrix_s14_d01_op1_level","index": 264496,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s14_d02_op2_level","varname": "fHslider560","shortname": "MM_Matrix_s14_d02_op2_level","address": "/modular-fm/MM_Matrix_s14_d02_op2_level","index": 264728,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s14_d03_op3_level","varname": "fHslider614","shortname": "MM_Matrix_s14_d03_op3_level","address": "/modular-fm/MM_Matrix_s14_d03_op3_level","index": 264960,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s14_d04_op4_level","varname": "fHslider668","shortname": "MM_Matrix_s14_d04_op4_level","address": "/modular-fm/MM_Matrix_s14_d04_op4_level","index": 265192,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s14_d05_cross_mod_global","varname": "fHslider359","shortname": "MM_Matrix_s14_d05_cross_mod_global","address": "/modular-fm/MM_Matrix_s14_d05_cross_mod_global","index": 263900,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s14_d06_feedback_global","varname": "fHslider307","shortname": "MM_Matrix_s14_d06_feedback_global","address": "/modular-fm/MM_Matrix_s14_d06_feedback_global","index": 263692,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s14_d07_global_ratio","varname": "fHslider407","shortname": "MM_Matrix_s14_d07_global_ratio","address": "/modular-fm/MM_Matrix_s14_d07_global_ratio","index": 264092,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s14_d08_amp","varname": "fHslider259","shortname": "MM_Matrix_s14_d08_amp","address": "/modular-fm/MM_Matrix_s14_d08_amp","index": 263500,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s14_d09_pan","varname": "fHslider138","shortname": "MM_Matrix_s14_d09_pan","address": "/modular-fm/MM_Matrix_s14_d09_pan","index": 263000,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s15_d00_pitch","varname": "fHslider455","shortname": "MM_Matrix_s15_d00_pitch","address": "/modular-fm/MM_Matrix_s15_d00_pitch","index": 264284,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s15_d01_op1_level","varname": "fHslider505","shortname": "MM_Matrix_s15_d01_op1_level","address": "/modular-fm/MM_Matrix_s15_d01_op1_level","index": 264492,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s15_d02_op2_level","varname": "fHslider559","shortname": "MM_Matrix_s15_d02_op2_level","address": "/modular-fm/MM_Matrix_s15_d02_op2_level","index": 264724,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s15_d03_op3_level","varname": "fHslider613","shortname": "MM_Matrix_s15_d03_op3_level","address": "/modular-fm/MM_Matrix_s15_d03_op3_level","index": 264956,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s15_d04_op4_level","varname": "fHslider667","shortname": "MM_Matrix_s15_d04_op4_level","address": "/modular-fm/MM_Matrix_s15_d04_op4_level","index": 265188,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s15_d05_cross_mod_global","varname": "fHslider358","shortname": "MM_Matrix_s15_d05_cross_mod_global","address": "/modular-fm/MM_Matrix_s15_d05_cross_mod_global","index": 263896,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s15_d06_feedback_global","varname": "fHslider306","shortname": "MM_Matrix_s15_d06_feedback_global","address": "/modular-fm/MM_Matrix_s15_d06_feedback_global","index": 263688,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s15_d07_global_ratio","varname": "fHslider406","shortname": "MM_Matrix_s15_d07_global_ratio","address": "/modular-fm/MM_Matrix_s15_d07_global_ratio","index": 264088,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s15_d08_amp","varname": "fHslider258","shortname": "MM_Matrix_s15_d08_amp","address": "/modular-fm/MM_Matrix_s15_d08_amp","index": 263496,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s15_d09_pan","varname": "fHslider132","shortname": "MM_Matrix_s15_d09_pan","address": "/modular-fm/MM_Matrix_s15_d09_pan","index": 262976,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s16_d00_pitch","varname": "fHslider454","shortname": "MM_Matrix_s16_d00_pitch","address": "/modular-fm/MM_Matrix_s16_d00_pitch","index": 264280,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s16_d01_op1_level","varname": "fHslider504","shortname": "MM_Matrix_s16_d01_op1_level","address": "/modular-fm/MM_Matrix_s16_d01_op1_level","index": 264488,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s16_d02_op2_level","varname": "fHslider558","shortname": "MM_Matrix_s16_d02_op2_level","address": "/modular-fm/MM_Matrix_s16_d02_op2_level","index": 264720,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s16_d03_op3_level","varname": "fHslider612","shortname": "MM_Matrix_s16_d03_op3_level","address": "/modular-fm/MM_Matrix_s16_d03_op3_level","index": 264952,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s16_d04_op4_level","varname": "fHslider666","shortname": "MM_Matrix_s16_d04_op4_level","address": "/modular-fm/MM_Matrix_s16_d04_op4_level","index": 265184,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s16_d05_cross_mod_global","varname": "fHslider357","shortname": "MM_Matrix_s16_d05_cross_mod_global","address": "/modular-fm/MM_Matrix_s16_d05_cross_mod_global","index": 263892,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s16_d06_feedback_global","varname": "fHslider305","shortname": "MM_Matrix_s16_d06_feedback_global","address": "/modular-fm/MM_Matrix_s16_d06_feedback_global","index": 263684,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s16_d07_global_ratio","varname": "fHslider405","shortname": "MM_Matrix_s16_d07_global_ratio","address": "/modular-fm/MM_Matrix_s16_d07_global_ratio","index": 264084,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s16_d08_amp","varname": "fHslider257","shortname": "MM_Matrix_s16_d08_amp","address": "/modular-fm/MM_Matrix_s16_d08_amp","index": 263492,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s16_d09_pan","varname": "fHslider126","shortname": "MM_Matrix_s16_d09_pan","address": "/modular-fm/MM_Matrix_s16_d09_pan","index": 262924,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s17_d00_pitch","varname": "fHslider453","shortname": "MM_Matrix_s17_d00_pitch","address": "/modular-fm/MM_Matrix_s17_d00_pitch","index": 264276,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s17_d01_op1_level","varname": "fHslider503","shortname": "MM_Matrix_s17_d01_op1_level","address": "/modular-fm/MM_Matrix_s17_d01_op1_level","index": 264484,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s17_d02_op2_level","varname": "fHslider557","shortname": "MM_Matrix_s17_d02_op2_level","address": "/modular-fm/MM_Matrix_s17_d02_op2_level","index": 264716,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s17_d03_op3_level","varname": "fHslider611","shortname": "MM_Matrix_s17_d03_op3_level","address": "/modular-fm/MM_Matrix_s17_d03_op3_level","index": 264948,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s17_d04_op4_level","varname": "fHslider665","shortname": "MM_Matrix_s17_d04_op4_level","address": "/modular-fm/MM_Matrix_s17_d04_op4_level","index": 265180,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s17_d05_cross_mod_global","varname": "fHslider356","shortname": "MM_Matrix_s17_d05_cross_mod_global","address": "/modular-fm/MM_Matrix_s17_d05_cross_mod_global","index": 263888,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s17_d06_feedback_global","varname": "fHslider304","shortname": "MM_Matrix_s17_d06_feedback_global","address": "/modular-fm/MM_Matrix_s17_d06_feedback_global","index": 263680,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s17_d07_global_ratio","varname": "fHslider404","shortname": "MM_Matrix_s17_d07_global_ratio","address": "/modular-fm/MM_Matrix_s17_d07_global_ratio","index": 264080,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s17_d08_amp","varname": "fHslider256","shortname": "MM_Matrix_s17_d08_amp","address": "/modular-fm/MM_Matrix_s17_d08_amp","index": 263488,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s17_d09_pan","varname": "fHslider122","shortname": "MM_Matrix_s17_d09_pan","address": "/modular-fm/MM_Matrix_s17_d09_pan","index": 262900,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s18_d00_pitch","varname": "fHslider452","shortname": "MM_Matrix_s18_d00_pitch","address": "/modular-fm/MM_Matrix_s18_d00_pitch","index": 264272,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s18_d01_op1_level","varname": "fHslider502","shortname": "MM_Matrix_s18_d01_op1_level","address": "/modular-fm/MM_Matrix_s18_d01_op1_level","index": 264480,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s18_d02_op2_level","varname": "fHslider556","shortname": "MM_Matrix_s18_d02_op2_level","address": "/modular-fm/MM_Matrix_s18_d02_op2_level","index": 264712,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s18_d03_op3_level","varname": "fHslider610","shortname": "MM_Matrix_s18_d03_op3_level","address": "/modular-fm/MM_Matrix_s18_d03_op3_level","index": 264944,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s18_d04_op4_level","varname": "fHslider664","shortname": "MM_Matrix_s18_d04_op4_level","address": "/modular-fm/MM_Matrix_s18_d04_op4_level","index": 265176,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s18_d05_cross_mod_global","varname": "fHslider355","shortname": "MM_Matrix_s18_d05_cross_mod_global","address": "/modular-fm/MM_Matrix_s18_d05_cross_mod_global","index": 263884,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s18_d06_feedback_global","varname": "fHslider303","shortname": "MM_Matrix_s18_d06_feedback_global","address": "/modular-fm/MM_Matrix_s18_d06_feedback_global","index": 263676,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s18_d07_global_ratio","varname": "fHslider403","shortname": "MM_Matrix_s18_d07_global_ratio","address": "/modular-fm/MM_Matrix_s18_d07_global_ratio","index": 264076,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s18_d08_amp","varname": "fHslider255","shortname": "MM_Matrix_s18_d08_amp","address": "/modular-fm/MM_Matrix_s18_d08_amp","index": 263484,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s18_d09_pan","varname": "fHslider118","shortname": "MM_Matrix_s18_d09_pan","address": "/modular-fm/MM_Matrix_s18_d09_pan","index": 262876,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s19_d00_pitch","varname": "fHslider451","shortname": "MM_Matrix_s19_d00_pitch","address": "/modular-fm/MM_Matrix_s19_d00_pitch","index": 264268,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s19_d01_op1_level","varname": "fHslider501","shortname": "MM_Matrix_s19_d01_op1_level","address": "/modular-fm/MM_Matrix_s19_d01_op1_level","index": 264476,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s19_d02_op2_level","varname": "fHslider555","shortname": "MM_Matrix_s19_d02_op2_level","address": "/modular-fm/MM_Matrix_s19_d02_op2_level","index": 264708,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s19_d03_op3_level","varname": "fHslider609","shortname": "MM_Matrix_s19_d03_op3_level","address": "/modular-fm/MM_Matrix_s19_d03_op3_level","index": 264940,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s19_d04_op4_level","varname": "fHslider663","shortname": "MM_Matrix_s19_d04_op4_level","address": "/modular-fm/MM_Matrix_s19_d04_op4_level","index": 265172,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s19_d05_cross_mod_global","varname": "fHslider354","shortname": "MM_Matrix_s19_d05_cross_mod_global","address": "/modular-fm/MM_Matrix_s19_d05_cross_mod_global","index": 263880,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s19_d06_feedback_global","varname": "fHslider302","shortname": "MM_Matrix_s19_d06_feedback_global","address": "/modular-fm/MM_Matrix_s19_d06_feedback_global","index": 263672,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s19_d07_global_ratio","varname": "fHslider402","shortname": "MM_Matrix_s19_d07_global_ratio","address": "/modular-fm/MM_Matrix_s19_d07_global_ratio","index": 264072,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s19_d08_amp","varname": "fHslider254","shortname": "MM_Matrix_s19_d08_amp","address": "/modular-fm/MM_Matrix_s19_d08_amp","index": 263480,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s19_d09_pan","varname": "fHslider114","shortname": "MM_Matrix_s19_d09_pan","address": "/modular-fm/MM_Matrix_s19_d09_pan","index": 262852,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s20_d00_pitch","varname": "fHslider450","shortname": "MM_Matrix_s20_d00_pitch","address": "/modular-fm/MM_Matrix_s20_d00_pitch","index": 264264,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s20_d01_op1_level","varname": "fHslider500","shortname": "MM_Matrix_s20_d01_op1_level","address": "/modular-fm/MM_Matrix_s20_d01_op1_level","index": 264472,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s20_d02_op2_level","varname": "fHslider554","shortname": "MM_Matrix_s20_d02_op2_level","address": "/modular-fm/MM_Matrix_s20_d02_op2_level","index": 264704,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s20_d03_op3_level","varname": "fHslider608","shortname": "MM_Matrix_s20_d03_op3_level","address": "/modular-fm/MM_Matrix_s20_d03_op3_level","index": 264936,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s20_d04_op4_level","varname": "fHslider662","shortname": "MM_Matrix_s20_d04_op4_level","address": "/modular-fm/MM_Matrix_s20_d04_op4_level","index": 265168,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s20_d05_cross_mod_global","varname": "fHslider353","shortname": "MM_Matrix_s20_d05_cross_mod_global","address": "/modular-fm/MM_Matrix_s20_d05_cross_mod_global","index": 263876,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s20_d06_feedback_global","varname": "fHslider301","shortname": "MM_Matrix_s20_d06_feedback_global","address": "/modular-fm/MM_Matrix_s20_d06_feedback_global","index": 263668,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s20_d07_global_ratio","varname": "fHslider401","shortname": "MM_Matrix_s20_d07_global_ratio","address": "/modular-fm/MM_Matrix_s20_d07_global_ratio","index": 264068,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s20_d08_amp","varname": "fHslider253","shortname": "MM_Matrix_s20_d08_amp","address": "/modular-fm/MM_Matrix_s20_d08_amp","index": 263476,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s20_d09_pan","varname": "fHslider110","shortname": "MM_Matrix_s20_d09_pan","address": "/modular-fm/MM_Matrix_s20_d09_pan","index": 262828,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s21_d00_pitch","varname": "fHslider449","shortname": "MM_Matrix_s21_d00_pitch","address": "/modular-fm/MM_Matrix_s21_d00_pitch","index": 264260,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s21_d01_op1_level","varname": "fHslider499","shortname": "MM_Matrix_s21_d01_op1_level","address": "/modular-fm/MM_Matrix_s21_d01_op1_level","index": 264468,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s21_d02_op2_level","varname": "fHslider553","shortname": "MM_Matrix_s21_d02_op2_level","address": "/modular-fm/MM_Matrix_s21_d02_op2_level","index": 264700,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s21_d03_op3_level","varname": "fHslider607","shortname": "MM_Matrix_s21_d03_op3_level","address": "/modular-fm/MM_Matrix_s21_d03_op3_level","index": 264932,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s21_d04_op4_level","varname": "fHslider661","shortname": "MM_Matrix_s21_d04_op4_level","address": "/modular-fm/MM_Matrix_s21_d04_op4_level","index": 265164,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s21_d05_cross_mod_global","varname": "fHslider352","shortname": "MM_Matrix_s21_d05_cross_mod_global","address": "/modular-fm/MM_Matrix_s21_d05_cross_mod_global","index": 263872,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s21_d06_feedback_global","varname": "fHslider300","shortname": "MM_Matrix_s21_d06_feedback_global","address": "/modular-fm/MM_Matrix_s21_d06_feedback_global","index": 263664,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s21_d07_global_ratio","varname": "fHslider400","shortname": "MM_Matrix_s21_d07_global_ratio","address": "/modular-fm/MM_Matrix_s21_d07_global_ratio","index": 264064,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s21_d08_amp","varname": "fHslider252","shortname": "MM_Matrix_s21_d08_amp","address": "/modular-fm/MM_Matrix_s21_d08_amp","index": 263472,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s21_d09_pan","varname": "fHslider106","shortname": "MM_Matrix_s21_d09_pan","address": "/modular-fm/MM_Matrix_s21_d09_pan","index": 262804,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s22_d00_pitch","varname": "fHslider448","shortname": "MM_Matrix_s22_d00_pitch","address": "/modular-fm/MM_Matrix_s22_d00_pitch","index": 264256,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s22_d01_op1_level","varname": "fHslider498","shortname": "MM_Matrix_s22_d01_op1_level","address": "/modular-fm/MM_Matrix_s22_d01_op1_level","index": 264464,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s22_d02_op2_level","varname": "fHslider552","shortname": "MM_Matrix_s22_d02_op2_level","address": "/modular-fm/MM_Matrix_s22_d02_op2_level","index": 264696,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s22_d03_op3_level","varname": "fHslider606","shortname": "MM_Matrix_s22_d03_op3_level","address": "/modular-fm/MM_Matrix_s22_d03_op3_level","index": 264928,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s22_d04_op4_level","varname": "fHslider660","shortname": "MM_Matrix_s22_d04_op4_level","address": "/modular-fm/MM_Matrix_s22_d04_op4_level","index": 265160,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s22_d05_cross_mod_global","varname": "fHslider351","shortname": "MM_Matrix_s22_d05_cross_mod_global","address": "/modular-fm/MM_Matrix_s22_d05_cross_mod_global","index": 263868,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s22_d06_feedback_global","varname": "fHslider299","shortname": "MM_Matrix_s22_d06_feedback_global","address": "/modular-fm/MM_Matrix_s22_d06_feedback_global","index": 263660,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s22_d07_global_ratio","varname": "fHslider399","shortname": "MM_Matrix_s22_d07_global_ratio","address": "/modular-fm/MM_Matrix_s22_d07_global_ratio","index": 264060,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s22_d08_amp","varname": "fHslider251","shortname": "MM_Matrix_s22_d08_amp","address": "/modular-fm/MM_Matrix_s22_d08_amp","index": 263468,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s22_d09_pan","varname": "fHslider102","shortname": "MM_Matrix_s22_d09_pan","address": "/modular-fm/MM_Matrix_s22_d09_pan","index": 262780,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s23_d00_pitch","varname": "fHslider447","shortname": "MM_Matrix_s23_d00_pitch","address": "/modular-fm/MM_Matrix_s23_d00_pitch","index": 264252,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s23_d01_op1_level","varname": "fHslider497","shortname": "MM_Matrix_s23_d01_op1_level","address": "/modular-fm/MM_Matrix_s23_d01_op1_level","index": 264460,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s23_d02_op2_level","varname": "fHslider551","shortname": "MM_Matrix_s23_d02_op2_level","address": "/modular-fm/MM_Matrix_s23_d02_op2_level","index": 264692,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s23_d03_op3_level","varname": "fHslider605","shortname": "MM_Matrix_s23_d03_op3_level","address": "/modular-fm/MM_Matrix_s23_d03_op3_level","index": 264924,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s23_d04_op4_level","varname": "fHslider659","shortname": "MM_Matrix_s23_d04_op4_level","address": "/modular-fm/MM_Matrix_s23_d04_op4_level","index": 265156,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s23_d05_cross_mod_global","varname": "fHslider350","shortname": "MM_Matrix_s23_d05_cross_mod_global","address": "/modular-fm/MM_Matrix_s23_d05_cross_mod_global","index": 263864,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s23_d06_feedback_global","varname": "fHslider298","shortname": "MM_Matrix_s23_d06_feedback_global","address": "/modular-fm/MM_Matrix_s23_d06_feedback_global","index": 263656,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s23_d07_global_ratio","varname": "fHslider398","shortname": "MM_Matrix_s23_d07_global_ratio","address": "/modular-fm/MM_Matrix_s23_d07_global_ratio","index": 264056,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s23_d08_amp","varname": "fHslider250","shortname": "MM_Matrix_s23_d08_amp","address": "/modular-fm/MM_Matrix_s23_d08_amp","index": 263464,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s23_d09_pan","varname": "fHslider98","shortname": "MM_Matrix_s23_d09_pan","address": "/modular-fm/MM_Matrix_s23_d09_pan","index": 262756,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s24_d00_pitch","varname": "fHslider446","shortname": "MM_Matrix_s24_d00_pitch","address": "/modular-fm/MM_Matrix_s24_d00_pitch","index": 264248,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s24_d01_op1_level","varname": "fHslider496","shortname": "MM_Matrix_s24_d01_op1_level","address": "/modular-fm/MM_Matrix_s24_d01_op1_level","index": 264456,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s24_d02_op2_level","varname": "fHslider550","shortname": "MM_Matrix_s24_d02_op2_level","address": "/modular-fm/MM_Matrix_s24_d02_op2_level","index": 264688,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s24_d03_op3_level","varname": "fHslider604","shortname": "MM_Matrix_s24_d03_op3_level","address": "/modular-fm/MM_Matrix_s24_d03_op3_level","index": 264920,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s24_d04_op4_level","varname": "fHslider658","shortname": "MM_Matrix_s24_d04_op4_level","address": "/modular-fm/MM_Matrix_s24_d04_op4_level","index": 265152,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s24_d05_cross_mod_global","varname": "fHslider349","shortname": "MM_Matrix_s24_d05_cross_mod_global","address": "/modular-fm/MM_Matrix_s24_d05_cross_mod_global","index": 263860,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s24_d06_feedback_global","varname": "fHslider297","shortname": "MM_Matrix_s24_d06_feedback_global","address": "/modular-fm/MM_Matrix_s24_d06_feedback_global","index": 263652,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s24_d07_global_ratio","varname": "fHslider397","shortname": "MM_Matrix_s24_d07_global_ratio","address": "/modular-fm/MM_Matrix_s24_d07_global_ratio","index": 264052,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s24_d08_amp","varname": "fHslider249","shortname": "MM_Matrix_s24_d08_amp","address": "/modular-fm/MM_Matrix_s24_d08_amp","index": 263460,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s24_d09_pan","varname": "fHslider94","shortname": "MM_Matrix_s24_d09_pan","address": "/modular-fm/MM_Matrix_s24_d09_pan","index": 262732,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s25_d00_pitch","varname": "fHslider445","shortname": "MM_Matrix_s25_d00_pitch","address": "/modular-fm/MM_Matrix_s25_d00_pitch","index": 264244,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s25_d01_op1_level","varname": "fHslider495","shortname": "MM_Matrix_s25_d01_op1_level","address": "/modular-fm/MM_Matrix_s25_d01_op1_level","index": 264452,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s25_d02_op2_level","varname": "fHslider549","shortname": "MM_Matrix_s25_d02_op2_level","address": "/modular-fm/MM_Matrix_s25_d02_op2_level","index": 264684,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s25_d03_op3_level","varname": "fHslider603","shortname": "MM_Matrix_s25_d03_op3_level","address": "/modular-fm/MM_Matrix_s25_d03_op3_level","index": 264916,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s25_d04_op4_level","varname": "fHslider657","shortname": "MM_Matrix_s25_d04_op4_level","address": "/modular-fm/MM_Matrix_s25_d04_op4_level","index": 265148,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s25_d05_cross_mod_global","varname": "fHslider348","shortname": "MM_Matrix_s25_d05_cross_mod_global","address": "/modular-fm/MM_Matrix_s25_d05_cross_mod_global","index": 263856,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s25_d06_feedback_global","varname": "fHslider296","shortname": "MM_Matrix_s25_d06_feedback_global","address": "/modular-fm/MM_Matrix_s25_d06_feedback_global","index": 263648,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s25_d07_global_ratio","varname": "fHslider396","shortname": "MM_Matrix_s25_d07_global_ratio","address": "/modular-fm/MM_Matrix_s25_d07_global_ratio","index": 264048,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s25_d08_amp","varname": "fHslider248","shortname": "MM_Matrix_s25_d08_amp","address": "/modular-fm/MM_Matrix_s25_d08_amp","index": 263456,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s25_d09_pan","varname": "fHslider90","shortname": "MM_Matrix_s25_d09_pan","address": "/modular-fm/MM_Matrix_s25_d09_pan","index": 262708,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s26_d00_pitch","varname": "fHslider444","shortname": "MM_Matrix_s26_d00_pitch","address": "/modular-fm/MM_Matrix_s26_d00_pitch","index": 264240,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s26_d01_op1_level","varname": "fHslider494","shortname": "MM_Matrix_s26_d01_op1_level","address": "/modular-fm/MM_Matrix_s26_d01_op1_level","index": 264448,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s26_d02_op2_level","varname": "fHslider548","shortname": "MM_Matrix_s26_d02_op2_level","address": "/modular-fm/MM_Matrix_s26_d02_op2_level","index": 264680,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s26_d03_op3_level","varname": "fHslider602","shortname": "MM_Matrix_s26_d03_op3_level","address": "/modular-fm/MM_Matrix_s26_d03_op3_level","index": 264912,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s26_d04_op4_level","varname": "fHslider656","shortname": "MM_Matrix_s26_d04_op4_level","address": "/modular-fm/MM_Matrix_s26_d04_op4_level","index": 265144,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s26_d05_cross_mod_global","varname": "fHslider347","shortname": "MM_Matrix_s26_d05_cross_mod_global","address": "/modular-fm/MM_Matrix_s26_d05_cross_mod_global","index": 263852,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s26_d06_feedback_global","varname": "fHslider295","shortname": "MM_Matrix_s26_d06_feedback_global","address": "/modular-fm/MM_Matrix_s26_d06_feedback_global","index": 263644,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s26_d07_global_ratio","varname": "fHslider395","shortname": "MM_Matrix_s26_d07_global_ratio","address": "/modular-fm/MM_Matrix_s26_d07_global_ratio","index": 264044,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s26_d08_amp","varname": "fHslider247","shortname": "MM_Matrix_s26_d08_amp","address": "/modular-fm/MM_Matrix_s26_d08_amp","index": 263452,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s26_d09_pan","varname": "fHslider86","shortname": "MM_Matrix_s26_d09_pan","address": "/modular-fm/MM_Matrix_s26_d09_pan","index": 262684,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s27_d00_pitch","varname": "fHslider443","shortname": "MM_Matrix_s27_d00_pitch","address": "/modular-fm/MM_Matrix_s27_d00_pitch","index": 264236,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s27_d01_op1_level","varname": "fHslider493","shortname": "MM_Matrix_s27_d01_op1_level","address": "/modular-fm/MM_Matrix_s27_d01_op1_level","index": 264444,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s27_d02_op2_level","varname": "fHslider547","shortname": "MM_Matrix_s27_d02_op2_level","address": "/modular-fm/MM_Matrix_s27_d02_op2_level","index": 264676,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s27_d03_op3_level","varname": "fHslider601","shortname": "MM_Matrix_s27_d03_op3_level","address": "/modular-fm/MM_Matrix_s27_d03_op3_level","index": 264908,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s27_d04_op4_level","varname": "fHslider655","shortname": "MM_Matrix_s27_d04_op4_level","address": "/modular-fm/MM_Matrix_s27_d04_op4_level","index": 265140,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s27_d05_cross_mod_global","varname": "fHslider346","shortname": "MM_Matrix_s27_d05_cross_mod_global","address": "/modular-fm/MM_Matrix_s27_d05_cross_mod_global","index": 263848,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s27_d06_feedback_global","varname": "fHslider294","shortname": "MM_Matrix_s27_d06_feedback_global","address": "/modular-fm/MM_Matrix_s27_d06_feedback_global","index": 263640,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s27_d07_global_ratio","varname": "fHslider394","shortname": "MM_Matrix_s27_d07_global_ratio","address": "/modular-fm/MM_Matrix_s27_d07_global_ratio","index": 264040,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s27_d08_amp","varname": "fHslider246","shortname": "MM_Matrix_s27_d08_amp","address": "/modular-fm/MM_Matrix_s27_d08_amp","index": 263448,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s27_d09_pan","varname": "fHslider82","shortname": "MM_Matrix_s27_d09_pan","address": "/modular-fm/MM_Matrix_s27_d09_pan","index": 262660,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s28_d00_pitch","varname": "fHslider442","shortname": "MM_Matrix_s28_d00_pitch","address": "/modular-fm/MM_Matrix_s28_d00_pitch","index": 264232,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s28_d01_op1_level","varname": "fHslider492","shortname": "MM_Matrix_s28_d01_op1_level","address": "/modular-fm/MM_Matrix_s28_d01_op1_level","index": 264440,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s28_d02_op2_level","varname": "fHslider546","shortname": "MM_Matrix_s28_d02_op2_level","address": "/modular-fm/MM_Matrix_s28_d02_op2_level","index": 264672,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s28_d03_op3_level","varname": "fHslider600","shortname": "MM_Matrix_s28_d03_op3_level","address": "/modular-fm/MM_Matrix_s28_d03_op3_level","index": 264904,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s28_d04_op4_level","varname": "fHslider654","shortname": "MM_Matrix_s28_d04_op4_level","address": "/modular-fm/MM_Matrix_s28_d04_op4_level","index": 265136,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s28_d05_cross_mod_global","varname": "fHslider345","shortname": "MM_Matrix_s28_d05_cross_mod_global","address": "/modular-fm/MM_Matrix_s28_d05_cross_mod_global","index": 263844,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s28_d06_feedback_global","varname": "fHslider293","shortname": "MM_Matrix_s28_d06_feedback_global","address": "/modular-fm/MM_Matrix_s28_d06_feedback_global","index": 263636,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s28_d07_global_ratio","varname": "fHslider393","shortname": "MM_Matrix_s28_d07_global_ratio","address": "/modular-fm/MM_Matrix_s28_d07_global_ratio","index": 264036,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s28_d08_amp","varname": "fHslider245","shortname": "MM_Matrix_s28_d08_amp","address": "/modular-fm/MM_Matrix_s28_d08_amp","index": 263444,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s28_d09_pan","varname": "fHslider78","shortname": "MM_Matrix_s28_d09_pan","address": "/modular-fm/MM_Matrix_s28_d09_pan","index": 262636,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s29_d00_pitch","varname": "fHslider441","shortname": "MM_Matrix_s29_d00_pitch","address": "/modular-fm/MM_Matrix_s29_d00_pitch","index": 264228,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s29_d01_op1_level","varname": "fHslider491","shortname": "MM_Matrix_s29_d01_op1_level","address": "/modular-fm/MM_Matrix_s29_d01_op1_level","index": 264436,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s29_d02_op2_level","varname": "fHslider545","shortname": "MM_Matrix_s29_d02_op2_level","address": "/modular-fm/MM_Matrix_s29_d02_op2_level","index": 264668,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s29_d03_op3_level","varname": "fHslider599","shortname": "MM_Matrix_s29_d03_op3_level","address": "/modular-fm/MM_Matrix_s29_d03_op3_level","index": 264900,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s29_d04_op4_level","varname": "fHslider653","shortname": "MM_Matrix_s29_d04_op4_level","address": "/modular-fm/MM_Matrix_s29_d04_op4_level","index": 265132,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s29_d05_cross_mod_global","varname": "fHslider344","shortname": "MM_Matrix_s29_d05_cross_mod_global","address": "/modular-fm/MM_Matrix_s29_d05_cross_mod_global","index": 263840,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s29_d06_feedback_global","varname": "fHslider292","shortname": "MM_Matrix_s29_d06_feedback_global","address": "/modular-fm/MM_Matrix_s29_d06_feedback_global","index": 263632,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s29_d07_global_ratio","varname": "fHslider392","shortname": "MM_Matrix_s29_d07_global_ratio","address": "/modular-fm/MM_Matrix_s29_d07_global_ratio","index": 264032,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s29_d08_amp","varname": "fHslider244","shortname": "MM_Matrix_s29_d08_amp","address": "/modular-fm/MM_Matrix_s29_d08_amp","index": 263440,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s29_d09_pan","varname": "fHslider74","shortname": "MM_Matrix_s29_d09_pan","address": "/modular-fm/MM_Matrix_s29_d09_pan","index": 262612,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s30_d00_pitch","varname": "fHslider440","shortname": "MM_Matrix_s30_d00_pitch","address": "/modular-fm/MM_Matrix_s30_d00_pitch","index": 264224,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s30_d01_op1_level","varname": "fHslider490","shortname": "MM_Matrix_s30_d01_op1_level","address": "/modular-fm/MM_Matrix_s30_d01_op1_level","index": 264432,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s30_d02_op2_level","varname": "fHslider544","shortname": "MM_Matrix_s30_d02_op2_level","address": "/modular-fm/MM_Matrix_s30_d02_op2_level","index": 264664,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s30_d03_op3_level","varname": "fHslider598","shortname": "MM_Matrix_s30_d03_op3_level","address": "/modular-fm/MM_Matrix_s30_d03_op3_level","index": 264896,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s30_d04_op4_level","varname": "fHslider652","shortname": "MM_Matrix_s30_d04_op4_level","address": "/modular-fm/MM_Matrix_s30_d04_op4_level","index": 265128,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s30_d05_cross_mod_global","varname": "fHslider343","shortname": "MM_Matrix_s30_d05_cross_mod_global","address": "/modular-fm/MM_Matrix_s30_d05_cross_mod_global","index": 263836,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s30_d06_feedback_global","varname": "fHslider291","shortname": "MM_Matrix_s30_d06_feedback_global","address": "/modular-fm/MM_Matrix_s30_d06_feedback_global","index": 263628,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s30_d07_global_ratio","varname": "fHslider391","shortname": "MM_Matrix_s30_d07_global_ratio","address": "/modular-fm/MM_Matrix_s30_d07_global_ratio","index": 264028,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s30_d08_amp","varname": "fHslider243","shortname": "MM_Matrix_s30_d08_amp","address": "/modular-fm/MM_Matrix_s30_d08_amp","index": 263436,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s30_d09_pan","varname": "fHslider70","shortname": "MM_Matrix_s30_d09_pan","address": "/modular-fm/MM_Matrix_s30_d09_pan","index": 262588,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s31_d00_pitch","varname": "fHslider439","shortname": "MM_Matrix_s31_d00_pitch","address": "/modular-fm/MM_Matrix_s31_d00_pitch","index": 264220,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s31_d01_op1_level","varname": "fHslider489","shortname": "MM_Matrix_s31_d01_op1_level","address": "/modular-fm/MM_Matrix_s31_d01_op1_level","index": 264428,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s31_d02_op2_level","varname": "fHslider543","shortname": "MM_Matrix_s31_d02_op2_level","address": "/modular-fm/MM_Matrix_s31_d02_op2_level","index": 264660,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s31_d03_op3_level","varname": "fHslider597","shortname": "MM_Matrix_s31_d03_op3_level","address": "/modular-fm/MM_Matrix_s31_d03_op3_level","index": 264892,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s31_d04_op4_level","varname": "fHslider651","shortname": "MM_Matrix_s31_d04_op4_level","address": "/modular-fm/MM_Matrix_s31_d04_op4_level","index": 265124,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s31_d05_cross_mod_global","varname": "fHslider342","shortname": "MM_Matrix_s31_d05_cross_mod_global","address": "/modular-fm/MM_Matrix_s31_d05_cross_mod_global","index": 263832,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s31_d06_feedback_global","varname": "fHslider290","shortname": "MM_Matrix_s31_d06_feedback_global","address": "/modular-fm/MM_Matrix_s31_d06_feedback_global","index": 263624,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s31_d07_global_ratio","varname": "fHslider390","shortname": "MM_Matrix_s31_d07_global_ratio","address": "/modular-fm/MM_Matrix_s31_d07_global_ratio","index": 264024,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s31_d08_amp","varname": "fHslider242","shortname": "MM_Matrix_s31_d08_amp","address": "/modular-fm/MM_Matrix_s31_d08_amp","index": 263432,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s31_d09_pan","varname": "fHslider66","shortname": "MM_Matrix_s31_d09_pan","address": "/modular-fm/MM_Matrix_s31_d09_pan","index": 262564,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s32_d00_pitch","varname": "fHslider438","shortname": "MM_Matrix_s32_d00_pitch","address": "/modular-fm/MM_Matrix_s32_d00_pitch","index": 264216,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s32_d01_op1_level","varname": "fHslider488","shortname": "MM_Matrix_s32_d01_op1_level","address": "/modular-fm/MM_Matrix_s32_d01_op1_level","index": 264424,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s32_d02_op2_level","varname": "fHslider542","shortname": "MM_Matrix_s32_d02_op2_level","address": "/modular-fm/MM_Matrix_s32_d02_op2_level","index": 264656,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s32_d03_op3_level","varname": "fHslider596","shortname": "MM_Matrix_s32_d03_op3_level","address": "/modular-fm/MM_Matrix_s32_d03_op3_level","index": 264888,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s32_d04_op4_level","varname": "fHslider650","shortname": "MM_Matrix_s32_d04_op4_level","address": "/modular-fm/MM_Matrix_s32_d04_op4_level","index": 265120,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s32_d05_cross_mod_global","varname": "fHslider341","shortname": "MM_Matrix_s32_d05_cross_mod_global","address": "/modular-fm/MM_Matrix_s32_d05_cross_mod_global","index": 263828,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s32_d06_feedback_global","varname": "fHslider289","shortname": "MM_Matrix_s32_d06_feedback_global","address": "/modular-fm/MM_Matrix_s32_d06_feedback_global","index": 263620,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s32_d07_global_ratio","varname": "fHslider389","shortname": "MM_Matrix_s32_d07_global_ratio","address": "/modular-fm/MM_Matrix_s32_d07_global_ratio","index": 264020,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s32_d08_amp","varname": "fHslider241","shortname": "MM_Matrix_s32_d08_amp","address": "/modular-fm/MM_Matrix_s32_d08_amp","index": 263428,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s32_d09_pan","varname": "fHslider62","shortname": "MM_Matrix_s32_d09_pan","address": "/modular-fm/MM_Matrix_s32_d09_pan","index": 262540,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s33_d00_pitch","varname": "fHslider437","shortname": "MM_Matrix_s33_d00_pitch","address": "/modular-fm/MM_Matrix_s33_d00_pitch","index": 264212,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s33_d01_op1_level","varname": "fHslider487","shortname": "MM_Matrix_s33_d01_op1_level","address": "/modular-fm/MM_Matrix_s33_d01_op1_level","index": 264420,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s33_d02_op2_level","varname": "fHslider541","shortname": "MM_Matrix_s33_d02_op2_level","address": "/modular-fm/MM_Matrix_s33_d02_op2_level","index": 264652,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s33_d03_op3_level","varname": "fHslider595","shortname": "MM_Matrix_s33_d03_op3_level","address": "/modular-fm/MM_Matrix_s33_d03_op3_level","index": 264884,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s33_d04_op4_level","varname": "fHslider649","shortname": "MM_Matrix_s33_d04_op4_level","address": "/modular-fm/MM_Matrix_s33_d04_op4_level","index": 265116,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s33_d05_cross_mod_global","varname": "fHslider340","shortname": "MM_Matrix_s33_d05_cross_mod_global","address": "/modular-fm/MM_Matrix_s33_d05_cross_mod_global","index": 263824,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s33_d06_feedback_global","varname": "fHslider288","shortname": "MM_Matrix_s33_d06_feedback_global","address": "/modular-fm/MM_Matrix_s33_d06_feedback_global","index": 263616,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s33_d07_global_ratio","varname": "fHslider388","shortname": "MM_Matrix_s33_d07_global_ratio","address": "/modular-fm/MM_Matrix_s33_d07_global_ratio","index": 264016,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s33_d08_amp","varname": "fHslider240","shortname": "MM_Matrix_s33_d08_amp","address": "/modular-fm/MM_Matrix_s33_d08_amp","index": 263424,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s33_d09_pan","varname": "fHslider58","shortname": "MM_Matrix_s33_d09_pan","address": "/modular-fm/MM_Matrix_s33_d09_pan","index": 262516,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s34_d00_pitch","varname": "fHslider436","shortname": "MM_Matrix_s34_d00_pitch","address": "/modular-fm/MM_Matrix_s34_d00_pitch","index": 264208,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s34_d01_op1_level","varname": "fHslider486","shortname": "MM_Matrix_s34_d01_op1_level","address": "/modular-fm/MM_Matrix_s34_d01_op1_level","index": 264416,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s34_d02_op2_level","varname": "fHslider540","shortname": "MM_Matrix_s34_d02_op2_level","address": "/modular-fm/MM_Matrix_s34_d02_op2_level","index": 264648,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s34_d03_op3_level","varname": "fHslider594","shortname": "MM_Matrix_s34_d03_op3_level","address": "/modular-fm/MM_Matrix_s34_d03_op3_level","index": 264880,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s34_d04_op4_level","varname": "fHslider648","shortname": "MM_Matrix_s34_d04_op4_level","address": "/modular-fm/MM_Matrix_s34_d04_op4_level","index": 265112,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s34_d05_cross_mod_global","varname": "fHslider339","shortname": "MM_Matrix_s34_d05_cross_mod_global","address": "/modular-fm/MM_Matrix_s34_d05_cross_mod_global","index": 263820,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s34_d06_feedback_global","varname": "fHslider287","shortname": "MM_Matrix_s34_d06_feedback_global","address": "/modular-fm/MM_Matrix_s34_d06_feedback_global","index": 263612,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s34_d07_global_ratio","varname": "fHslider387","shortname": "MM_Matrix_s34_d07_global_ratio","address": "/modular-fm/MM_Matrix_s34_d07_global_ratio","index": 264012,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s34_d08_amp","varname": "fHslider239","shortname": "MM_Matrix_s34_d08_amp","address": "/modular-fm/MM_Matrix_s34_d08_amp","index": 263420,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s34_d09_pan","varname": "fHslider54","shortname": "MM_Matrix_s34_d09_pan","address": "/modular-fm/MM_Matrix_s34_d09_pan","index": 262492,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s35_d00_pitch","varname": "fHslider435","shortname": "MM_Matrix_s35_d00_pitch","address": "/modular-fm/MM_Matrix_s35_d00_pitch","index": 264204,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s35_d01_op1_level","varname": "fHslider485","shortname": "MM_Matrix_s35_d01_op1_level","address": "/modular-fm/MM_Matrix_s35_d01_op1_level","index": 264412,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s35_d02_op2_level","varname": "fHslider539","shortname": "MM_Matrix_s35_d02_op2_level","address": "/modular-fm/MM_Matrix_s35_d02_op2_level","index": 264644,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s35_d03_op3_level","varname": "fHslider593","shortname": "MM_Matrix_s35_d03_op3_level","address": "/modular-fm/MM_Matrix_s35_d03_op3_level","index": 264876,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s35_d04_op4_level","varname": "fHslider647","shortname": "MM_Matrix_s35_d04_op4_level","address": "/modular-fm/MM_Matrix_s35_d04_op4_level","index": 265108,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s35_d05_cross_mod_global","varname": "fHslider338","shortname": "MM_Matrix_s35_d05_cross_mod_global","address": "/modular-fm/MM_Matrix_s35_d05_cross_mod_global","index": 263816,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s35_d06_feedback_global","varname": "fHslider286","shortname": "MM_Matrix_s35_d06_feedback_global","address": "/modular-fm/MM_Matrix_s35_d06_feedback_global","index": 263608,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s35_d07_global_ratio","varname": "fHslider386","shortname": "MM_Matrix_s35_d07_global_ratio","address": "/modular-fm/MM_Matrix_s35_d07_global_ratio","index": 264008,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s35_d08_amp","varname": "fHslider238","shortname": "MM_Matrix_s35_d08_amp","address": "/modular-fm/MM_Matrix_s35_d08_amp","index": 263416,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s35_d09_pan","varname": "fHslider50","shortname": "MM_Matrix_s35_d09_pan","address": "/modular-fm/MM_Matrix_s35_d09_pan","index": 262468,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s36_d00_pitch","varname": "fHslider434","shortname": "MM_Matrix_s36_d00_pitch","address": "/modular-fm/MM_Matrix_s36_d00_pitch","index": 264200,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s36_d01_op1_level","varname": "fHslider484","shortname": "MM_Matrix_s36_d01_op1_level","address": "/modular-fm/MM_Matrix_s36_d01_op1_level","index": 264408,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s36_d02_op2_level","varname": "fHslider538","shortname": "MM_Matrix_s36_d02_op2_level","address": "/modular-fm/MM_Matrix_s36_d02_op2_level","index": 264640,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s36_d03_op3_level","varname": "fHslider592","shortname": "MM_Matrix_s36_d03_op3_level","address": "/modular-fm/MM_Matrix_s36_d03_op3_level","index": 264872,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s36_d04_op4_level","varname": "fHslider646","shortname": "MM_Matrix_s36_d04_op4_level","address": "/modular-fm/MM_Matrix_s36_d04_op4_level","index": 265104,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s36_d05_cross_mod_global","varname": "fHslider337","shortname": "MM_Matrix_s36_d05_cross_mod_global","address": "/modular-fm/MM_Matrix_s36_d05_cross_mod_global","index": 263812,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s36_d06_feedback_global","varname": "fHslider285","shortname": "MM_Matrix_s36_d06_feedback_global","address": "/modular-fm/MM_Matrix_s36_d06_feedback_global","index": 263604,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s36_d07_global_ratio","varname": "fHslider385","shortname": "MM_Matrix_s36_d07_global_ratio","address": "/modular-fm/MM_Matrix_s36_d07_global_ratio","index": 264004,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s36_d08_amp","varname": "fHslider237","shortname": "MM_Matrix_s36_d08_amp","address": "/modular-fm/MM_Matrix_s36_d08_amp","index": 263412,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s36_d09_pan","varname": "fHslider46","shortname": "MM_Matrix_s36_d09_pan","address": "/modular-fm/MM_Matrix_s36_d09_pan","index": 262444,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s37_d00_pitch","varname": "fHslider433","shortname": "MM_Matrix_s37_d00_pitch","address": "/modular-fm/MM_Matrix_s37_d00_pitch","index": 264196,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s37_d01_op1_level","varname": "fHslider483","shortname": "MM_Matrix_s37_d01_op1_level","address": "/modular-fm/MM_Matrix_s37_d01_op1_level","index": 264404,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s37_d02_op2_level","varname": "fHslider537","shortname": "MM_Matrix_s37_d02_op2_level","address": "/modular-fm/MM_Matrix_s37_d02_op2_level","index": 264636,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s37_d03_op3_level","varname": "fHslider591","shortname": "MM_Matrix_s37_d03_op3_level","address": "/modular-fm/MM_Matrix_s37_d03_op3_level","index": 264868,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s37_d04_op4_level","varname": "fHslider645","shortname": "MM_Matrix_s37_d04_op4_level","address": "/modular-fm/MM_Matrix_s37_d04_op4_level","index": 265100,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s37_d05_cross_mod_global","varname": "fHslider336","shortname": "MM_Matrix_s37_d05_cross_mod_global","address": "/modular-fm/MM_Matrix_s37_d05_cross_mod_global","index": 263808,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s37_d06_feedback_global","varname": "fHslider284","shortname": "MM_Matrix_s37_d06_feedback_global","address": "/modular-fm/MM_Matrix_s37_d06_feedback_global","index": 263600,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s37_d07_global_ratio","varname": "fHslider384","shortname": "MM_Matrix_s37_d07_global_ratio","address": "/modular-fm/MM_Matrix_s37_d07_global_ratio","index": 264000,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s37_d08_amp","varname": "fHslider236","shortname": "MM_Matrix_s37_d08_amp","address": "/modular-fm/MM_Matrix_s37_d08_amp","index": 263408,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s37_d09_pan","varname": "fHslider42","shortname": "MM_Matrix_s37_d09_pan","address": "/modular-fm/MM_Matrix_s37_d09_pan","index": 262420,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s38_d00_pitch","varname": "fHslider432","shortname": "MM_Matrix_s38_d00_pitch","address": "/modular-fm/MM_Matrix_s38_d00_pitch","index": 264192,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s38_d01_op1_level","varname": "fHslider482","shortname": "MM_Matrix_s38_d01_op1_level","address": "/modular-fm/MM_Matrix_s38_d01_op1_level","index": 264400,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s38_d02_op2_level","varname": "fHslider536","shortname": "MM_Matrix_s38_d02_op2_level","address": "/modular-fm/MM_Matrix_s38_d02_op2_level","index": 264632,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s38_d03_op3_level","varname": "fHslider590","shortname": "MM_Matrix_s38_d03_op3_level","address": "/modular-fm/MM_Matrix_s38_d03_op3_level","index": 264864,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s38_d04_op4_level","varname": "fHslider644","shortname": "MM_Matrix_s38_d04_op4_level","address": "/modular-fm/MM_Matrix_s38_d04_op4_level","index": 265096,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s38_d05_cross_mod_global","varname": "fHslider335","shortname": "MM_Matrix_s38_d05_cross_mod_global","address": "/modular-fm/MM_Matrix_s38_d05_cross_mod_global","index": 263804,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s38_d06_feedback_global","varname": "fHslider283","shortname": "MM_Matrix_s38_d06_feedback_global","address": "/modular-fm/MM_Matrix_s38_d06_feedback_global","index": 263596,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s38_d07_global_ratio","varname": "fHslider383","shortname": "MM_Matrix_s38_d07_global_ratio","address": "/modular-fm/MM_Matrix_s38_d07_global_ratio","index": 263996,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s38_d08_amp","varname": "fHslider235","shortname": "MM_Matrix_s38_d08_amp","address": "/modular-fm/MM_Matrix_s38_d08_amp","index": 263404,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s38_d09_pan","varname": "fHslider38","shortname": "MM_Matrix_s38_d09_pan","address": "/modular-fm/MM_Matrix_s38_d09_pan","index": 262396,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s39_d00_pitch","varname": "fHslider431","shortname": "MM_Matrix_s39_d00_pitch","address": "/modular-fm/MM_Matrix_s39_d00_pitch","index": 264188,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s39_d01_op1_level","varname": "fHslider481","shortname": "MM_Matrix_s39_d01_op1_level","address": "/modular-fm/MM_Matrix_s39_d01_op1_level","index": 264396,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s39_d02_op2_level","varname": "fHslider535","shortname": "MM_Matrix_s39_d02_op2_level","address": "/modular-fm/MM_Matrix_s39_d02_op2_level","index": 264628,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s39_d03_op3_level","varname": "fHslider589","shortname": "MM_Matrix_s39_d03_op3_level","address": "/modular-fm/MM_Matrix_s39_d03_op3_level","index": 264860,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s39_d04_op4_level","varname": "fHslider643","shortname": "MM_Matrix_s39_d04_op4_level","address": "/modular-fm/MM_Matrix_s39_d04_op4_level","index": 265092,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s39_d05_cross_mod_global","varname": "fHslider334","shortname": "MM_Matrix_s39_d05_cross_mod_global","address": "/modular-fm/MM_Matrix_s39_d05_cross_mod_global","index": 263800,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s39_d06_feedback_global","varname": "fHslider282","shortname": "MM_Matrix_s39_d06_feedback_global","address": "/modular-fm/MM_Matrix_s39_d06_feedback_global","index": 263592,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s39_d07_global_ratio","varname": "fHslider382","shortname": "MM_Matrix_s39_d07_global_ratio","address": "/modular-fm/MM_Matrix_s39_d07_global_ratio","index": 263992,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s39_d08_amp","varname": "fHslider234","shortname": "MM_Matrix_s39_d08_amp","address": "/modular-fm/MM_Matrix_s39_d08_amp","index": 263400,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s39_d09_pan","varname": "fHslider34","shortname": "MM_Matrix_s39_d09_pan","address": "/modular-fm/MM_Matrix_s39_d09_pan","index": 262372,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s40_d00_pitch","varname": "fHslider430","shortname": "MM_Matrix_s40_d00_pitch","address": "/modular-fm/MM_Matrix_s40_d00_pitch","index": 264184,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s40_d01_op1_level","varname": "fHslider480","shortname": "MM_Matrix_s40_d01_op1_level","address": "/modular-fm/MM_Matrix_s40_d01_op1_level","index": 264392,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s40_d02_op2_level","varname": "fHslider534","shortname": "MM_Matrix_s40_d02_op2_level","address": "/modular-fm/MM_Matrix_s40_d02_op2_level","index": 264624,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s40_d03_op3_level","varname": "fHslider588","shortname": "MM_Matrix_s40_d03_op3_level","address": "/modular-fm/MM_Matrix_s40_d03_op3_level","index": 264856,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s40_d04_op4_level","varname": "fHslider642","shortname": "MM_Matrix_s40_d04_op4_level","address": "/modular-fm/MM_Matrix_s40_d04_op4_level","index": 265088,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s40_d05_cross_mod_global","varname": "fHslider333","shortname": "MM_Matrix_s40_d05_cross_mod_global","address": "/modular-fm/MM_Matrix_s40_d05_cross_mod_global","index": 263796,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s40_d06_feedback_global","varname": "fHslider281","shortname": "MM_Matrix_s40_d06_feedback_global","address": "/modular-fm/MM_Matrix_s40_d06_feedback_global","index": 263588,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s40_d07_global_ratio","varname": "fHslider381","shortname": "MM_Matrix_s40_d07_global_ratio","address": "/modular-fm/MM_Matrix_s40_d07_global_ratio","index": 263988,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s40_d08_amp","varname": "fHslider233","shortname": "MM_Matrix_s40_d08_amp","address": "/modular-fm/MM_Matrix_s40_d08_amp","index": 263396,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s40_d09_pan","varname": "fHslider30","shortname": "MM_Matrix_s40_d09_pan","address": "/modular-fm/MM_Matrix_s40_d09_pan","index": 262348,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s41_d00_pitch","varname": "fHslider429","shortname": "MM_Matrix_s41_d00_pitch","address": "/modular-fm/MM_Matrix_s41_d00_pitch","index": 264180,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s41_d01_op1_level","varname": "fHslider479","shortname": "MM_Matrix_s41_d01_op1_level","address": "/modular-fm/MM_Matrix_s41_d01_op1_level","index": 264388,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s41_d02_op2_level","varname": "fHslider533","shortname": "MM_Matrix_s41_d02_op2_level","address": "/modular-fm/MM_Matrix_s41_d02_op2_level","index": 264620,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s41_d03_op3_level","varname": "fHslider587","shortname": "MM_Matrix_s41_d03_op3_level","address": "/modular-fm/MM_Matrix_s41_d03_op3_level","index": 264852,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s41_d04_op4_level","varname": "fHslider641","shortname": "MM_Matrix_s41_d04_op4_level","address": "/modular-fm/MM_Matrix_s41_d04_op4_level","index": 265084,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s41_d05_cross_mod_global","varname": "fHslider332","shortname": "MM_Matrix_s41_d05_cross_mod_global","address": "/modular-fm/MM_Matrix_s41_d05_cross_mod_global","index": 263792,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s41_d06_feedback_global","varname": "fHslider280","shortname": "MM_Matrix_s41_d06_feedback_global","address": "/modular-fm/MM_Matrix_s41_d06_feedback_global","index": 263584,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s41_d07_global_ratio","varname": "fHslider380","shortname": "MM_Matrix_s41_d07_global_ratio","address": "/modular-fm/MM_Matrix_s41_d07_global_ratio","index": 263984,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s41_d08_amp","varname": "fHslider232","shortname": "MM_Matrix_s41_d08_amp","address": "/modular-fm/MM_Matrix_s41_d08_amp","index": 263392,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s41_d09_pan","varname": "fHslider26","shortname": "MM_Matrix_s41_d09_pan","address": "/modular-fm/MM_Matrix_s41_d09_pan","index": 262324,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s42_d00_pitch","varname": "fHslider428","shortname": "MM_Matrix_s42_d00_pitch","address": "/modular-fm/MM_Matrix_s42_d00_pitch","index": 264176,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s42_d01_op1_level","varname": "fHslider478","shortname": "MM_Matrix_s42_d01_op1_level","address": "/modular-fm/MM_Matrix_s42_d01_op1_level","index": 264384,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s42_d02_op2_level","varname": "fHslider532","shortname": "MM_Matrix_s42_d02_op2_level","address": "/modular-fm/MM_Matrix_s42_d02_op2_level","index": 264616,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s42_d03_op3_level","varname": "fHslider586","shortname": "MM_Matrix_s42_d03_op3_level","address": "/modular-fm/MM_Matrix_s42_d03_op3_level","index": 264848,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s42_d04_op4_level","varname": "fHslider640","shortname": "MM_Matrix_s42_d04_op4_level","address": "/modular-fm/MM_Matrix_s42_d04_op4_level","index": 265080,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s42_d05_cross_mod_global","varname": "fHslider331","shortname": "MM_Matrix_s42_d05_cross_mod_global","address": "/modular-fm/MM_Matrix_s42_d05_cross_mod_global","index": 263788,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s42_d06_feedback_global","varname": "fHslider279","shortname": "MM_Matrix_s42_d06_feedback_global","address": "/modular-fm/MM_Matrix_s42_d06_feedback_global","index": 263580,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s42_d07_global_ratio","varname": "fHslider379","shortname": "MM_Matrix_s42_d07_global_ratio","address": "/modular-fm/MM_Matrix_s42_d07_global_ratio","index": 263980,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s42_d08_amp","varname": "fHslider231","shortname": "MM_Matrix_s42_d08_amp","address": "/modular-fm/MM_Matrix_s42_d08_amp","index": 263388,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s42_d09_pan","varname": "fHslider22","shortname": "MM_Matrix_s42_d09_pan","address": "/modular-fm/MM_Matrix_s42_d09_pan","index": 262300,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s43_d00_pitch","varname": "fHslider427","shortname": "MM_Matrix_s43_d00_pitch","address": "/modular-fm/MM_Matrix_s43_d00_pitch","index": 264172,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s43_d01_op1_level","varname": "fHslider477","shortname": "MM_Matrix_s43_d01_op1_level","address": "/modular-fm/MM_Matrix_s43_d01_op1_level","index": 264380,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s43_d02_op2_level","varname": "fHslider531","shortname": "MM_Matrix_s43_d02_op2_level","address": "/modular-fm/MM_Matrix_s43_d02_op2_level","index": 264612,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s43_d03_op3_level","varname": "fHslider585","shortname": "MM_Matrix_s43_d03_op3_level","address": "/modular-fm/MM_Matrix_s43_d03_op3_level","index": 264844,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s43_d04_op4_level","varname": "fHslider639","shortname": "MM_Matrix_s43_d04_op4_level","address": "/modular-fm/MM_Matrix_s43_d04_op4_level","index": 265076,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s43_d05_cross_mod_global","varname": "fHslider330","shortname": "MM_Matrix_s43_d05_cross_mod_global","address": "/modular-fm/MM_Matrix_s43_d05_cross_mod_global","index": 263784,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s43_d06_feedback_global","varname": "fHslider278","shortname": "MM_Matrix_s43_d06_feedback_global","address": "/modular-fm/MM_Matrix_s43_d06_feedback_global","index": 263576,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s43_d07_global_ratio","varname": "fHslider378","shortname": "MM_Matrix_s43_d07_global_ratio","address": "/modular-fm/MM_Matrix_s43_d07_global_ratio","index": 263976,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s43_d08_amp","varname": "fHslider230","shortname": "MM_Matrix_s43_d08_amp","address": "/modular-fm/MM_Matrix_s43_d08_amp","index": 263384,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s43_d09_pan","varname": "fHslider18","shortname": "MM_Matrix_s43_d09_pan","address": "/modular-fm/MM_Matrix_s43_d09_pan","index": 262276,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s44_d00_pitch","varname": "fHslider426","shortname": "MM_Matrix_s44_d00_pitch","address": "/modular-fm/MM_Matrix_s44_d00_pitch","index": 264168,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s44_d01_op1_level","varname": "fHslider476","shortname": "MM_Matrix_s44_d01_op1_level","address": "/modular-fm/MM_Matrix_s44_d01_op1_level","index": 264376,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s44_d02_op2_level","varname": "fHslider530","shortname": "MM_Matrix_s44_d02_op2_level","address": "/modular-fm/MM_Matrix_s44_d02_op2_level","index": 264608,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s44_d03_op3_level","varname": "fHslider584","shortname": "MM_Matrix_s44_d03_op3_level","address": "/modular-fm/MM_Matrix_s44_d03_op3_level","index": 264840,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s44_d04_op4_level","varname": "fHslider638","shortname": "MM_Matrix_s44_d04_op4_level","address": "/modular-fm/MM_Matrix_s44_d04_op4_level","index": 265072,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s44_d05_cross_mod_global","varname": "fHslider329","shortname": "MM_Matrix_s44_d05_cross_mod_global","address": "/modular-fm/MM_Matrix_s44_d05_cross_mod_global","index": 263780,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s44_d06_feedback_global","varname": "fHslider277","shortname": "MM_Matrix_s44_d06_feedback_global","address": "/modular-fm/MM_Matrix_s44_d06_feedback_global","index": 263572,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s44_d07_global_ratio","varname": "fHslider377","shortname": "MM_Matrix_s44_d07_global_ratio","address": "/modular-fm/MM_Matrix_s44_d07_global_ratio","index": 263972,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s44_d08_amp","varname": "fHslider229","shortname": "MM_Matrix_s44_d08_amp","address": "/modular-fm/MM_Matrix_s44_d08_amp","index": 263380,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s44_d09_pan","varname": "fHslider14","shortname": "MM_Matrix_s44_d09_pan","address": "/modular-fm/MM_Matrix_s44_d09_pan","index": 262252,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s45_d00_pitch","varname": "fHslider425","shortname": "MM_Matrix_s45_d00_pitch","address": "/modular-fm/MM_Matrix_s45_d00_pitch","index": 264164,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s45_d01_op1_level","varname": "fHslider475","shortname": "MM_Matrix_s45_d01_op1_level","address": "/modular-fm/MM_Matrix_s45_d01_op1_level","index": 264372,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s45_d02_op2_level","varname": "fHslider529","shortname": "MM_Matrix_s45_d02_op2_level","address": "/modular-fm/MM_Matrix_s45_d02_op2_level","index": 264604,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s45_d03_op3_level","varname": "fHslider583","shortname": "MM_Matrix_s45_d03_op3_level","address": "/modular-fm/MM_Matrix_s45_d03_op3_level","index": 264836,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s45_d04_op4_level","varname": "fHslider637","shortname": "MM_Matrix_s45_d04_op4_level","address": "/modular-fm/MM_Matrix_s45_d04_op4_level","index": 265068,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s45_d05_cross_mod_global","varname": "fHslider328","shortname": "MM_Matrix_s45_d05_cross_mod_global","address": "/modular-fm/MM_Matrix_s45_d05_cross_mod_global","index": 263776,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s45_d06_feedback_global","varname": "fHslider276","shortname": "MM_Matrix_s45_d06_feedback_global","address": "/modular-fm/MM_Matrix_s45_d06_feedback_global","index": 263568,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s45_d07_global_ratio","varname": "fHslider376","shortname": "MM_Matrix_s45_d07_global_ratio","address": "/modular-fm/MM_Matrix_s45_d07_global_ratio","index": 263968,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s45_d08_amp","varname": "fHslider228","shortname": "MM_Matrix_s45_d08_amp","address": "/modular-fm/MM_Matrix_s45_d08_amp","index": 263376,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s45_d09_pan","varname": "fHslider10","shortname": "MM_Matrix_s45_d09_pan","address": "/modular-fm/MM_Matrix_s45_d09_pan","index": 262228,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s46_d00_pitch","varname": "fHslider424","shortname": "MM_Matrix_s46_d00_pitch","address": "/modular-fm/MM_Matrix_s46_d00_pitch","index": 264160,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s46_d01_op1_level","varname": "fHslider474","shortname": "MM_Matrix_s46_d01_op1_level","address": "/modular-fm/MM_Matrix_s46_d01_op1_level","index": 264368,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s46_d02_op2_level","varname": "fHslider528","shortname": "MM_Matrix_s46_d02_op2_level","address": "/modular-fm/MM_Matrix_s46_d02_op2_level","index": 264600,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s46_d03_op3_level","varname": "fHslider582","shortname": "MM_Matrix_s46_d03_op3_level","address": "/modular-fm/MM_Matrix_s46_d03_op3_level","index": 264832,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s46_d04_op4_level","varname": "fHslider636","shortname": "MM_Matrix_s46_d04_op4_level","address": "/modular-fm/MM_Matrix_s46_d04_op4_level","index": 265064,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s46_d05_cross_mod_global","varname": "fHslider327","shortname": "MM_Matrix_s46_d05_cross_mod_global","address": "/modular-fm/MM_Matrix_s46_d05_cross_mod_global","index": 263772,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s46_d06_feedback_global","varname": "fHslider275","shortname": "MM_Matrix_s46_d06_feedback_global","address": "/modular-fm/MM_Matrix_s46_d06_feedback_global","index": 263564,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s46_d07_global_ratio","varname": "fHslider375","shortname": "MM_Matrix_s46_d07_global_ratio","address": "/modular-fm/MM_Matrix_s46_d07_global_ratio","index": 263964,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s46_d08_amp","varname": "fHslider227","shortname": "MM_Matrix_s46_d08_amp","address": "/modular-fm/MM_Matrix_s46_d08_amp","index": 263372,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s46_d09_pan","varname": "fHslider6","shortname": "MM_Matrix_s46_d09_pan","address": "/modular-fm/MM_Matrix_s46_d09_pan","index": 262204,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s47_d00_pitch","varname": "fHslider423","shortname": "MM_Matrix_s47_d00_pitch","address": "/modular-fm/MM_Matrix_s47_d00_pitch","index": 264156,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s47_d01_op1_level","varname": "fHslider473","shortname": "MM_Matrix_s47_d01_op1_level","address": "/modular-fm/MM_Matrix_s47_d01_op1_level","index": 264364,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s47_d02_op2_level","varname": "fHslider527","shortname": "MM_Matrix_s47_d02_op2_level","address": "/modular-fm/MM_Matrix_s47_d02_op2_level","index": 264596,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s47_d03_op3_level","varname": "fHslider581","shortname": "MM_Matrix_s47_d03_op3_level","address": "/modular-fm/MM_Matrix_s47_d03_op3_level","index": 264828,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s47_d04_op4_level","varname": "fHslider635","shortname": "MM_Matrix_s47_d04_op4_level","address": "/modular-fm/MM_Matrix_s47_d04_op4_level","index": 265060,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s47_d05_cross_mod_global","varname": "fHslider326","shortname": "MM_Matrix_s47_d05_cross_mod_global","address": "/modular-fm/MM_Matrix_s47_d05_cross_mod_global","index": 263768,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s47_d06_feedback_global","varname": "fHslider274","shortname": "MM_Matrix_s47_d06_feedback_global","address": "/modular-fm/MM_Matrix_s47_d06_feedback_global","index": 263560,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s47_d07_global_ratio","varname": "fHslider374","shortname": "MM_Matrix_s47_d07_global_ratio","address": "/modular-fm/MM_Matrix_s47_d07_global_ratio","index": 263960,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s47_d08_amp","varname": "fHslider226","shortname": "MM_Matrix_s47_d08_amp","address": "/modular-fm/MM_Matrix_s47_d08_amp","index": 263368,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s47_d09_pan","varname": "fHslider2","shortname": "MM_Matrix_s47_d09_pan","address": "/modular-fm/MM_Matrix_s47_d09_pan","index": 262180,"init": 0,"min": -1,"max": 1,"step": 0.001}]}]} \ No newline at end of file diff --git a/playground/faust/modular-fm.wasm b/playground/faust/modular-fm.wasm new file mode 100644 index 0000000000000000000000000000000000000000..c8d5638bc355b0af655fc1def070891d4cc414b7 GIT binary patch literal 312509 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 pchX8qcX float + * + * Hidden params (not in the engine's ML-controllable list): + * 0_Hidden/freq — set by noteOn + * 0_Hidden/gate — set by noteOn/noteOff (button, value 0/1) + * 0_Hidden/_vel — set by noteOn + */ + +// Must be imported in AudioWorkletGlobalScope — include faust-worklet-processor.js +// via audioCtx.audioWorklet.addModule() before this file. + +const DSP = 0; +const BLOCK_SIZE = 128; + +class ModularSubtractiveProcessor extends FaustWorkletProcessor { + constructor(options) { + super(options); + this._dspInst = null; + this._dspMemory = null; // live Float32Array view + this._sampleRate = 48000; + + // Zone tables, populated once the init message has been processed. + this._paramZones = []; // NISPS index (order from JSON walk) -> zone + this._paramZonesByLabel = {}; // label -> zone (for smoke test) + this._hiddenZones = {}; // {freq, gate, _vel} -> zone + + // Audio output buffer pointers + this._outPtrsAddr = 0; + this._outLAddr = 0; + this._outRAddr = 0; + } + + // --------------------------------------------------------------------------- + // _initWasm — called by FaustWorkletProcessor.handleMessage on 'init'. + // + // Extra fields on the init message: + // uiJson — parsed Faust UI descriptor (the .json file contents) for + // zone discovery. Faust's -lang wasm embeds numeric `index` + // fields that we use directly as zone memory addresses. + // --------------------------------------------------------------------------- + + async _initWasm(wasmBytes, sampleRate, uiJson) { + this._sampleRate = sampleRate; + + const importObj = { + env: { + _sinf: Math.sin, + _cosf: Math.cos, + _tanf: Math.tan, + _expf: Math.exp, + _logf: Math.log, + _log10f: Math.log10, + _powf: Math.pow, + _tanhf: Math.tanh, + _sqrtf: Math.sqrt, + _fabsf: Math.abs, + _floorf: Math.floor, + _ceilf: Math.ceil, + _remainderf: (a, b) => a - Math.round(a / b) * b, + _fmodf: (a, b) => a % b, + _roundf: Math.round, + _truncf: Math.trunc, + _acosf: Math.acos, + _asinf: Math.asin, + _atanf: Math.atan, + _atan2f: Math.atan2, + }, + }; + + const result = await WebAssembly.instantiate(wasmBytes, importObj); + this._dspInst = result.instance; + const ex = this._dspInst.exports; + + // Grow memory by 2 pages (128 KB) so the output buffer region sits past + // Faust's allocated parameter zones. The parameter zone region in + // modular-subtractive lives around bytes 262144..265280; after growth we + // have at least 3 * BLOCK_SIZE * 4 bytes at the high end. + ex.memory.grow(2); + + this._dspMemory = new Float32Array(ex.memory.buffer); + + // Initialise the DSP instance (single-instance convention: dsp = 0) + ex.init(DSP, sampleRate); + + // Allocate output buffers at the top of WASM memory. + const memBytes = ex.memory.buffer.byteLength; + this._outLAddr = memBytes - BLOCK_SIZE * 4 * 3; + this._outRAddr = this._outLAddr + BLOCK_SIZE * 4; + this._outPtrsAddr = this._outRAddr + BLOCK_SIZE * 4; + + const u32 = new Uint32Array(ex.memory.buffer); + u32[this._outPtrsAddr / 4] = this._outLAddr; + u32[this._outPtrsAddr / 4 + 1] = this._outRAddr; + + // Refresh the float view after any potential reallocation + this._dspMemory = new Float32Array(ex.memory.buffer); + + // Build the zone index from the JSON we were passed. + if (uiJson) { + this._buildZoneIndexFromJson(uiJson); + } else { + console.warn('[ModularSubtractiveProcessor] no uiJson in init message — ' + + 'setParam will silently no-op.'); + } + } + + // ------------------------------------------------------------------------- + // _buildZoneIndexFromJson — walk the Faust UI tree and collect numeric + // zone indexes, separating hidden params from the main NISPS-controllable + // list. Preserves the UI tree's traversal order, which matches the order + // the playground's faustJsonToParamMeta() parser will produce. + // ------------------------------------------------------------------------- + + _buildZoneIndexFromJson(faustJson) { + const HIDDEN_TAIL = new Set(['freq', 'gate', '_vel']); + const zones = []; + const byLabel = {}; + const hidden = {}; + + const walk = (items) => { + if (!Array.isArray(items)) return; + for (const item of items) { + const type = item?.type; + if (type === 'hslider' || type === 'vslider' || + type === 'nentry' || type === 'button' || + type === 'checkbox') { + const label = item.label ?? ''; + const idx = item.index; + if (typeof idx !== 'number') continue; + + const hasHiddenMeta = Array.isArray(item.meta) && + item.meta.some(m => m.hidden === '1' || m.hidden === 1); + const tail = label.includes('/') ? label.split('/').pop() : label; + + if (hasHiddenMeta || HIDDEN_TAIL.has(tail)) { + hidden[tail] = idx; + } else { + zones.push(idx); + byLabel[label] = idx; + } + } else if (item?.items) { + walk(item.items); + } + } + }; + + walk(faustJson.ui ?? []); + + this._paramZones = zones; + this._paramZonesByLabel = byLabel; + this._hiddenZones = hidden; + } + + // ------------------------------------------------------------------------- + // _onSetParam — look up the zone by NISPS index and poke the DSP + // ------------------------------------------------------------------------- + + _onSetParam(index, value) { + if (!this._dspInst) return; + const zone = this._paramZones[index]; + if (zone === undefined) return; + this._dspInst.exports.setParamValue(DSP, zone, value); + } + + _onNoteOn(freq, vel) { + if (!this._dspInst) return; + const ex = this._dspInst.exports; + const z = this._hiddenZones; + if (z.freq !== undefined) ex.setParamValue(DSP, z.freq, freq); + if (z._vel !== undefined) ex.setParamValue(DSP, z._vel, vel ?? 0.7); + if (z.gate !== undefined) ex.setParamValue(DSP, z.gate, 1.0); + } + + _onNoteOff(_freq) { + if (!this._dspInst) return; + const z = this._hiddenZones; + if (z.gate !== undefined) { + this._dspInst.exports.setParamValue(DSP, z.gate, 0.0); + } + } + + // ------------------------------------------------------------------------- + // Extended message handling — override for setByLabel + init-with-json + // ------------------------------------------------------------------------- + + _handleMessage(msg) { + if (!msg || !msg.type) return; + + if (msg.type === 'init') { + // Override the base class's init path so we can thread `uiJson` through. + this._initWasm(msg.wasmBytes, msg.sampleRate || sampleRate, msg.uiJson) + .then(() => { + this._ready = true; + this.port.postMessage({ type: 'ready' }); + this._drainPendingMessages(); + }) + .catch((err) => { + this.port.postMessage({ type: 'error', message: String(err) }); + }); + return; + } + + // Buffer anything that arrives before init() finishes, so the main + // thread can disable slots / push matrix values eagerly without worrying + // about worklet readiness. See faust-worklet-processor.js. + if (this._queueIfNotReady(msg)) return; + + if (msg.type === 'setByLabel') { + const zone = this._paramZonesByLabel[msg.label]; + if (zone !== undefined) { + this._dspInst.exports.setParamValue(DSP, zone, msg.value); + } + return; + } + + // Delegate everything else (setParam, noteOn, noteOff) to the base class. + // Note: the base class also calls _queueIfNotReady, but since we already + // passed it above, we won't re-queue here. + super._handleMessage(msg); + } + + // ------------------------------------------------------------------------- + // _renderBlock — call Faust compute, copy output buffers + // ------------------------------------------------------------------------- + + _renderBlock(outL, outR, blockSize) { + if (!this._dspInst || !this._dspMemory) return; + + const ex = this._dspInst.exports; + ex.compute(DSP, blockSize, 0, this._outPtrsAddr); + + const wL = new Float32Array(ex.memory.buffer, this._outLAddr, blockSize); + const wR = new Float32Array(ex.memory.buffer, this._outRAddr, blockSize); + outL.set(wL); + outR.set(wR); + } +} + +registerProcessor('modular-subtractive-processor', ModularSubtractiveProcessor); diff --git a/playground/faust/modular-subtractive-smoke.html b/playground/faust/modular-subtractive-smoke.html new file mode 100644 index 0000000..f7b25b8 --- /dev/null +++ b/playground/faust/modular-subtractive-smoke.html @@ -0,0 +1,255 @@ + + + + + Modular Subtractive — Smoke Test + + + +

modular-subtractive smoke test

+

Phase A gate. Loads the worklet, installs a default patch (ADSR 1 → amp), plays a 1 s note.

+ + + + + +

+ Output level: + 0.000 +

+ +
+ + + + diff --git a/playground/faust/modular-subtractive.dsp b/playground/faust/modular-subtractive.dsp new file mode 100644 index 0000000..fbb3dd4 --- /dev/null +++ b/playground/faust/modular-subtractive.dsp @@ -0,0 +1,1192 @@ +// modular-subtractive.dsp — Minimoog-style subtractive voice for the "Modular" mode. +// +// AUTO-GENERATED by gen-modular-dsp.py. DO NOT EDIT BY HAND. +// Regenerate with: +// cd playground/faust && python3 gen-modular-dsp.py +// +// Audio path: 3 oscillators + noise → mixer → moog ladder filter → amp/pan. +// All envelopes and LFOs come from mod-pool.lib via a 48-source × 10-dest +// modulation matrix. No internal envs/LFOs. +// +// Modulation destinations (10): +// 0 pitch semitones, applied to all osc frequencies +// 1 osc2_detune cents offset added to osc2 detune knob +// 2 osc3_detune cents offset added to osc3 detune knob +// 3 osc_mix_bal -1..+1 crossfades osc1<->osc3 +// 4 noise_level added to noise level knob +// 5 cutoff +/-5 octaves of filter cutoff modulation +// 6 resonance added to res knob +// 7 filter_env_amt second independent +/-5 octave cutoff mod channel +// 8 amp added to amp knob (route an ADSR here for a VCA env) +// 9 pan added to pan knob +// +// Hidden controls (driven by noteOn/noteOff, not by the ML engine): +// freq, gate, _vel +// +// Build: +// cd playground/faust && ./build.sh +// +// --------------------------------------------------------------------------- + +import("stdfaust.lib"); +mp = library("mod-pool.lib"); + +// --------------------------------------------------------------------------- +// Hidden controls +// --------------------------------------------------------------------------- +freq = hslider("0_Hidden/freq[hidden:1][unit:Hz]", 220, 20, 4000, 0.01); +gate = button("0_Hidden/gate[hidden:1]"); +vel = hslider("0_Hidden/_vel[hidden:1]", 0.7, 0.0, 1.0, 0.001) : si.smoo; + +// --------------------------------------------------------------------------- +// Group 1 — Oscillators +// --------------------------------------------------------------------------- +osc1_wave = hslider("1_Oscillators/00_osc1_wave[tooltip:0=saw,0.5=tri,1=square]", 0.0, 0.0, 1.0, 0.001); +osc1_range = hslider("1_Oscillators/01_osc1_range[unit:oct]", 0.0, -2.0, 2.0, 0.01); +osc1_level = hslider("1_Oscillators/02_osc1_level", 0.8, 0.0, 1.0, 0.001); + +osc2_wave = hslider("1_Oscillators/03_osc2_wave[tooltip:0=saw,0.5=tri,1=square]", 0.0, 0.0, 1.0, 0.001); +osc2_range = hslider("1_Oscillators/04_osc2_range[unit:oct]", 0.0, -2.0, 2.0, 0.01); +osc2_detune = hslider("1_Oscillators/05_osc2_detune[unit:ct]", 0.0, -50.0, 50.0, 0.1); +osc2_level = hslider("1_Oscillators/06_osc2_level", 0.6, 0.0, 1.0, 0.001); + +osc3_wave = hslider("1_Oscillators/07_osc3_wave[tooltip:0=saw,0.5=tri,1=square]", 0.5, 0.0, 1.0, 0.001); +osc3_range = hslider("1_Oscillators/08_osc3_range[unit:oct]", -1.0, -2.0, 2.0, 0.01); +osc3_detune = hslider("1_Oscillators/09_osc3_detune[unit:ct]", 0.0, -50.0, 50.0, 0.1); +osc3_level = hslider("1_Oscillators/10_osc3_level", 0.4, 0.0, 1.0, 0.001); +osc3_kb_track = hslider("1_Oscillators/11_osc3_kb_track[tooltip:1=tracks keyboard,0=LFO]", 1.0, 0.0, 1.0, 1.0); + +// --------------------------------------------------------------------------- +// Group 2 — Mixer +// --------------------------------------------------------------------------- +noise_type = hslider("2_Mixer/00_noise_type[tooltip:0=white,1=pink]", 0.0, 0.0, 1.0, 1.0); +noise_level = hslider("2_Mixer/01_noise_level", 0.0, 0.0, 1.0, 0.001); +mixer_drive = hslider("2_Mixer/02_mixer_drive[tooltip:Pre-filter overdrive]", 1.0, 0.5, 4.0, 0.001); + +// --------------------------------------------------------------------------- +// Group 3 — Filter +// --------------------------------------------------------------------------- +cutoff = hslider("3_Filter/00_cutoff[scale:log][unit:Hz]", 1200.0, 20.0, 20000.0, 0.1); +resonance = hslider("3_Filter/01_resonance", 0.3, 0.0, 1.0, 0.001); +filter_kb = hslider("3_Filter/02_filter_kb_track", 0.5, 0.0, 1.0, 0.001); + +// --------------------------------------------------------------------------- +// Group 4 — Master +// --------------------------------------------------------------------------- +master_level = hslider("4_Master/00_master_level", 0.7, 0.0, 1.0, 0.001); +master_glide = hslider("4_Master/01_master_glide[unit:s][scale:log]", 0.0, 0.0, 2.0, 0.001); +master_tune = hslider("4_Master/02_master_tune[unit:ct]", 0.0, -50.0, 50.0, 0.1); +master_pan = hslider("4_Master/03_master_pan", 0.0, -1.0, 1.0, 0.001); + +// --------------------------------------------------------------------------- +// Modulation matrix — 48 sources × 10 destinations. +// Each hslider is one "amount" entry in [-1, +1]. Zero = no connection. +// Group "MM_Matrix" so the paramMeta parser can recognise matrix params. +// --------------------------------------------------------------------------- + +// Matrix column: destination 0 = pitch +amt_s00_d00_pitch = hslider("MM_Matrix/s00_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s01_d00_pitch = hslider("MM_Matrix/s01_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s02_d00_pitch = hslider("MM_Matrix/s02_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s03_d00_pitch = hslider("MM_Matrix/s03_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s04_d00_pitch = hslider("MM_Matrix/s04_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s05_d00_pitch = hslider("MM_Matrix/s05_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s06_d00_pitch = hslider("MM_Matrix/s06_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s07_d00_pitch = hslider("MM_Matrix/s07_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s08_d00_pitch = hslider("MM_Matrix/s08_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s09_d00_pitch = hslider("MM_Matrix/s09_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s10_d00_pitch = hslider("MM_Matrix/s10_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s11_d00_pitch = hslider("MM_Matrix/s11_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s12_d00_pitch = hslider("MM_Matrix/s12_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s13_d00_pitch = hslider("MM_Matrix/s13_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s14_d00_pitch = hslider("MM_Matrix/s14_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s15_d00_pitch = hslider("MM_Matrix/s15_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s16_d00_pitch = hslider("MM_Matrix/s16_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s17_d00_pitch = hslider("MM_Matrix/s17_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s18_d00_pitch = hslider("MM_Matrix/s18_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s19_d00_pitch = hslider("MM_Matrix/s19_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s20_d00_pitch = hslider("MM_Matrix/s20_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s21_d00_pitch = hslider("MM_Matrix/s21_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s22_d00_pitch = hslider("MM_Matrix/s22_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s23_d00_pitch = hslider("MM_Matrix/s23_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s24_d00_pitch = hslider("MM_Matrix/s24_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s25_d00_pitch = hslider("MM_Matrix/s25_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s26_d00_pitch = hslider("MM_Matrix/s26_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s27_d00_pitch = hslider("MM_Matrix/s27_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s28_d00_pitch = hslider("MM_Matrix/s28_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s29_d00_pitch = hslider("MM_Matrix/s29_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s30_d00_pitch = hslider("MM_Matrix/s30_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s31_d00_pitch = hslider("MM_Matrix/s31_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s32_d00_pitch = hslider("MM_Matrix/s32_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s33_d00_pitch = hslider("MM_Matrix/s33_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s34_d00_pitch = hslider("MM_Matrix/s34_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s35_d00_pitch = hslider("MM_Matrix/s35_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s36_d00_pitch = hslider("MM_Matrix/s36_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s37_d00_pitch = hslider("MM_Matrix/s37_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s38_d00_pitch = hslider("MM_Matrix/s38_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s39_d00_pitch = hslider("MM_Matrix/s39_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s40_d00_pitch = hslider("MM_Matrix/s40_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s41_d00_pitch = hslider("MM_Matrix/s41_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s42_d00_pitch = hslider("MM_Matrix/s42_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s43_d00_pitch = hslider("MM_Matrix/s43_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s44_d00_pitch = hslider("MM_Matrix/s44_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s45_d00_pitch = hslider("MM_Matrix/s45_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s46_d00_pitch = hslider("MM_Matrix/s46_d00_pitch", 0.0, -1.0, 1.0, 0.001); +amt_s47_d00_pitch = hslider("MM_Matrix/s47_d00_pitch", 0.0, -1.0, 1.0, 0.001); + +// Matrix column: destination 1 = osc2_detune +amt_s00_d01_osc2_detune = hslider("MM_Matrix/s00_d01_osc2_detune", 0.0, -1.0, 1.0, 0.001); +amt_s01_d01_osc2_detune = hslider("MM_Matrix/s01_d01_osc2_detune", 0.0, -1.0, 1.0, 0.001); +amt_s02_d01_osc2_detune = hslider("MM_Matrix/s02_d01_osc2_detune", 0.0, -1.0, 1.0, 0.001); +amt_s03_d01_osc2_detune = hslider("MM_Matrix/s03_d01_osc2_detune", 0.0, -1.0, 1.0, 0.001); +amt_s04_d01_osc2_detune = hslider("MM_Matrix/s04_d01_osc2_detune", 0.0, -1.0, 1.0, 0.001); +amt_s05_d01_osc2_detune = hslider("MM_Matrix/s05_d01_osc2_detune", 0.0, -1.0, 1.0, 0.001); +amt_s06_d01_osc2_detune = hslider("MM_Matrix/s06_d01_osc2_detune", 0.0, -1.0, 1.0, 0.001); +amt_s07_d01_osc2_detune = hslider("MM_Matrix/s07_d01_osc2_detune", 0.0, -1.0, 1.0, 0.001); +amt_s08_d01_osc2_detune = hslider("MM_Matrix/s08_d01_osc2_detune", 0.0, -1.0, 1.0, 0.001); +amt_s09_d01_osc2_detune = hslider("MM_Matrix/s09_d01_osc2_detune", 0.0, -1.0, 1.0, 0.001); +amt_s10_d01_osc2_detune = hslider("MM_Matrix/s10_d01_osc2_detune", 0.0, -1.0, 1.0, 0.001); +amt_s11_d01_osc2_detune = hslider("MM_Matrix/s11_d01_osc2_detune", 0.0, -1.0, 1.0, 0.001); +amt_s12_d01_osc2_detune = hslider("MM_Matrix/s12_d01_osc2_detune", 0.0, -1.0, 1.0, 0.001); +amt_s13_d01_osc2_detune = hslider("MM_Matrix/s13_d01_osc2_detune", 0.0, -1.0, 1.0, 0.001); +amt_s14_d01_osc2_detune = hslider("MM_Matrix/s14_d01_osc2_detune", 0.0, -1.0, 1.0, 0.001); +amt_s15_d01_osc2_detune = hslider("MM_Matrix/s15_d01_osc2_detune", 0.0, -1.0, 1.0, 0.001); +amt_s16_d01_osc2_detune = hslider("MM_Matrix/s16_d01_osc2_detune", 0.0, -1.0, 1.0, 0.001); +amt_s17_d01_osc2_detune = hslider("MM_Matrix/s17_d01_osc2_detune", 0.0, -1.0, 1.0, 0.001); +amt_s18_d01_osc2_detune = hslider("MM_Matrix/s18_d01_osc2_detune", 0.0, -1.0, 1.0, 0.001); +amt_s19_d01_osc2_detune = hslider("MM_Matrix/s19_d01_osc2_detune", 0.0, -1.0, 1.0, 0.001); +amt_s20_d01_osc2_detune = hslider("MM_Matrix/s20_d01_osc2_detune", 0.0, -1.0, 1.0, 0.001); +amt_s21_d01_osc2_detune = hslider("MM_Matrix/s21_d01_osc2_detune", 0.0, -1.0, 1.0, 0.001); +amt_s22_d01_osc2_detune = hslider("MM_Matrix/s22_d01_osc2_detune", 0.0, -1.0, 1.0, 0.001); +amt_s23_d01_osc2_detune = hslider("MM_Matrix/s23_d01_osc2_detune", 0.0, -1.0, 1.0, 0.001); +amt_s24_d01_osc2_detune = hslider("MM_Matrix/s24_d01_osc2_detune", 0.0, -1.0, 1.0, 0.001); +amt_s25_d01_osc2_detune = hslider("MM_Matrix/s25_d01_osc2_detune", 0.0, -1.0, 1.0, 0.001); +amt_s26_d01_osc2_detune = hslider("MM_Matrix/s26_d01_osc2_detune", 0.0, -1.0, 1.0, 0.001); +amt_s27_d01_osc2_detune = hslider("MM_Matrix/s27_d01_osc2_detune", 0.0, -1.0, 1.0, 0.001); +amt_s28_d01_osc2_detune = hslider("MM_Matrix/s28_d01_osc2_detune", 0.0, -1.0, 1.0, 0.001); +amt_s29_d01_osc2_detune = hslider("MM_Matrix/s29_d01_osc2_detune", 0.0, -1.0, 1.0, 0.001); +amt_s30_d01_osc2_detune = hslider("MM_Matrix/s30_d01_osc2_detune", 0.0, -1.0, 1.0, 0.001); +amt_s31_d01_osc2_detune = hslider("MM_Matrix/s31_d01_osc2_detune", 0.0, -1.0, 1.0, 0.001); +amt_s32_d01_osc2_detune = hslider("MM_Matrix/s32_d01_osc2_detune", 0.0, -1.0, 1.0, 0.001); +amt_s33_d01_osc2_detune = hslider("MM_Matrix/s33_d01_osc2_detune", 0.0, -1.0, 1.0, 0.001); +amt_s34_d01_osc2_detune = hslider("MM_Matrix/s34_d01_osc2_detune", 0.0, -1.0, 1.0, 0.001); +amt_s35_d01_osc2_detune = hslider("MM_Matrix/s35_d01_osc2_detune", 0.0, -1.0, 1.0, 0.001); +amt_s36_d01_osc2_detune = hslider("MM_Matrix/s36_d01_osc2_detune", 0.0, -1.0, 1.0, 0.001); +amt_s37_d01_osc2_detune = hslider("MM_Matrix/s37_d01_osc2_detune", 0.0, -1.0, 1.0, 0.001); +amt_s38_d01_osc2_detune = hslider("MM_Matrix/s38_d01_osc2_detune", 0.0, -1.0, 1.0, 0.001); +amt_s39_d01_osc2_detune = hslider("MM_Matrix/s39_d01_osc2_detune", 0.0, -1.0, 1.0, 0.001); +amt_s40_d01_osc2_detune = hslider("MM_Matrix/s40_d01_osc2_detune", 0.0, -1.0, 1.0, 0.001); +amt_s41_d01_osc2_detune = hslider("MM_Matrix/s41_d01_osc2_detune", 0.0, -1.0, 1.0, 0.001); +amt_s42_d01_osc2_detune = hslider("MM_Matrix/s42_d01_osc2_detune", 0.0, -1.0, 1.0, 0.001); +amt_s43_d01_osc2_detune = hslider("MM_Matrix/s43_d01_osc2_detune", 0.0, -1.0, 1.0, 0.001); +amt_s44_d01_osc2_detune = hslider("MM_Matrix/s44_d01_osc2_detune", 0.0, -1.0, 1.0, 0.001); +amt_s45_d01_osc2_detune = hslider("MM_Matrix/s45_d01_osc2_detune", 0.0, -1.0, 1.0, 0.001); +amt_s46_d01_osc2_detune = hslider("MM_Matrix/s46_d01_osc2_detune", 0.0, -1.0, 1.0, 0.001); +amt_s47_d01_osc2_detune = hslider("MM_Matrix/s47_d01_osc2_detune", 0.0, -1.0, 1.0, 0.001); + +// Matrix column: destination 2 = osc3_detune +amt_s00_d02_osc3_detune = hslider("MM_Matrix/s00_d02_osc3_detune", 0.0, -1.0, 1.0, 0.001); +amt_s01_d02_osc3_detune = hslider("MM_Matrix/s01_d02_osc3_detune", 0.0, -1.0, 1.0, 0.001); +amt_s02_d02_osc3_detune = hslider("MM_Matrix/s02_d02_osc3_detune", 0.0, -1.0, 1.0, 0.001); +amt_s03_d02_osc3_detune = hslider("MM_Matrix/s03_d02_osc3_detune", 0.0, -1.0, 1.0, 0.001); +amt_s04_d02_osc3_detune = hslider("MM_Matrix/s04_d02_osc3_detune", 0.0, -1.0, 1.0, 0.001); +amt_s05_d02_osc3_detune = hslider("MM_Matrix/s05_d02_osc3_detune", 0.0, -1.0, 1.0, 0.001); +amt_s06_d02_osc3_detune = hslider("MM_Matrix/s06_d02_osc3_detune", 0.0, -1.0, 1.0, 0.001); +amt_s07_d02_osc3_detune = hslider("MM_Matrix/s07_d02_osc3_detune", 0.0, -1.0, 1.0, 0.001); +amt_s08_d02_osc3_detune = hslider("MM_Matrix/s08_d02_osc3_detune", 0.0, -1.0, 1.0, 0.001); +amt_s09_d02_osc3_detune = hslider("MM_Matrix/s09_d02_osc3_detune", 0.0, -1.0, 1.0, 0.001); +amt_s10_d02_osc3_detune = hslider("MM_Matrix/s10_d02_osc3_detune", 0.0, -1.0, 1.0, 0.001); +amt_s11_d02_osc3_detune = hslider("MM_Matrix/s11_d02_osc3_detune", 0.0, -1.0, 1.0, 0.001); +amt_s12_d02_osc3_detune = hslider("MM_Matrix/s12_d02_osc3_detune", 0.0, -1.0, 1.0, 0.001); +amt_s13_d02_osc3_detune = hslider("MM_Matrix/s13_d02_osc3_detune", 0.0, -1.0, 1.0, 0.001); +amt_s14_d02_osc3_detune = hslider("MM_Matrix/s14_d02_osc3_detune", 0.0, -1.0, 1.0, 0.001); +amt_s15_d02_osc3_detune = hslider("MM_Matrix/s15_d02_osc3_detune", 0.0, -1.0, 1.0, 0.001); +amt_s16_d02_osc3_detune = hslider("MM_Matrix/s16_d02_osc3_detune", 0.0, -1.0, 1.0, 0.001); +amt_s17_d02_osc3_detune = hslider("MM_Matrix/s17_d02_osc3_detune", 0.0, -1.0, 1.0, 0.001); +amt_s18_d02_osc3_detune = hslider("MM_Matrix/s18_d02_osc3_detune", 0.0, -1.0, 1.0, 0.001); +amt_s19_d02_osc3_detune = hslider("MM_Matrix/s19_d02_osc3_detune", 0.0, -1.0, 1.0, 0.001); +amt_s20_d02_osc3_detune = hslider("MM_Matrix/s20_d02_osc3_detune", 0.0, -1.0, 1.0, 0.001); +amt_s21_d02_osc3_detune = hslider("MM_Matrix/s21_d02_osc3_detune", 0.0, -1.0, 1.0, 0.001); +amt_s22_d02_osc3_detune = hslider("MM_Matrix/s22_d02_osc3_detune", 0.0, -1.0, 1.0, 0.001); +amt_s23_d02_osc3_detune = hslider("MM_Matrix/s23_d02_osc3_detune", 0.0, -1.0, 1.0, 0.001); +amt_s24_d02_osc3_detune = hslider("MM_Matrix/s24_d02_osc3_detune", 0.0, -1.0, 1.0, 0.001); +amt_s25_d02_osc3_detune = hslider("MM_Matrix/s25_d02_osc3_detune", 0.0, -1.0, 1.0, 0.001); +amt_s26_d02_osc3_detune = hslider("MM_Matrix/s26_d02_osc3_detune", 0.0, -1.0, 1.0, 0.001); +amt_s27_d02_osc3_detune = hslider("MM_Matrix/s27_d02_osc3_detune", 0.0, -1.0, 1.0, 0.001); +amt_s28_d02_osc3_detune = hslider("MM_Matrix/s28_d02_osc3_detune", 0.0, -1.0, 1.0, 0.001); +amt_s29_d02_osc3_detune = hslider("MM_Matrix/s29_d02_osc3_detune", 0.0, -1.0, 1.0, 0.001); +amt_s30_d02_osc3_detune = hslider("MM_Matrix/s30_d02_osc3_detune", 0.0, -1.0, 1.0, 0.001); +amt_s31_d02_osc3_detune = hslider("MM_Matrix/s31_d02_osc3_detune", 0.0, -1.0, 1.0, 0.001); +amt_s32_d02_osc3_detune = hslider("MM_Matrix/s32_d02_osc3_detune", 0.0, -1.0, 1.0, 0.001); +amt_s33_d02_osc3_detune = hslider("MM_Matrix/s33_d02_osc3_detune", 0.0, -1.0, 1.0, 0.001); +amt_s34_d02_osc3_detune = hslider("MM_Matrix/s34_d02_osc3_detune", 0.0, -1.0, 1.0, 0.001); +amt_s35_d02_osc3_detune = hslider("MM_Matrix/s35_d02_osc3_detune", 0.0, -1.0, 1.0, 0.001); +amt_s36_d02_osc3_detune = hslider("MM_Matrix/s36_d02_osc3_detune", 0.0, -1.0, 1.0, 0.001); +amt_s37_d02_osc3_detune = hslider("MM_Matrix/s37_d02_osc3_detune", 0.0, -1.0, 1.0, 0.001); +amt_s38_d02_osc3_detune = hslider("MM_Matrix/s38_d02_osc3_detune", 0.0, -1.0, 1.0, 0.001); +amt_s39_d02_osc3_detune = hslider("MM_Matrix/s39_d02_osc3_detune", 0.0, -1.0, 1.0, 0.001); +amt_s40_d02_osc3_detune = hslider("MM_Matrix/s40_d02_osc3_detune", 0.0, -1.0, 1.0, 0.001); +amt_s41_d02_osc3_detune = hslider("MM_Matrix/s41_d02_osc3_detune", 0.0, -1.0, 1.0, 0.001); +amt_s42_d02_osc3_detune = hslider("MM_Matrix/s42_d02_osc3_detune", 0.0, -1.0, 1.0, 0.001); +amt_s43_d02_osc3_detune = hslider("MM_Matrix/s43_d02_osc3_detune", 0.0, -1.0, 1.0, 0.001); +amt_s44_d02_osc3_detune = hslider("MM_Matrix/s44_d02_osc3_detune", 0.0, -1.0, 1.0, 0.001); +amt_s45_d02_osc3_detune = hslider("MM_Matrix/s45_d02_osc3_detune", 0.0, -1.0, 1.0, 0.001); +amt_s46_d02_osc3_detune = hslider("MM_Matrix/s46_d02_osc3_detune", 0.0, -1.0, 1.0, 0.001); +amt_s47_d02_osc3_detune = hslider("MM_Matrix/s47_d02_osc3_detune", 0.0, -1.0, 1.0, 0.001); + +// Matrix column: destination 3 = osc_mix_bal +amt_s00_d03_osc_mix_bal = hslider("MM_Matrix/s00_d03_osc_mix_bal", 0.0, -1.0, 1.0, 0.001); +amt_s01_d03_osc_mix_bal = hslider("MM_Matrix/s01_d03_osc_mix_bal", 0.0, -1.0, 1.0, 0.001); +amt_s02_d03_osc_mix_bal = hslider("MM_Matrix/s02_d03_osc_mix_bal", 0.0, -1.0, 1.0, 0.001); +amt_s03_d03_osc_mix_bal = hslider("MM_Matrix/s03_d03_osc_mix_bal", 0.0, -1.0, 1.0, 0.001); +amt_s04_d03_osc_mix_bal = hslider("MM_Matrix/s04_d03_osc_mix_bal", 0.0, -1.0, 1.0, 0.001); +amt_s05_d03_osc_mix_bal = hslider("MM_Matrix/s05_d03_osc_mix_bal", 0.0, -1.0, 1.0, 0.001); +amt_s06_d03_osc_mix_bal = hslider("MM_Matrix/s06_d03_osc_mix_bal", 0.0, -1.0, 1.0, 0.001); +amt_s07_d03_osc_mix_bal = hslider("MM_Matrix/s07_d03_osc_mix_bal", 0.0, -1.0, 1.0, 0.001); +amt_s08_d03_osc_mix_bal = hslider("MM_Matrix/s08_d03_osc_mix_bal", 0.0, -1.0, 1.0, 0.001); +amt_s09_d03_osc_mix_bal = hslider("MM_Matrix/s09_d03_osc_mix_bal", 0.0, -1.0, 1.0, 0.001); +amt_s10_d03_osc_mix_bal = hslider("MM_Matrix/s10_d03_osc_mix_bal", 0.0, -1.0, 1.0, 0.001); +amt_s11_d03_osc_mix_bal = hslider("MM_Matrix/s11_d03_osc_mix_bal", 0.0, -1.0, 1.0, 0.001); +amt_s12_d03_osc_mix_bal = hslider("MM_Matrix/s12_d03_osc_mix_bal", 0.0, -1.0, 1.0, 0.001); +amt_s13_d03_osc_mix_bal = hslider("MM_Matrix/s13_d03_osc_mix_bal", 0.0, -1.0, 1.0, 0.001); +amt_s14_d03_osc_mix_bal = hslider("MM_Matrix/s14_d03_osc_mix_bal", 0.0, -1.0, 1.0, 0.001); +amt_s15_d03_osc_mix_bal = hslider("MM_Matrix/s15_d03_osc_mix_bal", 0.0, -1.0, 1.0, 0.001); +amt_s16_d03_osc_mix_bal = hslider("MM_Matrix/s16_d03_osc_mix_bal", 0.0, -1.0, 1.0, 0.001); +amt_s17_d03_osc_mix_bal = hslider("MM_Matrix/s17_d03_osc_mix_bal", 0.0, -1.0, 1.0, 0.001); +amt_s18_d03_osc_mix_bal = hslider("MM_Matrix/s18_d03_osc_mix_bal", 0.0, -1.0, 1.0, 0.001); +amt_s19_d03_osc_mix_bal = hslider("MM_Matrix/s19_d03_osc_mix_bal", 0.0, -1.0, 1.0, 0.001); +amt_s20_d03_osc_mix_bal = hslider("MM_Matrix/s20_d03_osc_mix_bal", 0.0, -1.0, 1.0, 0.001); +amt_s21_d03_osc_mix_bal = hslider("MM_Matrix/s21_d03_osc_mix_bal", 0.0, -1.0, 1.0, 0.001); +amt_s22_d03_osc_mix_bal = hslider("MM_Matrix/s22_d03_osc_mix_bal", 0.0, -1.0, 1.0, 0.001); +amt_s23_d03_osc_mix_bal = hslider("MM_Matrix/s23_d03_osc_mix_bal", 0.0, -1.0, 1.0, 0.001); +amt_s24_d03_osc_mix_bal = hslider("MM_Matrix/s24_d03_osc_mix_bal", 0.0, -1.0, 1.0, 0.001); +amt_s25_d03_osc_mix_bal = hslider("MM_Matrix/s25_d03_osc_mix_bal", 0.0, -1.0, 1.0, 0.001); +amt_s26_d03_osc_mix_bal = hslider("MM_Matrix/s26_d03_osc_mix_bal", 0.0, -1.0, 1.0, 0.001); +amt_s27_d03_osc_mix_bal = hslider("MM_Matrix/s27_d03_osc_mix_bal", 0.0, -1.0, 1.0, 0.001); +amt_s28_d03_osc_mix_bal = hslider("MM_Matrix/s28_d03_osc_mix_bal", 0.0, -1.0, 1.0, 0.001); +amt_s29_d03_osc_mix_bal = hslider("MM_Matrix/s29_d03_osc_mix_bal", 0.0, -1.0, 1.0, 0.001); +amt_s30_d03_osc_mix_bal = hslider("MM_Matrix/s30_d03_osc_mix_bal", 0.0, -1.0, 1.0, 0.001); +amt_s31_d03_osc_mix_bal = hslider("MM_Matrix/s31_d03_osc_mix_bal", 0.0, -1.0, 1.0, 0.001); +amt_s32_d03_osc_mix_bal = hslider("MM_Matrix/s32_d03_osc_mix_bal", 0.0, -1.0, 1.0, 0.001); +amt_s33_d03_osc_mix_bal = hslider("MM_Matrix/s33_d03_osc_mix_bal", 0.0, -1.0, 1.0, 0.001); +amt_s34_d03_osc_mix_bal = hslider("MM_Matrix/s34_d03_osc_mix_bal", 0.0, -1.0, 1.0, 0.001); +amt_s35_d03_osc_mix_bal = hslider("MM_Matrix/s35_d03_osc_mix_bal", 0.0, -1.0, 1.0, 0.001); +amt_s36_d03_osc_mix_bal = hslider("MM_Matrix/s36_d03_osc_mix_bal", 0.0, -1.0, 1.0, 0.001); +amt_s37_d03_osc_mix_bal = hslider("MM_Matrix/s37_d03_osc_mix_bal", 0.0, -1.0, 1.0, 0.001); +amt_s38_d03_osc_mix_bal = hslider("MM_Matrix/s38_d03_osc_mix_bal", 0.0, -1.0, 1.0, 0.001); +amt_s39_d03_osc_mix_bal = hslider("MM_Matrix/s39_d03_osc_mix_bal", 0.0, -1.0, 1.0, 0.001); +amt_s40_d03_osc_mix_bal = hslider("MM_Matrix/s40_d03_osc_mix_bal", 0.0, -1.0, 1.0, 0.001); +amt_s41_d03_osc_mix_bal = hslider("MM_Matrix/s41_d03_osc_mix_bal", 0.0, -1.0, 1.0, 0.001); +amt_s42_d03_osc_mix_bal = hslider("MM_Matrix/s42_d03_osc_mix_bal", 0.0, -1.0, 1.0, 0.001); +amt_s43_d03_osc_mix_bal = hslider("MM_Matrix/s43_d03_osc_mix_bal", 0.0, -1.0, 1.0, 0.001); +amt_s44_d03_osc_mix_bal = hslider("MM_Matrix/s44_d03_osc_mix_bal", 0.0, -1.0, 1.0, 0.001); +amt_s45_d03_osc_mix_bal = hslider("MM_Matrix/s45_d03_osc_mix_bal", 0.0, -1.0, 1.0, 0.001); +amt_s46_d03_osc_mix_bal = hslider("MM_Matrix/s46_d03_osc_mix_bal", 0.0, -1.0, 1.0, 0.001); +amt_s47_d03_osc_mix_bal = hslider("MM_Matrix/s47_d03_osc_mix_bal", 0.0, -1.0, 1.0, 0.001); + +// Matrix column: destination 4 = noise_level +amt_s00_d04_noise_level = hslider("MM_Matrix/s00_d04_noise_level", 0.0, -1.0, 1.0, 0.001); +amt_s01_d04_noise_level = hslider("MM_Matrix/s01_d04_noise_level", 0.0, -1.0, 1.0, 0.001); +amt_s02_d04_noise_level = hslider("MM_Matrix/s02_d04_noise_level", 0.0, -1.0, 1.0, 0.001); +amt_s03_d04_noise_level = hslider("MM_Matrix/s03_d04_noise_level", 0.0, -1.0, 1.0, 0.001); +amt_s04_d04_noise_level = hslider("MM_Matrix/s04_d04_noise_level", 0.0, -1.0, 1.0, 0.001); +amt_s05_d04_noise_level = hslider("MM_Matrix/s05_d04_noise_level", 0.0, -1.0, 1.0, 0.001); +amt_s06_d04_noise_level = hslider("MM_Matrix/s06_d04_noise_level", 0.0, -1.0, 1.0, 0.001); +amt_s07_d04_noise_level = hslider("MM_Matrix/s07_d04_noise_level", 0.0, -1.0, 1.0, 0.001); +amt_s08_d04_noise_level = hslider("MM_Matrix/s08_d04_noise_level", 0.0, -1.0, 1.0, 0.001); +amt_s09_d04_noise_level = hslider("MM_Matrix/s09_d04_noise_level", 0.0, -1.0, 1.0, 0.001); +amt_s10_d04_noise_level = hslider("MM_Matrix/s10_d04_noise_level", 0.0, -1.0, 1.0, 0.001); +amt_s11_d04_noise_level = hslider("MM_Matrix/s11_d04_noise_level", 0.0, -1.0, 1.0, 0.001); +amt_s12_d04_noise_level = hslider("MM_Matrix/s12_d04_noise_level", 0.0, -1.0, 1.0, 0.001); +amt_s13_d04_noise_level = hslider("MM_Matrix/s13_d04_noise_level", 0.0, -1.0, 1.0, 0.001); +amt_s14_d04_noise_level = hslider("MM_Matrix/s14_d04_noise_level", 0.0, -1.0, 1.0, 0.001); +amt_s15_d04_noise_level = hslider("MM_Matrix/s15_d04_noise_level", 0.0, -1.0, 1.0, 0.001); +amt_s16_d04_noise_level = hslider("MM_Matrix/s16_d04_noise_level", 0.0, -1.0, 1.0, 0.001); +amt_s17_d04_noise_level = hslider("MM_Matrix/s17_d04_noise_level", 0.0, -1.0, 1.0, 0.001); +amt_s18_d04_noise_level = hslider("MM_Matrix/s18_d04_noise_level", 0.0, -1.0, 1.0, 0.001); +amt_s19_d04_noise_level = hslider("MM_Matrix/s19_d04_noise_level", 0.0, -1.0, 1.0, 0.001); +amt_s20_d04_noise_level = hslider("MM_Matrix/s20_d04_noise_level", 0.0, -1.0, 1.0, 0.001); +amt_s21_d04_noise_level = hslider("MM_Matrix/s21_d04_noise_level", 0.0, -1.0, 1.0, 0.001); +amt_s22_d04_noise_level = hslider("MM_Matrix/s22_d04_noise_level", 0.0, -1.0, 1.0, 0.001); +amt_s23_d04_noise_level = hslider("MM_Matrix/s23_d04_noise_level", 0.0, -1.0, 1.0, 0.001); +amt_s24_d04_noise_level = hslider("MM_Matrix/s24_d04_noise_level", 0.0, -1.0, 1.0, 0.001); +amt_s25_d04_noise_level = hslider("MM_Matrix/s25_d04_noise_level", 0.0, -1.0, 1.0, 0.001); +amt_s26_d04_noise_level = hslider("MM_Matrix/s26_d04_noise_level", 0.0, -1.0, 1.0, 0.001); +amt_s27_d04_noise_level = hslider("MM_Matrix/s27_d04_noise_level", 0.0, -1.0, 1.0, 0.001); +amt_s28_d04_noise_level = hslider("MM_Matrix/s28_d04_noise_level", 0.0, -1.0, 1.0, 0.001); +amt_s29_d04_noise_level = hslider("MM_Matrix/s29_d04_noise_level", 0.0, -1.0, 1.0, 0.001); +amt_s30_d04_noise_level = hslider("MM_Matrix/s30_d04_noise_level", 0.0, -1.0, 1.0, 0.001); +amt_s31_d04_noise_level = hslider("MM_Matrix/s31_d04_noise_level", 0.0, -1.0, 1.0, 0.001); +amt_s32_d04_noise_level = hslider("MM_Matrix/s32_d04_noise_level", 0.0, -1.0, 1.0, 0.001); +amt_s33_d04_noise_level = hslider("MM_Matrix/s33_d04_noise_level", 0.0, -1.0, 1.0, 0.001); +amt_s34_d04_noise_level = hslider("MM_Matrix/s34_d04_noise_level", 0.0, -1.0, 1.0, 0.001); +amt_s35_d04_noise_level = hslider("MM_Matrix/s35_d04_noise_level", 0.0, -1.0, 1.0, 0.001); +amt_s36_d04_noise_level = hslider("MM_Matrix/s36_d04_noise_level", 0.0, -1.0, 1.0, 0.001); +amt_s37_d04_noise_level = hslider("MM_Matrix/s37_d04_noise_level", 0.0, -1.0, 1.0, 0.001); +amt_s38_d04_noise_level = hslider("MM_Matrix/s38_d04_noise_level", 0.0, -1.0, 1.0, 0.001); +amt_s39_d04_noise_level = hslider("MM_Matrix/s39_d04_noise_level", 0.0, -1.0, 1.0, 0.001); +amt_s40_d04_noise_level = hslider("MM_Matrix/s40_d04_noise_level", 0.0, -1.0, 1.0, 0.001); +amt_s41_d04_noise_level = hslider("MM_Matrix/s41_d04_noise_level", 0.0, -1.0, 1.0, 0.001); +amt_s42_d04_noise_level = hslider("MM_Matrix/s42_d04_noise_level", 0.0, -1.0, 1.0, 0.001); +amt_s43_d04_noise_level = hslider("MM_Matrix/s43_d04_noise_level", 0.0, -1.0, 1.0, 0.001); +amt_s44_d04_noise_level = hslider("MM_Matrix/s44_d04_noise_level", 0.0, -1.0, 1.0, 0.001); +amt_s45_d04_noise_level = hslider("MM_Matrix/s45_d04_noise_level", 0.0, -1.0, 1.0, 0.001); +amt_s46_d04_noise_level = hslider("MM_Matrix/s46_d04_noise_level", 0.0, -1.0, 1.0, 0.001); +amt_s47_d04_noise_level = hslider("MM_Matrix/s47_d04_noise_level", 0.0, -1.0, 1.0, 0.001); + +// Matrix column: destination 5 = cutoff +amt_s00_d05_cutoff = hslider("MM_Matrix/s00_d05_cutoff", 0.0, -1.0, 1.0, 0.001); +amt_s01_d05_cutoff = hslider("MM_Matrix/s01_d05_cutoff", 0.0, -1.0, 1.0, 0.001); +amt_s02_d05_cutoff = hslider("MM_Matrix/s02_d05_cutoff", 0.0, -1.0, 1.0, 0.001); +amt_s03_d05_cutoff = hslider("MM_Matrix/s03_d05_cutoff", 0.0, -1.0, 1.0, 0.001); +amt_s04_d05_cutoff = hslider("MM_Matrix/s04_d05_cutoff", 0.0, -1.0, 1.0, 0.001); +amt_s05_d05_cutoff = hslider("MM_Matrix/s05_d05_cutoff", 0.0, -1.0, 1.0, 0.001); +amt_s06_d05_cutoff = hslider("MM_Matrix/s06_d05_cutoff", 0.0, -1.0, 1.0, 0.001); +amt_s07_d05_cutoff = hslider("MM_Matrix/s07_d05_cutoff", 0.0, -1.0, 1.0, 0.001); +amt_s08_d05_cutoff = hslider("MM_Matrix/s08_d05_cutoff", 0.0, -1.0, 1.0, 0.001); +amt_s09_d05_cutoff = hslider("MM_Matrix/s09_d05_cutoff", 0.0, -1.0, 1.0, 0.001); +amt_s10_d05_cutoff = hslider("MM_Matrix/s10_d05_cutoff", 0.0, -1.0, 1.0, 0.001); +amt_s11_d05_cutoff = hslider("MM_Matrix/s11_d05_cutoff", 0.0, -1.0, 1.0, 0.001); +amt_s12_d05_cutoff = hslider("MM_Matrix/s12_d05_cutoff", 0.0, -1.0, 1.0, 0.001); +amt_s13_d05_cutoff = hslider("MM_Matrix/s13_d05_cutoff", 0.0, -1.0, 1.0, 0.001); +amt_s14_d05_cutoff = hslider("MM_Matrix/s14_d05_cutoff", 0.0, -1.0, 1.0, 0.001); +amt_s15_d05_cutoff = hslider("MM_Matrix/s15_d05_cutoff", 0.0, -1.0, 1.0, 0.001); +amt_s16_d05_cutoff = hslider("MM_Matrix/s16_d05_cutoff", 0.0, -1.0, 1.0, 0.001); +amt_s17_d05_cutoff = hslider("MM_Matrix/s17_d05_cutoff", 0.0, -1.0, 1.0, 0.001); +amt_s18_d05_cutoff = hslider("MM_Matrix/s18_d05_cutoff", 0.0, -1.0, 1.0, 0.001); +amt_s19_d05_cutoff = hslider("MM_Matrix/s19_d05_cutoff", 0.0, -1.0, 1.0, 0.001); +amt_s20_d05_cutoff = hslider("MM_Matrix/s20_d05_cutoff", 0.0, -1.0, 1.0, 0.001); +amt_s21_d05_cutoff = hslider("MM_Matrix/s21_d05_cutoff", 0.0, -1.0, 1.0, 0.001); +amt_s22_d05_cutoff = hslider("MM_Matrix/s22_d05_cutoff", 0.0, -1.0, 1.0, 0.001); +amt_s23_d05_cutoff = hslider("MM_Matrix/s23_d05_cutoff", 0.0, -1.0, 1.0, 0.001); +amt_s24_d05_cutoff = hslider("MM_Matrix/s24_d05_cutoff", 0.0, -1.0, 1.0, 0.001); +amt_s25_d05_cutoff = hslider("MM_Matrix/s25_d05_cutoff", 0.0, -1.0, 1.0, 0.001); +amt_s26_d05_cutoff = hslider("MM_Matrix/s26_d05_cutoff", 0.0, -1.0, 1.0, 0.001); +amt_s27_d05_cutoff = hslider("MM_Matrix/s27_d05_cutoff", 0.0, -1.0, 1.0, 0.001); +amt_s28_d05_cutoff = hslider("MM_Matrix/s28_d05_cutoff", 0.0, -1.0, 1.0, 0.001); +amt_s29_d05_cutoff = hslider("MM_Matrix/s29_d05_cutoff", 0.0, -1.0, 1.0, 0.001); +amt_s30_d05_cutoff = hslider("MM_Matrix/s30_d05_cutoff", 0.0, -1.0, 1.0, 0.001); +amt_s31_d05_cutoff = hslider("MM_Matrix/s31_d05_cutoff", 0.0, -1.0, 1.0, 0.001); +amt_s32_d05_cutoff = hslider("MM_Matrix/s32_d05_cutoff", 0.0, -1.0, 1.0, 0.001); +amt_s33_d05_cutoff = hslider("MM_Matrix/s33_d05_cutoff", 0.0, -1.0, 1.0, 0.001); +amt_s34_d05_cutoff = hslider("MM_Matrix/s34_d05_cutoff", 0.0, -1.0, 1.0, 0.001); +amt_s35_d05_cutoff = hslider("MM_Matrix/s35_d05_cutoff", 0.0, -1.0, 1.0, 0.001); +amt_s36_d05_cutoff = hslider("MM_Matrix/s36_d05_cutoff", 0.0, -1.0, 1.0, 0.001); +amt_s37_d05_cutoff = hslider("MM_Matrix/s37_d05_cutoff", 0.0, -1.0, 1.0, 0.001); +amt_s38_d05_cutoff = hslider("MM_Matrix/s38_d05_cutoff", 0.0, -1.0, 1.0, 0.001); +amt_s39_d05_cutoff = hslider("MM_Matrix/s39_d05_cutoff", 0.0, -1.0, 1.0, 0.001); +amt_s40_d05_cutoff = hslider("MM_Matrix/s40_d05_cutoff", 0.0, -1.0, 1.0, 0.001); +amt_s41_d05_cutoff = hslider("MM_Matrix/s41_d05_cutoff", 0.0, -1.0, 1.0, 0.001); +amt_s42_d05_cutoff = hslider("MM_Matrix/s42_d05_cutoff", 0.0, -1.0, 1.0, 0.001); +amt_s43_d05_cutoff = hslider("MM_Matrix/s43_d05_cutoff", 0.0, -1.0, 1.0, 0.001); +amt_s44_d05_cutoff = hslider("MM_Matrix/s44_d05_cutoff", 0.0, -1.0, 1.0, 0.001); +amt_s45_d05_cutoff = hslider("MM_Matrix/s45_d05_cutoff", 0.0, -1.0, 1.0, 0.001); +amt_s46_d05_cutoff = hslider("MM_Matrix/s46_d05_cutoff", 0.0, -1.0, 1.0, 0.001); +amt_s47_d05_cutoff = hslider("MM_Matrix/s47_d05_cutoff", 0.0, -1.0, 1.0, 0.001); + +// Matrix column: destination 6 = resonance +amt_s00_d06_resonance = hslider("MM_Matrix/s00_d06_resonance", 0.0, -1.0, 1.0, 0.001); +amt_s01_d06_resonance = hslider("MM_Matrix/s01_d06_resonance", 0.0, -1.0, 1.0, 0.001); +amt_s02_d06_resonance = hslider("MM_Matrix/s02_d06_resonance", 0.0, -1.0, 1.0, 0.001); +amt_s03_d06_resonance = hslider("MM_Matrix/s03_d06_resonance", 0.0, -1.0, 1.0, 0.001); +amt_s04_d06_resonance = hslider("MM_Matrix/s04_d06_resonance", 0.0, -1.0, 1.0, 0.001); +amt_s05_d06_resonance = hslider("MM_Matrix/s05_d06_resonance", 0.0, -1.0, 1.0, 0.001); +amt_s06_d06_resonance = hslider("MM_Matrix/s06_d06_resonance", 0.0, -1.0, 1.0, 0.001); +amt_s07_d06_resonance = hslider("MM_Matrix/s07_d06_resonance", 0.0, -1.0, 1.0, 0.001); +amt_s08_d06_resonance = hslider("MM_Matrix/s08_d06_resonance", 0.0, -1.0, 1.0, 0.001); +amt_s09_d06_resonance = hslider("MM_Matrix/s09_d06_resonance", 0.0, -1.0, 1.0, 0.001); +amt_s10_d06_resonance = hslider("MM_Matrix/s10_d06_resonance", 0.0, -1.0, 1.0, 0.001); +amt_s11_d06_resonance = hslider("MM_Matrix/s11_d06_resonance", 0.0, -1.0, 1.0, 0.001); +amt_s12_d06_resonance = hslider("MM_Matrix/s12_d06_resonance", 0.0, -1.0, 1.0, 0.001); +amt_s13_d06_resonance = hslider("MM_Matrix/s13_d06_resonance", 0.0, -1.0, 1.0, 0.001); +amt_s14_d06_resonance = hslider("MM_Matrix/s14_d06_resonance", 0.0, -1.0, 1.0, 0.001); +amt_s15_d06_resonance = hslider("MM_Matrix/s15_d06_resonance", 0.0, -1.0, 1.0, 0.001); +amt_s16_d06_resonance = hslider("MM_Matrix/s16_d06_resonance", 0.0, -1.0, 1.0, 0.001); +amt_s17_d06_resonance = hslider("MM_Matrix/s17_d06_resonance", 0.0, -1.0, 1.0, 0.001); +amt_s18_d06_resonance = hslider("MM_Matrix/s18_d06_resonance", 0.0, -1.0, 1.0, 0.001); +amt_s19_d06_resonance = hslider("MM_Matrix/s19_d06_resonance", 0.0, -1.0, 1.0, 0.001); +amt_s20_d06_resonance = hslider("MM_Matrix/s20_d06_resonance", 0.0, -1.0, 1.0, 0.001); +amt_s21_d06_resonance = hslider("MM_Matrix/s21_d06_resonance", 0.0, -1.0, 1.0, 0.001); +amt_s22_d06_resonance = hslider("MM_Matrix/s22_d06_resonance", 0.0, -1.0, 1.0, 0.001); +amt_s23_d06_resonance = hslider("MM_Matrix/s23_d06_resonance", 0.0, -1.0, 1.0, 0.001); +amt_s24_d06_resonance = hslider("MM_Matrix/s24_d06_resonance", 0.0, -1.0, 1.0, 0.001); +amt_s25_d06_resonance = hslider("MM_Matrix/s25_d06_resonance", 0.0, -1.0, 1.0, 0.001); +amt_s26_d06_resonance = hslider("MM_Matrix/s26_d06_resonance", 0.0, -1.0, 1.0, 0.001); +amt_s27_d06_resonance = hslider("MM_Matrix/s27_d06_resonance", 0.0, -1.0, 1.0, 0.001); +amt_s28_d06_resonance = hslider("MM_Matrix/s28_d06_resonance", 0.0, -1.0, 1.0, 0.001); +amt_s29_d06_resonance = hslider("MM_Matrix/s29_d06_resonance", 0.0, -1.0, 1.0, 0.001); +amt_s30_d06_resonance = hslider("MM_Matrix/s30_d06_resonance", 0.0, -1.0, 1.0, 0.001); +amt_s31_d06_resonance = hslider("MM_Matrix/s31_d06_resonance", 0.0, -1.0, 1.0, 0.001); +amt_s32_d06_resonance = hslider("MM_Matrix/s32_d06_resonance", 0.0, -1.0, 1.0, 0.001); +amt_s33_d06_resonance = hslider("MM_Matrix/s33_d06_resonance", 0.0, -1.0, 1.0, 0.001); +amt_s34_d06_resonance = hslider("MM_Matrix/s34_d06_resonance", 0.0, -1.0, 1.0, 0.001); +amt_s35_d06_resonance = hslider("MM_Matrix/s35_d06_resonance", 0.0, -1.0, 1.0, 0.001); +amt_s36_d06_resonance = hslider("MM_Matrix/s36_d06_resonance", 0.0, -1.0, 1.0, 0.001); +amt_s37_d06_resonance = hslider("MM_Matrix/s37_d06_resonance", 0.0, -1.0, 1.0, 0.001); +amt_s38_d06_resonance = hslider("MM_Matrix/s38_d06_resonance", 0.0, -1.0, 1.0, 0.001); +amt_s39_d06_resonance = hslider("MM_Matrix/s39_d06_resonance", 0.0, -1.0, 1.0, 0.001); +amt_s40_d06_resonance = hslider("MM_Matrix/s40_d06_resonance", 0.0, -1.0, 1.0, 0.001); +amt_s41_d06_resonance = hslider("MM_Matrix/s41_d06_resonance", 0.0, -1.0, 1.0, 0.001); +amt_s42_d06_resonance = hslider("MM_Matrix/s42_d06_resonance", 0.0, -1.0, 1.0, 0.001); +amt_s43_d06_resonance = hslider("MM_Matrix/s43_d06_resonance", 0.0, -1.0, 1.0, 0.001); +amt_s44_d06_resonance = hslider("MM_Matrix/s44_d06_resonance", 0.0, -1.0, 1.0, 0.001); +amt_s45_d06_resonance = hslider("MM_Matrix/s45_d06_resonance", 0.0, -1.0, 1.0, 0.001); +amt_s46_d06_resonance = hslider("MM_Matrix/s46_d06_resonance", 0.0, -1.0, 1.0, 0.001); +amt_s47_d06_resonance = hslider("MM_Matrix/s47_d06_resonance", 0.0, -1.0, 1.0, 0.001); + +// Matrix column: destination 7 = filter_env_amt +amt_s00_d07_filter_env_amt = hslider("MM_Matrix/s00_d07_filter_env_amt", 0.0, -1.0, 1.0, 0.001); +amt_s01_d07_filter_env_amt = hslider("MM_Matrix/s01_d07_filter_env_amt", 0.0, -1.0, 1.0, 0.001); +amt_s02_d07_filter_env_amt = hslider("MM_Matrix/s02_d07_filter_env_amt", 0.0, -1.0, 1.0, 0.001); +amt_s03_d07_filter_env_amt = hslider("MM_Matrix/s03_d07_filter_env_amt", 0.0, -1.0, 1.0, 0.001); +amt_s04_d07_filter_env_amt = hslider("MM_Matrix/s04_d07_filter_env_amt", 0.0, -1.0, 1.0, 0.001); +amt_s05_d07_filter_env_amt = hslider("MM_Matrix/s05_d07_filter_env_amt", 0.0, -1.0, 1.0, 0.001); +amt_s06_d07_filter_env_amt = hslider("MM_Matrix/s06_d07_filter_env_amt", 0.0, -1.0, 1.0, 0.001); +amt_s07_d07_filter_env_amt = hslider("MM_Matrix/s07_d07_filter_env_amt", 0.0, -1.0, 1.0, 0.001); +amt_s08_d07_filter_env_amt = hslider("MM_Matrix/s08_d07_filter_env_amt", 0.0, -1.0, 1.0, 0.001); +amt_s09_d07_filter_env_amt = hslider("MM_Matrix/s09_d07_filter_env_amt", 0.0, -1.0, 1.0, 0.001); +amt_s10_d07_filter_env_amt = hslider("MM_Matrix/s10_d07_filter_env_amt", 0.0, -1.0, 1.0, 0.001); +amt_s11_d07_filter_env_amt = hslider("MM_Matrix/s11_d07_filter_env_amt", 0.0, -1.0, 1.0, 0.001); +amt_s12_d07_filter_env_amt = hslider("MM_Matrix/s12_d07_filter_env_amt", 0.0, -1.0, 1.0, 0.001); +amt_s13_d07_filter_env_amt = hslider("MM_Matrix/s13_d07_filter_env_amt", 0.0, -1.0, 1.0, 0.001); +amt_s14_d07_filter_env_amt = hslider("MM_Matrix/s14_d07_filter_env_amt", 0.0, -1.0, 1.0, 0.001); +amt_s15_d07_filter_env_amt = hslider("MM_Matrix/s15_d07_filter_env_amt", 0.0, -1.0, 1.0, 0.001); +amt_s16_d07_filter_env_amt = hslider("MM_Matrix/s16_d07_filter_env_amt", 0.0, -1.0, 1.0, 0.001); +amt_s17_d07_filter_env_amt = hslider("MM_Matrix/s17_d07_filter_env_amt", 0.0, -1.0, 1.0, 0.001); +amt_s18_d07_filter_env_amt = hslider("MM_Matrix/s18_d07_filter_env_amt", 0.0, -1.0, 1.0, 0.001); +amt_s19_d07_filter_env_amt = hslider("MM_Matrix/s19_d07_filter_env_amt", 0.0, -1.0, 1.0, 0.001); +amt_s20_d07_filter_env_amt = hslider("MM_Matrix/s20_d07_filter_env_amt", 0.0, -1.0, 1.0, 0.001); +amt_s21_d07_filter_env_amt = hslider("MM_Matrix/s21_d07_filter_env_amt", 0.0, -1.0, 1.0, 0.001); +amt_s22_d07_filter_env_amt = hslider("MM_Matrix/s22_d07_filter_env_amt", 0.0, -1.0, 1.0, 0.001); +amt_s23_d07_filter_env_amt = hslider("MM_Matrix/s23_d07_filter_env_amt", 0.0, -1.0, 1.0, 0.001); +amt_s24_d07_filter_env_amt = hslider("MM_Matrix/s24_d07_filter_env_amt", 0.0, -1.0, 1.0, 0.001); +amt_s25_d07_filter_env_amt = hslider("MM_Matrix/s25_d07_filter_env_amt", 0.0, -1.0, 1.0, 0.001); +amt_s26_d07_filter_env_amt = hslider("MM_Matrix/s26_d07_filter_env_amt", 0.0, -1.0, 1.0, 0.001); +amt_s27_d07_filter_env_amt = hslider("MM_Matrix/s27_d07_filter_env_amt", 0.0, -1.0, 1.0, 0.001); +amt_s28_d07_filter_env_amt = hslider("MM_Matrix/s28_d07_filter_env_amt", 0.0, -1.0, 1.0, 0.001); +amt_s29_d07_filter_env_amt = hslider("MM_Matrix/s29_d07_filter_env_amt", 0.0, -1.0, 1.0, 0.001); +amt_s30_d07_filter_env_amt = hslider("MM_Matrix/s30_d07_filter_env_amt", 0.0, -1.0, 1.0, 0.001); +amt_s31_d07_filter_env_amt = hslider("MM_Matrix/s31_d07_filter_env_amt", 0.0, -1.0, 1.0, 0.001); +amt_s32_d07_filter_env_amt = hslider("MM_Matrix/s32_d07_filter_env_amt", 0.0, -1.0, 1.0, 0.001); +amt_s33_d07_filter_env_amt = hslider("MM_Matrix/s33_d07_filter_env_amt", 0.0, -1.0, 1.0, 0.001); +amt_s34_d07_filter_env_amt = hslider("MM_Matrix/s34_d07_filter_env_amt", 0.0, -1.0, 1.0, 0.001); +amt_s35_d07_filter_env_amt = hslider("MM_Matrix/s35_d07_filter_env_amt", 0.0, -1.0, 1.0, 0.001); +amt_s36_d07_filter_env_amt = hslider("MM_Matrix/s36_d07_filter_env_amt", 0.0, -1.0, 1.0, 0.001); +amt_s37_d07_filter_env_amt = hslider("MM_Matrix/s37_d07_filter_env_amt", 0.0, -1.0, 1.0, 0.001); +amt_s38_d07_filter_env_amt = hslider("MM_Matrix/s38_d07_filter_env_amt", 0.0, -1.0, 1.0, 0.001); +amt_s39_d07_filter_env_amt = hslider("MM_Matrix/s39_d07_filter_env_amt", 0.0, -1.0, 1.0, 0.001); +amt_s40_d07_filter_env_amt = hslider("MM_Matrix/s40_d07_filter_env_amt", 0.0, -1.0, 1.0, 0.001); +amt_s41_d07_filter_env_amt = hslider("MM_Matrix/s41_d07_filter_env_amt", 0.0, -1.0, 1.0, 0.001); +amt_s42_d07_filter_env_amt = hslider("MM_Matrix/s42_d07_filter_env_amt", 0.0, -1.0, 1.0, 0.001); +amt_s43_d07_filter_env_amt = hslider("MM_Matrix/s43_d07_filter_env_amt", 0.0, -1.0, 1.0, 0.001); +amt_s44_d07_filter_env_amt = hslider("MM_Matrix/s44_d07_filter_env_amt", 0.0, -1.0, 1.0, 0.001); +amt_s45_d07_filter_env_amt = hslider("MM_Matrix/s45_d07_filter_env_amt", 0.0, -1.0, 1.0, 0.001); +amt_s46_d07_filter_env_amt = hslider("MM_Matrix/s46_d07_filter_env_amt", 0.0, -1.0, 1.0, 0.001); +amt_s47_d07_filter_env_amt = hslider("MM_Matrix/s47_d07_filter_env_amt", 0.0, -1.0, 1.0, 0.001); + +// Matrix column: destination 8 = amp +amt_s00_d08_amp = hslider("MM_Matrix/s00_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s01_d08_amp = hslider("MM_Matrix/s01_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s02_d08_amp = hslider("MM_Matrix/s02_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s03_d08_amp = hslider("MM_Matrix/s03_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s04_d08_amp = hslider("MM_Matrix/s04_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s05_d08_amp = hslider("MM_Matrix/s05_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s06_d08_amp = hslider("MM_Matrix/s06_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s07_d08_amp = hslider("MM_Matrix/s07_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s08_d08_amp = hslider("MM_Matrix/s08_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s09_d08_amp = hslider("MM_Matrix/s09_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s10_d08_amp = hslider("MM_Matrix/s10_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s11_d08_amp = hslider("MM_Matrix/s11_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s12_d08_amp = hslider("MM_Matrix/s12_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s13_d08_amp = hslider("MM_Matrix/s13_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s14_d08_amp = hslider("MM_Matrix/s14_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s15_d08_amp = hslider("MM_Matrix/s15_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s16_d08_amp = hslider("MM_Matrix/s16_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s17_d08_amp = hslider("MM_Matrix/s17_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s18_d08_amp = hslider("MM_Matrix/s18_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s19_d08_amp = hslider("MM_Matrix/s19_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s20_d08_amp = hslider("MM_Matrix/s20_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s21_d08_amp = hslider("MM_Matrix/s21_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s22_d08_amp = hslider("MM_Matrix/s22_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s23_d08_amp = hslider("MM_Matrix/s23_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s24_d08_amp = hslider("MM_Matrix/s24_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s25_d08_amp = hslider("MM_Matrix/s25_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s26_d08_amp = hslider("MM_Matrix/s26_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s27_d08_amp = hslider("MM_Matrix/s27_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s28_d08_amp = hslider("MM_Matrix/s28_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s29_d08_amp = hslider("MM_Matrix/s29_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s30_d08_amp = hslider("MM_Matrix/s30_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s31_d08_amp = hslider("MM_Matrix/s31_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s32_d08_amp = hslider("MM_Matrix/s32_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s33_d08_amp = hslider("MM_Matrix/s33_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s34_d08_amp = hslider("MM_Matrix/s34_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s35_d08_amp = hslider("MM_Matrix/s35_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s36_d08_amp = hslider("MM_Matrix/s36_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s37_d08_amp = hslider("MM_Matrix/s37_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s38_d08_amp = hslider("MM_Matrix/s38_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s39_d08_amp = hslider("MM_Matrix/s39_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s40_d08_amp = hslider("MM_Matrix/s40_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s41_d08_amp = hslider("MM_Matrix/s41_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s42_d08_amp = hslider("MM_Matrix/s42_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s43_d08_amp = hslider("MM_Matrix/s43_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s44_d08_amp = hslider("MM_Matrix/s44_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s45_d08_amp = hslider("MM_Matrix/s45_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s46_d08_amp = hslider("MM_Matrix/s46_d08_amp", 0.0, -1.0, 1.0, 0.001); +amt_s47_d08_amp = hslider("MM_Matrix/s47_d08_amp", 0.0, -1.0, 1.0, 0.001); + +// Matrix column: destination 9 = pan +amt_s00_d09_pan = hslider("MM_Matrix/s00_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s01_d09_pan = hslider("MM_Matrix/s01_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s02_d09_pan = hslider("MM_Matrix/s02_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s03_d09_pan = hslider("MM_Matrix/s03_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s04_d09_pan = hslider("MM_Matrix/s04_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s05_d09_pan = hslider("MM_Matrix/s05_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s06_d09_pan = hslider("MM_Matrix/s06_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s07_d09_pan = hslider("MM_Matrix/s07_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s08_d09_pan = hslider("MM_Matrix/s08_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s09_d09_pan = hslider("MM_Matrix/s09_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s10_d09_pan = hslider("MM_Matrix/s10_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s11_d09_pan = hslider("MM_Matrix/s11_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s12_d09_pan = hslider("MM_Matrix/s12_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s13_d09_pan = hslider("MM_Matrix/s13_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s14_d09_pan = hslider("MM_Matrix/s14_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s15_d09_pan = hslider("MM_Matrix/s15_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s16_d09_pan = hslider("MM_Matrix/s16_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s17_d09_pan = hslider("MM_Matrix/s17_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s18_d09_pan = hslider("MM_Matrix/s18_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s19_d09_pan = hslider("MM_Matrix/s19_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s20_d09_pan = hslider("MM_Matrix/s20_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s21_d09_pan = hslider("MM_Matrix/s21_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s22_d09_pan = hslider("MM_Matrix/s22_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s23_d09_pan = hslider("MM_Matrix/s23_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s24_d09_pan = hslider("MM_Matrix/s24_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s25_d09_pan = hslider("MM_Matrix/s25_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s26_d09_pan = hslider("MM_Matrix/s26_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s27_d09_pan = hslider("MM_Matrix/s27_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s28_d09_pan = hslider("MM_Matrix/s28_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s29_d09_pan = hslider("MM_Matrix/s29_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s30_d09_pan = hslider("MM_Matrix/s30_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s31_d09_pan = hslider("MM_Matrix/s31_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s32_d09_pan = hslider("MM_Matrix/s32_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s33_d09_pan = hslider("MM_Matrix/s33_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s34_d09_pan = hslider("MM_Matrix/s34_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s35_d09_pan = hslider("MM_Matrix/s35_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s36_d09_pan = hslider("MM_Matrix/s36_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s37_d09_pan = hslider("MM_Matrix/s37_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s38_d09_pan = hslider("MM_Matrix/s38_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s39_d09_pan = hslider("MM_Matrix/s39_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s40_d09_pan = hslider("MM_Matrix/s40_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s41_d09_pan = hslider("MM_Matrix/s41_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s42_d09_pan = hslider("MM_Matrix/s42_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s43_d09_pan = hslider("MM_Matrix/s43_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s44_d09_pan = hslider("MM_Matrix/s44_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s45_d09_pan = hslider("MM_Matrix/s45_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s46_d09_pan = hslider("MM_Matrix/s46_d09_pan", 0.0, -1.0, 1.0, 0.001); +amt_s47_d09_pan = hslider("MM_Matrix/s47_d09_pan", 0.0, -1.0, 1.0, 0.001); + +// --------------------------------------------------------------------------- +// Destination signals — one per modulation destination. Each is a 48-term +// weighted sum of sources × amounts. The `gate` argument is threaded through +// so that mp.src??(gate) can drive ADSR envelopes. +// --------------------------------------------------------------------------- + +mod_pitch(gate) = + mp.src00(gate) * amt_s00_d00_pitch + + mp.src01(gate) * amt_s01_d00_pitch + + mp.src02(gate) * amt_s02_d00_pitch + + mp.src03(gate) * amt_s03_d00_pitch + + mp.src04(gate) * amt_s04_d00_pitch + + mp.src05(gate) * amt_s05_d00_pitch + + mp.src06(gate) * amt_s06_d00_pitch + + mp.src07(gate) * amt_s07_d00_pitch + + mp.src08(gate) * amt_s08_d00_pitch + + mp.src09(gate) * amt_s09_d00_pitch + + mp.src10(gate) * amt_s10_d00_pitch + + mp.src11(gate) * amt_s11_d00_pitch + + mp.src12(gate) * amt_s12_d00_pitch + + mp.src13(gate) * amt_s13_d00_pitch + + mp.src14(gate) * amt_s14_d00_pitch + + mp.src15(gate) * amt_s15_d00_pitch + + mp.src16(gate) * amt_s16_d00_pitch + + mp.src17(gate) * amt_s17_d00_pitch + + mp.src18(gate) * amt_s18_d00_pitch + + mp.src19(gate) * amt_s19_d00_pitch + + mp.src20(gate) * amt_s20_d00_pitch + + mp.src21(gate) * amt_s21_d00_pitch + + mp.src22(gate) * amt_s22_d00_pitch + + mp.src23(gate) * amt_s23_d00_pitch + + mp.src24(gate) * amt_s24_d00_pitch + + mp.src25(gate) * amt_s25_d00_pitch + + mp.src26(gate) * amt_s26_d00_pitch + + mp.src27(gate) * amt_s27_d00_pitch + + mp.src28(gate) * amt_s28_d00_pitch + + mp.src29(gate) * amt_s29_d00_pitch + + mp.src30(gate) * amt_s30_d00_pitch + + mp.src31(gate) * amt_s31_d00_pitch + + mp.src32(gate) * amt_s32_d00_pitch + + mp.src33(gate) * amt_s33_d00_pitch + + mp.src34(gate) * amt_s34_d00_pitch + + mp.src35(gate) * amt_s35_d00_pitch + + mp.src36(gate) * amt_s36_d00_pitch + + mp.src37(gate) * amt_s37_d00_pitch + + mp.src38(gate) * amt_s38_d00_pitch + + mp.src39(gate) * amt_s39_d00_pitch + + mp.src40(gate) * amt_s40_d00_pitch + + mp.src41(gate) * amt_s41_d00_pitch + + mp.src42(gate) * amt_s42_d00_pitch + + mp.src43(gate) * amt_s43_d00_pitch + + mp.src44(gate) * amt_s44_d00_pitch + + mp.src45(gate) * amt_s45_d00_pitch + + mp.src46(gate) * amt_s46_d00_pitch + + mp.src47(gate) * amt_s47_d00_pitch; + +mod_osc2_detune(gate) = + mp.src00(gate) * amt_s00_d01_osc2_detune + + mp.src01(gate) * amt_s01_d01_osc2_detune + + mp.src02(gate) * amt_s02_d01_osc2_detune + + mp.src03(gate) * amt_s03_d01_osc2_detune + + mp.src04(gate) * amt_s04_d01_osc2_detune + + mp.src05(gate) * amt_s05_d01_osc2_detune + + mp.src06(gate) * amt_s06_d01_osc2_detune + + mp.src07(gate) * amt_s07_d01_osc2_detune + + mp.src08(gate) * amt_s08_d01_osc2_detune + + mp.src09(gate) * amt_s09_d01_osc2_detune + + mp.src10(gate) * amt_s10_d01_osc2_detune + + mp.src11(gate) * amt_s11_d01_osc2_detune + + mp.src12(gate) * amt_s12_d01_osc2_detune + + mp.src13(gate) * amt_s13_d01_osc2_detune + + mp.src14(gate) * amt_s14_d01_osc2_detune + + mp.src15(gate) * amt_s15_d01_osc2_detune + + mp.src16(gate) * amt_s16_d01_osc2_detune + + mp.src17(gate) * amt_s17_d01_osc2_detune + + mp.src18(gate) * amt_s18_d01_osc2_detune + + mp.src19(gate) * amt_s19_d01_osc2_detune + + mp.src20(gate) * amt_s20_d01_osc2_detune + + mp.src21(gate) * amt_s21_d01_osc2_detune + + mp.src22(gate) * amt_s22_d01_osc2_detune + + mp.src23(gate) * amt_s23_d01_osc2_detune + + mp.src24(gate) * amt_s24_d01_osc2_detune + + mp.src25(gate) * amt_s25_d01_osc2_detune + + mp.src26(gate) * amt_s26_d01_osc2_detune + + mp.src27(gate) * amt_s27_d01_osc2_detune + + mp.src28(gate) * amt_s28_d01_osc2_detune + + mp.src29(gate) * amt_s29_d01_osc2_detune + + mp.src30(gate) * amt_s30_d01_osc2_detune + + mp.src31(gate) * amt_s31_d01_osc2_detune + + mp.src32(gate) * amt_s32_d01_osc2_detune + + mp.src33(gate) * amt_s33_d01_osc2_detune + + mp.src34(gate) * amt_s34_d01_osc2_detune + + mp.src35(gate) * amt_s35_d01_osc2_detune + + mp.src36(gate) * amt_s36_d01_osc2_detune + + mp.src37(gate) * amt_s37_d01_osc2_detune + + mp.src38(gate) * amt_s38_d01_osc2_detune + + mp.src39(gate) * amt_s39_d01_osc2_detune + + mp.src40(gate) * amt_s40_d01_osc2_detune + + mp.src41(gate) * amt_s41_d01_osc2_detune + + mp.src42(gate) * amt_s42_d01_osc2_detune + + mp.src43(gate) * amt_s43_d01_osc2_detune + + mp.src44(gate) * amt_s44_d01_osc2_detune + + mp.src45(gate) * amt_s45_d01_osc2_detune + + mp.src46(gate) * amt_s46_d01_osc2_detune + + mp.src47(gate) * amt_s47_d01_osc2_detune; + +mod_osc3_detune(gate) = + mp.src00(gate) * amt_s00_d02_osc3_detune + + mp.src01(gate) * amt_s01_d02_osc3_detune + + mp.src02(gate) * amt_s02_d02_osc3_detune + + mp.src03(gate) * amt_s03_d02_osc3_detune + + mp.src04(gate) * amt_s04_d02_osc3_detune + + mp.src05(gate) * amt_s05_d02_osc3_detune + + mp.src06(gate) * amt_s06_d02_osc3_detune + + mp.src07(gate) * amt_s07_d02_osc3_detune + + mp.src08(gate) * amt_s08_d02_osc3_detune + + mp.src09(gate) * amt_s09_d02_osc3_detune + + mp.src10(gate) * amt_s10_d02_osc3_detune + + mp.src11(gate) * amt_s11_d02_osc3_detune + + mp.src12(gate) * amt_s12_d02_osc3_detune + + mp.src13(gate) * amt_s13_d02_osc3_detune + + mp.src14(gate) * amt_s14_d02_osc3_detune + + mp.src15(gate) * amt_s15_d02_osc3_detune + + mp.src16(gate) * amt_s16_d02_osc3_detune + + mp.src17(gate) * amt_s17_d02_osc3_detune + + mp.src18(gate) * amt_s18_d02_osc3_detune + + mp.src19(gate) * amt_s19_d02_osc3_detune + + mp.src20(gate) * amt_s20_d02_osc3_detune + + mp.src21(gate) * amt_s21_d02_osc3_detune + + mp.src22(gate) * amt_s22_d02_osc3_detune + + mp.src23(gate) * amt_s23_d02_osc3_detune + + mp.src24(gate) * amt_s24_d02_osc3_detune + + mp.src25(gate) * amt_s25_d02_osc3_detune + + mp.src26(gate) * amt_s26_d02_osc3_detune + + mp.src27(gate) * amt_s27_d02_osc3_detune + + mp.src28(gate) * amt_s28_d02_osc3_detune + + mp.src29(gate) * amt_s29_d02_osc3_detune + + mp.src30(gate) * amt_s30_d02_osc3_detune + + mp.src31(gate) * amt_s31_d02_osc3_detune + + mp.src32(gate) * amt_s32_d02_osc3_detune + + mp.src33(gate) * amt_s33_d02_osc3_detune + + mp.src34(gate) * amt_s34_d02_osc3_detune + + mp.src35(gate) * amt_s35_d02_osc3_detune + + mp.src36(gate) * amt_s36_d02_osc3_detune + + mp.src37(gate) * amt_s37_d02_osc3_detune + + mp.src38(gate) * amt_s38_d02_osc3_detune + + mp.src39(gate) * amt_s39_d02_osc3_detune + + mp.src40(gate) * amt_s40_d02_osc3_detune + + mp.src41(gate) * amt_s41_d02_osc3_detune + + mp.src42(gate) * amt_s42_d02_osc3_detune + + mp.src43(gate) * amt_s43_d02_osc3_detune + + mp.src44(gate) * amt_s44_d02_osc3_detune + + mp.src45(gate) * amt_s45_d02_osc3_detune + + mp.src46(gate) * amt_s46_d02_osc3_detune + + mp.src47(gate) * amt_s47_d02_osc3_detune; + +mod_osc_mix_bal(gate) = + mp.src00(gate) * amt_s00_d03_osc_mix_bal + + mp.src01(gate) * amt_s01_d03_osc_mix_bal + + mp.src02(gate) * amt_s02_d03_osc_mix_bal + + mp.src03(gate) * amt_s03_d03_osc_mix_bal + + mp.src04(gate) * amt_s04_d03_osc_mix_bal + + mp.src05(gate) * amt_s05_d03_osc_mix_bal + + mp.src06(gate) * amt_s06_d03_osc_mix_bal + + mp.src07(gate) * amt_s07_d03_osc_mix_bal + + mp.src08(gate) * amt_s08_d03_osc_mix_bal + + mp.src09(gate) * amt_s09_d03_osc_mix_bal + + mp.src10(gate) * amt_s10_d03_osc_mix_bal + + mp.src11(gate) * amt_s11_d03_osc_mix_bal + + mp.src12(gate) * amt_s12_d03_osc_mix_bal + + mp.src13(gate) * amt_s13_d03_osc_mix_bal + + mp.src14(gate) * amt_s14_d03_osc_mix_bal + + mp.src15(gate) * amt_s15_d03_osc_mix_bal + + mp.src16(gate) * amt_s16_d03_osc_mix_bal + + mp.src17(gate) * amt_s17_d03_osc_mix_bal + + mp.src18(gate) * amt_s18_d03_osc_mix_bal + + mp.src19(gate) * amt_s19_d03_osc_mix_bal + + mp.src20(gate) * amt_s20_d03_osc_mix_bal + + mp.src21(gate) * amt_s21_d03_osc_mix_bal + + mp.src22(gate) * amt_s22_d03_osc_mix_bal + + mp.src23(gate) * amt_s23_d03_osc_mix_bal + + mp.src24(gate) * amt_s24_d03_osc_mix_bal + + mp.src25(gate) * amt_s25_d03_osc_mix_bal + + mp.src26(gate) * amt_s26_d03_osc_mix_bal + + mp.src27(gate) * amt_s27_d03_osc_mix_bal + + mp.src28(gate) * amt_s28_d03_osc_mix_bal + + mp.src29(gate) * amt_s29_d03_osc_mix_bal + + mp.src30(gate) * amt_s30_d03_osc_mix_bal + + mp.src31(gate) * amt_s31_d03_osc_mix_bal + + mp.src32(gate) * amt_s32_d03_osc_mix_bal + + mp.src33(gate) * amt_s33_d03_osc_mix_bal + + mp.src34(gate) * amt_s34_d03_osc_mix_bal + + mp.src35(gate) * amt_s35_d03_osc_mix_bal + + mp.src36(gate) * amt_s36_d03_osc_mix_bal + + mp.src37(gate) * amt_s37_d03_osc_mix_bal + + mp.src38(gate) * amt_s38_d03_osc_mix_bal + + mp.src39(gate) * amt_s39_d03_osc_mix_bal + + mp.src40(gate) * amt_s40_d03_osc_mix_bal + + mp.src41(gate) * amt_s41_d03_osc_mix_bal + + mp.src42(gate) * amt_s42_d03_osc_mix_bal + + mp.src43(gate) * amt_s43_d03_osc_mix_bal + + mp.src44(gate) * amt_s44_d03_osc_mix_bal + + mp.src45(gate) * amt_s45_d03_osc_mix_bal + + mp.src46(gate) * amt_s46_d03_osc_mix_bal + + mp.src47(gate) * amt_s47_d03_osc_mix_bal; + +mod_noise_level(gate) = + mp.src00(gate) * amt_s00_d04_noise_level + + mp.src01(gate) * amt_s01_d04_noise_level + + mp.src02(gate) * amt_s02_d04_noise_level + + mp.src03(gate) * amt_s03_d04_noise_level + + mp.src04(gate) * amt_s04_d04_noise_level + + mp.src05(gate) * amt_s05_d04_noise_level + + mp.src06(gate) * amt_s06_d04_noise_level + + mp.src07(gate) * amt_s07_d04_noise_level + + mp.src08(gate) * amt_s08_d04_noise_level + + mp.src09(gate) * amt_s09_d04_noise_level + + mp.src10(gate) * amt_s10_d04_noise_level + + mp.src11(gate) * amt_s11_d04_noise_level + + mp.src12(gate) * amt_s12_d04_noise_level + + mp.src13(gate) * amt_s13_d04_noise_level + + mp.src14(gate) * amt_s14_d04_noise_level + + mp.src15(gate) * amt_s15_d04_noise_level + + mp.src16(gate) * amt_s16_d04_noise_level + + mp.src17(gate) * amt_s17_d04_noise_level + + mp.src18(gate) * amt_s18_d04_noise_level + + mp.src19(gate) * amt_s19_d04_noise_level + + mp.src20(gate) * amt_s20_d04_noise_level + + mp.src21(gate) * amt_s21_d04_noise_level + + mp.src22(gate) * amt_s22_d04_noise_level + + mp.src23(gate) * amt_s23_d04_noise_level + + mp.src24(gate) * amt_s24_d04_noise_level + + mp.src25(gate) * amt_s25_d04_noise_level + + mp.src26(gate) * amt_s26_d04_noise_level + + mp.src27(gate) * amt_s27_d04_noise_level + + mp.src28(gate) * amt_s28_d04_noise_level + + mp.src29(gate) * amt_s29_d04_noise_level + + mp.src30(gate) * amt_s30_d04_noise_level + + mp.src31(gate) * amt_s31_d04_noise_level + + mp.src32(gate) * amt_s32_d04_noise_level + + mp.src33(gate) * amt_s33_d04_noise_level + + mp.src34(gate) * amt_s34_d04_noise_level + + mp.src35(gate) * amt_s35_d04_noise_level + + mp.src36(gate) * amt_s36_d04_noise_level + + mp.src37(gate) * amt_s37_d04_noise_level + + mp.src38(gate) * amt_s38_d04_noise_level + + mp.src39(gate) * amt_s39_d04_noise_level + + mp.src40(gate) * amt_s40_d04_noise_level + + mp.src41(gate) * amt_s41_d04_noise_level + + mp.src42(gate) * amt_s42_d04_noise_level + + mp.src43(gate) * amt_s43_d04_noise_level + + mp.src44(gate) * amt_s44_d04_noise_level + + mp.src45(gate) * amt_s45_d04_noise_level + + mp.src46(gate) * amt_s46_d04_noise_level + + mp.src47(gate) * amt_s47_d04_noise_level; + +mod_cutoff(gate) = + mp.src00(gate) * amt_s00_d05_cutoff + + mp.src01(gate) * amt_s01_d05_cutoff + + mp.src02(gate) * amt_s02_d05_cutoff + + mp.src03(gate) * amt_s03_d05_cutoff + + mp.src04(gate) * amt_s04_d05_cutoff + + mp.src05(gate) * amt_s05_d05_cutoff + + mp.src06(gate) * amt_s06_d05_cutoff + + mp.src07(gate) * amt_s07_d05_cutoff + + mp.src08(gate) * amt_s08_d05_cutoff + + mp.src09(gate) * amt_s09_d05_cutoff + + mp.src10(gate) * amt_s10_d05_cutoff + + mp.src11(gate) * amt_s11_d05_cutoff + + mp.src12(gate) * amt_s12_d05_cutoff + + mp.src13(gate) * amt_s13_d05_cutoff + + mp.src14(gate) * amt_s14_d05_cutoff + + mp.src15(gate) * amt_s15_d05_cutoff + + mp.src16(gate) * amt_s16_d05_cutoff + + mp.src17(gate) * amt_s17_d05_cutoff + + mp.src18(gate) * amt_s18_d05_cutoff + + mp.src19(gate) * amt_s19_d05_cutoff + + mp.src20(gate) * amt_s20_d05_cutoff + + mp.src21(gate) * amt_s21_d05_cutoff + + mp.src22(gate) * amt_s22_d05_cutoff + + mp.src23(gate) * amt_s23_d05_cutoff + + mp.src24(gate) * amt_s24_d05_cutoff + + mp.src25(gate) * amt_s25_d05_cutoff + + mp.src26(gate) * amt_s26_d05_cutoff + + mp.src27(gate) * amt_s27_d05_cutoff + + mp.src28(gate) * amt_s28_d05_cutoff + + mp.src29(gate) * amt_s29_d05_cutoff + + mp.src30(gate) * amt_s30_d05_cutoff + + mp.src31(gate) * amt_s31_d05_cutoff + + mp.src32(gate) * amt_s32_d05_cutoff + + mp.src33(gate) * amt_s33_d05_cutoff + + mp.src34(gate) * amt_s34_d05_cutoff + + mp.src35(gate) * amt_s35_d05_cutoff + + mp.src36(gate) * amt_s36_d05_cutoff + + mp.src37(gate) * amt_s37_d05_cutoff + + mp.src38(gate) * amt_s38_d05_cutoff + + mp.src39(gate) * amt_s39_d05_cutoff + + mp.src40(gate) * amt_s40_d05_cutoff + + mp.src41(gate) * amt_s41_d05_cutoff + + mp.src42(gate) * amt_s42_d05_cutoff + + mp.src43(gate) * amt_s43_d05_cutoff + + mp.src44(gate) * amt_s44_d05_cutoff + + mp.src45(gate) * amt_s45_d05_cutoff + + mp.src46(gate) * amt_s46_d05_cutoff + + mp.src47(gate) * amt_s47_d05_cutoff; + +mod_resonance(gate) = + mp.src00(gate) * amt_s00_d06_resonance + + mp.src01(gate) * amt_s01_d06_resonance + + mp.src02(gate) * amt_s02_d06_resonance + + mp.src03(gate) * amt_s03_d06_resonance + + mp.src04(gate) * amt_s04_d06_resonance + + mp.src05(gate) * amt_s05_d06_resonance + + mp.src06(gate) * amt_s06_d06_resonance + + mp.src07(gate) * amt_s07_d06_resonance + + mp.src08(gate) * amt_s08_d06_resonance + + mp.src09(gate) * amt_s09_d06_resonance + + mp.src10(gate) * amt_s10_d06_resonance + + mp.src11(gate) * amt_s11_d06_resonance + + mp.src12(gate) * amt_s12_d06_resonance + + mp.src13(gate) * amt_s13_d06_resonance + + mp.src14(gate) * amt_s14_d06_resonance + + mp.src15(gate) * amt_s15_d06_resonance + + mp.src16(gate) * amt_s16_d06_resonance + + mp.src17(gate) * amt_s17_d06_resonance + + mp.src18(gate) * amt_s18_d06_resonance + + mp.src19(gate) * amt_s19_d06_resonance + + mp.src20(gate) * amt_s20_d06_resonance + + mp.src21(gate) * amt_s21_d06_resonance + + mp.src22(gate) * amt_s22_d06_resonance + + mp.src23(gate) * amt_s23_d06_resonance + + mp.src24(gate) * amt_s24_d06_resonance + + mp.src25(gate) * amt_s25_d06_resonance + + mp.src26(gate) * amt_s26_d06_resonance + + mp.src27(gate) * amt_s27_d06_resonance + + mp.src28(gate) * amt_s28_d06_resonance + + mp.src29(gate) * amt_s29_d06_resonance + + mp.src30(gate) * amt_s30_d06_resonance + + mp.src31(gate) * amt_s31_d06_resonance + + mp.src32(gate) * amt_s32_d06_resonance + + mp.src33(gate) * amt_s33_d06_resonance + + mp.src34(gate) * amt_s34_d06_resonance + + mp.src35(gate) * amt_s35_d06_resonance + + mp.src36(gate) * amt_s36_d06_resonance + + mp.src37(gate) * amt_s37_d06_resonance + + mp.src38(gate) * amt_s38_d06_resonance + + mp.src39(gate) * amt_s39_d06_resonance + + mp.src40(gate) * amt_s40_d06_resonance + + mp.src41(gate) * amt_s41_d06_resonance + + mp.src42(gate) * amt_s42_d06_resonance + + mp.src43(gate) * amt_s43_d06_resonance + + mp.src44(gate) * amt_s44_d06_resonance + + mp.src45(gate) * amt_s45_d06_resonance + + mp.src46(gate) * amt_s46_d06_resonance + + mp.src47(gate) * amt_s47_d06_resonance; + +mod_filter_env_amt(gate) = + mp.src00(gate) * amt_s00_d07_filter_env_amt + + mp.src01(gate) * amt_s01_d07_filter_env_amt + + mp.src02(gate) * amt_s02_d07_filter_env_amt + + mp.src03(gate) * amt_s03_d07_filter_env_amt + + mp.src04(gate) * amt_s04_d07_filter_env_amt + + mp.src05(gate) * amt_s05_d07_filter_env_amt + + mp.src06(gate) * amt_s06_d07_filter_env_amt + + mp.src07(gate) * amt_s07_d07_filter_env_amt + + mp.src08(gate) * amt_s08_d07_filter_env_amt + + mp.src09(gate) * amt_s09_d07_filter_env_amt + + mp.src10(gate) * amt_s10_d07_filter_env_amt + + mp.src11(gate) * amt_s11_d07_filter_env_amt + + mp.src12(gate) * amt_s12_d07_filter_env_amt + + mp.src13(gate) * amt_s13_d07_filter_env_amt + + mp.src14(gate) * amt_s14_d07_filter_env_amt + + mp.src15(gate) * amt_s15_d07_filter_env_amt + + mp.src16(gate) * amt_s16_d07_filter_env_amt + + mp.src17(gate) * amt_s17_d07_filter_env_amt + + mp.src18(gate) * amt_s18_d07_filter_env_amt + + mp.src19(gate) * amt_s19_d07_filter_env_amt + + mp.src20(gate) * amt_s20_d07_filter_env_amt + + mp.src21(gate) * amt_s21_d07_filter_env_amt + + mp.src22(gate) * amt_s22_d07_filter_env_amt + + mp.src23(gate) * amt_s23_d07_filter_env_amt + + mp.src24(gate) * amt_s24_d07_filter_env_amt + + mp.src25(gate) * amt_s25_d07_filter_env_amt + + mp.src26(gate) * amt_s26_d07_filter_env_amt + + mp.src27(gate) * amt_s27_d07_filter_env_amt + + mp.src28(gate) * amt_s28_d07_filter_env_amt + + mp.src29(gate) * amt_s29_d07_filter_env_amt + + mp.src30(gate) * amt_s30_d07_filter_env_amt + + mp.src31(gate) * amt_s31_d07_filter_env_amt + + mp.src32(gate) * amt_s32_d07_filter_env_amt + + mp.src33(gate) * amt_s33_d07_filter_env_amt + + mp.src34(gate) * amt_s34_d07_filter_env_amt + + mp.src35(gate) * amt_s35_d07_filter_env_amt + + mp.src36(gate) * amt_s36_d07_filter_env_amt + + mp.src37(gate) * amt_s37_d07_filter_env_amt + + mp.src38(gate) * amt_s38_d07_filter_env_amt + + mp.src39(gate) * amt_s39_d07_filter_env_amt + + mp.src40(gate) * amt_s40_d07_filter_env_amt + + mp.src41(gate) * amt_s41_d07_filter_env_amt + + mp.src42(gate) * amt_s42_d07_filter_env_amt + + mp.src43(gate) * amt_s43_d07_filter_env_amt + + mp.src44(gate) * amt_s44_d07_filter_env_amt + + mp.src45(gate) * amt_s45_d07_filter_env_amt + + mp.src46(gate) * amt_s46_d07_filter_env_amt + + mp.src47(gate) * amt_s47_d07_filter_env_amt; + +mod_amp(gate) = + mp.src00(gate) * amt_s00_d08_amp + + mp.src01(gate) * amt_s01_d08_amp + + mp.src02(gate) * amt_s02_d08_amp + + mp.src03(gate) * amt_s03_d08_amp + + mp.src04(gate) * amt_s04_d08_amp + + mp.src05(gate) * amt_s05_d08_amp + + mp.src06(gate) * amt_s06_d08_amp + + mp.src07(gate) * amt_s07_d08_amp + + mp.src08(gate) * amt_s08_d08_amp + + mp.src09(gate) * amt_s09_d08_amp + + mp.src10(gate) * amt_s10_d08_amp + + mp.src11(gate) * amt_s11_d08_amp + + mp.src12(gate) * amt_s12_d08_amp + + mp.src13(gate) * amt_s13_d08_amp + + mp.src14(gate) * amt_s14_d08_amp + + mp.src15(gate) * amt_s15_d08_amp + + mp.src16(gate) * amt_s16_d08_amp + + mp.src17(gate) * amt_s17_d08_amp + + mp.src18(gate) * amt_s18_d08_amp + + mp.src19(gate) * amt_s19_d08_amp + + mp.src20(gate) * amt_s20_d08_amp + + mp.src21(gate) * amt_s21_d08_amp + + mp.src22(gate) * amt_s22_d08_amp + + mp.src23(gate) * amt_s23_d08_amp + + mp.src24(gate) * amt_s24_d08_amp + + mp.src25(gate) * amt_s25_d08_amp + + mp.src26(gate) * amt_s26_d08_amp + + mp.src27(gate) * amt_s27_d08_amp + + mp.src28(gate) * amt_s28_d08_amp + + mp.src29(gate) * amt_s29_d08_amp + + mp.src30(gate) * amt_s30_d08_amp + + mp.src31(gate) * amt_s31_d08_amp + + mp.src32(gate) * amt_s32_d08_amp + + mp.src33(gate) * amt_s33_d08_amp + + mp.src34(gate) * amt_s34_d08_amp + + mp.src35(gate) * amt_s35_d08_amp + + mp.src36(gate) * amt_s36_d08_amp + + mp.src37(gate) * amt_s37_d08_amp + + mp.src38(gate) * amt_s38_d08_amp + + mp.src39(gate) * amt_s39_d08_amp + + mp.src40(gate) * amt_s40_d08_amp + + mp.src41(gate) * amt_s41_d08_amp + + mp.src42(gate) * amt_s42_d08_amp + + mp.src43(gate) * amt_s43_d08_amp + + mp.src44(gate) * amt_s44_d08_amp + + mp.src45(gate) * amt_s45_d08_amp + + mp.src46(gate) * amt_s46_d08_amp + + mp.src47(gate) * amt_s47_d08_amp; + +mod_pan(gate) = + mp.src00(gate) * amt_s00_d09_pan + + mp.src01(gate) * amt_s01_d09_pan + + mp.src02(gate) * amt_s02_d09_pan + + mp.src03(gate) * amt_s03_d09_pan + + mp.src04(gate) * amt_s04_d09_pan + + mp.src05(gate) * amt_s05_d09_pan + + mp.src06(gate) * amt_s06_d09_pan + + mp.src07(gate) * amt_s07_d09_pan + + mp.src08(gate) * amt_s08_d09_pan + + mp.src09(gate) * amt_s09_d09_pan + + mp.src10(gate) * amt_s10_d09_pan + + mp.src11(gate) * amt_s11_d09_pan + + mp.src12(gate) * amt_s12_d09_pan + + mp.src13(gate) * amt_s13_d09_pan + + mp.src14(gate) * amt_s14_d09_pan + + mp.src15(gate) * amt_s15_d09_pan + + mp.src16(gate) * amt_s16_d09_pan + + mp.src17(gate) * amt_s17_d09_pan + + mp.src18(gate) * amt_s18_d09_pan + + mp.src19(gate) * amt_s19_d09_pan + + mp.src20(gate) * amt_s20_d09_pan + + mp.src21(gate) * amt_s21_d09_pan + + mp.src22(gate) * amt_s22_d09_pan + + mp.src23(gate) * amt_s23_d09_pan + + mp.src24(gate) * amt_s24_d09_pan + + mp.src25(gate) * amt_s25_d09_pan + + mp.src26(gate) * amt_s26_d09_pan + + mp.src27(gate) * amt_s27_d09_pan + + mp.src28(gate) * amt_s28_d09_pan + + mp.src29(gate) * amt_s29_d09_pan + + mp.src30(gate) * amt_s30_d09_pan + + mp.src31(gate) * amt_s31_d09_pan + + mp.src32(gate) * amt_s32_d09_pan + + mp.src33(gate) * amt_s33_d09_pan + + mp.src34(gate) * amt_s34_d09_pan + + mp.src35(gate) * amt_s35_d09_pan + + mp.src36(gate) * amt_s36_d09_pan + + mp.src37(gate) * amt_s37_d09_pan + + mp.src38(gate) * amt_s38_d09_pan + + mp.src39(gate) * amt_s39_d09_pan + + mp.src40(gate) * amt_s40_d09_pan + + mp.src41(gate) * amt_s41_d09_pan + + mp.src42(gate) * amt_s42_d09_pan + + mp.src43(gate) * amt_s43_d09_pan + + mp.src44(gate) * amt_s44_d09_pan + + mp.src45(gate) * amt_s45_d09_pan + + mp.src46(gate) * amt_s46_d09_pan + + mp.src47(gate) * amt_s47_d09_pan; + +// --------------------------------------------------------------------------- +// Derived signals +// --------------------------------------------------------------------------- + +cent2ratio(c) = pow(2.0, c / 1200.0); +oct2ratio(o) = pow(2.0, o); +semi2ratio(s) = pow(2.0, s / 12.0); + +// Portamento +glide_tau = 0.0001 + master_glide * 1.0; +freq_glided = freq : si.smooth(ba.tau2pole(glide_tau)); + +// Base (glide + master fine tune) +base_freq = freq_glided * cent2ratio(master_tune); + +// --------------------------------------------------------------------------- +// Per-oscillator wavetable (saw → tri → square crossfade) +// 0.0 → saw, 0.5 → triangle, 1.0 → square. Output in [-1,+1]. +// --------------------------------------------------------------------------- +osc_wave(shape, f) = + ba.if(shape < 0.5, + (1.0 - shape*2.0) * os.lf_saw(f) + (shape*2.0) * os.lf_triangle(f), + (1.0 - (shape-0.5)*2.0) * os.lf_triangle(f) + ((shape-0.5)*2.0) * os.lf_squarewave(f)); + +// --------------------------------------------------------------------------- +// Oscillator frequencies (pitch modulation: 1 unit = 12 semitones) +// --------------------------------------------------------------------------- +pitch_ratio = semi2ratio(mod_pitch(gate) * 12.0); + +osc1_freq = base_freq * oct2ratio(osc1_range) * pitch_ratio; +osc2_freq = base_freq * oct2ratio(osc2_range) * pitch_ratio + * cent2ratio(osc2_detune + mod_osc2_detune(gate) * 50.0); +osc3_freq_tracked = base_freq * oct2ratio(osc3_range) * pitch_ratio + * cent2ratio(osc3_detune + mod_osc3_detune(gate) * 50.0); +// When kb_track=0, osc3 becomes a free-running sub/LFO source at ~55 Hz * oct +osc3_freq_untracked = 55.0 * oct2ratio(osc3_range) + * cent2ratio(osc3_detune + mod_osc3_detune(gate) * 50.0); +osc3_freq = osc3_kb_track * osc3_freq_tracked + (1.0 - osc3_kb_track) * osc3_freq_untracked; + +// --------------------------------------------------------------------------- +// Oscillators +// --------------------------------------------------------------------------- +o1 = osc_wave(osc1_wave, osc1_freq); +o2 = osc_wave(osc2_wave, osc2_freq); +o3 = osc_wave(osc3_wave, osc3_freq); + +// Osc mix balance: -1 = all osc1, +1 = all osc3, 0 = both equal. osc2 unaffected. +mix_bal = max(-1.0, min(1.0, mod_osc_mix_bal(gate))); +mix_t = (mix_bal + 1.0) * 0.5; // 0..1 +w_o1 = 1.0 - mix_t; +w_o3 = mix_t; + +// --------------------------------------------------------------------------- +// Noise: white (noise_type<0.5) / pink (else) +// --------------------------------------------------------------------------- +white_noise = no.noise; +pink_noise = no.pink_noise; +noise_raw = ba.if(noise_type < 0.5, white_noise, pink_noise); +noise_lvl = max(0.0, min(1.0, noise_level + mod_noise_level(gate))); + +// --------------------------------------------------------------------------- +// Mixer sum +// --------------------------------------------------------------------------- +mix_sum = + o1 * osc1_level * w_o1 + + o2 * osc2_level + + o3 * osc3_level * w_o3 + + noise_raw * noise_lvl; + +mix_driven = ma.tanh(mix_sum * mixer_drive); + +// --------------------------------------------------------------------------- +// Filter — Moog ladder. Cutoff is modulated in octaves (±5 oct per mod unit). +// --------------------------------------------------------------------------- +cutoff_mod_oct = (mod_cutoff(gate) + mod_filter_env_amt(gate)) * 5.0; +kb_scale = pow(freq_glided / 440.0, filter_kb); // 1.0 at A4 when kb=1 +eff_cutoff_raw = cutoff * kb_scale * oct2ratio(cutoff_mod_oct); +eff_cutoff = max(20.0, min(18000.0, eff_cutoff_raw)); +eff_res = max(0.0, min(0.99, resonance + mod_resonance(gate))); + +filtered = mix_driven : ve.moog_vcf(eff_res, eff_cutoff); + +// --------------------------------------------------------------------------- +// Amp and pan +// --------------------------------------------------------------------------- +// Velocity gain: blend 1.0 (no velocity) -> vel. Referenced here so Faust +// keeps the _vel hidden param alive in the JSON descriptor. +vel_gain = (1.0 - 0.3) + 0.3 * vel; // 30% velocity sensitivity, fixed +amp_val = max(0.0, min(1.0, mod_amp(gate))) * master_level * vel_gain; +pan_val = max(-1.0, min(1.0, master_pan + mod_pan(gate))); + +// equal-power pan +pan_l = cos((pan_val + 1.0) * 0.25 * ma.PI); +pan_r = sin((pan_val + 1.0) * 0.25 * ma.PI); + +signal = filtered * amp_val; +signal_L = signal * pan_l; +signal_R = signal * pan_r; + +process = signal_L, signal_R; diff --git a/playground/faust/modular-subtractive.json b/playground/faust/modular-subtractive.json new file mode 100644 index 0000000..de8d83e --- /dev/null +++ b/playground/faust/modular-subtractive.json @@ -0,0 +1 @@ +{"name": "modular-subtractive","filename": "modular-subtractive.dsp","version": "2.79.3","compile_options": "-lang wasm -ct 1 -cn modular_subtractive -es 1 -mcd 16 -mdd 1024 -mdy 33 -single -ftz 0","library_list": ["/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust/stdfaust.lib","/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust/maths.lib","/home/w1n5t0n/src/MEMLNaut-NISPS/playground/faust/mod-pool.lib","/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust/oscillators.lib","/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust/platform.lib","/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust/basics.lib","/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust/envelopes.lib","/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust/signals.lib","/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust/noises.lib","/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust/filters.lib","/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust/vaeffects.lib"],"include_pathnames": ["/nix/store/yjqpc2a6b2m08zwwrgsdlqsi40m5wnpp-faust-2.79.3/share/faust","/usr/local/share/faust","/usr/share/faust",".","/home/w1n5t0n/src/MEMLNaut-NISPS/playground/faust","/home/w1n5t0n/src/MEMLNaut-NISPS/playground/faust"],"size": 265300,"code": "Ly8gbW9kdWxhci1zdWJ0cmFjdGl2ZS5kc3Ag4oCUIE1pbmltb29nLXN0eWxlIHN1YnRyYWN0aXZlIHZvaWNlIGZvciB0aGUgIk1vZHVsYXIiIG1vZGUuCi8vCi8vIEFVVE8tR0VORVJBVEVEIGJ5IGdlbi1tb2R1bGFyLWRzcC5weS4gRE8gTk9UIEVESVQgQlkgSEFORC4KLy8gUmVnZW5lcmF0ZSB3aXRoOgovLyAgICAgY2QgcGxheWdyb3VuZC9mYXVzdCAmJiBweXRob24zIGdlbi1tb2R1bGFyLWRzcC5weQovLwovLyBBdWRpbyBwYXRoOiAzIG9zY2lsbGF0b3JzICsgbm9pc2Ug4oaSIG1peGVyIOKGkiBtb29nIGxhZGRlciBmaWx0ZXIg4oaSIGFtcC9wYW4uCi8vIEFsbCBlbnZlbG9wZXMgYW5kIExGT3MgY29tZSBmcm9tIG1vZC1wb29sLmxpYiB2aWEgYSA0OC1zb3VyY2Ugw5cgMTAtZGVzdAovLyBtb2R1bGF0aW9uIG1hdHJpeC4gTm8gaW50ZXJuYWwgZW52cy9MRk9zLgovLwovLyBNb2R1bGF0aW9uIGRlc3RpbmF0aW9ucyAoMTApOgovLyAgICAgMCBwaXRjaCAgICAgICAgICAgICBzZW1pdG9uZXMsIGFwcGxpZWQgdG8gYWxsIG9zYyBmcmVxdWVuY2llcwovLyAgICAgMSBvc2MyX2RldHVuZSAgICAgICBjZW50cyBvZmZzZXQgYWRkZWQgdG8gb3NjMiBkZXR1bmUga25vYgovLyAgICAgMiBvc2MzX2RldHVuZSAgICAgICBjZW50cyBvZmZzZXQgYWRkZWQgdG8gb3NjMyBkZXR1bmUga25vYgovLyAgICAgMyBvc2NfbWl4X2JhbCAgICAgICAtMS4uKzEgY3Jvc3NmYWRlcyBvc2MxPC0+b3NjMwovLyAgICAgNCBub2lzZV9sZXZlbCAgICAgICBhZGRlZCB0byBub2lzZSBsZXZlbCBrbm9iCi8vICAgICA1IGN1dG9mZiAgICAgICAgICAgICsvLTUgb2N0YXZlcyBvZiBmaWx0ZXIgY3V0b2ZmIG1vZHVsYXRpb24KLy8gICAgIDYgcmVzb25hbmNlICAgICAgICAgYWRkZWQgdG8gcmVzIGtub2IKLy8gICAgIDcgZmlsdGVyX2Vudl9hbXQgICAgc2Vjb25kIGluZGVwZW5kZW50ICsvLTUgb2N0YXZlIGN1dG9mZiBtb2QgY2hhbm5lbAovLyAgICAgOCBhbXAgICAgICAgICAgICAgICBhZGRlZCB0byBhbXAga25vYiAocm91dGUgYW4gQURTUiBoZXJlIGZvciBhIFZDQSBlbnYpCi8vICAgICA5IHBhbiAgICAgICAgICAgICAgIGFkZGVkIHRvIHBhbiBrbm9iCi8vCi8vIEhpZGRlbiBjb250cm9scyAoZHJpdmVuIGJ5IG5vdGVPbi9ub3RlT2ZmLCBub3QgYnkgdGhlIE1MIGVuZ2luZSk6Ci8vICAgICBmcmVxLCBnYXRlLCBfdmVsCi8vCi8vIEJ1aWxkOgovLyAgICAgY2QgcGxheWdyb3VuZC9mYXVzdCAmJiAuL2J1aWxkLnNoCi8vCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKaW1wb3J0KCJzdGRmYXVzdC5saWIiKTsKbXAgPSBsaWJyYXJ5KCJtb2QtcG9vbC5saWIiKTsKCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQovLyBIaWRkZW4gY29udHJvbHMKLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmZyZXEgPSBoc2xpZGVyKCIwX0hpZGRlbi9mcmVxW2hpZGRlbjoxXVt1bml0Okh6XSIsIDIyMCwgMjAsIDQwMDAsIDAuMDEpOwpnYXRlID0gYnV0dG9uKCIwX0hpZGRlbi9nYXRlW2hpZGRlbjoxXSIpOwp2ZWwgID0gaHNsaWRlcigiMF9IaWRkZW4vX3ZlbFtoaWRkZW46MV0iLCAwLjcsIDAuMCwgMS4wLCAwLjAwMSkgOiBzaS5zbW9vOwoKLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi8vIEdyb3VwIDEg4oCUIE9zY2lsbGF0b3JzCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpvc2MxX3dhdmUgID0gaHNsaWRlcigiMV9Pc2NpbGxhdG9ycy8wMF9vc2MxX3dhdmVbdG9vbHRpcDowPXNhdywwLjU9dHJpLDE9c3F1YXJlXSIsIDAuMCwgMC4wLCAxLjAsIDAuMDAxKTsKb3NjMV9yYW5nZSA9IGhzbGlkZXIoIjFfT3NjaWxsYXRvcnMvMDFfb3NjMV9yYW5nZVt1bml0Om9jdF0iLCAwLjAsIC0yLjAsIDIuMCwgMC4wMSk7Cm9zYzFfbGV2ZWwgPSBoc2xpZGVyKCIxX09zY2lsbGF0b3JzLzAyX29zYzFfbGV2ZWwiLCAwLjgsIDAuMCwgMS4wLCAwLjAwMSk7Cgpvc2MyX3dhdmUgICA9IGhzbGlkZXIoIjFfT3NjaWxsYXRvcnMvMDNfb3NjMl93YXZlW3Rvb2x0aXA6MD1zYXcsMC41PXRyaSwxPXNxdWFyZV0iLCAwLjAsIDAuMCwgMS4wLCAwLjAwMSk7Cm9zYzJfcmFuZ2UgID0gaHNsaWRlcigiMV9Pc2NpbGxhdG9ycy8wNF9vc2MyX3JhbmdlW3VuaXQ6b2N0XSIsIDAuMCwgLTIuMCwgMi4wLCAwLjAxKTsKb3NjMl9kZXR1bmUgPSBoc2xpZGVyKCIxX09zY2lsbGF0b3JzLzA1X29zYzJfZGV0dW5lW3VuaXQ6Y3RdIiwgMC4wLCAtNTAuMCwgNTAuMCwgMC4xKTsKb3NjMl9sZXZlbCAgPSBoc2xpZGVyKCIxX09zY2lsbGF0b3JzLzA2X29zYzJfbGV2ZWwiLCAwLjYsIDAuMCwgMS4wLCAwLjAwMSk7Cgpvc2MzX3dhdmUgICAgID0gaHNsaWRlcigiMV9Pc2NpbGxhdG9ycy8wN19vc2MzX3dhdmVbdG9vbHRpcDowPXNhdywwLjU9dHJpLDE9c3F1YXJlXSIsIDAuNSwgMC4wLCAxLjAsIDAuMDAxKTsKb3NjM19yYW5nZSAgICA9IGhzbGlkZXIoIjFfT3NjaWxsYXRvcnMvMDhfb3NjM19yYW5nZVt1bml0Om9jdF0iLCAtMS4wLCAtMi4wLCAyLjAsIDAuMDEpOwpvc2MzX2RldHVuZSAgID0gaHNsaWRlcigiMV9Pc2NpbGxhdG9ycy8wOV9vc2MzX2RldHVuZVt1bml0OmN0XSIsIDAuMCwgLTUwLjAsIDUwLjAsIDAuMSk7Cm9zYzNfbGV2ZWwgICAgPSBoc2xpZGVyKCIxX09zY2lsbGF0b3JzLzEwX29zYzNfbGV2ZWwiLCAwLjQsIDAuMCwgMS4wLCAwLjAwMSk7Cm9zYzNfa2JfdHJhY2sgPSBoc2xpZGVyKCIxX09zY2lsbGF0b3JzLzExX29zYzNfa2JfdHJhY2tbdG9vbHRpcDoxPXRyYWNrcyBrZXlib2FyZCwwPUxGT10iLCAxLjAsIDAuMCwgMS4wLCAxLjApOwoKLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi8vIEdyb3VwIDIg4oCUIE1peGVyCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpub2lzZV90eXBlICA9IGhzbGlkZXIoIjJfTWl4ZXIvMDBfbm9pc2VfdHlwZVt0b29sdGlwOjA9d2hpdGUsMT1waW5rXSIsIDAuMCwgMC4wLCAxLjAsIDEuMCk7Cm5vaXNlX2xldmVsID0gaHNsaWRlcigiMl9NaXhlci8wMV9ub2lzZV9sZXZlbCIsIDAuMCwgMC4wLCAxLjAsIDAuMDAxKTsKbWl4ZXJfZHJpdmUgPSBoc2xpZGVyKCIyX01peGVyLzAyX21peGVyX2RyaXZlW3Rvb2x0aXA6UHJlLWZpbHRlciBvdmVyZHJpdmVdIiwgMS4wLCAwLjUsIDQuMCwgMC4wMDEpOwoKLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi8vIEdyb3VwIDMg4oCUIEZpbHRlcgovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KY3V0b2ZmICAgICAgPSBoc2xpZGVyKCIzX0ZpbHRlci8wMF9jdXRvZmZbc2NhbGU6bG9nXVt1bml0Okh6XSIsIDEyMDAuMCwgMjAuMCwgMjAwMDAuMCwgMC4xKTsKcmVzb25hbmNlICAgPSBoc2xpZGVyKCIzX0ZpbHRlci8wMV9yZXNvbmFuY2UiLCAwLjMsIDAuMCwgMS4wLCAwLjAwMSk7CmZpbHRlcl9rYiAgID0gaHNsaWRlcigiM19GaWx0ZXIvMDJfZmlsdGVyX2tiX3RyYWNrIiwgMC41LCAwLjAsIDEuMCwgMC4wMDEpOwoKLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi8vIEdyb3VwIDQg4oCUIE1hc3RlcgovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KbWFzdGVyX2xldmVsID0gaHNsaWRlcigiNF9NYXN0ZXIvMDBfbWFzdGVyX2xldmVsIiwgMC43LCAwLjAsIDEuMCwgMC4wMDEpOwptYXN0ZXJfZ2xpZGUgPSBoc2xpZGVyKCI0X01hc3Rlci8wMV9tYXN0ZXJfZ2xpZGVbdW5pdDpzXVtzY2FsZTpsb2ddIiwgMC4wLCAwLjAsIDIuMCwgMC4wMDEpOwptYXN0ZXJfdHVuZSAgPSBoc2xpZGVyKCI0X01hc3Rlci8wMl9tYXN0ZXJfdHVuZVt1bml0OmN0XSIsIDAuMCwgLTUwLjAsIDUwLjAsIDAuMSk7Cm1hc3Rlcl9wYW4gICA9IGhzbGlkZXIoIjRfTWFzdGVyLzAzX21hc3Rlcl9wYW4iLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwoKLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi8vIE1vZHVsYXRpb24gbWF0cml4IOKAlCA0OCBzb3VyY2VzIMOXIDEwIGRlc3RpbmF0aW9ucy4KLy8gRWFjaCBoc2xpZGVyIGlzIG9uZSAiYW1vdW50IiBlbnRyeSBpbiBbLTEsICsxXS4gWmVybyA9IG5vIGNvbm5lY3Rpb24uCi8vIEdyb3VwICJNTV9NYXRyaXgiIHNvIHRoZSBwYXJhbU1ldGEgcGFyc2VyIGNhbiByZWNvZ25pc2UgbWF0cml4IHBhcmFtcy4KLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgovLyBNYXRyaXggY29sdW1uOiBkZXN0aW5hdGlvbiAwID0gcGl0Y2gKYW10X3MwMF9kMDBfcGl0Y2ggPSBoc2xpZGVyKCJNTV9NYXRyaXgvczAwX2QwMF9waXRjaCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMDFfZDAwX3BpdGNoID0gaHNsaWRlcigiTU1fTWF0cml4L3MwMV9kMDBfcGl0Y2giLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczAyX2QwMF9waXRjaCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMDJfZDAwX3BpdGNoIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwM19kMDBfcGl0Y2ggPSBoc2xpZGVyKCJNTV9NYXRyaXgvczAzX2QwMF9waXRjaCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMDRfZDAwX3BpdGNoID0gaHNsaWRlcigiTU1fTWF0cml4L3MwNF9kMDBfcGl0Y2giLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczA1X2QwMF9waXRjaCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMDVfZDAwX3BpdGNoIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwNl9kMDBfcGl0Y2ggPSBoc2xpZGVyKCJNTV9NYXRyaXgvczA2X2QwMF9waXRjaCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMDdfZDAwX3BpdGNoID0gaHNsaWRlcigiTU1fTWF0cml4L3MwN19kMDBfcGl0Y2giLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczA4X2QwMF9waXRjaCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMDhfZDAwX3BpdGNoIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwOV9kMDBfcGl0Y2ggPSBoc2xpZGVyKCJNTV9NYXRyaXgvczA5X2QwMF9waXRjaCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMTBfZDAwX3BpdGNoID0gaHNsaWRlcigiTU1fTWF0cml4L3MxMF9kMDBfcGl0Y2giLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczExX2QwMF9waXRjaCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMTFfZDAwX3BpdGNoIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxMl9kMDBfcGl0Y2ggPSBoc2xpZGVyKCJNTV9NYXRyaXgvczEyX2QwMF9waXRjaCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMTNfZDAwX3BpdGNoID0gaHNsaWRlcigiTU1fTWF0cml4L3MxM19kMDBfcGl0Y2giLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczE0X2QwMF9waXRjaCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMTRfZDAwX3BpdGNoIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxNV9kMDBfcGl0Y2ggPSBoc2xpZGVyKCJNTV9NYXRyaXgvczE1X2QwMF9waXRjaCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMTZfZDAwX3BpdGNoID0gaHNsaWRlcigiTU1fTWF0cml4L3MxNl9kMDBfcGl0Y2giLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczE3X2QwMF9waXRjaCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMTdfZDAwX3BpdGNoIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxOF9kMDBfcGl0Y2ggPSBoc2xpZGVyKCJNTV9NYXRyaXgvczE4X2QwMF9waXRjaCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMTlfZDAwX3BpdGNoID0gaHNsaWRlcigiTU1fTWF0cml4L3MxOV9kMDBfcGl0Y2giLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczIwX2QwMF9waXRjaCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMjBfZDAwX3BpdGNoIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyMV9kMDBfcGl0Y2ggPSBoc2xpZGVyKCJNTV9NYXRyaXgvczIxX2QwMF9waXRjaCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMjJfZDAwX3BpdGNoID0gaHNsaWRlcigiTU1fTWF0cml4L3MyMl9kMDBfcGl0Y2giLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczIzX2QwMF9waXRjaCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMjNfZDAwX3BpdGNoIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyNF9kMDBfcGl0Y2ggPSBoc2xpZGVyKCJNTV9NYXRyaXgvczI0X2QwMF9waXRjaCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMjVfZDAwX3BpdGNoID0gaHNsaWRlcigiTU1fTWF0cml4L3MyNV9kMDBfcGl0Y2giLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczI2X2QwMF9waXRjaCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMjZfZDAwX3BpdGNoIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyN19kMDBfcGl0Y2ggPSBoc2xpZGVyKCJNTV9NYXRyaXgvczI3X2QwMF9waXRjaCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMjhfZDAwX3BpdGNoID0gaHNsaWRlcigiTU1fTWF0cml4L3MyOF9kMDBfcGl0Y2giLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczI5X2QwMF9waXRjaCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMjlfZDAwX3BpdGNoIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzMF9kMDBfcGl0Y2ggPSBoc2xpZGVyKCJNTV9NYXRyaXgvczMwX2QwMF9waXRjaCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMzFfZDAwX3BpdGNoID0gaHNsaWRlcigiTU1fTWF0cml4L3MzMV9kMDBfcGl0Y2giLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczMyX2QwMF9waXRjaCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMzJfZDAwX3BpdGNoIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzM19kMDBfcGl0Y2ggPSBoc2xpZGVyKCJNTV9NYXRyaXgvczMzX2QwMF9waXRjaCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMzRfZDAwX3BpdGNoID0gaHNsaWRlcigiTU1fTWF0cml4L3MzNF9kMDBfcGl0Y2giLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczM1X2QwMF9waXRjaCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMzVfZDAwX3BpdGNoIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzNl9kMDBfcGl0Y2ggPSBoc2xpZGVyKCJNTV9NYXRyaXgvczM2X2QwMF9waXRjaCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMzdfZDAwX3BpdGNoID0gaHNsaWRlcigiTU1fTWF0cml4L3MzN19kMDBfcGl0Y2giLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczM4X2QwMF9waXRjaCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMzhfZDAwX3BpdGNoIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzOV9kMDBfcGl0Y2ggPSBoc2xpZGVyKCJNTV9NYXRyaXgvczM5X2QwMF9waXRjaCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zNDBfZDAwX3BpdGNoID0gaHNsaWRlcigiTU1fTWF0cml4L3M0MF9kMDBfcGl0Y2giLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQxX2QwMF9waXRjaCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zNDFfZDAwX3BpdGNoIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0Ml9kMDBfcGl0Y2ggPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQyX2QwMF9waXRjaCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zNDNfZDAwX3BpdGNoID0gaHNsaWRlcigiTU1fTWF0cml4L3M0M19kMDBfcGl0Y2giLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQ0X2QwMF9waXRjaCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zNDRfZDAwX3BpdGNoIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0NV9kMDBfcGl0Y2ggPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQ1X2QwMF9waXRjaCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zNDZfZDAwX3BpdGNoID0gaHNsaWRlcigiTU1fTWF0cml4L3M0Nl9kMDBfcGl0Y2giLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQ3X2QwMF9waXRjaCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zNDdfZDAwX3BpdGNoIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKCi8vIE1hdHJpeCBjb2x1bW46IGRlc3RpbmF0aW9uIDEgPSBvc2MyX2RldHVuZQphbXRfczAwX2QwMV9vc2MyX2RldHVuZSA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMDBfZDAxX29zYzJfZGV0dW5lIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwMV9kMDFfb3NjMl9kZXR1bmUgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczAxX2QwMV9vc2MyX2RldHVuZSIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMDJfZDAxX29zYzJfZGV0dW5lID0gaHNsaWRlcigiTU1fTWF0cml4L3MwMl9kMDFfb3NjMl9kZXR1bmUiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczAzX2QwMV9vc2MyX2RldHVuZSA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMDNfZDAxX29zYzJfZGV0dW5lIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwNF9kMDFfb3NjMl9kZXR1bmUgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczA0X2QwMV9vc2MyX2RldHVuZSIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMDVfZDAxX29zYzJfZGV0dW5lID0gaHNsaWRlcigiTU1fTWF0cml4L3MwNV9kMDFfb3NjMl9kZXR1bmUiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczA2X2QwMV9vc2MyX2RldHVuZSA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMDZfZDAxX29zYzJfZGV0dW5lIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwN19kMDFfb3NjMl9kZXR1bmUgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczA3X2QwMV9vc2MyX2RldHVuZSIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMDhfZDAxX29zYzJfZGV0dW5lID0gaHNsaWRlcigiTU1fTWF0cml4L3MwOF9kMDFfb3NjMl9kZXR1bmUiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczA5X2QwMV9vc2MyX2RldHVuZSA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMDlfZDAxX29zYzJfZGV0dW5lIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxMF9kMDFfb3NjMl9kZXR1bmUgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczEwX2QwMV9vc2MyX2RldHVuZSIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMTFfZDAxX29zYzJfZGV0dW5lID0gaHNsaWRlcigiTU1fTWF0cml4L3MxMV9kMDFfb3NjMl9kZXR1bmUiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczEyX2QwMV9vc2MyX2RldHVuZSA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMTJfZDAxX29zYzJfZGV0dW5lIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxM19kMDFfb3NjMl9kZXR1bmUgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczEzX2QwMV9vc2MyX2RldHVuZSIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMTRfZDAxX29zYzJfZGV0dW5lID0gaHNsaWRlcigiTU1fTWF0cml4L3MxNF9kMDFfb3NjMl9kZXR1bmUiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczE1X2QwMV9vc2MyX2RldHVuZSA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMTVfZDAxX29zYzJfZGV0dW5lIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxNl9kMDFfb3NjMl9kZXR1bmUgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczE2X2QwMV9vc2MyX2RldHVuZSIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMTdfZDAxX29zYzJfZGV0dW5lID0gaHNsaWRlcigiTU1fTWF0cml4L3MxN19kMDFfb3NjMl9kZXR1bmUiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczE4X2QwMV9vc2MyX2RldHVuZSA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMThfZDAxX29zYzJfZGV0dW5lIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxOV9kMDFfb3NjMl9kZXR1bmUgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczE5X2QwMV9vc2MyX2RldHVuZSIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMjBfZDAxX29zYzJfZGV0dW5lID0gaHNsaWRlcigiTU1fTWF0cml4L3MyMF9kMDFfb3NjMl9kZXR1bmUiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczIxX2QwMV9vc2MyX2RldHVuZSA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMjFfZDAxX29zYzJfZGV0dW5lIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyMl9kMDFfb3NjMl9kZXR1bmUgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczIyX2QwMV9vc2MyX2RldHVuZSIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMjNfZDAxX29zYzJfZGV0dW5lID0gaHNsaWRlcigiTU1fTWF0cml4L3MyM19kMDFfb3NjMl9kZXR1bmUiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczI0X2QwMV9vc2MyX2RldHVuZSA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMjRfZDAxX29zYzJfZGV0dW5lIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyNV9kMDFfb3NjMl9kZXR1bmUgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczI1X2QwMV9vc2MyX2RldHVuZSIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMjZfZDAxX29zYzJfZGV0dW5lID0gaHNsaWRlcigiTU1fTWF0cml4L3MyNl9kMDFfb3NjMl9kZXR1bmUiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczI3X2QwMV9vc2MyX2RldHVuZSA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMjdfZDAxX29zYzJfZGV0dW5lIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyOF9kMDFfb3NjMl9kZXR1bmUgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczI4X2QwMV9vc2MyX2RldHVuZSIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMjlfZDAxX29zYzJfZGV0dW5lID0gaHNsaWRlcigiTU1fTWF0cml4L3MyOV9kMDFfb3NjMl9kZXR1bmUiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczMwX2QwMV9vc2MyX2RldHVuZSA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMzBfZDAxX29zYzJfZGV0dW5lIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzMV9kMDFfb3NjMl9kZXR1bmUgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczMxX2QwMV9vc2MyX2RldHVuZSIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMzJfZDAxX29zYzJfZGV0dW5lID0gaHNsaWRlcigiTU1fTWF0cml4L3MzMl9kMDFfb3NjMl9kZXR1bmUiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczMzX2QwMV9vc2MyX2RldHVuZSA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMzNfZDAxX29zYzJfZGV0dW5lIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzNF9kMDFfb3NjMl9kZXR1bmUgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczM0X2QwMV9vc2MyX2RldHVuZSIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMzVfZDAxX29zYzJfZGV0dW5lID0gaHNsaWRlcigiTU1fTWF0cml4L3MzNV9kMDFfb3NjMl9kZXR1bmUiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczM2X2QwMV9vc2MyX2RldHVuZSA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMzZfZDAxX29zYzJfZGV0dW5lIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzN19kMDFfb3NjMl9kZXR1bmUgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczM3X2QwMV9vc2MyX2RldHVuZSIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMzhfZDAxX29zYzJfZGV0dW5lID0gaHNsaWRlcigiTU1fTWF0cml4L3MzOF9kMDFfb3NjMl9kZXR1bmUiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczM5X2QwMV9vc2MyX2RldHVuZSA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMzlfZDAxX29zYzJfZGV0dW5lIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0MF9kMDFfb3NjMl9kZXR1bmUgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQwX2QwMV9vc2MyX2RldHVuZSIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zNDFfZDAxX29zYzJfZGV0dW5lID0gaHNsaWRlcigiTU1fTWF0cml4L3M0MV9kMDFfb3NjMl9kZXR1bmUiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQyX2QwMV9vc2MyX2RldHVuZSA9IGhzbGlkZXIoIk1NX01hdHJpeC9zNDJfZDAxX29zYzJfZGV0dW5lIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0M19kMDFfb3NjMl9kZXR1bmUgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQzX2QwMV9vc2MyX2RldHVuZSIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zNDRfZDAxX29zYzJfZGV0dW5lID0gaHNsaWRlcigiTU1fTWF0cml4L3M0NF9kMDFfb3NjMl9kZXR1bmUiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQ1X2QwMV9vc2MyX2RldHVuZSA9IGhzbGlkZXIoIk1NX01hdHJpeC9zNDVfZDAxX29zYzJfZGV0dW5lIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0Nl9kMDFfb3NjMl9kZXR1bmUgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQ2X2QwMV9vc2MyX2RldHVuZSIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zNDdfZDAxX29zYzJfZGV0dW5lID0gaHNsaWRlcigiTU1fTWF0cml4L3M0N19kMDFfb3NjMl9kZXR1bmUiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwoKLy8gTWF0cml4IGNvbHVtbjogZGVzdGluYXRpb24gMiA9IG9zYzNfZGV0dW5lCmFtdF9zMDBfZDAyX29zYzNfZGV0dW5lID0gaHNsaWRlcigiTU1fTWF0cml4L3MwMF9kMDJfb3NjM19kZXR1bmUiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczAxX2QwMl9vc2MzX2RldHVuZSA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMDFfZDAyX29zYzNfZGV0dW5lIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwMl9kMDJfb3NjM19kZXR1bmUgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczAyX2QwMl9vc2MzX2RldHVuZSIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMDNfZDAyX29zYzNfZGV0dW5lID0gaHNsaWRlcigiTU1fTWF0cml4L3MwM19kMDJfb3NjM19kZXR1bmUiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczA0X2QwMl9vc2MzX2RldHVuZSA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMDRfZDAyX29zYzNfZGV0dW5lIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwNV9kMDJfb3NjM19kZXR1bmUgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczA1X2QwMl9vc2MzX2RldHVuZSIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMDZfZDAyX29zYzNfZGV0dW5lID0gaHNsaWRlcigiTU1fTWF0cml4L3MwNl9kMDJfb3NjM19kZXR1bmUiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczA3X2QwMl9vc2MzX2RldHVuZSA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMDdfZDAyX29zYzNfZGV0dW5lIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwOF9kMDJfb3NjM19kZXR1bmUgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczA4X2QwMl9vc2MzX2RldHVuZSIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMDlfZDAyX29zYzNfZGV0dW5lID0gaHNsaWRlcigiTU1fTWF0cml4L3MwOV9kMDJfb3NjM19kZXR1bmUiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczEwX2QwMl9vc2MzX2RldHVuZSA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMTBfZDAyX29zYzNfZGV0dW5lIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxMV9kMDJfb3NjM19kZXR1bmUgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczExX2QwMl9vc2MzX2RldHVuZSIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMTJfZDAyX29zYzNfZGV0dW5lID0gaHNsaWRlcigiTU1fTWF0cml4L3MxMl9kMDJfb3NjM19kZXR1bmUiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczEzX2QwMl9vc2MzX2RldHVuZSA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMTNfZDAyX29zYzNfZGV0dW5lIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxNF9kMDJfb3NjM19kZXR1bmUgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczE0X2QwMl9vc2MzX2RldHVuZSIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMTVfZDAyX29zYzNfZGV0dW5lID0gaHNsaWRlcigiTU1fTWF0cml4L3MxNV9kMDJfb3NjM19kZXR1bmUiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczE2X2QwMl9vc2MzX2RldHVuZSA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMTZfZDAyX29zYzNfZGV0dW5lIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxN19kMDJfb3NjM19kZXR1bmUgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczE3X2QwMl9vc2MzX2RldHVuZSIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMThfZDAyX29zYzNfZGV0dW5lID0gaHNsaWRlcigiTU1fTWF0cml4L3MxOF9kMDJfb3NjM19kZXR1bmUiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczE5X2QwMl9vc2MzX2RldHVuZSA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMTlfZDAyX29zYzNfZGV0dW5lIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyMF9kMDJfb3NjM19kZXR1bmUgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczIwX2QwMl9vc2MzX2RldHVuZSIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMjFfZDAyX29zYzNfZGV0dW5lID0gaHNsaWRlcigiTU1fTWF0cml4L3MyMV9kMDJfb3NjM19kZXR1bmUiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczIyX2QwMl9vc2MzX2RldHVuZSA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMjJfZDAyX29zYzNfZGV0dW5lIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyM19kMDJfb3NjM19kZXR1bmUgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczIzX2QwMl9vc2MzX2RldHVuZSIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMjRfZDAyX29zYzNfZGV0dW5lID0gaHNsaWRlcigiTU1fTWF0cml4L3MyNF9kMDJfb3NjM19kZXR1bmUiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczI1X2QwMl9vc2MzX2RldHVuZSA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMjVfZDAyX29zYzNfZGV0dW5lIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyNl9kMDJfb3NjM19kZXR1bmUgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczI2X2QwMl9vc2MzX2RldHVuZSIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMjdfZDAyX29zYzNfZGV0dW5lID0gaHNsaWRlcigiTU1fTWF0cml4L3MyN19kMDJfb3NjM19kZXR1bmUiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczI4X2QwMl9vc2MzX2RldHVuZSA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMjhfZDAyX29zYzNfZGV0dW5lIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyOV9kMDJfb3NjM19kZXR1bmUgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczI5X2QwMl9vc2MzX2RldHVuZSIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMzBfZDAyX29zYzNfZGV0dW5lID0gaHNsaWRlcigiTU1fTWF0cml4L3MzMF9kMDJfb3NjM19kZXR1bmUiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczMxX2QwMl9vc2MzX2RldHVuZSA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMzFfZDAyX29zYzNfZGV0dW5lIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzMl9kMDJfb3NjM19kZXR1bmUgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczMyX2QwMl9vc2MzX2RldHVuZSIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMzNfZDAyX29zYzNfZGV0dW5lID0gaHNsaWRlcigiTU1fTWF0cml4L3MzM19kMDJfb3NjM19kZXR1bmUiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczM0X2QwMl9vc2MzX2RldHVuZSA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMzRfZDAyX29zYzNfZGV0dW5lIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzNV9kMDJfb3NjM19kZXR1bmUgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczM1X2QwMl9vc2MzX2RldHVuZSIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMzZfZDAyX29zYzNfZGV0dW5lID0gaHNsaWRlcigiTU1fTWF0cml4L3MzNl9kMDJfb3NjM19kZXR1bmUiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczM3X2QwMl9vc2MzX2RldHVuZSA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMzdfZDAyX29zYzNfZGV0dW5lIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzOF9kMDJfb3NjM19kZXR1bmUgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczM4X2QwMl9vc2MzX2RldHVuZSIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMzlfZDAyX29zYzNfZGV0dW5lID0gaHNsaWRlcigiTU1fTWF0cml4L3MzOV9kMDJfb3NjM19kZXR1bmUiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQwX2QwMl9vc2MzX2RldHVuZSA9IGhzbGlkZXIoIk1NX01hdHJpeC9zNDBfZDAyX29zYzNfZGV0dW5lIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0MV9kMDJfb3NjM19kZXR1bmUgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQxX2QwMl9vc2MzX2RldHVuZSIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zNDJfZDAyX29zYzNfZGV0dW5lID0gaHNsaWRlcigiTU1fTWF0cml4L3M0Ml9kMDJfb3NjM19kZXR1bmUiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQzX2QwMl9vc2MzX2RldHVuZSA9IGhzbGlkZXIoIk1NX01hdHJpeC9zNDNfZDAyX29zYzNfZGV0dW5lIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0NF9kMDJfb3NjM19kZXR1bmUgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQ0X2QwMl9vc2MzX2RldHVuZSIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zNDVfZDAyX29zYzNfZGV0dW5lID0gaHNsaWRlcigiTU1fTWF0cml4L3M0NV9kMDJfb3NjM19kZXR1bmUiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQ2X2QwMl9vc2MzX2RldHVuZSA9IGhzbGlkZXIoIk1NX01hdHJpeC9zNDZfZDAyX29zYzNfZGV0dW5lIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0N19kMDJfb3NjM19kZXR1bmUgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQ3X2QwMl9vc2MzX2RldHVuZSIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CgovLyBNYXRyaXggY29sdW1uOiBkZXN0aW5hdGlvbiAzID0gb3NjX21peF9iYWwKYW10X3MwMF9kMDNfb3NjX21peF9iYWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczAwX2QwM19vc2NfbWl4X2JhbCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMDFfZDAzX29zY19taXhfYmFsID0gaHNsaWRlcigiTU1fTWF0cml4L3MwMV9kMDNfb3NjX21peF9iYWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczAyX2QwM19vc2NfbWl4X2JhbCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMDJfZDAzX29zY19taXhfYmFsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwM19kMDNfb3NjX21peF9iYWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczAzX2QwM19vc2NfbWl4X2JhbCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMDRfZDAzX29zY19taXhfYmFsID0gaHNsaWRlcigiTU1fTWF0cml4L3MwNF9kMDNfb3NjX21peF9iYWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczA1X2QwM19vc2NfbWl4X2JhbCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMDVfZDAzX29zY19taXhfYmFsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwNl9kMDNfb3NjX21peF9iYWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczA2X2QwM19vc2NfbWl4X2JhbCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMDdfZDAzX29zY19taXhfYmFsID0gaHNsaWRlcigiTU1fTWF0cml4L3MwN19kMDNfb3NjX21peF9iYWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczA4X2QwM19vc2NfbWl4X2JhbCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMDhfZDAzX29zY19taXhfYmFsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwOV9kMDNfb3NjX21peF9iYWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczA5X2QwM19vc2NfbWl4X2JhbCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMTBfZDAzX29zY19taXhfYmFsID0gaHNsaWRlcigiTU1fTWF0cml4L3MxMF9kMDNfb3NjX21peF9iYWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczExX2QwM19vc2NfbWl4X2JhbCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMTFfZDAzX29zY19taXhfYmFsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxMl9kMDNfb3NjX21peF9iYWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczEyX2QwM19vc2NfbWl4X2JhbCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMTNfZDAzX29zY19taXhfYmFsID0gaHNsaWRlcigiTU1fTWF0cml4L3MxM19kMDNfb3NjX21peF9iYWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczE0X2QwM19vc2NfbWl4X2JhbCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMTRfZDAzX29zY19taXhfYmFsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxNV9kMDNfb3NjX21peF9iYWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczE1X2QwM19vc2NfbWl4X2JhbCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMTZfZDAzX29zY19taXhfYmFsID0gaHNsaWRlcigiTU1fTWF0cml4L3MxNl9kMDNfb3NjX21peF9iYWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczE3X2QwM19vc2NfbWl4X2JhbCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMTdfZDAzX29zY19taXhfYmFsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxOF9kMDNfb3NjX21peF9iYWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczE4X2QwM19vc2NfbWl4X2JhbCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMTlfZDAzX29zY19taXhfYmFsID0gaHNsaWRlcigiTU1fTWF0cml4L3MxOV9kMDNfb3NjX21peF9iYWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczIwX2QwM19vc2NfbWl4X2JhbCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMjBfZDAzX29zY19taXhfYmFsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyMV9kMDNfb3NjX21peF9iYWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczIxX2QwM19vc2NfbWl4X2JhbCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMjJfZDAzX29zY19taXhfYmFsID0gaHNsaWRlcigiTU1fTWF0cml4L3MyMl9kMDNfb3NjX21peF9iYWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczIzX2QwM19vc2NfbWl4X2JhbCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMjNfZDAzX29zY19taXhfYmFsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyNF9kMDNfb3NjX21peF9iYWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczI0X2QwM19vc2NfbWl4X2JhbCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMjVfZDAzX29zY19taXhfYmFsID0gaHNsaWRlcigiTU1fTWF0cml4L3MyNV9kMDNfb3NjX21peF9iYWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczI2X2QwM19vc2NfbWl4X2JhbCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMjZfZDAzX29zY19taXhfYmFsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyN19kMDNfb3NjX21peF9iYWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczI3X2QwM19vc2NfbWl4X2JhbCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMjhfZDAzX29zY19taXhfYmFsID0gaHNsaWRlcigiTU1fTWF0cml4L3MyOF9kMDNfb3NjX21peF9iYWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczI5X2QwM19vc2NfbWl4X2JhbCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMjlfZDAzX29zY19taXhfYmFsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzMF9kMDNfb3NjX21peF9iYWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczMwX2QwM19vc2NfbWl4X2JhbCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMzFfZDAzX29zY19taXhfYmFsID0gaHNsaWRlcigiTU1fTWF0cml4L3MzMV9kMDNfb3NjX21peF9iYWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczMyX2QwM19vc2NfbWl4X2JhbCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMzJfZDAzX29zY19taXhfYmFsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzM19kMDNfb3NjX21peF9iYWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczMzX2QwM19vc2NfbWl4X2JhbCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMzRfZDAzX29zY19taXhfYmFsID0gaHNsaWRlcigiTU1fTWF0cml4L3MzNF9kMDNfb3NjX21peF9iYWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczM1X2QwM19vc2NfbWl4X2JhbCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMzVfZDAzX29zY19taXhfYmFsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzNl9kMDNfb3NjX21peF9iYWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczM2X2QwM19vc2NfbWl4X2JhbCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMzdfZDAzX29zY19taXhfYmFsID0gaHNsaWRlcigiTU1fTWF0cml4L3MzN19kMDNfb3NjX21peF9iYWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczM4X2QwM19vc2NfbWl4X2JhbCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMzhfZDAzX29zY19taXhfYmFsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzOV9kMDNfb3NjX21peF9iYWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczM5X2QwM19vc2NfbWl4X2JhbCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zNDBfZDAzX29zY19taXhfYmFsID0gaHNsaWRlcigiTU1fTWF0cml4L3M0MF9kMDNfb3NjX21peF9iYWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQxX2QwM19vc2NfbWl4X2JhbCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zNDFfZDAzX29zY19taXhfYmFsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0Ml9kMDNfb3NjX21peF9iYWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQyX2QwM19vc2NfbWl4X2JhbCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zNDNfZDAzX29zY19taXhfYmFsID0gaHNsaWRlcigiTU1fTWF0cml4L3M0M19kMDNfb3NjX21peF9iYWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQ0X2QwM19vc2NfbWl4X2JhbCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zNDRfZDAzX29zY19taXhfYmFsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0NV9kMDNfb3NjX21peF9iYWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQ1X2QwM19vc2NfbWl4X2JhbCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zNDZfZDAzX29zY19taXhfYmFsID0gaHNsaWRlcigiTU1fTWF0cml4L3M0Nl9kMDNfb3NjX21peF9iYWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQ3X2QwM19vc2NfbWl4X2JhbCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zNDdfZDAzX29zY19taXhfYmFsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKCi8vIE1hdHJpeCBjb2x1bW46IGRlc3RpbmF0aW9uIDQgPSBub2lzZV9sZXZlbAphbXRfczAwX2QwNF9ub2lzZV9sZXZlbCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMDBfZDA0X25vaXNlX2xldmVsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwMV9kMDRfbm9pc2VfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczAxX2QwNF9ub2lzZV9sZXZlbCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMDJfZDA0X25vaXNlX2xldmVsID0gaHNsaWRlcigiTU1fTWF0cml4L3MwMl9kMDRfbm9pc2VfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczAzX2QwNF9ub2lzZV9sZXZlbCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMDNfZDA0X25vaXNlX2xldmVsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwNF9kMDRfbm9pc2VfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczA0X2QwNF9ub2lzZV9sZXZlbCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMDVfZDA0X25vaXNlX2xldmVsID0gaHNsaWRlcigiTU1fTWF0cml4L3MwNV9kMDRfbm9pc2VfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczA2X2QwNF9ub2lzZV9sZXZlbCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMDZfZDA0X25vaXNlX2xldmVsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwN19kMDRfbm9pc2VfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczA3X2QwNF9ub2lzZV9sZXZlbCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMDhfZDA0X25vaXNlX2xldmVsID0gaHNsaWRlcigiTU1fTWF0cml4L3MwOF9kMDRfbm9pc2VfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczA5X2QwNF9ub2lzZV9sZXZlbCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMDlfZDA0X25vaXNlX2xldmVsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxMF9kMDRfbm9pc2VfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczEwX2QwNF9ub2lzZV9sZXZlbCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMTFfZDA0X25vaXNlX2xldmVsID0gaHNsaWRlcigiTU1fTWF0cml4L3MxMV9kMDRfbm9pc2VfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczEyX2QwNF9ub2lzZV9sZXZlbCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMTJfZDA0X25vaXNlX2xldmVsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxM19kMDRfbm9pc2VfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczEzX2QwNF9ub2lzZV9sZXZlbCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMTRfZDA0X25vaXNlX2xldmVsID0gaHNsaWRlcigiTU1fTWF0cml4L3MxNF9kMDRfbm9pc2VfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczE1X2QwNF9ub2lzZV9sZXZlbCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMTVfZDA0X25vaXNlX2xldmVsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxNl9kMDRfbm9pc2VfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczE2X2QwNF9ub2lzZV9sZXZlbCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMTdfZDA0X25vaXNlX2xldmVsID0gaHNsaWRlcigiTU1fTWF0cml4L3MxN19kMDRfbm9pc2VfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczE4X2QwNF9ub2lzZV9sZXZlbCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMThfZDA0X25vaXNlX2xldmVsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxOV9kMDRfbm9pc2VfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczE5X2QwNF9ub2lzZV9sZXZlbCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMjBfZDA0X25vaXNlX2xldmVsID0gaHNsaWRlcigiTU1fTWF0cml4L3MyMF9kMDRfbm9pc2VfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczIxX2QwNF9ub2lzZV9sZXZlbCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMjFfZDA0X25vaXNlX2xldmVsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyMl9kMDRfbm9pc2VfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczIyX2QwNF9ub2lzZV9sZXZlbCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMjNfZDA0X25vaXNlX2xldmVsID0gaHNsaWRlcigiTU1fTWF0cml4L3MyM19kMDRfbm9pc2VfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczI0X2QwNF9ub2lzZV9sZXZlbCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMjRfZDA0X25vaXNlX2xldmVsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyNV9kMDRfbm9pc2VfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczI1X2QwNF9ub2lzZV9sZXZlbCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMjZfZDA0X25vaXNlX2xldmVsID0gaHNsaWRlcigiTU1fTWF0cml4L3MyNl9kMDRfbm9pc2VfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczI3X2QwNF9ub2lzZV9sZXZlbCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMjdfZDA0X25vaXNlX2xldmVsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyOF9kMDRfbm9pc2VfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczI4X2QwNF9ub2lzZV9sZXZlbCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMjlfZDA0X25vaXNlX2xldmVsID0gaHNsaWRlcigiTU1fTWF0cml4L3MyOV9kMDRfbm9pc2VfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczMwX2QwNF9ub2lzZV9sZXZlbCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMzBfZDA0X25vaXNlX2xldmVsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzMV9kMDRfbm9pc2VfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczMxX2QwNF9ub2lzZV9sZXZlbCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMzJfZDA0X25vaXNlX2xldmVsID0gaHNsaWRlcigiTU1fTWF0cml4L3MzMl9kMDRfbm9pc2VfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczMzX2QwNF9ub2lzZV9sZXZlbCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMzNfZDA0X25vaXNlX2xldmVsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzNF9kMDRfbm9pc2VfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczM0X2QwNF9ub2lzZV9sZXZlbCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMzVfZDA0X25vaXNlX2xldmVsID0gaHNsaWRlcigiTU1fTWF0cml4L3MzNV9kMDRfbm9pc2VfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczM2X2QwNF9ub2lzZV9sZXZlbCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMzZfZDA0X25vaXNlX2xldmVsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzN19kMDRfbm9pc2VfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczM3X2QwNF9ub2lzZV9sZXZlbCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMzhfZDA0X25vaXNlX2xldmVsID0gaHNsaWRlcigiTU1fTWF0cml4L3MzOF9kMDRfbm9pc2VfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczM5X2QwNF9ub2lzZV9sZXZlbCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMzlfZDA0X25vaXNlX2xldmVsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0MF9kMDRfbm9pc2VfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQwX2QwNF9ub2lzZV9sZXZlbCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zNDFfZDA0X25vaXNlX2xldmVsID0gaHNsaWRlcigiTU1fTWF0cml4L3M0MV9kMDRfbm9pc2VfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQyX2QwNF9ub2lzZV9sZXZlbCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zNDJfZDA0X25vaXNlX2xldmVsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0M19kMDRfbm9pc2VfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQzX2QwNF9ub2lzZV9sZXZlbCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zNDRfZDA0X25vaXNlX2xldmVsID0gaHNsaWRlcigiTU1fTWF0cml4L3M0NF9kMDRfbm9pc2VfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQ1X2QwNF9ub2lzZV9sZXZlbCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zNDVfZDA0X25vaXNlX2xldmVsIiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0Nl9kMDRfbm9pc2VfbGV2ZWwgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQ2X2QwNF9ub2lzZV9sZXZlbCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zNDdfZDA0X25vaXNlX2xldmVsID0gaHNsaWRlcigiTU1fTWF0cml4L3M0N19kMDRfbm9pc2VfbGV2ZWwiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwoKLy8gTWF0cml4IGNvbHVtbjogZGVzdGluYXRpb24gNSA9IGN1dG9mZgphbXRfczAwX2QwNV9jdXRvZmYgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczAwX2QwNV9jdXRvZmYiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczAxX2QwNV9jdXRvZmYgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczAxX2QwNV9jdXRvZmYiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczAyX2QwNV9jdXRvZmYgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczAyX2QwNV9jdXRvZmYiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczAzX2QwNV9jdXRvZmYgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczAzX2QwNV9jdXRvZmYiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczA0X2QwNV9jdXRvZmYgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczA0X2QwNV9jdXRvZmYiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczA1X2QwNV9jdXRvZmYgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczA1X2QwNV9jdXRvZmYiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczA2X2QwNV9jdXRvZmYgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczA2X2QwNV9jdXRvZmYiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczA3X2QwNV9jdXRvZmYgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczA3X2QwNV9jdXRvZmYiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczA4X2QwNV9jdXRvZmYgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczA4X2QwNV9jdXRvZmYiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczA5X2QwNV9jdXRvZmYgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczA5X2QwNV9jdXRvZmYiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczEwX2QwNV9jdXRvZmYgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczEwX2QwNV9jdXRvZmYiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczExX2QwNV9jdXRvZmYgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczExX2QwNV9jdXRvZmYiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczEyX2QwNV9jdXRvZmYgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczEyX2QwNV9jdXRvZmYiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczEzX2QwNV9jdXRvZmYgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczEzX2QwNV9jdXRvZmYiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczE0X2QwNV9jdXRvZmYgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczE0X2QwNV9jdXRvZmYiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczE1X2QwNV9jdXRvZmYgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczE1X2QwNV9jdXRvZmYiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczE2X2QwNV9jdXRvZmYgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczE2X2QwNV9jdXRvZmYiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczE3X2QwNV9jdXRvZmYgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczE3X2QwNV9jdXRvZmYiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczE4X2QwNV9jdXRvZmYgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczE4X2QwNV9jdXRvZmYiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczE5X2QwNV9jdXRvZmYgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczE5X2QwNV9jdXRvZmYiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczIwX2QwNV9jdXRvZmYgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczIwX2QwNV9jdXRvZmYiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczIxX2QwNV9jdXRvZmYgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczIxX2QwNV9jdXRvZmYiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczIyX2QwNV9jdXRvZmYgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczIyX2QwNV9jdXRvZmYiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczIzX2QwNV9jdXRvZmYgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczIzX2QwNV9jdXRvZmYiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczI0X2QwNV9jdXRvZmYgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczI0X2QwNV9jdXRvZmYiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczI1X2QwNV9jdXRvZmYgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczI1X2QwNV9jdXRvZmYiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczI2X2QwNV9jdXRvZmYgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczI2X2QwNV9jdXRvZmYiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczI3X2QwNV9jdXRvZmYgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczI3X2QwNV9jdXRvZmYiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczI4X2QwNV9jdXRvZmYgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczI4X2QwNV9jdXRvZmYiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczI5X2QwNV9jdXRvZmYgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczI5X2QwNV9jdXRvZmYiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczMwX2QwNV9jdXRvZmYgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczMwX2QwNV9jdXRvZmYiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczMxX2QwNV9jdXRvZmYgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczMxX2QwNV9jdXRvZmYiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczMyX2QwNV9jdXRvZmYgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczMyX2QwNV9jdXRvZmYiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczMzX2QwNV9jdXRvZmYgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczMzX2QwNV9jdXRvZmYiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczM0X2QwNV9jdXRvZmYgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczM0X2QwNV9jdXRvZmYiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczM1X2QwNV9jdXRvZmYgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczM1X2QwNV9jdXRvZmYiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczM2X2QwNV9jdXRvZmYgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczM2X2QwNV9jdXRvZmYiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczM3X2QwNV9jdXRvZmYgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczM3X2QwNV9jdXRvZmYiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczM4X2QwNV9jdXRvZmYgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczM4X2QwNV9jdXRvZmYiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczM5X2QwNV9jdXRvZmYgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczM5X2QwNV9jdXRvZmYiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQwX2QwNV9jdXRvZmYgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQwX2QwNV9jdXRvZmYiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQxX2QwNV9jdXRvZmYgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQxX2QwNV9jdXRvZmYiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQyX2QwNV9jdXRvZmYgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQyX2QwNV9jdXRvZmYiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQzX2QwNV9jdXRvZmYgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQzX2QwNV9jdXRvZmYiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQ0X2QwNV9jdXRvZmYgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQ0X2QwNV9jdXRvZmYiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQ1X2QwNV9jdXRvZmYgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQ1X2QwNV9jdXRvZmYiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQ2X2QwNV9jdXRvZmYgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQ2X2QwNV9jdXRvZmYiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQ3X2QwNV9jdXRvZmYgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQ3X2QwNV9jdXRvZmYiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwoKLy8gTWF0cml4IGNvbHVtbjogZGVzdGluYXRpb24gNiA9IHJlc29uYW5jZQphbXRfczAwX2QwNl9yZXNvbmFuY2UgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczAwX2QwNl9yZXNvbmFuY2UiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczAxX2QwNl9yZXNvbmFuY2UgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczAxX2QwNl9yZXNvbmFuY2UiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczAyX2QwNl9yZXNvbmFuY2UgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczAyX2QwNl9yZXNvbmFuY2UiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczAzX2QwNl9yZXNvbmFuY2UgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczAzX2QwNl9yZXNvbmFuY2UiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczA0X2QwNl9yZXNvbmFuY2UgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczA0X2QwNl9yZXNvbmFuY2UiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczA1X2QwNl9yZXNvbmFuY2UgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczA1X2QwNl9yZXNvbmFuY2UiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczA2X2QwNl9yZXNvbmFuY2UgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczA2X2QwNl9yZXNvbmFuY2UiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczA3X2QwNl9yZXNvbmFuY2UgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczA3X2QwNl9yZXNvbmFuY2UiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczA4X2QwNl9yZXNvbmFuY2UgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczA4X2QwNl9yZXNvbmFuY2UiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczA5X2QwNl9yZXNvbmFuY2UgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczA5X2QwNl9yZXNvbmFuY2UiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczEwX2QwNl9yZXNvbmFuY2UgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczEwX2QwNl9yZXNvbmFuY2UiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczExX2QwNl9yZXNvbmFuY2UgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczExX2QwNl9yZXNvbmFuY2UiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczEyX2QwNl9yZXNvbmFuY2UgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczEyX2QwNl9yZXNvbmFuY2UiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczEzX2QwNl9yZXNvbmFuY2UgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczEzX2QwNl9yZXNvbmFuY2UiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczE0X2QwNl9yZXNvbmFuY2UgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczE0X2QwNl9yZXNvbmFuY2UiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczE1X2QwNl9yZXNvbmFuY2UgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczE1X2QwNl9yZXNvbmFuY2UiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczE2X2QwNl9yZXNvbmFuY2UgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczE2X2QwNl9yZXNvbmFuY2UiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczE3X2QwNl9yZXNvbmFuY2UgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczE3X2QwNl9yZXNvbmFuY2UiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczE4X2QwNl9yZXNvbmFuY2UgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczE4X2QwNl9yZXNvbmFuY2UiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczE5X2QwNl9yZXNvbmFuY2UgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczE5X2QwNl9yZXNvbmFuY2UiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczIwX2QwNl9yZXNvbmFuY2UgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczIwX2QwNl9yZXNvbmFuY2UiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczIxX2QwNl9yZXNvbmFuY2UgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczIxX2QwNl9yZXNvbmFuY2UiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczIyX2QwNl9yZXNvbmFuY2UgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczIyX2QwNl9yZXNvbmFuY2UiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczIzX2QwNl9yZXNvbmFuY2UgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczIzX2QwNl9yZXNvbmFuY2UiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczI0X2QwNl9yZXNvbmFuY2UgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczI0X2QwNl9yZXNvbmFuY2UiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczI1X2QwNl9yZXNvbmFuY2UgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczI1X2QwNl9yZXNvbmFuY2UiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczI2X2QwNl9yZXNvbmFuY2UgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczI2X2QwNl9yZXNvbmFuY2UiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczI3X2QwNl9yZXNvbmFuY2UgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczI3X2QwNl9yZXNvbmFuY2UiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczI4X2QwNl9yZXNvbmFuY2UgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczI4X2QwNl9yZXNvbmFuY2UiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczI5X2QwNl9yZXNvbmFuY2UgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczI5X2QwNl9yZXNvbmFuY2UiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczMwX2QwNl9yZXNvbmFuY2UgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczMwX2QwNl9yZXNvbmFuY2UiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczMxX2QwNl9yZXNvbmFuY2UgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczMxX2QwNl9yZXNvbmFuY2UiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczMyX2QwNl9yZXNvbmFuY2UgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczMyX2QwNl9yZXNvbmFuY2UiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczMzX2QwNl9yZXNvbmFuY2UgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczMzX2QwNl9yZXNvbmFuY2UiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczM0X2QwNl9yZXNvbmFuY2UgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczM0X2QwNl9yZXNvbmFuY2UiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczM1X2QwNl9yZXNvbmFuY2UgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczM1X2QwNl9yZXNvbmFuY2UiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczM2X2QwNl9yZXNvbmFuY2UgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczM2X2QwNl9yZXNvbmFuY2UiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczM3X2QwNl9yZXNvbmFuY2UgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczM3X2QwNl9yZXNvbmFuY2UiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczM4X2QwNl9yZXNvbmFuY2UgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczM4X2QwNl9yZXNvbmFuY2UiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczM5X2QwNl9yZXNvbmFuY2UgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczM5X2QwNl9yZXNvbmFuY2UiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQwX2QwNl9yZXNvbmFuY2UgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQwX2QwNl9yZXNvbmFuY2UiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQxX2QwNl9yZXNvbmFuY2UgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQxX2QwNl9yZXNvbmFuY2UiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQyX2QwNl9yZXNvbmFuY2UgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQyX2QwNl9yZXNvbmFuY2UiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQzX2QwNl9yZXNvbmFuY2UgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQzX2QwNl9yZXNvbmFuY2UiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQ0X2QwNl9yZXNvbmFuY2UgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQ0X2QwNl9yZXNvbmFuY2UiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQ1X2QwNl9yZXNvbmFuY2UgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQ1X2QwNl9yZXNvbmFuY2UiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQ2X2QwNl9yZXNvbmFuY2UgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQ2X2QwNl9yZXNvbmFuY2UiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQ3X2QwNl9yZXNvbmFuY2UgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQ3X2QwNl9yZXNvbmFuY2UiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwoKLy8gTWF0cml4IGNvbHVtbjogZGVzdGluYXRpb24gNyA9IGZpbHRlcl9lbnZfYW10CmFtdF9zMDBfZDA3X2ZpbHRlcl9lbnZfYW10ID0gaHNsaWRlcigiTU1fTWF0cml4L3MwMF9kMDdfZmlsdGVyX2Vudl9hbXQiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczAxX2QwN19maWx0ZXJfZW52X2FtdCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMDFfZDA3X2ZpbHRlcl9lbnZfYW10IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwMl9kMDdfZmlsdGVyX2Vudl9hbXQgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczAyX2QwN19maWx0ZXJfZW52X2FtdCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMDNfZDA3X2ZpbHRlcl9lbnZfYW10ID0gaHNsaWRlcigiTU1fTWF0cml4L3MwM19kMDdfZmlsdGVyX2Vudl9hbXQiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczA0X2QwN19maWx0ZXJfZW52X2FtdCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMDRfZDA3X2ZpbHRlcl9lbnZfYW10IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwNV9kMDdfZmlsdGVyX2Vudl9hbXQgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczA1X2QwN19maWx0ZXJfZW52X2FtdCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMDZfZDA3X2ZpbHRlcl9lbnZfYW10ID0gaHNsaWRlcigiTU1fTWF0cml4L3MwNl9kMDdfZmlsdGVyX2Vudl9hbXQiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczA3X2QwN19maWx0ZXJfZW52X2FtdCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMDdfZDA3X2ZpbHRlcl9lbnZfYW10IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MwOF9kMDdfZmlsdGVyX2Vudl9hbXQgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczA4X2QwN19maWx0ZXJfZW52X2FtdCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMDlfZDA3X2ZpbHRlcl9lbnZfYW10ID0gaHNsaWRlcigiTU1fTWF0cml4L3MwOV9kMDdfZmlsdGVyX2Vudl9hbXQiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczEwX2QwN19maWx0ZXJfZW52X2FtdCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMTBfZDA3X2ZpbHRlcl9lbnZfYW10IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxMV9kMDdfZmlsdGVyX2Vudl9hbXQgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczExX2QwN19maWx0ZXJfZW52X2FtdCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMTJfZDA3X2ZpbHRlcl9lbnZfYW10ID0gaHNsaWRlcigiTU1fTWF0cml4L3MxMl9kMDdfZmlsdGVyX2Vudl9hbXQiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczEzX2QwN19maWx0ZXJfZW52X2FtdCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMTNfZDA3X2ZpbHRlcl9lbnZfYW10IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxNF9kMDdfZmlsdGVyX2Vudl9hbXQgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczE0X2QwN19maWx0ZXJfZW52X2FtdCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMTVfZDA3X2ZpbHRlcl9lbnZfYW10ID0gaHNsaWRlcigiTU1fTWF0cml4L3MxNV9kMDdfZmlsdGVyX2Vudl9hbXQiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczE2X2QwN19maWx0ZXJfZW52X2FtdCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMTZfZDA3X2ZpbHRlcl9lbnZfYW10IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MxN19kMDdfZmlsdGVyX2Vudl9hbXQgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczE3X2QwN19maWx0ZXJfZW52X2FtdCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMThfZDA3X2ZpbHRlcl9lbnZfYW10ID0gaHNsaWRlcigiTU1fTWF0cml4L3MxOF9kMDdfZmlsdGVyX2Vudl9hbXQiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczE5X2QwN19maWx0ZXJfZW52X2FtdCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMTlfZDA3X2ZpbHRlcl9lbnZfYW10IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyMF9kMDdfZmlsdGVyX2Vudl9hbXQgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczIwX2QwN19maWx0ZXJfZW52X2FtdCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMjFfZDA3X2ZpbHRlcl9lbnZfYW10ID0gaHNsaWRlcigiTU1fTWF0cml4L3MyMV9kMDdfZmlsdGVyX2Vudl9hbXQiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczIyX2QwN19maWx0ZXJfZW52X2FtdCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMjJfZDA3X2ZpbHRlcl9lbnZfYW10IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyM19kMDdfZmlsdGVyX2Vudl9hbXQgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczIzX2QwN19maWx0ZXJfZW52X2FtdCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMjRfZDA3X2ZpbHRlcl9lbnZfYW10ID0gaHNsaWRlcigiTU1fTWF0cml4L3MyNF9kMDdfZmlsdGVyX2Vudl9hbXQiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczI1X2QwN19maWx0ZXJfZW52X2FtdCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMjVfZDA3X2ZpbHRlcl9lbnZfYW10IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyNl9kMDdfZmlsdGVyX2Vudl9hbXQgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczI2X2QwN19maWx0ZXJfZW52X2FtdCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMjdfZDA3X2ZpbHRlcl9lbnZfYW10ID0gaHNsaWRlcigiTU1fTWF0cml4L3MyN19kMDdfZmlsdGVyX2Vudl9hbXQiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczI4X2QwN19maWx0ZXJfZW52X2FtdCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMjhfZDA3X2ZpbHRlcl9lbnZfYW10IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MyOV9kMDdfZmlsdGVyX2Vudl9hbXQgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczI5X2QwN19maWx0ZXJfZW52X2FtdCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMzBfZDA3X2ZpbHRlcl9lbnZfYW10ID0gaHNsaWRlcigiTU1fTWF0cml4L3MzMF9kMDdfZmlsdGVyX2Vudl9hbXQiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczMxX2QwN19maWx0ZXJfZW52X2FtdCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMzFfZDA3X2ZpbHRlcl9lbnZfYW10IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzMl9kMDdfZmlsdGVyX2Vudl9hbXQgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczMyX2QwN19maWx0ZXJfZW52X2FtdCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMzNfZDA3X2ZpbHRlcl9lbnZfYW10ID0gaHNsaWRlcigiTU1fTWF0cml4L3MzM19kMDdfZmlsdGVyX2Vudl9hbXQiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczM0X2QwN19maWx0ZXJfZW52X2FtdCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMzRfZDA3X2ZpbHRlcl9lbnZfYW10IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzNV9kMDdfZmlsdGVyX2Vudl9hbXQgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczM1X2QwN19maWx0ZXJfZW52X2FtdCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMzZfZDA3X2ZpbHRlcl9lbnZfYW10ID0gaHNsaWRlcigiTU1fTWF0cml4L3MzNl9kMDdfZmlsdGVyX2Vudl9hbXQiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczM3X2QwN19maWx0ZXJfZW52X2FtdCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMzdfZDA3X2ZpbHRlcl9lbnZfYW10IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3MzOF9kMDdfZmlsdGVyX2Vudl9hbXQgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczM4X2QwN19maWx0ZXJfZW52X2FtdCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMzlfZDA3X2ZpbHRlcl9lbnZfYW10ID0gaHNsaWRlcigiTU1fTWF0cml4L3MzOV9kMDdfZmlsdGVyX2Vudl9hbXQiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQwX2QwN19maWx0ZXJfZW52X2FtdCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zNDBfZDA3X2ZpbHRlcl9lbnZfYW10IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0MV9kMDdfZmlsdGVyX2Vudl9hbXQgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQxX2QwN19maWx0ZXJfZW52X2FtdCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zNDJfZDA3X2ZpbHRlcl9lbnZfYW10ID0gaHNsaWRlcigiTU1fTWF0cml4L3M0Ml9kMDdfZmlsdGVyX2Vudl9hbXQiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQzX2QwN19maWx0ZXJfZW52X2FtdCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zNDNfZDA3X2ZpbHRlcl9lbnZfYW10IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0NF9kMDdfZmlsdGVyX2Vudl9hbXQgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQ0X2QwN19maWx0ZXJfZW52X2FtdCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zNDVfZDA3X2ZpbHRlcl9lbnZfYW10ID0gaHNsaWRlcigiTU1fTWF0cml4L3M0NV9kMDdfZmlsdGVyX2Vudl9hbXQiLCAwLjAsIC0xLjAsIDEuMCwgMC4wMDEpOwphbXRfczQ2X2QwN19maWx0ZXJfZW52X2FtdCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zNDZfZDA3X2ZpbHRlcl9lbnZfYW10IiwgMC4wLCAtMS4wLCAxLjAsIDAuMDAxKTsKYW10X3M0N19kMDdfZmlsdGVyX2Vudl9hbXQgPSBoc2xpZGVyKCJNTV9NYXRyaXgvczQ3X2QwN19maWx0ZXJfZW52X2FtdCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CgovLyBNYXRyaXggY29sdW1uOiBkZXN0aW5hdGlvbiA4ID0gYW1wCmFtdF9zMDBfZDA4X2FtcCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMDBfZDA4X2FtcCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMDFfZDA4X2FtcCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMDFfZDA4X2FtcCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMDJfZDA4X2FtcCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMDJfZDA4X2FtcCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMDNfZDA4X2FtcCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMDNfZDA4X2FtcCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMDRfZDA4X2FtcCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMDRfZDA4X2FtcCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMDVfZDA4X2FtcCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMDVfZDA4X2FtcCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMDZfZDA4X2FtcCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMDZfZDA4X2FtcCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMDdfZDA4X2FtcCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMDdfZDA4X2FtcCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMDhfZDA4X2FtcCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMDhfZDA4X2FtcCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMDlfZDA4X2FtcCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMDlfZDA4X2FtcCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMTBfZDA4X2FtcCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMTBfZDA4X2FtcCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMTFfZDA4X2FtcCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMTFfZDA4X2FtcCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMTJfZDA4X2FtcCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMTJfZDA4X2FtcCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMTNfZDA4X2FtcCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMTNfZDA4X2FtcCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMTRfZDA4X2FtcCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMTRfZDA4X2FtcCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMTVfZDA4X2FtcCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMTVfZDA4X2FtcCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMTZfZDA4X2FtcCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMTZfZDA4X2FtcCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMTdfZDA4X2FtcCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMTdfZDA4X2FtcCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMThfZDA4X2FtcCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMThfZDA4X2FtcCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMTlfZDA4X2FtcCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMTlfZDA4X2FtcCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMjBfZDA4X2FtcCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMjBfZDA4X2FtcCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMjFfZDA4X2FtcCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMjFfZDA4X2FtcCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMjJfZDA4X2FtcCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMjJfZDA4X2FtcCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMjNfZDA4X2FtcCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMjNfZDA4X2FtcCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMjRfZDA4X2FtcCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMjRfZDA4X2FtcCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMjVfZDA4X2FtcCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMjVfZDA4X2FtcCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMjZfZDA4X2FtcCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMjZfZDA4X2FtcCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMjdfZDA4X2FtcCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMjdfZDA4X2FtcCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMjhfZDA4X2FtcCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMjhfZDA4X2FtcCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMjlfZDA4X2FtcCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMjlfZDA4X2FtcCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMzBfZDA4X2FtcCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMzBfZDA4X2FtcCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMzFfZDA4X2FtcCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMzFfZDA4X2FtcCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMzJfZDA4X2FtcCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMzJfZDA4X2FtcCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMzNfZDA4X2FtcCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMzNfZDA4X2FtcCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMzRfZDA4X2FtcCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMzRfZDA4X2FtcCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMzVfZDA4X2FtcCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMzVfZDA4X2FtcCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMzZfZDA4X2FtcCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMzZfZDA4X2FtcCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMzdfZDA4X2FtcCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMzdfZDA4X2FtcCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMzhfZDA4X2FtcCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMzhfZDA4X2FtcCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMzlfZDA4X2FtcCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMzlfZDA4X2FtcCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zNDBfZDA4X2FtcCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zNDBfZDA4X2FtcCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zNDFfZDA4X2FtcCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zNDFfZDA4X2FtcCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zNDJfZDA4X2FtcCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zNDJfZDA4X2FtcCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zNDNfZDA4X2FtcCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zNDNfZDA4X2FtcCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zNDRfZDA4X2FtcCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zNDRfZDA4X2FtcCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zNDVfZDA4X2FtcCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zNDVfZDA4X2FtcCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zNDZfZDA4X2FtcCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zNDZfZDA4X2FtcCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zNDdfZDA4X2FtcCA9IGhzbGlkZXIoIk1NX01hdHJpeC9zNDdfZDA4X2FtcCIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CgovLyBNYXRyaXggY29sdW1uOiBkZXN0aW5hdGlvbiA5ID0gcGFuCmFtdF9zMDBfZDA5X3BhbiA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMDBfZDA5X3BhbiIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMDFfZDA5X3BhbiA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMDFfZDA5X3BhbiIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMDJfZDA5X3BhbiA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMDJfZDA5X3BhbiIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMDNfZDA5X3BhbiA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMDNfZDA5X3BhbiIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMDRfZDA5X3BhbiA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMDRfZDA5X3BhbiIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMDVfZDA5X3BhbiA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMDVfZDA5X3BhbiIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMDZfZDA5X3BhbiA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMDZfZDA5X3BhbiIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMDdfZDA5X3BhbiA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMDdfZDA5X3BhbiIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMDhfZDA5X3BhbiA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMDhfZDA5X3BhbiIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMDlfZDA5X3BhbiA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMDlfZDA5X3BhbiIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMTBfZDA5X3BhbiA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMTBfZDA5X3BhbiIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMTFfZDA5X3BhbiA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMTFfZDA5X3BhbiIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMTJfZDA5X3BhbiA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMTJfZDA5X3BhbiIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMTNfZDA5X3BhbiA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMTNfZDA5X3BhbiIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMTRfZDA5X3BhbiA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMTRfZDA5X3BhbiIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMTVfZDA5X3BhbiA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMTVfZDA5X3BhbiIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMTZfZDA5X3BhbiA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMTZfZDA5X3BhbiIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMTdfZDA5X3BhbiA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMTdfZDA5X3BhbiIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMThfZDA5X3BhbiA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMThfZDA5X3BhbiIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMTlfZDA5X3BhbiA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMTlfZDA5X3BhbiIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMjBfZDA5X3BhbiA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMjBfZDA5X3BhbiIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMjFfZDA5X3BhbiA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMjFfZDA5X3BhbiIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMjJfZDA5X3BhbiA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMjJfZDA5X3BhbiIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMjNfZDA5X3BhbiA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMjNfZDA5X3BhbiIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMjRfZDA5X3BhbiA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMjRfZDA5X3BhbiIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMjVfZDA5X3BhbiA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMjVfZDA5X3BhbiIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMjZfZDA5X3BhbiA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMjZfZDA5X3BhbiIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMjdfZDA5X3BhbiA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMjdfZDA5X3BhbiIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMjhfZDA5X3BhbiA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMjhfZDA5X3BhbiIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMjlfZDA5X3BhbiA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMjlfZDA5X3BhbiIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMzBfZDA5X3BhbiA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMzBfZDA5X3BhbiIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMzFfZDA5X3BhbiA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMzFfZDA5X3BhbiIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMzJfZDA5X3BhbiA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMzJfZDA5X3BhbiIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMzNfZDA5X3BhbiA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMzNfZDA5X3BhbiIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMzRfZDA5X3BhbiA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMzRfZDA5X3BhbiIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMzVfZDA5X3BhbiA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMzVfZDA5X3BhbiIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMzZfZDA5X3BhbiA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMzZfZDA5X3BhbiIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMzdfZDA5X3BhbiA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMzdfZDA5X3BhbiIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMzhfZDA5X3BhbiA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMzhfZDA5X3BhbiIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zMzlfZDA5X3BhbiA9IGhzbGlkZXIoIk1NX01hdHJpeC9zMzlfZDA5X3BhbiIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zNDBfZDA5X3BhbiA9IGhzbGlkZXIoIk1NX01hdHJpeC9zNDBfZDA5X3BhbiIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zNDFfZDA5X3BhbiA9IGhzbGlkZXIoIk1NX01hdHJpeC9zNDFfZDA5X3BhbiIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zNDJfZDA5X3BhbiA9IGhzbGlkZXIoIk1NX01hdHJpeC9zNDJfZDA5X3BhbiIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zNDNfZDA5X3BhbiA9IGhzbGlkZXIoIk1NX01hdHJpeC9zNDNfZDA5X3BhbiIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zNDRfZDA5X3BhbiA9IGhzbGlkZXIoIk1NX01hdHJpeC9zNDRfZDA5X3BhbiIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zNDVfZDA5X3BhbiA9IGhzbGlkZXIoIk1NX01hdHJpeC9zNDVfZDA5X3BhbiIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zNDZfZDA5X3BhbiA9IGhzbGlkZXIoIk1NX01hdHJpeC9zNDZfZDA5X3BhbiIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CmFtdF9zNDdfZDA5X3BhbiA9IGhzbGlkZXIoIk1NX01hdHJpeC9zNDdfZDA5X3BhbiIsIDAuMCwgLTEuMCwgMS4wLCAwLjAwMSk7CgovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLy8gRGVzdGluYXRpb24gc2lnbmFscyDigJQgb25lIHBlciBtb2R1bGF0aW9uIGRlc3RpbmF0aW9uLiBFYWNoIGlzIGEgNDgtdGVybQovLyB3ZWlnaHRlZCBzdW0gb2Ygc291cmNlcyDDlyBhbW91bnRzLiBUaGUgYGdhdGVgIGFyZ3VtZW50IGlzIHRocmVhZGVkIHRocm91Z2gKLy8gc28gdGhhdCBtcC5zcmM/PyhnYXRlKSBjYW4gZHJpdmUgQURTUiBlbnZlbG9wZXMuCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKbW9kX3BpdGNoKGdhdGUpID0KICAgIG1wLnNyYzAwKGdhdGUpICogYW10X3MwMF9kMDBfcGl0Y2ggKwogICAgbXAuc3JjMDEoZ2F0ZSkgKiBhbXRfczAxX2QwMF9waXRjaCArCiAgICBtcC5zcmMwMihnYXRlKSAqIGFtdF9zMDJfZDAwX3BpdGNoICsKICAgIG1wLnNyYzAzKGdhdGUpICogYW10X3MwM19kMDBfcGl0Y2ggKwogICAgbXAuc3JjMDQoZ2F0ZSkgKiBhbXRfczA0X2QwMF9waXRjaCArCiAgICBtcC5zcmMwNShnYXRlKSAqIGFtdF9zMDVfZDAwX3BpdGNoICsKICAgIG1wLnNyYzA2KGdhdGUpICogYW10X3MwNl9kMDBfcGl0Y2ggKwogICAgbXAuc3JjMDcoZ2F0ZSkgKiBhbXRfczA3X2QwMF9waXRjaCArCiAgICBtcC5zcmMwOChnYXRlKSAqIGFtdF9zMDhfZDAwX3BpdGNoICsKICAgIG1wLnNyYzA5KGdhdGUpICogYW10X3MwOV9kMDBfcGl0Y2ggKwogICAgbXAuc3JjMTAoZ2F0ZSkgKiBhbXRfczEwX2QwMF9waXRjaCArCiAgICBtcC5zcmMxMShnYXRlKSAqIGFtdF9zMTFfZDAwX3BpdGNoICsKICAgIG1wLnNyYzEyKGdhdGUpICogYW10X3MxMl9kMDBfcGl0Y2ggKwogICAgbXAuc3JjMTMoZ2F0ZSkgKiBhbXRfczEzX2QwMF9waXRjaCArCiAgICBtcC5zcmMxNChnYXRlKSAqIGFtdF9zMTRfZDAwX3BpdGNoICsKICAgIG1wLnNyYzE1KGdhdGUpICogYW10X3MxNV9kMDBfcGl0Y2ggKwogICAgbXAuc3JjMTYoZ2F0ZSkgKiBhbXRfczE2X2QwMF9waXRjaCArCiAgICBtcC5zcmMxNyhnYXRlKSAqIGFtdF9zMTdfZDAwX3BpdGNoICsKICAgIG1wLnNyYzE4KGdhdGUpICogYW10X3MxOF9kMDBfcGl0Y2ggKwogICAgbXAuc3JjMTkoZ2F0ZSkgKiBhbXRfczE5X2QwMF9waXRjaCArCiAgICBtcC5zcmMyMChnYXRlKSAqIGFtdF9zMjBfZDAwX3BpdGNoICsKICAgIG1wLnNyYzIxKGdhdGUpICogYW10X3MyMV9kMDBfcGl0Y2ggKwogICAgbXAuc3JjMjIoZ2F0ZSkgKiBhbXRfczIyX2QwMF9waXRjaCArCiAgICBtcC5zcmMyMyhnYXRlKSAqIGFtdF9zMjNfZDAwX3BpdGNoICsKICAgIG1wLnNyYzI0KGdhdGUpICogYW10X3MyNF9kMDBfcGl0Y2ggKwogICAgbXAuc3JjMjUoZ2F0ZSkgKiBhbXRfczI1X2QwMF9waXRjaCArCiAgICBtcC5zcmMyNihnYXRlKSAqIGFtdF9zMjZfZDAwX3BpdGNoICsKICAgIG1wLnNyYzI3KGdhdGUpICogYW10X3MyN19kMDBfcGl0Y2ggKwogICAgbXAuc3JjMjgoZ2F0ZSkgKiBhbXRfczI4X2QwMF9waXRjaCArCiAgICBtcC5zcmMyOShnYXRlKSAqIGFtdF9zMjlfZDAwX3BpdGNoICsKICAgIG1wLnNyYzMwKGdhdGUpICogYW10X3MzMF9kMDBfcGl0Y2ggKwogICAgbXAuc3JjMzEoZ2F0ZSkgKiBhbXRfczMxX2QwMF9waXRjaCArCiAgICBtcC5zcmMzMihnYXRlKSAqIGFtdF9zMzJfZDAwX3BpdGNoICsKICAgIG1wLnNyYzMzKGdhdGUpICogYW10X3MzM19kMDBfcGl0Y2ggKwogICAgbXAuc3JjMzQoZ2F0ZSkgKiBhbXRfczM0X2QwMF9waXRjaCArCiAgICBtcC5zcmMzNShnYXRlKSAqIGFtdF9zMzVfZDAwX3BpdGNoICsKICAgIG1wLnNyYzM2KGdhdGUpICogYW10X3MzNl9kMDBfcGl0Y2ggKwogICAgbXAuc3JjMzcoZ2F0ZSkgKiBhbXRfczM3X2QwMF9waXRjaCArCiAgICBtcC5zcmMzOChnYXRlKSAqIGFtdF9zMzhfZDAwX3BpdGNoICsKICAgIG1wLnNyYzM5KGdhdGUpICogYW10X3MzOV9kMDBfcGl0Y2ggKwogICAgbXAuc3JjNDAoZ2F0ZSkgKiBhbXRfczQwX2QwMF9waXRjaCArCiAgICBtcC5zcmM0MShnYXRlKSAqIGFtdF9zNDFfZDAwX3BpdGNoICsKICAgIG1wLnNyYzQyKGdhdGUpICogYW10X3M0Ml9kMDBfcGl0Y2ggKwogICAgbXAuc3JjNDMoZ2F0ZSkgKiBhbXRfczQzX2QwMF9waXRjaCArCiAgICBtcC5zcmM0NChnYXRlKSAqIGFtdF9zNDRfZDAwX3BpdGNoICsKICAgIG1wLnNyYzQ1KGdhdGUpICogYW10X3M0NV9kMDBfcGl0Y2ggKwogICAgbXAuc3JjNDYoZ2F0ZSkgKiBhbXRfczQ2X2QwMF9waXRjaCArCiAgICBtcC5zcmM0NyhnYXRlKSAqIGFtdF9zNDdfZDAwX3BpdGNoOwoKbW9kX29zYzJfZGV0dW5lKGdhdGUpID0KICAgIG1wLnNyYzAwKGdhdGUpICogYW10X3MwMF9kMDFfb3NjMl9kZXR1bmUgKwogICAgbXAuc3JjMDEoZ2F0ZSkgKiBhbXRfczAxX2QwMV9vc2MyX2RldHVuZSArCiAgICBtcC5zcmMwMihnYXRlKSAqIGFtdF9zMDJfZDAxX29zYzJfZGV0dW5lICsKICAgIG1wLnNyYzAzKGdhdGUpICogYW10X3MwM19kMDFfb3NjMl9kZXR1bmUgKwogICAgbXAuc3JjMDQoZ2F0ZSkgKiBhbXRfczA0X2QwMV9vc2MyX2RldHVuZSArCiAgICBtcC5zcmMwNShnYXRlKSAqIGFtdF9zMDVfZDAxX29zYzJfZGV0dW5lICsKICAgIG1wLnNyYzA2KGdhdGUpICogYW10X3MwNl9kMDFfb3NjMl9kZXR1bmUgKwogICAgbXAuc3JjMDcoZ2F0ZSkgKiBhbXRfczA3X2QwMV9vc2MyX2RldHVuZSArCiAgICBtcC5zcmMwOChnYXRlKSAqIGFtdF9zMDhfZDAxX29zYzJfZGV0dW5lICsKICAgIG1wLnNyYzA5KGdhdGUpICogYW10X3MwOV9kMDFfb3NjMl9kZXR1bmUgKwogICAgbXAuc3JjMTAoZ2F0ZSkgKiBhbXRfczEwX2QwMV9vc2MyX2RldHVuZSArCiAgICBtcC5zcmMxMShnYXRlKSAqIGFtdF9zMTFfZDAxX29zYzJfZGV0dW5lICsKICAgIG1wLnNyYzEyKGdhdGUpICogYW10X3MxMl9kMDFfb3NjMl9kZXR1bmUgKwogICAgbXAuc3JjMTMoZ2F0ZSkgKiBhbXRfczEzX2QwMV9vc2MyX2RldHVuZSArCiAgICBtcC5zcmMxNChnYXRlKSAqIGFtdF9zMTRfZDAxX29zYzJfZGV0dW5lICsKICAgIG1wLnNyYzE1KGdhdGUpICogYW10X3MxNV9kMDFfb3NjMl9kZXR1bmUgKwogICAgbXAuc3JjMTYoZ2F0ZSkgKiBhbXRfczE2X2QwMV9vc2MyX2RldHVuZSArCiAgICBtcC5zcmMxNyhnYXRlKSAqIGFtdF9zMTdfZDAxX29zYzJfZGV0dW5lICsKICAgIG1wLnNyYzE4KGdhdGUpICogYW10X3MxOF9kMDFfb3NjMl9kZXR1bmUgKwogICAgbXAuc3JjMTkoZ2F0ZSkgKiBhbXRfczE5X2QwMV9vc2MyX2RldHVuZSArCiAgICBtcC5zcmMyMChnYXRlKSAqIGFtdF9zMjBfZDAxX29zYzJfZGV0dW5lICsKICAgIG1wLnNyYzIxKGdhdGUpICogYW10X3MyMV9kMDFfb3NjMl9kZXR1bmUgKwogICAgbXAuc3JjMjIoZ2F0ZSkgKiBhbXRfczIyX2QwMV9vc2MyX2RldHVuZSArCiAgICBtcC5zcmMyMyhnYXRlKSAqIGFtdF9zMjNfZDAxX29zYzJfZGV0dW5lICsKICAgIG1wLnNyYzI0KGdhdGUpICogYW10X3MyNF9kMDFfb3NjMl9kZXR1bmUgKwogICAgbXAuc3JjMjUoZ2F0ZSkgKiBhbXRfczI1X2QwMV9vc2MyX2RldHVuZSArCiAgICBtcC5zcmMyNihnYXRlKSAqIGFtdF9zMjZfZDAxX29zYzJfZGV0dW5lICsKICAgIG1wLnNyYzI3KGdhdGUpICogYW10X3MyN19kMDFfb3NjMl9kZXR1bmUgKwogICAgbXAuc3JjMjgoZ2F0ZSkgKiBhbXRfczI4X2QwMV9vc2MyX2RldHVuZSArCiAgICBtcC5zcmMyOShnYXRlKSAqIGFtdF9zMjlfZDAxX29zYzJfZGV0dW5lICsKICAgIG1wLnNyYzMwKGdhdGUpICogYW10X3MzMF9kMDFfb3NjMl9kZXR1bmUgKwogICAgbXAuc3JjMzEoZ2F0ZSkgKiBhbXRfczMxX2QwMV9vc2MyX2RldHVuZSArCiAgICBtcC5zcmMzMihnYXRlKSAqIGFtdF9zMzJfZDAxX29zYzJfZGV0dW5lICsKICAgIG1wLnNyYzMzKGdhdGUpICogYW10X3MzM19kMDFfb3NjMl9kZXR1bmUgKwogICAgbXAuc3JjMzQoZ2F0ZSkgKiBhbXRfczM0X2QwMV9vc2MyX2RldHVuZSArCiAgICBtcC5zcmMzNShnYXRlKSAqIGFtdF9zMzVfZDAxX29zYzJfZGV0dW5lICsKICAgIG1wLnNyYzM2KGdhdGUpICogYW10X3MzNl9kMDFfb3NjMl9kZXR1bmUgKwogICAgbXAuc3JjMzcoZ2F0ZSkgKiBhbXRfczM3X2QwMV9vc2MyX2RldHVuZSArCiAgICBtcC5zcmMzOChnYXRlKSAqIGFtdF9zMzhfZDAxX29zYzJfZGV0dW5lICsKICAgIG1wLnNyYzM5KGdhdGUpICogYW10X3MzOV9kMDFfb3NjMl9kZXR1bmUgKwogICAgbXAuc3JjNDAoZ2F0ZSkgKiBhbXRfczQwX2QwMV9vc2MyX2RldHVuZSArCiAgICBtcC5zcmM0MShnYXRlKSAqIGFtdF9zNDFfZDAxX29zYzJfZGV0dW5lICsKICAgIG1wLnNyYzQyKGdhdGUpICogYW10X3M0Ml9kMDFfb3NjMl9kZXR1bmUgKwogICAgbXAuc3JjNDMoZ2F0ZSkgKiBhbXRfczQzX2QwMV9vc2MyX2RldHVuZSArCiAgICBtcC5zcmM0NChnYXRlKSAqIGFtdF9zNDRfZDAxX29zYzJfZGV0dW5lICsKICAgIG1wLnNyYzQ1KGdhdGUpICogYW10X3M0NV9kMDFfb3NjMl9kZXR1bmUgKwogICAgbXAuc3JjNDYoZ2F0ZSkgKiBhbXRfczQ2X2QwMV9vc2MyX2RldHVuZSArCiAgICBtcC5zcmM0NyhnYXRlKSAqIGFtdF9zNDdfZDAxX29zYzJfZGV0dW5lOwoKbW9kX29zYzNfZGV0dW5lKGdhdGUpID0KICAgIG1wLnNyYzAwKGdhdGUpICogYW10X3MwMF9kMDJfb3NjM19kZXR1bmUgKwogICAgbXAuc3JjMDEoZ2F0ZSkgKiBhbXRfczAxX2QwMl9vc2MzX2RldHVuZSArCiAgICBtcC5zcmMwMihnYXRlKSAqIGFtdF9zMDJfZDAyX29zYzNfZGV0dW5lICsKICAgIG1wLnNyYzAzKGdhdGUpICogYW10X3MwM19kMDJfb3NjM19kZXR1bmUgKwogICAgbXAuc3JjMDQoZ2F0ZSkgKiBhbXRfczA0X2QwMl9vc2MzX2RldHVuZSArCiAgICBtcC5zcmMwNShnYXRlKSAqIGFtdF9zMDVfZDAyX29zYzNfZGV0dW5lICsKICAgIG1wLnNyYzA2KGdhdGUpICogYW10X3MwNl9kMDJfb3NjM19kZXR1bmUgKwogICAgbXAuc3JjMDcoZ2F0ZSkgKiBhbXRfczA3X2QwMl9vc2MzX2RldHVuZSArCiAgICBtcC5zcmMwOChnYXRlKSAqIGFtdF9zMDhfZDAyX29zYzNfZGV0dW5lICsKICAgIG1wLnNyYzA5KGdhdGUpICogYW10X3MwOV9kMDJfb3NjM19kZXR1bmUgKwogICAgbXAuc3JjMTAoZ2F0ZSkgKiBhbXRfczEwX2QwMl9vc2MzX2RldHVuZSArCiAgICBtcC5zcmMxMShnYXRlKSAqIGFtdF9zMTFfZDAyX29zYzNfZGV0dW5lICsKICAgIG1wLnNyYzEyKGdhdGUpICogYW10X3MxMl9kMDJfb3NjM19kZXR1bmUgKwogICAgbXAuc3JjMTMoZ2F0ZSkgKiBhbXRfczEzX2QwMl9vc2MzX2RldHVuZSArCiAgICBtcC5zcmMxNChnYXRlKSAqIGFtdF9zMTRfZDAyX29zYzNfZGV0dW5lICsKICAgIG1wLnNyYzE1KGdhdGUpICogYW10X3MxNV9kMDJfb3NjM19kZXR1bmUgKwogICAgbXAuc3JjMTYoZ2F0ZSkgKiBhbXRfczE2X2QwMl9vc2MzX2RldHVuZSArCiAgICBtcC5zcmMxNyhnYXRlKSAqIGFtdF9zMTdfZDAyX29zYzNfZGV0dW5lICsKICAgIG1wLnNyYzE4KGdhdGUpICogYW10X3MxOF9kMDJfb3NjM19kZXR1bmUgKwogICAgbXAuc3JjMTkoZ2F0ZSkgKiBhbXRfczE5X2QwMl9vc2MzX2RldHVuZSArCiAgICBtcC5zcmMyMChnYXRlKSAqIGFtdF9zMjBfZDAyX29zYzNfZGV0dW5lICsKICAgIG1wLnNyYzIxKGdhdGUpICogYW10X3MyMV9kMDJfb3NjM19kZXR1bmUgKwogICAgbXAuc3JjMjIoZ2F0ZSkgKiBhbXRfczIyX2QwMl9vc2MzX2RldHVuZSArCiAgICBtcC5zcmMyMyhnYXRlKSAqIGFtdF9zMjNfZDAyX29zYzNfZGV0dW5lICsKICAgIG1wLnNyYzI0KGdhdGUpICogYW10X3MyNF9kMDJfb3NjM19kZXR1bmUgKwogICAgbXAuc3JjMjUoZ2F0ZSkgKiBhbXRfczI1X2QwMl9vc2MzX2RldHVuZSArCiAgICBtcC5zcmMyNihnYXRlKSAqIGFtdF9zMjZfZDAyX29zYzNfZGV0dW5lICsKICAgIG1wLnNyYzI3KGdhdGUpICogYW10X3MyN19kMDJfb3NjM19kZXR1bmUgKwogICAgbXAuc3JjMjgoZ2F0ZSkgKiBhbXRfczI4X2QwMl9vc2MzX2RldHVuZSArCiAgICBtcC5zcmMyOShnYXRlKSAqIGFtdF9zMjlfZDAyX29zYzNfZGV0dW5lICsKICAgIG1wLnNyYzMwKGdhdGUpICogYW10X3MzMF9kMDJfb3NjM19kZXR1bmUgKwogICAgbXAuc3JjMzEoZ2F0ZSkgKiBhbXRfczMxX2QwMl9vc2MzX2RldHVuZSArCiAgICBtcC5zcmMzMihnYXRlKSAqIGFtdF9zMzJfZDAyX29zYzNfZGV0dW5lICsKICAgIG1wLnNyYzMzKGdhdGUpICogYW10X3MzM19kMDJfb3NjM19kZXR1bmUgKwogICAgbXAuc3JjMzQoZ2F0ZSkgKiBhbXRfczM0X2QwMl9vc2MzX2RldHVuZSArCiAgICBtcC5zcmMzNShnYXRlKSAqIGFtdF9zMzVfZDAyX29zYzNfZGV0dW5lICsKICAgIG1wLnNyYzM2KGdhdGUpICogYW10X3MzNl9kMDJfb3NjM19kZXR1bmUgKwogICAgbXAuc3JjMzcoZ2F0ZSkgKiBhbXRfczM3X2QwMl9vc2MzX2RldHVuZSArCiAgICBtcC5zcmMzOChnYXRlKSAqIGFtdF9zMzhfZDAyX29zYzNfZGV0dW5lICsKICAgIG1wLnNyYzM5KGdhdGUpICogYW10X3MzOV9kMDJfb3NjM19kZXR1bmUgKwogICAgbXAuc3JjNDAoZ2F0ZSkgKiBhbXRfczQwX2QwMl9vc2MzX2RldHVuZSArCiAgICBtcC5zcmM0MShnYXRlKSAqIGFtdF9zNDFfZDAyX29zYzNfZGV0dW5lICsKICAgIG1wLnNyYzQyKGdhdGUpICogYW10X3M0Ml9kMDJfb3NjM19kZXR1bmUgKwogICAgbXAuc3JjNDMoZ2F0ZSkgKiBhbXRfczQzX2QwMl9vc2MzX2RldHVuZSArCiAgICBtcC5zcmM0NChnYXRlKSAqIGFtdF9zNDRfZDAyX29zYzNfZGV0dW5lICsKICAgIG1wLnNyYzQ1KGdhdGUpICogYW10X3M0NV9kMDJfb3NjM19kZXR1bmUgKwogICAgbXAuc3JjNDYoZ2F0ZSkgKiBhbXRfczQ2X2QwMl9vc2MzX2RldHVuZSArCiAgICBtcC5zcmM0NyhnYXRlKSAqIGFtdF9zNDdfZDAyX29zYzNfZGV0dW5lOwoKbW9kX29zY19taXhfYmFsKGdhdGUpID0KICAgIG1wLnNyYzAwKGdhdGUpICogYW10X3MwMF9kMDNfb3NjX21peF9iYWwgKwogICAgbXAuc3JjMDEoZ2F0ZSkgKiBhbXRfczAxX2QwM19vc2NfbWl4X2JhbCArCiAgICBtcC5zcmMwMihnYXRlKSAqIGFtdF9zMDJfZDAzX29zY19taXhfYmFsICsKICAgIG1wLnNyYzAzKGdhdGUpICogYW10X3MwM19kMDNfb3NjX21peF9iYWwgKwogICAgbXAuc3JjMDQoZ2F0ZSkgKiBhbXRfczA0X2QwM19vc2NfbWl4X2JhbCArCiAgICBtcC5zcmMwNShnYXRlKSAqIGFtdF9zMDVfZDAzX29zY19taXhfYmFsICsKICAgIG1wLnNyYzA2KGdhdGUpICogYW10X3MwNl9kMDNfb3NjX21peF9iYWwgKwogICAgbXAuc3JjMDcoZ2F0ZSkgKiBhbXRfczA3X2QwM19vc2NfbWl4X2JhbCArCiAgICBtcC5zcmMwOChnYXRlKSAqIGFtdF9zMDhfZDAzX29zY19taXhfYmFsICsKICAgIG1wLnNyYzA5KGdhdGUpICogYW10X3MwOV9kMDNfb3NjX21peF9iYWwgKwogICAgbXAuc3JjMTAoZ2F0ZSkgKiBhbXRfczEwX2QwM19vc2NfbWl4X2JhbCArCiAgICBtcC5zcmMxMShnYXRlKSAqIGFtdF9zMTFfZDAzX29zY19taXhfYmFsICsKICAgIG1wLnNyYzEyKGdhdGUpICogYW10X3MxMl9kMDNfb3NjX21peF9iYWwgKwogICAgbXAuc3JjMTMoZ2F0ZSkgKiBhbXRfczEzX2QwM19vc2NfbWl4X2JhbCArCiAgICBtcC5zcmMxNChnYXRlKSAqIGFtdF9zMTRfZDAzX29zY19taXhfYmFsICsKICAgIG1wLnNyYzE1KGdhdGUpICogYW10X3MxNV9kMDNfb3NjX21peF9iYWwgKwogICAgbXAuc3JjMTYoZ2F0ZSkgKiBhbXRfczE2X2QwM19vc2NfbWl4X2JhbCArCiAgICBtcC5zcmMxNyhnYXRlKSAqIGFtdF9zMTdfZDAzX29zY19taXhfYmFsICsKICAgIG1wLnNyYzE4KGdhdGUpICogYW10X3MxOF9kMDNfb3NjX21peF9iYWwgKwogICAgbXAuc3JjMTkoZ2F0ZSkgKiBhbXRfczE5X2QwM19vc2NfbWl4X2JhbCArCiAgICBtcC5zcmMyMChnYXRlKSAqIGFtdF9zMjBfZDAzX29zY19taXhfYmFsICsKICAgIG1wLnNyYzIxKGdhdGUpICogYW10X3MyMV9kMDNfb3NjX21peF9iYWwgKwogICAgbXAuc3JjMjIoZ2F0ZSkgKiBhbXRfczIyX2QwM19vc2NfbWl4X2JhbCArCiAgICBtcC5zcmMyMyhnYXRlKSAqIGFtdF9zMjNfZDAzX29zY19taXhfYmFsICsKICAgIG1wLnNyYzI0KGdhdGUpICogYW10X3MyNF9kMDNfb3NjX21peF9iYWwgKwogICAgbXAuc3JjMjUoZ2F0ZSkgKiBhbXRfczI1X2QwM19vc2NfbWl4X2JhbCArCiAgICBtcC5zcmMyNihnYXRlKSAqIGFtdF9zMjZfZDAzX29zY19taXhfYmFsICsKICAgIG1wLnNyYzI3KGdhdGUpICogYW10X3MyN19kMDNfb3NjX21peF9iYWwgKwogICAgbXAuc3JjMjgoZ2F0ZSkgKiBhbXRfczI4X2QwM19vc2NfbWl4X2JhbCArCiAgICBtcC5zcmMyOShnYXRlKSAqIGFtdF9zMjlfZDAzX29zY19taXhfYmFsICsKICAgIG1wLnNyYzMwKGdhdGUpICogYW10X3MzMF9kMDNfb3NjX21peF9iYWwgKwogICAgbXAuc3JjMzEoZ2F0ZSkgKiBhbXRfczMxX2QwM19vc2NfbWl4X2JhbCArCiAgICBtcC5zcmMzMihnYXRlKSAqIGFtdF9zMzJfZDAzX29zY19taXhfYmFsICsKICAgIG1wLnNyYzMzKGdhdGUpICogYW10X3MzM19kMDNfb3NjX21peF9iYWwgKwogICAgbXAuc3JjMzQoZ2F0ZSkgKiBhbXRfczM0X2QwM19vc2NfbWl4X2JhbCArCiAgICBtcC5zcmMzNShnYXRlKSAqIGFtdF9zMzVfZDAzX29zY19taXhfYmFsICsKICAgIG1wLnNyYzM2KGdhdGUpICogYW10X3MzNl9kMDNfb3NjX21peF9iYWwgKwogICAgbXAuc3JjMzcoZ2F0ZSkgKiBhbXRfczM3X2QwM19vc2NfbWl4X2JhbCArCiAgICBtcC5zcmMzOChnYXRlKSAqIGFtdF9zMzhfZDAzX29zY19taXhfYmFsICsKICAgIG1wLnNyYzM5KGdhdGUpICogYW10X3MzOV9kMDNfb3NjX21peF9iYWwgKwogICAgbXAuc3JjNDAoZ2F0ZSkgKiBhbXRfczQwX2QwM19vc2NfbWl4X2JhbCArCiAgICBtcC5zcmM0MShnYXRlKSAqIGFtdF9zNDFfZDAzX29zY19taXhfYmFsICsKICAgIG1wLnNyYzQyKGdhdGUpICogYW10X3M0Ml9kMDNfb3NjX21peF9iYWwgKwogICAgbXAuc3JjNDMoZ2F0ZSkgKiBhbXRfczQzX2QwM19vc2NfbWl4X2JhbCArCiAgICBtcC5zcmM0NChnYXRlKSAqIGFtdF9zNDRfZDAzX29zY19taXhfYmFsICsKICAgIG1wLnNyYzQ1KGdhdGUpICogYW10X3M0NV9kMDNfb3NjX21peF9iYWwgKwogICAgbXAuc3JjNDYoZ2F0ZSkgKiBhbXRfczQ2X2QwM19vc2NfbWl4X2JhbCArCiAgICBtcC5zcmM0NyhnYXRlKSAqIGFtdF9zNDdfZDAzX29zY19taXhfYmFsOwoKbW9kX25vaXNlX2xldmVsKGdhdGUpID0KICAgIG1wLnNyYzAwKGdhdGUpICogYW10X3MwMF9kMDRfbm9pc2VfbGV2ZWwgKwogICAgbXAuc3JjMDEoZ2F0ZSkgKiBhbXRfczAxX2QwNF9ub2lzZV9sZXZlbCArCiAgICBtcC5zcmMwMihnYXRlKSAqIGFtdF9zMDJfZDA0X25vaXNlX2xldmVsICsKICAgIG1wLnNyYzAzKGdhdGUpICogYW10X3MwM19kMDRfbm9pc2VfbGV2ZWwgKwogICAgbXAuc3JjMDQoZ2F0ZSkgKiBhbXRfczA0X2QwNF9ub2lzZV9sZXZlbCArCiAgICBtcC5zcmMwNShnYXRlKSAqIGFtdF9zMDVfZDA0X25vaXNlX2xldmVsICsKICAgIG1wLnNyYzA2KGdhdGUpICogYW10X3MwNl9kMDRfbm9pc2VfbGV2ZWwgKwogICAgbXAuc3JjMDcoZ2F0ZSkgKiBhbXRfczA3X2QwNF9ub2lzZV9sZXZlbCArCiAgICBtcC5zcmMwOChnYXRlKSAqIGFtdF9zMDhfZDA0X25vaXNlX2xldmVsICsKICAgIG1wLnNyYzA5KGdhdGUpICogYW10X3MwOV9kMDRfbm9pc2VfbGV2ZWwgKwogICAgbXAuc3JjMTAoZ2F0ZSkgKiBhbXRfczEwX2QwNF9ub2lzZV9sZXZlbCArCiAgICBtcC5zcmMxMShnYXRlKSAqIGFtdF9zMTFfZDA0X25vaXNlX2xldmVsICsKICAgIG1wLnNyYzEyKGdhdGUpICogYW10X3MxMl9kMDRfbm9pc2VfbGV2ZWwgKwogICAgbXAuc3JjMTMoZ2F0ZSkgKiBhbXRfczEzX2QwNF9ub2lzZV9sZXZlbCArCiAgICBtcC5zcmMxNChnYXRlKSAqIGFtdF9zMTRfZDA0X25vaXNlX2xldmVsICsKICAgIG1wLnNyYzE1KGdhdGUpICogYW10X3MxNV9kMDRfbm9pc2VfbGV2ZWwgKwogICAgbXAuc3JjMTYoZ2F0ZSkgKiBhbXRfczE2X2QwNF9ub2lzZV9sZXZlbCArCiAgICBtcC5zcmMxNyhnYXRlKSAqIGFtdF9zMTdfZDA0X25vaXNlX2xldmVsICsKICAgIG1wLnNyYzE4KGdhdGUpICogYW10X3MxOF9kMDRfbm9pc2VfbGV2ZWwgKwogICAgbXAuc3JjMTkoZ2F0ZSkgKiBhbXRfczE5X2QwNF9ub2lzZV9sZXZlbCArCiAgICBtcC5zcmMyMChnYXRlKSAqIGFtdF9zMjBfZDA0X25vaXNlX2xldmVsICsKICAgIG1wLnNyYzIxKGdhdGUpICogYW10X3MyMV9kMDRfbm9pc2VfbGV2ZWwgKwogICAgbXAuc3JjMjIoZ2F0ZSkgKiBhbXRfczIyX2QwNF9ub2lzZV9sZXZlbCArCiAgICBtcC5zcmMyMyhnYXRlKSAqIGFtdF9zMjNfZDA0X25vaXNlX2xldmVsICsKICAgIG1wLnNyYzI0KGdhdGUpICogYW10X3MyNF9kMDRfbm9pc2VfbGV2ZWwgKwogICAgbXAuc3JjMjUoZ2F0ZSkgKiBhbXRfczI1X2QwNF9ub2lzZV9sZXZlbCArCiAgICBtcC5zcmMyNihnYXRlKSAqIGFtdF9zMjZfZDA0X25vaXNlX2xldmVsICsKICAgIG1wLnNyYzI3KGdhdGUpICogYW10X3MyN19kMDRfbm9pc2VfbGV2ZWwgKwogICAgbXAuc3JjMjgoZ2F0ZSkgKiBhbXRfczI4X2QwNF9ub2lzZV9sZXZlbCArCiAgICBtcC5zcmMyOShnYXRlKSAqIGFtdF9zMjlfZDA0X25vaXNlX2xldmVsICsKICAgIG1wLnNyYzMwKGdhdGUpICogYW10X3MzMF9kMDRfbm9pc2VfbGV2ZWwgKwogICAgbXAuc3JjMzEoZ2F0ZSkgKiBhbXRfczMxX2QwNF9ub2lzZV9sZXZlbCArCiAgICBtcC5zcmMzMihnYXRlKSAqIGFtdF9zMzJfZDA0X25vaXNlX2xldmVsICsKICAgIG1wLnNyYzMzKGdhdGUpICogYW10X3MzM19kMDRfbm9pc2VfbGV2ZWwgKwogICAgbXAuc3JjMzQoZ2F0ZSkgKiBhbXRfczM0X2QwNF9ub2lzZV9sZXZlbCArCiAgICBtcC5zcmMzNShnYXRlKSAqIGFtdF9zMzVfZDA0X25vaXNlX2xldmVsICsKICAgIG1wLnNyYzM2KGdhdGUpICogYW10X3MzNl9kMDRfbm9pc2VfbGV2ZWwgKwogICAgbXAuc3JjMzcoZ2F0ZSkgKiBhbXRfczM3X2QwNF9ub2lzZV9sZXZlbCArCiAgICBtcC5zcmMzOChnYXRlKSAqIGFtdF9zMzhfZDA0X25vaXNlX2xldmVsICsKICAgIG1wLnNyYzM5KGdhdGUpICogYW10X3MzOV9kMDRfbm9pc2VfbGV2ZWwgKwogICAgbXAuc3JjNDAoZ2F0ZSkgKiBhbXRfczQwX2QwNF9ub2lzZV9sZXZlbCArCiAgICBtcC5zcmM0MShnYXRlKSAqIGFtdF9zNDFfZDA0X25vaXNlX2xldmVsICsKICAgIG1wLnNyYzQyKGdhdGUpICogYW10X3M0Ml9kMDRfbm9pc2VfbGV2ZWwgKwogICAgbXAuc3JjNDMoZ2F0ZSkgKiBhbXRfczQzX2QwNF9ub2lzZV9sZXZlbCArCiAgICBtcC5zcmM0NChnYXRlKSAqIGFtdF9zNDRfZDA0X25vaXNlX2xldmVsICsKICAgIG1wLnNyYzQ1KGdhdGUpICogYW10X3M0NV9kMDRfbm9pc2VfbGV2ZWwgKwogICAgbXAuc3JjNDYoZ2F0ZSkgKiBhbXRfczQ2X2QwNF9ub2lzZV9sZXZlbCArCiAgICBtcC5zcmM0NyhnYXRlKSAqIGFtdF9zNDdfZDA0X25vaXNlX2xldmVsOwoKbW9kX2N1dG9mZihnYXRlKSA9CiAgICBtcC5zcmMwMChnYXRlKSAqIGFtdF9zMDBfZDA1X2N1dG9mZiArCiAgICBtcC5zcmMwMShnYXRlKSAqIGFtdF9zMDFfZDA1X2N1dG9mZiArCiAgICBtcC5zcmMwMihnYXRlKSAqIGFtdF9zMDJfZDA1X2N1dG9mZiArCiAgICBtcC5zcmMwMyhnYXRlKSAqIGFtdF9zMDNfZDA1X2N1dG9mZiArCiAgICBtcC5zcmMwNChnYXRlKSAqIGFtdF9zMDRfZDA1X2N1dG9mZiArCiAgICBtcC5zcmMwNShnYXRlKSAqIGFtdF9zMDVfZDA1X2N1dG9mZiArCiAgICBtcC5zcmMwNihnYXRlKSAqIGFtdF9zMDZfZDA1X2N1dG9mZiArCiAgICBtcC5zcmMwNyhnYXRlKSAqIGFtdF9zMDdfZDA1X2N1dG9mZiArCiAgICBtcC5zcmMwOChnYXRlKSAqIGFtdF9zMDhfZDA1X2N1dG9mZiArCiAgICBtcC5zcmMwOShnYXRlKSAqIGFtdF9zMDlfZDA1X2N1dG9mZiArCiAgICBtcC5zcmMxMChnYXRlKSAqIGFtdF9zMTBfZDA1X2N1dG9mZiArCiAgICBtcC5zcmMxMShnYXRlKSAqIGFtdF9zMTFfZDA1X2N1dG9mZiArCiAgICBtcC5zcmMxMihnYXRlKSAqIGFtdF9zMTJfZDA1X2N1dG9mZiArCiAgICBtcC5zcmMxMyhnYXRlKSAqIGFtdF9zMTNfZDA1X2N1dG9mZiArCiAgICBtcC5zcmMxNChnYXRlKSAqIGFtdF9zMTRfZDA1X2N1dG9mZiArCiAgICBtcC5zcmMxNShnYXRlKSAqIGFtdF9zMTVfZDA1X2N1dG9mZiArCiAgICBtcC5zcmMxNihnYXRlKSAqIGFtdF9zMTZfZDA1X2N1dG9mZiArCiAgICBtcC5zcmMxNyhnYXRlKSAqIGFtdF9zMTdfZDA1X2N1dG9mZiArCiAgICBtcC5zcmMxOChnYXRlKSAqIGFtdF9zMThfZDA1X2N1dG9mZiArCiAgICBtcC5zcmMxOShnYXRlKSAqIGFtdF9zMTlfZDA1X2N1dG9mZiArCiAgICBtcC5zcmMyMChnYXRlKSAqIGFtdF9zMjBfZDA1X2N1dG9mZiArCiAgICBtcC5zcmMyMShnYXRlKSAqIGFtdF9zMjFfZDA1X2N1dG9mZiArCiAgICBtcC5zcmMyMihnYXRlKSAqIGFtdF9zMjJfZDA1X2N1dG9mZiArCiAgICBtcC5zcmMyMyhnYXRlKSAqIGFtdF9zMjNfZDA1X2N1dG9mZiArCiAgICBtcC5zcmMyNChnYXRlKSAqIGFtdF9zMjRfZDA1X2N1dG9mZiArCiAgICBtcC5zcmMyNShnYXRlKSAqIGFtdF9zMjVfZDA1X2N1dG9mZiArCiAgICBtcC5zcmMyNihnYXRlKSAqIGFtdF9zMjZfZDA1X2N1dG9mZiArCiAgICBtcC5zcmMyNyhnYXRlKSAqIGFtdF9zMjdfZDA1X2N1dG9mZiArCiAgICBtcC5zcmMyOChnYXRlKSAqIGFtdF9zMjhfZDA1X2N1dG9mZiArCiAgICBtcC5zcmMyOShnYXRlKSAqIGFtdF9zMjlfZDA1X2N1dG9mZiArCiAgICBtcC5zcmMzMChnYXRlKSAqIGFtdF9zMzBfZDA1X2N1dG9mZiArCiAgICBtcC5zcmMzMShnYXRlKSAqIGFtdF9zMzFfZDA1X2N1dG9mZiArCiAgICBtcC5zcmMzMihnYXRlKSAqIGFtdF9zMzJfZDA1X2N1dG9mZiArCiAgICBtcC5zcmMzMyhnYXRlKSAqIGFtdF9zMzNfZDA1X2N1dG9mZiArCiAgICBtcC5zcmMzNChnYXRlKSAqIGFtdF9zMzRfZDA1X2N1dG9mZiArCiAgICBtcC5zcmMzNShnYXRlKSAqIGFtdF9zMzVfZDA1X2N1dG9mZiArCiAgICBtcC5zcmMzNihnYXRlKSAqIGFtdF9zMzZfZDA1X2N1dG9mZiArCiAgICBtcC5zcmMzNyhnYXRlKSAqIGFtdF9zMzdfZDA1X2N1dG9mZiArCiAgICBtcC5zcmMzOChnYXRlKSAqIGFtdF9zMzhfZDA1X2N1dG9mZiArCiAgICBtcC5zcmMzOShnYXRlKSAqIGFtdF9zMzlfZDA1X2N1dG9mZiArCiAgICBtcC5zcmM0MChnYXRlKSAqIGFtdF9zNDBfZDA1X2N1dG9mZiArCiAgICBtcC5zcmM0MShnYXRlKSAqIGFtdF9zNDFfZDA1X2N1dG9mZiArCiAgICBtcC5zcmM0MihnYXRlKSAqIGFtdF9zNDJfZDA1X2N1dG9mZiArCiAgICBtcC5zcmM0MyhnYXRlKSAqIGFtdF9zNDNfZDA1X2N1dG9mZiArCiAgICBtcC5zcmM0NChnYXRlKSAqIGFtdF9zNDRfZDA1X2N1dG9mZiArCiAgICBtcC5zcmM0NShnYXRlKSAqIGFtdF9zNDVfZDA1X2N1dG9mZiArCiAgICBtcC5zcmM0NihnYXRlKSAqIGFtdF9zNDZfZDA1X2N1dG9mZiArCiAgICBtcC5zcmM0NyhnYXRlKSAqIGFtdF9zNDdfZDA1X2N1dG9mZjsKCm1vZF9yZXNvbmFuY2UoZ2F0ZSkgPQogICAgbXAuc3JjMDAoZ2F0ZSkgKiBhbXRfczAwX2QwNl9yZXNvbmFuY2UgKwogICAgbXAuc3JjMDEoZ2F0ZSkgKiBhbXRfczAxX2QwNl9yZXNvbmFuY2UgKwogICAgbXAuc3JjMDIoZ2F0ZSkgKiBhbXRfczAyX2QwNl9yZXNvbmFuY2UgKwogICAgbXAuc3JjMDMoZ2F0ZSkgKiBhbXRfczAzX2QwNl9yZXNvbmFuY2UgKwogICAgbXAuc3JjMDQoZ2F0ZSkgKiBhbXRfczA0X2QwNl9yZXNvbmFuY2UgKwogICAgbXAuc3JjMDUoZ2F0ZSkgKiBhbXRfczA1X2QwNl9yZXNvbmFuY2UgKwogICAgbXAuc3JjMDYoZ2F0ZSkgKiBhbXRfczA2X2QwNl9yZXNvbmFuY2UgKwogICAgbXAuc3JjMDcoZ2F0ZSkgKiBhbXRfczA3X2QwNl9yZXNvbmFuY2UgKwogICAgbXAuc3JjMDgoZ2F0ZSkgKiBhbXRfczA4X2QwNl9yZXNvbmFuY2UgKwogICAgbXAuc3JjMDkoZ2F0ZSkgKiBhbXRfczA5X2QwNl9yZXNvbmFuY2UgKwogICAgbXAuc3JjMTAoZ2F0ZSkgKiBhbXRfczEwX2QwNl9yZXNvbmFuY2UgKwogICAgbXAuc3JjMTEoZ2F0ZSkgKiBhbXRfczExX2QwNl9yZXNvbmFuY2UgKwogICAgbXAuc3JjMTIoZ2F0ZSkgKiBhbXRfczEyX2QwNl9yZXNvbmFuY2UgKwogICAgbXAuc3JjMTMoZ2F0ZSkgKiBhbXRfczEzX2QwNl9yZXNvbmFuY2UgKwogICAgbXAuc3JjMTQoZ2F0ZSkgKiBhbXRfczE0X2QwNl9yZXNvbmFuY2UgKwogICAgbXAuc3JjMTUoZ2F0ZSkgKiBhbXRfczE1X2QwNl9yZXNvbmFuY2UgKwogICAgbXAuc3JjMTYoZ2F0ZSkgKiBhbXRfczE2X2QwNl9yZXNvbmFuY2UgKwogICAgbXAuc3JjMTcoZ2F0ZSkgKiBhbXRfczE3X2QwNl9yZXNvbmFuY2UgKwogICAgbXAuc3JjMTgoZ2F0ZSkgKiBhbXRfczE4X2QwNl9yZXNvbmFuY2UgKwogICAgbXAuc3JjMTkoZ2F0ZSkgKiBhbXRfczE5X2QwNl9yZXNvbmFuY2UgKwogICAgbXAuc3JjMjAoZ2F0ZSkgKiBhbXRfczIwX2QwNl9yZXNvbmFuY2UgKwogICAgbXAuc3JjMjEoZ2F0ZSkgKiBhbXRfczIxX2QwNl9yZXNvbmFuY2UgKwogICAgbXAuc3JjMjIoZ2F0ZSkgKiBhbXRfczIyX2QwNl9yZXNvbmFuY2UgKwogICAgbXAuc3JjMjMoZ2F0ZSkgKiBhbXRfczIzX2QwNl9yZXNvbmFuY2UgKwogICAgbXAuc3JjMjQoZ2F0ZSkgKiBhbXRfczI0X2QwNl9yZXNvbmFuY2UgKwogICAgbXAuc3JjMjUoZ2F0ZSkgKiBhbXRfczI1X2QwNl9yZXNvbmFuY2UgKwogICAgbXAuc3JjMjYoZ2F0ZSkgKiBhbXRfczI2X2QwNl9yZXNvbmFuY2UgKwogICAgbXAuc3JjMjcoZ2F0ZSkgKiBhbXRfczI3X2QwNl9yZXNvbmFuY2UgKwogICAgbXAuc3JjMjgoZ2F0ZSkgKiBhbXRfczI4X2QwNl9yZXNvbmFuY2UgKwogICAgbXAuc3JjMjkoZ2F0ZSkgKiBhbXRfczI5X2QwNl9yZXNvbmFuY2UgKwogICAgbXAuc3JjMzAoZ2F0ZSkgKiBhbXRfczMwX2QwNl9yZXNvbmFuY2UgKwogICAgbXAuc3JjMzEoZ2F0ZSkgKiBhbXRfczMxX2QwNl9yZXNvbmFuY2UgKwogICAgbXAuc3JjMzIoZ2F0ZSkgKiBhbXRfczMyX2QwNl9yZXNvbmFuY2UgKwogICAgbXAuc3JjMzMoZ2F0ZSkgKiBhbXRfczMzX2QwNl9yZXNvbmFuY2UgKwogICAgbXAuc3JjMzQoZ2F0ZSkgKiBhbXRfczM0X2QwNl9yZXNvbmFuY2UgKwogICAgbXAuc3JjMzUoZ2F0ZSkgKiBhbXRfczM1X2QwNl9yZXNvbmFuY2UgKwogICAgbXAuc3JjMzYoZ2F0ZSkgKiBhbXRfczM2X2QwNl9yZXNvbmFuY2UgKwogICAgbXAuc3JjMzcoZ2F0ZSkgKiBhbXRfczM3X2QwNl9yZXNvbmFuY2UgKwogICAgbXAuc3JjMzgoZ2F0ZSkgKiBhbXRfczM4X2QwNl9yZXNvbmFuY2UgKwogICAgbXAuc3JjMzkoZ2F0ZSkgKiBhbXRfczM5X2QwNl9yZXNvbmFuY2UgKwogICAgbXAuc3JjNDAoZ2F0ZSkgKiBhbXRfczQwX2QwNl9yZXNvbmFuY2UgKwogICAgbXAuc3JjNDEoZ2F0ZSkgKiBhbXRfczQxX2QwNl9yZXNvbmFuY2UgKwogICAgbXAuc3JjNDIoZ2F0ZSkgKiBhbXRfczQyX2QwNl9yZXNvbmFuY2UgKwogICAgbXAuc3JjNDMoZ2F0ZSkgKiBhbXRfczQzX2QwNl9yZXNvbmFuY2UgKwogICAgbXAuc3JjNDQoZ2F0ZSkgKiBhbXRfczQ0X2QwNl9yZXNvbmFuY2UgKwogICAgbXAuc3JjNDUoZ2F0ZSkgKiBhbXRfczQ1X2QwNl9yZXNvbmFuY2UgKwogICAgbXAuc3JjNDYoZ2F0ZSkgKiBhbXRfczQ2X2QwNl9yZXNvbmFuY2UgKwogICAgbXAuc3JjNDcoZ2F0ZSkgKiBhbXRfczQ3X2QwNl9yZXNvbmFuY2U7Cgptb2RfZmlsdGVyX2Vudl9hbXQoZ2F0ZSkgPQogICAgbXAuc3JjMDAoZ2F0ZSkgKiBhbXRfczAwX2QwN19maWx0ZXJfZW52X2FtdCArCiAgICBtcC5zcmMwMShnYXRlKSAqIGFtdF9zMDFfZDA3X2ZpbHRlcl9lbnZfYW10ICsKICAgIG1wLnNyYzAyKGdhdGUpICogYW10X3MwMl9kMDdfZmlsdGVyX2Vudl9hbXQgKwogICAgbXAuc3JjMDMoZ2F0ZSkgKiBhbXRfczAzX2QwN19maWx0ZXJfZW52X2FtdCArCiAgICBtcC5zcmMwNChnYXRlKSAqIGFtdF9zMDRfZDA3X2ZpbHRlcl9lbnZfYW10ICsKICAgIG1wLnNyYzA1KGdhdGUpICogYW10X3MwNV9kMDdfZmlsdGVyX2Vudl9hbXQgKwogICAgbXAuc3JjMDYoZ2F0ZSkgKiBhbXRfczA2X2QwN19maWx0ZXJfZW52X2FtdCArCiAgICBtcC5zcmMwNyhnYXRlKSAqIGFtdF9zMDdfZDA3X2ZpbHRlcl9lbnZfYW10ICsKICAgIG1wLnNyYzA4KGdhdGUpICogYW10X3MwOF9kMDdfZmlsdGVyX2Vudl9hbXQgKwogICAgbXAuc3JjMDkoZ2F0ZSkgKiBhbXRfczA5X2QwN19maWx0ZXJfZW52X2FtdCArCiAgICBtcC5zcmMxMChnYXRlKSAqIGFtdF9zMTBfZDA3X2ZpbHRlcl9lbnZfYW10ICsKICAgIG1wLnNyYzExKGdhdGUpICogYW10X3MxMV9kMDdfZmlsdGVyX2Vudl9hbXQgKwogICAgbXAuc3JjMTIoZ2F0ZSkgKiBhbXRfczEyX2QwN19maWx0ZXJfZW52X2FtdCArCiAgICBtcC5zcmMxMyhnYXRlKSAqIGFtdF9zMTNfZDA3X2ZpbHRlcl9lbnZfYW10ICsKICAgIG1wLnNyYzE0KGdhdGUpICogYW10X3MxNF9kMDdfZmlsdGVyX2Vudl9hbXQgKwogICAgbXAuc3JjMTUoZ2F0ZSkgKiBhbXRfczE1X2QwN19maWx0ZXJfZW52X2FtdCArCiAgICBtcC5zcmMxNihnYXRlKSAqIGFtdF9zMTZfZDA3X2ZpbHRlcl9lbnZfYW10ICsKICAgIG1wLnNyYzE3KGdhdGUpICogYW10X3MxN19kMDdfZmlsdGVyX2Vudl9hbXQgKwogICAgbXAuc3JjMTgoZ2F0ZSkgKiBhbXRfczE4X2QwN19maWx0ZXJfZW52X2FtdCArCiAgICBtcC5zcmMxOShnYXRlKSAqIGFtdF9zMTlfZDA3X2ZpbHRlcl9lbnZfYW10ICsKICAgIG1wLnNyYzIwKGdhdGUpICogYW10X3MyMF9kMDdfZmlsdGVyX2Vudl9hbXQgKwogICAgbXAuc3JjMjEoZ2F0ZSkgKiBhbXRfczIxX2QwN19maWx0ZXJfZW52X2FtdCArCiAgICBtcC5zcmMyMihnYXRlKSAqIGFtdF9zMjJfZDA3X2ZpbHRlcl9lbnZfYW10ICsKICAgIG1wLnNyYzIzKGdhdGUpICogYW10X3MyM19kMDdfZmlsdGVyX2Vudl9hbXQgKwogICAgbXAuc3JjMjQoZ2F0ZSkgKiBhbXRfczI0X2QwN19maWx0ZXJfZW52X2FtdCArCiAgICBtcC5zcmMyNShnYXRlKSAqIGFtdF9zMjVfZDA3X2ZpbHRlcl9lbnZfYW10ICsKICAgIG1wLnNyYzI2KGdhdGUpICogYW10X3MyNl9kMDdfZmlsdGVyX2Vudl9hbXQgKwogICAgbXAuc3JjMjcoZ2F0ZSkgKiBhbXRfczI3X2QwN19maWx0ZXJfZW52X2FtdCArCiAgICBtcC5zcmMyOChnYXRlKSAqIGFtdF9zMjhfZDA3X2ZpbHRlcl9lbnZfYW10ICsKICAgIG1wLnNyYzI5KGdhdGUpICogYW10X3MyOV9kMDdfZmlsdGVyX2Vudl9hbXQgKwogICAgbXAuc3JjMzAoZ2F0ZSkgKiBhbXRfczMwX2QwN19maWx0ZXJfZW52X2FtdCArCiAgICBtcC5zcmMzMShnYXRlKSAqIGFtdF9zMzFfZDA3X2ZpbHRlcl9lbnZfYW10ICsKICAgIG1wLnNyYzMyKGdhdGUpICogYW10X3MzMl9kMDdfZmlsdGVyX2Vudl9hbXQgKwogICAgbXAuc3JjMzMoZ2F0ZSkgKiBhbXRfczMzX2QwN19maWx0ZXJfZW52X2FtdCArCiAgICBtcC5zcmMzNChnYXRlKSAqIGFtdF9zMzRfZDA3X2ZpbHRlcl9lbnZfYW10ICsKICAgIG1wLnNyYzM1KGdhdGUpICogYW10X3MzNV9kMDdfZmlsdGVyX2Vudl9hbXQgKwogICAgbXAuc3JjMzYoZ2F0ZSkgKiBhbXRfczM2X2QwN19maWx0ZXJfZW52X2FtdCArCiAgICBtcC5zcmMzNyhnYXRlKSAqIGFtdF9zMzdfZDA3X2ZpbHRlcl9lbnZfYW10ICsKICAgIG1wLnNyYzM4KGdhdGUpICogYW10X3MzOF9kMDdfZmlsdGVyX2Vudl9hbXQgKwogICAgbXAuc3JjMzkoZ2F0ZSkgKiBhbXRfczM5X2QwN19maWx0ZXJfZW52X2FtdCArCiAgICBtcC5zcmM0MChnYXRlKSAqIGFtdF9zNDBfZDA3X2ZpbHRlcl9lbnZfYW10ICsKICAgIG1wLnNyYzQxKGdhdGUpICogYW10X3M0MV9kMDdfZmlsdGVyX2Vudl9hbXQgKwogICAgbXAuc3JjNDIoZ2F0ZSkgKiBhbXRfczQyX2QwN19maWx0ZXJfZW52X2FtdCArCiAgICBtcC5zcmM0MyhnYXRlKSAqIGFtdF9zNDNfZDA3X2ZpbHRlcl9lbnZfYW10ICsKICAgIG1wLnNyYzQ0KGdhdGUpICogYW10X3M0NF9kMDdfZmlsdGVyX2Vudl9hbXQgKwogICAgbXAuc3JjNDUoZ2F0ZSkgKiBhbXRfczQ1X2QwN19maWx0ZXJfZW52X2FtdCArCiAgICBtcC5zcmM0NihnYXRlKSAqIGFtdF9zNDZfZDA3X2ZpbHRlcl9lbnZfYW10ICsKICAgIG1wLnNyYzQ3KGdhdGUpICogYW10X3M0N19kMDdfZmlsdGVyX2Vudl9hbXQ7Cgptb2RfYW1wKGdhdGUpID0KICAgIG1wLnNyYzAwKGdhdGUpICogYW10X3MwMF9kMDhfYW1wICsKICAgIG1wLnNyYzAxKGdhdGUpICogYW10X3MwMV9kMDhfYW1wICsKICAgIG1wLnNyYzAyKGdhdGUpICogYW10X3MwMl9kMDhfYW1wICsKICAgIG1wLnNyYzAzKGdhdGUpICogYW10X3MwM19kMDhfYW1wICsKICAgIG1wLnNyYzA0KGdhdGUpICogYW10X3MwNF9kMDhfYW1wICsKICAgIG1wLnNyYzA1KGdhdGUpICogYW10X3MwNV9kMDhfYW1wICsKICAgIG1wLnNyYzA2KGdhdGUpICogYW10X3MwNl9kMDhfYW1wICsKICAgIG1wLnNyYzA3KGdhdGUpICogYW10X3MwN19kMDhfYW1wICsKICAgIG1wLnNyYzA4KGdhdGUpICogYW10X3MwOF9kMDhfYW1wICsKICAgIG1wLnNyYzA5KGdhdGUpICogYW10X3MwOV9kMDhfYW1wICsKICAgIG1wLnNyYzEwKGdhdGUpICogYW10X3MxMF9kMDhfYW1wICsKICAgIG1wLnNyYzExKGdhdGUpICogYW10X3MxMV9kMDhfYW1wICsKICAgIG1wLnNyYzEyKGdhdGUpICogYW10X3MxMl9kMDhfYW1wICsKICAgIG1wLnNyYzEzKGdhdGUpICogYW10X3MxM19kMDhfYW1wICsKICAgIG1wLnNyYzE0KGdhdGUpICogYW10X3MxNF9kMDhfYW1wICsKICAgIG1wLnNyYzE1KGdhdGUpICogYW10X3MxNV9kMDhfYW1wICsKICAgIG1wLnNyYzE2KGdhdGUpICogYW10X3MxNl9kMDhfYW1wICsKICAgIG1wLnNyYzE3KGdhdGUpICogYW10X3MxN19kMDhfYW1wICsKICAgIG1wLnNyYzE4KGdhdGUpICogYW10X3MxOF9kMDhfYW1wICsKICAgIG1wLnNyYzE5KGdhdGUpICogYW10X3MxOV9kMDhfYW1wICsKICAgIG1wLnNyYzIwKGdhdGUpICogYW10X3MyMF9kMDhfYW1wICsKICAgIG1wLnNyYzIxKGdhdGUpICogYW10X3MyMV9kMDhfYW1wICsKICAgIG1wLnNyYzIyKGdhdGUpICogYW10X3MyMl9kMDhfYW1wICsKICAgIG1wLnNyYzIzKGdhdGUpICogYW10X3MyM19kMDhfYW1wICsKICAgIG1wLnNyYzI0KGdhdGUpICogYW10X3MyNF9kMDhfYW1wICsKICAgIG1wLnNyYzI1KGdhdGUpICogYW10X3MyNV9kMDhfYW1wICsKICAgIG1wLnNyYzI2KGdhdGUpICogYW10X3MyNl9kMDhfYW1wICsKICAgIG1wLnNyYzI3KGdhdGUpICogYW10X3MyN19kMDhfYW1wICsKICAgIG1wLnNyYzI4KGdhdGUpICogYW10X3MyOF9kMDhfYW1wICsKICAgIG1wLnNyYzI5KGdhdGUpICogYW10X3MyOV9kMDhfYW1wICsKICAgIG1wLnNyYzMwKGdhdGUpICogYW10X3MzMF9kMDhfYW1wICsKICAgIG1wLnNyYzMxKGdhdGUpICogYW10X3MzMV9kMDhfYW1wICsKICAgIG1wLnNyYzMyKGdhdGUpICogYW10X3MzMl9kMDhfYW1wICsKICAgIG1wLnNyYzMzKGdhdGUpICogYW10X3MzM19kMDhfYW1wICsKICAgIG1wLnNyYzM0KGdhdGUpICogYW10X3MzNF9kMDhfYW1wICsKICAgIG1wLnNyYzM1KGdhdGUpICogYW10X3MzNV9kMDhfYW1wICsKICAgIG1wLnNyYzM2KGdhdGUpICogYW10X3MzNl9kMDhfYW1wICsKICAgIG1wLnNyYzM3KGdhdGUpICogYW10X3MzN19kMDhfYW1wICsKICAgIG1wLnNyYzM4KGdhdGUpICogYW10X3MzOF9kMDhfYW1wICsKICAgIG1wLnNyYzM5KGdhdGUpICogYW10X3MzOV9kMDhfYW1wICsKICAgIG1wLnNyYzQwKGdhdGUpICogYW10X3M0MF9kMDhfYW1wICsKICAgIG1wLnNyYzQxKGdhdGUpICogYW10X3M0MV9kMDhfYW1wICsKICAgIG1wLnNyYzQyKGdhdGUpICogYW10X3M0Ml9kMDhfYW1wICsKICAgIG1wLnNyYzQzKGdhdGUpICogYW10X3M0M19kMDhfYW1wICsKICAgIG1wLnNyYzQ0KGdhdGUpICogYW10X3M0NF9kMDhfYW1wICsKICAgIG1wLnNyYzQ1KGdhdGUpICogYW10X3M0NV9kMDhfYW1wICsKICAgIG1wLnNyYzQ2KGdhdGUpICogYW10X3M0Nl9kMDhfYW1wICsKICAgIG1wLnNyYzQ3KGdhdGUpICogYW10X3M0N19kMDhfYW1wOwoKbW9kX3BhbihnYXRlKSA9CiAgICBtcC5zcmMwMChnYXRlKSAqIGFtdF9zMDBfZDA5X3BhbiArCiAgICBtcC5zcmMwMShnYXRlKSAqIGFtdF9zMDFfZDA5X3BhbiArCiAgICBtcC5zcmMwMihnYXRlKSAqIGFtdF9zMDJfZDA5X3BhbiArCiAgICBtcC5zcmMwMyhnYXRlKSAqIGFtdF9zMDNfZDA5X3BhbiArCiAgICBtcC5zcmMwNChnYXRlKSAqIGFtdF9zMDRfZDA5X3BhbiArCiAgICBtcC5zcmMwNShnYXRlKSAqIGFtdF9zMDVfZDA5X3BhbiArCiAgICBtcC5zcmMwNihnYXRlKSAqIGFtdF9zMDZfZDA5X3BhbiArCiAgICBtcC5zcmMwNyhnYXRlKSAqIGFtdF9zMDdfZDA5X3BhbiArCiAgICBtcC5zcmMwOChnYXRlKSAqIGFtdF9zMDhfZDA5X3BhbiArCiAgICBtcC5zcmMwOShnYXRlKSAqIGFtdF9zMDlfZDA5X3BhbiArCiAgICBtcC5zcmMxMChnYXRlKSAqIGFtdF9zMTBfZDA5X3BhbiArCiAgICBtcC5zcmMxMShnYXRlKSAqIGFtdF9zMTFfZDA5X3BhbiArCiAgICBtcC5zcmMxMihnYXRlKSAqIGFtdF9zMTJfZDA5X3BhbiArCiAgICBtcC5zcmMxMyhnYXRlKSAqIGFtdF9zMTNfZDA5X3BhbiArCiAgICBtcC5zcmMxNChnYXRlKSAqIGFtdF9zMTRfZDA5X3BhbiArCiAgICBtcC5zcmMxNShnYXRlKSAqIGFtdF9zMTVfZDA5X3BhbiArCiAgICBtcC5zcmMxNihnYXRlKSAqIGFtdF9zMTZfZDA5X3BhbiArCiAgICBtcC5zcmMxNyhnYXRlKSAqIGFtdF9zMTdfZDA5X3BhbiArCiAgICBtcC5zcmMxOChnYXRlKSAqIGFtdF9zMThfZDA5X3BhbiArCiAgICBtcC5zcmMxOShnYXRlKSAqIGFtdF9zMTlfZDA5X3BhbiArCiAgICBtcC5zcmMyMChnYXRlKSAqIGFtdF9zMjBfZDA5X3BhbiArCiAgICBtcC5zcmMyMShnYXRlKSAqIGFtdF9zMjFfZDA5X3BhbiArCiAgICBtcC5zcmMyMihnYXRlKSAqIGFtdF9zMjJfZDA5X3BhbiArCiAgICBtcC5zcmMyMyhnYXRlKSAqIGFtdF9zMjNfZDA5X3BhbiArCiAgICBtcC5zcmMyNChnYXRlKSAqIGFtdF9zMjRfZDA5X3BhbiArCiAgICBtcC5zcmMyNShnYXRlKSAqIGFtdF9zMjVfZDA5X3BhbiArCiAgICBtcC5zcmMyNihnYXRlKSAqIGFtdF9zMjZfZDA5X3BhbiArCiAgICBtcC5zcmMyNyhnYXRlKSAqIGFtdF9zMjdfZDA5X3BhbiArCiAgICBtcC5zcmMyOChnYXRlKSAqIGFtdF9zMjhfZDA5X3BhbiArCiAgICBtcC5zcmMyOShnYXRlKSAqIGFtdF9zMjlfZDA5X3BhbiArCiAgICBtcC5zcmMzMChnYXRlKSAqIGFtdF9zMzBfZDA5X3BhbiArCiAgICBtcC5zcmMzMShnYXRlKSAqIGFtdF9zMzFfZDA5X3BhbiArCiAgICBtcC5zcmMzMihnYXRlKSAqIGFtdF9zMzJfZDA5X3BhbiArCiAgICBtcC5zcmMzMyhnYXRlKSAqIGFtdF9zMzNfZDA5X3BhbiArCiAgICBtcC5zcmMzNChnYXRlKSAqIGFtdF9zMzRfZDA5X3BhbiArCiAgICBtcC5zcmMzNShnYXRlKSAqIGFtdF9zMzVfZDA5X3BhbiArCiAgICBtcC5zcmMzNihnYXRlKSAqIGFtdF9zMzZfZDA5X3BhbiArCiAgICBtcC5zcmMzNyhnYXRlKSAqIGFtdF9zMzdfZDA5X3BhbiArCiAgICBtcC5zcmMzOChnYXRlKSAqIGFtdF9zMzhfZDA5X3BhbiArCiAgICBtcC5zcmMzOShnYXRlKSAqIGFtdF9zMzlfZDA5X3BhbiArCiAgICBtcC5zcmM0MChnYXRlKSAqIGFtdF9zNDBfZDA5X3BhbiArCiAgICBtcC5zcmM0MShnYXRlKSAqIGFtdF9zNDFfZDA5X3BhbiArCiAgICBtcC5zcmM0MihnYXRlKSAqIGFtdF9zNDJfZDA5X3BhbiArCiAgICBtcC5zcmM0MyhnYXRlKSAqIGFtdF9zNDNfZDA5X3BhbiArCiAgICBtcC5zcmM0NChnYXRlKSAqIGFtdF9zNDRfZDA5X3BhbiArCiAgICBtcC5zcmM0NShnYXRlKSAqIGFtdF9zNDVfZDA5X3BhbiArCiAgICBtcC5zcmM0NihnYXRlKSAqIGFtdF9zNDZfZDA5X3BhbiArCiAgICBtcC5zcmM0NyhnYXRlKSAqIGFtdF9zNDdfZDA5X3BhbjsKCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQovLyBEZXJpdmVkIHNpZ25hbHMKLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpjZW50MnJhdGlvKGMpID0gcG93KDIuMCwgYyAvIDEyMDAuMCk7Cm9jdDJyYXRpbyhvKSAgPSBwb3coMi4wLCBvKTsKc2VtaTJyYXRpbyhzKSA9IHBvdygyLjAsIHMgLyAxMi4wKTsKCi8vIFBvcnRhbWVudG8KZ2xpZGVfdGF1ICAgPSAwLjAwMDEgKyBtYXN0ZXJfZ2xpZGUgKiAxLjA7CmZyZXFfZ2xpZGVkID0gZnJlcSA6IHNpLnNtb290aChiYS50YXUycG9sZShnbGlkZV90YXUpKTsKCi8vIEJhc2UgKGdsaWRlICsgbWFzdGVyIGZpbmUgdHVuZSkKYmFzZV9mcmVxID0gZnJlcV9nbGlkZWQgKiBjZW50MnJhdGlvKG1hc3Rlcl90dW5lKTsKCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQovLyBQZXItb3NjaWxsYXRvciB3YXZldGFibGUgKHNhdyDihpIgdHJpIOKGkiBzcXVhcmUgY3Jvc3NmYWRlKQovLyAwLjAg4oaSIHNhdywgMC41IOKGkiB0cmlhbmdsZSwgMS4wIOKGkiBzcXVhcmUuIE91dHB1dCBpbiBbLTEsKzFdLgovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kb3NjX3dhdmUoc2hhcGUsIGYpID0KICAgIGJhLmlmKHNoYXBlIDwgMC41LAogICAgICAgICAgKDEuMCAtIHNoYXBlKjIuMCkgKiBvcy5sZl9zYXcoZikgKyAoc2hhcGUqMi4wKSAqIG9zLmxmX3RyaWFuZ2xlKGYpLAogICAgICAgICAgKDEuMCAtIChzaGFwZS0wLjUpKjIuMCkgKiBvcy5sZl90cmlhbmdsZShmKSArICgoc2hhcGUtMC41KSoyLjApICogb3MubGZfc3F1YXJld2F2ZShmKSk7CgovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLy8gT3NjaWxsYXRvciBmcmVxdWVuY2llcyAocGl0Y2ggbW9kdWxhdGlvbjogMSB1bml0ID0gMTIgc2VtaXRvbmVzKQovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KcGl0Y2hfcmF0aW8gPSBzZW1pMnJhdGlvKG1vZF9waXRjaChnYXRlKSAqIDEyLjApOwoKb3NjMV9mcmVxID0gYmFzZV9mcmVxICogb2N0MnJhdGlvKG9zYzFfcmFuZ2UpICogcGl0Y2hfcmF0aW87Cm9zYzJfZnJlcSA9IGJhc2VfZnJlcSAqIG9jdDJyYXRpbyhvc2MyX3JhbmdlKSAqIHBpdGNoX3JhdGlvCiAgICAgICAgICAqIGNlbnQycmF0aW8ob3NjMl9kZXR1bmUgKyBtb2Rfb3NjMl9kZXR1bmUoZ2F0ZSkgKiA1MC4wKTsKb3NjM19mcmVxX3RyYWNrZWQgICA9IGJhc2VfZnJlcSAqIG9jdDJyYXRpbyhvc2MzX3JhbmdlKSAqIHBpdGNoX3JhdGlvCiAgICAgICAgICAgICAgICAgICAgKiBjZW50MnJhdGlvKG9zYzNfZGV0dW5lICsgbW9kX29zYzNfZGV0dW5lKGdhdGUpICogNTAuMCk7Ci8vIFdoZW4ga2JfdHJhY2s9MCwgb3NjMyBiZWNvbWVzIGEgZnJlZS1ydW5uaW5nIHN1Yi9MRk8gc291cmNlIGF0IH41NSBIeiAqIG9jdApvc2MzX2ZyZXFfdW50cmFja2VkID0gNTUuMCAqIG9jdDJyYXRpbyhvc2MzX3JhbmdlKQogICAgICAgICAgICAgICAgICAgICogY2VudDJyYXRpbyhvc2MzX2RldHVuZSArIG1vZF9vc2MzX2RldHVuZShnYXRlKSAqIDUwLjApOwpvc2MzX2ZyZXEgPSBvc2MzX2tiX3RyYWNrICogb3NjM19mcmVxX3RyYWNrZWQgKyAoMS4wIC0gb3NjM19rYl90cmFjaykgKiBvc2MzX2ZyZXFfdW50cmFja2VkOwoKLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi8vIE9zY2lsbGF0b3JzCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpvMSA9IG9zY193YXZlKG9zYzFfd2F2ZSwgb3NjMV9mcmVxKTsKbzIgPSBvc2Nfd2F2ZShvc2MyX3dhdmUsIG9zYzJfZnJlcSk7Cm8zID0gb3NjX3dhdmUob3NjM193YXZlLCBvc2MzX2ZyZXEpOwoKLy8gT3NjIG1peCBiYWxhbmNlOiAtMSA9IGFsbCBvc2MxLCArMSA9IGFsbCBvc2MzLCAwID0gYm90aCBlcXVhbC4gb3NjMiB1bmFmZmVjdGVkLgptaXhfYmFsID0gbWF4KC0xLjAsIG1pbigxLjAsIG1vZF9vc2NfbWl4X2JhbChnYXRlKSkpOwptaXhfdCAgID0gKG1peF9iYWwgKyAxLjApICogMC41OyAgIC8vIDAuLjEKd19vMSAgICA9IDEuMCAtIG1peF90Owp3X28zICAgID0gbWl4X3Q7CgovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLy8gTm9pc2U6IHdoaXRlIChub2lzZV90eXBlPDAuNSkgLyBwaW5rIChlbHNlKQovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kd2hpdGVfbm9pc2UgPSBuby5ub2lzZTsKcGlua19ub2lzZSAgPSBuby5waW5rX25vaXNlOwpub2lzZV9yYXcgICA9IGJhLmlmKG5vaXNlX3R5cGUgPCAwLjUsIHdoaXRlX25vaXNlLCBwaW5rX25vaXNlKTsKbm9pc2VfbHZsICAgPSBtYXgoMC4wLCBtaW4oMS4wLCBub2lzZV9sZXZlbCArIG1vZF9ub2lzZV9sZXZlbChnYXRlKSkpOwoKLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi8vIE1peGVyIHN1bQovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KbWl4X3N1bSA9CiAgICBvMSAqIG9zYzFfbGV2ZWwgKiB3X28xCiAgKyBvMiAqIG9zYzJfbGV2ZWwKICArIG8zICogb3NjM19sZXZlbCAqIHdfbzMKICArIG5vaXNlX3JhdyAqIG5vaXNlX2x2bDsKCm1peF9kcml2ZW4gPSBtYS50YW5oKG1peF9zdW0gKiBtaXhlcl9kcml2ZSk7CgovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLy8gRmlsdGVyIOKAlCBNb29nIGxhZGRlci4gQ3V0b2ZmIGlzIG1vZHVsYXRlZCBpbiBvY3RhdmVzICjCsTUgb2N0IHBlciBtb2QgdW5pdCkuCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpjdXRvZmZfbW9kX29jdCA9IChtb2RfY3V0b2ZmKGdhdGUpICsgbW9kX2ZpbHRlcl9lbnZfYW10KGdhdGUpKSAqIDUuMDsKa2Jfc2NhbGUgICAgICAgPSBwb3coZnJlcV9nbGlkZWQgLyA0NDAuMCwgZmlsdGVyX2tiKTsgIC8vIDEuMCBhdCBBNCB3aGVuIGtiPTEKZWZmX2N1dG9mZl9yYXcgPSBjdXRvZmYgKiBrYl9zY2FsZSAqIG9jdDJyYXRpbyhjdXRvZmZfbW9kX29jdCk7CmVmZl9jdXRvZmYgICAgID0gbWF4KDIwLjAsIG1pbigxODAwMC4wLCBlZmZfY3V0b2ZmX3JhdykpOwplZmZfcmVzICAgICAgICA9IG1heCgwLjAsIG1pbigwLjk5LCByZXNvbmFuY2UgKyBtb2RfcmVzb25hbmNlKGdhdGUpKSk7CgpmaWx0ZXJlZCA9IG1peF9kcml2ZW4gOiB2ZS5tb29nX3ZjZihlZmZfcmVzLCBlZmZfY3V0b2ZmKTsKCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQovLyBBbXAgYW5kIHBhbgovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLy8gVmVsb2NpdHkgZ2FpbjogYmxlbmQgMS4wIChubyB2ZWxvY2l0eSkgLT4gdmVsLiBSZWZlcmVuY2VkIGhlcmUgc28gRmF1c3QKLy8ga2VlcHMgdGhlIF92ZWwgaGlkZGVuIHBhcmFtIGFsaXZlIGluIHRoZSBKU09OIGRlc2NyaXB0b3IuCnZlbF9nYWluID0gKDEuMCAtIDAuMykgKyAwLjMgKiB2ZWw7ICAvLyAzMCUgdmVsb2NpdHkgc2Vuc2l0aXZpdHksIGZpeGVkCmFtcF92YWwgPSBtYXgoMC4wLCBtaW4oMS4wLCBtb2RfYW1wKGdhdGUpKSkgKiBtYXN0ZXJfbGV2ZWwgKiB2ZWxfZ2FpbjsKcGFuX3ZhbCA9IG1heCgtMS4wLCBtaW4oMS4wLCBtYXN0ZXJfcGFuICsgbW9kX3BhbihnYXRlKSkpOwoKLy8gZXF1YWwtcG93ZXIgcGFuCnBhbl9sID0gY29zKChwYW5fdmFsICsgMS4wKSAqIDAuMjUgKiBtYS5QSSk7CnBhbl9yID0gc2luKChwYW5fdmFsICsgMS4wKSAqIDAuMjUgKiBtYS5QSSk7CgpzaWduYWwgPSBmaWx0ZXJlZCAqIGFtcF92YWw7CnNpZ25hbF9MID0gc2lnbmFsICogcGFuX2w7CnNpZ25hbF9SID0gc2lnbmFsICogcGFuX3I7Cgpwcm9jZXNzID0gc2lnbmFsX0wsIHNpZ25hbF9SOwo=","inputs": 0,"outputs": 2,"meta": [ { "basics.lib/name": "Faust Basic Element Library" },{ "basics.lib/version": "1.21.0" },{ "compile_options": "-lang wasm -ct 1 -cn modular_subtractive -es 1 -mcd 16 -mdd 1024 -mdy 33 -single -ftz 0" },{ "envelopes.lib/adsr:author": "Yann Orlarey and Andrey Bundin" },{ "envelopes.lib/author": "GRAME" },{ "envelopes.lib/copyright": "GRAME" },{ "envelopes.lib/license": "LGPL with exception" },{ "envelopes.lib/name": "Faust Envelope Library" },{ "envelopes.lib/version": "1.3.0" },{ "filename": "modular-subtractive.dsp" },{ "filters.lib/fir:author": "Julius O. Smith III" },{ "filters.lib/fir:copyright": "Copyright (C) 2003-2019 by Julius O. Smith III " },{ "filters.lib/fir:license": "MIT-style STK-4.3 license" },{ "filters.lib/iir:author": "Julius O. Smith III" },{ "filters.lib/iir:copyright": "Copyright (C) 2003-2019 by Julius O. Smith III " },{ "filters.lib/iir:license": "MIT-style STK-4.3 license" },{ "filters.lib/lowpass0_highpass1": "MIT-style STK-4.3 license" },{ "filters.lib/name": "Faust Filters Library" },{ "filters.lib/pole:author": "Julius O. Smith III" },{ "filters.lib/pole:copyright": "Copyright (C) 2003-2019 by Julius O. Smith III " },{ "filters.lib/pole:license": "MIT-style STK-4.3 license" },{ "filters.lib/version": "1.7.1" },{ "maths.lib/author": "GRAME" },{ "maths.lib/copyright": "GRAME" },{ "maths.lib/license": "LGPL with exception" },{ "maths.lib/name": "Faust Math Library" },{ "maths.lib/version": "2.8.1" },{ "name": "modular-subtractive" },{ "noises.lib/name": "Faust Noise Generator Library" },{ "noises.lib/version": "1.4.1" },{ "oscillators.lib/lf_sawpos:author": "Bart Brouns, revised by Stéphane Letz" },{ "oscillators.lib/lf_sawpos:licence": "STK-4.3" },{ "oscillators.lib/lf_triangle:author": "Bart Brouns" },{ "oscillators.lib/lf_triangle:licence": "STK-4.3" },{ "oscillators.lib/name": "Faust Oscillator Library" },{ "oscillators.lib/saw1:author": "Bart Brouns" },{ "oscillators.lib/saw1:licence": "STK-4.3" },{ "oscillators.lib/version": "1.6.0" },{ "platform.lib/name": "Generic Platform Library" },{ "platform.lib/version": "1.3.0" },{ "signals.lib/name": "Faust Signal Routing Library" },{ "signals.lib/version": "1.6.0" },{ "vaeffects.lib/moog_vcf:author": "Julius O. Smith III" },{ "vaeffects.lib/moog_vcf:copyright": "Copyright (C) 2003-2019 by Julius O. Smith III " },{ "vaeffects.lib/moog_vcf:license": "MIT-style STK-4.3 license" },{ "vaeffects.lib/name": "Faust Virtual Analog Filter Effect Library" },{ "vaeffects.lib/version": "1.3.0" }],"ui": [ {"type": "vgroup","label": "modular-subtractive","items": [ {"type": "hslider","label": "0_Hidden/_vel","varname": "fHslider225","shortname": "0_Hidden_vel","address": "/modular-subtractive/0_Hidden__vel","index": 263356,"meta": [{ "hidden": "1" }],"init": 0.7,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "0_Hidden/freq","varname": "fHslider371","shortname": "0_Hidden_freq","address": "/modular-subtractive/0_Hidden_freq","index": 263948,"meta": [{ "hidden": "1" },{ "unit": "Hz" }],"init": 220,"min": 20,"max": 4000,"step": 0.01},{"type": "button","label": "0_Hidden/gate","varname": "fButton0","shortname": "0_Hidden_gate","address": "/modular-subtractive/0_Hidden_gate","index": 262932,"meta": [{ "hidden": "1" }]},{"type": "hslider","label": "1_Oscillators/00_osc1_wave","varname": "fHslider675","shortname": "1_Oscillators_00_osc1_wave","address": "/modular-subtractive/1_Oscillators_00_osc1_wave","index": 265216,"meta": [{ "tooltip": "0=saw,0.5=tri,1=square" }],"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "1_Oscillators/01_osc1_range","varname": "fHslider676","shortname": "1_Oscillators_01_osc1_range","address": "/modular-subtractive/1_Oscillators_01_osc1_range","index": 265220,"meta": [{ "unit": "oct" }],"init": 0,"min": -2,"max": 2,"step": 0.01},{"type": "hslider","label": "1_Oscillators/02_osc1_level","varname": "fHslider677","shortname": "1_Oscillators_02_osc1_level","address": "/modular-subtractive/1_Oscillators_02_osc1_level","index": 265232,"init": 0.8,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "1_Oscillators/03_osc2_wave","varname": "fHslider623","shortname": "1_Oscillators_03_osc2_wave","address": "/modular-subtractive/1_Oscillators_03_osc2_wave","index": 265000,"meta": [{ "tooltip": "0=saw,0.5=tri,1=square" }],"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "1_Oscillators/04_osc2_range","varname": "fHslider673","shortname": "1_Oscillators_04_osc2_range","address": "/modular-subtractive/1_Oscillators_04_osc2_range","index": 265200,"meta": [{ "unit": "oct" }],"init": 0,"min": -2,"max": 2,"step": 0.01},{"type": "hslider","label": "1_Oscillators/05_osc2_detune","varname": "fHslider672","shortname": "1_Oscillators_05_osc2_detune","address": "/modular-subtractive/1_Oscillators_05_osc2_detune","index": 265196,"meta": [{ "unit": "ct" }],"init": 0,"min": -50,"max": 50,"step": 0.1},{"type": "hslider","label": "1_Oscillators/06_osc2_level","varname": "fHslider674","shortname": "1_Oscillators_06_osc2_level","address": "/modular-subtractive/1_Oscillators_06_osc2_level","index": 265212,"init": 0.6,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "1_Oscillators/07_osc3_wave","varname": "fHslider473","shortname": "1_Oscillators_07_osc3_wave","address": "/modular-subtractive/1_Oscillators_07_osc3_wave","index": 264392,"meta": [{ "tooltip": "0=saw,0.5=tri,1=square" }],"init": 0.5,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "1_Oscillators/08_osc3_range","varname": "fHslider573","shortname": "1_Oscillators_08_osc3_range","address": "/modular-subtractive/1_Oscillators_08_osc3_range","index": 264792,"meta": [{ "unit": "oct" }],"init": -1,"min": -2,"max": 2,"step": 0.01},{"type": "hslider","label": "1_Oscillators/09_osc3_detune","varname": "fHslider572","shortname": "1_Oscillators_09_osc3_detune","address": "/modular-subtractive/1_Oscillators_09_osc3_detune","index": 264788,"meta": [{ "unit": "ct" }],"init": 0,"min": -50,"max": 50,"step": 0.1},{"type": "hslider","label": "1_Oscillators/10_osc3_level","varname": "fHslider622","shortname": "1_Oscillators_10_osc3_level","address": "/modular-subtractive/1_Oscillators_10_osc3_level","index": 264996,"init": 0.4,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "1_Oscillators/11_osc3_kb_track","varname": "fHslider523","shortname": "1_Oscillators_11_osc3_kb_track","address": "/modular-subtractive/1_Oscillators_11_osc3_kb_track","index": 264592,"meta": [{ "tooltip": "1=tracks keyboard,0=LFO" }],"init": 1,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "2_Mixer/00_noise_type","varname": "fHslider472","shortname": "2_Mixer_00_noise_type","address": "/modular-subtractive/2_Mixer_00_noise_type","index": 264364,"meta": [{ "tooltip": "0=white,1=pink" }],"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "2_Mixer/01_noise_level","varname": "fHslider471","shortname": "2_Mixer_01_noise_level","address": "/modular-subtractive/2_Mixer_01_noise_level","index": 264360,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "2_Mixer/02_mixer_drive","varname": "fHslider678","shortname": "2_Mixer_02_mixer_drive","address": "/modular-subtractive/2_Mixer_02_mixer_drive","index": 265236,"meta": [{ "tooltip": "Pre-filter overdrive" }],"init": 1,"min": 0.5,"max": 4,"step": 0.001},{"type": "hslider","label": "3_Filter/00_cutoff","varname": "fHslider373","shortname": "3_Filter_00_cutoff","address": "/modular-subtractive/3_Filter_00_cutoff","index": 263964,"meta": [{ "scale": "log" },{ "unit": "Hz" }],"init": 1200,"min": 20,"max": 20000,"step": 0.1},{"type": "hslider","label": "3_Filter/01_resonance","varname": "fHslider422","shortname": "3_Filter_01_resonance","address": "/modular-subtractive/3_Filter_01_resonance","index": 264164,"init": 0.3,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "3_Filter/02_filter_kb_track","varname": "fHslider372","shortname": "3_Filter_02_filter_kb_track","address": "/modular-subtractive/3_Filter_02_filter_kb_track","index": 263960,"init": 0.5,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "4_Master/00_master_level","varname": "fHslider679","shortname": "4_Master_00_master_level","address": "/modular-subtractive/4_Master_00_master_level","index": 265280,"init": 0.7,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "4_Master/01_master_glide","varname": "fHslider370","shortname": "4_Master_01_master_glide","address": "/modular-subtractive/4_Master_01_master_glide","index": 263944,"meta": [{ "scale": "log" },{ "unit": "s" }],"init": 0,"min": 0,"max": 2,"step": 0.001},{"type": "hslider","label": "4_Master/02_master_tune","varname": "fHslider522","shortname": "4_Master_02_master_tune","address": "/modular-subtractive/4_Master_02_master_tune","index": 264588,"meta": [{ "unit": "ct" }],"init": 0,"min": -50,"max": 50,"step": 0.1},{"type": "hslider","label": "4_Master/03_master_pan","varname": "fHslider224","shortname": "4_Master_03_master_pan","address": "/modular-subtractive/4_Master_03_master_pan","index": 263344,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_ADSR/00_adsr01_attack","varname": "fHslider219","shortname": "MM_ADSR_00_adsr01_attack","address": "/modular-subtractive/MM_ADSR_00_adsr01_attack","index": 263324,"meta": [{ "scale": "log" }],"init": 0.01,"min": 0.001,"max": 5,"step": 0.001},{"type": "hslider","label": "MM_ADSR/00_adsr01_decay","varname": "fHslider220","shortname": "MM_ADSR_00_adsr01_decay","address": "/modular-subtractive/MM_ADSR_00_adsr01_decay","index": 263328,"init": 0.2,"min": 0.001,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/00_adsr01_enable","varname": "fHslider223","shortname": "MM_ADSR_00_adsr01_enable","address": "/modular-subtractive/MM_ADSR_00_adsr01_enable","index": 263340,"init": 1,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_ADSR/00_adsr01_release","varname": "fHslider218","shortname": "MM_ADSR_00_adsr01_release","address": "/modular-subtractive/MM_ADSR_00_adsr01_release","index": 263320,"init": 0.3,"min": 0.01,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/00_adsr01_sustain","varname": "fHslider221","shortname": "MM_ADSR_00_adsr01_sustain","address": "/modular-subtractive/MM_ADSR_00_adsr01_sustain","index": 263332,"init": 0.7,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_ADSR/01_adsr02_attack","varname": "fHslider213","shortname": "MM_ADSR_01_adsr02_attack","address": "/modular-subtractive/MM_ADSR_01_adsr02_attack","index": 263300,"meta": [{ "scale": "log" }],"init": 0.01,"min": 0.001,"max": 5,"step": 0.001},{"type": "hslider","label": "MM_ADSR/01_adsr02_decay","varname": "fHslider214","shortname": "MM_ADSR_01_adsr02_decay","address": "/modular-subtractive/MM_ADSR_01_adsr02_decay","index": 263304,"init": 0.2,"min": 0.001,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/01_adsr02_enable","varname": "fHslider217","shortname": "MM_ADSR_01_adsr02_enable","address": "/modular-subtractive/MM_ADSR_01_adsr02_enable","index": 263316,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_ADSR/01_adsr02_release","varname": "fHslider212","shortname": "MM_ADSR_01_adsr02_release","address": "/modular-subtractive/MM_ADSR_01_adsr02_release","index": 263296,"init": 0.3,"min": 0.01,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/01_adsr02_sustain","varname": "fHslider215","shortname": "MM_ADSR_01_adsr02_sustain","address": "/modular-subtractive/MM_ADSR_01_adsr02_sustain","index": 263308,"init": 0.7,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_ADSR/02_adsr03_attack","varname": "fHslider207","shortname": "MM_ADSR_02_adsr03_attack","address": "/modular-subtractive/MM_ADSR_02_adsr03_attack","index": 263276,"meta": [{ "scale": "log" }],"init": 0.01,"min": 0.001,"max": 5,"step": 0.001},{"type": "hslider","label": "MM_ADSR/02_adsr03_decay","varname": "fHslider208","shortname": "MM_ADSR_02_adsr03_decay","address": "/modular-subtractive/MM_ADSR_02_adsr03_decay","index": 263280,"init": 0.2,"min": 0.001,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/02_adsr03_enable","varname": "fHslider211","shortname": "MM_ADSR_02_adsr03_enable","address": "/modular-subtractive/MM_ADSR_02_adsr03_enable","index": 263292,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_ADSR/02_adsr03_release","varname": "fHslider206","shortname": "MM_ADSR_02_adsr03_release","address": "/modular-subtractive/MM_ADSR_02_adsr03_release","index": 263272,"init": 0.3,"min": 0.01,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/02_adsr03_sustain","varname": "fHslider209","shortname": "MM_ADSR_02_adsr03_sustain","address": "/modular-subtractive/MM_ADSR_02_adsr03_sustain","index": 263284,"init": 0.7,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_ADSR/03_adsr04_attack","varname": "fHslider201","shortname": "MM_ADSR_03_adsr04_attack","address": "/modular-subtractive/MM_ADSR_03_adsr04_attack","index": 263252,"meta": [{ "scale": "log" }],"init": 0.01,"min": 0.001,"max": 5,"step": 0.001},{"type": "hslider","label": "MM_ADSR/03_adsr04_decay","varname": "fHslider202","shortname": "MM_ADSR_03_adsr04_decay","address": "/modular-subtractive/MM_ADSR_03_adsr04_decay","index": 263256,"init": 0.2,"min": 0.001,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/03_adsr04_enable","varname": "fHslider205","shortname": "MM_ADSR_03_adsr04_enable","address": "/modular-subtractive/MM_ADSR_03_adsr04_enable","index": 263268,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_ADSR/03_adsr04_release","varname": "fHslider200","shortname": "MM_ADSR_03_adsr04_release","address": "/modular-subtractive/MM_ADSR_03_adsr04_release","index": 263248,"init": 0.3,"min": 0.01,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/03_adsr04_sustain","varname": "fHslider203","shortname": "MM_ADSR_03_adsr04_sustain","address": "/modular-subtractive/MM_ADSR_03_adsr04_sustain","index": 263260,"init": 0.7,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_ADSR/04_adsr05_attack","varname": "fHslider195","shortname": "MM_ADSR_04_adsr05_attack","address": "/modular-subtractive/MM_ADSR_04_adsr05_attack","index": 263228,"meta": [{ "scale": "log" }],"init": 0.01,"min": 0.001,"max": 5,"step": 0.001},{"type": "hslider","label": "MM_ADSR/04_adsr05_decay","varname": "fHslider196","shortname": "MM_ADSR_04_adsr05_decay","address": "/modular-subtractive/MM_ADSR_04_adsr05_decay","index": 263232,"init": 0.2,"min": 0.001,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/04_adsr05_enable","varname": "fHslider199","shortname": "MM_ADSR_04_adsr05_enable","address": "/modular-subtractive/MM_ADSR_04_adsr05_enable","index": 263244,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_ADSR/04_adsr05_release","varname": "fHslider194","shortname": "MM_ADSR_04_adsr05_release","address": "/modular-subtractive/MM_ADSR_04_adsr05_release","index": 263224,"init": 0.3,"min": 0.01,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/04_adsr05_sustain","varname": "fHslider197","shortname": "MM_ADSR_04_adsr05_sustain","address": "/modular-subtractive/MM_ADSR_04_adsr05_sustain","index": 263236,"init": 0.7,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_ADSR/05_adsr06_attack","varname": "fHslider189","shortname": "MM_ADSR_05_adsr06_attack","address": "/modular-subtractive/MM_ADSR_05_adsr06_attack","index": 263204,"meta": [{ "scale": "log" }],"init": 0.01,"min": 0.001,"max": 5,"step": 0.001},{"type": "hslider","label": "MM_ADSR/05_adsr06_decay","varname": "fHslider190","shortname": "MM_ADSR_05_adsr06_decay","address": "/modular-subtractive/MM_ADSR_05_adsr06_decay","index": 263208,"init": 0.2,"min": 0.001,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/05_adsr06_enable","varname": "fHslider193","shortname": "MM_ADSR_05_adsr06_enable","address": "/modular-subtractive/MM_ADSR_05_adsr06_enable","index": 263220,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_ADSR/05_adsr06_release","varname": "fHslider188","shortname": "MM_ADSR_05_adsr06_release","address": "/modular-subtractive/MM_ADSR_05_adsr06_release","index": 263200,"init": 0.3,"min": 0.01,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/05_adsr06_sustain","varname": "fHslider191","shortname": "MM_ADSR_05_adsr06_sustain","address": "/modular-subtractive/MM_ADSR_05_adsr06_sustain","index": 263212,"init": 0.7,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_ADSR/06_adsr07_attack","varname": "fHslider183","shortname": "MM_ADSR_06_adsr07_attack","address": "/modular-subtractive/MM_ADSR_06_adsr07_attack","index": 263180,"meta": [{ "scale": "log" }],"init": 0.01,"min": 0.001,"max": 5,"step": 0.001},{"type": "hslider","label": "MM_ADSR/06_adsr07_decay","varname": "fHslider184","shortname": "MM_ADSR_06_adsr07_decay","address": "/modular-subtractive/MM_ADSR_06_adsr07_decay","index": 263184,"init": 0.2,"min": 0.001,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/06_adsr07_enable","varname": "fHslider187","shortname": "MM_ADSR_06_adsr07_enable","address": "/modular-subtractive/MM_ADSR_06_adsr07_enable","index": 263196,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_ADSR/06_adsr07_release","varname": "fHslider182","shortname": "MM_ADSR_06_adsr07_release","address": "/modular-subtractive/MM_ADSR_06_adsr07_release","index": 263176,"init": 0.3,"min": 0.01,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/06_adsr07_sustain","varname": "fHslider185","shortname": "MM_ADSR_06_adsr07_sustain","address": "/modular-subtractive/MM_ADSR_06_adsr07_sustain","index": 263188,"init": 0.7,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_ADSR/07_adsr08_attack","varname": "fHslider177","shortname": "MM_ADSR_07_adsr08_attack","address": "/modular-subtractive/MM_ADSR_07_adsr08_attack","index": 263156,"meta": [{ "scale": "log" }],"init": 0.01,"min": 0.001,"max": 5,"step": 0.001},{"type": "hslider","label": "MM_ADSR/07_adsr08_decay","varname": "fHslider178","shortname": "MM_ADSR_07_adsr08_decay","address": "/modular-subtractive/MM_ADSR_07_adsr08_decay","index": 263160,"init": 0.2,"min": 0.001,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/07_adsr08_enable","varname": "fHslider181","shortname": "MM_ADSR_07_adsr08_enable","address": "/modular-subtractive/MM_ADSR_07_adsr08_enable","index": 263172,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_ADSR/07_adsr08_release","varname": "fHslider176","shortname": "MM_ADSR_07_adsr08_release","address": "/modular-subtractive/MM_ADSR_07_adsr08_release","index": 263152,"init": 0.3,"min": 0.01,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/07_adsr08_sustain","varname": "fHslider179","shortname": "MM_ADSR_07_adsr08_sustain","address": "/modular-subtractive/MM_ADSR_07_adsr08_sustain","index": 263164,"init": 0.7,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_ADSR/08_adsr09_attack","varname": "fHslider171","shortname": "MM_ADSR_08_adsr09_attack","address": "/modular-subtractive/MM_ADSR_08_adsr09_attack","index": 263132,"meta": [{ "scale": "log" }],"init": 0.01,"min": 0.001,"max": 5,"step": 0.001},{"type": "hslider","label": "MM_ADSR/08_adsr09_decay","varname": "fHslider172","shortname": "MM_ADSR_08_adsr09_decay","address": "/modular-subtractive/MM_ADSR_08_adsr09_decay","index": 263136,"init": 0.2,"min": 0.001,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/08_adsr09_enable","varname": "fHslider175","shortname": "MM_ADSR_08_adsr09_enable","address": "/modular-subtractive/MM_ADSR_08_adsr09_enable","index": 263148,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_ADSR/08_adsr09_release","varname": "fHslider170","shortname": "MM_ADSR_08_adsr09_release","address": "/modular-subtractive/MM_ADSR_08_adsr09_release","index": 263128,"init": 0.3,"min": 0.01,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/08_adsr09_sustain","varname": "fHslider173","shortname": "MM_ADSR_08_adsr09_sustain","address": "/modular-subtractive/MM_ADSR_08_adsr09_sustain","index": 263140,"init": 0.7,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_ADSR/09_adsr10_attack","varname": "fHslider165","shortname": "MM_ADSR_09_adsr10_attack","address": "/modular-subtractive/MM_ADSR_09_adsr10_attack","index": 263108,"meta": [{ "scale": "log" }],"init": 0.01,"min": 0.001,"max": 5,"step": 0.001},{"type": "hslider","label": "MM_ADSR/09_adsr10_decay","varname": "fHslider166","shortname": "MM_ADSR_09_adsr10_decay","address": "/modular-subtractive/MM_ADSR_09_adsr10_decay","index": 263112,"init": 0.2,"min": 0.001,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/09_adsr10_enable","varname": "fHslider169","shortname": "MM_ADSR_09_adsr10_enable","address": "/modular-subtractive/MM_ADSR_09_adsr10_enable","index": 263124,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_ADSR/09_adsr10_release","varname": "fHslider164","shortname": "MM_ADSR_09_adsr10_release","address": "/modular-subtractive/MM_ADSR_09_adsr10_release","index": 263104,"init": 0.3,"min": 0.01,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/09_adsr10_sustain","varname": "fHslider167","shortname": "MM_ADSR_09_adsr10_sustain","address": "/modular-subtractive/MM_ADSR_09_adsr10_sustain","index": 263116,"init": 0.7,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_ADSR/10_adsr11_attack","varname": "fHslider159","shortname": "MM_ADSR_10_adsr11_attack","address": "/modular-subtractive/MM_ADSR_10_adsr11_attack","index": 263084,"meta": [{ "scale": "log" }],"init": 0.01,"min": 0.001,"max": 5,"step": 0.001},{"type": "hslider","label": "MM_ADSR/10_adsr11_decay","varname": "fHslider160","shortname": "MM_ADSR_10_adsr11_decay","address": "/modular-subtractive/MM_ADSR_10_adsr11_decay","index": 263088,"init": 0.2,"min": 0.001,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/10_adsr11_enable","varname": "fHslider163","shortname": "MM_ADSR_10_adsr11_enable","address": "/modular-subtractive/MM_ADSR_10_adsr11_enable","index": 263100,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_ADSR/10_adsr11_release","varname": "fHslider158","shortname": "MM_ADSR_10_adsr11_release","address": "/modular-subtractive/MM_ADSR_10_adsr11_release","index": 263080,"init": 0.3,"min": 0.01,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/10_adsr11_sustain","varname": "fHslider161","shortname": "MM_ADSR_10_adsr11_sustain","address": "/modular-subtractive/MM_ADSR_10_adsr11_sustain","index": 263092,"init": 0.7,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_ADSR/11_adsr12_attack","varname": "fHslider153","shortname": "MM_ADSR_11_adsr12_attack","address": "/modular-subtractive/MM_ADSR_11_adsr12_attack","index": 263060,"meta": [{ "scale": "log" }],"init": 0.01,"min": 0.001,"max": 5,"step": 0.001},{"type": "hslider","label": "MM_ADSR/11_adsr12_decay","varname": "fHslider154","shortname": "MM_ADSR_11_adsr12_decay","address": "/modular-subtractive/MM_ADSR_11_adsr12_decay","index": 263064,"init": 0.2,"min": 0.001,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/11_adsr12_enable","varname": "fHslider157","shortname": "MM_ADSR_11_adsr12_enable","address": "/modular-subtractive/MM_ADSR_11_adsr12_enable","index": 263076,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_ADSR/11_adsr12_release","varname": "fHslider152","shortname": "MM_ADSR_11_adsr12_release","address": "/modular-subtractive/MM_ADSR_11_adsr12_release","index": 263056,"init": 0.3,"min": 0.01,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/11_adsr12_sustain","varname": "fHslider155","shortname": "MM_ADSR_11_adsr12_sustain","address": "/modular-subtractive/MM_ADSR_11_adsr12_sustain","index": 263068,"init": 0.7,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_ADSR/12_adsr13_attack","varname": "fHslider147","shortname": "MM_ADSR_12_adsr13_attack","address": "/modular-subtractive/MM_ADSR_12_adsr13_attack","index": 263036,"meta": [{ "scale": "log" }],"init": 0.01,"min": 0.001,"max": 5,"step": 0.001},{"type": "hslider","label": "MM_ADSR/12_adsr13_decay","varname": "fHslider148","shortname": "MM_ADSR_12_adsr13_decay","address": "/modular-subtractive/MM_ADSR_12_adsr13_decay","index": 263040,"init": 0.2,"min": 0.001,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/12_adsr13_enable","varname": "fHslider151","shortname": "MM_ADSR_12_adsr13_enable","address": "/modular-subtractive/MM_ADSR_12_adsr13_enable","index": 263052,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_ADSR/12_adsr13_release","varname": "fHslider146","shortname": "MM_ADSR_12_adsr13_release","address": "/modular-subtractive/MM_ADSR_12_adsr13_release","index": 263032,"init": 0.3,"min": 0.01,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/12_adsr13_sustain","varname": "fHslider149","shortname": "MM_ADSR_12_adsr13_sustain","address": "/modular-subtractive/MM_ADSR_12_adsr13_sustain","index": 263044,"init": 0.7,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_ADSR/13_adsr14_attack","varname": "fHslider141","shortname": "MM_ADSR_13_adsr14_attack","address": "/modular-subtractive/MM_ADSR_13_adsr14_attack","index": 263012,"meta": [{ "scale": "log" }],"init": 0.01,"min": 0.001,"max": 5,"step": 0.001},{"type": "hslider","label": "MM_ADSR/13_adsr14_decay","varname": "fHslider142","shortname": "MM_ADSR_13_adsr14_decay","address": "/modular-subtractive/MM_ADSR_13_adsr14_decay","index": 263016,"init": 0.2,"min": 0.001,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/13_adsr14_enable","varname": "fHslider145","shortname": "MM_ADSR_13_adsr14_enable","address": "/modular-subtractive/MM_ADSR_13_adsr14_enable","index": 263028,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_ADSR/13_adsr14_release","varname": "fHslider140","shortname": "MM_ADSR_13_adsr14_release","address": "/modular-subtractive/MM_ADSR_13_adsr14_release","index": 263008,"init": 0.3,"min": 0.01,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/13_adsr14_sustain","varname": "fHslider143","shortname": "MM_ADSR_13_adsr14_sustain","address": "/modular-subtractive/MM_ADSR_13_adsr14_sustain","index": 263020,"init": 0.7,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_ADSR/14_adsr15_attack","varname": "fHslider135","shortname": "MM_ADSR_14_adsr15_attack","address": "/modular-subtractive/MM_ADSR_14_adsr15_attack","index": 262988,"meta": [{ "scale": "log" }],"init": 0.01,"min": 0.001,"max": 5,"step": 0.001},{"type": "hslider","label": "MM_ADSR/14_adsr15_decay","varname": "fHslider136","shortname": "MM_ADSR_14_adsr15_decay","address": "/modular-subtractive/MM_ADSR_14_adsr15_decay","index": 262992,"init": 0.2,"min": 0.001,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/14_adsr15_enable","varname": "fHslider139","shortname": "MM_ADSR_14_adsr15_enable","address": "/modular-subtractive/MM_ADSR_14_adsr15_enable","index": 263004,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_ADSR/14_adsr15_release","varname": "fHslider134","shortname": "MM_ADSR_14_adsr15_release","address": "/modular-subtractive/MM_ADSR_14_adsr15_release","index": 262984,"init": 0.3,"min": 0.01,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/14_adsr15_sustain","varname": "fHslider137","shortname": "MM_ADSR_14_adsr15_sustain","address": "/modular-subtractive/MM_ADSR_14_adsr15_sustain","index": 262996,"init": 0.7,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_ADSR/15_adsr16_attack","varname": "fHslider129","shortname": "MM_ADSR_15_adsr16_attack","address": "/modular-subtractive/MM_ADSR_15_adsr16_attack","index": 262964,"meta": [{ "scale": "log" }],"init": 0.01,"min": 0.001,"max": 5,"step": 0.001},{"type": "hslider","label": "MM_ADSR/15_adsr16_decay","varname": "fHslider130","shortname": "MM_ADSR_15_adsr16_decay","address": "/modular-subtractive/MM_ADSR_15_adsr16_decay","index": 262968,"init": 0.2,"min": 0.001,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/15_adsr16_enable","varname": "fHslider133","shortname": "MM_ADSR_15_adsr16_enable","address": "/modular-subtractive/MM_ADSR_15_adsr16_enable","index": 262980,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_ADSR/15_adsr16_release","varname": "fHslider128","shortname": "MM_ADSR_15_adsr16_release","address": "/modular-subtractive/MM_ADSR_15_adsr16_release","index": 262952,"init": 0.3,"min": 0.01,"max": 10,"step": 0.001},{"type": "hslider","label": "MM_ADSR/15_adsr16_sustain","varname": "fHslider131","shortname": "MM_ADSR_15_adsr16_sustain","address": "/modular-subtractive/MM_ADSR_15_adsr16_sustain","index": 262972,"init": 0.7,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/00_lfo01_enable","varname": "fHslider127","shortname": "MM_LFO_00_lfo01_enable","address": "/modular-subtractive/MM_LFO_00_lfo01_enable","index": 262928,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/00_lfo01_morph","varname": "fHslider124","shortname": "MM_LFO_00_lfo01_morph","address": "/modular-subtractive/MM_LFO_00_lfo01_morph","index": 262908,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/00_lfo01_rate","varname": "fHslider125","shortname": "MM_LFO_00_lfo01_rate","address": "/modular-subtractive/MM_LFO_00_lfo01_rate","index": 262912,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/01_lfo02_enable","varname": "fHslider123","shortname": "MM_LFO_01_lfo02_enable","address": "/modular-subtractive/MM_LFO_01_lfo02_enable","index": 262904,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/01_lfo02_morph","varname": "fHslider120","shortname": "MM_LFO_01_lfo02_morph","address": "/modular-subtractive/MM_LFO_01_lfo02_morph","index": 262884,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/01_lfo02_rate","varname": "fHslider121","shortname": "MM_LFO_01_lfo02_rate","address": "/modular-subtractive/MM_LFO_01_lfo02_rate","index": 262888,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/02_lfo03_enable","varname": "fHslider119","shortname": "MM_LFO_02_lfo03_enable","address": "/modular-subtractive/MM_LFO_02_lfo03_enable","index": 262880,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/02_lfo03_morph","varname": "fHslider116","shortname": "MM_LFO_02_lfo03_morph","address": "/modular-subtractive/MM_LFO_02_lfo03_morph","index": 262860,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/02_lfo03_rate","varname": "fHslider117","shortname": "MM_LFO_02_lfo03_rate","address": "/modular-subtractive/MM_LFO_02_lfo03_rate","index": 262864,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/03_lfo04_enable","varname": "fHslider115","shortname": "MM_LFO_03_lfo04_enable","address": "/modular-subtractive/MM_LFO_03_lfo04_enable","index": 262856,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/03_lfo04_morph","varname": "fHslider112","shortname": "MM_LFO_03_lfo04_morph","address": "/modular-subtractive/MM_LFO_03_lfo04_morph","index": 262836,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/03_lfo04_rate","varname": "fHslider113","shortname": "MM_LFO_03_lfo04_rate","address": "/modular-subtractive/MM_LFO_03_lfo04_rate","index": 262840,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/04_lfo05_enable","varname": "fHslider111","shortname": "MM_LFO_04_lfo05_enable","address": "/modular-subtractive/MM_LFO_04_lfo05_enable","index": 262832,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/04_lfo05_morph","varname": "fHslider108","shortname": "MM_LFO_04_lfo05_morph","address": "/modular-subtractive/MM_LFO_04_lfo05_morph","index": 262812,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/04_lfo05_rate","varname": "fHslider109","shortname": "MM_LFO_04_lfo05_rate","address": "/modular-subtractive/MM_LFO_04_lfo05_rate","index": 262816,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/05_lfo06_enable","varname": "fHslider107","shortname": "MM_LFO_05_lfo06_enable","address": "/modular-subtractive/MM_LFO_05_lfo06_enable","index": 262808,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/05_lfo06_morph","varname": "fHslider104","shortname": "MM_LFO_05_lfo06_morph","address": "/modular-subtractive/MM_LFO_05_lfo06_morph","index": 262788,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/05_lfo06_rate","varname": "fHslider105","shortname": "MM_LFO_05_lfo06_rate","address": "/modular-subtractive/MM_LFO_05_lfo06_rate","index": 262792,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/06_lfo07_enable","varname": "fHslider103","shortname": "MM_LFO_06_lfo07_enable","address": "/modular-subtractive/MM_LFO_06_lfo07_enable","index": 262784,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/06_lfo07_morph","varname": "fHslider100","shortname": "MM_LFO_06_lfo07_morph","address": "/modular-subtractive/MM_LFO_06_lfo07_morph","index": 262764,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/06_lfo07_rate","varname": "fHslider101","shortname": "MM_LFO_06_lfo07_rate","address": "/modular-subtractive/MM_LFO_06_lfo07_rate","index": 262768,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/07_lfo08_enable","varname": "fHslider99","shortname": "MM_LFO_07_lfo08_enable","address": "/modular-subtractive/MM_LFO_07_lfo08_enable","index": 262760,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/07_lfo08_morph","varname": "fHslider96","shortname": "MM_LFO_07_lfo08_morph","address": "/modular-subtractive/MM_LFO_07_lfo08_morph","index": 262740,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/07_lfo08_rate","varname": "fHslider97","shortname": "MM_LFO_07_lfo08_rate","address": "/modular-subtractive/MM_LFO_07_lfo08_rate","index": 262744,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/08_lfo09_enable","varname": "fHslider95","shortname": "MM_LFO_08_lfo09_enable","address": "/modular-subtractive/MM_LFO_08_lfo09_enable","index": 262736,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/08_lfo09_morph","varname": "fHslider92","shortname": "MM_LFO_08_lfo09_morph","address": "/modular-subtractive/MM_LFO_08_lfo09_morph","index": 262716,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/08_lfo09_rate","varname": "fHslider93","shortname": "MM_LFO_08_lfo09_rate","address": "/modular-subtractive/MM_LFO_08_lfo09_rate","index": 262720,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/09_lfo10_enable","varname": "fHslider91","shortname": "MM_LFO_09_lfo10_enable","address": "/modular-subtractive/MM_LFO_09_lfo10_enable","index": 262712,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/09_lfo10_morph","varname": "fHslider88","shortname": "MM_LFO_09_lfo10_morph","address": "/modular-subtractive/MM_LFO_09_lfo10_morph","index": 262692,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/09_lfo10_rate","varname": "fHslider89","shortname": "MM_LFO_09_lfo10_rate","address": "/modular-subtractive/MM_LFO_09_lfo10_rate","index": 262696,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/10_lfo11_enable","varname": "fHslider87","shortname": "MM_LFO_10_lfo11_enable","address": "/modular-subtractive/MM_LFO_10_lfo11_enable","index": 262688,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/10_lfo11_morph","varname": "fHslider84","shortname": "MM_LFO_10_lfo11_morph","address": "/modular-subtractive/MM_LFO_10_lfo11_morph","index": 262668,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/10_lfo11_rate","varname": "fHslider85","shortname": "MM_LFO_10_lfo11_rate","address": "/modular-subtractive/MM_LFO_10_lfo11_rate","index": 262672,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/11_lfo12_enable","varname": "fHslider83","shortname": "MM_LFO_11_lfo12_enable","address": "/modular-subtractive/MM_LFO_11_lfo12_enable","index": 262664,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/11_lfo12_morph","varname": "fHslider80","shortname": "MM_LFO_11_lfo12_morph","address": "/modular-subtractive/MM_LFO_11_lfo12_morph","index": 262644,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/11_lfo12_rate","varname": "fHslider81","shortname": "MM_LFO_11_lfo12_rate","address": "/modular-subtractive/MM_LFO_11_lfo12_rate","index": 262648,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/12_lfo13_enable","varname": "fHslider79","shortname": "MM_LFO_12_lfo13_enable","address": "/modular-subtractive/MM_LFO_12_lfo13_enable","index": 262640,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/12_lfo13_morph","varname": "fHslider76","shortname": "MM_LFO_12_lfo13_morph","address": "/modular-subtractive/MM_LFO_12_lfo13_morph","index": 262620,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/12_lfo13_rate","varname": "fHslider77","shortname": "MM_LFO_12_lfo13_rate","address": "/modular-subtractive/MM_LFO_12_lfo13_rate","index": 262624,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/13_lfo14_enable","varname": "fHslider75","shortname": "MM_LFO_13_lfo14_enable","address": "/modular-subtractive/MM_LFO_13_lfo14_enable","index": 262616,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/13_lfo14_morph","varname": "fHslider72","shortname": "MM_LFO_13_lfo14_morph","address": "/modular-subtractive/MM_LFO_13_lfo14_morph","index": 262596,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/13_lfo14_rate","varname": "fHslider73","shortname": "MM_LFO_13_lfo14_rate","address": "/modular-subtractive/MM_LFO_13_lfo14_rate","index": 262600,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/14_lfo15_enable","varname": "fHslider71","shortname": "MM_LFO_14_lfo15_enable","address": "/modular-subtractive/MM_LFO_14_lfo15_enable","index": 262592,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/14_lfo15_morph","varname": "fHslider68","shortname": "MM_LFO_14_lfo15_morph","address": "/modular-subtractive/MM_LFO_14_lfo15_morph","index": 262572,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/14_lfo15_rate","varname": "fHslider69","shortname": "MM_LFO_14_lfo15_rate","address": "/modular-subtractive/MM_LFO_14_lfo15_rate","index": 262576,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/15_lfo16_enable","varname": "fHslider67","shortname": "MM_LFO_15_lfo16_enable","address": "/modular-subtractive/MM_LFO_15_lfo16_enable","index": 262568,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/15_lfo16_morph","varname": "fHslider64","shortname": "MM_LFO_15_lfo16_morph","address": "/modular-subtractive/MM_LFO_15_lfo16_morph","index": 262548,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/15_lfo16_rate","varname": "fHslider65","shortname": "MM_LFO_15_lfo16_rate","address": "/modular-subtractive/MM_LFO_15_lfo16_rate","index": 262552,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/16_lfo17_enable","varname": "fHslider63","shortname": "MM_LFO_16_lfo17_enable","address": "/modular-subtractive/MM_LFO_16_lfo17_enable","index": 262544,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/16_lfo17_morph","varname": "fHslider60","shortname": "MM_LFO_16_lfo17_morph","address": "/modular-subtractive/MM_LFO_16_lfo17_morph","index": 262524,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/16_lfo17_rate","varname": "fHslider61","shortname": "MM_LFO_16_lfo17_rate","address": "/modular-subtractive/MM_LFO_16_lfo17_rate","index": 262528,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/17_lfo18_enable","varname": "fHslider59","shortname": "MM_LFO_17_lfo18_enable","address": "/modular-subtractive/MM_LFO_17_lfo18_enable","index": 262520,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/17_lfo18_morph","varname": "fHslider56","shortname": "MM_LFO_17_lfo18_morph","address": "/modular-subtractive/MM_LFO_17_lfo18_morph","index": 262500,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/17_lfo18_rate","varname": "fHslider57","shortname": "MM_LFO_17_lfo18_rate","address": "/modular-subtractive/MM_LFO_17_lfo18_rate","index": 262504,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/18_lfo19_enable","varname": "fHslider55","shortname": "MM_LFO_18_lfo19_enable","address": "/modular-subtractive/MM_LFO_18_lfo19_enable","index": 262496,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/18_lfo19_morph","varname": "fHslider52","shortname": "MM_LFO_18_lfo19_morph","address": "/modular-subtractive/MM_LFO_18_lfo19_morph","index": 262476,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/18_lfo19_rate","varname": "fHslider53","shortname": "MM_LFO_18_lfo19_rate","address": "/modular-subtractive/MM_LFO_18_lfo19_rate","index": 262480,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/19_lfo20_enable","varname": "fHslider51","shortname": "MM_LFO_19_lfo20_enable","address": "/modular-subtractive/MM_LFO_19_lfo20_enable","index": 262472,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/19_lfo20_morph","varname": "fHslider48","shortname": "MM_LFO_19_lfo20_morph","address": "/modular-subtractive/MM_LFO_19_lfo20_morph","index": 262452,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/19_lfo20_rate","varname": "fHslider49","shortname": "MM_LFO_19_lfo20_rate","address": "/modular-subtractive/MM_LFO_19_lfo20_rate","index": 262456,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/20_lfo21_enable","varname": "fHslider47","shortname": "MM_LFO_20_lfo21_enable","address": "/modular-subtractive/MM_LFO_20_lfo21_enable","index": 262448,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/20_lfo21_morph","varname": "fHslider44","shortname": "MM_LFO_20_lfo21_morph","address": "/modular-subtractive/MM_LFO_20_lfo21_morph","index": 262428,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/20_lfo21_rate","varname": "fHslider45","shortname": "MM_LFO_20_lfo21_rate","address": "/modular-subtractive/MM_LFO_20_lfo21_rate","index": 262432,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/21_lfo22_enable","varname": "fHslider43","shortname": "MM_LFO_21_lfo22_enable","address": "/modular-subtractive/MM_LFO_21_lfo22_enable","index": 262424,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/21_lfo22_morph","varname": "fHslider40","shortname": "MM_LFO_21_lfo22_morph","address": "/modular-subtractive/MM_LFO_21_lfo22_morph","index": 262404,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/21_lfo22_rate","varname": "fHslider41","shortname": "MM_LFO_21_lfo22_rate","address": "/modular-subtractive/MM_LFO_21_lfo22_rate","index": 262408,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/22_lfo23_enable","varname": "fHslider39","shortname": "MM_LFO_22_lfo23_enable","address": "/modular-subtractive/MM_LFO_22_lfo23_enable","index": 262400,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/22_lfo23_morph","varname": "fHslider36","shortname": "MM_LFO_22_lfo23_morph","address": "/modular-subtractive/MM_LFO_22_lfo23_morph","index": 262380,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/22_lfo23_rate","varname": "fHslider37","shortname": "MM_LFO_22_lfo23_rate","address": "/modular-subtractive/MM_LFO_22_lfo23_rate","index": 262384,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/23_lfo24_enable","varname": "fHslider35","shortname": "MM_LFO_23_lfo24_enable","address": "/modular-subtractive/MM_LFO_23_lfo24_enable","index": 262376,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/23_lfo24_morph","varname": "fHslider32","shortname": "MM_LFO_23_lfo24_morph","address": "/modular-subtractive/MM_LFO_23_lfo24_morph","index": 262356,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/23_lfo24_rate","varname": "fHslider33","shortname": "MM_LFO_23_lfo24_rate","address": "/modular-subtractive/MM_LFO_23_lfo24_rate","index": 262360,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/24_lfo25_enable","varname": "fHslider31","shortname": "MM_LFO_24_lfo25_enable","address": "/modular-subtractive/MM_LFO_24_lfo25_enable","index": 262352,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/24_lfo25_morph","varname": "fHslider28","shortname": "MM_LFO_24_lfo25_morph","address": "/modular-subtractive/MM_LFO_24_lfo25_morph","index": 262332,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/24_lfo25_rate","varname": "fHslider29","shortname": "MM_LFO_24_lfo25_rate","address": "/modular-subtractive/MM_LFO_24_lfo25_rate","index": 262336,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/25_lfo26_enable","varname": "fHslider27","shortname": "MM_LFO_25_lfo26_enable","address": "/modular-subtractive/MM_LFO_25_lfo26_enable","index": 262328,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/25_lfo26_morph","varname": "fHslider24","shortname": "MM_LFO_25_lfo26_morph","address": "/modular-subtractive/MM_LFO_25_lfo26_morph","index": 262308,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/25_lfo26_rate","varname": "fHslider25","shortname": "MM_LFO_25_lfo26_rate","address": "/modular-subtractive/MM_LFO_25_lfo26_rate","index": 262312,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/26_lfo27_enable","varname": "fHslider23","shortname": "MM_LFO_26_lfo27_enable","address": "/modular-subtractive/MM_LFO_26_lfo27_enable","index": 262304,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/26_lfo27_morph","varname": "fHslider20","shortname": "MM_LFO_26_lfo27_morph","address": "/modular-subtractive/MM_LFO_26_lfo27_morph","index": 262284,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/26_lfo27_rate","varname": "fHslider21","shortname": "MM_LFO_26_lfo27_rate","address": "/modular-subtractive/MM_LFO_26_lfo27_rate","index": 262288,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/27_lfo28_enable","varname": "fHslider19","shortname": "MM_LFO_27_lfo28_enable","address": "/modular-subtractive/MM_LFO_27_lfo28_enable","index": 262280,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/27_lfo28_morph","varname": "fHslider16","shortname": "MM_LFO_27_lfo28_morph","address": "/modular-subtractive/MM_LFO_27_lfo28_morph","index": 262260,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/27_lfo28_rate","varname": "fHslider17","shortname": "MM_LFO_27_lfo28_rate","address": "/modular-subtractive/MM_LFO_27_lfo28_rate","index": 262264,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/28_lfo29_enable","varname": "fHslider15","shortname": "MM_LFO_28_lfo29_enable","address": "/modular-subtractive/MM_LFO_28_lfo29_enable","index": 262256,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/28_lfo29_morph","varname": "fHslider12","shortname": "MM_LFO_28_lfo29_morph","address": "/modular-subtractive/MM_LFO_28_lfo29_morph","index": 262236,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/28_lfo29_rate","varname": "fHslider13","shortname": "MM_LFO_28_lfo29_rate","address": "/modular-subtractive/MM_LFO_28_lfo29_rate","index": 262240,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/29_lfo30_enable","varname": "fHslider11","shortname": "MM_LFO_29_lfo30_enable","address": "/modular-subtractive/MM_LFO_29_lfo30_enable","index": 262232,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/29_lfo30_morph","varname": "fHslider8","shortname": "MM_LFO_29_lfo30_morph","address": "/modular-subtractive/MM_LFO_29_lfo30_morph","index": 262212,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/29_lfo30_rate","varname": "fHslider9","shortname": "MM_LFO_29_lfo30_rate","address": "/modular-subtractive/MM_LFO_29_lfo30_rate","index": 262216,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/30_lfo31_enable","varname": "fHslider7","shortname": "MM_LFO_30_lfo31_enable","address": "/modular-subtractive/MM_LFO_30_lfo31_enable","index": 262208,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/30_lfo31_morph","varname": "fHslider4","shortname": "MM_LFO_30_lfo31_morph","address": "/modular-subtractive/MM_LFO_30_lfo31_morph","index": 262188,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/30_lfo31_rate","varname": "fHslider5","shortname": "MM_LFO_30_lfo31_rate","address": "/modular-subtractive/MM_LFO_30_lfo31_rate","index": 262192,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_LFO/31_lfo32_enable","varname": "fHslider3","shortname": "MM_LFO_31_lfo32_enable","address": "/modular-subtractive/MM_LFO_31_lfo32_enable","index": 262184,"init": 0,"min": 0,"max": 1,"step": 1},{"type": "hslider","label": "MM_LFO/31_lfo32_morph","varname": "fHslider0","shortname": "MM_LFO_31_lfo32_morph","address": "/modular-subtractive/MM_LFO_31_lfo32_morph","index": 262144,"init": 0,"min": 0,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_LFO/31_lfo32_rate","varname": "fHslider1","shortname": "MM_LFO_31_lfo32_rate","address": "/modular-subtractive/MM_LFO_31_lfo32_rate","index": 262156,"meta": [{ "scale": "log" }],"init": 1,"min": 0.01,"max": 20,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s00_d00_pitch","varname": "fHslider521","shortname": "MM_Matrix_s00_d00_pitch","address": "/modular-subtractive/MM_Matrix_s00_d00_pitch","index": 264584,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s00_d01_osc2_detune","varname": "fHslider671","shortname": "MM_Matrix_s00_d01_osc2_detune","address": "/modular-subtractive/MM_Matrix_s00_d01_osc2_detune","index": 265192,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s00_d02_osc3_detune","varname": "fHslider571","shortname": "MM_Matrix_s00_d02_osc3_detune","address": "/modular-subtractive/MM_Matrix_s00_d02_osc3_detune","index": 264784,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s00_d03_osc_mix_bal","varname": "fHslider621","shortname": "MM_Matrix_s00_d03_osc_mix_bal","address": "/modular-subtractive/MM_Matrix_s00_d03_osc_mix_bal","index": 264992,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s00_d04_noise_level","varname": "fHslider470","shortname": "MM_Matrix_s00_d04_noise_level","address": "/modular-subtractive/MM_Matrix_s00_d04_noise_level","index": 264356,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s00_d05_cutoff","varname": "fHslider276","shortname": "MM_Matrix_s00_d05_cutoff","address": "/modular-subtractive/MM_Matrix_s00_d05_cutoff","index": 263568,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s00_d06_resonance","varname": "fHslider421","shortname": "MM_Matrix_s00_d06_resonance","address": "/modular-subtractive/MM_Matrix_s00_d06_resonance","index": 264160,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s00_d07_filter_env_amt","varname": "fHslider277","shortname": "MM_Matrix_s00_d07_filter_env_amt","address": "/modular-subtractive/MM_Matrix_s00_d07_filter_env_amt","index": 263572,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s00_d08_amp","varname": "fHslider273","shortname": "MM_Matrix_s00_d08_amp","address": "/modular-subtractive/MM_Matrix_s00_d08_amp","index": 263556,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s00_d09_pan","varname": "fHslider222","shortname": "MM_Matrix_s00_d09_pan","address": "/modular-subtractive/MM_Matrix_s00_d09_pan","index": 263336,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s01_d00_pitch","varname": "fHslider520","shortname": "MM_Matrix_s01_d00_pitch","address": "/modular-subtractive/MM_Matrix_s01_d00_pitch","index": 264580,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s01_d01_osc2_detune","varname": "fHslider670","shortname": "MM_Matrix_s01_d01_osc2_detune","address": "/modular-subtractive/MM_Matrix_s01_d01_osc2_detune","index": 265188,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s01_d02_osc3_detune","varname": "fHslider570","shortname": "MM_Matrix_s01_d02_osc3_detune","address": "/modular-subtractive/MM_Matrix_s01_d02_osc3_detune","index": 264780,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s01_d03_osc_mix_bal","varname": "fHslider620","shortname": "MM_Matrix_s01_d03_osc_mix_bal","address": "/modular-subtractive/MM_Matrix_s01_d03_osc_mix_bal","index": 264988,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s01_d04_noise_level","varname": "fHslider469","shortname": "MM_Matrix_s01_d04_noise_level","address": "/modular-subtractive/MM_Matrix_s01_d04_noise_level","index": 264352,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s01_d05_cutoff","varname": "fHslider274","shortname": "MM_Matrix_s01_d05_cutoff","address": "/modular-subtractive/MM_Matrix_s01_d05_cutoff","index": 263560,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s01_d06_resonance","varname": "fHslider420","shortname": "MM_Matrix_s01_d06_resonance","address": "/modular-subtractive/MM_Matrix_s01_d06_resonance","index": 264156,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s01_d07_filter_env_amt","varname": "fHslider275","shortname": "MM_Matrix_s01_d07_filter_env_amt","address": "/modular-subtractive/MM_Matrix_s01_d07_filter_env_amt","index": 263564,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s01_d08_amp","varname": "fHslider272","shortname": "MM_Matrix_s01_d08_amp","address": "/modular-subtractive/MM_Matrix_s01_d08_amp","index": 263552,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s01_d09_pan","varname": "fHslider216","shortname": "MM_Matrix_s01_d09_pan","address": "/modular-subtractive/MM_Matrix_s01_d09_pan","index": 263312,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s02_d00_pitch","varname": "fHslider519","shortname": "MM_Matrix_s02_d00_pitch","address": "/modular-subtractive/MM_Matrix_s02_d00_pitch","index": 264576,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s02_d01_osc2_detune","varname": "fHslider669","shortname": "MM_Matrix_s02_d01_osc2_detune","address": "/modular-subtractive/MM_Matrix_s02_d01_osc2_detune","index": 265184,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s02_d02_osc3_detune","varname": "fHslider569","shortname": "MM_Matrix_s02_d02_osc3_detune","address": "/modular-subtractive/MM_Matrix_s02_d02_osc3_detune","index": 264776,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s02_d03_osc_mix_bal","varname": "fHslider619","shortname": "MM_Matrix_s02_d03_osc_mix_bal","address": "/modular-subtractive/MM_Matrix_s02_d03_osc_mix_bal","index": 264984,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s02_d04_noise_level","varname": "fHslider468","shortname": "MM_Matrix_s02_d04_noise_level","address": "/modular-subtractive/MM_Matrix_s02_d04_noise_level","index": 264348,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s02_d05_cutoff","varname": "fHslider278","shortname": "MM_Matrix_s02_d05_cutoff","address": "/modular-subtractive/MM_Matrix_s02_d05_cutoff","index": 263576,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s02_d06_resonance","varname": "fHslider419","shortname": "MM_Matrix_s02_d06_resonance","address": "/modular-subtractive/MM_Matrix_s02_d06_resonance","index": 264152,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s02_d07_filter_env_amt","varname": "fHslider279","shortname": "MM_Matrix_s02_d07_filter_env_amt","address": "/modular-subtractive/MM_Matrix_s02_d07_filter_env_amt","index": 263580,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s02_d08_amp","varname": "fHslider271","shortname": "MM_Matrix_s02_d08_amp","address": "/modular-subtractive/MM_Matrix_s02_d08_amp","index": 263548,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s02_d09_pan","varname": "fHslider210","shortname": "MM_Matrix_s02_d09_pan","address": "/modular-subtractive/MM_Matrix_s02_d09_pan","index": 263288,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s03_d00_pitch","varname": "fHslider518","shortname": "MM_Matrix_s03_d00_pitch","address": "/modular-subtractive/MM_Matrix_s03_d00_pitch","index": 264572,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s03_d01_osc2_detune","varname": "fHslider668","shortname": "MM_Matrix_s03_d01_osc2_detune","address": "/modular-subtractive/MM_Matrix_s03_d01_osc2_detune","index": 265180,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s03_d02_osc3_detune","varname": "fHslider568","shortname": "MM_Matrix_s03_d02_osc3_detune","address": "/modular-subtractive/MM_Matrix_s03_d02_osc3_detune","index": 264772,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s03_d03_osc_mix_bal","varname": "fHslider618","shortname": "MM_Matrix_s03_d03_osc_mix_bal","address": "/modular-subtractive/MM_Matrix_s03_d03_osc_mix_bal","index": 264980,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s03_d04_noise_level","varname": "fHslider467","shortname": "MM_Matrix_s03_d04_noise_level","address": "/modular-subtractive/MM_Matrix_s03_d04_noise_level","index": 264344,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s03_d05_cutoff","varname": "fHslider280","shortname": "MM_Matrix_s03_d05_cutoff","address": "/modular-subtractive/MM_Matrix_s03_d05_cutoff","index": 263584,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s03_d06_resonance","varname": "fHslider418","shortname": "MM_Matrix_s03_d06_resonance","address": "/modular-subtractive/MM_Matrix_s03_d06_resonance","index": 264148,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s03_d07_filter_env_amt","varname": "fHslider281","shortname": "MM_Matrix_s03_d07_filter_env_amt","address": "/modular-subtractive/MM_Matrix_s03_d07_filter_env_amt","index": 263588,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s03_d08_amp","varname": "fHslider270","shortname": "MM_Matrix_s03_d08_amp","address": "/modular-subtractive/MM_Matrix_s03_d08_amp","index": 263544,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s03_d09_pan","varname": "fHslider204","shortname": "MM_Matrix_s03_d09_pan","address": "/modular-subtractive/MM_Matrix_s03_d09_pan","index": 263264,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s04_d00_pitch","varname": "fHslider517","shortname": "MM_Matrix_s04_d00_pitch","address": "/modular-subtractive/MM_Matrix_s04_d00_pitch","index": 264568,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s04_d01_osc2_detune","varname": "fHslider667","shortname": "MM_Matrix_s04_d01_osc2_detune","address": "/modular-subtractive/MM_Matrix_s04_d01_osc2_detune","index": 265176,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s04_d02_osc3_detune","varname": "fHslider567","shortname": "MM_Matrix_s04_d02_osc3_detune","address": "/modular-subtractive/MM_Matrix_s04_d02_osc3_detune","index": 264768,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s04_d03_osc_mix_bal","varname": "fHslider617","shortname": "MM_Matrix_s04_d03_osc_mix_bal","address": "/modular-subtractive/MM_Matrix_s04_d03_osc_mix_bal","index": 264976,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s04_d04_noise_level","varname": "fHslider466","shortname": "MM_Matrix_s04_d04_noise_level","address": "/modular-subtractive/MM_Matrix_s04_d04_noise_level","index": 264340,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s04_d05_cutoff","varname": "fHslider282","shortname": "MM_Matrix_s04_d05_cutoff","address": "/modular-subtractive/MM_Matrix_s04_d05_cutoff","index": 263592,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s04_d06_resonance","varname": "fHslider417","shortname": "MM_Matrix_s04_d06_resonance","address": "/modular-subtractive/MM_Matrix_s04_d06_resonance","index": 264144,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s04_d07_filter_env_amt","varname": "fHslider283","shortname": "MM_Matrix_s04_d07_filter_env_amt","address": "/modular-subtractive/MM_Matrix_s04_d07_filter_env_amt","index": 263596,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s04_d08_amp","varname": "fHslider269","shortname": "MM_Matrix_s04_d08_amp","address": "/modular-subtractive/MM_Matrix_s04_d08_amp","index": 263540,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s04_d09_pan","varname": "fHslider198","shortname": "MM_Matrix_s04_d09_pan","address": "/modular-subtractive/MM_Matrix_s04_d09_pan","index": 263240,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s05_d00_pitch","varname": "fHslider516","shortname": "MM_Matrix_s05_d00_pitch","address": "/modular-subtractive/MM_Matrix_s05_d00_pitch","index": 264564,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s05_d01_osc2_detune","varname": "fHslider666","shortname": "MM_Matrix_s05_d01_osc2_detune","address": "/modular-subtractive/MM_Matrix_s05_d01_osc2_detune","index": 265172,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s05_d02_osc3_detune","varname": "fHslider566","shortname": "MM_Matrix_s05_d02_osc3_detune","address": "/modular-subtractive/MM_Matrix_s05_d02_osc3_detune","index": 264764,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s05_d03_osc_mix_bal","varname": "fHslider616","shortname": "MM_Matrix_s05_d03_osc_mix_bal","address": "/modular-subtractive/MM_Matrix_s05_d03_osc_mix_bal","index": 264972,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s05_d04_noise_level","varname": "fHslider465","shortname": "MM_Matrix_s05_d04_noise_level","address": "/modular-subtractive/MM_Matrix_s05_d04_noise_level","index": 264336,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s05_d05_cutoff","varname": "fHslider284","shortname": "MM_Matrix_s05_d05_cutoff","address": "/modular-subtractive/MM_Matrix_s05_d05_cutoff","index": 263600,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s05_d06_resonance","varname": "fHslider416","shortname": "MM_Matrix_s05_d06_resonance","address": "/modular-subtractive/MM_Matrix_s05_d06_resonance","index": 264140,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s05_d07_filter_env_amt","varname": "fHslider285","shortname": "MM_Matrix_s05_d07_filter_env_amt","address": "/modular-subtractive/MM_Matrix_s05_d07_filter_env_amt","index": 263604,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s05_d08_amp","varname": "fHslider268","shortname": "MM_Matrix_s05_d08_amp","address": "/modular-subtractive/MM_Matrix_s05_d08_amp","index": 263536,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s05_d09_pan","varname": "fHslider192","shortname": "MM_Matrix_s05_d09_pan","address": "/modular-subtractive/MM_Matrix_s05_d09_pan","index": 263216,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s06_d00_pitch","varname": "fHslider515","shortname": "MM_Matrix_s06_d00_pitch","address": "/modular-subtractive/MM_Matrix_s06_d00_pitch","index": 264560,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s06_d01_osc2_detune","varname": "fHslider665","shortname": "MM_Matrix_s06_d01_osc2_detune","address": "/modular-subtractive/MM_Matrix_s06_d01_osc2_detune","index": 265168,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s06_d02_osc3_detune","varname": "fHslider565","shortname": "MM_Matrix_s06_d02_osc3_detune","address": "/modular-subtractive/MM_Matrix_s06_d02_osc3_detune","index": 264760,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s06_d03_osc_mix_bal","varname": "fHslider615","shortname": "MM_Matrix_s06_d03_osc_mix_bal","address": "/modular-subtractive/MM_Matrix_s06_d03_osc_mix_bal","index": 264968,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s06_d04_noise_level","varname": "fHslider464","shortname": "MM_Matrix_s06_d04_noise_level","address": "/modular-subtractive/MM_Matrix_s06_d04_noise_level","index": 264332,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s06_d05_cutoff","varname": "fHslider286","shortname": "MM_Matrix_s06_d05_cutoff","address": "/modular-subtractive/MM_Matrix_s06_d05_cutoff","index": 263608,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s06_d06_resonance","varname": "fHslider415","shortname": "MM_Matrix_s06_d06_resonance","address": "/modular-subtractive/MM_Matrix_s06_d06_resonance","index": 264136,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s06_d07_filter_env_amt","varname": "fHslider287","shortname": "MM_Matrix_s06_d07_filter_env_amt","address": "/modular-subtractive/MM_Matrix_s06_d07_filter_env_amt","index": 263612,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s06_d08_amp","varname": "fHslider267","shortname": "MM_Matrix_s06_d08_amp","address": "/modular-subtractive/MM_Matrix_s06_d08_amp","index": 263532,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s06_d09_pan","varname": "fHslider186","shortname": "MM_Matrix_s06_d09_pan","address": "/modular-subtractive/MM_Matrix_s06_d09_pan","index": 263192,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s07_d00_pitch","varname": "fHslider514","shortname": "MM_Matrix_s07_d00_pitch","address": "/modular-subtractive/MM_Matrix_s07_d00_pitch","index": 264556,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s07_d01_osc2_detune","varname": "fHslider664","shortname": "MM_Matrix_s07_d01_osc2_detune","address": "/modular-subtractive/MM_Matrix_s07_d01_osc2_detune","index": 265164,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s07_d02_osc3_detune","varname": "fHslider564","shortname": "MM_Matrix_s07_d02_osc3_detune","address": "/modular-subtractive/MM_Matrix_s07_d02_osc3_detune","index": 264756,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s07_d03_osc_mix_bal","varname": "fHslider614","shortname": "MM_Matrix_s07_d03_osc_mix_bal","address": "/modular-subtractive/MM_Matrix_s07_d03_osc_mix_bal","index": 264964,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s07_d04_noise_level","varname": "fHslider463","shortname": "MM_Matrix_s07_d04_noise_level","address": "/modular-subtractive/MM_Matrix_s07_d04_noise_level","index": 264328,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s07_d05_cutoff","varname": "fHslider288","shortname": "MM_Matrix_s07_d05_cutoff","address": "/modular-subtractive/MM_Matrix_s07_d05_cutoff","index": 263616,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s07_d06_resonance","varname": "fHslider414","shortname": "MM_Matrix_s07_d06_resonance","address": "/modular-subtractive/MM_Matrix_s07_d06_resonance","index": 264132,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s07_d07_filter_env_amt","varname": "fHslider289","shortname": "MM_Matrix_s07_d07_filter_env_amt","address": "/modular-subtractive/MM_Matrix_s07_d07_filter_env_amt","index": 263620,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s07_d08_amp","varname": "fHslider266","shortname": "MM_Matrix_s07_d08_amp","address": "/modular-subtractive/MM_Matrix_s07_d08_amp","index": 263528,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s07_d09_pan","varname": "fHslider180","shortname": "MM_Matrix_s07_d09_pan","address": "/modular-subtractive/MM_Matrix_s07_d09_pan","index": 263168,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s08_d00_pitch","varname": "fHslider513","shortname": "MM_Matrix_s08_d00_pitch","address": "/modular-subtractive/MM_Matrix_s08_d00_pitch","index": 264552,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s08_d01_osc2_detune","varname": "fHslider663","shortname": "MM_Matrix_s08_d01_osc2_detune","address": "/modular-subtractive/MM_Matrix_s08_d01_osc2_detune","index": 265160,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s08_d02_osc3_detune","varname": "fHslider563","shortname": "MM_Matrix_s08_d02_osc3_detune","address": "/modular-subtractive/MM_Matrix_s08_d02_osc3_detune","index": 264752,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s08_d03_osc_mix_bal","varname": "fHslider613","shortname": "MM_Matrix_s08_d03_osc_mix_bal","address": "/modular-subtractive/MM_Matrix_s08_d03_osc_mix_bal","index": 264960,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s08_d04_noise_level","varname": "fHslider462","shortname": "MM_Matrix_s08_d04_noise_level","address": "/modular-subtractive/MM_Matrix_s08_d04_noise_level","index": 264324,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s08_d05_cutoff","varname": "fHslider290","shortname": "MM_Matrix_s08_d05_cutoff","address": "/modular-subtractive/MM_Matrix_s08_d05_cutoff","index": 263624,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s08_d06_resonance","varname": "fHslider413","shortname": "MM_Matrix_s08_d06_resonance","address": "/modular-subtractive/MM_Matrix_s08_d06_resonance","index": 264128,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s08_d07_filter_env_amt","varname": "fHslider291","shortname": "MM_Matrix_s08_d07_filter_env_amt","address": "/modular-subtractive/MM_Matrix_s08_d07_filter_env_amt","index": 263628,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s08_d08_amp","varname": "fHslider265","shortname": "MM_Matrix_s08_d08_amp","address": "/modular-subtractive/MM_Matrix_s08_d08_amp","index": 263524,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s08_d09_pan","varname": "fHslider174","shortname": "MM_Matrix_s08_d09_pan","address": "/modular-subtractive/MM_Matrix_s08_d09_pan","index": 263144,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s09_d00_pitch","varname": "fHslider512","shortname": "MM_Matrix_s09_d00_pitch","address": "/modular-subtractive/MM_Matrix_s09_d00_pitch","index": 264548,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s09_d01_osc2_detune","varname": "fHslider662","shortname": "MM_Matrix_s09_d01_osc2_detune","address": "/modular-subtractive/MM_Matrix_s09_d01_osc2_detune","index": 265156,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s09_d02_osc3_detune","varname": "fHslider562","shortname": "MM_Matrix_s09_d02_osc3_detune","address": "/modular-subtractive/MM_Matrix_s09_d02_osc3_detune","index": 264748,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s09_d03_osc_mix_bal","varname": "fHslider612","shortname": "MM_Matrix_s09_d03_osc_mix_bal","address": "/modular-subtractive/MM_Matrix_s09_d03_osc_mix_bal","index": 264956,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s09_d04_noise_level","varname": "fHslider461","shortname": "MM_Matrix_s09_d04_noise_level","address": "/modular-subtractive/MM_Matrix_s09_d04_noise_level","index": 264320,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s09_d05_cutoff","varname": "fHslider292","shortname": "MM_Matrix_s09_d05_cutoff","address": "/modular-subtractive/MM_Matrix_s09_d05_cutoff","index": 263632,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s09_d06_resonance","varname": "fHslider412","shortname": "MM_Matrix_s09_d06_resonance","address": "/modular-subtractive/MM_Matrix_s09_d06_resonance","index": 264124,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s09_d07_filter_env_amt","varname": "fHslider293","shortname": "MM_Matrix_s09_d07_filter_env_amt","address": "/modular-subtractive/MM_Matrix_s09_d07_filter_env_amt","index": 263636,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s09_d08_amp","varname": "fHslider264","shortname": "MM_Matrix_s09_d08_amp","address": "/modular-subtractive/MM_Matrix_s09_d08_amp","index": 263520,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s09_d09_pan","varname": "fHslider168","shortname": "MM_Matrix_s09_d09_pan","address": "/modular-subtractive/MM_Matrix_s09_d09_pan","index": 263120,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s10_d00_pitch","varname": "fHslider511","shortname": "MM_Matrix_s10_d00_pitch","address": "/modular-subtractive/MM_Matrix_s10_d00_pitch","index": 264544,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s10_d01_osc2_detune","varname": "fHslider661","shortname": "MM_Matrix_s10_d01_osc2_detune","address": "/modular-subtractive/MM_Matrix_s10_d01_osc2_detune","index": 265152,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s10_d02_osc3_detune","varname": "fHslider561","shortname": "MM_Matrix_s10_d02_osc3_detune","address": "/modular-subtractive/MM_Matrix_s10_d02_osc3_detune","index": 264744,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s10_d03_osc_mix_bal","varname": "fHslider611","shortname": "MM_Matrix_s10_d03_osc_mix_bal","address": "/modular-subtractive/MM_Matrix_s10_d03_osc_mix_bal","index": 264952,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s10_d04_noise_level","varname": "fHslider460","shortname": "MM_Matrix_s10_d04_noise_level","address": "/modular-subtractive/MM_Matrix_s10_d04_noise_level","index": 264316,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s10_d05_cutoff","varname": "fHslider294","shortname": "MM_Matrix_s10_d05_cutoff","address": "/modular-subtractive/MM_Matrix_s10_d05_cutoff","index": 263640,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s10_d06_resonance","varname": "fHslider411","shortname": "MM_Matrix_s10_d06_resonance","address": "/modular-subtractive/MM_Matrix_s10_d06_resonance","index": 264120,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s10_d07_filter_env_amt","varname": "fHslider295","shortname": "MM_Matrix_s10_d07_filter_env_amt","address": "/modular-subtractive/MM_Matrix_s10_d07_filter_env_amt","index": 263644,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s10_d08_amp","varname": "fHslider263","shortname": "MM_Matrix_s10_d08_amp","address": "/modular-subtractive/MM_Matrix_s10_d08_amp","index": 263516,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s10_d09_pan","varname": "fHslider162","shortname": "MM_Matrix_s10_d09_pan","address": "/modular-subtractive/MM_Matrix_s10_d09_pan","index": 263096,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s11_d00_pitch","varname": "fHslider510","shortname": "MM_Matrix_s11_d00_pitch","address": "/modular-subtractive/MM_Matrix_s11_d00_pitch","index": 264540,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s11_d01_osc2_detune","varname": "fHslider660","shortname": "MM_Matrix_s11_d01_osc2_detune","address": "/modular-subtractive/MM_Matrix_s11_d01_osc2_detune","index": 265148,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s11_d02_osc3_detune","varname": "fHslider560","shortname": "MM_Matrix_s11_d02_osc3_detune","address": "/modular-subtractive/MM_Matrix_s11_d02_osc3_detune","index": 264740,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s11_d03_osc_mix_bal","varname": "fHslider610","shortname": "MM_Matrix_s11_d03_osc_mix_bal","address": "/modular-subtractive/MM_Matrix_s11_d03_osc_mix_bal","index": 264948,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s11_d04_noise_level","varname": "fHslider459","shortname": "MM_Matrix_s11_d04_noise_level","address": "/modular-subtractive/MM_Matrix_s11_d04_noise_level","index": 264312,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s11_d05_cutoff","varname": "fHslider296","shortname": "MM_Matrix_s11_d05_cutoff","address": "/modular-subtractive/MM_Matrix_s11_d05_cutoff","index": 263648,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s11_d06_resonance","varname": "fHslider410","shortname": "MM_Matrix_s11_d06_resonance","address": "/modular-subtractive/MM_Matrix_s11_d06_resonance","index": 264116,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s11_d07_filter_env_amt","varname": "fHslider297","shortname": "MM_Matrix_s11_d07_filter_env_amt","address": "/modular-subtractive/MM_Matrix_s11_d07_filter_env_amt","index": 263652,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s11_d08_amp","varname": "fHslider262","shortname": "MM_Matrix_s11_d08_amp","address": "/modular-subtractive/MM_Matrix_s11_d08_amp","index": 263512,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s11_d09_pan","varname": "fHslider156","shortname": "MM_Matrix_s11_d09_pan","address": "/modular-subtractive/MM_Matrix_s11_d09_pan","index": 263072,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s12_d00_pitch","varname": "fHslider509","shortname": "MM_Matrix_s12_d00_pitch","address": "/modular-subtractive/MM_Matrix_s12_d00_pitch","index": 264536,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s12_d01_osc2_detune","varname": "fHslider659","shortname": "MM_Matrix_s12_d01_osc2_detune","address": "/modular-subtractive/MM_Matrix_s12_d01_osc2_detune","index": 265144,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s12_d02_osc3_detune","varname": "fHslider559","shortname": "MM_Matrix_s12_d02_osc3_detune","address": "/modular-subtractive/MM_Matrix_s12_d02_osc3_detune","index": 264736,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s12_d03_osc_mix_bal","varname": "fHslider609","shortname": "MM_Matrix_s12_d03_osc_mix_bal","address": "/modular-subtractive/MM_Matrix_s12_d03_osc_mix_bal","index": 264944,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s12_d04_noise_level","varname": "fHslider458","shortname": "MM_Matrix_s12_d04_noise_level","address": "/modular-subtractive/MM_Matrix_s12_d04_noise_level","index": 264308,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s12_d05_cutoff","varname": "fHslider298","shortname": "MM_Matrix_s12_d05_cutoff","address": "/modular-subtractive/MM_Matrix_s12_d05_cutoff","index": 263656,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s12_d06_resonance","varname": "fHslider409","shortname": "MM_Matrix_s12_d06_resonance","address": "/modular-subtractive/MM_Matrix_s12_d06_resonance","index": 264112,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s12_d07_filter_env_amt","varname": "fHslider299","shortname": "MM_Matrix_s12_d07_filter_env_amt","address": "/modular-subtractive/MM_Matrix_s12_d07_filter_env_amt","index": 263660,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s12_d08_amp","varname": "fHslider261","shortname": "MM_Matrix_s12_d08_amp","address": "/modular-subtractive/MM_Matrix_s12_d08_amp","index": 263508,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s12_d09_pan","varname": "fHslider150","shortname": "MM_Matrix_s12_d09_pan","address": "/modular-subtractive/MM_Matrix_s12_d09_pan","index": 263048,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s13_d00_pitch","varname": "fHslider508","shortname": "MM_Matrix_s13_d00_pitch","address": "/modular-subtractive/MM_Matrix_s13_d00_pitch","index": 264532,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s13_d01_osc2_detune","varname": "fHslider658","shortname": "MM_Matrix_s13_d01_osc2_detune","address": "/modular-subtractive/MM_Matrix_s13_d01_osc2_detune","index": 265140,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s13_d02_osc3_detune","varname": "fHslider558","shortname": "MM_Matrix_s13_d02_osc3_detune","address": "/modular-subtractive/MM_Matrix_s13_d02_osc3_detune","index": 264732,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s13_d03_osc_mix_bal","varname": "fHslider608","shortname": "MM_Matrix_s13_d03_osc_mix_bal","address": "/modular-subtractive/MM_Matrix_s13_d03_osc_mix_bal","index": 264940,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s13_d04_noise_level","varname": "fHslider457","shortname": "MM_Matrix_s13_d04_noise_level","address": "/modular-subtractive/MM_Matrix_s13_d04_noise_level","index": 264304,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s13_d05_cutoff","varname": "fHslider300","shortname": "MM_Matrix_s13_d05_cutoff","address": "/modular-subtractive/MM_Matrix_s13_d05_cutoff","index": 263664,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s13_d06_resonance","varname": "fHslider408","shortname": "MM_Matrix_s13_d06_resonance","address": "/modular-subtractive/MM_Matrix_s13_d06_resonance","index": 264108,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s13_d07_filter_env_amt","varname": "fHslider301","shortname": "MM_Matrix_s13_d07_filter_env_amt","address": "/modular-subtractive/MM_Matrix_s13_d07_filter_env_amt","index": 263668,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s13_d08_amp","varname": "fHslider260","shortname": "MM_Matrix_s13_d08_amp","address": "/modular-subtractive/MM_Matrix_s13_d08_amp","index": 263504,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s13_d09_pan","varname": "fHslider144","shortname": "MM_Matrix_s13_d09_pan","address": "/modular-subtractive/MM_Matrix_s13_d09_pan","index": 263024,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s14_d00_pitch","varname": "fHslider507","shortname": "MM_Matrix_s14_d00_pitch","address": "/modular-subtractive/MM_Matrix_s14_d00_pitch","index": 264528,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s14_d01_osc2_detune","varname": "fHslider657","shortname": "MM_Matrix_s14_d01_osc2_detune","address": "/modular-subtractive/MM_Matrix_s14_d01_osc2_detune","index": 265136,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s14_d02_osc3_detune","varname": "fHslider557","shortname": "MM_Matrix_s14_d02_osc3_detune","address": "/modular-subtractive/MM_Matrix_s14_d02_osc3_detune","index": 264728,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s14_d03_osc_mix_bal","varname": "fHslider607","shortname": "MM_Matrix_s14_d03_osc_mix_bal","address": "/modular-subtractive/MM_Matrix_s14_d03_osc_mix_bal","index": 264936,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s14_d04_noise_level","varname": "fHslider456","shortname": "MM_Matrix_s14_d04_noise_level","address": "/modular-subtractive/MM_Matrix_s14_d04_noise_level","index": 264300,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s14_d05_cutoff","varname": "fHslider302","shortname": "MM_Matrix_s14_d05_cutoff","address": "/modular-subtractive/MM_Matrix_s14_d05_cutoff","index": 263672,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s14_d06_resonance","varname": "fHslider407","shortname": "MM_Matrix_s14_d06_resonance","address": "/modular-subtractive/MM_Matrix_s14_d06_resonance","index": 264104,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s14_d07_filter_env_amt","varname": "fHslider303","shortname": "MM_Matrix_s14_d07_filter_env_amt","address": "/modular-subtractive/MM_Matrix_s14_d07_filter_env_amt","index": 263676,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s14_d08_amp","varname": "fHslider259","shortname": "MM_Matrix_s14_d08_amp","address": "/modular-subtractive/MM_Matrix_s14_d08_amp","index": 263500,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s14_d09_pan","varname": "fHslider138","shortname": "MM_Matrix_s14_d09_pan","address": "/modular-subtractive/MM_Matrix_s14_d09_pan","index": 263000,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s15_d00_pitch","varname": "fHslider506","shortname": "MM_Matrix_s15_d00_pitch","address": "/modular-subtractive/MM_Matrix_s15_d00_pitch","index": 264524,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s15_d01_osc2_detune","varname": "fHslider656","shortname": "MM_Matrix_s15_d01_osc2_detune","address": "/modular-subtractive/MM_Matrix_s15_d01_osc2_detune","index": 265132,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s15_d02_osc3_detune","varname": "fHslider556","shortname": "MM_Matrix_s15_d02_osc3_detune","address": "/modular-subtractive/MM_Matrix_s15_d02_osc3_detune","index": 264724,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s15_d03_osc_mix_bal","varname": "fHslider606","shortname": "MM_Matrix_s15_d03_osc_mix_bal","address": "/modular-subtractive/MM_Matrix_s15_d03_osc_mix_bal","index": 264932,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s15_d04_noise_level","varname": "fHslider455","shortname": "MM_Matrix_s15_d04_noise_level","address": "/modular-subtractive/MM_Matrix_s15_d04_noise_level","index": 264296,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s15_d05_cutoff","varname": "fHslider304","shortname": "MM_Matrix_s15_d05_cutoff","address": "/modular-subtractive/MM_Matrix_s15_d05_cutoff","index": 263680,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s15_d06_resonance","varname": "fHslider406","shortname": "MM_Matrix_s15_d06_resonance","address": "/modular-subtractive/MM_Matrix_s15_d06_resonance","index": 264100,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s15_d07_filter_env_amt","varname": "fHslider305","shortname": "MM_Matrix_s15_d07_filter_env_amt","address": "/modular-subtractive/MM_Matrix_s15_d07_filter_env_amt","index": 263684,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s15_d08_amp","varname": "fHslider258","shortname": "MM_Matrix_s15_d08_amp","address": "/modular-subtractive/MM_Matrix_s15_d08_amp","index": 263496,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s15_d09_pan","varname": "fHslider132","shortname": "MM_Matrix_s15_d09_pan","address": "/modular-subtractive/MM_Matrix_s15_d09_pan","index": 262976,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s16_d00_pitch","varname": "fHslider505","shortname": "MM_Matrix_s16_d00_pitch","address": "/modular-subtractive/MM_Matrix_s16_d00_pitch","index": 264520,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s16_d01_osc2_detune","varname": "fHslider655","shortname": "MM_Matrix_s16_d01_osc2_detune","address": "/modular-subtractive/MM_Matrix_s16_d01_osc2_detune","index": 265128,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s16_d02_osc3_detune","varname": "fHslider555","shortname": "MM_Matrix_s16_d02_osc3_detune","address": "/modular-subtractive/MM_Matrix_s16_d02_osc3_detune","index": 264720,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s16_d03_osc_mix_bal","varname": "fHslider605","shortname": "MM_Matrix_s16_d03_osc_mix_bal","address": "/modular-subtractive/MM_Matrix_s16_d03_osc_mix_bal","index": 264928,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s16_d04_noise_level","varname": "fHslider454","shortname": "MM_Matrix_s16_d04_noise_level","address": "/modular-subtractive/MM_Matrix_s16_d04_noise_level","index": 264292,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s16_d05_cutoff","varname": "fHslider306","shortname": "MM_Matrix_s16_d05_cutoff","address": "/modular-subtractive/MM_Matrix_s16_d05_cutoff","index": 263688,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s16_d06_resonance","varname": "fHslider405","shortname": "MM_Matrix_s16_d06_resonance","address": "/modular-subtractive/MM_Matrix_s16_d06_resonance","index": 264096,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s16_d07_filter_env_amt","varname": "fHslider307","shortname": "MM_Matrix_s16_d07_filter_env_amt","address": "/modular-subtractive/MM_Matrix_s16_d07_filter_env_amt","index": 263692,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s16_d08_amp","varname": "fHslider257","shortname": "MM_Matrix_s16_d08_amp","address": "/modular-subtractive/MM_Matrix_s16_d08_amp","index": 263492,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s16_d09_pan","varname": "fHslider126","shortname": "MM_Matrix_s16_d09_pan","address": "/modular-subtractive/MM_Matrix_s16_d09_pan","index": 262924,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s17_d00_pitch","varname": "fHslider504","shortname": "MM_Matrix_s17_d00_pitch","address": "/modular-subtractive/MM_Matrix_s17_d00_pitch","index": 264516,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s17_d01_osc2_detune","varname": "fHslider654","shortname": "MM_Matrix_s17_d01_osc2_detune","address": "/modular-subtractive/MM_Matrix_s17_d01_osc2_detune","index": 265124,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s17_d02_osc3_detune","varname": "fHslider554","shortname": "MM_Matrix_s17_d02_osc3_detune","address": "/modular-subtractive/MM_Matrix_s17_d02_osc3_detune","index": 264716,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s17_d03_osc_mix_bal","varname": "fHslider604","shortname": "MM_Matrix_s17_d03_osc_mix_bal","address": "/modular-subtractive/MM_Matrix_s17_d03_osc_mix_bal","index": 264924,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s17_d04_noise_level","varname": "fHslider453","shortname": "MM_Matrix_s17_d04_noise_level","address": "/modular-subtractive/MM_Matrix_s17_d04_noise_level","index": 264288,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s17_d05_cutoff","varname": "fHslider308","shortname": "MM_Matrix_s17_d05_cutoff","address": "/modular-subtractive/MM_Matrix_s17_d05_cutoff","index": 263696,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s17_d06_resonance","varname": "fHslider404","shortname": "MM_Matrix_s17_d06_resonance","address": "/modular-subtractive/MM_Matrix_s17_d06_resonance","index": 264092,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s17_d07_filter_env_amt","varname": "fHslider309","shortname": "MM_Matrix_s17_d07_filter_env_amt","address": "/modular-subtractive/MM_Matrix_s17_d07_filter_env_amt","index": 263700,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s17_d08_amp","varname": "fHslider256","shortname": "MM_Matrix_s17_d08_amp","address": "/modular-subtractive/MM_Matrix_s17_d08_amp","index": 263488,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s17_d09_pan","varname": "fHslider122","shortname": "MM_Matrix_s17_d09_pan","address": "/modular-subtractive/MM_Matrix_s17_d09_pan","index": 262900,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s18_d00_pitch","varname": "fHslider503","shortname": "MM_Matrix_s18_d00_pitch","address": "/modular-subtractive/MM_Matrix_s18_d00_pitch","index": 264512,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s18_d01_osc2_detune","varname": "fHslider653","shortname": "MM_Matrix_s18_d01_osc2_detune","address": "/modular-subtractive/MM_Matrix_s18_d01_osc2_detune","index": 265120,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s18_d02_osc3_detune","varname": "fHslider553","shortname": "MM_Matrix_s18_d02_osc3_detune","address": "/modular-subtractive/MM_Matrix_s18_d02_osc3_detune","index": 264712,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s18_d03_osc_mix_bal","varname": "fHslider603","shortname": "MM_Matrix_s18_d03_osc_mix_bal","address": "/modular-subtractive/MM_Matrix_s18_d03_osc_mix_bal","index": 264920,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s18_d04_noise_level","varname": "fHslider452","shortname": "MM_Matrix_s18_d04_noise_level","address": "/modular-subtractive/MM_Matrix_s18_d04_noise_level","index": 264284,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s18_d05_cutoff","varname": "fHslider310","shortname": "MM_Matrix_s18_d05_cutoff","address": "/modular-subtractive/MM_Matrix_s18_d05_cutoff","index": 263704,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s18_d06_resonance","varname": "fHslider403","shortname": "MM_Matrix_s18_d06_resonance","address": "/modular-subtractive/MM_Matrix_s18_d06_resonance","index": 264088,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s18_d07_filter_env_amt","varname": "fHslider311","shortname": "MM_Matrix_s18_d07_filter_env_amt","address": "/modular-subtractive/MM_Matrix_s18_d07_filter_env_amt","index": 263708,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s18_d08_amp","varname": "fHslider255","shortname": "MM_Matrix_s18_d08_amp","address": "/modular-subtractive/MM_Matrix_s18_d08_amp","index": 263484,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s18_d09_pan","varname": "fHslider118","shortname": "MM_Matrix_s18_d09_pan","address": "/modular-subtractive/MM_Matrix_s18_d09_pan","index": 262876,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s19_d00_pitch","varname": "fHslider502","shortname": "MM_Matrix_s19_d00_pitch","address": "/modular-subtractive/MM_Matrix_s19_d00_pitch","index": 264508,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s19_d01_osc2_detune","varname": "fHslider652","shortname": "MM_Matrix_s19_d01_osc2_detune","address": "/modular-subtractive/MM_Matrix_s19_d01_osc2_detune","index": 265116,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s19_d02_osc3_detune","varname": "fHslider552","shortname": "MM_Matrix_s19_d02_osc3_detune","address": "/modular-subtractive/MM_Matrix_s19_d02_osc3_detune","index": 264708,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s19_d03_osc_mix_bal","varname": "fHslider602","shortname": "MM_Matrix_s19_d03_osc_mix_bal","address": "/modular-subtractive/MM_Matrix_s19_d03_osc_mix_bal","index": 264916,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s19_d04_noise_level","varname": "fHslider451","shortname": "MM_Matrix_s19_d04_noise_level","address": "/modular-subtractive/MM_Matrix_s19_d04_noise_level","index": 264280,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s19_d05_cutoff","varname": "fHslider312","shortname": "MM_Matrix_s19_d05_cutoff","address": "/modular-subtractive/MM_Matrix_s19_d05_cutoff","index": 263712,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s19_d06_resonance","varname": "fHslider402","shortname": "MM_Matrix_s19_d06_resonance","address": "/modular-subtractive/MM_Matrix_s19_d06_resonance","index": 264084,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s19_d07_filter_env_amt","varname": "fHslider313","shortname": "MM_Matrix_s19_d07_filter_env_amt","address": "/modular-subtractive/MM_Matrix_s19_d07_filter_env_amt","index": 263716,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s19_d08_amp","varname": "fHslider254","shortname": "MM_Matrix_s19_d08_amp","address": "/modular-subtractive/MM_Matrix_s19_d08_amp","index": 263480,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s19_d09_pan","varname": "fHslider114","shortname": "MM_Matrix_s19_d09_pan","address": "/modular-subtractive/MM_Matrix_s19_d09_pan","index": 262852,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s20_d00_pitch","varname": "fHslider501","shortname": "MM_Matrix_s20_d00_pitch","address": "/modular-subtractive/MM_Matrix_s20_d00_pitch","index": 264504,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s20_d01_osc2_detune","varname": "fHslider651","shortname": "MM_Matrix_s20_d01_osc2_detune","address": "/modular-subtractive/MM_Matrix_s20_d01_osc2_detune","index": 265112,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s20_d02_osc3_detune","varname": "fHslider551","shortname": "MM_Matrix_s20_d02_osc3_detune","address": "/modular-subtractive/MM_Matrix_s20_d02_osc3_detune","index": 264704,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s20_d03_osc_mix_bal","varname": "fHslider601","shortname": "MM_Matrix_s20_d03_osc_mix_bal","address": "/modular-subtractive/MM_Matrix_s20_d03_osc_mix_bal","index": 264912,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s20_d04_noise_level","varname": "fHslider450","shortname": "MM_Matrix_s20_d04_noise_level","address": "/modular-subtractive/MM_Matrix_s20_d04_noise_level","index": 264276,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s20_d05_cutoff","varname": "fHslider314","shortname": "MM_Matrix_s20_d05_cutoff","address": "/modular-subtractive/MM_Matrix_s20_d05_cutoff","index": 263720,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s20_d06_resonance","varname": "fHslider401","shortname": "MM_Matrix_s20_d06_resonance","address": "/modular-subtractive/MM_Matrix_s20_d06_resonance","index": 264080,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s20_d07_filter_env_amt","varname": "fHslider315","shortname": "MM_Matrix_s20_d07_filter_env_amt","address": "/modular-subtractive/MM_Matrix_s20_d07_filter_env_amt","index": 263724,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s20_d08_amp","varname": "fHslider253","shortname": "MM_Matrix_s20_d08_amp","address": "/modular-subtractive/MM_Matrix_s20_d08_amp","index": 263476,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s20_d09_pan","varname": "fHslider110","shortname": "MM_Matrix_s20_d09_pan","address": "/modular-subtractive/MM_Matrix_s20_d09_pan","index": 262828,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s21_d00_pitch","varname": "fHslider500","shortname": "MM_Matrix_s21_d00_pitch","address": "/modular-subtractive/MM_Matrix_s21_d00_pitch","index": 264500,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s21_d01_osc2_detune","varname": "fHslider650","shortname": "MM_Matrix_s21_d01_osc2_detune","address": "/modular-subtractive/MM_Matrix_s21_d01_osc2_detune","index": 265108,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s21_d02_osc3_detune","varname": "fHslider550","shortname": "MM_Matrix_s21_d02_osc3_detune","address": "/modular-subtractive/MM_Matrix_s21_d02_osc3_detune","index": 264700,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s21_d03_osc_mix_bal","varname": "fHslider600","shortname": "MM_Matrix_s21_d03_osc_mix_bal","address": "/modular-subtractive/MM_Matrix_s21_d03_osc_mix_bal","index": 264908,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s21_d04_noise_level","varname": "fHslider449","shortname": "MM_Matrix_s21_d04_noise_level","address": "/modular-subtractive/MM_Matrix_s21_d04_noise_level","index": 264272,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s21_d05_cutoff","varname": "fHslider316","shortname": "MM_Matrix_s21_d05_cutoff","address": "/modular-subtractive/MM_Matrix_s21_d05_cutoff","index": 263728,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s21_d06_resonance","varname": "fHslider400","shortname": "MM_Matrix_s21_d06_resonance","address": "/modular-subtractive/MM_Matrix_s21_d06_resonance","index": 264076,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s21_d07_filter_env_amt","varname": "fHslider317","shortname": "MM_Matrix_s21_d07_filter_env_amt","address": "/modular-subtractive/MM_Matrix_s21_d07_filter_env_amt","index": 263732,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s21_d08_amp","varname": "fHslider252","shortname": "MM_Matrix_s21_d08_amp","address": "/modular-subtractive/MM_Matrix_s21_d08_amp","index": 263472,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s21_d09_pan","varname": "fHslider106","shortname": "MM_Matrix_s21_d09_pan","address": "/modular-subtractive/MM_Matrix_s21_d09_pan","index": 262804,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s22_d00_pitch","varname": "fHslider499","shortname": "MM_Matrix_s22_d00_pitch","address": "/modular-subtractive/MM_Matrix_s22_d00_pitch","index": 264496,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s22_d01_osc2_detune","varname": "fHslider649","shortname": "MM_Matrix_s22_d01_osc2_detune","address": "/modular-subtractive/MM_Matrix_s22_d01_osc2_detune","index": 265104,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s22_d02_osc3_detune","varname": "fHslider549","shortname": "MM_Matrix_s22_d02_osc3_detune","address": "/modular-subtractive/MM_Matrix_s22_d02_osc3_detune","index": 264696,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s22_d03_osc_mix_bal","varname": "fHslider599","shortname": "MM_Matrix_s22_d03_osc_mix_bal","address": "/modular-subtractive/MM_Matrix_s22_d03_osc_mix_bal","index": 264904,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s22_d04_noise_level","varname": "fHslider448","shortname": "MM_Matrix_s22_d04_noise_level","address": "/modular-subtractive/MM_Matrix_s22_d04_noise_level","index": 264268,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s22_d05_cutoff","varname": "fHslider318","shortname": "MM_Matrix_s22_d05_cutoff","address": "/modular-subtractive/MM_Matrix_s22_d05_cutoff","index": 263736,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s22_d06_resonance","varname": "fHslider399","shortname": "MM_Matrix_s22_d06_resonance","address": "/modular-subtractive/MM_Matrix_s22_d06_resonance","index": 264072,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s22_d07_filter_env_amt","varname": "fHslider319","shortname": "MM_Matrix_s22_d07_filter_env_amt","address": "/modular-subtractive/MM_Matrix_s22_d07_filter_env_amt","index": 263740,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s22_d08_amp","varname": "fHslider251","shortname": "MM_Matrix_s22_d08_amp","address": "/modular-subtractive/MM_Matrix_s22_d08_amp","index": 263468,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s22_d09_pan","varname": "fHslider102","shortname": "MM_Matrix_s22_d09_pan","address": "/modular-subtractive/MM_Matrix_s22_d09_pan","index": 262780,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s23_d00_pitch","varname": "fHslider498","shortname": "MM_Matrix_s23_d00_pitch","address": "/modular-subtractive/MM_Matrix_s23_d00_pitch","index": 264492,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s23_d01_osc2_detune","varname": "fHslider648","shortname": "MM_Matrix_s23_d01_osc2_detune","address": "/modular-subtractive/MM_Matrix_s23_d01_osc2_detune","index": 265100,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s23_d02_osc3_detune","varname": "fHslider548","shortname": "MM_Matrix_s23_d02_osc3_detune","address": "/modular-subtractive/MM_Matrix_s23_d02_osc3_detune","index": 264692,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s23_d03_osc_mix_bal","varname": "fHslider598","shortname": "MM_Matrix_s23_d03_osc_mix_bal","address": "/modular-subtractive/MM_Matrix_s23_d03_osc_mix_bal","index": 264900,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s23_d04_noise_level","varname": "fHslider447","shortname": "MM_Matrix_s23_d04_noise_level","address": "/modular-subtractive/MM_Matrix_s23_d04_noise_level","index": 264264,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s23_d05_cutoff","varname": "fHslider320","shortname": "MM_Matrix_s23_d05_cutoff","address": "/modular-subtractive/MM_Matrix_s23_d05_cutoff","index": 263744,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s23_d06_resonance","varname": "fHslider398","shortname": "MM_Matrix_s23_d06_resonance","address": "/modular-subtractive/MM_Matrix_s23_d06_resonance","index": 264068,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s23_d07_filter_env_amt","varname": "fHslider321","shortname": "MM_Matrix_s23_d07_filter_env_amt","address": "/modular-subtractive/MM_Matrix_s23_d07_filter_env_amt","index": 263748,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s23_d08_amp","varname": "fHslider250","shortname": "MM_Matrix_s23_d08_amp","address": "/modular-subtractive/MM_Matrix_s23_d08_amp","index": 263464,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s23_d09_pan","varname": "fHslider98","shortname": "MM_Matrix_s23_d09_pan","address": "/modular-subtractive/MM_Matrix_s23_d09_pan","index": 262756,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s24_d00_pitch","varname": "fHslider497","shortname": "MM_Matrix_s24_d00_pitch","address": "/modular-subtractive/MM_Matrix_s24_d00_pitch","index": 264488,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s24_d01_osc2_detune","varname": "fHslider647","shortname": "MM_Matrix_s24_d01_osc2_detune","address": "/modular-subtractive/MM_Matrix_s24_d01_osc2_detune","index": 265096,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s24_d02_osc3_detune","varname": "fHslider547","shortname": "MM_Matrix_s24_d02_osc3_detune","address": "/modular-subtractive/MM_Matrix_s24_d02_osc3_detune","index": 264688,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s24_d03_osc_mix_bal","varname": "fHslider597","shortname": "MM_Matrix_s24_d03_osc_mix_bal","address": "/modular-subtractive/MM_Matrix_s24_d03_osc_mix_bal","index": 264896,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s24_d04_noise_level","varname": "fHslider446","shortname": "MM_Matrix_s24_d04_noise_level","address": "/modular-subtractive/MM_Matrix_s24_d04_noise_level","index": 264260,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s24_d05_cutoff","varname": "fHslider322","shortname": "MM_Matrix_s24_d05_cutoff","address": "/modular-subtractive/MM_Matrix_s24_d05_cutoff","index": 263752,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s24_d06_resonance","varname": "fHslider397","shortname": "MM_Matrix_s24_d06_resonance","address": "/modular-subtractive/MM_Matrix_s24_d06_resonance","index": 264064,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s24_d07_filter_env_amt","varname": "fHslider323","shortname": "MM_Matrix_s24_d07_filter_env_amt","address": "/modular-subtractive/MM_Matrix_s24_d07_filter_env_amt","index": 263756,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s24_d08_amp","varname": "fHslider249","shortname": "MM_Matrix_s24_d08_amp","address": "/modular-subtractive/MM_Matrix_s24_d08_amp","index": 263460,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s24_d09_pan","varname": "fHslider94","shortname": "MM_Matrix_s24_d09_pan","address": "/modular-subtractive/MM_Matrix_s24_d09_pan","index": 262732,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s25_d00_pitch","varname": "fHslider496","shortname": "MM_Matrix_s25_d00_pitch","address": "/modular-subtractive/MM_Matrix_s25_d00_pitch","index": 264484,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s25_d01_osc2_detune","varname": "fHslider646","shortname": "MM_Matrix_s25_d01_osc2_detune","address": "/modular-subtractive/MM_Matrix_s25_d01_osc2_detune","index": 265092,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s25_d02_osc3_detune","varname": "fHslider546","shortname": "MM_Matrix_s25_d02_osc3_detune","address": "/modular-subtractive/MM_Matrix_s25_d02_osc3_detune","index": 264684,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s25_d03_osc_mix_bal","varname": "fHslider596","shortname": "MM_Matrix_s25_d03_osc_mix_bal","address": "/modular-subtractive/MM_Matrix_s25_d03_osc_mix_bal","index": 264892,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s25_d04_noise_level","varname": "fHslider445","shortname": "MM_Matrix_s25_d04_noise_level","address": "/modular-subtractive/MM_Matrix_s25_d04_noise_level","index": 264256,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s25_d05_cutoff","varname": "fHslider324","shortname": "MM_Matrix_s25_d05_cutoff","address": "/modular-subtractive/MM_Matrix_s25_d05_cutoff","index": 263760,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s25_d06_resonance","varname": "fHslider396","shortname": "MM_Matrix_s25_d06_resonance","address": "/modular-subtractive/MM_Matrix_s25_d06_resonance","index": 264060,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s25_d07_filter_env_amt","varname": "fHslider325","shortname": "MM_Matrix_s25_d07_filter_env_amt","address": "/modular-subtractive/MM_Matrix_s25_d07_filter_env_amt","index": 263764,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s25_d08_amp","varname": "fHslider248","shortname": "MM_Matrix_s25_d08_amp","address": "/modular-subtractive/MM_Matrix_s25_d08_amp","index": 263456,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s25_d09_pan","varname": "fHslider90","shortname": "MM_Matrix_s25_d09_pan","address": "/modular-subtractive/MM_Matrix_s25_d09_pan","index": 262708,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s26_d00_pitch","varname": "fHslider495","shortname": "MM_Matrix_s26_d00_pitch","address": "/modular-subtractive/MM_Matrix_s26_d00_pitch","index": 264480,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s26_d01_osc2_detune","varname": "fHslider645","shortname": "MM_Matrix_s26_d01_osc2_detune","address": "/modular-subtractive/MM_Matrix_s26_d01_osc2_detune","index": 265088,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s26_d02_osc3_detune","varname": "fHslider545","shortname": "MM_Matrix_s26_d02_osc3_detune","address": "/modular-subtractive/MM_Matrix_s26_d02_osc3_detune","index": 264680,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s26_d03_osc_mix_bal","varname": "fHslider595","shortname": "MM_Matrix_s26_d03_osc_mix_bal","address": "/modular-subtractive/MM_Matrix_s26_d03_osc_mix_bal","index": 264888,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s26_d04_noise_level","varname": "fHslider444","shortname": "MM_Matrix_s26_d04_noise_level","address": "/modular-subtractive/MM_Matrix_s26_d04_noise_level","index": 264252,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s26_d05_cutoff","varname": "fHslider326","shortname": "MM_Matrix_s26_d05_cutoff","address": "/modular-subtractive/MM_Matrix_s26_d05_cutoff","index": 263768,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s26_d06_resonance","varname": "fHslider395","shortname": "MM_Matrix_s26_d06_resonance","address": "/modular-subtractive/MM_Matrix_s26_d06_resonance","index": 264056,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s26_d07_filter_env_amt","varname": "fHslider327","shortname": "MM_Matrix_s26_d07_filter_env_amt","address": "/modular-subtractive/MM_Matrix_s26_d07_filter_env_amt","index": 263772,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s26_d08_amp","varname": "fHslider247","shortname": "MM_Matrix_s26_d08_amp","address": "/modular-subtractive/MM_Matrix_s26_d08_amp","index": 263452,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s26_d09_pan","varname": "fHslider86","shortname": "MM_Matrix_s26_d09_pan","address": "/modular-subtractive/MM_Matrix_s26_d09_pan","index": 262684,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s27_d00_pitch","varname": "fHslider494","shortname": "MM_Matrix_s27_d00_pitch","address": "/modular-subtractive/MM_Matrix_s27_d00_pitch","index": 264476,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s27_d01_osc2_detune","varname": "fHslider644","shortname": "MM_Matrix_s27_d01_osc2_detune","address": "/modular-subtractive/MM_Matrix_s27_d01_osc2_detune","index": 265084,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s27_d02_osc3_detune","varname": "fHslider544","shortname": "MM_Matrix_s27_d02_osc3_detune","address": "/modular-subtractive/MM_Matrix_s27_d02_osc3_detune","index": 264676,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s27_d03_osc_mix_bal","varname": "fHslider594","shortname": "MM_Matrix_s27_d03_osc_mix_bal","address": "/modular-subtractive/MM_Matrix_s27_d03_osc_mix_bal","index": 264884,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s27_d04_noise_level","varname": "fHslider443","shortname": "MM_Matrix_s27_d04_noise_level","address": "/modular-subtractive/MM_Matrix_s27_d04_noise_level","index": 264248,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s27_d05_cutoff","varname": "fHslider328","shortname": "MM_Matrix_s27_d05_cutoff","address": "/modular-subtractive/MM_Matrix_s27_d05_cutoff","index": 263776,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s27_d06_resonance","varname": "fHslider394","shortname": "MM_Matrix_s27_d06_resonance","address": "/modular-subtractive/MM_Matrix_s27_d06_resonance","index": 264052,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s27_d07_filter_env_amt","varname": "fHslider329","shortname": "MM_Matrix_s27_d07_filter_env_amt","address": "/modular-subtractive/MM_Matrix_s27_d07_filter_env_amt","index": 263780,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s27_d08_amp","varname": "fHslider246","shortname": "MM_Matrix_s27_d08_amp","address": "/modular-subtractive/MM_Matrix_s27_d08_amp","index": 263448,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s27_d09_pan","varname": "fHslider82","shortname": "MM_Matrix_s27_d09_pan","address": "/modular-subtractive/MM_Matrix_s27_d09_pan","index": 262660,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s28_d00_pitch","varname": "fHslider493","shortname": "MM_Matrix_s28_d00_pitch","address": "/modular-subtractive/MM_Matrix_s28_d00_pitch","index": 264472,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s28_d01_osc2_detune","varname": "fHslider643","shortname": "MM_Matrix_s28_d01_osc2_detune","address": "/modular-subtractive/MM_Matrix_s28_d01_osc2_detune","index": 265080,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s28_d02_osc3_detune","varname": "fHslider543","shortname": "MM_Matrix_s28_d02_osc3_detune","address": "/modular-subtractive/MM_Matrix_s28_d02_osc3_detune","index": 264672,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s28_d03_osc_mix_bal","varname": "fHslider593","shortname": "MM_Matrix_s28_d03_osc_mix_bal","address": "/modular-subtractive/MM_Matrix_s28_d03_osc_mix_bal","index": 264880,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s28_d04_noise_level","varname": "fHslider442","shortname": "MM_Matrix_s28_d04_noise_level","address": "/modular-subtractive/MM_Matrix_s28_d04_noise_level","index": 264244,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s28_d05_cutoff","varname": "fHslider330","shortname": "MM_Matrix_s28_d05_cutoff","address": "/modular-subtractive/MM_Matrix_s28_d05_cutoff","index": 263784,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s28_d06_resonance","varname": "fHslider393","shortname": "MM_Matrix_s28_d06_resonance","address": "/modular-subtractive/MM_Matrix_s28_d06_resonance","index": 264048,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s28_d07_filter_env_amt","varname": "fHslider331","shortname": "MM_Matrix_s28_d07_filter_env_amt","address": "/modular-subtractive/MM_Matrix_s28_d07_filter_env_amt","index": 263788,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s28_d08_amp","varname": "fHslider245","shortname": "MM_Matrix_s28_d08_amp","address": "/modular-subtractive/MM_Matrix_s28_d08_amp","index": 263444,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s28_d09_pan","varname": "fHslider78","shortname": "MM_Matrix_s28_d09_pan","address": "/modular-subtractive/MM_Matrix_s28_d09_pan","index": 262636,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s29_d00_pitch","varname": "fHslider492","shortname": "MM_Matrix_s29_d00_pitch","address": "/modular-subtractive/MM_Matrix_s29_d00_pitch","index": 264468,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s29_d01_osc2_detune","varname": "fHslider642","shortname": "MM_Matrix_s29_d01_osc2_detune","address": "/modular-subtractive/MM_Matrix_s29_d01_osc2_detune","index": 265076,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s29_d02_osc3_detune","varname": "fHslider542","shortname": "MM_Matrix_s29_d02_osc3_detune","address": "/modular-subtractive/MM_Matrix_s29_d02_osc3_detune","index": 264668,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s29_d03_osc_mix_bal","varname": "fHslider592","shortname": "MM_Matrix_s29_d03_osc_mix_bal","address": "/modular-subtractive/MM_Matrix_s29_d03_osc_mix_bal","index": 264876,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s29_d04_noise_level","varname": "fHslider441","shortname": "MM_Matrix_s29_d04_noise_level","address": "/modular-subtractive/MM_Matrix_s29_d04_noise_level","index": 264240,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s29_d05_cutoff","varname": "fHslider332","shortname": "MM_Matrix_s29_d05_cutoff","address": "/modular-subtractive/MM_Matrix_s29_d05_cutoff","index": 263792,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s29_d06_resonance","varname": "fHslider392","shortname": "MM_Matrix_s29_d06_resonance","address": "/modular-subtractive/MM_Matrix_s29_d06_resonance","index": 264044,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s29_d07_filter_env_amt","varname": "fHslider333","shortname": "MM_Matrix_s29_d07_filter_env_amt","address": "/modular-subtractive/MM_Matrix_s29_d07_filter_env_amt","index": 263796,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s29_d08_amp","varname": "fHslider244","shortname": "MM_Matrix_s29_d08_amp","address": "/modular-subtractive/MM_Matrix_s29_d08_amp","index": 263440,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s29_d09_pan","varname": "fHslider74","shortname": "MM_Matrix_s29_d09_pan","address": "/modular-subtractive/MM_Matrix_s29_d09_pan","index": 262612,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s30_d00_pitch","varname": "fHslider491","shortname": "MM_Matrix_s30_d00_pitch","address": "/modular-subtractive/MM_Matrix_s30_d00_pitch","index": 264464,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s30_d01_osc2_detune","varname": "fHslider641","shortname": "MM_Matrix_s30_d01_osc2_detune","address": "/modular-subtractive/MM_Matrix_s30_d01_osc2_detune","index": 265072,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s30_d02_osc3_detune","varname": "fHslider541","shortname": "MM_Matrix_s30_d02_osc3_detune","address": "/modular-subtractive/MM_Matrix_s30_d02_osc3_detune","index": 264664,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s30_d03_osc_mix_bal","varname": "fHslider591","shortname": "MM_Matrix_s30_d03_osc_mix_bal","address": "/modular-subtractive/MM_Matrix_s30_d03_osc_mix_bal","index": 264872,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s30_d04_noise_level","varname": "fHslider440","shortname": "MM_Matrix_s30_d04_noise_level","address": "/modular-subtractive/MM_Matrix_s30_d04_noise_level","index": 264236,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s30_d05_cutoff","varname": "fHslider334","shortname": "MM_Matrix_s30_d05_cutoff","address": "/modular-subtractive/MM_Matrix_s30_d05_cutoff","index": 263800,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s30_d06_resonance","varname": "fHslider391","shortname": "MM_Matrix_s30_d06_resonance","address": "/modular-subtractive/MM_Matrix_s30_d06_resonance","index": 264040,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s30_d07_filter_env_amt","varname": "fHslider335","shortname": "MM_Matrix_s30_d07_filter_env_amt","address": "/modular-subtractive/MM_Matrix_s30_d07_filter_env_amt","index": 263804,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s30_d08_amp","varname": "fHslider243","shortname": "MM_Matrix_s30_d08_amp","address": "/modular-subtractive/MM_Matrix_s30_d08_amp","index": 263436,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s30_d09_pan","varname": "fHslider70","shortname": "MM_Matrix_s30_d09_pan","address": "/modular-subtractive/MM_Matrix_s30_d09_pan","index": 262588,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s31_d00_pitch","varname": "fHslider490","shortname": "MM_Matrix_s31_d00_pitch","address": "/modular-subtractive/MM_Matrix_s31_d00_pitch","index": 264460,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s31_d01_osc2_detune","varname": "fHslider640","shortname": "MM_Matrix_s31_d01_osc2_detune","address": "/modular-subtractive/MM_Matrix_s31_d01_osc2_detune","index": 265068,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s31_d02_osc3_detune","varname": "fHslider540","shortname": "MM_Matrix_s31_d02_osc3_detune","address": "/modular-subtractive/MM_Matrix_s31_d02_osc3_detune","index": 264660,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s31_d03_osc_mix_bal","varname": "fHslider590","shortname": "MM_Matrix_s31_d03_osc_mix_bal","address": "/modular-subtractive/MM_Matrix_s31_d03_osc_mix_bal","index": 264868,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s31_d04_noise_level","varname": "fHslider439","shortname": "MM_Matrix_s31_d04_noise_level","address": "/modular-subtractive/MM_Matrix_s31_d04_noise_level","index": 264232,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s31_d05_cutoff","varname": "fHslider336","shortname": "MM_Matrix_s31_d05_cutoff","address": "/modular-subtractive/MM_Matrix_s31_d05_cutoff","index": 263808,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s31_d06_resonance","varname": "fHslider390","shortname": "MM_Matrix_s31_d06_resonance","address": "/modular-subtractive/MM_Matrix_s31_d06_resonance","index": 264036,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s31_d07_filter_env_amt","varname": "fHslider337","shortname": "MM_Matrix_s31_d07_filter_env_amt","address": "/modular-subtractive/MM_Matrix_s31_d07_filter_env_amt","index": 263812,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s31_d08_amp","varname": "fHslider242","shortname": "MM_Matrix_s31_d08_amp","address": "/modular-subtractive/MM_Matrix_s31_d08_amp","index": 263432,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s31_d09_pan","varname": "fHslider66","shortname": "MM_Matrix_s31_d09_pan","address": "/modular-subtractive/MM_Matrix_s31_d09_pan","index": 262564,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s32_d00_pitch","varname": "fHslider489","shortname": "MM_Matrix_s32_d00_pitch","address": "/modular-subtractive/MM_Matrix_s32_d00_pitch","index": 264456,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s32_d01_osc2_detune","varname": "fHslider639","shortname": "MM_Matrix_s32_d01_osc2_detune","address": "/modular-subtractive/MM_Matrix_s32_d01_osc2_detune","index": 265064,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s32_d02_osc3_detune","varname": "fHslider539","shortname": "MM_Matrix_s32_d02_osc3_detune","address": "/modular-subtractive/MM_Matrix_s32_d02_osc3_detune","index": 264656,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s32_d03_osc_mix_bal","varname": "fHslider589","shortname": "MM_Matrix_s32_d03_osc_mix_bal","address": "/modular-subtractive/MM_Matrix_s32_d03_osc_mix_bal","index": 264864,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s32_d04_noise_level","varname": "fHslider438","shortname": "MM_Matrix_s32_d04_noise_level","address": "/modular-subtractive/MM_Matrix_s32_d04_noise_level","index": 264228,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s32_d05_cutoff","varname": "fHslider338","shortname": "MM_Matrix_s32_d05_cutoff","address": "/modular-subtractive/MM_Matrix_s32_d05_cutoff","index": 263816,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s32_d06_resonance","varname": "fHslider389","shortname": "MM_Matrix_s32_d06_resonance","address": "/modular-subtractive/MM_Matrix_s32_d06_resonance","index": 264032,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s32_d07_filter_env_amt","varname": "fHslider339","shortname": "MM_Matrix_s32_d07_filter_env_amt","address": "/modular-subtractive/MM_Matrix_s32_d07_filter_env_amt","index": 263820,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s32_d08_amp","varname": "fHslider241","shortname": "MM_Matrix_s32_d08_amp","address": "/modular-subtractive/MM_Matrix_s32_d08_amp","index": 263428,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s32_d09_pan","varname": "fHslider62","shortname": "MM_Matrix_s32_d09_pan","address": "/modular-subtractive/MM_Matrix_s32_d09_pan","index": 262540,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s33_d00_pitch","varname": "fHslider488","shortname": "MM_Matrix_s33_d00_pitch","address": "/modular-subtractive/MM_Matrix_s33_d00_pitch","index": 264452,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s33_d01_osc2_detune","varname": "fHslider638","shortname": "MM_Matrix_s33_d01_osc2_detune","address": "/modular-subtractive/MM_Matrix_s33_d01_osc2_detune","index": 265060,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s33_d02_osc3_detune","varname": "fHslider538","shortname": "MM_Matrix_s33_d02_osc3_detune","address": "/modular-subtractive/MM_Matrix_s33_d02_osc3_detune","index": 264652,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s33_d03_osc_mix_bal","varname": "fHslider588","shortname": "MM_Matrix_s33_d03_osc_mix_bal","address": "/modular-subtractive/MM_Matrix_s33_d03_osc_mix_bal","index": 264860,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s33_d04_noise_level","varname": "fHslider437","shortname": "MM_Matrix_s33_d04_noise_level","address": "/modular-subtractive/MM_Matrix_s33_d04_noise_level","index": 264224,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s33_d05_cutoff","varname": "fHslider340","shortname": "MM_Matrix_s33_d05_cutoff","address": "/modular-subtractive/MM_Matrix_s33_d05_cutoff","index": 263824,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s33_d06_resonance","varname": "fHslider388","shortname": "MM_Matrix_s33_d06_resonance","address": "/modular-subtractive/MM_Matrix_s33_d06_resonance","index": 264028,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s33_d07_filter_env_amt","varname": "fHslider341","shortname": "MM_Matrix_s33_d07_filter_env_amt","address": "/modular-subtractive/MM_Matrix_s33_d07_filter_env_amt","index": 263828,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s33_d08_amp","varname": "fHslider240","shortname": "MM_Matrix_s33_d08_amp","address": "/modular-subtractive/MM_Matrix_s33_d08_amp","index": 263424,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s33_d09_pan","varname": "fHslider58","shortname": "MM_Matrix_s33_d09_pan","address": "/modular-subtractive/MM_Matrix_s33_d09_pan","index": 262516,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s34_d00_pitch","varname": "fHslider487","shortname": "MM_Matrix_s34_d00_pitch","address": "/modular-subtractive/MM_Matrix_s34_d00_pitch","index": 264448,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s34_d01_osc2_detune","varname": "fHslider637","shortname": "MM_Matrix_s34_d01_osc2_detune","address": "/modular-subtractive/MM_Matrix_s34_d01_osc2_detune","index": 265056,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s34_d02_osc3_detune","varname": "fHslider537","shortname": "MM_Matrix_s34_d02_osc3_detune","address": "/modular-subtractive/MM_Matrix_s34_d02_osc3_detune","index": 264648,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s34_d03_osc_mix_bal","varname": "fHslider587","shortname": "MM_Matrix_s34_d03_osc_mix_bal","address": "/modular-subtractive/MM_Matrix_s34_d03_osc_mix_bal","index": 264856,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s34_d04_noise_level","varname": "fHslider436","shortname": "MM_Matrix_s34_d04_noise_level","address": "/modular-subtractive/MM_Matrix_s34_d04_noise_level","index": 264220,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s34_d05_cutoff","varname": "fHslider342","shortname": "MM_Matrix_s34_d05_cutoff","address": "/modular-subtractive/MM_Matrix_s34_d05_cutoff","index": 263832,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s34_d06_resonance","varname": "fHslider387","shortname": "MM_Matrix_s34_d06_resonance","address": "/modular-subtractive/MM_Matrix_s34_d06_resonance","index": 264024,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s34_d07_filter_env_amt","varname": "fHslider343","shortname": "MM_Matrix_s34_d07_filter_env_amt","address": "/modular-subtractive/MM_Matrix_s34_d07_filter_env_amt","index": 263836,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s34_d08_amp","varname": "fHslider239","shortname": "MM_Matrix_s34_d08_amp","address": "/modular-subtractive/MM_Matrix_s34_d08_amp","index": 263420,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s34_d09_pan","varname": "fHslider54","shortname": "MM_Matrix_s34_d09_pan","address": "/modular-subtractive/MM_Matrix_s34_d09_pan","index": 262492,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s35_d00_pitch","varname": "fHslider486","shortname": "MM_Matrix_s35_d00_pitch","address": "/modular-subtractive/MM_Matrix_s35_d00_pitch","index": 264444,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s35_d01_osc2_detune","varname": "fHslider636","shortname": "MM_Matrix_s35_d01_osc2_detune","address": "/modular-subtractive/MM_Matrix_s35_d01_osc2_detune","index": 265052,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s35_d02_osc3_detune","varname": "fHslider536","shortname": "MM_Matrix_s35_d02_osc3_detune","address": "/modular-subtractive/MM_Matrix_s35_d02_osc3_detune","index": 264644,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s35_d03_osc_mix_bal","varname": "fHslider586","shortname": "MM_Matrix_s35_d03_osc_mix_bal","address": "/modular-subtractive/MM_Matrix_s35_d03_osc_mix_bal","index": 264852,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s35_d04_noise_level","varname": "fHslider435","shortname": "MM_Matrix_s35_d04_noise_level","address": "/modular-subtractive/MM_Matrix_s35_d04_noise_level","index": 264216,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s35_d05_cutoff","varname": "fHslider344","shortname": "MM_Matrix_s35_d05_cutoff","address": "/modular-subtractive/MM_Matrix_s35_d05_cutoff","index": 263840,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s35_d06_resonance","varname": "fHslider386","shortname": "MM_Matrix_s35_d06_resonance","address": "/modular-subtractive/MM_Matrix_s35_d06_resonance","index": 264020,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s35_d07_filter_env_amt","varname": "fHslider345","shortname": "MM_Matrix_s35_d07_filter_env_amt","address": "/modular-subtractive/MM_Matrix_s35_d07_filter_env_amt","index": 263844,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s35_d08_amp","varname": "fHslider238","shortname": "MM_Matrix_s35_d08_amp","address": "/modular-subtractive/MM_Matrix_s35_d08_amp","index": 263416,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s35_d09_pan","varname": "fHslider50","shortname": "MM_Matrix_s35_d09_pan","address": "/modular-subtractive/MM_Matrix_s35_d09_pan","index": 262468,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s36_d00_pitch","varname": "fHslider485","shortname": "MM_Matrix_s36_d00_pitch","address": "/modular-subtractive/MM_Matrix_s36_d00_pitch","index": 264440,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s36_d01_osc2_detune","varname": "fHslider635","shortname": "MM_Matrix_s36_d01_osc2_detune","address": "/modular-subtractive/MM_Matrix_s36_d01_osc2_detune","index": 265048,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s36_d02_osc3_detune","varname": "fHslider535","shortname": "MM_Matrix_s36_d02_osc3_detune","address": "/modular-subtractive/MM_Matrix_s36_d02_osc3_detune","index": 264640,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s36_d03_osc_mix_bal","varname": "fHslider585","shortname": "MM_Matrix_s36_d03_osc_mix_bal","address": "/modular-subtractive/MM_Matrix_s36_d03_osc_mix_bal","index": 264848,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s36_d04_noise_level","varname": "fHslider434","shortname": "MM_Matrix_s36_d04_noise_level","address": "/modular-subtractive/MM_Matrix_s36_d04_noise_level","index": 264212,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s36_d05_cutoff","varname": "fHslider346","shortname": "MM_Matrix_s36_d05_cutoff","address": "/modular-subtractive/MM_Matrix_s36_d05_cutoff","index": 263848,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s36_d06_resonance","varname": "fHslider385","shortname": "MM_Matrix_s36_d06_resonance","address": "/modular-subtractive/MM_Matrix_s36_d06_resonance","index": 264016,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s36_d07_filter_env_amt","varname": "fHslider347","shortname": "MM_Matrix_s36_d07_filter_env_amt","address": "/modular-subtractive/MM_Matrix_s36_d07_filter_env_amt","index": 263852,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s36_d08_amp","varname": "fHslider237","shortname": "MM_Matrix_s36_d08_amp","address": "/modular-subtractive/MM_Matrix_s36_d08_amp","index": 263412,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s36_d09_pan","varname": "fHslider46","shortname": "MM_Matrix_s36_d09_pan","address": "/modular-subtractive/MM_Matrix_s36_d09_pan","index": 262444,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s37_d00_pitch","varname": "fHslider484","shortname": "MM_Matrix_s37_d00_pitch","address": "/modular-subtractive/MM_Matrix_s37_d00_pitch","index": 264436,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s37_d01_osc2_detune","varname": "fHslider634","shortname": "MM_Matrix_s37_d01_osc2_detune","address": "/modular-subtractive/MM_Matrix_s37_d01_osc2_detune","index": 265044,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s37_d02_osc3_detune","varname": "fHslider534","shortname": "MM_Matrix_s37_d02_osc3_detune","address": "/modular-subtractive/MM_Matrix_s37_d02_osc3_detune","index": 264636,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s37_d03_osc_mix_bal","varname": "fHslider584","shortname": "MM_Matrix_s37_d03_osc_mix_bal","address": "/modular-subtractive/MM_Matrix_s37_d03_osc_mix_bal","index": 264844,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s37_d04_noise_level","varname": "fHslider433","shortname": "MM_Matrix_s37_d04_noise_level","address": "/modular-subtractive/MM_Matrix_s37_d04_noise_level","index": 264208,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s37_d05_cutoff","varname": "fHslider348","shortname": "MM_Matrix_s37_d05_cutoff","address": "/modular-subtractive/MM_Matrix_s37_d05_cutoff","index": 263856,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s37_d06_resonance","varname": "fHslider384","shortname": "MM_Matrix_s37_d06_resonance","address": "/modular-subtractive/MM_Matrix_s37_d06_resonance","index": 264012,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s37_d07_filter_env_amt","varname": "fHslider349","shortname": "MM_Matrix_s37_d07_filter_env_amt","address": "/modular-subtractive/MM_Matrix_s37_d07_filter_env_amt","index": 263860,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s37_d08_amp","varname": "fHslider236","shortname": "MM_Matrix_s37_d08_amp","address": "/modular-subtractive/MM_Matrix_s37_d08_amp","index": 263408,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s37_d09_pan","varname": "fHslider42","shortname": "MM_Matrix_s37_d09_pan","address": "/modular-subtractive/MM_Matrix_s37_d09_pan","index": 262420,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s38_d00_pitch","varname": "fHslider483","shortname": "MM_Matrix_s38_d00_pitch","address": "/modular-subtractive/MM_Matrix_s38_d00_pitch","index": 264432,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s38_d01_osc2_detune","varname": "fHslider633","shortname": "MM_Matrix_s38_d01_osc2_detune","address": "/modular-subtractive/MM_Matrix_s38_d01_osc2_detune","index": 265040,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s38_d02_osc3_detune","varname": "fHslider533","shortname": "MM_Matrix_s38_d02_osc3_detune","address": "/modular-subtractive/MM_Matrix_s38_d02_osc3_detune","index": 264632,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s38_d03_osc_mix_bal","varname": "fHslider583","shortname": "MM_Matrix_s38_d03_osc_mix_bal","address": "/modular-subtractive/MM_Matrix_s38_d03_osc_mix_bal","index": 264840,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s38_d04_noise_level","varname": "fHslider432","shortname": "MM_Matrix_s38_d04_noise_level","address": "/modular-subtractive/MM_Matrix_s38_d04_noise_level","index": 264204,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s38_d05_cutoff","varname": "fHslider350","shortname": "MM_Matrix_s38_d05_cutoff","address": "/modular-subtractive/MM_Matrix_s38_d05_cutoff","index": 263864,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s38_d06_resonance","varname": "fHslider383","shortname": "MM_Matrix_s38_d06_resonance","address": "/modular-subtractive/MM_Matrix_s38_d06_resonance","index": 264008,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s38_d07_filter_env_amt","varname": "fHslider351","shortname": "MM_Matrix_s38_d07_filter_env_amt","address": "/modular-subtractive/MM_Matrix_s38_d07_filter_env_amt","index": 263868,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s38_d08_amp","varname": "fHslider235","shortname": "MM_Matrix_s38_d08_amp","address": "/modular-subtractive/MM_Matrix_s38_d08_amp","index": 263404,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s38_d09_pan","varname": "fHslider38","shortname": "MM_Matrix_s38_d09_pan","address": "/modular-subtractive/MM_Matrix_s38_d09_pan","index": 262396,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s39_d00_pitch","varname": "fHslider482","shortname": "MM_Matrix_s39_d00_pitch","address": "/modular-subtractive/MM_Matrix_s39_d00_pitch","index": 264428,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s39_d01_osc2_detune","varname": "fHslider632","shortname": "MM_Matrix_s39_d01_osc2_detune","address": "/modular-subtractive/MM_Matrix_s39_d01_osc2_detune","index": 265036,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s39_d02_osc3_detune","varname": "fHslider532","shortname": "MM_Matrix_s39_d02_osc3_detune","address": "/modular-subtractive/MM_Matrix_s39_d02_osc3_detune","index": 264628,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s39_d03_osc_mix_bal","varname": "fHslider582","shortname": "MM_Matrix_s39_d03_osc_mix_bal","address": "/modular-subtractive/MM_Matrix_s39_d03_osc_mix_bal","index": 264836,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s39_d04_noise_level","varname": "fHslider431","shortname": "MM_Matrix_s39_d04_noise_level","address": "/modular-subtractive/MM_Matrix_s39_d04_noise_level","index": 264200,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s39_d05_cutoff","varname": "fHslider352","shortname": "MM_Matrix_s39_d05_cutoff","address": "/modular-subtractive/MM_Matrix_s39_d05_cutoff","index": 263872,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s39_d06_resonance","varname": "fHslider382","shortname": "MM_Matrix_s39_d06_resonance","address": "/modular-subtractive/MM_Matrix_s39_d06_resonance","index": 264004,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s39_d07_filter_env_amt","varname": "fHslider353","shortname": "MM_Matrix_s39_d07_filter_env_amt","address": "/modular-subtractive/MM_Matrix_s39_d07_filter_env_amt","index": 263876,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s39_d08_amp","varname": "fHslider234","shortname": "MM_Matrix_s39_d08_amp","address": "/modular-subtractive/MM_Matrix_s39_d08_amp","index": 263400,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s39_d09_pan","varname": "fHslider34","shortname": "MM_Matrix_s39_d09_pan","address": "/modular-subtractive/MM_Matrix_s39_d09_pan","index": 262372,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s40_d00_pitch","varname": "fHslider481","shortname": "MM_Matrix_s40_d00_pitch","address": "/modular-subtractive/MM_Matrix_s40_d00_pitch","index": 264424,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s40_d01_osc2_detune","varname": "fHslider631","shortname": "MM_Matrix_s40_d01_osc2_detune","address": "/modular-subtractive/MM_Matrix_s40_d01_osc2_detune","index": 265032,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s40_d02_osc3_detune","varname": "fHslider531","shortname": "MM_Matrix_s40_d02_osc3_detune","address": "/modular-subtractive/MM_Matrix_s40_d02_osc3_detune","index": 264624,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s40_d03_osc_mix_bal","varname": "fHslider581","shortname": "MM_Matrix_s40_d03_osc_mix_bal","address": "/modular-subtractive/MM_Matrix_s40_d03_osc_mix_bal","index": 264832,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s40_d04_noise_level","varname": "fHslider430","shortname": "MM_Matrix_s40_d04_noise_level","address": "/modular-subtractive/MM_Matrix_s40_d04_noise_level","index": 264196,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s40_d05_cutoff","varname": "fHslider354","shortname": "MM_Matrix_s40_d05_cutoff","address": "/modular-subtractive/MM_Matrix_s40_d05_cutoff","index": 263880,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s40_d06_resonance","varname": "fHslider381","shortname": "MM_Matrix_s40_d06_resonance","address": "/modular-subtractive/MM_Matrix_s40_d06_resonance","index": 264000,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s40_d07_filter_env_amt","varname": "fHslider355","shortname": "MM_Matrix_s40_d07_filter_env_amt","address": "/modular-subtractive/MM_Matrix_s40_d07_filter_env_amt","index": 263884,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s40_d08_amp","varname": "fHslider233","shortname": "MM_Matrix_s40_d08_amp","address": "/modular-subtractive/MM_Matrix_s40_d08_amp","index": 263396,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s40_d09_pan","varname": "fHslider30","shortname": "MM_Matrix_s40_d09_pan","address": "/modular-subtractive/MM_Matrix_s40_d09_pan","index": 262348,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s41_d00_pitch","varname": "fHslider480","shortname": "MM_Matrix_s41_d00_pitch","address": "/modular-subtractive/MM_Matrix_s41_d00_pitch","index": 264420,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s41_d01_osc2_detune","varname": "fHslider630","shortname": "MM_Matrix_s41_d01_osc2_detune","address": "/modular-subtractive/MM_Matrix_s41_d01_osc2_detune","index": 265028,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s41_d02_osc3_detune","varname": "fHslider530","shortname": "MM_Matrix_s41_d02_osc3_detune","address": "/modular-subtractive/MM_Matrix_s41_d02_osc3_detune","index": 264620,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s41_d03_osc_mix_bal","varname": "fHslider580","shortname": "MM_Matrix_s41_d03_osc_mix_bal","address": "/modular-subtractive/MM_Matrix_s41_d03_osc_mix_bal","index": 264828,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s41_d04_noise_level","varname": "fHslider429","shortname": "MM_Matrix_s41_d04_noise_level","address": "/modular-subtractive/MM_Matrix_s41_d04_noise_level","index": 264192,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s41_d05_cutoff","varname": "fHslider356","shortname": "MM_Matrix_s41_d05_cutoff","address": "/modular-subtractive/MM_Matrix_s41_d05_cutoff","index": 263888,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s41_d06_resonance","varname": "fHslider380","shortname": "MM_Matrix_s41_d06_resonance","address": "/modular-subtractive/MM_Matrix_s41_d06_resonance","index": 263996,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s41_d07_filter_env_amt","varname": "fHslider357","shortname": "MM_Matrix_s41_d07_filter_env_amt","address": "/modular-subtractive/MM_Matrix_s41_d07_filter_env_amt","index": 263892,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s41_d08_amp","varname": "fHslider232","shortname": "MM_Matrix_s41_d08_amp","address": "/modular-subtractive/MM_Matrix_s41_d08_amp","index": 263392,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s41_d09_pan","varname": "fHslider26","shortname": "MM_Matrix_s41_d09_pan","address": "/modular-subtractive/MM_Matrix_s41_d09_pan","index": 262324,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s42_d00_pitch","varname": "fHslider479","shortname": "MM_Matrix_s42_d00_pitch","address": "/modular-subtractive/MM_Matrix_s42_d00_pitch","index": 264416,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s42_d01_osc2_detune","varname": "fHslider629","shortname": "MM_Matrix_s42_d01_osc2_detune","address": "/modular-subtractive/MM_Matrix_s42_d01_osc2_detune","index": 265024,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s42_d02_osc3_detune","varname": "fHslider529","shortname": "MM_Matrix_s42_d02_osc3_detune","address": "/modular-subtractive/MM_Matrix_s42_d02_osc3_detune","index": 264616,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s42_d03_osc_mix_bal","varname": "fHslider579","shortname": "MM_Matrix_s42_d03_osc_mix_bal","address": "/modular-subtractive/MM_Matrix_s42_d03_osc_mix_bal","index": 264824,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s42_d04_noise_level","varname": "fHslider428","shortname": "MM_Matrix_s42_d04_noise_level","address": "/modular-subtractive/MM_Matrix_s42_d04_noise_level","index": 264188,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s42_d05_cutoff","varname": "fHslider358","shortname": "MM_Matrix_s42_d05_cutoff","address": "/modular-subtractive/MM_Matrix_s42_d05_cutoff","index": 263896,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s42_d06_resonance","varname": "fHslider379","shortname": "MM_Matrix_s42_d06_resonance","address": "/modular-subtractive/MM_Matrix_s42_d06_resonance","index": 263992,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s42_d07_filter_env_amt","varname": "fHslider359","shortname": "MM_Matrix_s42_d07_filter_env_amt","address": "/modular-subtractive/MM_Matrix_s42_d07_filter_env_amt","index": 263900,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s42_d08_amp","varname": "fHslider231","shortname": "MM_Matrix_s42_d08_amp","address": "/modular-subtractive/MM_Matrix_s42_d08_amp","index": 263388,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s42_d09_pan","varname": "fHslider22","shortname": "MM_Matrix_s42_d09_pan","address": "/modular-subtractive/MM_Matrix_s42_d09_pan","index": 262300,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s43_d00_pitch","varname": "fHslider478","shortname": "MM_Matrix_s43_d00_pitch","address": "/modular-subtractive/MM_Matrix_s43_d00_pitch","index": 264412,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s43_d01_osc2_detune","varname": "fHslider628","shortname": "MM_Matrix_s43_d01_osc2_detune","address": "/modular-subtractive/MM_Matrix_s43_d01_osc2_detune","index": 265020,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s43_d02_osc3_detune","varname": "fHslider528","shortname": "MM_Matrix_s43_d02_osc3_detune","address": "/modular-subtractive/MM_Matrix_s43_d02_osc3_detune","index": 264612,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s43_d03_osc_mix_bal","varname": "fHslider578","shortname": "MM_Matrix_s43_d03_osc_mix_bal","address": "/modular-subtractive/MM_Matrix_s43_d03_osc_mix_bal","index": 264820,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s43_d04_noise_level","varname": "fHslider427","shortname": "MM_Matrix_s43_d04_noise_level","address": "/modular-subtractive/MM_Matrix_s43_d04_noise_level","index": 264184,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s43_d05_cutoff","varname": "fHslider360","shortname": "MM_Matrix_s43_d05_cutoff","address": "/modular-subtractive/MM_Matrix_s43_d05_cutoff","index": 263904,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s43_d06_resonance","varname": "fHslider378","shortname": "MM_Matrix_s43_d06_resonance","address": "/modular-subtractive/MM_Matrix_s43_d06_resonance","index": 263988,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s43_d07_filter_env_amt","varname": "fHslider361","shortname": "MM_Matrix_s43_d07_filter_env_amt","address": "/modular-subtractive/MM_Matrix_s43_d07_filter_env_amt","index": 263908,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s43_d08_amp","varname": "fHslider230","shortname": "MM_Matrix_s43_d08_amp","address": "/modular-subtractive/MM_Matrix_s43_d08_amp","index": 263384,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s43_d09_pan","varname": "fHslider18","shortname": "MM_Matrix_s43_d09_pan","address": "/modular-subtractive/MM_Matrix_s43_d09_pan","index": 262276,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s44_d00_pitch","varname": "fHslider477","shortname": "MM_Matrix_s44_d00_pitch","address": "/modular-subtractive/MM_Matrix_s44_d00_pitch","index": 264408,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s44_d01_osc2_detune","varname": "fHslider627","shortname": "MM_Matrix_s44_d01_osc2_detune","address": "/modular-subtractive/MM_Matrix_s44_d01_osc2_detune","index": 265016,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s44_d02_osc3_detune","varname": "fHslider527","shortname": "MM_Matrix_s44_d02_osc3_detune","address": "/modular-subtractive/MM_Matrix_s44_d02_osc3_detune","index": 264608,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s44_d03_osc_mix_bal","varname": "fHslider577","shortname": "MM_Matrix_s44_d03_osc_mix_bal","address": "/modular-subtractive/MM_Matrix_s44_d03_osc_mix_bal","index": 264816,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s44_d04_noise_level","varname": "fHslider426","shortname": "MM_Matrix_s44_d04_noise_level","address": "/modular-subtractive/MM_Matrix_s44_d04_noise_level","index": 264180,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s44_d05_cutoff","varname": "fHslider362","shortname": "MM_Matrix_s44_d05_cutoff","address": "/modular-subtractive/MM_Matrix_s44_d05_cutoff","index": 263912,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s44_d06_resonance","varname": "fHslider377","shortname": "MM_Matrix_s44_d06_resonance","address": "/modular-subtractive/MM_Matrix_s44_d06_resonance","index": 263984,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s44_d07_filter_env_amt","varname": "fHslider363","shortname": "MM_Matrix_s44_d07_filter_env_amt","address": "/modular-subtractive/MM_Matrix_s44_d07_filter_env_amt","index": 263916,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s44_d08_amp","varname": "fHslider229","shortname": "MM_Matrix_s44_d08_amp","address": "/modular-subtractive/MM_Matrix_s44_d08_amp","index": 263380,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s44_d09_pan","varname": "fHslider14","shortname": "MM_Matrix_s44_d09_pan","address": "/modular-subtractive/MM_Matrix_s44_d09_pan","index": 262252,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s45_d00_pitch","varname": "fHslider476","shortname": "MM_Matrix_s45_d00_pitch","address": "/modular-subtractive/MM_Matrix_s45_d00_pitch","index": 264404,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s45_d01_osc2_detune","varname": "fHslider626","shortname": "MM_Matrix_s45_d01_osc2_detune","address": "/modular-subtractive/MM_Matrix_s45_d01_osc2_detune","index": 265012,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s45_d02_osc3_detune","varname": "fHslider526","shortname": "MM_Matrix_s45_d02_osc3_detune","address": "/modular-subtractive/MM_Matrix_s45_d02_osc3_detune","index": 264604,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s45_d03_osc_mix_bal","varname": "fHslider576","shortname": "MM_Matrix_s45_d03_osc_mix_bal","address": "/modular-subtractive/MM_Matrix_s45_d03_osc_mix_bal","index": 264812,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s45_d04_noise_level","varname": "fHslider425","shortname": "MM_Matrix_s45_d04_noise_level","address": "/modular-subtractive/MM_Matrix_s45_d04_noise_level","index": 264176,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s45_d05_cutoff","varname": "fHslider364","shortname": "MM_Matrix_s45_d05_cutoff","address": "/modular-subtractive/MM_Matrix_s45_d05_cutoff","index": 263920,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s45_d06_resonance","varname": "fHslider376","shortname": "MM_Matrix_s45_d06_resonance","address": "/modular-subtractive/MM_Matrix_s45_d06_resonance","index": 263980,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s45_d07_filter_env_amt","varname": "fHslider365","shortname": "MM_Matrix_s45_d07_filter_env_amt","address": "/modular-subtractive/MM_Matrix_s45_d07_filter_env_amt","index": 263924,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s45_d08_amp","varname": "fHslider228","shortname": "MM_Matrix_s45_d08_amp","address": "/modular-subtractive/MM_Matrix_s45_d08_amp","index": 263376,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s45_d09_pan","varname": "fHslider10","shortname": "MM_Matrix_s45_d09_pan","address": "/modular-subtractive/MM_Matrix_s45_d09_pan","index": 262228,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s46_d00_pitch","varname": "fHslider475","shortname": "MM_Matrix_s46_d00_pitch","address": "/modular-subtractive/MM_Matrix_s46_d00_pitch","index": 264400,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s46_d01_osc2_detune","varname": "fHslider625","shortname": "MM_Matrix_s46_d01_osc2_detune","address": "/modular-subtractive/MM_Matrix_s46_d01_osc2_detune","index": 265008,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s46_d02_osc3_detune","varname": "fHslider525","shortname": "MM_Matrix_s46_d02_osc3_detune","address": "/modular-subtractive/MM_Matrix_s46_d02_osc3_detune","index": 264600,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s46_d03_osc_mix_bal","varname": "fHslider575","shortname": "MM_Matrix_s46_d03_osc_mix_bal","address": "/modular-subtractive/MM_Matrix_s46_d03_osc_mix_bal","index": 264808,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s46_d04_noise_level","varname": "fHslider424","shortname": "MM_Matrix_s46_d04_noise_level","address": "/modular-subtractive/MM_Matrix_s46_d04_noise_level","index": 264172,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s46_d05_cutoff","varname": "fHslider366","shortname": "MM_Matrix_s46_d05_cutoff","address": "/modular-subtractive/MM_Matrix_s46_d05_cutoff","index": 263928,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s46_d06_resonance","varname": "fHslider375","shortname": "MM_Matrix_s46_d06_resonance","address": "/modular-subtractive/MM_Matrix_s46_d06_resonance","index": 263976,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s46_d07_filter_env_amt","varname": "fHslider367","shortname": "MM_Matrix_s46_d07_filter_env_amt","address": "/modular-subtractive/MM_Matrix_s46_d07_filter_env_amt","index": 263932,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s46_d08_amp","varname": "fHslider227","shortname": "MM_Matrix_s46_d08_amp","address": "/modular-subtractive/MM_Matrix_s46_d08_amp","index": 263372,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s46_d09_pan","varname": "fHslider6","shortname": "MM_Matrix_s46_d09_pan","address": "/modular-subtractive/MM_Matrix_s46_d09_pan","index": 262204,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s47_d00_pitch","varname": "fHslider474","shortname": "MM_Matrix_s47_d00_pitch","address": "/modular-subtractive/MM_Matrix_s47_d00_pitch","index": 264396,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s47_d01_osc2_detune","varname": "fHslider624","shortname": "MM_Matrix_s47_d01_osc2_detune","address": "/modular-subtractive/MM_Matrix_s47_d01_osc2_detune","index": 265004,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s47_d02_osc3_detune","varname": "fHslider524","shortname": "MM_Matrix_s47_d02_osc3_detune","address": "/modular-subtractive/MM_Matrix_s47_d02_osc3_detune","index": 264596,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s47_d03_osc_mix_bal","varname": "fHslider574","shortname": "MM_Matrix_s47_d03_osc_mix_bal","address": "/modular-subtractive/MM_Matrix_s47_d03_osc_mix_bal","index": 264804,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s47_d04_noise_level","varname": "fHslider423","shortname": "MM_Matrix_s47_d04_noise_level","address": "/modular-subtractive/MM_Matrix_s47_d04_noise_level","index": 264168,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s47_d05_cutoff","varname": "fHslider368","shortname": "MM_Matrix_s47_d05_cutoff","address": "/modular-subtractive/MM_Matrix_s47_d05_cutoff","index": 263936,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s47_d06_resonance","varname": "fHslider374","shortname": "MM_Matrix_s47_d06_resonance","address": "/modular-subtractive/MM_Matrix_s47_d06_resonance","index": 263972,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s47_d07_filter_env_amt","varname": "fHslider369","shortname": "MM_Matrix_s47_d07_filter_env_amt","address": "/modular-subtractive/MM_Matrix_s47_d07_filter_env_amt","index": 263940,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s47_d08_amp","varname": "fHslider226","shortname": "MM_Matrix_s47_d08_amp","address": "/modular-subtractive/MM_Matrix_s47_d08_amp","index": 263368,"init": 0,"min": -1,"max": 1,"step": 0.001},{"type": "hslider","label": "MM_Matrix/s47_d09_pan","varname": "fHslider2","shortname": "MM_Matrix_s47_d09_pan","address": "/modular-subtractive/MM_Matrix_s47_d09_pan","index": 262180,"init": 0,"min": -1,"max": 1,"step": 0.001}]}]} \ No newline at end of file diff --git a/playground/faust/modular-subtractive.wasm b/playground/faust/modular-subtractive.wasm new file mode 100644 index 0000000000000000000000000000000000000000..4d811c60277f0a6e8c6144b2649a2904a82fdd0f GIT binary patch literal 316409 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 s>{eO}*vc`K)UnE}DH%U4PeLeT{FBRSF { + if (activeEngine !== newEngine) return; + await resizeMLP(totalOutputCount()); + if (eocChain?.nispsMode === 'shared') { + const combinedMeta = [...(newEngine.paramMeta ?? []), ...eocChain.paramMeta]; + rebuildHeatmap(combinedMeta); + } else { + rebuildHeatmap(newEngine.paramMeta); + } + if (newEngine.paramMeta?.length > 0) { + rebuildParamToSection(newEngine.paramMeta); + if (synthVisualizer) synthVisualizer.rebuild(newEngine.paramMeta); + } + buildEngineParamOverrides(); + }); } else { showToast(`Unknown engine: ${engineId}`); return; @@ -1332,6 +1376,27 @@ async function init() { await newEngine.init(audioCtxForInit); } + // Phase E — apply any pending modular DSP snapshot from loadState(). + // Runs BEFORE setActiveEngine so paramMeta is correct when the MLP + // resizes below. Note: Phase C's UI state (counts, sub-engine, + // exposed params, enables) is applied separately by modular-ui.js + // on its first refresh(); that runs AFTER setActiveEngine via + // modularUI.show(), so the load ordering is: + // 1. setState() here — restores raw DSP values + sub-engine + // 2. modular-ui refresh() — replays Phase C's UI state + // Step 2 may call setModSourceCount() which re-emits + // paramMeta:change; that's fine since the raw values are already + // in _lastRawByLabel. + if (engineId === 'modular' && _pendingModularDspState && + typeof newEngine.setState === 'function') { + try { + await newEngine.setState(_pendingModularDspState); + } catch (err) { + console.warn('[NISPS] modular setState on engine switch failed:', err); + } + _pendingModularDspState = null; + } + await setActiveEngine(newEngine); } } catch (err) { @@ -1351,6 +1416,22 @@ async function init() { // Wire events wireJoystick(); wireDock(); + + // Phase C: Modular UI. Mount once here (after dock + drawer-stack exist). + // The UI is hidden until the modular engine becomes active. + try { + modularUI = initModularUI({ + getEngine: () => activeEngine, + // Phase E: when modular UI mutates its state (preset applied, + // enables toggled, etc.) trigger the top-level save so the DSP + // snapshot is re-persisted alongside Phase C's UI-state key. + onStateChange: () => saveState(), + }); + if (activeEngine?.id === 'modular') modularUI.show(); + } catch (err) { + console.error('[NISPS] Failed to init modular UI:', err); + } + wireControls(); wireSynthControls(); wireGamepad(); @@ -1520,6 +1601,47 @@ async function init() { inferBatch: (points) => iml.inferBatch(points), getLayerStats:() => iml.getLayerStats(), eocChain, + // ---- Phase E — modular engine hooks ---- + get activeEngine() { return activeEngine; }, + get activeEngineId() { return activeEngine?.id ?? null; }, + get paramCount() { return activeEngine?.paramCount ?? 0; }, + /** Returns the modular engine's full DSP snapshot, or null if not active. */ + getModularState: () => { + if (activeEngine?.id !== 'modular' || + typeof activeEngine.getState !== 'function') return null; + return activeEngine.getState(); + }, + /** Restores a modular DSP snapshot. Returns a Promise. */ + setModularState: async (s) => { + if (activeEngine?.id !== 'modular' || + typeof activeEngine.setState !== 'function') return false; + await activeEngine.setState(s); + return true; + }, + /** Swap the active sub-engine (subtractive/additive/fm). */ + setModularSubEngine: async (id) => { + if (activeEngine?.id !== 'modular' || + typeof activeEngine.setSubEngine !== 'function') return false; + await activeEngine.setSubEngine(id); + return true; + }, + /** Apply a named modular preset. Returns a Promise. */ + applyModularPreset: async (presetId) => { + if (activeEngine?.id !== 'modular') return false; + const p = findModularPreset(presetId); + if (!p) return false; + await applyModularPreset(activeEngine, p); + return true; + }, + /** Change modular ADSR/LFO counts. */ + setModularSourceCount: (adsr, lfo) => { + if (activeEngine?.id !== 'modular' || + typeof activeEngine.setModSourceCount !== 'function') return false; + activeEngine.setModSourceCount(adsr, lfo); + return true; + }, + /** List of known modular preset ids. */ + listModularPresets: () => MODULAR_PRESETS.map(p => ({ id: p.id, name: p.name })), }; } @@ -4091,6 +4213,21 @@ function saveState() { })) : [], eocNispsMode: eocChain ? eocChain.nispsMode : 'bypass', eocTrainingTarget, + // Phase E — full modular DSP snapshot. Only stored when the active + // engine is the modular engine. Contains raw per-label values; the + // UI-facing state (sub-engine choice, counts, enables, exposed params) + // lives in a separate localStorage key 'nisps-modular-state' owned by + // modular-ui.js. On load we apply the UI state first (sub-engine swap, + // counts) and then this dsp dict overwrites any default values. + modularDspState: (activeEngine && activeEngine.id === 'modular' && + typeof activeEngine.getState === 'function') + ? (() => { + const s = activeEngine.getState(); + // Strip fields already owned by Phase C's UI state key to keep a + // single source of truth per field. + return { version: s.version, dsp: s.dsp }; + })() + : null, }; localStorage.setItem(STORAGE_KEY, JSON.stringify(state)); } catch (e) { @@ -4198,6 +4335,22 @@ async function loadState() { EngineSwitcher.setActive(activeEngine ? activeEngine.id : 'shaper-feedback'); } + // Phase E — stash modular DSP state so it can be applied once the + // ModularEngine instance actually exists. Applied either right now (if + // the active engine is already modular) or later from the engine-switch + // handler when the user clicks the Modular card. + if (state.modularDspState && typeof state.modularDspState === 'object') { + _pendingModularDspState = state.modularDspState; + if (activeEngine?.id === 'modular' && typeof activeEngine.setState === 'function') { + try { + await activeEngine.setState(_pendingModularDspState); + _pendingModularDspState = null; + } catch (err) { + console.warn('[NISPS] modular setState on load failed:', err); + } + } + } + // Restore EOC chain state (modules, enabled flags, param values, nispsMode) if (eocChain && Array.isArray(state.eocModules) && state.eocModules.length > 0) { for (const saved of state.eocModules) { diff --git a/playground/js/synth/modular-engine.js b/playground/js/synth/modular-engine.js new file mode 100644 index 0000000..6afd8a0 --- /dev/null +++ b/playground/js/synth/modular-engine.js @@ -0,0 +1,839 @@ +/** + * modular-engine.js — Phase B of the "Modular" audio mode. + * + * ModularEngine wraps one or more Faust sub-engines (subtractive, additive, + * fm — additive/fm are Phase D) that share a common mod pool (16 ADSRs, + * 32 LFOs) routed through a 48 × 10 modulation matrix. It presents a + * unified SynthEngine interface to the rest of the playground. + * + * Phase B implements the `modular-subtractive` sub-engine only. The other + * two slots are declared as stubs so Phase D can drop them in without + * touching ModularEngine or a-app.js. + * + * Differences from other Faust engines: + * - Does NOT extend FaustEngineBase — it has its own worklet lifecycle + * because the modular processors need `uiJson` threaded through the + * init message (Faust 2.79 wasm builds don't export getJSON), and + * because sub-engine swapping requires disposing and re-initialising + * the worklet node. + * - paramMeta is NOT built with `faustJsonToParamMeta()`. Instead we + * walk the JSON ourselves, collect non-hidden leaf params in the + * SAME order the worklet's `_buildZoneIndexFromJson` walks them + * (that walk order defines the "NISPS index" = position in the + * worklet's `_paramZones` array), then assemble paramMeta in a + * curated order: mod-source params first, matrix cells second, + * engine sound params last (hidden from MLP by default, exposable + * via Phase C UI). + * + * Each paramMeta entry carries a `faustIndex` field that is the worklet's + * NISPS index (position in `_paramZones`), not the raw memory-offset + * `index` field from the Faust JSON. `setParam(i, normValue)` sends + * `{ type:'setParam', index: faustIndex, value: raw }` to the worklet, + * and the processor's `_onSetParam` does the zone lookup. + */ + +import { SynthEngine } from './engine-interface.js'; + +// ----------------------------------------------------------------------------- +// Sub-engine registry +// ----------------------------------------------------------------------------- +// +// Each entry describes one Faust sub-engine that can back ModularEngine. +// Only `subtractive` is active in Phase B; `additive` and `fm` are stubs +// reserved for Phase D. +// +// destNames is the ordered list of modulation destinations, matching +// Matrix/s_d_ labels in the Faust JSON. Index into this +// array == the `d` suffix in the matrix labels. + +const SUB_ENGINES = { + subtractive: { + id: 'modular-subtractive', + displayName: 'Subtractive (3-osc)', + wasmUrl: 'faust/modular-subtractive.wasm', + jsonUrl: 'faust/modular-subtractive.json', + workletUrl: 'faust/modular-subtractive-processor.js', + processorName: 'modular-subtractive-processor', + destCount: 10, + destNames: [ + 'pitch', 'osc2_detune', 'osc3_detune', 'osc_mix_bal', 'noise_level', + 'cutoff', 'resonance', 'filter_env_amt', 'amp', 'pan', + ], + // Top-level group labels that hold the engine's sound params (the + // pieces that aren't mod pool / matrix / hidden). These map into + // paramMeta when setEngineParamExposed() opts them in. + soundGroupPrefixes: ['1_Oscillators', '2_Mixer', '3_Filter', '4_Master'], + }, + additive: { + id: 'modular-additive', + displayName: 'Additive (64-partial)', + wasmUrl: 'faust/modular-additive.wasm', + jsonUrl: 'faust/modular-additive.json', + workletUrl: 'faust/modular-additive-processor.js', + processorName: 'modular-additive-processor', + destCount: 10, + destNames: [ + 'pitch', 'bright', 'tilt', 'inharmonicity', 'odd_even', + 'formant_ctr', 'formant_depth', 'noise_mix', 'amp', 'pan', + ], + soundGroupPrefixes: ['1_Spectral', '2_Formants', '3_Master'], + }, + fm: { + id: 'modular-fm', + displayName: 'FM (4-op matrix)', + wasmUrl: 'faust/modular-fm.wasm', + jsonUrl: 'faust/modular-fm.json', + workletUrl: 'faust/modular-fm-processor.js', + processorName: 'modular-fm-processor', + destCount: 10, + destNames: [ + 'pitch', 'op1_level', 'op2_level', 'op3_level', 'op4_level', + 'cross_mod_global', 'feedback_global', 'global_ratio', 'amp', 'pan', + ], + soundGroupPrefixes: ['1_Operators', '2_CrossMod', '3_Feedback', '4_Master'], + }, +}; + +// Number of ADSR / LFO slots exposed to the MLP by default. The Faust DSP +// always compiles 16 ADSR + 32 LFO slots; the first N of each are what the +// MLP can drive, the rest are user-set-only (enable=0 by default). +const DEFAULT_ADSR_COUNT = 4; +const DEFAULT_LFO_COUNT = 8; + +// Per-source params driven by the MLP (enable is excluded — it's a +// discrete flag, poor target for continuous output). +const ADSR_MLP_PARAMS = ['attack', 'decay', 'sustain', 'release']; +const LFO_MLP_PARAMS = ['rate', 'morph']; + +// ----------------------------------------------------------------------------- + +export class ModularEngine extends SynthEngine { + constructor() { + super(); + + this._activeSubId = 'subtractive'; // keyword into SUB_ENGINES + this._subCfg = SUB_ENGINES[this._activeSubId]; + + // How many ADSR / LFO slots the MLP-facing paramMeta will contain. + // Can be changed at runtime via setModSourceCount(). + this._adsrCount = DEFAULT_ADSR_COUNT; + this._lfoCount = DEFAULT_LFO_COUNT; + + this._audioCtx = null; + this._workletNode = null; + this._masterGain = null; + this._outputNode = null; + this._running = false; + this._onReady = null; + + // Parsed Faust JSON of the active sub-engine. + this._faustJson = null; + + // Walk-order index maps. _walkEntries[i] is the ith non-hidden leaf + // param in the UI-tree walk — the same i that the worklet uses as + // its zone index. + this._walkEntries = []; // [{ label, path, min, max, init, nispsIndex }] + this._labelToWalk = new Map(); // label -> walk entry + + // MLP-facing paramMeta (ordered: ADSR → LFO → Matrix → optional sound). + this._paramMeta = []; + + // Exposure toggles (Phase C hooks). + this._exposedEngineParams = new Set(); // label strings + + // Most-recent raw value written to each DSP label (by _setRawByLabel + // or setParam). Used by getState() to snapshot current DSP values + // without round-tripping through the worklet. Cleared on sub-engine + // swap since labels are sub-engine-specific. + this._lastRawByLabel = new Map(); // label -> rawValue + + // Event listeners. + this._listeners = new Map(); // type -> Set + } + + // --------------------------------------------------------------------------- + // SynthEngine identity + // --------------------------------------------------------------------------- + + get id() { return 'modular'; } + get displayName() { return 'Modular'; } + get paramMeta() { return this._paramMeta; } + + /** Id of the currently active Faust sub-engine (e.g. 'subtractive'). */ + get activeSubEngineId() { return this._activeSubId; } + + /** List of sub-engine ids that are currently implemented. */ + get availableSubEngines() { + return Object.keys(SUB_ENGINES); + } + + /** Destination names for the active sub-engine (matrix column headers). */ + get destNames() { + return this._subCfg?.destNames?.slice() ?? []; + } + + /** + * List of Faust labels for the active sub-engine's sound params — i.e. + * leaf params under any of `soundGroupPrefixes`. Used by the modular UI + * to populate the "expose to MLP" checkbox list. + */ + getEngineSoundParamLabels() { + const prefixes = this._subCfg?.soundGroupPrefixes ?? []; + if (prefixes.length === 0) return []; + const out = []; + for (const entry of this._walkEntries) { + const label = entry.label; + if (!label) continue; + if (prefixes.some(p => label.startsWith(p + '/'))) { + out.push({ + label, + min: entry.min, + max: entry.max, + init: entry.init, + }); + } + } + return out; + } + + /** True if a given engine sound param is currently exposed to the MLP. */ + isEngineParamExposed(label) { + return this._exposedEngineParams.has(label); + } + + /** Snapshot of the currently exposed engine sound param labels. */ + getExposedEngineParams() { + return [...this._exposedEngineParams]; + } + + // --------------------------------------------------------------------------- + // Phase E — full state snapshot / restore + // --------------------------------------------------------------------------- + + /** + * Capture a full raw-DSP snapshot suitable for `setState()`. Walks every + * non-hidden leaf param discovered by `_walkFaustJson()` and records its + * current value either from the live worklet (by label lookup) or from + * `_pendingByLabel` / init defaults if the worklet isn't running yet. + * + * Shape: + * { + * version: 1, + * subEngine: 'subtractive', + * adsrCount, lfoCount, + * exposedEngineParams: ['3_Filter/00_cutoff', ...], + * dsp: { [label]: rawValue, ... }, + * } + */ + getState() { + const dsp = {}; + for (const entry of this._walkEntries) { + const label = entry.label; + if (!label) continue; + let v; + if (this._lastRawByLabel.has(label)) { + v = this._lastRawByLabel.get(label); + } else { + v = entry.init; + } + dsp[label] = v; + } + return { + version: 1, + subEngine: this._activeSubId, + adsrCount: this._adsrCount, + lfoCount: this._lfoCount, + exposedEngineParams: [...this._exposedEngineParams], + dsp, + }; + } + + /** + * Restore a snapshot produced by `getState()`. + * + * Steps: + * 1. Validates `version` (currently only 1 is supported). + * 2. Swaps sub-engine if different (awaits the worklet swap; the swap + * reapplies the default patch first, which we then overwrite). + * 3. Sets adsrCount / lfoCount via `setModSourceCount`. + * 4. Restores `_exposedEngineParams`. + * 5. Writes every `dsp[label]` to the worklet via `_setRawByLabel`. + * Unknown labels (e.g. from a sub-engine snapshot that's been re-saved + * against a different sub-engine) are silently skipped. + * 6. Rebuilds paramMeta and emits `paramMeta:change` exactly once. + * + * Emits `paramMeta:change` at the end. + */ + async setState(state) { + if (!state || typeof state !== 'object') return; + if (state.version != null && state.version !== 1) { + console.warn(`[ModularEngine] setState: unknown version ${state.version}, skipping`); + return; + } + + // 1. Sub-engine swap (async — reloads JSON, reinstantiates worklet if running) + if (typeof state.subEngine === 'string' && + state.subEngine !== this._activeSubId && + SUB_ENGINES[state.subEngine]) { + try { + await this.setSubEngine(state.subEngine); + } catch (err) { + console.warn('[ModularEngine] setState: setSubEngine failed', err); + } + } + + // 2. Mod source counts. Don't call setModSourceCount() directly because + // it rebuilds paramMeta and fires paramMeta:change — we want exactly + // one rebuild at the very end. + if (typeof state.adsrCount === 'number') { + this._adsrCount = Math.max(1, Math.min(16, state.adsrCount | 0)); + } + if (typeof state.lfoCount === 'number') { + this._lfoCount = Math.max(1, Math.min(32, state.lfoCount | 0)); + } + + // 3. Exposed engine sound params + if (Array.isArray(state.exposedEngineParams)) { + this._exposedEngineParams = new Set( + state.exposedEngineParams.filter(l => typeof l === 'string' && this._labelToWalk.has(l)) + ); + } + + // 4. Raw DSP values. Only write labels the active sub-engine knows about. + // If the engine isn't running yet, _setRawByLabel is a no-op — but + // we still record the value in _lastRawByLabel so a later getState() + // sees it, and so that once init() runs _applyDefaultPatch we can + // replay through the pending path. + if (state.dsp && typeof state.dsp === 'object') { + for (const [label, rawVal] of Object.entries(state.dsp)) { + if (typeof rawVal !== 'number') continue; + if (!this._labelToWalk.has(label)) continue; + this._setRawByLabel(label, rawVal); + } + } + + // 5. Single paramMeta rebuild + event emission. + this._rebuildParamMeta(); + this._emit('paramMeta:change', { engine: this }); + } + + /** + * Re-apply the Phase B default patch. Exposed so preset code can reset + * to a known baseline before layering a preset on top. Safe to call + * before or after init() — pre-init it just updates the _lastRawByLabel + * bookkeeping. + */ + resetToDefaults() { + this._applyDefaultPatch(); + } + + // --------------------------------------------------------------------------- + // Lifecycle + // --------------------------------------------------------------------------- + + /** + * Load the default sub-engine's JSON so paramCount is known before init(). + * Safe to call multiple times. + * + * Also seeds `_lastRawByLabel` with the Phase B default patch values so + * that `getState()` returns a meaningful snapshot before audio has been + * started. Without this the snapshot reports raw DSP init values (0 for + * most matrix cells), which is technically correct pre-init but is + * surprising — the default patch is a property of the engine, not of + * the worklet lifecycle. + */ + async loadParamMeta() { + if (this._paramMeta.length > 0) return; + await this._loadSubEngineJson(this._activeSubId); + this._rebuildParamMeta(); + this._applyDefaultPatch(); + } + + /** + * Initialise the engine: load the active sub-engine, register the worklet, + * create the node, apply the default patch. + */ + async init(audioCtx) { + if (this._running) return; + if (!audioCtx) { + audioCtx = new (window.AudioContext || window.webkitAudioContext)(); + } + this._audioCtx = audioCtx; + + if (!this._faustJson) { + await this._loadSubEngineJson(this._activeSubId); + this._rebuildParamMeta(); + } + + await this._instantiateWorklet(); + this._applyDefaultPatch(); + this._running = true; + } + + /** Release all resources. */ + dispose() { + this._teardownWorklet(); + this._running = false; + this._audioCtx = null; + } + + getOutputNode() { return this._outputNode; } + + /** Convenience: set master gain (wired to the volume slider in a-app.js). */ + setMasterVolume(value) { + if (this._masterGain && this._audioCtx) { + this._masterGain.gain.setTargetAtTime(value, this._audioCtx.currentTime, 0.01); + } + } + + /** Mirror FaustEngineBase.stop()/start() for hot-pause on the audio button. */ + async stop() { + if (this._masterGain && this._audioCtx) { + this._masterGain.gain.setTargetAtTime(0, this._audioCtx.currentTime, 0.01); + } + this._running = false; + } + async start() { + if (this._masterGain && this._audioCtx) { + this._masterGain.gain.setTargetAtTime(0.7, this._audioCtx.currentTime, 0.01); + } + this._running = true; + } + + // --------------------------------------------------------------------------- + // Real-time control + // --------------------------------------------------------------------------- + + setParam(index, normalizedValue) { + const meta = this._paramMeta[index]; + if (!meta) return; + const raw = meta.min + normalizedValue * (meta.max - meta.min); + // Record the write so getState() can see it even if no worklet yet. + if (meta.label) this._lastRawByLabel.set(meta.label, raw); + if (!this._workletNode) return; + this._workletNode.port.postMessage({ + type: 'setParam', + index: meta.faustIndex, + value: raw, + }); + } + + noteOn(note, vel = 0.7) { + if (!this._workletNode) return; + const freq = 440 * Math.pow(2, (note - 69) / 12); + this._workletNode.port.postMessage({ type: 'noteOn', freq, vel }); + } + + noteOff(note) { + if (!this._workletNode) return; + const freq = 440 * Math.pow(2, (note - 69) / 12); + this._workletNode.port.postMessage({ type: 'noteOff', freq }); + } + + // --------------------------------------------------------------------------- + // Phase C hooks (public API the modular UI will call) + // --------------------------------------------------------------------------- + + /** + * Swap the active Faust sub-engine. Rebuilds paramMeta and emits + * 'paramMeta:change' so a-app.js can resize the MLP. + * + * @param {string} id Key into SUB_ENGINES (e.g. 'subtractive'). + */ + async setSubEngine(id) { + if (!SUB_ENGINES[id]) { + throw new Error(`[ModularEngine] Unknown sub-engine: ${id}`); + } + if (id === this._activeSubId && this._running) return; + + const wasRunning = this._running; + this._teardownWorklet(); + this._running = false; + + this._activeSubId = id; + this._subCfg = SUB_ENGINES[id]; + this._faustJson = null; + this._exposedEngineParams.clear(); + this._lastRawByLabel.clear(); + + await this._loadSubEngineJson(id); + this._rebuildParamMeta(); + // Seed default-patch values even if the worklet isn't running — keeps + // getState() consistent with loadParamMeta()'s post-condition. + this._applyDefaultPatch(); + + if (wasRunning && this._audioCtx) { + await this._instantiateWorklet(); + this._applyDefaultPatch(); + this._running = true; + } + this._emit('paramMeta:change', { engine: this }); + } + + /** + * Opt a specific engine sound param into the MLP-controllable set. + * Rebuilds paramMeta and fires 'paramMeta:change'. + * + * @param {string} label Full Faust label, e.g. '3_Filter/00_cutoff'. + * @param {boolean} exposed true to expose, false to hide. + */ + setExposeEngineParam(label, exposed) { + if (!this._labelToWalk.has(label)) return; + const had = this._exposedEngineParams.has(label); + if (exposed && !had) this._exposedEngineParams.add(label); + else if (!exposed && had) this._exposedEngineParams.delete(label); + else return; + this._rebuildParamMeta(); + this._emit('paramMeta:change', { engine: this }); + } + + /** + * Change how many ADSR / LFO slots appear in paramMeta. Rebuilds paramMeta + * and emits 'paramMeta:change' so a-app.js resizes the MLP. Slots past the + * new counts remain alive in the Faust DSP (always 16 + 32 exist) but are + * no longer MLP-driven; the UI is expected to disable those slots via the + * per-slot enable flag if it wants them silent. + * + * @param {number} adsrCount 1..16 + * @param {number} lfoCount 1..32 + */ + setModSourceCount(adsrCount, lfoCount) { + adsrCount = Math.max(1, Math.min(16, adsrCount | 0)); + lfoCount = Math.max(1, Math.min(32, lfoCount | 0)); + if (adsrCount === this._adsrCount && lfoCount === this._lfoCount) return; + this._adsrCount = adsrCount; + this._lfoCount = lfoCount; + this._rebuildParamMeta(); + this._emit('paramMeta:change', { engine: this }); + } + + /** Current MLP-facing ADSR slot count. */ + get adsrCount() { return this._adsrCount; } + + /** Current MLP-facing LFO slot count. */ + get lfoCount() { return this._lfoCount; } + + /** Subscribe to a custom event ('paramMeta:change'). Returns unsubscribe fn. */ + on(type, handler) { + if (!this._listeners.has(type)) this._listeners.set(type, new Set()); + this._listeners.get(type).add(handler); + return () => this.off(type, handler); + } + + off(type, handler) { + this._listeners.get(type)?.delete(handler); + } + + _emit(type, detail) { + const set = this._listeners.get(type); + if (!set) return; + for (const fn of set) { + try { fn(detail); } catch (err) { console.error(`[ModularEngine:${type}]`, err); } + } + } + + // --------------------------------------------------------------------------- + // Internals — JSON walking + paramMeta construction + // --------------------------------------------------------------------------- + + async _loadSubEngineJson(subId) { + const cfg = SUB_ENGINES[subId]; + if (!cfg) throw new Error(`[ModularEngine] Unknown sub-engine: ${subId}`); + + const resp = await fetch(cfg.jsonUrl); + if (!resp.ok) { + throw new Error(`[ModularEngine] Failed to fetch ${cfg.jsonUrl}: ${resp.status}`); + } + this._faustJson = await resp.json(); + this._walkFaustJson(); + } + + /** + * Walk the Faust UI tree in the SAME order the worklet's + * _buildZoneIndexFromJson walks it, skipping hidden params. The position + * in the resulting list is the NISPS index = the zone argument the + * worklet passes to setParamValue. + */ + _walkFaustJson() { + const HIDDEN_TAIL = new Set(['freq', 'gate', '_vel']); + const entries = []; + const byLabel = new Map(); + + const walk = (items, path) => { + if (!Array.isArray(items)) return; + for (const item of items) { + const type = item?.type; + if (type === 'hslider' || type === 'vslider' || + type === 'nentry' || type === 'button' || + type === 'checkbox') { + const label = item.label ?? ''; + const idx = item.index; + if (typeof idx !== 'number') continue; + + const hasHiddenMeta = Array.isArray(item.meta) && + item.meta.some(m => m.hidden === '1' || m.hidden === 1); + const tail = label.includes('/') ? label.split('/').pop() : label; + if (hasHiddenMeta || HIDDEN_TAIL.has(tail)) continue; + + const entry = { + label, + path: path + '/' + label, + min: typeof item.min === 'number' ? item.min : 0, + max: typeof item.max === 'number' ? item.max : 1, + init: typeof item.init === 'number' ? item.init : 0, + nispsIndex: entries.length, // walk-order index + }; + entries.push(entry); + byLabel.set(label, entry); + } else if (item?.items) { + walk(item.items, path + '/' + (item.label ?? '')); + } + } + }; + + walk(this._faustJson?.ui ?? [], ''); + this._walkEntries = entries; + this._labelToWalk = byLabel; + } + + /** + * Build the MLP-facing paramMeta from the walk entries. Ordering: + * 1. Mod source params (ADSR A/D/S/R × DEFAULT_ADSR_COUNT, + * LFO rate/morph × DEFAULT_LFO_COUNT) + * 2. Matrix cells (all 48 × destCount, dest-major, + * source-major within each destination) + * 3. Opted-in engine sound params (empty by default) + */ + _rebuildParamMeta() { + const cfg = this._subCfg; + const meta = []; + + // ----- 1. Mod sources ----- + for (let i = 0; i < this._adsrCount; i++) { + const prefix = `MM_ADSR/${String(i).padStart(2, '0')}_adsr${String(i + 1).padStart(2, '0')}`; + for (const suffix of ADSR_MLP_PARAMS) { + const label = `${prefix}_${suffix}`; + const e = this._labelToWalk.get(label); + if (!e) continue; + meta.push(this._makeMetaEntry(e, { + id: `adsr${i + 1}_${suffix}`, + name: `${cap(suffix)}`, + group: `ADSR ${i + 1}`, + })); + } + } + for (let i = 0; i < this._lfoCount; i++) { + const prefix = `MM_LFO/${String(i).padStart(2, '0')}_lfo${String(i + 1).padStart(2, '0')}`; + for (const suffix of LFO_MLP_PARAMS) { + const label = `${prefix}_${suffix}`; + const e = this._labelToWalk.get(label); + if (!e) continue; + meta.push(this._makeMetaEntry(e, { + id: `lfo${i + 1}_${suffix}`, + name: `${cap(suffix)}`, + group: `LFO ${i + 1}`, + })); + } + } + + // ----- 2. Matrix cells — dest-major, source-major within each destination ----- + for (let d = 0; d < cfg.destCount; d++) { + const destName = cfg.destNames[d]; + for (let s = 0; s < 48; s++) { + const label = `MM_Matrix/s${String(s).padStart(2, '0')}_d${String(d).padStart(2, '0')}_${destName}`; + const e = this._labelToWalk.get(label); + if (!e) continue; + meta.push(this._makeMetaEntry(e, { + id: `mm_s${s}_d${d}_${destName}`, + name: `s${String(s).padStart(2, '0')} \u2192 ${destName}`, + group: `Matrix/${destName}`, + })); + } + } + + // ----- 3. Opted-in engine sound params ----- + for (const label of this._exposedEngineParams) { + const e = this._labelToWalk.get(label); + if (!e) continue; + const [group, leaf] = splitLabel(label); + meta.push(this._makeMetaEntry(e, { + id: slugify(label), + name: stripIndexPrefix(leaf), + group: group || 'Sound', + })); + } + + this._paramMeta = meta; + } + + _makeMetaEntry(walkEntry, over) { + const range = (walkEntry.max - walkEntry.min) || 1; + const initNorm = Math.max(0, Math.min(1, + (walkEntry.init - walkEntry.min) / range)); + return { + id: over.id, + name: over.name, + min: walkEntry.min, // raw units (FaustEngineBase convention) + max: walkEntry.max, + init: initNorm, // normalised 0..1 + curve: 0.5, + group: over.group, + faustIndex: walkEntry.nispsIndex, + label: walkEntry.label, // kept for debugging and Phase C wiring + }; + } + + // --------------------------------------------------------------------------- + // Worklet lifecycle + // --------------------------------------------------------------------------- + + async _instantiateWorklet() { + const cfg = this._subCfg; + const audioCtx = this._audioCtx; + + // Fetch WASM binary. + const wasmResp = await fetch(cfg.wasmUrl); + if (!wasmResp.ok) { + throw new Error(`[ModularEngine] Failed to fetch ${cfg.wasmUrl}: ${wasmResp.status}`); + } + const wasmBytes = await wasmResp.arrayBuffer(); + + // Register worklet modules (addModule is idempotent — browser dedupes). + // faust-worklet-processor.js defines the FaustWorkletProcessor base class + // that modular-subtractive-processor.js extends. + await audioCtx.audioWorklet.addModule('faust/faust-worklet-processor.js'); + await audioCtx.audioWorklet.addModule(cfg.workletUrl); + + this._workletNode = new AudioWorkletNode(audioCtx, cfg.processorName, { + numberOfInputs: 0, + numberOfOutputs: 1, + outputChannelCount: [2], + }); + this._workletNode.port.onmessage = (e) => this._handleWorkletMsg(e.data); + + // Build the audio graph. + this._masterGain = audioCtx.createGain(); + this._masterGain.gain.value = 0.7; + this._workletNode.connect(this._masterGain); + this._masterGain.connect(audioCtx.destination); + this._outputNode = this._masterGain; + + // Send the init message — uiJson is passed as a parsed object. + this._workletNode.port.postMessage({ + type: 'init', + wasmBytes, + sampleRate: audioCtx.sampleRate, + uiJson: this._faustJson, + }, [wasmBytes]); + + await this._waitForReady(10_000); + } + + _teardownWorklet() { + if (this._masterGain) { + try { this._masterGain.disconnect(); } catch (_) { /* ignore */ } + this._masterGain = null; + } + if (this._workletNode) { + try { this._workletNode.disconnect(); } catch (_) { /* ignore */ } + this._workletNode.port.onmessage = null; + this._workletNode = null; + } + this._outputNode = null; + } + + _handleWorkletMsg(data) { + if (!data) return; + if (data.type === 'ready') { + this._onReady?.(); + } else if (data.type === 'error') { + console.error(`[ModularEngine:${this._activeSubId}] worklet error:`, data.message); + } + } + + _waitForReady(timeoutMs) { + return new Promise((resolve, reject) => { + const timer = setTimeout(() => { + this._onReady = null; + reject(new Error(`[ModularEngine] Timed out waiting for worklet ready`)); + }, timeoutMs); + this._onReady = () => { + clearTimeout(timer); + this._onReady = null; + resolve(); + }; + }); + } + + // --------------------------------------------------------------------------- + // Default patch + // --------------------------------------------------------------------------- + + /** + * Write raw values directly to the worklet by Faust label, bypassing + * paramMeta. Used for the default patch, which includes params NOT in + * paramMeta (e.g. `enable` flags, engine sound defaults). + */ + _setRawByLabel(label, rawValue) { + // Always record the intent, even if the worklet isn't up yet — getState() + // reads from this map. The value will be re-applied when the worklet + // next runs _applyDefaultPatch() or when the caller explicitly replays + // state after init(). + this._lastRawByLabel.set(label, rawValue); + if (!this._workletNode) return; + this._workletNode.port.postMessage({ type: 'setByLabel', label, value: rawValue }); + } + + /** + * Apply the Phase B default patch so the first noteOn produces sound. + * + * Strategy: ADSR 1 → amp at full depth, reasonable ADSR 1 envelope, + * osc1 up, osc2/3 silent, filter fully open, master level 0.7. + * Everything else the .dsp file already has sane defaults for. + */ + _applyDefaultPatch() { + // ADSR 1 — amplifier envelope + this._setRawByLabel('MM_ADSR/00_adsr01_enable', 1.0); + this._setRawByLabel('MM_ADSR/00_adsr01_attack', 0.01); + this._setRawByLabel('MM_ADSR/00_adsr01_decay', 0.2); + this._setRawByLabel('MM_ADSR/00_adsr01_sustain', 0.7); + this._setRawByLabel('MM_ADSR/00_adsr01_release', 0.3); + + // Matrix: s00 (adsr01) → d08 (amp), depth 1.0 + this._setRawByLabel('MM_Matrix/s00_d08_amp', 1.0); + + // Engine sound defaults (subtractive-specific) + if (this._activeSubId === 'subtractive') { + this._setRawByLabel('3_Filter/00_cutoff', 3000); + this._setRawByLabel('3_Filter/01_resonance', 0.2); + this._setRawByLabel('1_Oscillators/02_osc1_level', 0.8); + this._setRawByLabel('1_Oscillators/06_osc2_level', 0.0); + this._setRawByLabel('1_Oscillators/10_osc3_level', 0.0); + this._setRawByLabel('4_Master/00_master_level', 0.7); + } + } +} + +// ----------------------------------------------------------------------------- +// Small helpers +// ----------------------------------------------------------------------------- + +function cap(s) { + return s ? s.charAt(0).toUpperCase() + s.slice(1) : s; +} + +function splitLabel(label) { + const i = label.lastIndexOf('/'); + if (i < 0) return ['', label]; + return [label.slice(0, i), label.slice(i + 1)]; +} + +function stripIndexPrefix(leaf) { + // Strip the leading "NN_" numeric prefix Faust uses to force UI ordering, + // e.g. "00_osc1_wave" → "osc1_wave". + return leaf.replace(/^\d+_/, ''); +} + +function slugify(s) { + return s.toLowerCase().replace(/[^a-z0-9]+/g, '_').replace(/^_+|_+$/g, ''); +} diff --git a/playground/js/synth/modular-presets.js b/playground/js/synth/modular-presets.js new file mode 100644 index 0000000..ab24a88 --- /dev/null +++ b/playground/js/synth/modular-presets.js @@ -0,0 +1,285 @@ +/** + * modular-presets.js — Phase E presets for the Modular engine. + * + * Each preset is a curated snapshot shaped like `ModularEngine.getState()` + * output. `applyPreset(engine, preset)` first calls `engine.resetToDefaults()` + * to re-establish the Phase B baseline, then `engine.setState(preset.state)` + * to layer the preset's non-default values on top. Presets therefore only + * need to include the labels they actively change. + * + * Source ordering reminder (mirrors modular-engine.js comments): + * Matrix source 0..15 = ADSR slots 1..16 + * Matrix source 16..47 = LFO slots 1..32 + * + * Destinations (d00..d09) are sub-engine-specific; see + * faust/MODULAR_DESTINATIONS.md. Across all three sub-engines: + * d00 = pitch, d08 = amp, d09 = pan. + */ + +// Helper factories for building per-source label sets without macro soup. +// Only include labels that differ from the Phase B default patch. + +const pad2 = (n) => String(n).padStart(2, '0'); + +/** `MM_ADSR/NN_adsrNN_` label builder (NN zero-padded). */ +function adsrLabel(slot1, field) { + // slot1 = 1-based slot number + const nn = pad2(slot1 - 1); + const mm = pad2(slot1); + return `MM_ADSR/${nn}_adsr${mm}_${field}`; +} + +/** `MM_LFO/NN_lfoNN_` label builder. */ +function lfoLabel(slot1, field) { + const nn = pad2(slot1 - 1); + const mm = pad2(slot1); + return `MM_LFO/${nn}_lfo${mm}_${field}`; +} + +/** + * Matrix cell label: source `s` (0..47), destination `d` (0..9), name. + */ +function mxLabel(s, d, name) { + return `MM_Matrix/s${pad2(s)}_d${pad2(d)}_${name}`; +} + +// ----------------------------------------------------------------------------- +// Presets +// ----------------------------------------------------------------------------- + +/** 1. Default — Phase B out-of-the-box patch (empty diff). */ +const DEFAULT_PRESET = { + version: 1, + subEngine: 'subtractive', + adsrCount: 4, + lfoCount: 8, + exposedEngineParams: [], + dsp: {}, +}; + +/** 2. Slow pad — long ADSR, subtle LFOs, filter open-ish. Subtractive. */ +const SLOW_PAD_PRESET = { + version: 1, + subEngine: 'subtractive', + adsrCount: 4, + lfoCount: 8, + exposedEngineParams: [], + dsp: { + // ADSR 1 — long amp envelope + [adsrLabel(1, 'enable')]: 1.0, + [adsrLabel(1, 'attack')]: 2.0, + [adsrLabel(1, 'decay')]: 1.0, + [adsrLabel(1, 'sustain')]: 0.9, + [adsrLabel(1, 'release')]: 4.0, + + // LFO 1 — slow sine → cutoff + [lfoLabel(1, 'enable')]: 1.0, + [lfoLabel(1, 'rate')]: 0.3, + [lfoLabel(1, 'morph')]: 0.0, + + // LFO 2 — slow sine → pitch (subtle detune) + [lfoLabel(2, 'enable')]: 1.0, + [lfoLabel(2, 'rate')]: 0.5, + [lfoLabel(2, 'morph')]: 0.0, + + // Matrix routes + [mxLabel(0, 8, 'amp')]: 1.0, // ADSR1 → amp (reinforce default) + [mxLabel(16, 5, 'cutoff')]: 0.4, // LFO1 → cutoff + [mxLabel(17, 0, 'pitch')]: 0.05, // LFO2 → pitch + + // Engine sound + '3_Filter/00_cutoff': 1000, + '3_Filter/01_resonance': 0.2, + '1_Oscillators/02_osc1_level': 0.7, + '1_Oscillators/06_osc2_level': 0.4, + }, +}; + +/** 3. Plucky bass — fast amp + filter envelopes, low cutoff, high res. */ +const PLUCKY_BASS_PRESET = { + version: 1, + subEngine: 'subtractive', + adsrCount: 4, + lfoCount: 8, + exposedEngineParams: [], + dsp: { + // ADSR 1 — amp + [adsrLabel(1, 'enable')]: 1.0, + [adsrLabel(1, 'attack')]: 0.005, + [adsrLabel(1, 'decay')]: 0.15, + [adsrLabel(1, 'sustain')]: 0.0, + [adsrLabel(1, 'release')]: 0.1, + // ADSR 2 — filter + [adsrLabel(2, 'enable')]: 1.0, + [adsrLabel(2, 'attack')]: 0.005, + [adsrLabel(2, 'decay')]: 0.15, + [adsrLabel(2, 'sustain')]: 0.0, + [adsrLabel(2, 'release')]: 0.1, + + [mxLabel(0, 8, 'amp')]: 1.0, // ADSR1 → amp + [mxLabel(1, 5, 'cutoff')]: 0.8, // ADSR2 → cutoff + + '3_Filter/00_cutoff': 400, + '3_Filter/01_resonance': 0.7, + '1_Oscillators/02_osc1_level': 0.9, + }, +}; + +/** 4. Crystal — additive, tremolo + slow formant sweep. */ +const CRYSTAL_PRESET = { + version: 1, + subEngine: 'additive', + adsrCount: 4, + lfoCount: 8, + exposedEngineParams: [], + dsp: { + [adsrLabel(1, 'enable')]: 1.0, + [adsrLabel(1, 'attack')]: 0.02, + [adsrLabel(1, 'decay')]: 0.4, + [adsrLabel(1, 'sustain')]: 0.8, + [adsrLabel(1, 'release')]: 1.2, + + [lfoLabel(1, 'enable')]: 1.0, + [lfoLabel(1, 'rate')]: 4.0, + [lfoLabel(1, 'morph')]: 0.0, // sine + + [lfoLabel(2, 'enable')]: 1.0, + [lfoLabel(2, 'rate')]: 0.2, + [lfoLabel(2, 'morph')]: 0.33, // tri + + [mxLabel(0, 8, 'amp')]: 0.8, // ADSR1 → amp + [mxLabel(16, 1, 'bright')]: 0.3, // LFO1 → bright + [mxLabel(17, 5, 'formant_ctr')]: 0.4, // LFO2 → formant_ctr + }, +}; + +/** 5. DX bell — 4 ADSRs with staggered decays driving FM operator levels. */ +const DX_BELL_PRESET = { + version: 1, + subEngine: 'fm', + adsrCount: 4, + lfoCount: 8, + exposedEngineParams: [], + dsp: { + // All four ADSRs: fast attack, varying decay, zero sustain, equal release + [adsrLabel(1, 'enable')]: 1.0, + [adsrLabel(1, 'attack')]: 0.005, + [adsrLabel(1, 'decay')]: 0.3, + [adsrLabel(1, 'sustain')]: 0.0, + [adsrLabel(1, 'release')]: 0.5, + + [adsrLabel(2, 'enable')]: 1.0, + [adsrLabel(2, 'attack')]: 0.005, + [adsrLabel(2, 'decay')]: 0.6, + [adsrLabel(2, 'sustain')]: 0.0, + [adsrLabel(2, 'release')]: 0.5, + + [adsrLabel(3, 'enable')]: 1.0, + [adsrLabel(3, 'attack')]: 0.005, + [adsrLabel(3, 'decay')]: 1.2, + [adsrLabel(3, 'sustain')]: 0.0, + [adsrLabel(3, 'release')]: 0.5, + + [adsrLabel(4, 'enable')]: 1.0, + [adsrLabel(4, 'attack')]: 0.005, + [adsrLabel(4, 'decay')]: 2.0, + [adsrLabel(4, 'sustain')]: 0.0, + [adsrLabel(4, 'release')]: 0.5, + + // Matrix: each ADSR → the matching op level (d01..d04 in the fm sub-engine) + [mxLabel(0, 1, 'op1_level')]: 1.0, + [mxLabel(1, 2, 'op2_level')]: 1.0, + [mxLabel(2, 3, 'op3_level')]: 1.0, + [mxLabel(3, 4, 'op4_level')]: 1.0, + }, +}; + +/** 6. Morphing drone — additive, very slow amp, slow spectral LFOs. */ +const MORPHING_DRONE_PRESET = { + version: 1, + subEngine: 'additive', + adsrCount: 4, + lfoCount: 8, + exposedEngineParams: [], + dsp: { + [adsrLabel(1, 'enable')]: 1.0, + [adsrLabel(1, 'attack')]: 5.0, + [adsrLabel(1, 'decay')]: 1.0, + [adsrLabel(1, 'sustain')]: 1.0, + [adsrLabel(1, 'release')]: 6.0, + + [lfoLabel(1, 'enable')]: 1.0, + [lfoLabel(1, 'rate')]: 0.1, + [lfoLabel(1, 'morph')]: 0.5, // between tri and saw + + [lfoLabel(2, 'enable')]: 1.0, + [lfoLabel(2, 'rate')]: 0.15, + [lfoLabel(2, 'morph')]: 0.66, + + [mxLabel(0, 8, 'amp')]: 1.0, // ADSR1 → amp + [mxLabel(16, 3, 'inharmonicity')]: 0.3, // LFO1 → inharmonicity + [mxLabel(17, 4, 'odd_even')]: 0.3, // LFO2 → odd_even + }, +}; + +export const MODULAR_PRESETS = [ + { + id: 'modular-default', + name: 'Default', + description: 'Phase B out-of-the-box patch.', + state: DEFAULT_PRESET, + }, + { + id: 'modular-slow-pad', + name: 'Slow pad', + description: 'Long ADSR, slow LFO cutoff sweep, subtle pitch drift.', + state: SLOW_PAD_PRESET, + }, + { + id: 'modular-plucky-bass', + name: 'Plucky bass', + description: 'Fast amp + filter envelopes, resonant lowpass.', + state: PLUCKY_BASS_PRESET, + }, + { + id: 'modular-crystal', + name: 'Crystal', + description: 'Additive tremolo with slow formant sweep.', + state: CRYSTAL_PRESET, + }, + { + id: 'modular-dx-bell', + name: 'DX bell', + description: 'Four staggered ADSRs driving FM operator levels.', + state: DX_BELL_PRESET, + }, + { + id: 'modular-morphing-drone', + name: 'Morphing drone', + description: 'Additive drone with LFO-driven spectral morphing.', + state: MORPHING_DRONE_PRESET, + }, +]; + +/** + * Apply a preset to a ModularEngine instance. Resets to defaults first so + * each preset is independent of whatever state preceded it. + * + * @param {import('./modular-engine.js').ModularEngine} engine + * @param {{state: object}} preset + */ +export async function applyPreset(engine, preset) { + if (!engine || !preset || !preset.state) return; + // Baseline first — this clears user mutations and re-seeds the + // default amp env / matrix / filter values. + if (typeof engine.resetToDefaults === 'function') { + engine.resetToDefaults(); + } + // Layer the preset's non-default values. + await engine.setState({ version: 1, ...preset.state }); +} + +/** Look up a preset by id. */ +export function findPreset(id) { + return MODULAR_PRESETS.find(p => p.id === id) ?? null; +} diff --git a/playground/js/ui/modular-ui.js b/playground/js/ui/modular-ui.js new file mode 100644 index 0000000..d624d12 --- /dev/null +++ b/playground/js/ui/modular-ui.js @@ -0,0 +1,1466 @@ +import { MODULAR_PRESETS, applyPreset } from '../synth/modular-presets.js'; + +/** + * modular-ui.js — Phase C of the "Modular" audio mode. + * + * User-facing control panel for ModularEngine: + * - Sub-engine toggle (Subtractive / Additive / FM) + * - Mod pool count steppers (ADSR 1..16, LFO 1..32) + * - Per-slot enable toggles (independent of count) + * - Matrix grid editor (sources × destinations, signed [-1, 1] amounts) + * - Expose engine sound params to the MLP + * + * The panel is mounted as a drawer in the existing `#drawer-stack`, with a + * matching dock icon injected into `#dock`. Both are hidden until the + * modular engine becomes active. + * + * Matrix paramMeta layout (from Phase B, VERIFIED at runtime via label + * prefix `MM_Matrix/` on rebuild): mod sources first (ADSR + LFO), matrix + * cells second (dest-major, source-major within each destination), opted-in + * engine sound params last. We discover matrix cells by group prefix, not + * by hardcoded offsets, so that count changes / sub-engine swaps are safe. + * + * Raw matrix cell range is [-1, 1]; paramMeta normalises to [0, 1] via + * `(raw - min) / (max - min)`. UI uses signed values directly and converts + * `(v + 1) / 2` when calling `engine.setParam(i, norm01)`. + * + * @module modular-ui + */ + +// --------------------------------------------------------------------------- +// Module-level constants +// --------------------------------------------------------------------------- + +const STORAGE_KEY = 'nisps-modular-state'; + +const MAX_ADSR = 16; +const MAX_LFO = 32; + +// Matrix cell cycle on left-click (positive only). Shift-click → 0. +// Right-click opens a menu with ±1 / 0 / random. +const CLICK_CYCLE = [0, 0.25, 0.5, 0.75, 1.0]; + +const SUB_ENGINE_OPTIONS = [ + { id: 'subtractive', label: 'Subtractive' }, + { id: 'additive', label: 'Additive' }, + { id: 'fm', label: 'FM' }, +]; + +// --------------------------------------------------------------------------- +// Public API +// --------------------------------------------------------------------------- + +/** + * Initialise the Modular UI. Creates the drawer and dock icon (hidden), and + * wires them to the engine returned by `getEngine()`. + * + * @param {object} opts + * @param {() => object} opts.getEngine — returns current activeEngine + * @param {() => void} [opts.onStateChange] — optional hook when UI state + * persists to localStorage + * @returns {{ teardown, refresh, show, hide, isVisible }} + */ +export function initModularUI({ getEngine, onStateChange } = {}) { + injectStyles(); + + const dockIcon = createDockIcon(); + const drawer = createDrawer(); + + const uiState = loadUIState(); + + // Subscription handle for the active engine's paramMeta:change event. + let unsubParamMeta = null; + let lastWiredEngine = null; + + // DOM refs — populated by the section builders. + const refs = { + subEngineBtns: [], + adsrCountValue: null, + lfoCountValue: null, + adsrEnables: [], + lfoEnables: [], + matrixGrid: null, + matrixEmpty: null, + soundParamList: null, + }; + + // ---- Build panel sections ---- + buildSubEngineSection(drawer.body, refs, applySubEngineChange); + buildPresetsSection(drawer.body, openPresetOverlay); + buildCountSection(drawer.body, refs, applyCountChange); + buildEnableSection(drawer.body, refs, applyEnableChange); + buildMatrixSection(drawer.body, refs, { + onCellCycle: (src, dst) => cycleCell(src, dst), + onCellInvert: (src, dst) => setCell(src, dst, -getCell(src, dst)), + onCellZero: (src, dst) => setCell(src, dst, 0), + onCellPrecise: (src, dst, el) => openPreciseEditor(src, dst, el), + onCellMenu: (src, dst, el, e) => openCellMenu(src, dst, el, e), + }); + buildSoundParamSection(drawer.body, refs, applyExposeChange); + + // ---- Apply saved UI state to engine as soon as we can ---- + // We defer engine mutations until refresh() is called with a live engine. + let pendingRestore = true; + + // --------------------------------------------------------------------------- + // Engine binding + // --------------------------------------------------------------------------- + + function bindEngine(engine) { + if (engine === lastWiredEngine) return; + if (unsubParamMeta) { try { unsubParamMeta(); } catch (_) { /* ignore */ } } + unsubParamMeta = null; + lastWiredEngine = engine; + if (engine && typeof engine.on === 'function') { + unsubParamMeta = engine.on('paramMeta:change', () => { + rebuildMatrixGrid(); + rebuildSoundParamList(); + refreshSubEngineButtons(); + }); + } + } + + // --------------------------------------------------------------------------- + // Build: sub-engine section + // --------------------------------------------------------------------------- + + function refreshSubEngineButtons() { + const engine = getEngine?.(); + if (!engine || engine.id !== 'modular') return; + const available = new Set(engine.availableSubEngines || []); + const active = engine.activeSubEngineId; + for (const btn of refs.subEngineBtns) { + const id = btn.dataset.subEngine; + btn.classList.toggle('active', id === active); + btn.disabled = !available.has(id); + btn.title = available.has(id) + ? `Use ${id} sub-engine` + : `${id} not available yet`; + } + } + + async function applySubEngineChange(id) { + const engine = getEngine?.(); + if (!engine || engine.id !== 'modular') return; + if (id === engine.activeSubEngineId) return; + refs.subEngineBtns.forEach(b => b.classList.toggle('busy', b.dataset.subEngine === id)); + try { + await engine.setSubEngine(id); + uiState.subEngine = id; + saveUIState(); + // paramMeta:change listener rebuilds the grid + } catch (err) { + console.error('[modular-ui] setSubEngine failed:', err); + } finally { + refs.subEngineBtns.forEach(b => b.classList.remove('busy')); + refreshSubEngineButtons(); + } + } + + // --------------------------------------------------------------------------- + // Build: count section + // --------------------------------------------------------------------------- + + function applyCountChange(kind, newCount) { + const engine = getEngine?.(); + if (!engine || engine.id !== 'modular') return; + const adsr = kind === 'adsr' ? newCount : engine.adsrCount; + const lfo = kind === 'lfo' ? newCount : engine.lfoCount; + engine.setModSourceCount?.(adsr, lfo); + uiState.adsrCount = adsr; + uiState.lfoCount = lfo; + // Ensure enable arrays are long enough + while (uiState.adsrEnables.length < MAX_ADSR) uiState.adsrEnables.push(false); + while (uiState.lfoEnables.length < MAX_LFO) uiState.lfoEnables.push(false); + // Newly-in-count slots default to enabled (if previously disabled). + for (let i = 0; i < adsr; i++) if (!uiState.adsrEnables[i]) uiState.adsrEnables[i] = true; + for (let i = 0; i < lfo; i++) if (!uiState.lfoEnables[i]) uiState.lfoEnables[i] = true; + applyAllEnablesToEngine(); + saveUIState(); + refreshCountValues(); + refreshEnableRow(); + rebuildMatrixGrid(); + } + + function refreshCountValues() { + if (refs.adsrCountValue) refs.adsrCountValue.textContent = String(uiState.adsrCount); + if (refs.lfoCountValue) refs.lfoCountValue.textContent = String(uiState.lfoCount); + } + + // --------------------------------------------------------------------------- + // Build: enable switches + // --------------------------------------------------------------------------- + + function refreshEnableRow() { + const active = getEngine?.(); + for (let i = 0; i < MAX_ADSR; i++) { + const btn = refs.adsrEnables[i]; + if (!btn) continue; + const inCount = i < uiState.adsrCount; + btn.classList.toggle('active', !!uiState.adsrEnables[i]); + btn.classList.toggle('out-of-count', !inCount); + btn.title = inCount + ? `ADSR ${i + 1}: ${uiState.adsrEnables[i] ? 'enabled' : 'disabled'}` + : `ADSR ${i + 1}: slot past count (not MLP-driven)`; + } + for (let i = 0; i < MAX_LFO; i++) { + const btn = refs.lfoEnables[i]; + if (!btn) continue; + const inCount = i < uiState.lfoCount; + btn.classList.toggle('active', !!uiState.lfoEnables[i]); + btn.classList.toggle('out-of-count', !inCount); + btn.title = inCount + ? `LFO ${i + 1}: ${uiState.lfoEnables[i] ? 'enabled' : 'disabled'}` + : `LFO ${i + 1}: slot past count (not MLP-driven)`; + } + } + + function applyEnableChange(kind, i, enabled) { + const engine = getEngine?.(); + if (!engine || engine.id !== 'modular') return; + if (kind === 'adsr') uiState.adsrEnables[i] = enabled; + else uiState.lfoEnables[i] = enabled; + writeEnableToEngine(engine, kind, i, enabled); + saveUIState(); + refreshEnableRow(); + } + + function writeEnableToEngine(engine, kind, i, enabled) { + if (typeof engine._setRawByLabel !== 'function') return; + const label = (kind === 'adsr') + ? `MM_ADSR/${pad2(i)}_adsr${pad2(i + 1)}_enable` + : `MM_LFO/${pad2(i)}_lfo${pad2(i + 1)}_enable`; + engine._setRawByLabel(label, enabled ? 1.0 : 0.0); + } + + function applyAllEnablesToEngine() { + const engine = getEngine?.(); + if (!engine || engine.id !== 'modular') return; + for (let i = 0; i < MAX_ADSR; i++) { + writeEnableToEngine(engine, 'adsr', i, !!uiState.adsrEnables[i]); + } + for (let i = 0; i < MAX_LFO; i++) { + writeEnableToEngine(engine, 'lfo', i, !!uiState.lfoEnables[i]); + } + } + + // --------------------------------------------------------------------------- + // Matrix grid + // --------------------------------------------------------------------------- + + /** + * Given engine paramMeta, discover matrix cells by group prefix. + * Returns a Map: `${s}|${d}` -> paramMeta index. + */ + function buildMatrixIndex(engine) { + const out = new Map(); + const meta = engine?.paramMeta ?? []; + for (let i = 0; i < meta.length; i++) { + const m = meta[i]; + if (!m || !m.group || !m.group.startsWith('Matrix/')) continue; + // Label is like "MM_Matrix/s03_d08_amp" — parse out s and d. + const lbl = m.label || ''; + const match = lbl.match(/s(\d{2})_d(\d{2})_/); + if (!match) continue; + const s = parseInt(match[1], 10); + const d = parseInt(match[2], 10); + out.set(`${s}|${d}`, i); + } + return out; + } + + // Current cell values (signed [-1, 1]), keyed by "s|d". Populated from + // paramMeta entries on rebuild; mutated by user interaction. + const cellValues = new Map(); + + function getCell(s, d) { return cellValues.get(`${s}|${d}`) ?? 0; } + + function setCell(s, d, value, { persistToEngine = true } = {}) { + const v = Math.max(-1, Math.min(1, value)); + cellValues.set(`${s}|${d}`, v); + updateCellDOM(s, d, v); + if (!persistToEngine) return; + const engine = getEngine?.(); + if (!engine || engine.id !== 'modular') return; + const idx = matrixIndexCache.get(`${s}|${d}`); + if (idx == null) return; // not in paramMeta (s out of adsr/lfo counts maybe) + const meta = engine.paramMeta[idx]; + if (!meta) return; + const range = (meta.max - meta.min) || 1; + // v is the raw value in the paramMeta [min, max] space for matrix cells + // because we set min=-1, max=1 in the DSP — but meta.min/max are raw, + // so normalise generically. + const norm = (v - meta.min) / range; + engine.setParam(idx, Math.max(0, Math.min(1, norm))); + } + + function cycleCell(s, d) { + const cur = getCell(s, d); + // Cycle positive steps only, wrapping back to 0. + // Negatives reached via right-click menu or precise editor. + let nextIdx = 0; + // Match to nearest current step, then advance. + if (cur > 0) { + let best = 0, bestD = Infinity; + for (let i = 0; i < CLICK_CYCLE.length; i++) { + const diff = Math.abs(CLICK_CYCLE[i] - cur); + if (diff < bestD) { bestD = diff; best = i; } + } + nextIdx = (best + 1) % CLICK_CYCLE.length; + } else { + // From 0 or negative: jump up to 0.25 to start the cycle. + nextIdx = 1; + } + setCell(s, d, CLICK_CYCLE[nextIdx]); + } + + let matrixIndexCache = new Map(); + + function rebuildMatrixGrid() { + const engine = getEngine?.(); + const gridEl = refs.matrixGrid; + if (!gridEl) return; + + gridEl.innerHTML = ''; + matrixIndexCache = new Map(); + cellValues.clear(); + + if (!engine || engine.id !== 'modular') { + if (refs.matrixEmpty) refs.matrixEmpty.textContent = 'Modular engine not active.'; + return; + } + + const destNames = engine.destNames || []; + if (destNames.length === 0) { + if (refs.matrixEmpty) refs.matrixEmpty.textContent = 'Waiting for sub-engine…'; + return; + } + + matrixIndexCache = buildMatrixIndex(engine); + if (matrixIndexCache.size === 0) { + if (refs.matrixEmpty) refs.matrixEmpty.textContent = 'No matrix cells in paramMeta.'; + return; + } + if (refs.matrixEmpty) refs.matrixEmpty.textContent = ''; + + // Seed current values from paramMeta init (normalized 0..1). + const meta = engine.paramMeta; + for (const [key, idx] of matrixIndexCache.entries()) { + const m = meta[idx]; + const range = (m.max - m.min) || 1; + const raw = m.min + m.init * range; + cellValues.set(key, raw); + } + + // Determine visible source range from current counts. + const adsrN = uiState.adsrCount; + const lfoN = uiState.lfoCount; + const visibleSources = []; + for (let i = 0; i < adsrN; i++) visibleSources.push({ s: i, label: `A${i + 1}`, kind: 'adsr' }); + for (let i = 0; i < lfoN; i++) visibleSources.push({ s: 16 + i, label: `L${i + 1}`, kind: 'lfo' }); + // NOTE: source index layout — sources 0..15 are ADSRs, 16..47 are LFOs. + // This mirrors the Faust .dsp's MM_* declaration order, VERIFIED by the + // walk-entry labels: matrix column s00..s15 are ADSRs, s16..s47 are LFOs. + + const cols = destNames.length; + const rows = visibleSources.length; + + // CSS grid: 1 header col + N dest cols × 1 header row + M source rows + gridEl.style.gridTemplateColumns = `auto repeat(${cols}, minmax(28px, 1fr))`; + gridEl.style.gridTemplateRows = `auto repeat(${rows}, 32px)`; + + // Top-left corner + const corner = document.createElement('div'); + corner.className = 'mm-corner'; + gridEl.appendChild(corner); + + // Column headers + destNames.forEach((name, d) => { + const h = document.createElement('div'); + h.className = 'mm-col-header'; + h.textContent = shortDest(name); + h.title = name; + gridEl.appendChild(h); + }); + + // Rows + visibleSources.forEach((src) => { + const rh = document.createElement('div'); + rh.className = `mm-row-header mm-src-${src.kind}`; + rh.textContent = src.label; + rh.title = src.kind === 'adsr' ? `ADSR ${src.s + 1}` : `LFO ${src.s - 15}`; + gridEl.appendChild(rh); + + for (let d = 0; d < cols; d++) { + const cell = document.createElement('div'); + cell.className = 'mm-cell'; + cell.dataset.s = src.s; + cell.dataset.d = d; + const has = matrixIndexCache.has(`${src.s}|${d}`); + if (!has) cell.classList.add('unavailable'); + attachCellHandlers(cell, src.s, d); + gridEl.appendChild(cell); + updateCellDOM(src.s, d, getCell(src.s, d)); + } + }); + } + + function updateCellDOM(s, d, v) { + const cell = refs.matrixGrid?.querySelector(`.mm-cell[data-s="${s}"][data-d="${d}"]`); + if (!cell) return; + const abs = Math.abs(v); + const label = v === 0 + ? '' + : (v > 0 ? '' : '−') + abs.toFixed(2).replace(/^0/, ''); + cell.textContent = label; + const alpha = Math.min(1, abs); + const color = v >= 0 + ? `rgba(255, 106, 0, ${alpha * 0.85})` // accent (positive) + : `rgba(80, 160, 255, ${alpha * 0.85})`; // blue (negative / inverted) + cell.style.background = alpha > 0.01 + ? color + : 'rgba(255, 255, 255, 0.04)'; + cell.classList.toggle('nonzero', alpha > 0.01); + } + + function attachCellHandlers(cell, s, d) { + let longPressTimer = null; + let didLongPress = false; + + cell.addEventListener('click', (e) => { + if (cell.classList.contains('unavailable')) return; + if (didLongPress) { didLongPress = false; return; } + if (e.shiftKey) { setCell(s, d, 0); return; } + cycleCell(s, d); + }); + + cell.addEventListener('contextmenu', (e) => { + e.preventDefault(); + if (cell.classList.contains('unavailable')) return; + openCellMenu(s, d, cell, e); + }); + + // Long-press → precise editor (mobile-friendly). + const startLong = () => { + longPressTimer = setTimeout(() => { + didLongPress = true; + openPreciseEditor(s, d, cell); + }, 500); + }; + const cancelLong = () => { + if (longPressTimer) { clearTimeout(longPressTimer); longPressTimer = null; } + }; + cell.addEventListener('pointerdown', startLong); + cell.addEventListener('pointerup', cancelLong); + cell.addEventListener('pointerleave', cancelLong); + cell.addEventListener('pointercancel', cancelLong); + } + + function openPreciseEditor(s, d, cellEl) { + const cur = getCell(s, d); + const input = prompt(`Matrix s${pad2(s)} → d${pad2(d)} (range -1..1)`, String(cur)); + if (input == null) return; + const v = parseFloat(input); + if (!Number.isFinite(v)) return; + setCell(s, d, v); + } + + function openCellMenu(s, d, cellEl, ev) { + const existing = document.getElementById('mm-cell-menu'); + if (existing) existing.remove(); + + const menu = document.createElement('div'); + menu.id = 'mm-cell-menu'; + menu.className = 'mm-cell-menu'; + const actions = [ + { label: 'Set +1', fn: () => setCell(s, d, 1) }, + { label: 'Set +0.5', fn: () => setCell(s, d, 0.5) }, + { label: 'Set 0', fn: () => setCell(s, d, 0) }, + { label: 'Set -0.5', fn: () => setCell(s, d, -0.5) }, + { label: 'Set -1', fn: () => setCell(s, d, -1) }, + { label: 'Invert', fn: () => setCell(s, d, -getCell(s, d)) }, + { label: 'Random', fn: () => setCell(s, d, (Math.random() * 2) - 1) }, + { label: 'Precise…', fn: () => openPreciseEditor(s, d, cellEl) }, + ]; + for (const a of actions) { + const b = document.createElement('button'); + b.textContent = a.label; + b.addEventListener('click', () => { a.fn(); menu.remove(); }); + menu.appendChild(b); + } + + document.body.appendChild(menu); + const rect = cellEl.getBoundingClientRect(); + const x = Math.min(window.innerWidth - 180, rect.left); + const y = Math.min(window.innerHeight - menu.offsetHeight - 10, rect.bottom + 4); + menu.style.left = `${x}px`; + menu.style.top = `${y}px`; + + // Dismiss on outside click. + const dismiss = (e) => { + if (!menu.contains(e.target)) { + menu.remove(); + document.removeEventListener('pointerdown', dismiss, true); + } + }; + setTimeout(() => document.addEventListener('pointerdown', dismiss, true), 0); + } + + // --------------------------------------------------------------------------- + // Sound param exposure + // --------------------------------------------------------------------------- + + function rebuildSoundParamList() { + const list = refs.soundParamList; + if (!list) return; + list.innerHTML = ''; + const engine = getEngine?.(); + if (!engine || engine.id !== 'modular' || + typeof engine.getEngineSoundParamLabels !== 'function') { + const note = document.createElement('div'); + note.className = 'mm-hint'; + note.textContent = 'Modular engine not active.'; + list.appendChild(note); + return; + } + const entries = engine.getEngineSoundParamLabels(); + if (entries.length === 0) { + const note = document.createElement('div'); + note.className = 'mm-hint'; + note.textContent = 'No engine sound params exposed by this sub-engine.'; + list.appendChild(note); + return; + } + + // Group by top-level prefix for readability. + const groups = new Map(); + for (const e of entries) { + const [group] = splitLabel(e.label); + if (!groups.has(group)) groups.set(group, []); + groups.get(group).push(e); + } + + for (const [group, params] of groups.entries()) { + const h = document.createElement('div'); + h.className = 'mm-sound-group'; + h.textContent = prettyGroup(group); + list.appendChild(h); + + for (const p of params) { + const row = document.createElement('label'); + row.className = 'mm-sound-row'; + const cb = document.createElement('input'); + cb.type = 'checkbox'; + cb.checked = engine.isEngineParamExposed?.(p.label) ?? false; + cb.addEventListener('change', () => applyExposeChange(p.label, cb.checked)); + const name = document.createElement('span'); + name.textContent = stripIndexPrefix(splitLabel(p.label)[1]); + name.title = p.label; + row.appendChild(cb); + row.appendChild(name); + list.appendChild(row); + } + } + + const warning = document.createElement('div'); + warning.className = 'mm-hint warn'; + warning.textContent = + 'Toggling exposes/unexposes a param to the MLP. The network is resized ' + + 'in place (training examples are preserved; output layer is warm-started).'; + list.appendChild(warning); + } + + // --------------------------------------------------------------------------- + // Preset overlay (Phase E) + // --------------------------------------------------------------------------- + + async function openPresetOverlay() { + const existing = document.getElementById('mm-preset-overlay'); + if (existing) existing.remove(); + + const overlay = document.createElement('div'); + overlay.id = 'mm-preset-overlay'; + overlay.className = 'mm-preset-overlay'; + + const panel = document.createElement('div'); + panel.className = 'mm-preset-panel'; + + const header = document.createElement('div'); + header.className = 'mm-preset-header'; + const title = document.createElement('div'); + title.className = 'mm-preset-title'; + title.textContent = 'Modular presets'; + const closeBtn = document.createElement('button'); + closeBtn.className = 'mm-preset-close'; + closeBtn.innerHTML = '×'; + closeBtn.addEventListener('click', () => overlay.remove()); + header.appendChild(title); + header.appendChild(closeBtn); + panel.appendChild(header); + + const list = document.createElement('div'); + list.className = 'mm-preset-list'; + for (const preset of MODULAR_PRESETS) { + const item = document.createElement('button'); + item.className = 'mm-preset-item'; + item.dataset.presetId = preset.id; + const name = document.createElement('div'); + name.className = 'mm-preset-name'; + name.textContent = preset.name; + const desc = document.createElement('div'); + desc.className = 'mm-preset-desc'; + desc.textContent = preset.description; + const sub = document.createElement('div'); + sub.className = 'mm-preset-sub'; + sub.textContent = preset.state?.subEngine ?? ''; + item.appendChild(name); + item.appendChild(desc); + item.appendChild(sub); + item.addEventListener('click', async () => { + item.classList.add('busy'); + try { + const engine = getEngine?.(); + if (engine && engine.id === 'modular') { + await applyPreset(engine, preset); + // Sync Phase C UI state to reflect the preset's sub-engine + // and counts so the rebuild that follows matches the engine. + if (preset.state?.subEngine) uiState.subEngine = preset.state.subEngine; + if (typeof preset.state?.adsrCount === 'number') { + uiState.adsrCount = preset.state.adsrCount; + } + if (typeof preset.state?.lfoCount === 'number') { + uiState.lfoCount = preset.state.lfoCount; + } + saveUIState(); + onStateChange?.(); // trigger a-app saveState -> persists DSP snapshot + refresh(); + } + } catch (err) { + console.error('[modular-ui] preset apply failed:', err); + } finally { + item.classList.remove('busy'); + overlay.remove(); + } + }); + list.appendChild(item); + } + panel.appendChild(list); + overlay.appendChild(panel); + + // Dismiss on backdrop click + overlay.addEventListener('click', (e) => { + if (e.target === overlay) overlay.remove(); + }); + + document.body.appendChild(overlay); + } + + function applyExposeChange(label, exposed) { + const engine = getEngine?.(); + if (!engine || engine.id !== 'modular') return; + engine.setExposeEngineParam?.(label, exposed); + if (exposed) { + if (!uiState.exposedEngineParams.includes(label)) { + uiState.exposedEngineParams.push(label); + } + } else { + uiState.exposedEngineParams = uiState.exposedEngineParams.filter(l => l !== label); + } + saveUIState(); + // paramMeta:change listener rebuilds the matrix & list. + } + + // --------------------------------------------------------------------------- + // Lifecycle + // --------------------------------------------------------------------------- + + function show() { + dockIcon.classList.remove('hidden'); + const engine = getEngine?.(); + if (engine && engine.id === 'modular') bindEngine(engine); + refresh(); + } + + function hide() { + dockIcon.classList.add('hidden'); + dockIcon.classList.remove('active'); + drawer.root.classList.add('hidden'); + } + + function isVisible() { + return !dockIcon.classList.contains('hidden'); + } + + function refresh() { + const engine = getEngine?.(); + if (!engine || engine.id !== 'modular') return; + bindEngine(engine); + + // One-time apply of persisted state to the engine. + if (pendingRestore) { + pendingRestore = false; + try { + if (uiState.subEngine && uiState.subEngine !== engine.activeSubEngineId + && engine.availableSubEngines?.includes(uiState.subEngine)) { + engine.setSubEngine?.(uiState.subEngine); + } + // Sync counts (UI persisted → engine). Guard if method missing. + if (typeof engine.setModSourceCount === 'function') { + engine.setModSourceCount(uiState.adsrCount, uiState.lfoCount); + } + // Re-expose saved sound params. + for (const label of uiState.exposedEngineParams) { + engine.setExposeEngineParam?.(label, true); + } + applyAllEnablesToEngine(); + } catch (err) { + console.warn('[modular-ui] restore failed:', err); + } + } + + // Keep UI widgets in sync with engine state (in case engine was + // mutated outside of our control — e.g. preset load). + if (engine.adsrCount != null) uiState.adsrCount = engine.adsrCount; + if (engine.lfoCount != null) uiState.lfoCount = engine.lfoCount; + + refreshSubEngineButtons(); + refreshCountValues(); + refreshEnableRow(); + rebuildMatrixGrid(); + rebuildSoundParamList(); + } + + function teardown() { + if (unsubParamMeta) { try { unsubParamMeta(); } catch (_) { /* ignore */ } } + unsubParamMeta = null; + dockIcon.remove(); + drawer.root.remove(); + const style = document.getElementById('modular-ui-styles'); + if (style) style.remove(); + } + + // Start hidden (engine-gated). + hide(); + + // Listen for close button on our drawer so the dock icon state stays synced. + drawer.closeBtn.addEventListener('click', () => { + drawer.root.classList.add('hidden'); + dockIcon.classList.remove('active'); + }); + + // Dock icon opens/closes our drawer. We piggy-back on the existing + // wireDock() event delegation — but since our drawer's id is `drawer-modular` + // and our icon uses `data-drawer="modular"`, wireDock() already handles it. + // However, wireDock was wired at init time — any new dock-click delegation + // works because it's attached to #dock via event delegation. + + return { + teardown, + refresh, + show, + hide, + isVisible, + /** Exposed for testability. */ + _debug: { + getCell, + setCell, + cycleCell, + uiState: () => ({ ...uiState }), + }, + }; + + // =========================================================================== + // Section builders + // =========================================================================== + + function buildSubEngineSection(body, refs, onChange) { + const section = el('div', 'mm-section'); + section.appendChild(el('div', 'mm-section-header', 'Sub-engine')); + + const row = el('div', 'mm-row mm-sub-row'); + for (const opt of SUB_ENGINE_OPTIONS) { + const b = el('button', 'mm-sub-btn', opt.label); + b.dataset.subEngine = opt.id; + b.addEventListener('click', () => onChange(opt.id)); + refs.subEngineBtns.push(b); + row.appendChild(b); + } + section.appendChild(row); + body.appendChild(section); + } + + function buildPresetsSection(body, onOpen) { + const section = el('div', 'mm-section'); + const header = el('div', 'mm-section-header', 'Presets'); + section.appendChild(header); + const btn = el('button', 'mm-preset-open-btn', 'Load preset…'); + btn.addEventListener('click', onOpen); + section.appendChild(btn); + body.appendChild(section); + } + + function buildCountSection(body, refs, onCountChange) { + const section = el('div', 'mm-section'); + section.appendChild(el('div', 'mm-section-header', 'Mod Pool')); + + const hint = el('div', 'mm-hint', + 'Slots past the count stay alive in the DSP but are not MLP-driven. ' + + 'Changing counts reinitialises the MLP.'); + section.appendChild(hint); + + const mkStepper = (labelText, kind, max) => { + const row = el('div', 'mm-row mm-stepper-row'); + row.appendChild(el('label', 'mm-label', labelText)); + const dec = el('button', 'mm-step-btn', '−'); + const val = el('span', 'mm-step-val', String(uiState[kind === 'adsr' ? 'adsrCount' : 'lfoCount'])); + const inc = el('button', 'mm-step-btn', '+'); + dec.addEventListener('click', () => { + const cur = parseInt(val.textContent, 10); + if (cur > 1) onCountChange(kind, cur - 1); + }); + inc.addEventListener('click', () => { + const cur = parseInt(val.textContent, 10); + if (cur < max) onCountChange(kind, cur + 1); + }); + row.appendChild(dec); + row.appendChild(val); + row.appendChild(inc); + row.appendChild(el('span', 'mm-step-range', `(1..${max})`)); + if (kind === 'adsr') refs.adsrCountValue = val; + else refs.lfoCountValue = val; + return row; + }; + + section.appendChild(mkStepper('ADSR count', 'adsr', MAX_ADSR)); + section.appendChild(mkStepper('LFO count', 'lfo', MAX_LFO)); + body.appendChild(section); + } + + function buildEnableSection(body, refs, onEnableChange) { + const section = el('div', 'mm-section'); + section.appendChild(el('div', 'mm-section-header', 'Slot enables')); + + const mkRow = (kind, max) => { + const wrap = el('div', 'mm-enable-wrap'); + wrap.appendChild(el('div', 'mm-enable-label', kind.toUpperCase())); + const row = el('div', 'mm-enable-row'); + for (let i = 0; i < max; i++) { + const b = el('button', `mm-enable-btn mm-enable-${kind}`, String(i + 1)); + b.addEventListener('click', () => { + const enabled = !b.classList.contains('active'); + onEnableChange(kind, i, enabled); + }); + if (kind === 'adsr') refs.adsrEnables.push(b); + else refs.lfoEnables.push(b); + row.appendChild(b); + } + wrap.appendChild(row); + return wrap; + }; + + section.appendChild(mkRow('adsr', MAX_ADSR)); + section.appendChild(mkRow('lfo', MAX_LFO)); + body.appendChild(section); + } + + function buildMatrixSection(body, refs, handlers) { + const section = el('div', 'mm-section mm-matrix-section'); + const header = el('div', 'mm-section-header', 'Matrix'); + // Phase E: the tap-vs-drag mode toggle stub was deleted — drag-to-paint + // is non-goal for Phase E and the button did nothing functional. + section.appendChild(header); + + const legend = el('div', 'mm-hint', + 'Click to cycle 0 → 0.25 → 0.5 → 0.75 → 1 → 0. ' + + 'Shift-click: zero. Long-press: precise. Right-click: menu (negatives).'); + section.appendChild(legend); + + const scrollWrap = el('div', 'mm-scroll'); + const grid = el('div', 'mm-grid'); + refs.matrixGrid = grid; + scrollWrap.appendChild(grid); + section.appendChild(scrollWrap); + + const empty = el('div', 'mm-hint warn', ''); + refs.matrixEmpty = empty; + section.appendChild(empty); + + body.appendChild(section); + } + + function buildSoundParamSection(body, refs, onExposeChange) { + const section = el('div', 'mm-section'); + section.appendChild(el('div', 'mm-section-header', 'Engine sound params')); + const list = el('div', 'mm-sound-list'); + refs.soundParamList = list; + section.appendChild(list); + body.appendChild(section); + } + + // =========================================================================== + // localStorage + // =========================================================================== + + function loadUIState() { + const defaults = { + subEngine: 'subtractive', + adsrCount: 4, + lfoCount: 8, + adsrEnables: Array.from({ length: MAX_ADSR }, (_, i) => i < 4), + lfoEnables: Array.from({ length: MAX_LFO }, (_, i) => i < 8), + exposedEngineParams: [], + }; + try { + const raw = localStorage.getItem(STORAGE_KEY); + if (!raw) return defaults; + const s = JSON.parse(raw); + return { + subEngine: typeof s.subEngine === 'string' ? s.subEngine : defaults.subEngine, + adsrCount: clamp(s.adsrCount, 1, MAX_ADSR, defaults.adsrCount), + lfoCount: clamp(s.lfoCount, 1, MAX_LFO, defaults.lfoCount), + adsrEnables: padBool(s.adsrEnables, MAX_ADSR, defaults.adsrEnables), + lfoEnables: padBool(s.lfoEnables, MAX_LFO, defaults.lfoEnables), + exposedEngineParams: Array.isArray(s.exposedEngineParams) ? s.exposedEngineParams.slice() : [], + }; + } catch (_) { + return defaults; + } + } + + function saveUIState() { + try { + localStorage.setItem(STORAGE_KEY, JSON.stringify(uiState)); + onStateChange?.(); + } catch (err) { + console.warn('[modular-ui] saveUIState failed:', err); + } + } +} + +// --------------------------------------------------------------------------- +// DOM scaffolding +// --------------------------------------------------------------------------- + +function createDockIcon() { + const dock = document.getElementById('dock'); + if (!dock) throw new Error('[modular-ui] #dock not found'); + + // Insert before the help icon if present, else append. + const helpIcon = dock.querySelector('.dock-icon[data-drawer="help"]'); + const btn = document.createElement('button'); + btn.className = 'dock-icon hidden'; + btn.dataset.drawer = 'modular'; + btn.title = 'Modular mod pool & matrix'; + btn.innerHTML = ` + + + + + + + + + + + + Mod + `; + if (helpIcon) dock.insertBefore(btn, helpIcon); + else dock.appendChild(btn); + return btn; +} + +function createDrawer() { + const stack = document.getElementById('drawer-stack'); + if (!stack) throw new Error('[modular-ui] #drawer-stack not found'); + + const root = document.createElement('div'); + root.className = 'drawer hidden mm-drawer'; + root.id = 'drawer-modular'; + root.dataset.drawer = 'modular'; + + const header = document.createElement('div'); + header.className = 'drawer-header'; + const title = document.createElement('span'); + title.textContent = 'Modular'; + const closeBtn = document.createElement('button'); + closeBtn.className = 'drawer-close'; + closeBtn.dataset.drawer = 'modular'; + closeBtn.innerHTML = '×'; + header.appendChild(title); + header.appendChild(closeBtn); + + const body = document.createElement('div'); + body.className = 'drawer-body mm-body'; + + root.appendChild(header); + root.appendChild(body); + stack.appendChild(root); + + return { root, header, body, closeBtn }; +} + +// --------------------------------------------------------------------------- +// Styles +// --------------------------------------------------------------------------- + +function injectStyles() { + if (document.getElementById('modular-ui-styles')) return; + const s = document.createElement('style'); + s.id = 'modular-ui-styles'; + s.textContent = ` + .mm-drawer .mm-body { + display: flex; + flex-direction: column; + gap: 12px; + overflow-y: auto; + overflow-x: hidden; + padding: 8px 10px 16px; + max-height: 85vh; + } + .mm-section { + display: flex; + flex-direction: column; + gap: 6px; + padding: 8px; + border: 1px solid var(--glass-border, rgba(255,255,255,0.08)); + border-radius: var(--radius-sm, 8px); + background: rgba(255,255,255,0.02); + } + .mm-section-header { + display: flex; + align-items: center; + justify-content: space-between; + gap: 8px; + font-size: 0.7rem; + text-transform: uppercase; + letter-spacing: 0.08em; + color: var(--text-dim, #888); + margin-bottom: 2px; + } + .mm-row { + display: flex; + align-items: center; + gap: 6px; + flex-wrap: wrap; + } + .mm-label { + flex: 0 0 auto; + font-size: 0.75rem; + color: var(--text-dim, #888); + } + .mm-hint { + font-size: 0.65rem; + color: var(--text-dim, #888); + line-height: 1.3; + } + .mm-hint.warn { + color: #ffb070; + } + + /* Sub-engine buttons */ + .mm-sub-row { gap: 4px; } + .mm-sub-btn { + flex: 1; + padding: 8px 10px; + background: rgba(255,255,255,0.04); + border: 1px solid var(--glass-border, rgba(255,255,255,0.1)); + border-radius: 6px; + color: var(--text, #e0e0e0); + font-size: 0.75rem; + cursor: pointer; + min-height: 34px; + touch-action: manipulation; + } + .mm-sub-btn:hover:not(:disabled) { border-color: var(--accent, #ff6a00); } + .mm-sub-btn.active { + background: var(--accent-dim, rgba(255,106,0,0.25)); + border-color: var(--accent, #ff6a00); + color: var(--accent, #ff6a00); + } + .mm-sub-btn:disabled { + opacity: 0.35; + cursor: not-allowed; + } + .mm-sub-btn.busy { opacity: 0.6; } + + /* Steppers */ + .mm-stepper-row { + display: flex; + align-items: center; + gap: 6px; + } + .mm-stepper-row .mm-label { flex: 1; } + .mm-step-btn { + width: 32px; + height: 32px; + background: rgba(255,255,255,0.04); + border: 1px solid var(--glass-border, rgba(255,255,255,0.1)); + border-radius: 6px; + color: var(--text, #e0e0e0); + cursor: pointer; + font-size: 1rem; + touch-action: manipulation; + } + .mm-step-btn:hover { border-color: var(--accent, #ff6a00); } + .mm-step-val { + display: inline-block; + min-width: 28px; + text-align: center; + font-variant-numeric: tabular-nums; + font-weight: 500; + } + .mm-step-range { + font-size: 0.65rem; + color: var(--text-dim, #888); + margin-left: 4px; + } + + /* Enable rows */ + .mm-enable-wrap { + display: flex; + flex-direction: column; + gap: 3px; + } + .mm-enable-label { + font-size: 0.6rem; + color: var(--text-dim, #888); + text-transform: uppercase; + letter-spacing: 0.08em; + } + .mm-enable-row { + display: flex; + flex-wrap: wrap; + gap: 3px; + } + .mm-enable-btn { + width: 24px; + height: 24px; + font-size: 0.6rem; + background: rgba(255,255,255,0.04); + border: 1px solid var(--glass-border, rgba(255,255,255,0.1)); + border-radius: 4px; + color: var(--text-dim, #888); + cursor: pointer; + padding: 0; + touch-action: manipulation; + } + .mm-enable-btn.active { + background: var(--accent-dim, rgba(255,106,0,0.25)); + border-color: var(--accent, #ff6a00); + color: var(--accent, #ff6a00); + } + .mm-enable-btn.out-of-count { + opacity: 0.35; + } + + /* Matrix grid */ + .mm-matrix-section { + /* Allow this section to take extra vertical space */ + } + .mm-mode-toggle { + font-size: 0.6rem; + padding: 2px 6px; + background: rgba(255,255,255,0.04); + border: 1px solid var(--glass-border, rgba(255,255,255,0.1)); + border-radius: 4px; + color: var(--text-dim, #888); + cursor: pointer; + touch-action: manipulation; + } + .mm-scroll { + overflow-x: auto; + overflow-y: auto; + max-height: 360px; + border-radius: 4px; + border: 1px solid var(--glass-border, rgba(255,255,255,0.06)); + } + .mm-grid { + display: grid; + gap: 1px; + background: rgba(255,255,255,0.05); + padding: 1px; + min-width: max-content; + touch-action: manipulation; + } + .mm-corner, + .mm-col-header, + .mm-row-header { + background: #0d0d0d; + color: var(--text-dim, #888); + font-size: 0.55rem; + display: flex; + align-items: center; + justify-content: center; + padding: 2px 4px; + text-transform: uppercase; + letter-spacing: 0.05em; + position: sticky; + z-index: 2; + } + .mm-col-header { + top: 0; + writing-mode: vertical-rl; + transform: rotate(180deg); + min-height: 48px; + min-width: 28px; + } + .mm-row-header { + left: 0; + min-width: 32px; + font-weight: 500; + } + .mm-row-header.mm-src-adsr { color: #ffb070; } + .mm-row-header.mm-src-lfo { color: #6bb6ff; } + .mm-corner { + top: 0; + left: 0; + z-index: 3; + } + .mm-cell { + background: rgba(255,255,255,0.04); + cursor: pointer; + font-size: 0.55rem; + font-variant-numeric: tabular-nums; + display: flex; + align-items: center; + justify-content: center; + min-height: 32px; + min-width: 28px; + user-select: none; + color: #fff; + transition: background 120ms ease; + } + .mm-cell:hover:not(.unavailable) { + outline: 1px solid rgba(255,255,255,0.25); + } + .mm-cell.unavailable { + cursor: not-allowed; + background: repeating-linear-gradient( + 45deg, + rgba(255,255,255,0.02), + rgba(255,255,255,0.02) 4px, + rgba(255,255,255,0.05) 4px, + rgba(255,255,255,0.05) 8px + ); + } + + /* Context menu */ + .mm-cell-menu { + position: fixed; + background: #0d0d0d; + border: 1px solid var(--glass-border, rgba(255,255,255,0.15)); + border-radius: 6px; + padding: 4px; + display: flex; + flex-direction: column; + gap: 2px; + box-shadow: 0 4px 16px rgba(0,0,0,0.5); + z-index: 9999; + min-width: 140px; + } + .mm-cell-menu button { + background: transparent; + border: none; + color: var(--text, #e0e0e0); + text-align: left; + padding: 6px 10px; + font-size: 0.7rem; + border-radius: 4px; + cursor: pointer; + touch-action: manipulation; + } + .mm-cell-menu button:hover { + background: var(--accent-dim, rgba(255,106,0,0.25)); + color: var(--accent, #ff6a00); + } + + /* Sound params list */ + .mm-sound-list { + display: flex; + flex-direction: column; + gap: 4px; + max-height: 260px; + overflow-y: auto; + } + .mm-sound-group { + font-size: 0.6rem; + text-transform: uppercase; + letter-spacing: 0.06em; + color: var(--text-dim, #888); + margin-top: 6px; + padding-bottom: 2px; + border-bottom: 1px solid var(--glass-border, rgba(255,255,255,0.06)); + } + .mm-sound-row { + display: flex; + align-items: center; + gap: 6px; + font-size: 0.72rem; + color: var(--text, #e0e0e0); + padding: 3px 2px; + cursor: pointer; + } + .mm-sound-row input[type="checkbox"] { + accent-color: var(--accent, #ff6a00); + width: 16px; + height: 16px; + } + + /* Preset overlay (Phase E) */ + .mm-preset-open-btn { + padding: 8px 12px; + background: rgba(255,255,255,0.04); + border: 1px solid var(--glass-border, rgba(255,255,255,0.1)); + border-radius: 6px; + color: var(--text, #e0e0e0); + cursor: pointer; + font-size: 0.75rem; + text-align: center; + touch-action: manipulation; + } + .mm-preset-open-btn:hover { + border-color: var(--accent, #ff6a00); + color: var(--accent, #ff6a00); + } + .mm-preset-overlay { + position: fixed; + inset: 0; + background: rgba(0, 0, 0, 0.7); + display: flex; + align-items: center; + justify-content: center; + z-index: 10000; + padding: 16px; + } + .mm-preset-panel { + background: #0d0d0d; + border: 1px solid var(--glass-border, rgba(255,255,255,0.15)); + border-radius: 10px; + width: min(420px, 100%); + max-height: 85vh; + display: flex; + flex-direction: column; + overflow: hidden; + box-shadow: 0 16px 48px rgba(0, 0, 0, 0.7); + } + .mm-preset-header { + display: flex; + align-items: center; + justify-content: space-between; + padding: 12px 16px; + border-bottom: 1px solid var(--glass-border, rgba(255,255,255,0.08)); + } + .mm-preset-title { + font-size: 0.85rem; + text-transform: uppercase; + letter-spacing: 0.08em; + color: var(--text, #e0e0e0); + } + .mm-preset-close { + background: transparent; + border: none; + color: var(--text-dim, #888); + font-size: 1.3rem; + cursor: pointer; + padding: 0 6px; + } + .mm-preset-close:hover { color: var(--accent, #ff6a00); } + .mm-preset-list { + display: flex; + flex-direction: column; + gap: 1px; + background: rgba(255,255,255,0.04); + overflow-y: auto; + } + .mm-preset-item { + background: #0d0d0d; + border: none; + color: var(--text, #e0e0e0); + text-align: left; + padding: 10px 16px; + cursor: pointer; + display: flex; + flex-direction: column; + gap: 2px; + touch-action: manipulation; + } + .mm-preset-item:hover { + background: var(--accent-dim, rgba(255,106,0,0.15)); + } + .mm-preset-item.busy { opacity: 0.5; } + .mm-preset-name { + font-size: 0.85rem; + font-weight: 500; + color: var(--accent, #ff6a00); + } + .mm-preset-desc { + font-size: 0.7rem; + color: var(--text-dim, #888); + line-height: 1.3; + } + .mm-preset-sub { + font-size: 0.6rem; + color: var(--text-dim, #666); + text-transform: uppercase; + letter-spacing: 0.08em; + } + + /* Mobile tweaks */ + @media (max-width: 640px) { + .mm-drawer .mm-body { padding: 6px 8px 12px; gap: 10px; } + .mm-cell { min-width: 26px; min-height: 28px; font-size: 0.5rem; } + .mm-scroll { max-height: 300px; } + } + `; + document.head.appendChild(s); +} + +// --------------------------------------------------------------------------- +// Helpers +// --------------------------------------------------------------------------- + +function el(tag, className, text) { + const e = document.createElement(tag); + if (className) e.className = className; + if (text != null) e.textContent = text; + return e; +} + +function pad2(n) { + return String(n).padStart(2, '0'); +} + +function clamp(v, lo, hi, fallback) { + const n = typeof v === 'number' ? v : parseInt(v, 10); + if (!Number.isFinite(n)) return fallback; + return Math.max(lo, Math.min(hi, n)); +} + +function padBool(arr, len, fallback) { + const src = Array.isArray(arr) ? arr : fallback; + const out = new Array(len); + for (let i = 0; i < len; i++) out[i] = !!src[i]; + return out; +} + +function splitLabel(label) { + const i = label.lastIndexOf('/'); + if (i < 0) return ['', label]; + return [label.slice(0, i), label.slice(i + 1)]; +} + +function stripIndexPrefix(leaf) { + return leaf.replace(/^\d+_/, ''); +} + +function prettyGroup(group) { + // "1_Oscillators" → "Oscillators" + return group.replace(/^\d+_/, '').replace(/_/g, ' '); +} + +function shortDest(name) { + // Truncate long destination names for column headers. + if (name.length <= 10) return name; + return name.slice(0, 9) + '…'; +} diff --git a/tests/e2e/modular-mode.spec.js b/tests/e2e/modular-mode.spec.js new file mode 100644 index 0000000..e403585 --- /dev/null +++ b/tests/e2e/modular-mode.spec.js @@ -0,0 +1,263 @@ +/** + * Modular mode e2e tests (Phase E). + * + * These tests exercise the modular engine end-to-end via the debug probe + * (?debug=1, window.__nisps). They verify: + * 1. Switching to the modular engine gives paramCount = 512 + * 2. Sub-engine swaps keep paramCount = 512 and update destNames + * 3. Matrix cell / DSP state round-trips through getState/setState + * 4. The full state survives a page reload (a-app.js save/load path) + * 5. ADSR/LFO count changes rebuild paramMeta consistently + * 6. Presets apply and produce the expected matrix/source state + * 7. The default patch allows noteOn to produce non-silent output + * 8. destNames differ between sub-engines (sanity) + */ +const { test, expect } = require('@playwright/test'); +const { loadApp } = require('./helpers'); + +/** + * Switch the active engine to `modular` via the engine-switcher UI. + * Waits until window.__nisps.activeEngineId === 'modular'. + */ +async function switchToModular(page) { + // Open the synth drawer first (needed to see the engine cards). + const drawer = page.locator('#drawer-synth'); + if (await drawer.evaluate(el => el.classList.contains('hidden'))) { + await page.click('[data-drawer="synth"]'); + } + page.once('dialog', d => d.accept()); + await page.click('.engine-card[data-engine-id="modular"]'); + // Wait until setActiveEngine completes AND the modular dock icon becomes + // visible — the dock icon is revealed from the tail end of setActiveEngine + // so this guarantees the initial modular-ui.refresh() restore pass has run. + // Without this we race: test code can fire before modularUI.show() + // reaches refresh()'s pendingRestore branch, which then wipes the test's + // subsequent sub-engine swap. + await page.waitForFunction( + () => window.__nisps?.activeEngineId === 'modular', + null, + { timeout: 20_000 } + ); + await page.waitForFunction( + () => !document.querySelector('.dock-icon[data-drawer="modular"]')?.classList.contains('hidden'), + null, + { timeout: 20_000 } + ); + // Also yield one extra microtask so any synchronous deferred work queued + // inside setActiveEngine settles before we start poking the engine. + await page.evaluate(() => new Promise(r => setTimeout(r, 0))); +} + +test.describe('Modular mode', () => { + + test('switching to modular yields paramCount = 512', async ({ page }) => { + await loadApp(page); + await switchToModular(page); + const count = await page.evaluate(() => window.__nisps.paramCount); + expect(count).toBe(512); + }); + + test('debug probe exposes modular hooks', async ({ page }) => { + await loadApp(page); + await switchToModular(page); + const hooks = await page.evaluate(() => ({ + hasGet: typeof window.__nisps.getModularState === 'function', + hasSet: typeof window.__nisps.setModularState === 'function', + hasSwap: typeof window.__nisps.setModularSubEngine === 'function', + hasPreset: typeof window.__nisps.applyModularPreset === 'function', + hasCounts: typeof window.__nisps.setModularSourceCount === 'function', + presetList: window.__nisps.listModularPresets?.()?.length ?? 0, + })); + expect(hooks.hasGet).toBe(true); + expect(hooks.hasSet).toBe(true); + expect(hooks.hasSwap).toBe(true); + expect(hooks.hasPreset).toBe(true); + expect(hooks.hasCounts).toBe(true); + expect(hooks.presetList).toBe(6); + }); + + test('sub-engine swap keeps paramCount = 512', async ({ page }) => { + await loadApp(page); + await switchToModular(page); + + for (const sub of ['additive', 'fm', 'subtractive']) { + await page.evaluate(async (id) => { + await window.__nisps.setModularSubEngine(id); + }, sub); + const info = await page.evaluate(() => ({ + paramCount: window.__nisps.paramCount, + subId: window.__nisps.activeEngine?.activeSubEngineId, + })); + expect(info.subId).toBe(sub); + expect(info.paramCount).toBe(512); + } + }); + + test('destNames differ between sub-engines', async ({ page }) => { + await loadApp(page); + await switchToModular(page); + const sub = await page.evaluate(() => window.__nisps.activeEngine?.destNames); + await page.evaluate(async () => { + await window.__nisps.setModularSubEngine('fm'); + }); + const fm = await page.evaluate(() => window.__nisps.activeEngine?.destNames); + expect(sub).toBeTruthy(); + expect(fm).toBeTruthy(); + expect(sub).toEqual(['pitch','osc2_detune','osc3_detune','osc_mix_bal','noise_level','cutoff','resonance','filter_env_amt','amp','pan']); + expect(fm[1]).toBe('op1_level'); // fm-specific + expect(sub).not.toEqual(fm); + }); + + test('ADSR count change rebuilds paramMeta', async ({ page }) => { + await loadApp(page); + await switchToModular(page); + + const baseline = await page.evaluate(() => window.__nisps.paramCount); + expect(baseline).toBe(512); + + await page.evaluate(() => window.__nisps.setModularSourceCount(6, 8)); + const after = await page.evaluate(() => window.__nisps.paramCount); + // 6 ADSRs * 4 + 8 LFOs * 2 + 48*10 = 24 + 16 + 480 = 520 + expect(after).toBe(520); + + await page.evaluate(() => window.__nisps.setModularSourceCount(4, 8)); + const reset = await page.evaluate(() => window.__nisps.paramCount); + expect(reset).toBe(512); + }); + + test('getState returns a snapshot with raw dsp values', async ({ page }) => { + await loadApp(page); + await switchToModular(page); + const snap = await page.evaluate(() => window.__nisps.getModularState()); + expect(snap).toBeTruthy(); + expect(snap.version).toBe(1); + expect(snap.subEngine).toBe('subtractive'); + expect(typeof snap.dsp).toBe('object'); + // At least the default amp route should be set to 1.0 by the default patch. + expect(snap.dsp['MM_Matrix/s00_d08_amp']).toBeCloseTo(1.0, 4); + expect(snap.dsp['MM_ADSR/00_adsr01_enable']).toBeCloseTo(1.0, 4); + }); + + test('matrix cell persistence across setState', async ({ page }) => { + await loadApp(page); + await switchToModular(page); + + // Pick a distinctive cell: ADSR2 (s=1) → cutoff (d=5) on subtractive. + await page.evaluate(() => { + const engine = window.__nisps.activeEngine; + const idx = engine.paramMeta.findIndex(m => + m.label === 'MM_Matrix/s01_d05_cutoff'); + if (idx < 0) throw new Error('no s01_d05_cutoff cell in paramMeta'); + // paramMeta min=-1 max=1; 0.9 in norm = 0.8 raw. + engine.setParam(idx, 0.9); + }); + + const snap = await page.evaluate(() => window.__nisps.getModularState()); + expect(snap.dsp['MM_Matrix/s01_d05_cutoff']).toBeCloseTo(0.8, 4); + + // Mutate further, then restore. + await page.evaluate(() => { + const engine = window.__nisps.activeEngine; + const idx = engine.paramMeta.findIndex(m => + m.label === 'MM_Matrix/s01_d05_cutoff'); + engine.setParam(idx, 0.1); + }); + + const midSnap = await page.evaluate(() => window.__nisps.getModularState()); + expect(midSnap.dsp['MM_Matrix/s01_d05_cutoff']).not.toBeCloseTo(0.8, 4); + + await page.evaluate(async (s) => { + await window.__nisps.setModularState(s); + }, snap); + + const restored = await page.evaluate(() => window.__nisps.getModularState()); + expect(restored.dsp['MM_Matrix/s01_d05_cutoff']).toBeCloseTo(0.8, 4); + }); + + test('modular DSP state survives a page reload', async ({ page }) => { + // NOTE: don't use loadApp() because it installs an addInitScript that + // clears nisps-a-immersive on every navigation — including our reload. + // Replicate loadApp's bootstrap inline, using a localStorage sentinel + // (NOT window.__x) so the "first nav only" guard survives subsequent + // navigations on the same origin. + await page.addInitScript(() => { + if (!localStorage.getItem('__nisps-test-bootstrapped')) { + localStorage.setItem('__nisps-test-bootstrapped', '1'); + localStorage.removeItem('nisps-a-immersive'); + } + localStorage.setItem('nisps-help-seen', '1'); + }); + await page.goto('/a-immersive.html?debug=1'); + await page.waitForFunction(() => window.__nisps !== undefined, { timeout: 20_000 }); + + await switchToModular(page); + + // Set a distinctive value, save, then reload the page (localStorage + // is now preserved across the nav because __nispsTestBootstrapped is set). + await page.evaluate(() => { + const engine = window.__nisps.activeEngine; + engine._setRawByLabel('3_Filter/01_resonance', 0.73); + }); + await page.evaluate(() => window.__nisps.saveState()); + + await page.goto('/a-immersive.html?debug=1'); + await page.waitForFunction(() => window.__nisps !== undefined, { timeout: 20_000 }); + + // Engine is deferred-constructed; clicking the modular card re-instantiates + // it and the pending DSP state should be applied before setActiveEngine. + await switchToModular(page); + + const restored = await page.evaluate(() => window.__nisps.getModularState()); + expect(restored).toBeTruthy(); + expect(restored.dsp['3_Filter/01_resonance']).toBeCloseTo(0.73, 4); + }); + + test('preset apply: plucky bass sets the expected matrix routes', async ({ page }) => { + await loadApp(page); + await switchToModular(page); + + const ok = await page.evaluate(async () => { + return await window.__nisps.applyModularPreset('modular-plucky-bass'); + }); + expect(ok).toBe(true); + + const snap = await page.evaluate(() => window.__nisps.getModularState()); + expect(snap.subEngine).toBe('subtractive'); + // ADSR2 fast decay + expect(snap.dsp['MM_ADSR/01_adsr02_decay']).toBeCloseTo(0.15, 4); + // Matrix: ADSR2 (s01) → cutoff (d05) at raw 0.8 + expect(snap.dsp['MM_Matrix/s01_d05_cutoff']).toBeCloseTo(0.8, 4); + // Filter cutoff moved to 400 Hz + expect(snap.dsp['3_Filter/00_cutoff']).toBeCloseTo(400, 2); + }); + + test('preset apply: DX bell swaps to fm sub-engine', async ({ page }) => { + await loadApp(page); + await switchToModular(page); + + await page.evaluate(async () => { + await window.__nisps.applyModularPreset('modular-dx-bell'); + }); + const snap = await page.evaluate(() => window.__nisps.getModularState()); + expect(snap.subEngine).toBe('fm'); + expect(snap.dsp['MM_Matrix/s02_d03_op3_level']).toBeCloseTo(1.0, 4); + + // paramCount should still be 512 after the cross-engine swap. + const count = await page.evaluate(() => window.__nisps.paramCount); + expect(count).toBe(512); + }); + + test('initial outputs are in [0,1] after modular swap', async ({ page }) => { + await loadApp(page); + await switchToModular(page); + + // Set inputs so the MLP runs a forward pass. + await page.evaluate(() => window.__nisps.setInputs(0.3, 0.7)); + const outputs = await page.evaluate(() => window.__nisps.getOutputs()); + expect(outputs.length).toBe(512); + for (const v of outputs) { + expect(v).toBeGreaterThanOrEqual(0); + expect(v).toBeLessThanOrEqual(1); + } + }); +});