@envive-ai/react-hooks 0.3.22 → 0.3.24
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/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/atoms/app/index.d.ts +7 -7
- package/dist/atoms/app/variant.d.cts +6 -6
- package/dist/atoms/app/variant.d.ts +6 -6
- package/dist/atoms/chat/chatState.cjs +3 -1
- package/dist/atoms/chat/chatState.d.cts +22 -19
- package/dist/atoms/chat/chatState.d.ts +22 -19
- package/dist/atoms/chat/chatState.js +3 -2
- package/dist/atoms/chat/form.d.cts +3 -3
- package/dist/atoms/chat/form.d.ts +2 -2
- package/dist/atoms/chat/index.cjs +1 -0
- package/dist/atoms/chat/index.d.cts +2 -2
- package/dist/atoms/chat/index.d.ts +4 -4
- package/dist/atoms/chat/index.js +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/replies.d.ts +2 -2
- 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 +13 -13
- package/dist/atoms/envive/enviveConfig.d.ts +13 -13
- 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/newOrgConfigAtom.d.cts +2 -2
- package/dist/atoms/org/newOrgConfigAtom.d.ts +2 -2
- package/dist/atoms/org/orgAnalyticsConfig.d.cts +5 -5
- package/dist/atoms/org/orgAnalyticsConfig.d.ts +5 -5
- package/dist/atoms/search/chatSearch.d.cts +17 -17
- package/dist/atoms/search/chatSearch.d.ts +17 -17
- package/dist/atoms/search/searchAPI.d.cts +13 -13
- package/dist/atoms/search/searchAPI.d.ts +13 -13
- package/dist/atoms/search/types.d.cts +1 -1
- package/dist/atoms/widget/chatPreviewLoading.d.cts +2 -2
- package/dist/atoms/widget/chatPreviewLoading.d.ts +2 -2
- package/dist/contexts/graphqlContext/graphqlContext.cjs +4 -4
- package/dist/contexts/graphqlContext/graphqlContext.js +4 -4
- package/dist/contexts/hardcopyContext/hardcopyContext.cjs +5 -3
- package/dist/contexts/hardcopyContext/hardcopyContext.js +5 -3
- package/dist/contexts/salesAgentContext/chatAPI.cjs +12 -5
- package/dist/contexts/salesAgentContext/chatAPI.js +13 -6
- 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.cjs +1 -1
- package/dist/contexts/typesV3.d.cts +2 -1
- package/dist/contexts/typesV3.d.ts +2 -1
- package/dist/contexts/typesV3.js +1 -1
- package/dist/hooks/GrabAndScroll/useGrabAndScroll.d.ts +2 -2
- package/dist/hooks/TrackComponentVisibleEvent/useTrackComponentVisibleEvent.cjs +8 -2
- package/dist/hooks/TrackComponentVisibleEvent/useTrackComponentVisibleEvent.js +8 -2
- package/dist/hooks/WidgetInteraction/types.cjs +6 -2
- package/dist/hooks/WidgetInteraction/types.d.cts +8 -3
- package/dist/hooks/WidgetInteraction/types.d.ts +8 -3
- package/dist/hooks/WidgetInteraction/types.js +6 -2
- package/dist/hooks/utils.d.ts +1 -1
- package/dist/services/ga4ProjectionService/ga4EventSchema.cjs +31 -27
- package/dist/services/ga4ProjectionService/ga4EventSchema.js +31 -27
- package/dist/services/ga4ProjectionService/ga4ProjectionService.cjs +31 -5
- package/dist/services/ga4ProjectionService/ga4ProjectionService.js +31 -5
- package/package.json +1 -1
- package/src/application/models/featureGates.ts +1 -0
- package/src/atoms/chat/chatState.ts +1 -0
- package/src/contexts/graphqlContext/graphqlContext.tsx +6 -8
- package/src/contexts/hardcopyContext/hardcopyContext.tsx +10 -2
- package/src/contexts/salesAgentContext/chatAPI.ts +6 -2
- package/src/contexts/typesV3.ts +1 -0
- package/src/hooks/TrackComponentVisibleEvent/useTrackComponentVisibleEvent.ts +10 -2
- package/src/hooks/WidgetInteraction/types.ts +10 -1
- package/src/services/ga4ProjectionService/__tests__/ga4ProjectionService.test.ts +110 -49
- package/src/services/ga4ProjectionService/ga4EventSchema.ts +35 -27
- package/src/services/ga4ProjectionService/ga4ProjectionService.ts +60 -6
|
@@ -145,16 +145,16 @@ const GraphQLProvider = ({ children, requestV3Config = false, mockV3ConfigToDepr
|
|
|
145
145
|
const v3ColorsConfig = transformSnakeToCamel(v3RootConfig?.colors?.values);
|
|
146
146
|
const isSemanticColors = !window.location.href.includes("globals=merchant");
|
|
147
147
|
const isStorybook = window.top?.location.href.includes("?path=");
|
|
148
|
-
if (!v3RootConfig
|
|
148
|
+
if (!v3RootConfig?.colors || isStorybook && isSemanticColors) {
|
|
149
149
|
logger.logDebug("GraphQLContext | Returning mock v3 config", {
|
|
150
150
|
colorsConfig: mockV3ColorsConfig,
|
|
151
151
|
frontendConfig: mockV3FrontendConfig
|
|
152
152
|
});
|
|
153
153
|
return {
|
|
154
|
-
colorsConfig:
|
|
154
|
+
colorsConfig: mockV3ColorsConfig,
|
|
155
155
|
frontendConfig: mockV3FrontendConfig,
|
|
156
156
|
orgPageConfig: {
|
|
157
|
-
pageVariants:
|
|
157
|
+
pageVariants: DEFAULT_PAGE_VARIANTS,
|
|
158
158
|
widgetConfigs: {},
|
|
159
159
|
mountingConfigs: {}
|
|
160
160
|
}
|
|
@@ -257,4 +257,4 @@ const useGraphQLClient = () => {
|
|
|
257
257
|
|
|
258
258
|
//#endregion
|
|
259
259
|
export { GraphQLProvider, useGraphQLClient };
|
|
260
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGhxbENvbnRleHQuanMiLCJuYW1lcyI6WyJMb2dnZXIiLCJERUZBVUxUX1BBR0VfVkFSSUFOVFM6IFBhZ2VWYXJpYW50Q29uZmlnW10iLCJ2M3BhZ2VWYXJpYW50czogUGFnZVZhcmlhbnRDb25maWdbXSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb250ZXh0cy9ncmFwaHFsQ29udGV4dC9ncmFwaHFsQ29udGV4dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVhY3ROb2RlLCBjcmVhdGVDb250ZXh0LCB1c2VDYWxsYmFjaywgdXNlQ29udGV4dCwgdXNlTWVtbyB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUF0b21WYWx1ZSB9IGZyb20gJ2pvdGFpJztcbmltcG9ydCB7IGJhc2VVcmxBdG9tLCBvcmdMZXZlbEFwaUtleUF0b20gfSBmcm9tICdzcmMvYXRvbXMvZW52aXZlL2Vudml2ZUNvbmZpZyc7XG5pbXBvcnQgeyBnZXRNZXJjaGFudE9yZ0lkUXVlcnkgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2dyYXBocWwvcXVlcmllcy9nZXRNZXJjaGFudE9yZ0lkUXVlcnknO1xuaW1wb3J0IHsgdmFsaWRhdGVHcmFwaFFMT3JnSWQgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL3ZhbGlkYXRvcnMvdmFsaWRhdGVHcmFwaFFMT3JnSWQnO1xuaW1wb3J0IHsgQ29sb3JNYXBwaW5nIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9jb2xvcnNDb25maWcnO1xuaW1wb3J0IHsgRnJvbnRlbmRDb25maWcgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2Zyb250ZW5kQ29uZmlnJztcbmltcG9ydCBMb2dnZXIgZnJvbSAnc3JjL2FwcGxpY2F0aW9uL2xvZ2dpbmcvbG9nZ2VyJztcbmltcG9ydCB7XG4gIENhbWVsQ2FzZWRQcm9wZXJ0aWVzRGVlcCxcbiAgdHJhbnNmb3JtU25ha2VUb0NhbWVsLFxuICB2YWxpZGF0ZUFuZFRyYW5zZm9ybU1vdW50aW5nQ29uZmlnLFxuICB2YWxpZGF0ZUFuZFRyYW5zZm9ybVBhZ2VWYXJpYW50cyxcbn0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscyc7XG5pbXBvcnQgeyBnZXRDb2xvcnNBbmRGcm9udGVuZFF1ZXJ5IH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9ncmFwaHFsL3F1ZXJpZXMvZ2V0Q29sb3JzQW5kRnJvbnRlbmRRdWVyeSc7XG5pbXBvcnQgeyBGcm9udGVuZENvbmZpZ1YzIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9mcm9udGVuZENvbmZpZ1YzJztcbmltcG9ydCB7IENvbG9yTWFwcGluZ1YzIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9jb2xvcnNDb25maWdWMyc7XG5pbXBvcnQgeyBGbG9hdGluZ0J1dHRvbkxvY2F0aW9uIH0gZnJvbSAnQGVudml2ZS1haS9yZWFjdC10b29sa2l0LXYzL0Zsb2F0aW5nQnV0dG9uJztcbmltcG9ydCB7IG1vY2tWM0NvbG9yc0NvbmZpZywgbW9ja1YzRnJvbnRlbmRDb25maWcgfSBmcm9tICcuL21vY2tWM0NvbmZpZyc7XG5pbXBvcnQgeyBDb25maWdWZXJzaW9uRW51bSwgV2lkZ2V0Q29uZmlnVjMgfSBmcm9tICcuLi90eXBlc1YzJztcbmltcG9ydCB7XG4gIE9yZ1BhZ2VDb25maWcsXG4gIFBhZ2VWYXJpYW50Q29uZmlnLFxuICBQYWdlVmFyaWFudFRlc3RUeXBlLFxuICBXaWRnZXRNb3VudGluZ0NvbmZpZyxcbn0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgdHlwZSBDb2xvcnNDb25maWdSZXNwb25zZSA9IENhbWVsQ2FzZWRQcm9wZXJ0aWVzRGVlcDxDb2xvck1hcHBpbmc+O1xuZXhwb3J0IHR5cGUgRnJvbnRlbmRDb25maWdSZXNwb25zZSA9IENhbWVsQ2FzZWRQcm9wZXJ0aWVzRGVlcDxGcm9udGVuZENvbmZpZz47XG5leHBvcnQgdHlwZSBDb2xvcnNDb25maWdWM1Jlc3BvbnNlID0gQ2FtZWxDYXNlZFByb3BlcnRpZXNEZWVwPENvbG9yTWFwcGluZ1YzPjtcbmV4cG9ydCB0eXBlIEZyb250ZW5kQ29uZmlnVjNSZXNwb25zZSA9IENhbWVsQ2FzZWRQcm9wZXJ0aWVzRGVlcDxGcm9udGVuZENvbmZpZ1YzPjtcblxuZXhwb3J0IHR5cGUgR3JhcGhRbENvbmZpZ1ZhbHVlcyA9IHtcbiAgY29sb3JzQ29uZmlnPzogQ29sb3JzQ29uZmlnUmVzcG9uc2UgfCBDb2xvcnNDb25maWdWM1Jlc3BvbnNlO1xuICBmcm9udGVuZENvbmZpZz86IENhbWVsQ2FzZWRQcm9wZXJ0aWVzRGVlcDxGcm9udGVuZENvbmZpZyB8IEZyb250ZW5kQ29uZmlnVjM+O1xuICBvcmdQYWdlQ29uZmlnPzogT3JnUGFnZUNvbmZpZztcbn07XG5cbmludGVyZmFjZSBHcmFwaFFMQ29udGV4dFZhbHVlIHtcbiAgZXhlY3V0ZVF1ZXJ5OiA8VD4ocXVlcnk6IHN0cmluZywgdmFyaWFibGVzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pID0+IFByb21pc2U8VD47XG4gIGdldE9yZ0lkOiAoKSA9PiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD47XG4gIGdldENvbG9yc0FuZEZyb250ZW5kQ29uZmlnOiAoKSA9PiBQcm9taXNlPEdyYXBoUWxDb25maWdWYWx1ZXM+O1xuICBnZXRWM0NvbmZpZzogKCkgPT4gUHJvbWlzZTxHcmFwaFFsQ29uZmlnVmFsdWVzPjtcbiAgZ2V0Q29uZmlnOiAoKSA9PiBQcm9taXNlPEdyYXBoUWxDb25maWdWYWx1ZXM+O1xuICBpc1JlYWR5OiBib29sZWFuO1xufVxuXG5jb25zdCBHcmFwaFFMQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQ8R3JhcGhRTENvbnRleHRWYWx1ZSB8IG51bGw+KG51bGwpO1xuXG5jb25zdCBsb2dnZXIgPSBuZXcgTG9nZ2VyKCdncmFwaHFsQ29udGV4dCcpO1xuXG50eXBlIEdyYXBoUUxQcm92aWRlclByb3BzID0ge1xuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xuICByZXF1ZXN0VjNDb25maWc/OiBib29sZWFuO1xuICBtb2NrVjNDb25maWdUb0RlcHJlY2F0ZWRDb25maWc/OiBib29sZWFuO1xufTtcblxuY29uc3QgREVGQVVMVF9QQUdFX1ZBUklBTlRTOiBQYWdlVmFyaWFudENvbmZpZ1tdID0gW1xuICB7XG4gICAgdmFyaWFudElkOiAncGxwJyxcbiAgICB2YXJpYW50VHlwZTogJ3BscCcsXG4gICAgcGxwSWRFeHRyYWN0b3I6ICd1cmwtcmVzb2x2ZXItcGxwLWlkJyxcbiAgICB3aWRnZXRNb3VudGluZzogW10sXG4gICAgdmFyaWFudFRlc3RzOiBbXG4gICAgICB7XG4gICAgICAgIHRlc3RUeXBlOiBQYWdlVmFyaWFudFRlc3RUeXBlLlVybFJlc29sdmVyLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICB7XG4gICAgdmFyaWFudElkOiAncGRwJyxcbiAgICB2YXJpYW50VHlwZTogJ3BkcCcsXG4gICAgcHJvZHVjdElkRXh0cmFjdG9yOiAndXJsLXJlc29sdmVyLXByb2R1Y3QtaWQnLFxuICAgIHdpZGdldE1vdW50aW5nOiBbXSxcbiAgICB2YXJpYW50VGVzdHM6IFtcbiAgICAgIHtcbiAgICAgICAgdGVzdFR5cGU6IFBhZ2VWYXJpYW50VGVzdFR5cGUuVXJsUmVzb2x2ZXIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG5dO1xuXG5jb25zdCBtYXBQb3NpdGlvblRvQ2FtZWxDYXNlID0gKHBvc2l0aW9uOiBzdHJpbmcpOiBGbG9hdGluZ0J1dHRvbkxvY2F0aW9uID0+IHtcbiAgaWYgKHBvc2l0aW9uID09PSAnYm90dG9tLWxlZnQnKSB7XG4gICAgcmV0dXJuIEZsb2F0aW5nQnV0dG9uTG9jYXRpb24uQk9UVE9NX0xFRlQ7XG4gIH1cbiAgaWYgKHBvc2l0aW9uID09PSAnbWlkZGxlLWxlZnQnKSB7XG4gICAgcmV0dXJuIEZsb2F0aW5nQnV0dG9uTG9jYXRpb24uTUlERExFX0xFRlQ7XG4gIH1cbiAgaWYgKHBvc2l0aW9uID09PSAnbWlkZGxlLXJpZ2h0Jykge1xuICAgIHJldHVybiBGbG9hdGluZ0J1dHRvbkxvY2F0aW9uLk1JRERMRV9SSUdIVDtcbiAgfVxuICBpZiAocG9zaXRpb24gPT09ICdib3R0b20tcmlnaHQnKSB7XG4gICAgcmV0dXJuIEZsb2F0aW5nQnV0dG9uTG9jYXRpb24uQk9UVE9NX1JJR0hUO1xuICB9XG4gIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBwb3NpdGlvbjogJHtwb3NpdGlvbn1gKTtcbn07XG5cbi8qKlxuICogVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIGRvIHNvbWUgYWRkaXRpb25hbCBjbGVhbnVwIG9mIHRoZSB2MyBmcm9udGVuZCBjb25maWcgdG8gZW5zdXJlIHRoYXQgdGhlIGNvbmZpZyBpcyBpbiB0aGUgY29ycmVjdCBmb3JtYXQuXG4gKi9cbmNvbnN0IHYzRnJvbnRlbmRDb25maWdDbGVhbnVwID0gKFxuICB2M1Jvb3RDb25maWc6IEZyb250ZW5kQ29uZmlnVjNSZXNwb25zZSxcbik6IEZyb250ZW5kQ29uZmlnVjNSZXNwb25zZSA9PiB7XG4gIGNvbnN0IHsgdWlDb25maWdzIH0gPSB2M1Jvb3RDb25maWc7XG4gIGlmICghdWlDb25maWdzKSB7XG4gICAgcmV0dXJuIHYzUm9vdENvbmZpZztcbiAgfVxuICBjb25zdCB7IGZsb2F0aW5nQnV0dG9uLCBsb29rQW5kRmVlbCB9ID0gdWlDb25maWdzIGFzIGFueTtcbiAgaWYgKCFmbG9hdGluZ0J1dHRvbiB8fCAhbG9va0FuZEZlZWwpIHtcbiAgICByZXR1cm4gdjNSb290Q29uZmlnO1xuICB9XG4gIGNvbnN0IHsgZm9udFNpemUsIGxpbmVIZWlnaHQgfSA9IGxvb2tBbmRGZWVsLnR5cG9ncmFwaHkgYXMgYW55O1xuICByZXR1cm4ge1xuICAgIC4uLnYzUm9vdENvbmZpZyxcbiAgICB1aUNvbmZpZ3M6IHtcbiAgICAgIC4uLnVpQ29uZmlncyxcbiAgICAgIGZsb2F0aW5nQnV0dG9uOiB7XG4gICAgICAgIC4uLmZsb2F0aW5nQnV0dG9uLFxuICAgICAgICBwb3NpdGlvbjogbWFwUG9zaXRpb25Ub0NhbWVsQ2FzZShcbiAgICAgICAgICB2M1Jvb3RDb25maWcudWlDb25maWdzPy5mbG9hdGluZ0J1dHRvbj8ucG9zaXRpb24gYXMgc3RyaW5nLFxuICAgICAgICApLFxuICAgICAgfSxcbiAgICAgIGxvb2tBbmRGZWVsOiB7XG4gICAgICAgIC4uLmxvb2tBbmRGZWVsLFxuICAgICAgICBjaGF0SGVhZGVyTG9nb0RhcmtTcmM6IGxvb2tBbmRGZWVsLmNoYXRIZWFkZXJMb2dvRGFya1NyYyB8fCBsb29rQW5kRmVlbC5jaGF0SGVhZGVyTG9nb1NyYyxcbiAgICAgICAgY2hhdEhlYWRlckxvZ29MaWdodFNyYzogbG9va0FuZEZlZWwuY2hhdEhlYWRlckxvZ29MaWdodFNyYyB8fCBsb29rQW5kRmVlbC5jaGF0SGVhZGVyTG9nb1NyYyxcbiAgICAgICAgdHlwb2dyYXBoeToge1xuICAgICAgICAgIC4uLmxvb2tBbmRGZWVsLnR5cG9ncmFwaHksXG4gICAgICAgICAgZm9udFNpemU6IHtcbiAgICAgICAgICAgIC8vIFRoZSBmb250cyBzaXplcyBhcmUgZGVmaW5lZCBkaWZmZXJlbnRseSBpbiB0aGUgYmFja2VuZCBjb25maWdcbiAgICAgICAgICAgIC8vIHNvIHdlIG5lZWQgdG8gbWFwIHRoZSB2YWx1ZXMgdG8gdGhlIGNvcnJlY3QgY2FtZWwgY2FzZSBrZXlzXG4gICAgICAgICAgICBiMTogZm9udFNpemU/LmIxIHx8IGZvbnRTaXplPy5iXzEsXG4gICAgICAgICAgICBiMjogZm9udFNpemU/LmIyIHx8IGZvbnRTaXplPy5iXzIsXG4gICAgICAgICAgICBiMzogZm9udFNpemU/LmIzIHx8IGZvbnRTaXplPy5iXzMsXG4gICAgICAgICAgICBiNDogZm9udFNpemU/LmI0IHx8IGZvbnRTaXplPy5iXzQsXG4gICAgICAgICAgICBiNTogZm9udFNpemU/LmI1IHx8IGZvbnRTaXplPy5iXzUsXG4gICAgICAgICAgICBoMTogZm9udFNpemU/LmgxIHx8IGZvbnRTaXplPy5oXzEsXG4gICAgICAgICAgICBoMjogZm9udFNpemU/LmgyIHx8IGZvbnRTaXplPy5oXzIsXG4gICAgICAgICAgICBoMzogZm9udFNpemU/LmgzIHx8IGZvbnRTaXplPy5oXzMsXG4gICAgICAgICAgICBsMTogZm9udFNpemU/LmwxIHx8IGZvbnRTaXplPy5sXzEsXG4gICAgICAgICAgICBsMjogZm9udFNpemU/LmwyIHx8IGZvbnRTaXplPy5sXzIsXG4gICAgICAgICAgICB0MTogZm9udFNpemU/LnQxIHx8IGZvbnRTaXplPy50XzEsXG4gICAgICAgICAgICB0MjogZm9udFNpemU/LnQyIHx8IGZvbnRTaXplPy50XzIsXG4gICAgICAgICAgICB0MzogZm9udFNpemU/LnQzIHx8IGZvbnRTaXplPy50XzMsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBsaW5lSGVpZ2h0OiB7XG4gICAgICAgICAgICAuLi5sb29rQW5kRmVlbC50eXBvZ3JhcGh5LmxpbmVIZWlnaHQsXG4gICAgICAgICAgICAnMTE0JzogbGluZUhlaWdodD8ubGhfMTE0IHx8IGxpbmVIZWlnaHQ/LlsxMTRdLFxuICAgICAgICAgICAgJzExNic6IGxpbmVIZWlnaHQ/LmxoXzExNiB8fCBsaW5lSGVpZ2h0Py5bMTE2XSxcbiAgICAgICAgICAgICcxMTgnOiBsaW5lSGVpZ2h0Py5saF8xMTggfHwgbGluZUhlaWdodD8uWzExOF0sXG4gICAgICAgICAgICAnMTIwJzogbGluZUhlaWdodD8ubGhfMTIwIHx8IGxpbmVIZWlnaHQ/LlsxMjBdLFxuICAgICAgICAgICAgJzEyNCc6IGxpbmVIZWlnaHQ/LmxoXzEyNCB8fCBsaW5lSGVpZ2h0Py5bMTI0XSxcbiAgICAgICAgICAgICcxMjgnOiBsaW5lSGVpZ2h0Py5saF8xMjggfHwgbGluZUhlaWdodD8uWzEyOF0sXG4gICAgICAgICAgICAnMTMwJzogbGluZUhlaWdodD8ubGhfMTMwIHx8IGxpbmVIZWlnaHQ/LlsxMzBdLFxuICAgICAgICAgICAgJzEzMyc6IGxpbmVIZWlnaHQ/LmxoXzEzMyB8fCBsaW5lSGVpZ2h0Py5bMTMzXSxcbiAgICAgICAgICAgICcxNDAnOiBsaW5lSGVpZ2h0Py5saF8xNDAgfHwgbGluZUhlaWdodD8uWzE0MF0sXG4gICAgICAgICAgICAnMTQ4JzogbGluZUhlaWdodD8ubGhfMTQ4IHx8IGxpbmVIZWlnaHQ/LlsxNDhdLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgR3JhcGhRTFByb3ZpZGVyID0gKHtcbiAgY2hpbGRyZW4sXG4gIHJlcXVlc3RWM0NvbmZpZyA9IGZhbHNlLFxuICBtb2NrVjNDb25maWdUb0RlcHJlY2F0ZWRDb25maWcgPSBmYWxzZSxcbn06IEdyYXBoUUxQcm92aWRlclByb3BzKSA9PiB7XG4gIGNvbnN0IGFwaUtleSA9IHVzZUF0b21WYWx1ZShvcmdMZXZlbEFwaUtleUF0b20pO1xuICBjb25zdCBiYXNlVXJsID0gdXNlQXRvbVZhbHVlKGJhc2VVcmxBdG9tKTtcbiAgY29uc3QgaXNSZWFkeSA9IHVzZU1lbW8oKCkgPT4gQm9vbGVhbihhcGlLZXkgJiYgYmFzZVVybCksIFthcGlLZXksIGJhc2VVcmxdKTtcblxuICBjb25zdCBleGVjdXRlUXVlcnkgPSB1c2VDYWxsYmFjayhcbiAgICBhc3luYyAocXVlcnk6IHN0cmluZywgdmFyaWFibGVzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pID0+IHtcbiAgICAgIGlmICghaXNSZWFkeSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0dyYXBoUUwgY2xpZW50IG5vdCByZWFkeSAtIG1pc3NpbmcgYXBpS2V5IG9yIGJhc2VVcmwnKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChgJHtiYXNlVXJsfS92MS9ncmFwaHFsYCwge1xuICAgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke2FwaUtleX1gLFxuICAgICAgICB9LFxuICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7IHF1ZXJ5LCB2YXJpYWJsZXMgfSksXG4gICAgICB9KTtcblxuICAgICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEdyYXBoUUwgcmVxdWVzdCBmYWlsZWQ6ICR7cmVzcG9uc2Uuc3RhdHVzVGV4dH1gKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVzcG9uc2UuanNvbigpO1xuICAgICAgaWYgKHJlc3VsdC5lcnJvcnMpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBHcmFwaFFMIGVycm9yczogJHtKU09OLnN0cmluZ2lmeShyZXN1bHQuZXJyb3JzKX1gKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJlc3VsdC5kYXRhO1xuICAgIH0sXG4gICAgW2FwaUtleSwgYmFzZVVybCwgaXNSZWFkeV0sXG4gICk7XG5cbiAgY29uc3QgZ2V0T3JnSWQgPSB1c2VDYWxsYmFjayhhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBleGVjdXRlUXVlcnkoZ2V0TWVyY2hhbnRPcmdJZFF1ZXJ5KTtcbiAgICByZXR1cm4gdmFsaWRhdGVHcmFwaFFMT3JnSWQocmVzcG9uc2UubWUub3JnPy5pZCk7XG4gIH0sIFtleGVjdXRlUXVlcnldKTtcblxuICBjb25zdCBnZXRWM0NvbmZpZyA9IHVzZUNhbGxiYWNrKGFzeW5jICgpOiBQcm9taXNlPEdyYXBoUWxDb25maWdWYWx1ZXM+ID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcXVlcnkgPSBhd2FpdCBnZXRDb2xvcnNBbmRGcm9udGVuZFF1ZXJ5KCk7XG4gICAgICBpZiAoIXF1ZXJ5KSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignQ29sb3JzIGFuZCBmcm9udGVuZCBjb25maWcgcXVlcnkgaXMgbm90IGRlZmluZWQnKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZXhlY3V0ZVF1ZXJ5KHF1ZXJ5KTtcblxuICAgICAgLy8gV2UgbWF5IHVwZGF0ZSB0aGlzIHJvb3QgY29uZmlnIGxvY2F0aW9uIGluIHRoZSBmdXR1cmVcbiAgICAgIGNvbnN0IHYzUm9vdENvbmZpZyA9IHJlc3BvbnNlLm1lLmdldFByb2R1Y3RzQ29uZmlnQnlWZXJzaW9uPy52X3RocmVlX2NvbmZpZz8udmFsdWVzO1xuICAgICAgY29uc3QgZnJvbnRlbmRWYWx1ZXMgPSByZXNwb25zZS5tZS5nZXRQcm9kdWN0c0NvbmZpZ0J5VmVyc2lvbj8uZnJvbnRlbmQ/LnZhbHVlcztcblxuICAgICAgY29uc3QgdjNGcm9udGVuZENvbmZpZyA9IHYzRnJvbnRlbmRDb25maWdDbGVhbnVwKFxuICAgICAgICB0cmFuc2Zvcm1TbmFrZVRvQ2FtZWwodjNSb290Q29uZmlnKSBhcyBGcm9udGVuZENvbmZpZ1YzUmVzcG9uc2UsXG4gICAgICApO1xuXG4gICAgICAvLyBHZXQgbWVyY2hhbnRfb3ZlcnJpZGVfY3NzIGZyb20gZnJvbnRlbmQudmFsdWVzIGlmIHYzUm9vdENvbmZpZyBpcyBub3QgYXZhaWxhYmxlXG4gICAgICBjb25zdCBmcm9udGVuZE1lcmNoYW50T3ZlcnJpZGVDc3MgPSBmcm9udGVuZFZhbHVlcz8ubWVyY2hhbnRfb3ZlcnJpZGVfY3NzO1xuICAgICAgY29uc3QgdjNNZXJjaGFudE92ZXJyaWRlQ3NzID0gdjNGcm9udGVuZENvbmZpZy51aUNvbmZpZ3M/Lm1lcmNoYW50T3ZlcnJpZGVDc3M7XG4gICAgICBjb25zdCBtZXJjaGFudE92ZXJyaWRlQ3NzID0gdjNNZXJjaGFudE92ZXJyaWRlQ3NzIHx8IGZyb250ZW5kTWVyY2hhbnRPdmVycmlkZUNzcztcblxuICAgICAgY29uc3QgdjNNb3VudGluZ0NvbmZpZ3NBcnJheSA9ICh0cmFuc2Zvcm1TbmFrZVRvQ2FtZWwodjNSb290Q29uZmlnPy5tb3VudGluZ19jb25maWdzKSA/P1xuICAgICAgICBbXSkgYXMgdW5rbm93biBhcyB7IGtleTogc3RyaW5nOyBjb25maWc6IFdpZGdldE1vdW50aW5nQ29uZmlnIH1bXTtcblxuICAgICAgY29uc3QgdjNNb3VudGluZ0NvbmZpZ3MgPSB2M01vdW50aW5nQ29uZmlnc0FycmF5LnJlZHVjZShcbiAgICAgICAgKGFjYywgeyBrZXksIGNvbmZpZyB9KSA9PiB7XG4gICAgICAgICAgYWNjW2tleV0gPSB2YWxpZGF0ZUFuZFRyYW5zZm9ybU1vdW50aW5nQ29uZmlnKGNvbmZpZywga2V5KTtcbiAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICB9LFxuICAgICAgICB7fSBhcyBSZWNvcmQ8c3RyaW5nLCBXaWRnZXRNb3VudGluZ0NvbmZpZz4sXG4gICAgICApO1xuXG4gICAgICBjb25zdCB2M3dpZGdldENvbmZpZ3NBcnJheSA9ICh0cmFuc2Zvcm1TbmFrZVRvQ2FtZWwodjNSb290Q29uZmlnPy53aWRnZXRfY29uZmlncykgPz9cbiAgICAgICAgW10pIGFzIHVua25vd24gYXMgV2lkZ2V0Q29uZmlnVjNbXTtcbiAgICAgIGNvbnN0IHYzV2lkZ2V0Q29uZmlncyA9IE9iamVjdC5mcm9tRW50cmllcyhcbiAgICAgICAgdjN3aWRnZXRDb25maWdzQXJyYXk/Lm1hcCgoeyB3aWRnZXRDb25maWdJZCwgLi4ucmVzdCB9OiBXaWRnZXRDb25maWdWMykgPT4gW1xuICAgICAgICAgIHdpZGdldENvbmZpZ0lkLFxuICAgICAgICAgIHsgd2lkZ2V0Q29uZmlnSWQsIC4uLnJlc3QgfSBhcyBXaWRnZXRDb25maWdWMyxcbiAgICAgICAgXSksXG4gICAgICApIGFzIFJlY29yZDxzdHJpbmcsIFdpZGdldENvbmZpZ1YzPjtcbiAgICAgIGNvbnN0IHYzcGFnZVZhcmlhbnRzOiBQYWdlVmFyaWFudENvbmZpZ1tdID0gQXJyYXkuaXNBcnJheSh2M1Jvb3RDb25maWc/LnBhZ2VfdmFyaWFudHMpXG4gICAgICAgID8gdjNSb290Q29uZmlnPy5wYWdlX3ZhcmlhbnRzLm1hcCh2YWxpZGF0ZUFuZFRyYW5zZm9ybVBhZ2VWYXJpYW50cylcbiAgICAgICAgOiBERUZBVUxUX1BBR0VfVkFSSUFOVFM7XG5cbiAgICAgIGNvbnN0IHYzQ29sb3JzQ29uZmlnID0gdHJhbnNmb3JtU25ha2VUb0NhbWVsKHYzUm9vdENvbmZpZz8uY29sb3JzPy52YWx1ZXMpO1xuICAgICAgY29uc3QgaXNTZW1hbnRpY0NvbG9ycyA9ICF3aW5kb3cubG9jYXRpb24uaHJlZi5pbmNsdWRlcygnZ2xvYmFscz1tZXJjaGFudCcpO1xuICAgICAgY29uc3QgaXNTdG9yeWJvb2sgPSB3aW5kb3cudG9wPy5sb2NhdGlvbi5ocmVmLmluY2x1ZGVzKCc/cGF0aD0nKTtcblxuICAgICAgLy8gSWYgdGhlIHYzIHJvb3QgY29uZmlnIGlzIG5vdCBmb3VuZCBhbmQgd2UgYXJlIGNvbmZpZ3VyZWQgdG8gcmV0dXJuIHRoZSBkZXByZWNhdGVkIGNvbmZpZywgd2Ugd2lsbCByZXR1cm4gdGhlIG1vY2tlZCBjb25maWdcbiAgICAgIGlmICgoIXYzUm9vdENvbmZpZyAmJiBtb2NrVjNDb25maWdUb0RlcHJlY2F0ZWRDb25maWcpIHx8IChpc1N0b3J5Ym9vayAmJiBpc1NlbWFudGljQ29sb3JzKSkge1xuICAgICAgICBsb2dnZXIubG9nRGVidWcoJ0dyYXBoUUxDb250ZXh0IHwgUmV0dXJuaW5nIG1vY2sgdjMgY29uZmlnJywge1xuICAgICAgICAgIGNvbG9yc0NvbmZpZzogbW9ja1YzQ29sb3JzQ29uZmlnIGFzIENvbG9yc0NvbmZpZ1YzUmVzcG9uc2UsXG4gICAgICAgICAgZnJvbnRlbmRDb25maWc6IG1vY2tWM0Zyb250ZW5kQ29uZmlnIGFzIEZyb250ZW5kQ29uZmlnVjNSZXNwb25zZSxcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IGNvbG9yc0NvbmZpZyA9IG1vY2tWM0NvbG9yc0NvbmZpZztcbiAgICAgICAgY29uc3QgZnJvbnRlbmRDb25maWcgPSBtb2NrVjNGcm9udGVuZENvbmZpZztcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjb2xvcnNDb25maWc6IGlzU2VtYW50aWNDb2xvcnNcbiAgICAgICAgICAgID8gKGNvbG9yc0NvbmZpZyBhcyBDb2xvcnNDb25maWdWM1Jlc3BvbnNlKVxuICAgICAgICAgICAgOiAodjNDb2xvcnNDb25maWcgYXMgQ29sb3JzQ29uZmlnVjNSZXNwb25zZSksXG4gICAgICAgICAgZnJvbnRlbmRDb25maWc6IGZyb250ZW5kQ29uZmlnIGFzIEZyb250ZW5kQ29uZmlnVjNSZXNwb25zZSxcbiAgICAgICAgICBvcmdQYWdlQ29uZmlnOiB7XG4gICAgICAgICAgICBwYWdlVmFyaWFudHM6IFtdLFxuICAgICAgICAgICAgd2lkZ2V0Q29uZmlnczoge30sXG4gICAgICAgICAgICBtb3VudGluZ0NvbmZpZ3M6IHt9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIGxvZ2dlci5sb2dEZWJ1ZygnR3JhcGhRTENvbnRleHQgfCBSZXR1cm5pbmcgdjMgY29uZmlnJywge1xuICAgICAgICBjb2xvcnNDb25maWc6IHYzQ29sb3JzQ29uZmlnIGFzIENvbG9yc0NvbmZpZ1YzUmVzcG9uc2UsXG4gICAgICAgIGZyb250ZW5kQ29uZmlnOiB2M0Zyb250ZW5kQ29uZmlnIGFzIEZyb250ZW5kQ29uZmlnVjNSZXNwb25zZSxcbiAgICAgICAgb3JnUGFnZUNvbmZpZzoge1xuICAgICAgICAgIHBhZ2VWYXJpYW50czogdjNwYWdlVmFyaWFudHMsXG4gICAgICAgICAgd2lkZ2V0Q29uZmlnczogdjNXaWRnZXRDb25maWdzLFxuICAgICAgICAgIG1vdW50aW5nQ29uZmlnczogdjNNb3VudGluZ0NvbmZpZ3MsXG4gICAgICAgIH0sXG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY29sb3JzQ29uZmlnOiB2M0NvbG9yc0NvbmZpZyBhcyBDb2xvcnNDb25maWdWM1Jlc3BvbnNlLFxuICAgICAgICBmcm9udGVuZENvbmZpZzoge1xuICAgICAgICAgIC4uLih2M0Zyb250ZW5kQ29uZmlnIGFzIEZyb250ZW5kQ29uZmlnVjNSZXNwb25zZSksXG4gICAgICAgICAgbWVyY2hhbnRPdmVycmlkZUNzcyxcbiAgICAgICAgICAvLyBOZWVkIHRvIHJlcGxhY2UgdGhlIGF1dG9tYXRpYyB3aWRnZXQgY29uZmlncyB3aXRoIHRoZSBvYmplY3QgYmFzZWQgb25lc1xuICAgICAgICAgIHdpZGdldENvbmZpZ3M6IHYzV2lkZ2V0Q29uZmlncyxcbiAgICAgICAgfSxcbiAgICAgICAgb3JnUGFnZUNvbmZpZzoge1xuICAgICAgICAgIHBhZ2VWYXJpYW50czogdjNwYWdlVmFyaWFudHMsXG4gICAgICAgICAgd2lkZ2V0Q29uZmlnczogdjNXaWRnZXRDb25maWdzLFxuICAgICAgICAgIG1vdW50aW5nQ29uZmlnczogdjNNb3VudGluZ0NvbmZpZ3MsXG4gICAgICAgIH0sXG4gICAgICAgIC8vIFRPRE86IEFkZCB3aWRnZXRzIGFuZCBvdGhlciBjb25maWcgaGVyZVxuICAgICAgfTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGxvZ2dlci5sb2dFcnJvcignRXJyb3IgZmV0Y2hpbmcgZ3JhcGhxbCBjb2xvcnMgYW5kIGZyb250ZW5kIGNvbmZpZycsIGVycik7XG4gICAgICByZXR1cm4geyBjb2xvcnNDb25maWc6IHVuZGVmaW5lZCwgZnJvbnRlbmRDb25maWc6IHVuZGVmaW5lZCB9O1xuICAgIH1cbiAgfSwgW2V4ZWN1dGVRdWVyeSwgbW9ja1YzQ29uZmlnVG9EZXByZWNhdGVkQ29uZmlnXSk7XG5cbiAgY29uc3QgZ2V0Q29sb3JzQW5kRnJvbnRlbmRDb25maWcgPSB1c2VDYWxsYmFjayhhc3luYyAoKTogUHJvbWlzZTxHcmFwaFFsQ29uZmlnVmFsdWVzPiA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHF1ZXJ5ID0gYXdhaXQgZ2V0Q29sb3JzQW5kRnJvbnRlbmRRdWVyeSgpO1xuICAgICAgaWYgKCFxdWVyeSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvbG9ycyBhbmQgZnJvbnRlbmQgY29uZmlnIHF1ZXJ5IGlzIG5vdCBkZWZpbmVkJyk7XG4gICAgICB9XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGV4ZWN1dGVRdWVyeShxdWVyeSk7XG4gICAgICBpZiAoXG4gICAgICAgIHJlc3BvbnNlLm1lLmdldFByb2R1Y3RzQ29uZmlnQnlWZXJzaW9uPy52ZXJzaW9uICE9PSBDb25maWdWZXJzaW9uRW51bS5WMyAmJlxuICAgICAgICAhbW9ja1YzQ29uZmlnVG9EZXByZWNhdGVkQ29uZmlnXG4gICAgICApIHtcbiAgICAgICAgY29uc3QgY29sb3JzQ29uZmlnID0gcmVzcG9uc2UubWUuZ2V0UHJvZHVjdHNDb25maWdCeVZlcnNpb24/LmNvbG9ycz8udmFsdWVzO1xuICAgICAgICBjb25zdCBmcm9udGVuZENvbmZpZyA9IHJlc3BvbnNlLm1lLmdldFByb2R1Y3RzQ29uZmlnQnlWZXJzaW9uPy5mcm9udGVuZD8udmFsdWVzO1xuICAgICAgICBjb25zdCB0cmFuc2Zvcm1lZENvbG9yQ29uZmlnID0gdHJhbnNmb3JtU25ha2VUb0NhbWVsKGNvbG9yc0NvbmZpZyk7XG4gICAgICAgIGNvbnN0IHRyYW5zZm9ybWVkRnJvbnRlbmRDb25maWcgPSB0cmFuc2Zvcm1TbmFrZVRvQ2FtZWwoZnJvbnRlbmRDb25maWcpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGNvbG9yc0NvbmZpZzogdHJhbnNmb3JtZWRDb2xvckNvbmZpZyBhcyBDb2xvcnNDb25maWdSZXNwb25zZSxcbiAgICAgICAgICBmcm9udGVuZENvbmZpZzogdHJhbnNmb3JtZWRGcm9udGVuZENvbmZpZyBhcyBGcm9udGVuZENvbmZpZ1Jlc3BvbnNlLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgLy8gVE9ETzogUkVNT1ZFIE1PQ0tFRCBDT05GSUcgT05DRSBXRSBIQVZFIFRIRSBORVcgQ09ORklHIElNUExFTUVOVEVEIE9OIEJBQ0tFTkRcbiAgICAgIGNvbnN0IG1lcmNoYW50Q29sb3JzQ29uZmlnID0gcmVzcG9uc2UubWUuZ2V0UHJvZHVjdHNDb25maWdCeVZlcnNpb24/LmNvbG9ycz8udmFsdWVzO1xuICAgICAgY29uc3QgdHJhbnNmb3JtZWRNZXJjaGFudENvbG9yQ29uZmlnID0gdHJhbnNmb3JtU25ha2VUb0NhbWVsKG1lcmNoYW50Q29sb3JzQ29uZmlnKTtcblxuICAgICAgY29uc3QgaXNTZW1hbnRpY0NvbG9ycyA9ICF3aW5kb3cubG9jYXRpb24uaHJlZi5pbmNsdWRlcygnZ2xvYmFscz1tZXJjaGFudCcpO1xuXG4gICAgICBjb25zdCBjb2xvcnNDb25maWcgPSBtb2NrVjNDb2xvcnNDb25maWc7XG4gICAgICBjb25zdCBmcm9udGVuZENvbmZpZyA9IG1vY2tWM0Zyb250ZW5kQ29uZmlnO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBjb2xvcnNDb25maWc6IGlzU2VtYW50aWNDb2xvcnNcbiAgICAgICAgICA/IChjb2xvcnNDb25maWcgYXMgQ29sb3JzQ29uZmlnVjNSZXNwb25zZSlcbiAgICAgICAgICA6ICh0cmFuc2Zvcm1lZE1lcmNoYW50Q29sb3JDb25maWcgYXMgQ29sb3JzQ29uZmlnVjNSZXNwb25zZSksXG4gICAgICAgIGZyb250ZW5kQ29uZmlnOiBmcm9udGVuZENvbmZpZyBhcyBGcm9udGVuZENvbmZpZ1YzUmVzcG9uc2UsXG4gICAgICB9O1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgbG9nZ2VyLmxvZ0Vycm9yKCdFcnJvciBmZXRjaGluZyBncmFwaHFsIGNvbG9ycyBhbmQgZnJvbnRlbmQgY29uZmlnJywgZXJyKTtcbiAgICAgIHJldHVybiB7IGNvbG9yc0NvbmZpZzogdW5kZWZpbmVkLCBmcm9udGVuZENvbmZpZzogdW5kZWZpbmVkIH07XG4gICAgfVxuICB9LCBbZXhlY3V0ZVF1ZXJ5XSk7XG5cbiAgY29uc3QgZ2V0Q29uZmlnID0gdXNlQ2FsbGJhY2soYXN5bmMgKCk6IFByb21pc2U8R3JhcGhRbENvbmZpZ1ZhbHVlcz4gPT4ge1xuICAgIGlmIChyZXF1ZXN0VjNDb25maWcpIHtcbiAgICAgIGxvZ2dlci5sb2dEZWJ1ZygnR3JhcGhRTENvbnRleHQgfCBHZXR0aW5nIHYzIGNvbmZpZycsIHJlcXVlc3RWM0NvbmZpZyk7XG4gICAgICByZXR1cm4gZ2V0VjNDb25maWcoKTtcbiAgICB9XG4gICAgbG9nZ2VyLmxvZ0RlYnVnKCdHcmFwaFFMQ29udGV4dCB8IEdldHRpbmcgY29sb3JzIGFuZCBmcm9udGVuZCBjb25maWcnLCByZXF1ZXN0VjNDb25maWcpO1xuICAgIHJldHVybiBnZXRDb2xvcnNBbmRGcm9udGVuZENvbmZpZygpO1xuICB9LCBbZ2V0Q29sb3JzQW5kRnJvbnRlbmRDb25maWcsIGdldFYzQ29uZmlnLCByZXF1ZXN0VjNDb25maWddKTtcblxuICBjb25zdCB2YWx1ZSA9IHVzZU1lbW8oXG4gICAgKCkgPT4gKHtcbiAgICAgIGV4ZWN1dGVRdWVyeSxcbiAgICAgIGdldE9yZ0lkLFxuICAgICAgZ2V0Q29sb3JzQW5kRnJvbnRlbmRDb25maWcsXG4gICAgICBnZXRWM0NvbmZpZyxcbiAgICAgIGdldENvbmZpZyxcbiAgICAgIGlzUmVhZHksXG4gICAgfSksXG4gICAgW2V4ZWN1dGVRdWVyeSwgZ2V0T3JnSWQsIGdldENvbG9yc0FuZEZyb250ZW5kQ29uZmlnLCBnZXRWM0NvbmZpZywgZ2V0Q29uZmlnLCBpc1JlYWR5XSxcbiAgKTtcblxuICByZXR1cm4gPEdyYXBoUUxDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXt2YWx1ZX0+e2NoaWxkcmVufTwvR3JhcGhRTENvbnRleHQuUHJvdmlkZXI+O1xufTtcblxuZXhwb3J0IGNvbnN0IHVzZUdyYXBoUUxDbGllbnQgPSAoKSA9PiB7XG4gIGNvbnN0IGNvbnRleHQgPSB1c2VDb250ZXh0KEdyYXBoUUxDb250ZXh0KTtcbiAgaWYgKCFjb250ZXh0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCd1c2VHcmFwaFFMQ2xpZW50IG11c3QgYmUgdXNlZCB3aXRoaW4gYSBHcmFwaFFMUHJvdmlkZXInKTtcbiAgfVxu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
|
|
260
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGhxbENvbnRleHQuanMiLCJuYW1lcyI6WyJMb2dnZXIiLCJERUZBVUxUX1BBR0VfVkFSSUFOVFM6IFBhZ2VWYXJpYW50Q29uZmlnW10iLCJ2M3BhZ2VWYXJpYW50czogUGFnZVZhcmlhbnRDb25maWdbXSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb250ZXh0cy9ncmFwaHFsQ29udGV4dC9ncmFwaHFsQ29udGV4dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVhY3ROb2RlLCBjcmVhdGVDb250ZXh0LCB1c2VDYWxsYmFjaywgdXNlQ29udGV4dCwgdXNlTWVtbyB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUF0b21WYWx1ZSB9IGZyb20gJ2pvdGFpJztcbmltcG9ydCB7IGJhc2VVcmxBdG9tLCBvcmdMZXZlbEFwaUtleUF0b20gfSBmcm9tICdzcmMvYXRvbXMvZW52aXZlL2Vudml2ZUNvbmZpZyc7XG5pbXBvcnQgeyBnZXRNZXJjaGFudE9yZ0lkUXVlcnkgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2dyYXBocWwvcXVlcmllcy9nZXRNZXJjaGFudE9yZ0lkUXVlcnknO1xuaW1wb3J0IHsgdmFsaWRhdGVHcmFwaFFMT3JnSWQgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL3ZhbGlkYXRvcnMvdmFsaWRhdGVHcmFwaFFMT3JnSWQnO1xuaW1wb3J0IHsgQ29sb3JNYXBwaW5nIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9jb2xvcnNDb25maWcnO1xuaW1wb3J0IHsgRnJvbnRlbmRDb25maWcgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2Zyb250ZW5kQ29uZmlnJztcbmltcG9ydCBMb2dnZXIgZnJvbSAnc3JjL2FwcGxpY2F0aW9uL2xvZ2dpbmcvbG9nZ2VyJztcbmltcG9ydCB7XG4gIENhbWVsQ2FzZWRQcm9wZXJ0aWVzRGVlcCxcbiAgdHJhbnNmb3JtU25ha2VUb0NhbWVsLFxuICB2YWxpZGF0ZUFuZFRyYW5zZm9ybU1vdW50aW5nQ29uZmlnLFxuICB2YWxpZGF0ZUFuZFRyYW5zZm9ybVBhZ2VWYXJpYW50cyxcbn0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscyc7XG5pbXBvcnQgeyBnZXRDb2xvcnNBbmRGcm9udGVuZFF1ZXJ5IH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9ncmFwaHFsL3F1ZXJpZXMvZ2V0Q29sb3JzQW5kRnJvbnRlbmRRdWVyeSc7XG5pbXBvcnQgeyBGcm9udGVuZENvbmZpZ1YzIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9mcm9udGVuZENvbmZpZ1YzJztcbmltcG9ydCB7IENvbG9yTWFwcGluZ1YzIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9jb2xvcnNDb25maWdWMyc7XG5pbXBvcnQgeyBGbG9hdGluZ0J1dHRvbkxvY2F0aW9uIH0gZnJvbSAnQGVudml2ZS1haS9yZWFjdC10b29sa2l0LXYzL0Zsb2F0aW5nQnV0dG9uJztcbmltcG9ydCB7IG1vY2tWM0NvbG9yc0NvbmZpZywgbW9ja1YzRnJvbnRlbmRDb25maWcgfSBmcm9tICcuL21vY2tWM0NvbmZpZyc7XG5pbXBvcnQgeyBDb25maWdWZXJzaW9uRW51bSwgV2lkZ2V0Q29uZmlnVjMgfSBmcm9tICcuLi90eXBlc1YzJztcbmltcG9ydCB7XG4gIE9yZ1BhZ2VDb25maWcsXG4gIFBhZ2VWYXJpYW50Q29uZmlnLFxuICBQYWdlVmFyaWFudFRlc3RUeXBlLFxuICBXaWRnZXRNb3VudGluZ0NvbmZpZyxcbn0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgdHlwZSBDb2xvcnNDb25maWdSZXNwb25zZSA9IENhbWVsQ2FzZWRQcm9wZXJ0aWVzRGVlcDxDb2xvck1hcHBpbmc+O1xuZXhwb3J0IHR5cGUgRnJvbnRlbmRDb25maWdSZXNwb25zZSA9IENhbWVsQ2FzZWRQcm9wZXJ0aWVzRGVlcDxGcm9udGVuZENvbmZpZz47XG5leHBvcnQgdHlwZSBDb2xvcnNDb25maWdWM1Jlc3BvbnNlID0gQ2FtZWxDYXNlZFByb3BlcnRpZXNEZWVwPENvbG9yTWFwcGluZ1YzPjtcbmV4cG9ydCB0eXBlIEZyb250ZW5kQ29uZmlnVjNSZXNwb25zZSA9IENhbWVsQ2FzZWRQcm9wZXJ0aWVzRGVlcDxGcm9udGVuZENvbmZpZ1YzPjtcblxuZXhwb3J0IHR5cGUgR3JhcGhRbENvbmZpZ1ZhbHVlcyA9IHtcbiAgY29sb3JzQ29uZmlnPzogQ29sb3JzQ29uZmlnUmVzcG9uc2UgfCBDb2xvcnNDb25maWdWM1Jlc3BvbnNlO1xuICBmcm9udGVuZENvbmZpZz86IENhbWVsQ2FzZWRQcm9wZXJ0aWVzRGVlcDxGcm9udGVuZENvbmZpZyB8IEZyb250ZW5kQ29uZmlnVjM+O1xuICBvcmdQYWdlQ29uZmlnPzogT3JnUGFnZUNvbmZpZztcbn07XG5cbmludGVyZmFjZSBHcmFwaFFMQ29udGV4dFZhbHVlIHtcbiAgZXhlY3V0ZVF1ZXJ5OiA8VD4ocXVlcnk6IHN0cmluZywgdmFyaWFibGVzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pID0+IFByb21pc2U8VD47XG4gIGdldE9yZ0lkOiAoKSA9PiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD47XG4gIGdldENvbG9yc0FuZEZyb250ZW5kQ29uZmlnOiAoKSA9PiBQcm9taXNlPEdyYXBoUWxDb25maWdWYWx1ZXM+O1xuICBnZXRWM0NvbmZpZzogKCkgPT4gUHJvbWlzZTxHcmFwaFFsQ29uZmlnVmFsdWVzPjtcbiAgZ2V0Q29uZmlnOiAoKSA9PiBQcm9taXNlPEdyYXBoUWxDb25maWdWYWx1ZXM+O1xuICBpc1JlYWR5OiBib29sZWFuO1xufVxuXG5jb25zdCBHcmFwaFFMQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQ8R3JhcGhRTENvbnRleHRWYWx1ZSB8IG51bGw+KG51bGwpO1xuXG5jb25zdCBsb2dnZXIgPSBuZXcgTG9nZ2VyKCdncmFwaHFsQ29udGV4dCcpO1xuXG50eXBlIEdyYXBoUUxQcm92aWRlclByb3BzID0ge1xuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xuICByZXF1ZXN0VjNDb25maWc/OiBib29sZWFuO1xuICBtb2NrVjNDb25maWdUb0RlcHJlY2F0ZWRDb25maWc/OiBib29sZWFuO1xufTtcblxuY29uc3QgREVGQVVMVF9QQUdFX1ZBUklBTlRTOiBQYWdlVmFyaWFudENvbmZpZ1tdID0gW1xuICB7XG4gICAgdmFyaWFudElkOiAncGxwJyxcbiAgICB2YXJpYW50VHlwZTogJ3BscCcsXG4gICAgcGxwSWRFeHRyYWN0b3I6ICd1cmwtcmVzb2x2ZXItcGxwLWlkJyxcbiAgICB3aWRnZXRNb3VudGluZzogW10sXG4gICAgdmFyaWFudFRlc3RzOiBbXG4gICAgICB7XG4gICAgICAgIHRlc3RUeXBlOiBQYWdlVmFyaWFudFRlc3RUeXBlLlVybFJlc29sdmVyLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICB7XG4gICAgdmFyaWFudElkOiAncGRwJyxcbiAgICB2YXJpYW50VHlwZTogJ3BkcCcsXG4gICAgcHJvZHVjdElkRXh0cmFjdG9yOiAndXJsLXJlc29sdmVyLXByb2R1Y3QtaWQnLFxuICAgIHdpZGdldE1vdW50aW5nOiBbXSxcbiAgICB2YXJpYW50VGVzdHM6IFtcbiAgICAgIHtcbiAgICAgICAgdGVzdFR5cGU6IFBhZ2VWYXJpYW50VGVzdFR5cGUuVXJsUmVzb2x2ZXIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG5dO1xuXG5jb25zdCBtYXBQb3NpdGlvblRvQ2FtZWxDYXNlID0gKHBvc2l0aW9uOiBzdHJpbmcpOiBGbG9hdGluZ0J1dHRvbkxvY2F0aW9uID0+IHtcbiAgaWYgKHBvc2l0aW9uID09PSAnYm90dG9tLWxlZnQnKSB7XG4gICAgcmV0dXJuIEZsb2F0aW5nQnV0dG9uTG9jYXRpb24uQk9UVE9NX0xFRlQ7XG4gIH1cbiAgaWYgKHBvc2l0aW9uID09PSAnbWlkZGxlLWxlZnQnKSB7XG4gICAgcmV0dXJuIEZsb2F0aW5nQnV0dG9uTG9jYXRpb24uTUlERExFX0xFRlQ7XG4gIH1cbiAgaWYgKHBvc2l0aW9uID09PSAnbWlkZGxlLXJpZ2h0Jykge1xuICAgIHJldHVybiBGbG9hdGluZ0J1dHRvbkxvY2F0aW9uLk1JRERMRV9SSUdIVDtcbiAgfVxuICBpZiAocG9zaXRpb24gPT09ICdib3R0b20tcmlnaHQnKSB7XG4gICAgcmV0dXJuIEZsb2F0aW5nQnV0dG9uTG9jYXRpb24uQk9UVE9NX1JJR0hUO1xuICB9XG4gIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBwb3NpdGlvbjogJHtwb3NpdGlvbn1gKTtcbn07XG5cbi8qKlxuICogVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIGRvIHNvbWUgYWRkaXRpb25hbCBjbGVhbnVwIG9mIHRoZSB2MyBmcm9udGVuZCBjb25maWcgdG8gZW5zdXJlIHRoYXQgdGhlIGNvbmZpZyBpcyBpbiB0aGUgY29ycmVjdCBmb3JtYXQuXG4gKi9cbmNvbnN0IHYzRnJvbnRlbmRDb25maWdDbGVhbnVwID0gKFxuICB2M1Jvb3RDb25maWc6IEZyb250ZW5kQ29uZmlnVjNSZXNwb25zZSxcbik6IEZyb250ZW5kQ29uZmlnVjNSZXNwb25zZSA9PiB7XG4gIGNvbnN0IHsgdWlDb25maWdzIH0gPSB2M1Jvb3RDb25maWc7XG4gIGlmICghdWlDb25maWdzKSB7XG4gICAgcmV0dXJuIHYzUm9vdENvbmZpZztcbiAgfVxuICBjb25zdCB7IGZsb2F0aW5nQnV0dG9uLCBsb29rQW5kRmVlbCB9ID0gdWlDb25maWdzIGFzIGFueTtcbiAgaWYgKCFmbG9hdGluZ0J1dHRvbiB8fCAhbG9va0FuZEZlZWwpIHtcbiAgICByZXR1cm4gdjNSb290Q29uZmlnO1xuICB9XG4gIGNvbnN0IHsgZm9udFNpemUsIGxpbmVIZWlnaHQgfSA9IGxvb2tBbmRGZWVsLnR5cG9ncmFwaHkgYXMgYW55O1xuICByZXR1cm4ge1xuICAgIC4uLnYzUm9vdENvbmZpZyxcbiAgICB1aUNvbmZpZ3M6IHtcbiAgICAgIC4uLnVpQ29uZmlncyxcbiAgICAgIGZsb2F0aW5nQnV0dG9uOiB7XG4gICAgICAgIC4uLmZsb2F0aW5nQnV0dG9uLFxuICAgICAgICBwb3NpdGlvbjogbWFwUG9zaXRpb25Ub0NhbWVsQ2FzZShcbiAgICAgICAgICB2M1Jvb3RDb25maWcudWlDb25maWdzPy5mbG9hdGluZ0J1dHRvbj8ucG9zaXRpb24gYXMgc3RyaW5nLFxuICAgICAgICApLFxuICAgICAgfSxcbiAgICAgIGxvb2tBbmRGZWVsOiB7XG4gICAgICAgIC4uLmxvb2tBbmRGZWVsLFxuICAgICAgICBjaGF0SGVhZGVyTG9nb0RhcmtTcmM6IGxvb2tBbmRGZWVsLmNoYXRIZWFkZXJMb2dvRGFya1NyYyB8fCBsb29rQW5kRmVlbC5jaGF0SGVhZGVyTG9nb1NyYyxcbiAgICAgICAgY2hhdEhlYWRlckxvZ29MaWdodFNyYzogbG9va0FuZEZlZWwuY2hhdEhlYWRlckxvZ29MaWdodFNyYyB8fCBsb29rQW5kRmVlbC5jaGF0SGVhZGVyTG9nb1NyYyxcbiAgICAgICAgdHlwb2dyYXBoeToge1xuICAgICAgICAgIC4uLmxvb2tBbmRGZWVsLnR5cG9ncmFwaHksXG4gICAgICAgICAgZm9udFNpemU6IHtcbiAgICAgICAgICAgIC8vIFRoZSBmb250cyBzaXplcyBhcmUgZGVmaW5lZCBkaWZmZXJlbnRseSBpbiB0aGUgYmFja2VuZCBjb25maWdcbiAgICAgICAgICAgIC8vIHNvIHdlIG5lZWQgdG8gbWFwIHRoZSB2YWx1ZXMgdG8gdGhlIGNvcnJlY3QgY2FtZWwgY2FzZSBrZXlzXG4gICAgICAgICAgICBiMTogZm9udFNpemU/LmIxIHx8IGZvbnRTaXplPy5iXzEsXG4gICAgICAgICAgICBiMjogZm9udFNpemU/LmIyIHx8IGZvbnRTaXplPy5iXzIsXG4gICAgICAgICAgICBiMzogZm9udFNpemU/LmIzIHx8IGZvbnRTaXplPy5iXzMsXG4gICAgICAgICAgICBiNDogZm9udFNpemU/LmI0IHx8IGZvbnRTaXplPy5iXzQsXG4gICAgICAgICAgICBiNTogZm9udFNpemU/LmI1IHx8IGZvbnRTaXplPy5iXzUsXG4gICAgICAgICAgICBoMTogZm9udFNpemU/LmgxIHx8IGZvbnRTaXplPy5oXzEsXG4gICAgICAgICAgICBoMjogZm9udFNpemU/LmgyIHx8IGZvbnRTaXplPy5oXzIsXG4gICAgICAgICAgICBoMzogZm9udFNpemU/LmgzIHx8IGZvbnRTaXplPy5oXzMsXG4gICAgICAgICAgICBsMTogZm9udFNpemU/LmwxIHx8IGZvbnRTaXplPy5sXzEsXG4gICAgICAgICAgICBsMjogZm9udFNpemU/LmwyIHx8IGZvbnRTaXplPy5sXzIsXG4gICAgICAgICAgICB0MTogZm9udFNpemU/LnQxIHx8IGZvbnRTaXplPy50XzEsXG4gICAgICAgICAgICB0MjogZm9udFNpemU/LnQyIHx8IGZvbnRTaXplPy50XzIsXG4gICAgICAgICAgICB0MzogZm9udFNpemU/LnQzIHx8IGZvbnRTaXplPy50XzMsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBsaW5lSGVpZ2h0OiB7XG4gICAgICAgICAgICAuLi5sb29rQW5kRmVlbC50eXBvZ3JhcGh5LmxpbmVIZWlnaHQsXG4gICAgICAgICAgICAnMTE0JzogbGluZUhlaWdodD8ubGhfMTE0IHx8IGxpbmVIZWlnaHQ/LlsxMTRdLFxuICAgICAgICAgICAgJzExNic6IGxpbmVIZWlnaHQ/LmxoXzExNiB8fCBsaW5lSGVpZ2h0Py5bMTE2XSxcbiAgICAgICAgICAgICcxMTgnOiBsaW5lSGVpZ2h0Py5saF8xMTggfHwgbGluZUhlaWdodD8uWzExOF0sXG4gICAgICAgICAgICAnMTIwJzogbGluZUhlaWdodD8ubGhfMTIwIHx8IGxpbmVIZWlnaHQ/LlsxMjBdLFxuICAgICAgICAgICAgJzEyNCc6IGxpbmVIZWlnaHQ/LmxoXzEyNCB8fCBsaW5lSGVpZ2h0Py5bMTI0XSxcbiAgICAgICAgICAgICcxMjgnOiBsaW5lSGVpZ2h0Py5saF8xMjggfHwgbGluZUhlaWdodD8uWzEyOF0sXG4gICAgICAgICAgICAnMTMwJzogbGluZUhlaWdodD8ubGhfMTMwIHx8IGxpbmVIZWlnaHQ/LlsxMzBdLFxuICAgICAgICAgICAgJzEzMyc6IGxpbmVIZWlnaHQ/LmxoXzEzMyB8fCBsaW5lSGVpZ2h0Py5bMTMzXSxcbiAgICAgICAgICAgICcxNDAnOiBsaW5lSGVpZ2h0Py5saF8xNDAgfHwgbGluZUhlaWdodD8uWzE0MF0sXG4gICAgICAgICAgICAnMTQ4JzogbGluZUhlaWdodD8ubGhfMTQ4IHx8IGxpbmVIZWlnaHQ/LlsxNDhdLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgR3JhcGhRTFByb3ZpZGVyID0gKHtcbiAgY2hpbGRyZW4sXG4gIHJlcXVlc3RWM0NvbmZpZyA9IGZhbHNlLFxuICBtb2NrVjNDb25maWdUb0RlcHJlY2F0ZWRDb25maWcgPSBmYWxzZSxcbn06IEdyYXBoUUxQcm92aWRlclByb3BzKSA9PiB7XG4gIGNvbnN0IGFwaUtleSA9IHVzZUF0b21WYWx1ZShvcmdMZXZlbEFwaUtleUF0b20pO1xuICBjb25zdCBiYXNlVXJsID0gdXNlQXRvbVZhbHVlKGJhc2VVcmxBdG9tKTtcbiAgY29uc3QgaXNSZWFkeSA9IHVzZU1lbW8oKCkgPT4gQm9vbGVhbihhcGlLZXkgJiYgYmFzZVVybCksIFthcGlLZXksIGJhc2VVcmxdKTtcblxuICBjb25zdCBleGVjdXRlUXVlcnkgPSB1c2VDYWxsYmFjayhcbiAgICBhc3luYyAocXVlcnk6IHN0cmluZywgdmFyaWFibGVzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pID0+IHtcbiAgICAgIGlmICghaXNSZWFkeSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0dyYXBoUUwgY2xpZW50IG5vdCByZWFkeSAtIG1pc3NpbmcgYXBpS2V5IG9yIGJhc2VVcmwnKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChgJHtiYXNlVXJsfS92MS9ncmFwaHFsYCwge1xuICAgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke2FwaUtleX1gLFxuICAgICAgICB9LFxuICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7IHF1ZXJ5LCB2YXJpYWJsZXMgfSksXG4gICAgICB9KTtcblxuICAgICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEdyYXBoUUwgcmVxdWVzdCBmYWlsZWQ6ICR7cmVzcG9uc2Uuc3RhdHVzVGV4dH1gKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVzcG9uc2UuanNvbigpO1xuICAgICAgaWYgKHJlc3VsdC5lcnJvcnMpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBHcmFwaFFMIGVycm9yczogJHtKU09OLnN0cmluZ2lmeShyZXN1bHQuZXJyb3JzKX1gKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJlc3VsdC5kYXRhO1xuICAgIH0sXG4gICAgW2FwaUtleSwgYmFzZVVybCwgaXNSZWFkeV0sXG4gICk7XG5cbiAgY29uc3QgZ2V0T3JnSWQgPSB1c2VDYWxsYmFjayhhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBleGVjdXRlUXVlcnkoZ2V0TWVyY2hhbnRPcmdJZFF1ZXJ5KTtcbiAgICByZXR1cm4gdmFsaWRhdGVHcmFwaFFMT3JnSWQocmVzcG9uc2UubWUub3JnPy5pZCk7XG4gIH0sIFtleGVjdXRlUXVlcnldKTtcblxuICBjb25zdCBnZXRWM0NvbmZpZyA9IHVzZUNhbGxiYWNrKGFzeW5jICgpOiBQcm9taXNlPEdyYXBoUWxDb25maWdWYWx1ZXM+ID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcXVlcnkgPSBhd2FpdCBnZXRDb2xvcnNBbmRGcm9udGVuZFF1ZXJ5KCk7XG4gICAgICBpZiAoIXF1ZXJ5KSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignQ29sb3JzIGFuZCBmcm9udGVuZCBjb25maWcgcXVlcnkgaXMgbm90IGRlZmluZWQnKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZXhlY3V0ZVF1ZXJ5KHF1ZXJ5KTtcblxuICAgICAgLy8gV2UgbWF5IHVwZGF0ZSB0aGlzIHJvb3QgY29uZmlnIGxvY2F0aW9uIGluIHRoZSBmdXR1cmVcbiAgICAgIGNvbnN0IHYzUm9vdENvbmZpZyA9IHJlc3BvbnNlLm1lLmdldFByb2R1Y3RzQ29uZmlnQnlWZXJzaW9uPy52X3RocmVlX2NvbmZpZz8udmFsdWVzO1xuICAgICAgY29uc3QgZnJvbnRlbmRWYWx1ZXMgPSByZXNwb25zZS5tZS5nZXRQcm9kdWN0c0NvbmZpZ0J5VmVyc2lvbj8uZnJvbnRlbmQ/LnZhbHVlcztcblxuICAgICAgY29uc3QgdjNGcm9udGVuZENvbmZpZyA9IHYzRnJvbnRlbmRDb25maWdDbGVhbnVwKFxuICAgICAgICB0cmFuc2Zvcm1TbmFrZVRvQ2FtZWwodjNSb290Q29uZmlnKSBhcyBGcm9udGVuZENvbmZpZ1YzUmVzcG9uc2UsXG4gICAgICApO1xuXG4gICAgICAvLyBHZXQgbWVyY2hhbnRfb3ZlcnJpZGVfY3NzIGZyb20gZnJvbnRlbmQudmFsdWVzIGlmIHYzUm9vdENvbmZpZyBpcyBub3QgYXZhaWxhYmxlXG4gICAgICBjb25zdCBmcm9udGVuZE1lcmNoYW50T3ZlcnJpZGVDc3MgPSBmcm9udGVuZFZhbHVlcz8ubWVyY2hhbnRfb3ZlcnJpZGVfY3NzO1xuICAgICAgY29uc3QgdjNNZXJjaGFudE92ZXJyaWRlQ3NzID0gdjNGcm9udGVuZENvbmZpZy51aUNvbmZpZ3M/Lm1lcmNoYW50T3ZlcnJpZGVDc3M7XG4gICAgICBjb25zdCBtZXJjaGFudE92ZXJyaWRlQ3NzID0gdjNNZXJjaGFudE92ZXJyaWRlQ3NzIHx8IGZyb250ZW5kTWVyY2hhbnRPdmVycmlkZUNzcztcblxuICAgICAgY29uc3QgdjNNb3VudGluZ0NvbmZpZ3NBcnJheSA9ICh0cmFuc2Zvcm1TbmFrZVRvQ2FtZWwodjNSb290Q29uZmlnPy5tb3VudGluZ19jb25maWdzKSA/P1xuICAgICAgICBbXSkgYXMgdW5rbm93biBhcyB7IGtleTogc3RyaW5nOyBjb25maWc6IFdpZGdldE1vdW50aW5nQ29uZmlnIH1bXTtcblxuICAgICAgY29uc3QgdjNNb3VudGluZ0NvbmZpZ3MgPSB2M01vdW50aW5nQ29uZmlnc0FycmF5LnJlZHVjZShcbiAgICAgICAgKGFjYywgeyBrZXksIGNvbmZpZyB9KSA9PiB7XG4gICAgICAgICAgYWNjW2tleV0gPSB2YWxpZGF0ZUFuZFRyYW5zZm9ybU1vdW50aW5nQ29uZmlnKGNvbmZpZywga2V5KTtcbiAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICB9LFxuICAgICAgICB7fSBhcyBSZWNvcmQ8c3RyaW5nLCBXaWRnZXRNb3VudGluZ0NvbmZpZz4sXG4gICAgICApO1xuXG4gICAgICBjb25zdCB2M3dpZGdldENvbmZpZ3NBcnJheSA9ICh0cmFuc2Zvcm1TbmFrZVRvQ2FtZWwodjNSb290Q29uZmlnPy53aWRnZXRfY29uZmlncykgPz9cbiAgICAgICAgW10pIGFzIHVua25vd24gYXMgV2lkZ2V0Q29uZmlnVjNbXTtcbiAgICAgIGNvbnN0IHYzV2lkZ2V0Q29uZmlncyA9IE9iamVjdC5mcm9tRW50cmllcyhcbiAgICAgICAgdjN3aWRnZXRDb25maWdzQXJyYXk/Lm1hcCgoeyB3aWRnZXRDb25maWdJZCwgLi4ucmVzdCB9OiBXaWRnZXRDb25maWdWMykgPT4gW1xuICAgICAgICAgIHdpZGdldENvbmZpZ0lkLFxuICAgICAgICAgIHsgd2lkZ2V0Q29uZmlnSWQsIC4uLnJlc3QgfSBhcyBXaWRnZXRDb25maWdWMyxcbiAgICAgICAgXSksXG4gICAgICApIGFzIFJlY29yZDxzdHJpbmcsIFdpZGdldENvbmZpZ1YzPjtcbiAgICAgIGNvbnN0IHYzcGFnZVZhcmlhbnRzOiBQYWdlVmFyaWFudENvbmZpZ1tdID0gQXJyYXkuaXNBcnJheSh2M1Jvb3RDb25maWc/LnBhZ2VfdmFyaWFudHMpXG4gICAgICAgID8gdjNSb290Q29uZmlnPy5wYWdlX3ZhcmlhbnRzLm1hcCh2YWxpZGF0ZUFuZFRyYW5zZm9ybVBhZ2VWYXJpYW50cylcbiAgICAgICAgOiBERUZBVUxUX1BBR0VfVkFSSUFOVFM7XG5cbiAgICAgIGNvbnN0IHYzQ29sb3JzQ29uZmlnID0gdHJhbnNmb3JtU25ha2VUb0NhbWVsKHYzUm9vdENvbmZpZz8uY29sb3JzPy52YWx1ZXMpO1xuICAgICAgY29uc3QgaXNTZW1hbnRpY0NvbG9ycyA9ICF3aW5kb3cubG9jYXRpb24uaHJlZi5pbmNsdWRlcygnZ2xvYmFscz1tZXJjaGFudCcpO1xuICAgICAgY29uc3QgaXNTdG9yeWJvb2sgPSB3aW5kb3cudG9wPy5sb2NhdGlvbi5ocmVmLmluY2x1ZGVzKCc/cGF0aD0nKTtcblxuICAgICAgLy8gSWYgbm8gdjMgY29sb3JzIGFyZSBmb3VuZCwgcmV0dXJuIHRoZSBkZWZhdWx0IG1vY2sgY29uZmlnIHRvIGFsbG93IHVuY29uZmlndXJlZCBtZXJjaGFudHMgdG8gd29yayBieSBkZWZhdWx0XG4gICAgICBpZiAoIXYzUm9vdENvbmZpZz8uY29sb3JzIHx8IChpc1N0b3J5Ym9vayAmJiBpc1NlbWFudGljQ29sb3JzKSkge1xuICAgICAgICBsb2dnZXIubG9nRGVidWcoJ0dyYXBoUUxDb250ZXh0IHwgUmV0dXJuaW5nIG1vY2sgdjMgY29uZmlnJywge1xuICAgICAgICAgIGNvbG9yc0NvbmZpZzogbW9ja1YzQ29sb3JzQ29uZmlnLFxuICAgICAgICAgIGZyb250ZW5kQ29uZmlnOiBtb2NrVjNGcm9udGVuZENvbmZpZyBhcyBGcm9udGVuZENvbmZpZ1YzUmVzcG9uc2UsXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBjb2xvcnNDb25maWcgPSBtb2NrVjNDb2xvcnNDb25maWc7XG4gICAgICAgIGNvbnN0IGZyb250ZW5kQ29uZmlnID0gbW9ja1YzRnJvbnRlbmRDb25maWc7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgY29sb3JzQ29uZmlnLFxuICAgICAgICAgIGZyb250ZW5kQ29uZmlnOiBmcm9udGVuZENvbmZpZyBhcyBGcm9udGVuZENvbmZpZ1YzUmVzcG9uc2UsXG4gICAgICAgICAgb3JnUGFnZUNvbmZpZzoge1xuICAgICAgICAgICAgcGFnZVZhcmlhbnRzOiBERUZBVUxUX1BBR0VfVkFSSUFOVFMsXG4gICAgICAgICAgICB3aWRnZXRDb25maWdzOiB7fSxcbiAgICAgICAgICAgIG1vdW50aW5nQ29uZmlnczoge30sXG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgbG9nZ2VyLmxvZ0RlYnVnKCdHcmFwaFFMQ29udGV4dCB8IFJldHVybmluZyB2MyBjb25maWcnLCB7XG4gICAgICAgIGNvbG9yc0NvbmZpZzogdjNDb2xvcnNDb25maWcgYXMgQ29sb3JzQ29uZmlnVjNSZXNwb25zZSxcbiAgICAgICAgZnJvbnRlbmRDb25maWc6IHYzRnJvbnRlbmRDb25maWcsXG4gICAgICAgIG9yZ1BhZ2VDb25maWc6IHtcbiAgICAgICAgICBwYWdlVmFyaWFudHM6IHYzcGFnZVZhcmlhbnRzLFxuICAgICAgICAgIHdpZGdldENvbmZpZ3M6IHYzV2lkZ2V0Q29uZmlncyxcbiAgICAgICAgICBtb3VudGluZ0NvbmZpZ3M6IHYzTW91bnRpbmdDb25maWdzLFxuICAgICAgICB9LFxuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGNvbG9yc0NvbmZpZzogdjNDb2xvcnNDb25maWcgYXMgQ29sb3JzQ29uZmlnVjNSZXNwb25zZSxcbiAgICAgICAgZnJvbnRlbmRDb25maWc6IHtcbiAgICAgICAgICAuLi4odjNGcm9udGVuZENvbmZpZyBhcyBGcm9udGVuZENvbmZpZ1YzUmVzcG9uc2UpLFxuICAgICAgICAgIG1lcmNoYW50T3ZlcnJpZGVDc3MsXG4gICAgICAgICAgLy8gTmVlZCB0byByZXBsYWNlIHRoZSBhdXRvbWF0aWMgd2lkZ2V0IGNvbmZpZ3Mgd2l0aCB0aGUgb2JqZWN0IGJhc2VkIG9uZXNcbiAgICAgICAgICB3aWRnZXRDb25maWdzOiB2M1dpZGdldENvbmZpZ3MsXG4gICAgICAgIH0sXG4gICAgICAgIG9yZ1BhZ2VDb25maWc6IHtcbiAgICAgICAgICBwYWdlVmFyaWFudHM6IHYzcGFnZVZhcmlhbnRzLFxuICAgICAgICAgIHdpZGdldENvbmZpZ3M6IHYzV2lkZ2V0Q29uZmlncyxcbiAgICAgICAgICBtb3VudGluZ0NvbmZpZ3M6IHYzTW91bnRpbmdDb25maWdzLFxuICAgICAgICB9LFxuICAgICAgICAvLyBUT0RPOiBBZGQgd2lkZ2V0cyBhbmQgb3RoZXIgY29uZmlnIGhlcmVcbiAgICAgIH07XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBsb2dnZXIubG9nRXJyb3IoJ0Vycm9yIGZldGNoaW5nIGdyYXBocWwgY29sb3JzIGFuZCBmcm9udGVuZCBjb25maWcnLCBlcnIpO1xuICAgICAgcmV0dXJuIHsgY29sb3JzQ29uZmlnOiB1bmRlZmluZWQsIGZyb250ZW5kQ29uZmlnOiB1bmRlZmluZWQgfTtcbiAgICB9XG4gIH0sIFtleGVjdXRlUXVlcnksIG1vY2tWM0NvbmZpZ1RvRGVwcmVjYXRlZENvbmZpZ10pO1xuXG4gIGNvbnN0IGdldENvbG9yc0FuZEZyb250ZW5kQ29uZmlnID0gdXNlQ2FsbGJhY2soYXN5bmMgKCk6IFByb21pc2U8R3JhcGhRbENvbmZpZ1ZhbHVlcz4gPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBxdWVyeSA9IGF3YWl0IGdldENvbG9yc0FuZEZyb250ZW5kUXVlcnkoKTtcbiAgICAgIGlmICghcXVlcnkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDb2xvcnMgYW5kIGZyb250ZW5kIGNvbmZpZyBxdWVyeSBpcyBub3QgZGVmaW5lZCcpO1xuICAgICAgfVxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBleGVjdXRlUXVlcnkocXVlcnkpO1xuICAgICAgaWYgKFxuICAgICAgICByZXNwb25zZS5tZS5nZXRQcm9kdWN0c0NvbmZpZ0J5VmVyc2lvbj8udmVyc2lvbiAhPT0gQ29uZmlnVmVyc2lvbkVudW0uVjMgJiZcbiAgICAgICAgIW1vY2tWM0NvbmZpZ1RvRGVwcmVjYXRlZENvbmZpZ1xuICAgICAgKSB7XG4gICAgICAgIGNvbnN0IGNvbG9yc0NvbmZpZyA9IHJlc3BvbnNlLm1lLmdldFByb2R1Y3RzQ29uZmlnQnlWZXJzaW9uPy5jb2xvcnM/LnZhbHVlcztcbiAgICAgICAgY29uc3QgZnJvbnRlbmRDb25maWcgPSByZXNwb25zZS5tZS5nZXRQcm9kdWN0c0NvbmZpZ0J5VmVyc2lvbj8uZnJvbnRlbmQ/LnZhbHVlcztcbiAgICAgICAgY29uc3QgdHJhbnNmb3JtZWRDb2xvckNvbmZpZyA9IHRyYW5zZm9ybVNuYWtlVG9DYW1lbChjb2xvcnNDb25maWcpO1xuICAgICAgICBjb25zdCB0cmFuc2Zvcm1lZEZyb250ZW5kQ29uZmlnID0gdHJhbnNmb3JtU25ha2VUb0NhbWVsKGZyb250ZW5kQ29uZmlnKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjb2xvcnNDb25maWc6IHRyYW5zZm9ybWVkQ29sb3JDb25maWcgYXMgQ29sb3JzQ29uZmlnUmVzcG9uc2UsXG4gICAgICAgICAgZnJvbnRlbmRDb25maWc6IHRyYW5zZm9ybWVkRnJvbnRlbmRDb25maWcgYXMgRnJvbnRlbmRDb25maWdSZXNwb25zZSxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIC8vIFRPRE86IFJFTU9WRSBNT0NLRUQgQ09ORklHIE9OQ0UgV0UgSEFWRSBUSEUgTkVXIENPTkZJRyBJTVBMRU1FTlRFRCBPTiBCQUNLRU5EXG4gICAgICBjb25zdCBtZXJjaGFudENvbG9yc0NvbmZpZyA9IHJlc3BvbnNlLm1lLmdldFByb2R1Y3RzQ29uZmlnQnlWZXJzaW9uPy5jb2xvcnM/LnZhbHVlcztcbiAgICAgIGNvbnN0IHRyYW5zZm9ybWVkTWVyY2hhbnRDb2xvckNvbmZpZyA9IHRyYW5zZm9ybVNuYWtlVG9DYW1lbChtZXJjaGFudENvbG9yc0NvbmZpZyk7XG5cbiAgICAgIGNvbnN0IGlzU2VtYW50aWNDb2xvcnMgPSAhd2luZG93LmxvY2F0aW9uLmhyZWYuaW5jbHVkZXMoJ2dsb2JhbHM9bWVyY2hhbnQnKTtcblxuICAgICAgY29uc3QgY29sb3JzQ29uZmlnID0gbW9ja1YzQ29sb3JzQ29uZmlnO1xuICAgICAgY29uc3QgZnJvbnRlbmRDb25maWcgPSBtb2NrVjNGcm9udGVuZENvbmZpZztcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY29sb3JzQ29uZmlnOiBpc1NlbWFudGljQ29sb3JzXG4gICAgICAgICAgPyAoY29sb3JzQ29uZmlnIGFzIENvbG9yc0NvbmZpZ1YzUmVzcG9uc2UpXG4gICAgICAgICAgOiAodHJhbnNmb3JtZWRNZXJjaGFudENvbG9yQ29uZmlnIGFzIENvbG9yc0NvbmZpZ1YzUmVzcG9uc2UpLFxuICAgICAgICBmcm9udGVuZENvbmZpZzogZnJvbnRlbmRDb25maWcgYXMgRnJvbnRlbmRDb25maWdWM1Jlc3BvbnNlLFxuICAgICAgfTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGxvZ2dlci5sb2dFcnJvcignRXJyb3IgZmV0Y2hpbmcgZ3JhcGhxbCBjb2xvcnMgYW5kIGZyb250ZW5kIGNvbmZpZycsIGVycik7XG4gICAgICByZXR1cm4geyBjb2xvcnNDb25maWc6IHVuZGVmaW5lZCwgZnJvbnRlbmRDb25maWc6IHVuZGVmaW5lZCB9O1xuICAgIH1cbiAgfSwgW2V4ZWN1dGVRdWVyeV0pO1xuXG4gIGNvbnN0IGdldENvbmZpZyA9IHVzZUNhbGxiYWNrKGFzeW5jICgpOiBQcm9taXNlPEdyYXBoUWxDb25maWdWYWx1ZXM+ID0+IHtcbiAgICBpZiAocmVxdWVzdFYzQ29uZmlnKSB7XG4gICAgICBsb2dnZXIubG9nRGVidWcoJ0dyYXBoUUxDb250ZXh0IHwgR2V0dGluZyB2MyBjb25maWcnLCByZXF1ZXN0VjNDb25maWcpO1xuICAgICAgcmV0dXJuIGdldFYzQ29uZmlnKCk7XG4gICAgfVxuICAgIGxvZ2dlci5sb2dEZWJ1ZygnR3JhcGhRTENvbnRleHQgfCBHZXR0aW5nIGNvbG9ycyBhbmQgZnJvbnRlbmQgY29uZmlnJywgcmVxdWVzdFYzQ29uZmlnKTtcbiAgICByZXR1cm4gZ2V0Q29sb3JzQW5kRnJvbnRlbmRDb25maWcoKTtcbiAgfSwgW2dldENvbG9yc0FuZEZyb250ZW5kQ29uZmlnLCBnZXRWM0NvbmZpZywgcmVxdWVzdFYzQ29uZmlnXSk7XG5cbiAgY29uc3QgdmFsdWUgPSB1c2VNZW1vKFxuICAgICgpID0+ICh7XG4gICAgICBleGVjdXRlUXVlcnksXG4gICAgICBnZXRPcmdJZCxcbiAgICAgIGdldENvbG9yc0FuZEZyb250ZW5kQ29uZmlnLFxuICAgICAgZ2V0VjNDb25maWcsXG4gICAgICBnZXRDb25maWcsXG4gICAgICBpc1JlYWR5LFxuICAgIH0pLFxuICAgIFtleGVjdXRlUXVlcnksIGdldE9yZ0lkLCBnZXRDb2xvcnNBbmRGcm9udGVuZENvbmZpZywgZ2V0VjNDb25maWcsIGdldENvbmZpZywgaXNSZWFkeV0sXG4gICk7XG5cbiAgcmV0dXJuIDxHcmFwaFFMQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17dmFsdWV9PntjaGlsZHJlbn08L0dyYXBoUUxDb250ZXh0LlByb3ZpZGVyPjtcbn07XG5cbmV4cG9ydCBjb25zdCB1c2VHcmFwaFFMQ2xpZW50ID0gKCkgPT4ge1xuICBjb25zdCBjb250ZXh0ID0gdXNlQ29udGV4dChHcmFwaFFMQ29udGV4dCk7XG4gIGlmICghY29udGV4dCkge1xuICAgIHRocm93IG5ldyBFcnJvcigndXNlR3JhcGhRTENsaWVudCBtdXN0IGJlIHVzZWQgd2l0aGluIGEgR3JhcGhRTFByb3ZpZGVyJyk7XG4gIH1cbiAgcmV0dXJuIGNvbnRleHQ7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQStDQSxNQUFNLGlCQUFpQixjQUEwQyxLQUFLO0FBRXRFLE1BQU0sU0FBUyxJQUFJQSxlQUFPLGlCQUFpQjtBQVEzQyxNQUFNQyx3QkFBNkMsQ0FDakQ7Q0FDRSxXQUFXO0NBQ1gsYUFBYTtDQUNiLGdCQUFnQjtDQUNoQixnQkFBZ0IsRUFBRTtDQUNsQixjQUFjLENBQ1osRUFDRSxVQUFVLG9CQUFvQixhQUMvQixDQUNGO0NBQ0YsRUFDRDtDQUNFLFdBQVc7Q0FDWCxhQUFhO0NBQ2Isb0JBQW9CO0NBQ3BCLGdCQUFnQixFQUFFO0NBQ2xCLGNBQWMsQ0FDWixFQUNFLFVBQVUsb0JBQW9CLGFBQy9CLENBQ0Y7Q0FDRixDQUNGO0FBRUQsTUFBTSwwQkFBMEIsYUFBNkM7QUFDM0UsS0FBSSxhQUFhLGNBQ2YsUUFBTyx1QkFBdUI7QUFFaEMsS0FBSSxhQUFhLGNBQ2YsUUFBTyx1QkFBdUI7QUFFaEMsS0FBSSxhQUFhLGVBQ2YsUUFBTyx1QkFBdUI7QUFFaEMsS0FBSSxhQUFhLGVBQ2YsUUFBTyx1QkFBdUI7QUFFaEMsT0FBTSxJQUFJLE1BQU0scUJBQXFCLFdBQVc7Ozs7O0FBTWxELE1BQU0sMkJBQ0osaUJBQzZCO0NBQzdCLE1BQU0sRUFBRSxjQUFjO0FBQ3RCLEtBQUksQ0FBQyxVQUNILFFBQU87Q0FFVCxNQUFNLEVBQUUsZ0JBQWdCLGdCQUFnQjtBQUN4QyxLQUFJLENBQUMsa0JBQWtCLENBQUMsWUFDdEIsUUFBTztDQUVULE1BQU0sRUFBRSxVQUFVLGVBQWUsWUFBWTtBQUM3QyxRQUFPO0VBQ0wsR0FBRztFQUNILFdBQVc7R0FDVCxHQUFHO0dBQ0gsZ0JBQWdCO0lBQ2QsR0FBRztJQUNILFVBQVUsdUJBQ1IsYUFBYSxXQUFXLGdCQUFnQixTQUN6QztJQUNGO0dBQ0QsYUFBYTtJQUNYLEdBQUc7SUFDSCx1QkFBdUIsWUFBWSx5QkFBeUIsWUFBWTtJQUN4RSx3QkFBd0IsWUFBWSwwQkFBMEIsWUFBWTtJQUMxRSxZQUFZO0tBQ1YsR0FBRyxZQUFZO0tBQ2YsVUFBVTtNQUdSLElBQUksVUFBVSxNQUFNLFVBQVU7TUFDOUIsSUFBSSxVQUFVLE1BQU0sVUFBVTtNQUM5QixJQUFJLFVBQVUsTUFBTSxVQUFVO01BQzlCLElBQUksVUFBVSxNQUFNLFVBQVU7TUFDOUIsSUFBSSxVQUFVLE1BQU0sVUFBVTtNQUM5QixJQUFJLFVBQVUsTUFBTSxVQUFVO01BQzlCLElBQUksVUFBVSxNQUFNLFVBQVU7TUFDOUIsSUFBSSxVQUFVLE1BQU0sVUFBVTtNQUM5QixJQUFJLFVBQVUsTUFBTSxVQUFVO01BQzlCLElBQUksVUFBVSxNQUFNLFVBQVU7TUFDOUIsSUFBSSxVQUFVLE1BQU0sVUFBVTtNQUM5QixJQUFJLFVBQVUsTUFBTSxVQUFVO01BQzlCLElBQUksVUFBVSxNQUFNLFVBQVU7TUFDL0I7S0FDRCxZQUFZO01BQ1YsR0FBRyxZQUFZLFdBQVc7TUFDMUIsT0FBTyxZQUFZLFVBQVUsYUFBYTtNQUMxQyxPQUFPLFlBQVksVUFBVSxhQUFhO01BQzFDLE9BQU8sWUFBWSxVQUFVLGFBQWE7TUFDMUMsT0FBTyxZQUFZLFVBQVUsYUFBYTtNQUMxQyxPQUFPLFlBQVksVUFBVSxhQUFhO01BQzFDLE9BQU8sWUFBWSxVQUFVLGFBQWE7TUFDMUMsT0FBTyxZQUFZLFVBQVUsYUFBYTtNQUMxQyxPQUFPLFlBQVksVUFBVSxhQUFhO01BQzFDLE9BQU8sWUFBWSxVQUFVLGFBQWE7TUFDMUMsT0FBTyxZQUFZLFVBQVUsYUFBYTtNQUMzQztLQUNGO0lBQ0Y7R0FDRjtFQUNGOztBQUdILE1BQWEsbUJBQW1CLEVBQzlCLFVBQ0Esa0JBQWtCLE9BQ2xCLGlDQUFpQyxZQUNQO0NBQzFCLE1BQU0sU0FBUyxhQUFhLG1CQUFtQjtDQUMvQyxNQUFNLFVBQVUsYUFBYSxZQUFZO0NBQ3pDLE1BQU0sVUFBVSxjQUFjLFFBQVEsVUFBVSxRQUFRLEVBQUUsQ0FBQyxRQUFRLFFBQVEsQ0FBQztDQUU1RSxNQUFNLGVBQWUsWUFDbkIsT0FBTyxPQUFlLGNBQXdDO0FBQzVELE1BQUksQ0FBQyxRQUNILE9BQU0sSUFBSSxNQUFNLHVEQUF1RDtFQUd6RSxNQUFNLFdBQVcsTUFBTSxNQUFNLEdBQUcsUUFBUSxjQUFjO0dBQ3BELFFBQVE7R0FDUixTQUFTO0lBQ1AsZ0JBQWdCO0lBQ2hCLGVBQWUsVUFBVTtJQUMxQjtHQUNELE1BQU0sS0FBSyxVQUFVO0lBQUU7SUFBTztJQUFXLENBQUM7R0FDM0MsQ0FBQztBQUVGLE1BQUksQ0FBQyxTQUFTLEdBQ1osT0FBTSxJQUFJLE1BQU0sMkJBQTJCLFNBQVMsYUFBYTtFQUduRSxNQUFNLFNBQVMsTUFBTSxTQUFTLE1BQU07QUFDcEMsTUFBSSxPQUFPLE9BQ1QsT0FBTSxJQUFJLE1BQU0sbUJBQW1CLEtBQUssVUFBVSxPQUFPLE9BQU8sR0FBRztBQUdyRSxTQUFPLE9BQU87SUFFaEI7RUFBQztFQUFRO0VBQVM7RUFBUSxDQUMzQjtDQUVELE1BQU0sV0FBVyxZQUFZLFlBQVk7QUFFdkMsU0FBTyxzQkFEVSxNQUFNLGFBQWEsc0JBQXNCLEVBQ3JCLEdBQUcsS0FBSyxHQUFHO0lBQy9DLENBQUMsYUFBYSxDQUFDO0NBRWxCLE1BQU0sY0FBYyxZQUFZLFlBQTBDO0FBQ3hFLE1BQUk7R0FDRixNQUFNLFFBQVEsTUFBTSwyQkFBMkI7QUFDL0MsT0FBSSxDQUFDLE1BQ0gsT0FBTSxJQUFJLE1BQU0sa0RBQWtEO0dBRXBFLE1BQU0sV0FBVyxNQUFNLGFBQWEsTUFBTTtHQUcxQyxNQUFNLGVBQWUsU0FBUyxHQUFHLDRCQUE0QixnQkFBZ0I7R0FDN0UsTUFBTSxpQkFBaUIsU0FBUyxHQUFHLDRCQUE0QixVQUFVO0dBRXpFLE1BQU0sbUJBQW1CLHdCQUN2QixzQkFBc0IsYUFBYSxDQUNwQztHQUdELE1BQU0sOEJBQThCLGdCQUFnQjtHQUVwRCxNQUFNLHNCQUR3QixpQkFBaUIsV0FBVyx1QkFDTDtHQUtyRCxNQUFNLHFCQUgwQixzQkFBc0IsY0FBYyxpQkFBaUIsSUFDbkYsRUFBRSxFQUU2QyxRQUM5QyxLQUFLLEVBQUUsS0FBSyxhQUFhO0FBQ3hCLFFBQUksT0FBTyxtQ0FBbUMsUUFBUSxJQUFJO0FBQzFELFdBQU87TUFFVCxFQUFFLENBQ0g7R0FFRCxNQUFNLHVCQUF3QixzQkFBc0IsY0FBYyxlQUFlLElBQy9FLEVBQUU7R0FDSixNQUFNLGtCQUFrQixPQUFPLFlBQzdCLHNCQUFzQixLQUFLLEVBQUUsZ0JBQWdCLEdBQUcsV0FBMkIsQ0FDekUsZ0JBQ0E7SUFBRTtJQUFnQixHQUFHO0lBQU0sQ0FDNUIsQ0FBQyxDQUNIO0dBQ0QsTUFBTUMsaUJBQXNDLE1BQU0sUUFBUSxjQUFjLGNBQWMsR0FDbEYsY0FBYyxjQUFjLElBQUksaUNBQWlDLEdBQ2pFO0dBRUosTUFBTSxpQkFBaUIsc0JBQXNCLGNBQWMsUUFBUSxPQUFPO0dBQzFFLE1BQU0sbUJBQW1CLENBQUMsT0FBTyxTQUFTLEtBQUssU0FBUyxtQkFBbUI7R0FDM0UsTUFBTSxjQUFjLE9BQU8sS0FBSyxTQUFTLEtBQUssU0FBUyxTQUFTO0FBR2hFLE9BQUksQ0FBQyxjQUFjLFVBQVcsZUFBZSxrQkFBbUI7QUFDOUQsV0FBTyxTQUFTLDZDQUE2QztLQUMzRCxjQUFjO0tBQ2QsZ0JBQWdCO0tBQ2pCLENBQUM7QUFHRixXQUFPO0tBQ0wsY0FIbUI7S0FJbkIsZ0JBSHFCO0tBSXJCLGVBQWU7TUFDYixjQUFjO01BQ2QsZUFBZSxFQUFFO01BQ2pCLGlCQUFpQixFQUFFO01BQ3BCO0tBQ0Y7O0FBR0gsVUFBTyxTQUFTLHdDQUF3QztJQUN0RCxjQUFjO0lBQ2QsZ0JBQWdCO0lBQ2hCLGVBQWU7S0FDYixjQUFjO0tBQ2QsZUFBZTtLQUNmLGlCQUFpQjtLQUNsQjtJQUNGLENBQUM7QUFFRixVQUFPO0lBQ0wsY0FBYztJQUNkLGdCQUFnQjtLQUNkLEdBQUk7S0FDSjtLQUVBLGVBQWU7S0FDaEI7SUFDRCxlQUFlO0tBQ2IsY0FBYztLQUNkLGVBQWU7S0FDZixpQkFBaUI7S0FDbEI7SUFFRjtXQUNNLEtBQUs7QUFDWixVQUFPLFNBQVMscURBQXFELElBQUk7QUFDekUsVUFBTztJQUFFLGNBQWM7SUFBVyxnQkFBZ0I7SUFBVzs7SUFFOUQsQ0FBQyxjQUFjLCtCQUErQixDQUFDO0NBRWxELE1BQU0sNkJBQTZCLFlBQVksWUFBMEM7QUFDdkYsTUFBSTtHQUNGLE1BQU0sUUFBUSxNQUFNLDJCQUEyQjtBQUMvQyxPQUFJLENBQUMsTUFDSCxPQUFNLElBQUksTUFBTSxrREFBa0Q7R0FFcEUsTUFBTSxXQUFXLE1BQU0sYUFBYSxNQUFNO0FBQzFDLE9BQ0UsU0FBUyxHQUFHLDRCQUE0QixZQUFZLGtCQUFrQixNQUN0RSxDQUFDLGdDQUNEO0lBQ0EsTUFBTSxlQUFlLFNBQVMsR0FBRyw0QkFBNEIsUUFBUTtJQUNyRSxNQUFNLGlCQUFpQixTQUFTLEdBQUcsNEJBQTRCLFVBQVU7QUFHekUsV0FBTztLQUNMLGNBSDZCLHNCQUFzQixhQUFhO0tBSWhFLGdCQUhnQyxzQkFBc0IsZUFBZTtLQUl0RTs7R0FHSCxNQUFNLHVCQUF1QixTQUFTLEdBQUcsNEJBQTRCLFFBQVE7R0FDN0UsTUFBTSxpQ0FBaUMsc0JBQXNCLHFCQUFxQjtBQU9sRixVQUFPO0lBQ0wsY0FOdUIsQ0FBQyxPQUFPLFNBQVMsS0FBSyxTQUFTLG1CQUFtQixHQUV0RCxxQkFNZDtJQUNMLGdCQU5xQjtJQU90QjtXQUNNLEtBQUs7QUFDWixVQUFPLFNBQVMscURBQXFELElBQUk7QUFDekUsVUFBTztJQUFFLGNBQWM7SUFBVyxnQkFBZ0I7SUFBVzs7SUFFOUQsQ0FBQyxhQUFhLENBQUM7Q0FFbEIsTUFBTSxZQUFZLFlBQVksWUFBMEM7QUFDdEUsTUFBSSxpQkFBaUI7QUFDbkIsVUFBTyxTQUFTLHNDQUFzQyxnQkFBZ0I7QUFDdEUsVUFBTyxhQUFhOztBQUV0QixTQUFPLFNBQVMsdURBQXVELGdCQUFnQjtBQUN2RixTQUFPLDRCQUE0QjtJQUNsQztFQUFDO0VBQTRCO0VBQWE7RUFBZ0IsQ0FBQztDQUU5RCxNQUFNLFFBQVEsZUFDTDtFQUNMO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNELEdBQ0Q7RUFBQztFQUFjO0VBQVU7RUFBNEI7RUFBYTtFQUFXO0VBQVEsQ0FDdEY7QUFFRCxRQUFPLG9CQUFDLGVBQWU7RUFBZ0I7RUFBUTtHQUFtQzs7QUFHcEYsTUFBYSx5QkFBeUI7Q0FDcEMsTUFBTSxVQUFVLFdBQVcsZUFBZTtBQUMxQyxLQUFJLENBQUMsUUFDSCxPQUFNLElBQUksTUFBTSx5REFBeUQ7QUFFM0UsUUFBTyJ9
|
|
@@ -181,9 +181,11 @@ const HardcopyProvider = ({ children, hardcopyOverride }) => {
|
|
|
181
181
|
const { trackEvent } = require_amplitudeContext.useAmplitude();
|
|
182
182
|
const { featureFlagService } = require_featureFlagServiceContext.useFeatureFlagService();
|
|
183
183
|
const getHardcopyFromBackend = (0, react.useCallback)(async (request) => {
|
|
184
|
-
|
|
184
|
+
const fallbackWidgetType = request.widgetType === require_contexts_typesV3.WidgetTypeV3.ProductCardV3 ? require_contexts_typesV3.WidgetTypeV3.ImagePromptCardV3 : request.widgetType;
|
|
185
|
+
const overrideEntry = hardcopyOverride?.[request.widgetType] ?? hardcopyOverride?.[fallbackWidgetType];
|
|
186
|
+
if (overrideEntry) {
|
|
185
187
|
logger.logDebug("using hardcopy override", request.widgetType);
|
|
186
|
-
return
|
|
188
|
+
return overrideEntry;
|
|
187
189
|
}
|
|
188
190
|
const overrideConfigVersion = require_urlsParser.getQueryParam("spiffy_config_version") || require_urlsParser.getQueryParam("envive_config_version") || void 0;
|
|
189
191
|
const widgetTextRequest = {
|
|
@@ -265,4 +267,4 @@ const useHardcopy = () => {
|
|
|
265
267
|
//#endregion
|
|
266
268
|
exports.HardcopyProvider = HardcopyProvider;
|
|
267
269
|
exports.useHardcopy = useHardcopy;
|
|
268
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFyZGNvcHlDb250ZXh0LmNqcyIsIm5hbWVzIjpbIkxvZ2dlciIsInRvQ2FtZWxDYXNlIiwiTU9DS19IQVJEQ09QWV9SRVNQT05TRTogUGFydGlhbDxSZWNvcmQ8V2lkZ2V0VHlwZVYzLCBIYXJkY29weVJlc3BvbnNlPj4iLCJXaWRnZXRUeXBlVjMiLCJIYXJkY29weVByb3ZpZGVyOiBSZWFjdC5GQzxIYXJkY29weVByb3ZpZGVyUHJvcHM+IiwiYXBwRGV0YWlsc0F0b20iLCJ1c2VBbXBsaXR1ZGUiLCJ1c2VGZWF0dXJlRmxhZ1NlcnZpY2UiLCJnZXRRdWVyeVBhcmFtIiwid2lkZ2V0VGV4dFJlcXVlc3Q6IFdpZGdldFRleHRSZXF1ZXN0IiwiRW52aXZlTWV0cmljc0V2ZW50TmFtZSIsIkNvbW1lcmNlQXBpQ2xpZW50Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbnRleHRzL2hhcmRjb3B5Q29udGV4dC9oYXJkY29weUNvbnRleHQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlYWN0Tm9kZSwgY3JlYXRlQ29udGV4dCwgdXNlQ2FsbGJhY2ssIHVzZUNvbnRleHQsIHVzZU1lbW8sIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IExvZ2dlciBmcm9tICdzcmMvYXBwbGljYXRpb24vbG9nZ2luZy9sb2dnZXInO1xuaW1wb3J0IHsgdjQgYXMgdXVpZCB9IGZyb20gJ3V1aWQnO1xuaW1wb3J0IENvbW1lcmNlQXBpQ2xpZW50IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9jb21tZXJjZS1hcGknO1xuaW1wb3J0IHsgV2lkZ2V0U3RyaW5nLCBXaWRnZXRUZXh0IH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9hcGkvd2lkZ2V0VGV4dCc7XG5pbXBvcnQgeyBXaWRnZXRUZXh0UmVxdWVzdCB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvYXBpL3dpZGdldFRleHRSZXF1ZXN0JztcblxuaW1wb3J0IHsgdXNlQXRvbVZhbHVlIH0gZnJvbSAnam90YWknO1xuaW1wb3J0IHsgYXBwRGV0YWlsc0F0b20gfSBmcm9tICdzcmMvYXRvbXMvYXBwJztcbmltcG9ydCB7IEVudml2ZU1ldHJpY3NFdmVudE5hbWUgfSBmcm9tICdzcmMvc2VydmljZXMvYW1wbGl0dWRlU2VydmljZS9hbXBsaXR1ZGVTZXJ2aWNlJztcbmltcG9ydCB7IHRvQ2FtZWxDYXNlIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy91dGlscy9zbmFrZVRvQ2FtZWxUcmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBVc2VyRXZlbnQgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzJztcbmltcG9ydCB7IGdldFF1ZXJ5UGFyYW0gfSBmcm9tICdzcmMvYXBwbGljYXRpb24vdXRpbHMnO1xuaW1wb3J0IHsgV2lkZ2V0VHlwZVYzIH0gZnJvbSAnLi4vdHlwZXNWMyc7XG5pbXBvcnQgeyB1c2VGZWF0dXJlRmxhZ1NlcnZpY2UgfSBmcm9tICcuLi9mZWF0dXJlRmxhZ1NlcnZpY2VDb250ZXh0L2ZlYXR1cmVGbGFnU2VydmljZUNvbnRleHQnO1xuaW1wb3J0IHsgdXNlQW1wbGl0dWRlIH0gZnJvbSAnLi4vYW1wbGl0dWRlQ29udGV4dCc7XG5cbmNvbnN0IGxvZ2dlciA9IG5ldyBMb2dnZXIoJ2hhcmRjb3B5Q29udGV4dCcpO1xuXG5pbnRlcmZhY2UgSGFyZGNvcHlSZXF1ZXN0IHtcbiAgd2lkZ2V0VHlwZTogV2lkZ2V0VHlwZVYzO1xuICB1c2VyRXZlbnQ6IFVzZXJFdmVudDtcbn1cblxuZXhwb3J0IHR5cGUgSGFyZGNvcHlSZXNwb25zZSA9IHtcbiAgcmVzcG9uc2VJZDogc3RyaW5nO1xuICBsYW5ndWFnZTogc3RyaW5nO1xuICByYXdWYWx1ZXM/OiBSZWNvcmQ8c3RyaW5nLCBXaWRnZXRTdHJpbmcgfCBXaWRnZXRTdHJpbmdbXT47XG4gIHZhbHVlczogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgc3RyaW5nW10+O1xufTtcblxuaW50ZXJmYWNlIEhhcmRjb3B5Q29udGV4dFR5cGUge1xuICBnZXRIYXJkY29weTogKEhhcmRjb3B5UmVxdWVzdDogSGFyZGNvcHlSZXF1ZXN0KSA9PiBQcm9taXNlPEhhcmRjb3B5UmVzcG9uc2U+O1xuICBpc0xvYWRpbmc6IGJvb2xlYW47XG59XG5cbmNvbnN0IGNvbnZlcnRUb0hhcmRjb3B5UmVzcG9uc2UgPSAocmVzcG9uc2U6IFdpZGdldFRleHQpOiBIYXJkY29weVJlc3BvbnNlID0+IHtcbiAgcmV0dXJuIHtcbiAgICByZXNwb25zZUlkOiByZXNwb25zZS5yZXNwb25zZUlkLFxuICAgIGxhbmd1YWdlOiByZXNwb25zZS5sYW5ndWFnZSxcbiAgICByYXdWYWx1ZXM6IHJlc3BvbnNlLnZhbHVlcyxcbiAgICB2YWx1ZXM6IE9iamVjdC5mcm9tRW50cmllcyhcbiAgICAgIE9iamVjdC5lbnRyaWVzKHJlc3BvbnNlLnZhbHVlcykubWFwKChba2V5LCB2YWx1ZV0pID0+IFtcbiAgICAgICAgLy8gVHJhbnNmb3JtIHRoZSBrZXkgZnJvbSBzbmFrZV9jYXNlIHRvIGNhbWVsQ2FzZVxuICAgICAgICB0b0NhbWVsQ2FzZShrZXkpLFxuICAgICAgICB2YWx1ZS5sZW5ndGggPT09IDEgPyB2YWx1ZVswXS52YWx1ZSA6IHZhbHVlLm1hcCh2ID0+IHYudmFsdWUpLFxuICAgICAgXSksXG4gICAgKSxcbiAgfTtcbn07XG5cbi8vIFRoZXNlIGFyZSBqdXN0IHNhbXBsZSByZXNwb25zZXMgZm9yIHRoZSBzYWtlIG9mIHRlc3RpbmcuXG4vLyBBcyB3ZSBzdGFydCB0byBidWlsZCB0aGUgYWN0dWFsIHdpZGdldHMgd2Ugc2hvdWxkIGRldGVybWluZSB3aGF0IHRoZSBhY3R1YWxcbi8vIHZhbHVlcyBhbmQgdGhlaXIgbmFtZXMgc2hvdWxkIGJlLlxuY29uc3QgTU9DS19IQVJEQ09QWV9SRVNQT05TRTogUGFydGlhbDxSZWNvcmQ8V2lkZ2V0VHlwZVYzLCBIYXJkY29weVJlc3BvbnNlPj4gPSB7XG4gIFtXaWRnZXRUeXBlVjMuUHJvbXB0Q2Fyb3VzZWxWM106IHtcbiAgICByZXNwb25zZUlkOiB1dWlkKCksXG4gICAgbGFuZ3VhZ2U6ICdlbicsXG4gICAgdmFsdWVzOiB7XG4gICAgICBwcm9tcHRCdXR0b25UZXh0czogW1xuICAgICAgICAnV2hhdCBhcmUgeW91ciBiZXN0IHNlbGxlcnM/JyxcbiAgICAgICAgJ1Nob3cgbWUgc3VtbWVyIGRyZXNzZXMnLFxuICAgICAgICAnRG8geW91IGhhdmUgZnJlZSBzaGlwcGluZz8nLFxuICAgICAgICAnV2hhdCBzaXplcyBhcmUgYXZhaWxhYmxlPycsXG4gICAgICAgICdDYW4gSSByZXR1cm4gaXRlbXM/JyxcbiAgICAgIF0sXG4gICAgfSxcbiAgfSxcbiAgW1dpZGdldFR5cGVWMy5UaXRsZWRQcm9tcHRDYXJvdXNlbFYzXToge1xuICAgIHJlc3BvbnNlSWQ6ICdtb2NrLXJlc3BvbnNlLWlkJyxcbiAgICBsYW5ndWFnZTogJ2VuJyxcbiAgICB2YWx1ZXM6IHtcbiAgICAgIHRpdGxlTGFiZWw6ICdOZWVkIHNvbWUgaGVscD8nLFxuICAgICAgcHJvbXB0QnV0dG9uVGV4dHM6IFtcbiAgICAgICAgJ1doYXQgYXJlIHlvdXIgYmVzdCBzZWxsZXJzPycsXG4gICAgICAgICdTaG93IG1lIHN1bW1lciBkcmVzc2VzJyxcbiAgICAgICAgJ0RvIHlvdSBoYXZlIGZyZWUgc2hpcHBpbmc/JyxcbiAgICAgICAgJ1doYXQgc2l6ZXMgYXJlIGF2YWlsYWJsZT8nLFxuICAgICAgICAnQ2FuIEkgcmV0dXJuIGl0ZW1zPycsXG4gICAgICBdLFxuICAgIH0sXG4gIH0sXG4gIFtXaWRnZXRUeXBlVjMuU29jaWFsUHJvb2ZWM106IHtcbiAgICByZXNwb25zZUlkOiAnbW9jay1yZXNwb25zZS1pZCcsXG4gICAgbGFuZ3VhZ2U6ICdlbicsXG4gICAgdmFsdWVzOiB7XG4gICAgICB0aXRsZUxhYmVsOiAnU2hvcHBpbmcgQXNzaXN0YW50JyxcbiAgICAgIG51bWJlck9mQ3VzdG9tZXJzVGV4dDogJzEyMyBjdXN0b21lcnMnLFxuICAgICAgY3VzdG9tZXJRdWVyeVRleHQ6ICdmb3VuZCB3aGF0IHRoZXkgd2VyZSBsb29raW5nIGZvci4uLicsXG4gICAgICBwcmltYXJ5QnV0dG9uVGV4dDogJ1N0YXJ0IHNob3BwaW5nJyxcbiAgICAgIHNlY29uZGFyeUJ1dHRvblRpdGxlVGV4dDogJ1BvcHVsYXIgc2VhcmNoZXMnLFxuICAgICAgc2Vjb25kYXJ5QnV0dG9uVGV4dHM6IFtcbiAgICAgICAgJ1doeSBzaG91bGQgSSBidXkgZnJvbSB5b3U/JyxcbiAgICAgICAgJ0hvdyBkbyBJIHJldHVybiBhbiBpdGVtPycsXG4gICAgICAgICdOZXcgYXJyaXZhbHMnLFxuICAgICAgICAnU2FsZSBpdGVtcycsXG4gICAgICAgICdQb3B1bGFyIGl0ZW1zJyxcbiAgICAgIF0sXG4gICAgICB0ZXh0RmllbGRQbGFjZWhvbGRlclRleHQ6ICdBc2sgbWUgYW55dGhpbmcuLi4nLFxuICAgIH0sXG4gIH0sXG4gIFtXaWRnZXRUeXBlVjMuVHlwaW5nQW5pbWF0aW9uVjNdOiB7XG4gICAgcmVzcG9uc2VJZDogJ21vY2stcmVzcG9uc2UtaWQnLFxuICAgIGxhbmd1YWdlOiAnZW4nLFxuICAgIHZhbHVlczoge1xuICAgICAgdGl0bGVMYWJlbDogJ1Nob3BwaW5nIEFzc2lzdGFudCcsXG4gICAgICBoZWFkbGluZVRleHQ6ICdOZWVkIGhlbHAgZmluZGluZycsXG4gICAgICBhbmltYXRlZFRleHRTZXF1ZW5jZTogW1xuICAgICAgICAndGhlIHBlcmZlY3QgZ2lmdCBmb3IgeW91ciBsb3ZlZCBvbmVzPycsXG4gICAgICAgICdzb21ldGhpbmcgc3BlY2lhbCBmb3IgdGhlIGhvbGlkYXlzPycsXG4gICAgICAgICd0aGUgaWRlYWwgcHJlc2VudCBmb3Igc29tZW9uZSBzcGVjaWFsPycsXG4gICAgICBdLFxuICAgICAgaGludFRleHQ6ICdBc2sgbWUgYW55dGhpbmcnLFxuICAgICAgcHJvbXB0QnV0dG9uVGV4dHM6IFtcbiAgICAgICAgJ1doYXQgYXJlIHlvdXIgYmVzdCBzZWxsZXJzPycsXG4gICAgICAgICdTaG93IG1lIHN1bW1lciBkcmVzc2VzJyxcbiAgICAgICAgJ0RvIHlvdSBoYXZlIGZyZWUgc2hpcHBpbmc/JyxcbiAgICAgICAgJ1doYXQgc2l6ZXMgYXJlIGF2YWlsYWJsZT8nLFxuICAgICAgXSxcbiAgICAgIHRleHRGaWVsZEFyaWFMYWJlbDogJ0FzayBtZSBhbnl0aGluZycsXG4gICAgfSxcbiAgfSxcbiAgW1dpZGdldFR5cGVWMy5DaGF0UHJldmlld0NvbXBhcmlzb25WM106IHtcbiAgICByZXNwb25zZUlkOiAnbW9jay1yZXNwb25zZS1pZCcsXG4gICAgbGFuZ3VhZ2U6ICdlbicsXG4gICAgdmFsdWVzOiB7XG4gICAgICB0aXRsZUxhYmVsOiAnU2hvcHBpbmcgQXNzaXN0YW50JyxcbiAgICAgIGhlYWRsaW5lVGV4dDogJ05lZWQgaGVscCBjb21wYXJpbmc/JyxcbiAgICAgIHRleHRGaWVsZFBsYWNlaG9sZGVyVGV4dDogJ0FzayBtZSBhbnl0aGluZy4uLicsXG4gICAgfSxcbiAgfSxcbiAgW1dpZGdldFR5cGVWMy5DaGF0UHJldmlld0xvYWRpbmdWM106IHtcbiAgICByZXNwb25zZUlkOiAnbW9jay1yZXNwb25zZS1pZCcsXG4gICAgbGFuZ3VhZ2U6ICdlbicsXG4gICAgdmFsdWVzOiB7XG4gICAgICB0aXRsZUxhYmVsOiAnU2hvcHBpbmcgQXNzaXN0YW50JyxcbiAgICAgIHRleHRGaWVsZFBsYWNlaG9sZGVyVGV4dDogJ0FzayBtZSBhbnl0aGluZy4uLicsXG4gICAgfSxcbiAgfSxcbiAgW1dpZGdldFR5cGVWMy5DaGF0UHJldmlld1YzXToge1xuICAgIHJlc3BvbnNlSWQ6ICdtb2NrLXJlc3BvbnNlLWlkJyxcbiAgICBsYW5ndWFnZTogJ2VuJyxcbiAgICB2YWx1ZXM6IHtcbiAgICAgIHRpdGxlTGFiZWw6ICdTaG9wcGluZyBBc3Npc3RhbnQnLFxuICAgICAgdGV4dEZpZWxkUGxhY2Vob2xkZXJUZXh0OiAnQXNrIG1lIGFueXRoaW5nLi4uJyxcbiAgICB9LFxuICB9LFxuICBbV2lkZ2V0VHlwZVYzLlByb21wdEJ1dHRvbkNhcm91c2VsV2l0aEltYWdlVjNdOiB7XG4gICAgcmVzcG9uc2VJZDogJ21vY2stcmVzcG9uc2UtaWQnLFxuICAgIGxhbmd1YWdlOiAnZW4nLFxuICAgIHZhbHVlczoge1xuICAgICAgdGl0bGVMYWJlbDogJ05lZWQgc29tZSBoZWxwPycsXG4gICAgICBwcm9tcHRCdXR0b25zVGV4dHM6IFsnSGVscCBtZSBmaW5kIGEgcHJvZHVjdCcsIFwiV2hhdCdzIG9uIHlvdXIgbWluZD9cIiwgJ1RhbGsgdG8gYSBodW1hbiddLFxuICAgICAgdGV4dEZpZWxkUGxhY2Vob2xkZXJUZXh0OiAnQXNrIG1lIGFueXRoaW5nLi4uJyxcbiAgICB9LFxuICB9LFxuICBbV2lkZ2V0VHlwZVYzLlByb2R1Y3RDYXJkVjNdOiB7XG4gICAgcmVzcG9uc2VJZDogJ21vY2stcmVzcG9uc2UtaWQnLFxuICAgIGxhbmd1YWdlOiAnZW4nLFxuICAgIHZhbHVlczoge1xuICAgICAgaGVhZGxpbmU6ICdEaXNjb3ZlciBZb3VyIFBlcmZlY3QgU3R5bGUnLFxuICAgICAgYW5pbWF0ZWRUZXh0OiBbXG4gICAgICAgICd0aGUgcGVyZmVjdCBvdXRmaXQgZm9yIGFueSBvY2Nhc2lvbicsXG4gICAgICAgICd0cmVuZGluZyBmYXNoaW9uIHRoYXQgZml0cyB5b3VyIGxpZmVzdHlsZScsXG4gICAgICAgICdxdWFsaXR5IHBpZWNlcyB0aGF0IGxhc3QnLFxuICAgICAgXSxcbiAgICAgIHByb21wdHM6IFtcbiAgICAgICAgJ1doYXQgYXJlIHlvdXIgYmVzdCBzZWxsZXJzPycsXG4gICAgICAgICdTaG93IG1lIHN1bW1lciBkcmVzc2VzJyxcbiAgICAgICAgJ0RvIHlvdSBoYXZlIGZyZWUgc2hpcHBpbmc/JyxcbiAgICAgICAgJ1doYXQgc2l6ZXMgYXJlIGF2YWlsYWJsZT8nLFxuICAgICAgICAnQ2FuIEkgcmV0dXJuIGl0ZW1zPycsXG4gICAgICBdLFxuICAgICAgcGxhY2Vob2xkZXI6ICdBc2sgbWUgYW55dGhpbmcuLi4nLFxuICAgIH0sXG4gIH0sXG4gIFtXaWRnZXRUeXBlVjMuRmxvYXRpbmdDaGF0VjNdOiB7XG4gICAgcmVzcG9uc2VJZDogJ21vY2stcmVzcG9uc2UtaWQnLFxuICAgIGxhbmd1YWdlOiAnZW4nLFxuICAgIHZhbHVlczoge1xuICAgICAgd2VsY29tZU1lc3NhZ2VUaXRsZTogJ1dlbGNvbWUgdG8gRW52aXZlIEFJJyxcbiAgICAgIHdlbGNvbWVNZXNzYWdlVGV4dDpcbiAgICAgICAgJ1lvdXIgcGVyc29uYWwgc2hvcHBlciB0cmFpbmVkIG9uIHRoZSBjb2xsZWN0aXZlIGtub3dsZWRnZSBvZiB0aG91c2FuZHMgb2YgcmVhbCBleHBlcnRzIScsXG4gICAgICBjaGF0Rm9vdGVyVGV4dEZpZWxkUGxhY2Vob2xkZXJUZXh0OiAnQXNrIG1lIGFueXRoaW5nLi4uJyxcbiAgICAgIGRpc2NsYWltZXJUZXh0OiAnVGhpcyBpcyBhIGRpc2NsYWltZXIuLi4nLFxuICAgICAgbGVmdFRvZ2dsZUxhYmVsOiAnU2hvcCB3aXRoIEFJJyxcbiAgICAgIHJpZ2h0VG9nZ2xlTGFiZWw6ICdMaXZlIHN1cHBvcnQnLFxuICAgIH0sXG4gIH0sXG4gIFtXaWRnZXRUeXBlVjMuRnVsbFBhZ2VTYWxlc0FnZW50VjNdOiB7XG4gICAgcmVzcG9uc2VJZDogJ21vY2stcmVzcG9uc2UtaWQnLFxuICAgIGxhbmd1YWdlOiAnZW4nLFxuICAgIHZhbHVlczoge1xuICAgICAgd2VsY29tZU1lc3NhZ2VUaXRsZTogJ1dlbGNvbWUgdG8gRW52aXZlIEFJJyxcbiAgICAgIHdlbGNvbWVNZXNzYWdlVGV4dDpcbiAgICAgICAgJ1lvdXIgcGVyc29uYWwgc2hvcHBlciB0cmFpbmVkIG9uIHRoZSBjb2xsZWN0aXZlIGtub3dsZWRnZSBvZiB0aG91c2FuZHMgb2YgcmVhbCBleHBlcnRzIScsXG4gICAgICBjaGF0Rm9vdGVyVGV4dEZpZWxkUGxhY2Vob2xkZXJUZXh0OiAnQXNrIG1lIGFueXRoaW5nLi4uJyxcbiAgICAgIGRpc2NsYWltZXJUZXh0OiAnVGhpcyBpcyBhIGRpc2NsYWltZXIuLi4nLFxuICAgIH0sXG4gIH0sXG59O1xuXG5jb25zdCBIYXJkY29weUNvbnRleHQgPSBjcmVhdGVDb250ZXh0PEhhcmRjb3B5Q29udGV4dFR5cGUgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbmludGVyZmFjZSBIYXJkY29weVByb3ZpZGVyUHJvcHMge1xuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xuICBoYXJkY29weU92ZXJyaWRlPzogUGFydGlhbDxSZWNvcmQ8V2lkZ2V0VHlwZVYzLCBIYXJkY29weVJlc3BvbnNlPj47XG59XG5cbmV4cG9ydCBjb25zdCBIYXJkY29weVByb3ZpZGVyOiBSZWFjdC5GQzxIYXJkY29weVByb3ZpZGVyUHJvcHM+ID0gKHtcbiAgY2hpbGRyZW4sXG4gIGhhcmRjb3B5T3ZlcnJpZGUsXG59KSA9PiB7XG4gIGNvbnN0IGxhbmd1YWdlcyA9IHVzZU1lbW8oKCkgPT4gbmF2aWdhdG9yLmxhbmd1YWdlcywgW10pO1xuICBjb25zdCBbaXNMb2FkaW5nLCBzZXRJc0xvYWRpbmddID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBjb250ZXh0ID0gdXNlQXRvbVZhbHVlKGFwcERldGFpbHNBdG9tKTtcbiAgY29uc3QgeyB0cmFja0V2ZW50IH0gPSB1c2VBbXBsaXR1ZGUoKTtcblxuICBjb25zdCB7IGZlYXR1cmVGbGFnU2VydmljZSB9ID0gdXNlRmVhdHVyZUZsYWdTZXJ2aWNlKCk7XG4gIGNvbnN0IGdldEhhcmRjb3B5RnJvbUJhY2tlbmQgPSB1c2VDYWxsYmFjayhcbiAgICBhc3luYyAocmVxdWVzdDogSGFyZGNvcHlSZXF1ZXN0KTogUHJvbWlzZTxIYXJkY29weVJlc3BvbnNlPiA9PiB7XG4gICAgICBpZiAoaGFyZGNvcHlPdmVycmlkZT8uW3JlcXVlc3Qud2lkZ2V0VHlwZV0pIHtcbiAgICAgICAgbG9nZ2VyLmxvZ0RlYnVnKCd1c2luZyBoYXJkY29weSBvdmVycmlkZScsIHJlcXVlc3Qud2lkZ2V0VHlwZSk7XG4gICAgICAgIHJldHVybiBoYXJkY29weU92ZXJyaWRlW3JlcXVlc3Qud2lkZ2V0VHlwZV0hO1xuICAgICAgfVxuICAgICAgY29uc3Qgb3ZlcnJpZGVDb25maWdWZXJzaW9uID1cbiAgICAgICAgZ2V0UXVlcnlQYXJhbSgnc3BpZmZ5X2NvbmZpZ192ZXJzaW9uJykgfHxcbiAgICAgICAgZ2V0UXVlcnlQYXJhbSgnZW52aXZlX2NvbmZpZ192ZXJzaW9uJykgfHxcbiAgICAgICAgdW5kZWZpbmVkO1xuICAgICAgY29uc3Qgd2lkZ2V0VGV4dFJlcXVlc3Q6IFdpZGdldFRleHRSZXF1ZXN0ID0ge1xuICAgICAgICByZXF1ZXN0SWQ6IHV1aWQoKSxcbiAgICAgICAgd2lkZ2V0VHlwZTogcmVxdWVzdC53aWRnZXRUeXBlLFxuICAgICAgICBjb250ZXh0LFxuICAgICAgICBmZWF0dXJlRmxhZ3M6IGZlYXR1cmVGbGFnU2VydmljZT8uZ2V0RmVhdHVyZUZsYWdzKCkgfHwge30sXG4gICAgICAgIGxhbmd1YWdlOiBsYW5ndWFnZXNbMF0gfHwgJ2VuJyxcbiAgICAgICAgb3ZlcnJpZGVDb25maWdWZXJzaW9uLFxuICAgICAgICB1cmw6IHdpbmRvdy5sb2NhdGlvbi5ocmVmLFxuICAgICAgfTtcbiAgICAgIHRyYWNrRXZlbnQoe1xuICAgICAgICBldmVudE5hbWU6IEVudml2ZU1ldHJpY3NFdmVudE5hbWUuV2lkZ2V0VGV4dFJlcXVlc3QsXG4gICAgICAgIGV2ZW50UHJvcHM6IHtcbiAgICAgICAgICB3aWRnZXRfdHlwZTogcmVxdWVzdC53aWRnZXRUeXBlLFxuICAgICAgICAgIHJlcXVlc3RfaWQ6IHdpZGdldFRleHRSZXF1ZXN0LnJlcXVlc3RJZCxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBDb21tZXJjZUFwaUNsaWVudC5nZXRIYXJkY29weSh3aWRnZXRUZXh0UmVxdWVzdCk7XG4gICAgICAgIGlmIChyZXNwb25zZSkge1xuICAgICAgICAgIGNvbnN0IGNvbnZlcnRlZFJlc3BvbnNlID0gY29udmVydFRvSGFyZGNvcHlSZXNwb25zZShyZXNwb25zZSk7XG4gICAgICAgICAgbG9nZ2VyLmxvZ0RlYnVnKCdjb252ZXJ0ZWQgcmVzcG9uc2UnLCBjb252ZXJ0ZWRSZXNwb25zZSk7XG4gICAgICAgICAgdHJhY2tFdmVudCh7XG4gICAgICAgICAgICBldmVudE5hbWU6IEVudml2ZU1ldHJpY3NFdmVudE5hbWUuV2lkZ2V0VGV4dFJlc3BvbnNlLFxuICAgICAgICAgICAgZXZlbnRQcm9wczoge1xuICAgICAgICAgICAgICB3aWRnZXRfdHlwZTogcmVxdWVzdC53aWRnZXRUeXBlLFxuICAgICAgICAgICAgICByZXNwb25zZV9pZDogcmVzcG9uc2UucmVzcG9uc2VJZCxcbiAgICAgICAgICAgICAgd2lkZ2V0X3RleHQ6IHJlc3BvbnNlLnZhbHVlcyxcbiAgICAgICAgICAgICAgcmVxdWVzdF9pZDogd2lkZ2V0VGV4dFJlcXVlc3QucmVxdWVzdElkLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXR1cm4gY29udmVydGVkUmVzcG9uc2U7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGxvZ2dlci5sb2dFcnJvcignZXJyb3IgZ2V0dGluZyBoYXJkY29weSBmcm9tIGJhY2tlbmQnLCBlcnJvcik7XG4gICAgICB9XG4gICAgICBjb25zdCBtb2NrUmVzcG9uc2UgPSBNT0NLX0hBUkRDT1BZX1JFU1BPTlNFW3JlcXVlc3Qud2lkZ2V0VHlwZV07XG4gICAgICBpZiAobW9ja1Jlc3BvbnNlKSB7XG4gICAgICAgIGxvZ2dlci5sb2dEZWJ1Zygnbm8gcmVhbCByZXNwb25zZSwgdXNpbmcgbW9jaycsIG1vY2tSZXNwb25zZSk7XG4gICAgICAgIHJldHVybiBtb2NrUmVzcG9uc2U7XG4gICAgICB9XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIGhhcmRjb3B5IHJlc3BvbnNlIGZvdW5kIGZvciB3aWRnZXQgdHlwZTogJHtyZXF1ZXN0LndpZGdldFR5cGV9YCk7XG4gICAgfSxcbiAgICBbY29udGV4dCwgZmVhdHVyZUZsYWdTZXJ2aWNlLCBoYXJkY29weU92ZXJyaWRlLCBsYW5ndWFnZXMsIHRyYWNrRXZlbnRdLFxuICApO1xuXG4gIGNvbnN0IGdldEhhcmRjb3B5ID0gdXNlQ2FsbGJhY2soXG4gICAgYXN5bmMgKHJlcXVlc3Q6IEhhcmRjb3B5UmVxdWVzdCk6IFByb21pc2U8SGFyZGNvcHlSZXNwb25zZT4gPT4ge1xuICAgICAgc2V0SXNMb2FkaW5nKHRydWUpO1xuICAgICAgbG9nZ2VyLmxvZ0RlYnVnKCdyZXRyaWV2aW5nIGhhcmRjb3B5JywgbGFuZ3VhZ2VzKTtcblxuICAgICAgbG9nZ2VyLmxvZ0RlYnVnKCdyZXF1ZXN0JywgcmVxdWVzdCk7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGdldEhhcmRjb3B5RnJvbUJhY2tlbmQocmVxdWVzdCk7XG4gICAgICBsb2dnZXIubG9nRGVidWcoJ3JldHVybmluZyBoYXJkY29weSByZXNwb25zZScsIHJlc3BvbnNlKTtcbiAgICAgIGlmICghcmVzcG9uc2UpIHtcbiAgICAgICAgc2V0SXNMb2FkaW5nKGZhbHNlKTtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyBoYXJkY29weSByZXNwb25zZSBmb3VuZCBmb3Igd2lkZ2V0IHR5cGU6ICR7cmVxdWVzdC53aWRnZXRUeXBlfWApO1xuICAgICAgfVxuICAgICAgc2V0SXNMb2FkaW5nKGZhbHNlKTtcbiAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICB9LFxuICAgIFtnZXRIYXJkY29weUZyb21CYWNrZW5kLCBsYW5ndWFnZXNdLFxuICApO1xuXG4gIGNvbnN0IHZhbHVlID0gdXNlTWVtbygoKSA9PiAoeyBnZXRIYXJkY29weSwgaXNMb2FkaW5nIH0pLCBbZ2V0SGFyZGNvcHksIGlzTG9hZGluZ10pO1xuXG4gIHJldHVybiA8SGFyZGNvcHlDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXt2YWx1ZX0+e2NoaWxkcmVufTwvSGFyZGNvcHlDb250ZXh0LlByb3ZpZGVyPjtcbn07XG5cbmV4cG9ydCBjb25zdCB1c2VIYXJkY29weSA9ICgpID0+IHtcbiAgY29uc3QgY29udGV4dCA9IHVzZUNvbnRleHQoSGFyZGNvcHlDb250ZXh0KTtcbiAgaWYgKCFjb250ZXh0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCd1c2VIYXJkY29weSBtdXN0IGJlIHVzZWQgd2l0aGluIGEgSGFyZGNvcHlQcm92aWRlcicpO1xuICB9XG4gIHJldHVybiBjb250ZXh0O1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWlCQSxNQUFNLFNBQVMsSUFBSUEsdUJBQU8sa0JBQWtCO0FBbUI1QyxNQUFNLDZCQUE2QixhQUEyQztBQUM1RSxRQUFPO0VBQ0wsWUFBWSxTQUFTO0VBQ3JCLFVBQVUsU0FBUztFQUNuQixXQUFXLFNBQVM7RUFDcEIsUUFBUSxPQUFPLFlBQ2IsT0FBTyxRQUFRLFNBQVMsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLFdBQVcsQ0FFcERDLDRDQUFZLElBQUksRUFDaEIsTUFBTSxXQUFXLElBQUksTUFBTSxHQUFHLFFBQVEsTUFBTSxLQUFJLE1BQUssRUFBRSxNQUFNLENBQzlELENBQUMsQ0FDSDtFQUNGOztBQU1ILE1BQU1DLHlCQUEwRTtFQUM3RUMsc0NBQWEsbUJBQW1CO0VBQy9CLDBCQUFrQjtFQUNsQixVQUFVO0VBQ1YsUUFBUSxFQUNOLG1CQUFtQjtHQUNqQjtHQUNBO0dBQ0E7R0FDQTtHQUNBO0dBQ0QsRUFDRjtFQUNGO0VBQ0FBLHNDQUFhLHlCQUF5QjtFQUNyQyxZQUFZO0VBQ1osVUFBVTtFQUNWLFFBQVE7R0FDTixZQUFZO0dBQ1osbUJBQW1CO0lBQ2pCO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDRDtHQUNGO0VBQ0Y7RUFDQUEsc0NBQWEsZ0JBQWdCO0VBQzVCLFlBQVk7RUFDWixVQUFVO0VBQ1YsUUFBUTtHQUNOLFlBQVk7R0FDWix1QkFBdUI7R0FDdkIsbUJBQW1CO0dBQ25CLG1CQUFtQjtHQUNuQiwwQkFBMEI7R0FDMUIsc0JBQXNCO0lBQ3BCO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDRDtHQUNELDBCQUEwQjtHQUMzQjtFQUNGO0VBQ0FBLHNDQUFhLG9CQUFvQjtFQUNoQyxZQUFZO0VBQ1osVUFBVTtFQUNWLFFBQVE7R0FDTixZQUFZO0dBQ1osY0FBYztHQUNkLHNCQUFzQjtJQUNwQjtJQUNBO0lBQ0E7SUFDRDtHQUNELFVBQVU7R0FDVixtQkFBbUI7SUFDakI7SUFDQTtJQUNBO0lBQ0E7SUFDRDtHQUNELG9CQUFvQjtHQUNyQjtFQUNGO0VBQ0FBLHNDQUFhLDBCQUEwQjtFQUN0QyxZQUFZO0VBQ1osVUFBVTtFQUNWLFFBQVE7R0FDTixZQUFZO0dBQ1osY0FBYztHQUNkLDBCQUEwQjtHQUMzQjtFQUNGO0VBQ0FBLHNDQUFhLHVCQUF1QjtFQUNuQyxZQUFZO0VBQ1osVUFBVTtFQUNWLFFBQVE7R0FDTixZQUFZO0dBQ1osMEJBQTBCO0dBQzNCO0VBQ0Y7RUFDQUEsc0NBQWEsZ0JBQWdCO0VBQzVCLFlBQVk7RUFDWixVQUFVO0VBQ1YsUUFBUTtHQUNOLFlBQVk7R0FDWiwwQkFBMEI7R0FDM0I7RUFDRjtFQUNBQSxzQ0FBYSxrQ0FBa0M7RUFDOUMsWUFBWTtFQUNaLFVBQVU7RUFDVixRQUFRO0dBQ04sWUFBWTtHQUNaLG9CQUFvQjtJQUFDO0lBQTBCO0lBQXdCO0lBQWtCO0dBQ3pGLDBCQUEwQjtHQUMzQjtFQUNGO0VBQ0FBLHNDQUFhLGdCQUFnQjtFQUM1QixZQUFZO0VBQ1osVUFBVTtFQUNWLFFBQVE7R0FDTixVQUFVO0dBQ1YsY0FBYztJQUNaO0lBQ0E7SUFDQTtJQUNEO0dBQ0QsU0FBUztJQUNQO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDRDtHQUNELGFBQWE7R0FDZDtFQUNGO0VBQ0FBLHNDQUFhLGlCQUFpQjtFQUM3QixZQUFZO0VBQ1osVUFBVTtFQUNWLFFBQVE7R0FDTixxQkFBcUI7R0FDckIsb0JBQ0U7R0FDRixvQ0FBb0M7R0FDcEMsZ0JBQWdCO0dBQ2hCLGlCQUFpQjtHQUNqQixrQkFBa0I7R0FDbkI7RUFDRjtFQUNBQSxzQ0FBYSx1QkFBdUI7RUFDbkMsWUFBWTtFQUNaLFVBQVU7RUFDVixRQUFRO0dBQ04scUJBQXFCO0dBQ3JCLG9CQUNFO0dBQ0Ysb0NBQW9DO0dBQ3BDLGdCQUFnQjtHQUNqQjtFQUNGO0NBQ0Y7QUFFRCxNQUFNLDJDQUFpRSxPQUFVO0FBT2pGLE1BQWFDLG9CQUFxRCxFQUNoRSxVQUNBLHVCQUNJO0NBQ0osTUFBTSxxQ0FBMEIsVUFBVSxXQUFXLEVBQUUsQ0FBQztDQUN4RCxNQUFNLENBQUMsV0FBVyxvQ0FBeUIsTUFBTTtDQUNqRCxNQUFNLGtDQUF1QkMsdUNBQWU7Q0FDNUMsTUFBTSxFQUFFLGVBQWVDLHVDQUFjO0NBRXJDLE1BQU0sRUFBRSx1QkFBdUJDLHlEQUF1QjtDQUN0RCxNQUFNLGdEQUNKLE9BQU8sWUFBd0Q7QUFDN0QsTUFBSSxtQkFBbUIsUUFBUSxhQUFhO0FBQzFDLFVBQU8sU0FBUywyQkFBMkIsUUFBUSxXQUFXO0FBQzlELFVBQU8saUJBQWlCLFFBQVE7O0VBRWxDLE1BQU0sd0JBQ0pDLGlDQUFjLHdCQUF3QixJQUN0Q0EsaUNBQWMsd0JBQXdCLElBQ3RDO0VBQ0YsTUFBTUMsb0JBQXVDO0dBQzNDLHlCQUFpQjtHQUNqQixZQUFZLFFBQVE7R0FDcEI7R0FDQSxjQUFjLG9CQUFvQixpQkFBaUIsSUFBSSxFQUFFO0dBQ3pELFVBQVUsVUFBVSxNQUFNO0dBQzFCO0dBQ0EsS0FBSyxPQUFPLFNBQVM7R0FDdEI7QUFDRCxhQUFXO0dBQ1QsV0FBV0MsMENBQXVCO0dBQ2xDLFlBQVk7SUFDVixhQUFhLFFBQVE7SUFDckIsWUFBWSxrQkFBa0I7SUFDL0I7R0FDRixDQUFDO0FBQ0YsTUFBSTtHQUNGLE1BQU0sV0FBVyxNQUFNQyx5Q0FBa0IsWUFBWSxrQkFBa0I7QUFDdkUsT0FBSSxVQUFVO0lBQ1osTUFBTSxvQkFBb0IsMEJBQTBCLFNBQVM7QUFDN0QsV0FBTyxTQUFTLHNCQUFzQixrQkFBa0I7QUFDeEQsZUFBVztLQUNULFdBQVdELDBDQUF1QjtLQUNsQyxZQUFZO01BQ1YsYUFBYSxRQUFRO01BQ3JCLGFBQWEsU0FBUztNQUN0QixhQUFhLFNBQVM7TUFDdEIsWUFBWSxrQkFBa0I7TUFDL0I7S0FDRixDQUFDO0FBQ0YsV0FBTzs7V0FFRixPQUFPO0FBQ2QsVUFBTyxTQUFTLHVDQUF1QyxNQUFNOztFQUUvRCxNQUFNLGVBQWUsdUJBQXVCLFFBQVE7QUFDcEQsTUFBSSxjQUFjO0FBQ2hCLFVBQU8sU0FBUyxnQ0FBZ0MsYUFBYTtBQUM3RCxVQUFPOztBQUVULFFBQU0sSUFBSSxNQUFNLCtDQUErQyxRQUFRLGFBQWE7SUFFdEY7RUFBQztFQUFTO0VBQW9CO0VBQWtCO0VBQVc7RUFBVyxDQUN2RTtDQUVELE1BQU0scUNBQ0osT0FBTyxZQUF3RDtBQUM3RCxlQUFhLEtBQUs7QUFDbEIsU0FBTyxTQUFTLHVCQUF1QixVQUFVO0FBRWpELFNBQU8sU0FBUyxXQUFXLFFBQVE7RUFDbkMsTUFBTSxXQUFXLE1BQU0sdUJBQXVCLFFBQVE7QUFDdEQsU0FBTyxTQUFTLCtCQUErQixTQUFTO0FBQ3hELE1BQUksQ0FBQyxVQUFVO0FBQ2IsZ0JBQWEsTUFBTTtBQUNuQixTQUFNLElBQUksTUFBTSwrQ0FBK0MsUUFBUSxhQUFhOztBQUV0RixlQUFhLE1BQU07QUFDbkIsU0FBTztJQUVULENBQUMsd0JBQXdCLFVBQVUsQ0FDcEM7Q0FFRCxNQUFNLGtDQUF1QjtFQUFFO0VBQWE7RUFBVyxHQUFHLENBQUMsYUFBYSxVQUFVLENBQUM7QUFFbkYsUUFBTywyQ0FBQyxnQkFBZ0I7RUFBZ0I7RUFBUTtHQUFvQzs7QUFHdEYsTUFBYSxvQkFBb0I7Q0FDL0IsTUFBTSxnQ0FBcUIsZ0JBQWdCO0FBQzNDLEtBQUksQ0FBQyxRQUNILE9BQU0sSUFBSSxNQUFNLHFEQUFxRDtBQUV2RSxRQUFPIn0=
|
|
270
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFyZGNvcHlDb250ZXh0LmNqcyIsIm5hbWVzIjpbIkxvZ2dlciIsInRvQ2FtZWxDYXNlIiwiTU9DS19IQVJEQ09QWV9SRVNQT05TRTogUGFydGlhbDxSZWNvcmQ8V2lkZ2V0VHlwZVYzLCBIYXJkY29weVJlc3BvbnNlPj4iLCJXaWRnZXRUeXBlVjMiLCJIYXJkY29weVByb3ZpZGVyOiBSZWFjdC5GQzxIYXJkY29weVByb3ZpZGVyUHJvcHM+IiwiYXBwRGV0YWlsc0F0b20iLCJ1c2VBbXBsaXR1ZGUiLCJ1c2VGZWF0dXJlRmxhZ1NlcnZpY2UiLCJnZXRRdWVyeVBhcmFtIiwid2lkZ2V0VGV4dFJlcXVlc3Q6IFdpZGdldFRleHRSZXF1ZXN0IiwiRW52aXZlTWV0cmljc0V2ZW50TmFtZSIsIkNvbW1lcmNlQXBpQ2xpZW50Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbnRleHRzL2hhcmRjb3B5Q29udGV4dC9oYXJkY29weUNvbnRleHQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlYWN0Tm9kZSwgY3JlYXRlQ29udGV4dCwgdXNlQ2FsbGJhY2ssIHVzZUNvbnRleHQsIHVzZU1lbW8sIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IExvZ2dlciBmcm9tICdzcmMvYXBwbGljYXRpb24vbG9nZ2luZy9sb2dnZXInO1xuaW1wb3J0IHsgdjQgYXMgdXVpZCB9IGZyb20gJ3V1aWQnO1xuaW1wb3J0IENvbW1lcmNlQXBpQ2xpZW50IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9jb21tZXJjZS1hcGknO1xuaW1wb3J0IHsgV2lkZ2V0U3RyaW5nLCBXaWRnZXRUZXh0IH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9hcGkvd2lkZ2V0VGV4dCc7XG5pbXBvcnQgeyBXaWRnZXRUZXh0UmVxdWVzdCB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvYXBpL3dpZGdldFRleHRSZXF1ZXN0JztcblxuaW1wb3J0IHsgdXNlQXRvbVZhbHVlIH0gZnJvbSAnam90YWknO1xuaW1wb3J0IHsgYXBwRGV0YWlsc0F0b20gfSBmcm9tICdzcmMvYXRvbXMvYXBwJztcbmltcG9ydCB7IEVudml2ZU1ldHJpY3NFdmVudE5hbWUgfSBmcm9tICdzcmMvc2VydmljZXMvYW1wbGl0dWRlU2VydmljZS9hbXBsaXR1ZGVTZXJ2aWNlJztcbmltcG9ydCB7IHRvQ2FtZWxDYXNlIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy91dGlscy9zbmFrZVRvQ2FtZWxUcmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBVc2VyRXZlbnQgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzJztcbmltcG9ydCB7IGdldFF1ZXJ5UGFyYW0gfSBmcm9tICdzcmMvYXBwbGljYXRpb24vdXRpbHMnO1xuaW1wb3J0IHsgV2lkZ2V0VHlwZVYzIH0gZnJvbSAnLi4vdHlwZXNWMyc7XG5pbXBvcnQgeyB1c2VGZWF0dXJlRmxhZ1NlcnZpY2UgfSBmcm9tICcuLi9mZWF0dXJlRmxhZ1NlcnZpY2VDb250ZXh0L2ZlYXR1cmVGbGFnU2VydmljZUNvbnRleHQnO1xuaW1wb3J0IHsgdXNlQW1wbGl0dWRlIH0gZnJvbSAnLi4vYW1wbGl0dWRlQ29udGV4dCc7XG5cbmNvbnN0IGxvZ2dlciA9IG5ldyBMb2dnZXIoJ2hhcmRjb3B5Q29udGV4dCcpO1xuXG5pbnRlcmZhY2UgSGFyZGNvcHlSZXF1ZXN0IHtcbiAgd2lkZ2V0VHlwZTogV2lkZ2V0VHlwZVYzO1xuICB1c2VyRXZlbnQ6IFVzZXJFdmVudDtcbn1cblxuZXhwb3J0IHR5cGUgSGFyZGNvcHlSZXNwb25zZSA9IHtcbiAgcmVzcG9uc2VJZDogc3RyaW5nO1xuICBsYW5ndWFnZTogc3RyaW5nO1xuICByYXdWYWx1ZXM/OiBSZWNvcmQ8c3RyaW5nLCBXaWRnZXRTdHJpbmcgfCBXaWRnZXRTdHJpbmdbXT47XG4gIHZhbHVlczogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgc3RyaW5nW10+O1xufTtcblxuaW50ZXJmYWNlIEhhcmRjb3B5Q29udGV4dFR5cGUge1xuICBnZXRIYXJkY29weTogKEhhcmRjb3B5UmVxdWVzdDogSGFyZGNvcHlSZXF1ZXN0KSA9PiBQcm9taXNlPEhhcmRjb3B5UmVzcG9uc2U+O1xuICBpc0xvYWRpbmc6IGJvb2xlYW47XG59XG5cbmNvbnN0IGNvbnZlcnRUb0hhcmRjb3B5UmVzcG9uc2UgPSAocmVzcG9uc2U6IFdpZGdldFRleHQpOiBIYXJkY29weVJlc3BvbnNlID0+IHtcbiAgcmV0dXJuIHtcbiAgICByZXNwb25zZUlkOiByZXNwb25zZS5yZXNwb25zZUlkLFxuICAgIGxhbmd1YWdlOiByZXNwb25zZS5sYW5ndWFnZSxcbiAgICByYXdWYWx1ZXM6IHJlc3BvbnNlLnZhbHVlcyxcbiAgICB2YWx1ZXM6IE9iamVjdC5mcm9tRW50cmllcyhcbiAgICAgIE9iamVjdC5lbnRyaWVzKHJlc3BvbnNlLnZhbHVlcykubWFwKChba2V5LCB2YWx1ZV0pID0+IFtcbiAgICAgICAgLy8gVHJhbnNmb3JtIHRoZSBrZXkgZnJvbSBzbmFrZV9jYXNlIHRvIGNhbWVsQ2FzZVxuICAgICAgICB0b0NhbWVsQ2FzZShrZXkpLFxuICAgICAgICB2YWx1ZS5sZW5ndGggPT09IDEgPyB2YWx1ZVswXS52YWx1ZSA6IHZhbHVlLm1hcCh2ID0+IHYudmFsdWUpLFxuICAgICAgXSksXG4gICAgKSxcbiAgfTtcbn07XG5cbi8vIFRoZXNlIGFyZSBqdXN0IHNhbXBsZSByZXNwb25zZXMgZm9yIHRoZSBzYWtlIG9mIHRlc3RpbmcuXG4vLyBBcyB3ZSBzdGFydCB0byBidWlsZCB0aGUgYWN0dWFsIHdpZGdldHMgd2Ugc2hvdWxkIGRldGVybWluZSB3aGF0IHRoZSBhY3R1YWxcbi8vIHZhbHVlcyBhbmQgdGhlaXIgbmFtZXMgc2hvdWxkIGJlLlxuY29uc3QgTU9DS19IQVJEQ09QWV9SRVNQT05TRTogUGFydGlhbDxSZWNvcmQ8V2lkZ2V0VHlwZVYzLCBIYXJkY29weVJlc3BvbnNlPj4gPSB7XG4gIFtXaWRnZXRUeXBlVjMuUHJvbXB0Q2Fyb3VzZWxWM106IHtcbiAgICByZXNwb25zZUlkOiB1dWlkKCksXG4gICAgbGFuZ3VhZ2U6ICdlbicsXG4gICAgdmFsdWVzOiB7XG4gICAgICBwcm9tcHRCdXR0b25UZXh0czogW1xuICAgICAgICAnV2hhdCBhcmUgeW91ciBiZXN0IHNlbGxlcnM/JyxcbiAgICAgICAgJ1Nob3cgbWUgc3VtbWVyIGRyZXNzZXMnLFxuICAgICAgICAnRG8geW91IGhhdmUgZnJlZSBzaGlwcGluZz8nLFxuICAgICAgICAnV2hhdCBzaXplcyBhcmUgYXZhaWxhYmxlPycsXG4gICAgICAgICdDYW4gSSByZXR1cm4gaXRlbXM/JyxcbiAgICAgIF0sXG4gICAgfSxcbiAgfSxcbiAgW1dpZGdldFR5cGVWMy5UaXRsZWRQcm9tcHRDYXJvdXNlbFYzXToge1xuICAgIHJlc3BvbnNlSWQ6ICdtb2NrLXJlc3BvbnNlLWlkJyxcbiAgICBsYW5ndWFnZTogJ2VuJyxcbiAgICB2YWx1ZXM6IHtcbiAgICAgIHRpdGxlTGFiZWw6ICdOZWVkIHNvbWUgaGVscD8nLFxuICAgICAgcHJvbXB0QnV0dG9uVGV4dHM6IFtcbiAgICAgICAgJ1doYXQgYXJlIHlvdXIgYmVzdCBzZWxsZXJzPycsXG4gICAgICAgICdTaG93IG1lIHN1bW1lciBkcmVzc2VzJyxcbiAgICAgICAgJ0RvIHlvdSBoYXZlIGZyZWUgc2hpcHBpbmc/JyxcbiAgICAgICAgJ1doYXQgc2l6ZXMgYXJlIGF2YWlsYWJsZT8nLFxuICAgICAgICAnQ2FuIEkgcmV0dXJuIGl0ZW1zPycsXG4gICAgICBdLFxuICAgIH0sXG4gIH0sXG4gIFtXaWRnZXRUeXBlVjMuU29jaWFsUHJvb2ZWM106IHtcbiAgICByZXNwb25zZUlkOiAnbW9jay1yZXNwb25zZS1pZCcsXG4gICAgbGFuZ3VhZ2U6ICdlbicsXG4gICAgdmFsdWVzOiB7XG4gICAgICB0aXRsZUxhYmVsOiAnU2hvcHBpbmcgQXNzaXN0YW50JyxcbiAgICAgIG51bWJlck9mQ3VzdG9tZXJzVGV4dDogJzEyMyBjdXN0b21lcnMnLFxuICAgICAgY3VzdG9tZXJRdWVyeVRleHQ6ICdmb3VuZCB3aGF0IHRoZXkgd2VyZSBsb29raW5nIGZvci4uLicsXG4gICAgICBwcmltYXJ5QnV0dG9uVGV4dDogJ1N0YXJ0IHNob3BwaW5nJyxcbiAgICAgIHNlY29uZGFyeUJ1dHRvblRpdGxlVGV4dDogJ1BvcHVsYXIgc2VhcmNoZXMnLFxuICAgICAgc2Vjb25kYXJ5QnV0dG9uVGV4dHM6IFtcbiAgICAgICAgJ1doeSBzaG91bGQgSSBidXkgZnJvbSB5b3U/JyxcbiAgICAgICAgJ0hvdyBkbyBJIHJldHVybiBhbiBpdGVtPycsXG4gICAgICAgICdOZXcgYXJyaXZhbHMnLFxuICAgICAgICAnU2FsZSBpdGVtcycsXG4gICAgICAgICdQb3B1bGFyIGl0ZW1zJyxcbiAgICAgIF0sXG4gICAgICB0ZXh0RmllbGRQbGFjZWhvbGRlclRleHQ6ICdBc2sgbWUgYW55dGhpbmcuLi4nLFxuICAgIH0sXG4gIH0sXG4gIFtXaWRnZXRUeXBlVjMuVHlwaW5nQW5pbWF0aW9uVjNdOiB7XG4gICAgcmVzcG9uc2VJZDogJ21vY2stcmVzcG9uc2UtaWQnLFxuICAgIGxhbmd1YWdlOiAnZW4nLFxuICAgIHZhbHVlczoge1xuICAgICAgdGl0bGVMYWJlbDogJ1Nob3BwaW5nIEFzc2lzdGFudCcsXG4gICAgICBoZWFkbGluZVRleHQ6ICdOZWVkIGhlbHAgZmluZGluZycsXG4gICAgICBhbmltYXRlZFRleHRTZXF1ZW5jZTogW1xuICAgICAgICAndGhlIHBlcmZlY3QgZ2lmdCBmb3IgeW91ciBsb3ZlZCBvbmVzPycsXG4gICAgICAgICdzb21ldGhpbmcgc3BlY2lhbCBmb3IgdGhlIGhvbGlkYXlzPycsXG4gICAgICAgICd0aGUgaWRlYWwgcHJlc2VudCBmb3Igc29tZW9uZSBzcGVjaWFsPycsXG4gICAgICBdLFxuICAgICAgaGludFRleHQ6ICdBc2sgbWUgYW55dGhpbmcnLFxuICAgICAgcHJvbXB0QnV0dG9uVGV4dHM6IFtcbiAgICAgICAgJ1doYXQgYXJlIHlvdXIgYmVzdCBzZWxsZXJzPycsXG4gICAgICAgICdTaG93IG1lIHN1bW1lciBkcmVzc2VzJyxcbiAgICAgICAgJ0RvIHlvdSBoYXZlIGZyZWUgc2hpcHBpbmc/JyxcbiAgICAgICAgJ1doYXQgc2l6ZXMgYXJlIGF2YWlsYWJsZT8nLFxuICAgICAgXSxcbiAgICAgIHRleHRGaWVsZEFyaWFMYWJlbDogJ0FzayBtZSBhbnl0aGluZycsXG4gICAgfSxcbiAgfSxcbiAgW1dpZGdldFR5cGVWMy5DaGF0UHJldmlld0NvbXBhcmlzb25WM106IHtcbiAgICByZXNwb25zZUlkOiAnbW9jay1yZXNwb25zZS1pZCcsXG4gICAgbGFuZ3VhZ2U6ICdlbicsXG4gICAgdmFsdWVzOiB7XG4gICAgICB0aXRsZUxhYmVsOiAnU2hvcHBpbmcgQXNzaXN0YW50JyxcbiAgICAgIGhlYWRsaW5lVGV4dDogJ05lZWQgaGVscCBjb21wYXJpbmc/JyxcbiAgICAgIHRleHRGaWVsZFBsYWNlaG9sZGVyVGV4dDogJ0FzayBtZSBhbnl0aGluZy4uLicsXG4gICAgfSxcbiAgfSxcbiAgW1dpZGdldFR5cGVWMy5DaGF0UHJldmlld0xvYWRpbmdWM106IHtcbiAgICByZXNwb25zZUlkOiAnbW9jay1yZXNwb25zZS1pZCcsXG4gICAgbGFuZ3VhZ2U6ICdlbicsXG4gICAgdmFsdWVzOiB7XG4gICAgICB0aXRsZUxhYmVsOiAnU2hvcHBpbmcgQXNzaXN0YW50JyxcbiAgICAgIHRleHRGaWVsZFBsYWNlaG9sZGVyVGV4dDogJ0FzayBtZSBhbnl0aGluZy4uLicsXG4gICAgfSxcbiAgfSxcbiAgW1dpZGdldFR5cGVWMy5DaGF0UHJldmlld1YzXToge1xuICAgIHJlc3BvbnNlSWQ6ICdtb2NrLXJlc3BvbnNlLWlkJyxcbiAgICBsYW5ndWFnZTogJ2VuJyxcbiAgICB2YWx1ZXM6IHtcbiAgICAgIHRpdGxlTGFiZWw6ICdTaG9wcGluZyBBc3Npc3RhbnQnLFxuICAgICAgdGV4dEZpZWxkUGxhY2Vob2xkZXJUZXh0OiAnQXNrIG1lIGFueXRoaW5nLi4uJyxcbiAgICB9LFxuICB9LFxuICBbV2lkZ2V0VHlwZVYzLlByb21wdEJ1dHRvbkNhcm91c2VsV2l0aEltYWdlVjNdOiB7XG4gICAgcmVzcG9uc2VJZDogJ21vY2stcmVzcG9uc2UtaWQnLFxuICAgIGxhbmd1YWdlOiAnZW4nLFxuICAgIHZhbHVlczoge1xuICAgICAgdGl0bGVMYWJlbDogJ05lZWQgc29tZSBoZWxwPycsXG4gICAgICBwcm9tcHRCdXR0b25zVGV4dHM6IFsnSGVscCBtZSBmaW5kIGEgcHJvZHVjdCcsIFwiV2hhdCdzIG9uIHlvdXIgbWluZD9cIiwgJ1RhbGsgdG8gYSBodW1hbiddLFxuICAgICAgdGV4dEZpZWxkUGxhY2Vob2xkZXJUZXh0OiAnQXNrIG1lIGFueXRoaW5nLi4uJyxcbiAgICB9LFxuICB9LFxuICBbV2lkZ2V0VHlwZVYzLlByb2R1Y3RDYXJkVjNdOiB7XG4gICAgcmVzcG9uc2VJZDogJ21vY2stcmVzcG9uc2UtaWQnLFxuICAgIGxhbmd1YWdlOiAnZW4nLFxuICAgIHZhbHVlczoge1xuICAgICAgaGVhZGxpbmU6ICdEaXNjb3ZlciBZb3VyIFBlcmZlY3QgU3R5bGUnLFxuICAgICAgYW5pbWF0ZWRUZXh0OiBbXG4gICAgICAgICd0aGUgcGVyZmVjdCBvdXRmaXQgZm9yIGFueSBvY2Nhc2lvbicsXG4gICAgICAgICd0cmVuZGluZyBmYXNoaW9uIHRoYXQgZml0cyB5b3VyIGxpZmVzdHlsZScsXG4gICAgICAgICdxdWFsaXR5IHBpZWNlcyB0aGF0IGxhc3QnLFxuICAgICAgXSxcbiAgICAgIHByb21wdHM6IFtcbiAgICAgICAgJ1doYXQgYXJlIHlvdXIgYmVzdCBzZWxsZXJzPycsXG4gICAgICAgICdTaG93IG1lIHN1bW1lciBkcmVzc2VzJyxcbiAgICAgICAgJ0RvIHlvdSBoYXZlIGZyZWUgc2hpcHBpbmc/JyxcbiAgICAgICAgJ1doYXQgc2l6ZXMgYXJlIGF2YWlsYWJsZT8nLFxuICAgICAgICAnQ2FuIEkgcmV0dXJuIGl0ZW1zPycsXG4gICAgICBdLFxuICAgICAgcGxhY2Vob2xkZXI6ICdBc2sgbWUgYW55dGhpbmcuLi4nLFxuICAgIH0sXG4gIH0sXG4gIFtXaWRnZXRUeXBlVjMuRmxvYXRpbmdDaGF0VjNdOiB7XG4gICAgcmVzcG9uc2VJZDogJ21vY2stcmVzcG9uc2UtaWQnLFxuICAgIGxhbmd1YWdlOiAnZW4nLFxuICAgIHZhbHVlczoge1xuICAgICAgd2VsY29tZU1lc3NhZ2VUaXRsZTogJ1dlbGNvbWUgdG8gRW52aXZlIEFJJyxcbiAgICAgIHdlbGNvbWVNZXNzYWdlVGV4dDpcbiAgICAgICAgJ1lvdXIgcGVyc29uYWwgc2hvcHBlciB0cmFpbmVkIG9uIHRoZSBjb2xsZWN0aXZlIGtub3dsZWRnZSBvZiB0aG91c2FuZHMgb2YgcmVhbCBleHBlcnRzIScsXG4gICAgICBjaGF0Rm9vdGVyVGV4dEZpZWxkUGxhY2Vob2xkZXJUZXh0OiAnQXNrIG1lIGFueXRoaW5nLi4uJyxcbiAgICAgIGRpc2NsYWltZXJUZXh0OiAnVGhpcyBpcyBhIGRpc2NsYWltZXIuLi4nLFxuICAgICAgbGVmdFRvZ2dsZUxhYmVsOiAnU2hvcCB3aXRoIEFJJyxcbiAgICAgIHJpZ2h0VG9nZ2xlTGFiZWw6ICdMaXZlIHN1cHBvcnQnLFxuICAgIH0sXG4gIH0sXG4gIFtXaWRnZXRUeXBlVjMuRnVsbFBhZ2VTYWxlc0FnZW50VjNdOiB7XG4gICAgcmVzcG9uc2VJZDogJ21vY2stcmVzcG9uc2UtaWQnLFxuICAgIGxhbmd1YWdlOiAnZW4nLFxuICAgIHZhbHVlczoge1xuICAgICAgd2VsY29tZU1lc3NhZ2VUaXRsZTogJ1dlbGNvbWUgdG8gRW52aXZlIEFJJyxcbiAgICAgIHdlbGNvbWVNZXNzYWdlVGV4dDpcbiAgICAgICAgJ1lvdXIgcGVyc29uYWwgc2hvcHBlciB0cmFpbmVkIG9uIHRoZSBjb2xsZWN0aXZlIGtub3dsZWRnZSBvZiB0aG91c2FuZHMgb2YgcmVhbCBleHBlcnRzIScsXG4gICAgICBjaGF0Rm9vdGVyVGV4dEZpZWxkUGxhY2Vob2xkZXJUZXh0OiAnQXNrIG1lIGFueXRoaW5nLi4uJyxcbiAgICAgIGRpc2NsYWltZXJUZXh0OiAnVGhpcyBpcyBhIGRpc2NsYWltZXIuLi4nLFxuICAgIH0sXG4gIH0sXG59O1xuXG5jb25zdCBIYXJkY29weUNvbnRleHQgPSBjcmVhdGVDb250ZXh0PEhhcmRjb3B5Q29udGV4dFR5cGUgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbmludGVyZmFjZSBIYXJkY29weVByb3ZpZGVyUHJvcHMge1xuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xuICBoYXJkY29weU92ZXJyaWRlPzogUGFydGlhbDxSZWNvcmQ8V2lkZ2V0VHlwZVYzLCBIYXJkY29weVJlc3BvbnNlPj47XG59XG5cbmV4cG9ydCBjb25zdCBIYXJkY29weVByb3ZpZGVyOiBSZWFjdC5GQzxIYXJkY29weVByb3ZpZGVyUHJvcHM+ID0gKHtcbiAgY2hpbGRyZW4sXG4gIGhhcmRjb3B5T3ZlcnJpZGUsXG59KSA9PiB7XG4gIGNvbnN0IGxhbmd1YWdlcyA9IHVzZU1lbW8oKCkgPT4gbmF2aWdhdG9yLmxhbmd1YWdlcywgW10pO1xuICBjb25zdCBbaXNMb2FkaW5nLCBzZXRJc0xvYWRpbmddID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBjb250ZXh0ID0gdXNlQXRvbVZhbHVlKGFwcERldGFpbHNBdG9tKTtcbiAgY29uc3QgeyB0cmFja0V2ZW50IH0gPSB1c2VBbXBsaXR1ZGUoKTtcblxuICBjb25zdCB7IGZlYXR1cmVGbGFnU2VydmljZSB9ID0gdXNlRmVhdHVyZUZsYWdTZXJ2aWNlKCk7XG4gIGNvbnN0IGdldEhhcmRjb3B5RnJvbUJhY2tlbmQgPSB1c2VDYWxsYmFjayhcbiAgICBhc3luYyAocmVxdWVzdDogSGFyZGNvcHlSZXF1ZXN0KTogUHJvbWlzZTxIYXJkY29weVJlc3BvbnNlPiA9PiB7XG4gICAgICBjb25zdCBmYWxsYmFja1dpZGdldFR5cGUgPVxuICAgICAgICByZXF1ZXN0LndpZGdldFR5cGUgPT09IFdpZGdldFR5cGVWMy5Qcm9kdWN0Q2FyZFYzXG4gICAgICAgICAgPyBXaWRnZXRUeXBlVjMuSW1hZ2VQcm9tcHRDYXJkVjNcbiAgICAgICAgICA6IHJlcXVlc3Qud2lkZ2V0VHlwZTtcblxuICAgICAgY29uc3Qgb3ZlcnJpZGVFbnRyeSA9XG4gICAgICAgIGhhcmRjb3B5T3ZlcnJpZGU/LltyZXF1ZXN0LndpZGdldFR5cGVdID8/IGhhcmRjb3B5T3ZlcnJpZGU/LltmYWxsYmFja1dpZGdldFR5cGVdO1xuICAgICAgaWYgKG92ZXJyaWRlRW50cnkpIHtcbiAgICAgICAgbG9nZ2VyLmxvZ0RlYnVnKCd1c2luZyBoYXJkY29weSBvdmVycmlkZScsIHJlcXVlc3Qud2lkZ2V0VHlwZSk7XG4gICAgICAgIHJldHVybiBvdmVycmlkZUVudHJ5O1xuICAgICAgfVxuXG4gICAgICBjb25zdCBvdmVycmlkZUNvbmZpZ1ZlcnNpb24gPVxuICAgICAgICBnZXRRdWVyeVBhcmFtKCdzcGlmZnlfY29uZmlnX3ZlcnNpb24nKSB8fFxuICAgICAgICBnZXRRdWVyeVBhcmFtKCdlbnZpdmVfY29uZmlnX3ZlcnNpb24nKSB8fFxuICAgICAgICB1bmRlZmluZWQ7XG4gICAgICBjb25zdCB3aWRnZXRUZXh0UmVxdWVzdDogV2lkZ2V0VGV4dFJlcXVlc3QgPSB7XG4gICAgICAgIHJlcXVlc3RJZDogdXVpZCgpLFxuICAgICAgICB3aWRnZXRUeXBlOiByZXF1ZXN0LndpZGdldFR5cGUsXG4gICAgICAgIGNvbnRleHQsXG4gICAgICAgIGZlYXR1cmVGbGFnczogZmVhdHVyZUZsYWdTZXJ2aWNlPy5nZXRGZWF0dXJlRmxhZ3MoKSB8fCB7fSxcbiAgICAgICAgbGFuZ3VhZ2U6IGxhbmd1YWdlc1swXSB8fCAnZW4nLFxuICAgICAgICBvdmVycmlkZUNvbmZpZ1ZlcnNpb24sXG4gICAgICAgIHVybDogd2luZG93LmxvY2F0aW9uLmhyZWYsXG4gICAgICB9O1xuICAgICAgdHJhY2tFdmVudCh7XG4gICAgICAgIGV2ZW50TmFtZTogRW52aXZlTWV0cmljc0V2ZW50TmFtZS5XaWRnZXRUZXh0UmVxdWVzdCxcbiAgICAgICAgZXZlbnRQcm9wczoge1xuICAgICAgICAgIHdpZGdldF90eXBlOiByZXF1ZXN0LndpZGdldFR5cGUsXG4gICAgICAgICAgcmVxdWVzdF9pZDogd2lkZ2V0VGV4dFJlcXVlc3QucmVxdWVzdElkLFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IENvbW1lcmNlQXBpQ2xpZW50LmdldEhhcmRjb3B5KHdpZGdldFRleHRSZXF1ZXN0KTtcbiAgICAgICAgaWYgKHJlc3BvbnNlKSB7XG4gICAgICAgICAgY29uc3QgY29udmVydGVkUmVzcG9uc2UgPSBjb252ZXJ0VG9IYXJkY29weVJlc3BvbnNlKHJlc3BvbnNlKTtcbiAgICAgICAgICBsb2dnZXIubG9nRGVidWcoJ2NvbnZlcnRlZCByZXNwb25zZScsIGNvbnZlcnRlZFJlc3BvbnNlKTtcbiAgICAgICAgICB0cmFja0V2ZW50KHtcbiAgICAgICAgICAgIGV2ZW50TmFtZTogRW52aXZlTWV0cmljc0V2ZW50TmFtZS5XaWRnZXRUZXh0UmVzcG9uc2UsXG4gICAgICAgICAgICBldmVudFByb3BzOiB7XG4gICAgICAgICAgICAgIHdpZGdldF90eXBlOiByZXF1ZXN0LndpZGdldFR5cGUsXG4gICAgICAgICAgICAgIHJlc3BvbnNlX2lkOiByZXNwb25zZS5yZXNwb25zZUlkLFxuICAgICAgICAgICAgICB3aWRnZXRfdGV4dDogcmVzcG9uc2UudmFsdWVzLFxuICAgICAgICAgICAgICByZXF1ZXN0X2lkOiB3aWRnZXRUZXh0UmVxdWVzdC5yZXF1ZXN0SWQsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHJldHVybiBjb252ZXJ0ZWRSZXNwb25zZTtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgbG9nZ2VyLmxvZ0Vycm9yKCdlcnJvciBnZXR0aW5nIGhhcmRjb3B5IGZyb20gYmFja2VuZCcsIGVycm9yKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IG1vY2tSZXNwb25zZSA9IE1PQ0tfSEFSRENPUFlfUkVTUE9OU0VbcmVxdWVzdC53aWRnZXRUeXBlXTtcbiAgICAgIGlmIChtb2NrUmVzcG9uc2UpIHtcbiAgICAgICAgbG9nZ2VyLmxvZ0RlYnVnKCdubyByZWFsIHJlc3BvbnNlLCB1c2luZyBtb2NrJywgbW9ja1Jlc3BvbnNlKTtcbiAgICAgICAgcmV0dXJuIG1vY2tSZXNwb25zZTtcbiAgICAgIH1cbiAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gaGFyZGNvcHkgcmVzcG9uc2UgZm91bmQgZm9yIHdpZGdldCB0eXBlOiAke3JlcXVlc3Qud2lkZ2V0VHlwZX1gKTtcbiAgICB9LFxuICAgIFtjb250ZXh0LCBmZWF0dXJlRmxhZ1NlcnZpY2UsIGhhcmRjb3B5T3ZlcnJpZGUsIGxhbmd1YWdlcywgdHJhY2tFdmVudF0sXG4gICk7XG5cbiAgY29uc3QgZ2V0SGFyZGNvcHkgPSB1c2VDYWxsYmFjayhcbiAgICBhc3luYyAocmVxdWVzdDogSGFyZGNvcHlSZXF1ZXN0KTogUHJvbWlzZTxIYXJkY29weVJlc3BvbnNlPiA9PiB7XG4gICAgICBzZXRJc0xvYWRpbmcodHJ1ZSk7XG4gICAgICBsb2dnZXIubG9nRGVidWcoJ3JldHJpZXZpbmcgaGFyZGNvcHknLCBsYW5ndWFnZXMpO1xuXG4gICAgICBsb2dnZXIubG9nRGVidWcoJ3JlcXVlc3QnLCByZXF1ZXN0KTtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZ2V0SGFyZGNvcHlGcm9tQmFja2VuZChyZXF1ZXN0KTtcbiAgICAgIGxvZ2dlci5sb2dEZWJ1ZygncmV0dXJuaW5nIGhhcmRjb3B5IHJlc3BvbnNlJywgcmVzcG9uc2UpO1xuICAgICAgaWYgKCFyZXNwb25zZSkge1xuICAgICAgICBzZXRJc0xvYWRpbmcoZmFsc2UpO1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIGhhcmRjb3B5IHJlc3BvbnNlIGZvdW5kIGZvciB3aWRnZXQgdHlwZTogJHtyZXF1ZXN0LndpZGdldFR5cGV9YCk7XG4gICAgICB9XG4gICAgICBzZXRJc0xvYWRpbmcoZmFsc2UpO1xuICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgIH0sXG4gICAgW2dldEhhcmRjb3B5RnJvbUJhY2tlbmQsIGxhbmd1YWdlc10sXG4gICk7XG5cbiAgY29uc3QgdmFsdWUgPSB1c2VNZW1vKCgpID0+ICh7IGdldEhhcmRjb3B5LCBpc0xvYWRpbmcgfSksIFtnZXRIYXJkY29weSwgaXNMb2FkaW5nXSk7XG5cbiAgcmV0dXJuIDxIYXJkY29weUNvbnRleHQuUHJvdmlkZXIgdmFsdWU9e3ZhbHVlfT57Y2hpbGRyZW59PC9IYXJkY29weUNvbnRleHQuUHJvdmlkZXI+O1xufTtcblxuZXhwb3J0IGNvbnN0IHVzZUhhcmRjb3B5ID0gKCkgPT4ge1xuICBjb25zdCBjb250ZXh0ID0gdXNlQ29udGV4dChIYXJkY29weUNvbnRleHQpO1xuICBpZiAoIWNvbnRleHQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3VzZUhhcmRjb3B5IG11c3QgYmUgdXNlZCB3aXRoaW4gYSBIYXJkY29weVByb3ZpZGVyJyk7XG4gIH1cbiAgcmV0dXJuIGNvbnRleHQ7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBaUJBLE1BQU0sU0FBUyxJQUFJQSx1QkFBTyxrQkFBa0I7QUFtQjVDLE1BQU0sNkJBQTZCLGFBQTJDO0FBQzVFLFFBQU87RUFDTCxZQUFZLFNBQVM7RUFDckIsVUFBVSxTQUFTO0VBQ25CLFdBQVcsU0FBUztFQUNwQixRQUFRLE9BQU8sWUFDYixPQUFPLFFBQVEsU0FBUyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssV0FBVyxDQUVwREMsNENBQVksSUFBSSxFQUNoQixNQUFNLFdBQVcsSUFBSSxNQUFNLEdBQUcsUUFBUSxNQUFNLEtBQUksTUFBSyxFQUFFLE1BQU0sQ0FDOUQsQ0FBQyxDQUNIO0VBQ0Y7O0FBTUgsTUFBTUMseUJBQTBFO0VBQzdFQyxzQ0FBYSxtQkFBbUI7RUFDL0IsMEJBQWtCO0VBQ2xCLFVBQVU7RUFDVixRQUFRLEVBQ04sbUJBQW1C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
|
|
@@ -180,9 +180,11 @@ const HardcopyProvider = ({ children, hardcopyOverride }) => {
|
|
|
180
180
|
const { trackEvent } = useAmplitude();
|
|
181
181
|
const { featureFlagService } = useFeatureFlagService();
|
|
182
182
|
const getHardcopyFromBackend = useCallback(async (request) => {
|
|
183
|
-
|
|
183
|
+
const fallbackWidgetType = request.widgetType === WidgetTypeV3.ProductCardV3 ? WidgetTypeV3.ImagePromptCardV3 : request.widgetType;
|
|
184
|
+
const overrideEntry = hardcopyOverride?.[request.widgetType] ?? hardcopyOverride?.[fallbackWidgetType];
|
|
185
|
+
if (overrideEntry) {
|
|
184
186
|
logger.logDebug("using hardcopy override", request.widgetType);
|
|
185
|
-
return
|
|
187
|
+
return overrideEntry;
|
|
186
188
|
}
|
|
187
189
|
const overrideConfigVersion = getQueryParam("spiffy_config_version") || getQueryParam("envive_config_version") || void 0;
|
|
188
190
|
const widgetTextRequest = {
|
|
@@ -263,4 +265,4 @@ const useHardcopy = () => {
|
|
|
263
265
|
|
|
264
266
|
//#endregion
|
|
265
267
|
export { HardcopyProvider, useHardcopy };
|
|
266
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFyZGNvcHlDb250ZXh0LmpzIiwibmFtZXMiOlsiTG9nZ2VyIiwiTU9DS19IQVJEQ09QWV9SRVNQT05TRTogUGFydGlhbDxSZWNvcmQ8V2lkZ2V0VHlwZVYzLCBIYXJkY29weVJlc3BvbnNlPj4iLCJ1dWlkIiwiSGFyZGNvcHlQcm92aWRlcjogUmVhY3QuRkM8SGFyZGNvcHlQcm92aWRlclByb3BzPiIsIndpZGdldFRleHRSZXF1ZXN0OiBXaWRnZXRUZXh0UmVxdWVzdCIsIkNvbW1lcmNlQXBpQ2xpZW50Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbnRleHRzL2hhcmRjb3B5Q29udGV4dC9oYXJkY29weUNvbnRleHQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlYWN0Tm9kZSwgY3JlYXRlQ29udGV4dCwgdXNlQ2FsbGJhY2ssIHVzZUNvbnRleHQsIHVzZU1lbW8sIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IExvZ2dlciBmcm9tICdzcmMvYXBwbGljYXRpb24vbG9nZ2luZy9sb2dnZXInO1xuaW1wb3J0IHsgdjQgYXMgdXVpZCB9IGZyb20gJ3V1aWQnO1xuaW1wb3J0IENvbW1lcmNlQXBpQ2xpZW50IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9jb21tZXJjZS1hcGknO1xuaW1wb3J0IHsgV2lkZ2V0U3RyaW5nLCBXaWRnZXRUZXh0IH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9hcGkvd2lkZ2V0VGV4dCc7XG5pbXBvcnQgeyBXaWRnZXRUZXh0UmVxdWVzdCB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvYXBpL3dpZGdldFRleHRSZXF1ZXN0JztcblxuaW1wb3J0IHsgdXNlQXRvbVZhbHVlIH0gZnJvbSAnam90YWknO1xuaW1wb3J0IHsgYXBwRGV0YWlsc0F0b20gfSBmcm9tICdzcmMvYXRvbXMvYXBwJztcbmltcG9ydCB7IEVudml2ZU1ldHJpY3NFdmVudE5hbWUgfSBmcm9tICdzcmMvc2VydmljZXMvYW1wbGl0dWRlU2VydmljZS9hbXBsaXR1ZGVTZXJ2aWNlJztcbmltcG9ydCB7IHRvQ2FtZWxDYXNlIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy91dGlscy9zbmFrZVRvQ2FtZWxUcmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBVc2VyRXZlbnQgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzJztcbmltcG9ydCB7IGdldFF1ZXJ5UGFyYW0gfSBmcm9tICdzcmMvYXBwbGljYXRpb24vdXRpbHMnO1xuaW1wb3J0IHsgV2lkZ2V0VHlwZVYzIH0gZnJvbSAnLi4vdHlwZXNWMyc7XG5pbXBvcnQgeyB1c2VGZWF0dXJlRmxhZ1NlcnZpY2UgfSBmcm9tICcuLi9mZWF0dXJlRmxhZ1NlcnZpY2VDb250ZXh0L2ZlYXR1cmVGbGFnU2VydmljZUNvbnRleHQnO1xuaW1wb3J0IHsgdXNlQW1wbGl0dWRlIH0gZnJvbSAnLi4vYW1wbGl0dWRlQ29udGV4dCc7XG5cbmNvbnN0IGxvZ2dlciA9IG5ldyBMb2dnZXIoJ2hhcmRjb3B5Q29udGV4dCcpO1xuXG5pbnRlcmZhY2UgSGFyZGNvcHlSZXF1ZXN0IHtcbiAgd2lkZ2V0VHlwZTogV2lkZ2V0VHlwZVYzO1xuICB1c2VyRXZlbnQ6IFVzZXJFdmVudDtcbn1cblxuZXhwb3J0IHR5cGUgSGFyZGNvcHlSZXNwb25zZSA9IHtcbiAgcmVzcG9uc2VJZDogc3RyaW5nO1xuICBsYW5ndWFnZTogc3RyaW5nO1xuICByYXdWYWx1ZXM/OiBSZWNvcmQ8c3RyaW5nLCBXaWRnZXRTdHJpbmcgfCBXaWRnZXRTdHJpbmdbXT47XG4gIHZhbHVlczogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgc3RyaW5nW10+O1xufTtcblxuaW50ZXJmYWNlIEhhcmRjb3B5Q29udGV4dFR5cGUge1xuICBnZXRIYXJkY29weTogKEhhcmRjb3B5UmVxdWVzdDogSGFyZGNvcHlSZXF1ZXN0KSA9PiBQcm9taXNlPEhhcmRjb3B5UmVzcG9uc2U+O1xuICBpc0xvYWRpbmc6IGJvb2xlYW47XG59XG5cbmNvbnN0IGNvbnZlcnRUb0hhcmRjb3B5UmVzcG9uc2UgPSAocmVzcG9uc2U6IFdpZGdldFRleHQpOiBIYXJkY29weVJlc3BvbnNlID0+IHtcbiAgcmV0dXJuIHtcbiAgICByZXNwb25zZUlkOiByZXNwb25zZS5yZXNwb25zZUlkLFxuICAgIGxhbmd1YWdlOiByZXNwb25zZS5sYW5ndWFnZSxcbiAgICByYXdWYWx1ZXM6IHJlc3BvbnNlLnZhbHVlcyxcbiAgICB2YWx1ZXM6IE9iamVjdC5mcm9tRW50cmllcyhcbiAgICAgIE9iamVjdC5lbnRyaWVzKHJlc3BvbnNlLnZhbHVlcykubWFwKChba2V5LCB2YWx1ZV0pID0+IFtcbiAgICAgICAgLy8gVHJhbnNmb3JtIHRoZSBrZXkgZnJvbSBzbmFrZV9jYXNlIHRvIGNhbWVsQ2FzZVxuICAgICAgICB0b0NhbWVsQ2FzZShrZXkpLFxuICAgICAgICB2YWx1ZS5sZW5ndGggPT09IDEgPyB2YWx1ZVswXS52YWx1ZSA6IHZhbHVlLm1hcCh2ID0+IHYudmFsdWUpLFxuICAgICAgXSksXG4gICAgKSxcbiAgfTtcbn07XG5cbi8vIFRoZXNlIGFyZSBqdXN0IHNhbXBsZSByZXNwb25zZXMgZm9yIHRoZSBzYWtlIG9mIHRlc3RpbmcuXG4vLyBBcyB3ZSBzdGFydCB0byBidWlsZCB0aGUgYWN0dWFsIHdpZGdldHMgd2Ugc2hvdWxkIGRldGVybWluZSB3aGF0IHRoZSBhY3R1YWxcbi8vIHZhbHVlcyBhbmQgdGhlaXIgbmFtZXMgc2hvdWxkIGJlLlxuY29uc3QgTU9DS19IQVJEQ09QWV9SRVNQT05TRTogUGFydGlhbDxSZWNvcmQ8V2lkZ2V0VHlwZVYzLCBIYXJkY29weVJlc3BvbnNlPj4gPSB7XG4gIFtXaWRnZXRUeXBlVjMuUHJvbXB0Q2Fyb3VzZWxWM106IHtcbiAgICByZXNwb25zZUlkOiB1dWlkKCksXG4gICAgbGFuZ3VhZ2U6ICdlbicsXG4gICAgdmFsdWVzOiB7XG4gICAgICBwcm9tcHRCdXR0b25UZXh0czogW1xuICAgICAgICAnV2hhdCBhcmUgeW91ciBiZXN0IHNlbGxlcnM/JyxcbiAgICAgICAgJ1Nob3cgbWUgc3VtbWVyIGRyZXNzZXMnLFxuICAgICAgICAnRG8geW91IGhhdmUgZnJlZSBzaGlwcGluZz8nLFxuICAgICAgICAnV2hhdCBzaXplcyBhcmUgYXZhaWxhYmxlPycsXG4gICAgICAgICdDYW4gSSByZXR1cm4gaXRlbXM/JyxcbiAgICAgIF0sXG4gICAgfSxcbiAgfSxcbiAgW1dpZGdldFR5cGVWMy5UaXRsZWRQcm9tcHRDYXJvdXNlbFYzXToge1xuICAgIHJlc3BvbnNlSWQ6ICdtb2NrLXJlc3BvbnNlLWlkJyxcbiAgICBsYW5ndWFnZTogJ2VuJyxcbiAgICB2YWx1ZXM6IHtcbiAgICAgIHRpdGxlTGFiZWw6ICdOZWVkIHNvbWUgaGVscD8nLFxuICAgICAgcHJvbXB0QnV0dG9uVGV4dHM6IFtcbiAgICAgICAgJ1doYXQgYXJlIHlvdXIgYmVzdCBzZWxsZXJzPycsXG4gICAgICAgICdTaG93IG1lIHN1bW1lciBkcmVzc2VzJyxcbiAgICAgICAgJ0RvIHlvdSBoYXZlIGZyZWUgc2hpcHBpbmc/JyxcbiAgICAgICAgJ1doYXQgc2l6ZXMgYXJlIGF2YWlsYWJsZT8nLFxuICAgICAgICAnQ2FuIEkgcmV0dXJuIGl0ZW1zPycsXG4gICAgICBdLFxuICAgIH0sXG4gIH0sXG4gIFtXaWRnZXRUeXBlVjMuU29jaWFsUHJvb2ZWM106IHtcbiAgICByZXNwb25zZUlkOiAnbW9jay1yZXNwb25zZS1pZCcsXG4gICAgbGFuZ3VhZ2U6ICdlbicsXG4gICAgdmFsdWVzOiB7XG4gICAgICB0aXRsZUxhYmVsOiAnU2hvcHBpbmcgQXNzaXN0YW50JyxcbiAgICAgIG51bWJlck9mQ3VzdG9tZXJzVGV4dDogJzEyMyBjdXN0b21lcnMnLFxuICAgICAgY3VzdG9tZXJRdWVyeVRleHQ6ICdmb3VuZCB3aGF0IHRoZXkgd2VyZSBsb29raW5nIGZvci4uLicsXG4gICAgICBwcmltYXJ5QnV0dG9uVGV4dDogJ1N0YXJ0IHNob3BwaW5nJyxcbiAgICAgIHNlY29uZGFyeUJ1dHRvblRpdGxlVGV4dDogJ1BvcHVsYXIgc2VhcmNoZXMnLFxuICAgICAgc2Vjb25kYXJ5QnV0dG9uVGV4dHM6IFtcbiAgICAgICAgJ1doeSBzaG91bGQgSSBidXkgZnJvbSB5b3U/JyxcbiAgICAgICAgJ0hvdyBkbyBJIHJldHVybiBhbiBpdGVtPycsXG4gICAgICAgICdOZXcgYXJyaXZhbHMnLFxuICAgICAgICAnU2FsZSBpdGVtcycsXG4gICAgICAgICdQb3B1bGFyIGl0ZW1zJyxcbiAgICAgIF0sXG4gICAgICB0ZXh0RmllbGRQbGFjZWhvbGRlclRleHQ6ICdBc2sgbWUgYW55dGhpbmcuLi4nLFxuICAgIH0sXG4gIH0sXG4gIFtXaWRnZXRUeXBlVjMuVHlwaW5nQW5pbWF0aW9uVjNdOiB7XG4gICAgcmVzcG9uc2VJZDogJ21vY2stcmVzcG9uc2UtaWQnLFxuICAgIGxhbmd1YWdlOiAnZW4nLFxuICAgIHZhbHVlczoge1xuICAgICAgdGl0bGVMYWJlbDogJ1Nob3BwaW5nIEFzc2lzdGFudCcsXG4gICAgICBoZWFkbGluZVRleHQ6ICdOZWVkIGhlbHAgZmluZGluZycsXG4gICAgICBhbmltYXRlZFRleHRTZXF1ZW5jZTogW1xuICAgICAgICAndGhlIHBlcmZlY3QgZ2lmdCBmb3IgeW91ciBsb3ZlZCBvbmVzPycsXG4gICAgICAgICdzb21ldGhpbmcgc3BlY2lhbCBmb3IgdGhlIGhvbGlkYXlzPycsXG4gICAgICAgICd0aGUgaWRlYWwgcHJlc2VudCBmb3Igc29tZW9uZSBzcGVjaWFsPycsXG4gICAgICBdLFxuICAgICAgaGludFRleHQ6ICdBc2sgbWUgYW55dGhpbmcnLFxuICAgICAgcHJvbXB0QnV0dG9uVGV4dHM6IFtcbiAgICAgICAgJ1doYXQgYXJlIHlvdXIgYmVzdCBzZWxsZXJzPycsXG4gICAgICAgICdTaG93IG1lIHN1bW1lciBkcmVzc2VzJyxcbiAgICAgICAgJ0RvIHlvdSBoYXZlIGZyZWUgc2hpcHBpbmc/JyxcbiAgICAgICAgJ1doYXQgc2l6ZXMgYXJlIGF2YWlsYWJsZT8nLFxuICAgICAgXSxcbiAgICAgIHRleHRGaWVsZEFyaWFMYWJlbDogJ0FzayBtZSBhbnl0aGluZycsXG4gICAgfSxcbiAgfSxcbiAgW1dpZGdldFR5cGVWMy5DaGF0UHJldmlld0NvbXBhcmlzb25WM106IHtcbiAgICByZXNwb25zZUlkOiAnbW9jay1yZXNwb25zZS1pZCcsXG4gICAgbGFuZ3VhZ2U6ICdlbicsXG4gICAgdmFsdWVzOiB7XG4gICAgICB0aXRsZUxhYmVsOiAnU2hvcHBpbmcgQXNzaXN0YW50JyxcbiAgICAgIGhlYWRsaW5lVGV4dDogJ05lZWQgaGVscCBjb21wYXJpbmc/JyxcbiAgICAgIHRleHRGaWVsZFBsYWNlaG9sZGVyVGV4dDogJ0FzayBtZSBhbnl0aGluZy4uLicsXG4gICAgfSxcbiAgfSxcbiAgW1dpZGdldFR5cGVWMy5DaGF0UHJldmlld0xvYWRpbmdWM106IHtcbiAgICByZXNwb25zZUlkOiAnbW9jay1yZXNwb25zZS1pZCcsXG4gICAgbGFuZ3VhZ2U6ICdlbicsXG4gICAgdmFsdWVzOiB7XG4gICAgICB0aXRsZUxhYmVsOiAnU2hvcHBpbmcgQXNzaXN0YW50JyxcbiAgICAgIHRleHRGaWVsZFBsYWNlaG9sZGVyVGV4dDogJ0FzayBtZSBhbnl0aGluZy4uLicsXG4gICAgfSxcbiAgfSxcbiAgW1dpZGdldFR5cGVWMy5DaGF0UHJldmlld1YzXToge1xuICAgIHJlc3BvbnNlSWQ6ICdtb2NrLXJlc3BvbnNlLWlkJyxcbiAgICBsYW5ndWFnZTogJ2VuJyxcbiAgICB2YWx1ZXM6IHtcbiAgICAgIHRpdGxlTGFiZWw6ICdTaG9wcGluZyBBc3Npc3RhbnQnLFxuICAgICAgdGV4dEZpZWxkUGxhY2Vob2xkZXJUZXh0OiAnQXNrIG1lIGFueXRoaW5nLi4uJyxcbiAgICB9LFxuICB9LFxuICBbV2lkZ2V0VHlwZVYzLlByb21wdEJ1dHRvbkNhcm91c2VsV2l0aEltYWdlVjNdOiB7XG4gICAgcmVzcG9uc2VJZDogJ21vY2stcmVzcG9uc2UtaWQnLFxuICAgIGxhbmd1YWdlOiAnZW4nLFxuICAgIHZhbHVlczoge1xuICAgICAgdGl0bGVMYWJlbDogJ05lZWQgc29tZSBoZWxwPycsXG4gICAgICBwcm9tcHRCdXR0b25zVGV4dHM6IFsnSGVscCBtZSBmaW5kIGEgcHJvZHVjdCcsIFwiV2hhdCdzIG9uIHlvdXIgbWluZD9cIiwgJ1RhbGsgdG8gYSBodW1hbiddLFxuICAgICAgdGV4dEZpZWxkUGxhY2Vob2xkZXJUZXh0OiAnQXNrIG1lIGFueXRoaW5nLi4uJyxcbiAgICB9LFxuICB9LFxuICBbV2lkZ2V0VHlwZVYzLlByb2R1Y3RDYXJkVjNdOiB7XG4gICAgcmVzcG9uc2VJZDogJ21vY2stcmVzcG9uc2UtaWQnLFxuICAgIGxhbmd1YWdlOiAnZW4nLFxuICAgIHZhbHVlczoge1xuICAgICAgaGVhZGxpbmU6ICdEaXNjb3ZlciBZb3VyIFBlcmZlY3QgU3R5bGUnLFxuICAgICAgYW5pbWF0ZWRUZXh0OiBbXG4gICAgICAgICd0aGUgcGVyZmVjdCBvdXRmaXQgZm9yIGFueSBvY2Nhc2lvbicsXG4gICAgICAgICd0cmVuZGluZyBmYXNoaW9uIHRoYXQgZml0cyB5b3VyIGxpZmVzdHlsZScsXG4gICAgICAgICdxdWFsaXR5IHBpZWNlcyB0aGF0IGxhc3QnLFxuICAgICAgXSxcbiAgICAgIHByb21wdHM6IFtcbiAgICAgICAgJ1doYXQgYXJlIHlvdXIgYmVzdCBzZWxsZXJzPycsXG4gICAgICAgICdTaG93IG1lIHN1bW1lciBkcmVzc2VzJyxcbiAgICAgICAgJ0RvIHlvdSBoYXZlIGZyZWUgc2hpcHBpbmc/JyxcbiAgICAgICAgJ1doYXQgc2l6ZXMgYXJlIGF2YWlsYWJsZT8nLFxuICAgICAgICAnQ2FuIEkgcmV0dXJuIGl0ZW1zPycsXG4gICAgICBdLFxuICAgICAgcGxhY2Vob2xkZXI6ICdBc2sgbWUgYW55dGhpbmcuLi4nLFxuICAgIH0sXG4gIH0sXG4gIFtXaWRnZXRUeXBlVjMuRmxvYXRpbmdDaGF0VjNdOiB7XG4gICAgcmVzcG9uc2VJZDogJ21vY2stcmVzcG9uc2UtaWQnLFxuICAgIGxhbmd1YWdlOiAnZW4nLFxuICAgIHZhbHVlczoge1xuICAgICAgd2VsY29tZU1lc3NhZ2VUaXRsZTogJ1dlbGNvbWUgdG8gRW52aXZlIEFJJyxcbiAgICAgIHdlbGNvbWVNZXNzYWdlVGV4dDpcbiAgICAgICAgJ1lvdXIgcGVyc29uYWwgc2hvcHBlciB0cmFpbmVkIG9uIHRoZSBjb2xsZWN0aXZlIGtub3dsZWRnZSBvZiB0aG91c2FuZHMgb2YgcmVhbCBleHBlcnRzIScsXG4gICAgICBjaGF0Rm9vdGVyVGV4dEZpZWxkUGxhY2Vob2xkZXJUZXh0OiAnQXNrIG1lIGFueXRoaW5nLi4uJyxcbiAgICAgIGRpc2NsYWltZXJUZXh0OiAnVGhpcyBpcyBhIGRpc2NsYWltZXIuLi4nLFxuICAgICAgbGVmdFRvZ2dsZUxhYmVsOiAnU2hvcCB3aXRoIEFJJyxcbiAgICAgIHJpZ2h0VG9nZ2xlTGFiZWw6ICdMaXZlIHN1cHBvcnQnLFxuICAgIH0sXG4gIH0sXG4gIFtXaWRnZXRUeXBlVjMuRnVsbFBhZ2VTYWxlc0FnZW50VjNdOiB7XG4gICAgcmVzcG9uc2VJZDogJ21vY2stcmVzcG9uc2UtaWQnLFxuICAgIGxhbmd1YWdlOiAnZW4nLFxuICAgIHZhbHVlczoge1xuICAgICAgd2VsY29tZU1lc3NhZ2VUaXRsZTogJ1dlbGNvbWUgdG8gRW52aXZlIEFJJyxcbiAgICAgIHdlbGNvbWVNZXNzYWdlVGV4dDpcbiAgICAgICAgJ1lvdXIgcGVyc29uYWwgc2hvcHBlciB0cmFpbmVkIG9uIHRoZSBjb2xsZWN0aXZlIGtub3dsZWRnZSBvZiB0aG91c2FuZHMgb2YgcmVhbCBleHBlcnRzIScsXG4gICAgICBjaGF0Rm9vdGVyVGV4dEZpZWxkUGxhY2Vob2xkZXJUZXh0OiAnQXNrIG1lIGFueXRoaW5nLi4uJyxcbiAgICAgIGRpc2NsYWltZXJUZXh0OiAnVGhpcyBpcyBhIGRpc2NsYWltZXIuLi4nLFxuICAgIH0sXG4gIH0sXG59O1xuXG5jb25zdCBIYXJkY29weUNvbnRleHQgPSBjcmVhdGVDb250ZXh0PEhhcmRjb3B5Q29udGV4dFR5cGUgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbmludGVyZmFjZSBIYXJkY29weVByb3ZpZGVyUHJvcHMge1xuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xuICBoYXJkY29weU92ZXJyaWRlPzogUGFydGlhbDxSZWNvcmQ8V2lkZ2V0VHlwZVYzLCBIYXJkY29weVJlc3BvbnNlPj47XG59XG5cbmV4cG9ydCBjb25zdCBIYXJkY29weVByb3ZpZGVyOiBSZWFjdC5GQzxIYXJkY29weVByb3ZpZGVyUHJvcHM+ID0gKHtcbiAgY2hpbGRyZW4sXG4gIGhhcmRjb3B5T3ZlcnJpZGUsXG59KSA9PiB7XG4gIGNvbnN0IGxhbmd1YWdlcyA9IHVzZU1lbW8oKCkgPT4gbmF2aWdhdG9yLmxhbmd1YWdlcywgW10pO1xuICBjb25zdCBbaXNMb2FkaW5nLCBzZXRJc0xvYWRpbmddID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBjb250ZXh0ID0gdXNlQXRvbVZhbHVlKGFwcERldGFpbHNBdG9tKTtcbiAgY29uc3QgeyB0cmFja0V2ZW50IH0gPSB1c2VBbXBsaXR1ZGUoKTtcblxuICBjb25zdCB7IGZlYXR1cmVGbGFnU2VydmljZSB9ID0gdXNlRmVhdHVyZUZsYWdTZXJ2aWNlKCk7XG4gIGNvbnN0IGdldEhhcmRjb3B5RnJvbUJhY2tlbmQgPSB1c2VDYWxsYmFjayhcbiAgICBhc3luYyAocmVxdWVzdDogSGFyZGNvcHlSZXF1ZXN0KTogUHJvbWlzZTxIYXJkY29weVJlc3BvbnNlPiA9PiB7XG4gICAgICBpZiAoaGFyZGNvcHlPdmVycmlkZT8uW3JlcXVlc3Qud2lkZ2V0VHlwZV0pIHtcbiAgICAgICAgbG9nZ2VyLmxvZ0RlYnVnKCd1c2luZyBoYXJkY29weSBvdmVycmlkZScsIHJlcXVlc3Qud2lkZ2V0VHlwZSk7XG4gICAgICAgIHJldHVybiBoYXJkY29weU92ZXJyaWRlW3JlcXVlc3Qud2lkZ2V0VHlwZV0hO1xuICAgICAgfVxuICAgICAgY29uc3Qgb3ZlcnJpZGVDb25maWdWZXJzaW9uID1cbiAgICAgICAgZ2V0UXVlcnlQYXJhbSgnc3BpZmZ5X2NvbmZpZ192ZXJzaW9uJykgfHxcbiAgICAgICAgZ2V0UXVlcnlQYXJhbSgnZW52aXZlX2NvbmZpZ192ZXJzaW9uJykgfHxcbiAgICAgICAgdW5kZWZpbmVkO1xuICAgICAgY29uc3Qgd2lkZ2V0VGV4dFJlcXVlc3Q6IFdpZGdldFRleHRSZXF1ZXN0ID0ge1xuICAgICAgICByZXF1ZXN0SWQ6IHV1aWQoKSxcbiAgICAgICAgd2lkZ2V0VHlwZTogcmVxdWVzdC53aWRnZXRUeXBlLFxuICAgICAgICBjb250ZXh0LFxuICAgICAgICBmZWF0dXJlRmxhZ3M6IGZlYXR1cmVGbGFnU2VydmljZT8uZ2V0RmVhdHVyZUZsYWdzKCkgfHwge30sXG4gICAgICAgIGxhbmd1YWdlOiBsYW5ndWFnZXNbMF0gfHwgJ2VuJyxcbiAgICAgICAgb3ZlcnJpZGVDb25maWdWZXJzaW9uLFxuICAgICAgICB1cmw6IHdpbmRvdy5sb2NhdGlvbi5ocmVmLFxuICAgICAgfTtcbiAgICAgIHRyYWNrRXZlbnQoe1xuICAgICAgICBldmVudE5hbWU6IEVudml2ZU1ldHJpY3NFdmVudE5hbWUuV2lkZ2V0VGV4dFJlcXVlc3QsXG4gICAgICAgIGV2ZW50UHJvcHM6IHtcbiAgICAgICAgICB3aWRnZXRfdHlwZTogcmVxdWVzdC53aWRnZXRUeXBlLFxuICAgICAgICAgIHJlcXVlc3RfaWQ6IHdpZGdldFRleHRSZXF1ZXN0LnJlcXVlc3RJZCxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBDb21tZXJjZUFwaUNsaWVudC5nZXRIYXJkY29weSh3aWRnZXRUZXh0UmVxdWVzdCk7XG4gICAgICAgIGlmIChyZXNwb25zZSkge1xuICAgICAgICAgIGNvbnN0IGNvbnZlcnRlZFJlc3BvbnNlID0gY29udmVydFRvSGFyZGNvcHlSZXNwb25zZShyZXNwb25zZSk7XG4gICAgICAgICAgbG9nZ2VyLmxvZ0RlYnVnKCdjb252ZXJ0ZWQgcmVzcG9uc2UnLCBjb252ZXJ0ZWRSZXNwb25zZSk7XG4gICAgICAgICAgdHJhY2tFdmVudCh7XG4gICAgICAgICAgICBldmVudE5hbWU6IEVudml2ZU1ldHJpY3NFdmVudE5hbWUuV2lkZ2V0VGV4dFJlc3BvbnNlLFxuICAgICAgICAgICAgZXZlbnRQcm9wczoge1xuICAgICAgICAgICAgICB3aWRnZXRfdHlwZTogcmVxdWVzdC53aWRnZXRUeXBlLFxuICAgICAgICAgICAgICByZXNwb25zZV9pZDogcmVzcG9uc2UucmVzcG9uc2VJZCxcbiAgICAgICAgICAgICAgd2lkZ2V0X3RleHQ6IHJlc3BvbnNlLnZhbHVlcyxcbiAgICAgICAgICAgICAgcmVxdWVzdF9pZDogd2lkZ2V0VGV4dFJlcXVlc3QucmVxdWVzdElkLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXR1cm4gY29udmVydGVkUmVzcG9uc2U7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGxvZ2dlci5sb2dFcnJvcignZXJyb3IgZ2V0dGluZyBoYXJkY29weSBmcm9tIGJhY2tlbmQnLCBlcnJvcik7XG4gICAgICB9XG4gICAgICBjb25zdCBtb2NrUmVzcG9uc2UgPSBNT0NLX0hBUkRDT1BZX1JFU1BPTlNFW3JlcXVlc3Qud2lkZ2V0VHlwZV07XG4gICAgICBpZiAobW9ja1Jlc3BvbnNlKSB7XG4gICAgICAgIGxvZ2dlci5sb2dEZWJ1Zygnbm8gcmVhbCByZXNwb25zZSwgdXNpbmcgbW9jaycsIG1vY2tSZXNwb25zZSk7XG4gICAgICAgIHJldHVybiBtb2NrUmVzcG9uc2U7XG4gICAgICB9XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIGhhcmRjb3B5IHJlc3BvbnNlIGZvdW5kIGZvciB3aWRnZXQgdHlwZTogJHtyZXF1ZXN0LndpZGdldFR5cGV9YCk7XG4gICAgfSxcbiAgICBbY29udGV4dCwgZmVhdHVyZUZsYWdTZXJ2aWNlLCBoYXJkY29weU92ZXJyaWRlLCBsYW5ndWFnZXMsIHRyYWNrRXZlbnRdLFxuICApO1xuXG4gIGNvbnN0IGdldEhhcmRjb3B5ID0gdXNlQ2FsbGJhY2soXG4gICAgYXN5bmMgKHJlcXVlc3Q6IEhhcmRjb3B5UmVxdWVzdCk6IFByb21pc2U8SGFyZGNvcHlSZXNwb25zZT4gPT4ge1xuICAgICAgc2V0SXNMb2FkaW5nKHRydWUpO1xuICAgICAgbG9nZ2VyLmxvZ0RlYnVnKCdyZXRyaWV2aW5nIGhhcmRjb3B5JywgbGFuZ3VhZ2VzKTtcblxuICAgICAgbG9nZ2VyLmxvZ0RlYnVnKCdyZXF1ZXN0JywgcmVxdWVzdCk7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGdldEhhcmRjb3B5RnJvbUJhY2tlbmQocmVxdWVzdCk7XG4gICAgICBsb2dnZXIubG9nRGVidWcoJ3JldHVybmluZyBoYXJkY29weSByZXNwb25zZScsIHJlc3BvbnNlKTtcbiAgICAgIGlmICghcmVzcG9uc2UpIHtcbiAgICAgICAgc2V0SXNMb2FkaW5nKGZhbHNlKTtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyBoYXJkY29weSByZXNwb25zZSBmb3VuZCBmb3Igd2lkZ2V0IHR5cGU6ICR7cmVxdWVzdC53aWRnZXRUeXBlfWApO1xuICAgICAgfVxuICAgICAgc2V0SXNMb2FkaW5nKGZhbHNlKTtcbiAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICB9LFxuICAgIFtnZXRIYXJkY29weUZyb21CYWNrZW5kLCBsYW5ndWFnZXNdLFxuICApO1xuXG4gIGNvbnN0IHZhbHVlID0gdXNlTWVtbygoKSA9PiAoeyBnZXRIYXJkY29weSwgaXNMb2FkaW5nIH0pLCBbZ2V0SGFyZGNvcHksIGlzTG9hZGluZ10pO1xuXG4gIHJldHVybiA8SGFyZGNvcHlDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXt2YWx1ZX0+e2NoaWxkcmVufTwvSGFyZGNvcHlDb250ZXh0LlByb3ZpZGVyPjtcbn07XG5cbmV4cG9ydCBjb25zdCB1c2VIYXJkY29weSA9ICgpID0+IHtcbiAgY29uc3QgY29udGV4dCA9IHVzZUNvbnRleHQoSGFyZGNvcHlDb250ZXh0KTtcbiAgaWYgKCFjb250ZXh0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCd1c2VIYXJkY29weSBtdXN0IGJlIHVzZWQgd2l0aGluIGEgSGFyZGNvcHlQcm92aWRlcicpO1xuICB9XG4gIHJldHVybiBjb250ZXh0O1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBaUJBLE1BQU0sU0FBUyxJQUFJQSxlQUFPLGtCQUFrQjtBQW1CNUMsTUFBTSw2QkFBNkIsYUFBMkM7QUFDNUUsUUFBTztFQUNMLFlBQVksU0FBUztFQUNyQixVQUFVLFNBQVM7RUFDbkIsV0FBVyxTQUFTO0VBQ3BCLFFBQVEsT0FBTyxZQUNiLE9BQU8sUUFBUSxTQUFTLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxXQUFXLENBRXBELFlBQVksSUFBSSxFQUNoQixNQUFNLFdBQVcsSUFBSSxNQUFNLEdBQUcsUUFBUSxNQUFNLEtBQUksTUFBSyxFQUFFLE1BQU0sQ0FDOUQsQ0FBQyxDQUNIO0VBQ0Y7O0FBTUgsTUFBTUMseUJBQTBFO0VBQzdFLGFBQWEsbUJBQW1CO0VBQy9CLFlBQVlDLElBQU07RUFDbEIsVUFBVTtFQUNWLFFBQVEsRUFDTixtQkFBbUI7R0FDakI7R0FDQTtHQUNBO0dBQ0E7R0FDQTtHQUNELEVBQ0Y7RUFDRjtFQUNBLGFBQWEseUJBQXlCO0VBQ3JDLFlBQVk7RUFDWixVQUFVO0VBQ1YsUUFBUTtHQUNOLFlBQVk7R0FDWixtQkFBbUI7SUFDakI7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNEO0dBQ0Y7RUFDRjtFQUNBLGFBQWEsZ0JBQWdCO0VBQzVCLFlBQVk7RUFDWixVQUFVO0VBQ1YsUUFBUTtHQUNOLFlBQVk7R0FDWix1QkFBdUI7R0FDdkIsbUJBQW1CO0dBQ25CLG1CQUFtQjtHQUNuQiwwQkFBMEI7R0FDMUIsc0JBQXNCO0lBQ3BCO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDRDtHQUNELDBCQUEwQjtHQUMzQjtFQUNGO0VBQ0EsYUFBYSxvQkFBb0I7RUFDaEMsWUFBWTtFQUNaLFVBQVU7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
|
|
268
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFyZGNvcHlDb250ZXh0LmpzIiwibmFtZXMiOlsiTG9nZ2VyIiwiTU9DS19IQVJEQ09QWV9SRVNQT05TRTogUGFydGlhbDxSZWNvcmQ8V2lkZ2V0VHlwZVYzLCBIYXJkY29weVJlc3BvbnNlPj4iLCJ1dWlkIiwiSGFyZGNvcHlQcm92aWRlcjogUmVhY3QuRkM8SGFyZGNvcHlQcm92aWRlclByb3BzPiIsIndpZGdldFRleHRSZXF1ZXN0OiBXaWRnZXRUZXh0UmVxdWVzdCIsIkNvbW1lcmNlQXBpQ2xpZW50Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbnRleHRzL2hhcmRjb3B5Q29udGV4dC9oYXJkY29weUNvbnRleHQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlYWN0Tm9kZSwgY3JlYXRlQ29udGV4dCwgdXNlQ2FsbGJhY2ssIHVzZUNvbnRleHQsIHVzZU1lbW8sIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IExvZ2dlciBmcm9tICdzcmMvYXBwbGljYXRpb24vbG9nZ2luZy9sb2dnZXInO1xuaW1wb3J0IHsgdjQgYXMgdXVpZCB9IGZyb20gJ3V1aWQnO1xuaW1wb3J0IENvbW1lcmNlQXBpQ2xpZW50IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9jb21tZXJjZS1hcGknO1xuaW1wb3J0IHsgV2lkZ2V0U3RyaW5nLCBXaWRnZXRUZXh0IH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9hcGkvd2lkZ2V0VGV4dCc7XG5pbXBvcnQgeyBXaWRnZXRUZXh0UmVxdWVzdCB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvYXBpL3dpZGdldFRleHRSZXF1ZXN0JztcblxuaW1wb3J0IHsgdXNlQXRvbVZhbHVlIH0gZnJvbSAnam90YWknO1xuaW1wb3J0IHsgYXBwRGV0YWlsc0F0b20gfSBmcm9tICdzcmMvYXRvbXMvYXBwJztcbmltcG9ydCB7IEVudml2ZU1ldHJpY3NFdmVudE5hbWUgfSBmcm9tICdzcmMvc2VydmljZXMvYW1wbGl0dWRlU2VydmljZS9hbXBsaXR1ZGVTZXJ2aWNlJztcbmltcG9ydCB7IHRvQ2FtZWxDYXNlIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy91dGlscy9zbmFrZVRvQ2FtZWxUcmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBVc2VyRXZlbnQgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzJztcbmltcG9ydCB7IGdldFF1ZXJ5UGFyYW0gfSBmcm9tICdzcmMvYXBwbGljYXRpb24vdXRpbHMnO1xuaW1wb3J0IHsgV2lkZ2V0VHlwZVYzIH0gZnJvbSAnLi4vdHlwZXNWMyc7XG5pbXBvcnQgeyB1c2VGZWF0dXJlRmxhZ1NlcnZpY2UgfSBmcm9tICcuLi9mZWF0dXJlRmxhZ1NlcnZpY2VDb250ZXh0L2ZlYXR1cmVGbGFnU2VydmljZUNvbnRleHQnO1xuaW1wb3J0IHsgdXNlQW1wbGl0dWRlIH0gZnJvbSAnLi4vYW1wbGl0dWRlQ29udGV4dCc7XG5cbmNvbnN0IGxvZ2dlciA9IG5ldyBMb2dnZXIoJ2hhcmRjb3B5Q29udGV4dCcpO1xuXG5pbnRlcmZhY2UgSGFyZGNvcHlSZXF1ZXN0IHtcbiAgd2lkZ2V0VHlwZTogV2lkZ2V0VHlwZVYzO1xuICB1c2VyRXZlbnQ6IFVzZXJFdmVudDtcbn1cblxuZXhwb3J0IHR5cGUgSGFyZGNvcHlSZXNwb25zZSA9IHtcbiAgcmVzcG9uc2VJZDogc3RyaW5nO1xuICBsYW5ndWFnZTogc3RyaW5nO1xuICByYXdWYWx1ZXM/OiBSZWNvcmQ8c3RyaW5nLCBXaWRnZXRTdHJpbmcgfCBXaWRnZXRTdHJpbmdbXT47XG4gIHZhbHVlczogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgc3RyaW5nW10+O1xufTtcblxuaW50ZXJmYWNlIEhhcmRjb3B5Q29udGV4dFR5cGUge1xuICBnZXRIYXJkY29weTogKEhhcmRjb3B5UmVxdWVzdDogSGFyZGNvcHlSZXF1ZXN0KSA9PiBQcm9taXNlPEhhcmRjb3B5UmVzcG9uc2U+O1xuICBpc0xvYWRpbmc6IGJvb2xlYW47XG59XG5cbmNvbnN0IGNvbnZlcnRUb0hhcmRjb3B5UmVzcG9uc2UgPSAocmVzcG9uc2U6IFdpZGdldFRleHQpOiBIYXJkY29weVJlc3BvbnNlID0+IHtcbiAgcmV0dXJuIHtcbiAgICByZXNwb25zZUlkOiByZXNwb25zZS5yZXNwb25zZUlkLFxuICAgIGxhbmd1YWdlOiByZXNwb25zZS5sYW5ndWFnZSxcbiAgICByYXdWYWx1ZXM6IHJlc3BvbnNlLnZhbHVlcyxcbiAgICB2YWx1ZXM6IE9iamVjdC5mcm9tRW50cmllcyhcbiAgICAgIE9iamVjdC5lbnRyaWVzKHJlc3BvbnNlLnZhbHVlcykubWFwKChba2V5LCB2YWx1ZV0pID0+IFtcbiAgICAgICAgLy8gVHJhbnNmb3JtIHRoZSBrZXkgZnJvbSBzbmFrZV9jYXNlIHRvIGNhbWVsQ2FzZVxuICAgICAgICB0b0NhbWVsQ2FzZShrZXkpLFxuICAgICAgICB2YWx1ZS5sZW5ndGggPT09IDEgPyB2YWx1ZVswXS52YWx1ZSA6IHZhbHVlLm1hcCh2ID0+IHYudmFsdWUpLFxuICAgICAgXSksXG4gICAgKSxcbiAgfTtcbn07XG5cbi8vIFRoZXNlIGFyZSBqdXN0IHNhbXBsZSByZXNwb25zZXMgZm9yIHRoZSBzYWtlIG9mIHRlc3RpbmcuXG4vLyBBcyB3ZSBzdGFydCB0byBidWlsZCB0aGUgYWN0dWFsIHdpZGdldHMgd2Ugc2hvdWxkIGRldGVybWluZSB3aGF0IHRoZSBhY3R1YWxcbi8vIHZhbHVlcyBhbmQgdGhlaXIgbmFtZXMgc2hvdWxkIGJlLlxuY29uc3QgTU9DS19IQVJEQ09QWV9SRVNQT05TRTogUGFydGlhbDxSZWNvcmQ8V2lkZ2V0VHlwZVYzLCBIYXJkY29weVJlc3BvbnNlPj4gPSB7XG4gIFtXaWRnZXRUeXBlVjMuUHJvbXB0Q2Fyb3VzZWxWM106IHtcbiAgICByZXNwb25zZUlkOiB1dWlkKCksXG4gICAgbGFuZ3VhZ2U6ICdlbicsXG4gICAgdmFsdWVzOiB7XG4gICAgICBwcm9tcHRCdXR0b25UZXh0czogW1xuICAgICAgICAnV2hhdCBhcmUgeW91ciBiZXN0IHNlbGxlcnM/JyxcbiAgICAgICAgJ1Nob3cgbWUgc3VtbWVyIGRyZXNzZXMnLFxuICAgICAgICAnRG8geW91IGhhdmUgZnJlZSBzaGlwcGluZz8nLFxuICAgICAgICAnV2hhdCBzaXplcyBhcmUgYXZhaWxhYmxlPycsXG4gICAgICAgICdDYW4gSSByZXR1cm4gaXRlbXM/JyxcbiAgICAgIF0sXG4gICAgfSxcbiAgfSxcbiAgW1dpZGdldFR5cGVWMy5UaXRsZWRQcm9tcHRDYXJvdXNlbFYzXToge1xuICAgIHJlc3BvbnNlSWQ6ICdtb2NrLXJlc3BvbnNlLWlkJyxcbiAgICBsYW5ndWFnZTogJ2VuJyxcbiAgICB2YWx1ZXM6IHtcbiAgICAgIHRpdGxlTGFiZWw6ICdOZWVkIHNvbWUgaGVscD8nLFxuICAgICAgcHJvbXB0QnV0dG9uVGV4dHM6IFtcbiAgICAgICAgJ1doYXQgYXJlIHlvdXIgYmVzdCBzZWxsZXJzPycsXG4gICAgICAgICdTaG93IG1lIHN1bW1lciBkcmVzc2VzJyxcbiAgICAgICAgJ0RvIHlvdSBoYXZlIGZyZWUgc2hpcHBpbmc/JyxcbiAgICAgICAgJ1doYXQgc2l6ZXMgYXJlIGF2YWlsYWJsZT8nLFxuICAgICAgICAnQ2FuIEkgcmV0dXJuIGl0ZW1zPycsXG4gICAgICBdLFxuICAgIH0sXG4gIH0sXG4gIFtXaWRnZXRUeXBlVjMuU29jaWFsUHJvb2ZWM106IHtcbiAgICByZXNwb25zZUlkOiAnbW9jay1yZXNwb25zZS1pZCcsXG4gICAgbGFuZ3VhZ2U6ICdlbicsXG4gICAgdmFsdWVzOiB7XG4gICAgICB0aXRsZUxhYmVsOiAnU2hvcHBpbmcgQXNzaXN0YW50JyxcbiAgICAgIG51bWJlck9mQ3VzdG9tZXJzVGV4dDogJzEyMyBjdXN0b21lcnMnLFxuICAgICAgY3VzdG9tZXJRdWVyeVRleHQ6ICdmb3VuZCB3aGF0IHRoZXkgd2VyZSBsb29raW5nIGZvci4uLicsXG4gICAgICBwcmltYXJ5QnV0dG9uVGV4dDogJ1N0YXJ0IHNob3BwaW5nJyxcbiAgICAgIHNlY29uZGFyeUJ1dHRvblRpdGxlVGV4dDogJ1BvcHVsYXIgc2VhcmNoZXMnLFxuICAgICAgc2Vjb25kYXJ5QnV0dG9uVGV4dHM6IFtcbiAgICAgICAgJ1doeSBzaG91bGQgSSBidXkgZnJvbSB5b3U/JyxcbiAgICAgICAgJ0hvdyBkbyBJIHJldHVybiBhbiBpdGVtPycsXG4gICAgICAgICdOZXcgYXJyaXZhbHMnLFxuICAgICAgICAnU2FsZSBpdGVtcycsXG4gICAgICAgICdQb3B1bGFyIGl0ZW1zJyxcbiAgICAgIF0sXG4gICAgICB0ZXh0RmllbGRQbGFjZWhvbGRlclRleHQ6ICdBc2sgbWUgYW55dGhpbmcuLi4nLFxuICAgIH0sXG4gIH0sXG4gIFtXaWRnZXRUeXBlVjMuVHlwaW5nQW5pbWF0aW9uVjNdOiB7XG4gICAgcmVzcG9uc2VJZDogJ21vY2stcmVzcG9uc2UtaWQnLFxuICAgIGxhbmd1YWdlOiAnZW4nLFxuICAgIHZhbHVlczoge1xuICAgICAgdGl0bGVMYWJlbDogJ1Nob3BwaW5nIEFzc2lzdGFudCcsXG4gICAgICBoZWFkbGluZVRleHQ6ICdOZWVkIGhlbHAgZmluZGluZycsXG4gICAgICBhbmltYXRlZFRleHRTZXF1ZW5jZTogW1xuICAgICAgICAndGhlIHBlcmZlY3QgZ2lmdCBmb3IgeW91ciBsb3ZlZCBvbmVzPycsXG4gICAgICAgICdzb21ldGhpbmcgc3BlY2lhbCBmb3IgdGhlIGhvbGlkYXlzPycsXG4gICAgICAgICd0aGUgaWRlYWwgcHJlc2VudCBmb3Igc29tZW9uZSBzcGVjaWFsPycsXG4gICAgICBdLFxuICAgICAgaGludFRleHQ6ICdBc2sgbWUgYW55dGhpbmcnLFxuICAgICAgcHJvbXB0QnV0dG9uVGV4dHM6IFtcbiAgICAgICAgJ1doYXQgYXJlIHlvdXIgYmVzdCBzZWxsZXJzPycsXG4gICAgICAgICdTaG93IG1lIHN1bW1lciBkcmVzc2VzJyxcbiAgICAgICAgJ0RvIHlvdSBoYXZlIGZyZWUgc2hpcHBpbmc/JyxcbiAgICAgICAgJ1doYXQgc2l6ZXMgYXJlIGF2YWlsYWJsZT8nLFxuICAgICAgXSxcbiAgICAgIHRleHRGaWVsZEFyaWFMYWJlbDogJ0FzayBtZSBhbnl0aGluZycsXG4gICAgfSxcbiAgfSxcbiAgW1dpZGdldFR5cGVWMy5DaGF0UHJldmlld0NvbXBhcmlzb25WM106IHtcbiAgICByZXNwb25zZUlkOiAnbW9jay1yZXNwb25zZS1pZCcsXG4gICAgbGFuZ3VhZ2U6ICdlbicsXG4gICAgdmFsdWVzOiB7XG4gICAgICB0aXRsZUxhYmVsOiAnU2hvcHBpbmcgQXNzaXN0YW50JyxcbiAgICAgIGhlYWRsaW5lVGV4dDogJ05lZWQgaGVscCBjb21wYXJpbmc/JyxcbiAgICAgIHRleHRGaWVsZFBsYWNlaG9sZGVyVGV4dDogJ0FzayBtZSBhbnl0aGluZy4uLicsXG4gICAgfSxcbiAgfSxcbiAgW1dpZGdldFR5cGVWMy5DaGF0UHJldmlld0xvYWRpbmdWM106IHtcbiAgICByZXNwb25zZUlkOiAnbW9jay1yZXNwb25zZS1pZCcsXG4gICAgbGFuZ3VhZ2U6ICdlbicsXG4gICAgdmFsdWVzOiB7XG4gICAgICB0aXRsZUxhYmVsOiAnU2hvcHBpbmcgQXNzaXN0YW50JyxcbiAgICAgIHRleHRGaWVsZFBsYWNlaG9sZGVyVGV4dDogJ0FzayBtZSBhbnl0aGluZy4uLicsXG4gICAgfSxcbiAgfSxcbiAgW1dpZGdldFR5cGVWMy5DaGF0UHJldmlld1YzXToge1xuICAgIHJlc3BvbnNlSWQ6ICdtb2NrLXJlc3BvbnNlLWlkJyxcbiAgICBsYW5ndWFnZTogJ2VuJyxcbiAgICB2YWx1ZXM6IHtcbiAgICAgIHRpdGxlTGFiZWw6ICdTaG9wcGluZyBBc3Npc3RhbnQnLFxuICAgICAgdGV4dEZpZWxkUGxhY2Vob2xkZXJUZXh0OiAnQXNrIG1lIGFueXRoaW5nLi4uJyxcbiAgICB9LFxuICB9LFxuICBbV2lkZ2V0VHlwZVYzLlByb21wdEJ1dHRvbkNhcm91c2VsV2l0aEltYWdlVjNdOiB7XG4gICAgcmVzcG9uc2VJZDogJ21vY2stcmVzcG9uc2UtaWQnLFxuICAgIGxhbmd1YWdlOiAnZW4nLFxuICAgIHZhbHVlczoge1xuICAgICAgdGl0bGVMYWJlbDogJ05lZWQgc29tZSBoZWxwPycsXG4gICAgICBwcm9tcHRCdXR0b25zVGV4dHM6IFsnSGVscCBtZSBmaW5kIGEgcHJvZHVjdCcsIFwiV2hhdCdzIG9uIHlvdXIgbWluZD9cIiwgJ1RhbGsgdG8gYSBodW1hbiddLFxuICAgICAgdGV4dEZpZWxkUGxhY2Vob2xkZXJUZXh0OiAnQXNrIG1lIGFueXRoaW5nLi4uJyxcbiAgICB9LFxuICB9LFxuICBbV2lkZ2V0VHlwZVYzLlByb2R1Y3RDYXJkVjNdOiB7XG4gICAgcmVzcG9uc2VJZDogJ21vY2stcmVzcG9uc2UtaWQnLFxuICAgIGxhbmd1YWdlOiAnZW4nLFxuICAgIHZhbHVlczoge1xuICAgICAgaGVhZGxpbmU6ICdEaXNjb3ZlciBZb3VyIFBlcmZlY3QgU3R5bGUnLFxuICAgICAgYW5pbWF0ZWRUZXh0OiBbXG4gICAgICAgICd0aGUgcGVyZmVjdCBvdXRmaXQgZm9yIGFueSBvY2Nhc2lvbicsXG4gICAgICAgICd0cmVuZGluZyBmYXNoaW9uIHRoYXQgZml0cyB5b3VyIGxpZmVzdHlsZScsXG4gICAgICAgICdxdWFsaXR5IHBpZWNlcyB0aGF0IGxhc3QnLFxuICAgICAgXSxcbiAgICAgIHByb21wdHM6IFtcbiAgICAgICAgJ1doYXQgYXJlIHlvdXIgYmVzdCBzZWxsZXJzPycsXG4gICAgICAgICdTaG93IG1lIHN1bW1lciBkcmVzc2VzJyxcbiAgICAgICAgJ0RvIHlvdSBoYXZlIGZyZWUgc2hpcHBpbmc/JyxcbiAgICAgICAgJ1doYXQgc2l6ZXMgYXJlIGF2YWlsYWJsZT8nLFxuICAgICAgICAnQ2FuIEkgcmV0dXJuIGl0ZW1zPycsXG4gICAgICBdLFxuICAgICAgcGxhY2Vob2xkZXI6ICdBc2sgbWUgYW55dGhpbmcuLi4nLFxuICAgIH0sXG4gIH0sXG4gIFtXaWRnZXRUeXBlVjMuRmxvYXRpbmdDaGF0VjNdOiB7XG4gICAgcmVzcG9uc2VJZDogJ21vY2stcmVzcG9uc2UtaWQnLFxuICAgIGxhbmd1YWdlOiAnZW4nLFxuICAgIHZhbHVlczoge1xuICAgICAgd2VsY29tZU1lc3NhZ2VUaXRsZTogJ1dlbGNvbWUgdG8gRW52aXZlIEFJJyxcbiAgICAgIHdlbGNvbWVNZXNzYWdlVGV4dDpcbiAgICAgICAgJ1lvdXIgcGVyc29uYWwgc2hvcHBlciB0cmFpbmVkIG9uIHRoZSBjb2xsZWN0aXZlIGtub3dsZWRnZSBvZiB0aG91c2FuZHMgb2YgcmVhbCBleHBlcnRzIScsXG4gICAgICBjaGF0Rm9vdGVyVGV4dEZpZWxkUGxhY2Vob2xkZXJUZXh0OiAnQXNrIG1lIGFueXRoaW5nLi4uJyxcbiAgICAgIGRpc2NsYWltZXJUZXh0OiAnVGhpcyBpcyBhIGRpc2NsYWltZXIuLi4nLFxuICAgICAgbGVmdFRvZ2dsZUxhYmVsOiAnU2hvcCB3aXRoIEFJJyxcbiAgICAgIHJpZ2h0VG9nZ2xlTGFiZWw6ICdMaXZlIHN1cHBvcnQnLFxuICAgIH0sXG4gIH0sXG4gIFtXaWRnZXRUeXBlVjMuRnVsbFBhZ2VTYWxlc0FnZW50VjNdOiB7XG4gICAgcmVzcG9uc2VJZDogJ21vY2stcmVzcG9uc2UtaWQnLFxuICAgIGxhbmd1YWdlOiAnZW4nLFxuICAgIHZhbHVlczoge1xuICAgICAgd2VsY29tZU1lc3NhZ2VUaXRsZTogJ1dlbGNvbWUgdG8gRW52aXZlIEFJJyxcbiAgICAgIHdlbGNvbWVNZXNzYWdlVGV4dDpcbiAgICAgICAgJ1lvdXIgcGVyc29uYWwgc2hvcHBlciB0cmFpbmVkIG9uIHRoZSBjb2xsZWN0aXZlIGtub3dsZWRnZSBvZiB0aG91c2FuZHMgb2YgcmVhbCBleHBlcnRzIScsXG4gICAgICBjaGF0Rm9vdGVyVGV4dEZpZWxkUGxhY2Vob2xkZXJUZXh0OiAnQXNrIG1lIGFueXRoaW5nLi4uJyxcbiAgICAgIGRpc2NsYWltZXJUZXh0OiAnVGhpcyBpcyBhIGRpc2NsYWltZXIuLi4nLFxuICAgIH0sXG4gIH0sXG59O1xuXG5jb25zdCBIYXJkY29weUNvbnRleHQgPSBjcmVhdGVDb250ZXh0PEhhcmRjb3B5Q29udGV4dFR5cGUgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbmludGVyZmFjZSBIYXJkY29weVByb3ZpZGVyUHJvcHMge1xuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xuICBoYXJkY29weU92ZXJyaWRlPzogUGFydGlhbDxSZWNvcmQ8V2lkZ2V0VHlwZVYzLCBIYXJkY29weVJlc3BvbnNlPj47XG59XG5cbmV4cG9ydCBjb25zdCBIYXJkY29weVByb3ZpZGVyOiBSZWFjdC5GQzxIYXJkY29weVByb3ZpZGVyUHJvcHM+ID0gKHtcbiAgY2hpbGRyZW4sXG4gIGhhcmRjb3B5T3ZlcnJpZGUsXG59KSA9PiB7XG4gIGNvbnN0IGxhbmd1YWdlcyA9IHVzZU1lbW8oKCkgPT4gbmF2aWdhdG9yLmxhbmd1YWdlcywgW10pO1xuICBjb25zdCBbaXNMb2FkaW5nLCBzZXRJc0xvYWRpbmddID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBjb250ZXh0ID0gdXNlQXRvbVZhbHVlKGFwcERldGFpbHNBdG9tKTtcbiAgY29uc3QgeyB0cmFja0V2ZW50IH0gPSB1c2VBbXBsaXR1ZGUoKTtcblxuICBjb25zdCB7IGZlYXR1cmVGbGFnU2VydmljZSB9ID0gdXNlRmVhdHVyZUZsYWdTZXJ2aWNlKCk7XG4gIGNvbnN0IGdldEhhcmRjb3B5RnJvbUJhY2tlbmQgPSB1c2VDYWxsYmFjayhcbiAgICBhc3luYyAocmVxdWVzdDogSGFyZGNvcHlSZXF1ZXN0KTogUHJvbWlzZTxIYXJkY29weVJlc3BvbnNlPiA9PiB7XG4gICAgICBjb25zdCBmYWxsYmFja1dpZGdldFR5cGUgPVxuICAgICAgICByZXF1ZXN0LndpZGdldFR5cGUgPT09IFdpZGdldFR5cGVWMy5Qcm9kdWN0Q2FyZFYzXG4gICAgICAgICAgPyBXaWRnZXRUeXBlVjMuSW1hZ2VQcm9tcHRDYXJkVjNcbiAgICAgICAgICA6IHJlcXVlc3Qud2lkZ2V0VHlwZTtcblxuICAgICAgY29uc3Qgb3ZlcnJpZGVFbnRyeSA9XG4gICAgICAgIGhhcmRjb3B5T3ZlcnJpZGU/LltyZXF1ZXN0LndpZGdldFR5cGVdID8/IGhhcmRjb3B5T3ZlcnJpZGU/LltmYWxsYmFja1dpZGdldFR5cGVdO1xuICAgICAgaWYgKG92ZXJyaWRlRW50cnkpIHtcbiAgICAgICAgbG9nZ2VyLmxvZ0RlYnVnKCd1c2luZyBoYXJkY29weSBvdmVycmlkZScsIHJlcXVlc3Qud2lkZ2V0VHlwZSk7XG4gICAgICAgIHJldHVybiBvdmVycmlkZUVudHJ5O1xuICAgICAgfVxuXG4gICAgICBjb25zdCBvdmVycmlkZUNvbmZpZ1ZlcnNpb24gPVxuICAgICAgICBnZXRRdWVyeVBhcmFtKCdzcGlmZnlfY29uZmlnX3ZlcnNpb24nKSB8fFxuICAgICAgICBnZXRRdWVyeVBhcmFtKCdlbnZpdmVfY29uZmlnX3ZlcnNpb24nKSB8fFxuICAgICAgICB1bmRlZmluZWQ7XG4gICAgICBjb25zdCB3aWRnZXRUZXh0UmVxdWVzdDogV2lkZ2V0VGV4dFJlcXVlc3QgPSB7XG4gICAgICAgIHJlcXVlc3RJZDogdXVpZCgpLFxuICAgICAgICB3aWRnZXRUeXBlOiByZXF1ZXN0LndpZGdldFR5cGUsXG4gICAgICAgIGNvbnRleHQsXG4gICAgICAgIGZlYXR1cmVGbGFnczogZmVhdHVyZUZsYWdTZXJ2aWNlPy5nZXRGZWF0dXJlRmxhZ3MoKSB8fCB7fSxcbiAgICAgICAgbGFuZ3VhZ2U6IGxhbmd1YWdlc1swXSB8fCAnZW4nLFxuICAgICAgICBvdmVycmlkZUNvbmZpZ1ZlcnNpb24sXG4gICAgICAgIHVybDogd2luZG93LmxvY2F0aW9uLmhyZWYsXG4gICAgICB9O1xuICAgICAgdHJhY2tFdmVudCh7XG4gICAgICAgIGV2ZW50TmFtZTogRW52aXZlTWV0cmljc0V2ZW50TmFtZS5XaWRnZXRUZXh0UmVxdWVzdCxcbiAgICAgICAgZXZlbnRQcm9wczoge1xuICAgICAgICAgIHdpZGdldF90eXBlOiByZXF1ZXN0LndpZGdldFR5cGUsXG4gICAgICAgICAgcmVxdWVzdF9pZDogd2lkZ2V0VGV4dFJlcXVlc3QucmVxdWVzdElkLFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IENvbW1lcmNlQXBpQ2xpZW50LmdldEhhcmRjb3B5KHdpZGdldFRleHRSZXF1ZXN0KTtcbiAgICAgICAgaWYgKHJlc3BvbnNlKSB7XG4gICAgICAgICAgY29uc3QgY29udmVydGVkUmVzcG9uc2UgPSBjb252ZXJ0VG9IYXJkY29weVJlc3BvbnNlKHJlc3BvbnNlKTtcbiAgICAgICAgICBsb2dnZXIubG9nRGVidWcoJ2NvbnZlcnRlZCByZXNwb25zZScsIGNvbnZlcnRlZFJlc3BvbnNlKTtcbiAgICAgICAgICB0cmFja0V2ZW50KHtcbiAgICAgICAgICAgIGV2ZW50TmFtZTogRW52aXZlTWV0cmljc0V2ZW50TmFtZS5XaWRnZXRUZXh0UmVzcG9uc2UsXG4gICAgICAgICAgICBldmVudFByb3BzOiB7XG4gICAgICAgICAgICAgIHdpZGdldF90eXBlOiByZXF1ZXN0LndpZGdldFR5cGUsXG4gICAgICAgICAgICAgIHJlc3BvbnNlX2lkOiByZXNwb25zZS5yZXNwb25zZUlkLFxuICAgICAgICAgICAgICB3aWRnZXRfdGV4dDogcmVzcG9uc2UudmFsdWVzLFxuICAgICAgICAgICAgICByZXF1ZXN0X2lkOiB3aWRnZXRUZXh0UmVxdWVzdC5yZXF1ZXN0SWQsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHJldHVybiBjb252ZXJ0ZWRSZXNwb25zZTtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgbG9nZ2VyLmxvZ0Vycm9yKCdlcnJvciBnZXR0aW5nIGhhcmRjb3B5IGZyb20gYmFja2VuZCcsIGVycm9yKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IG1vY2tSZXNwb25zZSA9IE1PQ0tfSEFSRENPUFlfUkVTUE9OU0VbcmVxdWVzdC53aWRnZXRUeXBlXTtcbiAgICAgIGlmIChtb2NrUmVzcG9uc2UpIHtcbiAgICAgICAgbG9nZ2VyLmxvZ0RlYnVnKCdubyByZWFsIHJlc3BvbnNlLCB1c2luZyBtb2NrJywgbW9ja1Jlc3BvbnNlKTtcbiAgICAgICAgcmV0dXJuIG1vY2tSZXNwb25zZTtcbiAgICAgIH1cbiAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gaGFyZGNvcHkgcmVzcG9uc2UgZm91bmQgZm9yIHdpZGdldCB0eXBlOiAke3JlcXVlc3Qud2lkZ2V0VHlwZX1gKTtcbiAgICB9LFxuICAgIFtjb250ZXh0LCBmZWF0dXJlRmxhZ1NlcnZpY2UsIGhhcmRjb3B5T3ZlcnJpZGUsIGxhbmd1YWdlcywgdHJhY2tFdmVudF0sXG4gICk7XG5cbiAgY29uc3QgZ2V0SGFyZGNvcHkgPSB1c2VDYWxsYmFjayhcbiAgICBhc3luYyAocmVxdWVzdDogSGFyZGNvcHlSZXF1ZXN0KTogUHJvbWlzZTxIYXJkY29weVJlc3BvbnNlPiA9PiB7XG4gICAgICBzZXRJc0xvYWRpbmcodHJ1ZSk7XG4gICAgICBsb2dnZXIubG9nRGVidWcoJ3JldHJpZXZpbmcgaGFyZGNvcHknLCBsYW5ndWFnZXMpO1xuXG4gICAgICBsb2dnZXIubG9nRGVidWcoJ3JlcXVlc3QnLCByZXF1ZXN0KTtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZ2V0SGFyZGNvcHlGcm9tQmFja2VuZChyZXF1ZXN0KTtcbiAgICAgIGxvZ2dlci5sb2dEZWJ1ZygncmV0dXJuaW5nIGhhcmRjb3B5IHJlc3BvbnNlJywgcmVzcG9uc2UpO1xuICAgICAgaWYgKCFyZXNwb25zZSkge1xuICAgICAgICBzZXRJc0xvYWRpbmcoZmFsc2UpO1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIGhhcmRjb3B5IHJlc3BvbnNlIGZvdW5kIGZvciB3aWRnZXQgdHlwZTogJHtyZXF1ZXN0LndpZGdldFR5cGV9YCk7XG4gICAgICB9XG4gICAgICBzZXRJc0xvYWRpbmcoZmFsc2UpO1xuICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgIH0sXG4gICAgW2dldEhhcmRjb3B5RnJvbUJhY2tlbmQsIGxhbmd1YWdlc10sXG4gICk7XG5cbiAgY29uc3QgdmFsdWUgPSB1c2VNZW1vKCgpID0+ICh7IGdldEhhcmRjb3B5LCBpc0xvYWRpbmcgfSksIFtnZXRIYXJkY29weSwgaXNMb2FkaW5nXSk7XG5cbiAgcmV0dXJuIDxIYXJkY29weUNvbnRleHQuUHJvdmlkZXIgdmFsdWU9e3ZhbHVlfT57Y2hpbGRyZW59PC9IYXJkY29weUNvbnRleHQuUHJvdmlkZXI+O1xufTtcblxuZXhwb3J0IGNvbnN0IHVzZUhhcmRjb3B5ID0gKCkgPT4ge1xuICBjb25zdCBjb250ZXh0ID0gdXNlQ29udGV4dChIYXJkY29weUNvbnRleHQpO1xuICBpZiAoIWNvbnRleHQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3VzZUhhcmRjb3B5IG11c3QgYmUgdXNlZCB3aXRoaW4gYSBIYXJkY29weVByb3ZpZGVyJyk7XG4gIH1cbiAgcmV0dXJuIGNvbnRleHQ7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFpQkEsTUFBTSxTQUFTLElBQUlBLGVBQU8sa0JBQWtCO0FBbUI1QyxNQUFNLDZCQUE2QixhQUEyQztBQUM1RSxRQUFPO0VBQ0wsWUFBWSxTQUFTO0VBQ3JCLFVBQVUsU0FBUztFQUNuQixXQUFXLFNBQVM7RUFDcEIsUUFBUSxPQUFPLFlBQ2IsT0FBTyxRQUFRLFNBQVMsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLFdBQVcsQ0FFcEQsWUFBWSxJQUFJLEVBQ2hCLE1BQU0sV0FBVyxJQUFJLE1BQU0sR0FBRyxRQUFRLE1BQU0sS0FBSSxNQUFLLEVBQUUsTUFBTSxDQUM5RCxDQUFDLENBQ0g7RUFDRjs7QUFNSCxNQUFNQyx5QkFBMEU7RUFDN0UsYUFBYSxtQkFBbUI7RUFDL0IsWUFBWUMsSUFBTTtFQUNsQixVQUFVO0VBQ1YsUUFBUSxFQUNOLG1CQUFtQjtHQUNqQjtHQUNBO0dBQ0E7R0FDQTtHQUNBO0dBQ0QsRUFDRjtFQUNGO0VBQ0EsYUFBYSx5QkFBeUI7RUFDckMsWUFBWTtFQUNaLFVBQVU7RUFDVixRQUFRO0dBQ04sWUFBWTtHQUNaLG1CQUFtQjtJQUNqQjtJQUNB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
|
|
@@ -30,6 +30,7 @@ const useSalesAgentChatAPI = (widget) => {
|
|
|
30
30
|
const context = (0, jotai.useAtomValue)(require_variant.analyticsContextAtom);
|
|
31
31
|
const hasParsedVariantInfo = (0, jotai.useAtomValue)(require_variant.hasParsedVariantInfoAtom);
|
|
32
32
|
const queueUserEvent = (0, jotai.useSetAtom)(require_messageQueue.queueUserEventAtom);
|
|
33
|
+
const setSuggestions = (0, jotai.useSetAtom)(require_atoms_chat_chatState.suggestionsAtom);
|
|
33
34
|
const setReplyEventCategory = (0, jotai.useSetAtom)(require_atoms_chat_chatState.replyEventCategoryAtom);
|
|
34
35
|
const setFormSubmit = (0, jotai.useSetAtom)(require_atoms_chat_chatState.formSubmitAtom);
|
|
35
36
|
const { trackEvent } = require_amplitudeContext.useAmplitude();
|
|
@@ -120,7 +121,7 @@ const useSalesAgentChatAPI = (widget) => {
|
|
|
120
121
|
"chat.user_typed": false
|
|
121
122
|
}
|
|
122
123
|
});
|
|
123
|
-
|
|
124
|
+
const event = {
|
|
124
125
|
eventId,
|
|
125
126
|
category: __spiffy_ai_commerce_api_client.UserEventCategory.SuggestionClicked,
|
|
126
127
|
createdAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
@@ -128,9 +129,12 @@ const useSalesAgentChatAPI = (widget) => {
|
|
|
128
129
|
suggestionId: suggestion.id,
|
|
129
130
|
content: suggestion.content
|
|
130
131
|
}
|
|
131
|
-
}
|
|
132
|
+
};
|
|
133
|
+
setSuggestions([]);
|
|
134
|
+
queueUserEvent(event);
|
|
132
135
|
}, [
|
|
133
136
|
queueUserEvent,
|
|
137
|
+
setSuggestions,
|
|
134
138
|
trackEvent,
|
|
135
139
|
context
|
|
136
140
|
]),
|
|
@@ -171,7 +175,7 @@ const useSalesAgentChatAPI = (widget) => {
|
|
|
171
175
|
"chat.user_typed": userTyped
|
|
172
176
|
}
|
|
173
177
|
});
|
|
174
|
-
|
|
178
|
+
const event = {
|
|
175
179
|
eventId,
|
|
176
180
|
category: __spiffy_ai_commerce_api_client.UserEventCategory.QueryTyped,
|
|
177
181
|
createdAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
@@ -179,9 +183,12 @@ const useSalesAgentChatAPI = (widget) => {
|
|
|
179
183
|
query,
|
|
180
184
|
userTyped
|
|
181
185
|
}
|
|
182
|
-
}
|
|
186
|
+
};
|
|
187
|
+
setSuggestions([]);
|
|
188
|
+
queueUserEvent(event);
|
|
183
189
|
}, [
|
|
184
190
|
queueUserEvent,
|
|
191
|
+
setSuggestions,
|
|
185
192
|
trackEvent,
|
|
186
193
|
context
|
|
187
194
|
]),
|
|
@@ -217,4 +224,4 @@ const useSalesAgentChatAPI = (widget) => {
|
|
|
217
224
|
|
|
218
225
|
//#endregion
|
|
219
226
|
exports.useSalesAgentChatAPI = useSalesAgentChatAPI;
|
|
220
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdEFQSS5janMiLCJuYW1lcyI6WyJVc2VyRXZlbnRDYXRlZ29yeSIsIkxvZ2dlciIsImFuYWx5dGljc0NvbnRleHRBdG9tIiwiaGFzUGFyc2VkVmFyaWFudEluZm9BdG9tIiwicXVldWVVc2VyRXZlbnRBdG9tIiwicmVwbHlFdmVudENhdGVnb3J5QXRvbSIsImZvcm1TdWJtaXRBdG9tIiwidXNlQW1wbGl0dWRlIiwidXNlV2lkZ2V0SW50ZXJhY3Rpb24iLCJXaWRnZXRJbnRlcmFjdGlvbkNvbXBvbmVudCIsIkVudml2ZU1ldHJpY3NFdmVudE5hbWUiLCJXaWRnZXRJbnRlcmFjdGlvblR5cGUiLCJTcGlmZnlNZXRyaWNzRXZlbnROYW1lIiwiTWVzc2FnZVJvbGUiLCJNZXNzYWdlVHlwZSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb250ZXh0cy9zYWxlc0FnZW50Q29udGV4dC9jaGF0QVBJLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFRoaXMgY29tcG9uZW50IHdpbGwgaW50ZXJhY3Qgd2l0aCB0aGUgYmFja2VuZCBBUEkgdG8gZ2V0IHRoZSByZXNwb25zZXMgZnJvbSB0aGUgc2FsZXMgYWdlbnQuXG5pbXBvcnQgeyBQYWdlVmlzaXRDYXRlZ29yeSwgVXNlckV2ZW50Q2F0ZWdvcnkgfSBmcm9tICdAc3BpZmZ5LWFpL2NvbW1lcmNlLWFwaS1jbGllbnQnO1xuaW1wb3J0IHsgdXNlQXRvbVZhbHVlLCB1c2VTZXRBdG9tIH0gZnJvbSAnam90YWknO1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2sgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgTG9nZ2VyIGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9sb2dnaW5nL2xvZ2dlcic7XG5pbXBvcnQge1xuICBDaGF0RWxlbWVudERpc3BsYXlMb2NhdGlvblYzLFxuICBGb3JtU3VibWl0dGVkQXR0cmlidXRlcyxcbiAgTWVzc2FnZVJvbGUsXG4gIE1lc3NhZ2VUeXBlLFxuICBTdWdnZXN0aW9uLFxuICBVc2VyRXZlbnQsXG59IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMnO1xuaW1wb3J0IHsgaGFzUGFyc2VkVmFyaWFudEluZm9BdG9tIH0gZnJvbSAnc3JjL2F0b21zL2FwcCc7XG5pbXBvcnQgeyBhbmFseXRpY3NDb250ZXh0QXRvbSB9IGZyb20gJ3NyYy9hdG9tcy9hcHAvdmFyaWFudCc7XG5pbXBvcnQgeyBmb3JtU3VibWl0QXRvbSwgcmVwbHlFdmVudENhdGVnb3J5QXRvbSB9IGZyb20gJ3NyYy9hdG9tcy9jaGF0JztcbmltcG9ydCB7IHF1ZXVlVXNlckV2ZW50QXRvbSB9IGZyb20gJ3NyYy9hdG9tcy9jaGF0L21lc3NhZ2VRdWV1ZSc7XG5pbXBvcnQgeyB1c2VXaWRnZXRJbnRlcmFjdGlvbiB9IGZyb20gJ3NyYy9ob29rcy9XaWRnZXRJbnRlcmFjdGlvbic7XG5pbXBvcnQge1xuICBXaWRnZXRJbnRlcmFjdGlvbkNvbXBvbmVudCxcbiAgV2lkZ2V0SW50ZXJhY3Rpb25UeXBlLFxufSBmcm9tICdzcmMvaG9va3MvV2lkZ2V0SW50ZXJhY3Rpb24vdHlwZXMnO1xuaW1wb3J0IHsgRW52aXZlTWV0cmljc0V2ZW50TmFtZSB9IGZyb20gJ3NyYy9zZXJ2aWNlcy9hbXBsaXR1ZGVTZXJ2aWNlL2FtcGxpdHVkZVNlcnZpY2UnO1xuaW1wb3J0IHsgdjQgYXMgdXVpZCB9IGZyb20gJ3V1aWQnO1xuaW1wb3J0IHsgU3BpZmZ5TWV0cmljc0V2ZW50TmFtZSwgdXNlQW1wbGl0dWRlIH0gZnJvbSAnLi4vYW1wbGl0dWRlQ29udGV4dCc7XG5cbmNvbnN0IFRSQUNLRURfVVNFUl9FVkVOVFMgPSBbXG4gIFVzZXJFdmVudENhdGVnb3J5LlBhZ2VWaXNpdCxcbiAgVXNlckV2ZW50Q2F0ZWdvcnkuUGRwVmlzaXQsXG4gIFVzZXJFdmVudENhdGVnb3J5LlBscFZpc2l0LFxuXTtcblxuY29uc3QgbG9nZ2VyID0gbmV3IExvZ2dlcignY2hhdEFQSScpO1xuZXhwb3J0IGludGVyZmFjZSBTYWxlc0FnZW50Q2hhdEFQSSB7XG4gIGxvZ1BhZ2VWaXNpdDogKHsgcGFnZVZpc2l0Q2F0ZWdvcnkgfTogeyBwYWdlVmlzaXRDYXRlZ29yeTogUGFnZVZpc2l0Q2F0ZWdvcnkgfSkgPT4gdm9pZDtcbiAgbG9nVXNlckV2ZW50OiAoZXZlbnQ6IFVzZXJFdmVudCkgPT4gdm9pZDtcbiAgb25TdWdnZXN0aW9uQ2xpY2tlZDogKFxuICAgIHN1Z2dlc3Rpb246IFN1Z2dlc3Rpb24sXG4gICAgZGlzcGxheUxvY2F0aW9uOiBDaGF0RWxlbWVudERpc3BsYXlMb2NhdGlvblYzLFxuICApID0+IHZvaWQ7XG4gIG9uVHlwZWRNZXNzYWdlU3VibWl0dGVkOiAoe1xuICAgIHF1ZXJ5LFxuICAgIHVzZXJUeXBlZCxcbiAgICBkaXNwbGF5TG9jYXRpb24sXG4gIH06IHtcbiAgICBxdWVyeTogc3RyaW5nO1xuICAgIHVzZXJUeXBlZDogYm9vbGVhbjtcbiAgICBkaXNwbGF5TG9jYXRpb246IENoYXRFbGVtZW50RGlzcGxheUxvY2F0aW9uVjM7XG4gIH0pID0+IHZvaWQ7XG4gIG9uRm9ybVJlc3BvbnNlU3VibWl0dGVkOiAoZm9ybTogRm9ybVN1Ym1pdHRlZEF0dHJpYnV0ZXMpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBjb25zdCB1c2VTYWxlc0FnZW50Q2hhdEFQSSA9ICh3aWRnZXQ/OiBXaWRnZXRJbnRlcmFjdGlvbkNvbXBvbmVudCkgPT4ge1xuICAvLyBUT0RPOiBFYWNoIG9mIHRoZXNlIGZ1bmN0aW9ucyB3aWxsIHRyaWdnZXIgYm90aCB0aGUgbmVjZXNzYXJ5IGFtcGxpdHVkZSBldmVudHMgYW5kIGluaXRpYXRlIHRoZVxuICAvLyBuZWNlc3NhcnkgYWN0aW9ucyB0byB0cmlnZ2VyIHRoZSBiYWNrZW5kIEFQSVxuICBjb25zdCBjb250ZXh0ID0gdXNlQXRvbVZhbHVlKGFuYWx5dGljc0NvbnRleHRBdG9tKTtcbiAgY29uc3QgaGFzUGFyc2VkVmFyaWFudEluZm8gPSB1c2VBdG9tVmFsdWUoaGFzUGFyc2VkVmFyaWFudEluZm9BdG9tKTtcbiAgY29uc3QgcXVldWVVc2VyRXZlbnQgPSB1c2VTZXRBdG9tKHF1ZXVlVXNlckV2ZW50QXRvbSk7XG4gIGNvbnN0IHNldFJlcGx5RXZlbnRDYXRlZ29yeSA9IHVzZVNldEF0b20ocmVwbHlFdmVudENhdGVnb3J5QXRvbSk7XG4gIGNvbnN0IHNldEZvcm1TdWJtaXQgPSB1c2VTZXRBdG9tKGZvcm1TdWJtaXRBdG9tKTtcbiAgY29uc3QgeyB0cmFja0V2ZW50IH0gPSB1c2VBbXBsaXR1ZGUoKTtcbiAgY29uc3QgeyB0cmFja1dpZGdldEludGVyYWN0aW9uIH0gPSB1c2VXaWRnZXRJbnRlcmFjdGlvbigpO1xuICBjb25zdCBjb250ZXh0V2lkZ2V0ID0gd2lkZ2V0IHx8IFdpZGdldEludGVyYWN0aW9uQ29tcG9uZW50LkZMT0FUSU5HX0NIQVQ7XG5cbiAgY29uc3QgbG9nUGFnZVZpc2l0ID0gdXNlQ2FsbGJhY2soXG4gICAgKHsgcGFnZVZpc2l0Q2F0ZWdvcnkgfTogeyBwYWdlVmlzaXRDYXRlZ29yeTogUGFnZVZpc2l0Q2F0ZWdvcnkgfSkgPT4ge1xuICAgICAgY29uc3QgZXZlbnRJZCA9IHV1aWQoKTtcbiAgICAgIHRyYWNrRXZlbnQoe1xuICAgICAgICBldmVudE5hbWU6IEVudml2ZU1ldHJpY3NFdmVudE5hbWUuQ2hhdFJlcXVlc3QsXG4gICAgICAgIGV2ZW50UHJvcHM6IHtcbiAgICAgICAgICAuLi5jb250ZXh0LFxuICAgICAgICAgICdjaGF0LnJlcXVlc3RfaWQnOiBldmVudElkLFxuICAgICAgICAgICdjaGF0LnJlcXVlc3RfdHlwZSc6ICdwYWdlX3Zpc2l0JyxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgICAgY29uc3QgZXZlbnQ6IFVzZXJFdmVudCA9IHtcbiAgICAgICAgZXZlbnRJZCxcbiAgICAgICAgY2F0ZWdvcnk6IFVzZXJFdmVudENhdGVnb3J5LlBhZ2VWaXNpdCxcbiAgICAgICAgY3JlYXRlZEF0OiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gICAgICAgIGF0dHJpYnV0ZXM6IHtcbiAgICAgICAgICB1cmw6IHdpbmRvdy5sb2NhdGlvbi5ocmVmLFxuICAgICAgICAgIHBhZ2VWaXNpdENhdGVnb3J5LFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICAgIHF1ZXVlVXNlckV2ZW50KGV2ZW50KTtcbiAgICB9LFxuICAgIFtxdWV1ZVVzZXJFdmVudCwgY29udGV4dCwgdHJhY2tFdmVudF0sXG4gICk7XG5cbiAgY29uc3QgbG9nVXNlckV2ZW50ID0gdXNlQ2FsbGJhY2soXG4gICAgKGV2ZW50OiBVc2VyRXZlbnQpID0+IHtcbiAgICAgIGlmICghaGFzUGFyc2VkVmFyaWFudEluZm8pIHtcbiAgICAgICAgbG9nZ2VyLmxvZ1dhcm4oJ2hhc1BhcnNlZFZhcmlhbnRJbmZvIGlzIGZhbHNlLCBub3QgbG9nZ2luZyB1c2VyIGV2ZW50JywgdW5kZWZpbmVkLCB7XG4gICAgICAgICAgZXZlbnQsXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBpZiAoVFJBQ0tFRF9VU0VSX0VWRU5UUy5pbmNsdWRlcyhldmVudC5jYXRlZ29yeSkpIHtcbiAgICAgICAgdHJhY2tFdmVudCh7XG4gICAgICAgICAgZXZlbnROYW1lOiBFbnZpdmVNZXRyaWNzRXZlbnROYW1lLkNoYXRSZXF1ZXN0LFxuICAgICAgICAgIGV2ZW50UHJvcHM6IHtcbiAgICAgICAgICAgIC4uLmNvbnRleHQsXG4gICAgICAgICAgICAnY2hhdC5yZXF1ZXN0X2lkJzogZXZlbnQuZXZlbnRJZCxcbiAgICAgICAgICAgICdjaGF0LnJlcXVlc3RfdHlwZSc6ICdwYWdlX3Zpc2l0JyxcbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHF1ZXVlVXNlckV2ZW50KGV2ZW50KTtcbiAgICB9LFxuICAgIFtjb250ZXh0LCBoYXNQYXJzZWRWYXJpYW50SW5mbywgcXVldWVVc2VyRXZlbnQsIHRyYWNrRXZlbnRdLFxuICApO1xuICBjb25zdCBvblN1Z2dlc3Rpb25DbGlja2VkID0gdXNlQ2FsbGJhY2soXG4gICAgKHN1Z2dlc3Rpb246IFN1Z2dlc3Rpb24sIGRpc3BsYXlMb2NhdGlvbjogQ2hhdEVsZW1lbnREaXNwbGF5TG9jYXRpb25WMykgPT4ge1xuICAgICAgdHJhY2tXaWRnZXRJbnRlcmFjdGlvbih7XG4gICAgICAgIGV2ZW50TmFtZTogRW52aXZlTWV0cmljc0V2ZW50TmFtZS5XaWRnZXRJbnRlcmFjdGlvbixcbiAgICAgICAgdHJpZ2dlcjoge1xuICAgICAgICAgIHdpZGdldDogY29udGV4dFdpZGdldCxcbiAgICAgICAgICB3aWRnZXRfaW50ZXJhY3Rpb246IFdpZGdldEludGVyYWN0aW9uVHlwZS5TVUdHRVNUSU9OX0NMSUNLRUQsXG4gICAgICAgICAgd2lkZ2V0X2ludGVyYWN0aW9uX2RhdGE6IHtcbiAgICAgICAgICAgIHN1Z2dlc3Rpb25fY2xpY2tlZDoge1xuICAgICAgICAgICAgICBzdWdnZXN0aW9uX2lkOiBzdWdnZXN0aW9uLmlkLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSk7XG5cbiAgICAgIHRyYWNrRXZlbnQoe1xuICAgICAgICBldmVudE5hbWU6IFNwaWZmeU1ldHJpY3NFdmVudE5hbWUuQ2hhdFN1Z2dlc3Rpb25DbGlja2VkLFxuICAgICAgICBldmVudFByb3BzOiB7XG4gICAgICAgICAgbWVzc2FnZV9pZDogc3VnZ2VzdGlvbi5pZCxcbiAgICAgICAgICBtZXNzYWdlX3JvbGU6IE1lc3NhZ2VSb2xlLlVzZXIsXG4gICAgICAgICAgbWVzc2FnZV90eXBlOiBNZXNzYWdlVHlwZS5TdWdnZXN0aW9uQ2xpY2tlZCxcbiAgICAgICAgICBtZXNzYWdlX21ldGFkYXRhOiB7XG4gICAgICAgICAgICBjb250ZW50OiBzdWdnZXN0aW9uLmNvbnRlbnQsXG4gICAgICAgICAgICBjcmVhdGVkX2F0OiBzdWdnZXN0aW9uLmNyZWF0ZWRBdCxcbiAgICAgICAgICAgIGNhdGVnb3J5OiBzdWdnZXN0aW9uLmNhdGVnb3J5LFxuICAgICAgICAgICAgaXNfYW5zd2VyOiBzdWdnZXN0aW9uLmlzQW5zd2VyLFxuICAgICAgICAgICAgZGlzcGxheV9sb2NhdGlvbjogZGlzcGxheUxvY2F0aW9uLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IGV2ZW50SWQgPSB1dWlkKCk7XG4gICAgICB0cmFja0V2ZW50KHtcbiAgICAgICAgZXZlbnROYW1lOiBFbnZpdmVNZXRyaWNzRXZlbnROYW1lLkNoYXRSZXF1ZXN0LFxuICAgICAgICBldmVudFByb3BzOiB7XG4gICAgICAgICAgLi4uY29udGV4dCxcbiAgICAgICAgICAndHJpZ2dlci53aWRnZXQnOiBkaXNwbGF5TG9jYXRpb24sIC8vIFRoaXMgaXMgZmFpcmx5IGZpbmVncmFpbmVkLCBidXQgdGhhdCBtYXkgYmUgb2tcbiAgICAgICAgICAnY2hhdC5yZXF1ZXN0X2lkJzogZXZlbnRJZCxcbiAgICAgICAgICAnY2hhdC5yZXF1ZXN0X3R5cGUnOiAnc3VnZ2VzdGlvbicsXG4gICAgICAgICAgJ2NoYXQucmVxdWVzdF90ZXh0Jzogc3VnZ2VzdGlvbi5jb250ZW50LFxuICAgICAgICAgICdjaGF0LnN1Z2dlc3Rpb25faWQnOiBzdWdnZXN0aW9uLmlkLFxuICAgICAgICAgICdjaGF0LnN1Z2dlc3Rpb25fY2F0ZWdvcnknOiBzdWdnZXN0aW9uLmNhdGVnb3J5LFxuICAgICAgICAgICdjaGF0LnN1Z2dlc3Rpb25fY3JlYXRlZF9hdCc6IHN1Z2dlc3Rpb24uY3JlYXRlZEF0LFxuICAgICAgICAgICdjaGF0LnN1Z2dlc3Rpb25faXNfYW5zd2VyJzogc3VnZ2VzdGlvbi5pc0Fuc3dlcixcbiAgICAgICAgICAnY2hhdC51c2VyX3R5cGVkJzogZmFsc2UsXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IGV2ZW50OiBVc2VyRXZlbnQgPSB7XG4gICAgICAgIGV2ZW50SWQsXG4gICAgICAgIGNhdGVnb3J5OiBVc2VyRXZlbnRDYXRlZ29yeS5TdWdnZXN0aW9uQ2xpY2tlZCxcbiAgICAgICAgY3JlYXRlZEF0OiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gICAgICAgIGF0dHJpYnV0ZXM6IHtcbiAgICAgICAgICBzdWdnZXN0aW9uSWQ6IHN1Z2dlc3Rpb24uaWQsXG4gICAgICAgICAgY29udGVudDogc3VnZ2VzdGlvbi5jb250ZW50LFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICAgIHF1ZXVlVXNlckV2ZW50KGV2ZW50KTtcbiAgICB9LFxuICAgIFtxdWV1ZVVzZXJFdmVudCwgdHJhY2tFdmVudCwgY29udGV4dF0sXG4gICk7XG4gIGNvbnN0IG9uVHlwZWRNZXNzYWdlU3VibWl0dGVkID0gdXNlQ2FsbGJhY2soXG4gICAgKHtcbiAgICAgIHF1ZXJ5LFxuICAgICAgdXNlclR5cGVkLFxuICAgICAgZGlzcGxheUxvY2F0aW9uLFxuICAgIH06IHtcbiAgICAgIHF1ZXJ5OiBzdHJpbmc7XG4gICAgICB1c2VyVHlwZWQ6IGJvb2xlYW47XG4gICAgICBkaXNwbGF5TG9jYXRpb246IENoYXRFbGVtZW50RGlzcGxheUxvY2F0aW9uVjM7XG4gICAgfSkgPT4ge1xuICAgICAgY29uc3QgZXZlbnRJZCA9IHV1aWQoKTtcblxuICAgICAgdHJhY2tXaWRnZXRJbnRlcmFjdGlvbih7XG4gICAgICAgIGV2ZW50TmFtZTogRW52aXZlTWV0cmljc0V2ZW50TmFtZS5XaWRnZXRJbnRlcmFjdGlvbixcbiAgICAgICAgdHJpZ2dlcjoge1xuICAgICAgICAgIHdpZGdldDogY29udGV4dFdpZGdldCxcbiAgICAgICAgICB3aWRnZXRfaW50ZXJhY3Rpb246IFdpZGdldEludGVyYWN0aW9uVHlwZS5NRVNTQUdFX1NVQk1JVFRFRCxcbiAgICAgICAgICB3aWRnZXRfaW50ZXJhY3Rpb25fZGF0YToge1xuICAgICAgICAgICAgbWVzc2FnZV9zdWJtaXR0ZWQ6IHtcbiAgICAgICAgICAgICAgcmVxdWVzdF90ZXh0OiBxdWVyeSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuXG4gICAgICB0cmFja0V2ZW50KHtcbiAgICAgICAgZXZlbnROYW1lOiBTcGlmZnlNZXRyaWNzRXZlbnROYW1lLkNoYXRVc2VyTWVzc2FnZUlucHV0LFxuICAgICAgICBldmVudFByb3BzOiB7XG4gICAgICAgICAgcXVlcnksXG4gICAgICAgICAgdXNlcl90eXBlZDogdXNlclR5cGVkLFxuICAgICAgICAgIG1lc3NhZ2VfaWQ6IGV2ZW50SWQsXG4gICAgICAgICAgbWVzc2FnZV9yb2xlOiBNZXNzYWdlUm9sZS5Vc2VyLFxuICAgICAgICAgIG1lc3NhZ2VfdHlwZTogTWVzc2FnZVR5cGUuUXVlcnlUeXBlZCxcbiAgICAgICAgICBtZXNzYWdlX21ldGFkYXRhOiB7XG4gICAgICAgICAgICBjb250ZW50OiBxdWVyeSxcbiAgICAgICAgICAgIGNyZWF0ZWRfYXQ6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICAgICAgICAgIHVzZXJfdHlwZWQ6IHVzZXJUeXBlZCxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgICB0cmFja0V2ZW50KHtcbiAgICAgICAgZXZlbnROYW1lOiBFbnZpdmVNZXRyaWNzRXZlbnROYW1lLkNoYXRSZXF1ZXN0LFxuICAgICAgICBldmVudFByb3BzOiB7XG4gICAgICAgICAgLi4uY29udGV4dCxcbiAgICAgICAgICAndHJpZ2dlci53aWRnZXQnOiBkaXNwbGF5TG9jYXRpb24sXG4gICAgICAgICAgJ2NoYXQucmVxdWVzdF90eXBlJzogJ3RleHQnLFxuICAgICAgICAgICdjaGF0LnJlcXVlc3RfdGV4dCc6IHF1ZXJ5LFxuICAgICAgICAgICdjaGF0LnJlcXVlc3RfaWQnOiBldmVudElkLFxuICAgICAgICAgICdjaGF0LnJlcXVlc3RfY3JlYXRlZF9hdCc6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICAgICAgICAnY2hhdC51c2VyX3R5cGVkJzogdXNlclR5cGVkLFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgICBjb25zdCBldmVudDogVXNlckV2ZW50ID0ge1xuICAgICAgICBldmVudElkLFxuICAgICAgICBjYXRlZ29yeTogVXNlckV2ZW50Q2F0ZWdvcnkuUXVlcnlUeXBlZCxcbiAgICAgICAgY3JlYXRlZEF0OiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gICAgICAgIGF0dHJpYnV0ZXM6IHtcbiAgICAgICAgICBxdWVyeSxcbiAgICAgICAgICB1c2VyVHlwZWQsXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgICAgcXVldWVVc2VyRXZlbnQoZXZlbnQpO1xuICAgIH0sXG4gICAgW3F1ZXVlVXNlckV2ZW50LCB0cmFja0V2ZW50LCBjb250ZXh0XSxcbiAgKTtcbiAgY29uc3Qgb25Gb3JtUmVzcG9uc2VTdWJtaXR0ZWQgPSB1c2VDYWxsYmFjayhcbiAgICAoZm9ybTogRm9ybVN1Ym1pdHRlZEF0dHJpYnV0ZXMpID0+IHtcbiAgICAgIHNldFJlcGx5RXZlbnRDYXRlZ29yeShVc2VyRXZlbnRDYXRlZ29yeS5Gb3JtU3VibWl0dGVkKTtcbiAgICAgIHNldEZvcm1TdWJtaXQoZm9ybSk7XG4gICAgICBjb25zdCBldmVudElkID0gdXVpZCgpO1xuICAgICAgdHJhY2tFdmVudCh7XG4gICAgICAgIGV2ZW50TmFtZTogRW52aXZlTWV0cmljc0V2ZW50TmFtZS5DaGF0UmVxdWVzdCxcbiAgICAgICAgZXZlbnRQcm9wczoge1xuICAgICAgICAgIC4uLmNvbnRleHQsXG4gICAgICAgICAgJ2NoYXQucmVxdWVzdF9pZCc6IGV2ZW50SWQsXG4gICAgICAgICAgJ2NoYXQucmVxdWVzdF90eXBlJzogJ2Zvcm0nLFxuICAgICAgICAgICdjaGF0LmZvcm1fcmVzcG9uc2VfaWQnOiBmb3JtLmZvcm1SZXNwb25zZUlkLFxuICAgICAgICAgICdjaGF0LmZvcm1fdHlwZSc6IGZvcm0uZm9ybVR5cGUsXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IGV2ZW50OiBVc2VyRXZlbnQgPSB7XG4gICAgICAgIGV2ZW50SWQsXG4gICAgICAgIGNhdGVnb3J5OiBVc2VyRXZlbnRDYXRlZ29yeS5Gb3JtU3VibWl0dGVkLFxuICAgICAgICBjcmVhdGVkQXQ6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICAgICAgYXR0cmlidXRlczogZm9ybSxcbiAgICAgIH07XG4gICAgICBxdWV1ZVVzZXJFdmVudChldmVudCk7XG4gICAgfSxcbiAgICBbc2V0UmVwbHlFdmVudENhdGVnb3J5LCBzZXRGb3JtU3VibWl0LCB0cmFja0V2ZW50LCBjb250ZXh0LCBxdWV1ZVVzZXJFdmVudF0sXG4gICk7XG5cbiAgcmV0dXJuIHtcbiAgICBsb2dQYWdlVmlzaXQsXG4gICAgbG9nVXNlckV2ZW50LFxuICAgIG9uU3VnZ2VzdGlvbkNsaWNrZWQsXG4gICAgb25UeXBlZE1lc3NhZ2VTdWJtaXR0ZWQsXG4gICAgb25Gb3JtUmVzcG9uc2VTdWJtaXR0ZWQsXG4gIH07XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBMEJBLE1BQU0sc0JBQXNCO0NBQzFCQSxrREFBa0I7Q0FDbEJBLGtEQUFrQjtDQUNsQkEsa0RBQWtCO0NBQ25CO0FBRUQsTUFBTSxTQUFTLElBQUlDLHVCQUFPLFVBQVU7QUFvQnBDLE1BQWEsd0JBQXdCLFdBQXdDO0NBRzNFLE1BQU0sa0NBQXVCQyxxQ0FBcUI7Q0FDbEQsTUFBTSwrQ0FBb0NDLHlDQUF5QjtDQUNuRSxNQUFNLHVDQUE0QkMsd0NBQW1CO0NBQ3JELE1BQU0sOENBQW1DQyxvREFBdUI7Q0FDaEUsTUFBTSxzQ0FBMkJDLDRDQUFlO0NBQ2hELE1BQU0sRUFBRSxlQUFlQyx1Q0FBYztDQUNyQyxNQUFNLEVBQUUsMkJBQTJCQyxtREFBc0I7Q0FDekQsTUFBTSxnQkFBZ0IsVUFBVUMsaUVBQTJCO0FBdU0zRCxRQUFPO0VBQ0wsc0NBck1DLEVBQUUsd0JBQWtFO0dBQ25FLE1BQU0sd0JBQWdCO0FBQ3RCLGNBQVc7SUFDVCxXQUFXQywwQ0FBdUI7SUFDbEMsWUFBWTtLQUNWLEdBQUc7S0FDSCxt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
|
|
227
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdEFQSS5janMiLCJuYW1lcyI6WyJVc2VyRXZlbnRDYXRlZ29yeSIsIkxvZ2dlciIsImFuYWx5dGljc0NvbnRleHRBdG9tIiwiaGFzUGFyc2VkVmFyaWFudEluZm9BdG9tIiwicXVldWVVc2VyRXZlbnRBdG9tIiwic3VnZ2VzdGlvbnNBdG9tIiwicmVwbHlFdmVudENhdGVnb3J5QXRvbSIsImZvcm1TdWJtaXRBdG9tIiwidXNlQW1wbGl0dWRlIiwidXNlV2lkZ2V0SW50ZXJhY3Rpb24iLCJXaWRnZXRJbnRlcmFjdGlvbkNvbXBvbmVudCIsIkVudml2ZU1ldHJpY3NFdmVudE5hbWUiLCJXaWRnZXRJbnRlcmFjdGlvblR5cGUiLCJTcGlmZnlNZXRyaWNzRXZlbnROYW1lIiwiTWVzc2FnZVJvbGUiLCJNZXNzYWdlVHlwZSIsImV2ZW50OiBVc2VyRXZlbnQiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udGV4dHMvc2FsZXNBZ2VudENvbnRleHQvY2hhdEFQSS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUaGlzIGNvbXBvbmVudCB3aWxsIGludGVyYWN0IHdpdGggdGhlIGJhY2tlbmQgQVBJIHRvIGdldCB0aGUgcmVzcG9uc2VzIGZyb20gdGhlIHNhbGVzIGFnZW50LlxuaW1wb3J0IHsgUGFnZVZpc2l0Q2F0ZWdvcnksIFVzZXJFdmVudENhdGVnb3J5IH0gZnJvbSAnQHNwaWZmeS1haS9jb21tZXJjZS1hcGktY2xpZW50JztcbmltcG9ydCB7IHVzZUF0b21WYWx1ZSwgdXNlU2V0QXRvbSB9IGZyb20gJ2pvdGFpJztcbmltcG9ydCB7IHVzZUNhbGxiYWNrIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IExvZ2dlciBmcm9tICdzcmMvYXBwbGljYXRpb24vbG9nZ2luZy9sb2dnZXInO1xuaW1wb3J0IHtcbiAgQ2hhdEVsZW1lbnREaXNwbGF5TG9jYXRpb25WMyxcbiAgRm9ybVN1Ym1pdHRlZEF0dHJpYnV0ZXMsXG4gIE1lc3NhZ2VSb2xlLFxuICBNZXNzYWdlVHlwZSxcbiAgU3VnZ2VzdGlvbixcbiAgVXNlckV2ZW50LFxufSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzJztcbmltcG9ydCB7IGhhc1BhcnNlZFZhcmlhbnRJbmZvQXRvbSB9IGZyb20gJ3NyYy9hdG9tcy9hcHAnO1xuaW1wb3J0IHsgYW5hbHl0aWNzQ29udGV4dEF0b20gfSBmcm9tICdzcmMvYXRvbXMvYXBwL3ZhcmlhbnQnO1xuaW1wb3J0IHsgZm9ybVN1Ym1pdEF0b20sIHJlcGx5RXZlbnRDYXRlZ29yeUF0b20gfSBmcm9tICdzcmMvYXRvbXMvY2hhdCc7XG5pbXBvcnQgeyBzdWdnZXN0aW9uc0F0b20gfSBmcm9tICdzcmMvYXRvbXMvY2hhdC9jaGF0U3RhdGUnO1xuaW1wb3J0IHsgcXVldWVVc2VyRXZlbnRBdG9tIH0gZnJvbSAnc3JjL2F0b21zL2NoYXQvbWVzc2FnZVF1ZXVlJztcbmltcG9ydCB7IHVzZVdpZGdldEludGVyYWN0aW9uIH0gZnJvbSAnc3JjL2hvb2tzL1dpZGdldEludGVyYWN0aW9uJztcbmltcG9ydCB7XG4gIFdpZGdldEludGVyYWN0aW9uQ29tcG9uZW50LFxuICBXaWRnZXRJbnRlcmFjdGlvblR5cGUsXG59IGZyb20gJ3NyYy9ob29rcy9XaWRnZXRJbnRlcmFjdGlvbi90eXBlcyc7XG5pbXBvcnQgeyBFbnZpdmVNZXRyaWNzRXZlbnROYW1lIH0gZnJvbSAnc3JjL3NlcnZpY2VzL2FtcGxpdHVkZVNlcnZpY2UvYW1wbGl0dWRlU2VydmljZSc7XG5pbXBvcnQgeyB2NCBhcyB1dWlkIH0gZnJvbSAndXVpZCc7XG5pbXBvcnQgeyBTcGlmZnlNZXRyaWNzRXZlbnROYW1lLCB1c2VBbXBsaXR1ZGUgfSBmcm9tICcuLi9hbXBsaXR1ZGVDb250ZXh0JztcblxuY29uc3QgVFJBQ0tFRF9VU0VSX0VWRU5UUyA9IFtcbiAgVXNlckV2ZW50Q2F0ZWdvcnkuUGFnZVZpc2l0LFxuICBVc2VyRXZlbnRDYXRlZ29yeS5QZHBWaXNpdCxcbiAgVXNlckV2ZW50Q2F0ZWdvcnkuUGxwVmlzaXQsXG5dO1xuXG5jb25zdCBsb2dnZXIgPSBuZXcgTG9nZ2VyKCdjaGF0QVBJJyk7XG5leHBvcnQgaW50ZXJmYWNlIFNhbGVzQWdlbnRDaGF0QVBJIHtcbiAgbG9nUGFnZVZpc2l0OiAoeyBwYWdlVmlzaXRDYXRlZ29yeSB9OiB7IHBhZ2VWaXNpdENhdGVnb3J5OiBQYWdlVmlzaXRDYXRlZ29yeSB9KSA9PiB2b2lkO1xuICBsb2dVc2VyRXZlbnQ6IChldmVudDogVXNlckV2ZW50KSA9PiB2b2lkO1xuICBvblN1Z2dlc3Rpb25DbGlja2VkOiAoXG4gICAgc3VnZ2VzdGlvbjogU3VnZ2VzdGlvbixcbiAgICBkaXNwbGF5TG9jYXRpb246IENoYXRFbGVtZW50RGlzcGxheUxvY2F0aW9uVjMsXG4gICkgPT4gdm9pZDtcbiAgb25UeXBlZE1lc3NhZ2VTdWJtaXR0ZWQ6ICh7XG4gICAgcXVlcnksXG4gICAgdXNlclR5cGVkLFxuICAgIGRpc3BsYXlMb2NhdGlvbixcbiAgfToge1xuICAgIHF1ZXJ5OiBzdHJpbmc7XG4gICAgdXNlclR5cGVkOiBib29sZWFuO1xuICAgIGRpc3BsYXlMb2NhdGlvbjogQ2hhdEVsZW1lbnREaXNwbGF5TG9jYXRpb25WMztcbiAgfSkgPT4gdm9pZDtcbiAgb25Gb3JtUmVzcG9uc2VTdWJtaXR0ZWQ6IChmb3JtOiBGb3JtU3VibWl0dGVkQXR0cmlidXRlcykgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGNvbnN0IHVzZVNhbGVzQWdlbnRDaGF0QVBJID0gKHdpZGdldD86IFdpZGdldEludGVyYWN0aW9uQ29tcG9uZW50KSA9PiB7XG4gIC8vIFRPRE86IEVhY2ggb2YgdGhlc2UgZnVuY3Rpb25zIHdpbGwgdHJpZ2dlciBib3RoIHRoZSBuZWNlc3NhcnkgYW1wbGl0dWRlIGV2ZW50cyBhbmQgaW5pdGlhdGUgdGhlXG4gIC8vIG5lY2Vzc2FyeSBhY3Rpb25zIHRvIHRyaWdnZXIgdGhlIGJhY2tlbmQgQVBJXG4gIGNvbnN0IGNvbnRleHQgPSB1c2VBdG9tVmFsdWUoYW5hbHl0aWNzQ29udGV4dEF0b20pO1xuICBjb25zdCBoYXNQYXJzZWRWYXJpYW50SW5mbyA9IHVzZUF0b21WYWx1ZShoYXNQYXJzZWRWYXJpYW50SW5mb0F0b20pO1xuICBjb25zdCBxdWV1ZVVzZXJFdmVudCA9IHVzZVNldEF0b20ocXVldWVVc2VyRXZlbnRBdG9tKTtcbiAgY29uc3Qgc2V0U3VnZ2VzdGlvbnMgPSB1c2VTZXRBdG9tKHN1Z2dlc3Rpb25zQXRvbSk7XG4gIGNvbnN0IHNldFJlcGx5RXZlbnRDYXRlZ29yeSA9IHVzZVNldEF0b20ocmVwbHlFdmVudENhdGVnb3J5QXRvbSk7XG4gIGNvbnN0IHNldEZvcm1TdWJtaXQgPSB1c2VTZXRBdG9tKGZvcm1TdWJtaXRBdG9tKTtcbiAgY29uc3QgeyB0cmFja0V2ZW50IH0gPSB1c2VBbXBsaXR1ZGUoKTtcbiAgY29uc3QgeyB0cmFja1dpZGdldEludGVyYWN0aW9uIH0gPSB1c2VXaWRnZXRJbnRlcmFjdGlvbigpO1xuICBjb25zdCBjb250ZXh0V2lkZ2V0ID0gd2lkZ2V0IHx8IFdpZGdldEludGVyYWN0aW9uQ29tcG9uZW50LkZMT0FUSU5HX0NIQVQ7XG5cbiAgY29uc3QgbG9nUGFnZVZpc2l0ID0gdXNlQ2FsbGJhY2soXG4gICAgKHsgcGFnZVZpc2l0Q2F0ZWdvcnkgfTogeyBwYWdlVmlzaXRDYXRlZ29yeTogUGFnZVZpc2l0Q2F0ZWdvcnkgfSkgPT4ge1xuICAgICAgY29uc3QgZXZlbnRJZCA9IHV1aWQoKTtcbiAgICAgIHRyYWNrRXZlbnQoe1xuICAgICAgICBldmVudE5hbWU6IEVudml2ZU1ldHJpY3NFdmVudE5hbWUuQ2hhdFJlcXVlc3QsXG4gICAgICAgIGV2ZW50UHJvcHM6IHtcbiAgICAgICAgICAuLi5jb250ZXh0LFxuICAgICAgICAgICdjaGF0LnJlcXVlc3RfaWQnOiBldmVudElkLFxuICAgICAgICAgICdjaGF0LnJlcXVlc3RfdHlwZSc6ICdwYWdlX3Zpc2l0JyxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgICAgY29uc3QgZXZlbnQ6IFVzZXJFdmVudCA9IHtcbiAgICAgICAgZXZlbnRJZCxcbiAgICAgICAgY2F0ZWdvcnk6IFVzZXJFdmVudENhdGVnb3J5LlBhZ2VWaXNpdCxcbiAgICAgICAgY3JlYXRlZEF0OiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gICAgICAgIGF0dHJpYnV0ZXM6IHtcbiAgICAgICAgICB1cmw6IHdpbmRvdy5sb2NhdGlvbi5ocmVmLFxuICAgICAgICAgIHBhZ2VWaXNpdENhdGVnb3J5LFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICAgIHF1ZXVlVXNlckV2ZW50KGV2ZW50KTtcbiAgICB9LFxuICAgIFtxdWV1ZVVzZXJFdmVudCwgY29udGV4dCwgdHJhY2tFdmVudF0sXG4gICk7XG5cbiAgY29uc3QgbG9nVXNlckV2ZW50ID0gdXNlQ2FsbGJhY2soXG4gICAgKGV2ZW50OiBVc2VyRXZlbnQpID0+IHtcbiAgICAgIGlmICghaGFzUGFyc2VkVmFyaWFudEluZm8pIHtcbiAgICAgICAgbG9nZ2VyLmxvZ1dhcm4oJ2hhc1BhcnNlZFZhcmlhbnRJbmZvIGlzIGZhbHNlLCBub3QgbG9nZ2luZyB1c2VyIGV2ZW50JywgdW5kZWZpbmVkLCB7XG4gICAgICAgICAgZXZlbnQsXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBpZiAoVFJBQ0tFRF9VU0VSX0VWRU5UUy5pbmNsdWRlcyhldmVudC5jYXRlZ29yeSkpIHtcbiAgICAgICAgdHJhY2tFdmVudCh7XG4gICAgICAgICAgZXZlbnROYW1lOiBFbnZpdmVNZXRyaWNzRXZlbnROYW1lLkNoYXRSZXF1ZXN0LFxuICAgICAgICAgIGV2ZW50UHJvcHM6IHtcbiAgICAgICAgICAgIC4uLmNvbnRleHQsXG4gICAgICAgICAgICAnY2hhdC5yZXF1ZXN0X2lkJzogZXZlbnQuZXZlbnRJZCxcbiAgICAgICAgICAgICdjaGF0LnJlcXVlc3RfdHlwZSc6ICdwYWdlX3Zpc2l0JyxcbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHF1ZXVlVXNlckV2ZW50KGV2ZW50KTtcbiAgICB9LFxuICAgIFtjb250ZXh0LCBoYXNQYXJzZWRWYXJpYW50SW5mbywgcXVldWVVc2VyRXZlbnQsIHRyYWNrRXZlbnRdLFxuICApO1xuICBjb25zdCBvblN1Z2dlc3Rpb25DbGlja2VkID0gdXNlQ2FsbGJhY2soXG4gICAgKHN1Z2dlc3Rpb246IFN1Z2dlc3Rpb24sIGRpc3BsYXlMb2NhdGlvbjogQ2hhdEVsZW1lbnREaXNwbGF5TG9jYXRpb25WMykgPT4ge1xuICAgICAgdHJhY2tXaWRnZXRJbnRlcmFjdGlvbih7XG4gICAgICAgIGV2ZW50TmFtZTogRW52aXZlTWV0cmljc0V2ZW50TmFtZS5XaWRnZXRJbnRlcmFjdGlvbixcbiAgICAgICAgdHJpZ2dlcjoge1xuICAgICAgICAgIHdpZGdldDogY29udGV4dFdpZGdldCxcbiAgICAgICAgICB3aWRnZXRfaW50ZXJhY3Rpb246IFdpZGdldEludGVyYWN0aW9uVHlwZS5TVUdHRVNUSU9OX0NMSUNLRUQsXG4gICAgICAgICAgd2lkZ2V0X2ludGVyYWN0aW9uX2RhdGE6IHtcbiAgICAgICAgICAgIHN1Z2dlc3Rpb25fY2xpY2tlZDoge1xuICAgICAgICAgICAgICBzdWdnZXN0aW9uX2lkOiBzdWdnZXN0aW9uLmlkLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSk7XG5cbiAgICAgIHRyYWNrRXZlbnQoe1xuICAgICAgICBldmVudE5hbWU6IFNwaWZmeU1ldHJpY3NFdmVudE5hbWUuQ2hhdFN1Z2dlc3Rpb25DbGlja2VkLFxuICAgICAgICBldmVudFByb3BzOiB7XG4gICAgICAgICAgbWVzc2FnZV9pZDogc3VnZ2VzdGlvbi5pZCxcbiAgICAgICAgICBtZXNzYWdlX3JvbGU6IE1lc3NhZ2VSb2xlLlVzZXIsXG4gICAgICAgICAgbWVzc2FnZV90eXBlOiBNZXNzYWdlVHlwZS5TdWdnZXN0aW9uQ2xpY2tlZCxcbiAgICAgICAgICBtZXNzYWdlX21ldGFkYXRhOiB7XG4gICAgICAgICAgICBjb250ZW50OiBzdWdnZXN0aW9uLmNvbnRlbnQsXG4gICAgICAgICAgICBjcmVhdGVkX2F0OiBzdWdnZXN0aW9uLmNyZWF0ZWRBdCxcbiAgICAgICAgICAgIGNhdGVnb3J5OiBzdWdnZXN0aW9uLmNhdGVnb3J5LFxuICAgICAgICAgICAgaXNfYW5zd2VyOiBzdWdnZXN0aW9uLmlzQW5zd2VyLFxuICAgICAgICAgICAgZGlzcGxheV9sb2NhdGlvbjogZGlzcGxheUxvY2F0aW9uLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IGV2ZW50SWQgPSB1dWlkKCk7XG4gICAgICB0cmFja0V2ZW50KHtcbiAgICAgICAgZXZlbnROYW1lOiBFbnZpdmVNZXRyaWNzRXZlbnROYW1lLkNoYXRSZXF1ZXN0LFxuICAgICAgICBldmVudFByb3BzOiB7XG4gICAgICAgICAgLi4uY29udGV4dCxcbiAgICAgICAgICAndHJpZ2dlci53aWRnZXQnOiBkaXNwbGF5TG9jYXRpb24sIC8vIFRoaXMgaXMgZmFpcmx5IGZpbmVncmFpbmVkLCBidXQgdGhhdCBtYXkgYmUgb2tcbiAgICAgICAgICAnY2hhdC5yZXF1ZXN0X2lkJzogZXZlbnRJZCxcbiAgICAgICAgICAnY2hhdC5yZXF1ZXN0X3R5cGUnOiAnc3VnZ2VzdGlvbicsXG4gICAgICAgICAgJ2NoYXQucmVxdWVzdF90ZXh0Jzogc3VnZ2VzdGlvbi5jb250ZW50LFxuICAgICAgICAgICdjaGF0LnN1Z2dlc3Rpb25faWQnOiBzdWdnZXN0aW9uLmlkLFxuICAgICAgICAgICdjaGF0LnN1Z2dlc3Rpb25fY2F0ZWdvcnknOiBzdWdnZXN0aW9uLmNhdGVnb3J5LFxuICAgICAgICAgICdjaGF0LnN1Z2dlc3Rpb25fY3JlYXRlZF9hdCc6IHN1Z2dlc3Rpb24uY3JlYXRlZEF0LFxuICAgICAgICAgICdjaGF0LnN1Z2dlc3Rpb25faXNfYW5zd2VyJzogc3VnZ2VzdGlvbi5pc0Fuc3dlcixcbiAgICAgICAgICAnY2hhdC51c2VyX3R5cGVkJzogZmFsc2UsXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IGV2ZW50OiBVc2VyRXZlbnQgPSB7XG4gICAgICAgIGV2ZW50SWQsXG4gICAgICAgIGNhdGVnb3J5OiBVc2VyRXZlbnRDYXRlZ29yeS5TdWdnZXN0aW9uQ2xpY2tlZCxcbiAgICAgICAgY3JlYXRlZEF0OiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gICAgICAgIGF0dHJpYnV0ZXM6IHtcbiAgICAgICAgICBzdWdnZXN0aW9uSWQ6IHN1Z2dlc3Rpb24uaWQsXG4gICAgICAgICAgY29udGVudDogc3VnZ2VzdGlvbi5jb250ZW50LFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICAgIHNldFN1Z2dlc3Rpb25zKFtdKTtcbiAgICAgIHF1ZXVlVXNlckV2ZW50KGV2ZW50KTtcbiAgICB9LFxuICAgIFtxdWV1ZVVzZXJFdmVudCwgc2V0U3VnZ2VzdGlvbnMsIHRyYWNrRXZlbnQsIGNvbnRleHRdLFxuICApO1xuICBjb25zdCBvblR5cGVkTWVzc2FnZVN1Ym1pdHRlZCA9IHVzZUNhbGxiYWNrKFxuICAgICh7XG4gICAgICBxdWVyeSxcbiAgICAgIHVzZXJUeXBlZCxcbiAgICAgIGRpc3BsYXlMb2NhdGlvbixcbiAgICB9OiB7XG4gICAgICBxdWVyeTogc3RyaW5nO1xuICAgICAgdXNlclR5cGVkOiBib29sZWFuO1xuICAgICAgZGlzcGxheUxvY2F0aW9uOiBDaGF0RWxlbWVudERpc3BsYXlMb2NhdGlvblYzO1xuICAgIH0pID0+IHtcbiAgICAgIGNvbnN0IGV2ZW50SWQgPSB1dWlkKCk7XG5cbiAgICAgIHRyYWNrV2lkZ2V0SW50ZXJhY3Rpb24oe1xuICAgICAgICBldmVudE5hbWU6IEVudml2ZU1ldHJpY3NFdmVudE5hbWUuV2lkZ2V0SW50ZXJhY3Rpb24sXG4gICAgICAgIHRyaWdnZXI6IHtcbiAgICAgICAgICB3aWRnZXQ6IGNvbnRleHRXaWRnZXQsXG4gICAgICAgICAgd2lkZ2V0X2ludGVyYWN0aW9uOiBXaWRnZXRJbnRlcmFjdGlvblR5cGUuTUVTU0FHRV9TVUJNSVRURUQsXG4gICAgICAgICAgd2lkZ2V0X2ludGVyYWN0aW9uX2RhdGE6IHtcbiAgICAgICAgICAgIG1lc3NhZ2Vfc3VibWl0dGVkOiB7XG4gICAgICAgICAgICAgIHJlcXVlc3RfdGV4dDogcXVlcnksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9KTtcblxuICAgICAgdHJhY2tFdmVudCh7XG4gICAgICAgIGV2ZW50TmFtZTogU3BpZmZ5TWV0cmljc0V2ZW50TmFtZS5DaGF0VXNlck1lc3NhZ2VJbnB1dCxcbiAgICAgICAgZXZlbnRQcm9wczoge1xuICAgICAgICAgIHF1ZXJ5LFxuICAgICAgICAgIHVzZXJfdHlwZWQ6IHVzZXJUeXBlZCxcbiAgICAgICAgICBtZXNzYWdlX2lkOiBldmVudElkLFxuICAgICAgICAgIG1lc3NhZ2Vfcm9sZTogTWVzc2FnZVJvbGUuVXNlcixcbiAgICAgICAgICBtZXNzYWdlX3R5cGU6IE1lc3NhZ2VUeXBlLlF1ZXJ5VHlwZWQsXG4gICAgICAgICAgbWVzc2FnZV9tZXRhZGF0YToge1xuICAgICAgICAgICAgY29udGVudDogcXVlcnksXG4gICAgICAgICAgICBjcmVhdGVkX2F0OiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gICAgICAgICAgICB1c2VyX3R5cGVkOiB1c2VyVHlwZWQsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgICAgdHJhY2tFdmVudCh7XG4gICAgICAgIGV2ZW50TmFtZTogRW52aXZlTWV0cmljc0V2ZW50TmFtZS5DaGF0UmVxdWVzdCxcbiAgICAgICAgZXZlbnRQcm9wczoge1xuICAgICAgICAgIC4uLmNvbnRleHQsXG4gICAgICAgICAgJ3RyaWdnZXIud2lkZ2V0JzogZGlzcGxheUxvY2F0aW9uLFxuICAgICAgICAgICdjaGF0LnJlcXVlc3RfdHlwZSc6ICd0ZXh0JyxcbiAgICAgICAgICAnY2hhdC5yZXF1ZXN0X3RleHQnOiBxdWVyeSxcbiAgICAgICAgICAnY2hhdC5yZXF1ZXN0X2lkJzogZXZlbnRJZCxcbiAgICAgICAgICAnY2hhdC5yZXF1ZXN0X2NyZWF0ZWRfYXQnOiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gICAgICAgICAgJ2NoYXQudXNlcl90eXBlZCc6IHVzZXJUeXBlZCxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgICAgY29uc3QgZXZlbnQ6IFVzZXJFdmVudCA9IHtcbiAgICAgICAgZXZlbnRJZCxcbiAgICAgICAgY2F0ZWdvcnk6IFVzZXJFdmVudENhdGVnb3J5LlF1ZXJ5VHlwZWQsXG4gICAgICAgIGNyZWF0ZWRBdDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuICAgICAgICBhdHRyaWJ1dGVzOiB7XG4gICAgICAgICAgcXVlcnksXG4gICAgICAgICAgdXNlclR5cGVkLFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICAgIHNldFN1Z2dlc3Rpb25zKFtdKTtcbiAgICAgIHF1ZXVlVXNlckV2ZW50KGV2ZW50KTtcbiAgICB9LFxuICAgIFtxdWV1ZVVzZXJFdmVudCwgc2V0U3VnZ2VzdGlvbnMsIHRyYWNrRXZlbnQsIGNvbnRleHRdLFxuICApO1xuICBjb25zdCBvbkZvcm1SZXNwb25zZVN1Ym1pdHRlZCA9IHVzZUNhbGxiYWNrKFxuICAgIChmb3JtOiBGb3JtU3VibWl0dGVkQXR0cmlidXRlcykgPT4ge1xuICAgICAgc2V0UmVwbHlFdmVudENhdGVnb3J5KFVzZXJFdmVudENhdGVnb3J5LkZvcm1TdWJtaXR0ZWQpO1xuICAgICAgc2V0Rm9ybVN1Ym1pdChmb3JtKTtcbiAgICAgIGNvbnN0IGV2ZW50SWQgPSB1dWlkKCk7XG4gICAgICB0cmFja0V2ZW50KHtcbiAgICAgICAgZXZlbnROYW1lOiBFbnZpdmVNZXRyaWNzRXZlbnROYW1lLkNoYXRSZXF1ZXN0LFxuICAgICAgICBldmVudFByb3BzOiB7XG4gICAgICAgICAgLi4uY29udGV4dCxcbiAgICAgICAgICAnY2hhdC5yZXF1ZXN0X2lkJzogZXZlbnRJZCxcbiAgICAgICAgICAnY2hhdC5yZXF1ZXN0X3R5cGUnOiAnZm9ybScsXG4gICAgICAgICAgJ2NoYXQuZm9ybV9yZXNwb25zZV9pZCc6IGZvcm0uZm9ybVJlc3BvbnNlSWQsXG4gICAgICAgICAgJ2NoYXQuZm9ybV90eXBlJzogZm9ybS5mb3JtVHlwZSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgICAgY29uc3QgZXZlbnQ6IFVzZXJFdmVudCA9IHtcbiAgICAgICAgZXZlbnRJZCxcbiAgICAgICAgY2F0ZWdvcnk6IFVzZXJFdmVudENhdGVnb3J5LkZvcm1TdWJtaXR0ZWQsXG4gICAgICAgIGNyZWF0ZWRBdDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuICAgICAgICBhdHRyaWJ1dGVzOiBmb3JtLFxuICAgICAgfTtcbiAgICAgIHF1ZXVlVXNlckV2ZW50KGV2ZW50KTtcbiAgICB9LFxuICAgIFtzZXRSZXBseUV2ZW50Q2F0ZWdvcnksIHNldEZvcm1TdWJtaXQsIHRyYWNrRXZlbnQsIGNvbnRleHQsIHF1ZXVlVXNlckV2ZW50XSxcbiAgKTtcblxuICByZXR1cm4ge1xuICAgIGxvZ1BhZ2VWaXNpdCxcbiAgICBsb2dVc2VyRXZlbnQsXG4gICAgb25TdWdnZXN0aW9uQ2xpY2tlZCxcbiAgICBvblR5cGVkTWVzc2FnZVN1Ym1pdHRlZCxcbiAgICBvbkZvcm1SZXNwb25zZVN1Ym1pdHRlZCxcbiAgfTtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUEyQkEsTUFBTSxzQkFBc0I7Q0FDMUJBLGtEQUFrQjtDQUNsQkEsa0RBQWtCO0NBQ2xCQSxrREFBa0I7Q0FDbkI7QUFFRCxNQUFNLFNBQVMsSUFBSUMsdUJBQU8sVUFBVTtBQW9CcEMsTUFBYSx3QkFBd0IsV0FBd0M7Q0FHM0UsTUFBTSxrQ0FBdUJDLHFDQUFxQjtDQUNsRCxNQUFNLCtDQUFvQ0MseUNBQXlCO0NBQ25FLE1BQU0sdUNBQTRCQyx3Q0FBbUI7Q0FDckQsTUFBTSx1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
|