@coralogix/browser 1.2.29 → 1.2.31
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 +27 -0
- package/package.json +1 -1
- package/src/session/session.model.d.ts +1 -0
- package/src/session/session.model.js.map +1 -1
- package/src/session/sessionRecorder.d.ts +3 -1
- package/src/session/sessionRecorder.js +24 -20
- package/src/session/sessionRecorder.js.map +1 -1
- package/src/session/workerManager.d.ts +5 -0
- package/src/session/workerManager.js +45 -0
- package/src/session/workerManager.js.map +1 -0
- package/src/version.d.ts +1 -1
- package/src/version.js +1 -1
- package/src/workers/session-recording-worker.js +14 -10
- package/src/workers/session-recording-worker.js.map +1 -1
package/README.md
CHANGED
|
@@ -243,6 +243,33 @@ CoralogixRum.init({
|
|
|
243
243
|
});
|
|
244
244
|
```
|
|
245
245
|
|
|
246
|
+
#### Worker Url
|
|
247
|
+
By default, Session recording uses an inline web worker script to compress data before transmission. For added flexibility, you can host a custom worker script on your own domain. Simply host the following file on your server: [worker.min.js](https://cdn.rum-ingress-coralogix.com/coralogix/browser/latest/worker.min.js)
|
|
248
|
+
|
|
249
|
+
For a locally hosted worker file:
|
|
250
|
+
```javascript
|
|
251
|
+
CoralogixRum.init({
|
|
252
|
+
// ...
|
|
253
|
+
sessionRecordingConfig: {
|
|
254
|
+
// ...
|
|
255
|
+
workerUrl: "/assets/worker.min.js"
|
|
256
|
+
},
|
|
257
|
+
});
|
|
258
|
+
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
For an externally hosted worker file:
|
|
262
|
+
```javascript
|
|
263
|
+
CoralogixRum.init({
|
|
264
|
+
// ...
|
|
265
|
+
sessionRecordingConfig: {
|
|
266
|
+
// ...
|
|
267
|
+
workerUrl: "https://cdn.rum-ingress-coralogix.com/coralogix/browser/latest/worker.min.js"
|
|
268
|
+
},
|
|
269
|
+
});
|
|
270
|
+
|
|
271
|
+
```
|
|
272
|
+
|
|
246
273
|
### Multi Page Application
|
|
247
274
|
|
|
248
275
|
If your application is not a single page application (SPA), you can initialize the SDK with a configuration to retain the session ID after a reload/refresh.
|
package/package.json
CHANGED
|
@@ -44,6 +44,7 @@ export interface SessionRecordingConfig extends Omit<recordOptions<eventWithTime
|
|
|
44
44
|
excludeDOMOptions?: SlimDOMOptions;
|
|
45
45
|
/** Percentage of overall sessions recording being tracked, defaults to 100% and applied after the overall sample rate sessionSampleRate */
|
|
46
46
|
sessionRecordingSampleRate?: number;
|
|
47
|
+
workerUrl?: string;
|
|
47
48
|
}
|
|
48
49
|
export interface SessionWithErrorConfig {
|
|
49
50
|
enable: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.model.js","sourceRoot":"","sources":["../../../../../libs/browser/src/session/session.model.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"session.model.js","sourceRoot":"","sources":["../../../../../libs/browser/src/session/session.model.ts"],"names":[],"mappings":"AAoFA,MAAM,CAAN,IAAY,yBAQX;AARD,WAAY,yBAAyB;IACnC,iGAAoB,CAAA;IACpB,yEAAQ,CAAA;IACR,yFAAgB,CAAA;IAChB,uGAAuB,CAAA;IACvB,yEAAQ,CAAA;IACR,6EAAU,CAAA;IACV,6EAAU,CAAA;AACZ,CAAC,EARW,yBAAyB,KAAzB,yBAAyB,QAQpC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { SessionRecordingConfig } from './session.model';
|
|
2
2
|
import { SessionManager } from './sessionManager';
|
|
3
3
|
export declare class SessionRecorder {
|
|
4
|
-
private
|
|
4
|
+
private sessionWorker;
|
|
5
5
|
private readonly isAutoStartRecording;
|
|
6
6
|
private readonly maxMutations;
|
|
7
7
|
private readonly onlySessionWithErrorMode;
|
|
@@ -22,6 +22,7 @@ export declare class SessionRecorder {
|
|
|
22
22
|
private _recordingStopDueToTimeout;
|
|
23
23
|
private mutationObserver;
|
|
24
24
|
private request;
|
|
25
|
+
private workerManager;
|
|
25
26
|
constructor(sessionManager: SessionManager, recordConfig: SessionRecordingConfig);
|
|
26
27
|
getSessionHasRecording(): boolean;
|
|
27
28
|
updateSegmentIndexCounter(segmentIndexCounter: Record<string, number>): void;
|
|
@@ -44,4 +45,5 @@ export declare class SessionRecorder {
|
|
|
44
45
|
private sendRecordEvents;
|
|
45
46
|
private handleSessionRecordingResponse;
|
|
46
47
|
private startBatchingRecords;
|
|
48
|
+
private initializeSessionWorker;
|
|
47
49
|
}
|
|
@@ -2,12 +2,12 @@ import { __awaiter } from "tslib";
|
|
|
2
2
|
import { EventType } from '@rrweb/types';
|
|
3
3
|
import { BATCH_TIME_DELAY, MAX_BATCH_TIME_MS, MAX_MUTATIONS_FOR_SESSION_RECORDING, SESSION_RECORDER_KEY, SESSION_RECORDER_SEGMENTS_MAP, SESSION_RECORDING_DEFAULT_ERROR_MESSAGE, SESSION_RECORDING_DEFAULT_HEADERS, SESSION_RECORDING_NETWORK_ERR0R_MESSAGE, SESSION_RECORDING_POSTFIX_URL, } from './session.consts';
|
|
4
4
|
import { getSdkConfig } from '../helpers';
|
|
5
|
-
import { getWorkerString } from '../workers/session-recording-worker';
|
|
6
5
|
import { record } from 'rrweb';
|
|
7
6
|
import { reportInternalEvent } from '../internal-event-reporter';
|
|
8
7
|
import { Request } from '../Request';
|
|
9
8
|
import { getRecordConsolePlugin } from '@rrweb/rrweb-plugin-console-record';
|
|
10
9
|
import { getNowTime } from '../utils/time';
|
|
10
|
+
import { WorkerManager } from './workerManager';
|
|
11
11
|
export class SessionRecorder {
|
|
12
12
|
constructor(sessionManager, recordConfig) {
|
|
13
13
|
var _a;
|
|
@@ -98,31 +98,15 @@ export class SessionRecorder {
|
|
|
98
98
|
window[SESSION_RECORDER_KEY] = this;
|
|
99
99
|
this.sessionManager = sessionManager;
|
|
100
100
|
const { onlySessionWithErrorMode, maxRecordTimeForSessionWithError } = sessionManager;
|
|
101
|
-
const { maxMutations, autoStartSessionRecording } = recordConfig;
|
|
101
|
+
const { maxMutations, autoStartSessionRecording, workerUrl } = recordConfig;
|
|
102
102
|
this.onlySessionWithErrorMode = onlySessionWithErrorMode;
|
|
103
103
|
this.maxRecordTimeForSessionWithError = maxRecordTimeForSessionWithError;
|
|
104
104
|
this.isAutoStartRecording = autoStartSessionRecording;
|
|
105
105
|
this.maxMutations = maxMutations !== null && maxMutations !== void 0 ? maxMutations : MAX_MUTATIONS_FOR_SESSION_RECORDING;
|
|
106
106
|
this.recordConfig = this.prepareRecordConfig(recordConfig);
|
|
107
107
|
if (window.Worker) {
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
const workerUrl = URL.createObjectURL(new Blob([workerCode]));
|
|
111
|
-
this.sessionWorker = new Worker(workerUrl);
|
|
112
|
-
if (this.isAutoStartRecording) {
|
|
113
|
-
this.startRecording();
|
|
114
|
-
}
|
|
115
|
-
this.request = new Request({
|
|
116
|
-
suffix: SESSION_RECORDING_POSTFIX_URL,
|
|
117
|
-
headers: SESSION_RECORDING_DEFAULT_HEADERS,
|
|
118
|
-
});
|
|
119
|
-
this.registerToWorkerMessages();
|
|
120
|
-
}
|
|
121
|
-
catch (err) {
|
|
122
|
-
if (this.debugMode) {
|
|
123
|
-
console.warn('Coralogix Browser SDK - Web worker not created due to: ', err);
|
|
124
|
-
}
|
|
125
|
-
}
|
|
108
|
+
this.workerManager = new WorkerManager();
|
|
109
|
+
this.initializeSessionWorker(workerUrl);
|
|
126
110
|
}
|
|
127
111
|
else {
|
|
128
112
|
if (this.debugMode) {
|
|
@@ -293,5 +277,25 @@ export class SessionRecorder {
|
|
|
293
277
|
startBatchingRecords() {
|
|
294
278
|
this.batchingTimeInterval = setInterval(this.prepareRecordEventsBeforeSend, MAX_BATCH_TIME_MS);
|
|
295
279
|
}
|
|
280
|
+
initializeSessionWorker(workerUrl) {
|
|
281
|
+
this.workerManager
|
|
282
|
+
.loadAndCreateWorker(workerUrl)
|
|
283
|
+
.then((worker) => {
|
|
284
|
+
this.sessionWorker = worker;
|
|
285
|
+
if (this.isAutoStartRecording) {
|
|
286
|
+
this.startRecording();
|
|
287
|
+
}
|
|
288
|
+
this.request = new Request({
|
|
289
|
+
suffix: SESSION_RECORDING_POSTFIX_URL,
|
|
290
|
+
headers: SESSION_RECORDING_DEFAULT_HEADERS,
|
|
291
|
+
});
|
|
292
|
+
this.registerToWorkerMessages();
|
|
293
|
+
})
|
|
294
|
+
.catch((err) => {
|
|
295
|
+
if (this.debugMode) {
|
|
296
|
+
console.warn('Coralogix Browser SDK - Web worker not created due to: ', err);
|
|
297
|
+
}
|
|
298
|
+
});
|
|
299
|
+
}
|
|
296
300
|
}
|
|
297
301
|
//# sourceMappingURL=sessionRecorder.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessionRecorder.js","sourceRoot":"","sources":["../../../../../libs/browser/src/session/sessionRecorder.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAkC,MAAM,cAAc,CAAC;AAMzE,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,mCAAmC,EACnC,oBAAoB,EACpB,6BAA6B,EAC7B,uCAAuC,EACvC,iCAAiC,EACjC,uCAAuC,EACvC,6BAA6B,GAC9B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"sessionRecorder.js","sourceRoot":"","sources":["../../../../../libs/browser/src/session/sessionRecorder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { __awaiter } from "tslib";
|
|
2
|
+
import { getWorkerString } from '../workers/session-recording-worker';
|
|
3
|
+
export class WorkerManager {
|
|
4
|
+
loadAndCreateWorker(workerUrl) {
|
|
5
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
6
|
+
try {
|
|
7
|
+
const workerCode = workerUrl
|
|
8
|
+
? yield this.loadWorkerScript(workerUrl)
|
|
9
|
+
: `(${getWorkerString.toString()})()`;
|
|
10
|
+
const workerBlob = new Blob([workerCode], {
|
|
11
|
+
type: 'application/javascript',
|
|
12
|
+
});
|
|
13
|
+
const blobUrl = URL.createObjectURL(workerBlob);
|
|
14
|
+
return new Worker(blobUrl);
|
|
15
|
+
}
|
|
16
|
+
catch (error) {
|
|
17
|
+
console.warn(`CoralogixRum: Error creating worker ${error}`);
|
|
18
|
+
return new Worker('');
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
loadWorkerScript(url) {
|
|
23
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
24
|
+
try {
|
|
25
|
+
const response = yield fetch(this.getFullWorkerUrl(url));
|
|
26
|
+
if (!response.ok) {
|
|
27
|
+
console.warn(`CoralogixRum: Error fetching custom web worker`);
|
|
28
|
+
return '';
|
|
29
|
+
}
|
|
30
|
+
return yield response.text();
|
|
31
|
+
}
|
|
32
|
+
catch (error) {
|
|
33
|
+
console.warn(`CoralogixRum: Error fetching custom web worker`);
|
|
34
|
+
return '';
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
getFullWorkerUrl(workerUrl) {
|
|
39
|
+
if (workerUrl.startsWith('http://') || workerUrl.startsWith('https://')) {
|
|
40
|
+
return workerUrl;
|
|
41
|
+
}
|
|
42
|
+
return `${window.location.origin}${workerUrl}`;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=workerManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workerManager.js","sourceRoot":"","sources":["../../../../../libs/browser/src/session/workerManager.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAEtE,MAAM,OAAO,aAAa;IACX,mBAAmB,CAAC,SAAkB;;YACjD,IAAI;gBACF,MAAM,UAAU,GAAG,SAAS;oBAC1B,CAAC,CAAC,MAAM,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC;oBACxC,CAAC,CAAC,IAAI,eAAe,CAAC,QAAQ,EAAE,KAAK,CAAC;gBAExC,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,CAAC,UAAU,CAAC,EAAE;oBACxC,IAAI,EAAE,wBAAwB;iBAC/B,CAAC,CAAC;gBACH,MAAM,OAAO,GAAG,GAAG,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;gBAChD,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC;aAC5B;YAAC,OAAO,KAAK,EAAE;gBACd,OAAO,CAAC,IAAI,CAAC,uCAAuC,KAAK,EAAE,CAAC,CAAC;gBAC7D,OAAO,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC;aACvB;QACH,CAAC;KAAA;IAEa,gBAAgB,CAAC,GAAW;;YACxC,IAAI;gBACF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;gBACzD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;oBAChB,OAAO,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;oBAC/D,OAAO,EAAE,CAAC;iBACX;gBACD,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;aAC9B;YAAC,OAAO,KAAK,EAAE;gBACd,OAAO,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;gBAC/D,OAAO,EAAE,CAAC;aACX;QACH,CAAC;KAAA;IAEO,gBAAgB,CAAC,SAAiB;QACxC,IAAI,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE;YACvE,OAAO,SAAS,CAAC;SAClB;QACD,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,SAAS,EAAE,CAAC;IACjD,CAAC;CACF"}
|
package/src/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const SDK_VERSION = "1.2.
|
|
1
|
+
export declare const SDK_VERSION = "1.2.31";
|
package/src/version.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const SDK_VERSION = '1.2.
|
|
1
|
+
export const SDK_VERSION = '1.2.31';
|
|
2
2
|
//# sourceMappingURL=version.js.map
|
|
@@ -2,16 +2,7 @@
|
|
|
2
2
|
export function getWorkerString() {
|
|
3
3
|
const MAX_CHUNK_SIZE = 1024 * 1024; //1MB
|
|
4
4
|
const ERROR_MESSAGE = 'Coralogix Browser SDK - Error from session recording worker:\n';
|
|
5
|
-
|
|
6
|
-
importScripts('https://cdnjs.cloudflare.com/ajax/libs/pako/2.1.0/pako_deflate.es5.min.js');
|
|
7
|
-
}
|
|
8
|
-
catch (err) {
|
|
9
|
-
console.warn(ERROR_MESSAGE, err);
|
|
10
|
-
self.postMessage({
|
|
11
|
-
event: 'stopRecording',
|
|
12
|
-
});
|
|
13
|
-
return;
|
|
14
|
-
}
|
|
5
|
+
importScriptWithFallback('https://cdn.rum-ingress-coralogix.com/coralogix/browser/latest/pako_deflate.es5.min.js', 'https://cdnjs.cloudflare.com/ajax/libs/pako/2.1.0/pako_deflate.es5.min.js');
|
|
15
6
|
self.onmessage = ({ data }) => {
|
|
16
7
|
const recordsData = omitSquareBrackets(JSON.stringify(data.records));
|
|
17
8
|
const sessionId = data.sessionId;
|
|
@@ -40,6 +31,19 @@ export function getWorkerString() {
|
|
|
40
31
|
function omitSquareBrackets(json) {
|
|
41
32
|
return json.slice(1, -1);
|
|
42
33
|
}
|
|
34
|
+
function importScriptWithFallback(url, fallbackUrl) {
|
|
35
|
+
try {
|
|
36
|
+
importScripts(url);
|
|
37
|
+
}
|
|
38
|
+
catch (err) {
|
|
39
|
+
try {
|
|
40
|
+
importScripts(fallbackUrl);
|
|
41
|
+
}
|
|
42
|
+
catch (fallbackErr) {
|
|
43
|
+
self.postMessage({ event: 'stopRecording' });
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
43
47
|
function createBlobAndSend(sessionId, sessionCreationDate, gzipData, chunkIndex, totalChunks, event = 'sendRecordData') {
|
|
44
48
|
const blob = new Blob([gzipData], {
|
|
45
49
|
type: 'application/octet-stream',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-recording-worker.js","sourceRoot":"","sources":["../../../../../libs/browser/src/workers/session-recording-worker.ts"],"names":[],"mappings":"AAAA,cAAc;AACd,MAAM,UAAU,eAAe;IAC7B,MAAM,cAAc,GAAW,IAAI,GAAG,IAAI,CAAC,CAAC,KAAK;IAEjD,MAAM,aAAa,GACjB,gEAAgE,CAAC;IAEnE,
|
|
1
|
+
{"version":3,"file":"session-recording-worker.js","sourceRoot":"","sources":["../../../../../libs/browser/src/workers/session-recording-worker.ts"],"names":[],"mappings":"AAAA,cAAc;AACd,MAAM,UAAU,eAAe;IAC7B,MAAM,cAAc,GAAW,IAAI,GAAG,IAAI,CAAC,CAAC,KAAK;IAEjD,MAAM,aAAa,GACjB,gEAAgE,CAAC;IAEnE,wBAAwB,CACtB,wFAAwF,EACxF,2EAA2E,CAC5E,CAAC;IAEF,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE,IAAI,EAAE,EAAQ,EAAE;QAClC,MAAM,WAAW,GAAW,kBAAkB,CAC5C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAC7B,CAAC;QAEF,MAAM,SAAS,GAAW,IAAI,CAAC,SAAS,CAAC;QACzC,MAAM,mBAAmB,GAAW,IAAI,CAAC,mBAAmB,CAAC;QAE7D,MAAM,QAAQ,GAAe,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACzD,MAAM,QAAQ,GAAW,QAAQ,CAAC,UAAU,CAAC;QAE7C,IAAI,QAAQ,IAAI,cAAc,EAAE;YAC9B,MAAM,WAAW,GAAW,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,cAAc,CAAC,CAAC;YAEjE,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE;gBAC5C,MAAM,KAAK,GAAW,CAAC,GAAG,cAAc,CAAC;gBACzC,MAAM,GAAG,GAAW,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,cAAc,CAAC;gBAE7C,MAAM,KAAK,GAAe,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;gBACrD,iBAAiB,CACf,SAAS,EACT,mBAAmB,EACnB,KAAK,EACL,CAAC,EACD,WAAW,GAAG,CAAC,EACf,iBAAiB,CAClB,CAAC;aACH;SACF;aAAM;YACL,iBAAiB,CAAC,SAAS,EAAE,mBAAmB,EAAE,QAAQ,CAAC,CAAC;SAC7D;IACH,CAAC,CAAC;IAEF,IAAI,CAAC,OAAO,GAAG,CAAC,GAAmB,EAAQ,EAAE;QAC3C,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;QAEjC,IAAI,CAAC,WAAW,CAAC;YACf,KAAK,EAAE,eAAe;SACvB,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,SAAS,kBAAkB,CAAC,IAAY;QACtC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;IAED,SAAS,wBAAwB,CAAC,GAAW,EAAE,WAAmB;QAChE,IAAI;YACF,aAAa,CAAC,GAAG,CAAC,CAAC;SACpB;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI;gBACF,aAAa,CAAC,WAAW,CAAC,CAAC;aAC5B;YAAC,OAAO,WAAW,EAAE;gBACpB,IAAI,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,CAAC;aAC9C;SACF;IACH,CAAC;IAED,SAAS,iBAAiB,CACxB,SAAiB,EACjB,mBAA2B,EAC3B,QAAoB,EACpB,UAAmB,EACnB,WAAoB,EACpB,QAA8C,gBAAgB;QAE9D,MAAM,IAAI,GAAS,IAAI,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE;YACtC,IAAI,EAAE,0BAA0B;SACjC,CAAC,CAAC;QAEH,IAAI,CAAC,WAAW,CAAC;YACf,SAAS;YACT,mBAAmB;YACnB,QAAQ,EAAE,IAAI;YACd,UAAU;YACV,WAAW;YACX,KAAK;SACN,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}
|