@dynatrace/rum-javascript-sdk 1.329.6 → 1.331.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -8
- package/dist/testing/install.js +4 -1
- package/dist/testing/test.js +105 -15
- package/dist/types/index-typedoc.d.ts +1 -0
- package/dist/types/index-typedoc.js +2 -1
- package/dist/types/internal/beacon-query.d.ts +4 -1
- package/dist/types/internal/beacon-query.js +4 -1
- package/dist/types/rum-events/event-context/event-context.d.ts +3 -0
- package/dist/types/rum-events/event-context/event-context.js +1 -1
- package/dist/types/rum-events/event-updates.d.ts +3 -0
- package/dist/types/rum-events/event-updates.js +1 -1
- package/dist/types/rum-events/index.d.ts +1 -0
- package/dist/types/rum-events/index.js +2 -1
- package/dist/types/rum-events/json-event.d.ts +5 -8
- package/dist/types/rum-events/json-event.js +1 -1
- package/dist/types/rum-events/rum-biz-event.d.ts +8 -4
- package/dist/types/rum-events/rum-biz-event.js +2 -8
- package/dist/types/rum-events/rum-event-keys.d.ts +342 -0
- package/dist/types/rum-events/rum-event-keys.js +469 -0
- package/dist/types/rum-events/rum-event.d.ts +4 -3
- package/dist/types/rum-events/rum-event.js +1 -1
- package/dist/types/rum-events/rum-internal-selfmonitoring-event.d.ts +36 -9
- package/dist/types/rum-events/rum-internal-selfmonitoring-event.js +21 -5
- package/dist/types/rum-events/rum-long-task-event.d.ts +15 -16
- package/dist/types/rum-events/rum-long-task-event.js +2 -10
- package/dist/types/rum-events/rum-page-summary-event.d.ts +109 -166
- package/dist/types/rum-events/rum-page-summary-event.js +2 -88
- package/dist/types/rum-events/rum-selfmonitoring-event.d.ts +13 -11
- package/dist/types/rum-events/rum-selfmonitoring-event.js +1 -7
- package/dist/types/rum-events/rum-session-properties-event.d.ts +4 -3
- package/dist/types/rum-events/rum-session-properties-event.js +1 -1
- package/dist/types/rum-events/rum-standalone-csp-rule-violation-event.d.ts +6 -6
- package/dist/types/rum-events/rum-standalone-csp-rule-violation-event.js +1 -1
- package/dist/types/rum-events/rum-standalone-exception-event.d.ts +6 -6
- package/dist/types/rum-events/rum-standalone-exception-event.js +1 -1
- package/dist/types/rum-events/rum-standalone-navigation-event.d.ts +11 -7
- package/dist/types/rum-events/rum-standalone-navigation-event.js +2 -5
- package/dist/types/rum-events/rum-user-action-event.d.ts +96 -86
- package/dist/types/rum-events/rum-user-action-event.js +22 -37
- package/dist/types/rum-events/rum-user-interaction-event.d.ts +126 -152
- package/dist/types/rum-events/rum-user-interaction-event.js +4 -90
- package/dist/types/rum-events/rum-visibility-change-event.d.ts +12 -9
- package/dist/types/rum-events/rum-visibility-change-event.js +2 -6
- package/dist/types/rum-events/rum-web-request-event.d.ts +84 -105
- package/dist/types/rum-events/rum-web-request-event.js +9 -57
- package/dist/types/rum-events/schema-versions.d.ts +1 -1
- package/dist/types/rum-events/schema-versions.js +2 -2
- package/dist/types/rum-events/shared-namespaces-and-fields/csp-fields.d.ts +18 -30
- package/dist/types/rum-events/shared-namespaces-and-fields/csp-fields.js +3 -22
- package/dist/types/rum-events/shared-namespaces-and-fields/exception-fields.d.ts +12 -18
- package/dist/types/rum-events/shared-namespaces-and-fields/exception-fields.js +2 -19
- package/dist/types/rum-events/shared-namespaces-and-fields/general-rum-error-fields.d.ts +6 -6
- package/dist/types/rum-events/shared-namespaces-and-fields/general-rum-error-fields.js +1 -10
- package/dist/types/rum-events/shared-namespaces-and-fields/general-rum-event-fields.d.ts +50 -94
- package/dist/types/rum-events/shared-namespaces-and-fields/general-rum-event-fields.js +1 -75
- package/dist/types/rum-events/shared-namespaces-and-fields/http-namespace.d.ts +7 -8
- package/dist/types/rum-events/shared-namespaces-and-fields/http-namespace.js +2 -10
- package/dist/types/rum-events/shared-namespaces-and-fields/navigation-fields.d.ts +10 -10
- package/dist/types/rum-events/shared-namespaces-and-fields/navigation-fields.js +5 -15
- package/dist/types/rum-events/shared-namespaces-and-fields/page-source-fields.d.ts +8 -4
- package/dist/types/rum-events/shared-namespaces-and-fields/page-source-fields.js +2 -5
- package/dist/types/rum-events/shared-namespaces-and-fields/request-fields.d.ts +7 -7
- package/dist/types/rum-events/shared-namespaces-and-fields/request-fields.js +2 -9
- package/dist/types/rum-events/shared-namespaces-and-fields/view-source-fields.d.ts +7 -7
- package/dist/types/rum-events/shared-namespaces-and-fields/view-source-fields.js +2 -9
- package/dist/types/user-actions/user-action-end-event.d.ts +2 -2
- package/dist/types/user-actions/user-action-end-event.js +1 -1
- package/docs/testing.md +92 -0
- package/docs/types.md +1 -1
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -14,7 +14,7 @@ This package provides two main API approaches for interacting with the Dynatrace
|
|
|
14
14
|
|
|
15
15
|
- **Synchronous API**: Safe wrapper functions that gracefully handle cases where the RUM JavaScript is not available
|
|
16
16
|
- **Asynchronous API**: Promise-based functions that wait for the RUM JavaScript to become available
|
|
17
|
-
- **User Actions API**: Manual control over user action creation and lifecycle (see [USERACTIONS.md](docs/USERACTIONS.md))
|
|
17
|
+
- **User Actions API**: Manual control over user action creation and lifecycle (see [USERACTIONS.md](./docs/USERACTIONS.md))
|
|
18
18
|
- **TypeScript Support**: Comprehensive type definitions for all RUM API functions
|
|
19
19
|
- **Testing Framework**: Playwright-based utilities for testing RUM integration
|
|
20
20
|
|
|
@@ -284,7 +284,7 @@ Only available if the Errors module is enabled.
|
|
|
284
284
|
|
|
285
285
|
### User Actions API
|
|
286
286
|
|
|
287
|
-
Both synchronous and asynchronous wrappers are available for the User Actions API. For detailed documentation and examples, see [USERACTIONS.md](docs/USERACTIONS.md).
|
|
287
|
+
Both synchronous and asynchronous wrappers are available for the User Actions API. For detailed documentation and examples, see [USERACTIONS.md](./docs/USERACTIONS.md).
|
|
288
288
|
|
|
289
289
|
**Synchronous API:**
|
|
290
290
|
```typescript
|
|
@@ -333,7 +333,7 @@ try {
|
|
|
333
333
|
|
|
334
334
|
## TypeScript Support
|
|
335
335
|
|
|
336
|
-
For detailed type information and usage examples, see [types.md](docs/types.md).
|
|
336
|
+
For detailed type information and usage examples, see [types.md](./docs/types.md).
|
|
337
337
|
|
|
338
338
|
```typescript
|
|
339
339
|
import type {
|
|
@@ -347,12 +347,12 @@ import type {
|
|
|
347
347
|
|
|
348
348
|
## Testing
|
|
349
349
|
|
|
350
|
-
|
|
350
|
+
This package includes a Playwright testing framework for validating RUM integration. See **[testing.md](./docs/testing.md)** for complete documentation including:
|
|
351
351
|
|
|
352
|
-
|
|
353
|
-
-
|
|
354
|
-
-
|
|
355
|
-
-
|
|
352
|
+
- Setup and configuration
|
|
353
|
+
- Fixture usage and ordering
|
|
354
|
+
- Event assertion methods
|
|
355
|
+
- Troubleshooting guide
|
|
356
356
|
|
|
357
357
|
## Best Practices
|
|
358
358
|
|
package/dist/testing/install.js
CHANGED
|
@@ -14,6 +14,9 @@
|
|
|
14
14
|
*/
|
|
15
15
|
export async function fetchRumJavaScript(endpointUrl, appId, token) {
|
|
16
16
|
const response = await fetch(`${endpointUrl}/api/v2/rum/javaScriptTag/${appId}`, { headers: { Authorization: `Api-Token ${token}` } });
|
|
17
|
+
if (!response.ok) {
|
|
18
|
+
throw new Error(`Failed to fetch RUM JavaScript: ${response.statusText}`);
|
|
19
|
+
}
|
|
17
20
|
return response.text();
|
|
18
21
|
}
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdGFsbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NvdXJjZS90ZXN0aW5nL2luc3RhbGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsa0JBQWtCLENBQUMsV0FBbUIsRUFBRSxLQUFhLEVBQUUsS0FBYTtJQUN0RixNQUFNLFFBQVEsR0FBRyxNQUFNLEtBQUssQ0FDeEIsR0FBRyxXQUFXLDZCQUE2QixLQUFLLEVBQUUsRUFDbEQsRUFBRSxPQUFPLEVBQUUsRUFBRSxhQUFhLEVBQUUsYUFBYSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUMxRCxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ2YsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQ0FBbUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDOUUsQ0FBQztJQUNELE9BQU8sUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO0FBQzNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEZldGNoZXMgdGhlIFJVTSBKYXZhU2NyaXB0IGZyb20gdGhlIGdpdmVuIGVudmlyb25tZW50LlxuICpcbiAqIEBwYXJhbSBlbmRwb2ludFVybCBUaGUgbG9jYXRpb24gdG8gZmV0Y2ggdGhlIHNjcmlwdCBmcm9tLCBlLmcuIFwiaHR0cHM6Ly97eW91ci1lbnZpcm9ubWVudC1pZH0ubGl2ZS5keW5hdHJhY2UuY29tXCIgb3IgXCJodHRwczovL3t5b3VyLWFjdGl2ZWdhdGUtZG9tYWlufTo5OTk5L2Uve3lvdXItZW52aXJvbm1lbnQtaWR9XCIuXG4gKiBAcGFyYW0gYXBwSWQgICAgICAgVGhlIFJVTSBhcHBsaWNhdGlvbiBJRCB0byBmZXRjaCB0aGUgY29uZmlndXJhdGlvbi5cbiAqIEBwYXJhbSB0b2tlbiAgICAgICBUaGUgYXV0aGVudGljYXRpb24gdG9rZW4gdG8gYWNjZXNzIHRoZSBBUEkuXG4gKiBAcmV0dXJucyAgICAgICAgICAgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2l0aCBhbiBIVE1MIHN0cmluZyBjb250YWluaW5nIHRoZSBSVU0gSmF2YVNjcmlwdCBmb3IgaW5zZXJ0aW9uIGludG8gYSBwYWdlLlxuICpcbiAqIEBleGFtcGxlXG4gKiBjb25zdCBydW1KYXZhU2NyaXB0SHRtbCA9IGF3YWl0IGZldGNoUnVtSmF2YVNjcmlwdChcImh0dHBzOi8vbXllbnYubGl2ZS5keW5hdHJhY2UuY29tXCIsXCJBUFBMSUNBVElPTi1FQTdDNEI1OUYyN0Q0M0VCXCIsIFwiZHQwYzAxLmFiY2QuZWZnaGlqa1wiKTtcbiAqIC8vIHVzZSB0aGUgcmVzdWx0IHRvIHdyaXRlIHlvdXIgamF2YXNjcmlwdCwgZS5nLiB3aXRoIGNoZWVyaW86XG4gKiBjb25zdCAkID0gY2hlZXJpby5sb2FkKG15SHRtbCk7XG4gKiAkKFwiaGVhZFwiKS5hcHBlbmQocnVtSmF2YVNjcmlwdEh0bWwpO1xuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZmV0Y2hSdW1KYXZhU2NyaXB0KGVuZHBvaW50VXJsOiBzdHJpbmcsIGFwcElkOiBzdHJpbmcsIHRva2VuOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goXG4gICAgICAgIGAke2VuZHBvaW50VXJsfS9hcGkvdjIvcnVtL2phdmFTY3JpcHRUYWcvJHthcHBJZH1gLFxuICAgICAgICB7IGhlYWRlcnM6IHsgQXV0aG9yaXphdGlvbjogYEFwaS1Ub2tlbiAke3Rva2VufWAgfSB9KTtcbiAgICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIGZldGNoIFJVTSBKYXZhU2NyaXB0OiAke3Jlc3BvbnNlLnN0YXR1c1RleHR9YCk7XG4gICAgfVxuICAgIHJldHVybiByZXNwb25zZS50ZXh0KCk7XG59XG4iXX0=
|
package/dist/testing/test.js
CHANGED
|
@@ -3,6 +3,14 @@ import { fetchRumJavaScript } from "./install.js";
|
|
|
3
3
|
import { uncompress } from "snappyjs";
|
|
4
4
|
const DEFAULT_TIMEOUT = 5_000;
|
|
5
5
|
const decoder = new TextDecoder();
|
|
6
|
+
/**
|
|
7
|
+
* Field descriptions for configuration error messages.
|
|
8
|
+
*/
|
|
9
|
+
const FIELD_DESCRIPTIONS = {
|
|
10
|
+
endpointUrl: "The Dynatrace environment URL (e.g., \"https://abc12345.live.dynatrace.com\")",
|
|
11
|
+
appId: "The RUM application ID (e.g., \"APPLICATION-ABCDEF0123456789\")",
|
|
12
|
+
token: "The API token with \"Read RUM manual insertion tags\" permission"
|
|
13
|
+
};
|
|
6
14
|
export const test = base.extend({
|
|
7
15
|
dynatraceConfig: [{
|
|
8
16
|
appId: "",
|
|
@@ -15,6 +23,19 @@ export const test = base.extend({
|
|
|
15
23
|
await use(cache);
|
|
16
24
|
}, { scope: "worker", auto: true, box: true }],
|
|
17
25
|
dynatraceTesting: async ({ page, dynatraceConfig, rumJavaScriptCache }, use) => {
|
|
26
|
+
validateDynatraceConfig(dynatraceConfig);
|
|
27
|
+
// Check if page has already navigated and warn about fixture ordering
|
|
28
|
+
const currentUrl = page.url();
|
|
29
|
+
if (currentUrl !== "about:blank") {
|
|
30
|
+
console.warn(`[Dynatrace Testing] Warning: Page has already navigated to "${currentUrl}".
|
|
31
|
+
The RUM JavaScript may not be injected. Ensure dynatraceTesting is destructured
|
|
32
|
+
before any fixtures that navigate the page.
|
|
33
|
+
|
|
34
|
+
Example of correct fixture order:
|
|
35
|
+
test("my test", async ({ dynatraceTesting, myCustomFixture, page }) => { ... });
|
|
36
|
+
|
|
37
|
+
See testing.md for more information.`);
|
|
38
|
+
}
|
|
18
39
|
const { endpointUrl, appId, token, ignoreWarnings = [], dumpEventsOnFail = false } = dynatraceConfig;
|
|
19
40
|
const beacons = [];
|
|
20
41
|
const events = [];
|
|
@@ -32,12 +53,12 @@ export const test = base.extend({
|
|
|
32
53
|
const start = Date.now();
|
|
33
54
|
while (beacons.length < minCount && (Date.now() - start) <= timeout) {
|
|
34
55
|
if (warnings.length > 0) {
|
|
35
|
-
throwWithEventDump("Unexpected Dynatrace API warnings: " + warnings.join("\n"));
|
|
56
|
+
throwWithEventDump("Unexpected Dynatrace API warnings: " + warnings.join("\n"), "waitForBeacons - unexpected warnings");
|
|
36
57
|
}
|
|
37
58
|
await wait(100);
|
|
38
59
|
}
|
|
39
60
|
if (beacons.length < minCount) {
|
|
40
|
-
throwWithEventDump(`Found only ${beacons.length} Dynatrace beacons after timeout of ${timeout}ms, but expected at least ${minCount}
|
|
61
|
+
throwWithEventDump(`Found only ${beacons.length} Dynatrace beacons after timeout of ${timeout}ms, but expected at least ${minCount}.`, "waitForBeacons - timeout");
|
|
41
62
|
}
|
|
42
63
|
return beacons;
|
|
43
64
|
},
|
|
@@ -61,9 +82,9 @@ export const test = base.extend({
|
|
|
61
82
|
await wait(100);
|
|
62
83
|
}
|
|
63
84
|
if (!lastNonMatch) {
|
|
64
|
-
throwWithEventDump("Dynatrace didn't send any events.");
|
|
85
|
+
throwWithEventDump("Dynatrace didn't send any events.", "expectToHaveSentEvent - no events");
|
|
65
86
|
}
|
|
66
|
-
|
|
87
|
+
dumpEventsIfEnabled("expectToHaveSentEvent - no match");
|
|
67
88
|
expect(lastNonMatch).toMatchObject(expectedEvent);
|
|
68
89
|
},
|
|
69
90
|
async expectToHaveSentEventTimes(expectedEvent, times, options = {}) {
|
|
@@ -88,16 +109,17 @@ export const test = base.extend({
|
|
|
88
109
|
return;
|
|
89
110
|
}
|
|
90
111
|
if (foundTimes > times) {
|
|
91
|
-
throwWithEventDump(`Expected ${times} event occurrences, found ${foundTimes}
|
|
112
|
+
throwWithEventDump(`Expected ${times} event occurrences, found ${foundTimes}.`, "expectToHaveSentEventTimes - too many matches");
|
|
92
113
|
}
|
|
93
114
|
await wait(100);
|
|
94
115
|
}
|
|
95
116
|
if (!lastNonMatch) {
|
|
96
|
-
throwWithEventDump("Dynatrace didn't send any events");
|
|
117
|
+
throwWithEventDump("Dynatrace didn't send any events", "expectToHaveSentEventTimes - no events");
|
|
97
118
|
}
|
|
98
119
|
if (foundTimes < times) {
|
|
99
|
-
throwWithEventDump(`Didn't find the expected amount of ${times} matching events, found ${foundTimes}
|
|
120
|
+
throwWithEventDump(`Didn't find the expected amount of ${times} matching events, found ${foundTimes}.`, "expectToHaveSentEventTimes - count mismatch");
|
|
100
121
|
}
|
|
122
|
+
dumpEventsIfEnabled("expectToHaveSentEventTimes - no match");
|
|
101
123
|
expect(lastNonMatch).toMatchObject(expectedEvent);
|
|
102
124
|
},
|
|
103
125
|
clearEvents() {
|
|
@@ -105,16 +127,38 @@ export const test = base.extend({
|
|
|
105
127
|
beacons.length = 0;
|
|
106
128
|
}
|
|
107
129
|
});
|
|
130
|
+
/**
|
|
131
|
+
* Dumps received events to console if dumpEventsOnFail is enabled.
|
|
132
|
+
* Formats events for readability.
|
|
133
|
+
*
|
|
134
|
+
* @param context Additional context about why events are being dumped
|
|
135
|
+
*/
|
|
136
|
+
function dumpEventsIfEnabled(context) {
|
|
137
|
+
if (!dumpEventsOnFail) {
|
|
138
|
+
return;
|
|
139
|
+
}
|
|
140
|
+
console.log(`\n[Dynatrace Testing] Event Dump (${context})`);
|
|
141
|
+
console.log(`Total events received: ${events.length}`);
|
|
142
|
+
console.log(`Total beacons received: ${beacons.length}`);
|
|
143
|
+
if (events.length === 0) {
|
|
144
|
+
console.log("No events were received.");
|
|
145
|
+
}
|
|
146
|
+
else {
|
|
147
|
+
console.log("\nReceived events:");
|
|
148
|
+
events.forEach((event, index) => {
|
|
149
|
+
console.log(`\nEvent ${index + 1}:`, JSON.stringify(event, null, 2));
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
}
|
|
108
153
|
/**
|
|
109
154
|
* Throws an error with a custom message. If event dumping is enabled, logs the received Dynatrace events before
|
|
110
155
|
* throwing the error.
|
|
111
156
|
*
|
|
112
157
|
* @param message The error message to be thrown
|
|
158
|
+
* @param context Context about the failure for event dumping
|
|
113
159
|
*/
|
|
114
|
-
function throwWithEventDump(message) {
|
|
115
|
-
|
|
116
|
-
console.log("Received Dynatrace events:", events);
|
|
117
|
-
}
|
|
160
|
+
function throwWithEventDump(message, context) {
|
|
161
|
+
dumpEventsIfEnabled(context ?? "assertion failure");
|
|
118
162
|
throw new Error(message);
|
|
119
163
|
}
|
|
120
164
|
async function setupRumJavaScript() {
|
|
@@ -138,8 +182,8 @@ export const test = base.extend({
|
|
|
138
182
|
// This approach doesn't interfere with user-defined routes
|
|
139
183
|
page.on("request", (request) => {
|
|
140
184
|
const url = request.url();
|
|
141
|
-
//
|
|
142
|
-
if (!
|
|
185
|
+
// Gen 3 beacons should always have ty=js
|
|
186
|
+
if (!url.includes("ty=js")) {
|
|
143
187
|
return;
|
|
144
188
|
}
|
|
145
189
|
const beaconBodyString = extractBeaconBody(request, url);
|
|
@@ -163,6 +207,52 @@ export const test = base.extend({
|
|
|
163
207
|
}
|
|
164
208
|
}
|
|
165
209
|
});
|
|
210
|
+
/**
|
|
211
|
+
* Creates a helpful error for missing configuration fields.
|
|
212
|
+
*
|
|
213
|
+
* @param missingFields Array of field names that are missing or empty
|
|
214
|
+
* @returns Error with detailed setup instructions
|
|
215
|
+
*/
|
|
216
|
+
function createMissingConfigError(missingFields) {
|
|
217
|
+
const missingDetails = missingFields
|
|
218
|
+
.map(field => ` - ${field}: ${FIELD_DESCRIPTIONS[field]}`)
|
|
219
|
+
.join("\n");
|
|
220
|
+
return new Error(`[Dynatrace Testing] Missing required configuration field${missingFields.length > 1 ? "s" : ""}: ${missingFields.join(", ")}
|
|
221
|
+
|
|
222
|
+
${missingDetails}
|
|
223
|
+
|
|
224
|
+
Configure via test.use():
|
|
225
|
+
test.use({
|
|
226
|
+
dynatraceConfig: {
|
|
227
|
+
endpointUrl: process.env.DT_ENDPOINT_URL!,
|
|
228
|
+
appId: process.env.DT_APP_ID!,
|
|
229
|
+
token: process.env.DT_TOKEN!
|
|
230
|
+
}
|
|
231
|
+
});
|
|
232
|
+
|
|
233
|
+
See testing.md for detailed setup instructions.`);
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Validates the Dynatrace configuration and throws a helpful error if invalid.
|
|
237
|
+
*
|
|
238
|
+
* @param config The configuration to validate
|
|
239
|
+
* @throws Error with detailed setup instructions if configuration is invalid
|
|
240
|
+
*/
|
|
241
|
+
function validateDynatraceConfig(config) {
|
|
242
|
+
const missingFields = [];
|
|
243
|
+
if (!config.endpointUrl || config.endpointUrl.trim() === "") {
|
|
244
|
+
missingFields.push("endpointUrl");
|
|
245
|
+
}
|
|
246
|
+
if (!config.appId || config.appId.trim() === "") {
|
|
247
|
+
missingFields.push("appId");
|
|
248
|
+
}
|
|
249
|
+
if (!config.token || config.token.trim() === "") {
|
|
250
|
+
missingFields.push("token");
|
|
251
|
+
}
|
|
252
|
+
if (missingFields.length > 0) {
|
|
253
|
+
throw createMissingConfigError(missingFields);
|
|
254
|
+
}
|
|
255
|
+
}
|
|
166
256
|
/**
|
|
167
257
|
* Fetches the RUM JavaScript content from the Dynatrace API endpoint.
|
|
168
258
|
*
|
|
@@ -174,7 +264,7 @@ export const test = base.extend({
|
|
|
174
264
|
async function fetchRumJavaScriptContent(endpointUrl, appId, token) {
|
|
175
265
|
const rumApiResult = await fetchRumJavaScript(endpointUrl, appId, token);
|
|
176
266
|
if (!rumApiResult.includes("_complete.js")) {
|
|
177
|
-
throw new Error(
|
|
267
|
+
throw new Error(`Dynatrace received unexpected RUM JavaScript when requesting the JavaScript Tag via API: ${rumApiResult}`);
|
|
178
268
|
}
|
|
179
269
|
// Extract the src URL from the script tag
|
|
180
270
|
const srcMatch = rumApiResult.match(/src="([^"]+)"/);
|
|
@@ -226,4 +316,4 @@ function extractBeaconBody(request, url) {
|
|
|
226
316
|
}
|
|
227
317
|
return request.postData();
|
|
228
318
|
}
|
|
229
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NvdXJjZS90ZXN0aW5nL3Rlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNILE1BQU0sRUFDTixJQUFJLElBQUksSUFBSSxFQUNmLE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFrRXRDLE1BQU0sZUFBZSxHQUFHLEtBQUssQ0FBQztBQUU5QixNQUFNLE9BQU8sR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO0FBK0RsQyxNQUFNLENBQUMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBeUQ7SUFDcEYsZUFBZSxFQUFFLENBQUM7WUFDZCxLQUFLLEVBQUUsRUFBRTtZQUNULFdBQVcsRUFBRSxFQUFFO1lBQ2YsS0FBSyxFQUFFLEVBQUU7U0FDWixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDO0lBRXBCLDZIQUE2SDtJQUM3SCxrQkFBa0IsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUU7WUFDcEMsTUFBTSxLQUFLLEdBQUcsSUFBSSxHQUFHLEVBQWtCLENBQUM7WUFDeEMsTUFBTSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckIsQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUU5QyxnQkFBZ0IsRUFBRSxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFLGtCQUFrQixFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUU7UUFDM0UsTUFBTSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLGNBQWMsR0FBRyxFQUFFLEVBQUUsZ0JBQWdCLEdB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QUFNLGNBQWMsR0FBRyxNQUFNLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM5QyxPQUFPLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztBQUNqQyxDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxTQUFTLGdCQUFnQixDQUFDLEdBQVc7SUFDakMsb0RBQW9EO0lBQ3BELE1BQU0sY0FBYyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsdUJBQXVCLENBQUMsQ0FBQztJQUMxRCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDbEIsTUFBTSxJQUFJLEtBQUssQ0FBQywwREFBMEQsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7SUFDRCxPQUFPLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM3QixDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxTQUFTLElBQUksQ0FBQyxJQUFZO0lBQ3RCLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtRQUMzQixVQUFVLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzlCLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQztBQUVEOzs7Ozs7R0FNRztBQUNILFNBQVMsaUJBQWlCLENBQUMsT0FBZ0IsRUFBRSxHQUFXO0lBQ3BELE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN4QyxJQUFJLEdBQUcsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksTUFBTSxFQUFFLENBQUM7UUFDdEMsTUFBTSxTQUFTLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3JDLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBQ0QsT0FBTyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7QUFDOUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUmVxdWVzdCB9IGZyb20gXCJAcGxheXdyaWdodC90ZXN0XCI7XG5pbXBvcnQge1xuICAgIGV4cGVjdCxcbiAgICB0ZXN0IGFzIGJhc2Vcbn0gZnJvbSBcIkBwbGF5d3JpZ2h0L3Rlc3RcIjtcbmltcG9ydCB7IGZldGNoUnVtSmF2YVNjcmlwdCB9IGZyb20gXCIuL2luc3RhbGwuanNcIjtcbmltcG9ydCB7IHVuY29tcHJlc3MgfSBmcm9tIFwic25hcHB5anNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBXYWl0Rm9yQmVhY29uc09wdGlvbnMge1xuICAgIC8qKlxuICAgICAqIFRoZSBtaW5pbXVtIG51bWJlciBvZiBiZWFjb24gcmVxdWVzdHMgdG8gd2FpdCBmb3JcbiAgICAgKi9cbiAgICBtaW5Db3VudD86IG51bWJlcjtcbiAgICAvKipcbiAgICAgKiBUaGUgbWF4aW11bSB0aW1lIHRvIHdhaXQgZm9yIGJlYWNvbiByZXF1ZXN0cywgaW4gbWlsbGlzZWNvbmRzIC0gRGVmYXVsdDogNV8wMDBcbiAgICAgKi9cbiAgICB0aW1lb3V0PzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEV4cGVjdE9wdGlvbnMge1xuICAgIC8qKlxuICAgICAqIFRoZSBtYXhpbXVtIHRpbWUgdG8gd2FpdCBmb3IgdGhlIGV2ZW50IHRvIGJlIHNlbnQsIGluIG1pbGxpc2Vjb25kcyAtIERlZmF1bHQ6IDVfMDAwXG4gICAgICovXG4gICAgdGltZW91dD86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEeW5hdHJhY2VUZXN0aW5nIHtcbiAgICAvKipcbiAgICAgKiBXYWl0cyBmb3IgYSBzcGVjaWZpZWQgbnVtYmVyIG9mIGJlYWNvbiByZXF1ZXN0cyBvciB1bnRpbCBhIHRpbWVvdXQgb2NjdXJzLlxuICAgICAqXG4gICAgICogQHBhcmFtIG9wdGlvbnMgQ29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB3YWl0aW5nIGZvciBiZWFjb25zXG4gICAgICogQHJldHVybnMgICAgICAgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2l0aCBhbiBhcnJheSBvZiBiZWFjb24gcmVxdWVzdHNcbiAgICAgKi9cbiAgICB3YWl0Rm9yQmVhY29ucyhvcHRpb25zPzogV2FpdEZvckJlYWNvbnNPcHRpb25zKTogUHJvbWlzZTxCZWFjb25SZXF1ZXN0W10+O1xuXG4gICAgLyoqXG4gICAgICogVmVyaWZpZXMgdGhhdCBhIHNwZWNpZmljIGV2ZW50IGhhcyBiZWVuIHNlbnQsIG9wdGlvbmFsbHkgd2l0aGluIGEgdGltZW91dCBwZXJpb2QuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZXZlbnQgICBUaGUgZXZlbnQgdG8gY2hlY2ssIHJlcHJlc2VudGVkIGFzIGEga2V5LXZhbHVlIHBhaXIgb2JqZWN0LiBUaGlzIHVzZXMgUGxheXdyaWdodHMgZXhwZWN0KGV2ZW50KS50b01hdGNoT2JqZWN0LlxuICAgICAqIEBwYXJhbSBvcHRpb25zIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIHZlcmlmaWNhdGlvblxuICAgICAqIEByZXR1cm5zICAgICAgIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGV2ZW50IGlzIGNvbmZpcm1lZCB0byBoYXZlIGJlZW4gc2VudFxuICAgICAqL1xuICAgIGV4cGVjdFRvSGF2ZVNlbnRFdmVudChldmVudDogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sIG9wdGlvbnM/OiBFeHBlY3RPcHRpb25zKTogUHJvbWlzZTx2b2lkPjtcblxuICAgIC8qKlxuICAgICAqIFZlcmlmaWVzIHRoYXQgYSBzcGVjaWZpYyBldmVudCBoYXMgYmVlbiBzZW50IGEgc3BlY2lmaWVkIG51bWJlciBvZiB0aW1lcywgb3B0aW9uYWxseSB3aXRoaW4gYSB0aW1lb3V0IHBlcmlvZC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBldmVudCAgIFRoZSBldmVudCB0byBjaGVjaywgcmVwcmVzZW50ZWQgYXMgYSBrZXktdmFsdWUgcGFpciBvYmplY3QuIFRoaXMgdXNlcyBQbGF5d3JpZ2h0cyBleHBlY3QoZXZlbnQpLnRvTWF0Y2hPYmplY3QuXG4gICAgICogQHBhcmFtIHRpbWVzICAgVGhlIGV4YWN0IG51bWJlciBvZiB0aW1lcyB0aGUgZXZlbnQgaXMgZXhwZWN0ZWQgdG8gaGF2ZSBiZWVuIHNlbnRcbiAgICAgKiBAcGFyYW0gb3B0aW9ucyBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoZSB2ZXJpZmljYXRpb25cbiAgICAgKiBAcmV0dXJucyAgICAgICBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBldmVudCBpcyBjb25maXJtZWQgdG8gaGF2ZSBiZWVuIHNlbnQgdGhlIHNwZWNpZmllZCBudW1iZXIgb2YgdGltZXNcbiAgICAgKi9cbiAgICBleHBlY3RUb0hhdmVTZW50RXZlbnRUaW1lcyhldmVudDogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sIHRpbWVzOiBudW1iZXIsIG9wdGlvbnM/OiBFeHBlY3RPcHRpb25zKTogUHJvbWlzZTx2b2lkPjtcblxuICAgIC8qKlxuICAgICAqIENsZWFycyBhbGwgZXZlbnRzIGFuZCBiZWFjb25zLCBhbGxvd2luZyBmb3Igc3Vic2VxdWVudCBleHBlY3RhdGlvbnMgdG8gaWdub3JlIGV2ZW50cyB0aGF0IGhhdmUgYmVlbiBzZW50XG4gICAgICogaW4gdGhlIHBhc3QuIEV4YW1wbGU6XG4gICAgICogYGBgXG4gICAgICogc2VuZEZvb0V2ZW50KCk7XG4gICAgICogYXdhaXQgZHluYXRyYWNlVGVzdGluZy5leHBlY3RUb0hhdmVTZW50RXZlbnRUaW1lcyh7IGZvbzogXCJiYXJcIiB9LCAxKTtcbiAgICAgKiBkeW5hdHJhY2VUZXN0aW5nLmNsZWFyRXZlbnRzKCk7XG4gICAgICogYXdhaXQgZHluYXRyYWNlVGVzdGluZy5leHBlY3RUb0hhdmVTZW50RXZlbnRUaW1lcyh7IGZvbzogXCJiYXJcIiB9LCAxKTtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBjbGVhckV2ZW50cygpOiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJlYWNvblJlcXVlc3Qge1xuICAgIHVybDogc3RyaW5nO1xuICAgIGJvZHk6IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xufVxuXG5jb25zdCBERUZBVUxUX1RJTUVPVVQgPSA1XzAwMDtcblxuY29uc3QgZGVjb2RlciA9IG5ldyBUZXh0RGVjb2RlcigpO1xuXG5leHBvcnQgaW50ZXJmYWNlIER5bmF0cmFjZVRlc3RpbmdGaXh0dXJlIHtcbiAgICAvKipcbiAgICAgKiBUaGUgdGVzdGluZyBBUEkgcHJvdmlkaW5nIGV4cGVjdCBtZXRob2RzLlxuICAgICAqL1xuICAgIGR5bmF0cmFjZVRlc3Rpbmc6IER5bmF0cmFjZVRlc3Rpbmc7XG5cbiAgICAvKipcbiAgICAgKiBDb25maWd1cmF0aW9uIHRvIGVuYWJsZSBEeW5hdHJhY2UgdGVzdGluZyB3aXRoIGEgZ2l2ZW4gZW52aXJvbm1lbnQuXG4gICAgICovXG4gICAgZHluYXRyYWNlQ29uZmlnOiBEeW5hdHJhY2VDb25maWc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRHluYXRyYWNlQ29uZmlnIHtcbiAgICAvKipcbiAgICAgKiBUaGUgVVJMIG9mIHRoZSBEeW5hdHJhY2UgQVBJIGVuZHBvaW50IHRvIGNvbm5lY3QgdG8sIHNlZVxuICAgICAqIFtSVU0gbWFudWFsIGluc2VydGlvbiB0YWdzIEFQSV0oaHR0cHM6Ly9kb2NzLmR5bmF0cmFjZS5jb20vZG9jcy9kaXNjb3Zlci1keW5hdHJhY2UvcmVmZXJlbmNlcy9keW5hdHJhY2UtYXBpL2Vudmlyb25tZW50LWFwaS9ydW0vcnVtLW1hbnVhbC1pbnNlcnRpb24tdGFncylcbiAgICAgKiBmb3IgZGV0YWlscy4gRXhhbXBsZTogaHR0cHM6Ly97eW91ci1lbnZpcm9ubWVudC1pZH0ubGl2ZS5keW5hdHJhY2UuY29tIG9yXG4gICAgICogaHR0cHM6Ly97eW91ci1hY3RpdmVnYXRlLWRvbWFpbn0vZS97eW91ci1lbnZpcm9ubWVudC1pZH1cbiAgICAgKi9cbiAgICBlbmRwb2ludFVybDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGFwcGxpY2F0aW9uIElEIHRvIGlkZW50aWZ5IHRoZSBjb3JyZWN0IFJVTSBKYXZhU2NyaXB0IHRvIGZldGNoLiBZb3UgY2FuIGZpbmRcbiAgICAgKiB0aGlzIGluIHRoZSBVUkwgaWYgeW91IG9wZW4gdGhlIEV4cGVyaWVuY2UgVml0YWxzIGFwcCBhbmQgc2VsZWN0IHRoZSBmcm9udGVuZCB5b3VcbiAgICAgKiB3YW50IHRvIHRlc3QuIEV4YW1wbGU6IEFQUExJQ0FUSU9OLUFCQ0RFRjAxMjM0NTY3ODlcbiAgICAgKi9cbiAgICBhcHBJZDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGF1dGhlbnRpY2F0aW9uIHRva2VuIGZvciB0aGUgaW5zdGFsbGF0aW9uLiBTZWVcbiAgICAgKiBbVG9rZW5zIGFuZCBhdXRoZW50aWNhdGlvbl0oaHR0cHM6Ly9kb2NzLmR5bmF0cmFjZS5jb20vZG9jcy9kaXNjb3Zlci1keW5hdHJhY2UvcmVmZXJlbmNlcy9keW5hdHJhY2UtYXBpL2Jhc2ljcy9keW5hdHJhY2UtYXBpLWF1dGhlbnRpY2F0aW9uKS5cbiAgICAgKi9cbiAgICB0b2tlbjogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQWNjZXB0cyBhbiBhcnJheSBvZiByZWd1bGFyIGV4cHJlc3Npb25zIHRvIG1hdGNoIGFnYWluc3QgRHluYXRyYWNlLXJlbGF0ZWQgd2FybmluZ3MuIEJ5IGRlZmF1bHQsIHRoZXNlIHdhcm5pbmdzXG4gICAgICogdHJpZ2dlciB0ZXN0IGZhaWxzLiBJZiB5b3UgYW50aWNpcGF0ZSB3YXJuaW5ncyBhbmQgZG9uJ3Qgd2FudCB5b3VyIHRlc3RzIHRvIGZhaWwsIHVzZSB0aGlzIHNldHRpbmcgdG8gaWdub3JlIHRoZW1cbiAgICAgKiBieSBtZXNzYWdlLiBFeGFtcGxlOlxuICAgICAqIFtcImludmFsaWQgcHJvcGVydHkgbXlfYXBwX2RhdGFcXC5cXFxcdytbMC05X10qXCJdXG4gICAgICovXG4gICAgaWdub3JlV2FybmluZ3M/OiBzdHJpbmdbXTtcblxuICAgIC8qKlxuICAgICAqIER1bXAgdGhlIGFycmF5IG9mIER5bmF0cmFjZSBldmVudHMgaW50byB0aGUgY29uc29sZSBpbiBjYXNlIGFuIGFzc2VydGlvbiBmYWlscy5cbiAgICAgKi9cbiAgICBkdW1wRXZlbnRzT25GYWlsPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBXb3JrZXItc2NvcGVkIGZpeHR1cmVzIGZvciBjYWNoaW5nIFJVTSBKYXZhU2NyaXB0IGFjcm9zcyB0ZXN0cyBpbiB0aGUgc2FtZSB3b3JrZXIuXG4gKiBUaGlzIGltcHJvdmVzIHBlcmZvcm1hbmNlIGJ5IGF2b2lkaW5nIHJlZHVuZGFudCBuZXR3b3JrIHJlcXVlc3RzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIER5bmF0cmFjZVRlc3RpbmdXb3JrZXJGaXh0dXJlIHtcbiAgICAvKipcbiAgICAgKiBDYWNoZSBmb3IgUlVNIEphdmFTY3JpcHQgc25pcHBldHMsIHNjb3BlZCB0byB0aGUgd29ya2VyLlxuICAgICAqXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcnVtSmF2YVNjcmlwdENhY2hlOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xufVxuXG5leHBvcnQgY29uc3QgdGVzdCA9IGJhc2UuZXh0ZW5kPER5bmF0cmFjZVRlc3RpbmdGaXh0dXJlLCBEeW5hdHJhY2VUZXN0aW5nV29ya2VyRml4dHVyZT4oe1xuICAgIGR5bmF0cmFjZUNvbmZpZzogW3tcbiAgICAgICAgYXBwSWQ6IFwiXCIsXG4gICAgICAgIGVuZHBvaW50VXJsOiBcIlwiLFxuICAgICAgICB0b2tlbjogXCJcIlxuICAgIH0sIHsgb3B0aW9uOiB0cnVlIH1dLFxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWVtcHR5LXBhdHRlcm4gLS0gUGxheXdyaWdodCByZXF1aXJlcyBvYmplY3QgZGVzdHJ1Y3R1cmluZyBldmVuIHdoZW4gbm8gZGVwZW5kZW5jaWVzIGFyZSBuZWVkZWRcbiAgICBydW1KYXZhU2NyaXB0Q2FjaGU6IFthc3luYyAoeyB9LCB1c2UpID0+IHsgLy8gTk9TT05BUlxuICAgICAgICBjb25zdCBjYWNoZSA9IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KCk7XG4gICAgICAgIGF3YWl0IHVzZShjYWNoZSk7XG4gICAgfSwgeyBzY29wZTogXCJ3b3JrZXJcIiwgYXV0bzogdHJ1ZSwgYm94OiB0cnVlIH1dLFxuXG4gICAgZHluYXRyYWNlVGVzdGluZzogYXN5bmMgKHsgcGFnZSwgZHluYXRyYWNlQ29uZmlnLCBydW1KYXZhU2NyaXB0Q2FjaGUgfSwgdXNlKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgZW5kcG9pbnRVcmwsIGFwcElkLCB0b2tlbiwgaWdub3JlV2FybmluZ3MgPSBbXSwgZHVtcEV2ZW50c09uRmFpbCA9IGZhbHNlIH0gPSBkeW5hdHJhY2VDb25maWc7XG4gICAgICAgIGNvbnN0IGJlYWNvbnM6IHsgdXJsOiBzdHJpbmcsIGJvZHk6IFJlY29yZDxzdHJpbmcsIHVua25vd24+IH1bXSA9IFtdO1xuICAgICAgICBjb25zdCBldmVudHM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+W10gPSBbXTtcbiAgICAgICAgY29uc3Qgd2FybmluZ3M6IHN0cmluZ1tdID0gW107XG4gICAgICAgIGNvbnN0IGlnbm9yZVJlZ2V4ZXMgPSBpZ25vcmVXYXJuaW5ncy5tYXAoeCA9PiBuZXcgUmVnRXhwKHgsIFwiaVwiKSk7XG5cbiAgICAgICAgcGFnZS5vbihcImNvbnNvbGVcIiwgKG1zZykgPT4ge1xuICAgICAgICAgICAgaWYgKG1zZy50ZXh0KCkuaW5jbHVkZXMoXCJ5bmF0cmFjZVwiKSAmJiAhaWdub3JlUmVnZXhlcy5zb21lKHJlZ2V4ID0+IHJlZ2V4LnRlc3QobXNnLnRleHQoKSkpKSB7XG4gICAgICAgICAgICAgICAgd2FybmluZ3MucHVzaChtc2cudGV4dCgpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgYXdhaXQgc2V0dXBSdW1KYXZhU2NyaXB0KCk7XG5cbiAgICAgICAgYXdhaXQgdXNlKHtcbiAgICAgICAgICAgIGFzeW5jIHdhaXRGb3JCZWFjb25zKG9wdGlvbnM6IFdhaXRGb3JCZWFjb25zT3B0aW9ucyA9IHt9KTogUHJvbWlzZTxCZWFjb25SZXF1ZXN0W10+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IG1pbkNvdW50ID0gMCwgdGltZW91dCA9IERFRkFVTFRfVElNRU9VVCB9ID0gb3B0aW9ucztcbiAgICAgICAgICAgICAgICBjb25zdCBzdGFydCA9IERhdGUubm93KCk7XG5cbiAgICAgICAgICAgICAgICB3aGlsZSAoYmVhY29ucy5sZW5ndGggPCBtaW5Db3VudCAmJiAoRGF0ZS5ub3coKSAtIHN0YXJ0KSA8PSB0aW1lb3V0KSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh3YXJuaW5ncy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvd1dpdGhFdmVudER1bXAoXCJVbmV4cGVjdGVkIER5bmF0cmFjZSBBUEkgd2FybmluZ3M6IFwiICsgd2FybmluZ3Muam9pbihcIlxcblwiKSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgd2FpdCgxMDApO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChiZWFjb25zLmxlbmd0aCA8IG1pbkNvdW50KSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93V2l0aEV2ZW50RHVtcChgRm91bmQgb25seSAke2JlYWNvbnMubGVuZ3RofSBEeW5hdHJhY2UgYmVhY29ucyBhZnRlciB0aW1lb3V0IG9mICR7dGltZW91dH1tcywgYnV0IGV4cGVjdGVkIGF0IGxlYXN0ICR7bWluQ291bnR9LmApO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBiZWFjb25zO1xuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgYXN5bmMgZXhwZWN0VG9IYXZlU2VudEV2ZW50KFxuICAgICAgICAgICAgICAgIGV4cGVjdGVkRXZlbnQ6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICAgICAgICAgICAgICAgIG9wdGlvbnM6IEV4cGVjdE9wdGlvbnMgPSB7fVxuICAgICAgICAgICAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyB0aW1lb3V0ID0gREVGQVVMVF9USU1FT1VUIH0gPSBvcHRpb25zO1xuICAgICAgICAgICAgICAgIGNvbnN0IHN0YXJ0ID0gRGF0ZS5ub3coKTtcbiAgICAgICAgICAgICAgICBsZXQgbGFzdE5vbk1hdGNoOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IHVuZGVmaW5lZCA9IHZvaWQgMDtcbiAgICAgICAgICAgICAgICBsZXQgbmV4dENoZWNrSW5kZXggPSAwO1xuXG4gICAgICAgICAgICAgICAgd2hpbGUgKChEYXRlLm5vdygpIC0gc3RhcnQpIDw9IHRpbWVvdXQpIHtcbiAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IG5leHRDaGVja0luZGV4OyBpIDwgZXZlbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBiZWFjb25FdmVudCA9IGV2ZW50c1tpXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0KGJlYWNvbkV2ZW50KS50b01hdGNoT2JqZWN0KGV4cGVjdGVkRXZlbnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhc3ROb25NYXRjaCA9IGJlYWNvbkV2ZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgbmV4dENoZWNrSW5kZXggPSBpICsgMTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBhd2FpdCB3YWl0KDEwMCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKCFsYXN0Tm9uTWF0Y2gpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3dXaXRoRXZlbnREdW1wKFwiRHluYXRyYWNlIGRpZG4ndCBzZW5kIGFueSBldmVudHMuXCIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGBbRHluYXRyYWNlIFRlc3RpbmddIERpZG4ndCBmaW5kIG1hdGNoaW5nIGV2ZW50cy5gKTtcbiAgICAgICAgICAgICAgICBleHBlY3QobGFzdE5vbk1hdGNoKS50b01hdGNoT2JqZWN0KGV4cGVjdGVkRXZlbnQpO1xuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgYXN5bmMgZXhwZWN0VG9IYXZlU2VudEV2ZW50VGltZXMoXG4gICAgICAgICAgICAgICAgZXhwZWN0ZWRFdmVudDogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gICAgICAgICAgICAgICAgdGltZXM6IG51bWJlcixcbiAgICAgICAgICAgICAgICBvcHRpb25zOiBFeHBlY3RPcHRpb25zID0ge31cbiAgICAgICAgICAgICk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgdGltZW91dCA9IERFRkFVTFRfVElNRU9VVCB9ID0gb3B0aW9ucztcbiAgICAgICAgICAgICAgICBjb25zdCBzdGFydCA9IERhdGUubm93KCk7XG4gICAgICAgICAgICAgICAgbGV0IGxhc3ROb25NYXRjaDogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfCB1bmRlZmluZWQgPSB2b2lkIDA7XG4gICAgICAgICAgICAgICAgbGV0IG5leHRDaGVja0luZGV4ID0gMDtcbiAgICAgICAgICAgICAgICBsZXQgZm91bmRUaW1lcyA9IDA7XG5cbiAgICAgICAgICAgICAgICB3aGlsZSAoKERhdGUubm93KCkgLSBzdGFydCkgPD0gdGltZW91dCkge1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gbmV4dENoZWNrSW5kZXg7IGkgPCBldmVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGJlYWNvbkV2ZW50ID0gZXZlbnRzW2ldO1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBlY3QoYmVhY29uRXZlbnQpLnRvTWF0Y2hPYmplY3QoZXhwZWN0ZWRFdmVudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm91bmRUaW1lcysrO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFzdE5vbk1hdGNoID0gYmVhY29uRXZlbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBuZXh0Q2hlY2tJbmRleCA9IGkgKyAxO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChmb3VuZFRpbWVzID09PSB0aW1lcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChmb3VuZFRpbWVzID4gdGltZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93V2l0aEV2ZW50RHVtcChgRXhwZWN0ZWQgJHt0aW1lc30gZXZlbnQgb2NjdXJyZW5jZXMsIGZvdW5kICR7Zm91bmRUaW1lc30uYCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgd2FpdCgxMDApO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICghbGFzdE5vbk1hdGNoKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93V2l0aEV2ZW50RHVtcChcIkR5bmF0cmFjZSBkaWRuJ3Qgc2VuZCBhbnkgZXZlbnRzXCIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChmb3VuZFRpbWVzIDwgdGltZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3dXaXRoRXZlbnREdW1wKGBEaWRuJ3QgZmluZCB0aGUgZXhwZWN0ZWQgYW1vdW50IG9mICR7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aW1lc1xuICAgICAgICAgICAgICAgICAgICB9IG1hdGNoaW5nIGV2ZW50cywgZm91bmQgJHtmb3VuZFRpbWVzfS5gKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBleHBlY3QobGFzdE5vbk1hdGNoKS50b01hdGNoT2JqZWN0KGV4cGVjdGVkRXZlbnQpO1xuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgY2xlYXJFdmVudHMoKTogdm9pZCB7XG4gICAgICAgICAgICAgICAgZXZlbnRzLmxlbmd0aCA9IDA7XG4gICAgICAgICAgICAgICAgYmVhY29ucy5sZW5ndGggPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICAvKipcbiAgICAgICAgICogVGhyb3dzIGFuIGVycm9yIHdpdGggYSBjdXN0b20gbWVzc2FnZS4gSWYgZXZlbnQgZHVtcGluZyBpcyBlbmFibGVkLCBsb2dzIHRoZSByZWNlaXZlZCBEeW5hdHJhY2UgZXZlbnRzIGJlZm9yZVxuICAgICAgICAgKiB0aHJvd2luZyB0aGUgZXJyb3IuXG4gICAgICAgICAqXG4gICAgICAgICAqIEBwYXJhbSBtZXNzYWdlIFRoZSBlcnJvciBtZXNzYWdlIHRvIGJlIHRocm93blxuICAgICAgICAgKi9cbiAgICAgICAgZnVuY3Rpb24gdGhyb3dXaXRoRXZlbnREdW1wKG1lc3NhZ2U6IHN0cmluZyk6IG5ldmVyIHtcbiAgICAgICAgICAgIGlmIChkdW1wRXZlbnRzT25GYWlsKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJSZWNlaXZlZCBEeW5hdHJhY2UgZXZlbnRzOlwiLCBldmVudHMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgYXN5bmMgZnVuY3Rpb24gc2V0dXBSdW1KYXZhU2NyaXB0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICAgICAgLy8gRmV0Y2ggUlVNIEphdmFTY3JpcHQgb25jZSBhbmQgY2FjaGUgaXRcbiAgICAgICAgICAgIGNvbnN0IGNhY2hlS2V5ID0gYCR7ZW5kcG9pbnRVcmx9OiR7YXBwSWR9YDtcbiAgICAgICAgICAgIGxldCBydW0gPSBydW1KYXZhU2NyaXB0Q2FjaGUuZ2V0KGNhY2hlS2V5KTtcbiAgICAgICAgICAgIGxldCBiZWFjb25Vcmk6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGlmICghcnVtKSB7XG4gICAgICAgICAgICAgICAgcnVtID0gYXdhaXQgZmV0Y2hSdW1KYXZhU2NyaXB0Q29udGVudChlbmRwb2ludFVybCwgYXBwSWQsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBiZWFjb25VcmkgPSBleHRyYWN0QmVhY29uVXJpKHJ1bSk7XG5cbiAgICAgICAgICAgICAgICBydW1KYXZhU2NyaXB0Q2FjaGUuc2V0KGNhY2hlS2V5LCBydW0pO1xuICAgICAgICAgICAgICAgIHJ1bUphdmFTY3JpcHRDYWNoZS5zZXQoYCR7Y2FjaGVLZXl9OmJlYWNvblVyaWAsIGJlYWNvblVyaSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGJlYWNvblVyaSA9IHJ1bUphdmFTY3JpcHRDYWNoZS5nZXQoYCR7Y2FjaGVLZXl9OmJlYWNvblVyaWApO1xuICAgICAgICAgICAgICAgIGlmICghYmVhY29uVXJpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkZhaWxlZCB0byByZXRyaWV2ZSBiZWFjb25VcmkgZnJvbSBjYWNoZS5cIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBMaXN0ZW4gdG8gbmV0d29yayByZXF1ZXN0cyB0byBjYXB0dXJlIGJlYWNvbiBkYXRhXG4gICAgICAgICAgICAvLyBUaGlzIGFwcHJvYWNoIGRvZXNuJ3QgaW50ZXJmZXJlIHdpdGggdXNlci1kZWZpbmVkIHJvdXRlc1xuICAgICAgICAgICAgcGFnZS5vbihcInJlcXVlc3RcIiwgKHJlcXVlc3QpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB1cmwgPSByZXF1ZXN0LnVybCgpO1xuICAgICAgICAgICAgICAgIC8vIENoZWNrIGlmIHRoaXMgaXMgYSBiZWFjb24gcmVxdWVzdCBtYXRjaGluZyB0aGUgZXh0cmFjdGVkIGJlYWNvblVyaVxuICAgICAgICAgICAgICAgIGlmICghKGJlYWNvblVyaSAmJiB1cmwuc3RhcnRzV2l0aChiZWFjb25VcmkpICYmIHVybC5pbmNsdWRlcyhcInR5PWpzXCIpKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IGJlYWNvbkJvZHlTdHJpbmcgPSBleHRyYWN0QmVhY29uQm9keShyZXF1ZXN0LCB1cmwpO1xuICAgICAgICAgICAgICAgIGlmICghYmVhY29uQm9keVN0cmluZykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJlYWNvbkJvZHk6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudHM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+W107XG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICB9ID0gSlNPTi5wYXJzZShiZWFjb25Cb2R5U3RyaW5nKTtcbiAgICAgICAgICAgICAgICAgICAgYmVhY29ucy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHVybDogdXJsLFxuICAgICAgICAgICAgICAgICAgICAgICAgYm9keTogYmVhY29uQm9keVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnRzLnB1c2goLi4uYmVhY29uQm9keS5kYXRhLmV2ZW50cyk7XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcIltEeW5hdHJhY2UgVGVzdGluZ10gRmFpbGVkIHRvIHBhcnNlIGJlYWNvbiBib2R5OlwiLCBlcnJvcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIC8vIFVzZSBhZGRJbml0U2NyaXB0IHRvIGluamVjdCBSVU0gc2NyaXB0IHRhZyBiZWZvcmUgYW55IHBhZ2Ugc2NyaXB0cyBleGVjdXRlXG4gICAgICAgICAgICBhd2FpdCBwYWdlLmFkZEluaXRTY3JpcHQocnVtKTtcbiAgICAgICAgfVxuICAgIH1cbn0pO1xuXG4vKipcbiAqIEZldGNoZXMgdGhlIFJVTSBKYXZhU2NyaXB0IGNvbnRlbnQgZnJvbSB0aGUgRHluYXRyYWNlIEFQSSBlbmRwb2ludC5cbiAqXG4gKiBAcGFyYW0gZW5kcG9pbnRVcmwgVGhlIFVSTCBvZiB0aGUgRHluYXRyYWNlIEFQSSBlbmRwb2ludFxuICogQHBhcmFtIGFwcElkICAgICAgIFRoZSBhcHBsaWNhdGlvbiBJRCB0byBpZGVudGlmeSB0aGUgY29ycmVjdCBSVU0gSmF2YVNjcmlwdFxuICogQHBhcmFtIHRva2VuICAgICAgIFRoZSBhdXRoZW50aWNhdGlvbiB0b2tlbiBmb3IgdGhlIGluc3RhbGxhdGlvblxuICogQHJldHVybnMgICAgICAgICAgIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHRvIHRoZSBSVU0gSmF2YVNjcmlwdCBjb250ZW50XG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGZldGNoUnVtSmF2YVNjcmlwdENvbnRlbnQoZW5kcG9pbnRVcmw6IHN0cmluZywgYXBwSWQ6IHN0cmluZywgdG9rZW46IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3QgcnVtQXBpUmVzdWx0ID0gYXdhaXQgZmV0Y2hSdW1KYXZhU2NyaXB0KGVuZHBvaW50VXJsLCBhcHBJZCwgdG9rZW4pO1xuICAgIGlmICghcnVtQXBpUmVzdWx0LmluY2x1ZGVzKFwiX2NvbXBsZXRlLmpzXCIpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIkR5bmF0cmFjZSByZWNlaXZlZCB1bmV4cGVjdGVkIFJVTSBKYXZhU2NyaXB0IHdoZW4gcmVxdWVzdGluZyB0aGUgSmF2YVNjcmlwdCBUYWcgdmlhIEFQSS5cIik7XG4gICAgfVxuXG4gICAgLy8gRXh0cmFjdCB0aGUgc3JjIFVSTCBmcm9tIHRoZSBzY3JpcHQgdGFnXG4gICAgY29uc3Qgc3JjTWF0Y2ggPSBydW1BcGlSZXN1bHQubWF0Y2goL3NyYz1cIihbXlwiXSspXCIvKTtcbiAgICBpZiAoIXNyY01hdGNoKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIkZhaWxlZCB0byBleHRyYWN0IHNyYyBVUkwgZnJvbSBSVU0gSmF2YVNjcmlwdCB0YWcuXCIpO1xuICAgIH1cbiAgICBjb25zdCBzY3JpcHRVcmwgPSBzcmNNYXRjaFsxXTtcblxuICAgIC8vIEZldGNoIHRoZSBhY3R1YWwgSmF2YVNjcmlwdCBjb250ZW50XG4gICAgY29uc3Qgc2NyaXB0UmVzcG9uc2UgPSBhd2FpdCBmZXRjaChzY3JpcHRVcmwpO1xuICAgIHJldHVybiBzY3JpcHRSZXNwb25zZS50ZXh0KCk7XG59XG5cbi8qKlxuICogRXh0cmFjdHMgdGhlIGJlYWNvbiBVUkkgZnJvbSB0aGUgUlVNIEphdmFTY3JpcHQgY29udGVudC5cbiAqXG4gKiBAcGFyYW0gcnVtIFRoZSBSVU0gSmF2YVNjcmlwdCBjb250ZW50IHRvIGV4dHJhY3QgdGhlIGJlYWNvbiBVUkkgZnJvbVxuICogQHJldHVybnMgICBUaGUgZXh0cmFjdGVkIGJlYWNvbiBVUklcbiAqL1xuZnVuY3Rpb24gZXh0cmFjdEJlYWNvblVyaShydW06IHN0cmluZyk6IHN0cmluZyB7XG4gICAgLy8gRXh0cmFjdCB0aGUgYmVhY29uVXJpIGZyb20gdGhlIEphdmFTY3JpcHQgY29udGVudFxuICAgIGNvbnN0IGJlYWNvblVyaU1hdGNoID0gcnVtLm1hdGNoKC9cImJlYWNvblVyaVwiOlwiKFteXCJdKylcIi8pO1xuICAgIGlmICghYmVhY29uVXJpTWF0Y2gpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRmFpbGVkIHRvIGV4dHJhY3QgYmVhY29uVXJpIGZyb20gUlVNIEphdmFTY3JpcHQgY29udGVudC5cIik7XG4gICAgfVxuICAgIHJldHVybiBiZWFjb25VcmlNYXRjaFsxXTtcbn1cblxuLyoqXG4gKiBXYWl0cyBmb3IgYSBnaXZlbiB0aW1lIGFuZCByZXNvbHZlcyB1cG9uIHRpbWVvdXQuXG4gKlxuICogQHBhcmFtIHRpbWUgVGhlIHRpbWUgdG8gd2FpdCBpbiBtaWxsaXNlY29uZHNcbiAqIEByZXR1cm5zICAgIEEgcmVzb2x2ZWQgcHJvbWlzZSB3aGVuIHRoZSB0aW1lIHJhbiBvdXRcbiAqL1xuZnVuY3Rpb24gd2FpdCh0aW1lOiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgICAgc2V0VGltZW91dChyZXNvbHZlLCB0aW1lKTtcbiAgICB9KTtcbn1cblxuLyoqXG4gKiBFeHRyYWN0cyB0aGUgYm9keSBvZiBhIGJlYWNvbiByZXF1ZXN0LCBvcHRpb25hbGx5IGRlY29tcHJlc3NpbmcgaXQgaWYgdGhlIFVSTCBpbmRpY2F0ZXMgY29tcHJlc3NlZCBkYXRhLlxuICpcbiAqIEBwYXJhbSByZXF1ZXN0IFRoZSByZXF1ZXN0IG9iamVjdCBjb250YWluaW5nIHRoZSBiZWFjb24gZGF0YVxuICogQHBhcmFtIHVybCAgICAgVGhlIFVSTCBvZiB0aGUgcmVxdWVzdCB0byBjaGVjayBmb3Igc3BlY2lmaWMgY29tcHJlc3Npb24gaW5kaWNhdG9yc1xuICogQHJldHVybnMgICAgICAgVGhlIGV4dHJhY3RlZCBib2R5IG9mIHRoZSBiZWFjb24gcmVxdWVzdCwgb3IgbnVsbCBpZiBubyByZXF1ZXN0IGJvZHkgaXMgcHJlc2VudFxuICovXG5mdW5jdGlvbiBleHRyYWN0QmVhY29uQm9keShyZXF1ZXN0OiBSZXF1ZXN0LCB1cmw6IHN0cmluZyk6IHN0cmluZyB8IG51bGwge1xuICAgIGNvbnN0IGJ1ZmZlciA9IHJlcXVlc3QucG9zdERhdGFCdWZmZXIoKTtcbiAgICBpZiAodXJsLmluY2x1ZGVzKFwiY289c25hcHB5XCIpICYmIGJ1ZmZlcikge1xuICAgICAgICBjb25zdCB1aW50OERhdGEgPSB1bmNvbXByZXNzKGJ1ZmZlcik7XG4gICAgICAgIHJldHVybiBkZWNvZGVyLmRlY29kZSh1aW50OERhdGEpO1xuICAgIH1cbiAgICByZXR1cm4gcmVxdWVzdC5wb3N0RGF0YSgpO1xufVxuIl19
|
|
319
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NvdXJjZS90ZXN0aW5nL3Rlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNILE1BQU0sRUFDTixJQUFJLElBQUksSUFBSSxFQUNmLE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFrRXRDLE1BQU0sZUFBZSxHQUFHLEtBQUssQ0FBQztBQUU5QixNQUFNLE9BQU8sR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO0FBK0RsQzs7R0FFRztBQUNILE1BQU0sa0JBQWtCLEdBQTJCO0lBQy9DLFdBQVcsRUFBRSwrRUFBK0U7SUFDNUYsS0FBSyxFQUFFLGlFQUFpRTtJQUN4RSxLQUFLLEVBQUUsa0VBQWtFO0NBQzVFLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBeUQ7SUFDcEYsZUFBZSxFQUFFLENBQUM7WUFDZCxLQUFLLEVBQUUsRUFBRTtZQUNULFdBQVcsRUFBRSxFQUFFO1lBQ2YsS0FBSyxFQUFFLEVBQUU7U0FDWixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDO0lBRXBCLDZIQUE2SDtJQUM3SCxrQkFBa0IsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUU7WUFDcEMsTUFBTSxLQUFLLEdBQUcsSUFBSSxHQUFHLEVBQWtCLENBQUM7WUFDeEMsTUFBTSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckIsQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUU5QyxnQkFBZ0IsRUFBRSxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsZUFB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QU8sT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO0FBQzlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFJlcXVlc3QgfSBmcm9tIFwiQHBsYXl3cmlnaHQvdGVzdFwiO1xuaW1wb3J0IHtcbiAgICBleHBlY3QsXG4gICAgdGVzdCBhcyBiYXNlXG59IGZyb20gXCJAcGxheXdyaWdodC90ZXN0XCI7XG5pbXBvcnQgeyBmZXRjaFJ1bUphdmFTY3JpcHQgfSBmcm9tIFwiLi9pbnN0YWxsLmpzXCI7XG5pbXBvcnQgeyB1bmNvbXByZXNzIH0gZnJvbSBcInNuYXBweWpzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgV2FpdEZvckJlYWNvbnNPcHRpb25zIHtcbiAgICAvKipcbiAgICAgKiBUaGUgbWluaW11bSBudW1iZXIgb2YgYmVhY29uIHJlcXVlc3RzIHRvIHdhaXQgZm9yXG4gICAgICovXG4gICAgbWluQ291bnQ/OiBudW1iZXI7XG4gICAgLyoqXG4gICAgICogVGhlIG1heGltdW0gdGltZSB0byB3YWl0IGZvciBiZWFjb24gcmVxdWVzdHMsIGluIG1pbGxpc2Vjb25kcyAtIERlZmF1bHQ6IDVfMDAwXG4gICAgICovXG4gICAgdGltZW91dD86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFeHBlY3RPcHRpb25zIHtcbiAgICAvKipcbiAgICAgKiBUaGUgbWF4aW11bSB0aW1lIHRvIHdhaXQgZm9yIHRoZSBldmVudCB0byBiZSBzZW50LCBpbiBtaWxsaXNlY29uZHMgLSBEZWZhdWx0OiA1XzAwMFxuICAgICAqL1xuICAgIHRpbWVvdXQ/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRHluYXRyYWNlVGVzdGluZyB7XG4gICAgLyoqXG4gICAgICogV2FpdHMgZm9yIGEgc3BlY2lmaWVkIG51bWJlciBvZiBiZWFjb24gcmVxdWVzdHMgb3IgdW50aWwgYSB0aW1lb3V0IG9jY3Vycy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBvcHRpb25zIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3Igd2FpdGluZyBmb3IgYmVhY29uc1xuICAgICAqIEByZXR1cm5zICAgICAgIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdpdGggYW4gYXJyYXkgb2YgYmVhY29uIHJlcXVlc3RzXG4gICAgICovXG4gICAgd2FpdEZvckJlYWNvbnMob3B0aW9ucz86IFdhaXRGb3JCZWFjb25zT3B0aW9ucyk6IFByb21pc2U8QmVhY29uUmVxdWVzdFtdPjtcblxuICAgIC8qKlxuICAgICAqIFZlcmlmaWVzIHRoYXQgYSBzcGVjaWZpYyBldmVudCBoYXMgYmVlbiBzZW50LCBvcHRpb25hbGx5IHdpdGhpbiBhIHRpbWVvdXQgcGVyaW9kLlxuICAgICAqXG4gICAgICogQHBhcmFtIGV2ZW50ICAgVGhlIGV2ZW50IHRvIGNoZWNrLCByZXByZXNlbnRlZCBhcyBhIGtleS12YWx1ZSBwYWlyIG9iamVjdC4gVGhpcyB1c2VzIFBsYXl3cmlnaHRzIGV4cGVjdChldmVudCkudG9NYXRjaE9iamVjdC5cbiAgICAgKiBAcGFyYW0gb3B0aW9ucyBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoZSB2ZXJpZmljYXRpb25cbiAgICAgKiBAcmV0dXJucyAgICAgICBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBldmVudCBpcyBjb25maXJtZWQgdG8gaGF2ZSBiZWVuIHNlbnRcbiAgICAgKi9cbiAgICBleHBlY3RUb0hhdmVTZW50RXZlbnQoZXZlbnQ6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LCBvcHRpb25zPzogRXhwZWN0T3B0aW9ucyk6IFByb21pc2U8dm9pZD47XG5cbiAgICAvKipcbiAgICAgKiBWZXJpZmllcyB0aGF0IGEgc3BlY2lmaWMgZXZlbnQgaGFzIGJlZW4gc2VudCBhIHNwZWNpZmllZCBudW1iZXIgb2YgdGltZXMsIG9wdGlvbmFsbHkgd2l0aGluIGEgdGltZW91dCBwZXJpb2QuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZXZlbnQgICBUaGUgZXZlbnQgdG8gY2hlY2ssIHJlcHJlc2VudGVkIGFzIGEga2V5LXZhbHVlIHBhaXIgb2JqZWN0LiBUaGlzIHVzZXMgUGxheXdyaWdodHMgZXhwZWN0KGV2ZW50KS50b01hdGNoT2JqZWN0LlxuICAgICAqIEBwYXJhbSB0aW1lcyAgIFRoZSBleGFjdCBudW1iZXIgb2YgdGltZXMgdGhlIGV2ZW50IGlzIGV4cGVjdGVkIHRvIGhhdmUgYmVlbiBzZW50XG4gICAgICogQHBhcmFtIG9wdGlvbnMgQ29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgdmVyaWZpY2F0aW9uXG4gICAgICogQHJldHVybnMgICAgICAgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgZXZlbnQgaXMgY29uZmlybWVkIHRvIGhhdmUgYmVlbiBzZW50IHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIHRpbWVzXG4gICAgICovXG4gICAgZXhwZWN0VG9IYXZlU2VudEV2ZW50VGltZXMoZXZlbnQ6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LCB0aW1lczogbnVtYmVyLCBvcHRpb25zPzogRXhwZWN0T3B0aW9ucyk6IFByb21pc2U8dm9pZD47XG5cbiAgICAvKipcbiAgICAgKiBDbGVhcnMgYWxsIGV2ZW50cyBhbmQgYmVhY29ucywgYWxsb3dpbmcgZm9yIHN1YnNlcXVlbnQgZXhwZWN0YXRpb25zIHRvIGlnbm9yZSBldmVudHMgdGhhdCBoYXZlIGJlZW4gc2VudFxuICAgICAqIGluIHRoZSBwYXN0LiBFeGFtcGxlOlxuICAgICAqIGBgYFxuICAgICAqIHNlbmRGb29FdmVudCgpO1xuICAgICAqIGF3YWl0IGR5bmF0cmFjZVRlc3RpbmcuZXhwZWN0VG9IYXZlU2VudEV2ZW50VGltZXMoeyBmb286IFwiYmFyXCIgfSwgMSk7XG4gICAgICogZHluYXRyYWNlVGVzdGluZy5jbGVhckV2ZW50cygpO1xuICAgICAqIGF3YWl0IGR5bmF0cmFjZVRlc3RpbmcuZXhwZWN0VG9IYXZlU2VudEV2ZW50VGltZXMoeyBmb286IFwiYmFyXCIgfSwgMSk7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgY2xlYXJFdmVudHMoKTogdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCZWFjb25SZXF1ZXN0IHtcbiAgICB1cmw6IHN0cmluZztcbiAgICBib2R5OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbn1cblxuY29uc3QgREVGQVVMVF9USU1FT1VUID0gNV8wMDA7XG5cbmNvbnN0IGRlY29kZXIgPSBuZXcgVGV4dERlY29kZXIoKTtcblxuZXhwb3J0IGludGVyZmFjZSBEeW5hdHJhY2VUZXN0aW5nRml4dHVyZSB7XG4gICAgLyoqXG4gICAgICogVGhlIHRlc3RpbmcgQVBJIHByb3ZpZGluZyBleHBlY3QgbWV0aG9kcy5cbiAgICAgKi9cbiAgICBkeW5hdHJhY2VUZXN0aW5nOiBEeW5hdHJhY2VUZXN0aW5nO1xuXG4gICAgLyoqXG4gICAgICogQ29uZmlndXJhdGlvbiB0byBlbmFibGUgRHluYXRyYWNlIHRlc3Rpbmcgd2l0aCBhIGdpdmVuIGVudmlyb25tZW50LlxuICAgICAqL1xuICAgIGR5bmF0cmFjZUNvbmZpZzogRHluYXRyYWNlQ29uZmlnO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIER5bmF0cmFjZUNvbmZpZyB7XG4gICAgLyoqXG4gICAgICogVGhlIFVSTCBvZiB0aGUgRHluYXRyYWNlIEFQSSBlbmRwb2ludCB0byBjb25uZWN0IHRvLCBzZWVcbiAgICAgKiBbUlVNIG1hbnVhbCBpbnNlcnRpb24gdGFncyBBUEldKGh0dHBzOi8vZG9jcy5keW5hdHJhY2UuY29tL2RvY3MvZGlzY292ZXItZHluYXRyYWNlL3JlZmVyZW5jZXMvZHluYXRyYWNlLWFwaS9lbnZpcm9ubWVudC1hcGkvcnVtL3J1bS1tYW51YWwtaW5zZXJ0aW9uLXRhZ3MpXG4gICAgICogZm9yIGRldGFpbHMuIEV4YW1wbGU6IGh0dHBzOi8ve3lvdXItZW52aXJvbm1lbnQtaWR9LmxpdmUuZHluYXRyYWNlLmNvbSBvclxuICAgICAqIGh0dHBzOi8ve3lvdXItYWN0aXZlZ2F0ZS1kb21haW59L2Uve3lvdXItZW52aXJvbm1lbnQtaWR9XG4gICAgICovXG4gICAgZW5kcG9pbnRVcmw6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFRoZSBhcHBsaWNhdGlvbiBJRCB0byBpZGVudGlmeSB0aGUgY29ycmVjdCBSVU0gSmF2YVNjcmlwdCB0byBmZXRjaC4gWW91IGNhbiBmaW5kXG4gICAgICogdGhpcyBpbiB0aGUgVVJMIGlmIHlvdSBvcGVuIHRoZSBFeHBlcmllbmNlIFZpdGFscyBhcHAgYW5kIHNlbGVjdCB0aGUgZnJvbnRlbmQgeW91XG4gICAgICogd2FudCB0byB0ZXN0LiBFeGFtcGxlOiBBUFBMSUNBVElPTi1BQkNERUYwMTIzNDU2Nzg5XG4gICAgICovXG4gICAgYXBwSWQ6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFRoZSBhdXRoZW50aWNhdGlvbiB0b2tlbiBmb3IgdGhlIGluc3RhbGxhdGlvbi4gU2VlXG4gICAgICogW1Rva2VucyBhbmQgYXV0aGVudGljYXRpb25dKGh0dHBzOi8vZG9jcy5keW5hdHJhY2UuY29tL2RvY3MvZGlzY292ZXItZHluYXRyYWNlL3JlZmVyZW5jZXMvZHluYXRyYWNlLWFwaS9iYXNpY3MvZHluYXRyYWNlLWFwaS1hdXRoZW50aWNhdGlvbikuXG4gICAgICovXG4gICAgdG9rZW46IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEFjY2VwdHMgYW4gYXJyYXkgb2YgcmVndWxhciBleHByZXNzaW9ucyB0byBtYXRjaCBhZ2FpbnN0IER5bmF0cmFjZS1yZWxhdGVkIHdhcm5pbmdzLiBCeSBkZWZhdWx0LCB0aGVzZSB3YXJuaW5nc1xuICAgICAqIHRyaWdnZXIgdGVzdCBmYWlscy4gSWYgeW91IGFudGljaXBhdGUgd2FybmluZ3MgYW5kIGRvbid0IHdhbnQgeW91ciB0ZXN0cyB0byBmYWlsLCB1c2UgdGhpcyBzZXR0aW5nIHRvIGlnbm9yZSB0aGVtXG4gICAgICogYnkgbWVzc2FnZS4gRXhhbXBsZTpcbiAgICAgKiBbXCJpbnZhbGlkIHByb3BlcnR5IG15X2FwcF9kYXRhXFwuXFxcXHcrWzAtOV9dKlwiXVxuICAgICAqL1xuICAgIGlnbm9yZVdhcm5pbmdzPzogc3RyaW5nW107XG5cbiAgICAvKipcbiAgICAgKiBEdW1wIHRoZSBhcnJheSBvZiBEeW5hdHJhY2UgZXZlbnRzIGludG8gdGhlIGNvbnNvbGUgaW4gY2FzZSBhbiBhc3NlcnRpb24gZmFpbHMuXG4gICAgICovXG4gICAgZHVtcEV2ZW50c09uRmFpbD86IGJvb2xlYW47XG59XG5cbi8qKlxuICogV29ya2VyLXNjb3BlZCBmaXh0dXJlcyBmb3IgY2FjaGluZyBSVU0gSmF2YVNjcmlwdCBhY3Jvc3MgdGVzdHMgaW4gdGhlIHNhbWUgd29ya2VyLlxuICogVGhpcyBpbXByb3ZlcyBwZXJmb3JtYW5jZSBieSBhdm9pZGluZyByZWR1bmRhbnQgbmV0d29yayByZXF1ZXN0cy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEeW5hdHJhY2VUZXN0aW5nV29ya2VyRml4dHVyZSB7XG4gICAgLyoqXG4gICAgICogQ2FjaGUgZm9yIFJVTSBKYXZhU2NyaXB0IHNuaXBwZXRzLCBzY29wZWQgdG8gdGhlIHdvcmtlci5cbiAgICAgKlxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHJ1bUphdmFTY3JpcHRDYWNoZTogTWFwPHN0cmluZywgc3RyaW5nPjtcbn1cblxuLyoqXG4gKiBGaWVsZCBkZXNjcmlwdGlvbnMgZm9yIGNvbmZpZ3VyYXRpb24gZXJyb3IgbWVzc2FnZXMuXG4gKi9cbmNvbnN0IEZJRUxEX0RFU0NSSVBUSU9OUzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICBlbmRwb2ludFVybDogXCJUaGUgRHluYXRyYWNlIGVudmlyb25tZW50IFVSTCAoZS5nLiwgXFxcImh0dHBzOi8vYWJjMTIzNDUubGl2ZS5keW5hdHJhY2UuY29tXFxcIilcIixcbiAgICBhcHBJZDogXCJUaGUgUlVNIGFwcGxpY2F0aW9uIElEIChlLmcuLCBcXFwiQVBQTElDQVRJT04tQUJDREVGMDEyMzQ1Njc4OVxcXCIpXCIsXG4gICAgdG9rZW46IFwiVGhlIEFQSSB0b2tlbiB3aXRoIFxcXCJSZWFkIFJVTSBtYW51YWwgaW5zZXJ0aW9uIHRhZ3NcXFwiIHBlcm1pc3Npb25cIlxufTtcblxuZXhwb3J0IGNvbnN0IHRlc3QgPSBiYXNlLmV4dGVuZDxEeW5hdHJhY2VUZXN0aW5nRml4dHVyZSwgRHluYXRyYWNlVGVzdGluZ1dvcmtlckZpeHR1cmU+KHtcbiAgICBkeW5hdHJhY2VDb25maWc6IFt7XG4gICAgICAgIGFwcElkOiBcIlwiLFxuICAgICAgICBlbmRwb2ludFVybDogXCJcIixcbiAgICAgICAgdG9rZW46IFwiXCJcbiAgICB9LCB7IG9wdGlvbjogdHJ1ZSB9XSxcblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1lbXB0eS1wYXR0ZXJuIC0tIFBsYXl3cmlnaHQgcmVxdWlyZXMgb2JqZWN0IGRlc3RydWN0dXJpbmcgZXZlbiB3aGVuIG5vIGRlcGVuZGVuY2llcyBhcmUgbmVlZGVkXG4gICAgcnVtSmF2YVNjcmlwdENhY2hlOiBbYXN5bmMgKHsgfSwgdXNlKSA9PiB7IC8vIE5PU09OQVJcbiAgICAgICAgY29uc3QgY2FjaGUgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nPigpO1xuICAgICAgICBhd2FpdCB1c2UoY2FjaGUpO1xuICAgIH0sIHsgc2NvcGU6IFwid29ya2VyXCIsIGF1dG86IHRydWUsIGJveDogdHJ1ZSB9XSxcblxuICAgIGR5bmF0cmFjZVRlc3Rpbmc6IGFzeW5jICh7IHBhZ2UsIGR5bmF0cmFjZUNvbmZpZywgcnVtSmF2YVNjcmlwdENhY2hlIH0sIHVzZSkgPT4ge1xuICAgICAgICB2YWxpZGF0ZUR5bmF0cmFjZUNvbmZpZyhkeW5hdHJhY2VDb25maWcpO1xuXG4gICAgICAgIC8vIENoZWNrIGlmIHBhZ2UgaGFzIGFscmVhZHkgbmF2aWdhdGVkIGFuZCB3YXJuIGFib3V0IGZpeHR1cmUgb3JkZXJpbmdcbiAgICAgICAgY29uc3QgY3VycmVudFVybCA9IHBhZ2UudXJsKCk7XG4gICAgICAgIGlmIChjdXJyZW50VXJsICE9PSBcImFib3V0OmJsYW5rXCIpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgICAgICBgW0R5bmF0cmFjZSBUZXN0aW5nXSBXYXJuaW5nOiBQYWdlIGhhcyBhbHJlYWR5IG5hdmlnYXRlZCB0byBcIiR7Y3VycmVudFVybH1cIi5cblRoZSBSVU0gSmF2YVNjcmlwdCBtYXkgbm90IGJlIGluamVjdGVkLiBFbnN1cmUgZHluYXRyYWNlVGVzdGluZyBpcyBkZXN0cnVjdHVyZWRcbmJlZm9yZSBhbnkgZml4dHVyZXMgdGhhdCBuYXZpZ2F0ZSB0aGUgcGFnZS5cblxuRXhhbXBsZSBvZiBjb3JyZWN0IGZpeHR1cmUgb3JkZXI6XG4gICAgdGVzdChcIm15IHRlc3RcIiwgYXN5bmMgKHsgZHluYXRyYWNlVGVzdGluZywgbXlDdXN0b21GaXh0dXJlLCBwYWdlIH0pID0+IHsgLi4uIH0pO1xuXG5TZWUgdGVzdGluZy5tZCBmb3IgbW9yZSBpbmZvcm1hdGlvbi5gXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgeyBlbmRwb2ludFVybCwgYXBwSWQsIHRva2VuLCBpZ25vcmVXYXJuaW5ncyA9IFtdLCBkdW1wRXZlbnRzT25GYWlsID0gZmFsc2UgfSA9IGR5bmF0cmFjZUNvbmZpZztcbiAgICAgICAgY29uc3QgYmVhY29uczogeyB1cmw6IHN0cmluZywgYm9keTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfVtdID0gW107XG4gICAgICAgIGNvbnN0IGV2ZW50czogUmVjb3JkPHN0cmluZywgdW5rbm93bj5bXSA9IFtdO1xuICAgICAgICBjb25zdCB3YXJuaW5nczogc3RyaW5nW10gPSBbXTtcbiAgICAgICAgY29uc3QgaWdub3JlUmVnZXhlcyA9IGlnbm9yZVdhcm5pbmdzLm1hcCh4ID0+IG5ldyBSZWdFeHAoeCwgXCJpXCIpKTtcblxuICAgICAgICBwYWdlLm9uKFwiY29uc29sZVwiLCAobXNnKSA9PiB7XG4gICAgICAgICAgICBpZiAobXNnLnRleHQoKS5pbmNsdWRlcyhcInluYXRyYWNlXCIpICYmICFpZ25vcmVSZWdleGVzLnNvbWUocmVnZXggPT4gcmVnZXgudGVzdChtc2cudGV4dCgpKSkpIHtcbiAgICAgICAgICAgICAgICB3YXJuaW5ncy5wdXNoKG1zZy50ZXh0KCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBhd2FpdCBzZXR1cFJ1bUphdmFTY3JpcHQoKTtcblxuICAgICAgICBhd2FpdCB1c2Uoe1xuICAgICAgICAgICAgYXN5bmMgd2FpdEZvckJlYWNvbnMob3B0aW9uczogV2FpdEZvckJlYWNvbnNPcHRpb25zID0ge30pOiBQcm9taXNlPEJlYWNvblJlcXVlc3RbXT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgbWluQ291bnQgPSAwLCB0aW1lb3V0ID0gREVGQVVMVF9USU1FT1VUIH0gPSBvcHRpb25zO1xuICAgICAgICAgICAgICAgIGNvbnN0IHN0YXJ0ID0gRGF0ZS5ub3coKTtcblxuICAgICAgICAgICAgICAgIHdoaWxlIChiZWFjb25zLmxlbmd0aCA8IG1pbkNvdW50ICYmIChEYXRlLm5vdygpIC0gc3RhcnQpIDw9IHRpbWVvdXQpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHdhcm5pbmdzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93V2l0aEV2ZW50RHVtcChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlVuZXhwZWN0ZWQgRHluYXRyYWNlIEFQSSB3YXJuaW5nczogXCIgKyB3YXJuaW5ncy5qb2luKFwiXFxuXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwid2FpdEZvckJlYWNvbnMgLSB1bmV4cGVjdGVkIHdhcm5pbmdzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgd2FpdCgxMDApO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChiZWFjb25zLmxlbmd0aCA8IG1pbkNvdW50KSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93V2l0aEV2ZW50RHVtcChcbiAgICAgICAgICAgICAgICAgICAgICAgIGBGb3VuZCBvbmx5ICR7YmVhY29ucy5sZW5ndGh9IER5bmF0cmFjZSBiZWFjb25zIGFmdGVyIHRpbWVvdXQgb2YgJHt0aW1lb3V0fW1zLCBidXQgZXhwZWN0ZWQgYXQgbGVhc3QgJHttaW5Db3VudH0uYCxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwid2FpdEZvckJlYWNvbnMgLSB0aW1lb3V0XCJcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gYmVhY29ucztcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIGFzeW5jIGV4cGVjdFRvSGF2ZVNlbnRFdmVudChcbiAgICAgICAgICAgICAgICBleHBlY3RlZEV2ZW50OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgICAgICAgICAgICAgICBvcHRpb25zOiBFeHBlY3RPcHRpb25zID0ge31cbiAgICAgICAgICAgICk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgdGltZW91dCA9IERFRkFVTFRfVElNRU9VVCB9ID0gb3B0aW9ucztcbiAgICAgICAgICAgICAgICBjb25zdCBzdGFydCA9IERhdGUubm93KCk7XG4gICAgICAgICAgICAgICAgbGV0IGxhc3ROb25NYXRjaDogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfCB1bmRlZmluZWQgPSB2b2lkIDA7XG4gICAgICAgICAgICAgICAgbGV0IG5leHRDaGVja0luZGV4ID0gMDtcblxuICAgICAgICAgICAgICAgIHdoaWxlICgoRGF0ZS5ub3coKSAtIHN0YXJ0KSA8PSB0aW1lb3V0KSB7XG4gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSBuZXh0Q2hlY2tJbmRleDsgaSA8IGV2ZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYmVhY29uRXZlbnQgPSBldmVudHNbaV07XG4gICAgICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdChiZWFjb25FdmVudCkudG9NYXRjaE9iamVjdChleHBlY3RlZEV2ZW50KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXN0Tm9uTWF0Y2ggPSBiZWFjb25FdmVudDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIG5leHRDaGVja0luZGV4ID0gaSArIDE7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgd2FpdCgxMDApO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICghbGFzdE5vbk1hdGNoKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93V2l0aEV2ZW50RHVtcChcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiRHluYXRyYWNlIGRpZG4ndCBzZW5kIGFueSBldmVudHMuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcImV4cGVjdFRvSGF2ZVNlbnRFdmVudCAtIG5vIGV2ZW50c1wiXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgZHVtcEV2ZW50c0lmRW5hYmxlZChcImV4cGVjdFRvSGF2ZVNlbnRFdmVudCAtIG5vIG1hdGNoXCIpO1xuICAgICAgICAgICAgICAgIGV4cGVjdChsYXN0Tm9uTWF0Y2gpLnRvTWF0Y2hPYmplY3QoZXhwZWN0ZWRFdmVudCk7XG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICBhc3luYyBleHBlY3RUb0hhdmVTZW50RXZlbnRUaW1lcyhcbiAgICAgICAgICAgICAgICBleHBlY3RlZEV2ZW50OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgICAgICAgICAgICAgICB0aW1lczogbnVtYmVyLFxuICAgICAgICAgICAgICAgIG9wdGlvbnM6IEV4cGVjdE9wdGlvbnMgPSB7fVxuICAgICAgICAgICAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyB0aW1lb3V0ID0gREVGQVVMVF9USU1FT1VUIH0gPSBvcHRpb25zO1xuICAgICAgICAgICAgICAgIGNvbnN0IHN0YXJ0ID0gRGF0ZS5ub3coKTtcbiAgICAgICAgICAgICAgICBsZXQgbGFzdE5vbk1hdGNoOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IHVuZGVmaW5lZCA9IHZvaWQgMDtcbiAgICAgICAgICAgICAgICBsZXQgbmV4dENoZWNrSW5kZXggPSAwO1xuICAgICAgICAgICAgICAgIGxldCBmb3VuZFRpbWVzID0gMDtcblxuICAgICAgICAgICAgICAgIHdoaWxlICgoRGF0ZS5ub3coKSAtIHN0YXJ0KSA8PSB0aW1lb3V0KSB7XG4gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSBuZXh0Q2hlY2tJbmRleDsgaSA8IGV2ZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYmVhY29uRXZlbnQgPSBldmVudHNbaV07XG4gICAgICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdChiZWFjb25FdmVudCkudG9NYXRjaE9iamVjdChleHBlY3RlZEV2ZW50KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3VuZFRpbWVzKys7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXN0Tm9uTWF0Y2ggPSBiZWFjb25FdmVudDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIG5leHRDaGVja0luZGV4ID0gaSArIDE7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKGZvdW5kVGltZXMgPT09IHRpbWVzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKGZvdW5kVGltZXMgPiB0aW1lcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dXaXRoRXZlbnREdW1wKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBFeHBlY3RlZCAke3RpbWVzfSBldmVudCBvY2N1cnJlbmNlcywgZm91bmQgJHtmb3VuZFRpbWVzfS5gLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZXhwZWN0VG9IYXZlU2VudEV2ZW50VGltZXMgLSB0b28gbWFueSBtYXRjaGVzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgd2FpdCgxMDApO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICghbGFzdE5vbk1hdGNoKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93V2l0aEV2ZW50RHVtcChcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiRHluYXRyYWNlIGRpZG4ndCBzZW5kIGFueSBldmVudHNcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiZXhwZWN0VG9IYXZlU2VudEV2ZW50VGltZXMgLSBubyBldmVudHNcIlxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChmb3VuZFRpbWVzIDwgdGltZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3dXaXRoRXZlbnREdW1wKFxuICAgICAgICAgICAgICAgICAgICAgICAgYERpZG4ndCBmaW5kIHRoZSBleHBlY3RlZCBhbW91bnQgb2YgJHt0aW1lc30gbWF0Y2hpbmcgZXZlbnRzLCBmb3VuZCAke2ZvdW5kVGltZXN9LmAsXG4gICAgICAgICAgICAgICAgICAgICAgICBcImV4cGVjdFRvSGF2ZVNlbnRFdmVudFRpbWVzIC0gY291bnQgbWlzbWF0Y2hcIlxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGR1bXBFdmVudHNJZkVuYWJsZWQoXCJleHBlY3RUb0hhdmVTZW50RXZlbnRUaW1lcyAtIG5vIG1hdGNoXCIpO1xuICAgICAgICAgICAgICAgIGV4cGVjdChsYXN0Tm9uTWF0Y2gpLnRvTWF0Y2hPYmplY3QoZXhwZWN0ZWRFdmVudCk7XG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICBjbGVhckV2ZW50cygpOiB2b2lkIHtcbiAgICAgICAgICAgICAgICBldmVudHMubGVuZ3RoID0gMDtcbiAgICAgICAgICAgICAgICBiZWFjb25zLmxlbmd0aCA9IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBEdW1wcyByZWNlaXZlZCBldmVudHMgdG8gY29uc29sZSBpZiBkdW1wRXZlbnRzT25GYWlsIGlzIGVuYWJsZWQuXG4gICAgICAgICAqIEZvcm1hdHMgZXZlbnRzIGZvciByZWFkYWJpbGl0eS5cbiAgICAgICAgICpcbiAgICAgICAgICogQHBhcmFtIGNvbnRleHQgQWRkaXRpb25hbCBjb250ZXh0IGFib3V0IHdoeSBldmVudHMgYXJlIGJlaW5nIGR1bXBlZFxuICAgICAgICAgKi9cbiAgICAgICAgZnVuY3Rpb24gZHVtcEV2ZW50c0lmRW5hYmxlZChjb250ZXh0OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgICAgIGlmICghZHVtcEV2ZW50c09uRmFpbCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc29sZS5sb2coYFxcbltEeW5hdHJhY2UgVGVzdGluZ10gRXZlbnQgRHVtcCAoJHtjb250ZXh0fSlgKTtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGBUb3RhbCBldmVudHMgcmVjZWl2ZWQ6ICR7ZXZlbnRzLmxlbmd0aH1gKTtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGBUb3RhbCBiZWFjb25zIHJlY2VpdmVkOiAke2JlYWNvbnMubGVuZ3RofWApO1xuXG4gICAgICAgICAgICBpZiAoZXZlbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiTm8gZXZlbnRzIHdlcmUgcmVjZWl2ZWQuXCIpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIlxcblJlY2VpdmVkIGV2ZW50czpcIik7XG4gICAgICAgICAgICAgICAgZXZlbnRzLmZvckVhY2goKGV2ZW50LCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhgXFxuRXZlbnQgJHtpbmRleCArIDF9OmAsIEpTT04uc3RyaW5naWZ5KGV2ZW50LCBudWxsLCAyKSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogVGhyb3dzIGFuIGVycm9yIHdpdGggYSBjdXN0b20gbWVzc2FnZS4gSWYgZXZlbnQgZHVtcGluZyBpcyBlbmFibGVkLCBsb2dzIHRoZSByZWNlaXZlZCBEeW5hdHJhY2UgZXZlbnRzIGJlZm9yZVxuICAgICAgICAgKiB0aHJvd2luZyB0aGUgZXJyb3IuXG4gICAgICAgICAqXG4gICAgICAgICAqIEBwYXJhbSBtZXNzYWdlIFRoZSBlcnJvciBtZXNzYWdlIHRvIGJlIHRocm93blxuICAgICAgICAgKiBAcGFyYW0gY29udGV4dCBDb250ZXh0IGFib3V0IHRoZSBmYWlsdXJlIGZvciBldmVudCBkdW1waW5nXG4gICAgICAgICAqL1xuICAgICAgICBmdW5jdGlvbiB0aHJvd1dpdGhFdmVudER1bXAobWVzc2FnZTogc3RyaW5nLCBjb250ZXh0Pzogc3RyaW5nKTogbmV2ZXIge1xuICAgICAgICAgICAgZHVtcEV2ZW50c0lmRW5hYmxlZChjb250ZXh0ID8/IFwiYXNzZXJ0aW9uIGZhaWx1cmVcIik7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSk7XG4gICAgICAgIH1cblxuICAgICAgICBhc3luYyBmdW5jdGlvbiBzZXR1cFJ1bUphdmFTY3JpcHQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgICAgICAvLyBGZXRjaCBSVU0gSmF2YVNjcmlwdCBvbmNlIGFuZCBjYWNoZSBpdFxuICAgICAgICAgICAgY29uc3QgY2FjaGVLZXkgPSBgJHtlbmRwb2ludFVybH06JHthcHBJZH1gO1xuICAgICAgICAgICAgbGV0IHJ1bSA9IHJ1bUphdmFTY3JpcHRDYWNoZS5nZXQoY2FjaGVLZXkpO1xuICAgICAgICAgICAgbGV0IGJlYWNvblVyaTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgICAgICAgICAgaWYgKCFydW0pIHtcbiAgICAgICAgICAgICAgICBydW0gPSBhd2FpdCBmZXRjaFJ1bUphdmFTY3JpcHRDb250ZW50KGVuZHBvaW50VXJsLCBhcHBJZCwgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJlYWNvblVyaSA9IGV4dHJhY3RCZWFjb25VcmkocnVtKTtcblxuICAgICAgICAgICAgICAgIHJ1bUphdmFTY3JpcHRDYWNoZS5zZXQoY2FjaGVLZXksIHJ1bSk7XG4gICAgICAgICAgICAgICAgcnVtSmF2YVNjcmlwdENhY2hlLnNldChgJHtjYWNoZUtleX06YmVhY29uVXJpYCwgYmVhY29uVXJpKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgYmVhY29uVXJpID0gcnVtSmF2YVNjcmlwdENhY2hlLmdldChgJHtjYWNoZUtleX06YmVhY29uVXJpYCk7XG4gICAgICAgICAgICAgICAgaWYgKCFiZWFjb25VcmkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRmFpbGVkIHRvIHJldHJpZXZlIGJlYWNvblVyaSBmcm9tIGNhY2hlLlwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIExpc3RlbiB0byBuZXR3b3JrIHJlcXVlc3RzIHRvIGNhcHR1cmUgYmVhY29uIGRhdGFcbiAgICAgICAgICAgIC8vIFRoaXMgYXBwcm9hY2ggZG9lc24ndCBpbnRlcmZlcmUgd2l0aCB1c2VyLWRlZmluZWQgcm91dGVzXG4gICAgICAgICAgICBwYWdlLm9uKFwicmVxdWVzdFwiLCAocmVxdWVzdCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHVybCA9IHJlcXVlc3QudXJsKCk7XG4gICAgICAgICAgICAgICAgLy8gR2VuIDMgYmVhY29ucyBzaG91bGQgYWx3YXlzIGhhdmUgdHk9anNcbiAgICAgICAgICAgICAgICBpZiAoIXVybC5pbmNsdWRlcyhcInR5PWpzXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgYmVhY29uQm9keVN0cmluZyA9IGV4dHJhY3RCZWFjb25Cb2R5KHJlcXVlc3QsIHVybCk7XG4gICAgICAgICAgICAgICAgaWYgKCFiZWFjb25Cb2R5U3RyaW5nKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmVhY29uQm9keToge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50czogUmVjb3JkPHN0cmluZywgdW5rbm93bj5bXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIH0gPSBKU09OLnBhcnNlKGJlYWNvbkJvZHlTdHJpbmcpO1xuICAgICAgICAgICAgICAgICAgICBiZWFjb25zLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiB1cmwsXG4gICAgICAgICAgICAgICAgICAgICAgICBib2R5OiBiZWFjb25Cb2R5XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBldmVudHMucHVzaCguLi5iZWFjb25Cb2R5LmRhdGEuZXZlbnRzKTtcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFwiW0R5bmF0cmFjZSBUZXN0aW5nXSBGYWlsZWQgdG8gcGFyc2UgYmVhY29uIGJvZHk6XCIsIGVycm9yKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgLy8gVXNlIGFkZEluaXRTY3JpcHQgdG8gaW5qZWN0IFJVTSBzY3JpcHQgdGFnIGJlZm9yZSBhbnkgcGFnZSBzY3JpcHRzIGV4ZWN1dGVcbiAgICAgICAgICAgIGF3YWl0IHBhZ2UuYWRkSW5pdFNjcmlwdChydW0pO1xuICAgICAgICB9XG4gICAgfVxufSk7XG5cbi8qKlxuICogQ3JlYXRlcyBhIGhlbHBmdWwgZXJyb3IgZm9yIG1pc3NpbmcgY29uZmlndXJhdGlvbiBmaWVsZHMuXG4gKlxuICogQHBhcmFtIG1pc3NpbmdGaWVsZHMgQXJyYXkgb2YgZmllbGQgbmFtZXMgdGhhdCBhcmUgbWlzc2luZyBvciBlbXB0eVxuICogQHJldHVybnMgICAgICAgICAgICAgRXJyb3Igd2l0aCBkZXRhaWxlZCBzZXR1cCBpbnN0cnVjdGlvbnNcbiAqL1xuZnVuY3Rpb24gY3JlYXRlTWlzc2luZ0NvbmZpZ0Vycm9yKG1pc3NpbmdGaWVsZHM6IHN0cmluZ1tdKTogRXJyb3Ige1xuICAgIGNvbnN0IG1pc3NpbmdEZXRhaWxzID0gbWlzc2luZ0ZpZWxkc1xuICAgICAgICAubWFwKGZpZWxkID0+IGAgICAgLSAke2ZpZWxkfTogJHtGSUVMRF9ERVNDUklQVElPTlNbZmllbGRdfWApXG4gICAgICAgIC5qb2luKFwiXFxuXCIpO1xuXG4gICAgcmV0dXJuIG5ldyBFcnJvcihcbiAgICAgICAgYFtEeW5hdHJhY2UgVGVzdGluZ10gTWlzc2luZyByZXF1aXJlZCBjb25maWd1cmF0aW9uIGZpZWxkJHttaXNzaW5nRmllbGRzLmxlbmd0aCA+IDEgPyBcInNcIiA6IFwiXCJ9OiAke21pc3NpbmdGaWVsZHMuam9pbihcIiwgXCIpfVxuXG4ke21pc3NpbmdEZXRhaWxzfVxuXG5Db25maWd1cmUgdmlhIHRlc3QudXNlKCk6XG4gICAgdGVzdC51c2Uoe1xuICAgICAgICBkeW5hdHJhY2VDb25maWc6IHtcbiAgICAgICAgICAgIGVuZHBvaW50VXJsOiBwcm9jZXNzLmVudi5EVF9FTkRQT0lOVF9VUkwhLFxuICAgICAgICAgICAgYXBwSWQ6IHByb2Nlc3MuZW52LkRUX0FQUF9JRCEsXG4gICAgICAgICAgICB0b2tlbjogcHJvY2Vzcy5lbnYuRFRfVE9LRU4hXG4gICAgICAgIH1cbiAgICB9KTtcblxuU2VlIHRlc3RpbmcubWQgZm9yIGRldGFpbGVkIHNldHVwIGluc3RydWN0aW9ucy5gXG4gICAgKTtcbn1cblxuLyoqXG4gKiBWYWxpZGF0ZXMgdGhlIER5bmF0cmFjZSBjb25maWd1cmF0aW9uIGFuZCB0aHJvd3MgYSBoZWxwZnVsIGVycm9yIGlmIGludmFsaWQuXG4gKlxuICogQHBhcmFtIGNvbmZpZyBUaGUgY29uZmlndXJhdGlvbiB0byB2YWxpZGF0ZVxuICogQHRocm93cyBFcnJvciB3aXRoIGRldGFpbGVkIHNldHVwIGluc3RydWN0aW9ucyBpZiBjb25maWd1cmF0aW9uIGlzIGludmFsaWRcbiAqL1xuZnVuY3Rpb24gdmFsaWRhdGVEeW5hdHJhY2VDb25maWcoY29uZmlnOiBEeW5hdHJhY2VDb25maWcpOiB2b2lkIHtcbiAgICBjb25zdCBtaXNzaW5nRmllbGRzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgaWYgKCFjb25maWcuZW5kcG9pbnRVcmwgfHwgY29uZmlnLmVuZHBvaW50VXJsLnRyaW0oKSA9PT0gXCJcIikge1xuICAgICAgICBtaXNzaW5nRmllbGRzLnB1c2goXCJlbmRwb2ludFVybFwiKTtcbiAgICB9XG5cbiAgICBpZiAoIWNvbmZpZy5hcHBJZCB8fCBjb25maWcuYXBwSWQudHJpbSgpID09PSBcIlwiKSB7XG4gICAgICAgIG1pc3NpbmdGaWVsZHMucHVzaChcImFwcElkXCIpO1xuICAgIH1cblxuICAgIGlmICghY29uZmlnLnRva2VuIHx8IGNvbmZpZy50b2tlbi50cmltKCkgPT09IFwiXCIpIHtcbiAgICAgICAgbWlzc2luZ0ZpZWxkcy5wdXNoKFwidG9rZW5cIik7XG4gICAgfVxuXG4gICAgaWYgKG1pc3NpbmdGaWVsZHMubGVuZ3RoID4gMCkge1xuICAgICAgICB0aHJvdyBjcmVhdGVNaXNzaW5nQ29uZmlnRXJyb3IobWlzc2luZ0ZpZWxkcyk7XG4gICAgfVxufVxuXG4vKipcbiAqIEZldGNoZXMgdGhlIFJVTSBKYXZhU2NyaXB0IGNvbnRlbnQgZnJvbSB0aGUgRHluYXRyYWNlIEFQSSBlbmRwb2ludC5cbiAqXG4gKiBAcGFyYW0gZW5kcG9pbnRVcmwgVGhlIFVSTCBvZiB0aGUgRHluYXRyYWNlIEFQSSBlbmRwb2ludFxuICogQHBhcmFtIGFwcElkICAgICAgIFRoZSBhcHBsaWNhdGlvbiBJRCB0byBpZGVudGlmeSB0aGUgY29ycmVjdCBSVU0gSmF2YVNjcmlwdFxuICogQHBhcmFtIHRva2VuICAgICAgIFRoZSBhdXRoZW50aWNhdGlvbiB0b2tlbiBmb3IgdGhlIGluc3RhbGxhdGlvblxuICogQHJldHVybnMgICAgICAgICAgIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHRvIHRoZSBSVU0gSmF2YVNjcmlwdCBjb250ZW50XG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGZldGNoUnVtSmF2YVNjcmlwdENvbnRlbnQoZW5kcG9pbnRVcmw6IHN0cmluZywgYXBwSWQ6IHN0cmluZywgdG9rZW46IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3QgcnVtQXBpUmVzdWx0ID0gYXdhaXQgZmV0Y2hSdW1KYXZhU2NyaXB0KGVuZHBvaW50VXJsLCBhcHBJZCwgdG9rZW4pO1xuICAgIGlmICghcnVtQXBpUmVzdWx0LmluY2x1ZGVzKFwiX2NvbXBsZXRlLmpzXCIpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgRHluYXRyYWNlIHJlY2VpdmVkIHVuZXhwZWN0ZWQgUlVNIEphdmFTY3JpcHQgd2hlbiByZXF1ZXN0aW5nIHRoZSBKYXZhU2NyaXB0IFRhZyB2aWEgQVBJOiAke3J1bUFwaVJlc3VsdH1gKTtcbiAgICB9XG5cbiAgICAvLyBFeHRyYWN0IHRoZSBzcmMgVVJMIGZyb20gdGhlIHNjcmlwdCB0YWdcbiAgICBjb25zdCBzcmNNYXRjaCA9IHJ1bUFwaVJlc3VsdC5tYXRjaCgvc3JjPVwiKFteXCJdKylcIi8pO1xuICAgIGlmICghc3JjTWF0Y2gpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRmFpbGVkIHRvIGV4dHJhY3Qgc3JjIFVSTCBmcm9tIFJVTSBKYXZhU2NyaXB0IHRhZy5cIik7XG4gICAgfVxuICAgIGNvbnN0IHNjcmlwdFVybCA9IHNyY01hdGNoWzFdO1xuXG4gICAgLy8gRmV0Y2ggdGhlIGFjdHVhbCBKYXZhU2NyaXB0IGNvbnRlbnRcbiAgICBjb25zdCBzY3JpcHRSZXNwb25zZSA9IGF3YWl0IGZldGNoKHNjcmlwdFVybCk7XG4gICAgcmV0dXJuIHNjcmlwdFJlc3BvbnNlLnRleHQoKTtcbn1cblxuLyoqXG4gKiBFeHRyYWN0cyB0aGUgYmVhY29uIFVSSSBmcm9tIHRoZSBSVU0gSmF2YVNjcmlwdCBjb250ZW50LlxuICpcbiAqIEBwYXJhbSBydW0gVGhlIFJVTSBKYXZhU2NyaXB0IGNvbnRlbnQgdG8gZXh0cmFjdCB0aGUgYmVhY29uIFVSSSBmcm9tXG4gKiBAcmV0dXJucyAgIFRoZSBleHRyYWN0ZWQgYmVhY29uIFVSSVxuICovXG5mdW5jdGlvbiBleHRyYWN0QmVhY29uVXJpKHJ1bTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAvLyBFeHRyYWN0IHRoZSBiZWFjb25VcmkgZnJvbSB0aGUgSmF2YVNjcmlwdCBjb250ZW50XG4gICAgY29uc3QgYmVhY29uVXJpTWF0Y2ggPSBydW0ubWF0Y2goL1wiYmVhY29uVXJpXCI6XCIoW15cIl0rKVwiLyk7XG4gICAgaWYgKCFiZWFjb25VcmlNYXRjaCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJGYWlsZWQgdG8gZXh0cmFjdCBiZWFjb25VcmkgZnJvbSBSVU0gSmF2YVNjcmlwdCBjb250ZW50LlwiKTtcbiAgICB9XG4gICAgcmV0dXJuIGJlYWNvblVyaU1hdGNoWzFdO1xufVxuXG4vKipcbiAqIFdhaXRzIGZvciBhIGdpdmVuIHRpbWUgYW5kIHJlc29sdmVzIHVwb24gdGltZW91dC5cbiAqXG4gKiBAcGFyYW0gdGltZSBUaGUgdGltZSB0byB3YWl0IGluIG1pbGxpc2Vjb25kc1xuICogQHJldHVybnMgICAgQSByZXNvbHZlZCBwcm9taXNlIHdoZW4gdGhlIHRpbWUgcmFuIG91dFxuICovXG5mdW5jdGlvbiB3YWl0KHRpbWU6IG51bWJlcik6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgICBzZXRUaW1lb3V0KHJlc29sdmUsIHRpbWUpO1xuICAgIH0pO1xufVxuXG4vKipcbiAqIEV4dHJhY3RzIHRoZSBib2R5IG9mIGEgYmVhY29uIHJlcXVlc3QsIG9wdGlvbmFsbHkgZGVjb21wcmVzc2luZyBpdCBpZiB0aGUgVVJMIGluZGljYXRlcyBjb21wcmVzc2VkIGRhdGEuXG4gKlxuICogQHBhcmFtIHJlcXVlc3QgVGhlIHJlcXVlc3Qgb2JqZWN0IGNvbnRhaW5pbmcgdGhlIGJlYWNvbiBkYXRhXG4gKiBAcGFyYW0gdXJsICAgICBUaGUgVVJMIG9mIHRoZSByZXF1ZXN0IHRvIGNoZWNrIGZvciBzcGVjaWZpYyBjb21wcmVzc2lvbiBpbmRpY2F0b3JzXG4gKiBAcmV0dXJucyAgICAgICBUaGUgZXh0cmFjdGVkIGJvZHkgb2YgdGhlIGJlYWNvbiByZXF1ZXN0LCBvciBudWxsIGlmIG5vIHJlcXVlc3QgYm9keSBpcyBwcmVzZW50XG4gKi9cbmZ1bmN0aW9uIGV4dHJhY3RCZWFjb25Cb2R5KHJlcXVlc3Q6IFJlcXVlc3QsIHVybDogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgY29uc3QgYnVmZmVyID0gcmVxdWVzdC5wb3N0RGF0YUJ1ZmZlcigpO1xuICAgIGlmICh1cmwuaW5jbHVkZXMoXCJjbz1zbmFwcHlcIikgJiYgYnVmZmVyKSB7XG4gICAgICAgIGNvbnN0IHVpbnQ4RGF0YSA9IHVuY29tcHJlc3MoYnVmZmVyKTtcbiAgICAgICAgcmV0dXJuIGRlY29kZXIuZGVjb2RlKHVpbnQ4RGF0YSk7XG4gICAgfVxuICAgIHJldHVybiByZXF1ZXN0LnBvc3REYXRhKCk7XG59XG4iXX0=
|
|
@@ -7,6 +7,7 @@ export * from "./rum-events/rum-event.js";
|
|
|
7
7
|
export * from "./rum-events/event-updates.js";
|
|
8
8
|
export * from "./rum-events/json-event.js";
|
|
9
9
|
export * from "./rum-events/rum-biz-event.js";
|
|
10
|
+
export * from "./rum-events/rum-event-keys.js";
|
|
10
11
|
export * from "./rum-events/schema-versions.js";
|
|
11
12
|
export * from "./rum-events/rum-user-action-event.js";
|
|
12
13
|
export * from "./rum-events/rum-long-task-event.js";
|
|
@@ -7,6 +7,7 @@ export * from "./rum-events/rum-event.js";
|
|
|
7
7
|
export * from "./rum-events/event-updates.js";
|
|
8
8
|
export * from "./rum-events/json-event.js";
|
|
9
9
|
export * from "./rum-events/rum-biz-event.js";
|
|
10
|
+
export * from "./rum-events/rum-event-keys.js";
|
|
10
11
|
export * from "./rum-events/schema-versions.js";
|
|
11
12
|
export * from "./rum-events/rum-user-action-event.js";
|
|
12
13
|
export * from "./rum-events/rum-long-task-event.js";
|
|
@@ -29,4 +30,4 @@ export * from "./rum-events/shared-namespaces-and-fields/page-source-fields.js";
|
|
|
29
30
|
export * from "./rum-events/shared-namespaces-and-fields/view-source-fields.js";
|
|
30
31
|
export * from "./rum-events/shared-namespaces-and-fields/general-rum-error-fields.js";
|
|
31
32
|
export * from "./rum-events/shared-namespaces-and-fields/general-rum-event-fields.js";
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgtdHlwZWRvYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NvdXJjZS90eXBlcy9pbmRleC10eXBlZG9jLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyxnREFBZ0QsQ0FBQztBQUMvRCxjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMsbURBQW1ELENBQUM7QUFDbEUsY0FBYyx5REFBeUQsQ0FBQztBQUN4RSxjQUFjLHlEQUF5RCxDQUFDO0FBQ3hFLGNBQWMsNkRBQTZELENBQUM7QUFDNUUsY0FBYyw2REFBNkQsQ0FBQztBQUM1RSxjQUFjLCtEQUErRCxDQUFDO0FBQzlFLGNBQWMsZ0VBQWdFLENBQUM7QUFDL0UsY0FBYyxpRUFBaUUsQ0FBQztBQUNoRixjQUFjLGlFQUFpRSxDQUFDO0FBQ2hGLGNBQWMsdUVBQXVFLENBQUM7QUFDdEYsY0FBYyx1RUFBdUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2FwaS9keW5hdHJhY2UtYXBpLXR5cGVzLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi91c2VyLWFjdGlvbnMvdXNlci1hY3Rpb24tdHJhY2tlci5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vdXNlci1hY3Rpb25zL3VzZXItYWN0aW9uLWVuZC1ldmVudC5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vdXNlci1hY3Rpb25zL3VzZXItYWN0aW9uLXN0YXJ0LW9wdGlvbnMuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3J1bS1ldmVudHMvZXZlbnQtY29udGV4dC9ldmVudC1jb250ZXh0LmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9ydW0tZXZlbnRzL3J1bS1ldmVudC5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcnVtLWV2ZW50cy9ldmVudC11cGRhdGVzLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9ydW0tZXZlbnRzL2pzb24tZXZlbnQuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3J1bS1ldmVudHMvcnVtLWJpei1ldmVudC5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcnVtLWV2ZW50cy9ydW0tZXZlbnQta2V5cy5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcnVtLWV2ZW50cy9zY2hlbWEtdmVyc2lvbnMuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3J1bS1ldmVudHMvcnVtLXVzZXItYWN0aW9uLWV2ZW50LmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9ydW0tZXZlbnRzL3J1bS1sb25nLXRhc2stZXZlbnQuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3J1bS1ldmVudHMvcnVtLXdlYi1yZXF1ZXN0LWV2ZW50LmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9ydW0tZXZlbnRzL3J1bS1wYWdlLXN1bW1hcnktZXZlbnQuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3J1bS1ldmVudHMvcnVtLXNlbGZtb25pdG9yaW5nLWV2ZW50LmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9ydW0tZXZlbnRzL3J1bS11c2VyLWludGVyYWN0aW9uLWV2ZW50LmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9ydW0tZXZlbnRzL3J1bS12aXNpYmlsaXR5LWNoYW5nZS1ldmVudC5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcnVtLWV2ZW50cy9ydW0tc2Vzc2lvbi1wcm9wZXJ0aWVzLWV2ZW50LmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9ydW0tZXZlbnRzL3J1bS1zdGFuZGFsb25lLWV4Y2VwdGlvbi1ldmVudC5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcnVtLWV2ZW50cy9ydW0tc3RhbmRhbG9uZS1uYXZpZ2F0aW9uLWV2ZW50LmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9ydW0tZXZlbnRzL3J1bS1pbnRlcm5hbC1zZWxmbW9uaXRvcmluZy1ldmVudC5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcnVtLWV2ZW50cy9ydW0tc3RhbmRhbG9uZS1jc3AtcnVsZS12aW9sYXRpb24tZXZlbnQuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3J1bS1ldmVudHMvc2hhcmVkLW5hbWVzcGFjZXMtYW5kLWZpZWxkcy9jc3AtZmllbGRzLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9ydW0tZXZlbnRzL3NoYXJlZC1uYW1lc3BhY2VzLWFuZC1maWVsZHMvaHR0cC1uYW1lc3BhY2UuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3J1bS1ldmVudHMvc2hhcmVkLW5hbWVzcGFjZXMtYW5kLWZpZWxkcy9yZXF1ZXN0LWZpZWxkcy5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcnVtLWV2ZW50cy9zaGFyZWQtbmFtZXNwYWNlcy1hbmQtZmllbGRzL2V4Y2VwdGlvbi1maWVsZHMuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3J1bS1ldmVudHMvc2hhcmVkLW5hbWVzcGFjZXMtYW5kLWZpZWxkcy9uYXZpZ2F0aW9uLWZpZWxkcy5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcnVtLWV2ZW50cy9zaGFyZWQtbmFtZXNwYWNlcy1hbmQtZmllbGRzL3BhZ2Utc291cmNlLWZpZWxkcy5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcnVtLWV2ZW50cy9zaGFyZWQtbmFtZXNwYWNlcy1hbmQtZmllbGRzL3ZpZXctc291cmNlLWZpZWxkcy5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcnVtLWV2ZW50cy9zaGFyZWQtbmFtZXNwYWNlcy1hbmQtZmllbGRzL2dlbmVyYWwtcnVtLWVycm9yLWZpZWxkcy5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcnVtLWV2ZW50cy9zaGFyZWQtbmFtZXNwYWNlcy1hbmQtZmllbGRzL2dlbmVyYWwtcnVtLWV2ZW50LWZpZWxkcy5qc1wiO1xuIl19
|
|
@@ -25,5 +25,8 @@ export declare const enum OptionalBeaconQueryKeys {
|
|
|
25
25
|
PRIORITY = "pr",
|
|
26
26
|
RETRY_COUNT = "rc",
|
|
27
27
|
RETRY_REASON = "rr",
|
|
28
|
-
SESSION_INFORMATION = "si"
|
|
28
|
+
SESSION_INFORMATION = "si",// gen2
|
|
29
|
+
USER_ID = "us",
|
|
30
|
+
USER_SESSION_ID = "sn",
|
|
31
|
+
USER_SESSION_SEQUENCE_NUMBER = "sq"
|
|
29
32
|
}
|
|
@@ -28,5 +28,8 @@ export var OptionalBeaconQueryKeys;
|
|
|
28
28
|
OptionalBeaconQueryKeys["RETRY_COUNT"] = "rc";
|
|
29
29
|
OptionalBeaconQueryKeys["RETRY_REASON"] = "rr";
|
|
30
30
|
OptionalBeaconQueryKeys["SESSION_INFORMATION"] = "si";
|
|
31
|
+
OptionalBeaconQueryKeys["USER_ID"] = "us";
|
|
32
|
+
OptionalBeaconQueryKeys["USER_SESSION_ID"] = "sn";
|
|
33
|
+
OptionalBeaconQueryKeys["USER_SESSION_SEQUENCE_NUMBER"] = "sq";
|
|
31
34
|
})(OptionalBeaconQueryKeys || (OptionalBeaconQueryKeys = {}));
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVhY29uLXF1ZXJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc291cmNlL3R5cGVzL2ludGVybmFsL2JlYWNvbi1xdWVyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE1BQU0sQ0FBTixJQUFrQixlQWNqQjtBQWRELFdBQWtCLGVBQWU7SUFDN0Isd0NBQXFCLENBQUE7SUFDckIscUNBQWtCLENBQUE7SUFDbEIsa0NBQWUsQ0FBQTtJQUNmLGdEQUE2QixDQUFBO0lBQzdCLHNDQUFtQixDQUFBO0lBQ25CLDhCQUFXLENBQUE7SUFDWCxxQ0FBa0IsQ0FBQTtJQUNsQixnREFBNkIsQ0FBQTtJQUM3QiwwQ0FBdUIsQ0FBQTtJQUN2QixtQ0FBZ0IsQ0FBQTtJQUNoQix1Q0FBb0IsQ0FBQTtJQUNwQiwwQ0FBdUIsQ0FBQTtJQUN2QixtQ0FBZ0IsQ0FBQTtBQUNwQixDQUFDLEVBZGlCLGVBQWUsS0FBZixlQUFlLFFBY2hDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLENBQU4sSUFBa0IsdUJBVWpCO0FBVkQsV0FBa0IsdUJBQXVCO0lBQ3JDLDZDQUFrQixDQUFBO0lBQ2xCLHdDQUFhLENBQUE7SUFDYiwwQ0FBZSxDQUFBO0lBQ2YsNkNBQWtCLENBQUE7SUFDbEIsOENBQW1CLENBQUE7SUFDbkIscURBQTBCLENBQUE7SUFDMUIseUNBQWMsQ0FBQTtJQUNkLGlEQUFzQixDQUFBO0lBQ3RCLDhEQUFtQyxDQUFBO0FBQ3ZDLENBQUMsRUFWaUIsdUJBQXVCLEtBQXZCLHVCQUF1QixRQVV4QyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjb25zdCBlbnVtIEJlYWNvblF1ZXJ5S2V5cyB7XG4gICAgQVBQTElDQVRJT05fSUQgPSBcImFpXCIsXG4gICAgQkVBQ09OX1RZUEUgPSBcInR5XCIsXG4gICAgQk9EWV9DUkMgPSBcImJjXCIsXG4gICAgQ09ORklHVVJBVElPTl9SRVZJU0lPTiA9IFwiY3JcIixcbiAgICBDT05URU5UX1RZUEUgPSBcImN5XCIsXG4gICAgRU5EID0gXCJlbmRcIixcbiAgICBFTlZJUk9OTUVOVCA9IFwiZW5cIixcbiAgICBGUk9OVEVORF9BR0VOVF9WRVJTSU9OID0gXCJhdlwiLFxuICAgIFBST1RPQ09MX1ZFUlNJT04gPSBcInB2XCIsXG4gICAgUVVFUllfQ1JDID0gXCJxY1wiLFxuICAgIFNFTkRJTkdfQ0FVU0UgPSBcInNjXCIsXG4gICAgU0VORElOR19TVFJBVEVHWSA9IFwic3NcIixcbiAgICBUSU1FU1RBTVAgPSBcInN0XCJcbn1cblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGNvbnN0IGVudW0gT3B0aW9uYWxCZWFjb25RdWVyeUtleXMge1xuICAgIENPTVBSRVNTSU9OID0gXCJjb1wiLFxuICAgIERUX0FESyA9IFwiZGFcIiwgLy8gdW51c2VkIHVudGlsIGZ1cnRoZXIgbm90aWNlXG4gICAgUFJJT1JJVFkgPSBcInByXCIsXG4gICAgUkVUUllfQ09VTlQgPSBcInJjXCIsXG4gICAgUkVUUllfUkVBU09OID0gXCJyclwiLFxuICAgIFNFU1NJT05fSU5GT1JNQVRJT04gPSBcInNpXCIsIC8vIGdlbjJcbiAgICBVU0VSX0lEID0gXCJ1c1wiLFxuICAgIFVTRVJfU0VTU0lPTl9JRCA9IFwic25cIixcbiAgICBVU0VSX1NFU1NJT05fU0VRVUVOQ0VfTlVNQkVSID0gXCJzcVwiXG59XG4iXX0=
|
|
@@ -4,6 +4,9 @@
|
|
|
4
4
|
* @internal not supposed to be promoted to customers
|
|
5
5
|
*/
|
|
6
6
|
export declare const eventContextSymbol: unique symbol;
|
|
7
|
+
/**
|
|
8
|
+
* @ignore
|
|
9
|
+
*/
|
|
7
10
|
export type EventContextField = typeof eventContextSymbol;
|
|
8
11
|
/**
|
|
9
12
|
* All the possible types for the event context object.
|
|
@@ -103,4 +103,4 @@ export var RUMUserInteractionEventContextSubTypes;
|
|
|
103
103
|
RUMUserInteractionEventContextSubTypes["DROP"] = "drop";
|
|
104
104
|
RUMUserInteractionEventContextSubTypes["SINGLE"] = "single";
|
|
105
105
|
})(RUMUserInteractionEventContextSubTypes || (RUMUserInteractionEventContextSubTypes = {}));
|
|
106
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NvdXJjZS90eXBlcy9ydW0tZXZlbnRzL2V2ZW50LWNvbnRleHQvZXZlbnQtY29udGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsTUFBTSxFQUFFLENBQUM7QUFpRTNDOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFOLElBQWtCLGdCQXNCakI7QUF0QkQsV0FBa0IsZ0JBQWdCO0lBQzlCLGtEQUE4QixDQUFBO0lBQzlCLHFDQUFpQixDQUFBO0lBQ2pCLG1EQUErQixDQUFBO0lBQy9CLHVEQUFtQyxDQUFBO0lBQ25DLDRDQUF3QixDQUFBO0lBQ3hCLDJDQUF1QixDQUFBO0lBQ3ZCLDhDQUEwQixDQUFBO0lBQzFCLCtGQUEyRSxDQUFBO0lBQzNFLDBEQUFzQyxDQUFBO0lBQ3RDLGlFQUE2QyxDQUFBO0lBQzdDLHFEQUFpQyxDQUFBO0lBQ2pDLHVDQUFtQixDQUFBO0lBQ25CLHNEQUFrQyxDQUFBO0lBQ2xDLHNEQUFrQyxDQUFBO0lBQ2xDLHlDQUFxQixDQUFBO0lBQ3JCLG9EQUFnQyxDQUFBO0lBQ2hDLG1DQUFlLENBQUE7SUFDZix3Q0FBb0IsQ0FBQTtJQUNwQixpQ0FBYSxDQUFBO0lBQ2IsK0JBQVcsQ0FBQTtJQUNYLHdEQUFvQyxDQUFBO0FBQ3hDLENBQUMsRUF0QmlCLGdCQUFnQixLQUFoQixnQkFBZ0IsUUFzQmpDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sQ0FBTixJQUFrQixpQkFTakI7QUFURCxXQUFrQixpQkFBaUI7SUFDL0IsbURBQThCLENBQUE7SUFDOUIsc0NBQWlCLENBQUE7SUFDakIsNENBQXVCLENBQUE7SUFDdkIsOENBQXlCLENBQUE7SUFDekIsaURBQTRCLENBQUE7SUFDNUIsd0NBQW1CLENBQUE7SUFDbkIsZ0RBQTJCLENBQUE7SUFDM0IseURBQW9DLENBQUE7QUFDeEMsQ0FBQyxFQVRpQixpQkFBaUIsS0FBakIsaUJBQWlCLFFBU2xDO0FBNkNEOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFOLElBQWtCLGlDQUtqQjtBQUxELFdBQWtCLGlDQUFpQztJQUMvQyxvREFBZSxDQUFBO0lBQ2YsOERBQXlCLENBQUE7SUFDekIsMERBQXFCLENBQUE7SUFDckIsc0VBQWlDLENBQUE7QUFDckMsQ0FBQyxFQUxpQixpQ0FBaUMsS0FBakMsaUNBQWlDLFFBS2xEO0FBMkREOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFOLElBQWtCLGlDQUdqQjtBQUhELFdBQWtCLGlDQUFpQztJQUMvQyw4REFBeUIsQ0FBQTtJQUN6Qix3REFBbUIsQ0FBQTtBQUN2QixDQUFDLEVBSGlCLGlDQUFpQyxLQUFqQyxpQ0FBaUMsUUFHbEQ7QUE0QkQ7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQU4sSUFBa0IscUJBU2pCO0FBVEQsV0FBa0IscUJBQXFCO0lBQ25DOztPQUVHO0lBQ0gsd0NBQWUsQ0FBQTtJQUNmOztPQUVHO0lBQ0gsb0NBQVcsQ0FBQTtBQUNmLENBQUMsRUFUaUIscUJBQXFCLEtBQXJCLHFCQUFxQixRQVN0QztBQWlFRDs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBTixJQUFrQixzQ0FJakI7QUFKRCxXQUFrQixzQ0FBc0M7SUFDcEQsdURBQWEsQ0FBQTtJQUNiLHVEQUFhLENBQUE7SUFDYiwyREFBaUIsQ0FBQTtBQUNyQixDQUFDLEVBSmlCLHNDQUFzQyxLQUF0QyxzQ0FBc0MsUUFJdkQiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRoZSBzeW1ib2wgdXNlZCB0byBzdG9yZSB0aGUgZXZlbnRDb250ZXh0IG9uIFJVTUV2ZW50c1xuICpcbiAqIEBpbnRlcm5hbCBub3Qgc3VwcG9zZWQgdG8gYmUgcHJvbW90ZWQgdG8gY3VzdG9tZXJzXG4gKi9cbmV4cG9ydCBjb25zdCBldmVudENvbnRleHRTeW1ib2wgPSBTeW1ib2woKTtcblxuZXhwb3J0IHR5cGUgRXZlbnRDb250ZXh0RmllbGQgPSB0eXBlb2YgZXZlbnRDb250ZXh0U3ltYm9sO1xuXG4vKipcbiAqIEFsbCB0aGUgcG9zc2libGUgdHlwZXMgZm9yIHRoZSBldmVudCBjb250ZXh0IG9iamVjdC5cbiAqXG4gKiBAY2F0ZWdvcnkgRXZlbnRzXG4gKi9cbmV4cG9ydCB0eXBlIEV2ZW50Q29udGV4dCA9XG4gICAgfCBSVU1FdmVudENvbnRleHRcbiAgICB8IFJVTVN0YW5kYWxvbmVDc3BSdWxlVmlvbGF0aW9uRXZlbnRDb250ZXh0XG4gICAgfCBSVU1TdGFuZGFsb25lRXhjZXB0aW9uRXZlbnRDb250ZXh0XG4gICAgfCBSVU1TdGFuZGFsb25lTmF2aWdhdGlvbkV2ZW50Q29udGV4dFxuICAgIHwgUlVNU3VtbWFyeUV2ZW50Q29udGV4dFxuICAgIHwgUlVNVXNlckFjdGlvbkV2ZW50Q29udGV4dFxuICAgIHwgUlVNVXNlckludGVyYWN0aW9uRXZlbnRDb250ZXh0XG4gICAgfCBSVU1XZWJSZXF1ZXN0RXZlbnRDb250ZXh0O1xuXG4vKipcbiAqIFRoZSBjb250ZXh0IHByb3ZpZGVkIGZvciBVc2VyIEFjdGlvbiBldmVudHMuXG4gKlxuICogQGV4cGVyaW1lbnRhbCBVc2VyIEFjdGlvbiBldmVudHMgYXJlIG5vdCBzdXBwb3J0ZWQgeWV0LlxuICogQGNhdGVnb3J5IFVzZXIgQWN0aW9uc1xuICovXG5leHBvcnQgdHlwZSBSVU1Vc2VyQWN0aW9uRXZlbnRDb250ZXh0ID1cbiAgICB8IFJVTU5hdmlnYXRpb25Vc2VyQWN0aW9uRXZlbnRDb250ZXh0XG4gICAgfCBSVU1SZXF1ZXN0VXNlckFjdGlvbkV2ZW50Q29udGV4dDtcblxuLyoqXG4gKiBUaGUgY29udGV4dCBwcm92aWRlZCBmb3IgV2ViUmVxdWVzdCBldmVudHMuXG4gKlxuICogQGNhdGVnb3J5IFJlcXVlc3RzXG4gKi9cbmV4cG9ydCB0eXBlIFJVTVdlYlJlcXVlc3RFdmVudENvbnRleHQgPVxuICAgIHwgUlVNTmF2aWdhdGlvbldlYlJlcXVlc3RFdmVudENvbnRleHRcbiAgICB8IFJVTVJlc291cmNlUmVxdWVzdEV2ZW50Q29udGV4dDtcblxuLyoqXG4gKiBUaGUgY29udGV4dCBwcm92aWRlZCBmb3Igd2ViIHJlcXVlc3RzIHdoaWNoIGNhbiBjb250YWluIHJlc291cmNlIHRpbWluZyBpbmZvcm1hdGlvbi5cbiAqXG4gKiBAY2F0ZWdvcnkgUmVxdWVzdHNcbiAqL1xuZXhwb3J0IHR5cGUgUlVNUmVzb3VyY2VSZXF1ZXN0RXZlbnRDb250ZXh0ID1cbiAgICB8IFJVTUFwaVdlYlJlcXVlc3RFdmVudENvbnRleHRcbiAgICB8IFJVTVJlc291cmNlV2ViUmVxdWVzdEV2ZW50Q29udGV4dDtcblxuLyoqXG4gKiBUaGUgY29udGV4dCBwcm92aWRlZCBmb3Igd2ViIHJlcXVlc3RzIHdoaWNoIHdlcmUgZWl0aGVyIHN0YXJ0ZWQgdmlhIHRoZSBmZXRjaCBBUEkgb3IgWE1MSHR0cFJlcXVlc3QuXG4gKlxuICogQGNhdGVnb3J5IFJlcXVlc3RzXG4gKi9cbmV4cG9ydCB0eXBlIFJVTUFwaVdlYlJlcXVlc3RFdmVudENvbnRleHQgPVxuICAgIHwgUlVNRmV0Y2hXZWJSZXF1ZXN0RXZlbnRDb250ZXh0XG4gICAgfCBSVU1YSFJXZWJSZXF1ZXN0RXZlbnRDb250ZXh0O1xuXG4vKipcbiAqIFRoZSBiYXNlIHR5cGUgZm9yIGFuIGV2ZW50IGNvbnRleHQgb2JqZWN0LlxuICpcbiAqIEBjYXRlZ29yeSBFdmVudHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCYXNlRXZlbnRDb250ZXh0IHtcbiAgICBbRXZlbnRDb250ZXh0S2V5cy5UWVBFXTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFRoZSBwcm9wZXJ0eSBuYW1lcyB0byBhY2Nlc3MgdGhlIGluZm9ybWF0aW9uIG9uIGFuIGV2ZW50IGNvbnRleHQgb2JqZWN0LlxuICpcbiAqIEBpbmxpbmVcbiAqIEBpZ25vcmVcbiAqL1xuZXhwb3J0IGNvbnN0IGVudW0gRXZlbnRDb250ZXh0S2V5cyB7XG4gICAgQ1NQX1ZJT0xBVElPTiA9IFwiY3NwVmlvbGF0aW9uXCIsXG4gICAgQ1VTVE9NID0gXCJjdXN0b21cIixcbiAgICBEUkFHX0VORF9FVkVOVCA9IFwiZHJhZ0VuZEV2ZW50XCIsXG4gICAgRFJBR19TVEFSVF9FVkVOVCA9IFwiZHJhZ1N0YXJ0RXZlbnRcIixcbiAgICBEUk9QX0VWRU5UID0gXCJkcm9wRXZlbnRcIixcbiAgICBFWENFUFRJT04gPSBcImV4Y2VwdGlvblwiLFxuICAgIEhJU1RPUllfQVBJID0gXCJoaXN0b3J5QXBpXCIsXG4gICAgTkFWSUdBVElPTl9DVVJSRU5UX0VOVFJZX0NIQU5HRV9FVkVOVCA9IFwibmF2aWdhdGlvbkN1cnJlbnRFbnRyeUNoYW5nZUV2ZW50XCIsXG4gICAgTkFWSUdBVElPTl9USU1JTkcgPSBcIm5hdmlnYXRpb25UaW1pbmdcIixcbiAgICBQQUdFX1RSQU5TSVRJT05fRVZFTlQgPSBcInBhZ2VUcmFuc2l0aW9uRXZlbnRcIixcbiAgICBQT1BfU1RBVEVfRVZFTlQgPSBcInBvcFN0YXRlRXZlbnRcIixcbiAgICBSRVFVRVNUID0gXCJyZXF1ZXN0XCIsXG4gICAgUkVRVUVTVF9IRUFERVJTID0gXCJyZXF1ZXN0SGVhZGVyc1wiLFxuICAgIFJFU09VUkNFX1RJTUlORyA9IFwicmVzb3VyY2VUaW1pbmdcIixcbiAgICBSRVNQT05TRSA9IFwicmVzcG9uc2VcIixcbiAgICBSRVNQT05TRV9FUlJPUiA9IFwicmVzcG9uc2VFcnJvclwiLFxuICAgIFNUQVRFID0gXCJzdGF0ZVwiLFxuICAgIFNVQl9UWVBFID0gXCJzdWJUeXBlXCIsXG4gICAgVFlQRSA9IFwidHlwZVwiLFxuICAgIFVSTCA9IFwidXJsXCIsXG4gICAgVVNFUl9JTlRFUkFDVElPTiA9IFwidXNlckludGVyYWN0aW9uXCJcbn1cblxuLyoqXG4gKiBUaGUgYXZhaWxhYmxlIGV2ZW50IGNvbnRleHQgdHlwZXMuXG4gKlxuICogQGNhdGVnb3J5IEV2ZW50c1xuICovXG5leHBvcnQgY29uc3QgZW51bSBFdmVudENvbnRleHRUeXBlcyB7XG4gICAgQ1NQX1ZJT0xBVElPTiA9IFwiY3NwVmlvbGF0aW9uXCIsXG4gICAgQ1VTVE9NID0gXCJjdXN0b21cIixcbiAgICBFWENFUFRJT04gPSBcImV4Y2VwdGlvblwiLFxuICAgIE5BVklHQVRJT04gPSBcIm5hdmlnYXRpb25cIixcbiAgICBQQUdFX1NVTU1BUlkgPSBcInBhZ2VTdW1tYXJ5XCIsXG4gICAgUkVRVUVTVCA9IFwicmVxdWVzdFwiLFxuICAgIFVTRVJfQUNUSU9OID0gXCJ1c2VyX2FjdGlvblwiLFxuICAgIFVTRVJfSU5URVJBQ1RJT04gPSBcInVzZXJJbnRlcmFjdGlvblwiXG59XG5cbi8qKlxuICogVGhlIGNvbnRleHQgcHJvdmlkZWQgZm9yIEV4Y2VwdGlvbiBFdmVudHMuXG4gKlxuICogQHNlZSB7QGxpbmsgUlVNU3RhbmRhbG9uZUV4Y2VwdGlvbkV2ZW50fVxuICogQGNhdGVnb3J5IFN0YW5kYWxvbmUgRXJyb3JzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUlVNU3RhbmRhbG9uZUV4Y2VwdGlvbkV2ZW50Q29udGV4dCBleHRlbmRzIEJhc2VFdmVudENvbnRleHQge1xuICAgIFtFdmVudENvbnRleHRLZXlzLlRZUEVdOiBFdmVudENvbnRleHRUeXBlcy5FWENFUFRJT047XG4gICAgW0V2ZW50Q29udGV4dEtleXMuRVhDRVBUSU9OXTogdW5rbm93bjtcbn1cblxuLyoqXG4gKiBUaGUgY29udGV4dCBwcm92aWRlZCBmb3IgQ1NQIFZpb2xhdGlvbnMuXG4gKlxuICogQHNlZSB7QGxpbmsgUlVNU3RhbmRhbG9uZUNzcFJ1bGVWaW9sYXRpb25FdmVudH1cbiAqIEBjYXRlZ29yeSBTdGFuZGFsb25lIEVycm9yc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFJVTVN0YW5kYWxvbmVDc3BSdWxlVmlvbGF0aW9uRXZlbnRDb250ZXh0IGV4dGVuZHMgQmFzZUV2ZW50Q29udGV4dCB7XG4gICAgW0V2ZW50Q29udGV4dEtleXMuVFlQRV06IEV2ZW50Q29udGV4dFR5cGVzLkNTUF9WSU9MQVRJT047XG4gICAgW0V2ZW50Q29udGV4dEtleXMuQ1NQX1ZJT0xBVElPTl06IENTUFZpb2xhdGlvblJlcG9ydEJvZHkgfCBTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50O1xufVxuXG4vKipcbiAqIEFzIHNwZWNpZmllZCBpbiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvQ1NQVmlvbGF0aW9uUmVwb3J0Qm9keVxuICogQ3VycmVudGx5IG5vdCBhdmFpbGFibGUgaW4gVFMgeWV0XG4gKlxuICogQGlnbm9yZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIENTUFZpb2xhdGlvblJlcG9ydEJvZHkge1xuICAgIGJsb2NrZWRVUkw6IHN0cmluZztcbiAgICBjb2x1bW5OdW1iZXI6IG51bWJlciB8IG51bGw7XG4gICAgZGlzcG9zaXRpb246IHN0cmluZyB8IG51bGw7XG4gICAgZG9jdW1lbnRVUkw6IHN0cmluZztcbiAgICB2aW9sYXRlZERpcmVjdGl2ZTogc3RyaW5nIHwgbnVsbDtcbiAgICBlZmZlY3RpdmVEaXJlY3RpdmU6IHN0cmluZyB8IG51bGw7XG4gICAgbGluZU51bWJlcjogbnVtYmVyIHwgbnVsbDtcbiAgICBvcmlnaW5hbFBvbGljeTogc3RyaW5nIHwgbnVsbDtcbiAgICByZWZlcnJlcjogc3RyaW5nIHwgbnVsbDtcbiAgICBzYW1wbGU6IHN0cmluZyB8IG51bGw7XG4gICAgc291cmNlRmlsZTogc3RyaW5nIHwgbnVsbDtcbiAgICBzdGF0dXNDb2RlOiBudW1iZXIgfCBudWxsO1xufVxuXG4vKipcbiAqIFRoZSBhdmFpbGFibGUgc3VidHlwZXMgZm9yIHRoZSB7QGxpbmsgRXZlbnRDb250ZXh0VHlwZXMuUkVRVUVTVH0gdHlwZS5cbiAqXG4gKiBAaW5saW5lXG4gKiBAY2F0ZWdvcnkgUmVxdWVzdHNcbiAqL1xuZXhwb3J0IGNvbnN0IGVudW0gUlVNV2ViUmVxdWVzdEV2ZW50Q29udGV4dFN1YlR5cGVzIHtcbiAgICBGRVRDSCA9IFwiZmV0Y2hcIixcbiAgICBOQVZJR0FUSU9OID0gXCJuYXZpZ2F0aW9uXCIsXG4gICAgUkVTT1VSQ0UgPSBcInJlc291cmNlXCIsXG4gICAgWE1MSFRUUFJFUVVFU1QgPSBcInhtbGh0dHByZXF1ZXN0XCJcbn1cblxuLyoqXG4gKiBUaGUgZXZlbnQgY29udGV4dCBmb3IgYSBmZXRjaCByZXF1ZXN0LlxuICpcbiAqIEBzZWUge0BsaW5rIFJVTVJlc291cmNlVGltaW5nQmFzZWRXZWJSZXF1ZXN0RXZlbnR9XG4gKiBAY2F0ZWdvcnkgUmVxdWVzdHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSVU1GZXRjaFdlYlJlcXVlc3RFdmVudENvbnRleHQgZXh0ZW5kcyBCYXNlRXZlbnRDb250ZXh0IHtcbiAgICBbRXZlbnRDb250ZXh0S2V5cy5UWVBFXTogRXZlbnRDb250ZXh0VHlwZXMuUkVRVUVTVDtcbiAgICBbRXZlbnRDb250ZXh0S2V5cy5TVUJfVFlQRV06IFJVTVdlYlJlcXVlc3RFdmVudENvbnRleHRTdWJUeXBlcy5GRVRDSDtcbiAgICBbRXZlbnRDb250ZXh0S2V5cy5VUkxdPzogc3RyaW5nO1xuICAgIFtFdmVudENvbnRleHRLZXlzLlJFU09VUkNFX1RJTUlOR10/OiBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nIHwgdW5kZWZpbmVkO1xuICAgIFtFdmVudENvbnRleHRLZXlzLkNTUF9WSU9MQVRJT05dPzogQ1NQVmlvbGF0aW9uUmVwb3J0Qm9keSB8IFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQ7XG4gICAgW0V2ZW50Q29udGV4dEtleXMuUkVRVUVTVF0/OiBSZXF1ZXN0IHwgUmVxdWVzdEluaXQ7XG4gICAgW0V2ZW50Q29udGV4dEtleXMuUkVTUE9OU0VdPzogUmVzcG9uc2UgfCB1bmRlZmluZWQ7XG4gICAgW0V2ZW50Q29udGV4dEtleXMuUkVTUE9OU0VfRVJST1JdPzogRXJyb3IgfCB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogVGhlIGV2ZW50IGNvbnRleHQgZm9yIGEgWE1MSHR0cFJlcXVlc3QuXG4gKlxuICogQHNlZSB7QGxpbmsgUlVNUmVzb3VyY2VUaW1pbmdCYXNlZFdlYlJlcXVlc3RFdmVudH1cbiAqIEBjYXRlZ29yeSBSZXF1ZXN0c1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFJVTVhIUldlYlJlcXVlc3RFdmVudENvbnRleHQgZXh0ZW5kcyBCYXNlRXZlbnRDb250ZXh0IHtcbiAgICBbRXZlbnRDb250ZXh0S2V5cy5UWVBFXTogRXZlbnRDb250ZXh0VHlwZXMuUkVRVUVTVDtcbiAgICBbRXZlbnRDb250ZXh0S2V5cy5TVUJfVFlQRV06IFJVTVdlYlJlcXVlc3RFdmVudENvbnRleHRTdWJUeXBlcy5YTUxIVFRQUkVRVUVTVDtcbiAgICBbRXZlbnRDb250ZXh0S2V5cy5SRVNPVVJDRV9USU1JTkddPzogUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZyB8IHVuZGVmaW5lZDtcbiAgICBbRXZlbnRDb250ZXh0S2V5cy5DU1BfVklPTEFUSU9OXT86IENTUFZpb2xhdGlvblJlcG9ydEJvZHkgfCBTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50O1xuICAgIFtFdmVudENvbnRleHRLZXlzLlJFUVVFU1RdOiBYTUxIdHRwUmVxdWVzdDtcbiAgICBbRXZlbnRDb250ZXh0S2V5cy5SRVFVRVNUX0hFQURFUlNdOiBbc3RyaW5nLCBzdHJpbmddW10gfCB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogVGhlIGV2ZW50IGNvbnRleHQgZm9yIGEgcmVxdWVzdCBjYXB0dXJlZCB2aWEgdGhlIHJlc291cmNlIHRpbWluZyBBUEkuXG4gKlxuICogQHNlZSB7QGxpbmsgUlVNUmVzb3VyY2VUaW1pbmdCYXNlZFdlYlJlcXVlc3RFdmVudH1cbiAqIEBjYXRlZ29yeSBSZXF1ZXN0c1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFJVTVJlc291cmNlV2ViUmVxdWVzdEV2ZW50Q29udGV4dCBleHRlbmRzIEJhc2VFdmVudENvbnRleHQge1xuICAgIFtFdmVudENvbnRleHRLZXlzLlRZUEVdOiBFdmVudENvbnRleHRUeXBlcy5SRVFVRVNUO1xuICAgIFtFdmVudENvbnRleHRLZXlzLlNVQl9UWVBFXTogUlVNV2ViUmVxdWVzdEV2ZW50Q29udGV4dFN1YlR5cGVzLlJFU09VUkNFO1xuICAgIFtFdmVudENvbnRleHRLZXlzLlJFU09VUkNFX1RJTUlOR106IFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc7XG4gICAgW0V2ZW50Q29udGV4dEtleXMuQ1NQX1ZJT0xBVElPTl0/OiBDU1BWaW9sYXRpb25SZXBvcnRCb2R5IHwgU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDtcbn1cblxuLyoqXG4gKiBUaGUgZXZlbnQgY29udGV4dCBmb3IgYSBuYXZpZ2F0aW9uIGV2ZW50LlxuICpcbiAqIEBzZWUge0BsaW5rIFJVTU5hdmlnYXRpb25UaW1pbmdzRXZlbnR9XG4gKiBAY2F0ZWdvcnkgUmVxdWVzdHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSVU1OYXZpZ2F0aW9uV2ViUmVxdWVzdEV2ZW50Q29udGV4dCBleHRlbmRzIEJhc2VFdmVudENvbnRleHQge1xuICAgIFtFdmVudENvbnRleHRLZXlzLlRZUEVdOiBFdmVudENvbnRleHRUeXBlcy5SRVFVRVNUO1xuICAgIFtFdmVudENvbnRleHRLZXlzLlNVQl9UWVBFXTogUlVNV2ViUmVxdWVzdEV2ZW50Q29udGV4dFN1YlR5cGVzLk5BVklHQVRJT047XG4gICAgW0V2ZW50Q29udGV4dEtleXMuTkFWSUdBVElPTl9USU1JTkddPzogUGVyZm9ybWFuY2VOYXZpZ2F0aW9uVGltaW5nO1xufVxuXG4vKipcbiAqIFRoZSBhdmFpbGFibGUgc3VidHlwZXMgZm9yIHRoZSB7QGxpbmsgRXZlbnRDb250ZXh0VHlwZXMuVVNFUl9BQ1RJT059IHR5cGUuXG4gKlxuICogQGV4cGVyaW1lbnRhbCBVc2VyIEFjdGlvbiBldmVudHMgYXJlIG5vdCBzdXBwb3J0ZWQgeWV0LlxuICogQGNhdGVnb3J5IFVzZXIgQWN0aW9uc1xuICovXG5leHBvcnQgY29uc3QgZW51bSBSVU1Vc2VyQWN0aW9uRXZlbnRDb250ZXh0U3ViVHlwZXMge1xuICAgIE5BVklHQVRJT04gPSBcIm5hdmlnYXRpb25cIixcbiAgICBSRVFVRVNUID0gXCJyZXF1ZXN0XCJcbn1cblxuLyoqXG4gKiBUaGUgZXZlbnQgY29udGV4dCBmb3IgYSBuYXZpZ2F0aW9uIHVzZXIgYWN0aW9uLlxuICpcbiAqIEBleHBlcmltZW50YWwgVXNlciBBY3Rpb24gZXZlbnRzIGFyZSBub3Qgc3VwcG9ydGVkIHlldC5cbiAqIEBjYXRlZ29yeSBVc2VyIEFjdGlvbnNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSVU1OYXZpZ2F0aW9uVXNlckFjdGlvbkV2ZW50Q29udGV4dCBleHRlbmRzIEJhc2VFdmVudENvbnRleHQsIE5hdmlnYXRpb25Db250ZXh0IHtcbiAgICBbRXZlbnRDb250ZXh0S2V5cy5UWVBFXTogRXZlbnRDb250ZXh0VHlwZXMuVVNFUl9BQ1RJT047XG4gICAgW0V2ZW50Q29udGV4dEtleXMuU1VCX1RZUEVdOiBSVU1Vc2VyQWN0aW9uRXZlbnRDb250ZXh0U3ViVHlwZXMuTkFWSUdBVElPTjtcbiAgICBbRXZlbnRDb250ZXh0S2V5cy5VU0VSX0lOVEVSQUNUSU9OXTogRXZlbnQgfCB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogVGhlIGV2ZW50IGNvbnRleHQgZm9yIGEgcmVxdWVzdCB1c2VyIGFjdGlvbi5cbiAqXG4gKiBAZXhwZXJpbWVudGFsIFVzZXIgQWN0aW9uIGV2ZW50cyBhcmUgbm90IHN1cHBvcnRlZCB5ZXQuXG4gKiBAY2F0ZWdvcnkgVXNlciBBY3Rpb25zXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUlVNUmVxdWVzdFVzZXJBY3Rpb25FdmVudENvbnRleHQgZXh0ZW5kcyBCYXNlRXZlbnRDb250ZXh0IHtcbiAgICBbRXZlbnRDb250ZXh0S2V5cy5UWVBFXTogRXZlbnRDb250ZXh0VHlwZXMuVVNFUl9BQ1RJT047XG4gICAgW0V2ZW50Q29udGV4dEtleXMuU1VCX1RZUEVdOiBSVU1Vc2VyQWN0aW9uRXZlbnRDb250ZXh0U3ViVHlwZXMuUkVRVUVTVDtcbiAgICBbRXZlbnRDb250ZXh0S2V5cy5VU0VSX0lOVEVSQUNUSU9OXTogRXZlbnQ7XG4gICAgLy8gU3ByZWFkaW5nIHRoaXMgaW5mb3JtYXRpb24gb24gdGhlIGN1cnJlbnQgZXZlbnQgaXMgbm90IHBvc3NpYmxlIC0tPiBhdHRhY2ggdGhlIHdob2xlIGNvbnRleHQgb2JqZWN0XG4gICAgW0V2ZW50Q29udGV4dEtleXMuUkVRVUVTVF06IFJVTUZldGNoV2ViUmVxdWVzdEV2ZW50Q29udGV4dCB8IFJVTVhIUldlYlJlcXVlc3RFdmVudENvbnRleHQgfCB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogSGlzdG9yeSBBUEkgQ29udGV4dCBmaWVsZHMuXG4gKlxuICogQGlubGluZVxuICogQGlnbm9yZVxuICovXG5leHBvcnQgY29uc3QgZW51bSBIaXN0b3J5QXBpQ29udGV4dEtleXMge1xuICAgIC8qKlxuICAgICAqIFRoZSBgc3RhdGVgIHBhcmFtZXRlciB0aGF0IHtAbGluayAhSGlzdG9yeS5wdXNoU3RhdGV9IG9yIHtAbGluayAhSGlzdG9yeS5yZXBsYWNlU3RhdGV9IHdhcyBjYWxsZWQgd2l0aC5cbiAgICAgKi9cbiAgICBTVEFURSA9IFwic3RhdGVcIixcbiAgICAvKipcbiAgICAgKiBUaGUgYHVybGAgcGFyYW1ldGVyIHRoYXQge0BsaW5rICFIaXN0b3J5LnB1c2hTdGF0ZX0gb3Ige0BsaW5rICFIaXN0b3J5LnJlcGxhY2VTdGF0ZX0gd2FzIGNhbGxlZCB3aXRoLlxuICAgICAqL1xuICAgIFVSTCA9IFwidXJsXCJcbn1cblxuLyoqXG4gKiBUaGUgY29udGV4dCBwcm92aWRlZCB3aGVuIGhpc3RvcnkucHVzaFN0YXRlIG9yIGhpc3RvcnkucmVwbGFjZVN0YXRlIGlzIGNhbGxlZC5cbiAqXG4gKiBAY2F0ZWdvcnkgU2hhcmVkIE5hbWVzcGFjZXMgJiBGaWVsZHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBIaXN0b3J5QXBpQ29udGV4dCB7XG4gICAgLyoqXG4gICAgICogVGhlIGBzdGF0ZWAgcGFyYW1ldGVyIHRoYXQge0BsaW5rICFIaXN0b3J5LnB1c2hTdGF0ZX0gb3Ige0BsaW5rICFIaXN0b3J5LnJlcGxhY2VTdGF0ZX0gd2FzIGNhbGxlZCB3aXRoLlxuICAgICAqL1xuICAgIFtIaXN0b3J5QXBpQ29udGV4dEtleXMuU1RBVEVdOiB1bmtub3duO1xuICAgIC8qKlxuICAgICAqIFRoZSBgdXJsYCBwYXJhbWV0ZXIgdGhhdCB7QGxpbmsgIUhpc3RvcnkucHVzaFN0YXRlfSBvciB7QGxpbmsgIUhpc3RvcnkucmVwbGFjZVN0YXRlfSB3YXMgY2FsbGVkIHdpdGguXG4gICAgICovXG4gICAgW0hpc3RvcnlBcGlDb250ZXh0S2V5cy5VUkxdOiBVUkwgfCBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIGRvZXMgbm90IGV4aXN0IHlldCBvbiB0cyBsaWIgZG9tLCBidXQgY2hyb21lIGFscmVhZHkgdXNlcyBpdC5cbiAqIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9OYXZpZ2F0aW9uQ3VycmVudEVudHJ5Q2hhbmdlRXZlbnRcbiAqXG4gKiBAaWdub3JlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTmF2aWdhdGlvbkN1cnJlbnRFbnRyeUNoYW5nZUV2ZW50IGV4dGVuZHMgRXZlbnQge1xuICAgIGZyb206IE5hdmlnYXRpb25IaXN0b3J5RW50cnk7XG4gICAgbmF2aWdhdGlvblR5cGU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBUaGUgZXZlbnQgY29udGV4dCBwcm92aWRlZCBmb3IgbmF2aWdhdGlvbiByZWxhdGVkIGV2ZW50cy5cbiAqXG4gKiBAc2VlIHtAbGluayBSVU1TdGFuZGFsb25lTmF2aWdhdGlvbkV2ZW50fVxuICogQHNlZSB7QGxpbmsgUlVNUGFnZVN1bW1hcnlFdmVudH1cbiAqIEBzZWUge0BsaW5rIFJVTVZpZXdTdW1tYXJ5RXZlbnR9XG4gKiBAY2F0ZWdvcnkgTGlmZWN5Y2xlICYgTmF2aWdhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5hdmlnYXRpb25Db250ZXh0IHtcbiAgICBbRXZlbnRDb250ZXh0S2V5cy5ISVNUT1JZX0FQSV0/OiBIaXN0b3J5QXBpQ29udGV4dDtcbiAgICBbRXZlbnRDb250ZXh0S2V5cy5QT1BfU1RBVEVfRVZFTlRdPzogUG9wU3RhdGVFdmVudDtcbiAgICBbRXZlbnRDb250ZXh0S2V5cy5QQUdFX1RSQU5TSVRJT05fRVZFTlRdPzogUGFnZVRyYW5zaXRpb25FdmVudDtcbiAgICBbRXZlbnRDb250ZXh0S2V5cy5OQVZJR0FUSU9OX0NVUlJFTlRfRU5UUllfQ0hBTkdFX0VWRU5UXT86IE5hdmlnYXRpb25DdXJyZW50RW50cnlDaGFuZ2VFdmVudDtcbn1cblxuLyoqXG4gKiBUaGUgZXZlbnQgY29udGV4dCBwcm92aWRlZCBmb3IgcGFnZS92aWV3IHN1bW1hcnkgZXZlbnRzLlxuICpcbiAqIEBzZWUge0BsaW5rIFJVTVBhZ2VTdW1tYXJ5RXZlbnR9XG4gKiBAc2VlIHtAbGluayBSVU1WaWV3U3VtbWFyeUV2ZW50fVxuICogQGNhdGVnb3J5IExpZmVjeWNsZSAmIE5hdmlnYXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSVU1TdW1tYXJ5RXZlbnRDb250ZXh0IGV4dGVuZHMgQmFzZUV2ZW50Q29udGV4dCwgTmF2aWdhdGlvbkNvbnRleHQge1xuICAgIFtFdmVudENvbnRleHRLZXlzLlRZUEVdOiBFdmVudENvbnRleHRUeXBlcy5QQUdFX1NVTU1BUlk7XG59XG5cbi8qKlxuICogVGhlIGV2ZW50IGNvbnRleHQgcHJvdmlkZWQgZm9yIG5hdmlnYXRpb24gZXZlbnRzLlxuICpcbiAqIEBzZWUge0BsaW5rIFJVTVN0YW5kYWxvbmVOYXZpZ2F0aW9uRXZlbnR9XG4gKiBAY2F0ZWdvcnkgTGlmZWN5Y2xlICYgTmF2aWdhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJVTVN0YW5kYWxvbmVOYXZpZ2F0aW9uRXZlbnRDb250ZXh0IGV4dGVuZHMgQmFzZUV2ZW50Q29udGV4dCwgTmF2aWdhdGlvbkNvbnRleHQge1xuICAgIFtFdmVudENvbnRleHRLZXlzLlRZUEVdOiBFdmVudENvbnRleHRUeXBlcy5OQVZJR0FUSU9OO1xufVxuXG4vKipcbiAqIFRoZSBzdWJ0eXBlcyBmb3IgdGhlIHtAbGluayBFdmVudENvbnRleHRUeXBlcy5VU0VSX0lOVEVSQUNUSU9OfSB0eXBlLlxuICpcbiAqIEBpbmxpbmVcbiAqIEBjYXRlZ29yeSBVc2VyIEludGVyYWN0aW9uc1xuICovXG5leHBvcnQgY29uc3QgZW51bSBSVU1Vc2VySW50ZXJhY3Rpb25FdmVudENvbnRleHRTdWJUeXBlcyB7XG4gICAgRFJBRyA9IFwiZHJhZ1wiLFxuICAgIERST1AgPSBcImRyb3BcIixcbiAgICBTSU5HTEUgPSBcInNpbmdsZVwiXG59XG5cbi8qKlxuICogVGhlIGV2ZW50IGNvbnRleHQgcHJvdmlkZWQgZm9yIHVzZXIgaW50ZXJhY3Rpb24gZXZlbnRzLlxuICpcbiAqIEBjYXRlZ29yeSBVc2VyIEludGVyYWN0aW9uc1xuICovXG5leHBvcnQgdHlwZSBSVU1Vc2VySW50ZXJhY3Rpb25FdmVudENvbnRleHQgPVxuICAgIHwgUlVNVXNlckludGVyYWN0aW9uRHJhZ0V2ZW50Q29udGV4dFxuICAgIHwgUlVNVXNlckludGVyYWN0aW9uRHJvcEV2ZW50Q29udGV4dFxuICAgIHwgUlVNVXNlckludGVyYWN0aW9uU2luZ2xlRXZlbnRDb250ZXh0O1xuXG4vKipcbiAqIFRoZSBldmVudCBjb250ZXh0IHByb3ZpZGVkIGZvciBzaW1wbGUgdXNlciBpbnRlcmFjdGlvbiBldmVudHMuXG4gKlxuICogQHNlZSB7QGxpbmsgUlVNVXNlckludGVyYWN0aW9uQmFzZX1cbiAqIEBjYXRlZ29yeSBVc2VyIEludGVyYWN0aW9uc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFJVTVVzZXJJbnRlcmFjdGlvblNpbmdsZUV2ZW50Q29udGV4dCBleHRlbmRzIEJhc2VFdmVudENvbnRleHQge1xuICAgIFtFdmVudENvbnRleHRLZXlzLlRZUEVdOiBFdmVudENvbnRleHRUeXBlcy5VU0VSX0lOVEVSQUNUSU9OO1xuICAgIFtFdmVudENvbnRleHRLZXlzLlNVQl9UWVBFXTogUlVNVXNlckludGVyYWN0aW9uRXZlbnRDb250ZXh0U3ViVHlwZXMuU0lOR0xFO1xuICAgIFtFdmVudENvbnRleHRLZXlzLlVTRVJfSU5URVJBQ1RJT05dOiBFdmVudDtcbn1cblxuLyoqXG4gKiBUaGUgZXZlbnQgY29udGV4dCBwcm92aWRlZCBmb3IgZHJhZyB1c2VyIGludGVyYWN0aW9uIGV2ZW50cy5cbiAqXG4gKiBAc2VlIHtAbGluayBSVU1EcmFnQWN0aW9uRXZlbnR9XG4gKiBAY2F0ZWdvcnkgVXNlciBJbnRlcmFjdGlvbnNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSVU1Vc2VySW50ZXJhY3Rpb25EcmFnRXZlbnRDb250ZXh0IGV4dGVuZHMgQmFzZUV2ZW50Q29udGV4dCB7XG4gICAgW0V2ZW50Q29udGV4dEtleXMuVFlQRV06IEV2ZW50Q29udGV4dFR5cGVzLlVTRVJfSU5URVJBQ1RJT047XG4gICAgW0V2ZW50Q29udGV4dEtleXMuU1VCX1RZUEVdOiBSVU1Vc2VySW50ZXJhY3Rpb25FdmVudENvbnRleHRTdWJUeXBlcy5EUkFHO1xuICAgIFtFdmVudENvbnRleHRLZXlzLkRSQUdfU1RBUlRfRVZFTlRdOiBEcmFnRXZlbnQ7XG4gICAgW0V2ZW50Q29udGV4dEtleXMuRFJBR19FTkRfRVZFTlRdOiBEcmFnRXZlbnQ7XG4gICAgW0V2ZW50Q29udGV4dEtleXMuRFJPUF9FVkVOVF0/OiBEcmFnRXZlbnQ7XG59XG5cbi8qKlxuICogVGhlIGV2ZW50IGNvbnRleHQgcHJvdmlkZWQgZm9yIGRyb3AgdXNlciBpbnRlcmFjdGlvbiBldmVudHMuXG4gKlxuICogQHNlZSB7QGxpbmsgUlVNRHJvcEFjdGlvbkV2ZW50fVxuICogQGNhdGVnb3J5IFVzZXIgSW50ZXJhY3Rpb25zXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUlVNVXNlckludGVyYWN0aW9uRHJvcEV2ZW50Q29udGV4dCBleHRlbmRzIEJhc2VFdmVudENvbnRleHQge1xuICAgIFtFdmVudENvbnRleHRLZXlzLlRZUEVdOiBFdmVudENvbnRleHRUeXBlcy5VU0VSX0lOVEVSQUNUSU9OO1xuICAgIFtFdmVudENvbnRleHRLZXlzLlNVQl9UWVBFXTogUlVNVXNlckludGVyYWN0aW9uRXZlbnRDb250ZXh0U3ViVHlwZXMuRFJPUDtcbiAgICBbRXZlbnRDb250ZXh0S2V5cy5EUk9QX0VWRU5UXTogRHJhZ0V2ZW50O1xuICAgIFtFdmVudENvbnRleHRLZXlzLkRSQUdfU1RBUlRfRVZFTlRdPzogRHJhZ0V2ZW50O1xufVxuXG4vKipcbiAqIFRoZSBldmVudCBjb250ZXh0IHByb3ZpZGVkIGZvciBldmVudHMgY3JlYXRlZCB3aXRoIHRoZSB7QGxpbmsgZHluYXRyYWNlLnNlbmRFdmVudH0gQVBJLlxuICpcbiAqIEBjYXRlZ29yeSBFdmVudHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSVU1FdmVudENvbnRleHQgZXh0ZW5kcyBCYXNlRXZlbnRDb250ZXh0IHtcbiAgICBbRXZlbnRDb250ZXh0S2V5cy5UWVBFXTogRXZlbnRDb250ZXh0VHlwZXMuQ1VTVE9NO1xuICAgIFtFdmVudENvbnRleHRLZXlzLkNVU1RPTV06IHVua25vd247XG59XG4iXX0=
|
|
106
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NvdXJjZS90eXBlcy9ydW0tZXZlbnRzL2V2ZW50LWNvbnRleHQvZXZlbnQtY29udGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsTUFBTSxFQUFFLENBQUM7QUFvRTNDOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFOLElBQWtCLGdCQXNCakI7QUF0QkQsV0FBa0IsZ0JBQWdCO0lBQzlCLGtEQUE4QixDQUFBO0lBQzlCLHFDQUFpQixDQUFBO0lBQ2pCLG1EQUErQixDQUFBO0lBQy9CLHVEQUFtQyxDQUFBO0lBQ25DLDRDQUF3QixDQUFBO0lBQ3hCLDJDQUF1QixDQUFBO0lBQ3ZCLDhDQUEwQixDQUFBO0lBQzFCLCtGQUEyRSxDQUFBO0lBQzNFLDBEQUFzQyxDQUFBO0lBQ3RDLGlFQUE2QyxDQUFBO0lBQzdDLHFEQUFpQyxDQUFBO0lBQ2pDLHVDQUFtQixDQUFBO0lBQ25CLHNEQUFrQyxDQUFBO0lBQ2xDLHNEQUFrQyxDQUFBO0lBQ2xDLHlDQUFxQixDQUFBO0lBQ3JCLG9EQUFnQyxDQUFBO0lBQ2hDLG1DQUFlLENBQUE7SUFDZix3Q0FBb0IsQ0FBQTtJQUNwQixpQ0FBYSxDQUFBO0lBQ2IsK0JBQVcsQ0FBQTtJQUNYLHdEQUFvQyxDQUFBO0FBQ3hDLENBQUMsRUF0QmlCLGdCQUFnQixLQUFoQixnQkFBZ0IsUUFzQmpDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sQ0FBTixJQUFrQixpQkFTakI7QUFURCxXQUFrQixpQkFBaUI7SUFDL0IsbURBQThCLENBQUE7SUFDOUIsc0NBQWlCLENBQUE7SUFDakIsNENBQXVCLENBQUE7SUFDdkIsOENBQXlCLENBQUE7SUFDekIsaURBQTRCLENBQUE7SUFDNUIsd0NBQW1CLENBQUE7SUFDbkIsZ0RBQTJCLENBQUE7SUFDM0IseURBQW9DLENBQUE7QUFDeEMsQ0FBQyxFQVRpQixpQkFBaUIsS0FBakIsaUJBQWlCLFFBU2xDO0FBNkNEOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFOLElBQWtCLGlDQUtqQjtBQUxELFdBQWtCLGlDQUFpQztJQUMvQyxvREFBZSxDQUFBO0lBQ2YsOERBQXlCLENBQUE7SUFDekIsMERBQXFCLENBQUE7SUFDckIsc0VBQWlDLENBQUE7QUFDckMsQ0FBQyxFQUxpQixpQ0FBaUMsS0FBakMsaUNBQWlDLFFBS2xEO0FBMkREOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFOLElBQWtCLGlDQUdqQjtBQUhELFdBQWtCLGlDQUFpQztJQUMvQyw4REFBeUIsQ0FBQTtJQUN6Qix3REFBbUIsQ0FBQTtBQUN2QixDQUFDLEVBSGlCLGlDQUFpQyxLQUFqQyxpQ0FBaUMsUUFHbEQ7QUE0QkQ7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQU4sSUFBa0IscUJBU2pCO0FBVEQsV0FBa0IscUJBQXFCO0lBQ25DOztPQUVHO0lBQ0gsd0NBQWUsQ0FBQTtJQUNmOztPQUVHO0lBQ0gsb0NBQVcsQ0FBQTtBQUNmLENBQUMsRUFUaUIscUJBQXFCLEtBQXJCLHFCQUFxQixRQVN0QztBQWlFRDs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBTixJQUFrQixzQ0FJakI7QUFKRCxXQUFrQixzQ0FBc0M7SUFDcEQsdURBQWEsQ0FBQTtJQUNiLHVEQUFhLENBQUE7SUFDYiwyREFBaUIsQ0FBQTtBQUNyQixDQUFDLEVBSmlCLHNDQUFzQyxLQUF0QyxzQ0FBc0MsUUFJdkQiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRoZSBzeW1ib2wgdXNlZCB0byBzdG9yZSB0aGUgZXZlbnRDb250ZXh0IG9uIFJVTUV2ZW50c1xuICpcbiAqIEBpbnRlcm5hbCBub3Qgc3VwcG9zZWQgdG8gYmUgcHJvbW90ZWQgdG8gY3VzdG9tZXJzXG4gKi9cbmV4cG9ydCBjb25zdCBldmVudENvbnRleHRTeW1ib2wgPSBTeW1ib2woKTtcblxuLyoqXG4gKiBAaWdub3JlXG4gKi9cbmV4cG9ydCB0eXBlIEV2ZW50Q29udGV4dEZpZWxkID0gdHlwZW9mIGV2ZW50Q29udGV4dFN5bWJvbDtcblxuLyoqXG4gKiBBbGwgdGhlIHBvc3NpYmxlIHR5cGVzIGZvciB0aGUgZXZlbnQgY29udGV4dCBvYmplY3QuXG4gKlxuICogQGNhdGVnb3J5IEV2ZW50c1xuICovXG5leHBvcnQgdHlwZSBFdmVudENvbnRleHQgPVxuICAgIHwgUlVNRXZlbnRDb250ZXh0XG4gICAgfCBSVU1TdGFuZGFsb25lQ3NwUnVsZVZpb2xhdGlvbkV2ZW50Q29udGV4dFxuICAgIHwgUlVNU3RhbmRhbG9uZUV4Y2VwdGlvbkV2ZW50Q29udGV4dFxuICAgIHwgUlVNU3RhbmRhbG9uZU5hdmlnYXRpb25FdmVudENvbnRleHRcbiAgICB8IFJVTVN1bW1hcnlFdmVudENvbnRleHRcbiAgICB8IFJVTVVzZXJBY3Rpb25FdmVudENvbnRleHRcbiAgICB8IFJVTVVzZXJJbnRlcmFjdGlvbkV2ZW50Q29udGV4dFxuICAgIHwgUlVNV2ViUmVxdWVzdEV2ZW50Q29udGV4dDtcblxuLyoqXG4gKiBUaGUgY29udGV4dCBwcm92aWRlZCBmb3IgVXNlciBBY3Rpb24gZXZlbnRzLlxuICpcbiAqIEBleHBlcmltZW50YWwgVXNlciBBY3Rpb24gZXZlbnRzIGFyZSBub3Qgc3VwcG9ydGVkIHlldC5cbiAqIEBjYXRlZ29yeSBVc2VyIEFjdGlvbnNcbiAqL1xuZXhwb3J0IHR5cGUgUlVNVXNlckFjdGlvbkV2ZW50Q29udGV4dCA9XG4gICAgfCBSVU1OYXZpZ2F0aW9uVXNlckFjdGlvbkV2ZW50Q29udGV4dFxuICAgIHwgUlVNUmVxdWVzdFVzZXJBY3Rpb25FdmVudENvbnRleHQ7XG5cbi8qKlxuICogVGhlIGNvbnRleHQgcHJvdmlkZWQgZm9yIFdlYlJlcXVlc3QgZXZlbnRzLlxuICpcbiAqIEBjYXRlZ29yeSBSZXF1ZXN0c1xuICovXG5leHBvcnQgdHlwZSBSVU1XZWJSZXF1ZXN0RXZlbnRDb250ZXh0ID1cbiAgICB8IFJVTU5hdmlnYXRpb25XZWJSZXF1ZXN0RXZlbnRDb250ZXh0XG4gICAgfCBSVU1SZXNvdXJjZVJlcXVlc3RFdmVudENvbnRleHQ7XG5cbi8qKlxuICogVGhlIGNvbnRleHQgcHJvdmlkZWQgZm9yIHdlYiByZXF1ZXN0cyB3aGljaCBjYW4gY29udGFpbiByZXNvdXJjZSB0aW1pbmcgaW5mb3JtYXRpb24uXG4gKlxuICogQGNhdGVnb3J5IFJlcXVlc3RzXG4gKi9cbmV4cG9ydCB0eXBlIFJVTVJlc291cmNlUmVxdWVzdEV2ZW50Q29udGV4dCA9XG4gICAgfCBSVU1BcGlXZWJSZXF1ZXN0RXZlbnRDb250ZXh0XG4gICAgfCBSVU1SZXNvdXJjZVdlYlJlcXVlc3RFdmVudENvbnRleHQ7XG5cbi8qKlxuICogVGhlIGNvbnRleHQgcHJvdmlkZWQgZm9yIHdlYiByZXF1ZXN0cyB3aGljaCB3ZXJlIGVpdGhlciBzdGFydGVkIHZpYSB0aGUgZmV0Y2ggQVBJIG9yIFhNTEh0dHBSZXF1ZXN0LlxuICpcbiAqIEBjYXRlZ29yeSBSZXF1ZXN0c1xuICovXG5leHBvcnQgdHlwZSBSVU1BcGlXZWJSZXF1ZXN0RXZlbnRDb250ZXh0ID1cbiAgICB8IFJVTUZldGNoV2ViUmVxdWVzdEV2ZW50Q29udGV4dFxuICAgIHwgUlVNWEhSV2ViUmVxdWVzdEV2ZW50Q29udGV4dDtcblxuLyoqXG4gKiBUaGUgYmFzZSB0eXBlIGZvciBhbiBldmVudCBjb250ZXh0IG9iamVjdC5cbiAqXG4gKiBAY2F0ZWdvcnkgRXZlbnRzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQmFzZUV2ZW50Q29udGV4dCB7XG4gICAgW0V2ZW50Q29udGV4dEtleXMuVFlQRV06IHN0cmluZztcbn1cblxuLyoqXG4gKiBUaGUgcHJvcGVydHkgbmFtZXMgdG8gYWNjZXNzIHRoZSBpbmZvcm1hdGlvbiBvbiBhbiBldmVudCBjb250ZXh0IG9iamVjdC5cbiAqXG4gKiBAaW5saW5lXG4gKiBAaWdub3JlXG4gKi9cbmV4cG9ydCBjb25zdCBlbnVtIEV2ZW50Q29udGV4dEtleXMge1xuICAgIENTUF9WSU9MQVRJT04gPSBcImNzcFZpb2xhdGlvblwiLFxuICAgIENVU1RPTSA9IFwiY3VzdG9tXCIsXG4gICAgRFJBR19FTkRfRVZFTlQgPSBcImRyYWdFbmRFdmVudFwiLFxuICAgIERSQUdfU1RBUlRfRVZFTlQgPSBcImRyYWdTdGFydEV2ZW50XCIsXG4gICAgRFJPUF9FVkVOVCA9IFwiZHJvcEV2ZW50XCIsXG4gICAgRVhDRVBUSU9OID0gXCJleGNlcHRpb25cIixcbiAgICBISVNUT1JZX0FQSSA9IFwiaGlzdG9yeUFwaVwiLFxuICAgIE5BVklHQVRJT05fQ1VSUkVOVF9FTlRSWV9DSEFOR0VfRVZFTlQgPSBcIm5hdmlnYXRpb25DdXJyZW50RW50cnlDaGFuZ2VFdmVudFwiLFxuICAgIE5BVklHQVRJT05fVElNSU5HID0gXCJuYXZpZ2F0aW9uVGltaW5nXCIsXG4gICAgUEFHRV9UUkFOU0lUSU9OX0VWRU5UID0gXCJwYWdlVHJhbnNpdGlvbkV2ZW50XCIsXG4gICAgUE9QX1NUQVRFX0VWRU5UID0gXCJwb3BTdGF0ZUV2ZW50XCIsXG4gICAgUkVRVUVTVCA9IFwicmVxdWVzdFwiLFxuICAgIFJFUVVFU1RfSEVBREVSUyA9IFwicmVxdWVzdEhlYWRlcnNcIixcbiAgICBSRVNPVVJDRV9USU1JTkcgPSBcInJlc291cmNlVGltaW5nXCIsXG4gICAgUkVTUE9OU0UgPSBcInJlc3BvbnNlXCIsXG4gICAgUkVTUE9OU0VfRVJST1IgPSBcInJlc3BvbnNlRXJyb3JcIixcbiAgICBTVEFURSA9IFwic3RhdGVcIixcbiAgICBTVUJfVFlQRSA9IFwic3ViVHlwZVwiLFxuICAgIFRZUEUgPSBcInR5cGVcIixcbiAgICBVUkwgPSBcInVybFwiLFxuICAgIFVTRVJfSU5URVJBQ1RJT04gPSBcInVzZXJJbnRlcmFjdGlvblwiXG59XG5cbi8qKlxuICogVGhlIGF2YWlsYWJsZSBldmVudCBjb250ZXh0IHR5cGVzLlxuICpcbiAqIEBjYXRlZ29yeSBFdmVudHNcbiAqL1xuZXhwb3J0IGNvbnN0IGVudW0gRXZlbnRDb250ZXh0VHlwZXMge1xuICAgIENTUF9WSU9MQVRJT04gPSBcImNzcFZpb2xhdGlvblwiLFxuICAgIENVU1RPTSA9IFwiY3VzdG9tXCIsXG4gICAgRVhDRVBUSU9OID0gXCJleGNlcHRpb25cIixcbiAgICBOQVZJR0FUSU9OID0gXCJuYXZpZ2F0aW9uXCIsXG4gICAgUEFHRV9TVU1NQVJZID0gXCJwYWdlU3VtbWFyeVwiLFxuICAgIFJFUVVFU1QgPSBcInJlcXVlc3RcIixcbiAgICBVU0VSX0FDVElPTiA9IFwidXNlcl9hY3Rpb25cIixcbiAgICBVU0VSX0lOVEVSQUNUSU9OID0gXCJ1c2VySW50ZXJhY3Rpb25cIlxufVxuXG4vKipcbiAqIFRoZSBjb250ZXh0IHByb3ZpZGVkIGZvciBFeGNlcHRpb24gRXZlbnRzLlxuICpcbiAqIEBzZWUge0BsaW5rIFJVTVN0YW5kYWxvbmVFeGNlcHRpb25FdmVudH1cbiAqIEBjYXRlZ29yeSBTdGFuZGFsb25lIEVycm9yc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFJVTVN0YW5kYWxvbmVFeGNlcHRpb25FdmVudENvbnRleHQgZXh0ZW5kcyBCYXNlRXZlbnRDb250ZXh0IHtcbiAgICBbRXZlbnRDb250ZXh0S2V5cy5UWVBFXTogRXZlbnRDb250ZXh0VHlwZXMuRVhDRVBUSU9OO1xuICAgIFtFdmVudENvbnRleHRLZXlzLkVYQ0VQVElPTl06IHVua25vd247XG59XG5cbi8qKlxuICogVGhlIGNvbnRleHQgcHJvdmlkZWQgZm9yIENTUCBWaW9sYXRpb25zLlxuICpcbiAqIEBzZWUge0BsaW5rIFJVTVN0YW5kYWxvbmVDc3BSdWxlVmlvbGF0aW9uRXZlbnR9XG4gKiBAY2F0ZWdvcnkgU3RhbmRhbG9uZSBFcnJvcnNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSVU1TdGFuZGFsb25lQ3NwUnVsZVZpb2xhdGlvbkV2ZW50Q29udGV4dCBleHRlbmRzIEJhc2VFdmVudENvbnRleHQge1xuICAgIFtFdmVudENvbnRleHRLZXlzLlRZUEVdOiBFdmVudENvbnRleHRUeXBlcy5DU1BfVklPTEFUSU9OO1xuICAgIFtFdmVudENvbnRleHRLZXlzLkNTUF9WSU9MQVRJT05dOiBDU1BWaW9sYXRpb25SZXBvcnRCb2R5IHwgU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDtcbn1cblxuLyoqXG4gKiBBcyBzcGVjaWZpZWQgaW4gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0NTUFZpb2xhdGlvblJlcG9ydEJvZHlcbiAqIEN1cnJlbnRseSBub3QgYXZhaWxhYmxlIGluIFRTIHlldFxuICpcbiAqIEBpZ25vcmVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDU1BWaW9sYXRpb25SZXBvcnRCb2R5IHtcbiAgICBibG9ja2VkVVJMOiBzdHJpbmc7XG4gICAgY29sdW1uTnVtYmVyOiBudW1iZXIgfCBudWxsO1xuICAgIGRpc3Bvc2l0aW9uOiBzdHJpbmcgfCBudWxsO1xuICAgIGRvY3VtZW50VVJMOiBzdHJpbmc7XG4gICAgdmlvbGF0ZWREaXJlY3RpdmU6IHN0cmluZyB8IG51bGw7XG4gICAgZWZmZWN0aXZlRGlyZWN0aXZlOiBzdHJpbmcgfCBudWxsO1xuICAgIGxpbmVOdW1iZXI6IG51bWJlciB8IG51bGw7XG4gICAgb3JpZ2luYWxQb2xpY3k6IHN0cmluZyB8IG51bGw7XG4gICAgcmVmZXJyZXI6IHN0cmluZyB8IG51bGw7XG4gICAgc2FtcGxlOiBzdHJpbmcgfCBudWxsO1xuICAgIHNvdXJjZUZpbGU6IHN0cmluZyB8IG51bGw7XG4gICAgc3RhdHVzQ29kZTogbnVtYmVyIHwgbnVsbDtcbn1cblxuLyoqXG4gKiBUaGUgYXZhaWxhYmxlIHN1YnR5cGVzIGZvciB0aGUge0BsaW5rIEV2ZW50Q29udGV4dFR5cGVzLlJFUVVFU1R9IHR5cGUuXG4gKlxuICogQGlubGluZVxuICogQGNhdGVnb3J5IFJlcXVlc3RzXG4gKi9cbmV4cG9ydCBjb25zdCBlbnVtIFJVTVdlYlJlcXVlc3RFdmVudENvbnRleHRTdWJUeXBlcyB7XG4gICAgRkVUQ0ggPSBcImZldGNoXCIsXG4gICAgTkFWSUdBVElPTiA9IFwibmF2aWdhdGlvblwiLFxuICAgIFJFU09VUkNFID0gXCJyZXNvdXJjZVwiLFxuICAgIFhNTEhUVFBSRVFVRVNUID0gXCJ4bWxodHRwcmVxdWVzdFwiXG59XG5cbi8qKlxuICogVGhlIGV2ZW50IGNvbnRleHQgZm9yIGEgZmV0Y2ggcmVxdWVzdC5cbiAqXG4gKiBAc2VlIHtAbGluayBSVU1SZXNvdXJjZVRpbWluZ0Jhc2VkV2ViUmVxdWVzdEV2ZW50fVxuICogQGNhdGVnb3J5IFJlcXVlc3RzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUlVNRmV0Y2hXZWJSZXF1ZXN0RXZlbnRDb250ZXh0IGV4dGVuZHMgQmFzZUV2ZW50Q29udGV4dCB7XG4gICAgW0V2ZW50Q29udGV4dEtleXMuVFlQRV06IEV2ZW50Q29udGV4dFR5cGVzLlJFUVVFU1Q7XG4gICAgW0V2ZW50Q29udGV4dEtleXMuU1VCX1RZUEVdOiBSVU1XZWJSZXF1ZXN0RXZlbnRDb250ZXh0U3ViVHlwZXMuRkVUQ0g7XG4gICAgW0V2ZW50Q29udGV4dEtleXMuVVJMXT86IHN0cmluZztcbiAgICBbRXZlbnRDb250ZXh0S2V5cy5SRVNPVVJDRV9USU1JTkddPzogUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZyB8IHVuZGVmaW5lZDtcbiAgICBbRXZlbnRDb250ZXh0S2V5cy5DU1BfVklPTEFUSU9OXT86IENTUFZpb2xhdGlvblJlcG9ydEJvZHkgfCBTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50O1xuICAgIFtFdmVudENvbnRleHRLZXlzLlJFUVVFU1RdPzogUmVxdWVzdCB8IFJlcXVlc3RJbml0O1xuICAgIFtFdmVudENvbnRleHRLZXlzLlJFU1BPTlNFXT86IFJlc3BvbnNlIHwgdW5kZWZpbmVkO1xuICAgIFtFdmVudENvbnRleHRLZXlzLlJFU1BPTlNFX0VSUk9SXT86IEVycm9yIHwgdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIFRoZSBldmVudCBjb250ZXh0IGZvciBhIFhNTEh0dHBSZXF1ZXN0LlxuICpcbiAqIEBzZWUge0BsaW5rIFJVTVJlc291cmNlVGltaW5nQmFzZWRXZWJSZXF1ZXN0RXZlbnR9XG4gKiBAY2F0ZWdvcnkgUmVxdWVzdHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSVU1YSFJXZWJSZXF1ZXN0RXZlbnRDb250ZXh0IGV4dGVuZHMgQmFzZUV2ZW50Q29udGV4dCB7XG4gICAgW0V2ZW50Q29udGV4dEtleXMuVFlQRV06IEV2ZW50Q29udGV4dFR5cGVzLlJFUVVFU1Q7XG4gICAgW0V2ZW50Q29udGV4dEtleXMuU1VCX1RZUEVdOiBSVU1XZWJSZXF1ZXN0RXZlbnRDb250ZXh0U3ViVHlwZXMuWE1MSFRUUFJFUVVFU1Q7XG4gICAgW0V2ZW50Q29udGV4dEtleXMuUkVTT1VSQ0VfVElNSU5HXT86IFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcgfCB1bmRlZmluZWQ7XG4gICAgW0V2ZW50Q29udGV4dEtleXMuQ1NQX1ZJT0xBVElPTl0/OiBDU1BWaW9sYXRpb25SZXBvcnRCb2R5IHwgU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDtcbiAgICBbRXZlbnRDb250ZXh0S2V5cy5SRVFVRVNUXTogWE1MSHR0cFJlcXVlc3Q7XG4gICAgW0V2ZW50Q29udGV4dEtleXMuUkVRVUVTVF9IRUFERVJTXTogW3N0cmluZywgc3RyaW5nXVtdIHwgdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIFRoZSBldmVudCBjb250ZXh0IGZvciBhIHJlcXVlc3QgY2FwdHVyZWQgdmlhIHRoZSByZXNvdXJjZSB0aW1pbmcgQVBJLlxuICpcbiAqIEBzZWUge0BsaW5rIFJVTVJlc291cmNlVGltaW5nQmFzZWRXZWJSZXF1ZXN0RXZlbnR9XG4gKiBAY2F0ZWdvcnkgUmVxdWVzdHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSVU1SZXNvdXJjZVdlYlJlcXVlc3RFdmVudENvbnRleHQgZXh0ZW5kcyBCYXNlRXZlbnRDb250ZXh0IHtcbiAgICBbRXZlbnRDb250ZXh0S2V5cy5UWVBFXTogRXZlbnRDb250ZXh0VHlwZXMuUkVRVUVTVDtcbiAgICBbRXZlbnRDb250ZXh0S2V5cy5TVUJfVFlQRV06IFJVTVdlYlJlcXVlc3RFdmVudENvbnRleHRTdWJUeXBlcy5SRVNPVVJDRTtcbiAgICBbRXZlbnRDb250ZXh0S2V5cy5SRVNPVVJDRV9USU1JTkddOiBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nO1xuICAgIFtFdmVudENvbnRleHRLZXlzLkNTUF9WSU9MQVRJT05dPzogQ1NQVmlvbGF0aW9uUmVwb3J0Qm9keSB8IFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQ7XG59XG5cbi8qKlxuICogVGhlIGV2ZW50IGNvbnRleHQgZm9yIGEgbmF2aWdhdGlvbiBldmVudC5cbiAqXG4gKiBAc2VlIHtAbGluayBSVU1OYXZpZ2F0aW9uVGltaW5nc0V2ZW50fVxuICogQGNhdGVnb3J5IFJlcXVlc3RzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUlVNTmF2aWdhdGlvbldlYlJlcXVlc3RFdmVudENvbnRleHQgZXh0ZW5kcyBCYXNlRXZlbnRDb250ZXh0IHtcbiAgICBbRXZlbnRDb250ZXh0S2V5cy5UWVBFXTogRXZlbnRDb250ZXh0VHlwZXMuUkVRVUVTVDtcbiAgICBbRXZlbnRDb250ZXh0S2V5cy5TVUJfVFlQRV06IFJVTVdlYlJlcXVlc3RFdmVudENvbnRleHRTdWJUeXBlcy5OQVZJR0FUSU9OO1xuICAgIFtFdmVudENvbnRleHRLZXlzLk5BVklHQVRJT05fVElNSU5HXT86IFBlcmZvcm1hbmNlTmF2aWdhdGlvblRpbWluZztcbn1cblxuLyoqXG4gKiBUaGUgYXZhaWxhYmxlIHN1YnR5cGVzIGZvciB0aGUge0BsaW5rIEV2ZW50Q29udGV4dFR5cGVzLlVTRVJfQUNUSU9OfSB0eXBlLlxuICpcbiAqIEBleHBlcmltZW50YWwgVXNlciBBY3Rpb24gZXZlbnRzIGFyZSBub3Qgc3VwcG9ydGVkIHlldC5cbiAqIEBjYXRlZ29yeSBVc2VyIEFjdGlvbnNcbiAqL1xuZXhwb3J0IGNvbnN0IGVudW0gUlVNVXNlckFjdGlvbkV2ZW50Q29udGV4dFN1YlR5cGVzIHtcbiAgICBOQVZJR0FUSU9OID0gXCJuYXZpZ2F0aW9uXCIsXG4gICAgUkVRVUVTVCA9IFwicmVxdWVzdFwiXG59XG5cbi8qKlxuICogVGhlIGV2ZW50IGNvbnRleHQgZm9yIGEgbmF2aWdhdGlvbiB1c2VyIGFjdGlvbi5cbiAqXG4gKiBAZXhwZXJpbWVudGFsIFVzZXIgQWN0aW9uIGV2ZW50cyBhcmUgbm90IHN1cHBvcnRlZCB5ZXQuXG4gKiBAY2F0ZWdvcnkgVXNlciBBY3Rpb25zXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUlVNTmF2aWdhdGlvblVzZXJBY3Rpb25FdmVudENvbnRleHQgZXh0ZW5kcyBCYXNlRXZlbnRDb250ZXh0LCBOYXZpZ2F0aW9uQ29udGV4dCB7XG4gICAgW0V2ZW50Q29udGV4dEtleXMuVFlQRV06IEV2ZW50Q29udGV4dFR5cGVzLlVTRVJfQUNUSU9OO1xuICAgIFtFdmVudENvbnRleHRLZXlzLlNVQl9UWVBFXTogUlVNVXNlckFjdGlvbkV2ZW50Q29udGV4dFN1YlR5cGVzLk5BVklHQVRJT047XG4gICAgW0V2ZW50Q29udGV4dEtleXMuVVNFUl9JTlRFUkFDVElPTl06IEV2ZW50IHwgdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIFRoZSBldmVudCBjb250ZXh0IGZvciBhIHJlcXVlc3QgdXNlciBhY3Rpb24uXG4gKlxuICogQGV4cGVyaW1lbnRhbCBVc2VyIEFjdGlvbiBldmVudHMgYXJlIG5vdCBzdXBwb3J0ZWQgeWV0LlxuICogQGNhdGVnb3J5IFVzZXIgQWN0aW9uc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFJVTVJlcXVlc3RVc2VyQWN0aW9uRXZlbnRDb250ZXh0IGV4dGVuZHMgQmFzZUV2ZW50Q29udGV4dCB7XG4gICAgW0V2ZW50Q29udGV4dEtleXMuVFlQRV06IEV2ZW50Q29udGV4dFR5cGVzLlVTRVJfQUNUSU9OO1xuICAgIFtFdmVudENvbnRleHRLZXlzLlNVQl9UWVBFXTogUlVNVXNlckFjdGlvbkV2ZW50Q29udGV4dFN1YlR5cGVzLlJFUVVFU1Q7XG4gICAgW0V2ZW50Q29udGV4dEtleXMuVVNFUl9JTlRFUkFDVElPTl06IEV2ZW50O1xuICAgIC8vIFNwcmVhZGluZyB0aGlzIGluZm9ybWF0aW9uIG9uIHRoZSBjdXJyZW50IGV2ZW50IGlzIG5vdCBwb3NzaWJsZSAtLT4gYXR0YWNoIHRoZSB3aG9sZSBjb250ZXh0IG9iamVjdFxuICAgIFtFdmVudENvbnRleHRLZXlzLlJFUVVFU1RdOiBSVU1GZXRjaFdlYlJlcXVlc3RFdmVudENvbnRleHQgfCBSVU1YSFJXZWJSZXF1ZXN0RXZlbnRDb250ZXh0IHwgdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIEhpc3RvcnkgQVBJIENvbnRleHQgZmllbGRzLlxuICpcbiAqIEBpbmxpbmVcbiAqIEBpZ25vcmVcbiAqL1xuZXhwb3J0IGNvbnN0IGVudW0gSGlzdG9yeUFwaUNvbnRleHRLZXlzIHtcbiAgICAvKipcbiAgICAgKiBUaGUgYHN0YXRlYCBwYXJhbWV0ZXIgdGhhdCB7QGxpbmsgIUhpc3RvcnkucHVzaFN0YXRlfSBvciB7QGxpbmsgIUhpc3RvcnkucmVwbGFjZVN0YXRlfSB3YXMgY2FsbGVkIHdpdGguXG4gICAgICovXG4gICAgU1RBVEUgPSBcInN0YXRlXCIsXG4gICAgLyoqXG4gICAgICogVGhlIGB1cmxgIHBhcmFtZXRlciB0aGF0IHtAbGluayAhSGlzdG9yeS5wdXNoU3RhdGV9IG9yIHtAbGluayAhSGlzdG9yeS5yZXBsYWNlU3RhdGV9IHdhcyBjYWxsZWQgd2l0aC5cbiAgICAgKi9cbiAgICBVUkwgPSBcInVybFwiXG59XG5cbi8qKlxuICogVGhlIGNvbnRleHQgcHJvdmlkZWQgd2hlbiBoaXN0b3J5LnB1c2hTdGF0ZSBvciBoaXN0b3J5LnJlcGxhY2VTdGF0ZSBpcyBjYWxsZWQuXG4gKlxuICogQGNhdGVnb3J5IFNoYXJlZCBOYW1lc3BhY2VzICYgRmllbGRzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSGlzdG9yeUFwaUNvbnRleHQge1xuICAgIC8qKlxuICAgICAqIFRoZSBgc3RhdGVgIHBhcmFtZXRlciB0aGF0IHtAbGluayAhSGlzdG9yeS5wdXNoU3RhdGV9IG9yIHtAbGluayAhSGlzdG9yeS5yZXBsYWNlU3RhdGV9IHdhcyBjYWxsZWQgd2l0aC5cbiAgICAgKi9cbiAgICBbSGlzdG9yeUFwaUNvbnRleHRLZXlzLlNUQVRFXTogdW5rbm93bjtcbiAgICAvKipcbiAgICAgKiBUaGUgYHVybGAgcGFyYW1ldGVyIHRoYXQge0BsaW5rICFIaXN0b3J5LnB1c2hTdGF0ZX0gb3Ige0BsaW5rICFIaXN0b3J5LnJlcGxhY2VTdGF0ZX0gd2FzIGNhbGxlZCB3aXRoLlxuICAgICAqL1xuICAgIFtIaXN0b3J5QXBpQ29udGV4dEtleXMuVVJMXTogVVJMIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBkb2VzIG5vdCBleGlzdCB5ZXQgb24gdHMgbGliIGRvbSwgYnV0IGNocm9tZSBhbHJlYWR5IHVzZXMgaXQuXG4gKiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvTmF2aWdhdGlvbkN1cnJlbnRFbnRyeUNoYW5nZUV2ZW50XG4gKlxuICogQGlnbm9yZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5hdmlnYXRpb25DdXJyZW50RW50cnlDaGFuZ2VFdmVudCBleHRlbmRzIEV2ZW50IHtcbiAgICBmcm9tOiBOYXZpZ2F0aW9uSGlzdG9yeUVudHJ5O1xuICAgIG5hdmlnYXRpb25UeXBlOiBzdHJpbmc7XG59XG5cbi8qKlxuICogVGhlIGV2ZW50IGNvbnRleHQgcHJvdmlkZWQgZm9yIG5hdmlnYXRpb24gcmVsYXRlZCBldmVudHMuXG4gKlxuICogQHNlZSB7QGxpbmsgUlVNU3RhbmRhbG9uZU5hdmlnYXRpb25FdmVudH1cbiAqIEBzZWUge0BsaW5rIFJVTVBhZ2VTdW1tYXJ5RXZlbnR9XG4gKiBAc2VlIHtAbGluayBSVU1WaWV3U3VtbWFyeUV2ZW50fVxuICogQGNhdGVnb3J5IExpZmVjeWNsZSAmIE5hdmlnYXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOYXZpZ2F0aW9uQ29udGV4dCB7XG4gICAgW0V2ZW50Q29udGV4dEtleXMuSElTVE9SWV9BUEldPzogSGlzdG9yeUFwaUNvbnRleHQ7XG4gICAgW0V2ZW50Q29udGV4dEtleXMuUE9QX1NUQVRFX0VWRU5UXT86IFBvcFN0YXRlRXZlbnQ7XG4gICAgW0V2ZW50Q29udGV4dEtleXMuUEFHRV9UUkFOU0lUSU9OX0VWRU5UXT86IFBhZ2VUcmFuc2l0aW9uRXZlbnQ7XG4gICAgW0V2ZW50Q29udGV4dEtleXMuTkFWSUdBVElPTl9DVVJSRU5UX0VOVFJZX0NIQU5HRV9FVkVOVF0/OiBOYXZpZ2F0aW9uQ3VycmVudEVudHJ5Q2hhbmdlRXZlbnQ7XG59XG5cbi8qKlxuICogVGhlIGV2ZW50IGNvbnRleHQgcHJvdmlkZWQgZm9yIHBhZ2UvdmlldyBzdW1tYXJ5IGV2ZW50cy5cbiAqXG4gKiBAc2VlIHtAbGluayBSVU1QYWdlU3VtbWFyeUV2ZW50fVxuICogQHNlZSB7QGxpbmsgUlVNVmlld1N1bW1hcnlFdmVudH1cbiAqIEBjYXRlZ29yeSBMaWZlY3ljbGUgJiBOYXZpZ2F0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUlVNU3VtbWFyeUV2ZW50Q29udGV4dCBleHRlbmRzIEJhc2VFdmVudENvbnRleHQsIE5hdmlnYXRpb25Db250ZXh0IHtcbiAgICBbRXZlbnRDb250ZXh0S2V5cy5UWVBFXTogRXZlbnRDb250ZXh0VHlwZXMuUEFHRV9TVU1NQVJZO1xufVxuXG4vKipcbiAqIFRoZSBldmVudCBjb250ZXh0IHByb3ZpZGVkIGZvciBuYXZpZ2F0aW9uIGV2ZW50cy5cbiAqXG4gKiBAc2VlIHtAbGluayBSVU1TdGFuZGFsb25lTmF2aWdhdGlvbkV2ZW50fVxuICogQGNhdGVnb3J5IExpZmVjeWNsZSAmIE5hdmlnYXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSVU1TdGFuZGFsb25lTmF2aWdhdGlvbkV2ZW50Q29udGV4dCBleHRlbmRzIEJhc2VFdmVudENvbnRleHQsIE5hdmlnYXRpb25Db250ZXh0IHtcbiAgICBbRXZlbnRDb250ZXh0S2V5cy5UWVBFXTogRXZlbnRDb250ZXh0VHlwZXMuTkFWSUdBVElPTjtcbn1cblxuLyoqXG4gKiBUaGUgc3VidHlwZXMgZm9yIHRoZSB7QGxpbmsgRXZlbnRDb250ZXh0VHlwZXMuVVNFUl9JTlRFUkFDVElPTn0gdHlwZS5cbiAqXG4gKiBAaW5saW5lXG4gKiBAY2F0ZWdvcnkgVXNlciBJbnRlcmFjdGlvbnNcbiAqL1xuZXhwb3J0IGNvbnN0IGVudW0gUlVNVXNlckludGVyYWN0aW9uRXZlbnRDb250ZXh0U3ViVHlwZXMge1xuICAgIERSQUcgPSBcImRyYWdcIixcbiAgICBEUk9QID0gXCJkcm9wXCIsXG4gICAgU0lOR0xFID0gXCJzaW5nbGVcIlxufVxuXG4vKipcbiAqIFRoZSBldmVudCBjb250ZXh0IHByb3ZpZGVkIGZvciB1c2VyIGludGVyYWN0aW9uIGV2ZW50cy5cbiAqXG4gKiBAY2F0ZWdvcnkgVXNlciBJbnRlcmFjdGlvbnNcbiAqL1xuZXhwb3J0IHR5cGUgUlVNVXNlckludGVyYWN0aW9uRXZlbnRDb250ZXh0ID1cbiAgICB8IFJVTVVzZXJJbnRlcmFjdGlvbkRyYWdFdmVudENvbnRleHRcbiAgICB8IFJVTVVzZXJJbnRlcmFjdGlvbkRyb3BFdmVudENvbnRleHRcbiAgICB8IFJVTVVzZXJJbnRlcmFjdGlvblNpbmdsZUV2ZW50Q29udGV4dDtcblxuLyoqXG4gKiBUaGUgZXZlbnQgY29udGV4dCBwcm92aWRlZCBmb3Igc2ltcGxlIHVzZXIgaW50ZXJhY3Rpb24gZXZlbnRzLlxuICpcbiAqIEBzZWUge0BsaW5rIFJVTVVzZXJJbnRlcmFjdGlvbkJhc2V9XG4gKiBAY2F0ZWdvcnkgVXNlciBJbnRlcmFjdGlvbnNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSVU1Vc2VySW50ZXJhY3Rpb25TaW5nbGVFdmVudENvbnRleHQgZXh0ZW5kcyBCYXNlRXZlbnRDb250ZXh0IHtcbiAgICBbRXZlbnRDb250ZXh0S2V5cy5UWVBFXTogRXZlbnRDb250ZXh0VHlwZXMuVVNFUl9JTlRFUkFDVElPTjtcbiAgICBbRXZlbnRDb250ZXh0S2V5cy5TVUJfVFlQRV06IFJVTVVzZXJJbnRlcmFjdGlvbkV2ZW50Q29udGV4dFN1YlR5cGVzLlNJTkdMRTtcbiAgICBbRXZlbnRDb250ZXh0S2V5cy5VU0VSX0lOVEVSQUNUSU9OXTogRXZlbnQ7XG59XG5cbi8qKlxuICogVGhlIGV2ZW50IGNvbnRleHQgcHJvdmlkZWQgZm9yIGRyYWcgdXNlciBpbnRlcmFjdGlvbiBldmVudHMuXG4gKlxuICogQHNlZSB7QGxpbmsgUlVNRHJhZ0FjdGlvbkV2ZW50fVxuICogQGNhdGVnb3J5IFVzZXIgSW50ZXJhY3Rpb25zXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUlVNVXNlckludGVyYWN0aW9uRHJhZ0V2ZW50Q29udGV4dCBleHRlbmRzIEJhc2VFdmVudENvbnRleHQge1xuICAgIFtFdmVudENvbnRleHRLZXlzLlRZUEVdOiBFdmVudENvbnRleHRUeXBlcy5VU0VSX0lOVEVSQUNUSU9OO1xuICAgIFtFdmVudENvbnRleHRLZXlzLlNVQl9UWVBFXTogUlVNVXNlckludGVyYWN0aW9uRXZlbnRDb250ZXh0U3ViVHlwZXMuRFJBRztcbiAgICBbRXZlbnRDb250ZXh0S2V5cy5EUkFHX1NUQVJUX0VWRU5UXTogRHJhZ0V2ZW50O1xuICAgIFtFdmVudENvbnRleHRLZXlzLkRSQUdfRU5EX0VWRU5UXTogRHJhZ0V2ZW50O1xuICAgIFtFdmVudENvbnRleHRLZXlzLkRST1BfRVZFTlRdPzogRHJhZ0V2ZW50O1xufVxuXG4vKipcbiAqIFRoZSBldmVudCBjb250ZXh0IHByb3ZpZGVkIGZvciBkcm9wIHVzZXIgaW50ZXJhY3Rpb24gZXZlbnRzLlxuICpcbiAqIEBzZWUge0BsaW5rIFJVTURyb3BBY3Rpb25FdmVudH1cbiAqIEBjYXRlZ29yeSBVc2VyIEludGVyYWN0aW9uc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFJVTVVzZXJJbnRlcmFjdGlvbkRyb3BFdmVudENvbnRleHQgZXh0ZW5kcyBCYXNlRXZlbnRDb250ZXh0IHtcbiAgICBbRXZlbnRDb250ZXh0S2V5cy5UWVBFXTogRXZlbnRDb250ZXh0VHlwZXMuVVNFUl9JTlRFUkFDVElPTjtcbiAgICBbRXZlbnRDb250ZXh0S2V5cy5TVUJfVFlQRV06IFJVTVVzZXJJbnRlcmFjdGlvbkV2ZW50Q29udGV4dFN1YlR5cGVzLkRST1A7XG4gICAgW0V2ZW50Q29udGV4dEtleXMuRFJPUF9FVkVOVF06IERyYWdFdmVudDtcbiAgICBbRXZlbnRDb250ZXh0S2V5cy5EUkFHX1NUQVJUX0VWRU5UXT86IERyYWdFdmVudDtcbn1cblxuLyoqXG4gKiBUaGUgZXZlbnQgY29udGV4dCBwcm92aWRlZCBmb3IgZXZlbnRzIGNyZWF0ZWQgd2l0aCB0aGUge0BsaW5rIGR5bmF0cmFjZS5zZW5kRXZlbnR9IEFQSS5cbiAqXG4gKiBAY2F0ZWdvcnkgRXZlbnRzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUlVNRXZlbnRDb250ZXh0IGV4dGVuZHMgQmFzZUV2ZW50Q29udGV4dCB7XG4gICAgW0V2ZW50Q29udGV4dEtleXMuVFlQRV06IEV2ZW50Q29udGV4dFR5cGVzLkNVU1RPTTtcbiAgICBbRXZlbnRDb250ZXh0S2V5cy5DVVNUT01dOiB1bmtub3duO1xufVxuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtdXBkYXRlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NvdXJjZS90eXBlcy9ydW0tZXZlbnRzL2V2ZW50LXVwZGF0ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgSlNPTkV2ZW50IH0gZnJvbSBcIi4vanNvbi1ldmVudC5qc1wiO1xuXG4vKipcbiAqIEBpZ25vcmVcbiAqL1xuZXhwb3J0IHR5cGUgRXZlbnRVcGRhdGUgPSB7XG4gICAgW2tleSBpbiBrZXlvZiBKU09ORXZlbnRdPzogSlNPTkV2ZW50W2tleV07XG59O1xuIl19
|