@veloceapps/sdk 10.0.0-20 → 10.0.0-22

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,10 +1,10 @@
1
+ import { DataSource } from '@angular/cdk/collections';
1
2
  import * as angularCore from '@angular/core';
2
3
  import * as angularForms from '@angular/forms';
3
- import { DataSource } from '@angular/cdk/collections';
4
4
  import { CatalogApiService, ConfigurationSettingsApiService, ContractedPriceApiService, DeltaApiService, DocumentAttachmentApiService, DocumentTemplatesApiService, GuidedSellingApiService, PicklistsApiService, PriceApiService, QuoteApiService, RampApiService, SalesforceApiService, ShoppingCartSettingsApiService, } from '@veloceapps/api';
5
5
  import { ToastService, ToastType } from '@veloceapps/components';
6
- import { ConfigurationContextMode, isDefined, Operator, parseJsonSafely, Predicate } from '@veloceapps/core';
7
- import { ActionCodePipe, ConfigurationService, ConfigurationStateService, ContextService, DatePipe, FlowConfigurationService, FlowStateConfigurationService, FlowStateService, IntegrationState, lineItemUtils, LineItemWorker, NumberPipe, PricePipe, ProductImagesService, QuoteDraftService, RuntimeSettingsService, } from '@veloceapps/sdk/core';
6
+ import { ConfigurationContextMode, Operator, Predicate, isDefined, parseJsonSafely, parseJwt } from '@veloceapps/core';
7
+ import { ActionCodePipe, ConfigurationService, ConfigurationStateService, ContextService, DatePipe, FlowConfigurationService, FlowStateConfigurationService, FlowStateService, IntegrationState, LineItemWorker, NumberPipe, PricePipe, ProductImagesService, QuoteDraftService, RuntimeSettingsService, lineItemUtils, } from '@veloceapps/sdk/core';
8
8
  import lodash from 'lodash';
9
9
  import * as rxjs from 'rxjs';
10
10
  import * as rxjsOperators from 'rxjs/operators';
@@ -20,6 +20,7 @@ const VELOCE_LIBS = {
20
20
  Predicate,
21
21
  parseJsonSafely,
22
22
  ConfigurationContextMode,
23
+ parseJwt,
23
24
  },
24
25
  '@veloceapps/components': {
25
26
  ToastService,
@@ -81,4 +82,4 @@ export const vendorMap = {
81
82
  'rxjs/operators': rxjsOperators,
82
83
  lodash: lodash,
83
84
  };
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVuZG9yLW1hcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2Ntcy92ZW5kb3ItbWFwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxXQUFXLE1BQU0sZUFBZSxDQUFDO0FBQzdDLE9BQU8sS0FBSyxZQUFZLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3RELE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsK0JBQStCLEVBQy9CLHlCQUF5QixFQUN6QixlQUFlLEVBQ2YsNEJBQTRCLEVBQzVCLDJCQUEyQixFQUMzQix1QkFBdUIsRUFDdkIsbUJBQW1CLEVBQ25CLGVBQWUsRUFDZixlQUFlLEVBQ2YsY0FBYyxFQUNkLG9CQUFvQixFQUNwQiw4QkFBOEIsR0FDL0IsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM3RyxPQUFPLEVBQ0wsY0FBYyxFQUNkLG9CQUFvQixFQUNwQix5QkFBeUIsRUFDekIsY0FBYyxFQUNkLFFBQVEsRUFDUix3QkFBd0IsRUFDeEIsNkJBQTZCLEVBQzdCLGdCQUFnQixFQUNoQixnQkFBZ0IsRUFDaEIsYUFBYSxFQUNiLGNBQWMsRUFDZCxVQUFVLEVBQ1YsU0FBUyxFQUNULG9CQUFvQixFQUNwQixpQkFBaUIsRUFDakIsc0JBQXNCLEdBQ3ZCLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBQzVCLE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBQzdCLE9BQU8sS0FBSyxhQUFhLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxLQUFLLFVBQVUsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxLQUFLLGtCQUFrQixNQUFNLG9CQUFvQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxNQUFNLFdBQVcsR0FBRztJQUNsQixrQkFBa0IsRUFBRTtRQUNsQixTQUFTO1FBQ1QsUUFBUTtRQUNSLFNBQVM7UUFDVCxlQUFlO1FBQ2Ysd0JBQXdCO0tBQ3pCO0lBQ0Qsd0JBQXdCLEVBQUU7UUFDeEIsWUFBWTtRQUNaLFNBQVM7S0FDVjtJQUNELGlCQUFpQixFQUFFO1FBQ2pCLG9CQUFvQjtRQUNwQixlQUFlO1FBQ2YsMkJBQTJCO1FBQzNCLDRCQUE0QjtRQUM1QixjQUFjO1FBQ2QsaUJBQWlCO1FBQ2pCLGVBQWU7UUFDZixtQkFBbUI7UUFDbkIsZUFBZTtRQUNmLDhCQUE4QjtRQUM5QiwrQkFBK0I7UUFDL0IsdUJBQXVCO1FBQ3ZCLHlCQUF5QjtLQUMxQjtJQUNELHNCQUFzQixFQUFFO1FBQ3RCLG9CQUFvQjtRQUNwQix5QkFBeUI7UUFDekIsaUJBQWlCO1FBQ2pCLHdCQUF3QjtRQUN4QixnQkFBZ0I7UUFDaEIsZ0JBQWdCO1FBQ2hCLDZCQUE2QjtRQUM3QixjQUFjO1FBQ2Qsb0JBQW9CO1FBQ3BCLGNBQWM7UUFDZCxzQkFBc0I7UUFDdEIsY0FBYztRQUNkLFFBQVE7UUFDUixVQUFVO1FBQ1YsU0FBUztRQUNULEdBQUcsYUFBYTtLQUNqQjtJQUNELHFCQUFxQixFQUFFO1FBQ3JCLEdBQUcsa0JBQWtCO1FBQ3JCLEdBQUcsVUFBVTtRQUNiLGdCQUFnQjtRQUNoQixnQkFBZ0I7UUFDaEIsZ0JBQWdCO1FBQ2hCLFNBQVM7S0FDVjtDQUNGLENBQUM7QUFFRixNQUFNLGdDQUFnQyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsTUFBTSxDQUN6RSxDQUFDLEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsS0FBSyxFQUFFLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsVUFBVSxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUN6RixFQUFFLENBQ0gsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRztJQUN2QixHQUFHLFdBQVc7SUFFZCxzRkFBc0Y7SUFDdEYsR0FBRyxnQ0FBZ0M7SUFFbkMsZUFBZSxFQUFFLFdBQVc7SUFDNUIsZ0JBQWdCLEVBQUUsWUFBWTtJQUM5QiwwQkFBMEIsRUFBRTtRQUMxQixVQUFVO0tBQ1g7SUFDRCxJQUFJLEVBQUUsSUFBSTtJQUNWLGdCQUFnQixFQUFFLGFBQWE7SUFDL0IsTUFBTSxFQUFFLE1BQU07Q0FDZixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgYW5ndWxhckNvcmUgZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgKiBhcyBhbmd1bGFyRm9ybXMgZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRGF0YVNvdXJjZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2xsZWN0aW9ucyc7XG5pbXBvcnQge1xuICBDYXRhbG9nQXBpU2VydmljZSxcbiAgQ29uZmlndXJhdGlvblNldHRpbmdzQXBpU2VydmljZSxcbiAgQ29udHJhY3RlZFByaWNlQXBpU2VydmljZSxcbiAgRGVsdGFBcGlTZXJ2aWNlLFxuICBEb2N1bWVudEF0dGFjaG1lbnRBcGlTZXJ2aWNlLFxuICBEb2N1bWVudFRlbXBsYXRlc0FwaVNlcnZpY2UsXG4gIEd1aWRlZFNlbGxpbmdBcGlTZXJ2aWNlLFxuICBQaWNrbGlzdHNBcGlTZXJ2aWNlLFxuICBQcmljZUFwaVNlcnZpY2UsXG4gIFF1b3RlQXBpU2VydmljZSxcbiAgUmFtcEFwaVNlcnZpY2UsXG4gIFNhbGVzZm9yY2VBcGlTZXJ2aWNlLFxuICBTaG9wcGluZ0NhcnRTZXR0aW5nc0FwaVNlcnZpY2UsXG59IGZyb20gJ0B2ZWxvY2VhcHBzL2FwaSc7XG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UsIFRvYXN0VHlwZSB9IGZyb20gJ0B2ZWxvY2VhcHBzL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgQ29uZmlndXJhdGlvbkNvbnRleHRNb2RlLCBpc0RlZmluZWQsIE9wZXJhdG9yLCBwYXJzZUpzb25TYWZlbHksIFByZWRpY2F0ZSB9IGZyb20gJ0B2ZWxvY2VhcHBzL2NvcmUnO1xuaW1wb3J0IHtcbiAgQWN0aW9uQ29kZVBpcGUsXG4gIENvbmZpZ3VyYXRpb25TZXJ2aWNlLFxuICBDb25maWd1cmF0aW9uU3RhdGVTZXJ2aWNlLFxuICBDb250ZXh0U2VydmljZSxcbiAgRGF0ZVBpcGUsXG4gIEZsb3dDb25maWd1cmF0aW9uU2VydmljZSxcbiAgRmxvd1N0YXRlQ29uZmlndXJhdGlvblNlcnZpY2UsXG4gIEZsb3dTdGF0ZVNlcnZpY2UsXG4gIEludGVncmF0aW9uU3RhdGUsXG4gIGxpbmVJdGVtVXRpbHMsXG4gIExpbmVJdGVtV29ya2VyLFxuICBOdW1iZXJQaXBlLFxuICBQcmljZVBpcGUsXG4gIFByb2R1Y3RJbWFnZXNTZXJ2aWNlLFxuICBRdW90ZURyYWZ0U2VydmljZSxcbiAgUnVudGltZVNldHRpbmdzU2VydmljZSxcbn0gZnJvbSAnQHZlbG9jZWFwcHMvc2RrL2NvcmUnO1xuaW1wb3J0IGxvZGFzaCBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0ICogYXMgcnhqcyBmcm9tICdyeGpzJztcbmltcG9ydCAqIGFzIHJ4anNPcGVyYXRvcnMgZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0ICogYXMgY21zQWN0aW9ucyBmcm9tICcuL2Ntcy5hY3Rpb25zJztcbmltcG9ydCAqIGFzIGNtc0luamVjdGlvblRva2VucyBmcm9tICcuL2luamVjdGlvbi10b2tlbnMnO1xuaW1wb3J0IHsgUmVzb3VyY2VzU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvcmVzb3VyY2VzLnNlcnZpY2UnO1xuaW1wb3J0IHsgVGVtcGxhdGVzU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvdGVtcGxhdGVzLnNlcnZpY2UnO1xuaW1wb3J0IHsgY21zSW5qZWN0IH0gZnJvbSAnLi91dGlscy9pbmplY3QnO1xuXG5jb25zdCBWRUxPQ0VfTElCUyA9IHtcbiAgJ0B2ZWxvY2VhcHBzL2NvcmUnOiB7XG4gICAgaXNEZWZpbmVkLFxuICAgIE9wZXJhdG9yLFxuICAgIFByZWRpY2F0ZSxcbiAgICBwYXJzZUpzb25TYWZlbHksXG4gICAgQ29uZmlndXJhdGlvbkNvbnRleHRNb2RlLFxuICB9LFxuICAnQHZlbG9jZWFwcHMvY29tcG9uZW50cyc6IHtcbiAgICBUb2FzdFNlcnZpY2UsXG4gICAgVG9hc3RUeXBlLFxuICB9LFxuICAnQHZlbG9jZWFwcHMvYXBpJzoge1xuICAgIFNhbGVzZm9yY2VBcGlTZXJ2aWNlLFxuICAgIFF1b3RlQXBpU2VydmljZSxcbiAgICBEb2N1bWVudFRlbXBsYXRlc0FwaVNlcnZpY2UsXG4gICAgRG9jdW1lbnRBdHRhY2htZW50QXBpU2VydmljZSxcbiAgICBSYW1wQXBpU2VydmljZSxcbiAgICBDYXRhbG9nQXBpU2VydmljZSxcbiAgICBEZWx0YUFwaVNlcnZpY2UsXG4gICAgUGlja2xpc3RzQXBpU2VydmljZSxcbiAgICBQcmljZUFwaVNlcnZpY2UsXG4gICAgU2hvcHBpbmdDYXJ0U2V0dGluZ3NBcGlTZXJ2aWNlLFxuICAgIENvbmZpZ3VyYXRpb25TZXR0aW5nc0FwaVNlcnZpY2UsXG4gICAgR3VpZGVkU2VsbGluZ0FwaVNlcnZpY2UsXG4gICAgQ29udHJhY3RlZFByaWNlQXBpU2VydmljZSxcbiAgfSxcbiAgJ0B2ZWxvY2VhcHBzL3Nkay9jb3JlJzoge1xuICAgIENvbmZpZ3VyYXRpb25TZXJ2aWNlLFxuICAgIENvbmZpZ3VyYXRpb25TdGF0ZVNlcnZpY2UsXG4gICAgUXVvdGVEcmFmdFNlcnZpY2UsXG4gICAgRmxvd0NvbmZpZ3VyYXRpb25TZXJ2aWNlLFxuICAgIEludGVncmF0aW9uU3RhdGUsXG4gICAgRmxvd1N0YXRlU2VydmljZSxcbiAgICBGbG93U3RhdGVDb25maWd1cmF0aW9uU2VydmljZSxcbiAgICBMaW5lSXRlbVdvcmtlcixcbiAgICBQcm9kdWN0SW1hZ2VzU2VydmljZSxcbiAgICBDb250ZXh0U2VydmljZSxcbiAgICBSdW50aW1lU2V0dGluZ3NTZXJ2aWNlLFxuICAgIEFjdGlvbkNvZGVQaXBlLFxuICAgIERhdGVQaXBlLFxuICAgIE51bWJlclBpcGUsXG4gICAgUHJpY2VQaXBlLFxuICAgIC4uLmxpbmVJdGVtVXRpbHMsXG4gIH0sXG4gICdAdmVsb2NlYXBwcy9zZGsvY21zJzoge1xuICAgIC4uLmNtc0luamVjdGlvblRva2VucyxcbiAgICAuLi5jbXNBY3Rpb25zLFxuICAgIFRlbXBsYXRlc1NlcnZpY2UsXG4gICAgSW50ZWdyYXRpb25TdGF0ZSxcbiAgICBSZXNvdXJjZXNTZXJ2aWNlLFxuICAgIGNtc0luamVjdCxcbiAgfSxcbn07XG5cbmNvbnN0IFZFTE9DRV9MSUJTX0JBQ0tXQVJEU19DT01QQVRJQkxFID0gT2JqZWN0LmVudHJpZXMoVkVMT0NFX0xJQlMpLnJlZHVjZShcbiAgKHRydW5rLCBba2V5LCB2YWx1ZV0pID0+ICh7IC4uLnRydW5rLCBba2V5LnJlcGxhY2UoJ0B2ZWxvY2VhcHBzLycsICdAdmVsb2NlLycpXTogdmFsdWUgfSksXG4gIHt9LFxuKTtcblxuZXhwb3J0IGNvbnN0IHZlbmRvck1hcCA9IHtcbiAgLi4uVkVMT0NFX0xJQlMsXG5cbiAgLy8gVE9ETzogcmVtb3ZlIHdoZW4gcHJvamVjdHMvZGVtb3MgYXJlIG1pZ3JhdGVkIHRvIEB2ZWxvY2VhcHBzIG9yZ2FuaXphdGlvbiBsaWJyYXJpZXNcbiAgLi4uVkVMT0NFX0xJQlNfQkFDS1dBUkRTX0NPTVBBVElCTEUsXG5cbiAgJ0Bhbmd1bGFyL2NvcmUnOiBhbmd1bGFyQ29yZSxcbiAgJ0Bhbmd1bGFyL2Zvcm1zJzogYW5ndWxhckZvcm1zLFxuICAnQGFuZ3VsYXIvY2RrL2NvbGxlY3Rpb25zJzoge1xuICAgIERhdGFTb3VyY2UsXG4gIH0sXG4gIHJ4anM6IHJ4anMsXG4gICdyeGpzL29wZXJhdG9ycyc6IHJ4anNPcGVyYXRvcnMsXG4gIGxvZGFzaDogbG9kYXNoLFxufTtcblxuZXhwb3J0IHR5cGUgVmVuZG9yTWFwID0gdHlwZW9mIHZlbmRvck1hcDtcbiJdfQ==
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVuZG9yLW1hcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2Ntcy92ZW5kb3ItbWFwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN0RCxPQUFPLEtBQUssV0FBVyxNQUFNLGVBQWUsQ0FBQztBQUM3QyxPQUFPLEtBQUssWUFBWSxNQUFNLGdCQUFnQixDQUFDO0FBQy9DLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsK0JBQStCLEVBQy9CLHlCQUF5QixFQUN6QixlQUFlLEVBQ2YsNEJBQTRCLEVBQzVCLDJCQUEyQixFQUMzQix1QkFBdUIsRUFDdkIsbUJBQW1CLEVBQ25CLGVBQWUsRUFDZixlQUFlLEVBQ2YsY0FBYyxFQUNkLG9CQUFvQixFQUNwQiw4QkFBOEIsR0FDL0IsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDdkgsT0FBTyxFQUNMLGNBQWMsRUFDZCxvQkFBb0IsRUFDcEIseUJBQXlCLEVBQ3pCLGNBQWMsRUFDZCxRQUFRLEVBQ1Isd0JBQXdCLEVBQ3hCLDZCQUE2QixFQUM3QixnQkFBZ0IsRUFDaEIsZ0JBQWdCLEVBQ2hCLGNBQWMsRUFDZCxVQUFVLEVBQ1YsU0FBUyxFQUNULG9CQUFvQixFQUNwQixpQkFBaUIsRUFDakIsc0JBQXNCLEVBQ3RCLGFBQWEsR0FDZCxNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUM1QixPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEtBQUssYUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hELE9BQU8sS0FBSyxVQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sS0FBSyxrQkFBa0IsTUFBTSxvQkFBb0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsTUFBTSxXQUFXLEdBQUc7SUFDbEIsa0JBQWtCLEVBQUU7UUFDbEIsU0FBUztRQUNULFFBQVE7UUFDUixTQUFTO1FBQ1QsZUFBZTtRQUNmLHdCQUF3QjtRQUN4QixRQUFRO0tBQ1Q7SUFDRCx3QkFBd0IsRUFBRTtRQUN4QixZQUFZO1FBQ1osU0FBUztLQUNWO0lBQ0QsaUJBQWlCLEVBQUU7UUFDakIsb0JBQW9CO1FBQ3BCLGVBQWU7UUFDZiwyQkFBMkI7UUFDM0IsNEJBQTRCO1FBQzVCLGNBQWM7UUFDZCxpQkFBaUI7UUFDakIsZUFBZTtRQUNmLG1CQUFtQjtRQUNuQixlQUFlO1FBQ2YsOEJBQThCO1FBQzlCLCtCQUErQjtRQUMvQix1QkFBdUI7UUFDdkIseUJBQXlCO0tBQzFCO0lBQ0Qsc0JBQXNCLEVBQUU7UUFDdEIsb0JBQW9CO1FBQ3BCLHlCQUF5QjtRQUN6QixpQkFBaUI7UUFDakIsd0JBQXdCO1FBQ3hCLGdCQUFnQjtRQUNoQixnQkFBZ0I7UUFDaEIsNkJBQTZCO1FBQzdCLGNBQWM7UUFDZCxvQkFBb0I7UUFDcEIsY0FBYztRQUNkLHNCQUFzQjtRQUN0QixjQUFjO1FBQ2QsUUFBUTtRQUNSLFVBQVU7UUFDVixTQUFTO1FBQ1QsR0FBRyxhQUFhO0tBQ2pCO0lBQ0QscUJBQXFCLEVBQUU7UUFDckIsR0FBRyxrQkFBa0I7UUFDckIsR0FBRyxVQUFVO1FBQ2IsZ0JBQWdCO1FBQ2hCLGdCQUFnQjtRQUNoQixnQkFBZ0I7UUFDaEIsU0FBUztLQUNWO0NBQ0YsQ0FBQztBQUVGLE1BQU0sZ0NBQWdDLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQyxNQUFNLENBQ3pFLENBQUMsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRSxVQUFVLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQ3pGLEVBQUUsQ0FDSCxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHO0lBQ3ZCLEdBQUcsV0FBVztJQUVkLHNGQUFzRjtJQUN0RixHQUFHLGdDQUFnQztJQUVuQyxlQUFlLEVBQUUsV0FBVztJQUM1QixnQkFBZ0IsRUFBRSxZQUFZO0lBQzlCLDBCQUEwQixFQUFFO1FBQzFCLFVBQVU7S0FDWDtJQUNELElBQUksRUFBRSxJQUFJO0lBQ1YsZ0JBQWdCLEVBQUUsYUFBYTtJQUMvQixNQUFNLEVBQUUsTUFBTTtDQUNmLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRhU291cmNlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvbGxlY3Rpb25zJztcbmltcG9ydCAqIGFzIGFuZ3VsYXJDb3JlIGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0ICogYXMgYW5ndWxhckZvcm1zIGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gIENhdGFsb2dBcGlTZXJ2aWNlLFxuICBDb25maWd1cmF0aW9uU2V0dGluZ3NBcGlTZXJ2aWNlLFxuICBDb250cmFjdGVkUHJpY2VBcGlTZXJ2aWNlLFxuICBEZWx0YUFwaVNlcnZpY2UsXG4gIERvY3VtZW50QXR0YWNobWVudEFwaVNlcnZpY2UsXG4gIERvY3VtZW50VGVtcGxhdGVzQXBpU2VydmljZSxcbiAgR3VpZGVkU2VsbGluZ0FwaVNlcnZpY2UsXG4gIFBpY2tsaXN0c0FwaVNlcnZpY2UsXG4gIFByaWNlQXBpU2VydmljZSxcbiAgUXVvdGVBcGlTZXJ2aWNlLFxuICBSYW1wQXBpU2VydmljZSxcbiAgU2FsZXNmb3JjZUFwaVNlcnZpY2UsXG4gIFNob3BwaW5nQ2FydFNldHRpbmdzQXBpU2VydmljZSxcbn0gZnJvbSAnQHZlbG9jZWFwcHMvYXBpJztcbmltcG9ydCB7IFRvYXN0U2VydmljZSwgVG9hc3RUeXBlIH0gZnJvbSAnQHZlbG9jZWFwcHMvY29tcG9uZW50cyc7XG5pbXBvcnQgeyBDb25maWd1cmF0aW9uQ29udGV4dE1vZGUsIE9wZXJhdG9yLCBQcmVkaWNhdGUsIGlzRGVmaW5lZCwgcGFyc2VKc29uU2FmZWx5LCBwYXJzZUp3dCB9IGZyb20gJ0B2ZWxvY2VhcHBzL2NvcmUnO1xuaW1wb3J0IHtcbiAgQWN0aW9uQ29kZVBpcGUsXG4gIENvbmZpZ3VyYXRpb25TZXJ2aWNlLFxuICBDb25maWd1cmF0aW9uU3RhdGVTZXJ2aWNlLFxuICBDb250ZXh0U2VydmljZSxcbiAgRGF0ZVBpcGUsXG4gIEZsb3dDb25maWd1cmF0aW9uU2VydmljZSxcbiAgRmxvd1N0YXRlQ29uZmlndXJhdGlvblNlcnZpY2UsXG4gIEZsb3dTdGF0ZVNlcnZpY2UsXG4gIEludGVncmF0aW9uU3RhdGUsXG4gIExpbmVJdGVtV29ya2VyLFxuICBOdW1iZXJQaXBlLFxuICBQcmljZVBpcGUsXG4gIFByb2R1Y3RJbWFnZXNTZXJ2aWNlLFxuICBRdW90ZURyYWZ0U2VydmljZSxcbiAgUnVudGltZVNldHRpbmdzU2VydmljZSxcbiAgbGluZUl0ZW1VdGlscyxcbn0gZnJvbSAnQHZlbG9jZWFwcHMvc2RrL2NvcmUnO1xuaW1wb3J0IGxvZGFzaCBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0ICogYXMgcnhqcyBmcm9tICdyeGpzJztcbmltcG9ydCAqIGFzIHJ4anNPcGVyYXRvcnMgZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0ICogYXMgY21zQWN0aW9ucyBmcm9tICcuL2Ntcy5hY3Rpb25zJztcbmltcG9ydCAqIGFzIGNtc0luamVjdGlvblRva2VucyBmcm9tICcuL2luamVjdGlvbi10b2tlbnMnO1xuaW1wb3J0IHsgUmVzb3VyY2VzU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvcmVzb3VyY2VzLnNlcnZpY2UnO1xuaW1wb3J0IHsgVGVtcGxhdGVzU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvdGVtcGxhdGVzLnNlcnZpY2UnO1xuaW1wb3J0IHsgY21zSW5qZWN0IH0gZnJvbSAnLi91dGlscy9pbmplY3QnO1xuXG5jb25zdCBWRUxPQ0VfTElCUyA9IHtcbiAgJ0B2ZWxvY2VhcHBzL2NvcmUnOiB7XG4gICAgaXNEZWZpbmVkLFxuICAgIE9wZXJhdG9yLFxuICAgIFByZWRpY2F0ZSxcbiAgICBwYXJzZUpzb25TYWZlbHksXG4gICAgQ29uZmlndXJhdGlvbkNvbnRleHRNb2RlLFxuICAgIHBhcnNlSnd0LFxuICB9LFxuICAnQHZlbG9jZWFwcHMvY29tcG9uZW50cyc6IHtcbiAgICBUb2FzdFNlcnZpY2UsXG4gICAgVG9hc3RUeXBlLFxuICB9LFxuICAnQHZlbG9jZWFwcHMvYXBpJzoge1xuICAgIFNhbGVzZm9yY2VBcGlTZXJ2aWNlLFxuICAgIFF1b3RlQXBpU2VydmljZSxcbiAgICBEb2N1bWVudFRlbXBsYXRlc0FwaVNlcnZpY2UsXG4gICAgRG9jdW1lbnRBdHRhY2htZW50QXBpU2VydmljZSxcbiAgICBSYW1wQXBpU2VydmljZSxcbiAgICBDYXRhbG9nQXBpU2VydmljZSxcbiAgICBEZWx0YUFwaVNlcnZpY2UsXG4gICAgUGlja2xpc3RzQXBpU2VydmljZSxcbiAgICBQcmljZUFwaVNlcnZpY2UsXG4gICAgU2hvcHBpbmdDYXJ0U2V0dGluZ3NBcGlTZXJ2aWNlLFxuICAgIENvbmZpZ3VyYXRpb25TZXR0aW5nc0FwaVNlcnZpY2UsXG4gICAgR3VpZGVkU2VsbGluZ0FwaVNlcnZpY2UsXG4gICAgQ29udHJhY3RlZFByaWNlQXBpU2VydmljZSxcbiAgfSxcbiAgJ0B2ZWxvY2VhcHBzL3Nkay9jb3JlJzoge1xuICAgIENvbmZpZ3VyYXRpb25TZXJ2aWNlLFxuICAgIENvbmZpZ3VyYXRpb25TdGF0ZVNlcnZpY2UsXG4gICAgUXVvdGVEcmFmdFNlcnZpY2UsXG4gICAgRmxvd0NvbmZpZ3VyYXRpb25TZXJ2aWNlLFxuICAgIEludGVncmF0aW9uU3RhdGUsXG4gICAgRmxvd1N0YXRlU2VydmljZSxcbiAgICBGbG93U3RhdGVDb25maWd1cmF0aW9uU2VydmljZSxcbiAgICBMaW5lSXRlbVdvcmtlcixcbiAgICBQcm9kdWN0SW1hZ2VzU2VydmljZSxcbiAgICBDb250ZXh0U2VydmljZSxcbiAgICBSdW50aW1lU2V0dGluZ3NTZXJ2aWNlLFxuICAgIEFjdGlvbkNvZGVQaXBlLFxuICAgIERhdGVQaXBlLFxuICAgIE51bWJlclBpcGUsXG4gICAgUHJpY2VQaXBlLFxuICAgIC4uLmxpbmVJdGVtVXRpbHMsXG4gIH0sXG4gICdAdmVsb2NlYXBwcy9zZGsvY21zJzoge1xuICAgIC4uLmNtc0luamVjdGlvblRva2VucyxcbiAgICAuLi5jbXNBY3Rpb25zLFxuICAgIFRlbXBsYXRlc1NlcnZpY2UsXG4gICAgSW50ZWdyYXRpb25TdGF0ZSxcbiAgICBSZXNvdXJjZXNTZXJ2aWNlLFxuICAgIGNtc0luamVjdCxcbiAgfSxcbn07XG5cbmNvbnN0IFZFTE9DRV9MSUJTX0JBQ0tXQVJEU19DT01QQVRJQkxFID0gT2JqZWN0LmVudHJpZXMoVkVMT0NFX0xJQlMpLnJlZHVjZShcbiAgKHRydW5rLCBba2V5LCB2YWx1ZV0pID0+ICh7IC4uLnRydW5rLCBba2V5LnJlcGxhY2UoJ0B2ZWxvY2VhcHBzLycsICdAdmVsb2NlLycpXTogdmFsdWUgfSksXG4gIHt9LFxuKTtcblxuZXhwb3J0IGNvbnN0IHZlbmRvck1hcCA9IHtcbiAgLi4uVkVMT0NFX0xJQlMsXG5cbiAgLy8gVE9ETzogcmVtb3ZlIHdoZW4gcHJvamVjdHMvZGVtb3MgYXJlIG1pZ3JhdGVkIHRvIEB2ZWxvY2VhcHBzIG9yZ2FuaXphdGlvbiBsaWJyYXJpZXNcbiAgLi4uVkVMT0NFX0xJQlNfQkFDS1dBUkRTX0NPTVBBVElCTEUsXG5cbiAgJ0Bhbmd1bGFyL2NvcmUnOiBhbmd1bGFyQ29yZSxcbiAgJ0Bhbmd1bGFyL2Zvcm1zJzogYW5ndWxhckZvcm1zLFxuICAnQGFuZ3VsYXIvY2RrL2NvbGxlY3Rpb25zJzoge1xuICAgIERhdGFTb3VyY2UsXG4gIH0sXG4gIHJ4anM6IHJ4anMsXG4gICdyeGpzL29wZXJhdG9ycyc6IHJ4anNPcGVyYXRvcnMsXG4gIGxvZGFzaDogbG9kYXNoLFxufTtcblxuZXhwb3J0IHR5cGUgVmVuZG9yTWFwID0gdHlwZW9mIHZlbmRvck1hcDtcbiJdfQ==
@@ -7,24 +7,27 @@ import { QuoteDraftService } from '../../../services/quote-draft.service';
7
7
  import { multiplyLineItems } from '../../../utils/line-item.utils';
8
8
  import { ConfigurationService } from '../../configuration/services/configuration.service';
9
9
  import { FlowUpdateService } from './flow-update.service';
10
+ import { FlowInfoService } from '../../../services';
10
11
  import * as i0 from "@angular/core";
11
12
  import * as i1 from "@veloceapps/api";
12
13
  import * as i2 from "../../../services/context.service";
13
14
  import * as i3 from "../../../services/quote-draft.service";
14
15
  import * as i4 from "./flow-update.service";
15
16
  import * as i5 from "../../configuration/services/configuration.service";
17
+ import * as i6 from "../../../services";
16
18
  export class FlowConfigurationService {
17
- constructor(proceduresApiService, contextService, quoteDraftService, updateService, configurationService) {
19
+ constructor(proceduresApiService, contextService, quoteDraftService, updateService, configurationService, flowInfoService) {
18
20
  this.proceduresApiService = proceduresApiService;
19
21
  this.contextService = contextService;
20
22
  this.quoteDraftService = quoteDraftService;
21
23
  this.updateService = updateService;
22
24
  this.configurationService = configurationService;
25
+ this.flowInfoService = flowInfoService;
23
26
  this.updatedSubj$ = new Subject();
24
27
  this.updated$ = this.updatedSubj$.asObservable();
25
28
  }
26
29
  calculate$(quoteDraft) {
27
- return this.proceduresApiService.apply$(quoteDraft).pipe(tap(result => {
30
+ return this.extendedApply$(quoteDraft).pipe(tap(result => {
28
31
  // sort the result current state based on the quote draft initial state
29
32
  const initialStateIds = quoteDraft.initialState.map(lineItem => lineItem.integrationId);
30
33
  result.currentState = result.currentState
@@ -144,10 +147,18 @@ export class FlowConfigurationService {
144
147
  }));
145
148
  };
146
149
  }
150
+ extendedApply$(quoteDraft) {
151
+ const request = { ...quoteDraft };
152
+ const procedureName = this.flowInfoService.flow?.properties.procedureName;
153
+ if (procedureName) {
154
+ request.procedureName = procedureName;
155
+ }
156
+ return this.proceduresApiService.apply$(request);
157
+ }
147
158
  }
148
- FlowConfigurationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FlowConfigurationService, deps: [{ token: i1.ProceduresApiService }, { token: i2.ContextService }, { token: i3.QuoteDraftService }, { token: i4.FlowUpdateService }, { token: i5.ConfigurationService }], target: i0.ɵɵFactoryTarget.Injectable });
159
+ FlowConfigurationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FlowConfigurationService, deps: [{ token: i1.ProceduresApiService }, { token: i2.ContextService }, { token: i3.QuoteDraftService }, { token: i4.FlowUpdateService }, { token: i5.ConfigurationService }, { token: i6.FlowInfoService }], target: i0.ɵɵFactoryTarget.Injectable });
149
160
  FlowConfigurationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FlowConfigurationService });
150
161
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FlowConfigurationService, decorators: [{
151
162
  type: Injectable
152
- }], ctorParameters: function () { return [{ type: i1.ProceduresApiService }, { type: i2.ContextService }, { type: i3.QuoteDraftService }, { type: i4.FlowUpdateService }, { type: i5.ConfigurationService }]; } });
153
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvdy1jb25maWd1cmF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9jb3JlL21vZHVsZXMvZmxvdy1jb25maWd1cmF0aW9uL3NlcnZpY2VzL2Zsb3ctY29uZmlndXJhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFdkQsT0FBTyxFQUFFLFNBQVMsRUFBYyxNQUFNLFFBQVEsQ0FBQztBQUMvQyxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQWMsRUFBRSxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0csT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRW5FLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBRTFGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7O0FBRzFELE1BQU0sT0FBTyx3QkFBd0I7SUFRbkMsWUFDVSxvQkFBMEMsRUFDMUMsY0FBOEIsRUFDOUIsaUJBQW9DLEVBQ3BDLGFBQWdDLEVBQ2hDLG9CQUEwQztRQUoxQyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBQzFDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLGtCQUFhLEdBQWIsYUFBYSxDQUFtQjtRQUNo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RUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2pDLENBQUMsQ0FBQyxDQUNILENBQUM7UUFDSixDQUFDLENBQUM7SUFDSixDQUFDOztxSEF0TlUsd0JBQXdCO3lIQUF4Qix3QkFBd0I7MkZBQXhCLHdCQUF3QjtrQkFEcEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFByb2NlZHVyZXNBcGlTZXJ2aWNlIH0gZnJvbSAnQHZlbG9jZWFwcHMvYXBpJztcbmltcG9ydCB7IENoYXJnZSwgQ29tcGlsZWRQcmljZVBsYW4sIENvbmZpZ3VyYXRpb25Db250ZXh0LCBMaW5lSXRlbSwgTWV0cmljUnVsZSwgUXVvdGVEcmFmdCB9IGZyb20gJ0B2ZWxvY2VhcHBzL2NvcmUnO1xuaW1wb3J0IHsgY2xvbmVEZWVwLCBEaWN0aW9uYXJ5IH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCwgbm9vcCwgT2JzZXJ2YWJsZSwgb2YsIHNoYXJlUmVwbGF5LCBTdWJqZWN0LCBzd2l0Y2hNYXAsIHRhcCwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ29udGV4dFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9jb250ZXh0LnNlcnZpY2UnO1xuaW1wb3J0IHsgUXVvdGVEcmFmdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9xdW90ZS1kcmFmdC5zZXJ2aWNlJztcbmltcG9ydCB7IG11bHRpcGx5TGluZUl0ZW1zIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvbGluZS1pdGVtLnV0aWxzJztcbmltcG9ydCB7IEV4dGVybmFsQ29uZmlndXJhdGlvblByb3BzIH0gZnJvbSAnLi4vLi4vY29uZmlndXJhdGlvbic7XG5pbXBvcnQgeyBDb25maWd1cmF0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL2NvbmZpZ3VyYXRpb24vc2VydmljZXMvY29uZmlndXJhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IEZsb3dVcGRhdGVQYXJhbXMgfSBmcm9tICcuLi90eXBlcy91cGRhdGUudHlwZXMnO1xuaW1wb3J0IHsgRmxvd1VwZGF0ZVNlcnZpY2UgfSBmcm9tICcuL2Zsb3ctdXBkYXRlLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRmxvd0NvbmZpZ3VyYXRpb25TZXJ2aWNlIHtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGJlaW5nIGZpcmVkIHdoZW4gUXVvdGVEcmFmdCB3YXMgdXBkYXRlZFxuICAgKi9cbiAgcHVibGljIHVwZGF0ZWQkOiBPYnNlcnZhYmxlPHZvaWQ+O1xuXG4gIHByaXZhdGUgdXBkYXRlZFN1YmokID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHByb2NlZHVyZXNBcGlTZXJ2aWNlOiBQcm9jZWR1cmVzQXBpU2VydmljZSxcbiAgICBwcml2YXRlIGNvbnRleHRTZXJ2aWNlOiBDb250ZXh0U2VydmljZSxcbiAgICBwcml2YXRlIHF1b3RlRHJhZnRTZXJ2aWNlOiBRdW90ZURyYWZ0U2VydmljZSxcbiAgICBwcml2YXRlIHVwZGF0ZVNlcnZpY2U6IEZsb3dVcGRhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29uZmlndXJhdGlvblNlcnZpY2U6IENvbmZpZ3VyYXRpb25TZXJ2aWNlLFxuICApIHtcbiAgICB0aGlzLnVwZGF0ZWQkID0gdGhpcy51cGRhdGVkU3ViaiQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgY2FsY3VsYXRlJChxdW90ZURyYWZ0OiBRdW90ZURyYWZ0KTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMucHJvY2VkdXJlc0FwaVNlcnZpY2UuYXBwbHkkKHF1b3RlRHJhZnQpLnBpcGUoXG4gICAgICB0YXAocmVzdWx0ID0+IHtcbiAgICAgICAgLy8gc29ydCB0aGUgcmVzdWx0IGN1cnJlbnQgc3RhdGUgYmFzZWQgb24gdGhlIHF1b3RlIGRyYWZ0IGluaXRpYWwgc3RhdGVcbiAgICAgICAgY29uc3QgaW5pdGlhbFN0YXRlSWRzID0gcXVvdGVEcmFmdC5pbml0aWFsU3RhdGUubWFwKGxpbmVJdGVtID0+IGxpbmVJdGVtLmludGVncmF0aW9uSWQpO1xuICAgICAgICByZXN1bHQuY3VycmVudFN0YXRlID0gcmVzdWx0LmN1cnJlbnRTdGF0ZVxuICAgICAgICAgIC5zbGljZSgpXG4gICAgICAgICAgLnNvcnQoKGEsIGIpID0+IGluaXRpYWxTdGF0ZUlkcy5pbmRleE9mKGEuaW50ZWdyYXRpb25JZCkgLSBpbml0aWFsU3RhdGVJZHMuaW5kZXhPZihiLmludGVncmF0aW9uSWQpKTtcbiAgICAgICAgdGhpcy5xdW90ZURyYWZ0U2VydmljZS51cGRhdGVRdW90ZURyYWZ0KHJlc3VsdCk7XG4gICAgICB9KSxcbiAgICAgIG1hcChub29wKSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGNhbGN1bGF0ZShxdW90ZURyYWZ0OiBRdW90ZURyYWZ0KTogdm9pZCB7XG4gICAgdGhpcy5jYWxjdWxhdGUkKHF1b3RlRHJhZnQpLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZSQodXBkYXRlczogRmxvd1VwZGF0ZVBhcmFtc1tdKTogT2JzZXJ2YWJsZTxRdW90ZURyYWZ0IHwgbnVsbD4ge1xuICAgIGNvbnN0IHF1b3RlRHJhZnQgPSB0aGlzLnF1b3RlRHJhZnRTZXJ2aWNlLnF1b3RlRHJhZnQ7XG5cbiAgICBpZiAoIXF1b3RlRHJhZnQpIHtcbiAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICB9XG5cbiAgICByZXR1cm4gb2YoW10pLnBpcGUoXG4gICAgICBtYXAoKCkgPT4ge1xuICAgICAgICBjb25zdCB1cGRhdGVkU3RhdGUgPSBjbG9uZURlZXAocXVvdGVEcmFmdC5jdXJyZW50U3RhdGUpO1xuICAgICAgICB0aGlzLnVwZGF0ZVNlcnZpY2UudXBkYXRlKHVwZGF0ZWRTdGF0ZSwgdXBkYXRlcywgcXVvdGVEcmFmdC5jaGFyZ2VzKTtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZWRTdGF0ZTtcbiAgICAgIH0pLFxuICAgICAgc3dpdGNoTWFwKHVwZGF0ZWRTdGF0ZSA9PiB0aGlzLmNhbGN1bGF0ZSQoeyAuLi5xdW90ZURyYWZ0LCBjdXJyZW50U3RhdGU6IHVwZGF0ZWRTdGF0ZSB9KSksXG4gICAgICBtYXAoKCkgPT4gdGhpcy5xdW90ZURyYWZ0U2VydmljZS5xdW90ZURyYWZ0KSxcbiAgICAgIHRhcCgoKSA9PiB0aGlzLnVwZGF0ZWRTdWJqJC5uZXh0KCkpLFxuICAgICAgdGhpcy5oYW5kbGVFcnJvckFuZEJvdW5jZUJhY2soKSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZSh1cGRhdGVzOiBGbG93VXBkYXRlUGFyYW1zW10pOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZSQodXBkYXRlcykuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwdWJsaWMgcmV2ZXJ0JChsaW5lSXRlbUlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFF1b3RlRHJhZnQgfCBudWxsPiB7XG4gICAgY29uc3QgcXVvdGVEcmFmdCA9IHRoaXMucXVvdGVEcmFmdFNlcnZpY2UucXVvdGVEcmFmdDtcbiAgICBjb25zdCBpbml0aWFsQ3VycmVudFN0YXRlID0gdGhpcy5xdW90ZURyYWZ0U2VydmljZS5nZXRJbml0aWFsQ3VycmVudFN0YXRlKCk7XG4gICAgY29uc3QgY3VycmVudFN0YXRlID0gdGhpcy5xdW90ZURyYWZ0U2VydmljZS5jdXJyZW50U3RhdGU7XG5cbiAgICBjb25zdCBjdXJyZW50TGluZUl0ZW1JbmRleCA9IGN1cnJlbnRTdGF0ZS5maW5kSW5kZXgoKHsgaWQgfSkgPT4gaWQgPT09IGxpbmVJdGVtSWQpO1xuICAgIGNvbnN0IGN1cnJlbnRMaW5lSXRlbSA9IGN1cnJlbnRTdGF0ZVtjdXJyZW50TGluZUl0ZW1JbmRleF07XG5cbiAgICBjb25zdCBpbml0aWFsTGluZUl0ZW0gPSBpbml0aWFsQ3VycmVudFN0YXRlLmZpbmQoXG4gICAgICAoeyBpbnRlZ3JhdGlvbklkIH0pID0+IGludGVncmF0aW9uSWQgPT09IGN1cnJlbnRMaW5lSXRlbT8uaW50ZWdyYXRpb25JZCxcbiAgICApO1xuXG4gICAgaWYgKCFxdW90ZURyYWZ0IHx8ICFjdXJyZW50TGluZUl0ZW0gfHwgIWluaXRpYWxMaW5lSXRlbSkge1xuICAgICAgcmV0dXJuIG9mKG51bGwpO1xuICAgIH1cblxuICAgIGNvbnN0IHVwZGF0ZWRTdGF0ZSA9IGNsb25lRGVlcChjdXJyZW50U3RhdGUpO1xuICAgIHVwZGF0ZWRTdGF0ZS5zcGxpY2UoY3VycmVudExpbmVJdGVtSW5kZXgsIDEsIGluaXRpYWxMaW5lSXRlbSk7XG5cbiAgICByZXR1cm4gb2YoW10pLnBpcGUoXG4gICAgICB0YXAoKCkgPT4ge1xuICAgICAgICB0aGlzLnF1b3RlRHJhZnRTZXJ2aWNlLnNldEN1cnJlbnRMaW5lSXRlbVN0YXRlKHVwZGF0ZWRTdGF0ZSk7XG4gICAgICB9KSxcbiAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLmNhbGN1bGF0ZSQoeyAuLi5xdW90ZURyYWZ0LCBjdXJyZW50U3RhdGU6IHVwZGF0ZWRTdGF0ZSB9KSksXG4gICAgICBtYXAoKCkgPT4gdGhpcy5xdW90ZURyYWZ0U2VydmljZS5xdW90ZURyYWZ0KSxcbiAgICAgIHRhcCgoKSA9PiB0aGlzLnVwZGF0ZWRTdWJqJC5uZXh0KCkpLFxuICAgICAgdGhpcy5oYW5kbGVFcnJvckFuZEJvdW5jZUJhY2soKSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHJldmVydChsaW5lSXRlbUlkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnJldmVydCQobGluZUl0ZW1JZCkuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwdWJsaWMgZGVsZXRlJChpZHM6IHN0cmluZ1tdKTogT2JzZXJ2YWJsZTxRdW90ZURyYWZ0IHwgbnVsbD4ge1xuICAgIGNvbnN0IHF1b3RlRHJhZnQgPSB0aGlzLnF1b3RlRHJhZnRTZXJ2aWNlLnF1b3RlRHJhZnQ7XG4gICAgY29uc3QgY3VycmVudFN0YXRlID0gdGhpcy5xdW90ZURyYWZ0U2VydmljZS5jdXJyZW50U3RhdGU7XG5cbiAgICBpZiAoIXF1b3RlRHJhZnQpIHtcbiAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICB9XG5cbiAgICByZXR1cm4gb2YoW10pLnBpcGUoXG4gICAgICBtYXAoKCkgPT4gaWRzLnJlZHVjZSgocmVzdWx0LCBpZCkgPT4gdGhpcy51cGRhdGVTZXJ2aWNlLmRlbGV0ZShyZXN1bHQsIGlkKSwgY3VycmVudFN0YXRlKSksXG4gICAgICBzd2l0Y2hNYXAodXBkYXRlZFN0YXRlID0+IHRoaXMuY2FsY3VsYXRlJCh7IC4uLnF1b3RlRHJhZnQsIGN1cnJlbnRTdGF0ZTogdXBkYXRlZFN0YXRlIH0pKSxcbiAgICAgIG1hcCgoKSA9PiB0aGlzLnF1b3RlRHJhZnRTZXJ2aWNlLnF1b3RlRHJhZnQpLFxuICAgICAgdGFwKCgpID0+IHRoaXMudXBkYXRlZFN1YmokLm5leHQoKSksXG4gICAgICB0aGlzLmhhbmRsZUVycm9yQW5kQm91bmNlQmFjaygpLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZGVsZXRlKGlkczogc3RyaW5nW10pOiB2b2lkIHtcbiAgICB0aGlzLmRlbGV0ZSQoaWRzKS5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRUZXJtJCh0ZXJtOiBMaW5lSXRlbSk6IE9ic2VydmFibGU8UXVvdGVEcmFmdCB8IG51bGw+IHtcbiAgICBjb25zdCBxdW90ZURyYWZ0ID0gdGhpcy5xdW90ZURyYWZ0U2VydmljZS5xdW90ZURyYWZ0O1xuXG4gICAgaWYgKCFxdW90ZURyYWZ0KSB7XG4gICAgICByZXR1cm4gb2YobnVsbCk7XG4gICAgfVxuXG4gICAgY29uc3QgdXBkYXRlZFN0YXRlID0gWy4uLnF1b3RlRHJhZnQuY3VycmVudFN0YXRlLCB0ZXJtXTtcblxuICAgIHJldHVybiBvZihbXSkucGlwZShcbiAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLmNhbGN1bGF0ZSQoeyAuLi5xdW90ZURyYWZ0LCBjdXJyZW50U3RhdGU6IHVwZGF0ZWRTdGF0ZSB9KSksXG4gICAgICBtYXAoKCkgPT4gdGhpcy5xdW90ZURyYWZ0U2VydmljZS5xdW90ZURyYWZ0KSxcbiAgICAgIHRhcCgoKSA9PiB0aGlzLnVwZGF0ZWRTdWJqJC5uZXh0KCkpLFxuICAgICAgdGhpcy5oYW5kbGVFcnJvckFuZEJvdW5jZUJhY2soKSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGFkZFRvQ2FydCQocHJvcHM6IEV4dGVybmFsQ29uZmlndXJhdGlvblByb3BzKTogT2JzZXJ2YWJsZTxRdW90ZURyYWZ0IHwgbnVsbD4ge1xuICAgIGNvbnN0IHF1b3RlRHJhZnQgPSB0aGlzLnF1b3RlRHJhZnRTZXJ2aWNlLnF1b3RlRHJhZnQ7XG5cbiAgICBpZiAoIXF1b3RlRHJhZnQpIHtcbiAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5jb25maWd1cmF0aW9uU2VydmljZS5jb25maWd1cmVFeHRlcm5hbCQocHJvcHMpLnBpcGUoXG4gICAgICBtYXAobGluZUl0ZW0gPT4ge1xuICAgICAgICBjb25zdCBtb2RlbCA9IHRoaXMuY29uZmlndXJhdGlvblNlcnZpY2UuZ2V0UnVudGltZU1vZGVsKCk7XG4gICAgICAgIGNvbnN0IHNwbGl0ID0gbW9kZWw/LnR5cGVzLmZpbmQodHlwZSA9PiB0eXBlLm5hbWUgPT09IGxpbmVJdGVtLnR5cGUpPy5zcGxpdCA/PyBmYWxzZTtcbiAgICAgICAgY29uc3QgbGluZUl0ZW1zID0gbXVsdGlwbHlMaW5lSXRlbXMobGluZUl0ZW0sIHByb3BzLnF0eSA/PyAxLCBzcGxpdCk7XG5cbiAgICAgICAgcmV0dXJuIFsuLi5xdW90ZURyYWZ0LmN1cnJlbnRTdGF0ZSwgLi4ubGluZUl0ZW1zXTtcbiAgICAgIH0pLFxuICAgICAgc3dpdGNoTWFwKHVwZGF0ZWRTdGF0ZSA9PiB0aGlzLmNhbGN1bGF0ZSQoeyAuLi5xdW90ZURyYWZ0LCBjdXJyZW50U3RhdGU6IHVwZGF0ZWRTdGF0ZSB9KSksXG4gICAgICBtYXAoKCkgPT4gdGhpcy5xdW90ZURyYWZ0U2VydmljZS5xdW90ZURyYWZ0KSxcbiAgICAgIHRhcCgoKSA9PiB0aGlzLnVwZGF0ZWRTdWJqJC5uZXh0KCkpLFxuICAgICAgdGhpcy5oYW5kbGVFcnJvckFuZEJvdW5jZUJhY2soKSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldCgpOiBPYnNlcnZhYmxlPExpbmVJdGVtW10+IHtcbiAgICByZXR1cm4gdGhpcy5xdW90ZURyYWZ0U2VydmljZS5xdW90ZURyYWZ0JC5waXBlKFxuICAgICAgbWFwKCgpID0+IHRoaXMucXVvdGVEcmFmdFNlcnZpY2UuY3VycmVudFN0YXRlKSxcbiAgICAgIHNoYXJlUmVwbGF5KCksXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRTbmFwc2hvdCgpOiBMaW5lSXRlbVtdIHtcbiAgICByZXR1cm4gdGhpcy5xdW90ZURyYWZ0U2VydmljZT8uY3VycmVudFN0YXRlLnNsaWNlKCkgPz8gW107XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNoYXJnZXMkKCk6IE9ic2VydmFibGU8RGljdGlvbmFyeTxDaGFyZ2U+PiB7XG4gICAgcmV0dXJuIHRoaXMucXVvdGVEcmFmdFNlcnZpY2UucXVvdGVEcmFmdCQucGlwZShtYXAoKHsgY2hhcmdlcyB9KSA9PiBjaGFyZ2VzKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHByaWNlUGxhbnMkKCk6IE9ic2VydmFibGU8RGljdGlvbmFyeTxDb21waWxlZFByaWNlUGxhbj4+IHtcbiAgICByZXR1cm4gdGhpcy5xdW90ZURyYWZ0U2VydmljZS5xdW90ZURyYWZ0JC5waXBlKG1hcCgoeyBwcmljZVBsYW5zIH0pID0+IHByaWNlUGxhbnMpKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYWN0aXZlTWV0cmljcyQoKTogT2JzZXJ2YWJsZTxNZXRyaWNSdWxlW10+IHtcbiAgICByZXR1cm4gdGhpcy5xdW90ZURyYWZ0U2VydmljZS5xdW90ZURyYWZ0JC5waXBlKG1hcCgoeyBhY3RpdmVNZXRyaWNzIH0pID0+IGFjdGl2ZU1ldHJpY3MpKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY2hhcmdlc1NuYXBzaG90KCk6IERpY3Rpb25hcnk8Q2hhcmdlPiB7XG4gICAgcmV0dXJuIHRoaXMucXVvdGVEcmFmdFNlcnZpY2UucXVvdGVEcmFmdD8uY2hhcmdlcyA/PyB7fTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcHJpY2VQbGFuc1NuYXBzaG90KCk6IERpY3Rpb25hcnk8Q29tcGlsZWRQcmljZVBsYW4+IHtcbiAgICByZXR1cm4gdGhpcy5xdW90ZURyYWZ0U2VydmljZS5xdW90ZURyYWZ0Py5wcmljZVBsYW5zID8/IHt9O1xuICB9XG5cbiAgcHVibGljIGdldCBhY3RpdmVNZXRyaWNzU25hcHNob3QoKTogTWV0cmljUnVsZVtdIHtcbiAgICByZXR1cm4gdGhpcy5xdW90ZURyYWZ0U2VydmljZS5xdW90ZURyYWZ0Py5hY3RpdmVNZXRyaWNzID8/IFtdO1xuICB9XG5cbiAgcHVibGljIGdldCBjb250ZXh0U25hcHNob3QoKTogQ29uZmlndXJhdGlvbkNvbnRleHQge1xuICAgIHJldHVybiB0aGlzLmNvbnRleHRTZXJ2aWNlLnJlc29sdmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY29udGV4dCQoKTogT2JzZXJ2YWJsZTxDb25maWd1cmF0aW9uQ29udGV4dD4ge1xuICAgIHJldHVybiB0aGlzLmNvbnRleHRTZXJ2aWNlLnJlc29sdmUkKCk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUVycm9yQW5kQm91bmNlQmFjaygpIHtcbiAgICByZXR1cm4gPFQ+KHNvdXJjZSQ6IE9ic2VydmFibGU8VD4pOiBPYnNlcnZhYmxlPFQ+ID0+IHtcbiAgICAgIHJldHVybiBzb3VyY2UkLnBpcGUoXG4gICAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4ge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuXG4gICAgICAgICAgLy8gYm91bmNlIGJhY2sgaWYgY29uZmlndXJhdGlvbiBjYWxsIGhhcyBmYWlsZWRcbiAgICAgICAgICBjb25zdCBxdW90ZURyYWZ0ID0gdGhpcy5xdW90ZURyYWZ0U2VydmljZS5xdW90ZURyYWZ0O1xuICAgICAgICAgIGlmIChxdW90ZURyYWZ0KSB7XG4gICAgICAgICAgICB0aGlzLnF1b3RlRHJhZnRTZXJ2aWNlLnVwZGF0ZVF1b3RlRHJhZnQocXVvdGVEcmFmdCk7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZWRTdWJqJC5uZXh0KCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gZXJyb3IpO1xuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgfTtcbiAgfVxufVxuIl19
163
+ }], ctorParameters: function () { return [{ type: i1.ProceduresApiService }, { type: i2.ContextService }, { type: i3.QuoteDraftService }, { type: i4.FlowUpdateService }, { type: i5.ConfigurationService }, { type: i6.FlowInfoService }]; } });
164
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvdy1jb25maWd1cmF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9jb3JlL21vZHVsZXMvZmxvdy1jb25maWd1cmF0aW9uL3NlcnZpY2VzL2Zsb3ctY29uZmlndXJhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFdkQsT0FBTyxFQUFFLFNBQVMsRUFBYyxNQUFNLFFBQVEsQ0FBQztBQUMvQyxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQWMsRUFBRSxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0csT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRW5FLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBRTFGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7Ozs7Ozs7QUFHcEQsTUFBTSxPQUFPLHdCQUF3QjtJQVFuQyxZQUNVLG9CQUEwQyxFQUMxQyxjQUE4QixFQUM5QixpQkFBb0MsRUFDcEMsYUFBZ0MsRUFDaEMsb0JBQTBDLEVBQzFDLGVBQWdDO1FBTGhDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFDMUMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLHNC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Q3BELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7aUJBQzFCO2dCQUVELE9BQU8sVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2pDLENBQUMsQ0FBQyxDQUNILENBQUM7UUFDSixDQUFDLENBQUM7SUFDSixDQUFDO0lBRU8sY0FBYyxDQUFDLFVBQXNCO1FBQzNDLE1BQU0sT0FBTyxHQUFHLEVBQUUsR0FBRyxVQUFVLEVBQUUsQ0FBQztRQUNsQyxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsYUFBYSxDQUFDO1FBQzFFLElBQUksYUFBYSxFQUFFO1lBQ2pCLE9BQU8sQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO1NBQ3ZDO1FBQ0QsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ25ELENBQUM7O3FIQWhPVSx3QkFBd0I7eUhBQXhCLHdCQUF3QjsyRkFBeEIsd0JBQXdCO2tCQURwQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUHJvY2VkdXJlc0FwaVNlcnZpY2UgfSBmcm9tICdAdmVsb2NlYXBwcy9hcGknO1xuaW1wb3J0IHsgQ2hhcmdlLCBDb21waWxlZFByaWNlUGxhbiwgQ29uZmlndXJhdGlvbkNvbnRleHQsIExpbmVJdGVtLCBNZXRyaWNSdWxlLCBRdW90ZURyYWZ0IH0gZnJvbSAnQHZlbG9jZWFwcHMvY29yZSc7XG5pbXBvcnQgeyBjbG9uZURlZXAsIERpY3Rpb25hcnkgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwLCBub29wLCBPYnNlcnZhYmxlLCBvZiwgc2hhcmVSZXBsYXksIFN1YmplY3QsIHN3aXRjaE1hcCwgdGFwLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDb250ZXh0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2NvbnRleHQuc2VydmljZSc7XG5pbXBvcnQgeyBRdW90ZURyYWZ0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3F1b3RlLWRyYWZ0LnNlcnZpY2UnO1xuaW1wb3J0IHsgbXVsdGlwbHlMaW5lSXRlbXMgfSBmcm9tICcuLi8uLi8uLi91dGlscy9saW5lLWl0ZW0udXRpbHMnO1xuaW1wb3J0IHsgRXh0ZXJuYWxDb25maWd1cmF0aW9uUHJvcHMgfSBmcm9tICcuLi8uLi9jb25maWd1cmF0aW9uJztcbmltcG9ydCB7IENvbmZpZ3VyYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29uZmlndXJhdGlvbi9zZXJ2aWNlcy9jb25maWd1cmF0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgRmxvd1VwZGF0ZVBhcmFtcyB9IGZyb20gJy4uL3R5cGVzL3VwZGF0ZS50eXBlcyc7XG5pbXBvcnQgeyBGbG93VXBkYXRlU2VydmljZSB9IGZyb20gJy4vZmxvdy11cGRhdGUuc2VydmljZSc7XG5pbXBvcnQgeyBGbG93SW5mb1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBGbG93Q29uZmlndXJhdGlvblNlcnZpY2Uge1xuICAvKipcbiAgICogQW4gZXZlbnQgYmVpbmcgZmlyZWQgd2hlbiBRdW90ZURyYWZ0IHdhcyB1cGRhdGVkXG4gICAqL1xuICBwdWJsaWMgdXBkYXRlZCQ6IE9ic2VydmFibGU8dm9pZD47XG5cbiAgcHJpdmF0ZSB1cGRhdGVkU3ViaiQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcHJvY2VkdXJlc0FwaVNlcnZpY2U6IFByb2NlZHVyZXNBcGlTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29udGV4dFNlcnZpY2U6IENvbnRleHRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcXVvdGVEcmFmdFNlcnZpY2U6IFF1b3RlRHJhZnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgdXBkYXRlU2VydmljZTogRmxvd1VwZGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb25maWd1cmF0aW9uU2VydmljZTogQ29uZmlndXJhdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBmbG93SW5mb1NlcnZpY2U6IEZsb3dJbmZvU2VydmljZSxcbiAgKSB7XG4gICAgdGhpcy51cGRhdGVkJCA9IHRoaXMudXBkYXRlZFN1YmokLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGNhbGN1bGF0ZSQocXVvdGVEcmFmdDogUXVvdGVEcmFmdCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmV4dGVuZGVkQXBwbHkkKHF1b3RlRHJhZnQpLnBpcGUoXG4gICAgICB0YXAocmVzdWx0ID0+IHtcbiAgICAgICAgLy8gc29ydCB0aGUgcmVzdWx0IGN1cnJlbnQgc3RhdGUgYmFzZWQgb24gdGhlIHF1b3RlIGRyYWZ0IGluaXRpYWwgc3RhdGVcbiAgICAgICAgY29uc3QgaW5pdGlhbFN0YXRlSWRzID0gcXVvdGVEcmFmdC5pbml0aWFsU3RhdGUubWFwKGxpbmVJdGVtID0+IGxpbmVJdGVtLmludGVncmF0aW9uSWQpO1xuICAgICAgICByZXN1bHQuY3VycmVudFN0YXRlID0gcmVzdWx0LmN1cnJlbnRTdGF0ZVxuICAgICAgICAgIC5zbGljZSgpXG4gICAgICAgICAgLnNvcnQoKGEsIGIpID0+IGluaXRpYWxTdGF0ZUlkcy5pbmRleE9mKGEuaW50ZWdyYXRpb25JZCkgLSBpbml0aWFsU3RhdGVJZHMuaW5kZXhPZihiLmludGVncmF0aW9uSWQpKTtcbiAgICAgICAgdGhpcy5xdW90ZURyYWZ0U2VydmljZS51cGRhdGVRdW90ZURyYWZ0KHJlc3VsdCk7XG4gICAgICB9KSxcbiAgICAgIG1hcChub29wKSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGNhbGN1bGF0ZShxdW90ZURyYWZ0OiBRdW90ZURyYWZ0KTogdm9pZCB7XG4gICAgdGhpcy5jYWxjdWxhdGUkKHF1b3RlRHJhZnQpLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZSQodXBkYXRlczogRmxvd1VwZGF0ZVBhcmFtc1tdKTogT2JzZXJ2YWJsZTxRdW90ZURyYWZ0IHwgbnVsbD4ge1xuICAgIGNvbnN0IHF1b3RlRHJhZnQgPSB0aGlzLnF1b3RlRHJhZnRTZXJ2aWNlLnF1b3RlRHJhZnQ7XG5cbiAgICBpZiAoIXF1b3RlRHJhZnQpIHtcbiAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICB9XG5cbiAgICByZXR1cm4gb2YoW10pLnBpcGUoXG4gICAgICBtYXAoKCkgPT4ge1xuICAgICAgICBjb25zdCB1cGRhdGVkU3RhdGUgPSBjbG9uZURlZXAocXVvdGVEcmFmdC5jdXJyZW50U3RhdGUpO1xuICAgICAgICB0aGlzLnVwZGF0ZVNlcnZpY2UudXBkYXRlKHVwZGF0ZWRTdGF0ZSwgdXBkYXRlcywgcXVvdGVEcmFmdC5jaGFyZ2VzKTtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZWRTdGF0ZTtcbiAgICAgIH0pLFxuICAgICAgc3dpdGNoTWFwKHVwZGF0ZWRTdGF0ZSA9PiB0aGlzLmNhbGN1bGF0ZSQoeyAuLi5xdW90ZURyYWZ0LCBjdXJyZW50U3RhdGU6IHVwZGF0ZWRTdGF0ZSB9KSksXG4gICAgICBtYXAoKCkgPT4gdGhpcy5xdW90ZURyYWZ0U2VydmljZS5xdW90ZURyYWZ0KSxcbiAgICAgIHRhcCgoKSA9PiB0aGlzLnVwZGF0ZWRTdWJqJC5uZXh0KCkpLFxuICAgICAgdGhpcy5oYW5kbGVFcnJvckFuZEJvdW5jZUJhY2soKSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZSh1cGRhdGVzOiBGbG93VXBkYXRlUGFyYW1zW10pOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZSQodXBkYXRlcykuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwdWJsaWMgcmV2ZXJ0JChsaW5lSXRlbUlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFF1b3RlRHJhZnQgfCBudWxsPiB7XG4gICAgY29uc3QgcXVvdGVEcmFmdCA9IHRoaXMucXVvdGVEcmFmdFNlcnZpY2UucXVvdGVEcmFmdDtcbiAgICBjb25zdCBpbml0aWFsQ3VycmVudFN0YXRlID0gdGhpcy5xdW90ZURyYWZ0U2VydmljZS5nZXRJbml0aWFsQ3VycmVudFN0YXRlKCk7XG4gICAgY29uc3QgY3VycmVudFN0YXRlID0gdGhpcy5xdW90ZURyYWZ0U2VydmljZS5jdXJyZW50U3RhdGU7XG5cbiAgICBjb25zdCBjdXJyZW50TGluZUl0ZW1JbmRleCA9IGN1cnJlbnRTdGF0ZS5maW5kSW5kZXgoKHsgaWQgfSkgPT4gaWQgPT09IGxpbmVJdGVtSWQpO1xuICAgIGNvbnN0IGN1cnJlbnRMaW5lSXRlbSA9IGN1cnJlbnRTdGF0ZVtjdXJyZW50TGluZUl0ZW1JbmRleF07XG5cbiAgICBjb25zdCBpbml0aWFsTGluZUl0ZW0gPSBpbml0aWFsQ3VycmVudFN0YXRlLmZpbmQoXG4gICAgICAoeyBpbnRlZ3JhdGlvbklkIH0pID0+IGludGVncmF0aW9uSWQgPT09IGN1cnJlbnRMaW5lSXRlbT8uaW50ZWdyYXRpb25JZCxcbiAgICApO1xuXG4gICAgaWYgKCFxdW90ZURyYWZ0IHx8ICFjdXJyZW50TGluZUl0ZW0gfHwgIWluaXRpYWxMaW5lSXRlbSkge1xuICAgICAgcmV0dXJuIG9mKG51bGwpO1xuICAgIH1cblxuICAgIGNvbnN0IHVwZGF0ZWRTdGF0ZSA9IGNsb25lRGVlcChjdXJyZW50U3RhdGUpO1xuICAgIHVwZGF0ZWRTdGF0ZS5zcGxpY2UoY3VycmVudExpbmVJdGVtSW5kZXgsIDEsIGluaXRpYWxMaW5lSXRlbSk7XG5cbiAgICByZXR1cm4gb2YoW10pLnBpcGUoXG4gICAgICB0YXAoKCkgPT4ge1xuICAgICAgICB0aGlzLnF1b3RlRHJhZnRTZXJ2aWNlLnNldEN1cnJlbnRMaW5lSXRlbVN0YXRlKHVwZGF0ZWRTdGF0ZSk7XG4gICAgICB9KSxcbiAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLmNhbGN1bGF0ZSQoeyAuLi5xdW90ZURyYWZ0LCBjdXJyZW50U3RhdGU6IHVwZGF0ZWRTdGF0ZSB9KSksXG4gICAgICBtYXAoKCkgPT4gdGhpcy5xdW90ZURyYWZ0U2VydmljZS5xdW90ZURyYWZ0KSxcbiAgICAgIHRhcCgoKSA9PiB0aGlzLnVwZGF0ZWRTdWJqJC5uZXh0KCkpLFxuICAgICAgdGhpcy5oYW5kbGVFcnJvckFuZEJvdW5jZUJhY2soKSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHJldmVydChsaW5lSXRlbUlkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnJldmVydCQobGluZUl0ZW1JZCkuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwdWJsaWMgZGVsZXRlJChpZHM6IHN0cmluZ1tdKTogT2JzZXJ2YWJsZTxRdW90ZURyYWZ0IHwgbnVsbD4ge1xuICAgIGNvbnN0IHF1b3RlRHJhZnQgPSB0aGlzLnF1b3RlRHJhZnRTZXJ2aWNlLnF1b3RlRHJhZnQ7XG4gICAgY29uc3QgY3VycmVudFN0YXRlID0gdGhpcy5xdW90ZURyYWZ0U2VydmljZS5jdXJyZW50U3RhdGU7XG5cbiAgICBpZiAoIXF1b3RlRHJhZnQpIHtcbiAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICB9XG5cbiAgICByZXR1cm4gb2YoW10pLnBpcGUoXG4gICAgICBtYXAoKCkgPT4gaWRzLnJlZHVjZSgocmVzdWx0LCBpZCkgPT4gdGhpcy51cGRhdGVTZXJ2aWNlLmRlbGV0ZShyZXN1bHQsIGlkKSwgY3VycmVudFN0YXRlKSksXG4gICAgICBzd2l0Y2hNYXAodXBkYXRlZFN0YXRlID0+IHRoaXMuY2FsY3VsYXRlJCh7IC4uLnF1b3RlRHJhZnQsIGN1cnJlbnRTdGF0ZTogdXBkYXRlZFN0YXRlIH0pKSxcbiAgICAgIG1hcCgoKSA9PiB0aGlzLnF1b3RlRHJhZnRTZXJ2aWNlLnF1b3RlRHJhZnQpLFxuICAgICAgdGFwKCgpID0+IHRoaXMudXBkYXRlZFN1YmokLm5leHQoKSksXG4gICAgICB0aGlzLmhhbmRsZUVycm9yQW5kQm91bmNlQmFjaygpLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZGVsZXRlKGlkczogc3RyaW5nW10pOiB2b2lkIHtcbiAgICB0aGlzLmRlbGV0ZSQoaWRzKS5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRUZXJtJCh0ZXJtOiBMaW5lSXRlbSk6IE9ic2VydmFibGU8UXVvdGVEcmFmdCB8IG51bGw+IHtcbiAgICBjb25zdCBxdW90ZURyYWZ0ID0gdGhpcy5xdW90ZURyYWZ0U2VydmljZS5xdW90ZURyYWZ0O1xuXG4gICAgaWYgKCFxdW90ZURyYWZ0KSB7XG4gICAgICByZXR1cm4gb2YobnVsbCk7XG4gICAgfVxuXG4gICAgY29uc3QgdXBkYXRlZFN0YXRlID0gWy4uLnF1b3RlRHJhZnQuY3VycmVudFN0YXRlLCB0ZXJtXTtcblxuICAgIHJldHVybiBvZihbXSkucGlwZShcbiAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLmNhbGN1bGF0ZSQoeyAuLi5xdW90ZURyYWZ0LCBjdXJyZW50U3RhdGU6IHVwZGF0ZWRTdGF0ZSB9KSksXG4gICAgICBtYXAoKCkgPT4gdGhpcy5xdW90ZURyYWZ0U2VydmljZS5xdW90ZURyYWZ0KSxcbiAgICAgIHRhcCgoKSA9PiB0aGlzLnVwZGF0ZWRTdWJqJC5uZXh0KCkpLFxuICAgICAgdGhpcy5oYW5kbGVFcnJvckFuZEJvdW5jZUJhY2soKSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGFkZFRvQ2FydCQocHJvcHM6IEV4dGVybmFsQ29uZmlndXJhdGlvblByb3BzKTogT2JzZXJ2YWJsZTxRdW90ZURyYWZ0IHwgbnVsbD4ge1xuICAgIGNvbnN0IHF1b3RlRHJhZnQgPSB0aGlzLnF1b3RlRHJhZnRTZXJ2aWNlLnF1b3RlRHJhZnQ7XG5cbiAgICBpZiAoIXF1b3RlRHJhZnQpIHtcbiAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5jb25maWd1cmF0aW9uU2VydmljZS5jb25maWd1cmVFeHRlcm5hbCQocHJvcHMpLnBpcGUoXG4gICAgICBtYXAobGluZUl0ZW0gPT4ge1xuICAgICAgICBjb25zdCBtb2RlbCA9IHRoaXMuY29uZmlndXJhdGlvblNlcnZpY2UuZ2V0UnVudGltZU1vZGVsKCk7XG4gICAgICAgIGNvbnN0IHNwbGl0ID0gbW9kZWw/LnR5cGVzLmZpbmQodHlwZSA9PiB0eXBlLm5hbWUgPT09IGxpbmVJdGVtLnR5cGUpPy5zcGxpdCA/PyBmYWxzZTtcbiAgICAgICAgY29uc3QgbGluZUl0ZW1zID0gbXVsdGlwbHlMaW5lSXRlbXMobGluZUl0ZW0sIHByb3BzLnF0eSA/PyAxLCBzcGxpdCk7XG5cbiAgICAgICAgcmV0dXJuIFsuLi5xdW90ZURyYWZ0LmN1cnJlbnRTdGF0ZSwgLi4ubGluZUl0ZW1zXTtcbiAgICAgIH0pLFxuICAgICAgc3dpdGNoTWFwKHVwZGF0ZWRTdGF0ZSA9PiB0aGlzLmNhbGN1bGF0ZSQoeyAuLi5xdW90ZURyYWZ0LCBjdXJyZW50U3RhdGU6IHVwZGF0ZWRTdGF0ZSB9KSksXG4gICAgICBtYXAoKCkgPT4gdGhpcy5xdW90ZURyYWZ0U2VydmljZS5xdW90ZURyYWZ0KSxcbiAgICAgIHRhcCgoKSA9PiB0aGlzLnVwZGF0ZWRTdWJqJC5uZXh0KCkpLFxuICAgICAgdGhpcy5oYW5kbGVFcnJvckFuZEJvdW5jZUJhY2soKSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldCgpOiBPYnNlcnZhYmxlPExpbmVJdGVtW10+IHtcbiAgICByZXR1cm4gdGhpcy5xdW90ZURyYWZ0U2VydmljZS5xdW90ZURyYWZ0JC5waXBlKFxuICAgICAgbWFwKCgpID0+IHRoaXMucXVvdGVEcmFmdFNlcnZpY2UuY3VycmVudFN0YXRlKSxcbiAgICAgIHNoYXJlUmVwbGF5KCksXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRTbmFwc2hvdCgpOiBMaW5lSXRlbVtdIHtcbiAgICByZXR1cm4gdGhpcy5xdW90ZURyYWZ0U2VydmljZT8uY3VycmVudFN0YXRlLnNsaWNlKCkgPz8gW107XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNoYXJnZXMkKCk6IE9ic2VydmFibGU8RGljdGlvbmFyeTxDaGFyZ2U+PiB7XG4gICAgcmV0dXJuIHRoaXMucXVvdGVEcmFmdFNlcnZpY2UucXVvdGVEcmFmdCQucGlwZShtYXAoKHsgY2hhcmdlcyB9KSA9PiBjaGFyZ2VzKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHByaWNlUGxhbnMkKCk6IE9ic2VydmFibGU8RGljdGlvbmFyeTxDb21waWxlZFByaWNlUGxhbj4+IHtcbiAgICByZXR1cm4gdGhpcy5xdW90ZURyYWZ0U2VydmljZS5xdW90ZURyYWZ0JC5waXBlKG1hcCgoeyBwcmljZVBsYW5zIH0pID0+IHByaWNlUGxhbnMpKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYWN0aXZlTWV0cmljcyQoKTogT2JzZXJ2YWJsZTxNZXRyaWNSdWxlW10+IHtcbiAgICByZXR1cm4gdGhpcy5xdW90ZURyYWZ0U2VydmljZS5xdW90ZURyYWZ0JC5waXBlKG1hcCgoeyBhY3RpdmVNZXRyaWNzIH0pID0+IGFjdGl2ZU1ldHJpY3MpKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY2hhcmdlc1NuYXBzaG90KCk6IERpY3Rpb25hcnk8Q2hhcmdlPiB7XG4gICAgcmV0dXJuIHRoaXMucXVvdGVEcmFmdFNlcnZpY2UucXVvdGVEcmFmdD8uY2hhcmdlcyA/PyB7fTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcHJpY2VQbGFuc1NuYXBzaG90KCk6IERpY3Rpb25hcnk8Q29tcGlsZWRQcmljZVBsYW4+IHtcbiAgICByZXR1cm4gdGhpcy5xdW90ZURyYWZ0U2VydmljZS5xdW90ZURyYWZ0Py5wcmljZVBsYW5zID8/IHt9O1xuICB9XG5cbiAgcHVibGljIGdldCBhY3RpdmVNZXRyaWNzU25hcHNob3QoKTogTWV0cmljUnVsZVtdIHtcbiAgICByZXR1cm4gdGhpcy5xdW90ZURyYWZ0U2VydmljZS5xdW90ZURyYWZ0Py5hY3RpdmVNZXRyaWNzID8/IFtdO1xuICB9XG5cbiAgcHVibGljIGdldCBjb250ZXh0U25hcHNob3QoKTogQ29uZmlndXJhdGlvbkNvbnRleHQge1xuICAgIHJldHVybiB0aGlzLmNvbnRleHRTZXJ2aWNlLnJlc29sdmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY29udGV4dCQoKTogT2JzZXJ2YWJsZTxDb25maWd1cmF0aW9uQ29udGV4dD4ge1xuICAgIHJldHVybiB0aGlzLmNvbnRleHRTZXJ2aWNlLnJlc29sdmUkKCk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUVycm9yQW5kQm91bmNlQmFjaygpIHtcbiAgICByZXR1cm4gPFQ+KHNvdXJjZSQ6IE9ic2VydmFibGU8VD4pOiBPYnNlcnZhYmxlPFQ+ID0+IHtcbiAgICAgIHJldHVybiBzb3VyY2UkLnBpcGUoXG4gICAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4ge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuXG4gICAgICAgICAgLy8gYm91bmNlIGJhY2sgaWYgY29uZmlndXJhdGlvbiBjYWxsIGhhcyBmYWlsZWRcbiAgICAgICAgICBjb25zdCBxdW90ZURyYWZ0ID0gdGhpcy5xdW90ZURyYWZ0U2VydmljZS5xdW90ZURyYWZ0O1xuICAgICAgICAgIGlmIChxdW90ZURyYWZ0KSB7XG4gICAgICAgICAgICB0aGlzLnF1b3RlRHJhZnRTZXJ2aWNlLnVwZGF0ZVF1b3RlRHJhZnQocXVvdGVEcmFmdCk7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZWRTdWJqJC5uZXh0KCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gZXJyb3IpO1xuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgZXh0ZW5kZWRBcHBseSQocXVvdGVEcmFmdDogUXVvdGVEcmFmdCk6IE9ic2VydmFibGU8UXVvdGVEcmFmdD4ge1xuICAgIGNvbnN0IHJlcXVlc3QgPSB7IC4uLnF1b3RlRHJhZnQgfTtcbiAgICBjb25zdCBwcm9jZWR1cmVOYW1lID0gdGhpcy5mbG93SW5mb1NlcnZpY2UuZmxvdz8ucHJvcGVydGllcy5wcm9jZWR1cmVOYW1lO1xuICAgIGlmIChwcm9jZWR1cmVOYW1lKSB7XG4gICAgICByZXF1ZXN0LnByb2NlZHVyZU5hbWUgPSBwcm9jZWR1cmVOYW1lO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5wcm9jZWR1cmVzQXBpU2VydmljZS5hcHBseSQocmVxdWVzdCk7XG4gIH1cbn1cbiJdfQ==