@hmcts/ccd-case-ui-toolkit 7.1.51-ongoing-accessibility-v1 → 7.1.51
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/esm2022/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.mjs +154 -33
- package/esm2022/lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.mjs +103 -43
- package/esm2022/lib/shared/components/case-editor/case-editor.module.mjs +7 -4
- package/esm2022/lib/shared/components/case-editor/services/case-flag-state.service.mjs +7 -1
- package/esm2022/lib/shared/components/case-list/case-list.component.mjs +20 -23
- package/esm2022/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.mjs +14 -4
- package/esm2022/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.mjs +15 -5
- package/esm2022/lib/shared/components/pagination/pagination.component.mjs +6 -8
- package/esm2022/lib/shared/components/palette/base-field/abstract-field-write-journey.component.mjs +95 -0
- package/esm2022/lib/shared/components/palette/base-field/abstract-journey.component.mjs +81 -0
- package/esm2022/lib/shared/components/palette/base-field/index.mjs +3 -1
- package/esm2022/lib/shared/components/palette/case-file-view/components/case-file-view-folder-selector/case-file-view-folder-selector.component.mjs +6 -6
- package/esm2022/lib/shared/components/palette/case-file-view/components/shared/case-file-view-overlay-menu/case-file-view-overlay-menu.component.mjs +13 -15
- package/esm2022/lib/shared/components/palette/case-flag/components/add-comments/add-comments.component.mjs +30 -21
- package/esm2022/lib/shared/components/palette/case-flag/components/case-flag-summary-list/case-flag-summary-list.component.mjs +3 -3
- package/esm2022/lib/shared/components/palette/case-flag/components/confirm-flag-status/confirm-flag-status.component.mjs +25 -22
- package/esm2022/lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.mjs +154 -36
- package/esm2022/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter.component.mjs +33 -29
- package/esm2022/lib/shared/components/palette/case-flag/components/select-flag-location/select-flag-location.component.mjs +33 -28
- package/esm2022/lib/shared/components/palette/case-flag/components/select-flag-type/select-flag-type.component.mjs +177 -71
- package/esm2022/lib/shared/components/palette/case-flag/components/update-flag/update-flag-add-translation-form/update-flag-add-translation-form.component.mjs +32 -28
- package/esm2022/lib/shared/components/palette/case-flag/components/update-flag/update-flag.component.mjs +123 -105
- package/esm2022/lib/shared/components/palette/case-flag/read-case-flag-field.component.mjs +31 -4
- package/esm2022/lib/shared/components/palette/case-flag/write-case-flag-field.component.mjs +147 -33
- package/esm2022/lib/shared/components/palette/linked-cases/components/before-you-start/before-you-start.component.mjs +44 -23
- package/esm2022/lib/shared/components/palette/linked-cases/components/check-your-answers/check-your-answers.component.mjs +29 -7
- package/esm2022/lib/shared/components/palette/linked-cases/components/link-cases/link-cases.component.mjs +84 -50
- package/esm2022/lib/shared/components/palette/linked-cases/components/no-linked-cases/no-linked-cases.component.mjs +13 -9
- package/esm2022/lib/shared/components/palette/linked-cases/components/unlink-cases/unlink-cases.component.mjs +84 -44
- package/esm2022/lib/shared/components/palette/linked-cases/services/linked-cases.service.mjs +25 -2
- package/esm2022/lib/shared/components/palette/linked-cases/write-linked-cases-field.component.mjs +110 -30
- package/esm2022/lib/shared/components/palette/palette.module.mjs +2 -2
- package/esm2022/lib/shared/domain/index.mjs +2 -1
- package/esm2022/lib/shared/domain/journey/index.mjs +3 -0
- package/esm2022/lib/shared/domain/journey/journey-instigator.model.mjs +2 -0
- package/esm2022/lib/shared/domain/journey/journey.model.mjs +2 -0
- package/esm2022/lib/shared/pipes/complex/ccd-page-fields.pipe.mjs +2 -2
- package/esm2022/lib/shared/services/index.mjs +2 -1
- package/esm2022/lib/shared/services/journey/index.mjs +2 -0
- package/esm2022/lib/shared/services/journey/multipage-component-state.service.mjs +117 -0
- package/fesm2022/hmcts-ccd-case-ui-toolkit.mjs +1894 -825
- package/fesm2022/hmcts-ccd-case-ui-toolkit.mjs.map +1 -1
- package/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.d.ts +19 -3
- package/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.d.ts.map +1 -1
- package/lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.d.ts +11 -2
- package/lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.d.ts.map +1 -1
- package/lib/shared/components/case-editor/case-editor.module.d.ts.map +1 -1
- package/lib/shared/components/case-editor/services/case-flag-state.service.d.ts +3 -0
- package/lib/shared/components/case-editor/services/case-flag-state.service.d.ts.map +1 -1
- package/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.d.ts +2 -1
- package/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.d.ts.map +1 -1
- package/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.d.ts +5 -1
- package/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.d.ts.map +1 -1
- package/lib/shared/components/palette/base-field/abstract-field-write-journey.component.d.ts +30 -0
- package/lib/shared/components/palette/base-field/abstract-field-write-journey.component.d.ts.map +1 -0
- package/lib/shared/components/palette/base-field/abstract-journey.component.d.ts +27 -0
- package/lib/shared/components/palette/base-field/abstract-journey.component.d.ts.map +1 -0
- package/lib/shared/components/palette/base-field/index.d.ts +2 -0
- package/lib/shared/components/palette/base-field/index.d.ts.map +1 -1
- package/lib/shared/components/palette/case-file-view/components/shared/case-file-view-overlay-menu/case-file-view-overlay-menu.component.d.ts +0 -1
- package/lib/shared/components/palette/case-file-view/components/shared/case-file-view-overlay-menu/case-file-view-overlay-menu.component.d.ts.map +1 -1
- package/lib/shared/components/palette/case-flag/components/add-comments/add-comments.component.d.ts +4 -2
- package/lib/shared/components/palette/case-flag/components/add-comments/add-comments.component.d.ts.map +1 -1
- package/lib/shared/components/palette/case-flag/components/confirm-flag-status/confirm-flag-status.component.d.ts +4 -2
- package/lib/shared/components/palette/case-flag/components/confirm-flag-status/confirm-flag-status.component.d.ts.map +1 -1
- package/lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.d.ts +16 -4
- package/lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.d.ts.map +1 -1
- package/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter.component.d.ts +6 -3
- package/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter.component.d.ts.map +1 -1
- package/lib/shared/components/palette/case-flag/components/select-flag-location/select-flag-location.component.d.ts +5 -2
- package/lib/shared/components/palette/case-flag/components/select-flag-location/select-flag-location.component.d.ts.map +1 -1
- package/lib/shared/components/palette/case-flag/components/select-flag-type/select-flag-type.component.d.ts +21 -6
- package/lib/shared/components/palette/case-flag/components/select-flag-type/select-flag-type.component.d.ts.map +1 -1
- package/lib/shared/components/palette/case-flag/components/update-flag/update-flag-add-translation-form/update-flag-add-translation-form.component.d.ts +5 -2
- package/lib/shared/components/palette/case-flag/components/update-flag/update-flag-add-translation-form/update-flag-add-translation-form.component.d.ts.map +1 -1
- package/lib/shared/components/palette/case-flag/components/update-flag/update-flag.component.d.ts +7 -3
- package/lib/shared/components/palette/case-flag/components/update-flag/update-flag.component.d.ts.map +1 -1
- package/lib/shared/components/palette/case-flag/read-case-flag-field.component.d.ts +1 -0
- package/lib/shared/components/palette/case-flag/read-case-flag-field.component.d.ts.map +1 -1
- package/lib/shared/components/palette/case-flag/write-case-flag-field.component.d.ts +18 -6
- package/lib/shared/components/palette/case-flag/write-case-flag-field.component.d.ts.map +1 -1
- package/lib/shared/components/palette/linked-cases/components/before-you-start/before-you-start.component.d.ts +6 -4
- package/lib/shared/components/palette/linked-cases/components/before-you-start/before-you-start.component.d.ts.map +1 -1
- package/lib/shared/components/palette/linked-cases/components/check-your-answers/check-your-answers.component.d.ts +8 -3
- package/lib/shared/components/palette/linked-cases/components/check-your-answers/check-your-answers.component.d.ts.map +1 -1
- package/lib/shared/components/palette/linked-cases/components/link-cases/link-cases.component.d.ts +8 -3
- package/lib/shared/components/palette/linked-cases/components/link-cases/link-cases.component.d.ts.map +1 -1
- package/lib/shared/components/palette/linked-cases/components/no-linked-cases/no-linked-cases.component.d.ts +5 -2
- package/lib/shared/components/palette/linked-cases/components/no-linked-cases/no-linked-cases.component.d.ts.map +1 -1
- package/lib/shared/components/palette/linked-cases/components/unlink-cases/unlink-cases.component.d.ts +9 -3
- package/lib/shared/components/palette/linked-cases/components/unlink-cases/unlink-cases.component.d.ts.map +1 -1
- package/lib/shared/components/palette/linked-cases/services/linked-cases.service.d.ts +8 -0
- package/lib/shared/components/palette/linked-cases/services/linked-cases.service.d.ts.map +1 -1
- package/lib/shared/components/palette/linked-cases/write-linked-cases-field.component.d.ts +10 -3
- package/lib/shared/components/palette/linked-cases/write-linked-cases-field.component.d.ts.map +1 -1
- package/lib/shared/domain/index.d.ts +1 -0
- package/lib/shared/domain/index.d.ts.map +1 -1
- package/lib/shared/domain/journey/index.d.ts +3 -0
- package/lib/shared/domain/journey/index.d.ts.map +1 -0
- package/lib/shared/domain/journey/journey-instigator.model.d.ts +5 -0
- package/lib/shared/domain/journey/journey-instigator.model.d.ts.map +1 -0
- package/lib/shared/domain/journey/journey.model.d.ts +19 -0
- package/lib/shared/domain/journey/journey.model.d.ts.map +1 -0
- package/lib/shared/services/index.d.ts +1 -0
- package/lib/shared/services/index.d.ts.map +1 -1
- package/lib/shared/services/journey/index.d.ts +2 -0
- package/lib/shared/services/journey/index.d.ts.map +1 -0
- package/lib/shared/services/journey/multipage-component-state.service.d.ts +26 -0
- package/lib/shared/services/journey/multipage-component-state.service.d.ts.map +1 -0
- package/package.json +1 -1
|
@@ -15,6 +15,8 @@ import { ActivityPollingService, AlertService, DraftService, ErrorNotifierServic
|
|
|
15
15
|
import { ConvertHrefToRouterService } from '../../case-editor/services/convert-href-to-router.service';
|
|
16
16
|
import { DeleteOrCancelDialogComponent } from '../../dialogs';
|
|
17
17
|
import { initDialog } from '../../helpers';
|
|
18
|
+
import { LinkedCasesService } from '../../palette/linked-cases/services';
|
|
19
|
+
import { CaseFlagStateService } from '../../case-editor/services/case-flag-state.service';
|
|
18
20
|
import * as i0 from "@angular/core";
|
|
19
21
|
import * as i1 from "@angular/router";
|
|
20
22
|
import * as i2 from "../../../services";
|
|
@@ -22,6 +24,8 @@ import * as i3 from "@angular/material/legacy-dialog";
|
|
|
22
24
|
import * as i4 from "../../case-editor/services/convert-href-to-router.service";
|
|
23
25
|
import * as i5 from "@angular/common";
|
|
24
26
|
import * as i6 from "rpx-xui-translation";
|
|
27
|
+
import * as i7 from "../../palette/linked-cases/services";
|
|
28
|
+
import * as i8 from "../../case-editor/services/case-flag-state.service";
|
|
25
29
|
const _c0 = ["tabGroup"];
|
|
26
30
|
const _c1 = (a0, a1) => [a0, false, undefined, true, a1];
|
|
27
31
|
function CaseFullAccessViewComponent_div_0_Template(rf, ctx) { if (rf & 1) {
|
|
@@ -260,6 +264,8 @@ export class CaseFullAccessViewComponent {
|
|
|
260
264
|
sessionStorageService;
|
|
261
265
|
rpxTranslationPipe;
|
|
262
266
|
loadingService;
|
|
267
|
+
linkedCasesService;
|
|
268
|
+
caseFlagStateService;
|
|
263
269
|
static ORIGIN_QUERY_PARAM = 'origin';
|
|
264
270
|
static TRIGGER_TEXT_START = 'Go';
|
|
265
271
|
static TRIGGER_TEXT_CONTINUE = 'Ignore Warning and Go';
|
|
@@ -297,7 +303,7 @@ export class CaseFullAccessViewComponent {
|
|
|
297
303
|
isEventButtonClicked = false;
|
|
298
304
|
callbackErrorsSubject;
|
|
299
305
|
tabGroup;
|
|
300
|
-
constructor(ngZone, route, router, navigationNotifierService, orderService, activityPollingService, dialog, alertService, draftService, errorNotifierService, convertHrefToRouterService, location, crf, sessionStorageService, rpxTranslationPipe, loadingService) {
|
|
306
|
+
constructor(ngZone, route, router, navigationNotifierService, orderService, activityPollingService, dialog, alertService, draftService, errorNotifierService, convertHrefToRouterService, location, crf, sessionStorageService, rpxTranslationPipe, loadingService, linkedCasesService, caseFlagStateService) {
|
|
301
307
|
this.ngZone = ngZone;
|
|
302
308
|
this.route = route;
|
|
303
309
|
this.router = router;
|
|
@@ -314,6 +320,8 @@ export class CaseFullAccessViewComponent {
|
|
|
314
320
|
this.sessionStorageService = sessionStorageService;
|
|
315
321
|
this.rpxTranslationPipe = rpxTranslationPipe;
|
|
316
322
|
this.loadingService = loadingService;
|
|
323
|
+
this.linkedCasesService = linkedCasesService;
|
|
324
|
+
this.caseFlagStateService = caseFlagStateService;
|
|
317
325
|
}
|
|
318
326
|
ngOnInit() {
|
|
319
327
|
this.callbackErrorsSubject = this.errorNotifierService.errorSource.pipe(filter((x) => {
|
|
@@ -341,6 +349,8 @@ export class CaseFullAccessViewComponent {
|
|
|
341
349
|
this.checkRouteAndSetCaseViewTab();
|
|
342
350
|
// Check for active Case Flags
|
|
343
351
|
this.activeCaseFlags = this.hasActiveCaseFlags();
|
|
352
|
+
this.linkedCasesService.resetLinkedCaseData();
|
|
353
|
+
this.caseFlagStateService.resetInitialCaseFlags();
|
|
344
354
|
}
|
|
345
355
|
ngOnChanges(changes) {
|
|
346
356
|
if (changes && changes.prependedTabs && !changes.prependedTabs.firstChange) {
|
|
@@ -652,7 +662,7 @@ export class CaseFullAccessViewComponent {
|
|
|
652
662
|
this.errorNotifierService.announceError(null);
|
|
653
663
|
this.alertService.clear();
|
|
654
664
|
}
|
|
655
|
-
static ɵfac = function CaseFullAccessViewComponent_Factory(t) { return new (t || CaseFullAccessViewComponent)(i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.ActivatedRoute), i0.ɵɵdirectiveInject(i1.Router), i0.ɵɵdirectiveInject(i2.NavigationNotifierService), i0.ɵɵdirectiveInject(i2.OrderService), i0.ɵɵdirectiveInject(i2.ActivityPollingService), i0.ɵɵdirectiveInject(i3.MatLegacyDialog), i0.ɵɵdirectiveInject(i2.AlertService), i0.ɵɵdirectiveInject(i2.DraftService), i0.ɵɵdirectiveInject(i2.ErrorNotifierService), i0.ɵɵdirectiveInject(i4.ConvertHrefToRouterService), i0.ɵɵdirectiveInject(i5.Location), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i2.SessionStorageService), i0.ɵɵdirectiveInject(i6.RpxTranslatePipe), i0.ɵɵdirectiveInject(i2.LoadingService)); };
|
|
665
|
+
static ɵfac = function CaseFullAccessViewComponent_Factory(t) { return new (t || CaseFullAccessViewComponent)(i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.ActivatedRoute), i0.ɵɵdirectiveInject(i1.Router), i0.ɵɵdirectiveInject(i2.NavigationNotifierService), i0.ɵɵdirectiveInject(i2.OrderService), i0.ɵɵdirectiveInject(i2.ActivityPollingService), i0.ɵɵdirectiveInject(i3.MatLegacyDialog), i0.ɵɵdirectiveInject(i2.AlertService), i0.ɵɵdirectiveInject(i2.DraftService), i0.ɵɵdirectiveInject(i2.ErrorNotifierService), i0.ɵɵdirectiveInject(i4.ConvertHrefToRouterService), i0.ɵɵdirectiveInject(i5.Location), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i2.SessionStorageService), i0.ɵɵdirectiveInject(i6.RpxTranslatePipe), i0.ɵɵdirectiveInject(i2.LoadingService), i0.ɵɵdirectiveInject(i7.LinkedCasesService), i0.ɵɵdirectiveInject(i8.CaseFlagStateService)); };
|
|
656
666
|
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CaseFullAccessViewComponent, selectors: [["ccd-case-full-access-view"]], viewQuery: function CaseFullAccessViewComponent_Query(rf, ctx) { if (rf & 1) {
|
|
657
667
|
i0.ɵɵviewQuery(_c0, 5);
|
|
658
668
|
} if (rf & 2) {
|
|
@@ -697,7 +707,7 @@ export class CaseFullAccessViewComponent {
|
|
|
697
707
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CaseFullAccessViewComponent, [{
|
|
698
708
|
type: Component,
|
|
699
709
|
args: [{ selector: 'ccd-case-full-access-view', template: "<!-- Generic error heading and error message to be displayed only if there are no specific callback errors or warnings, or no error details -->\n<div *ngIf=\"error && !(error.callbackErrors || error.callbackWarnings || error.details)\" class=\"error-summary\"\n role=\"group\" aria-labelledby=\"edit-case-event_error-summary-heading\" tabindex=\"-1\">\n <h1 class=\"heading-h1 error-summary-heading\" id=\"edit-case-event_error-summary-heading\">\n {{'Something went wrong' | rpxTranslate}}\n </h1>\n <div class=\"govuk-error-summary__body\" id=\"edit-case-event_error-summary-body\">\n <p>{{\"We're working to fix the problem. Try again shortly.\" | rpxTranslate}}</p>\n <p>\n <a href=\"get-help\" target=\"_blank\">\n {{\"Contact us\" | rpxTranslate}}</a> {{\"if you're still having problems.\" | rpxTranslate}}\n </p>\n </div>\n</div>\n<!-- Callback error heading and error message to be displayed if there are specific error details -->\n<div *ngIf=\"error && error.details\" class=\"error-summary\" role=\"group\"\n aria-labelledby=\"edit-case-event_error-summary-heading\" tabindex=\"-1\">\n <h2 class=\"heading-h2 error-summary-heading\" id=\"edit-case-event_error-summary-heading\">\n {{'The callback data failed validation' | rpxTranslate}}\n </h2>\n <p>{{error.message | rpxTranslate}}</p>\n <ul *ngIf=\"error.details?.field_errors\" class=\"error-summary-list\">\n <li *ngFor=\"let fieldError of error.details.field_errors\">\n {{fieldError.message | rpxTranslate}}\n </li>\n </ul>\n</div>\n<ccd-callback-errors\n [triggerTextContinue]=\"triggerTextStart\"\n [triggerTextIgnore]=\"triggerTextIgnoreWarnings\"\n [callbackErrorsSubject]=\"callbackErrorsSubject\"\n (callbackErrorsContext)=\"callbackErrorsNotify($event)\">\n</ccd-callback-errors>\n<ccd-activity [caseId]=\"caseDetails.case_id\" [displayMode]=\"BANNER\"></ccd-activity>\n<div class=\"grid-row\">\n <div class=\"column-one-half\">\n <ccd-case-header [caseDetails]=\"caseDetails\"></ccd-case-header>\n <div class=\"case-viewer-controls\" *ngIf=\"hasPrint && !isDraft() && isPrintEnabled()\">\n <a id=\"case-viewer-control-print\" routerLink=\"print\" class=\"button button-secondary\">{{'Print' | rpxTranslate}}</a>\n </div>\n </div>\n <div *ngIf=\"hasEventSelector\" class=\"column-one-half\">\n <ccd-event-trigger [isDisabled]=\"isTriggerButtonDisabled()\" [triggers]=\"caseDetails.triggers\"\n [triggerText]=\"triggerText\"\n [eventId]=\"eventId\"\n (onTriggerChange)=\"clearErrorsAndWarnings()\"\n (onTriggerSubmit)=\"applyTrigger($event)\"></ccd-event-trigger>\n </div>\n</div>\n<div class=\"grid-row\" *ngIf=\"activeCaseFlags && !caseFlagsExternalUser\">\n <div class=\"column-full\">\n <ccd-notification-banner [notificationBannerConfig]=\"notificationBannerConfig\" (linkClicked)=\"onLinkClicked($event)\">\n </ccd-notification-banner>\n </div>\n</div>\n<div class=\"grid-row\">\n <div class=\"column-full\">\n <ng-container *ngIf=\"hasTabsPresent()\">\n <mat-tab-group #tabGroup animationDuration=\"0ms\" (selectedIndexChange)=\"tabChanged($event)\" [disableRipple]=\"true\"\n [selectedIndex]=\"selectedTabIndex\">\n <mat-tab *ngFor=\"let tab of prependedTabs\" [id]=\"tab.id\" [label]=\"tab.label | rpxTranslate\">\n </mat-tab>\n <mat-tab *ngFor=\"let tab of sortedTabs; let curIdx=index\" [id]=\"tab.id\" [label]=\"tab.label | rpxTranslate\" [aria-label]=\"curIdx === 0 ? tab.label + ', Please use left and right arrow keys to navigate case tabs' : '' | rpxTranslate\">\n <ng-template matTabContent>\n <table [class]=\"tab.id\" [attr.aria-label]=\"'case viewer table' | rpxTranslate\">\n <tbody>\n <ng-container *ngFor=\"let field of tab | ccdTabFields | ccdReadFieldsFilter:false :undefined :true : formGroup?.controls['data']\">\n <div ccdLabelSubstitutor [caseField]=\"field\" [contextFields]=\"caseFields\" [hidden]=\"field.hidden\">\n <ng-container [ngSwitch]=\"!(field | ccdIsCompound)\">\n <tr *ngSwitchCase=\"true\">\n <th id=\"case-viewer-field-label\" *ngIf=\"!isFieldToHaveNoLabel(field)\">\n <div class=\"case-viewer-label text-16\">\n {{field.label | rpxTranslate}}</div>\n </th>\n <td [id]=\"'case-viewer-field-read--' + field.id\" scope=\"col\">\n <span class=\"text-16\">\n <ccd-field-read [topLevelFormGroup]=\"formGroup?.controls['data']\"\n [caseField]=\"field\" [caseReference]=\"caseDetails.case_id\"\n [markdownUseHrefAsRouterLink]=\"markdownUseHrefAsRouterLink\">\n </ccd-field-read>\n </span>\n </td>\n </tr>\n <tr *ngSwitchCase=\"false\" class=\"compound-field\">\n <th [id]=\"'case-viewer-field-read--' + field.id\" scope=\"col\">\n <span class=\"text-16\">\n <ccd-field-read [topLevelFormGroup]=\"formGroup.controls['data']\"\n [caseField]=\"field\" [caseReference]=\"caseDetails.case_id\"\n [markdownUseHrefAsRouterLink]=\"markdownUseHrefAsRouterLink\">\n </ccd-field-read>\n </span>\n </th>\n </tr>\n </ng-container>\n </div>\n </ng-container>\n </tbody>\n </table>\n </ng-template>\n </mat-tab>\n <mat-tab *ngFor=\"let tab of appendedTabs\" [id]=\"tab.id\" [label]=\"tab.label | rpxTranslate\">\n </mat-tab>\n </mat-tab-group>\n <router-outlet *ngIf=\"(prependedTabs && prependedTabs.length) || (appendedTabs && appendedTabs.length)\"></router-outlet>\n </ng-container>\n </div>\n</div>\n", styles: ["th{width:1%;white-space:nowrap;vertical-align:top}.compound-field th{padding:0}.case-viewer-controls{margin-top:47px;margin-bottom:20px}ccd-case-header{float:left;margin-right:10px}ccd-event-trigger{float:right}.case-viewer-label{min-width:300px;white-space:normal}.markdown h3{margin-bottom:0}.hide-table-capion{position:absolute;visibility:hidden}\n"] }]
|
|
700
|
-
}], () => [{ type: i0.NgZone }, { type: i1.ActivatedRoute }, { type: i1.Router }, { type: i2.NavigationNotifierService }, { type: i2.OrderService }, { type: i2.ActivityPollingService }, { type: i3.MatLegacyDialog }, { type: i2.AlertService }, { type: i2.DraftService }, { type: i2.ErrorNotifierService }, { type: i4.ConvertHrefToRouterService }, { type: i5.Location }, { type: i0.ChangeDetectorRef }, { type: i2.SessionStorageService }, { type: i6.RpxTranslatePipe }, { type: i2.LoadingService }], { hasPrint: [{
|
|
710
|
+
}], () => [{ type: i0.NgZone }, { type: i1.ActivatedRoute }, { type: i1.Router }, { type: i2.NavigationNotifierService }, { type: i2.OrderService }, { type: i2.ActivityPollingService }, { type: i3.MatLegacyDialog }, { type: i2.AlertService }, { type: i2.DraftService }, { type: i2.ErrorNotifierService }, { type: i4.ConvertHrefToRouterService }, { type: i5.Location }, { type: i0.ChangeDetectorRef }, { type: i2.SessionStorageService }, { type: i6.RpxTranslatePipe }, { type: i2.LoadingService }, { type: i7.LinkedCasesService }, { type: i8.CaseFlagStateService }], { hasPrint: [{
|
|
701
711
|
type: Input
|
|
702
712
|
}], hasEventSelector: [{
|
|
703
713
|
type: Input
|
|
@@ -711,5 +721,5 @@ export class CaseFullAccessViewComponent {
|
|
|
711
721
|
type: ViewChild,
|
|
712
722
|
args: ['tabGroup', { static: false }]
|
|
713
723
|
}] }); })();
|
|
714
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CaseFullAccessViewComponent, { className: "CaseFullAccessViewComponent", filePath: "lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.ts", lineNumber:
|
|
715
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1mdWxsLWFjY2Vzcy12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9jYXNlLXZpZXdlci9jYXNlLWZ1bGwtYWNjZXNzLXZpZXcvY2FzZS1mdWxsLWFjY2Vzcy12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9jYXNlLXZpZXdlci9jYXNlLWZ1bGwtYWNjZXNzLXZpZXcvY2FzZS1mdWxsLWFjY2Vzcy12aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQ0wsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQzVCLFNBQVMsRUFDekIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsZUFBZSxJQUFJLFNBQVMsRUFBNEMsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6SCxPQUFPLEVBQTBCLGlCQUFpQixJQUFJLFdBQVcsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3pHLE9BQU8sRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFVLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV2RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMs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QUNPLG9EQUNBO1lBR25DLGNBQThCO1lBQUMsQUFBL0IsZ0RBQThCLDJCQUF1QjtZQUc5QyxlQUEyQjtZQUEzQiw2Q0FBMkI7WUFDVCxjQUFnRDtZQUFoRCw2RUFBZ0Q7WUFJL0UsY0FBc0I7WUFBdEIsMkNBQXNCO1lBUVAsY0FBK0M7WUFBL0Msd0VBQStDO1lBUW5ELGVBQXNCO1lBQXRCLDJDQUFzQjs7O2lGRGQ1QiwyQkFBMkI7Y0FMdkMsU0FBUzsyQkFDRSwyQkFBMkI7d2ZBWXJCLFFBQVE7a0JBQXZCLEtBQUs7WUFDVSxnQkFBZ0I7a0JBQS9CLEtBQUs7WUFDVSxXQUFXO2tCQUExQixLQUFLO1lBQ1UsYUFBYTtrQkFBNUIsS0FBSztZQUNVLFlBQVk7a0JBQTNCLEtBQUs7WUE0QjJDLFFBQVE7a0JBQXhELFNBQVM7bUJBQUMsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTs7a0ZBeEM3QiwyQkFBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMb2NhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBJbnB1dCwgTmdab25lLCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT25Jbml0LFxuICBTaW1wbGVDaGFuZ2VzLCBWaWV3Q2hpbGQsIFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0TGVnYWN5RGlhbG9nIGFzIE1hdERpYWxvZywgTWF0TGVnYWN5RGlhbG9nQ29uZmlnIGFzIE1hdERpYWxvZ0NvbmZpZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xlZ2FjeS1kaWFsb2cnO1xuaW1wb3J0IHsgTWF0TGVnYWN5VGFiIGFzIE1hdFRhYiwgTWF0TGVnYWN5VGFiR3JvdXAgYXMgTWF0VGFiR3JvdXAgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9sZWdhY3ktdGFicyc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgTmF2aWdhdGlvbkVuZCwgUGFyYW1zLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgcGxhaW5Ub0NsYXNzIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuaW1wb3J0IHsgUnB4VHJhbnNsYXRlUGlwZSB9IGZyb20gJ3JweC14dWktdHJhbnNsYXRpb24nO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1xuICBOb3RpZmljYXRpb25CYW5uZXJDb25maWcsXG4gIE5vdGlmaWNhdGlvbkJhbm5lckhlYWRlckNsYXNzLFxuICBOb3RpZmljYXRpb25CYW5uZXJUeXBlXG59IGZyb20gJy4uLy4uLy4uLy4uL2NvbXBvbmVudHMvYmFubmVycy9ub3RpZmljYXRpb24tYmFubmVyJztcbmltcG9ydCB7IFNob3dDb25kaXRpb24gfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmVzJztcbmltcG9ydCB7IEFjdGl2aXR5LCBDYXNlRmllbGQsIENhc2VUYWIsIENhc2VWaWV3LCBDYXNlVmlld1RyaWdnZXIsIERSQUZUX1FVRVJZX1BBUkFNLCBEaXNwbGF5TW9kZSwgRHJhZnQgfSBmcm9tICcuLi8uLi8uLi9kb21haW4nO1xuaW1wb3J0IHsgQ2FzZVZpZXdFdmVudElkcyB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbi9jYXNlLXZpZXcvY2FzZS12aWV3LWV2ZW50LWlkcy5lbnVtJztcbmltcG9ydCB7XG4gIEFjdGl2aXR5UG9sbGluZ1NlcnZpY2UsXG4gIEFsZXJ0U2VydmljZSxcbiAgRHJhZnRTZXJ2aWNlLFxuICBFcnJvck5vdGlmaWVyU2VydmljZSxcbiAgRmllbGRzVXRpbHMsXG4gIExvYWRpbmdTZXJ2aWNlLFxuICBOYXZpZ2F0aW9uTm90aWZpZXJTZXJ2aWNlLFxuICBOYXZpZ2F0aW9uT3JpZ2luLFxuICBPcmRlclNlcnZpY2UsXG4gIFNlc3Npb25TdG9yYWdlU2VydmljZVxufSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBDb252ZXJ0SHJlZlRvUm91dGVyU2VydmljZSB9IGZyb20gJy4uLy4uL2Nhc2UtZWRpdG9yL3NlcnZpY2VzL2NvbnZlcnQtaHJlZi10by1yb3V0ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBEZWxldGVPckNhbmNlbERpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL2RpYWxvZ3MnO1xuaW1wb3J0IHsgQ2FsbGJhY2tFcnJvcnNDb250ZXh0IH0gZnJvbSAnLi4vLi4vZXJyb3InO1xuaW1wb3J0IHsgaW5pdERpYWxvZyB9IGZyb20gJy4uLy4uL2hlbHBlcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjY2QtY2FzZS1mdWxsLWFjY2Vzcy12aWV3JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Nhc2UtZnVsbC1hY2Nlc3Mtdmlldy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Nhc2UtZnVsbC1hY2Nlc3Mtdmlldy5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIENhc2VGdWxsQWNjZXNzVmlld0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBPbkNoYW5nZXMge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IE9SSUdJTl9RVUVSWV9QQVJBTSA9ICdvcmlnaW4nO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFRSSUdHRVJfVEVYVF9TVEFSVCA9ICdHbyc7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVFJJR0dFUl9URVhUX0NPTlRJTlVFID0gJ0lnbm9yZSBXYXJuaW5nIGFuZCBHbyc7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVU5JQ09ERV9TUEFDRSA9ICclMjAnO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEVNUFRZX1NQQUNFID0gJyAnO1xuICBwcml2YXRlIHJlYWRvbmx5IEhFQVJJTkdTX1RBQl9MQUJFTCA9ICdIZWFyaW5ncyc7XG5cbiAgQElucHV0KCkgcHVibGljIGhhc1ByaW50ID0gdHJ1ZTtcbiAgQElucHV0KCkgcHVibGljIGhhc0V2ZW50U2VsZWN0b3IgPSB0cnVlO1xuICBASW5wdXQoKSBwdWJsaWMgY2FzZURldGFpbHM6IENhc2VWaWV3O1xuICBASW5wdXQoKSBwdWJsaWMgcHJlcGVuZGVkVGFiczogQ2FzZVRhYltdID0gW107XG4gIEBJbnB1dCgpIHB1YmxpYyBhcHBlbmRlZFRhYnM6IENhc2VUYWJbXSA9IFtdO1xuXG4gIHB1YmxpYyBCQU5ORVIgPSBEaXNwbGF5TW9kZS5CQU5ORVI7XG4gIHB1YmxpYyBzb3J0ZWRUYWJzOiBDYXNlVGFiW107XG4gIHB1YmxpYyBjYXNlRmllbGRzOiBDYXNlRmllbGRbXTtcbiAgcHVibGljIGZvcm1Hcm91cDogRm9ybUdyb3VwO1xuICBwdWJsaWMgZXJyb3I6IGFueTtcbiAgcHVibGljIHRyaWdnZXJUZXh0U3RhcnQgPSBDYXNlRnVsbEFjY2Vzc1ZpZXdDb21wb25lbnQuVFJJR0dFUl9URVhUX1NUQVJUO1xuICBwdWJsaWMgdHJpZ2dlclRleHRJZ25vcmVXYXJuaW5ncyA9IENhc2VGdWxsQWNjZXNzVmlld0NvbXBvbmVudC5UUklHR0VSX1RFWFRfQ09OVElOVUU7XG4gIHB1YmxpYyB0cmlnZ2VyVGV4dDogc3RyaW5nID0gQ2FzZUZ1bGxBY2Nlc3NWaWV3Q29tcG9uZW50LlRSSUdHRVJfVEVYVF9TVEFSVDtcbiAgcHVibGljIGlnbm9yZVdhcm5pbmcgPSBmYWxzZTtcbiAgcHVibGljIGFjdGl2aXR5U3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIHB1YmxpYyBjYXNlU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIHB1YmxpYyBlcnJvclN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBwdWJsaWMgZGlhbG9nQ29uZmlnOiBNYXREaWFsb2dDb25maWc7XG4gIHB1YmxpYyBtYXJrZG93blVzZUhyZWZBc1JvdXRlckxpbms6IGJvb2xlYW47XG4gIHB1YmxpYyBtZXNzYWdlOiBzdHJpbmc7XG4gIHB1YmxpYyBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcHVibGljIG5vdGlmaWNhdGlvbkJhbm5lckNvbmZpZzogTm90aWZpY2F0aW9uQmFubmVyQ29uZmlnO1xuICBwdWJsaWMgc2VsZWN0ZWRUYWJJbmRleCA9IDA7XG4gIHB1YmxpYyBhY3RpdmVDYXNlRmxhZ3MgPSBmYWxzZTtcbiAgcHVibGljIGNhc2VGbGFnc0V4dGVybmFsVXNlciA9IGZhbHNlO1xuICBwcml2YXRlIHJlYWRvbmx5IGNhc2VGbGFnc1JlYWRFeHRlcm5hbE1vZGUgPSAnI0FSR1VNRU5UKFJFQUQsRVhURVJOQUwpJztcbiAgcHJpdmF0ZSBzdWJzOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuICBwdWJsaWMgZXZlbnRJZDogc3RyaW5nO1xuICBwdWJsaWMgaXNFdmVudEJ1dHRvbkNsaWNrZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwdWJsaWMgY2FsbGJhY2tFcnJvcnNTdWJqZWN0OiAgIE9ic2VydmFibGU8YW55PjtcbiAgQFZpZXdDaGlsZCgndGFiR3JvdXAnLCB7IHN0YXRpYzogZmFsc2UgfSkgcHVibGljIHRhYkdyb3VwOiBNYXRUYWJHcm91cDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IG5nWm9uZTogTmdab25lLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBuYXZpZ2F0aW9uTm90aWZpZXJTZXJ2aWNlOiBOYXZpZ2F0aW9uTm90aWZpZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgb3JkZXJTZXJ2aWNlOiBPcmRlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBhY3Rpdml0eVBvbGxpbmdTZXJ2aWNlOiBBY3Rpdml0eVBvbGxpbmdTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGlhbG9nOiBNYXREaWFsb2csXG4gICAgcHJpdmF0ZSByZWFkb25seSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRyYWZ0U2VydmljZTogRHJhZnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZXJyb3JOb3RpZmllclNlcnZpY2U6IEVycm9yTm90aWZpZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29udmVydEhyZWZUb1JvdXRlclNlcnZpY2U6IENvbnZlcnRIcmVmVG9Sb3V0ZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbG9jYXRpb246IExvY2F0aW9uLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY3JmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNlc3Npb25TdG9yYWdlU2VydmljZTogU2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcnB4VHJhbnNsYXRpb25QaXBlOiBScHhUcmFuc2xhdGVQaXBlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbG9hZGluZ1NlcnZpY2U6IExvYWRpbmdTZXJ2aWNlXG4gICkge1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuY2FsbGJhY2tFcnJvcnNTdWJqZWN0ID0gdGhpcy5lcnJvck5vdGlmaWVyU2VydmljZS5lcnJvclNvdXJjZS5waXBlKGZpbHRlcigoeCkgPT4ge1xuICAgICAgaWYoeCAmJiB4LnN0YXR1cyAhPT0gNDAxICYmIHguc3RhdHVzICE9PSA0MDMpIHtcbiAgICAgICAgdGhpcy5lcnJvciA9IHg7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0pKTtcbiAgICBcbiAgICBpbml0RGlhbG9nKCk7XG4gICAgdGhpcy5pbml0KCk7XG4gICAgdGhpcy5tYXJrZG93blVzZUhyZWZBc1JvdXRlckxpbmsgPSB0cnVlO1xuXG4gICAgdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2U/LnJlbW92ZUl0ZW0oJ2V2ZW50VXJsJyk7XG5cbiAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHRoaXMuY29udmVydEhyZWZUb1JvdXRlclNlcnZpY2U/LmdldEhyZWZNYXJrZG93bkxpbmtDb250ZW50KCkuc3Vic2NyaWJlKChocmVmTWFya2Rvd25MaW5rQ29udGVudDogc3RyaW5nKSA9PiB7XG4gICAgICAvLyBkbyBub3QgY29udmVydCByb3V0ZXIgd2l0aCBpbml0aWFsIGRlZmF1bHQgdmFsdWU7IGNvbnZlcnQgdG8gcm91dGVyIG9ubHkgb24gdXBkYXRlZCBsaW5rIGNvbnRlbnRcbiAgICAgIGlmIChocmVmTWFya2Rvd25MaW5rQ29udGVudCAhPT0gJ0RlZmF1bHQnKSB7XG4gICAgICAgIHRoaXMuY29udmVydEhyZWZUb1JvdXRlclNlcnZpY2UuY2FsbEFuZ3VsYXJSb3V0ZXIoaHJlZk1hcmtkb3duTGlua0NvbnRlbnQpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKHRoaXMuYWN0aXZpdHlQb2xsaW5nU2VydmljZS5pc0VuYWJsZWQgJiYgIXRoaXMuYWN0aXZpdHlTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgdGhpcy5hY3Rpdml0eVN1YnNjcmlwdGlvbiA9IHRoaXMucG9zdFZpZXdBY3Rpdml0eSgpLnN1YnNjcmliZSgpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy5jaGVja1JvdXRlQW5kU2V0Q2FzZVZpZXdUYWIoKTtcblxuICAgIC8vIENoZWNrIGZvciBhY3RpdmUgQ2FzZSBGbGFnc1xuICAgIHRoaXMuYWN0aXZlQ2FzZUZsYWdzID0gdGhpcy5oYXNBY3RpdmVDYXNlRmxhZ3MoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKGNoYW5nZXMgJiYgY2hhbmdlcy5wcmVwZW5kZWRUYWJzICYmICFjaGFuZ2VzLnByZXBlbmRlZFRhYnMuZmlyc3RDaGFuZ2UpIHtcbiAgICAgIHRoaXMuaW5pdCgpO1xuICAgICAgdGhpcy5jcmYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgdGhpcy5vcmdhbmlzZVRhYlBvc2l0aW9uKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGlzUHJpbnRFbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmNhc2VEZXRhaWxzLmNhc2VfdHlwZS5wcmludEVuYWJsZWQ7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuYWN0aXZpdHlQb2xsaW5nU2VydmljZS5pc0VuYWJsZWQpIHtcbiAgICAgIHRoaXMudW5zdWJzY3JpYmUodGhpcy5hY3Rpdml0eVN1YnNjcmlwdGlvbik7XG4gICAgfVxuICAgIGlmICghdGhpcy5yb3V0ZS5zbmFwc2hvdC5kYXRhLmNhc2UpIHtcbiAgICAgIHRoaXMudW5zdWJzY3JpYmUodGhpcy5jYXNlU3Vic2NyaXB0aW9uKTtcbiAgICB9XG4gICAgdGhpcy51bnN1YnNjcmliZSh0aGlzLmNhbGxiYWNrRXJyb3JzU3ViamVjdCk7XG4gICAgdGhpcy51bnN1YnNjcmliZSh0aGlzLmVycm9yU3Vic2NyaXB0aW9uKTtcbiAgICB0aGlzLnVuc3Vic2NyaWJlKHRoaXMuc3Vic2NyaXB0aW9uKTtcbiAgICB0aGlzLnN1YnMuZm9yRWFjaChzID0+IHMudW5zdWJzY3JpYmUoKSk7XG4gIH1cblxuICBwdWJsaWMgdW5zdWJzY3JpYmUoc3Vic2NyaXB0aW9uOiBhbnkpIHtcbiAgICBpZiAoc3Vic2NyaXB0aW9uKSB7XG4gICAgICBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNoZWNrUm91dGVBbmRTZXRDYXNlVmlld1RhYigpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnMucHVzaCh0aGlzLnJvdXRlci5ldmVudHNcbiAgICAgIC5waXBlKGZpbHRlcigoZXZlbnQpID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCkpXG4gICAgICAuc3Vic2NyaWJlKChldmVudDogTmF2aWdhdGlvbkVuZCkgPT4ge1xuICAgICAgICBjb25zdCB1cmwgPSBldmVudCAmJiAoZXZlbnQgYXMgYW55KS51cmw7XG4gICAgICAgIGlmICh1cmwpIHtcbiAgICAgICAgICBjb25zdCB0YWJVcmwgPSB1cmwgPyB1cmwuc3BsaXQoJyMnKSA6IG51bGw7XG4gICAgICAgICAgY29uc3QgdGFiID0gdGFiVXJsICYmIHRhYlVybC5sZW5ndGggPiAxID8gdGFiVXJsW3RhYlVybC5sZW5ndGggLSAxXS5yZXBsYWNlQWxsKCclMjAnLCAnICcpIDogJyc7XG4gICAgICAgICAgY29uc3QgbWF0VGFiID0gdGhpcy50YWJHcm91cC5fdGFicy5maW5kKCh4KSA9PiB4LnRleHRMYWJlbC50b0xvd2VyQ2FzZSgpID09PSB0YWIudG9Mb3dlckNhc2UoKSk7XG4gICAgICAgICAgLy8gVXBkYXRlIHNlbGVjdGVkSW5kZXggb25seSBpZiBtYXRUYWIucG9zaXRpb24gaXMgYSBub24temVybyBudW1iZXIgKHBvc2l0aXZlIG9yIG5lZ2F0aXZlKTsgdGhpcyBtZWFucyB0aGVcbiAgICAgICAgICAvLyBtYXRUYWIgaXMgbm90IGFscmVhZHkgc2VsZWN0ZWQgKHBvc2l0aW9uIGlzIHJlbGF0aXZlOyBwb3NpdGl2ZSA9IHJpZ2h0LCBuZWdhdGl2ZSA9IGxlZnQpIG9yIGl0IHdvdWxkIGJlIDBcbiAgICAgICAgICBpZiAobWF0VGFiPy5wb3NpdGlvbikge1xuICAgICAgICAgICAgdGhpcy50YWJHcm91cC5zZWxlY3RlZEluZGV4ID0gbWF0VGFiLnBvc2l0aW9uO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSkpO1xuICB9XG5cbiAgcHVibGljIHBvc3RWaWV3QWN0aXZpdHkoKTogT2JzZXJ2YWJsZTxBY3Rpdml0eVtdPiB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aXZpdHlQb2xsaW5nU2VydmljZS5wb3N0Vmlld0FjdGl2aXR5KHRoaXMuY2FzZURldGFpbHM/LmNhc2VfaWQpO1xuICB9XG5cbiAgcHVibGljIGNsZWFyRXJyb3JzQW5kV2FybmluZ3MoKTogdm9pZCB7XG4gICAgdGhpcy5yZXNldEVycm9ycygpO1xuICAgIHRoaXMuaWdub3JlV2FybmluZyA9IGZhbHNlO1xuICAgIHRoaXMudHJpZ2dlclRleHQgPSBDYXNlRnVsbEFjY2Vzc1ZpZXdDb21wb25lbnQuVFJJR0dFUl9URVhUX1NUQVJUO1xuICAgIHRoaXMuaXNFdmVudEJ1dHRvbkNsaWNrZWQgPSBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBhcHBseVRyaWdnZXIodHJpZ2dlcjogQ2FzZVZpZXdUcmlnZ2VyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMuaXNFdmVudEJ1dHRvbkNsaWNrZWQpe1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmlzRXZlbnRCdXR0b25DbGlja2VkID0gdHJ1ZTtcbiAgICBjb25zdCBzcGlubmVyID0gdGhpcy5sb2FkaW5nU2VydmljZS5yZWdpc3RlcigpO1xuICAgIHRoaXMubG9hZGluZ1NlcnZpY2UuYWRkU2hhcmVkU3Bpbm5lcihzcGlubmVyKTtcbiAgICB0aGlzLmVycm9yTm90aWZpZXJTZXJ2aWNlLmFubm91bmNlRXJyb3IobnVsbCk7XG4gICAgY29uc3QgdGhlUXVlcnlQYXJhbXM6IFBhcmFtcyA9IHt9O1xuXG4gICAgaWYgKHRoaXMuaWdub3JlV2FybmluZykge1xuICAgICAgdGhlUXVlcnlQYXJhbXNbJ2lnbm9yZVdhcm5pbmcnXSA9IHRoaXMuaWdub3JlV2FybmluZztcbiAgICB9XG5cbiAgICAvLyB3ZSBtYXkgbmVlZCB0byB0YWtlIGNhcmUgb2YgZGlmZmVyZW50IHRyaWdnZXJzIGluIHRoZSBmdXR1cmVcbiAgICBpZiAodHJpZ2dlci5pZCA9PT0gQ2FzZVZpZXdFdmVudElkcy5RdWVyeU1hbmFnZW1lbnRSYWlzZVF1ZXJ5KSB7XG4gICAgICBhd2FpdCB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbYC9xdWVyeS1tYW5hZ2VtZW50L3F1ZXJ5LyR7dGhpcy5jYXNlRGV0YWlscy5jYXNlX2lkfWBdKTtcbiAgICB9IGVsc2UgaWYgKHRyaWdnZXIuaWQgPT09IENhc2VWaWV3RXZlbnRJZHMuREVMRVRFKSB7XG4gICAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKERlbGV0ZU9yQ2FuY2VsRGlhbG9nQ29tcG9uZW50LCB0aGlzLmRpYWxvZ0NvbmZpZyk7XG4gICAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUocmVzdWx0ID0+IHtcbiAgICAgICAgaWYgKHJlc3VsdCA9PT0gJ0RlbGV0ZScpIHtcbiAgICAgICAgICB0aGlzLmRyYWZ0U2VydmljZS5kZWxldGVEcmFmdCh0aGlzLmNhc2VEZXRhaWxzLmNhc2VfaWQpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKF8gPT4ge1xuICAgICAgICAgICAgICB0aGlzLm5hdmlnYXRpb25Ob3RpZmllclNlcnZpY2UuYW5ub3VuY2VOYXZpZ2F0aW9uKHsgYWN0aW9uOiBOYXZpZ2F0aW9uT3JpZ2luLkRSQUZUX0RFTEVURUQgfSk7XG4gICAgICAgICAgICB9LCBfID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5uYXZpZ2F0aW9uTm90aWZpZXJTZXJ2aWNlLmFubm91bmNlTmF2aWdhdGlvbih7IGFjdGlvbjogTmF2aWdhdGlvbk9yaWdpbi5FUlJPUl9ERUxFVElOR19EUkFGVCB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuaXNEcmFmdCgpICYmIHRyaWdnZXIuaWQgIT09IENhc2VWaWV3RXZlbnRJZHMuREVMRVRFKSB7XG4gICAgICB0aGVRdWVyeVBhcmFtc1tEUkFGVF9RVUVSWV9QQVJBTV0gPSB0aGlzLmNhc2VEZXRhaWxzLmNhc2VfaWQ7XG4gICAgICB0aGVRdWVyeVBhcmFtc1tDYXNlRnVsbEFjY2Vzc1ZpZXdDb21wb25lbnQuT1JJR0lOX1FVRVJZX1BBUkFNXSA9ICd2aWV3RHJhZnQnO1xuICAgICAgdGhpcy5uYXZpZ2F0aW9uTm90aWZpZXJTZXJ2aWNlLmFubm91bmNlTmF2aWdhdGlvbihcbiAgICAgICAge1xuICAgICAgICAgIGFjdGlvbjogTmF2aWdhdGlvbk9yaWdpbi5EUkFGVF9SRVNVTUVELFxuICAgICAgICAgIGppZDogdGhpcy5jYXNlRGV0YWlscy5jYXNlX3R5cGUuanVyaXNkaWN0aW9uLmlkLFxuICAgICAgICAgIGN0aWQ6IHRoaXMuY2FzZURldGFpbHMuY2FzZV90eXBlLmlkLFxuICAgICAgICAgIGV0aWQ6IHRyaWdnZXIuaWQsXG4gICAgICAgICAgcXVlcnlQYXJhbXM6IHRoZVF1ZXJ5UGFyYW1zXG4gICAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm5hdmlnYXRpb25Ob3RpZmllclNlcnZpY2UuYW5ub3VuY2VOYXZpZ2F0aW9uKFxuICAgICAgICB7XG4gICAgICAgICAgYWN0aW9uOiBOYXZpZ2F0aW9uT3JpZ2luLkVWRU5UX1RSSUdHRVJFRCxcbiAgICAgICAgICBxdWVyeVBhcmFtczogdGhlUXVlcnlQYXJhbXMsXG4gICAgICAgICAgZXRpZDogdHJpZ2dlci5pZCxcbiAgICAgICAgICByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlXG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBoYXNUYWJzUHJlc2VudCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zb3J0ZWRUYWJzLmxlbmd0aCA+IDAgfHwgdGhpcy5wcmVwZW5kZWRUYWJzLmxlbmd0aCA+IDAgfHwgdGhpcy5hcHBlbmRlZFRhYnMubGVuZ3RoID4gMDtcbiAgfVxuXG4gIHB1YmxpYyBjYWxsYmFja0Vycm9yc05vdGlmeShjYWxsYmFja0Vycm9yc0NvbnRleHQ6IENhbGxiYWNrRXJyb3JzQ29udGV4dCk6IHZvaWQge1xuICAgIHRoaXMuaWdub3JlV2FybmluZyA9IGNhbGxiYWNrRXJyb3JzQ29udGV4dC5pZ25vcmVXYXJuaW5nO1xuICAgIHRoaXMudHJpZ2dlclRleHQgPSBjYWxsYmFja0Vycm9yc0NvbnRleHQudHJpZ2dlclRleHQ7XG4gICAgdGhpcy5ldmVudElkID0gY2FsbGJhY2tFcnJvcnNDb250ZXh0LmV2ZW50SWQ7XG4gIH1cblxuICBwdWJsaWMgaXNEcmFmdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gRHJhZnQuaXNEcmFmdCh0aGlzLmNhc2VEZXRhaWxzLmNhc2VfaWQpO1xuICB9XG5cbiAgcHVibGljIGlzVHJpZ2dlckJ1dHRvbkRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAodGhpcy5lcnJvclxuICAgICAgJiYgdGhpcy5lcnJvci5jYWxsYmFja0Vycm9yc1xuICAgICAgJiYgdGhpcy5lcnJvci5jYWxsYmFja0Vycm9ycy5sZW5ndGgpXG4gICAgICB8fCAodGhpcy5lcnJvclxuICAgICAgICAmJiB0aGlzLmVycm9yLmRldGFpbHNcbiAgICAgICAgJiYgdGhpcy5lcnJvci5kZXRhaWxzLmZpZWxkX2Vycm9yc1xuICAgICAgICAmJiB0aGlzLmVycm9yLmRldGFpbHMuZmllbGRfZXJyb3JzLmxlbmd0aCk7XG4gIH1cblxuICBwdWJsaWMgb3JnYW5pc2VUYWJQb3NpdGlvbigpOiB2b2lkIHtcbiAgICBsZXQgbWF0VGFiOiBNYXRUYWI7XG4gICAgY29uc3QgdXJsID0gdGhpcy5sb2NhdGlvbi5wYXRoKHRydWUpO1xuICAgIGxldCBoYXNoVmFsdWUgPSB1cmwuc3Vic3RyaW5nKHVybC5pbmRleE9mKCcjJykgKyAxKTtcbiAgICBpZiAoIXVybC5pbmNsdWRlcygnIycpICYmICF1cmwuaW5jbHVkZXMoJ3JvbGVzLWFuZC1hY2Nlc3MnKSAmJiAhdXJsLmluY2x1ZGVzKCd0YXNrcycpICYmICF1cmwuaW5jbHVkZXMoJ2hlYXJpbmdzJykpIHtcbiAgICAgIGNvbnN0IHBhdGhzID0gdXJsLnNwbGl0KCcvJyk7XG4gICAgICAvLyBsYXN0UGF0aCBjYW4gYmUgL2Nhc2VJZCwgb3IgdGhlIHRhYnMgL3Rhc2tzLCAvaGVhcmluZ3MgZXRjLlxuICAgICAgY29uc3QgbGFzdFBhdGggPSBkZWNvZGVVUklDb21wb25lbnQocGF0aHNbcGF0aHMubGVuZ3RoIC0gMV0pO1xuICAgICAgbGV0IGZvdW5kVGFiOiBDYXNlVGFiID0gbnVsbDtcbiAgICAgIGlmICghdGhpcy5wcmVwZW5kZWRUYWJzKSB7XG4gICAgICAgIHRoaXMucHJlcGVuZGVkVGFicyA9IFtdO1xuICAgICAgfVxuICAgICAgY29uc3QgYWRkaXRpb25hbFRhYnMgPSBbLi4udGhpcy5wcmVwZW5kZWRUYWJzLCAuLi50aGlzLmFwcGVuZGVkVGFic107XG4gICAgICBpZiAoYWRkaXRpb25hbFRhYnMgJiYgYWRkaXRpb25hbFRhYnMubGVuZ3RoKSB7XG4gICAgICAgIGZvdW5kVGFiID0gYWRkaXRpb25hbFRhYnMuZmluZCgoY2FzZVRhYjogQ2FzZVRhYikgPT4gY2FzZVRhYi5pZC50b0xvd2VyQ2FzZSgpID09PSBsYXN0UGF0aC50b0xvd2VyQ2FzZSgpKTtcbiAgICAgIH1cbiAgICAgIC8vIGZvdW5kIHRhc2tzIG9yIGhlYXJpbmcgdGFiXG4gICAgICBpZiAoZm91bmRUYWIpIHtcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWydjYXNlcycsICdjYXNlLWRldGFpbHMnLCB0aGlzLmNhc2VEZXRhaWxzLmNhc2VfaWQsIGZvdW5kVGFiLmlkXSkudGhlbigoKSA9PiB7XG4gICAgICAgICAgbWF0VGFiID0gdGhpcy50YWJHcm91cC5fdGFicy5maW5kKCh4KSA9PiB4LnRleHRMYWJlbCA9PT0gZm91bmRUYWIubGFiZWwpO1xuICAgICAgICAgIC8vIFVwZGF0ZSBzZWxlY3RlZEluZGV4IG9ubHkgaWYgbWF0VGFiLnBvc2l0aW9uIGlzIGEgbm9uLXplcm8gbnVtYmVyIChwb3NpdGl2ZSBvciBuZWdhdGl2ZSk7IHRoaXMgbWVhbnMgdGhlXG4gICAgICAgICAgLy8gbWF0VGFiIGlzIG5vdCBhbHJlYWR5IHNlbGVjdGVkIChwb3NpdGlvbiBpcyByZWxhdGl2ZTsgcG9zaXRpdmUgPSByaWdodCwgbmVnYXRpdmUgPSBsZWZ0KSBvciBpdCB3b3VsZCBiZSAwXG4gICAgICAgICAgaWYgKG1hdFRhYj8ucG9zaXRpb24pIHtcbiAgICAgICAgICAgIHRoaXMudGFiR3JvdXAuc2VsZWN0ZWRJbmRleCA9IG1hdFRhYi5wb3NpdGlvbjtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICAvLyBsYXN0IHBhdGggaXMgY2FzZUlkXG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBzb3J0IHdpdGggdGhlIG9yZGVyIG9mIENDRCBwcmVkZWZpbmVkIHRhYnNcbiAgICAgICAgdGhpcy5jYXNlRGV0YWlscy50YWJzLnNvcnQoKGFUYWIsIGJUYWIpID0+IGFUYWIub3JkZXIgPiBiVGFiLm9yZGVyID8gMSA6IChiVGFiLm9yZGVyID4gYVRhYi5vcmRlciA/IC0xIDogMCkpO1xuICAgICAgICAvLyBzZWxlY3QgdGhlIGZpcnN0IHRhYiBjaGVja2luZyBpZiB0aGUgdGFiIGlzIHZpc2libGVcbiAgICAgICAgY29uc3QgcHJlU2VsZWN0VGFiOiBDYXNlVGFiID0gdGhpcy5maW5kUHJlU2VsZWN0ZWRBY3RpdmVUYWIoKTtcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWydjYXNlcycsICdjYXNlLWRldGFpbHMnLCB0aGlzLmNhc2VEZXRhaWxzLmNhc2VfaWRdLCB7IGZyYWdtZW50OiBwcmVTZWxlY3RUYWIubGFiZWwgfSkudGhlbigoKSA9PiB7XG4gICAgICAgICAgbWF0VGFiID0gdGhpcy50YWJHcm91cC5fdGFicy5maW5kKCh4KSA9PiB4LnRleHRMYWJlbCA9PT0gcHJlU2VsZWN0VGFiLmxhYmVsKTtcbiAgICAgICAgICAvLyBVcGRhdGUgc2VsZWN0ZWRJbmRleCBvbmx5IGlmIG1hdFRhYi5wb3NpdGlvbiBpcyBhIG5vbi16ZXJvIG51bWJlciAocG9zaXRpdmUgb3IgbmVnYXRpdmUpOyB0aGlzIG1lYW5zIHRoZVxuICAgICAgICAgIC8vIG1hdFRhYiBpcyBub3QgYWxyZWFkeSBzZWxlY3RlZCAocG9zaXRpb24gaXMgcmVsYXRpdmU7IHBvc2l0aXZlID0gcmlnaHQsIG5lZ2F0aXZlID0gbGVmdCkgb3IgaXQgd291bGQgYmUgMFxuICAgICAgICAgIGlmIChtYXRUYWI/LnBvc2l0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLnRhYkdyb3VwLnNlbGVjdGVkSW5kZXggPSBtYXRUYWIucG9zaXRpb247XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgcmVnRXhwID0gbmV3IFJlZ0V4cChDYXNlRnVsbEFjY2Vzc1ZpZXdDb21wb25lbnQuVU5JQ09ERV9TUEFDRSwgJ2cnKTtcbiAgICAgIGhhc2hWYWx1ZSA9IGhhc2hWYWx1ZS5yZXBsYWNlKHJlZ0V4cCwgQ2FzZUZ1bGxBY2Nlc3NWaWV3Q29tcG9uZW50LkVNUFRZX1NQQUNFKTtcbiAgICAgIGlmIChoYXNoVmFsdWUuaW5jbHVkZXMoJ2hlYXJpbmdzJykpIHtcbiAgICAgICAgaGFzaFZhbHVlID0gJ2hlYXJpbmdzJztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChoYXNoVmFsdWUuaW5jbHVkZXMoJ3JvbGVzLWFuZC1hY2Nlc3MnKSB8fCBoYXNoVmFsdWUuaW5jbHVkZXMoJ3Rhc2tzJykpIHtcbiAgICAgICAgICBoYXNoVmFsdWUgPSBoYXNoVmFsdWUuaW5jbHVkZXMoJ3JvbGVzLWFuZC1hY2Nlc3MnKSA/ICdyb2xlcyBhbmQgYWNjZXNzJyA6ICd0YXNrcyc7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIG1hdFRhYiA9IHRoaXMudGFiR3JvdXAuX3RhYnMuZmluZCgoeCkgPT5cbiAgICAgICAgeC50ZXh0TGFiZWwucmVwbGFjZShDYXNlRnVsbEFjY2Vzc1ZpZXdDb21wb25lbnQuRU1QVFlfU1BBQ0UsICcnKS50b0xvd2VyQ2FzZSgpID09PVxuICAgICAgICBoYXNoVmFsdWUucmVwbGFjZShDYXNlRnVsbEFjY2Vzc1ZpZXdDb21wb25lbnQuRU1QVFlfU1BBQ0UsICcnKS50b0xvd2VyQ2FzZSgpKTtcbiAgICAgIC8vIFVwZGF0ZSBzZWxlY3RlZEluZGV4IG9ubHkgaWYgbWF0VGFiLnBvc2l0aW9uIGlzIGEgbm9uLXplcm8gbnVtYmVyIChwb3NpdGl2ZSBvciBuZWdhdGl2ZSk7IHRoaXMgbWVhbnMgdGhlXG4gICAgICAvLyBtYXRUYWIgaXMgbm90IGFscmVhZHkgc2VsZWN0ZWQgKHBvc2l0aW9uIGlzIHJlbGF0aXZlOyBwb3NpdGl2ZSA9IHJpZ2h0LCBuZWdhdGl2ZSA9IGxlZnQpIG9yIGl0IHdvdWxkIGJlIDBcbiAgICAgIGlmIChtYXRUYWI/LnBvc2l0aW9uKSB7XG4gICAgICAgIHRoaXMudGFiR3JvdXAuc2VsZWN0ZWRJbmRleCA9IG1hdFRhYi5wb3NpdGlvbjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZmluZFByZVNlbGVjdGVkQWN0aXZlVGFiKCk6IENhc2VUYWIge1xuICAgIGNvbnN0IHVuT3JkZXJlZFRhYnNJblNvcnRlZFRhYnMgPSB0aGlzLmNhc2VEZXRhaWxzLnRhYnNcbiAgICAgIC5maWx0ZXIoKHRhYikgPT4gIXRhYi5vcmRlciAmJiB0aGlzLnNvcnRlZFRhYnMuc29tZSgoc29ydGVkVGFiKSA9PiBzb3J0ZWRUYWIuaWQgPT09IHRhYi5pZCkpO1xuICAgIHJldHVybiB1bk9yZGVyZWRUYWJzSW5Tb3J0ZWRUYWJzLmxlbmd0aCA/IHVuT3JkZXJlZFRhYnNJblNvcnRlZFRhYnNbMF0gOiB0aGlzLnNvcnRlZFRhYnNbMF07XG4gIH1cblxuICAvLyBSZWZhY3RvcmVkIHVuZGVyIEVYVUktMTEwIHRvIGFkZHJlc3MgaW5maW5pdGUgdGFiIGxvb3AgdG8gdXNlIHRhYkluZGV4Q2hhbmdlZCBpbnN0ZWFkXG4gIHB1YmxpYyB0YWJDaGFuZ2VkKHRhYkluZGV4Q2hhbmdlZDogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3QgbWF0VGFiID0gdGhpcy50YWJHcm91cC5fdGFicy5maW5kKHRhYiA9PiB0YWIuaXNBY3RpdmUpO1xuICAgIGNvbnN0IHRhYkxhYmVsID0gbWF0VGFiLnRleHRMYWJlbDtcbiAgICAvLyBzb3J0ZWRUYWJzIGFyZSBmcmFnbWVudHNcbiAgICAvLyBhcHBlbmRlZC9wcmVwZXBlbmRlZCB0YWJzIHVzZSByb3V0ZXIgbmF2aWdhdGlvblxuICAgIGlmICgodGFiSW5kZXhDaGFuZ2VkIDw9IDEgJiYgdGhpcy5wcmVwZW5kZWRUYWJzICYmIHRoaXMucHJlcGVuZGVkVGFicy5sZW5ndGgpIHx8XG4gICAgICAodGhpcy5hcHBlbmRlZFRhYnM/Lmxlbmd0aCAmJiAodGFiTGFiZWwgPT09IHRoaXMuSEVBUklOR1NfVEFCX0xBQkVMXG4gICAgICAgIHx8IHRhYkxhYmVsID09PSB0aGlzLnJweFRyYW5zbGF0aW9uUGlwZS50cmFuc2Zvcm0odGhpcy5IRUFSSU5HU19UQUJfTEFCRUwpKSkpIHtcbiAgICAgIC8vIEhhY2sgdG8gZ2V0IElEIGZyb20gdGFiIGFzIGl0J3Mgbm90IGVhc2lseSBhY2hpZXZlZCB0aHJvdWdoIEFuZ3VsYXIgTWF0ZXJpYWwgVGFic1xuICAgICAgY29uc3QgdGFiID0gbWF0VGFiWydfdmlld0NvbnRhaW5lclJlZiddIGFzIFZpZXdDb250YWluZXJSZWY7XG4gICAgICBjb25zdCBpZCA9ICh0YWIuZWxlbWVudC5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50KS5pZDtcbiAgICAgIC8vIGNhc2VzL2Nhc2UtZGV0YWlscy86Y2FzZUlkL2hlYXJpbmdzXG4gICAgICAvLyBjYXNlcy9jYXNlLWRldGFpbHMvOmNhc2VJZC9yb2xlcy1hbmQtYWNjZXNzXG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbaWRdLCB7IHJlbGF0aXZlVG86IHRoaXMucm91dGUgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFJvdXRpbmcgaGVyZSBpcyBiYXNlZCBvbiB0YWIgbGFiZWwsIG5vdCBpZGVhbFxuICAgICAgLy8gY2FzZXMvY2FzZS1kZXRhaWxzLzpjYXNlSWQjdGFiTGFiZWxcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnY2FzZXMnLCAnY2FzZS1kZXRhaWxzJywgdGhpcy5jYXNlRGV0YWlscy5jYXNlX2lkXSwgeyBmcmFnbWVudDogdGFiTGFiZWwgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uTGlua0NsaWNrZWQodHJpZ2dlck91dHB1dEV2ZW50VGV4dDogc3RyaW5nKTogdm9pZCB7XG4gICAgLy8gR2V0IHRoZSAqYWJzb2x1dGUqIChub3QgcmVsYXRpdmUpIGluZGV4IG9mIHRoZSB0YXJnZXQgdGFiIGFuZCBzZXQgYXMgdGhlIGFjdGl2ZSB0YWIsIHVzaW5nIHRoZSBzZWxlY3RlZEluZGV4IGlucHV0XG4gICAgLy8gb2YgbWF0LXRhYi1ncm91cCAoYm91bmQgdG8gc2VsZWN0ZWRUYWJJbmRleClcbiAgICBjb25zdCB0YXJnZXRUYWJJbmRleCA9IHRoaXMudGFiR3JvdXAuX3RhYnMudG9BcnJheSgpLmZpbmRJbmRleCh0YWIgPT4gdGFiLnRleHRMYWJlbCA9PT0gdHJpZ2dlck91dHB1dEV2ZW50VGV4dCk7XG4gICAgaWYgKHRhcmdldFRhYkluZGV4ID4gLTEpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRUYWJJbmRleCA9IHRhcmdldFRhYkluZGV4O1xuICAgICAgdGhpcy50YWJHcm91cC5zZWxlY3RlZEluZGV4ID0gdGFyZ2V0VGFiSW5kZXg7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGhhc0FjdGl2ZUNhc2VGbGFncygpOiBib29sZWFuIHtcbiAgICAvLyBEZXRlcm1pbmUgd2hpY2ggdGFiIGNvbnRhaW5zIHRoZSBGbGFnTGF1bmNoZXIgQ2FzZUZpZWxkIHR5cGUsIGZyb20gdGhlIENhc2VWaWV3IG9iamVjdCBpbiB0aGUgc25hcHNob3QgZGF0YVxuICAgIGNvbnN0IGNhc2VGbGFnc1RhYiA9IHRoaXMuY2FzZURldGFpbHM/LnRhYnNcbiAgICAgID8gKHRoaXMuY2FzZURldGFpbHMudGFicykuZmlsdGVyKFxuICAgICAgICB0YWIgPT4gdGFiLmZpZWxkcyAmJiB0YWIuZmllbGRzLnNvbWUoY2FzZUZpZWxkID0+IEZpZWxkc1V0aWxzLmlzRmxhZ0xhdW5jaGVyQ2FzZUZpZWxkKGNhc2VGaWVsZCkpKVswXVxuICAgICAgOiBudWxsO1xuXG4gICAgaWYgKGNhc2VGbGFnc1RhYikge1xuICAgICAgLy8gQ2hlY2sgd2hldGhlciB0aGUgRmxhZ0xhdW5jaGVyIENhc2VGaWVsZCBpcyBpbiBleHRlcm5hbCBtb2RlIG9yIG5vdDsgdGhlIG5vdGlmaWNhdGlvbiBiYW5uZXIgc2hvdWxkIG5vdCBiZVxuICAgICAgLy8gZGlzcGxheWVkIGZvciBleHRlcm5hbCB1c2Vyc1xuICAgICAgdGhpcy5jYXNlRmxhZ3NFeHRlcm5hbFVzZXIgPSBjYXNlRmxhZ3NUYWIuZmllbGRzLmZpbmQoXG4gICAgICAgIGNhc2VGaWVsZCA9PiBGaWVsZHNVdGlscy5pc0ZsYWdMYXVuY2hlckNhc2VGaWVsZChjYXNlRmllbGQpKS5kaXNwbGF5X2NvbnRleHRfcGFyYW1ldGVyID09PSB0aGlzLmNhc2VGbGFnc1JlYWRFeHRlcm5hbE1vZGU7XG5cbiAgICAgIC8vIEdldCB0aGUgYWN0aXZlIGNhc2UgZmxhZ3MgY291bnRcbiAgICAgIC8vIENhbm5vdCBmaWx0ZXIgb3V0IGFueXRoaW5nIG90aGVyIHRoYW4gdG8gcmVtb3ZlIHRoZSBGbGFnTGF1bmNoZXIgQ2FzZUZpZWxkIGJlY2F1c2UgRmxhZ3MgZmllbGRzIG1heSBiZVxuICAgICAgLy8gY29udGFpbmVkIGluIG90aGVyIENhc2VGaWVsZCBpbnN0YW5jZXMsIGVpdGhlciBhcyBhIHN1Yi1maWVsZCBvZiBhIENvbXBsZXggZmllbGQsIG9yIGZpZWxkcyBpbiBhIGNvbGxlY3Rpb25cbiAgICAgIC8vIChvciBzdWItZmllbGRzIG9mIENvbXBsZXggZmllbGRzIGluIGEgY29sbGVjdGlvbilcbiAgICAgIGNvbnN0IGFjdGl2ZUNhc2VGbGFncyA9IGNhc2VGbGFnc1RhYi5maWVsZHNcbiAgICAgICAgLmZpbHRlcihjYXNlRmllbGQgPT4gIUZpZWxkc1V0aWxzLmlzRmxhZ0xhdW5jaGVyQ2FzZUZpZWxkKGNhc2VGaWVsZCkgJiYgY2FzZUZpZWxkLnZhbHVlKVxuICAgICAgICAucmVkdWNlKChhY3RpdmUsIGNhc2VGbGFnKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIEZpZWxkc1V0aWxzLmNvdW50QWN0aXZlRmxhZ3NJbkNhc2VGaWVsZChhY3RpdmUsIGNhc2VGbGFnKTtcbiAgICAgICAgfSwgMCk7XG5cbiAgICAgIGlmIChhY3RpdmVDYXNlRmxhZ3MgPiAwKSB7XG4gICAgICAgIGNvbnN0IGRlc2NyaXB0aW9uID0gYWN0aXZlQ2FzZUZsYWdzID4gMVxuICAgICAgICAgID8gYFRoZXJlIGFyZSAke2FjdGl2ZUNhc2VGbGFnc30gYWN0aXZlIGZsYWdzIG9uIHRoaXMgY2FzZS5gIDogJ1RoZXJlIGlzIDEgYWN0aXZlIGZsYWcgb24gdGhpcyBjYXNlLic7XG4gICAgICAgIC8vIEluaXRpYWxpc2UgYW5kIGRpc3BsYXkgbm90aWZpY2F0aW9uIGJhbm5lclxuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbkJhbm5lckNvbmZpZyA9IHtcbiAgICAgICAgICBiYW5uZXJUeXBlOiBOb3RpZmljYXRpb25CYW5uZXJUeXBlLklORk9STUFUSU9OLFxuICAgICAgICAgIGhlYWRpbmdUZXh0OiAnSW1wb3J0YW50JyxcbiAgICAgICAgICBkZXNjcmlwdGlvbixcbiAgICAgICAgICBzaG93TGluazogdHJ1ZSxcbiAgICAgICAgICBsaW5rVGV4dDogJ1ZpZXcgY2FzZSBmbGFncycsXG4gICAgICAgICAgdHJpZ2dlck91dHB1dEV2ZW50OiB0cnVlLFxuICAgICAgICAgIHRyaWdnZXJPdXRwdXRFdmVudFRleHQ6IGNhc2VGbGFnc1RhYi5sYWJlbCxcbiAgICAgICAgICBoZWFkZXJDbGFzczogTm90aWZpY2F0aW9uQmFubmVySGVhZGVyQ2xhc3MuSU5GT1JNQVRJT05cbiAgICAgICAgfTtcblxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogSW5kaWNhdGVzIHRoYXQgYSBDYXNlRmllbGQgaXMgdG8gYmUgZGlzcGxheWVkIHdpdGhvdXQgYSBsYWJlbCwgYXMgaXMgZXhwZWN0ZWQgZm9yIGFsbCBDb21wb25lbnRMYXVuY2hlci10eXBlXG4gICAqIGZpZWxkcy5cbiAgICogQHBhcmFtIGNhc2VGaWVsZCBUaGUgYENhc2VGaWVsZGAgaW5zdGFuY2UgdG8gY2hlY2tcbiAgICogQHJldHVybnMgYHRydWVgIGlmIGl0IHNob3VsZCBub3QgaGF2ZSBhIGxhYmVsOyBgZmFsc2VgIG90aGVyd2lzZVxuICAgKi9cbiAgcHVibGljIGlzRmllbGRUb0hhdmVOb0xhYmVsKGNhc2VGaWVsZDogQ2FzZUZpZWxkKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGNhc2VGaWVsZC5maWVsZF90eXBlLnR5cGUgPT09ICdDb21wb25lbnRMYXVuY2hlcidcbiAgICAgICYmIGNhc2VGaWVsZC5kaXNwbGF5X2NvbnRleHRfcGFyYW1ldGVyID09PSAnI0FSR1VNRU5UKENhc2VGaWxlVmlldyknO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0KCk6IHZvaWQge1xuICAgIC8vIENsb25lIGFuZCBzb3J0IHRhYnMgYXJyYXlcbiAgICB0aGlzLnNvcnRlZFRhYnMgPSB0aGlzLm9yZGVyU2VydmljZS5zb3J0KHRoaXMuY2FzZURldGFpbHM/LnRhYnMpO1xuICAgIHRoaXMuY2FzZUZpZWxkcyA9IHRoaXMuZ2V0VGFiRmllbGRzKCk7XG4gICAgdGhpcy5zb3J0ZWRUYWJzID0gdGhpcy5zb3J0VGFiRmllbGRzQW5kRmlsdGVyVGFicyh0aGlzLnNvcnRlZFRhYnMpO1xuICAgIHRoaXMuZm9ybUdyb3VwID0gdGhpcy5idWlsZEZvcm1Hcm91cCh0aGlzLmNhc2VGaWVsZHMpO1xuICAgIGlmICh0aGlzLmNhc2VEZXRhaWxzPy50cmlnZ2VycyAmJiB0aGlzLmVycm9yKSB7XG4gICAgICB0aGlzLnJlc2V0RXJyb3JzKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzb3J0VGFiRmllbGRzQW5kRmlsdGVyVGFicyh0YWJzOiBDYXNlVGFiW10pOiBDYXNlVGFiW10ge1xuICAgIHJldHVybiB0YWJzPy5tYXAodGFiID0+IE9iamVjdC5hc3NpZ24oe30sIHRhYiwgeyBmaWVsZHM6IHRoaXMub3JkZXJTZXJ2aWNlLnNvcnQodGFiLmZpZWxkcykgfSkpXG4gICAgICAuZmlsdGVyKHRhYiA9PiBTaG93Q29uZGl0aW9uLmdldEluc3RhbmNlKHRhYi5zaG93X2NvbmRpdGlvbikubWF0Y2hCeUNvbnRleHRGaWVsZHModGhpcy5jYXNlRmllbGRzKSk7XG4gIH1cblxuICBwcml2YXRlIGdldFRhYkZpZWxkcygpOiBDYXNlRmllbGRbXSB7XG4gICAgY29uc3QgY2FzZURhdGFGaWVsZHMgPSB0aGlzLnNvcnRlZFRhYnM/LnJlZHVjZSgoYWNjLCB0YWIpID0+IHtcbiAgICAgIHJldHVybiBhY2MuY29uY2F0KHBsYWluVG9DbGFzcyhDYXNlRmllbGQsIHRhYi5maWVsZHMpKTtcbiAgICB9LCBbXSk7XG5cbiAgICByZXR1cm4gY2FzZURhdGFGaWVsZHM/LmNvbmNhdCh0aGlzLmNhc2VEZXRhaWxzLm1ldGFkYXRhRmllbGRzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGb3IgRVVJLTM4MjU6XG4gICAqIEJ1aWxkcyBhIEZvcm1Hcm91cCBmcm9tIGFsbCB0aGUgQ2FzZUZpZWxkcyBjb250YWluZWQgd2l0aGluIHRoZSB2aWV3LlxuICAgKiBUaGlzIEZvcm1Hcm91cCBpcyBuZWNlc3NhcnkgZm9yIGV2YWx1YXRpb24gdGhlIHNob3cvaGlkZSBjb25kaXRpb25zIG9mXG4gICAqIGZpZWxkcyB0aGF0IGFyZSBkZXBlbmRlbnQgb24gYSBmaWVsZCBvbmx5IGF2YWlsYWJsZSBvbiBhIERJRkZFUkVOVCB0YWIuXG4gICAqL1xuICBwcml2YXRlIGJ1aWxkRm9ybUdyb3VwKGNhc2VGaWVsZHM6IENhc2VGaWVsZFtdKTogRm9ybUdyb3VwIHtcbiAgICBsZXQgdmFsdWU6IG9iamVjdCA9IHt9O1xuICAgIGlmIChjYXNlRmllbGRzKSB7XG4gICAgICBjYXNlRmllbGRzLmZvckVhY2goY2FzZUZpZWxkID0+IHtcbiAgICAgICAgdmFsdWUgPSB7XG4gICAgICAgICAgLi4udmFsdWUsXG4gICAgICAgICAgW2Nhc2VGaWVsZC5pZF06IGNhc2VGaWVsZC52YWx1ZVxuICAgICAgICB9O1xuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBuZXcgRm9ybUdyb3VwKHsgZGF0YTogbmV3IEZvcm1Db250cm9sKHZhbHVlKSB9KTtcbiAgfVxuXG4gIHByaXZhdGUgcmVzZXRFcnJvcnMoKTogdm9pZCB7XG4gICAgdGhpcy5lcnJvck5vdGlmaWVyU2VydmljZS5hbm5vdW5jZUVycm9yKG51bGwpO1xuICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmNsZWFyKCk7XG4gIH1cbn1cbiIsIjwhLS0gR2VuZXJpYyBlcnJvciBoZWFkaW5nIGFuZCBlcnJvciBtZXNzYWdlIHRvIGJlIGRpc3BsYXllZCBvbmx5IGlmIHRoZXJlIGFyZSBubyBzcGVjaWZpYyBjYWxsYmFjayBlcnJvcnMgb3Igd2FybmluZ3MsIG9yIG5vIGVycm9yIGRldGFpbHMgLS0+XG48ZGl2ICpuZ0lmPVwiZXJyb3IgJiYgIShlcnJvci5jYWxsYmFja0Vycm9ycyB8fCBlcnJvci5jYWxsYmFja1dhcm5pbmdzIHx8IGVycm9yLmRldGFpbHMpXCIgY2xhc3M9XCJlcnJvci1zdW1tYXJ5XCJcbiAgICAgcm9sZT1cImdyb3VwXCIgYXJpYS1sYWJlbGxlZGJ5PVwiZWRpdC1jYXNlLWV2ZW50X2Vycm9yLXN1bW1hcnktaGVhZGluZ1wiIHRhYmluZGV4PVwiLTFcIj5cbiAgPGgxIGNsYXNzPVwiaGVhZGluZy1oMSBlcnJvci1zdW1tYXJ5LWhlYWRpbmdcIiBpZD1cImVkaXQtY2FzZS1ldmVudF9lcnJvci1zdW1tYXJ5LWhlYWRpbmdcIj5cbiAgICB7eydTb21ldGhpbmcgd2VudCB3cm9uZycgfCBycHhUcmFuc2xhdGV9fVxuICA8L2gxPlxuICA8ZGl2IGNsYXNzPVwiZ292dWstZXJyb3Itc3VtbWFyeV9fYm9keVwiIGlkPVwiZWRpdC1jYXNlLWV2ZW50X2Vycm9yLXN1bW1hcnktYm9keVwiPlxuICAgIDxwPnt7XCJXZSdyZSB3b3JraW5nIHRvIGZpeCB0aGUgcHJvYmxlbS4gVHJ5IGFnYWluIHNob3J0bHkuXCIgfCBycHhUcmFuc2xhdGV9fTwvcD5cbiAgICA8cD5cbiAgICAgIDxhIGhyZWY9XCJnZXQtaGVscFwiIHRhcmdldD1cIl9ibGFua1wiPlxuICAgICAgICB7e1wiQ29udGFjdCB1c1wiIHwgcnB4VHJhbnNsYXRlfX08L2E+IHt7XCJpZiB5b3UncmUgc3RpbGwgaGF2aW5nIHByb2JsZW1zLlwiIHwgcnB4VHJhbnNsYXRlfX1cbiAgICA8L3A+XG4gIDwvZGl2PlxuPC9kaXY+XG48IS0tIENhbGxiYWNrIGVycm9yIGhlYWRpbmcgYW5kIGVycm9yIG1lc3NhZ2UgdG8gYmUgZGlzcGxheWVkIGlmIHRoZXJlIGFyZSBzcGVjaWZpYyBlcnJvciBkZXRhaWxzIC0tPlxuPGRpdiAqbmdJZj1cImVycm9yICYmIGVycm9yLmRldGFpbHNcIiBjbGFzcz1cImVycm9yLXN1bW1hcnlcIiByb2xlPVwiZ3JvdXBcIlxuICAgICBhcmlhLWxhYmVsbGVkYnk9XCJlZGl0LWNhc2UtZXZlbnRfZXJyb3Itc3VtbWFyeS1oZWFkaW5nXCIgdGFiaW5kZXg9XCItMVwiPlxuICA8aDIgY2xhc3M9XCJoZWFkaW5nLWgyIGVycm9yLXN1bW1hcnktaGVhZGluZ1wiIGlkPVwiZWRpdC1jYXNlLWV2ZW50X2Vycm9yLXN1bW1hcnktaGVhZGluZ1wiPlxuICAgIHt7J1RoZSBjYWxsYmFjayBkYXRhIGZhaWxlZCB2YWxpZGF0aW9uJyB8IHJweFRyYW5zbGF0ZX19XG4gIDwvaDI+XG4gIDxwPnt7ZXJyb3IubWVzc2FnZSB8IHJweFRyYW5zbGF0ZX19PC9wPlxuICA8dWwgKm5nSWY9XCJlcnJvci5kZXRhaWxzPy5maWVsZF9lcnJvcnNcIiBjbGFzcz1cImVycm9yLXN1bW1hcnktbGlzdFwiPlxuICAgIDxsaSAqbmdGb3I9XCJsZXQgZmllbGRFcnJvciBvZiBlcnJvci5kZXRhaWxzLmZpZWxkX2Vycm9yc1wiPlxuICAgICAge3tmaWVsZEVycm9yLm1lc3NhZ2UgfCBycHhUcmFuc2xhdGV9fVxuICAgIDwvbGk+XG4gIDwvdWw+XG48L2Rpdj5cbjxjY2QtY2FsbGJhY2stZXJyb3JzXG4gIFt0cmlnZ2VyVGV4dENvbnRpbnVlXT1cInRyaWdnZXJUZXh0U3RhcnRcIlxuICBbdHJpZ2dlclRleHRJZ25vcmVdPVwidHJpZ2dlclRleHRJZ25vcmVXYXJuaW5nc1wiXG4gIFtjYWxsYmFja0Vycm9yc1N1YmplY3RdPVwiY2FsbGJhY2tFcnJvcnNTdWJqZWN0XCJcbiAgKGNhbGxiYWNrRXJyb3JzQ29udGV4dCk9XCJjYWxsYmFja0Vycm9yc05vdGlmeSgkZXZlbnQpXCI+XG48L2NjZC1jYWxsYmFjay1lcnJvcnM+XG48Y2NkLWFjdGl2aXR5IFtjYXNlSWRdPVwiY2FzZURldGFpbHMuY2FzZV9pZFwiIFtkaXNwbGF5TW9kZV09XCJCQU5ORVJcIj48L2NjZC1hY3Rpdml0eT5cbjxkaXYgY2xhc3M9XCJncmlkLXJvd1wiPlxuICA8ZGl2IGNsYXNzPVwiY29sdW1uLW9uZS1oYWxmXCI+XG4gICAgPGNjZC1jYXNlLWhlYWRlciBbY2FzZURldGFpbHNdPVwiY2FzZURldGFpbHNcIj48L2NjZC1jYXNlLWhlYWRlcj5cbiAgICA8ZGl2IGNsYXNzPVwiY2FzZS12aWV3ZXItY29udHJvbHNcIiAqbmdJZj1cImhhc1ByaW50ICYmICFpc0RyYWZ0KCkgJiYgaXNQcmludEVuYWJsZWQoKVwiPlxuICAgICAgPGEgaWQ9XCJjYXNlLXZpZXdlci1jb250cm9sLXByaW50XCIgcm91dGVyTGluaz1cInByaW50XCIgY2xhc3M9XCJidXR0b24gYnV0dG9uLXNlY29uZGFyeVwiPnt7J1ByaW50JyB8IHJweFRyYW5zbGF0ZX19PC9hPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiAqbmdJZj1cImhhc0V2ZW50U2VsZWN0b3JcIiBjbGFzcz1cImNvbHVtbi1vbmUtaGFsZlwiPlxuICAgIDxjY2QtZXZlbnQtdHJpZ2dlciBbaXNEaXNhYmxlZF09XCJpc1RyaWdnZXJCdXR0b25EaXNhYmxlZCgpXCIgW3RyaWdnZXJzXT1cImNhc2VEZXRhaWxzLnRyaWdnZXJzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgW3RyaWdnZXJUZXh0XT1cInRyaWdnZXJUZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgW2V2ZW50SWRdPVwiZXZlbnRJZFwiXG4gICAgICAgICAgICAgICAgICAgICAgIChvblRyaWdnZXJDaGFuZ2UpPVwiY2xlYXJFcnJvcnNBbmRXYXJuaW5ncygpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgKG9uVHJpZ2dlclN1Ym1pdCk9XCJhcHBseVRyaWdnZXIoJGV2ZW50KVwiPjwvY2NkLWV2ZW50LXRyaWdnZXI+XG4gIDwvZGl2PlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwiZ3JpZC1yb3dcIiAqbmdJZj1cImFjdGl2ZUNhc2VGbGFncyAmJiAhY2FzZUZsYWdzRXh0ZXJuYWxVc2VyXCI+XG4gIDxkaXYgY2xhc3M9XCJjb2x1bW4tZnVsbFwiPlxuICAgIDxjY2Qtbm90aWZpY2F0aW9uLWJhbm5lciBbbm90aWZpY2F0aW9uQmFubmVyQ29uZmlnXT1cIm5vdGlmaWNhdGlvbkJhbm5lckNvbmZpZ1wiIChsaW5rQ2xpY2tlZCk9XCJvbkxpbmtDbGlja2VkKCRldmVudClcIj5cbiAgICA8L2NjZC1ub3RpZmljYXRpb24tYmFubmVyPlxuICA8L2Rpdj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cImdyaWQtcm93XCI+XG4gIDxkaXYgY2xhc3M9XCJjb2x1bW4tZnVsbFwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJoYXNUYWJzUHJlc2VudCgpXCI+XG4gICAgICA8bWF0LXRhYi1ncm91cCAjdGFiR3JvdXAgYW5pbWF0aW9uRHVyYXRpb249XCIwbXNcIiAoc2VsZWN0ZWRJbmRleENoYW5nZSk9XCJ0YWJDaGFuZ2VkKCRldmVudClcIiBbZGlzYWJsZVJpcHBsZV09XCJ0cnVlXCJcbiAgICAgICAgW3NlbGVjdGVkSW5kZXhdPVwic2VsZWN0ZWRUYWJJbmRleFwiPlxuICAgICAgICA8bWF0LXRhYiAqbmdGb3I9XCJsZXQgdGFiIG9mIHByZXBlbmRlZFRhYnNcIiBbaWRdPVwidGFiLmlkXCIgW2xhYmVsXT1cInRhYi5sYWJlbCB8IHJweFRyYW5zbGF0ZVwiPlxuICAgICAgICA8L21hdC10YWI+XG4gICAgICAgIDxtYXQtdGFiICpuZ0Zvcj1cImxldCB0YWIgb2Ygc29ydGVkVGFiczsgbGV0IGN1cklkeD1pbmRleFwiIFtpZF09XCJ0YWIuaWRcIiBbbGFiZWxdPVwidGFiLmxhYmVsIHwgcnB4VHJhbnNsYXRlXCIgW2FyaWEtbGFiZWxdPVwiY3VySWR4ID09PSAwID8gdGFiLmxhYmVsICsgJywgUGxlYXNlIHVzZSBsZWZ0IGFuZCByaWdodCBhcnJvdyBrZXlzIHRvIG5hdmlnYXRlIGNhc2UgdGFicycgOiAnJyB8IHJweFRyYW5zbGF0ZVwiPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBtYXRUYWJDb250ZW50PlxuICAgICAgICAgICAgPHRhYmxlIFtjbGFzc109XCJ0YWIuaWRcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIidjYXNlIHZpZXdlciB0YWJsZScgfCBycHhUcmFuc2xhdGVcIj5cbiAgICAgICAgICAgICAgPHRib2R5PlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBmaWVsZCBvZiB0YWIgfCBjY2RUYWJGaWVsZHMgfCBjY2RSZWFkRmllbGRzRmlsdGVyOmZhbHNlIDp1bmRlZmluZWQgOnRydWUgOiBmb3JtR3JvdXA/LmNvbnRyb2xzWydkYXRhJ11cIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNjZExhYmVsU3Vic3RpdHV0b3IgW2Nhc2VGaWVsZF09XCJmaWVsZFwiIFtjb250ZXh0RmllbGRzXT1cImNhc2VGaWVsZHNcIiBbaGlkZGVuXT1cImZpZWxkLmhpZGRlblwiPlxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiIShmaWVsZCB8IGNjZElzQ29tcG91bmQpXCI+XG4gICAgICAgICAgICAgICAgICAgIDx0ciAqbmdTd2l0Y2hDYXNlPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgIDx0aCBpZD1cImNhc2Utdmlld2VyLWZpZWxkLWxhYmVsXCIgKm5nSWY9XCIhaXNGaWVsZFRvSGF2ZU5vTGFiZWwoZmllbGQpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FzZS12aWV3ZXItbGFiZWwgdGV4dC0xNlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICB7e2ZpZWxkLmxhYmVsIHwgcnB4VHJhbnNsYXRlfX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8L3RoPlxuICAgICAgICAgICAgICAgICAgICAgIDx0ZCBbaWRdPVwiJ2Nhc2Utdmlld2VyLWZpZWxkLXJlYWQtLScgKyBmaWVsZC5pZFwiIHNjb3BlPVwiY29sXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtMTZcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGNjZC1maWVsZC1yZWFkIFt0b3BMZXZlbEZvcm1Hcm91cF09XCJmb3JtR3JvdXA/LmNvbnRyb2xzWydkYXRhJ11cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Nhc2VGaWVsZF09XCJmaWVsZFwiIFtjYXNlUmVmZXJlbmNlXT1cImNhc2VEZXRhaWxzLmNhc2VfaWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21hcmtkb3duVXNlSHJlZkFzUm91dGVyTGlua109XCJtYXJrZG93blVzZUhyZWZBc1JvdXRlckxpbmtcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jY2QtZmllbGQtcmVhZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgICA8dHIgKm5nU3dpdGNoQ2FzZT1cImZhbHNlXCIgY2xhc3M9XCJjb21wb3VuZC1maWVsZFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDx0aCBbaWRdPVwiJ2Nhc2Utdmlld2VyLWZpZWxkLXJlYWQtLScgKyBmaWVsZC5pZFwiIHNjb3BlPVwiY29sXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtMTZcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGNjZC1maWVsZC1yZWFkIFt0b3BMZXZlbEZvcm1Hcm91cF09XCJmb3JtR3JvdXAuY29udHJvbHNbJ2RhdGEnXVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2FzZUZpZWxkXT1cImZpZWxkXCIgW2Nhc2VSZWZlcmVuY2VdPVwiY2FzZURldGFpbHMuY2FzZV9pZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWFya2Rvd25Vc2VIcmVmQXNSb3V0ZXJMaW5rXT1cIm1hcmtkb3duVXNlSHJlZkFzUm91dGVyTGlua1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2NjZC1maWVsZC1yZWFkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDwvdGJvZHk+XG4gICAgICAgICAgICA8L3RhYmxlPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvbWF0LXRhYj5cbiAgICAgICAgPG1hdC10YWIgKm5nRm9yPVwibGV0IHRhYiBvZiBhcHBlbmRlZFRhYnNcIiBbaWRdPVwidGFiLmlkXCIgW2xhYmVsXT1cInRhYi5sYWJlbCB8IHJweFRyYW5zbGF0ZVwiPlxuICAgICAgICA8L21hdC10YWI+XG4gICAgICA8L21hdC10YWItZ3JvdXA+XG4gICAgICA8cm91dGVyLW91dGxldCAqbmdJZj1cIihwcmVwZW5kZWRUYWJzICYmIHByZXBlbmRlZFRhYnMubGVuZ3RoKSB8fCAoYXBwZW5kZWRUYWJzICYmIGFwcGVuZGVkVGFicy5sZW5ndGgpXCI+PC9yb3V0ZXItb3V0bGV0PlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
724
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CaseFullAccessViewComponent, { className: "CaseFullAccessViewComponent", filePath: "lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.ts", lineNumber: 46 }); })();
|
|
725
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1mdWxsLWFjY2Vzcy12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9jYXNlLXZpZXdlci9jYXNlLWZ1bGwtYWNjZXNzLXZpZXcvY2FzZS1mdWxsLWFjY2Vzcy12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9jYXNlLXZpZXdlci9jYXNlLWZ1bGwtYWNjZXNzLXZpZXcvY2FzZS1mdWxsLWFjY2Vzcy12aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQ0wsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQzVCLFNBQVMsRUFDekIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsZUFBZSxJQUFJLFNBQVMsRUFBNEMsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6SCxPQUFPLEVBQTBCLGlCQUFpQixJQUFJLFdBQVcsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3pHLE9BQU8sRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFVLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV2RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMs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WUFBdkQsMkpBQXlCLGdDQUE0QixJQUFDO1lBQ3hELGlCQUFzQjtZQUN0QixrQ0FBbUY7WUFFakYsQUFERiw4QkFBc0IsYUFDUztZQUMzQixxQ0FBK0Q7WUFDL0QsNEVBQXFGO1lBR3ZGLGlCQUFNO1lBQ04sNEVBQXNEO1lBT3hELGlCQUFNO1lBQ04sNEVBQXdFO1lBT3RFLEFBREYsK0JBQXNCLGVBQ0s7WUFDdkIsaUdBQXVDO1lBaUQzQyxBQURFLGlCQUFNLEVBQ0Y7O1lBekdBLGtIQUFpRjtZQWNqRixjQUE0QjtZQUE1QixxREFBNEI7WUFhaEMsY0FBd0M7WUFFeEMsQUFEQSxBQURBLDBEQUF3QyxvREFDTyxvREFDQTtZQUduQyxjQUE4QjtZQUFDLEFBQS9CLGdEQUE4QiwyQkFBdUI7WUFHOUMsZUFBMkI7WUFBM0IsNkNBQTJCO1lBQ1QsY0FBZ0Q7WUFBaEQsNkVBQWdEO1lBSS9FLGNBQXNCO1lBQXRCLDJDQUFzQjtZQVFQLGNBQStDO1lBQS9DLHdFQUErQztZQVFuRCxlQUFzQjtZQUF0QiwyQ0FBc0I7OztpRkRaNUIsMkJBQTJCO2NBTHZDLFNBQVM7MkJBQ0UsMkJBQTJCOzRqQkFZckIsUUFBUTtrQkFBdkIsS0FBSztZQUNVLGdCQUFnQjtrQkFBL0IsS0FBSztZQUNVLFdBQVc7a0JBQTFCLEtBQUs7WUFDVSxhQUFhO2tCQUE1QixLQUFLO1lBQ1UsWUFBWTtrQkFBM0IsS0FBSztZQTRCMkMsUUFBUTtrQkFBeEQsU0FBUzttQkFBQyxVQUFVLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFOztrRkF4QzdCLDJCQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIElucHV0LCBOZ1pvbmUsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQsXG4gIFNpbXBsZUNoYW5nZXMsIFZpZXdDaGlsZCwgVmlld0NvbnRhaW5lclJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRMZWdhY3lEaWFsb2cgYXMgTWF0RGlhbG9nLCBNYXRMZWdhY3lEaWFsb2dDb25maWcgYXMgTWF0RGlhbG9nQ29uZmlnIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGVnYWN5LWRpYWxvZyc7XG5pbXBvcnQgeyBNYXRMZWdhY3lUYWIgYXMgTWF0VGFiLCBNYXRMZWdhY3lUYWJHcm91cCBhcyBNYXRUYWJHcm91cCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xlZ2FjeS10YWJzJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBOYXZpZ2F0aW9uRW5kLCBQYXJhbXMsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBwbGFpblRvQ2xhc3MgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBScHhUcmFuc2xhdGVQaXBlIH0gZnJvbSAncnB4LXh1aS10cmFuc2xhdGlvbic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7XG4gIE5vdGlmaWNhdGlvbkJhbm5lckNvbmZpZyxcbiAgTm90aWZpY2F0aW9uQmFubmVySGVhZGVyQ2xhc3MsXG4gIE5vdGlmaWNhdGlvbkJhbm5lclR5cGVcbn0gZnJvbSAnLi4vLi4vLi4vLi4vY29tcG9uZW50cy9iYW5uZXJzL25vdGlmaWNhdGlvbi1iYW5uZXInO1xuaW1wb3J0IHsgU2hvd0NvbmRpdGlvbiB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHsgQWN0aXZpdHksIENhc2VGaWVsZCwgQ2FzZVRhYiwgQ2FzZVZpZXcsIENhc2VWaWV3VHJpZ2dlciwgRFJBRlRfUVVFUllfUEFSQU0sIERpc3BsYXlNb2RlLCBEcmFmdCB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbic7XG5pbXBvcnQgeyBDYXNlVmlld0V2ZW50SWRzIH0gZnJvbSAnLi4vLi4vLi4vZG9tYWluL2Nhc2Utdmlldy9jYXNlLXZpZXctZXZlbnQtaWRzLmVudW0nO1xuaW1wb3J0IHtcbiAgQWN0aXZpdHlQb2xsaW5nU2VydmljZSxcbiAgQWxlcnRTZXJ2aWNlLFxuICBEcmFmdFNlcnZpY2UsXG4gIEVycm9yTm90aWZpZXJTZXJ2aWNlLFxuICBGaWVsZHNVdGlscyxcbiAgTG9hZGluZ1NlcnZpY2UsXG4gIE5hdmlnYXRpb25Ob3RpZmllclNlcnZpY2UsXG4gIE5hdmlnYXRpb25PcmlnaW4sXG4gIE9yZGVyU2VydmljZSxcbiAgU2Vzc2lvblN0b3JhZ2VTZXJ2aWNlXG59IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7IENvbnZlcnRIcmVmVG9Sb3V0ZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY2FzZS1lZGl0b3Ivc2VydmljZXMvY29udmVydC1ocmVmLXRvLXJvdXRlci5zZXJ2aWNlJztcbmltcG9ydCB7IERlbGV0ZU9yQ2FuY2VsRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vZGlhbG9ncyc7XG5pbXBvcnQgeyBDYWxsYmFja0Vycm9yc0NvbnRleHQgfSBmcm9tICcuLi8uLi9lcnJvcic7XG5pbXBvcnQgeyBpbml0RGlhbG9nIH0gZnJvbSAnLi4vLi4vaGVscGVycyc7XG5pbXBvcnQgeyBMaW5rZWRDYXNlc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9wYWxldHRlL2xpbmtlZC1jYXNlcy9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBDYXNlRmxhZ1N0YXRlU2VydmljZSB9IGZyb20gJy4uLy4uL2Nhc2UtZWRpdG9yL3NlcnZpY2VzL2Nhc2UtZmxhZy1zdGF0ZS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2NkLWNhc2UtZnVsbC1hY2Nlc3MtdmlldycsXG4gIHRlbXBsYXRlVXJsOiAnLi9jYXNlLWZ1bGwtYWNjZXNzLXZpZXcuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jYXNlLWZ1bGwtYWNjZXNzLXZpZXcuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBDYXNlRnVsbEFjY2Vzc1ZpZXdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBPUklHSU5fUVVFUllfUEFSQU0gPSAnb3JpZ2luJztcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBUUklHR0VSX1RFWFRfU1RBUlQgPSAnR28nO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFRSSUdHRVJfVEVYVF9DT05USU5VRSA9ICdJZ25vcmUgV2FybmluZyBhbmQgR28nO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFVOSUNPREVfU1BBQ0UgPSAnJTIwJztcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBFTVBUWV9TUEFDRSA9ICcgJztcbiAgcHJpdmF0ZSByZWFkb25seSBIRUFSSU5HU19UQUJfTEFCRUwgPSAnSGVhcmluZ3MnO1xuXG4gIEBJbnB1dCgpIHB1YmxpYyBoYXNQcmludCA9IHRydWU7XG4gIEBJbnB1dCgpIHB1YmxpYyBoYXNFdmVudFNlbGVjdG9yID0gdHJ1ZTtcbiAgQElucHV0KCkgcHVibGljIGNhc2VEZXRhaWxzOiBDYXNlVmlldztcbiAgQElucHV0KCkgcHVibGljIHByZXBlbmRlZFRhYnM6IENhc2VUYWJbXSA9IFtdO1xuICBASW5wdXQoKSBwdWJsaWMgYXBwZW5kZWRUYWJzOiBDYXNlVGFiW10gPSBbXTtcblxuICBwdWJsaWMgQkFOTkVSID0gRGlzcGxheU1vZGUuQkFOTkVSO1xuICBwdWJsaWMgc29ydGVkVGFiczogQ2FzZVRhYltdO1xuICBwdWJsaWMgY2FzZUZpZWxkczogQ2FzZUZpZWxkW107XG4gIHB1YmxpYyBmb3JtR3JvdXA6IEZvcm1Hcm91cDtcbiAgcHVibGljIGVycm9yOiBhbnk7XG4gIHB1YmxpYyB0cmlnZ2VyVGV4dFN0YXJ0ID0gQ2FzZUZ1bGxBY2Nlc3NWaWV3Q29tcG9uZW50LlRSSUdHRVJfVEVYVF9TVEFSVDtcbiAgcHVibGljIHRyaWdnZXJUZXh0SWdub3JlV2FybmluZ3MgPSBDYXNlRnVsbEFjY2Vzc1ZpZXdDb21wb25lbnQuVFJJR0dFUl9URVhUX0NPTlRJTlVFO1xuICBwdWJsaWMgdHJpZ2dlclRleHQ6IHN0cmluZyA9IENhc2VGdWxsQWNjZXNzVmlld0NvbXBvbmVudC5UUklHR0VSX1RFWFRfU1RBUlQ7XG4gIHB1YmxpYyBpZ25vcmVXYXJuaW5nID0gZmFsc2U7XG4gIHB1YmxpYyBhY3Rpdml0eVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBwdWJsaWMgY2FzZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBwdWJsaWMgZXJyb3JTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcHVibGljIGRpYWxvZ0NvbmZpZzogTWF0RGlhbG9nQ29uZmlnO1xuICBwdWJsaWMgbWFya2Rvd25Vc2VIcmVmQXNSb3V0ZXJMaW5rOiBib29sZWFuO1xuICBwdWJsaWMgbWVzc2FnZTogc3RyaW5nO1xuICBwdWJsaWMgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIHB1YmxpYyBub3RpZmljYXRpb25CYW5uZXJDb25maWc6IE5vdGlmaWNhdGlvbkJhbm5lckNvbmZpZztcbiAgcHVibGljIHNlbGVjdGVkVGFiSW5kZXggPSAwO1xuICBwdWJsaWMgYWN0aXZlQ2FzZUZsYWdzID0gZmFsc2U7XG4gIHB1YmxpYyBjYXNlRmxhZ3NFeHRlcm5hbFVzZXIgPSBmYWxzZTtcbiAgcHJpdmF0ZSByZWFkb25seSBjYXNlRmxhZ3NSZWFkRXh0ZXJuYWxNb2RlID0gJyNBUkdVTUVOVChSRUFELEVYVEVSTkFMKSc7XG4gIHByaXZhdGUgc3ViczogU3Vic2NyaXB0aW9uW10gPSBbXTtcbiAgcHVibGljIGV2ZW50SWQ6IHN0cmluZztcbiAgcHVibGljIGlzRXZlbnRCdXR0b25DbGlja2VkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHVibGljIGNhbGxiYWNrRXJyb3JzU3ViamVjdDogICBPYnNlcnZhYmxlPGFueT47XG4gIEBWaWV3Q2hpbGQoJ3RhYkdyb3VwJywgeyBzdGF0aWM6IGZhbHNlIH0pIHB1YmxpYyB0YWJHcm91cDogTWF0VGFiR3JvdXA7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBuZ1pvbmU6IE5nWm9uZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbmF2aWdhdGlvbk5vdGlmaWVyU2VydmljZTogTmF2aWdhdGlvbk5vdGlmaWVyU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IG9yZGVyU2VydmljZTogT3JkZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYWN0aXZpdHlQb2xsaW5nU2VydmljZTogQWN0aXZpdHlQb2xsaW5nU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRpYWxvZzogTWF0RGlhbG9nLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYWxlcnRTZXJ2aWNlOiBBbGVydFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBkcmFmdFNlcnZpY2U6IERyYWZ0U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGVycm9yTm90aWZpZXJTZXJ2aWNlOiBFcnJvck5vdGlmaWVyU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbnZlcnRIcmVmVG9Sb3V0ZXJTZXJ2aWNlOiBDb252ZXJ0SHJlZlRvUm91dGVyU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxvY2F0aW9uOiBMb2NhdGlvbixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNyZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSByZWFkb25seSBzZXNzaW9uU3RvcmFnZVNlcnZpY2U6IFNlc3Npb25TdG9yYWdlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJweFRyYW5zbGF0aW9uUGlwZTogUnB4VHJhbnNsYXRlUGlwZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxvYWRpbmdTZXJ2aWNlOiBMb2FkaW5nU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxpbmtlZENhc2VzU2VydmljZTogTGlua2VkQ2FzZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2FzZUZsYWdTdGF0ZVNlcnZpY2U6IENhc2VGbGFnU3RhdGVTZXJ2aWNlXG4gICkge1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuY2FsbGJhY2tFcnJvcnNTdWJqZWN0ID0gdGhpcy5lcnJvck5vdGlmaWVyU2VydmljZS5lcnJvclNvdXJjZS5waXBlKGZpbHRlcigoeCkgPT4ge1xuICAgICAgaWYoeCAmJiB4LnN0YXR1cyAhPT0gNDAxICYmIHguc3RhdHVzICE9PSA0MDMpIHtcbiAgICAgICAgdGhpcy5lcnJvciA9IHg7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0pKTtcbiAgICBcbiAgICBpbml0RGlhbG9nKCk7XG4gICAgdGhpcy5pbml0KCk7XG4gICAgdGhpcy5tYXJrZG93blVzZUhyZWZBc1JvdXRlckxpbmsgPSB0cnVlO1xuXG4gICAgdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2U/LnJlbW92ZUl0ZW0oJ2V2ZW50VXJsJyk7XG5cbiAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHRoaXMuY29udmVydEhyZWZUb1JvdXRlclNlcnZpY2U/LmdldEhyZWZNYXJrZG93bkxpbmtDb250ZW50KCkuc3Vic2NyaWJlKChocmVmTWFya2Rvd25MaW5rQ29udGVudDogc3RyaW5nKSA9PiB7XG4gICAgICAvLyBkbyBub3QgY29udmVydCByb3V0ZXIgd2l0aCBpbml0aWFsIGRlZmF1bHQgdmFsdWU7IGNvbnZlcnQgdG8gcm91dGVyIG9ubHkgb24gdXBkYXRlZCBsaW5rIGNvbnRlbnRcbiAgICAgIGlmIChocmVmTWFya2Rvd25MaW5rQ29udGVudCAhPT0gJ0RlZmF1bHQnKSB7XG4gICAgICAgIHRoaXMuY29udmVydEhyZWZUb1JvdXRlclNlcnZpY2UuY2FsbEFuZ3VsYXJSb3V0ZXIoaHJlZk1hcmtkb3duTGlua0NvbnRlbnQpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKHRoaXMuYWN0aXZpdHlQb2xsaW5nU2VydmljZS5pc0VuYWJsZWQgJiYgIXRoaXMuYWN0aXZpdHlTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgdGhpcy5hY3Rpdml0eVN1YnNjcmlwdGlvbiA9IHRoaXMucG9zdFZpZXdBY3Rpdml0eSgpLnN1YnNjcmliZSgpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy5jaGVja1JvdXRlQW5kU2V0Q2FzZVZpZXdUYWIoKTtcblxuICAgIC8vIENoZWNrIGZvciBhY3RpdmUgQ2FzZSBGbGFnc1xuICAgIHRoaXMuYWN0aXZlQ2FzZUZsYWdzID0gdGhpcy5oYXNBY3RpdmVDYXNlRmxhZ3MoKTtcbiAgICB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5yZXNldExpbmtlZENhc2VEYXRhKCk7XG4gICAgdGhpcy5jYXNlRmxhZ1N0YXRlU2VydmljZS5yZXNldEluaXRpYWxDYXNlRmxhZ3MoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKGNoYW5nZXMgJiYgY2hhbmdlcy5wcmVwZW5kZWRUYWJzICYmICFjaGFuZ2VzLnByZXBlbmRlZFRhYnMuZmlyc3RDaGFuZ2UpIHtcbiAgICAgIHRoaXMuaW5pdCgpO1xuICAgICAgdGhpcy5jcmYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgdGhpcy5vcmdhbmlzZVRhYlBvc2l0aW9uKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGlzUHJpbnRFbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmNhc2VEZXRhaWxzLmNhc2VfdHlwZS5wcmludEVuYWJsZWQ7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuYWN0aXZpdHlQb2xsaW5nU2VydmljZS5pc0VuYWJsZWQpIHtcbiAgICAgIHRoaXMudW5zdWJzY3JpYmUodGhpcy5hY3Rpdml0eVN1YnNjcmlwdGlvbik7XG4gICAgfVxuICAgIGlmICghdGhpcy5yb3V0ZS5zbmFwc2hvdC5kYXRhLmNhc2UpIHtcbiAgICAgIHRoaXMudW5zdWJzY3JpYmUodGhpcy5jYXNlU3Vic2NyaXB0aW9uKTtcbiAgICB9XG4gICAgdGhpcy51bnN1YnNjcmliZSh0aGlzLmNhbGxiYWNrRXJyb3JzU3ViamVjdCk7XG4gICAgdGhpcy51bnN1YnNjcmliZSh0aGlzLmVycm9yU3Vic2NyaXB0aW9uKTtcbiAgICB0aGlzLnVuc3Vic2NyaWJlKHRoaXMuc3Vic2NyaXB0aW9uKTtcbiAgICB0aGlzLnN1YnMuZm9yRWFjaChzID0+IHMudW5zdWJzY3JpYmUoKSk7XG4gIH1cblxuICBwdWJsaWMgdW5zdWJzY3JpYmUoc3Vic2NyaXB0aW9uOiBhbnkpIHtcbiAgICBpZiAoc3Vic2NyaXB0aW9uKSB7XG4gICAgICBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNoZWNrUm91dGVBbmRTZXRDYXNlVmlld1RhYigpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnMucHVzaCh0aGlzLnJvdXRlci5ldmVudHNcbiAgICAgIC5waXBlKGZpbHRlcigoZXZlbnQpID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCkpXG4gICAgICAuc3Vic2NyaWJlKChldmVudDogTmF2aWdhdGlvbkVuZCkgPT4ge1xuICAgICAgICBjb25zdCB1cmwgPSBldmVudCAmJiAoZXZlbnQgYXMgYW55KS51cmw7XG4gICAgICAgIGlmICh1cmwpIHtcbiAgICAgICAgICBjb25zdCB0YWJVcmwgPSB1cmwgPyB1cmwuc3BsaXQoJyMnKSA6IG51bGw7XG4gICAgICAgICAgY29uc3QgdGFiID0gdGFiVXJsICYmIHRhYlVybC5sZW5ndGggPiAxID8gdGFiVXJsW3RhYlVybC5sZW5ndGggLSAxXS5yZXBsYWNlQWxsKCclMjAnLCAnICcpIDogJyc7XG4gICAgICAgICAgY29uc3QgbWF0VGFiID0gdGhpcy50YWJHcm91cC5fdGFicy5maW5kKCh4KSA9PiB4LnRleHRMYWJlbC50b0xvd2VyQ2FzZSgpID09PSB0YWIudG9Mb3dlckNhc2UoKSk7XG4gICAgICAgICAgLy8gVXBkYXRlIHNlbGVjdGVkSW5kZXggb25seSBpZiBtYXRUYWIucG9zaXRpb24gaXMgYSBub24temVybyBudW1iZXIgKHBvc2l0aXZlIG9yIG5lZ2F0aXZlKTsgdGhpcyBtZWFucyB0aGVcbiAgICAgICAgICAvLyBtYXRUYWIgaXMgbm90IGFscmVhZHkgc2VsZWN0ZWQgKHBvc2l0aW9uIGlzIHJlbGF0aXZlOyBwb3NpdGl2ZSA9IHJpZ2h0LCBuZWdhdGl2ZSA9IGxlZnQpIG9yIGl0IHdvdWxkIGJlIDBcbiAgICAgICAgICBpZiAobWF0VGFiPy5wb3NpdGlvbikge1xuICAgICAgICAgICAgdGhpcy50YWJHcm91cC5zZWxlY3RlZEluZGV4ID0gbWF0VGFiLnBvc2l0aW9uO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSkpO1xuICB9XG5cbiAgcHVibGljIHBvc3RWaWV3QWN0aXZpdHkoKTogT2JzZXJ2YWJsZTxBY3Rpdml0eVtdPiB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aXZpdHlQb2xsaW5nU2VydmljZS5wb3N0Vmlld0FjdGl2aXR5KHRoaXMuY2FzZURldGFpbHM/LmNhc2VfaWQpO1xuICB9XG5cbiAgcHVibGljIGNsZWFyRXJyb3JzQW5kV2FybmluZ3MoKTogdm9pZCB7XG4gICAgdGhpcy5yZXNldEVycm9ycygpO1xuICAgIHRoaXMuaWdub3JlV2FybmluZyA9IGZhbHNlO1xuICAgIHRoaXMudHJpZ2dlclRleHQgPSBDYXNlRnVsbEFjY2Vzc1ZpZXdDb21wb25lbnQuVFJJR0dFUl9URVhUX1NUQVJUO1xuICAgIHRoaXMuaXNFdmVudEJ1dHRvbkNsaWNrZWQgPSBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBhcHBseVRyaWdnZXIodHJpZ2dlcjogQ2FzZVZpZXdUcmlnZ2VyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMuaXNFdmVudEJ1dHRvbkNsaWNrZWQpe1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmlzRXZlbnRCdXR0b25DbGlja2VkID0gdHJ1ZTtcbiAgICBjb25zdCBzcGlubmVyID0gdGhpcy5sb2FkaW5nU2VydmljZS5yZWdpc3RlcigpO1xuICAgIHRoaXMubG9hZGluZ1NlcnZpY2UuYWRkU2hhcmVkU3Bpbm5lcihzcGlubmVyKTtcbiAgICB0aGlzLmVycm9yTm90aWZpZXJTZXJ2aWNlLmFubm91bmNlRXJyb3IobnVsbCk7XG4gICAgY29uc3QgdGhlUXVlcnlQYXJhbXM6IFBhcmFtcyA9IHt9O1xuXG4gICAgaWYgKHRoaXMuaWdub3JlV2FybmluZykge1xuICAgICAgdGhlUXVlcnlQYXJhbXNbJ2lnbm9yZVdhcm5pbmcnXSA9IHRoaXMuaWdub3JlV2FybmluZztcbiAgICB9XG5cbiAgICAvLyB3ZSBtYXkgbmVlZCB0byB0YWtlIGNhcmUgb2YgZGlmZmVyZW50IHRyaWdnZXJzIGluIHRoZSBmdXR1cmVcbiAgICBpZiAodHJpZ2dlci5pZCA9PT0gQ2FzZVZpZXdFdmVudElkcy5RdWVyeU1hbmFnZW1lbnRSYWlzZVF1ZXJ5KSB7XG4gICAgICBhd2FpdCB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbYC9xdWVyeS1tYW5hZ2VtZW50L3F1ZXJ5LyR7dGhpcy5jYXNlRGV0YWlscy5jYXNlX2lkfWBdKTtcbiAgICB9IGVsc2UgaWYgKHRyaWdnZXIuaWQgPT09IENhc2VWaWV3RXZlbnRJZHMuREVMRVRFKSB7XG4gICAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKERlbGV0ZU9yQ2FuY2VsRGlhbG9nQ29tcG9uZW50LCB0aGlzLmRpYWxvZ0NvbmZpZyk7XG4gICAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUocmVzdWx0ID0+IHtcbiAgICAgICAgaWYgKHJlc3VsdCA9PT0gJ0RlbGV0ZScpIHtcbiAgICAgICAgICB0aGlzLmRyYWZ0U2VydmljZS5kZWxldGVEcmFmdCh0aGlzLmNhc2VEZXRhaWxzLmNhc2VfaWQpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKF8gPT4ge1xuICAgICAgICAgICAgICB0aGlzLm5hdmlnYXRpb25Ob3RpZmllclNlcnZpY2UuYW5ub3VuY2VOYXZpZ2F0aW9uKHsgYWN0aW9uOiBOYXZpZ2F0aW9uT3JpZ2luLkRSQUZUX0RFTEVURUQgfSk7XG4gICAgICAgICAgICB9LCBfID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5uYXZpZ2F0aW9uTm90aWZpZXJTZXJ2aWNlLmFubm91bmNlTmF2aWdhdGlvbih7IGFjdGlvbjogTmF2aWdhdGlvbk9yaWdpbi5FUlJPUl9ERUxFVElOR19EUkFGVCB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuaXNEcmFmdCgpICYmIHRyaWdnZXIuaWQgIT09IENhc2VWaWV3RXZlbnRJZHMuREVMRVRFKSB7XG4gICAgICB0aGVRdWVyeVBhcmFtc1tEUkFGVF9RVUVSWV9QQVJBTV0gPSB0aGlzLmNhc2VEZXRhaWxzLmNhc2VfaWQ7XG4gICAgICB0aGVRdWVyeVBhcmFtc1tDYXNlRnVsbEFjY2Vzc1ZpZXdDb21wb25lbnQuT1JJR0lOX1FVRVJZX1BBUkFNXSA9ICd2aWV3RHJhZnQnO1xuICAgICAgdGhpcy5uYXZpZ2F0aW9uTm90aWZpZXJTZXJ2aWNlLmFubm91bmNlTmF2aWdhdGlvbihcbiAgICAgICAge1xuICAgICAgICAgIGFjdGlvbjogTmF2aWdhdGlvbk9yaWdpbi5EUkFGVF9SRVNVTUVELFxuICAgICAgICAgIGppZDogdGhpcy5jYXNlRGV0YWlscy5jYXNlX3R5cGUuanVyaXNkaWN0aW9uLmlkLFxuICAgICAgICAgIGN0aWQ6IHRoaXMuY2FzZURldGFpbHMuY2FzZV90eXBlLmlkLFxuICAgICAgICAgIGV0aWQ6IHRyaWdnZXIuaWQsXG4gICAgICAgICAgcXVlcnlQYXJhbXM6IHRoZVF1ZXJ5UGFyYW1zXG4gICAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm5hdmlnYXRpb25Ob3RpZmllclNlcnZpY2UuYW5ub3VuY2VOYXZpZ2F0aW9uKFxuICAgICAgICB7XG4gICAgICAgICAgYWN0aW9uOiBOYXZpZ2F0aW9uT3JpZ2luLkVWRU5UX1RSSUdHRVJFRCxcbiAgICAgICAgICBxdWVyeVBhcmFtczogdGhlUXVlcnlQYXJhbXMsXG4gICAgICAgICAgZXRpZDogdHJpZ2dlci5pZCxcbiAgICAgICAgICByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlXG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBoYXNUYWJzUHJlc2VudCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zb3J0ZWRUYWJzLmxlbmd0aCA+IDAgfHwgdGhpcy5wcmVwZW5kZWRUYWJzLmxlbmd0aCA+IDAgfHwgdGhpcy5hcHBlbmRlZFRhYnMubGVuZ3RoID4gMDtcbiAgfVxuXG4gIHB1YmxpYyBjYWxsYmFja0Vycm9yc05vdGlmeShjYWxsYmFja0Vycm9yc0NvbnRleHQ6IENhbGxiYWNrRXJyb3JzQ29udGV4dCk6IHZvaWQge1xuICAgIHRoaXMuaWdub3JlV2FybmluZyA9IGNhbGxiYWNrRXJyb3JzQ29udGV4dC5pZ25vcmVXYXJuaW5nO1xuICAgIHRoaXMudHJpZ2dlclRleHQgPSBjYWxsYmFja0Vycm9yc0NvbnRleHQudHJpZ2dlclRleHQ7XG4gICAgdGhpcy5ldmVudElkID0gY2FsbGJhY2tFcnJvcnNDb250ZXh0LmV2ZW50SWQ7XG4gIH1cblxuICBwdWJsaWMgaXNEcmFmdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gRHJhZnQuaXNEcmFmdCh0aGlzLmNhc2VEZXRhaWxzLmNhc2VfaWQpO1xuICB9XG5cbiAgcHVibGljIGlzVHJpZ2dlckJ1dHRvbkRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAodGhpcy5lcnJvclxuICAgICAgJiYgdGhpcy5lcnJvci5jYWxsYmFja0Vycm9yc1xuICAgICAgJiYgdGhpcy5lcnJvci5jYWxsYmFja0Vycm9ycy5sZW5ndGgpXG4gICAgICB8fCAodGhpcy5lcnJvclxuICAgICAgICAmJiB0aGlzLmVycm9yLmRldGFpbHNcbiAgICAgICAgJiYgdGhpcy5lcnJvci5kZXRhaWxzLmZpZWxkX2Vycm9yc1xuICAgICAgICAmJiB0aGlzLmVycm9yLmRldGFpbHMuZmllbGRfZXJyb3JzLmxlbmd0aCk7XG4gIH1cblxuICBwdWJsaWMgb3JnYW5pc2VUYWJQb3NpdGlvbigpOiB2b2lkIHtcbiAgICBsZXQgbWF0VGFiOiBNYXRUYWI7XG4gICAgY29uc3QgdXJsID0gdGhpcy5sb2NhdGlvbi5wYXRoKHRydWUpO1xuICAgIGxldCBoYXNoVmFsdWUgPSB1cmwuc3Vic3RyaW5nKHVybC5pbmRleE9mKCcjJykgKyAxKTtcbiAgICBpZiAoIXVybC5pbmNsdWRlcygnIycpICYmICF1cmwuaW5jbHVkZXMoJ3JvbGVzLWFuZC1hY2Nlc3MnKSAmJiAhdXJsLmluY2x1ZGVzKCd0YXNrcycpICYmICF1cmwuaW5jbHVkZXMoJ2hlYXJpbmdzJykpIHtcbiAgICAgIGNvbnN0IHBhdGhzID0gdXJsLnNwbGl0KCcvJyk7XG4gICAgICAvLyBsYXN0UGF0aCBjYW4gYmUgL2Nhc2VJZCwgb3IgdGhlIHRhYnMgL3Rhc2tzLCAvaGVhcmluZ3MgZXRjLlxuICAgICAgY29uc3QgbGFzdFBhdGggPSBkZWNvZGVVUklDb21wb25lbnQocGF0aHNbcGF0aHMubGVuZ3RoIC0gMV0pO1xuICAgICAgbGV0IGZvdW5kVGFiOiBDYXNlVGFiID0gbnVsbDtcbiAgICAgIGlmICghdGhpcy5wcmVwZW5kZWRUYWJzKSB7XG4gICAgICAgIHRoaXMucHJlcGVuZGVkVGFicyA9IFtdO1xuICAgICAgfVxuICAgICAgY29uc3QgYWRkaXRpb25hbFRhYnMgPSBbLi4udGhpcy5wcmVwZW5kZWRUYWJzLCAuLi50aGlzLmFwcGVuZGVkVGFic107XG4gICAgICBpZiAoYWRkaXRpb25hbFRhYnMgJiYgYWRkaXRpb25hbFRhYnMubGVuZ3RoKSB7XG4gICAgICAgIGZvdW5kVGFiID0gYWRkaXRpb25hbFRhYnMuZmluZCgoY2FzZVRhYjogQ2FzZVRhYikgPT4gY2FzZVRhYi5pZC50b0xvd2VyQ2FzZSgpID09PSBsYXN0UGF0aC50b0xvd2VyQ2FzZSgpKTtcbiAgICAgIH1cbiAgICAgIC8vIGZvdW5kIHRhc2tzIG9yIGhlYXJpbmcgdGFiXG4gICAgICBpZiAoZm91bmRUYWIpIHtcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWydjYXNlcycsICdjYXNlLWRldGFpbHMnLCB0aGlzLmNhc2VEZXRhaWxzLmNhc2VfaWQsIGZvdW5kVGFiLmlkXSkudGhlbigoKSA9PiB7XG4gICAgICAgICAgbWF0VGFiID0gdGhpcy50YWJHcm91cC5fdGFicy5maW5kKCh4KSA9PiB4LnRleHRMYWJlbCA9PT0gZm91bmRUYWIubGFiZWwpO1xuICAgICAgICAgIC8vIFVwZGF0ZSBzZWxlY3RlZEluZGV4IG9ubHkgaWYgbWF0VGFiLnBvc2l0aW9uIGlzIGEgbm9uLXplcm8gbnVtYmVyIChwb3NpdGl2ZSBvciBuZWdhdGl2ZSk7IHRoaXMgbWVhbnMgdGhlXG4gICAgICAgICAgLy8gbWF0VGFiIGlzIG5vdCBhbHJlYWR5IHNlbGVjdGVkIChwb3NpdGlvbiBpcyByZWxhdGl2ZTsgcG9zaXRpdmUgPSByaWdodCwgbmVnYXRpdmUgPSBsZWZ0KSBvciBpdCB3b3VsZCBiZSAwXG4gICAgICAgICAgaWYgKG1hdFRhYj8ucG9zaXRpb24pIHtcbiAgICAgICAgICAgIHRoaXMudGFiR3JvdXAuc2VsZWN0ZWRJbmRleCA9IG1hdFRhYi5wb3NpdGlvbjtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICAvLyBsYXN0IHBhdGggaXMgY2FzZUlkXG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBzb3J0IHdpdGggdGhlIG9yZGVyIG9mIENDRCBwcmVkZWZpbmVkIHRhYnNcbiAgICAgICAgdGhpcy5jYXNlRGV0YWlscy50YWJzLnNvcnQoKGFUYWIsIGJUYWIpID0+IGFUYWIub3JkZXIgPiBiVGFiLm9yZGVyID8gMSA6IChiVGFiLm9yZGVyID4gYVRhYi5vcmRlciA/IC0xIDogMCkpO1xuICAgICAgICAvLyBzZWxlY3QgdGhlIGZpcnN0IHRhYiBjaGVja2luZyBpZiB0aGUgdGFiIGlzIHZpc2libGVcbiAgICAgICAgY29uc3QgcHJlU2VsZWN0VGFiOiBDYXNlVGFiID0gdGhpcy5maW5kUHJlU2VsZWN0ZWRBY3RpdmVUYWIoKTtcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWydjYXNlcycsICdjYXNlLWRldGFpbHMnLCB0aGlzLmNhc2VEZXRhaWxzLmNhc2VfaWRdLCB7IGZyYWdtZW50OiBwcmVTZWxlY3RUYWIubGFiZWwgfSkudGhlbigoKSA9PiB7XG4gICAgICAgICAgbWF0VGFiID0gdGhpcy50YWJHcm91cC5fdGFicy5maW5kKCh4KSA9PiB4LnRleHRMYWJlbCA9PT0gcHJlU2VsZWN0VGFiLmxhYmVsKTtcbiAgICAgICAgICAvLyBVcGRhdGUgc2VsZWN0ZWRJbmRleCBvbmx5IGlmIG1hdFRhYi5wb3NpdGlvbiBpcyBhIG5vbi16ZXJvIG51bWJlciAocG9zaXRpdmUgb3IgbmVnYXRpdmUpOyB0aGlzIG1lYW5zIHRoZVxuICAgICAgICAgIC8vIG1hdFRhYiBpcyBub3QgYWxyZWFkeSBzZWxlY3RlZCAocG9zaXRpb24gaXMgcmVsYXRpdmU7IHBvc2l0aXZlID0gcmlnaHQsIG5lZ2F0aXZlID0gbGVmdCkgb3IgaXQgd291bGQgYmUgMFxuICAgICAgICAgIGlmIChtYXRUYWI/LnBvc2l0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLnRhYkdyb3VwLnNlbGVjdGVkSW5kZXggPSBtYXRUYWIucG9zaXRpb247XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgcmVnRXhwID0gbmV3IFJlZ0V4cChDYXNlRnVsbEFjY2Vzc1ZpZXdDb21wb25lbnQuVU5JQ09ERV9TUEFDRSwgJ2cnKTtcbiAgICAgIGhhc2hWYWx1ZSA9IGhhc2hWYWx1ZS5yZXBsYWNlKHJlZ0V4cCwgQ2FzZUZ1bGxBY2Nlc3NWaWV3Q29tcG9uZW50LkVNUFRZX1NQQUNFKTtcbiAgICAgIGlmIChoYXNoVmFsdWUuaW5jbHVkZXMoJ2hlYXJpbmdzJykpIHtcbiAgICAgICAgaGFzaFZhbHVlID0gJ2hlYXJpbmdzJztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChoYXNoVmFsdWUuaW5jbHVkZXMoJ3JvbGVzLWFuZC1hY2Nlc3MnKSB8fCBoYXNoVmFsdWUuaW5jbHVkZXMoJ3Rhc2tzJykpIHtcbiAgICAgICAgICBoYXNoVmFsdWUgPSBoYXNoVmFsdWUuaW5jbHVkZXMoJ3JvbGVzLWFuZC1hY2Nlc3MnKSA/ICdyb2xlcyBhbmQgYWNjZXNzJyA6ICd0YXNrcyc7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIG1hdFRhYiA9IHRoaXMudGFiR3JvdXAuX3RhYnMuZmluZCgoeCkgPT5cbiAgICAgICAgeC50ZXh0TGFiZWwucmVwbGFjZShDYXNlRnVsbEFjY2Vzc1ZpZXdDb21wb25lbnQuRU1QVFlfU1BBQ0UsICcnKS50b0xvd2VyQ2FzZSgpID09PVxuICAgICAgICBoYXNoVmFsdWUucmVwbGFjZShDYXNlRnVsbEFjY2Vzc1ZpZXdDb21wb25lbnQuRU1QVFlfU1BBQ0UsICcnKS50b0xvd2VyQ2FzZSgpKTtcbiAgICAgIC8vIFVwZGF0ZSBzZWxlY3RlZEluZGV4IG9ubHkgaWYgbWF0VGFiLnBvc2l0aW9uIGlzIGEgbm9uLXplcm8gbnVtYmVyIChwb3NpdGl2ZSBvciBuZWdhdGl2ZSk7IHRoaXMgbWVhbnMgdGhlXG4gICAgICAvLyBtYXRUYWIgaXMgbm90IGFscmVhZHkgc2VsZWN0ZWQgKHBvc2l0aW9uIGlzIHJlbGF0aXZlOyBwb3NpdGl2ZSA9IHJpZ2h0LCBuZWdhdGl2ZSA9IGxlZnQpIG9yIGl0IHdvdWxkIGJlIDBcbiAgICAgIGlmIChtYXRUYWI/LnBvc2l0aW9uKSB7XG4gICAgICAgIHRoaXMudGFiR3JvdXAuc2VsZWN0ZWRJbmRleCA9IG1hdFRhYi5wb3NpdGlvbjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZmluZFByZVNlbGVjdGVkQWN0aXZlVGFiKCk6IENhc2VUYWIge1xuICAgIGNvbnN0IHVuT3JkZXJlZFRhYnNJblNvcnRlZFRhYnMgPSB0aGlzLmNhc2VEZXRhaWxzLnRhYnNcbiAgICAgIC5maWx0ZXIoKHRhYikgPT4gIXRhYi5vcmRlciAmJiB0aGlzLnNvcnRlZFRhYnMuc29tZSgoc29ydGVkVGFiKSA9PiBzb3J0ZWRUYWIuaWQgPT09IHRhYi5pZCkpO1xuICAgIHJldHVybiB1bk9yZGVyZWRUYWJzSW5Tb3J0ZWRUYWJzLmxlbmd0aCA/IHVuT3JkZXJlZFRhYnNJblNvcnRlZFRhYnNbMF0gOiB0aGlzLnNvcnRlZFRhYnNbMF07XG4gIH1cblxuICAvLyBSZWZhY3RvcmVkIHVuZGVyIEVYVUktMTEwIHRvIGFkZHJlc3MgaW5maW5pdGUgdGFiIGxvb3AgdG8gdXNlIHRhYkluZGV4Q2hhbmdlZCBpbnN0ZWFkXG4gIHB1YmxpYyB0YWJDaGFuZ2VkKHRhYkluZGV4Q2hhbmdlZDogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3QgbWF0VGFiID0gdGhpcy50YWJHcm91cC5fdGFicy5maW5kKHRhYiA9PiB0YWIuaXNBY3RpdmUpO1xuICAgIGNvbnN0IHRhYkxhYmVsID0gbWF0VGFiLnRleHRMYWJlbDtcbiAgICAvLyBzb3J0ZWRUYWJzIGFyZSBmcmFnbWVudHNcbiAgICAvLyBhcHBlbmRlZC9wcmVwZXBlbmRlZCB0YWJzIHVzZSByb3V0ZXIgbmF2aWdhdGlvblxuICAgIGlmICgodGFiSW5kZXhDaGFuZ2VkIDw9IDEgJiYgdGhpcy5wcmVwZW5kZWRUYWJzICYmIHRoaXMucHJlcGVuZGVkVGFicy5sZW5ndGgpIHx8XG4gICAgICAodGhpcy5hcHBlbmRlZFRhYnM/Lmxlbmd0aCAmJiAodGFiTGFiZWwgPT09IHRoaXMuSEVBUklOR1NfVEFCX0xBQkVMXG4gICAgICAgIHx8IHRhYkxhYmVsID09PSB0aGlzLnJweFRyYW5zbGF0aW9uUGlwZS50cmFuc2Zvcm0odGhpcy5IRUFSSU5HU19UQUJfTEFCRUwpKSkpIHtcbiAgICAgIC8vIEhhY2sgdG8gZ2V0IElEIGZyb20gdGFiIGFzIGl0J3Mgbm90IGVhc2lseSBhY2hpZXZlZCB0aHJvdWdoIEFuZ3VsYXIgTWF0ZXJpYWwgVGFic1xuICAgICAgY29uc3QgdGFiID0gbWF0VGFiWydfdmlld0NvbnRhaW5lclJlZiddIGFzIFZpZXdDb250YWluZXJSZWY7XG4gICAgICBjb25zdCBpZCA9ICh0YWIuZWxlbWVudC5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50KS5pZDtcbiAgICAgIC8vIGNhc2VzL2Nhc2UtZGV0YWlscy86Y2FzZUlkL2hlYXJpbmdzXG4gICAgICAvLyBjYXNlcy9jYXNlLWRldGFpbHMvOmNhc2VJZC9yb2xlcy1hbmQtYWNjZXNzXG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbaWRdLCB7IHJlbGF0aXZlVG86IHRoaXMucm91dGUgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFJvdXRpbmcgaGVyZSBpcyBiYXNlZCBvbiB0YWIgbGFiZWwsIG5vdCBpZGVhbFxuICAgICAgLy8gY2FzZXMvY2FzZS1kZXRhaWxzLzpjYXNlSWQjdGFiTGFiZWxcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnY2FzZXMnLCAnY2FzZS1kZXRhaWxzJywgdGhpcy5jYXNlRGV0YWlscy5jYXNlX2lkXSwgeyBmcmFnbWVudDogdGFiTGFiZWwgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uTGlua0NsaWNrZWQodHJpZ2dlck91dHB1dEV2ZW50VGV4dDogc3RyaW5nKTogdm9pZCB7XG4gICAgLy8gR2V0IHRoZSAqYWJzb2x1dGUqIChub3QgcmVsYXRpdmUpIGluZGV4IG9mIHRoZSB0YXJnZXQgdGFiIGFuZCBzZXQgYXMgdGhlIGFjdGl2ZSB0YWIsIHVzaW5nIHRoZSBzZWxlY3RlZEluZGV4IGlucHV0XG4gICAgLy8gb2YgbWF0LXRhYi1ncm91cCAoYm91bmQgdG8gc2VsZWN0ZWRUYWJJbmRleClcbiAgICBjb25zdCB0YXJnZXRUYWJJbmRleCA9IHRoaXMudGFiR3JvdXAuX3RhYnMudG9BcnJheSgpLmZpbmRJbmRleCh0YWIgPT4gdGFiLnRleHRMYWJlbCA9PT0gdHJpZ2dlck91dHB1dEV2ZW50VGV4dCk7XG4gICAgaWYgKHRhcmdldFRhYkluZGV4ID4gLTEpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRUYWJJbmRleCA9IHRhcmdldFRhYkluZGV4O1xuICAgICAgdGhpcy50YWJHcm91cC5zZWxlY3RlZEluZGV4ID0gdGFyZ2V0VGFiSW5kZXg7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGhhc0FjdGl2ZUNhc2VGbGFncygpOiBib29sZWFuIHtcbiAgICAvLyBEZXRlcm1pbmUgd2hpY2ggdGFiIGNvbnRhaW5zIHRoZSBGbGFnTGF1bmNoZXIgQ2FzZUZpZWxkIHR5cGUsIGZyb20gdGhlIENhc2VWaWV3IG9iamVjdCBpbiB0aGUgc25hcHNob3QgZGF0YVxuICAgIGNvbnN0IGNhc2VGbGFnc1RhYiA9IHRoaXMuY2FzZURldGFpbHM/LnRhYnNcbiAgICAgID8gKHRoaXMuY2FzZURldGFpbHMudGFicykuZmlsdGVyKFxuICAgICAgICB0YWIgPT4gdGFiLmZpZWxkcyAmJiB0YWIuZmllbGRzLnNvbWUoY2FzZUZpZWxkID0+IEZpZWxkc1V0aWxzLmlzRmxhZ0xhdW5jaGVyQ2FzZUZpZWxkKGNhc2VGaWVsZCkpKVswXVxuICAgICAgOiBudWxsO1xuXG4gICAgaWYgKGNhc2VGbGFnc1RhYikge1xuICAgICAgLy8gQ2hlY2sgd2hldGhlciB0aGUgRmxhZ0xhdW5jaGVyIENhc2VGaWVsZCBpcyBpbiBleHRlcm5hbCBtb2RlIG9yIG5vdDsgdGhlIG5vdGlmaWNhdGlvbiBiYW5uZXIgc2hvdWxkIG5vdCBiZVxuICAgICAgLy8gZGlzcGxheWVkIGZvciBleHRlcm5hbCB1c2Vyc1xuICAgICAgdGhpcy5jYXNlRmxhZ3NFeHRlcm5hbFVzZXIgPSBjYXNlRmxhZ3NUYWIuZmllbGRzLmZpbmQoXG4gICAgICAgIGNhc2VGaWVsZCA9PiBGaWVsZHNVdGlscy5pc0ZsYWdMYXVuY2hlckNhc2VGaWVsZChjYXNlRmllbGQpKS5kaXNwbGF5X2NvbnRleHRfcGFyYW1ldGVyID09PSB0aGlzLmNhc2VGbGFnc1JlYWRFeHRlcm5hbE1vZGU7XG5cbiAgICAgIC8vIEdldCB0aGUgYWN0aXZlIGNhc2UgZmxhZ3MgY291bnRcbiAgICAgIC8vIENhbm5vdCBmaWx0ZXIgb3V0IGFueXRoaW5nIG90aGVyIHRoYW4gdG8gcmVtb3ZlIHRoZSBGbGFnTGF1bmNoZXIgQ2FzZUZpZWxkIGJlY2F1c2UgRmxhZ3MgZmllbGRzIG1heSBiZVxuICAgICAgLy8gY29udGFpbmVkIGluIG90aGVyIENhc2VGaWVsZCBpbnN0YW5jZXMsIGVpdGhlciBhcyBhIHN1Yi1maWVsZCBvZiBhIENvbXBsZXggZmllbGQsIG9yIGZpZWxkcyBpbiBhIGNvbGxlY3Rpb25cbiAgICAgIC8vIChvciBzdWItZmllbGRzIG9mIENvbXBsZXggZmllbGRzIGluIGEgY29sbGVjdGlvbilcbiAgICAgIGNvbnN0IGFjdGl2ZUNhc2VGbGFncyA9IGNhc2VGbGFnc1RhYi5maWVsZHNcbiAgICAgICAgLmZpbHRlcihjYXNlRmllbGQgPT4gIUZpZWxkc1V0aWxzLmlzRmxhZ0xhdW5jaGVyQ2FzZUZpZWxkKGNhc2VGaWVsZCkgJiYgY2FzZUZpZWxkLnZhbHVlKVxuICAgICAgICAucmVkdWNlKChhY3RpdmUsIGNhc2VGbGFnKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIEZpZWxkc1V0aWxzLmNvdW50QWN0aXZlRmxhZ3NJbkNhc2VGaWVsZChhY3RpdmUsIGNhc2VGbGFnKTtcbiAgICAgICAgfSwgMCk7XG5cbiAgICAgIGlmIChhY3RpdmVDYXNlRmxhZ3MgPiAwKSB7XG4gICAgICAgIGNvbnN0IGRlc2NyaXB0aW9uID0gYWN0aXZlQ2FzZUZsYWdzID4gMVxuICAgICAgICAgID8gYFRoZXJlIGFyZSAke2FjdGl2ZUNhc2VGbGFnc30gYWN0aXZlIGZsYWdzIG9uIHRoaXMgY2FzZS5gIDogJ1RoZXJlIGlzIDEgYWN0aXZlIGZsYWcgb24gdGhpcyBjYXNlLic7XG4gICAgICAgIC8vIEluaXRpYWxpc2UgYW5kIGRpc3BsYXkgbm90aWZpY2F0aW9uIGJhbm5lclxuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbkJhbm5lckNvbmZpZyA9IHtcbiAgICAgICAgICBiYW5uZXJUeXBlOiBOb3RpZmljYXRpb25CYW5uZXJUeXBlLklORk9STUFUSU9OLFxuICAgICAgICAgIGhlYWRpbmdUZXh0OiAnSW1wb3J0YW50JyxcbiAgICAgICAgICBkZXNjcmlwdGlvbixcbiAgICAgICAgICBzaG93TGluazogdHJ1ZSxcbiAgICAgICAgICBsaW5rVGV4dDogJ1ZpZXcgY2FzZSBmbGFncycsXG4gICAgICAgICAgdHJpZ2dlck91dHB1dEV2ZW50OiB0cnVlLFxuICAgICAgICAgIHRyaWdnZXJPdXRwdXRFdmVudFRleHQ6IGNhc2VGbGFnc1RhYi5sYWJlbCxcbiAgICAgICAgICBoZWFkZXJDbGFzczogTm90aWZpY2F0aW9uQmFubmVySGVhZGVyQ2xhc3MuSU5GT1JNQVRJT05cbiAgICAgICAgfTtcblxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogSW5kaWNhdGVzIHRoYXQgYSBDYXNlRmllbGQgaXMgdG8gYmUgZGlzcGxheWVkIHdpdGhvdXQgYSBsYWJlbCwgYXMgaXMgZXhwZWN0ZWQgZm9yIGFsbCBDb21wb25lbnRMYXVuY2hlci10eXBlXG4gICAqIGZpZWxkcy5cbiAgICogQHBhcmFtIGNhc2VGaWVsZCBUaGUgYENhc2VGaWVsZGAgaW5zdGFuY2UgdG8gY2hlY2tcbiAgICogQHJldHVybnMgYHRydWVgIGlmIGl0IHNob3VsZCBub3QgaGF2ZSBhIGxhYmVsOyBgZmFsc2VgIG90aGVyd2lzZVxuICAgKi9cbiAgcHVibGljIGlzRmllbGRUb0hhdmVOb0xhYmVsKGNhc2VGaWVsZDogQ2FzZUZpZWxkKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGNhc2VGaWVsZC5maWVsZF90eXBlLnR5cGUgPT09ICdDb21wb25lbnRMYXVuY2hlcidcbiAgICAgICYmIGNhc2VGaWVsZC5kaXNwbGF5X2NvbnRleHRfcGFyYW1ldGVyID09PSAnI0FSR1VNRU5UKENhc2VGaWxlVmlldyknO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0KCk6IHZvaWQge1xuICAgIC8vIENsb25lIGFuZCBzb3J0IHRhYnMgYXJyYXlcbiAgICB0aGlzLnNvcnRlZFRhYnMgPSB0aGlzLm9yZGVyU2VydmljZS5zb3J0KHRoaXMuY2FzZURldGFpbHM/LnRhYnMpO1xuICAgIHRoaXMuY2FzZUZpZWxkcyA9IHRoaXMuZ2V0VGFiRmllbGRzKCk7XG4gICAgdGhpcy5zb3J0ZWRUYWJzID0gdGhpcy5zb3J0VGFiRmllbGRzQW5kRmlsdGVyVGFicyh0aGlzLnNvcnRlZFRhYnMpO1xuICAgIHRoaXMuZm9ybUdyb3VwID0gdGhpcy5idWlsZEZvcm1Hcm91cCh0aGlzLmNhc2VGaWVsZHMpO1xuICAgIGlmICh0aGlzLmNhc2VEZXRhaWxzPy50cmlnZ2VycyAmJiB0aGlzLmVycm9yKSB7XG4gICAgICB0aGlzLnJlc2V0RXJyb3JzKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzb3J0VGFiRmllbGRzQW5kRmlsdGVyVGFicyh0YWJzOiBDYXNlVGFiW10pOiBDYXNlVGFiW10ge1xuICAgIHJldHVybiB0YWJzPy5tYXAodGFiID0+IE9iamVjdC5hc3NpZ24oe30sIHRhYiwgeyBmaWVsZHM6IHRoaXMub3JkZXJTZXJ2aWNlLnNvcnQodGFiLmZpZWxkcykgfSkpXG4gICAgICAuZmlsdGVyKHRhYiA9PiBTaG93Q29uZGl0aW9uLmdldEluc3RhbmNlKHRhYi5zaG93X2NvbmRpdGlvbikubWF0Y2hCeUNvbnRleHRGaWVsZHModGhpcy5jYXNlRmllbGRzKSk7XG4gIH1cblxuICBwcml2YXRlIGdldFRhYkZpZWxkcygpOiBDYXNlRmllbGRbXSB7XG4gICAgY29uc3QgY2FzZURhdGFGaWVsZHMgPSB0aGlzLnNvcnRlZFRhYnM/LnJlZHVjZSgoYWNjLCB0YWIpID0+IHtcbiAgICAgIHJldHVybiBhY2MuY29uY2F0KHBsYWluVG9DbGFzcyhDYXNlRmllbGQsIHRhYi5maWVsZHMpKTtcbiAgICB9LCBbXSk7XG5cbiAgICByZXR1cm4gY2FzZURhdGFGaWVsZHM/LmNvbmNhdCh0aGlzLmNhc2VEZXRhaWxzLm1ldGFkYXRhRmllbGRzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGb3IgRVVJLTM4MjU6XG4gICAqIEJ1aWxkcyBhIEZvcm1Hcm91cCBmcm9tIGFsbCB0aGUgQ2FzZUZpZWxkcyBjb250YWluZWQgd2l0aGluIHRoZSB2aWV3LlxuICAgKiBUaGlzIEZvcm1Hcm91cCBpcyBuZWNlc3NhcnkgZm9yIGV2YWx1YXRpb24gdGhlIHNob3cvaGlkZSBjb25kaXRpb25zIG9mXG4gICAqIGZpZWxkcyB0aGF0IGFyZSBkZXBlbmRlbnQgb24gYSBmaWVsZCBvbmx5IGF2YWlsYWJsZSBvbiBhIERJRkZFUkVOVCB0YWIuXG4gICAqL1xuICBwcml2YXRlIGJ1aWxkRm9ybUdyb3VwKGNhc2VGaWVsZHM6IENhc2VGaWVsZFtdKTogRm9ybUdyb3VwIHtcbiAgICBsZXQgdmFsdWU6IG9iamVjdCA9IHt9O1xuICAgIGlmIChjYXNlRmllbGRzKSB7XG4gICAgICBjYXNlRmllbGRzLmZvckVhY2goY2FzZUZpZWxkID0+IHtcbiAgICAgICAgdmFsdWUgPSB7XG4gICAgICAgICAgLi4udmFsdWUsXG4gICAgICAgICAgW2Nhc2VGaWVsZC5pZF06IGNhc2VGaWVsZC52YWx1ZVxuICAgICAgICB9O1xuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBuZXcgRm9ybUdyb3VwKHsgZGF0YTogbmV3IEZvcm1Db250cm9sKHZhbHVlKSB9KTtcbiAgfVxuXG4gIHByaXZhdGUgcmVzZXRFcnJvcnMoKTogdm9pZCB7XG4gICAgdGhpcy5lcnJvck5vdGlmaWVyU2VydmljZS5hbm5vdW5jZUVycm9yKG51bGwpO1xuICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmNsZWFyKCk7XG4gIH1cbn1cbiIsIjwhLS0gR2VuZXJpYyBlcnJvciBoZWFkaW5nIGFuZCBlcnJvciBtZXNzYWdlIHRvIGJlIGRpc3BsYXllZCBvbmx5IGlmIHRoZXJlIGFyZSBubyBzcGVjaWZpYyBjYWxsYmFjayBlcnJvcnMgb3Igd2FybmluZ3MsIG9yIG5vIGVycm9yIGRldGFpbHMgLS0+XG48ZGl2ICpuZ0lmPVwiZXJyb3IgJiYgIShlcnJvci5jYWxsYmFja0Vycm9ycyB8fCBlcnJvci5jYWxsYmFja1dhcm5pbmdzIHx8IGVycm9yLmRldGFpbHMpXCIgY2xhc3M9XCJlcnJvci1zdW1tYXJ5XCJcbiAgICAgcm9sZT1cImdyb3VwXCIgYXJpYS1sYWJlbGxlZGJ5PVwiZWRpdC1jYXNlLWV2ZW50X2Vycm9yLXN1bW1hcnktaGVhZGluZ1wiIHRhYmluZGV4PVwiLTFcIj5cbiAgPGgxIGNsYXNzPVwiaGVhZGluZy1oMSBlcnJvci1zdW1tYXJ5LWhlYWRpbmdcIiBpZD1cImVkaXQtY2FzZS1ldmVudF9lcnJvci1zdW1tYXJ5LWhlYWRpbmdcIj5cbiAgICB7eydTb21ldGhpbmcgd2VudCB3cm9uZycgfCBycHhUcmFuc2xhdGV9fVxuICA8L2gxPlxuICA8ZGl2IGNsYXNzPVwiZ292dWstZXJyb3Itc3VtbWFyeV9fYm9keVwiIGlkPVwiZWRpdC1jYXNlLWV2ZW50X2Vycm9yLXN1bW1hcnktYm9keVwiPlxuICAgIDxwPnt7XCJXZSdyZSB3b3JraW5nIHRvIGZpeCB0aGUgcHJvYmxlbS4gVHJ5IGFnYWluIHNob3J0bHkuXCIgfCBycHhUcmFuc2xhdGV9fTwvcD5cbiAgICA8cD5cbiAgICAgIDxhIGhyZWY9XCJnZXQtaGVscFwiIHRhcmdldD1cIl9ibGFua1wiPlxuICAgICAgICB7e1wiQ29udGFjdCB1c1wiIHwgcnB4VHJhbnNsYXRlfX08L2E+IHt7XCJpZiB5b3UncmUgc3RpbGwgaGF2aW5nIHByb2JsZW1zLlwiIHwgcnB4VHJhbnNsYXRlfX1cbiAgICA8L3A+XG4gIDwvZGl2PlxuPC9kaXY+XG48IS0tIENhbGxiYWNrIGVycm9yIGhlYWRpbmcgYW5kIGVycm9yIG1lc3NhZ2UgdG8gYmUgZGlzcGxheWVkIGlmIHRoZXJlIGFyZSBzcGVjaWZpYyBlcnJvciBkZXRhaWxzIC0tPlxuPGRpdiAqbmdJZj1cImVycm9yICYmIGVycm9yLmRldGFpbHNcIiBjbGFzcz1cImVycm9yLXN1bW1hcnlcIiByb2xlPVwiZ3JvdXBcIlxuICAgICBhcmlhLWxhYmVsbGVkYnk9XCJlZGl0LWNhc2UtZXZlbnRfZXJyb3Itc3VtbWFyeS1oZWFkaW5nXCIgdGFiaW5kZXg9XCItMVwiPlxuICA8aDIgY2xhc3M9XCJoZWFkaW5nLWgyIGVycm9yLXN1bW1hcnktaGVhZGluZ1wiIGlkPVwiZWRpdC1jYXNlLWV2ZW50X2Vycm9yLXN1bW1hcnktaGVhZGluZ1wiPlxuICAgIHt7J1RoZSBjYWxsYmFjayBkYXRhIGZhaWxlZCB2YWxpZGF0aW9uJyB8IHJweFRyYW5zbGF0ZX19XG4gIDwvaDI+XG4gIDxwPnt7ZXJyb3IubWVzc2FnZSB8IHJweFRyYW5zbGF0ZX19PC9wPlxuICA8dWwgKm5nSWY9XCJlcnJvci5kZXRhaWxzPy5maWVsZF9lcnJvcnNcIiBjbGFzcz1cImVycm9yLXN1bW1hcnktbGlzdFwiPlxuICAgIDxsaSAqbmdGb3I9XCJsZXQgZmllbGRFcnJvciBvZiBlcnJvci5kZXRhaWxzLmZpZWxkX2Vycm9yc1wiPlxuICAgICAge3tmaWVsZEVycm9yLm1lc3NhZ2UgfCBycHhUcmFuc2xhdGV9fVxuICAgIDwvbGk+XG4gIDwvdWw+XG48L2Rpdj5cbjxjY2QtY2FsbGJhY2stZXJyb3JzXG4gIFt0cmlnZ2VyVGV4dENvbnRpbnVlXT1cInRyaWdnZXJUZXh0U3RhcnRcIlxuICBbdHJpZ2dlclRleHRJZ25vcmVdPVwidHJpZ2dlclRleHRJZ25vcmVXYXJuaW5nc1wiXG4gIFtjYWxsYmFja0Vycm9yc1N1YmplY3RdPVwiY2FsbGJhY2tFcnJvcnNTdWJqZWN0XCJcbiAgKGNhbGxiYWNrRXJyb3JzQ29udGV4dCk9XCJjYWxsYmFja0Vycm9yc05vdGlmeSgkZXZlbnQpXCI+XG48L2NjZC1jYWxsYmFjay1lcnJvcnM+XG48Y2NkLWFjdGl2aXR5IFtjYXNlSWRdPVwiY2FzZURldGFpbHMuY2FzZV9pZFwiIFtkaXNwbGF5TW9kZV09XCJCQU5ORVJcIj48L2NjZC1hY3Rpdml0eT5cbjxkaXYgY2xhc3M9XCJncmlkLXJvd1wiPlxuICA8ZGl2IGNsYXNzPVwiY29sdW1uLW9uZS1oYWxmXCI+XG4gICAgPGNjZC1jYXNlLWhlYWRlciBbY2FzZURldGFpbHNdPVwiY2FzZURldGFpbHNcIj48L2NjZC1jYXNlLWhlYWRlcj5cbiAgICA8ZGl2IGNsYXNzPVwiY2FzZS12aWV3ZXItY29udHJvbHNcIiAqbmdJZj1cImhhc1ByaW50ICYmICFpc0RyYWZ0KCkgJiYgaXNQcmludEVuYWJsZWQoKVwiPlxuICAgICAgPGEgaWQ9XCJjYXNlLXZpZXdlci1jb250cm9sLXByaW50XCIgcm91dGVyTGluaz1cInByaW50XCIgY2xhc3M9XCJidXR0b24gYnV0dG9uLXNlY29uZGFyeVwiPnt7J1ByaW50JyB8IHJweFRyYW5zbGF0ZX19PC9hPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiAqbmdJZj1cImhhc0V2ZW50U2VsZWN0b3JcIiBjbGFzcz1cImNvbHVtbi1vbmUtaGFsZlwiPlxuICAgIDxjY2QtZXZlbnQtdHJpZ2dlciBbaXNEaXNhYmxlZF09XCJpc1RyaWdnZXJCdXR0b25EaXNhYmxlZCgpXCIgW3RyaWdnZXJzXT1cImNhc2VEZXRhaWxzLnRyaWdnZXJzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgW3RyaWdnZXJUZXh0XT1cInRyaWdnZXJUZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgW2V2ZW50SWRdPVwiZXZlbnRJZFwiXG4gICAgICAgICAgICAgICAgICAgICAgIChvblRyaWdnZXJDaGFuZ2UpPVwiY2xlYXJFcnJvcnNBbmRXYXJuaW5ncygpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgKG9uVHJpZ2dlclN1Ym1pdCk9XCJhcHBseVRyaWdnZXIoJGV2ZW50KVwiPjwvY2NkLWV2ZW50LXRyaWdnZXI+XG4gIDwvZGl2PlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwiZ3JpZC1yb3dcIiAqbmdJZj1cImFjdGl2ZUNhc2VGbGFncyAmJiAhY2FzZUZsYWdzRXh0ZXJuYWxVc2VyXCI+XG4gIDxkaXYgY2xhc3M9XCJjb2x1bW4tZnVsbFwiPlxuICAgIDxjY2Qtbm90aWZpY2F0aW9uLWJhbm5lciBbbm90aWZpY2F0aW9uQmFubmVyQ29uZmlnXT1cIm5vdGlmaWNhdGlvbkJhbm5lckNvbmZpZ1wiIChsaW5rQ2xpY2tlZCk9XCJvbkxpbmtDbGlja2VkKCRldmVudClcIj5cbiAgICA8L2NjZC1ub3RpZmljYXRpb24tYmFubmVyPlxuICA8L2Rpdj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cImdyaWQtcm93XCI+XG4gIDxkaXYgY2xhc3M9XCJjb2x1bW4tZnVsbFwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJoYXNUYWJzUHJlc2VudCgpXCI+XG4gICAgICA8bWF0LXRhYi1ncm91cCAjdGFiR3JvdXAgYW5pbWF0aW9uRHVyYXRpb249XCIwbXNcIiAoc2VsZWN0ZWRJbmRleENoYW5nZSk9XCJ0YWJDaGFuZ2VkKCRldmVudClcIiBbZGlzYWJsZVJpcHBsZV09XCJ0cnVlXCJcbiAgICAgICAgW3NlbGVjdGVkSW5kZXhdPVwic2VsZWN0ZWRUYWJJbmRleFwiPlxuICAgICAgICA8bWF0LXRhYiAqbmdGb3I9XCJsZXQgdGFiIG9mIHByZXBlbmRlZFRhYnNcIiBbaWRdPVwidGFiLmlkXCIgW2xhYmVsXT1cInRhYi5sYWJlbCB8IHJweFRyYW5zbGF0ZVwiPlxuICAgICAgICA8L21hdC10YWI+XG4gICAgICAgIDxtYXQtdGFiICpuZ0Zvcj1cImxldCB0YWIgb2Ygc29ydGVkVGFiczsgbGV0IGN1cklkeD1pbmRleFwiIFtpZF09XCJ0YWIuaWRcIiBbbGFiZWxdPVwidGFiLmxhYmVsIHwgcnB4VHJhbnNsYXRlXCIgW2FyaWEtbGFiZWxdPVwiY3VySWR4ID09PSAwID8gdGFiLmxhYmVsICsgJywgUGxlYXNlIHVzZSBsZWZ0IGFuZCByaWdodCBhcnJvdyBrZXlzIHRvIG5hdmlnYXRlIGNhc2UgdGFicycgOiAnJyB8IHJweFRyYW5zbGF0ZVwiPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBtYXRUYWJDb250ZW50PlxuICAgICAgICAgICAgPHRhYmxlIFtjbGFzc109XCJ0YWIuaWRcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIidjYXNlIHZpZXdlciB0YWJsZScgfCBycHhUcmFuc2xhdGVcIj5cbiAgICAgICAgICAgICAgPHRib2R5PlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBmaWVsZCBvZiB0YWIgfCBjY2RUYWJGaWVsZHMgfCBjY2RSZWFkRmllbGRzRmlsdGVyOmZhbHNlIDp1bmRlZmluZWQgOnRydWUgOiBmb3JtR3JvdXA/LmNvbnRyb2xzWydkYXRhJ11cIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNjZExhYmVsU3Vic3RpdHV0b3IgW2Nhc2VGaWVsZF09XCJmaWVsZFwiIFtjb250ZXh0RmllbGRzXT1cImNhc2VGaWVsZHNcIiBbaGlkZGVuXT1cImZpZWxkLmhpZGRlblwiPlxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiIShmaWVsZCB8IGNjZElzQ29tcG91bmQpXCI+XG4gICAgICAgICAgICAgICAgICAgIDx0ciAqbmdTd2l0Y2hDYXNlPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgIDx0aCBpZD1cImNhc2Utdmlld2VyLWZpZWxkLWxhYmVsXCIgKm5nSWY9XCIhaXNGaWVsZFRvSGF2ZU5vTGFiZWwoZmllbGQpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FzZS12aWV3ZXItbGFiZWwgdGV4dC0xNlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICB7e2ZpZWxkLmxhYmVsIHwgcnB4VHJhbnNsYXRlfX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8L3RoPlxuICAgICAgICAgICAgICAgICAgICAgIDx0ZCBbaWRdPVwiJ2Nhc2Utdmlld2VyLWZpZWxkLXJlYWQtLScgKyBmaWVsZC5pZFwiIHNjb3BlPVwiY29sXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtMTZcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGNjZC1maWVsZC1yZWFkIFt0b3BMZXZlbEZvcm1Hcm91cF09XCJmb3JtR3JvdXA/LmNvbnRyb2xzWydkYXRhJ11cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Nhc2VGaWVsZF09XCJmaWVsZFwiIFtjYXNlUmVmZXJlbmNlXT1cImNhc2VEZXRhaWxzLmNhc2VfaWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21hcmtkb3duVXNlSHJlZkFzUm91dGVyTGlua109XCJtYXJrZG93blVzZUhyZWZBc1JvdXRlckxpbmtcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jY2QtZmllbGQtcmVhZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgICA8dHIgKm5nU3dpdGNoQ2FzZT1cImZhbHNlXCIgY2xhc3M9XCJjb21wb3VuZC1maWVsZFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDx0aCBbaWRdPVwiJ2Nhc2Utdmlld2VyLWZpZWxkLXJlYWQtLScgKyBmaWVsZC5pZFwiIHNjb3BlPVwiY29sXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtMTZcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGNjZC1maWVsZC1yZWFkIFt0b3BMZXZlbEZvcm1Hcm91cF09XCJmb3JtR3JvdXAuY29udHJvbHNbJ2RhdGEnXVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2FzZUZpZWxkXT1cImZpZWxkXCIgW2Nhc2VSZWZlcmVuY2VdPVwiY2FzZURldGFpbHMuY2FzZV9pZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWFya2Rvd25Vc2VIcmVmQXNSb3V0ZXJMaW5rXT1cIm1hcmtkb3duVXNlSHJlZkFzUm91dGVyTGlua1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2NjZC1maWVsZC1yZWFkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDwvdGJvZHk+XG4gICAgICAgICAgICA8L3RhYmxlPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvbWF0LXRhYj5cbiAgICAgICAgPG1hdC10YWIgKm5nRm9yPVwibGV0IHRhYiBvZiBhcHBlbmRlZFRhYnNcIiBbaWRdPVwidGFiLmlkXCIgW2xhYmVsXT1cInRhYi5sYWJlbCB8IHJweFRyYW5zbGF0ZVwiPlxuICAgICAgICA8L21hdC10YWI+XG4gICAgICA8L21hdC10YWItZ3JvdXA+XG4gICAgICA8cm91dGVyLW91dGxldCAqbmdJZj1cIihwcmVwZW5kZWRUYWJzICYmIHByZXBlbmRlZFRhYnMubGVuZ3RoKSB8fCAoYXBwZW5kZWRUYWJzICYmIGFwcGVuZGVkVGFicy5sZW5ndGgpXCI+PC9yb3V0ZXItb3V0bGV0PlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -90,16 +90,14 @@ function PaginationComponent_ul_4_li_5_ng_container_2_Template(rf, ctx) { if (rf
|
|
|
90
90
|
} if (rf & 2) {
|
|
91
91
|
const page_r6 = i0.ɵɵnextContext().$implicit;
|
|
92
92
|
const ctx_r3 = i0.ɵɵnextContext(2);
|
|
93
|
-
i0.ɵɵadvance();
|
|
94
|
-
i0.ɵɵ
|
|
95
|
-
i0.ɵɵadvance();
|
|
96
|
-
i0.ɵɵtextInterpolate1("", i0.ɵɵpipeBind1(3, 3, ctx_r3.screenReaderCurrentLabel), " ");
|
|
93
|
+
i0.ɵɵadvance(2);
|
|
94
|
+
i0.ɵɵtextInterpolate1("", i0.ɵɵpipeBind1(3, 2, ctx_r3.screenReaderCurrentLabel), " ");
|
|
97
95
|
i0.ɵɵadvance(3);
|
|
98
|
-
i0.ɵɵtextInterpolate(page_r6.label === "..." ? page_r6.label : i0.ɵɵpipeBind2(6,
|
|
96
|
+
i0.ɵɵtextInterpolate(page_r6.label === "..." ? page_r6.label : i0.ɵɵpipeBind2(6, 4, page_r6.label, ""));
|
|
99
97
|
} }
|
|
100
98
|
function PaginationComponent_ul_4_li_5_Template(rf, ctx) { if (rf & 1) {
|
|
101
99
|
i0.ɵɵelementStart(0, "li");
|
|
102
|
-
i0.ɵɵtemplate(1, PaginationComponent_ul_4_li_5_a_1_Template, 10, 15, "a", 10)(2, PaginationComponent_ul_4_li_5_ng_container_2_Template, 7,
|
|
100
|
+
i0.ɵɵtemplate(1, PaginationComponent_ul_4_li_5_a_1_Template, 10, 15, "a", 10)(2, PaginationComponent_ul_4_li_5_ng_container_2_Template, 7, 7, "ng-container", 11);
|
|
103
101
|
i0.ɵɵelementEnd();
|
|
104
102
|
} if (rf & 2) {
|
|
105
103
|
const page_r6 = ctx.$implicit;
|
|
@@ -236,7 +234,7 @@ export class PaginationComponent {
|
|
|
236
234
|
}
|
|
237
235
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PaginationComponent, [{
|
|
238
236
|
type: Component,
|
|
239
|
-
args: [{ selector: 'ccd-pagination', template: "<pagination-template #p=\"paginationApi\" [id]=\"id\" [maxSize]=\"maxSize\" (pageChange)=\"pageChange.emit($event)\"\n (pageBoundsCorrection)=\"pageBoundsCorrection.emit($event)\">\n <nav role=\"navigation\" [attr.aria-label]=\"'Pagination' | rpxTranslate\">\n <ul class=\"ngx-pagination\" [attr.aria-label]=\"screenReaderPaginationLabel | rpxTranslate\"\n [class.responsive]=\"responsive\" *ngIf=\"!(autoHide && p.pages.length <= 1)\">\n <li class=\"pagination-previous\" [class.disabled]=\"p.isFirstPage()\" *ngIf=\"directionLinks\">\n <a tabindex=\"0\" *ngIf=\"1 < p.getCurrent()\" (keyup.enter)=\"p.previous()\" (click)=\"p.previous()\"\n [attr.aria-label]=\"'Previous page' | rpxTranslate\">\n {{ previousLabel | rpxTranslate }} <span class=\"show-for-sr\">{{ screenReaderPageLabel | rpxTranslate }}</span>\n </a>\n <span *ngIf=\"p.isFirstPage()\" [attr.aria-label]=\"'Previous page' | rpxTranslate\">\n {{ previousLabel | rpxTranslate }} <span class=\"show-for-sr\">{{ screenReaderPageLabel | rpxTranslate }}</span>\n </span>\n </li>\n <li class=\"small-screen\">\n {{ p.getCurrent() }} / {{ p.getLastPage() }}\n </li>\n <li [class.current]=\"p.getCurrent() === page.value\" [class.ellipsis]=\"page.label === '...'\"\n *ngFor=\"let page of p.pages\">\n <a tabindex=\"0\" (keyup.enter)=\"p.setCurrent(page.value)\" (click)=\"p.setCurrent(page.value)\"\n *ngIf=\"p.getCurrent() !== page.value\" [attr.aria-label]=\"(page.label === '...') ? ('Change pagination range' | rpxTranslate) : ('Page ' | rpxTranslate) + (page.label | number:'')\">\n <span class=\"show-for-sr\">{{ screenReaderPageLabel | rpxTranslate }} </span>\n <span>{{ (page.label === '...') ? page.label : (page.label | number:'') }}</span>\n </a>\n <ng-container *ngIf=\"p.getCurrent() === page.value\">\n <span class=\"show-for-sr\"
|
|
237
|
+
args: [{ selector: 'ccd-pagination', template: "<pagination-template #p=\"paginationApi\" [id]=\"id\" [maxSize]=\"maxSize\" (pageChange)=\"pageChange.emit($event)\"\n (pageBoundsCorrection)=\"pageBoundsCorrection.emit($event)\">\n <nav role=\"navigation\" [attr.aria-label]=\"'Pagination' | rpxTranslate\">\n <ul class=\"ngx-pagination\" [attr.aria-label]=\"screenReaderPaginationLabel | rpxTranslate\"\n [class.responsive]=\"responsive\" *ngIf=\"!(autoHide && p.pages.length <= 1)\">\n <li class=\"pagination-previous\" [class.disabled]=\"p.isFirstPage()\" *ngIf=\"directionLinks\">\n <a tabindex=\"0\" *ngIf=\"1 < p.getCurrent()\" (keyup.enter)=\"p.previous()\" (click)=\"p.previous()\"\n [attr.aria-label]=\"'Previous page' | rpxTranslate\">\n {{ previousLabel | rpxTranslate }} <span class=\"show-for-sr\">{{ screenReaderPageLabel | rpxTranslate }}</span>\n </a>\n <span *ngIf=\"p.isFirstPage()\" [attr.aria-label]=\"'Previous page' | rpxTranslate\">\n {{ previousLabel | rpxTranslate }} <span class=\"show-for-sr\">{{ screenReaderPageLabel | rpxTranslate }}</span>\n </span>\n </li>\n <li class=\"small-screen\">\n {{ p.getCurrent() }} / {{ p.getLastPage() }}\n </li>\n <li [class.current]=\"p.getCurrent() === page.value\" [class.ellipsis]=\"page.label === '...'\"\n *ngFor=\"let page of p.pages\">\n <a tabindex=\"0\" (keyup.enter)=\"p.setCurrent(page.value)\" (click)=\"p.setCurrent(page.value)\"\n *ngIf=\"p.getCurrent() !== page.value\" [attr.aria-label]=\"(page.label === '...') ? ('Change pagination range' | rpxTranslate) : ('Page ' | rpxTranslate) + (page.label | number:'')\">\n <span class=\"show-for-sr\">{{ screenReaderPageLabel | rpxTranslate }} </span>\n <span>{{ (page.label === '...') ? page.label : (page.label | number:'') }}</span>\n </a>\n <ng-container *ngIf=\"p.getCurrent() === page.value\">\n <span class=\"show-for-sr\">{{ screenReaderCurrentLabel | rpxTranslate }} </span>\n <span>{{ (page.label === '...') ? page.label : (page.label | number:'') }}</span>\n </ng-container>\n </li>\n <li class=\"pagination-next\" [class.disabled]=\"p.isLastPage()\" *ngIf=\"directionLinks\">\n <a tabindex=\"0\" *ngIf=\"!p.isLastPage()\" (keyup.enter)=\"p.next()\" (click)=\"p.next()\"\n [attr.aria-label]=\"'Next page' | rpxTranslate\">\n {{ nextLabel | rpxTranslate }} <span class=\"show-for-sr\">{{ screenReaderPageLabel | rpxTranslate }}</span>\n </a>\n <span *ngIf=\"p.isLastPage()\">\n {{ nextLabel | rpxTranslate }} <span class=\"show-for-sr\">{{ screenReaderPageLabel | rpxTranslate }}</span>\n </span>\n </li>\n </ul>\n </nav>\n</pagination-template>\n", styles: [".ngx-pagination{margin-left:0;margin-bottom:1rem;padding-top:25px;text-decoration:none;text-align:left;font-size:16px}.ngx-pagination:before,.ngx-pagination:after{content:\" \";display:table}.ngx-pagination:after{clear:both}.ngx-pagination li{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;margin-right:.0625rem;border-radius:0}.ngx-pagination li{display:inline-block}.ngx-pagination a,.ngx-pagination button{display:block;padding:.1875rem .625rem;border-radius:0;color:#005da6}.ngx-pagination a:hover,.ngx-pagination button:hover{background:#e6e6e6}.ngx-pagination .current{padding:.1875rem .625rem;background:#fff;color:#4c2c92;cursor:default;font-weight:900}.ngx-pagination .disabled{display:none}.ngx-pagination .disabled:hover{background:transparent}.ngx-pagination a,.ngx-pagination button{cursor:pointer}.ngx-pagination .pagination-previous a:before,.ngx-pagination .pagination-previous.disabled:before{margin-right:.5rem;display:inline-block;height:10px;width:10px;border-style:solid;color:#0a0a0a;background:transparent;-webkit-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg);content:\"\";border-width:3px 0 0 3px}.ngx-pagination .pagination-next a:after,.ngx-pagination .pagination-next.disabled:after{margin-left:.5rem;display:inline-block;height:10px;width:10px;border-style:solid;color:#0a0a0a;background:transparent;-webkit-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg);content:\"\";border-width:0 3px 3px 0}.ngx-pagination .show-for-sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.ngx-pagination .small-screen{display:none}@media screen and (max-width: 601px){.ngx-pagination.responsive .small-screen{display:inline-block}.ngx-pagination.responsive li:not(.small-screen):not(.pagination-previous):not(.pagination-next){display:none}}\n"] }]
|
|
240
238
|
}], null, { visibilityLabel: [{
|
|
241
239
|
type: Input
|
|
242
240
|
}], id: [{
|
|
@@ -265,4 +263,4 @@ export class PaginationComponent {
|
|
|
265
263
|
type: Input
|
|
266
264
|
}] }); })();
|
|
267
265
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PaginationComponent, { className: "PaginationComponent", filePath: "lib/shared/components/pagination/pagination.component.ts", lineNumber: 12 }); })();
|
|
268
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvcGFnaW5hdGlvbi9wYWdpbmF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWdpbmF0aW9uL3BhZ2luYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7OztJQ00vRCw2QkFDcUQ7O0lBRG1CLEFBQTdCLGdOQUFlLGVBQVksS0FBQyx1TEFBVSxlQUFZLEtBQUM7SUFFNUYsWUFBbUM7O0lBQUEsZ0NBQTBCO0lBQUEsWUFBMEM7O0lBQ3pHLEFBRHlHLGlCQUFPLEVBQzVHOzs7O0lBREYsZUFBbUM7SUFBbkMsMkVBQW1DO0lBQTBCLGVBQTBDO0lBQTFDLHdFQUEwQzs7O0lBRXpHLDRCQUFpRjs7SUFDL0UsWUFBbUM7O0lBQUEsZ0NBQTBCO0lBQUEsWUFBMEM7O0lBQ3pHLEFBRHlHLGlCQUFPLEVBQ3pHOzs7O0lBREwsZUFBbUM7SUFBbkMsMkVBQW1DO0lBQTBCLGVBQTBDO0lBQTFDLHdFQUEwQzs7O0lBTjNHLDZCQUEwRjtJQUt4RixBQUpBLDJFQUNxRCxvRUFHNEI7SUFHbkYsaUJBQUs7Ozs7SUFSMkIsOENBQWtDO0lBQy9DLGNBQXdCO0lBQXhCLDRDQUF3QjtJQUlsQyxjQUFxQjtJQUFyQix5Q0FBcUI7Ozs7SUFTNUIsNkJBQ3NMOzs7O0lBRDdILEFBQXpDLDhQQUFlLDhCQUF3QixLQUFDLHFPQUFVLDhCQUF3QixLQUFDO0lBRXpGLGdDQUEwQjtJ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QVU7UUFDbkIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFXLFVBQVUsQ0FBQyxLQUFjO1FBQ2xDLElBQUksQ0FBQyxXQUFXLEdBQUcsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVDLENBQUM7NkVBMUNVLG1CQUFtQjs2REFBbkIsbUJBQW1COztZQ1hoQyxpREFDNkQ7WUFBM0QsQUFEb0UsbUtBQWMsMkJBQXVCLEtBQUMsMEtBQ2xGLHFDQUFpQyxLQUFDO1lBQzFELDhCQUF1RTs7WUFDckUsbUVBQzZFO1lBb0NqRixBQURFLGlCQUFNLEVBQ2M7OztZQXhDNEIsQUFBViwyQkFBUyx3QkFBb0I7WUFFNUMsZUFBK0M7O1lBRWpDLGVBQXdDO1lBQXhDLGdFQUF3Qzs7O2lGRE9sRSxtQkFBbUI7Y0FML0IsU0FBUzsyQkFDRSxnQkFBZ0I7Z0JBTW5CLGVBQWU7a0JBRHJCLEtBQUs7WUFFVSxFQUFFO2tCQUFqQixLQUFLO1lBQ1UsT0FBTztrQkFBdEIsS0FBSztZQUNVLGFBQWE7a0JBQTVCLEtBQUs7WUFDVSxTQUFTO2tCQUF4QixLQUFLO1lBQ1UsMkJBQTJCO2tCQUExQyxLQUFLO1lBQ1UscUJBQXFCO2tCQUFwQyxLQUFLO1lBQ1Usd0JBQXdCO2tCQUF2QyxLQUFLO1lBQ1csVUFBVTtrQkFBMUIsTUFBTTtZQUNVLG9CQUFvQjtrQkFBcEMsTUFBTTtZQU9JLGNBQWM7a0JBRHhCLEtBQUs7WUFVSyxRQUFRO2tCQURsQixLQUFLO1lBVUssVUFBVTtrQkFEcEIsS0FBSzs7a0ZBbkNLLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmZ1bmN0aW9uIGNvZXJjZVRvQm9vbGVhbihpbnB1dDogc3RyaW5nIHwgYm9vbGVhbik6IGJvb2xlYW4ge1xuICByZXR1cm4gISFpbnB1dCAmJiBpbnB1dCAhPT0gJ2ZhbHNlJztcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2NkLXBhZ2luYXRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vcGFnaW5hdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3BhZ2luYXRpb24uY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBQYWdpbmF0aW9uQ29tcG9uZW50IHtcbiAgQElucHV0KClcbiAgcHVibGljIHZpc2liaWxpdHlMYWJlbDogc3RyaW5nO1xuICBASW5wdXQoKSBwdWJsaWMgaWQ6IHN0cmluZztcbiAgQElucHV0KCkgcHVibGljIG1heFNpemUgPSA3O1xuICBASW5wdXQoKSBwdWJsaWMgcHJldmlvdXNMYWJlbCA9ICdQcmV2aW91cyc7XG4gIEBJbnB1dCgpIHB1YmxpYyBuZXh0TGFiZWwgPSAnTmV4dCc7XG4gIEBJbnB1dCgpIHB1YmxpYyBzY3JlZW5SZWFkZXJQYWdpbmF0aW9uTGFiZWwgPSAnUGFnaW5hdGlvbic7XG4gIEBJbnB1dCgpIHB1YmxpYyBzY3JlZW5SZWFkZXJQYWdlTGFiZWwgPSAncGFnZSc7XG4gIEBJbnB1dCgpIHB1YmxpYyBzY3JlZW5SZWFkZXJDdXJyZW50TGFiZWwgPSBgWW91J3JlIG9uIHBhZ2VgO1xuICBAT3V0cHV0KCkgcHVibGljIHBhZ2VDaGFuZ2U6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgcGFnZUJvdW5kc0NvcnJlY3Rpb246IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgcHJpdmF0ZSBwRGlyZWN0aW9uTGlua3MgPSB0cnVlO1xuICBwcml2YXRlIHBBdXRvSGlkZSA9IGZhbHNlO1xuICBwcml2YXRlIHBSZXNwb25zaXZlID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGdldCBkaXJlY3Rpb25MaW5rcygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5wRGlyZWN0aW9uTGlua3M7XG4gIH1cblxuICBwdWJsaWMgc2V0IGRpcmVjdGlvbkxpbmtzKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5wRGlyZWN0aW9uTGlua3MgPSBjb2VyY2VUb0Jvb2xlYW4odmFsdWUpO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIGdldCBhdXRvSGlkZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5wQXV0b0hpZGU7XG4gIH1cblxuICBwdWJsaWMgc2V0IGF1dG9IaWRlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5wQXV0b0hpZGUgPSBjb2VyY2VUb0Jvb2xlYW4odmFsdWUpO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIGdldCByZXNwb25zaXZlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnBSZXNwb25zaXZlO1xuICB9XG5cbiAgcHVibGljIHNldCByZXNwb25zaXZlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5wUmVzcG9uc2l2ZSA9IGNvZXJjZVRvQm9vbGVhbih2YWx1ZSk7XG4gIH1cbn1cbiIsIjxwYWdpbmF0aW9uLXRlbXBsYXRlICNwPVwicGFnaW5hdGlvbkFwaVwiIFtpZF09XCJpZFwiIFttYXhTaXplXT1cIm1heFNpemVcIiAocGFnZUNoYW5nZSk9XCJwYWdlQ2hhbmdlLmVtaXQoJGV2ZW50KVwiXG4gIChwYWdlQm91bmRzQ29ycmVjdGlvbik9XCJwYWdlQm91bmRzQ29ycmVjdGlvbi5lbWl0KCRldmVudClcIj5cbiAgPG5hdiByb2xlPVwibmF2aWdhdGlvblwiIFthdHRyLmFyaWEtbGFiZWxdPVwiJ1BhZ2luYXRpb24nIHwgcnB4VHJhbnNsYXRlXCI+XG4gICAgPHVsIGNsYXNzPVwibmd4LXBhZ2luYXRpb25cIiBbYXR0ci5hcmlhLWxhYmVsXT1cInNjcmVlblJlYWRlclBhZ2luYXRpb25MYWJlbCB8IHJweFRyYW5zbGF0ZVwiXG4gICAgICBbY2xhc3MucmVzcG9uc2l2ZV09XCJyZXNwb25zaXZlXCIgKm5nSWY9XCIhKGF1dG9IaWRlICYmIHAucGFnZXMubGVuZ3RoIDw9IDEpXCI+XG4gICAgICA8bGkgY2xhc3M9XCJwYWdpbmF0aW9uLXByZXZpb3VzXCIgW2NsYXNzLmRpc2FibGVkXT1cInAuaXNGaXJzdFBhZ2UoKVwiICpuZ0lmPVwiZGlyZWN0aW9uTGlua3NcIj5cbiAgICAgICAgPGEgdGFiaW5kZXg9XCIwXCIgKm5nSWY9XCIxIDwgcC5nZXRDdXJyZW50KClcIiAoa2V5dXAuZW50ZXIpPVwicC5wcmV2aW91cygpXCIgKGNsaWNrKT1cInAucHJldmlvdXMoKVwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInUHJldmlvdXMgcGFnZScgfCBycHhUcmFuc2xhdGVcIj5cbiAgICAgICAgICB7eyBwcmV2aW91c0xhYmVsIHwgcnB4VHJhbnNsYXRlIH19IDxzcGFuIGNsYXNzPVwic2hvdy1mb3Itc3JcIj57eyBzY3JlZW5SZWFkZXJQYWdlTGFiZWwgfCBycHhUcmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgIDwvYT5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCJwLmlzRmlyc3RQYWdlKClcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIidQcmV2aW91cyBwYWdlJyB8IHJweFRyYW5zbGF0ZVwiPlxuICAgICAgICAgIHt7IHByZXZpb3VzTGFiZWwgfCBycHhUcmFuc2xhdGUgfX0gPHNwYW4gY2xhc3M9XCJzaG93LWZvci1zclwiPnt7IHNjcmVlblJlYWRlclBhZ2VMYWJlbCB8IHJweFRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9saT5cbiAgICAgIDxsaSBjbGFzcz1cInNtYWxsLXNjcmVlblwiPlxuICAgICAgICB7eyBwLmdldEN1cnJlbnQoKSB9fSAvIHt7IHAuZ2V0TGFzdFBhZ2UoKSB9fVxuICAgICAgPC9saT5cbiAgICAgIDxsaSBbY2xhc3MuY3VycmVudF09XCJwLmdldEN1cnJlbnQoKSA9PT0gcGFnZS52YWx1ZVwiIFtjbGFzcy5lbGxpcHNpc109XCJwYWdlLmxhYmVsID09PSAnLi4uJ1wiXG4gICAgICAgICpuZ0Zvcj1cImxldCBwYWdlIG9mIHAucGFnZXNcIj5cbiAgICAgICAgPGEgdGFiaW5kZXg9XCIwXCIgKGtleXVwLmVudGVyKT1cInAuc2V0Q3VycmVudChwYWdlLnZhbHVlKVwiIChjbGljayk9XCJwLnNldEN1cnJlbnQocGFnZS52YWx1ZSlcIlxuICAgICAgICAgICpuZ0lmPVwicC5nZXRDdXJyZW50KCkgIT09IHBhZ2UudmFsdWVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIihwYWdlLmxhYmVsID09PSAnLi4uJykgPyAoJ0NoYW5nZSBwYWdpbmF0aW9uIHJhbmdlJyB8IHJweFRyYW5zbGF0ZSkgOiAoJ1BhZ2UgJyB8IHJweFRyYW5zbGF0ZSkgKyAocGFnZS5sYWJlbCB8IG51bWJlcjonJylcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInNob3ctZm9yLXNyXCI+e3sgc2NyZWVuUmVhZGVyUGFnZUxhYmVsIHwgcnB4VHJhbnNsYXRlIH19IDwvc3Bhbj5cbiAgICAgICAgICA8c3Bhbj57eyAocGFnZS5sYWJlbCA9PT0gJy4uLicpID8gcGFnZS5sYWJlbCA6IChwYWdlLmxhYmVsIHwgbnVtYmVyOicnKSB9fTwvc3Bhbj5cbiAgICAgICAgPC9hPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicC5nZXRDdXJyZW50KCkgPT09IHBhZ2UudmFsdWVcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInNob3ctZm9yLXNyXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJzY3JlZW5SZWFkZXJDdXJyZW50TGFiZWwgKyAnICcgKyBwYWdlLmxhYmVsXCI+e3sgc2NyZWVuUmVhZGVyQ3VycmVudExhYmVsIHwgcnB4VHJhbnNsYXRlIH19IDwvc3Bhbj5cbiAgICAgICAgICA8c3Bhbj57eyAocGFnZS5sYWJlbCA9PT0gJy4uLicpID8gcGFnZS5sYWJlbCA6IChwYWdlLmxhYmVsIHwgbnVtYmVyOicnKSB9fTwvc3Bhbj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L2xpPlxuICAgICAgPGxpIGNsYXNzPVwicGFnaW5hdGlvbi1uZXh0XCIgW2NsYXNzLmRpc2FibGVkXT1cInAuaXNMYXN0UGFnZSgpXCIgKm5nSWY9XCJkaXJlY3Rpb25MaW5rc1wiPlxuICAgICAgICA8YSB0YWJpbmRleD1cIjBcIiAqbmdJZj1cIiFwLmlzTGFzdFBhZ2UoKVwiIChrZXl1cC5lbnRlcik9XCJwLm5leHQoKVwiIChjbGljayk9XCJwLm5leHQoKVwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInTmV4dCBwYWdlJyB8IHJweFRyYW5zbGF0ZVwiPlxuICAgICAgICAgIHt7IG5leHRMYWJlbCB8IHJweFRyYW5zbGF0ZSB9fSA8c3BhbiBjbGFzcz1cInNob3ctZm9yLXNyXCI+e3sgc2NyZWVuUmVhZGVyUGFnZUxhYmVsIHwgcnB4VHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICA8L2E+XG4gICAgICAgIDxzcGFuICpuZ0lmPVwicC5pc0xhc3RQYWdlKClcIj5cbiAgICAgICAgICB7eyBuZXh0TGFiZWwgfCBycHhUcmFuc2xhdGUgfX0gPHNwYW4gY2xhc3M9XCJzaG93LWZvci1zclwiPnt7IHNjcmVlblJlYWRlclBhZ2VMYWJlbCB8IHJweFRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9saT5cbiAgICA8L3VsPlxuICA8L25hdj5cbjwvcGFnaW5hdGlvbi10ZW1wbGF0ZT5cbiJdfQ==
|
|
266
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvcGFnaW5hdGlvbi9wYWdpbmF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWdpbmF0aW9uL3BhZ2luYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7OztJQ00vRCw2QkFDcUQ7O0lBRG1CLEFBQTdCLGdOQUFlLGVBQVksS0FBQyx1TEFBVSxlQUFZLEtBQUM7SUFFNUYsWUFBbUM7O0lBQUEsZ0NBQTBCO0lBQUEsWUFBMEM7O0lBQ3pHLEFBRHlHLGlCQUFPLEVBQzVHOzs7O0lBREYsZUFBbUM7SUFBbkMsMkVBQW1DO0lBQTBCLGVBQTBDO0lBQTFDLHdFQUEwQzs7O0lBRXpHLDRCQUFpRjs7SUFDL0UsWUFBbUM7O0lBQUEsZ0NBQTBCO0lBQUEsWUFBMEM7O0lBQ3pHLEFBRHlHLGlCQUFPLEVBQ3pHOzs7O0lBREwsZUFBbUM7SUFBbkMsMkVBQW1DO0lBQTBCLGVBQTBDO0lBQTFDLHdFQUEwQzs7O0lBTjNHLDZCQUEwRjtJQUt4RixBQUpBLDJFQUNxRCxvRUFHNEI7SUFHbkYsaUJBQUs7Ozs7SUFSMkIsOENBQWtDO0lBQy9DLGNBQXdCO0lBQXhCLDRDQUF3QjtJQUlsQyxjQUFxQjtJQUFyQix5Q0FBcUI7Ozs7SUFTNUIsNkJBQ3NMOzs7O0lBRDdILEFBQXpDLDhQQUFlLDhCQUF3QixLQUFDLHFPQUFVLDhCQUF3QixLQUFDO0lBRXpGLGdDQUEwQjtJ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TyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFXLFVBQVUsQ0FBQyxLQUFjO1FBQ2xDLElBQUksQ0FBQyxXQUFXLEdBQUcsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVDLENBQUM7NkVBMUNVLG1CQUFtQjs2REFBbkIsbUJBQW1COztZQ1hoQyxpREFDNkQ7WUFBM0QsQUFEb0UsbUtBQWMsMkJBQXVCLEtBQUMsMEtBQ2xGLHFDQUFpQyxLQUFDO1lBQzFELDhCQUF1RTs7WUFDckUsbUVBQzZFO1lBb0NqRixBQURFLGlCQUFNLEVBQ2M7OztZQXhDNEIsQUFBViwyQkFBUyx3QkFBb0I7WUFFNUMsZUFBK0M7O1lBRWpDLGVBQXdDO1lBQXhDLGdFQUF3Qzs7O2lGRE9sRSxtQkFBbUI7Y0FML0IsU0FBUzsyQkFDRSxnQkFBZ0I7Z0JBTW5CLGVBQWU7a0JBRHJCLEtBQUs7WUFFVSxFQUFFO2tCQUFqQixLQUFLO1lBQ1UsT0FBTztrQkFBdEIsS0FBSztZQUNVLGFBQWE7a0JBQTVCLEtBQUs7WUFDVSxTQUFTO2tCQUF4QixLQUFLO1lBQ1UsMkJBQTJCO2tCQUExQyxLQUFLO1lBQ1UscUJBQXFCO2tCQUFwQyxLQUFLO1lBQ1Usd0JBQXdCO2tCQUF2QyxLQUFLO1lBQ1csVUFBVTtrQkFBMUIsTUFBTTtZQUNVLG9CQUFvQjtrQkFBcEMsTUFBTTtZQU9JLGNBQWM7a0JBRHhCLEtBQUs7WUFVSyxRQUFRO2tCQURsQixLQUFLO1lBVUssVUFBVTtrQkFEcEIsS0FBSzs7a0ZBbkNLLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmZ1bmN0aW9uIGNvZXJjZVRvQm9vbGVhbihpbnB1dDogc3RyaW5nIHwgYm9vbGVhbik6IGJvb2xlYW4ge1xuICByZXR1cm4gISFpbnB1dCAmJiBpbnB1dCAhPT0gJ2ZhbHNlJztcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2NkLXBhZ2luYXRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vcGFnaW5hdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3BhZ2luYXRpb24uY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBQYWdpbmF0aW9uQ29tcG9uZW50IHtcbiAgQElucHV0KClcbiAgcHVibGljIHZpc2liaWxpdHlMYWJlbDogc3RyaW5nO1xuICBASW5wdXQoKSBwdWJsaWMgaWQ6IHN0cmluZztcbiAgQElucHV0KCkgcHVibGljIG1heFNpemUgPSA3O1xuICBASW5wdXQoKSBwdWJsaWMgcHJldmlvdXNMYWJlbCA9ICdQcmV2aW91cyc7XG4gIEBJbnB1dCgpIHB1YmxpYyBuZXh0TGFiZWwgPSAnTmV4dCc7XG4gIEBJbnB1dCgpIHB1YmxpYyBzY3JlZW5SZWFkZXJQYWdpbmF0aW9uTGFiZWwgPSAnUGFnaW5hdGlvbic7XG4gIEBJbnB1dCgpIHB1YmxpYyBzY3JlZW5SZWFkZXJQYWdlTGFiZWwgPSAncGFnZSc7XG4gIEBJbnB1dCgpIHB1YmxpYyBzY3JlZW5SZWFkZXJDdXJyZW50TGFiZWwgPSBgWW91J3JlIG9uIHBhZ2VgO1xuICBAT3V0cHV0KCkgcHVibGljIHBhZ2VDaGFuZ2U6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgcGFnZUJvdW5kc0NvcnJlY3Rpb246IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgcHJpdmF0ZSBwRGlyZWN0aW9uTGlua3MgPSB0cnVlO1xuICBwcml2YXRlIHBBdXRvSGlkZSA9IGZhbHNlO1xuICBwcml2YXRlIHBSZXNwb25zaXZlID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGdldCBkaXJlY3Rpb25MaW5rcygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5wRGlyZWN0aW9uTGlua3M7XG4gIH1cblxuICBwdWJsaWMgc2V0IGRpcmVjdGlvbkxpbmtzKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5wRGlyZWN0aW9uTGlua3MgPSBjb2VyY2VUb0Jvb2xlYW4odmFsdWUpO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIGdldCBhdXRvSGlkZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5wQXV0b0hpZGU7XG4gIH1cblxuICBwdWJsaWMgc2V0IGF1dG9IaWRlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5wQXV0b0hpZGUgPSBjb2VyY2VUb0Jvb2xlYW4odmFsdWUpO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIGdldCByZXNwb25zaXZlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnBSZXNwb25zaXZlO1xuICB9XG5cbiAgcHVibGljIHNldCByZXNwb25zaXZlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5wUmVzcG9uc2l2ZSA9IGNvZXJjZVRvQm9vbGVhbih2YWx1ZSk7XG4gIH1cbn1cbiIsIjxwYWdpbmF0aW9uLXRlbXBsYXRlICNwPVwicGFnaW5hdGlvbkFwaVwiIFtpZF09XCJpZFwiIFttYXhTaXplXT1cIm1heFNpemVcIiAocGFnZUNoYW5nZSk9XCJwYWdlQ2hhbmdlLmVtaXQoJGV2ZW50KVwiXG4gIChwYWdlQm91bmRzQ29ycmVjdGlvbik9XCJwYWdlQm91bmRzQ29ycmVjdGlvbi5lbWl0KCRldmVudClcIj5cbiAgPG5hdiByb2xlPVwibmF2aWdhdGlvblwiIFthdHRyLmFyaWEtbGFiZWxdPVwiJ1BhZ2luYXRpb24nIHwgcnB4VHJhbnNsYXRlXCI+XG4gICAgPHVsIGNsYXNzPVwibmd4LXBhZ2luYXRpb25cIiBbYXR0ci5hcmlhLWxhYmVsXT1cInNjcmVlblJlYWRlclBhZ2luYXRpb25MYWJlbCB8IHJweFRyYW5zbGF0ZVwiXG4gICAgICBbY2xhc3MucmVzcG9uc2l2ZV09XCJyZXNwb25zaXZlXCIgKm5nSWY9XCIhKGF1dG9IaWRlICYmIHAucGFnZXMubGVuZ3RoIDw9IDEpXCI+XG4gICAgICA8bGkgY2xhc3M9XCJwYWdpbmF0aW9uLXByZXZpb3VzXCIgW2NsYXNzLmRpc2FibGVkXT1cInAuaXNGaXJzdFBhZ2UoKVwiICpuZ0lmPVwiZGlyZWN0aW9uTGlua3NcIj5cbiAgICAgICAgPGEgdGFiaW5kZXg9XCIwXCIgKm5nSWY9XCIxIDwgcC5nZXRDdXJyZW50KClcIiAoa2V5dXAuZW50ZXIpPVwicC5wcmV2aW91cygpXCIgKGNsaWNrKT1cInAucHJldmlvdXMoKVwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInUHJldmlvdXMgcGFnZScgfCBycHhUcmFuc2xhdGVcIj5cbiAgICAgICAgICB7eyBwcmV2aW91c0xhYmVsIHwgcnB4VHJhbnNsYXRlIH19IDxzcGFuIGNsYXNzPVwic2hvdy1mb3Itc3JcIj57eyBzY3JlZW5SZWFkZXJQYWdlTGFiZWwgfCBycHhUcmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgIDwvYT5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCJwLmlzRmlyc3RQYWdlKClcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIidQcmV2aW91cyBwYWdlJyB8IHJweFRyYW5zbGF0ZVwiPlxuICAgICAgICAgIHt7IHByZXZpb3VzTGFiZWwgfCBycHhUcmFuc2xhdGUgfX0gPHNwYW4gY2xhc3M9XCJzaG93LWZvci1zclwiPnt7IHNjcmVlblJlYWRlclBhZ2VMYWJlbCB8IHJweFRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9saT5cbiAgICAgIDxsaSBjbGFzcz1cInNtYWxsLXNjcmVlblwiPlxuICAgICAgICB7eyBwLmdldEN1cnJlbnQoKSB9fSAvIHt7IHAuZ2V0TGFzdFBhZ2UoKSB9fVxuICAgICAgPC9saT5cbiAgICAgIDxsaSBbY2xhc3MuY3VycmVudF09XCJwLmdldEN1cnJlbnQoKSA9PT0gcGFnZS52YWx1ZVwiIFtjbGFzcy5lbGxpcHNpc109XCJwYWdlLmxhYmVsID09PSAnLi4uJ1wiXG4gICAgICAgICpuZ0Zvcj1cImxldCBwYWdlIG9mIHAucGFnZXNcIj5cbiAgICAgICAgPGEgdGFiaW5kZXg9XCIwXCIgKGtleXVwLmVudGVyKT1cInAuc2V0Q3VycmVudChwYWdlLnZhbHVlKVwiIChjbGljayk9XCJwLnNldEN1cnJlbnQocGFnZS52YWx1ZSlcIlxuICAgICAgICAgICpuZ0lmPVwicC5nZXRDdXJyZW50KCkgIT09IHBhZ2UudmFsdWVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIihwYWdlLmxhYmVsID09PSAnLi4uJykgPyAoJ0NoYW5nZSBwYWdpbmF0aW9uIHJhbmdlJyB8IHJweFRyYW5zbGF0ZSkgOiAoJ1BhZ2UgJyB8IHJweFRyYW5zbGF0ZSkgKyAocGFnZS5sYWJlbCB8IG51bWJlcjonJylcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInNob3ctZm9yLXNyXCI+e3sgc2NyZWVuUmVhZGVyUGFnZUxhYmVsIHwgcnB4VHJhbnNsYXRlIH19IDwvc3Bhbj5cbiAgICAgICAgICA8c3Bhbj57eyAocGFnZS5sYWJlbCA9PT0gJy4uLicpID8gcGFnZS5sYWJlbCA6IChwYWdlLmxhYmVsIHwgbnVtYmVyOicnKSB9fTwvc3Bhbj5cbiAgICAgICAgPC9hPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicC5nZXRDdXJyZW50KCkgPT09IHBhZ2UudmFsdWVcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInNob3ctZm9yLXNyXCI+e3sgc2NyZWVuUmVhZGVyQ3VycmVudExhYmVsIHwgcnB4VHJhbnNsYXRlIH19IDwvc3Bhbj5cbiAgICAgICAgICA8c3Bhbj57eyAocGFnZS5sYWJlbCA9PT0gJy4uLicpID8gcGFnZS5sYWJlbCA6IChwYWdlLmxhYmVsIHwgbnVtYmVyOicnKSB9fTwvc3Bhbj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L2xpPlxuICAgICAgPGxpIGNsYXNzPVwicGFnaW5hdGlvbi1uZXh0XCIgW2NsYXNzLmRpc2FibGVkXT1cInAuaXNMYXN0UGFnZSgpXCIgKm5nSWY9XCJkaXJlY3Rpb25MaW5rc1wiPlxuICAgICAgICA8YSB0YWJpbmRleD1cIjBcIiAqbmdJZj1cIiFwLmlzTGFzdFBhZ2UoKVwiIChrZXl1cC5lbnRlcik9XCJwLm5leHQoKVwiIChjbGljayk9XCJwLm5leHQoKVwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInTmV4dCBwYWdlJyB8IHJweFRyYW5zbGF0ZVwiPlxuICAgICAgICAgIHt7IG5leHRMYWJlbCB8IHJweFRyYW5zbGF0ZSB9fSA8c3BhbiBjbGFzcz1cInNob3ctZm9yLXNyXCI+e3sgc2NyZWVuUmVhZGVyUGFnZUxhYmVsIHwgcnB4VHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICA8L2E+XG4gICAgICAgIDxzcGFuICpuZ0lmPVwicC5pc0xhc3RQYWdlKClcIj5cbiAgICAgICAgICB7eyBuZXh0TGFiZWwgfCBycHhUcmFuc2xhdGUgfX0gPHNwYW4gY2xhc3M9XCJzaG93LWZvci1zclwiPnt7IHNjcmVlblJlYWRlclBhZ2VMYWJlbCB8IHJweFRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9saT5cbiAgICA8L3VsPlxuICA8L25hdj5cbjwvcGFnaW5hdGlvbi10ZW1wbGF0ZT5cbiJdfQ==
|
package/esm2022/lib/shared/components/palette/base-field/abstract-field-write-journey.component.mjs
ADDED
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { Directive, Input, ViewChild } from '@angular/core';
|
|
2
|
+
import { AbstractFieldWriteComponent } from './abstract-field-write.component';
|
|
3
|
+
import { MultipageComponentStateService } from '../../../services';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "../../../services";
|
|
6
|
+
const _c0 = ["journeyChild"];
|
|
7
|
+
export class AbstractFieldWriteJourneyComponent extends AbstractFieldWriteComponent {
|
|
8
|
+
multipageComponentStateService;
|
|
9
|
+
journeyStartPageNumber = 0;
|
|
10
|
+
journeyEndPageNumber = 0;
|
|
11
|
+
journeyPageNumber = 0;
|
|
12
|
+
journeyPreviousPageNumber = 0;
|
|
13
|
+
journeyId = 'journey';
|
|
14
|
+
childJourney;
|
|
15
|
+
constructor(multipageComponentStateService) {
|
|
16
|
+
super();
|
|
17
|
+
this.multipageComponentStateService = multipageComponentStateService;
|
|
18
|
+
this.multipageComponentStateService.addTojourneyCollection(this);
|
|
19
|
+
this.journeyPageNumber = this.journeyStartPageNumber;
|
|
20
|
+
}
|
|
21
|
+
next() {
|
|
22
|
+
if (!this.hasNext()) {
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
this.childJourney.next();
|
|
26
|
+
}
|
|
27
|
+
previous() {
|
|
28
|
+
if (!this.hasPrevious()) {
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
if (this.childJourney['cachedFlagType'] && this.childJourney['subJourneyIndex'] !== 0) {
|
|
32
|
+
this.childJourney.previous();
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
this.previousPage();
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
previousPage() {
|
|
39
|
+
if (this.hasPrevious()) {
|
|
40
|
+
if (!this.childJourney?.searchLanguageInterpreterHint) {
|
|
41
|
+
this.journeyPageNumber--;
|
|
42
|
+
}
|
|
43
|
+
this.onPageChange();
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
nextPage() {
|
|
47
|
+
if (this.hasNext()) {
|
|
48
|
+
if (!this.childJourney?.searchLanguageInterpreterHint) {
|
|
49
|
+
this.journeyPageNumber++;
|
|
50
|
+
}
|
|
51
|
+
this.onPageChange();
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
ngOnInit() {
|
|
55
|
+
this.journeyPageNumber = this.journeyStartPageNumber;
|
|
56
|
+
const state = this.multipageComponentStateService.getJourneyState(this);
|
|
57
|
+
if (state) {
|
|
58
|
+
const { journeyPageNumber, journeyStartPageNumber, journeyEndPageNumber } = state;
|
|
59
|
+
this.journeyPageNumber = journeyPageNumber;
|
|
60
|
+
this.journeyStartPageNumber = journeyStartPageNumber;
|
|
61
|
+
this.journeyEndPageNumber = journeyEndPageNumber;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
ngOnDestroy() {
|
|
65
|
+
this.multipageComponentStateService.setJourneyState(this);
|
|
66
|
+
}
|
|
67
|
+
hasNext() { return this.journeyPageNumber < this.journeyEndPageNumber; }
|
|
68
|
+
;
|
|
69
|
+
hasPrevious() { return this.journeyPageNumber > this.journeyStartPageNumber; }
|
|
70
|
+
;
|
|
71
|
+
isFinished() { return this.journeyPageNumber === this.journeyEndPageNumber; }
|
|
72
|
+
;
|
|
73
|
+
isStart() { return this.journeyPageNumber === this.journeyStartPageNumber; }
|
|
74
|
+
;
|
|
75
|
+
getId() { return this.journeyId; }
|
|
76
|
+
;
|
|
77
|
+
onPageChange() { }
|
|
78
|
+
;
|
|
79
|
+
static ɵfac = function AbstractFieldWriteJourneyComponent_Factory(t) { return new (t || AbstractFieldWriteJourneyComponent)(i0.ɵɵdirectiveInject(i1.MultipageComponentStateService)); };
|
|
80
|
+
static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: AbstractFieldWriteJourneyComponent, viewQuery: function AbstractFieldWriteJourneyComponent_Query(rf, ctx) { if (rf & 1) {
|
|
81
|
+
i0.ɵɵviewQuery(_c0, 5);
|
|
82
|
+
} if (rf & 2) {
|
|
83
|
+
let _t;
|
|
84
|
+
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.childJourney = _t.first);
|
|
85
|
+
} }, inputs: { journeyId: "journeyId" }, features: [i0.ɵɵInheritDefinitionFeature] });
|
|
86
|
+
}
|
|
87
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AbstractFieldWriteJourneyComponent, [{
|
|
88
|
+
type: Directive
|
|
89
|
+
}], () => [{ type: i1.MultipageComponentStateService }], { journeyId: [{
|
|
90
|
+
type: Input
|
|
91
|
+
}], childJourney: [{
|
|
92
|
+
type: ViewChild,
|
|
93
|
+
args: ['journeyChild']
|
|
94
|
+
}] }); })();
|
|
95
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtZmllbGQtd3JpdGUtam91cm5leS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvcGFsZXR0ZS9iYXNlLWZpZWxkL2Fic3RyYWN0LWZpZWxkLXdyaXRlLWpvdXJuZXkuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFhLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUUvRSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7OztBQUduRSxNQUFNLE9BQWdCLGtDQUFtQyxTQUFRLDJCQUEyQjtJQVlsRDtJQVhqQyxzQkFBc0IsR0FBVyxDQUFDLENBQUM7SUFDbkMsb0JBQW9CLEdBQVcsQ0FBQyxDQUFDO0lBQ2pDLGlCQUFpQixHQUFXLENBQUMsQ0FBQztJQUM5Qix5QkFBeUIsR0FBVyxDQUFDLENBQUM7SUFHdEMsU0FBUyxHQUFXLFNBQVMsQ0FBQztJQUc1QixZQUFZLENBQVc7SUFFOUIsWUFBc0MsOEJBQThEO1FBQ2xHLEtBQUssRUFBRSxDQUFDO1FBRDRCLG1DQUE4QixHQUE5Qiw4QkFBOEIsQ0FBZ0M7UUFFbEcsSUFBSSxDQUFDLDhCQUE4QixDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pFLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUM7SUFDdkQsQ0FBQztJQUVNLElBQUk7UUFDVCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7WUFDcEIsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFTSxRQUFRO1FBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO1lBQ3hCLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLGdCQUFnQixDQUFDLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3RGLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDL0IsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdEIsQ0FBQztJQUNILENBQUM7SUFFUyxZQUFZO1FBQ3BCLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsNkJBQTZCLEVBQUUsQ0FBQztnQkFDdEQsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDM0IsQ0FBQztZQUNELElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN0QixDQUFDO0lBQ0gsQ0FBQztJQUVTLFFBQVE7UUFDaEIsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSw2QkFBNkIsRUFBRSxDQUFDO2dCQUN0RCxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUMzQixDQUFDO1lBQ0QsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3RCLENBQUM7SUFDSCxDQUFDO0lBRU0sUUFBUTtRQUNiLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUM7UUFDckQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLDhCQUE4QixDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN4RSxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1YsTUFBTSxFQUFFLGlCQUFpQixFQUFFLHNCQUFzQixFQUFFLG9CQUFvQixFQUFFLEdBQUcsS0FBSyxDQUFDO1lBRWxGLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQztZQUMzQyxJQUFJLENBQUMsc0JBQXNCLEdBQUcsc0JBQXNCLENBQUM7WUFDckQsSUFBSSxDQUFDLG9CQUFvQixHQUFHLG9CQUFvQixDQUFDO1FBQ25ELENBQUM7SUFDSCxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsOEJBQThCLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFTSxPQUFPLEtBQWMsT0FBTyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFBLENBQUMsQ0FBQztJQUFBLENBQUM7SUFFakYsV0FBVyxLQUFjLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQSxDQUFDLENBQUM7SUFBQSxDQUFDO0lBRXZGLFVBQVUsS0FBYyxPQUFPLElBQUksQ0FBQyxpQkFBaUIsS0FBSyxJQUFJLENBQUMsb0JBQW9CLENBQUEsQ0FBQyxDQUFDO0lBQUEsQ0FBQztJQUV0RixPQUFPLEtBQWMsT0FBTyxJQUFJLENBQUMsaUJBQWlCLEtBQUssSUFBSSxDQUFDLHNCQUFzQixDQUFBLENBQUMsQ0FBQztJQUFBLENBQUM7SUFFckYsS0FBSyxLQUFhLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQSxDQUFDLENBQUM7SUFBQSxDQUFDO0lBRTFDLFlBQVksS0FBMEQsQ0FBQztJQUFBLENBQUM7NEZBaEY3RCxrQ0FBa0M7NkRBQWxDLGtDQUFrQzs7Ozs7OztpRkFBbEMsa0NBQWtDO2NBRHZELFNBQVM7K0RBUUQsU0FBUztrQkFEYixLQUFLO1lBSUMsWUFBWTtrQkFEbEIsU0FBUzttQkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCwgT25DaGFuZ2VzLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0RmllbGRXcml0ZUNvbXBvbmVudCB9IGZyb20gJy4vYWJzdHJhY3QtZmllbGQtd3JpdGUuY29tcG9uZW50JztcbmltcG9ydCB7IEpvdXJuZXkgfSBmcm9tICcuLi8uLi8uLi9kb21haW4nO1xuaW1wb3J0IHsgTXVsdGlwYWdlQ29tcG9uZW50U3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMnO1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdEZpZWxkV3JpdGVKb3VybmV5Q29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3RGaWVsZFdyaXRlQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBKb3VybmV5IHtcbiAgcHVibGljIGpvdXJuZXlTdGFydFBhZ2VOdW1iZXI6IG51bWJlciA9IDA7XG4gIHB1YmxpYyBqb3VybmV5RW5kUGFnZU51bWJlcjogbnVtYmVyID0gMDtcbiAgcHVibGljIGpvdXJuZXlQYWdlTnVtYmVyOiBudW1iZXIgPSAwO1xuICBwdWJsaWMgam91cm5leVByZXZpb3VzUGFnZU51bWJlcjogbnVtYmVyID0gMDtcblxuICAgIEBJbnB1dCgpXG4gIHB1YmxpYyBqb3VybmV5SWQ6IHN0cmluZyA9ICdqb3VybmV5JztcblxuICAgIEBWaWV3Q2hpbGQoJ2pvdXJuZXlDaGlsZCcpXG4gICAgcHVibGljIGNoaWxkSm91cm5leSE6IEpvdXJuZXk7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IocHJvdGVjdGVkIHJlYWRvbmx5IG11bHRpcGFnZUNvbXBvbmVudFN0YXRlU2VydmljZTogTXVsdGlwYWdlQ29tcG9uZW50U3RhdGVTZXJ2aWNlKSB7XG4gICAgICBzdXBlcigpO1xuICAgICAgdGhpcy5tdWx0aXBhZ2VDb21wb25lbnRTdGF0ZVNlcnZpY2UuYWRkVG9qb3VybmV5Q29sbGVjdGlvbih0aGlzKTtcbiAgICAgIHRoaXMuam91cm5leVBhZ2VOdW1iZXIgPSB0aGlzLmpvdXJuZXlTdGFydFBhZ2VOdW1iZXI7XG4gICAgfVxuXG4gICAgcHVibGljIG5leHQoKTogdm9pZCB7XG4gICAgICBpZiAoIXRoaXMuaGFzTmV4dCgpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMuY2hpbGRKb3VybmV5Lm5leHQoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcHJldmlvdXMoKTogdm9pZCB7XG4gICAgICBpZiAoIXRoaXMuaGFzUHJldmlvdXMoKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5jaGlsZEpvdXJuZXlbJ2NhY2hlZEZsYWdUeXBlJ10gJiYgdGhpcy5jaGlsZEpvdXJuZXlbJ3N1YkpvdXJuZXlJbmRleCddICE9PSAwKSB7XG4gICAgICAgIHRoaXMuY2hpbGRKb3VybmV5LnByZXZpb3VzKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnByZXZpb3VzUGFnZSgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBwcmV2aW91c1BhZ2UoKTogdm9pZCB7XG4gICAgICBpZiAodGhpcy5oYXNQcmV2aW91cygpKSB7XG4gICAgICAgIGlmICghdGhpcy5jaGlsZEpvdXJuZXk/LnNlYXJjaExhbmd1YWdlSW50ZXJwcmV0ZXJIaW50KSB7XG4gICAgICAgICAgdGhpcy5qb3VybmV5UGFnZU51bWJlci0tO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMub25QYWdlQ2hhbmdlKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG5leHRQYWdlKCk6IHZvaWQge1xuICAgICAgaWYgKHRoaXMuaGFzTmV4dCgpKSB7XG4gICAgICAgIGlmICghdGhpcy5jaGlsZEpvdXJuZXk/LnNlYXJjaExhbmd1YWdlSW50ZXJwcmV0ZXJIaW50KSB7XG4gICAgICAgICAgdGhpcy5qb3VybmV5UGFnZU51bWJlcisrO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMub25QYWdlQ2hhbmdlKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgdGhpcy5qb3VybmV5UGFnZU51bWJlciA9IHRoaXMuam91cm5leVN0YXJ0UGFnZU51bWJlcjtcbiAgICAgIGNvbnN0IHN0YXRlID0gdGhpcy5tdWx0aXBhZ2VDb21wb25lbnRTdGF0ZVNlcnZpY2UuZ2V0Sm91cm5leVN0YXRlKHRoaXMpO1xuICAgICAgaWYgKHN0YXRlKSB7XG4gICAgICAgIGNvbnN0IHsgam91cm5leVBhZ2VOdW1iZXIsIGpvdXJuZXlTdGFydFBhZ2VOdW1iZXIsIGpvdXJuZXlFbmRQYWdlTnVtYmVyIH0gPSBzdGF0ZTtcblxuICAgICAgICB0aGlzLmpvdXJuZXlQYWdlTnVtYmVyID0gam91cm5leVBhZ2VOdW1iZXI7XG4gICAgICAgIHRoaXMuam91cm5leVN0YXJ0UGFnZU51bWJlciA9IGpvdXJuZXlTdGFydFBhZ2VOdW1iZXI7XG4gICAgICAgIHRoaXMuam91cm5leUVuZFBhZ2VOdW1iZXIgPSBqb3VybmV5RW5kUGFnZU51bWJlcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICB0aGlzLm11bHRpcGFnZUNvbXBvbmVudFN0YXRlU2VydmljZS5zZXRKb3VybmV5U3RhdGUodGhpcyk7XG4gICAgfVxuXG4gICAgcHVibGljIGhhc05leHQoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLmpvdXJuZXlQYWdlTnVtYmVyIDwgdGhpcy5qb3VybmV5RW5kUGFnZU51bWJlciB9O1xuXG4gICAgcHVibGljIGhhc1ByZXZpb3VzKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5qb3VybmV5UGFnZU51bWJlciA+IHRoaXMuam91cm5leVN0YXJ0UGFnZU51bWJlciB9O1xuXG4gICAgcHVibGljIGlzRmluaXNoZWQoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLmpvdXJuZXlQYWdlTnVtYmVyID09PSB0aGlzLmpvdXJuZXlFbmRQYWdlTnVtYmVyIH07XG5cbiAgICBwdWJsaWMgaXNTdGFydCgpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuam91cm5leVBhZ2VOdW1iZXIgPT09IHRoaXMuam91cm5leVN0YXJ0UGFnZU51bWJlciB9O1xuXG4gICAgcHVibGljIGdldElkKCk6IHN0cmluZyB7IHJldHVybiB0aGlzLmpvdXJuZXlJZCB9O1xuXG4gICAgcHVibGljIG9uUGFnZUNoYW5nZSgpOiB2b2lkIHsgLyogVG8gYmUgaW1wbGVtZW50ZWQgYnkgc29tZSBjaGlsZCBjbGFzc2VzLiAqLyB9O1xufVxuIl19
|