@envive-ai/react-hooks 0.3.39 → 0.3.40
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/dist/application/commerce-api.cjs +3 -2
- package/dist/application/commerce-api.js +3 -2
- package/dist/application/models/api/orgConfigResults.d.cts +13 -2
- package/dist/application/models/api/orgConfigResults.d.ts +13 -2
- package/dist/application/models/featureGates.cjs +2 -1
- package/dist/application/models/featureGates.d.cts +2 -1
- package/dist/application/models/featureGates.d.ts +2 -1
- package/dist/application/models/featureGates.js +2 -1
- package/dist/application/models/graphql/queries/getWidgetConfigQuery.cjs +23 -0
- package/dist/application/models/graphql/queries/getWidgetConfigQuery.js +22 -0
- package/dist/application/models/index.d.cts +2 -2
- package/dist/application/models/index.d.ts +2 -2
- package/dist/application/utils/elementObserver.d.ts +2 -2
- package/dist/application/utils/index.cjs +0 -2
- package/dist/application/utils/index.d.cts +1 -2
- package/dist/application/utils/index.d.ts +1 -2
- package/dist/application/utils/index.js +1 -2
- package/dist/atoms/app/index.d.cts +1 -1
- package/dist/atoms/app/index.d.ts +7 -7
- package/dist/atoms/chat/chatState.d.cts +18 -18
- package/dist/atoms/chat/chatState.d.ts +19 -19
- package/dist/atoms/chat/form.d.cts +2 -2
- package/dist/atoms/chat/form.d.ts +2 -2
- package/dist/atoms/chat/index.cjs +1 -1
- package/dist/atoms/chat/index.d.cts +3 -3
- package/dist/atoms/chat/index.d.ts +2 -2
- package/dist/atoms/chat/index.js +1 -1
- package/dist/atoms/chat/lastMessage.d.cts +2 -2
- package/dist/atoms/chat/lastMessage.d.ts +2 -2
- package/dist/atoms/chat/messageQueue.d.cts +6 -6
- package/dist/atoms/chat/messageQueue.d.ts +6 -6
- package/dist/atoms/chat/performanceMetrics.d.cts +6 -6
- package/dist/atoms/chat/performanceMetrics.d.ts +6 -6
- package/dist/atoms/chat/renderedWidgetRefs.d.cts +2 -2
- package/dist/atoms/chat/renderedWidgetRefs.d.ts +2 -2
- package/dist/atoms/chat/replies.d.cts +3 -3
- package/dist/atoms/chat/suggestions.d.cts +2 -2
- package/dist/atoms/chat/suggestions.d.ts +2 -2
- package/dist/atoms/envive/enviveConfig.d.cts +12 -12
- package/dist/atoms/envive/enviveConfig.d.ts +13 -13
- package/dist/atoms/envive/resolvedBaseConfigVersion.cjs +9 -0
- package/dist/atoms/envive/resolvedBaseConfigVersion.js +8 -0
- package/dist/atoms/globalSearch/globalSearch.d.cts +5 -5
- package/dist/atoms/globalSearch/globalSearch.d.ts +5 -5
- package/dist/atoms/org/customerService.d.cts +6 -6
- package/dist/atoms/org/customerService.d.ts +6 -6
- package/dist/atoms/org/graphqlConfig.d.cts +4 -4
- package/dist/atoms/org/graphqlConfig.d.ts +4 -4
- package/dist/atoms/org/index.cjs +1 -1
- package/dist/atoms/org/index.js +1 -1
- package/dist/atoms/org/newOrgConfigAtom.d.cts +2 -2
- package/dist/atoms/org/newOrgConfigAtom.d.ts +2 -2
- package/dist/atoms/org/orgAnalyticsConfig.d.cts +4 -4
- package/dist/atoms/org/orgAnalyticsConfig.d.ts +4 -4
- package/dist/atoms/search/chatSearch.cjs +1 -1
- package/dist/atoms/search/chatSearch.d.cts +17 -17
- package/dist/atoms/search/chatSearch.d.ts +17 -17
- package/dist/atoms/search/chatSearch.js +1 -1
- package/dist/atoms/search/searchAPI.cjs +1 -1
- package/dist/atoms/search/searchAPI.d.cts +13 -13
- package/dist/atoms/search/searchAPI.d.ts +13 -13
- package/dist/atoms/search/searchAPI.js +1 -1
- package/dist/atoms/search/types.d.ts +1 -1
- package/dist/atoms/search/utils.d.ts +1 -1
- package/dist/atoms/widget/chatPreviewLoading.d.cts +2 -2
- package/dist/atoms/widget/chatPreviewLoading.d.ts +2 -2
- package/dist/contexts/enviveContext/enviveContext.cjs +11 -3
- package/dist/contexts/enviveContext/enviveContext.js +11 -3
- package/dist/contexts/enviveContext/types.d.cts +1 -1
- package/dist/contexts/enviveContext/types.d.ts +1 -1
- package/dist/contexts/graphqlContext/graphqlContext.cjs +1 -1
- package/dist/contexts/graphqlContext/graphqlContext.d.cts +3 -1
- package/dist/contexts/graphqlContext/graphqlContext.d.ts +3 -1
- package/dist/contexts/graphqlContext/graphqlContext.js +1 -1
- package/dist/contexts/pageContext/types.d.ts +1 -1
- package/dist/contexts/salesAgentContext/chatAPI.cjs +2 -2
- package/dist/contexts/salesAgentContext/chatAPI.js +2 -2
- package/dist/contexts/salesAgentContext/salesAgentService.cjs +10 -4
- package/dist/contexts/salesAgentContext/salesAgentService.js +10 -4
- package/dist/contexts/searchContext/searchContext.cjs +1 -1
- package/dist/contexts/searchContext/searchContext.js +1 -1
- package/dist/contexts/systemSettingsContext/systemSettingsContext.d.cts +2 -2
- package/dist/contexts/systemSettingsContext/systemSettingsContext.d.ts +2 -2
- package/dist/contexts/types.d.cts +1 -1
- package/dist/contexts/types.d.ts +1 -1
- package/dist/contexts/typesV3.d.cts +1 -1
- package/dist/contexts/typesV3.d.ts +1 -1
- package/dist/hooks/ChatToggle/useChatToggle.cjs +1 -1
- package/dist/hooks/ChatToggle/useChatToggle.js +1 -1
- package/dist/hooks/GrabAndScroll/useGrabAndScroll.d.cts +2 -2
- package/dist/hooks/GrabAndScroll/useGrabAndScroll.d.ts +2 -2
- package/dist/hooks/Search/useSearch.cjs +3 -3
- package/dist/hooks/Search/useSearch.js +3 -3
- package/dist/hooks/SystemSettingsContext/useSystemSettingsContext.d.cts +2 -2
- package/dist/hooks/SystemSettingsContext/useSystemSettingsContext.d.ts +2 -2
- package/dist/hooks/utils.d.cts +1 -1
- package/dist/services/amplitudeService/amplitudeService.cjs +17 -2
- package/dist/services/amplitudeService/amplitudeService.d.cts +3 -1
- package/dist/services/amplitudeService/amplitudeService.d.ts +3 -1
- package/dist/services/amplitudeService/amplitudeService.js +17 -2
- package/dist/services/enviveConfigService/enviveConfigService.cjs +9 -3
- package/dist/services/enviveConfigService/enviveConfigService.d.cts +3 -2
- package/dist/services/enviveConfigService/enviveConfigService.d.ts +3 -2
- package/dist/services/enviveConfigService/enviveConfigService.js +10 -4
- package/dist/services/enviveConfigService/fetchGraphQLConfig.cjs +78 -39
- package/dist/services/enviveConfigService/fetchGraphQLConfig.js +78 -40
- package/dist/services/ga4ProjectionService/ga4ProjectionService.cjs +3 -3
- package/dist/services/ga4ProjectionService/ga4ProjectionService.js +3 -3
- package/dist/services/hardcopyService/hardcopyService.cjs +4 -2
- package/dist/services/hardcopyService/hardcopyService.js +4 -2
- package/dist/types/config-versions.cjs +3 -1
- package/dist/types/config-versions.js +3 -2
- package/dist/types/customerService.cjs +2 -1
- package/dist/types/customerService.d.cts +2 -1
- package/dist/types/customerService.d.ts +2 -1
- package/dist/types/customerService.js +2 -1
- package/package.json +1 -1
- package/src/application/commerce-api.ts +5 -1
- package/src/application/models/api/orgConfigResults.ts +27 -0
- package/src/application/models/featureGates.ts +5 -0
- package/src/application/models/graphql/queries/getWidgetConfigQuery.ts +34 -0
- package/src/application/utils/__tests__/elementObserver.test.ts +200 -0
- package/src/application/utils/index.ts +0 -1
- package/src/atoms/envive/resolvedBaseConfigVersion.ts +11 -0
- package/src/contexts/enviveContext/enviveContext.tsx +20 -0
- package/src/contexts/graphqlContext/graphqlContext.tsx +5 -0
- package/src/contexts/salesAgentContext/salesAgentService.ts +4 -1
- package/src/services/amplitudeService/__tests__/amplitudeService.test.ts +95 -0
- package/src/services/amplitudeService/amplitudeService.ts +31 -1
- package/src/services/enviveConfigService/__tests__/fetchGraphQLConfig.test.ts +107 -1
- package/src/services/enviveConfigService/enviveConfigService.ts +35 -7
- package/src/services/enviveConfigService/fetchGraphQLConfig.ts +119 -57
- package/src/services/ga4ProjectionService/ga4ProjectionService.ts +2 -2
- package/src/services/hardcopyService/__tests__/hardcopyService.test.ts +35 -1
- package/src/services/hardcopyService/hardcopyService.ts +6 -1
- package/src/types/config-versions.ts +8 -0
- package/src/types/customerService.ts +1 -0
- package/dist/application/utils/merchantUtils.cjs +0 -18
- package/dist/application/utils/merchantUtils.d.cts +0 -5
- package/dist/application/utils/merchantUtils.d.ts +0 -5
- package/dist/application/utils/merchantUtils.js +0 -17
- package/src/application/utils/merchantUtils.ts +0 -16
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import logger_default from "../../application/logging/logger.js";
|
|
2
2
|
import { LocalStorageProvider } from "../localStorageContext/localStorageContext.js";
|
|
3
3
|
import "../localStorageContext/index.js";
|
|
4
|
+
import { resolvedBaseConfigVersionAtom } from "../../atoms/envive/resolvedBaseConfigVersion.js";
|
|
4
5
|
import { EnviveConfigProvider } from "../enviveConfigContext/enviveConfigContext.js";
|
|
5
6
|
import "../enviveConfigContext/index.js";
|
|
6
7
|
import { FeatureFlagService, FeatureFlagServiceProvider } from "../featureFlagServiceContext/featureFlagServiceContext.js";
|
|
@@ -28,6 +29,7 @@ import "../pageContext/index.js";
|
|
|
28
29
|
import { WindowChatToggleBinder } from "./WindowChatToggleBinder.js";
|
|
29
30
|
import { useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
30
31
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
32
|
+
import { useSetAtom } from "jotai";
|
|
31
33
|
|
|
32
34
|
//#region src/contexts/enviveContext/enviveContext.tsx
|
|
33
35
|
const logger = new logger_default("enviveContext");
|
|
@@ -49,6 +51,7 @@ const SalesAgentWrapper = ({ children, enabledAgents, previewMode, showDebugBar,
|
|
|
49
51
|
const EnviveProvider = ({ children, previewMode = false, enabledAgents, services, mockSalesAgentData, show, enviveOn, cdnUrl, reactAppName, identifyingPrefix }) => {
|
|
50
52
|
const { extensionService } = services;
|
|
51
53
|
const [enviveServiceConfig, setEnviveServiceConfig] = useState(null);
|
|
54
|
+
const setResolvedBaseConfigVersion = useSetAtom(resolvedBaseConfigVersionAtom);
|
|
52
55
|
const didReportSuccessRef = useRef(false);
|
|
53
56
|
const invokeExtensionCallback = useCallback((callback) => {
|
|
54
57
|
if (!callback) return;
|
|
@@ -64,9 +67,13 @@ const EnviveProvider = ({ children, previewMode = false, enabledAgents, services
|
|
|
64
67
|
}, [extensionService]);
|
|
65
68
|
useEffect(() => {
|
|
66
69
|
invokeExtensionCallback(extensionService?.onInjectionLoading);
|
|
70
|
+
setResolvedBaseConfigVersion(void 0);
|
|
67
71
|
const fetchEnviveConfig = async () => {
|
|
68
72
|
try {
|
|
69
|
-
|
|
73
|
+
const config = await services.enviveConfigService.getEnviveConfig();
|
|
74
|
+
setEnviveServiceConfig(config);
|
|
75
|
+
const { baseVersion, baseVersionSource } = config.orgConfig?.resolution ?? {};
|
|
76
|
+
if (baseVersion && baseVersionSource && baseVersionSource !== "deployed") setResolvedBaseConfigVersion(baseVersion);
|
|
70
77
|
} catch (error) {
|
|
71
78
|
const resolvedError = error instanceof Error ? error : /* @__PURE__ */ new Error("Failed to load envive config");
|
|
72
79
|
logger.logError("Failed to initialize EnviveProvider", resolvedError);
|
|
@@ -78,7 +85,8 @@ const EnviveProvider = ({ children, previewMode = false, enabledAgents, services
|
|
|
78
85
|
services.enviveConfigService,
|
|
79
86
|
extensionService,
|
|
80
87
|
invokeExtensionCallback,
|
|
81
|
-
invokeExtensionErrorCallback
|
|
88
|
+
invokeExtensionErrorCallback,
|
|
89
|
+
setResolvedBaseConfigVersion
|
|
82
90
|
]);
|
|
83
91
|
useEffect(() => {
|
|
84
92
|
if (!enviveServiceConfig || didReportSuccessRef.current) return;
|
|
@@ -135,4 +143,4 @@ const EnviveProvider = ({ children, previewMode = false, enabledAgents, services
|
|
|
135
143
|
|
|
136
144
|
//#endregion
|
|
137
145
|
export { EnviveProvider };
|
|
138
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXZlQ29udGV4dC5qcyIsIm5hbWVzIjpbIkxvZ2dlciIsIlNlYXJjaEFnZW50V3JhcHBlcjogUmVhY3QuRkM8QWdlbnRXcmFwcGVyUHJvcHM+IiwiU2FsZXNBZ2VudFdyYXBwZXI6IFJlYWN0LkZDPFNhbGVzQWdlbnRXcmFwcGVyUHJvcHM+IiwiRW52aXZlUHJvdmlkZXI6IFJlYWN0LkZDPEVudml2ZVByb3ZpZGVyUHJvcHM+Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbnRleHRzL2Vudml2ZUNvbnRleHQvZW52aXZlQ29udGV4dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVhY3ROb2RlLCB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgeyBBbXBsaXR1ZGVTZXJ2aWNlIH0gZnJvbSAnc3JjL3NlcnZpY2VzL2FtcGxpdHVkZVNlcnZpY2UvYW1wbGl0dWRlU2VydmljZSc7XG5pbXBvcnQgeyBFbnZpdmVTZXJ2aWNlQ29uZmlnLCBJRW52aXZlQ29uZmlnU2VydmljZSB9IGZyb20gJ3NyYy9zZXJ2aWNlcy9lbnZpdmVDb25maWdTZXJ2aWNlJztcbmltcG9ydCB7IElIYXJkY29weVNlcnZpY2UgfSBmcm9tICdzcmMvc2VydmljZXMvaGFyZGNvcHlTZXJ2aWNlJztcbmltcG9ydCB7IElVc2VySWRlbnRpdHlTZXJ2aWNlIH0gZnJvbSAnc3JjL3NlcnZpY2VzL3VzZXJJZGVudGl0eVNlcnZpY2UnO1xuaW1wb3J0IExvZ2dlciBmcm9tICdzcmMvYXBwbGljYXRpb24vbG9nZ2luZy9sb2dnZXInO1xuaW1wb3J0IHsgQW1wbGl0dWRlUHJvdmlkZXIgfSBmcm9tICcuLi9hbXBsaXR1ZGVDb250ZXh0JztcbmltcG9ydCB7IEVudml2ZUNvbmZpZ1Byb3ZpZGVyIH0gZnJvbSAnLi4vZW52aXZlQ29uZmlnQ29udGV4dCc7XG5pbXBvcnQgeyBFbnZpdmVDc3NQcm92aWRlciB9IGZyb20gJy4uL2Vudml2ZUNzc0NvbnRleHQnO1xuaW1wb3J0IHsgRmVhdHVyZUZsYWdTZXJ2aWNlLCBGZWF0dXJlRmxhZ1NlcnZpY2VQcm92aWRlciB9IGZyb20gJy4uL2ZlYXR1cmVGbGFnU2VydmljZUNvbnRleHQnO1xuaW1wb3J0IHsgTG9jYWxTdG9yYWdlUHJvdmlkZXIgfSBmcm9tICcuLi9sb2NhbFN0b3JhZ2VDb250ZXh0JztcbmltcG9ydCB7IE5ld09yZ0NvbmZpZ1Byb3ZpZGVyIH0gZnJvbSAnLi4vbmV3T3JnQ29uZmlnQ29udGV4dCc7XG5pbXBvcnQgeyBVc2VySWRlbnRpdHlQcm92aWRlciB9IGZyb20gJy4uL3VzZXJJZGVudGl0eUNvbnRleHQnO1xuaW1wb3J0IHsgRW52aXZlQWdlbnQgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IFNlYXJjaFByb3ZpZGVyIH0gZnJvbSAnLi4vc2VhcmNoQ29udGV4dCc7XG5pbXBvcnQgeyBTYWxlc0FnZW50UHJvdmlkZXIgfSBmcm9tICcuLi9zYWxlc0FnZW50Q29udGV4dC9zYWxlc0FnZW50Q29udGV4dCc7XG5pbXBvcnQgeyBTeXN0ZW1TZXR0aW5nc0NvbnRleHRQcm92aWRlciB9IGZyb20gJy4uL3N5c3RlbVNldHRpbmdzQ29udGV4dCc7XG5pbXBvcnQgeyBIYXJkY29weVByb3ZpZGVyIH0gZnJvbSAnLi4vaGFyZGNvcHlDb250ZXh0JztcbmltcG9ydCB7IFdpZGdldENvbmZpZ1Byb3ZpZGVyIH0gZnJvbSAnLi4vd2lkZ2V0Q29uZmlnQ29udGV4dCc7XG5pbXBvcnQgeyBQYWdlUHJvdmlkZXIgfSBmcm9tICcuLi9wYWdlQ29udGV4dCc7XG5pbXBvcnQgeyBXaW5kb3dDaGF0VG9nZ2xlQmluZGVyIH0gZnJvbSAnLi9XaW5kb3dDaGF0VG9nZ2xlQmluZGVyJztcblxuY29uc3QgbG9nZ2VyID0gbmV3IExvZ2dlcignZW52aXZlQ29udGV4dCcpO1xuXG5pbnRlcmZhY2UgQWdlbnRXcmFwcGVyUHJvcHMge1xuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xuICBlbmFibGVkQWdlbnRzOiBFbnZpdmVBZ2VudFtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEV4dGVuc2lvblN0YXR1c0NhbGxiYWNrcyB7XG4gIG9uSW5qZWN0aW9uTG9hZGluZz86ICgpID0+IFByb21pc2U8dW5rbm93bj4gfCB2b2lkO1xuICBvbkluamVjdGlvblN1Y2Nlc3M/OiAoKSA9PiBQcm9taXNlPHVua25vd24+IHwgdm9pZDtcbiAgb25JbmplY3Rpb25FcnJvcj86IChlcnJvcjogRXJyb3IpID0+IFByb21pc2U8dW5rbm93bj4gfCB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVudml2ZVNlcnZpY2VzIHtcbiAgZW52aXZlQ29uZmlnU2VydmljZTogSUVudml2ZUNvbmZpZ1NlcnZpY2U7XG4gIGFtcGxpdHVkZVNlcnZpY2U6IEFtcGxpdHVkZVNlcnZpY2U7XG4gIHVzZXJJZGVudGl0eVNlcnZpY2U6IElVc2VySWRlbnRpdHlTZXJ2aWNlO1xuICBoYXJkY29weVNlcnZpY2U6IElIYXJkY29weVNlcnZpY2U7XG4gIGV4dGVuc2lvblNlcnZpY2U/OiBFeHRlbnNpb25TdGF0dXNDYWxsYmFja3M7XG59XG5cbmludGVyZmFjZSBFbnZpdmVQcm92aWRlclByb3BzIGV4dGVuZHMgQWdlbnRXcmFwcGVyUHJvcHMge1xuICBpZGVudGlmeWluZ1ByZWZpeDogc3RyaW5nO1xuICBzZXJ2aWNlczogRW52aXZlU2VydmljZXM7XG4gIHNob3c/OiBib29sZWFuO1xuICBlbnZpdmVPbj86IGJvb2xlYW47XG4gIGNkblVybD86IHN0cmluZztcbiAgcmVhY3RBcHBOYW1lPzogc3RyaW5nO1xuICBwcmV2aWV3TW9kZT86IGJvb2xlYW47XG4gIG1vY2tTYWxlc0FnZW50RGF0YT86IGFueTtcbn1cblxuY29uc3QgU2VhcmNoQWdlbnRXcmFwcGVyOiBSZWFjdC5GQzxBZ2VudFdyYXBwZXJQcm9wcz4gPSAoeyBjaGlsZHJlbiwgZW5hYmxlZEFnZW50cyB9KSA9PiB7XG4gIGlmICghZW5hYmxlZEFnZW50cy5pbmNsdWRlcyhFbnZpdmVBZ2VudC5TZWFyY2hBZ2VudCkpIHtcbiAgICByZXR1cm4gY2hpbGRyZW47XG4gIH1cbiAgcmV0dXJuIDxTZWFyY2hQcm92aWRlcj57Y2hpbGRyZW59PC9TZWFyY2hQcm92aWRlcj47XG59O1xuXG5pbnRlcmZhY2UgU2FsZXNBZ2VudFdyYXBwZXJQcm9wcyBleHRlbmRzIEFnZW50V3JhcHBlclByb3BzIHtcbiAgcHJldmlld01vZGU/OiBib29sZWFuO1xuICBzaG93RGVidWdCYXI6IGJvb2xlYW47XG4gIG1vY2tTYWxlc0FnZW50RGF0YT86IGFueTtcbn1cblxuY29uc3QgU2FsZXNBZ2VudFdyYXBwZXI6IFJlYWN0LkZDPFNhbGVzQWdlbnRXcmFwcGVyUHJvcHM+ID0gKHtcbiAgY2hpbGRyZW4sXG4gIGVuYWJsZWRBZ2VudHMsXG4gIHByZXZpZXdNb2RlLFxuICBzaG93RGVidWdCYXIsXG4gIG1vY2tTYWxlc0FnZW50RGF0YSxcbn0pID0+IHtcbiAgaWYgKCFlbmFibGVkQWdlbnRzLmluY2x1ZGVzKEVudml2ZUFnZW50LlNhbGVzQWdlbnQpKSB7XG4gICAgcmV0dXJuIGNoaWxkcmVuO1xuICB9XG4gIHJldHVybiAoXG4gICAgPFN5c3RlbVNldHRpbmdzQ29udGV4dFByb3ZpZGVyIHNob3dEZWJ1Z0Jhcj17c2hvd0RlYnVnQmFyfT5cbiAgICAgIDxTYWxlc0FnZW50UHJvdmlkZXJcbiAgICAgICAgcHJldmlld01vZGU9e3ByZXZpZXdNb2RlfVxuICAgICAgICBtb2NrRGF0YT17bW9ja1NhbGVzQWdlbnREYXRhfVxuICAgICAgPlxuICAgICAgICB7Y2hpbGRyZW59XG4gICAgICA8L1NhbGVzQWdlbnRQcm92aWRlcj5cbiAgICA8L1N5c3RlbVNldHRpbmdzQ29udGV4dFByb3ZpZGVyPlxuICApO1xufTtcblxuZXhwb3J0IGNvbnN0IEVudml2ZVByb3ZpZGVyOiBSZWFjdC5GQzxFbnZpdmVQcm92aWRlclByb3BzPiA9ICh7XG4gIGNoaWxkcmVuLFxuICBwcmV2aWV3TW9kZSA9IGZhbHNlLFxuICBlbmFibGVkQWdlbnRzLFxuICBzZXJ2aWNlcyxcbiAgbW9ja1NhbGVzQWdlbnREYXRhLFxuICBzaG93LFxuICBlbnZpdmVPbixcbiAgY2RuVXJsLFxuICByZWFjdEFwcE5hbWUsXG4gIGlkZW50aWZ5aW5nUHJlZml4LFxufSkgPT4ge1xuICBjb25zdCB7IGV4dGVuc2lvblNlcnZpY2UgfSA9IHNlcnZpY2VzO1xuICBjb25zdCBbZW52aXZlU2VydmljZUNvbmZpZywgc2V0RW52aXZlU2VydmljZUNvbmZpZ10gPSB1c2VTdGF0ZTxFbnZpdmVTZXJ2aWNlQ29uZmlnIHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IGRpZFJlcG9ydFN1Y2Nlc3NSZWYgPSB1c2VSZWYoZmFsc2UpO1xuXG4gIGNvbnN0IGludm9rZUV4dGVuc2lvbkNhbGxiYWNrID0gdXNlQ2FsbGJhY2soKGNhbGxiYWNrPzogKCkgPT4gUHJvbWlzZTx1bmtub3duPiB8IHZvaWQpID0+IHtcbiAgICBpZiAoIWNhbGxiYWNrKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIFByb21pc2UucmVzb2x2ZShjYWxsYmFjaygpKS5jYXRjaChlcnJvciA9PiB7XG4gICAgICBsb2dnZXIubG9nRGVidWcoJ0V4dGVuc2lvbiBzdGF0dXMgY2FsbGJhY2sgZmFpbGVkJywgZXJyb3IpO1xuICAgIH0pO1xuICB9LCBbXSk7XG5cbiAgY29uc3QgaW52b2tlRXh0ZW5zaW9uRXJyb3JDYWxsYmFjayA9IHVzZUNhbGxiYWNrKFxuICAgIChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgIGlmICghZXh0ZW5zaW9uU2VydmljZT8ub25JbmplY3Rpb25FcnJvcikge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBQcm9taXNlLnJlc29sdmUoZXh0ZW5zaW9uU2VydmljZS5vbkluamVjdGlvbkVycm9yKGVycm9yKSkuY2F0Y2goY2FsbGJhY2tFcnJvciA9PiB7XG4gICAgICAgIGxvZ2dlci5sb2dEZWJ1ZygnRXh0ZW5zaW9uIGVycm9yIGNhbGxiYWNrIGZhaWxlZCcsIGNhbGxiYWNrRXJyb3IpO1xuICAgICAgfSk7XG4gICAgfSxcbiAgICBbZXh0ZW5zaW9uU2VydmljZV0sXG4gICk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpbnZva2VFeHRlbnNpb25DYWxsYmFjayhleHRlbnNpb25TZXJ2aWNlPy5vbkluamVjdGlvbkxvYWRpbmcpO1xuXG4gICAgY29uc3QgZmV0Y2hFbnZpdmVDb25maWcgPSBhc3luYyAoKSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBjb25maWcgPSBhd2FpdCBzZXJ2aWNlcy5lbnZpdmVDb25maWdTZXJ2aWNlLmdldEVudml2ZUNvbmZpZygpO1xuICAgICAgICBzZXRFbnZpdmVTZXJ2aWNlQ29uZmlnKGNvbmZpZyk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zdCByZXNvbHZlZEVycm9yID1cbiAgICAgICAgICBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IgOiBuZXcgRXJyb3IoJ0ZhaWxlZCB0byBsb2FkIGVudml2ZSBjb25maWcnKTtcbiAgICAgICAgbG9nZ2VyLmxvZ0Vycm9yKCdGYWlsZWQgdG8gaW5pdGlhbGl6ZSBFbnZpdmVQcm92aWRlcicsIHJlc29sdmVkRXJyb3IpO1xuICAgICAgICBpbnZva2VFeHRlbnNpb25FcnJvckNhbGxiYWNrKHJlc29sdmVkRXJyb3IpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBmZXRjaEVudml2ZUNvbmZpZygpO1xuICB9LCBbXG4gICAgc2VydmljZXMuZW52aXZlQ29uZmlnU2VydmljZSxcbiAgICBleHRlbnNpb25TZXJ2aWNlLFxuICAgIGludm9rZUV4dGVuc2lvbkNhbGxiYWNrLFxuICAgIGludm9rZUV4dGVuc2lvbkVycm9yQ2FsbGJhY2ssXG4gIF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFlbnZpdmVTZXJ2aWNlQ29uZmlnIHx8IGRpZFJlcG9ydFN1Y2Nlc3NSZWYuY3VycmVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBkaWRSZXBvcnRTdWNjZXNzUmVmLmN1cnJlbnQgPSB0cnVlO1xuICAgIGludm9rZUV4dGVuc2lvbkNhbGxiYWNrKGV4dGVuc2lvblNlcnZpY2U/Lm9uSW5qZWN0aW9uU3VjY2Vzcyk7XG4gIH0sIFtlbnZpdmVTZXJ2aWNlQ29uZmlnLCBleHRlbnNpb25TZXJ2aWNlLCBpbnZva2VFeHRlbnNpb25DYWxsYmFja10pO1xuXG4gIGNvbnN0IGZlYXR1cmVGbGFnU2VydmljZSA9IHVzZU1lbW8oXG4gICAgKCkgPT4gbmV3IEZlYXR1cmVGbGFnU2VydmljZShlbnZpdmVTZXJ2aWNlQ29uZmlnPy5nYXRlcyA/PyBbXSksXG4gICAgW2Vudml2ZVNlcnZpY2VDb25maWc/LmdhdGVzXSxcbiAgKTtcblxuICBpZiAoZW52aXZlU2VydmljZUNvbmZpZyA9PT0gbnVsbCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8RW52aXZlQ29uZmlnUHJvdmlkZXJcbiAgICAgIGlkZW50aWZ5aW5nUHJlZml4PXtpZGVudGlmeWluZ1ByZWZpeH1cbiAgICAgIGJhc2VVcmw9e3NlcnZpY2VzLmVudml2ZUNvbmZpZ1NlcnZpY2UuYmFzZVVybH1cbiAgICAgIG9yZ0xldmVsQXBpS2V5PXtzZXJ2aWNlcy5lbnZpdmVDb25maWdTZXJ2aWNlLmFwaUtleX1cbiAgICAgIG9yZ1Nob3J0TmFtZT17ZW52aXZlU2VydmljZUNvbmZpZy5vcmcub3JnLnNob3J0X25hbWV9XG4gICAgICBvcmdJZD17ZW52aXZlU2VydmljZUNvbmZpZy5vcmcub3JnLmlkfVxuICAgICAgc2hvdz17c2hvd31cbiAgICAgIGVudml2ZU9uPXtlbnZpdmVPbn1cbiAgICAgIGNkblVybD17Y2RuVXJsfVxuICAgICAgcmVhY3RBcHBOYW1lPXtyZWFjdEFwcE5hbWV9XG4gICAgPlxuICAgICAgPE5ld09yZ0NvbmZpZ1Byb3ZpZGVyIGNvbmZpZz17ZW52aXZlU2VydmljZUNvbmZpZy5vcmdDb25maWcgPz8ge319PlxuICAgICAgICA8TG9jYWxTdG9yYWdlUHJvdmlkZXI+XG4gICAgICAgICAgPEZlYXR1cmVGbGFnU2VydmljZVByb3ZpZGVyIGZlYXR1cmVGbGFnU2VydmljZT17ZmVhdHVyZUZsYWdTZXJ2aWNlfT5cbiAgICAgICAgICAgIDxVc2VySWRlbnRpdHlQcm92aWRlciB1c2VySWRTZXJ2aWNlPXtzZXJ2aWNlcy51c2VySWRlbnRpdHlTZXJ2aWNlfT5cbiAgICAgICAgICAgICAgPEFtcGxpdHVkZVByb3ZpZGVyIGV4dGVybmFsQW1wbGl0dWRlU2VydmljZT17c2VydmljZXMuYW1wbGl0dWRlU2VydmljZX0+XG4gICAgICAgICAgICAgICAgPFBhZ2VQcm92aWRlclxuICAgICAgICAgICAgICAgICAgcHJldmlld01vZGU9e3ByZXZpZXdNb2RlfVxuICAgICAgICAgICAgICAgICAgb25VcmxSZXNvbHZlck5vdFJlYWR5PXtleHRlbnNpb25TZXJ2aWNlPy5vbkluamVjdGlvbkVycm9yfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxXaWRnZXRDb25maWdQcm92aWRlcj5cbiAgICAgICAgICAgICAgICAgICAgPEhhcmRjb3B5UHJvdmlkZXIgaGFyZGNvcHlTZXJ2aWNlPXtzZXJ2aWNlcy5oYXJkY29weVNlcnZpY2V9PlxuICAgICAgICAgICAgICAgICAgICAgIDxFbnZpdmVDc3NQcm92aWRlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxTZWFyY2hBZ2VudFdyYXBwZXIgZW5hYmxlZEFnZW50cz17ZW5hYmxlZEFnZW50c30+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxXaW5kb3dDaGF0VG9nZ2xlQmluZGVyIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxTYWxlc0FnZW50V3JhcHBlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuYWJsZWRBZ2VudHM9e2VuYWJsZWRBZ2VudHN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0RlYnVnQmFyPXtlbnZpdmVPbiB8fCBmYWxzZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2aWV3TW9kZT17cHJldmlld01vZGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9ja1NhbGVzQWdlbnREYXRhPXttb2NrU2FsZXNBZ2VudERhdGF9XG4gICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvU2FsZXNBZ2VudFdyYXBwZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L1NlYXJjaEFnZW50V3JhcHBlcj5cbiAgICAgICAgICAgICAgICAgICAgICA8L0Vudml2ZUNzc1Byb3ZpZGVyPlxuICAgICAgICAgICAgICAgICAgICA8L0hhcmRjb3B5UHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgICA8L1dpZGdldENvbmZpZ1Byb3ZpZGVyPlxuICAgICAgICAgICAgICAgIDwvUGFnZVByb3ZpZGVyPlxuICAgICAgICAgICAgICA8L0FtcGxpdHVkZVByb3ZpZGVyPlxuICAgICAgICAgICAgPC9Vc2VySWRlbnRpdHlQcm92aWRlcj5cbiAgICAgICAgICA8L0ZlYXR1cmVGbGFnU2VydmljZVByb3ZpZGVyPlxuICAgICAgICA8L0xvY2FsU3RvcmFnZVByb3ZpZGVyPlxuICAgICAgPC9OZXdPcmdDb25maWdQcm92aWRlcj5cbiAgICA8L0Vudml2ZUNvbmZpZ1Byb3ZpZGVyPlxuICApO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUF1QkEsTUFBTSxTQUFTLElBQUlBLGVBQU8sZ0JBQWdCO0FBZ0MxQyxNQUFNQyxzQkFBbUQsRUFBRSxVQUFVLG9CQUFvQjtBQUN2RixLQUFJLENBQUMsY0FBYyxTQUFTLFlBQVksWUFBWSxDQUNsRCxRQUFPO0FBRVQsUUFBTyxvQkFBQyxrQkFBZ0IsV0FBMEI7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
|
|
146
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXZlQ29udGV4dC5qcyIsIm5hbWVzIjpbIkxvZ2dlciIsIlNlYXJjaEFnZW50V3JhcHBlcjogUmVhY3QuRkM8QWdlbnRXcmFwcGVyUHJvcHM+IiwiU2FsZXNBZ2VudFdyYXBwZXI6IFJlYWN0LkZDPFNhbGVzQWdlbnRXcmFwcGVyUHJvcHM+IiwiRW52aXZlUHJvdmlkZXI6IFJlYWN0LkZDPEVudml2ZVByb3ZpZGVyUHJvcHM+Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbnRleHRzL2Vudml2ZUNvbnRleHQvZW52aXZlQ29udGV4dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVhY3ROb2RlLCB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlU2V0QXRvbSB9IGZyb20gJ2pvdGFpJztcblxuaW1wb3J0IHsgQW1wbGl0dWRlU2VydmljZSB9IGZyb20gJ3NyYy9zZXJ2aWNlcy9hbXBsaXR1ZGVTZXJ2aWNlL2FtcGxpdHVkZVNlcnZpY2UnO1xuaW1wb3J0IHsgRW52aXZlU2VydmljZUNvbmZpZywgSUVudml2ZUNvbmZpZ1NlcnZpY2UgfSBmcm9tICdzcmMvc2VydmljZXMvZW52aXZlQ29uZmlnU2VydmljZSc7XG5pbXBvcnQgeyByZXNvbHZlZEJhc2VDb25maWdWZXJzaW9uQXRvbSB9IGZyb20gJ3NyYy9hdG9tcy9lbnZpdmUvcmVzb2x2ZWRCYXNlQ29uZmlnVmVyc2lvbic7XG5pbXBvcnQgeyBJSGFyZGNvcHlTZXJ2aWNlIH0gZnJvbSAnc3JjL3NlcnZpY2VzL2hhcmRjb3B5U2VydmljZSc7XG5pbXBvcnQgeyBJVXNlcklkZW50aXR5U2VydmljZSB9IGZyb20gJ3NyYy9zZXJ2aWNlcy91c2VySWRlbnRpdHlTZXJ2aWNlJztcbmltcG9ydCBMb2dnZXIgZnJvbSAnc3JjL2FwcGxpY2F0aW9uL2xvZ2dpbmcvbG9nZ2VyJztcbmltcG9ydCB7IEFtcGxpdHVkZVByb3ZpZGVyIH0gZnJvbSAnLi4vYW1wbGl0dWRlQ29udGV4dCc7XG5pbXBvcnQgeyBFbnZpdmVDb25maWdQcm92aWRlciB9IGZyb20gJy4uL2Vudml2ZUNvbmZpZ0NvbnRleHQnO1xuaW1wb3J0IHsgRW52aXZlQ3NzUHJvdmlkZXIgfSBmcm9tICcuLi9lbnZpdmVDc3NDb250ZXh0JztcbmltcG9ydCB7IEZlYXR1cmVGbGFnU2VydmljZSwgRmVhdHVyZUZsYWdTZXJ2aWNlUHJvdmlkZXIgfSBmcm9tICcuLi9mZWF0dXJlRmxhZ1NlcnZpY2VDb250ZXh0JztcbmltcG9ydCB7IExvY2FsU3RvcmFnZVByb3ZpZGVyIH0gZnJvbSAnLi4vbG9jYWxTdG9yYWdlQ29udGV4dCc7XG5pbXBvcnQgeyBOZXdPcmdDb25maWdQcm92aWRlciB9IGZyb20gJy4uL25ld09yZ0NvbmZpZ0NvbnRleHQnO1xuaW1wb3J0IHsgVXNlcklkZW50aXR5UHJvdmlkZXIgfSBmcm9tICcuLi91c2VySWRlbnRpdHlDb250ZXh0JztcbmltcG9ydCB7IEVudml2ZUFnZW50IH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBTZWFyY2hQcm92aWRlciB9IGZyb20gJy4uL3NlYXJjaENvbnRleHQnO1xuaW1wb3J0IHsgU2FsZXNBZ2VudFByb3ZpZGVyIH0gZnJvbSAnLi4vc2FsZXNBZ2VudENvbnRleHQvc2FsZXNBZ2VudENvbnRleHQnO1xuaW1wb3J0IHsgU3lzdGVtU2V0dGluZ3NDb250ZXh0UHJvdmlkZXIgfSBmcm9tICcuLi9zeXN0ZW1TZXR0aW5nc0NvbnRleHQnO1xuaW1wb3J0IHsgSGFyZGNvcHlQcm92aWRlciB9IGZyb20gJy4uL2hhcmRjb3B5Q29udGV4dCc7XG5pbXBvcnQgeyBXaWRnZXRDb25maWdQcm92aWRlciB9IGZyb20gJy4uL3dpZGdldENvbmZpZ0NvbnRleHQnO1xuaW1wb3J0IHsgUGFnZVByb3ZpZGVyIH0gZnJvbSAnLi4vcGFnZUNvbnRleHQnO1xuaW1wb3J0IHsgV2luZG93Q2hhdFRvZ2dsZUJpbmRlciB9IGZyb20gJy4vV2luZG93Q2hhdFRvZ2dsZUJpbmRlcic7XG5cbmNvbnN0IGxvZ2dlciA9IG5ldyBMb2dnZXIoJ2Vudml2ZUNvbnRleHQnKTtcblxuaW50ZXJmYWNlIEFnZW50V3JhcHBlclByb3BzIHtcbiAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcbiAgZW5hYmxlZEFnZW50czogRW52aXZlQWdlbnRbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFeHRlbnNpb25TdGF0dXNDYWxsYmFja3Mge1xuICBvbkluamVjdGlvbkxvYWRpbmc/OiAoKSA9PiBQcm9taXNlPHVua25vd24+IHwgdm9pZDtcbiAgb25JbmplY3Rpb25TdWNjZXNzPzogKCkgPT4gUHJvbWlzZTx1bmtub3duPiB8IHZvaWQ7XG4gIG9uSW5qZWN0aW9uRXJyb3I/OiAoZXJyb3I6IEVycm9yKSA9PiBQcm9taXNlPHVua25vd24+IHwgdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFbnZpdmVTZXJ2aWNlcyB7XG4gIGVudml2ZUNvbmZpZ1NlcnZpY2U6IElFbnZpdmVDb25maWdTZXJ2aWNlO1xuICBhbXBsaXR1ZGVTZXJ2aWNlOiBBbXBsaXR1ZGVTZXJ2aWNlO1xuICB1c2VySWRlbnRpdHlTZXJ2aWNlOiBJVXNlcklkZW50aXR5U2VydmljZTtcbiAgaGFyZGNvcHlTZXJ2aWNlOiBJSGFyZGNvcHlTZXJ2aWNlO1xuICBleHRlbnNpb25TZXJ2aWNlPzogRXh0ZW5zaW9uU3RhdHVzQ2FsbGJhY2tzO1xufVxuXG5pbnRlcmZhY2UgRW52aXZlUHJvdmlkZXJQcm9wcyBleHRlbmRzIEFnZW50V3JhcHBlclByb3BzIHtcbiAgaWRlbnRpZnlpbmdQcmVmaXg6IHN0cmluZztcbiAgc2VydmljZXM6IEVudml2ZVNlcnZpY2VzO1xuICBzaG93PzogYm9vbGVhbjtcbiAgZW52aXZlT24/OiBib29sZWFuO1xuICBjZG5Vcmw/OiBzdHJpbmc7XG4gIHJlYWN0QXBwTmFtZT86IHN0cmluZztcbiAgcHJldmlld01vZGU/OiBib29sZWFuO1xuICBtb2NrU2FsZXNBZ2VudERhdGE/OiBhbnk7XG59XG5cbmNvbnN0IFNlYXJjaEFnZW50V3JhcHBlcjogUmVhY3QuRkM8QWdlbnRXcmFwcGVyUHJvcHM+ID0gKHsgY2hpbGRyZW4sIGVuYWJsZWRBZ2VudHMgfSkgPT4ge1xuICBpZiAoIWVuYWJsZWRBZ2VudHMuaW5jbHVkZXMoRW52aXZlQWdlbnQuU2VhcmNoQWdlbnQpKSB7XG4gICAgcmV0dXJuIGNoaWxkcmVuO1xuICB9XG4gIHJldHVybiA8U2VhcmNoUHJvdmlkZXI+e2NoaWxkcmVufTwvU2VhcmNoUHJvdmlkZXI+O1xufTtcblxuaW50ZXJmYWNlIFNhbGVzQWdlbnRXcmFwcGVyUHJvcHMgZXh0ZW5kcyBBZ2VudFdyYXBwZXJQcm9wcyB7XG4gIHByZXZpZXdNb2RlPzogYm9vbGVhbjtcbiAgc2hvd0RlYnVnQmFyOiBib29sZWFuO1xuICBtb2NrU2FsZXNBZ2VudERhdGE/OiBhbnk7XG59XG5cbmNvbnN0IFNhbGVzQWdlbnRXcmFwcGVyOiBSZWFjdC5GQzxTYWxlc0FnZW50V3JhcHBlclByb3BzPiA9ICh7XG4gIGNoaWxkcmVuLFxuICBlbmFibGVkQWdlbnRzLFxuICBwcmV2aWV3TW9kZSxcbiAgc2hvd0RlYnVnQmFyLFxuICBtb2NrU2FsZXNBZ2VudERhdGEsXG59KSA9PiB7XG4gIGlmICghZW5hYmxlZEFnZW50cy5pbmNsdWRlcyhFbnZpdmVBZ2VudC5TYWxlc0FnZW50KSkge1xuICAgIHJldHVybiBjaGlsZHJlbjtcbiAgfVxuICByZXR1cm4gKFxuICAgIDxTeXN0ZW1TZXR0aW5nc0NvbnRleHRQcm92aWRlciBzaG93RGVidWdCYXI9e3Nob3dEZWJ1Z0Jhcn0+XG4gICAgICA8U2FsZXNBZ2VudFByb3ZpZGVyXG4gICAgICAgIHByZXZpZXdNb2RlPXtwcmV2aWV3TW9kZX1cbiAgICAgICAgbW9ja0RhdGE9e21vY2tTYWxlc0FnZW50RGF0YX1cbiAgICAgID5cbiAgICAgICAge2NoaWxkcmVufVxuICAgICAgPC9TYWxlc0FnZW50UHJvdmlkZXI+XG4gICAgPC9TeXN0ZW1TZXR0aW5nc0NvbnRleHRQcm92aWRlcj5cbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBFbnZpdmVQcm92aWRlcjogUmVhY3QuRkM8RW52aXZlUHJvdmlkZXJQcm9wcz4gPSAoe1xuICBjaGlsZHJlbixcbiAgcHJldmlld01vZGUgPSBmYWxzZSxcbiAgZW5hYmxlZEFnZW50cyxcbiAgc2VydmljZXMsXG4gIG1vY2tTYWxlc0FnZW50RGF0YSxcbiAgc2hvdyxcbiAgZW52aXZlT24sXG4gIGNkblVybCxcbiAgcmVhY3RBcHBOYW1lLFxuICBpZGVudGlmeWluZ1ByZWZpeCxcbn0pID0+IHtcbiAgY29uc3QgeyBleHRlbnNpb25TZXJ2aWNlIH0gPSBzZXJ2aWNlcztcbiAgY29uc3QgW2Vudml2ZVNlcnZpY2VDb25maWcsIHNldEVudml2ZVNlcnZpY2VDb25maWddID0gdXNlU3RhdGU8RW52aXZlU2VydmljZUNvbmZpZyB8IG51bGw+KG51bGwpO1xuICBjb25zdCBzZXRSZXNvbHZlZEJhc2VDb25maWdWZXJzaW9uID0gdXNlU2V0QXRvbShyZXNvbHZlZEJhc2VDb25maWdWZXJzaW9uQXRvbSk7XG4gIGNvbnN0IGRpZFJlcG9ydFN1Y2Nlc3NSZWYgPSB1c2VSZWYoZmFsc2UpO1xuXG4gIGNvbnN0IGludm9rZUV4dGVuc2lvbkNhbGxiYWNrID0gdXNlQ2FsbGJhY2soKGNhbGxiYWNrPzogKCkgPT4gUHJvbWlzZTx1bmtub3duPiB8IHZvaWQpID0+IHtcbiAgICBpZiAoIWNhbGxiYWNrKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIFByb21pc2UucmVzb2x2ZShjYWxsYmFjaygpKS5jYXRjaChlcnJvciA9PiB7XG4gICAgICBsb2dnZXIubG9nRGVidWcoJ0V4dGVuc2lvbiBzdGF0dXMgY2FsbGJhY2sgZmFpbGVkJywgZXJyb3IpO1xuICAgIH0pO1xuICB9LCBbXSk7XG5cbiAgY29uc3QgaW52b2tlRXh0ZW5zaW9uRXJyb3JDYWxsYmFjayA9IHVzZUNhbGxiYWNrKFxuICAgIChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgIGlmICghZXh0ZW5zaW9uU2VydmljZT8ub25JbmplY3Rpb25FcnJvcikge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBQcm9taXNlLnJlc29sdmUoZXh0ZW5zaW9uU2VydmljZS5vbkluamVjdGlvbkVycm9yKGVycm9yKSkuY2F0Y2goY2FsbGJhY2tFcnJvciA9PiB7XG4gICAgICAgIGxvZ2dlci5sb2dEZWJ1ZygnRXh0ZW5zaW9uIGVycm9yIGNhbGxiYWNrIGZhaWxlZCcsIGNhbGxiYWNrRXJyb3IpO1xuICAgICAgfSk7XG4gICAgfSxcbiAgICBbZXh0ZW5zaW9uU2VydmljZV0sXG4gICk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpbnZva2VFeHRlbnNpb25DYWxsYmFjayhleHRlbnNpb25TZXJ2aWNlPy5vbkluamVjdGlvbkxvYWRpbmcpO1xuXG4gICAgLy8gQ2xlYXIgYW55IHByaW9yIG1lcmNoYW50J3MgcmVzb2x2ZWQgdmVyc2lvbiBiZWZvcmUgdGhlIG5ldyBmZXRjaCDigJQgdGhlXG4gICAgLy8gYXRvbSBpcyBtb2R1bGUtbGV2ZWwgYW5kIHN1cnZpdmVzIEVudml2ZVByb3ZpZGVyIHJlbW91bnRzIChlLmcuIHdoZW5cbiAgICAvLyBFbnZpdmUgSHViIHN3aXRjaGVzIG1lcmNoYW50cykuIFdpdGhvdXQgdGhlIHJlc2V0LCB0aGUgcHJldmlvdXNcbiAgICAvLyBtZXJjaGFudCdzIGBiYXNlVmVyc2lvbmAgd291bGQgbGVhayBpbnRvIHRoZSBuZXcgbWVyY2hhbnQncyBpbmZlcmVuY2VcbiAgICAvLyByZXF1ZXN0cyB3aGVuIHRoZSBuZXcgcmVzb2x1dGlvbiBmYWxscyBiYWNrIHRvIHRoZSBcImRlcGxveWVkXCIgc2VudGluZWxcbiAgICAvLyBhbmQgdGhlIGNvbmRpdGlvbmFsIHdyaXRlIGJlbG93IGlzIHNraXBwZWQuXG4gICAgc2V0UmVzb2x2ZWRCYXNlQ29uZmlnVmVyc2lvbih1bmRlZmluZWQpO1xuXG4gICAgY29uc3QgZmV0Y2hFbnZpdmVDb25maWcgPSBhc3luYyAoKSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBjb25maWcgPSBhd2FpdCBzZXJ2aWNlcy5lbnZpdmVDb25maWdTZXJ2aWNlLmdldEVudml2ZUNvbmZpZygpO1xuICAgICAgICBzZXRFbnZpdmVTZXJ2aWNlQ29uZmlnKGNvbmZpZyk7XG4gICAgICAgIC8vIEZvcndhcmQgb25seSByZWFsIHBpbnMgdG8gaW5mZXJlbmNlLiBiYXNlVmVyc2lvblNvdXJjZSA9PT0gXCJkZXBsb3llZFwiXG4gICAgICAgIC8vIGlzIHRoZSBzZW50aW5lbCBmb3IgXCJubyBtZXJjaGFudF9sYXllciwgbm8gb3ZlcnJpZGVcIiDigJQgbGVhdmluZyB0aGVcbiAgICAgICAgLy8gYXRvbSB1bmRlZmluZWQgbGV0cyBpbmZlcmVuY2UgZmFsbCB0aHJvdWdoIHRvIGJhY2tlbmQncyBkZWZhdWx0XG4gICAgICAgIC8vIHZlcnNpb24gc2VsZWN0aW9uIGluc3RlYWQgb2YgcGlubmluZyB0byB0aGUgbGl0ZXJhbCBzdHJpbmcgXCJkZXBsb3llZFwiLlxuICAgICAgICBjb25zdCB7IGJhc2VWZXJzaW9uLCBiYXNlVmVyc2lvblNvdXJjZSB9ID0gY29uZmlnLm9yZ0NvbmZpZz8ucmVzb2x1dGlvbiA/PyB7fTtcbiAgICAgICAgaWYgKGJhc2VWZXJzaW9uICYmIGJhc2VWZXJzaW9uU291cmNlICYmIGJhc2VWZXJzaW9uU291cmNlICE9PSAnZGVwbG95ZWQnKSB7XG4gICAgICAgICAgc2V0UmVzb2x2ZWRCYXNlQ29uZmlnVmVyc2lvbihiYXNlVmVyc2lvbik7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnN0IHJlc29sdmVkRXJyb3IgPVxuICAgICAgICAgIGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvciA6IG5ldyBFcnJvcignRmFpbGVkIHRvIGxvYWQgZW52aXZlIGNvbmZpZycpO1xuICAgICAgICBsb2dnZXIubG9nRXJyb3IoJ0ZhaWxlZCB0byBpbml0aWFsaXplIEVudml2ZVByb3ZpZGVyJywgcmVzb2x2ZWRFcnJvcik7XG4gICAgICAgIGludm9rZUV4dGVuc2lvbkVycm9yQ2FsbGJhY2socmVzb2x2ZWRFcnJvcik7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGZldGNoRW52aXZlQ29uZmlnKCk7XG4gIH0sIFtcbiAgICBzZXJ2aWNlcy5lbnZpdmVDb25maWdTZXJ2aWNlLFxuICAgIGV4dGVuc2lvblNlcnZpY2UsXG4gICAgaW52b2tlRXh0ZW5zaW9uQ2FsbGJhY2ssXG4gICAgaW52b2tlRXh0ZW5zaW9uRXJyb3JDYWxsYmFjayxcbiAgICBzZXRSZXNvbHZlZEJhc2VDb25maWdWZXJzaW9uLFxuICBdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghZW52aXZlU2VydmljZUNvbmZpZyB8fCBkaWRSZXBvcnRTdWNjZXNzUmVmLmN1cnJlbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZGlkUmVwb3J0U3VjY2Vzc1JlZi5jdXJyZW50ID0gdHJ1ZTtcbiAgICBpbnZva2VFeHRlbnNpb25DYWxsYmFjayhleHRlbnNpb25TZXJ2aWNlPy5vbkluamVjdGlvblN1Y2Nlc3MpO1xuICB9LCBbZW52aXZlU2VydmljZUNvbmZpZywgZXh0ZW5zaW9uU2VydmljZSwgaW52b2tlRXh0ZW5zaW9uQ2FsbGJhY2tdKTtcblxuICBjb25zdCBmZWF0dXJlRmxhZ1NlcnZpY2UgPSB1c2VNZW1vKFxuICAgICgpID0+IG5ldyBGZWF0dXJlRmxhZ1NlcnZpY2UoZW52aXZlU2VydmljZUNvbmZpZz8uZ2F0ZXMgPz8gW10pLFxuICAgIFtlbnZpdmVTZXJ2aWNlQ29uZmlnPy5nYXRlc10sXG4gICk7XG5cbiAgaWYgKGVudml2ZVNlcnZpY2VDb25maWcgPT09IG51bGwpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPEVudml2ZUNvbmZpZ1Byb3ZpZGVyXG4gICAgICBpZGVudGlmeWluZ1ByZWZpeD17aWRlbnRpZnlpbmdQcmVmaXh9XG4gICAgICBiYXNlVXJsPXtzZXJ2aWNlcy5lbnZpdmVDb25maWdTZXJ2aWNlLmJhc2VVcmx9XG4gICAgICBvcmdMZXZlbEFwaUtleT17c2VydmljZXMuZW52aXZlQ29uZmlnU2VydmljZS5hcGlLZXl9XG4gICAgICBvcmdTaG9ydE5hbWU9e2Vudml2ZVNlcnZpY2VDb25maWcub3JnLm9yZy5zaG9ydF9uYW1lfVxuICAgICAgb3JnSWQ9e2Vudml2ZVNlcnZpY2VDb25maWcub3JnLm9yZy5pZH1cbiAgICAgIHNob3c9e3Nob3d9XG4gICAgICBlbnZpdmVPbj17ZW52aXZlT259XG4gICAgICBjZG5Vcmw9e2NkblVybH1cbiAgICAgIHJlYWN0QXBwTmFtZT17cmVhY3RBcHBOYW1lfVxuICAgID5cbiAgICAgIDxOZXdPcmdDb25maWdQcm92aWRlciBjb25maWc9e2Vudml2ZVNlcnZpY2VDb25maWcub3JnQ29uZmlnID8/IHt9fT5cbiAgICAgICAgPExvY2FsU3RvcmFnZVByb3ZpZGVyPlxuICAgICAgICAgIDxGZWF0dXJlRmxhZ1NlcnZpY2VQcm92aWRlciBmZWF0dXJlRmxhZ1NlcnZpY2U9e2ZlYXR1cmVGbGFnU2VydmljZX0+XG4gICAgICAgICAgICA8VXNlcklkZW50aXR5UHJvdmlkZXIgdXNlcklkU2VydmljZT17c2VydmljZXMudXNlcklkZW50aXR5U2VydmljZX0+XG4gICAgICAgICAgICAgIDxBbXBsaXR1ZGVQcm92aWRlciBleHRlcm5hbEFtcGxpdHVkZVNlcnZpY2U9e3NlcnZpY2VzLmFtcGxpdHVkZVNlcnZpY2V9PlxuICAgICAgICAgICAgICAgIDxQYWdlUHJvdmlkZXJcbiAgICAgICAgICAgICAgICAgIHByZXZpZXdNb2RlPXtwcmV2aWV3TW9kZX1cbiAgICAgICAgICAgICAgICAgIG9uVXJsUmVzb2x2ZXJOb3RSZWFkeT17ZXh0ZW5zaW9uU2VydmljZT8ub25JbmplY3Rpb25FcnJvcn1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8V2lkZ2V0Q29uZmlnUHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgICAgIDxIYXJkY29weVByb3ZpZGVyIGhhcmRjb3B5U2VydmljZT17c2VydmljZXMuaGFyZGNvcHlTZXJ2aWNlfT5cbiAgICAgICAgICAgICAgICAgICAgICA8RW52aXZlQ3NzUHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8U2VhcmNoQWdlbnRXcmFwcGVyIGVuYWJsZWRBZ2VudHM9e2VuYWJsZWRBZ2VudHN9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8V2luZG93Q2hhdFRvZ2dsZUJpbmRlciAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8U2FsZXNBZ2VudFdyYXBwZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmFibGVkQWdlbnRzPXtlbmFibGVkQWdlbnRzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3dEZWJ1Z0Jhcj17ZW52aXZlT24gfHwgZmFsc2V9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlld01vZGU9e3ByZXZpZXdNb2RlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vY2tTYWxlc0FnZW50RGF0YT17bW9ja1NhbGVzQWdlbnREYXRhfVxuICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L1NhbGVzQWdlbnRXcmFwcGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9TZWFyY2hBZ2VudFdyYXBwZXI+XG4gICAgICAgICAgICAgICAgICAgICAgPC9FbnZpdmVDc3NQcm92aWRlcj5cbiAgICAgICAgICAgICAgICAgICAgPC9IYXJkY29weVByb3ZpZGVyPlxuICAgICAgICAgICAgICAgICAgPC9XaWRnZXRDb25maWdQcm92aWRlcj5cbiAgICAgICAgICAgICAgICA8L1BhZ2VQcm92aWRlcj5cbiAgICAgICAgICAgICAgPC9BbXBsaXR1ZGVQcm92aWRlcj5cbiAgICAgICAgICAgIDwvVXNlcklkZW50aXR5UHJvdmlkZXI+XG4gICAgICAgICAgPC9GZWF0dXJlRmxhZ1NlcnZpY2VQcm92aWRlcj5cbiAgICAgICAgPC9Mb2NhbFN0b3JhZ2VQcm92aWRlcj5cbiAgICAgIDwvTmV3T3JnQ29uZmlnUHJvdmlkZXI+XG4gICAgPC9FbnZpdmVDb25maWdQcm92aWRlcj5cbiAgKTtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUF5QkEsTUFBTSxTQUFTLElBQUlBLGVBQU8sZ0JBQWdCO0FBZ0MxQyxNQUFNQyxzQkFBbUQsRUFBRSxVQUFVLG9CQUFvQjtBQUN2RixLQUFJLENBQUMsY0FBYyxTQUFTLFlBQVksWUFBWSxDQUNsRCxRQUFPO0FBRVQsUUFBTyxvQkFBQyxrQkFBZ0IsV0FBMEI7O0FBU3BELE1BQU1DLHFCQUF1RCxFQUMzRCxVQUNBLGVBQ0EsYUFDQSxjQUNBLHlCQUNJO0FBQ0osS0FBSSxDQUFDLGNBQWMsU0FBUyxZQUFZLFdBQVcsQ0FDakQsUUFBTztBQUVULFFBQ0Usb0JBQUM7RUFBNEM7WUFDM0Msb0JBQUM7R0FDYztHQUNiLFVBQVU7R0FFVDtJQUNrQjtHQUNTOztBQUlwQyxNQUFhQyxrQkFBaUQsRUFDNUQsVUFDQSxjQUFjLE9BQ2QsZUFDQSxVQUNBLG9CQUNBLE1BQ0EsVUFDQSxRQUNBLGNBQ0Esd0JBQ0k7Q0FDSixNQUFNLEVBQUUscUJBQXFCO0NBQzdCLE1BQU0sQ0FBQyxxQkFBcUIsMEJBQTBCLFNBQXFDLEtBQUs7Q0FDaEcsTUFBTSwrQkFBK0IsV0FBVyw4QkFBOEI7Q0FDOUUsTUFBTSxzQkFBc0IsT0FBTyxNQUFNO0NBRXpDLE1BQU0sMEJBQTBCLGFBQWEsYUFBNkM7QUFDeEYsTUFBSSxDQUFDLFNBQ0g7QUFFRixVQUFRLFFBQVEsVUFBVSxDQUFDLENBQUMsT0FBTSxVQUFTO0FBQ3pDLFVBQU8sU0FBUyxvQ0FBb0MsTUFBTTtJQUMxRDtJQUNELEVBQUUsQ0FBQztDQUVOLE1BQU0sK0JBQStCLGFBQ2xDLFVBQWlCO0FBQ2hCLE1BQUksQ0FBQyxrQkFBa0IsaUJBQ3JCO0FBRUYsVUFBUSxRQUFRLGlCQUFpQixpQkFBaUIsTUFBTSxDQUFDLENBQUMsT0FBTSxrQkFBaUI7QUFDL0UsVUFBTyxTQUFTLG1DQUFtQyxjQUFjO0lBQ2pFO0lBRUosQ0FBQyxpQkFBaUIsQ0FDbkI7QUFFRCxpQkFBZ0I7QUFDZCwwQkFBd0Isa0JBQWtCLG1CQUFtQjtBQVE3RCwrQkFBNkIsT0FBVTtFQUV2QyxNQUFNLG9CQUFvQixZQUFZO0FBQ3BDLE9BQUk7SUFDRixNQUFNLFNBQVMsTUFBTSxTQUFTLG9CQUFvQixpQkFBaUI7QUFDbkUsMkJBQXVCLE9BQU87SUFLOUIsTUFBTSxFQUFFLGFBQWEsc0JBQXNCLE9BQU8sV0FBVyxjQUFjLEVBQUU7QUFDN0UsUUFBSSxlQUFlLHFCQUFxQixzQkFBc0IsV0FDNUQsOEJBQTZCLFlBQVk7WUFFcEMsT0FBTztJQUNkLE1BQU0sZ0JBQ0osaUJBQWlCLFFBQVEsd0JBQVEsSUFBSSxNQUFNLCtCQUErQjtBQUM1RSxXQUFPLFNBQVMsdUNBQXVDLGNBQWM7QUFDckUsaUNBQTZCLGNBQWM7OztBQUkvQyxxQkFBbUI7SUFDbEI7RUFDRCxTQUFTO0VBQ1Q7RUFDQTtFQUNBO0VBQ0E7RUFDRCxDQUFDO0FBRUYsaUJBQWdCO0FBQ2QsTUFBSSxDQUFDLHVCQUF1QixvQkFBb0IsUUFDOUM7QUFFRixzQkFBb0IsVUFBVTtBQUM5QiwwQkFBd0Isa0JBQWtCLG1CQUFtQjtJQUM1RDtFQUFDO0VBQXFCO0VBQWtCO0VBQXdCLENBQUM7Q0FFcEUsTUFBTSxxQkFBcUIsY0FDbkIsSUFBSSxtQkFBbUIscUJBQXFCLFNBQVMsRUFBRSxDQUFDLEVBQzlELENBQUMscUJBQXFCLE1BQU0sQ0FDN0I7QUFFRCxLQUFJLHdCQUF3QixLQUMxQixRQUFPO0FBR1QsUUFDRSxvQkFBQztFQUNvQjtFQUNuQixTQUFTLFNBQVMsb0JBQW9CO0VBQ3RDLGdCQUFnQixTQUFTLG9CQUFvQjtFQUM3QyxjQUFjLG9CQUFvQixJQUFJLElBQUk7RUFDMUMsT0FBTyxvQkFBb0IsSUFBSSxJQUFJO0VBQzdCO0VBQ0k7RUFDRjtFQUNNO1lBRWQsb0JBQUM7R0FBcUIsUUFBUSxvQkFBb0IsYUFBYSxFQUFFO2FBQy9ELG9CQUFDLGtDQUNDLG9CQUFDO0lBQStDO2NBQzlDLG9CQUFDO0tBQXFCLGVBQWUsU0FBUztlQUM1QyxvQkFBQztNQUFrQiwwQkFBMEIsU0FBUztnQkFDcEQsb0JBQUM7T0FDYztPQUNiLHVCQUF1QixrQkFBa0I7aUJBRXpDLG9CQUFDLGtDQUNDLG9CQUFDO1FBQWlCLGlCQUFpQixTQUFTO2tCQUMxQyxvQkFBQywrQkFDQyxxQkFBQztTQUFrQztvQkFDakMsb0JBQUMsMkJBQXlCLEVBQzFCLG9CQUFDO1VBQ2dCO1VBQ2YsY0FBYyxZQUFZO1VBQ2I7VUFDTztVQUVuQjtXQUNpQjtVQUNELEdBQ0g7U0FDSCxHQUNFO1FBQ1Y7T0FDRztNQUNDO0tBQ0ksR0FDUjtJQUNGO0dBQ0YifQ==
|
|
@@ -5,4 +5,4 @@ declare enum EnviveAgent {
|
|
|
5
5
|
}
|
|
6
6
|
//#endregion
|
|
7
7
|
export { EnviveAgent };
|
|
8
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
8
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuZC5jdHMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbnRleHRzL2Vudml2ZUNvbnRleHQvdHlwZXMuZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVjbGFyZSBlbnVtIEVudml2ZUFnZW50IHtcbiAgICBTYWxlc0FnZW50ID0gXCJzYWxlc1wiLFxuICAgIFNlYXJjaEFnZW50ID0gXCJzZWFyY2hcIlxufVxuIl0sIm1hcHBpbmdzIjoiO0FBQUEsSUFBVyxjQUFjLENBQUMsSUFBSSJ9
|
|
@@ -5,4 +5,4 @@ declare enum EnviveAgent {
|
|
|
5
5
|
}
|
|
6
6
|
//#endregion
|
|
7
7
|
export { EnviveAgent };
|
|
8
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
8
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuZC50cyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udGV4dHMvZW52aXZlQ29udGV4dC90eXBlcy5kLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWNsYXJlIGVudW0gRW52aXZlQWdlbnQge1xuICAgIFNhbGVzQWdlbnQgPSBcInNhbGVzXCIsXG4gICAgU2VhcmNoQWdlbnQgPSBcInNlYXJjaFwiXG59XG4iXSwibWFwcGluZ3MiOiI7QUFBQSxJQUFXLGNBQWMsQ0FBQyxJQUFJIn0=
|
|
@@ -50,4 +50,4 @@ const useGraphQLClient = () => {
|
|
|
50
50
|
//#endregion
|
|
51
51
|
exports.GraphQLProvider = GraphQLProvider;
|
|
52
52
|
exports.useGraphQLClient = useGraphQLClient;
|
|
53
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
53
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGhxbENvbnRleHQuY2pzIiwibmFtZXMiOlsib3JnTGV2ZWxBcGlLZXlBdG9tIiwiYmFzZVVybEF0b20iXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udGV4dHMvZ3JhcGhxbENvbnRleHQvZ3JhcGhxbENvbnRleHQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlYWN0Tm9kZSwgY3JlYXRlQ29udGV4dCwgdXNlQ2FsbGJhY2ssIHVzZUNvbnRleHQsIHVzZU1lbW8gfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VBdG9tVmFsdWUgfSBmcm9tICdqb3RhaSc7XG5pbXBvcnQgeyBiYXNlVXJsQXRvbSwgb3JnTGV2ZWxBcGlLZXlBdG9tIH0gZnJvbSAnc3JjL2F0b21zL2Vudml2ZS9lbnZpdmVDb25maWcnO1xuaW1wb3J0IHsgQ29sb3JNYXBwaW5nIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9jb2xvcnNDb25maWcnO1xuaW1wb3J0IHsgRnJvbnRlbmRDb25maWcgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2Zyb250ZW5kQ29uZmlnJztcbmltcG9ydCB7IENhbWVsQ2FzZWRQcm9wZXJ0aWVzRGVlcCB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMnO1xuaW1wb3J0IHsgRXhwZXJpbWVudENvbmZpZ1Jlc29sdXRpb25NZXRhZGF0YSB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvYXBpL29yZ0NvbmZpZ1Jlc3VsdHMnO1xuaW1wb3J0IHsgRnJvbnRlbmRDb25maWdWMyB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvZnJvbnRlbmRDb25maWdWMyc7XG5pbXBvcnQgeyBDb2xvck1hcHBpbmdWMyB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvY29sb3JzQ29uZmlnVjMnO1xuaW1wb3J0IHsgT3JnUGFnZUNvbmZpZyB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IHR5cGUgQ29sb3JzQ29uZmlnUmVzcG9uc2UgPSBDYW1lbENhc2VkUHJvcGVydGllc0RlZXA8Q29sb3JNYXBwaW5nPjtcbmV4cG9ydCB0eXBlIEZyb250ZW5kQ29uZmlnUmVzcG9uc2UgPSBDYW1lbENhc2VkUHJvcGVydGllc0RlZXA8RnJvbnRlbmRDb25maWc+O1xuZXhwb3J0IHR5cGUgQ29sb3JzQ29uZmlnVjNSZXNwb25zZSA9IENhbWVsQ2FzZWRQcm9wZXJ0aWVzRGVlcDxDb2xvck1hcHBpbmdWMz47XG5leHBvcnQgdHlwZSBGcm9udGVuZENvbmZpZ1YzUmVzcG9uc2UgPSBDYW1lbENhc2VkUHJvcGVydGllc0RlZXA8RnJvbnRlbmRDb25maWdWMz47XG5cbmV4cG9ydCB0eXBlIEdyYXBoUWxDb25maWdWYWx1ZXMgPSB7XG4gIGNvbG9yc0NvbmZpZz86IENvbG9yc0NvbmZpZ1Jlc3BvbnNlIHwgQ29sb3JzQ29uZmlnVjNSZXNwb25zZTtcbiAgZnJvbnRlbmRDb25maWc/OiBDYW1lbENhc2VkUHJvcGVydGllc0RlZXA8RnJvbnRlbmRDb25maWcgfCBGcm9udGVuZENvbmZpZ1YzPjtcbiAgb3JnUGFnZUNvbmZpZz86IE9yZ1BhZ2VDb25maWc7XG4gIC8vIFBvcHVsYXRlZCBvbmx5IGJ5IHRoZSB1bmlmaWVkLXBhdGggZmV0Y2hlciAoZ2V0V2lkZ2V0Q29uZmlnLnJlc29sdXRpb24pLlxuICAvLyBMZWdhY3kgZ2V0Q29sb3JzQW5kRnJvbnRlbmRRdWVyeSBkb2VzIG5vdCByZXR1cm4gaXQuIFJlYWQgYnkgRW52aXZlUHJvdmlkZXJcbiAgLy8gdG8gdGhyZWFkIGJhc2VWZXJzaW9uIGludG8gaW5mZXJlbmNlIHJlcXVlc3RzIGFzIG92ZXJyaWRlX2NvbmZpZ192ZXJzaW9uLlxuICByZXNvbHV0aW9uPzogRXhwZXJpbWVudENvbmZpZ1Jlc29sdXRpb25NZXRhZGF0YTtcbn07XG5cbmludGVyZmFjZSBHcmFwaFFMQ29udGV4dFZhbHVlIHtcbiAgZXhlY3V0ZVF1ZXJ5OiA8VD4ocXVlcnk6IHN0cmluZywgdmFyaWFibGVzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pID0+IFByb21pc2U8VD47XG4gIGlzUmVhZHk6IGJvb2xlYW47XG59XG5cbmNvbnN0IEdyYXBoUUxDb250ZXh0ID0gY3JlYXRlQ29udGV4dDxHcmFwaFFMQ29udGV4dFZhbHVlIHwgbnVsbD4obnVsbCk7XG5cbnR5cGUgR3JhcGhRTFByb3ZpZGVyUHJvcHMgPSB7XG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG59O1xuXG5leHBvcnQgY29uc3QgR3JhcGhRTFByb3ZpZGVyID0gKHsgY2hpbGRyZW4gfTogR3JhcGhRTFByb3ZpZGVyUHJvcHMpID0+IHtcbiAgY29uc3QgYXBpS2V5ID0gdXNlQXRvbVZhbHVlKG9yZ0xldmVsQXBpS2V5QXRvbSk7XG4gIGNvbnN0IGJhc2VVcmwgPSB1c2VBdG9tVmFsdWUoYmFzZVVybEF0b20pO1xuICBjb25zdCBpc1JlYWR5ID0gdXNlTWVtbygoKSA9PiBCb29sZWFuKGFwaUtleSAmJiBiYXNlVXJsKSwgW2FwaUtleSwgYmFzZVVybF0pO1xuXG4gIGNvbnN0IGV4ZWN1dGVRdWVyeSA9IHVzZUNhbGxiYWNrKFxuICAgIGFzeW5jIChxdWVyeTogc3RyaW5nLCB2YXJpYWJsZXM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikgPT4ge1xuICAgICAgaWYgKCFpc1JlYWR5KSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignR3JhcGhRTCBjbGllbnQgbm90IHJlYWR5IC0gbWlzc2luZyBhcGlLZXkgb3IgYmFzZVVybCcpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKGAke2Jhc2VVcmx9L3YxL2dyYXBocWxgLCB7XG4gICAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgICBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7YXBpS2V5fWAsXG4gICAgICAgIH0sXG4gICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHsgcXVlcnksIHZhcmlhYmxlcyB9KSxcbiAgICAgIH0pO1xuXG4gICAgICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgR3JhcGhRTCByZXF1ZXN0IGZhaWxlZDogJHtyZXNwb25zZS5zdGF0dXNUZXh0fWApO1xuICAgICAgfVxuXG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XG4gICAgICBpZiAocmVzdWx0LmVycm9ycykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEdyYXBoUUwgZXJyb3JzOiAke0pTT04uc3RyaW5naWZ5KHJlc3VsdC5lcnJvcnMpfWApO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmVzdWx0LmRhdGE7XG4gICAgfSxcbiAgICBbYXBpS2V5LCBiYXNlVXJsLCBpc1JlYWR5XSxcbiAgKTtcblxuICBjb25zdCB2YWx1ZSA9IHVzZU1lbW8oKCkgPT4gKHsgZXhlY3V0ZVF1ZXJ5LCBpc1JlYWR5IH0pLCBbZXhlY3V0ZVF1ZXJ5LCBpc1JlYWR5XSk7XG5cbiAgcmV0dXJuIDxHcmFwaFFMQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17dmFsdWV9PntjaGlsZHJlbn08L0dyYXBoUUxDb250ZXh0LlByb3ZpZGVyPjtcbn07XG5cbmV4cG9ydCBjb25zdCB1c2VHcmFwaFFMQ2xpZW50ID0gKCkgPT4ge1xuICBjb25zdCBjb250ZXh0ID0gdXNlQ29udGV4dChHcmFwaFFMQ29udGV4dCk7XG4gIGlmICghY29udGV4dCkge1xuICAgIHRocm93IG5ldyBFcnJvcigndXNlR3JhcGhRTENsaWVudCBtdXN0IGJlIHVzZWQgd2l0aGluIGEgR3JhcGhRTFByb3ZpZGVyJyk7XG4gIH1cbiAgcmV0dXJuIGNvbnRleHQ7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBK0JBLE1BQU0sMENBQTJELEtBQUs7QUFNdEUsTUFBYSxtQkFBbUIsRUFBRSxlQUFxQztDQUNyRSxNQUFNLGlDQUFzQkEscURBQW1CO0NBQy9DLE1BQU0sa0NBQXVCQyw4Q0FBWTtDQUN6QyxNQUFNLG1DQUF3QixRQUFRLFVBQVUsUUFBUSxFQUFFLENBQUMsUUFBUSxRQUFRLENBQUM7Q0FFNUUsTUFBTSxzQ0FDSixPQUFPLE9BQWUsY0FBd0M7QUFDNUQsTUFBSSxDQUFDLFFBQ0gsT0FBTSxJQUFJLE1BQU0sdURBQXVEO0VBR3pFLE1BQU0sV0FBVyxNQUFNLE1BQU0sR0FBRyxRQUFRLGNBQWM7R0FDcEQsUUFBUTtHQUNSLFNBQVM7SUFDUCxnQkFBZ0I7SUFDaEIsZUFBZSxVQUFVO0lBQzFCO0dBQ0QsTUFBTSxLQUFLLFVBQVU7SUFBRTtJQUFPO0lBQVcsQ0FBQztHQUMzQyxDQUFDO0FBRUYsTUFBSSxDQUFDLFNBQVMsR0FDWixPQUFNLElBQUksTUFBTSwyQkFBMkIsU0FBUyxhQUFhO0VBR25FLE1BQU0sU0FBUyxNQUFNLFNBQVMsTUFBTTtBQUNwQyxNQUFJLE9BQU8sT0FDVCxPQUFNLElBQUksTUFBTSxtQkFBbUIsS0FBSyxVQUFVLE9BQU8sT0FBTyxHQUFHO0FBR3JFLFNBQU8sT0FBTztJQUVoQjtFQUFDO0VBQVE7RUFBUztFQUFRLENBQzNCO0NBRUQsTUFBTSxrQ0FBdUI7RUFBRTtFQUFjO0VBQVMsR0FBRyxDQUFDLGNBQWMsUUFBUSxDQUFDO0FBRWpGLFFBQU8sMkNBQUMsZUFBZTtFQUFnQjtFQUFRO0dBQW1DOztBQUdwRixNQUFhLHlCQUF5QjtDQUNwQyxNQUFNLGdDQUFxQixlQUFlO0FBQzFDLEtBQUksQ0FBQyxRQUNILE9BQU0sSUFBSSxNQUFNLHlEQUF5RDtBQUUzRSxRQUFPIn0=
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { CamelCasedPropertiesDeep } from "../../application/models/utilityTypes/camelCasedPropertiesDeep.cjs";
|
|
2
2
|
import { ColorMapping } from "../../application/models/colorsConfig.cjs";
|
|
3
|
+
import { ExperimentConfigResolutionMetadata } from "../../application/models/api/orgConfigResults.cjs";
|
|
3
4
|
import { OrgPageConfig } from "../types.cjs";
|
|
4
5
|
import { FrontendConfig } from "../../application/models/frontendConfig.cjs";
|
|
5
6
|
import { FrontendConfigV3 } from "../../application/models/frontendConfigV3.cjs";
|
|
@@ -16,6 +17,7 @@ type GraphQlConfigValues = {
|
|
|
16
17
|
colorsConfig?: ColorsConfigResponse | ColorsConfigV3Response;
|
|
17
18
|
frontendConfig?: CamelCasedPropertiesDeep<FrontendConfig | FrontendConfigV3>;
|
|
18
19
|
orgPageConfig?: OrgPageConfig;
|
|
20
|
+
resolution?: ExperimentConfigResolutionMetadata;
|
|
19
21
|
};
|
|
20
22
|
interface GraphQLContextValue {
|
|
21
23
|
executeQuery: <T>(query: string, variables?: Record<string, unknown>) => Promise<T>;
|
|
@@ -30,4 +32,4 @@ declare const GraphQLProvider: ({
|
|
|
30
32
|
declare const useGraphQLClient: () => GraphQLContextValue;
|
|
31
33
|
//#endregion
|
|
32
34
|
export { ColorsConfigResponse, ColorsConfigV3Response, FrontendConfigResponse, FrontendConfigV3Response, GraphQLProvider, GraphQlConfigValues, useGraphQLClient };
|
|
33
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
35
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGhxbENvbnRleHQuZC5jdHMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbnRleHRzL2dyYXBocWxDb250ZXh0L2dyYXBocWxDb250ZXh0LmQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVhY3ROb2RlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgQ29sb3JNYXBwaW5nIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9jb2xvcnNDb25maWcnO1xuaW1wb3J0IHsgRnJvbnRlbmRDb25maWcgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2Zyb250ZW5kQ29uZmlnJztcbmltcG9ydCB7IENhbWVsQ2FzZWRQcm9wZXJ0aWVzRGVlcCB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMnO1xuaW1wb3J0IHsgRXhwZXJpbWVudENvbmZpZ1Jlc29sdXRpb25NZXRhZGF0YSB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvYXBpL29yZ0NvbmZpZ1Jlc3VsdHMnO1xuaW1wb3J0IHsgRnJvbnRlbmRDb25maWdWMyB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvZnJvbnRlbmRDb25maWdWMyc7XG5pbXBvcnQgeyBDb2xvck1hcHBpbmdWMyB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvY29sb3JzQ29uZmlnVjMnO1xuaW1wb3J0IHsgT3JnUGFnZUNvbmZpZyB9IGZyb20gJy4uL3R5cGVzJztcbmV4cG9ydCB0eXBlIENvbG9yc0NvbmZpZ1Jlc3BvbnNlID0gQ2FtZWxDYXNlZFByb3BlcnRpZXNEZWVwPENvbG9yTWFwcGluZz47XG5leHBvcnQgdHlwZSBGcm9udGVuZENvbmZpZ1Jlc3BvbnNlID0gQ2FtZWxDYXNlZFByb3BlcnRpZXNEZWVwPEZyb250ZW5kQ29uZmlnPjtcbmV4cG9ydCB0eXBlIENvbG9yc0NvbmZpZ1YzUmVzcG9uc2UgPSBDYW1lbENhc2VkUHJvcGVydGllc0RlZXA8Q29sb3JNYXBwaW5nVjM+O1xuZXhwb3J0IHR5cGUgRnJvbnRlbmRDb25maWdWM1Jlc3BvbnNlID0gQ2FtZWxDYXNlZFByb3BlcnRpZXNEZWVwPEZyb250ZW5kQ29uZmlnVjM+O1xuZXhwb3J0IHR5cGUgR3JhcGhRbENvbmZpZ1ZhbHVlcyA9IHtcbiAgICBjb2xvcnNDb25maWc/OiBDb2xvcnNDb25maWdSZXNwb25zZSB8IENvbG9yc0NvbmZpZ1YzUmVzcG9uc2U7XG4gICAgZnJvbnRlbmRDb25maWc/OiBDYW1lbENhc2VkUHJvcGVydGllc0RlZXA8RnJvbnRlbmRDb25maWcgfCBGcm9udGVuZENvbmZpZ1YzPjtcbiAgICBvcmdQYWdlQ29uZmlnPzogT3JnUGFnZUNvbmZpZztcbiAgICByZXNvbHV0aW9uPzogRXhwZXJpbWVudENvbmZpZ1Jlc29sdXRpb25NZXRhZGF0YTtcbn07XG5pbnRlcmZhY2UgR3JhcGhRTENvbnRleHRWYWx1ZSB7XG4gICAgZXhlY3V0ZVF1ZXJ5OiA8VD4ocXVlcnk6IHN0cmluZywgdmFyaWFibGVzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pID0+IFByb21pc2U8VD47XG4gICAgaXNSZWFkeTogYm9vbGVhbjtcbn1cbnR5cGUgR3JhcGhRTFByb3ZpZGVyUHJvcHMgPSB7XG4gICAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcbn07XG5leHBvcnQgZGVjbGFyZSBjb25zdCBHcmFwaFFMUHJvdmlkZXI6ICh7IGNoaWxkcmVuIH06IEdyYXBoUUxQcm92aWRlclByb3BzKSA9PiBpbXBvcnQoXCJyZWFjdC9qc3gtcnVudGltZVwiKS5KU1guRWxlbWVudDtcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IHVzZUdyYXBoUUxDbGllbnQ6ICgpID0+IEdyYXBoUUxDb250ZXh0VmFsdWU7XG5leHBvcnQge307XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBU0EsSUFBVyx1QkFBdUI7Q0FBQztPQUFXO09BQW9CO0NBQVc7QUFDN0UsSUFBVyx5QkFBeUI7Q0FBQztPQUFXO09BQXNCO0NBQU87QUFDN0UsSUFBVyx5QkFBeUI7Q0FBQztPQUFXO09BQXNCO0NBQVc7QUFDakYsSUFBVywyQkFBdUI7Q0FBQTtPQUFBO09BQUE7Q0FBQTtBQUNsQyxJQUFXLHNCQUFzQjtDQUFDO09BQVc7T0FBbUI7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO0NBQUE7QUFDaEUsSUFBSSxzQkFBc0I7Q0FBQztPQUFXO09BQWM7T0FBUztDQUFRO0FBQ3JFLElBQUksdUJBQXVCLENBQUMsV0FBSyxVQUFBO0FBQ2pDLElBQVcsa0JBQWtCO0NBQUM7T0FBVztPQUFVO09BQUEsbUJBQUEsSUFBQTtDQUFBO0FBQ25ELElBQUMsbUJBQUEsQ0FBQSxXQUFBLG9CQUFBIn0=
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { CamelCasedPropertiesDeep } from "../../application/models/utilityTypes/camelCasedPropertiesDeep.js";
|
|
2
2
|
import { ColorMapping } from "../../application/models/colorsConfig.js";
|
|
3
|
+
import { ExperimentConfigResolutionMetadata } from "../../application/models/api/orgConfigResults.js";
|
|
3
4
|
import { OrgPageConfig } from "../types.js";
|
|
4
5
|
import { FrontendConfig } from "../../application/models/frontendConfig.js";
|
|
5
6
|
import { FrontendConfigV3 } from "../../application/models/frontendConfigV3.js";
|
|
@@ -16,6 +17,7 @@ type GraphQlConfigValues = {
|
|
|
16
17
|
colorsConfig?: ColorsConfigResponse | ColorsConfigV3Response;
|
|
17
18
|
frontendConfig?: CamelCasedPropertiesDeep<FrontendConfig | FrontendConfigV3>;
|
|
18
19
|
orgPageConfig?: OrgPageConfig;
|
|
20
|
+
resolution?: ExperimentConfigResolutionMetadata;
|
|
19
21
|
};
|
|
20
22
|
interface GraphQLContextValue {
|
|
21
23
|
executeQuery: <T>(query: string, variables?: Record<string, unknown>) => Promise<T>;
|
|
@@ -30,4 +32,4 @@ declare const GraphQLProvider: ({
|
|
|
30
32
|
declare const useGraphQLClient: () => GraphQLContextValue;
|
|
31
33
|
//#endregion
|
|
32
34
|
export { ColorsConfigResponse, ColorsConfigV3Response, FrontendConfigResponse, FrontendConfigV3Response, GraphQLProvider, GraphQlConfigValues, useGraphQLClient };
|
|
33
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
35
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGhxbENvbnRleHQuZC50cyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udGV4dHMvZ3JhcGhxbENvbnRleHQvZ3JhcGhxbENvbnRleHQuZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZWFjdE5vZGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBDb2xvck1hcHBpbmcgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2NvbG9yc0NvbmZpZyc7XG5pbXBvcnQgeyBGcm9udGVuZENvbmZpZyB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvZnJvbnRlbmRDb25maWcnO1xuaW1wb3J0IHsgQ2FtZWxDYXNlZFByb3BlcnRpZXNEZWVwIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscyc7XG5pbXBvcnQgeyBFeHBlcmltZW50Q29uZmlnUmVzb2x1dGlvbk1ldGFkYXRhIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9hcGkvb3JnQ29uZmlnUmVzdWx0cyc7XG5pbXBvcnQgeyBGcm9udGVuZENvbmZpZ1YzIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9mcm9udGVuZENvbmZpZ1YzJztcbmltcG9ydCB7IENvbG9yTWFwcGluZ1YzIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9jb2xvcnNDb25maWdWMyc7XG5pbXBvcnQgeyBPcmdQYWdlQ29uZmlnIH0gZnJvbSAnLi4vdHlwZXMnO1xuZXhwb3J0IHR5cGUgQ29sb3JzQ29uZmlnUmVzcG9uc2UgPSBDYW1lbENhc2VkUHJvcGVydGllc0RlZXA8Q29sb3JNYXBwaW5nPjtcbmV4cG9ydCB0eXBlIEZyb250ZW5kQ29uZmlnUmVzcG9uc2UgPSBDYW1lbENhc2VkUHJvcGVydGllc0RlZXA8RnJvbnRlbmRDb25maWc+O1xuZXhwb3J0IHR5cGUgQ29sb3JzQ29uZmlnVjNSZXNwb25zZSA9IENhbWVsQ2FzZWRQcm9wZXJ0aWVzRGVlcDxDb2xvck1hcHBpbmdWMz47XG5leHBvcnQgdHlwZSBGcm9udGVuZENvbmZpZ1YzUmVzcG9uc2UgPSBDYW1lbENhc2VkUHJvcGVydGllc0RlZXA8RnJvbnRlbmRDb25maWdWMz47XG5leHBvcnQgdHlwZSBHcmFwaFFsQ29uZmlnVmFsdWVzID0ge1xuICAgIGNvbG9yc0NvbmZpZz86IENvbG9yc0NvbmZpZ1Jlc3BvbnNlIHwgQ29sb3JzQ29uZmlnVjNSZXNwb25zZTtcbiAgICBmcm9udGVuZENvbmZpZz86IENhbWVsQ2FzZWRQcm9wZXJ0aWVzRGVlcDxGcm9udGVuZENvbmZpZyB8IEZyb250ZW5kQ29uZmlnVjM+O1xuICAgIG9yZ1BhZ2VDb25maWc/OiBPcmdQYWdlQ29uZmlnO1xuICAgIHJlc29sdXRpb24/OiBFeHBlcmltZW50Q29uZmlnUmVzb2x1dGlvbk1ldGFkYXRhO1xufTtcbmludGVyZmFjZSBHcmFwaFFMQ29udGV4dFZhbHVlIHtcbiAgICBleGVjdXRlUXVlcnk6IDxUPihxdWVyeTogc3RyaW5nLCB2YXJpYWJsZXM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikgPT4gUHJvbWlzZTxUPjtcbiAgICBpc1JlYWR5OiBib29sZWFuO1xufVxudHlwZSBHcmFwaFFMUHJvdmlkZXJQcm9wcyA9IHtcbiAgICBjaGlsZHJlbjogUmVhY3ROb2RlO1xufTtcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IEdyYXBoUUxQcm92aWRlcjogKHsgY2hpbGRyZW4gfTogR3JhcGhRTFByb3ZpZGVyUHJvcHMpID0+IGltcG9ydChcInJlYWN0L2pzeC1ydW50aW1lXCIpLkpTWC5FbGVtZW50O1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgdXNlR3JhcGhRTENsaWVudDogKCkgPT4gR3JhcGhRTENvbnRleHRWYWx1ZTtcbmV4cG9ydCB7fTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFTQSxJQUFXLHVCQUF1QjtDQUFDO09BQVc7T0FBb0I7Q0FBVztBQUM3RSxJQUFXLHlCQUF5QjtDQUFDO09BQVc7T0FBc0I7Q0FBTztBQUM3RSxJQUFXLHlCQUF5QjtDQUFDO09BQVc7T0FBc0I7Q0FBVztBQUNqRixJQUFXLDJCQUF1QjtDQUFBO09BQUE7T0FBQTtDQUFBO0FBQ2xDLElBQVcsc0JBQXNCO0NBQUM7T0FBVztPQUFtQjtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7Q0FBQTtBQUNoRSxJQUFJLHNCQUFzQjtDQUFDO09BQVc7T0FBYztPQUFTO0NBQVE7QUFDckUsSUFBSSx1QkFBdUIsQ0FBQyxXQUFLLFVBQUE7QUFDakMsSUFBVyxrQkFBa0I7Q0FBQztPQUFXO09BQVU7T0FBQSxtQkFBQSxJQUFBO0NBQUE7QUFDbkQsSUFBQyxtQkFBQSxDQUFBLFdBQUEsb0JBQUEifQ==
|
|
@@ -48,4 +48,4 @@ const useGraphQLClient = () => {
|
|
|
48
48
|
|
|
49
49
|
//#endregion
|
|
50
50
|
export { GraphQLProvider, useGraphQLClient };
|
|
51
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
51
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGhxbENvbnRleHQuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbnRleHRzL2dyYXBocWxDb250ZXh0L2dyYXBocWxDb250ZXh0LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZWFjdE5vZGUsIGNyZWF0ZUNvbnRleHQsIHVzZUNhbGxiYWNrLCB1c2VDb250ZXh0LCB1c2VNZW1vIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlQXRvbVZhbHVlIH0gZnJvbSAnam90YWknO1xuaW1wb3J0IHsgYmFzZVVybEF0b20sIG9yZ0xldmVsQXBpS2V5QXRvbSB9IGZyb20gJ3NyYy9hdG9tcy9lbnZpdmUvZW52aXZlQ29uZmlnJztcbmltcG9ydCB7IENvbG9yTWFwcGluZyB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvY29sb3JzQ29uZmlnJztcbmltcG9ydCB7IEZyb250ZW5kQ29uZmlnIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9mcm9udGVuZENvbmZpZyc7XG5pbXBvcnQgeyBDYW1lbENhc2VkUHJvcGVydGllc0RlZXAgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzJztcbmltcG9ydCB7IEV4cGVyaW1lbnRDb25maWdSZXNvbHV0aW9uTWV0YWRhdGEgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2FwaS9vcmdDb25maWdSZXN1bHRzJztcbmltcG9ydCB7IEZyb250ZW5kQ29uZmlnVjMgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2Zyb250ZW5kQ29uZmlnVjMnO1xuaW1wb3J0IHsgQ29sb3JNYXBwaW5nVjMgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2NvbG9yc0NvbmZpZ1YzJztcbmltcG9ydCB7IE9yZ1BhZ2VDb25maWcgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCB0eXBlIENvbG9yc0NvbmZpZ1Jlc3BvbnNlID0gQ2FtZWxDYXNlZFByb3BlcnRpZXNEZWVwPENvbG9yTWFwcGluZz47XG5leHBvcnQgdHlwZSBGcm9udGVuZENvbmZpZ1Jlc3BvbnNlID0gQ2FtZWxDYXNlZFByb3BlcnRpZXNEZWVwPEZyb250ZW5kQ29uZmlnPjtcbmV4cG9ydCB0eXBlIENvbG9yc0NvbmZpZ1YzUmVzcG9uc2UgPSBDYW1lbENhc2VkUHJvcGVydGllc0RlZXA8Q29sb3JNYXBwaW5nVjM+O1xuZXhwb3J0IHR5cGUgRnJvbnRlbmRDb25maWdWM1Jlc3BvbnNlID0gQ2FtZWxDYXNlZFByb3BlcnRpZXNEZWVwPEZyb250ZW5kQ29uZmlnVjM+O1xuXG5leHBvcnQgdHlwZSBHcmFwaFFsQ29uZmlnVmFsdWVzID0ge1xuICBjb2xvcnNDb25maWc/OiBDb2xvcnNDb25maWdSZXNwb25zZSB8IENvbG9yc0NvbmZpZ1YzUmVzcG9uc2U7XG4gIGZyb250ZW5kQ29uZmlnPzogQ2FtZWxDYXNlZFByb3BlcnRpZXNEZWVwPEZyb250ZW5kQ29uZmlnIHwgRnJvbnRlbmRDb25maWdWMz47XG4gIG9yZ1BhZ2VDb25maWc/OiBPcmdQYWdlQ29uZmlnO1xuICAvLyBQb3B1bGF0ZWQgb25seSBieSB0aGUgdW5pZmllZC1wYXRoIGZldGNoZXIgKGdldFdpZGdldENvbmZpZy5yZXNvbHV0aW9uKS5cbiAgLy8gTGVnYWN5IGdldENvbG9yc0FuZEZyb250ZW5kUXVlcnkgZG9lcyBub3QgcmV0dXJuIGl0LiBSZWFkIGJ5IEVudml2ZVByb3ZpZGVyXG4gIC8vIHRvIHRocmVhZCBiYXNlVmVyc2lvbiBpbnRvIGluZmVyZW5jZSByZXF1ZXN0cyBhcyBvdmVycmlkZV9jb25maWdfdmVyc2lvbi5cbiAgcmVzb2x1dGlvbj86IEV4cGVyaW1lbnRDb25maWdSZXNvbHV0aW9uTWV0YWRhdGE7XG59O1xuXG5pbnRlcmZhY2UgR3JhcGhRTENvbnRleHRWYWx1ZSB7XG4gIGV4ZWN1dGVRdWVyeTogPFQ+KHF1ZXJ5OiBzdHJpbmcsIHZhcmlhYmxlcz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+KSA9PiBQcm9taXNlPFQ+O1xuICBpc1JlYWR5OiBib29sZWFuO1xufVxuXG5jb25zdCBHcmFwaFFMQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQ8R3JhcGhRTENvbnRleHRWYWx1ZSB8IG51bGw+KG51bGwpO1xuXG50eXBlIEdyYXBoUUxQcm92aWRlclByb3BzID0ge1xuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xufTtcblxuZXhwb3J0IGNvbnN0IEdyYXBoUUxQcm92aWRlciA9ICh7IGNoaWxkcmVuIH06IEdyYXBoUUxQcm92aWRlclByb3BzKSA9PiB7XG4gIGNvbnN0IGFwaUtleSA9IHVzZUF0b21WYWx1ZShvcmdMZXZlbEFwaUtleUF0b20pO1xuICBjb25zdCBiYXNlVXJsID0gdXNlQXRvbVZhbHVlKGJhc2VVcmxBdG9tKTtcbiAgY29uc3QgaXNSZWFkeSA9IHVzZU1lbW8oKCkgPT4gQm9vbGVhbihhcGlLZXkgJiYgYmFzZVVybCksIFthcGlLZXksIGJhc2VVcmxdKTtcblxuICBjb25zdCBleGVjdXRlUXVlcnkgPSB1c2VDYWxsYmFjayhcbiAgICBhc3luYyAocXVlcnk6IHN0cmluZywgdmFyaWFibGVzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pID0+IHtcbiAgICAgIGlmICghaXNSZWFkeSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0dyYXBoUUwgY2xpZW50IG5vdCByZWFkeSAtIG1pc3NpbmcgYXBpS2V5IG9yIGJhc2VVcmwnKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChgJHtiYXNlVXJsfS92MS9ncmFwaHFsYCwge1xuICAgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke2FwaUtleX1gLFxuICAgICAgICB9LFxuICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7IHF1ZXJ5LCB2YXJpYWJsZXMgfSksXG4gICAgICB9KTtcblxuICAgICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEdyYXBoUUwgcmVxdWVzdCBmYWlsZWQ6ICR7cmVzcG9uc2Uuc3RhdHVzVGV4dH1gKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVzcG9uc2UuanNvbigpO1xuICAgICAgaWYgKHJlc3VsdC5lcnJvcnMpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBHcmFwaFFMIGVycm9yczogJHtKU09OLnN0cmluZ2lmeShyZXN1bHQuZXJyb3JzKX1gKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJlc3VsdC5kYXRhO1xuICAgIH0sXG4gICAgW2FwaUtleSwgYmFzZVVybCwgaXNSZWFkeV0sXG4gICk7XG5cbiAgY29uc3QgdmFsdWUgPSB1c2VNZW1vKCgpID0+ICh7IGV4ZWN1dGVRdWVyeSwgaXNSZWFkeSB9KSwgW2V4ZWN1dGVRdWVyeSwgaXNSZWFkeV0pO1xuXG4gIHJldHVybiA8R3JhcGhRTENvbnRleHQuUHJvdmlkZXIgdmFsdWU9e3ZhbHVlfT57Y2hpbGRyZW59PC9HcmFwaFFMQ29udGV4dC5Qcm92aWRlcj47XG59O1xuXG5leHBvcnQgY29uc3QgdXNlR3JhcGhRTENsaWVudCA9ICgpID0+IHtcbiAgY29uc3QgY29udGV4dCA9IHVzZUNvbnRleHQoR3JhcGhRTENvbnRleHQpO1xuICBpZiAoIWNvbnRleHQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3VzZUdyYXBoUUxDbGllbnQgbXVzdCBiZSB1c2VkIHdpdGhpbiBhIEdyYXBoUUxQcm92aWRlcicpO1xuICB9XG4gIHJldHVybiBjb250ZXh0O1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBK0JBLE1BQU0saUJBQWlCLGNBQTBDLEtBQUs7QUFNdEUsTUFBYSxtQkFBbUIsRUFBRSxlQUFxQztDQUNyRSxNQUFNLFNBQVMsYUFBYSxtQkFBbUI7Q0FDL0MsTUFBTSxVQUFVLGFBQWEsWUFBWTtDQUN6QyxNQUFNLFVBQVUsY0FBYyxRQUFRLFVBQVUsUUFBUSxFQUFFLENBQUMsUUFBUSxRQUFRLENBQUM7Q0FFNUUsTUFBTSxlQUFlLFlBQ25CLE9BQU8sT0FBZSxjQUF3QztBQUM1RCxNQUFJLENBQUMsUUFDSCxPQUFNLElBQUksTUFBTSx1REFBdUQ7RUFHekUsTUFBTSxXQUFXLE1BQU0sTUFBTSxHQUFHLFFBQVEsY0FBYztHQUNwRCxRQUFRO0dBQ1IsU0FBUztJQUNQLGdCQUFnQjtJQUNoQixlQUFlLFVBQVU7SUFDMUI7R0FDRCxNQUFNLEtBQUssVUFBVTtJQUFFO0lBQU87SUFBVyxDQUFDO0dBQzNDLENBQUM7QUFFRixNQUFJLENBQUMsU0FBUyxHQUNaLE9BQU0sSUFBSSxNQUFNLDJCQUEyQixTQUFTLGFBQWE7RUFHbkUsTUFBTSxTQUFTLE1BQU0sU0FBUyxNQUFNO0FBQ3BDLE1BQUksT0FBTyxPQUNULE9BQU0sSUFBSSxNQUFNLG1CQUFtQixLQUFLLFVBQVUsT0FBTyxPQUFPLEdBQUc7QUFHckUsU0FBTyxPQUFPO0lBRWhCO0VBQUM7RUFBUTtFQUFTO0VBQVEsQ0FDM0I7Q0FFRCxNQUFNLFFBQVEsZUFBZTtFQUFFO0VBQWM7RUFBUyxHQUFHLENBQUMsY0FBYyxRQUFRLENBQUM7QUFFakYsUUFBTyxvQkFBQyxlQUFlO0VBQWdCO0VBQVE7R0FBbUM7O0FBR3BGLE1BQWEseUJBQXlCO0NBQ3BDLE1BQU0sVUFBVSxXQUFXLGVBQWU7QUFDMUMsS0FBSSxDQUFDLFFBQ0gsT0FBTSxJQUFJLE1BQU0seURBQXlEO0FBRTNFLFFBQU8ifQ==
|
|
@@ -40,4 +40,4 @@ interface PageDetails {
|
|
|
40
40
|
}
|
|
41
41
|
//#endregion
|
|
42
42
|
export { FullPageSalesAgentVariantInfo, HomeVariantInfo, OtherVariantInfo, PDPPageVariantInfo, PLPPageVariantInfo, PageDetails, PageVariantInfo, VisitPageVariantInfo };
|
|
43
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
43
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuZC50cyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udGV4dHMvcGFnZUNvbnRleHQvdHlwZXMuZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBVc2VyRXZlbnQsIFZhcmlhbnRUeXBlRW51bSB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMnO1xuZXhwb3J0IHR5cGUgUERQUGFnZVZhcmlhbnRJbmZvID0ge1xuICAgIHZhcmlhbnRUeXBlOiBWYXJpYW50VHlwZUVudW0uUGRwO1xuICAgIHByb2R1Y3RJZDogc3RyaW5nO1xuICAgIGNvbGxlY3Rpb25zOiBzdHJpbmdbXTtcbiAgICBudW1iZXJPZlJldmlld3M6IG51bWJlcjtcbiAgICBtZXJjaGFudFRhZ3M6IHN0cmluZ1tdO1xuICAgIHVybDogc3RyaW5nO1xufTtcbmV4cG9ydCB0eXBlIFBMUFBhZ2VWYXJpYW50SW5mbyA9IHtcbiAgICB2YXJpYW50VHlwZTogVmFyaWFudFR5cGVFbnVtLlBscDtcbiAgICBwbHBJZDogc3RyaW5nO1xuICAgIHRvcENhdGVnb3J5OiBzdHJpbmc7XG4gICAgdXJsOiBzdHJpbmc7XG59O1xuZXhwb3J0IHR5cGUgVmlzaXRQYWdlVmFyaWFudEluZm8gPSB7XG4gICAgdmFyaWFudFR5cGU6IFZhcmlhbnRUeXBlRW51bS5QYWdlVmlzaXQ7XG4gICAgdXJsOiBzdHJpbmc7XG59O1xuZXhwb3J0IHR5cGUgSG9tZVZhcmlhbnRJbmZvID0ge1xuICAgIHZhcmlhbnRUeXBlOiBWYXJpYW50VHlwZUVudW0uSG9tZTtcbiAgICB1cmw6IHN0cmluZztcbn07XG5leHBvcnQgdHlwZSBPdGhlclZhcmlhbnRJbmZvID0ge1xuICAgIHZhcmlhbnRUeXBlOiBWYXJpYW50VHlwZUVudW0uT3RoZXI7XG4gICAgdXJsOiBzdHJpbmc7XG59O1xuZXhwb3J0IHR5cGUgRnVsbFBhZ2VTYWxlc0FnZW50VmFyaWFudEluZm8gPSB7XG4gICAgdmFyaWFudFR5cGU6IFZhcmlhbnRUeXBlRW51bS5GdWxsUGFnZVNhbGVzQWdlbnQ7XG4gICAgdXJsOiBzdHJpbmc7XG59O1xuZXhwb3J0IHR5cGUgUGFnZVZhcmlhbnRJbmZvID0gUERQUGFnZVZhcmlhbnRJbmZvIHwgUExQUGFnZVZhcmlhbnRJbmZvIHwgVmlzaXRQYWdlVmFyaWFudEluZm8gfCBIb21lVmFyaWFudEluZm8gfCBPdGhlclZhcmlhbnRJbmZvIHwgRnVsbFBhZ2VTYWxlc0FnZW50VmFyaWFudEluZm87XG5leHBvcnQgaW50ZXJmYWNlIFBhZ2VEZXRhaWxzIHtcbiAgICBwYWdlVXJsOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgdmFyaWFudEluZm86IFBhZ2VWYXJpYW50SW5mbyB8IHVuZGVmaW5lZDtcbiAgICB1c2VyRXZlbnQ6IFVzZXJFdmVudCB8IHVuZGVmaW5lZDtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7OztBQUNBLElBQVcscUJBQXFCLENBQUMsV0FBQSxnQkFBQSxJQUFBO0FBQ2pDLElBQVcscUJBQXFCLENBQUMsV0FBRyxnQkFBQSxJQUFBO0FBQ3BDLElBQVcsdUJBQVUsQ0FBQSxXQUFBLGdCQUFBLFVBQUE7QUFDckIsSUFBVyxrQkFBYyxDQUFBLFdBQUEsZ0JBQUEsS0FBQTtBQUN6QixJQUFXLG1CQUFnQixDQUFBLFdBQUEsZ0JBQUEsTUFBQTtBQUMzQixJQUFXLGdDQUFlLENBQUEsV0FBQSxnQkFBQSxtQkFBQTtBQUMxQixJQUFXLGtCQUFJO0NBQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7Q0FBQTtBQUNmLElBQUMsY0FBQTtDQUFBO09BQUE7T0FBQTtDQUFBIn0=
|
|
@@ -6,11 +6,11 @@ const require_eventNames = require('../../services/amplitudeService/eventNames.c
|
|
|
6
6
|
require('../../services/amplitudeService/amplitudeService.cjs');
|
|
7
7
|
const require_variant = require('../../atoms/app/variant.cjs');
|
|
8
8
|
require('../../atoms/app/index.cjs');
|
|
9
|
-
const require_amplitudeContext = require('../amplitudeContext/amplitudeContext.cjs');
|
|
10
|
-
require('../amplitudeContext/index.cjs');
|
|
11
9
|
const require_atoms_chat_chatState = require('../../atoms/chat/chatState.cjs');
|
|
12
10
|
const require_messageQueue = require('../../atoms/chat/messageQueue.cjs');
|
|
13
11
|
require('../../atoms/chat/index.cjs');
|
|
12
|
+
const require_amplitudeContext = require('../amplitudeContext/amplitudeContext.cjs');
|
|
13
|
+
require('../amplitudeContext/index.cjs');
|
|
14
14
|
const require_hooks_WidgetInteraction_types = require('../../hooks/WidgetInteraction/types.cjs');
|
|
15
15
|
const require_useWidgetInteraction = require('../../hooks/WidgetInteraction/useWidgetInteraction.cjs');
|
|
16
16
|
require('../../hooks/WidgetInteraction/index.cjs');
|
|
@@ -5,11 +5,11 @@ import { EnviveMetricsEventName, SpiffyMetricsEventName } from "../../services/a
|
|
|
5
5
|
import "../../services/amplitudeService/amplitudeService.js";
|
|
6
6
|
import { analyticsContextAtom, hasParsedVariantInfoAtom } from "../../atoms/app/variant.js";
|
|
7
7
|
import "../../atoms/app/index.js";
|
|
8
|
-
import { useAmplitude } from "../amplitudeContext/amplitudeContext.js";
|
|
9
|
-
import "../amplitudeContext/index.js";
|
|
10
8
|
import { formSubmitAtom, replyEventCategoryAtom, suggestionsAtom } from "../../atoms/chat/chatState.js";
|
|
11
9
|
import { queueUserEventAtom } from "../../atoms/chat/messageQueue.js";
|
|
12
10
|
import "../../atoms/chat/index.js";
|
|
11
|
+
import { useAmplitude } from "../amplitudeContext/amplitudeContext.js";
|
|
12
|
+
import "../amplitudeContext/index.js";
|
|
13
13
|
import { WidgetInteractionComponent, WidgetInteractionType } from "../../hooks/WidgetInteraction/types.js";
|
|
14
14
|
import { useWidgetInteraction } from "../../hooks/WidgetInteraction/useWidgetInteraction.js";
|
|
15
15
|
import "../../hooks/WidgetInteraction/index.js";
|
|
@@ -8,13 +8,14 @@ const require_messageFromResponse = require('../../application/utils/messageFrom
|
|
|
8
8
|
require('../../application/utils/index.cjs');
|
|
9
9
|
const require_variant = require('../../atoms/app/variant.cjs');
|
|
10
10
|
const require_atoms_app_index = require('../../atoms/app/index.cjs');
|
|
11
|
+
const require_resolvedBaseConfigVersion = require('../../atoms/envive/resolvedBaseConfigVersion.cjs');
|
|
11
12
|
const require_application_commerce_api = require('../../application/commerce-api.cjs');
|
|
12
13
|
const require_useMessageInterceptor = require('../../interceptors/useMessageInterceptor.cjs');
|
|
14
|
+
const require_atoms_chat_chatState = require('../../atoms/chat/chatState.cjs');
|
|
13
15
|
const require_featureFlagServiceContext = require('../featureFlagServiceContext/featureFlagServiceContext.cjs');
|
|
14
16
|
const require_amplitudeContext = require('../amplitudeContext/amplitudeContext.cjs');
|
|
15
17
|
require('../amplitudeContext/index.cjs');
|
|
16
18
|
require('../featureFlagServiceContext/index.cjs');
|
|
17
|
-
const require_atoms_chat_chatState = require('../../atoms/chat/chatState.cjs');
|
|
18
19
|
const require_statusCodeError = require('./statusCodeError.cjs');
|
|
19
20
|
let __spiffy_ai_commerce_api_client = require("@spiffy-ai/commerce-api-client");
|
|
20
21
|
let react = require("react");
|
|
@@ -139,10 +140,11 @@ const useSalesAgentService = () => {
|
|
|
139
140
|
const { trackEvent } = require_amplitudeContext.useAmplitude();
|
|
140
141
|
const featureFlagService = require_featureFlagServiceContext.useFeatureFlagService();
|
|
141
142
|
const context = (0, jotai.useAtomValue)(require_atoms_app_index.appDetailsAtom);
|
|
143
|
+
const resolvedBaseConfigVersion = (0, jotai.useAtomValue)(require_resolvedBaseConfigVersion.resolvedBaseConfigVersionAtom);
|
|
142
144
|
return {
|
|
143
145
|
createResponsePayload: (0, react.useCallback)(({ userEvents, generationParams }) => {
|
|
144
146
|
const featureFlags = featureFlagService?.featureFlagService?.getFeatureFlags() || {};
|
|
145
|
-
const overrideConfigVersion = getQueryParam("spiffy_config_version") || getQueryParam("envive_config_version") || void 0;
|
|
147
|
+
const overrideConfigVersion = getQueryParam("spiffy_config_version") || getQueryParam("envive_config_version") || resolvedBaseConfigVersion || void 0;
|
|
146
148
|
const overrideModelDatetime = getQueryParam("override_model_datetime") || void 0;
|
|
147
149
|
return {
|
|
148
150
|
id: (0, uuid.v4)(),
|
|
@@ -153,7 +155,11 @@ const useSalesAgentService = () => {
|
|
|
153
155
|
overrideConfigVersion,
|
|
154
156
|
overrideModelDatetime
|
|
155
157
|
};
|
|
156
|
-
}, [
|
|
158
|
+
}, [
|
|
159
|
+
context,
|
|
160
|
+
featureFlagService?.featureFlagService,
|
|
161
|
+
resolvedBaseConfigVersion
|
|
162
|
+
]),
|
|
157
163
|
getStreamingResponses: (0, react.useCallback)(async (payload) => {
|
|
158
164
|
const startTime = Date.now();
|
|
159
165
|
let successfulResponse;
|
|
@@ -215,4 +221,4 @@ const useSalesAgentService = () => {
|
|
|
215
221
|
|
|
216
222
|
//#endregion
|
|
217
223
|
exports.useSalesAgentService = useSalesAgentService;
|
|
218
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FsZXNBZ2VudFNlcnZpY2UuY2pzIiwibmFtZXMiOlsiTG9nZ2VyIiwiVXNlckV2ZW50Q2F0ZWdvcnkiLCJTdGF0dXNDb2RlRXJyb3IiLCJNZXNzYWdlUm9sZSIsIk1lc3NhZ2VUeXBlIiwibGFzdE1lc3NhZ2U6IE1lc3NhZ2UgfCB1bmRlZmluZWQiLCJyZXNwb25zZUFuYWx5dGljczogUmVjb3JkPHN0cmluZywgbnVtYmVyIHwgc3RyaW5nW10+IiwibWVzc2FnZUZyb21SZXNwb25zZSIsImVycm9yOiB1bmtub3duIiwidXNlU2FsZXNBZ2VudFNlcnZpY2U6ICgpID0+IFNhbGVzQWdlbnRTZXJ2aWNlIiwicmVxdWVzdEZhaWx1cmVBdG9tIiwibWVzc2FnZXNBdG9tIiwic3VnZ2VzdGlvbnNBdG9tIiwicGVuZGluZ1Jlc3BvbnNlQXRvbSIsInJlc3BvbnNlU3RyZWFtaW5nQXRvbSIsImFuYWx5dGljc0NvbnRleHRBdG9tIiwidXNlTWVzc2FnZUludGVyY2VwdG9yIiwidXNlQW1wbGl0dWRlIiwidXNlRmVhdHVyZUZsYWdTZXJ2aWNlIiwiYXBwRGV0YWlsc0F0b20iLCJzdWNjZXNzZnVsUmVzcG9uc2U6IGJvb2xlYW4gfCB1bmRlZmluZWQiLCJDb21tZXJjZUFwaUNsaWVudCIsInJlc3BvbnNlQW5hbHl0aWNzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IHVuZGVmaW5lZCIsIlNwaWZmeU1ldHJpY3NFdmVudE5hbWUiLCJFbnZpdmVNZXRyaWNzRXZlbnROYW1lIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbnRleHRzL3NhbGVzQWdlbnRDb250ZXh0L3NhbGVzQWdlbnRTZXJ2aWNlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFVzZXJFdmVudENhdGVnb3J5IH0gZnJvbSAnQHNwaWZmeS1haS9jb21tZXJjZS1hcGktY2xpZW50JztcbmltcG9ydCB7IHVzZUF0b21WYWx1ZSwgdXNlU2V0QXRvbSB9IGZyb20gJ2pvdGFpJztcbmltcG9ydCB7IHVzZUNhbGxiYWNrIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IENvbW1lcmNlQXBpQ2xpZW50IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9jb21tZXJjZS1hcGknO1xuaW1wb3J0IExvZ2dlciBmcm9tICdzcmMvYXBwbGljYXRpb24vbG9nZ2luZy9sb2dnZXInO1xuaW1wb3J0IHtcbiAgR2VuZXJhdGlvblBhcmFtcyxcbiAgTWVzc2FnZSxcbiAgTWVzc2FnZVJvbGUsXG4gIE1lc3NhZ2VUeXBlLFxuICBOZXh0TWVzc2FnZVJlcXVlc3QsXG4gIFJlc3BvbnNlLFxuICBVc2VyRXZlbnQsXG59IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMnO1xuaW1wb3J0IHsgbWVzc2FnZUZyb21SZXNwb25zZSB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi91dGlscyc7XG5pbXBvcnQgeyBhcHBEZXRhaWxzQXRvbSB9IGZyb20gJ3NyYy9hdG9tcy9hcHAnO1xuaW1wb3J0IHsgYW5hbHl0aWNzQ29udGV4dEF0b20gfSBmcm9tICdzcmMvYXRvbXMvYXBwL3ZhcmlhbnQnO1xuaW1wb3J0IHtcbiAgbWVzc2FnZXNBdG9tLFxuICBwZW5kaW5nUmVzcG9uc2VBdG9tLFxuICByZXF1ZXN0RmFpbHVyZUF0b20sXG4gIHJlc3BvbnNlU3RyZWFtaW5nQXRvbSxcbiAgc3VnZ2VzdGlvbnNBdG9tLFxufSBmcm9tICdzcmMvYXRvbXMvY2hhdC9jaGF0U3RhdGUnO1xuaW1wb3J0IHsgdXNlQW1wbGl0dWRlIH0gZnJvbSAnc3JjL2NvbnRleHRzL2FtcGxpdHVkZUNvbnRleHQnO1xuaW1wb3J0IHsgdXNlRmVhdHVyZUZsYWdTZXJ2aWNlIH0gZnJvbSAnc3JjL2NvbnRleHRzL2ZlYXR1cmVGbGFnU2VydmljZUNvbnRleHQnO1xuaW1wb3J0IHsgdXNlTWVzc2FnZUludGVyY2VwdG9yIH0gZnJvbSAnc3JjL2ludGVyY2VwdG9ycy91c2VNZXNzYWdlSW50ZXJjZXB0b3InO1xuaW1wb3J0IHtcbiAgRW52aXZlTWV0cmljc0V2ZW50TmFtZSxcbiAgU3BpZmZ5TWV0cmljc0V2ZW50TmFtZSxcbn0gZnJvbSAnc3JjL3NlcnZpY2VzL2FtcGxpdHVkZVNlcnZpY2UvYW1wbGl0dWRlU2VydmljZSc7XG5pbXBvcnQgeyB2NCBhcyB1dWlkIH0gZnJvbSAndXVpZCc7XG5cbmltcG9ydCB7IFN0YXR1c0NvZGVFcnJvciB9IGZyb20gJy4vc3RhdHVzQ29kZUVycm9yJztcblxuY29uc3QgbG9nZ2VyID0gbmV3IExvZ2dlcignc2FsZXNBZ2VudFNlcnZpY2UnKTtcblxuaW50ZXJmYWNlIFNhbGVzQWdlbnRTZXJ2aWNlIHtcbiAgY3JlYXRlUmVzcG9uc2VQYXlsb2FkOiAocGF5bG9hZDoge1xuICAgIHVzZXJFdmVudHM6IFVzZXJFdmVudFtdO1xuICAgIGdlbmVyYXRpb25QYXJhbXM/OiBHZW5lcmF0aW9uUGFyYW1zO1xuICB9KSA9PiBOZXh0TWVzc2FnZVJlcXVlc3Q7XG4gIGdldFN0cmVhbWluZ1Jlc3BvbnNlczogKHBheWxvYWQ6IE5leHRNZXNzYWdlUmVxdWVzdCkgPT4gUHJvbWlzZTx2b2lkPjtcbiAgZ2V0U3VnZ2VzdGlvbnM6IChwYXlsb2FkOiBOZXh0TWVzc2FnZVJlcXVlc3QpID0+IFByb21pc2U8dm9pZD47XG4gIGh5ZHJhdGVNZXNzYWdlczogKCkgPT4gUHJvbWlzZTx2b2lkPjtcbn1cblxuY29uc3QgaW5wdXRQcm9wc1RvVHJhY2tpbmdQcm9wcyA9IChcbiAgcGF5bG9hZDogTmV4dE1lc3NhZ2VSZXF1ZXN0LFxuKTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfCB1bmRlZmluZWQgPT4ge1xuICBjb25zdCBbdXNlckV2ZW50XSA9IHBheWxvYWQudXNlckV2ZW50cyB8fCBbXTtcbiAgaWYgKHVzZXJFdmVudC5jYXRlZ29yeSA9PT0gVXNlckV2ZW50Q2F0ZWdvcnkuU3VnZ2VzdGlvbkNsaWNrZWQpIHtcbiAgICByZXR1cm4ge1xuICAgICAgbWVzc2FnZV9pZDogdXNlckV2ZW50LmV2ZW50SWQsXG4gICAgICB1c2VyX2V2ZW50X3R5cGU6ICdzdWdnZXN0aW9uX2NsaWNrZWQnLFxuICAgICAgdXNlcl9xdWVyeTogdXNlckV2ZW50LmF0dHJpYnV0ZXMuY29udGVudCxcbiAgICB9O1xuICB9XG4gIGlmICh1c2VyRXZlbnQuY2F0ZWdvcnkgPT09IFVzZXJFdmVudENhdGVnb3J5LlF1ZXJ5VHlwZWQpIHtcbiAgICByZXR1cm4ge1xuICAgICAgbWVzc2FnZV9pZDogdXNlckV2ZW50LmV2ZW50SWQsXG4gICAgICB1c2VyX2V2ZW50X3R5cGU6ICdxdWVyeV90eXBlZCcsXG4gICAgICB1c2VyX3F1ZXJ5OiB1c2VyRXZlbnQuYXR0cmlidXRlcy5xdWVyeSxcbiAgICB9O1xuICB9XG4gIHJldHVybiB7fTtcbn07XG5cbmNvbnN0IGlucHV0UHJvcHNUb0Vudml2ZVRyYWNraW5nUHJvcHMgPSAoXG4gIHBheWxvYWQ6IE5leHRNZXNzYWdlUmVxdWVzdCxcbik6IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgdW5kZWZpbmVkID0+IHtcbiAgY29uc3QgW3VzZXJFdmVudF0gPSBwYXlsb2FkLnVzZXJFdmVudHMgfHwgW107XG4gIGlmICh1c2VyRXZlbnQuY2F0ZWdvcnkgPT09IFVzZXJFdmVudENhdGVnb3J5LlN1Z2dlc3Rpb25DbGlja2VkKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICdjaGF0LnJlcXVlc3RfdHlwZSc6ICdzdWdnZXN0aW9uJyxcbiAgICAgICdjaGF0LnJlcXVlc3RfaWQnOiB1c2VyRXZlbnQuZXZlbnRJZCxcbiAgICAgICdjaGF0LnJlcXVlc3RfdGV4dCc6IHVzZXJFdmVudC5hdHRyaWJ1dGVzLmNvbnRlbnQsXG4gICAgICAnY2hhdC5zdWdnZXN0aW9uX2lkJzogdXNlckV2ZW50LmF0dHJpYnV0ZXMuc3VnZ2VzdGlvbklkLFxuICAgICAgJ2NoYXQudXNlcl90eXBlZCc6IGZhbHNlLFxuICAgIH07XG4gIH1cbiAgaWYgKHVzZXJFdmVudC5jYXRlZ29yeSA9PT0gVXNlckV2ZW50Q2F0ZWdvcnkuUXVlcnlUeXBlZCkge1xuICAgIHJldHVybiB7XG4gICAgICAnY2hhdC5yZXF1ZXN0X3R5cGUnOiAndGV4dCcsXG4gICAgICAnY2hhdC5yZXF1ZXN0X2lkJzogdXNlckV2ZW50LmV2ZW50SWQsXG4gICAgICAnY2hhdC5yZXF1ZXN0X3RleHQnOiB1c2VyRXZlbnQuYXR0cmlidXRlcy5xdWVyeSxcbiAgICAgICdjaGF0LnVzZXJfdHlwZWQnOiB1c2VyRXZlbnQuYXR0cmlidXRlcy51c2VyVHlwZWQsXG4gICAgfTtcbiAgfVxuICBpZiAoXG4gICAgdXNlckV2ZW50LmNhdGVnb3J5ID09PSBVc2VyRXZlbnRDYXRlZ29yeS5QYWdlVmlzaXQgfHxcbiAgICB1c2VyRXZlbnQuY2F0ZWdvcnkgPT09IFVzZXJFdmVudENhdGVnb3J5LlBkcFZpc2l0IHx8XG4gICAgdXNlckV2ZW50LmNhdGVnb3J5ID09PSBVc2VyRXZlbnRDYXRlZ29yeS5QbHBWaXNpdFxuICApIHtcbiAgICByZXR1cm4ge1xuICAgICAgJ2NoYXQucmVxdWVzdF9pZCc6IHVzZXJFdmVudC5ldmVudElkLFxuICAgICAgJ2NoYXQucmVxdWVzdF90eXBlJzogJ3BhZ2VfdmlzaXQnLFxuICAgIH07XG4gIH1cblxuICByZXR1cm4ge307XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0UXVlcnlQYXJhbSA9IChrZXk6IHN0cmluZyk6IHN0cmluZyB8IG51bGwgPT4ge1xuICBjb25zdCB1cmxPYmogPSBuZXcgVVJMKHdpbmRvdy5sb2NhdGlvbi5ocmVmKTtcbiAgcmV0dXJuIHVybE9iai5zZWFyY2hQYXJhbXMuZ2V0KGtleSk7XG59O1xuXG5jb25zdCBnZXRFcnJvck1lc3NhZ2UgPSAoX2Vycm9yOiB1bmtub3duKTogc3RyaW5nID0+IHtcbiAgaWYgKF9lcnJvciBpbnN0YW5jZW9mIFN0YXR1c0NvZGVFcnJvcikge1xuICAgIGlmIChfZXJyb3Iuc3RhdHVzQ29kZSA9PT0gNDIzKSB7XG4gICAgICByZXR1cm4gJ0R1ZSB0byB2aW9sYXRpb24gb2YgdGVybXMgYW5kIHNlcnZpY2VzLCB0aGlzIHNlc3Npb24gaGFzIGJlZW4gdGVybWluYXRlZC4nO1xuICAgIH1cbiAgICAvLyBLZWVwaW5nIHRoZSA0MjkgZXJyb3IgbWVzc2FnZXMgYXMgdGhlIGdlbmVyaWMgZXJyb3IgbWVzc2FnZSBmb3Igbm93LlxuICAgIC8vIGlmIChfZXJyb3Iuc3RhdHVzQ29kZSA9PT0gNDI5KSB7XG4gICAgLy8gICByZXR1cm4gXCJJJ20gc29ycnkhIFRoZSBzeXN0ZW0gaXMgYnVzeSByaWdodCBub3cuIFBsZWFzZSB0cnkgYWdhaW4gaW4gYSBmZXcgbWludXRlcy5cIjtcbiAgICAvLyB9XG4gIH1cblxuICByZXR1cm4gXCJJJ20gc29ycnkhIEknbSBoYXZpbmcgdHJvdWJsZSByaWdodCBub3cuIFBsZWFzZSByZWZyZXNoIHRoZSBwYWdlIG9yIHRyeSBhZ2FpbiBpbiBhIG1vbWVudC5cIjtcbn07XG5cbmNvbnN0IGhhbmRsZVN0cmVhbWluZ0Vycm9yID0gKFxuICBfZXJyb3I6IHVua25vd24sXG4gIHNldFJlcXVlc3RGYWlsdXJlOiAoZmFpbGVkOiBib29sZWFuKSA9PiB2b2lkLFxuICBzZXRNZXNzYWdlczogKHVwZGF0ZXI6IChwcmV2OiBNZXNzYWdlW11bXSkgPT4gTWVzc2FnZVtdW10pID0+IHZvaWQsXG4pID0+IHtcbiAgc2V0UmVxdWVzdEZhaWx1cmUodHJ1ZSk7XG5cbiAgY29uc3QgZXJyb3JNZXNzYWdlID0gZ2V0RXJyb3JNZXNzYWdlKF9lcnJvcik7XG4gIHNldE1lc3NhZ2VzKHByZXYgPT4gW1xuICAgIC4uLnByZXYsXG4gICAgW1xuICAgICAge1xuICAgICAgICBpZDogdXVpZCgpLFxuICAgICAgICByb2xlOiBNZXNzYWdlUm9sZS5Bc3Npc3RhbnQsXG4gICAgICAgIHR5cGU6IE1lc3NhZ2VUeXBlLlRleHQsXG4gICAgICAgIGNyZWF0ZWRBdDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuICAgICAgICBtZXRhZGF0YToge1xuICAgICAgICAgIGNvbnRlbnQ6IGVycm9yTWVzc2FnZSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgXSxcbiAgXSk7XG59O1xuXG5jb25zdCB1cGRhdGVNZXNzYWdlU3RhdGUgPSAoXG4gIG1lc3NhZ2U6IE1lc3NhZ2UsXG4gIGxhc3RNZXNzYWdlOiBNZXNzYWdlLFxuICBzZXRNZXNzYWdlczogKHVwZGF0ZXI6IChwcmV2OiBNZXNzYWdlW11bXSkgPT4gTWVzc2FnZVtdW10pID0+IHZvaWQsXG4pOiBNZXNzYWdlID0+IHtcbiAgaWYgKGxhc3RNZXNzYWdlID09IG51bGwpIHtcbiAgICBzZXRNZXNzYWdlcyhwcmV2ID0+IFsuLi5wcmV2LCBbbWVzc2FnZV1dKTtcbiAgICByZXR1cm4gbWVzc2FnZTtcbiAgfVxuICBpZiAobGFzdE1lc3NhZ2UudHlwZSA9PT0gTWVzc2FnZVR5cGUuVGV4dCAmJiBtZXNzYWdlLnR5cGUgPT09IE1lc3NhZ2VUeXBlLlRleHQpIHtcbiAgICBjb25zdCBuZXdNZXNzYWdlID0ge1xuICAgICAgLi4ubGFzdE1lc3NhZ2UsXG4gICAgICBtZXRhZGF0YToge1xuICAgICAgICAuLi5sYXN0TWVzc2FnZS5tZXRhZGF0YSxcbiAgICAgICAgY29udGVudDogbGFzdE1lc3NhZ2UubWV0YWRhdGEuY29udGVudCArIG1lc3NhZ2UubWV0YWRhdGEuY29udGVudCxcbiAgICAgIH0sXG4gICAgfTtcbiAgICBzZXRNZXNzYWdlcyhwcmV2ID0+IHtcbiAgICAgIGNvbnN0IGxhc3RUdXJuID0gcHJldltwcmV2Lmxlbmd0aCAtIDFdO1xuICAgICAgcmV0dXJuIFtcbiAgICAgICAgLi4ucHJldi5zbGljZSgwLCBwcmV2Lmxlbmd0aCAtIDEpLFxuICAgICAgICBbLi4ubGFzdFR1cm4uc2xpY2UoMCwgbGFzdFR1cm4ubGVuZ3RoIC0gMSksIG5ld01lc3NhZ2VdLFxuICAgICAgXTtcbiAgICB9KTtcbiAgICByZXR1cm4gbmV3TWVzc2FnZTtcbiAgfVxuICBzZXRNZXNzYWdlcyhwcmV2ID0+IFsuLi5wcmV2LnNsaWNlKDAsIHByZXYubGVuZ3RoIC0gMSksIFsuLi5wcmV2W3ByZXYubGVuZ3RoIC0gMV0sIG1lc3NhZ2VdXSk7XG4gIHJldHVybiBtZXNzYWdlO1xufTtcblxuY29uc3QgcHJvY2Vzc1N0cmVhbWluZ1Jlc3BvbnNlID0gYXN5bmMgKFxuICBzdHJlYW06IEFzeW5jSXRlcmFibGU8UmVzcG9uc2U+LFxuICBtZXNzYWdlSW50ZXJjZXB0b3I6IHsgaW50ZXJjZXB0OiAocmVzcG9uc2U/OiBSZXNwb25zZSkgPT4gYm9vbGVhbiB8IHVuZGVmaW5lZCB9LFxuICBzZXRNZXNzYWdlczogKHVwZGF0ZXI6IChwcmV2OiBNZXNzYWdlW11bXSkgPT4gTWVzc2FnZVtdW10pID0+IHZvaWQsXG4gIHNldFJlc3BvbnNlU3RyZWFtaW5nOiAocmVzcG9uc2VTdHJlYW1pbmc6IGJvb2xlYW4pID0+IHZvaWQsXG4pOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIG51bWJlciB8IHN0cmluZ1tdPj4gPT4ge1xuICBsZXQgbGFzdE1lc3NhZ2U6IE1lc3NhZ2UgfCB1bmRlZmluZWQ7XG4gIHNldFJlc3BvbnNlU3RyZWFtaW5nKHRydWUpO1xuICBjb25zdCByZXNwb25zZUFuYWx5dGljczogUmVjb3JkPHN0cmluZywgbnVtYmVyIHwgc3RyaW5nW10+ID0ge307XG4gIGNvbnN0IHByb2R1Y3RJZHMgPSBbXTtcblxuICBmb3IgYXdhaXQgKGNvbnN0IHJlc3BvbnNlIG9mIHN0cmVhbSkge1xuICAgIHRyeSB7XG4gICAgICBpZiAobWVzc2FnZUludGVyY2VwdG9yLmludGVyY2VwdChyZXNwb25zZSkpIHtcbiAgICAgICAgcmV0dXJuIHt9O1xuICAgICAgfVxuXG4gICAgICBpZiAoIXJlc3BvbnNlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignTm8gcmVzcG9uc2UgZnJvbSBzdHJlYW0nKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgbWVzc2FnZSA9IG1lc3NhZ2VGcm9tUmVzcG9uc2UocmVzcG9uc2UpO1xuICAgICAgaWYgKCFtZXNzYWdlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignRmFpbGVkIHRvIHRyYW5zZm9ybSBBUEkgcmVzcG9uc2UgdG8gY2xpZW50IG1lc3NhZ2UnKTtcbiAgICAgIH1cbiAgICAgIGlmIChtZXNzYWdlLnR5cGUgPT09IE1lc3NhZ2VUeXBlLlByb2R1Y3QpIHtcbiAgICAgICAgY29uc3QgY2FyZHNDb3VudGVyID0gKHJlc3BvbnNlQW5hbHl0aWNzWydjaGF0LnByb2R1Y3RfY2FyZHNfcmV0dXJuZWQnXSBhcyBudW1iZXIpIHx8IDA7XG4gICAgICAgIHJlc3BvbnNlQW5hbHl0aWNzWydjaGF0LnByb2R1Y3RfY2FyZHNfcmV0dXJuZWQnXSA9IGNhcmRzQ291bnRlciArIDE7XG5cbiAgICAgICAgY29uc3QgcHJvZHVjdElkcyA9IHJlc3BvbnNlQW5hbHl0aWNzWydjaGF0LnByb2R1Y3RfaWRzX3JldHVybmVkJ10gYXMgc3RyaW5nW107XG4gICAgICAgIGlmICghcHJvZHVjdElkcykge1xuICAgICAgICAgIHJlc3BvbnNlQW5hbHl0aWNzWydjaGF0LnByb2R1Y3RfaWRzX3JldHVybmVkJ10gPSBbbWVzc2FnZS5tZXRhZGF0YS5pZF07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcHJvZHVjdElkcy5wdXNoKG1lc3NhZ2UubWV0YWRhdGEuaWQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAobWVzc2FnZS50eXBlID09PSBNZXNzYWdlVHlwZS5SZXZpZXcpIHtcbiAgICAgICAgY29uc3QgY2FyZHNDb3VudGVyID0gKHJlc3BvbnNlQW5hbHl0aWNzWydjaGF0LnJldmlld19jYXJkc19yZXR1cm5lZCddIGFzIG51bWJlcikgfHwgMDtcbiAgICAgICAgcmVzcG9uc2VBbmFseXRpY3NbJ2NoYXQucmV2aWV3X2NhcmRzX3JldHVybmVkJ10gPSBjYXJkc0NvdW50ZXIgKyAxO1xuICAgICAgfVxuXG4gICAgICAvLyBObyBzdXBwb3J0IGZvciBDaGF0U2VhcmNoIG1lc3NhZ2VzIGF0IHRoZSBjdXJyZW50IHRpbWUuXG4gICAgICAvLyBQZXJoYXBzIHdlIGFkZCBzdXBwb3J0IGJhY2sgaW4gdGhlIGZ1dHVyZVxuICAgICAgLy8gaWYgKG1lc3NhZ2UudHlwZSA9PT0gTWVzc2FnZVR5cGUuUHJvZHVjdFNlYXJjaCkge1xuICAgICAgLy8gICBoYW5kbGVTZWFyY2hSZXN1bHRzKG1lc3NhZ2UpO1xuICAgICAgLy8gICBoYXNTZWFyY2hSZXN1bHRzID0gdHJ1ZTtcbiAgICAgIC8vICAgc2V0U2VhcmNoSXNMb2FkaW5nKGZhbHNlKTsgLy8gVXBkYXRlIHNlYXJjaCBsb2FkaW5nIGltbWVkaWF0ZWx5IHdoZW4gcmVzdWx0cyBhcmUgZGV0ZWN0ZWRcbiAgICAgIC8vIH1cblxuICAgICAgbGFzdE1lc3NhZ2UgPSB1cGRhdGVNZXNzYWdlU3RhdGUobWVzc2FnZSwgbGFzdE1lc3NhZ2UhLCBzZXRNZXNzYWdlcyk7XG4gICAgfSBjYXRjaCAoZXJyb3I6IHVua25vd24pIHtcbiAgICAgIGxvZ2dlci5sb2dXYXJuKCdGYWlsZWQgdG8gZ2VuZXJhdGUgcmVzcG9uc2VzIGZyb20gc3RyZWFtJywgZXJyb3IsIHtcbiAgICAgICAgbGFzdFJlc3BvbnNlOiBsYXN0TWVzc2FnZSxcbiAgICAgICAgcmVzcG9uc2UsXG4gICAgICB9KTtcbiAgICB9XG4gICAgc2V0UmVzcG9uc2VTdHJlYW1pbmcoZmFsc2UpO1xuICB9XG4gIHJldHVybiByZXNwb25zZUFuYWx5dGljcztcbn07XG5cbmV4cG9ydCBjb25zdCB1c2VTYWxlc0FnZW50U2VydmljZTogKCkgPT4gU2FsZXNBZ2VudFNlcnZpY2UgPSAoKSA9PiB7XG4gIGNvbnN0IHNldFJlcXVlc3RGYWlsdXJlID0gdXNlU2V0QXRvbShyZXF1ZXN0RmFpbHVyZUF0b20pO1xuICBjb25zdCBzZXRNZXNzYWdlcyA9IHVzZVNldEF0b20obWVzc2FnZXNBdG9tKTtcbiAgY29uc3Qgc2V0U3VnZ2VzdGlvbnMgPSB1c2VTZXRBdG9tKHN1Z2dlc3Rpb25zQXRvbSk7XG4gIGNvbnN0IHNldFBlbmRpbmdSZXNwb25zZSA9IHVzZVNldEF0b20ocGVuZGluZ1Jlc3BvbnNlQXRvbSk7XG4gIGNvbnN0IHNldFJlc3BvbnNlU3RyZWFtaW5nID0gdXNlU2V0QXRvbShyZXNwb25zZVN0cmVhbWluZ0F0b20pO1xuICBjb25zdCBhbmFseXRpY3NDb250ZXh0ID0gdXNlQXRvbVZhbHVlKGFuYWx5dGljc0NvbnRleHRBdG9tKTtcbiAgY29uc3QgbWVzc2FnZUludGVyY2VwdG9yID0gdXNlTWVzc2FnZUludGVyY2VwdG9yKCk7XG4gIGNvbnN0IHsgdHJhY2tFdmVudCB9ID0gdXNlQW1wbGl0dWRlKCk7XG5cbiAgY29uc3QgZmVhdHVyZUZsYWdTZXJ2aWNlID0gdXNlRmVhdHVyZUZsYWdTZXJ2aWNlKCk7XG4gIGNvbnN0IGNvbnRleHQgPSB1c2VBdG9tVmFsdWUoYXBwRGV0YWlsc0F0b20pO1xuXG4gIGNvbnN0IGNyZWF0ZVJlc3BvbnNlUGF5bG9hZCA9IHVzZUNhbGxiYWNrKFxuICAgICh7XG4gICAgICB1c2VyRXZlbnRzLFxuICAgICAgZ2VuZXJhdGlvblBhcmFtcyxcbiAgICB9OiB7XG4gICAgICB1c2VyRXZlbnRzOiBVc2VyRXZlbnRbXTtcbiAgICAgIGdlbmVyYXRpb25QYXJhbXM/OiBHZW5lcmF0aW9uUGFyYW1zO1xuICAgIH0pOiBOZXh0TWVzc2FnZVJlcXVlc3QgPT4ge1xuICAgICAgY29uc3QgZmVhdHVyZUZsYWdzID0gZmVhdHVyZUZsYWdTZXJ2aWNlPy5mZWF0dXJlRmxhZ1NlcnZpY2U/LmdldEZlYXR1cmVGbGFncygpIHx8IHt9O1xuXG4gICAgICBjb25zdCBvdmVycmlkZUNvbmZpZ1ZlcnNpb24gPVxuICAgICAgICBnZXRRdWVyeVBhcmFtKCdzcGlmZnlfY29uZmlnX3ZlcnNpb24nKSB8fFxuICAgICAgICBnZXRRdWVyeVBhcmFtKCdlbnZpdmVfY29uZmlnX3ZlcnNpb24nKSB8fFxuICAgICAgICB1bmRlZmluZWQ7XG4gICAgICBjb25zdCBvdmVycmlkZU1vZGVsRGF0ZXRpbWUgPSBnZXRRdWVyeVBhcmFtKCdvdmVycmlkZV9tb2RlbF9kYXRldGltZScpIHx8IHVuZGVmaW5lZDtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGlkOiB1dWlkKCksXG4gICAgICAgIGNvbnRleHQsXG4gICAgICAgIHVzZXJFdmVudHMsXG4gICAgICAgIGZlYXR1cmVGbGFncyxcbiAgICAgICAgZ2VuZXJhdGlvblBhcmFtcyxcbiAgICAgICAgb3ZlcnJpZGVDb25maWdWZXJzaW9uLFxuICAgICAgICBvdmVycmlkZU1vZGVsRGF0ZXRpbWUsXG4gICAgICB9O1xuICAgIH0sXG4gICAgW2NvbnRleHQsIGZlYXR1cmVGbGFnU2VydmljZT8uZmVhdHVyZUZsYWdTZXJ2aWNlXSxcbiAgKTtcblxuICBjb25zdCBnZXRTdHJlYW1pbmdSZXNwb25zZXMgPSB1c2VDYWxsYmFjayhcbiAgICBhc3luYyAocGF5bG9hZDogTmV4dE1lc3NhZ2VSZXF1ZXN0KTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgICBjb25zdCBzdGFydFRpbWUgPSBEYXRlLm5vdygpO1xuICAgICAgbGV0IHN1Y2Nlc3NmdWxSZXNwb25zZTogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAgIHNldFBlbmRpbmdSZXNwb25zZSh0cnVlKTtcbiAgICAgIHNldFN1Z2dlc3Rpb25zKFtdKTtcbiAgICAgIGNvbnN0IHN0cmVhbSA9IENvbW1lcmNlQXBpQ2xpZW50LmdldE5leHRSZXNwb25zZVN0cmVhbWluZyhwYXlsb2FkKTtcbiAgICAgIGxldCByZXNwb25zZUFuYWx5dGljczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfCB1bmRlZmluZWQ7XG4gICAgICB0cnkge1xuICAgICAgICBzZXRSZXF1ZXN0RmFpbHVyZShmYWxzZSk7XG5cbiAgICAgICAgcmVzcG9uc2VBbmFseXRpY3MgPSBhd2FpdCBwcm9jZXNzU3RyZWFtaW5nUmVzcG9uc2UoXG4gICAgICAgICAgc3RyZWFtLFxuICAgICAgICAgIG1lc3NhZ2VJbnRlcmNlcHRvcixcbiAgICAgICAgICBzZXRNZXNzYWdlcyxcbiAgICAgICAgICBzZXRSZXNwb25zZVN0cmVhbWluZyxcbiAgICAgICAgKTtcbiAgICAgICAgc3VjY2Vzc2Z1bFJlc3BvbnNlID0gdHJ1ZTtcblxuICAgICAgICAvLyBUT0RPOiBBZGQgc3VwcG9ydCBmb3IgdGhlIENocm9tZSBFeHRlbnNpb24gY29tbXVuaWNhdGlvblxuICAgICAgICAvLyBhd2FpdCBsb2dCdW5kbGVFdmVudCh7XG4gICAgICAgIC8vICAgbGV2ZWw6ICdpbmZvJyxcbiAgICAgICAgLy8gICBldmVudDogJ05FWFRfUkVTUE9OU0VfU1VDQ0VTUycsXG4gICAgICAgIC8vICAgY29udGV4dDoge1xuICAgICAgICAvLyAgICAgdHlwZTogJ25leHRfcmVzcG9uc2VzJyxcbiAgICAgICAgLy8gICAgIGVuZHBvaW50OiAnL3YxL25leHRfcmVzcG9uc2VzJyxcbiAgICAgICAgLy8gICAgIHN0YXR1c0NvZGU6IDIwMCxcbiAgICAgICAgLy8gICAgIHJlc3BvbnNlVGltZSxcbiAgICAgICAgLy8gICB9LFxuICAgICAgICAvLyB9KTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcignZXJyb3IgZ2V0dGluZyBzdHJlYW1pbmcgcmVzcG9uc2VzJywgZSk7XG4gICAgICAgIHN1Y2Nlc3NmdWxSZXNwb25zZSA9IGZhbHNlO1xuICAgICAgICAvLyBMb2cgZmFpbGVkIG5leHRfcmVzcG9uc2VzIGNhbGxcbiAgICAgICAgLy8gY29uc3QgcmVzcG9uc2VUaW1lID0gRGF0ZS5ub3coKSAtIHN0YXJ0VGltZTtcbiAgICAgICAgLy8gYXdhaXQgbG9nQnVuZGxlRXZlbnQoe1xuICAgICAgICAvLyAgIGxldmVsOiAnZXJyb3InLFxuICAgICAgICAvLyAgIGV2ZW50OiAnTkVYVF9SRVNQT05TRV9GQUlMRUQnLFxuICAgICAgICAvLyAgIG1lc3NhZ2U6IGBGYWlsZWQgdG8gZ2V0IHN0cmVhbWluZyByZXNwb25zZTogJHtlfWAsXG4gICAgICAgIC8vICAgY29udGV4dDoge1xuICAgICAgICAvLyAgICAgdHlwZTogJ25leHRfcmVzcG9uc2VzJyxcbiAgICAgICAgLy8gICAgIGVuZHBvaW50OiAnL3YxL25leHRfcmVzcG9uc2VzJyxcbiAgICAgICAgLy8gICAgIHJlc3BvbnNlVGltZSxcbiAgICAgICAgLy8gICAgIGVycm9yOiBlIGluc3RhbmNlb2YgRXJyb3IgPyBlLm1lc3NhZ2UgOiBTdHJpbmcoZSksXG4gICAgICAgIC8vICAgfSxcbiAgICAgICAgLy8gfSk7XG5cbiAgICAgICAgaGFuZGxlU3RyZWFtaW5nRXJyb3IoZSwgc2V0UmVxdWVzdEZhaWx1cmUsIHNldE1lc3NhZ2VzKTtcbiAgICAgICAgdGhyb3cgZTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIC8vIExvZyBuZXh0X3Jlc3BvbnNlcyBjYWxsXG4gICAgICAgIGNvbnN0IHJlc3BvbnNlVGltZSA9IERhdGUubm93KCkgLSBzdGFydFRpbWU7XG4gICAgICAgIHRyYWNrRXZlbnQoe1xuICAgICAgICAgIGV2ZW50TmFtZTogU3BpZmZ5TWV0cmljc0V2ZW50TmFtZS5DaGF0QXNzaXN0YW50UmVzcG9uc2UsXG4gICAgICAgICAgZXZlbnRQcm9wczoge1xuICAgICAgICAgICAgcmVzcG9uc2VUaW1lTXM6IHJlc3BvbnNlVGltZS50b1N0cmluZygpLFxuICAgICAgICAgICAgc3VjY2Vzc2Z1bF9yZXNwb25zZTogc3VjY2Vzc2Z1bFJlc3BvbnNlLFxuICAgICAgICAgICAgLi4uaW5wdXRQcm9wc1RvVHJhY2tpbmdQcm9wcyhwYXlsb2FkKSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgICAgdHJhY2tFdmVudCh7XG4gICAgICAgICAgZXZlbnROYW1lOiBFbnZpdmVNZXRyaWNzRXZlbnROYW1lLkNoYXRSZXNwb25zZSxcbiAgICAgICAgICBldmVudFByb3BzOiB7XG4gICAgICAgICAgICAuLi5hbmFseXRpY3NDb250ZXh0LFxuICAgICAgICAgICAgJ2NoYXQucmVzcG9uc2VfdGltZV9tcyc6IHJlc3BvbnNlVGltZS50b1N0cmluZygpLFxuICAgICAgICAgICAgLi4uaW5wdXRQcm9wc1RvRW52aXZlVHJhY2tpbmdQcm9wcyhwYXlsb2FkKSxcbiAgICAgICAgICAgIC4uLnJlc3BvbnNlQW5hbHl0aWNzLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBzZXRQZW5kaW5nUmVzcG9uc2UoZmFsc2UpO1xuICAgICAgICBzZXRSZXNwb25zZVN0cmVhbWluZyhmYWxzZSk7XG4gICAgICAgIC8vIGxvZ1BlcmZNZXRyaWMoUGVyZk1ldHJpY3NFdmVudHMuRmlyc3RSZXNwb25zZUNvbXBsZXRlZCk7XG4gICAgICB9XG4gICAgfSxcbiAgICBbXG4gICAgICBhbmFseXRpY3NDb250ZXh0LFxuICAgICAgdHJhY2tFdmVudCxcbiAgICAgIHNldFJlc3BvbnNlU3RyZWFtaW5nLFxuICAgICAgLy8gbG9nUGVyZk1ldHJpYyxcbiAgICAgIHNldFJlcXVlc3RGYWlsdXJlLFxuICAgICAgc2V0U3VnZ2VzdGlvbnMsXG4gICAgICBtZXNzYWdlSW50ZXJjZXB0b3IsXG4gICAgICBzZXRNZXNzYWdlcyxcbiAgICAgIHNldFBlbmRpbmdSZXNwb25zZSxcbiAgICBdLFxuICApO1xuXG4gIGNvbnN0IGdldFN1Z2dlc3Rpb25zID0gdXNlQ2FsbGJhY2soXG4gICAgYXN5bmMgKHBheWxvYWQ6IE5leHRNZXNzYWdlUmVxdWVzdCk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgY29uc3QgbmV3U3VnZ2VzdGlvbnMgPSBhd2FpdCBDb21tZXJjZUFwaUNsaWVudC5nZXROZXh0U3VnZ2VzdGlvbnMocGF5bG9hZCk7XG4gICAgICBzZXRTdWdnZXN0aW9ucyhuZXdTdWdnZXN0aW9ucyk7XG4gICAgfSxcbiAgICBbc2V0U3VnZ2VzdGlvbnNdLFxuICApO1xuXG4gIGNvbnN0IGh5ZHJhdGVNZXNzYWdlcyA9IHVzZUNhbGxiYWNrKGFzeW5jICgpID0+IHtcbiAgICBjb25zdCB7IG9yZ0lkLCBjaGF0SWQsIHVzZXJJZCB9ID0gY29udGV4dDtcbiAgICBjb25zdCB7IG1lc3NhZ2VzOiBleGlzdGluZ01lc3NhZ2VzIH0gPSBhd2FpdCBDb21tZXJjZUFwaUNsaWVudC5nZXRSZXNwb25zZXMoXG4gICAgICBvcmdJZCxcbiAgICAgIGNoYXRJZCxcbiAgICAgIHVzZXJJZCxcbiAgICApO1xuICAgIHNldE1lc3NhZ2VzKFsuLi5leGlzdGluZ01lc3NhZ2VzXSk7XG4gIH0sIFtjb250ZXh0LCBzZXRNZXNzYWdlc10pO1xuXG4gIHJldHVybiB7XG4gICAgY3JlYXRlUmVzcG9uc2VQYXlsb2FkLFxuICAgIGdldFN0cmVhbWluZ1Jlc3BvbnNlcyxcbiAgICBnZXRTdWdnZXN0aW9ucyxcbiAgICBoeWRyYXRlTWVzc2FnZXMsXG4gIH07XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFtQ0EsTUFBTSxTQUFTLElBQUlBLHVCQUFPLG9CQUFvQjtBQVk5QyxNQUFNLDZCQUNKLFlBQ3dDO0NBQ3hDLE1BQU0sQ0FBQyxhQUFhLFFBQVEsY0FBYyxFQUFFO0FBQzVDLEtBQUksVUFBVSxhQUFhQyxrREFBa0Isa0JBQzNDLFFBQU87RUFDTCxZQUFZLFVBQVU7RUFDdEIsaUJBQWlCO0VBQ2pCLFlBQVksVUFBVSxXQUFXO0VBQ2xDO0FBRUgsS0FBSSxVQUFVLGFBQWFBLGtEQUFrQixXQUMzQyxRQUFPO0VBQ0wsWUFBWSxVQUFVO0VBQ3RCLGlCQUFpQjtFQUNqQixZQUFZLFVBQVUsV0FBVztFQUNsQztBQUVILFFBQU8sRUFBRTs7QUFHWCxNQUFNLG1DQUNKLFlBQ3dDO0NBQ3hDLE1BQU0sQ0FBQyxhQUFhLFFBQVEsY0FBYyxFQUFFO0FBQzVDLEtBQUksVUFBVSxhQUFhQSxrREFBa0Isa0JBQzNDLFFBQU87RUFDTCxxQkFBcUI7RUFDckIsbUJBQW1CLFVBQVU7RUFDN0IscUJBQXFCLFVBQVUsV0FBVztFQUMxQyxzQkFBc0IsVUFBVSxXQUFXO0VBQzNDLG1CQUFtQjtFQUNwQjtBQUVILEtBQUksVUFBVSxhQUFhQSxrREFBa0IsV0FDM0MsUUFBTztFQUNMLHFCQUFxQjtFQUNyQixtQkFBbUIsVUFBVTtFQUM3QixxQkFBcUIsVUFBVSxXQUFXO0VBQzFD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
|
|
224
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FsZXNBZ2VudFNlcnZpY2UuY2pzIiwibmFtZXMiOlsiTG9nZ2VyIiwiVXNlckV2ZW50Q2F0ZWdvcnkiLCJTdGF0dXNDb2RlRXJyb3IiLCJNZXNzYWdlUm9sZSIsIk1lc3NhZ2VUeXBlIiwibGFzdE1lc3NhZ2U6IE1lc3NhZ2UgfCB1bmRlZmluZWQiLCJyZXNwb25zZUFuYWx5dGljczogUmVjb3JkPHN0cmluZywgbnVtYmVyIHwgc3RyaW5nW10+IiwibWVzc2FnZUZyb21SZXNwb25zZSIsImVycm9yOiB1bmtub3duIiwidXNlU2FsZXNBZ2VudFNlcnZpY2U6ICgpID0+IFNhbGVzQWdlbnRTZXJ2aWNlIiwicmVxdWVzdEZhaWx1cmVBdG9tIiwibWVzc2FnZXNBdG9tIiwic3VnZ2VzdGlvbnNBdG9tIiwicGVuZGluZ1Jlc3BvbnNlQXRvbSIsInJlc3BvbnNlU3RyZWFtaW5nQXRvbSIsImFuYWx5dGljc0NvbnRleHRBdG9tIiwidXNlTWVzc2FnZUludGVyY2VwdG9yIiwidXNlQW1wbGl0dWRlIiwidXNlRmVhdHVyZUZsYWdTZXJ2aWNlIiwiYXBwRGV0YWlsc0F0b20iLCJyZXNvbHZlZEJhc2VDb25maWdWZXJzaW9uQXRvbSIsInN1Y2Nlc3NmdWxSZXNwb25zZTogYm9vbGVhbiB8IHVuZGVmaW5lZCIsIkNvbW1lcmNlQXBpQ2xpZW50IiwicmVzcG9uc2VBbmFseXRpY3M6IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgdW5kZWZpbmVkIiwiU3BpZmZ5TWV0cmljc0V2ZW50TmFtZSIsIkVudml2ZU1ldHJpY3NFdmVudE5hbWUiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udGV4dHMvc2FsZXNBZ2VudENvbnRleHQvc2FsZXNBZ2VudFNlcnZpY2UudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVXNlckV2ZW50Q2F0ZWdvcnkgfSBmcm9tICdAc3BpZmZ5LWFpL2NvbW1lcmNlLWFwaS1jbGllbnQnO1xuaW1wb3J0IHsgdXNlQXRvbVZhbHVlLCB1c2VTZXRBdG9tIH0gZnJvbSAnam90YWknO1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2sgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgQ29tbWVyY2VBcGlDbGllbnQgZnJvbSAnc3JjL2FwcGxpY2F0aW9uL2NvbW1lcmNlLWFwaSc7XG5pbXBvcnQgTG9nZ2VyIGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9sb2dnaW5nL2xvZ2dlcic7XG5pbXBvcnQge1xuICBHZW5lcmF0aW9uUGFyYW1zLFxuICBNZXNzYWdlLFxuICBNZXNzYWdlUm9sZSxcbiAgTWVzc2FnZVR5cGUsXG4gIE5leHRNZXNzYWdlUmVxdWVzdCxcbiAgUmVzcG9uc2UsXG4gIFVzZXJFdmVudCxcbn0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscyc7XG5pbXBvcnQgeyBtZXNzYWdlRnJvbVJlc3BvbnNlIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL3V0aWxzJztcbmltcG9ydCB7IGFwcERldGFpbHNBdG9tIH0gZnJvbSAnc3JjL2F0b21zL2FwcCc7XG5pbXBvcnQgeyBhbmFseXRpY3NDb250ZXh0QXRvbSB9IGZyb20gJ3NyYy9hdG9tcy9hcHAvdmFyaWFudCc7XG5pbXBvcnQgeyByZXNvbHZlZEJhc2VDb25maWdWZXJzaW9uQXRvbSB9IGZyb20gJ3NyYy9hdG9tcy9lbnZpdmUvcmVzb2x2ZWRCYXNlQ29uZmlnVmVyc2lvbic7XG5pbXBvcnQge1xuICBtZXNzYWdlc0F0b20sXG4gIHBlbmRpbmdSZXNwb25zZUF0b20sXG4gIHJlcXVlc3RGYWlsdXJlQXRvbSxcbiAgcmVzcG9uc2VTdHJlYW1pbmdBdG9tLFxuICBzdWdnZXN0aW9uc0F0b20sXG59IGZyb20gJ3NyYy9hdG9tcy9jaGF0L2NoYXRTdGF0ZSc7XG5pbXBvcnQgeyB1c2VBbXBsaXR1ZGUgfSBmcm9tICdzcmMvY29udGV4dHMvYW1wbGl0dWRlQ29udGV4dCc7XG5pbXBvcnQgeyB1c2VGZWF0dXJlRmxhZ1NlcnZpY2UgfSBmcm9tICdzcmMvY29udGV4dHMvZmVhdHVyZUZsYWdTZXJ2aWNlQ29udGV4dCc7XG5pbXBvcnQgeyB1c2VNZXNzYWdlSW50ZXJjZXB0b3IgfSBmcm9tICdzcmMvaW50ZXJjZXB0b3JzL3VzZU1lc3NhZ2VJbnRlcmNlcHRvcic7XG5pbXBvcnQge1xuICBFbnZpdmVNZXRyaWNzRXZlbnROYW1lLFxuICBTcGlmZnlNZXRyaWNzRXZlbnROYW1lLFxufSBmcm9tICdzcmMvc2VydmljZXMvYW1wbGl0dWRlU2VydmljZS9hbXBsaXR1ZGVTZXJ2aWNlJztcbmltcG9ydCB7IHY0IGFzIHV1aWQgfSBmcm9tICd1dWlkJztcblxuaW1wb3J0IHsgU3RhdHVzQ29kZUVycm9yIH0gZnJvbSAnLi9zdGF0dXNDb2RlRXJyb3InO1xuXG5jb25zdCBsb2dnZXIgPSBuZXcgTG9nZ2VyKCdzYWxlc0FnZW50U2VydmljZScpO1xuXG5pbnRlcmZhY2UgU2FsZXNBZ2VudFNlcnZpY2Uge1xuICBjcmVhdGVSZXNwb25zZVBheWxvYWQ6IChwYXlsb2FkOiB7XG4gICAgdXNlckV2ZW50czogVXNlckV2ZW50W107XG4gICAgZ2VuZXJhdGlvblBhcmFtcz86IEdlbmVyYXRpb25QYXJhbXM7XG4gIH0pID0+IE5leHRNZXNzYWdlUmVxdWVzdDtcbiAgZ2V0U3RyZWFtaW5nUmVzcG9uc2VzOiAocGF5bG9hZDogTmV4dE1lc3NhZ2VSZXF1ZXN0KSA9PiBQcm9taXNlPHZvaWQ+O1xuICBnZXRTdWdnZXN0aW9uczogKHBheWxvYWQ6IE5leHRNZXNzYWdlUmVxdWVzdCkgPT4gUHJvbWlzZTx2b2lkPjtcbiAgaHlkcmF0ZU1lc3NhZ2VzOiAoKSA9PiBQcm9taXNlPHZvaWQ+O1xufVxuXG5jb25zdCBpbnB1dFByb3BzVG9UcmFja2luZ1Byb3BzID0gKFxuICBwYXlsb2FkOiBOZXh0TWVzc2FnZVJlcXVlc3QsXG4pOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IHVuZGVmaW5lZCA9PiB7XG4gIGNvbnN0IFt1c2VyRXZlbnRdID0gcGF5bG9hZC51c2VyRXZlbnRzIHx8IFtdO1xuICBpZiAodXNlckV2ZW50LmNhdGVnb3J5ID09PSBVc2VyRXZlbnRDYXRlZ29yeS5TdWdnZXN0aW9uQ2xpY2tlZCkge1xuICAgIHJldHVybiB7XG4gICAgICBtZXNzYWdlX2lkOiB1c2VyRXZlbnQuZXZlbnRJZCxcbiAgICAgIHVzZXJfZXZlbnRfdHlwZTogJ3N1Z2dlc3Rpb25fY2xpY2tlZCcsXG4gICAgICB1c2VyX3F1ZXJ5OiB1c2VyRXZlbnQuYXR0cmlidXRlcy5jb250ZW50LFxuICAgIH07XG4gIH1cbiAgaWYgKHVzZXJFdmVudC5jYXRlZ29yeSA9PT0gVXNlckV2ZW50Q2F0ZWdvcnkuUXVlcnlUeXBlZCkge1xuICAgIHJldHVybiB7XG4gICAgICBtZXNzYWdlX2lkOiB1c2VyRXZlbnQuZXZlbnRJZCxcbiAgICAgIHVzZXJfZXZlbnRfdHlwZTogJ3F1ZXJ5X3R5cGVkJyxcbiAgICAgIHVzZXJfcXVlcnk6IHVzZXJFdmVudC5hdHRyaWJ1dGVzLnF1ZXJ5LFxuICAgIH07XG4gIH1cbiAgcmV0dXJuIHt9O1xufTtcblxuY29uc3QgaW5wdXRQcm9wc1RvRW52aXZlVHJhY2tpbmdQcm9wcyA9IChcbiAgcGF5bG9hZDogTmV4dE1lc3NhZ2VSZXF1ZXN0LFxuKTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfCB1bmRlZmluZWQgPT4ge1xuICBjb25zdCBbdXNlckV2ZW50XSA9IHBheWxvYWQudXNlckV2ZW50cyB8fCBbXTtcbiAgaWYgKHVzZXJFdmVudC5jYXRlZ29yeSA9PT0gVXNlckV2ZW50Q2F0ZWdvcnkuU3VnZ2VzdGlvbkNsaWNrZWQpIHtcbiAgICByZXR1cm4ge1xuICAgICAgJ2NoYXQucmVxdWVzdF90eXBlJzogJ3N1Z2dlc3Rpb24nLFxuICAgICAgJ2NoYXQucmVxdWVzdF9pZCc6IHVzZXJFdmVudC5ldmVudElkLFxuICAgICAgJ2NoYXQucmVxdWVzdF90ZXh0JzogdXNlckV2ZW50LmF0dHJpYnV0ZXMuY29udGVudCxcbiAgICAgICdjaGF0LnN1Z2dlc3Rpb25faWQnOiB1c2VyRXZlbnQuYXR0cmlidXRlcy5zdWdnZXN0aW9uSWQsXG4gICAgICAnY2hhdC51c2VyX3R5cGVkJzogZmFsc2UsXG4gICAgfTtcbiAgfVxuICBpZiAodXNlckV2ZW50LmNhdGVnb3J5ID09PSBVc2VyRXZlbnRDYXRlZ29yeS5RdWVyeVR5cGVkKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICdjaGF0LnJlcXVlc3RfdHlwZSc6ICd0ZXh0JyxcbiAgICAgICdjaGF0LnJlcXVlc3RfaWQnOiB1c2VyRXZlbnQuZXZlbnRJZCxcbiAgICAgICdjaGF0LnJlcXVlc3RfdGV4dCc6IHVzZXJFdmVudC5hdHRyaWJ1dGVzLnF1ZXJ5LFxuICAgICAgJ2NoYXQudXNlcl90eXBlZCc6IHVzZXJFdmVudC5hdHRyaWJ1dGVzLnVzZXJUeXBlZCxcbiAgICB9O1xuICB9XG4gIGlmIChcbiAgICB1c2VyRXZlbnQuY2F0ZWdvcnkgPT09IFVzZXJFdmVudENhdGVnb3J5LlBhZ2VWaXNpdCB8fFxuICAgIHVzZXJFdmVudC5jYXRlZ29yeSA9PT0gVXNlckV2ZW50Q2F0ZWdvcnkuUGRwVmlzaXQgfHxcbiAgICB1c2VyRXZlbnQuY2F0ZWdvcnkgPT09IFVzZXJFdmVudENhdGVnb3J5LlBscFZpc2l0XG4gICkge1xuICAgIHJldHVybiB7XG4gICAgICAnY2hhdC5yZXF1ZXN0X2lkJzogdXNlckV2ZW50LmV2ZW50SWQsXG4gICAgICAnY2hhdC5yZXF1ZXN0X3R5cGUnOiAncGFnZV92aXNpdCcsXG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiB7fTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRRdWVyeVBhcmFtID0gKGtleTogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCA9PiB7XG4gIGNvbnN0IHVybE9iaiA9IG5ldyBVUkwod2luZG93LmxvY2F0aW9uLmhyZWYpO1xuICByZXR1cm4gdXJsT2JqLnNlYXJjaFBhcmFtcy5nZXQoa2V5KTtcbn07XG5cbmNvbnN0IGdldEVycm9yTWVzc2FnZSA9IChfZXJyb3I6IHVua25vd24pOiBzdHJpbmcgPT4ge1xuICBpZiAoX2Vycm9yIGluc3RhbmNlb2YgU3RhdHVzQ29kZUVycm9yKSB7XG4gICAgaWYgKF9lcnJvci5zdGF0dXNDb2RlID09PSA0MjMpIHtcbiAgICAgIHJldHVybiAnRHVlIHRvIHZpb2xhdGlvbiBvZiB0ZXJtcyBhbmQgc2VydmljZXMsIHRoaXMgc2Vzc2lvbiBoYXMgYmVlbiB0ZXJtaW5hdGVkLic7XG4gICAgfVxuICAgIC8vIEtlZXBpbmcgdGhlIDQyOSBlcnJvciBtZXNzYWdlcyBhcyB0aGUgZ2VuZXJpYyBlcnJvciBtZXNzYWdlIGZvciBub3cuXG4gICAgLy8gaWYgKF9lcnJvci5zdGF0dXNDb2RlID09PSA0MjkpIHtcbiAgICAvLyAgIHJldHVybiBcIkknbSBzb3JyeSEgVGhlIHN5c3RlbSBpcyBidXN5IHJpZ2h0IG5vdy4gUGxlYXNlIHRyeSBhZ2FpbiBpbiBhIGZldyBtaW51dGVzLlwiO1xuICAgIC8vIH1cbiAgfVxuXG4gIHJldHVybiBcIkknbSBzb3JyeSEgSSdtIGhhdmluZyB0cm91YmxlIHJpZ2h0IG5vdy4gUGxlYXNlIHJlZnJlc2ggdGhlIHBhZ2Ugb3IgdHJ5IGFnYWluIGluIGEgbW9tZW50LlwiO1xufTtcblxuY29uc3QgaGFuZGxlU3RyZWFtaW5nRXJyb3IgPSAoXG4gIF9lcnJvcjogdW5rbm93bixcbiAgc2V0UmVxdWVzdEZhaWx1cmU6IChmYWlsZWQ6IGJvb2xlYW4pID0+IHZvaWQsXG4gIHNldE1lc3NhZ2VzOiAodXBkYXRlcjogKHByZXY6IE1lc3NhZ2VbXVtdKSA9PiBNZXNzYWdlW11bXSkgPT4gdm9pZCxcbikgPT4ge1xuICBzZXRSZXF1ZXN0RmFpbHVyZSh0cnVlKTtcblxuICBjb25zdCBlcnJvck1lc3NhZ2UgPSBnZXRFcnJvck1lc3NhZ2UoX2Vycm9yKTtcbiAgc2V0TWVzc2FnZXMocHJldiA9PiBbXG4gICAgLi4ucHJldixcbiAgICBbXG4gICAgICB7XG4gICAgICAgIGlkOiB1dWlkKCksXG4gICAgICAgIHJvbGU6IE1lc3NhZ2VSb2xlLkFzc2lzdGFudCxcbiAgICAgICAgdHlwZTogTWVzc2FnZVR5cGUuVGV4dCxcbiAgICAgICAgY3JlYXRlZEF0OiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gICAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgICAgY29udGVudDogZXJyb3JNZXNzYWdlLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICBdLFxuICBdKTtcbn07XG5cbmNvbnN0IHVwZGF0ZU1lc3NhZ2VTdGF0ZSA9IChcbiAgbWVzc2FnZTogTWVzc2FnZSxcbiAgbGFzdE1lc3NhZ2U6IE1lc3NhZ2UsXG4gIHNldE1lc3NhZ2VzOiAodXBkYXRlcjogKHByZXY6IE1lc3NhZ2VbXVtdKSA9PiBNZXNzYWdlW11bXSkgPT4gdm9pZCxcbik6IE1lc3NhZ2UgPT4ge1xuICBpZiAobGFzdE1lc3NhZ2UgPT0gbnVsbCkge1xuICAgIHNldE1lc3NhZ2VzKHByZXYgPT4gWy4uLnByZXYsIFttZXNzYWdlXV0pO1xuICAgIHJldHVybiBtZXNzYWdlO1xuICB9XG4gIGlmIChsYXN0TWVzc2FnZS50eXBlID09PSBNZXNzYWdlVHlwZS5UZXh0ICYmIG1lc3NhZ2UudHlwZSA9PT0gTWVzc2FnZVR5cGUuVGV4dCkge1xuICAgIGNvbnN0IG5ld01lc3NhZ2UgPSB7XG4gICAgICAuLi5sYXN0TWVzc2FnZSxcbiAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgIC4uLmxhc3RNZXNzYWdlLm1ldGFkYXRhLFxuICAgICAgICBjb250ZW50OiBsYXN0TWVzc2FnZS5tZXRhZGF0YS5jb250ZW50ICsgbWVzc2FnZS5tZXRhZGF0YS5jb250ZW50LFxuICAgICAgfSxcbiAgICB9O1xuICAgIHNldE1lc3NhZ2VzKHByZXYgPT4ge1xuICAgICAgY29uc3QgbGFzdFR1cm4gPSBwcmV2W3ByZXYubGVuZ3RoIC0gMV07XG4gICAgICByZXR1cm4gW1xuICAgICAgICAuLi5wcmV2LnNsaWNlKDAsIHByZXYubGVuZ3RoIC0gMSksXG4gICAgICAgIFsuLi5sYXN0VHVybi5zbGljZSgwLCBsYXN0VHVybi5sZW5ndGggLSAxKSwgbmV3TWVzc2FnZV0sXG4gICAgICBdO1xuICAgIH0pO1xuICAgIHJldHVybiBuZXdNZXNzYWdlO1xuICB9XG4gIHNldE1lc3NhZ2VzKHByZXYgPT4gWy4uLnByZXYuc2xpY2UoMCwgcHJldi5sZW5ndGggLSAxKSwgWy4uLnByZXZbcHJldi5sZW5ndGggLSAxXSwgbWVzc2FnZV1dKTtcbiAgcmV0dXJuIG1lc3NhZ2U7XG59O1xuXG5jb25zdCBwcm9jZXNzU3RyZWFtaW5nUmVzcG9uc2UgPSBhc3luYyAoXG4gIHN0cmVhbTogQXN5bmNJdGVyYWJsZTxSZXNwb25zZT4sXG4gIG1lc3NhZ2VJbnRlcmNlcHRvcjogeyBpbnRlcmNlcHQ6IChyZXNwb25zZT86IFJlc3BvbnNlKSA9PiBib29sZWFuIHwgdW5kZWZpbmVkIH0sXG4gIHNldE1lc3NhZ2VzOiAodXBkYXRlcjogKHByZXY6IE1lc3NhZ2VbXVtdKSA9PiBNZXNzYWdlW11bXSkgPT4gdm9pZCxcbiAgc2V0UmVzcG9uc2VTdHJlYW1pbmc6IChyZXNwb25zZVN0cmVhbWluZzogYm9vbGVhbikgPT4gdm9pZCxcbik6IFByb21pc2U8UmVjb3JkPHN0cmluZywgbnVtYmVyIHwgc3RyaW5nW10+PiA9PiB7XG4gIGxldCBsYXN0TWVzc2FnZTogTWVzc2FnZSB8IHVuZGVmaW5lZDtcbiAgc2V0UmVzcG9uc2VTdHJlYW1pbmcodHJ1ZSk7XG4gIGNvbnN0IHJlc3BvbnNlQW5hbHl0aWNzOiBSZWNvcmQ8c3RyaW5nLCBudW1iZXIgfCBzdHJpbmdbXT4gPSB7fTtcbiAgY29uc3QgcHJvZHVjdElkcyA9IFtdO1xuXG4gIGZvciBhd2FpdCAoY29uc3QgcmVzcG9uc2Ugb2Ygc3RyZWFtKSB7XG4gICAgdHJ5IHtcbiAgICAgIGlmIChtZXNzYWdlSW50ZXJjZXB0b3IuaW50ZXJjZXB0KHJlc3BvbnNlKSkge1xuICAgICAgICByZXR1cm4ge307XG4gICAgICB9XG5cbiAgICAgIGlmICghcmVzcG9uc2UpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyByZXNwb25zZSBmcm9tIHN0cmVhbScpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBtZXNzYWdlID0gbWVzc2FnZUZyb21SZXNwb25zZShyZXNwb25zZSk7XG4gICAgICBpZiAoIW1lc3NhZ2UpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdGYWlsZWQgdG8gdHJhbnNmb3JtIEFQSSByZXNwb25zZSB0byBjbGllbnQgbWVzc2FnZScpO1xuICAgICAgfVxuICAgICAgaWYgKG1lc3NhZ2UudHlwZSA9PT0gTWVzc2FnZVR5cGUuUHJvZHVjdCkge1xuICAgICAgICBjb25zdCBjYXJkc0NvdW50ZXIgPSAocmVzcG9uc2VBbmFseXRpY3NbJ2NoYXQucHJvZHVjdF9jYXJkc19yZXR1cm5lZCddIGFzIG51bWJlcikgfHwgMDtcbiAgICAgICAgcmVzcG9uc2VBbmFseXRpY3NbJ2NoYXQucHJvZHVjdF9jYXJkc19yZXR1cm5lZCddID0gY2FyZHNDb3VudGVyICsgMTtcblxuICAgICAgICBjb25zdCBwcm9kdWN0SWRzID0gcmVzcG9uc2VBbmFseXRpY3NbJ2NoYXQucHJvZHVjdF9pZHNfcmV0dXJuZWQnXSBhcyBzdHJpbmdbXTtcbiAgICAgICAgaWYgKCFwcm9kdWN0SWRzKSB7XG4gICAgICAgICAgcmVzcG9uc2VBbmFseXRpY3NbJ2NoYXQucHJvZHVjdF9pZHNfcmV0dXJuZWQnXSA9IFttZXNzYWdlLm1ldGFkYXRhLmlkXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwcm9kdWN0SWRzLnB1c2gobWVzc2FnZS5tZXRhZGF0YS5pZCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChtZXNzYWdlLnR5cGUgPT09IE1lc3NhZ2VUeXBlLlJldmlldykge1xuICAgICAgICBjb25zdCBjYXJkc0NvdW50ZXIgPSAocmVzcG9uc2VBbmFseXRpY3NbJ2NoYXQucmV2aWV3X2NhcmRzX3JldHVybmVkJ10gYXMgbnVtYmVyKSB8fCAwO1xuICAgICAgICByZXNwb25zZUFuYWx5dGljc1snY2hhdC5yZXZpZXdfY2FyZHNfcmV0dXJuZWQnXSA9IGNhcmRzQ291bnRlciArIDE7XG4gICAgICB9XG5cbiAgICAgIC8vIE5vIHN1cHBvcnQgZm9yIENoYXRTZWFyY2ggbWVzc2FnZXMgYXQgdGhlIGN1cnJlbnQgdGltZS5cbiAgICAgIC8vIFBlcmhhcHMgd2UgYWRkIHN1cHBvcnQgYmFjayBpbiB0aGUgZnV0dXJlXG4gICAgICAvLyBpZiAobWVzc2FnZS50eXBlID09PSBNZXNzYWdlVHlwZS5Qcm9kdWN0U2VhcmNoKSB7XG4gICAgICAvLyAgIGhhbmRsZVNlYXJjaFJlc3VsdHMobWVzc2FnZSk7XG4gICAgICAvLyAgIGhhc1NlYXJjaFJlc3VsdHMgPSB0cnVlO1xuICAgICAgLy8gICBzZXRTZWFyY2hJc0xvYWRpbmcoZmFsc2UpOyAvLyBVcGRhdGUgc2VhcmNoIGxvYWRpbmcgaW1tZWRpYXRlbHkgd2hlbiByZXN1bHRzIGFyZSBkZXRlY3RlZFxuICAgICAgLy8gfVxuXG4gICAgICBsYXN0TWVzc2FnZSA9IHVwZGF0ZU1lc3NhZ2VTdGF0ZShtZXNzYWdlLCBsYXN0TWVzc2FnZSEsIHNldE1lc3NhZ2VzKTtcbiAgICB9IGNhdGNoIChlcnJvcjogdW5rbm93bikge1xuICAgICAgbG9nZ2VyLmxvZ1dhcm4oJ0ZhaWxlZCB0byBnZW5lcmF0ZSByZXNwb25zZXMgZnJvbSBzdHJlYW0nLCBlcnJvciwge1xuICAgICAgICBsYXN0UmVzcG9uc2U6IGxhc3RNZXNzYWdlLFxuICAgICAgICByZXNwb25zZSxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBzZXRSZXNwb25zZVN0cmVhbWluZyhmYWxzZSk7XG4gIH1cbiAgcmV0dXJuIHJlc3BvbnNlQW5hbHl0aWNzO1xufTtcblxuZXhwb3J0IGNvbnN0IHVzZVNhbGVzQWdlbnRTZXJ2aWNlOiAoKSA9PiBTYWxlc0FnZW50U2VydmljZSA9ICgpID0+IHtcbiAgY29uc3Qgc2V0UmVxdWVzdEZhaWx1cmUgPSB1c2VTZXRBdG9tKHJlcXVlc3RGYWlsdXJlQXRvbSk7XG4gIGNvbnN0IHNldE1lc3NhZ2VzID0gdXNlU2V0QXRvbShtZXNzYWdlc0F0b20pO1xuICBjb25zdCBzZXRTdWdnZXN0aW9ucyA9IHVzZVNldEF0b20oc3VnZ2VzdGlvbnNBdG9tKTtcbiAgY29uc3Qgc2V0UGVuZGluZ1Jlc3BvbnNlID0gdXNlU2V0QXRvbShwZW5kaW5nUmVzcG9uc2VBdG9tKTtcbiAgY29uc3Qgc2V0UmVzcG9uc2VTdHJlYW1pbmcgPSB1c2VTZXRBdG9tKHJlc3BvbnNlU3RyZWFtaW5nQXRvbSk7XG4gIGNvbnN0IGFuYWx5dGljc0NvbnRleHQgPSB1c2VBdG9tVmFsdWUoYW5hbHl0aWNzQ29udGV4dEF0b20pO1xuICBjb25zdCBtZXNzYWdlSW50ZXJjZXB0b3IgPSB1c2VNZXNzYWdlSW50ZXJjZXB0b3IoKTtcbiAgY29uc3QgeyB0cmFja0V2ZW50IH0gPSB1c2VBbXBsaXR1ZGUoKTtcblxuICBjb25zdCBmZWF0dXJlRmxhZ1NlcnZpY2UgPSB1c2VGZWF0dXJlRmxhZ1NlcnZpY2UoKTtcbiAgY29uc3QgY29udGV4dCA9IHVzZUF0b21WYWx1ZShhcHBEZXRhaWxzQXRvbSk7XG4gIGNvbnN0IHJlc29sdmVkQmFzZUNvbmZpZ1ZlcnNpb24gPSB1c2VBdG9tVmFsdWUocmVzb2x2ZWRCYXNlQ29uZmlnVmVyc2lvbkF0b20pO1xuXG4gIGNvbnN0IGNyZWF0ZVJlc3BvbnNlUGF5bG9hZCA9IHVzZUNhbGxiYWNrKFxuICAgICh7XG4gICAgICB1c2VyRXZlbnRzLFxuICAgICAgZ2VuZXJhdGlvblBhcmFtcyxcbiAgICB9OiB7XG4gICAgICB1c2VyRXZlbnRzOiBVc2VyRXZlbnRbXTtcbiAgICAgIGdlbmVyYXRpb25QYXJhbXM/OiBHZW5lcmF0aW9uUGFyYW1zO1xuICAgIH0pOiBOZXh0TWVzc2FnZVJlcXVlc3QgPT4ge1xuICAgICAgY29uc3QgZmVhdHVyZUZsYWdzID0gZmVhdHVyZUZsYWdTZXJ2aWNlPy5mZWF0dXJlRmxhZ1NlcnZpY2U/LmdldEZlYXR1cmVGbGFncygpIHx8IHt9O1xuXG4gICAgICBjb25zdCBvdmVycmlkZUNvbmZpZ1ZlcnNpb24gPVxuICAgICAgICBnZXRRdWVyeVBhcmFtKCdzcGlmZnlfY29uZmlnX3ZlcnNpb24nKSB8fFxuICAgICAgICBnZXRRdWVyeVBhcmFtKCdlbnZpdmVfY29uZmlnX3ZlcnNpb24nKSB8fFxuICAgICAgICByZXNvbHZlZEJhc2VDb25maWdWZXJzaW9uIHx8XG4gICAgICAgIHVuZGVmaW5lZDtcbiAgICAgIGNvbnN0IG92ZXJyaWRlTW9kZWxEYXRldGltZSA9IGdldFF1ZXJ5UGFyYW0oJ292ZXJyaWRlX21vZGVsX2RhdGV0aW1lJykgfHwgdW5kZWZpbmVkO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaWQ6IHV1aWQoKSxcbiAgICAgICAgY29udGV4dCxcbiAgICAgICAgdXNlckV2ZW50cyxcbiAgICAgICAgZmVhdHVyZUZsYWdzLFxuICAgICAgICBnZW5lcmF0aW9uUGFyYW1zLFxuICAgICAgICBvdmVycmlkZUNvbmZpZ1ZlcnNpb24sXG4gICAgICAgIG92ZXJyaWRlTW9kZWxEYXRldGltZSxcbiAgICAgIH07XG4gICAgfSxcbiAgICBbY29udGV4dCwgZmVhdHVyZUZsYWdTZXJ2aWNlPy5mZWF0dXJlRmxhZ1NlcnZpY2UsIHJlc29sdmVkQmFzZUNvbmZpZ1ZlcnNpb25dLFxuICApO1xuXG4gIGNvbnN0IGdldFN0cmVhbWluZ1Jlc3BvbnNlcyA9IHVzZUNhbGxiYWNrKFxuICAgIGFzeW5jIChwYXlsb2FkOiBOZXh0TWVzc2FnZVJlcXVlc3QpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAgIGNvbnN0IHN0YXJ0VGltZSA9IERhdGUubm93KCk7XG4gICAgICBsZXQgc3VjY2Vzc2Z1bFJlc3BvbnNlOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAgICAgc2V0UGVuZGluZ1Jlc3BvbnNlKHRydWUpO1xuICAgICAgc2V0U3VnZ2VzdGlvbnMoW10pO1xuICAgICAgY29uc3Qgc3RyZWFtID0gQ29tbWVyY2VBcGlDbGllbnQuZ2V0TmV4dFJlc3BvbnNlU3RyZWFtaW5nKHBheWxvYWQpO1xuICAgICAgbGV0IHJlc3BvbnNlQW5hbHl0aWNzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IHVuZGVmaW5lZDtcbiAgICAgIHRyeSB7XG4gICAgICAgIHNldFJlcXVlc3RGYWlsdXJlKGZhbHNlKTtcblxuICAgICAgICByZXNwb25zZUFuYWx5dGljcyA9IGF3YWl0IHByb2Nlc3NTdHJlYW1pbmdSZXNwb25zZShcbiAgICAgICAgICBzdHJlYW0sXG4gICAgICAgICAgbWVzc2FnZUludGVyY2VwdG9yLFxuICAgICAgICAgIHNldE1lc3NhZ2VzLFxuICAgICAgICAgIHNldFJlc3BvbnNlU3RyZWFtaW5nLFxuICAgICAgICApO1xuICAgICAgICBzdWNjZXNzZnVsUmVzcG9uc2UgPSB0cnVlO1xuXG4gICAgICAgIC8vIFRPRE86IEFkZCBzdXBwb3J0IGZvciB0aGUgQ2hyb21lIEV4dGVuc2lvbiBjb21tdW5pY2F0aW9uXG4gICAgICAgIC8vIGF3YWl0IGxvZ0J1bmRsZUV2ZW50KHtcbiAgICAgICAgLy8gICBsZXZlbDogJ2luZm8nLFxuICAgICAgICAvLyAgIGV2ZW50OiAnTkVYVF9SRVNQT05TRV9TVUNDRVNTJyxcbiAgICAgICAgLy8gICBjb250ZXh0OiB7XG4gICAgICAgIC8vICAgICB0eXBlOiAnbmV4dF9yZXNwb25zZXMnLFxuICAgICAgICAvLyAgICAgZW5kcG9pbnQ6ICcvdjEvbmV4dF9yZXNwb25zZXMnLFxuICAgICAgICAvLyAgICAgc3RhdHVzQ29kZTogMjAwLFxuICAgICAgICAvLyAgICAgcmVzcG9uc2VUaW1lLFxuICAgICAgICAvLyAgIH0sXG4gICAgICAgIC8vIH0pO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdlcnJvciBnZXR0aW5nIHN0cmVhbWluZyByZXNwb25zZXMnLCBlKTtcbiAgICAgICAgc3VjY2Vzc2Z1bFJlc3BvbnNlID0gZmFsc2U7XG4gICAgICAgIC8vIExvZyBmYWlsZWQgbmV4dF9yZXNwb25zZXMgY2FsbFxuICAgICAgICAvLyBjb25zdCByZXNwb25zZVRpbWUgPSBEYXRlLm5vdygpIC0gc3RhcnRUaW1lO1xuICAgICAgICAvLyBhd2FpdCBsb2dCdW5kbGVFdmVudCh7XG4gICAgICAgIC8vICAgbGV2ZWw6ICdlcnJvcicsXG4gICAgICAgIC8vICAgZXZlbnQ6ICdORVhUX1JFU1BPTlNFX0ZBSUxFRCcsXG4gICAgICAgIC8vICAgbWVzc2FnZTogYEZhaWxlZCB0byBnZXQgc3RyZWFtaW5nIHJlc3BvbnNlOiAke2V9YCxcbiAgICAgICAgLy8gICBjb250ZXh0OiB7XG4gICAgICAgIC8vICAgICB0eXBlOiAnbmV4dF9yZXNwb25zZXMnLFxuICAgICAgICAvLyAgICAgZW5kcG9pbnQ6ICcvdjEvbmV4dF9yZXNwb25zZXMnLFxuICAgICAgICAvLyAgICAgcmVzcG9uc2VUaW1lLFxuICAgICAgICAvLyAgICAgZXJyb3I6IGUgaW5zdGFuY2VvZiBFcnJvciA/IGUubWVzc2FnZSA6IFN0cmluZyhlKSxcbiAgICAgICAgLy8gICB9LFxuICAgICAgICAvLyB9KTtcblxuICAgICAgICBoYW5kbGVTdHJlYW1pbmdFcnJvcihlLCBzZXRSZXF1ZXN0RmFpbHVyZSwgc2V0TWVzc2FnZXMpO1xuICAgICAgICB0aHJvdyBlO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgLy8gTG9nIG5leHRfcmVzcG9uc2VzIGNhbGxcbiAgICAgICAgY29uc3QgcmVzcG9uc2VUaW1lID0gRGF0ZS5ub3coKSAtIHN0YXJ0VGltZTtcbiAgICAgICAgdHJhY2tFdmVudCh7XG4gICAgICAgICAgZXZlbnROYW1lOiBTcGlmZnlNZXRyaWNzRXZlbnROYW1lLkNoYXRBc3Npc3RhbnRSZXNwb25zZSxcbiAgICAgICAgICBldmVudFByb3BzOiB7XG4gICAgICAgICAgICByZXNwb25zZVRpbWVNczogcmVzcG9uc2VUaW1lLnRvU3RyaW5nKCksXG4gICAgICAgICAgICBzdWNjZXNzZnVsX3Jlc3BvbnNlOiBzdWNjZXNzZnVsUmVzcG9uc2UsXG4gICAgICAgICAgICAuLi5pbnB1dFByb3BzVG9UcmFja2luZ1Byb3BzKHBheWxvYWQpLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgICB0cmFja0V2ZW50KHtcbiAgICAgICAgICBldmVudE5hbWU6IEVudml2ZU1ldHJpY3NFdmVudE5hbWUuQ2hhdFJlc3BvbnNlLFxuICAgICAgICAgIGV2ZW50UHJvcHM6IHtcbiAgICAgICAgICAgIC4uLmFuYWx5dGljc0NvbnRleHQsXG4gICAgICAgICAgICAnY2hhdC5yZXNwb25zZV90aW1lX21zJzogcmVzcG9uc2VUaW1lLnRvU3RyaW5nKCksXG4gICAgICAgICAgICAuLi5pbnB1dFByb3BzVG9FbnZpdmVUcmFja2luZ1Byb3BzKHBheWxvYWQpLFxuICAgICAgICAgICAgLi4ucmVzcG9uc2VBbmFseXRpY3MsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIHNldFBlbmRpbmdSZXNwb25zZShmYWxzZSk7XG4gICAgICAgIHNldFJlc3BvbnNlU3RyZWFtaW5nKGZhbHNlKTtcbiAgICAgICAgLy8gbG9nUGVyZk1ldHJpYyhQZXJmTWV0cmljc0V2ZW50cy5GaXJzdFJlc3BvbnNlQ29tcGxldGVkKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIFtcbiAgICAgIGFuYWx5dGljc0NvbnRleHQsXG4gICAgICB0cmFja0V2ZW50LFxuICAgICAgc2V0UmVzcG9uc2VTdHJlYW1pbmcsXG4gICAgICAvLyBsb2dQZXJmTWV0cmljLFxuICAgICAgc2V0UmVxdWVzdEZhaWx1cmUsXG4gICAgICBzZXRTdWdnZXN0aW9ucyxcbiAgICAgIG1lc3NhZ2VJbnRlcmNlcHRvcixcbiAgICAgIHNldE1lc3NhZ2VzLFxuICAgICAgc2V0UGVuZGluZ1Jlc3BvbnNlLFxuICAgIF0sXG4gICk7XG5cbiAgY29uc3QgZ2V0U3VnZ2VzdGlvbnMgPSB1c2VDYWxsYmFjayhcbiAgICBhc3luYyAocGF5bG9hZDogTmV4dE1lc3NhZ2VSZXF1ZXN0KTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgICBjb25zdCBuZXdTdWdnZXN0aW9ucyA9IGF3YWl0IENvbW1lcmNlQXBpQ2xpZW50LmdldE5leHRTdWdnZXN0aW9ucyhwYXlsb2FkKTtcbiAgICAgIHNldFN1Z2dlc3Rpb25zKG5ld1N1Z2dlc3Rpb25zKTtcbiAgICB9LFxuICAgIFtzZXRTdWdnZXN0aW9uc10sXG4gICk7XG5cbiAgY29uc3QgaHlkcmF0ZU1lc3NhZ2VzID0gdXNlQ2FsbGJhY2soYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHsgb3JnSWQsIGNoYXRJZCwgdXNlcklkIH0gPSBjb250ZXh0O1xuICAgIGNvbnN0IHsgbWVzc2FnZXM6IGV4aXN0aW5nTWVzc2FnZXMgfSA9IGF3YWl0IENvbW1lcmNlQXBpQ2xpZW50LmdldFJlc3BvbnNlcyhcbiAgICAgIG9yZ0lkLFxuICAgICAgY2hhdElkLFxuICAgICAgdXNlcklkLFxuICAgICk7XG4gICAgc2V0TWVzc2FnZXMoWy4uLmV4aXN0aW5nTWVzc2FnZXNdKTtcbiAgfSwgW2NvbnRleHQsIHNldE1lc3NhZ2VzXSk7XG5cbiAgcmV0dXJuIHtcbiAgICBjcmVhdGVSZXNwb25zZVBheWxvYWQsXG4gICAgZ2V0U3RyZWFtaW5nUmVzcG9uc2VzLFxuICAgIGdldFN1Z2dlc3Rpb25zLFxuICAgIGh5ZHJhdGVNZXNzYWdlcyxcbiAgfTtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFvQ0EsTUFBTSxTQUFTLElBQUlBLHVCQUFPLG9CQUFvQjtBQVk5QyxNQUFNLDZCQUNKLFlBQ3dDO0NBQ3hDLE1BQU0sQ0FBQyxhQUFhLFFBQVEsY0FBYyxFQUFFO0FBQzVDLEtBQUksVUFBVSxhQUFhQyxrREFBa0Isa0JBQzNDLFFBQU87RUFDTCxZQUFZLFVBQVU7RUFDdEIsaUJBQWlCO0VBQ2pCLFlBQVksVUFBVSxXQUFXO0VBQ2xDO0FBRUgsS0FBSSxVQUFVLGFBQWFBLGtEQUFrQixXQUMzQyxRQUFPO0VBQ0wsWUFBWSxVQUFVO0VBQ3RCLGlCQUFpQjtFQUNqQixZQUFZLFVBQVUsV0FBVztFQUNsQztBQUVILFFBQU8sRUFBRTs7QUFHWCxNQUFNLG1DQUNKLFlB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
|