homebridge-adt-pulse 3.0.0-beta.12 → 3.0.0-beta.14
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/LICENSE +7 -7
- package/README.md +9 -7
- package/build/src/lib/accessory.js +134 -68
- package/build/src/lib/accessory.js.map +1 -1
- package/build/src/lib/api.js +34 -10
- package/build/src/lib/api.js.map +1 -1
- package/build/src/lib/detect.js +142 -193
- package/build/src/lib/detect.js.map +1 -1
- package/build/src/lib/items.js +182 -0
- package/build/src/lib/items.js.map +1 -0
- package/build/src/lib/platform.js +2 -2
- package/build/src/lib/platform.js.map +1 -1
- package/build/src/lib/regex.js +1 -1
- package/build/src/lib/regex.js.map +1 -1
- package/build/src/lib/utility.js +64 -16
- package/build/src/lib/utility.js.map +1 -1
- package/build/src/scripts/repl.js +1 -1
- package/build/src/scripts/repl.js.map +1 -1
- package/build/src/scripts/test-api.js +5 -5
- package/build/src/scripts/test-api.js.map +1 -1
- package/package.json +6 -6
package/build/src/lib/detect.js
CHANGED
|
@@ -1,43 +1,14 @@
|
|
|
1
1
|
import axios from 'axios';
|
|
2
|
-
import _ from 'lodash';
|
|
3
2
|
import { serializeError } from 'serialize-error';
|
|
3
|
+
import { doSubmitHandlerRelativeUrlItems, doSubmitHandlerUrlParamsArmItems, doSubmitHandlerUrlParamsArmStateItems, doSubmitHandlerUrlParamsHrefItems, gatewayInformationStatusItems, orbSecurityButtonButtonTextItems, orbSecurityButtonLoadingTextItems, orbSecurityButtonRelativeUrlItems, orbSecurityButtonUrlParamsArmItems, orbSecurityButtonUrlParamsArmStateItems, orbSecurityButtonUrlParamsHrefItems, panelInformationStatusItems, portalVersionItems, sensorInformationDeviceTypeItems, sensorInformationStatusItems, sensorStatusIconItems, sensorStatusStatusItems, } from './items.js';
|
|
4
4
|
import { debugLog, isPluginOutdated, removePersonalIdentifiableInformation, stackTracer, } from './utility.js';
|
|
5
5
|
export async function detectedNewDoSubmitHandlers(handlers, logger, debugMode) {
|
|
6
|
-
const
|
|
7
|
-
'16.0.0-131',
|
|
8
|
-
'17.0.0-69',
|
|
9
|
-
'18.0.0-78',
|
|
10
|
-
'19.0.0-89',
|
|
11
|
-
'20.0.0-221',
|
|
12
|
-
'20.0.0-244',
|
|
13
|
-
'21.0.0-344',
|
|
14
|
-
'21.0.0-353',
|
|
15
|
-
'21.0.0-354',
|
|
16
|
-
'22.0.0-233',
|
|
17
|
-
'23.0.0-99',
|
|
18
|
-
'24.0.0-117',
|
|
19
|
-
'25.0.0-21',
|
|
20
|
-
'26.0.0-32',
|
|
21
|
-
'27.0.0-140',
|
|
22
|
-
].map((version) => `/myhome/${version}/quickcontrol/serv/RunRRACommand`);
|
|
23
|
-
const knownUrlParamsArm = [
|
|
24
|
-
'away',
|
|
25
|
-
'night',
|
|
26
|
-
'stay',
|
|
27
|
-
];
|
|
28
|
-
const knownUrlParamsArmState = [
|
|
29
|
-
'forcearm',
|
|
30
|
-
];
|
|
31
|
-
const knownUrlParamsHref = [
|
|
32
|
-
'rest/adt/ui/client/security/setForceArm',
|
|
33
|
-
'rest/adt/ui/client/security/setCancelProtest',
|
|
34
|
-
];
|
|
35
|
-
const detectedNewHandlers = handlers.filter((handler) => (!knownRelativeUrls.includes(handler.relativeUrl)
|
|
6
|
+
const detectedNewHandlers = handlers.filter((handler) => (!doSubmitHandlerRelativeUrlItems.includes(handler.relativeUrl)
|
|
36
7
|
|| (handler.urlParams.arm !== null
|
|
37
|
-
&& !
|
|
8
|
+
&& !doSubmitHandlerUrlParamsArmItems.includes(handler.urlParams.arm))
|
|
38
9
|
|| (handler.urlParams.armState !== null
|
|
39
|
-
&& !
|
|
40
|
-
|| !
|
|
10
|
+
&& !doSubmitHandlerUrlParamsArmStateItems.includes(handler.urlParams.armState))
|
|
11
|
+
|| !doSubmitHandlerUrlParamsHrefItems.includes(handler.urlParams.href)));
|
|
41
12
|
if (detectedNewHandlers.length > 0) {
|
|
42
13
|
const cleanedData = removePersonalIdentifiableInformation(detectedNewHandlers);
|
|
43
14
|
try {
|
|
@@ -57,6 +28,7 @@ export async function detectedNewDoSubmitHandlers(handlers, logger, debugMode) {
|
|
|
57
28
|
debugLog(logger, 'detect.ts / detectedNewDoSubmitHandlers()', 'error', 'Failed to check if plugin is outdated');
|
|
58
29
|
stackTracer('serialize-error', serializeError(error));
|
|
59
30
|
}
|
|
31
|
+
return false;
|
|
60
32
|
}
|
|
61
33
|
if (logger !== null) {
|
|
62
34
|
logger.warn('Plugin has detected new do submit handlers. Notifying plugin author about this discovery ...');
|
|
@@ -76,24 +48,20 @@ export async function detectedNewDoSubmitHandlers(handlers, logger, debugMode) {
|
|
|
76
48
|
'X-Title': 'Detected new do submit handlers',
|
|
77
49
|
},
|
|
78
50
|
});
|
|
51
|
+
return true;
|
|
79
52
|
}
|
|
80
53
|
catch (error) {
|
|
81
54
|
if (debugMode === true) {
|
|
82
55
|
debugLog(logger, 'detect.ts / detectedNewDoSubmitHandlers()', 'error', 'Failed to notify plugin author about the new do submit handlers');
|
|
83
56
|
stackTracer('serialize-error', serializeError(error));
|
|
84
57
|
}
|
|
58
|
+
return false;
|
|
85
59
|
}
|
|
86
|
-
return true;
|
|
87
60
|
}
|
|
88
61
|
return false;
|
|
89
62
|
}
|
|
90
63
|
export async function detectedNewGatewayInformation(device, logger, debugMode) {
|
|
91
|
-
const
|
|
92
|
-
'Offline',
|
|
93
|
-
'Online',
|
|
94
|
-
'Status Unknown',
|
|
95
|
-
];
|
|
96
|
-
const detectedNewStatus = (device.status !== null && !knownStatuses.includes(device.status));
|
|
64
|
+
const detectedNewStatus = (device.status !== null && !gatewayInformationStatusItems.includes(device.status));
|
|
97
65
|
if (detectedNewStatus) {
|
|
98
66
|
const cleanedData = removePersonalIdentifiableInformation(device);
|
|
99
67
|
try {
|
|
@@ -113,6 +81,7 @@ export async function detectedNewGatewayInformation(device, logger, debugMode) {
|
|
|
113
81
|
debugLog(logger, 'detect.ts / detectedNewGatewayInformation()', 'error', 'Failed to check if plugin is outdated');
|
|
114
82
|
stackTracer('serialize-error', serializeError(error));
|
|
115
83
|
}
|
|
84
|
+
return false;
|
|
116
85
|
}
|
|
117
86
|
if (logger !== null) {
|
|
118
87
|
logger.warn('Plugin has detected new gateway information. Notifying plugin author about this discovery ...');
|
|
@@ -132,64 +101,30 @@ export async function detectedNewGatewayInformation(device, logger, debugMode) {
|
|
|
132
101
|
'X-Title': 'Detected new gateway information',
|
|
133
102
|
},
|
|
134
103
|
});
|
|
104
|
+
return true;
|
|
135
105
|
}
|
|
136
106
|
catch (error) {
|
|
137
107
|
if (debugMode === true) {
|
|
138
108
|
debugLog(logger, 'detect.ts / detectedNewGatewayInformation()', 'error', 'Failed to notify plugin author about the new gateway information');
|
|
139
109
|
stackTracer('serialize-error', serializeError(error));
|
|
140
110
|
}
|
|
111
|
+
return false;
|
|
141
112
|
}
|
|
142
|
-
return true;
|
|
143
113
|
}
|
|
144
114
|
return false;
|
|
145
115
|
}
|
|
146
116
|
export async function detectedNewOrbSecurityButtons(buttons, logger, debugMode) {
|
|
147
|
-
const knownButtonText = [
|
|
148
|
-
'Arm Away',
|
|
149
|
-
'Arm Night',
|
|
150
|
-
'Arm Stay',
|
|
151
|
-
'Clear Alarm',
|
|
152
|
-
'Disarm',
|
|
153
|
-
];
|
|
154
|
-
const knownLoadingText = [
|
|
155
|
-
'Arming Away',
|
|
156
|
-
'Arming Night',
|
|
157
|
-
'Arming Stay',
|
|
158
|
-
'Disarming',
|
|
159
|
-
];
|
|
160
|
-
const knownRelativeUrl = [
|
|
161
|
-
'quickcontrol/armDisarm.jsp',
|
|
162
|
-
];
|
|
163
|
-
const knownUrlParamsArm = [
|
|
164
|
-
'away',
|
|
165
|
-
'night',
|
|
166
|
-
'off',
|
|
167
|
-
'stay',
|
|
168
|
-
];
|
|
169
|
-
const knownUrlParamsArmState = [
|
|
170
|
-
'away',
|
|
171
|
-
'disarmed',
|
|
172
|
-
'disarmed_with_alarm',
|
|
173
|
-
'disarmed+with+alarm',
|
|
174
|
-
'night',
|
|
175
|
-
'night+stay',
|
|
176
|
-
'off',
|
|
177
|
-
'stay',
|
|
178
|
-
];
|
|
179
|
-
const knownUrlParamsHref = [
|
|
180
|
-
'rest/adt/ui/client/security/setArmState',
|
|
181
|
-
];
|
|
182
117
|
const detectedNewButtons = buttons.filter((button) => ((!button.buttonDisabled
|
|
183
118
|
&& ((button.buttonText !== null
|
|
184
|
-
&& !
|
|
185
|
-
|| !
|
|
186
|
-
|| !
|
|
187
|
-
|| !
|
|
188
|
-
|| !
|
|
189
|
-
|| !
|
|
119
|
+
&& !orbSecurityButtonButtonTextItems.includes(button.buttonText))
|
|
120
|
+
|| !orbSecurityButtonLoadingTextItems.includes(button.loadingText)
|
|
121
|
+
|| !orbSecurityButtonRelativeUrlItems.includes(button.relativeUrl)
|
|
122
|
+
|| !orbSecurityButtonUrlParamsArmItems.includes(button.urlParams.arm)
|
|
123
|
+
|| !orbSecurityButtonUrlParamsArmStateItems.includes(button.urlParams.armState)
|
|
124
|
+
|| !orbSecurityButtonUrlParamsHrefItems.includes(button.urlParams.href)))
|
|
190
125
|
|| (button.buttonDisabled
|
|
191
126
|
&& (button.buttonText !== null
|
|
192
|
-
&& !
|
|
127
|
+
&& !orbSecurityButtonLoadingTextItems.includes(button.buttonText)))));
|
|
193
128
|
if (detectedNewButtons.length > 0) {
|
|
194
129
|
const cleanedData = removePersonalIdentifiableInformation(detectedNewButtons);
|
|
195
130
|
try {
|
|
@@ -209,6 +144,7 @@ export async function detectedNewOrbSecurityButtons(buttons, logger, debugMode)
|
|
|
209
144
|
debugLog(logger, 'detect.ts / detectedNewOrbSecurityButtons()', 'error', 'Failed to check if plugin is outdated');
|
|
210
145
|
stackTracer('serialize-error', serializeError(error));
|
|
211
146
|
}
|
|
147
|
+
return false;
|
|
212
148
|
}
|
|
213
149
|
if (logger !== null) {
|
|
214
150
|
logger.warn('Plugin has detected new orb security buttons. Notifying plugin author about this discovery ...');
|
|
@@ -228,23 +164,20 @@ export async function detectedNewOrbSecurityButtons(buttons, logger, debugMode)
|
|
|
228
164
|
'X-Title': 'Detected new orb security buttons',
|
|
229
165
|
},
|
|
230
166
|
});
|
|
167
|
+
return true;
|
|
231
168
|
}
|
|
232
169
|
catch (error) {
|
|
233
170
|
if (debugMode === true) {
|
|
234
171
|
debugLog(logger, 'detect.ts / detectedNewOrbSecurityButtons()', 'error', 'Failed to notify plugin author about the new orb security buttons');
|
|
235
172
|
stackTracer('serialize-error', serializeError(error));
|
|
236
173
|
}
|
|
174
|
+
return false;
|
|
237
175
|
}
|
|
238
|
-
return true;
|
|
239
176
|
}
|
|
240
177
|
return false;
|
|
241
178
|
}
|
|
242
179
|
export async function detectedNewPanelInformation(device, logger, debugMode) {
|
|
243
|
-
const
|
|
244
|
-
'Online',
|
|
245
|
-
'Status Unknown',
|
|
246
|
-
];
|
|
247
|
-
const detectedNewStatus = (device.status !== null && !knownStatuses.includes(device.status));
|
|
180
|
+
const detectedNewStatus = (device.status !== null && !panelInformationStatusItems.includes(device.status));
|
|
248
181
|
if (detectedNewStatus) {
|
|
249
182
|
const cleanedData = removePersonalIdentifiableInformation(device);
|
|
250
183
|
try {
|
|
@@ -264,6 +197,7 @@ export async function detectedNewPanelInformation(device, logger, debugMode) {
|
|
|
264
197
|
debugLog(logger, 'detect.ts / detectedNewPanelInformation()', 'error', 'Failed to check if plugin is outdated');
|
|
265
198
|
stackTracer('serialize-error', serializeError(error));
|
|
266
199
|
}
|
|
200
|
+
return false;
|
|
267
201
|
}
|
|
268
202
|
if (logger !== null) {
|
|
269
203
|
logger.warn('Plugin has detected new panel information. Notifying plugin author about this discovery ...');
|
|
@@ -283,44 +217,21 @@ export async function detectedNewPanelInformation(device, logger, debugMode) {
|
|
|
283
217
|
'X-Title': 'Detected new panel information',
|
|
284
218
|
},
|
|
285
219
|
});
|
|
220
|
+
return true;
|
|
286
221
|
}
|
|
287
222
|
catch (error) {
|
|
288
223
|
if (debugMode === true) {
|
|
289
224
|
debugLog(logger, 'detect.ts / detectedNewPanelInformation()', 'error', 'Failed to notify plugin author about the new panel information');
|
|
290
225
|
stackTracer('serialize-error', serializeError(error));
|
|
291
226
|
}
|
|
227
|
+
return false;
|
|
292
228
|
}
|
|
293
|
-
return true;
|
|
294
229
|
}
|
|
295
230
|
return false;
|
|
296
231
|
}
|
|
297
232
|
export async function detectedNewPanelStatus(summary, logger, debugMode) {
|
|
298
|
-
const
|
|
299
|
-
|
|
300
|
-
'Armed Night',
|
|
301
|
-
'Armed Stay',
|
|
302
|
-
'Disarmed',
|
|
303
|
-
'Status Unavailable',
|
|
304
|
-
];
|
|
305
|
-
const knownStatuses = [
|
|
306
|
-
'1 Sensor Open',
|
|
307
|
-
..._.range(256).map((_value, index) => `${index + 1} Sensors Open`),
|
|
308
|
-
'All Quiet',
|
|
309
|
-
'BURGLARY ALARM',
|
|
310
|
-
'Carbon Monoxide Alarm',
|
|
311
|
-
'FIRE ALARM',
|
|
312
|
-
'Motion',
|
|
313
|
-
'Sensor Bypassed',
|
|
314
|
-
'Sensor Problem',
|
|
315
|
-
'Sensors Bypassed',
|
|
316
|
-
'Sensors Tripped',
|
|
317
|
-
'Sensor Tripped',
|
|
318
|
-
'Uncleared Alarm',
|
|
319
|
-
'WATER ALARM',
|
|
320
|
-
];
|
|
321
|
-
const detectedNewState = (summary.state !== null && !knownStates.includes(summary.state));
|
|
322
|
-
const detectedNewStatus = (summary.status !== null && !knownStatuses.includes(summary.status));
|
|
323
|
-
if (detectedNewState || detectedNewStatus) {
|
|
233
|
+
const detectedUnknownPieces = summary.rawData.unknownPieces.length > 0;
|
|
234
|
+
if (detectedUnknownPieces) {
|
|
324
235
|
const cleanedData = removePersonalIdentifiableInformation(summary);
|
|
325
236
|
try {
|
|
326
237
|
const outdated = await isPluginOutdated();
|
|
@@ -339,6 +250,7 @@ export async function detectedNewPanelStatus(summary, logger, debugMode) {
|
|
|
339
250
|
debugLog(logger, 'detect.ts / detectedNewPanelStatus()', 'error', 'Failed to check if plugin is outdated');
|
|
340
251
|
stackTracer('serialize-error', serializeError(error));
|
|
341
252
|
}
|
|
253
|
+
return false;
|
|
342
254
|
}
|
|
343
255
|
if (logger !== null) {
|
|
344
256
|
logger.warn('Plugin has detected a new panel state and/or status. Notifying plugin author about this discovery ...');
|
|
@@ -358,36 +270,20 @@ export async function detectedNewPanelStatus(summary, logger, debugMode) {
|
|
|
358
270
|
'X-Title': 'Detected a new panel state and/or status',
|
|
359
271
|
},
|
|
360
272
|
});
|
|
273
|
+
return true;
|
|
361
274
|
}
|
|
362
275
|
catch (error) {
|
|
363
276
|
if (debugMode === true) {
|
|
364
277
|
debugLog(logger, 'detect.ts / detectedNewPanelStatus()', 'error', 'Failed to notify plugin author about the new panel state and/or status');
|
|
365
278
|
stackTracer('serialize-error', serializeError(error));
|
|
366
279
|
}
|
|
280
|
+
return false;
|
|
367
281
|
}
|
|
368
|
-
return true;
|
|
369
282
|
}
|
|
370
283
|
return false;
|
|
371
284
|
}
|
|
372
285
|
export async function detectedNewPortalVersion(version, logger, debugMode) {
|
|
373
|
-
const
|
|
374
|
-
'16.0.0-131',
|
|
375
|
-
'17.0.0-69',
|
|
376
|
-
'18.0.0-78',
|
|
377
|
-
'19.0.0-89',
|
|
378
|
-
'20.0.0-221',
|
|
379
|
-
'20.0.0-244',
|
|
380
|
-
'21.0.0-344',
|
|
381
|
-
'21.0.0-353',
|
|
382
|
-
'21.0.0-354',
|
|
383
|
-
'22.0.0-233',
|
|
384
|
-
'23.0.0-99',
|
|
385
|
-
'24.0.0-117',
|
|
386
|
-
'25.0.0-21',
|
|
387
|
-
'26.0.0-32',
|
|
388
|
-
'27.0.0-140',
|
|
389
|
-
];
|
|
390
|
-
const detectedNewVersion = (version.version !== null && !knownVersions.includes(version.version));
|
|
286
|
+
const detectedNewVersion = (version.version !== null && !portalVersionItems.includes(version.version));
|
|
391
287
|
if (detectedNewVersion) {
|
|
392
288
|
const cleanedData = removePersonalIdentifiableInformation(version);
|
|
393
289
|
try {
|
|
@@ -407,6 +303,7 @@ export async function detectedNewPortalVersion(version, logger, debugMode) {
|
|
|
407
303
|
debugLog(logger, 'detect.ts / detectedNewPortalVersion()', 'error', 'Failed to check if plugin is outdated');
|
|
408
304
|
stackTracer('serialize-error', serializeError(error));
|
|
409
305
|
}
|
|
306
|
+
return false;
|
|
410
307
|
}
|
|
411
308
|
if (logger !== null) {
|
|
412
309
|
logger.warn('Plugin has detected a new portal version. Notifying plugin author about this discovery ...');
|
|
@@ -426,42 +323,21 @@ export async function detectedNewPortalVersion(version, logger, debugMode) {
|
|
|
426
323
|
'X-Title': 'Detected a new portal version',
|
|
427
324
|
},
|
|
428
325
|
});
|
|
326
|
+
return true;
|
|
429
327
|
}
|
|
430
328
|
catch (error) {
|
|
431
329
|
if (debugMode === true) {
|
|
432
330
|
debugLog(logger, 'detect.ts / detectedNewPortalVersion()', 'error', 'Failed to notify plugin author about the new portal version');
|
|
433
331
|
stackTracer('serialize-error', serializeError(error));
|
|
434
332
|
}
|
|
333
|
+
return false;
|
|
435
334
|
}
|
|
436
|
-
return true;
|
|
437
335
|
}
|
|
438
336
|
return false;
|
|
439
337
|
}
|
|
440
338
|
export async function detectedNewSensorsInformation(sensors, logger, debugMode) {
|
|
441
|
-
const
|
|
442
|
-
|
|
443
|
-
'Carbon Monoxide Detector',
|
|
444
|
-
'Door/Window Sensor',
|
|
445
|
-
'Door Sensor',
|
|
446
|
-
'Fire (Smoke/Heat) Detector',
|
|
447
|
-
'Glass Break Detector',
|
|
448
|
-
'Keypad/Touchpad',
|
|
449
|
-
'Motion Sensor',
|
|
450
|
-
'Motion Sensor (Notable Events Only)',
|
|
451
|
-
'Shock Sensor',
|
|
452
|
-
'Silent Panic Button/Pendant',
|
|
453
|
-
'System/Supervisory',
|
|
454
|
-
'Temperature Sensor',
|
|
455
|
-
'Unknown Device Type',
|
|
456
|
-
'Water/Flood Sensor',
|
|
457
|
-
'Window Sensor',
|
|
458
|
-
];
|
|
459
|
-
const knownStatuses = [
|
|
460
|
-
'Online',
|
|
461
|
-
'Status Unknown',
|
|
462
|
-
];
|
|
463
|
-
const detectedNewInformation = sensors.filter((sensor) => (!knownDeviceTypes.includes(sensor.deviceType)
|
|
464
|
-
|| !knownStatuses.includes(sensor.status)));
|
|
339
|
+
const detectedNewInformation = sensors.filter((sensor) => (!sensorInformationDeviceTypeItems.includes(sensor.deviceType)
|
|
340
|
+
|| !sensorInformationStatusItems.includes(sensor.status)));
|
|
465
341
|
if (detectedNewInformation.length > 0) {
|
|
466
342
|
const cleanedData = removePersonalIdentifiableInformation(detectedNewInformation);
|
|
467
343
|
try {
|
|
@@ -481,6 +357,7 @@ export async function detectedNewSensorsInformation(sensors, logger, debugMode)
|
|
|
481
357
|
debugLog(logger, 'detect.ts / detectedNewSensorsInformation()', 'error', 'Failed to check if plugin is outdated');
|
|
482
358
|
stackTracer('serialize-error', serializeError(error));
|
|
483
359
|
}
|
|
360
|
+
return false;
|
|
484
361
|
}
|
|
485
362
|
if (logger !== null) {
|
|
486
363
|
logger.warn('Plugin has detected new sensors information. Notifying plugin author about this discovery ...');
|
|
@@ -500,48 +377,20 @@ export async function detectedNewSensorsInformation(sensors, logger, debugMode)
|
|
|
500
377
|
'X-Title': 'Detected new sensors information',
|
|
501
378
|
},
|
|
502
379
|
});
|
|
380
|
+
return true;
|
|
503
381
|
}
|
|
504
382
|
catch (error) {
|
|
505
383
|
if (debugMode === true) {
|
|
506
384
|
debugLog(logger, 'detect.ts / detectedNewSensorsInformation()', 'error', 'Failed to notify plugin author about the new sensors information');
|
|
507
385
|
stackTracer('serialize-error', serializeError(error));
|
|
508
386
|
}
|
|
387
|
+
return false;
|
|
509
388
|
}
|
|
510
|
-
return true;
|
|
511
389
|
}
|
|
512
390
|
return false;
|
|
513
391
|
}
|
|
514
392
|
export async function detectedNewSensorsStatus(sensors, logger, debugMode) {
|
|
515
|
-
const
|
|
516
|
-
'devStatAlarm',
|
|
517
|
-
'devStatLowBatt',
|
|
518
|
-
'devStatMotion',
|
|
519
|
-
'devStatOK',
|
|
520
|
-
'devStatOpen',
|
|
521
|
-
'devStatTamper',
|
|
522
|
-
'devStatUnknown',
|
|
523
|
-
];
|
|
524
|
-
const knownStatuses = [
|
|
525
|
-
'ALARM, Closed',
|
|
526
|
-
'ALARM, Okay',
|
|
527
|
-
'ALARM, Open',
|
|
528
|
-
'Bypassed, Closed',
|
|
529
|
-
'Bypassed, Open',
|
|
530
|
-
'Bypassed, Tripped',
|
|
531
|
-
'Closed',
|
|
532
|
-
'Low Battery, Motion',
|
|
533
|
-
'Low Battery, No Motion',
|
|
534
|
-
'Motion',
|
|
535
|
-
'No Motion',
|
|
536
|
-
'Okay',
|
|
537
|
-
'Open',
|
|
538
|
-
'Tripped',
|
|
539
|
-
'Trouble, Open',
|
|
540
|
-
'Trouble, Closed',
|
|
541
|
-
'Unknown',
|
|
542
|
-
];
|
|
543
|
-
const detectedNewStatuses = sensors.filter((sensor) => (!knownIcons.includes(sensor.icon)
|
|
544
|
-
|| !knownStatuses.includes(sensor.status)));
|
|
393
|
+
const detectedNewStatuses = sensors.filter((sensor) => !sensorStatusIconItems.includes(sensor.icon) || sensor.statuses.some((sensorStatus) => !sensorStatusStatusItems.includes(sensorStatus)));
|
|
545
394
|
if (detectedNewStatuses.length > 0) {
|
|
546
395
|
const cleanedData = removePersonalIdentifiableInformation(detectedNewStatuses);
|
|
547
396
|
try {
|
|
@@ -561,6 +410,7 @@ export async function detectedNewSensorsStatus(sensors, logger, debugMode) {
|
|
|
561
410
|
debugLog(logger, 'detect.ts / detectedNewSensorsStatus()', 'error', 'Failed to check if plugin is outdated');
|
|
562
411
|
stackTracer('serialize-error', serializeError(error));
|
|
563
412
|
}
|
|
413
|
+
return false;
|
|
564
414
|
}
|
|
565
415
|
if (logger !== null) {
|
|
566
416
|
logger.warn('Plugin has detected new sensors status. Notifying plugin author about this discovery ...');
|
|
@@ -580,15 +430,114 @@ export async function detectedNewSensorsStatus(sensors, logger, debugMode) {
|
|
|
580
430
|
'X-Title': 'Detected new sensors status',
|
|
581
431
|
},
|
|
582
432
|
});
|
|
433
|
+
return true;
|
|
583
434
|
}
|
|
584
435
|
catch (error) {
|
|
585
436
|
if (debugMode === true) {
|
|
586
437
|
debugLog(logger, 'detect.ts / detectedNewSensorsStatus()', 'error', 'Failed to notify plugin author about the new sensors status');
|
|
587
438
|
stackTracer('serialize-error', serializeError(error));
|
|
588
439
|
}
|
|
440
|
+
return false;
|
|
589
441
|
}
|
|
590
|
-
return true;
|
|
591
442
|
}
|
|
592
443
|
return false;
|
|
593
444
|
}
|
|
445
|
+
export async function detectedUnknownPanelAction(status, logger, debugMode) {
|
|
446
|
+
const cleanedData = removePersonalIdentifiableInformation(status);
|
|
447
|
+
try {
|
|
448
|
+
const outdated = await isPluginOutdated();
|
|
449
|
+
if (outdated) {
|
|
450
|
+
if (logger !== null) {
|
|
451
|
+
logger.warn('Plugin has detected unknown panel action. You are running an older plugin version, please update soon.');
|
|
452
|
+
}
|
|
453
|
+
if (debugMode) {
|
|
454
|
+
debugLog(logger, 'detect.ts / detectedUnknownPanelAction()', 'warn', 'Plugin has detected unknown panel action. You are running an older plugin version, please update soon');
|
|
455
|
+
}
|
|
456
|
+
return false;
|
|
457
|
+
}
|
|
458
|
+
}
|
|
459
|
+
catch (error) {
|
|
460
|
+
if (debugMode === true) {
|
|
461
|
+
debugLog(logger, 'detect.ts / detectedUnknownPanelAction()', 'error', 'Failed to check if plugin is outdated');
|
|
462
|
+
stackTracer('serialize-error', serializeError(error));
|
|
463
|
+
}
|
|
464
|
+
return false;
|
|
465
|
+
}
|
|
466
|
+
if (logger !== null) {
|
|
467
|
+
logger.warn('Plugin has detected unknown panel action. Notifying plugin author about this discovery ...');
|
|
468
|
+
}
|
|
469
|
+
if (debugMode) {
|
|
470
|
+
debugLog(logger, 'detect.ts / detectedUnknownPanelAction()', 'warn', 'Plugin has detected unknown panel action. Notifying plugin author about this discovery');
|
|
471
|
+
}
|
|
472
|
+
stackTracer('detect-content', cleanedData);
|
|
473
|
+
try {
|
|
474
|
+
await axios.post('https://fs65kt4c5xf8.ntfy.mrjackyliang.com', [
|
|
475
|
+
'Please update the plugin as soon as possible.',
|
|
476
|
+
JSON.stringify(cleanedData, null, 2),
|
|
477
|
+
].join('\n\n'), {
|
|
478
|
+
family: 4,
|
|
479
|
+
headers: {
|
|
480
|
+
'User-Agent': 'homebridge-adt-pulse',
|
|
481
|
+
'X-Title': 'Detected unknown panel action',
|
|
482
|
+
},
|
|
483
|
+
});
|
|
484
|
+
return true;
|
|
485
|
+
}
|
|
486
|
+
catch (error) {
|
|
487
|
+
if (debugMode === true) {
|
|
488
|
+
debugLog(logger, 'detect.ts / detectedUnknownPanelAction()', 'error', 'Failed to notify plugin author about the unknown panel action');
|
|
489
|
+
stackTracer('serialize-error', serializeError(error));
|
|
490
|
+
}
|
|
491
|
+
return false;
|
|
492
|
+
}
|
|
493
|
+
}
|
|
494
|
+
export async function detectedUnknownSensorAction(status, logger, debugMode) {
|
|
495
|
+
const cleanedData = removePersonalIdentifiableInformation(status);
|
|
496
|
+
try {
|
|
497
|
+
const outdated = await isPluginOutdated();
|
|
498
|
+
if (outdated) {
|
|
499
|
+
if (logger !== null) {
|
|
500
|
+
logger.warn('Plugin has detected unknown sensor action. You are running an older plugin version, please update soon.');
|
|
501
|
+
}
|
|
502
|
+
if (debugMode) {
|
|
503
|
+
debugLog(logger, 'detect.ts / detectedUnknownSensorAction()', 'warn', 'Plugin has detected unknown sensor action. You are running an older plugin version, please update soon');
|
|
504
|
+
}
|
|
505
|
+
return false;
|
|
506
|
+
}
|
|
507
|
+
}
|
|
508
|
+
catch (error) {
|
|
509
|
+
if (debugMode === true) {
|
|
510
|
+
debugLog(logger, 'detect.ts / detectedUnknownSensorAction()', 'error', 'Failed to check if plugin is outdated');
|
|
511
|
+
stackTracer('serialize-error', serializeError(error));
|
|
512
|
+
}
|
|
513
|
+
return false;
|
|
514
|
+
}
|
|
515
|
+
if (logger !== null) {
|
|
516
|
+
logger.warn('Plugin has detected unknown sensor action. Notifying plugin author about this discovery ...');
|
|
517
|
+
}
|
|
518
|
+
if (debugMode) {
|
|
519
|
+
debugLog(logger, 'detect.ts / detectedUnknownSensorAction()', 'warn', 'Plugin has detected unknown sensor action. Notifying plugin author about this discovery');
|
|
520
|
+
}
|
|
521
|
+
stackTracer('detect-content', cleanedData);
|
|
522
|
+
try {
|
|
523
|
+
await axios.post('https://fs65kt4c5xf8.ntfy.mrjackyliang.com', [
|
|
524
|
+
'Please update the plugin as soon as possible.',
|
|
525
|
+
JSON.stringify(cleanedData, null, 2),
|
|
526
|
+
].join('\n\n'), {
|
|
527
|
+
family: 4,
|
|
528
|
+
headers: {
|
|
529
|
+
'User-Agent': 'homebridge-adt-pulse',
|
|
530
|
+
'X-Title': 'Detected unknown sensor action',
|
|
531
|
+
},
|
|
532
|
+
});
|
|
533
|
+
return true;
|
|
534
|
+
}
|
|
535
|
+
catch (error) {
|
|
536
|
+
if (debugMode === true) {
|
|
537
|
+
debugLog(logger, 'detect.ts / detectedUnknownSensorAction()', 'error', 'Failed to notify plugin author about the unknown sensor action');
|
|
538
|
+
stackTracer('serialize-error', serializeError(error));
|
|
539
|
+
}
|
|
540
|
+
return false;
|
|
541
|
+
}
|
|
542
|
+
}
|
|
594
543
|
//# sourceMappingURL=detect.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detect.js","sourceRoot":"","sources":["../../../src/lib/detect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,CAAC,MAAM,QAAQ,CAAC;AACvB,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,EACL,QAAQ,EACR,gBAAgB,EAChB,qCAAqC,EACrC,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAoE1B,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAAC,QAA6C,EAAE,MAAyC,EAAE,SAA+C;IACzL,MAAM,iBAAiB,GAAiD;QACtE,YAAY;QACZ,WAAW;QACX,WAAW;QACX,WAAW;QACX,YAAY;QACZ,YAAY;QACZ,YAAY;QACZ,YAAY;QACZ,YAAY;QACZ,YAAY;QACZ,WAAW;QACX,YAAY;QACZ,WAAW;QACX,WAAW;QACX,YAAY;KACb,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,WAAW,OAAO,kCAAyF,CAAC,CAAC;IAChI,MAAM,iBAAiB,GAAiD;QACtE,MAAM;QACN,OAAO;QACP,MAAM;KACP,CAAC;IACF,MAAM,sBAAsB,GAAsD;QAChF,UAAU;KACX,CAAC;IACF,MAAM,kBAAkB,GAAkD;QACxE,yCAAyC;QACzC,8CAA8C;KAC/C,CAAC;IAGF,MAAM,mBAAmB,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CACvD,CAAC,iBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC;WAC7C,CACD,OAAO,CAAC,SAAS,CAAC,GAAG,KAAK,IAAI;eAC3B,CAAC,iBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CACtD;WACE,CACD,OAAO,CAAC,SAAS,CAAC,QAAQ,KAAK,IAAI;eAChC,CAAC,sBAAsB,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAChE;WACE,CAAC,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CACxD,CAAC,CAAC;IAEH,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnC,MAAM,WAAW,GAAG,qCAAqC,CAAC,mBAAmB,CAAC,CAAC;QAG/E,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,gBAAgB,EAAE,CAAC;YAE1C,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;oBACpB,MAAM,CAAC,IAAI,CAAC,0GAA0G,CAAC,CAAC;gBAC1H,CAAC;gBAGD,IAAI,SAAS,EAAE,CAAC;oBACd,QAAQ,CAAC,MAAM,EAAE,2CAA2C,EAAE,MAAM,EAAE,yGAAyG,CAAC,CAAC;gBACnL,CAAC;gBAGD,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;gBACvB,QAAQ,CAAC,MAAM,EAAE,2CAA2C,EAAE,OAAO,EAAE,uCAAuC,CAAC,CAAC;gBAChH,WAAW,CAAC,iBAAiB,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;YACxD,CAAC;QACH,CAAC;QAED,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,MAAM,CAAC,IAAI,CAAC,8FAA8F,CAAC,CAAC;QAC9G,CAAC;QAGD,IAAI,SAAS,EAAE,CAAC;YACd,QAAQ,CAAC,MAAM,EAAE,2CAA2C,EAAE,MAAM,EAAE,0FAA0F,CAAC,CAAC;QACpK,CAAC;QAGD,WAAW,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;QAE3C,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,IAAI,CACd,4CAA4C,EAC5C;gBACE,+CAA+C;gBAC/C,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;aACrC,CAAC,IAAI,CAAC,MAAM,CAAC,EACd;gBACE,MAAM,EAAE,CAAC;gBACT,OAAO,EAAE;oBACP,YAAY,EAAE,sBAAsB;oBACpC,SAAS,EAAE,iCAAiC;iBAC7C;aACF,CACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;gBACvB,QAAQ,CAAC,MAAM,EAAE,2CAA2C,EAAE,OAAO,EAAE,iEAAiE,CAAC,CAAC;gBAC1I,WAAW,CAAC,iBAAiB,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;YACxD,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAaD,MAAM,CAAC,KAAK,UAAU,6BAA6B,CAAC,MAA2C,EAAE,MAA2C,EAAE,SAAiD;IAC7L,MAAM,aAAa,GAA+C;QAChE,SAAS;QACT,QAAQ;QACR,gBAAgB;KACjB,CAAC;IAGF,MAAM,iBAAiB,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IAE7F,IAAI,iBAAiB,EAAE,CAAC;QACtB,MAAM,WAAW,GAAG,qCAAqC,CAAC,MAAM,CAAC,CAAC;QAGlE,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,gBAAgB,EAAE,CAAC;YAE1C,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;oBACpB,MAAM,CAAC,IAAI,CAAC,2GAA2G,CAAC,CAAC;gBAC3H,CAAC;gBAGD,IAAI,SAAS,EAAE,CAAC;oBACd,QAAQ,CAAC,MAAM,EAAE,6CAA6C,EAAE,MAAM,EAAE,0GAA0G,CAAC,CAAC;gBACtL,CAAC;gBAGD,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;gBACvB,QAAQ,CAAC,MAAM,EAAE,6CAA6C,EAAE,OAAO,EAAE,uCAAuC,CAAC,CAAC;gBAClH,WAAW,CAAC,iBAAiB,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;YACxD,CAAC;QACH,CAAC;QAED,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,MAAM,CAAC,IAAI,CAAC,+FAA+F,CAAC,CAAC;QAC/G,CAAC;QAGD,IAAI,SAAS,EAAE,CAAC;YACd,QAAQ,CAAC,MAAM,EAAE,6CAA6C,EAAE,MAAM,EAAE,2FAA2F,CAAC,CAAC;QACvK,CAAC;QAGD,WAAW,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;QAE3C,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,IAAI,CACd,4CAA4C,EAC5C;gBACE,+CAA+C;gBAC/C,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;aACrC,CAAC,IAAI,CAAC,MAAM,CAAC,EACd;gBACE,MAAM,EAAE,CAAC;gBACT,OAAO,EAAE;oBACP,YAAY,EAAE,sBAAsB;oBACpC,SAAS,EAAE,kCAAkC;iBAC9C;aACF,CACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;gBACvB,QAAQ,CAAC,MAAM,EAAE,6CAA6C,EAAE,OAAO,EAAE,kEAAkE,CAAC,CAAC;gBAC7I,WAAW,CAAC,iBAAiB,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;YACxD,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAaD,MAAM,CAAC,KAAK,UAAU,6BAA6B,CAAC,OAA6C,EAAE,MAA2C,EAAE,SAAiD;IAC/L,MAAM,eAAe,GAAiD;QACpE,UAAU;QACV,WAAW;QACX,UAAU;QACV,aAAa;QACb,QAAQ;KACT,CAAC;IACF,MAAM,gBAAgB,GAAkD;QACtE,aAAa;QACb,cAAc;QACd,aAAa;QACb,WAAW;KACZ,CAAC;IACF,MAAM,gBAAgB,GAAkD;QACtE,4BAA4B;KAC7B,CAAC;IACF,MAAM,iBAAiB,GAAmD;QACxE,MAAM;QACN,OAAO;QACP,KAAK;QACL,MAAM;KACP,CAAC;IACF,MAAM,sBAAsB,GAAwD;QAClF,MAAM;QACN,UAAU;QACV,qBAAqB;QACrB,qBAAqB;QACrB,OAAO;QACP,YAAY;QACZ,KAAK;QACL,MAAM;KACP,CAAC;IACF,MAAM,kBAAkB,GAAoD;QAC1E,yCAAyC;KAC1C,CAAC;IAGF,MAAM,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CACpD,CACE,CAAC,MAAM,CAAC,cAAc;WACnB,CACD,CACE,MAAM,CAAC,UAAU,KAAK,IAAI;eACvB,CAAC,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAChD;eACE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC;eAC9C,CAAC,gBAAgB,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC;eAC9C,CAAC,iBAAiB,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC;eACjD,CAAC,sBAAsB,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC;eAC3D,CAAC,kBAAkB,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CACvD,CACF;WACE,CACD,MAAM,CAAC,cAAc;eAClB,CACD,MAAM,CAAC,UAAU,KAAK,IAAI;mBACvB,CAAC,gBAAgB,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CACjD,CACF,CACF,CAAC,CAAC;IAEH,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClC,MAAM,WAAW,GAAG,qCAAqC,CAAC,kBAAkB,CAAC,CAAC;QAG9E,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,gBAAgB,EAAE,CAAC;YAE1C,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;oBACpB,MAAM,CAAC,IAAI,CAAC,4GAA4G,CAAC,CAAC;gBAC5H,CAAC;gBAGD,IAAI,SAAS,EAAE,CAAC;oBACd,QAAQ,CAAC,MAAM,EAAE,6CAA6C,EAAE,MAAM,EAAE,2GAA2G,CAAC,CAAC;gBACvL,CAAC;gBAGD,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;gBACvB,QAAQ,CAAC,MAAM,EAAE,6CAA6C,EAAE,OAAO,EAAE,uCAAuC,CAAC,CAAC;gBAClH,WAAW,CAAC,iBAAiB,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;YACxD,CAAC;QACH,CAAC;QAED,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,MAAM,CAAC,IAAI,CAAC,gGAAgG,CAAC,CAAC;QAChH,CAAC;QAGD,IAAI,SAAS,EAAE,CAAC;YACd,QAAQ,CAAC,MAAM,EAAE,6CAA6C,EAAE,MAAM,EAAE,4FAA4F,CAAC,CAAC;QACxK,CAAC;QAGD,WAAW,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;QAE3C,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,IAAI,CACd,4CAA4C,EAC5C;gBACE,+CAA+C;gBAC/C,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;aACrC,CAAC,IAAI,CAAC,MAAM,CAAC,EACd;gBACE,MAAM,EAAE,CAAC;gBACT,OAAO,EAAE;oBACP,YAAY,EAAE,sBAAsB;oBACpC,SAAS,EAAE,mCAAmC;iBAC/C;aACF,CACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;gBACvB,QAAQ,CAAC,MAAM,EAAE,6CAA6C,EAAE,OAAO,EAAE,mEAAmE,CAAC,CAAC;gBAC9I,WAAW,CAAC,iBAAiB,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;YACxD,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAaD,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAAC,MAAyC,EAAE,MAAyC,EAAE,SAA+C;IACrL,MAAM,aAAa,GAA6C;QAC9D,QAAQ;QACR,gBAAgB;KACjB,CAAC;IAGF,MAAM,iBAAiB,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IAE7F,IAAI,iBAAiB,EAAE,CAAC;QACtB,MAAM,WAAW,GAAG,qCAAqC,CAAC,MAAM,CAAC,CAAC;QAGlE,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,gBAAgB,EAAE,CAAC;YAE1C,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;oBACpB,MAAM,CAAC,IAAI,CAAC,yGAAyG,CAAC,CAAC;gBACzH,CAAC;gBAGD,IAAI,SAAS,EAAE,CAAC;oBACd,QAAQ,CAAC,MAAM,EAAE,2CAA2C,EAAE,MAAM,EAAE,wGAAwG,CAAC,CAAC;gBAClL,CAAC;gBAGD,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;gBACvB,QAAQ,CAAC,MAAM,EAAE,2CAA2C,EAAE,OAAO,EAAE,uCAAuC,CAAC,CAAC;gBAChH,WAAW,CAAC,iBAAiB,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;YACxD,CAAC;QACH,CAAC;QAED,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,MAAM,CAAC,IAAI,CAAC,6FAA6F,CAAC,CAAC;QAC7G,CAAC;QAGD,IAAI,SAAS,EAAE,CAAC;YACd,QAAQ,CAAC,MAAM,EAAE,2CAA2C,EAAE,MAAM,EAAE,yFAAyF,CAAC,CAAC;QACnK,CAAC;QAGD,WAAW,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;QAE3C,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,IAAI,CACd,4CAA4C,EAC5C;gBACE,+CAA+C;gBAC/C,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;aACrC,CAAC,IAAI,CAAC,MAAM,CAAC,EACd;gBACE,MAAM,EAAE,CAAC;gBACT,OAAO,EAAE;oBACP,YAAY,EAAE,sBAAsB;oBACpC,SAAS,EAAE,gCAAgC;iBAC5C;aACF,CACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;gBACvB,QAAQ,CAAC,MAAM,EAAE,2CAA2C,EAAE,OAAO,EAAE,gEAAgE,CAAC,CAAC;gBACzI,WAAW,CAAC,iBAAiB,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;YACxD,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAaD,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,OAAsC,EAAE,MAAoC,EAAE,SAA0C;IACnK,MAAM,WAAW,GAAsC;QACrD,YAAY;QACZ,aAAa;QACb,YAAY;QACZ,UAAU;QACV,oBAAoB;KACrB,CAAC;IACF,MAAM,aAAa,GAAwC;QACzD,eAAe;QACf,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,eAAiE,CAAC;QACrH,WAAW;QACX,gBAAgB;QAChB,uBAAuB;QACvB,YAAY;QACZ,QAAQ;QACR,iBAAiB;QACjB,gBAAgB;QAChB,kBAAkB;QAClB,iBAAiB;QACjB,gBAAgB;QAChB,iBAAiB;QACjB,aAAa;KACd,CAAC;IAGF,MAAM,gBAAgB,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1F,MAAM,iBAAiB,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAE/F,IAAI,gBAAgB,IAAI,iBAAiB,EAAE,CAAC;QAC1C,MAAM,WAAW,GAAG,qCAAqC,CAAC,OAAO,CAAC,CAAC;QAGnE,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,gBAAgB,EAAE,CAAC;YAE1C,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;oBACpB,MAAM,CAAC,IAAI,CAAC,mHAAmH,CAAC,CAAC;gBACnI,CAAC;gBAGD,IAAI,SAAS,EAAE,CAAC;oBACd,QAAQ,CAAC,MAAM,EAAE,sCAAsC,EAAE,MAAM,EAAE,kHAAkH,CAAC,CAAC;gBACvL,CAAC;gBAGD,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;gBACvB,QAAQ,CAAC,MAAM,EAAE,sCAAsC,EAAE,OAAO,EAAE,uCAAuC,CAAC,CAAC;gBAC3G,WAAW,CAAC,iBAAiB,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;YACxD,CAAC;QACH,CAAC;QAED,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,MAAM,CAAC,IAAI,CAAC,uGAAuG,CAAC,CAAC;QACvH,CAAC;QAGD,IAAI,SAAS,EAAE,CAAC;YACd,QAAQ,CAAC,MAAM,EAAE,sCAAsC,EAAE,MAAM,EAAE,mGAAmG,CAAC,CAAC;QACxK,CAAC;QAGD,WAAW,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;QAE3C,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,IAAI,CACd,4CAA4C,EAC5C;gBACE,+CAA+C;gBAC/C,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;aACrC,CAAC,IAAI,CAAC,MAAM,CAAC,EACd;gBACE,MAAM,EAAE,CAAC;gBACT,OAAO,EAAE;oBACP,YAAY,EAAE,sBAAsB;oBACpC,SAAS,EAAE,0CAA0C;iBACtD;aACF,CACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;gBACvB,QAAQ,CAAC,MAAM,EAAE,sCAAsC,EAAE,OAAO,EAAE,wEAAwE,CAAC,CAAC;gBAC5I,WAAW,CAAC,iBAAiB,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;YACxD,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAaD,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,OAAwC,EAAE,MAAsC,EAAE,SAA4C;IAC3K,MAAM,aAAa,GAA0C;QAC3D,YAAY;QACZ,WAAW;QACX,WAAW;QACX,WAAW;QACX,YAAY;QACZ,YAAY;QACZ,YAAY;QACZ,YAAY;QACZ,YAAY;QACZ,YAAY;QACZ,WAAW;QACX,YAAY;QACZ,WAAW;QACX,WAAW;QACX,YAAY;KACb,CAAC;IAGF,MAAM,kBAAkB,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;IAElG,IAAI,kBAAkB,EAAE,CAAC;QACvB,MAAM,WAAW,GAAG,qCAAqC,CAAC,OAAO,CAAC,CAAC;QAGnE,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,gBAAgB,EAAE,CAAC;YAE1C,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;oBACpB,MAAM,CAAC,IAAI,CAAC,wGAAwG,CAAC,CAAC;gBACxH,CAAC;gBAGD,IAAI,SAAS,EAAE,CAAC;oBACd,QAAQ,CAAC,MAAM,EAAE,wCAAwC,EAAE,MAAM,EAAE,uGAAuG,CAAC,CAAC;gBAC9K,CAAC;gBAGD,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;gBACvB,QAAQ,CAAC,MAAM,EAAE,wCAAwC,EAAE,OAAO,EAAE,uCAAuC,CAAC,CAAC;gBAC7G,WAAW,CAAC,iBAAiB,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;YACxD,CAAC;QACH,CAAC;QAED,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,MAAM,CAAC,IAAI,CAAC,4FAA4F,CAAC,CAAC;QAC5G,CAAC;QAGD,IAAI,SAAS,EAAE,CAAC;YACd,QAAQ,CAAC,MAAM,EAAE,wCAAwC,EAAE,MAAM,EAAE,wFAAwF,CAAC,CAAC;QAC/J,CAAC;QAGD,WAAW,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;QAE3C,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,IAAI,CACd,4CAA4C,EAC5C;gBACE,+CAA+C;gBAC/C,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;aACrC,CAAC,IAAI,CAAC,MAAM,CAAC,EACd;gBACE,MAAM,EAAE,CAAC;gBACT,OAAO,EAAE;oBACP,YAAY,EAAE,sBAAsB;oBACpC,SAAS,EAAE,+BAA+B;iBAC3C;aACF,CACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;gBACvB,QAAQ,CAAC,MAAM,EAAE,wCAAwC,EAAE,OAAO,EAAE,6DAA6D,CAAC,CAAC;gBACnI,WAAW,CAAC,iBAAiB,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;YACxD,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAaD,MAAM,CAAC,KAAK,UAAU,6BAA6B,CAAC,OAA6C,EAAE,MAA2C,EAAE,SAAiD;IAC/L,MAAM,gBAAgB,GAAkD;QACtE,8BAA8B;QAC9B,0BAA0B;QAC1B,oBAAoB;QACpB,aAAa;QACb,4BAA4B;QAC5B,sBAAsB;QACtB,iBAAiB;QACjB,eAAe;QACf,qCAAqC;QACrC,cAAc;QACd,6BAA6B;QAC7B,oBAAoB;QACpB,oBAAoB;QACpB,qBAAqB;QACrB,oBAAoB;QACpB,eAAe;KAChB,CAAC;IACF,MAAM,aAAa,GAA+C;QAChE,QAAQ;QACR,gBAAgB;KACjB,CAAC;IAGF,MAAM,sBAAsB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CACxD,CAAC,gBAAgB,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC;WAC1C,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAC1C,CAAC,CAAC;IAEH,IAAI,sBAAsB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtC,MAAM,WAAW,GAAG,qCAAqC,CAAC,sBAAsB,CAAC,CAAC;QAGlF,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,gBAAgB,EAAE,CAAC;YAE1C,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;oBACpB,MAAM,CAAC,IAAI,CAAC,2GAA2G,CAAC,CAAC;gBAC3H,CAAC;gBAGD,IAAI,SAAS,EAAE,CAAC;oBACd,QAAQ,CAAC,MAAM,EAAE,6CAA6C,EAAE,MAAM,EAAE,0GAA0G,CAAC,CAAC;gBACtL,CAAC;gBAGD,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;gBACvB,QAAQ,CAAC,MAAM,EAAE,6CAA6C,EAAE,OAAO,EAAE,uCAAuC,CAAC,CAAC;gBAClH,WAAW,CAAC,iBAAiB,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;YACxD,CAAC;QACH,CAAC;QAED,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,MAAM,CAAC,IAAI,CAAC,+FAA+F,CAAC,CAAC;QAC/G,CAAC;QAGD,IAAI,SAAS,EAAE,CAAC;YACd,QAAQ,CAAC,MAAM,EAAE,6CAA6C,EAAE,MAAM,EAAE,2FAA2F,CAAC,CAAC;QACvK,CAAC;QAGD,WAAW,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;QAE3C,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,IAAI,CACd,4CAA4C,EAC5C;gBACE,+CAA+C;gBAC/C,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;aACrC,CAAC,IAAI,CAAC,MAAM,CAAC,EACd;gBACE,MAAM,EAAE,CAAC;gBACT,OAAO,EAAE;oBACP,YAAY,EAAE,sBAAsB;oBACpC,SAAS,EAAE,kCAAkC;iBAC9C;aACF,CACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;gBACvB,QAAQ,CAAC,MAAM,EAAE,6CAA6C,EAAE,OAAO,EAAE,kEAAkE,CAAC,CAAC;gBAC7I,WAAW,CAAC,iBAAiB,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;YACxD,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAaD,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,OAAwC,EAAE,MAAsC,EAAE,SAA4C;IAC3K,MAAM,UAAU,GAAuC;QACrD,cAAc;QACd,gBAAgB;QAChB,eAAe;QACf,WAAW;QACX,aAAa;QACb,eAAe;QACf,gBAAgB;KACjB,CAAC;IACF,MAAM,aAAa,GAA0C;QAC3D,eAAe;QACf,aAAa;QACb,aAAa;QACb,kBAAkB;QAClB,gBAAgB;QAChB,mBAAmB;QACnB,QAAQ;QACR,qBAAqB;QACrB,wBAAwB;QACxB,QAAQ;QACR,WAAW;QACX,MAAM;QACN,MAAM;QACN,SAAS;QACT,eAAe;QACf,iBAAiB;QACjB,SAAS;KACV,CAAC;IAGF,MAAM,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CACrD,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;WAC9B,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAC1C,CAAC,CAAC;IAEH,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnC,MAAM,WAAW,GAAG,qCAAqC,CAAC,mBAAmB,CAAC,CAAC;QAG/E,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,gBAAgB,EAAE,CAAC;YAE1C,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;oBACpB,MAAM,CAAC,IAAI,CAAC,sGAAsG,CAAC,CAAC;gBACtH,CAAC;gBAGD,IAAI,SAAS,EAAE,CAAC;oBACd,QAAQ,CAAC,MAAM,EAAE,wCAAwC,EAAE,MAAM,EAAE,qGAAqG,CAAC,CAAC;gBAC5K,CAAC;gBAGD,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;gBACvB,QAAQ,CAAC,MAAM,EAAE,wCAAwC,EAAE,OAAO,EAAE,uCAAuC,CAAC,CAAC;gBAC7G,WAAW,CAAC,iBAAiB,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;YACxD,CAAC;QACH,CAAC;QAED,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,MAAM,CAAC,IAAI,CAAC,0FAA0F,CAAC,CAAC;QAC1G,CAAC;QAGD,IAAI,SAAS,EAAE,CAAC;YACd,QAAQ,CAAC,MAAM,EAAE,wCAAwC,EAAE,MAAM,EAAE,sFAAsF,CAAC,CAAC;QAC7J,CAAC;QAGD,WAAW,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;QAE3C,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,IAAI,CACd,4CAA4C,EAC5C;gBACE,+CAA+C;gBAC/C,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;aACrC,CAAC,IAAI,CAAC,MAAM,CAAC,EACd;gBACE,MAAM,EAAE,CAAC;gBACT,OAAO,EAAE;oBACP,YAAY,EAAE,sBAAsB;oBACpC,SAAS,EAAE,6BAA6B;iBACzC;aACF,CACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;gBACvB,QAAQ,CAAC,MAAM,EAAE,wCAAwC,EAAE,OAAO,EAAE,6DAA6D,CAAC,CAAC;gBACnI,WAAW,CAAC,iBAAiB,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;YACxD,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
1
|
+
{"version":3,"file":"detect.js","sourceRoot":"","sources":["../../../src/lib/detect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,EACL,+BAA+B,EAC/B,gCAAgC,EAChC,qCAAqC,EACrC,iCAAiC,EACjC,6BAA6B,EAC7B,gCAAgC,EAChC,iCAAiC,EACjC,iCAAiC,EACjC,kCAAkC,EAClC,uCAAuC,EACvC,mCAAmC,EACnC,2BAA2B,EAC3B,kBAAkB,EAClB,gCAAgC,EAChC,4BAA4B,EAC5B,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,QAAQ,EACR,gBAAgB,EAChB,qCAAqC,EACrC,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAuD1B,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAAC,QAA6C,EAAE,MAAyC,EAAE,SAA+C;IACzL,MAAM,mBAAmB,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CACvD,CAAC,+BAA+B,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC;WAC3D,CACD,OAAO,CAAC,SAAS,CAAC,GAAG,KAAK,IAAI;eAC3B,CAAC,gCAAgC,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CACrE;WACE,CACD,OAAO,CAAC,SAAS,CAAC,QAAQ,KAAK,IAAI;eAChC,CAAC,qCAAqC,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAC/E;WACE,CAAC,iCAAiC,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CACvE,CAAC,CAAC;IAEH,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnC,MAAM,WAAW,GAAG,qCAAqC,CAAC,mBAAmB,CAAC,CAAC;QAG/E,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,gBAAgB,EAAE,CAAC;YAE1C,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;oBACpB,MAAM,CAAC,IAAI,CAAC,0GAA0G,CAAC,CAAC;gBAC1H,CAAC;gBAGD,IAAI,SAAS,EAAE,CAAC;oBACd,QAAQ,CAAC,MAAM,EAAE,2CAA2C,EAAE,MAAM,EAAE,yGAAyG,CAAC,CAAC;gBACnL,CAAC;gBAGD,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;gBACvB,QAAQ,CAAC,MAAM,EAAE,2CAA2C,EAAE,OAAO,EAAE,uCAAuC,CAAC,CAAC;gBAChH,WAAW,CAAC,iBAAiB,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;YACxD,CAAC;YAGD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,MAAM,CAAC,IAAI,CAAC,8FAA8F,CAAC,CAAC;QAC9G,CAAC;QAGD,IAAI,SAAS,EAAE,CAAC;YACd,QAAQ,CAAC,MAAM,EAAE,2CAA2C,EAAE,MAAM,EAAE,0FAA0F,CAAC,CAAC;QACpK,CAAC;QAGD,WAAW,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;QAE3C,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,IAAI,CACd,4CAA4C,EAC5C;gBACE,+CAA+C;gBAC/C,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;aACrC,CAAC,IAAI,CAAC,MAAM,CAAC,EACd;gBACE,MAAM,EAAE,CAAC;gBACT,OAAO,EAAE;oBACP,YAAY,EAAE,sBAAsB;oBACpC,SAAS,EAAE,iCAAiC;iBAC7C;aACF,CACF,CAAC;YAEF,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;gBACvB,QAAQ,CAAC,MAAM,EAAE,2CAA2C,EAAE,OAAO,EAAE,iEAAiE,CAAC,CAAC;gBAC1I,WAAW,CAAC,iBAAiB,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;YACxD,CAAC;YAGD,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAaD,MAAM,CAAC,KAAK,UAAU,6BAA6B,CAAC,MAA2C,EAAE,MAA2C,EAAE,SAAiD;IAC7L,MAAM,iBAAiB,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI,IAAI,CAAC,6BAA6B,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IAE7G,IAAI,iBAAiB,EAAE,CAAC;QACtB,MAAM,WAAW,GAAG,qCAAqC,CAAC,MAAM,CAAC,CAAC;QAGlE,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,gBAAgB,EAAE,CAAC;YAE1C,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;oBACpB,MAAM,CAAC,IAAI,CAAC,2GAA2G,CAAC,CAAC;gBAC3H,CAAC;gBAGD,IAAI,SAAS,EAAE,CAAC;oBACd,QAAQ,CAAC,MAAM,EAAE,6CAA6C,EAAE,MAAM,EAAE,0GAA0G,CAAC,CAAC;gBACtL,CAAC;gBAGD,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;gBACvB,QAAQ,CAAC,MAAM,EAAE,6CAA6C,EAAE,OAAO,EAAE,uCAAuC,CAAC,CAAC;gBAClH,WAAW,CAAC,iBAAiB,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;YACxD,CAAC;YAGD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,MAAM,CAAC,IAAI,CAAC,+FAA+F,CAAC,CAAC;QAC/G,CAAC;QAGD,IAAI,SAAS,EAAE,CAAC;YACd,QAAQ,CAAC,MAAM,EAAE,6CAA6C,EAAE,MAAM,EAAE,2FAA2F,CAAC,CAAC;QACvK,CAAC;QAGD,WAAW,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;QAE3C,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,IAAI,CACd,4CAA4C,EAC5C;gBACE,+CAA+C;gBAC/C,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;aACrC,CAAC,IAAI,CAAC,MAAM,CAAC,EACd;gBACE,MAAM,EAAE,CAAC;gBACT,OAAO,EAAE;oBACP,YAAY,EAAE,sBAAsB;oBACpC,SAAS,EAAE,kCAAkC;iBAC9C;aACF,CACF,CAAC;YAEF,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;gBACvB,QAAQ,CAAC,MAAM,EAAE,6CAA6C,EAAE,OAAO,EAAE,kEAAkE,CAAC,CAAC;gBAC7I,WAAW,CAAC,iBAAiB,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;YACxD,CAAC;YAGD,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAaD,MAAM,CAAC,KAAK,UAAU,6BAA6B,CAAC,OAA6C,EAAE,MAA2C,EAAE,SAAiD;IAC/L,MAAM,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CACpD,CACE,CAAC,MAAM,CAAC,cAAc;WACnB,CACD,CACE,MAAM,CAAC,UAAU,KAAK,IAAI;eACvB,CAAC,gCAAgC,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CACjE;eACE,CAAC,iCAAiC,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC;eAC/D,CAAC,iCAAiC,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC;eAC/D,CAAC,kCAAkC,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC;eAClE,CAAC,uCAAuC,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC;eAC5E,CAAC,mCAAmC,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CACxE,CACF;WACE,CACD,MAAM,CAAC,cAAc;eAClB,CACD,MAAM,CAAC,UAAU,KAAK,IAAI;mBACvB,CAAC,iCAAiC,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAClE,CACF,CACF,CAAC,CAAC;IAEH,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClC,MAAM,WAAW,GAAG,qCAAqC,CAAC,kBAAkB,CAAC,CAAC;QAG9E,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,gBAAgB,EAAE,CAAC;YAE1C,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;oBACpB,MAAM,CAAC,IAAI,CAAC,4GAA4G,CAAC,CAAC;gBAC5H,CAAC;gBAGD,IAAI,SAAS,EAAE,CAAC;oBACd,QAAQ,CAAC,MAAM,EAAE,6CAA6C,EAAE,MAAM,EAAE,2GAA2G,CAAC,CAAC;gBACvL,CAAC;gBAGD,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;gBACvB,QAAQ,CAAC,MAAM,EAAE,6CAA6C,EAAE,OAAO,EAAE,uCAAuC,CAAC,CAAC;gBAClH,WAAW,CAAC,iBAAiB,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;YACxD,CAAC;YAGD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,MAAM,CAAC,IAAI,CAAC,gGAAgG,CAAC,CAAC;QAChH,CAAC;QAGD,IAAI,SAAS,EAAE,CAAC;YACd,QAAQ,CAAC,MAAM,EAAE,6CAA6C,EAAE,MAAM,EAAE,4FAA4F,CAAC,CAAC;QACxK,CAAC;QAGD,WAAW,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;QAE3C,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,IAAI,CACd,4CAA4C,EAC5C;gBACE,+CAA+C;gBAC/C,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;aACrC,CAAC,IAAI,CAAC,MAAM,CAAC,EACd;gBACE,MAAM,EAAE,CAAC;gBACT,OAAO,EAAE;oBACP,YAAY,EAAE,sBAAsB;oBACpC,SAAS,EAAE,mCAAmC;iBAC/C;aACF,CACF,CAAC;YAEF,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;gBACvB,QAAQ,CAAC,MAAM,EAAE,6CAA6C,EAAE,OAAO,EAAE,mEAAmE,CAAC,CAAC;gBAC9I,WAAW,CAAC,iBAAiB,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;YACxD,CAAC;YAGD,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAaD,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAAC,MAAyC,EAAE,MAAyC,EAAE,SAA+C;IACrL,MAAM,iBAAiB,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI,IAAI,CAAC,2BAA2B,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IAE3G,IAAI,iBAAiB,EAAE,CAAC;QACtB,MAAM,WAAW,GAAG,qCAAqC,CAAC,MAAM,CAAC,CAAC;QAGlE,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,gBAAgB,EAAE,CAAC;YAE1C,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;oBACpB,MAAM,CAAC,IAAI,CAAC,yGAAyG,CAAC,CAAC;gBACzH,CAAC;gBAGD,IAAI,SAAS,EAAE,CAAC;oBACd,QAAQ,CAAC,MAAM,EAAE,2CAA2C,EAAE,MAAM,EAAE,wGAAwG,CAAC,CAAC;gBAClL,CAAC;gBAGD,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;gBACvB,QAAQ,CAAC,MAAM,EAAE,2CAA2C,EAAE,OAAO,EAAE,uCAAuC,CAAC,CAAC;gBAChH,WAAW,CAAC,iBAAiB,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;YACxD,CAAC;YAGD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,MAAM,CAAC,IAAI,CAAC,6FAA6F,CAAC,CAAC;QAC7G,CAAC;QAGD,IAAI,SAAS,EAAE,CAAC;YACd,QAAQ,CAAC,MAAM,EAAE,2CAA2C,EAAE,MAAM,EAAE,yFAAyF,CAAC,CAAC;QACnK,CAAC;QAGD,WAAW,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;QAE3C,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,IAAI,CACd,4CAA4C,EAC5C;gBACE,+CAA+C;gBAC/C,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;aACrC,CAAC,IAAI,CAAC,MAAM,CAAC,EACd;gBACE,MAAM,EAAE,CAAC;gBACT,OAAO,EAAE;oBACP,YAAY,EAAE,sBAAsB;oBACpC,SAAS,EAAE,gCAAgC;iBAC5C;aACF,CACF,CAAC;YAEF,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;gBACvB,QAAQ,CAAC,MAAM,EAAE,2CAA2C,EAAE,OAAO,EAAE,gEAAgE,CAAC,CAAC;gBACzI,WAAW,CAAC,iBAAiB,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;YACxD,CAAC;YAGD,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAaD,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,OAAsC,EAAE,MAAoC,EAAE,SAA0C;IACnK,MAAM,qBAAqB,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;IAEvE,IAAI,qBAAqB,EAAE,CAAC;QAC1B,MAAM,WAAW,GAAG,qCAAqC,CAAC,OAAO,CAAC,CAAC;QAGnE,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,gBAAgB,EAAE,CAAC;YAE1C,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;oBACpB,MAAM,CAAC,IAAI,CAAC,mHAAmH,CAAC,CAAC;gBACnI,CAAC;gBAGD,IAAI,SAAS,EAAE,CAAC;oBACd,QAAQ,CAAC,MAAM,EAAE,sCAAsC,EAAE,MAAM,EAAE,kHAAkH,CAAC,CAAC;gBACvL,CAAC;gBAGD,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;gBACvB,QAAQ,CAAC,MAAM,EAAE,sCAAsC,EAAE,OAAO,EAAE,uCAAuC,CAAC,CAAC;gBAC3G,WAAW,CAAC,iBAAiB,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;YACxD,CAAC;YAGD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,MAAM,CAAC,IAAI,CAAC,uGAAuG,CAAC,CAAC;QACvH,CAAC;QAGD,IAAI,SAAS,EAAE,CAAC;YACd,QAAQ,CAAC,MAAM,EAAE,sCAAsC,EAAE,MAAM,EAAE,mGAAmG,CAAC,CAAC;QACxK,CAAC;QAGD,WAAW,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;QAE3C,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,IAAI,CACd,4CAA4C,EAC5C;gBACE,+CAA+C;gBAC/C,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;aACrC,CAAC,IAAI,CAAC,MAAM,CAAC,EACd;gBACE,MAAM,EAAE,CAAC;gBACT,OAAO,EAAE;oBACP,YAAY,EAAE,sBAAsB;oBACpC,SAAS,EAAE,0CAA0C;iBACtD;aACF,CACF,CAAC;YAEF,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;gBACvB,QAAQ,CAAC,MAAM,EAAE,sCAAsC,EAAE,OAAO,EAAE,wEAAwE,CAAC,CAAC;gBAC5I,WAAW,CAAC,iBAAiB,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;YACxD,CAAC;YAGD,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAaD,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,OAAwC,EAAE,MAAsC,EAAE,SAA4C;IAC3K,MAAM,kBAAkB,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,IAAI,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;IAEvG,IAAI,kBAAkB,EAAE,CAAC;QACvB,MAAM,WAAW,GAAG,qCAAqC,CAAC,OAAO,CAAC,CAAC;QAGnE,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,gBAAgB,EAAE,CAAC;YAE1C,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;oBACpB,MAAM,CAAC,IAAI,CAAC,wGAAwG,CAAC,CAAC;gBACxH,CAAC;gBAGD,IAAI,SAAS,EAAE,CAAC;oBACd,QAAQ,CAAC,MAAM,EAAE,wCAAwC,EAAE,MAAM,EAAE,uGAAuG,CAAC,CAAC;gBAC9K,CAAC;gBAGD,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;gBACvB,QAAQ,CAAC,MAAM,EAAE,wCAAwC,EAAE,OAAO,EAAE,uCAAuC,CAAC,CAAC;gBAC7G,WAAW,CAAC,iBAAiB,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;YACxD,CAAC;YAGD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,MAAM,CAAC,IAAI,CAAC,4FAA4F,CAAC,CAAC;QAC5G,CAAC;QAGD,IAAI,SAAS,EAAE,CAAC;YACd,QAAQ,CAAC,MAAM,EAAE,wCAAwC,EAAE,MAAM,EAAE,wFAAwF,CAAC,CAAC;QAC/J,CAAC;QAGD,WAAW,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;QAE3C,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,IAAI,CACd,4CAA4C,EAC5C;gBACE,+CAA+C;gBAC/C,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;aACrC,CAAC,IAAI,CAAC,MAAM,CAAC,EACd;gBACE,MAAM,EAAE,CAAC;gBACT,OAAO,EAAE;oBACP,YAAY,EAAE,sBAAsB;oBACpC,SAAS,EAAE,+BAA+B;iBAC3C;aACF,CACF,CAAC;YAEF,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;gBACvB,QAAQ,CAAC,MAAM,EAAE,wCAAwC,EAAE,OAAO,EAAE,6DAA6D,CAAC,CAAC;gBACnI,WAAW,CAAC,iBAAiB,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;YACxD,CAAC;YAGD,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAaD,MAAM,CAAC,KAAK,UAAU,6BAA6B,CAAC,OAA6C,EAAE,MAA2C,EAAE,SAAiD;IAC/L,MAAM,sBAAsB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CACxD,CAAC,gCAAgC,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC;WAC1D,CAAC,4BAA4B,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CACzD,CAAC,CAAC;IAEH,IAAI,sBAAsB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtC,MAAM,WAAW,GAAG,qCAAqC,CAAC,sBAAsB,CAAC,CAAC;QAGlF,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,gBAAgB,EAAE,CAAC;YAE1C,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;oBACpB,MAAM,CAAC,IAAI,CAAC,2GAA2G,CAAC,CAAC;gBAC3H,CAAC;gBAGD,IAAI,SAAS,EAAE,CAAC;oBACd,QAAQ,CAAC,MAAM,EAAE,6CAA6C,EAAE,MAAM,EAAE,0GAA0G,CAAC,CAAC;gBACtL,CAAC;gBAGD,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;gBACvB,QAAQ,CAAC,MAAM,EAAE,6CAA6C,EAAE,OAAO,EAAE,uCAAuC,CAAC,CAAC;gBAClH,WAAW,CAAC,iBAAiB,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;YACxD,CAAC;YAGD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,MAAM,CAAC,IAAI,CAAC,+FAA+F,CAAC,CAAC;QAC/G,CAAC;QAGD,IAAI,SAAS,EAAE,CAAC;YACd,QAAQ,CAAC,MAAM,EAAE,6CAA6C,EAAE,MAAM,EAAE,2FAA2F,CAAC,CAAC;QACvK,CAAC;QAGD,WAAW,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;QAE3C,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,IAAI,CACd,4CAA4C,EAC5C;gBACE,+CAA+C;gBAC/C,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;aACrC,CAAC,IAAI,CAAC,MAAM,CAAC,EACd;gBACE,MAAM,EAAE,CAAC;gBACT,OAAO,EAAE;oBACP,YAAY,EAAE,sBAAsB;oBACpC,SAAS,EAAE,kCAAkC;iBAC9C;aACF,CACF,CAAC;YAEF,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;gBACvB,QAAQ,CAAC,MAAM,EAAE,6CAA6C,EAAE,OAAO,EAAE,kEAAkE,CAAC,CAAC;gBAC7I,WAAW,CAAC,iBAAiB,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;YACxD,CAAC;YAGD,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAaD,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,OAAwC,EAAE,MAAsC,EAAE,SAA4C;IAC3K,MAAM,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,qBAAqB,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,uBAAuB,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAEhM,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnC,MAAM,WAAW,GAAG,qCAAqC,CAAC,mBAAmB,CAAC,CAAC;QAG/E,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,gBAAgB,EAAE,CAAC;YAE1C,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;oBACpB,MAAM,CAAC,IAAI,CAAC,sGAAsG,CAAC,CAAC;gBACtH,CAAC;gBAGD,IAAI,SAAS,EAAE,CAAC;oBACd,QAAQ,CAAC,MAAM,EAAE,wCAAwC,EAAE,MAAM,EAAE,qGAAqG,CAAC,CAAC;gBAC5K,CAAC;gBAGD,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;gBACvB,QAAQ,CAAC,MAAM,EAAE,wCAAwC,EAAE,OAAO,EAAE,uCAAuC,CAAC,CAAC;gBAC7G,WAAW,CAAC,iBAAiB,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;YACxD,CAAC;YAGD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,MAAM,CAAC,IAAI,CAAC,0FAA0F,CAAC,CAAC;QAC1G,CAAC;QAGD,IAAI,SAAS,EAAE,CAAC;YACd,QAAQ,CAAC,MAAM,EAAE,wCAAwC,EAAE,MAAM,EAAE,sFAAsF,CAAC,CAAC;QAC7J,CAAC;QAGD,WAAW,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;QAE3C,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,IAAI,CACd,4CAA4C,EAC5C;gBACE,+CAA+C;gBAC/C,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;aACrC,CAAC,IAAI,CAAC,MAAM,CAAC,EACd;gBACE,MAAM,EAAE,CAAC;gBACT,OAAO,EAAE;oBACP,YAAY,EAAE,sBAAsB;oBACpC,SAAS,EAAE,6BAA6B;iBACzC;aACF,CACF,CAAC;YAEF,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;gBACvB,QAAQ,CAAC,MAAM,EAAE,wCAAwC,EAAE,OAAO,EAAE,6DAA6D,CAAC,CAAC;gBACnI,WAAW,CAAC,iBAAiB,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;YACxD,CAAC;YAGD,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAaD,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAAC,MAAwC,EAAE,MAAwC,EAAE,SAA8C;IACjL,MAAM,WAAW,GAAG,qCAAqC,CAAC,MAAM,CAAC,CAAC;IAGlE,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,gBAAgB,EAAE,CAAC;QAE1C,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;gBACpB,MAAM,CAAC,IAAI,CAAC,wGAAwG,CAAC,CAAC;YACxH,CAAC;YAGD,IAAI,SAAS,EAAE,CAAC;gBACd,QAAQ,CAAC,MAAM,EAAE,0CAA0C,EAAE,MAAM,EAAE,uGAAuG,CAAC,CAAC;YAChL,CAAC;YAGD,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;YACvB,QAAQ,CAAC,MAAM,EAAE,0CAA0C,EAAE,OAAO,EAAE,uCAAuC,CAAC,CAAC;YAC/G,WAAW,CAAC,iBAAiB,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;QACxD,CAAC;QAGD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,MAAM,CAAC,IAAI,CAAC,4FAA4F,CAAC,CAAC;IAC5G,CAAC;IAGD,IAAI,SAAS,EAAE,CAAC;QACd,QAAQ,CAAC,MAAM,EAAE,0CAA0C,EAAE,MAAM,EAAE,wFAAwF,CAAC,CAAC;IACjK,CAAC;IAGD,WAAW,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;IAE3C,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,IAAI,CACd,4CAA4C,EAC5C;YACE,+CAA+C;YAC/C,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;SACrC,CAAC,IAAI,CAAC,MAAM,CAAC,EACd;YACE,MAAM,EAAE,CAAC;YACT,OAAO,EAAE;gBACP,YAAY,EAAE,sBAAsB;gBACpC,SAAS,EAAE,+BAA+B;aAC3C;SACF,CACF,CAAC;QAEF,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;YACvB,QAAQ,CAAC,MAAM,EAAE,0CAA0C,EAAE,OAAO,EAAE,+DAA+D,CAAC,CAAC;YACvI,WAAW,CAAC,iBAAiB,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;QACxD,CAAC;QAGD,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAaD,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAAC,MAAyC,EAAE,MAAyC,EAAE,SAA+C;IACrL,MAAM,WAAW,GAAG,qCAAqC,CAAC,MAAM,CAAC,CAAC;IAGlE,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,gBAAgB,EAAE,CAAC;QAE1C,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;gBACpB,MAAM,CAAC,IAAI,CAAC,yGAAyG,CAAC,CAAC;YACzH,CAAC;YAGD,IAAI,SAAS,EAAE,CAAC;gBACd,QAAQ,CAAC,MAAM,EAAE,2CAA2C,EAAE,MAAM,EAAE,wGAAwG,CAAC,CAAC;YAClL,CAAC;YAGD,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;YACvB,QAAQ,CAAC,MAAM,EAAE,2CAA2C,EAAE,OAAO,EAAE,uCAAuC,CAAC,CAAC;YAChH,WAAW,CAAC,iBAAiB,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;QACxD,CAAC;QAGD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,MAAM,CAAC,IAAI,CAAC,6FAA6F,CAAC,CAAC;IAC7G,CAAC;IAGD,IAAI,SAAS,EAAE,CAAC;QACd,QAAQ,CAAC,MAAM,EAAE,2CAA2C,EAAE,MAAM,EAAE,yFAAyF,CAAC,CAAC;IACnK,CAAC;IAGD,WAAW,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;IAE3C,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,IAAI,CACd,4CAA4C,EAC5C;YACE,+CAA+C;YAC/C,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;SACrC,CAAC,IAAI,CAAC,MAAM,CAAC,EACd;YACE,MAAM,EAAE,CAAC;YACT,OAAO,EAAE;gBACP,YAAY,EAAE,sBAAsB;gBACpC,SAAS,EAAE,gCAAgC;aAC5C;SACF,CACF,CAAC;QAEF,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;YACvB,QAAQ,CAAC,MAAM,EAAE,2CAA2C,EAAE,OAAO,EAAE,gEAAgE,CAAC,CAAC;YACzI,WAAW,CAAC,iBAAiB,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;QACxD,CAAC;QAGD,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
|