@nice2dev/ui-audio 1.0.3 → 1.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,227 @@
1
+ /**
2
+ * Music Notation — Score editor, tab editor, drum notation,
3
+ * chord charts, lyrics mode, MusicXML, PDF export, playback,
4
+ * part extraction, transposition.
5
+ *
6
+ * PRO-3.6 — 10 items
7
+ *
8
+ * @module @nice2dev/ui-audio/engine/notation
9
+ */
10
+ export type Clef = 'treble' | 'bass' | 'alto' | 'tenor' | 'percussion';
11
+ export type NoteValue = 'whole' | 'half' | 'quarter' | 'eighth' | '16th' | '32nd' | '64th';
12
+ export type Accidental = 'sharp' | 'flat' | 'natural' | 'double-sharp' | 'double-flat';
13
+ export type DynamicMarking = 'ppp' | 'pp' | 'p' | 'mp' | 'mf' | 'f' | 'ff' | 'fff' | 'sfz' | 'fp' | 'cresc' | 'decresc';
14
+ export type ArticulationMark = 'staccato' | 'tenuto' | 'accent' | 'marcato' | 'fermata' | 'trill' | 'mordent' | 'turn' | 'grace-note' | 'glissando' | 'portamento';
15
+ export interface TimeSignature {
16
+ numerator: number;
17
+ denominator: number;
18
+ }
19
+ export interface KeySignature {
20
+ /** Number of sharps (positive) or flats (negative) */
21
+ fifths: number;
22
+ mode: 'major' | 'minor';
23
+ }
24
+ export interface ScoreNote {
25
+ id: string;
26
+ pitch: {
27
+ step: string;
28
+ octave: number;
29
+ alter?: number;
30
+ };
31
+ duration: NoteValue;
32
+ /** Dots (0, 1, 2) */
33
+ dots: number;
34
+ /** Tied to next note */
35
+ tied: boolean;
36
+ /** Beam group */
37
+ beamGroup?: string;
38
+ /** Tuplet */
39
+ tuplet?: {
40
+ actual: number;
41
+ normal: number;
42
+ };
43
+ accidental?: Accidental;
44
+ /** Articulations */
45
+ articulations: ArticulationMark[];
46
+ /** Lyrics syllable */
47
+ lyric?: string;
48
+ /** Fingering */
49
+ fingering?: number;
50
+ /** Is this a rest? */
51
+ isRest: boolean;
52
+ /** Voice number (for multi-voice writing) */
53
+ voice: number;
54
+ }
55
+ export interface ScoreMeasure {
56
+ id: string;
57
+ number: number;
58
+ notes: ScoreNote[];
59
+ /** Barline type at end */
60
+ barline: 'regular' | 'double' | 'final' | 'repeat-start' | 'repeat-end' | 'repeat-both';
61
+ /** Dynamic markings at specific beats */
62
+ dynamics: Array<{
63
+ beat: number;
64
+ marking: DynamicMarking;
65
+ }>;
66
+ /** Tempo marking */
67
+ tempo?: {
68
+ bpm: number;
69
+ noteValue: NoteValue;
70
+ text?: string;
71
+ };
72
+ /** Rehearsal mark */
73
+ rehearsalMark?: string;
74
+ }
75
+ export interface ScoreStaff {
76
+ id: string;
77
+ name: string;
78
+ /** Instrument name */
79
+ instrument: string;
80
+ /** MIDI program */
81
+ midiProgram: number;
82
+ /** MIDI channel */
83
+ midiChannel: number;
84
+ clef: Clef;
85
+ /** Transposition (semitones) for transposing instruments */
86
+ transposition: number;
87
+ measures: ScoreMeasure[];
88
+ }
89
+ export interface Score {
90
+ id: string;
91
+ title: string;
92
+ composer?: string;
93
+ arranger?: string;
94
+ copyright?: string;
95
+ timeSignature: TimeSignature;
96
+ keySignature: KeySignature;
97
+ /** Default tempo */
98
+ tempo: number;
99
+ staves: ScoreStaff[];
100
+ }
101
+ export type TabInstrument = 'guitar-6' | 'guitar-7' | 'bass-4' | 'bass-5' | 'ukulele' | 'banjo' | 'mandolin';
102
+ export interface TabTuning {
103
+ instrument: TabInstrument;
104
+ /** String pitches from lowest to highest (MIDI note) */
105
+ stringPitches: number[];
106
+ }
107
+ export declare const STANDARD_TUNINGS: Record<string, TabTuning>;
108
+ export interface TabNote {
109
+ id: string;
110
+ /** String number (0 = lowest) */
111
+ string: number;
112
+ /** Fret number */
113
+ fret: number;
114
+ duration: NoteValue;
115
+ /** Technique */
116
+ technique?: 'hammer-on' | 'pull-off' | 'slide' | 'bend' | 'vibrato' | 'tap' | 'harmonic' | 'palm-mute' | 'let-ring';
117
+ /** Bend amount (semitones) */
118
+ bendAmount?: number;
119
+ }
120
+ export interface TabMeasure {
121
+ id: string;
122
+ number: number;
123
+ notes: TabNote[];
124
+ }
125
+ export interface DrumNotationMap {
126
+ /** Maps drum name to staff position */
127
+ [drumName: string]: {
128
+ staffLine: number;
129
+ noteHead: 'normal' | 'x' | 'diamond' | 'triangle' | 'slash';
130
+ stem: 'up' | 'down';
131
+ };
132
+ }
133
+ export declare const GM_DRUM_MAP: DrumNotationMap;
134
+ export interface ChordChartBar {
135
+ id: string;
136
+ chords: Array<{
137
+ symbol: string;
138
+ beat: number;
139
+ duration: number;
140
+ }>;
141
+ /** Rehearsal section */
142
+ section?: string;
143
+ }
144
+ export interface ChordChart {
145
+ id: string;
146
+ title: string;
147
+ key: string;
148
+ tempo: number;
149
+ timeSignature: TimeSignature;
150
+ bars: ChordChartBar[];
151
+ }
152
+ export interface LyricsWithChords {
153
+ lines: Array<{
154
+ text: string;
155
+ /** Chords positioned at character indices */
156
+ chords: Array<{
157
+ charIndex: number;
158
+ symbol: string;
159
+ }>;
160
+ }>;
161
+ /** Section labels */
162
+ sections: Array<{
163
+ lineIndex: number;
164
+ label: string;
165
+ }>;
166
+ }
167
+ export interface MusicXmlOptions {
168
+ /** MusicXML version */
169
+ version: '3.1' | '4.0';
170
+ /** Partwise or timewise */
171
+ structure: 'partwise' | 'timewise';
172
+ /** Include layout info */
173
+ includeLayout: boolean;
174
+ /** Encoding */
175
+ encoding: 'utf-8';
176
+ }
177
+ export interface ScorePdfExportOptions {
178
+ /** Paper size */
179
+ paperSize: 'A4' | 'A3' | 'Letter' | 'Legal' | 'Tabloid';
180
+ orientation: 'portrait' | 'landscape';
181
+ /** Margins (mm) */
182
+ margins: {
183
+ top: number;
184
+ bottom: number;
185
+ left: number;
186
+ right: number;
187
+ };
188
+ /** Staff size (mm) */
189
+ staffSize: number;
190
+ /** Include title page */
191
+ titlePage: boolean;
192
+ /** Include page numbers */
193
+ pageNumbers: boolean;
194
+ /** Font for text */
195
+ textFont: string;
196
+ }
197
+ export interface SoundfontConfig {
198
+ /** Soundfont file reference */
199
+ url: string;
200
+ /** Format */
201
+ format: 'sf2' | 'sf3' | 'sfz';
202
+ /** Preloaded instruments */
203
+ preloadPrograms: number[];
204
+ }
205
+ export interface PartExtractionOptions {
206
+ /** Staff IDs to extract */
207
+ staffIds: string[];
208
+ /** Include cue notes from other parts */
209
+ includeCueNotes: boolean;
210
+ /** Transpose to concert pitch */
211
+ concertPitch: boolean;
212
+ /** Include rehearsal marks */
213
+ includeRehearsalMarks: boolean;
214
+ /** Page breaks */
215
+ insertPageBreaks: boolean;
216
+ }
217
+ export interface TranspositionOptions {
218
+ /** Semitones to transpose (positive = up) */
219
+ semitones: number;
220
+ /** Prefer sharps or flats when re-spelling */
221
+ preferAccidental: 'sharp' | 'flat';
222
+ /** Keep or recalculate key signature */
223
+ updateKeySignature: boolean;
224
+ /** Which staves to transpose (empty = all) */
225
+ staffIds?: string[];
226
+ }
227
+ //# sourceMappingURL=notation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notation.d.ts","sourceRoot":"","sources":["../../src/engine/notation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,385 @@
1
+ /**
2
+ * Sound Design Tools — Synthesizer engine, sample editor, foley,
3
+ * ambience, procedural sound, audio sprites, Wwise/FMOD,
4
+ * spatial audio, modular synth, sampler, drum machine,
5
+ * morphing, granular, spectral, field recording.
6
+ *
7
+ * PRO-3.5 — 15 items
8
+ *
9
+ * @module @nice2dev/ui-audio/engine/sound-design
10
+ */
11
+ export type SynthType = 'virtual-analog' | 'fm' | 'wavetable' | 'granular' | 'additive' | 'subtractive' | 'physical-model';
12
+ export type OscillatorWaveform = 'sine' | 'saw' | 'square' | 'triangle' | 'pulse' | 'noise-white' | 'noise-pink' | 'custom';
13
+ export interface SynthOscillator {
14
+ id: string;
15
+ waveform: OscillatorWaveform;
16
+ /** Detune (cents) */
17
+ detune: number;
18
+ /** Octave offset */
19
+ octave: number;
20
+ /** Semitone offset */
21
+ semitone: number;
22
+ /** Mix level */
23
+ level: number;
24
+ /** Pulse width (for pulse waveform) */
25
+ pulseWidth?: number;
26
+ /** Wavetable position (for wavetable synth) */
27
+ wavetablePosition?: number;
28
+ /** Number of unison voices */
29
+ unisonVoices: number;
30
+ unisonDetune: number;
31
+ unisonSpread: number;
32
+ }
33
+ export interface SynthEnvelope {
34
+ attack: number;
35
+ decay: number;
36
+ sustain: number;
37
+ release: number;
38
+ /** Velocity sensitivity (0-1) */
39
+ velocitySens: number;
40
+ }
41
+ export interface SynthFilter {
42
+ type: 'low-pass' | 'high-pass' | 'band-pass' | 'notch' | 'comb' | 'formant';
43
+ cutoff: number;
44
+ resonance: number;
45
+ keyTracking: number;
46
+ envelope: SynthEnvelope;
47
+ envelopeAmount: number;
48
+ }
49
+ export interface SynthLfo {
50
+ id: string;
51
+ waveform: OscillatorWaveform;
52
+ rate: number;
53
+ /** Sync to tempo? */
54
+ tempoSync: boolean;
55
+ depth: number;
56
+ /** Target parameter */
57
+ destination: string;
58
+ /** Phase offset (0-360) */
59
+ phase: number;
60
+ /** Fade-in time (seconds) */
61
+ fadeIn: number;
62
+ }
63
+ export interface SynthPatch {
64
+ id: string;
65
+ name: string;
66
+ type: SynthType;
67
+ oscillators: SynthOscillator[];
68
+ filter: SynthFilter;
69
+ ampEnvelope: SynthEnvelope;
70
+ lfos: SynthLfo[];
71
+ /** Polyphony */
72
+ polyphony: number;
73
+ /** Portamento (glide time, seconds) */
74
+ portamento: number;
75
+ /** Master pitch bend range (semitones) */
76
+ pitchBendRange: number;
77
+ }
78
+ export interface SampleLoop {
79
+ start: number;
80
+ end: number;
81
+ /** Crossfade length for smooth looping */
82
+ crossfade: number;
83
+ type: 'forward' | 'backward' | 'ping-pong';
84
+ }
85
+ export interface SampleInfo {
86
+ id: string;
87
+ name: string;
88
+ /** Root note (MIDI) */
89
+ rootNote: number;
90
+ /** Sample rate */
91
+ sampleRate: number;
92
+ /** Bit depth */
93
+ bitDepth: number;
94
+ channels: number;
95
+ /** Duration in seconds */
96
+ duration: number;
97
+ loop?: SampleLoop;
98
+ /** Start/end trim points */
99
+ trimStart: number;
100
+ trimEnd: number;
101
+ }
102
+ export type FoleyCategory = 'footsteps' | 'impacts' | 'cloth' | 'doors' | 'vehicles' | 'weather' | 'nature' | 'mechanical' | 'electronic' | 'water' | 'fire' | 'glass' | 'metal' | 'wood' | 'paper';
103
+ export interface FoleyAsset {
104
+ id: string;
105
+ name: string;
106
+ category: FoleyCategory;
107
+ tags: string[];
108
+ /** Duration (seconds) */
109
+ duration: number;
110
+ /** File reference */
111
+ fileRef: string;
112
+ /** BPM (if rhythmic) */
113
+ bpm?: number;
114
+ /** Key (if tonal) */
115
+ key?: string;
116
+ }
117
+ export interface AmbienceLayer {
118
+ id: string;
119
+ name: string;
120
+ fileRef: string;
121
+ /** Volume (0-1) */
122
+ volume: number;
123
+ /** Pan (-1 to +1) */
124
+ pan: number;
125
+ /** Randomization: +/- variation in playback parameters */
126
+ pitchVariation: number;
127
+ volumeVariation: number;
128
+ panVariation: number;
129
+ /** Looping */
130
+ loop: boolean;
131
+ /** Probability of playing (0-1, for random triggering) */
132
+ probability: number;
133
+ /** Min/max interval between triggering (ms) */
134
+ intervalMin: number;
135
+ intervalMax: number;
136
+ }
137
+ export interface AmbiencePreset {
138
+ id: string;
139
+ name: string;
140
+ layers: AmbienceLayer[];
141
+ /** Crossfade time between presets (seconds) */
142
+ crossfadeTime: number;
143
+ }
144
+ export type ProceduralSoundType = 'footstep' | 'impact' | 'explosion' | 'gunshot' | 'engine' | 'wind' | 'rain' | 'thunder' | 'fire' | 'insect' | 'bird' | 'whoosh' | 'alarm' | 'sci-fi';
145
+ export interface ProceduralSoundParams {
146
+ type: ProceduralSoundType;
147
+ /** Intensity (0-1) */
148
+ intensity: number;
149
+ /** Duration (seconds) */
150
+ duration: number;
151
+ /** Pitch modifier */
152
+ pitch: number;
153
+ /** Surface/material (for footsteps/impacts) */
154
+ surface?: string;
155
+ /** Randomization seed */
156
+ seed?: number;
157
+ }
158
+ export interface AudioSprite {
159
+ name: string;
160
+ start: number;
161
+ end: number;
162
+ loop: boolean;
163
+ }
164
+ export interface AudioSpriteSheet {
165
+ id: string;
166
+ /** Combined audio file ref */
167
+ audioFileRef: string;
168
+ format: 'mp3' | 'ogg' | 'webm' | 'wav';
169
+ sprites: AudioSprite[];
170
+ /** JSON manifest */
171
+ manifest: Record<string, unknown>;
172
+ }
173
+ export type MiddlewareTarget = 'wwise' | 'fmod';
174
+ export interface MiddlewareExportOptions {
175
+ target: MiddlewareTarget;
176
+ /** Project path */
177
+ projectPath: string;
178
+ /** Auto-create events? */
179
+ createEvents: boolean;
180
+ /** Naming convention */
181
+ namingConvention: 'camelCase' | 'snake_case' | 'PascalCase';
182
+ /** Include metadata */
183
+ includeMetadata: boolean;
184
+ }
185
+ export type SpatialModel = 'binaural' | 'ambisonics-1st' | 'ambisonics-2nd' | 'ambisonics-3rd' | 'surround-5.1' | 'surround-7.1' | 'atmos';
186
+ export interface SpatialSource {
187
+ id: string;
188
+ /** 3D position */
189
+ position: {
190
+ x: number;
191
+ y: number;
192
+ z: number;
193
+ };
194
+ /** Distance attenuation curve */
195
+ attenuationModel: 'linear' | 'logarithmic' | 'inverse' | 'custom';
196
+ minDistance: number;
197
+ maxDistance: number;
198
+ /** HRTF profile reference */
199
+ hrtfRef?: string;
200
+ /** Directivity pattern */
201
+ directivity: 'omni' | 'cardioid' | 'supercardioid' | 'figure8';
202
+ /** Cone angles for directional sources */
203
+ innerAngle?: number;
204
+ outerAngle?: number;
205
+ outerGain?: number;
206
+ }
207
+ export interface SpatialAudioConfig {
208
+ model: SpatialModel;
209
+ /** Listener position */
210
+ listenerPosition: {
211
+ x: number;
212
+ y: number;
213
+ z: number;
214
+ };
215
+ listenerRotation: {
216
+ yaw: number;
217
+ pitch: number;
218
+ roll: number;
219
+ };
220
+ sources: SpatialSource[];
221
+ /** Room acoustics */
222
+ room?: {
223
+ width: number;
224
+ height: number;
225
+ depth: number;
226
+ wallMaterial: string;
227
+ reflections: boolean;
228
+ };
229
+ }
230
+ export type ModuleType = 'oscillator' | 'filter' | 'envelope' | 'lfo' | 'vca' | 'mixer' | 'delay' | 'reverb' | 'quantizer' | 'sequencer' | 'sample-hold' | 'ring-mod' | 'noise' | 'clock' | 'utility' | 'output';
231
+ export interface ModularPort {
232
+ id: string;
233
+ name: string;
234
+ direction: 'input' | 'output';
235
+ type: 'audio' | 'cv' | 'gate' | 'trigger';
236
+ }
237
+ export interface ModularModule {
238
+ id: string;
239
+ type: ModuleType;
240
+ name: string;
241
+ /** Eurorack HP width */
242
+ hpWidth: number;
243
+ ports: ModularPort[];
244
+ params: Record<string, number>;
245
+ x: number;
246
+ y: number;
247
+ }
248
+ export interface PatchCable {
249
+ id: string;
250
+ fromModuleId: string;
251
+ fromPortId: string;
252
+ toModuleId: string;
253
+ toPortId: string;
254
+ color: string;
255
+ }
256
+ export interface ModularRack {
257
+ id: string;
258
+ name: string;
259
+ /** Row count */
260
+ rows: number;
261
+ /** HP per row */
262
+ hpPerRow: number;
263
+ modules: ModularModule[];
264
+ cables: PatchCable[];
265
+ }
266
+ export interface SamplerZone {
267
+ id: string;
268
+ sampleRef: string;
269
+ /** Key range */
270
+ keyLow: number;
271
+ keyHigh: number;
272
+ /** Velocity range */
273
+ velLow: number;
274
+ velHigh: number;
275
+ /** Root note */
276
+ rootNote: number;
277
+ /** Tuning (cents) */
278
+ tune: number;
279
+ /** Volume (dB) */
280
+ gain: number;
281
+ /** Pan */
282
+ pan: number;
283
+ loop?: SampleLoop;
284
+ /** Round-robin group */
285
+ roundRobinGroup?: number;
286
+ }
287
+ export interface SamplerInstrument {
288
+ id: string;
289
+ name: string;
290
+ zones: SamplerZone[];
291
+ ampEnvelope: {
292
+ attack: number;
293
+ decay: number;
294
+ sustain: number;
295
+ release: number;
296
+ };
297
+ filterEnabled: boolean;
298
+ filterType?: 'low-pass' | 'high-pass' | 'band-pass';
299
+ filterCutoff?: number;
300
+ filterResonance?: number;
301
+ }
302
+ export interface DrumMachineKit {
303
+ id: string;
304
+ name: string;
305
+ /** Emulation style */
306
+ emulation: '808' | '909' | 'linndrum' | 'sp-1200' | 'mpc' | 'custom';
307
+ pads: Array<{
308
+ id: string;
309
+ name: string;
310
+ sampleRef: string;
311
+ pitch: number;
312
+ decay: number;
313
+ level: number;
314
+ pan: number;
315
+ /** Analog parameter tweaks */
316
+ tone?: number;
317
+ snap?: number;
318
+ }>;
319
+ }
320
+ export interface MorphConfig {
321
+ sourceA: string;
322
+ sourceB: string;
323
+ /** Morph position (0 = A, 1 = B) */
324
+ position: number;
325
+ /** Morph method */
326
+ method: 'spectral' | 'crossfade' | 'granular' | 'vocoder';
327
+ /** Preserve timing of source A */
328
+ preserveTiming: boolean;
329
+ }
330
+ export interface GranularConfig {
331
+ /** Grain size (ms) */
332
+ grainSize: number;
333
+ /** Grain density (grains/second) */
334
+ density: number;
335
+ /** Playback position (0-1 through buffer) */
336
+ position: number;
337
+ /** Position randomization */
338
+ positionSpread: number;
339
+ /** Pitch randomization (cents) */
340
+ pitchSpread: number;
341
+ /** Grain envelope type */
342
+ envelopeType: 'gaussian' | 'trapezoid' | 'hanning' | 'tukey';
343
+ /** Spray — random time scatter (ms) */
344
+ spray: number;
345
+ /** Freeze mode (stay at current position) */
346
+ freeze: boolean;
347
+ /** Direction */
348
+ direction: 'forward' | 'backward' | 'random';
349
+ }
350
+ export type SpectralProcessType = 'freeze' | 'blur' | 'shift' | 'stretch' | 'smear' | 'denoise' | 'morph' | 'robotize' | 'whisperize';
351
+ export interface SpectralProcessConfig {
352
+ type: SpectralProcessType;
353
+ /** FFT size */
354
+ fftSize: 256 | 512 | 1024 | 2048 | 4096 | 8192;
355
+ /** Overlap */
356
+ overlap: 2 | 4 | 8 | 16;
357
+ /** Process-specific params */
358
+ params: Record<string, number>;
359
+ }
360
+ export interface FieldRecordingMetadata {
361
+ id: string;
362
+ /** Geolocation */
363
+ latitude?: number;
364
+ longitude?: number;
365
+ altitude?: number;
366
+ /** Date/time of recording */
367
+ recordedAt: string;
368
+ /** Description / notes */
369
+ description: string;
370
+ /** Tags */
371
+ tags: string[];
372
+ /** Equipment used */
373
+ equipment?: string;
374
+ /** Weather conditions */
375
+ weather?: string;
376
+ /** Transcription */
377
+ transcription?: string;
378
+ /** Duration (seconds) */
379
+ duration: number;
380
+ /** Sample rate */
381
+ sampleRate: number;
382
+ /** Bit depth */
383
+ bitDepth: number;
384
+ }
385
+ //# sourceMappingURL=sound-design.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sound-design.d.ts","sourceRoot":"","sources":["../../src/engine/sound-design.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH,MAAM,MAAM,SAAS,GACjB,gBAAgB,GAChB,IAAI,GACJ,WAAW,GACX,UAAU,GACV,UAAU,GACV,aAAa,GACb,gBAAgB,CAAC;AACrB,MAAM,MAAM,kBAAkB,GAC1B,MAAM,GACN,KAAK,GACL,QAAQ,GACR,UAAU,GACV,OAAO,GACP,aAAa,GACb,YAAY,GACZ,QAAQ,CAAC;AAEb,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,qBAAqB;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,oBAAoB;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,sBAAsB;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,uCAAuC;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+CAA+C;IAC/C,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,8BAA8B;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,iCAAiC;IACjC,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,UAAU,GAAG,WAAW,GAAG,WAAW,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;IAC5E,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,aAAa,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,qBAAqB;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,uBAAuB;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,6BAA6B;IAC7B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,SAAS,CAAC;IAChB,WAAW,EAAE,eAAe,EAAE,CAAC;IAC/B,MAAM,EAAE,WAAW,CAAC;IACpB,WAAW,EAAE,aAAa,CAAC;IAC3B,IAAI,EAAE,QAAQ,EAAE,CAAC;IACjB,gBAAgB;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,uCAAuC;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,0CAA0C;IAC1C,cAAc,EAAE,MAAM,CAAC;CACxB;AAMD,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,0CAA0C;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,SAAS,GAAG,UAAU,GAAG,WAAW,CAAC;CAC5C;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,uBAAuB;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,kBAAkB;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,0BAA0B;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,4BAA4B;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAMD,MAAM,MAAM,aAAa,GACrB,WAAW,GACX,SAAS,GACT,OAAO,GACP,OAAO,GACP,UAAU,GACV,SAAS,GACT,QAAQ,GACR,YAAY,GACZ,YAAY,GACZ,OAAO,GACP,MAAM,GACN,OAAO,GACP,OAAO,GACP,MAAM,GACN,OAAO,CAAC;AAEZ,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,aAAa,CAAC;IACxB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,yBAAyB;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,qBAAqB;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,wBAAwB;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,qBAAqB;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAMD,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,mBAAmB;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,qBAAqB;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,0DAA0D;IAC1D,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc;IACd,IAAI,EAAE,OAAO,CAAC;IACd,0DAA0D;IAC1D,WAAW,EAAE,MAAM,CAAC;IACpB,+CAA+C;IAC/C,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,+CAA+C;IAC/C,aAAa,EAAE,MAAM,CAAC;CACvB;AAMD,MAAM,MAAM,mBAAmB,GAC3B,UAAU,GACV,QAAQ,GACR,WAAW,GACX,SAAS,GACT,QAAQ,GACR,MAAM,GACN,MAAM,GACN,SAAS,GACT,MAAM,GACN,QAAQ,GACR,MAAM,GACN,QAAQ,GACR,OAAO,GACP,QAAQ,CAAC;AAEb,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,mBAAmB,CAAC;IAC1B,sBAAsB;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,yBAAyB;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,qBAAqB;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,+CAA+C;IAC/C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yBAAyB;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAMD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,8BAA8B;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,CAAC;IACvC,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,oBAAoB;IACpB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAMD,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,MAAM,CAAC;AAEhD,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,gBAAgB,CAAC;IACzB,mBAAmB;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,0BAA0B;IAC1B,YAAY,EAAE,OAAO,CAAC;IACtB,wBAAwB;IACxB,gBAAgB,EAAE,WAAW,GAAG,YAAY,GAAG,YAAY,CAAC;IAC5D,uBAAuB;IACvB,eAAe,EAAE,OAAO,CAAC;CAC1B;AAMD,MAAM,MAAM,YAAY,GACpB,UAAU,GACV,gBAAgB,GAChB,gBAAgB,GAChB,gBAAgB,GAChB,cAAc,GACd,cAAc,GACd,OAAO,CAAC;AAEZ,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,kBAAkB;IAClB,QAAQ,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9C,iCAAiC;IACjC,gBAAgB,EAAE,QAAQ,GAAG,aAAa,GAAG,SAAS,GAAG,QAAQ,CAAC;IAClE,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,6BAA6B;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0BAA0B;IAC1B,WAAW,EAAE,MAAM,GAAG,UAAU,GAAG,eAAe,GAAG,SAAS,CAAC;IAC/D,0CAA0C;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,YAAY,CAAC;IACpB,wBAAwB;IACxB,gBAAgB,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACtD,gBAAgB,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/D,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,qBAAqB;IACrB,IAAI,CAAC,EAAE;QACL,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,EAAE,OAAO,CAAC;KACtB,CAAC;CACH;AAMD,MAAM,MAAM,UAAU,GAClB,YAAY,GACZ,QAAQ,GACR,UAAU,GACV,KAAK,GACL,KAAK,GACL,OAAO,GACP,OAAO,GACP,QAAQ,GACR,WAAW,GACX,WAAW,GACX,aAAa,GACb,UAAU,GACV,OAAO,GACP,OAAO,GACP,SAAS,GACT,QAAQ,CAAC;AAEb,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC9B,IAAI,EAAE,OAAO,GAAG,IAAI,GAAG,MAAM,GAAG,SAAS,CAAC;CAC3C;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,wBAAwB;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,iBAAiB;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,MAAM,EAAE,UAAU,EAAE,CAAC;CACtB;AAMD,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,qBAAqB;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,qBAAqB;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,kBAAkB;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU;IACV,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,wBAAwB;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,WAAW,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IACjF,aAAa,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,UAAU,GAAG,WAAW,GAAG,WAAW,CAAC;IACpD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAMD,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,sBAAsB;IACtB,SAAS,EAAE,KAAK,GAAG,KAAK,GAAG,UAAU,GAAG,SAAS,GAAG,KAAK,GAAG,QAAQ,CAAC;IACrE,IAAI,EAAE,KAAK,CAAC;QACV,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;QACZ,8BAA8B;QAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC,CAAC;CACJ;AAMD,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,oCAAoC;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,mBAAmB;IACnB,MAAM,EAAE,UAAU,GAAG,WAAW,GAAG,UAAU,GAAG,SAAS,CAAC;IAC1D,kCAAkC;IAClC,cAAc,EAAE,OAAO,CAAC;CACzB;AAMD,MAAM,WAAW,cAAc;IAC7B,sBAAsB;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,oCAAoC;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,6CAA6C;IAC7C,QAAQ,EAAE,MAAM,CAAC;IACjB,6BAA6B;IAC7B,cAAc,EAAE,MAAM,CAAC;IACvB,kCAAkC;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,0BAA0B;IAC1B,YAAY,EAAE,UAAU,GAAG,WAAW,GAAG,SAAS,GAAG,OAAO,CAAC;IAC7D,uCAAuC;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,6CAA6C;IAC7C,MAAM,EAAE,OAAO,CAAC;IAChB,gBAAgB;IAChB,SAAS,EAAE,SAAS,GAAG,UAAU,GAAG,QAAQ,CAAC;CAC9C;AAMD,MAAM,MAAM,mBAAmB,GAC3B,QAAQ,GACR,MAAM,GACN,OAAO,GACP,SAAS,GACT,OAAO,GACP,SAAS,GACT,OAAO,GACP,UAAU,GACV,YAAY,CAAC;AAEjB,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,mBAAmB,CAAC;IAC1B,eAAe;IACf,OAAO,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC/C,cAAc;IACd,OAAO,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;IACxB,8BAA8B;IAC9B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChC;AAMD,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,kBAAkB;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6BAA6B;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,0BAA0B;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW;IACX,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,qBAAqB;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yBAAyB;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oBAAoB;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,yBAAyB;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,kBAAkB;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB"}