@dynatrace/rum-javascript-sdk 1.335.1 → 1.337.1

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.
Files changed (34) hide show
  1. package/dist/api/index.d.ts +16 -0
  2. package/dist/api/index.js +25 -1
  3. package/dist/api/interactions.d.ts +3 -0
  4. package/dist/api/interactions.js +4 -1
  5. package/dist/api/promises/index.d.ts +23 -0
  6. package/dist/api/promises/index.js +36 -7
  7. package/dist/api/promises/interactions.d.ts +3 -0
  8. package/dist/api/promises/interactions.js +4 -1
  9. package/dist/api/user-actions.d.ts +5 -5
  10. package/dist/api/user-actions.js +6 -6
  11. package/dist/types/api/dynatrace-api-types.d.ts +39 -27
  12. package/dist/types/api/dynatrace-api-types.js +1 -1
  13. package/dist/types/index-typedoc.d.ts +1 -0
  14. package/dist/types/index-typedoc.js +2 -1
  15. package/dist/types/rum-events/index.d.ts +1 -0
  16. package/dist/types/rum-events/index.js +2 -1
  17. package/dist/types/rum-events/json-event.d.ts +0 -6
  18. package/dist/types/rum-events/json-event.js +1 -1
  19. package/dist/types/rum-events/open-fields.d.ts +74 -0
  20. package/dist/types/rum-events/open-fields.js +84 -0
  21. package/dist/types/rum-events/rum-internal-selfmonitoring-event.d.ts +17 -1
  22. package/dist/types/rum-events/rum-internal-selfmonitoring-event.js +17 -1
  23. package/dist/types/rum-events/rum-user-interaction-event.d.ts +32 -2
  24. package/dist/types/rum-events/rum-user-interaction-event.js +26 -2
  25. package/dist/types/rum-events/shared-namespaces-and-fields/general-rum-event-fields.d.ts +3 -2
  26. package/dist/types/rum-events/shared-namespaces-and-fields/general-rum-event-fields.js +1 -1
  27. package/dist/types/user-actions/user-action-start-options.d.ts +13 -0
  28. package/dist/types/user-actions/user-action-start-options.js +1 -1
  29. package/dist/types/user-actions/user-action-tracker.d.ts +35 -3
  30. package/dist/types/user-actions/user-action-tracker.js +1 -1
  31. package/docs/1-overview.md +54 -0
  32. package/docs/4-useractions.md +93 -75
  33. package/docs/5-interactions.md +26 -1
  34. package/package.json +7 -7
@@ -35,8 +35,12 @@ export interface HealthCheckConfig {
35
35
  export type SendUserInteractionFields = {
36
36
  /**
37
37
  * The key combination for the interaction. Must contain at least one key.
38
- * Use {@link UserInteractionSpecialKey} enum values for modifier and special keys (e.g. `ctrl`, `enter`).
39
- * Regular (non-special) keys are plain strings (e.g. `"S"`, `"A"`, `"1"`).
38
+ * Values can be {@link UserInteractionSpecialKey} members or raw
39
+ * {@link https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key | KeyboardEvent.key}
40
+ * strings — raw values are normalized internally.
41
+ * The enum is optional but improves readability when constructing key arrays manually.
42
+ *
43
+ * Import `UserInteractionSpecialKey` from `@dynatrace/rum-javascript-sdk/types/rum-events`.
40
44
  */
41
45
  keys: RUMKeyPressActionEvent["keys"];
42
46
  /**
@@ -55,8 +59,10 @@ export interface Interactions {
55
59
  * Sends a user interaction event for reporting custom keyboard shortcuts or key combinations
56
60
  * that are not automatically detected. Only available if the User Interaction module is enabled.
57
61
  *
58
- * Use {@link UserInteractionSpecialKey} enum values for modifier and special keys
59
- * (ctrl, cmd, shift, alt, esc, enter, tab, space). Regular keys are plain strings (e.g. `"S"`, `"A"`).
62
+ * Keys can be specified using {@link UserInteractionSpecialKey} members or raw
63
+ * {@link https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key | KeyboardEvent.key}
64
+ * strings — raw values are normalized internally (e.g. `" "` → `"space"`, `"Control"` → `"ctrl"`).
65
+ * The enum is optional but improves readability when constructing key arrays manually.
60
66
  *
61
67
  * @example
62
68
  * ```typescript
@@ -138,9 +144,7 @@ export declare namespace dynatrace {
138
144
  * modified with additional properties, thus also empty objects are valid. Only properties
139
145
  * prefixed with `event_properties.`, the `duration` property and the `start_time` property are
140
146
  * allowed. String properties are limited to 5000 characters, exceeding characters are cut off.
141
- * All event property keys must contain only alphabetic characters, numbers,
142
- * underscores or dots. Each dot must be followed by an alphabetic character. Each underscore
143
- * must be followed by an alphabetic character or number.
147
+ * All event property key names must match the naming rules defined by {@link VALID_KEY_REGEX}.
144
148
  * @param eventContext An optional context (see {@link dynatrace.addEventModifier}) that can be used to manipulate the
145
149
  * result event within the modification callback.
146
150
  */
@@ -272,6 +276,18 @@ export declare namespace dynatrace {
272
276
  * ```
273
277
  */
274
278
  function identifyUser(value: string): void;
279
+ /**
280
+ * Grants consent for data collection.
281
+ *
282
+ * @internal
283
+ */
284
+ function userOptIn(): void;
285
+ /**
286
+ * Revokes consent for data collection.
287
+ *
288
+ * @internal
289
+ */
290
+ function userOptOut(): void;
275
291
  /**
276
292
  * Sends a sessionPropertyEvent.
277
293
  *
@@ -289,10 +305,8 @@ export declare namespace dynatrace {
289
305
  * using JSON.stringify. The resulting event will be populated with `fields` parameter, and
290
306
  * is modified with additional properties, thus also empty objects are valid. Only properties
291
307
  * prefixed with `session_properties.`, the `duration` property and the `start_time` property are
292
- * allowed. String properties are limited to 5000 characters, exceeding characters are cut off. All
293
- * session property keys must contain only alphabetic characters, numbers, underscores or
294
- * dots. Each dot must be followed by an alphabetic character. Each underscore must be followed by an
295
- * alphabetic character or number.
308
+ * allowed. String properties are limited to 5000 characters, exceeding characters are cut off.
309
+ * All session property key names must match the naming rules defined by {@link VALID_KEY_REGEX}.
296
310
  */
297
311
  function sendSessionPropertyEvent(fields: ApiCreatedSessionPropertiesEvent): void;
298
312
  /**
@@ -305,9 +319,7 @@ export declare namespace dynatrace {
305
319
  * modified with additional properties, thus also empty objects are valid. Only properties
306
320
  * prefixed with `event_properties.`, the `duration` property and the `start_time` property are
307
321
  * allowed. String properties are limited to 5000 characters, exceeding characters are cut off.
308
- * All event property keys must contain only alphabetic characters, numbers,
309
- * underscores or dots. Each dot must be followed by an alphabetic character. Each underscore
310
- * must be followed by an alphabetic character or number.
322
+ * All event property key names must match the naming rules defined by {@link VALID_KEY_REGEX}.
311
323
  */
312
324
  let sendExceptionEvent: ((error: Error, fields?: ApiCreatedEventPropertiesEvent) => void) | undefined;
313
325
  /**
@@ -333,20 +345,20 @@ export interface UserActions {
333
345
  *
334
346
  * @example
335
347
  * ```typescript
336
- * const userAction = dynatrace.userActions.create({ autoClose: false });
348
+ * const userAction = dynatrace.userActions.create({ completeAutomatically: false });
337
349
  * const unsubscribe = userAction.subscribe(currentUserAction => {
338
350
  * console.log(`User action would have been completed due to ${currentUserAction.completeReason}`, event);
339
351
  * });
340
352
  * // execute user actions
341
- * userAction.finish();
353
+ * userAction.complete();
342
354
  * unsubscribe();
343
355
  * ```
344
356
  *
345
357
  * @experimental
346
- * @param options An optional options object to configure the user action.
347
- * @param options.autoClose If true, automatically stops the user action using RUM JavaScript user action rules.
348
- * If false, the user action remains active until the next call to `create(...)` or to `userAction.finish()`.
349
- * @returns An `UserActionTracker` object that can be started and finished, or `undefined` if the user action module is not enabled.
358
+ * @param options An optional options object to configure the user action.
359
+ * @param options.completeAutomatically If true, automatically completes the user action using RUM JavaScript user action rules.
360
+ * If false, the user action remains active until the next call to `create(...)` or to `userAction.complete()`.
361
+ * @returns An `UserActionTracker` object that can be started and completed, or `undefined` if the user action module is not enabled.
350
362
  */
351
363
  create(this: void, options?: UserActionStartOptions): UserActionTracker;
352
364
  /**
@@ -356,9 +368,9 @@ export interface UserActions {
356
368
  * ```typescript
357
369
  * const unsubscribe = dynatrace.userActions?.subscribe(userAction => {
358
370
  * // Disable automatic userAction completion
359
- * userAction.autoClose = false;
360
- * // Execute some requests or mutations, then finish the user action
361
- * userAction.finish();
371
+ * userAction.completeAutomatically = false;
372
+ * // Execute some requests or mutations, then complete the user action
373
+ * userAction.complete();
362
374
  * });
363
375
  * // Some time later if you don't want to listen to userActions anymore
364
376
  * unsubscribe();
@@ -377,10 +389,10 @@ export interface UserActions {
377
389
  * dynatrace.userActions?.setAutomaticDetection(false);
378
390
  *
379
391
  * async function handleClick(router) {
380
- * const userAction = dynatrace.userActions?.create({ autoClose: false });
392
+ * const userAction = dynatrace.userActions?.create({ completeAutomatically: false });
381
393
  * // this would normally create an user action that would finish this manual user action
382
394
  * await router.redirect("home");
383
- * userAction.finish();
395
+ * userAction.complete();
384
396
  * }
385
397
  * ```
386
398
  *
@@ -397,10 +409,10 @@ export interface UserActions {
397
409
  * async function postMessageChannel(message, channel) {
398
410
  * const currentUserAction = dynatrace.userActions?.current;
399
411
  * if (currentUserAction) {
400
- * currentUserAction.autoClose = false;
412
+ * currentUserAction.completeAutomatically = false;
401
413
  * }
402
414
  * const response = await channel.send(message);
403
- * currentUserAction?.finish();
415
+ * currentUserAction?.complete();
404
416
  * return response;
405
417
  * }
406
418
  * ```
@@ -4,4 +4,4 @@
4
4
  export var dynatrace;
5
5
  (function (dynatrace) {
6
6
  })(dynatrace || (dynatrace = {}));
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYXRyYWNlLWFwaS10eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NvdXJjZS90eXBlcy9hcGkvZHluYXRyYWNlLWFwaS10eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF5SEE7O0dBRUc7QUFDSCxNQUFNLEtBQVcsU0FBUyxDQStOekI7QUEvTkQsV0FBaUIsU0FBUztBQStOMUIsQ0FBQyxFQS9OZ0IsU0FBUyxLQUFULFNBQVMsUUErTnpCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICAgIEFwaUNyZWF0ZWRFdmVudFByb3BlcnRpZXNFdmVudCxcbiAgICBBcGlDcmVhdGVkU2Vzc2lvblByb3BlcnRpZXNFdmVudCxcbiAgICBKU09ORXZlbnQsXG4gICAgSlNPTk9iamVjdFxufSBmcm9tIFwiLi4vcnVtLWV2ZW50cy9qc29uLWV2ZW50LmpzXCI7XG5pbXBvcnQgdHlwZSB7XG4gICAgUnVtRXZlbnRLZXlzLFxuICAgIFJVTUtleVByZXNzQWN0aW9uRXZlbnRcbn0gZnJvbSBcIi4uL3J1bS1ldmVudHMvaW5kZXguanNcIjtcbmltcG9ydCB0eXBlIHsgRXZlbnRDb250ZXh0IH0gZnJvbSBcIi4uL3J1bS1ldmVudHMvZXZlbnQtY29udGV4dC9ldmVudC1jb250ZXh0LmpzXCI7XG5pbXBvcnQgdHlwZSB7IFVzZXJBY3Rpb25TdGFydE9wdGlvbnMgfSBmcm9tIFwiLi4vdXNlci1hY3Rpb25zL3VzZXItYWN0aW9uLXN0YXJ0LW9wdGlvbnMuanNcIjtcbmltcG9ydCB0eXBlIHsgVXNlckFjdGlvblRyYWNrZXIgfSBmcm9tIFwiLi4vdXNlci1hY3Rpb25zL3VzZXItYWN0aW9uLXRyYWNrZXIuanNcIjtcblxuLyoqXG4gKiBBIG1ldGhvZCB3aGljaCBkZWFjdGl2YXRlcyBiZWhhdmlvciB3aGVuIGludm9rZWQuXG4gKiBTZWUgdGhlIHJldHVybmluZyBtZXRob2QncyBBUEkgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBAaW5saW5lXG4gKiBAaWdub3JlXG4gKi9cbmV4cG9ydCB0eXBlIFVuc3Vic2NyaWJlciA9ICgpID0+IHZvaWQ7XG5cbi8qKlxuICogVGhlIGNvbmZpZ3VyYXRpb24gb2JqZWN0IHByb3ZpZGVkIHRvIHRoZSBydW5IZWFsdGhDaGVjayBBUEkuXG4gKlxuICogQHNlZSBydW5IZWFsdGhDaGVja1xuICogQGlubGluZVxuICogQGlnbm9yZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEhlYWx0aENoZWNrQ29uZmlnIHtcbiAgICBsb2dWZXJib3NlPzogYm9vbGVhbjtcbiAgICByZXR1cm5EaWFnbm9zdGljRGF0YT86IGJvb2xlYW47XG4gICAgcnVuRGV0YWlsZWRPdmVycmlkZUNoZWNrPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBUaGUgZmllbGRzIGFsbG93ZWQgZm9yIHtAbGluayBJbnRlcmFjdGlvbnMuc2VuZEtleVByZXNzRXZlbnR9LlxuICpcbiAqIEluY2x1ZGVzIHRoZSByZXF1aXJlZCBga2V5c2AgYXJyYXkgYW5kIG9wdGlvbmFsIGB1aV9lbGVtZW50LmN1c3RvbV9uYW1lYC5cbiAqIEFkZGl0aW9uYWwgdXNlci1kZWZpbmVkIGZpZWxkcyBhcmUgbGltaXRlZCB0byBgZXZlbnRfcHJvcGVydGllcy4qYCBlbnRyaWVzLlxuICogVGhlIGZpZWxkcyBvYmplY3QgbXVzdCBiZSBhIEpTT04tc2VyaWFsaXphYmxlIHBsYWluIG9iamVjdC5cbiAqXG4gKiBAY2F0ZWdvcnkgQVBJXG4gKi9cbmV4cG9ydCB0eXBlIFNlbmRVc2VySW50ZXJhY3Rpb25GaWVsZHMgPSB7XG4gICAgLyoqXG4gICAgICogVGhlIGtleSBjb21iaW5hdGlvbiBmb3IgdGhlIGludGVyYWN0aW9uLiBNdXN0IGNvbnRhaW4gYXQgbGVhc3Qgb25lIGtleS5cbiAgICAgKiBVc2Uge0BsaW5rIFVzZXJJbnRlcmFjdGlvblNwZWNpYWxLZXl9IGVudW0gdmFsdWVzIGZvciBtb2RpZmllciBhbmQgc3BlY2lhbCBrZXlzIChlLmcuIGBjdHJsYCwgYGVudGVyYCkuXG4gICAgICogUmVndWxhciAobm9uLXNwZWNpYWwpIGtleXMgYXJlIHBsYWluIHN0cmluZ3MgKGUuZy4gYFwiU1wiYCwgYFwiQVwiYCwgYFwiMVwiYCkuXG4gICAgICovXG4gICAga2V5czogUlVNS2V5UHJlc3NBY3Rpb25FdmVudFtcImtleXNcIl07XG4gICAgLyoqXG4gICAgICogQW4gb3B0aW9uYWwgY3VzdG9tIG5hbWUgZm9yIHRoZSBVSSBlbGVtZW50LCBpbmNsdWRlZCBhcyBgdWlfZWxlbWVudC5jdXN0b21fbmFtZWAgaW4gdGhlIGVtaXR0ZWQgZXZlbnQuXG4gICAgICogVGhpcyBmaWVsZCBpcyBpbmRlcGVuZGVudCBvZiB0aGUgYXV0by1kZXRlY3RlZCBlbGVtZW50IG5hbWUgKGB1aV9lbGVtZW50LmRldGVjdGVkX25hbWVgKS5cbiAgICAgKiBJdCBpcyBpbmNsdWRlZCBpbiB0aGUgZW1pdHRlZCBldmVudCByZWdhcmRsZXNzIG9mIHdoZXRoZXIgYGVsZW1lbnRPckV2ZW50YCBpcyBwcm92aWRlZC5cbiAgICAgKi9cbiAgICBbUnVtRXZlbnRLZXlzLlVJX0VMRU1FTlQkQ1VTVE9NX05BTUVdPzogc3RyaW5nO1xufSAmIEFwaUNyZWF0ZWRFdmVudFByb3BlcnRpZXNFdmVudDtcblxuLyoqXG4gKiBAZXhwZXJpbWVudGFsXG4gKiBAY2F0ZWdvcnkgQVBJXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW50ZXJhY3Rpb25zIHtcbiAgICAvKipcbiAgICAgKiBTZW5kcyBhIHVzZXIgaW50ZXJhY3Rpb24gZXZlbnQgZm9yIHJlcG9ydGluZyBjdXN0b20ga2V5Ym9hcmQgc2hvcnRjdXRzIG9yIGtleSBjb21iaW5hdGlvbnNcbiAgICAgKiB0aGF0IGFyZSBub3QgYXV0b21hdGljYWxseSBkZXRlY3RlZC4gT25seSBhdmFpbGFibGUgaWYgdGhlIFVzZXIgSW50ZXJhY3Rpb24gbW9kdWxlIGlzIGVuYWJsZWQuXG4gICAgICpcbiAgICAgKiBVc2Uge0BsaW5rIFVzZXJJbnRlcmFjdGlvblNwZWNpYWxLZXl9IGVudW0gdmFsdWVzIGZvciBtb2RpZmllciBhbmQgc3BlY2lhbCBrZXlzXG4gICAgICogKGN0cmwsIGNtZCwgc2hpZnQsIGFsdCwgZXNjLCBlbnRlciwgdGFiLCBzcGFjZSkuIFJlZ3VsYXIga2V5cyBhcmUgcGxhaW4gc3RyaW5ncyAoZS5nLiBgXCJTXCJgLCBgXCJBXCJgKS5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIGltcG9ydCB7IFVzZXJJbnRlcmFjdGlvblNwZWNpYWxLZXkgfSBmcm9tIFwiQGR5bmF0cmFjZS9ydW0tamF2YXNjcmlwdC1zZGsvdHlwZXMvcnVtLWV2ZW50c1wiO1xuICAgICAqXG4gICAgICogLy8gQmFzaWMga2V5IGNvbWJpbmF0aW9uXG4gICAgICogZHluYXRyYWNlLmludGVyYWN0aW9ucz8uc2VuZEtleVByZXNzRXZlbnQoe1xuICAgICAqICAgICBrZXlzOiBbVXNlckludGVyYWN0aW9uU3BlY2lhbEtleS5DVFJMLCBcIlNcIl1cbiAgICAgKiB9KTtcbiAgICAgKlxuICAgICAqIC8vIFdpdGggYW4gRWxlbWVudCB0byBjYXB0dXJlIFVJIGVsZW1lbnQgZmllbGRzICh0YWdfbmFtZSwgaWQsIGRldGVjdGVkX25hbWUsIGNvbXBvbmVudHMsIGV0Yy4pXG4gICAgICogY29uc3QgYnV0dG9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJzYXZlQnRuXCIpO1xuICAgICAqIGR5bmF0cmFjZS5pbnRlcmFjdGlvbnM/LnNlbmRLZXlQcmVzc0V2ZW50KHtcbiAgICAgKiAgICAga2V5czogW1VzZXJJbnRlcmFjdGlvblNwZWNpYWxLZXkuRU5URVJdXG4gICAgICogfSwgYnV0dG9uKTtcbiAgICAgKlxuICAgICAqIC8vIFdpdGggYSBuYXRpdmUgS2V5Ym9hcmRFdmVudCB0byByZXNvbHZlIHRoZSB0YXJnZXQgZWxlbWVudFxuICAgICAqIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsIChldmVudCkgPT4ge1xuICAgICAqICAgICBkeW5hdHJhY2UuaW50ZXJhY3Rpb25zPy5zZW5kS2V5UHJlc3NFdmVudCh7XG4gICAgICogICAgICAgICBrZXlzOiBbVXNlckludGVyYWN0aW9uU3BlY2lhbEtleS5DVFJMLCBcIlNcIl1cbiAgICAgKiAgICAgfSwgZXZlbnQpO1xuICAgICAqIH0pO1xuICAgICAqXG4gICAgICogLy8gV2l0aCBhIGN1c3RvbV9uYW1lIGZvciB0aGUgVUkgZWxlbWVudFxuICAgICAqIGR5bmF0cmFjZS5pbnRlcmFjdGlvbnM/LnNlbmRLZXlQcmVzc0V2ZW50KHtcbiAgICAgKiAgICAga2V5czogW1VzZXJJbnRlcmFjdGlvblNwZWNpYWxLZXkuRVNDXSxcbiAgICAgKiAgICAgXCJ1aV9lbGVtZW50LmN1c3RvbV9uYW1lXCI6IFwiQ2xvc2VNb2RhbFwiXG4gICAgICogfSk7XG4gICAgICpcbiAgICAgKiAvLyBXaXRoIGV2ZW50IHByb3BlcnRpZXMgZm9yIGVucmljaG1lbnRcbiAgICAgKiBkeW5hdHJhY2UuaW50ZXJhY3Rpb25zPy5zZW5kS2V5UHJlc3NFdmVudCh7XG4gICAgICogICAgIGtleXM6IFtVc2VySW50ZXJhY3Rpb25TcGVjaWFsS2V5LkNUUkwsIFwiU1wiXSxcbiAgICAgKiAgICAgXCJldmVudF9wcm9wZXJ0aWVzLmNvbnRleHRcIjogXCJlZGl0b3JcIlxuICAgICAqIH0pO1xuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogQHBhcmFtIGZpZWxkcyAgICAgICAgIFRoZSBpbnRlcmFjdGlvbiBmaWVsZHMuIE11c3QgY29udGFpbiBhIGBrZXlzYCBhcnJheSB3aXRoIGF0IGxlYXN0IG9uZSBrZXkuXG4gICAgICogICAgICAgICAgICAgICAgICAgICAgIFRoZSBmaWVsZHMgb2JqZWN0IG11c3QgYmUgSlNPTi1zZXJpYWxpemFibGUuIE9wdGlvbmFsbHkgaW5jbHVkZSBgdWlfZWxlbWVudC5jdXN0b21fbmFtZWBcbiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgdG8gcHJvdmlkZSBhIGN1c3RvbSBuYW1lIGZvciB0aGUgVUkgZWxlbWVudCBhbmQgYGV2ZW50X3Byb3BlcnRpZXMuKmAgZW50cmllcy5cbiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgU2VlIHtAbGluayBTZW5kVXNlckludGVyYWN0aW9uRmllbGRzfSBmb3IgZGV0YWlscy5cbiAgICAgKiBAcGFyYW0gZWxlbWVudE9yRXZlbnQgQW4gb3B0aW9uYWwge0BsaW5rIEVsZW1lbnR9IG9yIHtAbGluayBLZXlib2FyZEV2ZW50fSB1c2VkIHRvIGF1dG8tZ2VuZXJhdGUgVUkgZWxlbWVudCBmaWVsZHNcbiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgc3VjaCBhcyBgdGFnX25hbWVgLCBgaWRgLCBgZGV0ZWN0ZWRfbmFtZWAsIGBjb21wb25lbnRzYCwgYGZlYXR1cmVzYCwgYW5kIGBwcm9wZXJ0aWVzYC5cbiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgV2hlbiBhIHtAbGluayBLZXlib2FyZEV2ZW50fSBpcyBwcm92aWRlZCwgdGhlIHRhcmdldCBlbGVtZW50IGlzIHJlc29sdmVkIGZyb20gdGhlIGV2ZW50LlxuICAgICAqICAgICAgICAgICAgICAgICAgICAgICBJZiBvbWl0dGVkLCBubyBVSSBlbGVtZW50IGZpZWxkcyBhcmUgaW5jbHVkZWQgaW4gdGhlIGVtaXR0ZWQgZXZlbnQuXG4gICAgICogQHNlZSBVc2VySW50ZXJhY3Rpb25TcGVjaWFsS2V5XG4gICAgICogQHNlZSBTZW5kVXNlckludGVyYWN0aW9uRmllbGRzXG4gICAgICovXG4gICAgc2VuZEtleVByZXNzRXZlbnQodGhpczogdm9pZCwgZmllbGRzOiBTZW5kVXNlckludGVyYWN0aW9uRmllbGRzLCBlbGVtZW50T3JFdmVudD86IEVsZW1lbnQgfCBFdmVudCk6IHZvaWQ7XG59XG5cbi8qKlxuICogQGNhdGVnb3J5IEFQSVxuICovXG5leHBvcnQgbmFtZXNwYWNlIGR5bmF0cmFjZSB7XG4gICAgLyoqXG4gICAgICogU2VuZHMgYW4gZXZlbnQgd2l0aCB0aGUgcHJvdmlkZWQgZmllbGRzLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogZHluYXRyYWNlLnNlbmRFdmVudCh7XG4gICAgICogICAgIFwiZXZlbnRfcHJvcGVydGllcy5wcm9wXCI6IFwidmFsdWVcIixcbiAgICAgKiAgICAgXCJkdXJhdGlvblwiOiAxMjMsXG4gICAgICogICAgIFwiZXZlbnRfcHJvcGVydGllcy51cmxcIjogXCJ3d3cuZHluYXRyYWNlLmNvbVwiLFxuICAgICAqICAgICBcImV2ZW50X3Byb3BlcnRpZXMuaWRcIjogXCIxMjM0NTY3ODlcIixcbiAgICAgKiB9KTtcbiAgICAgKlxuICAgICAqIC8vIFVzaW5nIGNvbnRleHQ6XG4gICAgICogZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcImxvYWRcIiwgKGV2ZW50KSA9PiB7XG4gICAgICogICAgIGR5bmF0cmFjZS5zZW5kRXZlbnQoe1xuICAgICAqICAgICAgICAgIFwiZXZlbnRfcHJvcGVydGllcy5wcm9wXCI6IFwidmFsdWVcIixcbiAgICAgKiAgICAgICAgICBcImR1cmF0aW9uXCI6IDEyMyxcbiAgICAgKiAgICAgICAgICBcImV2ZW50X3Byb3BlcnRpZXMudXJsXCI6IFwid3d3LmR5bmF0cmFjZS5jb21cIixcbiAgICAgKiAgICAgICAgICBcImV2ZW50X3Byb3BlcnRpZXMuaWRcIjogXCIxMjM0NTY3ODlcIixcbiAgICAgKiAgICAgfSwgZXZlbnQpOyAvLyBhZGQgdGhlIGV2ZW50IGNvbnRleHQgaGVyZVxuICAgICAqIH0pO1xuICAgICAqYGBgXG4gICAgICogQHBhcmFtIGZpZWxkcyAgICAgICBNdXN0IGJlIGEgdmFsaWQgSlNPTiBvYmplY3QgYW5kIGNhbm5vdCBjb250YWluIGZ1bmN0aW9ucywgdW5kZWZpbmVkLCBJbmZpbml0eSBhbmQgTmFOIGFzXG4gICAgICogICAgICAgICAgICAgICAgICAgICB2YWx1ZXMsIG90aGVyd2lzZSB0aGV5IHdpbGwgYmUgcmVwbGFjZWQgd2l0aCBudWxsLiBUaGUgYGZpZWxkc2AgbmVlZCB0byBiZSBzZXJpYWxpemFibGVcbiAgICAgKiAgICAgICAgICAgICAgICAgICAgIHVzaW5nIEpTT04uc3RyaW5naWZ5LiBUaGUgcmVzdWx0aW5nIGV2ZW50IHdpbGwgY29udGFpbiB0aGUgcHJvdmlkZWQgYGZpZWxkc2AsIGFuZCBpc1xuICAgICAqICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZWQgd2l0aCBhZGRpdGlvbmFsIHByb3BlcnRpZXMsIHRodXMgYWxzbyBlbXB0eSBvYmplY3RzIGFyZSB2YWxpZC4gT25seSBwcm9wZXJ0aWVzXG4gICAgICogICAgICAgICAgICAgICAgICAgICBwcmVmaXhlZCB3aXRoIGBldmVudF9wcm9wZXJ0aWVzLmAsIHRoZSBgZHVyYXRpb25gIHByb3BlcnR5IGFuZCB0aGUgYHN0YXJ0X3RpbWVgIHByb3BlcnR5IGFyZVxuICAgICAqICAgICAgICAgICAgICAgICAgICAgYWxsb3dlZC4gU3RyaW5nIHByb3BlcnRpZXMgYXJlIGxpbWl0ZWQgdG8gNTAwMCBjaGFyYWN0ZXJzLCBleGNlZWRpbmcgY2hhcmFjdGVycyBhcmUgY3V0IG9mZi5cbiAgICAgKiAgICAgICAgICAgICAgICAgICAgIEFsbCBldmVudCBwcm9wZXJ0eSBrZXlzIG11c3QgY29udGFpbiBvbmx5IGFscGhhYmV0aWMgY2hhcmFjdGVycywgbnVtYmVycyxcbiAgICAgKiAgICAgICAgICAgICAgICAgICAgIHVuZGVyc2NvcmVzIG9yIGRvdHMuIEVhY2ggZG90IG11c3QgYmUgZm9sbG93ZWQgYnkgYW4gYWxwaGFiZXRpYyBjaGFyYWN0ZXIuIEVhY2ggdW5kZXJzY29yZVxuICAgICAqICAgICAgICAgICAgICAgICAgICAgbXVzdCBiZSBmb2xsb3dlZCBieSBhbiBhbHBoYWJldGljIGNoYXJhY3RlciBvciBudW1iZXIuXG4gICAgICogQHBhcmFtIGV2ZW50Q29udGV4dCBBbiBvcHRpb25hbCBjb250ZXh0IChzZWUge0BsaW5rIGR5bmF0cmFjZS5hZGRFdmVudE1vZGlmaWVyfSkgdGhhdCBjYW4gYmUgdXNlZCB0byBtYW5pcHVsYXRlIHRoZVxuICAgICAqICAgICAgICAgICAgICAgICAgICAgcmVzdWx0IGV2ZW50IHdpdGhpbiB0aGUgbW9kaWZpY2F0aW9uIGNhbGxiYWNrLlxuICAgICAqL1xuICAgIGV4cG9ydCBkZWNsYXJlIGZ1bmN0aW9uIHNlbmRFdmVudChmaWVsZHM6IEFwaUNyZWF0ZWRFdmVudFByb3BlcnRpZXNFdmVudCwgZXZlbnRDb250ZXh0PzogdW5rbm93bik6IHZvaWQ7XG5cbiAgICAvKipcbiAgICAgKiBTZW5kIGEgQnVzaW5lc3MgRXZlbnQuXG4gICAgICpcbiAgICAgKiBXaXRoIHNlbmRCaXpFdmVudCwgeW91IGNhbiByZXBvcnQgYSBidXNpbmVzcyBldmVudC4gVGhlc2Ugc3RhbmRhbG9uZSBldmVudHMgYXJlIGJlaW5nIHNlbnQgZGV0YWNoZWQgZnJvbSB1c2VyXG4gICAgICogYWN0aW9ucyBvciBzZXNzaW9ucy5cbiAgICAgKlxuICAgICAqIE5vdGU6IEJ1c2luZXNzIGV2ZW50cyBhcmUgY3VycmVudGx5IG9ubHkgc3VwcG9ydGVkIG9uIER5bmF0cmFjZSBTYWFTIGRlcGxveW1lbnRzLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogZHluYXRyYWNlLnNlbmRCaXpFdmVudChcInR5cGVcIiwge1xuICAgICAqICAgICBwcm9wOiBcInZhbHVlXCIsXG4gICAgICogICAgIG5hbWU6IFwiYml6IGV2ZW50IG5hbWVcIixcbiAgICAgKiAgICAgdGltZXN0YW1wOiAxMjMsXG4gICAgICogICAgIHVybDogXCJ3d3cuZHluYXRyYWNlLmNvbVwiLFxuICAgICAqICAgICBwYWdlX2lkOiBcIjEyMzQ1Njc4OVwiLFxuICAgICAqICAgICBcIndpbmRvdy5vcmllbnRhdGlvblwiOiBcImRpYWdvbmFsXCJcbiAgICAgKiB9KTtcbiAgICAgKlxuICAgICAqIC8vIFVzaW5nIGNvbnRleHQ6XG4gICAgICogZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcImxvYWRcIiwgKGV2ZW50KSA9PiB7XG4gICAgICogICAgIGR5bmF0cmFjZS5zZW5kQml6RXZlbnQoXCJ0eXBlXCIsIHtcbiAgICAgKiAgICAgICAgIHByb3A6IFwidmFsdWVcIixcbiAgICAgKiAgICAgICAgIG5hbWU6IFwiYml6IGV2ZW50IG5hbWVcIixcbiAgICAgKiAgICAgICAgIHRpbWVzdGFtcDogMTIzLFxuICAgICAqICAgICAgICAgdXJsOiBcInd3dy5keW5hdHJhY2UuY29tXCIsXG4gICAgICogICAgICAgICBwYWdlX2lkOiBcIjEyMzQ1Njc4OVwiLFxuICAgICAqICAgICAgICAgXCJ3aW5kb3cub3JpZW50YXRpb25cIjogXCJkaWFnb25hbFwiXG4gICAgICogICAgIH0sIGV2ZW50KTsgLy8gYWRkIHRoZSBldmVudCBjb250ZXh0IGhlcmVcbiAgICAgKiB9KTtcbiAgICAgKmBgYFxuICAgICAqXG4gICAgICogQGludGVybmFsXG4gICAgICogQHBhcmFtIHR5cGUgICAgICAgICBNYW5kYXRvcnkgZXZlbnQgdHlwZVxuICAgICAqIEBwYXJhbSBmaWVsZHMgICAgICAgTXVzdCBiZSBhIHZhbGlkIEpTT04gb2JqZWN0IGFuZCBjYW5ub3QgY29udGFpbiBmdW5jdGlvbnMsIHVuZGVmaW5lZCwgSW5maW5pdHkgYW5kIE5hTiBhc1xuICAgICAqICAgICAgICAgICAgICAgICAgICAgdmFsdWVzLCBvdGhlcndpc2UgdGhleSB3aWxsIGJlIHJlcGxhY2VkIHdpdGggbnVsbC4gVGhlIGBmaWVsZHNgIG5lZWQgdG8gYmUgc2VyaWFsaXphYmxlXG4gICAgICogICAgICAgICAgICAgICAgICAgICB1c2luZyBKU09OLnN0cmluZ2lmeS4gVGhlIHJlc3VsdGluZyBldmVudCB3aWxsIGJlIHBvcHVsYXRlZCB3aXRoIGBmaWVsZHNgIHBhcmFtZXRlciwgYW5kXG4gICAgICogICAgICAgICAgICAgICAgICAgICBtb2RpZmllZCB3aXRoIGFkZGl0aW9uYWwgcHJvcGVydGllcywgdGh1cyBhbHNvIGVtcHR5IG9iamVjdHMgYXJlIHZhbGlkLlxuICAgICAqIEBwYXJhbSBldmVudENvbnRleHQgQW4gb3B0aW9uYWwgY29udGV4dCAoc2VlIHtAbGluayBkeW5hdHJhY2UuYWRkRXZlbnRNb2RpZmllcn0pIHRoYXQgY2FuIGJlIHVzZWQgdG8gbWFuaXB1bGF0ZSB0aGVcbiAgICAgKiAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCBldmVudCB3aXRoaW4gdGhlIG1vZGlmaWNhdGlvbiBjYWxsYmFjay4gV2lsbCBiZSBwcm92aWRlZCBhcyBDdXN0b21FdmVudENvbnRleHQgVE9ET1xuICAgICAqL1xuICAgIGV4cG9ydCBkZWNsYXJlIGZ1bmN0aW9uIHNlbmRCaXpFdmVudCh0eXBlOiBzdHJpbmcsIGZpZWxkczogSlNPTk9iamVjdCwgZXZlbnRDb250ZXh0PzogdW5rbm93bik6IHZvaWQ7XG5cbiAgICAvKipcbiAgICAgKiBNb2RpZmllcyBmdXR1cmUgZXZlbnRzIHdpdGggdGhlIHByb3ZpZGVkIG1vZGlmaWVyIGZ1bmN0aW9uLiBSZXR1cm5pbmcgYSBub24tb2JqZWN0IG9yIGBudWxsYCBkaXNjYXJkcyB0aGlzIGV2ZW50XG4gICAgICogYW5kIHByZXZlbnRzIGZ1dHVyZSBtdXRhdG9yIGZ1bmN0aW9ucyB0byBiZSBleGVjdXRlZC5cbiAgICAgKlxuICAgICAqIENlcnRhaW4gcmVzZXJ2ZWQgZmllbGRzIGFuZCBuYW1lc3BhY2VzIGNhbuKAmXQgYmUgbW9kaWZpZWQgaW4gYW55IHdheSAoYWRkZWQsIHJlbW92ZWQgb3Igb3ZlcnJpZGRlbiksIHdoaWxlIG90aGVycyBhcmUgb3BlbiBmb3IgbW9kaWZpY2F0aW9uLlxuICAgICAqIFNlZSB7QGxpbmsgQWxsb3dlZE1vZGlmaWNhdGlvbkZpZWxkc30gZm9yIGRldGFpbHMuXG4gICAgICpcbiAgICAgKiBUaGUgY29udGV4dCBkaWZmZXJzIGJhc2VkIG9uIHRoZSBwcm9jZXNzZWQgZXZlbnQgYW5kIGF2YWlsYWJpbGl0eSBvZiBkYXRhLlxuICAgICAqIEZvciBldmVudHMgc2VudCB3aXRoIHtAbGluayBkeW5hdHJhY2Uuc2VuZEV2ZW50fSwgdGhlIG9wdGlvbmFsbHkgcHJvdmlkZWQgY29udGV4dCB3aWxsIGJlIHByb3ZpZGVkIGFzIGN1c3RvbSBjb250ZXh0LlxuICAgICAqIFRoZSBjb250ZXh0IG9iamVjdCBjb250YWlucyBhIFwidHlwZVwiIGFuZCBvcHRpb25hbGx5IGEgXCJzdWJfdHlwZVwiIHBhcmFtZXRlciwgd2hpY2ggY2FuIGJlIHVzZWQgdG8gZGlzdGluZ3Vpc2ggdGhlbS5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIGR5bmF0cmFjZS5hZGRFdmVudE1vZGlmaWVyKGZ1bmN0aW9uIChldmVudCkge1xuICAgICAqICAgICBpZiAoZXZlbnRbXCJldmVudC50eXBlXCJdICE9PSBcImNsaWNrXCIpIHtcbiAgICAgKiAgICAgICAgIHJldHVybiBldmVudDtcbiAgICAgKiAgICAgfVxuICAgICAqICAgICByZXR1cm4ge1xuICAgICAqICAgICAgICAgLi4uZXZlbnQsXG4gICAgICogICAgICAgICBcImV2ZW50X3Byb3BlcnRpZXMucHJvcFwiOiBcInZhbHVlXCIsXG4gICAgICogICAgICAgICBcInVybC5mdWxsXCI6IFwid3d3LmR5bmF0cmFjZS5jb21cIixcbiAgICAgKiAgICAgICAgIFwidmlldy5kZXRlY3RlZF9uYW1lXCI6IFwiMTIzNDU2Nzg5XCIsXG4gICAgICogICAgIH1cbiAgICAgKiB9KTtcbiAgICAgKlxuICAgICAqIC8vIFVzaW5nIGNvbnRleHQ6XG4gICAgICogZHluYXRyYWNlLmFkZEV2ZW50TW9kaWZpZXIoZnVuY3Rpb24gKGV2ZW50LCBjb250ZXh0KSB7XG4gICAgICogICAgIGlmIChldmVudFtcImV2ZW50LnR5cGVcIl0gIT09IFwiY2xpY2tcIikge1xuICAgICAqICAgICAgICAgcmV0dXJuIGV2ZW50O1xuICAgICAqICAgICB9XG4gICAgICogICAgIGlmIChjb250ZXh0Py5hZGRpdGlvbmFsRGF0YSkge1xuICAgICAqICAgICAgICAgcmV0dXJuIHtcbiAgICAgKiAgICAgICAgICAgLi4uZXZlbnQsXG4gICAgICogICAgICAgICAgIFwiZXZlbnRfcHJvcGVydGllcy5leHRyYV9kYXRhXCI6IGByZWNlaXZlZCBleHRyYSBkYXRhOiAke2NvbnRleHQuYWRkaXRpb25hbERhdGF9YFxuICAgICAqICAgICAgICAgfTtcbiAgICAgKiAgICAgfVxuICAgICAqICAgICByZXR1cm4gZXZlbnQ7XG4gICAgICogfSk7XG4gICAgICpcbiAgICAgKiAvLyBEaXNjYXJkaW5nIGFuIGV2ZW50OlxuICAgICAqIGR5bmF0cmFjZS5hZGRFdmVudE1vZGlmaWVyKGZ1bmN0aW9uIChldmVudCkge1xuICAgICAqICAgaWYgKGV2ZW50W1wiZXZlbnQudHlwZVwiXSA9PT0gXCJjbGlja1wiKSB7XG4gICAgICogICAgIHJldHVybiBudWxsO1xuICAgICAqICAgfVxuICAgICAqICAgcmV0dXJuIGV2ZW50O1xuICAgICAqIH0pO1xuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogQHBhcmFtIGV2ZW50TW9kaWZpZXIgVGhlIG1vZGlmaWVyIGZ1bmN0aW9uIHRvIG1vZGlmeSBhIGdpdmVuIChyZWFkb25seSkgSlNPTkV2ZW50LiBJdCByZWNlaXZlcyBhbiBvcHRpb25hbCBjb250ZXh0XG4gICAgICogICAgICAgICAgICAgICAgICAgICAgZGVwZW5kaW5nIG9uIHRoZSB0eXBlIG9mIGV2ZW50LCBpZiBhdmFpbGFibGUuIFRoZSByZXR1cm5lZCBldmVudCBtdXN0IGJlIGEgbmV3IG9iamVjdCwgb3RoZXJ3aXNlXG4gICAgICogICAgICAgICAgICAgICAgICAgICAgbW9kaWZpY2F0aW9uIHdpbGwgYmUgaWdub3JlZC4gTW9kaWZpY2F0aW9uIGlzIG9ubHkgYWxsb3dlZCBmb3IgZmllbGRzIGRlY2xhcmVkIGluXG4gICAgICogICAgICAgICAgICAgICAgICAgICAge0BsaW5rIEFsbG93ZWRNb2RpZmljYXRpb25GaWVsZHN9LlxuICAgICAqIEByZXR1cm5zICAgICAgICAgICAgIFRoZSB1bnN1YnNjcmliZXIgZnVuY3Rpb24gdG8gdHVybiBvZmYgZXZlbnQgbW9kaWZpY2F0aW9uLlxuICAgICAqL1xuICAgIGV4cG9ydCBkZWNsYXJlIGZ1bmN0aW9uIGFkZEV2ZW50TW9kaWZpZXIoZXZlbnRNb2RpZmllcjogKGpzb25FdmVudDogUmVhZG9ubHk8SlNPTkV2ZW50PiwgZXZlbnRDb250ZXh0PzogRXZlbnRDb250ZXh0KSA9PiBKU09ORXZlbnQgfCBudWxsKTogVW5zdWJzY3JpYmVyO1xuXG4gICAgLyoqXG4gICAgICogSWYgbm90IGFscmVhZHkgZW5hYmxlZCwgZHluYW1pY2FsbHkgbG9hZHMgdGhlIEhlYWx0aCBDaGVjayBtb2R1bGUgd2hpY2ggd2lsbCByZWFkIGFjY3VtdWxhdGVkIGhlYWx0aCBjaGVjayBkYXRhXG4gICAgICogYW5kIHByZXNlbnQgaXQgaW4gdGhlIGJyb3dzZXIgZGV2ZWxvcGVyIHRvb2xzIGNvbnNvbGUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY29uZmlnICAgICAgICAgICAgICAgICAgICAgICAgICBUaGUgb3B0aW9uYWwgY29uZmlndXJhdGlvbiBvYmplY3QgZm9yIHRoZSBoZWFsdGggY2hlY2suXG4gICAgICogQHBhcmFtIGNvbmZpZy5sb2dWZXJib3NlICAgICAgICAgICAgICAgSWYgdHJ1ZSwgdmVyYm9zZSBpbmZvcm1hdGlvbiBpcyBpbmNsdWRlZCBpbiB0aGUgaGVhbHRoIGNoZWNrLlxuICAgICAqIEBwYXJhbSBjb25maWcucmV0dXJuRGlhZ25vc3RpY0RhdGEgICAgIElmIHRydWUsIHRoZSBkaWFnbm9zdGljIGRhdGEgaXMgcmV0dXJuZWQgYXMgYXJyYXkgaW5zdGVhZCBvZiBqdXN0IGJlaW5nIGxvZ2dlZC5cbiAgICAgKiBAcGFyYW0gY29uZmlnLnJ1bkRldGFpbGVkT3ZlcnJpZGVDaGVjayBpZiB0cnVlLCBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIHdpbGwgYmUgbG9nZ2VkIHRvIHRoZSBjb25zb2xlIGZvciBvdmVycmlkZGVuIG5hdGl2ZSBBUElzLlxuICAgICAqIEByZXR1cm5zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEEgcHJvbWlzZSB0aGF0IHNldHRsZXMgYXMgc29vbiBhcyB0aGUgaGVhbHRoIGNoZWNrIGhhcyBiZWVuIHBlcmZvcm1lZC5cbiAgICAgKi9cbiAgICBleHBvcnQgZGVjbGFyZSBmdW5jdGlvbiBydW5IZWFsdGhDaGVjayhjb25maWc/OiBIZWFsdGhDaGVja0NvbmZpZyk6IFByb21pc2U8dW5rbm93bltdIHwgdW5kZWZpbmVkPjtcblxuICAgIC8qKlxuICAgICAqIEVuYWJsZXMgZGVidWcgbG9nZ2luZy5cbiAgICAgKlxuICAgICAqIEBpbnRlcm5hbCBub3QgcHVibGljIHlldFxuICAgICAqIEBwYXJhbSAgICBsb2dnaW5nSW5mb3JtYXRpb24gQW4gb2JqZWN0IHRoYXQgc3BlY2lmaWVzIHdoYXQgc2hvdWxkIGJlIGxvZ2dlZFxuICAgICAqIEByZXR1cm5zICAgICAgICAgICAgICAgICAgICAgQSBwcm9taXNlIHRoYXQgc2V0dGxlcyBhcyBzb29uIGFzIGRlYnVnIGxvZ2dpbmcgaGFzIGJlZW4gZW5hYmxlZFxuICAgICAqL1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAZHluYXRyYWNlL2RlbS1lc2xpbnQtcnVsZXMvY29ycmVjdC1udWxsLXZvaWQtdW5kZWZpbmVkIC0tIG5lY2Vzc2FyeSwgYmVjYXVzZSB3ZSBvdmVycmlkZSB0aGUgZnVuY3Rpb24gYWZ0ZXIgbG9hZGluZyB0aGUgaGVhbHRoY2hlY2sgbW9kdWxlXG4gICAgZXhwb3J0IGRlY2xhcmUgZnVuY3Rpb24gZW5hYmxlRGVidWdMb2dnaW5nKGxvZ2dpbmdJbmZvcm1hdGlvbjogUmVjb3JkPHN0cmluZywgYm9vbGVhbj4pOiBQcm9taXNlPHZvaWQ+IHwgdm9pZDtcblxuICAgIC8qKlxuICAgICAqIFVzZSB0byBpZGVudGlmeSBpbmRpdmlkdWFsIHVzZXJzIGFjcm9zcyBkaWZmZXJlbnQgYnJvd3NlcnMsIGRldmljZXMsIGFuZCB1c2VyIHNlc3Npb25zLlxuICAgICAqXG4gICAgICogQHBhcmFtIHZhbHVlIFRoZSBuYW1lIG9mIHRoZSB1c2VyLiBGb3IgZXhhbXBsZSwgdXNlIGEgbmFtZSwgdXNlcmlkLCBvciB5b3VyIHVzZXIncyBlbWFpbCBhZGRyZXNzLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogZHluYXRyYWNlLmlkZW50aWZ5VXNlcihcImpvaG4uZG9lQGV4YW1wbGUuY29tXCIpO1xuICAgICAqIGBgYFxuICAgICAqL1xuICAgIGV4cG9ydCBkZWNsYXJlIGZ1bmN0aW9uIGlkZW50aWZ5VXNlcih2YWx1ZTogc3RyaW5nKTogdm9pZDtcblxuICAgIC8qKlxuICAgICAqIFNlbmRzIGEgc2Vzc2lvblByb3BlcnR5RXZlbnQuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBkeW5hdHJhY2Uuc2VuZFNlc3Npb25Qcm9wZXJ0eUV2ZW50KHtcbiAgICAgKiAgICAgXCJzZXNzaW9uX3Byb3BlcnRpZXMuc29tZV9jdXN0b21cIjogdHJ1ZSxcbiAgICAgKiAgICAgXCJzZXNzaW9uX3Byb3BlcnRpZXMubXlfaWRcIjogXCJtMTIzNDU2XCIsXG4gICAgICogICAgIFwic2Vzc2lvbl9wcm9wZXJ0aWVzLm15X290aGVyX2lkXzJcIjogXCJ4MTIzXCIsXG4gICAgICogICAgIFwic2Vzc2lvbl9wcm9wZXJ0aWVzLm15X2Z1bGx5X290aGVyLmlkM1wiOiBcImlkMDA3XCIsXG4gICAgICogfSk7XG4gICAgICpgYGBcbiAgICAgKiBAcGFyYW0gZmllbGRzIE11c3QgYmUgYSB2YWxpZCBKU09OIG9iamVjdCBhbmQgY2Fubm90IGNvbnRhaW4gZnVuY3Rpb25zLCB1bmRlZmluZWQsIEluZmluaXR5IGFuZCBOYU4gYXNcbiAgICAgKiAgICAgICAgICAgICAgIHZhbHVlcywgb3RoZXJ3aXNlIHRoZXkgd2lsbCBiZSByZXBsYWNlZCB3aXRoIG51bGwuIFRoZSBgZmllbGRzYCBuZWVkIHRvIGJlIHNlcmlhbGl6YWJsZVxuICAgICAqICAgICAgICAgICAgICAgdXNpbmcgSlNPTi5zdHJpbmdpZnkuIFRoZSByZXN1bHRpbmcgZXZlbnQgd2lsbCBiZSBwb3B1bGF0ZWQgd2l0aCBgZmllbGRzYCBwYXJhbWV0ZXIsIGFuZFxuICAgICAqICAgICAgICAgICAgICAgaXMgbW9kaWZpZWQgd2l0aCBhZGRpdGlvbmFsIHByb3BlcnRpZXMsIHRodXMgYWxzbyBlbXB0eSBvYmplY3RzIGFyZSB2YWxpZC4gT25seSBwcm9wZXJ0aWVzXG4gICAgICogICAgICAgICAgICAgICBwcmVmaXhlZCB3aXRoIGBzZXNzaW9uX3Byb3BlcnRpZXMuYCwgdGhlIGBkdXJhdGlvbmAgcHJvcGVydHkgYW5kIHRoZSBgc3RhcnRfdGltZWAgcHJvcGVydHkgYXJlXG4gICAgICogICAgICAgICAgICAgICBhbGxvd2VkLiBTdHJpbmcgcHJvcGVydGllcyBhcmUgbGltaXRlZCB0byA1MDAwIGNoYXJhY3RlcnMsIGV4Y2VlZGluZyBjaGFyYWN0ZXJzIGFyZSBjdXQgb2ZmLiBBbGxcbiAgICAgKiAgICAgICAgICAgICAgIHNlc3Npb24gcHJvcGVydHkga2V5cyBtdXN0IGNvbnRhaW4gb25seSBhbHBoYWJldGljIGNoYXJhY3RlcnMsIG51bWJlcnMsIHVuZGVyc2NvcmVzIG9yXG4gICAgICogICAgICAgICAgICAgICBkb3RzLiBFYWNoIGRvdCBtdXN0IGJlIGZvbGxvd2VkIGJ5IGFuIGFscGhhYmV0aWMgY2hhcmFjdGVyLiBFYWNoIHVuZGVyc2NvcmUgbXVzdCBiZSBmb2xsb3dlZCBieSBhblxuICAgICAqICAgICAgICAgICAgICAgYWxwaGFiZXRpYyBjaGFyYWN0ZXIgb3IgbnVtYmVyLlxuICAgICAqL1xuICAgIGV4cG9ydCBkZWNsYXJlIGZ1bmN0aW9uIHNlbmRTZXNzaW9uUHJvcGVydHlFdmVudChmaWVsZHM6IEFwaUNyZWF0ZWRTZXNzaW9uUHJvcGVydGllc0V2ZW50KTogdm9pZDtcblxuICAgIC8qKlxuICAgICAqIFRoaXMgZnVuY3Rpb24gaXMgb25seSBhdmFpbGFibGUgaWYgdGhlIEVycm9yIG1vZHVsZSBpcyBlbmFibGVkXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZXJyb3IgIE11c3QgYmUgYSB2YWxpZCBpbnN0YW5jZSBvZiB0aGUgRXJyb3IgY2xhc3MuIElmIGFuIGludmFsaWQgdmFsdWUgaXMgcHJvdmlkZWQsIHRoZSBlcnJvciB3aWxsIG5vdCBiZSBwcm9jZXNzZWQgb3Igc2VudC5cbiAgICAgKiBAcGFyYW0gZmllbGRzIE9wdGlvbmFsOiBNdXN0IGJlIGEgdmFsaWQgSlNPTiBvYmplY3QgYW5kIGNhbm5vdCBjb250YWluIGZ1bmN0aW9ucywgdW5kZWZpbmVkLCBJbmZpbml0eSBhbmQgTmFOIGFzXG4gICAgICogICAgICAgICAgICAgICB2YWx1ZXMsIG90aGVyd2lzZSB0aGV5IHdpbGwgYmUgcmVwbGFjZWQgd2l0aCBudWxsLiBUaGUgYGZpZWxkc2AgbmVlZCB0byBiZSBzZXJpYWxpemFibGVcbiAgICAgKiAgICAgICAgICAgICAgIHVzaW5nIEpTT04uc3RyaW5naWZ5LiBUaGUgcmVzdWx0aW5nIGV2ZW50IHdpbGwgY29udGFpbiB0aGUgcHJvdmlkZWQgYGZpZWxkc2AsIGFuZCBpc1xuICAgICAqICAgICAgICAgICAgICAgbW9kaWZpZWQgd2l0aCBhZGRpdGlvbmFsIHByb3BlcnRpZXMsIHRodXMgYWxzbyBlbXB0eSBvYmplY3RzIGFyZSB2YWxpZC4gT25seSBwcm9wZXJ0aWVzXG4gICAgICogICAgICAgICAgICAgICBwcmVmaXhlZCB3aXRoIGBldmVudF9wcm9wZXJ0aWVzLmAsIHRoZSBgZHVyYXRpb25gIHByb3BlcnR5IGFuZCB0aGUgYHN0YXJ0X3RpbWVgIHByb3BlcnR5IGFyZVxuICAgICAqICAgICAgICAgICAgICAgYWxsb3dlZC4gU3RyaW5nIHByb3BlcnRpZXMgYXJlIGxpbWl0ZWQgdG8gNTAwMCBjaGFyYWN0ZXJzLCBleGNlZWRpbmcgY2hhcmFjdGVycyBhcmUgY3V0IG9mZi5cbiAgICAgKiAgICAgICAgICAgICAgIEFsbCBldmVudCBwcm9wZXJ0eSBrZXlzIG11c3QgY29udGFpbiBvbmx5IGFscGhhYmV0aWMgY2hhcmFjdGVycywgbnVtYmVycyxcbiAgICAgKiAgICAgICAgICAgICAgIHVuZGVyc2NvcmVzIG9yIGRvdHMuIEVhY2ggZG90IG11c3QgYmUgZm9sbG93ZWQgYnkgYW4gYWxwaGFiZXRpYyBjaGFyYWN0ZXIuIEVhY2ggdW5kZXJzY29yZVxuICAgICAqICAgICAgICAgICAgICAgbXVzdCBiZSBmb2xsb3dlZCBieSBhbiBhbHBoYWJldGljIGNoYXJhY3RlciBvciBudW1iZXIuXG4gICAgICovXG4gICAgZXhwb3J0IGRlY2xhcmUgbGV0IHNlbmRFeGNlcHRpb25FdmVudDogKChlcnJvcjogRXJyb3IsIGZpZWxkcz86IEFwaUNyZWF0ZWRFdmVudFByb3BlcnRpZXNFdmVudCkgPT4gdm9pZCkgfCB1bmRlZmluZWQ7XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIHByb3BlcnR5IGlzIGB1bmRlZmluZWRgIGlmIHRoZSBVc2VyIEludGVyYWN0aW9uIG1vZHVsZSBpcyBkaXNhYmxlZC5cbiAgICAgKlxuICAgICAqIEBleHBlcmltZW50YWxcbiAgICAgKi9cbiAgICBleHBvcnQgZGVjbGFyZSBsZXQgaW50ZXJhY3Rpb25zOiBJbnRlcmFjdGlvbnMgfCB1bmRlZmluZWQ7XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIHByb3BlcnR5IGlzIGB1bmRlZmluZWRgIGlmIHRoZSBVc2VyIEFjdGlvbnMgbW9kdWxlIGlzIGRpc2FibGVkLlxuICAgICAqXG4gICAgICogQGV4cGVyaW1lbnRhbFxuICAgICAqL1xuICAgIGV4cG9ydCBkZWNsYXJlIGxldCB1c2VyQWN0aW9uczogVXNlckFjdGlvbnMgfCB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogQGV4cGVyaW1lbnRhbFxuICogQGNhdGVnb3J5IFVzZXIgQWN0aW9uc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJBY3Rpb25zIHtcbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgbmV3IGNvbnRyb2xsYWJsZSB1c2VyIGFjdGlvbi5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIGNvbnN0IHVzZXJBY3Rpb24gPSBkeW5hdHJhY2UudXNlckFjdGlvbnMuY3JlYXRlKHsgYXV0b0Nsb3NlOiBmYWxzZSB9KTtcbiAgICAgKiBjb25zdCB1bnN1YnNjcmliZSA9IHVzZXJBY3Rpb24uc3Vic2NyaWJlKGN1cnJlbnRVc2VyQWN0aW9uID0+IHtcbiAgICAgKiAgICAgY29uc29sZS5sb2coYFVzZXIgYWN0aW9uIHdvdWxkIGhhdmUgYmVlbiBjb21wbGV0ZWQgZHVlIHRvICR7Y3VycmVudFVzZXJBY3Rpb24uY29tcGxldGVSZWFzb259YCwgZXZlbnQpO1xuICAgICAqIH0pO1xuICAgICAqIC8vIGV4ZWN1dGUgdXNlciBhY3Rpb25zXG4gICAgICogdXNlckFjdGlvbi5maW5pc2goKTtcbiAgICAgKiB1bnN1YnNjcmliZSgpO1xuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogQGV4cGVyaW1lbnRhbFxuICAgICAqIEBwYXJhbSBvcHRpb25zICAgICAgICAgICBBbiBvcHRpb25hbCBvcHRpb25zIG9iamVjdCB0byBjb25maWd1cmUgdGhlIHVzZXIgYWN0aW9uLlxuICAgICAqIEBwYXJhbSBvcHRpb25zLmF1dG9DbG9zZSBJZiB0cnVlLCBhdXRvbWF0aWNhbGx5IHN0b3BzIHRoZSB1c2VyIGFjdGlvbiB1c2luZyBSVU0gSmF2YVNjcmlwdCB1c2VyIGFjdGlvbiBydWxlcy5cbiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgZmFsc2UsIHRoZSB1c2VyIGFjdGlvbiByZW1haW5zIGFjdGl2ZSB1bnRpbCB0aGUgbmV4dCBjYWxsIHRvIGBjcmVhdGUoLi4uKWAgb3IgdG8gYHVzZXJBY3Rpb24uZmluaXNoKClgLlxuICAgICAqIEByZXR1cm5zICAgICAgICAgICAgICAgICBBbiBgVXNlckFjdGlvblRyYWNrZXJgIG9iamVjdCB0aGF0IGNhbiBiZSBzdGFydGVkIGFuZCBmaW5pc2hlZCwgb3IgYHVuZGVmaW5lZGAgaWYgdGhlIHVzZXIgYWN0aW9uIG1vZHVsZSBpcyBub3QgZW5hYmxlZC5cbiAgICAgKi9cbiAgICBjcmVhdGUodGhpczogdm9pZCwgb3B0aW9ucz86IFVzZXJBY3Rpb25TdGFydE9wdGlvbnMpOiBVc2VyQWN0aW9uVHJhY2tlcjtcblxuICAgIC8qKlxuICAgICAqIFN1YnNjcmliZXMgdG8gdXNlciBhY3Rpb25zLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogY29uc3QgdW5zdWJzY3JpYmUgPSBkeW5hdHJhY2UudXNlckFjdGlvbnM/LnN1YnNjcmliZSh1c2VyQWN0aW9uID0+IHtcbiAgICAgKiAgICAgLy8gRGlzYWJsZSBhdXRvbWF0aWMgdXNlckFjdGlvbiBjb21wbGV0aW9uXG4gICAgICogICAgIHVzZXJBY3Rpb24uYXV0b0Nsb3NlID0gZmFsc2U7XG4gICAgICogICAgIC8vIEV4ZWN1dGUgc29tZSByZXF1ZXN0cyBvciBtdXRhdGlvbnMsIHRoZW4gZmluaXNoIHRoZSB1c2VyIGFjdGlvblxuICAgICAqICAgICB1c2VyQWN0aW9uLmZpbmlzaCgpO1xuICAgICAqIH0pO1xuICAgICAqIC8vIFNvbWUgdGltZSBsYXRlciBpZiB5b3UgZG9uJ3Qgd2FudCB0byBsaXN0ZW4gdG8gdXNlckFjdGlvbnMgYW55bW9yZVxuICAgICAqIHVuc3Vic2NyaWJlKCk7XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBAZXhwZXJpbWVudGFsXG4gICAgICogQHBhcmFtIHN1YnNjcmliZXIgQSBjYWxsYmFjayBmdW5jdGlvbiB0aGF0IGlzIGNhbGxlZCB3aGVuZXZlciBEeW5hdHJhY2UgY3JlYXRlcyBhIG5ldyB1c2VyIGFjdGlvbi5cbiAgICAgKiBAcmV0dXJucyAgICAgICAgICBBbiB1bnN1YnNjcmliZXIgZnVuY3Rpb24gdG8gcmVtb3ZlIHRoZSBzdWJzY3JpcHRpb24uXG4gICAgICovXG4gICAgc3Vic2NyaWJlKHRoaXM6IHZvaWQsIHN1YnNjcmliZXI6ICh1c2VyQWN0aW9uOiBVc2VyQWN0aW9uVHJhY2tlcikgPT4gdm9pZCk6IFVuc3Vic2NyaWJlcjtcblxuICAgIC8qKlxuICAgICAqIERpc2FibGVzIGF1dG9tYXRpYyB1c2VyIGFjdGlvbiBkZXRlY3Rpb24uIFVzZWZ1bCBpbiBjYXNlIGl0IGludGVyZmVyZXMgd2l0aCBtYW51YWwgdXNlciBhY3Rpb24gaGFuZGxpbmcuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBkeW5hdHJhY2UudXNlckFjdGlvbnM/LnNldEF1dG9tYXRpY0RldGVjdGlvbihmYWxzZSk7XG4gICAgICpcbiAgICAgKiBhc3luYyBmdW5jdGlvbiBoYW5kbGVDbGljayhyb3V0ZXIpIHtcbiAgICAgKiAgICAgY29uc3QgdXNlckFjdGlvbiA9IGR5bmF0cmFjZS51c2VyQWN0aW9ucz8uY3JlYXRlKHsgYXV0b0Nsb3NlOiBmYWxzZSB9KTtcbiAgICAgKiAgICAgLy8gdGhpcyB3b3VsZCBub3JtYWxseSBjcmVhdGUgYW4gdXNlciBhY3Rpb24gdGhhdCB3b3VsZCBmaW5pc2ggdGhpcyBtYW51YWwgdXNlciBhY3Rpb25cbiAgICAgKiAgICAgYXdhaXQgcm91dGVyLnJlZGlyZWN0KFwiaG9tZVwiKTtcbiAgICAgKiAgICAgdXNlckFjdGlvbi5maW5pc2goKTtcbiAgICAgKiB9XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBAZXhwZXJpbWVudGFsXG4gICAgICogQHBhcmFtIGF1dG9tYXRpY0RldGVjdGlvbiBJZiBmYWxzZSwgZGlzYWJsZXMgYXV0b21hdGljIHVzZXIgYWN0aW9uIGRldGVjdGlvbiwgb3RoZXJ3aXNlIGVuYWJsZXMgaXQuXG4gICAgICovXG4gICAgc2V0QXV0b21hdGljRGV0ZWN0aW9uKHRoaXM6IHZvaWQsIGF1dG9tYXRpY0RldGVjdGlvbjogYm9vbGVhbik6IHZvaWQ7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgY3VycmVudCB1c2VyIGFjdGlvbiwgb3IgYHVuZGVmaW5lZGAgaWYgbm8gdXNlciBhY3Rpb24gaXMgaW4gcHJvZ3Jlc3MuXG4gICAgICpcbiAgICAgKiBAZXhwZXJpbWVudGFsXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogYXN5bmMgZnVuY3Rpb24gcG9zdE1lc3NhZ2VDaGFubmVsKG1lc3NhZ2UsIGNoYW5uZWwpIHtcbiAgICAgKiAgIGNvbnN0IGN1cnJlbnRVc2VyQWN0aW9uID0gZHluYXRyYWNlLnVzZXJBY3Rpb25zPy5jdXJyZW50O1xuICAgICAqICAgaWYgKGN1cnJlbnRVc2VyQWN0aW9uKSB7XG4gICAgICogICAgICBjdXJyZW50VXNlckFjdGlvbi5hdXRvQ2xvc2UgPSBmYWxzZTtcbiAgICAgKiAgIH1cbiAgICAgKiAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2hhbm5lbC5zZW5kKG1lc3NhZ2UpO1xuICAgICAqICAgY3VycmVudFVzZXJBY3Rpb24/LmZpbmlzaCgpO1xuICAgICAqICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAqIH1cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBjdXJyZW50OiBVc2VyQWN0aW9uVHJhY2tlciB8IHVuZGVmaW5lZDtcbn1cbiJdfQ==
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYXRyYWNlLWFwaS10eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NvdXJjZS90eXBlcy9hcGkvZHluYXRyYWNlLWFwaS10eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUErSEE7O0dBRUc7QUFDSCxNQUFNLEtBQVcsU0FBUyxDQXVPekI7QUF2T0QsV0FBaUIsU0FBUztBQXVPMUIsQ0FBQyxFQXZPZ0IsU0FBUyxLQUFULFNBQVMsUUF1T3pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICAgIEFwaUNyZWF0ZWRFdmVudFByb3BlcnRpZXNFdmVudCxcbiAgICBBcGlDcmVhdGVkU2Vzc2lvblByb3BlcnRpZXNFdmVudCxcbiAgICBKU09ORXZlbnQsXG4gICAgSlNPTk9iamVjdFxufSBmcm9tIFwiLi4vcnVtLWV2ZW50cy9qc29uLWV2ZW50LmpzXCI7XG5pbXBvcnQgdHlwZSB7XG4gICAgUnVtRXZlbnRLZXlzLFxuICAgIFJVTUtleVByZXNzQWN0aW9uRXZlbnRcbn0gZnJvbSBcIi4uL3J1bS1ldmVudHMvaW5kZXguanNcIjtcbmltcG9ydCB0eXBlIHsgRXZlbnRDb250ZXh0IH0gZnJvbSBcIi4uL3J1bS1ldmVudHMvZXZlbnQtY29udGV4dC9ldmVudC1jb250ZXh0LmpzXCI7XG5pbXBvcnQgdHlwZSB7IFVzZXJBY3Rpb25TdGFydE9wdGlvbnMgfSBmcm9tIFwiLi4vdXNlci1hY3Rpb25zL3VzZXItYWN0aW9uLXN0YXJ0LW9wdGlvbnMuanNcIjtcbmltcG9ydCB0eXBlIHsgVXNlckFjdGlvblRyYWNrZXIgfSBmcm9tIFwiLi4vdXNlci1hY3Rpb25zL3VzZXItYWN0aW9uLXRyYWNrZXIuanNcIjtcblxuLyoqXG4gKiBBIG1ldGhvZCB3aGljaCBkZWFjdGl2YXRlcyBiZWhhdmlvciB3aGVuIGludm9rZWQuXG4gKiBTZWUgdGhlIHJldHVybmluZyBtZXRob2QncyBBUEkgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBAaW5saW5lXG4gKiBAaWdub3JlXG4gKi9cbmV4cG9ydCB0eXBlIFVuc3Vic2NyaWJlciA9ICgpID0+IHZvaWQ7XG5cbi8qKlxuICogVGhlIGNvbmZpZ3VyYXRpb24gb2JqZWN0IHByb3ZpZGVkIHRvIHRoZSBydW5IZWFsdGhDaGVjayBBUEkuXG4gKlxuICogQHNlZSBydW5IZWFsdGhDaGVja1xuICogQGlubGluZVxuICogQGlnbm9yZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEhlYWx0aENoZWNrQ29uZmlnIHtcbiAgICBsb2dWZXJib3NlPzogYm9vbGVhbjtcbiAgICByZXR1cm5EaWFnbm9zdGljRGF0YT86IGJvb2xlYW47XG4gICAgcnVuRGV0YWlsZWRPdmVycmlkZUNoZWNrPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBUaGUgZmllbGRzIGFsbG93ZWQgZm9yIHtAbGluayBJbnRlcmFjdGlvbnMuc2VuZEtleVByZXNzRXZlbnR9LlxuICpcbiAqIEluY2x1ZGVzIHRoZSByZXF1aXJlZCBga2V5c2AgYXJyYXkgYW5kIG9wdGlvbmFsIGB1aV9lbGVtZW50LmN1c3RvbV9uYW1lYC5cbiAqIEFkZGl0aW9uYWwgdXNlci1kZWZpbmVkIGZpZWxkcyBhcmUgbGltaXRlZCB0byBgZXZlbnRfcHJvcGVydGllcy4qYCBlbnRyaWVzLlxuICogVGhlIGZpZWxkcyBvYmplY3QgbXVzdCBiZSBhIEpTT04tc2VyaWFsaXphYmxlIHBsYWluIG9iamVjdC5cbiAqXG4gKiBAY2F0ZWdvcnkgQVBJXG4gKi9cbmV4cG9ydCB0eXBlIFNlbmRVc2VySW50ZXJhY3Rpb25GaWVsZHMgPSB7XG4gICAgLyoqXG4gICAgICogVGhlIGtleSBjb21iaW5hdGlvbiBmb3IgdGhlIGludGVyYWN0aW9uLiBNdXN0IGNvbnRhaW4gYXQgbGVhc3Qgb25lIGtleS5cbiAgICAgKiBWYWx1ZXMgY2FuIGJlIHtAbGluayBVc2VySW50ZXJhY3Rpb25TcGVjaWFsS2V5fSBtZW1iZXJzIG9yIHJhd1xuICAgICAqIHtAbGluayBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvS2V5Ym9hcmRFdmVudC9rZXkgfCBLZXlib2FyZEV2ZW50LmtleX1cbiAgICAgKiBzdHJpbmdzIOKAlCByYXcgdmFsdWVzIGFyZSBub3JtYWxpemVkIGludGVybmFsbHkuXG4gICAgICogVGhlIGVudW0gaXMgb3B0aW9uYWwgYnV0IGltcHJvdmVzIHJlYWRhYmlsaXR5IHdoZW4gY29uc3RydWN0aW5nIGtleSBhcnJheXMgbWFudWFsbHkuXG4gICAgICpcbiAgICAgKiBJbXBvcnQgYFVzZXJJbnRlcmFjdGlvblNwZWNpYWxLZXlgIGZyb20gYEBkeW5hdHJhY2UvcnVtLWphdmFzY3JpcHQtc2RrL3R5cGVzL3J1bS1ldmVudHNgLlxuICAgICAqL1xuICAgIGtleXM6IFJVTUtleVByZXNzQWN0aW9uRXZlbnRbXCJrZXlzXCJdO1xuICAgIC8qKlxuICAgICAqIEFuIG9wdGlvbmFsIGN1c3RvbSBuYW1lIGZvciB0aGUgVUkgZWxlbWVudCwgaW5jbHVkZWQgYXMgYHVpX2VsZW1lbnQuY3VzdG9tX25hbWVgIGluIHRoZSBlbWl0dGVkIGV2ZW50LlxuICAgICAqIFRoaXMgZmllbGQgaXMgaW5kZXBlbmRlbnQgb2YgdGhlIGF1dG8tZGV0ZWN0ZWQgZWxlbWVudCBuYW1lIChgdWlfZWxlbWVudC5kZXRlY3RlZF9uYW1lYCkuXG4gICAgICogSXQgaXMgaW5jbHVkZWQgaW4gdGhlIGVtaXR0ZWQgZXZlbnQgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIGBlbGVtZW50T3JFdmVudGAgaXMgcHJvdmlkZWQuXG4gICAgICovXG4gICAgW1J1bUV2ZW50S2V5cy5VSV9FTEVNRU5UJENVU1RPTV9OQU1FXT86IHN0cmluZztcbn0gJiBBcGlDcmVhdGVkRXZlbnRQcm9wZXJ0aWVzRXZlbnQ7XG5cbi8qKlxuICogQGV4cGVyaW1lbnRhbFxuICogQGNhdGVnb3J5IEFQSVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEludGVyYWN0aW9ucyB7XG4gICAgLyoqXG4gICAgICogU2VuZHMgYSB1c2VyIGludGVyYWN0aW9uIGV2ZW50IGZvciByZXBvcnRpbmcgY3VzdG9tIGtleWJvYXJkIHNob3J0Y3V0cyBvciBrZXkgY29tYmluYXRpb25zXG4gICAgICogdGhhdCBhcmUgbm90IGF1dG9tYXRpY2FsbHkgZGV0ZWN0ZWQuIE9ubHkgYXZhaWxhYmxlIGlmIHRoZSBVc2VyIEludGVyYWN0aW9uIG1vZHVsZSBpcyBlbmFibGVkLlxuICAgICAqXG4gICAgICogS2V5cyBjYW4gYmUgc3BlY2lmaWVkIHVzaW5nIHtAbGluayBVc2VySW50ZXJhY3Rpb25TcGVjaWFsS2V5fSBtZW1iZXJzIG9yIHJhd1xuICAgICAqIHtAbGluayBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvS2V5Ym9hcmRFdmVudC9rZXkgfCBLZXlib2FyZEV2ZW50LmtleX1cbiAgICAgKiBzdHJpbmdzIOKAlCByYXcgdmFsdWVzIGFyZSBub3JtYWxpemVkIGludGVybmFsbHkgKGUuZy4gYFwiIFwiYCDihpIgYFwic3BhY2VcImAsIGBcIkNvbnRyb2xcImAg4oaSIGBcImN0cmxcImApLlxuICAgICAqIFRoZSBlbnVtIGlzIG9wdGlvbmFsIGJ1dCBpbXByb3ZlcyByZWFkYWJpbGl0eSB3aGVuIGNvbnN0cnVjdGluZyBrZXkgYXJyYXlzIG1hbnVhbGx5LlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogaW1wb3J0IHsgVXNlckludGVyYWN0aW9uU3BlY2lhbEtleSB9IGZyb20gXCJAZHluYXRyYWNlL3J1bS1qYXZhc2NyaXB0LXNkay90eXBlcy9ydW0tZXZlbnRzXCI7XG4gICAgICpcbiAgICAgKiAvLyBCYXNpYyBrZXkgY29tYmluYXRpb25cbiAgICAgKiBkeW5hdHJhY2UuaW50ZXJhY3Rpb25zPy5zZW5kS2V5UHJlc3NFdmVudCh7XG4gICAgICogICAgIGtleXM6IFtVc2VySW50ZXJhY3Rpb25TcGVjaWFsS2V5LkNUUkwsIFwiU1wiXVxuICAgICAqIH0pO1xuICAgICAqXG4gICAgICogLy8gV2l0aCBhbiBFbGVtZW50IHRvIGNhcHR1cmUgVUkgZWxlbWVudCBmaWVsZHMgKHRhZ19uYW1lLCBpZCwgZGV0ZWN0ZWRfbmFtZSwgY29tcG9uZW50cywgZXRjLilcbiAgICAgKiBjb25zdCBidXR0b24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcInNhdmVCdG5cIik7XG4gICAgICogZHluYXRyYWNlLmludGVyYWN0aW9ucz8uc2VuZEtleVByZXNzRXZlbnQoe1xuICAgICAqICAgICBrZXlzOiBbVXNlckludGVyYWN0aW9uU3BlY2lhbEtleS5FTlRFUl1cbiAgICAgKiB9LCBidXR0b24pO1xuICAgICAqXG4gICAgICogLy8gV2l0aCBhIG5hdGl2ZSBLZXlib2FyZEV2ZW50IHRvIHJlc29sdmUgdGhlIHRhcmdldCBlbGVtZW50XG4gICAgICogZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIiwgKGV2ZW50KSA9PiB7XG4gICAgICogICAgIGR5bmF0cmFjZS5pbnRlcmFjdGlvbnM/LnNlbmRLZXlQcmVzc0V2ZW50KHtcbiAgICAgKiAgICAgICAgIGtleXM6IFtVc2VySW50ZXJhY3Rpb25TcGVjaWFsS2V5LkNUUkwsIFwiU1wiXVxuICAgICAqICAgICB9LCBldmVudCk7XG4gICAgICogfSk7XG4gICAgICpcbiAgICAgKiAvLyBXaXRoIGEgY3VzdG9tX25hbWUgZm9yIHRoZSBVSSBlbGVtZW50XG4gICAgICogZHluYXRyYWNlLmludGVyYWN0aW9ucz8uc2VuZEtleVByZXNzRXZlbnQoe1xuICAgICAqICAgICBrZXlzOiBbVXNlckludGVyYWN0aW9uU3BlY2lhbEtleS5FU0NdLFxuICAgICAqICAgICBcInVpX2VsZW1lbnQuY3VzdG9tX25hbWVcIjogXCJDbG9zZU1vZGFsXCJcbiAgICAgKiB9KTtcbiAgICAgKlxuICAgICAqIC8vIFdpdGggZXZlbnQgcHJvcGVydGllcyBmb3IgZW5yaWNobWVudFxuICAgICAqIGR5bmF0cmFjZS5pbnRlcmFjdGlvbnM/LnNlbmRLZXlQcmVzc0V2ZW50KHtcbiAgICAgKiAgICAga2V5czogW1VzZXJJbnRlcmFjdGlvblNwZWNpYWxLZXkuQ1RSTCwgXCJTXCJdLFxuICAgICAqICAgICBcImV2ZW50X3Byb3BlcnRpZXMuY29udGV4dFwiOiBcImVkaXRvclwiXG4gICAgICogfSk7XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZmllbGRzICAgICAgICAgVGhlIGludGVyYWN0aW9uIGZpZWxkcy4gTXVzdCBjb250YWluIGEgYGtleXNgIGFycmF5IHdpdGggYXQgbGVhc3Qgb25lIGtleS5cbiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgVGhlIGZpZWxkcyBvYmplY3QgbXVzdCBiZSBKU09OLXNlcmlhbGl6YWJsZS4gT3B0aW9uYWxseSBpbmNsdWRlIGB1aV9lbGVtZW50LmN1c3RvbV9uYW1lYFxuICAgICAqICAgICAgICAgICAgICAgICAgICAgICB0byBwcm92aWRlIGEgY3VzdG9tIG5hbWUgZm9yIHRoZSBVSSBlbGVtZW50IGFuZCBgZXZlbnRfcHJvcGVydGllcy4qYCBlbnRyaWVzLlxuICAgICAqICAgICAgICAgICAgICAgICAgICAgICBTZWUge0BsaW5rIFNlbmRVc2VySW50ZXJhY3Rpb25GaWVsZHN9IGZvciBkZXRhaWxzLlxuICAgICAqIEBwYXJhbSBlbGVtZW50T3JFdmVudCBBbiBvcHRpb25hbCB7QGxpbmsgRWxlbWVudH0gb3Ige0BsaW5rIEtleWJvYXJkRXZlbnR9IHVzZWQgdG8gYXV0by1nZW5lcmF0ZSBVSSBlbGVtZW50IGZpZWxkc1xuICAgICAqICAgICAgICAgICAgICAgICAgICAgICBzdWNoIGFzIGB0YWdfbmFtZWAsIGBpZGAsIGBkZXRlY3RlZF9uYW1lYCwgYGNvbXBvbmVudHNgLCBgZmVhdHVyZXNgLCBhbmQgYHByb3BlcnRpZXNgLlxuICAgICAqICAgICAgICAgICAgICAgICAgICAgICBXaGVuIGEge0BsaW5rIEtleWJvYXJkRXZlbnR9IGlzIHByb3ZpZGVkLCB0aGUgdGFyZ2V0IGVsZW1lbnQgaXMgcmVzb2x2ZWQgZnJvbSB0aGUgZXZlbnQuXG4gICAgICogICAgICAgICAgICAgICAgICAgICAgIElmIG9taXR0ZWQsIG5vIFVJIGVsZW1lbnQgZmllbGRzIGFyZSBpbmNsdWRlZCBpbiB0aGUgZW1pdHRlZCBldmVudC5cbiAgICAgKiBAc2VlIFVzZXJJbnRlcmFjdGlvblNwZWNpYWxLZXlcbiAgICAgKiBAc2VlIFNlbmRVc2VySW50ZXJhY3Rpb25GaWVsZHNcbiAgICAgKi9cbiAgICBzZW5kS2V5UHJlc3NFdmVudCh0aGlzOiB2b2lkLCBmaWVsZHM6IFNlbmRVc2VySW50ZXJhY3Rpb25GaWVsZHMsIGVsZW1lbnRPckV2ZW50PzogRWxlbWVudCB8IEV2ZW50KTogdm9pZDtcbn1cblxuLyoqXG4gKiBAY2F0ZWdvcnkgQVBJXG4gKi9cbmV4cG9ydCBuYW1lc3BhY2UgZHluYXRyYWNlIHtcbiAgICAvKipcbiAgICAgKiBTZW5kcyBhbiBldmVudCB3aXRoIHRoZSBwcm92aWRlZCBmaWVsZHMuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBkeW5hdHJhY2Uuc2VuZEV2ZW50KHtcbiAgICAgKiAgICAgXCJldmVudF9wcm9wZXJ0aWVzLnByb3BcIjogXCJ2YWx1ZVwiLFxuICAgICAqICAgICBcImR1cmF0aW9uXCI6IDEyMyxcbiAgICAgKiAgICAgXCJldmVudF9wcm9wZXJ0aWVzLnVybFwiOiBcInd3dy5keW5hdHJhY2UuY29tXCIsXG4gICAgICogICAgIFwiZXZlbnRfcHJvcGVydGllcy5pZFwiOiBcIjEyMzQ1Njc4OVwiLFxuICAgICAqIH0pO1xuICAgICAqXG4gICAgICogLy8gVXNpbmcgY29udGV4dDpcbiAgICAgKiBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwibG9hZFwiLCAoZXZlbnQpID0+IHtcbiAgICAgKiAgICAgZHluYXRyYWNlLnNlbmRFdmVudCh7XG4gICAgICogICAgICAgICAgXCJldmVudF9wcm9wZXJ0aWVzLnByb3BcIjogXCJ2YWx1ZVwiLFxuICAgICAqICAgICAgICAgIFwiZHVyYXRpb25cIjogMTIzLFxuICAgICAqICAgICAgICAgIFwiZXZlbnRfcHJvcGVydGllcy51cmxcIjogXCJ3d3cuZHluYXRyYWNlLmNvbVwiLFxuICAgICAqICAgICAgICAgIFwiZXZlbnRfcHJvcGVydGllcy5pZFwiOiBcIjEyMzQ1Njc4OVwiLFxuICAgICAqICAgICB9LCBldmVudCk7IC8vIGFkZCB0aGUgZXZlbnQgY29udGV4dCBoZXJlXG4gICAgICogfSk7XG4gICAgICpgYGBcbiAgICAgKiBAcGFyYW0gZmllbGRzICAgICAgIE11c3QgYmUgYSB2YWxpZCBKU09OIG9iamVjdCBhbmQgY2Fubm90IGNvbnRhaW4gZnVuY3Rpb25zLCB1bmRlZmluZWQsIEluZmluaXR5IGFuZCBOYU4gYXNcbiAgICAgKiAgICAgICAgICAgICAgICAgICAgIHZhbHVlcywgb3RoZXJ3aXNlIHRoZXkgd2lsbCBiZSByZXBsYWNlZCB3aXRoIG51bGwuIFRoZSBgZmllbGRzYCBuZWVkIHRvIGJlIHNlcmlhbGl6YWJsZVxuICAgICAqICAgICAgICAgICAgICAgICAgICAgdXNpbmcgSlNPTi5zdHJpbmdpZnkuIFRoZSByZXN1bHRpbmcgZXZlbnQgd2lsbCBjb250YWluIHRoZSBwcm92aWRlZCBgZmllbGRzYCwgYW5kIGlzXG4gICAgICogICAgICAgICAgICAgICAgICAgICBtb2RpZmllZCB3aXRoIGFkZGl0aW9uYWwgcHJvcGVydGllcywgdGh1cyBhbHNvIGVtcHR5IG9iamVjdHMgYXJlIHZhbGlkLiBPbmx5IHByb3BlcnRpZXNcbiAgICAgKiAgICAgICAgICAgICAgICAgICAgIHByZWZpeGVkIHdpdGggYGV2ZW50X3Byb3BlcnRpZXMuYCwgdGhlIGBkdXJhdGlvbmAgcHJvcGVydHkgYW5kIHRoZSBgc3RhcnRfdGltZWAgcHJvcGVydHkgYXJlXG4gICAgICogICAgICAgICAgICAgICAgICAgICBhbGxvd2VkLiBTdHJpbmcgcHJvcGVydGllcyBhcmUgbGltaXRlZCB0byA1MDAwIGNoYXJhY3RlcnMsIGV4Y2VlZGluZyBjaGFyYWN0ZXJzIGFyZSBjdXQgb2ZmLlxuICAgICAqICAgICAgICAgICAgICAgICAgICAgQWxsIGV2ZW50IHByb3BlcnR5IGtleSBuYW1lcyBtdXN0IG1hdGNoIHRoZSBuYW1pbmcgcnVsZXMgZGVmaW5lZCBieSB7QGxpbmsgVkFMSURfS0VZX1JFR0VYfS5cbiAgICAgKiBAcGFyYW0gZXZlbnRDb250ZXh0IEFuIG9wdGlvbmFsIGNvbnRleHQgKHNlZSB7QGxpbmsgZHluYXRyYWNlLmFkZEV2ZW50TW9kaWZpZXJ9KSB0aGF0IGNhbiBiZSB1c2VkIHRvIG1hbmlwdWxhdGUgdGhlXG4gICAgICogICAgICAgICAgICAgICAgICAgICByZXN1bHQgZXZlbnQgd2l0aGluIHRoZSBtb2RpZmljYXRpb24gY2FsbGJhY2suXG4gICAgICovXG4gICAgZXhwb3J0IGRlY2xhcmUgZnVuY3Rpb24gc2VuZEV2ZW50KGZpZWxkczogQXBpQ3JlYXRlZEV2ZW50UHJvcGVydGllc0V2ZW50LCBldmVudENvbnRleHQ/OiB1bmtub3duKTogdm9pZDtcblxuICAgIC8qKlxuICAgICAqIFNlbmQgYSBCdXNpbmVzcyBFdmVudC5cbiAgICAgKlxuICAgICAqIFdpdGggc2VuZEJpekV2ZW50LCB5b3UgY2FuIHJlcG9ydCBhIGJ1c2luZXNzIGV2ZW50LiBUaGVzZSBzdGFuZGFsb25lIGV2ZW50cyBhcmUgYmVpbmcgc2VudCBkZXRhY2hlZCBmcm9tIHVzZXJcbiAgICAgKiBhY3Rpb25zIG9yIHNlc3Npb25zLlxuICAgICAqXG4gICAgICogTm90ZTogQnVzaW5lc3MgZXZlbnRzIGFyZSBjdXJyZW50bHkgb25seSBzdXBwb3J0ZWQgb24gRHluYXRyYWNlIFNhYVMgZGVwbG95bWVudHMuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBkeW5hdHJhY2Uuc2VuZEJpekV2ZW50KFwidHlwZVwiLCB7XG4gICAgICogICAgIHByb3A6IFwidmFsdWVcIixcbiAgICAgKiAgICAgbmFtZTogXCJiaXogZXZlbnQgbmFtZVwiLFxuICAgICAqICAgICB0aW1lc3RhbXA6IDEyMyxcbiAgICAgKiAgICAgdXJsOiBcInd3dy5keW5hdHJhY2UuY29tXCIsXG4gICAgICogICAgIHBhZ2VfaWQ6IFwiMTIzNDU2Nzg5XCIsXG4gICAgICogICAgIFwid2luZG93Lm9yaWVudGF0aW9uXCI6IFwiZGlhZ29uYWxcIlxuICAgICAqIH0pO1xuICAgICAqXG4gICAgICogLy8gVXNpbmcgY29udGV4dDpcbiAgICAgKiBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwibG9hZFwiLCAoZXZlbnQpID0+IHtcbiAgICAgKiAgICAgZHluYXRyYWNlLnNlbmRCaXpFdmVudChcInR5cGVcIiwge1xuICAgICAqICAgICAgICAgcHJvcDogXCJ2YWx1ZVwiLFxuICAgICAqICAgICAgICAgbmFtZTogXCJiaXogZXZlbnQgbmFtZVwiLFxuICAgICAqICAgICAgICAgdGltZXN0YW1wOiAxMjMsXG4gICAgICogICAgICAgICB1cmw6IFwid3d3LmR5bmF0cmFjZS5jb21cIixcbiAgICAgKiAgICAgICAgIHBhZ2VfaWQ6IFwiMTIzNDU2Nzg5XCIsXG4gICAgICogICAgICAgICBcIndpbmRvdy5vcmllbnRhdGlvblwiOiBcImRpYWdvbmFsXCJcbiAgICAgKiAgICAgfSwgZXZlbnQpOyAvLyBhZGQgdGhlIGV2ZW50IGNvbnRleHQgaGVyZVxuICAgICAqIH0pO1xuICAgICAqYGBgXG4gICAgICpcbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKiBAcGFyYW0gdHlwZSAgICAgICAgIE1hbmRhdG9yeSBldmVudCB0eXBlXG4gICAgICogQHBhcmFtIGZpZWxkcyAgICAgICBNdXN0IGJlIGEgdmFsaWQgSlNPTiBvYmplY3QgYW5kIGNhbm5vdCBjb250YWluIGZ1bmN0aW9ucywgdW5kZWZpbmVkLCBJbmZpbml0eSBhbmQgTmFOIGFzXG4gICAgICogICAgICAgICAgICAgICAgICAgICB2YWx1ZXMsIG90aGVyd2lzZSB0aGV5IHdpbGwgYmUgcmVwbGFjZWQgd2l0aCBudWxsLiBUaGUgYGZpZWxkc2AgbmVlZCB0byBiZSBzZXJpYWxpemFibGVcbiAgICAgKiAgICAgICAgICAgICAgICAgICAgIHVzaW5nIEpTT04uc3RyaW5naWZ5LiBUaGUgcmVzdWx0aW5nIGV2ZW50IHdpbGwgYmUgcG9wdWxhdGVkIHdpdGggYGZpZWxkc2AgcGFyYW1ldGVyLCBhbmRcbiAgICAgKiAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVkIHdpdGggYWRkaXRpb25hbCBwcm9wZXJ0aWVzLCB0aHVzIGFsc28gZW1wdHkgb2JqZWN0cyBhcmUgdmFsaWQuXG4gICAgICogQHBhcmFtIGV2ZW50Q29udGV4dCBBbiBvcHRpb25hbCBjb250ZXh0IChzZWUge0BsaW5rIGR5bmF0cmFjZS5hZGRFdmVudE1vZGlmaWVyfSkgdGhhdCBjYW4gYmUgdXNlZCB0byBtYW5pcHVsYXRlIHRoZVxuICAgICAqICAgICAgICAgICAgICAgICAgICAgcmVzdWx0IGV2ZW50IHdpdGhpbiB0aGUgbW9kaWZpY2F0aW9uIGNhbGxiYWNrLiBXaWxsIGJlIHByb3ZpZGVkIGFzIEN1c3RvbUV2ZW50Q29udGV4dCBUT0RPXG4gICAgICovXG4gICAgZXhwb3J0IGRlY2xhcmUgZnVuY3Rpb24gc2VuZEJpekV2ZW50KHR5cGU6IHN0cmluZywgZmllbGRzOiBKU09OT2JqZWN0LCBldmVudENvbnRleHQ/OiB1bmtub3duKTogdm9pZDtcblxuICAgIC8qKlxuICAgICAqIE1vZGlmaWVzIGZ1dHVyZSBldmVudHMgd2l0aCB0aGUgcHJvdmlkZWQgbW9kaWZpZXIgZnVuY3Rpb24uIFJldHVybmluZyBhIG5vbi1vYmplY3Qgb3IgYG51bGxgIGRpc2NhcmRzIHRoaXMgZXZlbnRcbiAgICAgKiBhbmQgcHJldmVudHMgZnV0dXJlIG11dGF0b3IgZnVuY3Rpb25zIHRvIGJlIGV4ZWN1dGVkLlxuICAgICAqXG4gICAgICogQ2VydGFpbiByZXNlcnZlZCBmaWVsZHMgYW5kIG5hbWVzcGFjZXMgY2Fu4oCZdCBiZSBtb2RpZmllZCBpbiBhbnkgd2F5IChhZGRlZCwgcmVtb3ZlZCBvciBvdmVycmlkZGVuKSwgd2hpbGUgb3RoZXJzIGFyZSBvcGVuIGZvciBtb2RpZmljYXRpb24uXG4gICAgICogU2VlIHtAbGluayBBbGxvd2VkTW9kaWZpY2F0aW9uRmllbGRzfSBmb3IgZGV0YWlscy5cbiAgICAgKlxuICAgICAqIFRoZSBjb250ZXh0IGRpZmZlcnMgYmFzZWQgb24gdGhlIHByb2Nlc3NlZCBldmVudCBhbmQgYXZhaWxhYmlsaXR5IG9mIGRhdGEuXG4gICAgICogRm9yIGV2ZW50cyBzZW50IHdpdGgge0BsaW5rIGR5bmF0cmFjZS5zZW5kRXZlbnR9LCB0aGUgb3B0aW9uYWxseSBwcm92aWRlZCBjb250ZXh0IHdpbGwgYmUgcHJvdmlkZWQgYXMgY3VzdG9tIGNvbnRleHQuXG4gICAgICogVGhlIGNvbnRleHQgb2JqZWN0IGNvbnRhaW5zIGEgXCJ0eXBlXCIgYW5kIG9wdGlvbmFsbHkgYSBcInN1Yl90eXBlXCIgcGFyYW1ldGVyLCB3aGljaCBjYW4gYmUgdXNlZCB0byBkaXN0aW5ndWlzaCB0aGVtLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogZHluYXRyYWNlLmFkZEV2ZW50TW9kaWZpZXIoZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICogICAgIGlmIChldmVudFtcImV2ZW50LnR5cGVcIl0gIT09IFwiY2xpY2tcIikge1xuICAgICAqICAgICAgICAgcmV0dXJuIGV2ZW50O1xuICAgICAqICAgICB9XG4gICAgICogICAgIHJldHVybiB7XG4gICAgICogICAgICAgICAuLi5ldmVudCxcbiAgICAgKiAgICAgICAgIFwiZXZlbnRfcHJvcGVydGllcy5wcm9wXCI6IFwidmFsdWVcIixcbiAgICAgKiAgICAgICAgIFwidXJsLmZ1bGxcIjogXCJ3d3cuZHluYXRyYWNlLmNvbVwiLFxuICAgICAqICAgICAgICAgXCJ2aWV3LmRldGVjdGVkX25hbWVcIjogXCIxMjM0NTY3ODlcIixcbiAgICAgKiAgICAgfVxuICAgICAqIH0pO1xuICAgICAqXG4gICAgICogLy8gVXNpbmcgY29udGV4dDpcbiAgICAgKiBkeW5hdHJhY2UuYWRkRXZlbnRNb2RpZmllcihmdW5jdGlvbiAoZXZlbnQsIGNvbnRleHQpIHtcbiAgICAgKiAgICAgaWYgKGV2ZW50W1wiZXZlbnQudHlwZVwiXSAhPT0gXCJjbGlja1wiKSB7XG4gICAgICogICAgICAgICByZXR1cm4gZXZlbnQ7XG4gICAgICogICAgIH1cbiAgICAgKiAgICAgaWYgKGNvbnRleHQ/LmFkZGl0aW9uYWxEYXRhKSB7XG4gICAgICogICAgICAgICByZXR1cm4ge1xuICAgICAqICAgICAgICAgICAuLi5ldmVudCxcbiAgICAgKiAgICAgICAgICAgXCJldmVudF9wcm9wZXJ0aWVzLmV4dHJhX2RhdGFcIjogYHJlY2VpdmVkIGV4dHJhIGRhdGE6ICR7Y29udGV4dC5hZGRpdGlvbmFsRGF0YX1gXG4gICAgICogICAgICAgICB9O1xuICAgICAqICAgICB9XG4gICAgICogICAgIHJldHVybiBldmVudDtcbiAgICAgKiB9KTtcbiAgICAgKlxuICAgICAqIC8vIERpc2NhcmRpbmcgYW4gZXZlbnQ6XG4gICAgICogZHluYXRyYWNlLmFkZEV2ZW50TW9kaWZpZXIoZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICogICBpZiAoZXZlbnRbXCJldmVudC50eXBlXCJdID09PSBcImNsaWNrXCIpIHtcbiAgICAgKiAgICAgcmV0dXJuIG51bGw7XG4gICAgICogICB9XG4gICAgICogICByZXR1cm4gZXZlbnQ7XG4gICAgICogfSk7XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZXZlbnRNb2RpZmllciBUaGUgbW9kaWZpZXIgZnVuY3Rpb24gdG8gbW9kaWZ5IGEgZ2l2ZW4gKHJlYWRvbmx5KSBKU09ORXZlbnQuIEl0IHJlY2VpdmVzIGFuIG9wdGlvbmFsIGNvbnRleHRcbiAgICAgKiAgICAgICAgICAgICAgICAgICAgICBkZXBlbmRpbmcgb24gdGhlIHR5cGUgb2YgZXZlbnQsIGlmIGF2YWlsYWJsZS4gVGhlIHJldHVybmVkIGV2ZW50IG11c3QgYmUgYSBuZXcgb2JqZWN0LCBvdGhlcndpc2VcbiAgICAgKiAgICAgICAgICAgICAgICAgICAgICBtb2RpZmljYXRpb24gd2lsbCBiZSBpZ25vcmVkLiBNb2RpZmljYXRpb24gaXMgb25seSBhbGxvd2VkIGZvciBmaWVsZHMgZGVjbGFyZWQgaW5cbiAgICAgKiAgICAgICAgICAgICAgICAgICAgICB7QGxpbmsgQWxsb3dlZE1vZGlmaWNhdGlvbkZpZWxkc30uXG4gICAgICogQHJldHVybnMgICAgICAgICAgICAgVGhlIHVuc3Vic2NyaWJlciBmdW5jdGlvbiB0byB0dXJuIG9mZiBldmVudCBtb2RpZmljYXRpb24uXG4gICAgICovXG4gICAgZXhwb3J0IGRlY2xhcmUgZnVuY3Rpb24gYWRkRXZlbnRNb2RpZmllcihldmVudE1vZGlmaWVyOiAoanNvbkV2ZW50OiBSZWFkb25seTxKU09ORXZlbnQ+LCBldmVudENvbnRleHQ/OiBFdmVudENvbnRleHQpID0+IEpTT05FdmVudCB8IG51bGwpOiBVbnN1YnNjcmliZXI7XG5cbiAgICAvKipcbiAgICAgKiBJZiBub3QgYWxyZWFkeSBlbmFibGVkLCBkeW5hbWljYWxseSBsb2FkcyB0aGUgSGVhbHRoIENoZWNrIG1vZHVsZSB3aGljaCB3aWxsIHJlYWQgYWNjdW11bGF0ZWQgaGVhbHRoIGNoZWNrIGRhdGFcbiAgICAgKiBhbmQgcHJlc2VudCBpdCBpbiB0aGUgYnJvd3NlciBkZXZlbG9wZXIgdG9vbHMgY29uc29sZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjb25maWcgICAgICAgICAgICAgICAgICAgICAgICAgIFRoZSBvcHRpb25hbCBjb25maWd1cmF0aW9uIG9iamVjdCBmb3IgdGhlIGhlYWx0aCBjaGVjay5cbiAgICAgKiBAcGFyYW0gY29uZmlnLmxvZ1ZlcmJvc2UgICAgICAgICAgICAgICBJZiB0cnVlLCB2ZXJib3NlIGluZm9ybWF0aW9uIGlzIGluY2x1ZGVkIGluIHRoZSBoZWFsdGggY2hlY2suXG4gICAgICogQHBhcmFtIGNvbmZpZy5yZXR1cm5EaWFnbm9zdGljRGF0YSAgICAgSWYgdHJ1ZSwgdGhlIGRpYWdub3N0aWMgZGF0YSBpcyByZXR1cm5lZCBhcyBhcnJheSBpbnN0ZWFkIG9mIGp1c3QgYmVpbmcgbG9nZ2VkLlxuICAgICAqIEBwYXJhbSBjb25maWcucnVuRGV0YWlsZWRPdmVycmlkZUNoZWNrIGlmIHRydWUsIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gd2lsbCBiZSBsb2dnZWQgdG8gdGhlIGNvbnNvbGUgZm9yIG92ZXJyaWRkZW4gbmF0aXZlIEFQSXMuXG4gICAgICogQHJldHVybnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQSBwcm9taXNlIHRoYXQgc2V0dGxlcyBhcyBzb29uIGFzIHRoZSBoZWFsdGggY2hlY2sgaGFzIGJlZW4gcGVyZm9ybWVkLlxuICAgICAqL1xuICAgIGV4cG9ydCBkZWNsYXJlIGZ1bmN0aW9uIHJ1bkhlYWx0aENoZWNrKGNvbmZpZz86IEhlYWx0aENoZWNrQ29uZmlnKTogUHJvbWlzZTx1bmtub3duW10gfCB1bmRlZmluZWQ+O1xuXG4gICAgLyoqXG4gICAgICogRW5hYmxlcyBkZWJ1ZyBsb2dnaW5nLlxuICAgICAqXG4gICAgICogQGludGVybmFsIG5vdCBwdWJsaWMgeWV0XG4gICAgICogQHBhcmFtICAgIGxvZ2dpbmdJbmZvcm1hdGlvbiBBbiBvYmplY3QgdGhhdCBzcGVjaWZpZXMgd2hhdCBzaG91bGQgYmUgbG9nZ2VkXG4gICAgICogQHJldHVybnMgICAgICAgICAgICAgICAgICAgICBBIHByb21pc2UgdGhhdCBzZXR0bGVzIGFzIHNvb24gYXMgZGVidWcgbG9nZ2luZyBoYXMgYmVlbiBlbmFibGVkXG4gICAgICovXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBkeW5hdHJhY2UvZGVtLWVzbGludC1ydWxlcy9jb3JyZWN0LW51bGwtdm9pZC11bmRlZmluZWQgLS0gbmVjZXNzYXJ5LCBiZWNhdXNlIHdlIG92ZXJyaWRlIHRoZSBmdW5jdGlvbiBhZnRlciBsb2FkaW5nIHRoZSBoZWFsdGhjaGVjayBtb2R1bGVcbiAgICBleHBvcnQgZGVjbGFyZSBmdW5jdGlvbiBlbmFibGVEZWJ1Z0xvZ2dpbmcobG9nZ2luZ0luZm9ybWF0aW9uOiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPik6IFByb21pc2U8dm9pZD4gfCB2b2lkO1xuXG4gICAgLyoqXG4gICAgICogVXNlIHRvIGlkZW50aWZ5IGluZGl2aWR1YWwgdXNlcnMgYWNyb3NzIGRpZmZlcmVudCBicm93c2VycywgZGV2aWNlcywgYW5kIHVzZXIgc2Vzc2lvbnMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdmFsdWUgVGhlIG5hbWUgb2YgdGhlIHVzZXIuIEZvciBleGFtcGxlLCB1c2UgYSBuYW1lLCB1c2VyaWQsIG9yIHlvdXIgdXNlcidzIGVtYWlsIGFkZHJlc3MuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBkeW5hdHJhY2UuaWRlbnRpZnlVc2VyKFwiam9obi5kb2VAZXhhbXBsZS5jb21cIik7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgZXhwb3J0IGRlY2xhcmUgZnVuY3Rpb24gaWRlbnRpZnlVc2VyKHZhbHVlOiBzdHJpbmcpOiB2b2lkO1xuXG4gICAgLyoqXG4gICAgICogR3JhbnRzIGNvbnNlbnQgZm9yIGRhdGEgY29sbGVjdGlvbi5cbiAgICAgKlxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIGV4cG9ydCBkZWNsYXJlIGZ1bmN0aW9uIHVzZXJPcHRJbigpOiB2b2lkO1xuXG4gICAgLyoqXG4gICAgICogUmV2b2tlcyBjb25zZW50IGZvciBkYXRhIGNvbGxlY3Rpb24uXG4gICAgICpcbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBleHBvcnQgZGVjbGFyZSBmdW5jdGlvbiB1c2VyT3B0T3V0KCk6IHZvaWQ7XG5cbiAgICAvKipcbiAgICAgKiBTZW5kcyBhIHNlc3Npb25Qcm9wZXJ0eUV2ZW50LlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogZHluYXRyYWNlLnNlbmRTZXNzaW9uUHJvcGVydHlFdmVudCh7XG4gICAgICogICAgIFwic2Vzc2lvbl9wcm9wZXJ0aWVzLnNvbWVfY3VzdG9tXCI6IHRydWUsXG4gICAgICogICAgIFwic2Vzc2lvbl9wcm9wZXJ0aWVzLm15X2lkXCI6IFwibTEyMzQ1NlwiLFxuICAgICAqICAgICBcInNlc3Npb25fcHJvcGVydGllcy5teV9vdGhlcl9pZF8yXCI6IFwieDEyM1wiLFxuICAgICAqICAgICBcInNlc3Npb25fcHJvcGVydGllcy5teV9mdWxseV9vdGhlci5pZDNcIjogXCJpZDAwN1wiLFxuICAgICAqIH0pO1xuICAgICAqYGBgXG4gICAgICogQHBhcmFtIGZpZWxkcyBNdXN0IGJlIGEgdmFsaWQgSlNPTiBvYmplY3QgYW5kIGNhbm5vdCBjb250YWluIGZ1bmN0aW9ucywgdW5kZWZpbmVkLCBJbmZpbml0eSBhbmQgTmFOIGFzXG4gICAgICogICAgICAgICAgICAgICB2YWx1ZXMsIG90aGVyd2lzZSB0aGV5IHdpbGwgYmUgcmVwbGFjZWQgd2l0aCBudWxsLiBUaGUgYGZpZWxkc2AgbmVlZCB0byBiZSBzZXJpYWxpemFibGVcbiAgICAgKiAgICAgICAgICAgICAgIHVzaW5nIEpTT04uc3RyaW5naWZ5LiBUaGUgcmVzdWx0aW5nIGV2ZW50IHdpbGwgYmUgcG9wdWxhdGVkIHdpdGggYGZpZWxkc2AgcGFyYW1ldGVyLCBhbmRcbiAgICAgKiAgICAgICAgICAgICAgIGlzIG1vZGlmaWVkIHdpdGggYWRkaXRpb25hbCBwcm9wZXJ0aWVzLCB0aHVzIGFsc28gZW1wdHkgb2JqZWN0cyBhcmUgdmFsaWQuIE9ubHkgcHJvcGVydGllc1xuICAgICAqICAgICAgICAgICAgICAgcHJlZml4ZWQgd2l0aCBgc2Vzc2lvbl9wcm9wZXJ0aWVzLmAsIHRoZSBgZHVyYXRpb25gIHByb3BlcnR5IGFuZCB0aGUgYHN0YXJ0X3RpbWVgIHByb3BlcnR5IGFyZVxuICAgICAqICAgICAgICAgICAgICAgYWxsb3dlZC4gU3RyaW5nIHByb3BlcnRpZXMgYXJlIGxpbWl0ZWQgdG8gNTAwMCBjaGFyYWN0ZXJzLCBleGNlZWRpbmcgY2hhcmFjdGVycyBhcmUgY3V0IG9mZi5cbiAgICAgKiAgICAgICAgICAgICAgIEFsbCBzZXNzaW9uIHByb3BlcnR5IGtleSBuYW1lcyBtdXN0IG1hdGNoIHRoZSBuYW1pbmcgcnVsZXMgZGVmaW5lZCBieSB7QGxpbmsgVkFMSURfS0VZX1JFR0VYfS5cbiAgICAgKi9cbiAgICBleHBvcnQgZGVjbGFyZSBmdW5jdGlvbiBzZW5kU2Vzc2lvblByb3BlcnR5RXZlbnQoZmllbGRzOiBBcGlDcmVhdGVkU2Vzc2lvblByb3BlcnRpZXNFdmVudCk6IHZvaWQ7XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGZ1bmN0aW9uIGlzIG9ubHkgYXZhaWxhYmxlIGlmIHRoZSBFcnJvciBtb2R1bGUgaXMgZW5hYmxlZFxuICAgICAqXG4gICAgICogQHBhcmFtIGVycm9yICBNdXN0IGJlIGEgdmFsaWQgaW5zdGFuY2Ugb2YgdGhlIEVycm9yIGNsYXNzLiBJZiBhbiBpbnZhbGlkIHZhbHVlIGlzIHByb3ZpZGVkLCB0aGUgZXJyb3Igd2lsbCBub3QgYmUgcHJvY2Vzc2VkIG9yIHNlbnQuXG4gICAgICogQHBhcmFtIGZpZWxkcyBPcHRpb25hbDogTXVzdCBiZSBhIHZhbGlkIEpTT04gb2JqZWN0IGFuZCBjYW5ub3QgY29udGFpbiBmdW5jdGlvbnMsIHVuZGVmaW5lZCwgSW5maW5pdHkgYW5kIE5hTiBhc1xuICAgICAqICAgICAgICAgICAgICAgdmFsdWVzLCBvdGhlcndpc2UgdGhleSB3aWxsIGJlIHJlcGxhY2VkIHdpdGggbnVsbC4gVGhlIGBmaWVsZHNgIG5lZWQgdG8gYmUgc2VyaWFsaXphYmxlXG4gICAgICogICAgICAgICAgICAgICB1c2luZyBKU09OLnN0cmluZ2lmeS4gVGhlIHJlc3VsdGluZyBldmVudCB3aWxsIGNvbnRhaW4gdGhlIHByb3ZpZGVkIGBmaWVsZHNgLCBhbmQgaXNcbiAgICAgKiAgICAgICAgICAgICAgIG1vZGlmaWVkIHdpdGggYWRkaXRpb25hbCBwcm9wZXJ0aWVzLCB0aHVzIGFsc28gZW1wdHkgb2JqZWN0cyBhcmUgdmFsaWQuIE9ubHkgcHJvcGVydGllc1xuICAgICAqICAgICAgICAgICAgICAgcHJlZml4ZWQgd2l0aCBgZXZlbnRfcHJvcGVydGllcy5gLCB0aGUgYGR1cmF0aW9uYCBwcm9wZXJ0eSBhbmQgdGhlIGBzdGFydF90aW1lYCBwcm9wZXJ0eSBhcmVcbiAgICAgKiAgICAgICAgICAgICAgIGFsbG93ZWQuIFN0cmluZyBwcm9wZXJ0aWVzIGFyZSBsaW1pdGVkIHRvIDUwMDAgY2hhcmFjdGVycywgZXhjZWVkaW5nIGNoYXJhY3RlcnMgYXJlIGN1dCBvZmYuXG4gICAgICogICAgICAgICAgICAgICBBbGwgZXZlbnQgcHJvcGVydHkga2V5IG5hbWVzIG11c3QgbWF0Y2ggdGhlIG5hbWluZyBydWxlcyBkZWZpbmVkIGJ5IHtAbGluayBWQUxJRF9LRVlfUkVHRVh9LlxuICAgICAqL1xuICAgIGV4cG9ydCBkZWNsYXJlIGxldCBzZW5kRXhjZXB0aW9uRXZlbnQ6ICgoZXJyb3I6IEVycm9yLCBmaWVsZHM/OiBBcGlDcmVhdGVkRXZlbnRQcm9wZXJ0aWVzRXZlbnQpID0+IHZvaWQpIHwgdW5kZWZpbmVkO1xuXG4gICAgLyoqXG4gICAgICogVGhpcyBwcm9wZXJ0eSBpcyBgdW5kZWZpbmVkYCBpZiB0aGUgVXNlciBJbnRlcmFjdGlvbiBtb2R1bGUgaXMgZGlzYWJsZWQuXG4gICAgICpcbiAgICAgKiBAZXhwZXJpbWVudGFsXG4gICAgICovXG4gICAgZXhwb3J0IGRlY2xhcmUgbGV0IGludGVyYWN0aW9uczogSW50ZXJhY3Rpb25zIHwgdW5kZWZpbmVkO1xuXG4gICAgLyoqXG4gICAgICogVGhpcyBwcm9wZXJ0eSBpcyBgdW5kZWZpbmVkYCBpZiB0aGUgVXNlciBBY3Rpb25zIG1vZHVsZSBpcyBkaXNhYmxlZC5cbiAgICAgKlxuICAgICAqIEBleHBlcmltZW50YWxcbiAgICAgKi9cbiAgICBleHBvcnQgZGVjbGFyZSBsZXQgdXNlckFjdGlvbnM6IFVzZXJBY3Rpb25zIHwgdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIEBleHBlcmltZW50YWxcbiAqIEBjYXRlZ29yeSBVc2VyIEFjdGlvbnNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBVc2VyQWN0aW9ucyB7XG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIG5ldyBjb250cm9sbGFibGUgdXNlciBhY3Rpb24uXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBjb25zdCB1c2VyQWN0aW9uID0gZHluYXRyYWNlLnVzZXJBY3Rpb25zLmNyZWF0ZSh7IGNvbXBsZXRlQXV0b21hdGljYWxseTogZmFsc2UgfSk7XG4gICAgICogY29uc3QgdW5zdWJzY3JpYmUgPSB1c2VyQWN0aW9uLnN1YnNjcmliZShjdXJyZW50VXNlckFjdGlvbiA9PiB7XG4gICAgICogICAgIGNvbnNvbGUubG9nKGBVc2VyIGFjdGlvbiB3b3VsZCBoYXZlIGJlZW4gY29tcGxldGVkIGR1ZSB0byAke2N1cnJlbnRVc2VyQWN0aW9uLmNvbXBsZXRlUmVhc29ufWAsIGV2ZW50KTtcbiAgICAgKiB9KTtcbiAgICAgKiAvLyBleGVjdXRlIHVzZXIgYWN0aW9uc1xuICAgICAqIHVzZXJBY3Rpb24uY29tcGxldGUoKTtcbiAgICAgKiB1bnN1YnNjcmliZSgpO1xuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogQGV4cGVyaW1lbnRhbFxuICAgICAqIEBwYXJhbSBvcHRpb25zICAgICAgICAgICAgICAgICAgICAgICBBbiBvcHRpb25hbCBvcHRpb25zIG9iamVjdCB0byBjb25maWd1cmUgdGhlIHVzZXIgYWN0aW9uLlxuICAgICAqIEBwYXJhbSBvcHRpb25zLmNvbXBsZXRlQXV0b21hdGljYWxseSBJZiB0cnVlLCBhdXRvbWF0aWNhbGx5IGNvbXBsZXRlcyB0aGUgdXNlciBhY3Rpb24gdXNpbmcgUlVNIEphdmFTY3JpcHQgdXNlciBhY3Rpb24gcnVsZXMuXG4gICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIGZhbHNlLCB0aGUgdXNlciBhY3Rpb24gcmVtYWlucyBhY3RpdmUgdW50aWwgdGhlIG5leHQgY2FsbCB0byBgY3JlYXRlKC4uLilgIG9yIHRvIGB1c2VyQWN0aW9uLmNvbXBsZXRlKClgLlxuICAgICAqIEByZXR1cm5zICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBbiBgVXNlckFjdGlvblRyYWNrZXJgIG9iamVjdCB0aGF0IGNhbiBiZSBzdGFydGVkIGFuZCBjb21wbGV0ZWQsIG9yIGB1bmRlZmluZWRgIGlmIHRoZSB1c2VyIGFjdGlvbiBtb2R1bGUgaXMgbm90IGVuYWJsZWQuXG4gICAgICovXG4gICAgY3JlYXRlKHRoaXM6IHZvaWQsIG9wdGlvbnM/OiBVc2VyQWN0aW9uU3RhcnRPcHRpb25zKTogVXNlckFjdGlvblRyYWNrZXI7XG5cbiAgICAvKipcbiAgICAgKiBTdWJzY3JpYmVzIHRvIHVzZXIgYWN0aW9ucy5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIGNvbnN0IHVuc3Vic2NyaWJlID0gZHluYXRyYWNlLnVzZXJBY3Rpb25zPy5zdWJzY3JpYmUodXNlckFjdGlvbiA9PiB7XG4gICAgICogICAgIC8vIERpc2FibGUgYXV0b21hdGljIHVzZXJBY3Rpb24gY29tcGxldGlvblxuICAgICAqICAgICB1c2VyQWN0aW9uLmNvbXBsZXRlQXV0b21hdGljYWxseSA9IGZhbHNlO1xuICAgICAqICAgICAvLyBFeGVjdXRlIHNvbWUgcmVxdWVzdHMgb3IgbXV0YXRpb25zLCB0aGVuIGNvbXBsZXRlIHRoZSB1c2VyIGFjdGlvblxuICAgICAqICAgICB1c2VyQWN0aW9uLmNvbXBsZXRlKCk7XG4gICAgICogfSk7XG4gICAgICogLy8gU29tZSB0aW1lIGxhdGVyIGlmIHlvdSBkb24ndCB3YW50IHRvIGxpc3RlbiB0byB1c2VyQWN0aW9ucyBhbnltb3JlXG4gICAgICogdW5zdWJzY3JpYmUoKTtcbiAgICAgKiBgYGBcbiAgICAgKlxuICAgICAqIEBleHBlcmltZW50YWxcbiAgICAgKiBAcGFyYW0gc3Vic2NyaWJlciBBIGNhbGxiYWNrIGZ1bmN0aW9uIHRoYXQgaXMgY2FsbGVkIHdoZW5ldmVyIER5bmF0cmFjZSBjcmVhdGVzIGEgbmV3IHVzZXIgYWN0aW9uLlxuICAgICAqIEByZXR1cm5zICAgICAgICAgIEFuIHVuc3Vic2NyaWJlciBmdW5jdGlvbiB0byByZW1vdmUgdGhlIHN1YnNjcmlwdGlvbi5cbiAgICAgKi9cbiAgICBzdWJzY3JpYmUodGhpczogdm9pZCwgc3Vic2NyaWJlcjogKHVzZXJBY3Rpb246IFVzZXJBY3Rpb25UcmFja2VyKSA9PiB2b2lkKTogVW5zdWJzY3JpYmVyO1xuXG4gICAgLyoqXG4gICAgICogRGlzYWJsZXMgYXV0b21hdGljIHVzZXIgYWN0aW9uIGRldGVjdGlvbi4gVXNlZnVsIGluIGNhc2UgaXQgaW50ZXJmZXJlcyB3aXRoIG1hbnVhbCB1c2VyIGFjdGlvbiBoYW5kbGluZy5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIGR5bmF0cmFjZS51c2VyQWN0aW9ucz8uc2V0QXV0b21hdGljRGV0ZWN0aW9uKGZhbHNlKTtcbiAgICAgKlxuICAgICAqIGFzeW5jIGZ1bmN0aW9uIGhhbmRsZUNsaWNrKHJvdXRlcikge1xuICAgICAqICAgICBjb25zdCB1c2VyQWN0aW9uID0gZHluYXRyYWNlLnVzZXJBY3Rpb25zPy5jcmVhdGUoeyBjb21wbGV0ZUF1dG9tYXRpY2FsbHk6IGZhbHNlIH0pO1xuICAgICAqICAgICAvLyB0aGlzIHdvdWxkIG5vcm1hbGx5IGNyZWF0ZSBhbiB1c2VyIGFjdGlvbiB0aGF0IHdvdWxkIGZpbmlzaCB0aGlzIG1hbnVhbCB1c2VyIGFjdGlvblxuICAgICAqICAgICBhd2FpdCByb3V0ZXIucmVkaXJlY3QoXCJob21lXCIpO1xuICAgICAqICAgICB1c2VyQWN0aW9uLmNvbXBsZXRlKCk7XG4gICAgICogfVxuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogQGV4cGVyaW1lbnRhbFxuICAgICAqIEBwYXJhbSBhdXRvbWF0aWNEZXRlY3Rpb24gSWYgZmFsc2UsIGRpc2FibGVzIGF1dG9tYXRpYyB1c2VyIGFjdGlvbiBkZXRlY3Rpb24sIG90aGVyd2lzZSBlbmFibGVzIGl0LlxuICAgICAqL1xuICAgIHNldEF1dG9tYXRpY0RldGVjdGlvbih0aGlzOiB2b2lkLCBhdXRvbWF0aWNEZXRlY3Rpb246IGJvb2xlYW4pOiB2b2lkO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGN1cnJlbnQgdXNlciBhY3Rpb24sIG9yIGB1bmRlZmluZWRgIGlmIG5vIHVzZXIgYWN0aW9uIGlzIGluIHByb2dyZXNzLlxuICAgICAqXG4gICAgICogQGV4cGVyaW1lbnRhbFxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIGFzeW5jIGZ1bmN0aW9uIHBvc3RNZXNzYWdlQ2hhbm5lbChtZXNzYWdlLCBjaGFubmVsKSB7XG4gICAgICogICBjb25zdCBjdXJyZW50VXNlckFjdGlvbiA9IGR5bmF0cmFjZS51c2VyQWN0aW9ucz8uY3VycmVudDtcbiAgICAgKiAgIGlmIChjdXJyZW50VXNlckFjdGlvbikge1xuICAgICAqICAgICAgY3VycmVudFVzZXJBY3Rpb24uY29tcGxldGVBdXRvbWF0aWNhbGx5ID0gZmFsc2U7XG4gICAgICogICB9XG4gICAgICogICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNoYW5uZWwuc2VuZChtZXNzYWdlKTtcbiAgICAgKiAgIGN1cnJlbnRVc2VyQWN0aW9uPy5jb21wbGV0ZSgpO1xuICAgICAqICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAqIH1cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBjdXJyZW50OiBVc2VyQWN0aW9uVHJhY2tlciB8IHVuZGVmaW5lZDtcbn1cbiJdfQ==
@@ -9,6 +9,7 @@ export * from "./rum-events/event-context/event-context.js";
9
9
  export * from "./rum-events/rum-event.js";
10
10
  export * from "./rum-events/event-updates.js";
11
11
  export * from "./rum-events/json-event.js";
12
+ export * from "./rum-events/open-fields.js";
12
13
  export * from "./rum-events/rum-biz-event.js";
13
14
  export * from "./rum-events/rum-event-keys.js";
14
15
  export * from "./rum-events/schema-versions.js";
@@ -9,6 +9,7 @@ export * from "./rum-events/event-context/event-context.js";
9
9
  export * from "./rum-events/rum-event.js";
10
10
  export * from "./rum-events/event-updates.js";
11
11
  export * from "./rum-events/json-event.js";
12
+ export * from "./rum-events/open-fields.js";
12
13
  export * from "./rum-events/rum-biz-event.js";
13
14
  export * from "./rum-events/rum-event-keys.js";
14
15
  export * from "./rum-events/schema-versions.js";
@@ -33,4 +34,4 @@ export * from "./rum-events/shared-namespaces-and-fields/page-source-fields.js";
33
34
  export * from "./rum-events/shared-namespaces-and-fields/view-source-fields.js";
34
35
  export * from "./rum-events/shared-namespaces-and-fields/general-rum-error-fields.js";
35
36
  export * from "./rum-events/shared-namespaces-and-fields/general-rum-event-fields.js";
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgtdHlwZWRvYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NvdXJjZS90eXBlcy9pbmRleC10eXBlZG9jLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYyxtREFBbUQsQ0FBQztBQUNsRSxjQUFjLHlEQUF5RCxDQUFDO0FBQ3hFLGNBQWMseURBQXlELENBQUM7QUFDeEUsY0FBYyw2REFBNkQsQ0FBQztBQUM1RSxjQUFjLDZEQUE2RCxDQUFDO0FBQzVFLGNBQWMsK0RBQStELENBQUM7QUFDOUUsY0FBYyxnRUFBZ0UsQ0FBQztBQUMvRSxjQUFjLGlFQUFpRSxDQUFDO0FBQ2hGLGNBQWMsaUVBQWlFLENBQUM7QUFDaEYsY0FBYyx1RUFBdUUsQ0FBQztBQUN0RixjQUFjLHVFQUF1RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbW9kdWxlIFR5cGVzXG4gKi9cbmV4cG9ydCAqIGZyb20gXCIuL2FwaS9keW5hdHJhY2UtYXBpLXR5cGVzLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi91c2VyLWFjdGlvbnMvdXNlci1hY3Rpb24tdHJhY2tlci5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vdXNlci1hY3Rpb25zL3VzZXItYWN0aW9uLWVuZC1ldmVudC5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vdXNlci1hY3Rpb25zL3VzZXItYWN0aW9uLXN0YXJ0LW9wdGlvbnMuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3J1bS1ldmVudHMvZXZlbnQtY29udGV4dC9ldmVudC1jb250ZXh0LmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9ydW0tZXZlbnRzL3J1bS1ldmVudC5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcnVtLWV2ZW50cy9ldmVudC11cGRhdGVzLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9ydW0tZXZlbnRzL2pzb24tZXZlbnQuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3J1bS1ldmVudHMvcnVtLWJpei1ldmVudC5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcnVtLWV2ZW50cy9ydW0tZXZlbnQta2V5cy5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcnVtLWV2ZW50cy9zY2hlbWEtdmVyc2lvbnMuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3J1bS1ldmVudHMvcnVtLXVzZXItYWN0aW9uLWV2ZW50LmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9ydW0tZXZlbnRzL3J1bS1sb25nLXRhc2stZXZlbnQuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3J1bS1ldmVudHMvcnVtLXdlYi1yZXF1ZXN0LWV2ZW50LmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9ydW0tZXZlbnRzL3J1bS1wYWdlLXN1bW1hcnktZXZlbnQuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3J1bS1ldmVudHMvcnVtLXNlbGZtb25pdG9yaW5nLWV2ZW50LmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9ydW0tZXZlbnRzL3J1bS11c2VyLWludGVyYWN0aW9uLWV2ZW50LmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9ydW0tZXZlbnRzL3J1bS12aXNpYmlsaXR5LWNoYW5nZS1ldmVudC5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcnVtLWV2ZW50cy9ydW0tc2Vzc2lvbi1wcm9wZXJ0aWVzLWV2ZW50LmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9ydW0tZXZlbnRzL3J1bS1zdGFuZGFsb25lLWV4Y2VwdGlvbi1ldmVudC5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcnVtLWV2ZW50cy9ydW0tc3RhbmRhbG9uZS1uYXZpZ2F0aW9uLWV2ZW50LmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9ydW0tZXZlbnRzL3J1bS1pbnRlcm5hbC1zZWxmbW9uaXRvcmluZy1ldmVudC5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcnVtLWV2ZW50cy9ydW0tc3RhbmRhbG9uZS1jc3AtcnVsZS12aW9sYXRpb24tZXZlbnQuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3J1bS1ldmVudHMvc2hhcmVkLW5hbWVzcGFjZXMtYW5kLWZpZWxkcy9jc3AtZmllbGRzLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9ydW0tZXZlbnRzL3NoYXJlZC1uYW1lc3BhY2VzLWFuZC1maWVsZHMvaHR0cC1uYW1lc3BhY2UuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3J1bS1ldmVudHMvc2hhcmVkLW5hbWVzcGFjZXMtYW5kLWZpZWxkcy9yZXF1ZXN0LWZpZWxkcy5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcnVtLWV2ZW50cy9zaGFyZWQtbmFtZXNwYWNlcy1hbmQtZmllbGRzL2V4Y2VwdGlvbi1maWVsZHMuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3J1bS1ldmVudHMvc2hhcmVkLW5hbWVzcGFjZXMtYW5kLWZpZWxkcy9uYXZpZ2F0aW9uLWZpZWxkcy5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcnVtLWV2ZW50cy9zaGFyZWQtbmFtZXNwYWNlcy1hbmQtZmllbGRzL3BhZ2Utc291cmNlLWZpZWxkcy5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcnVtLWV2ZW50cy9zaGFyZWQtbmFtZXNwYWNlcy1hbmQtZmllbGRzL3ZpZXctc291cmNlLWZpZWxkcy5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcnVtLWV2ZW50cy9zaGFyZWQtbmFtZXNwYWNlcy1hbmQtZmllbGRzL2dlbmVyYWwtcnVtLWVycm9yLWZpZWxkcy5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcnVtLWV2ZW50cy9zaGFyZWQtbmFtZXNwYWNlcy1hbmQtZmllbGRzL2dlbmVyYWwtcnVtLWV2ZW50LWZpZWxkcy5qc1wiO1xuIl19
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgtdHlwZWRvYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NvdXJjZS90eXBlcy9pbmRleC10eXBlZG9jLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsZ0RBQWdELENBQUM7QUFDL0QsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLG1EQUFtRCxDQUFDO0FBQ2xFLGNBQWMseURBQXlELENBQUM7QUFDeEUsY0FBYyx5REFBeUQsQ0FBQztBQUN4RSxjQUFjLDZEQUE2RCxDQUFDO0FBQzVFLGNBQWMsNkRBQTZELENBQUM7QUFDNUUsY0FBYywrREFBK0QsQ0FBQztBQUM5RSxjQUFjLGdFQUFnRSxDQUFDO0FBQy9FLGNBQWMsaUVBQWlFLENBQUM7QUFDaEYsY0FBYyxpRUFBaUUsQ0FBQztBQUNoRixjQUFjLHVFQUF1RSxDQUFDO0FBQ3RGLGNBQWMsdUVBQXVFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgVHlwZXNcbiAqL1xuZXhwb3J0ICogZnJvbSBcIi4vYXBpL2R5bmF0cmFjZS1hcGktdHlwZXMuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3VzZXItYWN0aW9ucy91c2VyLWFjdGlvbi10cmFja2VyLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi91c2VyLWFjdGlvbnMvdXNlci1hY3Rpb24tZW5kLWV2ZW50LmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi91c2VyLWFjdGlvbnMvdXNlci1hY3Rpb24tc3RhcnQtb3B0aW9ucy5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcnVtLWV2ZW50cy9ldmVudC1jb250ZXh0L2V2ZW50LWNvbnRleHQuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3J1bS1ldmVudHMvcnVtLWV2ZW50LmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9ydW0tZXZlbnRzL2V2ZW50LXVwZGF0ZXMuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3J1bS1ldmVudHMvanNvbi1ldmVudC5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcnVtLWV2ZW50cy9vcGVuLWZpZWxkcy5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcnVtLWV2ZW50cy9ydW0tYml6LWV2ZW50LmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9ydW0tZXZlbnRzL3J1bS1ldmVudC1rZXlzLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9ydW0tZXZlbnRzL3NjaGVtYS12ZXJzaW9ucy5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcnVtLWV2ZW50cy9ydW0tdXNlci1hY3Rpb24tZXZlbnQuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3J1bS1ldmVudHMvcnVtLWxvbmctdGFzay1ldmVudC5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcnVtLWV2ZW50cy9ydW0td2ViLXJlcXVlc3QtZXZlbnQuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3J1bS1ldmVudHMvcnVtLXBhZ2Utc3VtbWFyeS1ldmVudC5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcnVtLWV2ZW50cy9ydW0tc2VsZm1vbml0b3JpbmctZXZlbnQuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3J1bS1ldmVudHMvcnVtLXVzZXItaW50ZXJhY3Rpb24tZXZlbnQuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3J1bS1ldmVudHMvcnVtLXZpc2liaWxpdHktY2hhbmdlLWV2ZW50LmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9ydW0tZXZlbnRzL3J1bS1zZXNzaW9uLXByb3BlcnRpZXMtZXZlbnQuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3J1bS1ldmVudHMvcnVtLXN0YW5kYWxvbmUtZXhjZXB0aW9uLWV2ZW50LmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9ydW0tZXZlbnRzL3J1bS1zdGFuZGFsb25lLW5hdmlnYXRpb24tZXZlbnQuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3J1bS1ldmVudHMvcnVtLWludGVybmFsLXNlbGZtb25pdG9yaW5nLWV2ZW50LmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9ydW0tZXZlbnRzL3J1bS1zdGFuZGFsb25lLWNzcC1ydWxlLXZpb2xhdGlvbi1ldmVudC5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcnVtLWV2ZW50cy9zaGFyZWQtbmFtZXNwYWNlcy1hbmQtZmllbGRzL2NzcC1maWVsZHMuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3J1bS1ldmVudHMvc2hhcmVkLW5hbWVzcGFjZXMtYW5kLWZpZWxkcy9odHRwLW5hbWVzcGFjZS5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcnVtLWV2ZW50cy9zaGFyZWQtbmFtZXNwYWNlcy1hbmQtZmllbGRzL3JlcXVlc3QtZmllbGRzLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9ydW0tZXZlbnRzL3NoYXJlZC1uYW1lc3BhY2VzLWFuZC1maWVsZHMvZXhjZXB0aW9uLWZpZWxkcy5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcnVtLWV2ZW50cy9zaGFyZWQtbmFtZXNwYWNlcy1hbmQtZmllbGRzL25hdmlnYXRpb24tZmllbGRzLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9ydW0tZXZlbnRzL3NoYXJlZC1uYW1lc3BhY2VzLWFuZC1maWVsZHMvcGFnZS1zb3VyY2UtZmllbGRzLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9ydW0tZXZlbnRzL3NoYXJlZC1uYW1lc3BhY2VzLWFuZC1maWVsZHMvdmlldy1zb3VyY2UtZmllbGRzLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9ydW0tZXZlbnRzL3NoYXJlZC1uYW1lc3BhY2VzLWFuZC1maWVsZHMvZ2VuZXJhbC1ydW0tZXJyb3ItZmllbGRzLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9ydW0tZXZlbnRzL3NoYXJlZC1uYW1lc3BhY2VzLWFuZC1maWVsZHMvZ2VuZXJhbC1ydW0tZXZlbnQtZmllbGRzLmpzXCI7XG4iXX0=
@@ -1,3 +1,4 @@
1
+ export * from "./open-fields.js";
1
2
  export * from "./rum-event-keys.js";
2
3
  export * from "./json-event.js";
3
4
  export * from "./rum-user-action-event.js";
@@ -1,3 +1,4 @@
1
+ export * from "./open-fields.js";
1
2
  export * from "./rum-event-keys.js";
2
3
  export * from "./json-event.js";
3
4
  export * from "./rum-user-action-event.js";
@@ -18,4 +19,4 @@ export * from "./schema-versions.js";
18
19
  export * from "./event-updates.js";
19
20
  export * from "./event-context/index.js";
20
21
  export * from "./shared-namespaces-and-fields/index.js";
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zb3VyY2UvdHlwZXMvcnVtLWV2ZW50cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHFCQUFxQixDQUFDO0FBRXBDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxvQkFBb0IsQ0FBQztBQUVuQyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMseUNBQXlDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9ydW0tZXZlbnQta2V5cy5qc1wiO1xuXG5leHBvcnQgKiBmcm9tIFwiLi9qc29uLWV2ZW50LmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9ydW0tdXNlci1hY3Rpb24tZXZlbnQuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3J1bS1iaXotZXZlbnQuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3J1bS1ldmVudC5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcnVtLWludGVybmFsLXNlbGZtb25pdG9yaW5nLWV2ZW50LmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9ydW0tbG9uZy10YXNrLWV2ZW50LmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9ydW0tcGFnZS1zdW1tYXJ5LWV2ZW50LmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9ydW0tc2VsZm1vbml0b3JpbmctZXZlbnQuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3J1bS1zZXNzaW9uLXByb3BlcnRpZXMtZXZlbnQuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3J1bS1zdGFuZGFsb25lLWNzcC1ydWxlLXZpb2xhdGlvbi1ldmVudC5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcnVtLXN0YW5kYWxvbmUtZXhjZXB0aW9uLWV2ZW50LmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9ydW0tc3RhbmRhbG9uZS1uYXZpZ2F0aW9uLWV2ZW50LmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9ydW0tdXNlci1pbnRlcmFjdGlvbi1ldmVudC5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcnVtLXZpc2liaWxpdHktY2hhbmdlLWV2ZW50LmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9ydW0td2ViLXJlcXVlc3QtZXZlbnQuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NjaGVtYS12ZXJzaW9ucy5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vZXZlbnQtdXBkYXRlcy5qc1wiO1xuXG5leHBvcnQgKiBmcm9tIFwiLi9ldmVudC1jb250ZXh0L2luZGV4LmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zaGFyZWQtbmFtZXNwYWNlcy1hbmQtZmllbGRzL2luZGV4LmpzXCI7XG4iXX0=
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zb3VyY2UvdHlwZXMvcnVtLWV2ZW50cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMscUJBQXFCLENBQUM7QUFFcEMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLG9CQUFvQixDQUFDO0FBRW5DLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyx5Q0FBeUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL29wZW4tZmllbGRzLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9ydW0tZXZlbnQta2V5cy5qc1wiO1xuXG5leHBvcnQgKiBmcm9tIFwiLi9qc29uLWV2ZW50LmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9ydW0tdXNlci1hY3Rpb24tZXZlbnQuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3J1bS1iaXotZXZlbnQuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3J1bS1ldmVudC5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcnVtLWludGVybmFsLXNlbGZtb25pdG9yaW5nLWV2ZW50LmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9ydW0tbG9uZy10YXNrLWV2ZW50LmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9ydW0tcGFnZS1zdW1tYXJ5LWV2ZW50LmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9ydW0tc2VsZm1vbml0b3JpbmctZXZlbnQuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3J1bS1zZXNzaW9uLXByb3BlcnRpZXMtZXZlbnQuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3J1bS1zdGFuZGFsb25lLWNzcC1ydWxlLXZpb2xhdGlvbi1ldmVudC5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcnVtLXN0YW5kYWxvbmUtZXhjZXB0aW9uLWV2ZW50LmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9ydW0tc3RhbmRhbG9uZS1uYXZpZ2F0aW9uLWV2ZW50LmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9ydW0tdXNlci1pbnRlcmFjdGlvbi1ldmVudC5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcnVtLXZpc2liaWxpdHktY2hhbmdlLWV2ZW50LmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9ydW0td2ViLXJlcXVlc3QtZXZlbnQuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NjaGVtYS12ZXJzaW9ucy5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vZXZlbnQtdXBkYXRlcy5qc1wiO1xuXG5leHBvcnQgKiBmcm9tIFwiLi9ldmVudC1jb250ZXh0L2luZGV4LmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zaGFyZWQtbmFtZXNwYWNlcy1hbmQtZmllbGRzL2luZGV4LmpzXCI7XG4iXX0=
@@ -48,12 +48,6 @@ type WritableFields = Pick<GeneralRumEventFields, RumEventKeys.DURATION | RumEve
48
48
  * @ignore
49
49
  */
50
50
  export type ApiCreatedAllowedGenerationFields = Partial<WritableFields>;
51
- /**
52
- * Event fields that area allowed to be modified using {@link dynatrace.addEventModifier}.
53
- *
54
- * @category API
55
- */
56
- export type AllowedModificationFields = `event_properties.${string}` | `md.${string | number}` | `session_properties.${string}` | RumEventKeys.CSP$STACK_TRACE | RumEventKeys.EXCEPTION$STACK_TRACE | RumEventKeys.PAGE$DETECTED_NAME | RumEventKeys.PAGE$URL$FULL | RumEventKeys.VIEW$DETECTED_NAME | RumEventKeys.VIEW$URL$FULL | RumEventKeys.URL$FULL | RumEventKeys.DRAG_ELEMENT$DETECTED_NAME | RumEventKeys.FORM_ELEMENT$DETECTED_NAME | RumEventKeys.LABEL_ELEMENT$DETECTED_NAME | RumEventKeys.UI_ELEMENT$DETECTED_NAME | RumEventKeys.VIEW$SOURCE$DETECTED_NAME;
57
51
  /**
58
52
  * @inline
59
53
  * @ignore
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbi1ldmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NvdXJjZS90eXBlcy9ydW0tZXZlbnRzL2pzb24tZXZlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEBkeW5hdHJhY2UvZGVtLWVzbGludC1ydWxlcy91bmlvbi10eXBlIC0tIGtlZXAgc3BlYyBvcmRlciAqL1xuaW1wb3J0IHR5cGUgeyBHZW5lcmFsUnVtRXZlbnRGaWVsZHMgfSBmcm9tIFwiLi9zaGFyZWQtbmFtZXNwYWNlcy1hbmQtZmllbGRzL2dlbmVyYWwtcnVtLWV2ZW50LWZpZWxkcy5qc1wiO1xuaW1wb3J0IHR5cGUgeyBSVU1FdmVudCB9IGZyb20gXCIuL3J1bS1ldmVudC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBSdW1FdmVudEtleXMgfSBmcm9tIFwiLi9ydW0tZXZlbnQta2V5cy5qc1wiO1xuaW1wb3J0IHR5cGUgeyBSVU1JbnRlcm5hbFNlbGZtb25pdG9yaW5nRXZlbnQgfSBmcm9tIFwiLi9ydW0taW50ZXJuYWwtc2VsZm1vbml0b3JpbmctZXZlbnQuanNcIjtcbmltcG9ydCB0eXBlIHsgUlVNTG9uZ1Rhc2tFdmVudCB9IGZyb20gXCIuL3J1bS1sb25nLXRhc2stZXZlbnQuanNcIjtcbmltcG9ydCB0eXBlIHsgUlVNU2VsZm1vbml0b3JpbmdFdmVudCB9IGZyb20gXCIuL3J1bS1zZWxmbW9uaXRvcmluZy1ldmVudC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBSVU1TZXNzaW9uUHJvcGVydGllc0V2ZW50IH0gZnJvbSBcIi4vcnVtLXNlc3Npb24tcHJvcGVydGllcy1ldmVudC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBSVU1TdGFuZGFsb25lQ3NwUnVsZVZpb2xhdGlvbkV2ZW50IH0gZnJvbSBcIi4vcnVtLXN0YW5kYWxvbmUtY3NwLXJ1bGUtdmlvbGF0aW9uLWV2ZW50LmpzXCI7XG5pbXBvcnQgdHlwZSB7IFJVTVN0YW5kYWxvbmVFeGNlcHRpb25FdmVudCB9IGZyb20gXCIuL3J1bS1zdGFuZGFsb25lLWV4Y2VwdGlvbi1ldmVudC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBSVU1TdGFuZGFsb25lTmF2aWdhdGlvbkV2ZW50IH0gZnJvbSBcIi4vcnVtLXN0YW5kYWxvbmUtbmF2aWdhdGlvbi1ldmVudC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBSVU1TdW1tYXJ5RXZlbnQgfSBmcm9tIFwiLi9ydW0tcGFnZS1zdW1tYXJ5LWV2ZW50LmpzXCI7XG5pbXBvcnQgdHlwZSB7IFJVTVVzZXJBY3Rpb25FdmVudCB9IGZyb20gXCIuL3J1bS11c2VyLWFjdGlvbi1ldmVudC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBSVU1Vc2VySW50ZXJhY3Rpb25FdmVudCB9IGZyb20gXCIuL3J1bS11c2VyLWludGVyYWN0aW9uLWV2ZW50LmpzXCI7XG5pbXBvcnQgdHlwZSB7IFJVTVZpc2liaWxpdHlDaGFuZ2VFdmVudCB9IGZyb20gXCIuL3J1bS12aXNpYmlsaXR5LWNoYW5nZS1ldmVudC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBSVU1XZWJSZXF1ZXN0RXZlbnQgfSBmcm9tIFwiLi9ydW0td2ViLXJlcXVlc3QtZXZlbnQuanNcIjtcblxuLyoqXG4gKiBBbGwgdHlwZXMgb2YgZXZlbnRzIHRoZSBSVU0gSmF2YVNjcmlwdCBnZW5lcmF0ZXMuXG4gKlxuICogQGNhdGVnb3J5IEV2ZW50c1xuICovXG5leHBvcnQgdHlwZSBKU09ORXZlbnQgPVxuICAgIHwgUlVNRXZlbnRcbiAgICB8IFJVTUludGVybmFsU2VsZm1vbml0b3JpbmdFdmVudFxuICAgIHwgUlVNTG9uZ1Rhc2tFdmVudFxuICAgIHwgUlVNU2VsZm1vbml0b3JpbmdFdmVudFxuICAgIHwgUlVNU2Vzc2lvblByb3BlcnRpZXNFdmVudFxuICAgIHwgUlVNU3RhbmRhbG9uZUNzcFJ1bGVWaW9sYXRpb25FdmVudFxuICAgIHwgUlVNU3RhbmRhbG9uZUV4Y2VwdGlvbkV2ZW50XG4gICAgfCBSVU1TdGFuZGFsb25lTmF2aWdhdGlvbkV2ZW50XG4gICAgfCBSVU1TdW1tYXJ5RXZlbnRcbiAgICB8IFJVTVVzZXJBY3Rpb25FdmVudFxuICAgIHwgUlVNVXNlckludGVyYWN0aW9uRXZlbnRcbiAgICB8IFJVTVZpc2liaWxpdHlDaGFuZ2VFdmVudFxuICAgIHwgUlVNV2ViUmVxdWVzdEV2ZW50O1xuXG4vKipcbiAqIFRoZSBldmVudCBwYXJhbWV0ZXIgdGhlIHtAbGluayBkeW5hdHJhY2Uuc2VuZEV2ZW50fSBmdW5jdGlvbiBhY2NlcHRzLiBTZWUgdGhlIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIGZvciBkZXRhaWxzLlxuICpcbiAqIEBjYXRlZ29yeSBUeXBlIEFsaWFzZXNcbiAqIEBzZWUge0BsaW5rIGR5bmF0cmFjZS5zZW5kRXZlbnR9XG4gKi9cbmV4cG9ydCB0eXBlIEFwaUNyZWF0ZWRFdmVudFByb3BlcnRpZXNFdmVudCA9IHtcbiAgICBba2V5IGluIGBldmVudF9wcm9wZXJ0aWVzLiR7c3RyaW5nfWBdPzogUHJpbWl0aXZlO1xufSAmIEFwaUNyZWF0ZWRBbGxvd2VkR2VuZXJhdGlvbkZpZWxkcztcblxuLyoqXG4gKiBUaGUgZXZlbnQgcGFyYW1ldGVyIHRoZSB7QGxpbmsgZHluYXRyYWNlLnNlbmRTZXNzaW9uUHJvcGVydHlFdmVudH0gZnVuY3Rpb24gYWNjZXB0cy4gU2VlIHRoZSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBmb3JcbiAqIGRldGFpbHMuXG4gKlxuICogQGNhdGVnb3J5IFR5cGUgQWxpYXNlc1xuICogQHNlZSB7QGxpbmsgZHluYXRyYWNlLnNlbmRTZXNzaW9uUHJvcGVydHlFdmVudH1cbiAqL1xuZXhwb3J0IHR5cGUgQXBpQ3JlYXRlZFNlc3Npb25Qcm9wZXJ0aWVzRXZlbnQgPSB7XG4gICAgW2tleSBpbiBgc2Vzc2lvbl9wcm9wZXJ0aWVzLiR7c3RyaW5nfWBdPzogUHJpbWl0aXZlO1xufSAmIEFwaUNyZWF0ZWRBbGxvd2VkR2VuZXJhdGlvbkZpZWxkcztcblxuLyoqXG4gKiBAaW5saW5lXG4gKiBAaWdub3JlXG4gKi9cbnR5cGUgV3JpdGFibGVGaWVsZHMgPSBQaWNrPEdlbmVyYWxSdW1FdmVudEZpZWxkcywgUnVtRXZlbnRLZXlzLkRVUkFUSU9OIHwgUnVtRXZlbnRLZXlzLlNUQVJUX1RJTUU+O1xuXG4vKipcbiAqIEBpbmxpbmVcbiAqIEBpZ25vcmVcbiAqL1xuZXhwb3J0IHR5cGUgQXBpQ3JlYXRlZEFsbG93ZWRHZW5lcmF0aW9uRmllbGRzID0gUGFydGlhbDxXcml0YWJsZUZpZWxkcz47XG5cbi8qKlxuICogRXZlbnQgZmllbGRzIHRoYXQgYXJlYSBhbGxvd2VkIHRvIGJlIG1vZGlmaWVkIHVzaW5nIHtAbGluayBkeW5hdHJhY2UuYWRkRXZlbnRNb2RpZmllcn0uXG4gKlxuICogQGNhdGVnb3J5IEFQSVxuICovXG5leHBvcnQgdHlwZSBBbGxvd2VkTW9kaWZpY2F0aW9uRmllbGRzID1cbiAgICB8IGBldmVudF9wcm9wZXJ0aWVzLiR7c3RyaW5nfWBcbiAgICB8IGBtZC4ke3N0cmluZyB8IG51bWJlcn1gXG4gICAgfCBgc2Vzc2lvbl9wcm9wZXJ0aWVzLiR7c3RyaW5nfWBcbiAgICB8IFJ1bUV2ZW50S2V5cy5DU1AkU1RBQ0tfVFJBQ0VcbiAgICB8IFJ1bUV2ZW50S2V5cy5FWENFUFRJT04kU1RBQ0tfVFJBQ0VcbiAgICB8IFJ1bUV2ZW50S2V5cy5QQUdFJERFVEVDVEVEX05BTUVcbiAgICB8IFJ1bUV2ZW50S2V5cy5QQUdFJFVSTCRGVUxMXG4gICAgfCBSdW1FdmVudEtleXMuVklFVyRERVRFQ1RFRF9OQU1FXG4gICAgfCBSdW1FdmVudEtleXMuVklFVyRVUkwkRlVMTFxuICAgIHwgUnVtRXZlbnRLZXlzLlVSTCRGVUxMXG4gICAgfCBSdW1FdmVudEtleXMuRFJBR19FTEVNRU5UJERFVEVDVEVEX05BTUVcbiAgICB8IFJ1bUV2ZW50S2V5cy5GT1JNX0VMRU1FTlQkREVURUNURURfTkFNRVxuICAgIHwgUnVtRXZlbnRLZXlzLkxBQkVMX0VMRU1FTlQkREVURUNURURfTkFNRVxuICAgIHwgUnVtRXZlbnRLZXlzLlVJX0VMRU1FTlQkREVURUNURURfTkFNRVxuICAgIHwgUnVtRXZlbnRLZXlzLlZJRVckU09VUkNFJERFVEVDVEVEX05BTUU7XG4vKipcbiAqIEBpbmxpbmVcbiAqIEBpZ25vcmVcbiAqL1xuZXhwb3J0IHR5cGUgSlNPTk9iamVjdCA9IHsgW2s6IHN0cmluZ106IEpTT05WYWx1ZSB9O1xuLyoqXG4gKiBBbGxvd2VkIHZhbHVlIHR5cGVzIGZvciBldmVudHNcbiAqXG4gKiBAaW5saW5lXG4gKiBAaWdub3JlXG4gKi9cbmV4cG9ydCB0eXBlIFByaW1pdGl2ZSA9IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCBudWxsO1xuLyoqXG4gKiBAaW5saW5lXG4gKiBAaWdub3JlXG4gKi9cbmV4cG9ydCB0eXBlIEpTT05BcnJheSA9IEpTT05WYWx1ZVtdO1xuLyoqXG4gKiBAaW5saW5lXG4gKiBAaWdub3JlXG4gKi9cbmV4cG9ydCB0eXBlIEpTT05WYWx1ZSA9IEpTT05BcnJheSB8IEpTT05PYmplY3QgfCBQcmltaXRpdmU7XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbi1ldmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NvdXJjZS90eXBlcy9ydW0tZXZlbnRzL2pzb24tZXZlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEBkeW5hdHJhY2UvZGVtLWVzbGludC1ydWxlcy91bmlvbi10eXBlIC0tIGtlZXAgc3BlYyBvcmRlciAqL1xuaW1wb3J0IHR5cGUgeyBHZW5lcmFsUnVtRXZlbnRGaWVsZHMgfSBmcm9tIFwiLi9zaGFyZWQtbmFtZXNwYWNlcy1hbmQtZmllbGRzL2dlbmVyYWwtcnVtLWV2ZW50LWZpZWxkcy5qc1wiO1xuaW1wb3J0IHR5cGUgeyBSVU1FdmVudCB9IGZyb20gXCIuL3J1bS1ldmVudC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBSdW1FdmVudEtleXMgfSBmcm9tIFwiLi9ydW0tZXZlbnQta2V5cy5qc1wiO1xuaW1wb3J0IHR5cGUgeyBSVU1JbnRlcm5hbFNlbGZtb25pdG9yaW5nRXZlbnQgfSBmcm9tIFwiLi9ydW0taW50ZXJuYWwtc2VsZm1vbml0b3JpbmctZXZlbnQuanNcIjtcbmltcG9ydCB0eXBlIHsgUlVNTG9uZ1Rhc2tFdmVudCB9IGZyb20gXCIuL3J1bS1sb25nLXRhc2stZXZlbnQuanNcIjtcbmltcG9ydCB0eXBlIHsgUlVNU2VsZm1vbml0b3JpbmdFdmVudCB9IGZyb20gXCIuL3J1bS1zZWxmbW9uaXRvcmluZy1ldmVudC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBSVU1TZXNzaW9uUHJvcGVydGllc0V2ZW50IH0gZnJvbSBcIi4vcnVtLXNlc3Npb24tcHJvcGVydGllcy1ldmVudC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBSVU1TdGFuZGFsb25lQ3NwUnVsZVZpb2xhdGlvbkV2ZW50IH0gZnJvbSBcIi4vcnVtLXN0YW5kYWxvbmUtY3NwLXJ1bGUtdmlvbGF0aW9uLWV2ZW50LmpzXCI7XG5pbXBvcnQgdHlwZSB7IFJVTVN0YW5kYWxvbmVFeGNlcHRpb25FdmVudCB9IGZyb20gXCIuL3J1bS1zdGFuZGFsb25lLWV4Y2VwdGlvbi1ldmVudC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBSVU1TdGFuZGFsb25lTmF2aWdhdGlvbkV2ZW50IH0gZnJvbSBcIi4vcnVtLXN0YW5kYWxvbmUtbmF2aWdhdGlvbi1ldmVudC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBSVU1TdW1tYXJ5RXZlbnQgfSBmcm9tIFwiLi9ydW0tcGFnZS1zdW1tYXJ5LWV2ZW50LmpzXCI7XG5pbXBvcnQgdHlwZSB7IFJVTVVzZXJBY3Rpb25FdmVudCB9IGZyb20gXCIuL3J1bS11c2VyLWFjdGlvbi1ldmVudC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBSVU1Vc2VySW50ZXJhY3Rpb25FdmVudCB9IGZyb20gXCIuL3J1bS11c2VyLWludGVyYWN0aW9uLWV2ZW50LmpzXCI7XG5pbXBvcnQgdHlwZSB7IFJVTVZpc2liaWxpdHlDaGFuZ2VFdmVudCB9IGZyb20gXCIuL3J1bS12aXNpYmlsaXR5LWNoYW5nZS1ldmVudC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBSVU1XZWJSZXF1ZXN0RXZlbnQgfSBmcm9tIFwiLi9ydW0td2ViLXJlcXVlc3QtZXZlbnQuanNcIjtcblxuLyoqXG4gKiBBbGwgdHlwZXMgb2YgZXZlbnRzIHRoZSBSVU0gSmF2YVNjcmlwdCBnZW5lcmF0ZXMuXG4gKlxuICogQGNhdGVnb3J5IEV2ZW50c1xuICovXG5leHBvcnQgdHlwZSBKU09ORXZlbnQgPVxuICAgIHwgUlVNRXZlbnRcbiAgICB8IFJVTUludGVybmFsU2VsZm1vbml0b3JpbmdFdmVudFxuICAgIHwgUlVNTG9uZ1Rhc2tFdmVudFxuICAgIHwgUlVNU2VsZm1vbml0b3JpbmdFdmVudFxuICAgIHwgUlVNU2Vzc2lvblByb3BlcnRpZXNFdmVudFxuICAgIHwgUlVNU3RhbmRhbG9uZUNzcFJ1bGVWaW9sYXRpb25FdmVudFxuICAgIHwgUlVNU3RhbmRhbG9uZUV4Y2VwdGlvbkV2ZW50XG4gICAgfCBSVU1TdGFuZGFsb25lTmF2aWdhdGlvbkV2ZW50XG4gICAgfCBSVU1TdW1tYXJ5RXZlbnRcbiAgICB8IFJVTVVzZXJBY3Rpb25FdmVudFxuICAgIHwgUlVNVXNlckludGVyYWN0aW9uRXZlbnRcbiAgICB8IFJVTVZpc2liaWxpdHlDaGFuZ2VFdmVudFxuICAgIHwgUlVNV2ViUmVxdWVzdEV2ZW50O1xuXG4vKipcbiAqIFRoZSBldmVudCBwYXJhbWV0ZXIgdGhlIHtAbGluayBkeW5hdHJhY2Uuc2VuZEV2ZW50fSBmdW5jdGlvbiBhY2NlcHRzLiBTZWUgdGhlIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIGZvciBkZXRhaWxzLlxuICpcbiAqIEBjYXRlZ29yeSBUeXBlIEFsaWFzZXNcbiAqIEBzZWUge0BsaW5rIGR5bmF0cmFjZS5zZW5kRXZlbnR9XG4gKi9cbmV4cG9ydCB0eXBlIEFwaUNyZWF0ZWRFdmVudFByb3BlcnRpZXNFdmVudCA9IHtcbiAgICBba2V5IGluIGBldmVudF9wcm9wZXJ0aWVzLiR7c3RyaW5nfWBdPzogUHJpbWl0aXZlO1xufSAmIEFwaUNyZWF0ZWRBbGxvd2VkR2VuZXJhdGlvbkZpZWxkcztcblxuLyoqXG4gKiBUaGUgZXZlbnQgcGFyYW1ldGVyIHRoZSB7QGxpbmsgZHluYXRyYWNlLnNlbmRTZXNzaW9uUHJvcGVydHlFdmVudH0gZnVuY3Rpb24gYWNjZXB0cy4gU2VlIHRoZSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBmb3JcbiAqIGRldGFpbHMuXG4gKlxuICogQGNhdGVnb3J5IFR5cGUgQWxpYXNlc1xuICogQHNlZSB7QGxpbmsgZHluYXRyYWNlLnNlbmRTZXNzaW9uUHJvcGVydHlFdmVudH1cbiAqL1xuZXhwb3J0IHR5cGUgQXBpQ3JlYXRlZFNlc3Npb25Qcm9wZXJ0aWVzRXZlbnQgPSB7XG4gICAgW2tleSBpbiBgc2Vzc2lvbl9wcm9wZXJ0aWVzLiR7c3RyaW5nfWBdPzogUHJpbWl0aXZlO1xufSAmIEFwaUNyZWF0ZWRBbGxvd2VkR2VuZXJhdGlvbkZpZWxkcztcblxuLyoqXG4gKiBAaW5saW5lXG4gKiBAaWdub3JlXG4gKi9cbnR5cGUgV3JpdGFibGVGaWVsZHMgPSBQaWNrPEdlbmVyYWxSdW1FdmVudEZpZWxkcywgUnVtRXZlbnRLZXlzLkRVUkFUSU9OIHwgUnVtRXZlbnRLZXlzLlNUQVJUX1RJTUU+O1xuXG4vKipcbiAqIEBpbmxpbmVcbiAqIEBpZ25vcmVcbiAqL1xuZXhwb3J0IHR5cGUgQXBpQ3JlYXRlZEFsbG93ZWRHZW5lcmF0aW9uRmllbGRzID0gUGFydGlhbDxXcml0YWJsZUZpZWxkcz47XG5cbi8qKlxuICogQGlubGluZVxuICogQGlnbm9yZVxuICovXG5leHBvcnQgdHlwZSBKU09OT2JqZWN0ID0geyBbazogc3RyaW5nXTogSlNPTlZhbHVlIH07XG4vKipcbiAqIEFsbG93ZWQgdmFsdWUgdHlwZXMgZm9yIGV2ZW50c1xuICpcbiAqIEBpbmxpbmVcbiAqIEBpZ25vcmVcbiAqL1xuZXhwb3J0IHR5cGUgUHJpbWl0aXZlID0gc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IG51bGw7XG4vKipcbiAqIEBpbmxpbmVcbiAqIEBpZ25vcmVcbiAqL1xuZXhwb3J0IHR5cGUgSlNPTkFycmF5ID0gSlNPTlZhbHVlW107XG4vKipcbiAqIEBpbmxpbmVcbiAqIEBpZ25vcmVcbiAqL1xuZXhwb3J0IHR5cGUgSlNPTlZhbHVlID0gSlNPTkFycmF5IHwgSlNPTk9iamVjdCB8IFByaW1pdGl2ZTtcbiJdfQ==
@@ -0,0 +1,74 @@
1
+ import { RumEventKeys } from "./rum-event-keys.js";
2
+ /**
3
+ * Validates custom field key names.
4
+ *
5
+ * Pattern: `/^[\dA-Za-z]+(?:\.[A-Za-z][\dA-Za-z]*|_[\dA-Za-z]+)*$/`
6
+ *
7
+ * Rules: alphanumeric characters (a-z, A-Z, 0-9), underscores (_) and dots (.).
8
+ * Each dot must be followed by an alphabetic character.
9
+ * Each underscore must be followed by an alphanumeric character.
10
+ *
11
+ * @example valid: `"my_key"`, `"event.type"`, `"my.custom2_key"`
12
+ * @example invalid: `"my-key"`, `"my..key"`, `"_key"`, `".key"`
13
+ *
14
+ * @category API
15
+ */
16
+ export declare const VALID_KEY_REGEX: RegExp;
17
+ /**
18
+ * Consolidated enum containing all RUM event field namespace keys.
19
+ *
20
+ * @inline
21
+ * @category API
22
+ */
23
+ export declare const enum RumEventPropertyNamespaces {
24
+ EVENT_PROPERTIES = "event_properties",
25
+ SESSION_PROPERTIES = "session_properties"
26
+ }
27
+ /**
28
+ * Explicit event field keys that can be added via generation API {@link dynatrace.sendEvent} or {@link dynatrace.sendSessionPropertyEvent}
29
+ *
30
+ * @see {@link AllowedAddedFields}
31
+ * @inline
32
+ * @category API
33
+ */
34
+ export declare const ADDABLE_FIELD_KEYS: readonly [RumEventKeys.DURATION];
35
+ /**
36
+ * Explicit event field keys that can be overridden via {@link dynatrace.addEventModifier}.
37
+ *
38
+ * @see {@link AllowedModificationFields}
39
+ * @inline
40
+ * @category API
41
+ */
42
+ export declare const OVERRIDABLE_FIELD_KEYS: readonly [RumEventKeys.URL$FULL, RumEventKeys.VIEW$URL$FULL, RumEventKeys.VIEW$DETECTED_NAME, RumEventKeys.VIEW$SOURCE$DETECTED_NAME, RumEventKeys.PAGE$URL$FULL, RumEventKeys.PAGE$DETECTED_NAME, RumEventKeys.CSP$STACK_TRACE, RumEventKeys.EXCEPTION$STACK_TRACE, RumEventKeys.UI_ELEMENT$DETECTED_NAME, RumEventKeys.FORM_ELEMENT$DETECTED_NAME, RumEventKeys.LABEL_ELEMENT$DETECTED_NAME, RumEventKeys.DRAG_ELEMENT$DETECTED_NAME];
43
+ /**
44
+ * Explicit event namespace keys that have fields that can be added via {@link dynatrace.sendEvent} or {@link dynatrace.sendSessionPropertyEvent} with caveats:
45
+ * - {@link RumEventPropertyNamespaces.EVENT_PROPERTIES} can always be added unless created with {@link dynatrace.sendSessionPropertyEvent}
46
+ * - {@link RumEventPropertyNamespaces.SESSION_PROPERTIES} can only be added when created with {@link dynatrace.sendSessionPropertyEvent}
47
+ *
48
+ * @see {@link AllowedAddedFields}
49
+ * @inline
50
+ * @category API
51
+ */
52
+ export declare const ADDABLE_NAMESPACE_KEYS: readonly [RumEventPropertyNamespaces.SESSION_PROPERTIES, RumEventPropertyNamespaces.EVENT_PROPERTIES];
53
+ /**
54
+ * Explicit event namespace keys that have fields that can be overridden via {@link dynatrace.addEventModifier} with caveats:
55
+ * - {@link RumEventPropertyNamespaces.EVENT_PROPERTIES} can always be modified unless created with {@link dynatrace.sendSessionPropertyEvent}
56
+ * - {@link RumEventPropertyNamespaces.SESSION_PROPERTIES} can only be modified when created with {@link dynatrace.sendSessionPropertyEvent}
57
+ *
58
+ * @see {@link AllowedModificationFields}
59
+ * @inline
60
+ * @category API
61
+ */
62
+ export declare const OVERRIDABLE_NAMESPACE_KEYS: readonly [RumEventPropertyNamespaces.SESSION_PROPERTIES, RumEventPropertyNamespaces.EVENT_PROPERTIES];
63
+ /**
64
+ * Event fields that are allowed to be added using {@link dynatrace.sendEvent} or {@link dynatrace.sendSessionPropertyEvent}.
65
+ *
66
+ * @category API
67
+ */
68
+ export type AllowedAddedFields = typeof ADDABLE_FIELD_KEYS[number] | typeof ADDABLE_NAMESPACE_KEYS[number];
69
+ /**
70
+ * Event fields that are allowed to be modified using {@link dynatrace.addEventModifier}.
71
+ *
72
+ * @category API
73
+ */
74
+ export type AllowedModificationFields = typeof OVERRIDABLE_FIELD_KEYS[number] | typeof OVERRIDABLE_NAMESPACE_KEYS[number];
@@ -0,0 +1,84 @@
1
+ /**
2
+ * Validates custom field key names.
3
+ *
4
+ * Pattern: `/^[\dA-Za-z]+(?:\.[A-Za-z][\dA-Za-z]*|_[\dA-Za-z]+)*$/`
5
+ *
6
+ * Rules: alphanumeric characters (a-z, A-Z, 0-9), underscores (_) and dots (.).
7
+ * Each dot must be followed by an alphabetic character.
8
+ * Each underscore must be followed by an alphanumeric character.
9
+ *
10
+ * @example valid: `"my_key"`, `"event.type"`, `"my.custom2_key"`
11
+ * @example invalid: `"my-key"`, `"my..key"`, `"_key"`, `".key"`
12
+ *
13
+ * @category API
14
+ */
15
+ export const VALID_KEY_REGEX = /^[\dA-Za-z]+(?:\.[A-Za-z][\dA-Za-z]*|_[\dA-Za-z]+)*$/;
16
+ /**
17
+ * Consolidated enum containing all RUM event field namespace keys.
18
+ *
19
+ * @inline
20
+ * @category API
21
+ */
22
+ export var RumEventPropertyNamespaces;
23
+ (function (RumEventPropertyNamespaces) {
24
+ RumEventPropertyNamespaces["EVENT_PROPERTIES"] = "event_properties";
25
+ RumEventPropertyNamespaces["SESSION_PROPERTIES"] = "session_properties";
26
+ })(RumEventPropertyNamespaces || (RumEventPropertyNamespaces = {}));
27
+ /**
28
+ * Explicit event field keys that can be added via generation API {@link dynatrace.sendEvent} or {@link dynatrace.sendSessionPropertyEvent}
29
+ *
30
+ * @see {@link AllowedAddedFields}
31
+ * @inline
32
+ * @category API
33
+ */
34
+ export const ADDABLE_FIELD_KEYS = [
35
+ "duration" /* RumEventKeys.DURATION */
36
+ ];
37
+ /**
38
+ * Explicit event field keys that can be overridden via {@link dynatrace.addEventModifier}.
39
+ *
40
+ * @see {@link AllowedModificationFields}
41
+ * @inline
42
+ * @category API
43
+ */
44
+ export const OVERRIDABLE_FIELD_KEYS = [
45
+ "url.full" /* RumEventKeys.URL$FULL */,
46
+ "view.url.full" /* RumEventKeys.VIEW$URL$FULL */,
47
+ "view.detected_name" /* RumEventKeys.VIEW$DETECTED_NAME */,
48
+ "view.source.detected_name" /* RumEventKeys.VIEW$SOURCE$DETECTED_NAME */,
49
+ "page.url.full" /* RumEventKeys.PAGE$URL$FULL */,
50
+ "page.detected_name" /* RumEventKeys.PAGE$DETECTED_NAME */,
51
+ "csp.stack_trace" /* RumEventKeys.CSP$STACK_TRACE */,
52
+ "exception.stack_trace" /* RumEventKeys.EXCEPTION$STACK_TRACE */,
53
+ "ui_element.detected_name" /* RumEventKeys.UI_ELEMENT$DETECTED_NAME */,
54
+ "form_element.detected_name" /* RumEventKeys.FORM_ELEMENT$DETECTED_NAME */,
55
+ "label_element.detected_name" /* RumEventKeys.LABEL_ELEMENT$DETECTED_NAME */,
56
+ "drag_element.detected_name" /* RumEventKeys.DRAG_ELEMENT$DETECTED_NAME */
57
+ ];
58
+ /**
59
+ * Explicit event namespace keys that have fields that can be added via {@link dynatrace.sendEvent} or {@link dynatrace.sendSessionPropertyEvent} with caveats:
60
+ * - {@link RumEventPropertyNamespaces.EVENT_PROPERTIES} can always be added unless created with {@link dynatrace.sendSessionPropertyEvent}
61
+ * - {@link RumEventPropertyNamespaces.SESSION_PROPERTIES} can only be added when created with {@link dynatrace.sendSessionPropertyEvent}
62
+ *
63
+ * @see {@link AllowedAddedFields}
64
+ * @inline
65
+ * @category API
66
+ */
67
+ export const ADDABLE_NAMESPACE_KEYS = [
68
+ "session_properties" /* RumEventPropertyNamespaces.SESSION_PROPERTIES */,
69
+ "event_properties" /* RumEventPropertyNamespaces.EVENT_PROPERTIES */
70
+ ];
71
+ /**
72
+ * Explicit event namespace keys that have fields that can be overridden via {@link dynatrace.addEventModifier} with caveats:
73
+ * - {@link RumEventPropertyNamespaces.EVENT_PROPERTIES} can always be modified unless created with {@link dynatrace.sendSessionPropertyEvent}
74
+ * - {@link RumEventPropertyNamespaces.SESSION_PROPERTIES} can only be modified when created with {@link dynatrace.sendSessionPropertyEvent}
75
+ *
76
+ * @see {@link AllowedModificationFields}
77
+ * @inline
78
+ * @category API
79
+ */
80
+ export const OVERRIDABLE_NAMESPACE_KEYS = [
81
+ "session_properties" /* RumEventPropertyNamespaces.SESSION_PROPERTIES */,
82
+ "event_properties" /* RumEventPropertyNamespaces.EVENT_PROPERTIES */
83
+ ];
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3Blbi1maWVsZHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zb3VyY2UvdHlwZXMvcnVtLWV2ZW50cy9vcGVuLWZpZWxkcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7Ozs7Ozs7Ozs7OztHQWFHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLHNEQUFzRCxDQUFDO0FBRXRGOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFOLElBQWtCLDBCQUdqQjtBQUhELFdBQWtCLDBCQUEwQjtJQUN4QyxtRUFBcUMsQ0FBQTtJQUNyQyx1RUFBeUMsQ0FBQTtBQUM3QyxDQUFDLEVBSGlCLDBCQUEwQixLQUExQiwwQkFBMEIsUUFHM0M7QUFFRDs7Ozs7O0dBTUc7QUFDSCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRzs7Q0FFSyxDQUFDO0FBRXhDOzs7Ozs7R0FNRztBQUNILE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHOzs7Ozs7Ozs7Ozs7O0NBYUMsQ0FBQztBQUV4Qzs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHOzs7Q0FHQyxDQUFDO0FBRXhDOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUc7OztDQUdILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSdW1FdmVudEtleXMgfSBmcm9tIFwiLi9ydW0tZXZlbnQta2V5cy5qc1wiO1xuXG4vKipcbiAqIFZhbGlkYXRlcyBjdXN0b20gZmllbGQga2V5IG5hbWVzLlxuICpcbiAqIFBhdHRlcm46IGAvXltcXGRBLVphLXpdKyg/OlxcLltBLVphLXpdW1xcZEEtWmEtel0qfF9bXFxkQS1aYS16XSspKiQvYFxuICpcbiAqIFJ1bGVzOiBhbHBoYW51bWVyaWMgY2hhcmFjdGVycyAoYS16LCBBLVosIDAtOSksIHVuZGVyc2NvcmVzIChfKSBhbmQgZG90cyAoLikuXG4gKiBFYWNoIGRvdCBtdXN0IGJlIGZvbGxvd2VkIGJ5IGFuIGFscGhhYmV0aWMgY2hhcmFjdGVyLlxuICogRWFjaCB1bmRlcnNjb3JlIG11c3QgYmUgZm9sbG93ZWQgYnkgYW4gYWxwaGFudW1lcmljIGNoYXJhY3Rlci5cbiAqXG4gKiBAZXhhbXBsZSB2YWxpZDogICBgXCJteV9rZXlcImAsIGBcImV2ZW50LnR5cGVcImAsIGBcIm15LmN1c3RvbTJfa2V5XCJgXG4gKiBAZXhhbXBsZSBpbnZhbGlkOiBgXCJteS1rZXlcImAsIGBcIm15Li5rZXlcImAsIGBcIl9rZXlcImAsIGBcIi5rZXlcImBcbiAqXG4gKiBAY2F0ZWdvcnkgQVBJXG4gKi9cbmV4cG9ydCBjb25zdCBWQUxJRF9LRVlfUkVHRVggPSAvXltcXGRBLVphLXpdKyg/OlxcLltBLVphLXpdW1xcZEEtWmEtel0qfF9bXFxkQS1aYS16XSspKiQvO1xuXG4vKipcbiAqIENvbnNvbGlkYXRlZCBlbnVtIGNvbnRhaW5pbmcgYWxsIFJVTSBldmVudCBmaWVsZCBuYW1lc3BhY2Uga2V5cy5cbiAqXG4gKiBAaW5saW5lXG4gKiBAY2F0ZWdvcnkgQVBJXG4gKi9cbmV4cG9ydCBjb25zdCBlbnVtIFJ1bUV2ZW50UHJvcGVydHlOYW1lc3BhY2VzIHtcbiAgICBFVkVOVF9QUk9QRVJUSUVTID0gXCJldmVudF9wcm9wZXJ0aWVzXCIsXG4gICAgU0VTU0lPTl9QUk9QRVJUSUVTID0gXCJzZXNzaW9uX3Byb3BlcnRpZXNcIlxufVxuXG4vKipcbiAqIEV4cGxpY2l0IGV2ZW50IGZpZWxkIGtleXMgdGhhdCBjYW4gYmUgYWRkZWQgdmlhIGdlbmVyYXRpb24gQVBJIHtAbGluayBkeW5hdHJhY2Uuc2VuZEV2ZW50fSBvciB7QGxpbmsgZHluYXRyYWNlLnNlbmRTZXNzaW9uUHJvcGVydHlFdmVudH1cbiAqXG4gKiBAc2VlIHtAbGluayBBbGxvd2VkQWRkZWRGaWVsZHN9XG4gKiBAaW5saW5lXG4gKiBAY2F0ZWdvcnkgQVBJXG4gKi9cbmV4cG9ydCBjb25zdCBBRERBQkxFX0ZJRUxEX0tFWVMgPSBbXG4gICAgUnVtRXZlbnRLZXlzLkRVUkFUSU9OXG5dIGFzIGNvbnN0IHNhdGlzZmllcyBSZWFkb25seTxzdHJpbmdbXT47XG5cbi8qKlxuICogRXhwbGljaXQgZXZlbnQgZmllbGQga2V5cyB0aGF0IGNhbiBiZSBvdmVycmlkZGVuIHZpYSB7QGxpbmsgZHluYXRyYWNlLmFkZEV2ZW50TW9kaWZpZXJ9LlxuICpcbiAqIEBzZWUge0BsaW5rIEFsbG93ZWRNb2RpZmljYXRpb25GaWVsZHN9XG4gKiBAaW5saW5lXG4gKiBAY2F0ZWdvcnkgQVBJXG4gKi9cbmV4cG9ydCBjb25zdCBPVkVSUklEQUJMRV9GSUVMRF9LRVlTID0gW1xuICAgIFJ1bUV2ZW50S2V5cy5VUkwkRlVMTCxcbiAgICBSdW1FdmVudEtleXMuVklFVyRVUkwkRlVMTCxcbiAgICBSdW1FdmVudEtleXMuVklFVyRERVRFQ1RFRF9OQU1FLFxuICAgIFJ1bUV2ZW50S2V5cy5WSUVXJFNPVVJDRSRERVRFQ1RFRF9OQU1FLFxuICAgIFJ1bUV2ZW50S2V5cy5QQUdFJFVSTCRGVUxMLFxuICAgIFJ1bUV2ZW50S2V5cy5QQUdFJERFVEVDVEVEX05BTUUsXG4gICAgUnVtRXZlbnRLZXlzLkNTUCRTVEFDS19UUkFDRSxcbiAgICBSdW1FdmVudEtleXMuRVhDRVBUSU9OJFNUQUNLX1RSQUNFLFxuICAgIFJ1bUV2ZW50S2V5cy5VSV9FTEVNRU5UJERFVEVDVEVEX05BTUUsXG4gICAgUnVtRXZlbnRLZXlzLkZPUk1fRUxFTUVOVCRERVRFQ1RFRF9OQU1FLFxuICAgIFJ1bUV2ZW50S2V5cy5MQUJFTF9FTEVNRU5UJERFVEVDVEVEX05BTUUsXG4gICAgUnVtRXZlbnRLZXlzLkRSQUdfRUxFTUVOVCRERVRFQ1RFRF9OQU1FXG5dIGFzIGNvbnN0IHNhdGlzZmllcyBSZWFkb25seTxzdHJpbmdbXT47XG5cbi8qKlxuICogRXhwbGljaXQgZXZlbnQgbmFtZXNwYWNlIGtleXMgdGhhdCBoYXZlIGZpZWxkcyB0aGF0IGNhbiBiZSBhZGRlZCB2aWEge0BsaW5rIGR5bmF0cmFjZS5zZW5kRXZlbnR9IG9yIHtAbGluayBkeW5hdHJhY2Uuc2VuZFNlc3Npb25Qcm9wZXJ0eUV2ZW50fSB3aXRoIGNhdmVhdHM6XG4gKiAtIHtAbGluayBSdW1FdmVudFByb3BlcnR5TmFtZXNwYWNlcy5FVkVOVF9QUk9QRVJUSUVTfSBjYW4gYWx3YXlzIGJlIGFkZGVkIHVubGVzcyBjcmVhdGVkIHdpdGgge0BsaW5rIGR5bmF0cmFjZS5zZW5kU2Vzc2lvblByb3BlcnR5RXZlbnR9XG4gKiAtIHtAbGluayBSdW1FdmVudFByb3BlcnR5TmFtZXNwYWNlcy5TRVNTSU9OX1BST1BFUlRJRVN9IGNhbiBvbmx5IGJlIGFkZGVkIHdoZW4gY3JlYXRlZCB3aXRoIHtAbGluayBkeW5hdHJhY2Uuc2VuZFNlc3Npb25Qcm9wZXJ0eUV2ZW50fVxuICpcbiAqIEBzZWUge0BsaW5rIEFsbG93ZWRBZGRlZEZpZWxkc31cbiAqIEBpbmxpbmVcbiAqIEBjYXRlZ29yeSBBUElcbiAqL1xuZXhwb3J0IGNvbnN0IEFEREFCTEVfTkFNRVNQQUNFX0tFWVMgPSBbXG4gICAgUnVtRXZlbnRQcm9wZXJ0eU5hbWVzcGFjZXMuU0VTU0lPTl9QUk9QRVJUSUVTLFxuICAgIFJ1bUV2ZW50UHJvcGVydHlOYW1lc3BhY2VzLkVWRU5UX1BST1BFUlRJRVNcbl0gYXMgY29uc3Qgc2F0aXNmaWVzIFJlYWRvbmx5PHN0cmluZ1tdPjtcblxuLyoqXG4gKiBFeHBsaWNpdCBldmVudCBuYW1lc3BhY2Uga2V5cyB0aGF0IGhhdmUgZmllbGRzIHRoYXQgY2FuIGJlIG92ZXJyaWRkZW4gdmlhIHtAbGluayBkeW5hdHJhY2UuYWRkRXZlbnRNb2RpZmllcn0gd2l0aCBjYXZlYXRzOlxuICogLSB7QGxpbmsgUnVtRXZlbnRQcm9wZXJ0eU5hbWVzcGFjZXMuRVZFTlRfUFJPUEVSVElFU30gY2FuIGFsd2F5cyBiZSBtb2RpZmllZCB1bmxlc3MgY3JlYXRlZCB3aXRoIHtAbGluayBkeW5hdHJhY2Uuc2VuZFNlc3Npb25Qcm9wZXJ0eUV2ZW50fVxuICogLSB7QGxpbmsgUnVtRXZlbnRQcm9wZXJ0eU5hbWVzcGFjZXMuU0VTU0lPTl9QUk9QRVJUSUVTfSBjYW4gb25seSBiZSBtb2RpZmllZCB3aGVuIGNyZWF0ZWQgd2l0aCB7QGxpbmsgZHluYXRyYWNlLnNlbmRTZXNzaW9uUHJvcGVydHlFdmVudH1cbiAqXG4gKiBAc2VlIHtAbGluayBBbGxvd2VkTW9kaWZpY2F0aW9uRmllbGRzfVxuICogQGlubGluZVxuICogQGNhdGVnb3J5IEFQSVxuICovXG5leHBvcnQgY29uc3QgT1ZFUlJJREFCTEVfTkFNRVNQQUNFX0tFWVMgPSBbXG4gICAgUnVtRXZlbnRQcm9wZXJ0eU5hbWVzcGFjZXMuU0VTU0lPTl9QUk9QRVJUSUVTLFxuICAgIFJ1bUV2ZW50UHJvcGVydHlOYW1lc3BhY2VzLkVWRU5UX1BST1BFUlRJRVNcbl0gYXMgY29uc3Qgc2F0aXNmaWVzIFJlYWRvbmx5PHN0cmluZ1tdPjtcblxuLyoqXG4gKiBFdmVudCBmaWVsZHMgdGhhdCBhcmUgYWxsb3dlZCB0byBiZSBhZGRlZCB1c2luZyB7QGxpbmsgZHluYXRyYWNlLnNlbmRFdmVudH0gb3Ige0BsaW5rIGR5bmF0cmFjZS5zZW5kU2Vzc2lvblByb3BlcnR5RXZlbnR9LlxuICpcbiAqIEBjYXRlZ29yeSBBUElcbiAqL1xuZXhwb3J0IHR5cGUgQWxsb3dlZEFkZGVkRmllbGRzID1cbiAgICB8IHR5cGVvZiBBRERBQkxFX0ZJRUxEX0tFWVNbbnVtYmVyXVxuICAgIHwgdHlwZW9mIEFEREFCTEVfTkFNRVNQQUNFX0tFWVNbbnVtYmVyXVxuO1xuXG4vKipcbiAqIEV2ZW50IGZpZWxkcyB0aGF0IGFyZSBhbGxvd2VkIHRvIGJlIG1vZGlmaWVkIHVzaW5nIHtAbGluayBkeW5hdHJhY2UuYWRkRXZlbnRNb2RpZmllcn0uXG4gKlxuICogQGNhdGVnb3J5IEFQSVxuICovXG5leHBvcnQgdHlwZSBBbGxvd2VkTW9kaWZpY2F0aW9uRmllbGRzID1cbiAgICB8IHR5cGVvZiBPVkVSUklEQUJMRV9GSUVMRF9LRVlTW251bWJlcl1cbiAgICB8IHR5cGVvZiBPVkVSUklEQUJMRV9OQU1FU1BBQ0VfS0VZU1tudW1iZXJdXG47XG4iXX0=
@@ -109,7 +109,23 @@ export declare const enum InternalSelfmonitoringEventCodes {
109
109
  /**
110
110
  * @group Web specific errors
111
111
  */
112
- REGULAR_EXPRESSION_CONFIG_PARSE_ERROR = 3007
112
+ REGULAR_EXPRESSION_CONFIG_PARSE_ERROR = 3007,
113
+ /**
114
+ * @group Web specific errors
115
+ */
116
+ STORAGE_OPERATIONS_ERROR = 3008,
117
+ /**
118
+ * @group Web specific errors
119
+ */
120
+ INVALID_COOKIE_DOMAIN_CONFIG = 3009,
121
+ /**
122
+ * @group Web specific errors
123
+ */
124
+ SESSION_CREATION_REASON = 3010,
125
+ /**
126
+ * @group Web specific errors
127
+ */
128
+ USER_CREATION_REASON = 3011
113
129
  }
114
130
  /**
115
131
  * @internal