gooseworks 0.5.9-dev.59.2b371ca1 → 0.5.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -4
- package/dist/kit/core/assembly-timeline.d.ts +184 -0
- package/dist/kit/core/assembly-timeline.d.ts.map +1 -0
- package/dist/kit/core/assembly-timeline.js +476 -0
- package/dist/kit/core/assembly-timeline.js.map +1 -0
- package/dist/kit/core/device.d.ts.map +1 -1
- package/dist/kit/core/device.js +1 -0
- package/dist/kit/core/device.js.map +1 -1
- package/dist/kit/core/eyes.d.ts +49 -2
- package/dist/kit/core/eyes.d.ts.map +1 -1
- package/dist/kit/core/eyes.js +102 -9
- package/dist/kit/core/eyes.js.map +1 -1
- package/dist/kit/core/final-measure.d.ts +138 -0
- package/dist/kit/core/final-measure.d.ts.map +1 -0
- package/dist/kit/core/final-measure.js +492 -0
- package/dist/kit/core/final-measure.js.map +1 -0
- package/dist/kit/core/outcome.d.ts +5 -1
- package/dist/kit/core/outcome.d.ts.map +1 -1
- package/dist/kit/core/outcome.js +14 -2
- package/dist/kit/core/outcome.js.map +1 -1
- package/dist/kit/core/run.d.ts +7 -0
- package/dist/kit/core/run.d.ts.map +1 -1
- package/dist/kit/core/run.js +304 -8
- package/dist/kit/core/run.js.map +1 -1
- package/dist/kit/core/version.d.ts +3 -1
- package/dist/kit/core/version.d.ts.map +1 -1
- package/dist/kit/core/version.js +4 -2
- package/dist/kit/core/version.js.map +1 -1
- package/dist/kit/line/types.d.ts +2 -0
- package/dist/kit/line/types.d.ts.map +1 -1
- package/dist/kit/maker/inputs.js +1 -1
- package/dist/kit/maker/make.d.ts +8 -0
- package/dist/kit/maker/make.d.ts.map +1 -1
- package/dist/kit/maker/make.js +34 -1
- package/dist/kit/maker/make.js.map +1 -1
- package/dist/kit/maker/parts/html-frames/{1.2.1 → 1.3.1}/part.json +42 -4
- package/dist/kit/maker/parts/html-frames/src/part.d.ts.map +1 -1
- package/dist/kit/maker/parts/html-frames/src/part.js +5 -1
- package/dist/kit/maker/parts/html-frames/src/part.js.map +1 -1
- package/dist/kit/maker/under.d.ts +2 -0
- package/dist/kit/maker/under.d.ts.map +1 -1
- package/dist/kit/maker/under.js +11 -0
- package/dist/kit/maker/under.js.map +1 -1
- package/dist/skills/master-skill.d.ts +2 -2
- package/dist/skills/master-skill.d.ts.map +1 -1
- package/dist/skills/master-skill.js +3 -3
- package/dist/skills/master-skill.js.map +1 -1
- package/dist/skills/server-entry-skills.d.ts +3 -3
- package/dist/skills/server-entry-skills.d.ts.map +1 -1
- package/dist/skills/server-entry-skills.js +34 -35
- package/dist/skills/server-entry-skills.js.map +1 -1
- package/package.json +9 -4
- package/skills/goose-video/SKILL.md +2 -2
- package/skills/make-custom-video/SKILL.md +23 -29
- package/skills/manifest.json +3 -3
|
@@ -0,0 +1,476 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FINAL_ASSEMBLY_DURATION_TOLERANCE_MS = exports.CONTENT_DIMENSIONS = exports.MOTION_PERCEPTIONS = exports.AUDIO_PERCEPTIONS = exports.CALLBACK_INTENT = exports.MAX_PLANNED_TOTAL_SHARE = exports.MAX_PLANNED_PAUSE_MS = exports.MAX_ZOOM = exports.MAX_UNEVEN_STRETCH = exports.SOUNDTRACK_MODES = exports.SPEECH_MODES = exports.ASSEMBLY_FORMAT = void 0;
|
|
4
|
+
exports.cropZoom = cropZoom;
|
|
5
|
+
exports.assemblyPictureSources = assemblyPictureSources;
|
|
6
|
+
exports.portableTimeline = portableTimeline;
|
|
7
|
+
exports.assemblyTimelineRevision = assemblyTimelineRevision;
|
|
8
|
+
exports.normalizeAssemblyTimeline = normalizeAssemblyTimeline;
|
|
9
|
+
exports.measuredFinalDurationMs = measuredFinalDurationMs;
|
|
10
|
+
exports.reviewCapabilities = reviewCapabilities;
|
|
11
|
+
exports.finalContentReviewProblems = finalContentReviewProblems;
|
|
12
|
+
// Source-linked edit intent. File/rebuild checks never certify audiovisual quality.
|
|
13
|
+
const canonical_1 = require("./canonical");
|
|
14
|
+
const final_measure_1 = require("./final-measure");
|
|
15
|
+
exports.ASSEMBLY_FORMAT = 'gooseworks-assembly-timeline/1';
|
|
16
|
+
exports.SPEECH_MODES = ['native_dialogue', 'audio_driven_lipsync', 'narration', 'singing', 'mixed', 'none'];
|
|
17
|
+
exports.SOUNDTRACK_MODES = ['source_ambience', 'music', 'sfx', 'intentional_silence'];
|
|
18
|
+
/** Picture stretch and zoom limits (fix-forward contract section 7, as amended 15 Oct). */
|
|
19
|
+
exports.MAX_UNEVEN_STRETCH = 0.02;
|
|
20
|
+
/**
|
|
21
|
+
* The most a crop may zoom in: the crop's fit-scale over the full source frame's fit-scale.
|
|
22
|
+
* Plain resolution scaling of the whole frame (H3's 432×768 to 1080×1920) is not zoom.
|
|
23
|
+
*/
|
|
24
|
+
exports.MAX_ZOOM = 1.5;
|
|
25
|
+
/** Planned pause and freeze limits, the same numbers the final measurements use. */
|
|
26
|
+
exports.MAX_PLANNED_PAUSE_MS = final_measure_1.FINAL_MEASURE_THRESHOLDS.max_pause_ms;
|
|
27
|
+
exports.MAX_PLANNED_TOTAL_SHARE = final_measure_1.FINAL_MEASURE_THRESHOLDS.max_pause_share;
|
|
28
|
+
/** How far a crop zooms in when its picture fills a `frame` (cover fit); 1 for the whole source. */
|
|
29
|
+
function cropZoom(crop, source, frame) {
|
|
30
|
+
const fit = (w, h) => Math.max(frame.width / w, frame.height / h);
|
|
31
|
+
return fit(crop.w, crop.h) / fit(source.width, source.height);
|
|
32
|
+
}
|
|
33
|
+
/** A segment that deliberately shows an earlier shot again says so with an intent starting with this. */
|
|
34
|
+
exports.CALLBACK_INTENT = 'callback:';
|
|
35
|
+
/** Overrides can introduce picture bytes that never appear in ordinary clips. */
|
|
36
|
+
function assemblyPictureSources(timeline) {
|
|
37
|
+
return [
|
|
38
|
+
...timeline.segments.map(segment => ({ id: segment.id, scene_id: segment.scene_id, source: segment.video, source_kind: 'video' })),
|
|
39
|
+
...(timeline.visual_overrides ?? []).flatMap((override, index) => override.source ? [{ id: `override-${index + 1}`, scene_id: override.scene_id, source: override.source, source_kind: override.source_kind }] : []),
|
|
40
|
+
];
|
|
41
|
+
}
|
|
42
|
+
exports.AUDIO_PERCEPTIONS = ['listened', 'measured'];
|
|
43
|
+
exports.MOTION_PERCEPTIONS = ['watched', 'measured'];
|
|
44
|
+
exports.CONTENT_DIMENSIONS = ['reference_and_concept', 'brand_and_product', 'scale_and_geometry', 'action_and_continuity', 'lip_sync', 'voice_performance', 'pronunciation', 'sound_and_silence', 'pacing_and_joins', 'camera_and_lighting', 'overlays'];
|
|
45
|
+
const object = (v) => !!v && typeof v === 'object' && !Array.isArray(v);
|
|
46
|
+
const hash = (v) => typeof v === 'string' && /^[a-f0-9]{64}$/.test(v);
|
|
47
|
+
const text = (v) => typeof v === 'string' && !!v.trim();
|
|
48
|
+
const ms = (v) => typeof v === 'number' && Number.isSafeInteger(v) && v >= 0;
|
|
49
|
+
const finite = (v) => typeof v === 'number' && Number.isFinite(v);
|
|
50
|
+
const sourceSpan = (s) => (s.out_ms - s.in_ms) / s.speed;
|
|
51
|
+
const speechRole = (role) => ['native_dialogue', 'audio_driven_lipsync', 'narration', 'singing'].includes(role);
|
|
52
|
+
/** The timeline without machine-specific `path` values: what the revision hashes and what goes to the server. */
|
|
53
|
+
function portableTimeline(value) {
|
|
54
|
+
const portable = (v) => Array.isArray(v) ? v.map(portable)
|
|
55
|
+
: object(v) ? Object.fromEntries(Object.entries(v).filter(([key]) => key !== 'path').map(([key, item]) => [key, portable(item)])) : v;
|
|
56
|
+
return portable(value);
|
|
57
|
+
}
|
|
58
|
+
/** Excludes machine-specific transport, while retaining exact assets and source clocks. */
|
|
59
|
+
function assemblyTimelineRevision(value) {
|
|
60
|
+
return (0, canonical_1.canonicalHash)(portableTimeline(value));
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Milliseconds and pixels are whole numbers, so the revision survives a database round trip
|
|
64
|
+
* (a stored fraction can come back rounded and no longer match its review).
|
|
65
|
+
*/
|
|
66
|
+
function fractionalUnits(raw) {
|
|
67
|
+
const found = [];
|
|
68
|
+
const walk = (value, at, inCrop) => {
|
|
69
|
+
if (Array.isArray(value)) {
|
|
70
|
+
value.forEach((item, i) => walk(item, `${at}[${i}]`, false));
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
if (!object(value))
|
|
74
|
+
return;
|
|
75
|
+
for (const [key, item] of Object.entries(value)) {
|
|
76
|
+
const here = at ? `${at}.${key}` : key;
|
|
77
|
+
const unit = key.endsWith('_ms') ? 'milliseconds' : inCrop && ['x', 'y', 'w', 'h'].includes(key) ? 'pixels' : null;
|
|
78
|
+
if (unit && typeof item === 'number' && Number.isFinite(item) && !Number.isInteger(item))
|
|
79
|
+
found.push(`${here} must be a whole number of ${unit} (got ${item})`);
|
|
80
|
+
else
|
|
81
|
+
walk(item, here, key === 'crop');
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
walk(raw, '', false);
|
|
85
|
+
return found;
|
|
86
|
+
}
|
|
87
|
+
const overlaps = (a, b) => a.sha256 === b.sha256 && a.asset_id === b.asset_id && Math.min(a.out_ms, b.out_ms) > Math.max(a.in_ms, b.in_ms);
|
|
88
|
+
const totalMs = (items) => {
|
|
89
|
+
let total = 0;
|
|
90
|
+
let end = -1;
|
|
91
|
+
for (const item of [...items].sort((a, b) => a.start_ms - b.start_ms)) {
|
|
92
|
+
total += Math.max(0, item.end_ms - Math.max(item.start_ms, end));
|
|
93
|
+
end = Math.max(end, item.end_ms);
|
|
94
|
+
}
|
|
95
|
+
return total;
|
|
96
|
+
};
|
|
97
|
+
function gaps(items, duration) {
|
|
98
|
+
const missing = [];
|
|
99
|
+
let end = 0;
|
|
100
|
+
for (const item of [...items].sort((a, b) => a.start_ms - b.start_ms)) {
|
|
101
|
+
if (item.start_ms > end + 1)
|
|
102
|
+
missing.push({ start_ms: end, end_ms: item.start_ms });
|
|
103
|
+
end = Math.max(end, item.end_ms);
|
|
104
|
+
}
|
|
105
|
+
if (end < duration - 1)
|
|
106
|
+
missing.push({ start_ms: end, end_ms: duration });
|
|
107
|
+
return missing;
|
|
108
|
+
}
|
|
109
|
+
/** Structural and clock checks. A complete result still requires source-byte and content review. */
|
|
110
|
+
function normalizeAssemblyTimeline(raw, legacy) {
|
|
111
|
+
if (!object(raw))
|
|
112
|
+
return { status: 'incomplete', timeline: null, revision: null,
|
|
113
|
+
issues: ['Source-linked assembly timeline is missing. Legacy sound must be reviewed before migration.'], ...(legacy ? { legacy } : {}) };
|
|
114
|
+
const issues = [];
|
|
115
|
+
if (raw.format !== exports.ASSEMBLY_FORMAT)
|
|
116
|
+
issues.push(`assembly format must be ${exports.ASSEMBLY_FORMAT}`);
|
|
117
|
+
if (!hash(raw.creative_contract_revision))
|
|
118
|
+
issues.push('creative_contract_revision must identify approved bytes');
|
|
119
|
+
// A fraction is named once, by the whole-units check below.
|
|
120
|
+
if (!finite(raw.duration_ms) || raw.duration_ms < 1 || raw.duration_ms > 180_000)
|
|
121
|
+
issues.push('duration_ms must be 1–180000');
|
|
122
|
+
if (!exports.SPEECH_MODES.includes(raw.speech_mode))
|
|
123
|
+
issues.push('speech_mode is missing or unknown');
|
|
124
|
+
if (!Array.isArray(raw.soundtrack_modes) || raw.soundtrack_modes.some((m) => !exports.SOUNDTRACK_MODES.includes(m)) || new Set(raw.soundtrack_modes).size !== raw.soundtrack_modes.length)
|
|
125
|
+
issues.push('soundtrack_modes must be explicit and unique (an empty list means no extra soundtrack)');
|
|
126
|
+
if (!Array.isArray(raw.segments) || !raw.segments.length || raw.segments.length > 300)
|
|
127
|
+
issues.push('segments must contain 1–300 source-linked entries');
|
|
128
|
+
if (!Array.isArray(raw.audio_cues) || raw.audio_cues.length > 500)
|
|
129
|
+
issues.push('audio_cues must be an explicit list of at most 500');
|
|
130
|
+
if (!Array.isArray(raw.pauses) || raw.pauses.length > 500)
|
|
131
|
+
issues.push('pauses must be an explicit list of at most 500');
|
|
132
|
+
if (!Array.isArray(raw.required_cue_ids) || raw.required_cue_ids.some((id) => !text(id)))
|
|
133
|
+
issues.push('required_cue_ids must be explicit');
|
|
134
|
+
if (raw.visual_overrides !== undefined && (!Array.isArray(raw.visual_overrides) || raw.visual_overrides.length > 500))
|
|
135
|
+
issues.push('visual_overrides must be a bounded explicit list');
|
|
136
|
+
issues.push(...fractionalUnits(raw));
|
|
137
|
+
if (issues.length)
|
|
138
|
+
return { status: 'invalid', timeline: null, revision: null, issues };
|
|
139
|
+
const t = raw;
|
|
140
|
+
const validSource = (s, at, picture = false) => {
|
|
141
|
+
if (!object(s) || !text(s.asset_id) || !hash(s.sha256) || !ms(s.in_ms) || !ms(s.out_ms) || s.out_ms <= s.in_ms || !finite(s.speed) || s.speed < 0.25 || s.speed > 4) {
|
|
142
|
+
issues.push(`${at}: exact asset, hash, bounds and supported speed required`);
|
|
143
|
+
return false;
|
|
144
|
+
}
|
|
145
|
+
if (s.path !== undefined && typeof s.path !== 'string') {
|
|
146
|
+
issues.push(`${at}: path must be a local file path`);
|
|
147
|
+
return false;
|
|
148
|
+
}
|
|
149
|
+
const framed = s.crop !== undefined || s.scale_x !== undefined || s.scale_y !== undefined;
|
|
150
|
+
if (framed && !picture) {
|
|
151
|
+
issues.push(`${at}: crop and scale apply to picture sources only`);
|
|
152
|
+
return false;
|
|
153
|
+
}
|
|
154
|
+
if (s.crop !== undefined) {
|
|
155
|
+
const c = s.crop;
|
|
156
|
+
const px = (v, min) => typeof v === 'number' && Number.isSafeInteger(v) && v >= min;
|
|
157
|
+
if (!object(c) || Object.keys(c).some((k) => !['x', 'y', 'w', 'h'].includes(k)) || !px(c.x, 0) || !px(c.y, 0) || !px(c.w, 1) || !px(c.h, 1)) {
|
|
158
|
+
issues.push(`${at}: crop needs whole source pixels x, y, w and h (w and h at least 1)`);
|
|
159
|
+
return false;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
if (s.scale_x !== undefined || s.scale_y !== undefined) {
|
|
163
|
+
if (!finite(s.scale_x) || !finite(s.scale_y) || s.scale_x <= 0 || s.scale_y <= 0) {
|
|
164
|
+
issues.push(`${at}: scale_x and scale_y go together and must be positive`);
|
|
165
|
+
return false;
|
|
166
|
+
}
|
|
167
|
+
if (Math.abs(s.scale_x / s.scale_y - 1) > exports.MAX_UNEVEN_STRETCH) {
|
|
168
|
+
issues.push(`${at}: uneven stretch (scale_x ${s.scale_x} vs scale_y ${s.scale_y}) distorts the picture by more than ${exports.MAX_UNEVEN_STRETCH * 100}%`);
|
|
169
|
+
return false;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
return true;
|
|
173
|
+
};
|
|
174
|
+
const validRange = (v, at) => {
|
|
175
|
+
if (!object(v) || !ms(v.start_ms) || !ms(v.end_ms) || v.end_ms <= v.start_ms || v.end_ms > t.duration_ms) {
|
|
176
|
+
issues.push(`${at}: invalid final bounds`);
|
|
177
|
+
return false;
|
|
178
|
+
}
|
|
179
|
+
return true;
|
|
180
|
+
};
|
|
181
|
+
const ids = new Set();
|
|
182
|
+
for (const s of t.segments) {
|
|
183
|
+
if (!object(s)) {
|
|
184
|
+
issues.push('segment must be an object');
|
|
185
|
+
continue;
|
|
186
|
+
}
|
|
187
|
+
if (!text(s.id) || ids.has(s.id) || !text(s.scene_id))
|
|
188
|
+
issues.push('segment ids must be unique and scene_id required');
|
|
189
|
+
ids.add(s.id);
|
|
190
|
+
if (!exports.SPEECH_MODES.includes(s.speech_mode) || typeof s.depicts_speech !== 'boolean' || !['preserve', 'muted'].includes(s.native_audio))
|
|
191
|
+
issues.push(`${s.id}: explicit speech and native audio decisions required`);
|
|
192
|
+
if (validRange(s, s.id) && validSource(s.video, s.id, true) && Math.abs(sourceSpan(s.video) - (s.end_ms - s.start_ms)) > 1)
|
|
193
|
+
issues.push(`${s.id}: picture source duration/rate differs from final interval`);
|
|
194
|
+
if (s.video?.speed !== 1 && !text(s.intent))
|
|
195
|
+
issues.push(`${s.id}: speed change needs intent`);
|
|
196
|
+
if (s.depicts_speech && !['native_dialogue', 'audio_driven_lipsync', 'singing'].includes(s.speech_mode))
|
|
197
|
+
issues.push(`${s.id}: speaking face cannot use narration-only or no-speech routing`);
|
|
198
|
+
if (s.depicts_speech && s.speech_mode === 'native_dialogue' && s.native_audio !== 'preserve')
|
|
199
|
+
issues.push(`${s.id}: native dialogue may not be muted`);
|
|
200
|
+
if (s.depicts_speech && s.speech_mode === 'audio_driven_lipsync' && (!validSource(s.speech_driver, `${s.id} driver`) || s.speech_driver?.task !== 'exact_audio'))
|
|
201
|
+
issues.push(`${s.id}: exact driver audio is required; a voice reference is not a driver`);
|
|
202
|
+
else if (s.depicts_speech && s.speech_mode === 'audio_driven_lipsync' && Math.abs(sourceSpan(s.speech_driver) - (s.end_ms - s.start_ms)) > 1)
|
|
203
|
+
issues.push(`${s.id}: driver window/rate differs from its speaking picture interval`);
|
|
204
|
+
}
|
|
205
|
+
ids.clear();
|
|
206
|
+
for (const c of t.audio_cues) {
|
|
207
|
+
if (!object(c)) {
|
|
208
|
+
issues.push('audio cue must be an object');
|
|
209
|
+
continue;
|
|
210
|
+
}
|
|
211
|
+
if (!text(c.id) || ids.has(c.id))
|
|
212
|
+
issues.push('audio cue ids must be unique');
|
|
213
|
+
ids.add(c.id);
|
|
214
|
+
if (!speechRole(c.role) && !['source_ambience', 'music', 'sfx'].includes(c.role))
|
|
215
|
+
issues.push(`${c.id}: unknown audio role`);
|
|
216
|
+
if (!finite(c.gain_db) || c.gain_db < -80 || c.gain_db > 24 || typeof c.loop !== 'boolean')
|
|
217
|
+
issues.push(`${c.id}: explicit supported gain and loop decision required`);
|
|
218
|
+
if (validRange(c, c.id) && validSource(c.source, c.id)) {
|
|
219
|
+
if (!c.loop && Math.abs(sourceSpan(c.source) - (c.end_ms - c.start_ms)) > 1)
|
|
220
|
+
issues.push(`${c.id}: audio source clock differs from final interval`);
|
|
221
|
+
if ((c.loop || c.source.speed !== 1) && !text(c.intent))
|
|
222
|
+
issues.push(`${c.id}: looping/retiming needs intent`);
|
|
223
|
+
if (c.loop && speechRole(c.role))
|
|
224
|
+
issues.push(`${c.id}: speech cannot loop to fill a scene`);
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
for (const id of t.required_cue_ids)
|
|
228
|
+
if (!ids.has(id))
|
|
229
|
+
issues.push(`required cue ${id} is missing`);
|
|
230
|
+
for (const p of t.pauses) {
|
|
231
|
+
if (!validRange(p, 'pause') || !text(p.reason) || !['speech', 'all_audio'].includes(p.scope))
|
|
232
|
+
issues.push('every pause needs its range, scope and reason');
|
|
233
|
+
else if (p.end_ms - p.start_ms > exports.MAX_PLANNED_PAUSE_MS)
|
|
234
|
+
issues.push(`pause ${p.start_ms}–${p.end_ms}ms is longer than ${exports.MAX_PLANNED_PAUSE_MS}ms`);
|
|
235
|
+
}
|
|
236
|
+
for (const v of t.visual_overrides ?? []) {
|
|
237
|
+
if (!validRange(v, 'visual override') || !text(v.reason) || !['freeze', 'transition'].includes(v.kind))
|
|
238
|
+
issues.push('visual overrides need bounds, kind and reason');
|
|
239
|
+
else {
|
|
240
|
+
if (v.kind === 'freeze' && !v.source)
|
|
241
|
+
issues.push('freeze requires its exact source');
|
|
242
|
+
if (v.kind === 'freeze' && v.end_ms - v.start_ms > (0, final_measure_1.maxFreezeMs)(v, t.duration_ms))
|
|
243
|
+
issues.push(`freeze ${v.start_ms}–${v.end_ms}ms is longer than ${(0, final_measure_1.maxFreezeMs)(v, t.duration_ms)}ms${v.end_ms === t.duration_ms ? ' (the closing-hold limit)' : ''}`);
|
|
244
|
+
if (v.source && (!validSource(v.source, 'override source', true) || !text(v.scene_id) || !['image', 'video'].includes(v.source_kind ?? '')))
|
|
245
|
+
issues.push('override sources need exact bytes, scene_id and source_kind (image or video)');
|
|
246
|
+
if (v.kind === 'transition' && (!Array.isArray(v.segment_ids) || v.segment_ids.length < 2 || v.segment_ids.some((id) => !t.segments.some((s) => s.id === id))))
|
|
247
|
+
issues.push('transition must name its source segments');
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
const pauseTotal = totalMs(t.pauses.filter(object));
|
|
251
|
+
if (pauseTotal > t.duration_ms * exports.MAX_PLANNED_TOTAL_SHARE)
|
|
252
|
+
issues.push(`planned pauses add up to ${pauseTotal}ms, more than ${exports.MAX_PLANNED_TOTAL_SHARE * 100}% of the ${t.duration_ms}ms video`);
|
|
253
|
+
if (issues.length)
|
|
254
|
+
return { status: 'invalid', timeline: null, revision: null, issues };
|
|
255
|
+
// The same source moment shown again later (not the very next segment, both over 1 s) is a
|
|
256
|
+
// repeat; only a declared callback may do it. As in the harness, the prefix is case-sensitive.
|
|
257
|
+
const ordered = [...t.segments].sort((a, b) => a.start_ms - b.start_ms || a.end_ms - b.end_ms);
|
|
258
|
+
const long = (x) => x.end_ms - x.start_ms > final_measure_1.FINAL_MEASURE_THRESHOLDS.repeated_shot_min_s * 1000;
|
|
259
|
+
for (let b = 2; b < ordered.length; b++) {
|
|
260
|
+
const later = ordered[b];
|
|
261
|
+
const repeated = long(later) ? ordered.slice(0, b - 1).find((earlier) => long(earlier) && overlaps(earlier.video, later.video)) : undefined;
|
|
262
|
+
if (repeated && !(typeof later.intent === 'string' && later.intent.startsWith(exports.CALLBACK_INTENT)))
|
|
263
|
+
issues.push(`${later.id}: shows ${repeated.id}'s source moment again; use another moment, or mark a deliberate repeat with intent "${exports.CALLBACK_INTENT} <why>"`);
|
|
264
|
+
}
|
|
265
|
+
if (gaps([...t.segments, ...(t.visual_overrides ?? [])], t.duration_ms).length)
|
|
266
|
+
issues.push('Picture coverage has undeclared padding or a missing source interval');
|
|
267
|
+
for (let a = 0; a < t.segments.length; a++)
|
|
268
|
+
for (let b = a + 1; b < t.segments.length; b++) {
|
|
269
|
+
const left = t.segments[a], right = t.segments[b];
|
|
270
|
+
const start = Math.max(left.start_ms, right.start_ms), end = Math.min(left.end_ms, right.end_ms);
|
|
271
|
+
if (end > start + 1 && !(t.visual_overrides ?? []).some((v) => v.kind === 'transition' && v.start_ms <= start && v.end_ms >= end && v.segment_ids?.includes(left.id) && v.segment_ids.includes(right.id)))
|
|
272
|
+
issues.push(`${left.id}/${right.id}: picture overlap needs a declared transition`);
|
|
273
|
+
}
|
|
274
|
+
for (const s of t.segments.filter((s) => s.depicts_speech)) {
|
|
275
|
+
const driver = s.speech_mode === 'audio_driven_lipsync' ? s.speech_driver : s.video;
|
|
276
|
+
const matching = t.audio_cues.filter((c) => c.role === s.speech_mode && c.gain_db > -80 && c.source.sha256 === driver.sha256 && c.source.asset_id === driver.asset_id && Math.abs(c.source.speed - driver.speed) < 1e-9 && !c.loop)
|
|
277
|
+
.filter((c) => Math.abs((c.source.in_ms + (s.start_ms - c.start_ms) * c.source.speed) - driver.in_ms) <= 1)
|
|
278
|
+
.map((c) => ({ start_ms: Math.max(s.start_ms, c.start_ms) - s.start_ms, end_ms: Math.min(s.end_ms, c.end_ms) - s.start_ms }))
|
|
279
|
+
.filter((c) => c.end_ms > c.start_ms);
|
|
280
|
+
if (gaps(matching, s.end_ms - s.start_ms).length)
|
|
281
|
+
issues.push(`${s.id}: corresponding driver audio does not cover the speaking picture on its source clock`);
|
|
282
|
+
}
|
|
283
|
+
const silence = t.soundtrack_modes.includes('intentional_silence');
|
|
284
|
+
for (let a = 0; a < t.audio_cues.length; a++)
|
|
285
|
+
for (let b = a + 1; b < t.audio_cues.length; b++) {
|
|
286
|
+
const left = t.audio_cues[a], right = t.audio_cues[b];
|
|
287
|
+
if (!speechRole(left.role) || !speechRole(right.role))
|
|
288
|
+
continue;
|
|
289
|
+
const start = Math.max(left.start_ms, right.start_ms), end = Math.min(left.end_ms, right.end_ms);
|
|
290
|
+
if (end <= start + 1)
|
|
291
|
+
continue;
|
|
292
|
+
if (left.source.sha256 === right.source.sha256 && left.source.in_ms === right.source.in_ms && left.source.out_ms === right.source.out_ms && left.source.speed === right.source.speed && left.start_ms === right.start_ms && left.end_ms === right.end_ms)
|
|
293
|
+
issues.push(`${left.id}/${right.id}: duplicated speech bus`);
|
|
294
|
+
else if (!(text(left.intent) && text(right.intent)) && !(t.visual_overrides ?? []).some((v) => v.kind === 'transition' && v.start_ms <= start && v.end_ms >= end))
|
|
295
|
+
issues.push(`${left.id}/${right.id}: overlapping speech needs explicit intent`);
|
|
296
|
+
}
|
|
297
|
+
if (silence && (t.soundtrack_modes.length !== 1 || t.audio_cues.length))
|
|
298
|
+
issues.push('intentional_silence cannot hide planned sound cues');
|
|
299
|
+
if (silence && t.speech_mode !== 'none')
|
|
300
|
+
issues.push('total silence conflicts with required speech');
|
|
301
|
+
for (const role of ['music', 'sfx', 'source_ambience'])
|
|
302
|
+
if (t.soundtrack_modes.includes(role) && !t.audio_cues.some((c) => c.role === role))
|
|
303
|
+
issues.push(`planned ${role} has no cue`);
|
|
304
|
+
if (!silence) {
|
|
305
|
+
for (const gap of gaps([...t.audio_cues, ...t.pauses.filter((p) => p.scope === 'all_audio')], t.duration_ms))
|
|
306
|
+
issues.push(`unplanned audio gap ${gap.start_ms}–${gap.end_ms}ms`);
|
|
307
|
+
}
|
|
308
|
+
if (t.speech_mode === 'none' && t.audio_cues.some((c) => speechRole(c.role)))
|
|
309
|
+
issues.push('No-speech intent conflicts with speech cues');
|
|
310
|
+
// Speech covers every segment that plans speech; a music-only intro or end card (speech_mode none) needs none.
|
|
311
|
+
if (t.speech_mode !== 'none') {
|
|
312
|
+
const speech = [...t.audio_cues.filter((c) => speechRole(c.role) && c.gain_db > -80), ...t.pauses];
|
|
313
|
+
for (const segment of ordered.filter((x) => x.speech_mode !== 'none')) {
|
|
314
|
+
const inside = speech.filter((i) => i.end_ms > segment.start_ms && i.start_ms < segment.end_ms)
|
|
315
|
+
.map((i) => ({ start_ms: Math.max(i.start_ms, segment.start_ms) - segment.start_ms, end_ms: Math.min(i.end_ms, segment.end_ms) - segment.start_ms }));
|
|
316
|
+
for (const gap of gaps(inside, segment.end_ms - segment.start_ms))
|
|
317
|
+
issues.push(`unplanned speech gap ${gap.start_ms + segment.start_ms}–${gap.end_ms + segment.start_ms}ms in ${segment.id} (music cannot substitute for speech intent)`);
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
return { status: issues.length ? 'invalid' : 'complete', timeline: t, revision: assemblyTimelineRevision(t), issues };
|
|
321
|
+
}
|
|
322
|
+
// A final frame and AAC padding can differ slightly from the edit clock.
|
|
323
|
+
exports.FINAL_ASSEMBLY_DURATION_TOLERANCE_MS = 100;
|
|
324
|
+
function measuredFinalDurationMs(seconds) {
|
|
325
|
+
if (typeof seconds !== 'number' || !Number.isFinite(seconds) || seconds <= 0)
|
|
326
|
+
return null;
|
|
327
|
+
const duration = Math.ceil(seconds * 1000);
|
|
328
|
+
return Number.isSafeInteger(duration) ? duration : null;
|
|
329
|
+
}
|
|
330
|
+
const REVIEW_FIELDS = ['output_sha256', 'timeline_revision', 'creative_contract_revision', 'reviewer', 'verdict', 'capabilities', 'coverage', 'unresolved_issues', 'dimensions'];
|
|
331
|
+
const CAPABILITY_FIELDS = ['audio', 'motion', 'audio_perception', 'motion_perception'];
|
|
332
|
+
/** At most this many unresolved issues are named one by one; the rest are counted. */
|
|
333
|
+
const NAMED_ISSUES = 10;
|
|
334
|
+
/** Every field the review format doesn't have, by its path, so the reviewer knows exactly what to remove. */
|
|
335
|
+
function unknownReviewFields(r) {
|
|
336
|
+
const extra = [];
|
|
337
|
+
const check = (value, allowed, at) => {
|
|
338
|
+
if (!object(value))
|
|
339
|
+
return;
|
|
340
|
+
for (const key of Object.keys(value))
|
|
341
|
+
if (!allowed.includes(key))
|
|
342
|
+
extra.push(`${at}${key}`);
|
|
343
|
+
};
|
|
344
|
+
check(r, REVIEW_FIELDS, '');
|
|
345
|
+
check(r.capabilities, CAPABILITY_FIELDS, 'capabilities.');
|
|
346
|
+
if (Array.isArray(r.coverage))
|
|
347
|
+
r.coverage.forEach((w, i) => check(w, ['start_ms', 'end_ms'], `coverage[${i}].`));
|
|
348
|
+
if (Array.isArray(r.unresolved_issues))
|
|
349
|
+
r.unresolved_issues.forEach((issue, i) => check(issue, ['severity', 'message'], `unresolved_issues[${i}].`));
|
|
350
|
+
if (object(r.dimensions)) {
|
|
351
|
+
check(r.dimensions, exports.CONTENT_DIMENSIONS, 'dimensions.');
|
|
352
|
+
for (const name of exports.CONTENT_DIMENSIONS)
|
|
353
|
+
check(r.dimensions[name], ['status', 'note'], `dimensions.${name}.`);
|
|
354
|
+
}
|
|
355
|
+
return extra;
|
|
356
|
+
}
|
|
357
|
+
/**
|
|
358
|
+
* The review's perception, in the new shape. The old booleans are aliases: `true` reads as
|
|
359
|
+
* listened/watched and `false` is refused, so a review that admits it could not hear or see never passes.
|
|
360
|
+
*/
|
|
361
|
+
function reviewCapabilities(raw) {
|
|
362
|
+
const problems = [];
|
|
363
|
+
if (!object(raw))
|
|
364
|
+
return { audio: null, motion: null, problems: ['capabilities must say how the sound and the moving picture were reviewed: audio listened or measured, motion watched or measured'] };
|
|
365
|
+
const axis = (name, legacy, allowed, heard) => {
|
|
366
|
+
const current = raw[name];
|
|
367
|
+
const old = raw[legacy];
|
|
368
|
+
if (current !== undefined && old !== undefined) {
|
|
369
|
+
problems.push(`capabilities has both ${name} and ${legacy}; keep only ${name}`);
|
|
370
|
+
return null;
|
|
371
|
+
}
|
|
372
|
+
if (current !== undefined) {
|
|
373
|
+
if (typeof current === 'string' && allowed.includes(current))
|
|
374
|
+
return current;
|
|
375
|
+
problems.push(`capabilities.${name} must be ${allowed.join(' or ')}`);
|
|
376
|
+
return null;
|
|
377
|
+
}
|
|
378
|
+
if (old === true)
|
|
379
|
+
return heard;
|
|
380
|
+
if (old === false) {
|
|
381
|
+
problems.push(`capabilities.${legacy} is false: the ${name === 'audio' ? 'sound' : 'moving picture'} was not reviewed. Review it, or record ${name}: "measured" and rely on passing final measurements`);
|
|
382
|
+
return null;
|
|
383
|
+
}
|
|
384
|
+
if (old !== undefined) {
|
|
385
|
+
problems.push(`capabilities.${legacy} must be true, or use ${name}: ${allowed.join(' | ')}`);
|
|
386
|
+
return null;
|
|
387
|
+
}
|
|
388
|
+
problems.push(`capabilities.${name} is missing: record ${allowed.join(' or ')}`);
|
|
389
|
+
return null;
|
|
390
|
+
};
|
|
391
|
+
const audio = axis('audio', 'audio_perception', exports.AUDIO_PERCEPTIONS, 'listened');
|
|
392
|
+
const motion = axis('motion', 'motion_perception', exports.MOTION_PERCEPTIONS, 'watched');
|
|
393
|
+
return { audio, motion, problems };
|
|
394
|
+
}
|
|
395
|
+
/** One blocking issue, named: P0, P1 and blocker block as they are, anything unknown blocks as P1. */
|
|
396
|
+
function blockingIssues(raw) {
|
|
397
|
+
if (!Array.isArray(raw))
|
|
398
|
+
return ['unresolved_issues must be a list (an empty list when nothing is open)'];
|
|
399
|
+
const blocking = [];
|
|
400
|
+
raw.forEach((issue, index) => {
|
|
401
|
+
const message = object(issue) && text(issue.message) ? issue.message.trim().slice(0, 200) : '';
|
|
402
|
+
const severity = object(issue) && typeof issue.severity === 'string' ? issue.severity.trim().toLowerCase() : '';
|
|
403
|
+
if (severity === 'p2' && message)
|
|
404
|
+
return;
|
|
405
|
+
const label = severity === 'p0' ? 'P0' : severity === 'p1' ? 'P1' : severity === 'blocker' ? 'blocker'
|
|
406
|
+
: `issue with unknown severity ${JSON.stringify(object(issue) ? issue.severity ?? null : issue)} (counts as P1)`;
|
|
407
|
+
blocking.push(message ? `Unresolved ${label}${label.startsWith('issue') ? '' : ' issue'}: ${message}` : `unresolved_issues[${index}] needs a severity (P0, P1 or P2) and a message; it counts as P1 until then`);
|
|
408
|
+
});
|
|
409
|
+
if (blocking.length > NAMED_ISSUES)
|
|
410
|
+
return [...blocking.slice(0, NAMED_ISSUES), `${blocking.length - NAMED_ISSUES} more unresolved issues block the upload`];
|
|
411
|
+
return blocking;
|
|
412
|
+
}
|
|
413
|
+
/**
|
|
414
|
+
* Omit measurement only for preflight; final acceptance needs the measured duration. A `measured`
|
|
415
|
+
* perception is accepted only with `finalMeasure` of the same bytes in which every check passed
|
|
416
|
+
* (or does not apply); the server adds its own frame judge on top.
|
|
417
|
+
*/
|
|
418
|
+
function finalContentReviewProblems(raw, outputSha, assembly, measuredDurationMs, finalMeasure) {
|
|
419
|
+
if (!object(raw))
|
|
420
|
+
return ['Exact-final audiovisual content review is missing'];
|
|
421
|
+
const r = raw;
|
|
422
|
+
const problems = [];
|
|
423
|
+
for (const field of unknownReviewFields(raw))
|
|
424
|
+
problems.push(`content_review has an unknown field "${field}". Remove it, then resume`);
|
|
425
|
+
if (assembly.status !== 'complete' || !assembly.timeline)
|
|
426
|
+
problems.push('Assembly evidence is incomplete');
|
|
427
|
+
if (r.output_sha256 !== outputSha || r.timeline_revision !== assembly.revision || r.creative_contract_revision !== assembly.timeline?.creative_contract_revision)
|
|
428
|
+
problems.push('Content review belongs to different final, timeline or approved intent bytes');
|
|
429
|
+
if (r.verdict !== 'approved' || !text(r.reviewer))
|
|
430
|
+
problems.push('Content review is not approved by an identified reviewer');
|
|
431
|
+
const perceived = reviewCapabilities(r.capabilities);
|
|
432
|
+
problems.push(...perceived.problems);
|
|
433
|
+
if (perceived.audio === 'measured' || perceived.motion === 'measured') {
|
|
434
|
+
const measuredPass = !!finalMeasure && finalMeasure.output_sha256 === outputSha && Array.isArray(finalMeasure.checks) && finalMeasure.checks.length > 0
|
|
435
|
+
&& finalMeasure.checks.every((c) => c.result === 'pass' || c.result === 'not_applicable');
|
|
436
|
+
if (!measuredPass)
|
|
437
|
+
problems.push('A measured review needs passing final measurements of these exact bytes (final-measure.json); fix the failing checks or review by listening and watching');
|
|
438
|
+
}
|
|
439
|
+
const measurementRequired = measuredDurationMs !== undefined;
|
|
440
|
+
const measured = ms(measuredDurationMs) && measuredDurationMs > 0 ? measuredDurationMs : null;
|
|
441
|
+
if (measurementRequired && measured === null)
|
|
442
|
+
problems.push('The final playback duration could not be measured');
|
|
443
|
+
if (measured !== null && (!assembly.timeline || Math.abs(assembly.timeline.duration_ms - measured) > exports.FINAL_ASSEMBLY_DURATION_TOLERANCE_MS))
|
|
444
|
+
problems.push(`Assembly duration must match the measured ${measured}ms final within ${exports.FINAL_ASSEMBLY_DURATION_TOLERANCE_MS}ms`);
|
|
445
|
+
const duration = measured ?? assembly.timeline?.duration_ms ?? 0;
|
|
446
|
+
// Preflight accepts frame/AAC padding; final acceptance still covers the measured end.
|
|
447
|
+
const upperBound = duration + exports.FINAL_ASSEMBLY_DURATION_TOLERANCE_MS;
|
|
448
|
+
const coverageValid = Array.isArray(r.coverage) && r.coverage.every((w) => object(w) && ms(w.start_ms) && ms(w.end_ms) && w.end_ms > w.start_ms && w.end_ms <= upperBound);
|
|
449
|
+
if (!coverageValid)
|
|
450
|
+
problems.push('Complete final playback coverage is missing or out of bounds');
|
|
451
|
+
else {
|
|
452
|
+
let end = 0;
|
|
453
|
+
let missing = 0;
|
|
454
|
+
for (const window of [...r.coverage].sort((a, b) => a.start_ms - b.start_ms)) {
|
|
455
|
+
missing += Math.max(0, window.start_ms - end);
|
|
456
|
+
end = Math.max(end, window.end_ms);
|
|
457
|
+
}
|
|
458
|
+
missing += Math.max(0, duration - end);
|
|
459
|
+
if (!r.coverage.length || missing > 1)
|
|
460
|
+
problems.push(`Playback and listening must cover the complete ${duration}ms final (only 1ms total timestamp rounding is allowed)`);
|
|
461
|
+
}
|
|
462
|
+
problems.push(...blockingIssues(r.unresolved_issues));
|
|
463
|
+
for (const name of exports.CONTENT_DIMENSIONS) {
|
|
464
|
+
const dimension = r.dimensions?.[name];
|
|
465
|
+
if (!dimension || !text(dimension.note) || !['pass', 'not_applicable'].includes(dimension.status))
|
|
466
|
+
problems.push(`${name}: required content review is incomplete or needs revision`);
|
|
467
|
+
if (dimension?.status === 'not_applicable' && ['reference_and_concept', 'brand_and_product', 'action_and_continuity', 'sound_and_silence', 'pacing_and_joins', 'camera_and_lighting'].includes(name))
|
|
468
|
+
problems.push(`${name}: this responsibility cannot be skipped`);
|
|
469
|
+
if (dimension?.status === 'not_applicable' && ['voice_performance', 'pronunciation'].includes(name) && assembly.timeline?.speech_mode !== 'none')
|
|
470
|
+
problems.push(`${name}: speech is present`);
|
|
471
|
+
if (dimension?.status === 'not_applicable' && name === 'lip_sync' && assembly.timeline?.segments.some((s) => s.depicts_speech))
|
|
472
|
+
problems.push('lip_sync: a speaking face is present');
|
|
473
|
+
}
|
|
474
|
+
return problems;
|
|
475
|
+
}
|
|
476
|
+
//# sourceMappingURL=assembly-timeline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assembly-timeline.js","sourceRoot":"","sources":["../../../src/kit/core/assembly-timeline.ts"],"names":[],"mappings":";;;AAmCA,4BAGC;AA6CD,wDAKC;AAkDD,4CAIC;AAGD,4DAEC;AA6CD,8DAoIC;AAKD,0DAIC;AA6BD,gDAqBC;AAuBD,gEA4CC;AAlcD,oFAAoF;AACpF,2CAA4C;AAC5C,mDAAwE;AAE3D,QAAA,eAAe,GAAG,gCAAyC,CAAC;AAC5D,QAAA,YAAY,GAAG,CAAC,iBAAiB,EAAE,sBAAsB,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,CAAU,CAAC;AAC7G,QAAA,gBAAgB,GAAG,CAAC,iBAAiB,EAAE,OAAO,EAAE,KAAK,EAAE,qBAAqB,CAAU,CAAC;AAiBpG,2FAA2F;AAC9E,QAAA,kBAAkB,GAAG,IAAI,CAAC;AACvC;;;GAGG;AACU,QAAA,QAAQ,GAAG,GAAG,CAAC;AAC5B,oFAAoF;AACvE,QAAA,oBAAoB,GAAG,wCAAwB,CAAC,YAAY,CAAC;AAC7D,QAAA,uBAAuB,GAAG,wCAAwB,CAAC,eAAe,CAAC;AAEhF,oGAAoG;AACpG,SAAgB,QAAQ,CAAC,IAA8B,EAAE,MAAyC,EAAE,KAAwC;IAC1I,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAClF,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;AAChE,CAAC;AACD,yGAAyG;AAC5F,QAAA,eAAe,GAAG,WAAW,CAAC;AA0C3C,iFAAiF;AACjF,SAAgB,sBAAsB,CAAC,QAA0B;IAC/D,OAAO;QACL,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,KAAK,EAAE,WAAW,EAAE,OAAgB,EAAE,CAAC,CAAC;QAC3I,GAAG,CAAC,QAAQ,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,YAAY,KAAK,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,CAAC,WAAY,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KACvN,CAAC;AACJ,CAAC;AAaY,QAAA,iBAAiB,GAA+B,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;AACzE,QAAA,kBAAkB,GAAgC,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;AAyB1E,QAAA,kBAAkB,GAAG,CAAC,uBAAuB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,UAAU,EAAE,mBAAmB,EAAE,eAAe,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,UAAU,CAAU,CAAC;AAEvQ,MAAM,MAAM,GAAG,CAAC,CAAU,EAAgC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAC/G,MAAM,IAAI,GAAG,CAAC,CAAU,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC5F,MAAM,IAAI,GAAG,CAAC,CAAU,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AAC9E,MAAM,EAAE,GAAG,CAAC,CAAU,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnG,MAAM,MAAM,GAAG,CAAC,CAAU,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACxF,MAAM,UAAU,GAAG,CAAC,CAAiB,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;AACzE,MAAM,UAAU,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,CAAC,iBAAiB,EAAE,sBAAsB,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAExH,iHAAiH;AACjH,SAAgB,gBAAgB,CAAI,KAAQ;IAC1C,MAAM,QAAQ,GAAG,CAAC,CAAU,EAAW,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC;QAC1E,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxI,OAAO,QAAQ,CAAC,KAAK,CAAM,CAAC;AAC9B,CAAC;AAED,2FAA2F;AAC3F,SAAgB,wBAAwB,CAAC,KAAuB;IAC9D,OAAO,IAAA,yBAAa,EAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;AAChD,CAAC;AAED;;;GAGG;AACH,SAAS,eAAe,CAAC,GAAY;IACnC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,IAAI,GAAG,CAAC,KAAc,EAAE,EAAU,EAAE,MAAe,EAAE,EAAE;QAC3D,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;YAAC,OAAO;QAAC,CAAC;QACnG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;YAAE,OAAO;QAC3B,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAChD,MAAM,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;YACvC,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;YACnH,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,8BAA8B,IAAI,SAAS,IAAI,GAAG,CAAC,CAAC;;gBAC3J,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,MAAM,CAAC,CAAC;QACxC,CAAC;IACH,CAAC,CAAC;IACF,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;IACrB,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,QAAQ,GAAG,CAAC,CAAiB,EAAE,CAAiB,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;AAC3K,MAAM,OAAO,GAAG,CAAC,KAAkD,EAAE,EAAE;IACrE,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC;IACb,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;QACtE,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;QACjE,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,SAAS,IAAI,CAAC,KAAkD,EAAE,QAAgB;IAChF,MAAM,OAAO,GAAgD,EAAE,CAAC;IAChE,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;QACtE,IAAI,IAAI,CAAC,QAAQ,GAAG,GAAG,GAAG,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACpF,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IACD,IAAI,GAAG,GAAG,QAAQ,GAAG,CAAC;QAAE,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC1E,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,oGAAoG;AACpG,SAAgB,yBAAyB,CAAC,GAAY,EAAE,MAAgC;IACtF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI;YAC7E,MAAM,EAAE,CAAC,6FAA6F,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IAC3I,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,GAAG,CAAC,MAAM,KAAK,uBAAe;QAAE,MAAM,CAAC,IAAI,CAAC,2BAA2B,uBAAe,EAAE,CAAC,CAAC;IAC9F,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,0BAA0B,CAAC;QAAE,MAAM,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;IAClH,4DAA4D;IAC5D,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,WAAW,GAAG,CAAC,IAAI,GAAG,CAAC,WAAW,GAAG,OAAO;QAAE,MAAM,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;IAC9H,IAAI,CAAE,oBAAmC,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC;QAAE,MAAM,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;IACtH,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAE,wBAAuC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,gBAAgB,CAAC,MAAM;QAAE,MAAM,CAAC,IAAI,CAAC,wFAAwF,CAAC,CAAC;IACjT,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,GAAG;QAAE,MAAM,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;IACxJ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,GAAG;QAAE,MAAM,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;IACrI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,GAAG;QAAE,MAAM,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;IACzH,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAAE,MAAM,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;IAC3I,IAAI,GAAG,CAAC,gBAAgB,KAAK,SAAS,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,GAAG,CAAC,gBAAgB,CAAC,MAAM,GAAG,GAAG,CAAC;QAAE,MAAM,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;IACvL,MAAM,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;IACrC,IAAI,MAAM,CAAC,MAAM;QAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IACxF,MAAM,CAAC,GAAG,GAAkC,CAAC;IAC7C,MAAM,WAAW,GAAG,CAAC,CAAU,EAAE,EAAU,EAAE,OAAO,GAAG,KAAK,EAAuB,EAAE;QACnF,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;YACpK,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,0DAA0D,CAAC,CAAC;YAAC,OAAO,KAAK,CAAC;QAC7F,CAAC;QACD,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,kCAAkC,CAAC,CAAC;YAAC,OAAO,KAAK,CAAC;QAAC,CAAC;QAC/H,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,OAAO,KAAK,SAAS,IAAI,CAAC,CAAC,OAAO,KAAK,SAAS,CAAC;QAC1F,IAAI,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;YAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,gDAAgD,CAAC,CAAC;YAAC,OAAO,KAAK,CAAC;QAAC,CAAC;QAC7G,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,CAAC,GAAG,CAAC,CAAC,IAA+B,CAAC;YAC5C,MAAM,EAAE,GAAG,CAAC,CAAU,EAAE,GAAW,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC;YACrG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;gBAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,qEAAqE,CAAC,CAAC;gBAAC,OAAO,KAAK,CAAC;YAAC,CAAC;QACzP,CAAC;QACD,IAAI,CAAC,CAAC,OAAO,KAAK,SAAS,IAAI,CAAC,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YACvD,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC;gBAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,wDAAwD,CAAC,CAAC;gBAAC,OAAO,KAAK,CAAC;YAAC,CAAC;YAC/K,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,0BAAkB,EAAE,CAAC;gBAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,6BAA6B,CAAC,CAAC,OAAO,eAAe,CAAC,CAAC,OAAO,uCAAuC,0BAAkB,GAAG,GAAG,GAAG,CAAC,CAAC;gBAAC,OAAO,KAAK,CAAC;YAAC,CAAC;QACrO,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IACF,MAAM,UAAU,GAAG,CAAC,CAAU,EAAE,EAAU,EAAE,EAAE;QAC5C,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;YAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,wBAAwB,CAAC,CAAC;YAAC,OAAO,KAAK,CAAC;QAAC,CAAC;QACvK,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IACF,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC3B,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YAAC,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;YAAC,SAAS;QAAC,CAAC;QACvE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;QACvH,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACd,IAAI,CAAE,oBAAkC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,OAAO,CAAC,CAAC,cAAc,KAAK,SAAS,IAAI,CAAC,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,uDAAuD,CAAC,CAAC;QAC1O,IAAI,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,4DAA4D,CAAC,CAAC;QAC7M,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,6BAA6B,CAAC,CAAC;QAC/F,IAAI,CAAC,CAAC,cAAc,IAAI,CAAC,CAAC,iBAAiB,EAAE,sBAAsB,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,gEAAgE,CAAC,CAAC;QAC9L,IAAI,CAAC,CAAC,cAAc,IAAI,CAAC,CAAC,WAAW,KAAK,iBAAiB,IAAI,CAAC,CAAC,YAAY,KAAK,UAAU;YAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,oCAAoC,CAAC,CAAC;QACvJ,IAAI,CAAC,CAAC,cAAc,IAAI,CAAC,CAAC,WAAW,KAAK,sBAAsB,IAAI,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,IAAI,KAAK,aAAa,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,qEAAqE,CAAC,CAAC;aACvP,IAAI,CAAC,CAAC,cAAc,IAAI,CAAC,CAAC,WAAW,KAAK,sBAAsB,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,aAAc,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,iEAAiE,CAAC,CAAC;IACvO,CAAC;IACD,GAAG,CAAC,KAAK,EAAE,CAAC;IACZ,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC;QAC7B,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YAAC,MAAM,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;YAAC,SAAS;QAAC,CAAC;QACzE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;QAC9E,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACd,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,iBAAiB,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,sBAAsB,CAAC,CAAC;QAC7H,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,OAAO,GAAG,EAAE,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,SAAS;YAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,sDAAsD,CAAC,CAAC;QACvK,IAAI,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;YACvD,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC;gBAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,kDAAkD,CAAC,CAAC;YACpJ,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;gBAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,iCAAiC,CAAC,CAAC;YAC/G,IAAI,CAAC,CAAC,IAAI,IAAI,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;gBAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,sCAAsC,CAAC,CAAC;QAC/F,CAAC;IACH,CAAC;IACD,KAAK,MAAM,EAAE,IAAI,CAAC,CAAC,gBAAgB;QAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAC;IACpG,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;QACzB,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;aACtJ,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,QAAQ,GAAG,4BAAoB;YAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,MAAM,qBAAqB,4BAAoB,IAAI,CAAC,CAAC;IACnJ,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,gBAAgB,IAAI,EAAE,EAAE,CAAC;QACzC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;aAChK,CAAC;YACJ,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC,MAAM;gBAAE,MAAM,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;YACtF,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,QAAQ,GAAG,IAAA,2BAAW,EAAC,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC;gBAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,MAAM,qBAAqB,IAAA,2BAAW,EAAC,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACtP,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,EAAE,iBAAiB,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;gBAAE,MAAM,CAAC,IAAI,CAAC,8EAA8E,CAAC,CAAC;YACzO,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;gBAAE,MAAM,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;QAC1N,CAAC;IACH,CAAC;IACD,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IACpD,IAAI,UAAU,GAAG,CAAC,CAAC,WAAW,GAAG,+BAAuB;QAAE,MAAM,CAAC,IAAI,CAAC,4BAA4B,UAAU,iBAAiB,+BAAuB,GAAG,GAAG,YAAY,CAAC,CAAC,WAAW,UAAU,CAAC,CAAC;IAC/L,IAAI,MAAM,CAAC,MAAM;QAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IACxF,2FAA2F;IAC3F,+FAA+F;IAC/F,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;IAC/F,MAAM,IAAI,GAAG,CAAC,CAAkB,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,QAAQ,GAAG,wCAAwB,CAAC,mBAAmB,GAAG,IAAI,CAAC;IACjH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC5I,IAAI,QAAQ,IAAI,CAAC,CAAC,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,uBAAe,CAAC,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,EAAE,WAAW,QAAQ,CAAC,EAAE,wFAAwF,uBAAe,SAAS,CAAC,CAAC;IAClQ,CAAC;IACD,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,MAAM;QAAE,MAAM,CAAC,IAAI,CAAC,sEAAsE,CAAC,CAAC;IACpK,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE;QAAE,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3F,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAClD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;YACjG,IAAI,GAAG,GAAG,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,IAAI,CAAC,CAAC,QAAQ,IAAI,KAAK,IAAI,CAAC,CAAC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBAAE,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,KAAK,CAAC,EAAE,+CAA+C,CAAC,CAAC;QAChS,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,EAAE,CAAC;QAC3D,MAAM,MAAM,GAAG,CAAC,CAAC,WAAW,KAAK,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,aAAc,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACrF,MAAM,QAAQ,GAAG,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,OAAO,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;aAChO,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;aAC1G,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;aAC5H,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;QACxC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM;YAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,sFAAsF,CAAC,CAAC;IAC/J,CAAC;IACD,MAAM,OAAO,GAAG,CAAC,CAAC,gBAAgB,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;IACnE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE;QAAE,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/F,MAAM,IAAI,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YACtD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC;gBAAE,SAAS;YAChE,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;YACjG,IAAI,GAAG,IAAI,KAAK,GAAG,CAAC;gBAAE,SAAS;YAC/B,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,KAAK,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,KAAK,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM;gBAAE,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,KAAK,CAAC,EAAE,yBAAyB,CAAC,CAAC;iBAClT,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,IAAI,CAAC,CAAC,QAAQ,IAAI,KAAK,IAAI,CAAC,CAAC,MAAM,IAAI,GAAG,CAAC;gBAAE,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,KAAK,CAAC,EAAE,4CAA4C,CAAC,CAAC;QACrP,CAAC;IACD,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,MAAM,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;IAC3I,IAAI,OAAO,IAAI,CAAC,CAAC,WAAW,KAAK,MAAM;QAAE,MAAM,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;IACrG,KAAK,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,iBAAiB,CAAU;QAAE,IAAI,CAAC,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,WAAW,IAAI,aAAa,CAAC,CAAC;IAChM,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,uBAAuB,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC;IACnL,CAAC;IACD,IAAI,CAAC,CAAC,WAAW,KAAK,MAAM,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAAE,MAAM,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;IACzI,+GAA+G;IAC/G,IAAI,CAAC,CAAC,WAAW,KAAK,MAAM,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;QACnG,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,MAAM,CAAC,EAAE,CAAC;YACtE,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;iBAC5F,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;YACxJ,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;gBAAE,MAAM,CAAC,IAAI,CAAC,wBAAwB,GAAG,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,GAAG,CAAC,MAAM,GAAG,OAAO,CAAC,QAAQ,SAAS,OAAO,CAAC,EAAE,8CAA8C,CAAC,CAAC;QAC5O,CAAC;IACH,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,wBAAwB,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;AACxH,CAAC;AAED,yEAAyE;AAC5D,QAAA,oCAAoC,GAAG,GAAG,CAAC;AAExD,SAAgB,uBAAuB,CAAC,OAAkC;IACxE,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1F,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IAC3C,OAAO,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;AAC1D,CAAC;AAED,MAAM,aAAa,GAAG,CAAC,eAAe,EAAE,mBAAmB,EAAE,4BAA4B,EAAE,UAAU,EAAE,SAAS,EAAE,cAAc,EAAE,UAAU,EAAE,mBAAmB,EAAE,YAAY,CAAU,CAAC;AAC1L,MAAM,iBAAiB,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,mBAAmB,CAAU,CAAC;AAChG,sFAAsF;AACtF,MAAM,YAAY,GAAG,EAAE,CAAC;AAExB,6GAA6G;AAC7G,SAAS,mBAAmB,CAAC,CAA0B;IACrD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,KAAK,GAAG,CAAC,KAAc,EAAE,OAA0B,EAAE,EAAU,EAAE,EAAE;QACvE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;YAAE,OAAO;QAC3B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;YAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC;IAC9F,CAAC,CAAC;IACF,KAAK,CAAC,CAAC,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC;IAC5B,KAAK,CAAC,CAAC,CAAC,YAAY,EAAE,iBAAiB,EAAE,eAAe,CAAC,CAAC;IAC1D,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;QAAE,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;IACjH,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC;QAAE,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC;IACrJ,IAAI,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC;QACzB,KAAK,CAAC,CAAC,CAAC,UAAU,EAAE,0BAAkB,EAAE,aAAa,CAAC,CAAC;QACvD,KAAK,MAAM,IAAI,IAAI,0BAAkB;YAAE,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,cAAc,IAAI,GAAG,CAAC,CAAC;IAC9G,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,SAAgB,kBAAkB,CAAC,GAAY;IAC7C,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,kIAAkI,CAAC,EAAE,CAAC;IACvM,MAAM,IAAI,GAAG,CAAmB,IAAwB,EAAE,MAAgD,EAAE,OAAqB,EAAE,KAAQ,EAAY,EAAE;QACvJ,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;QAC1B,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;QACxB,IAAI,OAAO,KAAK,SAAS,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YAAC,QAAQ,CAAC,IAAI,CAAC,yBAAyB,IAAI,QAAQ,MAAM,eAAe,IAAI,EAAE,CAAC,CAAC;YAAC,OAAO,IAAI,CAAC;QAAC,CAAC;QACjJ,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAK,OAA6B,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAAE,OAAO,OAAY,CAAC;YACzG,QAAQ,CAAC,IAAI,CAAC,gBAAgB,IAAI,YAAY,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACtE,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,GAAG,KAAK,IAAI;YAAE,OAAO,KAAK,CAAC;QAC/B,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC;YAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,MAAM,kBAAkB,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB,2CAA2C,IAAI,qDAAqD,CAAC,CAAC;YAAC,OAAO,IAAI,CAAC;QAAC,CAAC;QAC7O,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,MAAM,yBAAyB,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAAC,OAAO,IAAI,CAAC;QAAC,CAAC;QACrI,QAAQ,CAAC,IAAI,CAAC,gBAAgB,IAAI,uBAAuB,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACjF,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IACF,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,kBAAkB,EAAE,yBAAiB,EAAE,UAAU,CAAC,CAAC;IAC/E,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,mBAAmB,EAAE,0BAAkB,EAAE,SAAS,CAAC,CAAC;IAClF,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;AACrC,CAAC;AAED,sGAAsG;AACtG,SAAS,cAAc,CAAC,GAAY;IAClC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,CAAC,uEAAuE,CAAC,CAAC;IAC1G,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,GAAG,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAC3B,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/F,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChH,IAAI,QAAQ,KAAK,IAAI,IAAI,OAAO;YAAE,OAAO;QACzC,MAAM,KAAK,GAAG,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS;YACpG,CAAC,CAAC,+BAA+B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC;QACnH,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC,qBAAqB,KAAK,6EAA6E,CAAC,CAAC;IACnN,CAAC,CAAC,CAAC;IACH,IAAI,QAAQ,CAAC,MAAM,GAAG,YAAY;QAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,EAAE,GAAG,QAAQ,CAAC,MAAM,GAAG,YAAY,0CAA0C,CAAC,CAAC;IAC7J,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;GAIG;AACH,SAAgB,0BAA0B,CAAC,GAAY,EAAE,SAAiB,EAAE,QAAuB,EAAE,kBAAkC,EAAE,YAAyC;IAChL,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;QAAE,OAAO,CAAC,mDAAmD,CAAC,CAAC;IAC/E,MAAM,CAAC,GAAG,GAAoC,CAAC;IAC/C,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,KAAK,MAAM,KAAK,IAAI,mBAAmB,CAAC,GAAG,CAAC;QAAE,QAAQ,CAAC,IAAI,CAAC,wCAAwC,KAAK,2BAA2B,CAAC,CAAC;IACtI,IAAI,QAAQ,CAAC,MAAM,KAAK,UAAU,IAAI,CAAC,QAAQ,CAAC,QAAQ;QAAE,QAAQ,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;IAC3G,IAAI,CAAC,CAAC,aAAa,KAAK,SAAS,IAAI,CAAC,CAAC,iBAAiB,KAAK,QAAQ,CAAC,QAAQ,IAAI,CAAC,CAAC,0BAA0B,KAAK,QAAQ,CAAC,QAAQ,EAAE,0BAA0B;QAAE,QAAQ,CAAC,IAAI,CAAC,8EAA8E,CAAC,CAAC;IAChQ,IAAI,CAAC,CAAC,OAAO,KAAK,UAAU,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;QAAE,QAAQ,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC;IAC7H,MAAM,SAAS,GAAG,kBAAkB,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;IACrD,QAAQ,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;IACrC,IAAI,SAAS,CAAC,KAAK,KAAK,UAAU,IAAI,SAAS,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;QACtE,MAAM,YAAY,GAAG,CAAC,CAAC,YAAY,IAAI,YAAY,CAAC,aAAa,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,YAAY,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;eAClJ,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,CAAC,MAAM,KAAK,gBAAgB,CAAC,CAAC;QAC5F,IAAI,CAAC,YAAY;YAAE,QAAQ,CAAC,IAAI,CAAC,0JAA0J,CAAC,CAAC;IAC/L,CAAC;IACD,MAAM,mBAAmB,GAAG,kBAAkB,KAAK,SAAS,CAAC;IAC7D,MAAM,QAAQ,GAAG,EAAE,CAAC,kBAAkB,CAAC,IAAI,kBAAkB,GAAG,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9F,IAAI,mBAAmB,IAAI,QAAQ,KAAK,IAAI;QAAE,QAAQ,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;IACjH,IAAI,QAAQ,KAAK,IAAI,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,GAAG,QAAQ,CAAC,GAAG,4CAAoC,CAAC;QACxI,QAAQ,CAAC,IAAI,CAAC,6CAA6C,QAAQ,mBAAmB,4CAAoC,IAAI,CAAC,CAAC;IAClI,MAAM,QAAQ,GAAG,QAAQ,IAAI,QAAQ,CAAC,QAAQ,EAAE,WAAW,IAAI,CAAC,CAAC;IACjE,uFAAuF;IACvF,MAAM,UAAU,GAAG,QAAQ,GAAG,4CAAoC,CAAC;IACnE,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,MAAM,IAAI,UAAU,CAAC,CAAC;IAC3K,IAAI,CAAC,aAAa;QAAE,QAAQ,CAAC,IAAI,CAAC,8DAA8D,CAAC,CAAC;SAC7F,CAAC;QACJ,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,KAAK,MAAM,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7E,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC;YAC9C,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QACrC,CAAC;QACD,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,GAAG,CAAC,CAAC;QACvC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,IAAI,OAAO,GAAG,CAAC;YAAE,QAAQ,CAAC,IAAI,CAAC,kDAAkD,QAAQ,yDAAyD,CAAC,CAAC;IAC5K,CAAC;IACD,QAAQ,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC;IACtD,KAAK,MAAM,IAAI,IAAI,0BAAkB,EAAE,CAAC;QACtC,MAAM,SAAS,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC;YAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,2DAA2D,CAAC,CAAC;QACrL,IAAI,SAAS,EAAE,MAAM,KAAK,gBAAgB,IAAI,CAAC,uBAAuB,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,qBAAqB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,yCAAyC,CAAC,CAAC;QACtQ,IAAI,SAAS,EAAE,MAAM,KAAK,gBAAgB,IAAI,CAAC,mBAAmB,EAAE,eAAe,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,QAAQ,EAAE,WAAW,KAAK,MAAM;YAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,qBAAqB,CAAC,CAAC;QAC9L,IAAI,SAAS,EAAE,MAAM,KAAK,gBAAgB,IAAI,IAAI,KAAK,UAAU,IAAI,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC;YAAE,QAAQ,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;IACxL,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../../../src/kit/core/device.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAK9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAK7C,8EAA8E;AAC9E,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAsB5D;AAsBD,+EAA+E;AAC/E,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAiBnF;AAED,wBAAsB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAK7D;AAYD,wBAAsB,YAAY,CAAC,KAAK,EAAE;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,SAAS,CAAC;IACjB,OAAO,EAAE,UAAU,CAAC;CACrB,GAAG,OAAO,CAAC,YAAY,CAAC,
|
|
1
|
+
{"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../../../src/kit/core/device.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAK9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAK7C,8EAA8E;AAC9E,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAsB5D;AAsBD,+EAA+E;AAC/E,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAiBnF;AAED,wBAAsB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAK7D;AAYD,wBAAsB,YAAY,CAAC,KAAK,EAAE;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,SAAS,CAAC;IACjB,OAAO,EAAE,UAAU,CAAC;CACrB,GAAG,OAAO,CAAC,YAAY,CAAC,CAgBxB"}
|
package/dist/kit/core/device.js
CHANGED
|
@@ -143,6 +143,7 @@ async function deviceReport(input) {
|
|
|
143
143
|
arch: archOf(),
|
|
144
144
|
kit_version: version_1.KIT_VERSION,
|
|
145
145
|
interfaces: [...version_1.KIT_INTERFACES],
|
|
146
|
+
features: [...version_1.KIT_FEATURES],
|
|
146
147
|
ffmpeg: input.tools.ffmpeg.report,
|
|
147
148
|
ffprobe: input.tools.ffprobe.report,
|
|
148
149
|
browser,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"device.js","sourceRoot":"","sources":["../../../src/kit/core/device.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiBA,4BAsBC;AAuBD,kCAiBC;AAED,gCAKC;AAYD,
|
|
1
|
+
{"version":3,"file":"device.js","sourceRoot":"","sources":["../../../src/kit/core/device.ts"],"names":[],"mappings":"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"}
|